@things-factory/sales-base 7.0.1-beta.0 → 7.0.1-beta.12

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 (449) hide show
  1. package/dist-server/constants/attachment-type.d.ts +9 -0
  2. package/dist-server/constants/index.d.ts +7 -0
  3. package/dist-server/constants/load-type.d.ts +4 -0
  4. package/dist-server/constants/order.d.ts +191 -0
  5. package/dist-server/constants/product-group-type.d.ts +4 -0
  6. package/dist-server/constants/release-good.d.ts +8 -0
  7. package/dist-server/constants/release-good.js +1 -1
  8. package/dist-server/constants/release-good.js.map +1 -1
  9. package/dist-server/constants/transfer-order-type.d.ts +5 -0
  10. package/dist-server/constants/validation-error-code.d.ts +12 -0
  11. package/dist-server/constants/vas-target-type.d.ts +22 -0
  12. package/dist-server/controllers/ecommerce/ecommerce-controller.d.ts +6 -0
  13. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
  14. package/dist-server/controllers/ecommerce/index.d.ts +2 -0
  15. package/dist-server/controllers/ecommerce/sellercraft-controller.d.ts +9 -0
  16. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  17. package/dist-server/controllers/index.d.ts +2 -0
  18. package/dist-server/controllers/order-controller.d.ts +109 -0
  19. package/dist-server/controllers/order-controller.js +2 -2
  20. package/dist-server/controllers/order-controller.js.map +1 -1
  21. package/dist-server/errors/index.d.ts +1 -0
  22. package/dist-server/errors/validation-error.d.ts +12 -0
  23. package/dist-server/index.d.ts +5 -0
  24. package/dist-server/migrations/index.d.ts +1 -0
  25. package/dist-server/service/arrival-notice/arrival-notice-mutation.d.ts +28 -0
  26. package/dist-server/service/arrival-notice/arrival-notice-mutation.js +55 -16
  27. package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
  28. package/dist-server/service/arrival-notice/arrival-notice-query.d.ts +15 -0
  29. package/dist-server/service/arrival-notice/arrival-notice-query.js +2 -2
  30. package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -1
  31. package/dist-server/service/arrival-notice/arrival-notice-types.d.ts +107 -0
  32. package/dist-server/service/arrival-notice/arrival-notice-types.js +8 -8
  33. package/dist-server/service/arrival-notice/arrival-notice-types.js.map +1 -1
  34. package/dist-server/service/arrival-notice/arrival-notice.d.ts +56 -0
  35. package/dist-server/service/arrival-notice/arrival-notice.js +4 -5
  36. package/dist-server/service/arrival-notice/arrival-notice.js.map +1 -1
  37. package/dist-server/service/arrival-notice/index.d.ts +7 -0
  38. package/dist-server/service/claim/claim-mutation.d.ts +9 -0
  39. package/dist-server/service/claim/claim-mutation.js +2 -2
  40. package/dist-server/service/claim/claim-mutation.js.map +1 -1
  41. package/dist-server/service/claim/claim-query.d.ts +13 -0
  42. package/dist-server/service/claim/claim-query.js +2 -2
  43. package/dist-server/service/claim/claim-query.js.map +1 -1
  44. package/dist-server/service/claim/claim-types.d.ts +48 -0
  45. package/dist-server/service/claim/claim-types.js +6 -6
  46. package/dist-server/service/claim/claim-types.js.map +1 -1
  47. package/dist-server/service/claim/claim.d.ts +37 -0
  48. package/dist-server/service/claim/claim.js +5 -6
  49. package/dist-server/service/claim/claim.js.map +1 -1
  50. package/dist-server/service/claim/index.d.ts +7 -0
  51. package/dist-server/service/claim-detail/claim-detail-mutation.d.ts +9 -0
  52. package/dist-server/service/claim-detail/claim-detail-mutation.js +2 -2
  53. package/dist-server/service/claim-detail/claim-detail-mutation.js.map +1 -1
  54. package/dist-server/service/claim-detail/claim-detail-query.d.ts +11 -0
  55. package/dist-server/service/claim-detail/claim-detail-query.js +2 -2
  56. package/dist-server/service/claim-detail/claim-detail-query.js.map +1 -1
  57. package/dist-server/service/claim-detail/claim-detail-types.d.ts +19 -0
  58. package/dist-server/service/claim-detail/claim-detail-types.js +6 -6
  59. package/dist-server/service/claim-detail/claim-detail-types.js.map +1 -1
  60. package/dist-server/service/claim-detail/claim-detail.d.ts +21 -0
  61. package/dist-server/service/claim-detail/claim-detail.js +2 -2
  62. package/dist-server/service/claim-detail/claim-detail.js.map +1 -1
  63. package/dist-server/service/claim-detail/index.d.ts +7 -0
  64. package/dist-server/service/claim-order/claim-order-mutation.d.ts +9 -0
  65. package/dist-server/service/claim-order/claim-order-mutation.js +2 -2
  66. package/dist-server/service/claim-order/claim-order-mutation.js.map +1 -1
  67. package/dist-server/service/claim-order/claim-order-query.d.ts +11 -0
  68. package/dist-server/service/claim-order/claim-order-query.js +2 -2
  69. package/dist-server/service/claim-order/claim-order-query.js.map +1 -1
  70. package/dist-server/service/claim-order/claim-order-types.d.ts +15 -0
  71. package/dist-server/service/claim-order/claim-order-types.js +6 -6
  72. package/dist-server/service/claim-order/claim-order-types.js.map +1 -1
  73. package/dist-server/service/claim-order/claim-order.d.ts +21 -0
  74. package/dist-server/service/claim-order/claim-order.js +2 -2
  75. package/dist-server/service/claim-order/claim-order.js.map +1 -1
  76. package/dist-server/service/claim-order/index.d.ts +7 -0
  77. package/dist-server/service/collection-order/collection-order-mutation.d.ts +13 -0
  78. package/dist-server/service/collection-order/collection-order-mutation.js +2 -2
  79. package/dist-server/service/collection-order/collection-order-mutation.js.map +1 -1
  80. package/dist-server/service/collection-order/collection-order-query.d.ts +12 -0
  81. package/dist-server/service/collection-order/collection-order-query.js +2 -2
  82. package/dist-server/service/collection-order/collection-order-query.js.map +1 -1
  83. package/dist-server/service/collection-order/collection-order-types.d.ts +60 -0
  84. package/dist-server/service/collection-order/collection-order-types.js +8 -8
  85. package/dist-server/service/collection-order/collection-order-types.js.map +1 -1
  86. package/dist-server/service/collection-order/collection-order.d.ts +39 -0
  87. package/dist-server/service/collection-order/collection-order.js +5 -6
  88. package/dist-server/service/collection-order/collection-order.js.map +1 -1
  89. package/dist-server/service/collection-order/index.d.ts +7 -0
  90. package/dist-server/service/delivery-order/delivery-order-mutation.d.ts +38 -0
  91. package/dist-server/service/delivery-order/delivery-order-mutation.js +3 -3
  92. package/dist-server/service/delivery-order/delivery-order-mutation.js.map +1 -1
  93. package/dist-server/service/delivery-order/delivery-order-query.d.ts +20 -0
  94. package/dist-server/service/delivery-order/delivery-order-query.js +2 -2
  95. package/dist-server/service/delivery-order/delivery-order-query.js.map +1 -1
  96. package/dist-server/service/delivery-order/delivery-order-types.d.ts +96 -0
  97. package/dist-server/service/delivery-order/delivery-order-types.js +8 -8
  98. package/dist-server/service/delivery-order/delivery-order-types.js.map +1 -1
  99. package/dist-server/service/delivery-order/delivery-order.d.ts +73 -0
  100. package/dist-server/service/delivery-order/delivery-order.js +5 -6
  101. package/dist-server/service/delivery-order/delivery-order.js.map +1 -1
  102. package/dist-server/service/delivery-order/index.d.ts +7 -0
  103. package/dist-server/service/draft-release-good/draft-release-good-mutation.d.ts +21 -0
  104. package/dist-server/service/draft-release-good/draft-release-good-mutation.js +5 -5
  105. package/dist-server/service/draft-release-good/draft-release-good-mutation.js.map +1 -1
  106. package/dist-server/service/draft-release-good/draft-release-good-query.d.ts +10 -0
  107. package/dist-server/service/draft-release-good/draft-release-good-query.js +2 -2
  108. package/dist-server/service/draft-release-good/draft-release-good-query.js.map +1 -1
  109. package/dist-server/service/draft-release-good/draft-release-good-type.d.ts +91 -0
  110. package/dist-server/service/draft-release-good/draft-release-good-type.js +6 -6
  111. package/dist-server/service/draft-release-good/draft-release-good-type.js.map +1 -1
  112. package/dist-server/service/draft-release-good/draft-release-good.d.ts +66 -0
  113. package/dist-server/service/draft-release-good/draft-release-good.js +4 -5
  114. package/dist-server/service/draft-release-good/draft-release-good.js.map +1 -1
  115. package/dist-server/service/draft-release-good/index.d.ts +7 -0
  116. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.d.ts +16 -0
  117. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js +2 -2
  118. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js.map +1 -1
  119. package/dist-server/service/goods-receival-note/goods-receival-note-query.d.ts +11 -0
  120. package/dist-server/service/goods-receival-note/goods-receival-note-query.js +2 -2
  121. package/dist-server/service/goods-receival-note/goods-receival-note-query.js.map +1 -1
  122. package/dist-server/service/goods-receival-note/goods-receival-note-types.d.ts +39 -0
  123. package/dist-server/service/goods-receival-note/goods-receival-note-types.js +8 -8
  124. package/dist-server/service/goods-receival-note/goods-receival-note-types.js.map +1 -1
  125. package/dist-server/service/goods-receival-note/goods-receival-note.d.ts +36 -0
  126. package/dist-server/service/goods-receival-note/goods-receival-note.js +3 -4
  127. package/dist-server/service/goods-receival-note/goods-receival-note.js.map +1 -1
  128. package/dist-server/service/goods-receival-note/index.d.ts +7 -0
  129. package/dist-server/service/index.d.ts +119 -0
  130. package/dist-server/service/inventory-check/index.d.ts +7 -0
  131. package/dist-server/service/inventory-check/inventory-check-mutation.d.ts +14 -0
  132. package/dist-server/service/inventory-check/inventory-check-mutation.js +2 -2
  133. package/dist-server/service/inventory-check/inventory-check-mutation.js.map +1 -1
  134. package/dist-server/service/inventory-check/inventory-check-query.d.ts +11 -0
  135. package/dist-server/service/inventory-check/inventory-check-query.js +2 -2
  136. package/dist-server/service/inventory-check/inventory-check-query.js.map +1 -1
  137. package/dist-server/service/inventory-check/inventory-check-types.d.ts +20 -0
  138. package/dist-server/service/inventory-check/inventory-check-types.js +6 -6
  139. package/dist-server/service/inventory-check/inventory-check-types.js.map +1 -1
  140. package/dist-server/service/inventory-check/inventory-check.d.ts +24 -0
  141. package/dist-server/service/inventory-check/inventory-check.js +3 -4
  142. package/dist-server/service/inventory-check/inventory-check.js.map +1 -1
  143. package/dist-server/service/invoice/index.d.ts +7 -0
  144. package/dist-server/service/invoice/invoice-mutation.d.ts +11 -0
  145. package/dist-server/service/invoice/invoice-mutation.js +2 -2
  146. package/dist-server/service/invoice/invoice-mutation.js.map +1 -1
  147. package/dist-server/service/invoice/invoice-query.d.ts +11 -0
  148. package/dist-server/service/invoice/invoice-query.js +2 -2
  149. package/dist-server/service/invoice/invoice-query.js.map +1 -1
  150. package/dist-server/service/invoice/invoice-types.d.ts +97 -0
  151. package/dist-server/service/invoice/invoice-types.js +6 -6
  152. package/dist-server/service/invoice/invoice-types.js.map +1 -1
  153. package/dist-server/service/invoice/invoice.d.ts +58 -0
  154. package/dist-server/service/invoice/invoice.js +2 -2
  155. package/dist-server/service/invoice/invoice.js.map +1 -1
  156. package/dist-server/service/invoice-product/index.d.ts +7 -0
  157. package/dist-server/service/invoice-product/invoice-product-mutation.d.ts +7 -0
  158. package/dist-server/service/invoice-product/invoice-product-mutation.js +2 -2
  159. package/dist-server/service/invoice-product/invoice-product-mutation.js.map +1 -1
  160. package/dist-server/service/invoice-product/invoice-product-query.d.ts +11 -0
  161. package/dist-server/service/invoice-product/invoice-product-query.js +2 -2
  162. package/dist-server/service/invoice-product/invoice-product-query.js.map +1 -1
  163. package/dist-server/service/invoice-product/invoice-product-types.d.ts +32 -0
  164. package/dist-server/service/invoice-product/invoice-product-types.js +8 -8
  165. package/dist-server/service/invoice-product/invoice-product-types.js.map +1 -1
  166. package/dist-server/service/invoice-product/invoice-product.d.ts +26 -0
  167. package/dist-server/service/invoice-product/invoice-product.js +3 -4
  168. package/dist-server/service/invoice-product/invoice-product.js.map +1 -1
  169. package/dist-server/service/job-sheet/index.d.ts +7 -0
  170. package/dist-server/service/job-sheet/job-sheet-mutation.d.ts +10 -0
  171. package/dist-server/service/job-sheet/job-sheet-mutation.js +2 -2
  172. package/dist-server/service/job-sheet/job-sheet-mutation.js.map +1 -1
  173. package/dist-server/service/job-sheet/job-sheet-query.d.ts +11 -0
  174. package/dist-server/service/job-sheet/job-sheet-query.js +2 -2
  175. package/dist-server/service/job-sheet/job-sheet-query.js.map +1 -1
  176. package/dist-server/service/job-sheet/job-sheet-types.d.ts +27 -0
  177. package/dist-server/service/job-sheet/job-sheet-types.js +6 -6
  178. package/dist-server/service/job-sheet/job-sheet-types.js.map +1 -1
  179. package/dist-server/service/job-sheet/job-sheet.d.ts +27 -0
  180. package/dist-server/service/job-sheet/job-sheet.js +3 -4
  181. package/dist-server/service/job-sheet/job-sheet.js.map +1 -1
  182. package/dist-server/service/manifest/index.d.ts +5 -0
  183. package/dist-server/service/manifest/manifest-mutation.d.ts +9 -0
  184. package/dist-server/service/manifest/manifest-mutation.js +2 -2
  185. package/dist-server/service/manifest/manifest-mutation.js.map +1 -1
  186. package/dist-server/service/manifest/manifest-query.d.ts +11 -0
  187. package/dist-server/service/manifest/manifest-query.js +2 -2
  188. package/dist-server/service/manifest/manifest-query.js.map +1 -1
  189. package/dist-server/service/manifest/manifest-type.d.ts +33 -0
  190. package/dist-server/service/manifest/manifest-type.js +10 -10
  191. package/dist-server/service/manifest/manifest-type.js.map +1 -1
  192. package/dist-server/service/manifest/manifest.d.ts +27 -0
  193. package/dist-server/service/manifest/manifest.js +3 -3
  194. package/dist-server/service/manifest/manifest.js.map +1 -1
  195. package/dist-server/service/order-inventory/index.d.ts +7 -0
  196. package/dist-server/service/order-inventory/order-inventory-mutation.d.ts +7 -0
  197. package/dist-server/service/order-inventory/order-inventory-mutation.js +2 -2
  198. package/dist-server/service/order-inventory/order-inventory-mutation.js.map +1 -1
  199. package/dist-server/service/order-inventory/order-inventory-query.d.ts +18 -0
  200. package/dist-server/service/order-inventory/order-inventory-query.js +2 -2
  201. package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
  202. package/dist-server/service/order-inventory/order-inventory-types.d.ts +84 -0
  203. package/dist-server/service/order-inventory/order-inventory-types.js +8 -9
  204. package/dist-server/service/order-inventory/order-inventory-types.js.map +1 -1
  205. package/dist-server/service/order-inventory/order-inventory.d.ts +114 -0
  206. package/dist-server/service/order-inventory/order-inventory.js +8 -9
  207. package/dist-server/service/order-inventory/order-inventory.js.map +1 -1
  208. package/dist-server/service/order-product/index.d.ts +7 -0
  209. package/dist-server/service/order-product/order-product-mutation.d.ts +7 -0
  210. package/dist-server/service/order-product/order-product-mutation.js +2 -2
  211. package/dist-server/service/order-product/order-product-mutation.js.map +1 -1
  212. package/dist-server/service/order-product/order-product-query.d.ts +11 -0
  213. package/dist-server/service/order-product/order-product-query.js +2 -2
  214. package/dist-server/service/order-product/order-product-query.js.map +1 -1
  215. package/dist-server/service/order-product/order-product-types.d.ts +116 -0
  216. package/dist-server/service/order-product/order-product-types.js +8 -8
  217. package/dist-server/service/order-product/order-product-types.js.map +1 -1
  218. package/dist-server/service/order-product/order-product.d.ts +95 -0
  219. package/dist-server/service/order-product/order-product.js +24 -13
  220. package/dist-server/service/order-product/order-product.js.map +1 -1
  221. package/dist-server/service/order-tote/index.d.ts +7 -0
  222. package/dist-server/service/order-tote/order-tote-mutation.d.ts +4 -0
  223. package/dist-server/service/order-tote/order-tote-mutation.js +2 -2
  224. package/dist-server/service/order-tote/order-tote-mutation.js.map +1 -1
  225. package/dist-server/service/order-tote/order-tote-query.d.ts +8 -0
  226. package/dist-server/service/order-tote/order-tote-query.js +2 -2
  227. package/dist-server/service/order-tote/order-tote-query.js.map +1 -1
  228. package/dist-server/service/order-tote/order-tote-types.d.ts +19 -0
  229. package/dist-server/service/order-tote/order-tote-types.js +6 -6
  230. package/dist-server/service/order-tote/order-tote-types.js.map +1 -1
  231. package/dist-server/service/order-tote/order-tote.d.ts +20 -0
  232. package/dist-server/service/order-tote/order-tote.js +3 -4
  233. package/dist-server/service/order-tote/order-tote.js.map +1 -1
  234. package/dist-server/service/order-tote-item/index.d.ts +7 -0
  235. package/dist-server/service/order-tote-item/order-tote-item-mutation.d.ts +4 -0
  236. package/dist-server/service/order-tote-item/order-tote-item-mutation.js +2 -2
  237. package/dist-server/service/order-tote-item/order-tote-item-mutation.js.map +1 -1
  238. package/dist-server/service/order-tote-item/order-tote-item-query.d.ts +7 -0
  239. package/dist-server/service/order-tote-item/order-tote-item-query.js +2 -2
  240. package/dist-server/service/order-tote-item/order-tote-item-query.js.map +1 -1
  241. package/dist-server/service/order-tote-item/order-tote-item-types.d.ts +22 -0
  242. package/dist-server/service/order-tote-item/order-tote-item-types.js +6 -6
  243. package/dist-server/service/order-tote-item/order-tote-item-types.js.map +1 -1
  244. package/dist-server/service/order-tote-item/order-tote-item.d.ts +23 -0
  245. package/dist-server/service/order-tote-item/order-tote-item.js +2 -2
  246. package/dist-server/service/order-tote-item/order-tote-item.js.map +1 -1
  247. package/dist-server/service/order-tote-seal/index.d.ts +7 -0
  248. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.d.ts +4 -0
  249. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js +2 -2
  250. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js.map +1 -1
  251. package/dist-server/service/order-tote-seal/order-tote-seal-query.d.ts +12 -0
  252. package/dist-server/service/order-tote-seal/order-tote-seal-query.js +2 -2
  253. package/dist-server/service/order-tote-seal/order-tote-seal-query.js.map +1 -1
  254. package/dist-server/service/order-tote-seal/order-tote-seal-types.d.ts +17 -0
  255. package/dist-server/service/order-tote-seal/order-tote-seal-types.js +6 -6
  256. package/dist-server/service/order-tote-seal/order-tote-seal-types.js.map +1 -1
  257. package/dist-server/service/order-tote-seal/order-tote-seal.d.ts +14 -0
  258. package/dist-server/service/order-tote-seal/order-tote-seal.js +2 -2
  259. package/dist-server/service/order-tote-seal/order-tote-seal.js.map +1 -1
  260. package/dist-server/service/order-vas/index.d.ts +7 -0
  261. package/dist-server/service/order-vas/order-vas-mutation.d.ts +5 -0
  262. package/dist-server/service/order-vas/order-vas-mutation.js +2 -2
  263. package/dist-server/service/order-vas/order-vas-mutation.js.map +1 -1
  264. package/dist-server/service/order-vas/order-vas-query.d.ts +11 -0
  265. package/dist-server/service/order-vas/order-vas-query.js +2 -2
  266. package/dist-server/service/order-vas/order-vas-query.js.map +1 -1
  267. package/dist-server/service/order-vas/order-vas-types.d.ts +57 -0
  268. package/dist-server/service/order-vas/order-vas-types.js +6 -6
  269. package/dist-server/service/order-vas/order-vas-types.js.map +1 -1
  270. package/dist-server/service/order-vas/order-vas.d.ts +65 -0
  271. package/dist-server/service/order-vas/order-vas.js +8 -10
  272. package/dist-server/service/order-vas/order-vas.js.map +1 -1
  273. package/dist-server/service/others/index.d.ts +3 -0
  274. package/dist-server/service/others/other-query.d.ts +10 -0
  275. package/dist-server/service/others/other-query.js +41 -11
  276. package/dist-server/service/others/other-query.js.map +1 -1
  277. package/dist-server/service/others/other-types.d.ts +40 -0
  278. package/dist-server/service/others/other-types.js +5 -6
  279. package/dist-server/service/others/other-types.js.map +1 -1
  280. package/dist-server/service/purchase-order/index.d.ts +7 -0
  281. package/dist-server/service/purchase-order/purchase-order-mutation.d.ts +18 -0
  282. package/dist-server/service/purchase-order/purchase-order-mutation.js +11 -21
  283. package/dist-server/service/purchase-order/purchase-order-mutation.js.map +1 -1
  284. package/dist-server/service/purchase-order/purchase-order-query.d.ts +54 -0
  285. package/dist-server/service/purchase-order/purchase-order-query.js +2 -2
  286. package/dist-server/service/purchase-order/purchase-order-query.js.map +1 -1
  287. package/dist-server/service/purchase-order/purchase-order-types.d.ts +56 -0
  288. package/dist-server/service/purchase-order/purchase-order-types.js +6 -6
  289. package/dist-server/service/purchase-order/purchase-order-types.js.map +1 -1
  290. package/dist-server/service/purchase-order/purchase-order.d.ts +46 -0
  291. package/dist-server/service/purchase-order/purchase-order.js +5 -6
  292. package/dist-server/service/purchase-order/purchase-order.js.map +1 -1
  293. package/dist-server/service/purchase-order-other-charge/index.d.ts +7 -0
  294. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.d.ts +4 -0
  295. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js +2 -2
  296. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js.map +1 -1
  297. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.d.ts +11 -0
  298. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js +2 -2
  299. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js.map +1 -1
  300. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-types.d.ts +18 -0
  301. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-types.js +6 -6
  302. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-types.js.map +1 -1
  303. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.d.ts +20 -0
  304. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js +2 -2
  305. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js.map +1 -1
  306. package/dist-server/service/release-good/index.d.ts +7 -0
  307. package/dist-server/service/release-good/release-good-mutation.d.ts +26 -0
  308. package/dist-server/service/release-good/release-good-mutation.js +3 -3
  309. package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
  310. package/dist-server/service/release-good/release-good-query.d.ts +17 -0
  311. package/dist-server/service/release-good/release-good-query.js +2 -2
  312. package/dist-server/service/release-good/release-good-query.js.map +1 -1
  313. package/dist-server/service/release-good/release-good-types.d.ts +233 -0
  314. package/dist-server/service/release-good/release-good-types.js +21 -22
  315. package/dist-server/service/release-good/release-good-types.js.map +1 -1
  316. package/dist-server/service/release-good/release-good.d.ts +121 -0
  317. package/dist-server/service/release-good/release-good.js +5 -6
  318. package/dist-server/service/release-good/release-good.js.map +1 -1
  319. package/dist-server/service/retail-replenishment-order/index.d.ts +7 -0
  320. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.d.ts +16 -0
  321. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js +2 -2
  322. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js.map +1 -1
  323. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.d.ts +11 -0
  324. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js +2 -2
  325. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js.map +1 -1
  326. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.d.ts +39 -0
  327. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js +6 -6
  328. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js.map +1 -1
  329. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.d.ts +29 -0
  330. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js +3 -4
  331. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js.map +1 -1
  332. package/dist-server/service/return-order/index.d.ts +7 -0
  333. package/dist-server/service/return-order/return-order-mutation.d.ts +18 -0
  334. package/dist-server/service/return-order/return-order-mutation.js +3 -3
  335. package/dist-server/service/return-order/return-order-mutation.js.map +1 -1
  336. package/dist-server/service/return-order/return-order-query.d.ts +13 -0
  337. package/dist-server/service/return-order/return-order-query.js +2 -2
  338. package/dist-server/service/return-order/return-order-query.js.map +1 -1
  339. package/dist-server/service/return-order/return-order-types.d.ts +76 -0
  340. package/dist-server/service/return-order/return-order-types.js +10 -11
  341. package/dist-server/service/return-order/return-order-types.js.map +1 -1
  342. package/dist-server/service/return-order/return-order.d.ts +33 -0
  343. package/dist-server/service/return-order/return-order.js +3 -4
  344. package/dist-server/service/return-order/return-order.js.map +1 -1
  345. package/dist-server/service/reverse-kitting-order/index.d.ts +7 -0
  346. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.d.ts +14 -0
  347. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js +2 -2
  348. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js.map +1 -1
  349. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.d.ts +14 -0
  350. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js +2 -2
  351. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js.map +1 -1
  352. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.d.ts +61 -0
  353. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js +15 -16
  354. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js.map +1 -1
  355. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.d.ts +34 -0
  356. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js +5 -6
  357. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js.map +1 -1
  358. package/dist-server/service/reverse-kitting-order-inventory/index.d.ts +7 -0
  359. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.d.ts +9 -0
  360. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js +2 -2
  361. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js.map +1 -1
  362. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.d.ts +11 -0
  363. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js +2 -2
  364. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js.map +1 -1
  365. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.d.ts +35 -0
  366. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js +6 -6
  367. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js.map +1 -1
  368. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.d.ts +39 -0
  369. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js +5 -6
  370. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js.map +1 -1
  371. package/dist-server/service/shipping-order/index.d.ts +7 -0
  372. package/dist-server/service/shipping-order/shipping-order-mutation.d.ts +7 -0
  373. package/dist-server/service/shipping-order/shipping-order-mutation.js +2 -2
  374. package/dist-server/service/shipping-order/shipping-order-mutation.js.map +1 -1
  375. package/dist-server/service/shipping-order/shipping-order-query.d.ts +11 -0
  376. package/dist-server/service/shipping-order/shipping-order-query.js +2 -2
  377. package/dist-server/service/shipping-order/shipping-order-query.js.map +1 -1
  378. package/dist-server/service/shipping-order/shipping-order-types.d.ts +33 -0
  379. package/dist-server/service/shipping-order/shipping-order-types.js +6 -6
  380. package/dist-server/service/shipping-order/shipping-order-types.js.map +1 -1
  381. package/dist-server/service/shipping-order/shipping-order.d.ts +33 -0
  382. package/dist-server/service/shipping-order/shipping-order.js +3 -4
  383. package/dist-server/service/shipping-order/shipping-order.js.map +1 -1
  384. package/dist-server/service/transfer-order/index.d.ts +7 -0
  385. package/dist-server/service/transfer-order/transfer-order-mutation.d.ts +16 -0
  386. package/dist-server/service/transfer-order/transfer-order-mutation.js +3 -3
  387. package/dist-server/service/transfer-order/transfer-order-mutation.js.map +1 -1
  388. package/dist-server/service/transfer-order/transfer-order-query.d.ts +11 -0
  389. package/dist-server/service/transfer-order/transfer-order-query.js +2 -2
  390. package/dist-server/service/transfer-order/transfer-order-query.js.map +1 -1
  391. package/dist-server/service/transfer-order/transfer-order-types.d.ts +37 -0
  392. package/dist-server/service/transfer-order/transfer-order-types.js +6 -6
  393. package/dist-server/service/transfer-order/transfer-order-types.js.map +1 -1
  394. package/dist-server/service/transfer-order/transfer-order.d.ts +30 -0
  395. package/dist-server/service/transfer-order/transfer-order.js +3 -4
  396. package/dist-server/service/transfer-order/transfer-order.js.map +1 -1
  397. package/dist-server/service/vas/index.d.ts +7 -0
  398. package/dist-server/service/vas/vas-mutation.d.ts +9 -0
  399. package/dist-server/service/vas/vas-mutation.js +2 -2
  400. package/dist-server/service/vas/vas-mutation.js.map +1 -1
  401. package/dist-server/service/vas/vas-query.d.ts +11 -0
  402. package/dist-server/service/vas/vas-query.js +2 -2
  403. package/dist-server/service/vas/vas-query.js.map +1 -1
  404. package/dist-server/service/vas/vas-types.d.ts +27 -0
  405. package/dist-server/service/vas/vas-types.js +6 -6
  406. package/dist-server/service/vas/vas-types.js.map +1 -1
  407. package/dist-server/service/vas/vas.d.ts +22 -0
  408. package/dist-server/service/vas/vas.js +2 -2
  409. package/dist-server/service/vas/vas.js.map +1 -1
  410. package/dist-server/service/vas-order/index.d.ts +7 -0
  411. package/dist-server/service/vas-order/vas-order-mutation.d.ts +9 -0
  412. package/dist-server/service/vas-order/vas-order-mutation.js +2 -2
  413. package/dist-server/service/vas-order/vas-order-mutation.js.map +1 -1
  414. package/dist-server/service/vas-order/vas-order-query.d.ts +12 -0
  415. package/dist-server/service/vas-order/vas-order-query.js +2 -2
  416. package/dist-server/service/vas-order/vas-order-query.js.map +1 -1
  417. package/dist-server/service/vas-order/vas-order-types.d.ts +21 -0
  418. package/dist-server/service/vas-order/vas-order-types.js +6 -6
  419. package/dist-server/service/vas-order/vas-order-types.js.map +1 -1
  420. package/dist-server/service/vas-order/vas-order.d.ts +22 -0
  421. package/dist-server/service/vas-order/vas-order.js +3 -4
  422. package/dist-server/service/vas-order/vas-order.js.map +1 -1
  423. package/dist-server/tsconfig.tsbuildinfo +1 -1
  424. package/dist-server/utils/datetime-util.d.ts +7 -0
  425. package/dist-server/utils/datetime-util.js.map +1 -1
  426. package/dist-server/utils/index.d.ts +3 -0
  427. package/dist-server/utils/inventory-util.d.ts +75 -0
  428. package/dist-server/utils/inventory-util.js +2 -2
  429. package/dist-server/utils/inventory-util.js.map +1 -1
  430. package/dist-server/utils/order-no-generator.d.ts +25 -0
  431. package/package.json +13 -13
  432. package/server/controllers/order-controller.ts +1 -1
  433. package/server/service/arrival-notice/arrival-notice-mutation.ts +123 -26
  434. package/server/service/claim/claim-mutation.ts +3 -3
  435. package/server/service/delivery-order/delivery-order-mutation.ts +6 -6
  436. package/server/service/draft-release-good/draft-release-good-mutation.ts +11 -10
  437. package/server/service/draft-release-good/draft-release-good-query.ts +1 -1
  438. package/server/service/inventory-check/inventory-check-mutation.ts +1 -1
  439. package/server/service/order-inventory/order-inventory-query.ts +1 -1
  440. package/server/service/order-product/order-product.ts +26 -4
  441. package/server/service/others/other-query.ts +78 -19
  442. package/server/service/purchase-order/purchase-order-mutation.ts +5 -4
  443. package/server/service/release-good/release-good-mutation.ts +7 -7
  444. package/server/service/release-good/release-good-query.ts +16 -16
  445. package/server/service/return-order/return-order-mutation.ts +3 -3
  446. package/server/service/reverse-kitting-order/reverse-kitting-order-mutation.ts +5 -5
  447. package/server/service/reverse-kitting-order/reverse-kitting-order-query.ts +1 -1
  448. package/server/service/transfer-order/transfer-order-mutation.ts +3 -3
  449. package/server/utils/inventory-util.ts +20 -20
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a, _b, _c;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.CollectionOrder = void 0;
5
4
  const tslib_1 = require("tslib");
