@things-factory/warehouse-base 5.0.7 → 5.0.11

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 (156) hide show
  1. package/dist-server/constants/index.js +6 -19
  2. package/dist-server/constants/index.js.map +1 -1
  3. package/dist-server/constants/inventory.js.map +1 -1
  4. package/dist-server/constants/location.js.map +1 -1
  5. package/dist-server/constants/pallet.js.map +1 -1
  6. package/dist-server/constants/rule-type.js.map +1 -1
  7. package/dist-server/constants/tote.js.map +1 -1
  8. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
  9. package/dist-server/controllers/ecommerce/index.js +3 -16
  10. package/dist-server/controllers/ecommerce/index.js.map +1 -1
  11. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  12. package/dist-server/controllers/index.js +3 -16
  13. package/dist-server/controllers/index.js.map +1 -1
  14. package/dist-server/controllers/warehouse-controller.js.map +1 -1
  15. package/dist-server/index.js +6 -19
  16. package/dist-server/index.js.map +1 -1
  17. package/dist-server/middlewares/index.js.map +1 -1
  18. package/dist-server/migrations/index.js.map +1 -1
  19. package/dist-server/service/index.js +28 -41
  20. package/dist-server/service/index.js.map +1 -1
  21. package/dist-server/service/inventory/index.js.map +1 -1
  22. package/dist-server/service/inventory/inventory-mutation.js +50 -61
  23. package/dist-server/service/inventory/inventory-mutation.js.map +1 -1
  24. package/dist-server/service/inventory/inventory-query.js +124 -135
  25. package/dist-server/service/inventory/inventory-query.js.map +1 -1
  26. package/dist-server/service/inventory/inventory-types.js +198 -206
  27. package/dist-server/service/inventory/inventory-types.js.map +1 -1
  28. package/dist-server/service/inventory/inventory.js +133 -141
  29. package/dist-server/service/inventory/inventory.js.map +1 -1
  30. package/dist-server/service/inventory-change/index.js.map +1 -1
  31. package/dist-server/service/inventory-change/inventory-change-mutation.js +51 -62
  32. package/dist-server/service/inventory-change/inventory-change-mutation.js.map +1 -1
  33. package/dist-server/service/inventory-change/inventory-change-query.js +29 -40
  34. package/dist-server/service/inventory-change/inventory-change-query.js.map +1 -1
  35. package/dist-server/service/inventory-change/inventory-change-types.js +20 -28
  36. package/dist-server/service/inventory-change/inventory-change-types.js.map +1 -1
  37. package/dist-server/service/inventory-change/inventory-change.js +68 -76
  38. package/dist-server/service/inventory-change/inventory-change.js.map +1 -1
  39. package/dist-server/service/inventory-history/index.js.map +1 -1
  40. package/dist-server/service/inventory-history/inventory-history-mutation.js +33 -44
  41. package/dist-server/service/inventory-history/inventory-history-mutation.js.map +1 -1
  42. package/dist-server/service/inventory-history/inventory-history-query.js +105 -116
  43. package/dist-server/service/inventory-history/inventory-history-query.js.map +1 -1
  44. package/dist-server/service/inventory-history/inventory-history-types.js +282 -290
  45. package/dist-server/service/inventory-history/inventory-history-types.js.map +1 -1
  46. package/dist-server/service/inventory-history/inventory-history.js +82 -90
  47. package/dist-server/service/inventory-history/inventory-history.js.map +1 -1
  48. package/dist-server/service/inventory-item/index.js.map +1 -1
  49. package/dist-server/service/inventory-item/inventory-item-mutation.js +47 -58
  50. package/dist-server/service/inventory-item/inventory-item-mutation.js.map +1 -1
  51. package/dist-server/service/inventory-item/inventory-item-query.js +41 -52
  52. package/dist-server/service/inventory-item/inventory-item-query.js.map +1 -1
  53. package/dist-server/service/inventory-item/inventory-item-type.js +44 -52
  54. package/dist-server/service/inventory-item/inventory-item-type.js.map +1 -1
  55. package/dist-server/service/inventory-item/inventory-item.js +44 -52
  56. package/dist-server/service/inventory-item/inventory-item.js.map +1 -1
  57. package/dist-server/service/inventory-item-change/index.js.map +1 -1
  58. package/dist-server/service/inventory-item-change/inventory-item-change-mutation.js +33 -44
  59. package/dist-server/service/inventory-item-change/inventory-item-change-mutation.js.map +1 -1
  60. package/dist-server/service/inventory-item-change/inventory-item-change-query.js +29 -40
  61. package/dist-server/service/inventory-item-change/inventory-item-change-query.js.map +1 -1
  62. package/dist-server/service/inventory-item-change/inventory-item-change-type.js +40 -48
  63. package/dist-server/service/inventory-item-change/inventory-item-change-type.js.map +1 -1
  64. package/dist-server/service/inventory-item-change/inventory-item-change.js +34 -42
  65. package/dist-server/service/inventory-item-change/inventory-item-change.js.map +1 -1
  66. package/dist-server/service/inventory-product/index.js.map +1 -1
  67. package/dist-server/service/inventory-product/inventory-product-mutation.js +33 -44
  68. package/dist-server/service/inventory-product/inventory-product-mutation.js.map +1 -1
  69. package/dist-server/service/inventory-product/inventory-product-query.js +29 -40
  70. package/dist-server/service/inventory-product/inventory-product-query.js.map +1 -1
  71. package/dist-server/service/inventory-product/inventory-product-type.js +34 -42
  72. package/dist-server/service/inventory-product/inventory-product-type.js.map +1 -1
  73. package/dist-server/service/inventory-product/inventory-product.js +34 -42
  74. package/dist-server/service/inventory-product/inventory-product.js.map +1 -1
  75. package/dist-server/service/location/index.js.map +1 -1
  76. package/dist-server/service/location/location-mutation.js +39 -50
  77. package/dist-server/service/location/location-mutation.js.map +1 -1
  78. package/dist-server/service/location/location-query.js +65 -76
  79. package/dist-server/service/location/location-query.js.map +1 -1
  80. package/dist-server/service/location/location-types.js +105 -113
  81. package/dist-server/service/location/location-types.js.map +1 -1
  82. package/dist-server/service/location/location.js +41 -49
  83. package/dist-server/service/location/location.js.map +1 -1
  84. package/dist-server/service/movement/index.js.map +1 -1
  85. package/dist-server/service/movement/movement-mutation.js +21 -32
  86. package/dist-server/service/movement/movement-mutation.js.map +1 -1
  87. package/dist-server/service/movement/movement-query.js +51 -65
  88. package/dist-server/service/movement/movement-query.js.map +1 -1
  89. package/dist-server/service/movement/movement-types.js +43 -51
  90. package/dist-server/service/movement/movement-types.js.map +1 -1
  91. package/dist-server/service/movement/movement.js +30 -38
  92. package/dist-server/service/movement/movement.js.map +1 -1
  93. package/dist-server/service/pallet/index.js.map +1 -1
  94. package/dist-server/service/pallet/pallet-mutation.js +39 -50
  95. package/dist-server/service/pallet/pallet-mutation.js.map +1 -1
  96. package/dist-server/service/pallet/pallet-query.js +48 -59
  97. package/dist-server/service/pallet/pallet-query.js.map +1 -1
  98. package/dist-server/service/pallet/pallet-types.js +39 -47
  99. package/dist-server/service/pallet/pallet-types.js.map +1 -1
  100. package/dist-server/service/pallet/pallet.js +34 -42
  101. package/dist-server/service/pallet/pallet.js.map +1 -1
  102. package/dist-server/service/pallet-count/index.js.map +1 -1
  103. package/dist-server/service/pallet-count/pallet-count-mutation.js +39 -50
  104. package/dist-server/service/pallet-count/pallet-count-mutation.js.map +1 -1
  105. package/dist-server/service/pallet-count/pallet-count-query.js +28 -39
  106. package/dist-server/service/pallet-count/pallet-count-query.js.map +1 -1
  107. package/dist-server/service/pallet-count/pallet-count-types.js +20 -28
  108. package/dist-server/service/pallet-count/pallet-count-types.js.map +1 -1
  109. package/dist-server/service/pallet-count/pallet-count.js +26 -34
  110. package/dist-server/service/pallet-count/pallet-count.js.map +1 -1
  111. package/dist-server/service/pallet-history/index.js.map +1 -1
  112. package/dist-server/service/pallet-history/pallet-history-mutation.js +33 -44
  113. package/dist-server/service/pallet-history/pallet-history-mutation.js.map +1 -1
  114. package/dist-server/service/pallet-history/pallet-history-query.js +29 -40
  115. package/dist-server/service/pallet-history/pallet-history-query.js.map +1 -1
  116. package/dist-server/service/pallet-history/pallet-history-types.js +20 -28
  117. package/dist-server/service/pallet-history/pallet-history-types.js.map +1 -1
  118. package/dist-server/service/pallet-history/pallet-history.js +34 -42
  119. package/dist-server/service/pallet-history/pallet-history.js.map +1 -1
  120. package/dist-server/service/reduced-inventory-history/index.js.map +1 -1
  121. package/dist-server/service/reduced-inventory-history/reduced-inventory-history.js +52 -60
  122. package/dist-server/service/reduced-inventory-history/reduced-inventory-history.js.map +1 -1
  123. package/dist-server/service/tote/index.js.map +1 -1
  124. package/dist-server/service/tote/tote-mutation.js +46 -57
  125. package/dist-server/service/tote/tote-mutation.js.map +1 -1
  126. package/dist-server/service/tote/tote-query.js +44 -55
  127. package/dist-server/service/tote/tote-query.js.map +1 -1
  128. package/dist-server/service/tote/tote-types.js +24 -32
  129. package/dist-server/service/tote/tote-types.js.map +1 -1
  130. package/dist-server/service/tote/tote.js +30 -38
  131. package/dist-server/service/tote/tote.js.map +1 -1
  132. package/dist-server/service/warehouse/index.js.map +1 -1
  133. package/dist-server/service/warehouse/warehouse-mutation.js +33 -44
  134. package/dist-server/service/warehouse/warehouse-mutation.js.map +1 -1
  135. package/dist-server/service/warehouse/warehouse-query.js +29 -40
  136. package/dist-server/service/warehouse/warehouse-query.js.map +1 -1
  137. package/dist-server/service/warehouse/warehouse-types.js +28 -36
  138. package/dist-server/service/warehouse/warehouse-types.js.map +1 -1
  139. package/dist-server/service/warehouse/warehouse.js +31 -39
  140. package/dist-server/service/warehouse/warehouse.js.map +1 -1
  141. package/dist-server/tsconfig.tsbuildinfo +1 -0
  142. package/dist-server/utils/datetime-util.js.map +1 -1
  143. package/dist-server/utils/index.js +4 -17
  144. package/dist-server/utils/index.js.map +1 -1
  145. package/dist-server/utils/inventory-no-generator.js.map +1 -1
  146. package/dist-server/utils/inventory-util.js.map +1 -1
  147. package/package.json +8 -8
  148. package/server/service/inventory/inventory-mutation.ts +2 -2
  149. package/server/service/inventory/inventory-query.ts +2 -2
  150. package/server/service/inventory/inventory.ts +6 -5
  151. package/server/service/inventory-change/inventory-change-mutation.ts +1 -1
  152. package/server/service/inventory-change/inventory-change-query.ts +2 -2
  153. package/server/service/inventory-history/inventory-history-query.ts +29 -28
  154. package/server/service/inventory-history/inventory-history.ts +39 -39
  155. package/server/service/inventory-item/inventory-item-mutation.ts +3 -3
  156. package/server/service/movement/movement-query.ts +3 -6
