@things-factory/worksheet-base 5.0.0-alpha.6 → 5.0.0-alpha.9

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 (66) hide show
  1. package/dist-server/controllers/inbound/unloading-worksheet-controller.js +235 -0
  2. package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
  3. package/dist-server/controllers/outbound/loading-worksheet-controller.js +10 -0
  4. package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
  5. package/dist-server/controllers/outbound/packing-worksheet-controller.js +7 -0
  6. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
  7. package/dist-server/controllers/outbound/picking-worksheet-controller.js +327 -11
  8. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  9. package/dist-server/controllers/outbound/returning-worksheet-controller.js +4 -0
  10. package/dist-server/controllers/outbound/returning-worksheet-controller.js.map +1 -1
  11. package/dist-server/controllers/render-invoices.js +103 -65
  12. package/dist-server/controllers/render-invoices.js.map +1 -1
  13. package/dist-server/controllers/worksheet-controller.js +14 -0
  14. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  15. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +16 -2
  16. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -1
  17. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +2 -1
  18. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
  19. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +0 -17
  20. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  21. package/dist-server/graphql/resolvers/worksheet/picking/index.js +2 -1
  22. package/dist-server/graphql/resolvers/worksheet/picking/index.js.map +1 -1
  23. package/dist-server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.js +15 -0
  24. package/dist-server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.js.map +1 -0
  25. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js +3 -2
  26. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js.map +1 -1
  27. package/dist-server/graphql/resolvers/worksheet/unloading/index.js +3 -1
  28. package/dist-server/graphql/resolvers/worksheet/unloading/index.js.map +1 -1
  29. package/dist-server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.js +15 -0
  30. package/dist-server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.js.map +1 -0
  31. package/dist-server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.js +15 -0
  32. package/dist-server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.js.map +1 -0
  33. package/dist-server/graphql/resolvers/worksheet/unloading/unload.js.map +1 -1
  34. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js +3 -1
  35. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js.map +1 -1
  36. package/dist-server/graphql/types/worksheet/index.js +16 -0
  37. package/dist-server/graphql/types/worksheet/index.js.map +1 -1
  38. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js +1 -0
  39. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js.map +1 -1
  40. package/dist-server/graphql/types/worksheet/worksheet-info.js +1 -0
  41. package/dist-server/graphql/types/worksheet/worksheet-info.js.map +1 -1
  42. package/dist-server/index.js +1 -0
  43. package/dist-server/index.js.map +1 -1
  44. package/package.json +17 -17
  45. package/server/controllers/inbound/unloading-worksheet-controller.ts +277 -1
  46. package/server/controllers/outbound/loading-worksheet-controller.ts +13 -0
  47. package/server/controllers/outbound/packing-worksheet-controller.ts +9 -0
  48. package/server/controllers/outbound/picking-worksheet-controller.ts +434 -17
  49. package/server/controllers/outbound/returning-worksheet-controller.ts +5 -0
  50. package/server/controllers/render-invoices.ts +119 -72
  51. package/server/controllers/worksheet-controller.ts +17 -2
  52. package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +25 -6
  53. package/server/graphql/resolvers/worksheet/packing-worksheet.ts +3 -3
  54. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +0 -18
  55. package/server/graphql/resolvers/worksheet/picking/index.ts +3 -1
  56. package/server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.ts +24 -0
  57. package/server/graphql/resolvers/worksheet/unloaded-inventories.ts +6 -2
  58. package/server/graphql/resolvers/worksheet/unloading/index.ts +4 -0
  59. package/server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.ts +26 -0
  60. package/server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.ts +24 -0
  61. package/server/graphql/resolvers/worksheet/unloading/unload.ts +3 -1
  62. package/server/graphql/resolvers/worksheet/unloading-worksheet.ts +3 -1
  63. package/server/graphql/types/worksheet/index.ts +16 -0
  64. package/server/graphql/types/worksheet/worksheet-detail-info.ts +1 -0
  65. package/server/graphql/types/worksheet/worksheet-info.ts +1 -0
  66. package/server/index.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/index.ts"],"names":[],"mappings":";;;AAAA,qEAAuE;AACvE,yDAA4D;AAC5D,6EAA+E;AAC/E,mEAAqE;AACrE,mFAAmF;AACnF,mDAAsD;AACtD,qEAAuE;AACvE,yDAA4D;AAC5D,uCAA2C;AAC3C,iEAAmE;AACnE,6EAA8E;AAC9E,uEAAwE;AAE3D,QAAA,SAAS,+KACjB,6DAAgC,GAChC,sDAA4B,GAC5B,0CAAuB,GACvB,qDAA4B,GAC5B,yBAAe,GACf,iDAA0B,GAC1B,4DAA+B,GAC/B,oCAAoB,GACpB,0CAAuB,GACvB,qDAA4B,GAC5B,mDAA2B,GAC3B,iEAAiC,EACrC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/index.ts"],"names":[],"mappings":";;;AAAA,qEAAuE;AACvE,yDAA4D;AAC5D,6EAA+E;AAC/E,mEAAqE;AACrE,mFAAmF;AACnF,mDAAsD;AACtD,qEAAuE;AACvE,yDAA4D;AAC5D,uCAA2C;AAC3C,iEAAmE;AACnE,6EAA8E;AAC9E,uEAAwE;AACxE,6EAA8E;AAEjE,QAAA,SAAS,6LACjB,6DAAgC,GAChC,sDAA4B,GAC5B,0CAAuB,GACvB,qDAA4B,GAC5B,yBAAe,GACf,iDAA0B,GAC1B,4DAA+B,GAC/B,oCAAoB,GACpB,0CAAuB,GACvB,qDAA4B,GAC5B,mDAA2B,GAC3B,iEAAiC,GACjC,4DAA+B,EACnC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.undoSerialNumberPickingResolver = void 0;
