@things-factory/warehouse-base 4.3.135 → 4.3.140

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 (46) hide show
  1. package/dist-server/controllers/warehouse-controller.js.map +1 -1
  2. package/dist-server/service/inventory/inventory-query.js +64 -67
  3. package/dist-server/service/inventory/inventory-query.js.map +1 -1
  4. package/dist-server/service/inventory/inventory-types.js +16 -12
  5. package/dist-server/service/inventory/inventory-types.js.map +1 -1
  6. package/dist-server/service/inventory/inventory.js +4 -0
  7. package/dist-server/service/inventory/inventory.js.map +1 -1
  8. package/dist-server/service/inventory-change/inventory-change-mutation.js +7 -3
  9. package/dist-server/service/inventory-change/inventory-change-mutation.js.map +1 -1
  10. package/dist-server/service/inventory-history/inventory-history-query.js +14 -7
  11. package/dist-server/service/inventory-history/inventory-history-query.js.map +1 -1
  12. package/dist-server/service/inventory-item/inventory-item.js +8 -3
  13. package/dist-server/service/inventory-item/inventory-item.js.map +1 -1
  14. package/dist-server/service/inventory-product/inventory-product.js +8 -3
  15. package/dist-server/service/inventory-product/inventory-product.js.map +1 -1
  16. package/dist-server/service/location/location-mutation.js +3 -1
  17. package/dist-server/service/location/location-mutation.js.map +1 -1
  18. package/dist-server/service/pallet/pallet-mutation.js +35 -33
  19. package/dist-server/service/pallet/pallet-mutation.js.map +1 -1
  20. package/dist-server/service/tote/tote-mutation.js +1 -1
  21. package/dist-server/service/tote/tote-mutation.js.map +1 -1
  22. package/dist-server/service/tote/tote-query.js +4 -3
  23. package/dist-server/service/tote/tote-query.js.map +1 -1
  24. package/dist-server/service/warehouse/warehouse-mutation.js +30 -16
  25. package/dist-server/service/warehouse/warehouse-mutation.js.map +1 -1
  26. package/dist-server/utils/inventory-util.js +86 -25
  27. package/dist-server/utils/inventory-util.js.map +1 -1
  28. package/package.json +9 -9
  29. package/server/controllers/warehouse-controller.ts +0 -1
  30. package/server/service/inventory/inventory-query.ts +77 -120
  31. package/server/service/inventory/inventory-types.ts +3 -0
  32. package/server/service/inventory/inventory.ts +3 -0
  33. package/server/service/inventory-change/inventory-change-mutation.ts +10 -5
  34. package/server/service/inventory-history/inventory-history-query.ts +16 -7
  35. package/server/service/inventory-item/inventory-item.ts +9 -2
  36. package/server/service/inventory-product/inventory-product.ts +5 -1
  37. package/server/service/location/location-mutation.ts +3 -1
  38. package/server/service/pallet/pallet-mutation.ts +50 -69
  39. package/server/service/tote/tote-mutation.ts +1 -1
  40. package/server/service/tote/tote-query.ts +6 -5
  41. package/server/service/warehouse/warehouse-mutation.ts +35 -18
  42. package/server/utils/inventory-util.ts +116 -51
  43. package/translations/en.json +4 -2
  44. package/translations/ko.json +4 -2
  45. package/translations/ms.json +4 -2
  46. package/translations/zh.json +14 -12
