@things-factory/sales-base 5.0.13 → 6.0.0-alpha.1

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 (330) hide show
  1. package/dist-server/constants/order.js +4 -1
  2. package/dist-server/constants/order.js.map +1 -1
  3. package/dist-server/constants/release-good.js +5 -1
  4. package/dist-server/constants/release-good.js.map +1 -1
  5. package/dist-server/controllers/ecommerce/ecommerce-controller.js +1 -1
  6. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
  7. package/dist-server/controllers/ecommerce/sellercraft-controller.js +102 -94
  8. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  9. package/dist-server/controllers/order-controller.js +7 -5
  10. package/dist-server/controllers/order-controller.js.map +1 -1
  11. package/dist-server/service/arrival-notice/arrival-notice-mutation.js +152 -65
  12. package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
  13. package/dist-server/service/arrival-notice/arrival-notice-query.js +15 -16
  14. package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -1
  15. package/dist-server/service/arrival-notice/arrival-notice-types.js +1 -2
  16. package/dist-server/service/arrival-notice/arrival-notice-types.js.map +1 -1
  17. package/dist-server/service/arrival-notice/arrival-notice.js +7 -7
  18. package/dist-server/service/arrival-notice/arrival-notice.js.map +1 -1
  19. package/dist-server/service/claim/claim-mutation.js +15 -14
  20. package/dist-server/service/claim/claim-mutation.js.map +1 -1
  21. package/dist-server/service/claim/claim-query.js +8 -10
  22. package/dist-server/service/claim/claim-query.js.map +1 -1
  23. package/dist-server/service/claim/claim.js +7 -7
  24. package/dist-server/service/claim/claim.js.map +1 -1
  25. package/dist-server/service/claim-detail/claim-detail-mutation.js +9 -8
  26. package/dist-server/service/claim-detail/claim-detail-mutation.js.map +1 -1
  27. package/dist-server/service/claim-detail/claim-detail-query.js +9 -10
  28. package/dist-server/service/claim-detail/claim-detail-query.js.map +1 -1
  29. package/dist-server/service/claim-detail/claim-detail.js +3 -4
  30. package/dist-server/service/claim-detail/claim-detail.js.map +1 -1
  31. package/dist-server/service/claim-order/claim-order-mutation.js +9 -8
  32. package/dist-server/service/claim-order/claim-order-mutation.js.map +1 -1
  33. package/dist-server/service/claim-order/claim-order-query.js +9 -10
  34. package/dist-server/service/claim-order/claim-order-query.js.map +1 -1
  35. package/dist-server/service/claim-order/claim-order.js +3 -4
  36. package/dist-server/service/claim-order/claim-order.js.map +1 -1
  37. package/dist-server/service/collection-order/collection-order-mutation.js +15 -14
  38. package/dist-server/service/collection-order/collection-order-mutation.js.map +1 -1
  39. package/dist-server/service/collection-order/collection-order-query.js +14 -14
  40. package/dist-server/service/collection-order/collection-order-query.js.map +1 -1
  41. package/dist-server/service/collection-order/collection-order-types.js +4 -5
  42. package/dist-server/service/collection-order/collection-order-types.js.map +1 -1
  43. package/dist-server/service/collection-order/collection-order.js +7 -7
  44. package/dist-server/service/collection-order/collection-order.js.map +1 -1
  45. package/dist-server/service/delivery-order/delivery-order-mutation.js +138 -51
  46. package/dist-server/service/delivery-order/delivery-order-mutation.js.map +1 -1
  47. package/dist-server/service/delivery-order/delivery-order-query.js +51 -38
  48. package/dist-server/service/delivery-order/delivery-order-query.js.map +1 -1
  49. package/dist-server/service/delivery-order/delivery-order-types.js +22 -3
  50. package/dist-server/service/delivery-order/delivery-order-types.js.map +1 -1
  51. package/dist-server/service/delivery-order/delivery-order.js +92 -7
  52. package/dist-server/service/delivery-order/delivery-order.js.map +1 -1
  53. package/dist-server/service/draft-release-good/draft-release-good-mutation.js +157 -143
  54. package/dist-server/service/draft-release-good/draft-release-good-mutation.js.map +1 -1
  55. package/dist-server/service/draft-release-good/draft-release-good-query.js +54 -24
  56. package/dist-server/service/draft-release-good/draft-release-good-query.js.map +1 -1
  57. package/dist-server/service/draft-release-good/draft-release-good-type.js +3 -4
  58. package/dist-server/service/draft-release-good/draft-release-good-type.js.map +1 -1
  59. package/dist-server/service/draft-release-good/draft-release-good.js +11 -6
  60. package/dist-server/service/draft-release-good/draft-release-good.js.map +1 -1
  61. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js +12 -11
  62. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js.map +1 -1
  63. package/dist-server/service/goods-receival-note/goods-receival-note-query.js +104 -12
  64. package/dist-server/service/goods-receival-note/goods-receival-note-query.js.map +1 -1
  65. package/dist-server/service/goods-receival-note/goods-receival-note-types.js +67 -4
  66. package/dist-server/service/goods-receival-note/goods-receival-note-types.js.map +1 -1
  67. package/dist-server/service/goods-receival-note/goods-receival-note.js +46 -5
  68. package/dist-server/service/goods-receival-note/goods-receival-note.js.map +1 -1
  69. package/dist-server/service/inventory-check/inventory-check-mutation.js +6 -6
  70. package/dist-server/service/inventory-check/inventory-check-mutation.js.map +1 -1
  71. package/dist-server/service/inventory-check/inventory-check-query.js +8 -10
  72. package/dist-server/service/inventory-check/inventory-check-query.js.map +1 -1
  73. package/dist-server/service/inventory-check/inventory-check.js +5 -5
  74. package/dist-server/service/inventory-check/inventory-check.js.map +1 -1
  75. package/dist-server/service/invoice/invoice-mutation.js +5 -5
  76. package/dist-server/service/invoice/invoice-mutation.js.map +1 -1
  77. package/dist-server/service/invoice/invoice-query.js +7 -9
  78. package/dist-server/service/invoice/invoice-query.js.map +1 -1
  79. package/dist-server/service/invoice/invoice-types.js +2 -3
  80. package/dist-server/service/invoice/invoice-types.js.map +1 -1
  81. package/dist-server/service/invoice/invoice.js +3 -4
  82. package/dist-server/service/invoice/invoice.js.map +1 -1
  83. package/dist-server/service/invoice-product/invoice-product-mutation.js +1 -1
  84. package/dist-server/service/invoice-product/invoice-product-mutation.js.map +1 -1
  85. package/dist-server/service/invoice-product/invoice-product-query.js +7 -9
  86. package/dist-server/service/invoice-product/invoice-product-query.js.map +1 -1
  87. package/dist-server/service/invoice-product/invoice-product.js +5 -5
  88. package/dist-server/service/invoice-product/invoice-product.js.map +1 -1
  89. package/dist-server/service/job-sheet/job-sheet-mutation.js +5 -5
  90. package/dist-server/service/job-sheet/job-sheet-mutation.js.map +1 -1
  91. package/dist-server/service/job-sheet/job-sheet-query.js +6 -8
  92. package/dist-server/service/job-sheet/job-sheet-query.js.map +1 -1
  93. package/dist-server/service/job-sheet/job-sheet.js +5 -5
  94. package/dist-server/service/job-sheet/job-sheet.js.map +1 -1
  95. package/dist-server/service/manifest/manifest-mutation.js +84 -4
  96. package/dist-server/service/manifest/manifest-mutation.js.map +1 -1
  97. package/dist-server/service/manifest/manifest-query.js +52 -19
  98. package/dist-server/service/manifest/manifest-query.js.map +1 -1
  99. package/dist-server/service/manifest/manifest-type.js +8 -0
  100. package/dist-server/service/manifest/manifest-type.js.map +1 -1
  101. package/dist-server/service/manifest/manifest.js +8 -4
  102. package/dist-server/service/manifest/manifest.js.map +1 -1
  103. package/dist-server/service/order-inventory/order-inventory-mutation.js +3 -3
  104. package/dist-server/service/order-inventory/order-inventory-mutation.js.map +1 -1
  105. package/dist-server/service/order-inventory/order-inventory-query.js +202 -221
  106. package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
  107. package/dist-server/service/order-inventory/order-inventory-types.js +15 -15
  108. package/dist-server/service/order-inventory/order-inventory-types.js.map +1 -1
  109. package/dist-server/service/order-inventory/order-inventory.js +45 -15
  110. package/dist-server/service/order-inventory/order-inventory.js.map +1 -1
  111. package/dist-server/service/order-product/order-product-mutation.js +2 -2
  112. package/dist-server/service/order-product/order-product-mutation.js.map +1 -1
  113. package/dist-server/service/order-product/order-product-query.js +44 -14
  114. package/dist-server/service/order-product/order-product-query.js.map +1 -1
  115. package/dist-server/service/order-product/order-product-types.js +18 -19
  116. package/dist-server/service/order-product/order-product-types.js.map +1 -1
  117. package/dist-server/service/order-product/order-product.js +14 -11
  118. package/dist-server/service/order-product/order-product.js.map +1 -1
  119. package/dist-server/service/order-tote/order-tote-mutation.js +2 -2
  120. package/dist-server/service/order-tote/order-tote-mutation.js.map +1 -1
  121. package/dist-server/service/order-tote/order-tote-query.js +13 -14
  122. package/dist-server/service/order-tote/order-tote-query.js.map +1 -1
  123. package/dist-server/service/order-tote/order-tote-types.js +4 -5
  124. package/dist-server/service/order-tote/order-tote-types.js.map +1 -1
  125. package/dist-server/service/order-tote/order-tote.js +6 -5
  126. package/dist-server/service/order-tote/order-tote.js.map +1 -1
  127. package/dist-server/service/order-tote-item/order-tote-item-mutation.js +2 -2
  128. package/dist-server/service/order-tote-item/order-tote-item-mutation.js.map +1 -1
  129. package/dist-server/service/order-tote-item/order-tote-item-query.js +7 -9
  130. package/dist-server/service/order-tote-item/order-tote-item-query.js.map +1 -1
  131. package/dist-server/service/order-tote-item/order-tote-item-types.js +5 -6
  132. package/dist-server/service/order-tote-item/order-tote-item-types.js.map +1 -1
  133. package/dist-server/service/order-tote-item/order-tote-item.js +2 -3
  134. package/dist-server/service/order-tote-item/order-tote-item.js.map +1 -1
  135. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js +2 -2
  136. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js.map +1 -1
  137. package/dist-server/service/order-tote-seal/order-tote-seal-query.js +8 -10
  138. package/dist-server/service/order-tote-seal/order-tote-seal-query.js.map +1 -1
  139. package/dist-server/service/order-tote-seal/order-tote-seal-types.js +2 -3
  140. package/dist-server/service/order-tote-seal/order-tote-seal-types.js.map +1 -1
  141. package/dist-server/service/order-tote-seal/order-tote-seal.js +2 -3
  142. package/dist-server/service/order-tote-seal/order-tote-seal.js.map +1 -1
  143. package/dist-server/service/order-vas/order-vas-mutation.js +1 -1
  144. package/dist-server/service/order-vas/order-vas-mutation.js.map +1 -1
  145. package/dist-server/service/order-vas/order-vas-query.js +8 -10
  146. package/dist-server/service/order-vas/order-vas-query.js.map +1 -1
  147. package/dist-server/service/order-vas/order-vas-types.js +16 -17
  148. package/dist-server/service/order-vas/order-vas-types.js.map +1 -1
  149. package/dist-server/service/order-vas/order-vas.js +7 -7
  150. package/dist-server/service/order-vas/order-vas.js.map +1 -1
  151. package/dist-server/service/others/other-query.js +48 -30
  152. package/dist-server/service/others/other-query.js.map +1 -1
  153. package/dist-server/service/purchase-order/purchase-order-mutation.js +36 -34
  154. package/dist-server/service/purchase-order/purchase-order-mutation.js.map +1 -1
  155. package/dist-server/service/purchase-order/purchase-order-query.js +11 -12
  156. package/dist-server/service/purchase-order/purchase-order-query.js.map +1 -1
  157. package/dist-server/service/purchase-order/purchase-order-types.js +8 -9
  158. package/dist-server/service/purchase-order/purchase-order-types.js.map +1 -1
  159. package/dist-server/service/purchase-order/purchase-order.js +8 -8
  160. package/dist-server/service/purchase-order/purchase-order.js.map +1 -1
  161. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js +1 -1
  162. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js.map +1 -1
  163. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js +9 -10
  164. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js.map +1 -1
  165. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js +3 -4
  166. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js.map +1 -1
  167. package/dist-server/service/release-good/release-good-mutation.js +182 -94
  168. package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
  169. package/dist-server/service/release-good/release-good-query.js +251 -172
  170. package/dist-server/service/release-good/release-good-query.js.map +1 -1
  171. package/dist-server/service/release-good/release-good-types.js +181 -9
  172. package/dist-server/service/release-good/release-good-types.js.map +1 -1
  173. package/dist-server/service/release-good/release-good.js +64 -13
  174. package/dist-server/service/release-good/release-good.js.map +1 -1
  175. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js +19 -14
  176. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js.map +1 -1
  177. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js +8 -10
  178. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js.map +1 -1
  179. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js +6 -7
  180. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js.map +1 -1
  181. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js +5 -5
  182. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js.map +1 -1
  183. package/dist-server/service/return-order/return-order-mutation.js +38 -27
  184. package/dist-server/service/return-order/return-order-mutation.js.map +1 -1
  185. package/dist-server/service/return-order/return-order-query.js +14 -16
  186. package/dist-server/service/return-order/return-order-query.js.map +1 -1
  187. package/dist-server/service/return-order/return-order-types.js +9 -9
  188. package/dist-server/service/return-order/return-order-types.js.map +1 -1
  189. package/dist-server/service/return-order/return-order.js +6 -6
  190. package/dist-server/service/return-order/return-order.js.map +1 -1
  191. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js +17 -13
  192. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js.map +1 -1
  193. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js +13 -14
  194. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js.map +1 -1
  195. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js +9 -9
  196. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js.map +1 -1
  197. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js +8 -8
  198. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js.map +1 -1
  199. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js +4 -4
  200. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js.map +1 -1
  201. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js +7 -9
  202. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js.map +1 -1
  203. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js +4 -5
  204. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js.map +1 -1
  205. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js +7 -7
  206. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js.map +1 -1
  207. package/dist-server/service/shipping-order/shipping-order-mutation.js +2 -2
  208. package/dist-server/service/shipping-order/shipping-order-mutation.js.map +1 -1
  209. package/dist-server/service/shipping-order/shipping-order-query.js +9 -10
  210. package/dist-server/service/shipping-order/shipping-order-query.js.map +1 -1
  211. package/dist-server/service/shipping-order/shipping-order-types.js +21 -1
  212. package/dist-server/service/shipping-order/shipping-order-types.js.map +1 -1
  213. package/dist-server/service/shipping-order/shipping-order.js +27 -7
  214. package/dist-server/service/shipping-order/shipping-order.js.map +1 -1
  215. package/dist-server/service/transfer-order/transfer-order-mutation.js +19 -14
  216. package/dist-server/service/transfer-order/transfer-order-mutation.js.map +1 -1
  217. package/dist-server/service/transfer-order/transfer-order-query.js +8 -10
  218. package/dist-server/service/transfer-order/transfer-order-query.js.map +1 -1
  219. package/dist-server/service/transfer-order/transfer-order-types.js +1 -2
  220. package/dist-server/service/transfer-order/transfer-order-types.js.map +1 -1
  221. package/dist-server/service/transfer-order/transfer-order.js +5 -5
  222. package/dist-server/service/transfer-order/transfer-order.js.map +1 -1
  223. package/dist-server/service/vas/vas-mutation.js +2 -2
  224. package/dist-server/service/vas/vas-mutation.js.map +1 -1
  225. package/dist-server/service/vas/vas-query.js +8 -10
  226. package/dist-server/service/vas/vas-query.js.map +1 -1
  227. package/dist-server/service/vas/vas.js +3 -4
  228. package/dist-server/service/vas/vas.js.map +1 -1
  229. package/dist-server/service/vas-order/vas-order-mutation.js +20 -15
  230. package/dist-server/service/vas-order/vas-order-mutation.js.map +1 -1
  231. package/dist-server/service/vas-order/vas-order-query.js +11 -12
  232. package/dist-server/service/vas-order/vas-order-query.js.map +1 -1
  233. package/dist-server/service/vas-order/vas-order.js +5 -5
  234. package/dist-server/service/vas-order/vas-order.js.map +1 -1
  235. package/dist-server/tsconfig.tsbuildinfo +1 -1
  236. package/dist-server/utils/datetime-util.js +49 -0
  237. package/dist-server/utils/datetime-util.js.map +1 -0
  238. package/dist-server/utils/index.js +1 -0
  239. package/dist-server/utils/index.js.map +1 -1
  240. package/dist-server/utils/inventory-util.js +89 -29
  241. package/dist-server/utils/inventory-util.js.map +1 -1
  242. package/package.json +13 -13
  243. package/server/constants/order.ts +4 -1
  244. package/server/constants/release-good.ts +6 -3
  245. package/server/controllers/ecommerce/ecommerce-controller.ts +1 -1
  246. package/server/controllers/ecommerce/sellercraft-controller.ts +124 -107
  247. package/server/controllers/order-controller.ts +7 -5
  248. package/server/service/arrival-notice/arrival-notice-mutation.ts +204 -91
  249. package/server/service/arrival-notice/arrival-notice-query.ts +17 -17
  250. package/server/service/claim/claim-mutation.ts +20 -14
  251. package/server/service/claim/claim-query.ts +10 -9
  252. package/server/service/claim-detail/claim-detail-mutation.ts +16 -10
  253. package/server/service/claim-detail/claim-detail-query.ts +13 -8
  254. package/server/service/claim-order/claim-order-mutation.ts +16 -10
  255. package/server/service/claim-order/claim-order-query.ts +10 -8
  256. package/server/service/collection-order/collection-order-mutation.ts +31 -32
  257. package/server/service/collection-order/collection-order-query.ts +18 -15
  258. package/server/service/delivery-order/delivery-order-mutation.ts +206 -73
  259. package/server/service/delivery-order/delivery-order-query.ts +90 -53
  260. package/server/service/delivery-order/delivery-order-types.ts +15 -0
  261. package/server/service/delivery-order/delivery-order.ts +68 -0
  262. package/server/service/draft-release-good/draft-release-good-mutation.ts +208 -183
  263. package/server/service/draft-release-good/draft-release-good-query.ts +81 -44
  264. package/server/service/draft-release-good/draft-release-good.ts +7 -3
  265. package/server/service/goods-receival-note/goods-receival-note-mutation.ts +23 -18
  266. package/server/service/goods-receival-note/goods-receival-note-query.ts +126 -15
  267. package/server/service/goods-receival-note/goods-receival-note-types.ts +48 -0
  268. package/server/service/goods-receival-note/goods-receival-note.ts +32 -0
  269. package/server/service/inventory-check/inventory-check-mutation.ts +24 -19
  270. package/server/service/inventory-check/inventory-check-query.ts +10 -9
  271. package/server/service/invoice/invoice-mutation.ts +14 -11
  272. package/server/service/invoice/invoice-query.ts +8 -9
  273. package/server/service/invoice-product/invoice-product-mutation.ts +4 -4
  274. package/server/service/invoice-product/invoice-product-query.ts +8 -9
  275. package/server/service/job-sheet/job-sheet-mutation.ts +12 -10
  276. package/server/service/job-sheet/job-sheet-query.ts +16 -11
  277. package/server/service/manifest/manifest-mutation.ts +93 -8
  278. package/server/service/manifest/manifest-query.ts +73 -23
  279. package/server/service/manifest/manifest-type.ts +6 -0
  280. package/server/service/manifest/manifest.ts +6 -2
  281. package/server/service/order-inventory/order-inventory-mutation.ts +13 -12
  282. package/server/service/order-inventory/order-inventory-query.ts +226 -253
  283. package/server/service/order-inventory/order-inventory.ts +26 -2
  284. package/server/service/order-product/order-product-mutation.ts +11 -10
  285. package/server/service/order-product/order-product-query.ts +55 -18
  286. package/server/service/order-product/order-product.ts +7 -0
  287. package/server/service/order-tote/order-tote-mutation.ts +10 -9
  288. package/server/service/order-tote/order-tote-query.ts +13 -15
  289. package/server/service/order-tote/order-tote.ts +13 -2
  290. package/server/service/order-tote-item/order-tote-item-mutation.ts +10 -9
  291. package/server/service/order-tote-item/order-tote-item-query.ts +12 -18
  292. package/server/service/order-tote-seal/order-tote-seal-mutation.ts +10 -9
  293. package/server/service/order-tote-seal/order-tote-seal-query.ts +10 -11
  294. package/server/service/order-vas/order-vas-mutation.ts +4 -5
  295. package/server/service/order-vas/order-vas-query.ts +10 -9
  296. package/server/service/others/other-query.ts +76 -54
  297. package/server/service/purchase-order/purchase-order-mutation.ts +46 -46
  298. package/server/service/purchase-order/purchase-order-query.ts +13 -11
  299. package/server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.ts +7 -7
  300. package/server/service/purchase-order-other-charge/purchase-order-other-charge-query.ts +14 -9
  301. package/server/service/release-good/release-good-mutation.ts +297 -134
  302. package/server/service/release-good/release-good-query.ts +268 -186
  303. package/server/service/release-good/release-good-types.ts +132 -4
  304. package/server/service/release-good/release-good.ts +55 -24
  305. package/server/service/retail-replenishment-order/retail-replenishment-order-mutation.ts +35 -29
  306. package/server/service/retail-replenishment-order/retail-replenishment-order-query.ts +13 -9
  307. package/server/service/retail-replenishment-order/retail-replenishment-order-types.ts +7 -5
  308. package/server/service/return-order/return-order-mutation.ts +82 -54
  309. package/server/service/return-order/return-order-query.ts +21 -19
  310. package/server/service/reverse-kitting-order/reverse-kitting-order-mutation.ts +38 -23
  311. package/server/service/reverse-kitting-order/reverse-kitting-order-query.ts +19 -16
  312. package/server/service/reverse-kitting-order/reverse-kitting-order.ts +2 -2
  313. package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.ts +9 -9
  314. package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.ts +7 -8
  315. package/server/service/shipping-order/shipping-order-mutation.ts +11 -11
  316. package/server/service/shipping-order/shipping-order-query.ts +13 -11
  317. package/server/service/shipping-order/shipping-order-types.ts +16 -1
  318. package/server/service/shipping-order/shipping-order.ts +18 -2
  319. package/server/service/transfer-order/transfer-order-mutation.ts +34 -25
  320. package/server/service/transfer-order/transfer-order-query.ts +11 -10
  321. package/server/service/vas/vas-mutation.ts +13 -15
  322. package/server/service/vas/vas-query.ts +12 -10
  323. package/server/service/vas-order/vas-order-mutation.ts +38 -28
  324. package/server/service/vas-order/vas-order-query.ts +15 -13
  325. package/server/utils/datetime-util.ts +54 -0
  326. package/server/utils/index.ts +1 -0
  327. package/server/utils/inventory-util.ts +128 -34
  328. package/translations/en.json +4 -0
  329. package/translations/ko.json +6 -2
  330. package/translations/ms.json +5 -1
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-order-mutation.js","sourceRoot":"","sources":["../../../server/service/delivery-order/delivery-order-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, getRepository, In, Repository } from 'typeorm'\n\nimport { Attachment, createAttachment, deleteAttachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint, getPermittedBizplaceIds } from '@things-factory/biz-base'\nimport { generateId } from '@things-factory/id-rule-base'\nimport { Product } from '@things-factory/product-base'\nimport { Setting } from '@things-factory/setting-base'\nimport { Domain, ObjectRef } from '@things-factory/shell'\nimport { TransportDriver, TransportVehicle, TRUCK_STATUS } from '@things-factory/transport-base'\nimport { Inventory } from '@things-factory/warehouse-base'\n\nimport {\n ORDER_INVENTORY_STATUS,\n ORDER_NUMBER_RULE_TYPE,\n ORDER_NUMBER_SETTING_KEY,\n ORDER_STATUS,\n ORDER_TYPES\n} from '../../constants'\nimport { OrderNoGenerator } from '../../utils/order-no-generator'\nimport { OrderInventory } from '../order-inventory/order-inventory'\nimport { NewOrderInventory, OrderInventoryPatch } from '../order-inventory/order-inventory-types'\nimport { ReleaseGood } from '../release-good/release-good'\nimport { DeliveryOrder } from './delivery-order'\nimport { DeliveryOrderPatch, NewDeliveryOrder } from './delivery-order-types'\n\n@Resolver(DeliveryOrder)\nexport class DeliveryOrderMutation {\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async createDeliveryOrder(\n @Ctx() context: any,\n @Arg('orderInfo', type => NewDeliveryOrder, { nullable: true }) orderInfo?: NewDeliveryOrder,\n @Arg('customerBizplace', type => ObjectRef, { nullable: true }) customerBizplace?: ObjectRef,\n @Arg('targetInventories', type => [NewOrderInventory], { nullable: true }) targetInventories?: NewOrderInventory[],\n @Arg('file', type => [GraphQLUpload], { nullable: true }) file?: FileUpload[]\n ): Promise<DeliveryOrder> {\n const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state\n\n return await createDeliveryOrder(orderInfo, customerBizplace, targetInventories, file, domain, user, tx)\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async updateDeliveryOrder(\n @Arg('name') name: string,\n @Arg('patch', type => DeliveryOrderPatch) patch: DeliveryOrderPatch,\n @Ctx() context: any\n ): Promise<DeliveryOrder> {\n const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state\n\n const deliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: {\n domain,\n name,\n bizplace: In(await getPermittedBizplaceIds(domain, user))\n }\n })\n\n return await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteDeliveryOrder(@Arg('name') name: string, @Ctx() context: any): Promise<boolean> {\n const { tx, domain }: { tx: EntityManager; domain: Domain } = context.state\n\n const foundDO = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain, name }\n })\n if (foundDO) {\n const previousAttachment: Attachment = await tx.getRepository(Attachment).findOne({\n where: { domain, refBy: foundDO.id }\n })\n if (previousAttachment) await deleteAttachment(null, { id: previousAttachment.id }, context)\n await tx.getRepository(DeliveryOrder).delete({ domain, name })\n }\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async generateDeliveryOrder(\n @Ctx() context: any,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('customerBizplace', type => ObjectRef, { nullable: true }) customerBizplace?: ObjectRef,\n @Arg('releaseGood', type => ObjectRef, { nullable: true }) releaseGood?: ObjectRef,\n @Arg('targetInventories', type => [ObjectRef], { nullable: true }) targetInventories?: ObjectRef[]\n ): Promise<DeliveryOrder> {\n const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state\n\n return await generateDeliveryOrder(orderInfo, targetInventories, customerBizplace, releaseGood, domain, user, tx)\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async confirmDeliveryOrder(@Arg('name') name: string, @Ctx() context: any): Promise<DeliveryOrder> {\n const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state\n\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain, name },\n relations: ['creator', 'updater']\n })\n\n let deliveryOrder: DeliveryOrder\n if (!foundDeliveryOrder) throw new Error(`Delivery Order doesn't exists.`)\n if (foundDeliveryOrder.status !== ORDER_STATUS.PENDING) throw new Error('Not confirmable status.')\n\n // delivery Order Status change (PENDING => PENDING_RECEIVE)\n deliveryOrder = await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n status: ORDER_STATUS.PENDING_RECEIVE,\n updater: user\n })\n\n return deliveryOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async receiveDeliveryOrder(@Arg('name') name: string, @Ctx() context: any): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state\n\n const deliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain, name }\n })\n\n if (!deliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (deliveryOrder.status !== ORDER_STATUS.PENDING_RECEIVE) throw new Error(`Status is not receivable.`)\n\n await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n updater: user\n })\n\n return deliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async checkDeliveredOrder(\n @Ctx() context: any,\n @Arg('name') name: string,\n @Arg('patch', type => DeliveryOrderPatch, { nullable: true }) patch?: DeliveryOrderPatch\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state\n const deliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain, name },\n relations: ['bizplace', 'transportDriver', 'transportVehicle']\n })\n\n if (!deliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (deliveryOrder.status !== ORDER_STATUS.DELIVERING) throw new Error(`Status is not receivable.`)\n\n let orderInventories: OrderInventory[] = await tx.getRepository(OrderInventory).find({\n where: { domain, deliveryOrder: deliveryOrder },\n relations: ['product']\n })\n\n // update order inventory status for manual DO only\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n if (\n orderInventory.type === ORDER_TYPES.DELIVERY &&\n orderInventory.status === ORDER_INVENTORY_STATUS.DELIVERING\n ) {\n return {\n ...orderInventory,\n status: ORDER_INVENTORY_STATUS.DONE\n }\n } else return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n ...patch,\n status: ORDER_STATUS.DONE,\n updater: user\n })\n\n if (!deliveryOrder?.ownCollection) {\n const foundTruck: TransportVehicle = deliveryOrder.transportVehicle\n await tx.getRepository(TransportVehicle).save({\n ...foundTruck,\n status: TRUCK_STATUS.IDLE,\n updater: user\n })\n }\n\n return deliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async dispatchDeliveryOrder(\n @Ctx() context: any,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('orderItems', type => [OrderInventoryPatch], { nullable: true }) orderItems?: OrderInventoryPatch[]\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain, name: orderInfo.name },\n relations: ['transportVehicle', 'bizplace']\n })\n\n if (!foundDeliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (foundDeliveryOrder.status === ORDER_STATUS.PENDING_CANCEL)\n throw new Error('Release order is pending for cancel')\n\n let deliveryOrderStatus = foundDeliveryOrder.status\n let orderInventories: OrderInventory[]\n orderInventories = await tx.getRepository(OrderInventory).find({\n where: { domain, deliveryOrder: foundDeliveryOrder },\n relations: ['inventory', 'inventory.product', 'inventory.reusablePallet']\n })\n\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n const inventory: Inventory = orderInventory.inventory\n const product: Product = inventory.product\n const foundItem = inventory.reusablePallet\n ? orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId &&\n item.pallet === inventory.reusablePallet.name\n )\n : orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId\n )\n\n if (foundItem[0].remark !== '') orderInventory.remark = foundItem[0].remark\n return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n // if there is other destination value, create a new contact point\n let foundCP: any = {}\n if (orderInfo?.otherDestination) {\n foundCP = {\n domain,\n name: orderInfo.contactName,\n bizplace: foundDeliveryOrder.bizplace,\n address: orderInfo.otherDestination,\n billingAddress: orderInfo.billingAddress,\n phone: orderInfo.contactPhone,\n email: orderInfo.contactEmail,\n companyName: orderInfo.contactCompany,\n type: orderInfo.contactType,\n creator: user\n }\n foundCP = await tx.getRepository(ContactPoint).save(foundCP)\n } else {\n foundCP = await tx.getRepository(ContactPoint).findOne({\n where: { domain, id: orderInfo.contactPoint, bizplace: foundDeliveryOrder.bizplace }\n })\n }\n\n let transportDriver: TransportDriver = null\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.ownDriver) {\n transportDriver = await tx.getRepository(TransportDriver).findOne({\n where: { domain, name: orderInfo.ownDriver }\n })\n }\n\n if (orderInfo?.ownTruck) {\n transportVehicle = await tx.getRepository(TransportVehicle).findOne({\n where: { domain, name: orderInfo.ownTruck }\n })\n\n await tx.getRepository(TransportVehicle).save({\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n })\n }\n\n if (foundDeliveryOrder.status === ORDER_STATUS.READY_TO_DISPATCH) {\n // update status to DELIVERING if current status is READY_TO_DISPATCH\n deliveryOrderStatus = ORDER_STATUS.DELIVERING\n }\n\n await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n transportDriver,\n transportVehicle,\n contactPointRefId: foundCP.id || null,\n otherDriver: orderInfo?.otherDriver || null,\n truckNo: orderInfo?.otherTruck || orderInfo?.ownTruck,\n to: foundCP.address,\n deliveryDate: orderInfo.deliveryDate,\n remark: orderInfo.remark,\n status: deliveryOrderStatus,\n reusablePallet: orderInfo.reusablePallet,\n updater: user\n })\n\n return foundDeliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async dispatchManualDeliveryOrder(\n @Ctx() context: any,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('orderItems', type => [OrderInventoryPatch], { nullable: true }) orderItems?: OrderInventoryPatch[]\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain, name: orderInfo.name },\n relations: ['transportVehicle', 'bizplace']\n })\n\n if (!foundDeliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (foundDeliveryOrder.status === ORDER_STATUS.PENDING_CANCEL)\n throw new Error('Release order is pending for cancel')\n\n let deliveryOrderStatus = foundDeliveryOrder.status\n let orderInventories: OrderInventory[]\n orderInventories = await tx.getRepository(OrderInventory).find({\n where: { domain, deliveryOrder: foundDeliveryOrder },\n relations: ['product']\n })\n\n // if there is other destination value, create a new contact point\n let foundCP: any = {}\n if (orderInfo?.otherDestination) {\n foundCP = {\n domain,\n name: orderInfo.contactName,\n bizplace: foundDeliveryOrder.bizplace,\n address: orderInfo.otherDestination,\n billingAddress: orderInfo.billingAddress,\n phone: orderInfo.contactPhone,\n email: orderInfo.contactEmail,\n companyName: orderInfo.contactCompany,\n type: orderInfo.contactType,\n creator: user\n }\n foundCP = await tx.getRepository(ContactPoint).save(foundCP)\n } else {\n foundCP = await tx.getRepository(ContactPoint).findOne({\n where: { domain, id: orderInfo.contactPoint }\n })\n }\n\n let transportDriver: TransportDriver = null\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.ownDriver) {\n transportDriver = await tx.getRepository(TransportDriver).findOne({\n where: { domain, name: orderInfo.ownDriver }\n })\n }\n\n if (orderInfo?.ownTruck) {\n transportVehicle = await tx.getRepository(TransportVehicle).findOne({\n where: { domain, name: orderInfo.ownTruck }\n })\n\n await tx.getRepository(TransportVehicle).save({\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n })\n }\n\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n const remark = orderItems.find(\n (item: any) => item.productId === orderInventory.product.id && item.batchId === orderInventory.batchId\n ).remark\n\n // add remark if found, else remain existing remark\n if (remark) {\n orderInventory.remark = remark\n }\n\n // update status of DO and order inventory to DELIVERING if current status is READY_TO_DISPATCH\n if (foundDeliveryOrder.status === ORDER_STATUS.READY_TO_DISPATCH) {\n deliveryOrderStatus = ORDER_STATUS.DELIVERING\n orderInventory.status = ORDER_STATUS.DELIVERING\n }\n\n return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n transportDriver,\n transportVehicle,\n contactPointRefId: foundCP.id || null,\n otherDriver: orderInfo?.otherDriver || null,\n truckNo: orderInfo?.otherTruck || orderInfo?.ownTruck,\n to: foundCP.address,\n deliveryDate: orderInfo.deliveryDate,\n remark: orderInfo.remark,\n status: deliveryOrderStatus,\n reusablePallet: orderInfo.reusablePallet,\n updater: user\n })\n\n return foundDeliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async sendDeliveryOrder(\n @Ctx() context: any,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('orderItems', type => [OrderInventoryPatch], { nullable: true }) orderItems?: OrderInventoryPatch[]\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain, name: orderInfo.name },\n relations: ['transportVehicle', 'bizplace']\n })\n\n if (!foundDeliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (foundDeliveryOrder.status === ORDER_STATUS.PENDING_CANCEL)\n throw new Error('Release order is pending for cancel')\n\n let deliveryOrderStatus = foundDeliveryOrder.status\n let orderInventories: OrderInventory[]\n orderInventories = await tx.getRepository(OrderInventory).find({\n where: { domain, deliveryOrder: foundDeliveryOrder },\n relations: ['inventory', 'inventory.product', 'inventory.reusablePallet']\n })\n\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n const inventory: Inventory = orderInventory.inventory\n const product: Product = inventory.product\n const foundItem = inventory.reusablePallet\n ? orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId &&\n item.pallet === inventory.reusablePallet.name\n )\n : orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId\n )\n if (foundItem[0].remark !== '') orderInventory.remark = foundItem[0].remark\n return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n let transportDriver: TransportDriver = null\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.ownDriver) {\n transportDriver = await tx.getRepository(TransportDriver).findOne({\n where: { domain, name: orderInfo.ownDriver }\n })\n }\n\n if (orderInfo?.ownTruck) {\n transportVehicle = await tx.getRepository(TransportVehicle).findOne({\n where: { domain, name: orderInfo.ownTruck }\n })\n\n await tx.getRepository(TransportVehicle).save({\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n })\n }\n\n if (foundDeliveryOrder.status === ORDER_STATUS.READY_TO_DISPATCH) {\n // update status to DELIVERING if current status is READY_TO_DISPATCH\n deliveryOrderStatus = ORDER_STATUS.DELIVERING\n }\n\n await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n transportDriver,\n transportVehicle,\n otherDriver: orderInfo?.otherDriver || null,\n truckNo: orderInfo?.otherTruck || orderInfo?.ownTruck,\n to: foundDeliveryOrder.bizplace.address,\n deliveryDate: orderInfo.deliveryDate,\n remark: orderInfo.remark,\n status: deliveryOrderStatus,\n reusablePallet: orderInfo.reusablePallet,\n updater: user\n })\n\n return foundDeliveryOrder\n } catch (e) {\n throw e\n }\n return\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async rejectDeliveryOrder(\n @Arg('name') name: string,\n @Arg('patch', type => DeliveryOrderPatch) patch: DeliveryOrderPatch,\n @Ctx() context: any\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state\n\n const deliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain, name }\n })\n\n if (!deliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (deliveryOrder.status !== ORDER_STATUS.PENDING_RECEIVE) throw new Error(`Status is not receivable.`)\n\n await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n updater: user\n })\n\n return deliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async submitGoodsDeliveryNote(\n @Ctx() context: any,\n @Arg('name') name: string,\n @Arg('file', type => GraphQLUpload, { nullable: true }) file?: FileUpload\n ): Promise<DeliveryOrder> {\n const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state\n\n const foundDO: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain, name },\n relations: ['bizplace']\n })\n\n if (!foundDO) throw new Error(`DO doesn't exists.`)\n\n const foundAttachment: Attachment = await tx.getRepository(Attachment).findOne({\n where: { domain, refBy: foundDO.id }\n })\n\n const attachment = {\n refType: 'DO',\n refBy: foundDO.id,\n file: file,\n category: 'DO' /* TODO use refType */\n }\n\n if (!foundAttachment) {\n await createAttachment(null, { attachment }, context)\n } else {\n const id = foundAttachment.id\n await deleteAttachment(null, { id }, context)\n await createAttachment(null, { attachment }, context)\n }\n\n return await tx.getRepository(DeliveryOrder).save({\n ...foundDO,\n status: ORDER_STATUS.DONE,\n updater: user\n })\n }\n}\n\nexport async function createDeliveryOrder(\n orderInfo: any,\n customerBizplace: Bizplace,\n targetInventories: (OrderInventory | NewOrderInventory)[],\n file: FileUpload[],\n domain: Domain,\n user: User,\n tx?: EntityManager\n): Promise<DeliveryOrder> {\n const bizplaceRepo: Repository<Bizplace> = tx?.getRepository(Bizplace) || getRepository(Bizplace)\n const deliveryOrderRepo: Repository<DeliveryOrder> = tx?.getRepository(DeliveryOrder) || getRepository(DeliveryOrder)\n const productRepo: Repository<Product> = tx?.getRepository(Product) || getRepository(Product)\n const transportVehicleRepo: Repository<TransportVehicle> =\n tx?.getRepository(TransportVehicle) || getRepository(TransportVehicle)\n const transportDriverRepo: Repository<TransportDriver> =\n tx?.getRepository(TransportDriver) || getRepository(TransportDriver)\n const orderInventoryRepo: Repository<OrderInventory> =\n tx?.getRepository(OrderInventory) || getRepository(OrderInventory)\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n const foundBizplace: Bizplace = await bizplaceRepo.findOne({\n where: {\n id: customerBizplace.id,\n name: customerBizplace.name\n }\n })\n\n if (!foundBizplace) throw new Error(`customer not found`)\n\n // #1 find order number setting and set as DO name\n const doNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain,\n name: ORDER_NUMBER_SETTING_KEY.DO_NUMBER_RULE\n }\n })\n\n let orderNo: string = ''\n\n if (doNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.DO_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.deliveryOrder()\n }\n\n // #2 update truck vehicle status to IN_USE (only if using warehouse truck)\n let transportVehicle: TransportVehicle = null\n let transportDriver: TransportDriver = null\n\n if (!orderInfo.ownCollection) {\n transportVehicle = await transportVehicleRepo.findOne({\n where: {\n domain,\n id: orderInfo.transportVehicle\n }\n })\n\n transportDriver = await transportDriverRepo.findOne({\n where: {\n domain,\n id: orderInfo.transportDriver\n }\n })\n\n transportVehicle = {\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n }\n\n await transportVehicleRepo.save(transportVehicle)\n }\n\n // #3 save other destination info in Contact Point if there's any\n let foundCP: ContactPoint = {}\n if (orderInfo?.otherDestination) {\n foundCP = {\n domain,\n name: orderInfo.contactName,\n bizplace: foundBizplace,\n address: orderInfo.otherDestination,\n billingAddress: orderInfo.otherBillingAddress ? orderInfo.otherBillingAddress : orderInfo.otherDestination,\n phone: orderInfo.contactPhone || '-',\n email: orderInfo.contactEmail || '-',\n companyName: orderInfo.contactCompany || '-',\n type: orderInfo.contactType,\n creator: user,\n updater: user\n }\n foundCP = await tx.getRepository(ContactPoint).save(foundCP)\n } else {\n foundCP = await tx.getRepository(ContactPoint).findOne({\n where: { domain, id: orderInfo.contactPointRefId, bizplace: foundBizplace }\n })\n }\n\n // #4 save the delivery order info\n let totalPalletQty = 0\n targetInventories.forEach(oi => (totalPalletQty += oi.palletQty))\n\n let deliveryOrder: any = {\n domain,\n name: orderNo,\n refNo: orderInfo.refNo,\n bizplace: foundBizplace,\n deliveryDate: orderInfo.deliveryDate,\n ownCollection: orderInfo.ownCollection,\n truckNo: orderInfo.truckNo,\n palletQty: totalPalletQty,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n contactPointRefId: foundCP.id,\n remark: orderInfo.remark,\n transportDriver,\n transportVehicle,\n otherDriver: orderInfo.otherDriver,\n creator: user,\n updater: user\n }\n deliveryOrder = <DeliveryOrder>await deliveryOrderRepo.save(deliveryOrder)\n\n // #5 save order inventories\n targetInventories = await Promise.all(\n targetInventories.map(async (orderInventory: OrderInventory) => {\n const product: Product = await productRepo.findOne({\n where: {\n id: orderInventory.product.id\n }\n })\n\n if (!product) throw new Error(`product not found`)\n return {\n ...orderInventory,\n domain,\n product,\n name: OrderNoGenerator.orderInventory(),\n bizplace: foundBizplace,\n status: ORDER_INVENTORY_STATUS.READY_TO_DISPATCH,\n type: ORDER_TYPES.DELIVERY,\n deliveryOrder,\n creator: user,\n updater: user\n }\n })\n )\n await orderInventoryRepo.save(targetInventories)\n\n // if (file?.length) {\n // const attachments: Attachment[] = file.map(attachment => {\n // return {\n // file: attachment,\n // refType: ATTACHMENT_TYPE.GAN,\n // refBy: deliveryOrder.id,\n // category: ATTACHMENT_TYPE.GAN /* TODO use refType */\n // }\n // })\n // await createAttachments(_, { attachments }, context)\n // }\n\n return deliveryOrder\n}\n\nexport async function generateDeliveryOrder(\n orderInfo: DeliveryOrder | DeliveryOrderPatch,\n targetInventories: OrderInventory[],\n customerBizplace: Bizplace,\n releaseGood: ReleaseGood,\n domain: Domain,\n user: User,\n tx?: EntityManager\n): Promise<DeliveryOrder> {\n /**\n * 1. Validation for creating DO - data existing\n */\n const deliveryOrderRepo: Repository<DeliveryOrder> = tx?.getRepository(DeliveryOrder) || getRepository(DeliveryOrder)\n const transportVehicleRepo: Repository<TransportVehicle> =\n tx?.getRepository(TransportVehicle) || getRepository(TransportVehicle)\n const transportDriverRepo: Repository<TransportDriver> =\n tx?.getRepository(TransportDriver) || getRepository(TransportDriver)\n const orderInventoryRepo: Repository<OrderInventory> =\n tx?.getRepository(OrderInventory) || getRepository(OrderInventory)\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.truckNo) {\n transportVehicle = await transportVehicleRepo.findOne({\n where: { domain, name: orderInfo.truckNo }\n })\n }\n\n let transportDriver: TransportDriver = null\n if (orderInfo?.transportDriver) {\n transportDriver = await transportDriverRepo.findOne({\n where: { domain, id: orderInfo.transportDriver.id }\n })\n }\n\n const doNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain,\n name: ORDER_NUMBER_SETTING_KEY.DO_NUMBER_RULE\n }\n })\n\n let orderNo: string = ''\n\n if (doNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.DO_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.deliveryOrder()\n }\n\n let deliveryOrder: any = {\n domain,\n name: orderNo,\n bizplace: customerBizplace,\n releaseGood,\n refNo: releaseGood.refNo,\n ownCollection: orderInfo.ownCollection,\n truckNo: orderInfo?.truckNo || null,\n palletQty: orderInfo?.palletQty || null,\n transportVehicle,\n transportDriver,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n contactPointRefId: orderInfo?.contactPointRefId || null,\n creator: user,\n updater: user\n }\n\n deliveryOrder = <DeliveryOrder>await deliveryOrderRepo.save(deliveryOrder)\n\n targetInventories = targetInventories.map((targetInventory: OrderInventory) => {\n return {\n ...targetInventory,\n deliveryOrder,\n updater: user\n }\n })\n await orderInventoryRepo.save(targetInventories)\n\n return deliveryOrder\n}\n"]}
1
+ {"version":3,"file":"delivery-order-mutation.js","sourceRoot":"","sources":["../../../server/service/delivery-order/delivery-order-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, In, Repository } from 'typeorm'\n\nimport { Attachment, createAttachment, deleteAttachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint, getPermittedBizplaceIds } from '@things-factory/biz-base'\nimport { generateId } from '@things-factory/id-rule-base'\nimport { Product } from '@things-factory/product-base'\nimport { Setting } from '@things-factory/setting-base'\nimport { Domain, getRepository, ObjectRef } from '@things-factory/shell'\nimport { TransportDriver, TransportVehicle, TRUCK_STATUS } from '@things-factory/transport-base'\nimport { Inventory } from '@things-factory/warehouse-base'\n\nimport {\n ORDER_INVENTORY_STATUS,\n ORDER_NUMBER_RULE_TYPE,\n ORDER_NUMBER_SETTING_KEY,\n ORDER_STATUS,\n ORDER_TYPES\n} from '../../constants'\nimport { OrderNoGenerator } from '../../utils/order-no-generator'\nimport { OrderInventory } from '../order-inventory/order-inventory'\nimport { NewOrderInventory, OrderInventoryPatch } from '../order-inventory/order-inventory-types'\nimport { ReleaseGood } from '../release-good/release-good'\nimport { ExportInformationPatch, ShippingOrderInfoPatch } from '../release-good/release-good-types'\nimport { ShippingOrder } from '../shipping-order/shipping-order'\nimport { DeliveryOrder } from './delivery-order'\nimport { DeliveryOrderPatch, NewDeliveryOrder } from './delivery-order-types'\n\n@Resolver(DeliveryOrder)\nexport class DeliveryOrderMutation {\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async createDeliveryOrder(\n @Ctx() context: ResolverContext,\n @Arg('orderInfo', type => NewDeliveryOrder, { nullable: true }) orderInfo?: NewDeliveryOrder,\n @Arg('customerBizplace', type => ObjectRef, { nullable: true }) customerBizplace?: ObjectRef,\n @Arg('targetInventories', type => [NewOrderInventory], { nullable: true }) targetInventories?: NewOrderInventory[],\n @Arg('file', type => [GraphQLUpload], { nullable: true }) file?: FileUpload[]\n ): Promise<DeliveryOrder> {\n const { tx, domain, user } = context.state\n\n return await createDeliveryOrder(orderInfo, customerBizplace, targetInventories, file, domain, user, tx)\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async updateDeliveryOrder(\n @Arg('name') name: string,\n @Arg('patch', type => DeliveryOrderPatch) patch: DeliveryOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<DeliveryOrder> {\n const { tx, domain, user } = context.state\n\n const deliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: {\n domain: { id: domain.id },\n name,\n bizplace: In(await getPermittedBizplaceIds(domain, user))\n }\n })\n\n return await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteDeliveryOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n\n const foundDO = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name }\n })\n if (foundDO) {\n const previousAttachment: Attachment = await tx.getRepository(Attachment).findOne({\n where: { domain: { id: domain.id }, refBy: foundDO.id }\n })\n if (previousAttachment) await deleteAttachment(null, { id: previousAttachment.id }, context)\n await tx.getRepository(DeliveryOrder).delete({ domain, name })\n }\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async generateDeliveryOrder(\n @Ctx() context: ResolverContext,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('customerBizplace', type => ObjectRef, { nullable: true }) customerBizplace?: ObjectRef,\n @Arg('releaseGood', type => ObjectRef, { nullable: true }) releaseGood?: ObjectRef,\n @Arg('targetInventories', type => [ObjectRef], { nullable: true }) targetInventories?: ObjectRef[]\n ): Promise<DeliveryOrder> {\n const { tx, domain, user } = context.state\n\n return await generateDeliveryOrder(\n orderInfo,\n targetInventories as any,\n customerBizplace,\n releaseGood as any,\n domain,\n user,\n tx\n )\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async confirmDeliveryOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<DeliveryOrder> {\n const { tx, domain, user } = context.state\n\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['creator', 'updater']\n })\n\n let deliveryOrder: DeliveryOrder\n if (!foundDeliveryOrder) throw new Error(`Delivery Order doesn't exists.`)\n if (foundDeliveryOrder.status !== ORDER_STATUS.PENDING) throw new Error('Not confirmable status.')\n\n // delivery Order Status change (PENDING => PENDING_RECEIVE)\n deliveryOrder = await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n status: ORDER_STATUS.PENDING_RECEIVE,\n updater: user\n })\n\n return deliveryOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async receiveDeliveryOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n\n const deliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n if (!deliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (deliveryOrder.status !== ORDER_STATUS.PENDING_RECEIVE) throw new Error(`Status is not receivable.`)\n\n await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n updater: user\n })\n\n return deliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async checkDeliveredOrder(\n @Ctx() context: ResolverContext,\n @Arg('name') name: string,\n @Arg('patch', type => DeliveryOrderPatch, { nullable: true }) patch?: DeliveryOrderPatch\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n const deliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['bizplace', 'transportDriver', 'transportVehicle']\n })\n\n if (!deliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (deliveryOrder.status !== ORDER_STATUS.DELIVERING) throw new Error(`Status is not receivable.`)\n\n let orderInventories: OrderInventory[] = await tx.getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, deliveryOrder: { id: deliveryOrder.id } },\n relations: ['product']\n })\n\n // update order inventory status for manual DO only\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n if (\n orderInventory.type === ORDER_TYPES.DELIVERY &&\n orderInventory.status === ORDER_INVENTORY_STATUS.DELIVERING\n ) {\n return {\n ...orderInventory,\n status: ORDER_INVENTORY_STATUS.DONE\n }\n } else return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n ...patch,\n status: ORDER_STATUS.DONE,\n updater: user\n })\n\n if (!deliveryOrder?.ownCollection) {\n const foundTruck: TransportVehicle = deliveryOrder.transportVehicle\n await tx.getRepository(TransportVehicle).save({\n ...foundTruck,\n status: TRUCK_STATUS.IDLE,\n updater: user\n })\n }\n\n return deliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n /**\n * comment start\n * detailed review needed 06 Aug 2022 by @ChrisLim-git\n * @param context \n * @param orderInfo \n * @param orderItems \n * @param shippingOrderInfo \n * @param exportInfo \n * @returns DeliveryOrder\n */\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async dispatchDeliveryOrder(\n @Ctx() context: ResolverContext,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('orderItems', type => [OrderInventoryPatch], { nullable: true }) orderItems?: OrderInventoryPatch[],\n @Arg('shippingInfo', type => ShippingOrderInfoPatch, { nullable: true })\n shippingOrderInfo?: ShippingOrderInfoPatch,\n @Arg('exportInfo', type => ExportInformationPatch, { nullable: true }) exportInfo?: ExportInformationPatch\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.name },\n relations: ['transportVehicle', 'bizplace']\n })\n\n const foundReleaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({\n where: {\n name: orderInfo.releaseGoodNo,\n domain\n },\n relations: ['shippingOrder']\n })\n\n if (!foundDeliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (foundDeliveryOrder.status === ORDER_STATUS.PENDING_CANCEL)\n throw new Error('Release order is pending for cancel')\n\n foundDeliveryOrder.ownCollection = orderInfo.transportType == 'Own Transport' ? true : false\n\n let deliveryOrderStatus = foundDeliveryOrder.status\n let orderInventories: OrderInventory[]\n orderInventories = await tx.getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, deliveryOrder: { id: foundDeliveryOrder.id } },\n relations: ['inventory', 'inventory.product', 'inventory.reusablePallet']\n })\n\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n const inventory: Inventory = orderInventory.inventory\n const product: Product = inventory.product\n const foundItem = inventory.reusablePallet\n ? orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId &&\n item.pallet === inventory.reusablePallet.name\n )\n : orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId\n )\n\n if (foundItem[0].remark !== '') orderInventory.remark = foundItem[0].remark\n return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n // if there is other destination value, create a new contact point\n let foundCP: any = {}\n if (orderInfo?.otherDestination) {\n foundCP = {\n domain,\n name: orderInfo.contactName,\n bizplace: foundDeliveryOrder.bizplace,\n address: orderInfo.otherDestination,\n billingAddress: orderInfo.billingAddress,\n phone: orderInfo.contactPhone,\n email: orderInfo.contactEmail,\n companyName: orderInfo.contactCompany,\n type: orderInfo.contactType,\n creator: user\n }\n foundCP = await tx.getRepository(ContactPoint).save(foundCP)\n } else {\n foundCP = await tx.getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, id: orderInfo.contactPoint, bizplace: foundDeliveryOrder.bizplace }\n })\n }\n\n let transportDriver: TransportDriver = null\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.ownDriver) {\n transportDriver = await tx.getRepository(TransportDriver).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownDriver }\n })\n }\n\n if (orderInfo?.ownTruck) {\n transportVehicle = await tx.getRepository(TransportVehicle).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownTruck }\n })\n\n await tx.getRepository(TransportVehicle).save({\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n })\n }\n\n if (foundDeliveryOrder.status === ORDER_STATUS.READY_TO_DISPATCH) {\n // update status to DELIVERING if current status is READY_TO_DISPATCH\n deliveryOrderStatus = ORDER_STATUS.DELIVERING\n }\n\n // save export option information\n if (orderInfo?.exportOption) {\n let savedShippingOrder: any = ''\n /**\n * Could potentially override important data\n */\n if (foundReleaseGood.shippingOrder == null) {\n savedShippingOrder = await tx.getRepository(ShippingOrder).save({\n name: OrderNoGenerator.shippingOrder(),\n shipName: exportInfo.shipName,\n containerNo: exportInfo.containerNo,\n containerArrivalDate: exportInfo.containerArrivalDate,\n containerLeavingDate: exportInfo.containerLeavingDate,\n status: ORDER_STATUS.PENDING,\n domain,\n bizplace: foundDeliveryOrder.bizplace,\n creator: user,\n updater: user\n })\n }\n\n /**\n * @oscarchuaweiwen-fsd\n * I think the expectation here is to update instead of save\n * Should use .update instead of .save as it will override data that was not meant to be updated\n * example:\n * \n * savedShippingOrder = await tx.getRepository(ShippingOrder).update({\n * shipName: exportInfo.shipName,\n * containerNo: exportInfo.containerNo,\n * containerArrivalDate: exportInfo.containerArrivalDate,\n * containerLeavingDate: exportInfo.containerLeavingDate,\n * status: ORDER_STATUS.PENDING,\n * updater: user\n * })\n * \n * Unless the intention was not to update but to insert\n */\n savedShippingOrder = await tx.getRepository(ShippingOrder).save({\n ...foundReleaseGood.shippingOrder,\n name: OrderNoGenerator.shippingOrder(),\n shipName: exportInfo.shipName,\n containerNo: exportInfo.containerNo,\n containerArrivalDate: exportInfo.containerArrivalDate,\n containerLeavingDate: exportInfo.containerLeavingDate,\n status: ORDER_STATUS.PENDING,\n domain,\n bizplace: foundDeliveryOrder.bizplace,\n creator: user,\n updater: user\n })\n /** */\n\n exportInfo = savedShippingOrder\n foundReleaseGood.exportOption = true\n } else {\n foundReleaseGood.exportOption = false\n foundReleaseGood.collectionOrderNo = ''\n }\n\n await tx.getRepository(ReleaseGood).save({\n ...foundReleaseGood,\n shippingOrder: {\n ...exportInfo\n },\n collectionOrderNo: orderInfo.coNo\n })\n\n await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n transportDriver,\n palletQty: orderInfo?.totalPalletQty,\n transportVehicle,\n contactPointRefId: foundCP?.id || null,\n otherDriver: orderInfo?.otherDriver || null,\n truckNo: orderInfo?.otherTruck || orderInfo?.ownTruck,\n to: foundCP?.address,\n deliveryDate: orderInfo?.deliveryDate,\n deliveryDateTime: new Date(),\n remark: orderInfo?.remark,\n status: deliveryOrderStatus,\n reusablePallet: orderInfo?.reusablePallet,\n attentionTo: shippingOrderInfo?.attentionTo || null,\n attentionCompany: shippingOrderInfo?.attentionCompany || null,\n city: shippingOrderInfo?.city || null,\n state: shippingOrderInfo?.state || null,\n postalCode: shippingOrderInfo?.postalCode || null,\n country: shippingOrderInfo?.country || null,\n phone1: shippingOrderInfo?.phone1 || null,\n deliveryAddress1: shippingOrderInfo?.deliveryAddress1 || null,\n billingAddress: shippingOrderInfo?.billingAddress || null,\n billingCountry: shippingOrderInfo?.billingCountry || null,\n billingPostalCode: shippingOrderInfo?.billingPostalCode || null,\n billingState: shippingOrderInfo?.billingState || null,\n billingCity: shippingOrderInfo?.billingCity || null,\n updater: user\n })\n\n return foundDeliveryOrder\n } catch (e) {\n throw e\n }\n }\n /** */\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async dispatchManualDeliveryOrder(\n @Ctx() context: ResolverContext,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('orderItems', type => [OrderInventoryPatch], { nullable: true }) orderItems?: OrderInventoryPatch[]\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.name },\n relations: ['transportVehicle', 'bizplace']\n })\n\n if (!foundDeliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (foundDeliveryOrder.status === ORDER_STATUS.PENDING_CANCEL)\n throw new Error('Release order is pending for cancel')\n\n let deliveryOrderStatus = foundDeliveryOrder.status\n let orderInventories: OrderInventory[]\n orderInventories = await tx.getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, deliveryOrder: { id: foundDeliveryOrder.id } },\n relations: ['product']\n })\n\n // if there is other destination value, create a new contact point\n let foundCP: any = {}\n if (orderInfo?.otherDestination) {\n foundCP = {\n domain,\n name: orderInfo.contactName,\n bizplace: foundDeliveryOrder.bizplace,\n address: orderInfo.otherDestination,\n billingAddress: orderInfo.billingAddress,\n phone: orderInfo.contactPhone,\n email: orderInfo.contactEmail,\n companyName: orderInfo.contactCompany,\n type: orderInfo.contactType,\n creator: user\n }\n foundCP = await tx.getRepository(ContactPoint).save(foundCP)\n } else {\n foundCP = await tx.getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, id: orderInfo.contactPoint }\n })\n }\n\n let transportDriver: TransportDriver = null\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.ownDriver) {\n transportDriver = await tx.getRepository(TransportDriver).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownDriver }\n })\n }\n\n if (orderInfo?.ownTruck) {\n transportVehicle = await tx.getRepository(TransportVehicle).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownTruck }\n })\n\n await tx.getRepository(TransportVehicle).save({\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n })\n }\n\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n const remark = orderItems.find(\n (item: any) => item.productId === orderInventory.product.id && item.batchId === orderInventory.batchId\n ).remark\n\n // add remark if found, else remain existing remark\n if (remark) {\n orderInventory.remark = remark\n }\n\n // update status of DO and order inventory to DELIVERING if current status is READY_TO_DISPATCH\n if (foundDeliveryOrder.status === ORDER_STATUS.READY_TO_DISPATCH) {\n deliveryOrderStatus = ORDER_STATUS.DELIVERING\n orderInventory.status = ORDER_STATUS.DELIVERING\n }\n\n return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n transportDriver,\n transportVehicle,\n contactPointRefId: foundCP.id || null,\n otherDriver: orderInfo?.otherDriver || null,\n truckNo: orderInfo?.otherTruck || orderInfo?.ownTruck,\n to: foundCP.address,\n deliveryDate: orderInfo.deliveryDate,\n deliveryDateTime: new Date(),\n remark: orderInfo.remark,\n status: deliveryOrderStatus,\n reusablePallet: orderInfo.reusablePallet,\n updater: user\n })\n\n return foundDeliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async sendDeliveryOrder(\n @Ctx() context: ResolverContext,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('orderItems', type => [OrderInventoryPatch], { nullable: true }) orderItems?: OrderInventoryPatch[]\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.name },\n relations: ['transportVehicle', 'bizplace']\n })\n\n if (!foundDeliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (foundDeliveryOrder.status === ORDER_STATUS.PENDING_CANCEL)\n throw new Error('Release order is pending for cancel')\n\n let deliveryOrderStatus = foundDeliveryOrder.status\n let orderInventories: OrderInventory[]\n orderInventories = await tx.getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, deliveryOrder: { id: foundDeliveryOrder.id } },\n relations: ['inventory', 'inventory.product', 'inventory.reusablePallet']\n })\n\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n const inventory: Inventory = orderInventory.inventory\n const product: Product = inventory.product\n const foundItem = inventory.reusablePallet\n ? orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId &&\n item.pallet === inventory.reusablePallet.name\n )\n : orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId\n )\n if (foundItem[0].remark !== '') orderInventory.remark = foundItem[0].remark\n return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n let transportDriver: TransportDriver = null\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.ownDriver) {\n transportDriver = await tx.getRepository(TransportDriver).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownDriver }\n })\n }\n\n if (orderInfo?.ownTruck) {\n transportVehicle = await tx.getRepository(TransportVehicle).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownTruck }\n })\n\n await tx.getRepository(TransportVehicle).save({\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n })\n }\n\n if (foundDeliveryOrder.status === ORDER_STATUS.READY_TO_DISPATCH) {\n // update status to DELIVERING if current status is READY_TO_DISPATCH\n deliveryOrderStatus = ORDER_STATUS.DELIVERING\n }\n\n await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n transportDriver,\n transportVehicle,\n otherDriver: orderInfo?.otherDriver || null,\n truckNo: orderInfo?.otherTruck || orderInfo?.ownTruck,\n to: foundDeliveryOrder.bizplace.address,\n deliveryDate: orderInfo.deliveryDate,\n remark: orderInfo.remark,\n status: deliveryOrderStatus,\n reusablePallet: orderInfo.reusablePallet,\n updater: user\n })\n\n return foundDeliveryOrder\n } catch (e) {\n throw e\n }\n return\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async rejectDeliveryOrder(\n @Arg('name') name: string,\n @Arg('patch', type => DeliveryOrderPatch) patch: DeliveryOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n\n const deliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n if (!deliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (deliveryOrder.status !== ORDER_STATUS.PENDING_RECEIVE) throw new Error(`Status is not receivable.`)\n\n await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n updater: user\n })\n\n return deliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async submitGoodsDeliveryNote(\n @Ctx() context: ResolverContext,\n @Arg('name') name: string,\n @Arg('file', type => GraphQLUpload, { nullable: true }) file?: FileUpload\n ): Promise<DeliveryOrder> {\n const { tx, domain, user } = context.state\n\n const foundDO: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['bizplace']\n })\n\n if (!foundDO) throw new Error(`DO doesn't exists.`)\n\n const foundAttachment: Attachment = await tx.getRepository(Attachment).findOne({\n where: { domain: { id: domain.id }, refBy: foundDO.id }\n })\n\n const attachment = {\n refType: 'DO',\n refBy: foundDO.id,\n file: file,\n category: 'DO' /* TODO use refType */\n }\n\n if (!foundAttachment) {\n await createAttachment(null, { attachment }, context)\n } else {\n const id = foundAttachment.id\n await deleteAttachment(null, { id }, context)\n await createAttachment(null, { attachment }, context)\n }\n\n return await tx.getRepository(DeliveryOrder).save({\n ...foundDO,\n status: ORDER_STATUS.DONE,\n updater: user\n })\n }\n}\n\nexport async function createDeliveryOrder(\n orderInfo: any,\n customerBizplace: Bizplace,\n targetInventories: (OrderInventory | NewOrderInventory)[],\n file: FileUpload[],\n domain: Domain,\n user: User,\n tx?: EntityManager\n): Promise<DeliveryOrder> {\n const bizplaceRepo: Repository<Bizplace> = tx?.getRepository(Bizplace) || getRepository(Bizplace)\n const deliveryOrderRepo: Repository<DeliveryOrder> = tx?.getRepository(DeliveryOrder) || getRepository(DeliveryOrder)\n const productRepo: Repository<Product> = tx?.getRepository(Product) || getRepository(Product)\n const transportVehicleRepo: Repository<TransportVehicle> =\n tx?.getRepository(TransportVehicle) || getRepository(TransportVehicle)\n const transportDriverRepo: Repository<TransportDriver> =\n tx?.getRepository(TransportDriver) || getRepository(TransportDriver)\n const orderInventoryRepo: Repository<OrderInventory> =\n tx?.getRepository(OrderInventory) || getRepository(OrderInventory)\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n const foundBizplace: Bizplace = await bizplaceRepo.findOne({\n where: {\n id: customerBizplace.id,\n name: customerBizplace.name\n }\n })\n\n if (!foundBizplace) throw new Error(`customer not found`)\n\n // #1 find order number setting and set as DO name\n const doNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.DO_NUMBER_RULE\n }\n })\n\n let orderNo: string = ''\n\n if (doNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.DO_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.deliveryOrder()\n }\n\n // #2 update truck vehicle status to IN_USE (only if using warehouse truck)\n let transportVehicle: TransportVehicle = null\n let transportDriver: TransportDriver = null\n\n if (!orderInfo.ownCollection) {\n transportVehicle = await transportVehicleRepo.findOne({\n where: {\n domain: { id: domain.id },\n id: orderInfo.transportVehicle\n }\n })\n\n transportDriver = await transportDriverRepo.findOne({\n where: {\n domain: { id: domain.id },\n id: orderInfo.transportDriver\n }\n })\n\n transportVehicle = {\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n }\n\n await transportVehicleRepo.save(transportVehicle)\n }\n\n // #3 save other destination info in Contact Point if there's any\n let foundCP: ContactPoint = {}\n if (orderInfo?.otherDestination) {\n foundCP = {\n domain,\n name: orderInfo.contactName,\n bizplace: foundBizplace,\n address: orderInfo.otherDestination,\n billingAddress: orderInfo.otherBillingAddress ? orderInfo.otherBillingAddress : orderInfo.otherDestination,\n phone: orderInfo.contactPhone || '-',\n email: orderInfo.contactEmail || '-',\n companyName: orderInfo.contactCompany || '-',\n type: orderInfo.contactType,\n creator: user,\n updater: user\n }\n foundCP = await tx.getRepository(ContactPoint).save(foundCP)\n } else {\n foundCP = await tx.getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, id: orderInfo.contactPointRefId, bizplace: foundBizplace }\n })\n }\n\n // #4 save the delivery order info\n let totalPalletQty = 0\n targetInventories.forEach(oi => (totalPalletQty += oi.palletQty))\n\n let deliveryOrder: any = {\n domain,\n name: orderNo,\n refNo: orderInfo.refNo,\n bizplace: foundBizplace,\n deliveryDate: orderInfo.deliveryDate,\n ownCollection: orderInfo.ownCollection,\n truckNo: orderInfo.truckNo,\n palletQty: totalPalletQty,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n contactPointRefId: foundCP.id,\n remark: orderInfo.remark,\n transportDriver,\n transportVehicle,\n otherDriver: orderInfo.otherDriver,\n creator: user,\n updater: user\n }\n deliveryOrder = <DeliveryOrder>await deliveryOrderRepo.save(deliveryOrder)\n\n // #5 save order inventories\n targetInventories = await Promise.all(\n targetInventories.map(async (orderInventory: OrderInventory) => {\n const product: Product = await productRepo.findOne({\n where: {\n id: orderInventory.product.id\n }\n })\n\n if (!product) throw new Error(`product not found`)\n return {\n ...orderInventory,\n domain,\n product,\n name: OrderNoGenerator.orderInventory(),\n bizplace: foundBizplace,\n status: ORDER_INVENTORY_STATUS.READY_TO_DISPATCH,\n type: ORDER_TYPES.DELIVERY,\n deliveryOrder,\n creator: user,\n updater: user\n }\n })\n )\n await orderInventoryRepo.save(targetInventories)\n\n // if (file?.length) {\n // const attachments: Attachment[] = file.map(attachment => {\n // return {\n // file: attachment,\n // refType: ATTACHMENT_TYPE.GAN,\n // refBy: deliveryOrder.id,\n // category: ATTACHMENT_TYPE.GAN /* TODO use refType */\n // }\n // })\n // await createAttachments(_, { attachments }, context)\n // }\n\n return deliveryOrder\n}\n\nexport async function generateDeliveryOrder(\n orderInfo: DeliveryOrder | DeliveryOrderPatch,\n targetInventories: OrderInventory[],\n customerBizplace: Bizplace,\n releaseGood: ReleaseGood,\n domain: Domain,\n user: User,\n tx?: EntityManager\n): Promise<DeliveryOrder> {\n /**\n * 1. Validation for creating DO - data existing\n */\n const deliveryOrderRepo: Repository<DeliveryOrder> = tx?.getRepository(DeliveryOrder) || getRepository(DeliveryOrder)\n const transportVehicleRepo: Repository<TransportVehicle> =\n tx?.getRepository(TransportVehicle) || getRepository(TransportVehicle)\n const transportDriverRepo: Repository<TransportDriver> =\n tx?.getRepository(TransportDriver) || getRepository(TransportDriver)\n const orderInventoryRepo: Repository<OrderInventory> =\n tx?.getRepository(OrderInventory) || getRepository(OrderInventory)\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.truckNo) {\n transportVehicle = await transportVehicleRepo.findOne({\n where: { domain: { id: domain.id }, name: orderInfo.truckNo }\n })\n }\n\n let transportDriver: TransportDriver = null\n if (orderInfo?.transportDriver) {\n transportDriver = await transportDriverRepo.findOne({\n where: { domain: { id: domain.id }, id: orderInfo.transportDriver.id }\n })\n }\n\n const doNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.DO_NUMBER_RULE\n }\n })\n\n let orderNo: string = ''\n\n if (doNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.DO_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.deliveryOrder()\n }\n\n // insert shipping information from r/o to d/o\n\n let deliveryOrder: any = {\n domain,\n name: orderNo,\n bizplace: customerBizplace,\n releaseGood,\n refNo: releaseGood.refNo,\n ownCollection: orderInfo.ownCollection,\n truckNo: orderInfo?.truckNo || null,\n palletQty: orderInfo?.palletQty || null,\n transportVehicle,\n transportDriver,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n contactPointRefId: orderInfo?.contactPointRefId || null,\n attentionTo: releaseGood?.attentionTo || null,\n attentionCompany: releaseGood?.attentionCompany || null,\n city: releaseGood?.city || null,\n state: releaseGood?.state || null,\n postalCode: releaseGood?.postalCode || null,\n country: releaseGood?.country || null,\n phone1: releaseGood?.phone1 || null,\n deliveryAddress1: releaseGood?.deliveryAddress1 || null,\n billingAddress: releaseGood?.billingAddress || null,\n billingCountry: releaseGood?.billingCountry || null,\n billingPostalCode: releaseGood?.billingPostalCode || null,\n billingState: releaseGood?.billingState || null,\n billingCity: releaseGood?.billingCity || null,\n creator: user,\n updater: user\n }\n\n deliveryOrder = <DeliveryOrder>await deliveryOrderRepo.save(deliveryOrder)\n\n targetInventories = targetInventories.map((targetInventory: OrderInventory) => {\n return {\n ...targetInventory,\n deliveryOrder,\n updater: user\n }\n })\n await orderInventoryRepo.save(targetInventories)\n\n return deliveryOrder\n}\n"]}
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a, _b, _c;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.deliveryOrderByReleaseGood = exports.DeliveryOrderQuery = void 0;
5
4
  const tslib_1 = require("tslib");
