@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
@@ -15,6 +15,7 @@ exports.onOrderDelivered = void 0;
15
15
  */
16
16
  const createDebug = require("debug");
17
17
  const factory = require("../../../factory");
18
+ const createSendEmailMessageTaskIfNotExist_1 = require("./onOrderProcessing/createSendEmailMessageTaskIfNotExist");
18
19
  const factory_1 = require("./onOrderDelivered/factory");
19
20
  const debug = createDebug('chevre-domain:service:order');
20
21
  function onOrderDelivered(params) {
@@ -22,43 +23,27 @@ function onOrderDelivered(params) {
22
23
  var _a, _b, _c, _d, _e;
23
24
  debug('onOrderStatusChanged called.', params.order.orderNumber, params.order.orderStatus, params.order.orderDate);
24
25
  let tasks = [];
26
+ const sendOrderPotentialActions = (_e = (_d = (_c = (_b = (_a = params.placeOrderTransaction) === null || _a === void 0 ? void 0 : _a.potentialActions) === null || _b === void 0 ? void 0 : _b.order) === null || _c === void 0 ? void 0 : _c.potentialActions) === null || _d === void 0 ? void 0 : _d.sendOrder) === null || _e === void 0 ? void 0 : _e.potentialActions;
25
27
  switch (params.order.orderStatus) {
26
28
  case factory.orderStatus.OrderDelivered:
27
29
  tasks = [
28
30
  ...(0, factory_1.createInformTasks)(params.order),
29
- // 取引のpotentialActionsを適用(2023-08-17~)
30
31
  ...(0, factory_1.createOnOrderSentTasksByTransaction)({
31
- potentialActions: (_e = (_d = (_c = (_b = (_a = params.placeOrderTransaction) === null || _a === void 0 ? void 0 : _a.potentialActions) === null || _b === void 0 ? void 0 : _b.order) === null || _c === void 0 ? void 0 : _c.potentialActions) === null || _d === void 0 ? void 0 : _d.sendOrder) === null || _e === void 0 ? void 0 : _e.potentialActions
32
+ potentialActions: sendOrderPotentialActions
32
33
  })
33
34
  ];
34
- // プロダクト登録プロセスロック解除
35
- try {
36
- const placeOrderTransaction = params.placeOrderTransaction;
37
- if (typeof (placeOrderTransaction === null || placeOrderTransaction === void 0 ? void 0 : placeOrderTransaction.id) === 'string') {
38
- // 廃止(2023-12-07~)
39
- // プロダクト登録プロセスロック解除(orderからproductIdを抽出する)
40
- // const productIds4unlock = params.order.acceptedOffers
41
- // .filter((o) => o.itemOffered.typeOf === factory.permit.PermitType.Permit
42
- // && typeof o.itemOffered.issuedThrough?.id === 'string'
43
- // && o.itemOffered.issuedThrough.id.length > 0)
44
- // .map((o) => String((<factory.order.IPermit>o.itemOffered).issuedThrough?.id));
45
- // await Promise.all(productIds4unlock.map(async (productId) => {
46
- // await processUnlockRegisterMembershipService({
47
- // agent: { id: String(params.order.customer.id) },
48
- // product: { id: productId },
49
- // purpose: { typeOf: placeOrderTransaction.typeOf, id: placeOrderTransaction.id }
50
- // })(repos);
51
- // }));
52
- }
53
- }
54
- catch (error) {
55
- throw error;
56
- }
57
35
  break;
58
36
  default:
59
37
  throw new factory.errors.NotImplemented(`${params.order.orderStatus} not implemented`);
60
38
  }
61
39
  yield repos.task.saveMany(tasks, { emitImmediately: true });
40
+ switch (params.order.orderStatus) {
41
+ case factory.orderStatus.OrderDelivered:
42
+ yield (0, createSendEmailMessageTaskIfNotExist_1.createSendEmailMessageTaskIfNotExist)({ potentialActions: sendOrderPotentialActions })(repos);
43
+ break;
44
+ default:
45
+ throw new factory.errors.NotImplemented(`${params.order.orderStatus} not implemented`);
46
+ }
62
47
  });
63
48
  }
64
49
  exports.onOrderDelivered = onOrderDelivered;