@@ -1 +1 @@
1
- {"version":3,"file":"inventory-util.js","sourceRoot":"","sources":["../../server/utils/inventory-util.ts"],"names":[],"mappings":";;;AAAA,qCAAkE;AAIlE,+DAAsD;AAGtD,4CAA2G;AAC3G,wCAAkE;AAClE,oCAA+C;AAE/C,MAAa,aAAa;IAKxB,YAAY,MAAqB,EAAE,MAAc,EAAE,IAAU;QAM7C,cAAS,GAAG;YAC1B,IAAI,EAAE;gBACJ,SAAS,EAAE,CAAC,SAAc,EAAE,EAAE,CAAC,6CAA6C,SAAS,EAAE;gBACvF,eAAe,EAAE,CAAC,SAAc,EAAE,EAAE,CAAC,kDAAkD,SAAS,EAAE;gBAClG,SAAS,EAAE,CAAC,MAAW,EAAE,MAAW,EAAE,EAAE,CAAC,2BAA2B,MAAM,UAAU,MAAM,EAAE;aAC7F;YACD,UAAU,EAAE;gBACV,kBAAkB,EAAE,CAAC,SAAc,EAAE,UAAe,EAAE,EAAE,CACtD,qBAAqB,SAAS,KAAK,UAAU,4BAA4B;gBAC3E,UAAU,EAAE,CAAC,SAAc,EAAE,UAAe,EAAE,UAAe,EAAE,EAAE,CAC/D,kCAAkC,SAAS,KAAK,UAAU,KAAK,UAAU,GAAG;aAC/E;YACD,OAAO,EAAE;gBACP,kBAAkB,EAAE,CAAC,SAAc,EAAE,UAAe,EAAE,EAAE,CACtD,sEAAsE,SAAS,KAAK,UAAU,GAAG;gBACnG,iBAAiB,EAAE,CAAC,SAAc,EAAE,UAAe,EAAE,UAAe,EAAE,EAAE,CACtE,qBAAqB,SAAS,SAAS,UAAU,IAAI,UAAU,6BAA6B;aAC/F;YACD,MAAM,EAAE;gBACN,SAAS,EAAE,uBAAuB;gBAClC,aAAa,EAAE,+BAA+B;gBAC9C,aAAa,EAAE,+BAA+B;aAC/C;YACD,MAAM,EAAE;gBACN,aAAa,EAAE,wBAAwB;gBACvC,aAAa,EAAE,+BAA+B;aAC/C;YACD,QAAQ,EAAE;gBACR,sBAAsB,EAAE,CAAC,KAAa,EAAE,aAAkB,EAAE,WAAgB,EAAE,EAAE,CAC9E,YAAY,KAAK,aAAa,aAAa,YAAY,WAAW,EAAE;gBACtE,UAAU,EAAE,CAAC,KAAa,EAAE,KAAU,EAAE,EAAE,CAAC,uBAAuB,KAAK,WAAW,KAAK,GAAG;gBAC1F,oBAAoB,EAAE,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE,CAAC,oBAAoB,IAAI,YAAY,MAAM,EAAE;aACrG;SACF,CAAA;QAtCC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAqCD,KAAK,CAAC,eAAe,CAAC,SAA6B;QACjD,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QACpC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,mBAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACnE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,SAA6B;QACjD,IAAI,CAAC,SAAS,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACvE,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QACpC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,mBAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACnE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CACxB,SAAoB,EACpB,QAAa,EACb,UAAkB,EAClB,UAAkB,EAClB,eAAuB;QAEvB,IAAI,SAAS,CAAC,EAAE,EAAE;YAChB,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;SAClD;aAAM;YACL,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;SAClD;QAED,MAAM,wBAAwB,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEpH,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,MAA2B;QAClC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAA;QAC7D,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAA;QAE/C,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAnGD,sCAmGC;AAED;;;GAGG;AACI,KAAK,UAAU,wBAAwB,CAC5C,SAAoB,EACpB,QAAa,EACb,eAAuB,EACvB,GAAW,EACX,QAAgB,EAChB,IAAU,EACV,MAAsB;IAEtB,MAAM,cAAc,GAClB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,0BAAgB,CAAC,KAAI,IAAA,uBAAa,EAAC,0BAAgB,CAAC,CAAA;IAC5E,MAAM,OAAO,GAA0B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,mBAAS,CAAC,KAAI,IAAA,uBAAa,EAAC,mBAAS,CAAC,CAAA;IAEnG,IAAI,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,EAAE,CAAA;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IAEtE,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE;QAC3B,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC;KACtE,CAAC,CAAA;IAEF,MAAM,MAAM,GAAW,SAAS,CAAC,MAAM,CAAA;IACvC,MAAM,QAAQ,GAAa,SAAS,CAAC,QAAQ,CAAA;IAE7C,MAAM,cAAc,GAAqB,MAAM,cAAc,CAAC,OAAO,CAAC;QACpE,KAAK,EAAE;YACL,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ;SAC7B;QACD,KAAK,EAAE;YACL,GAAG,EAAE,MAAM;SACZ;KACF,CAAC,CAAA;IAEF,IAAI,GAAG,GAAW,CAAC,CAAA;IACnB,IAAI,UAAU,GAAW,CAAC,CAAA;IAC1B,IAAI,eAAe,GAAW,CAAC,CAAA;IAE/B,IAAI,cAAc,EAAE;QAClB,UAAU,GAAG,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,GAAG,CAAA;QAC3D,eAAe,GAAG,cAAc,CAAC,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAA;QAC1E,GAAG,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC,CAAA;KAC7B;IAED,IAAI,SAAS,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IAE9C,IAAI,gBAAgB,GAAQ,IAAI,0BAAgB,EAAE,CAAA;IAElD,gBAAgB,mCACX,SAAS,KACZ,IAAI,EAAE,4BAAoB,CAAC,oBAAoB,EAAE,EACjD,SAAS,EACT,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,4BAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EACvE,eAAe,EACf,UAAU,EAAE,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,KAAI,IAAI,EAChC,OAAO,EAAE,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,KAAI,IAAI,EAC/B,UAAU,EAAE,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,KAAI,IAAI,EACnC,GAAG;QACH,UAAU;QACV,QAAQ,EACR,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,GACd,CAAA;IAED,OAAO,gBAAgB,CAAC,SAAS,CAAA;IACjC,OAAO,gBAAgB,CAAC,SAAS,CAAA;IACjC,OAAO,gBAAgB,CAAC,EAAE,CAAA;IAE1B,IAAI,mBAAmB,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAErE,IAAI,SAAS,IAAI,CAAC,EAAE;QAClB,GAAG,GAAG,GAAG,GAAG,CAAC,CAAA;QACb,IAAI,iBAAiB,mCAChB,mBAAmB,KACtB,IAAI,EAAE,4BAAoB,CAAC,oBAAoB,EAAE,EACjD,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,4BAAgB,CAAC,UAAU,EACnC,eAAe,EAAE,sCAA0B,CAAC,UAAU,EACtD,GAAG,EAAE,SAAS,CAAC,GAAG,EAClB,GAAG,EAAE,CAAC,EACN,UAAU,EAAE,CAAC,EACb,QAAQ,EAAE,CAAC,EACX,eAAe,EAAE,CAAC,GACnB,CAAA;QAED,OAAO,iBAAiB,CAAC,EAAE,CAAA;QAE3B,mBAAmB,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAClE,SAAS,CAAC,MAAM,GAAG,4BAAgB,CAAC,UAAU,CAAA;KAC/C;IAED,IAAI,SAAS,CAAC,OAAO,KAAK,GAAG,EAAE;QAC7B,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;KACxF;IAED,MAAM,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC1D,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAlGD,4DAkGC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,oBAAoB,CACxC,MAAc,EACd,QAAkB,EAClB,OAAa,EACb,MAAsB;IAEtB,MAAM,OAAO,GAA0B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,mBAAS,CAAC,KAAI,IAAA,uBAAa,EAAC,mBAAS,CAAC,CAAA;IACnG,MAAM,YAAY,GAAyB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,kBAAQ,CAAC,KAAI,IAAA,uBAAa,EAAC,kBAAQ,CAAC,CAAA;IACrG,MAAM,iBAAiB,GAAW,MAAM,OAAO,CAAC,KAAK,CAAC;QACpD,MAAM;QACN,MAAM,EAAE,4BAAgB,CAAC,MAAM;QAC/B,QAAQ;KACT,CAAC,CAAA;IAEF,IAAI,CAAC,iBAAiB,IAAI,QAAQ,CAAC,MAAM,KAAK,2BAAe,CAAC,KAAK,EAAE;QACnE,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,iCAC7B,QAAQ,KACX,MAAM,EAAE,2BAAe,CAAC,KAAK,EAC7B,OAAO,IACP,CAAA;KACH;SAAM,IAAI,iBAAiB,IAAI,QAAQ,CAAC,MAAM,KAAK,2BAAe,CAAC,KAAK,EAAE;QACzE,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,iCAC7B,QAAQ,KACX,MAAM,EAAE,2BAAe,CAAC,QAAQ,EAChC,OAAO,IACP,CAAA;KACH;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AA7BD,oDA6BC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,MAAc,EACd,QAAkB,EAClB,QAAgB,EAChB,MAAsB;IAEtB,MAAM,OAAO,GAA0B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,mBAAS,CAAC,KAAI,IAAA,uBAAa,EAAC,mBAAS,CAAC,CAAA;IACnG,MAAM,mBAAmB,GAAW,MAAM,OAAO,CAAC,KAAK,CAAC;QACtD,MAAM;QACN,QAAQ;QACR,QAAQ;KACT,CAAC,CAAA;IAEF,OAAO,OAAO,CAAC,mBAAmB,CAAC,CAAA;AACrC,CAAC;AAdD,wDAcC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,wBAAwB,CAC5C,MAAc,EACd,QAAkB,EAClB,QAAgB,EAChB,OAAe,EACf,OAAyB,EACzB,WAAmB,EACnB,MAAsB;;IAEtB,MAAM,WAAW,GAAwB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,sBAAO,CAAC,KAAI,IAAA,uBAAa,EAAC,sBAAO,CAAC,CAAA;IACjG,MAAM,OAAO,GAA0B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,mBAAS,CAAC,KAAI,IAAA,uBAAa,EAAC,mBAAS,CAAC,CAAA;IAEnG,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,MAAM,YAAY,GAAY,MAAM,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAChE,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAA;QAC5E,OAAO,GAAG,YAAY,CAAA;KACvB;IAED,MAAM,GAAG,GAAc,MAAM,OAAO,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;QACrC,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IAEF,IAAI,OAAO,KAAK,GAAG,CAAC,OAAO;QAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,gCAAgC,OAAO,EAAE,EAAE,CAAA;IAErH,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,OAAK,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,0CAAE,EAAE,CAAA;QAClC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,+BAA+B,OAAO,CAAC,IAAI,EAAE,EAAE,CAAA;IAE9F,IAAI,WAAW,KAAK,GAAG,CAAC,WAAW;QACjC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,oCAAoC,WAAW,EAAE,EAAE,CAAA;IAElG,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAA;AAChC,CAAC;AAhCD,4DAgCC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,yBAAyB,CAC7C,MAAc,EACd,kBAA0B,EAC1B,aAAoB,EACpB,MAAqB;IAErB,IAAI,iBAAiB,GAAG,IAAI,CAAC,SAAS,CACpC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACtB,uCACK,GAAG,KACN,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,EAC1B,YAAY,EAAE,GAAG,CAAC,WAAW,EAC7B,YAAY,EAAE,GAAG,CAAC,WAAW,EAC7B,GAAG,EAAE,GAAG,CAAC,GAAG,IACb;IACH,CAAC,CAAC,IAAI,EAAE,CACT,CAAA;IAED,MAAM,MAAM,GAAU,MAAM,MAAM,CAAC,KAAK,CACtC;;;;;;;;+DAQ2D,iBAAiB;;;;;;;;;;;;;KAa3E,EACD,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CACnC,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AA7CD,8DA6CC;AAED;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,wBAAwB,CAC5C,QAAgB,EAChB,UAAkB,EAClB,WAAmB,EACnB,aAAoB,EACpB,oBAA2B,EAC3B,MAAqB;IAErB,IAAI,iBAAiB,GAAW,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;IAC7D,IAAI,eAAe,GAAW,CAAC,oBAAoB,IAAI,EAAE,CAAC;SACvD,GAAG,CAAC,CAAC,IAA0C,EAAE,EAAE;QAClD,OAAO,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IACxD,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,IAAI,eAAe,KAAK,EAAE;QAAE,eAAe,GAAG,QAAQ,CAAA;IAEtD,MAAM,MAAM,CAAC,KAAK,CAChB;;;;;;;;;;;GAWD,CACA,CAAA;IAED,MAAM,MAAM,CAAC,KAAK,CAChB;;;;GAID,EACC,CAAC,iBAAiB,CAAC,CACpB,CAAA;IAED,MAAM,MAAM,CAAC,KAAK,CAChB;;;;;;;;;;GAUD,EACC,CAAC,UAAU,EAAE,WAAW,CAAC,CAC1B,CAAA;IAED,kBAAkB;IAClB,IAAI,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,CAClC;;;;;;;;;;;;;;;;;;UAkBM,eAAe;;;;;;;;;;;;;;GActB,EACC,CAAC,yBAAa,CAAC,UAAU,EAAE,yBAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,4BAAgB,CAAC,MAAM,CAAC,CACjG,CAAA;IAED,MAAM,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAElD,OAAO,WAAW,CAAA;AACpB,CAAC;AAjGD,4DAiGC"}
1
+ {"version":3,"file":"inventory-util.js","sourceRoot":"","sources":["../../server/utils/inventory-util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/warehouse-base",
3
- "version": "4.3.135",
3
+ "version": "4.3.140",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -23,13 +23,13 @@
23
23
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
24
24
  },
25
25
  "dependencies": {
26
- "@things-factory/biz-base": "^4.3.131",
27
- "@things-factory/id-rule-base": "^4.3.131",
28
- "@things-factory/integration-accounting": "^4.3.135",
29
- "@things-factory/integration-sellercraft": "^4.3.131",
30
- "@things-factory/marketplace-base": "^4.3.132",
31
- "@things-factory/product-base": "^4.3.131",
32
- "@things-factory/setting-base": "^4.3.131"
26
+ "@things-factory/biz-base": "^4.3.138",
27
+ "@things-factory/id-rule-base": "^4.3.138",
28
+ "@things-factory/integration-accounting": "^4.3.138",
29
+ "@things-factory/integration-sellercraft": "^4.3.138",
30
+ "@things-factory/marketplace-base": "^4.3.138",
31
+ "@things-factory/product-base": "^4.3.138",
32
+ "@things-factory/setting-base": "^4.3.138"
33
33
  },
34
- "gitHead": "55b877e97abb4350a0fa9dceb051c54fd496dcf0"
34
+ "gitHead": "7d85b28f96c10d64b9ed1f9041a9c687de22fbe6"
35
35
  }
