@things-factory/sales-base 4.3.647 → 4.3.651

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/package.json +5 -5
  2. package/server/utils/inventory-util.ts +1 -1
  3. package/dist-server/constants/attachment-type.js +0 -15
  4. package/dist-server/constants/attachment-type.js.map +0 -1
  5. package/dist-server/constants/index.js +0 -24
  6. package/dist-server/constants/index.js.map +0 -1
  7. package/dist-server/constants/load-type.js +0 -8
  8. package/dist-server/constants/load-type.js.map +0 -1
  9. package/dist-server/constants/order.js +0 -235
  10. package/dist-server/constants/order.js.map +0 -1
  11. package/dist-server/constants/product-group-type.js +0 -8
  12. package/dist-server/constants/product-group-type.js.map +0 -1
  13. package/dist-server/constants/release-good.js +0 -13
  14. package/dist-server/constants/release-good.js.map +0 -1
  15. package/dist-server/constants/transfer-order-type.js +0 -9
  16. package/dist-server/constants/transfer-order-type.js.map +0 -1
  17. package/dist-server/constants/validation-error-code.js +0 -7
  18. package/dist-server/constants/validation-error-code.js.map +0 -1
  19. package/dist-server/constants/vas-target-type.js +0 -26
  20. package/dist-server/constants/vas-target-type.js.map +0 -1
  21. package/dist-server/controllers/ecommerce/ecommerce-controller.js +0 -138
  22. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +0 -1
  23. package/dist-server/controllers/ecommerce/index.js +0 -21
  24. package/dist-server/controllers/ecommerce/index.js.map +0 -1
  25. package/dist-server/controllers/ecommerce/powrup-controller.js +0 -690
  26. package/dist-server/controllers/ecommerce/powrup-controller.js.map +0 -1
  27. package/dist-server/controllers/ecommerce/sellercraft-controller.js +0 -148
  28. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +0 -1
  29. package/dist-server/controllers/ecommerce/webspert-controller.js +0 -237
  30. package/dist-server/controllers/ecommerce/webspert-controller.js.map +0 -1
  31. package/dist-server/controllers/index.js +0 -19
  32. package/dist-server/controllers/index.js.map +0 -1
  33. package/dist-server/controllers/order-controller.js +0 -244
  34. package/dist-server/controllers/order-controller.js.map +0 -1
  35. package/dist-server/errors/index.js +0 -18
  36. package/dist-server/errors/index.js.map +0 -1
  37. package/dist-server/errors/validation-error.js +0 -41
  38. package/dist-server/errors/validation-error.js.map +0 -1
  39. package/dist-server/index.js +0 -30
  40. package/dist-server/index.js.map +0 -1
  41. package/dist-server/migrations/index.js +0 -12
  42. package/dist-server/migrations/index.js.map +0 -1
  43. package/dist-server/service/arrival-notice/arrival-notice-mutation.js +0 -1085
  44. package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +0 -1
  45. package/dist-server/service/arrival-notice/arrival-notice-query.js +0 -634
  46. package/dist-server/service/arrival-notice/arrival-notice-query.js.map +0 -1
  47. package/dist-server/service/arrival-notice/arrival-notice-types.js +0 -443
  48. package/dist-server/service/arrival-notice/arrival-notice-types.js.map +0 -1
  49. package/dist-server/service/arrival-notice/arrival-notice.js +0 -259
  50. package/dist-server/service/arrival-notice/arrival-notice.js.map +0 -1
  51. package/dist-server/service/arrival-notice/index.js +0 -25
  52. package/dist-server/service/arrival-notice/index.js.map +0 -1
  53. package/dist-server/service/claim/claim-mutation.js +0 -243
  54. package/dist-server/service/claim/claim-mutation.js.map +0 -1
  55. package/dist-server/service/claim/claim-query.js +0 -165
  56. package/dist-server/service/claim/claim-query.js.map +0 -1
  57. package/dist-server/service/claim/claim-types.js +0 -191
  58. package/dist-server/service/claim/claim-types.js.map +0 -1
  59. package/dist-server/service/claim/claim.js +0 -176
  60. package/dist-server/service/claim/claim.js.map +0 -1
  61. package/dist-server/service/claim/index.js +0 -25
  62. package/dist-server/service/claim/index.js.map +0 -1
  63. package/dist-server/service/claim-detail/claim-detail-mutation.js +0 -110
  64. package/dist-server/service/claim-detail/claim-detail-mutation.js.map +0 -1
  65. package/dist-server/service/claim-detail/claim-detail-query.js +0 -90
  66. package/dist-server/service/claim-detail/claim-detail-query.js.map +0 -1
  67. package/dist-server/service/claim-detail/claim-detail-types.js +0 -81
  68. package/dist-server/service/claim-detail/claim-detail-types.js.map +0 -1
  69. package/dist-server/service/claim-detail/claim-detail.js +0 -102
  70. package/dist-server/service/claim-detail/claim-detail.js.map +0 -1
  71. package/dist-server/service/claim-detail/index.js +0 -25
  72. package/dist-server/service/claim-detail/index.js.map +0 -1
  73. package/dist-server/service/claim-order/claim-order-mutation.js +0 -110
  74. package/dist-server/service/claim-order/claim-order-mutation.js.map +0 -1
  75. package/dist-server/service/claim-order/claim-order-query.js +0 -86
  76. package/dist-server/service/claim-order/claim-order-query.js.map +0 -1
  77. package/dist-server/service/claim-order/claim-order-types.js +0 -65
  78. package/dist-server/service/claim-order/claim-order-types.js.map +0 -1
  79. package/dist-server/service/claim-order/claim-order.js +0 -104
  80. package/dist-server/service/claim-order/claim-order.js.map +0 -1
  81. package/dist-server/service/claim-order/index.js +0 -25
  82. package/dist-server/service/claim-order/index.js.map +0 -1
  83. package/dist-server/service/collection-order/collection-order-mutation.js +0 -241
  84. package/dist-server/service/collection-order/collection-order-mutation.js.map +0 -1
  85. package/dist-server/service/collection-order/collection-order-query.js +0 -125
  86. package/dist-server/service/collection-order/collection-order-query.js.map +0 -1
  87. package/dist-server/service/collection-order/collection-order-types.js +0 -241
  88. package/dist-server/service/collection-order/collection-order-types.js.map +0 -1
  89. package/dist-server/service/collection-order/collection-order.js +0 -183
  90. package/dist-server/service/collection-order/collection-order.js.map +0 -1
  91. package/dist-server/service/collection-order/index.js +0 -25
  92. package/dist-server/service/collection-order/index.js.map +0 -1
  93. package/dist-server/service/delivery-order/delivery-order-mutation.js +0 -746
  94. package/dist-server/service/delivery-order/delivery-order-mutation.js.map +0 -1
  95. package/dist-server/service/delivery-order/delivery-order-query.js +0 -570
  96. package/dist-server/service/delivery-order/delivery-order-query.js.map +0 -1
  97. package/dist-server/service/delivery-order/delivery-order-types.js +0 -397
  98. package/dist-server/service/delivery-order/delivery-order-types.js.map +0 -1
  99. package/dist-server/service/delivery-order/delivery-order.js +0 -365
  100. package/dist-server/service/delivery-order/delivery-order.js.map +0 -1
  101. package/dist-server/service/delivery-order/index.js +0 -25
  102. package/dist-server/service/delivery-order/index.js.map +0 -1
  103. package/dist-server/service/draft-release-good/draft-release-good-create.js +0 -647
  104. package/dist-server/service/draft-release-good/draft-release-good-create.js.map +0 -1
  105. package/dist-server/service/draft-release-good/draft-release-good-mutation.js +0 -486
  106. package/dist-server/service/draft-release-good/draft-release-good-mutation.js.map +0 -1
  107. package/dist-server/service/draft-release-good/draft-release-good-query.js +0 -366
  108. package/dist-server/service/draft-release-good/draft-release-good-query.js.map +0 -1
  109. package/dist-server/service/draft-release-good/draft-release-good-type.js +0 -424
  110. package/dist-server/service/draft-release-good/draft-release-good-type.js.map +0 -1
  111. package/dist-server/service/draft-release-good/draft-release-good.js +0 -444
  112. package/dist-server/service/draft-release-good/draft-release-good.js.map +0 -1
  113. package/dist-server/service/draft-release-good/index.js +0 -29
  114. package/dist-server/service/draft-release-good/index.js.map +0 -1
  115. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js +0 -140
  116. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js.map +0 -1
  117. package/dist-server/service/goods-receival-note/goods-receival-note-query.js +0 -273
  118. package/dist-server/service/goods-receival-note/goods-receival-note-query.js.map +0 -1
  119. package/dist-server/service/goods-receival-note/goods-receival-note-types.js +0 -159
  120. package/dist-server/service/goods-receival-note/goods-receival-note-types.js.map +0 -1
  121. package/dist-server/service/goods-receival-note/goods-receival-note.js +0 -156
  122. package/dist-server/service/goods-receival-note/goods-receival-note.js.map +0 -1
  123. package/dist-server/service/goods-receival-note/index.js +0 -25
  124. package/dist-server/service/goods-receival-note/index.js.map +0 -1
  125. package/dist-server/service/index.js +0 -282
  126. package/dist-server/service/index.js.map +0 -1
  127. package/dist-server/service/inventory-check/index.js +0 -25
  128. package/dist-server/service/inventory-check/index.js.map +0 -1
  129. package/dist-server/service/inventory-check/inventory-check-mutation.js +0 -151
  130. package/dist-server/service/inventory-check/inventory-check-mutation.js.map +0 -1
  131. package/dist-server/service/inventory-check/inventory-check-query.js +0 -138
  132. package/dist-server/service/inventory-check/inventory-check-query.js.map +0 -1
  133. package/dist-server/service/inventory-check/inventory-check-types.js +0 -82
  134. package/dist-server/service/inventory-check/inventory-check-types.js.map +0 -1
  135. package/dist-server/service/inventory-check/inventory-check.js +0 -115
  136. package/dist-server/service/inventory-check/inventory-check.js.map +0 -1
  137. package/dist-server/service/inventory-check-item/index.js +0 -25
  138. package/dist-server/service/inventory-check-item/index.js.map +0 -1
  139. package/dist-server/service/inventory-check-item/inventory-check-item-mutation.js +0 -120
  140. package/dist-server/service/inventory-check-item/inventory-check-item-mutation.js.map +0 -1
  141. package/dist-server/service/inventory-check-item/inventory-check-item-query.js +0 -196
  142. package/dist-server/service/inventory-check-item/inventory-check-item-query.js.map +0 -1
  143. package/dist-server/service/inventory-check-item/inventory-check-item-types.js +0 -157
  144. package/dist-server/service/inventory-check-item/inventory-check-item-types.js.map +0 -1
  145. package/dist-server/service/inventory-check-item/inventory-check-item.js +0 -273
  146. package/dist-server/service/inventory-check-item/inventory-check-item.js.map +0 -1
  147. package/dist-server/service/invoice/index.js +0 -25
  148. package/dist-server/service/invoice/index.js.map +0 -1
  149. package/dist-server/service/invoice/invoice-mutation.js +0 -105
  150. package/dist-server/service/invoice/invoice-mutation.js.map +0 -1
  151. package/dist-server/service/invoice/invoice-query.js +0 -94
  152. package/dist-server/service/invoice/invoice-query.js.map +0 -1
  153. package/dist-server/service/invoice/invoice-types.js +0 -388
  154. package/dist-server/service/invoice/invoice-types.js.map +0 -1
  155. package/dist-server/service/invoice/invoice.js +0 -312
  156. package/dist-server/service/invoice/invoice.js.map +0 -1
  157. package/dist-server/service/invoice-product/index.js +0 -25
  158. package/dist-server/service/invoice-product/index.js.map +0 -1
  159. package/dist-server/service/invoice-product/invoice-product-mutation.js +0 -70
  160. package/dist-server/service/invoice-product/invoice-product-mutation.js.map +0 -1
  161. package/dist-server/service/invoice-product/invoice-product-query.js +0 -95
  162. package/dist-server/service/invoice-product/invoice-product-query.js.map +0 -1
  163. package/dist-server/service/invoice-product/invoice-product-types.js +0 -131
  164. package/dist-server/service/invoice-product/invoice-product-types.js.map +0 -1
  165. package/dist-server/service/invoice-product/invoice-product.js +0 -130
  166. package/dist-server/service/invoice-product/invoice-product.js.map +0 -1
  167. package/dist-server/service/job-sheet/index.js +0 -25
  168. package/dist-server/service/job-sheet/index.js.map +0 -1
  169. package/dist-server/service/job-sheet/job-sheet-mutation.js +0 -93
  170. package/dist-server/service/job-sheet/job-sheet-mutation.js.map +0 -1
  171. package/dist-server/service/job-sheet/job-sheet-query.js +0 -134
  172. package/dist-server/service/job-sheet/job-sheet-query.js.map +0 -1
  173. package/dist-server/service/job-sheet/job-sheet-types.js +0 -113
  174. package/dist-server/service/job-sheet/job-sheet-types.js.map +0 -1
  175. package/dist-server/service/job-sheet/job-sheet.js +0 -132
  176. package/dist-server/service/job-sheet/job-sheet.js.map +0 -1
  177. package/dist-server/service/manifest/index.js +0 -9
  178. package/dist-server/service/manifest/index.js.map +0 -1
  179. package/dist-server/service/manifest/manifest-mutation.js +0 -264
  180. package/dist-server/service/manifest/manifest-mutation.js.map +0 -1
  181. package/dist-server/service/manifest/manifest-query.js +0 -228
  182. package/dist-server/service/manifest/manifest-query.js.map +0 -1
  183. package/dist-server/service/manifest/manifest-type.js +0 -183
  184. package/dist-server/service/manifest/manifest-type.js.map +0 -1
  185. package/dist-server/service/manifest/manifest.js +0 -134
  186. package/dist-server/service/manifest/manifest.js.map +0 -1
  187. package/dist-server/service/order-consignment/index.js +0 -9
  188. package/dist-server/service/order-consignment/index.js.map +0 -1
  189. package/dist-server/service/order-consignment/order-consignment-mutation.js +0 -120
  190. package/dist-server/service/order-consignment/order-consignment-mutation.js.map +0 -1
  191. package/dist-server/service/order-consignment/order-consignment-query.js +0 -87
  192. package/dist-server/service/order-consignment/order-consignment-query.js.map +0 -1
  193. package/dist-server/service/order-consignment/order-consignment-type.js +0 -69
  194. package/dist-server/service/order-consignment/order-consignment-type.js.map +0 -1
  195. package/dist-server/service/order-consignment/order-consignment.js +0 -115
  196. package/dist-server/service/order-consignment/order-consignment.js.map +0 -1
  197. package/dist-server/service/order-inventory/index.js +0 -25
  198. package/dist-server/service/order-inventory/index.js.map +0 -1
  199. package/dist-server/service/order-inventory/order-inventory-mutation.js +0 -80
  200. package/dist-server/service/order-inventory/order-inventory-mutation.js.map +0 -1
  201. package/dist-server/service/order-inventory/order-inventory-query.js +0 -592
  202. package/dist-server/service/order-inventory/order-inventory-query.js.map +0 -1
  203. package/dist-server/service/order-inventory/order-inventory-types.js +0 -341
  204. package/dist-server/service/order-inventory/order-inventory-types.js.map +0 -1
  205. package/dist-server/service/order-inventory/order-inventory.js +0 -785
  206. package/dist-server/service/order-inventory/order-inventory.js.map +0 -1
  207. package/dist-server/service/order-package/index.js +0 -9
  208. package/dist-server/service/order-package/index.js.map +0 -1
  209. package/dist-server/service/order-package/order-package-mutation.js +0 -120
  210. package/dist-server/service/order-package/order-package-mutation.js.map +0 -1
  211. package/dist-server/service/order-package/order-package-query.js +0 -142
  212. package/dist-server/service/order-package/order-package-query.js.map +0 -1
  213. package/dist-server/service/order-package/order-package-types.js +0 -113
  214. package/dist-server/service/order-package/order-package-types.js.map +0 -1
  215. package/dist-server/service/order-package/order-package.js +0 -229
  216. package/dist-server/service/order-package/order-package.js.map +0 -1
  217. package/dist-server/service/order-package-item/index.js +0 -9
  218. package/dist-server/service/order-package-item/index.js.map +0 -1
  219. package/dist-server/service/order-package-item/order-package-item-mutation.js +0 -120
  220. package/dist-server/service/order-package-item/order-package-item-mutation.js.map +0 -1
  221. package/dist-server/service/order-package-item/order-package-item-query.js +0 -127
  222. package/dist-server/service/order-package-item/order-package-item-query.js.map +0 -1
  223. package/dist-server/service/order-package-item/order-package-item-types.js +0 -99
  224. package/dist-server/service/order-package-item/order-package-item-types.js.map +0 -1
  225. package/dist-server/service/order-package-item/order-package-item.js +0 -162
  226. package/dist-server/service/order-package-item/order-package-item.js.map +0 -1
  227. package/dist-server/service/order-product/index.js +0 -25
  228. package/dist-server/service/order-product/index.js.map +0 -1
  229. package/dist-server/service/order-product/order-product-mutation.js +0 -74
  230. package/dist-server/service/order-product/order-product-mutation.js.map +0 -1
  231. package/dist-server/service/order-product/order-product-query.js +0 -125
  232. package/dist-server/service/order-product/order-product-query.js.map +0 -1
  233. package/dist-server/service/order-product/order-product-types.js +0 -489
  234. package/dist-server/service/order-product/order-product-types.js.map +0 -1
  235. package/dist-server/service/order-product/order-product.js +0 -559
  236. package/dist-server/service/order-product/order-product.js.map +0 -1
  237. package/dist-server/service/order-tote/index.js +0 -25
  238. package/dist-server/service/order-tote/index.js.map +0 -1
  239. package/dist-server/service/order-tote/order-tote-mutation.js +0 -56
  240. package/dist-server/service/order-tote/order-tote-mutation.js.map +0 -1
  241. package/dist-server/service/order-tote/order-tote-query.js +0 -123
  242. package/dist-server/service/order-tote/order-tote-query.js.map +0 -1
  243. package/dist-server/service/order-tote/order-tote-types.js +0 -79
  244. package/dist-server/service/order-tote/order-tote-types.js.map +0 -1
  245. package/dist-server/service/order-tote/order-tote.js +0 -92
  246. package/dist-server/service/order-tote/order-tote.js.map +0 -1
  247. package/dist-server/service/order-tote-item/index.js +0 -25
  248. package/dist-server/service/order-tote-item/index.js.map +0 -1
  249. package/dist-server/service/order-tote-item/order-tote-item-mutation.js +0 -56
  250. package/dist-server/service/order-tote-item/order-tote-item-mutation.js.map +0 -1
  251. package/dist-server/service/order-tote-item/order-tote-item-query.js +0 -100
  252. package/dist-server/service/order-tote-item/order-tote-item-query.js.map +0 -1
  253. package/dist-server/service/order-tote-item/order-tote-item-types.js +0 -91
  254. package/dist-server/service/order-tote-item/order-tote-item-types.js.map +0 -1
  255. package/dist-server/service/order-tote-item/order-tote-item.js +0 -118
  256. package/dist-server/service/order-tote-item/order-tote-item.js.map +0 -1
  257. package/dist-server/service/order-tote-seal/index.js +0 -25
  258. package/dist-server/service/order-tote-seal/index.js.map +0 -1
  259. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js +0 -56
  260. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js.map +0 -1
  261. package/dist-server/service/order-tote-seal/order-tote-seal-query.js +0 -97
  262. package/dist-server/service/order-tote-seal/order-tote-seal-query.js.map +0 -1
  263. package/dist-server/service/order-tote-seal/order-tote-seal-types.js +0 -71
  264. package/dist-server/service/order-tote-seal/order-tote-seal-types.js.map +0 -1
  265. package/dist-server/service/order-tote-seal/order-tote-seal.js +0 -71
  266. package/dist-server/service/order-tote-seal/order-tote-seal.js.map +0 -1
  267. package/dist-server/service/order-vas/index.js +0 -25
  268. package/dist-server/service/order-vas/index.js.map +0 -1
  269. package/dist-server/service/order-vas/order-vas-mutation.js +0 -148
  270. package/dist-server/service/order-vas/order-vas-mutation.js.map +0 -1
  271. package/dist-server/service/order-vas/order-vas-query.js +0 -148
  272. package/dist-server/service/order-vas/order-vas-query.js.map +0 -1
  273. package/dist-server/service/order-vas/order-vas-types.js +0 -348
  274. package/dist-server/service/order-vas/order-vas-types.js.map +0 -1
  275. package/dist-server/service/order-vas/order-vas.js +0 -476
  276. package/dist-server/service/order-vas/order-vas.js.map +0 -1
  277. package/dist-server/service/order-vas-item/index.js +0 -9
  278. package/dist-server/service/order-vas-item/index.js.map +0 -1
  279. package/dist-server/service/order-vas-item/order-vas-item-mutation.js +0 -164
  280. package/dist-server/service/order-vas-item/order-vas-item-mutation.js.map +0 -1
  281. package/dist-server/service/order-vas-item/order-vas-item-query.js +0 -99
  282. package/dist-server/service/order-vas-item/order-vas-item-query.js.map +0 -1
  283. package/dist-server/service/order-vas-item/order-vas-item-type.js +0 -131
  284. package/dist-server/service/order-vas-item/order-vas-item-type.js.map +0 -1
  285. package/dist-server/service/order-vas-item/order-vas-item.js +0 -166
  286. package/dist-server/service/order-vas-item/order-vas-item.js.map +0 -1
  287. package/dist-server/service/others/index.js +0 -21
  288. package/dist-server/service/others/index.js.map +0 -1
  289. package/dist-server/service/others/other-query.js +0 -536
  290. package/dist-server/service/others/other-query.js.map +0 -1
  291. package/dist-server/service/others/other-types.js +0 -181
  292. package/dist-server/service/others/other-types.js.map +0 -1
  293. package/dist-server/service/purchase-order/index.js +0 -25
  294. package/dist-server/service/purchase-order/index.js.map +0 -1
  295. package/dist-server/service/purchase-order/purchase-order-mutation.js +0 -398
  296. package/dist-server/service/purchase-order/purchase-order-mutation.js.map +0 -1
  297. package/dist-server/service/purchase-order/purchase-order-query.js +0 -126
  298. package/dist-server/service/purchase-order/purchase-order-query.js.map +0 -1
  299. package/dist-server/service/purchase-order/purchase-order-types.js +0 -240
  300. package/dist-server/service/purchase-order/purchase-order-types.js.map +0 -1
  301. package/dist-server/service/purchase-order/purchase-order.js +0 -236
  302. package/dist-server/service/purchase-order/purchase-order.js.map +0 -1
  303. package/dist-server/service/purchase-order-other-charge/index.js +0 -25
  304. package/dist-server/service/purchase-order-other-charge/index.js.map +0 -1
  305. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js +0 -56
  306. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js.map +0 -1
  307. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js +0 -87
  308. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js.map +0 -1
  309. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-types.js +0 -77
  310. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-types.js.map +0 -1
  311. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js +0 -101
  312. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js.map +0 -1
  313. package/dist-server/service/release-good/index.js +0 -25
  314. package/dist-server/service/release-good/index.js.map +0 -1
  315. package/dist-server/service/release-good/release-good-mutation.js +0 -1598
  316. package/dist-server/service/release-good/release-good-mutation.js.map +0 -1
  317. package/dist-server/service/release-good/release-good-query.js +0 -1131
  318. package/dist-server/service/release-good/release-good-query.js.map +0 -1
  319. package/dist-server/service/release-good/release-good-types.js +0 -1043
  320. package/dist-server/service/release-good/release-good-types.js.map +0 -1
  321. package/dist-server/service/release-good/release-good.js +0 -817
  322. package/dist-server/service/release-good/release-good.js.map +0 -1
  323. package/dist-server/service/release-good-logs/index.js +0 -11
  324. package/dist-server/service/release-good-logs/index.js.map +0 -1
  325. package/dist-server/service/release-good-logs/release-good-logs-mutation.js +0 -126
  326. package/dist-server/service/release-good-logs/release-good-logs-mutation.js.map +0 -1
  327. package/dist-server/service/release-good-logs/release-good-logs-query.js +0 -71
  328. package/dist-server/service/release-good-logs/release-good-logs-query.js.map +0 -1
  329. package/dist-server/service/release-good-logs/release-good-logs-type.js +0 -65
  330. package/dist-server/service/release-good-logs/release-good-logs-type.js.map +0 -1
  331. package/dist-server/service/release-good-logs/release-good-logs.js +0 -96
  332. package/dist-server/service/release-good-logs/release-good-logs.js.map +0 -1
  333. package/dist-server/service/replenishment/index.js +0 -9
  334. package/dist-server/service/replenishment/index.js.map +0 -1
  335. package/dist-server/service/replenishment/replenishment-mutation.js +0 -234
  336. package/dist-server/service/replenishment/replenishment-mutation.js.map +0 -1
  337. package/dist-server/service/replenishment/replenishment-query.js +0 -185
  338. package/dist-server/service/replenishment/replenishment-query.js.map +0 -1
  339. package/dist-server/service/replenishment/replenishment-type.js +0 -119
  340. package/dist-server/service/replenishment/replenishment-type.js.map +0 -1
  341. package/dist-server/service/replenishment/replenishment.js +0 -114
  342. package/dist-server/service/replenishment/replenishment.js.map +0 -1
  343. package/dist-server/service/retail-replenishment-order/index.js +0 -25
  344. package/dist-server/service/retail-replenishment-order/index.js.map +0 -1
  345. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js +0 -314
  346. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js.map +0 -1
  347. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js +0 -89
  348. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js.map +0 -1
  349. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js +0 -148
  350. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js.map +0 -1
  351. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js +0 -141
  352. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js.map +0 -1
  353. package/dist-server/service/return-order/index.js +0 -25
  354. package/dist-server/service/return-order/index.js.map +0 -1
  355. package/dist-server/service/return-order/return-order-mutation.js +0 -451
  356. package/dist-server/service/return-order/return-order-mutation.js.map +0 -1
  357. package/dist-server/service/return-order/return-order-query.js +0 -243
  358. package/dist-server/service/return-order/return-order-query.js.map +0 -1
  359. package/dist-server/service/return-order/return-order-types.js +0 -274
  360. package/dist-server/service/return-order/return-order-types.js.map +0 -1
  361. package/dist-server/service/return-order/return-order.js +0 -159
  362. package/dist-server/service/return-order/return-order.js.map +0 -1
  363. package/dist-server/service/reverse-kitting-order/index.js +0 -25
  364. package/dist-server/service/reverse-kitting-order/index.js.map +0 -1
  365. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js +0 -407
  366. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js.map +0 -1
  367. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js +0 -222
  368. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js.map +0 -1
  369. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js +0 -230
  370. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js.map +0 -1
  371. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js +0 -145
  372. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js.map +0 -1
  373. package/dist-server/service/reverse-kitting-order-inventory/index.js +0 -25
  374. package/dist-server/service/reverse-kitting-order-inventory/index.js.map +0 -1
  375. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js +0 -130
  376. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js.map +0 -1
  377. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js +0 -87
  378. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js.map +0 -1
  379. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js +0 -143
  380. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js.map +0 -1
  381. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js +0 -178
  382. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js.map +0 -1
  383. package/dist-server/service/shipping-order/index.js +0 -25
  384. package/dist-server/service/shipping-order/index.js.map +0 -1
  385. package/dist-server/service/shipping-order/shipping-order-mutation.js +0 -78
  386. package/dist-server/service/shipping-order/shipping-order-mutation.js.map +0 -1
  387. package/dist-server/service/shipping-order/shipping-order-query.js +0 -96
  388. package/dist-server/service/shipping-order/shipping-order-query.js.map +0 -1
  389. package/dist-server/service/shipping-order/shipping-order-types.js +0 -137
  390. package/dist-server/service/shipping-order/shipping-order-types.js.map +0 -1
  391. package/dist-server/service/shipping-order/shipping-order.js +0 -165
  392. package/dist-server/service/shipping-order/shipping-order.js.map +0 -1
  393. package/dist-server/service/transfer-order/index.js +0 -25
  394. package/dist-server/service/transfer-order/index.js.map +0 -1
  395. package/dist-server/service/transfer-order/transfer-order-mutation.js +0 -252
  396. package/dist-server/service/transfer-order/transfer-order-mutation.js.map +0 -1
  397. package/dist-server/service/transfer-order/transfer-order-query.js +0 -104
  398. package/dist-server/service/transfer-order/transfer-order-query.js.map +0 -1
  399. package/dist-server/service/transfer-order/transfer-order-types.js +0 -148
  400. package/dist-server/service/transfer-order/transfer-order-types.js.map +0 -1
  401. package/dist-server/service/transfer-order/transfer-order.js +0 -146
  402. package/dist-server/service/transfer-order/transfer-order.js.map +0 -1
  403. package/dist-server/service/vas/index.js +0 -25
  404. package/dist-server/service/vas/index.js.map +0 -1
  405. package/dist-server/service/vas/vas-mutation.js +0 -560
  406. package/dist-server/service/vas/vas-mutation.js.map +0 -1
  407. package/dist-server/service/vas/vas-query.js +0 -114
  408. package/dist-server/service/vas/vas-query.js.map +0 -1
  409. package/dist-server/service/vas/vas-types.js +0 -113
  410. package/dist-server/service/vas/vas-types.js.map +0 -1
  411. package/dist-server/service/vas/vas.js +0 -114
  412. package/dist-server/service/vas/vas.js.map +0 -1
  413. package/dist-server/service/vas-order/index.js +0 -25
  414. package/dist-server/service/vas-order/index.js.map +0 -1
  415. package/dist-server/service/vas-order/vas-order-mutation.js +0 -241
  416. package/dist-server/service/vas-order/vas-order-mutation.js.map +0 -1
  417. package/dist-server/service/vas-order/vas-order-query.js +0 -151
  418. package/dist-server/service/vas-order/vas-order-query.js.map +0 -1
  419. package/dist-server/service/vas-order/vas-order-types.js +0 -83
  420. package/dist-server/service/vas-order/vas-order-types.js.map +0 -1
  421. package/dist-server/service/vas-order/vas-order.js +0 -104
  422. package/dist-server/service/vas-order/vas-order.js.map +0 -1
  423. package/dist-server/utils/datetime-util.js +0 -82
  424. package/dist-server/utils/datetime-util.js.map +0 -1
  425. package/dist-server/utils/index.js +0 -20
  426. package/dist-server/utils/index.js.map +0 -1
  427. package/dist-server/utils/inventory-util.js +0 -1098
  428. package/dist-server/utils/inventory-util.js.map +0 -1
  429. package/dist-server/utils/order-no-generator.js +0 -112
  430. package/dist-server/utils/order-no-generator.js.map +0 -1
@@ -1,1085 +0,0 @@
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