@chevre/domain 24.0.0-alpha.2 → 24.0.0-alpha.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/lib/chevre/repo/action/acceptCOAOffer.d.ts +23 -0
  2. package/lib/chevre/repo/action/acceptCOAOffer.js +64 -0
  3. package/lib/chevre/repo/action/acceptPay.d.ts +8 -0
  4. package/lib/chevre/repo/action/acceptPay.js +13 -0
  5. package/lib/chevre/repo/action/actionProcess.d.ts +115 -0
  6. package/lib/chevre/repo/action/actionProcess.js +293 -0
  7. package/lib/chevre/repo/action/authorizeOffer.d.ts +21 -0
  8. package/lib/chevre/repo/action/authorizeOffer.js +85 -0
  9. package/lib/chevre/repo/action/checkMovieTicket.d.ts +93 -0
  10. package/lib/chevre/repo/action/checkMovieTicket.js +200 -0
  11. package/lib/chevre/repo/action/checkThing.d.ts +8 -0
  12. package/lib/chevre/repo/action/checkThing.js +13 -0
  13. package/lib/chevre/repo/action.d.ts +9 -249
  14. package/lib/chevre/repo/action.js +308 -708
  15. package/lib/chevre/repo/aggregateAction.d.ts +102 -0
  16. package/lib/chevre/repo/aggregateAction.js +379 -0
  17. package/lib/chevre/repo/mongoose/schemas/transaction.js +31 -0
  18. package/lib/chevre/repo/orderInTransaction.d.ts +8 -0
  19. package/lib/chevre/repo/orderInTransaction.js +16 -2
  20. package/lib/chevre/repo/orderNumber.d.ts +3 -2
  21. package/lib/chevre/repo/orderNumber.js +23 -28
  22. package/lib/chevre/repo/transaction/moneyTransfer.d.ts +61 -0
  23. package/lib/chevre/repo/transaction/moneyTransfer.js +379 -0
  24. package/lib/chevre/repo/transaction/placeOrder.d.ts +140 -0
  25. package/lib/chevre/repo/transaction/placeOrder.js +528 -0
  26. package/lib/chevre/repo/transaction/returnOrder.d.ts +45 -0
  27. package/lib/chevre/repo/transaction/returnOrder.js +341 -0
  28. package/lib/chevre/repo/transaction.d.ts +1 -125
  29. package/lib/chevre/repo/transaction.js +726 -632
  30. package/lib/chevre/repository.d.ts +49 -0
  31. package/lib/chevre/repository.js +107 -2
  32. package/lib/chevre/service/aggregation/system.d.ts +10 -10
  33. package/lib/chevre/service/aggregation/system.js +9 -9
  34. package/lib/chevre/service/assetTransaction/pay/check.d.ts +5 -4
  35. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.d.ts +5 -2
  36. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +3 -3
  37. package/lib/chevre/service/assetTransaction/pay/start/factory.d.ts +51 -3
  38. package/lib/chevre/service/assetTransaction/pay/start/factory.js +58 -21
  39. package/lib/chevre/service/assetTransaction/pay/start/preStart/fixPaymentService.d.ts +10 -0
  40. package/lib/chevre/service/assetTransaction/pay/start/preStart/fixPaymentService.js +88 -0
  41. package/lib/chevre/service/assetTransaction/pay/start/processAuthorize.d.ts +55 -0
  42. package/lib/chevre/service/assetTransaction/pay/start/processAuthorize.js +56 -0
  43. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.d.ts +3 -1
  44. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.js +1 -11
  45. package/lib/chevre/service/assetTransaction/pay/start.d.ts +2 -0
  46. package/lib/chevre/service/assetTransaction/pay/start.js +8 -132
  47. package/lib/chevre/service/notification/triggerWebhook.d.ts +7 -6
  48. package/lib/chevre/service/offer/event/authorize.d.ts +2 -2
  49. package/lib/chevre/service/offer/event/authorize.js +3 -3
  50. package/lib/chevre/service/offer/event/issueEventOfferTicket.d.ts +2 -2
  51. package/lib/chevre/service/offer/event/issueEventOfferTicket.js +1 -1
  52. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.d.ts +0 -2
  53. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +1 -0
  54. package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -2
  55. package/lib/chevre/service/offer/event/voidTransaction.js +2 -2
  56. package/lib/chevre/service/offer/event/voidTransactionByActionId.d.ts +3 -3
  57. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +2 -2
  58. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.d.ts +16 -5
  59. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +7 -7
  60. package/lib/chevre/service/offer/eventServiceByCOA/authorize.d.ts +6 -4
  61. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +3 -10
  62. package/lib/chevre/service/offer/eventServiceByCOA/authorizeByAcceptAction.js +21 -13
  63. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +19 -10
  64. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.d.ts +2 -2
  65. package/lib/chevre/service/offer/moneyTransfer/authorize.d.ts +2 -2
  66. package/lib/chevre/service/offer/moneyTransfer/authorize.js +6 -3
  67. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.d.ts +2 -2
  68. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +4 -1
  69. package/lib/chevre/service/offer/product.d.ts +3 -3
  70. package/lib/chevre/service/offer/product.js +4 -4
  71. package/lib/chevre/service/order/confirmPayTransaction.d.ts +0 -2
  72. package/lib/chevre/service/order/confirmPayTransaction.js +1 -0
  73. package/lib/chevre/service/order/findPlaceOrderTransaction.d.ts +2 -2
  74. package/lib/chevre/service/order/findPlaceOrderTransaction.js +1 -1
  75. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.d.ts +16 -0
  76. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.js +97 -0
  77. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.d.ts +21 -0
  78. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.js +86 -0
  79. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.d.ts +22 -0
  80. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.js +112 -0
  81. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onReserveTransactionConfirmed.d.ts +22 -0
  82. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onReserveTransactionConfirmed.js +74 -0
  83. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.d.ts +25 -0
  84. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.js +111 -0
  85. package/lib/chevre/service/order/onAssetTransactionStatusChanged/processing2inTransit.d.ts +16 -0
  86. package/lib/chevre/service/order/onAssetTransactionStatusChanged/processing2inTransit.js +74 -0
  87. package/lib/chevre/service/order/onAssetTransactionStatusChanged.d.ts +8 -30
  88. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +37 -348
  89. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.d.ts +6 -7
  90. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.d.ts +6 -5
  91. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.d.ts +7 -6
  92. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +1 -1
  93. package/lib/chevre/service/order/payOrder.d.ts +2 -2
  94. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.d.ts +2 -2
  95. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +1 -1
  96. package/lib/chevre/service/order/placeOrder.d.ts +13 -12
  97. package/lib/chevre/service/order/returnOrder.d.ts +2 -2
  98. package/lib/chevre/service/order/returnOrder.js +1 -1
  99. package/lib/chevre/service/order/sendOrder.d.ts +6 -6
  100. package/lib/chevre/service/order/sendOrder.js +10 -8
  101. package/lib/chevre/service/order.d.ts +3 -6
  102. package/lib/chevre/service/order.js +3 -9
  103. package/lib/chevre/service/payment/any/{fixOrderAsNeeded.d.ts → authorize/fixOrderAsNeeded.d.ts} +6 -6
  104. package/lib/chevre/service/payment/any/{fixOrderAsNeeded.js → authorize/fixOrderAsNeeded.js} +5 -8
  105. package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.d.ts +3 -3
  106. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.d.ts +3 -3
  107. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js +1 -1
  108. package/lib/chevre/service/payment/any/authorize.d.ts +92 -0
  109. package/lib/chevre/service/payment/any/authorize.js +225 -0
  110. package/lib/chevre/service/payment/any/findAcceptAction.d.ts +43 -0
  111. package/lib/chevre/service/payment/any/findAcceptAction.js +94 -0
  112. package/lib/chevre/service/payment/any/findAuthorizeAction.d.ts +41 -0
  113. package/lib/chevre/service/payment/any/findAuthorizeAction.js +83 -0
  114. package/lib/chevre/service/payment/any/findCheckAction.d.ts +45 -0
  115. package/lib/chevre/service/payment/any/findCheckAction.js +89 -0
  116. package/lib/chevre/service/payment/any/invalidatePaymentUrl.d.ts +28 -0
  117. package/lib/chevre/service/payment/any/invalidatePaymentUrl.js +185 -0
  118. package/lib/chevre/service/payment/any/onPayActionCompleted.d.ts +7 -3
  119. package/lib/chevre/service/payment/any/onPayActionCompleted.js +3 -0
  120. package/lib/chevre/service/payment/any/processVoidPayTransaction.d.ts +29 -0
  121. package/lib/chevre/service/payment/any/processVoidPayTransaction.js +125 -0
  122. package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.d.ts +2 -2
  123. package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +66 -0
  124. package/lib/chevre/service/payment/any/publishPaymentUrl.js +133 -0
  125. package/lib/chevre/service/payment/any/voidPayTransaction.d.ts +31 -0
  126. package/lib/chevre/service/payment/any/voidPayTransaction.js +38 -0
  127. package/lib/chevre/service/payment/any.d.ts +8 -305
  128. package/lib/chevre/service/payment/any.js +17 -857
  129. package/lib/chevre/service/payment/movieTicket/authorize.d.ts +2 -0
  130. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.d.ts +3 -3
  131. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +3 -3
  132. package/lib/chevre/service/payment/movieTicket/validation.d.ts +11 -10
  133. package/lib/chevre/service/payment/movieTicket/validation.js +18 -15
  134. package/lib/chevre/service/report/telemetry.d.ts +4 -0
  135. package/lib/chevre/service/report/telemetry.js +7 -12
  136. package/lib/chevre/service/task/acceptCOAOffer.js +11 -6
  137. package/lib/chevre/service/task/authorizePayment.js +6 -2
  138. package/lib/chevre/service/task/checkMovieTicket.js +3 -3
  139. package/lib/chevre/service/task/checkResource.js +2 -2
  140. package/lib/chevre/service/task/confirmPayTransaction.js +2 -2
  141. package/lib/chevre/service/task/deleteTransaction.js +7 -1
  142. package/lib/chevre/service/task/onAssetTransactionStatusChanged.js +4 -2
  143. package/lib/chevre/service/task/onOrderPaymentCompleted.js +2 -2
  144. package/lib/chevre/service/task/placeOrder.js +6 -4
  145. package/lib/chevre/service/task/publishPaymentUrl.js +8 -4
  146. package/lib/chevre/service/task/returnOrder.js +4 -4
  147. package/lib/chevre/service/task/returnPayTransaction.js +4 -3
  148. package/lib/chevre/service/task/sendOrder.js +4 -4
  149. package/lib/chevre/service/task/voidMoneyTransferTransaction.js +6 -3
  150. package/lib/chevre/service/task/voidPayTransaction.js +4 -2
  151. package/lib/chevre/service/task/voidRegisterServiceTransaction.js +3 -3
  152. package/lib/chevre/service/task/voidReserveTransaction.js +4 -3
  153. package/lib/chevre/service/transaction/deleteTransaction.d.ts +6 -0
  154. package/lib/chevre/service/transaction/deleteTransaction.js +56 -14
  155. package/lib/chevre/service/transaction/moneyTransfer.d.ts +5 -5
  156. package/lib/chevre/service/transaction/moneyTransfer.js +5 -5
  157. package/lib/chevre/service/transaction/placeOrder/confirm.d.ts +2 -2
  158. package/lib/chevre/service/transaction/placeOrder/confirm.js +10 -9
  159. package/lib/chevre/service/transaction/placeOrder/exportTasksById.d.ts +7 -6
  160. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +1 -1
  161. package/lib/chevre/service/transaction/placeOrder/{publishOrderNumberIfNotExist.d.ts → issueOrderNumberIfNotExist.d.ts} +4 -4
  162. package/lib/chevre/service/transaction/placeOrder/{publishOrderNumberIfNotExist.js → issueOrderNumberIfNotExist.js} +21 -13
  163. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.d.ts +2 -2
  164. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.js +3 -3
  165. package/lib/chevre/service/transaction/placeOrder/start.d.ts +3 -3
  166. package/lib/chevre/service/transaction/placeOrder/start.js +2 -2
  167. package/lib/chevre/service/transaction/placeOrder/updateAgent.d.ts +23 -0
  168. package/lib/chevre/service/transaction/placeOrder/updateAgent.js +126 -0
  169. package/lib/chevre/service/transaction/placeOrder.d.ts +2 -1
  170. package/lib/chevre/service/transaction/placeOrder.js +3 -1
  171. package/lib/chevre/service/transaction/returnOrder/preStart.d.ts +1 -1
  172. package/lib/chevre/service/transaction/returnOrder.d.ts +16 -14
  173. package/lib/chevre/service/transaction/returnOrder.js +4 -4
  174. package/lib/chevre/service/transaction.d.ts +9 -21
  175. package/lib/chevre/service/transaction.js +5 -111
  176. package/package.json +4 -8
