@things-factory/worksheet-base 3.6.46 → 3.6.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.
Files changed (32) hide show
  1. package/dist-server/controllers/render-grn.js +8 -0
  2. package/dist-server/controllers/render-grn.js.map +1 -1
  3. package/dist-server/controllers/render-ro-do.js +18 -5
  4. package/dist-server/controllers/render-ro-do.js.map +1 -1
  5. package/dist-server/controllers/vas/vas-worksheet-controller.js +75 -14
  6. package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
  7. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +8 -7
  8. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  9. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +302 -11
  10. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
  11. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js.map +1 -1
  12. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.js.map +1 -1
  13. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js +137 -31
  14. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js.map +1 -1
  15. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js +157 -42
  16. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js.map +1 -1
  17. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js +35 -21
  18. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js.map +1 -1
  19. package/dist-server/utils/inventory-util.js +3 -2
  20. package/dist-server/utils/inventory-util.js.map +1 -1
  21. package/package.json +14 -14
  22. package/server/controllers/render-grn.ts +8 -0
  23. package/server/controllers/render-ro-do.ts +21 -6
  24. package/server/controllers/vas/vas-worksheet-controller.ts +104 -23
  25. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +8 -13
  26. package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +452 -14
  27. package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.ts +36 -1
  28. package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.ts +8 -2
  29. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.ts +185 -56
  30. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.ts +210 -54
  31. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.ts +64 -32
  32. package/server/utils/inventory-util.ts +10 -5
@@ -1,17 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.completeRepackaging = void 0;
4
+ const product_base_1 = require("@things-factory/product-base");
4
5
  const sales_base_1 = require("@things-factory/sales-base");
5
6
  const warehouse_base_1 = require("@things-factory/warehouse-base");
6
7
  const common_utils_1 = require("../common-utils");
7
8
  const interfaces_1 = require("../interfaces");
