@things-factory/sales-base 4.3.651 → 4.3.653

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 (430) hide show
  1. package/dist-server/constants/attachment-type.js +15 -0
  2. package/dist-server/constants/attachment-type.js.map +1 -0
  3. package/dist-server/constants/index.js +24 -0
  4. package/dist-server/constants/index.js.map +1 -0
  5. package/dist-server/constants/load-type.js +8 -0
  6. package/dist-server/constants/load-type.js.map +1 -0
  7. package/dist-server/constants/order.js +235 -0
  8. package/dist-server/constants/order.js.map +1 -0
  9. package/dist-server/constants/product-group-type.js +8 -0
  10. package/dist-server/constants/product-group-type.js.map +1 -0
  11. package/dist-server/constants/release-good.js +13 -0
  12. package/dist-server/constants/release-good.js.map +1 -0
  13. package/dist-server/constants/transfer-order-type.js +9 -0
  14. package/dist-server/constants/transfer-order-type.js.map +1 -0
  15. package/dist-server/constants/validation-error-code.js +7 -0
  16. package/dist-server/constants/validation-error-code.js.map +1 -0
  17. package/dist-server/constants/vas-target-type.js +26 -0
  18. package/dist-server/constants/vas-target-type.js.map +1 -0
  19. package/dist-server/controllers/ecommerce/ecommerce-controller.js +138 -0
  20. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -0
  21. package/dist-server/controllers/ecommerce/index.js +21 -0
  22. package/dist-server/controllers/ecommerce/index.js.map +1 -0
  23. package/dist-server/controllers/ecommerce/powrup-controller.js +690 -0
  24. package/dist-server/controllers/ecommerce/powrup-controller.js.map +1 -0
  25. package/dist-server/controllers/ecommerce/sellercraft-controller.js +148 -0
  26. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -0
  27. package/dist-server/controllers/ecommerce/webspert-controller.js +237 -0
  28. package/dist-server/controllers/ecommerce/webspert-controller.js.map +1 -0
  29. package/dist-server/controllers/index.js +19 -0
  30. package/dist-server/controllers/index.js.map +1 -0
  31. package/dist-server/controllers/order-controller.js +244 -0
  32. package/dist-server/controllers/order-controller.js.map +1 -0
  33. package/dist-server/errors/index.js +18 -0
  34. package/dist-server/errors/index.js.map +1 -0
  35. package/dist-server/errors/validation-error.js +41 -0
  36. package/dist-server/errors/validation-error.js.map +1 -0
  37. package/dist-server/index.js +30 -0
  38. package/dist-server/index.js.map +1 -0
  39. package/dist-server/migrations/index.js +12 -0
  40. package/dist-server/migrations/index.js.map +1 -0
  41. package/dist-server/service/arrival-notice/arrival-notice-mutation.js +1085 -0
  42. package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -0
  43. package/dist-server/service/arrival-notice/arrival-notice-query.js +634 -0
  44. package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -0
  45. package/dist-server/service/arrival-notice/arrival-notice-types.js +443 -0
  46. package/dist-server/service/arrival-notice/arrival-notice-types.js.map +1 -0
  47. package/dist-server/service/arrival-notice/arrival-notice.js +259 -0
  48. package/dist-server/service/arrival-notice/arrival-notice.js.map +1 -0
  49. package/dist-server/service/arrival-notice/index.js +25 -0
  50. package/dist-server/service/arrival-notice/index.js.map +1 -0
  51. package/dist-server/service/claim/claim-mutation.js +243 -0
  52. package/dist-server/service/claim/claim-mutation.js.map +1 -0
  53. package/dist-server/service/claim/claim-query.js +165 -0
  54. package/dist-server/service/claim/claim-query.js.map +1 -0
  55. package/dist-server/service/claim/claim-types.js +191 -0
  56. package/dist-server/service/claim/claim-types.js.map +1 -0
  57. package/dist-server/service/claim/claim.js +176 -0
  58. package/dist-server/service/claim/claim.js.map +1 -0
  59. package/dist-server/service/claim/index.js +25 -0
  60. package/dist-server/service/claim/index.js.map +1 -0
  61. package/dist-server/service/claim-detail/claim-detail-mutation.js +110 -0
  62. package/dist-server/service/claim-detail/claim-detail-mutation.js.map +1 -0
  63. package/dist-server/service/claim-detail/claim-detail-query.js +90 -0
  64. package/dist-server/service/claim-detail/claim-detail-query.js.map +1 -0
  65. package/dist-server/service/claim-detail/claim-detail-types.js +81 -0
  66. package/dist-server/service/claim-detail/claim-detail-types.js.map +1 -0
  67. package/dist-server/service/claim-detail/claim-detail.js +102 -0
  68. package/dist-server/service/claim-detail/claim-detail.js.map +1 -0
  69. package/dist-server/service/claim-detail/index.js +25 -0
  70. package/dist-server/service/claim-detail/index.js.map +1 -0
  71. package/dist-server/service/claim-order/claim-order-mutation.js +110 -0
  72. package/dist-server/service/claim-order/claim-order-mutation.js.map +1 -0
  73. package/dist-server/service/claim-order/claim-order-query.js +86 -0
  74. package/dist-server/service/claim-order/claim-order-query.js.map +1 -0
  75. package/dist-server/service/claim-order/claim-order-types.js +65 -0
  76. package/dist-server/service/claim-order/claim-order-types.js.map +1 -0
  77. package/dist-server/service/claim-order/claim-order.js +104 -0
  78. package/dist-server/service/claim-order/claim-order.js.map +1 -0
  79. package/dist-server/service/claim-order/index.js +25 -0
  80. package/dist-server/service/claim-order/index.js.map +1 -0
  81. package/dist-server/service/collection-order/collection-order-mutation.js +241 -0
  82. package/dist-server/service/collection-order/collection-order-mutation.js.map +1 -0
  83. package/dist-server/service/collection-order/collection-order-query.js +125 -0
  84. package/dist-server/service/collection-order/collection-order-query.js.map +1 -0
  85. package/dist-server/service/collection-order/collection-order-types.js +241 -0
  86. package/dist-server/service/collection-order/collection-order-types.js.map +1 -0
  87. package/dist-server/service/collection-order/collection-order.js +183 -0
  88. package/dist-server/service/collection-order/collection-order.js.map +1 -0
  89. package/dist-server/service/collection-order/index.js +25 -0
  90. package/dist-server/service/collection-order/index.js.map +1 -0
  91. package/dist-server/service/delivery-order/delivery-order-mutation.js +746 -0
  92. package/dist-server/service/delivery-order/delivery-order-mutation.js.map +1 -0
  93. package/dist-server/service/delivery-order/delivery-order-query.js +570 -0
  94. package/dist-server/service/delivery-order/delivery-order-query.js.map +1 -0
  95. package/dist-server/service/delivery-order/delivery-order-types.js +397 -0
  96. package/dist-server/service/delivery-order/delivery-order-types.js.map +1 -0
  97. package/dist-server/service/delivery-order/delivery-order.js +365 -0
  98. package/dist-server/service/delivery-order/delivery-order.js.map +1 -0
  99. package/dist-server/service/delivery-order/index.js +25 -0
  100. package/dist-server/service/delivery-order/index.js.map +1 -0
  101. package/dist-server/service/draft-release-good/draft-release-good-create.js +647 -0
  102. package/dist-server/service/draft-release-good/draft-release-good-create.js.map +1 -0
  103. package/dist-server/service/draft-release-good/draft-release-good-mutation.js +486 -0
  104. package/dist-server/service/draft-release-good/draft-release-good-mutation.js.map +1 -0
  105. package/dist-server/service/draft-release-good/draft-release-good-query.js +366 -0
  106. package/dist-server/service/draft-release-good/draft-release-good-query.js.map +1 -0
  107. package/dist-server/service/draft-release-good/draft-release-good-type.js +424 -0
  108. package/dist-server/service/draft-release-good/draft-release-good-type.js.map +1 -0
  109. package/dist-server/service/draft-release-good/draft-release-good.js +444 -0
  110. package/dist-server/service/draft-release-good/draft-release-good.js.map +1 -0
  111. package/dist-server/service/draft-release-good/index.js +29 -0
  112. package/dist-server/service/draft-release-good/index.js.map +1 -0
  113. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js +140 -0
  114. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js.map +1 -0
  115. package/dist-server/service/goods-receival-note/goods-receival-note-query.js +273 -0
  116. package/dist-server/service/goods-receival-note/goods-receival-note-query.js.map +1 -0
  117. package/dist-server/service/goods-receival-note/goods-receival-note-types.js +159 -0
  118. package/dist-server/service/goods-receival-note/goods-receival-note-types.js.map +1 -0
  119. package/dist-server/service/goods-receival-note/goods-receival-note.js +156 -0
  120. package/dist-server/service/goods-receival-note/goods-receival-note.js.map +1 -0
  121. package/dist-server/service/goods-receival-note/index.js +25 -0
  122. package/dist-server/service/goods-receival-note/index.js.map +1 -0
  123. package/dist-server/service/index.js +282 -0
  124. package/dist-server/service/index.js.map +1 -0
  125. package/dist-server/service/inventory-check/index.js +25 -0
  126. package/dist-server/service/inventory-check/index.js.map +1 -0
  127. package/dist-server/service/inventory-check/inventory-check-mutation.js +151 -0
  128. package/dist-server/service/inventory-check/inventory-check-mutation.js.map +1 -0
  129. package/dist-server/service/inventory-check/inventory-check-query.js +138 -0
  130. package/dist-server/service/inventory-check/inventory-check-query.js.map +1 -0
  131. package/dist-server/service/inventory-check/inventory-check-types.js +82 -0
  132. package/dist-server/service/inventory-check/inventory-check-types.js.map +1 -0
  133. package/dist-server/service/inventory-check/inventory-check.js +115 -0
  134. package/dist-server/service/inventory-check/inventory-check.js.map +1 -0
  135. package/dist-server/service/inventory-check-item/index.js +25 -0
  136. package/dist-server/service/inventory-check-item/index.js.map +1 -0
  137. package/dist-server/service/inventory-check-item/inventory-check-item-mutation.js +120 -0
  138. package/dist-server/service/inventory-check-item/inventory-check-item-mutation.js.map +1 -0
  139. package/dist-server/service/inventory-check-item/inventory-check-item-query.js +196 -0
  140. package/dist-server/service/inventory-check-item/inventory-check-item-query.js.map +1 -0
  141. package/dist-server/service/inventory-check-item/inventory-check-item-types.js +157 -0
  142. package/dist-server/service/inventory-check-item/inventory-check-item-types.js.map +1 -0
  143. package/dist-server/service/inventory-check-item/inventory-check-item.js +273 -0
  144. package/dist-server/service/inventory-check-item/inventory-check-item.js.map +1 -0
  145. package/dist-server/service/invoice/index.js +25 -0
  146. package/dist-server/service/invoice/index.js.map +1 -0
  147. package/dist-server/service/invoice/invoice-mutation.js +105 -0
  148. package/dist-server/service/invoice/invoice-mutation.js.map +1 -0
  149. package/dist-server/service/invoice/invoice-query.js +94 -0
  150. package/dist-server/service/invoice/invoice-query.js.map +1 -0
  151. package/dist-server/service/invoice/invoice-types.js +388 -0
  152. package/dist-server/service/invoice/invoice-types.js.map +1 -0
  153. package/dist-server/service/invoice/invoice.js +312 -0
  154. package/dist-server/service/invoice/invoice.js.map +1 -0
  155. package/dist-server/service/invoice-product/index.js +25 -0
  156. package/dist-server/service/invoice-product/index.js.map +1 -0
  157. package/dist-server/service/invoice-product/invoice-product-mutation.js +70 -0
  158. package/dist-server/service/invoice-product/invoice-product-mutation.js.map +1 -0
  159. package/dist-server/service/invoice-product/invoice-product-query.js +95 -0
  160. package/dist-server/service/invoice-product/invoice-product-query.js.map +1 -0
  161. package/dist-server/service/invoice-product/invoice-product-types.js +131 -0
  162. package/dist-server/service/invoice-product/invoice-product-types.js.map +1 -0
  163. package/dist-server/service/invoice-product/invoice-product.js +130 -0
  164. package/dist-server/service/invoice-product/invoice-product.js.map +1 -0
  165. package/dist-server/service/job-sheet/index.js +25 -0
  166. package/dist-server/service/job-sheet/index.js.map +1 -0
  167. package/dist-server/service/job-sheet/job-sheet-mutation.js +93 -0
  168. package/dist-server/service/job-sheet/job-sheet-mutation.js.map +1 -0
  169. package/dist-server/service/job-sheet/job-sheet-query.js +134 -0
  170. package/dist-server/service/job-sheet/job-sheet-query.js.map +1 -0
  171. package/dist-server/service/job-sheet/job-sheet-types.js +113 -0
  172. package/dist-server/service/job-sheet/job-sheet-types.js.map +1 -0
  173. package/dist-server/service/job-sheet/job-sheet.js +132 -0
  174. package/dist-server/service/job-sheet/job-sheet.js.map +1 -0
  175. package/dist-server/service/manifest/index.js +9 -0
  176. package/dist-server/service/manifest/index.js.map +1 -0
  177. package/dist-server/service/manifest/manifest-mutation.js +264 -0
  178. package/dist-server/service/manifest/manifest-mutation.js.map +1 -0
  179. package/dist-server/service/manifest/manifest-query.js +228 -0
  180. package/dist-server/service/manifest/manifest-query.js.map +1 -0
  181. package/dist-server/service/manifest/manifest-type.js +183 -0
  182. package/dist-server/service/manifest/manifest-type.js.map +1 -0
  183. package/dist-server/service/manifest/manifest.js +134 -0
  184. package/dist-server/service/manifest/manifest.js.map +1 -0
  185. package/dist-server/service/order-consignment/index.js +9 -0
  186. package/dist-server/service/order-consignment/index.js.map +1 -0
  187. package/dist-server/service/order-consignment/order-consignment-mutation.js +120 -0
  188. package/dist-server/service/order-consignment/order-consignment-mutation.js.map +1 -0
  189. package/dist-server/service/order-consignment/order-consignment-query.js +87 -0
  190. package/dist-server/service/order-consignment/order-consignment-query.js.map +1 -0
  191. package/dist-server/service/order-consignment/order-consignment-type.js +69 -0
  192. package/dist-server/service/order-consignment/order-consignment-type.js.map +1 -0
  193. package/dist-server/service/order-consignment/order-consignment.js +115 -0
  194. package/dist-server/service/order-consignment/order-consignment.js.map +1 -0
  195. package/dist-server/service/order-inventory/index.js +25 -0
  196. package/dist-server/service/order-inventory/index.js.map +1 -0
  197. package/dist-server/service/order-inventory/order-inventory-mutation.js +80 -0
  198. package/dist-server/service/order-inventory/order-inventory-mutation.js.map +1 -0
  199. package/dist-server/service/order-inventory/order-inventory-query.js +592 -0
  200. package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -0
  201. package/dist-server/service/order-inventory/order-inventory-types.js +341 -0
  202. package/dist-server/service/order-inventory/order-inventory-types.js.map +1 -0
  203. package/dist-server/service/order-inventory/order-inventory.js +785 -0
  204. package/dist-server/service/order-inventory/order-inventory.js.map +1 -0
  205. package/dist-server/service/order-package/index.js +9 -0
  206. package/dist-server/service/order-package/index.js.map +1 -0
  207. package/dist-server/service/order-package/order-package-mutation.js +120 -0
  208. package/dist-server/service/order-package/order-package-mutation.js.map +1 -0
  209. package/dist-server/service/order-package/order-package-query.js +142 -0
  210. package/dist-server/service/order-package/order-package-query.js.map +1 -0
  211. package/dist-server/service/order-package/order-package-types.js +113 -0
  212. package/dist-server/service/order-package/order-package-types.js.map +1 -0
  213. package/dist-server/service/order-package/order-package.js +229 -0
  214. package/dist-server/service/order-package/order-package.js.map +1 -0
  215. package/dist-server/service/order-package-item/index.js +9 -0
  216. package/dist-server/service/order-package-item/index.js.map +1 -0
  217. package/dist-server/service/order-package-item/order-package-item-mutation.js +120 -0
  218. package/dist-server/service/order-package-item/order-package-item-mutation.js.map +1 -0
  219. package/dist-server/service/order-package-item/order-package-item-query.js +127 -0
  220. package/dist-server/service/order-package-item/order-package-item-query.js.map +1 -0
  221. package/dist-server/service/order-package-item/order-package-item-types.js +99 -0
  222. package/dist-server/service/order-package-item/order-package-item-types.js.map +1 -0
  223. package/dist-server/service/order-package-item/order-package-item.js +162 -0
  224. package/dist-server/service/order-package-item/order-package-item.js.map +1 -0
  225. package/dist-server/service/order-product/index.js +25 -0
  226. package/dist-server/service/order-product/index.js.map +1 -0
  227. package/dist-server/service/order-product/order-product-mutation.js +74 -0
  228. package/dist-server/service/order-product/order-product-mutation.js.map +1 -0
  229. package/dist-server/service/order-product/order-product-query.js +125 -0
  230. package/dist-server/service/order-product/order-product-query.js.map +1 -0
  231. package/dist-server/service/order-product/order-product-types.js +489 -0
  232. package/dist-server/service/order-product/order-product-types.js.map +1 -0
  233. package/dist-server/service/order-product/order-product.js +559 -0
  234. package/dist-server/service/order-product/order-product.js.map +1 -0
  235. package/dist-server/service/order-tote/index.js +25 -0
  236. package/dist-server/service/order-tote/index.js.map +1 -0
  237. package/dist-server/service/order-tote/order-tote-mutation.js +56 -0
  238. package/dist-server/service/order-tote/order-tote-mutation.js.map +1 -0
  239. package/dist-server/service/order-tote/order-tote-query.js +123 -0
  240. package/dist-server/service/order-tote/order-tote-query.js.map +1 -0
  241. package/dist-server/service/order-tote/order-tote-types.js +79 -0
  242. package/dist-server/service/order-tote/order-tote-types.js.map +1 -0
  243. package/dist-server/service/order-tote/order-tote.js +92 -0
  244. package/dist-server/service/order-tote/order-tote.js.map +1 -0
  245. package/dist-server/service/order-tote-item/index.js +25 -0
  246. package/dist-server/service/order-tote-item/index.js.map +1 -0
  247. package/dist-server/service/order-tote-item/order-tote-item-mutation.js +56 -0
  248. package/dist-server/service/order-tote-item/order-tote-item-mutation.js.map +1 -0
  249. package/dist-server/service/order-tote-item/order-tote-item-query.js +100 -0
  250. package/dist-server/service/order-tote-item/order-tote-item-query.js.map +1 -0
  251. package/dist-server/service/order-tote-item/order-tote-item-types.js +91 -0
  252. package/dist-server/service/order-tote-item/order-tote-item-types.js.map +1 -0
  253. package/dist-server/service/order-tote-item/order-tote-item.js +118 -0
  254. package/dist-server/service/order-tote-item/order-tote-item.js.map +1 -0
  255. package/dist-server/service/order-tote-seal/index.js +25 -0
  256. package/dist-server/service/order-tote-seal/index.js.map +1 -0
  257. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js +56 -0
  258. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js.map +1 -0
  259. package/dist-server/service/order-tote-seal/order-tote-seal-query.js +97 -0
  260. package/dist-server/service/order-tote-seal/order-tote-seal-query.js.map +1 -0
  261. package/dist-server/service/order-tote-seal/order-tote-seal-types.js +71 -0
  262. package/dist-server/service/order-tote-seal/order-tote-seal-types.js.map +1 -0
  263. package/dist-server/service/order-tote-seal/order-tote-seal.js +71 -0
  264. package/dist-server/service/order-tote-seal/order-tote-seal.js.map +1 -0
  265. package/dist-server/service/order-vas/index.js +25 -0
  266. package/dist-server/service/order-vas/index.js.map +1 -0
  267. package/dist-server/service/order-vas/order-vas-mutation.js +148 -0
  268. package/dist-server/service/order-vas/order-vas-mutation.js.map +1 -0
  269. package/dist-server/service/order-vas/order-vas-query.js +148 -0
  270. package/dist-server/service/order-vas/order-vas-query.js.map +1 -0
  271. package/dist-server/service/order-vas/order-vas-types.js +348 -0
  272. package/dist-server/service/order-vas/order-vas-types.js.map +1 -0
  273. package/dist-server/service/order-vas/order-vas.js +476 -0
  274. package/dist-server/service/order-vas/order-vas.js.map +1 -0
  275. package/dist-server/service/order-vas-item/index.js +9 -0
  276. package/dist-server/service/order-vas-item/index.js.map +1 -0
  277. package/dist-server/service/order-vas-item/order-vas-item-mutation.js +164 -0
  278. package/dist-server/service/order-vas-item/order-vas-item-mutation.js.map +1 -0
  279. package/dist-server/service/order-vas-item/order-vas-item-query.js +99 -0
  280. package/dist-server/service/order-vas-item/order-vas-item-query.js.map +1 -0
  281. package/dist-server/service/order-vas-item/order-vas-item-type.js +131 -0
  282. package/dist-server/service/order-vas-item/order-vas-item-type.js.map +1 -0
  283. package/dist-server/service/order-vas-item/order-vas-item.js +166 -0
  284. package/dist-server/service/order-vas-item/order-vas-item.js.map +1 -0
  285. package/dist-server/service/others/index.js +21 -0
  286. package/dist-server/service/others/index.js.map +1 -0
  287. package/dist-server/service/others/other-query.js +536 -0
  288. package/dist-server/service/others/other-query.js.map +1 -0
  289. package/dist-server/service/others/other-types.js +181 -0
  290. package/dist-server/service/others/other-types.js.map +1 -0
  291. package/dist-server/service/purchase-order/index.js +25 -0
  292. package/dist-server/service/purchase-order/index.js.map +1 -0
  293. package/dist-server/service/purchase-order/purchase-order-mutation.js +398 -0
  294. package/dist-server/service/purchase-order/purchase-order-mutation.js.map +1 -0
  295. package/dist-server/service/purchase-order/purchase-order-query.js +126 -0
  296. package/dist-server/service/purchase-order/purchase-order-query.js.map +1 -0
  297. package/dist-server/service/purchase-order/purchase-order-types.js +240 -0
  298. package/dist-server/service/purchase-order/purchase-order-types.js.map +1 -0
  299. package/dist-server/service/purchase-order/purchase-order.js +236 -0
  300. package/dist-server/service/purchase-order/purchase-order.js.map +1 -0
  301. package/dist-server/service/purchase-order-other-charge/index.js +25 -0
  302. package/dist-server/service/purchase-order-other-charge/index.js.map +1 -0
  303. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js +56 -0
  304. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js.map +1 -0
  305. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js +87 -0
  306. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js.map +1 -0
  307. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-types.js +77 -0
  308. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-types.js.map +1 -0
  309. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js +101 -0
  310. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js.map +1 -0
  311. package/dist-server/service/release-good/index.js +25 -0
  312. package/dist-server/service/release-good/index.js.map +1 -0
  313. package/dist-server/service/release-good/release-good-mutation.js +1598 -0
  314. package/dist-server/service/release-good/release-good-mutation.js.map +1 -0
  315. package/dist-server/service/release-good/release-good-query.js +1131 -0
  316. package/dist-server/service/release-good/release-good-query.js.map +1 -0
  317. package/dist-server/service/release-good/release-good-types.js +1043 -0
  318. package/dist-server/service/release-good/release-good-types.js.map +1 -0
  319. package/dist-server/service/release-good/release-good.js +817 -0
  320. package/dist-server/service/release-good/release-good.js.map +1 -0
  321. package/dist-server/service/release-good-logs/index.js +11 -0
  322. package/dist-server/service/release-good-logs/index.js.map +1 -0
  323. package/dist-server/service/release-good-logs/release-good-logs-mutation.js +126 -0
  324. package/dist-server/service/release-good-logs/release-good-logs-mutation.js.map +1 -0
  325. package/dist-server/service/release-good-logs/release-good-logs-query.js +71 -0
  326. package/dist-server/service/release-good-logs/release-good-logs-query.js.map +1 -0
  327. package/dist-server/service/release-good-logs/release-good-logs-type.js +65 -0
  328. package/dist-server/service/release-good-logs/release-good-logs-type.js.map +1 -0
  329. package/dist-server/service/release-good-logs/release-good-logs.js +96 -0
  330. package/dist-server/service/release-good-logs/release-good-logs.js.map +1 -0
  331. package/dist-server/service/replenishment/index.js +9 -0
  332. package/dist-server/service/replenishment/index.js.map +1 -0
  333. package/dist-server/service/replenishment/replenishment-mutation.js +234 -0
  334. package/dist-server/service/replenishment/replenishment-mutation.js.map +1 -0
  335. package/dist-server/service/replenishment/replenishment-query.js +185 -0
  336. package/dist-server/service/replenishment/replenishment-query.js.map +1 -0
  337. package/dist-server/service/replenishment/replenishment-type.js +119 -0
  338. package/dist-server/service/replenishment/replenishment-type.js.map +1 -0
  339. package/dist-server/service/replenishment/replenishment.js +114 -0
  340. package/dist-server/service/replenishment/replenishment.js.map +1 -0
  341. package/dist-server/service/retail-replenishment-order/index.js +25 -0
  342. package/dist-server/service/retail-replenishment-order/index.js.map +1 -0
  343. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js +314 -0
  344. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js.map +1 -0
  345. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js +89 -0
  346. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js.map +1 -0
  347. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js +148 -0
  348. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js.map +1 -0
  349. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js +141 -0
  350. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js.map +1 -0
  351. package/dist-server/service/return-order/index.js +25 -0
  352. package/dist-server/service/return-order/index.js.map +1 -0
  353. package/dist-server/service/return-order/return-order-mutation.js +451 -0
  354. package/dist-server/service/return-order/return-order-mutation.js.map +1 -0
  355. package/dist-server/service/return-order/return-order-query.js +243 -0
  356. package/dist-server/service/return-order/return-order-query.js.map +1 -0
  357. package/dist-server/service/return-order/return-order-types.js +274 -0
  358. package/dist-server/service/return-order/return-order-types.js.map +1 -0
  359. package/dist-server/service/return-order/return-order.js +159 -0
  360. package/dist-server/service/return-order/return-order.js.map +1 -0
  361. package/dist-server/service/reverse-kitting-order/index.js +25 -0
  362. package/dist-server/service/reverse-kitting-order/index.js.map +1 -0
  363. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js +407 -0
  364. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js.map +1 -0
  365. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js +222 -0
  366. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js.map +1 -0
  367. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js +230 -0
  368. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js.map +1 -0
  369. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js +145 -0
  370. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js.map +1 -0
  371. package/dist-server/service/reverse-kitting-order-inventory/index.js +25 -0
  372. package/dist-server/service/reverse-kitting-order-inventory/index.js.map +1 -0
  373. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js +130 -0
  374. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js.map +1 -0
  375. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js +87 -0
  376. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js.map +1 -0
  377. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js +143 -0
  378. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js.map +1 -0
  379. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js +178 -0
  380. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js.map +1 -0
  381. package/dist-server/service/shipping-order/index.js +25 -0
  382. package/dist-server/service/shipping-order/index.js.map +1 -0
  383. package/dist-server/service/shipping-order/shipping-order-mutation.js +78 -0
  384. package/dist-server/service/shipping-order/shipping-order-mutation.js.map +1 -0
  385. package/dist-server/service/shipping-order/shipping-order-query.js +96 -0
  386. package/dist-server/service/shipping-order/shipping-order-query.js.map +1 -0
  387. package/dist-server/service/shipping-order/shipping-order-types.js +137 -0
  388. package/dist-server/service/shipping-order/shipping-order-types.js.map +1 -0
  389. package/dist-server/service/shipping-order/shipping-order.js +165 -0
  390. package/dist-server/service/shipping-order/shipping-order.js.map +1 -0
  391. package/dist-server/service/transfer-order/index.js +25 -0
  392. package/dist-server/service/transfer-order/index.js.map +1 -0
  393. package/dist-server/service/transfer-order/transfer-order-mutation.js +252 -0
  394. package/dist-server/service/transfer-order/transfer-order-mutation.js.map +1 -0
  395. package/dist-server/service/transfer-order/transfer-order-query.js +104 -0
  396. package/dist-server/service/transfer-order/transfer-order-query.js.map +1 -0
  397. package/dist-server/service/transfer-order/transfer-order-types.js +148 -0
  398. package/dist-server/service/transfer-order/transfer-order-types.js.map +1 -0
  399. package/dist-server/service/transfer-order/transfer-order.js +146 -0
  400. package/dist-server/service/transfer-order/transfer-order.js.map +1 -0
  401. package/dist-server/service/vas/index.js +25 -0
  402. package/dist-server/service/vas/index.js.map +1 -0
  403. package/dist-server/service/vas/vas-mutation.js +562 -0
  404. package/dist-server/service/vas/vas-mutation.js.map +1 -0
  405. package/dist-server/service/vas/vas-query.js +114 -0
  406. package/dist-server/service/vas/vas-query.js.map +1 -0
  407. package/dist-server/service/vas/vas-types.js +113 -0
  408. package/dist-server/service/vas/vas-types.js.map +1 -0
  409. package/dist-server/service/vas/vas.js +114 -0
  410. package/dist-server/service/vas/vas.js.map +1 -0
  411. package/dist-server/service/vas-order/index.js +25 -0
  412. package/dist-server/service/vas-order/index.js.map +1 -0
  413. package/dist-server/service/vas-order/vas-order-mutation.js +241 -0
  414. package/dist-server/service/vas-order/vas-order-mutation.js.map +1 -0
  415. package/dist-server/service/vas-order/vas-order-query.js +151 -0
  416. package/dist-server/service/vas-order/vas-order-query.js.map +1 -0
  417. package/dist-server/service/vas-order/vas-order-types.js +83 -0
  418. package/dist-server/service/vas-order/vas-order-types.js.map +1 -0
  419. package/dist-server/service/vas-order/vas-order.js +104 -0
  420. package/dist-server/service/vas-order/vas-order.js.map +1 -0
  421. package/dist-server/utils/datetime-util.js +82 -0
  422. package/dist-server/utils/datetime-util.js.map +1 -0
  423. package/dist-server/utils/index.js +20 -0
  424. package/dist-server/utils/index.js.map +1 -0
  425. package/dist-server/utils/inventory-util.js +1098 -0
  426. package/dist-server/utils/inventory-util.js.map +1 -0
  427. package/dist-server/utils/order-no-generator.js +112 -0
  428. package/dist-server/utils/order-no-generator.js.map +1 -0
  429. package/package.json +8 -8
  430. package/server/service/vas/vas-mutation.ts +222 -225
