@things-factory/warehouse-base 4.3.101 → 4.3.105-alpha.0

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 (45) hide show
  1. package/dist-server/controllers/warehouse-controller.js.map +1 -1
  2. package/dist-server/service/inventory/inventory-query.js +10 -4
  3. package/dist-server/service/inventory/inventory-query.js.map +1 -1
  4. package/dist-server/service/inventory/inventory-types.js +16 -12
  5. package/dist-server/service/inventory/inventory-types.js.map +1 -1
  6. package/dist-server/service/inventory/inventory.js +4 -0
  7. package/dist-server/service/inventory/inventory.js.map +1 -1
  8. package/dist-server/service/inventory-change/inventory-change-mutation.js +21 -6
  9. package/dist-server/service/inventory-change/inventory-change-mutation.js.map +1 -1
  10. package/dist-server/service/inventory-history/inventory-history-query.js +3 -3
  11. package/dist-server/service/inventory-item/inventory-item.js +8 -3
  12. package/dist-server/service/inventory-item/inventory-item.js.map +1 -1
  13. package/dist-server/service/inventory-product/inventory-product.js +8 -3
  14. package/dist-server/service/inventory-product/inventory-product.js.map +1 -1
  15. package/dist-server/service/location/location-mutation.js +3 -1
  16. package/dist-server/service/location/location-mutation.js.map +1 -1
  17. package/dist-server/service/pallet/pallet-mutation.js +35 -33
  18. package/dist-server/service/pallet/pallet-mutation.js.map +1 -1
  19. package/dist-server/service/tote/tote-mutation.js +1 -1
  20. package/dist-server/service/tote/tote-mutation.js.map +1 -1
  21. package/dist-server/service/tote/tote-query.js +7 -5
  22. package/dist-server/service/tote/tote-query.js.map +1 -1
  23. package/dist-server/service/warehouse/warehouse-mutation.js +33 -1
  24. package/dist-server/service/warehouse/warehouse-mutation.js.map +1 -1
  25. package/dist-server/utils/inventory-util.js +83 -24
  26. package/dist-server/utils/inventory-util.js.map +1 -1
  27. package/package.json +8 -8
  28. package/server/controllers/warehouse-controller.ts +0 -1
  29. package/server/service/inventory/inventory-query.ts +25 -12
  30. package/server/service/inventory/inventory-types.ts +3 -0
  31. package/server/service/inventory/inventory.ts +3 -0
  32. package/server/service/inventory-change/inventory-change-mutation.ts +25 -12
  33. package/server/service/inventory-history/inventory-history-query.ts +3 -3
  34. package/server/service/inventory-item/inventory-item.ts +9 -2
  35. package/server/service/inventory-product/inventory-product.ts +5 -1
  36. package/server/service/location/location-mutation.ts +3 -1
  37. package/server/service/pallet/pallet-mutation.ts +50 -69
  38. package/server/service/tote/tote-mutation.ts +1 -1
  39. package/server/service/tote/tote-query.ts +9 -7
  40. package/server/service/warehouse/warehouse-mutation.ts +41 -2
  41. package/server/utils/inventory-util.ts +117 -51
  42. package/translations/en.json +4 -2
  43. package/translations/ko.json +4 -2
  44. package/translations/ms.json +4 -2
  45. package/translations/zh.json +14 -12
@@ -11,11 +11,15 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
14
17
  Object.defineProperty(exports, "__esModule", { value: true });
15
18
  exports.deleteWarehouses = exports.deleteWarehouse = exports.updateWarehouse = exports.createWarehouse = exports.WarehouseMutation = void 0;
16
19
  const type_graphql_1 = require("type-graphql");
17
20
  const warehouse_1 = require("./warehouse");
18
21
  const warehouse_types_1 = require("./warehouse-types");
