@chevre/domain 21.20.0-alpha.8 → 21.20.0

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 (230) hide show
  1. package/example/src/chevre/findTransactionById.ts +21 -0
  2. package/example/src/chevre/importCategoryCodesFromCOA.ts +2 -1
  3. package/example/src/chevre/importOffersFromCOA.ts +2 -1
  4. package/example/src/chevre/migrateActionInstrumentTransactionNumber.ts +93 -0
  5. package/example/src/chevre/migrateDeleteTransactionTasks.ts +119 -0
  6. package/example/src/chevre/migrateEventMakesOfferAvailableAtOrFrom.ts +87 -0
  7. package/example/src/chevre/migrateIAMMemberPOSRoles.ts +3 -2
  8. package/example/src/chevre/migrateOfferAvailableAtOrFrom.ts +63 -0
  9. package/example/src/chevre/{migrateOrderPaymentMethodIdentifier.ts → migrateOrderAcceptedOfferSerialNumber.ts} +18 -19
  10. package/example/src/chevre/onAssetTransactionStatusChanged.ts +36 -0
  11. package/example/src/chevre/retryTasks.ts +39 -0
  12. package/example/src/chevre/searchActions.ts +13 -7
  13. package/example/src/chevre/searchOrderAcceptedOffers.ts +13 -3
  14. package/example/src/chevre/searchOrders.ts +13 -15
  15. package/example/src/chevre/searchSlicedAcceptedOffersByOrderNumber.ts +28 -0
  16. package/example/src/chevre/sendOrder.ts +37 -0
  17. package/example/src/chevre/transaction/processPlaceOrder.ts +2 -3
  18. package/example/src/verifyToken.ts +44 -0
  19. package/lib/chevre/credentials.d.ts +2 -0
  20. package/lib/chevre/credentials.js +4 -2
  21. package/lib/chevre/errorHandler.js +3 -0
  22. package/lib/chevre/factory/order.d.ts +1 -0
  23. package/lib/chevre/factory/order.js +2 -1
  24. package/lib/chevre/factory/reservedAgentIdentifireNames.js +2 -1
  25. package/lib/chevre/factory/transaction.d.ts +10 -1
  26. package/lib/chevre/repo/acceptedOffer.d.ts +58 -2
  27. package/lib/chevre/repo/acceptedOffer.js +100 -4
  28. package/lib/chevre/repo/accountingReport.d.ts +33 -7
  29. package/lib/chevre/repo/accountingReport.js +157 -5
  30. package/lib/chevre/repo/action.d.ts +32 -8
  31. package/lib/chevre/repo/action.js +114 -54
  32. package/lib/chevre/repo/event.d.ts +20 -0
  33. package/lib/chevre/repo/event.js +22 -0
  34. package/lib/chevre/repo/member.d.ts +8 -1
  35. package/lib/chevre/repo/member.js +7 -1
  36. package/lib/chevre/repo/mongoose/schemas/accountingReport.js +2 -1
  37. package/lib/chevre/repo/mongoose/schemas/action.d.ts +1 -1
  38. package/lib/chevre/repo/mongoose/schemas/action.js +25 -11
  39. package/lib/chevre/repo/mongoose/schemas/order.d.ts +1 -1
  40. package/lib/chevre/repo/mongoose/schemas/order.js +38 -11
  41. package/lib/chevre/repo/offer.d.ts +42 -0
  42. package/lib/chevre/repo/offer.js +35 -0
  43. package/lib/chevre/repo/order.js +43 -20
  44. package/lib/chevre/repo/orderInTransaction.d.ts +44 -0
  45. package/lib/chevre/repo/orderInTransaction.js +164 -0
  46. package/lib/chevre/repo/paymentServiceProvider.js +2 -1
  47. package/lib/chevre/repo/person.js +1 -4
  48. package/lib/chevre/repo/task.d.ts +26 -3
  49. package/lib/chevre/repo/task.js +61 -46
  50. package/lib/chevre/repo/transaction.d.ts +2 -2
  51. package/lib/chevre/repo/transaction.js +13 -36
  52. package/lib/chevre/repository.d.ts +5 -0
  53. package/lib/chevre/repository.js +15 -2
  54. package/lib/chevre/service/aggregation/event/importFromCOA.js +5 -5
  55. package/lib/chevre/service/assetTransaction/pay/factory.js +1 -6
  56. package/lib/chevre/service/assetTransaction/pay/potentialActions/createPayObjectServiceOutput.d.ts +9 -0
  57. package/lib/chevre/service/assetTransaction/pay/potentialActions/createPayObjectServiceOutput.js +143 -0
  58. package/lib/chevre/service/assetTransaction/pay/potentialActions.d.ts +11 -3
  59. package/lib/chevre/service/assetTransaction/pay/potentialActions.js +4 -165
  60. package/lib/chevre/service/assetTransaction/pay.d.ts +21 -6
  61. package/lib/chevre/service/assetTransaction/pay.js +64 -23
  62. package/lib/chevre/service/assetTransaction/reserve/factory.js +11 -14
  63. package/lib/chevre/service/assetTransaction/reserveCOA.d.ts +19 -0
  64. package/lib/chevre/service/assetTransaction/reserveCOA.js +46 -0
  65. package/lib/chevre/service/code.js +1 -1
  66. package/lib/chevre/service/delivery.js +2 -2
  67. package/lib/chevre/service/event/createEvent.js +1 -1
  68. package/lib/chevre/service/event.js +16 -24
  69. package/lib/chevre/service/moneyTransfer.js +1 -1
  70. package/lib/chevre/service/notification.js +71 -66
  71. package/lib/chevre/service/offer/any.d.ts +35 -0
  72. package/lib/chevre/service/offer/any.js +67 -0
  73. package/lib/chevre/service/offer/event/authorize.d.ts +7 -0
  74. package/lib/chevre/service/offer/event/authorize.js +27 -17
  75. package/lib/chevre/service/offer/event/cancel.d.ts +2 -0
  76. package/lib/chevre/service/offer/event/cancel.js +13 -1
  77. package/lib/chevre/service/offer/event/factory.d.ts +1 -1
  78. package/lib/chevre/service/offer/event/factory.js +11 -22
  79. package/lib/chevre/service/offer/event/importFromCOA.js +6 -8
  80. package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -0
  81. package/lib/chevre/service/offer/event/voidTransaction.js +24 -7
  82. package/lib/chevre/service/offer/eventServiceByCOA/authorize.d.ts +54 -0
  83. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +138 -0
  84. package/lib/chevre/service/offer/eventServiceByCOA/cancel.d.ts +39 -0
  85. package/lib/chevre/service/offer/eventServiceByCOA/cancel.js +59 -0
  86. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.d.ts +25 -0
  87. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +165 -0
  88. package/lib/chevre/service/offer/eventServiceByCOA/factory.js +10 -23
  89. package/lib/chevre/service/offer/eventServiceByCOA.d.ts +4 -89
  90. package/lib/chevre/service/offer/eventServiceByCOA.js +7 -292
  91. package/lib/chevre/service/offer/moneyTransfer/authorize.d.ts +10 -1
  92. package/lib/chevre/service/offer/moneyTransfer/authorize.js +49 -3
  93. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.js +1 -1
  94. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.d.ts +2 -0
  95. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.js +47 -2
  96. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +1 -1
  97. package/lib/chevre/service/offer/product/factory.js +2 -5
  98. package/lib/chevre/service/offer/product.d.ts +2 -0
  99. package/lib/chevre/service/offer/product.js +11 -23
  100. package/lib/chevre/service/order/confirmPayTransaction.d.ts +3 -1
  101. package/lib/chevre/service/order/confirmPayTransaction.js +5 -5
  102. package/lib/chevre/service/order/createAccountingReportIfNotExist.js +1 -1
  103. package/lib/chevre/service/order/onAssetTransactionStatusChanged.d.ts +12 -1
  104. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +206 -7
  105. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.d.ts +1 -1
  106. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.d.ts +1 -1
  107. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.js +51 -53
  108. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.d.ts +1 -1
  109. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.js +10 -25
  110. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +16 -0
  111. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +91 -0
  112. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.d.ts +8 -0
  113. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.js +37 -0
  114. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.d.ts +12 -0
  115. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +115 -0
  116. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +19 -1
  117. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.d.ts +8 -0
  118. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.js +41 -0
  119. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.d.ts +6 -10
  120. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +116 -92
  121. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.d.ts +4 -1
  122. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +81 -84
  123. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +1 -1
  124. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.js +18 -15
  125. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +62 -1
  126. package/lib/chevre/service/order/onOrderStatusChanged.d.ts +3 -1
  127. package/lib/chevre/service/order/onOrderStatusChanged.js +5 -1
  128. package/lib/chevre/service/order/placeOrder.d.ts +3 -1
  129. package/lib/chevre/service/order/placeOrder.js +157 -50
  130. package/lib/chevre/service/order/returnOrder.js +25 -16
  131. package/lib/chevre/service/order/sendOrder.d.ts +5 -0
  132. package/lib/chevre/service/order/sendOrder.js +67 -33
  133. package/lib/chevre/service/payment/any/onPaid.js +1 -1
  134. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onPaid.d.ts +3 -1
  135. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onPaid.js +15 -9
  136. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onRefunded.d.ts +3 -1
  137. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onRefunded.js +8 -5
  138. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +2 -2
  139. package/lib/chevre/service/payment/any/onRefund.js +1 -1
  140. package/lib/chevre/service/payment/any.d.ts +6 -5
  141. package/lib/chevre/service/payment/any.js +3 -2
  142. package/lib/chevre/service/payment/creditCard.d.ts +1 -1
  143. package/lib/chevre/service/payment/creditCard.js +62 -68
  144. package/lib/chevre/service/payment/faceToFace.d.ts +1 -5
  145. package/lib/chevre/service/payment/movieTicket/checkByIdentifier.d.ts +0 -2
  146. package/lib/chevre/service/payment/movieTicket/checkByIdentifier.js +1 -0
  147. package/lib/chevre/service/payment/movieTicket/validation.d.ts +0 -2
  148. package/lib/chevre/service/payment/movieTicket.d.ts +1 -7
  149. package/lib/chevre/service/payment/movieTicket.js +1 -1
  150. package/lib/chevre/service/payment/paymentCard.d.ts +1 -3
  151. package/lib/chevre/service/payment/paymentCard.js +6 -6
  152. package/lib/chevre/service/payment.d.ts +5 -0
  153. package/lib/chevre/service/payment.js +40 -5
  154. package/lib/chevre/service/product.js +1 -1
  155. package/lib/chevre/service/reserve/cancelReservation.js +2 -2
  156. package/lib/chevre/service/reserve/checkInReservation.d.ts +1 -3
  157. package/lib/chevre/service/reserve/checkInReservation.js +6 -5
  158. package/lib/chevre/service/reserve/confirmReservation.js +1 -1
  159. package/lib/chevre/service/reserve/factory.js +0 -8
  160. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.d.ts +1 -1
  161. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +4 -4
  162. package/lib/chevre/service/reserve/searchByOrder.js +2 -1
  163. package/lib/chevre/service/reserve/useReservation.d.ts +1 -3
  164. package/lib/chevre/service/reserve/useReservation.js +10 -9
  165. package/lib/chevre/service/reserve/verifyToken4reservation.js +2 -0
  166. package/lib/chevre/service/task/confirmMoneyTransfer.js +4 -4
  167. package/lib/chevre/service/task/confirmPayTransaction.js +2 -1
  168. package/lib/chevre/service/task/confirmRegisterServiceTransaction.d.ts +1 -1
  169. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +30 -8
  170. package/lib/chevre/service/task/confirmReserveTransaction.d.ts +6 -1
  171. package/lib/chevre/service/task/confirmReserveTransaction.js +176 -29
  172. package/lib/chevre/service/task/createAccountingReport.d.ts +6 -0
  173. package/lib/chevre/service/task/createAccountingReport.js +80 -0
  174. package/lib/chevre/service/task/importOffersFromCOA.js +2 -1
  175. package/lib/chevre/service/task/onAuthorizationCreated.js +0 -1
  176. package/lib/chevre/service/task/onResourceUpdated/onResourceDeleted.js +7 -7
  177. package/lib/chevre/service/task/pay.js +6 -0
  178. package/lib/chevre/service/task/placeOrder.js +9 -10
  179. package/lib/chevre/service/task/returnOrder.js +0 -3
  180. package/lib/chevre/service/task/returnPayTransaction.js +1 -1
  181. package/lib/chevre/service/task/returnReserveTransaction.js +3 -2
  182. package/lib/chevre/service/task/sendOrder.js +8 -4
  183. package/lib/chevre/service/task/useReservation.js +1 -1
  184. package/lib/chevre/service/task/voidReserveTransaction.js +8 -12
  185. package/lib/chevre/service/transaction/deleteTransaction.js +1 -1
  186. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +2 -18
  187. package/lib/chevre/service/transaction/moneyTransfer.js +7 -6
  188. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.d.ts +2 -2
  189. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +17 -20
  190. package/lib/chevre/service/transaction/placeOrder.js +2 -1
  191. package/lib/chevre/service/transaction/placeOrderInProgress/confirm.d.ts +51 -0
  192. package/lib/chevre/service/transaction/placeOrderInProgress/confirm.js +268 -0
  193. package/lib/chevre/service/transaction/placeOrderInProgress/factory.d.ts +1 -1
  194. package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +3 -2
  195. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
  196. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.js +22 -44
  197. package/lib/chevre/service/transaction/placeOrderInProgress/publishCode.d.ts +14 -0
  198. package/lib/chevre/service/transaction/placeOrderInProgress/publishCode.js +41 -0
  199. package/lib/chevre/service/transaction/placeOrderInProgress/publishConfirmationNumberIfNotExist.d.ts +18 -0
  200. package/lib/chevre/service/transaction/placeOrderInProgress/publishConfirmationNumberIfNotExist.js +42 -0
  201. package/lib/chevre/service/transaction/placeOrderInProgress/publishOrderNumberIfNotExist.d.ts +23 -0
  202. package/lib/chevre/service/transaction/placeOrderInProgress/publishOrderNumberIfNotExist.js +46 -0
  203. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +34 -37
  204. package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +3 -1
  205. package/lib/chevre/service/transaction/placeOrderInProgress/result.js +13 -4
  206. package/lib/chevre/service/transaction/placeOrderInProgress/start.d.ts +19 -0
  207. package/lib/chevre/service/transaction/placeOrderInProgress/start.js +46 -0
  208. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateStartRequest.d.ts +26 -0
  209. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateStartRequest.js +109 -0
  210. package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +10 -23
  211. package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +20 -1
  212. package/lib/chevre/service/transaction/placeOrderInProgress.d.ts +11 -73
  213. package/lib/chevre/service/transaction/placeOrderInProgress.js +13 -286
  214. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPointAward.js +1 -2
  215. package/lib/chevre/service/transaction/returnOrder/potentialActions.d.ts +0 -1
  216. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +8 -3
  217. package/lib/chevre/service/transaction/returnOrder/preStart.js +78 -50
  218. package/lib/chevre/service/transaction/returnOrder.js +3 -10
  219. package/lib/chevre/service.js +0 -10
  220. package/lib/chevre/settings.d.ts +7 -3
  221. package/lib/chevre/settings.js +13 -4
  222. package/package.json +5 -9
  223. package/example/src/chevre/cleanAccountingReports.ts +0 -57
  224. package/example/src/chevre/migratePayTransactionPaymentMethodIdentifier.ts +0 -78
  225. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateSeller.d.ts +0 -11
  226. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateSeller.js +0 -30
  227. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnMoneyTransfer.d.ts +0 -7
  228. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnMoneyTransfer.js +0 -82
  229. package/lib/chevre/service/util.d.ts +0 -19
  230. package/lib/chevre/service/util.js +0 -126
