@things-factory/sales-base 5.0.13 → 5.0.15

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 (127) hide show
  1. package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
  2. package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -1
  3. package/dist-server/service/arrival-notice/arrival-notice-types.js.map +1 -1
  4. package/dist-server/service/arrival-notice/arrival-notice.js.map +1 -1
  5. package/dist-server/service/claim/claim-mutation.js.map +1 -1
  6. package/dist-server/service/claim/claim-query.js.map +1 -1
  7. package/dist-server/service/claim/claim-types.js.map +1 -1
  8. package/dist-server/service/claim/claim.js.map +1 -1
  9. package/dist-server/service/claim-detail/claim-detail-mutation.js.map +1 -1
  10. package/dist-server/service/claim-detail/claim-detail-query.js.map +1 -1
  11. package/dist-server/service/claim-detail/claim-detail-types.js.map +1 -1
  12. package/dist-server/service/claim-detail/claim-detail.js.map +1 -1
  13. package/dist-server/service/claim-order/claim-order-mutation.js.map +1 -1
  14. package/dist-server/service/claim-order/claim-order-query.js.map +1 -1
  15. package/dist-server/service/claim-order/claim-order-types.js.map +1 -1
  16. package/dist-server/service/claim-order/claim-order.js.map +1 -1
  17. package/dist-server/service/collection-order/collection-order-mutation.js.map +1 -1
  18. package/dist-server/service/collection-order/collection-order-query.js.map +1 -1
  19. package/dist-server/service/collection-order/collection-order-types.js.map +1 -1
  20. package/dist-server/service/collection-order/collection-order.js.map +1 -1
  21. package/dist-server/service/delivery-order/delivery-order-mutation.js.map +1 -1
  22. package/dist-server/service/delivery-order/delivery-order-query.js.map +1 -1
  23. package/dist-server/service/delivery-order/delivery-order-types.js.map +1 -1
  24. package/dist-server/service/delivery-order/delivery-order.js.map +1 -1
  25. package/dist-server/service/draft-release-good/draft-release-good-mutation.js.map +1 -1
  26. package/dist-server/service/draft-release-good/draft-release-good-query.js.map +1 -1
  27. package/dist-server/service/draft-release-good/draft-release-good-type.js.map +1 -1
  28. package/dist-server/service/draft-release-good/draft-release-good.js.map +1 -1
  29. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js.map +1 -1
  30. package/dist-server/service/goods-receival-note/goods-receival-note-query.js.map +1 -1
  31. package/dist-server/service/goods-receival-note/goods-receival-note-types.js.map +1 -1
  32. package/dist-server/service/goods-receival-note/goods-receival-note.js.map +1 -1
  33. package/dist-server/service/inventory-check/inventory-check-mutation.js.map +1 -1
  34. package/dist-server/service/inventory-check/inventory-check-query.js.map +1 -1
  35. package/dist-server/service/inventory-check/inventory-check-types.js.map +1 -1
  36. package/dist-server/service/inventory-check/inventory-check.js.map +1 -1
  37. package/dist-server/service/invoice/invoice-mutation.js.map +1 -1
  38. package/dist-server/service/invoice/invoice-query.js.map +1 -1
  39. package/dist-server/service/invoice/invoice-types.js.map +1 -1
  40. package/dist-server/service/invoice/invoice.js.map +1 -1
  41. package/dist-server/service/invoice-product/invoice-product-mutation.js.map +1 -1
  42. package/dist-server/service/invoice-product/invoice-product-query.js.map +1 -1
  43. package/dist-server/service/invoice-product/invoice-product-types.js.map +1 -1
  44. package/dist-server/service/invoice-product/invoice-product.js.map +1 -1
  45. package/dist-server/service/job-sheet/job-sheet-mutation.js.map +1 -1
  46. package/dist-server/service/job-sheet/job-sheet-query.js.map +1 -1
  47. package/dist-server/service/job-sheet/job-sheet-types.js.map +1 -1
  48. package/dist-server/service/job-sheet/job-sheet.js.map +1 -1
  49. package/dist-server/service/manifest/manifest-mutation.js.map +1 -1
  50. package/dist-server/service/manifest/manifest-query.js.map +1 -1
  51. package/dist-server/service/manifest/manifest-type.js.map +1 -1
  52. package/dist-server/service/manifest/manifest.js.map +1 -1
  53. package/dist-server/service/order-inventory/order-inventory-mutation.js.map +1 -1
  54. package/dist-server/service/order-inventory/order-inventory-query.js +12 -26
  55. package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
  56. package/dist-server/service/order-inventory/order-inventory-types.js.map +1 -1
  57. package/dist-server/service/order-inventory/order-inventory.js.map +1 -1
  58. package/dist-server/service/order-product/order-product-mutation.js.map +1 -1
  59. package/dist-server/service/order-product/order-product-query.js.map +1 -1
  60. package/dist-server/service/order-product/order-product-types.js.map +1 -1
  61. package/dist-server/service/order-product/order-product.js.map +1 -1
  62. package/dist-server/service/order-tote/order-tote-mutation.js.map +1 -1
  63. package/dist-server/service/order-tote/order-tote-query.js.map +1 -1
  64. package/dist-server/service/order-tote/order-tote-types.js.map +1 -1
  65. package/dist-server/service/order-tote/order-tote.js.map +1 -1
  66. package/dist-server/service/order-tote-item/order-tote-item-mutation.js.map +1 -1
  67. package/dist-server/service/order-tote-item/order-tote-item-query.js.map +1 -1
  68. package/dist-server/service/order-tote-item/order-tote-item-types.js.map +1 -1
  69. package/dist-server/service/order-tote-item/order-tote-item.js.map +1 -1
  70. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js.map +1 -1
  71. package/dist-server/service/order-tote-seal/order-tote-seal-query.js.map +1 -1
  72. package/dist-server/service/order-tote-seal/order-tote-seal-types.js.map +1 -1
  73. package/dist-server/service/order-tote-seal/order-tote-seal.js.map +1 -1
  74. package/dist-server/service/order-vas/order-vas-mutation.js.map +1 -1
  75. package/dist-server/service/order-vas/order-vas-query.js.map +1 -1
  76. package/dist-server/service/order-vas/order-vas-types.js.map +1 -1
  77. package/dist-server/service/order-vas/order-vas.js +2 -1
  78. package/dist-server/service/order-vas/order-vas.js.map +1 -1
  79. package/dist-server/service/others/other-query.js.map +1 -1
  80. package/dist-server/service/others/other-types.js.map +1 -1
  81. package/dist-server/service/purchase-order/purchase-order-mutation.js.map +1 -1
  82. package/dist-server/service/purchase-order/purchase-order-query.js.map +1 -1
  83. package/dist-server/service/purchase-order/purchase-order-types.js.map +1 -1
  84. package/dist-server/service/purchase-order/purchase-order.js.map +1 -1
  85. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js.map +1 -1
  86. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js.map +1 -1
  87. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-types.js.map +1 -1
  88. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js.map +1 -1
  89. package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
  90. package/dist-server/service/release-good/release-good-query.js.map +1 -1
  91. package/dist-server/service/release-good/release-good-types.js.map +1 -1
  92. package/dist-server/service/release-good/release-good.js.map +1 -1
  93. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js.map +1 -1
  94. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js.map +1 -1
  95. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js.map +1 -1
  96. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js.map +1 -1
  97. package/dist-server/service/return-order/return-order-mutation.js.map +1 -1
  98. package/dist-server/service/return-order/return-order-query.js.map +1 -1
  99. package/dist-server/service/return-order/return-order-types.js.map +1 -1
  100. package/dist-server/service/return-order/return-order.js.map +1 -1
  101. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js.map +1 -1
  102. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js.map +1 -1
  103. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js.map +1 -1
  104. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js.map +1 -1
  105. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js.map +1 -1
  106. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js.map +1 -1
  107. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js.map +1 -1
  108. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js.map +1 -1
  109. package/dist-server/service/shipping-order/shipping-order-mutation.js.map +1 -1
  110. package/dist-server/service/shipping-order/shipping-order-query.js.map +1 -1
  111. package/dist-server/service/shipping-order/shipping-order-types.js.map +1 -1
  112. package/dist-server/service/shipping-order/shipping-order.js.map +1 -1
  113. package/dist-server/service/transfer-order/transfer-order-mutation.js.map +1 -1
  114. package/dist-server/service/transfer-order/transfer-order-query.js.map +1 -1
  115. package/dist-server/service/transfer-order/transfer-order-types.js.map +1 -1
  116. package/dist-server/service/transfer-order/transfer-order.js.map +1 -1
  117. package/dist-server/service/vas/vas-mutation.js.map +1 -1
  118. package/dist-server/service/vas/vas-query.js.map +1 -1
  119. package/dist-server/service/vas/vas-types.js.map +1 -1
  120. package/dist-server/service/vas/vas.js.map +1 -1
  121. package/dist-server/service/vas-order/vas-order-mutation.js.map +1 -1
  122. package/dist-server/service/vas-order/vas-order-query.js.map +1 -1
  123. package/dist-server/service/vas-order/vas-order-types.js.map +1 -1
  124. package/dist-server/service/vas-order/vas-order.js.map +1 -1
  125. package/dist-server/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +13 -13
  127. package/server/service/order-inventory/order-inventory-query.ts +13 -28
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-order-query.js","sourceRoot":"","sources":["../../../server/service/delivery-order/delivery-order-query.ts"],"names":[],"mappings":";;;;;AAAA,+CAAmF;AACnF,qCAA2E;AAE3E,qEAA4D;AAC5D,yDAAgD;AAChD,uDAAkE;AAElE,iDAAqH;AAGrH,+CAA8C;AAC9C,wEAAmE;AACnE,oFAA6E;AAC7E,+DAA0D;AAC1D,qDAAgD;AAChD,iEAA0D;AAE1D,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,2CAA2C,CAAC,CAAA;AAG3E,IAAa,kBAAkB,GAA/B,MAAa,kBAAkB;IAE7B,KAAK,CAAC,cAAc,CAAQ,OAAY,EAAU,MAAiB;QACjE,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAmC,OAAO,CAAC,KAAK,CAAA;YAEtE,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAA;YAChF,IAAI,CAAC,cAAc,EAAE;gBACnB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,MAAM,IAAA,kCAAuB,EAAC,MAAM,EAAE,IAAI,CAAC;oBAClD,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAA;aACH;YAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,CAAA;YACrF,IAAI,gBAAgB,EAAE;gBACpB,IAAI,UAAU,GAAG,EAAE,CAAA;gBACnB,MAAM,CAAC,OAAO,CAAC,MAAM,CACnB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC,EAC9D,CAAC,CACF,CAAA;gBACD,UAAU,CAAC,IAAI,iCAAM,gBAAgB,KAAE,IAAI,EAAE,MAAM,IAAG,CAAA;gBAEtD,MAAM,iBAAiB,GAAkB,MAAM,IAAA,uBAAa,EAAC,0BAAW,CAAC,CAAC,IAAI,mBACzE,IAAA,yBAAiB,EAClB,EAAE,OAAO,EAAE,UAAU,EAAE,EACvB;oBACE,WAAW,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC;iBAClD,CACF,EACD,CAAA;gBAEF,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,EAAE;oBACjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;wBAClB,IAAI,EAAE,eAAe;wBACrB,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,WAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC1E,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAA;iBACH;aACF;YAED,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;YAChF,IAAI,QAAQ,GAAG,CAAC,CAAA;YAChB,IAAI,WAAW,IAAI,CAAC,EAAE;gBACpB,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAA;gBAC5C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;aACtC;YAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;YACrF,IAAI,gBAAgB,IAAI,CAAC,EAAE;gBACzB,IAAI,WAAW,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAA;gBAClE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAA;gBAE1C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE;oBAChC,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAA;aACH;YACD,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;YACjF,IAAI,cAAc,IAAI,CAAC,EAAE;gBACvB,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAA;gBAC9D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;gBAExC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;oBACzE,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAA;aACH;YAED,IAAI,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAA;YAC7D,IAAI,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAA;YAC/D,IAAI,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAA;YAC/D,IAAI,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,kBAAkB,CAAC,CAAA;YAEnF,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAA;YAE1G,MAAM,EAAE,GAAQ,IAAA,uBAAa,EAAC,8BAAa,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;YACrE,IAAA,kBAAU,EAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAC/B,EAAE,CAAC,SAAS,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAA;YAClD,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YAC3C,EAAE,CAAC,iBAAiB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;YAC/C,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;YACrD,IAAI,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,KAAK,EAAE;gBACjC,EAAE,CAAC,kBAAkB,CAAC,2BAA2B,EAAE,eAAe,CAAC,CAAA;aACpE;YACD,EAAE,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAA;YAChD,EAAE,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAA;YACjD,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;YAC7C,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;YAC7C,EAAE,CAAC,QAAQ,CACT,QAAQ,CAAC,EAAE;gBACT,OAAO,QAAQ;qBACZ,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC;qBAC1B,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC;qBAC/B,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC;qBAClC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC;qBACjC,KAAK,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;qBAC3D,QAAQ,CAAC,6BAA6B,CAAC,CAAA;YAC5C,CAAC,EACD,IAAI,EACJ,uBAAuB,CACxB,CAAA;YAED,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,EAAE;gBACtB,EAAE,CAAC,QAAQ,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAA;aAC7E;YACD,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,EAAE;gBACvB,EAAE,CAAC,QAAQ,CAAC,oCAAoC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAA;aAClF;YACD,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,EAAE;gBACvB,EAAE,CAAC,QAAQ,CAAC,oCAAoC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAA;aAClF;YAED,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACtD,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;YAC9D,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,iCACV,GAAG,KACN,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBACvC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI;oBAC5B,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;wBACzC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO;wBACrB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAClD,EACF,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAC1E,CAAA;YAED,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAEhB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,eAAe,EAAE,CAAA;YACjD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;SACxB;QAAC,OAAO,KAAK,EAAE;YACd,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;YACzC,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;IAGD,KAAK,CAAC,aAAa,CAAc,IAAY,EAAS,OAAY;QAChE,MAAM,EAAE,MAAM,EAAE,GAAuB,OAAO,CAAC,KAAK,CAAA;QAEpD,MAAM,OAAO,GAAG,MAAM,IAAA,uBAAa,EAAC,8BAAa,CAAC,CAAC,OAAO,CAAC;YACzD,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;YACD,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC;SAC9G,CAAC,CAAA;QAEF,IAAI,gBAAgB,GAAG,EAAE,CAAA;QACzB,IAAI,OAAO,EAAE;YACX,gBAAgB,GAAG,MAAM,IAAA,uBAAa,EAAC,4BAAU,CAAC,CAAC,IAAI,CAAC;gBACtD,KAAK,EAAE;oBACL,MAAM;oBACN,KAAK,EAAE,OAAO,CAAC,EAAE;iBAClB;aACF,CAAC,CAAA;SACH;QAED,uCAAY,OAAO,KAAE,WAAW,EAAE,gBAAgB,IAAE;IACtD,CAAC;IAGD,KAAK,CAAC,qBAAqB,CAClB,OAAY,EACmC,OAAkB,EACb,UAAuB,EAC1B,QAAoB;QAE5E,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAmC,OAAO,CAAC,KAAK,CAAA;QAEtE,MAAM,eAAe,GAAG,IAAA,yBAAiB,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;QAE5E,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE;YAC3D,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,IAAA,aAAG,EAAC,IAAA,YAAE,EAAC,CAAC,wBAAY,CAAC,OAAO,EAAE,wBAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;SACrF;QACD,eAAe,CAAC,QAAQ,GAAG,IAAA,YAAE,EAAC,MAAM,IAAA,kCAAuB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;QAE1E,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,uBAAa,EAAC,8BAAa,CAAC,CAAC,YAAY,iCACjE,eAAe,KAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,CAAC,IAC7G,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGD,KAAK,CAAC,0BAA0B,CACR,aAAqB,EACpC,OAAY;QAEnB,MAAM,WAAW,GAAgB,MAAM,IAAA,uBAAa,EAAC,0BAAW,CAAC,CAAC,OAAO,CAAC;YACxE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;SAC/B,CAAC,CAAA;QAEF,OAAO,MAAM,0BAA0B,CAAC,WAAW,CAAC,CAAA;IACtD,CAAC;IAGD,KAAK,CAAC,kBAAkB,CAAc,IAAY,EAAS,OAAY;QACrE,MAAM,EAAE,MAAM,EAAE,GAAuB,OAAO,CAAC,KAAK,CAAA;QACpD,MAAM,aAAa,GAAkB,MAAM,IAAA,uBAAa,EAAC,8BAAa,CAAC,CAAC,OAAO,CAAC;YAC9E,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,uBAAa,EAAC,gCAAc,CAAC,CAAC,YAAY,CAAC;YACpE,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;YAChC,SAAS,EAAE,CAAC,WAAW,EAAE,mBAAmB,EAAE,0BAA0B,CAAC;SAC1E,CAAC,CAAA;QAEF,KAAK,GAAG,KAAK;aACV,GAAG,CAAC,CAAC,EAAkB,EAAE,EAAE;;YAC1B,MAAM,SAAS,GAAc,EAAE,CAAC,SAAS,CAAA;YACzC,MAAM,OAAO,GAAY,SAAS,CAAC,OAAO,CAAA;YAC1C,OAAO;gBACL,SAAS,EAAE,SAAS;gBACpB,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,WAAW,GAAG;gBACvD,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,eAAe,EAAE,EAAE,CAAC,eAAe;gBACnC,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,YAAY,EAAE,EAAE,CAAC,YAAY;gBAC7B,MAAM,EAAE,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,cAAc,MAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,cAAc,0CAAE,IAAI,CAAA,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;aAC1G,CAAA;QACH,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;YACxB,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAC1B,OAAO,CAAC,EAAE,CACR,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW;gBACxC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;gBAChC,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;gBAC1C,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CACjC,CAAA;YACD,IAAI,CAAC,SAAS,EAAE;gBACd,SAAS,GAAG;oBACV,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAA;gBAED,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACvB,OAAO,OAAO,CAAA;aACf;iBAAM;gBACL,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBACtB,IACE,EAAE,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW;wBACnC,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;wBAC3B,EAAE,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;wBACrC,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EACzB;wBACA,uCACK,EAAE,KACL,SAAS,EAAE,EAAE,CAAC,SAAS,GAAG,CAAC,EAC3B,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,EAC3C,eAAe,EAAE,EAAE,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAC3D;qBACF;yBAAM;wBACL,OAAO,EAAE,CAAA;qBACV;gBACH,CAAC,CAAC,CAAA;aACH;QACH,CAAC,EAAE,EAAE,CAAC,CAAA;QAER,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;YAC9B,uCACK,IAAI,KACP,YAAY,EAAE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM;oBACxB,CAAC,CAAC,IAAI,CAAC,MAAM;oBACb,CAAC,CAAC,IAAI,CAAC,YAAY;wBACnB,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE;4BAClB,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,kBAAkB;4BACrC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,MAAM,SAAS;wBACxD,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE;4BACpB,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,YAAY;4BAC/B,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,MAAM,GAAG,IACnD;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGD,KAAK,CAAC,wBAAwB,CAAc,IAAY,EAAS,OAAY;QAC3E,MAAM,EAAE,MAAM,EAAE,GAAuB,OAAO,CAAC,KAAK,CAAA;QACpD,MAAM,aAAa,GAAkB,MAAM,IAAA,uBAAa,EAAC,8BAAa,CAAC,CAAC,OAAO,CAAC;YAC9E,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,uBAAa,EAAC,gCAAc,CAAC,CAAC,YAAY,CAAC;YACpE,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;YAChC,SAAS,EAAE,CAAC,SAAS,CAAC;SACvB,CAAC,CAAA;QAEF,KAAK,GAAG,KAAK;aACV,GAAG,CAAC,CAAC,EAAkB,EAAE,EAAE;YAC1B,MAAM,OAAO,GAAY,EAAE,CAAC,OAAO,CAAA;YACnC,OAAO;gBACL,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,WAAW,GAAG;gBACvD,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,eAAe,EAAE,EAAE,CAAC,eAAe;gBACnC,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,YAAY,EAAE,EAAE,CAAC,YAAY;gBAC7B,MAAM,EAAE,EAAE;aACX,CAAA;QACH,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;YACxB,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAC1B,OAAO,CAAC,EAAE,CACR,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW;gBACxC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;gBAChC,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;gBAC1C,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CACjC,CAAA;YACD,IAAI,CAAC,SAAS,EAAE;gBACd,SAAS,GAAG;oBACV,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAA;gBAED,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACvB,OAAO,OAAO,CAAA;aACf;iBAAM;gBACL,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBACtB,IACE,EAAE,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW;wBACnC,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;wBAC3B,EAAE,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;wBACrC,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EACzB;wBACA,uCACK,EAAE,KACL,SAAS,EAAE,EAAE,CAAC,SAAS,GAAG,CAAC,EAC3B,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,EAC3C,eAAe,EAAE,EAAE,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAC3D;qBACF;yBAAM;wBACL,OAAO,EAAE,CAAA;qBACV;gBACH,CAAC,CAAC,CAAA;aACH;QACH,CAAC,EAAE,EAAE,CAAC,CAAA;QAER,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;YAC9B,uCACK,IAAI,KACP,YAAY,EAAE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM;oBACxB,CAAC,CAAC,IAAI,CAAC,MAAM;oBACb,CAAC,CAAC,IAAI,CAAC,YAAY;wBACnB,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE;4BAClB,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,kBAAkB;4BACrC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,MAAM,SAAS;wBACxD,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE;4BACpB,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,YAAY;4BAC/B,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,MAAM,GAAG,IACnD;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGD,KAAK,CAAC,mBAAmB,CAAQ,OAAY,EAAU,MAAiB;QACtE,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAmC,OAAO,CAAC,KAAK,CAAA;YAEtE,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAA;YAChF,IAAI,CAAC,cAAc,EAAE;gBACnB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,MAAM,IAAA,kCAAuB,EAAC,MAAM,EAAE,IAAI,CAAC;oBAClD,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAA;aACH;YAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,CAAA;YACrF,IAAI,gBAAgB,EAAE;gBACpB,IAAI,UAAU,GAAG,EAAE,CAAA;gBACnB,MAAM,CAAC,OAAO,CAAC,MAAM,CACnB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC,EAC9D,CAAC,CACF,CAAA;gBACD,UAAU,CAAC,IAAI,iCAAM,gBAAgB,KAAE,IAAI,EAAE,MAAM,IAAG,CAAA;gBAEtD,MAAM,iBAAiB,GAAkB,MAAM,IAAA,uBAAa,EAAC,0BAAW,CAAC,CAAC,IAAI,mBACzE,IAAA,yBAAiB,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAC7C,CAAA;gBAEF,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,EAAE;oBACjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;wBAClB,IAAI,EAAE,eAAe;wBACrB,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,WAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC1E,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAA;iBACH;aACF;YAED,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;YAChF,IAAI,QAAQ,GAAG,CAAC,CAAA;YAChB,IAAI,WAAW,IAAI,CAAC,EAAE;gBACpB,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAA;gBAC5C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;aACtC;YAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;YACrF,IAAI,gBAAgB,IAAI,CAAC,EAAE;gBACzB,IAAI,WAAW,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAA;gBAClE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAA;gBAE1C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE;oBAChC,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAA;aACH;YACD,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;YACjF,IAAI,cAAc,IAAI,CAAC,EAAE;gBACvB,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAA;gBAC9D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;gBAExC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;oBACzE,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAA;aACH;YAED,IAAI,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAA;YAC7D,IAAI,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAA;YAC/D,IAAI,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAA;YAE/D,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAA;YAE1G,MAAM,EAAE,GAAQ,IAAA,uBAAa,EAAC,8BAAa,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;YACrE,IAAA,kBAAU,EAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAC/B,EAAE,CAAC,SAAS,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAA;YAClD,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YAC3C,EAAE,CAAC,iBAAiB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;YAC/C,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;YACrD,EAAE,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAA;YAChD,EAAE,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAA;YACjD,EAAE,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAA;YACjD,EAAE,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;YAC3C,EAAE,CAAC,iBAAiB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;YAC1C,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;YAC7C,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;YAC7C,EAAE,CAAC,QAAQ,CACT,QAAQ,CAAC,EAAE;gBACT,OAAO,QAAQ;qBACZ,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC;qBAC1B,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC;qBAC/B,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC;qBAClC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC;qBACjC,KAAK,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;qBAC3D,QAAQ,CAAC,6BAA6B,CAAC,CAAA;YAC5C,CAAC,EACD,IAAI,EACJ,uBAAuB,CACxB,CAAA;YAED,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,EAAE;gBACtB,EAAE,CAAC,QAAQ,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAA;aAC7E;YACD,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,EAAE;gBACvB,EAAE,CAAC,QAAQ,CAAC,oCAAoC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAA;aAClF;YACD,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,EAAE;gBACvB,EAAE,CAAC,QAAQ,CAAC,oCAAoC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAA;aAClF;YAED,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACtD,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;YAC9D,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,iCACV,GAAG,KACN,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBACvC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI;oBAC5B,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;wBACzC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO;wBACrB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAClD,EACF,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAC1E,CAAA;YAED,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAEhB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,eAAe,EAAE,CAAA;YACjD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;SACxB;QAAC,OAAO,KAAK,EAAE;YACd,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;YACzC,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;IAGD,KAAK,CAAC,MAAM,CAAS,aAA4B;QAC/C,OAAO,MAAM,IAAA,uBAAa,EAAC,cAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IACpE,CAAC;IAGD,KAAK,CAAC,OAAO,CAAS,aAA4B;QAChD,OAAO,MAAM,IAAA,uBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;IACnE,CAAC;IAGD,KAAK,CAAC,OAAO,CAAS,aAA4B;QAChD,OAAO,MAAM,IAAA,uBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;IACnE,CAAC;CACF,CAAA;AAzhBC;IADC,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,wCAAiB,CAAC;IACd,mBAAA,IAAA,kBAAG,GAAE,CAAA;IAAgB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;yEAAS,iBAAS,oBAAT,iBAAS;;wDA4IlE;AAGD;IADC,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,8BAAa,CAAC;IACX,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IAAgB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;uDAsBpD;AAGD;IADC,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,wCAAiB,CAAC;IAEjC,mBAAA,IAAA,kBAAG,GAAE,CAAA;IACL,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,cAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACpD,mBAAA,IAAA,kBAAG,EAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,kBAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,mBAAA,IAAA,kBAAG,EAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,eAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;;gFADiB,kBAAU,oBAAV,kBAAU;;+DAkBnF;AAGD;IADC,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,wCAAiB,CAAC;IAEjC,mBAAA,IAAA,kBAAG,EAAC,eAAe,CAAC,CAAA;IACpB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;oEAOP;AAGD;IADC,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,0CAAkB,CAAC;IACX,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IAAgB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;4DAwFzD;AAGD;IADC,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,0CAAkB,CAAC;IACL,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IAAgB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;kEAyF/D;AAGD;IADC,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,wCAAiB,CAAC;IACT,mBAAA,IAAA,kBAAG,GAAE,CAAA;IAAgB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;yEAAS,iBAAS,oBAAT,iBAAS;;6DAsIvE;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAgB,8BAAa;;gDAEhD;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAgB,8BAAa;;iDAEjD;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAgB,8BAAa;;iDAEjD;AA1hBU,kBAAkB;IAD9B,IAAA,uBAAQ,EAAC,8BAAa,CAAC;GACX,kBAAkB,CA2hB9B;AA3hBY,gDAAkB;AA6hBxB,KAAK,UAAU,0BAA0B,CAAC,WAAwB,EAAE,MAAsB;IAC/F,MAAM,MAAM,GAA8B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,8BAAa,CAAC,KAAI,IAAA,uBAAa,EAAC,8BAAa,CAAC,CAAA;IAC9G,MAAM,MAAM,GAA+B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,gCAAc,CAAC,KAAI,IAAA,uBAAa,EAAC,gCAAc,CAAC,CAAA;IAEjH,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QAC7C,KAAK,EAAE,EAAE,WAAW,EAAE;QACtB,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,CAAC;KAC9G,CAAC,CAAA;IAEF,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CACvB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,aAA4B,EAAE,EAAE;;QAC/C,uCACK,aAAa,KAChB,KAAK,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,MAAI,MAAA,aAAa,CAAC,gBAAgB,0CAAE,IAAI,CAAA,IAAI,IAAI,EAC7E,iBAAiB,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC;gBACnC,KAAK,EAAE,EAAE,aAAa,EAAE;gBACxB,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC;aAC9D,CAAC,IACH;IACH,CAAC,CAAC,CACH,CAAA;IAED,OAAO;QACL,KAAK;QACL,KAAK;KACN,CAAA;AACH,CAAC;AA1BD,gEA0BC","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { EntityManager, getRepository, In, Not, Repository } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { getPermittedBizplaceIds } from '@things-factory/biz-base'\nimport { Product } from '@things-factory/product-base'\nimport { buildQuery, convertListParams, Domain, Filter, ListParam, Pagination, Sorting } from '@things-factory/shell'\nimport { Inventory } from '@things-factory/warehouse-base'\n\nimport { ORDER_STATUS } from '../../constants'\nimport { OrderInventory } from '../order-inventory/order-inventory'\nimport { OrderInventoryList } from '../order-inventory/order-inventory-types'\nimport { ReleaseGood } from '../release-good/release-good'\nimport { DeliveryOrder } from './delivery-order'\nimport { DeliveryOrderList } from './delivery-order-types'\n\nconst debug = require('debug')('things-factory:sales-base:delivery-orders')\n\n@Resolver(DeliveryOrder)\nexport class DeliveryOrderQuery {\n @Query(returns => DeliveryOrderList)\n async deliveryOrders(@Ctx() context: any, @Args() params: ListParam): Promise<DeliveryOrderList> {\n try {\n const { domain, user }: { domain: Domain; user: User } = context.state\n\n const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId')\n if (!bizplaceFilter) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n const releaseGoodParam = params.filters.find(param => param.name === 'releaseGoodNo')\n if (releaseGoodParam) {\n let arrFilters = []\n params.filters.splice(\n params.filters.findIndex(item => item.name == 'releaseGoodNo'),\n 1\n )\n arrFilters.push({ ...releaseGoodParam, name: 'name' })\n\n const foundReleaseGoods: ReleaseGood[] = await getRepository(ReleaseGood).find({\n ...convertListParams(\n { filters: arrFilters },\n {\n searchables: ['name', 'releaseGoodNo', 'truckNo']\n }\n )\n })\n\n if (foundReleaseGoods && foundReleaseGoods.length) {\n params.filters.push({\n name: 'releaseGoodId',\n operator: 'in',\n value: foundReleaseGoods.map((releaseGood: ReleaseGood) => releaseGood.id),\n relation: false\n })\n }\n }\n\n const tzOffsetIdx = params.filters.findIndex(param => param.name === 'tzoffset')\n let tzOffset = 0\n if (tzOffsetIdx >= 0) {\n tzOffset = params.filters[tzOffsetIdx].value\n params.filters.splice(tzOffsetIdx, 1)\n }\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n let refNoFilter = params.filters.find(x => x.name == 'refNo')\n let refNo2Filter = params.filters.find(x => x.name == 'refNo2')\n let refNo3Filter = params.filters.find(x => x.name == 'refNo3')\n let orderProductsApiFilter = params.filters.find(x => x.name == 'orderProductsApi')\n\n params.filters = params.filters.filter(x => x.name != 'refNo' && x.name != 'refNo2' && x.name != 'refNo3')\n\n const qb: any = getRepository(DeliveryOrder).createQueryBuilder('do')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 99999)', 'rank')\n qb.leftJoinAndSelect('do.domain', 'domain')\n qb.leftJoinAndSelect('do.bizplace', 'bizplace')\n qb.leftJoinAndSelect('do.releaseGood', 'releaseGood')\n if (orderProductsApiFilter?.value) {\n qb.innerJoinAndSelect('releaseGood.orderProducts', 'orderProducts')\n }\n qb.leftJoinAndSelect('do.transportDriver', 'td')\n qb.leftJoinAndSelect('do.transportVehicle', 'th')\n qb.leftJoinAndSelect('do.creator', 'creator')\n qb.leftJoinAndSelect('do.updater', 'updater')\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'DELIVERY_STATUS'`)\n },\n 'cc',\n 'cc.status = do.status'\n )\n\n if (refNoFilter?.value) {\n qb.andWhere('releaseGood.ref_no ilike :refNo', { refNo: refNoFilter.value })\n }\n if (refNo2Filter?.value) {\n qb.andWhere('releaseGood.ref_no_2 ilike :refNo2', { refNo2: refNo2Filter.value })\n }\n if (refNo3Filter?.value) {\n qb.andWhere('releaseGood.ref_no_3 ilike :refNo3', { refNo3: refNo3Filter.value })\n }\n\n const arrChildSortData = ['refNo', 'refNo2', 'refNo3']\n const arrNameSortData = ['bizplace', 'releaseGood', 'updater']\n const sort = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0\n ? 'releaseGood.' + sort.name\n : arrNameSortData.indexOf(sort.name) >= 0\n ? sort.name + '.name'\n : 'do.' + sort.name]: sort.desc ? 'DESC' : 'ASC'\n }),\n params.sortings.length < 1 ? { rank: 'ASC', 'do.createdAt': 'DESC' } : {}\n )\n\n qb.orderBy(sort)\n\n const [items, total] = await qb.getManyAndCount()\n return { items, total }\n } catch (error) {\n debug('deliveryOrders', error.toString())\n throw error\n }\n }\n\n @Query(returns => DeliveryOrder)\n async deliveryOrder(@Arg('name') name: string, @Ctx() context: any): Promise<DeliveryOrder> {\n const { domain }: { domain: Domain } = context.state\n\n const foundDO = await getRepository(DeliveryOrder).findOne({\n where: {\n domain,\n name\n },\n relations: ['domain', 'bizplace', 'transportDriver', 'transportVehicle', 'releaseGood', 'creator', 'updater']\n })\n\n let foundAttachments = []\n if (foundDO) {\n foundAttachments = await getRepository(Attachment).find({\n where: {\n domain,\n refBy: foundDO.id\n }\n })\n }\n\n return { ...foundDO, attachments: foundAttachments }\n }\n\n @Query(returns => DeliveryOrderList)\n async deliveryOrderRequests(\n @Ctx() context: any,\n @Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],\n @Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,\n @Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]\n ): Promise<DeliveryOrderList> {\n const { domain, user }: { domain: Domain; user: User } = context.state\n\n const convertedParams = convertListParams({ filters, pagination, sortings })\n\n if (!convertedParams.where || !convertedParams.where.status) {\n convertedParams.where.status = Not(In([ORDER_STATUS.PENDING, ORDER_STATUS.EDITING]))\n }\n convertedParams.bizplace = In(await getPermittedBizplaceIds(domain, user))\n\n const [items, total] = await getRepository(DeliveryOrder).findAndCount({\n ...convertedParams,\n relations: ['domain', 'bizplace', 'releaseGood', 'transportDriver', 'transportVehicle', 'creator', 'updater']\n })\n\n return { items, total }\n }\n\n @Query(returns => DeliveryOrderList)\n async deliveryOrderByReleaseGood(\n @Arg('releaseGoodNo') releaseGoodNo: string,\n @Ctx() context: any\n ): Promise<DeliveryOrderList> {\n const releaseGood: ReleaseGood = await getRepository(ReleaseGood).findOne({\n where: { name: releaseGoodNo }\n })\n\n return await deliveryOrderByReleaseGood(releaseGood)\n }\n\n @Query(returns => OrderInventoryList)\n async deliveryOrderItems(@Arg('name') name: string, @Ctx() context: any): Promise<OrderInventoryList> {\n const { domain }: { domain: Domain } = context.state\n const deliveryOrder: DeliveryOrder = await getRepository(DeliveryOrder).findOne({\n where: { domain, name }\n })\n\n let [items, total] = await getRepository(OrderInventory).findAndCount({\n where: { domain, deliveryOrder },\n relations: ['inventory', 'inventory.product', 'inventory.reusablePallet']\n })\n\n items = items\n .map((oi: OrderInventory) => {\n const inventory: Inventory = oi.inventory\n const product: Product = inventory.product\n return {\n inventory: inventory,\n productName: `${product.name} (${product.description})`,\n packingType: inventory.packingType,\n batchId: inventory.batchId,\n releaseQty: oi.releaseQty,\n releaseUomValue: oi.releaseUomValue,\n remark: oi.remark,\n crossDocking: oi.crossDocking,\n pallet: inventory?.reusablePallet && inventory?.reusablePallet?.name ? inventory.reusablePallet.name : ''\n }\n })\n .reduce((newItem, item) => {\n var foundItem = newItem.find(\n newItem =>\n newItem.productName === item.productName &&\n newItem.batchId === item.batchId &&\n newItem.crossDocking === item.crossDocking &&\n newItem.pallet === item.pallet\n )\n if (!foundItem) {\n foundItem = {\n inventory: item.inventory,\n productName: item.productName,\n packingType: item.packingType,\n batchId: item.batchId,\n releaseQty: item.releaseQty,\n releaseUomValue: item.releaseUomValue,\n palletQty: 1,\n remark: item.remark,\n crossDocking: item.crossDocking,\n pallet: item.pallet\n }\n\n newItem.push(foundItem)\n return newItem\n } else {\n return newItem.map(ni => {\n if (\n ni.productName === item.productName &&\n ni.batchId === item.batchId &&\n ni.crossDocking === item.crossDocking &&\n ni.pallet === item.pallet\n ) {\n return {\n ...ni,\n palletQty: ni.palletQty + 1,\n releaseQty: ni.releaseQty + item.releaseQty,\n releaseUomValue: ni.releaseUomValue + item.releaseUomValue\n }\n } else {\n return ni\n }\n })\n }\n }, [])\n\n items = items.map((prod: any) => {\n return {\n ...prod,\n systemRemark: prod?.remark\n ? prod.remark\n : prod.crossDocking\n ? prod.pallet === ''\n ? `${prod.palletQty} PALLET(S) [C/D]`\n : `${prod.palletQty} PALLET(S) (${prod.pallet}) [C/D]`\n : prod.pallet === ''\n ? `${prod.palletQty} PALLET(S)`\n : `${prod.palletQty} PALLET(S) (${prod.pallet})`\n }\n })\n\n return { items, total }\n }\n\n @Query(returns => OrderInventoryList)\n async manualDeliveryOrderItems(@Arg('name') name: string, @Ctx() context: any): Promise<OrderInventoryList> {\n const { domain }: { domain: Domain } = context.state\n const deliveryOrder: DeliveryOrder = await getRepository(DeliveryOrder).findOne({\n where: { domain, name }\n })\n\n let [items, total] = await getRepository(OrderInventory).findAndCount({\n where: { domain, deliveryOrder },\n relations: ['product']\n })\n\n items = items\n .map((oi: OrderInventory) => {\n const product: Product = oi.product\n return {\n inventory: oi.inventory,\n productId: product.id,\n productName: `${product.name} (${product.description})`,\n packingType: oi.packingType,\n batchId: oi.batchId,\n releaseQty: oi.releaseQty,\n releaseUomValue: oi.releaseUomValue,\n remark: oi.remark,\n crossDocking: oi.crossDocking,\n pallet: ''\n }\n })\n .reduce((newItem, item) => {\n var foundItem = newItem.find(\n newItem =>\n newItem.productName === item.productName &&\n newItem.batchId === item.batchId &&\n newItem.crossDocking === item.crossDocking &&\n newItem.pallet === item.pallet\n )\n if (!foundItem) {\n foundItem = {\n inventory: item.inventory,\n productId: item.productId,\n productName: item.productName,\n packingType: item.packingType,\n batchId: item.batchId,\n releaseQty: item.releaseQty,\n releaseUomValue: item.releaseUomValue,\n palletQty: 1,\n remark: item.remark,\n crossDocking: item.crossDocking,\n pallet: item.pallet\n }\n\n newItem.push(foundItem)\n return newItem\n } else {\n return newItem.map(ni => {\n if (\n ni.productName === item.productName &&\n ni.batchId === item.batchId &&\n ni.crossDocking === item.crossDocking &&\n ni.pallet === item.pallet\n ) {\n return {\n ...ni,\n palletQty: ni.palletQty + 1,\n releaseQty: ni.releaseQty + item.releaseQty,\n releaseUomValue: ni.releaseUomValue + item.releaseUomValue\n }\n } else {\n return ni\n }\n })\n }\n }, [])\n\n items = items.map((prod: any) => {\n return {\n ...prod,\n systemRemark: prod?.remark\n ? prod.remark\n : prod.crossDocking\n ? prod.pallet === ''\n ? `${prod.palletQty} PALLET(S) [C/D]`\n : `${prod.palletQty} PALLET(S) (${prod.pallet}) [C/D]`\n : prod.pallet === ''\n ? `${prod.palletQty} PALLET(S)`\n : `${prod.palletQty} PALLET(S) (${prod.pallet})`\n }\n })\n\n return { items, total }\n }\n\n @Query(returns => DeliveryOrderList)\n async deliveryOrderReport(@Ctx() context: any, @Args() params: ListParam): Promise<DeliveryOrderList> {\n try {\n const { domain, user }: { domain: Domain; user: User } = context.state\n\n const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId')\n if (!bizplaceFilter) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n const releaseGoodParam = params.filters.find(param => param.name === 'releaseGoodNo')\n if (releaseGoodParam) {\n let arrFilters = []\n params.filters.splice(\n params.filters.findIndex(item => item.name == 'releaseGoodNo'),\n 1\n )\n arrFilters.push({ ...releaseGoodParam, name: 'name' })\n\n const foundReleaseGoods: ReleaseGood[] = await getRepository(ReleaseGood).find({\n ...convertListParams({ filters: arrFilters })\n })\n\n if (foundReleaseGoods && foundReleaseGoods.length) {\n params.filters.push({\n name: 'releaseGoodId',\n operator: 'in',\n value: foundReleaseGoods.map((releaseGood: ReleaseGood) => releaseGood.id),\n relation: false\n })\n }\n }\n\n const tzOffsetIdx = params.filters.findIndex(param => param.name === 'tzoffset')\n let tzOffset = 0\n if (tzOffsetIdx >= 0) {\n tzOffset = params.filters[tzOffsetIdx].value\n params.filters.splice(tzOffsetIdx, 1)\n }\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n let refNoFilter = params.filters.find(x => x.name == 'refNo')\n let refNo2Filter = params.filters.find(x => x.name == 'refNo2')\n let refNo3Filter = params.filters.find(x => x.name == 'refNo3')\n\n params.filters = params.filters.filter(x => x.name != 'refNo' && x.name != 'refNo2' && x.name != 'refNo3')\n\n const qb: any = getRepository(DeliveryOrder).createQueryBuilder('do')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 99999)', 'rank')\n qb.leftJoinAndSelect('do.domain', 'domain')\n qb.leftJoinAndSelect('do.bizplace', 'bizplace')\n qb.leftJoinAndSelect('do.releaseGood', 'releaseGood')\n qb.leftJoinAndSelect('do.transportDriver', 'td')\n qb.leftJoinAndSelect('do.transportVehicle', 'th')\n qb.leftJoinAndSelect('do.orderInventories', 'oi')\n qb.leftJoinAndSelect('oi.inventory', 'inv')\n qb.leftJoinAndSelect('inv.product', 'prd')\n qb.leftJoinAndSelect('do.creator', 'creator')\n qb.leftJoinAndSelect('do.updater', 'updater')\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'DELIVERY_STATUS'`)\n },\n 'cc',\n 'cc.status = do.status'\n )\n\n if (refNoFilter?.value) {\n qb.andWhere('releaseGood.ref_no ilike :refNo', { refNo: refNoFilter.value })\n }\n if (refNo2Filter?.value) {\n qb.andWhere('releaseGood.ref_no_2 ilike :refNo2', { refNo2: refNo2Filter.value })\n }\n if (refNo3Filter?.value) {\n qb.andWhere('releaseGood.ref_no_3 ilike :refNo3', { refNo3: refNo3Filter.value })\n }\n\n const arrChildSortData = ['refNo', 'refNo2', 'refNo3']\n const arrNameSortData = ['bizplace', 'releaseGood', 'updater']\n const sort = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0\n ? 'releaseGood.' + sort.name\n : arrNameSortData.indexOf(sort.name) >= 0\n ? sort.name + '.name'\n : 'do.' + sort.name]: sort.desc ? 'DESC' : 'ASC'\n }),\n params.sortings.length < 1 ? { rank: 'ASC', 'do.createdAt': 'DESC' } : {}\n )\n\n qb.orderBy(sort)\n\n const [items, total] = await qb.getManyAndCount()\n return { items, total }\n } catch (error) {\n debug('deliveryOrders', error.toString())\n throw error\n }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() deliveryOrder: DeliveryOrder): Promise<Domain> {\n return await getRepository(Domain).findOne(deliveryOrder.domainId)\n }\n\n @FieldResolver(type => User)\n async creator(@Root() deliveryOrder: DeliveryOrder): Promise<User> {\n return await getRepository(User).findOne(deliveryOrder.creatorId)\n }\n\n @FieldResolver(type => User)\n async updater(@Root() deliveryOrder: DeliveryOrder): Promise<User> {\n return await getRepository(User).findOne(deliveryOrder.updaterId)\n }\n}\n\nexport async function deliveryOrderByReleaseGood(releaseGood: ReleaseGood, trxMgr?: EntityManager): Promise<any> {\n const doRepo: Repository<DeliveryOrder> = trxMgr?.getRepository(DeliveryOrder) || getRepository(DeliveryOrder)\n const oiRepo: Repository<OrderInventory> = trxMgr?.getRepository(OrderInventory) || getRepository(OrderInventory)\n\n let [items, total] = await doRepo.findAndCount({\n where: { releaseGood },\n relations: ['domain', 'bizplace', 'releaseGood', 'transportDriver', 'transportVehicle', 'creator', 'updater']\n })\n\n items = await Promise.all(\n items.map(async (deliveryOrder: DeliveryOrder) => {\n return {\n ...deliveryOrder,\n truck: deliveryOrder?.truckNo || deliveryOrder.transportVehicle?.name || null,\n targetInventories: await oiRepo.find({\n where: { deliveryOrder },\n relations: ['domain', 'bizplace', 'releaseGood', 'inventory']\n })\n }\n })\n )\n\n return {\n items,\n total\n }\n}\n"]}
1
+ {"version":3,"file":"delivery-order-query.js","sourceRoot":"","sources":["../../../server/service/delivery-order/delivery-order-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { EntityManager, getRepository, In, Not, Repository } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { getPermittedBizplaceIds } from '@things-factory/biz-base'\nimport { Product } from '@things-factory/product-base'\nimport { buildQuery, convertListParams, Domain, Filter, ListParam, Pagination, Sorting } from '@things-factory/shell'\nimport { Inventory } from '@things-factory/warehouse-base'\n\nimport { ORDER_STATUS } from '../../constants'\nimport { OrderInventory } from '../order-inventory/order-inventory'\nimport { OrderInventoryList } from '../order-inventory/order-inventory-types'\nimport { ReleaseGood } from '../release-good/release-good'\nimport { DeliveryOrder } from './delivery-order'\nimport { DeliveryOrderList } from './delivery-order-types'\n\nconst debug = require('debug')('things-factory:sales-base:delivery-orders')\n\n@Resolver(DeliveryOrder)\nexport class DeliveryOrderQuery {\n @Query(returns => DeliveryOrderList)\n async deliveryOrders(@Ctx() context: any, @Args() params: ListParam): Promise<DeliveryOrderList> {\n try {\n const { domain, user }: { domain: Domain; user: User } = context.state\n\n const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId')\n if (!bizplaceFilter) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n const releaseGoodParam = params.filters.find(param => param.name === 'releaseGoodNo')\n if (releaseGoodParam) {\n let arrFilters = []\n params.filters.splice(\n params.filters.findIndex(item => item.name == 'releaseGoodNo'),\n 1\n )\n arrFilters.push({ ...releaseGoodParam, name: 'name' })\n\n const foundReleaseGoods: ReleaseGood[] = await getRepository(ReleaseGood).find({\n ...convertListParams(\n { filters: arrFilters },\n {\n searchables: ['name', 'releaseGoodNo', 'truckNo']\n }\n )\n })\n\n if (foundReleaseGoods && foundReleaseGoods.length) {\n params.filters.push({\n name: 'releaseGoodId',\n operator: 'in',\n value: foundReleaseGoods.map((releaseGood: ReleaseGood) => releaseGood.id),\n relation: false\n })\n }\n }\n\n const tzOffsetIdx = params.filters.findIndex(param => param.name === 'tzoffset')\n let tzOffset = 0\n if (tzOffsetIdx >= 0) {\n tzOffset = params.filters[tzOffsetIdx].value\n params.filters.splice(tzOffsetIdx, 1)\n }\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n let refNoFilter = params.filters.find(x => x.name == 'refNo')\n let refNo2Filter = params.filters.find(x => x.name == 'refNo2')\n let refNo3Filter = params.filters.find(x => x.name == 'refNo3')\n let orderProductsApiFilter = params.filters.find(x => x.name == 'orderProductsApi')\n\n params.filters = params.filters.filter(x => x.name != 'refNo' && x.name != 'refNo2' && x.name != 'refNo3')\n\n const qb: any = getRepository(DeliveryOrder).createQueryBuilder('do')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 99999)', 'rank')\n qb.leftJoinAndSelect('do.domain', 'domain')\n qb.leftJoinAndSelect('do.bizplace', 'bizplace')\n qb.leftJoinAndSelect('do.releaseGood', 'releaseGood')\n if (orderProductsApiFilter?.value) {\n qb.innerJoinAndSelect('releaseGood.orderProducts', 'orderProducts')\n }\n qb.leftJoinAndSelect('do.transportDriver', 'td')\n qb.leftJoinAndSelect('do.transportVehicle', 'th')\n qb.leftJoinAndSelect('do.creator', 'creator')\n qb.leftJoinAndSelect('do.updater', 'updater')\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'DELIVERY_STATUS'`)\n },\n 'cc',\n 'cc.status = do.status'\n )\n\n if (refNoFilter?.value) {\n qb.andWhere('releaseGood.ref_no ilike :refNo', { refNo: refNoFilter.value })\n }\n if (refNo2Filter?.value) {\n qb.andWhere('releaseGood.ref_no_2 ilike :refNo2', { refNo2: refNo2Filter.value })\n }\n if (refNo3Filter?.value) {\n qb.andWhere('releaseGood.ref_no_3 ilike :refNo3', { refNo3: refNo3Filter.value })\n }\n\n const arrChildSortData = ['refNo', 'refNo2', 'refNo3']\n const arrNameSortData = ['bizplace', 'releaseGood', 'updater']\n const sort = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0\n ? 'releaseGood.' + sort.name\n : arrNameSortData.indexOf(sort.name) >= 0\n ? sort.name + '.name'\n : 'do.' + sort.name]: sort.desc ? 'DESC' : 'ASC'\n }),\n params.sortings.length < 1 ? { rank: 'ASC', 'do.createdAt': 'DESC' } : {}\n )\n\n qb.orderBy(sort)\n\n const [items, total] = await qb.getManyAndCount()\n return { items, total }\n } catch (error) {\n debug('deliveryOrders', error.toString())\n throw error\n }\n }\n\n @Query(returns => DeliveryOrder)\n async deliveryOrder(@Arg('name') name: string, @Ctx() context: any): Promise<DeliveryOrder> {\n const { domain }: { domain: Domain } = context.state\n\n const foundDO = await getRepository(DeliveryOrder).findOne({\n where: {\n domain,\n name\n },\n relations: ['domain', 'bizplace', 'transportDriver', 'transportVehicle', 'releaseGood', 'creator', 'updater']\n })\n\n let foundAttachments = []\n if (foundDO) {\n foundAttachments = await getRepository(Attachment).find({\n where: {\n domain,\n refBy: foundDO.id\n }\n })\n }\n\n return { ...foundDO, attachments: foundAttachments }\n }\n\n @Query(returns => DeliveryOrderList)\n async deliveryOrderRequests(\n @Ctx() context: any,\n @Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],\n @Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,\n @Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]\n ): Promise<DeliveryOrderList> {\n const { domain, user }: { domain: Domain; user: User } = context.state\n\n const convertedParams = convertListParams({ filters, pagination, sortings })\n\n if (!convertedParams.where || !convertedParams.where.status) {\n convertedParams.where.status = Not(In([ORDER_STATUS.PENDING, ORDER_STATUS.EDITING]))\n }\n convertedParams.bizplace = In(await getPermittedBizplaceIds(domain, user))\n\n const [items, total] = await getRepository(DeliveryOrder).findAndCount({\n ...convertedParams,\n relations: ['domain', 'bizplace', 'releaseGood', 'transportDriver', 'transportVehicle', 'creator', 'updater']\n })\n\n return { items, total }\n }\n\n @Query(returns => DeliveryOrderList)\n async deliveryOrderByReleaseGood(\n @Arg('releaseGoodNo') releaseGoodNo: string,\n @Ctx() context: any\n ): Promise<DeliveryOrderList> {\n const releaseGood: ReleaseGood = await getRepository(ReleaseGood).findOne({\n where: { name: releaseGoodNo }\n })\n\n return await deliveryOrderByReleaseGood(releaseGood)\n }\n\n @Query(returns => OrderInventoryList)\n async deliveryOrderItems(@Arg('name') name: string, @Ctx() context: any): Promise<OrderInventoryList> {\n const { domain }: { domain: Domain } = context.state\n const deliveryOrder: DeliveryOrder = await getRepository(DeliveryOrder).findOne({\n where: { domain, name }\n })\n\n let [items, total] = await getRepository(OrderInventory).findAndCount({\n where: { domain, deliveryOrder },\n relations: ['inventory', 'inventory.product', 'inventory.reusablePallet']\n })\n\n items = items\n .map((oi: OrderInventory) => {\n const inventory: Inventory = oi.inventory\n const product: Product = inventory.product\n return {\n inventory: inventory,\n productName: `${product.name} (${product.description})`,\n packingType: inventory.packingType,\n batchId: inventory.batchId,\n releaseQty: oi.releaseQty,\n releaseUomValue: oi.releaseUomValue,\n remark: oi.remark,\n crossDocking: oi.crossDocking,\n pallet: inventory?.reusablePallet && inventory?.reusablePallet?.name ? inventory.reusablePallet.name : ''\n }\n })\n .reduce((newItem, item) => {\n var foundItem = newItem.find(\n newItem =>\n newItem.productName === item.productName &&\n newItem.batchId === item.batchId &&\n newItem.crossDocking === item.crossDocking &&\n newItem.pallet === item.pallet\n )\n if (!foundItem) {\n foundItem = {\n inventory: item.inventory,\n productName: item.productName,\n packingType: item.packingType,\n batchId: item.batchId,\n releaseQty: item.releaseQty,\n releaseUomValue: item.releaseUomValue,\n palletQty: 1,\n remark: item.remark,\n crossDocking: item.crossDocking,\n pallet: item.pallet\n }\n\n newItem.push(foundItem)\n return newItem\n } else {\n return newItem.map(ni => {\n if (\n ni.productName === item.productName &&\n ni.batchId === item.batchId &&\n ni.crossDocking === item.crossDocking &&\n ni.pallet === item.pallet\n ) {\n return {\n ...ni,\n palletQty: ni.palletQty + 1,\n releaseQty: ni.releaseQty + item.releaseQty,\n releaseUomValue: ni.releaseUomValue + item.releaseUomValue\n }\n } else {\n return ni\n }\n })\n }\n }, [])\n\n items = items.map((prod: any) => {\n return {\n ...prod,\n systemRemark: prod?.remark\n ? prod.remark\n : prod.crossDocking\n ? prod.pallet === ''\n ? `${prod.palletQty} PALLET(S) [C/D]`\n : `${prod.palletQty} PALLET(S) (${prod.pallet}) [C/D]`\n : prod.pallet === ''\n ? `${prod.palletQty} PALLET(S)`\n : `${prod.palletQty} PALLET(S) (${prod.pallet})`\n }\n })\n\n return { items, total }\n }\n\n @Query(returns => OrderInventoryList)\n async manualDeliveryOrderItems(@Arg('name') name: string, @Ctx() context: any): Promise<OrderInventoryList> {\n const { domain }: { domain: Domain } = context.state\n const deliveryOrder: DeliveryOrder = await getRepository(DeliveryOrder).findOne({\n where: { domain, name }\n })\n\n let [items, total] = await getRepository(OrderInventory).findAndCount({\n where: { domain, deliveryOrder },\n relations: ['product']\n })\n\n items = items\n .map((oi: OrderInventory) => {\n const product: Product = oi.product\n return {\n inventory: oi.inventory,\n productId: product.id,\n productName: `${product.name} (${product.description})`,\n packingType: oi.packingType,\n batchId: oi.batchId,\n releaseQty: oi.releaseQty,\n releaseUomValue: oi.releaseUomValue,\n remark: oi.remark,\n crossDocking: oi.crossDocking,\n pallet: ''\n }\n })\n .reduce((newItem, item) => {\n var foundItem = newItem.find(\n newItem =>\n newItem.productName === item.productName &&\n newItem.batchId === item.batchId &&\n newItem.crossDocking === item.crossDocking &&\n newItem.pallet === item.pallet\n )\n if (!foundItem) {\n foundItem = {\n inventory: item.inventory,\n productId: item.productId,\n productName: item.productName,\n packingType: item.packingType,\n batchId: item.batchId,\n releaseQty: item.releaseQty,\n releaseUomValue: item.releaseUomValue,\n palletQty: 1,\n remark: item.remark,\n crossDocking: item.crossDocking,\n pallet: item.pallet\n }\n\n newItem.push(foundItem)\n return newItem\n } else {\n return newItem.map(ni => {\n if (\n ni.productName === item.productName &&\n ni.batchId === item.batchId &&\n ni.crossDocking === item.crossDocking &&\n ni.pallet === item.pallet\n ) {\n return {\n ...ni,\n palletQty: ni.palletQty + 1,\n releaseQty: ni.releaseQty + item.releaseQty,\n releaseUomValue: ni.releaseUomValue + item.releaseUomValue\n }\n } else {\n return ni\n }\n })\n }\n }, [])\n\n items = items.map((prod: any) => {\n return {\n ...prod,\n systemRemark: prod?.remark\n ? prod.remark\n : prod.crossDocking\n ? prod.pallet === ''\n ? `${prod.palletQty} PALLET(S) [C/D]`\n : `${prod.palletQty} PALLET(S) (${prod.pallet}) [C/D]`\n : prod.pallet === ''\n ? `${prod.palletQty} PALLET(S)`\n : `${prod.palletQty} PALLET(S) (${prod.pallet})`\n }\n })\n\n return { items, total }\n }\n\n @Query(returns => DeliveryOrderList)\n async deliveryOrderReport(@Ctx() context: any, @Args() params: ListParam): Promise<DeliveryOrderList> {\n try {\n const { domain, user }: { domain: Domain; user: User } = context.state\n\n const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId')\n if (!bizplaceFilter) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n const releaseGoodParam = params.filters.find(param => param.name === 'releaseGoodNo')\n if (releaseGoodParam) {\n let arrFilters = []\n params.filters.splice(\n params.filters.findIndex(item => item.name == 'releaseGoodNo'),\n 1\n )\n arrFilters.push({ ...releaseGoodParam, name: 'name' })\n\n const foundReleaseGoods: ReleaseGood[] = await getRepository(ReleaseGood).find({\n ...convertListParams({ filters: arrFilters })\n })\n\n if (foundReleaseGoods && foundReleaseGoods.length) {\n params.filters.push({\n name: 'releaseGoodId',\n operator: 'in',\n value: foundReleaseGoods.map((releaseGood: ReleaseGood) => releaseGood.id),\n relation: false\n })\n }\n }\n\n const tzOffsetIdx = params.filters.findIndex(param => param.name === 'tzoffset')\n let tzOffset = 0\n if (tzOffsetIdx >= 0) {\n tzOffset = params.filters[tzOffsetIdx].value\n params.filters.splice(tzOffsetIdx, 1)\n }\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n let refNoFilter = params.filters.find(x => x.name == 'refNo')\n let refNo2Filter = params.filters.find(x => x.name == 'refNo2')\n let refNo3Filter = params.filters.find(x => x.name == 'refNo3')\n\n params.filters = params.filters.filter(x => x.name != 'refNo' && x.name != 'refNo2' && x.name != 'refNo3')\n\n const qb: any = getRepository(DeliveryOrder).createQueryBuilder('do')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 99999)', 'rank')\n qb.leftJoinAndSelect('do.domain', 'domain')\n qb.leftJoinAndSelect('do.bizplace', 'bizplace')\n qb.leftJoinAndSelect('do.releaseGood', 'releaseGood')\n qb.leftJoinAndSelect('do.transportDriver', 'td')\n qb.leftJoinAndSelect('do.transportVehicle', 'th')\n qb.leftJoinAndSelect('do.orderInventories', 'oi')\n qb.leftJoinAndSelect('oi.inventory', 'inv')\n qb.leftJoinAndSelect('inv.product', 'prd')\n qb.leftJoinAndSelect('do.creator', 'creator')\n qb.leftJoinAndSelect('do.updater', 'updater')\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'DELIVERY_STATUS'`)\n },\n 'cc',\n 'cc.status = do.status'\n )\n\n if (refNoFilter?.value) {\n qb.andWhere('releaseGood.ref_no ilike :refNo', { refNo: refNoFilter.value })\n }\n if (refNo2Filter?.value) {\n qb.andWhere('releaseGood.ref_no_2 ilike :refNo2', { refNo2: refNo2Filter.value })\n }\n if (refNo3Filter?.value) {\n qb.andWhere('releaseGood.ref_no_3 ilike :refNo3', { refNo3: refNo3Filter.value })\n }\n\n const arrChildSortData = ['refNo', 'refNo2', 'refNo3']\n const arrNameSortData = ['bizplace', 'releaseGood', 'updater']\n const sort = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0\n ? 'releaseGood.' + sort.name\n : arrNameSortData.indexOf(sort.name) >= 0\n ? sort.name + '.name'\n : 'do.' + sort.name]: sort.desc ? 'DESC' : 'ASC'\n }),\n params.sortings.length < 1 ? { rank: 'ASC', 'do.createdAt': 'DESC' } : {}\n )\n\n qb.orderBy(sort)\n\n const [items, total] = await qb.getManyAndCount()\n return { items, total }\n } catch (error) {\n debug('deliveryOrders', error.toString())\n throw error\n }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() deliveryOrder: DeliveryOrder): Promise<Domain> {\n return await getRepository(Domain).findOne(deliveryOrder.domainId)\n }\n\n @FieldResolver(type => User)\n async creator(@Root() deliveryOrder: DeliveryOrder): Promise<User> {\n return await getRepository(User).findOne(deliveryOrder.creatorId)\n }\n\n @FieldResolver(type => User)\n async updater(@Root() deliveryOrder: DeliveryOrder): Promise<User> {\n return await getRepository(User).findOne(deliveryOrder.updaterId)\n }\n}\n\nexport async function deliveryOrderByReleaseGood(releaseGood: ReleaseGood, trxMgr?: EntityManager): Promise<any> {\n const doRepo: Repository<DeliveryOrder> = trxMgr?.getRepository(DeliveryOrder) || getRepository(DeliveryOrder)\n const oiRepo: Repository<OrderInventory> = trxMgr?.getRepository(OrderInventory) || getRepository(OrderInventory)\n\n let [items, total] = await doRepo.findAndCount({\n where: { releaseGood },\n relations: ['domain', 'bizplace', 'releaseGood', 'transportDriver', 'transportVehicle', 'creator', 'updater']\n })\n\n items = await Promise.all(\n items.map(async (deliveryOrder: DeliveryOrder) => {\n return {\n ...deliveryOrder,\n truck: deliveryOrder?.truckNo || deliveryOrder.transportVehicle?.name || null,\n targetInventories: await oiRepo.find({\n where: { deliveryOrder },\n relations: ['domain', 'bizplace', 'releaseGood', 'inventory']\n })\n }\n })\n )\n\n return {\n items,\n total\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-order-types.js","sourceRoot":"","sources":["../../../server/service/delivery-order/delivery-order-types.ts"],"names":[],"mappings":"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","sourcesContent":["import { ObjectRef } from '@things-factory/shell'\nimport { Field, Float, ID, InputType, Int, ObjectType } from 'type-graphql'\nimport { DeliveryOrder } from './delivery-order'\n\n@ObjectType()\nexport class DeliveryOrderList {\n @Field(type => [DeliveryOrder], { nullable: true })\n items: DeliveryOrder[]\n\n @Field(type => Int, { nullable: true })\n total: number\n}\n\n@InputType()\nexport class NewDeliveryOrder {\n @Field({ nullable: true })\n cargoType: string\n\n @Field({ nullable: true })\n contactCompany: string\n\n @Field({ nullable: true })\n contactEmail: string\n\n @Field({ nullable: true })\n contactName: string\n\n @Field({ nullable: true })\n contactPhone: string\n\n @Field({ nullable: true })\n contactPointRefId: string\n\n @Field({ nullable: true })\n contactType: string\n @Field({ nullable: true })\n deliveryDate: string\n @Field({ nullable: true })\n deliveryDateTime: string\n @Field({ nullable: true })\n description: string\n @Field({ nullable: true })\n from: string\n\n @Field(type => Float, { nullable: true })\n loadWeight: number\n\n @Field({ nullable: true })\n looseItem: Boolean\n\n @Field({ nullable: true })\n name: string\n\n @Field({ nullable: true })\n otherBillingAddress: string\n\n @Field({ nullable: true })\n otherDestination: string\n\n @Field({ nullable: true })\n otherDriver: string\n\n @Field({ nullable: true })\n ownCollection: Boolean\n\n @Field(type => Int, { nullable: true })\n palletQty: number\n @Field({ nullable: true })\n refNo: string\n\n @Field({ nullable: true })\n status: string\n\n @Field({ nullable: true })\n telNo: string\n\n @Field({ nullable: true })\n to: string\n\n @Field({ nullable: true })\n transportDriver: string\n\n @Field({ nullable: true })\n transportVehicle: string\n\n @Field({ nullable: true })\n truckNo: string\n\n @Field({ nullable: true })\n urgency: Boolean\n\n @Field({ nullable: true })\n remark: string\n}\n\n@InputType()\nexport class GenerateDeliveryOrder {\n @Field({ nullable: true })\n name: string\n\n @Field({ nullable: true })\n from: string\n\n @Field({ nullable: true })\n to: string\n\n @Field(type => Float, { nullable: false })\n loadWeight: number\n\n @Field({ nullable: true })\n urgency: Boolean\n\n @Field({ nullable: true })\n cargoType: string\n\n @Field({ nullable: true })\n ownCollection: Boolean\n\n @Field({ nullable: true })\n truckNo: string\n\n @Field({ nullable: true })\n refNo: string\n\n @Field({ nullable: true })\n looseItem: Boolean\n\n @Field()\n deliveryDate: string\n\n @Field({ nullable: true })\n deliveryDateTime: string\n\n @Field({ nullable: true })\n telNo: string\n\n @Field({ nullable: true })\n palletQty: string\n\n @Field({ nullable: true })\n status: string\n\n @Field({ nullable: true })\n description: string\n}\n\n@InputType()\nexport class DeliveryOrderPatch {\n @Field(type => ID, { nullable: true })\n id: string\n\n @Field({ nullable: true })\n name: string\n\n @Field({ nullable: true })\n truckNo: string\n\n @Field({ nullable: true })\n from: string\n\n @Field({ nullable: true })\n to: string\n\n @Field({ nullable: true })\n contactPointRefId: string\n\n @Field({ nullable: true })\n refNo: string\n\n @Field(type => Float, { nullable: true })\n loadWeight: number\n\n @Field({ nullable: true })\n contactName: string\n\n @Field({ nullable: true })\n contactPhone: string\n\n @Field({ nullable: true })\n contactEmail: string\n\n @Field({ nullable: true })\n contactCompany: string\n\n @Field({ nullable: true })\n contactType: string\n\n @Field({ nullable: true })\n urgency: Boolean\n\n @Field({ nullable: true })\n ownCollection: Boolean\n\n @Field({ nullable: true })\n contactPoint: string\n\n @Field({ nullable: true })\n cargoType: string\n\n @Field({ nullable: true })\n otherDriver: string\n\n @Field({ nullable: true })\n palletQty: string\n\n @Field({ nullable: true })\n ownDriver: string\n\n @Field({ nullable: true })\n otherTruck: string\n\n @Field({ nullable: true })\n ownTruck: string\n\n @Field({ nullable: true })\n otherDestination: string\n\n @Field({ nullable: true })\n billingAddress: string\n\n @Field({ nullable: true })\n deliveryDate: string\n\n @Field({ nullable: true })\n deliveryDateTime: string\n\n @Field({ nullable: true })\n looseItem: Boolean\n\n @Field(type => ObjectRef, { nullable: true })\n transportDriver: ObjectRef\n\n @Field(type => ObjectRef, { nullable: true })\n transportVehicle: ObjectRef\n\n @Field({ nullable: true })\n driverName: string\n\n @Field({ nullable: true })\n remark: string\n\n @Field({ nullable: true })\n telNo: string\n\n @Field({ nullable: true })\n status: string\n\n @Field({ nullable: true })\n reusablePallet: string\n\n @Field({ nullable: true })\n description: string\n}\n"]}
1
+ {"version":3,"file":"delivery-order-types.js","sourceRoot":"","sources":["../../../server/service/delivery-order/delivery-order-types.ts"],"names":[],"mappings":";;;;;AAAA,iDAAiD;AACjD,+CAA2E;AAC3E,qDAAgD;AAGzC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAM7B,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,8BAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC7B;AAEtB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC1B;AALF,iBAAiB;IAD7B,IAAA,yBAAU,GAAE;GACA,iBAAiB,CAM7B;AANY,8CAAiB;AASvB,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CA+E5B,CAAA;AA9EC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACJ;AAEtB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACP;AAEnB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACD;AAEzB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACP;AACnB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACN;AACpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACF;AACxB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACP;AACnB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACd;AAEZ;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACvB;AAElB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,OAAO;mDAAA;AAElB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACd;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6DACC;AAE3B;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACF;AAExB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACP;AAEnB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACX,OAAO;uDAAA;AAEtB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACtB;AACjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACZ;AAEd;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CAChB;AAEV;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACH;AAEvB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACF;AAExB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACX;AAEf;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjB,OAAO;iDAAA;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACZ;AA9EH,gBAAgB;IAD5B,IAAA,wBAAS,GAAE;GACC,gBAAgB,CA+E5B;AA/EY,4CAAgB;AAkFtB,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CAgDjC,CAAA;AA/CC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACd;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACd;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAChB;AAEV;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;yDACxB;AAElB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjB,OAAO;sDAAA;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACX,OAAO;4DAAA;AAEtB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACX;AAEf;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,OAAO;wDAAA;AAElB;IAAC,IAAA,oBAAK,GAAE;;2DACY;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+DACF;AAExB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACZ;AAEd;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACP;AA/CR,qBAAqB;IADjC,IAAA,wBAAS,GAAE;GACC,qBAAqB,CAgDjC;AAhDY,sDAAqB;AAmD3B,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAyG9B,CAAA;AAxGC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CAC5B;AAEV;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACd;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACX;AAEf;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACd;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CAChB;AAEV;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6DACD;AAEzB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACb;AAEb;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACvB;AAElB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACP;AAEnB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACJ;AAEtB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACP;AAEnB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjB,OAAO;mDAAA;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACX,OAAO;yDAAA;AAEtB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACP;AAEnB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACR;AAElB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACF;AAExB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACJ;AAEtB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACF;AAExB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,OAAO;qDAAA;AAElB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0DAC5B,iBAAS,oBAAT,iBAAS;2DAAA;AAE1B;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0DAC3B,iBAAS,oBAAT,iBAAS;4DAAA;AAE3B;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACR;AAElB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACZ;AAEd;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACZ;AAEd;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACJ;AAEtB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACP;AAxGR,kBAAkB;IAD9B,IAAA,wBAAS,GAAE;GACC,kBAAkB,CAyG9B;AAzGY,gDAAkB","sourcesContent":["import { ObjectRef } from '@things-factory/shell'\nimport { Field, Float, ID, InputType, Int, ObjectType } from 'type-graphql'\nimport { DeliveryOrder } from './delivery-order'\n\n@ObjectType()\nexport class DeliveryOrderList {\n @Field(type => [DeliveryOrder], { nullable: true })\n items: DeliveryOrder[]\n\n @Field(type => Int, { nullable: true })\n total: number\n}\n\n@InputType()\nexport class NewDeliveryOrder {\n @Field({ nullable: true })\n cargoType: string\n\n @Field({ nullable: true })\n contactCompany: string\n\n @Field({ nullable: true })\n contactEmail: string\n\n @Field({ nullable: true })\n contactName: string\n\n @Field({ nullable: true })\n contactPhone: string\n\n @Field({ nullable: true })\n contactPointRefId: string\n\n @Field({ nullable: true })\n contactType: string\n @Field({ nullable: true })\n deliveryDate: string\n @Field({ nullable: true })\n deliveryDateTime: string\n @Field({ nullable: true })\n description: string\n @Field({ nullable: true })\n from: string\n\n @Field(type => Float, { nullable: true })\n loadWeight: number\n\n @Field({ nullable: true })\n looseItem: Boolean\n\n @Field({ nullable: true })\n name: string\n\n @Field({ nullable: true })\n otherBillingAddress: string\n\n @Field({ nullable: true })\n otherDestination: string\n\n @Field({ nullable: true })\n otherDriver: string\n\n @Field({ nullable: true })\n ownCollection: Boolean\n\n @Field(type => Int, { nullable: true })\n palletQty: number\n @Field({ nullable: true })\n refNo: string\n\n @Field({ nullable: true })\n status: string\n\n @Field({ nullable: true })\n telNo: string\n\n @Field({ nullable: true })\n to: string\n\n @Field({ nullable: true })\n transportDriver: string\n\n @Field({ nullable: true })\n transportVehicle: string\n\n @Field({ nullable: true })\n truckNo: string\n\n @Field({ nullable: true })\n urgency: Boolean\n\n @Field({ nullable: true })\n remark: string\n}\n\n@InputType()\nexport class GenerateDeliveryOrder {\n @Field({ nullable: true })\n name: string\n\n @Field({ nullable: true })\n from: string\n\n @Field({ nullable: true })\n to: string\n\n @Field(type => Float, { nullable: false })\n loadWeight: number\n\n @Field({ nullable: true })\n urgency: Boolean\n\n @Field({ nullable: true })\n cargoType: string\n\n @Field({ nullable: true })\n ownCollection: Boolean\n\n @Field({ nullable: true })\n truckNo: string\n\n @Field({ nullable: true })\n refNo: string\n\n @Field({ nullable: true })\n looseItem: Boolean\n\n @Field()\n deliveryDate: string\n\n @Field({ nullable: true })\n deliveryDateTime: string\n\n @Field({ nullable: true })\n telNo: string\n\n @Field({ nullable: true })\n palletQty: string\n\n @Field({ nullable: true })\n status: string\n\n @Field({ nullable: true })\n description: string\n}\n\n@InputType()\nexport class DeliveryOrderPatch {\n @Field(type => ID, { nullable: true })\n id: string\n\n @Field({ nullable: true })\n name: string\n\n @Field({ nullable: true })\n truckNo: string\n\n @Field({ nullable: true })\n from: string\n\n @Field({ nullable: true })\n to: string\n\n @Field({ nullable: true })\n contactPointRefId: string\n\n @Field({ nullable: true })\n refNo: string\n\n @Field(type => Float, { nullable: true })\n loadWeight: number\n\n @Field({ nullable: true })\n contactName: string\n\n @Field({ nullable: true })\n contactPhone: string\n\n @Field({ nullable: true })\n contactEmail: string\n\n @Field({ nullable: true })\n contactCompany: string\n\n @Field({ nullable: true })\n contactType: string\n\n @Field({ nullable: true })\n urgency: Boolean\n\n @Field({ nullable: true })\n ownCollection: Boolean\n\n @Field({ nullable: true })\n contactPoint: string\n\n @Field({ nullable: true })\n cargoType: string\n\n @Field({ nullable: true })\n otherDriver: string\n\n @Field({ nullable: true })\n palletQty: string\n\n @Field({ nullable: true })\n ownDriver: string\n\n @Field({ nullable: true })\n otherTruck: string\n\n @Field({ nullable: true })\n ownTruck: string\n\n @Field({ nullable: true })\n otherDestination: string\n\n @Field({ nullable: true })\n billingAddress: string\n\n @Field({ nullable: true })\n deliveryDate: string\n\n @Field({ nullable: true })\n deliveryDateTime: string\n\n @Field({ nullable: true })\n looseItem: Boolean\n\n @Field(type => ObjectRef, { nullable: true })\n transportDriver: ObjectRef\n\n @Field(type => ObjectRef, { nullable: true })\n transportVehicle: ObjectRef\n\n @Field({ nullable: true })\n driverName: string\n\n @Field({ nullable: true })\n remark: string\n\n @Field({ nullable: true })\n telNo: string\n\n @Field({ nullable: true })\n status: string\n\n @Field({ nullable: true })\n reusablePallet: string\n\n @Field({ nullable: true })\n description: string\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-order.js","sourceRoot":"","sources":["../../../server/service/delivery-order/delivery-order.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n ManyToOne,\n OneToMany,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { Domain } from '@things-factory/shell'\nimport { TransportDriver, TransportVehicle } from '@things-factory/transport-base'\n\nimport { OrderInventory } from '../order-inventory/order-inventory'\nimport { ReleaseGood } from '../release-good/release-good'\nimport { RetailReplenishmentOrder } from '../retail-replenishment-order/retail-replenishment-order'\nimport { TransferOrder } from '../transfer-order/transfer-order'\n\n@Entity()\n@Index('ix_delivery-order_0', (deliveryOrder: DeliveryOrder) => [deliveryOrder.domain, deliveryOrder.name], {\n unique: true\n})\n@Index('ix_delivery-order_1', (deliveryOrder: DeliveryOrder) => [deliveryOrder.domain, deliveryOrder.bizplace])\n@Index('ix_delivery-order_2', (deliveryOrder: DeliveryOrder) => [deliveryOrder.domain, deliveryOrder.releaseGood])\n@ObjectType()\nexport class DeliveryOrder {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true })\n domain: Domain\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.domain)\n domainId: string\n\n @ManyToOne(type => Bizplace)\n @Field(type => Bizplace, { nullable: true })\n bizplace: Bizplace\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.bizplace)\n bizplaceId: string\n\n @Column()\n @Field()\n name: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n from: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n to: string\n\n @Column({ type: 'uuid', nullable: true })\n @Field({ nullable: true })\n contactPointRefId: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n truckNo: string\n\n @Field({ nullable: true })\n truck?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n ownCollection: Boolean\n\n @ManyToOne(type => ReleaseGood)\n @Field(type => ReleaseGood, { nullable: true })\n releaseGood: ReleaseGood\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.releaseGood)\n releaseGoodId: string\n\n @ManyToOne(type => TransferOrder)\n @Field(type => TransferOrder, { nullable: true })\n transferOrder: TransferOrder\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.transferOrder)\n transferOrderId: string\n\n @ManyToOne(type => RetailReplenishmentOrder)\n @Field(type => RetailReplenishmentOrder, { nullable: true })\n retailReplenishmentOrder: RetailReplenishmentOrder\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.retailReplenishmentOrder)\n retailReplenishmentOrderId: string\n\n @OneToMany(type => OrderInventory, orderInventory => orderInventory.deliveryOrder)\n @Field(type => [OrderInventory], { nullable: true })\n orderInventories: OrderInventory[]\n\n @Field(type => [OrderInventory], { nullable: true })\n targetInventories?: OrderInventory[]\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n looseItem: Boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n deliveryDate: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n deliveryDateTime: Date\n\n @Column('float', { nullable: true })\n @Field({ nullable: true })\n loadWeight: Number\n\n @ManyToOne(type => TransportDriver)\n @Field(type => TransportDriver, { nullable: true })\n transportDriver: TransportDriver\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.transportDriver)\n transportDriverId: string\n\n @ManyToOne(type => TransportVehicle)\n @Field(type => TransportVehicle, { nullable: true })\n transportVehicle: TransportVehicle\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.transportVehicle)\n transportVehicleId: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n cargoType: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n urgency: Boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n telNo: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n refNo: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n otherDriver: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n palletQty: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n remark: string\n\n @Column()\n @Field()\n status: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description: string\n\n @CreateDateColumn()\n @Field()\n createdAt: Date\n\n @UpdateDateColumn()\n @Field()\n updatedAt: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n reusablePallet: string\n\n @ManyToOne(type => User)\n @Field(type => User, { nullable: true })\n creator: User\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.creator)\n creatorId: string\n\n @ManyToOne(type => User)\n @Field(type => User, { nullable: true })\n updater: User\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.updater)\n updaterId: string\n\n @Field(type => [Attachment], { nullable: true })\n attachments: Attachment[]\n}\n"]}
1
+ {"version":3,"file":"delivery-order.js","sourceRoot":"","sources":["../../../server/service/delivery-order/delivery-order.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n ManyToOne,\n OneToMany,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { Domain } from '@things-factory/shell'\nimport { TransportDriver, TransportVehicle } from '@things-factory/transport-base'\n\nimport { OrderInventory } from '../order-inventory/order-inventory'\nimport { ReleaseGood } from '../release-good/release-good'\nimport { RetailReplenishmentOrder } from '../retail-replenishment-order/retail-replenishment-order'\nimport { TransferOrder } from '../transfer-order/transfer-order'\n\n@Entity()\n@Index('ix_delivery-order_0', (deliveryOrder: DeliveryOrder) => [deliveryOrder.domain, deliveryOrder.name], {\n unique: true\n})\n@Index('ix_delivery-order_1', (deliveryOrder: DeliveryOrder) => [deliveryOrder.domain, deliveryOrder.bizplace])\n@Index('ix_delivery-order_2', (deliveryOrder: DeliveryOrder) => [deliveryOrder.domain, deliveryOrder.releaseGood])\n@ObjectType()\nexport class DeliveryOrder {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true })\n domain: Domain\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.domain)\n domainId: string\n\n @ManyToOne(type => Bizplace)\n @Field(type => Bizplace, { nullable: true })\n bizplace: Bizplace\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.bizplace)\n bizplaceId: string\n\n @Column()\n @Field()\n name: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n from: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n to: string\n\n @Column({ type: 'uuid', nullable: true })\n @Field({ nullable: true })\n contactPointRefId: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n truckNo: string\n\n @Field({ nullable: true })\n truck?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n ownCollection: Boolean\n\n @ManyToOne(type => ReleaseGood)\n @Field(type => ReleaseGood, { nullable: true })\n releaseGood: ReleaseGood\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.releaseGood)\n releaseGoodId: string\n\n @ManyToOne(type => TransferOrder)\n @Field(type => TransferOrder, { nullable: true })\n transferOrder: TransferOrder\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.transferOrder)\n transferOrderId: string\n\n @ManyToOne(type => RetailReplenishmentOrder)\n @Field(type => RetailReplenishmentOrder, { nullable: true })\n retailReplenishmentOrder: RetailReplenishmentOrder\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.retailReplenishmentOrder)\n retailReplenishmentOrderId: string\n\n @OneToMany(type => OrderInventory, orderInventory => orderInventory.deliveryOrder)\n @Field(type => [OrderInventory], { nullable: true })\n orderInventories: OrderInventory[]\n\n @Field(type => [OrderInventory], { nullable: true })\n targetInventories?: OrderInventory[]\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n looseItem: Boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n deliveryDate: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n deliveryDateTime: Date\n\n @Column('float', { nullable: true })\n @Field({ nullable: true })\n loadWeight: Number\n\n @ManyToOne(type => TransportDriver)\n @Field(type => TransportDriver, { nullable: true })\n transportDriver: TransportDriver\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.transportDriver)\n transportDriverId: string\n\n @ManyToOne(type => TransportVehicle)\n @Field(type => TransportVehicle, { nullable: true })\n transportVehicle: TransportVehicle\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.transportVehicle)\n transportVehicleId: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n cargoType: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n urgency: Boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n telNo: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n refNo: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n otherDriver: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n palletQty: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n remark: string\n\n @Column()\n @Field()\n status: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description: string\n\n @CreateDateColumn()\n @Field()\n createdAt: Date\n\n @UpdateDateColumn()\n @Field()\n updatedAt: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n reusablePallet: string\n\n @ManyToOne(type => User)\n @Field(type => User, { nullable: true })\n creator: User\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.creator)\n creatorId: string\n\n @ManyToOne(type => User)\n @Field(type => User, { nullable: true })\n updater: User\n\n @RelationId((deliveryOrder: DeliveryOrder) => deliveryOrder.updater)\n updaterId: string\n\n @Field(type => [Attachment], { nullable: true })\n attachments: Attachment[]\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"draft-release-good-mutation.js","sourceRoot":"","sources":["../../../server/service/draft-release-good/draft-release-good-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, getConnection, getRepository, In, IsNull, Repository } from 'typeorm'\n\nimport { Attachment, createAttachments, deleteAttachmentsByRef } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getPermittedBizplaces } from '@things-factory/biz-base'\nimport { generateId } from '@things-factory/id-rule-base'\nimport { Product, ProductBundle, ProductDetail } from '@things-factory/product-base'\nimport { Setting } from '@things-factory/setting-base'\nimport { Domain } from '@things-factory/shell'\n\n// import { Location } from '@things-factory/warehouse-base'\nimport { DraftReleaseGood, DraftReleaseGoodPatch, NewDraftReleaseGood, OrderProduct } from '../'\nimport {\n ATTACHMENT_TYPE,\n DRAFT_RELEASE_ORDER_STATUS,\n ORDER_NUMBER_RULE_TYPE,\n ORDER_NUMBER_SETTING_KEY,\n ORDER_STATUS\n} from '../../constants'\nimport { ValidationError } from '../../errors'\nimport { InventoryUtil, OrderNoGenerator } from '../../utils'\nimport { OrderProductPatch } from '../order-product/order-product-types'\nimport { ReleaseGood } from '../release-good/release-good'\nimport { bulkGenerateReleaseGood, confirmReleaseGood } from '../release-good/release-good-mutation'\nimport { bulkReleaseGoodsAvailableItemsFunction } from '../release-good/release-good-query'\nimport { ShippingOrder } from '../shipping-order/shipping-order'\nimport { ShippingOrderPatch } from '../shipping-order/shipping-order-types'\n// import {\n// checkArrivedNoticeFunction,\n// confirmArrivalNoticeFunction,\n// generateArrivalNoticeFunction,\n// receiveArrivalNoticeFunction\n// } from '../arrival-notice/arrival-notice-mutation'\nimport { getDraftReleaseGoodFunction } from './draft-release-good-query'\n\n@Resolver(DraftReleaseGood)\nexport class DraftReleaseGoodMutation {\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => DraftReleaseGood)\n async upsertDraftReleaseGood(\n @Ctx() context: any,\n @Arg('draftReleaseGood', type => DraftReleaseGoodPatch) draftReleaseGood: DraftReleaseGoodPatch,\n @Arg('orderProducts', type => [OrderProductPatch]) orderProducts: [OrderProductPatch],\n @Arg('files', type => [GraphQLUpload], { nullable: true }) files?: FileUpload[],\n @Arg('shippingOrder', type => ShippingOrderPatch, { nullable: true }) shippingOrder?: ShippingOrderPatch\n ): Promise<DraftReleaseGood> {\n try {\n const { tx }: { tx: EntityManager } = context.state\n const createdDraftReleaseGood: DraftReleaseGood = await upsertDraftReleaseGoodFunction(\n null,\n draftReleaseGood,\n orderProducts,\n shippingOrder,\n files,\n context,\n tx\n )\n\n return createdDraftReleaseGood\n } catch (error) {\n throw error\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DraftReleaseGood, { description: 'To create new DraftReleaseGood' })\n async createDraftReleaseGood(\n @Arg('draftReleaseGood', type => NewDraftReleaseGood, { nullable: true }) draftReleaseGood: NewDraftReleaseGood,\n @Ctx() context: any\n ): Promise<DraftReleaseGood> {\n const { domain, user, tx } = context.state\n\n let drg = await tx.getRepository(DraftReleaseGood).save({\n ...draftReleaseGood,\n domain,\n status: 'INSUFFICIENT',\n creator: user,\n updater: user\n })\n\n // add order products\n\n return drg\n }\n\n @Directive('@transaction')\n @Mutation(returns => DraftReleaseGood, { description: 'To modify DraftReleaseGood information' })\n async updateDraftReleaseGood(\n @Arg('id') id: string,\n @Arg('patch', type => DraftReleaseGoodPatch) patch: DraftReleaseGoodPatch,\n @Ctx() context: any\n ): Promise<DraftReleaseGood> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(DraftReleaseGood)\n const draftReleaseGood = await repository.findOne({\n where: { domain, id }\n })\n\n return await repository.save({\n ...draftReleaseGood,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => [DraftReleaseGood], { description: \"To modify multiple DraftReleaseGoods' information\" })\n async updateMultipleDraftReleaseGood(\n @Arg('patches', type => [DraftReleaseGoodPatch]) patches: DraftReleaseGoodPatch[],\n @Ctx() context: any\n ): Promise<DraftReleaseGood[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const draftReleaseGoodRepo = tx.getRepository(DraftReleaseGood)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await draftReleaseGoodRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const draftReleaseGood = await draftReleaseGoodRepo.findOne(newRecord.id)\n\n const result = await draftReleaseGoodRepo.save({\n ...draftReleaseGood,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete DraftReleaseGood' })\n async deleteDraftReleaseGood(@Arg('id') id: string, @Ctx() context: any): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(DraftReleaseGood).delete({ domain, id })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple draftReleaseGoods' })\n async deleteDraftReleaseGoods(@Arg('ids', type => [String]) ids: string[], @Ctx() context: any): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(DraftReleaseGood).delete({\n domain,\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To generate Release Goods from Draft' })\n async generateReleaseGoodsFromDraft(\n @Ctx() context: any,\n @Arg('ids', type => [String]) ids: string[]\n // @Arg('rawReleaseGoods', type => [NewReleaseGood], { nullable: true }) rawReleaseGoods: NewReleaseGood[],\n // @Arg('bizplaceId', type => String) bizplaceId: string\n ): Promise<boolean> {\n const { domain, user, tx } = context.state\n\n const updatableDraftOrders = await tx.getRepository(DraftReleaseGood).find({\n where: {\n domain,\n id: In(ids),\n status: DRAFT_RELEASE_ORDER_STATUS.DRAFT\n },\n relations: [\n 'orderProducts',\n 'orderProducts.product',\n 'orderProducts.productBundle',\n 'shippingOrder',\n 'bizplace',\n 'domain',\n 'creator',\n 'updater'\n ]\n })\n if (updatableDraftOrders.length > 0) {\n let createdReleaseGoods: ReleaseGood[] = []\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n const roNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain,\n name: ORDER_NUMBER_SETTING_KEY.RO_NUMBER_RULE\n }\n })\n\n for (let index = 0; index < updatableDraftOrders.length; index++) {\n const draftOrder = updatableDraftOrders[index]\n\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (draftOrder?.bizplace?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne(draftOrder.bizplace.id, {\n relations: ['company', 'company.domain']\n })\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: companyDomain } })\n } else {\n return false\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n\n let productInventory = await InventoryUtil.bizplaceProductInventory(\n bizplaces,\n {\n filters: [\n {\n name: 'productId',\n operator: 'in',\n value: [\n ...draftOrder.orderProducts\n .filter(itm => itm?.product)\n .map(itm => {\n return itm.product.id\n }),\n ...draftOrder.orderProducts\n .filter(itm => itm?.productBundle)\n .map(itm => {\n return itm.productBundle.id\n })\n ]\n }\n ]\n },\n context,\n tx\n )\n\n draftOrder.orderProducts = draftOrder.orderProducts.map(itm => {\n let foundProductInv = productInventory.items.find(\n i =>\n (i.productId == itm?.product?.id || i.productId == itm?.productBundle?.id) &&\n i.packingType == itm.packingType &&\n i.packingSize == itm.packingSize &&\n i.uom == itm.uom &&\n itm.releaseQty <= i.remainQty\n )\n return { ...itm, status: foundProductInv ? 'suffice' : 'insufficient' }\n })\n\n let insufficient = draftOrder.orderProducts.find(op => op.status == 'insufficient')\n\n if (!insufficient) {\n //create RO\n let releaseGood = { ...draftOrder }\n delete releaseGood.id\n delete releaseGood.name\n delete releaseGood.createdAt\n delete releaseGood.createdBy\n delete releaseGood.updatedAt\n delete releaseGood.updatedBy\n\n let orderInventories = []\n\n for (let index = 0; index < draftOrder.orderProducts.length; index++) {\n const itm = draftOrder.orderProducts[index]\n let data = []\n if (itm.productBundle) {\n let bundle = await tx.getRepository(ProductBundle).findOne({\n where: { id: itm.productBundle.id },\n relations: [\n 'productBundleSettings',\n 'productBundleSettings.productDetail',\n 'productBundleSettings.product'\n ]\n })\n\n for (let index2 = 0; index2 < bundle.productBundleSettings.length; index2++) {\n const objProductBundleSetting = bundle.productBundleSettings[index2]\n data.push({\n sku: objProductBundleSetting.product.sku,\n packing_type: objProductBundleSetting.productDetail.packingType,\n packing_size: objProductBundleSetting.productDetail.packingSize,\n uom: objProductBundleSetting.productDetail.uom,\n release_qty: objProductBundleSetting.bundleQty * itm.releaseQty,\n assignedQty: undefined,\n assignedUomValue: undefined,\n releaseUomValue: undefined\n })\n }\n } else {\n data = [\n {\n sku: itm.product.sku,\n packing_type: itm.packingType,\n packing_size: itm.packingSize,\n uom: itm.uom,\n release_qty: itm.releaseQty,\n assignedQty: undefined,\n assignedUomValue: undefined,\n releaseUomValue: undefined\n }\n ]\n }\n\n data.forEach(data => {\n let existingOI = orderInventories.find(\n itm =>\n itm.sku == data.sku &&\n itm.packing_type == data.packing_type &&\n itm.packing_size == data.packing_size &&\n itm.uom == data.uom\n )\n\n if (existingOI) {\n existingOI.release_qty = existingOI.release_qty + data.release_qty\n } else {\n orderInventories.push(data)\n }\n })\n }\n try {\n await getConnection().transaction(async (childTx: EntityManager) => {\n let availableItems: any[] = await bulkReleaseGoodsAvailableItemsFunction(\n orderInventories,\n draftOrder.bizplace.id,\n context,\n childTx\n )\n\n if (availableItems.some(item => !item.release_qty || item.release_qty > item.assignedQty))\n throw new ValidationError({\n ...ValidationError.ERROR_CODES.INSUFFICIENT_STOCK,\n detail: { data: JSON.stringify(availableItems) }\n })\n\n // update orderInventories if availableItems are valid\n releaseGood.orderInventories = availableItems.map(itm => {\n return {\n ...itm,\n releaseQty: itm.release_qty\n }\n })\n\n let createdReleaseGood: ReleaseGood = await bulkGenerateReleaseGood(\n releaseGood,\n releaseGood.bizplace.id,\n roNoSetting,\n domain,\n user,\n childTx\n )\n\n await childTx\n .getRepository(DraftReleaseGood)\n .update(\n { id: draftOrder.id },\n { releaseGood: createdReleaseGood, status: DRAFT_RELEASE_ORDER_STATUS.SUBMITTED }\n )\n\n createdReleaseGood = await confirmReleaseGood(createdReleaseGood.name, context, childTx)\n })\n } catch (error) {\n console.error(error)\n }\n }\n }\n }\n\n return true\n }\n}\n\nexport async function upsertDraftReleaseGoodFunction(\n _: any,\n draftReleaseGood: any,\n orderProducts: OrderProductPatch[],\n shippingOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<DraftReleaseGood> {\n if (!draftReleaseGood.id) {\n draftReleaseGood = await createDraftReleaseGoodFunction(\n _,\n draftReleaseGood,\n orderProducts,\n shippingOrder,\n files,\n context,\n tx\n )\n } else {\n draftReleaseGood = await updateDraftReleaseGoodFunction(\n _,\n draftReleaseGood,\n orderProducts,\n shippingOrder,\n files,\n context,\n tx\n )\n }\n\n return draftReleaseGood\n}\n\nexport async function createDraftReleaseGoodFunction(\n _: any,\n draftReleaseGood: any,\n orderProducts: OrderProductPatch[],\n shippingOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<DraftReleaseGood> {\n const { domain, user }: { domain: Domain; user: User } = context.state\n\n let myBizplace: Bizplace\n let orderNo: string = ''\n let arrError: string[] = []\n\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n if (draftReleaseGood?.bizplace?.id) {\n const permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace = permittedBizplaces.find(biz => biz.id == draftReleaseGood.bizplace.id)\n\n if (!foundPermittedBizplace) throw new Error(`This user does not permitted for this company`)\n\n draftReleaseGood.bizplace = foundPermittedBizplace\n } else {\n arrError.push(`No bizplace was selected`)\n }\n\n if (arrError.length > 0) {\n throw new Error(arrError.join(', '))\n }\n\n // // find DRO number rule setting\n const droNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain,\n name: ORDER_NUMBER_SETTING_KEY.DO_NUMBER_RULE\n }\n })\n\n if (droNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.DRO_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.draftReleaseGood()\n }\n\n // // 1. Create draft release good\n const createdDraftReleaseGood: DraftReleaseGood = await tx.getRepository(DraftReleaseGood).save({\n ...draftReleaseGood,\n name: orderNo,\n status: DRAFT_RELEASE_ORDER_STATUS.DRAFT,\n domain,\n creator: user,\n updater: user\n })\n\n // // 2. Create draft release good product\n await upsertDraftReleaseGoodProducts(\n domain,\n draftReleaseGood.bizplace,\n createdDraftReleaseGood,\n orderProducts,\n user,\n tx\n )\n\n // // 3. Create Attachments\n if (files?.length) {\n const attachments: Attachment[] = files.map(attachment => {\n return {\n file: attachment,\n refType: ATTACHMENT_TYPE.DGRN,\n refBy: createdDraftReleaseGood.id,\n category: ATTACHMENT_TYPE.DGRN /* TODO use refType */\n }\n })\n await createAttachments(_, { attachments }, context)\n }\n\n return createdDraftReleaseGood\n}\n\nexport async function updateDraftReleaseGoodFunction(\n _: any,\n draftReleaseGood: any,\n orderProducts: OrderProductPatch[],\n shippingOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<DraftReleaseGood> {\n const { domain, user }: { domain: Domain; user: User } = context.state\n\n let existingDraftReleaseGood: any = await getDraftReleaseGoodFunction(_, draftReleaseGood.name, context, tx)\n\n if (draftReleaseGood?.bizplace?.id) {\n const permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace = permittedBizplaces.find(biz => biz.id == draftReleaseGood.bizplace.id)\n\n if (!foundPermittedBizplace) throw new Error(`This user does not permitted for this company`)\n\n draftReleaseGood.bizplace = foundPermittedBizplace\n }\n\n if (shippingOrder) {\n // case to update existing shippingOrder\n if (existingDraftReleaseGood.shippingOrder) {\n await tx.getRepository(ShippingOrder).update(existingDraftReleaseGood.shippingOrder.id, shippingOrder)\n } else {\n let newShippingOrder: ShippingOrder = await tx.getRepository(ShippingOrder).save({\n ...shippingOrder,\n name: OrderNoGenerator.shippingOrder(),\n domain,\n bizplace: draftReleaseGood.bizplace,\n status: ORDER_STATUS.PENDING,\n creator: user,\n updater: user\n })\n draftReleaseGood.shippingOrder = newShippingOrder\n }\n } else {\n // case to delete existing shippingOrder\n if (existingDraftReleaseGood.shippingOrder) {\n await tx.getRepository(ShippingOrder).delete(existingDraftReleaseGood.shippingOrder)\n }\n }\n\n // // 1. Update draft release good\n const updateDraftReleaseGood: DraftReleaseGood = await tx.getRepository(DraftReleaseGood).save({\n ...existingDraftReleaseGood,\n ...draftReleaseGood,\n domain,\n creator: user,\n updater: user\n })\n\n // // 2. Update draft release good product\n await upsertDraftReleaseGoodProducts(domain, draftReleaseGood.bizplace, draftReleaseGood, orderProducts, user, tx)\n\n // // 3. Remove Purchase Order Attachment\n const foundAttachments: Attachment[] = await getRepository(Attachment).find({\n where: {\n domain,\n refBy: draftReleaseGood.id,\n category: ATTACHMENT_TYPE.DGRN\n }\n })\n\n // // 4. Remove All Attachment\n if (foundAttachments?.length) {\n await deleteAttachmentsByRef(_, { refBys: foundAttachments.map(file => file.refBy) }, context)\n }\n\n // // 5. Add New Attachment\n if (files?.length > 0) {\n const attachments: Attachment[] = files.map(attachment => {\n return {\n file: attachment,\n refType: ATTACHMENT_TYPE.DGRN,\n refBy: updateDraftReleaseGood.id,\n category: ATTACHMENT_TYPE.DGRN /* TODO use refType */\n }\n })\n await createAttachments(_, { attachments }, context)\n }\n\n return existingDraftReleaseGood\n}\n\nexport async function upsertDraftReleaseGoodProducts(\n domain: Domain,\n bizplace: Bizplace,\n draftReleaseGood: DraftReleaseGood,\n orderProductsPatch: OrderProductPatch[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n try {\n let orderProducts: OrderProduct[] = []\n\n const draftReleaseGoodRepo: Repository<Product> =\n tx?.getRepository(DraftReleaseGood) || getRepository(DraftReleaseGood)\n const bizplaceRepo: Repository<Product> = tx?.getRepository(Bizplace) || getRepository(Bizplace)\n const orderProductRepo: Repository<OrderProduct> = tx?.getRepository(OrderProduct) || getRepository(OrderProduct)\n const productRepo: Repository<Product> = tx?.getRepository(Product) || getRepository(Product)\n const productBundleRepo: Repository<Product> = tx?.getRepository(ProductBundle) || getRepository(ProductBundle)\n\n draftReleaseGood = await draftReleaseGoodRepo.findOne({\n where: { id: draftReleaseGood.id },\n relations: [\n 'orderProducts',\n 'orderProducts.product',\n 'orderProducts.productBundle',\n 'orderProducts.creator',\n 'orderProducts.updater'\n ]\n })\n\n // Remove all existing order products that do not exist in current input\n let removeOP = draftReleaseGood.orderProducts.filter(\n existingOP => orderProductsPatch.filter(inOP => inOP.id == existingOP.id).length == 0\n )\n // removeOP.forEach(async op => {\n // await orderProductRepo.delete(op)\n // })\n\n if (removeOP.length > 0) await orderProductRepo.delete(removeOP.map(itm => itm.id))\n\n bizplace = await bizplaceRepo.findOne(bizplace.id, {\n relations: ['domain', 'company', 'company.domain']\n })\n\n orderProducts = await Promise.all(\n orderProductsPatch.map(async (op: any) => {\n if (!op?.id) delete op.id\n\n const customerCompanyDomain: Domain = bizplace.company.domain\n let product: Product = null\n let productBundle: ProductBundle = null\n let existingOP = draftReleaseGood.orderProducts.find(existOP => existOP.id == op.id)\n\n let updatePatch = {\n ...existingOP,\n ...op,\n domain,\n batchId: '',\n packQty: 0,\n actualPackQty: 0,\n palletQty: 0,\n actualPalletQty: 0,\n bizplace: bizplace,\n name: op?.id ? op.name : OrderNoGenerator.orderProduct(),\n draftReleaseGood: draftReleaseGood,\n status: draftReleaseGood.status,\n creator: op?.id ? op.creator : user,\n updater: user\n }\n\n if (op?.product?.id) {\n product = await productRepo.findOne({\n where: { domain: customerCompanyDomain, id: op.product.id }\n })\n updatePatch['product'] = product || undefined\n\n if (!product) {\n productBundle = await productBundleRepo.findOne({\n where: { domain: customerCompanyDomain, id: op.product.id }\n })\n updatePatch['productBundle'] = productBundle || undefined\n }\n\n if (!product && !productBundle) throw new Error(`product not found`)\n } else {\n if (existingOP) {\n product = existingOP.product\n productBundle = existingOP.productBundle\n updatePatch['product'] = existingOP.product || undefined\n updatePatch['productBundle'] = existingOP.productBundle || undefined\n } else {\n product = await productRepo.findOne({\n where: { domain: customerCompanyDomain, sku: op.product.sku, deletedAt: IsNull() },\n relations: ['productDetails']\n })\n if (product) {\n const productDetails: ProductDetail[] = product.productDetails\n let selectedProductDetail: ProductDetail[]\n if (op?.product?.packingType) {\n selectedProductDetail = productDetails.filter(pd => pd.packingType == op.product.packingType)\n } else {\n selectedProductDetail = productDetails.filter(pd => pd.isDefault)\n }\n\n product.packingType = selectedProductDetail[0].packingType\n product.primaryUnit = selectedProductDetail[0].uom\n product.primaryValue = selectedProductDetail[0].uomValue\n }\n\n updatePatch['product'] = product || undefined\n\n if (!product) {\n productBundle = await productBundleRepo.findOne({\n where: { domain: customerCompanyDomain, sku: op.product.sku }\n })\n updatePatch['productBundle'] = productBundle || undefined\n }\n\n if (!product && !productBundle) throw new Error(`product not found`)\n }\n }\n\n updatePatch['packingType'] = op?.packingType\n ? op.packingType\n : product?.packingType\n ? product.packingType\n : productBundle.packingType\n updatePatch['uom'] = op?.uom ? op.uom : product?.primaryUnit ? product.primaryUnit : 'UNIT'\n updatePatch['uomValue'] = op?.uomValue ? op.uomValue : product?.primaryValue ? product.primaryValue : 0\n\n return updatePatch\n })\n )\n\n await orderProductRepo.save(orderProducts)\n } catch (error) {\n throw error\n }\n}\n"]}
1
+ {"version":3,"file":"draft-release-good-mutation.js","sourceRoot":"","sources":["../../../server/service/draft-release-good/draft-release-good-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, getConnection, getRepository, In, IsNull, Repository } from 'typeorm'\n\nimport { Attachment, createAttachments, deleteAttachmentsByRef } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getPermittedBizplaces } from '@things-factory/biz-base'\nimport { generateId } from '@things-factory/id-rule-base'\nimport { Product, ProductBundle, ProductDetail } from '@things-factory/product-base'\nimport { Setting } from '@things-factory/setting-base'\nimport { Domain } from '@things-factory/shell'\n\n// import { Location } from '@things-factory/warehouse-base'\nimport { DraftReleaseGood, DraftReleaseGoodPatch, NewDraftReleaseGood, OrderProduct } from '../'\nimport {\n ATTACHMENT_TYPE,\n DRAFT_RELEASE_ORDER_STATUS,\n ORDER_NUMBER_RULE_TYPE,\n ORDER_NUMBER_SETTING_KEY,\n ORDER_STATUS\n} from '../../constants'\nimport { ValidationError } from '../../errors'\nimport { InventoryUtil, OrderNoGenerator } from '../../utils'\nimport { OrderProductPatch } from '../order-product/order-product-types'\nimport { ReleaseGood } from '../release-good/release-good'\nimport { bulkGenerateReleaseGood, confirmReleaseGood } from '../release-good/release-good-mutation'\nimport { bulkReleaseGoodsAvailableItemsFunction } from '../release-good/release-good-query'\nimport { ShippingOrder } from '../shipping-order/shipping-order'\nimport { ShippingOrderPatch } from '../shipping-order/shipping-order-types'\n// import {\n// checkArrivedNoticeFunction,\n// confirmArrivalNoticeFunction,\n// generateArrivalNoticeFunction,\n// receiveArrivalNoticeFunction\n// } from '../arrival-notice/arrival-notice-mutation'\nimport { getDraftReleaseGoodFunction } from './draft-release-good-query'\n\n@Resolver(DraftReleaseGood)\nexport class DraftReleaseGoodMutation {\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => DraftReleaseGood)\n async upsertDraftReleaseGood(\n @Ctx() context: any,\n @Arg('draftReleaseGood', type => DraftReleaseGoodPatch) draftReleaseGood: DraftReleaseGoodPatch,\n @Arg('orderProducts', type => [OrderProductPatch]) orderProducts: [OrderProductPatch],\n @Arg('files', type => [GraphQLUpload], { nullable: true }) files?: FileUpload[],\n @Arg('shippingOrder', type => ShippingOrderPatch, { nullable: true }) shippingOrder?: ShippingOrderPatch\n ): Promise<DraftReleaseGood> {\n try {\n const { tx }: { tx: EntityManager } = context.state\n const createdDraftReleaseGood: DraftReleaseGood = await upsertDraftReleaseGoodFunction(\n null,\n draftReleaseGood,\n orderProducts,\n shippingOrder,\n files,\n context,\n tx\n )\n\n return createdDraftReleaseGood\n } catch (error) {\n throw error\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DraftReleaseGood, { description: 'To create new DraftReleaseGood' })\n async createDraftReleaseGood(\n @Arg('draftReleaseGood', type => NewDraftReleaseGood, { nullable: true }) draftReleaseGood: NewDraftReleaseGood,\n @Ctx() context: any\n ): Promise<DraftReleaseGood> {\n const { domain, user, tx } = context.state\n\n let drg = await tx.getRepository(DraftReleaseGood).save({\n ...draftReleaseGood,\n domain,\n status: 'INSUFFICIENT',\n creator: user,\n updater: user\n })\n\n // add order products\n\n return drg\n }\n\n @Directive('@transaction')\n @Mutation(returns => DraftReleaseGood, { description: 'To modify DraftReleaseGood information' })\n async updateDraftReleaseGood(\n @Arg('id') id: string,\n @Arg('patch', type => DraftReleaseGoodPatch) patch: DraftReleaseGoodPatch,\n @Ctx() context: any\n ): Promise<DraftReleaseGood> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(DraftReleaseGood)\n const draftReleaseGood = await repository.findOne({\n where: { domain, id }\n })\n\n return await repository.save({\n ...draftReleaseGood,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => [DraftReleaseGood], { description: \"To modify multiple DraftReleaseGoods' information\" })\n async updateMultipleDraftReleaseGood(\n @Arg('patches', type => [DraftReleaseGoodPatch]) patches: DraftReleaseGoodPatch[],\n @Ctx() context: any\n ): Promise<DraftReleaseGood[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const draftReleaseGoodRepo = tx.getRepository(DraftReleaseGood)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await draftReleaseGoodRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const draftReleaseGood = await draftReleaseGoodRepo.findOne(newRecord.id)\n\n const result = await draftReleaseGoodRepo.save({\n ...draftReleaseGood,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete DraftReleaseGood' })\n async deleteDraftReleaseGood(@Arg('id') id: string, @Ctx() context: any): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(DraftReleaseGood).delete({ domain, id })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple draftReleaseGoods' })\n async deleteDraftReleaseGoods(@Arg('ids', type => [String]) ids: string[], @Ctx() context: any): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(DraftReleaseGood).delete({\n domain,\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To generate Release Goods from Draft' })\n async generateReleaseGoodsFromDraft(\n @Ctx() context: any,\n @Arg('ids', type => [String]) ids: string[]\n // @Arg('rawReleaseGoods', type => [NewReleaseGood], { nullable: true }) rawReleaseGoods: NewReleaseGood[],\n // @Arg('bizplaceId', type => String) bizplaceId: string\n ): Promise<boolean> {\n const { domain, user, tx } = context.state\n\n const updatableDraftOrders = await tx.getRepository(DraftReleaseGood).find({\n where: {\n domain,\n id: In(ids),\n status: DRAFT_RELEASE_ORDER_STATUS.DRAFT\n },\n relations: [\n 'orderProducts',\n 'orderProducts.product',\n 'orderProducts.productBundle',\n 'shippingOrder',\n 'bizplace',\n 'domain',\n 'creator',\n 'updater'\n ]\n })\n if (updatableDraftOrders.length > 0) {\n let createdReleaseGoods: ReleaseGood[] = []\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n const roNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain,\n name: ORDER_NUMBER_SETTING_KEY.RO_NUMBER_RULE\n }\n })\n\n for (let index = 0; index < updatableDraftOrders.length; index++) {\n const draftOrder = updatableDraftOrders[index]\n\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (draftOrder?.bizplace?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne(draftOrder.bizplace.id, {\n relations: ['company', 'company.domain']\n })\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: companyDomain } })\n } else {\n return false\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n\n let productInventory = await InventoryUtil.bizplaceProductInventory(\n bizplaces,\n {\n filters: [\n {\n name: 'productId',\n operator: 'in',\n value: [\n ...draftOrder.orderProducts\n .filter(itm => itm?.product)\n .map(itm => {\n return itm.product.id\n }),\n ...draftOrder.orderProducts\n .filter(itm => itm?.productBundle)\n .map(itm => {\n return itm.productBundle.id\n })\n ]\n }\n ]\n },\n context,\n tx\n )\n\n draftOrder.orderProducts = draftOrder.orderProducts.map(itm => {\n let foundProductInv = productInventory.items.find(\n i =>\n (i.productId == itm?.product?.id || i.productId == itm?.productBundle?.id) &&\n i.packingType == itm.packingType &&\n i.packingSize == itm.packingSize &&\n i.uom == itm.uom &&\n itm.releaseQty <= i.remainQty\n )\n return { ...itm, status: foundProductInv ? 'suffice' : 'insufficient' }\n })\n\n let insufficient = draftOrder.orderProducts.find(op => op.status == 'insufficient')\n\n if (!insufficient) {\n //create RO\n let releaseGood = { ...draftOrder }\n delete releaseGood.id\n delete releaseGood.name\n delete releaseGood.createdAt\n delete releaseGood.createdBy\n delete releaseGood.updatedAt\n delete releaseGood.updatedBy\n\n let orderInventories = []\n\n for (let index = 0; index < draftOrder.orderProducts.length; index++) {\n const itm = draftOrder.orderProducts[index]\n let data = []\n if (itm.productBundle) {\n let bundle = await tx.getRepository(ProductBundle).findOne({\n where: { id: itm.productBundle.id },\n relations: [\n 'productBundleSettings',\n 'productBundleSettings.productDetail',\n 'productBundleSettings.product'\n ]\n })\n\n for (let index2 = 0; index2 < bundle.productBundleSettings.length; index2++) {\n const objProductBundleSetting = bundle.productBundleSettings[index2]\n data.push({\n sku: objProductBundleSetting.product.sku,\n packing_type: objProductBundleSetting.productDetail.packingType,\n packing_size: objProductBundleSetting.productDetail.packingSize,\n uom: objProductBundleSetting.productDetail.uom,\n release_qty: objProductBundleSetting.bundleQty * itm.releaseQty,\n assignedQty: undefined,\n assignedUomValue: undefined,\n releaseUomValue: undefined\n })\n }\n } else {\n data = [\n {\n sku: itm.product.sku,\n packing_type: itm.packingType,\n packing_size: itm.packingSize,\n uom: itm.uom,\n release_qty: itm.releaseQty,\n assignedQty: undefined,\n assignedUomValue: undefined,\n releaseUomValue: undefined\n }\n ]\n }\n\n data.forEach(data => {\n let existingOI = orderInventories.find(\n itm =>\n itm.sku == data.sku &&\n itm.packing_type == data.packing_type &&\n itm.packing_size == data.packing_size &&\n itm.uom == data.uom\n )\n\n if (existingOI) {\n existingOI.release_qty = existingOI.release_qty + data.release_qty\n } else {\n orderInventories.push(data)\n }\n })\n }\n try {\n await getConnection().transaction(async (childTx: EntityManager) => {\n let availableItems: any[] = await bulkReleaseGoodsAvailableItemsFunction(\n orderInventories,\n draftOrder.bizplace.id,\n context,\n childTx\n )\n\n if (availableItems.some(item => !item.release_qty || item.release_qty > item.assignedQty))\n throw new ValidationError({\n ...ValidationError.ERROR_CODES.INSUFFICIENT_STOCK,\n detail: { data: JSON.stringify(availableItems) }\n })\n\n // update orderInventories if availableItems are valid\n releaseGood.orderInventories = availableItems.map(itm => {\n return {\n ...itm,\n releaseQty: itm.release_qty\n }\n })\n\n let createdReleaseGood: ReleaseGood = await bulkGenerateReleaseGood(\n releaseGood,\n releaseGood.bizplace.id,\n roNoSetting,\n domain,\n user,\n childTx\n )\n\n await childTx\n .getRepository(DraftReleaseGood)\n .update(\n { id: draftOrder.id },\n { releaseGood: createdReleaseGood, status: DRAFT_RELEASE_ORDER_STATUS.SUBMITTED }\n )\n\n createdReleaseGood = await confirmReleaseGood(createdReleaseGood.name, context, childTx)\n })\n } catch (error) {\n console.error(error)\n }\n }\n }\n }\n\n return true\n }\n}\n\nexport async function upsertDraftReleaseGoodFunction(\n _: any,\n draftReleaseGood: any,\n orderProducts: OrderProductPatch[],\n shippingOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<DraftReleaseGood> {\n if (!draftReleaseGood.id) {\n draftReleaseGood = await createDraftReleaseGoodFunction(\n _,\n draftReleaseGood,\n orderProducts,\n shippingOrder,\n files,\n context,\n tx\n )\n } else {\n draftReleaseGood = await updateDraftReleaseGoodFunction(\n _,\n draftReleaseGood,\n orderProducts,\n shippingOrder,\n files,\n context,\n tx\n )\n }\n\n return draftReleaseGood\n}\n\nexport async function createDraftReleaseGoodFunction(\n _: any,\n draftReleaseGood: any,\n orderProducts: OrderProductPatch[],\n shippingOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<DraftReleaseGood> {\n const { domain, user }: { domain: Domain; user: User } = context.state\n\n let myBizplace: Bizplace\n let orderNo: string = ''\n let arrError: string[] = []\n\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n if (draftReleaseGood?.bizplace?.id) {\n const permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace = permittedBizplaces.find(biz => biz.id == draftReleaseGood.bizplace.id)\n\n if (!foundPermittedBizplace) throw new Error(`This user does not permitted for this company`)\n\n draftReleaseGood.bizplace = foundPermittedBizplace\n } else {\n arrError.push(`No bizplace was selected`)\n }\n\n if (arrError.length > 0) {\n throw new Error(arrError.join(', '))\n }\n\n // // find DRO number rule setting\n const droNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain,\n name: ORDER_NUMBER_SETTING_KEY.DO_NUMBER_RULE\n }\n })\n\n if (droNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.DRO_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.draftReleaseGood()\n }\n\n // // 1. Create draft release good\n const createdDraftReleaseGood: DraftReleaseGood = await tx.getRepository(DraftReleaseGood).save({\n ...draftReleaseGood,\n name: orderNo,\n status: DRAFT_RELEASE_ORDER_STATUS.DRAFT,\n domain,\n creator: user,\n updater: user\n })\n\n // // 2. Create draft release good product\n await upsertDraftReleaseGoodProducts(\n domain,\n draftReleaseGood.bizplace,\n createdDraftReleaseGood,\n orderProducts,\n user,\n tx\n )\n\n // // 3. Create Attachments\n if (files?.length) {\n const attachments: Attachment[] = files.map(attachment => {\n return {\n file: attachment,\n refType: ATTACHMENT_TYPE.DGRN,\n refBy: createdDraftReleaseGood.id,\n category: ATTACHMENT_TYPE.DGRN /* TODO use refType */\n }\n })\n await createAttachments(_, { attachments }, context)\n }\n\n return createdDraftReleaseGood\n}\n\nexport async function updateDraftReleaseGoodFunction(\n _: any,\n draftReleaseGood: any,\n orderProducts: OrderProductPatch[],\n shippingOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<DraftReleaseGood> {\n const { domain, user }: { domain: Domain; user: User } = context.state\n\n let existingDraftReleaseGood: any = await getDraftReleaseGoodFunction(_, draftReleaseGood.name, context, tx)\n\n if (draftReleaseGood?.bizplace?.id) {\n const permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace = permittedBizplaces.find(biz => biz.id == draftReleaseGood.bizplace.id)\n\n if (!foundPermittedBizplace) throw new Error(`This user does not permitted for this company`)\n\n draftReleaseGood.bizplace = foundPermittedBizplace\n }\n\n if (shippingOrder) {\n // case to update existing shippingOrder\n if (existingDraftReleaseGood.shippingOrder) {\n await tx.getRepository(ShippingOrder).update(existingDraftReleaseGood.shippingOrder.id, shippingOrder)\n } else {\n let newShippingOrder: ShippingOrder = await tx.getRepository(ShippingOrder).save({\n ...shippingOrder,\n name: OrderNoGenerator.shippingOrder(),\n domain,\n bizplace: draftReleaseGood.bizplace,\n status: ORDER_STATUS.PENDING,\n creator: user,\n updater: user\n })\n draftReleaseGood.shippingOrder = newShippingOrder\n }\n } else {\n // case to delete existing shippingOrder\n if (existingDraftReleaseGood.shippingOrder) {\n await tx.getRepository(ShippingOrder).delete(existingDraftReleaseGood.shippingOrder)\n }\n }\n\n // // 1. Update draft release good\n const updateDraftReleaseGood: DraftReleaseGood = await tx.getRepository(DraftReleaseGood).save({\n ...existingDraftReleaseGood,\n ...draftReleaseGood,\n domain,\n creator: user,\n updater: user\n })\n\n // // 2. Update draft release good product\n await upsertDraftReleaseGoodProducts(domain, draftReleaseGood.bizplace, draftReleaseGood, orderProducts, user, tx)\n\n // // 3. Remove Purchase Order Attachment\n const foundAttachments: Attachment[] = await getRepository(Attachment).find({\n where: {\n domain,\n refBy: draftReleaseGood.id,\n category: ATTACHMENT_TYPE.DGRN\n }\n })\n\n // // 4. Remove All Attachment\n if (foundAttachments?.length) {\n await deleteAttachmentsByRef(_, { refBys: foundAttachments.map(file => file.refBy) }, context)\n }\n\n // // 5. Add New Attachment\n if (files?.length > 0) {\n const attachments: Attachment[] = files.map(attachment => {\n return {\n file: attachment,\n refType: ATTACHMENT_TYPE.DGRN,\n refBy: updateDraftReleaseGood.id,\n category: ATTACHMENT_TYPE.DGRN /* TODO use refType */\n }\n })\n await createAttachments(_, { attachments }, context)\n }\n\n return existingDraftReleaseGood\n}\n\nexport async function upsertDraftReleaseGoodProducts(\n domain: Domain,\n bizplace: Bizplace,\n draftReleaseGood: DraftReleaseGood,\n orderProductsPatch: OrderProductPatch[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n try {\n let orderProducts: OrderProduct[] = []\n\n const draftReleaseGoodRepo: Repository<Product> =\n tx?.getRepository(DraftReleaseGood) || getRepository(DraftReleaseGood)\n const bizplaceRepo: Repository<Product> = tx?.getRepository(Bizplace) || getRepository(Bizplace)\n const orderProductRepo: Repository<OrderProduct> = tx?.getRepository(OrderProduct) || getRepository(OrderProduct)\n const productRepo: Repository<Product> = tx?.getRepository(Product) || getRepository(Product)\n const productBundleRepo: Repository<Product> = tx?.getRepository(ProductBundle) || getRepository(ProductBundle)\n\n draftReleaseGood = await draftReleaseGoodRepo.findOne({\n where: { id: draftReleaseGood.id },\n relations: [\n 'orderProducts',\n 'orderProducts.product',\n 'orderProducts.productBundle',\n 'orderProducts.creator',\n 'orderProducts.updater'\n ]\n })\n\n // Remove all existing order products that do not exist in current input\n let removeOP = draftReleaseGood.orderProducts.filter(\n existingOP => orderProductsPatch.filter(inOP => inOP.id == existingOP.id).length == 0\n )\n // removeOP.forEach(async op => {\n // await orderProductRepo.delete(op)\n // })\n\n if (removeOP.length > 0) await orderProductRepo.delete(removeOP.map(itm => itm.id))\n\n bizplace = await bizplaceRepo.findOne(bizplace.id, {\n relations: ['domain', 'company', 'company.domain']\n })\n\n orderProducts = await Promise.all(\n orderProductsPatch.map(async (op: any) => {\n if (!op?.id) delete op.id\n\n const customerCompanyDomain: Domain = bizplace.company.domain\n let product: Product = null\n let productBundle: ProductBundle = null\n let existingOP = draftReleaseGood.orderProducts.find(existOP => existOP.id == op.id)\n\n let updatePatch = {\n ...existingOP,\n ...op,\n domain,\n batchId: '',\n packQty: 0,\n actualPackQty: 0,\n palletQty: 0,\n actualPalletQty: 0,\n bizplace: bizplace,\n name: op?.id ? op.name : OrderNoGenerator.orderProduct(),\n draftReleaseGood: draftReleaseGood,\n status: draftReleaseGood.status,\n creator: op?.id ? op.creator : user,\n updater: user\n }\n\n if (op?.product?.id) {\n product = await productRepo.findOne({\n where: { domain: customerCompanyDomain, id: op.product.id }\n })\n updatePatch['product'] = product || undefined\n\n if (!product) {\n productBundle = await productBundleRepo.findOne({\n where: { domain: customerCompanyDomain, id: op.product.id }\n })\n updatePatch['productBundle'] = productBundle || undefined\n }\n\n if (!product && !productBundle) throw new Error(`product not found`)\n } else {\n if (existingOP) {\n product = existingOP.product\n productBundle = existingOP.productBundle\n updatePatch['product'] = existingOP.product || undefined\n updatePatch['productBundle'] = existingOP.productBundle || undefined\n } else {\n product = await productRepo.findOne({\n where: { domain: customerCompanyDomain, sku: op.product.sku, deletedAt: IsNull() },\n relations: ['productDetails']\n })\n if (product) {\n const productDetails: ProductDetail[] = product.productDetails\n let selectedProductDetail: ProductDetail[]\n if (op?.product?.packingType) {\n selectedProductDetail = productDetails.filter(pd => pd.packingType == op.product.packingType)\n } else {\n selectedProductDetail = productDetails.filter(pd => pd.isDefault)\n }\n\n product.packingType = selectedProductDetail[0].packingType\n product.primaryUnit = selectedProductDetail[0].uom\n product.primaryValue = selectedProductDetail[0].uomValue\n }\n\n updatePatch['product'] = product || undefined\n\n if (!product) {\n productBundle = await productBundleRepo.findOne({\n where: { domain: customerCompanyDomain, sku: op.product.sku }\n })\n updatePatch['productBundle'] = productBundle || undefined\n }\n\n if (!product && !productBundle) throw new Error(`product not found`)\n }\n }\n\n updatePatch['packingType'] = op?.packingType\n ? op.packingType\n : product?.packingType\n ? product.packingType\n : productBundle.packingType\n updatePatch['uom'] = op?.uom ? op.uom : product?.primaryUnit ? product.primaryUnit : 'UNIT'\n updatePatch['uomValue'] = op?.uomValue ? op.uomValue : product?.primaryValue ? product.primaryValue : 0\n\n return updatePatch\n })\n )\n\n await orderProductRepo.save(orderProducts)\n } catch (error) {\n throw error\n }\n}\n"]}