@@ -42,14 +42,14 @@ function voidTransactionByActionId(params) {
42
42
  agent: { id: params.project.id, typeOf: factory.organizationType.Project },
43
43
  ...(typeof params.sameAs?.id === 'string') ? { sameAs: { id: params.sameAs.id, typeOf: 'Task' } } : undefined
44
44
  };
45
- const transaction = await repos.transaction.projectFieldsInProgressById({
45
+ const transaction = await repos.placeOrder.findPlaceOrderInProgressById({
46
46
  typeOf: factory.transactionType.PlaceOrder,
47
47
  id: params.purpose.id
48
48
  }, ['typeOf']);
49
49
  // if (transaction.agent.id !== params.agent.id) {
50
50
  // throw new factory.errors.Forbidden('Transaction not yours');
51
51
  // }
52
- const orderNumber = await repos.transaction.findInProgressOrderNumberById({ id: params.purpose.id });
52
+ const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: params.purpose.id });
53
53
  const action = await repos.action.findById({ typeOf: factory.actionType.AuthorizeAction, id: params.id });
54
54
  if (action.purpose.typeOf !== transaction.typeOf || action.purpose.id !== transaction.id) {
55
55
  throw new factory.errors.Argument('Transaction', 'Action not found in the transaction');
@@ -1,16 +1,27 @@
1
1
  import type * as COA from '@motionpicture/coa-service';
2
- import type { ActionRepo } from '../../../repo/action';
2
+ import type { AcceptCOAOfferActionRepo } from '../../../repo/action/acceptCOAOffer';
3
+ import type { AuthorizeOfferActionRepo } from '../../../repo/action/authorizeOffer';
3
4
  import type { EventRepo } from '../../../repo/event';
4
5
  import type { OrderNumberRepo } from '../../../repo/orderNumber';
5
6
  import type { ProjectRepo } from '../../../repo/project';
6
- import type { TransactionRepo } from '../../../repo/transaction';
7
+ import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
7
8
  import * as factory from '../../../factory';
8
9
  interface IAcceptRepos {
9
- action: ActionRepo;
10
+ action: AcceptCOAOfferActionRepo;
10
11
  event: EventRepo;
11
12
  orderNumber: OrderNumberRepo;
12
13
  project: ProjectRepo;
13
- transaction: TransactionRepo;
14
+ placeOrder: PlaceOrderRepo;
15
+ reserveService: COA.service.Reserve;
16
+ masterService: COA.service.Master;
17
+ }
18
+ interface IReAcceptRepos {
19
+ action: AcceptCOAOfferActionRepo;
20
+ authorizeOfferAction: AuthorizeOfferActionRepo;
21
+ event: EventRepo;
22
+ orderNumber: OrderNumberRepo;
23
+ project: ProjectRepo;
24
+ placeOrder: PlaceOrderRepo;
14
25
  reserveService: COA.service.Reserve;
15
26
  masterService: COA.service.Master;
16
27
  }
@@ -34,5 +45,5 @@ declare function reAcceptOffer(params: IAccepteOfferParams & {
34
45
  */
35
46
  id: string;
36
47
  };
37
- }): (repos: IAcceptRepos) => Promise<void>;
48
+ }): (repos: IReAcceptRepos) => Promise<void>;
38
49
  export { acceptOffer, reAcceptOffer };