@@ -3,7 +3,9 @@
3
3
  */
4
4
  import { onOrderCancelled } from './onOrderStatusChanged/onOrderCancelled';
5
5
  import { onOrderDelivered } from './onOrderStatusChanged/onOrderDelivered';
6
+ import { onOrderDeliveredPartially } from './onOrderStatusChanged/onOrderDeliveredPartially';
7
+ import { onOrderInTransit } from './onOrderStatusChanged/onOrderInTransit';
6
8
  import { onOrderPaymentDue } from './onOrderStatusChanged/onOrderPaymentDue';
7
9
  import { IExternalOrder, onOrderProcessing } from './onOrderStatusChanged/onOrderProcessing';
8
10
  import { onOrderReturned } from './onOrderStatusChanged/onOrderReturned';
9
- export { IExternalOrder, onOrderCancelled, onOrderDelivered, onOrderPaymentDue, onOrderProcessing, onOrderReturned };
11
+ export { IExternalOrder, onOrderCancelled, onOrderDelivered, onOrderDeliveredPartially, onOrderInTransit, onOrderPaymentDue, onOrderProcessing, onOrderReturned };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.onOrderReturned = exports.onOrderProcessing = exports.onOrderPaymentDue = exports.onOrderDelivered = exports.onOrderCancelled = void 0;
3
+ exports.onOrderReturned = exports.onOrderProcessing = exports.onOrderPaymentDue = exports.onOrderInTransit = exports.onOrderDeliveredPartially = exports.onOrderDelivered = exports.onOrderCancelled = void 0;
4
4
  /**
5
5
  * 注文ステータス変更時処理
6
6
  */
