@chevre/domain 21.35.0-alpha.8 → 21.35.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/checkReserveTransactionSizes.ts +46 -0
- package/example/src/chevre/findCustomerByOrderNumber.ts +19 -0
- package/example/src/chevre/investigateMovieTicketIdentifier.ts +78 -0
- package/example/src/chevre/migrateAuthorizeEventServiceOfferCOA.ts +84 -0
- package/example/src/chevre/migrateAuthorizeEventServiceOfferChevre.ts +84 -0
- package/example/src/chevre/migrateAuthorizeEventServiceOfferInstrument.ts +128 -0
- package/example/src/chevre/migrateAuthorizeEventServiceOfferResult.ts +163 -0
- package/example/src/chevre/unsetUnnecessaryFieldsInAction.ts +55 -0
- package/example/src/chevre/{unsetUnnecessaryFields.ts → unsetUnnecessaryFieldsInTransaction.ts} +15 -6
- package/lib/chevre/factory/taskIdentifier.d.ts +29 -0
- package/lib/chevre/factory/taskIdentifier.js +10 -0
- package/lib/chevre/repo/action.d.ts +5 -5
- package/lib/chevre/repo/action.js +30 -29
- package/lib/chevre/repo/assetTransaction.js +10 -8
- package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +0 -25
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +2 -2
- package/lib/chevre/repo/mongoose/schemas/order.js +2 -4
- package/lib/chevre/repo/mongoose/schemas/transaction.js +2 -2
- package/lib/chevre/repo/orderInTransaction.d.ts +12 -1
- package/lib/chevre/repo/orderInTransaction.js +38 -0
- package/lib/chevre/repo/project.d.ts +1 -1
- package/lib/chevre/repo/project.js +11 -8
- package/lib/chevre/repo/seller.d.ts +9 -4
- package/lib/chevre/repo/seller.js +21 -15
- package/lib/chevre/repo/task.d.ts +12 -0
- package/lib/chevre/repo/task.js +17 -0
- package/lib/chevre/repo/transaction.d.ts +1 -1
- package/lib/chevre/repo/transaction.js +13 -17
- package/lib/chevre/service/assetTransaction/cancelReservation.js +1 -1
- package/lib/chevre/service/assetTransaction/pay.d.ts +6 -0
- package/lib/chevre/service/assetTransaction/pay.js +4 -4
- package/lib/chevre/service/notification.d.ts +5 -1
- package/lib/chevre/service/notification.js +6 -2
- package/lib/chevre/service/offer/event/authorize.js +2 -2
- package/lib/chevre/service/offer/event/factory.d.ts +6 -2
- package/lib/chevre/service/offer/event/factory.js +45 -47
- package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +2 -2
- package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +2 -2
- package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +2 -1
- package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +34 -16
- package/lib/chevre/service/offer/eventServiceByCOA/factory.js +16 -15
- package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +1 -1
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.d.ts +1 -4
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.js +1 -63
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.js +11 -11
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.d.ts +3 -1
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.js +2 -9
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +1 -1
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +6 -8
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +1 -0
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.js +18 -2
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +5 -5
- package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.d.ts +21 -0
- package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +97 -0
- package/lib/chevre/service/order/placeOrder/factory.d.ts +3 -1
- package/lib/chevre/service/order/placeOrder/factory.js +34 -5
- package/lib/chevre/service/order/placeOrder/voidAcceptedOfferIfNecessary.d.ts +10 -0
- package/lib/chevre/service/order/placeOrder/voidAcceptedOfferIfNecessary.js +34 -0
- package/lib/chevre/service/order/placeOrder.d.ts +1 -17
- package/lib/chevre/service/order/placeOrder.js +10 -178
- package/lib/chevre/service/order/placeOrderWithoutTransaction.d.ts +22 -0
- package/lib/chevre/service/order/placeOrderWithoutTransaction.js +60 -0
- package/lib/chevre/service/order/sendOrder.js +1 -1
- package/lib/chevre/service/order.d.ts +2 -1
- package/lib/chevre/service/order.js +2 -1
- package/lib/chevre/service/payment/any/factory.d.ts +2 -2
- package/lib/chevre/service/payment/any.js +13 -4
- package/lib/chevre/service/payment/movieTicket/authorize.d.ts +6 -0
- package/lib/chevre/service/payment/movieTicket/authorize.js +1 -1
- package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +3 -3
- package/lib/chevre/service/payment/movieTicket/validation.d.ts +9 -2
- package/lib/chevre/service/payment/movieTicket/validation.js +32 -11
- package/lib/chevre/service/task/confirmReserveTransaction.js +3 -3
- package/lib/chevre/service/task/returnPayTransaction.d.ts +2 -2
- package/lib/chevre/service/task/returnPayTransaction.js +77 -23
- package/lib/chevre/service/task/sendEmailMessage.d.ts +2 -2
- package/lib/chevre/service/task/sendEmailMessage.js +3 -2
- package/lib/chevre/service/task.js +2 -0
- package/lib/chevre/service/transaction/deleteTransaction.js +3 -3
- package/lib/chevre/service/transaction/placeOrderInProgress/confirm.d.ts +8 -5
- package/lib/chevre/service/transaction/placeOrderInProgress/confirm.js +43 -41
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/sendEmailMessage.d.ts +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +1 -4
- package/lib/chevre/service/transaction/placeOrderInProgress/result.js +50 -30
- package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +5 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +57 -31
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +62 -58
- package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.d.ts +3 -1
- package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +14 -27
- package/lib/chevre/service/transaction/returnOrder/preStart.js +17 -19
- package/lib/chevre/service/transaction.d.ts +13 -2
- package/lib/chevre/service/transaction.js +42 -13
- package/lib/chevre/service.d.ts +2 -0
- package/lib/chevre/service.js +2 -0
- package/lib/chevre/settings.d.ts +0 -1
- package/lib/chevre/settings.js +1 -2
- package/package.json +3 -3
- package/example/src/chevre/investigateCheckMovieTicketActions.ts +0 -60
|
@@ -6,22 +6,6 @@ import type { MongoRepository as OrderInTransactionRepo } from '../../repo/order
|
|
|
6
6
|
import type { MongoRepository as TaskRepo } from '../../repo/task';
|
|
7
7
|
import type { MongoRepository as TransactionRepo } from '../../repo/transaction';
|
|
8
8
|
import * as factory from '../../factory';
|
|
9
|
-
import { IExternalOrder } from './onOrderStatusChanged';
|
|
10
|
-
/**
|
|
11
|
-
* 注文取引なしに注文を作成する
|
|
12
|
-
*/
|
|
13
|
-
declare function placeOrderWithoutTransaction(params: {
|
|
14
|
-
agent?: factory.action.trade.order.IAgent;
|
|
15
|
-
project: {
|
|
16
|
-
id: string;
|
|
17
|
-
};
|
|
18
|
-
object: IExternalOrder;
|
|
19
|
-
}): (repos: {
|
|
20
|
-
accountingReport: AccountingReportRepo;
|
|
21
|
-
action: ActionRepo;
|
|
22
|
-
order: OrderRepo;
|
|
23
|
-
task: TaskRepo;
|
|
24
|
-
}) => Promise<void>;
|
|
25
9
|
/**
|
|
26
10
|
* 注文を作成する
|
|
27
11
|
*/
|
|
@@ -46,4 +30,4 @@ declare function placeOrder(params: {
|
|
|
46
30
|
}) => Promise<{
|
|
47
31
|
order: factory.transaction.placeOrder.IOrderAsResult;
|
|
48
32
|
}>;
|
|
49
|
-
export { placeOrder
|
|
33
|
+
export { placeOrder };
|
|
@@ -9,141 +9,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
13
|
-
const createDebug = require("debug");
|
|
12
|
+
exports.placeOrder = void 0;
|
|
14
13
|
const factory = require("../../factory");
|
|
15
14
|
const onAssetTransactionStatusChanged_1 = require("./onAssetTransactionStatusChanged");
|
|
16
15
|
const onOrderStatusChanged_1 = require("./onOrderStatusChanged");
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
function createPlacingOrderFromExistingTransaction(params) {
|
|
20
|
-
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
21
|
-
var _a;
|
|
22
|
-
const confirmationNumber = String(params.confirmationNumber);
|
|
23
|
-
const orderNumber = params.orderNumber;
|
|
24
|
-
let order;
|
|
25
|
-
const placeOrderTransactions = yield repos.transaction.search({
|
|
26
|
-
limit: 1,
|
|
27
|
-
page: 1,
|
|
28
|
-
project: { id: { $eq: params.project.id } },
|
|
29
|
-
typeOf: factory.transactionType.PlaceOrder,
|
|
30
|
-
statuses: [factory.transactionStatusType.Confirmed],
|
|
31
|
-
result: {
|
|
32
|
-
order: {
|
|
33
|
-
confirmationNumber: { $eq: confirmationNumber },
|
|
34
|
-
orderNumbers: [orderNumber]
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
inclusion: ['project', 'typeOf', 'result', 'object', 'seller'] // potentialActionsは必要なし(2024-01-19~)
|
|
38
|
-
});
|
|
39
|
-
const placeOrderTransactionWithResult = placeOrderTransactions.shift();
|
|
40
|
-
if (placeOrderTransactionWithResult === undefined) {
|
|
41
|
-
throw new factory.errors.NotFound(factory.transactionType.PlaceOrder);
|
|
42
|
-
}
|
|
43
|
-
let authorizePaymentActions = [];
|
|
44
|
-
const authorizeActionsAsResult = (_a = placeOrderTransactionWithResult.result) === null || _a === void 0 ? void 0 : _a.authorizeActions;
|
|
45
|
-
if (Array.isArray(authorizeActionsAsResult) && authorizeActionsAsResult.length > 0) {
|
|
46
|
-
const completedAuthorizeActionIds = authorizeActionsAsResult.map(({ id }) => id);
|
|
47
|
-
if (completedAuthorizeActionIds.length > 0) {
|
|
48
|
-
authorizePaymentActions = yield repos.action.search({
|
|
49
|
-
typeOf: factory.actionType.AuthorizeAction,
|
|
50
|
-
purpose: {
|
|
51
|
-
typeOf: { $in: [factory.transactionType.PlaceOrder] },
|
|
52
|
-
id: { $in: [placeOrderTransactionWithResult.id] }
|
|
53
|
-
},
|
|
54
|
-
object: { typeOf: { $eq: factory.action.authorize.paymentMethod.any.ResultType.Payment } },
|
|
55
|
-
id: { $in: completedAuthorizeActionIds }
|
|
56
|
-
}, ['result'], []);
|
|
57
|
-
debug('createPlacingOrderFromExistingTransaction: authorizePaymentActions found:', JSON.stringify(authorizePaymentActions));
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
order = (0, factory_1.createPlacingOrder)({ transaction: placeOrderTransactionWithResult, authorizePaymentActions });
|
|
61
|
-
return { order, placeOrderTransaction: placeOrderTransactionWithResult };
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* 注文取引なしに注文を作成する
|
|
66
|
-
*/
|
|
67
|
-
function placeOrderWithoutTransaction(params) {
|
|
68
|
-
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
var _a;
|
|
70
|
-
const order = params.object;
|
|
71
|
-
const simpleOrder = {
|
|
72
|
-
typeOf: order.typeOf,
|
|
73
|
-
// seller: {
|
|
74
|
-
// id: order.seller.id,
|
|
75
|
-
// typeOf: order.seller.typeOf,
|
|
76
|
-
// name: order.seller.name
|
|
77
|
-
// }, // 廃止(2024-03-06~)
|
|
78
|
-
// customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id }, // 廃止(2024-03-06~)
|
|
79
|
-
orderNumber: order.orderNumber,
|
|
80
|
-
price: order.price,
|
|
81
|
-
priceCurrency: order.priceCurrency,
|
|
82
|
-
orderDate: order.orderDate
|
|
83
|
-
};
|
|
84
|
-
const orderActionAttributes = {
|
|
85
|
-
agent: (typeof ((_a = params.agent) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? params.agent : order.project,
|
|
86
|
-
object: simpleOrder,
|
|
87
|
-
potentialActions: {},
|
|
88
|
-
project: order.project,
|
|
89
|
-
// purpose: { typeOf: placeOrderTransaction.typeOf, id: placeOrderTransaction.id },
|
|
90
|
-
typeOf: factory.actionType.OrderAction
|
|
91
|
-
};
|
|
92
|
-
const action = yield repos.action.start(orderActionAttributes);
|
|
93
|
-
try {
|
|
94
|
-
yield repos.order.createIfNotExist(Object.assign(Object.assign({}, order), {
|
|
95
|
-
// discounts: [], // 廃止(2024-04-16~)
|
|
96
|
-
acceptedOffers: [] }));
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
try {
|
|
100
|
-
yield repos.action.giveUp({ typeOf: orderActionAttributes.typeOf, id: action.id, error });
|
|
101
|
-
}
|
|
102
|
-
catch (__) {
|
|
103
|
-
// 失敗したら仕方ない
|
|
104
|
-
}
|
|
105
|
-
throw error;
|
|
106
|
-
}
|
|
107
|
-
yield repos.action.completeWithVoid({ typeOf: orderActionAttributes.typeOf, id: action.id, result: {} });
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
exports.placeOrderWithoutTransaction = placeOrderWithoutTransaction;
|
|
111
|
-
function voidAcceptedOfferIfNecessary(params) {
|
|
112
|
-
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
113
|
-
var _a;
|
|
114
|
-
// 取引に保管された承認アクション以外のアクションについて、オファーを除外する
|
|
115
|
-
const authorizeActionsAsResult = (_a = params.purpose.result) === null || _a === void 0 ? void 0 : _a.authorizeActions;
|
|
116
|
-
if (Array.isArray(authorizeActionsAsResult) && authorizeActionsAsResult.length > 0) {
|
|
117
|
-
const completedAuthorizeActionIds = authorizeActionsAsResult.map(({ id }) => id);
|
|
118
|
-
debug(completedAuthorizeActionIds.length, 'completedAuthorizeActionIds found from transaction', params.purpose.id);
|
|
119
|
-
const authorizeActionsWithInstrument = yield repos.action.search({
|
|
120
|
-
typeOf: factory.actionType.AuthorizeAction,
|
|
121
|
-
purpose: {
|
|
122
|
-
typeOf: { $in: [factory.transactionType.PlaceOrder] },
|
|
123
|
-
id: { $in: [params.purpose.id] }
|
|
124
|
-
},
|
|
125
|
-
object: {
|
|
126
|
-
typeOf: {
|
|
127
|
-
$in: [
|
|
128
|
-
factory.action.authorize.offer.eventService.ObjectType.SeatReservation,
|
|
129
|
-
factory.offerType.Offer
|
|
130
|
-
]
|
|
131
|
-
}
|
|
132
|
-
},
|
|
133
|
-
id: { $in: completedAuthorizeActionIds }
|
|
134
|
-
}, ['instrument'], []);
|
|
135
|
-
const serialNumbersMustBeIn = authorizeActionsWithInstrument
|
|
136
|
-
.filter(({ instrument }) => typeof instrument.transactionNumber === 'string')
|
|
137
|
-
.map(({ instrument }) => String(instrument.transactionNumber));
|
|
138
|
-
debug('voidAcceptedOfferBySerialNumber processing...', params.object.orderNumber, 'serialNumbersMustBeIn:', serialNumbersMustBeIn);
|
|
139
|
-
const voidAcceptedOfferBySerialNumberResult = yield repos.orderInTransaction.voidAcceptedOfferBySerialNumber({
|
|
140
|
-
orderNumber: params.object.orderNumber,
|
|
141
|
-
acceptedOffers: { serialNumber: { $nin: serialNumbersMustBeIn } }
|
|
142
|
-
});
|
|
143
|
-
debug('voidAcceptedOfferBySerialNumber processed.', params.object.orderNumber, 'voidAcceptedOfferBySerialNumberResult:', voidAcceptedOfferBySerialNumberResult);
|
|
144
|
-
}
|
|
145
|
-
});
|
|
146
|
-
}
|
|
16
|
+
const createPlacingOrderFromExistingTransaction_1 = require("./placeOrder/createPlacingOrderFromExistingTransaction");
|
|
17
|
+
const voidAcceptedOfferIfNecessary_1 = require("./placeOrder/voidAcceptedOfferIfNecessary");
|
|
147
18
|
/**
|
|
148
19
|
* 注文を作成する
|
|
149
20
|
*/
|
|
@@ -155,19 +26,15 @@ function placeOrder(params) {
|
|
|
155
26
|
throw new factory.errors.Argument('useOnOrderStatusChanged', 'must be boolean');
|
|
156
27
|
}
|
|
157
28
|
// 注文番号から取引と注文をfixする
|
|
158
|
-
const { order, placeOrderTransaction } = yield createPlacingOrderFromExistingTransaction({
|
|
29
|
+
const { order, placeOrderTransaction, serialNumbers } = yield (0, createPlacingOrderFromExistingTransaction_1.createPlacingOrderFromExistingTransaction)({
|
|
159
30
|
project: { id: params.project.id },
|
|
160
31
|
confirmationNumber: params.object.confirmationNumber,
|
|
161
32
|
orderNumber: params.object.orderNumber
|
|
162
|
-
})(
|
|
163
|
-
action: repos.action,
|
|
164
|
-
transaction: repos.transaction
|
|
165
|
-
});
|
|
33
|
+
})(repos);
|
|
166
34
|
// USE_ORDER_PAYMENT_DUE_ON_PLACED設定を廃止したので、必ずOrderPaymentDueのはず(2024-01-10~)
|
|
167
35
|
if (order.orderStatus !== factory.orderStatus.OrderPaymentDue) {
|
|
168
36
|
throw new factory.errors.ServiceUnavailable(`orderStatus must be ${factory.orderStatus.OrderPaymentDue}`);
|
|
169
37
|
}
|
|
170
|
-
// const maskedCustomer = createMaskedCustomer(order, { noProfile: true });
|
|
171
38
|
const simpleOrder = {
|
|
172
39
|
typeOf: order.typeOf,
|
|
173
40
|
// seller: {
|
|
@@ -198,9 +65,7 @@ function placeOrder(params) {
|
|
|
198
65
|
page: 1,
|
|
199
66
|
actionStatus: { $in: [factory.actionStatusType.CompletedActionStatus] },
|
|
200
67
|
typeOf: { $eq: orderActionAttributes.typeOf },
|
|
201
|
-
object: {
|
|
202
|
-
orderNumber: { $in: [orderActionAttributes.object.orderNumber] }
|
|
203
|
-
},
|
|
68
|
+
object: { orderNumber: { $in: [orderActionAttributes.object.orderNumber] } },
|
|
204
69
|
purpose: {
|
|
205
70
|
id: { $in: [orderActionPurpose.id] },
|
|
206
71
|
typeOf: { $in: [orderActionPurpose.typeOf] }
|
|
@@ -210,22 +75,12 @@ function placeOrder(params) {
|
|
|
210
75
|
const action = yield repos.action.start(orderActionAttributes);
|
|
211
76
|
try {
|
|
212
77
|
// 冗長なオファーを除外する(念のため)
|
|
213
|
-
yield voidAcceptedOfferIfNecessary({
|
|
78
|
+
yield (0, voidAcceptedOfferIfNecessary_1.voidAcceptedOfferIfNecessary)({
|
|
214
79
|
object: { orderNumber: order.orderNumber },
|
|
215
|
-
purpose: placeOrderTransaction
|
|
80
|
+
// purpose: placeOrderTransaction,
|
|
81
|
+
serialNumbers
|
|
216
82
|
})(repos);
|
|
217
|
-
// acceptedOffersの内容検証(開発)
|
|
218
|
-
// if (USE_ACCEPTED_OFFERS_AS_TRANSACTION_RESULT) {
|
|
219
|
-
// if (USE_VERIFY_ACCEPTED_OFFERS) {
|
|
220
|
-
// await verifyAcceptedOffers({ order })(repos);
|
|
221
|
-
// }
|
|
222
|
-
// }
|
|
223
|
-
// const ignoreAccpetedOffersFromResult = placeOrderTransaction.result?.options?.ignoreAccpetedOffersFromResult === true;
|
|
224
|
-
// orderInTransactionを考慮(2024-01-14~)
|
|
225
83
|
yield repos.orderInTransaction.placeOrder(order);
|
|
226
|
-
// if (!ignoreAccpetedOffersFromResult) {
|
|
227
|
-
// await repos.order.createIfNotExist(order);
|
|
228
|
-
// }
|
|
229
84
|
}
|
|
230
85
|
catch (error) {
|
|
231
86
|
try {
|
|
@@ -239,9 +94,7 @@ function placeOrder(params) {
|
|
|
239
94
|
yield repos.action.completeWithVoid({ typeOf: orderActionAttributes.typeOf, id: action.id, result: {} });
|
|
240
95
|
}
|
|
241
96
|
if (params.useOnOrderStatusChanged) {
|
|
242
|
-
//
|
|
243
|
-
// CreateAccountingReportへ移行(2024-02-02~)
|
|
244
|
-
// await createAccountingReportIfNotExist(order)({ accountingReport: repos.accountingReport });
|
|
97
|
+
// 経理レポートを保管->CreateAccountingReportへ移行(2024-02-02~)
|
|
245
98
|
// PaymentDueであればonOrderStatusChangedを実行(2023-08-23~)
|
|
246
99
|
if (order.orderStatus === factory.orderStatus.OrderPaymentDue) {
|
|
247
100
|
yield (0, onOrderStatusChanged_1.onOrderPaymentDue)({
|
|
@@ -250,7 +103,6 @@ function placeOrder(params) {
|
|
|
250
103
|
project: placeOrderTransaction.project,
|
|
251
104
|
orderNumber: order.orderNumber,
|
|
252
105
|
confirmationNumber: order.confirmationNumber,
|
|
253
|
-
// customer: order.customer,
|
|
254
106
|
orderDate: order.orderDate,
|
|
255
107
|
seller: order.seller,
|
|
256
108
|
typeOf: order.typeOf,
|
|
@@ -261,26 +113,6 @@ function placeOrder(params) {
|
|
|
261
113
|
})({
|
|
262
114
|
task: repos.task
|
|
263
115
|
});
|
|
264
|
-
// } else if (order.orderStatus === factory.orderStatus.OrderProcessing) {
|
|
265
|
-
// // OrderPaymentDueをスキップしてOrderProcessingから開始する場合(2023-08-23~)
|
|
266
|
-
// // OrderPaymentDueに対する処理をまず強制的に実行する(2023-08-24~)
|
|
267
|
-
// await onOrderPaymentDue({
|
|
268
|
-
// order: {
|
|
269
|
-
// paymentMethods: order.paymentMethods,
|
|
270
|
-
// project: order.project,
|
|
271
|
-
// orderNumber: order.orderNumber,
|
|
272
|
-
// confirmationNumber: order.confirmationNumber,
|
|
273
|
-
// customer: order.customer,
|
|
274
|
-
// orderDate: order.orderDate,
|
|
275
|
-
// seller: order.seller,
|
|
276
|
-
// typeOf: order.typeOf,
|
|
277
|
-
// price: order.price,
|
|
278
|
-
// priceCurrency: order.priceCurrency,
|
|
279
|
-
// orderStatus: factory.orderStatus.OrderPaymentDue
|
|
280
|
-
// }
|
|
281
|
-
// })({
|
|
282
|
-
// task: repos.task
|
|
283
|
-
// });
|
|
284
116
|
}
|
|
285
117
|
else {
|
|
286
118
|
throw new factory.errors.NotImplemented(`placing an order on the status '${order.orderStatus}' not implemented`);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { MongoRepository as AccountingReportRepo } from '../../repo/accountingReport';
|
|
2
|
+
import type { MongoRepository as ActionRepo } from '../../repo/action';
|
|
3
|
+
import type { MongoRepository as OrderRepo } from '../../repo/order';
|
|
4
|
+
import type { MongoRepository as TaskRepo } from '../../repo/task';
|
|
5
|
+
import * as factory from '../../factory';
|
|
6
|
+
import { IExternalOrder } from './onOrderStatusChanged';
|
|
7
|
+
/**
|
|
8
|
+
* 注文取引なしに注文を作成する
|
|
9
|
+
*/
|
|
10
|
+
declare function placeOrderWithoutTransaction(params: {
|
|
11
|
+
agent?: factory.action.trade.order.IAgent;
|
|
12
|
+
project: {
|
|
13
|
+
id: string;
|
|
14
|
+
};
|
|
15
|
+
object: IExternalOrder;
|
|
16
|
+
}): (repos: {
|
|
17
|
+
accountingReport: AccountingReportRepo;
|
|
18
|
+
action: ActionRepo;
|
|
19
|
+
order: OrderRepo;
|
|
20
|
+
task: TaskRepo;
|
|
21
|
+
}) => Promise<void>;
|
|
22
|
+
export { placeOrderWithoutTransaction };
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.placeOrderWithoutTransaction = void 0;
|
|
13
|
+
const factory = require("../../factory");
|
|
14
|
+
/**
|
|
15
|
+
* 注文取引なしに注文を作成する
|
|
16
|
+
*/
|
|
17
|
+
function placeOrderWithoutTransaction(params) {
|
|
18
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
var _a;
|
|
20
|
+
const order = params.object;
|
|
21
|
+
const simpleOrder = {
|
|
22
|
+
typeOf: order.typeOf,
|
|
23
|
+
// seller: {
|
|
24
|
+
// id: order.seller.id,
|
|
25
|
+
// typeOf: order.seller.typeOf,
|
|
26
|
+
// name: order.seller.name
|
|
27
|
+
// }, // 廃止(2024-03-06~)
|
|
28
|
+
// customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id }, // 廃止(2024-03-06~)
|
|
29
|
+
orderNumber: order.orderNumber,
|
|
30
|
+
price: order.price,
|
|
31
|
+
priceCurrency: order.priceCurrency,
|
|
32
|
+
orderDate: order.orderDate
|
|
33
|
+
};
|
|
34
|
+
const orderActionAttributes = {
|
|
35
|
+
agent: (typeof ((_a = params.agent) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? params.agent : order.project,
|
|
36
|
+
object: simpleOrder,
|
|
37
|
+
potentialActions: {},
|
|
38
|
+
project: order.project,
|
|
39
|
+
// purpose: { typeOf: placeOrderTransaction.typeOf, id: placeOrderTransaction.id },
|
|
40
|
+
typeOf: factory.actionType.OrderAction
|
|
41
|
+
};
|
|
42
|
+
const action = yield repos.action.start(orderActionAttributes);
|
|
43
|
+
try {
|
|
44
|
+
yield repos.order.createIfNotExist(Object.assign(Object.assign({}, order), {
|
|
45
|
+
// discounts: [], // 廃止(2024-04-16~)
|
|
46
|
+
acceptedOffers: [] }));
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
try {
|
|
50
|
+
yield repos.action.giveUp({ typeOf: orderActionAttributes.typeOf, id: action.id, error });
|
|
51
|
+
}
|
|
52
|
+
catch (__) {
|
|
53
|
+
// 失敗したら仕方ない
|
|
54
|
+
}
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
yield repos.action.completeWithVoid({ typeOf: orderActionAttributes.typeOf, id: action.id, result: {} });
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
exports.placeOrderWithoutTransaction = placeOrderWithoutTransaction;
|
|
@@ -81,7 +81,7 @@ function sendOrder(params) {
|
|
|
81
81
|
const sendOrderActionAttributes = {
|
|
82
82
|
agent: (typeof ((_c = params.agent) === null || _c === void 0 ? void 0 : _c.typeOf) === 'string') ? params.agent : order.project,
|
|
83
83
|
object: sendOrderObject,
|
|
84
|
-
potentialActions: {},
|
|
84
|
+
// potentialActions: {},
|
|
85
85
|
project: order.project,
|
|
86
86
|
recipient: { id: order.customer.id, typeOf: order.customer.typeOf },
|
|
87
87
|
typeOf: factory.actionType.SendAction
|
|
@@ -7,6 +7,7 @@ import { onAssetTransactionStatusChanged, paymentDue2Processing } from './order/
|
|
|
7
7
|
import { onOrderProcessing } from './order/onOrderStatusChanged';
|
|
8
8
|
import { onOrderUpdated } from './order/onOrderUpdated';
|
|
9
9
|
import { payOrder } from './order/payOrder';
|
|
10
|
-
import { placeOrder
|
|
10
|
+
import { placeOrder } from './order/placeOrder';
|
|
11
|
+
import { placeOrderWithoutTransaction } from './order/placeOrderWithoutTransaction';
|
|
11
12
|
import { sendOrder } from './order/sendOrder';
|
|
12
13
|
export { confirmPayTransaction, deleteOrder, onAssetTransactionStatusChanged, onOrderProcessing, onOrderUpdated, paymentDue2Processing, payOrder, placeOrder, placeOrderWithoutTransaction, sendOrder };
|
|
@@ -19,6 +19,7 @@ const payOrder_1 = require("./order/payOrder");
|
|
|
19
19
|
Object.defineProperty(exports, "payOrder", { enumerable: true, get: function () { return payOrder_1.payOrder; } });
|
|
20
20
|
const placeOrder_1 = require("./order/placeOrder");
|
|
21
21
|
Object.defineProperty(exports, "placeOrder", { enumerable: true, get: function () { return placeOrder_1.placeOrder; } });
|
|
22
|
-
|
|
22
|
+
const placeOrderWithoutTransaction_1 = require("./order/placeOrderWithoutTransaction");
|
|
23
|
+
Object.defineProperty(exports, "placeOrderWithoutTransaction", { enumerable: true, get: function () { return placeOrderWithoutTransaction_1.placeOrderWithoutTransaction; } });
|
|
23
24
|
const sendOrder_1 = require("./order/sendOrder");
|
|
24
25
|
Object.defineProperty(exports, "sendOrder", { enumerable: true, get: function () { return sendOrder_1.sendOrder; } });
|
|
@@ -12,7 +12,7 @@ export interface IOnPaymentStatusChangedRefundAction {
|
|
|
12
12
|
export type IOnPaymentStatusChangedParams = IOnPaymentStatusChangedPayAction | IOnPaymentStatusChangedRefundAction;
|
|
13
13
|
export declare function creatPayTransactionStartParams(params: {
|
|
14
14
|
accountId?: string;
|
|
15
|
-
object: factory.action.authorize.paymentMethod.any.
|
|
15
|
+
object: factory.action.authorize.paymentMethod.any.IObjectIncludingPaymentMethodDetails;
|
|
16
16
|
paymentServiceType: factory.service.paymentService.PaymentServiceType;
|
|
17
17
|
transaction: Pick<factory.transaction.ITransaction<factory.transactionType.PlaceOrder>, 'expires' | 'seller' | 'project'>;
|
|
18
18
|
transactionNumber: string;
|
|
@@ -26,7 +26,7 @@ export declare function creatPayTransactionStartParams(params: {
|
|
|
26
26
|
}): factory.assetTransaction.pay.IStartParamsWithoutDetail;
|
|
27
27
|
export declare function createMovieTicket(params: factory.action.trade.pay.IMovieTicket): factory.action.trade.pay.IMovieTicket;
|
|
28
28
|
export declare function createAuthorizeResult(params: {
|
|
29
|
-
object: factory.action.authorize.paymentMethod.any.
|
|
29
|
+
object: factory.action.authorize.paymentMethod.any.IObjectIncludingPaymentMethodDetails;
|
|
30
30
|
payTransaction: factory.assetTransaction.pay.ITransaction;
|
|
31
31
|
}): factory.action.authorize.paymentMethod.any.IResultAsInvoice[];
|
|
32
32
|
/**
|
|
@@ -289,6 +289,14 @@ function publishPaymentUrl(params) {
|
|
|
289
289
|
});
|
|
290
290
|
}
|
|
291
291
|
exports.publishPaymentUrl = publishPaymentUrl;
|
|
292
|
+
/**
|
|
293
|
+
* 承認アクションオブジェクトから冗長な属性を排除する
|
|
294
|
+
*/
|
|
295
|
+
function minimizeObjectIncludingPaymentMethodDetails(authorizeObjectIncludingPaymentMethodDetails) {
|
|
296
|
+
const { accountId, paymentMethodId, typeOf } = authorizeObjectIncludingPaymentMethodDetails;
|
|
297
|
+
return { authorizeObject: { accountId, paymentMethodId, typeOf } }; // optimize(2024-06-26~)
|
|
298
|
+
// return { authorizeObject: authorizeObjectIncludingPaymentMethodDetails };
|
|
299
|
+
}
|
|
292
300
|
/**
|
|
293
301
|
* 決済承認
|
|
294
302
|
*/
|
|
@@ -345,7 +353,8 @@ function authorize(params) {
|
|
|
345
353
|
}
|
|
346
354
|
const movieTickets = (Array.isArray(params.object.movieTickets)) ? params.object.movieTickets.map(factory_1.createMovieTicket) : undefined;
|
|
347
355
|
const { accountId } = yield fixAccountIdIfPossible({ object: params.object, project: { id: transaction.project.id } })(repos);
|
|
348
|
-
const
|
|
356
|
+
const authorizeObjectIncludingPaymentMethodDetails = Object.assign(Object.assign(Object.assign(Object.assign({}, params.object), { accountId, paymentMethodId: transactionNumber, typeOf: factory.action.authorize.paymentMethod.any.ResultType.Payment }), (creditCard !== undefined) ? { creditCard } : undefined), (Array.isArray(movieTickets)) ? { movieTickets } : undefined);
|
|
357
|
+
const { authorizeObject } = minimizeObjectIncludingPaymentMethodDetails(authorizeObjectIncludingPaymentMethodDetails);
|
|
349
358
|
// 承認アクションを開始する
|
|
350
359
|
const taskId = (_a = params.sameAs) === null || _a === void 0 ? void 0 : _a.id;
|
|
351
360
|
const actionAttributes = Object.assign({ project: transaction.project, typeOf: factory.actionType.AuthorizeAction, object: authorizeObject, agent: {
|
|
@@ -368,14 +377,14 @@ function authorize(params) {
|
|
|
368
377
|
try {
|
|
369
378
|
const startParams = (0, factory_1.creatPayTransactionStartParams)({
|
|
370
379
|
accountId,
|
|
371
|
-
object:
|
|
380
|
+
object: authorizeObjectIncludingPaymentMethodDetails,
|
|
372
381
|
paymentServiceType,
|
|
373
382
|
transaction: transaction,
|
|
374
383
|
transactionNumber: transactionNumber,
|
|
375
384
|
location: params.location,
|
|
376
385
|
order: Object.assign({}, (typeof confirmationNumber === 'string') ? { confirmationNumber } : undefined)
|
|
377
386
|
});
|
|
378
|
-
payTransaction = yield PayTransactionService.start(startParams, Object.assign({ useCheckByIdentifierIfNotYet: params.options.useCheckByIdentifierIfNotYet, executor: (typeof taskId === 'string') ? { id: taskId } : {} }, (pendingPaymentAgencyTransaction !== undefined) ? { pendingPaymentAgencyTransaction } : undefined))(repos);
|
|
387
|
+
payTransaction = yield PayTransactionService.start(startParams, Object.assign({ useCheckByIdentifierIfNotYet: params.options.useCheckByIdentifierIfNotYet, executor: (typeof taskId === 'string') ? { id: taskId } : {}, purpose: { id: transaction.id } }, (pendingPaymentAgencyTransaction !== undefined) ? { pendingPaymentAgencyTransaction } : undefined))(repos);
|
|
379
388
|
}
|
|
380
389
|
catch (error) {
|
|
381
390
|
try {
|
|
@@ -409,7 +418,7 @@ function authorize(params) {
|
|
|
409
418
|
throw error;
|
|
410
419
|
}
|
|
411
420
|
}
|
|
412
|
-
const result = (0, factory_1.createAuthorizeResult)({ payTransaction, object:
|
|
421
|
+
const result = (0, factory_1.createAuthorizeResult)({ payTransaction, object: authorizeObjectIncludingPaymentMethodDetails });
|
|
413
422
|
yield repos.action.completeWithVoid({ typeOf: action.typeOf, id: action.id, result: result });
|
|
414
423
|
return { id: action.id };
|
|
415
424
|
});
|
|
@@ -26,6 +26,12 @@ declare function authorize(params: factory.assetTransaction.pay.IStartParamsWith
|
|
|
26
26
|
*/
|
|
27
27
|
id?: string;
|
|
28
28
|
};
|
|
29
|
+
purpose: {
|
|
30
|
+
/**
|
|
31
|
+
* placeOrder ID
|
|
32
|
+
*/
|
|
33
|
+
id?: string;
|
|
34
|
+
};
|
|
29
35
|
}): (repos: {
|
|
30
36
|
action: ActionRepo;
|
|
31
37
|
accountingReport: AccountingReportRepo;
|
|
@@ -26,7 +26,7 @@ function authorize(params, transaction, paymentServiceId, useCheckByIdentifierIf
|
|
|
26
26
|
let accountsReceivablesByServiceType = [];
|
|
27
27
|
try {
|
|
28
28
|
// MovieTicket決済の場合、認証
|
|
29
|
-
const validateMovieTicketResult = yield (0, validation_1.validateMovieTicket)(params, paymentServiceId, useCheckByIdentifierIfNotYet)(repos);
|
|
29
|
+
const validateMovieTicketResult = yield (0, validation_1.validateMovieTicket)(params, paymentServiceId, useCheckByIdentifierIfNotYet, options.purpose)(repos);
|
|
30
30
|
accountsReceivablesByServiceType = validateMovieTicketResult.accountsReceivablesByServiceType;
|
|
31
31
|
const paymentMethod = transaction.object.paymentMethod;
|
|
32
32
|
const paymentMethodType = String(paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.identifier);
|
|
@@ -21,11 +21,11 @@ function checkMovieTicket(params) {
|
|
|
21
21
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
22
22
|
var _a, _b, _c, _d, _e, _f;
|
|
23
23
|
// 不要な属性がリクエストに含まれているのでmovieTicketsを最適化(2024-03-15~)
|
|
24
|
-
|
|
25
|
-
if (!Array.isArray(
|
|
24
|
+
const movieTicketsBeforeOptimize = (_a = params.object[0]) === null || _a === void 0 ? void 0 : _a.movieTickets;
|
|
25
|
+
if (!Array.isArray(movieTicketsBeforeOptimize)) {
|
|
26
26
|
throw new factory.errors.Argument('object.movieTickets must be an array');
|
|
27
27
|
}
|
|
28
|
-
movieTickets =
|
|
28
|
+
const movieTickets = movieTicketsBeforeOptimize.map(({ accessCode, category, identifier, serviceOutput }) => {
|
|
29
29
|
return {
|
|
30
30
|
accessCode, category, identifier,
|
|
31
31
|
serviceOutput: { reservationFor: serviceOutput.reservationFor } // 最適化(2024-03-15~)
|
|
@@ -1,15 +1,22 @@
|
|
|
1
|
-
import * as factory from '../../../factory';
|
|
2
1
|
import type { MongoRepository as ActionRepo } from '../../../repo/action';
|
|
3
2
|
import type { MongoRepository as EventRepo } from '../../../repo/event';
|
|
4
3
|
import type { MongoRepository as PaymentServiceRepo } from '../../../repo/paymentService';
|
|
5
4
|
import type { MongoRepository as PaymentServiceProviderRepo } from '../../../repo/paymentServiceProvider';
|
|
6
5
|
import type { MongoRepository as PaymentAcceptedRepo } from '../../../repo/sellerPaymentAccepted';
|
|
7
|
-
|
|
6
|
+
import type { MongoRepository as TaskRepo } from '../../../repo/task';
|
|
7
|
+
import * as factory from '../../../factory';
|
|
8
|
+
export declare function validateMovieTicket(params: factory.assetTransaction.pay.IStartParamsWithoutDetail, paymentServiceId: string, useCheckByIdentifierIfNotYet: boolean, purpose: {
|
|
9
|
+
/**
|
|
10
|
+
* placeOrder ID
|
|
11
|
+
*/
|
|
12
|
+
id?: string;
|
|
13
|
+
}): (repos: {
|
|
8
14
|
action: ActionRepo;
|
|
9
15
|
event: EventRepo;
|
|
10
16
|
paymentAccepted: PaymentAcceptedRepo;
|
|
11
17
|
paymentService: PaymentServiceRepo;
|
|
12
18
|
paymentServiceProvider: PaymentServiceProviderRepo;
|
|
19
|
+
task: TaskRepo;
|
|
13
20
|
}) => Promise<{
|
|
14
21
|
accountsReceivablesByServiceType: factory.assetTransaction.pay.IAccountsReceivableByServiceType[];
|
|
15
22
|
}>;
|
|
@@ -12,9 +12,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.validateMovieTicket = void 0;
|
|
13
13
|
const createDebug = require("debug");
|
|
14
14
|
const factory = require("../../../factory");
|
|
15
|
+
const taskIdentifier_1 = require("../../../factory/taskIdentifier");
|
|
16
|
+
const settings_1 = require("../../../settings");
|
|
15
17
|
const processPurchaseNumberAuth_1 = require("./processPurchaseNumberAuth");
|
|
16
18
|
const debug = createDebug('chevre-domain:service:payment');
|
|
17
|
-
function validateMovieTicket(params, paymentServiceId, useCheckByIdentifierIfNotYet) {
|
|
19
|
+
function validateMovieTicket(params, paymentServiceId, useCheckByIdentifierIfNotYet, purpose) {
|
|
18
20
|
// tslint:disable-next-line:max-func-body-length
|
|
19
21
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
20
22
|
var _a, _b, _c;
|
|
@@ -79,7 +81,8 @@ function validateMovieTicket(params, paymentServiceId, useCheckByIdentifierIfNot
|
|
|
79
81
|
seller: { id: sellerId },
|
|
80
82
|
screeningEvent: screeningEvent,
|
|
81
83
|
paymentServiceId,
|
|
82
|
-
useCheckByIdentifierIfNotYet
|
|
84
|
+
useCheckByIdentifierIfNotYet,
|
|
85
|
+
purpose
|
|
83
86
|
})(repos);
|
|
84
87
|
const accountsReceivablesByServiceType = [];
|
|
85
88
|
// 券種ごとに枚数が足りているか
|
|
@@ -114,13 +117,31 @@ function checkByIdentifierIfNotYet(params) {
|
|
|
114
117
|
let checkResult;
|
|
115
118
|
if (params.useCheckByIdentifierIfNotYet === true) {
|
|
116
119
|
// すでにCheckActionが存在すれば認証しない(2023-06-06~)
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
120
|
+
let alreadyCheckedAction;
|
|
121
|
+
// search from checkMovieTicketTask(2024-06-26~)
|
|
122
|
+
const placeOrderId = params.purpose.id;
|
|
123
|
+
if (typeof placeOrderId === 'string') {
|
|
124
|
+
if (settings_1.USE_EXPERIMENTAL_FEATURE) {
|
|
125
|
+
const taskIdentifier = (0, taskIdentifier_1.createCheckMovieTicketTaskIdentifier)({
|
|
126
|
+
project: { id: params.screeningEvent.project.id },
|
|
127
|
+
purpose: { id: placeOrderId },
|
|
128
|
+
object: {
|
|
129
|
+
id: params.paymentServiceId,
|
|
130
|
+
movieTicket: {
|
|
131
|
+
identifier: params.movieTicketIdentifier,
|
|
132
|
+
serviceOutput: { reservationFor: { id: params.screeningEvent.id } }
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
const existingCheckMovieTicketTask = yield repos.task.findByIdentifier({
|
|
137
|
+
project: { id: params.screeningEvent.project.id },
|
|
138
|
+
name: factory.taskName.CheckMovieTicket,
|
|
139
|
+
identifier: taskIdentifier
|
|
140
|
+
});
|
|
141
|
+
debug('existingCheckMovieTicketTask:', JSON.stringify(existingCheckMovieTicketTask), 'placeOrderId:', placeOrderId);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
alreadyCheckedAction = (yield repos.action.search(Object.assign({ limit: 1, page: 1, sort: { startDate: factory.sortType.Descending }, typeOf: { $eq: factory.actionType.CheckAction }, actionStatus: { $in: [factory.actionStatusType.CompletedActionStatus] }, object: {
|
|
124
145
|
typeOf: { $eq: factory.service.paymentService.PaymentServiceType.MovieTicket },
|
|
125
146
|
id: { $eq: params.paymentServiceId },
|
|
126
147
|
movieTickets: {
|
|
@@ -129,8 +150,8 @@ function checkByIdentifierIfNotYet(params) {
|
|
|
129
150
|
reservationFor: { id: { $eq: params.screeningEvent.id } } // 指定のイベントにおいて
|
|
130
151
|
}
|
|
131
152
|
}
|
|
132
|
-
}
|
|
133
|
-
|
|
153
|
+
} }, (typeof placeOrderId === 'string') ? { purpose: { id: { $in: [placeOrderId] } } } : undefined), ['_id'], [])).shift();
|
|
154
|
+
debug('alreadyCheckedAction:', JSON.stringify(alreadyCheckedAction), 'placeOrderId:', placeOrderId);
|
|
134
155
|
if (alreadyCheckedAction !== undefined) {
|
|
135
156
|
const recipe = yield repos.action.findRecipeByAction({
|
|
136
157
|
project: { id: params.screeningEvent.project.id },
|
|
@@ -134,14 +134,14 @@ function confirmReserveTransaction(params, options) {
|
|
|
134
134
|
// let updReserveResult: COA.factory.reserve.IUpdReserveResult | undefined;
|
|
135
135
|
let recipe;
|
|
136
136
|
switch (params.object.typeOf) {
|
|
137
|
-
case
|
|
137
|
+
case factory.assetTransactionType.COAReserveTransaction:
|
|
138
138
|
// 最適化されたタスクに対応するため、ここでIObject4COAを注文から生成する(2024-01-24~)
|
|
139
139
|
const order = yield fixOrderAsPurpose({
|
|
140
140
|
project: { id: params.project.id },
|
|
141
141
|
purpose: params.purpose
|
|
142
142
|
})(repos);
|
|
143
143
|
const updReserveArgs = createConfirmObject4COAByOrder({ order, reservationNumber: params.object.transactionNumber });
|
|
144
|
-
const object4coa = Object.assign(Object.assign({}, updReserveArgs), { transactionNumber: params.object.transactionNumber, typeOf:
|
|
144
|
+
const object4coa = Object.assign(Object.assign({}, updReserveArgs), { transactionNumber: params.object.transactionNumber, typeOf: factory.assetTransactionType.COAReserveTransaction });
|
|
145
145
|
confirmActionObject = object4coa;
|
|
146
146
|
recipe = (0, factory_1.processConfirmCOAReserveResult2recipe)({
|
|
147
147
|
processConfirmCOAReserveResult: { updReserveArgs: object4coa },
|
|
@@ -159,7 +159,7 @@ function confirmReserveTransaction(params, options) {
|
|
|
159
159
|
try {
|
|
160
160
|
const object = confirmActionAttributes.object;
|
|
161
161
|
switch (object.typeOf) {
|
|
162
|
-
case
|
|
162
|
+
case factory.assetTransactionType.COAReserveTransaction:
|
|
163
163
|
// COA本予約
|
|
164
164
|
const processConfirmCOAReserveResult = yield COAReserveService.confirm({
|
|
165
165
|
project: { id: confirmActionAttributes.project.id },
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { IOperationExecute } from '../task';
|
|
1
|
+
import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../task';
|
|
2
2
|
import * as factory from '../../factory';
|
|
3
3
|
/**
|
|
4
4
|
* タスク実行関数
|
|
5
5
|
*/
|
|
6
|
-
export declare function call(
|
|
6
|
+
export declare function call(params: Pick<factory.task.ITask<factory.taskName.ReturnPayTransaction>, IExecutableTaskKeys>): IOperationExecute<ICallResult>;
|