4
+ const controllers_1 = require("../../../../controllers");
5
+ exports.undoSerialNumberPickingResolver = {
6
+ async undoSerialNumberPicking(_, { worksheetDetailName, inventoryItemId }, context) {
7
+ const { tx, domain, user } = context.state;
8
+ await undoSerialNumberPicking(tx, domain, user, worksheetDetailName, inventoryItemId);
9
+ }
10
+ };
11
+ async function undoSerialNumberPicking(tx, domain, user, worksheetDetailName, inventoryItemId) {
12
+ const worksheetController = new controllers_1.PickingWorksheetController(tx, domain, user);
13
+ await worksheetController.undoSerialNumberPicking(worksheetDetailName, inventoryItemId);
14
+ }
15
+ //# sourceMappingURL=undo-serial-number-picking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undo-serial-number-picking.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.ts"],"names":[],"mappings":";;;AAKA,yDAAoE;AAEvD,QAAA,+BAA+B,GAAG;IAC7C,KAAK,CAAC,uBAAuB,CAAC,CAAM,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,EAAE,OAAY;QAC1F,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAC7F,MAAM,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,eAAe,CAAC,CAAA;IACvF,CAAC;CACF,CAAA;AAED,KAAK,UAAU,uBAAuB,CACpC,EAAiB,EACjB,MAAc,EACd,IAAU,EACV,mBAA2B,EAC3B,eAAuB;IAEvB,MAAM,mBAAmB,GAA+B,IAAI,wCAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACxG,MAAM,mBAAmB,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAA;AACzF,CAAC"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.unloadedInventories = void 0;
4
- const warehouse_base_1 = require("@things-factory/warehouse-base");
5
4
  const typeorm_1 = require("typeorm");
5
+ const warehouse_base_1 = require("@things-factory/warehouse-base");
6
6
  const constants_1 = require("../../../constants");
7
7
  const entities_1 = require("../../../entities");
8
8
  exports.unloadedInventories = {
@@ -45,7 +45,8 @@ exports.unloadedInventories = {
45
45
  });
46
46
  const items = foundInv.map((inv) => {
47
47
  const expirationDate = inv.expirationDate ? new Date(inv.expirationDate) : null;
48
- return Object.assign(Object.assign({}, inv), { expirationDate: expirationDate });
48
+ const manufactureDate = inv.manufactureDate ? new Date(inv.manufactureDate) : null;
49
+ return Object.assign(Object.assign({}, inv), { expirationDate: expirationDate, manufactureDate: manufactureDate });
49
50
  });
50
51
  return items;
51
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"unloaded-inventories.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet/unloaded-inventories.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unloaded-inventories.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet/unloaded-inventories.ts"],"names":[],"mappings":";;;AAAA,qCAA2C;AAI3C,mEAA4E;AAE5E,kDAAqE;AACrE,gDAAmD;AAEtC,QAAA,mBAAmB,GAAG;IACjC,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,EAAE,oBAAoB,EAAE,EAAE,OAAY;QACtE,MAAM,EAAE,MAAM,EAAE,GAAuB,OAAO,CAAC,KAAK,CAAA;QACpD,MAAM,qBAAqB,GAAsB,MAAM,IAAA,uBAAa,EAAC,0BAAe,CAAC,CAAC,IAAI,CAAC;YACzF,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI,EAAE,IAAA,YAAE,EAAC,oBAAoB,CAAC;gBAC9B,IAAI,EAAE,IAAA,YAAE,EAAC,CAAC,0BAAc,CAAC,SAAS,EAAE,0BAAc,CAAC,gBAAgB,CAAC,CAAC;gBACrE,MAAM,EAAE,IAAA,YAAE,EAAC,CAAC,4BAAgB,CAAC,SAAS,EAAE,4BAAgB,CAAC,kBAAkB,CAAC,CAAC;aAC9E;YACD,SAAS,EAAE;gBACT,UAAU;gBACV,eAAe;gBACf,iBAAiB;gBACjB,WAAW;gBACX,yBAAyB;gBACzB,uBAAuB;gBACvB,0BAA0B;aAC3B;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,MAAM,CAAA;YAAE,OAAO,EAAE,CAAA;QAE7C,MAAM,aAAa,GAAkB,qBAAqB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAA;QACrF,MAAM,WAAW,GAAgB,qBAAqB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAA;QAC/E,MAAM,gBAAgB,GAAa,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QACpE,IAAI,aAAa,EAAE;YACjB,IAAI,QAAQ,GAAG,MAAM,IAAA,uBAAa,EAAC,0BAAS,CAAC,CAAC,IAAI,CAAC;gBACjD,KAAK,EAAE;oBACL,MAAM;oBACN,QAAQ,EAAE,gBAAgB;oBAC1B,UAAU,EAAE,aAAa,CAAC,EAAE;oBAC5B,OAAO,EAAE,IAAA,YAAE,EAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBACxE,QAAQ,EAAE,IAAA,YAAE,EAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBAC/E,cAAc,EAAE,IAAA,YAAE,EAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;oBAC1E,MAAM,EAAE,IAAA,YAAE,EAAC,CAAC,iCAAgB,CAAC,QAAQ,EAAE,iCAAgB,CAAC,OAAO,CAAC,CAAC;iBAClE;gBACD,SAAS,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,UAAU,CAAC;aACrD,CAAC,CAAA;YACF,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAc,EAAE,EAAE;gBAC5C,MAAM,cAAc,GAAS,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBACrF,MAAM,eAAe,GAAS,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBACxF,uCACK,GAAG,KACN,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,IACjC;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,KAAK,CAAA;SACb;QAED,IAAI,WAAW,EAAE;YACf,OAAO,MAAM,IAAA,uBAAa,EAAC,0BAAS,CAAC,CAAC,IAAI,CAAC;gBACzC,KAAK,EAAE;oBACL,MAAM;oBACN,QAAQ,EAAE,gBAAgB;oBAC1B,UAAU,EAAE,WAAW,CAAC,EAAE;oBAC1B,OAAO,EAAE,IAAA,YAAE,EAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oBAC1E,QAAQ,EAAE,IAAA,YAAE,EAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBAC/E,gBAAgB,EAAE,IAAA,YAAE,EAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;oBAC9E,MAAM,EAAE,IAAA,YAAE,EAAC,CAAC,iCAAgB,CAAC,QAAQ,EAAE,iCAAgB,CAAC,OAAO,CAAC,CAAC;iBAClE;gBACD,SAAS,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,UAAU,CAAC;aACrD,CAAC,CAAA;SACH;IACH,CAAC;CACF,CAAA"}
@@ -6,7 +6,9 @@ const complete_product_scan_unload_1 = require("./complete-product-scan-unload")
6
6
  const complete_unloading_1 = require("./complete-unloading");
