@chevre/domain 21.2.0-alpha.6 → 21.2.0-alpha.61

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 (232) hide show
  1. package/example/src/chevre/aggregation/aggregateSystem.ts +58 -31
  2. package/example/src/chevre/countDelayedTasks.ts +17 -0
  3. package/example/src/chevre/countDelayedTransactions.ts +60 -0
  4. package/example/src/chevre/countMoneyTransferTransaction.ts +36 -0
  5. package/example/src/chevre/createManyEventsIfNotExist.ts +4 -1
  6. package/example/src/chevre/deleteTasksByName.ts +4 -2
  7. package/example/src/chevre/importEventsFromCOA.ts +3 -4
  8. package/example/src/chevre/migrateOrderAdditionalProperties.ts +85 -0
  9. package/example/src/chevre/migrateStockHolderKeys.ts +89 -0
  10. package/example/src/chevre/saveTasks.ts +13 -10
  11. package/example/src/chevre/searchAbortedTasks.ts +36 -0
  12. package/example/src/chevre/searchSendEmailActions.ts +44 -0
  13. package/example/src/chevre/task/executeTasks.ts +26 -0
  14. package/example/src/chevre/transaction/findCreditCard.ts +1 -1
  15. package/example/src/chevre/transaction/orderMembershipService.ts +1 -1
  16. package/example/src/chevre/transaction/startExportTasks.ts +20 -0
  17. package/example/src/chevre/updateTransaction.ts +1 -1
  18. package/lib/chevre/credentials.d.ts +1 -0
  19. package/lib/chevre/credentials.js +2 -1
  20. package/lib/chevre/eventEmitter/assetTransaction.d.ts +21 -0
  21. package/lib/chevre/eventEmitter/assetTransaction.js +25 -0
  22. package/lib/chevre/eventEmitter/task.d.ts +18 -0
  23. package/lib/chevre/eventEmitter/task.js +25 -0
  24. package/lib/chevre/eventEmitter/transaction.d.ts +21 -0
  25. package/lib/chevre/eventEmitter/transaction.js +25 -0
  26. package/lib/chevre/eventEmitter.d.ts +4 -0
  27. package/lib/chevre/eventEmitter.js +9 -0
  28. package/lib/chevre/index.d.ts +3 -2
  29. package/lib/chevre/index.js +5 -3
  30. package/lib/chevre/repo/account.js +0 -4
  31. package/lib/chevre/repo/accountTitle.js +0 -4
  32. package/lib/chevre/repo/accountTransaction.d.ts +3 -11
  33. package/lib/chevre/repo/accountTransaction.js +1 -58
  34. package/lib/chevre/repo/accountingReport.js +0 -4
  35. package/lib/chevre/repo/action.d.ts +29 -1
  36. package/lib/chevre/repo/action.js +32 -29
  37. package/lib/chevre/repo/additionalProperty.js +0 -4
  38. package/lib/chevre/repo/aggregation.js +0 -4
  39. package/lib/chevre/repo/assetTransaction.d.ts +23 -8
  40. package/lib/chevre/repo/assetTransaction.js +207 -68
  41. package/lib/chevre/repo/categoryCode.js +0 -4
  42. package/lib/chevre/repo/code.js +0 -4
  43. package/lib/chevre/repo/comment.d.ts +4 -1
  44. package/lib/chevre/repo/comment.js +20 -9
  45. package/lib/chevre/repo/confirmationNumber.d.ts +0 -1
  46. package/lib/chevre/repo/confirmationNumber.js +3 -15
  47. package/lib/chevre/repo/creativeWork.d.ts +1 -3
  48. package/lib/chevre/repo/creativeWork.js +0 -4
  49. package/lib/chevre/repo/customer.js +0 -4
  50. package/lib/chevre/repo/emailMessage.d.ts +1 -27
  51. package/lib/chevre/repo/emailMessage.js +0 -4
  52. package/lib/chevre/repo/event.d.ts +5 -1
  53. package/lib/chevre/repo/event.js +0 -4
  54. package/lib/chevre/repo/member.js +0 -4
  55. package/lib/chevre/repo/merchantReturnPolicy.d.ts +1 -3
  56. package/lib/chevre/repo/merchantReturnPolicy.js +0 -4
  57. package/lib/chevre/repo/mongoose/schemas/account.d.ts +5 -2
  58. package/lib/chevre/repo/mongoose/schemas/account.js +1 -0
  59. package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +30 -3
  60. package/lib/chevre/repo/mongoose/schemas/accountTitle.js +1 -0
  61. package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +32 -3
  62. package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +2 -1
  63. package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +14 -3
  64. package/lib/chevre/repo/mongoose/schemas/accountingReport.js +1 -0
  65. package/lib/chevre/repo/mongoose/schemas/action.d.ts +44 -3
  66. package/lib/chevre/repo/mongoose/schemas/action.js +2 -1
  67. package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +18 -3
  68. package/lib/chevre/repo/mongoose/schemas/additionalProperty.js +1 -0
  69. package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +5 -2
  70. package/lib/chevre/repo/mongoose/schemas/aggregation.js +1 -0
  71. package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +45 -3
  72. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +3 -1
  73. package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +20 -3
  74. package/lib/chevre/repo/mongoose/schemas/authorization.js +2 -1
  75. package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +26 -3
  76. package/lib/chevre/repo/mongoose/schemas/categoryCode.js +1 -0
  77. package/lib/chevre/repo/mongoose/schemas/comments.d.ts +28 -3
  78. package/lib/chevre/repo/mongoose/schemas/comments.js +2 -1
  79. package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +44 -3
  80. package/lib/chevre/repo/mongoose/schemas/creativeWork.js +1 -0
  81. package/lib/chevre/repo/mongoose/schemas/customer.d.ts +26 -3
  82. package/lib/chevre/repo/mongoose/schemas/customer.js +1 -0
  83. package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +22 -3
  84. package/lib/chevre/repo/mongoose/schemas/emailMessages.js +1 -0
  85. package/lib/chevre/repo/mongoose/schemas/event.d.ts +72 -3
  86. package/lib/chevre/repo/mongoose/schemas/event.js +1 -0
  87. package/lib/chevre/repo/mongoose/schemas/member.d.ts +14 -3
  88. package/lib/chevre/repo/mongoose/schemas/member.js +1 -0
  89. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +22 -3
  90. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.js +1 -0
  91. package/lib/chevre/repo/mongoose/schemas/offer.d.ts +66 -3
  92. package/lib/chevre/repo/mongoose/schemas/offer.js +1 -0
  93. package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +28 -3
  94. package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +1 -0
  95. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +74 -0
  96. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +45 -0
  97. package/lib/chevre/repo/mongoose/schemas/order.d.ts +52 -3
  98. package/lib/chevre/repo/mongoose/schemas/order.js +2 -1
  99. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +26 -3
  100. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +2 -1
  101. package/lib/chevre/repo/mongoose/schemas/place.d.ts +50 -3
  102. package/lib/chevre/repo/mongoose/schemas/place.js +1 -0
  103. package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +30 -3
  104. package/lib/chevre/repo/mongoose/schemas/priceSpecification.js +1 -0
  105. package/lib/chevre/repo/mongoose/schemas/product.d.ts +32 -3
  106. package/lib/chevre/repo/mongoose/schemas/product.js +1 -0
  107. package/lib/chevre/repo/mongoose/schemas/project.d.ts +24 -3
  108. package/lib/chevre/repo/mongoose/schemas/project.js +1 -0
  109. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +62 -3
  110. package/lib/chevre/repo/mongoose/schemas/reservation.js +2 -1
  111. package/lib/chevre/repo/mongoose/schemas/role.d.ts +12 -3
  112. package/lib/chevre/repo/mongoose/schemas/role.js +1 -0
  113. package/lib/chevre/repo/mongoose/schemas/seller.d.ts +32 -3
  114. package/lib/chevre/repo/mongoose/schemas/seller.js +1 -0
  115. package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +12 -3
  116. package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +2 -1
  117. package/lib/chevre/repo/mongoose/schemas/task.d.ts +31 -3
  118. package/lib/chevre/repo/mongoose/schemas/task.js +3 -1
  119. package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +22 -3
  120. package/lib/chevre/repo/mongoose/schemas/telemetry.js +1 -0
  121. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +41 -3
  122. package/lib/chevre/repo/mongoose/schemas/transaction.js +3 -1
  123. package/lib/chevre/repo/mongoose/schemas/trip.d.ts +12 -3
  124. package/lib/chevre/repo/mongoose/schemas/trip.js +1 -0
  125. package/lib/chevre/repo/offer.js +0 -5
  126. package/lib/chevre/repo/offerCatalog.js +0 -4
  127. package/lib/chevre/repo/offerItemCondition.d.ts +39 -0
  128. package/lib/chevre/repo/offerItemCondition.js +112 -0
  129. package/lib/chevre/repo/order.d.ts +25 -0
  130. package/lib/chevre/repo/order.js +5 -4
  131. package/lib/chevre/repo/ownershipInfo.js +0 -4
  132. package/lib/chevre/repo/permit.js +0 -4
  133. package/lib/chevre/repo/place.js +0 -4
  134. package/lib/chevre/repo/priceSpecification.js +0 -4
  135. package/lib/chevre/repo/product.js +0 -4
  136. package/lib/chevre/repo/project.js +0 -4
  137. package/lib/chevre/repo/reservation.js +0 -4
  138. package/lib/chevre/repo/role.js +0 -4
  139. package/lib/chevre/repo/seller.js +0 -4
  140. package/lib/chevre/repo/serviceOutput.js +0 -4
  141. package/lib/chevre/repo/stockHolder.js +30 -0
  142. package/lib/chevre/repo/task.d.ts +41 -2
  143. package/lib/chevre/repo/task.js +97 -12
  144. package/lib/chevre/repo/telemetry.js +0 -4
  145. package/lib/chevre/repo/transaction.d.ts +23 -3
  146. package/lib/chevre/repo/transaction.js +174 -58
  147. package/lib/chevre/repo/trip.js +0 -4
  148. package/lib/chevre/repository.d.ts +5 -2
  149. package/lib/chevre/repository.js +8 -4
  150. package/lib/chevre/service/aggregation/system.d.ts +67 -22
  151. package/lib/chevre/service/aggregation/system.js +101 -89
  152. package/lib/chevre/service/assetTransaction/cancelReservation.js +23 -25
  153. package/lib/chevre/service/assetTransaction/moneyTransfer.js +23 -21
  154. package/lib/chevre/service/assetTransaction/pay/potentialActions.js +17 -1
  155. package/lib/chevre/service/assetTransaction/pay.js +32 -24
  156. package/lib/chevre/service/assetTransaction/refund.js +23 -21
  157. package/lib/chevre/service/assetTransaction/registerService.js +23 -22
  158. package/lib/chevre/service/assetTransaction/reserve.js +23 -21
  159. package/lib/chevre/service/assetTransaction.d.ts +6 -2
  160. package/lib/chevre/service/assetTransaction.js +9 -5
  161. package/lib/chevre/service/event.js +3 -1
  162. package/lib/chevre/service/notification/factory.js +2 -2
  163. package/lib/chevre/service/notification.d.ts +3 -1
  164. package/lib/chevre/service/notification.js +41 -7
  165. package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -0
  166. package/lib/chevre/service/offer/event/voidTransaction.js +17 -1
  167. package/lib/chevre/service/offer.js +1 -1
  168. package/lib/chevre/service/order/deleteOrder.js +8 -8
  169. package/lib/chevre/service/order/onOrderStatusChanged/factory.js +25 -36
  170. package/lib/chevre/service/order/onOrderStatusChanged.js +1 -1
  171. package/lib/chevre/service/order/placeOrder.js +1 -1
  172. package/lib/chevre/service/order/returnOrder.js +1 -5
  173. package/lib/chevre/service/order/sendOrder.js +1 -1
  174. package/lib/chevre/service/payment/any/onPaid.js +1 -1
  175. package/lib/chevre/service/payment/any/onRefund.js +1 -1
  176. package/lib/chevre/service/payment/any.js +60 -10
  177. package/lib/chevre/service/payment/movieTicket/validation.d.ts +3 -2
  178. package/lib/chevre/service/payment/movieTicket/validation.js +12 -25
  179. package/lib/chevre/service/payment/movieTicket.d.ts +1 -1
  180. package/lib/chevre/service/payment/movieTicket.js +4 -3
  181. package/lib/chevre/service/product.js +1 -5
  182. package/lib/chevre/service/report/telemetry.d.ts +0 -11
  183. package/lib/chevre/service/report/telemetry.js +21 -24
  184. package/lib/chevre/service/reserve/cancelReservation.js +0 -2
  185. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +0 -3
  186. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +20 -20
  187. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +2 -3
  188. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -31
  189. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +2 -3
  190. package/lib/chevre/service/reserve/useReservation.js +1 -8
  191. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +1 -1
  192. package/lib/chevre/service/task/deleteTransaction.js +10 -8
  193. package/lib/chevre/service/task/importOffersFromCOA.js +4 -0
  194. package/lib/chevre/service/task/returnPayTransaction.js +2 -12
  195. package/lib/chevre/service/task/voidReserveTransaction.js +3 -1
  196. package/lib/chevre/service/task.d.ts +9 -0
  197. package/lib/chevre/service/task.js +43 -4
  198. package/lib/chevre/service/transaction/deleteTransaction.d.ts +21 -0
  199. package/lib/chevre/service/transaction/deleteTransaction.js +226 -0
  200. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +11 -1
  201. package/lib/chevre/service/transaction/moneyTransfer/factory.js +3 -1
  202. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +1 -0
  203. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +1 -1
  204. package/lib/chevre/service/transaction/moneyTransfer.js +9 -12
  205. package/lib/chevre/service/transaction/orderProgramMembership.js +2 -1
  206. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +42 -30
  207. package/lib/chevre/service/transaction/placeOrder.js +1 -5
  208. package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +1 -1
  209. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.d.ts +1 -0
  210. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
  211. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.d.ts +1 -0
  212. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +1 -1
  213. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.d.ts +1 -0
  214. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.d.ts +3 -0
  215. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +7 -3
  216. package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +1 -0
  217. package/lib/chevre/service/transaction/placeOrderInProgress/result.js +2 -2
  218. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.d.ts +1 -1
  219. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js +2 -2
  220. package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +2 -1
  221. package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +23 -17
  222. package/lib/chevre/service/transaction/placeOrderInProgress.d.ts +1 -3
  223. package/lib/chevre/service/transaction/placeOrderInProgress.js +22 -11
  224. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +10 -1
  225. package/lib/chevre/service/transaction/returnOrder.js +1 -5
  226. package/lib/chevre/service/transaction.d.ts +8 -13
  227. package/lib/chevre/service/transaction.js +12 -145
  228. package/lib/chevre/settings.d.ts +6 -1
  229. package/lib/chevre/settings.js +17 -5
  230. package/package.json +5 -5
  231. package/example/src/chevre/migrateMoneyTransferPendingTransactionIdentifier.ts +0 -96
  232. package/example/src/chevre/migrateMovieAdditionalProperties.ts +0 -98