@@ -2,7 +2,6 @@ import { EntityManager } from 'typeorm'
2
2
 
3
3
  import { Role, User } from '@things-factory/auth-base'
4
4
  import { Bizplace, getDomainUsers } from '@things-factory/biz-base'
5
- import { sendNotification } from '@things-factory/notification'
6
5
  import { ProductDetail } from '@things-factory/product-base'
7
6
  import { Domain } from '@things-factory/shell'
8
7
 
@@ -1,55 +1,17 @@
1
- import {
2
- Arg,
3
- Args,
4
- Ctx,
5
- Directive,
6
- FieldResolver,
7
- Query,
8
- Resolver,
9
- Root
10
- } from 'type-graphql'
11
- import {
12
- Brackets,
13
- EntityManager,
14
- Equal,
15
- getRepository,
16
- Not,
17
- Repository,
18
- SelectQueryBuilder
19
- } from 'typeorm'
1
+ import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
+ import { Brackets, EntityManager, Equal, getRepository, Not, Repository, SelectQueryBuilder } from 'typeorm'
20
3
 
21
4
  import { User } from '@things-factory/auth-base'
22
- import {
23
- Bizplace,
24
- getPartnersCompanyBizplaces,
25
- getPermittedBizplaceIds
26
- } from '@things-factory/biz-base'
5
+ import { Bizplace, getPartnersCompanyBizplaces, getPermittedBizplaceIds } from '@things-factory/biz-base'
27
6
  import { logger } from '@things-factory/env'
