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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/dist-server/constants/order.js +4 -1
  2. package/dist-server/constants/order.js.map +1 -1
  3. package/dist-server/constants/release-good.js +5 -1
  4. package/dist-server/constants/release-good.js.map +1 -1
  5. package/dist-server/controllers/ecommerce/ecommerce-controller.js +1 -1
  6. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
  7. package/dist-server/controllers/ecommerce/sellercraft-controller.js +102 -94
  8. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  9. package/dist-server/controllers/order-controller.js +7 -5
  10. package/dist-server/controllers/order-controller.js.map +1 -1
  11. package/dist-server/service/arrival-notice/arrival-notice-mutation.js +152 -65
  12. package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
  13. package/dist-server/service/arrival-notice/arrival-notice-query.js +15 -16
  14. package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -1
  15. package/dist-server/service/arrival-notice/arrival-notice-types.js +1 -2
  16. package/dist-server/service/arrival-notice/arrival-notice-types.js.map +1 -1
  17. package/dist-server/service/arrival-notice/arrival-notice.js +7 -7
  18. package/dist-server/service/arrival-notice/arrival-notice.js.map +1 -1
  19. package/dist-server/service/claim/claim-mutation.js +15 -14
  20. package/dist-server/service/claim/claim-mutation.js.map +1 -1
  21. package/dist-server/service/claim/claim-query.js +8 -10
  22. package/dist-server/service/claim/claim-query.js.map +1 -1
  23. package/dist-server/service/claim/claim.js +7 -7
  24. package/dist-server/service/claim/claim.js.map +1 -1
  25. package/dist-server/service/claim-detail/claim-detail-mutation.js +9 -8
  26. package/dist-server/service/claim-detail/claim-detail-mutation.js.map +1 -1
  27. package/dist-server/service/claim-detail/claim-detail-query.js +9 -10
  28. package/dist-server/service/claim-detail/claim-detail-query.js.map +1 -1
  29. package/dist-server/service/claim-detail/claim-detail.js +3 -4
  30. package/dist-server/service/claim-detail/claim-detail.js.map +1 -1
  31. package/dist-server/service/claim-order/claim-order-mutation.js +9 -8
  32. package/dist-server/service/claim-order/claim-order-mutation.js.map +1 -1
  33. package/dist-server/service/claim-order/claim-order-query.js +9 -10
  34. package/dist-server/service/claim-order/claim-order-query.js.map +1 -1
  35. package/dist-server/service/claim-order/claim-order.js +3 -4
  36. package/dist-server/service/claim-order/claim-order.js.map +1 -1
  37. package/dist-server/service/collection-order/collection-order-mutation.js +15 -14
  38. package/dist-server/service/collection-order/collection-order-mutation.js.map +1 -1
  39. package/dist-server/service/collection-order/collection-order-query.js +14 -14
  40. package/dist-server/service/collection-order/collection-order-query.js.map +1 -1
  41. package/dist-server/service/collection-order/collection-order-types.js +4 -5
  42. package/dist-server/service/collection-order/collection-order-types.js.map +1 -1
  43. package/dist-server/service/collection-order/collection-order.js +7 -7
  44. package/dist-server/service/collection-order/collection-order.js.map +1 -1
  45. package/dist-server/service/delivery-order/delivery-order-mutation.js +138 -51
  46. package/dist-server/service/delivery-order/delivery-order-mutation.js.map +1 -1
  47. package/dist-server/service/delivery-order/delivery-order-query.js +51 -38
  48. package/dist-server/service/delivery-order/delivery-order-query.js.map +1 -1
  49. package/dist-server/service/delivery-order/delivery-order-types.js +22 -3
  50. package/dist-server/service/delivery-order/delivery-order-types.js.map +1 -1
  51. package/dist-server/service/delivery-order/delivery-order.js +92 -7
  52. package/dist-server/service/delivery-order/delivery-order.js.map +1 -1
  53. package/dist-server/service/draft-release-good/draft-release-good-mutation.js +157 -143
  54. package/dist-server/service/draft-release-good/draft-release-good-mutation.js.map +1 -1
  55. package/dist-server/service/draft-release-good/draft-release-good-query.js +54 -24
  56. package/dist-server/service/draft-release-good/draft-release-good-query.js.map +1 -1
  57. package/dist-server/service/draft-release-good/draft-release-good-type.js +3 -4
  58. package/dist-server/service/draft-release-good/draft-release-good-type.js.map +1 -1
  59. package/dist-server/service/draft-release-good/draft-release-good.js +11 -6
  60. package/dist-server/service/draft-release-good/draft-release-good.js.map +1 -1
  61. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js +12 -11
  62. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js.map +1 -1
  63. package/dist-server/service/goods-receival-note/goods-receival-note-query.js +104 -12
  64. package/dist-server/service/goods-receival-note/goods-receival-note-query.js.map +1 -1
  65. package/dist-server/service/goods-receival-note/goods-receival-note-types.js +67 -4
  66. package/dist-server/service/goods-receival-note/goods-receival-note-types.js.map +1 -1
  67. package/dist-server/service/goods-receival-note/goods-receival-note.js +46 -5
  68. package/dist-server/service/goods-receival-note/goods-receival-note.js.map +1 -1
  69. package/dist-server/service/inventory-check/inventory-check-mutation.js +6 -6
  70. package/dist-server/service/inventory-check/inventory-check-mutation.js.map +1 -1
  71. package/dist-server/service/inventory-check/inventory-check-query.js +8 -10
  72. package/dist-server/service/inventory-check/inventory-check-query.js.map +1 -1
  73. package/dist-server/service/inventory-check/inventory-check.js +5 -5
  74. package/dist-server/service/inventory-check/inventory-check.js.map +1 -1
  75. package/dist-server/service/invoice/invoice-mutation.js +5 -5
  76. package/dist-server/service/invoice/invoice-mutation.js.map +1 -1
  77. package/dist-server/service/invoice/invoice-query.js +7 -9
  78. package/dist-server/service/invoice/invoice-query.js.map +1 -1
  79. package/dist-server/service/invoice/invoice-types.js +2 -3
  80. package/dist-server/service/invoice/invoice-types.js.map +1 -1
  81. package/dist-server/service/invoice/invoice.js +3 -4
  82. package/dist-server/service/invoice/invoice.js.map +1 -1
  83. package/dist-server/service/invoice-product/invoice-product-mutation.js +1 -1
  84. package/dist-server/service/invoice-product/invoice-product-mutation.js.map +1 -1
  85. package/dist-server/service/invoice-product/invoice-product-query.js +7 -9
  86. package/dist-server/service/invoice-product/invoice-product-query.js.map +1 -1
  87. package/dist-server/service/invoice-product/invoice-product.js +5 -5
  88. package/dist-server/service/invoice-product/invoice-product.js.map +1 -1
  89. package/dist-server/service/job-sheet/job-sheet-mutation.js +5 -5
  90. package/dist-server/service/job-sheet/job-sheet-mutation.js.map +1 -1
  91. package/dist-server/service/job-sheet/job-sheet-query.js +6 -8
  92. package/dist-server/service/job-sheet/job-sheet-query.js.map +1 -1
  93. package/dist-server/service/job-sheet/job-sheet.js +5 -5
  94. package/dist-server/service/job-sheet/job-sheet.js.map +1 -1
  95. package/dist-server/service/manifest/manifest-mutation.js +84 -4
  96. package/dist-server/service/manifest/manifest-mutation.js.map +1 -1
  97. package/dist-server/service/manifest/manifest-query.js +52 -19
  98. package/dist-server/service/manifest/manifest-query.js.map +1 -1
  99. package/dist-server/service/manifest/manifest-type.js +8 -0
  100. package/dist-server/service/manifest/manifest-type.js.map +1 -1
  101. package/dist-server/service/manifest/manifest.js +8 -4
  102. package/dist-server/service/manifest/manifest.js.map +1 -1
  103. package/dist-server/service/order-inventory/order-inventory-mutation.js +3 -3
  104. package/dist-server/service/order-inventory/order-inventory-mutation.js.map +1 -1
  105. package/dist-server/service/order-inventory/order-inventory-query.js +202 -221
  106. package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
  107. package/dist-server/service/order-inventory/order-inventory-types.js +15 -15
  108. package/dist-server/service/order-inventory/order-inventory-types.js.map +1 -1
  109. package/dist-server/service/order-inventory/order-inventory.js +45 -15
  110. package/dist-server/service/order-inventory/order-inventory.js.map +1 -1
  111. package/dist-server/service/order-product/order-product-mutation.js +2 -2
  112. package/dist-server/service/order-product/order-product-mutation.js.map +1 -1
  113. package/dist-server/service/order-product/order-product-query.js +44 -14
  114. package/dist-server/service/order-product/order-product-query.js.map +1 -1
  115. package/dist-server/service/order-product/order-product-types.js +18 -19
  116. package/dist-server/service/order-product/order-product-types.js.map +1 -1
  117. package/dist-server/service/order-product/order-product.js +14 -11
  118. package/dist-server/service/order-product/order-product.js.map +1 -1
  119. package/dist-server/service/order-tote/order-tote-mutation.js +2 -2
  120. package/dist-server/service/order-tote/order-tote-mutation.js.map +1 -1
  121. package/dist-server/service/order-tote/order-tote-query.js +13 -14
  122. package/dist-server/service/order-tote/order-tote-query.js.map +1 -1
  123. package/dist-server/service/order-tote/order-tote-types.js +4 -5
  124. package/dist-server/service/order-tote/order-tote-types.js.map +1 -1
  125. package/dist-server/service/order-tote/order-tote.js +6 -5
  126. package/dist-server/service/order-tote/order-tote.js.map +1 -1
  127. package/dist-server/service/order-tote-item/order-tote-item-mutation.js +2 -2
  128. package/dist-server/service/order-tote-item/order-tote-item-mutation.js.map +1 -1
  129. package/dist-server/service/order-tote-item/order-tote-item-query.js +7 -9
  130. package/dist-server/service/order-tote-item/order-tote-item-query.js.map +1 -1
  131. package/dist-server/service/order-tote-item/order-tote-item-types.js +5 -6
  132. package/dist-server/service/order-tote-item/order-tote-item-types.js.map +1 -1
  133. package/dist-server/service/order-tote-item/order-tote-item.js +2 -3
  134. package/dist-server/service/order-tote-item/order-tote-item.js.map +1 -1
  135. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js +2 -2
  136. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js.map +1 -1
  137. package/dist-server/service/order-tote-seal/order-tote-seal-query.js +8 -10
  138. package/dist-server/service/order-tote-seal/order-tote-seal-query.js.map +1 -1
  139. package/dist-server/service/order-tote-seal/order-tote-seal-types.js +2 -3
  140. package/dist-server/service/order-tote-seal/order-tote-seal-types.js.map +1 -1
  141. package/dist-server/service/order-tote-seal/order-tote-seal.js +2 -3
  142. package/dist-server/service/order-tote-seal/order-tote-seal.js.map +1 -1
  143. package/dist-server/service/order-vas/order-vas-mutation.js +1 -1
  144. package/dist-server/service/order-vas/order-vas-mutation.js.map +1 -1
  145. package/dist-server/service/order-vas/order-vas-query.js +8 -10
  146. package/dist-server/service/order-vas/order-vas-query.js.map +1 -1
  147. package/dist-server/service/order-vas/order-vas-types.js +16 -17
  148. package/dist-server/service/order-vas/order-vas-types.js.map +1 -1
  149. package/dist-server/service/order-vas/order-vas.js +7 -7
  150. package/dist-server/service/order-vas/order-vas.js.map +1 -1
  151. package/dist-server/service/others/other-query.js +48 -30
  152. package/dist-server/service/others/other-query.js.map +1 -1
  153. package/dist-server/service/purchase-order/purchase-order-mutation.js +36 -34
  154. package/dist-server/service/purchase-order/purchase-order-mutation.js.map +1 -1
  155. package/dist-server/service/purchase-order/purchase-order-query.js +11 -12
  156. package/dist-server/service/purchase-order/purchase-order-query.js.map +1 -1
  157. package/dist-server/service/purchase-order/purchase-order-types.js +8 -9
  158. package/dist-server/service/purchase-order/purchase-order-types.js.map +1 -1
  159. package/dist-server/service/purchase-order/purchase-order.js +8 -8
  160. package/dist-server/service/purchase-order/purchase-order.js.map +1 -1
  161. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js +1 -1
  162. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js.map +1 -1
  163. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js +9 -10
  164. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js.map +1 -1
  165. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js +3 -4
  166. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js.map +1 -1
  167. package/dist-server/service/release-good/release-good-mutation.js +182 -94
  168. package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
  169. package/dist-server/service/release-good/release-good-query.js +251 -172
  170. package/dist-server/service/release-good/release-good-query.js.map +1 -1
  171. package/dist-server/service/release-good/release-good-types.js +181 -9
  172. package/dist-server/service/release-good/release-good-types.js.map +1 -1
  173. package/dist-server/service/release-good/release-good.js +64 -13
  174. package/dist-server/service/release-good/release-good.js.map +1 -1
  175. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js +19 -14
  176. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js.map +1 -1
  177. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js +8 -10
  178. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js.map +1 -1
  179. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js +6 -7
  180. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js.map +1 -1
  181. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js +5 -5
  182. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js.map +1 -1
  183. package/dist-server/service/return-order/return-order-mutation.js +38 -27
  184. package/dist-server/service/return-order/return-order-mutation.js.map +1 -1
  185. package/dist-server/service/return-order/return-order-query.js +14 -16
  186. package/dist-server/service/return-order/return-order-query.js.map +1 -1
  187. package/dist-server/service/return-order/return-order-types.js +9 -9
  188. package/dist-server/service/return-order/return-order-types.js.map +1 -1
  189. package/dist-server/service/return-order/return-order.js +6 -6
  190. package/dist-server/service/return-order/return-order.js.map +1 -1
  191. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js +17 -13
  192. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js.map +1 -1
  193. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js +13 -14
  194. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js.map +1 -1
  195. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js +9 -9
  196. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js.map +1 -1
  197. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js +8 -8
  198. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js.map +1 -1
  199. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js +4 -4
  200. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js.map +1 -1
  201. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js +7 -9
  202. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js.map +1 -1
  203. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js +4 -5
  204. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js.map +1 -1
  205. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js +7 -7
  206. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js.map +1 -1
  207. package/dist-server/service/shipping-order/shipping-order-mutation.js +2 -2
  208. package/dist-server/service/shipping-order/shipping-order-mutation.js.map +1 -1
  209. package/dist-server/service/shipping-order/shipping-order-query.js +9 -10
  210. package/dist-server/service/shipping-order/shipping-order-query.js.map +1 -1
  211. package/dist-server/service/shipping-order/shipping-order-types.js +21 -1
  212. package/dist-server/service/shipping-order/shipping-order-types.js.map +1 -1
  213. package/dist-server/service/shipping-order/shipping-order.js +27 -7
  214. package/dist-server/service/shipping-order/shipping-order.js.map +1 -1
  215. package/dist-server/service/transfer-order/transfer-order-mutation.js +19 -14
  216. package/dist-server/service/transfer-order/transfer-order-mutation.js.map +1 -1
  217. package/dist-server/service/transfer-order/transfer-order-query.js +8 -10
  218. package/dist-server/service/transfer-order/transfer-order-query.js.map +1 -1
  219. package/dist-server/service/transfer-order/transfer-order-types.js +1 -2
  220. package/dist-server/service/transfer-order/transfer-order-types.js.map +1 -1
  221. package/dist-server/service/transfer-order/transfer-order.js +5 -5
  222. package/dist-server/service/transfer-order/transfer-order.js.map +1 -1
  223. package/dist-server/service/vas/vas-mutation.js +2 -2
  224. package/dist-server/service/vas/vas-mutation.js.map +1 -1
  225. package/dist-server/service/vas/vas-query.js +8 -10
  226. package/dist-server/service/vas/vas-query.js.map +1 -1
  227. package/dist-server/service/vas/vas.js +3 -4
  228. package/dist-server/service/vas/vas.js.map +1 -1
  229. package/dist-server/service/vas-order/vas-order-mutation.js +20 -15
  230. package/dist-server/service/vas-order/vas-order-mutation.js.map +1 -1
  231. package/dist-server/service/vas-order/vas-order-query.js +11 -12
  232. package/dist-server/service/vas-order/vas-order-query.js.map +1 -1
  233. package/dist-server/service/vas-order/vas-order.js +5 -5
  234. package/dist-server/service/vas-order/vas-order.js.map +1 -1
  235. package/dist-server/tsconfig.tsbuildinfo +1 -1
  236. package/dist-server/utils/datetime-util.js +49 -0
  237. package/dist-server/utils/datetime-util.js.map +1 -0
  238. package/dist-server/utils/index.js +1 -0
  239. package/dist-server/utils/index.js.map +1 -1
  240. package/dist-server/utils/inventory-util.js +89 -29
  241. package/dist-server/utils/inventory-util.js.map +1 -1
  242. package/package.json +13 -13
  243. package/server/constants/order.ts +4 -1
  244. package/server/constants/release-good.ts +6 -3
  245. package/server/controllers/ecommerce/ecommerce-controller.ts +1 -1
  246. package/server/controllers/ecommerce/sellercraft-controller.ts +124 -107
  247. package/server/controllers/order-controller.ts +7 -5
  248. package/server/service/arrival-notice/arrival-notice-mutation.ts +204 -91
  249. package/server/service/arrival-notice/arrival-notice-query.ts +17 -17
  250. package/server/service/claim/claim-mutation.ts +20 -14
  251. package/server/service/claim/claim-query.ts +10 -9
  252. package/server/service/claim-detail/claim-detail-mutation.ts +16 -10
  253. package/server/service/claim-detail/claim-detail-query.ts +13 -8
  254. package/server/service/claim-order/claim-order-mutation.ts +16 -10
  255. package/server/service/claim-order/claim-order-query.ts +10 -8
  256. package/server/service/collection-order/collection-order-mutation.ts +31 -32
  257. package/server/service/collection-order/collection-order-query.ts +18 -15
  258. package/server/service/delivery-order/delivery-order-mutation.ts +206 -73
  259. package/server/service/delivery-order/delivery-order-query.ts +90 -53
  260. package/server/service/delivery-order/delivery-order-types.ts +15 -0
  261. package/server/service/delivery-order/delivery-order.ts +68 -0
  262. package/server/service/draft-release-good/draft-release-good-mutation.ts +208 -183
  263. package/server/service/draft-release-good/draft-release-good-query.ts +81 -44
  264. package/server/service/draft-release-good/draft-release-good.ts +7 -3
  265. package/server/service/goods-receival-note/goods-receival-note-mutation.ts +23 -18
  266. package/server/service/goods-receival-note/goods-receival-note-query.ts +126 -15
  267. package/server/service/goods-receival-note/goods-receival-note-types.ts +48 -0
  268. package/server/service/goods-receival-note/goods-receival-note.ts +32 -0
  269. package/server/service/inventory-check/inventory-check-mutation.ts +24 -19
  270. package/server/service/inventory-check/inventory-check-query.ts +10 -9
  271. package/server/service/invoice/invoice-mutation.ts +14 -11
  272. package/server/service/invoice/invoice-query.ts +8 -9
  273. package/server/service/invoice-product/invoice-product-mutation.ts +4 -4
  274. package/server/service/invoice-product/invoice-product-query.ts +8 -9
  275. package/server/service/job-sheet/job-sheet-mutation.ts +12 -10
  276. package/server/service/job-sheet/job-sheet-query.ts +16 -11
  277. package/server/service/manifest/manifest-mutation.ts +93 -8
  278. package/server/service/manifest/manifest-query.ts +73 -23
  279. package/server/service/manifest/manifest-type.ts +6 -0
  280. package/server/service/manifest/manifest.ts +6 -2
  281. package/server/service/order-inventory/order-inventory-mutation.ts +13 -12
  282. package/server/service/order-inventory/order-inventory-query.ts +226 -253
  283. package/server/service/order-inventory/order-inventory.ts +26 -2
  284. package/server/service/order-product/order-product-mutation.ts +11 -10
  285. package/server/service/order-product/order-product-query.ts +55 -18
  286. package/server/service/order-product/order-product.ts +7 -0
  287. package/server/service/order-tote/order-tote-mutation.ts +10 -9
  288. package/server/service/order-tote/order-tote-query.ts +13 -15
  289. package/server/service/order-tote/order-tote.ts +13 -2
  290. package/server/service/order-tote-item/order-tote-item-mutation.ts +10 -9
  291. package/server/service/order-tote-item/order-tote-item-query.ts +12 -18
  292. package/server/service/order-tote-seal/order-tote-seal-mutation.ts +10 -9
  293. package/server/service/order-tote-seal/order-tote-seal-query.ts +10 -11
  294. package/server/service/order-vas/order-vas-mutation.ts +4 -5
  295. package/server/service/order-vas/order-vas-query.ts +10 -9
  296. package/server/service/others/other-query.ts +76 -54
  297. package/server/service/purchase-order/purchase-order-mutation.ts +46 -46
  298. package/server/service/purchase-order/purchase-order-query.ts +13 -11
  299. package/server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.ts +7 -7
  300. package/server/service/purchase-order-other-charge/purchase-order-other-charge-query.ts +14 -9
  301. package/server/service/release-good/release-good-mutation.ts +297 -134
  302. package/server/service/release-good/release-good-query.ts +268 -186
  303. package/server/service/release-good/release-good-types.ts +132 -4
  304. package/server/service/release-good/release-good.ts +55 -24
  305. package/server/service/retail-replenishment-order/retail-replenishment-order-mutation.ts +35 -29
  306. package/server/service/retail-replenishment-order/retail-replenishment-order-query.ts +13 -9
  307. package/server/service/retail-replenishment-order/retail-replenishment-order-types.ts +7 -5
  308. package/server/service/return-order/return-order-mutation.ts +82 -54
  309. package/server/service/return-order/return-order-query.ts +21 -19
  310. package/server/service/reverse-kitting-order/reverse-kitting-order-mutation.ts +38 -23
  311. package/server/service/reverse-kitting-order/reverse-kitting-order-query.ts +19 -16
  312. package/server/service/reverse-kitting-order/reverse-kitting-order.ts +2 -2
  313. package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.ts +9 -9
  314. package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.ts +7 -8
  315. package/server/service/shipping-order/shipping-order-mutation.ts +11 -11
  316. package/server/service/shipping-order/shipping-order-query.ts +13 -11
  317. package/server/service/shipping-order/shipping-order-types.ts +16 -1
  318. package/server/service/shipping-order/shipping-order.ts +18 -2
  319. package/server/service/transfer-order/transfer-order-mutation.ts +34 -25
  320. package/server/service/transfer-order/transfer-order-query.ts +11 -10
  321. package/server/service/vas/vas-mutation.ts +13 -15
  322. package/server/service/vas/vas-query.ts +12 -10
  323. package/server/service/vas-order/vas-order-mutation.ts +38 -28
  324. package/server/service/vas-order/vas-order-query.ts +15 -13
  325. package/server/utils/datetime-util.ts +54 -0
  326. package/server/utils/index.ts +1 -0
  327. package/server/utils/inventory-util.ts +128 -34
  328. package/translations/en.json +4 -0
  329. package/translations/ko.json +6 -2
  330. package/translations/ms.json +5 -1
