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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/dist-server/constants/order.js +4 -1
  2. package/dist-server/constants/order.js.map +1 -1
  3. package/dist-server/constants/release-good.js +5 -1
  4. package/dist-server/constants/release-good.js.map +1 -1
  5. package/dist-server/controllers/ecommerce/ecommerce-controller.js +1 -1
  6. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
  7. package/dist-server/controllers/ecommerce/sellercraft-controller.js +102 -94
  8. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  9. package/dist-server/controllers/order-controller.js +7 -5
  10. package/dist-server/controllers/order-controller.js.map +1 -1
  11. package/dist-server/service/arrival-notice/arrival-notice-mutation.js +152 -65
  12. package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
  13. package/dist-server/service/arrival-notice/arrival-notice-query.js +15 -16
  14. package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -1
  15. package/dist-server/service/arrival-notice/arrival-notice-types.js +1 -2
  16. package/dist-server/service/arrival-notice/arrival-notice-types.js.map +1 -1
  17. package/dist-server/service/arrival-notice/arrival-notice.js +7 -7
  18. package/dist-server/service/arrival-notice/arrival-notice.js.map +1 -1
  19. package/dist-server/service/claim/claim-mutation.js +15 -14
  20. package/dist-server/service/claim/claim-mutation.js.map +1 -1
  21. package/dist-server/service/claim/claim-query.js +8 -10
  22. package/dist-server/service/claim/claim-query.js.map +1 -1
  23. package/dist-server/service/claim/claim.js +7 -7
  24. package/dist-server/service/claim/claim.js.map +1 -1
  25. package/dist-server/service/claim-detail/claim-detail-mutation.js +9 -8
  26. package/dist-server/service/claim-detail/claim-detail-mutation.js.map +1 -1
  27. package/dist-server/service/claim-detail/claim-detail-query.js +9 -10
  28. package/dist-server/service/claim-detail/claim-detail-query.js.map +1 -1
  29. package/dist-server/service/claim-detail/claim-detail.js +3 -4
  30. package/dist-server/service/claim-detail/claim-detail.js.map +1 -1
  31. package/dist-server/service/claim-order/claim-order-mutation.js +9 -8
  32. package/dist-server/service/claim-order/claim-order-mutation.js.map +1 -1
  33. package/dist-server/service/claim-order/claim-order-query.js +9 -10
  34. package/dist-server/service/claim-order/claim-order-query.js.map +1 -1
  35. package/dist-server/service/claim-order/claim-order.js +3 -4
  36. package/dist-server/service/claim-order/claim-order.js.map +1 -1
  37. package/dist-server/service/collection-order/collection-order-mutation.js +15 -14
  38. package/dist-server/service/collection-order/collection-order-mutation.js.map +1 -1
  39. package/dist-server/service/collection-order/collection-order-query.js +14 -14
  40. package/dist-server/service/collection-order/collection-order-query.js.map +1 -1
  41. package/dist-server/service/collection-order/collection-order-types.js +4 -5
  42. package/dist-server/service/collection-order/collection-order-types.js.map +1 -1
  43. package/dist-server/service/collection-order/collection-order.js +7 -7
  44. package/dist-server/service/collection-order/collection-order.js.map +1 -1
  45. package/dist-server/service/delivery-order/delivery-order-mutation.js +138 -51
  46. package/dist-server/service/delivery-order/delivery-order-mutation.js.map +1 -1
  47. package/dist-server/service/delivery-order/delivery-order-query.js +51 -38
  48. package/dist-server/service/delivery-order/delivery-order-query.js.map +1 -1
  49. package/dist-server/service/delivery-order/delivery-order-types.js +22 -3
  50. package/dist-server/service/delivery-order/delivery-order-types.js.map +1 -1
  51. package/dist-server/service/delivery-order/delivery-order.js +92 -7
  52. package/dist-server/service/delivery-order/delivery-order.js.map +1 -1
  53. package/dist-server/service/draft-release-good/draft-release-good-mutation.js +157 -143
  54. package/dist-server/service/draft-release-good/draft-release-good-mutation.js.map +1 -1
  55. package/dist-server/service/draft-release-good/draft-release-good-query.js +54 -24
  56. package/dist-server/service/draft-release-good/draft-release-good-query.js.map +1 -1
  57. package/dist-server/service/draft-release-good/draft-release-good-type.js +3 -4
  58. package/dist-server/service/draft-release-good/draft-release-good-type.js.map +1 -1
  59. package/dist-server/service/draft-release-good/draft-release-good.js +11 -6
  60. package/dist-server/service/draft-release-good/draft-release-good.js.map +1 -1
  61. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js +12 -11
  62. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js.map +1 -1
  63. package/dist-server/service/goods-receival-note/goods-receival-note-query.js +104 -12
  64. package/dist-server/service/goods-receival-note/goods-receival-note-query.js.map +1 -1
  65. package/dist-server/service/goods-receival-note/goods-receival-note-types.js +67 -4
  66. package/dist-server/service/goods-receival-note/goods-receival-note-types.js.map +1 -1
  67. package/dist-server/service/goods-receival-note/goods-receival-note.js +46 -5
  68. package/dist-server/service/goods-receival-note/goods-receival-note.js.map +1 -1
  69. package/dist-server/service/inventory-check/inventory-check-mutation.js +6 -6
  70. package/dist-server/service/inventory-check/inventory-check-mutation.js.map +1 -1
  71. package/dist-server/service/inventory-check/inventory-check-query.js +8 -10
  72. package/dist-server/service/inventory-check/inventory-check-query.js.map +1 -1
  73. package/dist-server/service/inventory-check/inventory-check.js +5 -5
  74. package/dist-server/service/inventory-check/inventory-check.js.map +1 -1
  75. package/dist-server/service/invoice/invoice-mutation.js +5 -5
  76. package/dist-server/service/invoice/invoice-mutation.js.map +1 -1
  77. package/dist-server/service/invoice/invoice-query.js +7 -9
  78. package/dist-server/service/invoice/invoice-query.js.map +1 -1
  79. package/dist-server/service/invoice/invoice-types.js +2 -3
  80. package/dist-server/service/invoice/invoice-types.js.map +1 -1
  81. package/dist-server/service/invoice/invoice.js +3 -4
  82. package/dist-server/service/invoice/invoice.js.map +1 -1
  83. package/dist-server/service/invoice-product/invoice-product-mutation.js +1 -1
  84. package/dist-server/service/invoice-product/invoice-product-mutation.js.map +1 -1
  85. package/dist-server/service/invoice-product/invoice-product-query.js +7 -9
  86. package/dist-server/service/invoice-product/invoice-product-query.js.map +1 -1
  87. package/dist-server/service/invoice-product/invoice-product.js +5 -5
  88. package/dist-server/service/invoice-product/invoice-product.js.map +1 -1
  89. package/dist-server/service/job-sheet/job-sheet-mutation.js +5 -5
  90. package/dist-server/service/job-sheet/job-sheet-mutation.js.map +1 -1
  91. package/dist-server/service/job-sheet/job-sheet-query.js +6 -8
  92. package/dist-server/service/job-sheet/job-sheet-query.js.map +1 -1
  93. package/dist-server/service/job-sheet/job-sheet.js +5 -5
  94. package/dist-server/service/job-sheet/job-sheet.js.map +1 -1
  95. package/dist-server/service/manifest/manifest-mutation.js +84 -4
  96. package/dist-server/service/manifest/manifest-mutation.js.map +1 -1
  97. package/dist-server/service/manifest/manifest-query.js +52 -19
  98. package/dist-server/service/manifest/manifest-query.js.map +1 -1
  99. package/dist-server/service/manifest/manifest-type.js +8 -0
  100. package/dist-server/service/manifest/manifest-type.js.map +1 -1
  101. package/dist-server/service/manifest/manifest.js +8 -4
  102. package/dist-server/service/manifest/manifest.js.map +1 -1
  103. package/dist-server/service/order-inventory/order-inventory-mutation.js +3 -3
  104. package/dist-server/service/order-inventory/order-inventory-mutation.js.map +1 -1
  105. package/dist-server/service/order-inventory/order-inventory-query.js +202 -221
  106. package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
  107. package/dist-server/service/order-inventory/order-inventory-types.js +15 -15
  108. package/dist-server/service/order-inventory/order-inventory-types.js.map +1 -1
  109. package/dist-server/service/order-inventory/order-inventory.js +45 -15
  110. package/dist-server/service/order-inventory/order-inventory.js.map +1 -1
  111. package/dist-server/service/order-product/order-product-mutation.js +2 -2
  112. package/dist-server/service/order-product/order-product-mutation.js.map +1 -1
  113. package/dist-server/service/order-product/order-product-query.js +44 -14
  114. package/dist-server/service/order-product/order-product-query.js.map +1 -1
  115. package/dist-server/service/order-product/order-product-types.js +18 -19
  116. package/dist-server/service/order-product/order-product-types.js.map +1 -1
  117. package/dist-server/service/order-product/order-product.js +14 -11
  118. package/dist-server/service/order-product/order-product.js.map +1 -1
  119. package/dist-server/service/order-tote/order-tote-mutation.js +2 -2
  120. package/dist-server/service/order-tote/order-tote-mutation.js.map +1 -1
  121. package/dist-server/service/order-tote/order-tote-query.js +13 -14
  122. package/dist-server/service/order-tote/order-tote-query.js.map +1 -1
  123. package/dist-server/service/order-tote/order-tote-types.js +4 -5
  124. package/dist-server/service/order-tote/order-tote-types.js.map +1 -1
  125. package/dist-server/service/order-tote/order-tote.js +6 -5
  126. package/dist-server/service/order-tote/order-tote.js.map +1 -1
  127. package/dist-server/service/order-tote-item/order-tote-item-mutation.js +2 -2
  128. package/dist-server/service/order-tote-item/order-tote-item-mutation.js.map +1 -1
  129. package/dist-server/service/order-tote-item/order-tote-item-query.js +7 -9
  130. package/dist-server/service/order-tote-item/order-tote-item-query.js.map +1 -1
  131. package/dist-server/service/order-tote-item/order-tote-item-types.js +5 -6
  132. package/dist-server/service/order-tote-item/order-tote-item-types.js.map +1 -1
  133. package/dist-server/service/order-tote-item/order-tote-item.js +2 -3
  134. package/dist-server/service/order-tote-item/order-tote-item.js.map +1 -1
  135. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js +2 -2
  136. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js.map +1 -1
  137. package/dist-server/service/order-tote-seal/order-tote-seal-query.js +8 -10
  138. package/dist-server/service/order-tote-seal/order-tote-seal-query.js.map +1 -1
  139. package/dist-server/service/order-tote-seal/order-tote-seal-types.js +2 -3
  140. package/dist-server/service/order-tote-seal/order-tote-seal-types.js.map +1 -1
  141. package/dist-server/service/order-tote-seal/order-tote-seal.js +2 -3
  142. package/dist-server/service/order-tote-seal/order-tote-seal.js.map +1 -1
  143. package/dist-server/service/order-vas/order-vas-mutation.js +1 -1
  144. package/dist-server/service/order-vas/order-vas-mutation.js.map +1 -1
  145. package/dist-server/service/order-vas/order-vas-query.js +8 -10
  146. package/dist-server/service/order-vas/order-vas-query.js.map +1 -1
  147. package/dist-server/service/order-vas/order-vas-types.js +16 -17
  148. package/dist-server/service/order-vas/order-vas-types.js.map +1 -1
  149. package/dist-server/service/order-vas/order-vas.js +7 -7
  150. package/dist-server/service/order-vas/order-vas.js.map +1 -1
  151. package/dist-server/service/others/other-query.js +48 -30
  152. package/dist-server/service/others/other-query.js.map +1 -1
  153. package/dist-server/service/purchase-order/purchase-order-mutation.js +36 -34
  154. package/dist-server/service/purchase-order/purchase-order-mutation.js.map +1 -1
  155. package/dist-server/service/purchase-order/purchase-order-query.js +11 -12
  156. package/dist-server/service/purchase-order/purchase-order-query.js.map +1 -1
  157. package/dist-server/service/purchase-order/purchase-order-types.js +8 -9
  158. package/dist-server/service/purchase-order/purchase-order-types.js.map +1 -1
  159. package/dist-server/service/purchase-order/purchase-order.js +8 -8
  160. package/dist-server/service/purchase-order/purchase-order.js.map +1 -1
  161. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js +1 -1
  162. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js.map +1 -1
  163. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js +9 -10
  164. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js.map +1 -1
  165. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js +3 -4
  166. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js.map +1 -1
  167. package/dist-server/service/release-good/release-good-mutation.js +182 -94
  168. package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
  169. package/dist-server/service/release-good/release-good-query.js +251 -172
  170. package/dist-server/service/release-good/release-good-query.js.map +1 -1
  171. package/dist-server/service/release-good/release-good-types.js +181 -9
  172. package/dist-server/service/release-good/release-good-types.js.map +1 -1
  173. package/dist-server/service/release-good/release-good.js +64 -13
  174. package/dist-server/service/release-good/release-good.js.map +1 -1
  175. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js +19 -14
  176. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js.map +1 -1
  177. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js +8 -10
  178. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js.map +1 -1
  179. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js +6 -7
  180. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js.map +1 -1
  181. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js +5 -5
  182. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js.map +1 -1
  183. package/dist-server/service/return-order/return-order-mutation.js +38 -27
  184. package/dist-server/service/return-order/return-order-mutation.js.map +1 -1
  185. package/dist-server/service/return-order/return-order-query.js +14 -16
  186. package/dist-server/service/return-order/return-order-query.js.map +1 -1
  187. package/dist-server/service/return-order/return-order-types.js +9 -9
  188. package/dist-server/service/return-order/return-order-types.js.map +1 -1
  189. package/dist-server/service/return-order/return-order.js +6 -6
  190. package/dist-server/service/return-order/return-order.js.map +1 -1
  191. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js +17 -13
  192. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js.map +1 -1
  193. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js +13 -14
  194. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js.map +1 -1
  195. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js +9 -9
  196. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js.map +1 -1
  197. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js +8 -8
  198. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js.map +1 -1
  199. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js +4 -4
  200. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js.map +1 -1
  201. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js +7 -9
  202. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js.map +1 -1
  203. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js +4 -5
  204. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js.map +1 -1
  205. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js +7 -7
  206. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js.map +1 -1
  207. package/dist-server/service/shipping-order/shipping-order-mutation.js +2 -2
  208. package/dist-server/service/shipping-order/shipping-order-mutation.js.map +1 -1
  209. package/dist-server/service/shipping-order/shipping-order-query.js +9 -10
  210. package/dist-server/service/shipping-order/shipping-order-query.js.map +1 -1
  211. package/dist-server/service/shipping-order/shipping-order-types.js +21 -1
  212. package/dist-server/service/shipping-order/shipping-order-types.js.map +1 -1
  213. package/dist-server/service/shipping-order/shipping-order.js +27 -7
  214. package/dist-server/service/shipping-order/shipping-order.js.map +1 -1
  215. package/dist-server/service/transfer-order/transfer-order-mutation.js +19 -14
  216. package/dist-server/service/transfer-order/transfer-order-mutation.js.map +1 -1
  217. package/dist-server/service/transfer-order/transfer-order-query.js +8 -10
  218. package/dist-server/service/transfer-order/transfer-order-query.js.map +1 -1
  219. package/dist-server/service/transfer-order/transfer-order-types.js +1 -2
  220. package/dist-server/service/transfer-order/transfer-order-types.js.map +1 -1
  221. package/dist-server/service/transfer-order/transfer-order.js +5 -5
  222. package/dist-server/service/transfer-order/transfer-order.js.map +1 -1
  223. package/dist-server/service/vas/vas-mutation.js +2 -2
  224. package/dist-server/service/vas/vas-mutation.js.map +1 -1
  225. package/dist-server/service/vas/vas-query.js +8 -10
  226. package/dist-server/service/vas/vas-query.js.map +1 -1
  227. package/dist-server/service/vas/vas.js +3 -4
  228. package/dist-server/service/vas/vas.js.map +1 -1
  229. package/dist-server/service/vas-order/vas-order-mutation.js +20 -15
  230. package/dist-server/service/vas-order/vas-order-mutation.js.map +1 -1
  231. package/dist-server/service/vas-order/vas-order-query.js +11 -12
  232. package/dist-server/service/vas-order/vas-order-query.js.map +1 -1
  233. package/dist-server/service/vas-order/vas-order.js +5 -5
  234. package/dist-server/service/vas-order/vas-order.js.map +1 -1
  235. package/dist-server/tsconfig.tsbuildinfo +1 -1
  236. package/dist-server/utils/datetime-util.js +49 -0
  237. package/dist-server/utils/datetime-util.js.map +1 -0
  238. package/dist-server/utils/index.js +1 -0
  239. package/dist-server/utils/index.js.map +1 -1
  240. package/dist-server/utils/inventory-util.js +89 -29
  241. package/dist-server/utils/inventory-util.js.map +1 -1
  242. package/package.json +13 -13
  243. package/server/constants/order.ts +4 -1
  244. package/server/constants/release-good.ts +6 -3
  245. package/server/controllers/ecommerce/ecommerce-controller.ts +1 -1
  246. package/server/controllers/ecommerce/sellercraft-controller.ts +124 -107
  247. package/server/controllers/order-controller.ts +7 -5
  248. package/server/service/arrival-notice/arrival-notice-mutation.ts +204 -91
  249. package/server/service/arrival-notice/arrival-notice-query.ts +17 -17
  250. package/server/service/claim/claim-mutation.ts +20 -14
  251. package/server/service/claim/claim-query.ts +10 -9
  252. package/server/service/claim-detail/claim-detail-mutation.ts +16 -10
  253. package/server/service/claim-detail/claim-detail-query.ts +13 -8
  254. package/server/service/claim-order/claim-order-mutation.ts +16 -10
  255. package/server/service/claim-order/claim-order-query.ts +10 -8
  256. package/server/service/collection-order/collection-order-mutation.ts +31 -32
  257. package/server/service/collection-order/collection-order-query.ts +18 -15
  258. package/server/service/delivery-order/delivery-order-mutation.ts +206 -73
  259. package/server/service/delivery-order/delivery-order-query.ts +90 -53
  260. package/server/service/delivery-order/delivery-order-types.ts +15 -0
  261. package/server/service/delivery-order/delivery-order.ts +68 -0
  262. package/server/service/draft-release-good/draft-release-good-mutation.ts +208 -183
  263. package/server/service/draft-release-good/draft-release-good-query.ts +81 -44
  264. package/server/service/draft-release-good/draft-release-good.ts +7 -3
  265. package/server/service/goods-receival-note/goods-receival-note-mutation.ts +23 -18
  266. package/server/service/goods-receival-note/goods-receival-note-query.ts +126 -15
  267. package/server/service/goods-receival-note/goods-receival-note-types.ts +48 -0
  268. package/server/service/goods-receival-note/goods-receival-note.ts +32 -0
  269. package/server/service/inventory-check/inventory-check-mutation.ts +24 -19
  270. package/server/service/inventory-check/inventory-check-query.ts +10 -9
  271. package/server/service/invoice/invoice-mutation.ts +14 -11
  272. package/server/service/invoice/invoice-query.ts +8 -9
  273. package/server/service/invoice-product/invoice-product-mutation.ts +4 -4
  274. package/server/service/invoice-product/invoice-product-query.ts +8 -9
  275. package/server/service/job-sheet/job-sheet-mutation.ts +12 -10
  276. package/server/service/job-sheet/job-sheet-query.ts +16 -11
  277. package/server/service/manifest/manifest-mutation.ts +93 -8
  278. package/server/service/manifest/manifest-query.ts +73 -23
  279. package/server/service/manifest/manifest-type.ts +6 -0
  280. package/server/service/manifest/manifest.ts +6 -2
  281. package/server/service/order-inventory/order-inventory-mutation.ts +13 -12
  282. package/server/service/order-inventory/order-inventory-query.ts +226 -253
  283. package/server/service/order-inventory/order-inventory.ts +26 -2
  284. package/server/service/order-product/order-product-mutation.ts +11 -10
  285. package/server/service/order-product/order-product-query.ts +55 -18
  286. package/server/service/order-product/order-product.ts +7 -0
  287. package/server/service/order-tote/order-tote-mutation.ts +10 -9
  288. package/server/service/order-tote/order-tote-query.ts +13 -15
  289. package/server/service/order-tote/order-tote.ts +13 -2
  290. package/server/service/order-tote-item/order-tote-item-mutation.ts +10 -9
  291. package/server/service/order-tote-item/order-tote-item-query.ts +12 -18
  292. package/server/service/order-tote-seal/order-tote-seal-mutation.ts +10 -9
  293. package/server/service/order-tote-seal/order-tote-seal-query.ts +10 -11
  294. package/server/service/order-vas/order-vas-mutation.ts +4 -5
  295. package/server/service/order-vas/order-vas-query.ts +10 -9
  296. package/server/service/others/other-query.ts +76 -54
  297. package/server/service/purchase-order/purchase-order-mutation.ts +46 -46
  298. package/server/service/purchase-order/purchase-order-query.ts +13 -11
  299. package/server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.ts +7 -7
  300. package/server/service/purchase-order-other-charge/purchase-order-other-charge-query.ts +14 -9
  301. package/server/service/release-good/release-good-mutation.ts +297 -134
  302. package/server/service/release-good/release-good-query.ts +268 -186
  303. package/server/service/release-good/release-good-types.ts +132 -4
  304. package/server/service/release-good/release-good.ts +55 -24
  305. package/server/service/retail-replenishment-order/retail-replenishment-order-mutation.ts +35 -29
  306. package/server/service/retail-replenishment-order/retail-replenishment-order-query.ts +13 -9
  307. package/server/service/retail-replenishment-order/retail-replenishment-order-types.ts +7 -5
  308. package/server/service/return-order/return-order-mutation.ts +82 -54
  309. package/server/service/return-order/return-order-query.ts +21 -19
  310. package/server/service/reverse-kitting-order/reverse-kitting-order-mutation.ts +38 -23
  311. package/server/service/reverse-kitting-order/reverse-kitting-order-query.ts +19 -16
  312. package/server/service/reverse-kitting-order/reverse-kitting-order.ts +2 -2
  313. package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.ts +9 -9
  314. package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.ts +7 -8
  315. package/server/service/shipping-order/shipping-order-mutation.ts +11 -11
  316. package/server/service/shipping-order/shipping-order-query.ts +13 -11
  317. package/server/service/shipping-order/shipping-order-types.ts +16 -1
  318. package/server/service/shipping-order/shipping-order.ts +18 -2
  319. package/server/service/transfer-order/transfer-order-mutation.ts +34 -25
  320. package/server/service/transfer-order/transfer-order-query.ts +11 -10
  321. package/server/service/vas/vas-mutation.ts +13 -15
  322. package/server/service/vas/vas-query.ts +12 -10
  323. package/server/service/vas-order/vas-order-mutation.ts +38 -28
  324. package/server/service/vas-order/vas-order-query.ts +15 -13
  325. package/server/utils/datetime-util.ts +54 -0
  326. package/server/utils/index.ts +1 -0
  327. package/server/utils/inventory-util.ts +128 -34
  328. package/translations/en.json +4 -0
  329. package/translations/ko.json +6 -2
  330. package/translations/ms.json +5 -1