@@ -26,8 +26,13 @@ exports.WebAPIIdentifier = factory.service.webAPI.Identifier;
26
26
  */
27
27
  function voidTransaction(params) {
28
28
  return (repos) => __awaiter(this, void 0, void 0, function* () {
29
+ const transaction = yield repos.transaction.findById({
30
+ typeOf: params.purpose.typeOf,
31
+ id: params.purpose.id,
32
+ inclusion: ['_id', 'typeOf', 'status']
33
+ });
29
34
  // 座席仮予約アクション検索
30
- const authorizeActions = yield repos.action.searchByPurpose({
35
+ let authorizeActions = yield repos.action.searchByPurpose({
31
36
  typeOf: factory.actionType.AuthorizeAction,
32
37
  purpose: {
33
38
  typeOf: params.purpose.typeOf,
@@ -36,6 +41,17 @@ function voidTransaction(params) {
36
41
  })
37
42
  .then((actions) => actions
38
43
  .filter((a) => a.object.typeOf === factory.action.authorize.offer.seatReservation.ObjectType.SeatReservation));
44
+ switch (transaction.status) {
45
+ case factory.transactionStatusType.InProgress:
46
+ throw new factory.errors.NotImplemented(`${transaction.status} not implemented`);
47
+ // 確定取引に対応(2023-05-07~)
48
+ case factory.transactionStatusType.Confirmed:
49
+ // アクションステータスを検証する
50
+ authorizeActions = authorizeActions.filter((a) => a.actionStatus !== factory.actionStatusType.CompletedActionStatus);
51
+ break;
52
+ default:
53
+ // no op
54
+ }
39
55
  yield Promise.all(authorizeActions.map((action) => __awaiter(this, void 0, void 0, function* () {
40
56
  yield repos.action.cancel({ typeOf: action.typeOf, id: action.id });
41
57
  switch (action.instrument.identifier) {
@@ -186,7 +186,7 @@ function createAggregateScreeningEventIfNotExist(params) {
186
186
  }
187
187
  }
188
188
  if (aggregateTasks.length > 0) {
189
- yield repos.task.saveMany(aggregateTasks);
189
+ yield repos.task.saveMany(aggregateTasks, { emitImmediately: true });
190
190
  }
191
191
  });
192
192
  }
@@ -18,7 +18,14 @@ const factory = require("../../factory");
18
18
  */
19
19
  function deleteOrder(params) {
20
20
  return (repos) => __awaiter(this, void 0, void 0, function* () {
21
- const order = params.object;
21
+ const orders = yield repos.order.search({
22
+ orderNumbers: [params.object.orderNumber]
23
+ });
24
+ const order = orders.shift();
25
+ if (order === undefined) {
26
+ // すでに削除済
27
+ return;
28
+ }
22
29
  // 注文アイテムの予約を削除
23
30
  yield deleteReservationsByOrder(order)(repos);
24
31
  // 所有権削除
@@ -63,13 +70,6 @@ function deleteOwnershipInfosByOrder(order) {
63
70
  // 所有期限切れのもの(ownedThroughの存在しないものは削除してはいけない)
64
71
  ownedThrough: { $lt: now }
65
72
  });
66
- // await repos.ownershipInfo.ownershipInfoModel.deleteMany({
67
- // 'project.id': { $eq: order.project.id },
68
- // identifier: { $in: ownershipIdentifiers },
69
- // // 所有期限切れのもの(ownedThroughの存在しないものは削除してはいけない)
70
- // ownedThrough: { $exists: true, $lt: now }
71
- // })
72
- // .exec();
73
73
  }
74
74
  });
75
75
  }
@@ -26,32 +26,10 @@ function getOrderWithToken(params) {
26
26
  if (typeof credentials_1.credentials.hub.clientId !== 'string') {
27
27
  return params.order;
28
28
  }
29
- // 冗長な個人情報をマスク(最低限の情報に)
30
- // const customer4orderToken: factory.order.ISimpleCustomer =
31
- // (params.order.customer.typeOf === factory.organizationType.Organization)
32
- // ? {
33
- // id: params.order.customer.id,
34
- // name: '****',
35
- // // project: params.order.customer.project,
36
- // typeOf: params.order.customer.typeOf
37
- // }
38
- // : {
39
- // id: params.order.customer.id,
40
- // typeOf: params.order.customer.typeOf
41
- // };
42
- // const seller4orderToken: Omit<factory.order.ISeller, 'name'> = {
43
- // id: params.order.seller.id,
44
- // typeOf: params.order.seller.typeOf
45
- // };
46
29
  // 最適化(2023-01-31~)
47
30
  const order4token = {
48
31
  typeOf: params.order.typeOf,
49
- // seller: seller4orderToken,
50
- // customer: customer4orderToken,
51
32
  orderNumber: params.order.orderNumber
52
- // price: params.order.price,
53
- // priceCurrency: params.order.priceCurrency,
54
- // orderDate: params.order.orderDate
55
33
  };
56
34
  const token = yield new Promise((resolve, reject) => {
57
35
  // 所有権を暗号化する
@@ -163,20 +141,31 @@ const ORDER_STORAGE_PERIOD_IN_DAYS = (typeof process.env.ORDER_STORAGE_PERIOD_IN
163
141
  // tslint:disable-next-line:no-magic-numbers
164
142
  365;
165
143
  function createDeleteTasks(order) {
166
- return [{
167
- project: order.project,
168
- name: factory.taskName.DeleteOrder,
169
- status: factory.taskStatus.Ready,
170
- runsAt: moment(order.orderDate)
171
- .add(ORDER_STORAGE_PERIOD_IN_DAYS, 'days')
172
- .toDate(),
173
- remainingNumberOfTries: 10,
174
- numberOfTried: 0,
175
- executionResults: [],
176
- data: {
177
- object: order
178
- }
179
- }];
144
+ if (settings_1.USE_DELETE_ORDER_TASK) {
145
+ return [{
146
+ project: order.project,
147
+ name: factory.taskName.DeleteOrder,
148
+ status: factory.taskStatus.Ready,
149
+ runsAt: moment(order.orderDate)
150
+ .add(ORDER_STORAGE_PERIOD_IN_DAYS, 'days')
151
+ .toDate(),
152
+ remainingNumberOfTries: 10,
153
+ numberOfTried: 0,
154
+ executionResults: [],
155
+ data: {
156
+ object: {
157
+ confirmationNumber: order.confirmationNumber,
158
+ orderDate: order.orderDate,
159
+ orderNumber: order.orderNumber,
160
+ project: order.project,
161
+ typeOf: order.typeOf
162
+ }
163
+ }
164
+ }];
165
+ }
166
+ else {
167
+ return [];
168
+ }
180
169
  }
181
170
  exports.createDeleteTasks = createDeleteTasks;
182
171
  function createConfirmReservationActionObject4ChevreByOrder(params) {
@@ -89,7 +89,7 @@ function onOrderStatusChanged(params) {
89
89
  break;
90
90
  default:
91
91
  }
92
- yield repos.task.saveMany(tasks);
92
+ yield repos.task.saveMany(tasks, { emitImmediately: true });
93
93
  });
94
94
  }
95
95
  exports.onOrderStatusChanged = onOrderStatusChanged;
@@ -269,6 +269,6 @@ function onPlaceOrder(params) {
269
269
  }
270
270
  }
271
271
  // タスク保管
272
- yield repos.task.saveMany(taskAttributes);
272
+ yield repos.task.saveMany(taskAttributes, { emitImmediately: true });
273
273
  });
274
274
  }
@@ -204,10 +204,6 @@ function onReturn(returnActionAttributes) {
204
204
  }
205
205
  }
206
206
  // タスク保管
207
- // saveManyに変更(2023-02-01~)
208
- yield repos.task.saveMany(taskAttributes);
209
- // await Promise.all(taskAttributes.map(async (taskAttribute) => {
210
- // return repos.task.save(taskAttribute);
211
- // }));
207
+ yield repos.task.saveMany(taskAttributes, { emitImmediately: true });
212
208
  });
213
209
  }
