@chevre/domain 21.2.0-alpha.51 → 21.2.0-alpha.52
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.
|
@@ -121,6 +121,7 @@ exports.exportTasks = exportTasks;
|
|
|
121
121
|
*/
|
|
122
122
|
// tslint:disable-next-line:max-func-body-length
|
|
123
123
|
function deleteTransaction(params) {
|
|
124
|
+
// tslint:disable-next-line:max-func-body-length
|
|
124
125
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
125
126
|
const transactions = yield repos.transaction.search({
|
|
126
127
|
ids: [params.object.id],
|
|
@@ -137,9 +138,11 @@ function deleteTransaction(params) {
|
|
|
137
138
|
const actionAttributes = {
|
|
138
139
|
typeOf: factory.actionType.DeleteAction,
|
|
139
140
|
project: transaction.project,
|
|
140
|
-
object:
|
|
141
|
+
object: params.object,
|
|
141
142
|
agent: transaction.project
|
|
142
143
|
};
|
|
144
|
+
let deletePayTransactionResult;
|
|
145
|
+
let payTransactionNumbers = [];
|
|
143
146
|
let deleteReservationsResult;
|
|
144
147
|
let deleteReserveTransactionResult;
|
|
145
148
|
let deletedReservationNumbers = [];
|
|
@@ -154,13 +157,15 @@ function deleteTransaction(params) {
|
|
|
154
157
|
case factory.transactionStatusType.Expired:
|
|
155
158
|
// tslint:disable-next-line:no-suspicious-comment
|
|
156
159
|
// TODO サービス登録取引を削除
|
|
157
|
-
//
|
|
158
|
-
|
|
160
|
+
// 決済取引を削除
|
|
161
|
+
const deletePayTransactionsByPlaceOrderResult = yield deletePayTransactionsByPlaceOrder({ transaction })(repos);
|
|
162
|
+
deletePayTransactionResult = deletePayTransactionsByPlaceOrderResult.deletePayTransactionResult;
|
|
163
|
+
payTransactionNumbers = deletePayTransactionsByPlaceOrderResult.payTransactionNumbers;
|
|
159
164
|
// 取引上での予約を削除
|
|
160
|
-
const
|
|
161
|
-
deleteReservationsResult =
|
|
162
|
-
deleteReserveTransactionResult =
|
|
163
|
-
deletedReservationNumbers =
|
|
165
|
+
const deleteReservationsByPlaceOrderResult = yield deleteReservationsByPlaceOrder({ transaction })(repos);
|
|
166
|
+
deleteReservationsResult = deleteReservationsByPlaceOrderResult.deleteResult;
|
|
167
|
+
deleteReserveTransactionResult = deleteReservationsByPlaceOrderResult.deleteReserveTransactionResult;
|
|
168
|
+
deletedReservationNumbers = deleteReservationsByPlaceOrderResult.reserveTransactionNumbers;
|
|
164
169
|
break;
|
|
165
170
|
case factory.transactionStatusType.Confirmed:
|
|
166
171
|
// no op
|
|
@@ -169,8 +174,6 @@ function deleteTransaction(params) {
|
|
|
169
174
|
}
|
|
170
175
|
// 取引削除
|
|
171
176
|
yield repos.transaction.findByIdAndDelete({ id: transaction.id });
|
|
172
|
-
// await repos.transaction.transactionModel.findByIdAndDelete(transaction.id)
|
|
173
|
-
// .exec();
|
|
174
177
|
break;
|
|
175
178
|
// implemented(2022-06-09~)
|
|
176
179
|
case factory.transactionType.ReturnOrder:
|
|
@@ -199,6 +202,8 @@ function deleteTransaction(params) {
|
|
|
199
202
|
}
|
|
200
203
|
// アクション完了
|
|
201
204
|
const actionResult = {
|
|
205
|
+
deletePayTransactionResult,
|
|
206
|
+
payTransactionNumbers,
|
|
202
207
|
deleteReservationsResult,
|
|
203
208
|
deleteReserveTransactionResult,
|
|
204
209
|
deletedReservationNumbers
|
|
@@ -207,7 +212,7 @@ function deleteTransaction(params) {
|
|
|
207
212
|
});
|
|
208
213
|
}
|
|
209
214
|
exports.deleteTransaction = deleteTransaction;
|
|
210
|
-
function
|
|
215
|
+
function deleteReservationsByPlaceOrder(params) {
|
|
211
216
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
212
217
|
let deleteResult;
|
|
213
218
|
let deleteReserveTransactionResult;
|
|
@@ -256,3 +261,40 @@ function deleteReservationsByTransaction(params) {
|
|
|
256
261
|
return { deleteResult, deleteReserveTransactionResult, reserveTransactionNumbers };
|
|
257
262
|
});
|
|
258
263
|
}
|
|
264
|
+
function deletePayTransactionsByPlaceOrder(params) {
|
|
265
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
266
|
+
let deletePayTransactionResult;
|
|
267
|
+
// 取引に対する全ての承認アクションを検索
|
|
268
|
+
const authorizeActions = yield repos.action.searchByPurpose({
|
|
269
|
+
typeOf: factory.actionType.AuthorizeAction,
|
|
270
|
+
purpose: {
|
|
271
|
+
typeOf: factory.transactionType.PlaceOrder,
|
|
272
|
+
id: params.transaction.id
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
// 決済取引番号を抽出
|
|
276
|
+
const authorizePaymentActions = authorizeActions
|
|
277
|
+
.filter((a) => {
|
|
278
|
+
var _a;
|
|
279
|
+
const pendingTransactionNumber = (_a = a.object) === null || _a === void 0 ? void 0 : _a.paymentMethodId;
|
|
280
|
+
return a.object.typeOf === factory.action.authorize.paymentMethod.any.ResultType.Payment
|
|
281
|
+
&& typeof pendingTransactionNumber === 'string'
|
|
282
|
+
&& pendingTransactionNumber.length > 0;
|
|
283
|
+
});
|
|
284
|
+
const payTransactionNumbers = authorizePaymentActions.map((a) => String(a.object.paymentMethodId));
|
|
285
|
+
if (payTransactionNumbers.length > 0) {
|
|
286
|
+
// 決済取引を削除(プロジェクトでも絞ること)(2022-06-07~)
|
|
287
|
+
const deleteAssetTransactionsResult = yield repos.assetTransaction.deleteByTransactionNumber({
|
|
288
|
+
project: { id: params.transaction.project.id },
|
|
289
|
+
transactionNumbers: payTransactionNumbers,
|
|
290
|
+
typeOf: factory.assetTransactionType.Pay
|
|
291
|
+
});
|
|
292
|
+
deletePayTransactionResult = {
|
|
293
|
+
n: deleteAssetTransactionsResult === null || deleteAssetTransactionsResult === void 0 ? void 0 : deleteAssetTransactionsResult.n,
|
|
294
|
+
ok: deleteAssetTransactionsResult === null || deleteAssetTransactionsResult === void 0 ? void 0 : deleteAssetTransactionsResult.ok,
|
|
295
|
+
deletedCount: deleteAssetTransactionsResult === null || deleteAssetTransactionsResult === void 0 ? void 0 : deleteAssetTransactionsResult.deletedCount
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
return { deletePayTransactionResult, payTransactionNumbers };
|
|
299
|
+
});
|
|
300
|
+
}
|
package/package.json
CHANGED