@things-factory/worksheet-base 5.0.0-alpha.8 → 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 (63) 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/package.json +17 -17
  43. package/server/controllers/inbound/unloading-worksheet-controller.ts +277 -1
  44. package/server/controllers/outbound/loading-worksheet-controller.ts +13 -0
  45. package/server/controllers/outbound/packing-worksheet-controller.ts +9 -0
  46. package/server/controllers/outbound/picking-worksheet-controller.ts +434 -17
  47. package/server/controllers/outbound/returning-worksheet-controller.ts +5 -0
  48. package/server/controllers/render-invoices.ts +119 -72
  49. package/server/controllers/worksheet-controller.ts +17 -2
  50. package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +25 -6
  51. package/server/graphql/resolvers/worksheet/packing-worksheet.ts +3 -3
  52. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +0 -18
  53. package/server/graphql/resolvers/worksheet/picking/index.ts +3 -1
  54. package/server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.ts +24 -0
  55. package/server/graphql/resolvers/worksheet/unloaded-inventories.ts +6 -2
  56. package/server/graphql/resolvers/worksheet/unloading/index.ts +4 -0
  57. package/server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.ts +26 -0
  58. package/server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.ts +24 -0
  59. package/server/graphql/resolvers/worksheet/unloading/unload.ts +3 -1
  60. package/server/graphql/resolvers/worksheet/unloading-worksheet.ts +3 -1
  61. package/server/graphql/types/worksheet/index.ts +16 -0
  62. package/server/graphql/types/worksheet/worksheet-detail-info.ts +1 -0
  63. package/server/graphql/types/worksheet/worksheet-info.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":";;;AAAA,qCAAuC;AAGvC,2DAAwE;AAGxE,kDAAmD;AACnD,gDAA8D;AAC9D,0CAAwD;AAE3C,QAAA,0BAA0B,GAAG;IACxC,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,EAAE,eAAe,EAAE,EAAE,OAAY;;QAChE,MAAM,EAAE,MAAM,EAAE,GAAuB,OAAO,CAAC,KAAK,CAAA;QACpD,MAAM,aAAa,GAAkB,MAAM,IAAA,uBAAa,EAAC,0BAAa,CAAC,CAAC,OAAO,CAAC;YAC9E,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,mCAAmC,EAAE;YAC5E,SAAS,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,yBAAyB,CAAC;SAC1F,CAAC,CAAA;QACF,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAEpE,MAAM,gBAAgB,GAAa,aAAa,CAAC,QAAQ,CAAA;QACzD,MAAM,qBAAqB,GAAW,MAAA,aAAa,CAAC,QAAQ,0CAAE,OAAO,CAAC,MAAM,CAAA;QAC5E,MAAM,SAAS,GAAc,MAAM,IAAA,+BAAuB,EACxD,MAAM,EACN,gBAAgB,EAChB;YACE,UAAU;YACV,gBAAgB;YAChB,0BAA0B;YAC1B,eAAe;YACf,kBAAkB;YAClB,gCAAgC;YAChC,wCAAwC;YACxC,SAAS;YACT,SAAS;SACV,EACD,0BAAc,CAAC,SAAS,EACxB,aAAa,CACd,CAAA;QAED,MAAM,YAAY,GAAc,MAAM,IAAA,uBAAa,EAAC,oBAAS,CAAC,CAAC,OAAO,CAAC;YACrE,KAAK,EAAE;gBACL,MAAM;gBACN,aAAa;gBACb,IAAI,EAAE,0BAAc,CAAC,GAAG;aACzB;YACD,SAAS,EAAE;gBACT,UAAU;gBACV,iBAAiB;gBACjB,gBAAgB;gBAChB,0BAA0B;gBAC1B,eAAe;gBACf,kBAAkB;gBAClB,4BAA4B;gBAC5B,gCAAgC;gBAChC,SAAS;gBACT,SAAS;aACV;SACF,CAAC,CAAA;QAEF,OAAO;YACL,aAAa,EAAE;gBACb,YAAY,EAAE,gBAAgB,CAAC,IAAI;gBACnC,eAAe,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,CAAC,EAAE;gBAC5C,uBAAuB,EAAE,qBAAqB,CAAC,EAAE;gBACjD,WAAW,EAAE,aAAa,CAAC,WAAW;gBACtC,cAAc,EAAE,SAAS,CAAC,cAAc,CAAC,IAAI;gBAC7C,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,MAAM,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM;gBAC7B,MAAM,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM;gBAC7B,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI;aAC9D;YACD,oBAAoB,EAAE,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,UAA2B,EAAE,EAAE;gBACzF,MAAM,aAAa,GAAiB,UAAU,CAAC,aAAa,CAAA;gBAE5D,OAAO;oBACL,EAAE,EAAE,UAAU,CAAC,EAAE;oBACjB,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,OAAO,EAAE,aAAa,CAAC,OAAO;oBAC9B,UAAU,EAAE,aAAa,CAAC,UAAU;oBACpC,OAAO,EAAE,aAAa,CAAC,OAAO;oBAC9B,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,UAAU,EAAE,aAAa,CAAC,IAAI;oBAC9B,WAAW,EAAE,aAAa,CAAC,WAAW;oBACtC,WAAW,EAAE,aAAa,CAAC,WAAW;oBACtC,SAAS,EAAE,aAAa,CAAC,SAAS;oBAClC,eAAe,EAAE,aAAa,CAAC,eAAe;oBAC9C,OAAO,EAAE,aAAa,CAAC,OAAO;oBAC9B,aAAa,EAAE,aAAa,CAAC,aAAa;oBAC1C,MAAM,EAAE,aAAa,CAAC,MAAM;oBAC5B,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAA;YACH,CAAC,CAAC;SACH,CAAA;IACH,CAAC;CACF,CAAA"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/worksheet-base",