@@ -0,0 +1,16 @@
1
+ import * as factory from '../../../../factory';
2
+ type IInTransitOrder = Pick<factory.order.IOrder, 'confirmationNumber' | 'project' | 'typeOf' | 'seller' | 'orderNumber' | 'price' | 'priceCurrency' | 'orderDate' | 'customer' | 'id'> & {
3
+ acceptedOffers: {
4
+ limit: number;
5
+ page: number;
6
+ };
7
+ deliveredAcceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
8
+ orderStatus: factory.orderStatus.OrderInTransit;
9
+ };
10
+ declare function createInformTasks(params: {
11
+ order: IInTransitOrder;
12
+ }): factory.task.IAttributes<factory.taskName.TriggerWebhook>[];
13
+ declare function createNextSendOrderTasks(params: {
14
+ order: IInTransitOrder;
15
+ }): (import("@chevre/factory/lib/task").IAttributes | import("@chevre/factory/lib/task/confirmMoneyTransfer").IAttributes | import("@chevre/factory/lib/task/confirmRegisterService").IAttributes | import("@chevre/factory/lib/task/confirmPayTransaction").IAttributes | import("@chevre/factory/lib/task/confirmRegisterServiceTransaction").IAttributes | import("@chevre/factory/lib/task/confirmReserveTransaction").IAttributes | import("@chevre/factory/lib/task/createAccountingReport").IAttributes | import("@chevre/factory/lib/task/createEvent").IAttributes | import("@chevre/factory/lib/task/deleteTransaction").IAttributes | import("@chevre/factory/lib/task/givePointAward").IAttributes | import("@chevre/factory/lib/task/onAssetTransactionStatusChanged").IAttributes | import("@chevre/factory/lib/task/onAuthorizationCreated").IAttributes | import("@chevre/factory/lib/task/onEventChanged").IAttributes | import("@chevre/factory/lib/task/onResourceUpdated").IAttributes | import("@chevre/factory/lib/task/onOrderPaymentCompleted").IAttributes | import("@chevre/factory/lib/task/placeOrder").IAttributes | import("@chevre/factory/lib/task/returnOrder").IAttributes | import("@chevre/factory/lib/task/returnMoneyTransfer").IAttributes | import("@chevre/factory/lib/task/returnPayTransaction").IAttributes | import("@chevre/factory/lib/task/returnPointAward").IAttributes | import("@chevre/factory/lib/task/returnReserveTransaction").IAttributes | import("@chevre/factory/lib/task/sendEmailMessage").IAttributes | import("@chevre/factory/lib/task/sendOrder").IAttributes | import("@chevre/factory/lib/task/triggerWebhook").IAttributes | import("@chevre/factory/lib/task/useReservation").IAttributes | import("@chevre/factory/lib/task/voidMoneyTransferTransaction").IAttributes | import("@chevre/factory/lib/task/voidPayTransaction").IAttributes | import("@chevre/factory/lib/task/voidRegisterServiceTransaction").IAttributes | import("@chevre/factory/lib/task/voidReserveTransaction").IAttributes)[];
16
+ export { createInformTasks, createNextSendOrderTasks, IInTransitOrder };
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.createNextSendOrderTasks = exports.createInformTasks = void 0;
5
+ const factory = require("../../../../factory");
6
+ const order_1 = require("../../../../factory/order");
7
+ const settings_1 = require("../../../../settings");
8
+ const informOrder = (_a = settings_1.settings.onOrderStatusChanged) === null || _a === void 0 ? void 0 : _a.informOrder;
9
+ function creteOrder4inform(order) {
10
+ return Object.assign({ project: order.project, typeOf: order.typeOf, orderNumber: order.orderNumber, acceptedOffers: order.deliveredAcceptedOffers, orderStatus: factory.orderStatus.OrderInTransit }, (typeof order.id === 'string') ? { id: order.id } : undefined);
11
+ }
12
+ function createInformTasks(params) {
13
+ if (!settings_1.USE_INFORM_ORDER_IN_TRANSIT) {
14
+ return [];
15
+ }
16
+ const { order } = params;
17
+ const taskRunsAt = new Date();
18
+ let informTasks = [];
19
+ if (Array.isArray(informOrder) && informOrder.length > 0) {
20
+ const order4inform = creteOrder4inform(order);
21
+ let recipientId = '';
22
+ recipientId = order.customer.id;
23
+ informTasks = informOrder.map((informOrderParams) => {
24
+ var _a, _b;
25
+ const informActionAttributes = {
26
+ agent: order.project,
27
+ object: order4inform,
28
+ project: order.project,
29
+ recipient: {
30
+ url: (_a = informOrderParams.recipient) === null || _a === void 0 ? void 0 : _a.url,
31
+ id: recipientId,
32
+ name: (_b = informOrderParams.recipient) === null || _b === void 0 ? void 0 : _b.name,
33
+ typeOf: factory.creativeWorkType.WebApplication
34
+ },
35
+ typeOf: factory.actionType.InformAction
36
+ };
37
+ return {
38
+ project: order.project,
39
+ name: factory.taskName.TriggerWebhook,
40
+ status: factory.taskStatus.Ready,
41
+ runsAt: taskRunsAt,
42
+ remainingNumberOfTries: 10,
43
+ numberOfTried: 0,
44
+ executionResults: [],
45
+ data: informActionAttributes
46
+ };
47
+ });
48
+ }
49
+ return informTasks;
50
+ }
51
+ exports.createInformTasks = createInformTasks;
52
+ function createNextSendOrderTasks(params) {
53
+ const now = new Date();
54
+ const taskAttributes = [];
55
+ const maskedCustomer = (0, order_1.createMaskedCustomer)({ customer: params.order.customer }, { noProfile: true });
56
+ const simpleOrder = {
57
+ typeOf: params.order.typeOf,
58
+ seller: {
59
+ id: params.order.seller.id,
60
+ typeOf: params.order.seller.typeOf,
61
+ name: params.order.seller.name
62
+ },
63
+ // mask
64
+ customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id },
65
+ orderNumber: params.order.orderNumber,
66
+ price: params.order.price,
67
+ priceCurrency: params.order.priceCurrency,
68
+ orderDate: params.order.orderDate
69
+ };
70
+ const sendOrderObject = Object.assign(Object.assign({}, simpleOrder), { acceptedOffers: {
71
+ limit: params.order.acceptedOffers.limit,
72
+ page: params.order.acceptedOffers.page + 1
73
+ } });
74
+ const sendOrderTaskData = {
75
+ project: params.order.project,
76
+ object: Object.assign(Object.assign({}, sendOrderObject), { confirmationNumber: params.order.confirmationNumber, previousOrderStatus: params.order.orderStatus })
77
+ };
78
+ const sendOrderTask = {
79
+ project: params.order.project,
80
+ name: factory.taskName.SendOrder,
81
+ status: factory.taskStatus.Ready,
82
+ runsAt: now,
83
+ remainingNumberOfTries: 10,
84
+ numberOfTried: 0,
85
+ executionResults: [],
86
+ data: sendOrderTaskData
87
+ };
88
+ taskAttributes.push(sendOrderTask);
89
+ return taskAttributes;
90
+ }
91
+ exports.createNextSendOrderTasks = createNextSendOrderTasks;
@@ -0,0 +1,8 @@
1
+ import type { MongoRepository as TaskRepo } from '../../../repo/task';
2
+ import { IInTransitOrder } from './onOrderDeliveredPartially/factory';
3
+ declare function onOrderDeliveredPartially(params: {
4
+ order: IInTransitOrder;
5
+ }): (repos: {
6
+ task: TaskRepo;
7
+ }) => Promise<void>;
8
+ export { onOrderDeliveredPartially };
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.onOrderDeliveredPartially = void 0;
13
+ /**
14
+ * 注文ステータス変更時処理
15
+ */
16
+ const createDebug = require("debug");
17
+ const factory = require("../../../factory");
18
+ const factory_1 = require("./onOrderDeliveredPartially/factory");
19
+ const debug = createDebug('chevre-domain:service:order');
20
+ function onOrderDeliveredPartially(params) {
21
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
22
+ debug('onOrderStatusChanged called.', params.order.orderNumber, params.order.orderStatus, params.order.orderDate);
23
+ let tasks = [];
24
+ switch (params.order.orderStatus) {
25
+ case factory.orderStatus.OrderInTransit:
26
+ tasks = [
27
+ ...(0, factory_1.createInformTasks)({ order: params.order }),
28
+ ...(0, factory_1.createNextSendOrderTasks)({ order: params.order }) // 次の配送タスクを作成
29
+ ];
30
+ break;
31
+ default:
32
+ throw new factory.errors.NotImplemented(`${params.order.orderStatus} not implemented`);
33
+ }
34
+ yield repos.task.saveMany(tasks, { emitImmediately: true });
35
+ });
36
+ }
37
+ exports.onOrderDeliveredPartially = onOrderDeliveredPartially;
@@ -0,0 +1,12 @@
1
+ import type { MongoRepository as TaskRepo } from '../../../repo/task';
2
+ import type { MongoRepository as TransactionRepo } from '../../../repo/transaction';
3
+ import * as factory from '../../../factory';
4
+ declare function onOrderInTransit(params: {
5
+ order: Omit<factory.order.IOrder, 'orderStatus'> & {
6
+ orderStatus: factory.orderStatus.OrderInTransit;
7
+ };
8
+ }): (repos: {
9
+ task: TaskRepo;
10
+ transaction: TransactionRepo;
11
+ }) => Promise<void>;
12
+ export { onOrderInTransit };
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.onOrderInTransit = void 0;
13
+ /**
14
+ * 注文処理時処理
15
+ */
16
+ const createDebug = require("debug");
17
+ const factory = require("../../../factory");
18
+ const order_1 = require("../../../factory/order");
19
+ const settings_1 = require("../../../settings");
20
+ const debug = createDebug('chevre-domain:service:order');
21
+ function onOrderInTransit(params) {
22
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
23
+ debug('onOrderStatusChanged called.', params.order.orderNumber, params.order.orderStatus, params.order.orderDate);
24
+ switch (params.order.orderStatus) {
25
+ case factory.orderStatus.OrderInTransit:
26
+ // 冗長なsendOrderタスク作成を回避(2023-08-25~)
27
+ yield createSendOrderTaskIfNotExist({
28
+ order: params.order
29
+ })(repos);
30
+ // 取引確定時にコードを発行していればタスク作成(2024-02-06~)
31
+ yield createOnAuthorizationCreatedTask(params.order)(repos);
32
+ break;
33
+ default:
34
+ throw new factory.errors.NotImplemented(`${params.order.orderStatus} not implemented`);
35
+ }
36
+ });
37
+ }
38
+ exports.onOrderInTransit = onOrderInTransit;
39
+ function createSendOrderTaskIfNotExist(params) {
40
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
41
+ const now = new Date();
42
+ const maskedCustomer = (0, order_1.createMaskedCustomer)({ customer: params.order.customer }, { noProfile: true });
43
+ const simpleOrder = {
44
+ typeOf: params.order.typeOf,
45
+ seller: {
46
+ id: params.order.seller.id,
47
+ typeOf: params.order.seller.typeOf,
48
+ name: params.order.seller.name
49
+ },
50
+ // mask
51
+ customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id },
52
+ orderNumber: params.order.orderNumber,
53
+ price: params.order.price,
54
+ priceCurrency: params.order.priceCurrency,
55
+ orderDate: params.order.orderDate
56
+ };
57
+ const sendOrderObject = Object.assign(Object.assign({}, simpleOrder), { acceptedOffers: {
58
+ limit: settings_1.DELIVER_ORDER_LIMIT,
59
+ page: 1 // page1から配送
60
+ } });
61
+ const sendOrderTaskData = {
62
+ project: params.order.project,
63
+ object: Object.assign(Object.assign({}, sendOrderObject), { confirmationNumber: params.order.confirmationNumber, previousOrderStatus: params.order.orderStatus })
64
+ };
65
+ const taskIdentifier = `${sendOrderTaskData.project.id}:${factory.taskName.SendOrder}:${sendOrderTaskData.object.typeOf}:${sendOrderTaskData.object.orderNumber}`;
66
+ const sendOrderTask = {
67
+ identifier: taskIdentifier,
68
+ project: params.order.project,
69
+ name: factory.taskName.SendOrder,
70
+ status: factory.taskStatus.Ready,
71
+ runsAt: now,
72
+ remainingNumberOfTries: 10,
73
+ numberOfTried: 0,
74
+ executionResults: [],
75
+ data: sendOrderTaskData
76
+ };
77
+ debug('processing createSendOrderTaskIfNotExist...', sendOrderTask);
78
+ // await repos.task.createSendOrderTaskIfNotExist(sendOrderTask, { emitImmediately: true });
79
+ yield repos.task.createIfNotExistByIdentifier(sendOrderTask, { emitImmediately: true });
80
+ });
81
+ }
82
+ function createOnAuthorizationCreatedTask(order) {
83
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
84
+ var _a;
85
+ const placeOrderTransaction = (yield repos.transaction.search({
86
+ limit: 1,
87
+ page: 1,
88
+ typeOf: factory.transactionType.PlaceOrder,
89
+ object: { orderNumber: { $eq: order.orderNumber } },
90
+ inclusion: ['result'],
91
+ exclusion: []
92
+ })).shift();
93
+ const codeFromTransaction = (_a = placeOrderTransaction === null || placeOrderTransaction === void 0 ? void 0 : placeOrderTransaction.result) === null || _a === void 0 ? void 0 : _a.code;
94
+ if (typeof codeFromTransaction === 'string') {
95
+ const taskRunsAt = new Date();
96
+ const taskIdentifier = `${order.project.id}:${factory.taskName.OnAuthorizationCreated}:${factory.transactionType.PlaceOrder}:${placeOrderTransaction === null || placeOrderTransaction === void 0 ? void 0 : placeOrderTransaction.id}`;
97
+ debug('codeFromTransaction exists. so creating OnAuthorizationCreated task...taskIdentifier:', taskIdentifier);
98
+ const task = {
99
+ identifier: taskIdentifier,
100
+ name: factory.taskName.OnAuthorizationCreated,
101
+ status: factory.taskStatus.Ready,
102
+ runsAt: taskRunsAt,
103
+ remainingNumberOfTries: 10,
104
+ numberOfTried: 0,
105
+ executionResults: [],
106
+ data: {
107
+ project: { id: order.project.id },
108
+ code: codeFromTransaction
109
+ },
110
+ project: { id: order.project.id, typeOf: factory.organizationType.Project }
111
+ };
112
+ yield repos.task.createIfNotExistByIdentifier(task, { emitImmediately: true });
113
+ }
114
+ });
115
+ }
@@ -39,7 +39,8 @@ function onOrderPaymentDue(params) {
39
39
  // OrderPaymentDueを追加(2023-08-23~)
40
40
  case factory.orderStatus.OrderPaymentDue:
41
41
  tasks = [
42
- ...yield createConfirmPayTransactionTasks(params.order, simpleOrder)(repos)
42
+ ...yield createConfirmPayTransactionTasks(params.order, simpleOrder)(repos),
43
+ ...createCreateAccountingReportTask(params.order) // 経理レポート作成タスク(2024-02-02~)
43
44
  ];
44
45
  break;
45
46
  default:
@@ -101,3 +102,20 @@ function createConfirmPayTransactionTasks(order, simpleOrder) {
101
102
  return tasks;
102
103
  });