@@ -1,8 +1,10 @@
1
+ import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
2
+ import { EntityManager, In } from 'typeorm'
3
+
1
4
  import { User } from '@things-factory/auth-base'
2
5
  import { Bizplace } from '@things-factory/biz-base'
3
6
  import { Domain } from '@things-factory/shell'
4
- import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
5
- import { EntityManager, In } from 'typeorm'
7
+
6
8
  import { InventoryCheckPatch, NewInventoryCheck } from '../'
7
9
  import { ORDER_STATUS, ORDER_TYPES } from '../../constants'
8
10
  import { OrderNoGenerator } from '../../utils/order-no-generator'
@@ -14,9 +16,9 @@ export class InventoryCheckMutation {
14
16
  @Directive('@transaction')
15
17
  async createInventoryCheck(
16
18
  @Arg('inventoryCheck', type => NewInventoryCheck) inventoryCheck: NewInventoryCheck,
17
- @Ctx() context: any
19
+ @Ctx() context: ResolverContext
18
20
  ): Promise<InventoryCheck> {
19
- const { tx }: { tx: EntityManager } = context.state
21
+ const { tx } = context.state
20
22
  return await tx.getRepository(InventoryCheck).save({
21
23
  ...inventoryCheck,
22
24
  domain: context.state.domain,
@@ -30,13 +32,13 @@ export class InventoryCheckMutation {
30
32
  async updateInventoryCheck(
31
33
  @Arg('name') name: string,
32
34
  @Arg('patch', type => InventoryCheckPatch) patch: InventoryCheckPatch,
33
- @Ctx() context: any
35
+ @Ctx() context: ResolverContext
34
36
  ): Promise<InventoryCheck> {
35
- const { tx }: { tx: EntityManager } = context.state
37
+ const { tx } = context.state
36
38
 
37
39
  const repository = tx.getRepository(InventoryCheck)
38
40
  const inventoryCheck = await repository.findOne({
39
- where: { domain: context.state.domain, name }
41
+ where: { domain: { id: context.state.domain.id }, name }
40
42
  })
41
43
 
42
44
  return await repository.save({
@@ -51,9 +53,9 @@ export class InventoryCheckMutation {
51
53
  async generateCycleCount(
52
54
  @Arg('executionDate') executionDate: string,
53
55
  @Arg('customerId') customerId: string,
54
- @Ctx() context: any
56
+ @Ctx() context: ResolverContext
55
57
  ): Promise<InventoryCheck> {
56
- const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
58
+ const { tx, domain, user } = context.state
57
59
  return await generateCycleCount(tx, domain, user, executionDate, customerId)
58
60
  }
59
61
 
@@ -61,9 +63,9 @@ export class InventoryCheckMutation {
61
63
  @Directive('@transaction')
62
64
  async updateMultipleInventoryCheck(
63
65
  @Arg('patches', type => [InventoryCheckPatch]) patches: InventoryCheckPatch[],
64
- @Ctx() context: any
66
+ @Ctx() context: ResolverContext
65
67
  ): Promise<InventoryCheck[]> {
66
- const { tx }: { tx: EntityManager } = context.state
68
+ const { tx } = context.state
67
69
 
68
70
  let results: InventoryCheck[] = []
69
71
  const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
@@ -88,7 +90,7 @@ export class InventoryCheckMutation {
88
90
  if (_updateRecords.length > 0) {
89
91
  for (let i = 0; i < _updateRecords.length; i++) {
90
92
  const newRecord = _updateRecords[i]
91
- const inventoryCheck = await inventoryCheckRepo.findOne(newRecord.id)
93
+ const inventoryCheck = await inventoryCheckRepo.findOneBy({ id: newRecord.id })
92
94
 
93
95
  const result = await inventoryCheckRepo.save({
94
96
  ...inventoryCheck,
@@ -105,18 +107,21 @@ export class InventoryCheckMutation {
105
107
 
106
108
  @Mutation(returns => Boolean)
107
109
  @Directive('@transaction')
108
- async deleteInventoryCheck(@Arg('name') name: string, @Ctx() context: any): Promise<boolean> {
109
- const { tx }: { tx: EntityManager } = context.state
110
- await tx.getRepository(InventoryCheck).delete({ domain: context.state.domain, name })
110
+ async deleteInventoryCheck(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {
111
+ const { tx } = context.state
112
+ await tx.getRepository(InventoryCheck).delete({ domain: { id: context.state.domain.id }, name })
111
113
  return true
112
114
  }
113
115
 
114
116
  @Mutation(returns => Boolean)
115
117
  @Directive('@transaction')
116
- async deleteInventoryChecks(@Arg('names', type => [String]) names: string[], @Ctx() context: any): Promise<boolean> {
117
- const { tx }: { tx: EntityManager } = context.state
118
+ async deleteInventoryChecks(
119
+ @Arg('names', type => [String]) names: string[],
120
+ @Ctx() context: ResolverContext
121
+ ): Promise<boolean> {
122
+ const { tx } = context.state
118
123
  await tx.getRepository(InventoryCheck).delete({
119
- domain: context.state.domain,
124
+ domain: { id: context.state.domain.id },
120
125
  name: In(names)
121
126
  })
122
127
  return true
@@ -130,7 +135,7 @@ export async function generateCycleCount(
130
135
  executionDate: string,
131
136
  customerId: string
132
137
  ): Promise<InventoryCheck> {
133
- const customerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne(customerId)
138
+ const customerBizplace: Bizplace = await tx.getRepository(Bizplace).findOneBy({ id: customerId })
134
139
 
135
140
  return tx.getRepository(InventoryCheck).save({
136
141
  name: OrderNoGenerator.cycleCount(),
@@ -1,7 +1,8 @@
1
- import { User } from '@things-factory/auth-base'
2
- import { convertListParams, Domain, Filter, Pagination, Sorting } from '@things-factory/shell'
3
1
  import { Arg, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
4
- import { getRepository } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { convertListParams, Domain, Filter, getRepository, Pagination, Sorting } from '@things-factory/shell'
5
+
5
6
  import { InventoryCheckList } from '../'
6
7
  import { InventoryCheck } from './inventory-check'
7
8
 
@@ -9,7 +10,7 @@ import { InventoryCheck } from './inventory-check'
9
10
  export class InventoryCheckQuery {
10
11
  @Query(returns => InventoryCheckList)
11
12
  async inventoryChecks(
12
- @Ctx() context: any,
13
+ @Ctx() context: ResolverContext,
13
14
  @Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],
14
15
  @Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,
15
16
  @Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]
@@ -23,25 +24,25 @@ export class InventoryCheckQuery {
23
24
  }
24
25
 
25
26
  @Query(returns => InventoryCheck)
26
- async inventoryCheck(@Arg('name') name: string, @Ctx() context: any): Promise<InventoryCheck> {
27
+ async inventoryCheck(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<InventoryCheck> {
27
28
  return await getRepository(InventoryCheck).findOne({
28
- where: { domain: context.state.domain, name },
29
+ where: { domain: { id: context.state.domain.id }, name },
29
30
  relations: ['domain', 'creator', 'updater']
30
31
  })
31
32
  }
32
33
 
33
34
  @FieldResolver(type => Domain)
34
35
  async domain(@Root() inventoryCheck: InventoryCheck): Promise<Domain> {
35
- return await getRepository(Domain).findOne(inventoryCheck.domainId)
36
+ return await getRepository(Domain).findOneBy({ id: inventoryCheck.domainId })
36
37
  }
37
38
 
38
39
  @FieldResolver(type => User)
39
40
  async creator(@Root() inventoryCheck: InventoryCheck): Promise<User> {
40
- return await getRepository(User).findOne(inventoryCheck.creatorId)
41
+ return await getRepository(User).findOneBy({ id: inventoryCheck.creatorId })
41
42
  }
42
43
 
43
44
  @FieldResolver(type => User)
44
45
  async updater(@Root() inventoryCheck: InventoryCheck): Promise<User> {
45
- return await getRepository(User).findOne(inventoryCheck.updaterId)
46
+ return await getRepository(User).findOneBy({ id: inventoryCheck.updaterId })
46
47
  }
47
48
  }
@@ -1,8 +1,8 @@
1
1
  import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
2
- import { EntityManager, getRepository, Repository } from 'typeorm'
2
+ import { EntityManager, Repository } from 'typeorm'
3
3
 
4
4
  import { User } from '@things-factory/auth-base'
5
- import { Domain } from '@things-factory/shell'
5
+ import { Domain, getRepository } from '@things-factory/shell'
6
6
 
7
7
  import { InvoicePatch, NewInvoice } from '../'
8
8
  import { OrderNoGenerator } from '../../utils'
@@ -13,22 +13,25 @@ import { Invoice } from './invoice'
13
13
  export class InvoiceMutation {
14
14
  @Mutation(returns => Invoice)
15
15
  @Directive('@transaction')
16
- async createInvoice(@Arg('invoice', type => NewInvoice) invoice: NewInvoice, @Ctx() context: any): Promise<Invoice> {
17
- const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
16
+ async createInvoice(
17
+ @Arg('invoice', type => NewInvoice) invoice: NewInvoice,
18
+ @Ctx() context: ResolverContext
19
+ ): Promise<Invoice> {
20
+ const { tx, domain, user } = context.state
18
21
  let invoiceProducts: any[] = invoice.invoiceProducts
19
22
 
20
23
  let createdInvoice: Invoice = await tx.getRepository(Invoice).save({
21
24
  ...invoice,
22
25
  domain,
23
26
  name: OrderNoGenerator.invoice(),
24
- // releaseGood: await tx.getRepository(ReleaseGood).findOne(invoice?.releaseGood.id),
27
+ // releaseGood: await tx.getRepository(ReleaseGood).findOneBy({ id: invoice?.releaseGood.id }),
25
28
  creator: user
26
29
  })
27
30
 
28
31
  await addInvoiceProducts(domain, createdInvoice, invoiceProducts, user, tx)
29
32
 
30
33
  createdInvoice = await tx.getRepository(Invoice).findOne({
31
- where: { domain, id: createdInvoice.id },
34
+ where: { domain: { id: domain.id }, id: createdInvoice.id },
32
35
  relations: ['invoiceProducts']
33
36
  })
34
37
 
@@ -40,13 +43,13 @@ export class InvoiceMutation {
40
43
  async updateInvoice(
41
44
  @Arg('name') name: string,
42
45
  @Arg('patch', type => InvoicePatch) patch: InvoicePatch,
43
- @Ctx() context: any
46
+ @Ctx() context: ResolverContext
44
47
  ): Promise<Invoice> {
45
- const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
48
+ const { tx, domain, user } = context.state
46
49
 
47
50
  const repository = tx.getRepository(Invoice)
48
51
  const invoice = await repository.findOne({
49
- where: { domain, name }
52
+ where: { domain: { id: domain.id }, name }
50
53
  })
51
54
 
52
55
  return await repository.save({
@@ -58,8 +61,8 @@ export class InvoiceMutation {
58
61
 
59
62
  @Mutation(returns => Boolean)
60
63
  @Directive('@transaction')
61
- async deleteInvoice(@Arg('name') name: string, @Ctx() context: any): Promise<boolean> {
62
- const { tx, domain }: { tx: EntityManager; domain: Domain } = context.state
64
+ async deleteInvoice(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {
65
+ const { tx, domain } = context.state
63
66
 
64
67
  await tx.getRepository(Invoice).delete({ domain, name })
65
68
  return true
@@ -1,8 +1,7 @@
1
1
  import { Arg, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
- import { getRepository } from 'typeorm'
3
2
 
4
3
  import { User } from '@things-factory/auth-base'
5
- import { buildQuery, Domain, Filter, Pagination, Sorting } from '@things-factory/shell'
4
+ import { buildQuery, Domain, Filter, getRepository, Pagination, Sorting } from '@things-factory/shell'
6
5
 
7
6
  import { Invoice } from './invoice'
8
7
  import { InvoiceList } from './invoice-types'
@@ -11,7 +10,7 @@ import { InvoiceList } from './invoice-types'
11
10
  export class InvoiceQuery {
12
11
  @Query(returns => InvoiceList)
13
12
  async invoices(
14
- @Ctx() context: any,
13
+ @Ctx() context: ResolverContext,
15
14
  @Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],
16
15
  @Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,
17
16
  @Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]
@@ -28,27 +27,27 @@ export class InvoiceQuery {
28
27
  }
29
28
 
30
29
  @Query(returns => Invoice)
31
- async invoice(@Arg('name') name: string, @Ctx() context: any): Promise<Invoice> {
32
- const { domain }: { domain: Domain } = context.state
30
+ async invoice(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Invoice> {
31
+ const { domain } = context.state
33
32
 
34
33
  return await getRepository(Invoice).findOne({
35
- where: { domain, name },
34
+ where: { domain: { id: domain.id }, name },
36
35
  relations: ['domain', 'creator', 'updater']
37
36
  })
38
37
  }
39
38
 
40
39
  @FieldResolver(type => Domain)
41
40
  async domain(@Root() invoice: Invoice): Promise<Domain> {
42
- return await getRepository(Domain).findOne(invoice.domainId)
41
+ return await getRepository(Domain).findOneBy({ id: invoice.domainId })
43
42
  }
44
43
 
45
44
  @FieldResolver(type => User)
46
45
  async creator(@Root() invoice: Invoice): Promise<User> {
47
- return await getRepository(User).findOne(invoice.creatorId)
46
+ return await getRepository(User).findOneBy({ id: invoice.creatorId })
48
47
  }
49
48
 
50
49
  @FieldResolver(type => User)
51
50
  async updater(@Root() invoice: Invoice): Promise<User> {
52
- return await getRepository(User).findOne(invoice.updaterId)
51
+ return await getRepository(User).findOneBy({ id: invoice.updaterId })
53
52
  }
54
53
  }
@@ -9,7 +9,7 @@ export class InvoiceProductMutation {
9
9
  @Directive('@transaction')
10
10
  async createInvoiceProduct(
11
11
  @Arg('invoiceProduct', type => NewInvoiceProduct) invoiceProduct: NewInvoiceProduct,
12
- @Ctx() context: any
12
+ @Ctx() context: ResolverContext
13
13
  ): Promise<InvoiceProduct> {
14
14
  const { domain, user, tx } = context.state
15
15
 
@@ -26,13 +26,13 @@ export class InvoiceProductMutation {
26
26
  async updateInvoiceProduct(
27
27
  @Arg('name') name: string,
28
28
  @Arg('patch', type => InvoiceProductPatch) patch: InvoiceProductPatch,
29
- @Ctx() context: any
29
+ @Ctx() context: ResolverContext
30
30
  ): Promise<InvoiceProduct> {
31
31
  const { domain, user, tx } = context.state
32
32
 
33
33
  const repository = tx.getRepository(InvoiceProduct)
34
34
  const invoiceProduct = await repository.findOne({
35
- where: { domain, name }
35
+ where: { domain: { id: domain.id }, name }
36
36
  })
37
37
 
38
38
  return await repository.save({
@@ -44,7 +44,7 @@ export class InvoiceProductMutation {
44
44
 
45
45
  @Mutation(returns => Boolean)
46
46
  @Directive('@transaction')
47
- async deleteInvoiceProduct(@Arg('name') name: string, @Ctx() context: any): Promise<boolean> {
47
+ async deleteInvoiceProduct(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {
48
48
  const { domain, tx } = context.state
49
49
 
50
50
  await tx.getRepository(InvoiceProduct).delete({ domain, name })
@@ -1,8 +1,7 @@
1
1
  import { Arg, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
- import { getRepository } from 'typeorm'
3
2
 
4
3
  import { User } from '@things-factory/auth-base'
5
- import { buildQuery, Domain, Filter, Pagination, Sorting } from '@things-factory/shell'
4
+ import { buildQuery, Domain, Filter, getRepository, Pagination, Sorting } from '@things-factory/shell'
6
5
 
7
6
  import { InvoiceProduct } from './invoice-product'
8
7
  import { InvoiceProductList } from './invoice-product-types'
@@ -11,7 +10,7 @@ import { InvoiceProductList } from './invoice-product-types'
11
10
  export class InvoiceProductQuery {
12
11
  @Query(returns => InvoiceProductList)
13
12
  async invoiceProducts(
14
- @Ctx() context: any,
13
+ @Ctx() context: ResolverContext,
15
14
  @Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],
16
15
  @Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,
17
16
  @Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]
@@ -29,27 +28,27 @@ export class InvoiceProductQuery {
29
28
  }
30
29
 
31
30
  @Query(returns => InvoiceProduct)
32
- async invoiceProduct(@Arg('name') name: string, @Ctx() context: any): Promise<InvoiceProduct> {
33
- const { domain }: { domain: Domain } = context.state
31
+ async invoiceProduct(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<InvoiceProduct> {
32
+ const { domain } = context.state
34
33
 
35
34
  return await getRepository(InvoiceProduct).findOne({
36
- where: { domain, name },
35
+ where: { domain: { id: domain.id }, name },
37
36
  relations: ['domain', 'invoice', 'creator', 'updater']
38
37
  })
39
38
  }
40
39
 
41
40
  @FieldResolver(type => Domain)
42
41
  async domain(@Root() invoiceProduct: InvoiceProduct): Promise<Domain> {
43
- return await getRepository(Domain).findOne(invoiceProduct.domainId)
42
+ return await getRepository(Domain).findOneBy({ id: invoiceProduct.domainId })
44
43
  }
45
44
 
46
45
  @FieldResolver(type => User)
47
46
  async creator(@Root() invoiceProduct: InvoiceProduct): Promise<User> {
48
- return await getRepository(User).findOne(invoiceProduct.creatorId)
47
+ return await getRepository(User).findOneBy({ id: invoiceProduct.creatorId })
49
48
  }
50
49
 
51
50
  @FieldResolver(type => User)
52
51
  async updater(@Root() invoiceProduct: InvoiceProduct): Promise<User> {
53
- return await getRepository(User).findOne(invoiceProduct.updaterId)
52
+ return await getRepository(User).findOneBy({ id: invoiceProduct.updaterId })
54
53
  }
55
54
  }
@@ -1,7 +1,9 @@
1
- import { User } from '@things-factory/auth-base'
2
- import { Domain } from '@things-factory/shell'
3
1
  import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
4
- import { EntityManager, getRepository, Repository } from 'typeorm'
2
+ import { EntityManager, Repository } from 'typeorm'
3
+
4
+ import { User } from '@things-factory/auth-base'
5
+ import { Domain, getRepository } from '@things-factory/shell'
6
+
5
7
  import { ArrivalNotice, ArrivalNoticePatch, JobSheetPatch } from '../'
6
8
  import { OrderNoGenerator } from '../../utils/order-no-generator'
7
9
  import { JobSheet } from './job-sheet'
@@ -11,10 +13,10 @@ export class JobSheetMutation {
11
13
  @Directive('@transaction')
12
14
  @Mutation(returns => JobSheet)
13
15
  async generateJobSheet(
14
- @Ctx() context: any,
16
+ @Ctx() context: ResolverContext,
15
17
  @Arg('arrivalNotice', type => ArrivalNoticePatch, { nullable: true }) arrivalNotice?: ArrivalNoticePatch
16
18
  ): Promise<JobSheet> {
17
- const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
19
+ const { domain, user, tx } = context.state
18
20
  return await generateJobSheet(domain, user, arrivalNotice, tx)
19
21
  }
20
22
 
@@ -23,16 +25,16 @@ export class JobSheetMutation {
23
25
  async updateJobSheet(
24
26
  @Arg('name') name: string,
25
27
  @Arg('patch', type => JobSheetPatch) patch: JobSheetPatch,
26
- @Ctx() context: any
28
+ @Ctx() context: ResolverContext
27
29
  ): Promise<JobSheet> {
28
- const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
30
+ const { tx, domain, user } = context.state
29
31
 
30
- const jobSheet = await tx.getRepository(JobSheet).findOne({ where: { domain, name } })
32
+ const jobSheet = await tx.getRepository(JobSheet).findOne({ where: { domain: { id: domain.id }, name } })
31
33
  if (!jobSheet) throw new Error('No job sheet is found')
32
34
 
33
35
  const foundGAN: ArrivalNotice = await tx.getRepository(ArrivalNotice).findOne({
34
36
  where: {
35
- domain,
37
+ domain: { id: domain.id },
36
38
  name: jobSheet.arrivalNoticeRefNo
37
39
  }
38
40
  })
@@ -63,7 +65,7 @@ export async function generateJobSheet(
63
65
  let foundJS: JobSheet = null
64
66
  if (arrivalNotice?.refNo) {
65
67
  foundJS = await jobSheetRepo.findOne({
66
- where: { domain, name: arrivalNotice.refNo, bizplace: arrivalNotice.bizplace }
68
+ where: { domain: { id: domain.id }, name: arrivalNotice.refNo, bizplace: arrivalNotice.bizplace }
67
69
  })
68
70
  }
69
71
 
@@ -1,8 +1,10 @@
1
+ import { Arg, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
+ import { SelectQueryBuilder } from 'typeorm'
3
+
1
4
  import { User } from '@things-factory/auth-base'
2
5
  import { getPermittedBizplaceIds } from '@things-factory/biz-base'
3
- import { buildQuery, Domain, Filter, Pagination, Sorting } from '@things-factory/shell'
4
- import { Arg, Ctx, FieldResolver, Query, Resolver, Root, Directive } from 'type-graphql'
5
- import { EntityManager, getRepository, SelectQueryBuilder } from 'typeorm'
6
+ import { buildQuery, Domain, Filter, getRepository, Pagination, Sorting } from '@things-factory/shell'
7
+
6
8
  import { ArrivalNotice, JobSheetList } from '../'
7
9
  import { JobSheet } from './job-sheet'
8
10
 
@@ -11,12 +13,12 @@ export class JobSheetQuery {
11
13
  @Directive('@transaction')
12
14
  @Query(returns => JobSheetList)
13
15
  async jobSheets(
14
- @Ctx() context: any,
16
+ @Ctx() context: ResolverContext,
15
17
  @Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],
16
18
  @Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,
17
19
  @Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]
18
20
  ): Promise<JobSheetList> {
19
- const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
21
+ const { domain, user, tx } = context.state
20
22
 
21
23
  const bizplaceFilter = filters.find(param => param.name === 'bizplaceId')
22
24
  const containerNoFilter = filters.find(param => param.name === 'containerNo')
@@ -68,11 +70,14 @@ export class JobSheetQuery {
68
70
 
69
71
  @Directive('transaction')
70
72
  @Query(returns => JobSheet)
71
- async jobSheet(@Arg('arrivalNoticeRefNo') arrivalNoticeRefNo: string, @Ctx() context: any): Promise<JobSheet> {
72
- const { domain, tx }: { domain: Domain; tx: EntityManager } = context.state
73
+ async jobSheet(
74
+ @Arg('arrivalNoticeRefNo') arrivalNoticeRefNo: string,
75
+ @Ctx() context: ResolverContext
76
+ ): Promise<JobSheet> {
77
+ const { domain, tx } = context.state
73
78
 
74
79
  const jobSheet: JobSheet = await tx.getRepository(JobSheet).findOne({
75
- where: { domain, arrivalNoticeRefNo },
80
+ where: { domain: { id: domain.id }, arrivalNoticeRefNo },
76
81
  relations: ['domain', 'bizplace', 'creator', 'updater']
77
82
  })
78
83
 
@@ -92,16 +97,16 @@ export class JobSheetQuery {
92
97
 
93
98
  @FieldResolver(type => Domain)
94
99
  async domain(@Root() jobSheet: JobSheet): Promise<Domain> {
95
- return await getRepository(Domain).findOne(jobSheet.domainId)
100
+ return await getRepository(Domain).findOneBy({ id: jobSheet.domainId })
96
101
  }
97
102
 
98
103
  @FieldResolver(type => User)
99
104
  async creator(@Root() jobSheet: JobSheet): Promise<User> {
100
- return await getRepository(User).findOne(jobSheet.creatorId)
105
+ return await getRepository(User).findOneBy({ id: jobSheet.creatorId })
101
106
  }
102
107
 
103
108
  @FieldResolver(type => User)
104
109
  async updater(@Root() jobSheet: JobSheet): Promise<User> {
105
- return await getRepository(User).findOne(jobSheet.updaterId)
110
+ return await getRepository(User).findOneBy({ id: jobSheet.updaterId })
106
111
  }
107
112
  }
@@ -1,6 +1,8 @@
1
+ import i18next from 'i18next'
1
2
  import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
3
+ import { In, Not } from 'typeorm'
2
4
 
3
- import { DISPATCHMENT_STATUS } from '../../constants'
5
+ import { DISPATCHMENT_STATUS, MANIFEST_STATUS } from '../../constants'
4
6
  import { OrderNoGenerator } from '../../utils'
5
7
  import { ReleaseGood } from '../release-good/release-good'
6
8
  import { Manifest, ManifestStatus } from './manifest'
@@ -8,9 +10,55 @@ import { ManifestPatch, NewManifest } from './manifest-type'
8
10
 
9
11
  @Resolver(Manifest)
10
12
  export class ManifestMutation {
13
+ @Directive('@transaction')
14
+ @Mutation(returns => Boolean, { description: 'To update Manifest' })
15
+ async updateManifest(
16
+ @Arg('manifestId', { nullable: true }) manifestId: string,
17
+ @Arg('status', { nullable: true }) status: string,
18
+ @Arg('shippingProvider', { nullable: true }) shippingProvider: string,
19
+ @Arg('removeOrders', type => [String], { nullable: true }) removeOrders: string[],
20
+ @Ctx() context: ResolverContext
21
+ ): Promise<boolean> {
22
+ const { domain, tx } = context.state
23
+ const ManifestRepo = tx.getRepository(Manifest)
24
+ //update status
25
+ if (status) {
26
+ if (status == MANIFEST_STATUS.OPEN) {
27
+ //check if there is only one manifest is open, if yes update it to in queue and update current to open
28
+
29
+ let foundOpenOrder = await ManifestRepo.find({
30
+ where: { domain: { id: domain.id }, shippingProvider, status: MANIFEST_STATUS.OPEN as any }
31
+ })
32
+
33
+ if (foundOpenOrder.length == 1) {
34
+ await ManifestRepo.update({ id: foundOpenOrder[0].id }, { status: MANIFEST_STATUS.IN_QUEUE as any })
35
+ } else if (foundOpenOrder.length > 1) {
36
+ let manifestNames = foundOpenOrder.map(itm => itm.name)
37
+ throw new Error(i18next.t('error.Manifest(s) (x) already in open status', { x: manifestNames.toString() }))
38
+ }
39
+ }
40
+
41
+ await ManifestRepo.update({ id: manifestId }, { status: status as any })
42
+ }
43
+
44
+ //remove orders from manifest
45
+ if (removeOrders?.length > 0) {
46
+ //check if user removing all tracking no, if yes then delete
47
+ let totalTrackingNo = await tx.getRepository(ReleaseGood).count({ where: { manifest: { id: manifestId } } })
48
+ await tx
49
+ .getRepository(ReleaseGood)
50
+ .update({ domain, refNo: In(removeOrders) }, { manifest: null, manifestedBy: null, manifestedAt: null })
51
+ if (removeOrders.length == totalTrackingNo) {
52
+ await tx.getRepository(Manifest).delete(manifestId)
53
+ return false
54
+ }
55
+ }
56
+ return true
57
+ }
58
+
11
59
  @Directive('@transaction')
12
60
  @Mutation(returns => Boolean, { description: 'To delete Manifest' })
13
- async deleteManifest(@Arg('name') name: string, @Ctx() context: any): Promise<boolean> {
61
+ async deleteManifest(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {
14
62
  const { domain, tx } = context.state
15
63
 
16
64
  await tx.getRepository(Manifest).delete({ domain, name })
@@ -19,7 +67,7 @@ export class ManifestMutation {
19
67
 
20
68
  @Directive('@transaction')
21
69
  @Mutation(returns => Boolean, { description: 'To generate new Manifest' })
22
- async generateManifest(@Arg('manifest') manifest: NewManifest, @Ctx() context: any): Promise<boolean> {
70
+ async generateManifest(@Arg('manifest') manifest: NewManifest, @Ctx() context: ResolverContext): Promise<boolean> {
23
71
  const { domain, user, tx } = context.state
24
72
  const manifestItems: any[] = manifest.manifestItems
25
73
 
@@ -34,7 +82,7 @@ export class ManifestMutation {
34
82
 
35
83
  const openManifest: Manifest = await tx
36
84
  .getRepository(Manifest)
37
- .findOne({ domain, shippingProvider: transporter, status: ManifestStatus.OPEN })
85
+ .findOneBy({ domain: { id: domain.id }, shippingProvider: transporter, status: ManifestStatus.OPEN })
38
86
 
39
87
  let manifest: Manifest
40
88
 
@@ -53,9 +101,11 @@ export class ManifestMutation {
53
101
  items.map(async item => {
54
102
  let releaseOrder: ReleaseGood = await tx
55
103
  .getRepository(ReleaseGood)
56
- .findOne({ domain, refNo: item.refNo, trackingNo: item.trackingNo })
104
+ .findOneBy({ domain: { id: domain.id }, refNo: item.refNo, trackingNo: item.trackingNo })
57
105
  releaseOrder.manifest = manifest
58
106
  releaseOrder.updater = user
107
+ releaseOrder.manifestedBy = user
108
+ releaseOrder.manifestedAt = new Date()
59
109
  await tx.getRepository(ReleaseGood).save(releaseOrder)
60
110
  })
61
111
  )
@@ -64,21 +114,56 @@ export class ManifestMutation {
64
114
  return true
65
115
  }
66
116
 
117
+ @Directive('@transaction')
118
+ @Mutation(returns => Boolean, { description: 'To add tracking no into manifest' })
119
+ async addTrackingNo(
120
+ @Arg('manifestId', { nullable: true }) manifestId: string,
121
+ @Arg('trackingNo', { nullable: true }) trackingNo: string,
122
+ @Arg('shippingProvider', { nullable: true }) shippingProvider: string,
123
+ @Ctx() context: ResolverContext
124
+ ): Promise<boolean> {
125
+ const { domain, user, tx } = context.state
126
+ const releaseGoodRepo = tx.getRepository(ReleaseGood)
127
+ //check if order belongs to same shipping provider
128
+ let foundReleaseOrder = await releaseGoodRepo.findOne({ where: { trackingNo }, relations: ['manifest'] })
129
+
130
+ if (!foundReleaseOrder) {
131
+ throw new Error(i18next.t('error.release_order_not_found'))
132
+ }
133
+
134
+ if (foundReleaseOrder.manifest) {
135
+ throw new Error(i18next.t('error.tracking_no_already_scanned_before'))
136
+ }
137
+
138
+ if (foundReleaseOrder.transporter !== shippingProvider) {
139
+ throw new Error(i18next.t('error.tracking_no_belongs_to_x', { x: foundReleaseOrder.transporter }))
140
+ }
141
+
142
+ await releaseGoodRepo.update(
143
+ { id: foundReleaseOrder.id },
144
+ { manifest: { id: manifestId }, manifestedAt: new Date(), manifestedBy: user }
145
+ )
146
+
147
+ return true
148
+ }
149
+
67
150
  @Directive('@transaction')
68
151
  @Mutation(returns => Manifest, { description: 'To dispatch Manifest when courier service collect packages' })
69
152
  async dispatchManifest(
70
153
  @Arg('name') name: string,
71
154
  @Arg('patch') patch: ManifestPatch,
72
- @Ctx() context: any
155
+ @Ctx() context: ResolverContext
73
156
  ): Promise<Manifest> {
74
157
  const { domain, user, tx } = context.state
75
158
 
76
159
  const manifest: Manifest = await tx.getRepository(Manifest).findOne({
77
- where: { domain, name, status: ManifestStatus.OPEN }
160
+ where: { domain: { id: domain.id }, name, status: Not(MANIFEST_STATUS.CLOSED) as any }
78
161
  })
79
162
  if (!manifest) throw new Error(`Unable to find ${name}`)
80
163
 
81
- let releaseGoods: any[] = await tx.getRepository(ReleaseGood).find({ where: { domain, manifest } })
164
+ let releaseGoods: any[] = await tx
165
+ .getRepository(ReleaseGood)
166
+ .find({ where: { domain: { id: domain.id }, manifest: { id: manifest.id } } })
82
167
 
83
168
  releaseGoods = await Promise.all(
84
169
  releaseGoods.map((releaseGood: ReleaseGood) => {