22
+ const i18next_1 = __importDefault(require("i18next"));
19
23
  let WarehouseMutation = class WarehouseMutation {
20
24
  async createWarehouse(warehouse, context) {
21
25
  return await createWarehouse(warehouse, context);
@@ -24,6 +28,34 @@ let WarehouseMutation = class WarehouseMutation {
24
28
  return await updateWarehouse(id, patch, context);
25
29
  }
26
30
  async updateMultipleWarehouse(patches, context) {
31
+ const { tx, domain, user } = context.state;
32
+ for (let patch of patches) {
33
+ let foundWarehouse;
34
+ if (patch === null || patch === void 0 ? void 0 : patch.name) {
35
+ foundWarehouse = await tx.getRepository(warehouse_1.Warehouse).findOne({
36
+ domain,
37
+ name: patch.name
38
+ });
39
+ }
40
+ else if (patch === null || patch === void 0 ? void 0 : patch.id) {
41
+ foundWarehouse = await tx.getRepository(warehouse_1.Warehouse).findOne({
42
+ domain,
43
+ id: patch.id
44
+ });
45
+ }
46
+ if (!foundWarehouse) {
47
+ patch === null || patch === void 0 ? true : delete patch.id;
48
+ await tx.getRepository(warehouse_1.Warehouse).save(Object.assign(Object.assign({}, patch), { domain, creator: user, updater: user }));
49
+ }
50
+ else {
51
+ if (patch.cuFlag === '+') {
52
+ throw new Error(i18next_1.default.t('error.warehouse (x) already exists', { x: patch.name }));
53
+ }
54
+ delete patch.cuFlag;
55
+ await tx.getRepository(warehouse_1.Warehouse).update({ id: foundWarehouse.id }, Object.assign(Object.assign({}, patch), { updater: user }));
56
+ }
57
+ }
58
+ return true;
27
59
  let results = [];
28
60
  const _createRecords = patches.filter((patch) => patch.cuFlag === '+');
29
61
  const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
@@ -74,7 +106,7 @@ __decorate([
74
106
  __decorate([
75
107
  (0, type_graphql_1.Directive)('@privilege(category: "warehouse", privilege: "mutation")'),
76
108
  (0, type_graphql_1.Directive)('@transaction'),
77
- (0, type_graphql_1.Mutation)(returns => [warehouse_1.Warehouse]),
109
+ (0, type_graphql_1.Mutation)(returns => Boolean),
78
110
  __param(0, (0, type_graphql_1.Arg)('patches', type => [warehouse_types_1.WarehousePatch])),
79
111
  __param(1, (0, type_graphql_1.Ctx)()),
80
112
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"warehouse-mutation.js","sourceRoot":"","sources":["../../../server/service/warehouse/warehouse-mutation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"warehouse-mutation.js","sourceRoot":"","sources":["../../../server/service/warehouse/warehouse-mutation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,+CAAsE;AAMtE,2CAAuC;AACvC,uDAAgE;AAEhE,sDAA6B;AAGtB,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAItB,AAAN,KAAK,CAAC,eAAe,CAAmB,SAAuB,EAAS,OAAY;QAClF,OAAO,MAAM,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAKK,AAAN,KAAK,CAAC,eAAe,CACR,EAAU,EACP,KAAqB,EAC5B,OAAY;QAEnB,OAAO,MAAM,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAKK,AAAN,KAAK,CAAC,uBAAuB,CACe,OAAyB,EAC5D,OAAY;QAEnB,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAE7F,KAAK,IAAI,KAAK,IAAI,OAAO,EAAE;YACzB,IAAI,cAAyB,CAAA;YAE7B,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE;gBACf,cAAc,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,qBAAS,CAAC,CAAC,OAAO,CAAC;oBACzD,MAAM;oBACN,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB,CAAC,CAAA;aACH;iBAAM,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,EAAE;gBACpB,cAAc,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,qBAAS,CAAC,CAAC,OAAO,CAAC;oBACzD,MAAM;oBACN,EAAE,EAAE,KAAK,CAAC,EAAE;iBACb,CAAC,CAAA;aACH;YAED,IAAI,CAAC,cAAc,EAAE;gBACZ,KAAK,aAAL,KAAK,4BAAL,KAAK,CAAE,EAAE,CAAA;gBAChB,MAAM,EAAE,CAAC,aAAa,CAAC,qBAAS,CAAC,CAAC,IAAI,iCAAM,KAAK,KAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAG,CAAA;aAC3F;iBAAM;gBACL,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;oBACxB,MAAM,IAAI,KAAK,CAAC,iBAAO,CAAC,CAAC,CAAC,oCAAoC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;iBACpF;gBACD,OAAO,KAAK,CAAC,MAAM,CAAA;gBACnB,MAAM,EAAE,CAAC,aAAa,CAAC,qBAAS,CAAC,CAAC,MAAM,CACtC,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,kCAEpB,KAAK,KACR,OAAO,EAAE,IAAI,IAEhB,CAAA;aACF;SACF;QAED,OAAO,IAAI,CAAA;QAEX,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,CAAA;QAC3E,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QAEzF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBAC/B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAqB,EAAE,OAAO,CAAC,CAAA;gBACpE,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;aACzC;SACF;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,KAAK,GAAmB,cAAc,CAAC,CAAC,CAAC,CAAA;gBAC/C,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;gBAC9D,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;aACzC;SACF;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAKK,AAAN,KAAK,CAAC,eAAe,CAAY,EAAU,EAAS,OAAY;QAC9D,OAAO,MAAM,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;IAKK,AAAN,KAAK,CAAC,gBAAgB,CAA+B,GAAa,EAAS,OAAY;QACrF,OAAO,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;CACF,CAAA;AA/FO;IAHL,IAAA,wBAAS,EAAC,0DAA0D,CAAC;IACrE,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,qBAAS,CAAC;IACR,WAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAA2B,WAAA,IAAA,kBAAG,GAAE,CAAA;;qCAApB,8BAAY;;wDAE9D;AAKK;IAHL,IAAA,wBAAS,EAAC,0DAA0D,CAAC;IACrE,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,qBAAS,CAAC;IAE5B,WAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IACT,WAAA,IAAA,kBAAG,EAAC,OAAO,CAAC,CAAA;IACZ,WAAA,IAAA,kBAAG,GAAE,CAAA;;6CADe,gCAAc;;wDAIpC;AAKK;IAHL,IAAA,wBAAS,EAAC,0DAA0D,CAAC;IACrE,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;IAE1B,WAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,gCAAc,CAAC,CAAC,CAAA;IACxC,WAAA,IAAA,kBAAG,GAAE,CAAA;;;;gEA4DP;AAKK;IAHL,IAAA,wBAAS,EAAC,0DAA0D,CAAC;IACrE,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;IACN,WAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,kBAAG,GAAE,CAAA;;;;wDAElD;AAKK;IAHL,IAAA,wBAAS,EAAC,0DAA0D,CAAC;IACrE,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;IACL,WAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAAiB,WAAA,IAAA,kBAAG,GAAE,CAAA;;;;yDAEzE;AAlGU,iBAAiB;IAD7B,IAAA,uBAAQ,EAAC,qBAAS,CAAC;GACP,iBAAiB,CAmG7B;AAnGY,8CAAiB;AAqGvB,KAAK,UAAU,eAAe,CAAC,SAAuB,EAAE,OAAY;IACzE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;IAE7F,MAAM,UAAU,GAA0B,EAAE,CAAC,aAAa,CAAC,qBAAS,CAAC,CAAA;IACrE,OAAO,MAAM,UAAU,CAAC,IAAI,iCACvB,SAAS,KACZ,MAAM,EACN,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;AACJ,CAAC;AAVD,0CAUC;AAEM,KAAK,UAAU,eAAe,CAAC,EAAU,EAAE,KAAqB,EAAE,OAAY;IACnF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;IAE7F,MAAM,UAAU,GAA0B,EAAE,CAAC,aAAa,CAAC,qBAAS,CAAC,CAAA;IACrE,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAE9C,OAAO,MAAM,UAAU,CAAC,IAAI,+CACvB,SAAS,GACT,KAAK,KACR,OAAO,EAAE,IAAI,IACb,CAAA;AACJ,CAAC;AAXD,0CAWC;AAEM,KAAK,UAAU,eAAe,CAAC,EAAU,EAAE,OAAO;IACvD,MAAM,EAAE,EAAE,EAAE,GAA0B,OAAO,CAAC,KAAK,CAAA;IAEnD,MAAM,UAAU,GAA0B,EAAE,CAAC,aAAa,CAAC,qBAAS,CAAC,CAAA;IACrE,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC3B,OAAO,IAAI,CAAA;AACb,CAAC;AAND,0CAMC;AAEM,KAAK,UAAU,gBAAgB,CAAC,GAAa,EAAE,OAAY;IAChE,MAAM,EAAE,EAAE,EAAE,GAA0B,OAAO,CAAC,KAAK,CAAA;IAEnD,MAAM,UAAU,GAA0B,EAAE,CAAC,aAAa,CAAC,qBAAS,CAAC,CAAA;IACrE,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5B,OAAO,IAAI,CAAA;AACb,CAAC;AAND,4CAMC"}
@@ -113,33 +113,92 @@ async function generateInventoryHistory(inventory, refOrder, transactionType, qt
113
113
  seq: 'DESC'
114
114
  }
115
115
  });
116
- let seq = 0;
117
- let openingQty = 0;
118
- let openingUomValue = 0;
119
- if (lastInvHistory) {
120
- openingQty = lastInvHistory.openingQty + lastInvHistory.qty;
121
- openingUomValue = lastInvHistory.openingUomValue + lastInvHistory.uomValue;
122
- seq = lastInvHistory.seq + 1;
116
+ let lastSeq;
117
+ let res;
118
+ let inventoryHistoryFields = {
119
+ refOrderId: (refOrder === null || refOrder === void 0 ? void 0 : refOrder.id) || null,
120
+ orderNo: (refOrder === null || refOrder === void 0 ? void 0 : refOrder.name) || null,
121
+ orderRefNo: (refOrder === null || refOrder === void 0 ? void 0 : refOrder.refNo) || null,
122
+ uom: inventory === null || inventory === void 0 ? void 0 : inventory.uom,
123
+ creator: user,
124
+ updater: user,
125
+ domain: inventory === null || inventory === void 0 ? void 0 : inventory.domain,
126
+ bizplace: inventory === null || inventory === void 0 ? void 0 : inventory.bizplace,
127
+ reusablePallet: inventory === null || inventory === void 0 ? void 0 : inventory.reusablePallet,
128
+ inventory: inventory,
129
+ product: inventory === null || inventory === void 0 ? void 0 : inventory.product,
130
+ warehouse: inventory === null || inventory === void 0 ? void 0 : inventory.warehouse,
131
+ location: inventory === null || inventory === void 0 ? void 0 : inventory.location,
132
+ palletId: inventory === null || inventory === void 0 ? void 0 : inventory.palletId,
133
+ batchId: inventory === null || inventory === void 0 ? void 0 : inventory.batchId,
134
+ zone: inventory === null || inventory === void 0 ? void 0 : inventory.zone,
135
+ packingType: inventory === null || inventory === void 0 ? void 0 : inventory.packingType,
136
+ description: inventory === null || inventory === void 0 ? void 0 : inventory.description,
137
+ expirationDate: inventory === null || inventory === void 0 ? void 0 : inventory.expirationDate,
138
+ unitCost: inventory === null || inventory === void 0 ? void 0 : inventory.unitCost,
139
+ batchIdRef: inventory === null || inventory === void 0 ? void 0 : inventory.batchIdRef,
140
+ cartonId: inventory === null || inventory === void 0 ? void 0 : inventory.cartonId,
141
+ manufactureYear: inventory === null || inventory === void 0 ? void 0 : inventory.manufactureYear,
142
+ packingSize: inventory === null || inventory === void 0 ? void 0 : inventory.packingSize,
143
+ manufactureDate: inventory === null || inventory === void 0 ? void 0 : inventory.manufactureDate
144
+ };
145
+ if (!lastInvHistory) {
146
+ res = await invHistoryRepo
147
+ .createQueryBuilder()
148
+ .insert()
149
+ .into(service_1.InventoryHistory)
150
+ .values([
151
+ Object.assign(Object.assign({}, inventoryHistoryFields), { name: utils_1.InventoryNoGenerator.inventoryHistoryName(), status: inventory.status, transactionType,
152
+ qty, openingQty: 0, uomValue, openingUomValue: 0, seq: 0 })
153
+ ])
154
+ .returning('*')
155
+ .execute();
123
156
  }
124
- let remainQty = (openingQty || 0) + (qty || 0);
125
- let inventoryHistory = new service_1.InventoryHistory();
126
- inventoryHistory = Object.assign(Object.assign({}, inventory), { name: utils_1.InventoryNoGenerator.inventoryHistoryName(), inventory, seq: seq, status: remainQty == 0 ? constants_1.INVENTORY_STATUS.TERMINATED : inventory.status, transactionType, refOrderId: (refOrder === null || refOrder === void 0 ? void 0 : refOrder.id) || null, orderNo: (refOrder === null || refOrder === void 0 ? void 0 : refOrder.name) || null, orderRefNo: (refOrder === null || refOrder === void 0 ? void 0 : refOrder.refNo) || null, qty,
127
- openingQty,
128
- uomValue, openingUomValue: openingUomValue, creator: user, updater: user });
129
- delete inventoryHistory.updatedAt;
130
- delete inventoryHistory.createdAt;
131
- delete inventoryHistory.id;
132
- let newInventoryHistory = await invHistoryRepo.save(inventoryHistory);
133
- if (remainQty == 0) {
134
- seq = seq + 1;
135
- let terminatedHistory = Object.assign(Object.assign({}, newInventoryHistory), { name: utils_1.InventoryNoGenerator.inventoryHistoryName(), seq: seq, status: constants_1.INVENTORY_STATUS.TERMINATED, transactionType: constants_1.INVENTORY_TRANSACTION_TYPE.TERMINATED, uom: inventory.uom, qty: 0, openingQty: 0, uomValue: 0, openingUomValue: 0 });
136
- delete terminatedHistory.id;
137
- newInventoryHistory = await invHistoryRepo.save(terminatedHistory);
138
- inventory.status = constants_1.INVENTORY_STATUS.TERMINATED;
157
+ else {
158
+ if (transactionType == 'PICKING' || transactionType == 'UNLOADING') {
159
+ const findSameOrderHistory = await invHistoryRepo.find({
160
+ domain: inventory.domain,
161
+ palletId: inventory.palletId,
162
+ refOrderId: refOrder.id
163
+ });
164
+ if (findSameOrderHistory.length > 0) {
165
+ let prevTotalQty = 0;
166
+ let prevTotalUomValue = 0;
167
+ for (let oh of findSameOrderHistory) {
168
+ prevTotalQty += oh.qty;
169
+ prevTotalUomValue += oh.uomValue;
170
+ }
171
+ qty -= prevTotalQty;
172
+ uomValue -= prevTotalUomValue;
173
+ }
174
+ }
175
+ res = await invHistoryRepo
176
+ .createQueryBuilder()
177
+ .insert()
178
+ .into(service_1.InventoryHistory)
179
+ .values([
180
+ Object.assign(Object.assign({}, inventoryHistoryFields), { name: utils_1.InventoryNoGenerator.inventoryHistoryName(), status: () => `(select case when opening_qty + (select qty from inventory_histories where pallet_id = '${inventory.palletId}' order by seq desc limit 1) = 0 then 'TERMINATED' else 'STORED' end as status from inventory_histories where pallet_id = '${inventory.palletId}' order by seq desc limit 1)`, transactionType,
181
+ qty, openingQty: () => `(select opening_qty from inventory_histories where pallet_id = '${inventory.palletId}' order by seq desc limit 1) + (select qty from inventory_histories where pallet_id = '${inventory.palletId}' order by seq desc limit 1)`, uomValue, openingUomValue: () => `(select opening_uom_value from inventory_histories where pallet_id = '${inventory.palletId}' order by seq desc limit 1) + ${uomValue}`, seq: () => `(select seq from inventory_histories where pallet_id = '${inventory.palletId}' order by seq desc limit 1) + 1` })
182
+ ])
183
+ .returning('*')
184
+ .execute();
139
185
  }
140
- if (inventory.lastSeq !== seq) {
141
- await invRepo.update(inventory.id, { lastSeq: newInventoryHistory.seq, updater: user });
186
+ let newInventoryHistory = res.generatedMaps[0];
187
+ lastSeq = newInventoryHistory.seq;
188
+ if (newInventoryHistory.openingQty + qty == 0 && transactionType != 'UNDO_UNLOADING') {
189
+ let terminatedRes = await invHistoryRepo
190
+ .createQueryBuilder()
191
+ .insert()
192
+ .into(service_1.InventoryHistory)
193
+ .values([
194
+ Object.assign(Object.assign({}, inventoryHistoryFields), { name: utils_1.InventoryNoGenerator.inventoryHistoryName(), status: constants_1.INVENTORY_STATUS.TERMINATED, transactionType: constants_1.INVENTORY_TRANSACTION_TYPE.TERMINATED, qty: 0, openingQty: 0, uomValue: 0, openingUomValue: 0, seq: () => `(select seq from inventory_histories where inventory_id = '${inventory.id}' order by seq desc limit 1) + 1` })
195
+ ])
196
+ .returning('seq')
197
+ .execute();
198
+ lastSeq = terminatedRes.generatedMaps[0].seq;
199
+ inventory.status = constants_1.INVENTORY_STATUS.TERMINATED;
142
200
  }
201
+ await invRepo.update(inventory.id, { lastSeq, updater: user });
143
202
  await switchLocationStatus(domain, location, user, trxMgr);
144
203
  return newInventoryHistory;
145
204
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inventory-util.js","sourceRoot":"","sources":["../../server/utils/inventory-util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inventory-util.js","sourceRoot":"","sources":["../../server/utils/inventory-util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/warehouse-base",
3
- "version": "4.3.101",
3
+ "version": "4.3.105-alpha.0",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -24,12 +24,12 @@
24
24
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
25
25
  },
26
26
  "dependencies": {
27
- "@things-factory/biz-base": "^4.3.99",
28
- "@things-factory/id-rule-base": "^4.3.99",
29
- "@things-factory/integration-sellercraft": "^4.3.101",
30
- "@things-factory/marketplace-base": "^4.3.101",
31
- "@things-factory/product-base": "^4.3.101",
32
- "@things-factory/setting-base": "^4.3.99"
27
+ "@things-factory/biz-base": "^4.3.105-alpha.0",
28
+ "@things-factory/id-rule-base": "^4.3.105-alpha.0",
29
+ "@things-factory/integration-sellercraft": "^4.3.105-alpha.0",
30
+ "@things-factory/marketplace-base": "^4.3.105-alpha.0",
31
+ "@things-factory/product-base": "^4.3.105-alpha.0",
32
+ "@things-factory/setting-base": "^4.3.105-alpha.0"
33
33
  },
34
- "gitHead": "650a69693c312b14afb2c243fde629d9eb0f5fc8"
34
+ "gitHead": "3bf9a95c5f77324220346e5109880a171ee2a13d"
35
35
  }
@@ -2,7 +2,6 @@ import { EntityManager } from 'typeorm'
2
2
 
3
3
  import { Role, User } from '@things-factory/auth-base'
4
4
  import { Bizplace, getDomainUsers } from '@things-factory/biz-base'
5
- import { sendNotification } from '@things-factory/notification'
6
5
  import { ProductDetail } from '@things-factory/product-base'
7
6
  import { Domain } from '@things-factory/shell'
8
7
 
@@ -17,13 +17,13 @@ import { logger } from '@things-factory/env'
17
17
  export class InventoryQuery {
18
18
  /**
19
19
  * Combined single query resolver to perform extraction of data with or without pagination
20
- * @param context
21
- * @param filters
22
- * @param pagination
23
- * @param sortings
24
- * @param locationSortingRules
25
- * @param exportItem
26
- * @returns
20
+ * @param context
21
+ * @param filters
22
+ * @param pagination
23
+ * @param sortings
24
+ * @param locationSortingRules
25
+ * @param exportItem
26
+ * @returns
27
27
  */
28
28
  @Directive('@privilege(category: "inventory", privilege: "query")')
29
29
  @Directive('@transaction')
@@ -45,7 +45,7 @@ export class InventoryQuery {
45
45
  const remainOnlyParam = filters.find((filter: any) => filter.name == 'remainOnly')
46
46
  const bizplace = filters.find((filter: any) => filter.name === 'bizplace')
47
47
 
48
- filters = filters.filter(x => (['productInfo', 'remainOnly']).indexOf(x.name) < 0)
48
+ filters = filters.filter(x => ['productInfo', 'remainOnly'].indexOf(x.name) < 0)
49
49
 
50
50
  const params = { filters, pagination }
51
51
 
@@ -66,7 +66,12 @@ export class InventoryQuery {
66
66
 
67
67
  qb.leftJoinAndSelect('inventory.bizplace', 'bizplace')
68
68
  .leftJoinAndSelect('inventory.product', 'product')
69
- .leftJoinAndSelect('product.productDetails', 'productDetail', 'productDetail.id = inventory.product_detail_id')
69
+ .leftJoinAndSelect('inventory.productDetail', 'productDetail')
70
+ .leftJoinAndSelect(
71
+ 'product.productDetails',
72
+ 'productDetails',
73
+ 'productDetails.id = inventory.product_detail_id'
74
+ )
70
75
  .leftJoinAndSelect('inventory.warehouse', 'warehouse')
71
76
  .leftJoinAndSelect('inventory.location', 'location')
72
77
  .leftJoinAndSelect('inventory.creator', 'creator')
@@ -77,7 +82,10 @@ export class InventoryQuery {
77
82
  subQuery => {
78
83
  return subQuery
79
84
  .select('inventoryItems.inventory_id', 'inventory_item_inventory_id')
80
- .addSelect(`SUM(case when "inventoryItems"."status" = 'STORED' then 1 else 0 end)`, 'inventory_item_count')
85
+ .addSelect(
86
+ `SUM(case when "inventoryItems"."status" = 'STORED' then 1 else 0 end)`,
87
+ 'inventory_item_count'
88
+ )
81
89
  .addSelect(`string_agg(inventoryItems.serial_number, ', ')`, 'serial_numbers')
82
90
  .from('inventory_items', 'inventoryItems')
83
91
  .where(`inventoryItems.domain_id = :domainId`, { domainId: domain.id })
@@ -133,7 +141,9 @@ export class InventoryQuery {
133
141
  }
134
142
 
135
143
  if (locationSortingRules?.length > 0) {
136
- locationSortingRules.forEach((rule) => { qb.addOrderBy(`location.${rule.name}`, rule.desc ? 'DESC' : 'ASC') })
144
+ locationSortingRules.forEach(rule => {
145
+ qb.addOrderBy(`location.${rule.name}`, rule.desc ? 'DESC' : 'ASC')
146
+ })
137
147
  }
138
148
 
139
149
  // Fetch all row for exporting
@@ -645,7 +655,7 @@ export class InventoryQuery {
645
655
 
646
656
  const productBundleSettings: ProductBundleSetting[] = await getRepository(ProductBundleSetting).find({
647
657
  where: { productBundle: productBundleId },
648
- relations: ['product', 'productBundle']
658
+ relations: ['product', 'productDetail', 'productBundle']
649
659
  })
650
660
 
651
661
  if (!productBundleSettings.length) {
@@ -656,6 +666,7 @@ export class InventoryQuery {
656
666
  buildQuery(qb, params, context)
657
667
 
658
668
  qb.select('iv.product_id', 'productId')
669
+ .addSelect('iv.product_detail_id', 'productDetailId')
659
670
  .addSelect('iv.batch_id', 'batchId')
660
671
  .addSelect('iv.batch_id_ref', 'batchIdRef')
661
672
  .addSelect('iv.packing_type', 'packingType')
@@ -684,6 +695,7 @@ export class InventoryQuery {
684
695
  productIds: productBundleSettings.map(productBundle => productBundle.product.id)
685
696
  })
686
697
  .groupBy('iv.product_id')
698
+ .addGroupBy('iv.product_detail_id')
687
699
  .addGroupBy('iv.batch_id')
688
700
  .addGroupBy('iv.batch_id_ref')
689
701
  .addGroupBy('iv.packing_type')
@@ -712,6 +724,7 @@ export class InventoryQuery {
712
724
  return {
713
725
  id: pbs.id,
714
726
  productId: pbs.product.id,
727
+ productDetailId: pbs.productDetail.id,
715
728
  bundleId: pbs.productBundle.id,
716
729
  bundleQty: pbs.bundleQty,
717
730
  releaseQty: bundleReleaseQty * pbs.bundleQty,
@@ -47,6 +47,9 @@ export class InventoryPatch {
47
47
  @Field(type => ObjectRef, { nullable: true })
48
48
  product?: ObjectRef
49
49
 
50
+ @Field(type => ObjectRef, { nullable: true })
51
+ productDetail?: ObjectRef
52
+
50
53
  @Field({ nullable: true })
51
54
  sku?: string
52
55
 
@@ -210,6 +210,9 @@ export class Inventory {
210
210
  @Field({ nullable: true })
211
211
  productId: string
212
212
 
213
+ @Field({ nullable: true })
214
+ productDetailId: string
215
+
213
216
  @Field({ nullable: true })
214
217
  productName: string
215
218
 
@@ -6,8 +6,7 @@ import { Bizplace } from '@things-factory/biz-base'
6
6
  import { generateId } from '@things-factory/id-rule-base'
7
7
  import { MarketplaceStore } from '@things-factory/integration-marketplace'
8
8
  import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
9
- import { sendNotification } from '@things-factory/notification'
10
- import { Product } from '@things-factory/product-base'
9
+ import { Product, ProductDetail } from '@things-factory/product-base'
11
10
  import { PartnerSetting, Setting } from '@things-factory/setting-base'
12
11
  import { Domain } from '@things-factory/shell'
13
12
 
@@ -138,19 +137,29 @@ export class InventoryChangeMutation {
138
137
  ) {
139
138
  const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
140
139
  try {
141
-
142
140
  const _createRecords = []
143
141
  const _updateRecords = []
144
142
 
145
143
  for (let i = 0; i < patches.length; i++) {
146
- let foundExistingPallet = await tx.getRepository(Inventory).createQueryBuilder('iv')
144
+ let foundExistingPallet = await tx
145
+ .getRepository(Inventory)
146
+ .createQueryBuilder('iv')
147
147
  .where('iv.domain_id = :domain_id', { domain_id: domain.id })
148
- .andWhere('(iv.pallet_id = :pallet_id or iv.id = :id)', { pallet_id: patches[i]?.palletId, id: patches[i]?.id })
148
+ .andWhere('(iv.pallet_id = :pallet_id or iv.id = :id)', {
149
+ pallet_id: patches[i]?.palletId,
150
+ id: patches[i]?.id
151
+ })
149
152
  .getOne()
150
153
 
151
154
  //remove any unchanged records
152
155
  for (const [key, value] of Object.entries(patches[i])) {
153
- if (foundExistingPallet && key != 'id' && key != 'cuFlag' && value == foundExistingPallet[key]) {
156
+ if (
157
+ foundExistingPallet &&
158
+ key != 'id' &&
159
+ key != 'cuFlag' &&
160
+ key != 'palletId' &&
161
+ value == foundExistingPallet[key]
162
+ ) {
154
163
  delete patches[i][key]
155
164
  }
156
165
  }
@@ -193,7 +202,9 @@ export class InventoryChangeMutation {
193
202
  newRecord.bizplace = await tx.getRepository(Bizplace).findOne(newRecord.bizplace.id)
194
203
 
195
204
  var product: Product = await tx.getRepository(Product).findOne(newRecord.product.id)
205
+ var productDetail: ProductDetail = await tx.getRepository(ProductDetail).findOne(newRecord.productDetailId)
196
206
  newRecord.product = product
207
+ newRecord.productDetail = productDetail
197
208
 
198
209
  newRecord.status = 'PENDING'
199
210
  newRecord.transactionType = 'NEW'
@@ -355,7 +366,9 @@ export class InventoryChangeMutation {
355
366
  newInventoryItemChange.status = updatedInventoryChange.status
356
367
  newInventoryItemChange.inventory = updatedInventoryChange.inventory
357
368
  newInventoryItemChange.inventoryItem =
358
- newInventoryItemChange?.type == INVENTORY_ITEM_CHANGE_TYPE.NEW ? null : inventoryItemChange.inventoryItem
369
+ newInventoryItemChange?.type == INVENTORY_ITEM_CHANGE_TYPE.NEW
370
+ ? null
371
+ : inventoryItemChange.inventoryItem
359
372
  newInventoryItemChange.inventoryChange = updatedInventoryChange
360
373
  newInventoryItemChange.domain = domain
361
374
  newInventoryItemChange.creator = user
@@ -417,11 +430,9 @@ export class InventoryChangeMutation {
417
430
  // }
418
431
 
419
432
  return true
420
-
421
433
  } catch (error) {
422
434
  throw error
423
435
  }
424
-
425
436
  }
426
437
 
427
438
  @Directive('@privilege(category: "inventory_adjustment_approval", privilege: "mutation")')
@@ -520,6 +531,7 @@ async function upsertInventoryItems(context, inventoryChange, approvalStatus, tx
520
531
  inventoryItem.serialNumber = inventoryItemChange.serialNumber
521
532
  inventoryItem.status = INVENTORY_STATUS.STORED
522
533
  inventoryItem.product = inventoryChange.inventory.product
534
+ inventoryItem.productDetail = inventoryChange.inventory.productDetail
523
535
  inventoryItem.domain = inventoryItemChange.domain
524
536
  inventoryItem.inventory = inventoryChange.inventory
525
537
  inventoryItem.source = INVENTORY_ITEM_SOURCE.ADJUSTMENT
@@ -539,7 +551,8 @@ async function upsertInventoryItems(context, inventoryChange, approvalStatus, tx
539
551
  inventoryItem = {
540
552
  ...existingInventoryItem,
541
553
  serialNumber: inventoryItemChange.serialNumber,
542
- product: inventoryItemChange.inventory.product
554
+ product: inventoryItemChange.inventory.product,
555
+ productDetail: inventoryItemChange.inventory.productDetail
543
556
  }
544
557
  } else if (changeType == INVENTORY_ITEM_CHANGE_TYPE.REMOVED) {
545
558
  inventoryItem = {
@@ -576,6 +589,7 @@ export async function approveInventoryChanges(patches: any, context: any) {
576
589
  'bizplace.company',
577
590
  'bizplace.company.domain',
578
591
  'product',
592
+ 'productDetail',
579
593
  'product.productDetails',
580
594
  'product.productDetails.childProductDetail',
581
595
  'location'
@@ -611,6 +625,7 @@ export async function approveInventoryChanges(patches: any, context: any) {
611
625
  'bizplace.company',
612
626
  'bizplace.company.domain',
613
627
  'product',
628
+ 'productDetail',
614
629
  'product.productDetails',
615
630
  'product.productDetails.childProductDetail',
616
631
  'warehouse',
@@ -620,8 +635,6 @@ export async function approveInventoryChanges(patches: any, context: any) {
620
635
  ]
621
636
  })
622
637
 
623
- const customerDomain: Domain = inventory.bizplace.domain
624
-
625
638
  // Check for locked inventory, and stop from udpating inventory
626
639
  if (inventory.qty < inventory.lockedQty) {
627
640
  arrLockedInventory.push(_inventoryChanges[i])
@@ -1425,7 +1425,7 @@ export class InventoryHistoryQuery {
1425
1425
  rih.bizplace_id as bizplace_id,
1426
1426
  cast(rih.created_at + (interval '8 hour') as DATE) as "tempDate"
1427
1427
  from reduced_inventory_histories rih
1428
- left join product_details pd on pd.product_id = rih.product_id and pd.packing_type = rih.packing_type
1428
+ left join product_details pd on pd.id = rih.product_detail_id
1429
1429
  where rih.status not like 'TERMINATED' and rih.bizplace_id = $1
1430
1430
  group by CAST(rih.created_at + (interval '8 hour') as DATE), rih.bizplace_id
1431
1431
  )
@@ -1465,8 +1465,8 @@ export class InventoryHistoryQuery {
1465
1465
  await tx.query(
1466
1466
  `
1467
1467
  create temp table temp_result ON COMMIT drop as(
1468
- select lag(sub."closingQty", 1, 0) over (partition by sub.bizplace_id order by sub.date) as "openingQty",
1469
- lag(sub."closingVolume", 1, 0) over (partition by sub.bizplace_id order by sub.date) as "openingVolume", sub.* from(
1468
+ select lag(sub."closingQty", 1, 0::double precision) over (partition by sub.bizplace_id order by sub.date) as "openingQty",
1469
+ lag(sub."closingVolume", 1, 0::numeric) over (partition by sub.bizplace_id order by sub.date) as "openingVolume", sub.* from(
1470
1470
  select (select sum(tmp2.total) from temp_reduced_inventory_histories_with_date_range tmp2 where tmp2.row <= tmp.row) as "closingQty",
1471
1471
  (select sum(tmp2."totalVolume") from temp_reduced_inventory_histories_with_date_range tmp2 where tmp2.row <= tmp.row) as "closingVolume", tmp.* from
1472
1472
  temp_reduced_inventory_histories_with_date_range tmp) sub
@@ -11,7 +11,7 @@ import {
11
11
  } from 'typeorm'
12
12
 
13
13
  import { User } from '@things-factory/auth-base'
14
- import { Product } from '@things-factory/product-base'
14
+ import { Product, ProductDetail} from '@things-factory/product-base'
15
15
  import { Domain } from '@things-factory/shell'
16
16
 
17
17
  import { Inventory } from '../inventory/inventory'
@@ -32,7 +32,8 @@ export class InventoryItem {
32
32
 
33
33
  @RelationId((inventoryItem: InventoryItem) => inventoryItem.domain)
34
34
  domainId?: string
35
-
35
+
36
+
36
37
  @Column()
37
38
  @Field()
38
39
  name: string
@@ -57,13 +58,19 @@ export class InventoryItem {
57
58
  @Field({ nullable: true })
58
59
  outboundOrderId: string
59
60
 
61
+
60
62
  @ManyToOne(type => Product)
61
63
  @Field(type => Product, { nullable: true })
62
64
  product?: Product
63
65
 
66
+
64
67
  @RelationId((inventoryItem: InventoryItem) => inventoryItem.product)
65
68
  productId?: string
66
69
 
70
+ @ManyToOne(type => ProductDetail, { nullable: true })
71
+ @Field({ nullable: true })
72
+ productDetail: ProductDetail
73
+
67
74
  @ManyToOne(type => Inventory)
68
75
  @Field(type => Inventory)
69
76
  inventory?: Inventory
@@ -11,7 +11,7 @@ import {
11
11
  } from 'typeorm'
12
12
 
13
13
  import { User } from '@things-factory/auth-base'
14
- import { Product } from '@things-factory/product-base'
14
+ import { Product, ProductDetail } from '@things-factory/product-base'
15
15
  import { Domain } from '@things-factory/shell'
16
16
 
17
17
  @Entity()
@@ -60,6 +60,10 @@ export class InventoryProduct {
60
60
  @RelationId((inventoryProduct: InventoryProduct) => inventoryProduct.product)
61
61
  productId?: string
62
62
 
63
+ @ManyToOne(type => ProductDetail, { nullable: true })
64
+ @Field({ nullable: true })
65
+ productDetail: ProductDetail
66
+
63
67
  @CreateDateColumn()
64
68
  @Field({ nullable: true })
65
69
  createdAt?: Date
@@ -77,10 +77,12 @@ export class LocationMutation {
77
77
  @Mutation(returns => Boolean)
78
78
  async deleteAllLocations(@Arg('warehouseId') warehouseId: string, @Ctx() context: any) {
79
79
  const { tx }: { tx: EntityManager } = context.state
80
+ let warehouse = await tx.getRepository(Warehouse).findOne(warehouseId)
80
81
 
81
82
  await tx.getRepository(Location).delete({
82
- warehouse: await tx.getRepository(Warehouse).findOne(warehouseId)
83
+ warehouse
83
84
  })
85
+ return true
84
86
  }
85
87
  }
86
88