103
104
  }
105
+ function createCreateAccountingReportTask(order) {
106
+ const taskRunsAt = new Date();
107
+ const task = {
108
+ project: order.project,
109
+ name: factory.taskName.CreateAccountingReport,
110
+ status: factory.taskStatus.Ready,
111
+ runsAt: taskRunsAt,
112
+ remainingNumberOfTries: 10,
113
+ numberOfTried: 0,
114
+ executionResults: [],
115
+ data: {
116
+ object: { mainEntity: { orderNumber: order.orderNumber } },
117
+ project: { id: order.project.id }
118
+ }
119
+ };
120
+ return [task];
121
+ }
@@ -0,0 +1,8 @@
1
+ import type { MongoRepository as TaskRepo } from '../../../../repo/task';
2
+ import * as factory from '../../../../factory';
3
+ declare function createSendEmailMessageTaskIfNotExist(params: {
4
+ potentialActions?: factory.action.transfer.send.order.IPotentialActions;
5
+ }): (repos: {
6
+ task: TaskRepo;
7
+ }) => Promise<void>;
8
+ export { createSendEmailMessageTaskIfNotExist };
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createSendEmailMessageTaskIfNotExist = void 0;
13
+ const util = require("util");
14
+ const factory = require("../../../../factory");
15
+ function createSendEmailMessageTaskIfNotExist(params) {
16
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
17
+ var _a;
18
+ const sendEmailMessageActions = (_a = params.potentialActions) === null || _a === void 0 ? void 0 : _a.sendEmailMessage;
19
+ const now = new Date();
20
+ if (Array.isArray(sendEmailMessageActions)) {
21
+ yield Promise.all(sendEmailMessageActions.map((sendEmailMessageAction, index) => __awaiter(this, void 0, void 0, function* () {
22
+ const taskIdentifier = util.format('%s:%s:%s:%s:%s:%s', sendEmailMessageAction.project.id, factory.taskName.SendEmailMessage, sendEmailMessageAction.purpose.typeOf, sendEmailMessageAction.purpose.orderNumber, factory.orderStatus.OrderProcessing, index);
23
+ const sendEmailMessageTask = {
24
+ identifier: taskIdentifier,
25
+ project: sendEmailMessageAction.project,
26
+ name: factory.taskName.SendEmailMessage,
27
+ status: factory.taskStatus.Ready,
28
+ runsAt: now,
29
+ remainingNumberOfTries: 10,
30
+ numberOfTried: 0,
31
+ executionResults: [],
32
+ data: {
33
+ actionAttributes: sendEmailMessageAction
34
+ }
35
+ };
36
+ yield repos.task.createIfNotExistByIdentifier(sendEmailMessageTask, { emitImmediately: true });
37
+ })));
38
+ }
39
+ });
40
+ }
41
+ exports.createSendEmailMessageTaskIfNotExist = createSendEmailMessageTaskIfNotExist;
@@ -1,23 +1,19 @@
1
1
  import * as factory from '../../../../factory';