@@ -8,6 +8,10 @@ const onOrderCancelled_1 = require("./onOrderStatusChanged/onOrderCancelled");
8
8
  Object.defineProperty(exports, "onOrderCancelled", { enumerable: true, get: function () { return onOrderCancelled_1.onOrderCancelled; } });
9
9
  const onOrderDelivered_1 = require("./onOrderStatusChanged/onOrderDelivered");
10
10
  Object.defineProperty(exports, "onOrderDelivered", { enumerable: true, get: function () { return onOrderDelivered_1.onOrderDelivered; } });
11
+ const onOrderDeliveredPartially_1 = require("./onOrderStatusChanged/onOrderDeliveredPartially");
12
+ Object.defineProperty(exports, "onOrderDeliveredPartially", { enumerable: true, get: function () { return onOrderDeliveredPartially_1.onOrderDeliveredPartially; } });
13
+ const onOrderInTransit_1 = require("./onOrderStatusChanged/onOrderInTransit");
14
+ Object.defineProperty(exports, "onOrderInTransit", { enumerable: true, get: function () { return onOrderInTransit_1.onOrderInTransit; } });
11
15
  const onOrderPaymentDue_1 = require("./onOrderStatusChanged/onOrderPaymentDue");
12
16
  Object.defineProperty(exports, "onOrderPaymentDue", { enumerable: true, get: function () { return onOrderPaymentDue_1.onOrderPaymentDue; } });