@@ -19,7 +18,7 @@ const debug = require('debug')('things-factory:sales-base:delivery-orders');
19
18
  let DeliveryOrderQuery = class DeliveryOrderQuery {
20
19
  async deliveryOrders(context, params) {
21
20
  try {
22
- const { domain, user } = context.state;
21
+ const { domain, user, tx } = context.state;
23
22
  const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId');
24
23
  if (!bizplaceFilter) {
25
24
  params.filters.push({
@@ -34,7 +33,7 @@ let DeliveryOrderQuery = class DeliveryOrderQuery {
34
33
  let arrFilters = [];
35
34
  params.filters.splice(params.filters.findIndex(item => item.name == 'releaseGoodNo'), 1);
36
35
  arrFilters.push(Object.assign(Object.assign({}, releaseGoodParam), { name: 'name' }));
37
- const foundReleaseGoods = await (0, typeorm_1.getRepository)(release_good_1.ReleaseGood).find(Object.assign({}, (0, shell_1.convertListParams)({ filters: arrFilters }, {
36
+ const foundReleaseGoods = await (0, shell_1.getRepository)(release_good_1.ReleaseGood).find(Object.assign({}, (0, shell_1.convertListParams)({ filters: arrFilters }, {
38
37
  searchables: ['name', 'releaseGoodNo', 'truckNo']
39
38
  })));
40
39
  if (foundReleaseGoods && foundReleaseGoods.length) {
@@ -78,20 +77,14 @@ let DeliveryOrderQuery = class DeliveryOrderQuery {
78
77
  let refNo2Filter = params.filters.find(x => x.name == 'refNo2');
79
78
  let refNo3Filter = params.filters.find(x => x.name == 'refNo3');
80
79
  let orderProductsApiFilter = params.filters.find(x => x.name == 'orderProductsApi');
81
- params.filters = params.filters.filter(x => x.name != 'refNo' && x.name != 'refNo2' && x.name != 'refNo3');
82
- const qb = (0, typeorm_1.getRepository)(delivery_order_1.DeliveryOrder).createQueryBuilder('do');
80
+ params.filters = params.filters.filter(x => x.name != 'refNo' && x.name != 'refNo2' && x.name != 'refNo3' && x.name != 'orderProductsApi');
81
+ const qb = (0, shell_1.getRepository)(delivery_order_1.DeliveryOrder).createQueryBuilder('do');
83
82
  (0, shell_1.buildQuery)(qb, params, context);
84
83
  qb.addSelect('COALESCE("cc".rank, 99999)', 'rank');
85
- qb.leftJoinAndSelect('do.domain', 'domain');
86
84
  qb.leftJoinAndSelect('do.bizplace', 'bizplace');
87
85
  qb.leftJoinAndSelect('do.releaseGood', 'releaseGood');
88
- if (orderProductsApiFilter === null || orderProductsApiFilter === void 0 ? void 0 : orderProductsApiFilter.value) {
89
- qb.innerJoinAndSelect('releaseGood.orderProducts', 'orderProducts');
90
- }
91
86
  qb.leftJoinAndSelect('do.transportDriver', 'td');
92
87
  qb.leftJoinAndSelect('do.transportVehicle', 'th');
93
- qb.leftJoinAndSelect('do.creator', 'creator');
94
- qb.leftJoinAndSelect('do.updater', 'updater');
95
88
  qb.leftJoin(subQuery => {
96
89
  return subQuery
97
90
  .select(`ccd.rank`, 'rank')
@@ -101,6 +94,11 @@ let DeliveryOrderQuery = class DeliveryOrderQuery {
101
94
  .where(`ccd.domain_id = :domainId`, { domainId: domain.id })
102
95
  .andWhere(`cc.name = 'DELIVERY_STATUS'`);
103
96
  }, 'cc', 'cc.status = do.status');
97
+ // was add specifically for API usage, do we really need
98
+ // orderProducts over orderInventories? else we should remove this
99
+ if (orderProductsApiFilter === null || orderProductsApiFilter === void 0 ? void 0 : orderProductsApiFilter.value) {
100
+ qb.innerJoinAndSelect('releaseGood.orderProducts', 'orderProducts');
101
+ }
104
102
  if (refNoFilter === null || refNoFilter === void 0 ? void 0 : refNoFilter.value) {
105
103
  qb.andWhere('releaseGood.ref_no ilike :refNo', { refNo: refNoFilter.value });
106
104
  }
@@ -118,7 +116,21 @@ let DeliveryOrderQuery = class DeliveryOrderQuery {
118
116
  ? sort.name + '.name'
119
117
  : 'do.' + sort.name]: sort.desc ? 'DESC' : 'ASC' })), params.sortings.length < 1 ? { rank: 'ASC', 'do.createdAt': 'DESC' } : {});
120
118
  qb.orderBy(sort);
121
- const [items, total] = await qb.getManyAndCount();
119
+ let [items, total] = await qb.getManyAndCount();
120
+ if (orderProductsApiFilter === null || orderProductsApiFilter === void 0 ? void 0 : orderProductsApiFilter.value) {
121
+ items = await Promise.all(items.map(async (itm) => {
122
+ const qb = (0, shell_1.getRepository)(order_inventory_1.OrderInventory).createQueryBuilder('OrderInventory');
123
+ let orderInventories = await qb
124
+ .leftJoinAndSelect('OrderInventory.product', 'Product')
125
+ .leftJoinAndSelect('OrderInventory.orderToteItems', 'OrderToteItems')
126
+ .leftJoinAndSelect('OrderToteItems.orderTote', 'OrderTote')
127
+ .leftJoinAndSelect('OrderTote.orderToteSeals', 'OrderToteSeals')
128
+ .where('OrderInventory.delivery_order_id = :deliveryOrderId', { deliveryOrderId: itm.id })
129
+ .andWhere('OrderInventory.domain_id = :domainId', { domainId: domain.id })
130
+ .getMany();
131
+ return Object.assign(Object.assign({}, itm), { orderInventories });
132
+ }));
133
+ }
122
134
  return { items, total };
123
135
  }
124
136
  catch (error) {
@@ -128,18 +140,18 @@ let DeliveryOrderQuery = class DeliveryOrderQuery {
128
140
  }
129
141
  async deliveryOrder(name, context) {
130
142
  const { domain } = context.state;
131
- const foundDO = await (0, typeorm_1.getRepository)(delivery_order_1.DeliveryOrder).findOne({
143
+ const foundDO = await (0, shell_1.getRepository)(delivery_order_1.DeliveryOrder).findOne({
132
144
  where: {
133
- domain,
145
+ domain: { id: domain.id },
134
146
  name
135
147
  },
136
148
  relations: ['domain', 'bizplace', 'transportDriver', 'transportVehicle', 'releaseGood', 'creator', 'updater']
137
149
  });
138
150
  let foundAttachments = [];
139
151
  if (foundDO) {
140
- foundAttachments = await (0, typeorm_1.getRepository)(attachment_base_1.Attachment).find({
152
+ foundAttachments = await (0, shell_1.getRepository)(attachment_base_1.Attachment).find({
141
153
  where: {
142
- domain,
154
+ domain: { id: domain.id },
143
155
  refBy: foundDO.id
144
156
  }
145
157
  });
@@ -152,23 +164,24 @@ let DeliveryOrderQuery = class DeliveryOrderQuery {
152
164
  if (!convertedParams.where || !convertedParams.where.status) {
153
165
  convertedParams.where.status = (0, typeorm_1.Not)((0, typeorm_1.In)([constants_1.ORDER_STATUS.PENDING, constants_1.ORDER_STATUS.EDITING]));
154
166
  }
167
+ ;
155
168
  convertedParams.bizplace = (0, typeorm_1.In)(await (0, biz_base_1.getPermittedBizplaceIds)(domain, user));
156
- const [items, total] = await (0, typeorm_1.getRepository)(delivery_order_1.DeliveryOrder).findAndCount(Object.assign(Object.assign({}, convertedParams), { relations: ['domain', 'bizplace', 'releaseGood', 'transportDriver', 'transportVehicle', 'creator', 'updater'] }));
169
+ const [items, total] = await (0, shell_1.getRepository)(delivery_order_1.DeliveryOrder).findAndCount(Object.assign(Object.assign({}, convertedParams), { relations: ['domain', 'bizplace', 'releaseGood', 'transportDriver', 'transportVehicle', 'creator', 'updater'] }));
157
170
  return { items, total };
158
171
  }
159
172
  async deliveryOrderByReleaseGood(releaseGoodNo, context) {
160
- const releaseGood = await (0, typeorm_1.getRepository)(release_good_1.ReleaseGood).findOne({
173
+ const releaseGood = await (0, shell_1.getRepository)(release_good_1.ReleaseGood).findOne({
161
174
  where: { name: releaseGoodNo }
162
175
  });
163
176
  return await deliveryOrderByReleaseGood(releaseGood);
164
177
  }
165
178
  async deliveryOrderItems(name, context) {
166
179
  const { domain } = context.state;
167
- const deliveryOrder = await (0, typeorm_1.getRepository)(delivery_order_1.DeliveryOrder).findOne({
168
- where: { domain, name }
180
+ const deliveryOrder = await (0, shell_1.getRepository)(delivery_order_1.DeliveryOrder).findOne({
181
+ where: { domain: { id: domain.id }, name }
169
182
  });
170
- let [items, total] = await (0, typeorm_1.getRepository)(order_inventory_1.OrderInventory).findAndCount({
171
- where: { domain, deliveryOrder },
183
+ let [items, total] = await (0, shell_1.getRepository)(order_inventory_1.OrderInventory).findAndCount({
184
+ where: { domain: { id: domain.id }, deliveryOrder: { id: deliveryOrder.id } },
172
185
  relations: ['inventory', 'inventory.product', 'inventory.reusablePallet']
173
186
  });
174
187
  items = items
@@ -238,11 +251,11 @@ let DeliveryOrderQuery = class DeliveryOrderQuery {
238
251
  }
239
252
  async manualDeliveryOrderItems(name, context) {
240
253
  const { domain } = context.state;
241
- const deliveryOrder = await (0, typeorm_1.getRepository)(delivery_order_1.DeliveryOrder).findOne({
242
- where: { domain, name }
254
+ const deliveryOrder = await (0, shell_1.getRepository)(delivery_order_1.DeliveryOrder).findOne({
255
+ where: { domain: { id: domain.id }, name }
243
256
  });
244
- let [items, total] = await (0, typeorm_1.getRepository)(order_inventory_1.OrderInventory).findAndCount({
245
- where: { domain, deliveryOrder },
257
+ let [items, total] = await (0, shell_1.getRepository)(order_inventory_1.OrderInventory).findAndCount({
258
+ where: { domain: { id: domain.id }, deliveryOrder: { id: deliveryOrder.id } },
246
259
  relations: ['product']
247
260
  });
248
261
  items = items
@@ -327,7 +340,7 @@ let DeliveryOrderQuery = class DeliveryOrderQuery {
327
340
  let arrFilters = [];
328
341
  params.filters.splice(params.filters.findIndex(item => item.name == 'releaseGoodNo'), 1);
329
342
  arrFilters.push(Object.assign(Object.assign({}, releaseGoodParam), { name: 'name' }));
330
- const foundReleaseGoods = await (0, typeorm_1.getRepository)(release_good_1.ReleaseGood).find(Object.assign({}, (0, shell_1.convertListParams)({ filters: arrFilters })));
343
+ const foundReleaseGoods = await (0, shell_1.getRepository)(release_good_1.ReleaseGood).find(Object.assign({}, (0, shell_1.convertListParams)({ filters: arrFilters })));
331
344
  if (foundReleaseGoods && foundReleaseGoods.length) {
332
345
  params.filters.push({
333
346
  name: 'releaseGoodId',
@@ -369,7 +382,7 @@ let DeliveryOrderQuery = class DeliveryOrderQuery {
369
382
  let refNo2Filter = params.filters.find(x => x.name == 'refNo2');
370
383
  let refNo3Filter = params.filters.find(x => x.name == 'refNo3');
371
384
  params.filters = params.filters.filter(x => x.name != 'refNo' && x.name != 'refNo2' && x.name != 'refNo3');
372
- const qb = (0, typeorm_1.getRepository)(delivery_order_1.DeliveryOrder).createQueryBuilder('do');
385
+ const qb = (0, shell_1.getRepository)(delivery_order_1.DeliveryOrder).createQueryBuilder('do');
373
386
  (0, shell_1.buildQuery)(qb, params, context);
374
387
  qb.addSelect('COALESCE("cc".rank, 99999)', 'rank');
375
388
  qb.leftJoinAndSelect('do.domain', 'domain');
@@ -417,13 +430,13 @@ let DeliveryOrderQuery = class DeliveryOrderQuery {
417
430
  }
418
431
  }
419
432
  async domain(deliveryOrder) {
420
- return await (0, typeorm_1.getRepository)(shell_1.Domain).findOne(deliveryOrder.domainId);
433
+ return await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: deliveryOrder.domainId });
421
434
  }
422
435
  async creator(deliveryOrder) {
423
- return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(deliveryOrder.creatorId);
436
+ return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: deliveryOrder.creatorId });
424
437
  }
425
438
  async updater(deliveryOrder) {
426
- return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(deliveryOrder.updaterId);
439
+ return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: deliveryOrder.updaterId });
427
440
  }
428
441
  };
429
442
  tslib_1.__decorate([
@@ -431,7 +444,7 @@ tslib_1.__decorate([
431
444
  tslib_1.__param(0, (0, type_graphql_1.Ctx)()),
432
445
  tslib_1.__param(1, (0, type_graphql_1.Args)()),
433
446
  tslib_1.__metadata("design:type", Function),
434
- tslib_1.__metadata("design:paramtypes", [Object, typeof (_a = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _a : Object]),
447
+ tslib_1.__metadata("design:paramtypes", [Object, shell_1.ListParam]),
435
448
  tslib_1.__metadata("design:returntype", Promise)
436
449
  ], DeliveryOrderQuery.prototype, "deliveryOrders", null);
437
450
  tslib_1.__decorate([
@@ -449,7 +462,7 @@ tslib_1.__decorate([
449
462
  tslib_1.__param(2, (0, type_graphql_1.Arg)('pagination', type => shell_1.Pagination, { nullable: true })),
450
463
  tslib_1.__param(3, (0, type_graphql_1.Arg)('sortings', type => [shell_1.Sorting], { nullable: true })),
451
464
  tslib_1.__metadata("design:type", Function),
452
- tslib_1.__metadata("design:paramtypes", [Object, Array, typeof (_b = typeof shell_1.Pagination !== "undefined" && shell_1.Pagination) === "function" ? _b : Object, Array]),
465
+ tslib_1.__metadata("design:paramtypes", [Object, Array, shell_1.Pagination, Array]),
453
466
  tslib_1.__metadata("design:returntype", Promise)
454
467
  ], DeliveryOrderQuery.prototype, "deliveryOrderRequests", null);
455
468
  tslib_1.__decorate([
@@ -481,7 +494,7 @@ tslib_1.__decorate([
481
494
  tslib_1.__param(0, (0, type_graphql_1.Ctx)()),
482
495
  tslib_1.__param(1, (0, type_graphql_1.Args)()),
483
496
  tslib_1.__metadata("design:type", Function),
484
- tslib_1.__metadata("design:paramtypes", [Object, typeof (_c = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _c : Object]),
497
+ tslib_1.__metadata("design:paramtypes", [Object, shell_1.ListParam]),
485
498
  tslib_1.__metadata("design:returntype", Promise)
486
499
  ], DeliveryOrderQuery.prototype, "deliveryOrderReport", null);
487
500
  tslib_1.__decorate([
@@ -510,16 +523,16 @@ DeliveryOrderQuery = tslib_1.__decorate([
510
523
  ], DeliveryOrderQuery);
511
524
  exports.DeliveryOrderQuery = DeliveryOrderQuery;
512
525
  async function deliveryOrderByReleaseGood(releaseGood, trxMgr) {
513
- const doRepo = (trxMgr === null || trxMgr === void 0 ? void 0 : trxMgr.getRepository(delivery_order_1.DeliveryOrder)) || (0, typeorm_1.getRepository)(delivery_order_1.DeliveryOrder);
514
- const oiRepo = (trxMgr === null || trxMgr === void 0 ? void 0 : trxMgr.getRepository(order_inventory_1.OrderInventory)) || (0, typeorm_1.getRepository)(order_inventory_1.OrderInventory);
526
+ const doRepo = (trxMgr === null || trxMgr === void 0 ? void 0 : trxMgr.getRepository(delivery_order_1.DeliveryOrder)) || (0, shell_1.getRepository)(delivery_order_1.DeliveryOrder);
527
+ const oiRepo = (trxMgr === null || trxMgr === void 0 ? void 0 : trxMgr.getRepository(order_inventory_1.OrderInventory)) || (0, shell_1.getRepository)(order_inventory_1.OrderInventory);
515
528
  let [items, total] = await doRepo.findAndCount({
516
- where: { releaseGood },
529
+ where: { releaseGood: { id: releaseGood.id } },
517
530
  relations: ['domain', 'bizplace', 'releaseGood', 'transportDriver', 'transportVehicle', 'creator', 'updater']
518
531
  });
519
532
  items = await Promise.all(items.map(async (deliveryOrder) => {
520
533
  var _a;
521
534
  return Object.assign(Object.assign({}, deliveryOrder), { truck: (deliveryOrder === null || deliveryOrder === void 0 ? void 0 : deliveryOrder.truckNo) || ((_a = deliveryOrder.transportVehicle) === null || _a === void 0 ? void 0 : _a.name) || null, targetInventories: await oiRepo.find({
522
- where: { deliveryOrder },
535
+ where: { deliveryOrder: { id: deliveryOrder.id } },
523
536
  relations: ['domain', 'bizplace', 'releaseGood', 'inventory']
524
537
  }) });
525
538
  }));