@@ -13,6 +12,7 @@ const typeorm_1 = require("typeorm");
13
12
  const __1 = require("../");
14
13
  let CollectionOrder = class CollectionOrder {
15
14
  };
15
+ exports.CollectionOrder = CollectionOrder;
16
16
  tslib_1.__decorate([
17
17
  (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
18
18
  (0, type_graphql_1.Field)(),
@@ -30,7 +30,7 @@ tslib_1.__decorate([
30
30
  tslib_1.__decorate([
31
31
  (0, typeorm_1.ManyToOne)(type => biz_base_1.Bizplace),
32
32
  (0, type_graphql_1.Field)(type => biz_base_1.Bizplace, { nullable: true }),
33
- tslib_1.__metadata("design:type", typeof (_a = typeof biz_base_1.Bizplace !== "undefined" && biz_base_1.Bizplace) === "function" ? _a : Object)
33
+ tslib_1.__metadata("design:type", biz_base_1.Bizplace)
34
34
  ], CollectionOrder.prototype, "bizplace", void 0);
35
35
  tslib_1.__decorate([
36
36
  (0, typeorm_1.RelationId)((collectionOrder) => collectionOrder.bizplace),
@@ -75,13 +75,13 @@ tslib_1.__decorate([
75
75
  (0, typeorm_1.OneToOne)(type => transport_base_1.TransportDriver),
76
76
  (0, typeorm_1.JoinColumn)(),
77
77
  (0, type_graphql_1.Field)(type => transport_base_1.TransportDriver, { nullable: true }),
78
- tslib_1.__metadata("design:type", typeof (_b = typeof transport_base_1.TransportDriver !== "undefined" && transport_base_1.TransportDriver) === "function" ? _b : Object)
78
+ tslib_1.__metadata("design:type", transport_base_1.TransportDriver)
79
79
  ], CollectionOrder.prototype, "transportDriver", void 0);
80
80
  tslib_1.__decorate([
81
81
  (0, typeorm_1.OneToOne)(type => transport_base_1.TransportVehicle),
82
82
  (0, typeorm_1.JoinColumn)(),
83
83
  (0, type_graphql_1.Field)(type => transport_base_1.TransportVehicle, { nullable: true }),
84
- tslib_1.__metadata("design:type", typeof (_c = typeof transport_base_1.TransportVehicle !== "undefined" && transport_base_1.TransportVehicle) === "function" ? _c : Object)
84
+ tslib_1.__metadata("design:type", transport_base_1.TransportVehicle)
85
85
  ], CollectionOrder.prototype, "transportVehicle", void 0);
86
86
  tslib_1.__decorate([
87
87
  (0, typeorm_1.Column)({ nullable: true }),
@@ -164,12 +164,11 @@ tslib_1.__decorate([
164
164
  (0, type_graphql_1.Field)(type => attachment_base_1.Attachment, { nullable: true }),
165
165
  tslib_1.__metadata("design:type", Array)
166
166
  ], CollectionOrder.prototype, "attachments", void 0);
167
- CollectionOrder = tslib_1.__decorate([
167
+ exports.CollectionOrder = CollectionOrder = tslib_1.__decorate([
168
168
  (0, typeorm_1.Entity)(),
169
169
  (0, typeorm_1.Index)('ix_collection-order_0', (collectionOrder) => [collectionOrder.domain, collectionOrder.name], {
170
170
  unique: true
171
171
  }),
172
172
  (0, type_graphql_1.ObjectType)()
173
173
  ], CollectionOrder);
174
- exports.CollectionOrder = CollectionOrder;
175
174
  //# sourceMappingURL=collection-order.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-order.js","sourceRoot":"","sources":["../../../server/service/collection-order/collection-order.ts"],"names":[],"mappings":"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","sourcesContent":["import { Attachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { Domain, roundTransformer } from '@things-factory/shell'\nimport { TransportDriver, TransportVehicle } from '@things-factory/transport-base'\nimport { Field, ObjectType } from 'type-graphql'\nimport { Column, CreateDateColumn, Entity, Index, JoinColumn, ManyToOne, OneToOne, PrimaryGeneratedColumn, RelationId, UpdateDateColumn } from 'typeorm'\nimport { ArrivalNotice } from '../'\n\n@Entity()\n@Index('ix_collection-order_0', (collectionOrder: CollectionOrder) => [collectionOrder.domain, collectionOrder.name], {\n unique: true\n})\n@ObjectType()\nexport class CollectionOrder {\n @PrimaryGeneratedColumn('uuid')\n @Field()\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true })\n domain: Domain\n\n @RelationId((collectionOrder: CollectionOrder) => collectionOrder.domain)\n domainId: string\n\n @ManyToOne(type => Bizplace)\n @Field(type => Bizplace, { nullable: true })\n bizplace: Bizplace\n\n @RelationId((collectionOrder: CollectionOrder) => collectionOrder.bizplace)\n bizplaceId: string\n\n @Column()\n @Field()\n name: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n from: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n to: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n collectionDateTime: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n collectionDate: string\n\n @Column('float', { nullable: true, transformer: roundTransformer })\n @Field({ nullable: true })\n loadWeight: Number\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n cargoType: string\n\n @OneToOne(type => TransportDriver)\n @JoinColumn()\n @Field(type => TransportDriver, { nullable: true })\n transportDriver: TransportDriver\n\n @OneToOne(type => TransportVehicle)\n @JoinColumn()\n @Field(type => TransportVehicle, { nullable: true })\n transportVehicle: TransportVehicle\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n urgency: Boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n looseItem: Boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n refNo: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n truckNo: string\n\n @ManyToOne(type => ArrivalNotice)\n @Field(type => ArrivalNotice, { nullable: true })\n arrivalNotice: ArrivalNotice\n\n @RelationId((collectionOrder: CollectionOrder) => collectionOrder.arrivalNotice)\n arrivalNoticeId: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n telNo: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n remark: string\n\n @Column()\n @Field()\n status: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description: string\n\n @CreateDateColumn()\n @Field()\n createdAt: Date\n\n @UpdateDateColumn()\n @Field()\n updatedAt: Date\n\n @ManyToOne(type => User)\n @Field(type => User, { nullable: true })\n creator: User\n\n @RelationId((collectionOrder: CollectionOrder) => collectionOrder.creator)\n creatorId: string\n\n @ManyToOne(type => User)\n @Field(type => User, { nullable: true })\n updater: User\n\n @RelationId((collectionOrder: CollectionOrder) => collectionOrder.updater)\n updaterId: string\n\n @Field(type => Attachment, { nullable: true })\n attachments: Attachment[]\n}\n"]}
1
+ {"version":3,"file":"collection-order.js","sourceRoot":"","sources":["../../../server/service/collection-order/collection-order.ts"],"names":[],"mappings":";;;;AAAA,qEAA4D;AAC5D,yDAAgD;AAChD,uDAAmD;AACnD,iDAAgE;AAChE,mEAAkF;AAClF,+CAAgD;AAChD,qCAAwJ;AACxJ,2BAAmC;AAO5B,IAAM,eAAe,GAArB,MAAM,eAAe;CAwH3B,CAAA;AAxHY,0CAAe;AAGjB;IAFR,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,GAAE;;2CACW;AAInB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAClC,cAAM;+CAAA;AAGd;IADC,IAAA,oBAAU,EAAC,CAAC,eAAgC,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC;;iDACzD;AAIhB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,mBAAQ,CAAC;IAC3B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,mBAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAClC,mBAAQ;iDAAA;AAGlB;IADC,IAAA,oBAAU,EAAC,CAAC,eAAgC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC;;mDACzD;AAIlB;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;6CACI;AAIZ;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACd;AAIZ;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CAChB;AAIV;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACN,IAAI;2DAAA;AAIxB;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACJ;AAItB;IAFC,IAAA,gBAAM,EAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wBAAgB,EAAE,CAAC;IAClE,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,MAAM;mDAAA;AAIlB;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACT;AAKjB;IAHC,IAAA,kBAAQ,EAAC,IAAI,CAAC,EAAE,CAAC,gCAAe,CAAC;IACjC,IAAA,oBAAU,GAAE;IACZ,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gCAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAClC,gCAAe;wDAAA;AAKhC;IAHC,IAAA,kBAAQ,EAAC,IAAI,CAAC,EAAE,CAAC,iCAAgB,CAAC;IAClC,IAAA,oBAAU,GAAE;IACZ,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iCAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAClC,iCAAgB;yDAAA;AAIlC;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjB,OAAO;gDAAA;AAIhB;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,OAAO;kDAAA;AAIlB;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACb;AAIb;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACX;AAIf;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAa,CAAC;IAChC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAClC,iBAAa;sDAAA;AAG5B;IADC,IAAA,oBAAU,EAAC,CAAC,eAAgC,EAAE,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC;;wDACzD;AAIvB;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACb;AAIb;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACZ;AAId;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;+CACM;AAId;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACP;AAInB;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,GAAE;sCACG,IAAI;kDAAA;AAIf;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,GAAE;sCACG,IAAI;kDAAA;AAIf;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACvB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC/B,gBAAI;gDAAA;AAGb;IADC,IAAA,oBAAU,EAAC,CAAC,eAAgC,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;;kDACzD;AAIjB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACvB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC/B,gBAAI;gDAAA;AAGb;IADC,IAAA,oBAAU,EAAC,CAAC,eAAgC,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;;kDACzD;AAGjB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,4BAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACrB;0BAvHd,eAAe;IAL3B,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,uBAAuB,EAAE,CAAC,eAAgC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;QACpH,MAAM,EAAE,IAAI;KACb,CAAC;IACD,IAAA,yBAAU,GAAE;GACA,eAAe,CAwH3B","sourcesContent":["import { Attachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { Domain, roundTransformer } from '@things-factory/shell'\nimport { TransportDriver, TransportVehicle } from '@things-factory/transport-base'\nimport { Field, ObjectType } from 'type-graphql'\nimport { Column, CreateDateColumn, Entity, Index, JoinColumn, ManyToOne, OneToOne, PrimaryGeneratedColumn, RelationId, UpdateDateColumn } from 'typeorm'\nimport { ArrivalNotice } from '../'\n\n@Entity()\n@Index('ix_collection-order_0', (collectionOrder: CollectionOrder) => [collectionOrder.domain, collectionOrder.name], {\n unique: true\n})\n@ObjectType()\nexport class CollectionOrder {\n @PrimaryGeneratedColumn('uuid')\n @Field()\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true })\n domain: Domain\n\n @RelationId((collectionOrder: CollectionOrder) => collectionOrder.domain)\n domainId: string\n\n @ManyToOne(type => Bizplace)\n @Field(type => Bizplace, { nullable: true })\n bizplace: Bizplace\n\n @RelationId((collectionOrder: CollectionOrder) => collectionOrder.bizplace)\n bizplaceId: string\n\n @Column()\n @Field()\n name: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n from: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n to: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n collectionDateTime: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n collectionDate: string\n\n @Column('float', { nullable: true, transformer: roundTransformer })\n @Field({ nullable: true })\n loadWeight: Number\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n cargoType: string\n\n @OneToOne(type => TransportDriver)\n @JoinColumn()\n @Field(type => TransportDriver, { nullable: true })\n transportDriver: TransportDriver\n\n @OneToOne(type => TransportVehicle)\n @JoinColumn()\n @Field(type => TransportVehicle, { nullable: true })\n transportVehicle: TransportVehicle\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n urgency: Boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n looseItem: Boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n refNo: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n truckNo: string\n\n @ManyToOne(type => ArrivalNotice)\n @Field(type => ArrivalNotice, { nullable: true })\n arrivalNotice: ArrivalNotice\n\n @RelationId((collectionOrder: CollectionOrder) => collectionOrder.arrivalNotice)\n arrivalNoticeId: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n telNo: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n remark: string\n\n @Column()\n @Field()\n status: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description: string\n\n @CreateDateColumn()\n @Field()\n createdAt: Date\n\n @UpdateDateColumn()\n @Field()\n updatedAt: Date\n\n @ManyToOne(type => User)\n @Field(type => User, { nullable: true })\n creator: User\n\n @RelationId((collectionOrder: CollectionOrder) => collectionOrder.creator)\n creatorId: string\n\n @ManyToOne(type => User)\n @Field(type => User, { nullable: true })\n updater: User\n\n @RelationId((collectionOrder: CollectionOrder) => collectionOrder.updater)\n updaterId: string\n\n @Field(type => Attachment, { nullable: true })\n attachments: Attachment[]\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { CollectionOrder } from './collection-order';
2
+ import { CollectionOrderMutation } from './collection-order-mutation';
3
+ import { CollectionOrderQuery } from './collection-order-query';
4
+ export declare const entities: (typeof CollectionOrder)[];
5
+ export declare const resolvers: (typeof CollectionOrderMutation | typeof CollectionOrderQuery)[];
6
+ export * from './collection-order-mutation';
7
+ export * from './collection-order-query';
@@ -0,0 +1,38 @@
1
+ import type { FileUpload } from 'graphql-upload/GraphQLUpload.js';
2
+ import { EntityManager } from 'typeorm';
3
+ import { User } from '@things-factory/auth-base';
4
+ import { Bizplace } from '@things-factory/biz-base';
5
+ import { Domain, ObjectRef } from '@things-factory/shell';
6
+ import { OrderInventory } from '../order-inventory/order-inventory';
7
+ import { NewOrderInventory, OrderInventoryPatch } from '../order-inventory/order-inventory-types';
8
+ import { ReleaseGood } from '../release-good/release-good';
9
+ import { ExportInformationPatch, ShippingOrderInfoPatch } from '../release-good/release-good-types';
10
+ import { DeliveryOrder } from './delivery-order';
11
+ import { DeliveryOrderPatch, NewDeliveryOrder } from './delivery-order-types';
12
+ export declare class DeliveryOrderMutation {
13
+ createDeliveryOrder(context: ResolverContext, orderInfo?: NewDeliveryOrder, customerBizplace?: ObjectRef, targetInventories?: NewOrderInventory[], file?: FileUpload[]): Promise<DeliveryOrder>;
14
+ updateDeliveryOrder(name: string, patch: DeliveryOrderPatch, context: ResolverContext): Promise<DeliveryOrder>;
15
+ deleteDeliveryOrder(name: string, context: ResolverContext): Promise<boolean>;
16
+ generateDeliveryOrder(context: ResolverContext, orderInfo?: DeliveryOrderPatch, customerBizplace?: ObjectRef, releaseGood?: ObjectRef, targetInventories?: ObjectRef[]): Promise<DeliveryOrder>;
17
+ confirmDeliveryOrder(name: string, context: ResolverContext): Promise<DeliveryOrder>;
18
+ receiveDeliveryOrder(name: string, context: ResolverContext): Promise<DeliveryOrder>;
19
+ checkDeliveredOrder(context: ResolverContext, name: string, patch?: DeliveryOrderPatch): Promise<DeliveryOrder>;
20
+ /**
21
+ * comment start
22
+ * detailed review needed 06 Aug 2022 by @ChrisLim-git
23
+ * @param context
24
+ * @param orderInfo
25
+ * @param orderItems
26
+ * @param shippingOrderInfo
27
+ * @param exportInfo
28
+ * @returns DeliveryOrder
29
+ */
30
+ dispatchDeliveryOrder(context: ResolverContext, orderInfo?: DeliveryOrderPatch, orderItems?: OrderInventoryPatch[], shippingOrderInfo?: ShippingOrderInfoPatch, exportInfo?: ExportInformationPatch): Promise<DeliveryOrder>;
31
+ /** */
32
+ dispatchManualDeliveryOrder(context: ResolverContext, orderInfo?: DeliveryOrderPatch, orderItems?: OrderInventoryPatch[]): Promise<DeliveryOrder>;
33
+ sendDeliveryOrder(context: ResolverContext, orderInfo?: DeliveryOrderPatch, orderItems?: OrderInventoryPatch[]): Promise<DeliveryOrder>;
34
+ rejectDeliveryOrder(name: string, patch: DeliveryOrderPatch, context: ResolverContext): Promise<DeliveryOrder>;
35
+ submitGoodsDeliveryNote(context: ResolverContext, name: string, file?: FileUpload): Promise<DeliveryOrder>;
36
+ }
37
+ export declare function createDeliveryOrder(orderInfo: any, customerBizplace: Bizplace, targetInventories: (OrderInventory | NewOrderInventory)[], file: FileUpload[], domain: Domain, user: User, tx?: EntityManager): Promise<DeliveryOrder>;
38
+ export declare function generateDeliveryOrder(orderInfo: DeliveryOrder | DeliveryOrderPatch, targetInventories: OrderInventory[], customerBizplace: Bizplace, releaseGood: ReleaseGood, domain: Domain, user: User, tx?: EntityManager): Promise<DeliveryOrder>;
@@ -116,7 +116,7 @@ let DeliveryOrderMutation = class DeliveryOrderMutation {
116
116
  await tx.getRepository(delivery_order_1.DeliveryOrder).save(Object.assign(Object.assign(Object.assign({}, deliveryOrder), patch), { status: constants_1.ORDER_STATUS.DONE, updater: user }));
117
117
  if (!(deliveryOrder === null || deliveryOrder === void 0 ? void 0 : deliveryOrder.ownCollection)) {
118
118
  const foundTruck = deliveryOrder.transportVehicle;
119
- await tx.getRepository(transport_base_1.TransportVehicle).save(Object.assign(Object.assign({}, foundTruck), { status: transport_base_1.TRUCK_STATUS.IDLE, updater: user }));
119
+ await tx.getRepository(transport_base_1.TransportVehicle).save(Object.assign(Object.assign({}, foundTruck), { status: transport_base_1.TRUCK_STATUS.AVAILABLE, updater: user }));
120
120
  }
121
121
  return deliveryOrder;
122
122
  }
@@ -443,6 +443,7 @@ let DeliveryOrderMutation = class DeliveryOrderMutation {
443
443
  return await tx.getRepository(delivery_order_1.DeliveryOrder).save(Object.assign(Object.assign({}, foundDO), { status: constants_1.ORDER_STATUS.DONE, updater: user }));
444
444
  }
445
445
  };
446
+ exports.DeliveryOrderMutation = DeliveryOrderMutation;
446
447
  tslib_1.__decorate([
447
448
  (0, type_graphql_1.Directive)('@transaction'),
448
449
  (0, type_graphql_1.Mutation)(returns => delivery_order_1.DeliveryOrder),
@@ -570,10 +571,9 @@ tslib_1.__decorate([
570
571
  tslib_1.__metadata("design:paramtypes", [Object, String, Object]),
571
572
  tslib_1.__metadata("design:returntype", Promise)
572
573
  ], DeliveryOrderMutation.prototype, "submitGoodsDeliveryNote", null);
573
- DeliveryOrderMutation = tslib_1.__decorate([
574
+ exports.DeliveryOrderMutation = DeliveryOrderMutation = tslib_1.__decorate([
574
575
  (0, type_graphql_1.Resolver)(delivery_order_1.DeliveryOrder)
575
576
  ], DeliveryOrderMutation);
576
- exports.DeliveryOrderMutation = DeliveryOrderMutation;
577
577
  async function createDeliveryOrder(orderInfo, customerBizplace, targetInventories, file, domain, user, tx) {
578
578
  const bizplaceRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(biz_base_1.Bizplace)) || (0, shell_1.getRepository)(biz_base_1.Bizplace);
579
579
  const deliveryOrderRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(delivery_order_1.DeliveryOrder)) || (0, shell_1.getRepository)(delivery_order_1.DeliveryOrder);
@@ -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, 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: { id: domain.id }, 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: { id: domain.id }\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
+ {"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 as any, 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: { id: domain.id }, 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 as any,\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.AVAILABLE,\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: { id: domain.id }\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 = {} as any\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 } as any\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 as any)\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"]}
@@ -0,0 +1,20 @@
1
+ import { EntityManager } from 'typeorm';
2
+ import { User } from '@things-factory/auth-base';
3
+ import { Domain, Filter, ListParam, Pagination, Sorting } from '@things-factory/shell';
4
+ import { OrderInventoryList } from '../order-inventory/order-inventory-types';
5
+ import { ReleaseGood } from '../release-good/release-good';
6
+ import { DeliveryOrder } from './delivery-order';
7
+ import { DeliveryOrderList } from './delivery-order-types';
8
+ export declare class DeliveryOrderQuery {
9
+ deliveryOrders(context: ResolverContext, params: ListParam): Promise<DeliveryOrderList>;
10
+ deliveryOrder(name: string, context: ResolverContext): Promise<DeliveryOrder>;
11
+ deliveryOrderRequests(context: ResolverContext, filters?: Filter[], pagination?: Pagination, sortings?: Sorting[]): Promise<DeliveryOrderList>;
12
+ deliveryOrderByReleaseGood(releaseGoodNo: string, context: ResolverContext): Promise<DeliveryOrderList>;
13
+ deliveryOrderItems(name: string, context: ResolverContext): Promise<OrderInventoryList>;
14
+ manualDeliveryOrderItems(name: string, context: ResolverContext): Promise<OrderInventoryList>;
15
+ deliveryOrderReport(context: ResolverContext, params: ListParam): Promise<DeliveryOrderList>;
16
+ domain(deliveryOrder: DeliveryOrder): Promise<Domain>;
17
+ creator(deliveryOrder: DeliveryOrder): Promise<User>;
18
+ updater(deliveryOrder: DeliveryOrder): Promise<User>;
19
+ }
20
+ export declare function deliveryOrderByReleaseGood(releaseGood: ReleaseGood, trxMgr?: EntityManager): Promise<any>;
@@ -439,6 +439,7 @@ let DeliveryOrderQuery = class DeliveryOrderQuery {
439
439
  return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: deliveryOrder.updaterId });
440
440
  }
441
441
  };
442
+ exports.DeliveryOrderQuery = DeliveryOrderQuery;
442
443
  tslib_1.__decorate([
443
444
  (0, type_graphql_1.Query)(returns => delivery_order_types_1.DeliveryOrderList),
444
445
  tslib_1.__param(0, (0, type_graphql_1.Ctx)()),
@@ -518,10 +519,9 @@ tslib_1.__decorate([
518
519
  tslib_1.__metadata("design:paramtypes", [delivery_order_1.DeliveryOrder]),
519
520
  tslib_1.__metadata("design:returntype", Promise)
520
521
  ], DeliveryOrderQuery.prototype, "updater", null);
521
- DeliveryOrderQuery = tslib_1.__decorate([
522
+ exports.DeliveryOrderQuery = DeliveryOrderQuery = tslib_1.__decorate([
522
523
  (0, type_graphql_1.Resolver)(delivery_order_1.DeliveryOrder)
523
524
  ], DeliveryOrderQuery);
524
- exports.DeliveryOrderQuery = DeliveryOrderQuery;
525
525
  async function deliveryOrderByReleaseGood(releaseGood, trxMgr) {
526
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
527
  const oiRepo = (trxMgr === null || trxMgr === void 0 ? void 0 : trxMgr.getRepository(order_inventory_1.OrderInventory)) || (0, shell_1.getRepository)(order_inventory_1.OrderInventory);