@things-factory/warehouse-base 3.6.39 → 3.6.46

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 (20) hide show
  1. package/dist-server/graphql/resolvers/inventory/check-product-identicality.js +2 -2
  2. package/dist-server/graphql/resolvers/inventory/check-product-identicality.js.map +1 -1
  3. package/dist-server/graphql/resolvers/location/location-occupancies.js +15 -28
  4. package/dist-server/graphql/resolvers/location/location-occupancies.js.map +1 -1
  5. package/dist-server/graphql/resolvers/movement/inbound-movements-counter.js +5 -7
  6. package/dist-server/graphql/resolvers/movement/inbound-movements-counter.js.map +1 -1
  7. package/dist-server/graphql/resolvers/movement/outbound-movements-counter.js +5 -7
  8. package/dist-server/graphql/resolvers/movement/outbound-movements-counter.js.map +1 -1
  9. package/dist-server/graphql/resolvers/movement/weekly-movements-counter.js +14 -32
  10. package/dist-server/graphql/resolvers/movement/weekly-movements-counter.js.map +1 -1
  11. package/dist-server/graphql/types/inventory/index.js +1 -1
  12. package/dist-server/graphql/types/location/index.js +1 -1
  13. package/package.json +8 -8
  14. package/server/graphql/resolvers/inventory/check-product-identicality.ts +4 -2
  15. package/server/graphql/resolvers/location/location-occupancies.ts +19 -31
  16. package/server/graphql/resolvers/movement/inbound-movements-counter.ts +8 -7
  17. package/server/graphql/resolvers/movement/outbound-movements-counter.ts +8 -7
  18. package/server/graphql/resolvers/movement/weekly-movements-counter.ts +21 -31
  19. package/server/graphql/types/inventory/index.ts +1 -1
  20. package/server/graphql/types/location/index.ts +1 -1
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.checkProductIdenticalityResolver = void 0;
4
- const typeorm_1 = require("typeorm");
5
4
  const constants_1 = require("../../../constants");
6
5
  const entities_1 = require("../../../entities");
