@things-factory/worksheet-base 3.6.15 → 3.6.19
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/controllers/ecommerce/sellercraft-controller.js +38 -0
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +23 -1
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +21 -40
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
- package/package.json +16 -16
- package/server/controllers/ecommerce/sellercraft-controller.ts +51 -0
- package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +30 -2
- package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +24 -50
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SellercraftController = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
4
5
|
const integration_sellercraft_1 = require("@things-factory/integration-sellercraft");
|
|
5
6
|
const sales_base_1 = require("@things-factory/sales-base");
|
|
7
|
+
const warehouse_base_1 = require("@things-factory/warehouse-base");
|
|
6
8
|
const worksheet_controller_1 = require("../worksheet-controller");
|
|
7
9
|
class SellercraftController extends worksheet_controller_1.WorksheetController {
|
|
8
10
|
async registerProductInbound(sellercraft, arrivalNotice) {
|
|
@@ -78,6 +80,42 @@ class SellercraftController extends worksheet_controller_1.WorksheetController {
|
|
|
78
80
|
};
|
|
79
81
|
await integration_sellercraft_1.SellercraftAPI.addInboundOrder(sellercraft, Object.assign({}, returnInbound));
|
|
80
82
|
}
|
|
83
|
+
async updateSellercraftStock(sellercraft, inventory) {
|
|
84
|
+
let product = inventory.product;
|
|
85
|
+
const productDetails = product.productDetails;
|
|
86
|
+
const inventories = await this.trxMgr.getRepository(warehouse_base_1.Inventory).find({
|
|
87
|
+
where: { domain: this.domain, product, status: (0, typeorm_1.Not)((0, typeorm_1.Equal)(warehouse_base_1.INVENTORY_STATUS.TERMINATED)) }
|
|
88
|
+
});
|
|
89
|
+
let defaultProductDetail;
|
|
90
|
+
const sellercraftInvs = await Promise.all(inventories.map(async (inventory) => {
|
|
91
|
+
const inventoryPackingType = inventory.packingType;
|
|
92
|
+
defaultProductDetail = product.productDetails.find(productDetail => productDetail.isDefault);
|
|
93
|
+
let packingSize = 1;
|
|
94
|
+
if (inventoryPackingType !== defaultProductDetail.packingType) {
|
|
95
|
+
const unmatchingProductDetail = product.productDetails.find(productDetail => productDetail.packingType === inventoryPackingType);
|
|
96
|
+
packingSize = await this.getChildPackingSize(productDetails, defaultProductDetail, unmatchingProductDetail);
|
|
97
|
+
}
|
|
98
|
+
return { quantity: inventory.qty * packingSize - inventory.lockedQty * packingSize };
|
|
99
|
+
}));
|
|
100
|
+
const totalQty = sellercraftInvs.reduce((total, currentValue) => {
|
|
101
|
+
total += currentValue.quantity;
|
|
102
|
+
return total;
|
|
103
|
+
}, 0);
|
|
104
|
+
const sellercraftInv = {
|
|
105
|
+
accountId: sellercraft.accountId,
|
|
106
|
+
sku: product.sku,
|
|
107
|
+
uom: 'EA',
|
|
108
|
+
quantity: totalQty,
|
|
109
|
+
gtin: defaultProductDetail.gtin,
|
|
110
|
+
weight: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,
|
|
111
|
+
packageDimension: {
|
|
112
|
+
length: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,
|
|
113
|
+
width: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,
|
|
114
|
+
height: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
await integration_sellercraft_1.SellercraftAPI.updateProduct(sellercraft, { sellercraftInv });
|
|
118
|
+
}
|
|
81
119
|
async initiateOrderShipment(sellercraft, releaseGood) {
|
|
82
120
|
const orderInformation = {
|
|
83
121
|
accountId: sellercraft.accountId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sellercraft-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/sellercraft-controller.ts"],"names":[],"mappings":";;;AAAA,qFAAqF;AAErF,2DAOmC;
|
|
1
|
+
{"version":3,"file":"sellercraft-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/sellercraft-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.cycleCountAdjustment = exports.cycleCountAdjustmentResolver = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const integration_sellercraft_1 = require("@things-factory/integration-sellercraft");
|
|
4
6
|
const sales_base_1 = require("@things-factory/sales-base");
|
|
5
7
|
const warehouse_base_1 = require("@things-factory/warehouse-base");
|
|
6
|
-
const typeorm_1 = require("typeorm");
|
|
7
8
|
const constants_1 = require("../../../constants");
|
|
9
|
+
const controllers_1 = require("../../../controllers");
|
|
8
10
|
const entities_1 = require("../../../entities");
|
|
9
11
|
const utils_1 = require("../../../utils");
|
|
10
12
|
exports.cycleCountAdjustmentResolver = {
|
|
@@ -40,6 +42,11 @@ async function cycleCountAdjustment(tx, domain, user, cycleCountNo) {
|
|
|
40
42
|
relations: [
|
|
41
43
|
'targetInventory',
|
|
42
44
|
'targetInventory.inventory',
|
|
45
|
+
'targetInventory.inventory.product',
|
|
46
|
+
'targetInventory.inventory.product.productDetails',
|
|
47
|
+
'targetInventory.inventory.product.productDetails.childProductDetail',
|
|
48
|
+
'targetInventory.inventory.bizplace',
|
|
49
|
+
'targetInventory.inventory.bizplace.domain',
|
|
43
50
|
'targetInventory.inventory.location',
|
|
44
51
|
'targetInventory.inspectedLocation',
|
|
45
52
|
'targetInventory.inspectedLocation.warehouse'
|
|
@@ -50,6 +57,9 @@ async function cycleCountAdjustment(tx, domain, user, cycleCountNo) {
|
|
|
50
57
|
let inventory = targetInventory.inventory;
|
|
51
58
|
const transactQty = targetInventory.inspectedQty - inventory.qty;
|
|
52
59
|
const transactUomValue = targetInventory.inspectedUomValue - inventory.uomValue;
|
|
60
|
+
const sellercraft = await tx.getRepository(integration_sellercraft_1.Sellercraft).findOne({
|
|
61
|
+
where: { domain: inventory.bizplace.domain, status: integration_sellercraft_1.SellercraftStatus.ACTIVE }
|
|
62
|
+
});
|
|
53
63
|
if (targetInventory.status === sales_base_1.ORDER_INVENTORY_STATUS.MISSING) {
|
|
54
64
|
// create STORED, CC_ADJUSTMENT history
|
|
55
65
|
await (0, utils_1.generateInventoryHistory)(inventory, cycleCount, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.CC_ADJUSTMENT, -inventory.qty, -inventory.uomValue, user, tx);
|
|
@@ -62,6 +72,10 @@ async function cycleCountAdjustment(tx, domain, user, cycleCountNo) {
|
|
|
62
72
|
inventory = await tx.getRepository(warehouse_base_1.Inventory).save(inventory);
|
|
63
73
|
// create TERMINATED, TERMINATED history
|
|
64
74
|
await (0, utils_1.generateInventoryHistory)(inventory, cycleCount, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.TERMINATED, 0, 0, user, tx);
|
|
75
|
+
if (sellercraft) {
|
|
76
|
+
const sellercraftCtrl = new controllers_1.SellercraftController(tx, domain, user);
|
|
77
|
+
await sellercraftCtrl.updateSellercraftStock(sellercraft, inventory);
|
|
78
|
+
}
|
|
65
79
|
}
|
|
66
80
|
else if (targetInventory.inspectedQty == 0) {
|
|
67
81
|
// create STORED, CC_ADJUSTMENT history
|
|
@@ -79,6 +93,10 @@ async function cycleCountAdjustment(tx, domain, user, cycleCountNo) {
|
|
|
79
93
|
inventory = await tx.getRepository(warehouse_base_1.Inventory).save(inventory);
|
|
80
94
|
// create TERMINATED, TERMINATED history
|
|
81
95
|
await (0, utils_1.generateInventoryHistory)(inventory, cycleCount, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.TERMINATED, 0, 0, user, tx);
|
|
96
|
+
if (sellercraft) {
|
|
97
|
+
const sellercraftCtrl = new controllers_1.SellercraftController(tx, domain, user);
|
|
98
|
+
await sellercraftCtrl.updateSellercraftStock(sellercraft, inventory);
|
|
99
|
+
}
|
|
82
100
|
}
|
|
83
101
|
else {
|
|
84
102
|
const prevLocationId = inventory.location.id;
|
|
@@ -103,6 +121,10 @@ async function cycleCountAdjustment(tx, domain, user, cycleCountNo) {
|
|
|
103
121
|
}
|
|
104
122
|
await (0, utils_1.generateInventoryHistory)(inventory, cycleCount, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.CC_ADJUSTMENT, transactQty, transactUomValue, user, tx);
|
|
105
123
|
}
|
|
124
|
+
if (sellercraft) {
|
|
125
|
+
const sellercraftCtrl = new controllers_1.SellercraftController(tx, domain, user);
|
|
126
|
+
await sellercraftCtrl.updateSellercraftStock(sellercraft, inventory);
|
|
127
|
+
}
|
|
106
128
|
targetInventory.status = sales_base_1.ORDER_INVENTORY_STATUS.TERMINATED;
|
|
107
129
|
targetInventory.updater = user;
|
|
108
130
|
await tx.getRepository(sales_base_1.OrderInventory).save(targetInventory);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cycle-count-adjustment.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet/cycle-count-adjustment.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"cycle-count-adjustment.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet/cycle-count-adjustment.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.completePacking = exports.completePackingResolver = void 0;
|
|
4
4
|
const biz_base_1 = require("@things-factory/biz-base");
|
|
5
|
+
const integration_sellercraft_1 = require("@things-factory/integration-sellercraft");
|
|
5
6
|
const marketplace_base_1 = require("@things-factory/marketplace-base");
|
|
6
7
|
const sales_base_1 = require("@things-factory/sales-base");
|
|
7
|
-
const constants_1 = require("../../../../constants");
|
|
8
8
|
const controllers_1 = require("../../../../controllers/");
|
|
9
9
|
const ecommerce_1 = require("../../../../controllers/ecommerce");
|
|
10
10
|
const worksheet_controller_1 = require("../../../../controllers/worksheet-controller");
|
|
@@ -16,6 +16,7 @@ exports.completePackingResolver = {
|
|
|
16
16
|
where: { domain, name: releaseGoodNo },
|
|
17
17
|
relations: [
|
|
18
18
|
'bizplace',
|
|
19
|
+
'bizplace.domain',
|
|
19
20
|
'bizplace.company',
|
|
20
21
|
'bizplace.company.domain',
|
|
21
22
|
'orderInventories',
|
|
@@ -23,20 +24,25 @@ exports.completePackingResolver = {
|
|
|
23
24
|
]
|
|
24
25
|
});
|
|
25
26
|
if (releaseGood.type === 'b2c') {
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
27
|
+
const sellercraft = await tx
|
|
28
|
+
.getRepository(integration_sellercraft_1.Sellercraft)
|
|
29
|
+
.findOne({ domain: releaseGood.bizplace.domain, status: integration_sellercraft_1.SellercraftStatus.ACTIVE });
|
|
30
|
+
if (!sellercraft) {
|
|
31
|
+
const companyDomain = releaseGood.bizplace.company.domain;
|
|
32
|
+
const marketplaceOrder = await tx.getRepository(marketplace_base_1.MarketplaceOrder).findOne({
|
|
33
|
+
where: { orderNo: releaseGood.refNo, domain: companyDomain },
|
|
34
|
+
relations: [
|
|
35
|
+
'marketplaceOrderItems',
|
|
36
|
+
'marketplaceOrderItems.marketplaceOrderShipping',
|
|
37
|
+
'marketplaceStore',
|
|
38
|
+
'marketplaceStore.marketplaceDistributors'
|
|
39
|
+
]
|
|
40
|
+
});
|
|
41
|
+
const marketplaceStore = marketplaceOrder.marketplaceStore;
|
|
42
|
+
if (marketplaceStore.isAutoUpdateShipment) {
|
|
43
|
+
const ecommerceCtrl = new ecommerce_1.EcommerceController(tx, domain, user);
|
|
44
|
+
await ecommerceCtrl.createOrderShip(releaseGood, marketplaceStore, marketplaceOrder, companyDomain);
|
|
45
|
+
}
|
|
40
46
|
}
|
|
41
47
|
}
|
|
42
48
|
const bizplace = await (0, biz_base_1.getMyBizplace)(domain, user);
|
|
@@ -50,33 +56,8 @@ exports.completePackingResolver = {
|
|
|
50
56
|
}
|
|
51
57
|
};
|
|
52
58
|
async function completePacking(tx, domain, user, releaseGoodNo) {
|
|
53
|
-
var _a;
|
|
54
59
|
const packingWSCtrl = new controllers_1.PackingWorksheetController(tx, domain, user);
|
|
55
|
-
const releaseGood = await packingWSCtrl.findRefOrder(sales_base_1.ReleaseGood, {
|
|
56
|
-
domain,
|
|
57
|
-
name: releaseGoodNo
|
|
58
|
-
});
|
|
59
|
-
const worksheet = await packingWSCtrl.findWorksheetByRefOrder(releaseGood, constants_1.WORKSHEET_TYPE.PACKING, [
|
|
60
|
-
'worksheetDetails',
|
|
61
|
-
'worksheetDetails.targetInventory'
|
|
62
|
-
]);
|
|
63
|
-
const worksheetDetails = worksheet.worksheetDetails;
|
|
64
|
-
const targetInventories = worksheetDetails.map((wsd) => wsd.targetInventory);
|
|
65
|
-
const packedTargetInventories = targetInventories
|
|
66
|
-
.filter(targetInventory => targetInventory.status === sales_base_1.ORDER_INVENTORY_STATUS.PACKED)
|
|
67
|
-
.map((packedTargetInventory) => {
|
|
68
|
-
return packedTargetInventory;
|
|
69
|
-
});
|
|
70
60
|
await packingWSCtrl.completePacking(releaseGoodNo);
|
|
71
|
-
if (!releaseGood.courierOption) {
|
|
72
|
-
const loadingWSCtrl = new controllers_1.LoadingWorksheetController(tx, domain, user);
|
|
73
|
-
let loadingWorksheet = await loadingWSCtrl.generateLoadingWorksheet(releaseGoodNo, packedTargetInventories);
|
|
74
|
-
if (!((_a = loadingWorksheet.worksheetDetails) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
75
|
-
loadingWorksheet = await packingWSCtrl.findWorksheetById(loadingWorksheet.id);
|
|
76
|
-
}
|
|
77
|
-
const loadingWorksheetDetails = loadingWorksheet.worksheetDetails;
|
|
78
|
-
await loadingWSCtrl.activateLoading(loadingWorksheet.name, loadingWorksheetDetails);
|
|
79
|
-
}
|
|
80
61
|
}
|
|
81
62
|
exports.completePacking = completePacking;
|
|
82
63
|
//# sourceMappingURL=complete-packing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complete-packing.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/packing/complete-packing.ts"],"names":[],"mappings":";;;AAGA,uDAAkE;AAElE,uEAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"complete-packing.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/packing/complete-packing.ts"],"names":[],"mappings":";;;AAGA,uDAAkE;AAElE,qFAAwF;AACxF,uEAAmE;AACnE,2DAAwD;AAGxD,0DAAqE;AACrE,iEAAuE;AACvE,uFAAkF;AAErE,QAAA,uBAAuB,GAAG;IACrC,KAAK,CAAC,eAAe,CAAC,CAAM,EAAE,EAAE,aAAa,EAAE,EAAE,OAAY;QAC3D,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAC7F,MAAM,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;QAEtD,MAAM,WAAW,GAAgB,MAAM,EAAE,CAAC,aAAa,CAAC,wBAAW,CAAC,CAAC,OAAO,CAAC;YAC3E,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACtC,SAAS,EAAE;gBACT,UAAU;gBACV,iBAAiB;gBACjB,kBAAkB;gBAClB,yBAAyB;gBACzB,kBAAkB;gBAClB,0BAA0B;aAC3B;SACF,CAAC,CAAA;QAEF,IAAI,WAAW,CAAC,IAAI,KAAK,KAAK,EAAE;YAC9B,MAAM,WAAW,GAAgB,MAAM,EAAE;iBACtC,aAAa,CAAC,qCAAW,CAAC;iBAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,2CAAiB,CAAC,MAAM,EAAE,CAAC,CAAA;YAErF,IAAI,CAAC,WAAW,EAAE;gBAChB,MAAM,aAAa,GAAW,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAA;gBACjE,MAAM,gBAAgB,GAAqB,MAAM,EAAE,CAAC,aAAa,CAAC,mCAAgB,CAAC,CAAC,OAAO,CAAC;oBAC1F,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE;oBAC5D,SAAS,EAAE;wBACT,uBAAuB;wBACvB,gDAAgD;wBAChD,kBAAkB;wBAClB,0CAA0C;qBAC3C;iBACF,CAAC,CAAA;gBACF,MAAM,gBAAgB,GAAqB,gBAAgB,CAAC,gBAAgB,CAAA;gBAE5E,IAAI,gBAAgB,CAAC,oBAAoB,EAAE;oBACzC,MAAM,aAAa,GAAwB,IAAI,+BAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;oBACpF,MAAM,aAAa,CAAC,eAAe,CAAC,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAA;iBACpG;aACF;SACF;QAED,MAAM,QAAQ,GAAa,MAAM,IAAA,wBAAa,EAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC5D,MAAM,mBAAmB,GAAwB,IAAI,0CAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QAC1F,MAAM,mBAAmB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;YACnD,KAAK,EAAE,+BAA+B,QAAQ,CAAC,IAAI,KAAK,aAAa,GAAG;YACxE,IAAI,EAAE,4CAA4C;YAClD,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;YAC3B,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE;SACtC,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAEM,KAAK,UAAU,eAAe,CACnC,EAAiB,EACjB,MAAc,EACd,IAAU,EACV,aAAqB;IAErB,MAAM,aAAa,GAA+B,IAAI,wCAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAClG,MAAM,aAAa,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;AACpD,CAAC;AARD,0CAQC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/worksheet-base",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.19",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -24,20 +24,20 @@
|
|
|
24
24
|
"migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@things-factory/auth-base": "^3.6.
|
|
28
|
-
"@things-factory/biz-base": "^3.6.
|
|
29
|
-
"@things-factory/document-template-base": "^3.6.
|
|
30
|
-
"@things-factory/id-rule-base": "^3.6.
|
|
31
|
-
"@things-factory/integration-lmd": "^3.6.
|
|
32
|
-
"@things-factory/integration-marketplace": "^3.6.
|
|
33
|
-
"@things-factory/integration-sellercraft": "^3.6.
|
|
34
|
-
"@things-factory/marketplace-base": "^3.6.
|
|
35
|
-
"@things-factory/notification": "^3.6.
|
|
36
|
-
"@things-factory/sales-base": "^3.6.
|
|
37
|
-
"@things-factory/setting-base": "^3.6.
|
|
38
|
-
"@things-factory/shell": "^3.6.
|
|
39
|
-
"@things-factory/transport-base": "^3.6.
|
|
40
|
-
"@things-factory/warehouse-base": "^3.6.
|
|
27
|
+
"@things-factory/auth-base": "^3.6.19",
|
|
28
|
+
"@things-factory/biz-base": "^3.6.19",
|
|
29
|
+
"@things-factory/document-template-base": "^3.6.19",
|
|
30
|
+
"@things-factory/id-rule-base": "^3.6.19",
|
|
31
|
+
"@things-factory/integration-lmd": "^3.6.19",
|
|
32
|
+
"@things-factory/integration-marketplace": "^3.6.19",
|
|
33
|
+
"@things-factory/integration-sellercraft": "^3.6.19",
|
|
34
|
+
"@things-factory/marketplace-base": "^3.6.19",
|
|
35
|
+
"@things-factory/notification": "^3.6.19",
|
|
36
|
+
"@things-factory/sales-base": "^3.6.19",
|
|
37
|
+
"@things-factory/setting-base": "^3.6.19",
|
|
38
|
+
"@things-factory/shell": "^3.6.19",
|
|
39
|
+
"@things-factory/transport-base": "^3.6.19",
|
|
40
|
+
"@things-factory/warehouse-base": "^3.6.19"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "e8a5ade8e7c470c6e51dca428409c405b7cccf3a"
|
|
43
43
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { Equal, Not } from 'typeorm'
|
|
2
|
+
|
|
1
3
|
import { Sellercraft, SellercraftAPI } from '@things-factory/integration-sellercraft'
|
|
2
4
|
import { Product, ProductDetail } from '@things-factory/product-base'
|
|
3
5
|
import {
|
|
@@ -8,6 +10,7 @@ import {
|
|
|
8
10
|
ReleaseGood,
|
|
9
11
|
ReturnOrder
|
|
10
12
|
} from '@things-factory/sales-base'
|
|
13
|
+
import { Inventory, INVENTORY_STATUS } from '@things-factory/warehouse-base'
|
|
11
14
|
|
|
12
15
|
import { WorksheetController } from '../worksheet-controller'
|
|
13
16
|
|
|
@@ -107,6 +110,54 @@ export class SellercraftController extends WorksheetController {
|
|
|
107
110
|
await SellercraftAPI.addInboundOrder(sellercraft, { ...returnInbound })
|
|
108
111
|
}
|
|
109
112
|
|
|
113
|
+
async updateSellercraftStock(sellercraft: Sellercraft, inventory: Inventory): Promise<void> {
|
|
114
|
+
let product: Product = inventory.product
|
|
115
|
+
const productDetails: ProductDetail[] = product.productDetails
|
|
116
|
+
const inventories: Inventory[] = await this.trxMgr.getRepository(Inventory).find({
|
|
117
|
+
where: { domain: this.domain, product, status: Not(Equal(INVENTORY_STATUS.TERMINATED)) }
|
|
118
|
+
})
|
|
119
|
+
|
|
120
|
+
let defaultProductDetail: ProductDetail
|
|
121
|
+
const sellercraftInvs: any[] = await Promise.all(
|
|
122
|
+
inventories.map(async (inventory: Inventory) => {
|
|
123
|
+
const inventoryPackingType: string = inventory.packingType
|
|
124
|
+
defaultProductDetail = product.productDetails.find(productDetail => productDetail.isDefault)
|
|
125
|
+
|
|
126
|
+
let packingSize: number = 1
|
|
127
|
+
if (inventoryPackingType !== defaultProductDetail.packingType) {
|
|
128
|
+
const unmatchingProductDetail: ProductDetail = product.productDetails.find(
|
|
129
|
+
productDetail => productDetail.packingType === inventoryPackingType
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
packingSize = await this.getChildPackingSize(productDetails, defaultProductDetail, unmatchingProductDetail)
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
return { quantity: inventory.qty * packingSize - inventory.lockedQty * packingSize }
|
|
136
|
+
})
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
const totalQty: number = sellercraftInvs.reduce((total, currentValue) => {
|
|
140
|
+
total += currentValue.quantity
|
|
141
|
+
return total
|
|
142
|
+
}, 0)
|
|
143
|
+
|
|
144
|
+
const sellercraftInv: any = {
|
|
145
|
+
accountId: sellercraft.accountId,
|
|
146
|
+
sku: product.sku,
|
|
147
|
+
uom: 'EA',
|
|
148
|
+
quantity: totalQty,
|
|
149
|
+
gtin: defaultProductDetail.gtin,
|
|
150
|
+
weight: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,
|
|
151
|
+
packageDimension: {
|
|
152
|
+
length: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,
|
|
153
|
+
width: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,
|
|
154
|
+
height: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
await SellercraftAPI.updateProduct(sellercraft, { sellercraftInv })
|
|
159
|
+
}
|
|
160
|
+
|
|
110
161
|
async initiateOrderShipment(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<void> {
|
|
111
162
|
const orderInformation: any = {
|
|
112
163
|
accountId: sellercraft.accountId,
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import { EntityManager, In } from 'typeorm'
|
|
2
|
+
|
|
1
3
|
import { User } from '@things-factory/auth-base'
|
|
2
|
-
import {
|
|
4
|
+
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
5
|
+
import { InventoryCheck, ORDER_INVENTORY_STATUS, ORDER_STATUS, OrderInventory } from '@things-factory/sales-base'
|
|
3
6
|
import { Domain } from '@things-factory/shell'
|
|
4
7
|
import { Inventory, INVENTORY_STATUS, INVENTORY_TRANSACTION_TYPE, Location } from '@things-factory/warehouse-base'
|
|
5
|
-
|
|
8
|
+
|
|
6
9
|
import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../constants'
|
|
10
|
+
import { SellercraftController } from '../../../controllers'
|
|
7
11
|
import { Worksheet, WorksheetDetail } from '../../../entities'
|
|
8
12
|
import { generateInventoryHistory, switchLocationStatus } from '../../../utils'
|
|
9
13
|
|
|
@@ -48,6 +52,11 @@ export async function cycleCountAdjustment(
|
|
|
48
52
|
relations: [
|
|
49
53
|
'targetInventory',
|
|
50
54
|
'targetInventory.inventory',
|
|
55
|
+
'targetInventory.inventory.product',
|
|
56
|
+
'targetInventory.inventory.product.productDetails',
|
|
57
|
+
'targetInventory.inventory.product.productDetails.childProductDetail',
|
|
58
|
+
'targetInventory.inventory.bizplace',
|
|
59
|
+
'targetInventory.inventory.bizplace.domain',
|
|
51
60
|
'targetInventory.inventory.location',
|
|
52
61
|
'targetInventory.inspectedLocation',
|
|
53
62
|
'targetInventory.inspectedLocation.warehouse'
|
|
@@ -61,6 +70,10 @@ export async function cycleCountAdjustment(
|
|
|
61
70
|
const transactQty: number = targetInventory.inspectedQty - inventory.qty
|
|
62
71
|
const transactUomValue: number = targetInventory.inspectedUomValue - inventory.uomValue
|
|
63
72
|
|
|
73
|
+
const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({
|
|
74
|
+
where: { domain: inventory.bizplace.domain, status: SellercraftStatus.ACTIVE }
|
|
75
|
+
})
|
|
76
|
+
|
|
64
77
|
if (targetInventory.status === ORDER_INVENTORY_STATUS.MISSING) {
|
|
65
78
|
// create STORED, CC_ADJUSTMENT history
|
|
66
79
|
await generateInventoryHistory(
|
|
@@ -83,6 +96,11 @@ export async function cycleCountAdjustment(
|
|
|
83
96
|
|
|
84
97
|
// create TERMINATED, TERMINATED history
|
|
85
98
|
await generateInventoryHistory(inventory, cycleCount, INVENTORY_TRANSACTION_TYPE.TERMINATED, 0, 0, user, tx)
|
|
99
|
+
|
|
100
|
+
if (sellercraft) {
|
|
101
|
+
const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
|
|
102
|
+
await sellercraftCtrl.updateSellercraftStock(sellercraft, inventory)
|
|
103
|
+
}
|
|
86
104
|
} else if (targetInventory.inspectedQty == 0) {
|
|
87
105
|
// create STORED, CC_ADJUSTMENT history
|
|
88
106
|
await generateInventoryHistory(
|
|
@@ -109,6 +127,11 @@ export async function cycleCountAdjustment(
|
|
|
109
127
|
|
|
110
128
|
// create TERMINATED, TERMINATED history
|
|
111
129
|
await generateInventoryHistory(inventory, cycleCount, INVENTORY_TRANSACTION_TYPE.TERMINATED, 0, 0, user, tx)
|
|
130
|
+
|
|
131
|
+
if (sellercraft) {
|
|
132
|
+
const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
|
|
133
|
+
await sellercraftCtrl.updateSellercraftStock(sellercraft, inventory)
|
|
134
|
+
}
|
|
112
135
|
} else {
|
|
113
136
|
const prevLocationId: string = inventory.location.id
|
|
114
137
|
|
|
@@ -153,6 +176,11 @@ export async function cycleCountAdjustment(
|
|
|
153
176
|
)
|
|
154
177
|
}
|
|
155
178
|
|
|
179
|
+
if (sellercraft) {
|
|
180
|
+
const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
|
|
181
|
+
await sellercraftCtrl.updateSellercraftStock(sellercraft, inventory)
|
|
182
|
+
}
|
|
183
|
+
|
|
156
184
|
targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED
|
|
157
185
|
targetInventory.updater = user
|
|
158
186
|
await tx.getRepository(OrderInventory).save(targetInventory)
|
|
@@ -3,15 +3,14 @@ import { EntityManager } from 'typeorm'
|
|
|
3
3
|
import { User } from '@things-factory/auth-base'
|
|
4
4
|
import { Bizplace, getMyBizplace } from '@things-factory/biz-base'
|
|
5
5
|
import { MarketplaceStore } from '@things-factory/integration-marketplace'
|
|
6
|
+
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
6
7
|
import { MarketplaceOrder } from '@things-factory/marketplace-base'
|
|
7
|
-
import {
|
|
8
|
+
import { ReleaseGood } from '@things-factory/sales-base'
|
|
8
9
|
import { Domain } from '@things-factory/shell'
|
|
9
10
|
|
|
10
|
-
import {
|
|
11
|
-
import { LoadingWorksheetController, PackingWorksheetController } from '../../../../controllers/'
|
|
11
|
+
import { PackingWorksheetController } from '../../../../controllers/'
|
|
12
12
|
import { EcommerceController } from '../../../../controllers/ecommerce'
|
|
13
13
|
import { WorksheetController } from '../../../../controllers/worksheet-controller'
|
|
14
|
-
import { Worksheet, WorksheetDetail } from '../../../../entities'
|
|
15
14
|
|
|
16
15
|
export const completePackingResolver = {
|
|
17
16
|
async completePacking(_: any, { releaseGoodNo }, context: any) {
|
|
@@ -22,6 +21,7 @@ export const completePackingResolver = {
|
|
|
22
21
|
where: { domain, name: releaseGoodNo },
|
|
23
22
|
relations: [
|
|
24
23
|
'bizplace',
|
|
24
|
+
'bizplace.domain',
|
|
25
25
|
'bizplace.company',
|
|
26
26
|
'bizplace.company.domain',
|
|
27
27
|
'orderInventories',
|
|
@@ -30,21 +30,27 @@ export const completePackingResolver = {
|
|
|
30
30
|
})
|
|
31
31
|
|
|
32
32
|
if (releaseGood.type === 'b2c') {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
relations: [
|
|
37
|
-
'marketplaceOrderItems',
|
|
38
|
-
'marketplaceOrderItems.marketplaceOrderShipping',
|
|
39
|
-
'marketplaceStore',
|
|
40
|
-
'marketplaceStore.marketplaceDistributors'
|
|
41
|
-
]
|
|
42
|
-
})
|
|
43
|
-
const marketplaceStore: MarketplaceStore = marketplaceOrder.marketplaceStore
|
|
33
|
+
const sellercraft: Sellercraft = await tx
|
|
34
|
+
.getRepository(Sellercraft)
|
|
35
|
+
.findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
|
|
44
36
|
|
|
45
|
-
if (
|
|
46
|
-
const
|
|
47
|
-
await
|
|
37
|
+
if (!sellercraft) {
|
|
38
|
+
const companyDomain: Domain = releaseGood.bizplace.company.domain
|
|
39
|
+
const marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
40
|
+
where: { orderNo: releaseGood.refNo, domain: companyDomain },
|
|
41
|
+
relations: [
|
|
42
|
+
'marketplaceOrderItems',
|
|
43
|
+
'marketplaceOrderItems.marketplaceOrderShipping',
|
|
44
|
+
'marketplaceStore',
|
|
45
|
+
'marketplaceStore.marketplaceDistributors'
|
|
46
|
+
]
|
|
47
|
+
})
|
|
48
|
+
const marketplaceStore: MarketplaceStore = marketplaceOrder.marketplaceStore
|
|
49
|
+
|
|
50
|
+
if (marketplaceStore.isAutoUpdateShipment) {
|
|
51
|
+
const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
52
|
+
await ecommerceCtrl.createOrderShip(releaseGood, marketplaceStore, marketplaceOrder, companyDomain)
|
|
53
|
+
}
|
|
48
54
|
}
|
|
49
55
|
}
|
|
50
56
|
|
|
@@ -66,37 +72,5 @@ export async function completePacking(
|
|
|
66
72
|
releaseGoodNo: string
|
|
67
73
|
): Promise<void> {
|
|
68
74
|
const packingWSCtrl: PackingWorksheetController = new PackingWorksheetController(tx, domain, user)
|
|
69
|
-
const releaseGood: ReleaseGood = await packingWSCtrl.findRefOrder(ReleaseGood, {
|
|
70
|
-
domain,
|
|
71
|
-
name: releaseGoodNo
|
|
72
|
-
})
|
|
73
|
-
const worksheet: Worksheet = await packingWSCtrl.findWorksheetByRefOrder(releaseGood, WORKSHEET_TYPE.PACKING, [
|
|
74
|
-
'worksheetDetails',
|
|
75
|
-
'worksheetDetails.targetInventory'
|
|
76
|
-
])
|
|
77
|
-
|
|
78
|
-
const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails
|
|
79
|
-
const targetInventories: OrderInventory[] = worksheetDetails.map((wsd: WorksheetDetail) => wsd.targetInventory)
|
|
80
|
-
const packedTargetInventories: OrderInventory[] = targetInventories
|
|
81
|
-
.filter(targetInventory => targetInventory.status === ORDER_INVENTORY_STATUS.PACKED)
|
|
82
|
-
.map((packedTargetInventory: OrderInventory) => {
|
|
83
|
-
return packedTargetInventory
|
|
84
|
-
})
|
|
85
|
-
|
|
86
75
|
await packingWSCtrl.completePacking(releaseGoodNo)
|
|
87
|
-
|
|
88
|
-
if (!releaseGood.courierOption) {
|
|
89
|
-
const loadingWSCtrl: LoadingWorksheetController = new LoadingWorksheetController(tx, domain, user)
|
|
90
|
-
let loadingWorksheet: Worksheet = await loadingWSCtrl.generateLoadingWorksheet(
|
|
91
|
-
releaseGoodNo,
|
|
92
|
-
packedTargetInventories
|
|
93
|
-
)
|
|
94
|
-
|
|
95
|
-
if (!loadingWorksheet.worksheetDetails?.length) {
|
|
96
|
-
loadingWorksheet = await packingWSCtrl.findWorksheetById(loadingWorksheet.id)
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
const loadingWorksheetDetails: WorksheetDetail[] = loadingWorksheet.worksheetDetails
|
|
100
|
-
await loadingWSCtrl.activateLoading(loadingWorksheet.name, loadingWorksheetDetails)
|
|
101
|
-
}
|
|
102
76
|
}
|