@chevre/domain 21.2.0-alpha.16 → 21.2.0-alpha.161
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.
- package/example/src/chevre/aggregateEventReservation.ts +1 -1
- package/example/src/chevre/aggregateSellerPaymentAccepted.ts +27 -0
- package/example/src/chevre/aggregation/aggregateSystem.ts +85 -27
- package/example/src/chevre/countDelayedTasks.ts +7 -2
- package/example/src/chevre/createManyEventsIfNotExist.ts +199 -46
- package/example/src/chevre/deleteTasksByName.ts +10 -2
- package/example/src/chevre/findScreeningRoomsByBranchCode.ts +4 -3
- package/example/src/chevre/giveUpStartDatePassedCertainPeriod.ts +56 -0
- package/example/src/chevre/importEventsFromCOA.ts +3 -4
- package/example/src/chevre/lockStockHolder.ts +5 -2
- package/example/src/chevre/migrateScreeningEventSeriesVersion.ts +79 -0
- package/example/src/chevre/processPay.ts +5 -1
- package/example/src/chevre/processRegisterMembership.ts +8 -4
- package/example/src/chevre/processRegisterPaymentCard.ts +8 -4
- package/example/src/chevre/processReserve.ts +5 -2
- package/example/src/chevre/saveTasks.ts +13 -10
- package/example/src/chevre/searchAbortedTasks.ts +34 -0
- package/example/src/chevre/searchActions.ts +33 -0
- package/example/src/chevre/searchEventSeats.ts +5 -2
- package/example/src/chevre/searchHoldReservations.ts +38 -0
- package/example/src/chevre/searchPermissions.ts +54 -0
- package/example/src/chevre/searchReservationNumbersByOrderNumbers.ts +37 -1
- package/example/src/chevre/searchScreeningRooms.ts +35 -0
- package/example/src/chevre/searchSendEmailActions.ts +44 -0
- package/example/src/chevre/sendEmailMessage.ts +1 -2
- package/example/src/chevre/syncScreeningRooms.ts +22 -0
- package/example/src/chevre/syncScreeningRoomsAll.ts +44 -0
- package/example/src/chevre/task/executeTasks.ts +26 -0
- package/example/src/chevre/transaction/processReturnOrder.ts +40 -0
- package/example/src/chevre/transaction/startExportTasks.ts +2 -1
- package/example/src/chevre/unsetContainsInPlaceFromMovieTheater.ts +41 -0
- package/example/src/chevre/updateTransaction.ts +1 -1
- package/example/src/playOnMoment.ts +24 -0
- package/lib/chevre/credentials.d.ts +1 -0
- package/lib/chevre/credentials.js +2 -1
- package/lib/chevre/eventEmitter/assetTransaction.d.ts +21 -0
- package/lib/chevre/eventEmitter/assetTransaction.js +25 -0
- package/lib/chevre/eventEmitter/task.d.ts +2 -1
- package/lib/chevre/eventEmitter/task.js +1 -4
- package/lib/chevre/eventEmitter/transaction.d.ts +1 -1
- package/lib/chevre/eventEmitter/transaction.js +1 -4
- package/lib/chevre/eventEmitter.d.ts +2 -1
- package/lib/chevre/eventEmitter.js +3 -1
- package/lib/chevre/factory/order.d.ts +4 -1
- package/lib/chevre/factory/order.js +19 -6
- package/lib/chevre/repo/account.js +3 -2
- package/lib/chevre/repo/accountTransaction.d.ts +3 -1
- package/lib/chevre/repo/accountTransaction.js +3 -2
- package/lib/chevre/repo/accountingReport.d.ts +1 -3
- package/lib/chevre/repo/action.d.ts +79 -2
- package/lib/chevre/repo/action.js +151 -57
- package/lib/chevre/repo/additionalProperty.js +2 -1
- package/lib/chevre/repo/aggregation.d.ts +3 -0
- package/lib/chevre/repo/aggregation.js +3 -0
- package/lib/chevre/repo/assetTransaction.d.ts +23 -8
- package/lib/chevre/repo/assetTransaction.js +253 -80
- package/lib/chevre/repo/categoryCode.d.ts +1 -1
- package/lib/chevre/repo/categoryCode.js +37 -25
- package/lib/chevre/repo/code.js +3 -2
- package/lib/chevre/repo/comment.d.ts +4 -1
- package/lib/chevre/repo/comment.js +22 -6
- package/lib/chevre/repo/confirmationNumber.d.ts +0 -1
- package/lib/chevre/repo/confirmationNumber.js +3 -15
- package/lib/chevre/repo/creativeWork.d.ts +1 -1
- package/lib/chevre/repo/creativeWork.js +35 -12
- package/lib/chevre/repo/customer.js +2 -1
- package/lib/chevre/repo/emailMessage.js +2 -1
- package/lib/chevre/repo/event.d.ts +30 -2
- package/lib/chevre/repo/event.js +87 -36
- package/lib/chevre/repo/member.d.ts +14 -0
- package/lib/chevre/repo/member.js +31 -3
- package/lib/chevre/repo/merchantReturnPolicy.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/action.d.ts +3 -3
- package/lib/chevre/repo/mongoose/schemas/action.js +19 -1
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +9 -6
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +32 -19
- package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/comments.d.ts +3 -3
- package/lib/chevre/repo/mongoose/schemas/comments.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +3 -3
- package/lib/chevre/repo/mongoose/schemas/event.d.ts +3 -3
- package/lib/chevre/repo/mongoose/schemas/holdReservation.d.ts +75 -0
- package/lib/chevre/repo/mongoose/schemas/holdReservation.js +93 -0
- package/lib/chevre/repo/mongoose/schemas/offer.d.ts +9 -9
- package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +3 -3
- package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +74 -0
- package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +45 -0
- package/lib/chevre/repo/mongoose/schemas/order.d.ts +21 -21
- package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/place.d.ts +6 -0
- package/lib/chevre/repo/mongoose/schemas/place.js +16 -1
- package/lib/chevre/repo/mongoose/schemas/product.js +6 -0
- package/lib/chevre/repo/mongoose/schemas/project.d.ts +3 -3
- package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +15 -15
- package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/seller.js +6 -0
- package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/task.d.ts +3 -0
- package/lib/chevre/repo/mongoose/schemas/task.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +9 -6
- package/lib/chevre/repo/mongoose/schemas/transaction.js +2 -1
- package/lib/chevre/repo/offer.js +3 -2
- package/lib/chevre/repo/offerCatalog.js +0 -27
- package/lib/chevre/repo/offerItemCondition.d.ts +22 -0
- package/lib/chevre/repo/offerItemCondition.js +121 -0
- package/lib/chevre/repo/order.d.ts +30 -3
- package/lib/chevre/repo/order.js +57 -10
- package/lib/chevre/repo/ownershipInfo.js +2 -7
- package/lib/chevre/repo/paymentServiceProvider.d.ts +65 -0
- package/lib/chevre/repo/paymentServiceProvider.js +156 -0
- package/lib/chevre/repo/place.d.ts +203 -27
- package/lib/chevre/repo/place.js +1726 -694
- package/lib/chevre/repo/priceSpecification.js +3 -2
- package/lib/chevre/repo/product.d.ts +5 -3
- package/lib/chevre/repo/product.js +92 -5
- package/lib/chevre/repo/project.js +2 -1
- package/lib/chevre/repo/reservation.d.ts +20 -4
- package/lib/chevre/repo/reservation.js +40 -59
- package/lib/chevre/repo/role.d.ts +7 -0
- package/lib/chevre/repo/role.js +39 -2
- package/lib/chevre/repo/seller.d.ts +21 -1
- package/lib/chevre/repo/seller.js +78 -23
- package/lib/chevre/repo/serviceOutput.js +2 -1
- package/lib/chevre/repo/stockHolder.d.ts +143 -7
- package/lib/chevre/repo/stockHolder.js +622 -104
- package/lib/chevre/repo/task.d.ts +50 -2
- package/lib/chevre/repo/task.js +79 -19
- package/lib/chevre/repo/transaction.d.ts +21 -2
- package/lib/chevre/repo/transaction.js +160 -48
- package/lib/chevre/repo/trip.js +2 -1
- package/lib/chevre/repository.d.ts +11 -2
- package/lib/chevre/repository.js +15 -4
- package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +18 -8
- package/lib/chevre/service/aggregation/event/aggregateUseActionsOnEvent.js +19 -8
- package/lib/chevre/service/aggregation/system.d.ts +110 -23
- package/lib/chevre/service/aggregation/system.js +213 -91
- package/lib/chevre/service/assetTransaction/cancelReservation.js +1 -28
- package/lib/chevre/service/assetTransaction/moneyTransfer.js +2 -24
- package/lib/chevre/service/assetTransaction/pay/account/validation.js +1 -1
- package/lib/chevre/service/assetTransaction/pay/potentialActions.js +17 -1
- package/lib/chevre/service/assetTransaction/pay.d.ts +5 -1
- package/lib/chevre/service/assetTransaction/pay.js +20 -34
- package/lib/chevre/service/assetTransaction/refund.js +2 -24
- package/lib/chevre/service/assetTransaction/registerService.js +1 -25
- package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +15 -5
- package/lib/chevre/service/assetTransaction/reserve/factory.js +122 -58
- package/lib/chevre/service/assetTransaction/reserve.d.ts +10 -1
- package/lib/chevre/service/assetTransaction/reserve.js +93 -70
- package/lib/chevre/service/assetTransaction.d.ts +6 -0
- package/lib/chevre/service/assetTransaction.js +9 -4
- package/lib/chevre/service/event.d.ts +3 -0
- package/lib/chevre/service/event.js +55 -22
- package/lib/chevre/service/iam.d.ts +6 -2
- package/lib/chevre/service/iam.js +23 -9
- package/lib/chevre/service/notification/factory.js +2 -2
- package/lib/chevre/service/notification.d.ts +3 -1
- package/lib/chevre/service/notification.js +41 -7
- package/lib/chevre/service/offer/event/authorize.d.ts +3 -0
- package/lib/chevre/service/offer/event/authorize.js +8 -2
- package/lib/chevre/service/offer/event/factory.d.ts +3 -0
- package/lib/chevre/service/offer/event/factory.js +36 -16
- package/lib/chevre/service/offer/event/importFromCOA.js +2 -2
- package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -0
- package/lib/chevre/service/offer/event/voidTransaction.js +17 -1
- package/lib/chevre/service/offer/eventServiceByCOA/factory.js +15 -8
- package/lib/chevre/service/offer/eventServiceByCOA.js +7 -9
- package/lib/chevre/service/offer/product/factory.js +13 -6
- package/lib/chevre/service/offer/product.js +2 -2
- package/lib/chevre/service/offer.d.ts +16 -8
- package/lib/chevre/service/offer.js +72 -9
- package/lib/chevre/service/order/createAccountingReportIfNotExist.js +31 -17
- package/lib/chevre/service/order/deleteOrder.d.ts +3 -1
- package/lib/chevre/service/order/deleteOrder.js +8 -8
- package/lib/chevre/service/order/onOrderStatusChanged/factory.d.ts +5 -2
- package/lib/chevre/service/order/onOrderStatusChanged/factory.js +41 -81
- package/lib/chevre/service/order/onOrderStatusChanged.js +3 -5
- package/lib/chevre/service/order/onOrderUpdated.d.ts +16 -0
- package/lib/chevre/service/order/onOrderUpdated.js +22 -0
- package/lib/chevre/service/order/placeOrder.d.ts +1 -0
- package/lib/chevre/service/order/placeOrder.js +45 -28
- package/lib/chevre/service/order/returnOrder.d.ts +1 -0
- package/lib/chevre/service/order/returnOrder.js +8 -13
- package/lib/chevre/service/order/sendOrder.d.ts +1 -0
- package/lib/chevre/service/order/sendOrder.js +10 -13
- package/lib/chevre/service/order.d.ts +2 -1
- package/lib/chevre/service/order.js +3 -1
- package/lib/chevre/service/payment/any/onPaid.js +1 -1
- package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +4 -6
- package/lib/chevre/service/payment/any/onRefund.js +47 -43
- package/lib/chevre/service/payment/any.d.ts +9 -5
- package/lib/chevre/service/payment/any.js +80 -18
- package/lib/chevre/service/payment/creditCard.d.ts +1 -1
- package/lib/chevre/service/payment/creditCard.js +23 -17
- package/lib/chevre/service/payment/movieTicket/checkByIdentifier.d.ts +8 -7
- package/lib/chevre/service/payment/movieTicket/factory.d.ts +1 -1
- package/lib/chevre/service/payment/movieTicket/getCredentials.d.ts +1 -1
- package/lib/chevre/service/payment/movieTicket/getCredentials.js +1 -1
- package/lib/chevre/service/payment/movieTicket/validation.d.ts +6 -6
- package/lib/chevre/service/payment/movieTicket/validation.js +65 -37
- package/lib/chevre/service/payment/movieTicket.d.ts +2 -2
- package/lib/chevre/service/payment/movieTicket.js +7 -6
- package/lib/chevre/service/product.js +1 -5
- package/lib/chevre/service/report/telemetry.d.ts +0 -11
- package/lib/chevre/service/report/telemetry.js +21 -24
- package/lib/chevre/service/reserve/cancelReservation.d.ts +5 -3
- package/lib/chevre/service/reserve/cancelReservation.js +162 -142
- package/lib/chevre/service/reserve/checkInReservation.d.ts +9 -4
- package/lib/chevre/service/reserve/checkInReservation.js +77 -3
- package/lib/chevre/service/reserve/confirmReservation.d.ts +7 -4
- package/lib/chevre/service/reserve/confirmReservation.js +133 -58
- package/lib/chevre/service/reserve/factory.d.ts +1 -1
- package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +17 -5
- package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +26 -24
- package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +2 -3
- package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -31
- package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +2 -3
- package/lib/chevre/service/reserve/useReservation.d.ts +7 -3
- package/lib/chevre/service/reserve/useReservation.js +61 -71
- package/lib/chevre/service/reserve/verifyToken4reservation.d.ts +15 -0
- package/lib/chevre/service/reserve/verifyToken4reservation.js +56 -0
- package/lib/chevre/service/reserve.d.ts +3 -2
- package/lib/chevre/service/reserve.js +4 -2
- package/lib/chevre/service/task/aggregateScreeningEvent.js +1 -1
- package/lib/chevre/service/task/cancelPendingReservation.js +6 -2
- package/lib/chevre/service/task/cancelReservation.js +1 -1
- package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +1 -1
- package/lib/chevre/service/task/deleteTransaction.js +12 -8
- package/lib/chevre/service/task/importOffersFromCOA.js +4 -0
- package/lib/chevre/service/task/onAuthorizationCreated.d.ts +7 -0
- package/lib/chevre/service/task/onAuthorizationCreated.js +108 -0
- package/lib/chevre/service/task/onEventChanged.d.ts +7 -0
- package/lib/chevre/service/task/{deleteOrder.js → onEventChanged.js} +8 -14
- package/lib/chevre/service/task/onResourceUpdated.d.ts +7 -0
- package/lib/chevre/service/task/onResourceUpdated.js +396 -0
- package/lib/chevre/service/task/placeOrder.js +1 -1
- package/lib/chevre/service/task/reserve.js +10 -7
- package/lib/chevre/service/task/returnOrder.js +1 -1
- package/lib/chevre/service/task/returnPayTransaction.js +2 -12
- package/lib/chevre/service/task/sendOrder.js +1 -1
- package/lib/chevre/service/task/syncScreeningRooms.d.ts +7 -0
- package/lib/chevre/service/task/syncScreeningRooms.js +24 -0
- package/lib/chevre/service/task/useReservation.d.ts +7 -0
- package/lib/chevre/service/task/useReservation.js +36 -0
- package/lib/chevre/service/task/voidReserveTransaction.js +4 -2
- package/lib/chevre/service/task.d.ts +6 -0
- package/lib/chevre/service/task.js +22 -4
- package/lib/chevre/service/transaction/deleteTransaction.d.ts +23 -0
- package/lib/chevre/service/transaction/deleteTransaction.js +360 -0
- package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +12 -1
- package/lib/chevre/service/transaction/moneyTransfer/factory.d.ts +1 -1
- package/lib/chevre/service/transaction/moneyTransfer/factory.js +3 -1
- package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +1 -0
- package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +1 -1
- package/lib/chevre/service/transaction/moneyTransfer.js +10 -13
- package/lib/chevre/service/transaction/orderProgramMembership/findCreditCard.js +1 -1
- package/lib/chevre/service/transaction/orderProgramMembership/findPaymentCardPermit.js +1 -1
- package/lib/chevre/service/transaction/orderProgramMembership.js +7 -3
- package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +43 -30
- package/lib/chevre/service/transaction/placeOrder.js +1 -5
- package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/givePointAward.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +2 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +2 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/sendEmailMessage.js +4 -4
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.js +3 -4
- package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.d.ts +3 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +15 -15
- package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/result.js +2 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.d.ts +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js +2 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +2 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +23 -17
- package/lib/chevre/service/transaction/placeOrderInProgress.d.ts +0 -3
- package/lib/chevre/service/transaction/placeOrderInProgress.js +28 -15
- package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +11 -1
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnMoneyTransfer.js +2 -2
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +30 -22
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPointAward.js +2 -2
- package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +3 -3
- package/lib/chevre/service/transaction/returnOrder/potentialActions.js +1 -1
- package/lib/chevre/service/transaction/returnOrder.d.ts +4 -0
- package/lib/chevre/service/transaction/returnOrder.js +228 -36
- package/lib/chevre/service/transaction.d.ts +7 -13
- package/lib/chevre/service/transaction.js +12 -139
- package/lib/chevre/settings.d.ts +15 -2
- package/lib/chevre/settings.js +58 -7
- package/package.json +3 -3
- package/example/src/chevre/eventCatalog2eventService.ts +0 -123
- package/example/src/chevre/migrateMoneyTransferPendingTransactionIdentifier.ts +0 -96
- package/example/src/chevre/migrateStockHolderKeys.ts +0 -89
- package/lib/chevre/service/task/deleteAssetTransaction.d.ts +0 -12
- package/lib/chevre/service/task/deleteAssetTransaction.js +0 -65
- package/lib/chevre/service/task/deleteOrder.d.ts +0 -6
|
@@ -17,12 +17,12 @@ function createReturnMoneyTransferActions(params) {
|
|
|
17
17
|
return __awaiter(this, void 0, void 0, function* () {
|
|
18
18
|
const order = params.order;
|
|
19
19
|
const returnMoneyTransferActions = [];
|
|
20
|
-
const maskedCustomer = (0, order_1.createMaskedCustomer)(order);
|
|
20
|
+
const maskedCustomer = (0, order_1.createMaskedCustomer)(order, { noProfile: true });
|
|
21
21
|
const purpose = {
|
|
22
22
|
typeOf: order.typeOf,
|
|
23
23
|
seller: order.seller,
|
|
24
24
|
// mask
|
|
25
|
-
customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id
|
|
25
|
+
customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id },
|
|
26
26
|
// IOrderへ移行(2022-11-17~)
|
|
27
27
|
// confirmationNumber: order.confirmationNumber,
|
|
28
28
|
orderNumber: order.orderNumber,
|
|
@@ -44,7 +44,7 @@ function createReturnPaymentMethodPotentialActions(params) {
|
|
|
44
44
|
typeOf: order.typeOf,
|
|
45
45
|
seller: order.seller,
|
|
46
46
|
// mask
|
|
47
|
-
customer: (0, order_1.createMaskedCustomer)(order),
|
|
47
|
+
customer: (0, order_1.createMaskedCustomer)(order, { noProfile: true }),
|
|
48
48
|
// IOrderへ移行(2022-11-17~)
|
|
49
49
|
// confirmationNumber: order.confirmationNumber,
|
|
50
50
|
orderNumber: order.orderNumber,
|
|
@@ -59,8 +59,8 @@ function createReturnPaymentMethodPotentialActions(params) {
|
|
|
59
59
|
agent: order.project,
|
|
60
60
|
recipient: {
|
|
61
61
|
typeOf: order.customer.typeOf,
|
|
62
|
-
id: order.customer.id
|
|
63
|
-
name: String(order.customer.name)
|
|
62
|
+
id: order.customer.id
|
|
63
|
+
// name: String(order.customer.name)
|
|
64
64
|
},
|
|
65
65
|
potentialActions: {},
|
|
66
66
|
purpose: sendActionPurpose
|
|
@@ -109,7 +109,7 @@ function createReturnPaymentMethodActions(params) {
|
|
|
109
109
|
typeOf: order.typeOf,
|
|
110
110
|
seller: order.seller,
|
|
111
111
|
// mask
|
|
112
|
-
customer: (0, order_1.createMaskedCustomer)(order),
|
|
112
|
+
customer: (0, order_1.createMaskedCustomer)(order, { noProfile: true }),
|
|
113
113
|
// IOrderへ移行(2022-11-17~)
|
|
114
114
|
// confirmationNumber: order.confirmationNumber,
|
|
115
115
|
orderNumber: order.orderNumber,
|
|
@@ -133,31 +133,39 @@ exports.createReturnPaymentMethodActions = createReturnPaymentMethodActions;
|
|
|
133
133
|
function createReturnPaymentMethodIssuedThroughMovieTicketActions(params) {
|
|
134
134
|
return __awaiter(this, void 0, void 0, function* () {
|
|
135
135
|
const order = params.order;
|
|
136
|
-
const
|
|
136
|
+
const returnFeesMovieTicketByTransaction = params.transaction.object.returnPolicy.returnFeesMovieTicket;
|
|
137
137
|
return Promise.all(params.order.paymentMethods
|
|
138
138
|
.filter((paymentMethod) => {
|
|
139
139
|
return paymentMethod.issuedThrough.typeOf === factory.service.paymentService.PaymentServiceType.MovieTicket;
|
|
140
140
|
})
|
|
141
|
-
//
|
|
141
|
+
// 決済カード着券取消有無設定を適用
|
|
142
142
|
.filter((paymentMethod) => {
|
|
143
|
-
|
|
143
|
+
// デフォルトで実行する
|
|
144
|
+
let returnPaymentMethod = true;
|
|
144
145
|
const movieTicketIdentifier = paymentMethod.accountId;
|
|
145
|
-
const
|
|
146
|
+
const returnFeesMovieTicketSettingsByIdentifier = returnFeesMovieTicketByTransaction === null || returnFeesMovieTicketByTransaction === void 0 ? void 0 : returnFeesMovieTicketByTransaction.filter((r) => {
|
|
147
|
+
var _a;
|
|
148
|
+
return r.identifier === String(movieTicketIdentifier)
|
|
149
|
+
&& ((_a = r.serviceOutput) === null || _a === void 0 ? void 0 : _a.typeOf) === paymentMethod.typeOf;
|
|
150
|
+
});
|
|
146
151
|
// 設定がなければスルー
|
|
147
|
-
if (
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
152
|
+
if (Array.isArray(returnFeesMovieTicketSettingsByIdentifier) && returnFeesMovieTicketSettingsByIdentifier.length > 0) {
|
|
153
|
+
returnFeesMovieTicketSettingsByIdentifier.forEach((returnFeesMovieTicketSetting) => {
|
|
154
|
+
const returnFeesEnumeration = returnFeesMovieTicketSetting.returnFees;
|
|
155
|
+
switch (returnFeesEnumeration) {
|
|
156
|
+
case factory.merchantReturnPolicy.ReturnFeesEnumeration.FreeReturn:
|
|
157
|
+
break;
|
|
158
|
+
// ひとつでも「取消を実行しない」に設定されていれば、実行しない
|
|
159
|
+
case factory.merchantReturnPolicy.ReturnFeesEnumeration.ReturnFeesCustomerResponsibility:
|
|
160
|
+
// 取消実行しない
|
|
161
|
+
returnPaymentMethod = false;
|
|
162
|
+
break;
|
|
163
|
+
default:
|
|
164
|
+
throw new factory.errors.NotImplemented(`returnFees ${returnFeesEnumeration} not implemented`);
|
|
165
|
+
}
|
|
166
|
+
});
|
|
160
167
|
}
|
|
168
|
+
return returnPaymentMethod;
|
|
161
169
|
})
|
|
162
170
|
.map((p) => __awaiter(this, void 0, void 0, function* () {
|
|
163
171
|
const potentialActionsOnRefund = yield createReturnPaymentMethodPotentialActions({
|
|
@@ -180,7 +188,7 @@ function createReturnPaymentMethodIssuedThroughMovieTicketActions(params) {
|
|
|
180
188
|
typeOf: order.typeOf,
|
|
181
189
|
seller: order.seller,
|
|
182
190
|
// mask
|
|
183
|
-
customer: (0, order_1.createMaskedCustomer)(order),
|
|
191
|
+
customer: (0, order_1.createMaskedCustomer)(order, { noProfile: true }),
|
|
184
192
|
// IOrderへ移行(2022-11-17~)
|
|
185
193
|
// confirmationNumber: order.confirmationNumber,
|
|
186
194
|
orderNumber: order.orderNumber,
|
|
@@ -48,12 +48,12 @@ function createReturnPointAwardActions(params) {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
const order = params.order;
|
|
51
|
-
const maskedCustomer = (0, order_1.createMaskedCustomer)(order);
|
|
51
|
+
const maskedCustomer = (0, order_1.createMaskedCustomer)(order, { noProfile: true });
|
|
52
52
|
const purpose = {
|
|
53
53
|
typeOf: order.typeOf,
|
|
54
54
|
seller: order.seller,
|
|
55
55
|
// mask
|
|
56
|
-
customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id
|
|
56
|
+
customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id },
|
|
57
57
|
// IOrderへ移行(2022-11-17~)
|
|
58
58
|
// confirmationNumber: order.confirmationNumber,
|
|
59
59
|
orderNumber: order.orderNumber,
|
|
@@ -22,7 +22,7 @@ function createSendEmailMessaegActionsOnReturn(params) {
|
|
|
22
22
|
typeOf: order.typeOf,
|
|
23
23
|
seller: order.seller,
|
|
24
24
|
// mask
|
|
25
|
-
customer: (0, order_1.createMaskedCustomer)(order),
|
|
25
|
+
customer: (0, order_1.createMaskedCustomer)(order, { noProfile: true }),
|
|
26
26
|
// IOrderへ移行(2022-11-17~)
|
|
27
27
|
// confirmationNumber: order.confirmationNumber,
|
|
28
28
|
orderNumber: order.orderNumber,
|
|
@@ -47,8 +47,8 @@ function createSendEmailMessaegActionsOnReturn(params) {
|
|
|
47
47
|
agent: order.project,
|
|
48
48
|
recipient: {
|
|
49
49
|
typeOf: order.customer.typeOf,
|
|
50
|
-
id: order.customer.id
|
|
51
|
-
name: String(order.customer.name)
|
|
50
|
+
id: order.customer.id
|
|
51
|
+
// name: String(order.customer.name)
|
|
52
52
|
},
|
|
53
53
|
potentialActions: {},
|
|
54
54
|
purpose: sendActionPurpose
|
|
@@ -53,7 +53,7 @@ function createPotentialActions(params) {
|
|
|
53
53
|
typeOf: order.typeOf,
|
|
54
54
|
seller: order.seller,
|
|
55
55
|
// mask
|
|
56
|
-
customer: (0, order_1.createMaskedCustomer)(order),
|
|
56
|
+
customer: (0, order_1.createMaskedCustomer)(order, { noProfile: true }),
|
|
57
57
|
confirmationNumber: order.confirmationNumber,
|
|
58
58
|
orderNumber: order.orderNumber,
|
|
59
59
|
price: order.price,
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import * as factory from '../../factory';
|
|
2
2
|
import { MongoRepository as EmailMessageRepo } from '../../repo/emailMessage';
|
|
3
|
+
import { MongoRepository as EventRepo } from '../../repo/event';
|
|
3
4
|
import { MongoRepository as MerchantReturnPolicyRepo } from '../../repo/merchantReturnPolicy';
|
|
4
5
|
import { MongoRepository as OfferRepo } from '../../repo/offer';
|
|
6
|
+
import { MongoRepository as OfferItemConditionRepo } from '../../repo/offerItemCondition';
|
|
5
7
|
import { MongoRepository as OrderRepo } from '../../repo/order';
|
|
6
8
|
import { MongoRepository as ReservationRepo } from '../../repo/reservation';
|
|
7
9
|
import { MongoRepository as SellerRepo } from '../../repo/seller';
|
|
8
10
|
import { MongoRepository as TaskRepo } from '../../repo/task';
|
|
9
11
|
import { MongoRepository as TransactionRepo } from '../../repo/transaction';
|
|
10
12
|
export interface IStartOperationRepos {
|
|
13
|
+
event: EventRepo;
|
|
11
14
|
merchantReturnPolicy: MerchantReturnPolicyRepo;
|
|
12
15
|
offer: OfferRepo;
|
|
16
|
+
offerItemCondition: OfferItemConditionRepo;
|
|
13
17
|
order: OrderRepo;
|
|
14
18
|
reservation: ReservationRepo;
|
|
15
19
|
seller: SellerRepo;
|
|
@@ -13,20 +13,25 @@ exports.exportTasksById = exports.confirm = exports.start = void 0;
|
|
|
13
13
|
/**
|
|
14
14
|
* 返品取引サービス
|
|
15
15
|
*/
|
|
16
|
-
const
|
|
16
|
+
const createDebug = require("debug");
|
|
17
|
+
const moment = require("moment-timezone");
|
|
17
18
|
const factory = require("../../factory");
|
|
18
19
|
const factory_1 = require("./returnOrder/exportTasks/factory");
|
|
19
20
|
const potentialActions_1 = require("./returnOrder/potentialActions");
|
|
20
21
|
const errorHandler_1 = require("../../errorHandler");
|
|
22
|
+
const debug = createDebug('chevre-domain:service');
|
|
21
23
|
/**
|
|
22
24
|
* 返品取引開始
|
|
23
25
|
*/
|
|
24
26
|
function start(params) {
|
|
27
|
+
// tslint:disable-next-line:max-func-body-length
|
|
25
28
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
26
29
|
const now = new Date();
|
|
27
|
-
const {
|
|
30
|
+
const { acceptedOffers, eventIds, offerIds, orders } = yield fixOrders(params)(repos);
|
|
28
31
|
// sellerはorderから自動取得
|
|
29
|
-
const seller = yield repos.seller.findById({ id: String(orders[0].seller.id) },
|
|
32
|
+
const seller = yield repos.seller.findById({ id: String(orders[0].seller.id) }, ['name', 'project', 'hasMerchantReturnPolicy', 'typeOf'], []
|
|
33
|
+
// { additionalProperty: 0, paymentAccepted: 0 }
|
|
34
|
+
);
|
|
30
35
|
yield validateOrder({ orders })(repos);
|
|
31
36
|
let offers = [];
|
|
32
37
|
if (offerIds.length > 0) {
|
|
@@ -36,14 +41,43 @@ function start(params) {
|
|
|
36
41
|
}
|
|
37
42
|
// tslint:disable-next-line:no-console
|
|
38
43
|
// console.log('validating ', offers.length, 'offers before starting returnOrder... offerIds:', offerIds);
|
|
44
|
+
// イベント開始日時取得
|
|
45
|
+
let events = [];
|
|
46
|
+
if (eventIds.length > 0) {
|
|
47
|
+
events = yield repos.event.search({
|
|
48
|
+
id: { $in: eventIds },
|
|
49
|
+
typeOf: factory.eventType.ScreeningEvent
|
|
50
|
+
}, {
|
|
51
|
+
startDate: 1
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
let returnPolicies = seller.hasMerchantReturnPolicy;
|
|
55
|
+
if (!Array.isArray(returnPolicies)) {
|
|
56
|
+
returnPolicies = [];
|
|
57
|
+
}
|
|
58
|
+
// アイテムコンディション取得
|
|
59
|
+
let offerItemConditions = [];
|
|
60
|
+
const itemConditionIds = returnPolicies
|
|
61
|
+
.filter((returnPolicy) => { var _a; return typeof ((_a = returnPolicy.itemCondition) === null || _a === void 0 ? void 0 : _a.id) === 'string'; })
|
|
62
|
+
.map((returnPolicy) => { var _a; return String((_a = returnPolicy.itemCondition) === null || _a === void 0 ? void 0 : _a.id); });
|
|
63
|
+
if (itemConditionIds.length > 0) {
|
|
64
|
+
offerItemConditions = yield repos.offerItemCondition.search({
|
|
65
|
+
id: { $in: itemConditionIds }
|
|
66
|
+
});
|
|
67
|
+
}
|
|
39
68
|
const policiesByOffer = yield searchPoliciesByOffer({ offers })(repos);
|
|
69
|
+
const { usedReservationExists } = yield checkUsedReservationExists({ orders })(repos);
|
|
40
70
|
const appliedReturnPolicy = findApplicableReturnPolicy({
|
|
71
|
+
acceptedOffers,
|
|
72
|
+
events,
|
|
73
|
+
offerItemConditions,
|
|
41
74
|
orders,
|
|
42
75
|
returningDate: now,
|
|
43
76
|
reason: params.object.reason,
|
|
44
|
-
|
|
77
|
+
returnPolicies,
|
|
45
78
|
offers,
|
|
46
|
-
policiesByOffer
|
|
79
|
+
policiesByOffer,
|
|
80
|
+
usedReservationExists
|
|
47
81
|
});
|
|
48
82
|
validateAppliedReturnPolicy({ merchantReturnPolicy: appliedReturnPolicy });
|
|
49
83
|
// アイテム検証
|
|
@@ -115,7 +149,8 @@ function fixOrders(params) {
|
|
|
115
149
|
// 不要な属性は参照しない
|
|
116
150
|
acceptedOffers: 0,
|
|
117
151
|
customer: 0,
|
|
118
|
-
orderedItem: 0
|
|
152
|
+
orderedItem: 0,
|
|
153
|
+
paymentMethods: 0
|
|
119
154
|
});
|
|
120
155
|
if (orders.length !== params.object.order.length) {
|
|
121
156
|
throw new factory.errors.NotFound('Order');
|
|
@@ -125,7 +160,13 @@ function fixOrders(params) {
|
|
|
125
160
|
confirmationNumbers: [params.object.order[0].confirmationNumber],
|
|
126
161
|
orderNumbers: [params.object.order[0].orderNumber]
|
|
127
162
|
});
|
|
128
|
-
|
|
163
|
+
const eventIds = yield repos.order.searchReservationForIdsByOrderNumbers({
|
|
164
|
+
orderNumber: { $in: [params.object.order[0].orderNumber] }
|
|
165
|
+
});
|
|
166
|
+
const acceptedOffers = yield repos.order.searchAcceptedOffersByOrderNumbers({
|
|
167
|
+
orderNumber: { $in: [params.object.order[0].orderNumber] }
|
|
168
|
+
});
|
|
169
|
+
return { acceptedOffers, eventIds, offerIds, orders };
|
|
129
170
|
});
|
|
130
171
|
}
|
|
131
172
|
function validateOrder(params) {
|
|
@@ -137,12 +178,9 @@ function validateOrder(params) {
|
|
|
137
178
|
}
|
|
138
179
|
});
|
|
139
180
|
}
|
|
140
|
-
function
|
|
181
|
+
function checkUsedReservationExists(params) {
|
|
141
182
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
142
|
-
|
|
143
|
-
// 販売者都合の場合、特に検証しない
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
183
|
+
let usedReservationExists = false;
|
|
146
184
|
// 注文に含まれる予約の状態検証
|
|
147
185
|
const reservationNumbers = yield repos.order.searchReservationNumbersByOrderNumbers({
|
|
148
186
|
orderNumber: { $in: params.orders.map((order) => order.orderNumber) }
|
|
@@ -155,11 +193,38 @@ function validateItems(params) {
|
|
|
155
193
|
typeOf: factory.reservationType.EventReservation,
|
|
156
194
|
reservationNumber: { $in: reservationNumbers },
|
|
157
195
|
attended: true
|
|
158
|
-
});
|
|
196
|
+
}, { _id: 1 });
|
|
159
197
|
if (existingUsedReservations.length > 0) {
|
|
160
|
-
|
|
198
|
+
usedReservationExists = true;
|
|
161
199
|
}
|
|
162
200
|
}
|
|
201
|
+
return { usedReservationExists };
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
function validateItems(params) {
|
|
205
|
+
return (__) => __awaiter(this, void 0, void 0, function* () {
|
|
206
|
+
if (params.reason === factory.transaction.returnOrder.Reason.Seller) {
|
|
207
|
+
// 販売者都合の場合、特に検証しない
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
// アイテムコンディション検証へ移行
|
|
211
|
+
// 注文に含まれる予約の状態検証
|
|
212
|
+
// const reservationNumbers = await repos.order.searchReservationNumbersByOrderNumbers({
|
|
213
|
+
// orderNumber: { $in: params.orders.map((order) => order.orderNumber) }
|
|
214
|
+
// });
|
|
215
|
+
// if (reservationNumbers.length > 0) {
|
|
216
|
+
// // 使用済の予約がひとつでもあれば不可
|
|
217
|
+
// const existingUsedReservations = await repos.reservation.search({
|
|
218
|
+
// limit: 1,
|
|
219
|
+
// page: 1,
|
|
220
|
+
// typeOf: factory.reservationType.EventReservation,
|
|
221
|
+
// reservationNumber: { $in: reservationNumbers },
|
|
222
|
+
// attended: true
|
|
223
|
+
// });
|
|
224
|
+
// if (existingUsedReservations.length > 0) {
|
|
225
|
+
// throw new factory.errors.Argument('orderNumber', 'some reservations already used');
|
|
226
|
+
// }
|
|
227
|
+
// }
|
|
163
228
|
});
|
|
164
229
|
}
|
|
165
230
|
function searchPoliciesByOffer(params) {
|
|
@@ -186,7 +251,9 @@ function searchPoliciesByOffer(params) {
|
|
|
186
251
|
/**
|
|
187
252
|
* 販売者の返品ポリシーを確認する
|
|
188
253
|
*/
|
|
254
|
+
// tslint:disable-next-line:max-func-body-length
|
|
189
255
|
function findApplicableReturnPolicy(params) {
|
|
256
|
+
var _a;
|
|
190
257
|
if (params.reason === factory.transaction.returnOrder.Reason.Seller) {
|
|
191
258
|
// 販売者都合の場合、手数料なしの返金返品ポリシーを適用
|
|
192
259
|
return {
|
|
@@ -194,14 +261,23 @@ function findApplicableReturnPolicy(params) {
|
|
|
194
261
|
returnFees: factory.merchantReturnPolicy.ReturnFeesEnumeration.FreeReturn
|
|
195
262
|
};
|
|
196
263
|
}
|
|
197
|
-
|
|
198
|
-
if (!Array.isArray(returnPolicies)) {
|
|
199
|
-
returnPolicies = [];
|
|
200
|
-
}
|
|
264
|
+
const returnPolicies = params.returnPolicies;
|
|
201
265
|
const returningDate = moment(params.returningDate);
|
|
202
|
-
|
|
266
|
+
let applicalbleReturnPolicies = [];
|
|
203
267
|
if (params.reason === factory.transaction.returnOrder.Reason.Customer) {
|
|
204
|
-
|
|
268
|
+
// 適用可能なポリシーにフィルター
|
|
269
|
+
// tslint:disable-next-line:max-func-body-length
|
|
270
|
+
applicalbleReturnPolicies = returnPolicies.filter((returnPolicy) => {
|
|
271
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
272
|
+
let satisfyMerchantReturnDays = false;
|
|
273
|
+
let offerItemCondition;
|
|
274
|
+
const itemConditionId = (_a = returnPolicy.itemCondition) === null || _a === void 0 ? void 0 : _a.id;
|
|
275
|
+
if (typeof itemConditionId === 'string') {
|
|
276
|
+
offerItemCondition = params.offerItemConditions.find((o) => o.id === itemConditionId);
|
|
277
|
+
if (offerItemCondition === undefined) {
|
|
278
|
+
throw new factory.errors.NotFound('OfferItemCondition');
|
|
279
|
+
}
|
|
280
|
+
}
|
|
205
281
|
const merchantReturnDays = returnPolicy.merchantReturnDays;
|
|
206
282
|
if (typeof merchantReturnDays === 'number') {
|
|
207
283
|
// 返品適用日数を確認する
|
|
@@ -212,13 +288,78 @@ function findApplicableReturnPolicy(params) {
|
|
|
212
288
|
});
|
|
213
289
|
// 全注文について日数の確認ができれば適用
|
|
214
290
|
if (everyOrderApplicable) {
|
|
215
|
-
|
|
291
|
+
satisfyMerchantReturnDays = true;
|
|
216
292
|
}
|
|
217
293
|
}
|
|
218
294
|
else {
|
|
219
295
|
// 日数制限なし
|
|
220
|
-
|
|
296
|
+
satisfyMerchantReturnDays = true;
|
|
221
297
|
}
|
|
298
|
+
// イベント開始猶予を検証する(2023-05-22~)
|
|
299
|
+
let satisfyItemCondition = true;
|
|
300
|
+
if (offerItemCondition !== undefined) {
|
|
301
|
+
let satisfyGracePeriodMaxValue = true;
|
|
302
|
+
let satisfyGracePeriodMinValue = true;
|
|
303
|
+
// 全イベントについて猶予の確認ができれば適用
|
|
304
|
+
const gracePeriodMaxValue = (_c = (_b = offerItemCondition.itemOffered.serviceOutput) === null || _b === void 0 ? void 0 : _b.reservationFor.gracePeriodBeforeStart) === null || _c === void 0 ? void 0 : _c.maxValue;
|
|
305
|
+
const gracePeriodMinValue = (_e = (_d = offerItemCondition.itemOffered.serviceOutput) === null || _d === void 0 ? void 0 : _d.reservationFor.gracePeriodBeforeStart) === null || _e === void 0 ? void 0 : _e.minValue;
|
|
306
|
+
if (typeof gracePeriodMaxValue === 'number') {
|
|
307
|
+
satisfyGracePeriodMaxValue = params.events.every((event) => {
|
|
308
|
+
return moment(event.startDate)
|
|
309
|
+
.isSameOrBefore(moment(params.returningDate)
|
|
310
|
+
.add(gracePeriodMaxValue, 'seconds'));
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
if (typeof gracePeriodMinValue === 'number') {
|
|
314
|
+
satisfyGracePeriodMinValue = params.events.every((event) => {
|
|
315
|
+
return moment(event.startDate)
|
|
316
|
+
.isAfter(moment(params.returningDate)
|
|
317
|
+
.add(gracePeriodMinValue, 'seconds'));
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
let satisfyGracePeriodInDaysMax = true;
|
|
321
|
+
let satisfyGracePeriodInDaysMin = true;
|
|
322
|
+
const gracePeriodBeforeStartInDaysMax = (_g = (_f = offerItemCondition.itemOffered.serviceOutput) === null || _f === void 0 ? void 0 : _f.reservationFor.gracePeriodBeforeStartInDays) === null || _g === void 0 ? void 0 : _g.max;
|
|
323
|
+
if (typeof (gracePeriodBeforeStartInDaysMax === null || gracePeriodBeforeStartInDaysMax === void 0 ? void 0 : gracePeriodBeforeStartInDaysMax.period.value) === 'number'
|
|
324
|
+
&& typeof gracePeriodBeforeStartInDaysMax.time === 'string') {
|
|
325
|
+
satisfyGracePeriodInDaysMax = params.events.every((event) => {
|
|
326
|
+
const maxDate = moment(event.startDate)
|
|
327
|
+
.tz(gracePeriodBeforeStartInDaysMax.timezone)
|
|
328
|
+
.startOf('days')
|
|
329
|
+
.subtract(gracePeriodBeforeStartInDaysMax.period.value, 'days')
|
|
330
|
+
.format('YYYY-MM-DD');
|
|
331
|
+
const returnMinDate = moment.tz(`${maxDate}T${gracePeriodBeforeStartInDaysMax.time}`, gracePeriodBeforeStartInDaysMax.timezone);
|
|
332
|
+
debug('returnMinDate:', returnMinDate, 'returningDate:', returningDate);
|
|
333
|
+
return returnMinDate.isSameOrBefore(moment(returningDate));
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
debug('gracePeriodBeforeStartInDaysMax:', gracePeriodBeforeStartInDaysMax);
|
|
337
|
+
const gracePeriodBeforeStartInDaysMin = (_j = (_h = offerItemCondition.itemOffered.serviceOutput) === null || _h === void 0 ? void 0 : _h.reservationFor.gracePeriodBeforeStartInDays) === null || _j === void 0 ? void 0 : _j.min;
|
|
338
|
+
if (typeof (gracePeriodBeforeStartInDaysMin === null || gracePeriodBeforeStartInDaysMin === void 0 ? void 0 : gracePeriodBeforeStartInDaysMin.period.value) === 'number'
|
|
339
|
+
&& typeof gracePeriodBeforeStartInDaysMin.time === 'string') {
|
|
340
|
+
satisfyGracePeriodInDaysMin = params.events.every((event) => {
|
|
341
|
+
const minDate = moment(event.startDate)
|
|
342
|
+
.tz(gracePeriodBeforeStartInDaysMin.timezone)
|
|
343
|
+
.startOf('days')
|
|
344
|
+
.subtract(gracePeriodBeforeStartInDaysMin.period.value, 'days')
|
|
345
|
+
.format('YYYY-MM-DD');
|
|
346
|
+
const returnMaxDate = moment.tz(`${minDate}T${gracePeriodBeforeStartInDaysMin.time}`, gracePeriodBeforeStartInDaysMin.timezone);
|
|
347
|
+
debug('returnMaxDate:', returnMaxDate, 'returningDate:', returningDate);
|
|
348
|
+
return returnMaxDate.isAfter(moment(returningDate));
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
debug('satisfyGracePeriodInDaysMin:', satisfyGracePeriodInDaysMin);
|
|
352
|
+
let satisfyOnlyUnused = true;
|
|
353
|
+
if (((_k = offerItemCondition.itemOffered.serviceOutput) === null || _k === void 0 ? void 0 : _k.onlyUnused) === true) {
|
|
354
|
+
if (params.usedReservationExists) {
|
|
355
|
+
satisfyOnlyUnused = false;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
debug('usedReservationExists:', params.usedReservationExists, 'satisfyOnlyUnused:', satisfyOnlyUnused);
|
|
359
|
+
satisfyItemCondition = satisfyGracePeriodMaxValue && satisfyGracePeriodMinValue
|
|
360
|
+
&& satisfyGracePeriodInDaysMax && satisfyGracePeriodInDaysMin && satisfyOnlyUnused;
|
|
361
|
+
}
|
|
362
|
+
return satisfyMerchantReturnDays && satisfyItemCondition;
|
|
222
363
|
});
|
|
223
364
|
}
|
|
224
365
|
// 販売者にポリシーが存在しなければ返品不可
|
|
@@ -226,13 +367,35 @@ function findApplicableReturnPolicy(params) {
|
|
|
226
367
|
throw new factory.errors.Argument('Seller', 'has no applicable return policies');
|
|
227
368
|
}
|
|
228
369
|
// オファーの返品ポリシーから返品手数料タイプを決定する
|
|
229
|
-
const { returnFees } = validateOffersReturnPolicy({
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
370
|
+
const { returnFees, returnFeesMovieTicket } = validateOffersReturnPolicy({
|
|
371
|
+
acceptedOffers: params.acceptedOffers,
|
|
372
|
+
offers: params.offers,
|
|
373
|
+
policiesByOffer: params.policiesByOffer
|
|
374
|
+
});
|
|
375
|
+
// restockingFeeが最低のポリシーを自動選択
|
|
376
|
+
let appliedReturnPolicy = applicalbleReturnPolicies[0];
|
|
377
|
+
applicalbleReturnPolicies.forEach((returnPolicy) => {
|
|
378
|
+
var _a, _b;
|
|
379
|
+
const appliedReturnPolicyRestockingFeeValue = (_a = appliedReturnPolicy.restockingFee) === null || _a === void 0 ? void 0 : _a.value;
|
|
380
|
+
const restockingFeeValue = (_b = returnPolicy.restockingFee) === null || _b === void 0 ? void 0 : _b.value;
|
|
381
|
+
const appliedReturnPolicyRestockingFee = (typeof appliedReturnPolicyRestockingFeeValue === 'number')
|
|
382
|
+
? appliedReturnPolicyRestockingFeeValue
|
|
383
|
+
: 0;
|
|
384
|
+
const restockingFee = (typeof restockingFeeValue === 'number') ? restockingFeeValue : 0;
|
|
385
|
+
if (restockingFee < appliedReturnPolicyRestockingFee) {
|
|
386
|
+
appliedReturnPolicy = returnPolicy;
|
|
387
|
+
}
|
|
388
|
+
});
|
|
389
|
+
let appliedItemCondition;
|
|
390
|
+
const appliedItemConditionId = (_a = appliedReturnPolicy.itemCondition) === null || _a === void 0 ? void 0 : _a.id;
|
|
391
|
+
if (typeof appliedItemConditionId === 'string') {
|
|
392
|
+
appliedItemCondition = params.offerItemConditions.find((o) => o.id === appliedItemConditionId);
|
|
393
|
+
if (appliedItemCondition === undefined) {
|
|
394
|
+
throw new factory.errors.NotFound('OfferItemCondition');
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
return Object.assign({ merchantReturnDays: appliedReturnPolicy.merchantReturnDays, restockingFee: appliedReturnPolicy.restockingFee, returnFees,
|
|
398
|
+
returnFeesMovieTicket, typeOf: appliedReturnPolicy.typeOf }, (typeof (appliedItemCondition === null || appliedItemCondition === void 0 ? void 0 : appliedItemCondition.typeOf) === 'string') ? { itemCondition: appliedItemCondition } : undefined);
|
|
236
399
|
}
|
|
237
400
|
/**
|
|
238
401
|
* 注文中のオファーの返品ポリシーを検証
|
|
@@ -271,8 +434,41 @@ function validateOffersReturnPolicy(params) {
|
|
|
271
434
|
else {
|
|
272
435
|
throw new factory.errors.NotImplemented('returnFees not defined');
|
|
273
436
|
}
|
|
274
|
-
//
|
|
275
|
-
|
|
437
|
+
// 決済カード取消ポリシーを確定(2023-05-23~)
|
|
438
|
+
const returnFeesMovieTicket = [];
|
|
439
|
+
params.acceptedOffers.forEach((acceptedOffer) => {
|
|
440
|
+
const unitPriceOffer = params.offers.find((offer) => offer.id === acceptedOffer.id);
|
|
441
|
+
if (unitPriceOffer === undefined) {
|
|
442
|
+
throw new factory.errors.NotFound(`UnitPriceOffer ${acceptedOffer.id}`);
|
|
443
|
+
}
|
|
444
|
+
if (!Array.isArray(unitPriceOffer.hasMerchantReturnPolicy) || unitPriceOffer.hasMerchantReturnPolicy.length === 0) {
|
|
445
|
+
throw new factory.errors.NotFound(`offer.hasMerchantReturnPolicy ${acceptedOffer.id}`);
|
|
446
|
+
}
|
|
447
|
+
const hasMerchantReturnPolicy = unitPriceOffer.hasMerchantReturnPolicy[0];
|
|
448
|
+
const policyByOffer = params.policiesByOffer.find((policy) => policy.id === hasMerchantReturnPolicy.id);
|
|
449
|
+
if (policyByOffer === undefined) {
|
|
450
|
+
throw new factory.errors.NotFound(`MerchantReturnPolicy acceptedOffer:${acceptedOffer.id}`);
|
|
451
|
+
}
|
|
452
|
+
const movieTicketTypeChargeSpecExists = acceptedOffer.priceSpecification.priceComponent.some((component) => {
|
|
453
|
+
return component.typeOf === factory.priceSpecificationType.MovieTicketTypeChargeSpecification;
|
|
454
|
+
});
|
|
455
|
+
if (movieTicketTypeChargeSpecExists) {
|
|
456
|
+
acceptedOffer.priceSpecification.priceComponent.forEach((component) => {
|
|
457
|
+
if (component.typeOf === factory.priceSpecificationType.UnitPriceSpecification) {
|
|
458
|
+
if (Array.isArray(component.appliesToMovieTicket)) {
|
|
459
|
+
component.appliesToMovieTicket.forEach((appliesToMovieTicket) => {
|
|
460
|
+
returnFeesMovieTicket.push({
|
|
461
|
+
identifier: String(appliesToMovieTicket.identifier),
|
|
462
|
+
returnFees: policyByOffer.customerRemorseReturnFeesMovieTicket,
|
|
463
|
+
serviceOutput: { typeOf: appliesToMovieTicket.serviceOutput.typeOf }
|
|
464
|
+
});
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
});
|
|
469
|
+
}
|
|
470
|
+
});
|
|
471
|
+
return { returnFees, returnFeesMovieTicket };
|
|
276
472
|
}
|
|
277
473
|
function validateAppliedReturnPolicy(params) {
|
|
278
474
|
var _a;
|
|
@@ -384,11 +580,7 @@ function exportTasksById(params) {
|
|
|
384
580
|
transaction,
|
|
385
581
|
runsAt: taskRunsAt
|
|
386
582
|
});
|
|
387
|
-
|
|
388
|
-
yield repos.task.saveMany(taskAttributes);
|
|
389
|
-
// await Promise.all(taskAttributes.map(async (taskAttribute) => {
|
|
390
|
-
// await repos.task.save(taskAttribute);
|
|
391
|
-
// }));
|
|
583
|
+
yield repos.task.saveMany(taskAttributes, { emitImmediately: true });
|
|
392
584
|
});
|
|
393
585
|
}
|
|
394
586
|
exports.exportTasksById = exportTasksById;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import * as factory from '../factory';
|
|
2
|
-
import { MongoRepository as ActionRepo } from '../repo/action';
|
|
3
|
-
import { MongoRepository as AssetTransactionRepo } from '../repo/assetTransaction';
|
|
4
|
-
import { MongoRepository as ReservationRepo } from '../repo/reservation';
|
|
5
2
|
import { MongoRepository as TaskRepo } from '../repo/task';
|
|
6
3
|
import { MongoRepository as TransactionRepo } from '../repo/transaction';
|
|
4
|
+
import { deleteTransaction } from './transaction/deleteTransaction';
|
|
7
5
|
import * as MoneyTransferTransactionService from './transaction/moneyTransfer';
|
|
8
6
|
import * as PlaceOrderTransactionService from './transaction/placeOrder';
|
|
9
7
|
import * as PlaceOrderInProgressTransactionService from './transaction/placeOrderInProgress';
|
|
@@ -15,6 +13,7 @@ export import moneyTransfer = MoneyTransferTransactionService;
|
|
|
15
13
|
export import placeOrder = PlaceOrderTransactionService;
|
|
16
14
|
export import placeOrderInProgress = PlaceOrderInProgressTransactionService;
|
|
17
15
|
export import returnOrder = ReturnOrderTransactionService;
|
|
16
|
+
export { deleteTransaction };
|
|
18
17
|
/**
|
|
19
18
|
* 取引人プロフィール更新
|
|
20
19
|
*/
|
|
@@ -46,14 +45,9 @@ export declare function exportTasks<T extends factory.transactionType>(params: {
|
|
|
46
45
|
$in: T[];
|
|
47
46
|
};
|
|
48
47
|
id?: string;
|
|
48
|
+
tasksExportAction?: {
|
|
49
|
+
agent: {
|
|
50
|
+
name: string;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
49
53
|
}): IExportTasksOperation<void>;
|
|
50
|
-
/**
|
|
51
|
-
* 取引に関わるリソースを削除する
|
|
52
|
-
* 冪等性を確保すること
|
|
53
|
-
*/
|
|
54
|
-
export declare function deleteTransaction(params: factory.task.IData<factory.taskName.DeleteTransaction>): (repos: {
|
|
55
|
-
action: ActionRepo;
|
|
56
|
-
assetTransaction: AssetTransactionRepo;
|
|
57
|
-
reservation: ReservationRepo;
|
|
58
|
-
transaction: TransactionRepo;
|
|
59
|
-
}) => Promise<void>;
|