13
17
  const onOrderProcessing_1 = require("./onOrderStatusChanged/onOrderProcessing");
@@ -2,10 +2,11 @@ import type { MongoRepository as AcceptedOfferRepo } from '../../repo/acceptedOf
2
2
  import type { MongoRepository as AccountingReportRepo } from '../../repo/accountingReport';
3
3
  import type { MongoRepository as ActionRepo } from '../../repo/action';
4
4
  import type { MongoRepository as OrderRepo } from '../../repo/order';
5
+ import type { MongoRepository as OrderInTransactionRepo } from '../../repo/orderInTransaction';
5
6
  import type { MongoRepository as TaskRepo } from '../../repo/task';
6
7
  import type { MongoRepository as TransactionRepo } from '../../repo/transaction';
7
- import { IExternalOrder } from './onOrderStatusChanged';
8
8
  import * as factory from '../../factory';
9
+ import { IExternalOrder } from './onOrderStatusChanged';
9
10
  /**
10
11
  * 注文取引なしに注文を作成する
11
12
  */
@@ -39,6 +40,7 @@ declare function placeOrder(params: {
39
40
  accountingReport: AccountingReportRepo;
40
41
  action: ActionRepo;
41
42
  order: OrderRepo;
43
+ orderInTransaction: OrderInTransactionRepo;
42
44
  task: TaskRepo;
43
45
  transaction: TransactionRepo;
44
46
  }) => Promise<{
@@ -8,25 +8,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __rest = (this && this.__rest) || function (s, e) {
12
- var t = {};
13
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
- t[p] = s[p];
15
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
- t[p[i]] = s[p[i]];
19
- }
20
- return t;
21
- };
22
11
  Object.defineProperty(exports, "__esModule", { value: true });
23
12
  exports.placeOrderWithoutTransaction = exports.placeOrder = void 0;
13
+ const createDebug = require("debug");
24
14
  const moment = require("moment");
15
+ const factory = require("../../factory");
25
16
  const order_1 = require("../../factory/order");
26
- const createAccountingReportIfNotExist_1 = require("./createAccountingReportIfNotExist");
17
+ const settings_1 = require("../../settings");
27
18
  const onAssetTransactionStatusChanged_1 = require("./onAssetTransactionStatusChanged");
28
19
  const onOrderStatusChanged_1 = require("./onOrderStatusChanged");
29
- const factory = require("../../factory");
20
+ const debug = createDebug('chevre-domain:service:order');
30
21
  function createOrder(params) {
31
22
  // 必要な属性についてDate型に変換(でないと検索クエリを効率的に使えない)
32
23
  const acceptedOffers = (Array.isArray(params.acceptedOffers))
@@ -100,7 +91,8 @@ function createOrderFromBody(params) {
100
91
  orderNumbers: [orderNumber]
101
92
  }
102
93
  },
103
- inclusion: ['id', 'potentialActions', 'project', 'typeOf', 'result'],
94
+ // inclusion: ['id', 'potentialActions', 'project', 'typeOf', 'result'],
95
+ inclusion: ['id', 'project', 'typeOf', 'result'],
104
96
  exclusion: []
105
97
  });
106
98
  const placeOrderTransactionWithResult = placeOrderTransactions.shift();
@@ -112,8 +104,8 @@ function createOrderFromBody(params) {
112
104
  throw new factory.errors.NotFound('transaction.result.order');
113
105
  }
114
106
  order = createOrder(orderByTransaction);
115
- const { result } = placeOrderTransactionWithResult, placeOrderTransaction = __rest(placeOrderTransactionWithResult, ["result"]);
116
- return { order, placeOrderTransaction };
107
+ // const { result, ...placeOrderTransaction } = placeOrderTransactionWithResult;
108
+ return { order, placeOrderTransaction: placeOrderTransactionWithResult };
117
109
  });
118
110
  }