7
7
  const complete_unloading_partially_1 = require("./complete-unloading-partially");
8
8
  const scan_product_unload_1 = require("./scan-product-unload");
9
+ const scan_serial_number_unload_1 = require("./scan-serial-number-unload");
10
+ const undo_serial_number_unload_1 = require("./undo-serial-number-unload");
9
11
  const undo_unloading_1 = require("./undo-unloading");
10
12
  const unload_1 = require("./unload");
11
- exports.Mutations = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, activate_unloading_1.activateUnloadingResolver), scan_product_unload_1.scanProductUnloadResolver), unload_1.unloadResolver), undo_unloading_1.undoUnloadingResolver), complete_product_scan_unload_1.completeProductScanUnloadResolver), complete_unloading_1.completeUnloadingResolver), complete_unloading_partially_1.completeUnloadingPartiallyResolver);
13
+ exports.Mutations = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, activate_unloading_1.activateUnloadingResolver), scan_product_unload_1.scanProductUnloadResolver), scan_serial_number_unload_1.scanSerialNumberUnloadResolver), unload_1.unloadResolver), undo_unloading_1.undoUnloadingResolver), undo_serial_number_unload_1.undoSerialNumberUnloadResolver), complete_product_scan_unload_1.completeProductScanUnloadResolver), complete_unloading_1.completeUnloadingResolver), complete_unloading_partially_1.completeUnloadingPartiallyResolver);
12
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/unloading/index.ts"],"names":[],"mappings":";;;AAAA,6DAAgE;AAChE,iFAAkF;AAClF,6DAAgE;AAChE,iFAAmF;AACnF,+DAAiE;AACjE,qDAAwD;AACxD,qCAAyC;AAE5B,QAAA,SAAS,yGACjB,8CAAyB,GACzB,+CAAyB,GACzB,uBAAc,GACd,sCAAqB,GACrB,gEAAiC,GACjC,8CAAyB,GACzB,iEAAkC,EACtC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/unloading/index.ts"],"names":[],"mappings":";;;AAAA,6DAAgE;AAChE,iFAAkF;AAClF,6DAAgE;AAChE,iFAAmF;AACnF,+DAAiE;AACjE,2EAA4E;AAC5E,2EAA4E;AAC5E,qDAAwD;AACxD,qCAAyC;AAE5B,QAAA,SAAS,qIACjB,8CAAyB,GACzB,+CAAyB,GACzB,0DAA8B,GAC9B,uBAAc,GACd,sCAAqB,GACrB,0DAA8B,GAC9B,gEAAiC,GACjC,8CAAyB,GACzB,iEAAkC,EACtC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.scanSerialNumberUnloadResolver = void 0;
4
+ const controllers_1 = require("../../../../controllers");
5
+ exports.scanSerialNumberUnloadResolver = {
6
+ async scanSerialNumberUnload(_, { worksheetDetailName, serialNumber, inventory }, context) {
7
+ const { tx, domain, user } = context.state;
8
+ await scanSerialNumberUnload(tx, domain, user, worksheetDetailName, serialNumber, inventory);
9
+ }
10
+ };
11
+ async function scanSerialNumberUnload(tx, domain, user, worksheetDetailName, serialNumber, inventory) {
12
+ const worksheetController = new controllers_1.UnloadingWorksheetController(tx, domain, user);
13
+ await worksheetController.scanSerialNumberUnload(worksheetDetailName, serialNumber, inventory);
14
+ }
15
+ //# sourceMappingURL=scan-serial-number-unload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-serial-number-unload.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.ts"],"names":[],"mappings":";;;AAMA,yDAAsE;AAEzD,QAAA,8BAA8B,GAAG;IAC5C,KAAK,CAAC,sBAAsB,CAAC,CAAM,EAAE,EAAE,mBAAmB,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,OAAY;QACjG,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAC7F,MAAM,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;IAC9F,CAAC;CACF,CAAA;AAED,KAAK,UAAU,sBAAsB,CACnC,EAAiB,EACjB,MAAc,EACd,IAAU,EACV,mBAA2B,EAC3B,YAAoB,EACpB,SAA6B;IAE7B,MAAM,mBAAmB,GAAiC,IAAI,0CAA4B,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC5G,MAAM,mBAAmB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;AAChG,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.undoSerialNumberUnloadResolver = void 0;
4
+ const controllers_1 = require("../../../../controllers");
5
+ exports.undoSerialNumberUnloadResolver = {
6
+ async undoSerialNumberUnload(_, { worksheetDetailName, inventoryItemId }, context) {
7
+ const { tx, domain, user } = context.state;
8
+ await undoSerialNumberUnload(tx, domain, user, worksheetDetailName, inventoryItemId);
9
+ }
10
+ };
11
+ async function undoSerialNumberUnload(tx, domain, user, worksheetDetailName, inventoryItemId) {
12
+ const worksheetController = new controllers_1.UnloadingWorksheetController(tx, domain, user);
13
+ await worksheetController.undoSerialNumberUnload(worksheetDetailName, inventoryItemId);
14
+ }
15
+ //# sourceMappingURL=undo-serial-number-unload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undo-serial-number-unload.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.ts"],"names":[],"mappings":";;;AAKA,yDAAsE;AAEzD,QAAA,8BAA8B,GAAG;IAC5C,KAAK,CAAC,sBAAsB,CAAC,CAAM,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,EAAE,OAAY;QACzF,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAC7F,MAAM,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,eAAe,CAAC,CAAA;IACtF,CAAC;CACF,CAAA;AAED,KAAK,UAAU,sBAAsB,CACnC,EAAiB,EACjB,MAAc,EACd,IAAU,EACV,mBAA2B,EAC3B,eAAuB;IAEvB,MAAM,mBAAmB,GAAiC,IAAI,0CAA4B,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC5G,MAAM,mBAAmB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAA;AACxF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"unload.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/unloading/unload.ts"],"names":[],"mappings":";;;AAIA,yDAAsE;AAEzD,QAAA,cAAc,GAAG;IAC5B,KAAK,CAAC,MAAM,CAAC,CAAM,EAAE,EAAE,mBAAmB,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,OAAY;QACnF,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAC7F,MAAM,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,cAAc,CAAC,CAAA;IAChF,CAAC;CACF,CAAA;AAED,KAAK,UAAU,MAAM,CACnB,EAAiB,EACjB,MAAc,EACd,IAAU,EACV,mBAA2B,EAC3B,SAA6B,EAC7B,cAAsB;IAEtB,MAAM,mBAAmB,GAAiC,IAAI,0CAA4B,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC5G,MAAM,mBAAmB,CAAC,MAAM,CAAC,mBAAmB,EAAE,SAAS,EAAE,cAAc,CAAC,CAAA;AAClF,CAAC"}
1
+ {"version":3,"file":"unload.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/unloading/unload.ts"],"names":[],"mappings":";;;AAMA,yDAAsE;AAEzD,QAAA,cAAc,GAAG;IAC5B,KAAK,CAAC,MAAM,CAAC,CAAM,EAAE,EAAE,mBAAmB,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,OAAY;QACnF,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAC7F,MAAM,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,cAAc,CAAC,CAAA;IAChF,CAAC;CACF,CAAA;AAED,KAAK,UAAU,MAAM,CACnB,EAAiB,EACjB,MAAc,EACd,IAAU,EACV,mBAA2B,EAC3B,SAA6B,EAC7B,cAAsB;IAEtB,MAAM,mBAAmB,GAAiC,IAAI,0CAA4B,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC5G,MAAM,mBAAmB,CAAC,MAAM,CAAC,mBAAmB,EAAE,SAAS,EAAE,cAAc,CAAC,CAAA;AAClF,CAAC"}
@@ -50,6 +50,7 @@ exports.unloadingWorksheetResolver = {
50
50
  });
