@things-factory/operato-wms 4.3.661 → 4.3.663

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 (296) hide show
  1. package/client/pages/order/arrival-notice/edit-product-popup.js +1 -1
  2. package/dist-server/graphql/index.js +33 -0
  3. package/dist-server/graphql/index.js.map +1 -0
  4. package/dist-server/graphql/resolvers/board-setting/board-settings.js +78 -0
  5. package/dist-server/graphql/resolvers/board-setting/board-settings.js.map +1 -0
  6. package/dist-server/graphql/resolvers/board-setting/index.js +6 -0
  7. package/dist-server/graphql/resolvers/board-setting/index.js.map +1 -0
  8. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.js +87 -0
  9. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.js.map +1 -0
  10. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.js +138 -0
  11. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.js.map +1 -0
  12. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.js +124 -0
  13. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.js.map +1 -0
  14. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js +159 -0
  15. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js.map +1 -0
  16. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.js +90 -0
  17. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.js.map +1 -0
  18. package/dist-server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.js +34 -0
  19. package/dist-server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.js.map +1 -0
  20. package/dist-server/graphql/resolvers/custom/elccl/index.js +11 -0
  21. package/dist-server/graphql/resolvers/custom/elccl/index.js.map +1 -0
  22. package/dist-server/graphql/resolvers/custom/kimeda/index.js +6 -0
  23. package/dist-server/graphql/resolvers/custom/kimeda/index.js.map +1 -0
  24. package/dist-server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.js +40 -0
  25. package/dist-server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.js.map +1 -0
  26. package/dist-server/graphql/resolvers/dashboard/arrival-notices-by-status.js +36 -0
  27. package/dist-server/graphql/resolvers/dashboard/arrival-notices-by-status.js.map +1 -0
  28. package/dist-server/graphql/resolvers/dashboard/collection-orders-by-status.js +24 -0
  29. package/dist-server/graphql/resolvers/dashboard/collection-orders-by-status.js.map +1 -0
  30. package/dist-server/graphql/resolvers/dashboard/delivery-orders-by-status.js +24 -0
  31. package/dist-server/graphql/resolvers/dashboard/delivery-orders-by-status.js.map +1 -0
  32. package/dist-server/graphql/resolvers/dashboard/index.js +12 -0
  33. package/dist-server/graphql/resolvers/dashboard/index.js.map +1 -0
  34. package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js +65 -0
  35. package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js.map +1 -0
  36. package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js +22 -0
  37. package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js.map +1 -0
  38. package/dist-server/graphql/resolvers/dashboard/release-goods-by-status.js +36 -0
  39. package/dist-server/graphql/resolvers/dashboard/release-goods-by-status.js.map +1 -0
  40. package/dist-server/graphql/resolvers/dashboard/unit-inbounded-outbounded.js +56 -0
  41. package/dist-server/graphql/resolvers/dashboard/unit-inbounded-outbounded.js.map +1 -0
  42. package/dist-server/graphql/resolvers/index.js +58 -0
  43. package/dist-server/graphql/resolvers/index.js.map +1 -0
  44. package/dist-server/graphql/resolvers/inventory-comparison/index.js +6 -0
  45. package/dist-server/graphql/resolvers/inventory-comparison/index.js.map +1 -0
  46. package/dist-server/graphql/resolvers/inventory-comparison/inventory-comparison-list.js +78 -0
  47. package/dist-server/graphql/resolvers/inventory-comparison/inventory-comparison-list.js.map +1 -0
  48. package/dist-server/graphql/resolvers/opa-menu/index.js +6 -0
  49. package/dist-server/graphql/resolvers/opa-menu/index.js.map +1 -0
  50. package/dist-server/graphql/resolvers/opa-menu/opa-menus.js +73 -0
  51. package/dist-server/graphql/resolvers/opa-menu/opa-menus.js.map +1 -0
  52. package/dist-server/graphql/resolvers/other/add-release-good-products.js +309 -0
  53. package/dist-server/graphql/resolvers/other/add-release-good-products.js.map +1 -0
  54. package/dist-server/graphql/resolvers/other/index.js +8 -0
  55. package/dist-server/graphql/resolvers/other/index.js.map +1 -0
  56. package/dist-server/graphql/resolvers/other/page-settings.js +135 -0
  57. package/dist-server/graphql/resolvers/other/page-settings.js.map +1 -0
  58. package/dist-server/graphql/resolvers/outbound/complete-load.js +114 -0
  59. package/dist-server/graphql/resolvers/outbound/complete-load.js.map +1 -0
  60. package/dist-server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.js +148 -0
  61. package/dist-server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.js.map +1 -0
  62. package/dist-server/graphql/resolvers/outbound/find-loadable-release-good.js +114 -0
  63. package/dist-server/graphql/resolvers/outbound/find-loadable-release-good.js.map +1 -0
  64. package/dist-server/graphql/resolvers/outbound/get-delivery-orders.js +46 -0
  65. package/dist-server/graphql/resolvers/outbound/get-delivery-orders.js.map +1 -0
  66. package/dist-server/graphql/resolvers/outbound/get-loading-task.js +100 -0
  67. package/dist-server/graphql/resolvers/outbound/get-loading-task.js.map +1 -0
  68. package/dist-server/graphql/resolvers/outbound/index.js +17 -0
  69. package/dist-server/graphql/resolvers/outbound/index.js.map +1 -0
  70. package/dist-server/graphql/resolvers/outbound/load-by-qty.js +121 -0
  71. package/dist-server/graphql/resolvers/outbound/load-by-qty.js.map +1 -0
  72. package/dist-server/graphql/resolvers/outbound/loading-worksheet-v2.js +158 -0
  73. package/dist-server/graphql/resolvers/outbound/loading-worksheet-v2.js.map +1 -0
  74. package/dist-server/graphql/resolvers/outbound/my-loading-assignment-status.js +32 -0
  75. package/dist-server/graphql/resolvers/outbound/my-loading-assignment-status.js.map +1 -0
  76. package/dist-server/graphql/resolvers/outbound/sort-item.js +66 -0
  77. package/dist-server/graphql/resolvers/outbound/sort-item.js.map +1 -0
  78. package/dist-server/graphql/resolvers/outbound/undo-load.js +72 -0
  79. package/dist-server/graphql/resolvers/outbound/undo-load.js.map +1 -0
  80. package/dist-server/graphql/resolvers/outbound/warehouse-return.js +101 -0
  81. package/dist-server/graphql/resolvers/outbound/warehouse-return.js.map +1 -0
  82. package/dist-server/graphql/resolvers/reports/analysis-picking-packing-report.js +128 -0
  83. package/dist-server/graphql/resolvers/reports/analysis-picking-packing-report.js.map +1 -0
  84. package/dist-server/graphql/resolvers/reports/billing-module-report.js +355 -0
  85. package/dist-server/graphql/resolvers/reports/billing-module-report.js.map +1 -0
  86. package/dist-server/graphql/resolvers/reports/costing-report.js +166 -0
  87. package/dist-server/graphql/resolvers/reports/costing-report.js.map +1 -0
  88. package/dist-server/graphql/resolvers/reports/cycle-count-report.js +311 -0
  89. package/dist-server/graphql/resolvers/reports/cycle-count-report.js.map +1 -0
  90. package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js +215 -0
  91. package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js.map +1 -0
  92. package/dist-server/graphql/resolvers/reports/inbound-serial-number-report.js +140 -0
  93. package/dist-server/graphql/resolvers/reports/inbound-serial-number-report.js.map +1 -0
  94. package/dist-server/graphql/resolvers/reports/index.js +21 -0
  95. package/dist-server/graphql/resolvers/reports/index.js.map +1 -0
  96. package/dist-server/graphql/resolvers/reports/manifest-report.js +98 -0
  97. package/dist-server/graphql/resolvers/reports/manifest-report.js.map +1 -0
  98. package/dist-server/graphql/resolvers/reports/non-loaded-inventory-report.js +143 -0
  99. package/dist-server/graphql/resolvers/reports/non-loaded-inventory-report.js.map +1 -0
  100. package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js +290 -0
  101. package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js.map +1 -0
  102. package/dist-server/graphql/resolvers/reports/outbound-serial-number-report.js +143 -0
  103. package/dist-server/graphql/resolvers/reports/outbound-serial-number-report.js.map +1 -0
  104. package/dist-server/graphql/resolvers/reports/pg-udf-query.js +70 -0
  105. package/dist-server/graphql/resolvers/reports/pg-udf-query.js.map +1 -0
  106. package/dist-server/graphql/resolvers/reports/product-label-report.js +57 -0
  107. package/dist-server/graphql/resolvers/reports/product-label-report.js.map +1 -0
  108. package/dist-server/graphql/resolvers/reports/release-inventory-report.js +180 -0
  109. package/dist-server/graphql/resolvers/reports/release-inventory-report.js.map +1 -0
  110. package/dist-server/graphql/resolvers/reports/shortage-report.js +165 -0
  111. package/dist-server/graphql/resolvers/reports/shortage-report.js.map +1 -0
  112. package/dist-server/graphql/resolvers/reports/tote-loading-qc-report.js +129 -0
  113. package/dist-server/graphql/resolvers/reports/tote-loading-qc-report.js.map +1 -0
  114. package/dist-server/graphql/resolvers/reports/vas-report.js +386 -0
  115. package/dist-server/graphql/resolvers/reports/vas-report.js.map +1 -0
  116. package/dist-server/graphql/resolvers/shipping-provider/index.js +6 -0
  117. package/dist-server/graphql/resolvers/shipping-provider/index.js.map +1 -0
  118. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js +24 -0
  119. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js.map +1 -0
  120. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/index.js +6 -0
  121. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/index.js.map +1 -0
  122. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js +97 -0
  123. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js.map +1 -0
  124. package/dist-server/graphql/resolvers/zone-worksheet/activate-zone-worksheet.js +91 -0
  125. package/dist-server/graphql/resolvers/zone-worksheet/activate-zone-worksheet.js.map +1 -0
  126. package/dist-server/graphql/resolvers/zone-worksheet/assign-sorter.js +36 -0
  127. package/dist-server/graphql/resolvers/zone-worksheet/assign-sorter.js.map +1 -0
  128. package/dist-server/graphql/resolvers/zone-worksheet/generate-zone-worksheet.js +106 -0
  129. package/dist-server/graphql/resolvers/zone-worksheet/generate-zone-worksheet.js.map +1 -0
  130. package/dist-server/graphql/resolvers/zone-worksheet/get-zone-picking-task.js +108 -0
  131. package/dist-server/graphql/resolvers/zone-worksheet/get-zone-picking-task.js.map +1 -0
  132. package/dist-server/graphql/resolvers/zone-worksheet/index.js +12 -0
  133. package/dist-server/graphql/resolvers/zone-worksheet/index.js.map +1 -0
  134. package/dist-server/graphql/resolvers/zone-worksheet/zone-picking.js +346 -0
  135. package/dist-server/graphql/resolvers/zone-worksheet/zone-picking.js.map +1 -0
  136. package/dist-server/graphql/resolvers/zone-worksheet/zone-worksheet.js +146 -0
  137. package/dist-server/graphql/resolvers/zone-worksheet/zone-worksheet.js.map +1 -0
  138. package/dist-server/graphql/types/board-setting/board-setting.js +16 -0
  139. package/dist-server/graphql/types/board-setting/board-setting.js.map +1 -0
  140. package/dist-server/graphql/types/board-setting/index.js +9 -0
  141. package/dist-server/graphql/types/board-setting/index.js.map +1 -0
  142. package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report-list.js +14 -0
  143. package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report-list.js.map +1 -0
  144. package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report.js +30 -0
  145. package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report.js.map +1 -0
  146. package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report-list.js +14 -0
  147. package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report-list.js.map +1 -0
  148. package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report.js +25 -0
  149. package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report.js.map +1 -0
  150. package/dist-server/graphql/types/custom/elccl/elccl-inventory-report.js +22 -0
  151. package/dist-server/graphql/types/custom/elccl/elccl-inventory-report.js.map +1 -0
  152. package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report-list.js +14 -0
  153. package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report-list.js.map +1 -0
  154. package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report.js +23 -0
  155. package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report.js.map +1 -0
  156. package/dist-server/graphql/types/custom/elccl/elccl-pallet-detail-report.js +22 -0
  157. package/dist-server/graphql/types/custom/elccl/elccl-pallet-detail-report.js.map +1 -0
  158. package/dist-server/graphql/types/custom/elccl/index.js +30 -0
  159. package/dist-server/graphql/types/custom/elccl/index.js.map +1 -0
  160. package/dist-server/graphql/types/custom/kimeda/index.js +7 -0
  161. package/dist-server/graphql/types/custom/kimeda/index.js.map +1 -0
  162. package/dist-server/graphql/types/dashboard/index.js +17 -0
  163. package/dist-server/graphql/types/dashboard/index.js.map +1 -0
  164. package/dist-server/graphql/types/dashboard/inventory-expiry-counter.js +16 -0
  165. package/dist-server/graphql/types/dashboard/inventory-expiry-counter.js.map +1 -0
  166. package/dist-server/graphql/types/dashboard/inventory-expiry-status.js +14 -0
  167. package/dist-server/graphql/types/dashboard/inventory-expiry-status.js.map +1 -0
  168. package/dist-server/graphql/types/dashboard/order-status-counter.js +14 -0
  169. package/dist-server/graphql/types/dashboard/order-status-counter.js.map +1 -0
  170. package/dist-server/graphql/types/index.js +70 -0
  171. package/dist-server/graphql/types/index.js.map +1 -0
  172. package/dist-server/graphql/types/inventory-comparison/index.js +13 -0
  173. package/dist-server/graphql/types/inventory-comparison/index.js.map +1 -0
  174. package/dist-server/graphql/types/inventory-comparison/inventory-comparison-list.js +14 -0
  175. package/dist-server/graphql/types/inventory-comparison/inventory-comparison-list.js.map +1 -0
  176. package/dist-server/graphql/types/inventory-comparison/inventory-comparison.js +18 -0
  177. package/dist-server/graphql/types/inventory-comparison/inventory-comparison.js.map +1 -0
  178. package/dist-server/graphql/types/opa-menu/index.js +9 -0
  179. package/dist-server/graphql/types/opa-menu/index.js.map +1 -0
  180. package/dist-server/graphql/types/opa-menu/opa-menu.js +45 -0
  181. package/dist-server/graphql/types/opa-menu/opa-menu.js.map +1 -0
  182. package/dist-server/graphql/types/other/index.js +21 -0
  183. package/dist-server/graphql/types/other/index.js.map +1 -0
  184. package/dist-server/graphql/types/other/page-setting.js +37 -0
  185. package/dist-server/graphql/types/other/page-setting.js.map +1 -0
  186. package/dist-server/graphql/types/outbound/delivery-order-info-list.js +14 -0
  187. package/dist-server/graphql/types/outbound/delivery-order-info-list.js.map +1 -0
  188. package/dist-server/graphql/types/outbound/index.js +24 -0
  189. package/dist-server/graphql/types/outbound/index.js.map +1 -0
  190. package/dist-server/graphql/types/outbound/loading-assignment.js +15 -0
  191. package/dist-server/graphql/types/outbound/loading-assignment.js.map +1 -0
  192. package/dist-server/graphql/types/outbound/loading-worksheet-type.js +25 -0
  193. package/dist-server/graphql/types/outbound/loading-worksheet-type.js.map +1 -0
  194. package/dist-server/graphql/types/reports/analysis-picking-packing-report-list.js +14 -0
  195. package/dist-server/graphql/types/reports/analysis-picking-packing-report-list.js.map +1 -0
  196. package/dist-server/graphql/types/reports/analysis-picking-packing-report.js +18 -0
  197. package/dist-server/graphql/types/reports/analysis-picking-packing-report.js.map +1 -0
  198. package/dist-server/graphql/types/reports/billing-module-report-list.js +14 -0
  199. package/dist-server/graphql/types/reports/billing-module-report-list.js.map +1 -0
  200. package/dist-server/graphql/types/reports/billing-module-report.js +15 -0
  201. package/dist-server/graphql/types/reports/billing-module-report.js.map +1 -0
  202. package/dist-server/graphql/types/reports/costing-report-list.js +14 -0
  203. package/dist-server/graphql/types/reports/costing-report-list.js.map +1 -0
  204. package/dist-server/graphql/types/reports/costing-report.js +19 -0
  205. package/dist-server/graphql/types/reports/costing-report.js.map +1 -0
  206. package/dist-server/graphql/types/reports/cycle-count-report-list.js +14 -0
  207. package/dist-server/graphql/types/reports/cycle-count-report-list.js.map +1 -0
  208. package/dist-server/graphql/types/reports/cycle-count-report.js +35 -0
  209. package/dist-server/graphql/types/reports/cycle-count-report.js.map +1 -0
  210. package/dist-server/graphql/types/reports/inbound-order-details-report-list.js +14 -0
  211. package/dist-server/graphql/types/reports/inbound-order-details-report-list.js.map +1 -0
  212. package/dist-server/graphql/types/reports/inbound-order-details-report.js +60 -0
  213. package/dist-server/graphql/types/reports/inbound-order-details-report.js.map +1 -0
  214. package/dist-server/graphql/types/reports/inbound-serial-number-report-list.js +14 -0
  215. package/dist-server/graphql/types/reports/inbound-serial-number-report-list.js.map +1 -0
  216. package/dist-server/graphql/types/reports/inbound-serial-number-report.js +23 -0
  217. package/dist-server/graphql/types/reports/inbound-serial-number-report.js.map +1 -0
  218. package/dist-server/graphql/types/reports/index.js +89 -0
  219. package/dist-server/graphql/types/reports/index.js.map +1 -0
  220. package/dist-server/graphql/types/reports/loading-qc-report-list.js +14 -0
  221. package/dist-server/graphql/types/reports/loading-qc-report-list.js.map +1 -0
  222. package/dist-server/graphql/types/reports/loading-qc-report.js +24 -0
  223. package/dist-server/graphql/types/reports/loading-qc-report.js.map +1 -0
  224. package/dist-server/graphql/types/reports/manifest-report-list.js +14 -0
  225. package/dist-server/graphql/types/reports/manifest-report-list.js.map +1 -0
  226. package/dist-server/graphql/types/reports/manifest-report-type.js +23 -0
  227. package/dist-server/graphql/types/reports/manifest-report-type.js.map +1 -0
  228. package/dist-server/graphql/types/reports/non-loaded-inventory-report-list.js +14 -0
  229. package/dist-server/graphql/types/reports/non-loaded-inventory-report-list.js.map +1 -0
  230. package/dist-server/graphql/types/reports/non-loaded-inventory-report.js +23 -0
  231. package/dist-server/graphql/types/reports/non-loaded-inventory-report.js.map +1 -0
  232. package/dist-server/graphql/types/reports/outbound-order-details-report-list.js +14 -0
  233. package/dist-server/graphql/types/reports/outbound-order-details-report-list.js.map +1 -0
  234. package/dist-server/graphql/types/reports/outbound-order-details-report.js +79 -0
  235. package/dist-server/graphql/types/reports/outbound-order-details-report.js.map +1 -0
  236. package/dist-server/graphql/types/reports/outbound-serial-number-report-list.js +14 -0
  237. package/dist-server/graphql/types/reports/outbound-serial-number-report-list.js.map +1 -0
  238. package/dist-server/graphql/types/reports/outbound-serial-number-report.js +25 -0
  239. package/dist-server/graphql/types/reports/outbound-serial-number-report.js.map +1 -0
  240. package/dist-server/graphql/types/reports/pg-udf-query-list.js +13 -0
  241. package/dist-server/graphql/types/reports/pg-udf-query-list.js.map +1 -0
  242. package/dist-server/graphql/types/reports/product-label-report-list.js +14 -0
  243. package/dist-server/graphql/types/reports/product-label-report-list.js.map +1 -0
  244. package/dist-server/graphql/types/reports/product-label-report.js +16 -0
  245. package/dist-server/graphql/types/reports/product-label-report.js.map +1 -0
  246. package/dist-server/graphql/types/reports/release-inventory-report-list.js +14 -0
  247. package/dist-server/graphql/types/reports/release-inventory-report-list.js.map +1 -0
  248. package/dist-server/graphql/types/reports/release-inventory-report.js +29 -0
  249. package/dist-server/graphql/types/reports/release-inventory-report.js.map +1 -0
  250. package/dist-server/graphql/types/reports/shortage-report-list.js +14 -0
  251. package/dist-server/graphql/types/reports/shortage-report-list.js.map +1 -0
  252. package/dist-server/graphql/types/reports/shortage-report-type.js +26 -0
  253. package/dist-server/graphql/types/reports/shortage-report-type.js.map +1 -0
  254. package/dist-server/graphql/types/reports/vas-report-list.js +20 -0
  255. package/dist-server/graphql/types/reports/vas-report-list.js.map +1 -0
  256. package/dist-server/graphql/types/reports/vas-report.js +29 -0
  257. package/dist-server/graphql/types/reports/vas-report.js.map +1 -0
  258. package/dist-server/graphql/types/shipping-provider/index.js +10 -0
  259. package/dist-server/graphql/types/shipping-provider/index.js.map +1 -0
  260. package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js +13 -0
  261. package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js.map +1 -0
  262. package/dist-server/graphql/types/shipping-provider/shipping-provider.js +13 -0
  263. package/dist-server/graphql/types/shipping-provider/shipping-provider.js.map +1 -0
  264. package/dist-server/graphql/types/warehouse-inventory-adjustment/index.js +9 -0
  265. package/dist-server/graphql/types/warehouse-inventory-adjustment/index.js.map +1 -0
  266. package/dist-server/graphql/types/zone-worksheet/index.js +22 -0
  267. package/dist-server/graphql/types/zone-worksheet/index.js.map +1 -0
  268. package/dist-server/graphql/types/zone-worksheet/zone-picking-worksheet.js +18 -0
  269. package/dist-server/graphql/types/zone-worksheet/zone-picking-worksheet.js.map +1 -0
  270. package/dist-server/graphql/types/zone-worksheet/zone-worksheet-overview-list.js +13 -0
  271. package/dist-server/graphql/types/zone-worksheet/zone-worksheet-overview-list.js.map +1 -0
  272. package/dist-server/graphql/types/zone-worksheet/zone-worksheet-overview.js +16 -0
  273. package/dist-server/graphql/types/zone-worksheet/zone-worksheet-overview.js.map +1 -0
  274. package/dist-server/index.js +20 -0
  275. package/dist-server/index.js.map +1 -0
  276. package/dist-server/migrations/1568858861188-SeedSetting.js +51 -0
  277. package/dist-server/migrations/1568858861188-SeedSetting.js.map +1 -0
  278. package/dist-server/migrations/1623308919899-SeedLocationRecommendSetting.js +35 -0
  279. package/dist-server/migrations/1623308919899-SeedLocationRecommendSetting.js.map +1 -0
  280. package/dist-server/migrations/1623381200659-SeedStoringRule.js +33 -0
  281. package/dist-server/migrations/1623381200659-SeedStoringRule.js.map +1 -0
  282. package/dist-server/migrations/1687413760311-UpdateProductDetailStockQty.js +36 -0
  283. package/dist-server/migrations/1687413760311-UpdateProductDetailStockQty.js.map +1 -0
  284. package/dist-server/migrations/1687415141200-InsertNewProductDetailStock.js +32 -0
  285. package/dist-server/migrations/1687415141200-InsertNewProductDetailStock.js.map +1 -0
  286. package/dist-server/migrations/index.js +12 -0
  287. package/dist-server/migrations/index.js.map +1 -0
  288. package/dist-server/opa-app-setting-constants.js +15 -0
  289. package/dist-server/opa-app-setting-constants.js.map +1 -0
  290. package/dist-server/routes.js +3 -0
  291. package/dist-server/routes.js.map +1 -0
  292. package/dist-server/utils/index.js +18 -0
  293. package/dist-server/utils/index.js.map +1 -0
  294. package/dist-server/utils/report-query-util.js +42 -0
  295. package/dist-server/utils/report-query-util.js.map +1 -0
  296. package/package.json +3 -3
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findLoadableReleaseGoodByBin = void 0;
4
+ const warehouse_base_1 = require("@things-factory/warehouse-base");
5
+ const sales_base_1 = require("@things-factory/sales-base");
6
+ /**
7
+ * Custom error class for outbound order related errors
8
+ * Covers both ReleaseGood and OrderInventory related errors
9
+ */
10
+ class OutboundOrderError extends Error {
11
+ constructor(message, code) {
12
+ super(message);
13
+ this.code = code;
14
+ this.name = 'OutboundOrderError';
15
+ }
16
+ }
17
+ /**
18
+ * Builds a query to find a release good by order number
19
+ */
20
+ const buildfindReleaseGoodByNameQuery = (tx, domainId, orderNo) => {
21
+ return tx
22
+ .getRepository(sales_base_1.ReleaseGood)
23
+ .createQueryBuilder('releaseGood')
24
+ .leftJoinAndSelect('releaseGood.bizplace', 'bizplace')
25
+ .where('releaseGood.domain_id = :domainId', { domainId })
26
+ .andWhere('releaseGood.name = :orderNo', { orderNo })
27
+ .andWhere('releaseGood.status IN (:...status)', {
28
+ status: [sales_base_1.ORDER_STATUS.LOADING, sales_base_1.ORDER_STATUS.PROCESSING, sales_base_1.ORDER_STATUS.PARTIAL_PROCESSING, sales_base_1.ORDER_STATUS.DONE]
29
+ });
30
+ };
31
+ /**
32
+ * Builds a query to find order inventories by bin location
33
+ */
34
+ const buildOrderInventoryQuery = (tx, domainId, locationId) => {
35
+ return tx
36
+ .getRepository(sales_base_1.OrderInventory)
37
+ .createQueryBuilder('orderInventory')
38
+ .leftJoinAndSelect('orderInventory.inventory', 'inventory')
39
+ .leftJoinAndSelect('inventory.product', 'product')
40
+ .leftJoinAndSelect('inventory.productDetail', 'productDetail')
41
+ .leftJoinAndSelect('orderInventory.binLocation', 'binLocation')
42
+ .where('orderInventory.domain_id = :domainId', { domainId })
43
+ .andWhere('orderInventory.status IN (:...orderInventoryStatus)', {
44
+ orderInventoryStatus: [
45
+ sales_base_1.ORDER_INVENTORY_STATUS.SORTING,
46
+ sales_base_1.ORDER_INVENTORY_STATUS.LOADING,
47
+ sales_base_1.ORDER_INVENTORY_STATUS.LOADED
48
+ ]
49
+ })
50
+ .andWhere('orderInventory.bin_location_id = :locationId', { locationId })
51
+ .orderBy('orderInventory.createdAt', 'ASC');
52
+ };
53
+ /**
54
+ * Transforms order inventory data into the required worksheet format
55
+ */
56
+ const transformToWorksheetFormat = (orderInventories) => {
57
+ if (!orderInventories.length)
58
+ return null;
59
+ // Extract unique bin location names
60
+ const uniqueBinLocations = [...new Set(orderInventories.map(oi => { var _a; return (_a = oi.binLocation) === null || _a === void 0 ? void 0 : _a.name; }).filter(Boolean))];
61
+ return {
62
+ worksheetInfo: {
63
+ worksheet: {
64
+ id: null,
65
+ name: null,
66
+ type: null,
67
+ status: null
68
+ },
69
+ bizplaceName: null,
70
+ startedAt: null,
71
+ releaseGood: null,
72
+ binLocationName: uniqueBinLocations.join(', ') // Join multiple bin locations with comma
73
+ },
74
+ worksheetDetailInfos: orderInventories.map(oi => {
75
+ var _a, _b, _c, _d, _e, _f, _g, _h;
76
+ return ({
77
+ id: null,
78
+ name: null,
79
+ batchId: oi.batchId,
80
+ releaseQty: oi.releaseQty,
81
+ pickedQty: oi.pickedQty,
82
+ sortedQty: oi.sortedQty,
83
+ status: oi.status,
84
+ packingType: oi.packingType,
85
+ packingSize: oi.packingSize,
86
+ expirationDate: (_a = oi.inventory) === null || _a === void 0 ? void 0 : _a.expirationDate,
87
+ binLocation: {
88
+ name: (_b = oi.binLocation) === null || _b === void 0 ? void 0 : _b.name
89
+ },
90
+ productName: (_d = (_c = oi.inventory) === null || _c === void 0 ? void 0 : _c.product) === null || _d === void 0 ? void 0 : _d.name,
91
+ productSku: (_f = (_e = oi.inventory) === null || _e === void 0 ? void 0 : _e.product) === null || _f === void 0 ? void 0 : _f.sku,
92
+ relatedOrderInv: {
93
+ id: oi.id,
94
+ batchId: oi.batchId,
95
+ packingType: oi.packingType,
96
+ product: ((_g = oi.inventory) === null || _g === void 0 ? void 0 : _g.product)
97
+ ? {
98
+ id: oi.inventory.product.id,
99
+ sku: oi.inventory.product.sku,
100
+ name: oi.inventory.product.name
101
+ }
102
+ : null,
103
+ productDetail: ((_h = oi.inventory) === null || _h === void 0 ? void 0 : _h.productDetail)
104
+ ? {
105
+ id: oi.inventory.productDetail.id
106
+ }
107
+ : null
108
+ }
109
+ });
110
+ })
111
+ };
112
+ };
113
+ /**
114
+ * Finds loadable release goods by bin location
115
+ * @param _ - GraphQL resolver parent object
116
+ * @param orderNo - The order number or bin location name to search for
117
+ * @param context - GraphQL context containing domain and transaction manager
118
+ * @returns Promise<Object> - Transformed worksheet data structure
119
+ * @throws OutboundOrderError if order is DONE or if no items found in bin
120
+ */
121
+ exports.findLoadableReleaseGoodByBin = {
122
+ async findLoadableReleaseGoodByBin(_, { orderNo }, context) {
123
+ const { domain, tx } = context.state;
124
+ let orderInventoryByBin = [];
125
+ let foundReleaseGood = await buildfindReleaseGoodByNameQuery(tx, domain.id, orderNo).getOne();
126
+ if (foundReleaseGood && foundReleaseGood.status == sales_base_1.ORDER_STATUS.DONE) {
127
+ throw new OutboundOrderError('This order is DONE', 'ORDER_DONE');
128
+ }
129
+ else if (foundReleaseGood) {
130
+ throw new OutboundOrderError('You are scanning using order number. Your setting for QC by BIN is enabled. Please contact your administrator.', 'QC_BY_BIN_ENABLED');
131
+ }
132
+ else {
133
+ const binLocation = await tx.getRepository(warehouse_base_1.Location).findOne({
134
+ where: { domain, name: orderNo }
135
+ });
136
+ if (binLocation) {
137
+ orderInventoryByBin = await buildOrderInventoryQuery(tx, domain.id, binLocation.id).getMany();
138
+ }
139
+ if (orderInventoryByBin.length > 0) {
140
+ return transformToWorksheetFormat(orderInventoryByBin);
141
+ }
142
+ else {
143
+ throw new OutboundOrderError('There is no item in this bin', 'NO_ITEMS_IN_BIN');
144
+ }
145
+ }
146
+ }
147
+ };
148
+ //# sourceMappingURL=find-loadable-release-good-by-bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-loadable-release-good-by-bin.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findLoadableReleaseGood = void 0;
4
+ const warehouse_base_1 = require("@things-factory/warehouse-base");
5
+ const sales_base_1 = require("@things-factory/sales-base");
6
+ exports.findLoadableReleaseGood = {
7
+ async findLoadableReleaseGood(_, { orderNo, tabName }, context) {
8
+ const { domain, tx } = context.state;
9
+ let releaseGoods = [];
10
+ //put query in util same as find-loadable-release-good-by-bin.ts
11
+ //jiahhao
12
+ let foundReleaseGood = await tx
13
+ .getRepository(sales_base_1.ReleaseGood)
14
+ .createQueryBuilder('releaseGood')
15
+ .where('releaseGood.domain_id = :domainId', { domainId: domain.id })
16
+ .andWhere('releaseGood.name = :orderNo', { orderNo })
17
+ .andWhere('releaseGood.status IN (:...status)', {
18
+ status: [sales_base_1.ORDER_STATUS.LOADING, sales_base_1.ORDER_STATUS.PROCESSING, sales_base_1.ORDER_STATUS.PARTIAL_PROCESSING, sales_base_1.ORDER_STATUS.DONE]
19
+ })
20
+ .getOne();
21
+ if (foundReleaseGood && foundReleaseGood.status == sales_base_1.ORDER_STATUS.DONE) {
22
+ throw new Error('This order is DONE');
23
+ }
24
+ else if (foundReleaseGood) {
25
+ // Get counts for single release good
26
+ const counts = await tx
27
+ .getRepository(sales_base_1.OrderInventory)
28
+ .createQueryBuilder('orderInventory')
29
+ .select('COUNT(*)', 'total')
30
+ .addSelect(`SUM(CASE WHEN orderInventory.status IN (:...completedStatuses) THEN 1 ELSE 0 END)`, 'completed')
31
+ .where('orderInventory.release_good_id = :releaseGoodId', { releaseGoodId: foundReleaseGood.id })
32
+ .andWhere('orderInventory.domain_id = :domainId', { domainId: domain.id })
33
+ .setParameter('completedStatuses', tabName === 'QC'
34
+ ? [sales_base_1.ORDER_INVENTORY_STATUS.LOADING, sales_base_1.ORDER_INVENTORY_STATUS.LOADED]
35
+ : tabName === 'LOADING'
36
+ ? [sales_base_1.ORDER_INVENTORY_STATUS.LOADED]
37
+ : [sales_base_1.ORDER_INVENTORY_STATUS.LOADED])
38
+ .getRawOne();
39
+ foundReleaseGood['itemCounts'] = {
40
+ total: parseInt(counts.total) || 0,
41
+ pending: parseInt(counts.completed) || 0
42
+ };
43
+ releaseGoods.push(foundReleaseGood);
44
+ return releaseGoods;
45
+ }
46
+ else {
47
+ const binLocation = await tx.getRepository(warehouse_base_1.Location).findOne({
48
+ where: { domain, name: orderNo }
49
+ });
50
+ if (binLocation) {
51
+ // First get all matching release goods
52
+ const orderInventoryByBin = await tx
53
+ .getRepository(sales_base_1.OrderInventory)
54
+ .createQueryBuilder('orderInventory')
55
+ .innerJoinAndSelect('orderInventory.releaseGood', 'releaseGood')
56
+ .innerJoinAndSelect('releaseGood.bizplace', 'bizplace')
57
+ .innerJoinAndSelect('bizplace.domain', 'domain')
58
+ .leftJoinAndSelect('releaseGood.sortedBy', 'sortedBy')
59
+ .where('orderInventory.domain_id = :domainId', { domainId: domain.id })
60
+ .andWhere('orderInventory.status = :orderInventoryStatus', {
61
+ orderInventoryStatus: tabName === 'QC'
62
+ ? sales_base_1.ORDER_INVENTORY_STATUS.SORTING
63
+ : tabName === 'LOADING'
64
+ ? sales_base_1.ORDER_INVENTORY_STATUS.LOADING
65
+ : sales_base_1.ORDER_INVENTORY_STATUS.LOADED
66
+ })
67
+ .andWhere('orderInventory.bin_location_id = :locationId', { locationId: binLocation.id })
68
+ .andWhere('releaseGood.status IN (:...status)', {
69
+ status: [sales_base_1.ORDER_STATUS.LOADING, sales_base_1.ORDER_STATUS.PROCESSING, sales_base_1.ORDER_STATUS.PARTIAL_PROCESSING]
70
+ })
71
+ .orderBy('releaseGood.createdAt', 'ASC')
72
+ .getMany();
73
+ // Get unique release goods
74
+ releaseGoods = orderInventoryByBin.reduce((acc, oi) => {
75
+ if (!acc.some(rg => rg.id === oi.releaseGood.id)) {
76
+ acc.push(oi.releaseGood);
77
+ }
78
+ return acc;
79
+ }, []);
80
+ // Get counts for each release good
81
+ for (const releaseGood of releaseGoods) {
82
+ const counts = await tx
83
+ .getRepository(sales_base_1.OrderInventory)
84
+ .createQueryBuilder('orderInventory')
85
+ .select('COUNT(*)', 'total')
86
+ .addSelect(`SUM(CASE WHEN orderInventory.status IN (:...completedStatuses) THEN 1 ELSE 0 END)`, 'completed')
87
+ .where('orderInventory.release_good_id = :releaseGoodId', { releaseGoodId: releaseGood.id })
88
+ .andWhere('orderInventory.domain_id = :domainId', { domainId: domain.id })
89
+ .setParameter('completedStatuses', tabName === 'LOADING'
90
+ ? [sales_base_1.ORDER_INVENTORY_STATUS.LOADING]
91
+ : tabName === 'LOADED'
92
+ ? [sales_base_1.ORDER_INVENTORY_STATUS.LOADED]
93
+ : [sales_base_1.ORDER_INVENTORY_STATUS.LOADED])
94
+ .getRawOne();
95
+ releaseGood['itemCounts'] = {
96
+ total: parseInt(counts.total) || 0,
97
+ pending: parseInt(counts.completed) || 0
98
+ };
99
+ }
100
+ }
101
+ if (releaseGoods.length > 0)
102
+ return releaseGoods;
103
+ else {
104
+ const errorMessage = tabName === 'QC'
105
+ ? 'No items pending QC verification'
106
+ : tabName === 'LOADING'
107
+ ? 'No items pending loading'
108
+ : 'No items pending dispatch';
109
+ throw new Error(errorMessage);
110
+ }
111
+ }
112
+ }
113
+ };
114
+ //# sourceMappingURL=find-loadable-release-good.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-loadable-release-good.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/find-loadable-release-good.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDeliveryOrders = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const sales_base_1 = require("@things-factory/sales-base");
6
+ const setting_base_1 = require("@things-factory/setting-base");
7
+ const SETTINGS = {
8
+ QC_SKU: 'qc-sku'
9
+ };
10
+ exports.getDeliveryOrders = {
11
+ async getDeliveryOrders(_, { releaseGoodNo }, context) {
12
+ var _a, _b;
13
+ const { domain, tx } = context.state;
14
+ const releaseGood = await (0, typeorm_1.getRepository)(sales_base_1.ReleaseGood).findOne({
15
+ where: { domain, name: releaseGoodNo },
16
+ relations: ['orderInventories']
17
+ });
18
+ if (!releaseGood) {
19
+ throw new Error(`ReleaseGood with name ${releaseGoodNo} not found`);
20
+ }
21
+ const complete_status = [sales_base_1.ORDER_INVENTORY_STATUS.LOADED, sales_base_1.ORDER_INVENTORY_STATUS.TERMINATED, sales_base_1.ORDER_INVENTORY_STATUS.RETURNING, sales_base_1.ORDER_INVENTORY_STATUS.MISSING];
22
+ const completable = (_a = releaseGood.orderInventories) === null || _a === void 0 ? void 0 : _a.every(oi => complete_status.includes(oi.status));
23
+ const settingRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(setting_base_1.Setting)) || (0, typeorm_1.getRepository)(setting_base_1.Setting);
24
+ const qcSetting = await settingRepo.findOne({
25
+ where: { domain, name: SETTINGS.QC_SKU }
26
+ });
27
+ const useQcSku = ((_b = qcSetting === null || qcSetting === void 0 ? void 0 : qcSetting.value) === null || _b === void 0 ? void 0 : _b.toString().toLowerCase().trim()) === 'true';
28
+ let deliveryOrders = await (0, typeorm_1.getRepository)(sales_base_1.DeliveryOrder).find({
29
+ where: { releaseGood },
30
+ relations: ['orderInventories', 'orderInventories.inventory', 'orderInventories.product']
31
+ });
32
+ if (useQcSku) {
33
+ deliveryOrders = deliveryOrders
34
+ .map((do_) => {
35
+ const liveOIs = do_.orderInventories.filter((oi) => oi.status !== sales_base_1.ORDER_INVENTORY_STATUS.TERMINATED);
36
+ return Object.assign(Object.assign({}, do_), { orderInventories: liveOIs });
37
+ })
38
+ .filter((do_) => do_.orderInventories.length > 0);
39
+ }
40
+ return {
41
+ completable: completable,
42
+ deliveryOrders: deliveryOrders
43
+ };
44
+ }
45
+ };
46
+ //# sourceMappingURL=get-delivery-orders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-delivery-orders.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/get-delivery-orders.ts"],"names":[],"mappings":";;;AAAA,qCAAkE;AAGlE,2DAA+F;AAC/F,+DAAsD;AAEtD,MAAM,QAAQ,GAAG;IACf,MAAM,EAAE,QAAQ;CACjB,CAAA;AAEY,QAAA,iBAAiB,GAAG;IAC/B,KAAK,CAAC,iBAAiB,CAAC,CAAM,EAAE,EAAE,aAAa,EAAE,EAAE,OAAY;;QAC7D,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAA0C,OAAO,CAAC,KAAK,CAAA;QAE3E,MAAM,WAAW,GAAgB,MAAM,IAAA,uBAAa,EAAC,wBAAW,CAAC,CAAC,OAAO,CAAC;YACxE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACtC,SAAS,EAAE,CAAC,kBAAkB,CAAC;SAChC,CAAC,CAAA;QAEF,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,aAAa,YAAY,CAAC,CAAA;SACpE;QAED,MAAM,eAAe,GAAG,CAAC,mCAAsB,CAAC,MAAM,EAAE,mCAAsB,CAAC,UAAU,EAAE,mCAAsB,CAAC,SAAS,EAAE,mCAAsB,CAAC,OAAO,CAAC,CAAA;QAC5J,MAAM,WAAW,GAAG,MAAA,WAAW,CAAC,gBAAgB,0CAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;QAElG,MAAM,WAAW,GAAwB,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,CAAC,sBAAO,CAAC,KAAI,IAAA,uBAAa,EAAC,sBAAO,CAAC,CAAA;QAC7F,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC;YAC1C,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE;SACzC,CAAC,CAAA;QAEF,MAAM,QAAQ,GACZ,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,QAAQ,GAAG,WAAW,GAAG,IAAI,EAAE,MAAK,MAAM,CAAA;QAE9D,IAAI,cAAc,GAAoB,MAAM,IAAA,uBAAa,EAAC,0BAAa,CAAC,CAAC,IAAI,CAAC;YAC5E,KAAK,EAAE,EAAE,WAAW,EAAE;YACtB,SAAS,EAAE,CAAC,kBAAkB,EAAE,4BAA4B,EAAE,0BAA0B,CAAC;SAC1F,CAAC,CAAA;QAEF,IAAI,QAAQ,EAAE;YACZ,cAAc,GAAG,cAAc;iBAC9B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,MAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,CACzC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,mCAAsB,CAAC,UAAU,CACxD,CAAA;gBACD,uCAAY,GAAG,KAAE,gBAAgB,EAAE,OAAO,IAAE;YAC9C,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;SAClD;QAED,OAAO;YACL,WAAW,EAAE,WAAW;YACxB,cAAc,EAAE,cAAc;SAC/B,CAAA;IACH,CAAC;CACF,CAAA"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLoadingTask = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const sales_base_1 = require("@things-factory/sales-base");
6
+ const worksheet_base_1 = require("@things-factory/worksheet-base");
7
+ const loading_worksheet_v2_1 = require("./loading-worksheet-v2");
8
+ exports.getLoadingTask = {
9
+ async getLoadingTask(_, {}, context) {
10
+ const { tx, domain, user } = context.state;
11
+ if (process.env.NODE_ENV == 'development') {
12
+ console.time('getLoadingTask');
13
+ }
14
+ try {
15
+ // 1. Find assigned worksheet
16
+ let worksheet = await tx
17
+ .getRepository(worksheet_base_1.Worksheet)
18
+ .createQueryBuilder('ws')
19
+ .innerJoinAndSelect('ws.bizplace', 'biz')
20
+ .innerJoinAndSelect('ws.releaseGood', 'rg')
21
+ .innerJoin('ws.worksheetDetails', 'wsd')
22
+ .where({
23
+ domain,
24
+ type: worksheet_base_1.WORKSHEET_TYPE.LOADING,
25
+ sorter: user,
26
+ status: (0, typeorm_1.In)([worksheet_base_1.WORKSHEET_STATUS.EXECUTING, worksheet_base_1.WORKSHEET_STATUS.DEACTIVATED])
27
+ })
28
+ .andWhere('rg.status IN (:...status)', {
29
+ status: [sales_base_1.ORDER_STATUS.LOADING, sales_base_1.ORDER_STATUS.PROCESSING, sales_base_1.ORDER_STATUS.PARTIAL_PROCESSING]
30
+ })
31
+ .andWhere('wsd.status NOT IN (:...status)', { status: [worksheet_base_1.WORKSHEET_STATUS.DONE, worksheet_base_1.WORKSHEET_STATUS.DEACTIVATED] })
32
+ .getOne();
33
+ // 2. If no assigned worksheet, find and assign next available one
34
+ if (!worksheet) {
35
+ let updatedWorksheets = await (0, typeorm_1.getConnection)().transaction(async (tx2) => {
36
+ let x = await tx2.query(`
37
+ UPDATE worksheets ws SET
38
+ sorter_id = $2,
39
+ updated_at = NOW(),
40
+ updater_id = $2
41
+ FROM (
42
+ SELECT ws.id
43
+ FROM worksheets ws
44
+ INNER JOIN release_goods rg ON rg.id = ws.release_good_id
45
+ INNER JOIN worksheet_details wsd ON wsd.worksheet_id = ws.id
46
+ WHERE ws.domain_id = $1
47
+ AND ws.type = 'LOADING'
48
+ AND ws.status IN ('EXECUTING', 'DEACTIVATED')
49
+ AND ws.sorter_id IS NULL
50
+ AND rg.status IN ('LOADING', 'PROCESSING', 'PARTIAL_PROCESSING')
51
+ AND wsd.status NOT IN ('DONE', 'DEACTIVATED')
52
+ AND (rg.sorted_by_id = $2 OR rg.sorted_by_id IS NULL)
53
+ ORDER BY rg.created_at
54
+ LIMIT 1
55
+ ) src
56
+ WHERE src.id = ws.id
57
+ RETURNING ws.id
58
+ `, [domain.id, user.id]);
59
+ return x[0];
60
+ });
61
+ if (updatedWorksheets.length == 0)
62
+ throw new Error('no suitable worksheet found');
63
+ //fetch updated ws
64
+ worksheet = await tx
65
+ .getRepository(worksheet_base_1.Worksheet)
66
+ .createQueryBuilder('ws')
67
+ .innerJoinAndSelect('ws.releaseGood', 'rg')
68
+ .where('ws.id = :id', { id: updatedWorksheets[0].id })
69
+ .andWhere('ws.sorter_id = :sorter', { sorter: user.id })
70
+ .getOne();
71
+ }
72
+ //validate worksheet is assigned to user
73
+ if (!worksheet)
74
+ throw new Error('Please try again by clicking the "Get Task" button');
75
+ if (worksheet.status == worksheet_base_1.WORKSHEET_STATUS.DEACTIVATED) {
76
+ await tx.getRepository(worksheet_base_1.Worksheet).update(worksheet.id, {
77
+ status: worksheet_base_1.WORKSHEET_STATUS.EXECUTING,
78
+ startedAt: new Date()
79
+ });
80
+ }
81
+ //update ro sorter if its null
82
+ if ((worksheet === null || worksheet === void 0 ? void 0 : worksheet.releaseGood.sortedBy) == null) {
83
+ await tx.getRepository(sales_base_1.ReleaseGood).update(worksheet.releaseGood.id, {
84
+ sortedBy: user
85
+ });
86
+ }
87
+ return loading_worksheet_v2_1.loadingWorksheetv2.loadingWorksheetv2(_, { orderNo: worksheet.releaseGood.name, filter: 'all' }, context);
88
+ }
89
+ catch (error) {
90
+ console.error(error);
91
+ throw error;
92
+ }
93
+ finally {
94
+ if (process.env.NODE_ENV == 'development') {
95
+ console.timeEnd('getLoadingTask');
96
+ }
97
+ }
98
+ }
99
+ };
100
+ //# sourceMappingURL=get-loading-task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-loading-task.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/get-loading-task.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Mutation = exports.Query = void 0;
4
+ const get_loading_task_1 = require("./get-loading-task");
5
+ const sort_item_1 = require("./sort-item");
6
+ const find_loadable_release_good_1 = require("./find-loadable-release-good");
7
+ const find_loadable_release_good_by_bin_1 = require("./find-loadable-release-good-by-bin");
8
+ const loading_worksheet_v2_1 = require("./loading-worksheet-v2");
9
+ const load_by_qty_1 = require("./load-by-qty");
10
+ const my_loading_assignment_status_1 = require("./my-loading-assignment-status");
11
+ const get_delivery_orders_1 = require("./get-delivery-orders");
12
+ const undo_load_1 = require("./undo-load");
13
+ const warehouse_return_1 = require("./warehouse-return");
14
+ const complete_load_1 = require("./complete-load");
15
+ exports.Query = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, find_loadable_release_good_1.findLoadableReleaseGood), find_loadable_release_good_by_bin_1.findLoadableReleaseGoodByBin), loading_worksheet_v2_1.loadingWorksheetv2), my_loading_assignment_status_1.myLoadingAssignmentStatus), get_delivery_orders_1.getDeliveryOrders);
16
+ exports.Mutation = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, get_loading_task_1.getLoadingTask), sort_item_1.sortItem), load_by_qty_1.loadByQty), undo_load_1.undoLoad), warehouse_return_1.warehouseReturn), complete_load_1.completeLoad);
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/index.ts"],"names":[],"mappings":";;;AAAA,yDAAmD;AACnD,2CAAsC;AACtC,6EAAsE;AACtE,2FAAkF;AAClF,iEAA2D;AAC3D,+CAAyC;AACzC,iFAA0E;AAC1E,+DAAyD;AACzD,2CAAsC;AACtC,yDAAoD;AACpD,mDAA8C;AAEjC,QAAA,KAAK,6EACb,oDAAuB,GACvB,gEAA4B,GAC5B,yCAAkB,GAClB,wDAAyB,GACzB,uCAAiB,EACrB;AAEY,QAAA,QAAQ,2FAChB,iCAAc,GACd,oBAAQ,GACR,uBAAS,GACT,oBAAQ,GACR,kCAAe,GACf,4BAAY,EAChB"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadByQty = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const uuid_1 = require("uuid");
6
+ const sales_base_1 = require("@things-factory/sales-base");
7
+ const worksheet_base_1 = require("@things-factory/worksheet-base");
8
+ const warehouse_base_1 = require("@things-factory/warehouse-base");
9
+ exports.loadByQty = {
10
+ async loadByQty(_, { worksheetDetailPatch }, context) {
11
+ var _a;
12
+ try {
13
+ const { domain, user, tx } = context.state;
14
+ console.time('load');
15
+ const updatedWorksheetDetails = worksheetDetailPatch.orderInventories;
16
+ const releaseGoodNo = worksheetDetailPatch.releaseGoodNo;
17
+ const releaseGood = await tx.getRepository(sales_base_1.ReleaseGood).findOne({
18
+ where: { domain, name: releaseGoodNo },
19
+ relations: ['bizplace', 'orderInventories']
20
+ });
21
+ if (!releaseGood) {
22
+ throw new Error('Release good not found');
23
+ }
24
+ const worksheet = await tx.getRepository(worksheet_base_1.Worksheet).findOne({
25
+ where: {
26
+ domain,
27
+ releaseGood,
28
+ type: worksheet_base_1.WORKSHEET_TYPE.LOADING,
29
+ status: (0, typeorm_1.In)([
30
+ worksheet_base_1.WORKSHEET_STATUS.EXECUTING,
31
+ worksheet_base_1.WORKSHEET_STATUS.PARTIAL_EXECUTING
32
+ ])
33
+ },
34
+ relations: ['worksheetDetails', 'worksheetDetails.targetInventory', 'worksheetDetails.domain']
35
+ });
36
+ if (!worksheet) {
37
+ throw new Error('No loading worksheet found for order ' + releaseGoodNo);
38
+ }
39
+ const oiIds = worksheet.worksheetDetails.map((wsd) => wsd.targetInventory.id);
40
+ const orderInventories = await tx.getRepository(sales_base_1.OrderInventory).find({
41
+ where: { id: (0, typeorm_1.In)(oiIds) },
42
+ relations: [
43
+ 'inventory',
44
+ 'domain',
45
+ 'bizplace',
46
+ 'releaseGood',
47
+ 'product',
48
+ 'productDetail',
49
+ 'binLocation',
50
+ 'orderProduct'
51
+ ]
52
+ });
53
+ const updatedOrderInventories = [];
54
+ for (const wsd of updatedWorksheetDetails) {
55
+ //find the respective wsd and oi to update
56
+ const foundWorksheetDetail = worksheet.worksheetDetails.find(foundWsd => foundWsd.name === wsd.name);
57
+ let orderInventory = orderInventories.find(oi => oi.id === foundWorksheetDetail.targetInventory.id);
58
+ //validate oi status and do is not yet generated
59
+ if (orderInventory.status === sales_base_1.ORDER_INVENTORY_STATUS.LOADED || orderInventory.deliveryOrderId !== null) {
60
+ continue;
61
+ }
62
+ // compare with sort qty
63
+ if (wsd.loadedQty > orderInventory.pickedQty) {
64
+ throw new Error('Load qty is more than picked qty for sku ' + wsd.productSku);
65
+ }
66
+ else if (wsd.loadedQty == orderInventory.releaseQty) {
67
+ //compare load qty to release, if order is partially picked, has to split oi
68
+ //update oi
69
+ orderInventory = Object.assign(Object.assign({}, orderInventory), { status: sales_base_1.ORDER_INVENTORY_STATUS.LOADED, updater: user, updatedAt: new Date() });
70
+ //update wsd
71
+ await tx.getRepository(worksheet_base_1.WorksheetDetail).update(foundWorksheetDetail.id, {
72
+ status: worksheet_base_1.WORKSHEET_STATUS.DONE,
73
+ updater: user,
74
+ updatedAt: new Date()
75
+ });
76
+ }
77
+ else if (wsd.loadedQty < orderInventory.releaseQty) {
78
+ //split oi
79
+ //create new order inventory with remaining quantity
80
+ const remainingQty = orderInventory.releaseQty - wsd.loadedQty;
81
+ const newOrderInventory = tx.getRepository(sales_base_1.OrderInventory).create(Object.assign(Object.assign({}, orderInventory), { id: undefined, name: sales_base_1.OrderNoGenerator.orderInventory(), releaseQty: remainingQty, releaseUomValue: (orderInventory.releaseUomValue / orderInventory.releaseQty) * remainingQty, pickedQty: orderInventory.pickedQty - wsd.loadedQty, sortedQty: orderInventory.sortedQty === 0 ? 0 : orderInventory.sortedQty - wsd.loadedQty, status: orderInventory.status, updater: user, updatedAt: new Date() }));
82
+ await tx.getRepository(sales_base_1.OrderInventory).save(newOrderInventory);
83
+ //create new worksheet detail for the new order inventory
84
+ const newWorksheetDetail = tx.getRepository(worksheet_base_1.WorksheetDetail).create(Object.assign(Object.assign({}, foundWorksheetDetail), { id: undefined, name: `LOAD-DETAIL-` + (0, uuid_1.v4)(), worksheet: worksheet, targetInventory: newOrderInventory, status: worksheet_base_1.WORKSHEET_STATUS.EXECUTING, updater: user, updatedAt: new Date() }));
85
+ await tx.getRepository(worksheet_base_1.WorksheetDetail).save(newWorksheetDetail);
86
+ //update current order inventory to loaded with loaded quantity
87
+ orderInventory = Object.assign(Object.assign({}, orderInventory), { status: sales_base_1.ORDER_INVENTORY_STATUS.LOADED, releaseUomValue: (orderInventory.releaseUomValue / orderInventory.releaseQty) * wsd.loadedQty, releaseQty: wsd.loadedQty, pickedQty: wsd.loadedQty, sortedQty: wsd.loadedQty, updater: user, updatedAt: new Date() });
88
+ //update current wsd
89
+ await tx.getRepository(worksheet_base_1.WorksheetDetail).update(foundWorksheetDetail.id, {
90
+ status: worksheet_base_1.WORKSHEET_STATUS.DONE,
91
+ updater: user,
92
+ updatedAt: new Date()
93
+ });
94
+ }
95
+ const inventory = await tx.getRepository(warehouse_base_1.Inventory).findOne({
96
+ where: { id: orderInventory.inventoryId }
97
+ });
98
+ // generate inventory history
99
+ await (0, warehouse_base_1.generateInventoryHistory)(inventory, releaseGood, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.LOADING, 0, 0, user, tx);
100
+ updatedOrderInventories.push(orderInventory);
101
+ }
102
+ if (updatedOrderInventories.length < 1) {
103
+ return false;
104
+ }
105
+ else {
106
+ const deliveryOrder = {
107
+ truckNo: worksheetDetailPatch === null || worksheetDetailPatch === void 0 ? void 0 : worksheetDetailPatch.vehicleNo,
108
+ ownCollection: worksheetDetailPatch === null || worksheetDetailPatch === void 0 ? void 0 : worksheetDetailPatch.ownCollection,
109
+ totalPalletQty: worksheetDetailPatch === null || worksheetDetailPatch === void 0 ? void 0 : worksheetDetailPatch.palletQty,
110
+ contactPointRefId: ((_a = releaseGood.deliverTo) === null || _a === void 0 ? void 0 : _a.id) || null
111
+ };
112
+ const createdDo = await (0, sales_base_1.generateDeliveryOrder)(deliveryOrder, updatedOrderInventories, releaseGood.bizplace, releaseGood, domain, user, tx);
113
+ return true;
114
+ }
115
+ }
116
+ catch (e) {
117
+ throw e;
118
+ }
119
+ }
120
+ };
121
+ //# sourceMappingURL=load-by-qty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-by-qty.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/load-by-qty.ts"],"names":[],"mappings":"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"}