119
111
  /**
@@ -159,20 +151,120 @@ function placeOrderWithoutTransaction(params) {
159
151
  }
160
152
  throw error;
161
153
  }
162
- yield repos.action.complete({ typeOf: orderActionAttributes.typeOf, id: action.id, result: {} });
163
- // 経理レポートを保管は外部注文の場合保留(2023-12-08~)
164
- // await createAccountingReportIfNotExist(order)({ accountingReport: repos.accountingReport });
154
+ yield repos.action.completeWithVoid({ typeOf: orderActionAttributes.typeOf, id: action.id, result: {} });
165
155
  });
166
156
  }
167
157
  exports.placeOrderWithoutTransaction = placeOrderWithoutTransaction;
158
+ function voidAcceptedOfferIfNecessary(params) {
159
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
160
+ var _a;
161
+ // 取引に保管された承認アクション以外のアクションについて、オファーを除外する
162
+ const authorizeActionsAsResult = (_a = params.purpose.result) === null || _a === void 0 ? void 0 : _a.authorizeActions;
163
+ if (Array.isArray(authorizeActionsAsResult) && authorizeActionsAsResult.length > 0) {
164
+ const completedAuthorizeActionIds = authorizeActionsAsResult.map(({ id }) => id);
165
+ debug(completedAuthorizeActionIds.length, 'completedAuthorizeActionIds found from transaction', params.purpose.id);
166
+ // const authorizeActions = <Pick<IAuthorizeEventServiceOfferAction, 'object'>[]>
167
+ // await repos.action.search(
168
+ // {
169
+ // typeOf: factory.actionType.AuthorizeAction,
170
+ // purpose: {
171
+ // typeOf: { $in: [factory.transactionType.PlaceOrder] },
172
+ // id: { $in: [params.purpose.id] }
173
+ // },
174
+ // object: { typeOf: { $eq: factory.action.authorize.offer.eventService.ObjectType.SeatReservation } },
175
+ // id: { $nin: completedAuthorizeActionIds }
176
+ // },
177
+ // ['object'],
178
+ // []
179
+ // );
180
+ const authorizeActionsWithInstrument = yield repos.action.search({
181
+ typeOf: factory.actionType.AuthorizeAction,
182
+ purpose: {
183
+ typeOf: { $in: [factory.transactionType.PlaceOrder] },
184
+ id: { $in: [params.purpose.id] }
185
+ },
186
+ object: {
187
+ typeOf: {
188
+ $in: [
189
+ factory.action.authorize.offer.eventService.ObjectType.SeatReservation,
190
+ factory.offerType.Offer
191
+ ]
192
+ }
193
+ },
194
+ id: { $in: completedAuthorizeActionIds }
195
+ }, ['instrument'], []);
196
+ const serialNumbersMustBeIn = authorizeActionsWithInstrument
197
+ .filter(({ instrument }) => typeof instrument.transactionNumber === 'string')
198
+ .map(({ instrument }) => String(instrument.transactionNumber));
199
+ debug('voidAcceptedOfferBySerialNumber processing...', params.object.orderNumber, 'serialNumbersMustBeIn:', serialNumbersMustBeIn);
200
+ const voidAcceptedOfferBySerialNumberResult = yield repos.orderInTransaction.voidAcceptedOfferBySerialNumber({
201
+ orderNumber: params.object.orderNumber,
202
+ acceptedOffers: { serialNumber: { $nin: serialNumbersMustBeIn } }
203
+ });
204
+ debug('voidAcceptedOfferBySerialNumber processed.', params.object.orderNumber, 'voidAcceptedOfferBySerialNumberResult:', voidAcceptedOfferBySerialNumberResult);
205
+ // await voidAcceptedOffer({
206
+ // authorizeActions,
207
+ // authorizeActionsWithInstrument,
208
+ // orderNumber: params.object.orderNumber
209
+ // })(repos);
210
+ }
211
+ });
212
+ }
213
+ function verifyAcceptedOffers(params) {
214
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
215
+ const { order } = params;
216
+ const orderInTransaction = (yield repos.orderInTransaction.searchByOrderNumber({
217
+ orderNumber: { $eq: order.orderNumber }
218
+ })).shift();
219
+ if (orderInTransaction !== undefined) {
220
+ debug('verifying acceptedOffers...', order.orderNumber);
221
+ const acceptedOffersLengthMatched = orderInTransaction.acceptedOffers.length === order.acceptedOffers.length;
222
+ debug('acceptedOffers.length matched?', acceptedOffersLengthMatched);
223
+ if (!acceptedOffersLengthMatched) {
224
+ throw new factory.errors.ServiceUnavailable('acceptedOffers.length not matched');
225
+ }
226
+ const reservationIdsByOrderInTransation = orderInTransaction.acceptedOffers.map((offer) => {
227
+ return (offer.itemOffered.typeOf === factory.reservationType.EventReservation)
228
+ ? offer.itemOffered.id
229
+ : '';
230
+ });
231
+ const reservationIdsByOrder = order.acceptedOffers.map((offer) => {
232
+ return (offer.itemOffered.typeOf === factory.reservationType.EventReservation)
233
+ ? offer.itemOffered.id
234
+ : '';
235
+ });
236
+ debug('reservationIdsByOrderInTransation:', reservationIdsByOrderInTransation);
237
+ debug('reservationIdsByOrder:', reservationIdsByOrder);
238
+ const offerIdsByOrderInTransation = [...new Set(orderInTransaction.acceptedOffers.map((offer) => {
239
+ return String(offer.id);
240
+ }))];
241
+ const offerIdsByOrder = [...new Set(order.acceptedOffers.map((offer) => {
242
+ return String(offer.id);
243
+ }))];
244
+ debug('offerIdsByOrderInTransation:', offerIdsByOrderInTransation);
245
+ debug('offerIdsByOrder:', offerIdsByOrder);
246
+ const reservationIdsMatched = reservationIdsByOrderInTransation.length === reservationIdsByOrder.length
247
+ && reservationIdsByOrderInTransation.every((reservationId) => reservationIdsByOrder.includes(reservationId));
248
+ debug('reservationIds matched?', reservationIdsMatched);
249
+ const offerIdsMatched = offerIdsByOrderInTransation.length === offerIdsByOrder.length
250
+ && offerIdsByOrderInTransation.every((offerId) => offerIdsByOrder.includes(offerId));
251
+ debug('offerIds matched?', offerIdsMatched);
252
+ if (!reservationIdsMatched) {
253
+ throw new factory.errors.ServiceUnavailable('reservationIds not matched');
254
+ }
255
+ if (!offerIdsMatched) {
256
+ throw new factory.errors.ServiceUnavailable('offerIds not matched');
257
+ }
258
+ }
259
+ });
260
+ }
168
261
  /**
169
262
  * 注文を作成する
170
263
  */
