@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.
@@ -214,12 +214,12 @@ function reservationPriceComponent2invoicePriceComponent(component) {
214
214
  }
215
215
  }
216
216
  function movieTicket2reservation4invoice(movieTicket, order, paymentMethodType) {
217
- var _a, _b;
217
+ var _a;
218
218
  let ticketToken;
219
219
  let reservationNumber = '';
220
220
  let priceComponents4invoice = [];
221
221
  // Orderから対象予約を取得
222
- const reservationOffer = (_a = order.acceptedOffers) === null || _a === void 0 ? void 0 : _a.find((o) => {
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 = (_b = reservationOffer.priceSpecification) === null || _b === void 0 ? void 0 : _b.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, 'acceptedOffers' | 'orderDate' | 'project' | 'customer' | 'orderNumber' | 'seller'>;
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
- const acceptedOffers = (Array.isArray(params.order.acceptedOffers)) ? params.order.acceptedOffers : [];
15
- acceptedOffers.forEach((acceptedOffer, offerIndex) => {
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 { createOwnershipInfosFromOrder, givePointAward, returnPointAward };
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 = exports.createOwnershipInfosFromOrder = void 0;
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): (repos: {
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
- const numItems = (Array.isArray(params.acceptedOffers)) ? params.acceptedOffers.length : 0;
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 = (Array.isArray(order.acceptedOffers)) ? order.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)({ order });
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 = (Array.isArray(order.acceptedOffers)) ? order.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
- // if (Array.isArray(params.order.acceptedOffers)) {
41
- // const productIds4unlock = params.order.acceptedOffers
42
- // .filter((o) => o.itemOffered.typeOf === factory.permit.PermitType.Permit
43
- // && typeof o.itemOffered.issuedThrough?.id === 'string'
44
- // && o.itemOffered.issuedThrough.id.length > 0)
45
- // .map((o) => String((<factory.order.IPermit>o.itemOffered).issuedThrough?.id));
46
- // await Promise.all(productIds4unlock.map(async (productId) => {
47
- // await processUnlockRegisterMembershipService({
48
- // agent: { id: String(params.order.customer.id) },
49
- // product: { id: productId },
50
- // purpose: { typeOf: placeOrderTransaction.typeOf, id: placeOrderTransaction.id }
51
- // })(repos);
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 = (Array.isArray(params.order.acceptedOffers))
119
- ? params.order.acceptedOffers.filter((o) => {
120
- var _a;
121
- return (o.itemOffered.typeOf === factory.reservationType.EventReservation
122
- || o.itemOffered.typeOf === factory.reservationType.BusReservation)
123
- && ((_a = o.offeredThrough) === null || _a === void 0 ? void 0 : _a.identifier) === factory.service.webAPI.Identifier.Chevre;
124
- })
125
- .map((o) => {
126
- return o.itemOffered.reservationNumber;
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 = (Array.isArray(params.order.acceptedOffers))
149
- ? params.order.acceptedOffers.filter((o) => {
150
- var _a;
151
- return o.itemOffered.typeOf === factory.reservationType.EventReservation
152
- && ((_a = o.offeredThrough) === null || _a === void 0 ? void 0 : _a.identifier) === factory.service.webAPI.Identifier.COA;
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
- yield (0, createAccountingReportIfNotExist_1.createAccountingReportIfNotExist)(order)({ accountingReport: repos.accountingReport });
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)({ order });
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
- action: actionRepo,
34
- order: orderRepo,
35
- ownershipInfo: ownershipInfoRepo,
36
- task: taskRepo,
37
- transaction: transactionRepo
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 = yield repos.acceptedOffer.searchAcceptedOffersByOrderNumbers({
202
- orderNumber: { $in: [params.object.order[0].orderNumber] }
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: (Array.isArray(params.order.acceptedOffers))
295
- ? params.order.acceptedOffers.map((o) => {
296
- var _a;
297
- if (o.itemOffered.typeOf === factory.reservationType.EventReservation) {
298
- const reservation = o.itemOffered;
299
- const priceComponent = (_a = o.priceSpecification) === null || _a === void 0 ? void 0 : _a.priceComponent;
300
- return {
301
- itemOffered: {
302
- additionalProperty: reservation.additionalProperty,
303
- reservationFor: {
304
- doorTime: reservation.reservationFor.doorTime,
305
- endDate: reservation.reservationFor.endDate,
306
- startDate: reservation.reservationFor.startDate
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
- priceSpecification: {
314
- priceComponent: (Array.isArray(priceComponent))
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
- else {
324
- return {
325
- priceSpecification: o.priceSpecification
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] // 同時返品可能な注文数をは1
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
@@ -115,5 +115,5 @@
115
115
  "postversion": "git push origin --tags",
116
116
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
117
117
  },
118
- "version": "21.18.0-alpha.15"
118
+ "version": "21.18.0-alpha.17"
119
119
  }