51
51
  return {
52
52
  worksheetInfo: {
53
+ arrivalNotice,
53
54
  bizplaceName: customerBizplace.name,
54
55
  partnerDomainId: customerBizplace === null || customerBizplace === void 0 ? void 0 : customerBizplace.domain.id,
55
56
  customerCompanyDomainId: customerCompanyDomain.id,
@@ -80,7 +81,8 @@ exports.unloadingWorksheetResolver = {
80
81
  actualPackQty: targetProduct.actualPackQty,
81
82
  remark: targetProduct.remark,
82
83
  issue: productWSD.issue,
83
- status: productWSD.status
84
+ status: productWSD.status,
85
+ manufactureDate: targetProduct.manufactureDate ? new Date(targetProduct.manufactureDate) : null
84
86
  };
85
87
  })
86
88
  };
@@ -1 +1 @@
1
- {"version":3,"file":"unloading-worksheet.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet/unloading-worksheet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unloading-worksheet.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet/unloading-worksheet.ts"],"names":[],"mappings":"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"}
@@ -170,6 +170,11 @@ exports.Mutation = `
170
170
  worksheetNo: String!
171
171
  ): Worksheet @privilege(category: "worksheet_control", privilege: "mutation") @transaction
172
172
 
173
+ undoSerialNumberPicking (
174
+ worksheetDetailName: String!
175
+ inventoryItemId: String!
176
+ ): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
177
+
173
178
  unload (
174
179
  worksheetDetailName: String!
175
180
  inventory: InventoryPatch!
@@ -187,6 +192,12 @@ exports.Mutation = `
187
192
  inventory: InventoryPatch!
188
193
  ): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
189
194
 
195
+ scanSerialNumberUnload (
196
+ worksheetDetailName: String!
197
+ serialNumber: String!
198
+ inventory: InventoryPatch!
199
+ ): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
200
+
190
201
  cycleCountAdjustment (
191
202
  cycleCountNo: String!
192
203
  ): Boolean @transaction