28
- import {
29
- Product,
30
- ProductBundleSetting,
31
- ProductDetail
32
- } from '@things-factory/product-base'
7
+ import { Product, ProductBundleSetting, ProductDetail } from '@things-factory/product-base'
33
8
  import { Setting } from '@things-factory/setting-base'
34
- import {
35
- buildQuery,
36
- Domain,
37
- Filter,
38
- ListParam,
39
- Pagination,
40
- Sorting
41
- } from '@things-factory/shell'
42
-
43
- import {
44
- INVENTORY_STATUS,
45
- LOCATION_TYPE
46
- } from '../../constants'
9
+ import { buildQuery, Domain, Filter, ListParam, Pagination, Sorting } from '@things-factory/shell'
10
+
11
+ import { INVENTORY_STATUS, LOCATION_TYPE } from '../../constants'
47
12
  import { InventoryChange } from '../inventory-change/inventory-change'
48
13
  import { Inventory } from './inventory'
49
- import {
50
- InventoryBundleGroupDetail,
51
- InventoryList
52
- } from './inventory-types'
14
+ import { InventoryBundleGroupDetail, InventoryList } from './inventory-types'
53
15
 
54
16
  @Resolver(Inventory)
55
17
  export class InventoryQuery {
@@ -104,7 +66,12 @@ export class InventoryQuery {
104
66
 
105
67
  qb.leftJoinAndSelect('inventory.bizplace', 'bizplace')
106
68
  .leftJoinAndSelect('inventory.product', 'product')
107
- //.leftJoinAndSelect('product.productDetails', 'productDetail', 'productDetail.product_id = product.id')
69
+ .leftJoinAndSelect('inventory.productDetail', 'productDetail')
70
+ .leftJoinAndSelect(
71
+ 'product.productDetails',
72
+ 'productDetails',
73
+ 'productDetails.id = inventory.product_detail_id'
74
+ )
108
75
  .leftJoinAndSelect('inventory.warehouse', 'warehouse')
109
76
  .leftJoinAndSelect('inventory.location', 'location')
110
77
  .leftJoinAndSelect('inventory.creator', 'creator')
@@ -184,36 +151,17 @@ export class InventoryQuery {
184
151
  qb.offset((page - 1) * limit).limit(limit)
185
152
  }
186
153
 
187
- let items: any = await qb.getRawMany()
188
-
189
- items = await Promise.all(
190
- items.map(async item => {
191
- let productDetails = await tx.getRepository(ProductDetail).find({ where: { product: item.product_id } })
192
- let productDetail
193
- //if more than one productDetail
194
- if (productDetails.length > 1) {
195
- productDetail = productDetails.filter(
196
- (itm: ProductDetail) =>
197
- itm.packingType == item.inventory_packing_type && itm.packingSize == item.inventory_packing_size
198
- )
199
-
200
- //if more than one with same packingType and packingSize
201
- if (productDetail.length > 1) {
202
- productDetail = productDetail.find((itm: ProductDetail) => itm.isDefault == true)
203
- } else {
204
- productDetail = productDetail[0]
205
- }
206
- } else {
207
- productDetail = productDetails[0]
208
- }
209
- item = {
210
- ...new Inventory(item),
211
- serialNumbers: item.serial_numbers,
212
- productDetail
154
+ let items = (await qb.getRawMany()).map(item => {
155
+ return {
156
+ ...new Inventory(item),
157
+ serialNumbers: item.serial_numbers,
158
+ productDetail: {
159
+ id: item.productDetail_id,
160
+ name: item.productDetail_name,
161
+ gtin: item.productDetail_gtin
213
162
  }
214
- return item
215
- })
216
- )
163
+ }
164
+ })
217
165
  let total = await qb.getCount()
218
166
 
219
167
  return {
@@ -269,6 +217,7 @@ export class InventoryQuery {
269
217
  let quarantineStockFilter = params.filters.find(filter => filter.name == 'quarantineStock')
270
218
  let reserveStockFilter = params.filters.find(filter => filter.name == 'reserveStock')
271
219
  let productTypeFilter = params.filters.find(filter => filter.name == 'type')
220
+ let expirationDateFilter = params.filters.find(filter => filter.name == 'expirationDate')
272
221
 
273
222
  if (bizplaceFilter) {
274
223
  const bizplaceQueryBuilder: SelectQueryBuilder<Bizplace> = getRepository(Bizplace).createQueryBuilder('b')
@@ -406,6 +355,7 @@ export class InventoryQuery {
406
355
  // [domain.id]
407
356
  // )
408
357
 
358
+ // correction on the as --> AS
409
359
  await tx.query(
410
360
  `
411
361
  create temp table temp_inv_history AS
@@ -419,15 +369,15 @@ export class InventoryQuery {
419
369
  COALESCE("ProductDetailBizplaceSetting"."max_qty", "Product"."max_qty",0) AS "maxQty",
420
370
  COALESCE(putawayinv.putaway_qty, 0) AS "putawayQty",
421
371
  (CASE WHEN "Location"."type" NOT IN ('${LOCATION_TYPE.QUARANTINE}','${LOCATION_TYPE.RESERVE}')
422
- THEN
372
+ THEN
423
373
  CASE WHEN SUM("Inventory"."qty") > 0
424
374
  THEN SUM("Inventory"."qty")
425
375
  ELSE 0 END
426
376
  ELSE 0 END) AS "qty",
427
377
  (CASE WHEN "Location"."type" NOT IN ('${LOCATION_TYPE.QUARANTINE}','${LOCATION_TYPE.RESERVE}')
428
- THEN
429
- CASE WHEN SUM("Inventory"."qty") > 0 THEN SUM("Inventory"."qty") ELSE 0 END - SUM(COALESCE("Inventory"."locked_qty", 0)) - COALESCE("opd"."total_release_qty", 0)
430
- ELSE 0 END) AS "availableQty",
378
+ THEN
379
+ CASE WHEN SUM("Inventory"."qty") > 0 THEN SUM("Inventory"."qty") ELSE 0 END - SUM(COALESCE("Inventory"."locked_qty", 0)) - COALESCE("opd"."total_release_qty", 0)
380
+ ELSE 0 END) AS "availableQty",
431
381
  (CASE WHEN "Location"."type" NOT IN ('${LOCATION_TYPE.QUARANTINE}','${LOCATION_TYPE.RESERVE}')
432
382
  THEN SUM(COALESCE("Inventory"."locked_qty", 0)) ELSE 0 END) AS "releaseQty",
433
383
  CASE WHEN "Location"."type" = '${LOCATION_TYPE.QUARANTINE}'
@@ -458,12 +408,12 @@ export class InventoryQuery {
458
408
  select "op"."product_id", COALESCE(SUM("op"."release_qty")) as "total_release_qty",
459
409
  "op"."packing_type", "op"."packing_size", "op"."uom"
460
410
  from "order_products" op
461
- INNER JOIN "draft_release_goods" drg on drg.id = op.draft_release_good_id
411
+ INNER JOIN "draft_release_goods" drg ON drg.id = op.draft_release_good_id
462
412
  WHERE "drg"."status" = 'DRAFT'
463
413
  AND "op"."draft_release_good_id" IS NOT null
464
414
  AND "drg"."domain_id" = $1
465
- group by "op"."product_id","op"."packing_type" ,"op"."packing_size", "op"."uom"
466
- ) as "opd"
415
+ GROUP BY "op"."product_id","op"."packing_type" ,"op"."packing_size", "op"."uom"
416
+ ) AS "opd"
467
417
  ON "Inventory"."product_id" = "opd"."product_id" AND "Inventory"."packing_type" = "opd"."packing_type"
468
418
  AND "Inventory"."packing_size" = "opd"."packing_size"
469
419
  AND "Inventory"."uom" = "opd"."uom"
@@ -472,18 +422,18 @@ export class InventoryQuery {
472
422
  SELECT sum(i.qty) as "putaway_qty", i.product_id, i.packing_type, i.packing_size, i.uom FROM "inventories" i
473
423
  WHERE i.status = 'PUTTING_AWAY' and i.domain_id = $1
474
424
  GROUP BY i.product_id, i.packing_type, i.packing_size, i.uom
475
- ) as "putawayinv" ON "Inventory"."product_id" = "putawayinv"."product_id" AND "Inventory"."packing_type" = "putawayinv"."packing_type"
476
- AND "Inventory"."packing_size" = "putawayinv"."packing_size"
477
- AND "Inventory"."uom" = "putawayinv"."uom"
478
- INNER JOIN "bizplaces" "Bizplace" ON "Bizplace"."id"="Inventory"."bizplace_id"
479
- INNER JOIN "locations" "Location" ON "Location"."id" = "Inventory"."location_id"
480
- WHERE "Inventory"."qty" >= 0
481
- AND "Inventory"."status" <> 'MISSING' AND "Inventory"."status" <> 'PUTTING_AWAY'
425
+ ) as "putawayinv" ON "Inventory"."product_id" = "putawayinv"."product_id" AND "Inventory"."packing_type" = "putawayinv"."packing_type"
426
+ AND "Inventory"."packing_size" = "putawayinv"."packing_size"
427
+ AND "Inventory"."uom" = "putawayinv"."uom"
428
+ INNER JOIN "bizplaces" "Bizplace" ON "Bizplace"."id"="Inventory"."bizplace_id"
429
+ INNER JOIN "locations" "Location" ON "Location"."id" = "Inventory"."location_id"
430
+ WHERE "Inventory"."qty" >= 0
431
+ AND "Inventory"."status" <> 'MISSING' AND "Inventory"."status" <> 'PUTTING_AWAY'
482
432
  AND "Inventory"."domain_id" = $1
483
433
  ${bizplaceQuery}
484
434
  ${productQuery}
485
- GROUP BY "Product"."id", "Bizplace"."id", "ProductDetailBizplaceSetting"."id"
486
- , "Inventory"."packing_type", "Inventory"."packing_size", "Inventory"."uom"
435
+ GROUP BY "Product"."id","Bizplace"."id", "ProductDetailBizplaceSetting"."id"
436
+ , "Inventory"."packing_type", "Inventory"."packing_size", "Inventory"."uom"
487
437
  , "Location"."type", "ProductRef"."id", "opd"."total_release_qty", "putawayinv"."putaway_qty"
488
438
  HAVING 1 = 1
489
439
  ${availableStockQuery}
@@ -493,21 +443,21 @@ export class InventoryQuery {
493
443
 
494
444
  await tx.query(
495
445
  `
496
- CREATE TEMP TABLE grouped_inventories_product AS (
497
- SELECT "id", "sku", "brand", "name", "description",
498
- "packingType", "bizplaceId", "bizplaceName", sum("averageUnitCost") AS "averageUnitCost",
499
- sum("minQty") AS "minQty", sum("maxQty") AS "maxQty",
500
- sum("putawayQty") AS "putawayQty",
501
- sum("qty") AS "qty",
502
- sum("quarantineQty") AS "quarantineQty",
503
- sum("reserveQty") AS "reserveQty",
504
- sum("releaseQty") AS "releaseQty",
505
- sum("draftQty") AS "draftQty",
506
- sum("availableQty") AS "availableQty",
507
- sum("putawayQty" + "quarantineQty" + "reserveQty" + "availableQty") AS "warehouseQty"
508
- FROM temp_inv_history
509
- GROUP BY "id", "sku", "brand", "name", "description", "packingType", "bizplaceId", "bizplaceName"
510
- HAVING 1=1
446
+ CREATE TEMP TABLE grouped_inventories_product AS (
447
+ SELECT "id", "sku", "brand", "name", "description",
448
+ "packingType", "bizplaceId", "bizplaceName", sum("averageUnitCost") AS "averageUnitCost",
449
+ sum("minQty") AS "minQty", sum("maxQty") AS "maxQty",
450
+ sum("putawayQty") AS "putawayQty",
451
+ sum("qty") AS "qty",
452
+ sum("quarantineQty") AS "quarantineQty",
453
+ sum("reserveQty") AS "reserveQty",
454
+ sum("releaseQty") AS "releaseQty",
455
+ sum("draftQty") AS "draftQty",
456
+ sum("availableQty") AS "availableQty",
457
+ sum("putawayQty" + "quarantineQty" + "reserveQty" + "availableQty") AS "warehouseQty"
458
+ FROM temp_inv_history
459
+ GROUP BY "id", "sku", "brand", "name", "description", "packingType", "bizplaceId", "bizplaceName"
460
+ HAVING 1=1
511
461
  ${qtyStockQuery}
512
462
  ${thresholdQuery}
513
463
  )
@@ -672,23 +622,27 @@ export class InventoryQuery {
672
622
  @Arg('bizplaceName') bizplaceName: string,
673
623
  @Ctx() context: any
674
624
  ): Promise<Boolean> {
675
- const invRepo: Repository<Inventory> = getRepository(Inventory)
676
- const bizRepo: Repository<Bizplace> = getRepository(Bizplace)
625
+ try {
626
+ const invRepo: Repository<Inventory> = getRepository(Inventory)
627
+ const bizRepo: Repository<Bizplace> = getRepository(Bizplace)
677
628
 
678
- const inventory: Inventory = await invRepo.findOne({
679
- where: { domain: context.state.domain, palletId, status: INVENTORY_STATUS.STORED },
680
- relations: ['bizplace']
681
- })
629
+ const inventory: Inventory = await invRepo.findOne({
630
+ where: { domain: context.state.domain, palletId, status: INVENTORY_STATUS.STORED },
631
+ relations: ['bizplace']
632
+ })
682
633
 
683
- if (!inventory) throw new Error('This inventory status is not stored.')
634
+ if (!inventory) throw new Error('This inventory status is not stored.')
684
635
 
685
- const ownerBizplace: Bizplace = await bizRepo.findOne({
686
- where: { name: bizplaceName }
687
- })
636
+ const ownerBizplace: Bizplace = await bizRepo.findOne({
637
+ where: { name: bizplaceName }
638
+ })
688
639
 
689
- const foundBizplace: Bizplace = inventory.bizplace
640
+ const foundBizplace: Bizplace = inventory.bizplace
690
641
 
691
- return Boolean(ownerBizplace.id === foundBizplace.id)
642
+ return Boolean(ownerBizplace.id === foundBizplace.id)
643
+ } catch (e) {
644
+ return false
645
+ }
692
646
  }
693
647
 
694
648
  @Directive('@privilege(category: "inventory", privilege: "query")')
@@ -748,7 +702,7 @@ export class InventoryQuery {
748
702
 
749
703
  const productBundleSettings: ProductBundleSetting[] = await getRepository(ProductBundleSetting).find({
750
704
  where: { productBundle: productBundleId },
751
- relations: ['product', 'productBundle']
705
+ relations: ['product', 'productDetail', 'productBundle']
752
706
  })
753
707
 
754
708
  if (!productBundleSettings.length) {
@@ -759,6 +713,7 @@ export class InventoryQuery {
759
713
  buildQuery(qb, params, context)
760
714
 
761
715
  qb.select('iv.product_id', 'productId')
716
+ .addSelect('iv.product_detail_id', 'productDetailId')
762
717
  .addSelect('iv.batch_id', 'batchId')
763
718
  .addSelect('iv.batch_id_ref', 'batchIdRef')
764
719
  .addSelect('iv.packing_type', 'packingType')
@@ -787,6 +742,7 @@ export class InventoryQuery {
787
742
  productIds: productBundleSettings.map(productBundle => productBundle.product.id)
788
743
  })
789
744
  .groupBy('iv.product_id')
745
+ .addGroupBy('iv.product_detail_id')
790
746
  .addGroupBy('iv.batch_id')
791
747
  .addGroupBy('iv.batch_id_ref')
792
748
  .addGroupBy('iv.packing_type')
@@ -815,6 +771,7 @@ export class InventoryQuery {
815
771
  return {
816
772
  id: pbs.id,
817
773
  productId: pbs.product.id,
774
+ productDetailId: pbs.productDetail.id,
818
775
  bundleId: pbs.productBundle.id,
819
776
  bundleQty: pbs.bundleQty,
820
777
  releaseQty: bundleReleaseQty * pbs.bundleQty,
@@ -47,6 +47,9 @@ export class InventoryPatch {
47
47
  @Field(type => ObjectRef, { nullable: true })
48
48
  product?: ObjectRef
49
49
 
50
+ @Field(type => ObjectRef, { nullable: true })
51
+ productDetail?: ObjectRef
52
+
50
53
  @Field({ nullable: true })
51
54
  sku?: string
52
55
 
@@ -222,6 +222,9 @@ export class Inventory {
222
222
  @Field({ nullable: true })
223
223
  productId: string
224
224
 
225
+ @Field({ nullable: true })
226
+ productDetailId: string
227
+
225
228
  @Field({ nullable: true })
226
229
  productName: string
227
230
 
@@ -7,7 +7,7 @@ import { generateId } from '@things-factory/id-rule-base'
7
7
  import { Account } from '@things-factory/integration-accounting'
8
8
  import { MarketplaceStore } from '@things-factory/integration-marketplace'
9
9
  import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
10
- import { Product } from '@things-factory/product-base'
10
+ import { Product, ProductDetail } from '@things-factory/product-base'
11
11
  import { PartnerSetting, Setting } from '@things-factory/setting-base'
12
12
  import { Domain } from '@things-factory/shell'
13
13
 
@@ -215,7 +215,9 @@ export class InventoryChangeMutation {
215
215
  newRecord.bizplace = bizplace
216
216
 
217
217
  var product: Product = await tx.getRepository(Product).findOne(newRecord.product.id)
218
+ var productDetail: ProductDetail = await tx.getRepository(ProductDetail).findOne(newRecord.productDetailId)
218
219
  newRecord.product = product
220
+ newRecord.productDetail = productDetail
219
221
 
220
222
  newRecord.status = 'PENDING'
221
223
  newRecord.transactionType = 'NEW'
@@ -589,6 +591,7 @@ async function upsertInventoryItems(context, inventoryChange, approvalStatus, tx
589
591
  inventoryItem.serialNumber = inventoryItemChange.serialNumber
590
592
  inventoryItem.status = INVENTORY_STATUS.STORED
591
593
  inventoryItem.product = inventoryChange.inventory.product
594
+ inventoryItem.productDetail = inventoryChange.inventory.productDetail
592
595
  inventoryItem.domain = inventoryItemChange.domain
593
596
  inventoryItem.inventory = inventoryChange.inventory
594
597
  inventoryItem.source = INVENTORY_ITEM_SOURCE.ADJUSTMENT
@@ -608,7 +611,8 @@ async function upsertInventoryItems(context, inventoryChange, approvalStatus, tx
608
611
  inventoryItem = {
609
612
  ...existingInventoryItem,
610
613
  serialNumber: inventoryItemChange.serialNumber,
611
- product: inventoryItemChange.inventory.product
614
+ product: inventoryItemChange.inventory.product,
615
+ productDetail: inventoryItemChange.inventory.productDetail
612
616
  }
613
617
  } else if (changeType == INVENTORY_ITEM_CHANGE_TYPE.REMOVED) {
614
618
  inventoryItem = {
@@ -645,6 +649,7 @@ export async function approveInventoryChanges(patches: any, context: any) {
645
649
  'bizplace.company',
646
650
  'bizplace.company.domain',
647
651
  'product',
652
+ 'productDetail',
648
653
  'product.productDetails',
649
654
  'product.productDetails.childProductDetail',
650
655
  'location'
@@ -680,6 +685,7 @@ export async function approveInventoryChanges(patches: any, context: any) {
680
685
  'bizplace.company',
681
686
  'bizplace.company.domain',
682
687
  'product',
688
+ 'productDetail',
683
689
  'product.productDetails',
684
690
  'product.productDetails.childProductDetail',
685
691
  'warehouse',
@@ -689,8 +695,6 @@ export async function approveInventoryChanges(patches: any, context: any) {
689
695
  ]
690
696
  })
691
697
 
692
- const customerDomain: Domain = inventory.bizplace.domain
693
-
694
698
  // Check for locked inventory, and stop from udpating inventory
695
699
  if (inventory.qty < inventory.lockedQty) {
696
700
  arrLockedInventory.push(_inventoryChanges[i])
@@ -860,7 +864,8 @@ export async function approveInventoryChanges(patches: any, context: any) {
860
864
  id: inventoryId,
861
865
  status: statusFilter,
862
866
  updater: user,
863
- lastSeq: lastSeq
867
+ lastSeq: lastSeq,
868
+ createdAt: inventory.createdAt
864
869
  })
865
870
 
866
871
  //Check and set latest location status
@@ -230,6 +230,8 @@ export class InventoryHistoryQuery {
230
230
  Lower(prd.name) LIKE ANY(ARRAY[${productValue}])
231
231
  OR Lower(prd.sku) LIKE ANY(ARRAY[${productValue}])
232
232
  OR Lower(prd.description) LIKE ANY(ARRAY[${productValue}])
233
+ OR Lower(prd.brand) LIKE ANY(ARRAY[${productValue}])
234
+ OR Lower(prd.brand_sku) LIKE ANY(ARRAY[${productValue}])
233
235
  )`
234
236
  }
235
237
 
@@ -1043,7 +1045,7 @@ export class InventoryHistoryQuery {
1043
1045
  and (lower(prd.name) like any(array[${products}])
1044
1046
  or lower(prd.description) like any(array[${products}])
1045
1047
  or lower(prd.sku) like any(array[${products}])
1046
- or lower(prd.brand) like any(array[${products}]))
1048
+ or lower(prd.brand_sku) like any(array[${products}]))
1047
1049
  and prd.id = rih.product_id
1048
1050
  group by prd.id
1049
1051
  )`
@@ -1400,7 +1402,14 @@ export class InventoryHistoryQuery {
1400
1402
 
1401
1403
  let foundProductDetail = await tx
1402
1404
  .getRepository(ProductDetail)
1403
- .findOne({ where: { domain: companyDomain, volume: IsNull() || 0 } })
1405
+ .createQueryBuilder('pd')
1406
+ .where('pd.domain = :domainId ', { domainId: companyDomain.id })
1407
+ .andWhere(
1408
+ new Brackets(qb => {
1409
+ qb.where('pd.volume = 0').orWhere('pd.volume is null')
1410
+ })
1411
+ )
1412
+ .getOne()
1404
1413
 
1405
1414
  if (foundProductDetail) {
1406
1415
  throw new Error('there is product master with empty volume')
@@ -1425,7 +1434,7 @@ export class InventoryHistoryQuery {
1425
1434
  rih.bizplace_id as bizplace_id,
1426
1435
  cast(rih.created_at + (interval '8 hour') as DATE) as "tempDate"
1427
1436
  from reduced_inventory_histories rih
1428
- left join product_details pd on pd.product_id = rih.product_id and pd.packing_type = rih.packing_type
1437
+ left join product_details pd on pd.id = rih.product_detail_id
1429
1438
  where rih.status not like 'TERMINATED' and rih.bizplace_id = $1
1430
1439
  group by CAST(rih.created_at + (interval '8 hour') as DATE), rih.bizplace_id
1431
1440
  )
@@ -1465,8 +1474,8 @@ export class InventoryHistoryQuery {
1465
1474
  await tx.query(
1466
1475
  `
1467
1476
  create temp table temp_result ON COMMIT drop as(
1468
- select lag(sub."closingQty", 1, 0) over (partition by sub.bizplace_id order by sub.date) as "openingQty",
1469
- lag(sub."closingVolume", 1, 0) over (partition by sub.bizplace_id order by sub.date) as "openingVolume", sub.* from(
1477
+ select lag(sub."closingQty", 1, 0::double precision) over (partition by sub.bizplace_id order by sub.date) as "openingQty",
1478
+ lag(sub."closingVolume", 1, 0::numeric) over (partition by sub.bizplace_id order by sub.date) as "openingVolume", sub.* from(
1470
1479
  select (select sum(tmp2.total) from temp_reduced_inventory_histories_with_date_range tmp2 where tmp2.row <= tmp.row) as "closingQty",
1471
1480
  (select sum(tmp2."totalVolume") from temp_reduced_inventory_histories_with_date_range tmp2 where tmp2.row <= tmp.row) as "closingVolume", tmp.* from
1472
1481
  temp_reduced_inventory_histories_with_date_range tmp) sub
@@ -1556,8 +1565,8 @@ async function massageInventorySummary(tx: EntityManager, params: ListParam, biz
1556
1565
  sum(case when ih.created_at >= $1 and ih.transaction_type = 'ADJUSTMENT' then ih.qty else 0 end) as adjustment_qty,
1557
1566
  sum(case when ih.created_at < $1 then qty else 0 end) as opening_qty,
1558
1567
  sum(case when ih.status = 'MISSING' then -ih.opening_qty else 0 end) as missing_qty,
1559
- sum(case when ih.created_at >= $1 then case when ih.qty > 0 and ih.transaction_type <> 'ADJUSTMENT' then ih.qty else 0 end else 0 end) as total_in_qty,
1560
- sum(case when ih.created_at >= $1 then case when ih.qty < 0 and ih.transaction_type <> 'ADJUSTMENT' then ih.qty else 0 end else 0 end) as total_out_qty,
1568
+ sum(case when ih.created_at >= $1 then case when ih.qty > 0 and ih.transaction_type <> 'ADJUSTMENT' and ih.transaction_type <> 'RELOCATE' then ih.qty else 0 end else 0 end) as total_in_qty,
1569
+ sum(case when ih.created_at >= $1 then case when ih.qty < 0 and ih.transaction_type <> 'ADJUSTMENT' and ih.transaction_type <> 'RELOCATE' then ih.qty else 0 end else 0 end) as total_out_qty,
1561
1570
  ih.product_id
1562
1571
  from temp_inv_history ih
1563
1572
  inner join temp_products prd on prd.id = ih.product_id
@@ -11,7 +11,7 @@ import {
11
11
  } from 'typeorm'
12
12
 
13
13
  import { User } from '@things-factory/auth-base'
14
- import { Product } from '@things-factory/product-base'
14
+ import { Product, ProductDetail} from '@things-factory/product-base'
15
15
  import { Domain } from '@things-factory/shell'
16
16
 
17
17
  import { Inventory } from '../inventory/inventory'
@@ -32,7 +32,8 @@ export class InventoryItem {
32
32
 
33
33
  @RelationId((inventoryItem: InventoryItem) => inventoryItem.domain)
34
34
  domainId?: string
35
-
35
+
36
+
36
37
  @Column()
37
38
  @Field()
38
39
  name: string
@@ -57,13 +58,19 @@ export class InventoryItem {
57
58
  @Field({ nullable: true })
58
59
  outboundOrderId: string
59
60
 
61
+
60
62
  @ManyToOne(type => Product)
61
63
  @Field(type => Product, { nullable: true })
62
64
  product?: Product
63
65
 
66
+
64
67
  @RelationId((inventoryItem: InventoryItem) => inventoryItem.product)
65
68
  productId?: string
66
69
 
70
+ @ManyToOne(type => ProductDetail, { nullable: true })
71
+ @Field({ nullable: true })
72
+ productDetail: ProductDetail
73
+
67
74
  @ManyToOne(type => Inventory)
68
75
  @Field(type => Inventory)
69
76
  inventory?: Inventory
@@ -11,7 +11,7 @@ import {
11
11
  } from 'typeorm'
12
12
 
13
13
  import { User } from '@things-factory/auth-base'
14
- import { Product } from '@things-factory/product-base'
14
+ import { Product, ProductDetail } from '@things-factory/product-base'
15
15
  import { Domain } from '@things-factory/shell'
16
16
 
17
17
  @Entity()
@@ -60,6 +60,10 @@ export class InventoryProduct {
60
60
  @RelationId((inventoryProduct: InventoryProduct) => inventoryProduct.product)
61
61
  productId?: string
62
62
 
63
+ @ManyToOne(type => ProductDetail, { nullable: true })
64
+ @Field({ nullable: true })
65
+ productDetail: ProductDetail
66
+
63
67
  @CreateDateColumn()
64
68
  @Field({ nullable: true })
65
69
  createdAt?: Date
@@ -77,10 +77,12 @@ export class LocationMutation {
77
77
  @Mutation(returns => Boolean)
78
78
  async deleteAllLocations(@Arg('warehouseId') warehouseId: string, @Ctx() context: any) {
79
79
  const { tx }: { tx: EntityManager } = context.state
80
+ let warehouse = await tx.getRepository(Warehouse).findOne(warehouseId)
80
81
 
81
82
  await tx.getRepository(Location).delete({
82
- warehouse: await tx.getRepository(Warehouse).findOne(warehouseId)
83
+ warehouse
83
84
  })
85
+ return true
84
86
  }
85
87
  }
86
88