@@ -1,18 +1,7 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
3
  exports.approveInventoryChanges = exports.InventoryChangeMutation = void 0;
4
+ const tslib_1 = require("tslib");
16
5
  const type_graphql_1 = require("type-graphql");
17
6
  const typeorm_1 = require("typeorm");
18
7
  const auth_base_1 = require("@things-factory/auth-base");
@@ -335,83 +324,83 @@ let InventoryChangeMutation = class InventoryChangeMutation {
335
324
  return true;
336
325
  }
337
326
  };
338
- __decorate([
327
+ tslib_1.__decorate([
339
328
  (0, type_graphql_1.Directive)('@transaction'),
340
329
  (0, type_graphql_1.Mutation)(returns => inventory_change_1.InventoryChange),
341
- __param(0, (0, type_graphql_1.Arg)('inventoryChange')),
342
- __param(1, (0, type_graphql_1.Ctx)()),
343
- __metadata("design:type", Function),
344
- __metadata("design:paramtypes", [inventory_change_types_1.NewInventoryChange, Object]),
345
- __metadata("design:returntype", Promise)
330
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('inventoryChange')),
331
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
332
+ tslib_1.__metadata("design:type", Function),
333
+ tslib_1.__metadata("design:paramtypes", [inventory_change_types_1.NewInventoryChange, Object]),
334
+ tslib_1.__metadata("design:returntype", Promise)
346
335
  ], InventoryChangeMutation.prototype, "createInventoryChange", null);
347
- __decorate([
336
+ tslib_1.__decorate([
348
337
  (0, type_graphql_1.Directive)('@transaction'),
349
338
  (0, type_graphql_1.Mutation)(returns => inventory_change_1.InventoryChange),
350
- __param(0, (0, type_graphql_1.Arg)('name')),
351
- __param(1, (0, type_graphql_1.Arg)('patch')),
352
- __param(2, (0, type_graphql_1.Ctx)()),
353
- __metadata("design:type", Function),
354
- __metadata("design:paramtypes", [String, inventory_change_types_1.InventoryChangePatch, Object]),
355
- __metadata("design:returntype", Promise)
339
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('name')),
340
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
341
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
342
+ tslib_1.__metadata("design:type", Function),
343
+ tslib_1.__metadata("design:paramtypes", [String, inventory_change_types_1.InventoryChangePatch, Object]),
344
+ tslib_1.__metadata("design:returntype", Promise)
356
345
  ], InventoryChangeMutation.prototype, "updateInventoryChange", null);
357
- __decorate([
346
+ tslib_1.__decorate([
358
347
  (0, type_graphql_1.Directive)('@transaction'),
359
348
  (0, type_graphql_1.Mutation)(returns => [inventory_change_1.InventoryChange]),
360
- __param(0, (0, type_graphql_1.Arg)('patches', type => [inventory_change_types_1.InventoryChangePatch])),
361
- __param(1, (0, type_graphql_1.Ctx)()),
362
- __metadata("design:type", Function),
363
- __metadata("design:paramtypes", [Array, Object]),
364
- __metadata("design:returntype", Promise)
349
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('patches', type => [inventory_change_types_1.InventoryChangePatch])),
350
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
351
+ tslib_1.__metadata("design:type", Function),
352
+ tslib_1.__metadata("design:paramtypes", [Array, Object]),
353
+ tslib_1.__metadata("design:returntype", Promise)
365
354
  ], InventoryChangeMutation.prototype, "updateMultipleInventoryChange", null);
366
- __decorate([
355
+ tslib_1.__decorate([
367
356
  (0, type_graphql_1.Directive)('@transaction'),
368
357
  (0, type_graphql_1.Mutation)(returns => Boolean),
369
- __param(0, (0, type_graphql_1.Arg)('name')),
370
- __param(1, (0, type_graphql_1.Ctx)()),
371
- __metadata("design:type", Function),
372
- __metadata("design:paramtypes", [String, Object]),
373
- __metadata("design:returntype", Promise)
358
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('name')),
359
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
360
+ tslib_1.__metadata("design:type", Function),
361
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
362
+ tslib_1.__metadata("design:returntype", Promise)
374
363
  ], InventoryChangeMutation.prototype, "deleteInventoryChange", null);
375
- __decorate([
364
+ tslib_1.__decorate([
376
365
  (0, type_graphql_1.Directive)('@transaction'),
377
366
  (0, type_graphql_1.Mutation)(returns => Boolean),
378
- __param(0, (0, type_graphql_1.Arg)('names', type => [String])),
379
- __param(1, (0, type_graphql_1.Ctx)()),
380
- __metadata("design:type", Function),
381
- __metadata("design:paramtypes", [Array, Object]),
382
- __metadata("design:returntype", Promise)
367
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('names', type => [String])),
368
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
369
+ tslib_1.__metadata("design:type", Function),
370
+ tslib_1.__metadata("design:paramtypes", [Array, Object]),
371
+ tslib_1.__metadata("design:returntype", Promise)
383
372
  ], InventoryChangeMutation.prototype, "deleteInventoryChanges", null);
384
- __decorate([
373
+ tslib_1.__decorate([
385
374
  (0, type_graphql_1.Directive)('@privilege(category: "inventory", privilege: "mutation")'),
386
375
  (0, type_graphql_1.Directive)('@transaction'),
387
376
  (0, type_graphql_1.Mutation)(returns => Boolean),
388
- __param(0, (0, type_graphql_1.Arg)('patches', type => [inventory_types_1.InventoryPatch])),
389
- __param(1, (0, type_graphql_1.Ctx)()),
390
- __metadata("design:type", Function),
391
- __metadata("design:paramtypes", [Array, Object]),
392
- __metadata("design:returntype", Promise)
377
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('patches', type => [inventory_types_1.InventoryPatch])),
378
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
379
+ tslib_1.__metadata("design:type", Function),
380
+ tslib_1.__metadata("design:paramtypes", [Array, Object]),
381
+ tslib_1.__metadata("design:returntype", Promise)
393
382
  ], InventoryChangeMutation.prototype, "submitInventoryChanges", null);
394
- __decorate([
383
+ tslib_1.__decorate([
395
384
  (0, type_graphql_1.Directive)('@privilege(category: "inventory_adjustment_approval", privilege: "mutation")'),
396
385
  (0, type_graphql_1.Directive)('@transaction'),
397
386
  (0, type_graphql_1.Mutation)(returns => inventory_change_types_1.InventoryChangeList),
398
- __param(0, (0, type_graphql_1.Arg)('patches', type => [inventory_change_types_1.InventoryChangePatch])),
399
- __param(1, (0, type_graphql_1.Ctx)()),
400
- __metadata("design:type", Function),
401
- __metadata("design:paramtypes", [Array, Object]),
402
- __metadata("design:returntype", Promise)
387
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('patches', type => [inventory_change_types_1.InventoryChangePatch])),
388
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
389
+ tslib_1.__metadata("design:type", Function),
390
+ tslib_1.__metadata("design:paramtypes", [Array, Object]),
391
+ tslib_1.__metadata("design:returntype", Promise)
403
392
  ], InventoryChangeMutation.prototype, "approveInventoryChanges", null);
404
- __decorate([
393
+ tslib_1.__decorate([
405
394
  (0, type_graphql_1.Directive)('@privilege(category: "inventory_adjustment_approval", privilege: "mutation")'),
406
395
  (0, type_graphql_1.Directive)('@transaction'),
407
396
  (0, type_graphql_1.Mutation)(returns => Boolean),
408
- __param(0, (0, type_graphql_1.Arg)('patches', type => [inventory_change_types_1.InventoryChangePatch])),
409
- __param(1, (0, type_graphql_1.Ctx)()),
410
- __metadata("design:type", Function),
411
- __metadata("design:paramtypes", [Array, Object]),
412
- __metadata("design:returntype", Promise)
397
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('patches', type => [inventory_change_types_1.InventoryChangePatch])),
398
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
399
+ tslib_1.__metadata("design:type", Function),
400
+ tslib_1.__metadata("design:paramtypes", [Array, Object]),
401
+ tslib_1.__metadata("design:returntype", Promise)
413
402
  ], InventoryChangeMutation.prototype, "rejectInventoryChanges", null);
414
- InventoryChangeMutation = __decorate([
403
+ InventoryChangeMutation = tslib_1.__decorate([
415
404
  (0, type_graphql_1.Resolver)(inventory_change_1.InventoryChange)
416
405
  ], InventoryChangeMutation);
417
406
  exports.InventoryChangeMutation = InventoryChangeMutation;
@@ -1 +1 @@
1
- {"version":3,"file":"inventory-change-mutation.js","sourceRoot":"","sources":["../../../server/service/inventory-change/inventory-change-mutation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inventory-change-mutation.js","sourceRoot":"","sources":["../../../server/service/inventory-change/inventory-change-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, In, MoreThan, Not } from 'typeorm'\n\nimport { Privilege, User } from '@things-factory/auth-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { generateId } from '@things-factory/id-rule-base'\nimport { MarketplaceStore } from '@things-factory/integration-marketplace'\nimport { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'\nimport { sendNotification } from '@things-factory/notification'\nimport { Product } from '@things-factory/product-base'\nimport { PartnerSetting, Setting } from '@things-factory/setting-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { INVENTORY_ITEM_CHANGE_TYPE, INVENTORY_ITEM_SOURCE, INVENTORY_STATUS, LOCATION_STATUS } from '../../constants'\nimport { EcommerceController, SellercraftController } from '../../controllers'\nimport { InventoryNoGenerator } from '../../utils'\nimport { InventoryHistory } from '../inventory-history/inventory-history'\nimport { InventoryItemChange } from '../inventory-item-change/inventory-item-change'\nimport { InventoryItem } from '../inventory-item/inventory-item'\nimport { checkExistingSerialNumber } from '../inventory-item/inventory-item-query'\nimport { Inventory } from '../inventory/inventory'\nimport { InventoryPatch } from '../inventory/inventory-types'\nimport { Location } from '../location/location'\nimport { InventoryChange } from './inventory-change'\nimport { InventoryChangeList, InventoryChangePatch, NewInventoryChange } from './inventory-change-types'\n\n@Resolver(InventoryChange)\nexport class InventoryChangeMutation {\n @Directive('@transaction')\n @Mutation(returns => InventoryChange)\n async createInventoryChange(\n @Arg('inventoryChange') inventoryChange: NewInventoryChange,\n @Ctx() context: any\n ): Promise<InventoryChange> {\n const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state\n\n return await tx.getRepository(InventoryChange).save({\n ...inventoryChange,\n domain: domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => InventoryChange)\n async updateInventoryChange(\n @Arg('name') name: string,\n @Arg('patch') patch: InventoryChangePatch,\n @Ctx() context: any\n ): Promise<InventoryChange> {\n const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state\n\n const repository = tx.getRepository(InventoryChange)\n const inventoryChange = await repository.findOne({\n where: { domain: domain, name }\n })\n\n return await repository.save({\n ...inventoryChange,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => [InventoryChange])\n async updateMultipleInventoryChange(\n @Arg('patches', type => [InventoryChangePatch]) patches: InventoryChangePatch[],\n @Ctx() context: any\n ): Promise<InventoryChange[]> {\n const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const inventoryChangeRepo = tx.getRepository(InventoryChange)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await inventoryChangeRepo.save({\n ...newRecord,\n domain: domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const inventoryChange = await inventoryChangeRepo.findOne(newRecord.id)\n\n const result = await inventoryChangeRepo.save({\n ...inventoryChange,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteInventoryChange(@Arg('name') name: string, @Ctx() context: any): Promise<Boolean> {\n const { domain, tx }: { domain: Domain; tx: EntityManager } = context.state\n\n await tx.getRepository(InventoryChange).delete({ domain: domain, name })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteInventoryChanges(@Arg('names', type => [String]) names: string[], @Ctx() context: any): Promise<Boolean> {\n const { domain, tx }: { domain: Domain; tx: EntityManager } = context.state\n\n await tx.getRepository(InventoryChange).delete({\n domain: domain,\n name: In(names)\n })\n return true\n }\n\n @Directive('@privilege(category: \"inventory\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async submitInventoryChanges(\n @Arg('patches', type => [InventoryPatch]) patches: InventoryPatch[],\n @Ctx() context: any\n ) {\n const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state\n\n const _createRecords = []\n const _updateRecords = []\n\n for (let i = 0; i < patches.length; i++) {\n let foundExistingPallet = await tx.getRepository(Inventory).findOne({\n where: { domain, palletId: patches[i]?.palletId }\n })\n\n if (!foundExistingPallet) {\n foundExistingPallet = await tx.getRepository(Inventory).findOne({\n where: { id: patches[i]?.id }\n })\n }\n\n const invLockedQty: number = foundExistingPallet?.lockedQty == null ? 0 : foundExistingPallet?.lockedQty\n\n if (patches[i]?.qty < invLockedQty) {\n throw new Error(\n 'Adjusted qty value should not be lower than released qty, kindly contact our support if you have difficulties'\n )\n }\n\n if (foundExistingPallet) {\n delete patches[i].serialNumbers\n _updateRecords.push(patches[i])\n } else {\n _createRecords.push(patches[i])\n }\n }\n\n const inventoryChangeRepo = tx.getRepository(InventoryChange)\n const inventoryItemChangeRepo = tx.getRepository(InventoryItemChange)\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n var location = await tx.getRepository(Location).findOne({\n where: { id: newRecord.location.id },\n relations: ['warehouse']\n })\n newRecord.location = location\n newRecord.zone = location.zone\n newRecord.warehouse = location.warehouse\n\n newRecord.bizplace = await tx.getRepository(Bizplace).findOne(newRecord.bizplace.id)\n\n var product: Product = await tx.getRepository(Product).findOne(newRecord.product.id)\n newRecord.product = product\n\n newRecord.status = 'PENDING'\n newRecord.transactionType = 'NEW'\n\n newRecord.expirationDate =\n ((newRecord?.expirationDate && new Date(newRecord.expirationDate).getFullYear()) || 0) < 2000\n ? null\n : newRecord.expirationDate\n\n const newInventoryChange: InventoryChange = await inventoryChangeRepo.save({\n ...newRecord,\n id: undefined,\n name: InventoryNoGenerator.inventoryName(),\n domain: domain,\n creator: user,\n updater: user\n })\n\n if (newRecord?.serialNumbers) {\n let serialNumbers: string = newRecord.serialNumbers\n let newSerialNumbers: any = serialNumbers.split(',')\n let inventoryItemChanges: InventoryItemChange[] = []\n\n for (let i = 0; i < newSerialNumbers.length; i++) {\n let newSerialNumber: string = newSerialNumbers[i]\n let inventoryItemChange: any = {\n serialNumber: newSerialNumber,\n type: INVENTORY_ITEM_CHANGE_TYPE.NEW\n }\n\n inventoryItemChanges.push(inventoryItemChange)\n }\n\n newRecord.inventoryItemChangesJson = JSON.stringify(inventoryItemChanges)\n }\n\n // create new inventory items\n if (newRecord?.inventoryItemChangesJson) {\n const inventoryItemChanges: InventoryItemChange[] = JSON.parse(newRecord.inventoryItemChangesJson)\n if (product?.isRequireSerialNumberScanningInbound) {\n if (inventoryItemChanges?.length != newRecord?.qty) {\n throw new Error('Serial Numbers not tally with quantity')\n }\n }\n\n let newInventoryItemChanges: InventoryItemChange[] = []\n\n inventoryItemChanges.map(inventoryItemChange => {\n let newInventoryItemChange: InventoryItemChange = new InventoryItemChange()\n newInventoryItemChange.name = InventoryNoGenerator.inventoryName()\n newInventoryItemChange.serialNumber = inventoryItemChange.serialNumber\n newInventoryItemChange.type = inventoryItemChange.type\n newInventoryItemChange.status = newInventoryChange.status\n newInventoryItemChange.inventoryItem =\n newInventoryItemChange?.type == INVENTORY_ITEM_CHANGE_TYPE.NEW\n ? null\n : newInventoryItemChange.inventoryItem\n newInventoryItemChange.inventoryChange = newInventoryChange\n newInventoryItemChange.domain = domain\n newInventoryItemChange.creator = user\n newInventoryItemChange.updater = user\n\n newInventoryItemChanges.push(newInventoryItemChange)\n })\n\n await inventoryItemChangeRepo.save(newInventoryItemChanges)\n }\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n\n let existingRecord = await tx.getRepository(Inventory).findOne({\n where: { domain, palletId: updateRecord?.palletId },\n relations: ['location', 'warehouse', 'product', 'bizplace']\n })\n\n if (!existingRecord) {\n existingRecord = await tx.getRepository(Inventory).findOne({\n where: { domain, id: updateRecord?.id },\n relations: ['location', 'warehouse', 'product', 'bizplace']\n })\n }\n\n if (!!updateRecord?.location?.id) {\n var location = await tx.getRepository(Location).findOne({\n where: { id: updateRecord.location.id },\n relations: ['warehouse']\n })\n updateRecord.location = location\n updateRecord.zone = location.zone\n updateRecord.warehouse = location.warehouse\n }\n\n if (!!updateRecord?.bizplace?.id)\n updateRecord.bizplace = await tx.getRepository(Bizplace).findOne(updateRecord.bizplace.id)\n\n let product: Product\n\n if (!!updateRecord?.product?.id) {\n product = await tx.getRepository(Product).findOne(updateRecord.product.id)\n updateRecord.product = product\n } else {\n product = existingRecord.product\n }\n\n updateRecord.transactionType == 'MISSING'\n ? (updateRecord.transactionType = 'MISSING')\n : (updateRecord.transactionType = 'CHANGES')\n\n updateRecord.status = 'PENDING'\n\n updateRecord.expirationDate =\n ((updateRecord?.expirationDate && new Date(updateRecord.expirationDate).getFullYear()) || 0) < 2000\n ? null\n : updateRecord.expirationDate\n\n const updatedInventoryChange: InventoryChange = await inventoryChangeRepo.save({\n palletId: existingRecord.palletId,\n ...updateRecord,\n id: undefined,\n name: InventoryNoGenerator.inventoryName(),\n inventory: existingRecord,\n domain: domain,\n creator: user,\n updater: user\n })\n\n // create new inventory items\n if (updateRecord?.inventoryItemChangesJson) {\n const originalInventoryItems: InventoryItem[] = await tx.getRepository(InventoryItem).find({\n where: { domain, inventory: existingRecord }\n })\n const inventoryItemChanges: InventoryItemChange[] = JSON.parse(updateRecord.inventoryItemChangesJson)\n if (product?.isRequireSerialNumberScanningInbound) {\n const combinedInventoryItems: any[] = [...originalInventoryItems, ...inventoryItemChanges]\n let qty: number = updateRecord?.qty ? updateRecord.qty : existingRecord.qty\n if (combinedInventoryItems?.length != qty) {\n throw new Error('Serial Numbers not tally with quantity')\n }\n }\n\n let newInventoryItemChanges: InventoryItemChange[] = []\n\n inventoryItemChanges.map(inventoryItemChange => {\n let newInventoryItemChange: InventoryItemChange = new InventoryItemChange()\n newInventoryItemChange.name = InventoryNoGenerator.inventoryName()\n newInventoryItemChange.serialNumber = inventoryItemChange.serialNumber\n newInventoryItemChange.type = inventoryItemChange.type\n newInventoryItemChange.status = updatedInventoryChange.status\n newInventoryItemChange.inventory = updatedInventoryChange.inventory\n newInventoryItemChange.inventoryItem =\n newInventoryItemChange?.type == INVENTORY_ITEM_CHANGE_TYPE.NEW\n ? null\n : newInventoryItemChange.inventoryItem\n newInventoryItemChange.inventoryChange = updatedInventoryChange\n newInventoryItemChange.domain = domain\n newInventoryItemChange.creator = user\n newInventoryItemChange.updater = user\n\n newInventoryItemChanges.push(newInventoryItemChange)\n })\n\n await inventoryItemChangeRepo.save(newInventoryItemChanges)\n }\n }\n }\n\n const notificationApprover: any = await tx\n .getRepository(Privilege)\n .createQueryBuilder('p')\n .select('u.*')\n .addSelect('r.*')\n .innerJoin('p.roles', 'r')\n .innerJoin('r.users', 'u')\n .where('p.name = :name', { name: 'mutation' })\n .andWhere('p.category = :category', { category: 'inventory' })\n .andWhere('r.domain_id = :domainId', { domainId: domain.id })\n .groupBy('u.id')\n .addGroupBy('r.id')\n .getRawMany()\n\n if (_updateRecords.some(res => res.transactionType == 'MISSING')) {\n if (notificationApprover?.length && context.header?.referer) {\n const receivers: any[] = notificationApprover.map(user => user.id)\n const msg = {\n title: `Missing stock identified. Review this transaction in Inventory Adjustment Approval.`,\n body: ``,\n url: context.header.referer,\n data: { url: context.header.referer }\n }\n await sendNotification({\n receivers,\n message: { ...msg }\n })\n }\n } else {\n if (notificationApprover?.length && context.header?.referer) {\n const receivers: any[] = notificationApprover.map(user => user.id)\n const msg = {\n title: `There is an inventory adjustment pending for approval, kindly review within 1 hour to avoid any operation conflict.`,\n body: ``,\n url: context.header.referer,\n data: { url: context.header.referer }\n }\n await sendNotification({\n receivers,\n message: { ...msg }\n })\n }\n }\n\n return true\n }\n\n @Directive('@privilege(category: \"inventory_adjustment_approval\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => InventoryChangeList)\n async approveInventoryChanges(\n @Arg('patches', type => [InventoryChangePatch]) patches: InventoryChangePatch[],\n @Ctx() context: any\n ): Promise<InventoryChangeList> {\n const inventoryChangeList = await approveInventoryChanges(patches, context)\n\n return inventoryChangeList\n }\n\n @Directive('@privilege(category: \"inventory_adjustment_approval\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async rejectInventoryChanges(\n @Arg('patches', type => [InventoryChangePatch]) patches: InventoryChangePatch[],\n @Ctx() context: any\n ): Promise<Boolean> {\n const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state\n\n const _inventoryChanges = await tx.getRepository(InventoryChange).find({\n where: { id: In(patches.map(item => item.id)) },\n relations: [\n 'inventory',\n 'inventory.bizplace',\n 'inventory.product',\n 'inventory.location',\n 'inventory.warehouse',\n 'bizplace',\n 'product',\n 'location'\n ]\n })\n\n if (_inventoryChanges.length > 0) {\n for (let i = 0; i < _inventoryChanges.length; i++) {\n if (_inventoryChanges[i].status.toLocaleLowerCase() != 'pending') return true\n _inventoryChanges[i].status = 'REJECTED'\n\n // Get last row of InventoryHistory\n let latestEntry = await tx.getRepository(InventoryHistory).find({\n where: { palletId: _inventoryChanges[i].palletId, domain: domain },\n order: { seq: 'DESC' },\n take: 1\n })\n\n if (latestEntry.length > 0) _inventoryChanges[i].lastInventoryHistory = latestEntry[0]\n\n await upsertInventoryItems(context, _inventoryChanges[i], 'REJECTED', tx)\n }\n\n await tx.getRepository(InventoryChange).save(_inventoryChanges.filter(change => change.status == 'REJECTED'))\n }\n return true\n }\n}\n\nfunction clean(obj) {\n var propNames = Object.getOwnPropertyNames(obj)\n for (var i = 0; i < propNames.length; i++) {\n var propName = propNames[i]\n if (obj[propName] === null || obj[propName] === undefined) {\n delete obj[propName]\n }\n }\n}\n\nasync function upsertInventoryItems(context, inventoryChange, approvalStatus, tx) {\n const { domain, user }: { domain: Domain; user: User } = context.state\n\n let inventoryItemChanges: InventoryItemChange[] = await tx.getRepository(InventoryItemChange).find({\n where: { domain, inventoryChange: inventoryChange, status: 'PENDING' },\n relations: ['domain', 'inventoryItem', 'inventory', 'inventory.product', 'inventoryChange']\n })\n await Promise.all(\n inventoryItemChanges.map(async inventoryItemChange => {\n let inventoryItem: InventoryItem = new InventoryItem()\n if (approvalStatus == 'APPROVED') {\n const changeType: string = inventoryItemChange.type\n const existingInventoryItem: InventoryItem = inventoryItemChange.inventoryItem\n if (changeType == INVENTORY_ITEM_CHANGE_TYPE.NEW) {\n const foundSerialNumber: Boolean = await checkExistingSerialNumber(\n inventoryItemChange.serialNumber,\n inventoryChange.inventory.product,\n context,\n inventoryChange.inventory,\n tx\n )\n\n if (foundSerialNumber) throw new Error(`Serial number ${inventoryItemChange.serialNumber} is duplicated`)\n\n inventoryItem.name = InventoryNoGenerator.inventoryName()\n inventoryItem.serialNumber = inventoryItemChange.serialNumber\n inventoryItem.status = INVENTORY_STATUS.STORED\n inventoryItem.product = inventoryChange.inventory.product\n inventoryItem.domain = inventoryItemChange.domain\n inventoryItem.inventory = inventoryChange.inventory\n inventoryItem.source = INVENTORY_ITEM_SOURCE.ADJUSTMENT\n inventoryItem.creator = user\n inventoryItem.updater = user\n } else if (changeType == INVENTORY_ITEM_CHANGE_TYPE.MODIFIED) {\n const foundSerialNumber: Boolean = await checkExistingSerialNumber(\n inventoryItemChange.serialNumber,\n inventoryItemChange.inventory.product,\n context,\n inventoryItemChange.inventory,\n tx\n )\n\n if (foundSerialNumber) throw new Error(`Serial number ${inventoryItemChange.serialNumber} is duplicated`)\n\n inventoryItem = {\n ...existingInventoryItem,\n serialNumber: inventoryItemChange.serialNumber,\n product: inventoryItemChange.inventory.product\n }\n } else if (changeType == INVENTORY_ITEM_CHANGE_TYPE.REMOVED) {\n inventoryItem = {\n ...existingInventoryItem,\n status: INVENTORY_STATUS.DELETED\n }\n }\n\n inventoryItem = await tx.getRepository(InventoryItem).save(inventoryItem)\n }\n\n await tx\n .getRepository(InventoryItemChange)\n .update({ id: inventoryItemChange.id }, { status: approvalStatus, inventoryItem })\n })\n )\n}\n\nexport async function approveInventoryChanges(patches: any, context: any) {\n const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state\n\n // Get Selected Inventory Change Data\n const _inventoryChanges = await tx.getRepository(InventoryChange).find({\n where: { id: In(patches.map(item => item.id)) },\n relations: [\n 'inventory',\n 'inventory.bizplace',\n 'inventory.bizplace.domain',\n 'inventory.product',\n 'inventory.location',\n 'inventory.warehouse',\n 'bizplace',\n 'bizplace.domain',\n 'bizplace.company',\n 'bizplace.company.domain',\n 'product',\n 'product.productDetails',\n 'product.productDetails.childProductDetail',\n 'location'\n ],\n order: {\n createdAt: 'ASC'\n }\n })\n\n let arrLockedInventory: InventoryChange[] = []\n\n if (_inventoryChanges.length > 0) {\n let today = new Date(),\n year = today.getFullYear(),\n month = today.getMonth(),\n date = today.getDate()\n\n for (let i = 0; i < _inventoryChanges.length; i++) {\n if (_inventoryChanges[i].status.toLocaleLowerCase() != 'pending') continue\n\n const newRecord: any = { ..._inventoryChanges[i] },\n newHistoryRecord: any = { ..._inventoryChanges[i] }\n\n // Adjustment of existing Inventory\n if (_inventoryChanges[i].inventory != null) {\n let inventoryId = _inventoryChanges[i].inventory.id\n let inventory: Inventory = await tx.getRepository(Inventory).findOne({\n where: { id: inventoryId },\n relations: [\n 'domain',\n 'bizplace',\n 'bizplace.domain',\n 'bizplace.company',\n 'bizplace.company.domain',\n 'product',\n 'product.productDetails',\n 'product.productDetails.childProductDetail',\n 'warehouse',\n 'location',\n 'creator',\n 'updater'\n ]\n })\n\n const customerDomain: Domain = inventory.bizplace.domain\n\n // Check for locked inventory, and stop from udpating inventory\n if (inventory.qty < inventory.lockedQty) {\n arrLockedInventory.push(_inventoryChanges[i])\n continue\n }\n\n // Check for Terminated inventory, then update InventoryChange entity, and stop from udpating inventory\n if (inventory.status == INVENTORY_STATUS.TERMINATED) {\n _inventoryChanges[i] = { ..._inventoryChanges[i], status: 'TERMINATED' }\n continue\n }\n\n let lastSeq = inventory.lastSeq,\n transactionType = ''\n\n newHistoryRecord.openingQty = inventory.qty\n newHistoryRecord.openingUomValue = inventory.uomValue\n\n // Get last row of InventoryHistory\n let latestEntry = await tx.getRepository(InventoryHistory).findOne({\n where: { palletId: inventory.palletId, domain: domain },\n order: { seq: 'DESC' }\n })\n _inventoryChanges[i].lastInventoryHistory = latestEntry\n\n // Check Change of existing inventory location\n if (newRecord.location && newRecord.location.id != inventory.location.id) {\n newRecord.zone = newRecord.location.zone\n newRecord.warehouse = newRecord.location.warehouse\n transactionType = 'ADJUSTMENT'\n\n // Check and set current location status\n let currentLocationInventoryCount = await tx.getRepository(Inventory).count({\n where: { location: inventory.location, status: 'STORED', id: Not(inventory.id) }\n })\n\n if (currentLocationInventoryCount == 0) {\n let currentLocation = await tx.getRepository(Location).findOne({\n where: { id: inventory.location.id }\n })\n await tx.getRepository(Location).save({\n ...currentLocation,\n status: LOCATION_STATUS.EMPTY\n })\n }\n }\n\n // Check Change of existing inventory quantity\n if (newRecord.qty != null && newRecord.qty != inventory.qty) {\n newHistoryRecord.qty = newRecord.qty - inventory.qty\n if (newRecord.qty < 1) {\n newRecord.qty = 0\n newRecord.uomValue = 0\n }\n transactionType = 'ADJUSTMENT'\n } else {\n newHistoryRecord.qty = 0\n }\n\n // Check Change of existing inventory uomValue\n if (newRecord.uomValue != null && newRecord.uomValue != inventory.uomValue) {\n newHistoryRecord.uomValue = newRecord.uomValue - inventory.uomValue\n Math.round(newHistoryRecord.uomValue * 100) / 100\n transactionType = 'ADJUSTMENT'\n } else {\n newHistoryRecord.uomValue = 0\n }\n\n // Terminate current inventory history if there is change of bizplace, product, batchId, packingType, or uom\n if (\n (newRecord.bizplace && inventory.bizplace.id !== newRecord.bizplace.id) ||\n (newRecord.product && inventory.product.id !== newRecord.product.id) ||\n (newRecord.batchId && inventory.batchId !== newRecord.batchId) ||\n (newRecord.packingType && inventory.packingType !== newRecord.packingType) ||\n (newRecord.uom && inventory.uom !== newRecord.uom)\n ) {\n transactionType = 'ADJUSTMENT'\n lastSeq = lastSeq + 1\n let inventoryHistory = {\n ...inventory,\n domain: domain,\n bizplace: inventory.bizplace.id,\n openingQty: inventory.qty,\n openingUomValue: inventory.uomValue,\n qty: -inventory.qty || 0,\n uom: inventory.uom,\n uomValue: -inventory.uomValue || 0,\n name: InventoryNoGenerator.inventoryHistoryName(),\n seq: lastSeq,\n transactionType: transactionType,\n status: INVENTORY_STATUS.TERMINATED,\n productId: inventory.product.id,\n warehouseId: inventory.warehouse.id,\n locationId: inventory.location.id,\n packingType: inventory.packingType,\n creator: user,\n updater: user\n }\n delete inventoryHistory.id\n delete inventoryHistory.createdAt\n delete inventoryHistory.updatedAt\n await tx.getRepository(InventoryHistory).save(inventoryHistory as any)\n newHistoryRecord.qty = newRecord.qty != null ? newRecord.qty : inventory.qty || 0\n newHistoryRecord.uomValue = newRecord.uomValue != null ? newRecord.uomValue : inventory.uomValue || 0\n newHistoryRecord.openingQty = 0\n newHistoryRecord.openingUomValue = 0\n }\n\n // Set and update inventory and inventory history data\n lastSeq = lastSeq + 1\n clean(newHistoryRecord)\n let inventoryHistory = {\n ...inventory,\n ...newHistoryRecord,\n domain: domain,\n creator: user,\n updater: user,\n name: InventoryNoGenerator.inventoryHistoryName(),\n status: newHistoryRecord.transactionType == 'MISSING' ? 'MISSING' : 'STORED',\n seq: lastSeq,\n transactionType: transactionType == '' ? 'ADJUSTMENT' : transactionType,\n productId: newRecord.product ? newRecord.product.id : inventory.product.id,\n warehouseId: newRecord.warehouse ? newRecord.warehouse.id : inventory.warehouse.id,\n locationId:\n newRecord.location && newRecord.location.id != inventory.location.id\n ? newRecord.location.id\n : inventory.location.id,\n uom: newRecord.uom != null ? newRecord.uom : inventory.uom\n }\n delete inventoryHistory.id\n delete inventoryHistory.createdAt\n delete inventoryHistory.updatedAt\n await tx.getRepository(InventoryHistory).save(inventoryHistory)\n\n if (newRecord.qty != null && newRecord.qty == 0) {\n ++lastSeq\n delete inventoryHistory.id\n inventoryHistory = {\n ...inventoryHistory,\n name: InventoryNoGenerator.inventoryHistoryName(),\n qty: 0,\n uomValue: 0,\n openingQty: 0,\n openingUomValue: 0,\n seq: lastSeq,\n transactionType: 'TERMINATED',\n status: 'TERMINATED'\n }\n\n await tx.getRepository(InventoryHistory).save(inventoryHistory)\n }\n\n clean(newRecord)\n let statusFilter = ''\n if (newRecord.transactionType == 'MISSING') {\n statusFilter = 'MISSING'\n } else {\n statusFilter = (newRecord.qty != null ? newRecord.qty : inventory.qty) > 0 ? 'STORED' : 'TERMINATED'\n }\n await tx.getRepository(Inventory).save({\n ...inventory,\n ...newRecord,\n id: inventoryId,\n status: statusFilter,\n updater: user,\n lastSeq: lastSeq\n })\n\n //Check and set latest location status\n if (newRecord.qty != null ? newRecord.qty : inventory.qty > 0) {\n var location = await tx.getRepository(Location).findOne({\n where: { id: newRecord.location ? newRecord.location.id : inventory.location.id }\n })\n await tx.getRepository(Location).save({\n ...location,\n status: LOCATION_STATUS.OCCUPIED\n })\n } else {\n let latestLocationInventoryCount = await tx.getRepository(Inventory).count({\n where: {\n location: newRecord.location ? newRecord.location.id : inventory.location.id,\n status: 'STORED',\n id: Not(inventory.id)\n }\n })\n if (latestLocationInventoryCount == 0) {\n let latestLocation = await tx.getRepository(Location).findOne({\n where: { id: newRecord.location ? newRecord.location.id : inventory.location.id }\n })\n await tx.getRepository(Location).save({\n ...latestLocation,\n status: LOCATION_STATUS.EMPTY\n })\n }\n }\n\n await upsertInventoryItems(context, _inventoryChanges[i], 'APPROVED', tx)\n\n const companyDomain: Domain = inventory.bizplace?.company.domain\n\n const sellercraft: Sellercraft = await tx\n .getRepository(Sellercraft)\n .findOne({ where: { domain: customerDomain, status: SellercraftStatus.ACTIVE }, relations: ['domain'] })\n\n if (sellercraft) {\n const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)\n await sellercraftCtrl.updateSellercraftStock(sellercraft, inventory)\n if (newRecord?.product || newRecord?.bizplace) {\n if (!newRecord?.product) newRecord.product = inventory.product\n\n await sellercraftCtrl.updateSellercraftStock(sellercraft, newRecord)\n }\n }\n\n // check for any existing active marketplace connection, update marketplace selling qty\n const marketplaceStores: MarketplaceStore[] = await tx.getRepository(MarketplaceStore).find({\n where: { domain: companyDomain, status: 'ACTIVE', isAutoUpdateStockQty: true },\n relations: ['marketplaceDistributors']\n })\n\n if (marketplaceStores?.length && marketplaceStores.some(store => store.isAutoUpdateStockQty)) {\n const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)\n await ecommerceCtrl.updateProductVariationStock(marketplaceStores, inventory.product.id, companyDomain)\n\n if (newRecord?.product || newRecord?.bizplace)\n await ecommerceCtrl.updateProductVariationStock(marketplaceStores, newRecord.product.id, companyDomain)\n }\n }\n\n // Adding Inventory\n else {\n const total = await tx.getRepository(Inventory).count({\n createdAt: MoreThan(new Date(year, month, date))\n })\n\n const yy = String(year).substr(String(year).length - 2)\n const mm = String(month + 1).padStart(2, '0')\n const dd = String(date).padStart(2, '0')\n\n const dateStr = yy + mm + dd\n\n let palletId = newRecord.palletId\n\n if (!newRecord.palletId?.trim()) {\n palletId = await generateId({\n domain: domain,\n type: 'adjustment_pallet_id',\n seed: {\n batchId: newRecord.batchId,\n date: dateStr\n }\n })\n if (!palletId) throw new Error('No adjustment pallet id setting rule found')\n }\n\n var location = await tx.getRepository(Location).findOne({\n where: { id: newRecord.location.id },\n relations: ['warehouse']\n })\n newRecord.location = location\n newRecord.zone = location.zone\n newRecord.warehouse = location.warehouse\n\n newRecord.status = INVENTORY_STATUS.STORED\n newRecord.name = palletId\n newRecord.palletId = palletId\n\n const warehouseCartonSetting: Setting = await tx.getRepository(Setting).findOne({\n where: { domain, category: 'id-rule', name: 'enable-carton-label' }\n })\n\n const partnerCartonSetting: PartnerSetting = await tx.getRepository(PartnerSetting).findOne({\n where: { setting: warehouseCartonSetting, domain, partnerDomain: newRecord.bizplace?.domain }\n })\n\n if (partnerCartonSetting?.value) {\n let cartonId = await generateId({\n domain: domain,\n type: 'adjustment_carton_id',\n seed: { date: dateStr }\n })\n if (!cartonId) throw new Error('No adjustment carton id setting rule found')\n\n newRecord.cartonId = cartonId\n }\n\n let expirationDate =\n ((newRecord?.expirationDate && new Date(newRecord.expirationDate).getFullYear()) || 0) < 2000\n ? null\n : newRecord.expirationDate\n\n let savedInventory = await tx.getRepository(Inventory).save({\n ...newRecord,\n expirationDate,\n domain: domain,\n creator: user,\n updater: user,\n lastSeq: 0\n })\n\n await tx.getRepository(InventoryHistory).save({\n ...newRecord,\n domain: domain,\n creator: user,\n updater: user,\n name: InventoryNoGenerator.inventoryHistoryName(),\n seq: 0,\n transactionType: 'NEW',\n productId: newRecord.product.id,\n warehouseId: newRecord.warehouse.id,\n locationId: newRecord.location.id,\n inventory: savedInventory,\n expirationDate: expirationDate\n })\n\n await tx.getRepository(Location).save({\n ...location,\n status: LOCATION_STATUS.OCCUPIED\n })\n\n _inventoryChanges[i].inventory = savedInventory\n _inventoryChanges[i].palletId = savedInventory.palletId\n\n await upsertInventoryItems(context, _inventoryChanges[i], 'APPROVED', tx)\n\n const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({\n where: { domain: newRecord.bizplace.domain, status: SellercraftStatus.ACTIVE },\n relations: ['domain']\n })\n\n const companyDomain: Domain = newRecord.bizplace?.company.domain\n\n if (sellercraft) {\n const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)\n await sellercraftCtrl.updateSellercraftStock(sellercraft, newRecord)\n }\n\n // update marketplace store qty\n // check for any existing active marketplace connection, update marketplace selling qty\n const marketplaceStores: MarketplaceStore[] = await tx.getRepository(MarketplaceStore).find({\n where: { domain: companyDomain, status: 'ACTIVE', isAutoUpdateStockQty: true },\n relations: ['marketplaceDistributors']\n })\n\n if (marketplaceStores?.length && marketplaceStores.some(store => store.isAutoUpdateStockQty)) {\n const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)\n await ecommerceCtrl.updateProductVariationStock(marketplaceStores, newRecord.product.id, companyDomain)\n }\n }\n\n _inventoryChanges[i].status = 'APPROVED'\n }\n\n await tx.getRepository(InventoryChange).save(_inventoryChanges)\n }\n\n return { items: arrLockedInventory, total: arrLockedInventory.length }\n}\n"]}
@@ -1,19 +1,8 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
2
  var _a;
15
3
  Object.defineProperty(exports, "__esModule", { value: true });
16
4
  exports.InventoryChangeQuery = void 0;
5
+ const tslib_1 = require("tslib");
17
6
  const type_graphql_1 = require("type-graphql");
18
7
  const typeorm_1 = require("typeorm");
19
8
  const auth_base_1 = require("@things-factory/auth-base");
@@ -78,44 +67,44 @@ let InventoryChangeQuery = class InventoryChangeQuery {
78
67
  return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(inventoryChange.creatorId);
79
68
  }
80
69
  };
81
- __decorate([
70
+ tslib_1.__decorate([
82
71
  (0, type_graphql_1.Query)(returns => inventory_change_1.InventoryChange),
83
- __param(0, (0, type_graphql_1.Arg)('name')),
84
- __param(1, (0, type_graphql_1.Ctx)()),
85
- __metadata("design:type", Function),
86
- __metadata("design:paramtypes", [String, Object]),
87
- __metadata("design:returntype", Promise)
72
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('name')),
73
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
74
+ tslib_1.__metadata("design:type", Function),
75
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
76
+ tslib_1.__metadata("design:returntype", Promise)
88
77
  ], InventoryChangeQuery.prototype, "inventoryChange", null);
89
- __decorate([
78
+ tslib_1.__decorate([
90
79
  (0, type_graphql_1.Query)(returns => inventory_change_types_1.InventoryChangeList),
91
- __param(0, (0, type_graphql_1.Args)()),
92
- __param(1, (0, type_graphql_1.Ctx)()),
93
- __metadata("design:type", Function),
94
- __metadata("design:paramtypes", [typeof (_a = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _a : Object, Object]),
95
- __metadata("design:returntype", Promise)
80
+ tslib_1.__param(0, (0, type_graphql_1.Args)()),
81
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
82
+ tslib_1.__metadata("design:type", Function),
83
+ tslib_1.__metadata("design:paramtypes", [typeof (_a = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _a : Object, Object]),
84
+ tslib_1.__metadata("design:returntype", Promise)
96
85
  ], InventoryChangeQuery.prototype, "inventoryChanges", null);
97
- __decorate([
86
+ tslib_1.__decorate([
98
87
  (0, type_graphql_1.FieldResolver)(type => inventory_change_1.InventoryChange),
99
- __param(0, (0, type_graphql_1.Root)()),
100
- __metadata("design:type", Function),
101
- __metadata("design:paramtypes", [inventory_change_1.InventoryChange]),
102
- __metadata("design:returntype", Promise)
88
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
89
+ tslib_1.__metadata("design:type", Function),
90
+ tslib_1.__metadata("design:paramtypes", [inventory_change_1.InventoryChange]),
91
+ tslib_1.__metadata("design:returntype", Promise)
103
92
  ], InventoryChangeQuery.prototype, "domain", null);
104
- __decorate([
93
+ tslib_1.__decorate([
105
94
  (0, type_graphql_1.FieldResolver)(type => inventory_change_1.InventoryChange),
106
- __param(0, (0, type_graphql_1.Root)()),
107
- __metadata("design:type", Function),
108
- __metadata("design:paramtypes", [inventory_change_1.InventoryChange]),
109
- __metadata("design:returntype", Promise)
95
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
96
+ tslib_1.__metadata("design:type", Function),
97
+ tslib_1.__metadata("design:paramtypes", [inventory_change_1.InventoryChange]),
98
+ tslib_1.__metadata("design:returntype", Promise)
110
99
  ], InventoryChangeQuery.prototype, "updater", null);
111
- __decorate([
100
+ tslib_1.__decorate([
112
101
  (0, type_graphql_1.FieldResolver)(type => inventory_change_1.InventoryChange),
113
- __param(0, (0, type_graphql_1.Root)()),
114
- __metadata("design:type", Function),
115
- __metadata("design:paramtypes", [inventory_change_1.InventoryChange]),
116
- __metadata("design:returntype", Promise)
102
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
103
+ tslib_1.__metadata("design:type", Function),
104
+ tslib_1.__metadata("design:paramtypes", [inventory_change_1.InventoryChange]),
105
+ tslib_1.__metadata("design:returntype", Promise)
117
106
  ], InventoryChangeQuery.prototype, "creator", null);
118
- InventoryChangeQuery = __decorate([
107
+ InventoryChangeQuery = tslib_1.__decorate([
119
108
  (0, type_graphql_1.Resolver)(inventory_change_1.InventoryChange)
120
109
  ], InventoryChangeQuery);
121
110
  exports.InventoryChangeQuery = InventoryChangeQuery;
@@ -1 +1 @@
1
- {"version":3,"file":"inventory-change-query.js","sourceRoot":"","sources":["../../../server/service/inventory-change/inventory-change-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inventory-change-query.js","sourceRoot":"","sources":["../../../server/service/inventory-change/inventory-change-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { Brackets, getRepository, SelectQueryBuilder } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { getPermittedBizplaceIds } from '@things-factory/biz-base'\nimport { buildQuery, Domain, ListParam } from '@things-factory/shell'\n\nimport { InventoryChange } from './inventory-change'\nimport { InventoryChangeList } from './inventory-change-types'\n\n@Resolver(InventoryChange)\nexport class InventoryChangeQuery {\n @Query(returns => InventoryChange)\n async inventoryChange(@Arg('name') name: string, @Ctx() context: any): Promise<InventoryChange> {\n const { domain }: { domain: Domain } = context.state\n\n return await getRepository(InventoryChange).findOne({\n where: { domain: domain, name },\n relations: ['domain', 'creator', 'updater']\n })\n }\n\n @Query(returns => InventoryChangeList)\n async inventoryChanges(@Args() params: ListParam, @Ctx() context: any): Promise<InventoryChangeList> {\n const { domain, user }: { domain: Domain; user: User } = context.state\n\n let bizplaces: any[]\n if (!params.filters.find(filter => filter.name === 'bizplace')) {\n bizplaces = await getPermittedBizplaceIds(domain, user)\n } else {\n bizplaces = [params.filters.find(filter => filter.name === 'bizplace').value]\n params.filters = [...params.filters.filter(filter => filter.name != 'bizplace')]\n }\n\n const qb: SelectQueryBuilder<InventoryChange> = getRepository(InventoryChange).createQueryBuilder('ic')\n buildQuery(qb, params, context)\n\n qb.innerJoinAndSelect('ic.domain', 'dm')\n .leftJoinAndSelect('ic.bizplace', 'biz')\n .leftJoinAndSelect('ic.inventory', 'iv')\n .leftJoinAndSelect('iv.bizplace', 'ivBiz')\n .leftJoinAndSelect('iv.product', 'ivPrd')\n .leftJoinAndSelect('iv.location', 'ivLoc')\n .leftJoinAndSelect('ic.product', 'product')\n .leftJoinAndSelect('ic.location', 'location')\n .leftJoinAndSelect('ic.lastInventoryHistory', 'livh')\n .leftJoinAndSelect('ic.inventoryItemChange', 'itc')\n .leftJoinAndSelect('livh.product', 'livhProduct')\n .leftJoinAndSelect('livh.warehouse', 'livhWarehouse')\n .leftJoinAndSelect('livh.location', 'livhLocation')\n .leftJoinAndSelect('livh.bizplace', 'livhBiz')\n .innerJoinAndSelect('ic.creator', 'creator')\n .innerJoinAndSelect('ic.updater', 'updater')\n .orderBy('ic.createdAt', 'DESC')\n\n qb.andWhere(\n new Brackets(qb => {\n qb.where('\"iv\".\"bizplace_id\" IN (:...bizplaces)')\n qb.orWhere('\"ic\".\"bizplace_id\" IN (:...bizplaces)')\n })\n )\n\n qb.setParameters({\n bizplaces: bizplaces\n })\n\n let [items, total] = await qb.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => InventoryChange)\n async domain(@Root() inventoryChange: InventoryChange) {\n return await getRepository(Domain).findOne(inventoryChange.domainId)\n }\n\n @FieldResolver(type => InventoryChange)\n async updater(@Root() inventoryChange: InventoryChange) {\n return await getRepository(User).findOne(inventoryChange.updaterId)\n }\n\n @FieldResolver(type => InventoryChange)\n async creator(@Root() inventoryChange: InventoryChange) {\n return await getRepository(User).findOne(inventoryChange.creatorId)\n }\n}\n"]}
@@ -1,64 +1,56 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.NewInventoryChange = exports.InventoryChangePatch = exports.InventoryChangeList = void 0;
4
+ const tslib_1 = require("tslib");
13
5
  const type_graphql_1 = require("type-graphql");
14
6
  const inventory_change_1 = require("./inventory-change");
15
7
  let InventoryChangeList = class InventoryChangeList {
16
8
  };
17
- __decorate([
9
+ tslib_1.__decorate([
18
10
  (0, type_graphql_1.Field)(type => [inventory_change_1.InventoryChange], { nullable: true }),
19
- __metadata("design:type", Array)
11
+ tslib_1.__metadata("design:type", Array)
20
12
  ], InventoryChangeList.prototype, "items", void 0);
21
- __decorate([
13
+ tslib_1.__decorate([
22
14
  (0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true }),
23
- __metadata("design:type", Number)
15
+ tslib_1.__metadata("design:type", Number)
24
16
  ], InventoryChangeList.prototype, "total", void 0);
25
- InventoryChangeList = __decorate([
17
+ InventoryChangeList = tslib_1.__decorate([
26
18
  (0, type_graphql_1.ObjectType)()
27
19
  ], InventoryChangeList);
28
20
  exports.InventoryChangeList = InventoryChangeList;
29
21
  let InventoryChangePatch = class InventoryChangePatch {
30
22
  };
31
- __decorate([
23
+ tslib_1.__decorate([
32
24
  (0, type_graphql_1.Field)({ nullable: true }),
33
- __metadata("design:type", String)
25
+ tslib_1.__metadata("design:type", String)
34
26
  ], InventoryChangePatch.prototype, "id", void 0);
35
- __decorate([
27
+ tslib_1.__decorate([
36
28
  (0, type_graphql_1.Field)({ nullable: true }),
37
- __metadata("design:type", String)
29
+ tslib_1.__metadata("design:type", String)
38
30
  ], InventoryChangePatch.prototype, "name", void 0);
39
- __decorate([
31
+ tslib_1.__decorate([
40
32
  (0, type_graphql_1.Field)({ nullable: true }),
41
- __metadata("design:type", String)
33
+ tslib_1.__metadata("design:type", String)
42
34
  ], InventoryChangePatch.prototype, "description", void 0);
43
- __decorate([
35
+ tslib_1.__decorate([
44
36
  (0, type_graphql_1.Field)({ nullable: true }),
45
- __metadata("design:type", String)
37
+ tslib_1.__metadata("design:type", String)
46
38
  ], InventoryChangePatch.prototype, "cuFlag", void 0);
47
- InventoryChangePatch = __decorate([
39
+ InventoryChangePatch = tslib_1.__decorate([
48
40
  (0, type_graphql_1.InputType)()
49
41
  ], InventoryChangePatch);
50
42
  exports.InventoryChangePatch = InventoryChangePatch;
51
43
  let NewInventoryChange = class NewInventoryChange {
52
44
  };
53
- __decorate([
45
+ tslib_1.__decorate([
54
46
  (0, type_graphql_1.Field)(),
55
- __metadata("design:type", String)
47
+ tslib_1.__metadata("design:type", String)
56
48
  ], NewInventoryChange.prototype, "name", void 0);
57
- __decorate([
49
+ tslib_1.__decorate([
58
50
  (0, type_graphql_1.Field)({ nullable: true }),
59
- __metadata("design:type", String)
51
+ tslib_1.__metadata("design:type", String)
60
52
  ], NewInventoryChange.prototype, "description", void 0);
61
- NewInventoryChange = __decorate([
53
+ NewInventoryChange = tslib_1.__decorate([
62
54
  (0, type_graphql_1.InputType)()
63
55
  ], NewInventoryChange);
64
56
  exports.NewInventoryChange = NewInventoryChange;