3
- "version": "5.0.0-alpha.8",
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.8",
28
- "@things-factory/biz-base": "^5.0.0-alpha.8",
29
- "@things-factory/document-template-base": "^5.0.0-alpha.8",
30
- "@things-factory/id-rule-base": "^5.0.0-alpha.8",
31
- "@things-factory/integration-lmd": "^5.0.0-alpha.8",
32
- "@things-factory/integration-marketplace": "^5.0.0-alpha.8",
33
- "@things-factory/integration-sellercraft": "^5.0.0-alpha.8",
34
- "@things-factory/integration-sftp": "^5.0.0-alpha.8",
35
- "@things-factory/marketplace-base": "^5.0.0-alpha.8",
36
- "@things-factory/notification": "^5.0.0-alpha.8",
37
- "@things-factory/sales-base": "^5.0.0-alpha.8",
38
- "@things-factory/setting-base": "^5.0.0-alpha.8",
39
- "@things-factory/shell": "^5.0.0-alpha.8",
40
- "@things-factory/transport-base": "^5.0.0-alpha.8",
41
- "@things-factory/warehouse-base": "^5.0.0-alpha.8"
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": "45da542dc9c876c0a1fa1837f1606210ae600b73"
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,
@@ -118,6 +118,15 @@ export class LoadingWorksheetController extends VasWorksheetController {
118
118
  const pickedQty: number = targetInventory.releaseQty
119
119
  let inventory: Inventory = targetInventory.inventory
120
120
 
121
+ targetInventory.loadedAt = new Date()
122
+ targetInventory.loadedByUser = this.user;
123
+
124
+ let loadedBy: string[] = targetInventory.loadedBy ? (targetInventory.loadedBy).split(',') : []
125
+ if (!loadedBy.find(x => x == this.user.name)) {
126
+ loadedBy.push(this.user.name)
127
+ targetInventory.loadedBy = loadedBy.join(',')
128
+ }
129
+
121
130
  if (loadedQty > pickedQty) {
122
131
  throw new Error(this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY('load', `loaded quantity can't exceed picked qty`))
123
132
  } else if (loadedQty == pickedQty) {
@@ -205,6 +214,10 @@ export class LoadingWorksheetController extends VasWorksheetController {
205
214
  undoTargetOrderInventory.deliveryOrder = null
206
215
  undoTargetOrderInventory.updater = this.user
207
216
 
217
+ undoTargetOrderInventory.loadedAt = null
218
+ undoTargetOrderInventory.loadedByUser = null
219
+ undoTargetOrderInventory.loadedBy = null
220
+
208
221
  let prevTargetInventory: OrderInventory = await this.trxMgr.getRepository(OrderInventory).findOne({
209
222
  where: {
210
223
  domain: this.domain,