@things-factory/sales-base 4.3.46 → 4.3.50
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/dist-server/constants/order.js +2 -1
- package/dist-server/constants/order.js.map +1 -1
- package/dist-server/controllers/ecommerce/sellercraft-controller.js +102 -94
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
- package/dist-server/service/arrival-notice/arrival-notice-mutation.js +93 -21
- package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
- package/dist-server/service/draft-release-good/draft-release-good.js +5 -0
- package/dist-server/service/draft-release-good/draft-release-good.js.map +1 -1
- package/dist-server/service/manifest/manifest-mutation.js +78 -1
- package/dist-server/service/manifest/manifest-mutation.js.map +1 -1
- package/dist-server/service/manifest/manifest-query.js +47 -12
- package/dist-server/service/manifest/manifest-query.js.map +1 -1
- package/dist-server/service/manifest/manifest-type.js +8 -0
- package/dist-server/service/manifest/manifest-type.js.map +1 -1
- package/dist-server/service/manifest/manifest.js +5 -0
- package/dist-server/service/manifest/manifest.js.map +1 -1
- package/dist-server/service/purchase-order/purchase-order-mutation.js +8 -4
- package/dist-server/service/purchase-order/purchase-order-mutation.js.map +1 -1
- package/dist-server/service/release-good/release-good-mutation.js +2 -16
- package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
- package/dist-server/service/release-good/release-good-query.js +70 -58
- package/dist-server/service/release-good/release-good-query.js.map +1 -1
- package/package.json +13 -13
- package/server/constants/order.ts +2 -1
- package/server/controllers/ecommerce/sellercraft-controller.ts +124 -107
- package/server/service/arrival-notice/arrival-notice-mutation.ts +110 -22
- package/server/service/draft-release-good/draft-release-good.ts +7 -3
- package/server/service/manifest/manifest-mutation.ts +78 -3
- package/server/service/manifest/manifest-query.ts +68 -18
- package/server/service/manifest/manifest-type.ts +6 -0
- package/server/service/manifest/manifest.ts +6 -2
- package/server/service/purchase-order/purchase-order-mutation.ts +10 -5
- package/server/service/release-good/release-good-mutation.ts +23 -30
- package/server/service/release-good/release-good-query.ts +81 -65
- package/translations/en.json +4 -0
- package/translations/ko.json +6 -2
- package/translations/ms.json +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../server/constants/order.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,iBAAiB,EAAE,mBAAmB;IACtC,gBAAgB,EAAE,kBAAkB;IACpC,OAAO,EAAE,SAAS;IAClB,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,YAAY,EAAE,cAAc;IAC5B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,WAAW;IACtB,cAAc,EAAE,gBAAgB;IAChC,IAAI,EAAE,MAAM;IACZ,cAAc,EAAE,gBAAgB;IAChC,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,gBAAgB,EAAE,kBAAkB;CACrC,CAAA;AAEY,QAAA,mBAAmB,GAAG;IACjC,iBAAiB,EAAE,mBAAmB;IACtC,UAAU,EAAE,YAAY;CACzB,CAAA;AAEY,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../server/constants/order.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,109 +11,117 @@ const release_good_1 = require("../../service/release-good/release-good");
|
|
|
11
11
|
const order_controller_1 = require("../order-controller");
|
|
12
12
|
class SellercraftController extends order_controller_1.OrderController {
|
|
13
13
|
async packOrder(sellercraft, releaseGood) {
|
|
14
|
-
|
|
15
|
-
let
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
let sellercraftSetting = sellercraft.sellercraftSetting;
|
|
15
|
+
let disablePackOrder = (sellercraftSetting === null || sellercraftSetting === void 0 ? void 0 : sellercraftSetting.disablePackOrder) && (sellercraftSetting === null || sellercraftSetting === void 0 ? void 0 : sellercraftSetting.disablePackOrder) == 1 ? true : false;
|
|
16
|
+
if (!disablePackOrder) {
|
|
17
|
+
const orderProducts = releaseGood.orderProducts;
|
|
18
|
+
let sellercraftOPs = [];
|
|
19
|
+
sellercraftOPs = orderProducts.map(orderProduct => {
|
|
20
|
+
const product = orderProduct.product;
|
|
21
|
+
return {
|
|
22
|
+
sku: product.sku,
|
|
23
|
+
releaseQty: orderProduct.releaseQty,
|
|
24
|
+
uom: 'EA'
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
const orderInformation = {
|
|
28
|
+
accountId: sellercraft.accountId,
|
|
29
|
+
orderId: releaseGood.refNo2,
|
|
30
|
+
sellercraftOPs
|
|
22
31
|
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
sellercraftOPs
|
|
28
|
-
};
|
|
29
|
-
const packageId = await integration_sellercraft_1.SellercraftAPI.packMarketplaceOrder(sellercraft, Object.assign(Object.assign({}, orderInformation), { context: { state: { domain: this === null || this === void 0 ? void 0 : this.domain, user: this === null || this === void 0 ? void 0 : this.user } } }));
|
|
30
|
-
releaseGood.packageId = packageId;
|
|
31
|
-
releaseGood.updater = this.user;
|
|
32
|
+
const packageId = await integration_sellercraft_1.SellercraftAPI.packMarketplaceOrder(sellercraft, Object.assign(Object.assign({}, orderInformation), { context: { state: { domain: this === null || this === void 0 ? void 0 : this.domain, user: this === null || this === void 0 ? void 0 : this.user } } }));
|
|
33
|
+
releaseGood.packageId = packageId;
|
|
34
|
+
releaseGood.updater = this.user;
|
|
35
|
+
}
|
|
32
36
|
return releaseGood;
|
|
33
37
|
}
|
|
34
38
|
async updateSellercraftStock(sellercraft, orderProducts, type) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
let sellercraftSetting = sellercraft.sellercraftSetting;
|
|
40
|
+
let disableUpdateStock = (sellercraftSetting === null || sellercraftSetting === void 0 ? void 0 : sellercraftSetting.disableUpdateStock) && (sellercraftSetting === null || sellercraftSetting === void 0 ? void 0 : sellercraftSetting.disableUpdateStock) == 1 ? true : false;
|
|
41
|
+
if (!disableUpdateStock) {
|
|
42
|
+
for (var i = 0; i < orderProducts.length; i++) {
|
|
43
|
+
const orderProduct = orderProducts[i];
|
|
44
|
+
const product = orderProduct.product;
|
|
45
|
+
const pendingAssignOPs = await this.trxMgr.getRepository(order_product_1.OrderProduct).find({
|
|
46
|
+
where: {
|
|
47
|
+
domain: this.domain,
|
|
48
|
+
bizplace: orderProduct.bizplace,
|
|
49
|
+
product,
|
|
50
|
+
status: constants_1.ORDER_PRODUCT_STATUS.PENDING_ASSIGN
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
const productDetails = product.productDetails;
|
|
54
|
+
let totalUnassignReleaseQty = 0;
|
|
55
|
+
if (pendingAssignOPs === null || pendingAssignOPs === void 0 ? void 0 : pendingAssignOPs.length) {
|
|
56
|
+
totalUnassignReleaseQty = pendingAssignOPs.reduce((total, currentValue) => {
|
|
57
|
+
total += currentValue.releaseQty;
|
|
58
|
+
return total;
|
|
59
|
+
}, 0);
|
|
44
60
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
61
|
+
let qb = await this.trxMgr.getRepository(warehouse_base_1.Inventory).createQueryBuilder('inv');
|
|
62
|
+
qb.leftJoinAndSelect('inv.location', 'loc')
|
|
63
|
+
.andWhere('"inv"."domain_id" = :domainId')
|
|
64
|
+
.andWhere('"inv"."product_id" = :productId')
|
|
65
|
+
.andWhere('"inv"."bizplace_id" = :bizplaceId')
|
|
66
|
+
.andWhere('"inv"."status" = :status')
|
|
67
|
+
.andWhere('"loc"."type" NOT IN (:...locationTypes)')
|
|
68
|
+
.setParameters({
|
|
69
|
+
domainId: this.domain.id,
|
|
70
|
+
productId: product.id,
|
|
71
|
+
bizplaceId: orderProduct.bizplace.id,
|
|
72
|
+
status: warehouse_base_1.INVENTORY_STATUS.STORED,
|
|
73
|
+
locationTypes: [warehouse_base_1.LOCATION_TYPE.QUARANTINE, warehouse_base_1.LOCATION_TYPE.RESERVE]
|
|
74
|
+
});
|
|
75
|
+
let inventories = await qb.getMany();
|
|
76
|
+
let defaultProductDetail;
|
|
77
|
+
const sellercraftInvs = await Promise.all(inventories.map(async (inventory) => {
|
|
78
|
+
const inventoryPackingType = inventory.packingType;
|
|
79
|
+
defaultProductDetail = product.productDetails.find(productDetail => productDetail.isDefault);
|
|
80
|
+
let packingSize = 1;
|
|
81
|
+
if (inventoryPackingType !== defaultProductDetail.packingType) {
|
|
82
|
+
const unmatchingProductDetail = product.productDetails.find(productDetail => productDetail.packingType === inventoryPackingType);
|
|
83
|
+
packingSize = await this.getChildPackingSize(productDetails, defaultProductDetail, unmatchingProductDetail);
|
|
84
|
+
if (packingSize == 0)
|
|
85
|
+
packingSize = 1;
|
|
86
|
+
}
|
|
87
|
+
return { totalQty: inventory.qty * packingSize, totalLockedQty: inventory.lockedQty * packingSize };
|
|
88
|
+
}));
|
|
89
|
+
let inventoryTotalQty = sellercraftInvs.reduce((total, currentValue) => {
|
|
90
|
+
total += currentValue.totalQty;
|
|
51
91
|
return total;
|
|
52
92
|
}, 0);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
.setParameters({
|
|
62
|
-
domainId: this.domain.id,
|
|
63
|
-
productId: product.id,
|
|
64
|
-
bizplaceId: orderProduct.bizplace.id,
|
|
65
|
-
status: warehouse_base_1.INVENTORY_STATUS.STORED,
|
|
66
|
-
locationTypes: [warehouse_base_1.LOCATION_TYPE.QUARANTINE, warehouse_base_1.LOCATION_TYPE.RESERVE]
|
|
67
|
-
});
|
|
68
|
-
let inventories = await qb.getMany();
|
|
69
|
-
let defaultProductDetail;
|
|
70
|
-
const sellercraftInvs = await Promise.all(inventories.map(async (inventory) => {
|
|
71
|
-
const inventoryPackingType = inventory.packingType;
|
|
72
|
-
defaultProductDetail = product.productDetails.find(productDetail => productDetail.isDefault);
|
|
73
|
-
let packingSize = 1;
|
|
74
|
-
if (inventoryPackingType !== defaultProductDetail.packingType) {
|
|
75
|
-
const unmatchingProductDetail = product.productDetails.find(productDetail => productDetail.packingType === inventoryPackingType);
|
|
76
|
-
packingSize = await this.getChildPackingSize(productDetails, defaultProductDetail, unmatchingProductDetail);
|
|
77
|
-
if (packingSize == 0)
|
|
78
|
-
packingSize = 1;
|
|
93
|
+
let inventoryTotalLockedQty = sellercraftInvs.reduce((total, currentValue) => {
|
|
94
|
+
total += currentValue.totalLockedQty;
|
|
95
|
+
return total;
|
|
96
|
+
}, 0);
|
|
97
|
+
switch (type) {
|
|
98
|
+
case 'CONFIRM_ORDER':
|
|
99
|
+
inventoryTotalQty -= totalUnassignReleaseQty;
|
|
100
|
+
break;
|
|
79
101
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
const sellercraftInv = [
|
|
96
|
-
{
|
|
97
|
-
sku: product.sku,
|
|
98
|
-
gtin: defaultProductDetail.gtin,
|
|
99
|
-
stock: {
|
|
100
|
-
quantity_total: inventoryTotalQty,
|
|
101
|
-
quantity_reserved: inventoryTotalLockedQty,
|
|
102
|
-
unit_of_measure: 'EA'
|
|
103
|
-
},
|
|
104
|
-
package_weight_gm: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,
|
|
105
|
-
package_dimensions: {
|
|
106
|
-
length_mm: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,
|
|
107
|
-
width_mm: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,
|
|
108
|
-
height_mm: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height
|
|
102
|
+
const sellercraftInv = [
|
|
103
|
+
{
|
|
104
|
+
sku: product.sku,
|
|
105
|
+
gtin: defaultProductDetail.gtin,
|
|
106
|
+
stock: {
|
|
107
|
+
quantity_total: inventoryTotalQty,
|
|
108
|
+
quantity_reserved: inventoryTotalLockedQty,
|
|
109
|
+
unit_of_measure: 'EA'
|
|
110
|
+
},
|
|
111
|
+
package_weight_gm: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,
|
|
112
|
+
package_dimensions: {
|
|
113
|
+
length_mm: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,
|
|
114
|
+
width_mm: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,
|
|
115
|
+
height_mm: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height
|
|
116
|
+
}
|
|
109
117
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}
|
|
118
|
+
];
|
|
119
|
+
await integration_sellercraft_1.SellercraftAPI.updateProduct(sellercraft, {
|
|
120
|
+
context: { state: { domain: this === null || this === void 0 ? void 0 : this.domain, user: this === null || this === void 0 ? void 0 : this.user } },
|
|
121
|
+
accountId: sellercraft.accountId,
|
|
122
|
+
sellercraftInv
|
|
123
|
+
});
|
|
124
|
+
}
|
|
117
125
|
}
|
|
118
126
|
}
|
|
119
127
|
async checkExistingReleaseGood(sellercraft, releaseGood) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sellercraft-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/sellercraft-controller.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,qFAAqF;AAErF,iDAA8C;AAC9C,mEAA2F;AAE3F,+CAAsD;AACtD,6EAAwE;AACxE,0EAAqE;AACrE,0DAAqD;AAErD,MAAa,qBAAsB,SAAQ,kCAAe;IACxD,KAAK,CAAC,SAAS,CAAC,WAAwB,EAAE,WAAwB;QAChE,MAAM,aAAa,GAAmB,WAAW,CAAC,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"sellercraft-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/sellercraft-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,7 +48,7 @@ let ArrivalNoticeMutation = class ArrivalNoticeMutation {
|
|
|
48
48
|
}
|
|
49
49
|
async generateArrivalNotice(context, arrivalNotice, files) {
|
|
50
50
|
const { tx } = context.state;
|
|
51
|
-
const createdArrivalNotice = await generateArrivalNoticeFunction(null, arrivalNotice, files, context, tx);
|
|
51
|
+
const createdArrivalNotice = await generateArrivalNoticeFunction(null, arrivalNotice, false, files, context, tx);
|
|
52
52
|
return createdArrivalNotice;
|
|
53
53
|
}
|
|
54
54
|
async confirmArrivalNotice(name, context) {
|
|
@@ -125,7 +125,7 @@ let ArrivalNoticeMutation = class ArrivalNoticeMutation {
|
|
|
125
125
|
}
|
|
126
126
|
async addArrivalNotice(context, arrivalNotice, file) {
|
|
127
127
|
const { tx } = context.state;
|
|
128
|
-
const createdGAN = await generateArrivalNoticeFunction(null, arrivalNotice, file, context, tx);
|
|
128
|
+
const createdGAN = await generateArrivalNoticeFunction(null, arrivalNotice, false, file, context, tx);
|
|
129
129
|
debug('createdGAN', createdGAN);
|
|
130
130
|
const confirmedGAN = await confirmArrivalNoticeFunction(createdGAN.name, context, tx);
|
|
131
131
|
debug('confirmedGAN', confirmedGAN);
|
|
@@ -142,10 +142,14 @@ let ArrivalNoticeMutation = class ArrivalNoticeMutation {
|
|
|
142
142
|
await tx.getRepository(arrival_notice_1.ArrivalNotice).update(existingArrivalNotice.id, arrivalNotice);
|
|
143
143
|
return await tx.getRepository(arrival_notice_1.ArrivalNotice).findOne(existingArrivalNotice.id);
|
|
144
144
|
}
|
|
145
|
-
async bulkGenerateArrivalNotices(context, rawArrivalNotices, bizplaceId) {
|
|
145
|
+
async bulkGenerateArrivalNotices(context, rawArrivalNotices, bizplaceId, bufferLocation) {
|
|
146
146
|
const { domain, user, tx } = context.state;
|
|
147
147
|
let createdArrivalNoticeIds = [], createdOrderProductIds = [], errorsCaught = [], finalArrivalNoticeList = [];
|
|
148
|
-
|
|
148
|
+
let opStatus = constants_1.ORDER_PRODUCT_STATUS.PENDING_RECEIVE;
|
|
149
|
+
let anStatus = constants_1.ORDER_STATUS.PENDING_RECEIVE;
|
|
150
|
+
const foundBizplace = await tx
|
|
151
|
+
.getRepository(biz_base_1.Bizplace)
|
|
152
|
+
.findOne({ where: { id: bizplaceId }, relations: ['domain'] });
|
|
149
153
|
if (!foundBizplace)
|
|
150
154
|
throw new Error('company not found');
|
|
151
155
|
// to check whether the raw data are valid
|
|
@@ -157,6 +161,23 @@ let ArrivalNoticeMutation = class ArrivalNoticeMutation {
|
|
|
157
161
|
name: constants_1.ORDER_NUMBER_SETTING_KEY.GAN_NUMBER_RULE
|
|
158
162
|
}
|
|
159
163
|
});
|
|
164
|
+
const ganProcessingSetting = await tx.getRepository(setting_base_1.Setting).findOne({
|
|
165
|
+
where: { domain, category: 'id-rule', name: 'gan-order-processing' }
|
|
166
|
+
});
|
|
167
|
+
const partnerGanProcessingSetting = await tx.getRepository(setting_base_1.PartnerSetting).findOne({
|
|
168
|
+
where: { setting: ganProcessingSetting, domain, partnerDomain: foundBizplace.domain.id }
|
|
169
|
+
});
|
|
170
|
+
// If status of GAN is PENDING_RECEIVE then directly to assign warehouse
|
|
171
|
+
if (ganProcessingSetting) {
|
|
172
|
+
let setting = !isNaN(partnerGanProcessingSetting === null || partnerGanProcessingSetting === void 0 ? void 0 : partnerGanProcessingSetting.value)
|
|
173
|
+
? partnerGanProcessingSetting === null || partnerGanProcessingSetting === void 0 ? void 0 : partnerGanProcessingSetting.value
|
|
174
|
+
: ganProcessingSetting.value;
|
|
175
|
+
// CONFIRM to assign if setting value is 1
|
|
176
|
+
if (setting == 1) {
|
|
177
|
+
opStatus = constants_1.ORDER_PRODUCT_STATUS.ARRIVED;
|
|
178
|
+
anStatus = constants_1.ORDER_STATUS.ARRIVED;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
160
181
|
// extract rawArrivalNotices data into normal ArrivalNotice format
|
|
161
182
|
let arrivalNotices = extractArrivalNotices(validatedArrivalNotices);
|
|
162
183
|
for (let i = 0, l = arrivalNotices.length; i < l; i++) {
|
|
@@ -208,11 +229,11 @@ let ArrivalNoticeMutation = class ArrivalNoticeMutation {
|
|
|
208
229
|
// update arrivalNotices status to PENDING_RECEIVE
|
|
209
230
|
await childTx
|
|
210
231
|
.getRepository(arrival_notice_1.ArrivalNotice)
|
|
211
|
-
.update({ id: (0, typeorm_1.In)(createdArrivalNoticeIds) }, { status:
|
|
232
|
+
.update({ id: (0, typeorm_1.In)(createdArrivalNoticeIds) }, { status: anStatus, updater: user });
|
|
212
233
|
// update orderProducts status to PENDING_RECEIVE
|
|
213
234
|
await childTx
|
|
214
235
|
.getRepository(order_product_1.OrderProduct)
|
|
215
|
-
.update({ id: (0, typeorm_1.In)(createdOrderProductIds) }, { status:
|
|
236
|
+
.update({ id: (0, typeorm_1.In)(createdOrderProductIds) }, { status: opStatus, updater: user });
|
|
216
237
|
finalArrivalNoticeList = await childTx.getRepository(arrival_notice_1.ArrivalNotice).find({
|
|
217
238
|
where: { id: (0, typeorm_1.In)(createdArrivalNoticeIds) },
|
|
218
239
|
relations: ['orderProducts', 'orderProducts.product', 'bizplace']
|
|
@@ -329,8 +350,9 @@ __decorate([
|
|
|
329
350
|
__param(0, (0, type_graphql_1.Ctx)()),
|
|
330
351
|
__param(1, (0, type_graphql_1.Arg)('rawArrivalNotices', type => [arrival_notice_types_1.NewArrivalNotice], { nullable: true })),
|
|
331
352
|
__param(2, (0, type_graphql_1.Arg)('bizplaceId', type => String)),
|
|
353
|
+
__param(3, (0, type_graphql_1.Arg)('bufferLocation', type => String, { nullable: true })),
|
|
332
354
|
__metadata("design:type", Function),
|
|
333
|
-
__metadata("design:paramtypes", [Object, Array, String]),
|
|
355
|
+
__metadata("design:paramtypes", [Object, Array, String, String]),
|
|
334
356
|
__metadata("design:returntype", Promise)
|
|
335
357
|
], ArrivalNoticeMutation.prototype, "bulkGenerateArrivalNotices", null);
|
|
336
358
|
ArrivalNoticeMutation = __decorate([
|
|
@@ -381,7 +403,7 @@ async function deleteArrivalNotice(tx, name, user, domain) {
|
|
|
381
403
|
return true;
|
|
382
404
|
}
|
|
383
405
|
exports.deleteArrivalNotice = deleteArrivalNotice;
|
|
384
|
-
async function generateArrivalNoticeFunction(_, arrivalNotice, files, context, tx) {
|
|
406
|
+
async function generateArrivalNoticeFunction(_, arrivalNotice, fromPo, files, context, tx) {
|
|
385
407
|
const { domain, user } = context.state;
|
|
386
408
|
let orderProducts = arrivalNotice.orderProducts;
|
|
387
409
|
let orderVass = arrivalNotice.orderVass;
|
|
@@ -422,10 +444,10 @@ async function generateArrivalNoticeFunction(_, arrivalNotice, files, context, t
|
|
|
422
444
|
orderNo = order_no_generator_1.OrderNoGenerator.arrivalNotice();
|
|
423
445
|
}
|
|
424
446
|
// 1. Create arrival notice
|
|
425
|
-
const createdArrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).save(Object.assign(Object.assign({}, arrivalNotice), { name: orderNo, domain, bizplace: myBizplace, looseItem: (arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.looseItem) ? arrivalNotice.looseItem : false, status: constants_1.ORDER_STATUS.PENDING, creator: user, updater: user }));
|
|
447
|
+
const createdArrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).save(Object.assign(Object.assign({}, arrivalNotice), { name: orderNo, domain, bizplace: myBizplace, looseItem: (arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.looseItem) ? arrivalNotice.looseItem : false, status: fromPo ? constants_1.ORDER_STATUS.INTRANSIT : constants_1.ORDER_STATUS.PENDING, creator: user, updater: user }));
|
|
426
448
|
// 2. Create arrival notice product
|
|
427
449
|
await addArrivalNoticeProducts(domain, createdArrivalNotice, orderProducts.map((op) => {
|
|
428
|
-
return Object.assign(Object.assign({}, op), { status: constants_1.ORDER_PRODUCT_STATUS.PENDING });
|
|
450
|
+
return Object.assign(Object.assign({}, op), { status: fromPo ? constants_1.ORDER_PRODUCT_STATUS.INTRANSIT : constants_1.ORDER_PRODUCT_STATUS.PENDING });
|
|
429
451
|
}), user, tx);
|
|
430
452
|
await (0, job_sheet_mutation_1.generateJobSheet)(domain, user, createdArrivalNotice, tx);
|
|
431
453
|
// 3. Create arrival notice vas
|
|
@@ -434,7 +456,7 @@ async function generateArrivalNoticeFunction(_, arrivalNotice, files, context, t
|
|
|
434
456
|
if (ov.targetProduct) {
|
|
435
457
|
ov.targetProduct = await tx.getRepository(product_base_1.Product).findOne(ov.targetProduct.id);
|
|
436
458
|
}
|
|
437
|
-
return Object.assign(Object.assign({}, ov), { domain, bizplace: myBizplace, name: order_no_generator_1.OrderNoGenerator.orderVas(), vas: await tx.getRepository(vas_1.Vas).findOne({ domain, id: ov.vas.id }), type: constants_1.ORDER_TYPES.ARRIVAL_NOTICE, arrivalNotice: createdArrivalNotice, status: constants_1.ORDER_VAS_STATUS.PENDING, creator: user, updater: user });
|
|
459
|
+
return Object.assign(Object.assign({}, ov), { domain, bizplace: myBizplace, name: order_no_generator_1.OrderNoGenerator.orderVas(), vas: await tx.getRepository(vas_1.Vas).findOne({ domain, id: ov.vas.id }), type: constants_1.ORDER_TYPES.ARRIVAL_NOTICE, arrivalNotice: createdArrivalNotice, status: fromPo ? constants_1.ORDER_VAS_STATUS.INTRANSIT : constants_1.ORDER_VAS_STATUS.PENDING, creator: user, updater: user });
|
|
438
460
|
}));
|
|
439
461
|
await tx.getRepository(order_vas_1.OrderVas).save(orderVass);
|
|
440
462
|
}
|
|
@@ -458,6 +480,7 @@ async function confirmArrivalNoticeFunction(name, context, tx) {
|
|
|
458
480
|
where: { domain, name, status: constants_1.ORDER_STATUS.PENDING },
|
|
459
481
|
relations: [
|
|
460
482
|
'bizplace',
|
|
483
|
+
'bizplace.domain',
|
|
461
484
|
'releaseGood',
|
|
462
485
|
'orderProducts',
|
|
463
486
|
'orderProducts.product',
|
|
@@ -470,18 +493,43 @@ async function confirmArrivalNoticeFunction(name, context, tx) {
|
|
|
470
493
|
let foundOPs = foundArrivalNotice.orderProducts;
|
|
471
494
|
let foundOVs = foundArrivalNotice.orderVass;
|
|
472
495
|
let customerBizplace = foundArrivalNotice.bizplace;
|
|
496
|
+
let opStatus = constants_1.ORDER_PRODUCT_STATUS.PENDING_RECEIVE;
|
|
497
|
+
let anStatus = constants_1.ORDER_STATUS.PENDING_RECEIVE;
|
|
498
|
+
let ovStatus = constants_1.ORDER_VAS_STATUS.PENDING_RECEIVE;
|
|
499
|
+
let acceptedByUser = null;
|
|
500
|
+
let acceptedTime = null;
|
|
501
|
+
const ganProcessingSetting = await tx.getRepository(setting_base_1.Setting).findOne({
|
|
502
|
+
where: { domain, category: 'id-rule', name: 'gan-order-processing' }
|
|
503
|
+
});
|
|
504
|
+
const partnerGanProcessingSetting = await tx.getRepository(setting_base_1.PartnerSetting).findOne({
|
|
505
|
+
where: { setting: ganProcessingSetting, domain, partnerDomain: customerBizplace === null || customerBizplace === void 0 ? void 0 : customerBizplace.domain }
|
|
506
|
+
});
|
|
507
|
+
// If status of GAN is PENDING_RECEIVE then directly to assign warehouse
|
|
508
|
+
if (ganProcessingSetting) {
|
|
509
|
+
let setting = !isNaN(partnerGanProcessingSetting === null || partnerGanProcessingSetting === void 0 ? void 0 : partnerGanProcessingSetting.value)
|
|
510
|
+
? partnerGanProcessingSetting === null || partnerGanProcessingSetting === void 0 ? void 0 : partnerGanProcessingSetting.value
|
|
511
|
+
: ganProcessingSetting.value;
|
|
512
|
+
// CONFIRM to assign if setting value is 1
|
|
513
|
+
if (setting == 1) {
|
|
514
|
+
opStatus = constants_1.ORDER_PRODUCT_STATUS.ARRIVED;
|
|
515
|
+
anStatus = constants_1.ORDER_STATUS.ARRIVED;
|
|
516
|
+
ovStatus = constants_1.ORDER_VAS_STATUS.ARRIVED;
|
|
517
|
+
acceptedByUser = user;
|
|
518
|
+
acceptedTime = new Date();
|
|
519
|
+
}
|
|
520
|
+
}
|
|
473
521
|
if (!foundArrivalNotice)
|
|
474
522
|
throw new Error(`Arrival notice doesn't exists.`);
|
|
475
523
|
// 1. GAN Status change (PENDING => PENDING_RECEIVE)
|
|
476
|
-
|
|
524
|
+
let arrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).save(Object.assign(Object.assign({}, foundArrivalNotice), { status: anStatus, updater: user, acceptedBy: acceptedByUser, acceptedAt: acceptedTime }));
|
|
477
525
|
foundOPs = foundOPs.map((op) => {
|
|
478
|
-
return Object.assign(Object.assign({}, op), { status:
|
|
526
|
+
return Object.assign(Object.assign({}, op), { status: opStatus });
|
|
479
527
|
});
|
|
480
528
|
await tx.getRepository(order_product_1.OrderProduct).save(foundOPs);
|
|
481
529
|
// 2. Update order vas status if it exists.
|
|
482
530
|
if (foundOVs && foundOVs.length) {
|
|
483
531
|
foundOVs = foundOVs.map((ov) => {
|
|
484
|
-
return Object.assign(Object.assign({}, ov), { status:
|
|
532
|
+
return Object.assign(Object.assign({}, ov), { status: ovStatus });
|
|
485
533
|
});
|
|
486
534
|
await tx.getRepository(order_vas_1.OrderVas).save(foundOVs);
|
|
487
535
|
}
|
|
@@ -527,31 +575,55 @@ async function receiveArrivalNoticeFunction(_, name, context) {
|
|
|
527
575
|
try {
|
|
528
576
|
const foundArrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).findOne({
|
|
529
577
|
where: { domain, name, status: constants_1.ORDER_STATUS.PENDING_RECEIVE },
|
|
530
|
-
relations: ['bizplace', 'collectionOrders', 'orderProducts', 'orderVass']
|
|
578
|
+
relations: ['bizplace', 'bizplace.domain', 'collectionOrders', 'orderProducts', 'orderVass']
|
|
531
579
|
});
|
|
532
|
-
if (!foundArrivalNotice)
|
|
533
|
-
throw new Error(`Arrival notice doesn't exists.`);
|
|
534
580
|
let foundOPs = foundArrivalNotice.orderProducts;
|
|
535
581
|
let foundOVs = foundArrivalNotice.orderVass;
|
|
536
582
|
let foundCOs = await tx.getRepository(collection_order_1.CollectionOrder).find({
|
|
537
583
|
where: { domain, refNo: foundArrivalNotice.name }
|
|
538
584
|
});
|
|
585
|
+
let customerBizplace = foundArrivalNotice.bizplace;
|
|
586
|
+
let opStatus = constants_1.ORDER_PRODUCT_STATUS.INTRANSIT;
|
|
587
|
+
let anStatus = constants_1.ORDER_STATUS.INTRANSIT;
|
|
588
|
+
let ovStatus = constants_1.ORDER_VAS_STATUS.INTRANSIT;
|
|
589
|
+
let coStatus = constants_1.ORDER_STATUS.READY_TO_DISPATCH;
|
|
590
|
+
const ganProcessingSetting = await tx.getRepository(setting_base_1.Setting).findOne({
|
|
591
|
+
where: { domain, category: 'id-rule', name: 'gan-order-processing' }
|
|
592
|
+
});
|
|
593
|
+
const partnerGanProcessingSetting = await tx.getRepository(setting_base_1.PartnerSetting).findOne({
|
|
594
|
+
where: { setting: ganProcessingSetting, domain, partnerDomain: customerBizplace === null || customerBizplace === void 0 ? void 0 : customerBizplace.domain }
|
|
595
|
+
});
|
|
596
|
+
// If status of GAN is INTRANSIT then directly to assign warehouse
|
|
597
|
+
if (ganProcessingSetting) {
|
|
598
|
+
let setting = !isNaN(partnerGanProcessingSetting === null || partnerGanProcessingSetting === void 0 ? void 0 : partnerGanProcessingSetting.value)
|
|
599
|
+
? partnerGanProcessingSetting === null || partnerGanProcessingSetting === void 0 ? void 0 : partnerGanProcessingSetting.value
|
|
600
|
+
: ganProcessingSetting.value;
|
|
601
|
+
// RECEIVE to assign if setting value is 2
|
|
602
|
+
if (setting == 2) {
|
|
603
|
+
opStatus = constants_1.ORDER_PRODUCT_STATUS.ARRIVED;
|
|
604
|
+
anStatus = constants_1.ORDER_STATUS.ARRIVED;
|
|
605
|
+
ovStatus = constants_1.ORDER_VAS_STATUS.ARRIVED;
|
|
606
|
+
coStatus = constants_1.ORDER_STATUS.READY_TO_DISPATCH;
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
if (!foundArrivalNotice)
|
|
610
|
+
throw new Error(`Arrival notice doesn't exists.`);
|
|
539
611
|
// 1. Update status of order products (PENDING_RECEIVE => INTRANSIT)
|
|
540
612
|
foundOPs = foundOPs.map((op) => {
|
|
541
|
-
return Object.assign(Object.assign({}, op), { status:
|
|
613
|
+
return Object.assign(Object.assign({}, op), { status: opStatus, updater: user });
|
|
542
614
|
});
|
|
543
615
|
await tx.getRepository(order_product_1.OrderProduct).save(foundOPs);
|
|
544
616
|
// 2. Update status of order vass if it exists (PENDING_RECEIVE => INTRANSIT)
|
|
545
617
|
if (foundOVs && foundOVs.length) {
|
|
546
618
|
foundOVs = foundOVs.map((ov) => {
|
|
547
|
-
return Object.assign(Object.assign({}, ov), { status:
|
|
619
|
+
return Object.assign(Object.assign({}, ov), { status: ovStatus, updater: user });
|
|
548
620
|
});
|
|
549
621
|
await tx.getRepository(order_vas_1.OrderVas).save(foundOVs);
|
|
550
622
|
}
|
|
551
623
|
// 3. If there's collection order, update status of collection order (PENDING_RECEIVE => READY_TO_DISPATCH)
|
|
552
624
|
if (foundCOs) {
|
|
553
625
|
foundCOs = foundCOs.map((co) => {
|
|
554
|
-
return Object.assign(Object.assign({}, co), { status:
|
|
626
|
+
return Object.assign(Object.assign({}, co), { status: coStatus, updater: user });
|
|
555
627
|
});
|
|
556
628
|
}
|
|
557
629
|
// notification logics
|
|
@@ -571,7 +643,7 @@ async function receiveArrivalNoticeFunction(_, name, context) {
|
|
|
571
643
|
});
|
|
572
644
|
}
|
|
573
645
|
// 4. Update status of arrival notice (PENDING_RECEIVE => INTRANSIT)
|
|
574
|
-
await tx.getRepository(arrival_notice_1.ArrivalNotice).save(Object.assign(Object.assign({}, foundArrivalNotice), { status:
|
|
646
|
+
let rcvArrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).save(Object.assign(Object.assign({}, foundArrivalNotice), { status: anStatus, acceptedBy: user, acceptedAt: new Date(), updater: user }));
|
|
575
647
|
return foundArrivalNotice;
|
|
576
648
|
}
|
|
577
649
|
catch (e) {
|