@chevre/domain 25.0.0-alpha.2 → 25.0.0-alpha.20

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.
Files changed (94) hide show
  1. package/lib/chevre/emailMessageBuilder.d.ts +10 -4
  2. package/lib/chevre/emailMessageBuilder.js +48 -73
  3. package/lib/chevre/repo/acceptedOffer.d.ts +1 -5
  4. package/lib/chevre/repo/acceptedOffer.js +5 -5
  5. package/lib/chevre/repo/acceptedOfferInReserve.d.ts +1 -5
  6. package/lib/chevre/repo/acceptedOfferInReserve.js +4 -4
  7. package/lib/chevre/repo/emailMessage.d.ts +18 -9
  8. package/lib/chevre/repo/emailMessage.js +26 -36
  9. package/lib/chevre/repo/factory/acceptedOffer/reserveTransaction2itemOffered.d.ts +1 -3
  10. package/lib/chevre/repo/factory/acceptedOffer/reserveTransaction2itemOffered.js +2 -3
  11. package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +9 -1
  12. package/lib/chevre/repo/mongoose/schemas/emailMessages.js +5 -20
  13. package/lib/chevre/repo/mongoose/schemas/order.d.ts +4 -0
  14. package/lib/chevre/repo/mongoose/schemas/order.js +11 -110
  15. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +0 -6
  16. package/lib/chevre/repo/order.d.ts +9 -6
  17. package/lib/chevre/repo/order.js +45 -26
  18. package/lib/chevre/repo/orderInTransaction.d.ts +50 -32
  19. package/lib/chevre/repo/orderInTransaction.js +109 -73
  20. package/lib/chevre/repo/orderNumber.d.ts +4 -0
  21. package/lib/chevre/repo/orderNumber.js +32 -60
  22. package/lib/chevre/repo/passport.d.ts +5 -2
  23. package/lib/chevre/repo/transaction/placeOrder.js +12 -10
  24. package/lib/chevre/repo/transaction.d.ts +6 -2
  25. package/lib/chevre/repo/transaction.js +6 -2
  26. package/lib/chevre/service/assetTransaction/reserve/start.d.ts +0 -2
  27. package/lib/chevre/service/offer/any.d.ts +3 -8
  28. package/lib/chevre/service/offer/any.js +7 -6
  29. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.d.ts +0 -2
  30. package/lib/chevre/service/offer/event/authorize.d.ts +0 -4
  31. package/lib/chevre/service/offer/event/authorize.js +5 -6
  32. package/lib/chevre/service/offer/event/voidTransaction.js +29 -17
  33. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +16 -12
  34. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.d.ts +0 -6
  35. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +10 -12
  36. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.d.ts +1 -1
  37. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +7 -7
  38. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +21 -17
  39. package/lib/chevre/service/order/deleteOrder.js +1 -1
  40. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.d.ts +4 -1
  41. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +1 -26
  42. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +3 -2
  43. package/lib/chevre/service/order/placeOrder/factory.d.ts +1 -1
  44. package/lib/chevre/service/order/placeOrder/factory.js +10 -8
  45. package/lib/chevre/service/order/placeOrder/voidAcceptedOfferIfNecessary.d.ts +1 -3
  46. package/lib/chevre/service/order/placeOrder/voidAcceptedOfferIfNecessary.js +3 -15
  47. package/lib/chevre/service/order/placeOrder.js +6 -6
  48. package/lib/chevre/service/order.d.ts +1 -2
  49. package/lib/chevre/service/order.js +1 -5
  50. package/lib/chevre/service/payment/any/authorize/fixOrderAsNeeded.d.ts +2 -4
  51. package/lib/chevre/service/payment/any/authorize/fixOrderAsNeeded.js +4 -6
  52. package/lib/chevre/service/payment/any/authorize.d.ts +2 -0
  53. package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +0 -4
  54. package/lib/chevre/service/payment/any/publishPaymentUrl.js +5 -8
  55. package/lib/chevre/service/reserve/findByCode.js +1 -1
  56. package/lib/chevre/service/reserve/searchByOrder.js +1 -1
  57. package/lib/chevre/service/task/acceptCOAOffer.js +8 -10
  58. package/lib/chevre/service/task/authorizePayment.js +2 -6
  59. package/lib/chevre/service/task/confirmReserveTransaction.js +1 -1
  60. package/lib/chevre/service/task/payment/payByTask.js +1 -1
  61. package/lib/chevre/service/task/publishPaymentUrl.js +6 -9
  62. package/lib/chevre/service/transaction/placeOrder/confirm/factory/result.d.ts +7 -2
  63. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.d.ts +3 -3
  64. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.js +8 -23
  65. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.d.ts +3 -3
  66. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.js +1 -6
  67. package/lib/chevre/service/transaction/placeOrder/confirm.d.ts +2 -7
  68. package/lib/chevre/service/transaction/placeOrder/confirm.js +38 -35
  69. package/lib/chevre/service/transaction/placeOrder/issueOrderNumberIfNotExist.d.ts +2 -0
  70. package/lib/chevre/service/transaction/placeOrder/issueOrderNumberIfNotExist.js +1 -0
  71. package/lib/chevre/service/transaction/placeOrder/start/factory.d.ts +19 -4
  72. package/lib/chevre/service/transaction/placeOrder/start/factory.js +23 -12
  73. package/lib/chevre/service/transaction/placeOrder/start.d.ts +7 -4
  74. package/lib/chevre/service/transaction/placeOrder/start.js +23 -2
  75. package/lib/chevre/service/transaction/placeOrder/updateAgent.d.ts +0 -4
  76. package/lib/chevre/service/transaction/placeOrder/updateAgent.js +20 -22
  77. package/lib/chevre/service/transaction/placeOrder.d.ts +1 -2
  78. package/lib/chevre/service/transaction/placeOrder.js +1 -3
  79. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +2 -37
  80. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.d.ts +2 -2
  81. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +3 -18
  82. package/lib/chevre/service/transaction/returnOrder/potentialActions.d.ts +0 -1
  83. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +0 -4
  84. package/lib/chevre/service/transaction/returnOrder/preStart.js +1 -1
  85. package/lib/chevre/service/transaction/returnOrder.d.ts +0 -2
  86. package/lib/chevre/service/transaction/returnOrder.js +13 -12
  87. package/lib/chevre/service/validation/validateOrder.js +1 -1
  88. package/lib/chevre/service.d.ts +0 -2
  89. package/lib/chevre/service.js +0 -2
  90. package/package.json +2 -2
  91. package/lib/chevre/factory/order.d.ts +0 -2
  92. package/lib/chevre/factory/order.js +0 -5
  93. package/lib/chevre/service/order/placeOrderWithoutTransaction.d.ts +0 -22
  94. package/lib/chevre/service/order/placeOrderWithoutTransaction.js +0 -51
