@chevre/domain 21.18.0-alpha.15 → 21.18.0-alpha.17
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/lib/chevre/service/assetTransaction/pay/potentialActions.js +3 -3
- package/lib/chevre/service/delivery/factory.d.ts +3 -1
- package/lib/chevre/service/delivery/factory.js +4 -2
- package/lib/chevre/service/delivery.d.ts +1 -2
- package/lib/chevre/service/delivery.js +1 -3
- package/lib/chevre/service/order/createAccountingReportIfNotExist.d.ts +3 -1
- package/lib/chevre/service/order/createAccountingReportIfNotExist.js +4 -1
- package/lib/chevre/service/order/deleteOrder.d.ts +2 -0
- package/lib/chevre/service/order/deleteOrder.js +14 -3
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.js +12 -14
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.d.ts +9 -3
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +14 -26
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +0 -1
- package/lib/chevre/service/order/placeOrder.js +2 -2
- package/lib/chevre/service/order/sendOrder.d.ts +2 -0
- package/lib/chevre/service/order/sendOrder.js +6 -1
- package/lib/chevre/service/reserve/verifyToken4reservation.js +0 -11
- package/lib/chevre/service/task/deleteTransaction.js +2 -0
- package/lib/chevre/service/task/onAuthorizationCreated.js +0 -19
- package/lib/chevre/service/task/sendOrder.js +7 -10
- package/lib/chevre/service/transaction/deleteTransaction.d.ts +2 -0
- package/lib/chevre/service/transaction/returnOrder.js +43 -40
- package/package.json +1 -1
|
@@ -214,12 +214,12 @@ function reservationPriceComponent2invoicePriceComponent(component) {
|
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
216
|
function movieTicket2reservation4invoice(movieTicket, order, paymentMethodType) {
|
|
217
|
-
var _a
|
|
217
|
+
var _a;
|
|
218
218
|
let ticketToken;
|
|
219
219
|
let reservationNumber = '';
|
|
220
220
|
let priceComponents4invoice = [];
|
|
221
221
|
// Orderから対象予約を取得
|
|
222
|
-
const reservationOffer =
|
|
222
|
+
const reservationOffer = order.acceptedOffers.find((o) => {
|
|
223
223
|
var _a, _b, _c, _d;
|
|
224
224
|
let mvtkUnitPriceSpec;
|
|
225
225
|
// MovieTicket適用単価オファーからidentifierを取り出す
|
|
@@ -259,7 +259,7 @@ function movieTicket2reservation4invoice(movieTicket, order, paymentMethodType)
|
|
|
259
259
|
ticketToken = ticketTokenByReservationOffer;
|
|
260
260
|
}
|
|
261
261
|
reservationNumber = reservationOffer.itemOffered.reservationNumber;
|
|
262
|
-
const priceComponent = (
|
|
262
|
+
const priceComponent = (_a = reservationOffer.priceSpecification) === null || _a === void 0 ? void 0 : _a.priceComponent;
|
|
263
263
|
if (Array.isArray(priceComponent)) {
|
|
264
264
|
priceComponents4invoice = priceComponent.map(reservationPriceComponent2invoicePriceComponent);
|
|
265
265
|
}
|
|
@@ -4,5 +4,7 @@ export type IOwnershipInfo = factory.ownershipInfo.IOwnershipInfo<factory.owners
|
|
|
4
4
|
* 注文から所有権を作成する
|
|
5
5
|
*/
|
|
6
6
|
export declare function createOwnershipInfosFromOrder(params: {
|
|
7
|
-
order: Pick<factory.order.IOrder, '
|
|
7
|
+
order: Pick<factory.order.IOrder, 'orderDate' | 'project' | 'customer' | 'orderNumber' | 'seller'> & {
|
|
8
|
+
acceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
|
|
9
|
+
};
|
|
8
10
|
}): IOwnershipInfo[];
|
|
@@ -11,8 +11,10 @@ const factory_2 = require("./reservation/factory");
|
|
|
11
11
|
*/
|
|
12
12
|
function createOwnershipInfosFromOrder(params) {
|
|
13
13
|
const ownershipInfos = [];
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
if (!Array.isArray(params.order.acceptedOffers)) {
|
|
15
|
+
throw new factory.errors.ArgumentNull('order.acceptedOffers');
|
|
16
|
+
}
|
|
17
|
+
params.order.acceptedOffers.forEach((acceptedOffer, offerIndex) => {
|
|
16
18
|
const itemOffered = acceptedOffer.itemOffered;
|
|
17
19
|
let ownershipInfo;
|
|
18
20
|
const ownedFrom = moment(params.order.orderDate)
|
|
@@ -4,7 +4,6 @@ import type { MongoRepository as AssetRepo } from '../repo/assetTransaction';
|
|
|
4
4
|
import type { MongoRepository as ProductRepo } from '../repo/product';
|
|
5
5
|
import type { MongoRepository as ProjectRepo } from '../repo/project';
|
|
6
6
|
import type { RedisRepository as TransactionNumberRepo } from '../repo/transactionNumber';
|
|
7
|
-
import { createOwnershipInfosFromOrder } from './delivery/factory';
|
|
8
7
|
/**
|
|
9
8
|
* 特典付与
|
|
10
9
|
*/
|
|
@@ -25,4 +24,4 @@ declare function returnPointAward(params: factory.task.IData<factory.taskName.Re
|
|
|
25
24
|
project: ProjectRepo;
|
|
26
25
|
transactionNumber: TransactionNumberRepo;
|
|
27
26
|
}) => Promise<void>;
|
|
28
|
-
export {
|
|
27
|
+
export { givePointAward, returnPointAward };
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.returnPointAward = exports.givePointAward =
|
|
12
|
+
exports.returnPointAward = exports.givePointAward = void 0;
|
|
13
13
|
/**
|
|
14
14
|
* 配送サービス
|
|
15
15
|
* ここでいう「配送」とは、「エンドユーザーが獲得した所有権を利用可能な状態にすること」を指します。
|
|
@@ -21,8 +21,6 @@ exports.returnPointAward = exports.givePointAward = exports.createOwnershipInfos
|
|
|
21
21
|
const moment = require("moment");
|
|
22
22
|
const factory = require("../factory");
|
|
23
23
|
const MoneyTransferAssetTransactionService = require("./assetTransaction/moneyTransfer");
|
|
24
|
-
const factory_1 = require("./delivery/factory");
|
|
25
|
-
Object.defineProperty(exports, "createOwnershipInfosFromOrder", { enumerable: true, get: function () { return factory_1.createOwnershipInfosFromOrder; } });
|
|
26
24
|
const accountTransactionIdentifier_1 = require("../factory/accountTransactionIdentifier");
|
|
27
25
|
/**
|
|
28
26
|
* 特典付与
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { MongoRepository as AccountingReportRepo } from '../../repo/accountingReport';
|
|
2
2
|
import * as factory from '../../factory';
|
|
3
|
-
export declare function createAccountingReportIfNotExist(params: factory.order.IOrder
|
|
3
|
+
export declare function createAccountingReportIfNotExist(params: factory.order.IOrder & {
|
|
4
|
+
acceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
|
|
5
|
+
}): (repos: {
|
|
4
6
|
accountingReport: AccountingReportRepo;
|
|
5
7
|
}) => Promise<void>;
|
|
@@ -28,7 +28,10 @@ exports.createAccountingReportIfNotExist = createAccountingReportIfNotExist;
|
|
|
28
28
|
// 最適化(2023-06-30~)
|
|
29
29
|
function createOrder4report(params) {
|
|
30
30
|
var _a;
|
|
31
|
-
|
|
31
|
+
if (!Array.isArray(params.acceptedOffers)) {
|
|
32
|
+
throw new factory.errors.ArgumentNull('order.acceptedOffers');
|
|
33
|
+
}
|
|
34
|
+
const numItems = params.acceptedOffers.length;
|
|
32
35
|
// 必要な属性についてDate型に変換(でないと検索クエリを効率的に使えない)
|
|
33
36
|
const acceptedOffers = (Array.isArray(params.acceptedOffers))
|
|
34
37
|
? params.acceptedOffers.map((o) => {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MongoRepository as AcceptedOfferRepo } from '../../repo/acceptedOffer';
|
|
1
2
|
import type { MongoRepository as AccountingReportRepo } from '../../repo/accountingReport';
|
|
2
3
|
import type { MongoRepository as EventRepo } from '../../repo/event';
|
|
3
4
|
import type { MongoRepository as OrderRepo } from '../../repo/order';
|
|
@@ -11,6 +12,7 @@ import * as factory from '../../factory';
|
|
|
11
12
|
declare function deleteOrder(params: {
|
|
12
13
|
object: Pick<factory.order.IOrder, 'project' | 'typeOf' | 'confirmationNumber' | 'orderDate' | 'orderNumber'>;
|
|
13
14
|
}): (repos: {
|
|
15
|
+
acceptedOffer: AcceptedOfferRepo;
|
|
14
16
|
accountingReport: AccountingReportRepo;
|
|
15
17
|
event: EventRepo;
|
|
16
18
|
order: OrderRepo;
|
|
@@ -50,7 +50,10 @@ function deleteOrder(params) {
|
|
|
50
50
|
exports.deleteOrder = deleteOrder;
|
|
51
51
|
function deleteReservationsByOrder(order) {
|
|
52
52
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
53
|
-
const acceptedOffers =
|
|
53
|
+
const acceptedOffers = yield repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
|
|
54
|
+
orderNumber: { $eq: order.orderNumber },
|
|
55
|
+
project: { id: { $eq: order.project.id } }
|
|
56
|
+
});
|
|
54
57
|
const reservationIds = acceptedOffers.filter((o) => {
|
|
55
58
|
return o.itemOffered.typeOf === factory.reservationType.EventReservation;
|
|
56
59
|
})
|
|
@@ -66,7 +69,12 @@ function deleteOwnershipInfosByOrder(order) {
|
|
|
66
69
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
67
70
|
const now = new Date();
|
|
68
71
|
// 所有権作成
|
|
69
|
-
const ownershipInfos = (0, factory_1.createOwnershipInfosFromOrder)({
|
|
72
|
+
const ownershipInfos = (0, factory_1.createOwnershipInfosFromOrder)({
|
|
73
|
+
order: Object.assign(Object.assign({}, order), { acceptedOffers: yield repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
|
|
74
|
+
orderNumber: { $eq: order.orderNumber },
|
|
75
|
+
project: { id: { $eq: order.project.id } }
|
|
76
|
+
}) })
|
|
77
|
+
});
|
|
70
78
|
const ownershipIdentifiers = ownershipInfos.map((o) => String(o.identifier));
|
|
71
79
|
if (ownershipIdentifiers.length > 0) {
|
|
72
80
|
yield repos.ownershipInfo.deleteExpiredByIdentifiers({
|
|
@@ -81,7 +89,10 @@ function deleteOwnershipInfosByOrder(order) {
|
|
|
81
89
|
function deleteEventsByOrder(order) {
|
|
82
90
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
83
91
|
const now = new Date();
|
|
84
|
-
const acceptedOffers =
|
|
92
|
+
const acceptedOffers = yield repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
|
|
93
|
+
orderNumber: { $eq: order.orderNumber },
|
|
94
|
+
project: { id: { $eq: order.project.id } }
|
|
95
|
+
});
|
|
85
96
|
const reservationForIds = acceptedOffers.filter((o) => {
|
|
86
97
|
return (o.itemOffered.typeOf === factory.reservationType.EventReservation
|
|
87
98
|
|| o.itemOffered.typeOf === factory.reservationType.BusReservation)
|
|
@@ -37,20 +37,18 @@ function onOrderDelivered(params) {
|
|
|
37
37
|
if (typeof (placeOrderTransaction === null || placeOrderTransaction === void 0 ? void 0 : placeOrderTransaction.id) === 'string') {
|
|
38
38
|
// 廃止(2023-12-07~)
|
|
39
39
|
// プロダクト登録プロセスロック解除(orderからproductIdを抽出する)
|
|
40
|
-
//
|
|
41
|
-
//
|
|
42
|
-
//
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
// await
|
|
47
|
-
//
|
|
48
|
-
//
|
|
49
|
-
//
|
|
50
|
-
//
|
|
51
|
-
//
|
|
52
|
-
// }));
|
|
53
|
-
// }
|
|
40
|
+
// const productIds4unlock = params.order.acceptedOffers
|
|
41
|
+
// .filter((o) => o.itemOffered.typeOf === factory.permit.PermitType.Permit
|
|
42
|
+
// && typeof o.itemOffered.issuedThrough?.id === 'string'
|
|
43
|
+
// && o.itemOffered.issuedThrough.id.length > 0)
|
|
44
|
+
// .map((o) => String((<factory.order.IPermit>o.itemOffered).issuedThrough?.id));
|
|
45
|
+
// await Promise.all(productIds4unlock.map(async (productId) => {
|
|
46
|
+
// await processUnlockRegisterMembershipService({
|
|
47
|
+
// agent: { id: String(params.order.customer.id) },
|
|
48
|
+
// product: { id: productId },
|
|
49
|
+
// purpose: { typeOf: placeOrderTransaction.typeOf, id: placeOrderTransaction.id }
|
|
50
|
+
// })(repos);
|
|
51
|
+
// }));
|
|
54
52
|
}
|
|
55
53
|
}
|
|
56
54
|
catch (error) {
|
|
@@ -11,13 +11,19 @@ declare function getOrderWithToken(params: {
|
|
|
11
11
|
}): Promise<IOrderWithToken>;
|
|
12
12
|
declare function createInformTasks(order: IOrderWithToken): factory.task.IAttributes<factory.taskName.TriggerWebhook>[];
|
|
13
13
|
declare function createConfirmReservationActionObject4ChevreByOrder(params: {
|
|
14
|
-
order: factory.order.IOrder
|
|
14
|
+
order: factory.order.IOrder & {
|
|
15
|
+
acceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
|
|
16
|
+
};
|
|
15
17
|
}): factory.action.interact.confirm.reservation.IObject<factory.service.webAPI.Identifier.Chevre>[];
|
|
16
18
|
declare function createConfirmReservationActionObject4COAByOrder(params: {
|
|
17
|
-
order: factory.order.IOrder
|
|
19
|
+
order: factory.order.IOrder & {
|
|
20
|
+
acceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
|
|
21
|
+
};
|
|
18
22
|
}): factory.action.interact.confirm.reservation.IObject<factory.service.webAPI.Identifier.COA>[];
|
|
19
23
|
declare function createConfirmRegisterServiceActionObjectByOrder(params: {
|
|
20
|
-
order: factory.order.IOrder
|
|
24
|
+
order: factory.order.IOrder & {
|
|
25
|
+
acceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
|
|
26
|
+
};
|
|
21
27
|
}): factory.action.interact.confirm.registerService.IObject[];
|
|
22
28
|
type IExternalOrder = Pick<factory.order.IOrder, 'project' | 'typeOf' | 'seller' | 'customer' | 'confirmationNumber' | 'orderNumber' | 'price' | 'priceCurrency' | 'orderDate' | 'name' | 'orderStatus' | 'orderedItem' | 'paymentMethods'>;
|
|
23
29
|
export { IExternalOrder, getOrderWithToken, createInformTasks, createConfirmReservationActionObject4ChevreByOrder, createConfirmReservationActionObject4COAByOrder, createConfirmRegisterServiceActionObjectByOrder };
|
|
@@ -115,17 +115,15 @@ function creteOrder4inform(order) {
|
|
|
115
115
|
}) }, (typeof order.token === 'string') ? { token: order.token } : undefined), (typeof order.id === 'string') ? { id: order.id } : undefined);
|
|
116
116
|
}
|
|
117
117
|
function createConfirmReservationActionObject4ChevreByOrder(params) {
|
|
118
|
-
const chevreReservationNumbers =
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
})
|
|
128
|
-
: [];
|
|
118
|
+
const chevreReservationNumbers = params.order.acceptedOffers.filter((o) => {
|
|
119
|
+
var _a;
|
|
120
|
+
return (o.itemOffered.typeOf === factory.reservationType.EventReservation
|
|
121
|
+
|| o.itemOffered.typeOf === factory.reservationType.BusReservation)
|
|
122
|
+
&& ((_a = o.offeredThrough) === null || _a === void 0 ? void 0 : _a.identifier) === factory.service.webAPI.Identifier.Chevre;
|
|
123
|
+
})
|
|
124
|
+
.map((o) => {
|
|
125
|
+
return o.itemOffered.reservationNumber;
|
|
126
|
+
});
|
|
129
127
|
return [...new Set(chevreReservationNumbers)].map((reservationNumber) => {
|
|
130
128
|
return {
|
|
131
129
|
potentialActions: {
|
|
@@ -145,13 +143,11 @@ function createConfirmReservationActionObject4ChevreByOrder(params) {
|
|
|
145
143
|
exports.createConfirmReservationActionObject4ChevreByOrder = createConfirmReservationActionObject4ChevreByOrder;
|
|
146
144
|
function createConfirmReservationActionObject4COAByOrder(params) {
|
|
147
145
|
// COA予約のみ
|
|
148
|
-
const coaReservationOffers =
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
})
|
|
154
|
-
: [];
|
|
146
|
+
const coaReservationOffers = params.order.acceptedOffers.filter((o) => {
|
|
147
|
+
var _a;
|
|
148
|
+
return o.itemOffered.typeOf === factory.reservationType.EventReservation
|
|
149
|
+
&& ((_a = o.offeredThrough) === null || _a === void 0 ? void 0 : _a.identifier) === factory.service.webAPI.Identifier.COA;
|
|
150
|
+
});
|
|
155
151
|
const coaReservationNumbers = [...new Set(coaReservationOffers
|
|
156
152
|
.map((o) => {
|
|
157
153
|
return o.itemOffered.reservationNumber;
|
|
@@ -220,14 +216,6 @@ exports.createConfirmReservationActionObject4COAByOrder = createConfirmReservati
|
|
|
220
216
|
function createConfirmRegisterServiceActionObjectByOrder(params) {
|
|
221
217
|
// いったん保留
|
|
222
218
|
const chevreTransactionNumbers = [];
|
|
223
|
-
// const chevreReservationNumbers: string[] = (Array.isArray(params.order.acceptedOffers))
|
|
224
|
-
// ? params.order.acceptedOffers.filter((o) => {
|
|
225
|
-
// return o.itemOffered.typeOf === factory.permit.PermitType.Permit;
|
|
226
|
-
// })
|
|
227
|
-
// .map((o) => {
|
|
228
|
-
// return (<factory.order.IPermit>o.itemOffered).identifier;
|
|
229
|
-
// })
|
|
230
|
-
// : [];
|
|
231
219
|
return [...new Set(chevreTransactionNumbers)].map((transactionNumber) => {
|
|
232
220
|
return {
|
|
233
221
|
endDate: params.order.orderDate,
|
|
@@ -75,7 +75,6 @@ function createReturnReserveTransactionTasks(order, simpleOrder) {
|
|
|
75
75
|
name: order.seller.name
|
|
76
76
|
};
|
|
77
77
|
// 注文アイテムから返却アクションを作成する
|
|
78
|
-
// const acceptedOffers = (Array.isArray(order.acceptedOffers)) ? order.acceptedOffers : [];
|
|
79
78
|
for (const reservationNumber of order.reservationNumbers) {
|
|
80
79
|
// const reservation = acceptedOffer.itemOffered;
|
|
81
80
|
// 予約番号ごとに返却アクションを作成する
|
|
@@ -162,8 +162,8 @@ function placeOrderWithoutTransaction(params) {
|
|
|
162
162
|
throw error;
|
|
163
163
|
}
|
|
164
164
|
yield repos.action.complete({ typeOf: orderActionAttributes.typeOf, id: action.id, result: {} });
|
|
165
|
-
//
|
|
166
|
-
|
|
165
|
+
// 経理レポートを保管は外部注文の場合保留(2023-12-08~)
|
|
166
|
+
// await createAccountingReportIfNotExist(order)({ accountingReport: repos.accountingReport });
|
|
167
167
|
});
|
|
168
168
|
}
|
|
169
169
|
exports.placeOrderWithoutTransaction = placeOrderWithoutTransaction;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MongoRepository as AcceptedOfferRepo } from '../../repo/acceptedOffer';
|
|
1
2
|
import type { MongoRepository as ActionRepo } from '../../repo/action';
|
|
2
3
|
import type { MongoRepository as OrderRepo } from '../../repo/order';
|
|
3
4
|
import type { MongoRepository as OwnershipInfoRepo } from '../../repo/ownershipInfo';
|
|
@@ -5,6 +6,7 @@ import type { MongoRepository as TaskRepo } from '../../repo/task';
|
|
|
5
6
|
import type { MongoRepository as TransactionRepo } from '../../repo/transaction';
|
|
6
7
|
import * as factory from '../../factory';
|
|
7
8
|
type ISendOperation<T> = (repos: {
|
|
9
|
+
acceptedOffer: AcceptedOfferRepo;
|
|
8
10
|
action: ActionRepo;
|
|
9
11
|
order: OrderRepo;
|
|
10
12
|
ownershipInfo: OwnershipInfoRepo;
|
|
@@ -76,7 +76,12 @@ function sendOrder(params) {
|
|
|
76
76
|
let ownershipInfos;
|
|
77
77
|
try {
|
|
78
78
|
// 所有権作成
|
|
79
|
-
ownershipInfos = (0, factory_1.createOwnershipInfosFromOrder)({
|
|
79
|
+
ownershipInfos = (0, factory_1.createOwnershipInfosFromOrder)({
|
|
80
|
+
order: Object.assign(Object.assign({}, order), { acceptedOffers: yield repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
|
|
81
|
+
orderNumber: { $eq: order.orderNumber },
|
|
82
|
+
project: { id: { $eq: order.project.id } }
|
|
83
|
+
}) })
|
|
84
|
+
});
|
|
80
85
|
ownershipInfos = yield Promise.all(ownershipInfos.map((ownershipInfo) => __awaiter(this, void 0, void 0, function* () {
|
|
81
86
|
return repos.ownershipInfo.createIfNotExistByIdentifier(ownershipInfo);
|
|
82
87
|
})));
|
|
@@ -38,17 +38,6 @@ function verifyToken4reservation(params) {
|
|
|
38
38
|
default:
|
|
39
39
|
throw new factory.errors.Argument('token', `invalid orderStatus '${order.orderStatus}'`);
|
|
40
40
|
}
|
|
41
|
-
// const acceptedOffers = (Array.isArray(order.acceptedOffers)) ? order.acceptedOffers : [];
|
|
42
|
-
// const reservationExistsInOrder = acceptedOffers.some((offer) => {
|
|
43
|
-
// return (
|
|
44
|
-
// offer.itemOffered.typeOf === factory.reservationType.EventReservation
|
|
45
|
-
// || offer.itemOffered.typeOf === factory.reservationType.BusReservation
|
|
46
|
-
// )
|
|
47
|
-
// && offer.itemOffered.id === params.reservationId;
|
|
48
|
-
// });
|
|
49
|
-
// if (!reservationExistsInOrder) {
|
|
50
|
-
// throw new factory.errors.NotFound('AcceptedOffer');
|
|
51
|
-
// }
|
|
52
41
|
break;
|
|
53
42
|
default:
|
|
54
43
|
throw new factory.errors.NotImplemented(`Payload type ${payload.typeOf} not implemented`);
|
|
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.call = void 0;
|
|
13
|
+
const acceptedOffer_1 = require("../../repo/acceptedOffer");
|
|
13
14
|
const accountingReport_1 = require("../../repo/accountingReport");
|
|
14
15
|
const action_1 = require("../../repo/action");
|
|
15
16
|
const assetTransaction_1 = require("../../repo/assetTransaction");
|
|
@@ -26,6 +27,7 @@ const TransactionService = require("../transaction");
|
|
|
26
27
|
function call(data) {
|
|
27
28
|
return (settings) => __awaiter(this, void 0, void 0, function* () {
|
|
28
29
|
yield TransactionService.deleteTransaction(data)({
|
|
30
|
+
acceptedOffer: new acceptedOffer_1.MongoRepository(settings.connection),
|
|
29
31
|
accountingReport: new accountingReport_1.MongoRepository(settings.connection),
|
|
30
32
|
action: new action_1.MongoRepository(settings.connection),
|
|
31
33
|
assetTransaction: new assetTransaction_1.MongoRepository(settings.connection),
|
|
@@ -64,25 +64,6 @@ function onAuthorizationCreated(params) {
|
|
|
64
64
|
reservationForIds = yield repos.acceptedOffer.distinctValues({
|
|
65
65
|
orderNumber: { $in: [orderNumber] }
|
|
66
66
|
}, 'acceptedOffers.itemOffered.reservationFor.id');
|
|
67
|
-
// const order: Pick<factory.order.IOrder, 'acceptedOffers'> = await repos.order.findByOrderNumber(
|
|
68
|
-
// {
|
|
69
|
-
// orderNumber,
|
|
70
|
-
// project: { id: params.project.id },
|
|
71
|
-
// inclusion: ['acceptedOffers'],
|
|
72
|
-
// exclusion: []
|
|
73
|
-
// }
|
|
74
|
-
// );
|
|
75
|
-
// const acceptedOffers = (Array.isArray(order.acceptedOffers)) ? order.acceptedOffers : [];
|
|
76
|
-
// reservationNumbers = acceptedOffers
|
|
77
|
-
// .filter((o) => o.itemOffered.typeOf === factory.reservationType.EventReservation
|
|
78
|
-
// || o.itemOffered.typeOf === factory.reservationType.BusReservation)
|
|
79
|
-
// .map((o) => (<factory.order.IReservation>o.itemOffered).reservationNumber);
|
|
80
|
-
// reservationNumbers = [...new Set(reservationNumbers)];
|
|
81
|
-
// reservationForIds = acceptedOffers
|
|
82
|
-
// .filter((o) => o.itemOffered.typeOf === factory.reservationType.EventReservation
|
|
83
|
-
// || o.itemOffered.typeOf === factory.reservationType.BusReservation)
|
|
84
|
-
// .map((o) => String((<factory.order.IReservation>o.itemOffered).reservationFor.id));
|
|
85
|
-
// reservationForIds = [...new Set(reservationForIds)];
|
|
86
67
|
}
|
|
87
68
|
break;
|
|
88
69
|
case 'OwnershipInfo':
|
|
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.call = void 0;
|
|
13
|
+
const acceptedOffer_1 = require("../../repo/acceptedOffer");
|
|
13
14
|
const action_1 = require("../../repo/action");
|
|
14
15
|
const order_1 = require("../../repo/order");
|
|
15
16
|
const ownershipInfo_1 = require("../../repo/ownershipInfo");
|
|
@@ -24,17 +25,13 @@ function call(data) {
|
|
|
24
25
|
// if (settings.redisClient === undefined) {
|
|
25
26
|
// throw new factory.errors.Argument('settings', 'redisClient required');
|
|
26
27
|
// }
|
|
27
|
-
const actionRepo = new action_1.MongoRepository(settings.connection);
|
|
28
|
-
const orderRepo = new order_1.MongoRepository(settings.connection);
|
|
29
|
-
const ownershipInfoRepo = new ownershipInfo_1.MongoRepository(settings.connection);
|
|
30
|
-
const taskRepo = new task_1.MongoRepository(settings.connection);
|
|
31
|
-
const transactionRepo = new transaction_1.MongoRepository(settings.connection);
|
|
32
28
|
yield OrderService.sendOrder(Object.assign(Object.assign({}, data), { useOnOrderStatusChanged: true }))({
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
acceptedOffer: new acceptedOffer_1.MongoRepository(settings.connection),
|
|
30
|
+
action: new action_1.MongoRepository(settings.connection),
|
|
31
|
+
order: new order_1.MongoRepository(settings.connection),
|
|
32
|
+
ownershipInfo: new ownershipInfo_1.MongoRepository(settings.connection),
|
|
33
|
+
task: new task_1.MongoRepository(settings.connection),
|
|
34
|
+
transaction: new transaction_1.MongoRepository(settings.connection)
|
|
38
35
|
});
|
|
39
36
|
});
|
|
40
37
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as factory from '../../factory';
|
|
2
|
+
import type { MongoRepository as AcceptedOfferRepo } from '../../repo/acceptedOffer';
|
|
2
3
|
import type { MongoRepository as AccountingReportRepo } from '../../repo/accountingReport';
|
|
3
4
|
import type { MongoRepository as ActionRepo } from '../../repo/action';
|
|
4
5
|
import type { MongoRepository as AssetTransactionRepo } from '../../repo/assetTransaction';
|
|
@@ -13,6 +14,7 @@ import type { MongoRepository as TransactionRepo } from '../../repo/transaction'
|
|
|
13
14
|
* 冪等性を確保すること
|
|
14
15
|
*/
|
|
15
16
|
export declare function deleteTransaction(params: factory.task.IData<factory.taskName.DeleteTransaction>): (repos: {
|
|
17
|
+
acceptedOffer: AcceptedOfferRepo;
|
|
16
18
|
accountingReport: AccountingReportRepo;
|
|
17
19
|
action: ActionRepo;
|
|
18
20
|
assetTransaction: AssetTransactionRepo;
|
|
@@ -198,8 +198,12 @@ function fixOrders(params) {
|
|
|
198
198
|
const eventIds = yield repos.acceptedOffer.distinctValues({
|
|
199
199
|
orderNumber: { $in: [params.object.order[0].orderNumber] }
|
|
200
200
|
}, 'acceptedOffers.itemOffered.reservationFor.id');
|
|
201
|
-
const acceptedOffers =
|
|
202
|
-
|
|
201
|
+
// const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumbers({
|
|
202
|
+
// orderNumber: { $in: [params.object.order[0].orderNumber] }
|
|
203
|
+
// });
|
|
204
|
+
const acceptedOffers = yield repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
|
|
205
|
+
orderNumber: { $eq: params.object.order[0].orderNumber },
|
|
206
|
+
project: { id: { $eq: params.project.id } }
|
|
203
207
|
});
|
|
204
208
|
return { acceptedOffers, eventIds, offerIds, orders };
|
|
205
209
|
});
|
|
@@ -291,42 +295,40 @@ function createOrder4returnPolicy(params) {
|
|
|
291
295
|
orderDate: params.order.orderDate,
|
|
292
296
|
orderNumber: params.order.orderNumber,
|
|
293
297
|
price: params.order.price,
|
|
294
|
-
acceptedOffers:
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
// superEvent: reservation.reservationFor.superEvent
|
|
308
|
-
},
|
|
309
|
-
reservedTicket: {
|
|
310
|
-
ticketedSeat: reservation.reservedTicket.ticketedSeat
|
|
311
|
-
}
|
|
298
|
+
acceptedOffers: params.order.acceptedOffers.map((o) => {
|
|
299
|
+
var _a;
|
|
300
|
+
if (o.itemOffered.typeOf === factory.reservationType.EventReservation) {
|
|
301
|
+
const reservation = o.itemOffered;
|
|
302
|
+
const priceComponent = (_a = o.priceSpecification) === null || _a === void 0 ? void 0 : _a.priceComponent;
|
|
303
|
+
return {
|
|
304
|
+
itemOffered: {
|
|
305
|
+
additionalProperty: reservation.additionalProperty,
|
|
306
|
+
reservationFor: {
|
|
307
|
+
doorTime: reservation.reservationFor.doorTime,
|
|
308
|
+
endDate: reservation.reservationFor.endDate,
|
|
309
|
+
startDate: reservation.reservationFor.startDate
|
|
310
|
+
// superEvent: reservation.reservationFor.superEvent
|
|
312
311
|
},
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
? priceComponent.map((component) => {
|
|
316
|
-
const { accounting, name, priceCurrency, valueAddedTaxIncluded } = component, postingComponent = __rest(component, ["accounting", "name", "priceCurrency", "valueAddedTaxIncluded"]);
|
|
317
|
-
return postingComponent;
|
|
318
|
-
})
|
|
319
|
-
: []
|
|
312
|
+
reservedTicket: {
|
|
313
|
+
ticketedSeat: reservation.reservedTicket.ticketedSeat
|
|
320
314
|
}
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
315
|
+
},
|
|
316
|
+
priceSpecification: {
|
|
317
|
+
priceComponent: (Array.isArray(priceComponent))
|
|
318
|
+
? priceComponent.map((component) => {
|
|
319
|
+
const { accounting, name, priceCurrency, valueAddedTaxIncluded } = component, postingComponent = __rest(component, ["accounting", "name", "priceCurrency", "valueAddedTaxIncluded"]);
|
|
320
|
+
return postingComponent;
|
|
321
|
+
})
|
|
322
|
+
: []
|
|
323
|
+
}
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
return {
|
|
328
|
+
priceSpecification: o.priceSpecification
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
})
|
|
330
332
|
};
|
|
331
333
|
}
|
|
332
334
|
const TIMEOUT = 5000;
|
|
@@ -401,7 +403,7 @@ function findApplicableReturnPolicy(params) {
|
|
|
401
403
|
if (typeof returnPolicySameAsByPoject === 'string' && returnPolicySameAsByPoject.length > 0) {
|
|
402
404
|
const returnPolicyByProject = yield getReturnPolicyByProject({
|
|
403
405
|
sameAs: returnPolicySameAsByPoject,
|
|
404
|
-
order: params.orders[0]
|
|
406
|
+
order: Object.assign(Object.assign({}, params.orders[0]), { acceptedOffers: params.acceptedOffers })
|
|
405
407
|
});
|
|
406
408
|
applicalbleReturnPolicies.push(returnPolicyByProject);
|
|
407
409
|
}
|
|
@@ -613,6 +615,7 @@ function validateOffersReturnPolicy(params) {
|
|
|
613
615
|
// 決済カード取消ポリシーを確定(2023-05-23~)
|
|
614
616
|
const returnFeesMovieTicket = [];
|
|
615
617
|
params.acceptedOffers.forEach((acceptedOffer) => {
|
|
618
|
+
var _a, _b;
|
|
616
619
|
const unitPriceOffer = params.offers.find((offer) => offer.id === acceptedOffer.id);
|
|
617
620
|
if (unitPriceOffer === undefined) {
|
|
618
621
|
throw new factory.errors.NotFound(`UnitPriceOffer ${acceptedOffer.id}`);
|
|
@@ -625,11 +628,11 @@ function validateOffersReturnPolicy(params) {
|
|
|
625
628
|
if (policyByOffer === undefined) {
|
|
626
629
|
throw new factory.errors.NotFound(`MerchantReturnPolicy acceptedOffer:${acceptedOffer.id}`);
|
|
627
630
|
}
|
|
628
|
-
const movieTicketTypeChargeSpecExists = acceptedOffer.priceSpecification.priceComponent.some((component) => {
|
|
631
|
+
const movieTicketTypeChargeSpecExists = (_a = acceptedOffer.priceSpecification) === null || _a === void 0 ? void 0 : _a.priceComponent.some((component) => {
|
|
629
632
|
return component.typeOf === factory.priceSpecificationType.MovieTicketTypeChargeSpecification;
|
|
630
633
|
});
|
|
631
|
-
if (movieTicketTypeChargeSpecExists) {
|
|
632
|
-
acceptedOffer.priceSpecification.priceComponent.forEach((component) => {
|
|
634
|
+
if (movieTicketTypeChargeSpecExists === true) {
|
|
635
|
+
(_b = acceptedOffer.priceSpecification) === null || _b === void 0 ? void 0 : _b.priceComponent.forEach((component) => {
|
|
633
636
|
if (component.typeOf === factory.priceSpecificationType.UnitPriceSpecification) {
|
|
634
637
|
if (Array.isArray(component.appliesToMovieTicket)) {
|
|
635
638
|
component.appliesToMovieTicket.forEach((appliesToMovieTicket) => {
|
package/package.json
CHANGED