7
6
  exports.checkProductIdenticalityResolver = {
8
7
  async checkProductIdenticality(_, { palletA, palletB }, context) {
9
8
  var _a, _b;
10
- const invRepo = (0, typeorm_1.getRepository)(entities_1.Inventory);
9
+ const { tx } = context.state;
10
+ const invRepo = tx.getRepository(entities_1.Inventory);
11
11
  const invA = await invRepo.findOne({
12
12
  where: { domain: context.state.domain, palletId: palletA, status: constants_1.INVENTORY_STATUS.STORED },
13
13
  relations: ['product']
@@ -1 +1 @@
1
- {"version":3,"file":"check-product-identicality.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/inventory/check-product-identicality.ts"],"names":[],"mappings":";;;AAAA,qCAAmD;AACnD,kDAAqD;AACrD,gDAA6C;AAEhC,QAAA,gCAAgC,GAAG;IAC9C,KAAK,CAAC,wBAAwB,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,OAAY;;QACvE,MAAM,OAAO,GAA0B,IAAA,uBAAa,EAAC,oBAAS,CAAC,CAAA;QAC/D,MAAM,IAAI,GAAc,MAAM,OAAO,CAAC,OAAO,CAAC;YAC5C,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,4BAAgB,CAAC,MAAM,EAAE;YAC3F,SAAS,EAAE,CAAC,SAAS,CAAC;SACvB,CAAC,CAAA;QAEF,MAAM,IAAI,GAAc,MAAM,OAAO,CAAC,OAAO,CAAC;YAC5C,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,4BAAgB,CAAC,MAAM,EAAE;YAC3F,SAAS,EAAE,CAAC,SAAS,CAAC;SACvB,CAAC,CAAA;QAEF,OAAO,CACL,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,OAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAA;YAC/B,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,0CAAE,EAAE,OAAK,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,0CAAE,EAAE,CAAA;YACvC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,OAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAA,CACxC,CAAA;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"check-product-identicality.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/inventory/check-product-identicality.ts"],"names":[],"mappings":";;;AAEA,kDAAqD;AACrD,gDAA6C;AAEhC,QAAA,gCAAgC,GAAG;IAC9C,KAAK,CAAC,wBAAwB,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,OAAY;;QACvE,MAAM,EAAE,EAAE,EAAE,GAA0B,OAAO,CAAC,KAAK,CAAA;QACnD,MAAM,OAAO,GAA0B,EAAE,CAAC,aAAa,CAAC,oBAAS,CAAC,CAAA;QAClE,MAAM,IAAI,GAAc,MAAM,OAAO,CAAC,OAAO,CAAC;YAC5C,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,4BAAgB,CAAC,MAAM,EAAE;YAC3F,SAAS,EAAE,CAAC,SAAS,CAAC;SACvB,CAAC,CAAA;QAEF,MAAM,IAAI,GAAc,MAAM,OAAO,CAAC,OAAO,CAAC;YAC5C,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,4BAAgB,CAAC,MAAM,EAAE;YAC3F,SAAS,EAAE,CAAC,SAAS,CAAC;SACvB,CAAC,CAAA;QAEF,OAAO,CACL,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,OAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAA;YAC/B,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,0CAAE,EAAE,OAAK,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,0CAAE,EAAE,CAAA;YACvC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,OAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAA,CACxC,CAAA;IACH,CAAC;CACF,CAAA"}
@@ -4,38 +4,25 @@ exports.locationOccupanciesResolver = void 0;
4
4
  const typeorm_1 = require("typeorm");
5
5
  const entities_1 = require("../../../entities");
6
6
  exports.locationOccupanciesResolver = {
7
- async locationOccupancies(_, { warehouse }, context) {
7
+ async locationOccupancies(_, { warehouse, types }, context) {
8
+ var _a, _b;
8
9
  const { domain } = context.state;
9
- var where = {
10
- domain: domain,
11
- type: 'SHELF'
12
- };
13
- if (warehouse !== '') {
14
- const foundWarehouse = await (0, typeorm_1.getRepository)(entities_1.Warehouse).findOne({
15
- where: {
16
- domain: domain,
17
- name: warehouse
18
- }
19
- });
20
- if (foundWarehouse)
21
- where['warehouse'] = foundWarehouse.id;
22
- else
23
- throw new Error(`${warehouse} was not found!`);
24
- }
25
- const locations = await (0, typeorm_1.getRepository)(entities_1.Location).find({
26
- where,
27
- relations: ['domain', 'warehouse', 'creator', 'updater']
28
- });
29
- let occupied = 0;
30
- locations.forEach(location => {
31
- if (location.status === 'OCCUPIED')
32
- occupied += 1;
10
+ const foundWarehouse = await (0, typeorm_1.getRepository)(entities_1.Warehouse).findOne({
11
+ where: {
12
+ domain,
13
+ name: warehouse
14
+ },
15
+ relations: ['locations']
33
16
  });
17
+ if (!foundWarehouse)
18
+ throw new Error(`${warehouse} was not found!`);
19
+ const locations = types && types.length
20
+ ? (_a = foundWarehouse === null || foundWarehouse === void 0 ? void 0 : foundWarehouse.locations) === null || _a === void 0 ? void 0 : _a.filter((location) => types.indexOf(location.type) !== -1)
21
+ : foundWarehouse === null || foundWarehouse === void 0 ? void 0 : foundWarehouse.locations;
34
22
  const total = locations.length;
23
+ const occupied = ((_b = locations.filter((location) => location.status === 'OCCUPIED')) === null || _b === void 0 ? void 0 : _b.length) || 0;
35
24
  const empty = total - occupied;
36
- let percentage = 0;
37
- if (occupied !== 0)
38
- percentage = Math.round((occupied / total) * 100);
25
+ const percentage = occupied > 0 ? Math.round((occupied / total) * 100) : 0;
39
26
  return { total, occupied, empty, percentage };
40
27
  }
41
28
  };
@@ -1 +1 @@
1
- {"version":3,"file":"location-occupancies.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/location/location-occupancies.ts"],"names":[],"mappings":";;;AACA,qCAAuC;AACvC,gDAAuD;AAE1C,QAAA,2BAA2B,GAAG;IACzC,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,EAAE,SAAS,EAAE,EAAE,OAAY;QAC3D,MAAM,EAAE,MAAM,EAAE,GAAuB,OAAO,CAAC,KAAK,CAAA;QAEpD,IAAI,KAAK,GAAG;YACV,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,OAAO;SACd,CAAA;QAED,IAAI,SAAS,KAAK,EAAE,EAAE;YACpB,MAAM,cAAc,GAAG,MAAM,IAAA,uBAAa,EAAC,oBAAS,CAAC,CAAC,OAAO,CAAC;gBAC5D,KAAK,EAAE;oBACL,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,SAAS;iBAChB;aACF,CAAC,CAAA;YAEF,IAAI,cAAc;gBAAE,KAAK,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,EAAE,CAAA;;gBACrD,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,iBAAiB,CAAC,CAAA;SACpD;QAED,MAAM,SAAS,GAAG,MAAM,IAAA,uBAAa,EAAC,mBAAQ,CAAC,CAAC,IAAI,CAAC;YACnD,KAAK;YACL,SAAS,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;SACzD,CAAC,CAAA;QAEF,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC3B,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU;gBAAE,QAAQ,IAAI,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAA;QAE9B,MAAM,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAA;QAE9B,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,IAAI,QAAQ,KAAK,CAAC;YAAE,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAA;QAErE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;IAC/C,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"location-occupancies.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/location/location-occupancies.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AAIvC,gDAAuD;AAE1C,QAAA,2BAA2B,GAAG;IACzC,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAY;;QAClE,MAAM,EAAE,MAAM,EAAE,GAAuB,OAAO,CAAC,KAAK,CAAA;QAEpD,MAAM,cAAc,GAAc,MAAM,IAAA,uBAAa,EAAC,oBAAS,CAAC,CAAC,OAAO,CAAC;YACvE,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI,EAAE,SAAS;aAChB;YACD,SAAS,EAAE,CAAC,WAAW,CAAC;SACzB,CAAC,CAAA;QAEF,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,iBAAiB,CAAC,CAAA;QAEnE,MAAM,SAAS,GACb,KAAK,IAAI,KAAK,CAAC,MAAM;YACnB,CAAC,CAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,SAAS,0CAAE,MAAM,CAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAChG,CAAC,CAAC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,SAAS,CAAA;QAE/B,MAAM,KAAK,GAAW,SAAS,CAAC,MAAM,CAAA;QACtC,MAAM,QAAQ,GAAW,CAAA,MAAA,SAAS,CAAC,MAAM,CAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,0CAAE,MAAM,KAAI,CAAC,CAAA;QAC9G,MAAM,KAAK,GAAW,KAAK,GAAG,QAAQ,CAAA;QACtC,MAAM,UAAU,GAAW,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAElF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;IAC/C,CAAC;CACF,CAAA"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.inboundMovementsCounterResolver = void 0;
4
- const biz_base_1 = require("@things-factory/biz-base");
5
4
  const typeorm_1 = require("typeorm");
5
+ const biz_base_1 = require("@things-factory/biz-base");
6
6
  const entities_1 = require("../../../entities");
7
7
  exports.inboundMovementsCounterResolver = {
8
8
  async inboundMovementsCounter(_, params, context) {
@@ -46,12 +46,10 @@ exports.inboundMovementsCounterResolver = {
46
46
  compareDate.setHours(0);
47
47
  compareDate.setMinutes(0);
48
48
  compareDate.setSeconds(0);
49
- items = items.map(item => {
50
- for (let x = 0; x < counter.length; x++) {
51
- if (counter[x].inbound_date.toLocaleDateString() === compareDate.toLocaleDateString()) {
52
- item.count = counter[x].count;
53
- }
54
- }
49
+ items = items.map((item) => {
50
+ var _a;
51
+ item.count =
52
+ ((_a = counter.find(ctr => ctr.inbound_date.toLocaleDateString() === compareDate.toLocaleDateString())) === null || _a === void 0 ? void 0 : _a.count) || 0;
55
53
  compareDate.setDate(compareDate.getDate() + 1);
56
54
  return item;
57
55
  });
@@ -1 +1 @@
1
- {"version":3,"file":"inbound-movements-counter.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/movement/inbound-movements-counter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbound-movements-counter.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/movement/inbound-movements-counter.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.outboundMovementsCounterResolver = void 0;
4
- const biz_base_1 = require("@things-factory/biz-base");
5
4
  const typeorm_1 = require("typeorm");
5
+ const biz_base_1 = require("@things-factory/biz-base");
6
6
  const entities_1 = require("../../../entities");
7
7
  exports.outboundMovementsCounterResolver = {
8
8
  async outboundMovementsCounter(_, { month, year }, context) {
@@ -48,12 +48,10 @@ exports.outboundMovementsCounterResolver = {
48
48
  compareDate.setHours(0);
49
49
  compareDate.setMinutes(0);
50
50
  compareDate.setSeconds(0);
51
- items = items.map(item => {
52
- for (let x = 0; x < counter.length; x++) {
53
- if (counter[x].outbound_date.toLocaleDateString() === compareDate.toLocaleDateString()) {
54
- item.count = counter[x].count;
55
- }
56
- }
51
+ items = items.map((item) => {
52
+ var _a;
53
+ item.count =
54
+ ((_a = counter.find(ctr => ctr.outbound_date.toLocaleDateString() === compareDate.toLocaleDateString())) === null || _a === void 0 ? void 0 : _a.count) || 0;
57
55
  compareDate.setDate(compareDate.getDate() + 1);
58
56
  return item;
59
57
  });
@@ -1 +1 @@
1
- {"version":3,"file":"outbound-movements-counter.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/movement/outbound-movements-counter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outbound-movements-counter.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/movement/outbound-movements-counter.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.weeklyMovementsCounterResolver = void 0;
4
- const biz_base_1 = require("@things-factory/biz-base");
5
4
  const typeorm_1 = require("typeorm");
5
+ const biz_base_1 = require("@things-factory/biz-base");
6
6
  const entities_1 = require("../../../entities");
7
7
  exports.weeklyMovementsCounterResolver = {
8
8
  async weeklyMovementsCounter(_, { month, year }, context) {
@@ -51,41 +51,23 @@ exports.weeklyMovementsCounterResolver = {
51
51
  ) src
52
52
  group by movement_date
53
53
  `);
54
- // pre-set the movements accordingly with initial value of in/outbound = 0
55
54
  let movements = [
56
- { week: 'Week 01', inbound: 0, outbound: 0 },
57
- { week: 'Week 02', inbound: 0, outbound: 0 },
58
- { week: 'Week 03', inbound: 0, outbound: 0 },
59
- { week: 'Week 04', inbound: 0, outbound: 0 }
55
+ Object.assign({ week: 'Week 01' }, getMovementByWeek(data, [0, 7])),
56
+ Object.assign({ week: 'Week 02' }, getMovementByWeek(data, [8, 14])),
57
+ Object.assign({ week: 'Week 03' }, getMovementByWeek(data, [15, 21])),
58
+ Object.assign({ week: 'Week 04' }, getMovementByWeek(data, [21, 31]))
60
59
  ];
61
- // loop through all date that were retrieved from database
62
- for (let i = 0; i < data.length; i++) {
63
- // asign data based on week number
64
- movements = movements.map(movement => {
65
- const compareDate = data[i].movement_date;
66
- const inboundCount = parseInt(data[i].inbound_count);
67
- const outboundCount = parseInt(data[i].outbound_count);
68
- if (movement.week === 'Week 01' && compareDate.getDate() > 0 && compareDate.getDate() <= 7) {
69
- movement.inbound += inboundCount;
70
- movement.outbound += outboundCount;
71
- }
72
- else if (movement.week === 'Week 02' && compareDate.getDate() > 7 && compareDate.getDate() <= 14) {
73
- movement.inbound += inboundCount;
74
- movement.outbound += outboundCount;
75
- }
76
- else if (movement.week === 'Week 03' && compareDate.getDate() > 14 && compareDate.getDate() <= 21) {
77
- movement.inbound += inboundCount;
78
- movement.outbound += outboundCount;
79
- }
80
- else if (movement.week === 'Week 04' && compareDate.getDate() > 21) {
81
- movement.inbound += inboundCount;
82
- movement.outbound += outboundCount;
83
- }
84
- return movement;
85
- });
86
- }
87
60
  // return total 4 weeks of in/outbound movements for a specific month
88
61
  return movements;
89
62
  }
90
63
  };
64
+ function getMovementByWeek(data, range) {
65
+ return data
66
+ .filter(item => item.movement_date.getDate() > range[0] && item.movement_date.getDate() <= range[1])
67
+ .reduce((inout, curr) => {
68
+ inout.inbound += Number(curr.inbound_count);
69
+ inout.outbound += Number(curr.outbound_count);
70
+ return inout;
71
+ }, { inbound: 0, outbound: 0 });
72
+ }
91
73
  //# sourceMappingURL=weekly-movements-counter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"weekly-movements-counter.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/movement/weekly-movements-counter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"weekly-movements-counter.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/movement/weekly-movements-counter.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,7 @@ exports.Query = `
46
46
  inventoryByPallet(palletId: String!): Inventory @privilege(category: "inventory", privilege: "query")
47
47
  inventoriesByProduct(filters: [Filter], pagination: Pagination, sortings: [Sorting]): InventoryList @privilege(category: "inventory", privilege: "query") @transaction
48
48
  inventoriesByStrategy(worksheetId: String!, batchId: String!, bizplaceId: String, productName: String!, productSku: String!, packingType: String!, pickingStrategy: String! locationSortingRules: [Sorting]): InventoryList @transaction
49
- checkProductIdenticality(palletA: String!, palletB: String!): Boolean
49
+ checkProductIdenticality(palletA: String!, palletB: String!): Boolean @transaction
50
50
  checkCartonIdenticality(cartonA: String!, palletA: String!, cartonB: String!): Boolean
51
51
  checkInventoryOwner(palletId: String!, bizplaceName: String!): Boolean
52
52
  inventoriesByBundle(filters: [Filter], pagination: Pagination, sortings: [Sorting]): InventoryBundleGroupDetail @privilege(category: "inventory", privilege: "query")
@@ -36,7 +36,7 @@ exports.Mutation = `
36
36
  `;
37
37
  exports.Query = `
38
38
  locations(filters: [Filter], pagination: Pagination, sortings: [Sorting]): LocationList @privilege(category: "warehouse", privilege: "query")
39
- locationOccupancies(warehouse: String): LocationOccupancy @privilege(category: "warehouse", privilege: "query")
39
+ locationOccupancies(warehouse: String!, types: [String]): LocationOccupancy @privilege(category: "warehouse", privilege: "query")
40
40
  location(name: String!): Location @privilege(category: "warehouse", privilege: "query")
41
41
  locationByName(name: String!): Location @privilege(category: "warehouse", privilege: "query")
42
42
  locationsByGroup(filters: [Filter], pagination: Pagination, sortings: [Sorting]): LocationList @privilege(category: "warehouse", privilege: "query")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/warehouse-base",
3
- "version": "3.6.39",
3
+ "version": "3.6.46",
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": "^3.6.38",
28
- "@things-factory/id-rule-base": "^3.6.39",
29
- "@things-factory/integration-sellercraft": "^3.6.39",
30
- "@things-factory/marketplace-base": "^3.6.39",
31
- "@things-factory/product-base": "^3.6.38",
32
- "@things-factory/setting-base": "^3.6.38"
27
+ "@things-factory/biz-base": "^3.6.46",
28
+ "@things-factory/id-rule-base": "^3.6.46",
29
+ "@things-factory/integration-sellercraft": "^3.6.46",
30
+ "@things-factory/marketplace-base": "^3.6.46",
31
+ "@things-factory/product-base": "^3.6.46",
32
+ "@things-factory/setting-base": "^3.6.46"
33
33
  },
34
- "gitHead": "0c0d02d7247a05196bf21879cc899931de55d2ef"
34
+ "gitHead": "07faaaad448fc81997ddcf300179e28b9ec8e2f7"
35
35
  }
@@ -1,10 +1,12 @@
1
- import { getRepository, Repository } from 'typeorm'
1
+ import { EntityManager, Repository } from 'typeorm'
2
+
2
3
  import { INVENTORY_STATUS } from '../../../constants'
3
4
  import { Inventory } from '../../../entities'
4
5
 
5
6
  export const checkProductIdenticalityResolver = {
6
7
  async checkProductIdenticality(_: any, { palletA, palletB }, context: any) {
7
- const invRepo: Repository<Inventory> = getRepository(Inventory)
8
+ const { tx }: { tx: EntityManager } = context.state
9
+ const invRepo: Repository<Inventory> = tx.getRepository(Inventory)
8
10
  const invA: Inventory = await invRepo.findOne({
9
11
  where: { domain: context.state.domain, palletId: palletA, status: INVENTORY_STATUS.STORED },
10
12
  relations: ['product']
@@ -1,44 +1,32 @@
1
- import { Domain } from '@things-factory/shell'
2
1
  import { getRepository } from 'typeorm'
2
+
3
+ import { Domain } from '@things-factory/shell'
4
+
3
5
  import { Location, Warehouse } from '../../../entities'
4
6
 
5
7
  export const locationOccupanciesResolver = {
6
- async locationOccupancies(_: any, { warehouse }, context: any) {
8
+ async locationOccupancies(_: any, { warehouse, types }, context: any) {
7
9
  const { domain }: { domain: Domain } = context.state
8
10
 
9
- var where = {
10
- domain: domain,
11
- type: 'SHELF'
12
- }
13
-
14
- if (warehouse !== '') {
15
- const foundWarehouse = await getRepository(Warehouse).findOne({
16
- where: {
17
- domain: domain,
18
- name: warehouse
19
- }
20
- })
21
-
22
- if (foundWarehouse) where['warehouse'] = foundWarehouse.id
23
- else throw new Error(`${warehouse} was not found!`)
24
- }
25
-
26
- const locations = await getRepository(Location).find({
27
- where,
28
- relations: ['domain', 'warehouse', 'creator', 'updater']
29
- })
30
-
31
- let occupied = 0
32
- locations.forEach(location => {
33
- if (location.status === 'OCCUPIED') occupied += 1
11
+ const foundWarehouse: Warehouse = await getRepository(Warehouse).findOne({
12
+ where: {
13
+ domain,
14
+ name: warehouse
15
+ },
16
+ relations: ['locations']
34
17
  })
35
18
 
36
- const total = locations.length
19
+ if (!foundWarehouse) throw new Error(`${warehouse} was not found!`)
37
20
 
38
- const empty = total - occupied
21
+ const locations: Location[] =
22
+ types && types.length
23
+ ? foundWarehouse?.locations?.filter((location: Location) => types.indexOf(location.type) !== -1)
24
+ : foundWarehouse?.locations
39
25
 
40
- let percentage = 0
41
- if (occupied !== 0) percentage = Math.round((occupied / total) * 100)
26
+ const total: number = locations.length
27
+ const occupied: number = locations.filter((location: Location) => location.status === 'OCCUPIED')?.length || 0
28
+ const empty: number = total - occupied
29
+ const percentage: number = occupied > 0 ? Math.round((occupied / total) * 100) : 0
42
30
 
43
31
  return { total, occupied, empty, percentage }
44
32
  }
@@ -1,7 +1,9 @@
1
+ import { getRepository } from 'typeorm'
2
+
1
3
  import { User } from '@things-factory/auth-base'
2
4
  import { getPermittedBizplaceIds } from '@things-factory/biz-base'
3
5
  import { Domain, ListParam } from '@things-factory/shell'
4
- import { getRepository } from 'typeorm'
6
+
5
7
  import { InventoryHistory } from '../../../entities'
6
8
 
7
9
  export const inboundMovementsCounterResolver = {
@@ -53,13 +55,12 @@ export const inboundMovementsCounterResolver = {
53
55
  compareDate.setMinutes(0)
54
56
  compareDate.setSeconds(0)
55
57
 
56
- items = items.map(item => {
57
- for (let x = 0; x < counter.length; x++) {
58
- if (counter[x].inbound_date.toLocaleDateString() === compareDate.toLocaleDateString()) {
59
- item.count = counter[x].count
60
- }
61
- }
58
+ items = items.map((item: { date: string; count: number }) => {
59
+ item.count =
60
+ counter.find(ctr => ctr.inbound_date.toLocaleDateString() === compareDate.toLocaleDateString())?.count || 0
61
+
62
62
  compareDate.setDate(compareDate.getDate() + 1)
63
+
63
64
  return item
64
65
  })
65
66
 
@@ -1,7 +1,9 @@
1
+ import { getRepository } from 'typeorm'
2
+
1
3
  import { User } from '@things-factory/auth-base'
2
4
  import { getPermittedBizplaceIds } from '@things-factory/biz-base'
3
5
  import { Domain } from '@things-factory/shell'
4
- import { getRepository } from 'typeorm'
6
+
5
7
  import { InventoryHistory } from '../../../entities'
6
8
 
7
9
  export const outboundMovementsCounterResolver = {
@@ -55,13 +57,12 @@ export const outboundMovementsCounterResolver = {
55
57
  compareDate.setMinutes(0)
56
58
  compareDate.setSeconds(0)
57
59
 
58
- items = items.map(item => {
59
- for (let x = 0; x < counter.length; x++) {
60
- if (counter[x].outbound_date.toLocaleDateString() === compareDate.toLocaleDateString()) {
61
- item.count = counter[x].count
62
- }
63
- }
60
+ items = items.map((item: { date: string; count: number }) => {
61
+ item.count =
62
+ counter.find(ctr => ctr.outbound_date.toLocaleDateString() === compareDate.toLocaleDateString())?.count || 0
63
+
64
64
  compareDate.setDate(compareDate.getDate() + 1)
65
+
65
66
  return item
66
67
  })
67
68
 
@@ -1,7 +1,9 @@
1
+ import { getRepository } from 'typeorm'
2
+
1
3
  import { User } from '@things-factory/auth-base'
2
4
  import { getPermittedBizplaceIds } from '@things-factory/biz-base'
3
5
  import { Domain } from '@things-factory/shell'
4
- import { getRepository } from 'typeorm'
6
+
5
7
  import { InventoryHistory } from '../../../entities'
6
8
 
7
9
  export const weeklyMovementsCounterResolver = {
@@ -55,40 +57,28 @@ export const weeklyMovementsCounterResolver = {
55
57
  group by movement_date
56
58
  `)
57
59
 
58
- // pre-set the movements accordingly with initial value of in/outbound = 0
59
60
  let movements = [
60
- { week: 'Week 01', inbound: 0, outbound: 0 },
61
- { week: 'Week 02', inbound: 0, outbound: 0 },
62
- { week: 'Week 03', inbound: 0, outbound: 0 },
63
- { week: 'Week 04', inbound: 0, outbound: 0 }
61
+ { week: 'Week 01', ...getMovementByWeek(data, [0, 7]) },
62
+ { week: 'Week 02', ...getMovementByWeek(data, [8, 14]) },
63
+ { week: 'Week 03', ...getMovementByWeek(data, [15, 21]) },
64
+ { week: 'Week 04', ...getMovementByWeek(data, [21, 31]) }
64
65
  ]
65
66
 
66
- // loop through all date that were retrieved from database
67
- for (let i = 0; i < data.length; i++) {
68
- // asign data based on week number
69
- movements = movements.map(movement => {
70
- const compareDate = data[i].movement_date
71
- const inboundCount = parseInt(data[i].inbound_count)
72
- const outboundCount = parseInt(data[i].outbound_count)
73
-
74
- if (movement.week === 'Week 01' && compareDate.getDate() > 0 && compareDate.getDate() <= 7) {
75
- movement.inbound += inboundCount
76
- movement.outbound += outboundCount
77
- } else if (movement.week === 'Week 02' && compareDate.getDate() > 7 && compareDate.getDate() <= 14) {
78
- movement.inbound += inboundCount
79
- movement.outbound += outboundCount
80
- } else if (movement.week === 'Week 03' && compareDate.getDate() > 14 && compareDate.getDate() <= 21) {
81
- movement.inbound += inboundCount
82
- movement.outbound += outboundCount
83
- } else if (movement.week === 'Week 04' && compareDate.getDate() > 21) {
84
- movement.inbound += inboundCount
85
- movement.outbound += outboundCount
86
- }
87
- return movement
88
- })
89
- }
90
-
91
67
  // return total 4 weeks of in/outbound movements for a specific month
92
68
  return movements
93
69
  }
94
70
  }
71
+
72
+ function getMovementByWeek(data, range): { inbound: number; outbound: number } {
73
+ return data
74
+ .filter(item => item.movement_date.getDate() > range[0] && item.movement_date.getDate() <= range[1])
75
+ .reduce(
76
+ (inout: { inbound: number; outbound: number }, curr) => {
77
+ inout.inbound += Number(curr.inbound_count)
78
+ inout.outbound += Number(curr.outbound_count)
79
+
80
+ return inout
81
+ },
82
+ { inbound: 0, outbound: 0 }
83
+ )
84
+ }
@@ -45,7 +45,7 @@ export const Query = /* GraphQL */ `
45
45
  inventoryByPallet(palletId: String!): Inventory @privilege(category: "inventory", privilege: "query")
46
46
  inventoriesByProduct(filters: [Filter], pagination: Pagination, sortings: [Sorting]): InventoryList @privilege(category: "inventory", privilege: "query") @transaction
47
47
  inventoriesByStrategy(worksheetId: String!, batchId: String!, bizplaceId: String, productName: String!, productSku: String!, packingType: String!, pickingStrategy: String! locationSortingRules: [Sorting]): InventoryList @transaction
48
- checkProductIdenticality(palletA: String!, palletB: String!): Boolean
48
+ checkProductIdenticality(palletA: String!, palletB: String!): Boolean @transaction
49
49
  checkCartonIdenticality(cartonA: String!, palletA: String!, cartonB: String!): Boolean
50
50
  checkInventoryOwner(palletId: String!, bizplaceName: String!): Boolean
51
51
  inventoriesByBundle(filters: [Filter], pagination: Pagination, sortings: [Sorting]): InventoryBundleGroupDetail @privilege(category: "inventory", privilege: "query")
@@ -35,7 +35,7 @@ export const Mutation = /* GraphQL */ `
35
35
 
36
36
  export const Query = /* GraphQL */ `
37
37
  locations(filters: [Filter], pagination: Pagination, sortings: [Sorting]): LocationList @privilege(category: "warehouse", privilege: "query")
38
- locationOccupancies(warehouse: String): LocationOccupancy @privilege(category: "warehouse", privilege: "query")
38
+ locationOccupancies(warehouse: String!, types: [String]): LocationOccupancy @privilege(category: "warehouse", privilege: "query")
39
39
  location(name: String!): Location @privilege(category: "warehouse", privilege: "query")
40
40
  locationByName(name: String!): Location @privilege(category: "warehouse", privilege: "query")
41
41
  locationsByGroup(filters: [Filter], pagination: Pagination, sortings: [Sorting]): LocationList @privilege(category: "warehouse", privilege: "query")