@@ -13,12 +13,10 @@ import type { OfferRepo } from '../../../repo/offer/unitPriceInCatalog';
13
13
  import type { OfferCatalogRepo } from '../../../repo/offerCatalog';
14
14
  import type { OfferCatalogItemRepo } from '../../../repo/offerCatalogItem';
15
15
  import type { OrderInTransactionRepo } from '../../../repo/orderInTransaction';
16
- import type { OrderNumberRepo } from '../../../repo/orderNumber';
17
16
  import type { PaymentServiceRepo } from '../../../repo/paymentService';
18
17
  import type { SeatRepo } from '../../../repo/place/seat';
19
18
  import type { PriceSpecificationRepo } from '../../../repo/priceSpecification';
20
19
  import type { ProductRepo } from '../../../repo/product';
21
- import type { ProjectRepo } from '../../../repo/project';
22
20
  import type { OfferRateLimitRepo } from '../../../repo/rateLimit/offer';
23
21
  import type { SettingRepo } from '../../../repo/setting';
24
22
  import type { StockHolderRepo } from '../../../repo/stockHolder';
@@ -43,11 +41,9 @@ interface IAuthorizeRepos {
43
41
  offerCatalogItem: OfferCatalogItemRepo;
44
42
  offerRateLimit: OfferRateLimitRepo;
45
43
  orderInTransaction: OrderInTransactionRepo;
46
- orderNumber: OrderNumberRepo;
47
44
  paymentService: PaymentServiceRepo;
48
45
  priceSpecification: PriceSpecificationRepo;
49
46
  product: ProductRepo;
50
- project: ProjectRepo;
51
47
  seat: SeatRepo;
52
48
  setting: SettingRepo;
53
49
  task: TaskRepo;
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.authorize = authorize;
4
4
  const factory_1 = require("../../../factory");
5
- const issueOrderNumberIfNotExist_1 = require("../../transaction/placeOrder/issueOrderNumberIfNotExist");
6
5
  const any_1 = require("../any");
7
6
  const defaultOffer_1 = require("./authorize/defaultOffer");
8
7
  const factory_2 = require("./authorize/factory");
@@ -25,11 +24,11 @@ function authorize(params, options) {
25
24
  })(repos);
26
25
  let acceptedOffers4result;
27
26
  const now = new Date();
28
- const orderNumber = await (0, issueOrderNumberIfNotExist_1.issueOrderNumberIfNotExist)({
27
+ // 注文ドキュメントを参照(2026-06-24~)
28
+ const orderNumber = await repos.orderInTransaction.findOrderNumberByIdentifier({
29
+ identifier: transaction.id,
29
30
  project: { id: params.project.id },
30
- id: transaction.id,
31
- object: { orderDate: now }
32
- })(repos);
31
+ }, { onlyPlaceOrder: true });
33
32
  // まず取引番号発行
34
33
  const { transactionNumber } = await repos.transactionNumber.publishByTimestamp({ startDate: now });
35
34
  const actionAttributes = (0, factory_2.createAuthorizeSeatReservationActionAttributes)({
@@ -64,8 +63,8 @@ function authorize(params, options) {
64
63
  };
65
64
  });
66
65
  await (0, any_1.acceptOffer)({
67
- orderNumber,
68
66
  project: transaction.project,
67
+ placeOrderId: transaction.id,
69
68
  acceptedOffers: minimizedAcceptedOffers
70
69
  })(repos);
71
70
  }
@@ -48,23 +48,35 @@ function voidTransaction(params) {
48
48
  default:
49
49
  // no op
50
50
  }