8
9
  async function completeRepackaging(trxMgr, orderVas, user) {
9
10
  orderVas = await trxMgr.getRepository(sales_base_1.OrderVas).findOne(orderVas.id, {
10
- relations: ['domain', 'bizplace', 'inventory', 'inventory.product', 'arrivalNotice', 'releaseGood', 'vasOrder']
11
+ relations: [
12
+ 'domain',
13
+ 'bizplace',
14
+ 'inventory',
15
+ 'inventory.product',
16
+ 'inventory.productDetail',
17
+ 'arrivalNotice',
18
+ 'releaseGood',
19
+ 'vasOrder',
20
+ 'vas'
21
+ ]
11
22
  });
12
23
  const domain = orderVas.domain;
13
24
  const bizplace = orderVas.bizplace;
14
25
  let originInv = orderVas.inventory;
26
+ let transactionType = warehouse_base_1.INVENTORY_TRANSACTION_TYPE.REPACKAGING;
15
27
  const operationGuide = JSON.parse(orderVas.operationGuide);
16
28
  const operationGuideData = operationGuide.data;
17
29
  const packingUnit = operationGuideData.packingUnit;
@@ -19,42 +31,136 @@ async function completeRepackaging(trxMgr, orderVas, user) {
19
31
  const toPackingType = operationGuideData.toPackingType;
20
32
  const { arrivalNotice, releaseGood, vasOrder } = orderVas;
21
33
  const refOrder = arrivalNotice || releaseGood || vasOrder;
22
- const repackedInvs = extractRepackedInvs(operationGuideData, originInv);
23
- let originQty = 0;
24
- let originUomValue = 0;
34
+ const repackedInvs = operationGuideData.repackedInvs;
35
+ const repackedFroms = extractRepackedFroms(operationGuideData, orderVas, packingUnit);
36
+ if (orderVas.vas && orderVas.vas.operationGuide === 'vas-repack-relabel') {
37
+ transactionType = warehouse_base_1.INVENTORY_TRANSACTION_TYPE.REPACKAGING_RELABELING;
38
+ const toProduct = operationGuideData.toProduct;
39
+ // please add domain filter as well
40
+ const foundProduct = await trxMgr.getRepository(product_base_1.Product).findOne({
41
+ where: {
42
+ id: toProduct.product.id,
43
+ sku: toProduct.product.sku,
44
+ name: toProduct.product.name
45
+ }
46
+ });
47
+ if (!foundProduct) {
48
+ throw new Error(`Cannot find product with SKU ${toProduct.product.sku}`);
49
+ }
50
+ originInv.product = foundProduct;
51
+ originInv.batchId = operationGuideData.toBatchId;
52
+ originInv.productDetail = toProduct.productDetailId;
53
+ }
25
54
  // create repacked inventories based on repackedInvs
26
55
  for (const ri of repackedInvs) {
27
56
  const repackedFromList = ri.repackedFrom.filter((rf) => rf.toPalletId === ri.palletId);
28
- const { qty, uomValue } = (0, common_utils_1.getCurrentAmount)(repackedFromList, ri.palletId);
29
- const repackedPkgQty = packingUnit === interfaces_1.PackingUnits.QTY ? qty / stdAmount : uomValue / stdAmount;
30
- const changedInv = await (0, common_utils_1.upsertInventory)(trxMgr, domain, bizplace, user, originInv, refOrder, ri.palletId, ri.locationName, toPackingType, repackedPkgQty, uomValue, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.REPACKAGING);
31
- // accumulate qty and uomValue to update originInv in one shot
32
- originQty += qty;
33
- originUomValue += uomValue;
34
- // Create worksheet if it's related with Arrival Notice or Release Order
35
- if (refOrder instanceof sales_base_1.ArrivalNotice) {
36
- // await createPutawayWorksheet(trxMgr, domain, bizplace, refOrder, originInv, changedInv, user)
37
- await (0, common_utils_1.createPutawayWorksheet)(trxMgr, domain, bizplace, user, refOrder, originInv, changedInv);
38
- }
39
- else if (refOrder instanceof sales_base_1.ReleaseGood) {
40
- // await createLoadingWorksheet(trxMgr, domain, bizplace, refOrder, originInv, changedInv, user)
41
- await (0, common_utils_1.createLoadingWorksheet)(trxMgr, domain, bizplace, user, refOrder, originInv, changedInv);
57
+ const { qty, uomValue } = (0, common_utils_1.temporaryGetCurrentAmount)(repackedFromList, ri.palletId, packingUnit, stdAmount);
58
+ /* const changedInv: Inventory = */ await (0, common_utils_1.upsertInventory)(trxMgr, domain, bizplace, user, originInv, refOrder, ri.palletId, ri.locationName, toPackingType, packingUnit == interfaces_1.PackingUnits.QTY ? qty : ri.repackedPkgQty, uomValue, transactionType, stdAmount, packingUnit);
59
+ }
60
+ for (const rf of repackedFroms) {
61
+ let foundInventory = await trxMgr.getRepository(warehouse_base_1.Inventory).findOne({
62
+ where: {
63
+ domain,
64
+ bizplace,
65
+ palletId: rf.fromPalletId
66
+ }
67
+ });
68
+ if (foundInventory) {
69
+ let reducedQty;
70
+ let reducedUomValue;
71
+ if (packingUnit == interfaces_1.PackingUnits.QTY) {
72
+ reducedQty = rf.reducedUnitQty / rf.packingSize;
73
+ reducedUomValue = rf.reducedUomValue;
74
+ }
75
+ else if (packingUnit == interfaces_1.PackingUnits.UOM) {
76
+ // reducedQty will remain 0 if there is remaining uomValue
77
+ reducedQty = foundInventory.uomValue - rf.reducedUomValue == 0 ? 1 : 0;
78
+ reducedUomValue = rf.reducedUomValue;
79
+ }
80
+ foundInventory = await (0, common_utils_1.deductProductAmount)(trxMgr, domain, bizplace, user, refOrder, foundInventory, reducedQty, getRoundedAmount(reducedUomValue, 1000), transactionType, rf.originalQty, getRoundedAmount(rf.originalUomValue, 1000), rf.currentUnitQty, rf.currentUomValue);
42
81
  }
43
82
  }
44
- // Deduct amount of product on original pallet or order inventory (Case for release order)
45
- originInv = await (0, common_utils_1.deductProductAmount)(trxMgr, domain, bizplace, user, refOrder, originInv, originQty, originUomValue, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.REPACKAGING);
46
83
  }
47
84
  exports.completeRepackaging = completeRepackaging;
48
- function extractRepackedInvs(operationGuideData, originInv) {
49
- return operationGuideData.repackedInvs
50
- .filter((ri) => {
51
- const isPalletIncluded = Boolean(ri.repackedFrom.find((rf) => rf.fromPalletId === originInv.palletId));
52
- if (isPalletIncluded)
53
- return ri;
54
- })
55
- .map((ri) => {
56
- ri.repackedFrom = ri.repackedFrom.filter((rf) => rf.fromPalletId === originInv.palletId);
57
- return ri;
58
- });
85
+ function extractRepackedFroms(operationGuideData, orderVas, packingUnit) {
86
+ return (operationGuideData.repackedInvs
87
+ .reduce((acc, ri) => {
88
+ acc = [...acc, ...ri.repackedFrom];
89
+ return acc;
90
+ }, [])
91
+ // .flat()
92
+ .reduce((acc, inv) => {
93
+ let foundInv = acc.find(a => a.fromPalletId == inv.fromPalletId);
94
+ if (foundInv) {
95
+ if (packingUnit == interfaces_1.PackingUnits.QTY) {
96
+ foundInv.reducedUnitQty += inv.reducedUnitQty;
97
+ foundInv.reducedUomValue += inv.reducedUomValue;
98
+ }
99
+ else if (packingUnit == interfaces_1.PackingUnits.UOM) {
100
+ foundInv.reducedQty += inv.reducedQty;
101
+ foundInv.reducedUomValue += inv.reducedUomValue;
102
+ }
103
+ }
104
+ else {
105
+ if (packingUnit == interfaces_1.PackingUnits.QTY) {
106
+ acc.push({
107
+ fromPalletId: inv.fromPalletId,
108
+ reducedUnitQty: inv.reducedUnitQty,
109
+ reducedUomValue: inv.reducedUomValue,
110
+ packingSize: inv.packingSize
111
+ });
112
+ }
113
+ else if (packingUnit == interfaces_1.PackingUnits.UOM) {
114
+ acc.push({
115
+ fromPalletId: inv.fromPalletId,
116
+ reducedQty: inv.reducedQty,
117
+ reducedUomValue: inv.reducedUomValue,
118
+ packingSize: inv.packingSize
119
+ });
120
+ }
121
+ }
122
+ return acc;
123
+ }, [])
124
+ .map((pc) => {
125
+ const featuredInvs = operationGuideData.featuredInvs || [];
126
+ const foundFeaturedInv = featuredInvs.find((inv) => inv.palletId === pc.fromPalletId);
127
+ let originalQty;
128
+ let originalUomValue;
129
+ if (foundFeaturedInv) {
130
+ originalQty = foundFeaturedInv.originalQty;
131
+ originalUomValue = foundFeaturedInv.originalUomValue;
132
+ if (packingUnit == interfaces_1.PackingUnits.QTY) {
133
+ pc.currentUnitQty = foundFeaturedInv.currentUnitQty;
134
+ }
135
+ else if (packingUnit == interfaces_1.PackingUnits.UOM) {
136
+ pc.currentUomValue = foundFeaturedInv.currentUomValue;
137
+ }
138
+ }
139
+ else {
140
+ originalQty =
141
+ packingUnit == interfaces_1.PackingUnits.UOM
142
+ ? orderVas.qty
143
+ : orderVas.qty -
144
+ featuredInvs.reduce((qty, inv) => {
145
+ return qty + inv.originalQty;
146
+ }, 0);
147
+ originalUomValue =
148
+ orderVas.uomValue -
149
+ featuredInvs.reduce((uomValue, inv) => {
150
+ return uomValue + inv.originalUomValue;
151
+ }, 0);
152
+ if (packingUnit == interfaces_1.PackingUnits.QTY) {
153
+ pc.currentUnitQty = originalQty - pc.reducedUnitQty / pc.packingSize;
154
+ }
155
+ else if (packingUnit == interfaces_1.PackingUnits.UOM) {
156
+ pc.currentUomValue = getRoundedAmount(originalUomValue - pc.reducedUomValue);
157
+ }
158
+ }
159
+ return Object.assign(Object.assign({}, pc), { originalQty,
160
+ originalUomValue });
161
+ }));
162
+ }
163
+ function getRoundedAmount(value, decimalPlace = 100) {
164
+ return Math.round((value + Number.EPSILON) * decimalPlace) / decimalPlace;
59
165
  }
60
166
  //# sourceMappingURL=complete-repackaging.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"complete-repackaging.js","sourceRoot":"","sources":["../../../../../../server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"complete-repackaging.js","sourceRoot":"","sources":["../../../../../../server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ exports.repackagingResolver = {
29
29
  throw new Error(errorMessage);
30
30
  // Check whether there's duplicated inventory in warehouse.
31
31
  if (await (0, utils_1.checkPalletDuplication)(domain, bizplace, toPalletId, tx))
32
- throw new Error(`The Pallet ID (${toPalletId}) is duplicated.`);
32
+ throw new Error(`The lot ID (${toPalletId}) is duplicated.`);
33
33
  // Init refOrder
34
34
  const { arrivalNotice, releaseGood, vasOrder } = targetVas;
35
35
  const refOrder = arrivalNotice || releaseGood || vasOrder || null;
@@ -43,57 +43,116 @@ exports.repackagingResolver = {
43
43
  let originInv = targetVas.inventory;
44
44
  let operationGuide = JSON.parse(targetVas.operationGuide);
45
45
  let operationGuideData = operationGuide.data;
46
- if (!operationGuideData.repackedInvs)
47
- operationGuideData.repackedInvs = [];
48
- // const palletChanges: PalletChangesInterface[] = operationGuideData.repackedInvs
49
- // .map((ri: RepackedInvInfo) => ri.repackedFrom)
50
- // .flat()
51
- const palletChanges = [];
52
- const { remainQty, remainUomValue } = await (0, common_utils_1.getRemainInventoryAmount)(tx, refOrder, domain, bizplace, originInv, palletChanges, fromPalletId);
53
- const unitUomValue = remainUomValue / remainQty;
46
+ let featuredInvs = operationGuideData.featuredInvs;
54
47
  const packingUnit = operationGuideData.packingUnit;
55
48
  const stdAmount = operationGuideData.stdAmount;
49
+ let repackedInvs = operationGuideData.repackedInvs;
50
+ if ((repackedInvs === null || repackedInvs === void 0 ? void 0 : repackedInvs.length) && repackedInvs.some((inv) => inv.palletId == toPalletId))
51
+ throw new Error(`Unable to repack into the same lot ID ${toPalletId}`);
52
+ let palletChanges = [];
53
+ if (repackedInvs && repackedInvs.length) {
54
+ palletChanges = repackedInvs.reduce((acc, ri) => {
55
+ acc = [...acc, ...ri.repackedFrom];
56
+ return acc;
57
+ }, []);
58
+ // .map((ri: RepackedInvInfo) => ri.repackedFrom).flat()
59
+ }
60
+ else if (!repackedInvs) {
61
+ operationGuideData.repackedInvs = [];
62
+ }
63
+ // get remainUnitQty of originInv (from previous repackaging actions)
64
+ let remainOriginInv = {
65
+ remainUomValue: 0,
66
+ remainUnitQty: 0
67
+ };
68
+ let remainUomValue = 0;
69
+ let remainUnitQty = 0;
70
+ try {
71
+ remainOriginInv = await (0, common_utils_1.temporaryGetRemainInventoryAmount)(tx, refOrder, domain, bizplace, originInv, palletChanges, fromPalletId);
72
+ remainUomValue = remainOriginInv.remainUomValue;
73
+ remainUnitQty = remainOriginInv.remainUnitQty;
74
+ }
75
+ catch (err) { }
76
+ let repackedFroms = [];
56
77
  let repackedInv = getRepackedInv(operationGuideData, toPalletId, locationName);
57
- let isCompleted = false; // Flag for calling executeVas function to change status of worksheet detail
78
+ let isCompleted = false;
79
+ const repackagingAmount = stdAmount * packageQty;
58
80
  if (packingUnit === interfaces_1.PackingUnits.QTY) {
59
- const packingSize = originInv.packingSize;
60
- const reducedQty = remainQty >= (stdAmount * packageQty) / packingSize ? (stdAmount * packageQty) / packingSize : remainQty;
61
- const repackedFrom = {
62
- fromPalletId,
63
- toPalletId,
64
- reducedQty,
65
- reducedUomValue: reducedQty * unitUomValue
66
- };
67
- repackedInv.repackedFrom.push(repackedFrom);
68
- const totalPackedQty = repackedInv.repackedFrom.reduce((qty, rf) => (qty += rf.reducedQty), 0);
69
- repackedInv.repackedPkgQty = (totalPackedQty * packingSize) / stdAmount;
70
- isCompleted = remainQty <= stdAmount * packageQty;
81
+ const singleUnitUomValue = originInv.uomValue / (originInv.qty * originInv.packingSize);
82
+ // const singleUnitUomValue: number = getRoundedAmount(
83
+ // originInv.uomValue / (originInv.qty * originInv.packingSize),
84
+ // 10000
85
+ // )
86
+ if ((featuredInvs === null || featuredInvs === void 0 ? void 0 : featuredInvs.length) && repackagingAmount > remainUnitQty) {
87
+ const inventoriesChanges = deductedFeaturedInventories(featuredInvs, repackagingAmount, remainUnitQty, toPalletId, 'currentUnitQty');
88
+ operationGuideData.featuredInvs = inventoriesChanges.featuredInvs;
89
+ repackedFroms = [...repackedFroms, ...inventoriesChanges.repackedFroms];
90
+ if (remainUnitQty > 0) {
91
+ repackedFroms.push({
92
+ fromPalletId,
93
+ toPalletId,
94
+ reducedUnitQty: remainUnitQty,
95
+ reducedUomValue: remainUnitQty * singleUnitUomValue,
96
+ packingSize: originInv.packingSize
97
+ });
98
+ }
99
+ }
100
+ else if (remainUnitQty >= repackagingAmount) {
101
+ repackedFroms.push({
102
+ fromPalletId,
103
+ toPalletId,
104
+ reducedUnitQty: repackagingAmount,
105
+ reducedUomValue: repackagingAmount * singleUnitUomValue,
106
+ packingSize: originInv.packingSize
107
+ });
108
+ }
109
+ repackedInv.repackedFrom = repackedFroms;
110
+ const totalPackedQty = repackedInv.repackedFrom.reduce((qty, rf) => (qty += rf.reducedUnitQty), 0);
111
+ repackedInv.repackedPkgQty = totalPackedQty / stdAmount;
112
+ isCompleted = operationGuideData.requiredPackageQty == 0;
71
113
  }
72
114
  else if (packingUnit === interfaces_1.PackingUnits.UOM) {
73
- // Case 1. When batchProcess is true => Reduce as much as remainUomValue to complete this repackaging task
74
- // Case 2. When from pallet has more products than std amount => Reduce as much as stdAmount
75
- // Case 3. When from pallet has less products than std amount => Reduce as much as remainUomValue
76
- const reducedUomValue = remainUomValue >= stdAmount * packageQty ? stdAmount * packageQty : remainUomValue;
77
- const repackedFrom = {
78
- fromPalletId,
79
- toPalletId,
80
- reducedUomValue,
81
- reducedQty: reducedUomValue / unitUomValue
82
- };
83
- repackedInv.repackedFrom.push(repackedFrom);
84
- const totalPackedUomValue = repackedInv.repackedFrom.reduce((uomValue, rf) => (uomValue += rf.reducedUomValue), 0);
115
+ if ((featuredInvs === null || featuredInvs === void 0 ? void 0 : featuredInvs.length) && repackagingAmount > remainUomValue) {
116
+ const inventoriesChanges = deductedFeaturedInventories(featuredInvs, repackagingAmount, remainUomValue, toPalletId, 'currentUomValue');
117
+ operationGuideData.featuredInvs = inventoriesChanges.featuredInvs;
118
+ repackedFroms = [...repackedFroms, ...inventoriesChanges.repackedFroms];
119
+ if (remainUomValue > 0) {
120
+ repackedFroms.push({
121
+ fromPalletId,
122
+ toPalletId,
123
+ reducedQty: 0,
124
+ reducedUomValue: remainUomValue,
125
+ // reducedUomValue: getRoundedAmount(remainUomValue),
126
+ packingSize: originInv.packingSize
127
+ });
128
+ }
129
+ }
130
+ else if (remainUomValue >= repackagingAmount) {
131
+ repackedFroms.push({
132
+ fromPalletId,
133
+ toPalletId,
134
+ reducedQty: 0,
135
+ reducedUomValue: repackagingAmount,
136
+ // reducedUomValue: getRoundedAmount(repackagingAmount),
137
+ packingSize: originInv.packingSize
138
+ });
139
+ }
140
+ repackedInv.repackedFrom = repackedFroms;
141
+ const totalPackedUomValue = repackedInv.repackedFrom.reduce((qty, rf) => (qty += rf.reducedUomValue), 0);
85
142
  repackedInv.repackedPkgQty = totalPackedUomValue / stdAmount;
86
- isCompleted = remainUomValue <= stdAmount * packageQty;
143
+ // repackedInv.repackedPkgQty = getRoundedAmount(totalPackedUomValue / stdAmount)
144
+ isCompleted = operationGuideData.requiredPackageQty == 0;
87
145
  }
88
146
  // Get total required package qty to complete this VAS Task
89
- const requiredPackageQty = await getRequiredPackageQty(tx, domain, bizplace, wsd.worksheet, targetVas, packingUnit, stdAmount);
147
+ const requiredPackageQty = await getRequiredPackageQty(tx, domain, bizplace, wsd.worksheet, targetVas, packingUnit, stdAmount, (operationGuideData === null || operationGuideData === void 0 ? void 0 : operationGuideData.remainder) || 0);
90
148
  // Get total repacked package qty until this transaction
91
149
  const repackedPackageQty = getRepackedPackageQty(operationGuideData.repackedInvs);
92
- const remainRequiredPackageQty = requiredPackageQty - repackedPackageQty;
93
- operationGuide.data.requiredPackageQty = remainRequiredPackageQty;
94
- operationGuide.data.repackedInvs = operationGuideData.repackedInvs;
150
+ const remainRequiredPackageQty = getRoundedAmount(requiredPackageQty - repackedPackageQty);
151
+ // const requiredPackageQty: number = operationGuideData.requiredPackageQty - repackedPackageQty
152
+ operationGuide.data = Object.assign(Object.assign({}, operationGuideData), { requiredPackageQty: remainRequiredPackageQty });
95
153
  // Update every order vas to share same operation guide
96
154
  await (0, common_utils_1.updateRelatedOrderVas)(tx, domain, bizplace, wsd, targetVas, operationGuide, user);
155
+ // ######################### KIV DULU YANG NI #########################
97
156
  if (isCompleted || remainRequiredPackageQty === 0) {
98
157
  await (0, execute_vas_1.executeVas)(tx, domain, user, wsd);
99
158
  }
@@ -117,7 +176,7 @@ function getRepackedPackageQty(repackedInvs) {
117
176
  * @param {String} packingUnit
118
177
  * @param {Number} stdAmount
119
178
  */
120
- async function getRequiredPackageQty(tx, domain, bizplace, worksheet, currentOV, packingUnit, stdAmount) {
179
+ async function getRequiredPackageQty(tx, domain, bizplace, worksheet, currentOV, packingUnit, stdAmount, remainder) {
121
180
  const relatedWSDs = await tx.getRepository(entities_1.WorksheetDetail).find({
122
181
  where: { domain, bizplace, worksheet },
123
182
  relations: ['targetVas', 'targetVas.vas', 'targetVas.inventory']
@@ -133,10 +192,10 @@ async function getRequiredPackageQty(tx, domain, bizplace, worksheet, currentOV,
133
192
  return total;
134
193
  }, { qty: 0, uomValue: 0 });
135
194
  if (packingUnit === interfaces_1.PackingUnits.QTY) {
136
- return qty / stdAmount;
195
+ return (qty - remainder) / stdAmount;
137
196
  }
138
197
  else if (packingUnit === interfaces_1.PackingUnits.UOM) {
139
- return uomValue / stdAmount;
198
+ return Math.floor(uomValue / stdAmount);
140
199
  }
141
200
  }
142
201
  /**
@@ -160,4 +219,60 @@ function getRepackedInv(operationGuideData, palletId, locationName) {
160
219
  }
161
220
  return repackedInv;
162
221
  }
222
+ /**
223
+ * @description To transfer qty or uom value from featured inventories into origin inventory
224
+ * If and only if the origin inventory has insufficient amount
225
+ *
226
+ * @param {FeaturedInventoryInterface} featuredInvs
227
+ * @param {Number} repackagingAmount
228
+ * @param {Number} remainingAmount
229
+ * @param {String} packingUnit -- value is strictly for qty / uomValue
230
+ */
231
+ function deductedFeaturedInventories(featuredInvs, repackagingAmount, remainingAmount, toPalletId, packingUnit) {
232
+ let requiredAmount = getRoundedAmount(repackagingAmount - remainingAmount);
233
+ const repackedFroms = [];
234
+ featuredInvs = featuredInvs.map(inv => {
235
+ if (requiredAmount > 0 && inv[packingUnit] > 0) {
236
+ let reducedAmount = requiredAmount;
237
+ if (inv[packingUnit] >= requiredAmount) {
238
+ inv[packingUnit] = inv[packingUnit] - requiredAmount;
239
+ // inv[packingUnit] = getRoundedAmount(inv[packingUnit] - requiredAmount)
240
+ requiredAmount = 0;
241
+ }
242
+ else {
243
+ requiredAmount = requiredAmount - inv[packingUnit];
244
+ // requiredAmount = getRoundedAmount(requiredAmount - inv[packingUnit])
245
+ reducedAmount = inv[packingUnit];
246
+ inv[packingUnit] = 0;
247
+ }
248
+ switch (packingUnit) {
249
+ case 'currentUnitQty':
250
+ repackedFroms.push({
251
+ fromPalletId: inv.palletId,
252
+ toPalletId,
253
+ reducedUnitQty: reducedAmount,
254
+ reducedUomValue: reducedAmount * inv.uomValuePerQty,
255
+ // reducedUomValue: getRoundedAmount(reducedAmount * inv.uomValuePerQty),
256
+ packingSize: featuredInvs.find(inv => inv.palletId == inv.palletId).packingSize
257
+ });
258
+ break;
259
+ case 'currentUomValue':
260
+ repackedFroms.push({
261
+ fromPalletId: inv.palletId,
262
+ toPalletId,
263
+ reducedQty: 0,
264
+ reducedUomValue: reducedAmount,
265
+ // reducedUomValue: getRoundedAmount(reducedAmount),
266
+ packingSize: featuredInvs.find(inv => inv.palletId == inv.palletId).packingSize
267
+ });
268
+ break;
269
+ }
270
+ }
271
+ return inv;
272
+ });
273
+ return { featuredInvs, repackedFroms };
274
+ }
275
+ function getRoundedAmount(value, decimalPlace = 100) {
276
+ return Math.round((value + Number.EPSILON) * decimalPlace) / decimalPlace;
277
+ }
163
278
  //# sourceMappingURL=repackaging.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repackaging.js","sourceRoot":"","sources":["../../../../../../server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repackaging.js","sourceRoot":"","sources":["../../../../../../server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,15 @@ const sales_base_1 = require("@things-factory/sales-base");
5
5
  const entities_1 = require("../../../../../entities");
6
6
  const common_utils_1 = require("../common-utils");
7
7
  const interfaces_1 = require("../interfaces");
8
+ /** STEPS TO UNDO REPACKAGING
9
+ * 1. get the pallet id to undo (pallet id must be the LV one and not the parent)
10
+ * 2. revert the qty of repackedFrom into the original inventory and featuredInv (if applicable)
11
+ * 3. remove the repackedInv for undo item
12
+ * 4. update the requiredPkgQty
13
+ *
14
+ */
8
15
  exports.undoRepackagingResolver = {
9
16
  async undoRepackaging(_, { worksheetDetailName, fromPalletId, toPalletId }, context) {
10
- var _a;
11
17
  /**
12
18
  * Initialize required variables
13
19
  */
@@ -20,42 +26,50 @@ exports.undoRepackagingResolver = {
20
26
  let operationGuide = JSON.parse(targetVas.operationGuide);
21
27
  let operationGuideData = operationGuide.data;
22
28
  let repackedInvs = operationGuideData.repackedInvs;
29
+ let featuredInvs = operationGuideData.featuredInvs;
23
30
  let undoInventory = repackedInvs.find((ri) => ri.palletId === toPalletId);
24
31
  if (!undoInventory)
25
32
  throw new Error(`Couldn't find pallet, using pallet id (${toPalletId})`);
26
33
  const packingUnit = operationGuideData.packingUnit;
27
34
  const stdAmount = operationGuideData.stdAmount;
28
- undoInventory.repackedFrom = undoInventory.repackedFrom.filter((rf) => rf.fromPalletId !== fromPalletId);
35
+ // undoInventory.repackedFrom = undoInventory.repackedFrom.filter(
36
+ // (rf: TemporaryPalletChangesInterface) => rf.fromPalletId !== fromPalletId
37
+ // )
29
38
  // 완전히 Repacked 상태인 pallet count
30
- const repackedPkgQty = undoInventory.repackedFrom.reduce((totalAmount, rf) => {
31
- const amount = packingUnit === interfaces_1.PackingUnits.QTY ? rf.reducedQty : rf.reducedUomValue;
32
- totalAmount += amount;
33
- return totalAmount;
34
- }, 0) / stdAmount;
39
+ // const repackedPkgQty: number =
40
+ // undoInventory.repackedFrom.reduce((totalAmount: number, rf: TemporaryPalletChangesInterface) => {
41
+ // const amount: number = packingUnit === PackingUnits.QTY ? rf.reducedUnitQty : rf.reducedUomValue
42
+ // totalAmount += amount
43
+ // return totalAmount
44
+ // }, 0) / stdAmount
35
45
  // Undo를 발생한 수량 차이를 계산
36
- undoInventory.repackedPkgQty = repackedPkgQty;
37
- // Pallet 전체가 취소된 경우
38
- let updatedRepackedInvs;
39
- if (!((_a = undoInventory.repackedFrom) === null || _a === void 0 ? void 0 : _a.length)) {
40
- updatedRepackedInvs = repackedInvs.filter((ri) => ri.palletId !== toPalletId);
41
- }
42
- else {
43
- updatedRepackedInvs = repackedInvs.map((ri) => {
44
- if (ri.palletId === toPalletId)
45
- ri = undoInventory;
46
- return ri;
46
+ // undoInventory.repackedPkgQty = repackedPkgQty
47
+ const updatedRepackedInvs = repackedInvs.filter((ri) => ri.palletId !== toPalletId);
48
+ const updatedFeaturedInvs = featuredInvs.reduce((inventories, currInv) => {
49
+ undoInventory.repackedFrom.forEach(undoInv => {
50
+ if (undoInv.fromPalletId == currInv.palletId) {
51
+ if (packingUnit == interfaces_1.PackingUnits.QTY) {
52
+ currInv.currentUnitQty += undoInv.reducedUnitQty;
53
+ }
54
+ else if (packingUnit == interfaces_1.PackingUnits.UOM) {
55
+ currInv.currentUomValue += undoInv.reducedUomValue;
56
+ }
57
+ }
47
58
  });
48
- }
59
+ inventories.push(currInv);
60
+ return inventories;
61
+ }, []);
49
62
  const requiredPackageQty = await getRequiredPackageQty(tx, domain, bizplace, wsd.worksheet, targetVas, packingUnit, stdAmount);
50
63
  const repackedPackageQty = getRepackedPackageQty(updatedRepackedInvs);
51
64
  operationGuide.data.requiredPackageQty = requiredPackageQty - repackedPackageQty;
65
+ operationGuide.data.featuredInvs = updatedFeaturedInvs;
52
66
  operationGuide.data.repackedInvs = updatedRepackedInvs;
53
67
  if (!(refOrder instanceof sales_base_1.VasOrder)) {
54
- // const palletChanges: PalletChangesInterface[] = operationGuide.data.repackedInvs
68
+ // const palletChanges: TemporaryPalletChangesInterface[] = operationGuide.data.repackedInvs
55
69
  // .map((ri: RepackedInvInfo) => ri.repackedFrom)
56
70
  // .flat()
57
71
  const palletChanges = [];
58
- await (0, common_utils_1.dismissInventory)(tx, wsd, targetVas, palletChanges, fromPalletId);
72
+ // await dismissInventory(tx, wsd, targetVas, palletChanges, fromPalletId)
59
73
  }
60
74
  // Update every order vas to share same operation guide
61
75
  await (0, common_utils_1.updateRelatedOrderVas)(tx, domain, bizplace, wsd, targetVas, operationGuide, user);