@@ -178,6 +178,6 @@ function onSend(params) {
178
178
  }
179
179
  }
180
180
  // タスク保管
181
- yield repos.task.saveMany(taskAttributes);
181
+ yield repos.task.saveMany(taskAttributes, { emitImmediately: true });
182
182
  });
183
183
  }
@@ -46,7 +46,7 @@ function onPaid(payAction) {
46
46
  }));
47
47
  }
48
48
  // タスク保管
49
- return repos.task.saveMany(taskAttributes);
49
+ return repos.task.saveMany(taskAttributes, { emitImmediately: true });
50
50
  });
51
51
  }
52
52
  exports.onPaid = onPaid;
@@ -92,7 +92,7 @@ function onRefund(refundAction) {
92
92
  }));
93
93
  }
94
94
  // タスク保管
95
- return repos.task.saveMany(taskAttributes);
95
+ return repos.task.saveMany(taskAttributes, { emitImmediately: true });
96
96
  });
97
97
  }
98
98
  exports.onRefund = onRefund;
@@ -52,10 +52,18 @@ exports.voidPayTransaction = voidPayTransaction;
52
52
  function invalidatePaymentUrl(params) {
53
53
  return (repos) => __awaiter(this, void 0, void 0, function* () {
54
54
  var _a, _b, _c, _d, _e;
55
+ if (params.purpose.typeOf !== factory.transactionType.PlaceOrder) {
56
+ throw new factory.errors.Argument('purpose.typeOf', `must be ${factory.transactionType.PlaceOrder}`);
57
+ }
55
58
  const transaction = yield repos.transaction.findById({
56
59
  typeOf: params.purpose.typeOf,
57
60
  id: params.purpose.id
58
61
  });
62
+ // 確定取引に対応(2023-05-03~)
63
+ if (transaction.status === factory.transactionStatusType.Confirmed) {
64
+ // no op
65
+ return;
66
+ }
59
67
  const paymentMethodIdByPaymentUrl = (_a = transaction.object.paymentMethods) === null || _a === void 0 ? void 0 : _a.paymentMethodId;
60
68
  const paymentMethodType = (_b = transaction.object.paymentMethods) === null || _b === void 0 ? void 0 : _b.typeOf;
61
69
  if (typeof paymentMethodIdByPaymentUrl === 'string' && paymentMethodIdByPaymentUrl.length > 0
@@ -70,12 +78,10 @@ function invalidatePaymentUrl(params) {
70
78
  ? transaction.seller.name
71
79
  : String((_c = transaction.seller.name) === null || _c === void 0 ? void 0 : _c.ja),
72
80
  id: transaction.seller.id
73
- // project: transaction.seller.project
74
81
  },
75
82
  recipient: { typeOf: transaction.agent.typeOf, name: transaction.agent.name },
76
83
  object: [{
77
84
  typeOf: factory.service.paymentService.PaymentServiceType.CreditCard,
78
- // tslint:disable-next-line:max-line-length
79
85
  id: (_e = (_d = transaction.object.paymentMethods) === null || _d === void 0 ? void 0 : _d.issuedThrough) === null || _e === void 0 ? void 0 : _e.id,
80
86
  paymentMethod: {
81
87
  additionalProperty: [],
@@ -96,17 +102,20 @@ exports.invalidatePaymentUrl = invalidatePaymentUrl;
96
102
  * apiもしくはタスクから決済承認を取り消す
97
103
  */
98
104
  function processVoidPayTransaction(params) {
105
+ // tslint:disable-next-line:max-func-body-length
99
106
  return (repos) => __awaiter(this, void 0, void 0, function* () {
107
+ var _a, _b;
100
108
  let transaction;
101
109
  // アクションID指定の場合、進行中取引検証(2023-02-24~)
102
110
  if (typeof params.id === 'string') {
103
111
  transaction = yield repos.transaction.findInProgressById({ typeOf: params.purpose.typeOf, id: params.purpose.id });
104
112
  }
105
113
  else {
106
- transaction = yield repos.transaction.findById({
114
+ transaction = (yield repos.transaction.findById({
107
115
  typeOf: params.purpose.typeOf,
108
- id: params.purpose.id
109
- });
116
+ id: params.purpose.id,
117
+ inclusion: ['_id', 'typeOf', 'status', 'result.order.paymentMethods']
118
+ }));
110
119
  }
111
120
  // 承認アクションを取得
112
121
  let authorizeActions;
@@ -122,7 +131,7 @@ function processVoidPayTransaction(params) {
122
131
  const authorizeActionsOnTransaction = yield repos.action.searchByPurpose({
123
132
  typeOf: factory.actionType.AuthorizeAction,
124
133
  purpose: {
125
- typeOf: factory.transactionType.PlaceOrder,
134
+ typeOf: transaction.typeOf,
126
135
  id: transaction.id
127
136
  }
128
137
  });
@@ -131,12 +140,37 @@ function processVoidPayTransaction(params) {
131
140
  return ((_a = a.object) === null || _a === void 0 ? void 0 : _a.typeOf) === factory.action.authorize.paymentMethod.any.ResultType.Payment
132
141
  && ((_b = a.instrument) === null || _b === void 0 ? void 0 : _b.identifier) === factory.action.authorize.paymentMethod.any.ServiceIdentifier.Chevre;
133
142
  });
143
+ switch (transaction.status) {
144
+ case factory.transactionStatusType.InProgress:
145
+ throw new factory.errors.NotImplemented(`${transaction.status} not implemented`);
146
+ // 確定取引に対応(2023-05-03~)
147
+ case factory.transactionStatusType.Confirmed:
148
+ // アクションステータスを検証する
149
+ authorizeActions = authorizeActions.filter((a) => a.actionStatus !== factory.actionStatusType.CompletedActionStatus);
150
+ if (transaction.typeOf === factory.transactionType.PlaceOrder) {
151
+ const paymentMethodIds = (_b = (_a = transaction.result) === null || _a === void 0 ? void 0 : _a.order) === null || _b === void 0 ? void 0 : _b.paymentMethods.map((p) => {
152
+ return p.paymentMethodId;
153
+ });
154
+ if (!Array.isArray(paymentMethodIds)) {
155
+ throw new factory.errors.Argument('Transaction', `${transaction.id} must have result.order.paymentMethods`);
156
+ }
157
+ if (paymentMethodIds.length > 0) {
158
+ authorizeActions = authorizeActions.filter((a) => {
159
+ // paymentMethodIdが存在しない、あるいは、注文のpaymentMethodIdsに含まれなければ、アクション取消対象
160
+ const paymentMethodIdByAction = a.object.paymentMethodId;
161
+ const includedInOrder = typeof paymentMethodIdByAction === 'string'
162
+ && paymentMethodIds.includes(paymentMethodIdByAction);
163
+ return !includedInOrder;
164
+ });
165
+ }
166
+ }
167
+ break;
168
+ default:
169
+ // no op
170
+ }
134
171
  }
135
172
  const errors = [];
136
173
  for (const action of authorizeActions) {
137
- // 直列にゆっくり処理する場合↓
138
- // tslint:disable-next-line:no-magic-numbers
139
- // await new Promise((resolve) => setTimeout(() => { resolve(); }, 1000));
140
174
  // 失敗するケースがあっても、残りが少なくとも処理されるようにエラーハンドリング
141
175
  try {
142
176
  // 取引が存在すれば中止
@@ -194,7 +228,7 @@ function publishPaymentUrl(params) {
194
228
  paymentUrl: result.paymentUrl,
195
229
  issuedThrough: { id: (typeof startParams.object.id === 'string') ? startParams.object.id : '' }
196
230
  };
197
- yield repos.transaction.findByIdAndUpdate({
231
+ yield repos.transaction.findByIdAndUpdateInProgress({
198
232
  id: transaction.id,
199
233
  update: { $set: { 'object.paymentMethods': paymentMethodByPaymentUrl } }
200
234
  });
@@ -206,6 +240,7 @@ exports.publishPaymentUrl = publishPaymentUrl;
206
240
  * 決済承認
207
241
  */
208
242
  function authorize(params) {
243
+ // tslint:disable-next-line:max-func-body-length
209
244
  return (repos) => __awaiter(this, void 0, void 0, function* () {
210
245
  var _a, _b;
211
246
  const transaction = yield repos.transaction.findInProgressById({ typeOf: params.purpose.typeOf, id: params.purpose.id });
@@ -217,6 +252,21 @@ function authorize(params) {
217
252
  const paymentMethodIdByTransaction = (_a = transaction.object.paymentMethods) === null || _a === void 0 ? void 0 : _a.paymentMethodId;
218
253
  if (params.object.paymentMethodId === paymentMethodIdByTransaction) {
219
254
  transactionNumber = params.object.paymentMethodId;
255
+ // 既に承認済であれば何もしない(2023-05-15~)
256
+ const existingCompletedAuthorizeActions = yield repos.action.searchByPurpose({
257
+ typeOf: factory.actionType.AuthorizeAction,
258
+ purpose: { id: transaction.id, typeOf: transaction.typeOf },
259
+ actionStatus: { $eq: factory.actionStatusType.CompletedActionStatus },
260
+ object: {
261
+ paymentMethodId: { $eq: transactionNumber },
262
+ typeOf: { $eq: factory.action.authorize.paymentMethod.any.ResultType.Payment }
263
+ },
264
+ sort: { startDate: factory.sortType.Ascending }
265
+ });
266
+ const existingCompletedAuthorizeAction = existingCompletedAuthorizeActions.shift();
267
+ if (existingCompletedAuthorizeAction !== undefined) {
268
+ return existingCompletedAuthorizeAction;
269
+ }
220
270
  }
221
271
  else {
222
272
  // 取引にないpaymentMethodIdの指定はクライアントエラー
@@ -6,10 +6,11 @@ import { MongoRepository as EventRepo } from '../../../repo/event';
6
6
  import { MongoRepository as ProductRepo } from '../../../repo/product';
7
7
  import { MongoRepository as ProjectRepo } from '../../../repo/project';
8
8
  import { MongoRepository as SellerRepo } from '../../../repo/seller';
9
- import { ICheckResult } from './checkByIdentifier';
10
9
  export declare function validateMovieTicket(params: factory.assetTransaction.pay.IStartParamsWithoutDetail, paymentServiceId: string, useCheckMovieTicketBeforePay: boolean): (repos: {
11
10
  event: EventRepo;
12
11
  product: ProductRepo;
13
12
  project: ProjectRepo;
14
13
  seller: SellerRepo;
15
- }) => Promise<ICheckResult | undefined>;
14
+ }) => Promise<{
15
+ accountsReceivablesByServiceType: factory.assetTransaction.pay.IAccountsReceivableByServiceType[];
16
+ }>;
@@ -15,8 +15,8 @@ exports.validateMovieTicket = void 0;
15
15
  */
16
16
  const factory = require("../../../factory");
17
17
  const checkByIdentifier_1 = require("./checkByIdentifier");
18
- // tslint:disable-next-line:max-func-body-length
19
18
  function validateMovieTicket(params, paymentServiceId, useCheckMovieTicketBeforePay) {
19
+ // tslint:disable-next-line:max-func-body-length
20
20
  return (repos) => __awaiter(this, void 0, void 0, function* () {
21
21
  var _a, _b, _c, _d;
22
22
  const movieTickets = (_a = params.object.paymentMethod) === null || _a === void 0 ? void 0 : _a.movieTickets;
@@ -54,7 +54,7 @@ function validateMovieTicket(params, paymentServiceId, useCheckMovieTicketBefore
54
54
  }
55
55
  // オプション追加(2023-03-06~)
56
56
  if (!useCheckMovieTicketBeforePay) {
57
- return;
57
+ return { accountsReceivablesByServiceType: [] };
58
58
  }
59
59
  const checkResult = yield (0, checkByIdentifier_1.checkByIdentifier)({
60
60
  movieTickets: movieTickets,
@@ -62,24 +62,16 @@ function validateMovieTicket(params, paymentServiceId, useCheckMovieTicketBefore
62
62
  screeningEvent: screeningEvent,
63
63
  paymentServiceId
64
64
  })(repos);
65
- // checkResult.movieTicketsへの依存排除(2023-03-24~)
66
- // 要求に対して十分かどうか検証する
67
- // const availableMovieTickets = checkResult.movieTickets.filter((t) => t.amount?.validThrough === undefined);
68
- // 総数が足りているか(券種ごとに枚数検証を実行するので不要)
69
- // if (availableMovieTickets.length < movieTickets.length) {
70
- // throw new factory.errors.Argument(
71
- // 'movieTickets',
72
- // `${movieTickets.length - availableMovieTickets.length} movie tickets short`
73
- // );
74
- // }
65
+ const accountsReceivablesByServiceType = [];
75
66
  // 券種ごとに枚数が足りているか
76
67
  const serviceTypes = [...new Set(movieTickets.map((t) => t.serviceType))];
77
68
  serviceTypes.forEach((serviceType) => {
78
- var _a, _b, _c;
69
+ var _a, _b;
79
70
  const requiredMovieTicketsCountByServiceType = movieTickets.filter((t) => t.serviceType === serviceType).length;
80
71
  let availableMovieTicketsCountByServiceType = 0;
81
72
  const ykknInfos = (_b = (_a = checkResult.purchaseNumberAuthResult.knyknrNoInfoOut) === null || _a === void 0 ? void 0 : _a.find((knyknrNoInfoOut) => knyknrNoInfoOut.knyknrNo === movieTicketIdentifiers[0])) === null || _b === void 0 ? void 0 : _b.ykknInfo;
82
- const ykknKnshbtsmiNum = (_c = ykknInfos === null || ykknInfos === void 0 ? void 0 : ykknInfos.find((ykknInfo) => ykknInfo.ykknshTyp === serviceType)) === null || _c === void 0 ? void 0 : _c.ykknKnshbtsmiNum;
73
+ const ykknInfoOfServiceType = ykknInfos === null || ykknInfos === void 0 ? void 0 : ykknInfos.find((ykknInfo) => ykknInfo.ykknshTyp === serviceType);
74
+ const ykknKnshbtsmiNum = ykknInfoOfServiceType === null || ykknInfoOfServiceType === void 0 ? void 0 : ykknInfoOfServiceType.ykknKnshbtsmiNum;
83
75
  if (typeof ykknKnshbtsmiNum === 'string') {
84
76
  availableMovieTicketsCountByServiceType = Number(ykknKnshbtsmiNum);
85
77
  }
@@ -87,18 +79,13 @@ function validateMovieTicket(params, paymentServiceId, useCheckMovieTicketBefore
87
79
  const shortNumber = requiredMovieTicketsCountByServiceType - availableMovieTicketsCountByServiceType;
88
80
  throw new factory.errors.Argument('movieTickets', `${shortNumber} movie tickets by service type ${serviceType} short`);
89
81
  }
90
- // const availableMovieTicketsByServiceType = availableMovieTickets.filter((t) => t.serviceType === serviceType);
91
- // if (availableMovieTicketsByServiceType.length < requiredMovieTicketsCountByServiceType) {
92
- // const shortNumber = requiredMovieTicketsCountByServiceType - availableMovieTicketsByServiceType.length;
93
- // throw new factory.errors.Argument(
94
- // 'movieTickets',
95
- // `${shortNumber} movie tickets by service type ${serviceType} short`
96
- // );
97
- // }
82
+ // checkResultから計上金額を取得
83
+ const accountsReceivableByResponse = ykknInfoOfServiceType === null || ykknInfoOfServiceType === void 0 ? void 0 : ykknInfoOfServiceType.kijUnip;
84
+ accountsReceivablesByServiceType.push(Object.assign({ serviceType }, (typeof accountsReceivableByResponse === 'string')
85
+ ? { accountsReceivable: Number(accountsReceivableByResponse) }
86
+ : undefined));
98
87
  });
99
- // checkはするが保管は保留(2023-03-09~)
100
- return;
101
- // return checkResult;
88
+ return { accountsReceivablesByServiceType };
102
89
  });
103
90
  }
104
91
  exports.validateMovieTicket = validateMovieTicket;
@@ -42,7 +42,7 @@ declare function checkMovieTicket(params: factory.action.check.paymentMethod.mov
42
42
  }>;
43
43
  interface IAuthorizeResult {
44
44
  accountId: string;
45
- checkResult?: ICheckResult;
45
+ accountsReceivablesByServiceType: factory.assetTransaction.pay.IAccountsReceivableByServiceType[];
46
46
  payAction: factory.action.trade.pay.IAction;
47
47
  }
48
48
  /**
@@ -106,11 +106,12 @@ function authorize(params, transaction, paymentServiceId, useCheckMovieTicketBef
106
106
  return (repos) => __awaiter(this, void 0, void 0, function* () {
107
107
  var _a, _b;
108
108
  let accountId;
109
- let checkResult;
110
109
  let payAction;
110
+ let accountsReceivablesByServiceType = [];
111
111
  try {
112
112
  // MovieTicket決済の場合、認証
113
- checkResult = yield (0, validation_1.validateMovieTicket)(params, paymentServiceId, useCheckMovieTicketBeforePay)(repos);
113
+ const validateMovieTicketResult = yield (0, validation_1.validateMovieTicket)(params, paymentServiceId, useCheckMovieTicketBeforePay)(repos);
114
+ accountsReceivablesByServiceType = validateMovieTicketResult.accountsReceivablesByServiceType;
114
115
  const paymentMethod = transaction.object.paymentMethod;
115
116
  const paymentMethodType = String(paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.typeOf);
116
117
  const additionalProperty = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.additionalProperty;
@@ -141,7 +142,7 @@ function authorize(params, transaction, paymentServiceId, useCheckMovieTicketBef
141
142
  catch (error) {
142
143
  throw (0, errorHandler_1.handleMvtkReserveError)(error);
143
144
  }
144
- return { accountId, checkResult, payAction };
145
+ return { accountId, payAction, accountsReceivablesByServiceType };
145
146
  });
146
147
  }
147
148
  exports.authorize = authorize;
@@ -77,10 +77,6 @@ function onRegistered(actionAttributes, __) {
77
77
  }
78
78
  }
79
79
  // タスク保管
80
- // saveManyに変更(2023-02-01~)
81
- yield repos.task.saveMany(taskAttributes);
82
- // await Promise.all(taskAttributes.map(async (taskAttribute) => {
83
- // return repos.task.save(taskAttribute);
84
- // }));
80
+ yield repos.task.saveMany(taskAttributes, { emitImmediately: true });
85
81
  });
86
82
  }
@@ -148,19 +148,15 @@ export interface ISellerFlowTransactionResult {
148
148
  /**
149
149
  * イベントまでの合計残り時間(ミリ秒)
150
150
  */
151
- totalTimeLeftUntilEventInMilliseconds: number;
152
151
  /**
153
152
  * イベントまでの最大残り時間(ミリ秒)
154
153
  */
155
- maxTimeLeftUntilEventInMilliseconds: number;
156
154
  /**
157
155
  * イベントまでの最小残り時間(ミリ秒)
158
156
  */
159
- minTimeLeftUntilEventInMilliseconds: number;
160
157
  /**
161
158
  * イベントまでの平均残り時間(ミリ秒)
162
159
  */
163
- averageTimeLeftUntilEventInMilliseconds: number;
164
160
  /**
165
161
  * 取引の合計金額(yen)
166
162
  */
@@ -180,15 +176,12 @@ export interface ISellerFlowTransactionResult {
180
176
  /**
181
177
  * アクション数合計値(成立取引)
182
178
  */
183
- totalNumberOfActionsOnConfirmed: number;
184
179
  /**
185
180
  * 最大アクション数(成立取引)
186
181
  */
187
- maxNumberOfActionsOnConfirmed: number;
188
182
  /**
189
183
  * 最小アクション数(成立取引)
190
184
  */
191
- minNumberOfActionsOnConfirmed: number;
192
185
  /**
193
186
  * 注文アイテム数合計値
194
187
  */
@@ -205,10 +198,6 @@ export interface ISellerFlowTransactionResult {
205
198
  * 平均注文アイテム数
206
199
  */
207
200
  averageNumberOfOrderItems: number;
208
- /**
209
- * 平均アクション数(成立取引)
210
- */
211
- averageNumberOfActionsOnConfirmed: number;
212
201
  }
213
202
  /**
214
203
  * 販売者が対象のフローデータ
@@ -247,17 +247,12 @@ function createSellerFlowTransactionResult(measuredFrom, measuredThrough, seller
247
247
  const maxRequiredTimeInMilliseconds = requiredTimesConfirmed.reduce((a, b) => Math.max(a, b), 0);
248
248
  const minRequiredTimeInMilliseconds = requiredTimesConfirmed.reduce((a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? requiredTimesConfirmed[0] : 0);
249
249
  const averageRequiredTimeInMilliseconds = (numberOfTransactionsConfirmed > 0) ? totalRequiredTimeInMilliseconds / numberOfTransactionsConfirmed : 0;
250
- // イベントまでの残り時間算出(イベント開始日時と成立日時の差)
251
- const timesLeftUntilEvent = confirmedTransactions.map((transaction) => {
252
- // 座席予約は必ず存在する
253
- const seatReservation = transaction.object.authorizeActions.find((action) => action.object.typeOf === factory.action.authorize.offer.seatReservation.ObjectType.SeatReservation);
254
- return moment(seatReservation.object.event.startDate)
255
- .diff(moment(transaction.endDate), 'milliseconds');
256
- });
257
- const totalTimeLeftUntilEventInMilliseconds = timesLeftUntilEvent.reduce((a, b) => a + b, 0);
258
- const maxTimeLeftUntilEventInMilliseconds = timesLeftUntilEvent.reduce((a, b) => Math.max(a, b), 0);
259
- const minTimeLeftUntilEventInMilliseconds = timesLeftUntilEvent.reduce((a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? timesLeftUntilEvent[0] : 0);
260
- const averageTimeLeftUntilEventInMilliseconds = (numberOfTransactionsConfirmed > 0) ? totalTimeLeftUntilEventInMilliseconds / numberOfTransactionsConfirmed : 0;
250
+ // const totalTimeLeftUntilEventInMilliseconds = timesLeftUntilEvent.reduce((a, b) => a + b, 0);
251
+ // const maxTimeLeftUntilEventInMilliseconds = timesLeftUntilEvent.reduce((a, b) => Math.max(a, b), 0);
252
+ // const minTimeLeftUntilEventInMilliseconds =
253
+ // timesLeftUntilEvent.reduce((a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? timesLeftUntilEvent[0] : 0);
254
+ // const averageTimeLeftUntilEventInMilliseconds =
255
+ // (numberOfTransactionsConfirmed > 0) ? totalTimeLeftUntilEventInMilliseconds / numberOfTransactionsConfirmed : 0;
261
256
  // 金額算出
262
257
  const amounts = confirmedTransactions.map((transaction) => transaction.result.order.price);
263
258
  const totalAmount = amounts.reduce((a, b) => a + b, 0);
@@ -265,11 +260,13 @@ function createSellerFlowTransactionResult(measuredFrom, measuredThrough, seller
265
260
  const minAmount = amounts.reduce((a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? amounts[0] : 0);
266
261
  const averageAmount = (numberOfTransactionsConfirmed > 0) ? totalAmount / numberOfTransactionsConfirmed : 0;
267
262
  // アクション数集計
268
- const numbersOfActions = confirmedTransactions.map((t) => t.object.authorizeActions.length);
269
- const totalNumberOfActions = numbersOfActions.reduce((a, b) => a + b, 0);
270
- const maxNumberOfActions = numbersOfActions.reduce((a, b) => Math.max(a, b), 0);
271
- const minNumberOfActions = numbersOfActions.reduce((a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? numbersOfActions[0] : 0);
272
- const averageNumberOfActions = (numberOfTransactionsConfirmed > 0) ? totalNumberOfActions / numberOfTransactionsConfirmed : 0;
263
+ // const numbersOfActions = confirmedTransactions.map((t) => t.object.authorizeActions.length);
264
+ // const totalNumberOfActions = numbersOfActions.reduce((a, b) => a + b, 0);
265
+ // const maxNumberOfActions = numbersOfActions.reduce((a, b) => Math.max(a, b), 0);
266
+ // const minNumberOfActions = numbersOfActions.reduce(
267
+ // (a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? numbersOfActions[0] : 0
268
+ // );
269
+ // const averageNumberOfActions = (numberOfTransactionsConfirmed > 0) ? totalNumberOfActions / numberOfTransactionsConfirmed : 0;
273
270
  // 期限切れ取引数
274
271
  const numberOfTransactionsExpired = expiredTransactions.length;
275
272
  const expiredTransactionIds = expiredTransactions.map((transaction) => transaction.id);
@@ -284,18 +281,18 @@ function createSellerFlowTransactionResult(measuredFrom, measuredThrough, seller
284
281
  maxRequiredTimeInMilliseconds: maxRequiredTimeInMilliseconds,
285
282
  minRequiredTimeInMilliseconds: minRequiredTimeInMilliseconds,
286
283
  averageRequiredTimeInMilliseconds: parseFloat(averageRequiredTimeInMilliseconds.toFixed(1)),
287
- totalTimeLeftUntilEventInMilliseconds: totalTimeLeftUntilEventInMilliseconds,
288
- maxTimeLeftUntilEventInMilliseconds: maxTimeLeftUntilEventInMilliseconds,
289
- minTimeLeftUntilEventInMilliseconds: minTimeLeftUntilEventInMilliseconds,
290
- averageTimeLeftUntilEventInMilliseconds: averageTimeLeftUntilEventInMilliseconds,
284
+ // totalTimeLeftUntilEventInMilliseconds: totalTimeLeftUntilEventInMilliseconds,
285
+ // maxTimeLeftUntilEventInMilliseconds: maxTimeLeftUntilEventInMilliseconds,
286
+ // minTimeLeftUntilEventInMilliseconds: minTimeLeftUntilEventInMilliseconds,
287
+ // averageTimeLeftUntilEventInMilliseconds: averageTimeLeftUntilEventInMilliseconds,
291
288
  totalAmount: totalAmount,
292
289
  maxAmount: maxAmount,
293
290
  minAmount: minAmount,
294
291
  averageAmount: parseFloat(averageAmount.toFixed(1)),
295
- totalNumberOfActionsOnConfirmed: totalNumberOfActions,
296
- maxNumberOfActionsOnConfirmed: maxNumberOfActions,
297
- minNumberOfActionsOnConfirmed: minNumberOfActions,
298
- averageNumberOfActionsOnConfirmed: parseFloat(averageNumberOfActions.toFixed(1)),
292
+ // totalNumberOfActionsOnConfirmed: totalNumberOfActions,
293
+ // maxNumberOfActionsOnConfirmed: maxNumberOfActions,
294
+ // minNumberOfActionsOnConfirmed: minNumberOfActions,
295
+ // averageNumberOfActionsOnConfirmed: parseFloat(averageNumberOfActions.toFixed(1)),
299
296
  // tslint:disable-next-line:no-suspicious-comment
300
297
  totalNumberOfOrderItems: 0,
301
298
  // tslint:disable-next-line:no-suspicious-comment
@@ -144,7 +144,6 @@ function cancelPendingReservation(actionAttributesList) {
144
144
  // canceledReservationId: canceledReservation?.id
145
145
  );
146
146
  yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: actionResult });
147
- // await onReservationCanceledByAction(actionAttributes)({ task: repos.task });
148
147
  if (actionObject.typeOf === factory.reservationType.ReservationPackage) {
149
148
  // 最新のconfirmedReservationsを検索
150
149
  canceledReservations = yield repos.reservation.search({
@@ -297,7 +296,6 @@ function cancelReservation(actionAttributesList) {
297
296
  // canceledReservationId: canceledReservation?.id
298
297
  );
299
298
  yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: actionResult });
300
- // await onReservationCanceledByAction(actionAttributes)({ task: repos.task });
301
299
  let canceledReservations = [];
302
300
  if (actionAttributes.object.typeOf === factory.reservationType.ReservationPackage) {
303
301
  const reservationNumber = actionAttributes.object.reservationNumber;
@@ -4,9 +4,6 @@ type IEventReservation = factory.reservation.IReservation<factory.reservationTyp
4
4
  /**
5
5
  * 予約取消後のアクション
6
6
  */
7
- export declare function onReservationCanceledByAction(actionAttributes: factory.action.cancel.reservation.IAttributes): (repos: {
8
- task: TaskRepo;
9
- }) => Promise<void>;
10
7
  export declare function onReservationCanceled(canceledReservations: IEventReservation[], useInformReservation: boolean): (repos: {
11
8
  task: TaskRepo;
12
9
  }) => Promise<void>;