@@ -197,6 +208,11 @@ exports.Mutation = `
197
208
  inventoryIds: [String]!
198
209
  ): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
199
210
 
211
+ undoSerialNumberUnload (
212
+ worksheetDetailName: String!
213
+ inventoryItemId: String!
214
+ ): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
215
+
200
216
  completeUnloadingPartially (
201
217
  arrivalNoticeNo: String!
202
218
  worksheetDetail: [WorksheetDetailPatch!]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/types/worksheet/index.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,yEAAmE;AACnE,6DAAuD;AACvD,mEAA6D;AAC7D,mDAA8C;AAC9C,+DAAyD;AACzD,6DAAwD;AACxD,+DAA0D;AAC1D,+DAAyD;AACzD,2EAAqE;AACrE,uEAAiE;AACjE,iFAA0E;AAC1E,mDAA8C;AAC9C,2EAAqE;AACrE,yDAAoD;AACpD,qEAA+D;AAC/D,qEAA+D;AAC/D,+DAAyD;AACzD,2CAAuC;AACvC,mEAA6D;AAC7D,qDAAgD;AAChD,qDAAgD;AAChD,uDAAkD;AAClD,2EAAqE;AAExD,QAAA,QAAQ,GAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsfrC,CAAA;AAEY,QAAA,KAAK,GAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0IlC,CAAA;AAEY,QAAA,KAAK,GAAiB;IACjC,qBAAS;IACT,uBAAU;IACV,4BAAY;IACZ,gCAAc;IACd,8BAAa;IACb,iDAAsB;IACtB,6CAAoB;IACpB,2CAAmB;IACnB,6CAAoB;IACpB,mDAAuB;IACvB,uCAAiB;IACjB,uCAAiB;IACjB,qCAAgB;IAChB,uCAAiB;IACjB,8BAAa;IACb,4BAAY;IACZ,sCAAiB;IACjB,2CAAmB;IACnB,wCAAkB;IAClB,+CAAqB;IACrB,kCAAe;IACf,mDAAuB;IACvB,mDAAuB;IACvB,wDAAyB;CAC1B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/types/worksheet/index.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,yEAAmE;AACnE,6DAAuD;AACvD,mEAA6D;AAC7D,mDAA8C;AAC9C,+DAAyD;AACzD,6DAAwD;AACxD,+DAA0D;AAC1D,+DAAyD;AACzD,2EAAqE;AACrE,uEAAiE;AACjE,iFAA0E;AAC1E,mDAA8C;AAC9C,2EAAqE;AACrE,yDAAoD;AACpD,qEAA+D;AAC/D,qEAA+D;AAC/D,+DAAyD;AACzD,2CAAuC;AACvC,mEAA6D;AAC7D,qDAAgD;AAChD,qDAAgD;AAChD,uDAAkD;AAClD,2EAAqE;AAExD,QAAA,QAAQ,GAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsgBrC,CAAA;AAEY,QAAA,KAAK,GAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0IlC,CAAA;AAEY,QAAA,KAAK,GAAiB;IACjC,qBAAS;IACT,uBAAU;IACV,4BAAY;IACZ,gCAAc;IACd,8BAAa;IACb,iDAAsB;IACtB,6CAAoB;IACpB,2CAAmB;IACnB,6CAAoB;IACpB,mDAAuB;IACvB,uCAAiB;IACjB,uCAAiB;IACjB,qCAAgB;IAChB,uCAAiB;IACjB,8BAAa;IACb,4BAAY;IACZ,sCAAiB;IACjB,2CAAmB;IACnB,wCAAkB;IAClB,+CAAqB;IACrB,kCAAe;IACf,mDAAuB;IACvB,mDAAuB;IACvB,wDAAyB;CAC1B,CAAA"}
@@ -61,6 +61,7 @@ exports.WorksheetDetailInfo = (0, apollo_server_koa_1.gql) `
61
61
  releaseGood: ReleaseGood
62
62
  actualQty: Int
63
63
  actualUomValue: Float
64
+ manufactureDate: String
64
65
  }
65
66
  `;
66
67
  //# sourceMappingURL=worksheet-detail-info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet-detail-info.js","sourceRoot":"","sources":["../../../../server/graphql/types/worksheet/worksheet-detail-info.ts"],"names":[],"mappings":";;;AAAA,yDAAuC;AAE1B,QAAA,mBAAmB,GAAG,IAAA,uBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DrC,CAAA"}
1
+ {"version":3,"file":"worksheet-detail-info.js","sourceRoot":"","sources":["../../../../server/graphql/types/worksheet/worksheet-detail-info.ts"],"names":[],"mappings":";;;AAAA,yDAAuC;AAE1B,QAAA,mBAAmB,GAAG,IAAA,uBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DrC,CAAA"}
@@ -4,6 +4,7 @@ exports.WorksheetInfo = void 0;
4
4
  const apollo_server_koa_1 = require("apollo-server-koa");
5
5
  exports.WorksheetInfo = (0, apollo_server_koa_1.gql) `
6
6
  type WorksheetInfo {
7
+ arrivalNotice: ArrivalNotice
7
8
  releaseGood: ReleaseGood
8
9
  returnOrder: ReturnOrder
9
10
  bizplaceName: String
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet-info.js","sourceRoot":"","sources":["../../../../server/graphql/types/worksheet/worksheet-info.ts"],"names":[],"mappings":";;;AAAA,yDAAuC;AAE1B,QAAA,aAAa,GAAG,IAAA,uBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B/B,CAAA"}
1
+ {"version":3,"file":"worksheet-info.js","sourceRoot":"","sources":["../../../../server/graphql/types/worksheet/worksheet-info.ts"],"names":[],"mappings":";;;AAAA,yDAAuC;AAE1B,QAAA,aAAa,GAAG,IAAA,uBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4B/B,CAAA"}
@@ -20,5 +20,6 @@ __exportStar(require("./entities"), exports);
20
20
  __exportStar(require("./graphql"), exports);
21
21
  __exportStar(require("./graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet"), exports);
22
22
  __exportStar(require("./graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details"), exports);
23
+ __exportStar(require("./graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet"), exports);
23
24
  __exportStar(require("./migrations"), exports);
24
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oBAAiB;AAEjB,8CAA2B;AAC3B,6CAA0B;AAC1B,4CAAyB;AACzB,mHAAgG;AAChG,+GAA4F;AAC5F,+CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oBAAiB;AAEjB,8CAA2B;AAC3B,6CAA0B;AAC1B,4CAAyB;AACzB,mHAAgG;AAChG,+GAA4F;AAC5F,qHAAkG;AAClG,+CAA4B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/worksheet-base",
3
- "version": "5.0.0-alpha.6",
3
+ "version": "5.0.0-alpha.9",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -24,21 +24,21 @@
24
24
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
25
25
  },
