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