2
+ type IAcceptedOffer = Pick<factory.order.IAcceptedOffer<factory.order.IItemOffered>, 'itemOffered' | 'offeredThrough'>;
2
3
  type IProcessingOrder = factory.order.IOrder & {
3
- acceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
4
+ numAcceptedOffers: number;
4
5
  orderStatus: factory.orderStatus.OrderProcessing;
5
6
  };
6
7
  declare function createInformTasks(order: IProcessingOrder): factory.task.IAttributes<factory.taskName.TriggerWebhook>[];
7
8
  declare function createConfirmReservationActionObject4ChevreByOrder(params: {
8
9
  order: factory.order.IOrder & {
9
- acceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
10
+ serialNumbers: string[];
10
11
  };
11
12
  }): factory.action.interact.confirm.reservation.IObject<factory.service.webAPI.Identifier.Chevre>[];
12
13
  declare function createConfirmReservationActionObject4COAByOrder(params: {
13
14
  order: factory.order.IOrder & {
14
- acceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
15
+ serialNumbers: string[];
15
16
  };
16
- }): factory.action.interact.confirm.reservation.IObject<factory.service.webAPI.Identifier.COA>[];
17
- declare function createConfirmRegisterServiceActionObjectByOrder(params: {
18
- order: factory.order.IOrder & {
19
- acceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
20
- };
21
- }): factory.action.interact.confirm.registerService.IObject[];
17
+ }): factory.task.confirmReserveTransaction.IObject4COAOptimized[];
22
18
  type IExternalOrder = Pick<factory.order.IOrder, 'project' | 'typeOf' | 'seller' | 'customer' | 'confirmationNumber' | 'orderNumber' | 'price' | 'priceCurrency' | 'orderDate' | 'name' | 'orderStatus' | 'orderedItem' | 'paymentMethods'>;
23
- export { IExternalOrder, createInformTasks, createConfirmReservationActionObject4ChevreByOrder, createConfirmReservationActionObject4COAByOrder, createConfirmRegisterServiceActionObjectByOrder };
19
+ export { IAcceptedOffer, IExternalOrder, createInformTasks, createConfirmReservationActionObject4ChevreByOrder, createConfirmReservationActionObject4COAByOrder };