@@ -1,7 +1,7 @@
1
1
  import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'
2
2
  import GraphQLUpload from 'graphql-upload/GraphQLUpload.js'
3
3
  import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
4
- import { EntityManager, getConnection, getRepository, In, Not, Repository } from 'typeorm'
4
+ import { EntityManager, getConnection, In, Not, Repository } from 'typeorm'
5
5
 
6
6
  import { Attachment, createAttachments } from '@things-factory/attachment-base'
7
7
  import { Partner, Role, User } from '@things-factory/auth-base'
@@ -18,15 +18,16 @@ import { MarketplaceStore } from '@things-factory/integration-marketplace'
18
18
  import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
19
19
  import { Sftp } from '@things-factory/integration-sftp'
20
20
  import { MarketplaceOrder, MarketplaceProductVariation } from '@things-factory/marketplace-base'
21
- import { sendNotification } from '@things-factory/notification'
22
21
  import { Product, ProductBundleSetting } from '@things-factory/product-base'
23
22
  import { PartnerSetting, Setting } from '@things-factory/setting-base'
24
- import { Domain } from '@things-factory/shell'
23
+ import { Domain, getRepository } from '@things-factory/shell'
25
24
  import { Inventory } from '@things-factory/warehouse-base'
26
25
 
26
+ // import { NewOrderProduct } from '../order-product/order-product-types'
27
27
  import {
28
28
  ATTACHMENT_TYPE,
29
29
  ORDER_INVENTORY_STATUS,
30
+ ORDER_METHOD,
30
31
  ORDER_NUMBER_RULE_TYPE,
31
32
  ORDER_NUMBER_SETTING_KEY,
32
33
  ORDER_PRODUCT_STATUS,
@@ -43,7 +44,7 @@ import { confirmArrivalNoticeFunction, deleteArrivalNotice } from '../arrival-no
43
44
  import { OrderInventory } from '../order-inventory/order-inventory'
44
45
  import { OrderProduct } from '../order-product/order-product'
45
46
  import { OrderVas } from '../order-vas/order-vas'
46
- import { NewReleaseGood, ReleaseGoodPatch } from '../release-good/release-good-types'
47
+ import { NewReleaseGood, ReleaseGoodPatch, ShippingOrderInfoPatch } from '../release-good/release-good-types'
47
48
  import { ShippingOrder } from '../shipping-order/shipping-order'
48
49
  import { ShippingOrderPatch } from '../shipping-order/shipping-order-types'
49
50
  import { Vas } from '../vas/vas'
@@ -56,7 +57,7 @@ export class ReleaseGoodMutation {
56
57
  @Directive('@transaction')
57
58
  @Mutation(returns => [ReleaseGood])
58
59
  async bulkAddReleaseGoods(
59
- @Ctx() context: any,
60
+ @Ctx() context: ResolverContext,
60
61
  @Arg('rawReleaseGoods', type => [NewReleaseGood], { nullable: true }) rawReleaseGoods: NewReleaseGood[],
61
62
  @Arg('bizplaceId', type => String) bizplaceId: string
62
63
  ): Promise<ReleaseGood[]> {
@@ -69,7 +70,7 @@ export class ReleaseGoodMutation {
69
70
 
70
71
  const roNoSetting: Setting = await settingRepo.findOne({
71
72
  where: {
72
- domain,
73
+ domain: { id: domain.id },
73
74
  name: ORDER_NUMBER_SETTING_KEY.RO_NUMBER_RULE
74
75
  }
75
76
  })
@@ -150,18 +151,21 @@ export class ReleaseGoodMutation {
150
151
  @Directive('@privilege(category: "order_customer", privilege: "mutation")')
151
152
  @Directive('@transaction')
152
153
  @Mutation(returns => Boolean)
153
- async deleteReleaseGood(@Arg('name') name: string, @Ctx() context: any): Promise<Boolean> {
154
- const { tx, user, domain }: { tx: EntityManager; user: User; domain: Domain } = context.state
154
+ async deleteReleaseGood(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Boolean> {
155
+ const { tx, user, domain } = context.state
155
156
  return await deleteReleaseGood(tx, name, user, domain)
156
157
  }
157
158
 
158
159
  @Directive('@privilege(category: "order_customer", privilege: "mutation")')
159
160
  @Directive('@transaction')
160
161
  @Mutation(returns => Boolean)
161
- async deleteReleaseGoods(@Arg('names', type => [String]) names: string[], @Ctx() context: any): Promise<Boolean> {
162
- const { tx }: { tx: EntityManager } = context.state
162
+ async deleteReleaseGoods(
163
+ @Arg('names', type => [String]) names: string[],
164
+ @Ctx() context: ResolverContext
165
+ ): Promise<Boolean> {
166
+ const { tx } = context.state
163
167
  await tx.getRepository(ReleaseGood).delete({
164
- domain: context.state.domain,
168
+ domain: { id: context.state.domain.id },
165
169
  name: In(names)
166
170
  })
167
171
  return true
@@ -171,16 +175,19 @@ export class ReleaseGoodMutation {
171
175
  @Directive('@transaction')
172
176
  @Mutation(returns => ReleaseGood)
173
177
  async generateReleaseGood(
174
- @Ctx() context: any,
178
+ @Ctx() context: ResolverContext,
175
179
  @Arg('attachments', type => [GraphQLUpload], { nullable: true }) attachments?: FileUpload[],
176
180
  @Arg('releaseGood', type => NewReleaseGood, { nullable: true }) releaseGood?: NewReleaseGood,
177
- @Arg('shippingOrder', type => ShippingOrderPatch, { nullable: true }) shippingOrder?: ShippingOrderPatch
181
+ @Arg('shippingOrder', type => ShippingOrderPatch, { nullable: true }) shippingOrder?: ShippingOrderPatch,
182
+ @Arg('shippingOrderInfo', type => ShippingOrderInfoPatch, { nullable: true })
183
+ shippingOrderInfo?: ShippingOrderInfoPatch
178
184
  ): Promise<ReleaseGood> {
179
- const { tx }: { tx: EntityManager } = context.state
185
+ const { tx } = context.state
180
186
  const createdReleaseGood: ReleaseGood = await generateReleaseGoodFunction(
181
187
  null,
182
188
  releaseGood,
183
189
  shippingOrder,
190
+ shippingOrderInfo,
184
191
  attachments,
185
192
  context,
186
193
  tx
@@ -193,9 +200,11 @@ export class ReleaseGoodMutation {
193
200
  @Directive('@transaction')
194
201
  @Mutation(returns => ReleaseGood)
195
202
  async updateReleaseGoodDetails(
196
- @Ctx() context: any,
203
+ @Ctx() context: ResolverContext,
197
204
  @Arg('releaseGood', type => ReleaseGoodPatch, { nullable: true }) releaseGood?: ReleaseGoodPatch,
198
- @Arg('shippingOrder', type => ShippingOrderPatch, { nullable: true }) shippingOrder?: ShippingOrderPatch
205
+ @Arg('shippingOrder', type => ShippingOrderPatch, { nullable: true }) shippingOrder?: ShippingOrderPatch,
206
+ @Arg('shippingOrderInfo', type => ShippingOrderInfoPatch, { nullable: true })
207
+ shippingOrderInfo?: ShippingOrderInfoPatch
199
208
  ): Promise<ReleaseGood> {
200
209
  const { tx, domain, user } = context.state
201
210
  let foundReleaseGood = await tx.getRepository(ReleaseGood).findOne({
@@ -208,6 +217,12 @@ export class ReleaseGoodMutation {
208
217
  }
209
218
 
210
219
  // case to update existing shippingOrder
220
+ if (shippingOrder !== null) {
221
+ shippingOrder.remark = shippingOrder.exportRemark
222
+ shippingOrder.containerClosureDateTime = new Date(shippingOrder.containerClosureDate)
223
+ delete shippingOrder.exportRemark
224
+ }
225
+
211
226
  if (foundReleaseGood.shippingOrder && shippingOrder) {
212
227
  await tx.getRepository(ShippingOrder).update(foundReleaseGood.shippingOrder.id, shippingOrder)
213
228
  }
@@ -227,8 +242,9 @@ export class ReleaseGoodMutation {
227
242
  }
228
243
 
229
244
  foundReleaseGood = await tx.getRepository(ReleaseGood).save({
230
- ...foundReleaseGood,
245
+ ...(foundReleaseGood as any),
231
246
  ...releaseGood,
247
+ ...shippingOrderInfo,
232
248
  remark: releaseGood?.remark ? releaseGood.remark : null
233
249
  })
234
250
 
@@ -238,13 +254,14 @@ export class ReleaseGoodMutation {
238
254
  @Directive('@privilege(category: "order_customer", privilege: "mutation")')
239
255
  @Directive('@transaction')
240
256
  @Mutation(returns => ReleaseGood)
241
- async confirmReleaseGood(@Arg('name') name: string, @Ctx() context: any): Promise<ReleaseGood> {
242
- const { tx }: { tx: EntityManager } = context.state
257
+ async confirmReleaseGood(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<ReleaseGood> {
258
+ const { tx } = context.state
243
259
  const releaseGood: ReleaseGood = await confirmReleaseGood(name, context, tx)
244
260
 
245
261
  // If current RO has cross docking
246
262
  if (releaseGood.crossDocking) {
247
- const { arrivalNotice } = await tx.getRepository(ReleaseGood).findOne(releaseGood.id, {
263
+ const { arrivalNotice } = await tx.getRepository(ReleaseGood).findOne({
264
+ where: { id: releaseGood.id },
248
265
  relations: ['arrivalNotice']
249
266
  })
250
267
 
@@ -260,8 +277,8 @@ export class ReleaseGoodMutation {
260
277
  @Directive('@privilege(category: "order_customer", privilege: "mutation")')
261
278
  @Directive('@transaction')
262
279
  @Mutation(returns => ReleaseGood)
263
- async receiveReleaseGood(@Arg('name') name: string, @Ctx() context: any): Promise<ReleaseGood> {
264
- const { tx }: { tx: EntityManager } = context.state
280
+ async receiveReleaseGood(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<ReleaseGood> {
281
+ const { tx } = context.state
265
282
  const releaseGood: ReleaseGood = await receiveReleaseGood(name, context, tx)
266
283
  return releaseGood
267
284
  }
@@ -272,9 +289,9 @@ export class ReleaseGoodMutation {
272
289
  async rejectReleaseGood(
273
290
  @Arg('name') name: string,
274
291
  @Arg('patch', type => ReleaseGoodPatch) patch: ReleaseGoodPatch,
275
- @Ctx() context: any
292
+ @Ctx() context: ResolverContext
276
293
  ): Promise<ReleaseGood> {
277
- const { tx }: { tx: EntityManager } = context.state
294
+ const { tx } = context.state
278
295
 
279
296
  return await rejectReleaseGood(tx, context, name, patch.remark)
280
297
  }
@@ -282,16 +299,17 @@ export class ReleaseGoodMutation {
282
299
  @Directive('@transaction')
283
300
  @Mutation(returns => ReleaseGood)
284
301
  async addReleaseGood(
285
- @Ctx() context: any,
302
+ @Ctx() context: ResolverContext,
286
303
  @Arg('releaseGood', type => NewReleaseGood, { nullable: true }) releaseGood: NewReleaseGood,
287
304
  @Arg('shippingOrder', type => ShippingOrderPatch, { nullable: true }) shippingOrder: ShippingOrderPatch,
288
305
  @Arg('file', type => GraphQLUpload, { nullable: true }) file: FileUpload
289
306
  ): Promise<ReleaseGood> {
290
- const { tx }: { tx: EntityManager } = context.state
307
+ const { tx } = context.state
291
308
  const createdRO: ReleaseGood = await generateReleaseGoodFunction(
292
309
  null,
293
310
  releaseGood,
294
311
  shippingOrder,
312
+ null,
295
313
  file,
296
314
  context,
297
315
  tx
@@ -307,12 +325,15 @@ export class ReleaseGoodMutation {
307
325
  @Directive('@privilege(category: "order_customer", privilege: "mutation")')
308
326
  @Directive('@transaction')
309
327
  @Mutation(returns => Boolean)
310
- async executeOrderRemark(@Arg('releaseGoodNo') releaseGoodNo: string, @Ctx() context: any): Promise<boolean> {
328
+ async executeOrderRemark(
329
+ @Arg('releaseGoodNo') releaseGoodNo: string,
330
+ @Ctx() context: ResolverContext
331
+ ): Promise<boolean> {
311
332
  const { domain, tx, user } = context.state
312
333
 
313
334
  await tx.getRepository(ReleaseGood).update(
314
335
  {
315
- domain,
336
+ domain: { id: domain.id },
316
337
  name: releaseGoodNo
317
338
  },
318
339
  {
@@ -328,7 +349,7 @@ export class ReleaseGoodMutation {
328
349
 
329
350
  export async function deleteReleaseGood(tx: EntityManager, name: string, user: User, domain: Domain): Promise<boolean> {
330
351
  let foundReleaseOrder: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({
331
- where: { domain, name },
352
+ where: { domain: { id: domain.id }, name },
332
353
  relations: [
333
354
  'arrivalNotice',
334
355
  'orderInventories',
@@ -341,7 +362,7 @@ export async function deleteReleaseGood(tx: EntityManager, name: string, user: U
341
362
  ]
342
363
  })
343
364
 
344
- if (!foundReleaseOrder) throw new Error(`Arrival notice doesn't exists.`)
365
+ if (!foundReleaseOrder) throw new Error(`Release order doesn't exists.`)
345
366
  const foundOIs: OrderInventory[] = foundReleaseOrder.orderInventories
346
367
  const foundOVs: OrderVas[] = foundReleaseOrder.orderVass
347
368
  const foundSO: ShippingOrder = foundReleaseOrder.shippingOrder
@@ -350,7 +371,7 @@ export async function deleteReleaseGood(tx: EntityManager, name: string, user: U
350
371
  if (foundReleaseOrder?.ownTransport) {
351
372
  foundAttachment = await tx.getRepository(Attachment).findOne({
352
373
  where: {
353
- domain,
374
+ domain: { id: domain.id },
354
375
  refBy: foundReleaseOrder.id,
355
376
  category: ATTACHMENT_TYPE.DELIVERY_ORDER
356
377
  }
@@ -361,7 +382,7 @@ export async function deleteReleaseGood(tx: EntityManager, name: string, user: U
361
382
  await Promise.all(
362
383
  foundOIs.map(async (oi: OrderInventory) => {
363
384
  if (oi?.inventory?.id) {
364
- oi.inventory = await tx.getRepository(Inventory).findOne(oi.inventory.id)
385
+ oi.inventory = await tx.getRepository(Inventory).findOneBy({ id: oi.inventory.id })
365
386
 
366
387
  await tx.getRepository(Inventory).save({
367
388
  ...oi.inventory,
@@ -413,13 +434,14 @@ export async function deleteReleaseGood(tx: EntityManager, name: string, user: U
413
434
  export async function generateReleaseGoodFunction(
414
435
  _: any,
415
436
  releaseGood: any,
416
- shippingOrder: any,
437
+ shippingOrder: ShippingOrderPatch,
438
+ shippingOrderInfo: any,
417
439
  attachments: FileUpload[],
418
- context: any,
440
+ context: ResolverContext,
419
441
  tx?: EntityManager
420
442
  ): Promise<ReleaseGood> {
421
443
  try {
422
- const { domain, user }: { domain: Domain; user: User } = context.state
444
+ const { domain, user } = context.state
423
445
  const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)
424
446
 
425
447
  // let orderInventories: OrderInventory[] = releaseGood.orderInventories
@@ -429,11 +451,12 @@ export async function generateReleaseGoodFunction(
429
451
 
430
452
  let bizplace: Bizplace
431
453
  let warehouseDomain: Domain = domain
454
+ let finalOrderInventories: OrderInventory[] = []
432
455
 
433
456
  if (releaseGood.deliverTo) {
434
457
  const deliverTo: ContactPoint = await tx
435
458
  .getRepository(ContactPoint)
436
- .findOne({ where: { bizplace: releaseGood.deliverTo, domain }, relation: ['bizplace'] })
459
+ .findOne({ where: { bizplace: releaseGood.deliverTo, domain }, relations: ['bizplace'] })
437
460
 
438
461
  if (!deliverTo) throw new Error('contact point does not exist')
439
462
 
@@ -484,7 +507,7 @@ export async function generateReleaseGoodFunction(
484
507
  if (releaseGood.type == 'b2c') {
485
508
  const sellercraft: Sellercraft = await tx
486
509
  .getRepository(Sellercraft)
487
- .findOne({ domain: bizplace.domain, status: SellercraftStatus.ACTIVE })
510
+ .findOneBy({ domain: bizplace.domain, status: SellercraftStatus.ACTIVE })
488
511
 
489
512
  let customerAvailableSftp: Sftp = await tx.getRepository(Sftp).findOne({
490
513
  where: { domain: bizplace.domain }
@@ -498,7 +521,7 @@ export async function generateReleaseGoodFunction(
498
521
  const refNo: string = releaseGood.refNo
499
522
  const foundReleaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({
500
523
  where: {
501
- domain: warehouseDomain,
524
+ domain: { id: warehouseDomain.id },
502
525
  refNo,
503
526
  status: Not(In([ORDER_STATUS.CANCELLED, ORDER_STATUS.PENDING_CANCEL]))
504
527
  },
@@ -516,7 +539,7 @@ export async function generateReleaseGoodFunction(
516
539
  const refNo2: string = releaseGood.refNo2
517
540
  const foundSplittedReleaseGood = await tx.getRepository(ReleaseGood).findOne({
518
541
  where: {
519
- domain: warehouseDomain,
542
+ domain: { id: warehouseDomain.id },
520
543
  refNo2,
521
544
  status: Not(In([ORDER_STATUS.CANCELLED, ORDER_STATUS.PENDING_CANCEL]))
522
545
  },
@@ -535,6 +558,12 @@ export async function generateReleaseGoodFunction(
535
558
 
536
559
  /** Generate Shipping Order */
537
560
  if (shippingOrder) {
561
+ shippingOrder.remark = shippingOrder.exportRemark
562
+ if (shippingOrder.containerClosureDate !== undefined) {
563
+ shippingOrder.containerClosureDateTime = new Date(shippingOrder.containerClosureDate)
564
+ }
565
+ delete shippingOrder.exportRemark
566
+
538
567
  const createdSO: ShippingOrder = await tx.getRepository(ShippingOrder).save({
539
568
  ...shippingOrder,
540
569
  name: OrderNoGenerator.shippingOrder(),
@@ -552,7 +581,7 @@ export async function generateReleaseGoodFunction(
552
581
  // find RO number rule setting
553
582
  const roNoSetting: Setting = await settingRepo.findOne({
554
583
  where: {
555
- domain,
584
+ domain: { id: domain.id },
556
585
  name: ORDER_NUMBER_SETTING_KEY.RO_NUMBER_RULE
557
586
  }
558
587
  })
@@ -569,23 +598,35 @@ export async function generateReleaseGoodFunction(
569
598
  exportOption: releaseGood.exportOption,
570
599
  ownTransport: releaseGood.ownTransport,
571
600
  packingOption: releaseGood.packingOption,
601
+ recall: releaseGood.recall,
572
602
  marketplaceOrderStatus: releaseGood?.marketplaceOrderStatus || null,
573
- billingAddress: releaseGood?.billingAddress || null,
574
- deliverTo: releaseGood?.deliverTo || null,
575
- deliveryAddress1: releaseGood?.deliveryAddress1 || null,
603
+ billingAddress:
604
+ releaseGood.type == 'b2c' ? releaseGood?.billingAddress || null : shippingOrderInfo.billingAddress || null,
605
+ deliveryAddress1:
606
+ releaseGood.type == 'b2c' ? releaseGood?.deliveryAddress1 || null : shippingOrderInfo.deliveryAddress1 || null,
576
607
  deliveryAddress2: releaseGood?.deliveryAddress2 || null,
577
608
  deliveryAddress3: releaseGood?.deliveryAddress3 || null,
578
609
  deliveryAddress4: releaseGood?.deliveryAddress4 || null,
579
610
  deliveryAddress5: releaseGood?.deliveryAddress5 || null,
580
- attentionTo: releaseGood?.attentionTo || null,
581
- attentionCompany: releaseGood?.attentionCompany || null,
582
- city: releaseGood?.city || null,
583
- state: releaseGood?.state || null,
584
- postalCode: releaseGood?.postalCode || null,
585
- country: releaseGood?.country || null,
586
- phone1: releaseGood?.phone1 || null,
611
+ attentionTo: releaseGood.type == 'b2c' ? releaseGood?.attentionTo || null : shippingOrderInfo.attentionTo || null,
612
+ attentionCompany:
613
+ releaseGood.type == 'b2c' ? releaseGood?.companyName || null : shippingOrderInfo.attentionCompany || null,
614
+ city: releaseGood.type == 'b2c' ? releaseGood?.city || null : shippingOrderInfo.city || null,
615
+ state: releaseGood.type == 'b2c' ? releaseGood?.state || null : shippingOrderInfo.state || null,
616
+ postalCode: releaseGood.type == 'b2c' ? releaseGood?.postalCode || null : shippingOrderInfo.postalCode || null,
617
+ country: releaseGood.type == 'b2c' ? releaseGood?.country || null : shippingOrderInfo.country || null,
618
+ phone1: releaseGood.type == 'b2c' ? releaseGood?.phone1 || null : shippingOrderInfo.phone1 || null,
587
619
  phone2: releaseGood?.phone2 || null,
588
620
  email: releaseGood?.email || null,
621
+ billingCity: releaseGood.type == 'b2c' ? releaseGood?.billingCity || null : shippingOrderInfo.billingCity || null,
622
+ billingCountry:
623
+ releaseGood.type == 'b2c' ? releaseGood?.billingCountry || null : shippingOrderInfo.billingCountry || null,
624
+ billingPostalCode:
625
+ releaseGood.type == 'b2c'
626
+ ? releaseGood?.billingPostalCode || null
627
+ : shippingOrderInfo.billingPostalCode || null,
628
+ billingState:
629
+ releaseGood.type == 'b2c' ? releaseGood?.billingState || null : shippingOrderInfo.billingState || null,
589
630
  transporter: releaseGood?.transporter,
590
631
  trackingNo: releaseGood?.trackingNo,
591
632
  airwayBill: releaseGood?.airwayBill,
@@ -599,7 +640,13 @@ export async function generateReleaseGoodFunction(
599
640
  bundleInfo: releaseGood?.bundleInfo || [],
600
641
  orderInventories: releaseGood.orderInventories,
601
642
  type: releaseGood?.type ? releaseGood.type : 'b2b',
643
+ orderMethod: releaseGood?.orderMethod
644
+ ? releaseGood.orderMethod
645
+ : releaseGood.orderInventories[0]?.inventory?.id
646
+ ? ORDER_METHOD.SELECT_BY_PALLET
647
+ : ORDER_METHOD.SELECT_BY_PRODUCT,
602
648
  status: ORDER_STATUS.PENDING,
649
+ packageId: releaseGood?.packageId,
603
650
  storeName: releaseGood?.storeName,
604
651
  storeId: releaseGood?.storeId,
605
652
  routeId: releaseGood?.routeId,
@@ -612,7 +659,7 @@ export async function generateReleaseGoodFunction(
612
659
  let crossDockingGAN: ArrivalNotice = undefined
613
660
  if (releaseGood.crossDocking && releaseGood.ganNo) {
614
661
  crossDockingGAN = await tx.getRepository(ArrivalNotice).findOne({
615
- where: { domain, bizplace, name: releaseGood.ganNo, status: ORDER_STATUS.PENDING }
662
+ where: { domain: { id: domain.id }, bizplace, name: releaseGood.ganNo, status: ORDER_STATUS.PENDING }
616
663
  })
617
664
  if (!crossDockingGAN) throw new Error(`Failed to find GAN (${releaseGood.ganNo}) for cross docking`)
618
665
 
@@ -680,22 +727,11 @@ export async function generateReleaseGoodFunction(
680
727
  status: ORDER_INVENTORY_STATUS.PENDING,
681
728
  name: OrderNoGenerator.orderInventory(),
682
729
  releaseGood: newReleaseGood,
683
- product: await tx.getRepository(Product).findOne(oi.product.id),
730
+ product: await tx.getRepository(Product).findOneBy({ id: oi.product.id }),
684
731
  creator: user,
685
732
  updater: user
686
733
  }
687
734
 
688
- if (newOrderInv.inventory?.id) {
689
- const foundInv: Inventory = await tx.getRepository(Inventory).findOne(newOrderInv.inventory.id)
690
- newOrderInv.inventory = foundInv
691
-
692
- foundInv.lockedQty = Number(foundInv.lockedQty) + newOrderInv.releaseQty
693
- foundInv.lockedUomValue = Number(foundInv.lockedUomValue) + newOrderInv.releaseUomValue
694
- foundInv.updater = user
695
-
696
- await tx.getRepository(Inventory).save(foundInv)
697
- }
698
-
699
735
  let newOrderProduct: OrderProduct = Object.assign(new OrderProduct(), newOrderInv)
700
736
  newOrderProduct = {
701
737
  ...newOrderProduct,
@@ -703,19 +739,81 @@ export async function generateReleaseGoodFunction(
703
739
  actualPackQty: 0,
704
740
  palletQty: 0,
705
741
  actualPalletQty: 0,
706
- status: newOrderInv.inventory?.id ? ORDER_PRODUCT_STATUS.ASSIGNED : ORDER_PRODUCT_STATUS.PENDING_ASSIGN
742
+ status: ORDER_PRODUCT_STATUS.ASSIGNED
707
743
  }
708
744
 
709
745
  newOrderProduct = await tx.getRepository(OrderProduct).save(newOrderProduct)
710
746
 
711
- await tx.getRepository(OrderInventory).save({ ...newOrderInv, orderProduct: newOrderProduct })
747
+ if (newOrderInv.inventory?.id) {
748
+ const foundInv: Inventory = await tx.getRepository(Inventory).findOneBy({ id: newOrderInv.inventory.id })
749
+ newOrderInv.inventory = foundInv
750
+ newOrderInv.orderProduct = newOrderProduct
751
+
752
+ finalOrderInventories.push(newOrderInv)
753
+ } else {
754
+ // Preassign Inventories
755
+ const inventoryAssignmentSetting: Setting = await tx.getRepository(Setting).findOne({
756
+ where: { domain: { id: domain.id }, name: 'rule-for-inventory-assignment' }
757
+ })
758
+
759
+ let locationSortingRules = []
760
+ if (inventoryAssignmentSetting) {
761
+ let locationSetting = JSON.parse(inventoryAssignmentSetting.value)
762
+ for (const key in locationSetting) {
763
+ locationSortingRules.push({ name: key, desc: locationSetting[key] == 'ASC' ? false : true })
764
+ }
765
+ }
766
+
767
+ let assignedOrderInventories: OrderInventory[] = await InventoryUtil.autoAssignInventoryForRelease(
768
+ newOrderInv.product,
769
+ oi,
770
+ oi.packingType,
771
+ locationSortingRules,
772
+ bizplace,
773
+ warehouseDomain,
774
+ tx,
775
+ oi.batchId
776
+ )
777
+
778
+ assignedOrderInventories = assignedOrderInventories.map(aoi => {
779
+ return {
780
+ ...aoi,
781
+ orderProduct: newOrderProduct
782
+ }
783
+ })
784
+
785
+ finalOrderInventories.push(...assignedOrderInventories)
786
+ }
787
+ }
788
+
789
+ for (let oi of finalOrderInventories) {
790
+ let generatedOI: OrderInventory = Object.assign(new OrderInventory(), oi)
791
+ generatedOI = {
792
+ ...generatedOI,
793
+ domain: warehouseDomain,
794
+ bizplace,
795
+ status: ORDER_INVENTORY_STATUS.PENDING,
796
+ name: OrderNoGenerator.orderInventory(),
797
+ releaseGood: newReleaseGood,
798
+ creator: user,
799
+ updater: user
800
+ }
801
+
802
+ await tx.getRepository(OrderInventory).save({ ...generatedOI })
803
+
804
+ // update inventory locked qty and uom value
805
+ await tx.getRepository(Inventory).update({ id: oi.inventory.id }, {
806
+ lockedQty: (oi.inventory?.lockedQty || 0) + generatedOI.releaseQty,
807
+ lockedUomValue: (oi.inventory?.lockedUomValue || 0) + generatedOI.releaseUomValue,
808
+ updater: user
809
+ } as any)
712
810
  }
713
811
 
714
812
  if (orderVass?.length) {
715
813
  orderVass = await Promise.all(
716
814
  orderVass.map(async orderVas => {
717
815
  if (orderVas?.targetProduct?.id) {
718
- orderVas.targetProduct = await tx.getRepository(Product).findOne(orderVas.targetProduct.id)
816
+ orderVas.targetProduct = await tx.getRepository(Product).findOneBy({ id: orderVas.targetProduct.id })
719
817
  }
720
818
 
721
819
  let newOrderVas: OrderVas = {
@@ -723,7 +821,7 @@ export async function generateReleaseGoodFunction(
723
821
  domain: warehouseDomain,
724
822
  bizplace,
725
823
  name: OrderNoGenerator.releaseVas(),
726
- vas: await tx.getRepository(Vas).findOne(orderVas.vas.id),
824
+ vas: await tx.getRepository(Vas).findOneBy({ id: orderVas.vas.id }),
727
825
  type: ORDER_TYPES.RELEASE_OF_GOODS,
728
826
  releaseGood: newReleaseGood,
729
827
  status: ORDER_VAS_STATUS.PENDING,
@@ -732,7 +830,7 @@ export async function generateReleaseGoodFunction(
732
830
  }
733
831
 
734
832
  if (orderVas?.inventory?.id) {
735
- newOrderVas.inventory = await tx.getRepository(Inventory).findOne(orderVas.inventory.id)
833
+ newOrderVas.inventory = await tx.getRepository(Inventory).findOneBy({ id: orderVas.inventory.id })
736
834
  }
737
835
 
738
836
  return newOrderVas
@@ -755,7 +853,7 @@ export async function generateReleaseGoodFunction(
755
853
  }
756
854
 
757
855
  const directReceiveSetting: Setting = await tx.getRepository(Setting).findOne({
758
- where: { domain, category: 'id-rule', name: 'enable-direct-receive-release-order' }
856
+ where: { domain: { id: domain.id }, category: 'id-rule', name: 'enable-direct-receive-release-order' }
759
857
  })
760
858
 
761
859
  const partnerDirectReceiveSetting: PartnerSetting = await tx.getRepository(PartnerSetting).findOne({
@@ -784,7 +882,7 @@ export async function generateReleaseGoodFunction(
784
882
  }
785
883
 
786
884
  export async function confirmReleaseGood(name: string, context: any, tx?: EntityManager): Promise<ReleaseGood> {
787
- const { user, domain }: { user: User; domain: Domain } = context.state
885
+ const { user, domain } = context.state
788
886
 
789
887
  let foundReleaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({
790
888
  where: { name, status: ORDER_STATUS.PENDING },
@@ -795,13 +893,13 @@ export async function confirmReleaseGood(name: string, context: any, tx?: Entity
795
893
 
796
894
  // query orderInventories separately from releaseGood to reduce resource usage
797
895
  let foundOIs: OrderInventory[] = await tx.getRepository(OrderInventory).find({
798
- where: { domain, releaseGood: foundReleaseGood },
896
+ where: { domain: { id: domain.id }, releaseGood: { id: foundReleaseGood.id } },
799
897
  relations: ['product']
800
898
  })
801
899
 
802
900
  // query orderProducts separately from releaseGood to reduce resource usage
803
901
  let foundOPs: OrderProduct[] = await tx.getRepository(OrderProduct).find({
804
- where: { domain, releaseGood: foundReleaseGood },
902
+ where: { domain: { id: domain.id }, releaseGood: { id: foundReleaseGood.id } },
805
903
  relations: ['bizplace', 'product', 'product.productDetails']
806
904
  })
807
905
 
@@ -948,10 +1046,15 @@ export async function confirmReleaseGood(name: string, context: any, tx?: Entity
948
1046
  url: context.header.referer,
949
1047
  data: { url: context.header.referer }
950
1048
  }
951
- await sendNotification({
952
- receivers,
953
- message: { ...msg }
954
- })
1049
+
1050
+ /**
1051
+ * @notes Temporary off sendNotification due to suspect of causing wms down
1052
+ */
1053
+
1054
+ // await sendNotification({
1055
+ // receivers,
1056
+ // message: { ...msg }
1057
+ // })
955
1058
  }
956
1059
  }
957
1060
 
@@ -959,10 +1062,10 @@ export async function confirmReleaseGood(name: string, context: any, tx?: Entity
959
1062
  }
960
1063
 
961
1064
  export async function receiveReleaseGood(name: string, context: any, tx: EntityManager): Promise<ReleaseGood> {
962
- const { domain, user }: { domain: Domain; user: User } = context.state
1065
+ const { domain, user } = context.state
963
1066
 
964
1067
  const foundReleaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({
965
- where: { domain, name, status: ORDER_STATUS.PENDING_RECEIVE },
1068
+ where: { domain: { id: domain.id }, name, status: ORDER_STATUS.PENDING_RECEIVE },
966
1069
  relations: ['bizplace', 'orderInventories', 'orderVass']
967
1070
  })
968
1071
 
@@ -1031,10 +1134,14 @@ export async function receiveReleaseGood(name: string, context: any, tx: EntityM
1031
1134
  data: { url: context.header.referer }
1032
1135
  }
1033
1136
 
1034
- await sendNotification({
1035
- receivers,
1036
- message: { ...msg }
1037
- })
1137
+ /**
1138
+ * @notes Temporary off sendNotification due to suspect of causing wms down
1139
+ */
1140
+
1141
+ // await sendNotification({
1142
+ // receivers,
1143
+ // message: { ...msg }
1144
+ // })
1038
1145
  }
1039
1146
  }
1040
1147
 
@@ -1043,14 +1150,14 @@ export async function receiveReleaseGood(name: string, context: any, tx: EntityM
1043
1150
 
1044
1151
  export async function rejectReleaseGood(
1045
1152
  tx: EntityManager,
1046
- context: any,
1153
+ context: ResolverContext,
1047
1154
  name: string,
1048
1155
  remark: string
1049
1156
  ): Promise<ReleaseGood> {
1050
- const { domain, user }: { domain: Domain; user: User } = context.state
1157
+ const { domain, user } = context.state
1051
1158
 
1052
1159
  const releaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({
1053
- where: { domain, name, status: ORDER_STATUS.PENDING_RECEIVE },
1160
+ where: { domain: { id: domain.id }, name, status: ORDER_STATUS.PENDING_RECEIVE },
1054
1161
  relations: [
1055
1162
  'bizplace',
1056
1163
  'bizplace.domain',
@@ -1077,7 +1184,7 @@ export async function rejectReleaseGood(
1077
1184
  await Promise.all(
1078
1185
  foundOIs.map(async (oi: OrderInventory) => {
1079
1186
  if (oi?.inventory?.id) {
1080
- oi.inventory = await tx.getRepository(Inventory).findOne(oi.inventory.id)
1187
+ oi.inventory = await tx.getRepository(Inventory).findOneBy({ id: oi.inventory.id })
1081
1188
 
1082
1189
  await tx.getRepository(Inventory).save({
1083
1190
  ...oi.inventory,
@@ -1098,7 +1205,7 @@ export async function rejectReleaseGood(
1098
1205
  if (foundOPs && foundOPs.length) {
1099
1206
  const sellercraft: Sellercraft = await tx
1100
1207
  .getRepository(Sellercraft)
1101
- .findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
1208
+ .findOneBy({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
1102
1209
 
1103
1210
  if (sellercraft) {
1104
1211
  const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
@@ -1129,7 +1236,7 @@ export async function rejectReleaseGood(
1129
1236
  if (releaseGood.shippingOrder) {
1130
1237
  // 2. 1) if it's yes update status of collection order
1131
1238
  const shippingOrder: ShippingOrder = await tx.getRepository(ShippingOrder).findOne({
1132
- where: { domain, name: releaseGood.shippingOrder.name }
1239
+ where: { domain: { id: domain.id }, name: releaseGood.shippingOrder.name }
1133
1240
  })
1134
1241
 
1135
1242
  shippingOrder.status = ORDER_STATUS.REJECTED
@@ -1154,10 +1261,14 @@ export async function rejectReleaseGood(
1154
1261
  data: { url: context.header.referer }
1155
1262
  }
1156
1263
 
1157
- await sendNotification({
1158
- receivers,
1159
- message: { ...msg }
1160
- })
1264
+ /**
1265
+ * @notes Temporary off sendNotification due to suspect of causing wms down
1266
+ */
1267
+
1268
+ // await sendNotification({
1269
+ // receivers,
1270
+ // message: { ...msg }
1271
+ // })
1161
1272
  }
1162
1273
 
1163
1274
  return releaseGood
@@ -1173,9 +1284,9 @@ export async function bulkGenerateReleaseGood(
1173
1284
  ): Promise<ReleaseGood> {
1174
1285
  try {
1175
1286
  let warehouseDomain: Domain = domain
1176
- let { orderInventories } = releaseGood
1287
+ let { orderInventories, shippingOrder } = releaseGood
1177
1288
 
1178
- let bizplace: Bizplace = await tx.getRepository(Bizplace).findOne(bizplaceId)
1289
+ let bizplace: Bizplace = await tx.getRepository(Bizplace).findOneBy({ id: bizplaceId })
1179
1290
 
1180
1291
  let newReleaseGood: ReleaseGood = {
1181
1292
  ...releaseGood,
@@ -1203,18 +1314,41 @@ export async function bulkGenerateReleaseGood(
1203
1314
  refNo3: releaseGood.refNo3,
1204
1315
  releaseDate: releaseGood.releaseDate,
1205
1316
  ownTransport: releaseGood?.ownTransport || false,
1317
+ orderMethod: ORDER_METHOD.SELECT_BY_PRODUCT,
1206
1318
  status: ORDER_STATUS.PENDING,
1207
1319
  creator: user,
1208
1320
  updater: user
1209
1321
  }
1210
1322
 
1211
1323
  newReleaseGood = await tx.getRepository(ReleaseGood).save(newReleaseGood)
1212
- let finalOrderInventories: OrderInventory[] = []
1324
+
1325
+ /** Generate Shipping Order */
1326
+ if (shippingOrder) {
1327
+ shippingOrder.remark = shippingOrder.exportRemark
1328
+ if (shippingOrder.containerClosureDate !== undefined) {
1329
+ shippingOrder.containerClosureDateTime = new Date(shippingOrder.containerClosureDate)
1330
+ }
1331
+ delete shippingOrder.exportRemark
1332
+
1333
+ const createdSO: ShippingOrder = await tx.getRepository(ShippingOrder).save({
1334
+ ...shippingOrder,
1335
+ name: OrderNoGenerator.shippingOrder(),
1336
+ domain,
1337
+ bizplace,
1338
+ status: ORDER_STATUS.PENDING,
1339
+ creator: user,
1340
+ updater: user
1341
+ })
1342
+
1343
+ newReleaseGood.shippingOrder = createdSO
1344
+ }
1345
+
1346
+ let finalOrderInventories: Partial<OrderInventory>[] = []
1213
1347
 
1214
1348
  // pre assign inventory to orderInventories
1215
1349
  for (let oi of orderInventories) {
1216
1350
  const pickingProductSetting: Setting = await tx.getRepository(Setting).findOne({
1217
- where: { domain, name: 'rule-for-picking-product' }
1351
+ where: { domain: { id: domain.id }, name: 'rule-for-picking-product' }
1218
1352
  })
1219
1353
 
1220
1354
  let locationSortingRules = []
@@ -1225,18 +1359,25 @@ export async function bulkGenerateReleaseGood(
1225
1359
  }
1226
1360
  }
1227
1361
 
1228
- const product: Product = await tx.getRepository(Product).findOne(oi.productId)
1362
+ const product: Product = await tx.getRepository(Product).findOneBy({ id: oi.productId })
1363
+
1364
+ let assignedResult = await InventoryUtil.autoAssignInventoryForRelease(
1365
+ product,
1366
+ oi,
1367
+ oi.packingType,
1368
+ locationSortingRules,
1369
+ bizplace,
1370
+ warehouseDomain,
1371
+ tx
1372
+ )
1229
1373
 
1230
1374
  finalOrderInventories.push(
1231
- ...(await InventoryUtil.autoAssignInventoryForRelease(
1232
- product,
1233
- oi,
1234
- oi.packingType,
1235
- locationSortingRules,
1236
- bizplace,
1237
- warehouseDomain,
1238
- tx
1239
- ))
1375
+ ...assignedResult.map(itm => {
1376
+ return {
1377
+ ...itm,
1378
+ orderProduct: oi?.orderProduct
1379
+ }
1380
+ })
1240
1381
  )
1241
1382
  }
1242
1383
 
@@ -1253,28 +1394,38 @@ export async function bulkGenerateReleaseGood(
1253
1394
  updater: user
1254
1395
  }
1255
1396
 
1256
- let newOrderProduct: Partial<OrderProduct> = {
1257
- name: generatedOI.name,
1258
- product: generatedOI.product,
1259
- batchId: generatedOI.batchId,
1260
- packingType: generatedOI.packingType,
1261
- packingSize: generatedOI.packingSize,
1262
- uom: generatedOI.uom,
1263
- domain: warehouseDomain,
1264
- bizplace,
1265
- releaseQty: generatedOI.releaseQty,
1266
- releaseUomValue: generatedOI.releaseUomValue,
1267
- packQty: 0,
1268
- actualPackQty: 0,
1269
- palletQty: 0,
1270
- actualPalletQty: 0,
1271
- status: ORDER_PRODUCT_STATUS.PENDING_ASSIGN,
1272
- releaseGood: newReleaseGood,
1273
- creator: user,
1274
- updater: user
1275
- }
1397
+ let newOrderProduct: Partial<OrderProduct>
1398
+ if (!oi?.orderProduct) {
1399
+ newOrderProduct = {
1400
+ name: generatedOI.name,
1401
+ product: generatedOI.product,
1402
+ batchId: generatedOI.batchId,
1403
+ packingType: generatedOI.packingType,
1404
+ packingSize: generatedOI.packingSize,
1405
+ uom: generatedOI.uom,
1406
+ domain: warehouseDomain,
1407
+ bizplace,
1408
+ releaseQty: generatedOI.releaseQty,
1409
+ releaseUomValue: generatedOI.releaseUomValue,
1410
+ packQty: 0,
1411
+ actualPackQty: 0,
1412
+ palletQty: 0,
1413
+ actualPalletQty: 0,
1414
+ status: ORDER_PRODUCT_STATUS.ASSIGNED,
1415
+ releaseGood: newReleaseGood,
1416
+ creator: user,
1417
+ updater: user
1418
+ }
1276
1419
 
1277
- newOrderProduct = await tx.getRepository(OrderProduct).save(newOrderProduct)
1420
+ newOrderProduct = await tx.getRepository(OrderProduct).save(newOrderProduct)
1421
+ } else {
1422
+ newOrderProduct = await tx.getRepository(OrderProduct).save({
1423
+ ...oi.orderProduct,
1424
+ totalUomValue: `${oi.orderProduct.releaseUomValue} ${oi.orderProduct.uom}`,
1425
+ status: ORDER_PRODUCT_STATUS.ASSIGNED,
1426
+ updater: user
1427
+ })
1428
+ }
1278
1429
 
1279
1430
  await tx.getRepository(OrderInventory).save({ ...generatedOI, orderProduct: newOrderProduct })
1280
1431
 
@@ -1283,7 +1434,7 @@ export async function bulkGenerateReleaseGood(
1283
1434
  lockedQty: (oi.inventory?.lockedQty || 0) + generatedOI.releaseQty,
1284
1435
  lockedUomValue: (oi.inventory?.lockedUomValue || 0) + generatedOI.releaseUomValue,
1285
1436
  updater: user
1286
- })
1437
+ } as any)
1287
1438
  }
1288
1439
 
1289
1440
  return newReleaseGood
@@ -1308,7 +1459,7 @@ export async function bulkConfirmReleaseGoods(
1308
1459
  let customerBizplace: Bizplace = foundReleaseGoods[0].bizplace
1309
1460
 
1310
1461
  let foundOrderInventories: OrderInventory[] = await tx.getRepository(OrderInventory).find({
1311
- where: { domain, releaseGood: In(foundReleaseGoods.map((rg: ReleaseGood) => rg.id)) }
1462
+ where: { domain: { id: domain.id }, releaseGood: In(foundReleaseGoods.map((rg: ReleaseGood) => rg.id)) }
1312
1463
  })
1313
1464
 
1314
1465
  await tx
@@ -1348,10 +1499,15 @@ export async function bulkConfirmReleaseGoods(
1348
1499
  url: context.header.referer,
1349
1500
  data: { url: context.header.referer }
1350
1501
  }
1351
- await sendNotification({
1352
- receivers,
1353
- message
1354
- })
1502
+
1503
+ /**
1504
+ * @notes Temporary off sendNotification due to suspect of causing wms down
1505
+ */
1506
+
1507
+ // await sendNotification({
1508
+ // receivers,
1509
+ // message
1510
+ // })
1355
1511
  }
1356
1512
  }
1357
1513
 
@@ -1359,7 +1515,9 @@ export async function bulkConfirmReleaseGoods(
1359
1515
  foundReleaseGoods.map(async (releaseGood: ReleaseGood) => {
1360
1516
  return {
1361
1517
  ...releaseGood,
1362
- orderInventories: await tx.getRepository(OrderInventory).find({ where: releaseGood }),
1518
+ orderInventories: await tx
1519
+ .getRepository(OrderInventory)
1520
+ .find({ where: { releaseGood: { id: releaseGood.id } } }) /* CONFIRMME regarding TYPEORM */,
1363
1521
  status: ORDER_STATUS.PENDING_RECEIVE,
1364
1522
  updater: user
1365
1523
  }
@@ -1430,6 +1588,11 @@ function extractRawReleaseGoods(rawReleaseGoods): Partial<ReleaseGood[]> {
1430
1588
  deliveryAddress2: item.deliveryAddress2,
1431
1589
  deliveryAddress3: item.deliveryAddress3,
1432
1590
  deliveryAddress4: item.deliveryAddress4,
1591
+ billingAddress: item.billingAddress,
1592
+ billingCity: item.billingPostalCode,
1593
+ billingState: item.billingState,
1594
+ billingCountry: item.billingCountry,
1595
+ billingPostalCode: item.billingPostalCode,
1433
1596
  city: item.city,
1434
1597
  postalCode: item.postalCode,
1435
1598
  state: item.state,