171
- // tslint:disable-next-line:max-func-body-length
172
264
  function placeOrder(params) {
173
265
  // tslint:disable-next-line:max-func-body-length
174
266
  return (repos) => __awaiter(this, void 0, void 0, function* () {
175
- var _a;
267
+ var _a, _b, _c;
176
268
  if (typeof params.useOnOrderStatusChanged !== 'boolean') {
177
269
  throw new factory.errors.Argument('useOnOrderStatusChanged', 'must be boolean');
178
270
  }
@@ -182,6 +274,10 @@ function placeOrder(params) {
182
274
  confirmationNumber: params.object.confirmationNumber,
183
275
  orderNumber: params.object.orderNumber
184
276
  })({ transaction: repos.transaction });
277
+ // USE_ORDER_PAYMENT_DUE_ON_PLACED設定を廃止したので、必ずOrderPaymentDueのはず(2024-01-10~)
278
+ if (order.orderStatus !== factory.orderStatus.OrderPaymentDue) {
279
+ throw new factory.errors.ServiceUnavailable(`orderStatus must be ${factory.orderStatus.OrderPaymentDue}`);
280
+ }
185
281
  const maskedCustomer = (0, order_1.createMaskedCustomer)(order, { noProfile: true });
186
282
  const simpleOrder = {
187
283
  typeOf: order.typeOf,
@@ -224,7 +320,23 @@ function placeOrder(params) {
224
320
  if (completedActions.length === 0) {
225
321
  const action = yield repos.action.start(orderActionAttributes);
226
322
  try {
227
- yield repos.order.createIfNotExist(order);
323
+ // 冗長なオファーを除外する(念のため)
324
+ yield voidAcceptedOfferIfNecessary({
325
+ object: { orderNumber: order.orderNumber },
326
+ purpose: placeOrderTransaction
327
+ })(repos);
328
+ // acceptedOffersの内容検証(開発)
329
+ if (settings_1.USE_ACCEPTED_OFFERS_AS_TRANSACTION_RESULT) {
330
+ if (settings_1.USE_VERIFY_ACCEPTED_OFFERS) {
331
+ yield verifyAcceptedOffers({ order })(repos);
332
+ }
333
+ }
334
+ const ignoreAccpetedOffersFromResult = ((_c = (_b = placeOrderTransaction.result) === null || _b === void 0 ? void 0 : _b.options) === null || _c === void 0 ? void 0 : _c.ignoreAccpetedOffersFromResult) === true;
335
+ // orderInTransactionを考慮(2024-01-14~)
336
+ yield repos.orderInTransaction.placeOrder(order, { ignoreAccpetedOffersFromResult });
337
+ if (!ignoreAccpetedOffersFromResult) {
338
+ yield repos.order.createIfNotExist(order);
339
+ }
228
340
  }
229
341
  catch (error) {
230
342
  try {
@@ -235,11 +347,12 @@ function placeOrder(params) {
235
347
  }
236
348
  throw error;
237
349
  }
238
- yield repos.action.complete({ typeOf: orderActionAttributes.typeOf, id: action.id, result: {} });
350
+ yield repos.action.completeWithVoid({ typeOf: orderActionAttributes.typeOf, id: action.id, result: {} });
239
351
  }
240
352
  if (params.useOnOrderStatusChanged) {
241
353
  // 経理レポートを保管
242
- yield (0, createAccountingReportIfNotExist_1.createAccountingReportIfNotExist)(order)({ accountingReport: repos.accountingReport });
354
+ // CreateAccountingReportへ移行(2024-02-02~)
355
+ // await createAccountingReportIfNotExist(order)({ accountingReport: repos.accountingReport });
243
356
  // PaymentDueであればonOrderStatusChangedを実行(2023-08-23~)
244
357
  if (order.orderStatus === factory.orderStatus.OrderPaymentDue) {
245
358
  yield (0, onOrderStatusChanged_1.onOrderPaymentDue)({
@@ -259,27 +372,26 @@ function placeOrder(params) {
259
372
  })({
260
373
  task: repos.task
261
374
  });
262
- }
263
- else if (order.orderStatus === factory.orderStatus.OrderProcessing) {
264
- // OrderPaymentDueをスキップしてOrderProcessingから開始する場合(2023-08-23~)
265
- // OrderPaymentDueに対する処理をまず強制的に実行する(2023-08-24~)
266
- yield (0, onOrderStatusChanged_1.onOrderPaymentDue)({
267
- order: {
268
- paymentMethods: order.paymentMethods,
269
- project: order.project,
270
- orderNumber: order.orderNumber,
271
- confirmationNumber: order.confirmationNumber,
272
- customer: order.customer,
273
- orderDate: order.orderDate,
274
- seller: order.seller,
275
- typeOf: order.typeOf,
276
- price: order.price,
277
- priceCurrency: order.priceCurrency,
278
- orderStatus: factory.orderStatus.OrderPaymentDue
279
- }
280
- })({
281
- task: repos.task
282
- });
375
+ // } else if (order.orderStatus === factory.orderStatus.OrderProcessing) {
376
+ // // OrderPaymentDueをスキップしてOrderProcessingから開始する場合(2023-08-23~)
377
+ // // OrderPaymentDueに対する処理をまず強制的に実行する(2023-08-24~)
378
+ // await onOrderPaymentDue({
379
+ // order: {
380
+ // paymentMethods: order.paymentMethods,
381
+ // project: order.project,
382
+ // orderNumber: order.orderNumber,
383
+ // confirmationNumber: order.confirmationNumber,
384
+ // customer: order.customer,
385
+ // orderDate: order.orderDate,
386
+ // seller: order.seller,
387
+ // typeOf: order.typeOf,
388
+ // price: order.price,
389
+ // priceCurrency: order.priceCurrency,
390
+ // orderStatus: factory.orderStatus.OrderPaymentDue
391
+ // }
392
+ // })({
393
+ // task: repos.task
394
+ // });
283
395
  }
284
396
  else {
285
397
  throw new factory.errors.NotImplemented(`placing an order on the status '${order.orderStatus}' not implemented`);
@@ -295,11 +407,6 @@ function placeOrder(params) {
295
407
  })(repos);
296
408
  }
297
409
  }
298
- // onOrderStatusChangedへ移行(2023-08-17~)
299
- // await onPlaceOrder({
300
- // object: order,
301
- // potentialActions: params.potentialActions
302
- // })(repos);
303
410
  return { order };
304
411
  });
305
412
  }
@@ -26,15 +26,24 @@ function returnOrder(params) {
26
26
  ? params.object.dateReturned
27
27
  : new Date();
28
28
  const returner = params.agent;
29
- let order = yield repos.order.findByOrderNumber({
29
+ const order = yield repos.order.findByOrderNumber({
30
30
  orderNumber,
31
31
  project: { id: params.project.id },
32
32
  inclusion: [
33
33
  'project', 'typeOf', 'orderNumber', 'dateReturned', 'id',
34
- 'customer', 'returner', 'seller', 'price', 'priceCurrency', 'orderDate'
34
+ 'customer', 'returner', 'seller', 'price', 'priceCurrency', 'orderDate', 'orderStatus'
35
35
  ],
36
36
  exclusion: []
37
37
  });
38
+ // 注文ステータス検証(2024-01-10~)
39
+ switch (order.orderStatus) {
40
+ case factory.orderStatus.OrderDelivered:
41
+ case factory.orderStatus.OrderReturned:
42
+ break;
43
+ default:
44
+ // OrderDeliveredへの処理が進行中と考えられるので、ひとまず失敗させてリトライに期待
45
+ throw new factory.errors.Argument('object.orderNumber', `orderStatus not returnable: ${order.orderStatus}`);
46
+ }
38
47
  // 返品取引検索
39
48
  const returnOrderTransactions = yield repos.transaction.search({
40
49
  limit: 1,
@@ -72,7 +81,7 @@ function returnOrder(params) {
72
81
  typeOf: factory.actionType.ReturnAction
73
82
  };
74
83
  let returnedOwnershipInfos = [];
75
- // アクション開始
84
+ let returnedOrder;
76
85
  const action = yield repos.action.start(returnOrderActionAttributes);
77
86
  try {
78
87
  returnedOwnershipInfos = yield processReturnOrder(order, dateReturned)({
@@ -80,7 +89,7 @@ function returnOrder(params) {
80
89
  ownershipInfo: repos.ownershipInfo
81
90
  });
82
91
  // 注文ステータス変更
83
- order = yield repos.order.returnOrder({
92
+ returnedOrder = yield repos.order.returnOrder({
84
93
  project: { id: order.project.id },
85
94
  orderNumber,
86
95
  dateReturned,
@@ -98,21 +107,21 @@ function returnOrder(params) {
98
107
  throw error;
99
108
  }
100
109
  const result = returnedOwnershipInfos;
101
- yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: result });
110
+ yield repos.action.completeWithVoid({ typeOf: action.typeOf, id: action.id, result });
102
111
  if (params.useOnOrderStatusChanged) {
103
112
  yield (0, onOrderStatusChanged_1.onOrderReturned)({
104
113
  order: {
105
- project: order.project,
106
- typeOf: order.typeOf,
107
- orderNumber: order.orderNumber,
108
- dateReturned: order.dateReturned,
109
- id: order.id,
110
- customer: order.customer,
111
- returner: order.returner,
112
- seller: order.seller,
113
- price: order.price,
114
- priceCurrency: order.priceCurrency,
115
- orderDate: order.orderDate,
114
+ project: returnedOrder.project,
115
+ typeOf: returnedOrder.typeOf,
116
+ orderNumber: returnedOrder.orderNumber,
117
+ dateReturned: returnedOrder.dateReturned,
118
+ id: returnedOrder.id,
119
+ customer: returnedOrder.customer,
120
+ returner: returnedOrder.returner,
121
+ seller: returnedOrder.seller,
122
+ price: returnedOrder.price,
123
+ priceCurrency: returnedOrder.priceCurrency,
124
+ orderDate: returnedOrder.orderDate,
116
125
  orderStatus: factory.orderStatus.OrderReturned
117
126
  },
118
127
  returnOrderTransaction
@@ -24,6 +24,11 @@ declare function sendOrder(params: {
24
24
  object: {
25
25
  confirmationNumber: string;
26
26
  orderNumber: string;
27
+ previousOrderStatus: factory.orderStatus.OrderInTransit;
28
+ acceptedOffers: {
29
+ limit: number;
30
+ page: number;
31
+ };
27
32
  };
28
33
  useOnOrderStatusChanged: boolean;
29
34
  }): ISendOperation<void>;
@@ -10,21 +10,35 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.sendOrder = void 0;
13
+ const createDebug = require("debug");
13
14
  const order_1 = require("../../factory/order");
14
15
  const factory_1 = require("../delivery/factory");
15
16
  const findPlaceOrderTransaction_1 = require("./findPlaceOrderTransaction");
16
17
  const onOrderStatusChanged_1 = require("./onOrderStatusChanged");
17
18
  const factory = require("../../factory");
19
+ const debug = createDebug('chevre-domain:service:order');
18
20
  /**
19
21
  * 注文を配送する
20
22
  */
21
23
  function sendOrder(params) {
22
24
  // tslint:disable-next-line:max-func-body-length
23
25
  return (repos) => __awaiter(this, void 0, void 0, function* () {
24
- var _a;
26
+ var _a, _b, _c;
25
27
  if (typeof params.useOnOrderStatusChanged !== 'boolean') {
26
28
  throw new factory.errors.Argument('useOnOrderStatusChanged', 'must be boolean');
27
29
  }
30
+ if (typeof ((_a = params.object.acceptedOffers) === null || _a === void 0 ? void 0 : _a.limit) !== 'number') {
31
+ throw new factory.errors.Argument('object.acceptedOffers.limit', 'must be number');
32
+ }
33
+ if (typeof ((_b = params.object.acceptedOffers) === null || _b === void 0 ? void 0 : _b.page) !== 'number') {
34
+ throw new factory.errors.Argument('object.acceptedOffers.page', 'must be number');
35
+ }
36
+ if (params.object.acceptedOffers.limit <= 0) {
37
+ throw new factory.errors.Argument('object.acceptedOffers.limit', 'must be greater than 1');
38
+ }
39
+ if (params.object.acceptedOffers.page <= 0) {
40
+ throw new factory.errors.Argument('object.acceptedOffers.page', 'must be greater than 1');
41
+ }
28
42
  try {
29
43
  const orderNumber = params.object.orderNumber;
30
44
  const confirmationNumber = params.object.confirmationNumber;
@@ -62,35 +76,45 @@ function sendOrder(params) {
62
76
  priceCurrency: order.priceCurrency,
63
77
  orderDate: order.orderDate
64
78
  };
79
+ const { limit, page } = params.object.acceptedOffers;
80
+ const sendOrderObject = Object.assign(Object.assign({}, simpleOrder), { acceptedOffers: { limit, page } });
65
81
  const sendOrderActionAttributes = {
66
- agent: (typeof ((_a = params.agent) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? params.agent : order.project,
67
- object: simpleOrder,
68
- potentialActions: {
69
- // sendEmailMessage: undefined
70
- },
82
+ agent: (typeof ((_c = params.agent) === null || _c === void 0 ? void 0 : _c.typeOf) === 'string') ? params.agent : order.project,
83
+ object: sendOrderObject,
84
+ potentialActions: {},
71
85
  project: order.project,
72
86
  recipient: { id: order.customer.id, typeOf: order.customer.typeOf },
73
87
  typeOf: factory.actionType.SendAction
74
88
  };
75
89
  const action = yield repos.action.start(sendOrderActionAttributes);
76
90
  let ownershipInfos;
91
+ let allOffersDelivered = false;
92
+ let acceptedOffers;
77
93
  try {
78
- // 所有権作成
79
- ownershipInfos = (0, factory_1.createOwnershipInfosFromOrder)({
80
- order: Object.assign(Object.assign({}, order), { acceptedOffers: yield repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
81
- orderNumber: { $eq: order.orderNumber },
82
- project: { id: { $eq: order.project.id } }
83
- }) })
94
+ const searchSlicedAcceptedOffersResult = yield repos.acceptedOffer.searchSlicedAcceptedOffersByOrderNumber({
95
+ $slice: [limit * (page - 1), limit],
96
+ orderNumber: { $eq: order.orderNumber },
97
+ project: { id: { $eq: order.project.id } }
84
98
  });
99
+ acceptedOffers = searchSlicedAcceptedOffersResult.acceptedOffers;
100
+ debug('delivering...', order.orderNumber, acceptedOffers.map((offer) => `${offer.itemOffered.id}`), params.object.acceptedOffers);
101
+ // 所有権作成
102
+ ownershipInfos = (0, factory_1.createOwnershipInfosFromOrder)({ order: Object.assign(Object.assign({}, order), { acceptedOffers }) });
85
103
  ownershipInfos = yield Promise.all(ownershipInfos.map((ownershipInfo) => __awaiter(this, void 0, void 0, function* () {
86
104
  return repos.ownershipInfo.createIfNotExistByIdentifier(ownershipInfo);
87
105
  })));
88
- order = yield repos.order.changeStatus({
89
- project: { id: order.project.id },
90
- orderNumber,
91
- orderStatus: factory.orderStatus.OrderDelivered,
92
- previousOrderStatus: factory.orderStatus.OrderProcessing
93
- });
106
+ const deliveredCount = limit * page;
107
+ debug(deliveredCount, 'delivered.', order.orderNumber, params.object.acceptedOffers);
108
+ // if (deliveredCount >= numAcceptedOffers) {
109
+ if (acceptedOffers.length === 0) {
110
+ order = yield repos.order.changeStatus({
111
+ project: { id: order.project.id },
112
+ orderNumber,
113
+ orderStatus: factory.orderStatus.OrderDelivered,
114
+ previousOrderStatus: params.object.previousOrderStatus
115
+ });
116
+ allOffersDelivered = true;
117
+ }
94
118
  }
95
119
  catch (error) {
96
120
  try {
@@ -102,22 +126,32 @@ function sendOrder(params) {
102
126
  throw error;
103
127
  }
104
128
  const result = ownershipInfos;
105
- yield repos.action.complete({ typeOf: sendOrderActionAttributes.typeOf, id: action.id, result: result });
129
+ yield repos.action.completeWithVoid({ typeOf: sendOrderActionAttributes.typeOf, id: action.id, result: result });
130
+ debug('allOffersDelivered?:', allOffersDelivered, order.orderNumber);
106
131
  if (params.useOnOrderStatusChanged) {
107
- yield (0, onOrderStatusChanged_1.onOrderDelivered)({
108
- order: {
109
- id: order.id,
110
- customer: order.customer,
111
- orderDate: order.orderDate,
112
- orderNumber: order.orderNumber,
113
- project: order.project,
114
- typeOf: order.typeOf,
115
- orderStatus: factory.orderStatus.OrderDelivered
116
- },
117
- placeOrderTransaction
118
- })({
119
- task: repos.task
120
- });
132
+ if (allOffersDelivered) {
133
+ yield (0, onOrderStatusChanged_1.onOrderDelivered)({
134
+ order: {
135
+ id: order.id,
136
+ customer: order.customer,
137
+ orderDate: order.orderDate,
138
+ orderNumber: order.orderNumber,
139
+ project: order.project,
140
+ typeOf: order.typeOf,
141
+ orderStatus: factory.orderStatus.OrderDelivered
142
+ },
143
+ placeOrderTransaction
144
+ })({
145
+ task: repos.task
146
+ });
147
+ }
148
+ else {
149
+ yield (0, onOrderStatusChanged_1.onOrderDeliveredPartially)({
150
+ order: Object.assign(Object.assign({}, order), { acceptedOffers: params.object.acceptedOffers, orderStatus: params.object.previousOrderStatus, deliveredAcceptedOffers: acceptedOffers })
151
+ })({
152
+ task: repos.task
153
+ });
154
+ }
121
155
  }
122
156
  }
123
157
  catch (error) {
@@ -38,7 +38,7 @@ function onPaid(payAction) {
38
38
  name: factory.taskName.TriggerWebhook,
39
39
  status: factory.taskStatus.Ready,
40
40
  runsAt: now,
41
- remainingNumberOfTries: 10,
41
+ remainingNumberOfTries: 30,
42
42
  numberOfTried: 0,
43
43
  executionResults: [],
44
44
  data: Object.assign(Object.assign({}, a), { object: aciton4inform })
@@ -1,6 +1,8 @@
1
1
  import type { MongoRepository as AccountingReportRepo } from '../../../../repo/accountingReport';
2
2
  import * as factory from '../../../../factory';
3
3
  export type IOptimizedPayAction = factory.report.accountingReport.IOptimizedPayAction;
4
- export declare function onPaid(params: IOptimizedPayAction): (repos: {
4
+ export declare function onPaid(params: IOptimizedPayAction, project: {
5
+ id: string;
6
+ }): (repos: {
5
7
  accountingReport: AccountingReportRepo;
6
8
  }) => Promise<void>;