@chevre/domain 25.0.0-alpha.20 → 25.0.0-alpha.21
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/repo/order.d.ts +1 -8
- package/lib/chevre/repo/order.js +24 -13
- package/lib/chevre/repo/orderInTransaction.d.ts +1 -2
- package/lib/chevre/repo/task.d.ts +1 -1
- package/lib/chevre/repo/transaction/placeOrder.d.ts +1 -6
- package/lib/chevre/repo/transaction/placeOrder.js +25 -16
- package/lib/chevre/service/order/deleteOrder.d.ts +6 -10
- package/lib/chevre/service/order/deleteOrder.js +7 -48
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.d.ts +1 -1
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +1 -1
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +1 -1
- package/lib/chevre/service/task/deleteTransaction.js +0 -8
- package/lib/chevre/service/taskHandler.js +0 -1
- package/lib/chevre/service/transaction/deleteTransaction.d.ts +8 -14
- package/lib/chevre/service/transaction/deleteTransaction.js +11 -117
- package/lib/chevre/service/transaction/placeOrder/confirm.js +4 -1
- package/lib/chevre/service/transaction/placeOrder/issueOrderNumberIfNotExist.d.ts +4 -1
- package/lib/chevre/service/transaction/placeOrder/issueOrderNumberIfNotExist.js +37 -24
- package/lib/chevre/service/transaction/placeOrder/start.d.ts +3 -1
- package/lib/chevre/service/transaction/placeOrder/start.js +15 -19
- package/package.json +2 -2
- package/lib/chevre/service/task/deletePerson.d.ts +0 -6
- package/lib/chevre/service/task/deletePerson.js +0 -465
|
@@ -26,7 +26,7 @@ interface IAggregateOrder {
|
|
|
26
26
|
export type IOrderOnStatusChanged = Pick<IOrderWithoutAcceptedOffers & {
|
|
27
27
|
id: string;
|
|
28
28
|
}, 'id' | 'orderNumber' | 'broker' | 'confirmationNumber' | 'customer' | 'dateReturned' | 'name' | 'orderDate' | 'orderStatus' | 'orderedItem' | 'paymentMethods' | 'previousOrderStatus' | 'price' | 'priceCurrency' | 'project' | 'returner' | 'seller' | 'typeOf'>;
|
|
29
|
-
type ISearchConditions = Pick<factory.order.ISearchConditions, 'acceptedOffers' | 'broker' | 'confirmationNumbers' | 'customer' | 'name' | 'orderDate' | 'orderNumbers' | 'orderStatuses' | 'paymentMethods' | 'project' | 'provider' | 'seller'>;
|
|
29
|
+
type ISearchConditions = Pick<factory.order.ISearchConditions, 'acceptedOffers' | 'broker' | 'confirmationNumbers' | 'customer' | 'name' | 'orderDate' | 'orderNumbers' | 'orderStatuses' | 'paymentMethods' | 'project' | 'provider' | 'seller' | 'identifier'>;
|
|
30
30
|
/**
|
|
31
31
|
* 注文リポジトリ
|
|
32
32
|
*/
|
|
@@ -152,13 +152,6 @@ export declare class OrderRepo {
|
|
|
152
152
|
$unset: any;
|
|
153
153
|
arrayFilters?: any[];
|
|
154
154
|
}): Promise<import("mongoose").UpdateWriteOpResult>;
|
|
155
|
-
updateIdentifier4migration(params: {
|
|
156
|
-
project: {
|
|
157
|
-
id: string;
|
|
158
|
-
};
|
|
159
|
-
orderNumber: string;
|
|
160
|
-
identifier: string;
|
|
161
|
-
}): Promise<import("mongoose").UpdateWriteOpResult>;
|
|
162
155
|
aggregateOrder(params: {
|
|
163
156
|
project?: {
|
|
164
157
|
id?: {
|
package/lib/chevre/repo/order.js
CHANGED
|
@@ -239,6 +239,10 @@ class OrderRepo {
|
|
|
239
239
|
}
|
|
240
240
|
});
|
|
241
241
|
}
|
|
242
|
+
const identifierEq = params.identifier?.$eq;
|
|
243
|
+
if (typeof identifierEq === 'string') {
|
|
244
|
+
andConditions.push({ identifier: { $eq: identifierEq } });
|
|
245
|
+
}
|
|
242
246
|
if (Array.isArray(params.orderNumbers)) {
|
|
243
247
|
if (params.orderNumbers.length === 1) {
|
|
244
248
|
// use $eq(2025-04-01~)
|
|
@@ -844,19 +848,26 @@ class OrderRepo {
|
|
|
844
848
|
})
|
|
845
849
|
.exec();
|
|
846
850
|
}
|
|
847
|
-
async updateIdentifier4migration(params
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
851
|
+
// public async updateIdentifier4migration(params: {
|
|
852
|
+
// project: { id: string };
|
|
853
|
+
// orderNumber: string;
|
|
854
|
+
// identifier: string;
|
|
855
|
+
// }) {
|
|
856
|
+
// const { orderNumber, project, identifier } = params;
|
|
857
|
+
// return this.orderModel.updateOne(
|
|
858
|
+
// {
|
|
859
|
+
// orderNumber: { $eq: orderNumber },
|
|
860
|
+
// 'project.id': { $eq: project.id },
|
|
861
|
+
// typeOf: { $eq: factory.order.OrderType.Order }
|
|
862
|
+
// },
|
|
863
|
+
// {
|
|
864
|
+
// $set: {
|
|
865
|
+
// ...(typeof identifier === 'string') ? { identifier } : undefined
|
|
866
|
+
// }
|
|
867
|
+
// }
|
|
868
|
+
// )
|
|
869
|
+
// .exec();
|
|
870
|
+
// }
|
|
860
871
|
async aggregateOrder(params) {
|
|
861
872
|
const matchConditions = {
|
|
862
873
|
orderDate: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Connection } from 'mongoose';
|
|
2
2
|
import { factory } from '../factory';
|
|
3
3
|
import { AcceptedOfferInReserveRepo } from './acceptedOfferInReserve';
|
|
4
|
-
type IOrderInTransaction = Pick<factory.order.IOrder, 'orderNumber' | 'project' | 'broker'> & {
|
|
4
|
+
export type IOrderInTransaction = Pick<factory.order.IOrder, 'orderNumber' | 'project' | 'broker'> & {
|
|
5
5
|
typeOf: factory.transactionType.PlaceOrder;
|
|
6
6
|
orderDate: Date;
|
|
7
7
|
/**
|
|
@@ -131,4 +131,3 @@ export declare class OrderInTransactionRepo extends AcceptedOfferInReserveRepo {
|
|
|
131
131
|
identifier: string;
|
|
132
132
|
}): Promise<import("mongodb").DeleteResult>;
|
|
133
133
|
}
|
|
134
|
-
export {};
|
|
@@ -31,7 +31,7 @@ type ICreatingTask = Pick<factory.task.IAttributes<factory.taskName>, 'data' | '
|
|
|
31
31
|
export declare class TaskRepo {
|
|
32
32
|
readonly taskModel: IModel;
|
|
33
33
|
constructor(connection: Connection);
|
|
34
|
-
static CREATE_MONGO_CONDITIONS(params: factory.task.ISearchConditions): FilterQuery<import("@chevre/factory/lib/chevre/task").ITask | import("@chevre/factory/lib/chevre/task/confirmPayTransaction").ITask | import("@chevre/factory/lib/chevre/task/confirmReserveTransaction").ITask | import("@chevre/factory/lib/chevre/task/createAccountingReport").ITask | import("@chevre/factory/lib/chevre/task/
|
|
34
|
+
static CREATE_MONGO_CONDITIONS(params: factory.task.ISearchConditions): FilterQuery<import("@chevre/factory/lib/chevre/task").ITask | import("@chevre/factory/lib/chevre/task/confirmPayTransaction").ITask | import("@chevre/factory/lib/chevre/task/confirmReserveTransaction").ITask | import("@chevre/factory/lib/chevre/task/createAccountingReport").ITask | import("@chevre/factory/lib/chevre/task/deleteTransaction").ITask | import("@chevre/factory/lib/chevre/task/onAssetTransactionStatusChanged").ITask | import("@chevre/factory/lib/chevre/task/onAuthorizationCreated").ITask | import("@chevre/factory/lib/chevre/task/onEventChanged").ITask | import("@chevre/factory/lib/chevre/task/onResourceDeleted").ITask | import("@chevre/factory/lib/chevre/task/onResourceUpdated").ITask | import("@chevre/factory/lib/chevre/task/onOrderPaymentCompleted").ITask | import("@chevre/factory/lib/chevre/task/placeOrder").ITask | import("@chevre/factory/lib/chevre/task/returnOrder").ITask | import("@chevre/factory/lib/chevre/task/returnPayTransaction").ITask | import("@chevre/factory/lib/chevre/task/returnReserveTransaction").ITask | import("@chevre/factory/lib/chevre/task/sendEmailMessage").ITask | import("@chevre/factory/lib/chevre/task/sendOrder").ITask | import("@chevre/factory/lib/chevre/task/triggerWebhook").ITask | import("@chevre/factory/lib/chevre/task/useReservation").ITask | import("@chevre/factory/lib/chevre/task/voidPayTransaction").ITask | import("@chevre/factory/lib/chevre/task/voidReserveTransaction").ITask>[];
|
|
35
35
|
runImmediately(params: Pick<factory.task.IAttributes<factory.taskName>, 'data' | 'expires' | 'name' | 'project' | 'remainingNumberOfTries' | 'runsAt'> & {
|
|
36
36
|
alternateName?: never;
|
|
37
37
|
identifier?: never;
|
|
@@ -43,12 +43,6 @@ export declare class PlaceOrderRepo {
|
|
|
43
43
|
findInProgressPaymentMethodId(params: {
|
|
44
44
|
id: string;
|
|
45
45
|
}): Promise<factory.transaction.placeOrder.IPaymentMethodByPaymentUrl | undefined>;
|
|
46
|
-
/**
|
|
47
|
-
* 取引の注文番号を検索する
|
|
48
|
-
*/
|
|
49
|
-
findInProgressOrderNumberById(params: {
|
|
50
|
-
id: string;
|
|
51
|
-
}): Promise<string | undefined>;
|
|
52
46
|
/**
|
|
53
47
|
* 取引の確認番号を検索する
|
|
54
48
|
*/
|
|
@@ -130,6 +124,7 @@ export declare class PlaceOrderRepo {
|
|
|
130
124
|
id: string;
|
|
131
125
|
object: {
|
|
132
126
|
orderDate: Date;
|
|
127
|
+
orderNumber: string;
|
|
133
128
|
};
|
|
134
129
|
result: factory.transaction.IResult<factory.transactionType.PlaceOrder>;
|
|
135
130
|
potentialActions: factory.transaction.IPotentialActions<factory.transactionType.PlaceOrder>;
|
|
@@ -202,22 +202,30 @@ class PlaceOrderRepo {
|
|
|
202
202
|
}
|
|
203
203
|
return doc.object.paymentMethods;
|
|
204
204
|
}
|
|
205
|
-
/**
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
async findInProgressOrderNumberById(params
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
205
|
+
// /**
|
|
206
|
+
// * 取引の注文番号を検索する
|
|
207
|
+
// */
|
|
208
|
+
// public async findInProgressOrderNumberById(params: {
|
|
209
|
+
// id: string;
|
|
210
|
+
// }): Promise<string | undefined> {
|
|
211
|
+
// const doc = await this.transactionModel.findOne(
|
|
212
|
+
// {
|
|
213
|
+
// _id: { $eq: params.id },
|
|
214
|
+
// typeOf: { $eq: factory.transactionType.PlaceOrder },
|
|
215
|
+
// status: { $eq: factory.transactionStatusType.InProgress }
|
|
216
|
+
// },
|
|
217
|
+
// { 'object.orderNumber': 1 }
|
|
218
|
+
// )
|
|
219
|
+
// .lean<{ object: Pick<factory.transaction.placeOrder.IObject, 'orderNumber'> }>() // 2024-08-26~
|
|
220
|
+
// .exec();
|
|
221
|
+
// if (doc === null) {
|
|
222
|
+
// throw new factory.errors.NotFound(
|
|
223
|
+
// this.transactionModel.modelName,
|
|
224
|
+
// `${factory.transactionType.PlaceOrder} ${factory.transactionStatusType.InProgress} not found`
|
|
225
|
+
// );
|
|
226
|
+
// }
|
|
227
|
+
// return doc.object.orderNumber;
|
|
228
|
+
// }
|
|
221
229
|
/**
|
|
222
230
|
* 取引の確認番号を検索する
|
|
223
231
|
*/
|
|
@@ -432,6 +440,7 @@ class PlaceOrderRepo {
|
|
|
432
440
|
status: factory_1.factory.transactionStatusType.Confirmed, // ステータス変更
|
|
433
441
|
endDate,
|
|
434
442
|
'object.orderDate': params.object.orderDate, // add(2026-06-15~)
|
|
443
|
+
'object.orderNumber': params.object.orderNumber, // add(2026-06-27~)
|
|
435
444
|
result: params.result, // resultを更新
|
|
436
445
|
potentialActions: params.potentialActions // resultを更新
|
|
437
446
|
}, {
|
|
@@ -1,28 +1,24 @@
|
|
|
1
1
|
import type { AcceptedOfferRepo } from '../../repo/acceptedOffer';
|
|
2
2
|
import type { AccountingReportRepo } from '../../repo/accountingReport';
|
|
3
|
-
import type { EventRepo } from '../../repo/event';
|
|
4
3
|
import type { NoteRepo } from '../../repo/note';
|
|
5
4
|
import type { OrderRepo } from '../../repo/order';
|
|
6
|
-
import type { OwnershipInfoRepo } from '../../repo/ownershipInfo';
|
|
7
5
|
import type { ReservationRepo } from '../../repo/reservation';
|
|
8
|
-
import type { SettingRepo } from '../../repo/setting';
|
|
9
|
-
import type { TaskRepo } from '../../repo/task';
|
|
10
|
-
import { factory } from '../../factory';
|
|
11
6
|
/**
|
|
12
7
|
* 注文に関わるリソースを削除する
|
|
13
8
|
* 冪等性を確保すること
|
|
14
9
|
*/
|
|
15
10
|
declare function deleteOrder(params: {
|
|
16
|
-
object:
|
|
11
|
+
object: {
|
|
12
|
+
/**
|
|
13
|
+
* 注文取引ID
|
|
14
|
+
*/
|
|
15
|
+
identifier: string;
|
|
16
|
+
};
|
|
17
17
|
}): (repos: {
|
|
18
18
|
acceptedOffer: AcceptedOfferRepo;
|
|
19
19
|
accountingReport: AccountingReportRepo;
|
|
20
|
-
event: EventRepo;
|
|
21
20
|
note: NoteRepo;
|
|
22
21
|
order: OrderRepo;
|
|
23
|
-
ownershipInfo: OwnershipInfoRepo;
|
|
24
22
|
reservation: ReservationRepo;
|
|
25
|
-
setting: SettingRepo;
|
|
26
|
-
task: TaskRepo;
|
|
27
23
|
}) => Promise<void>;
|
|
28
24
|
export { deleteOrder };
|
|
@@ -9,23 +9,26 @@ const factory_1 = require("../../factory");
|
|
|
9
9
|
*/
|
|
10
10
|
function deleteOrder(params) {
|
|
11
11
|
return async (repos) => {
|
|
12
|
+
if (typeof params.object.identifier !== 'string' || params.object.identifier === '') {
|
|
13
|
+
throw new factory_1.factory.errors.ArgumentNull('object.identifier');
|
|
14
|
+
}
|
|
12
15
|
const orders = await repos.order.projectFields({
|
|
13
16
|
limit: 1,
|
|
14
17
|
page: 1,
|
|
15
|
-
orderNumbers: [params.object.orderNumber]
|
|
16
|
-
|
|
18
|
+
// orderNumbers: [params.object.orderNumber],
|
|
19
|
+
identifier: { $eq: params.object.identifier }
|
|
20
|
+
}, { inclusion: ['project', 'orderNumber'] });
|
|
17
21
|
const order = orders.shift();
|
|
18
22
|
if (order === undefined) {
|
|
19
23
|
// すでに削除済
|
|
20
24
|
return;
|
|
21
25
|
}
|
|
22
26
|
if (typeof order.id !== 'string') {
|
|
23
|
-
throw new factory_1.factory.errors.Internal(`order.id undefined. orderNumber: ${
|
|
27
|
+
throw new factory_1.factory.errors.Internal(`order.id undefined. orderNumber: ${order.orderNumber}`);
|
|
24
28
|
}
|
|
25
29
|
// 注文アイテムの予約を削除
|
|
26
30
|
await deleteReservationsByOrder(order)(repos);
|
|
27
31
|
// 所有権は所有期限でcleanされるので、注文削除時連動はひとまず廃止(2026-05-17~)
|
|
28
|
-
// // 所有権削除
|
|
29
32
|
// try {
|
|
30
33
|
// await deleteOwnershipInfosByOrder(order)(repos);
|
|
31
34
|
// } catch (error) {
|
|
@@ -42,50 +45,6 @@ function deleteOrder(params) {
|
|
|
42
45
|
});
|
|
43
46
|
// 注文削除
|
|
44
47
|
await repos.order.deleteByOrderNumber({ orderNumber: order.orderNumber });
|
|
45
|
-
// deletePerson(2024-12-25~)
|
|
46
|
-
await deletePersonIfNecessary(order)(repos);
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
function deletePersonIfNecessary(order) {
|
|
50
|
-
return async (repos) => {
|
|
51
|
-
// 代理注文を除く
|
|
52
|
-
const isCustomerPerson = order.customer.typeOf === factory_1.factory.personType.Person
|
|
53
|
-
&& typeof order.broker?.typeOf !== 'string';
|
|
54
|
-
if (isCustomerPerson) {
|
|
55
|
-
const ordersByPerson = await repos.order.projectFields({
|
|
56
|
-
limit: 1,
|
|
57
|
-
page: 1,
|
|
58
|
-
customer: { ids: [order.customer.id] }
|
|
59
|
-
}, { inclusion: ['orderNumber'] });
|
|
60
|
-
if (ordersByPerson.length === 0) {
|
|
61
|
-
const setting = await repos.setting.findOne({ project: { id: { $eq: '*' } } }, ['userPoolIdNew']);
|
|
62
|
-
if (typeof setting?.userPoolIdNew !== 'string') {
|
|
63
|
-
throw new factory_1.factory.errors.NotFound('setting.userPoolIdNew');
|
|
64
|
-
}
|
|
65
|
-
const deletePersonTask = {
|
|
66
|
-
project: { typeOf: factory_1.factory.organizationType.Project, id: order.project.id },
|
|
67
|
-
name: factory_1.factory.taskName.DeletePerson,
|
|
68
|
-
status: factory_1.factory.taskStatus.Ready,
|
|
69
|
-
runsAt: new Date(),
|
|
70
|
-
remainingNumberOfTries: 10,
|
|
71
|
-
numberOfTried: 0,
|
|
72
|
-
executionResults: [],
|
|
73
|
-
data: {
|
|
74
|
-
id: order.customer.id,
|
|
75
|
-
agent: {
|
|
76
|
-
id: order.project.id,
|
|
77
|
-
typeOf: factory_1.factory.organizationType.Project,
|
|
78
|
-
name: factory_1.factory.organizationType.Project
|
|
79
|
-
},
|
|
80
|
-
physically: true,
|
|
81
|
-
userPoolId: setting.userPoolIdNew,
|
|
82
|
-
// migrate: false,
|
|
83
|
-
executeBackground: true
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
await repos.task.saveMany([deletePersonTask], { emitImmediately: true });
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
48
|
};
|
|
90
49
|
}
|
|
91
50
|
function deleteReservationsByOrder(order) {
|
|
@@ -7,5 +7,5 @@ import { factory } from '../../../../factory';
|
|
|
7
7
|
*/
|
|
8
8
|
declare function createOnOrderCancelledTasksByTransaction(params: {
|
|
9
9
|
transaction: Pick<factory.transaction.placeOrder.ITransaction, 'id' | 'project' | 'typeOf'>;
|
|
10
|
-
}): (import("@chevre/factory/lib/chevre/task").ITaskAttributes | import("@chevre/factory/lib/chevre/task/confirmPayTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/confirmReserveTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/createAccountingReport").IAttributes | import("@chevre/factory/lib/chevre/task/
|
|
10
|
+
}): (import("@chevre/factory/lib/chevre/task").ITaskAttributes | import("@chevre/factory/lib/chevre/task/confirmPayTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/confirmReserveTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/createAccountingReport").IAttributes | import("@chevre/factory/lib/chevre/task/deleteTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/onAssetTransactionStatusChanged").IAttributes | import("@chevre/factory/lib/chevre/task/onAuthorizationCreated").IAttributes | import("@chevre/factory/lib/chevre/task/onEventChanged").IAttributes | import("@chevre/factory/lib/chevre/task/onResourceDeleted").IAttributes | import("@chevre/factory/lib/chevre/task/onResourceUpdated").IAttributes | import("@chevre/factory/lib/chevre/task/onOrderPaymentCompleted").IAttributes | import("@chevre/factory/lib/chevre/task/placeOrder").IAttributes | import("@chevre/factory/lib/chevre/task/returnOrder").IAttributes | import("@chevre/factory/lib/chevre/task/returnPayTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/returnReserveTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/sendEmailMessage").IAttributes | import("@chevre/factory/lib/chevre/task/sendOrder").IAttributes | import("@chevre/factory/lib/chevre/task/triggerWebhook").IAttributes | import("@chevre/factory/lib/chevre/task/useReservation").IAttributes | import("@chevre/factory/lib/chevre/task/voidPayTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/voidReserveTransaction").IAttributes)[];
|
|
11
11
|
export { createOnOrderCancelledTasksByTransaction };
|
package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts
CHANGED
|
@@ -18,5 +18,5 @@ declare function createInformTasks(params: {
|
|
|
18
18
|
}, setting: Pick<ISetting, 'onOrderStatusChanged'> | null): factory.task.IAttributes<factory.taskName.TriggerWebhook>[];
|
|
19
19
|
declare function createNextSendOrderTasks(params: {
|
|
20
20
|
order: IInTransitOrder;
|
|
21
|
-
}): (import("@chevre/factory/lib/chevre/task").ITaskAttributes | import("@chevre/factory/lib/chevre/task/confirmPayTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/confirmReserveTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/createAccountingReport").IAttributes | import("@chevre/factory/lib/chevre/task/
|
|
21
|
+
}): (import("@chevre/factory/lib/chevre/task").ITaskAttributes | import("@chevre/factory/lib/chevre/task/confirmPayTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/confirmReserveTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/createAccountingReport").IAttributes | import("@chevre/factory/lib/chevre/task/deleteTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/onAssetTransactionStatusChanged").IAttributes | import("@chevre/factory/lib/chevre/task/onAuthorizationCreated").IAttributes | import("@chevre/factory/lib/chevre/task/onEventChanged").IAttributes | import("@chevre/factory/lib/chevre/task/onResourceDeleted").IAttributes | import("@chevre/factory/lib/chevre/task/onResourceUpdated").IAttributes | import("@chevre/factory/lib/chevre/task/onOrderPaymentCompleted").IAttributes | import("@chevre/factory/lib/chevre/task/placeOrder").IAttributes | import("@chevre/factory/lib/chevre/task/returnOrder").IAttributes | import("@chevre/factory/lib/chevre/task/returnPayTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/returnReserveTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/sendEmailMessage").IAttributes | import("@chevre/factory/lib/chevre/task/sendOrder").IAttributes | import("@chevre/factory/lib/chevre/task/triggerWebhook").IAttributes | import("@chevre/factory/lib/chevre/task/useReservation").IAttributes | import("@chevre/factory/lib/chevre/task/voidPayTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/voidReserveTransaction").IAttributes)[];
|
|
22
22
|
export { createInformTasks, createNextSendOrderTasks, IInTransitOrder };
|
|
@@ -11,5 +11,5 @@ declare function createInformTasks(order: IReturnedOrder, returnOrderAction: IRe
|
|
|
11
11
|
declare function createOnOrderReturnedTasksByTransaction(params: {
|
|
12
12
|
order: Pick<factory.order.IOrder, 'project' | 'typeOf' | 'orderNumber' | 'customer' | 'price' | 'priceCurrency' | 'orderDate'>;
|
|
13
13
|
potentialActions?: factory.action.transfer.returnAction.order.IPotentialActions;
|
|
14
|
-
}): (import("@chevre/factory/lib/chevre/task").ITaskAttributes | import("@chevre/factory/lib/chevre/task/confirmPayTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/confirmReserveTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/createAccountingReport").IAttributes | import("@chevre/factory/lib/chevre/task/
|
|
14
|
+
}): (import("@chevre/factory/lib/chevre/task").ITaskAttributes | import("@chevre/factory/lib/chevre/task/confirmPayTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/confirmReserveTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/createAccountingReport").IAttributes | import("@chevre/factory/lib/chevre/task/deleteTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/onAssetTransactionStatusChanged").IAttributes | import("@chevre/factory/lib/chevre/task/onAuthorizationCreated").IAttributes | import("@chevre/factory/lib/chevre/task/onEventChanged").IAttributes | import("@chevre/factory/lib/chevre/task/onResourceDeleted").IAttributes | import("@chevre/factory/lib/chevre/task/onResourceUpdated").IAttributes | import("@chevre/factory/lib/chevre/task/onOrderPaymentCompleted").IAttributes | import("@chevre/factory/lib/chevre/task/placeOrder").IAttributes | import("@chevre/factory/lib/chevre/task/returnOrder").IAttributes | import("@chevre/factory/lib/chevre/task/returnPayTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/returnReserveTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/sendEmailMessage").IAttributes | import("@chevre/factory/lib/chevre/task/sendOrder").IAttributes | import("@chevre/factory/lib/chevre/task/triggerWebhook").IAttributes | import("@chevre/factory/lib/chevre/task/useReservation").IAttributes | import("@chevre/factory/lib/chevre/task/voidPayTransaction").IAttributes | import("@chevre/factory/lib/chevre/task/voidReserveTransaction").IAttributes)[];
|
|
15
15
|
export { createInformTasks, createOnOrderReturnedTasksByTransaction, IReturnAction };
|
|
@@ -38,14 +38,10 @@ const acceptedOffer_1 = require("../../repo/acceptedOffer");
|
|
|
38
38
|
const accountingReport_1 = require("../../repo/accountingReport");
|
|
39
39
|
const action_1 = require("../../repo/action");
|
|
40
40
|
const assetTransaction_1 = require("../../repo/assetTransaction");
|
|
41
|
-
const event_1 = require("../../repo/event");
|
|
42
41
|
const message_1 = require("../../repo/message");
|
|
43
42
|
const note_1 = require("../../repo/note");
|
|
44
43
|
const order_1 = require("../../repo/order");
|
|
45
|
-
const ownershipInfo_1 = require("../../repo/ownershipInfo");
|
|
46
44
|
const reservation_1 = require("../../repo/reservation");
|
|
47
|
-
const setting_1 = require("../../repo/setting");
|
|
48
|
-
const task_1 = require("../../repo/task");
|
|
49
45
|
const transaction_1 = require("../../repo/transaction");
|
|
50
46
|
const placeOrder_1 = require("../../repo/transaction/placeOrder");
|
|
51
47
|
const returnOrder_1 = require("../../repo/transaction/returnOrder");
|
|
@@ -60,14 +56,10 @@ function call(data) {
|
|
|
60
56
|
accountingReport: new accountingReport_1.AccountingReportRepo(connection),
|
|
61
57
|
action: new action_1.ActionRepo(connection),
|
|
62
58
|
assetTransaction: new assetTransaction_1.AssetTransactionRepo(connection),
|
|
63
|
-
event: new event_1.EventRepo(connection),
|
|
64
59
|
message: new message_1.MessageRepo(connection),
|
|
65
60
|
note: new note_1.NoteRepo(connection),
|
|
66
61
|
order: new order_1.OrderRepo(connection),
|
|
67
|
-
ownershipInfo: new ownershipInfo_1.OwnershipInfoRepo(connection),
|
|
68
62
|
reservation: new reservation_1.ReservationRepo(connection),
|
|
69
|
-
setting: new setting_1.SettingRepo(connection),
|
|
70
|
-
task: new task_1.TaskRepo(connection),
|
|
71
63
|
transaction: new transaction_1.TransactionRepo(connection),
|
|
72
64
|
placeOrder: new placeOrder_1.PlaceOrderRepo(connection),
|
|
73
65
|
returnOrder: new returnOrder_1.ReturnOrderRepo(connection),
|
|
@@ -54,7 +54,6 @@ function executeTask(task, next) {
|
|
|
54
54
|
case factory_1.factory.taskName.CheckMovieTicket:
|
|
55
55
|
case factory_1.factory.taskName.CheckResource:
|
|
56
56
|
case factory_1.factory.taskName.CreateAccountingReport:
|
|
57
|
-
case factory_1.factory.taskName.DeletePerson:
|
|
58
57
|
case factory_1.factory.taskName.HandleNotification:
|
|
59
58
|
case factory_1.factory.taskName.ImportEventCapacitiesFromCOA:
|
|
60
59
|
case factory_1.factory.taskName.ImportEventsFromCOA:
|
|
@@ -3,35 +3,29 @@ import type { AcceptedOfferRepo } from '../../repo/acceptedOffer';
|
|
|
3
3
|
import type { AccountingReportRepo } from '../../repo/accountingReport';
|
|
4
4
|
import type { ActionRepo } from '../../repo/action';
|
|
5
5
|
import type { AssetTransactionRepo } from '../../repo/assetTransaction';
|
|
6
|
-
import type { EventRepo } from '../../repo/event';
|
|
7
6
|
import type { MessageRepo } from '../../repo/message';
|
|
8
7
|
import type { NoteRepo } from '../../repo/note';
|
|
9
8
|
import type { OrderRepo } from '../../repo/order';
|
|
10
|
-
import type { OwnershipInfoRepo } from '../../repo/ownershipInfo';
|
|
11
9
|
import type { ReservationRepo } from '../../repo/reservation';
|
|
12
|
-
import type { SettingRepo } from '../../repo/setting';
|
|
13
|
-
import type { TaskRepo } from '../../repo/task';
|
|
14
10
|
import type { TransactionRepo } from '../../repo/transaction';
|
|
15
11
|
import type { PlaceOrderRepo } from '../../repo/transaction/placeOrder';
|
|
16
12
|
import type { ReturnOrderRepo } from '../../repo/transaction/returnOrder';
|
|
17
|
-
|
|
18
|
-
* 取引に関わるリソースを削除する
|
|
19
|
-
* 冪等性を確保すること
|
|
20
|
-
*/
|
|
21
|
-
export declare function deleteTransaction(params: factory.task.IData<factory.taskName.DeleteTransaction>): (repos: {
|
|
13
|
+
interface IDeleteTransactionRepos {
|
|
22
14
|
acceptedOffer: AcceptedOfferRepo;
|
|
23
15
|
accountingReport: AccountingReportRepo;
|
|
24
16
|
action: ActionRepo;
|
|
25
17
|
assetTransaction: AssetTransactionRepo;
|
|
26
|
-
event: EventRepo;
|
|
27
18
|
message: MessageRepo;
|
|
28
19
|
note: NoteRepo;
|
|
29
20
|
order: OrderRepo;
|
|
30
|
-
ownershipInfo: OwnershipInfoRepo;
|
|
31
21
|
reservation: ReservationRepo;
|
|
32
|
-
setting: SettingRepo;
|
|
33
|
-
task: TaskRepo;
|
|
34
22
|
transaction: TransactionRepo;
|
|
35
23
|
placeOrder: PlaceOrderRepo;
|
|
36
24
|
returnOrder: ReturnOrderRepo;
|
|
37
|
-
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 取引に関わるリソースを削除する
|
|
28
|
+
* 冪等性を確保すること
|
|
29
|
+
*/
|
|
30
|
+
export declare function deleteTransaction(params: factory.task.IData<factory.taskName.DeleteTransaction>): (repos: IDeleteTransactionRepos) => Promise<void>;
|
|
31
|
+
export {};
|
|
@@ -11,118 +11,15 @@ const deleteOrder_1 = require("../order/deleteOrder");
|
|
|
11
11
|
function deleteTransaction(params) {
|
|
12
12
|
return async (repos) => {
|
|
13
13
|
if (params.object.specifyingMethod === factory_1.factory.action.update.deleteAction.ObjectAsTransactionSpecifyingMethod.AgentId) {
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
throw new factory_1.factory.errors.NotImplemented('deleteTransaction by agentId discontinued'); // discontinue(2026-06-28~)
|
|
15
|
+
// // transaction.agent.id指定による取引削除に対応(2023-06-30~)
|
|
16
|
+
// await createDeleteTransactionTasksByAgentId(params)(repos);
|
|
16
17
|
}
|
|
17
18
|
else {
|
|
18
19
|
await deleteTransactionById(params)(repos);
|
|
19
20
|
}
|
|
20
21
|
};
|
|
21
22
|
}
|
|
22
|
-
function createDeleteTransactionTasksByAgentId(params) {
|
|
23
|
-
return async (repos) => {
|
|
24
|
-
if (params.object.specifyingMethod !== factory_1.factory.action.update.deleteAction.ObjectAsTransactionSpecifyingMethod.AgentId) {
|
|
25
|
-
throw new factory_1.factory.errors.Argument('object.specifyingMethod', `must be ${factory_1.factory.action.update.deleteAction.ObjectAsTransactionSpecifyingMethod.AgentId}`);
|
|
26
|
-
}
|
|
27
|
-
const agentIdSpecified = params.object.agent.id;
|
|
28
|
-
// agentIdによる全取引についてDeleteTransactionタスクを作成する
|
|
29
|
-
if (typeof agentIdSpecified === 'string' && agentIdSpecified.length > 0) {
|
|
30
|
-
const transactionTypeOf = params.object.typeOf;
|
|
31
|
-
let transactions;
|
|
32
|
-
if (transactionTypeOf === factory_1.factory.transactionType.PlaceOrder) {
|
|
33
|
-
transactions = await repos.placeOrder.findPlaceOrderTransactions({
|
|
34
|
-
project: { id: { $eq: params.object.project.id } },
|
|
35
|
-
agent: {
|
|
36
|
-
ids: [agentIdSpecified],
|
|
37
|
-
typeOf: factory_1.factory.personType.Person
|
|
38
|
-
},
|
|
39
|
-
typeOf: transactionTypeOf,
|
|
40
|
-
inclusion: ['typeOf', 'startDate', 'endDate', 'object', 'project']
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
else if (transactionTypeOf === factory_1.factory.transactionType.ReturnOrder) {
|
|
44
|
-
transactions = await repos.returnOrder.findReturnOrderTransactions({
|
|
45
|
-
project: { id: { $eq: params.object.project.id } },
|
|
46
|
-
agent: {
|
|
47
|
-
ids: [agentIdSpecified],
|
|
48
|
-
typeOf: factory_1.factory.personType.Person
|
|
49
|
-
},
|
|
50
|
-
typeOf: transactionTypeOf,
|
|
51
|
-
inclusion: ['typeOf', 'startDate', 'endDate', 'object', 'project']
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
throw new factory_1.factory.errors.NotImplemented(`${transactionTypeOf} not implemented`);
|
|
56
|
-
}
|
|
57
|
-
const deleteAt = new Date();
|
|
58
|
-
let deleteTransactionTasks;
|
|
59
|
-
switch (transactionTypeOf) {
|
|
60
|
-
case factory_1.factory.transactionType.PlaceOrder:
|
|
61
|
-
deleteTransactionTasks = transactions.map((transaction) => {
|
|
62
|
-
return {
|
|
63
|
-
project: transaction.project,
|
|
64
|
-
name: factory_1.factory.taskName.DeleteTransaction,
|
|
65
|
-
status: factory_1.factory.taskStatus.Ready,
|
|
66
|
-
runsAt: deleteAt,
|
|
67
|
-
remainingNumberOfTries: 3,
|
|
68
|
-
numberOfTried: 0,
|
|
69
|
-
executionResults: [],
|
|
70
|
-
data: {
|
|
71
|
-
object: {
|
|
72
|
-
specifyingMethod: factory_1.factory.action.update.deleteAction.ObjectAsTransactionSpecifyingMethod.Id,
|
|
73
|
-
id: transaction.id,
|
|
74
|
-
object: {
|
|
75
|
-
...(typeof transaction.object.confirmationNumber === 'string')
|
|
76
|
-
? { confirmationNumber: transaction.object.confirmationNumber }
|
|
77
|
-
: undefined,
|
|
78
|
-
...(typeof transaction.object.orderNumber === 'string')
|
|
79
|
-
? { orderNumber: transaction.object.orderNumber }
|
|
80
|
-
: undefined
|
|
81
|
-
},
|
|
82
|
-
project: transaction.project,
|
|
83
|
-
startDate: transaction.startDate,
|
|
84
|
-
typeOf: transaction.typeOf,
|
|
85
|
-
...(transaction.endDate !== undefined) ? { endDate: transaction.endDate } : undefined
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
});
|
|
90
|
-
break;
|
|
91
|
-
case factory_1.factory.transactionType.ReturnOrder:
|
|
92
|
-
deleteTransactionTasks = transactions.map((transaction) => {
|
|
93
|
-
return {
|
|
94
|
-
project: transaction.project,
|
|
95
|
-
name: factory_1.factory.taskName.DeleteTransaction,
|
|
96
|
-
status: factory_1.factory.taskStatus.Ready,
|
|
97
|
-
runsAt: deleteAt,
|
|
98
|
-
remainingNumberOfTries: 3,
|
|
99
|
-
numberOfTried: 0,
|
|
100
|
-
executionResults: [],
|
|
101
|
-
data: {
|
|
102
|
-
object: {
|
|
103
|
-
specifyingMethod: factory_1.factory.action.update.deleteAction.ObjectAsTransactionSpecifyingMethod.Id,
|
|
104
|
-
id: transaction.id,
|
|
105
|
-
object: {
|
|
106
|
-
order: transaction.object.order
|
|
107
|
-
},
|
|
108
|
-
project: transaction.project,
|
|
109
|
-
startDate: transaction.startDate,
|
|
110
|
-
typeOf: transaction.typeOf,
|
|
111
|
-
...(transaction.endDate !== undefined) ? { endDate: transaction.endDate } : undefined
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
});
|
|
116
|
-
break;
|
|
117
|
-
default:
|
|
118
|
-
throw new factory_1.factory.errors.NotImplemented(`${transactionTypeOf} not implemented`);
|
|
119
|
-
}
|
|
120
|
-
if (deleteTransactionTasks.length > 0) {
|
|
121
|
-
await repos.task.saveMany(deleteTransactionTasks, { emitImmediately: true });
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
23
|
function deleteTransactionById(params) {
|
|
127
24
|
return async (repos) => {
|
|
128
25
|
if (typeof params.object.specifyingMethod === 'string'
|
|
@@ -133,7 +30,7 @@ function deleteTransactionById(params) {
|
|
|
133
30
|
if (typeof deletingTransactionId !== 'string' || deletingTransactionId.length === 0) {
|
|
134
31
|
throw new factory_1.factory.errors.ArgumentNull('object.id');
|
|
135
32
|
}
|
|
136
|
-
let deletingOrderNumberByTask;
|
|
33
|
+
// let deletingOrderNumberByTask: string | undefined;
|
|
137
34
|
let transaction;
|
|
138
35
|
if (params.object.typeOf === factory_1.factory.transactionType.PlaceOrder) {
|
|
139
36
|
transaction = (await repos.placeOrder.findPlaceOrderTransactions({
|
|
@@ -141,7 +38,7 @@ function deleteTransactionById(params) {
|
|
|
141
38
|
typeOf: params.object.typeOf,
|
|
142
39
|
inclusion: ['typeOf', 'project', 'status']
|
|
143
40
|
})).shift();
|
|
144
|
-
deletingOrderNumberByTask = params.object.object.orderNumber;
|
|
41
|
+
// deletingOrderNumberByTask = params.object.object.orderNumber;
|
|
145
42
|
}
|
|
146
43
|
else if (params.object.typeOf === factory_1.factory.transactionType.ReturnOrder) {
|
|
147
44
|
transaction = (await repos.returnOrder.findReturnOrderTransactions({
|
|
@@ -191,18 +88,15 @@ function deleteTransactionById(params) {
|
|
|
191
88
|
case factory_1.factory.transactionStatusType.Expired:
|
|
192
89
|
break;
|
|
193
90
|
case factory_1.factory.transactionStatusType.Confirmed: {
|
|
194
|
-
//
|
|
195
|
-
//
|
|
196
|
-
// if (typeof deletingOrder?.orderNumber === 'string') {
|
|
91
|
+
// identifierによる削除に変更(2026-06-28~)
|
|
92
|
+
// if (typeof deletingOrderNumberByTask === 'string') {
|
|
197
93
|
// await deleteOrder({
|
|
198
|
-
// object:
|
|
94
|
+
// object: { orderNumber: deletingOrderNumberByTask }
|
|
199
95
|
// })(repos);
|
|
200
96
|
// }
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
})(repos);
|
|
205
|
-
}
|
|
97
|
+
await (0, deleteOrder_1.deleteOrder)({
|
|
98
|
+
object: { identifier: transaction.id }
|
|
99
|
+
})(repos);
|
|
206
100
|
break;
|
|
207
101
|
}
|
|
208
102
|
default:
|
|
@@ -177,7 +177,10 @@ function confirm(params, options) {
|
|
|
177
177
|
await repos.placeOrder.confirmPlaceOrder({
|
|
178
178
|
typeOf: transaction.typeOf,
|
|
179
179
|
id: transaction.id,
|
|
180
|
-
object: {
|
|
180
|
+
object: {
|
|
181
|
+
orderDate: params.result.order.orderDate,
|
|
182
|
+
orderNumber
|
|
183
|
+
},
|
|
181
184
|
result: result,
|
|
182
185
|
potentialActions: potentialActions
|
|
183
186
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { OrderInTransactionRepo } from '../../../repo/orderInTransaction';
|
|
1
|
+
import type { OrderInTransactionRepo, IOrderInTransaction } from '../../../repo/orderInTransaction';
|
|
2
2
|
import type { OrderNumberRepo } from '../../../repo/orderNumber';
|
|
3
3
|
import type { ProjectRepo } from '../../../repo/project';
|
|
4
4
|
import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
|
|
@@ -16,6 +16,9 @@ declare function issueOrderNumberIfNotExist(params: {
|
|
|
16
16
|
object: {
|
|
17
17
|
orderDate: Date;
|
|
18
18
|
};
|
|
19
|
+
creatingOrderInTransaction: Pick<IOrderInTransaction, 'broker' | 'seller' | 'customer'>;
|
|
20
|
+
}, options: {
|
|
21
|
+
saveOrderNumberInPlaceOrderInProgress: boolean;
|
|
19
22
|
}): (repos: {
|
|
20
23
|
project: ProjectRepo;
|
|
21
24
|
placeOrder: PlaceOrderRepo;
|