26
26
  "dependencies": {
27
- "@things-factory/auth-base": "^5.0.0-alpha.6",
28
- "@things-factory/biz-base": "^5.0.0-alpha.6",
29
- "@things-factory/document-template-base": "^5.0.0-alpha.6",
30
- "@things-factory/id-rule-base": "^5.0.0-alpha.6",
31
- "@things-factory/integration-lmd": "^5.0.0-alpha.6",
32
- "@things-factory/integration-marketplace": "^5.0.0-alpha.6",
33
- "@things-factory/integration-sellercraft": "^5.0.0-alpha.6",
34
- "@things-factory/integration-sftp": "^5.0.0-alpha.6",
35
- "@things-factory/marketplace-base": "^5.0.0-alpha.6",
36
- "@things-factory/notification": "^5.0.0-alpha.6",
37
- "@things-factory/sales-base": "^5.0.0-alpha.6",
38
- "@things-factory/setting-base": "^5.0.0-alpha.6",
39
- "@things-factory/shell": "^5.0.0-alpha.6",
40
- "@things-factory/transport-base": "^5.0.0-alpha.6",
41
- "@things-factory/warehouse-base": "^5.0.0-alpha.6"
27
+ "@things-factory/auth-base": "^5.0.0-alpha.9",
28
+ "@things-factory/biz-base": "^5.0.0-alpha.9",
29
+ "@things-factory/document-template-base": "^5.0.0-alpha.9",
30
+ "@things-factory/id-rule-base": "^5.0.0-alpha.9",
31
+ "@things-factory/integration-lmd": "^5.0.0-alpha.9",
32
+ "@things-factory/integration-marketplace": "^5.0.0-alpha.9",
33
+ "@things-factory/integration-sellercraft": "^5.0.0-alpha.9",
34
+ "@things-factory/integration-sftp": "^5.0.0-alpha.9",
35
+ "@things-factory/marketplace-base": "^5.0.0-alpha.9",
36
+ "@things-factory/notification": "^5.0.0-alpha.9",
37
+ "@things-factory/sales-base": "^5.0.0-alpha.9",
38
+ "@things-factory/setting-base": "^5.0.0-alpha.9",
39
+ "@things-factory/shell": "^5.0.0-alpha.9",
40
+ "@things-factory/transport-base": "^5.0.0-alpha.9",
41
+ "@things-factory/warehouse-base": "^5.0.0-alpha.9"
42
42
  },
43
- "gitHead": "72544163ae4a11a4d34cda016f4a28a3207806ae"
43
+ "gitHead": "c0f2f0758f80724cae6bbd56bbea43feef0f8a1c"
44
44
  }