@@ -27,7 +27,7 @@ exports.acceptOffer = acceptOffer;
27
27
  exports.reAcceptOffer = reAcceptOffer;
28
28
  const errorHandler_1 = require("../../../errorHandler");
29
29
  const factory = __importStar(require("../../../factory"));
30
- const publishOrderNumberIfNotExist_1 = require("../../transaction/placeOrder/publishOrderNumberIfNotExist");
30
+ const issueOrderNumberIfNotExist_1 = require("../../transaction/placeOrder/issueOrderNumberIfNotExist");
31
31
  const authorize_1 = require("./acceptOffer/authorize");
32
32
  const factory_1 = require("./acceptOffer/factory");
33
33
  function findCOAInfo(params) {
@@ -58,12 +58,12 @@ function acceptOffer(params) {
58
58
  if (typeof params.sameAs.id !== 'string' || params.sameAs.id === '') {
59
59
  throw new factory.errors.ArgumentNull('sameAs.id');
60
60
  }
61
- const transaction = await repos.transaction.projectFieldsInProgressById({
61
+ const transaction = await repos.placeOrder.findPlaceOrderInProgressById({
62
62
  typeOf: factory.transactionType.PlaceOrder,
63
63
  id: params.purpose.id
64
64
  }, ['project', 'agent', 'typeOf']);
65
- // publishOrderNumber(2025-03-11~)
66
- await (0, publishOrderNumberIfNotExist_1.publishOrderNumberIfNotExist)({
65
+ // issueOrderNumber(2025-03-11~)
66
+ await (0, issueOrderNumberIfNotExist_1.issueOrderNumberIfNotExist)({
67
67
  project: { id: transaction.project.id },
68
68
  id: transaction.id,
69
69
  object: { orderDate: new Date() }
@@ -144,18 +144,18 @@ function reAcceptOffer(params) {
144
144
  if (typeof params.potentialActions?.id !== 'string' || params.potentialActions.id === '') {
145
145
  throw new factory.errors.ArgumentNull('potentialActions.id');
146
146
  }
147
- const transaction = await repos.transaction.projectFieldsInProgressById({
147
+ const transaction = await repos.placeOrder.findPlaceOrderInProgressById({
148
148
  typeOf: factory.transactionType.PlaceOrder,
149
149
  id: params.purpose.id
150
150
  }, ['project', 'agent', 'typeOf']);
151
- const orderNumber = await repos.transaction.findInProgressOrderNumberById({ id: transaction.id });
151
+ const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: transaction.id });
152
152
  if (typeof orderNumber !== 'string') {
153
153
  // 事前に発行されているはず
154
154
  throw new factory.errors.NotFound('transaction.object.orderNumber');
155
155
  }
156
156
  const coaInfo = await findCOAInfo({ id: params.object.event.id, project: { id: transaction.project.id } })(repos);
157
157
  // 承認アクション存在検証
158
- await repos.action.findById({ id: params.potentialActions.id, typeOf: factory.actionType.AuthorizeAction }, ['id'], []);
158
+ await repos.authorizeOfferAction.findById({ id: params.potentialActions.id, typeOf: factory.actionType.AuthorizeAction }, ['id'], []);
159
159
  const actionAttributes = {
160
160
  project: transaction.project,
161
161
  typeOf: factory.actionType.AcceptAction,
@@ -1,21 +1,23 @@
1
- import type { ActionRepo } from '../../../repo/action';
1
+ import type { AuthorizeOfferActionRepo } from '../../../repo/action/authorizeOffer';
2
+ import type { AcceptCOAOfferActionRepo } from '../../../repo/action/acceptCOAOffer';
2
3
  import type { CategoryCodeRepo } from '../../../repo/categoryCode';
3
4
  import type { EventRepo } from '../../../repo/event';
4
5
  import type { OfferRepo } from '../../../repo/offer/unitPriceInCatalog';
5
6
  import type { OrderInTransactionRepo } from '../../../repo/orderInTransaction';
6
- import type { TransactionRepo } from '../../../repo/transaction';
7
+ import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
7
8
  import { IRequestBody, IResponseBody } from './authorize/factory';
8
9
  import { IAcceptedOfferBeforeAuthorize4COA } from './authorize/validateAcceptedOffers';
9
10
  import * as factory from '../../../factory';
10
11
  export { IRequestBody, IResponseBody };
11
12
  export type IAuthorizeActionResult = factory.action.authorize.offer.eventService.IResult;
12
13
  export interface IAuthorizeRepos {
13
- action: ActionRepo;
14
+ action: AuthorizeOfferActionRepo;
15
+ accpetCOAOfferAction: AcceptCOAOfferActionRepo;
14
16
  categoryCode: CategoryCodeRepo;
15
17
  event: EventRepo;
16
18
  offer: OfferRepo;
17
19
  orderInTransaction: OrderInTransactionRepo;
18
- transaction: TransactionRepo;
20
+ placeOrder: PlaceOrderRepo;
19
21
  }
20
22
  export type IAuthorizeOperation<T> = (repos: IAuthorizeRepos) => Promise<T>;
21
23
  export type IAuthorizeOfferAction = factory.action.authorize.offer.eventService.IAction;
@@ -28,7 +28,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.authorize = authorize;
30
30
  const moment_1 = __importDefault(require("moment"));
31
- // import { publishOrderNumberIfNotExist } from '../../transaction/placeOrder/publishOrderNumberIfNotExist';
32
31
  const any_1 = require("../any");
33
32
  const factory_1 = require("./authorize/factory");
34
33
  const validateAcceptedOffers_1 = require("./authorize/validateAcceptedOffers");
@@ -38,7 +37,7 @@ const factory = __importStar(require("../../../factory"));
38
37
  */
39
38
  function authorize(params) {
40
39
  return async (repos) => {
41
- const transaction = await repos.transaction.projectFieldsInProgressById({
40
+ const transaction = await repos.placeOrder.findPlaceOrderInProgressById({
42
41
  typeOf: factory.transactionType.PlaceOrder,
43
42
  id: params.transaction.id
44
43
  }, ['agent', 'project', 'seller', 'typeOf', 'instrument']);
@@ -104,15 +103,9 @@ function authorize(params) {
104
103
  await repos.action.giveUp({ typeOf: failedAction.typeOf, id: failedAction.id, error });
105
104
  throw error;
106
105
  }
107
- // const now = new Date();
108
- // const orderNumber = await publishOrderNumberIfNotExist({
109
- // project: { id: transaction.project.id },
110
- // id: transaction.id,
111
- // object: { orderDate: now }
112
- // })(repos);
113
- const orderNumber = await repos.transaction.findInProgressOrderNumberById({ id: params.transaction.id });
106
+ const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: params.transaction.id });
114
107
  if (typeof orderNumber !== 'string') {
115
- // 事前に発行されているはず
108
+ // 事前に発行されているはず(acceptCOAOfferにて)
116
109
  throw new factory.errors.NotFound('transaction.object.orderNumber');
117
110
  }
118
111
  let result;
@@ -32,18 +32,26 @@ const factory = __importStar(require("../../../factory"));
32
32
  */
33
33
  function authorizeByAcceptAction(params) {
34
34
  return async (repos) => {
35
- const acceptAction = (await repos.action.search({
36
- limit: 1,
37
- page: 1,
38
- project: { id: { $eq: params.project.id } },
39
- id: { $in: [params.object.id] },
40
- typeOf: { $eq: factory.actionType.AcceptAction },
41
- purpose: { id: { $in: [params.purpose.id] } },
42
- actionStatus: { $in: [factory.actionStatusType.CompletedActionStatus] }
43
- }, ['result', 'object', 'potentialActions'])).shift();
44
- if (acceptAction === undefined) {
45
- throw new factory.errors.NotFound(factory.actionType.AcceptAction);
46
- }
35
+ // const acceptAction = (<IAcceptAction[]>await repos.action.search(
36
+ // {
37
+ // limit: 1,
38
+ // page: 1,
39
+ // project: { id: { $eq: params.project.id } },
40
+ // id: { $in: [params.object.id] },
41
+ // typeOf: { $eq: factory.actionType.AcceptAction },
42
+ // purpose: { id: { $in: [params.purpose.id] } },
43
+ // actionStatus: { $in: [factory.actionStatusType.CompletedActionStatus] }
44
+ // },
45
+ // ['result', 'object', 'potentialActions']
46
+ // )).shift();
47
+ // if (acceptAction === undefined) {
48
+ // throw new factory.errors.NotFound(factory.actionType.AcceptAction);
49
+ // }
50
+ const acceptAction = await repos.accpetCOAOfferAction.findCompletedById({
51
+ project: { id: params.project.id },
52
+ id: params.object.id,
53
+ purpose: { id: params.purpose.id },
54
+ }, ['result', 'object', 'potentialActions']);
47
55
  const acceptResult = acceptAction.result;
48
56
  if (acceptResult === undefined) {
49
57
  throw new factory.errors.NotFound(`${factory.actionType.AcceptAction}.result`);
@@ -67,7 +75,7 @@ function authorizeByAcceptAction(params) {
67
75
  }
68
76
  else {
69
77
  // recipe依存へ変更(2024-06-11~)
70
- const recipe = await repos.action.findRecipeByAction({
78
+ const recipe = await repos.accpetCOAOfferAction.findRecipeByAction({
71
79
  project: { id: params.project.id },
72
80
  recipeFor: { id: params.object.id }
73
81
  });
@@ -32,19 +32,20 @@ const any_1 = require("../any");
32
32
  const factory_1 = require("./authorize/factory");
33
33
  const validateAcceptedOffers_1 = require("./authorize/validateAcceptedOffers");
34
34
  const factory = __importStar(require("../../../factory"));
35
+ // type IAcceptAction = Pick<factory.action.accept.coaOffer.IAction, 'result'>;
35
36
  /**
36
37
  * COA興行オファー承認のオファーを変更
37
38
  */
38
39
  function changeOffers(params) {
39
40
  return async (repos) => {
40
- const transaction = await repos.transaction.projectFieldsInProgressById({
41
+ const transaction = await repos.placeOrder.findPlaceOrderInProgressById({
41
42
  typeOf: factory.transactionType.PlaceOrder,
42
43
  id: params.transaction.id
43
44
  }, ['typeOf', 'agent', 'project', 'seller']);
44
45
  if (transaction.agent.id !== params.agent.id) {
45
46
  throw new factory.errors.Forbidden('Transaction not yours');
46
47
  }
47
- const orderNumber = await repos.transaction.findInProgressOrderNumberById({ id: params.transaction.id });
48
+ const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: params.transaction.id });
48
49
  if (typeof orderNumber !== 'string') {
49
50
  // 事前に発行されているはず
50
51
  throw new factory.errors.NotFound('transaction.object.orderNumber');
@@ -61,13 +62,21 @@ function changeOffers(params) {
61
62
  if (typeof originalAcceptActionId !== 'string' || originalAcceptActionId === '') {
62
63
  throw new factory.errors.NotFound('authorizeAction.object.id');
63
64
  }
64
- const originalAcceptResult = (await repos.action.search({
65
- limit: 1,
66
- page: 1,
67
- project: { id: { $eq: authorizeAction.project.id } },
68
- id: { $in: [originalAcceptActionId] },
69
- typeOf: { $eq: factory.actionType.AcceptAction }
70
- }, ['result'])).shift()?.result;
65
+ // const originalAcceptResult = (<IAcceptAction[]>await repos.action.search(
66
+ // {
67
+ // limit: 1,
68
+ // page: 1,
69
+ // project: { id: { $eq: authorizeAction.project.id } },
70
+ // id: { $in: [originalAcceptActionId] },
71
+ // typeOf: { $eq: factory.actionType.AcceptAction }
72
+ // },
73
+ // ['result']
74
+ // )).shift()?.result;
75
+ const originalAcceptResult = (await repos.accpetCOAOfferAction.findCompletedById({
76
+ project: { id: authorizeAction.project.id },
77
+ id: originalAcceptActionId,
78
+ purpose: { id: authorizeAction.purpose.id },
79
+ }, ['result'])).result;
71
80
  if (originalAcceptResult === undefined) {
72
81
  throw new factory.errors.NotFound(`${factory.actionType.AcceptAction}.result`);
73
82
  }
@@ -126,7 +135,7 @@ function changeOffers(params) {
126
135
  // authorizeAction.object.acceptedOffer = acceptedOffers; // discontinue acceptedOffers(2024-06-21~)
127
136
  // recipe依存へ変更(2024-06-11~)
128
137
  // const updTmpReserveSeatResult = authorizeAction.result?.responseBody;
129
- const recipe = await repos.action.findRecipeByAction({
138
+ const recipe = await repos.accpetCOAOfferAction.findRecipeByAction({
130
139
  project: { id: transaction.project.id },
131
140
  recipeFor: { id: originalAcceptActionId }
132
141
  });
@@ -1,5 +1,5 @@
1
1
  import * as factory from '../../../factory';
2
- import type { ActionRepo } from '../../../repo/action';
2
+ import type { AcceptCOAOfferActionRepo } from '../../../repo/action/acceptCOAOffer';
3
3
  import type { TaskRepo } from '../../../repo/task';
4
4
  interface IFindAcceptActionResult {
5
5
  /**
@@ -35,7 +35,7 @@ declare function findAcceptAction(params: {
35
35
  id: string;
36
36
  };
37
37
  }): (repos: {
38
- action: ActionRepo;
38
+ action: AcceptCOAOfferActionRepo;
39
39
  task: TaskRepo;
40
40
  }) => Promise<IFindAcceptActionResult>;
41
41
  export { findAcceptAction };
@@ -5,7 +5,7 @@ import type { OrderInTransactionRepo } from '../../../repo/orderInTransaction';
5
5
  import type { OrderNumberRepo } from '../../../repo/orderNumber';
6
6
  import type { ProductRepo } from '../../../repo/product';
7
7
  import type { ProjectRepo } from '../../../repo/project';
8
- import type { TransactionRepo } from '../../../repo/transaction';
8
+ import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
9
9
  import type { TransactionNumberRepo } from '../../../repo/transactionNumber';
10
10
  interface IAuthorizeRepos {
11
11
  action: ActionRepo;
@@ -14,7 +14,7 @@ interface IAuthorizeRepos {
14
14
  assetTransaction: AssetTransactionRepo;
15
15
  orderInTransaction: OrderInTransactionRepo;
16
16
  orderNumber: OrderNumberRepo;
17
- transaction: TransactionRepo;
17
+ placeOrder: PlaceOrderRepo;
18
18
  transactionNumber: TransactionNumberRepo;
19
19
  }
20
20
  type IAuthorizeOperation<T> = (repos: IAuthorizeRepos) => Promise<T>;
@@ -30,11 +30,14 @@ exports.authorize = authorize;
30
30
  const moment_1 = __importDefault(require("moment"));
31
31
  const factory = __importStar(require("../../../factory"));
32
32
  const MoneyTransferAssetTransactionService = __importStar(require("../../assetTransaction/moneyTransfer"));
33
- const publishOrderNumberIfNotExist_1 = require("../../transaction/placeOrder/publishOrderNumberIfNotExist");
33
+ const issueOrderNumberIfNotExist_1 = require("../../transaction/placeOrder/issueOrderNumberIfNotExist");
34
34
  const any_1 = require("../any");
35
35
  function authorize(params) {
36
36
  return async (repos) => {
37
- const transaction = await repos.transaction.projectFieldsInProgressById({
37
+ if (params.purpose.typeOf !== factory.transactionType.PlaceOrder) {
38
+ throw new factory.errors.NotImplemented(`purpose.typeOf: ${params.purpose.typeOf} not implemented`);
39
+ }
40
+ const transaction = await repos.placeOrder.findPlaceOrderInProgressById({
38
41
  typeOf: params.purpose.typeOf,
39
42
  id: params.purpose.id
40
43
  }, ['seller', 'project', 'agent', 'typeOf']);
@@ -42,7 +45,7 @@ function authorize(params) {
42
45
  throw new factory.errors.Forbidden('Transaction not yours');
43
46
  }
44
47
  const now = new Date();
45
- const orderNumber = await (0, publishOrderNumberIfNotExist_1.publishOrderNumberIfNotExist)({
48
+ const orderNumber = await (0, issueOrderNumberIfNotExist_1.issueOrderNumberIfNotExist)({
46
49
  project: { id: params.project.id },
47
50
  id: transaction.id,
48
51
  object: { orderDate: now }
@@ -1,9 +1,9 @@
1
1
  import * as factory from '../../../factory';
2
2
  import type { ActionRepo } from '../../../repo/action';
3
3
  import type { AssetTransactionRepo } from '../../../repo/assetTransaction';
4
- import type { TransactionRepo } from '../../../repo/transaction';
4
+ import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
5
5
  export declare function voidTransaction(params: factory.task.IData<factory.taskName.VoidMoneyTransferTransaction>): (repos: {
6
6
  action: ActionRepo;
7
7
  assetTransaction: AssetTransactionRepo;
8
- transaction: TransactionRepo;
8
+ placeOrder: PlaceOrderRepo;
9
9
  }) => Promise<void>;
@@ -28,9 +28,12 @@ const factory = __importStar(require("../../../factory"));
28
28
  const MoneyTransferAssetTransactionService = __importStar(require("../../assetTransaction/moneyTransfer"));
29
29
  function voidTransaction(params) {
30
30
  return async (repos) => {
31
+ if (params.purpose.typeOf !== factory.transactionType.PlaceOrder) {
32
+ throw new factory.errors.NotImplemented(`purpose.typeOf: ${params.purpose.typeOf} not implemented`);
33
+ }
31
34
  let transaction;
32
35
  if (params.agent !== undefined && params.agent !== null && typeof params.agent.id === 'string') {
33
- transaction = await repos.transaction.projectFieldsInProgressById({
36
+ transaction = await repos.placeOrder.findPlaceOrderInProgressById({
34
37
  typeOf: params.purpose.typeOf,
35
38
  id: params.purpose.id
36
39
  }, ['typeOf']);
@@ -11,7 +11,7 @@ import type { ProductRepo } from '../../repo/product';
11
11
  import type { ProjectRepo } from '../../repo/project';
12
12
  import type { ServiceOutputRepo } from '../../repo/serviceOutput';
13
13
  import type { ServiceOutputIdentifierRepo } from '../../repo/serviceOutputIdentifier';
14
- import type { TransactionRepo } from '../../repo/transaction';
14
+ import type { PlaceOrderRepo } from '../../repo/transaction/placeOrder';
15
15
  import type { TransactionNumberRepo } from '../../repo/transactionNumber';
16
16
  export interface IAuthorizeOperationRepos {
17
17
  account: AccountRepo;
@@ -26,7 +26,7 @@ export interface IAuthorizeOperationRepos {
26
26
  project: ProjectRepo;
27
27
  serviceOutput: ServiceOutputRepo;
28
28
  serviceOutputIdentifier: ServiceOutputIdentifierRepo;
29
- transaction: TransactionRepo;
29
+ placeOrder: PlaceOrderRepo;
30
30
  transactionNumber: TransactionNumberRepo;
31
31
  }
32
32
  export type IAuthorizeOperation<T> = (repos: IAuthorizeOperationRepos) => Promise<T>;
@@ -96,5 +96,5 @@ export declare function authorize(params: {
96
96
  export declare function voidTransaction(params: factory.task.IData<factory.taskName.VoidRegisterServiceTransaction>): (repos: {
97
97
  action: ActionRepo;
98
98
  assetTransaction: AssetTransactionRepo;
99
- transaction: TransactionRepo;
99
+ placeOrder: PlaceOrderRepo;
100
100
  }) => Promise<void>;
@@ -31,7 +31,7 @@ const factory = __importStar(require("../../factory"));
31
31
  const accountTransactionIdentifier_1 = require("../../factory/accountTransactionIdentifier");
32
32
  const availableProductTypes_1 = require("../../factory/availableProductTypes");
33
33
  const RegisterServiceTransaction = __importStar(require("../assetTransaction/registerService"));
34
- const publishOrderNumberIfNotExist_1 = require("../transaction/placeOrder/publishOrderNumberIfNotExist");
34
+ const issueOrderNumberIfNotExist_1 = require("../transaction/placeOrder/issueOrderNumberIfNotExist");
35
35
  const any_1 = require("./any");
36
36
  const factory_1 = require("./product/factory");
37
37
  const searchProductOffers_1 = require("./product/searchProductOffers");
@@ -99,7 +99,7 @@ function search(params) {
99
99
  function authorize(params) {
100
100
  return async (repos) => {
101
101
  const now = new Date();
102
- const transaction = await repos.transaction.projectFieldsInProgressById({
102
+ const transaction = await repos.placeOrder.findPlaceOrderInProgressById({
103
103
  typeOf: factory.transactionType.PlaceOrder,
104
104
  id: params.transaction.id
105
105
  }, ['agent', 'project', 'seller', 'typeOf', 'expires']);
@@ -117,7 +117,7 @@ function authorize(params) {
117
117
  })(repos);
118
118
  }
119
119
  // ポイント特典の識別子に利用するため注文番号を先に発行
120
- const orderNumber = await (0, publishOrderNumberIfNotExist_1.publishOrderNumberIfNotExist)({
120
+ const orderNumber = await (0, issueOrderNumberIfNotExist_1.issueOrderNumberIfNotExist)({
121
121
  project: { id: transaction.project.id },
122
122
  id: transaction.id,
123
123
  object: { orderDate: new Date() }
@@ -214,7 +214,7 @@ function fixProductAndOffers(params) {
214
214
  }
215
215
  function voidTransaction(params) {
216
216
  return async (repos) => {
217
- const transaction = await repos.transaction.projectFieldsById({
217
+ const transaction = await repos.placeOrder.findPlaceOrderById({
218
218
  typeOf: params.purpose.typeOf,
219
219
  id: params.purpose.id
220
220
  }, ['agent', 'status', 'typeOf']);
@@ -7,7 +7,6 @@ import type { EventRepo } from '../../repo/event';
7
7
  import type { OrderRepo } from '../../repo/order';
8
8
  import type { ProjectRepo } from '../../repo/project';
9
9
  import type { TaskRepo } from '../../repo/task';
10
- import type { TransactionRepo } from '../../repo/transaction';
11
10
  declare function confirmPayTransaction(data: factory.task.IData<factory.taskName.ConfirmPayTransaction> & {
12
11
  project: {
13
12
  id: string;
@@ -22,6 +21,5 @@ declare function confirmPayTransaction(data: factory.task.IData<factory.taskName
22
21
  event: EventRepo;
23
22
  project: ProjectRepo;
24
23
  task: TaskRepo;
25
- transaction: TransactionRepo;
26
24
  }) => Promise<void>;
27
25
  export { confirmPayTransaction };
@@ -25,6 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.confirmPayTransaction = confirmPayTransaction;
27
27
  const factory = __importStar(require("../../factory"));
28
+ // import type { TransactionRepo } from '../../repo/transaction';
28
29
  const PayTransactionService = __importStar(require("../assetTransaction/pay"));
29
30
  function confirmPayTransaction(data, options) {
30
31
  return async (repos) => {
@@ -1,4 +1,4 @@
1
- import type { TransactionRepo } from '../../repo/transaction';
1
+ import type { PlaceOrderRepo } from '../../repo/transaction/placeOrder';
2
2
  import * as factory from '../../factory';
3
3
  type ITransaction = Pick<factory.transaction.placeOrder.ITransaction, 'id' | 'potentialActions' | 'project' | 'typeOf'>;
4
4
  export declare function findPlaceOrderTransaction(params: {
@@ -8,6 +8,6 @@ export declare function findPlaceOrderTransaction(params: {
8
8
  confirmationNumber: string;
9
9
  orderNumber: string;
10
10
  }): (repos: {
11
- transaction: TransactionRepo;
11
+ placeOrder: PlaceOrderRepo;
12
12
  }) => Promise<ITransaction>;
13
13
  export {};
@@ -27,7 +27,7 @@ exports.findPlaceOrderTransaction = findPlaceOrderTransaction;
27
27
  const factory = __importStar(require("../../factory"));
28
28
  function findPlaceOrderTransaction(params) {
29
29
  return async (repos) => {
30
- const placeOrderTransactions = await repos.transaction.projectFields({
30
+ const placeOrderTransactions = await repos.placeOrder.findPlaceOrderTransactions({
31
31
  limit: 1,
32
32
  page: 1,
33
33
  project: { id: { $eq: params.project.id } },
@@ -0,0 +1,16 @@
1
+ import type { AcceptedOfferRepo } from '../../../repo/acceptedOffer';
2
+ import type { AssetTransactionRepo } from '../../../repo/assetTransaction';
3
+ import type { OrderRepo } from '../../../repo/order';
4
+ import * as factory from '../../../factory';
5
+ declare function isDeliverable(params: {
6
+ project: {
7
+ id: string;
8
+ };
9
+ orderNumber: string;
10
+ assetTransactionType: factory.assetTransactionType.Reserve | factory.assetTransactionType.MoneyTransfer | factory.assetTransactionType.RegisterService;
11
+ }): (repos: {
12
+ acceptedOffer: AcceptedOfferRepo;
13
+ assetTransaction: AssetTransactionRepo;
14
+ order: OrderRepo;
15
+ }) => Promise<boolean>;
16
+ export { isDeliverable };
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.isDeliverable = isDeliverable;
30
+ const debug_1 = __importDefault(require("debug"));
31
+ const factory = __importStar(require("../../../factory"));
32
+ const debug = (0, debug_1.default)('chevre-domain:service:order');
33
+ function isDeliverable(params) {
34
+ return async (repos) => {
35
+ let allReserveTransactionConfirmed = false;
36
+ let allMoneyTransferTransactionConfirmed = false;
37
+ let allRegisterServiceTransactionConfirmed = false;
38
+ if (params.assetTransactionType === factory.assetTransactionType.Reserve) {
39
+ allMoneyTransferTransactionConfirmed = true;
40
+ allRegisterServiceTransactionConfirmed = true;
41
+ // 注文のreservationNumberを取得
42
+ const reservationNumbers = await repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.itemOffered.reservationNumber');
43
+ if (reservationNumbers.length > 0) {
44
+ const referencedReserveTransactions = await repos.assetTransaction.search({
45
+ project: { id: { $eq: params.project.id } },
46
+ typeOf: factory.assetTransactionType.Reserve,
47
+ transactionNumber: { $in: reservationNumbers }
48
+ }, ['status']);
49
+ allReserveTransactionConfirmed =
50
+ referencedReserveTransactions.length === reservationNumbers.length
51
+ && referencedReserveTransactions.every(({ status }) => status === factory.transactionStatusType.Confirmed);
52
+ }
53
+ else {
54
+ allReserveTransactionConfirmed = true;
55
+ }
56
+ }
57
+ else if (params.assetTransactionType === factory.assetTransactionType.MoneyTransfer) {
58
+ allReserveTransactionConfirmed = true;
59
+ allRegisterServiceTransactionConfirmed = true;
60
+ // 注文のMoneyTransferTransaction.transactionNumberを取得
61
+ const moneyTransferTransactionNumbers = await repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.serialNumber');
62
+ if (moneyTransferTransactionNumbers.length > 0) {
63
+ debug('is deliverable?...', params.orderNumber, 'moneyTransferTransactionNumbers:', moneyTransferTransactionNumbers);
64
+ const referencedMoneyTransferTransactions = await repos.assetTransaction.search({
65
+ project: { id: { $eq: params.project.id } },
66
+ typeOf: factory.assetTransactionType.MoneyTransfer,
67
+ transactionNumber: { $in: moneyTransferTransactionNumbers }
68
+ }, ['status']);
69
+ allMoneyTransferTransactionConfirmed =
70
+ referencedMoneyTransferTransactions.length === moneyTransferTransactionNumbers.length
71
+ && referencedMoneyTransferTransactions.every(({ status }) => status === factory.transactionStatusType.Confirmed);
72
+ }
73
+ else {
74
+ allMoneyTransferTransactionConfirmed = true;
75
+ }
76
+ }
77
+ else if (params.assetTransactionType === factory.assetTransactionType.RegisterService) {
78
+ allReserveTransactionConfirmed = true;
79
+ allMoneyTransferTransactionConfirmed = true;
80
+ const registerServiceTransactionNumbers = await repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.serialNumber');
81
+ if (registerServiceTransactionNumbers.length > 0) {
82
+ const referencedRegisterServiceTransactions = await repos.assetTransaction.search({
83
+ project: { id: { $eq: params.project.id } },
84
+ typeOf: factory.assetTransactionType.RegisterService,
85
+ transactionNumber: { $in: registerServiceTransactionNumbers }
86
+ }, ['status']);
87
+ allRegisterServiceTransactionConfirmed =
88
+ referencedRegisterServiceTransactions.length === registerServiceTransactionNumbers.length
89
+ && referencedRegisterServiceTransactions.every(({ status }) => status === factory.transactionStatusType.Confirmed);
90
+ }
91
+ else {
92
+ allRegisterServiceTransactionConfirmed = true;
93
+ }
94
+ }
95
+ return allReserveTransactionConfirmed && allMoneyTransferTransactionConfirmed && allRegisterServiceTransactionConfirmed;
96
+ };
97
+ }
@@ -0,0 +1,21 @@
1
+ import type { AcceptedOfferRepo } from '../../../repo/acceptedOffer';
2
+ import type { AssetTransactionRepo } from '../../../repo/assetTransaction';
3
+ import type { OrderRepo } from '../../../repo/order';
4
+ import type { SettingRepo } from '../../../repo/setting';
5
+ import type { TaskRepo } from '../../../repo/task';
6
+ import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
7
+ import * as factory from '../../../factory';
8
+ interface IOnPayTransactionCanceledRepos {
9
+ acceptedOffer: AcceptedOfferRepo;
10
+ assetTransaction: AssetTransactionRepo;
11
+ order: OrderRepo;
12
+ setting: SettingRepo;
13
+ task: TaskRepo;
14
+ placeOrder: PlaceOrderRepo;
15
+ }
16
+ declare function onPayTransactionCanceled(params: factory.task.onAssetTransactionStatusChanged.IData & {
17
+ object: factory.task.onAssetTransactionStatusChanged.IObjectAsPayTransaction & {
18
+ status: factory.transactionStatusType.Canceled | factory.transactionStatusType.Expired;
19
+ };
20
+ }): (repos: IOnPayTransactionCanceledRepos) => Promise<void>;
21
+ export { IOnPayTransactionCanceledRepos, onPayTransactionCanceled, };