51
- // add orderInTransaction(2024-01-15~)
52
- // USE_CREATE_ORDER_ON_OFFER_ACCEPTEDの場合、orderNumber発行済のはず
53
- const orderNumberByTransaction = transaction.object.orderNumber;
54
- if (typeof orderNumberByTransaction === 'string') {
55
- switch (transaction.status) {
56
- case factory_1.factory.transactionStatusType.Confirmed:
57
- // 確定取引の場合、不要なオファーのみ除外
58
- await (0, any_1.voidAcceptedOffer)({
59
- // authorizeActions,
60
- authorizeActionsWithInstrument: authorizeActions,
61
- orderNumber: orderNumberByTransaction
62
- })(repos);
63
- break;
64
- default:
65
- // orderInTransaction自体を削除
66
- await repos.orderInTransaction.deleteByOrderNumber({ orderNumber: orderNumberByTransaction });
67
- }
51
+ // // add orderInTransaction(2024-01-15~)
52
+ // // USE_CREATE_ORDER_ON_OFFER_ACCEPTEDの場合、orderNumber発行済のはず
53
+ // const orderNumberByTransaction = transaction.object.orderNumber;
54
+ // if (typeof orderNumberByTransaction === 'string') {
55
+ // switch (transaction.status) {
56
+ // case factory.transactionStatusType.Confirmed:
57
+ // // 確定取引の場合、不要なオファーのみ除外
58
+ // await voidAcceptedOffer({
59
+ // // authorizeActions,
60
+ // authorizeActionsWithInstrument: authorizeActions,
61
+ // orderNumber: orderNumberByTransaction
62
+ // })(repos);
63
+ // break;
64
+ // default:
65
+ // // orderInTransaction自体を削除
66
+ // await repos.orderInTransaction.deleteByOrderNumber({ orderNumber: orderNumberByTransaction });
67
+ // }
68
+ // }
69
+ switch (transaction.status) {
70
+ case factory_1.factory.transactionStatusType.Confirmed:
71
+ // 確定取引の場合、不要なオファーのみ除外
72
+ await (0, any_1.voidAcceptedOffer)({
73
+ authorizeActionsWithInstrument: authorizeActions,
74
+ placeOrderId: params.purpose.id
75
+ })(repos);
76
+ break;
77
+ default:
78
+ // orderInTransaction自体を削除
79
+ await repos.orderInTransaction.deleteByIdentifier({ identifier: params.purpose.id });
68
80
  }
69
81
  await Promise.all(authorizeActions.map(async (action) => {
70
82
  await repos.authorizeOfferAction.cancelWithVoid({ typeOf: action.typeOf, id: action.id, cancelAction });
@@ -26,7 +26,7 @@ function voidTransactionByActionId(params) {
26
26
  // if (transaction.agent.id !== params.agent.id) {
27
27
  // throw new factory.errors.Forbidden('Transaction not yours');
28
28
  // }
29
- const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: params.purpose.id });
29
+ // const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: params.purpose.id });
30
30
  const action = await repos.authorizeOfferAction.findById({ typeOf: factory_1.factory.actionType.AuthorizeAction, id: params.id });
31
31
  if (action.purpose.typeOf !== transaction.typeOf || action.purpose.id !== transaction.id) {
32
32
  throw new factory_1.factory.errors.Argument('Transaction', 'Action not found in the transaction');
@@ -34,17 +34,21 @@ function voidTransactionByActionId(params) {
34
34
  // MongoDBでcompleteステータスであるにも関わらず、Chevreでは削除されている、というのが最悪の状況
35
35
  // それだけは回避するためにMongoDBを先に変更
36
36
  await repos.authorizeOfferAction.cancelWithVoid({ typeOf: factory_1.factory.actionType.AuthorizeAction, id: params.id, cancelAction });
37
- // add orderInTransaction(2024-01-15~)
38
- // USE_CREATE_ORDER_ON_OFFER_ACCEPTEDの場合、orderNumber発行済のはず
39
- // const orderNumberByTransaction = transaction.object.orderNumber;
40
- const orderNumberByTransaction = orderNumber; // transaction.objectへのアクセス回避(2024-05-30~)
41
- if (typeof orderNumberByTransaction === 'string') {
42
- await (0, any_1.voidAcceptedOffer)({
43
- // authorizeActions: [action],
44
- authorizeActionsWithInstrument: [action],
45
- orderNumber: orderNumberByTransaction
46
- })(repos);
47
- }
37
+ // // add orderInTransaction(2024-01-15~)
38
+ // // USE_CREATE_ORDER_ON_OFFER_ACCEPTEDの場合、orderNumber発行済のはず
39
+ // // const orderNumberByTransaction = transaction.object.orderNumber;
40
+ // const orderNumberByTransaction = orderNumber; // transaction.objectへのアクセス回避(2024-05-30~)
41
+ // if (typeof orderNumberByTransaction === 'string') {
42
+ // await voidAcceptedOffer({
43
+ // // authorizeActions: [action],
44
+ // authorizeActionsWithInstrument: [action],
45
+ // orderNumber: orderNumberByTransaction
46
+ // })(repos);
47
+ // }
48
+ await (0, any_1.voidAcceptedOffer)({
49
+ authorizeActionsWithInstrument: [action],
50
+ placeOrderId: params.purpose.id
51
+ })(repos);
48
52
  switch (action.instrument.typeOf) {
49
53
  case factory_1.factory.assetTransactionType.COAReserveTransaction: {
50
54
  const { reserveService } = repos;
@@ -2,15 +2,11 @@ import type { COA } from '@motionpicture/coa-service';
2
2
  import type { AcceptCOAOfferActionRepo } from '../../../repo/action/acceptCOAOffer';
3
3
  import type { AuthorizeOfferActionRepo } from '../../../repo/action/authorizeOffer';
4
4
  import type { EventRepo } from '../../../repo/event';
5
- import type { OrderNumberRepo } from '../../../repo/orderNumber';
6
- import type { ProjectRepo } from '../../../repo/project';
7
5
  import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
8
6
  import { factory } from '../../../factory';
9
7
  interface IAcceptRepos {
10
8
  action: AcceptCOAOfferActionRepo;
11
9
  event: EventRepo;
12
- orderNumber: OrderNumberRepo;
13
- project: ProjectRepo;
14
10
  placeOrder: PlaceOrderRepo;
15
11
  reserveService: COA.service.Reserve;
16
12
  masterService: COA.service.Master;
@@ -19,8 +15,6 @@ interface IReAcceptRepos {
19
15
  action: AcceptCOAOfferActionRepo;
20
16
  authorizeOfferAction: AuthorizeOfferActionRepo;
21
17
  event: EventRepo;
22
- orderNumber: OrderNumberRepo;
23
- project: ProjectRepo;
24
18
  placeOrder: PlaceOrderRepo;
25
19
  reserveService: COA.service.Reserve;
26
20
  masterService: COA.service.Master;
@@ -4,7 +4,6 @@ exports.acceptOffer = acceptOffer;
4
4
  exports.reAcceptOffer = reAcceptOffer;
5
5
  const errorHandler_1 = require("../../../errorHandler");
6
6
  const factory_1 = require("../../../factory");
7
- const issueOrderNumberIfNotExist_1 = require("../../transaction/placeOrder/issueOrderNumberIfNotExist");
8
7
  const authorize_1 = require("./acceptOffer/authorize");
9
8
  const factory_2 = require("./acceptOffer/factory");
10
9
  function findCOAInfo(params) {
@@ -39,12 +38,11 @@ function acceptOffer(params) {
39
38
  typeOf: factory_1.factory.transactionType.PlaceOrder,
40
39
  id: params.purpose.id
41
40
  }, ['project', 'agent', 'typeOf']);
42
- // issueOrderNumber(2025-03-11~)
43
- await (0, issueOrderNumberIfNotExist_1.issueOrderNumberIfNotExist)({
44
- project: { id: transaction.project.id },
45
- id: transaction.id,
46
- object: { orderDate: new Date() }
47
- })(repos);
41
+ // // 注文ドキュメントを参照(2026-06-24~)
42
+ // const orderNumber = await repos.orderInTransaction.findOrderNumberByIdentifier({
43
+ // identifier: transaction.id,
44
+ // project: { id: transaction.project.id },
45
+ // });
48
46
  const coaInfo = await findCOAInfo({ id: params.object.event.id, project: { id: transaction.project.id } })(repos);
49
47
  const updTmpReserveSeatArgs = (0, factory_2.createUpdTmpReserveSeatArgs)({ object: params.object, coaInfo });
50
48
  let updTmpReserveSeatResult;
@@ -125,11 +123,11 @@ function reAcceptOffer(params) {
125
123
  typeOf: factory_1.factory.transactionType.PlaceOrder,
126
124
  id: params.purpose.id
127
125
  }, ['project', 'agent', 'typeOf']);
128
- const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: transaction.id });
129
- if (typeof orderNumber !== 'string') {
130
- // 事前に発行されているはず
131
- throw new factory_1.factory.errors.NotFound('transaction.object.orderNumber');
132
- }
126
+ // const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: transaction.id });
127
+ // if (typeof orderNumber !== 'string') {
128
+ // // 事前に発行されているはず
129
+ // throw new factory.errors.NotFound('transaction.object.orderNumber');
130
+ // }
133
131
  const coaInfo = await findCOAInfo({ id: params.object.event.id, project: { id: transaction.project.id } })(repos);
134
132
  // 承認アクション存在検証
135
133
  await repos.authorizeOfferAction.findById({ id: params.potentialActions.id, typeOf: factory_1.factory.actionType.AuthorizeAction }, ['id'], []);
@@ -32,7 +32,7 @@ export declare function responseBody2acceptedOffers4result(params: {
32
32
  responseBody: IResponseBody;
33
33
  acceptedOffer: IAcceptedOffer4COA[];
34
34
  event: Pick<IMinimizedIndividualEvent, 'coaInfo' | 'doorTime' | 'endDate' | 'id' | 'location' | 'startDate' | 'superEvent' | 'typeOf' | 'identifier' | 'name'>;
35
- seller: Pick<factory.transaction.placeOrder.ISeller, 'typeOf' | 'name'>;
35
+ seller?: never;
36
36
  bookingTime: Date;
37
37
  totalPrice: number;
38
38
  }): IResultAcceptedOffer[];
@@ -80,11 +80,11 @@ function authorize(params) {
80
80
  await repos.action.giveUp({ typeOf: failedAction.typeOf, id: failedAction.id, error });
81
81
  throw error;
82
82
  }
83
- const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: params.transaction.id });
84
- if (typeof orderNumber !== 'string') {
85
- // 事前に発行されているはず(acceptCOAOfferにて)
86
- throw new factory_2.factory.errors.NotFound('transaction.object.orderNumber');
87
- }
83
+ // const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: params.transaction.id });
84
+ // if (typeof orderNumber !== 'string') {
85
+ // // 事前に発行されているはず(acceptCOAOfferにて)
86
+ // throw new factory.errors.NotFound('transaction.object.orderNumber');
87
+ // }
88
88
  let result;
89
89
  // 承認アクションを開始
90
90
  const actionAttributes = (0, factory_1.createAuthorizeSeatReservationActionAttributes)({
@@ -103,7 +103,7 @@ function authorize(params) {
103
103
  responseBody: params.result.responseBody,
104
104
  acceptedOffer: acceptedOffers,
105
105
  event: screeningEvent,
106
- seller: transaction.seller,
106
+ // seller: transaction.seller,
107
107
  bookingTime: (0, moment_1.default)(action.startDate)
108
108
  .toDate(),
109
109
  totalPrice: price
@@ -117,8 +117,8 @@ function authorize(params) {
117
117
  // add orderInTransaction(2024-01-15~)
118
118
  // if (params.options.useCreateOrderOnOfferAccepted) {
119
119
  await (0, any_1.acceptOffer)({
120
- orderNumber,
121
120
  project: transaction.project,
121
+ placeOrderId: params.transaction.id,
122
122
  acceptedOffers: acceptedOffers4result
123
123
  })(repos);
124
124
  // }
@@ -22,11 +22,11 @@ function changeOffers(params) {
22
22
  if (transaction.agent.id !== params.agent.id) {
23
23
  throw new factory_2.factory.errors.Forbidden('Transaction not yours');
24
24
  }
25
- const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: params.transaction.id });
26
- if (typeof orderNumber !== 'string') {
27
- // 事前に発行されているはず
28
- throw new factory_2.factory.errors.NotFound('transaction.object.orderNumber');
29
- }
25
+ // const orderNumber = await repos.placeOrder.findInProgressOrderNumberById({ id: params.transaction.id });
26
+ // if (typeof orderNumber !== 'string') {
27
+ // // 事前に発行されているはず
28
+ // throw new factory.errors.NotFound('transaction.object.orderNumber');
29
+ // }
30
30
  // 取引内のアクションかどうか確認
31
31
  const authorizeAction = await repos.action.findById({ typeOf: factory_2.factory.actionType.AuthorizeAction, id: params.id });
32
32
  if (authorizeAction.purpose.typeOf !== transaction.typeOf || authorizeAction.purpose.id !== transaction.id) {
@@ -126,7 +126,7 @@ function changeOffers(params) {
126
126
  responseBody: updTmpReserveSeatResult,
127
127
  acceptedOffer: acceptedOffers,
128
128
  event: screeningEvent,
129
- seller: transaction.seller,
129
+ // seller: transaction.seller,
130
130
  bookingTime: (0, moment_1.default)(authorizeAction.startDate)
131
131
  .toDate(),
132
132
  totalPrice: price
@@ -139,21 +139,25 @@ function changeOffers(params) {
139
139
  // ActiveActionStatus->CompletedActionStatusで再実装(2024-01-15~)
140
140
  await repos.action.reStart({ id: authorizeAction.id, typeOf: authorizeAction.typeOf });
141
141
  try {
142
- // まずvoidAcceptedOffer
143
- // const orderNumberByTransaction = transaction.object.orderNumber;
144
- const orderNumberByTransaction = orderNumber; // transaction.objectへのアクセス回避(2024-05-30~)
145
- if (typeof orderNumberByTransaction === 'string') {
146
- await (0, any_1.voidAcceptedOffer)({
147
- // authorizeActions: [authorizeAction],
148
- authorizeActionsWithInstrument: [authorizeAction],
149
- orderNumber: orderNumberByTransaction
150
- })(repos);
151
- }
142
+ // // まずvoidAcceptedOffer
143
+ // // const orderNumberByTransaction = transaction.object.orderNumber;
144
+ // const orderNumberByTransaction = orderNumber; // transaction.objectへのアクセス回避(2024-05-30~)
145
+ // if (typeof orderNumberByTransaction === 'string') {
146
+ // await voidAcceptedOffer({
147
+ // // authorizeActions: [authorizeAction],
148
+ // authorizeActionsWithInstrument: [authorizeAction],
149
+ // orderNumber: orderNumberByTransaction
150
+ // })(repos);
151
+ // }
152
+ await (0, any_1.voidAcceptedOffer)({
153
+ authorizeActionsWithInstrument: [authorizeAction],
154
+ placeOrderId: params.transaction.id
155
+ })(repos);
152
156
  // add orderInTransaction(2024-01-15~)
153
157
  // if (params.options.useCreateOrderOnOfferAccepted) {
154
158
  await (0, any_1.acceptOffer)({
155
- orderNumber,
156
159
  project: transaction.project,
160
+ placeOrderId: params.transaction.id,
157
161
  acceptedOffers: acceptedOffers4result
158
162
  })(repos);
159
163
  // }
@@ -93,7 +93,7 @@ function deleteReservationsByOrder(order) {
93
93
  const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
94
94
  orderNumber: { $eq: order.orderNumber },
95
95
  project: { id: { $eq: order.project.id } },
96
- }, { noName: true });
96
+ });
97
97
  const reservationIds = acceptedOffers.map((o) => String(o.itemOffered.id));
98
98
  if (reservationIds.length > 0) {
99
99
  await repos.reservation.deleteByIds({ project: { id: order.project.id }, ids: reservationIds });
@@ -1,7 +1,10 @@
1
+ /**
2
+ * 注文決済時処理
3
+ */
1
4
  import type { TaskRepo } from '../../../repo/task';
2
5
  import { factory } from '../../../factory';
3
6
  declare function onOrderPaymentDue(params: {
4
- order: Pick<factory.order.IOrder, 'paymentMethods' | 'project' | 'orderNumber' | 'confirmationNumber' | 'orderDate' | 'seller' | 'typeOf' | 'price' | 'priceCurrency'> & {
7
+ order: Pick<factory.order.IOrder, 'paymentMethods' | 'project' | 'orderNumber' | 'confirmationNumber' | 'orderDate' | 'typeOf'> & {
5
8
  orderStatus: factory.orderStatus.OrderPaymentDue;
6
9
  };
7
10
  }): (repos: {
@@ -1,32 +1,13 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.onOrderPaymentDue = onOrderPaymentDue;
7
- /**
8
- * 注文決済時処理
9
- */
10
- const debug_1 = __importDefault(require("debug"));
11
4
  const factory_1 = require("../../../factory");
12
- // import { createMaskedCustomer } from '../../../factory/order';
13
- const debug = (0, debug_1.default)('chevre-domain:service:order');
14
5
  function onOrderPaymentDue(params) {
15
6
  return async (repos) => {
16
- debug('onOrderStatusChanged called.', params.order.orderNumber, params.order.orderStatus, params.order.orderDate);
17
7
  let tasks;
18
- // const maskedCustomer = createMaskedCustomer(params.order, { noProfile: true });
19
8
  const simpleOrder = {
20
9
  typeOf: params.order.typeOf,
21
- // seller: {
22
- // id: params.order.seller.id,
23
- // typeOf: params.order.seller.typeOf,
24
- // name: params.order.seller.name
25
- // }, // 廃止(2024-03-06~)
26
- // customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id }, // 廃止(2024-03-06~)
27
10
  orderNumber: params.order.orderNumber,
28
- // price: params.order.price,
29
- // priceCurrency: params.order.priceCurrency,
30
11
  orderDate: params.order.orderDate
31
12
  };
32
13
  switch (params.order.orderStatus) {
@@ -62,12 +43,7 @@ function createConfirmPayTransactionTasks(order, simpleOrder) {
62
43
  object: { transactionNumber: { $eq: invoice.paymentMethodId } },
63
44
  purpose: { orderNumber: { $eq: order.orderNumber } }
64
45
  }
65
- }, ['id']
66
- // {
67
- // data: 0, executionResults: 0, name: 0, numberOfTried: 0,
68
- // remainingNumberOfTries: 0, runsAt: 0, status: 0
69
- // }
70
- );
46
+ }, ['id']);
71
47
  if (existingTasks.length === 0) {
72
48
  const data = {
73
49
  project: order.project,
@@ -114,7 +90,6 @@ function createCreateAccountingReportTask(order) {
114
90
  executionResults: [],
115
91
  data: {
116
92
  object: { mainEntity: { orderNumber: order.orderNumber } }
117
- // project: { id: order.project.id }
118
93
  }
119
94
  };
120
95
  return [task];
@@ -89,8 +89,9 @@ function createPlacingOrderFromExistingTransaction(params) {
89
89
  .map(({ instrument }) => String(instrument.transactionNumber));
90
90
  try {
91
91
  // すでにtypeOf: Orderに変更済の場合acceptedOffersは空になるが、そもそもorderedItemはその後上書きされないので、空のまま処理して問題なし
92
- acceptedOffers = (await repos.orderInTransaction.findAcceptedOffersWithPriceByOrderNumber({
93
- orderNumber,
92
+ acceptedOffers = (await repos.orderInTransaction.findAcceptedOffersWithPriceByIdentifier({
93
+ // orderNumber,
94
+ identifier: placeOrderTransactionWithResult.id,
94
95
  project: { id: params.project.id }
95
96
  }))
96
97
  .filter(({ serialNumber }) => typeof serialNumber === 'string' && serialNumbers.includes(serialNumber));
@@ -10,7 +10,7 @@ declare function createPaymentMethods(params: {
10
10
  };
11
11
  declare function createSeller(params: {
12
12
  transaction: Pick<factory.transaction.placeOrder.ITransaction, 'seller'>;
13
- }): factory.order.ISeller;
13
+ }): Pick<factory.order.ISeller, 'id' | 'name' | 'typeOf'>;
14
14
  declare function createPlacingOrder(params: {
15
15
  transaction: IPlaceOrderTransaction;
16
16
  authorizePaymentActions: Pick<factory.action.authorize.paymentMethod.any.IAction, 'result'>[];
@@ -61,9 +61,9 @@ function createSeller(params) {
61
61
  return {
62
62
  id: seller.id,
63
63
  name: (typeof seller.name === 'string') ? seller.name : String(seller.name?.ja),
64
- typeOf: seller.typeOf,
65
- // 追加特性を追加(2023-08-08~)
66
- additionalProperty: (Array.isArray(seller.additionalProperty)) ? seller.additionalProperty : []
64
+ typeOf: seller.typeOf
65
+ // // 追加特性を追加(2023-08-08~)
66
+ // additionalProperty: (Array.isArray(seller.additionalProperty)) ? seller.additionalProperty : []
67
67
  };
68
68
  }
69
69
  function createPlacingOrder(params) {
@@ -79,7 +79,7 @@ function createPlacingOrder(params) {
79
79
  throw new factory_1.factory.errors.Internal('object.orderNumber undefined');
80
80
  }
81
81
  if (orderDate === undefined) {
82
- orderDateByTransaction = transaction.result?.order?.orderDate;
82
+ // orderDateByTransaction = transaction.result?.order?.orderDate
83
83
  }
84
84
  else {
85
85
  orderDateByTransaction = orderDate;
@@ -91,11 +91,13 @@ function createPlacingOrder(params) {
91
91
  // if (orderByTransaction === undefined) {
92
92
  // throw new factory.errors.NotFound('transaction.result.order');
93
93
  // }
94
- const seller = createSeller({ transaction });
94
+ // const seller = createSeller({ transaction });
95
95
  // discontinue(2026-06-11~)
96
96
  // const name: string | undefined =
97
97
  // (typeof transaction.object.name === 'string') ? transaction.object.name : undefined;
98
- const broker = (typeof transaction.object.broker?.typeOf === 'string') ? transaction.object.broker : undefined;
98
+ // discontinue(2026-06-22~)
99
+ // const broker: factory.order.IBroker | undefined =
100
+ // (typeof transaction.object.broker?.typeOf === 'string') ? transaction.object.broker : undefined;
99
101
  const { paymentMethods, price } = createPaymentMethods({ authorizePaymentActions });
100
102
  const eventReservationAcceptedOffers = [];
101
103
  params.acceptedOffers.forEach((acceptedOffer) => {
@@ -117,7 +119,7 @@ function createPlacingOrder(params) {
117
119
  orderNumber,
118
120
  typeOf: factory_1.factory.order.OrderType.Order, // 取引保管を廃止するためにここで指定(2026-06-14~)
119
121
  orderStatus: factory_1.factory.orderStatus.OrderPaymentDue, // 取引保管を廃止するためにここで指定(2026-06-14~)
120
- seller, // 2024-06-17~
122
+ // seller, // 取引開始時の注文ドキュメント作成へ移行(2026-06-25~)
121
123
  paymentMethods, // 2024-06-17~
122
124
  price, // 2024-06-17~
123
125
  priceCurrency: factory_1.factory.priceCurrency.JPY, // 取引保管を廃止するためにここで指定(2026-06-14~)
@@ -125,6 +127,6 @@ function createPlacingOrder(params) {
125
127
  .toDate(),
126
128
  orderedItem, // 2024-06-18~
127
129
  // ...(typeof name === 'string') ? { name } : undefined, // discontinue(2026-06-11~)
128
- ...(typeof broker?.typeOf === 'string') ? { broker } : undefined // 2024-06-17~
130
+ // ...(typeof broker?.typeOf === 'string') ? { broker } : undefined // discontinue(2026-06-22~)
129
131
  };
130
132
  }
@@ -1,8 +1,6 @@
1
1
  import type { OrderInTransactionRepo } from '../../../repo/orderInTransaction';
2
2
  declare function voidAcceptedOfferIfNecessary(params: {
3
- object: {
4
- orderNumber: string;
5
- };
3
+ placeOrderId: string;
6
4
  serialNumbers: string[];
7
5
  }): (repos: {
8
6
  orderInTransaction: OrderInTransactionRepo;
@@ -1,27 +1,15 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.voidAcceptedOfferIfNecessary = voidAcceptedOfferIfNecessary;
7
- const debug_1 = __importDefault(require("debug"));
8
- // import type { TransactionRepo } from '../../../repo/transaction';
9
- // import { factory } from '../../../factory';
10
- const debug = (0, debug_1.default)('chevre-domain:service:order');
11
- // type IPlaceOrderTransaction = Pick<
12
- // factory.transaction.placeOrder.ITransaction,
13
- // 'id' | 'project' | 'typeOf' | 'result' | 'object' | 'seller'
14
- // >;
15
4
  function voidAcceptedOfferIfNecessary(params) {
16
5
  return async (repos) => {
17
6
  if (Array.isArray(params.serialNumbers) && params.serialNumbers.length > 0) {
18
7
  // 取引に保管された承認アクション以外のアクションについて、オファーを除外する
19
- debug('voidAcceptedOfferBySerialNumber processing...', params.object.orderNumber, 'serialNumbersMustBeIn:', params.serialNumbers);
20
- const voidAcceptedOfferBySerialNumberResult = await repos.orderInTransaction.voidAcceptedOfferBySerialNumber({
21
- orderNumber: params.object.orderNumber,
8
+ // const voidAcceptedOfferBySerialNumberResult =
9
+ await repos.orderInTransaction.voidAcceptedOfferByIdentifier({
10
+ identifier: params.placeOrderId,
22
11
  acceptedOffers: { serialNumber: { $nin: params.serialNumbers } }
23
12
  });
24
- debug('voidAcceptedOfferBySerialNumber processed.', params.object.orderNumber, 'voidAcceptedOfferBySerialNumberResult:', voidAcceptedOfferBySerialNumberResult);
25
13
  }
26
14
  };
27
15
  }
@@ -61,11 +61,11 @@ function placeOrder(params) {
61
61
  try {
62
62
  // 冗長なオファーを除外する(念のため)
63
63
  await (0, voidAcceptedOfferIfNecessary_1.voidAcceptedOfferIfNecessary)({
64
- object: { orderNumber: order.orderNumber },
65
- // purpose: placeOrderTransaction,
64
+ // object: { orderNumber: order.orderNumber },
65
+ placeOrderId: placeOrderTransaction.id,
66
66
  serialNumbers
67
67
  })(repos);
68
- await repos.orderInTransaction.placeOrder(order);
68
+ await repos.orderInTransaction.placeOrderByIdentifier({ identifier: placeOrderTransaction.id }, order);
69
69
  }
70
70
  catch (error) {
71
71
  try {
@@ -89,10 +89,10 @@ function placeOrder(params) {
89
89
  orderNumber: order.orderNumber,
90
90
  confirmationNumber: order.confirmationNumber,
91
91
  orderDate: order.orderDate,
92
- seller: order.seller,
92
+ // seller: order.seller,
93
93
  typeOf: order.typeOf,
94
- price: order.price,
95
- priceCurrency: order.priceCurrency,
94
+ // price: order.price,
95
+ // priceCurrency: order.priceCurrency,
96
96
  orderStatus: order.orderStatus
97
97
  }
98
98
  })({
@@ -6,5 +6,4 @@ import { paymentDue2Processing } from './order/onAssetTransactionStatusChanged';
6
6
  import { processOrder } from './order/onOrderStatusChanged';
7
7
  import { onOrderUpdated } from './order/onOrderUpdated';
8
8
  import { placeOrder } from './order/placeOrder';
9
- import { placeOrderWithoutTransaction } from './order/placeOrderWithoutTransaction';
10
- export { confirmPayTransaction, onOrderUpdated, paymentDue2Processing, placeOrder, placeOrderWithoutTransaction, processOrder, };
9
+ export { confirmPayTransaction, onOrderUpdated, paymentDue2Processing, placeOrder, processOrder, };
@@ -1,20 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.processOrder = exports.placeOrderWithoutTransaction = exports.placeOrder = exports.paymentDue2Processing = exports.onOrderUpdated = exports.confirmPayTransaction = void 0;
3
+ exports.processOrder = exports.placeOrder = exports.paymentDue2Processing = exports.onOrderUpdated = exports.confirmPayTransaction = void 0;
4
4
  /**
5
5
  * 注文サービス
6
6
  */
7
7
  const confirmPayTransaction_1 = require("./order/confirmPayTransaction");
8
8
  Object.defineProperty(exports, "confirmPayTransaction", { enumerable: true, get: function () { return confirmPayTransaction_1.confirmPayTransaction; } });
9
- // import { deleteOrder } from './order/deleteOrder';
10
9
  const onAssetTransactionStatusChanged_1 = require("./order/onAssetTransactionStatusChanged");
11
10
  Object.defineProperty(exports, "paymentDue2Processing", { enumerable: true, get: function () { return onAssetTransactionStatusChanged_1.paymentDue2Processing; } });
12
11
  const onOrderStatusChanged_1 = require("./order/onOrderStatusChanged");
13
12
  Object.defineProperty(exports, "processOrder", { enumerable: true, get: function () { return onOrderStatusChanged_1.processOrder; } });
14
13
  const onOrderUpdated_1 = require("./order/onOrderUpdated");
15
14
  Object.defineProperty(exports, "onOrderUpdated", { enumerable: true, get: function () { return onOrderUpdated_1.onOrderUpdated; } });
16
- // import { payOrder } from './order/payOrder';
17
15
  const placeOrder_1 = require("./order/placeOrder");
18
16
  Object.defineProperty(exports, "placeOrder", { enumerable: true, get: function () { return placeOrder_1.placeOrder; } });
19
- const placeOrderWithoutTransaction_1 = require("./order/placeOrderWithoutTransaction");
20
- Object.defineProperty(exports, "placeOrderWithoutTransaction", { enumerable: true, get: function () { return placeOrderWithoutTransaction_1.placeOrderWithoutTransaction; } });
@@ -1,7 +1,6 @@
1
1
  import { factory } from '../../../../factory';
2
2
  import type { ConfirmationNumberRepo } from '../../../../repo/confirmationNumber';
3
- import type { OrderNumberRepo } from '../../../../repo/orderNumber';
4
- import type { ProjectRepo } from '../../../../repo/project';
3
+ import type { OrderInTransactionRepo } from '../../../../repo/orderInTransaction';
5
4
  import type { PlaceOrderRepo } from '../../../../repo/transaction/placeOrder';
6
5
  declare function fixOrderAsNeeded(params: {
7
6
  project: {
@@ -9,10 +8,9 @@ declare function fixOrderAsNeeded(params: {
9
8
  };
10
9
  purpose: factory.action.authorize.paymentMethod.any.IPurpose;
11
10
  }): (repos: {
12
- project: ProjectRepo;
13
11
  placeOrder: PlaceOrderRepo;
14
12
  confirmationNumber: ConfirmationNumberRepo;
15
- orderNumber: OrderNumberRepo;
13
+ orderInTransaction: OrderInTransactionRepo;
16
14
  }) => Promise<{
17
15
  confirmationNumber: string;
18
16
  orderNumber: string;