@@ -22,9 +22,11 @@ import {
22
22
  import { Domain } from '@things-factory/shell'
23
23
  import {
24
24
  Inventory,
25
+ INVENTORY_ITEM_SOURCE,
25
26
  INVENTORY_STATUS,
26
27
  INVENTORY_TRANSACTION_TYPE,
27
28
  InventoryHistory,
29
+ InventoryItem,
28
30
  InventoryNoGenerator,
29
31
  Location,
30
32
  Pallet,
@@ -33,7 +35,7 @@ import {
33
35
 
34
36
  import { RULE_TYPE, WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
35
37
  import { Worksheet, WorksheetDetail } from '../../entities'
36
- import { DateGenerator } from '../../utils'
38
+ import { DateGenerator, generateInventoryHistory } from '../../utils'
37
39
  import { VasWorksheetController } from '../vas/vas-worksheet-controller'
38
40
 
39
41
  export type UnloadingWorksheetDetail = Partial<WorksheetDetail> & {
@@ -241,6 +243,189 @@ export class UnloadingWorksheetController extends VasWorksheetController {
241
243
  }
242
244
  }
243
245
 
246
+ async scanSerialNumberUnload(
247
+ worksheetDetailName: string,
248
+ serialNumber: string,
249
+ inventory: Partial<Inventory>
250
+ ): Promise<void> {
251
+ const worksheetDetail: WorksheetDetail = await this.trxMgr.getRepository(WorksheetDetail).findOne({
252
+ where: {
253
+ name: worksheetDetailName,
254
+ status: Not(Equal(WORKSHEET_STATUS.DEACTIVATED))
255
+ },
256
+ relations: [
257
+ 'bizplace',
258
+ 'worksheet',
259
+ 'worksheet.arrivalNotice',
260
+ 'worksheet.returnOrder',
261
+ 'worksheet.bufferLocation',
262
+ 'worksheet.bufferLocation.warehouse',
263
+ 'targetProduct',
264
+ 'targetProduct.product',
265
+ 'targetProduct.product.productDetails',
266
+ 'targetProduct.product.productDetails.childProductDetail',
267
+ 'targetInventory',
268
+ 'targetInventory.product',
269
+ 'targetInventory.product.productDetails',
270
+ 'targetInventory.product.productDetails.childProductDetail'
271
+ ]
272
+ })
273
+ if (!worksheetDetail) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(worksheetDetailName))
274
+
275
+ if (!inventory?.palletId)
276
+ inventory.palletId = await generateId({
277
+ domain: this.domain,
278
+ type: RULE_TYPE.LOT_NUMBER_ID,
279
+ seed: { date: DateGenerator.generateDate() }
280
+ })
281
+
282
+ const bizplace: Bizplace = worksheetDetail.bizplace
283
+ const worksheet: Worksheet = worksheetDetail.worksheet
284
+ const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice
285
+ const returnOrder: ReturnOrder = worksheet.returnOrder
286
+ const targetProduct: OrderProduct = worksheetDetail.targetProduct
287
+ const targetInventory: OrderInventory = worksheetDetail.targetInventory
288
+ const product: Product = Boolean(arrivalNotice) ? targetProduct.product : targetInventory.product
289
+ const packingType: string = Boolean(arrivalNotice) ? targetProduct.packingType : targetInventory.packingType
290
+ const packingSize: number = Boolean(arrivalNotice) ? targetProduct.packingSize : targetInventory.packingSize
291
+ const batchId: string = Boolean(arrivalNotice) ? targetProduct.batchId : targetInventory.batchId
292
+ let qty: number = 0
293
+ let uom: string = Boolean(arrivalNotice) ? targetProduct.uom : targetInventory.uom
294
+ const cartonId: string = inventory.cartonId
295
+ const orderId: string = Boolean(arrivalNotice) ? arrivalNotice.id : returnOrder.id
296
+ await this.checkSerialNumberDuplication(serialNumber, product)
297
+
298
+ qty++
299
+
300
+ const invQb: SelectQueryBuilder<Inventory> = await this.trxMgr
301
+ .getRepository(Inventory)
302
+ .createQueryBuilder('INV')
303
+ .where('INV.domain_id = :domainId', { domainId: this.domain.id })
304
+ .andWhere('INV.bizplace_id = :bizplaceId', { bizplaceId: bizplace.id })
305
+ .andWhere('INV.product_id = :productId', { productId: product.id })
306
+ .andWhere('INV.batch_id = :batchId', { batchId: batchId })
307
+ .andWhere('INV.packing_type = :packingType', { packingType: packingType })
308
+ .andWhere('INV.packing_size = :packingSize', { packingSize: packingSize })
309
+
310
+ if (arrivalNotice) invQb.andWhere('INV.ref_order_id = :arrivalNoticeId', { arrivalNoticeId: arrivalNotice.id })
311
+ else if (returnOrder) invQb.andWhere('INV.ref_order_id = :returnOrderId', { returnOrderId: returnOrder.id })
312
+
313
+ if (inventory?.expirationDate) {
314
+ invQb.andWhere('INV.expiration_date = :expirationDate', {
315
+ expirationDate: inventory.expirationDate
316
+ })
317
+ }
318
+
319
+ if (inventory?.cartonId) invQb.andWhere('INV.carton_id = :cartonId', { cartonId: inventory.cartonId })
320
+ else invQb.andWhere('INV.pallet_id = :palletId', { palletId: inventory.palletId })
321
+
322
+ let foundInventory: Inventory = await invQb.getOne()
323
+
324
+ const batchIdRef: string = Boolean(arrivalNotice) ? targetProduct.batchIdRef : null
325
+ const remark: string = Boolean(arrivalNotice) ? targetProduct.remark : targetInventory.remark
326
+ const manufactureDate: number = Boolean(arrivalNotice) ? targetProduct.manufactureDate : null
327
+ const location: Location = worksheet.bufferLocation
328
+ const warehouse: Warehouse = location.warehouse
329
+ const zone: string = location.zone
330
+ const unitCost: number = Boolean(arrivalNotice)
331
+ ? targetProduct?.unitPrice
332
+ ? ((targetProduct.packQty * targetProduct.unitPrice + targetProduct.miscAmt - targetProduct.discountAmt) *
333
+ (1 + targetProduct.taxRate / 100)) /
334
+ targetProduct.packQty
335
+ : 0
336
+ : null
337
+
338
+ if (!foundInventory) {
339
+ let newInventory: Partial<Inventory> = new Inventory()
340
+ newInventory.bizplace = bizplace
341
+ newInventory.domain = this.domain
342
+ newInventory.name = InventoryNoGenerator.inventoryName()
343
+ newInventory.palletId = inventory.palletId
344
+ newInventory.cartonId = inventory.cartonId
345
+ newInventory.batchId = batchId
346
+ newInventory.batchIdRef = batchIdRef
347
+ newInventory.product = product
348
+ newInventory.packingType = packingType
349
+ newInventory.packingSize = packingSize
350
+ newInventory.uom = uom
351
+ newInventory.remark = remark
352
+ newInventory.qty = qty
353
+ newInventory.uomValue =
354
+ Math.round(
355
+ qty *
356
+ (Boolean(arrivalNotice)
357
+ ? targetProduct.uomValue
358
+ : targetInventory.returnUomValue / targetInventory.returnQty) *
359
+ 100
360
+ ) / 100
361
+ newInventory.manufactureDate = manufactureDate
362
+ newInventory.refOrderId = orderId
363
+ newInventory.unitCost = unitCost
364
+ if (inventory.reusablePallet?.id) {
365
+ newInventory.reusablePallet = await this.trxMgr.getRepository(Pallet).findOne(inventory.reusablePallet.id)
366
+ }
367
+ newInventory.orderProductId = Boolean(arrivalNotice) ? targetProduct.id : null
368
+ newInventory.orderInventoryId = Boolean(returnOrder) ? targetInventory.id : null
369
+ newInventory.warehouse = warehouse
370
+ newInventory.location = location
371
+ newInventory.zone = zone
372
+ newInventory.status = INVENTORY_STATUS.CHECKED
373
+ newInventory.creator = this.user
374
+
375
+ if (inventory?.expirationDate) {
376
+ newInventory.expirationDate = new Date(inventory.expirationDate)
377
+ }
378
+
379
+ if (arrivalNotice) {
380
+ targetProduct.actualPalletQty++
381
+ targetProduct.actualPackQty = Boolean(targetProduct.actualPackQty) ? targetProduct.actualPackQty + qty : qty
382
+ } else if (returnOrder) {
383
+ targetInventory.actualPalletQty++
384
+ targetInventory.actualPackQty = Boolean(targetInventory.actualPackQty)
385
+ ? targetInventory.actualPackQty + qty
386
+ : qty
387
+ }
388
+ foundInventory = await this.trxMgr.getRepository(Inventory).save(newInventory)
389
+ } else {
390
+ const updatedQty: number = foundInventory.qty + qty
391
+ foundInventory.expirationDate = new Date(foundInventory.expirationDate)
392
+ foundInventory.qty = updatedQty
393
+ foundInventory.uomValue +=
394
+ Math.round(
395
+ qty *
396
+ (Boolean(arrivalNotice)
397
+ ? targetProduct.uomValue
398
+ : targetInventory.returnUomValue / targetInventory.returnQty) *
399
+ 100
400
+ ) / 100
401
+ if (arrivalNotice) targetProduct.actualPackQty = targetProduct.actualPackQty + qty
402
+ else if (returnOrder) targetInventory.actualPackQty = targetInventory.actualPackQty + qty
403
+ foundInventory = await this.trxMgr.getRepository(Inventory).save(foundInventory)
404
+ }
405
+
406
+ let inventoryItem: InventoryItem = new InventoryItem()
407
+ inventoryItem.name = InventoryNoGenerator.inventoryItemName()
408
+ inventoryItem.serialNumber = serialNumber
409
+ inventoryItem.status = foundInventory.status
410
+ inventoryItem.inboundOrderId = foundInventory.refOrderId
411
+ inventoryItem.product = product
412
+ inventoryItem.inventory = foundInventory
413
+ inventoryItem.source = INVENTORY_ITEM_SOURCE.INBOUND
414
+ inventoryItem.domain = this.domain
415
+ inventoryItem.creator = this.user
416
+ inventoryItem.updater = this.user
417
+
418
+ await this.trxMgr.getRepository(InventoryItem).save(inventoryItem)
419
+
420
+ if (arrivalNotice) {
421
+ targetProduct.updater = this.user
422
+ this.updateOrderTargets([targetProduct])
423
+ } else if (returnOrder) {
424
+ targetInventory.updater = this.user
425
+ this.updateOrderTargets([targetInventory])
426
+ }
427
+ }
428
+
244
429
  async scanProductUnload(
245
430
  worksheetDetailName: string,
246
431
  productBarcode: string,
@@ -656,6 +841,60 @@ export class UnloadingWorksheetController extends VasWorksheetController {
656
841
  }
657
842
  }
658
843
 
844
+ async undoSerialNumberUnload(worksheetDetailName: string, inventoryItemId: string): Promise<void> {
845
+ const worksheetDetail: WorksheetDetail = await this.trxMgr.getRepository(WorksheetDetail).findOne({
846
+ where: { name: worksheetDetailName, domain: this.domain, status: Not(Equal(WORKSHEET_STATUS.DEACTIVATED)) },
847
+ relations: [
848
+ 'worksheet',
849
+ 'worksheet.arrivalNotice',
850
+ 'worksheet.returnOrder',
851
+ 'targetProduct',
852
+ 'targetProduct.product'
853
+ ]
854
+ })
855
+
856
+ let worksheet: Worksheet = worksheetDetail.worksheet
857
+ let arrivalNotice: ArrivalNotice = worksheet.arrivalNotice
858
+ let returnOrder: ReturnOrder = worksheet.returnOrder
859
+ let targetInventory: OrderInventory = worksheetDetail.targetInventory
860
+ let targetProduct: OrderProduct = worksheetDetail.targetProduct
861
+ let inventoryItem: InventoryItem = await this.trxMgr.getRepository(InventoryItem).findOne({
862
+ where: { domain: this.domain, id: inventoryItemId },
863
+ relations: ['inventory', 'product']
864
+ })
865
+ let inventory: Inventory = inventoryItem.inventory
866
+
867
+ await this.trxMgr.getRepository(InventoryItem).delete(inventoryItem.id)
868
+
869
+ inventory.qty--
870
+ inventory.uomValue =
871
+ Math.round(
872
+ inventory.qty *
873
+ (Boolean(arrivalNotice)
874
+ ? targetProduct.uomValue
875
+ : targetInventory.returnUomValue / targetInventory.returnQty) *
876
+ 100
877
+ ) / 100
878
+ await this.trxMgr
879
+ .getRepository(Inventory)
880
+ .update({ id: inventory.id }, { qty: inventory.qty, uomValue: inventory.uomValue })
881
+
882
+ targetProduct.actualPackQty--
883
+
884
+ const inventoryItems: InventoryItem[] = await this.trxMgr.getRepository(InventoryItem).find({
885
+ where: { domain: this.domain, inboundOrderId: arrivalNotice.id, inventory }
886
+ })
887
+
888
+ if (inventoryItems?.length == 0) {
889
+ await this.trxMgr.getRepository(Inventory).delete(inventory.id)
890
+
891
+ targetProduct.actualPalletQty--
892
+ }
893
+
894
+ targetProduct.updater = this.user
895
+ await this.updateOrderTargets([targetProduct])
896
+ }
897
+
659
898
  async activateUnloading(
660
899
  worksheetNo: string,
661
900
  unloadingWorksheetDetails: UnloadingWorksheetDetail[]
@@ -785,6 +1024,43 @@ export class UnloadingWorksheetController extends VasWorksheetController {
785
1024
  await this.completeWorksheet(worksheet)
786
1025
  }
787
1026
 
1027
+ const inventories: Inventory[] = await this.trxMgr.getRepository(Inventory).find({
1028
+ where: {
1029
+ domain: this.domain,
1030
+ refOrderId: arrivalNotice.id,
1031
+ status: In([INVENTORY_STATUS.UNLOADED, INVENTORY_STATUS.CHECKED])
1032
+ },
1033
+ relations: ['domain', 'bizplace', 'product', 'warehouse', 'location']
1034
+ })
1035
+
1036
+ for (let inventory of inventories) {
1037
+ let inventoryItems: InventoryItem[] = await this.trxMgr.getRepository(InventoryItem).find({
1038
+ where: { domain: this.domain, inventory }
1039
+ })
1040
+
1041
+ if (inventoryItems?.length) {
1042
+ inventory.status = INVENTORY_STATUS.STORED
1043
+
1044
+ await Promise.all(
1045
+ inventoryItems.map(async inventoryItem => {
1046
+ await this.trxMgr
1047
+ .getRepository(InventoryItem)
1048
+ .update({ id: inventoryItem.id }, { status: INVENTORY_STATUS.STORED })
1049
+ })
1050
+ )
1051
+
1052
+ await generateInventoryHistory(
1053
+ inventory,
1054
+ arrivalNotice,
1055
+ INVENTORY_TRANSACTION_TYPE.UNLOADING,
1056
+ inventory.qty,
1057
+ inventory.uomValue,
1058
+ this.user,
1059
+ this.trxMgr
1060
+ )
1061
+ }
1062
+ }
1063
+
788
1064
  let vasWorksheet: Worksheet = await this.trxMgr.getRepository(Worksheet).findOne({
789
1065
  where: {
790
1066
  arrivalNotice,