@@ -0,0 +1,1085 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ var _a;
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.editArrivalNoticeProducts = exports.addArrivalNoticeProducts = exports.rejectArrivalNotice = exports.checkArrivedNoticeFunction = exports.receiveArrivalNoticeFunction = exports.confirmArrivalNoticeFunction = exports.generateArrivalNoticeFunction = exports.deleteArrivalNotice = exports.ArrivalNoticeMutation = void 0;
20
+ const graphql_upload_1 = require("graphql-upload");
21
+ const type_graphql_1 = require("type-graphql");
22
+ const typeorm_1 = require("typeorm");
23
+ const attachment_base_1 = require("@things-factory/attachment-base");
24
+ const auth_base_1 = require("@things-factory/auth-base");
25
+ const biz_base_1 = require("@things-factory/biz-base");
26
+ const id_rule_base_1 = require("@things-factory/id-rule-base");
27
+ const notification_1 = require("@things-factory/notification");
28
+ const product_base_1 = require("@things-factory/product-base");
29
+ const setting_base_1 = require("@things-factory/setting-base");
30
+ const constants_1 = require("../../constants");
31
+ const attachment_type_1 = require("../../constants/attachment-type");
32
+ const errors_1 = require("../../errors");
33
+ const order_no_generator_1 = require("../../utils/order-no-generator");
34
+ const collection_order_1 = require("../collection-order/collection-order");
35
+ const job_sheet_1 = require("../job-sheet/job-sheet");
36
+ const job_sheet_mutation_1 = require("../job-sheet/job-sheet-mutation");
37
+ const order_product_1 = require("../order-product/order-product");
38
+ const warehouse_base_1 = require("@things-factory/warehouse-base");
39
+ const order_product_types_1 = require("../order-product/order-product-types");
40
+ const order_vas_1 = require("../order-vas/order-vas");
41
+ const release_good_1 = require("../release-good/release-good");
42
+ const integration_base_1 = require("@things-factory/integration-base");
43
+ const release_good_mutation_1 = require("../release-good/release-good-mutation");
44
+ const vas_1 = require("../vas/vas");
45
+ const _1 = require("./");
46
+ const arrival_notice_1 = require("./arrival-notice");
47
+ const arrival_notice_types_1 = require("./arrival-notice-types");
48
+ const i18next_1 = __importDefault(require("i18next"));
49
+ const debug = require('debug')('things-factory:operato-wms:addArrivalNotice');
50
+ let ArrivalNoticeMutation = class ArrivalNoticeMutation {
51
+ async deleteArrivalNotice(name, context) {
52
+ const { tx, user, domain } = context.state;
53
+ return await deleteArrivalNotice(tx, name, user, domain);
54
+ }
55
+ async generateArrivalNotice(context, arrivalNotice, files) {
56
+ const { tx } = context.state;
57
+ const createdArrivalNotice = await generateArrivalNoticeFunction(null, arrivalNotice, false, files, context, tx);
58
+ (0, integration_base_1.webhookHandler)(createdArrivalNotice, { id: createdArrivalNotice.bizplace }, integration_base_1.WebhookEventsEnum.ArrivalNoticeCreated);
59
+ return createdArrivalNotice;
60
+ }
61
+ async confirmArrivalNotice(name, context) {
62
+ const { tx } = context.state;
63
+ const arrivalNotice = await confirmArrivalNoticeFunction(name, context, tx);
64
+ // If current GAN has cross docking
65
+ if (arrivalNotice.crossDocking) {
66
+ const { releaseGood } = await tx.getRepository(arrival_notice_1.ArrivalNotice).findOne(arrivalNotice.id, {
67
+ relations: ['releaseGood']
68
+ });
69
+ // If status of related RO is not equal to PENDING_RECEIVE (i.e. Wasn't confirmed yet.)
70
+ if (releaseGood.status !== constants_1.ORDER_STATUS.PENDING_RECEIVE) {
71
+ await (0, release_good_mutation_1.confirmReleaseGood)(releaseGood.name, context);
72
+ }
73
+ }
74
+ (0, integration_base_1.webhookHandler)(arrivalNotice, arrivalNotice.bizplace, integration_base_1.WebhookEventsEnum.ArrivalNoticeConfirmed);
75
+ return arrivalNotice;
76
+ }
77
+ async receiveArrivalNotice(name, context) {
78
+ const receiveArrivalNotice = await receiveArrivalNoticeFunction(null, name, context);
79
+ return receiveArrivalNotice;
80
+ }
81
+ async checkArrivedNotice(name, context) {
82
+ const { tx } = context.state;
83
+ return await checkArrivedNoticeFunction(name, context, tx);
84
+ }
85
+ async rejectArrivalNotice(name, patch, context) {
86
+ const { tx } = context.state;
87
+ const arrivalNotice = await rejectArrivalNotice(tx, name, patch.remark, context);
88
+ if (arrivalNotice.crossDocking) {
89
+ const { releaseGood } = await tx
90
+ .getRepository(arrival_notice_1.ArrivalNotice)
91
+ .findOne(arrivalNotice.id, {
92
+ relations: ['releaseGood']
93
+ });
94
+ if (releaseGood.status !== constants_1.ORDER_STATUS.REJECTED) {
95
+ await (0, release_good_mutation_1.rejectReleaseGood)(tx, releaseGood.name, patch.remark, context);
96
+ }
97
+ }
98
+ return arrivalNotice;
99
+ }
100
+ async addEditArrivalNoticeProducts(context, ganNo, approvedAddEditProducts, newOrderProducts, existingOrderProducts) {
101
+ var _a;
102
+ const { user, domain, tx } = context.state;
103
+ try {
104
+ let arrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).findOne({
105
+ where: { name: ganNo },
106
+ relations: ['bizplace', 'orderProducts']
107
+ });
108
+ arrivalNotice.status = approvedAddEditProducts ? constants_1.ORDER_STATUS.PENDING : constants_1.ORDER_STATUS.PENDING_APPROVAL;
109
+ arrivalNotice.updater = user;
110
+ arrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).save(arrivalNotice);
111
+ //only for status GAN in 'PENDING'
112
+ //allow to add/edit products without approval from client
113
+ if (approvedAddEditProducts) {
114
+ if ((newOrderProducts === null || newOrderProducts === void 0 ? void 0 : newOrderProducts.length) > 0) {
115
+ let updatedNewOrderProducts = newOrderProducts.map(op => {
116
+ op.status = constants_1.ORDER_PRODUCT_STATUS.PENDING;
117
+ return op;
118
+ });
119
+ await addArrivalNoticeProducts(domain, arrivalNotice, updatedNewOrderProducts, user, tx);
120
+ }
121
+ for (const op of existingOrderProducts) {
122
+ await tx
123
+ .createQueryBuilder()
124
+ .update(order_product_1.OrderProduct)
125
+ .set({
126
+ batchId: op.batchId,
127
+ batchIdRef: op.batchIdRef,
128
+ manufactureDate: op.manufactureDate,
129
+ packQty: op.packQty,
130
+ packingType: op.packingType,
131
+ palletQty: op.palletQty,
132
+ palletId: op.palletId,
133
+ remark: op.remark,
134
+ totalUomValue: op.totalUomValue,
135
+ uom: op.uom,
136
+ uomValue: op.uomValue,
137
+ unitPrice: op.unitPrice,
138
+ updater: user
139
+ })
140
+ .where('id = :id', { id: op.id })
141
+ .andWhere('domain_id = :domainId', { domainId: domain.id })
142
+ .execute();
143
+ }
144
+ return true;
145
+ }
146
+ if ((newOrderProducts === null || newOrderProducts === void 0 ? void 0 : newOrderProducts.length) > 0)
147
+ await addArrivalNoticeProducts(domain, arrivalNotice, newOrderProducts, user, tx);
148
+ if ((existingOrderProducts === null || existingOrderProducts === void 0 ? void 0 : existingOrderProducts.length) > 0)
149
+ await editArrivalNoticeProducts(existingOrderProducts, user, tx);
150
+ // notification logics
151
+ const users = await (0, biz_base_1.getDomainUsers)(arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.bizplace, tx);
152
+ if ((users === null || users === void 0 ? void 0 : users.length) && ((_a = context.header) === null || _a === void 0 ? void 0 : _a.referer)) {
153
+ const receivers = users.map(user => user.id);
154
+ const msg = {
155
+ title: `Products are added/edited for ${arrivalNotice.name}`,
156
+ body: `Warehouse need your review for changes to be approved`,
157
+ url: context.header.referer,
158
+ data: { url: context.header.referer }
159
+ };
160
+ /**
161
+ * @notes Temporary off sendNotification due to suspect of causing wms down
162
+ */
163
+ // await sendNotification({
164
+ // receivers,
165
+ // message: { ...msg }
166
+ // })
167
+ }
168
+ return true;
169
+ }
170
+ catch (error) {
171
+ throw new Error(error);
172
+ }
173
+ }
174
+ async addArrivalNotice(context, arrivalNotice, file) {
175
+ const { tx } = context.state;
176
+ const createdGAN = await generateArrivalNoticeFunction(null, arrivalNotice, false, file, context, tx);
177
+ debug('createdGAN', createdGAN);
178
+ const confirmedGAN = await confirmArrivalNoticeFunction(createdGAN.name, context, tx);
179
+ debug('confirmedGAN', confirmedGAN);
180
+ return confirmedGAN;
181
+ }
182
+ async updateArrivalNoticeDetails(context, arrivalNotice) {
183
+ const { domain, tx } = context.state;
184
+ let existingArrivalNotice = await tx
185
+ .getRepository(arrival_notice_1.ArrivalNotice)
186
+ .findOne({ where: { name: arrivalNotice.name, domain } });
187
+ if (!existingArrivalNotice) {
188
+ throw new Error('Existing Arrival Notice not found.');
189
+ }
190
+ await tx.getRepository(arrival_notice_1.ArrivalNotice).update(existingArrivalNotice.id, arrivalNotice);
191
+ const updatedArrivalNotice = await tx
192
+ .getRepository(arrival_notice_1.ArrivalNotice)
193
+ .findOne({ where: { id: existingArrivalNotice.id }, relations: ['bizplace', 'domain'] });
194
+ (0, integration_base_1.webhookHandler)(updatedArrivalNotice, updatedArrivalNotice.bizplace, integration_base_1.WebhookEventsEnum.ArrivalNoticeUpdated);
195
+ return updatedArrivalNotice;
196
+ }
197
+ async bulkGenerateArrivalNotices(context, rawArrivalNotices, bizplaceId, bufferLocation) {
198
+ const { domain, user, tx } = context.state;
199
+ let createdArrivalNoticeIds = [], createdOrderProductIds = [], errorsCaught = [], finalArrivalNoticeList = [];
200
+ let opStatus = constants_1.ORDER_PRODUCT_STATUS.PENDING_RECEIVE;
201
+ let anStatus = constants_1.ORDER_STATUS.PENDING_RECEIVE;
202
+ const foundBizplace = await tx
203
+ .getRepository(biz_base_1.Bizplace)
204
+ .findOne({ where: { id: bizplaceId }, relations: ['domain'] });
205
+ if (!foundBizplace)
206
+ throw new Error('company not found');
207
+ // to check whether the raw data are valid
208
+ const validatedArrivalNotices = await (0, _1.validateBulkArrivalNoticesFunction)(rawArrivalNotices, bizplaceId, domain, tx);
209
+ // check for custom GAN order no setting
210
+ const ganNoSetting = await tx.getRepository(setting_base_1.Setting).findOne({
211
+ where: {
212
+ domain,
213
+ name: constants_1.ORDER_NUMBER_SETTING_KEY.GAN_NUMBER_RULE
214
+ }
215
+ });
216
+ const ganProcessingSetting = await tx.getRepository(setting_base_1.Setting).findOne({
217
+ where: { domain, category: 'id-rule', name: 'gan-order-processing' }
218
+ });
219
+ const partnerGanProcessingSetting = await tx.getRepository(setting_base_1.PartnerSetting).findOne({
220
+ where: { setting: ganProcessingSetting, domain, partnerDomain: foundBizplace.domain.id }
221
+ });
222
+ // If status of GAN is PENDING_RECEIVE then directly to assign warehouse
223
+ if (ganProcessingSetting) {
224
+ let setting = !isNaN(partnerGanProcessingSetting === null || partnerGanProcessingSetting === void 0 ? void 0 : partnerGanProcessingSetting.value)
225
+ ? partnerGanProcessingSetting === null || partnerGanProcessingSetting === void 0 ? void 0 : partnerGanProcessingSetting.value
226
+ : ganProcessingSetting.value;
227
+ // CONFIRM to assign if setting value is 1
228
+ if (setting == 1) {
229
+ opStatus = constants_1.ORDER_PRODUCT_STATUS.ARRIVED;
230
+ anStatus = constants_1.ORDER_STATUS.ARRIVED;
231
+ }
232
+ }
233
+ // extract rawArrivalNotices data into normal ArrivalNotice format
234
+ let arrivalNotices = extractArrivalNotices(validatedArrivalNotices);
235
+ for (let i = 0, l = arrivalNotices.length; i < l; i++) {
236
+ try {
237
+ await (0, typeorm_1.getConnection)().transaction(async (childTx) => {
238
+ // check for duplication
239
+ const duplicatedArrivalNotice = await childTx.getRepository(arrival_notice_1.ArrivalNotice).findOne({
240
+ where: {
241
+ refNo: arrivalNotices[i].refNo,
242
+ refNo2: arrivalNotices[i].refNo2,
243
+ refNo3: arrivalNotices[i].refNo3,
244
+ etaDate: arrivalNotices[i].etaDate,
245
+ truckNo: arrivalNotices[i].truckNo,
246
+ containerNo: arrivalNotices[i].containerNo,
247
+ containerSize: arrivalNotices[i].containerSize,
248
+ looseItem: arrivalNotices[i].looseItem,
249
+ importCargo: arrivalNotices[i].importCargo
250
+ }
251
+ });
252
+ if (duplicatedArrivalNotice) {
253
+ throw new Error(`duplicated with ${duplicatedArrivalNotice.name}`);
254
+ }
255
+ // save new arrival notice
256
+ const createdArrivalNotice = await childTx.getRepository(arrival_notice_1.ArrivalNotice).save(Object.assign(Object.assign({}, arrivalNotices[i]), { name: ganNoSetting
257
+ ? await (0, id_rule_base_1.generateId)({ domain, type: constants_1.ORDER_NUMBER_RULE_TYPE.GAN_NUMBER, seed: {} })
258
+ : order_no_generator_1.OrderNoGenerator.arrivalNotice(), domain, bizplace: foundBizplace, status: constants_1.ORDER_STATUS.PENDING, creator: user, updater: user }));
259
+ // save new order products
260
+ let createdOrderProducts = await Promise.all(arrivalNotices[i].orderProducts.map(async (op) => {
261
+ return Object.assign(Object.assign({}, op), { domain, bizplace: foundBizplace, name: order_no_generator_1.OrderNoGenerator.orderProduct(), status: constants_1.ORDER_PRODUCT_STATUS.PENDING, arrivalNotice: createdArrivalNotice, creator: user });
262
+ }));
263
+ createdOrderProducts = await childTx.getRepository(order_product_1.OrderProduct).save(createdOrderProducts);
264
+ // generate new jobsheet
265
+ await (0, job_sheet_mutation_1.generateJobSheet)(domain, user, createdArrivalNotice, childTx);
266
+ // push arrivalNotice and orderProducts IDs if successfully saved
267
+ createdArrivalNoticeIds.push(createdArrivalNotice.id);
268
+ createdOrderProductIds.push(...createdOrderProducts.map(op => op.id));
269
+ });
270
+ }
271
+ catch (error) {
272
+ // collect the arrivalNotice details and its error
273
+ let rawArrivalNotices = formRawArrivalNotices(arrivalNotices[i], error.message);
274
+ errorsCaught.push(...rawArrivalNotices);
275
+ }
276
+ }
277
+ if (createdArrivalNoticeIds.length && createdOrderProductIds.length) {
278
+ await (0, typeorm_1.getConnection)().transaction(async (childTx) => {
279
+ // update arrivalNotices status to PENDING_RECEIVE
280
+ await childTx
281
+ .getRepository(arrival_notice_1.ArrivalNotice)
282
+ .update({ id: (0, typeorm_1.In)(createdArrivalNoticeIds) }, { status: anStatus, updater: user });
283
+ // update orderProducts status to PENDING_RECEIVE
284
+ await childTx
285
+ .getRepository(order_product_1.OrderProduct)
286
+ .update({ id: (0, typeorm_1.In)(createdOrderProductIds) }, { status: opStatus, updater: user });
287
+ finalArrivalNoticeList = await childTx.getRepository(arrival_notice_1.ArrivalNotice).find({
288
+ where: { id: (0, typeorm_1.In)(createdArrivalNoticeIds) },
289
+ relations: ['orderProducts', 'orderProducts.product', 'bizplace']
290
+ });
291
+ });
292
+ }
293
+ if (errorsCaught.length) {
294
+ // should return this error list in the grist so that user know which gan need to amend
295
+ throw new errors_1.ValidationError(Object.assign(Object.assign({}, errors_1.ValidationError.ERROR_CODES.INVALID_DATA_FOUND), { detail: { data: JSON.stringify(errorsCaught) } }));
296
+ }
297
+ // return arrivalNotices with its orderProducts list
298
+ return { items: finalArrivalNoticeList, total: 0 };
299
+ }
300
+ };
301
+ __decorate([
302
+ (0, type_graphql_1.Directive)('@privilege(category: "order_customer", privilege: "mutation")'),
303
+ (0, type_graphql_1.Directive)('@transaction'),
304
+ (0, type_graphql_1.Mutation)(returns => Boolean),
305
+ __param(0, (0, type_graphql_1.Arg)('name')),
306
+ __param(1, (0, type_graphql_1.Ctx)()),
307
+ __metadata("design:type", Function),
308
+ __metadata("design:paramtypes", [String, Object]),
309
+ __metadata("design:returntype", Promise)
310
+ ], ArrivalNoticeMutation.prototype, "deleteArrivalNotice", null);
311
+ __decorate([
312
+ (0, type_graphql_1.Directive)('@privilege(category: "order_customer", privilege: "mutation")'),
313
+ (0, type_graphql_1.Directive)('@transaction'),
314
+ (0, type_graphql_1.Mutation)(returns => arrival_notice_1.ArrivalNotice),
315
+ __param(0, (0, type_graphql_1.Ctx)()),
316
+ __param(1, (0, type_graphql_1.Arg)('arrivalNotice', type => arrival_notice_types_1.NewArrivalNotice)),
317
+ __param(2, (0, type_graphql_1.Arg)('files', type => [graphql_upload_1.GraphQLUpload], { nullable: true })),
318
+ __metadata("design:type", Function),
319
+ __metadata("design:paramtypes", [Object, arrival_notice_types_1.NewArrivalNotice, Array]),
320
+ __metadata("design:returntype", Promise)
321
+ ], ArrivalNoticeMutation.prototype, "generateArrivalNotice", null);
322
+ __decorate([
323
+ (0, type_graphql_1.Directive)('@privilege(category: "order_customer", privilege: "mutation")'),
324
+ (0, type_graphql_1.Directive)('@transaction'),
325
+ (0, type_graphql_1.Mutation)(returns => arrival_notice_1.ArrivalNotice),
326
+ __param(0, (0, type_graphql_1.Arg)('name')),
327
+ __param(1, (0, type_graphql_1.Ctx)()),
328
+ __metadata("design:type", Function),
329
+ __metadata("design:paramtypes", [String, Object]),
330
+ __metadata("design:returntype", Promise)
331
+ ], ArrivalNoticeMutation.prototype, "confirmArrivalNotice", null);
332
+ __decorate([
333
+ (0, type_graphql_1.Directive)('@privilege(category: "order_warehouse", privilege: "mutation")'),
334
+ (0, type_graphql_1.Directive)('@transaction'),
335
+ (0, type_graphql_1.Mutation)(returns => arrival_notice_1.ArrivalNotice),
336
+ __param(0, (0, type_graphql_1.Arg)('name')),
337
+ __param(1, (0, type_graphql_1.Ctx)()),
338
+ __metadata("design:type", Function),
339
+ __metadata("design:paramtypes", [String, Object]),
340
+ __metadata("design:returntype", Promise)
341
+ ], ArrivalNoticeMutation.prototype, "receiveArrivalNotice", null);
342
+ __decorate([
343
+ (0, type_graphql_1.Directive)('@privilege(category: "order_warehouse", privilege: "mutation")'),
344
+ (0, type_graphql_1.Directive)('@transaction'),
345
+ (0, type_graphql_1.Mutation)(returns => arrival_notice_1.ArrivalNotice),
346
+ __param(0, (0, type_graphql_1.Arg)('name')),
347
+ __param(1, (0, type_graphql_1.Ctx)()),
348
+ __metadata("design:type", Function),
349
+ __metadata("design:paramtypes", [String, Object]),
350
+ __metadata("design:returntype", Promise)
351
+ ], ArrivalNoticeMutation.prototype, "checkArrivedNotice", null);
352
+ __decorate([
353
+ (0, type_graphql_1.Directive)('@privilege(category: "order_warehouse", privilege: "mutation")'),
354
+ (0, type_graphql_1.Directive)('@transaction'),
355
+ (0, type_graphql_1.Mutation)(returns => arrival_notice_1.ArrivalNotice),
356
+ __param(0, (0, type_graphql_1.Arg)('name')),
357
+ __param(1, (0, type_graphql_1.Arg)('patch', type => arrival_notice_types_1.ArrivalNoticePatch)),
358
+ __param(2, (0, type_graphql_1.Ctx)()),
359
+ __metadata("design:type", Function),
360
+ __metadata("design:paramtypes", [String, arrival_notice_types_1.ArrivalNoticePatch, Object]),
361
+ __metadata("design:returntype", Promise)
362
+ ], ArrivalNoticeMutation.prototype, "rejectArrivalNotice", null);
363
+ __decorate([
364
+ (0, type_graphql_1.Directive)('@privilege(category: "order_warehouse", privilege: "mutation")'),
365
+ (0, type_graphql_1.Directive)('@transaction'),
366
+ (0, type_graphql_1.Mutation)(returns => Boolean),
367
+ __param(0, (0, type_graphql_1.Ctx)()),
368
+ __param(1, (0, type_graphql_1.Arg)('ganNo')),
369
+ __param(2, (0, type_graphql_1.Arg)('approvedAddEditProducts', type => Boolean, { nullable: true })),
370
+ __param(3, (0, type_graphql_1.Arg)('newOrderProducts', type => [order_product_types_1.NewOrderProduct], { nullable: true })),
371
+ __param(4, (0, type_graphql_1.Arg)('existingOrderProducts', type => [order_product_types_1.OrderProductPatch], { nullable: true })),
372
+ __metadata("design:type", Function),
373
+ __metadata("design:paramtypes", [Object, String, Boolean, Array, Array]),
374
+ __metadata("design:returntype", Promise)
375
+ ], ArrivalNoticeMutation.prototype, "addEditArrivalNoticeProducts", null);
376
+ __decorate([
377
+ (0, type_graphql_1.Directive)('@privilege(category: "order_customer", privilege: "mutation")'),
378
+ (0, type_graphql_1.Directive)('@transaction'),
379
+ (0, type_graphql_1.Mutation)(returns => arrival_notice_1.ArrivalNotice),
380
+ __param(0, (0, type_graphql_1.Ctx)()),
381
+ __param(1, (0, type_graphql_1.Arg)('arrivalNotice', type => arrival_notice_types_1.NewArrivalNotice)),
382
+ __param(2, (0, type_graphql_1.Arg)('file', type => graphql_upload_1.GraphQLUpload, { nullable: true })),
383
+ __metadata("design:type", Function),
384
+ __metadata("design:paramtypes", [Object, arrival_notice_types_1.NewArrivalNotice, typeof (_a = typeof graphql_upload_1.FileUpload !== "undefined" && graphql_upload_1.FileUpload) === "function" ? _a : Object]),
385
+ __metadata("design:returntype", Promise)
386
+ ], ArrivalNoticeMutation.prototype, "addArrivalNotice", null);
387
+ __decorate([
388
+ (0, type_graphql_1.Directive)('@privilege(category: "order_customer", privilege: "mutation")'),
389
+ (0, type_graphql_1.Directive)('@transaction'),
390
+ (0, type_graphql_1.Mutation)(returns => arrival_notice_1.ArrivalNotice),
391
+ __param(0, (0, type_graphql_1.Ctx)()),
392
+ __param(1, (0, type_graphql_1.Arg)('arrivalNotice', type => arrival_notice_types_1.ArrivalNoticePatch)),
393
+ __metadata("design:type", Function),
394
+ __metadata("design:paramtypes", [Object, arrival_notice_types_1.ArrivalNoticePatch]),
395
+ __metadata("design:returntype", Promise)
396
+ ], ArrivalNoticeMutation.prototype, "updateArrivalNoticeDetails", null);
397
+ __decorate([
398
+ (0, type_graphql_1.Directive)('@privilege(category: "order_customer", privilege: "mutation")'),
399
+ (0, type_graphql_1.Directive)('@transaction'),
400
+ (0, type_graphql_1.Mutation)(returns => arrival_notice_types_1.ArrivalNoticeList),
401
+ __param(0, (0, type_graphql_1.Ctx)()),
402
+ __param(1, (0, type_graphql_1.Arg)('rawArrivalNotices', type => [arrival_notice_types_1.NewArrivalNotice], { nullable: true })),
403
+ __param(2, (0, type_graphql_1.Arg)('bizplaceId', type => String)),
404
+ __param(3, (0, type_graphql_1.Arg)('bufferLocation', type => String, { nullable: true })),
405
+ __metadata("design:type", Function),
406
+ __metadata("design:paramtypes", [Object, Array, String, String]),
407
+ __metadata("design:returntype", Promise)
408
+ ], ArrivalNoticeMutation.prototype, "bulkGenerateArrivalNotices", null);
409
+ ArrivalNoticeMutation = __decorate([
410
+ (0, type_graphql_1.Resolver)(arrival_notice_1.ArrivalNotice)
411
+ ], ArrivalNoticeMutation);
412
+ exports.ArrivalNoticeMutation = ArrivalNoticeMutation;
413
+ async function deleteArrivalNotice(tx, name, user, domain) {
414
+ var _a;
415
+ try {
416
+ let foundArrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).findOne({
417
+ where: { domain, name },
418
+ relations: ['bizplace', 'releaseGood', 'orderProducts', 'orderVass', 'collectionOrders', 'creator', 'updater']
419
+ });
420
+ if (!foundArrivalNotice)
421
+ throw new Error(`Arrival notice doesn't exists.`);
422
+ const foundJS = await tx.getRepository(job_sheet_1.JobSheet).findOne({
423
+ where: {
424
+ bizplace: foundArrivalNotice.bizplace,
425
+ arrivalNoticeRefNo: foundArrivalNotice.name
426
+ }
427
+ });
428
+ if (foundJS) {
429
+ await tx
430
+ .getRepository(job_sheet_1.JobSheet)
431
+ .createQueryBuilder()
432
+ .delete()
433
+ .from(job_sheet_1.JobSheet)
434
+ .where('id = :id', { id: foundJS.id })
435
+ .execute();
436
+ }
437
+ const foundOPs = foundArrivalNotice.orderProducts;
438
+ const foundOVs = foundArrivalNotice.orderVass;
439
+ // 1. delete order products
440
+ await tx
441
+ .getRepository(order_product_1.OrderProduct)
442
+ .createQueryBuilder('op')
443
+ .delete()
444
+ .from(order_product_1.OrderProduct)
445
+ .where('arrival_notice_id = :arrivalNoticeId', { arrivalNoticeId: foundArrivalNotice.id })
446
+ .execute();
447
+ // 2. delete order vass
448
+ const vasIds = foundOVs.map((vas) => vas.id);
449
+ if (vasIds.length) {
450
+ await tx.getRepository(order_vas_1.OrderVas).delete({ id: (0, typeorm_1.In)(vasIds) });
451
+ }
452
+ await tx.getRepository(arrival_notice_1.ArrivalNotice).save(Object.assign(Object.assign({}, foundArrivalNotice), { updater: user }));
453
+ // 4. Remove relation with RO if it's cross docking
454
+ if (foundArrivalNotice.crossDocking && ((_a = foundArrivalNotice.releaseGood) === null || _a === void 0 ? void 0 : _a.id)) {
455
+ let releaseGood = foundArrivalNotice.releaseGood;
456
+ releaseGood.arrivalNotice = null;
457
+ releaseGood = await tx.getRepository(release_good_1.ReleaseGood).save(releaseGood);
458
+ await tx.getRepository(arrival_notice_1.ArrivalNotice).delete({ domain, name });
459
+ await (0, release_good_mutation_1.deleteReleaseGood)(tx, releaseGood.name, user, domain);
460
+ }
461
+ else {
462
+ // 5. delete GAN
463
+ await tx.getRepository(arrival_notice_1.ArrivalNotice).delete({ domain, name });
464
+ }
465
+ return true;
466
+ }
467
+ catch (e) {
468
+ console.log(e);
469
+ }
470
+ }
471
+ exports.deleteArrivalNotice = deleteArrivalNotice;
472
+ async function generateArrivalNoticeFunction(_, arrivalNotice, fromPo, files, context, tx) {
473
+ const { domain, user } = context.state;
474
+ let orderProducts = arrivalNotice.orderProducts;
475
+ let orderVass = arrivalNotice.orderVass;
476
+ let myBizplace;
477
+ let orderNo = '';
478
+ const settingRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(setting_base_1.Setting)) || (0, typeorm_1.getRepository)(setting_base_1.Setting);
479
+ if (arrivalNotice.bizplace)
480
+ myBizplace = arrivalNotice.bizplace;
481
+ else if (arrivalNotice.customerBizplaceId) {
482
+ const permittedBizplaces = await (0, biz_base_1.getPermittedBizplaces)(domain, user);
483
+ let foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == arrivalNotice.customerBizplaceId);
484
+ if (!foundPermittedBizplace)
485
+ throw new Error(`This user does not permitted for this company`);
486
+ myBizplace = arrivalNotice.customerBizplaceId;
487
+ }
488
+ else if (arrivalNotice.partnerBizplaceId) {
489
+ const permittedBizplaces = await (0, biz_base_1.getPermittedBizplaces)(domain, user);
490
+ let foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == arrivalNotice.partnerBizplaceId);
491
+ if (!foundPermittedBizplace)
492
+ throw new Error(`This user does not permitted for this company`);
493
+ myBizplace = arrivalNotice.partnerBizplaceId;
494
+ }
495
+ else if (arrivalNotice.warehouseId)
496
+ myBizplace = await (0, biz_base_1.getOutletBizplace)(arrivalNotice.warehouseId);
497
+ else
498
+ myBizplace = await (0, biz_base_1.getMyBizplace)(domain, user);
499
+ // Add validation for decimal quantities
500
+ for (let patch of orderProducts) {
501
+ // Get product details to check isInventoryDecimal
502
+ const product = (await tx.getRepository(product_base_1.Product).findOne({
503
+ where: { id: patch.product.id }
504
+ }));
505
+ if (!product) {
506
+ throw new Error(`Product not found for ID: ${patch.product.id}`);
507
+ }
508
+ // Validate packQty based on isInventoryDecimal flag
509
+ const validatePackQty = (qty) => {
510
+ if (qty === null || qty === undefined)
511
+ return true;
512
+ const numQty = Number(qty);
513
+ if (isNaN(numQty))
514
+ return false;
515
+ if (product.isInventoryDecimal) {
516
+ // For decimal products, check if decimal places <= 3
517
+ const decimalPlaces = (numQty.toString().split('.')[1] || '').length;
518
+ return decimalPlaces <= 3;
519
+ }
520
+ else {
521
+ // For non-decimal products, check if it's a whole number
522
+ return numQty === Math.floor(numQty);
523
+ }
524
+ };
525
+ // Validate only packQty
526
+ if (!validatePackQty(patch.packQty)) {
527
+ throw new Error(`Invalid pack quantity for product ${product.name} (SKU: ${product.sku}). ${product.isInventoryDecimal
528
+ ? 'Decimal quantities must have at most 3 decimal places'
529
+ : 'Only whole numbers are allowed'}`);
530
+ }
531
+ // Check for existing LotID in Inventory
532
+ let foundInventoryPallet = await tx.getRepository(warehouse_base_1.Inventory).findOne({
533
+ where: {
534
+ domain,
535
+ palletId: patch.palletId
536
+ }
537
+ });
538
+ if (patch.palletId) {
539
+ // Check for existing LotID in OrderProduct
540
+ let foundOrderProductsPallet = await tx.getRepository(order_product_1.OrderProduct).find({
541
+ where: {
542
+ domain,
543
+ palletId: patch.palletId
544
+ }
545
+ });
546
+ // Check for existing LotID in ArrivalNotice
547
+ let arrivalNotices = await Promise.all(foundOrderProductsPallet.map(async (product) => {
548
+ return await tx.getRepository(arrival_notice_1.ArrivalNotice).findOne({
549
+ where: {
550
+ id: product.arrivalNoticeId
551
+ }
552
+ });
553
+ }));
554
+ //Allow the reuse if PalletID if all the entered products has at least one of the conditions
555
+ let allProductsValid = foundOrderProductsPallet.every((product, index) => {
556
+ let arrivalNotice = arrivalNotices[index];
557
+ return product.status === 'REJECTED' || product.issue || (arrivalNotice && arrivalNotice.status === 'CANCELLED');
558
+ });
559
+ if (!allProductsValid || foundInventoryPallet) {
560
+ throw new Error(i18next_1.default.t('Lot ID is already in use. Please enter a new Lot ID.'));
561
+ }
562
+ }
563
+ }
564
+ // find GAN number rule setting
565
+ const ganNoSetting = await settingRepo.findOne({
566
+ where: {
567
+ domain,
568
+ name: constants_1.ORDER_NUMBER_SETTING_KEY.GAN_NUMBER_RULE
569
+ }
570
+ });
571
+ if (ganNoSetting) {
572
+ orderNo = await (0, id_rule_base_1.generateId)({ domain, type: constants_1.ORDER_NUMBER_RULE_TYPE.GAN_NUMBER, seed: {} });
573
+ }
574
+ else {
575
+ orderNo = order_no_generator_1.OrderNoGenerator.arrivalNotice();
576
+ }
577
+ // 1. Create arrival notice
578
+ const createdArrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).save(Object.assign(Object.assign({}, arrivalNotice), { name: orderNo, domain, bizplace: myBizplace, looseItem: (arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.looseItem) ? arrivalNotice.looseItem : false, status: fromPo ? constants_1.ORDER_STATUS.INTRANSIT : constants_1.ORDER_STATUS.PENDING, creator: user, updater: user }));
579
+ // 2. Create arrival notice product
580
+ await addArrivalNoticeProducts(domain, createdArrivalNotice, orderProducts.map((op) => {
581
+ return Object.assign(Object.assign({}, op), { status: fromPo ? constants_1.ORDER_PRODUCT_STATUS.INTRANSIT : constants_1.ORDER_PRODUCT_STATUS.PENDING });
582
+ }), user, tx);
583
+ await (0, job_sheet_mutation_1.generateJobSheet)(domain, user, createdArrivalNotice, tx);
584
+ // 3. Create arrival notice vas
585
+ if (orderVass === null || orderVass === void 0 ? void 0 : orderVass.length) {
586
+ orderVass = await Promise.all(orderVass.map(async (ov) => {
587
+ if (ov.targetProduct) {
588
+ ov.targetProduct = await tx.getRepository(product_base_1.Product).findOne(ov.targetProduct.id);
589
+ }
590
+ return Object.assign(Object.assign({}, ov), { domain, bizplace: myBizplace, name: order_no_generator_1.OrderNoGenerator.orderVas(), vas: await tx.getRepository(vas_1.Vas).findOne({ domain, id: ov.vas.id }), type: constants_1.ORDER_TYPES.ARRIVAL_NOTICE, arrivalNotice: createdArrivalNotice, status: fromPo ? constants_1.ORDER_VAS_STATUS.INTRANSIT : constants_1.ORDER_VAS_STATUS.PENDING, creator: user, updater: user });
591
+ }));
592
+ await tx.getRepository(order_vas_1.OrderVas).save(orderVass);
593
+ }
594
+ if (files === null || files === void 0 ? void 0 : files.length) {
595
+ const attachments = files.map(attachment => {
596
+ return {
597
+ file: attachment,
598
+ refBy: createdArrivalNotice.id,
599
+ category: attachment_type_1.ATTACHMENT_TYPE.GAN
600
+ };
601
+ });
602
+ await (0, attachment_base_1.createAttachments)(_, { attachments }, context);
603
+ }
604
+ return createdArrivalNotice;
605
+ }
606
+ exports.generateArrivalNoticeFunction = generateArrivalNoticeFunction;
607
+ async function confirmArrivalNoticeFunction(name, context, tx) {
608
+ var _a, _b;
609
+ try {
610
+ const { user, domain } = context.state;
611
+ const foundArrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).findOne({
612
+ where: { domain, name, status: constants_1.ORDER_STATUS.PENDING },
613
+ relations: [
614
+ 'bizplace',
615
+ 'bizplace.domain',
616
+ 'releaseGood',
617
+ 'orderProducts',
618
+ 'orderProducts.product',
619
+ 'orderVass',
620
+ 'orderVass.vas',
621
+ 'creator',
622
+ 'updater'
623
+ ]
624
+ });
625
+ let foundOPs = foundArrivalNotice.orderProducts;
626
+ let foundOVs = foundArrivalNotice.orderVass;
627
+ let customerBizplace = foundArrivalNotice.bizplace;
628
+ let opStatus = constants_1.ORDER_PRODUCT_STATUS.PENDING_RECEIVE;
629
+ let anStatus = constants_1.ORDER_STATUS.PENDING_RECEIVE;
630
+ let ovStatus = constants_1.ORDER_VAS_STATUS.PENDING_RECEIVE;
631
+ let acceptedByUser = null;
632
+ let acceptedTime = null;
633
+ const ganProcessingSetting = await tx.getRepository(setting_base_1.Setting).findOne({
634
+ where: { domain, category: 'id-rule', name: 'gan-order-processing' }
635
+ });
636
+ const partnerGanProcessingSetting = await tx.getRepository(setting_base_1.PartnerSetting).findOne({
637
+ where: { setting: ganProcessingSetting, domain, partnerDomain: customerBizplace === null || customerBizplace === void 0 ? void 0 : customerBizplace.domain }
638
+ });
639
+ // If status of GAN is PENDING_RECEIVE then directly to assign warehouse
640
+ if (ganProcessingSetting) {
641
+ let setting = !isNaN(partnerGanProcessingSetting === null || partnerGanProcessingSetting === void 0 ? void 0 : partnerGanProcessingSetting.value)
642
+ ? partnerGanProcessingSetting === null || partnerGanProcessingSetting === void 0 ? void 0 : partnerGanProcessingSetting.value
643
+ : ganProcessingSetting.value;
644
+ // CONFIRM to assign if setting value is 1
645
+ if (setting == 1) {
646
+ opStatus = constants_1.ORDER_PRODUCT_STATUS.ARRIVED;
647
+ anStatus = constants_1.ORDER_STATUS.ARRIVED;
648
+ ovStatus = constants_1.ORDER_VAS_STATUS.ARRIVED;
649
+ acceptedByUser = user;
650
+ acceptedTime = new Date();
651
+ }
652
+ }
653
+ if (!foundArrivalNotice)
654
+ throw new Error(`Arrival notice doesn't exists.`);
655
+ // 1. GAN Status change (PENDING => PENDING_RECEIVE)
656
+ await tx.getRepository(arrival_notice_1.ArrivalNotice).update({ id: foundArrivalNotice.id }, {
657
+ status: anStatus,
658
+ updater: user,
659
+ acceptedBy: acceptedByUser,
660
+ acceptedAt: acceptedTime
661
+ });
662
+ let arrivalNotice = await tx
663
+ .getRepository(arrival_notice_1.ArrivalNotice)
664
+ .findOne({ where: { id: foundArrivalNotice.id }, relations: ['bizplace', 'domain'] });
665
+ await tx
666
+ .getRepository(order_product_1.OrderProduct)
667
+ .createQueryBuilder()
668
+ .update(order_product_1.OrderProduct)
669
+ .set({ status: opStatus })
670
+ .whereInIds(foundOPs.map(op => op.id))
671
+ .execute();
672
+ // 2. Update order vas status if it exists.
673
+ if (foundOVs && foundOVs.length) {
674
+ foundOVs = foundOVs.map((ov) => {
675
+ return Object.assign(Object.assign({}, ov), { status: ovStatus });
676
+ });
677
+ await tx.getRepository(order_vas_1.OrderVas).save(foundOVs);
678
+ }
679
+ // notification logics
680
+ // get Office Admin Users
681
+ if (((_a = context === null || context === void 0 ? void 0 : context.state) === null || _a === void 0 ? void 0 : _a.type) != 'api') {
682
+ const users = await tx
683
+ .getRepository('users_roles')
684
+ .createQueryBuilder('ur')
685
+ .select('ur.users_id', 'id')
686
+ .where(qb => {
687
+ const subQuery = qb
688
+ .subQuery()
689
+ .select('role.id')
690
+ .from(auth_base_1.Role, 'role')
691
+ .where("role.name = 'Office Admin'")
692
+ .andWhere('role.domain_id = :domain', { domain: domain.id })
693
+ .getQuery();
694
+ return 'ur.roles_id IN ' + subQuery;
695
+ })
696
+ .getRawMany();
697
+ // send notification to Office Admin Users
698
+ if ((users === null || users === void 0 ? void 0 : users.length) && ((_b = context.header) === null || _b === void 0 ? void 0 : _b.referer)) {
699
+ const receivers = users.map(user => user.id);
700
+ const msg = {
701
+ title: `New Arrival Notice from ${customerBizplace.name}`,
702
+ body: `New incoming order, ${foundArrivalNotice.name} is pending for receiving`,
703
+ url: context.header.referer,
704
+ data: { url: context.header.referer }
705
+ };
706
+ /**
707
+ * @notes Temporary off sendNotification due to suspect of causing wms down
708
+ */
709
+ (0, notification_1.sendNotification)({
710
+ receivers,
711
+ message: Object.assign({}, msg)
712
+ });
713
+ }
714
+ }
715
+ return arrivalNotice;
716
+ }
717
+ catch (e) {
718
+ console.log(e);
719
+ }
720
+ }
721
+ exports.confirmArrivalNoticeFunction = confirmArrivalNoticeFunction;
722
+ async function receiveArrivalNoticeFunction(_, name, context) {
723
+ var _a;
724
+ const { user, domain, tx } = context.state;
725
+ try {
726
+ const foundArrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).findOne({
727
+ where: { domain, name, status: constants_1.ORDER_STATUS.PENDING_RECEIVE },
728
+ relations: ['bizplace', 'bizplace.domain', 'collectionOrders', 'orderProducts', 'orderVass']
729
+ });
730
+ let foundOPs = foundArrivalNotice.orderProducts;
731
+ let foundOVs = foundArrivalNotice.orderVass;
732
+ let foundCOs = await tx.getRepository(collection_order_1.CollectionOrder).find({
733
+ where: { domain, refNo: foundArrivalNotice.name }
734
+ });
735
+ let customerBizplace = foundArrivalNotice.bizplace;
736
+ let opStatus = constants_1.ORDER_PRODUCT_STATUS.INTRANSIT;
737
+ let anStatus = constants_1.ORDER_STATUS.INTRANSIT;
738
+ let ovStatus = constants_1.ORDER_VAS_STATUS.INTRANSIT;
739
+ let coStatus = constants_1.ORDER_STATUS.READY_TO_DISPATCH;
740
+ const ganProcessingSetting = await tx.getRepository(setting_base_1.Setting).findOne({
741
+ where: { domain, category: 'id-rule', name: 'gan-order-processing' }
742
+ });
743
+ const partnerGanProcessingSetting = await tx.getRepository(setting_base_1.PartnerSetting).findOne({
744
+ where: { setting: ganProcessingSetting, domain, partnerDomain: customerBizplace === null || customerBizplace === void 0 ? void 0 : customerBizplace.domain }
745
+ });
746
+ // If status of GAN is INTRANSIT then directly to assign warehouse
747
+ if (ganProcessingSetting) {
748
+ let setting = !isNaN(partnerGanProcessingSetting === null || partnerGanProcessingSetting === void 0 ? void 0 : partnerGanProcessingSetting.value)
749
+ ? partnerGanProcessingSetting === null || partnerGanProcessingSetting === void 0 ? void 0 : partnerGanProcessingSetting.value
750
+ : ganProcessingSetting.value;
751
+ // RECEIVE to assign if setting value is 2
752
+ if (setting == 2) {
753
+ opStatus = constants_1.ORDER_PRODUCT_STATUS.ARRIVED;
754
+ anStatus = constants_1.ORDER_STATUS.ARRIVED;
755
+ ovStatus = constants_1.ORDER_VAS_STATUS.ARRIVED;
756
+ coStatus = constants_1.ORDER_STATUS.READY_TO_DISPATCH;
757
+ }
758
+ }
759
+ if (!foundArrivalNotice)
760
+ throw new Error(`Arrival notice doesn't exists.`);
761
+ // 1. Update status of order products (PENDING_RECEIVE => INTRANSIT)
762
+ foundOPs = foundOPs.map((op) => {
763
+ return Object.assign(Object.assign({}, op), { status: opStatus, updater: user });
764
+ });
765
+ await tx.getRepository(order_product_1.OrderProduct).save(foundOPs);
766
+ // 2. Update status of order vass if it exists (PENDING_RECEIVE => INTRANSIT)
767
+ if (foundOVs && foundOVs.length) {
768
+ foundOVs = foundOVs.map((ov) => {
769
+ return Object.assign(Object.assign({}, ov), { status: ovStatus, updater: user });
770
+ });
771
+ await tx.getRepository(order_vas_1.OrderVas).save(foundOVs);
772
+ }
773
+ // 3. If there's collection order, update status of collection order (PENDING_RECEIVE => READY_TO_DISPATCH)
774
+ if (foundCOs) {
775
+ foundCOs = foundCOs.map((co) => {
776
+ return Object.assign(Object.assign({}, co), { status: coStatus, updater: user });
777
+ });
778
+ }
779
+ // notification logics
780
+ const users = await (0, biz_base_1.getDomainUsers)(foundArrivalNotice === null || foundArrivalNotice === void 0 ? void 0 : foundArrivalNotice.bizplace, tx);
781
+ // send notification to Customer Users
782
+ if ((users === null || users === void 0 ? void 0 : users.length) && ((_a = context.header) === null || _a === void 0 ? void 0 : _a.referer)) {
783
+ const receivers = users.map(user => user.id);
784
+ const msg = {
785
+ title: `Latest status for ${foundArrivalNotice.name}`,
786
+ body: `Your GAN has been received and processed by ${domain.name}`,
787
+ url: context.header.referer,
788
+ data: { url: context.header.referer }
789
+ };
790
+ /**
791
+ * @notes Temporary off sendNotification due to suspect of causing wms down
792
+ */
793
+ // await sendNotification({
794
+ // receivers,
795
+ // message: { ...msg }
796
+ // })
797
+ }
798
+ // 4. Update status of arrival notice (PENDING_RECEIVE => INTRANSIT)
799
+ let rcvArrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).save(Object.assign(Object.assign({}, foundArrivalNotice), { status: anStatus, acceptedBy: user, acceptedAt: new Date(), updater: user }));
800
+ return foundArrivalNotice;
801
+ }
802
+ catch (e) {
803
+ throw e;
804
+ }
805
+ }
806
+ exports.receiveArrivalNoticeFunction = receiveArrivalNoticeFunction;
807
+ async function checkArrivedNoticeFunction(name, context, tx) {
808
+ var _a;
809
+ const { user, domain } = context.state;
810
+ try {
811
+ const foundArrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).findOne({
812
+ where: { domain, name, status: constants_1.ORDER_STATUS.INTRANSIT },
813
+ relations: ['bizplace', 'collectionOrders', 'orderProducts', 'orderVass']
814
+ });
815
+ debug('ganNo', name, foundArrivalNotice);
816
+ if (!foundArrivalNotice)
817
+ throw new Error(`Arrival notice doesn't exists.`);
818
+ // 1. Check wheter related collection order is done or not
819
+ const foundCOs = foundArrivalNotice.collectionOrders;
820
+ if (foundCOs && foundCOs.length) {
821
+ foundCOs.map((co) => {
822
+ if (co.status !== constants_1.ORDER_STATUS.DONE) {
823
+ throw new Error(`Collection Order: ${co.name} is not finished yet.`);
824
+ }
825
+ });
826
+ }
827
+ let foundOPs = foundArrivalNotice.orderProducts;
828
+ let foundOVs = foundArrivalNotice.orderVass;
829
+ // 2. Update status of order products (INTRANSIT => ARRIVED)
830
+ foundOPs = foundOPs.map((op) => {
831
+ return Object.assign(Object.assign({}, op), { status: constants_1.ORDER_PRODUCT_STATUS.ARRIVED, updater: user });
832
+ });
833
+ await tx.getRepository(order_product_1.OrderProduct).save(foundOPs);
834
+ // 3. Update status of order vass if it exists (INTRANSIT => ARRIVED)
835
+ if (foundOVs && foundOVs.length) {
836
+ foundOVs = foundOVs.map((ov) => {
837
+ return Object.assign(Object.assign({}, ov), { status: constants_1.ORDER_VAS_STATUS.ARRIVED, updater: user });
838
+ });
839
+ await tx.getRepository(order_vas_1.OrderVas).save(foundOVs);
840
+ }
841
+ // 4. Update status of arrival notice (INTRANSIT => ARRIVED)
842
+ await tx.getRepository(arrival_notice_1.ArrivalNotice).save(Object.assign(Object.assign({}, foundArrivalNotice), { status: constants_1.ORDER_STATUS.ARRIVED, updater: user }));
843
+ // notification logics
844
+ const users = await (0, biz_base_1.getDomainUsers)(foundArrivalNotice === null || foundArrivalNotice === void 0 ? void 0 : foundArrivalNotice.bizplace, tx);
845
+ if ((users === null || users === void 0 ? void 0 : users.length) && ((_a = context.header) === null || _a === void 0 ? void 0 : _a.referer)) {
846
+ const receivers = users.map(user => user.id);
847
+ const msg = {
848
+ title: `Latest status for ${foundArrivalNotice.name}`,
849
+ body: `Your goods has safely arrived at ${domain.name}`,
850
+ url: context.header.referer,
851
+ data: { url: context.header.referer }
852
+ };
853
+ /**
854
+ * @notes Temporary off sendNotification due to suspect of causing wms down
855
+ */
856
+ // await sendNotification({
857
+ // receivers,
858
+ // message: { ...msg }
859
+ // })
860
+ }
861
+ return foundArrivalNotice;
862
+ }
863
+ catch (e) {
864
+ throw e;
865
+ }
866
+ }
867
+ exports.checkArrivedNoticeFunction = checkArrivedNoticeFunction;
868
+ async function rejectArrivalNotice(tx, name, remark, context) {
869
+ var _a;
870
+ const { user, domain } = context.state;
871
+ const foundArrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).findOne({
872
+ where: { domain, name, status: constants_1.ORDER_STATUS.PENDING_RECEIVE },
873
+ relations: ['bizplace', 'orderProducts', 'orderVass', 'collectionOrders']
874
+ });
875
+ if (!foundArrivalNotice)
876
+ throw new Error(`Arrival notice doesn't exists.`);
877
+ if (!remark)
878
+ throw new Error('Remark is not exist.');
879
+ let foundOPs = foundArrivalNotice.orderProducts;
880
+ let foundOVs = foundArrivalNotice.orderVass;
881
+ let foundCOs = foundArrivalNotice.collectionOrders;
882
+ // 1. Update status of order products (PENDING_RECEIVE => REJECTED)
883
+ foundOPs = foundOPs.map((op) => {
884
+ op.status = constants_1.ORDER_PRODUCT_STATUS.REJECTED;
885
+ op.updater = user;
886
+ return op;
887
+ });
888
+ await tx.getRepository(order_product_1.OrderProduct).save(foundOPs);
889
+ // 2. Update status of order vass if it exists (PENDING_RECEIVE => REJECTED)
890
+ if (foundOVs && foundOVs.length) {
891
+ foundOVs = foundOVs.map((ov) => {
892
+ ov.status = constants_1.ORDER_VAS_STATUS.REJECTED;
893
+ ov.updater = user;
894
+ return ov;
895
+ });
896
+ await tx.getRepository(order_vas_1.OrderVas).save(foundOVs);
897
+ }
898
+ // 3. If there's collection order, update status of collection order (PENDING_RECEIVE => REJECTED)
899
+ if (foundCOs) {
900
+ foundCOs = foundCOs.map((co) => {
901
+ co.status = constants_1.ORDER_STATUS.REJECTED;
902
+ co.updater = user;
903
+ return co;
904
+ });
905
+ await tx.getRepository(collection_order_1.CollectionOrder).save(foundCOs);
906
+ }
907
+ foundArrivalNotice.remark = remark;
908
+ foundArrivalNotice.status = constants_1.ORDER_STATUS.REJECTED;
909
+ foundArrivalNotice.updater = user;
910
+ await tx.getRepository(arrival_notice_1.ArrivalNotice).save(foundArrivalNotice);
911
+ // notification logics
912
+ const users = await (0, biz_base_1.getDomainUsers)(foundArrivalNotice === null || foundArrivalNotice === void 0 ? void 0 : foundArrivalNotice.bizplace, tx);
913
+ // send notification to Customer Users
914
+ if ((users === null || users === void 0 ? void 0 : users.length) && ((_a = context.header) === null || _a === void 0 ? void 0 : _a.referer)) {
915
+ const receivers = users.map(user => user.id);
916
+ const msg = {
917
+ title: `Latest status for ${foundArrivalNotice.name}`,
918
+ body: `Your GAN has been rejected.`,
919
+ url: context.header.referer,
920
+ data: { url: context.header.referer }
921
+ };
922
+ /**
923
+ * @notes Temporary off sendNotification due to suspect of causing wms down
924
+ */
925
+ // await sendNotification({
926
+ // receivers,
927
+ // message: { ...msg }
928
+ // })
929
+ }
930
+ return foundArrivalNotice;
931
+ }
932
+ exports.rejectArrivalNotice = rejectArrivalNotice;
933
+ async function addArrivalNoticeProducts(domain, arrivalNotice, newOrderProducts, user, tx) {
934
+ var _a, _b;
935
+ const orderProductRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(order_product_1.OrderProduct)) || (0, typeorm_1.getRepository)(order_product_1.OrderProduct);
936
+ if (!(arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.bizplace) || !((_a = arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.orderProducts) === null || _a === void 0 ? void 0 : _a.length)) {
937
+ arrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).findOne({
938
+ where: { domain, name: arrivalNotice.name },
939
+ relations: ['bizplace', 'orderProducts']
940
+ });
941
+ }
942
+ let createdOrderProducts = [];
943
+ for (let index = 0; index < newOrderProducts.length; index++) {
944
+ const op = newOrderProducts[index];
945
+ createdOrderProducts.push({
946
+ name: order_no_generator_1.OrderNoGenerator.orderProduct(),
947
+ product_id: op.product.id,
948
+ product_detail_id: op.productDetail.id,
949
+ batch_id: op.batchId,
950
+ batch_id_ref: op.batchIdRef,
951
+ packing_type: op.packingType,
952
+ packing_size: op.packingSize,
953
+ uom: op.uom,
954
+ uom_value: op.uomValue || 0,
955
+ pack_qty: op.packQty || 0,
956
+ total_uom_value: op.totalUomValue,
957
+ pallet_qty: op.palletQty,
958
+ pallet_id: op.palletId,
959
+ unit_price: op.unitPrice,
960
+ remark: op.remark,
961
+ manufacture_date: op.manufactureDate,
962
+ status: op.status,
963
+ adjusted_batch_id: op.adjustedBatchId,
964
+ adjusted_batch_id_ref: op.adjustedBatchIdRef,
965
+ adjusted_packing_type: op.adjustedPackingType,
966
+ adjusted_uom_value: op.adjustedUomValue,
967
+ adjusted_uom: op.adjustedUom,
968
+ adjusted_pack_qty: op.adjustedPackQty,
969
+ adjusted_total_uom_value: op.adjustedTotalUomValue,
970
+ adjusted_pallet_qty: op.adjustedPalletQty,
971
+ adjusted_unit_price: op.adjustedUnitPrice,
972
+ domain_id: domain.id,
973
+ bizplace_id: (arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.bizplaceId) || ((_b = arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.bizplace) === null || _b === void 0 ? void 0 : _b.id) || (arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.bizplace),
974
+ arrival_notice_id: arrivalNotice.id,
975
+ creator_id: user.id,
976
+ updater_id: user.id
977
+ });
978
+ }
979
+ await orderProductRepo.query(`
980
+ INSERT INTO order_products ("name", "product_detail_id", "product_id", "batch_id", "batch_id_ref", "packing_type", "packing_size", "uom", "uom_value", "pack_qty", "total_uom_value", "pallet_qty", "pallet_id", "unit_price", "remark", "manufacture_date", "status",
981
+ "adjusted_batch_id", "adjusted_batch_id_ref", "adjusted_packing_type", "adjusted_uom_value", "adjusted_uom", "adjusted_pack_qty", "adjusted_total_uom_value", "adjusted_pallet_qty", "adjusted_unit_price",
982
+ "domain_id", "bizplace_id", "arrival_notice_id", "creator_id", "updater_id")
983
+ SELECT "name", "product_detail_id", "product_id", "batch_id", "batch_id_ref", "packing_type", "packing_size", "uom", "uom_value", "pack_qty", "total_uom_value", "pallet_qty", "pallet_id", "unit_price", "remark", "manufacture_date", "status",
984
+ "adjusted_batch_id", "adjusted_batch_id_ref", "adjusted_packing_type", "adjusted_uom_value", "adjusted_uom", "adjusted_pack_qty", "adjusted_total_uom_value", "adjusted_pallet_qty", "adjusted_unit_price",
985
+ "domain_id", "bizplace_id", "arrival_notice_id", "creator_id", "updater_id"
986
+ FROM JSON_POPULATE_RECORDSET(NULL::order_products, $1) op
987
+ `, [JSON.stringify(createdOrderProducts)]);
988
+ }
989
+ exports.addArrivalNoticeProducts = addArrivalNoticeProducts;
990
+ async function editArrivalNoticeProducts(existingOrderProducts, user, tx) {
991
+ const orderProductRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(order_product_1.OrderProduct)) || (0, typeorm_1.getRepository)(order_product_1.OrderProduct);
992
+ const updatedOrderProducts = await Promise.all(existingOrderProducts.map(async (op) => {
993
+ return Object.assign(Object.assign({}, op), { status: constants_1.ORDER_PRODUCT_STATUS.EDITED, updater: user });
994
+ }));
995
+ debug('gan-updated-order-products', updatedOrderProducts);
996
+ await orderProductRepo.save(updatedOrderProducts);
997
+ }
998
+ exports.editArrivalNoticeProducts = editArrivalNoticeProducts;
999
+ function extractArrivalNotices(rawArrivalNotices) {
1000
+ return rawArrivalNotices.reduce((arrivalNotices, raw) => {
1001
+ // discard the item that has no productId or productDetailId
1002
+ if (!raw.productId || !raw.productDetailId)
1003
+ return;
1004
+ const idx = arrivalNotices.findIndex(an => {
1005
+ // consider these attributes if they are exist in "item"
1006
+ const comparison = [
1007
+ 'refNo2',
1008
+ 'refNo3',
1009
+ 'truckNo',
1010
+ 'ownTransport',
1011
+ 'container',
1012
+ 'containerNo',
1013
+ 'containerSize',
1014
+ 'looseItem',
1015
+ 'importCargo'
1016
+ ];
1017
+ let a = {}, b = {};
1018
+ comparison.forEach(cc => {
1019
+ if (raw[cc] !== null) {
1020
+ a[cc] = raw[cc];
1021
+ b[cc] = an[cc];
1022
+ }
1023
+ });
1024
+ a = JSON.stringify(Object.fromEntries(Object.entries(a).sort()));
1025
+ b = JSON.stringify(Object.fromEntries(Object.entries(b).sort()));
1026
+ return an.refNo == raw.refNo && an.etaDate == raw.etaDate && a === b;
1027
+ });
1028
+ const product = Object.assign(new product_base_1.Product(), { id: raw.productId, sku: raw.sku });
1029
+ const productDetail = Object.assign(new product_base_1.ProductDetail(), { id: raw.productDetailId });
1030
+ const orderProduct = {
1031
+ product,
1032
+ productDetail,
1033
+ batchId: raw.batchId,
1034
+ batchIdRef: raw.batchIdRef,
1035
+ packingType: raw.packingType,
1036
+ packingSize: raw.packingSize,
1037
+ packQty: raw.packQty,
1038
+ uomValue: raw.uomValue,
1039
+ uom: raw.uom,
1040
+ totalUomValue: raw.totalUomValue,
1041
+ palletQty: raw.palletQty,
1042
+ palletId: raw.palletId,
1043
+ unitPrice: raw.unitPrice,
1044
+ manufactureDate: raw.manufactureDate
1045
+ };
1046
+ if (idx >= 0) {
1047
+ const duplicateSkuIdx = arrivalNotices[idx].orderProducts.findIndex(op => op.sku === raw.sku &&
1048
+ op.packingType === raw.packingType &&
1049
+ op.packingSize === raw.packingSize &&
1050
+ op.batchId === raw.batchId);
1051
+ if (duplicateSkuIdx >= 0)
1052
+ arrivalNotices[idx].orderProducts[duplicateSkuIdx].packQty += raw.packQty;
1053
+ else
1054
+ arrivalNotices[idx].orderProducts.push(orderProduct);
1055
+ }
1056
+ else {
1057
+ arrivalNotices.push({
1058
+ refNo: raw.refNo,
1059
+ refNo2: raw.refNo2,
1060
+ refNo3: raw.refNo3,
1061
+ etaDate: raw.etaDate,
1062
+ truckNo: raw.truckNo,
1063
+ ownTransport: raw.ownTransport,
1064
+ container: raw.container,
1065
+ containerNo: raw.containerNo,
1066
+ containerSize: raw.containerSize,
1067
+ importCargo: raw.importCargo,
1068
+ looseItem: raw.looseItem,
1069
+ orderProducts: [orderProduct]
1070
+ });
1071
+ }
1072
+ return arrivalNotices;
1073
+ }, []);
1074
+ }
1075
+ function formRawArrivalNotices(arrivalNotice, errorMsg) {
1076
+ let rawArrivalNotices = [];
1077
+ for (let i = 0, l = arrivalNotice.orderProducts.length; i < l; i++) {
1078
+ let rawArrivalNotice = Object.assign(Object.assign(Object.assign({}, arrivalNotice), arrivalNotice.orderProducts[i]), { sku: arrivalNotice.orderProducts[i].product.sku, errorMsg });
1079
+ delete rawArrivalNotice.orderProducts;
1080
+ delete rawArrivalNotice.product;
1081
+ rawArrivalNotices.push(rawArrivalNotice);
1082
+ }
1083
+ return rawArrivalNotices;
1084
+ }
1085
+ //# sourceMappingURL=arrival-notice-mutation.js.map