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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/dist-server/constants/attachment-type.d.ts +9 -0
  2. package/dist-server/constants/index.d.ts +7 -0
  3. package/dist-server/constants/load-type.d.ts +4 -0
  4. package/dist-server/constants/order.d.ts +191 -0
  5. package/dist-server/constants/product-group-type.d.ts +4 -0
  6. package/dist-server/constants/release-good.d.ts +8 -0
  7. package/dist-server/constants/release-good.js +1 -1
  8. package/dist-server/constants/release-good.js.map +1 -1
  9. package/dist-server/constants/transfer-order-type.d.ts +5 -0
  10. package/dist-server/constants/validation-error-code.d.ts +12 -0
  11. package/dist-server/constants/vas-target-type.d.ts +22 -0
  12. package/dist-server/controllers/ecommerce/ecommerce-controller.d.ts +6 -0
  13. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
  14. package/dist-server/controllers/ecommerce/index.d.ts +2 -0
  15. package/dist-server/controllers/ecommerce/sellercraft-controller.d.ts +9 -0
  16. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  17. package/dist-server/controllers/index.d.ts +2 -0
  18. package/dist-server/controllers/order-controller.d.ts +109 -0
  19. package/dist-server/controllers/order-controller.js +2 -2
  20. package/dist-server/controllers/order-controller.js.map +1 -1
  21. package/dist-server/errors/index.d.ts +1 -0
  22. package/dist-server/errors/validation-error.d.ts +12 -0
  23. package/dist-server/index.d.ts +5 -0
  24. package/dist-server/migrations/index.d.ts +1 -0
  25. package/dist-server/service/arrival-notice/arrival-notice-mutation.d.ts +28 -0
  26. package/dist-server/service/arrival-notice/arrival-notice-mutation.js +55 -16
  27. package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
  28. package/dist-server/service/arrival-notice/arrival-notice-query.d.ts +15 -0
  29. package/dist-server/service/arrival-notice/arrival-notice-query.js +2 -2
  30. package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -1
  31. package/dist-server/service/arrival-notice/arrival-notice-types.d.ts +107 -0
  32. package/dist-server/service/arrival-notice/arrival-notice-types.js +8 -8
  33. package/dist-server/service/arrival-notice/arrival-notice-types.js.map +1 -1
  34. package/dist-server/service/arrival-notice/arrival-notice.d.ts +56 -0
  35. package/dist-server/service/arrival-notice/arrival-notice.js +4 -5
  36. package/dist-server/service/arrival-notice/arrival-notice.js.map +1 -1
  37. package/dist-server/service/arrival-notice/index.d.ts +7 -0
  38. package/dist-server/service/claim/claim-mutation.d.ts +9 -0
  39. package/dist-server/service/claim/claim-mutation.js +2 -2
  40. package/dist-server/service/claim/claim-mutation.js.map +1 -1
  41. package/dist-server/service/claim/claim-query.d.ts +13 -0
  42. package/dist-server/service/claim/claim-query.js +2 -2
  43. package/dist-server/service/claim/claim-query.js.map +1 -1
  44. package/dist-server/service/claim/claim-types.d.ts +48 -0
  45. package/dist-server/service/claim/claim-types.js +6 -6
  46. package/dist-server/service/claim/claim-types.js.map +1 -1
  47. package/dist-server/service/claim/claim.d.ts +37 -0
  48. package/dist-server/service/claim/claim.js +5 -6
  49. package/dist-server/service/claim/claim.js.map +1 -1
  50. package/dist-server/service/claim/index.d.ts +7 -0
  51. package/dist-server/service/claim-detail/claim-detail-mutation.d.ts +9 -0
  52. package/dist-server/service/claim-detail/claim-detail-mutation.js +2 -2
  53. package/dist-server/service/claim-detail/claim-detail-mutation.js.map +1 -1
  54. package/dist-server/service/claim-detail/claim-detail-query.d.ts +11 -0
  55. package/dist-server/service/claim-detail/claim-detail-query.js +2 -2
  56. package/dist-server/service/claim-detail/claim-detail-query.js.map +1 -1
  57. package/dist-server/service/claim-detail/claim-detail-types.d.ts +19 -0
  58. package/dist-server/service/claim-detail/claim-detail-types.js +6 -6
  59. package/dist-server/service/claim-detail/claim-detail-types.js.map +1 -1
  60. package/dist-server/service/claim-detail/claim-detail.d.ts +21 -0
  61. package/dist-server/service/claim-detail/claim-detail.js +2 -2
  62. package/dist-server/service/claim-detail/claim-detail.js.map +1 -1
  63. package/dist-server/service/claim-detail/index.d.ts +7 -0
  64. package/dist-server/service/claim-order/claim-order-mutation.d.ts +9 -0
  65. package/dist-server/service/claim-order/claim-order-mutation.js +2 -2
  66. package/dist-server/service/claim-order/claim-order-mutation.js.map +1 -1
  67. package/dist-server/service/claim-order/claim-order-query.d.ts +11 -0
  68. package/dist-server/service/claim-order/claim-order-query.js +2 -2
  69. package/dist-server/service/claim-order/claim-order-query.js.map +1 -1
  70. package/dist-server/service/claim-order/claim-order-types.d.ts +15 -0
  71. package/dist-server/service/claim-order/claim-order-types.js +6 -6
  72. package/dist-server/service/claim-order/claim-order-types.js.map +1 -1
  73. package/dist-server/service/claim-order/claim-order.d.ts +21 -0
  74. package/dist-server/service/claim-order/claim-order.js +2 -2
  75. package/dist-server/service/claim-order/claim-order.js.map +1 -1
  76. package/dist-server/service/claim-order/index.d.ts +7 -0
  77. package/dist-server/service/collection-order/collection-order-mutation.d.ts +13 -0
  78. package/dist-server/service/collection-order/collection-order-mutation.js +2 -2
  79. package/dist-server/service/collection-order/collection-order-mutation.js.map +1 -1
  80. package/dist-server/service/collection-order/collection-order-query.d.ts +12 -0
  81. package/dist-server/service/collection-order/collection-order-query.js +2 -2
  82. package/dist-server/service/collection-order/collection-order-query.js.map +1 -1
  83. package/dist-server/service/collection-order/collection-order-types.d.ts +60 -0
  84. package/dist-server/service/collection-order/collection-order-types.js +8 -8
  85. package/dist-server/service/collection-order/collection-order-types.js.map +1 -1
  86. package/dist-server/service/collection-order/collection-order.d.ts +39 -0
  87. package/dist-server/service/collection-order/collection-order.js +5 -6
  88. package/dist-server/service/collection-order/collection-order.js.map +1 -1
  89. package/dist-server/service/collection-order/index.d.ts +7 -0
  90. package/dist-server/service/delivery-order/delivery-order-mutation.d.ts +38 -0
  91. package/dist-server/service/delivery-order/delivery-order-mutation.js +3 -3
  92. package/dist-server/service/delivery-order/delivery-order-mutation.js.map +1 -1
  93. package/dist-server/service/delivery-order/delivery-order-query.d.ts +20 -0
  94. package/dist-server/service/delivery-order/delivery-order-query.js +2 -2
  95. package/dist-server/service/delivery-order/delivery-order-query.js.map +1 -1
  96. package/dist-server/service/delivery-order/delivery-order-types.d.ts +96 -0
  97. package/dist-server/service/delivery-order/delivery-order-types.js +8 -8
  98. package/dist-server/service/delivery-order/delivery-order-types.js.map +1 -1
  99. package/dist-server/service/delivery-order/delivery-order.d.ts +73 -0
  100. package/dist-server/service/delivery-order/delivery-order.js +5 -6
  101. package/dist-server/service/delivery-order/delivery-order.js.map +1 -1
  102. package/dist-server/service/delivery-order/index.d.ts +7 -0
  103. package/dist-server/service/draft-release-good/draft-release-good-mutation.d.ts +21 -0
  104. package/dist-server/service/draft-release-good/draft-release-good-mutation.js +5 -5
  105. package/dist-server/service/draft-release-good/draft-release-good-mutation.js.map +1 -1
  106. package/dist-server/service/draft-release-good/draft-release-good-query.d.ts +10 -0
  107. package/dist-server/service/draft-release-good/draft-release-good-query.js +2 -2
  108. package/dist-server/service/draft-release-good/draft-release-good-query.js.map +1 -1
  109. package/dist-server/service/draft-release-good/draft-release-good-type.d.ts +91 -0
  110. package/dist-server/service/draft-release-good/draft-release-good-type.js +6 -6
  111. package/dist-server/service/draft-release-good/draft-release-good-type.js.map +1 -1
  112. package/dist-server/service/draft-release-good/draft-release-good.d.ts +66 -0
  113. package/dist-server/service/draft-release-good/draft-release-good.js +4 -5
  114. package/dist-server/service/draft-release-good/draft-release-good.js.map +1 -1
  115. package/dist-server/service/draft-release-good/index.d.ts +7 -0
  116. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.d.ts +16 -0
  117. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js +2 -2
  118. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js.map +1 -1
  119. package/dist-server/service/goods-receival-note/goods-receival-note-query.d.ts +11 -0
  120. package/dist-server/service/goods-receival-note/goods-receival-note-query.js +2 -2
  121. package/dist-server/service/goods-receival-note/goods-receival-note-query.js.map +1 -1
  122. package/dist-server/service/goods-receival-note/goods-receival-note-types.d.ts +39 -0
  123. package/dist-server/service/goods-receival-note/goods-receival-note-types.js +8 -8
  124. package/dist-server/service/goods-receival-note/goods-receival-note-types.js.map +1 -1
  125. package/dist-server/service/goods-receival-note/goods-receival-note.d.ts +36 -0
  126. package/dist-server/service/goods-receival-note/goods-receival-note.js +3 -4
  127. package/dist-server/service/goods-receival-note/goods-receival-note.js.map +1 -1
  128. package/dist-server/service/goods-receival-note/index.d.ts +7 -0
  129. package/dist-server/service/index.d.ts +119 -0
  130. package/dist-server/service/inventory-check/index.d.ts +7 -0
  131. package/dist-server/service/inventory-check/inventory-check-mutation.d.ts +14 -0
  132. package/dist-server/service/inventory-check/inventory-check-mutation.js +2 -2
  133. package/dist-server/service/inventory-check/inventory-check-mutation.js.map +1 -1
  134. package/dist-server/service/inventory-check/inventory-check-query.d.ts +11 -0
  135. package/dist-server/service/inventory-check/inventory-check-query.js +2 -2
  136. package/dist-server/service/inventory-check/inventory-check-query.js.map +1 -1
  137. package/dist-server/service/inventory-check/inventory-check-types.d.ts +20 -0
  138. package/dist-server/service/inventory-check/inventory-check-types.js +6 -6
  139. package/dist-server/service/inventory-check/inventory-check-types.js.map +1 -1
  140. package/dist-server/service/inventory-check/inventory-check.d.ts +24 -0
  141. package/dist-server/service/inventory-check/inventory-check.js +3 -4
  142. package/dist-server/service/inventory-check/inventory-check.js.map +1 -1
  143. package/dist-server/service/invoice/index.d.ts +7 -0
  144. package/dist-server/service/invoice/invoice-mutation.d.ts +11 -0
  145. package/dist-server/service/invoice/invoice-mutation.js +2 -2
  146. package/dist-server/service/invoice/invoice-mutation.js.map +1 -1
  147. package/dist-server/service/invoice/invoice-query.d.ts +11 -0
  148. package/dist-server/service/invoice/invoice-query.js +2 -2
  149. package/dist-server/service/invoice/invoice-query.js.map +1 -1
  150. package/dist-server/service/invoice/invoice-types.d.ts +97 -0
  151. package/dist-server/service/invoice/invoice-types.js +6 -6
  152. package/dist-server/service/invoice/invoice-types.js.map +1 -1
  153. package/dist-server/service/invoice/invoice.d.ts +58 -0
  154. package/dist-server/service/invoice/invoice.js +2 -2
  155. package/dist-server/service/invoice/invoice.js.map +1 -1
  156. package/dist-server/service/invoice-product/index.d.ts +7 -0
  157. package/dist-server/service/invoice-product/invoice-product-mutation.d.ts +7 -0
  158. package/dist-server/service/invoice-product/invoice-product-mutation.js +2 -2
  159. package/dist-server/service/invoice-product/invoice-product-mutation.js.map +1 -1
  160. package/dist-server/service/invoice-product/invoice-product-query.d.ts +11 -0
  161. package/dist-server/service/invoice-product/invoice-product-query.js +2 -2
  162. package/dist-server/service/invoice-product/invoice-product-query.js.map +1 -1
  163. package/dist-server/service/invoice-product/invoice-product-types.d.ts +32 -0
  164. package/dist-server/service/invoice-product/invoice-product-types.js +8 -8
  165. package/dist-server/service/invoice-product/invoice-product-types.js.map +1 -1
  166. package/dist-server/service/invoice-product/invoice-product.d.ts +26 -0
  167. package/dist-server/service/invoice-product/invoice-product.js +3 -4
  168. package/dist-server/service/invoice-product/invoice-product.js.map +1 -1
  169. package/dist-server/service/job-sheet/index.d.ts +7 -0
  170. package/dist-server/service/job-sheet/job-sheet-mutation.d.ts +10 -0
  171. package/dist-server/service/job-sheet/job-sheet-mutation.js +2 -2
  172. package/dist-server/service/job-sheet/job-sheet-mutation.js.map +1 -1
  173. package/dist-server/service/job-sheet/job-sheet-query.d.ts +11 -0
  174. package/dist-server/service/job-sheet/job-sheet-query.js +2 -2
  175. package/dist-server/service/job-sheet/job-sheet-query.js.map +1 -1
  176. package/dist-server/service/job-sheet/job-sheet-types.d.ts +27 -0
  177. package/dist-server/service/job-sheet/job-sheet-types.js +6 -6
  178. package/dist-server/service/job-sheet/job-sheet-types.js.map +1 -1
  179. package/dist-server/service/job-sheet/job-sheet.d.ts +27 -0
  180. package/dist-server/service/job-sheet/job-sheet.js +3 -4
  181. package/dist-server/service/job-sheet/job-sheet.js.map +1 -1
  182. package/dist-server/service/manifest/index.d.ts +5 -0
  183. package/dist-server/service/manifest/manifest-mutation.d.ts +9 -0
  184. package/dist-server/service/manifest/manifest-mutation.js +2 -2
  185. package/dist-server/service/manifest/manifest-mutation.js.map +1 -1
  186. package/dist-server/service/manifest/manifest-query.d.ts +11 -0
  187. package/dist-server/service/manifest/manifest-query.js +2 -2
  188. package/dist-server/service/manifest/manifest-query.js.map +1 -1
  189. package/dist-server/service/manifest/manifest-type.d.ts +33 -0
  190. package/dist-server/service/manifest/manifest-type.js +10 -10
  191. package/dist-server/service/manifest/manifest-type.js.map +1 -1
  192. package/dist-server/service/manifest/manifest.d.ts +27 -0
  193. package/dist-server/service/manifest/manifest.js +3 -3
  194. package/dist-server/service/manifest/manifest.js.map +1 -1
  195. package/dist-server/service/order-inventory/index.d.ts +7 -0
  196. package/dist-server/service/order-inventory/order-inventory-mutation.d.ts +7 -0
  197. package/dist-server/service/order-inventory/order-inventory-mutation.js +2 -2
  198. package/dist-server/service/order-inventory/order-inventory-mutation.js.map +1 -1
  199. package/dist-server/service/order-inventory/order-inventory-query.d.ts +18 -0
  200. package/dist-server/service/order-inventory/order-inventory-query.js +2 -2
  201. package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
  202. package/dist-server/service/order-inventory/order-inventory-types.d.ts +84 -0
  203. package/dist-server/service/order-inventory/order-inventory-types.js +8 -9
  204. package/dist-server/service/order-inventory/order-inventory-types.js.map +1 -1
  205. package/dist-server/service/order-inventory/order-inventory.d.ts +114 -0
  206. package/dist-server/service/order-inventory/order-inventory.js +8 -9
  207. package/dist-server/service/order-inventory/order-inventory.js.map +1 -1
  208. package/dist-server/service/order-product/index.d.ts +7 -0
  209. package/dist-server/service/order-product/order-product-mutation.d.ts +7 -0
  210. package/dist-server/service/order-product/order-product-mutation.js +2 -2
  211. package/dist-server/service/order-product/order-product-mutation.js.map +1 -1
  212. package/dist-server/service/order-product/order-product-query.d.ts +11 -0
  213. package/dist-server/service/order-product/order-product-query.js +2 -2
  214. package/dist-server/service/order-product/order-product-query.js.map +1 -1
  215. package/dist-server/service/order-product/order-product-types.d.ts +116 -0
  216. package/dist-server/service/order-product/order-product-types.js +8 -8
  217. package/dist-server/service/order-product/order-product-types.js.map +1 -1
  218. package/dist-server/service/order-product/order-product.d.ts +95 -0
  219. package/dist-server/service/order-product/order-product.js +24 -13
  220. package/dist-server/service/order-product/order-product.js.map +1 -1
  221. package/dist-server/service/order-tote/index.d.ts +7 -0
  222. package/dist-server/service/order-tote/order-tote-mutation.d.ts +4 -0
  223. package/dist-server/service/order-tote/order-tote-mutation.js +2 -2
  224. package/dist-server/service/order-tote/order-tote-mutation.js.map +1 -1
  225. package/dist-server/service/order-tote/order-tote-query.d.ts +8 -0
  226. package/dist-server/service/order-tote/order-tote-query.js +2 -2
  227. package/dist-server/service/order-tote/order-tote-query.js.map +1 -1
  228. package/dist-server/service/order-tote/order-tote-types.d.ts +19 -0
  229. package/dist-server/service/order-tote/order-tote-types.js +6 -6
  230. package/dist-server/service/order-tote/order-tote-types.js.map +1 -1
  231. package/dist-server/service/order-tote/order-tote.d.ts +20 -0
  232. package/dist-server/service/order-tote/order-tote.js +3 -4
  233. package/dist-server/service/order-tote/order-tote.js.map +1 -1
  234. package/dist-server/service/order-tote-item/index.d.ts +7 -0
  235. package/dist-server/service/order-tote-item/order-tote-item-mutation.d.ts +4 -0
  236. package/dist-server/service/order-tote-item/order-tote-item-mutation.js +2 -2
  237. package/dist-server/service/order-tote-item/order-tote-item-mutation.js.map +1 -1
  238. package/dist-server/service/order-tote-item/order-tote-item-query.d.ts +7 -0
  239. package/dist-server/service/order-tote-item/order-tote-item-query.js +2 -2
  240. package/dist-server/service/order-tote-item/order-tote-item-query.js.map +1 -1
  241. package/dist-server/service/order-tote-item/order-tote-item-types.d.ts +22 -0
  242. package/dist-server/service/order-tote-item/order-tote-item-types.js +6 -6
  243. package/dist-server/service/order-tote-item/order-tote-item-types.js.map +1 -1
  244. package/dist-server/service/order-tote-item/order-tote-item.d.ts +23 -0
  245. package/dist-server/service/order-tote-item/order-tote-item.js +2 -2
  246. package/dist-server/service/order-tote-item/order-tote-item.js.map +1 -1
  247. package/dist-server/service/order-tote-seal/index.d.ts +7 -0
  248. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.d.ts +4 -0
  249. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js +2 -2
  250. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js.map +1 -1
  251. package/dist-server/service/order-tote-seal/order-tote-seal-query.d.ts +12 -0
  252. package/dist-server/service/order-tote-seal/order-tote-seal-query.js +2 -2
  253. package/dist-server/service/order-tote-seal/order-tote-seal-query.js.map +1 -1
  254. package/dist-server/service/order-tote-seal/order-tote-seal-types.d.ts +17 -0
  255. package/dist-server/service/order-tote-seal/order-tote-seal-types.js +6 -6
  256. package/dist-server/service/order-tote-seal/order-tote-seal-types.js.map +1 -1
  257. package/dist-server/service/order-tote-seal/order-tote-seal.d.ts +14 -0
  258. package/dist-server/service/order-tote-seal/order-tote-seal.js +2 -2
  259. package/dist-server/service/order-tote-seal/order-tote-seal.js.map +1 -1
  260. package/dist-server/service/order-vas/index.d.ts +7 -0
  261. package/dist-server/service/order-vas/order-vas-mutation.d.ts +5 -0
  262. package/dist-server/service/order-vas/order-vas-mutation.js +2 -2
  263. package/dist-server/service/order-vas/order-vas-mutation.js.map +1 -1
  264. package/dist-server/service/order-vas/order-vas-query.d.ts +11 -0
  265. package/dist-server/service/order-vas/order-vas-query.js +2 -2
  266. package/dist-server/service/order-vas/order-vas-query.js.map +1 -1
  267. package/dist-server/service/order-vas/order-vas-types.d.ts +57 -0
  268. package/dist-server/service/order-vas/order-vas-types.js +6 -6
  269. package/dist-server/service/order-vas/order-vas-types.js.map +1 -1
  270. package/dist-server/service/order-vas/order-vas.d.ts +65 -0
  271. package/dist-server/service/order-vas/order-vas.js +8 -10
  272. package/dist-server/service/order-vas/order-vas.js.map +1 -1
  273. package/dist-server/service/others/index.d.ts +3 -0
  274. package/dist-server/service/others/other-query.d.ts +10 -0
  275. package/dist-server/service/others/other-query.js +41 -11
  276. package/dist-server/service/others/other-query.js.map +1 -1
  277. package/dist-server/service/others/other-types.d.ts +40 -0
  278. package/dist-server/service/others/other-types.js +5 -6
  279. package/dist-server/service/others/other-types.js.map +1 -1
  280. package/dist-server/service/purchase-order/index.d.ts +7 -0
  281. package/dist-server/service/purchase-order/purchase-order-mutation.d.ts +18 -0
  282. package/dist-server/service/purchase-order/purchase-order-mutation.js +11 -21
  283. package/dist-server/service/purchase-order/purchase-order-mutation.js.map +1 -1
  284. package/dist-server/service/purchase-order/purchase-order-query.d.ts +54 -0
  285. package/dist-server/service/purchase-order/purchase-order-query.js +2 -2
  286. package/dist-server/service/purchase-order/purchase-order-query.js.map +1 -1
  287. package/dist-server/service/purchase-order/purchase-order-types.d.ts +56 -0
  288. package/dist-server/service/purchase-order/purchase-order-types.js +6 -6
  289. package/dist-server/service/purchase-order/purchase-order-types.js.map +1 -1
  290. package/dist-server/service/purchase-order/purchase-order.d.ts +46 -0
  291. package/dist-server/service/purchase-order/purchase-order.js +5 -6
  292. package/dist-server/service/purchase-order/purchase-order.js.map +1 -1
  293. package/dist-server/service/purchase-order-other-charge/index.d.ts +7 -0
  294. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.d.ts +4 -0
  295. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js +2 -2
  296. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js.map +1 -1
  297. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.d.ts +11 -0
  298. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js +2 -2
  299. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js.map +1 -1
  300. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-types.d.ts +18 -0
  301. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-types.js +6 -6
  302. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-types.js.map +1 -1
  303. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.d.ts +20 -0
  304. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js +2 -2
  305. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js.map +1 -1
  306. package/dist-server/service/release-good/index.d.ts +7 -0
  307. package/dist-server/service/release-good/release-good-mutation.d.ts +26 -0
  308. package/dist-server/service/release-good/release-good-mutation.js +3 -3
  309. package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
  310. package/dist-server/service/release-good/release-good-query.d.ts +17 -0
  311. package/dist-server/service/release-good/release-good-query.js +2 -2
  312. package/dist-server/service/release-good/release-good-query.js.map +1 -1
  313. package/dist-server/service/release-good/release-good-types.d.ts +233 -0
  314. package/dist-server/service/release-good/release-good-types.js +21 -22
  315. package/dist-server/service/release-good/release-good-types.js.map +1 -1
  316. package/dist-server/service/release-good/release-good.d.ts +121 -0
  317. package/dist-server/service/release-good/release-good.js +5 -6
  318. package/dist-server/service/release-good/release-good.js.map +1 -1
  319. package/dist-server/service/retail-replenishment-order/index.d.ts +7 -0
  320. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.d.ts +16 -0
  321. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js +2 -2
  322. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js.map +1 -1
  323. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.d.ts +11 -0
  324. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js +2 -2
  325. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js.map +1 -1
  326. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.d.ts +39 -0
  327. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js +6 -6
  328. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js.map +1 -1
  329. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.d.ts +29 -0
  330. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js +3 -4
  331. package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js.map +1 -1
  332. package/dist-server/service/return-order/index.d.ts +7 -0
  333. package/dist-server/service/return-order/return-order-mutation.d.ts +18 -0
  334. package/dist-server/service/return-order/return-order-mutation.js +3 -3
  335. package/dist-server/service/return-order/return-order-mutation.js.map +1 -1
  336. package/dist-server/service/return-order/return-order-query.d.ts +13 -0
  337. package/dist-server/service/return-order/return-order-query.js +2 -2
  338. package/dist-server/service/return-order/return-order-query.js.map +1 -1
  339. package/dist-server/service/return-order/return-order-types.d.ts +76 -0
  340. package/dist-server/service/return-order/return-order-types.js +10 -11
  341. package/dist-server/service/return-order/return-order-types.js.map +1 -1
  342. package/dist-server/service/return-order/return-order.d.ts +33 -0
  343. package/dist-server/service/return-order/return-order.js +3 -4
  344. package/dist-server/service/return-order/return-order.js.map +1 -1
  345. package/dist-server/service/reverse-kitting-order/index.d.ts +7 -0
  346. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.d.ts +14 -0
  347. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js +2 -2
  348. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js.map +1 -1
  349. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.d.ts +14 -0
  350. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js +2 -2
  351. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js.map +1 -1
  352. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.d.ts +61 -0
  353. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js +15 -16
  354. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js.map +1 -1
  355. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.d.ts +34 -0
  356. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js +5 -6
  357. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js.map +1 -1
  358. package/dist-server/service/reverse-kitting-order-inventory/index.d.ts +7 -0
  359. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.d.ts +9 -0
  360. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js +2 -2
  361. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js.map +1 -1
  362. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.d.ts +11 -0
  363. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js +2 -2
  364. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js.map +1 -1
  365. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.d.ts +35 -0
  366. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js +6 -6
  367. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js.map +1 -1
  368. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.d.ts +39 -0
  369. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js +5 -6
  370. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js.map +1 -1
  371. package/dist-server/service/shipping-order/index.d.ts +7 -0
  372. package/dist-server/service/shipping-order/shipping-order-mutation.d.ts +7 -0
  373. package/dist-server/service/shipping-order/shipping-order-mutation.js +2 -2
  374. package/dist-server/service/shipping-order/shipping-order-mutation.js.map +1 -1
  375. package/dist-server/service/shipping-order/shipping-order-query.d.ts +11 -0
  376. package/dist-server/service/shipping-order/shipping-order-query.js +2 -2
  377. package/dist-server/service/shipping-order/shipping-order-query.js.map +1 -1
  378. package/dist-server/service/shipping-order/shipping-order-types.d.ts +33 -0
  379. package/dist-server/service/shipping-order/shipping-order-types.js +6 -6
  380. package/dist-server/service/shipping-order/shipping-order-types.js.map +1 -1
  381. package/dist-server/service/shipping-order/shipping-order.d.ts +33 -0
  382. package/dist-server/service/shipping-order/shipping-order.js +3 -4
  383. package/dist-server/service/shipping-order/shipping-order.js.map +1 -1
  384. package/dist-server/service/transfer-order/index.d.ts +7 -0
  385. package/dist-server/service/transfer-order/transfer-order-mutation.d.ts +16 -0
  386. package/dist-server/service/transfer-order/transfer-order-mutation.js +3 -3
  387. package/dist-server/service/transfer-order/transfer-order-mutation.js.map +1 -1
  388. package/dist-server/service/transfer-order/transfer-order-query.d.ts +11 -0
  389. package/dist-server/service/transfer-order/transfer-order-query.js +2 -2
  390. package/dist-server/service/transfer-order/transfer-order-query.js.map +1 -1
  391. package/dist-server/service/transfer-order/transfer-order-types.d.ts +37 -0
  392. package/dist-server/service/transfer-order/transfer-order-types.js +6 -6
  393. package/dist-server/service/transfer-order/transfer-order-types.js.map +1 -1
  394. package/dist-server/service/transfer-order/transfer-order.d.ts +30 -0
  395. package/dist-server/service/transfer-order/transfer-order.js +3 -4
  396. package/dist-server/service/transfer-order/transfer-order.js.map +1 -1
  397. package/dist-server/service/vas/index.d.ts +7 -0
  398. package/dist-server/service/vas/vas-mutation.d.ts +9 -0
  399. package/dist-server/service/vas/vas-mutation.js +2 -2
  400. package/dist-server/service/vas/vas-mutation.js.map +1 -1
  401. package/dist-server/service/vas/vas-query.d.ts +11 -0
  402. package/dist-server/service/vas/vas-query.js +2 -2
  403. package/dist-server/service/vas/vas-query.js.map +1 -1
  404. package/dist-server/service/vas/vas-types.d.ts +27 -0
  405. package/dist-server/service/vas/vas-types.js +6 -6
  406. package/dist-server/service/vas/vas-types.js.map +1 -1
  407. package/dist-server/service/vas/vas.d.ts +22 -0
  408. package/dist-server/service/vas/vas.js +2 -2
  409. package/dist-server/service/vas/vas.js.map +1 -1
  410. package/dist-server/service/vas-order/index.d.ts +7 -0
  411. package/dist-server/service/vas-order/vas-order-mutation.d.ts +9 -0
  412. package/dist-server/service/vas-order/vas-order-mutation.js +2 -2
  413. package/dist-server/service/vas-order/vas-order-mutation.js.map +1 -1
  414. package/dist-server/service/vas-order/vas-order-query.d.ts +12 -0
  415. package/dist-server/service/vas-order/vas-order-query.js +2 -2
  416. package/dist-server/service/vas-order/vas-order-query.js.map +1 -1
  417. package/dist-server/service/vas-order/vas-order-types.d.ts +21 -0
  418. package/dist-server/service/vas-order/vas-order-types.js +6 -6
  419. package/dist-server/service/vas-order/vas-order-types.js.map +1 -1
  420. package/dist-server/service/vas-order/vas-order.d.ts +22 -0
  421. package/dist-server/service/vas-order/vas-order.js +3 -4
  422. package/dist-server/service/vas-order/vas-order.js.map +1 -1
  423. package/dist-server/tsconfig.tsbuildinfo +1 -1
  424. package/dist-server/utils/datetime-util.d.ts +7 -0
  425. package/dist-server/utils/datetime-util.js.map +1 -1
  426. package/dist-server/utils/index.d.ts +3 -0
  427. package/dist-server/utils/inventory-util.d.ts +75 -0
  428. package/dist-server/utils/inventory-util.js +2 -2
  429. package/dist-server/utils/inventory-util.js.map +1 -1
  430. package/dist-server/utils/order-no-generator.d.ts +25 -0
  431. package/package.json +13 -13
  432. package/server/controllers/order-controller.ts +1 -1
  433. package/server/service/arrival-notice/arrival-notice-mutation.ts +123 -26
  434. package/server/service/claim/claim-mutation.ts +3 -3
  435. package/server/service/delivery-order/delivery-order-mutation.ts +6 -6
  436. package/server/service/draft-release-good/draft-release-good-mutation.ts +11 -10
  437. package/server/service/draft-release-good/draft-release-good-query.ts +1 -1
  438. package/server/service/inventory-check/inventory-check-mutation.ts +1 -1
  439. package/server/service/order-inventory/order-inventory-query.ts +1 -1
  440. package/server/service/order-product/order-product.ts +26 -4
  441. package/server/service/others/other-query.ts +78 -19
  442. package/server/service/purchase-order/purchase-order-mutation.ts +5 -4
  443. package/server/service/release-good/release-good-mutation.ts +7 -7
  444. package/server/service/release-good/release-good-query.ts +16 -16
  445. package/server/service/return-order/return-order-mutation.ts +3 -3
  446. package/server/service/reverse-kitting-order/reverse-kitting-order-mutation.ts +5 -5
  447. package/server/service/reverse-kitting-order/reverse-kitting-order-query.ts +1 -1
  448. package/server/service/transfer-order/transfer-order-mutation.ts +3 -3
  449. package/server/utils/inventory-util.ts +20 -20
@@ -1 +1 @@
1
- {"version":3,"file":"other-query.js","sourceRoot":"","sources":["../../../server/service/others/other-query.ts"],"names":[],"mappings":"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","sourcesContent":["import orderBy from 'lodash/orderBy'\nimport { Arg, Args, Ctx, Directive, Query, Resolver } from 'type-graphql'\nimport { EntityManager } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getPermittedBizplaces } from '@things-factory/biz-base'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport { PartnerSetting, Setting } from '@things-factory/setting-base'\nimport { Domain, ListParam } from '@things-factory/shell'\n\nimport { InventoryProductGroup, InventoryProductGroupList, NewOrderInventory, NewOrderProduct, OrderInventory, OrderProduct } from '../'\nimport { InventoryUtil } from '../../utils'\n\n@Resolver()\nexport class OtherQuery {\n @Directive('@privilege(category: \"inventory\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async allBizplaceProductInventory(@Ctx() context: ResolverContext, @Args() params: ListParam): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: companyDomain } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.bizplaceProductInventory(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"inventory\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async inventoryProductGroup(@Ctx() context: ResolverContext, @Args() params: ListParam): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.bizplaceInventoryProductGroup(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async inventoryProductGroupOpenAPI(@Ctx() context: ResolverContext, @Args() params: ListParam): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.inventoryProductGroupOpenAPI(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [OrderInventory])\n async bulkUploadValidateWarehousePartnersProductsQuantity(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderInventories', type => [NewOrderInventory], { nullable: true }) orderInventories?: NewOrderInventory[]\n ): Promise<OrderInventory[]> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n const partnerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({\n where: {\n id: partnerBizplaceId\n },\n relations: ['company', 'company.domain']\n })\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n let newOrderInventories: any[] = []\n\n for (var i = 0; i < orderInventories.length; i++) {\n const orderInventory: any = orderInventories[i]\n\n let filters: any[] = [\n {\n name: 'productName',\n operator: 'eq',\n value: orderInventory.productSKU\n }\n ]\n\n if (orderInventory?.packingType != null) {\n filters.push({\n name: 'packingType',\n operator: 'eq',\n value: orderInventory.packingType\n })\n }\n\n const params: any = {\n filters: [...filters]\n }\n\n const { items, total } = await InventoryUtil.bizplaceInventoryProductGroup(bizplaces, params, context, tx)\n\n // Filter to find for item with enough remain qty\n const availableItems = items.filter(item => item.remainQty >= orderInventory.releaseQty)\n let availableItem\n\n if (availableItems.length > 0) {\n availableItem = availableItems[0]\n }\n\n let packageUomValue = availableItem ? availableItem.remainUomValue / availableItem.remainQty : null\n const newOrderInventory: any = {\n product: availableItem\n ? {\n id: availableItem.productId,\n sku: availableItem.productSKU,\n name: availableItem.productName\n }\n : { id: null },\n inventory: availableItem\n ? {\n ...availableItem,\n remainQty: availableItem ? availableItem.remainQty : null,\n remainUomValue: availableItem ? availableItem.remainUomValue : null,\n remainUomValueWithUom: availableItem ? availableItem.remainUomValueWithUom : ''\n }\n : null,\n productId: availableItem ? availableItem.productId : null,\n productSKU: availableItem ? availableItem.productSKU : orderInventory.productSKU,\n productName: availableItem ? availableItem.productName : null,\n uom: availableItem ? availableItem.uom : null,\n remainQty: availableItem ? availableItem.remainQty : null,\n remainUomValue: availableItem ? availableItem.remainUomValue : null,\n remainUomValueWithUom: availableItem ? availableItem.remainUomValueWithUom : '',\n batchId: availableItem ? availableItem.batchId : null,\n batchIdRef: availableItem ? availableItem.batchIdRef : null,\n packingType: availableItem ? availableItem.packingType : orderInventory.packingType,\n packingSize: availableItem ? availableItem.packingSize : 1,\n releaseQty: orderInventory.releaseQty ? (Number.isInteger(orderInventory.releaseQty) ? orderInventory.releaseQty : null) : null,\n releaseUomValue: availableItem\n ? Number.isInteger(orderInventory.releaseQty)\n ? parseFloat((orderInventory.releaseQty * packageUomValue).toFixed(2))\n : null\n : null,\n groupType: availableItem ? availableItem.groupType : null,\n isError: !availableItem ? true : false\n }\n\n newOrderInventories.push(newOrderInventory)\n\n // end loop\n }\n\n try {\n await InventoryUtil.validateWarehousePartnersProductsQuantity(domain, partnerBizplace, newOrderInventories, context, tx)\n } catch (e) {\n const errorData = JSON.parse(e.detail.data)\n\n errorData.forEach(dt => {\n let idx = newOrderInventories.findIndex(x => x.product?.id && x.product.id == dt.productId && x.batchId == dt.batchId && x.packingType == dt.packingType)\n\n if (idx >= 0) {\n newOrderInventories[idx].remainQty = dt.availableQty\n newOrderInventories[idx].remainUomValue = dt.availableUomValue\n newOrderInventories[idx].isError = dt.availableQty == null ? newOrderInventories[idx].releaseQty > 0 : newOrderInventories[idx].releaseQty > dt.availableQty\n newOrderInventories[idx].remainUomValueWithUom = dt.availableUomValue == null ? '' : `${dt.availableUomValue} ${dt.uom}`\n if (newOrderInventories[idx].inventory != null) {\n newOrderInventories[idx].inventory.remainQty = dt.availableQty\n newOrderInventories[idx].inventory.remainUomValue = dt.availableUomValue\n newOrderInventories[idx].inventory.remainUomValueWithUom = `${dt.availableUomValue} ${dt.uom}` || ''\n }\n }\n })\n }\n\n return orderBy(newOrderInventories, ['isError'], ['desc'])\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [InventoryProductGroup])\n async bulkUploadValidateOrderProducts(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderProducts', type => [NewOrderProduct], { nullable: true }) orderProducts: NewOrderProduct[]\n ): Promise<OrderProduct[]> {\n const { domain, user, tx, bizplace } = context.state\n\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['domain', 'company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n let strictProduct: boolean = false\n\n const strictProductSelectionSetting: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: { id: domain.id }, category: 'id-rule', name: 'strict-product-selection' }\n })\n\n if (strictProductSelectionSetting) strictProduct = strictProductSelectionSetting.value\n\n const partnerStrictProductSelectionSetting: PartnerSetting = await tx.getRepository(PartnerSetting).findOne({\n where: {\n setting: { id: strictProductSelectionSetting.id },\n domain: { id: domain.id },\n partnerDomain: { id: foundPermittedBizplace?.domain?.id }\n }\n })\n\n if (partnerStrictProductSelectionSetting) strictProduct = partnerStrictProductSelectionSetting.value\n\n let newOrderProducts: any[] = []\n\n for (var i = 0; i < orderProducts.length; i++) {\n const orderProduct = orderProducts[i]\n const productSKU: string = orderProduct.productSKU\n const foundProduct: Product = await tx.getRepository(Product).findOne({\n where: {\n sku: productSKU,\n bizplace: { id: companyBizplace.id }\n }\n })\n\n let newOrderProduct: any\n\n if (foundProduct) {\n let productDetail: ProductDetail\n const hasConditions: boolean = Boolean(\n (orderProduct?.packingType && orderProduct?.packingType.trim() != '') || (orderProduct?.uom && orderProduct?.uom.trim() != '')\n )\n let productDetailCondition: any = { product: foundProduct }\n\n if (hasConditions) {\n if (orderProduct?.packingType && orderProduct.packingType.trim() != '') productDetailCondition.packingType = orderProduct.packingType.trim()\n\n if (orderProduct?.uom && orderProduct.uom.trim() != '') productDetailCondition.uom = orderProduct.uom.trim()\n } else {\n productDetailCondition.isDefault = true\n }\n\n productDetail = await productDetailRepo.findOne({\n where: productDetailCondition\n })\n\n const uomValue: number =\n strictProduct == true ? (productDetail?.uomValue ? productDetail.uomValue : null) : orderProduct?.uomValue ? orderProduct.uomValue : productDetail.uomValue\n\n newOrderProduct = {\n ...orderProduct,\n packingType: orderProduct?.packingType ? orderProduct.packingType : productDetail.packingType,\n packingSize: productDetail?.packingSize ? productDetail.packingSize : null,\n uom: productDetail?.uom ? productDetail.uom : null,\n uomValue: uomValue,\n productName: `${foundProduct.name}(${foundProduct.description}(${foundProduct.sku}))`,\n productBrand: foundProduct?.brand ? foundProduct.brand : null,\n isError: productDetail ? false : true,\n product: {\n id: foundProduct.id,\n name: foundProduct.name,\n sku: foundProduct.sku,\n type: foundProduct.type,\n brand: foundProduct.brand,\n primaryUnit: productDetail?.uom ? productDetail.uom : null,\n primaryValue: productDetail?.uomValue ? productDetail.uomValue : null\n },\n totalUomValue: orderProduct.packQty > 0 ? (uomValue ? `${(orderProduct.packQty * uomValue).toFixed(2)} ${productDetail.uom}` : null) : null\n }\n } else {\n newOrderProduct = {\n ...orderProduct,\n productName: orderProduct.productSKU,\n isError: true\n }\n }\n\n newOrderProducts.push(newOrderProduct)\n }\n\n return newOrderProducts\n }\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [InventoryProductGroup])\n async bulkUploadValidatePoOrderProducts(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderProducts', type => [NewOrderProduct], { nullable: true }) orderProducts: NewOrderProduct[]\n ): Promise<OrderProduct[]> {\n const { domain, user, tx, bizplace } = context.state\n\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['domain', 'company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n let strictProduct: boolean = false\n\n const strictProductSelectionSetting: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: { id: domain.id }, category: 'id-rule', name: 'strict-product-selection' }\n })\n\n if (strictProductSelectionSetting) strictProduct = strictProductSelectionSetting.value\n\n const partnerStrictProductSelectionSetting: PartnerSetting = await tx.getRepository(PartnerSetting).findOne({\n where: {\n setting: { id: strictProductSelectionSetting.id },\n domain: { id: domain.id },\n partnerDomain: { id: foundPermittedBizplace?.domain?.id }\n }\n })\n\n if (partnerStrictProductSelectionSetting) strictProduct = partnerStrictProductSelectionSetting.value\n\n let newOrderProducts: any[] = []\n\n for (var i = 0; i < orderProducts.length; i++) {\n const orderProduct = orderProducts[i]\n const productSKU: string = orderProduct.productSKU\n const foundProduct: Product = await tx.getRepository(Product).findOne({\n where: {\n sku: productSKU,\n bizplace: { id: companyBizplace.id }\n }\n })\n\n let newOrderProduct: any\n\n if (foundProduct) {\n let productDetail: ProductDetail\n const hasConditions: boolean = Boolean(\n (orderProduct?.packingType && orderProduct?.packingType.trim() != '') || (orderProduct?.uom && orderProduct?.uom.trim() != '')\n )\n let productDetailCondition: any = { product: foundProduct }\n\n if (hasConditions) {\n if (orderProduct?.packingType && orderProduct.packingType.trim() != '') productDetailCondition.packingType = orderProduct.packingType.trim()\n\n if (orderProduct?.uom && orderProduct.uom.trim() != '') productDetailCondition.uom = orderProduct.uom.trim()\n } else {\n productDetailCondition.isDefault = true\n }\n\n productDetail = await productDetailRepo.findOne({\n where: productDetailCondition\n })\n\n const uomValue: number =\n strictProduct == true ? (productDetail?.uomValue ? productDetail.uomValue : null) : orderProduct?.uomValue ? orderProduct.uomValue : productDetail.uomValue\n\n newOrderProduct = {\n ...orderProduct,\n packingType: orderProduct?.packingType ? orderProduct.packingType : productDetail.packingType,\n packingSize: productDetail?.packingSize ? productDetail.packingSize : null,\n uom: productDetail?.uom ? productDetail.uom : null,\n uomValue: uomValue,\n productName: `${foundProduct.name}(${foundProduct.description}(${foundProduct.sku}))`,\n productBrand: foundProduct?.brand ? foundProduct.brand : null,\n isError: productDetail ? false : true,\n product: {\n id: foundProduct.id,\n name: foundProduct.name,\n sku: foundProduct.sku,\n type: foundProduct.type,\n brand: foundProduct.brand,\n primaryUnit: productDetail?.uom ? productDetail.uom : null,\n primaryValue: productDetail?.uomValue ? productDetail.uomValue : null\n },\n totalUomValue: orderProduct.packQty > 0 ? (uomValue ? `${(orderProduct.packQty * uomValue).toFixed(2)} ${productDetail.uom}` : null) : null\n }\n } else {\n newOrderProduct = {\n ...orderProduct,\n productName: orderProduct.productSKU,\n isError: true\n }\n }\n\n newOrderProducts.push(newOrderProduct)\n }\n\n return newOrderProducts\n }\n}\n"]}
1
+ {"version":3,"file":"other-query.js","sourceRoot":"","sources":["../../../server/service/others/other-query.ts"],"names":[],"mappings":"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","sourcesContent":["import orderBy from 'lodash/orderBy'\nimport { Arg, Args, Ctx, Directive, Query, Resolver } from 'type-graphql'\nimport { EntityManager } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getPermittedBizplaces } from '@things-factory/biz-base'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport { PartnerSetting, Setting } from '@things-factory/setting-base'\nimport { Domain, ListParam } from '@things-factory/shell'\n\nimport {\n InventoryProductGroup,\n InventoryProductGroupList,\n NewOrderInventory,\n NewOrderProduct,\n OrderInventory,\n OrderProduct\n} from '../'\nimport { InventoryUtil } from '../../utils'\n\n@Resolver()\nexport class OtherQuery {\n @Directive('@privilege(category: \"inventory\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async allBizplaceProductInventory(\n @Ctx() context: ResolverContext,\n @Args() params: ListParam\n ): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: companyDomain } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.bizplaceProductInventory(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"inventory\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async inventoryProductGroup(\n @Ctx() context: ResolverContext,\n @Args() params: ListParam\n ): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.bizplaceInventoryProductGroup(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async inventoryProductGroupOpenAPI(\n @Ctx() context: ResolverContext,\n @Args() params: ListParam\n ): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.inventoryProductGroupOpenAPI(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [OrderInventory])\n async bulkUploadValidateWarehousePartnersProductsQuantity(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderInventories', type => [NewOrderInventory], { nullable: true }) orderInventories?: NewOrderInventory[]\n ): Promise<OrderInventory[]> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n const partnerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({\n where: {\n id: partnerBizplaceId\n },\n relations: ['company', 'company.domain']\n })\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n let newOrderInventories: any[] = []\n\n for (var i = 0; i < orderInventories.length; i++) {\n const orderInventory: any = orderInventories[i]\n\n let filters: any[] = [\n {\n name: 'productName',\n operator: 'eq',\n value: orderInventory.productSKU\n }\n ]\n\n if (orderInventory?.packingType != null) {\n filters.push({\n name: 'packingType',\n operator: 'eq',\n value: orderInventory.packingType\n })\n }\n\n const params: any = {\n filters: [...filters]\n }\n\n const { items, total } = await InventoryUtil.bizplaceInventoryProductGroup(bizplaces, params, context, tx)\n\n // Filter to find for item with enough remain qty\n const availableItems = items.filter(item => item.remainQty >= orderInventory.releaseQty)\n let availableItem\n\n if (availableItems.length > 0) {\n availableItem = availableItems[0]\n }\n\n let packageUomValue = availableItem ? availableItem.remainUomValue / availableItem.remainQty : null\n const newOrderInventory: any = {\n product: availableItem\n ? {\n id: availableItem.productId,\n sku: availableItem.productSKU,\n name: availableItem.productName\n }\n : { id: null },\n inventory: availableItem\n ? {\n ...availableItem,\n remainQty: availableItem ? availableItem.remainQty : null,\n remainUomValue: availableItem ? availableItem.remainUomValue : null,\n remainUomValueWithUom: availableItem ? availableItem.remainUomValueWithUom : ''\n }\n : null,\n productId: availableItem ? availableItem.productId : null,\n productSKU: availableItem ? availableItem.productSKU : orderInventory.productSKU,\n productName: availableItem ? availableItem.productName : null,\n uom: availableItem ? availableItem.uom : null,\n remainQty: availableItem ? availableItem.remainQty : null,\n remainUomValue: availableItem ? availableItem.remainUomValue : null,\n remainUomValueWithUom: availableItem ? availableItem.remainUomValueWithUom : '',\n batchId: availableItem ? availableItem.batchId : null,\n batchIdRef: availableItem ? availableItem.batchIdRef : null,\n packingType: availableItem ? availableItem.packingType : orderInventory.packingType,\n packingSize: availableItem ? availableItem.packingSize : 1,\n releaseQty: orderInventory.releaseQty\n ? Number.isInteger(orderInventory.releaseQty)\n ? orderInventory.releaseQty\n : null\n : null,\n releaseUomValue: availableItem\n ? Number.isInteger(orderInventory.releaseQty)\n ? parseFloat((orderInventory.releaseQty * packageUomValue).toFixed(2))\n : null\n : null,\n groupType: availableItem ? availableItem.groupType : null,\n isError: !availableItem ? true : false\n }\n\n newOrderInventories.push(newOrderInventory)\n\n // end loop\n }\n\n try {\n await InventoryUtil.validateWarehousePartnersProductsQuantity(\n domain,\n partnerBizplace,\n newOrderInventories,\n context,\n tx\n )\n } catch (e) {\n const errorData = JSON.parse(e.detail.data)\n\n errorData.forEach(dt => {\n let idx = newOrderInventories.findIndex(\n x =>\n x.product?.id && x.product.id == dt.productId && x.batchId == dt.batchId && x.packingType == dt.packingType\n )\n\n if (idx >= 0) {\n newOrderInventories[idx].remainQty = dt.availableQty\n newOrderInventories[idx].remainUomValue = dt.availableUomValue\n newOrderInventories[idx].isError =\n dt.availableQty == null\n ? newOrderInventories[idx].releaseQty > 0\n : newOrderInventories[idx].releaseQty > dt.availableQty\n newOrderInventories[idx].remainUomValueWithUom =\n dt.availableUomValue == null ? '' : `${dt.availableUomValue} ${dt.uom}`\n if (newOrderInventories[idx].inventory != null) {\n newOrderInventories[idx].inventory.remainQty = dt.availableQty\n newOrderInventories[idx].inventory.remainUomValue = dt.availableUomValue\n newOrderInventories[idx].inventory.remainUomValueWithUom = `${dt.availableUomValue} ${dt.uom}` || ''\n }\n }\n })\n }\n\n return orderBy(newOrderInventories, ['isError'], ['desc'])\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [InventoryProductGroup])\n async bulkUploadValidateOrderProducts(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderProducts', type => [NewOrderProduct], { nullable: true }) orderProducts: NewOrderProduct[]\n ): Promise<OrderProduct[]> {\n const { domain, user, tx, bizplace } = context.state\n\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['domain', 'company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n let strictProduct: any = false\n\n const strictProductSelectionSetting: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: { id: domain.id }, category: 'id-rule', name: 'strict-product-selection' }\n })\n\n if (strictProductSelectionSetting) strictProduct = strictProductSelectionSetting.value\n\n const partnerStrictProductSelectionSetting: PartnerSetting = await tx.getRepository(PartnerSetting).findOne({\n where: {\n setting: { id: strictProductSelectionSetting.id },\n domain: { id: domain.id },\n partnerDomain: { id: foundPermittedBizplace?.domain?.id }\n }\n })\n\n if (partnerStrictProductSelectionSetting) strictProduct = partnerStrictProductSelectionSetting.value\n\n let newOrderProducts: any[] = []\n\n for (var i = 0; i < orderProducts.length; i++) {\n const orderProduct = orderProducts[i]\n const productSKU: string = orderProduct.productSKU\n const foundProduct: Product = await tx.getRepository(Product).findOne({\n where: {\n sku: productSKU,\n bizplace: { id: companyBizplace.id }\n }\n })\n\n let newOrderProduct: any\n\n if (foundProduct) {\n let productDetail: ProductDetail\n const hasConditions: boolean = Boolean(\n (orderProduct?.packingType && orderProduct?.packingType.trim() != '') ||\n (orderProduct?.uom && orderProduct?.uom.trim() != '')\n )\n let productDetailCondition: any = { product: foundProduct }\n\n if (hasConditions) {\n if (orderProduct?.packingType && orderProduct.packingType.trim() != '')\n productDetailCondition.packingType = orderProduct.packingType.trim()\n\n if (orderProduct?.uom && orderProduct.uom.trim() != '') productDetailCondition.uom = orderProduct.uom.trim()\n } else {\n productDetailCondition.isDefault = true\n }\n\n productDetail = await productDetailRepo.findOne({\n where: productDetailCondition\n })\n\n const uomValue: number =\n strictProduct == true\n ? productDetail?.uomValue\n ? productDetail.uomValue\n : null\n : orderProduct?.uomValue\n ? orderProduct.uomValue\n : productDetail.uomValue\n\n newOrderProduct = {\n ...orderProduct,\n packingType: orderProduct?.packingType ? orderProduct.packingType : productDetail.packingType,\n packingSize: productDetail?.packingSize ? productDetail.packingSize : null,\n uom: productDetail?.uom ? productDetail.uom : null,\n uomValue: uomValue,\n productName: `${foundProduct.name}(${foundProduct.description}(${foundProduct.sku}))`,\n productBrand: foundProduct?.brand ? foundProduct.brand : null,\n isError: productDetail ? false : true,\n product: {\n id: foundProduct.id,\n name: foundProduct.name,\n sku: foundProduct.sku,\n type: foundProduct.type,\n brand: foundProduct.brand,\n primaryUnit: productDetail?.uom ? productDetail.uom : null,\n primaryValue: productDetail?.uomValue ? productDetail.uomValue : null\n },\n totalUomValue:\n orderProduct.packQty > 0\n ? uomValue\n ? `${(orderProduct.packQty * uomValue).toFixed(2)} ${productDetail.uom}`\n : null\n : null\n }\n } else {\n newOrderProduct = {\n ...orderProduct,\n productName: orderProduct.productSKU,\n isError: true\n }\n }\n\n newOrderProducts.push(newOrderProduct)\n }\n\n return newOrderProducts\n }\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [InventoryProductGroup])\n async bulkUploadValidatePoOrderProducts(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderProducts', type => [NewOrderProduct], { nullable: true }) orderProducts: NewOrderProduct[]\n ): Promise<OrderProduct[]> {\n const { domain, user, tx, bizplace } = context.state\n\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['domain', 'company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n let strictProduct: any = false\n\n const strictProductSelectionSetting: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: { id: domain.id }, category: 'id-rule', name: 'strict-product-selection' }\n })\n\n if (strictProductSelectionSetting) strictProduct = strictProductSelectionSetting.value\n\n const partnerStrictProductSelectionSetting: PartnerSetting = await tx.getRepository(PartnerSetting).findOne({\n where: {\n setting: { id: strictProductSelectionSetting.id },\n domain: { id: domain.id },\n partnerDomain: { id: foundPermittedBizplace?.domain?.id }\n }\n })\n\n if (partnerStrictProductSelectionSetting) strictProduct = partnerStrictProductSelectionSetting.value\n\n let newOrderProducts: any[] = []\n\n for (var i = 0; i < orderProducts.length; i++) {\n const orderProduct = orderProducts[i]\n const productSKU: string = orderProduct.productSKU\n const foundProduct: Product = await tx.getRepository(Product).findOne({\n where: {\n sku: productSKU,\n bizplace: { id: companyBizplace.id }\n }\n })\n\n let newOrderProduct: any\n\n if (foundProduct) {\n let productDetail: ProductDetail\n const hasConditions: boolean = Boolean(\n (orderProduct?.packingType && orderProduct?.packingType.trim() != '') ||\n (orderProduct?.uom && orderProduct?.uom.trim() != '')\n )\n let productDetailCondition: any = { product: foundProduct }\n\n if (hasConditions) {\n if (orderProduct?.packingType && orderProduct.packingType.trim() != '')\n productDetailCondition.packingType = orderProduct.packingType.trim()\n\n if (orderProduct?.uom && orderProduct.uom.trim() != '') productDetailCondition.uom = orderProduct.uom.trim()\n } else {\n productDetailCondition.isDefault = true\n }\n\n productDetail = await productDetailRepo.findOne({\n where: productDetailCondition\n })\n\n const uomValue: number =\n strictProduct == true\n ? productDetail?.uomValue\n ? productDetail.uomValue\n : null\n : orderProduct?.uomValue\n ? orderProduct.uomValue\n : productDetail.uomValue\n\n newOrderProduct = {\n ...orderProduct,\n packingType: orderProduct?.packingType ? orderProduct.packingType : productDetail.packingType,\n packingSize: productDetail?.packingSize ? productDetail.packingSize : null,\n uom: productDetail?.uom ? productDetail.uom : null,\n uomValue: uomValue,\n productName: `${foundProduct.name}(${foundProduct.description}(${foundProduct.sku}))`,\n productBrand: foundProduct?.brand ? foundProduct.brand : null,\n isError: productDetail ? false : true,\n product: {\n id: foundProduct.id,\n name: foundProduct.name,\n sku: foundProduct.sku,\n type: foundProduct.type,\n brand: foundProduct.brand,\n primaryUnit: productDetail?.uom ? productDetail.uom : null,\n primaryValue: productDetail?.uomValue ? productDetail.uomValue : null\n },\n totalUomValue:\n orderProduct.packQty > 0\n ? uomValue\n ? `${(orderProduct.packQty * uomValue).toFixed(2)} ${productDetail.uom}`\n : null\n : null\n }\n } else {\n newOrderProduct = {\n ...orderProduct,\n productName: orderProduct.productSKU,\n isError: true\n }\n }\n\n newOrderProducts.push(newOrderProduct)\n }\n\n return newOrderProducts\n }\n}\n"]}
@@ -0,0 +1,40 @@
1
+ import { Product } from '@things-factory/product-base';
2
+ export declare class InventoryProductGroupList {
3
+ items: InventoryProductGroup[];
4
+ total: number;
5
+ }
6
+ export declare class InventoryProductGroup {
7
+ id: string;
8
+ productId: string;
9
+ batchId: string;
10
+ batchIdRef: string;
11
+ productSKU: string;
12
+ productName: string;
13
+ productBrand: string;
14
+ packingType: string;
15
+ packingSize: number;
16
+ palletId: string;
17
+ createdAt: Date;
18
+ packQty: number;
19
+ totalQty: number;
20
+ totalLockedQty: number;
21
+ totalLockedUomValue: number;
22
+ palletQty: number;
23
+ remainQty: number;
24
+ remainWeight: number;
25
+ remainUomValue: number;
26
+ remainUomValueWithUom: string;
27
+ uom: string;
28
+ uomValue: number;
29
+ totalUomValue: String;
30
+ groupType: string;
31
+ manufactureDate: Date;
32
+ unitPrice: number;
33
+ remark: string;
34
+ discountAmt: number;
35
+ miscAmt: number;
36
+ taxRate: number;
37
+ isError: Boolean;
38
+ product: Product;
39
+ expirationDate: Date;
40
+ }
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.InventoryProductGroup = exports.InventoryProductGroupList = void 0;
5
4
  const tslib_1 = require("tslib");
@@ -8,6 +7,7 @@ const product_base_1 = require("@things-factory/product-base");
8
7
  const shell_1 = require("@things-factory/shell");
9
8
  let InventoryProductGroupList = class InventoryProductGroupList {
10
9
  };
10
+ exports.InventoryProductGroupList = InventoryProductGroupList;
11
11
  tslib_1.__decorate([
12
12
  (0, type_graphql_1.Field)(type => [InventoryProductGroup], { nullable: true }),
13
13
  tslib_1.__metadata("design:type", Array)
@@ -16,12 +16,12 @@ tslib_1.__decorate([
16
16
  (0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true }),
17
17
  tslib_1.__metadata("design:type", Number)
18
18
  ], InventoryProductGroupList.prototype, "total", void 0);
19
- InventoryProductGroupList = tslib_1.__decorate([
19
+ exports.InventoryProductGroupList = InventoryProductGroupList = tslib_1.__decorate([
20
20
  (0, type_graphql_1.ObjectType)()
21
21
  ], InventoryProductGroupList);
22
- exports.InventoryProductGroupList = InventoryProductGroupList;
23
22
  let InventoryProductGroup = class InventoryProductGroup {
24
23
  };
24
+ exports.InventoryProductGroup = InventoryProductGroup;
25
25
  tslib_1.__decorate([
26
26
  (0, type_graphql_1.Field)({ nullable: true }),
27
27
  tslib_1.__metadata("design:type", String)
@@ -148,14 +148,13 @@ tslib_1.__decorate([
148
148
  ], InventoryProductGroup.prototype, "isError", void 0);
149
149
  tslib_1.__decorate([
150
150
  (0, type_graphql_1.Field)(type => product_base_1.Product, { nullable: true }),
151
- tslib_1.__metadata("design:type", typeof (_a = typeof product_base_1.Product !== "undefined" && product_base_1.Product) === "function" ? _a : Object)
151
+ tslib_1.__metadata("design:type", product_base_1.Product)
152
152
  ], InventoryProductGroup.prototype, "product", void 0);
153
153
  tslib_1.__decorate([
154
154
  (0, type_graphql_1.Field)(type => shell_1.ScalarDate, { nullable: true }),
155
155
  tslib_1.__metadata("design:type", Date)
156
156
  ], InventoryProductGroup.prototype, "expirationDate", void 0);
157
- InventoryProductGroup = tslib_1.__decorate([
157
+ exports.InventoryProductGroup = InventoryProductGroup = tslib_1.__decorate([
158
158
  (0, type_graphql_1.ObjectType)()
159
159
  ], InventoryProductGroup);
160
- exports.InventoryProductGroup = InventoryProductGroup;
161
160
  //# sourceMappingURL=other-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"other-types.js","sourceRoot":"","sources":["../../../server/service/others/other-types.ts"],"names":[],"mappings":";;;;;AAAA,+CAA4D;AAE5D,+DAAsD;AACtD,iDAAkD;AAG3C,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;CAMrC,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDAC7B;AAE9B;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDAC1B;AALF,yBAAyB;IADrC,IAAA,yBAAU,GAAE;GACA,yBAAyB,CAMrC;AANY,8DAAyB;AAS/B,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CAmGjC,CAAA;AAlGC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAChB;AAEV;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACX;AAEf;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACR;AAElB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACR;AAElB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACP;AAEnB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACP;AAEnB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACtB;AAEnB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,IAAI;wDAAA;AAEf;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDAC1B;AAEf;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACvB;AAEhB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6DACjB;AAEtB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kEACZ;AAE3B;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACtB;AAEjB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACxB;AAEjB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACrB;AAEpB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6DACnB;AAEtB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oEACG;AAE7B;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACf;AAEX;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACzB;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACX,MAAM;4DAAA;AAErB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC7B,IAAI;8DAAA;AAErB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACxB;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACZ;AAEd;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACtB;AAEnB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDAC1B;AAEf;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDAC1B;AAEf;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChC,OAAO;sDAAA;AAEhB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,sBAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0DAClC,sBAAO,oBAAP,sBAAO;sDAAA;AAEhB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC9B,IAAI;6DAAA;AAlGT,qBAAqB;IADjC,IAAA,yBAAU,GAAE;GACA,qBAAqB,CAmGjC;AAnGY,sDAAqB","sourcesContent":["import { Field, Float, Int, ObjectType } from 'type-graphql'\n\nimport { Product } from '@things-factory/product-base'\nimport { ScalarDate } from '@things-factory/shell'\n\n@ObjectType()\nexport class InventoryProductGroupList {\n @Field(type => [InventoryProductGroup], { nullable: true })\n items: InventoryProductGroup[]\n\n @Field(type => Int, { nullable: true })\n total: number\n}\n\n@ObjectType()\nexport class InventoryProductGroup {\n @Field({ nullable: true })\n id: string\n\n @Field({ nullable: true })\n productId: string\n\n @Field({ nullable: true })\n batchId: string\n\n @Field({ nullable: true })\n batchIdRef: string\n\n @Field({ nullable: true })\n productSKU: string\n\n @Field({ nullable: true })\n productName: string\n\n @Field({ nullable: true })\n productBrand: string\n\n @Field({ nullable: true })\n packingType: string\n\n @Field(type => Float, { nullable: true })\n packingSize: number\n\n @Field({ nullable: true })\n palletId: string\n\n @Field({ nullable: true })\n createdAt: Date\n\n @Field(type => Float, { nullable: true })\n packQty: number\n\n @Field(type => Int, { nullable: true })\n totalQty: number\n\n @Field(type => Int, { nullable: true })\n totalLockedQty: number\n\n @Field(type => Int, { nullable: true })\n totalLockedUomValue: number\n\n @Field(type => Int, { nullable: true })\n palletQty: number\n\n @Field(type => Float, { nullable: true })\n remainQty: number\n\n @Field(type => Float, { nullable: true })\n remainWeight: number\n\n @Field(type => Float, { nullable: true })\n remainUomValue: number\n\n @Field({ nullable: true })\n remainUomValueWithUom: string\n\n @Field({ nullable: true })\n uom: string\n\n @Field(type => Float, { nullable: true })\n uomValue: number\n\n @Field({ nullable: true })\n totalUomValue: String\n\n @Field({ nullable: true })\n groupType: string\n\n @Field(type => ScalarDate, { nullable: true })\n manufactureDate: Date\n\n @Field(type => Float, { nullable: true })\n unitPrice: number\n\n @Field({ nullable: true })\n remark: string\n\n @Field(type => Float, { nullable: true })\n discountAmt: number\n\n @Field(type => Float, { nullable: true })\n miscAmt: number\n\n @Field(type => Float, { nullable: true })\n taxRate: number\n\n @Field(type => Float, { nullable: true })\n isError: Boolean\n\n @Field(type => Product, { nullable: true })\n product: Product\n\n @Field(type => ScalarDate, { nullable: true })\n expirationDate: Date\n}\n"]}
1
+ {"version":3,"file":"other-types.js","sourceRoot":"","sources":["../../../server/service/others/other-types.ts"],"names":[],"mappings":";;;;AAAA,+CAA4D;AAE5D,+DAAsD;AACtD,iDAAkD;AAG3C,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;CAMrC,CAAA;AANY,8DAAyB;AAEpC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDAC7B;AAG9B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDAC1B;oCALF,yBAAyB;IADrC,IAAA,yBAAU,GAAE;GACA,yBAAyB,CAMrC;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CAmGjC,CAAA;AAnGY,sDAAqB;AAEhC;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAChB;AAGV;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACX;AAGf;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACR;AAGlB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACR;AAGlB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACN;AAGpB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACP;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACtB;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,IAAI;wDAAA;AAGf;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDAC1B;AAGf;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACvB;AAGhB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6DACjB;AAGtB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kEACZ;AAG3B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACtB;AAGjB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACxB;AAGjB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACrB;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6DACnB;AAGtB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oEACG;AAG7B;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACf;AAGX;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACzB;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACX,MAAM;4DAAA;AAGrB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACT;AAGjB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC7B,IAAI;8DAAA;AAGrB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACxB;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACZ;AAGd;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACtB;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDAC1B;AAGf;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDAC1B;AAGf;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChC,OAAO;sDAAA;AAGhB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,sBAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAClC,sBAAO;sDAAA;AAGhB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC9B,IAAI;6DAAA;gCAlGT,qBAAqB;IADjC,IAAA,yBAAU,GAAE;GACA,qBAAqB,CAmGjC","sourcesContent":["import { Field, Float, Int, ObjectType } from 'type-graphql'\n\nimport { Product } from '@things-factory/product-base'\nimport { ScalarDate } from '@things-factory/shell'\n\n@ObjectType()\nexport class InventoryProductGroupList {\n @Field(type => [InventoryProductGroup], { nullable: true })\n items: InventoryProductGroup[]\n\n @Field(type => Int, { nullable: true })\n total: number\n}\n\n@ObjectType()\nexport class InventoryProductGroup {\n @Field({ nullable: true })\n id: string\n\n @Field({ nullable: true })\n productId: string\n\n @Field({ nullable: true })\n batchId: string\n\n @Field({ nullable: true })\n batchIdRef: string\n\n @Field({ nullable: true })\n productSKU: string\n\n @Field({ nullable: true })\n productName: string\n\n @Field({ nullable: true })\n productBrand: string\n\n @Field({ nullable: true })\n packingType: string\n\n @Field(type => Float, { nullable: true })\n packingSize: number\n\n @Field({ nullable: true })\n palletId: string\n\n @Field({ nullable: true })\n createdAt: Date\n\n @Field(type => Float, { nullable: true })\n packQty: number\n\n @Field(type => Int, { nullable: true })\n totalQty: number\n\n @Field(type => Int, { nullable: true })\n totalLockedQty: number\n\n @Field(type => Int, { nullable: true })\n totalLockedUomValue: number\n\n @Field(type => Int, { nullable: true })\n palletQty: number\n\n @Field(type => Float, { nullable: true })\n remainQty: number\n\n @Field(type => Float, { nullable: true })\n remainWeight: number\n\n @Field(type => Float, { nullable: true })\n remainUomValue: number\n\n @Field({ nullable: true })\n remainUomValueWithUom: string\n\n @Field({ nullable: true })\n uom: string\n\n @Field(type => Float, { nullable: true })\n uomValue: number\n\n @Field({ nullable: true })\n totalUomValue: String\n\n @Field({ nullable: true })\n groupType: string\n\n @Field(type => ScalarDate, { nullable: true })\n manufactureDate: Date\n\n @Field(type => Float, { nullable: true })\n unitPrice: number\n\n @Field({ nullable: true })\n remark: string\n\n @Field(type => Float, { nullable: true })\n discountAmt: number\n\n @Field(type => Float, { nullable: true })\n miscAmt: number\n\n @Field(type => Float, { nullable: true })\n taxRate: number\n\n @Field(type => Float, { nullable: true })\n isError: Boolean\n\n @Field(type => Product, { nullable: true })\n product: Product\n\n @Field(type => ScalarDate, { nullable: true })\n expirationDate: Date\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { PurchaseOrder } from './purchase-order';
2
+ import { PurchaseOrderMutation } from './purchase-order-mutation';
3
+ import { PurchaseOrderQuery } from './purchase-order-query';
4
+ export declare const entities: (typeof PurchaseOrder)[];
5
+ export declare const resolvers: (typeof PurchaseOrderQuery | typeof PurchaseOrderMutation)[];
6
+ export * from './purchase-order-mutation';
7
+ export * from './purchase-order-query';
@@ -0,0 +1,18 @@
1
+ import type { FileUpload } from 'graphql-upload/GraphQLUpload.js';
2
+ import { EntityManager } from 'typeorm';
3
+ import { User } from '@things-factory/auth-base';
4
+ import { Bizplace } from '@things-factory/biz-base';
5
+ import { Domain } from '@things-factory/shell';
6
+ import { NewPurchaseOrder, OrderProduct, PurchaseOrder, PurchaseOrderPatch } from '../';
7
+ export declare class PurchaseOrderMutation {
8
+ upsertPurchaseOrder(context: ResolverContext, purchaseOrder: PurchaseOrderPatch, files?: FileUpload): Promise<PurchaseOrder>;
9
+ approvePurchaseOrder(id: string, context: ResolverContext): Promise<PurchaseOrder>;
10
+ rejectPurchaseOrder(id: string, context: ResolverContext): Promise<PurchaseOrder>;
11
+ createPurchaseOrder(purchaseOrder: NewPurchaseOrder, context: ResolverContext): Promise<PurchaseOrder>;
12
+ updatePurchaseOrder(name: string, patch: PurchaseOrderPatch, context: ResolverContext): Promise<PurchaseOrder>;
13
+ deletePurchaseOrder(name: string, context: ResolverContext): Promise<boolean>;
14
+ }
15
+ export declare function upsertPurchaseOrderFunction(_: any, purchaseOrder: any, files: FileUpload[], context: any, tx?: EntityManager): Promise<PurchaseOrder>;
16
+ export declare function createPurchaseOrderFunction(_: any, purchaseOrder: any, files: FileUpload[], context: any, tx?: EntityManager): Promise<PurchaseOrder>;
17
+ export declare function updatePurchaseOrderFunction(_: any, purchaseOrder: any, files: FileUpload[], context: any, tx?: EntityManager): Promise<PurchaseOrder>;
18
+ export declare function upsertPurchaseOrderProducts(domain: Domain, bizplace: Bizplace, purchaseOrder: PurchaseOrder, orderProducts: OrderProduct[], user: User, tx?: EntityManager): Promise<void>;
@@ -85,6 +85,7 @@ let PurchaseOrderMutation = class PurchaseOrderMutation {
85
85
  return true;
86
86
  }
87
87
  };
88
+ exports.PurchaseOrderMutation = PurchaseOrderMutation;
88
89
  tslib_1.__decorate([
89
90
  (0, type_graphql_1.Directive)('@privilege(category: "order_customer", privilege: "mutation")'),
90
91
  (0, type_graphql_1.Directive)('@transaction'),
@@ -144,10 +145,9 @@ tslib_1.__decorate([
144
145
  tslib_1.__metadata("design:paramtypes", [String, Object]),
145
146
  tslib_1.__metadata("design:returntype", Promise)
146
147
  ], PurchaseOrderMutation.prototype, "deletePurchaseOrder", null);
147
- PurchaseOrderMutation = tslib_1.__decorate([
148
+ exports.PurchaseOrderMutation = PurchaseOrderMutation = tslib_1.__decorate([
148
149
  (0, type_graphql_1.Resolver)(__1.PurchaseOrder)
149
150
  ], PurchaseOrderMutation);
150
- exports.PurchaseOrderMutation = PurchaseOrderMutation;
151
151
  async function upsertPurchaseOrderFunction(_, purchaseOrder, files, context, tx) {
152
152
  if (!purchaseOrder.id) {
153
153
  purchaseOrder = await createPurchaseOrderFunction(_, purchaseOrder, files, context, tx);
@@ -209,17 +209,12 @@ async function createPurchaseOrderFunction(_, purchaseOrder, files, context, tx)
209
209
  await upsertPurchaseOrderProducts(domain, purchaseOrder.bizplace, createdPurchaseOrder, orderProducts, user, tx);
210
210
  try {
211
211
  // // 3. Create purchase order misc charges
212
- for (var _g = true, otherCharges_1 = tslib_1.__asyncValues(otherCharges), otherCharges_1_1; otherCharges_1_1 = await otherCharges_1.next(), _a = otherCharges_1_1.done, !_a;) {
212
+ for (var _g = true, otherCharges_1 = tslib_1.__asyncValues(otherCharges), otherCharges_1_1; otherCharges_1_1 = await otherCharges_1.next(), _a = otherCharges_1_1.done, !_a; _g = true) {
213
213
  _c = otherCharges_1_1.value;
214
214
  _g = false;
215
- try {
216
- let oc = _c;
217
- delete oc.id;
218
- await tx.getRepository(__1.PurchaseOrderOtherCharge).save(Object.assign(Object.assign({}, oc), { domain, purchaseOrder: createdPurchaseOrder, creator: user, updater: user }));
219
- }
220
- finally {
221
- _g = true;
222
- }
215
+ let oc = _c;
216
+ delete oc.id;
217
+ await tx.getRepository(__1.PurchaseOrderOtherCharge).save(Object.assign(Object.assign({}, oc), { domain, purchaseOrder: createdPurchaseOrder, creator: user, updater: user }));
223
218
  }
224
219
  }
225
220
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
@@ -276,18 +271,13 @@ async function updatePurchaseOrderFunction(_, purchaseOrder, files, context, tx)
276
271
  });
277
272
  try {
278
273
  // // 4. Process Purchase Other Other Charges Data and Insert/ Update data
279
- for (var _g = true, otherCharges_2 = tslib_1.__asyncValues(otherCharges), otherCharges_2_1; otherCharges_2_1 = await otherCharges_2.next(), _a = otherCharges_2_1.done, !_a;) {
274
+ for (var _g = true, otherCharges_2 = tslib_1.__asyncValues(otherCharges), otherCharges_2_1; otherCharges_2_1 = await otherCharges_2.next(), _a = otherCharges_2_1.done, !_a; _g = true) {
280
275
  _c = otherCharges_2_1.value;
281
276
  _g = false;
282
- try {
283
- let oc = _c;
284
- if (!(oc === null || oc === void 0 ? void 0 : oc.id))
285
- delete oc.id;
286
- await otherChargesRepo.save(Object.assign(Object.assign({}, oc), { domain, purchaseOrder: existingPurchaseOrder, creator: (oc === null || oc === void 0 ? void 0 : oc.id) ? oc.creator : user, updater: user }));
287
- }
288
- finally {
289
- _g = true;
290
- }
277
+ let oc = _c;
278
+ if (!(oc === null || oc === void 0 ? void 0 : oc.id))
279
+ delete oc.id;
280
+ await otherChargesRepo.save(Object.assign(Object.assign({}, oc), { domain, purchaseOrder: existingPurchaseOrder, creator: (oc === null || oc === void 0 ? void 0 : oc.id) ? oc.creator : user, updater: user }));
291
281
  }
292
282
  }
293
283
  catch (e_2_1) { e_2 = { error: e_2_1 }; }
@@ -1 +1 @@
1
- {"version":3,"file":"purchase-order-mutation.js","sourceRoot":"","sources":["../../../server/service/purchase-order/purchase-order-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, Repository } from 'typeorm'\n\nimport { Attachment, createAttachments, deleteAttachmentsByRef } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint, getPermittedBizplaces } from '@things-factory/biz-base'\nimport { generateId } from '@things-factory/id-rule-base'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport { Setting } from '@things-factory/setting-base'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { Location } from '@things-factory/warehouse-base'\n\nimport {\n ArrivalNotice,\n NewPurchaseOrder,\n OrderProduct,\n PurchaseOrder,\n PurchaseOrderOtherCharge,\n PurchaseOrderPatch\n} from '../'\nimport {\n ATTACHMENT_TYPE,\n ORDER_NUMBER_RULE_TYPE,\n ORDER_NUMBER_SETTING_KEY,\n ORDER_STATUS,\n PURCHASE_ORDER_STATUS\n} from '../../constants'\nimport { OrderNoGenerator } from '../../utils'\nimport { checkArrivedNoticeFunction, generateArrivalNoticeFunction } from '../arrival-notice/arrival-notice-mutation'\nimport { getPurchaseOrderFunction } from './purchase-order-query'\n\n@Resolver(PurchaseOrder)\nexport class PurchaseOrderMutation {\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async upsertPurchaseOrder(\n @Ctx() context: ResolverContext,\n @Arg('purchaseOrder', type => PurchaseOrderPatch) purchaseOrder: PurchaseOrderPatch,\n @Arg('files', type => [GraphQLUpload], { nullable: true }) files?: FileUpload\n ): Promise<PurchaseOrder> {\n try {\n const { tx } = context.state\n const createdPurchaseOrder: PurchaseOrder = await upsertPurchaseOrderFunction(\n null,\n purchaseOrder,\n files,\n context,\n tx\n )\n\n return createdPurchaseOrder\n } catch (error) {\n throw error\n }\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async approvePurchaseOrder(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n const findPurchaseOrder: PurchaseOrder = await getRepository(PurchaseOrder).findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['orderProducts', 'orderProducts.product', 'bufferLocation', 'bizplace', 'domain']\n })\n\n // const findPurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).findOne({where: {id}, relations:['bizplace']})\n // const findOrderProducts: OrderProduct[] = await tx.getRepository(OrderProduct).findBy({purchaseOrder: {id: findPurchaseOrder.id}}})\n\n // // 1. Approve purchase order\n const approvePurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...findPurchaseOrder,\n status: PURCHASE_ORDER_STATUS.APPROVED,\n approvedBy: user,\n approvedOn: new Date().toUTCString(),\n updater: user\n })\n\n await tx.getRepository(OrderProduct).save(\n findPurchaseOrder.orderProducts.map(itm => {\n return {\n ...itm,\n status: PURCHASE_ORDER_STATUS.APPROVED\n }\n })\n )\n\n // // 2. Create and confirm arrival notice\n let newGANOrder = {\n ...findPurchaseOrder,\n orderProducts: findPurchaseOrder.orderProducts.map(itm => {\n delete itm.id, itm.name\n return {\n ...itm\n }\n }),\n customerBizplaceId: findPurchaseOrder.bizplace.id,\n purchaseOrder: approvePurchaseOrder,\n orderVass: [],\n creator: user,\n updater: user\n }\n\n delete newGANOrder.id\n //change gan status to intransit and call check arrived notice function right\n newGANOrder.status = ORDER_STATUS.INTRANSIT\n\n const createdGAN: ArrivalNotice = await generateArrivalNoticeFunction(null, newGANOrder, true, [], context, tx)\n\n // await confirmArrivalNoticeFunction(createdGAN.name, context, tx)\n\n // await receiveArrivalNoticeFunction(null, createdGAN.name, context)\n\n await checkArrivedNoticeFunction(createdGAN.name, context, tx)\n\n return approvePurchaseOrder\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async rejectPurchaseOrder(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n const findPurchaseOrder: PurchaseOrder = await getRepository(PurchaseOrder).findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['orderProducts']\n })\n // // 1. Reject purchase order\n const rejectedPurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...findPurchaseOrder,\n status: PURCHASE_ORDER_STATUS.REJECTED,\n updater: user\n })\n\n await tx.getRepository(OrderProduct).save(\n findPurchaseOrder.orderProducts.map(itm => {\n return {\n ...itm,\n status: PURCHASE_ORDER_STATUS.REJECTED\n }\n })\n )\n\n return rejectedPurchaseOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async createPurchaseOrder(\n @Arg('purchaseOrder', type => NewPurchaseOrder) purchaseOrder: NewPurchaseOrder,\n @Ctx() context: ResolverContext\n ): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n return await tx.getRepository(PurchaseOrder).save({\n ...purchaseOrder,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async updatePurchaseOrder(\n @Arg('name') name: string,\n @Arg('patch', type => PurchaseOrderPatch) patch: PurchaseOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n const repository = tx.getRepository(PurchaseOrder)\n const purchaseOrder = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...purchaseOrder,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deletePurchaseOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n await tx.getRepository(PurchaseOrder).delete({ domain: { id: domain.id }, name })\n return true\n }\n}\n\nexport async function upsertPurchaseOrderFunction(\n _: any,\n purchaseOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<PurchaseOrder> {\n if (!purchaseOrder.id) {\n purchaseOrder = await createPurchaseOrderFunction(_, purchaseOrder, files, context, tx)\n } else {\n purchaseOrder = await updatePurchaseOrderFunction(_, purchaseOrder, files, context, tx)\n }\n\n return purchaseOrder\n}\n\nexport async function createPurchaseOrderFunction(\n _: any,\n purchaseOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<PurchaseOrder> {\n const { domain, user } = context.state\n let orderProducts: OrderProduct[] = purchaseOrder.orderProducts\n let otherCharges: PurchaseOrderOtherCharge[] = purchaseOrder.otherCharges\n\n let myBizplace: Bizplace\n let orderNo: string = ''\n let arrError: string[] = []\n\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n if (purchaseOrder?.bizplace?.id) {\n const permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace = permittedBizplaces.find(biz => biz.id == purchaseOrder.bizplace.id)\n\n if (!foundPermittedBizplace) throw new Error(`This user does not permitted for this company`)\n\n purchaseOrder.bizplace = foundPermittedBizplace\n } else {\n arrError.push(`No bizplace was selected`)\n }\n\n if (purchaseOrder?.supplier?.id) {\n purchaseOrder.supplier = await getRepository(ContactPoint).findOneBy({ id: purchaseOrder.supplier.id })\n } else {\n arrError.push(`No supplier was selected`)\n }\n\n if (purchaseOrder?.bufferLocation?.id) {\n purchaseOrder.bufferLocation = await getRepository(Location).findOneBy({ id: purchaseOrder.bufferLocation.id })\n } else {\n arrError.push(`No buffer location was selected`)\n }\n\n if (arrError.length > 0) {\n throw new Error(arrError.join(', '))\n }\n\n // // find PO number rule setting\n const poNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.PO_NUMBER_RULE\n }\n })\n\n orderNo = poNoSetting\n ? await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.PO_NUMBER, seed: {} })\n : OrderNoGenerator.purchaseOrder()\n\n // // 1. Create purchase order\n const createdPurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...purchaseOrder,\n name: orderNo,\n domain,\n looseItem: purchaseOrder?.looseItem ? purchaseOrder.looseItem : false,\n creator: user,\n updater: user\n })\n\n // // 2. Create purchase order product\n await upsertPurchaseOrderProducts(domain, purchaseOrder.bizplace, createdPurchaseOrder, orderProducts, user, tx)\n\n // // 3. Create purchase order misc charges\n for await (let oc of otherCharges) {\n delete oc.id\n await tx.getRepository(PurchaseOrderOtherCharge).save({\n ...oc,\n domain,\n purchaseOrder: createdPurchaseOrder,\n creator: user,\n updater: user\n })\n }\n\n // // 4. Create Attacments\n if (files?.length) {\n const attachments: Attachment[] = files.map(attachment => {\n return {\n file: attachment,\n refType: ATTACHMENT_TYPE.PO,\n refBy: createdPurchaseOrder.id,\n category: ATTACHMENT_TYPE.PO /* TODO use refType */\n }\n })\n await createAttachments(_, { attachments }, context)\n }\n\n return createdPurchaseOrder\n}\n\nexport async function updatePurchaseOrderFunction(\n _: any,\n purchaseOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<PurchaseOrder> {\n const { domain, user } = context.state\n\n let existingPurchaseOrder: any = await getPurchaseOrderFunction(_, purchaseOrder.name, context, tx)\n\n let orderProducts: OrderProduct[] = purchaseOrder.orderProducts\n let otherCharges: PurchaseOrderOtherCharge[] = purchaseOrder.otherCharges\n\n if (purchaseOrder?.bizplace?.id) {\n const permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace = permittedBizplaces.find(biz => biz.id == purchaseOrder.bizplace.id)\n\n if (!foundPermittedBizplace) throw new Error(`This user does not permitted for this company`)\n\n purchaseOrder.bizplace = foundPermittedBizplace\n }\n\n if (purchaseOrder?.supplier?.id) {\n purchaseOrder.supplier = await getRepository(ContactPoint).findOneBy({ id: purchaseOrder.supplier.id })\n }\n\n if (purchaseOrder?.bufferLocation?.id) {\n purchaseOrder.bufferLocation = await getRepository(Location).findOneBy({ id: purchaseOrder.bufferLocation.id })\n }\n\n // // 1. Update purchase order\n const updatePurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...existingPurchaseOrder,\n ...purchaseOrder,\n domain,\n creator: user,\n updater: user\n })\n\n // // 2. Update purchase order product\n await upsertPurchaseOrderProducts(domain, purchaseOrder.bizplace, purchaseOrder, orderProducts, user, tx)\n\n // // 3. Delete Removed Other Charges\n const otherChargesRepo: Repository<PurchaseOrderOtherCharge> =\n tx?.getRepository(PurchaseOrderOtherCharge) || getRepository(PurchaseOrderOtherCharge)\n let removeOC = existingPurchaseOrder.otherCharges.filter(\n existingOC => (otherCharges.filter(inOC => inOC.id == existingOC.id).length = 0)\n )\n removeOC.forEach(async oc => {\n await otherChargesRepo.delete(oc)\n })\n\n // // 4. Process Purchase Other Other Charges Data and Insert/ Update data\n for await (let oc of otherCharges) {\n if (!oc?.id) delete oc.id\n await otherChargesRepo.save({\n ...oc,\n domain,\n purchaseOrder: existingPurchaseOrder,\n creator: oc?.id ? oc.creator : user,\n updater: user\n })\n }\n\n // // 5. Remove Purchase Order Products\n const foundAttachments: Attachment[] = await getRepository(Attachment).find({\n where: {\n domain: { id: domain.id },\n refBy: purchaseOrder.id,\n category: ATTACHMENT_TYPE.PO\n }\n })\n\n // // 6. Remove All Attachment\n if (foundAttachments?.length) {\n await deleteAttachmentsByRef(_, { refBys: foundAttachments.map(file => file.refBy) }, context)\n }\n\n // // 7. Add New Attachment\n if (files?.length > 0) {\n const attachments: Attachment[] = files.map(attachment => {\n return {\n file: attachment,\n refType: ATTACHMENT_TYPE.PO,\n refBy: updatePurchaseOrder.id,\n category: ATTACHMENT_TYPE.PO /* TODO use refType */\n }\n })\n await createAttachments(_, { attachments }, context)\n }\n\n return existingPurchaseOrder\n}\n\nexport async function upsertPurchaseOrderProducts(\n domain: Domain,\n bizplace: Bizplace,\n purchaseOrder: PurchaseOrder,\n orderProducts: OrderProduct[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n try {\n const purchaseOrderRepo: Repository<Product> = tx?.getRepository(PurchaseOrder) || getRepository(PurchaseOrder)\n const bizplaceRepo: Repository<Product> = tx?.getRepository(Bizplace) || getRepository(Bizplace)\n const orderProductRepo: Repository<OrderProduct> = tx?.getRepository(OrderProduct) || getRepository(OrderProduct)\n const productRepo: Repository<Product> = tx?.getRepository(Product) || getRepository(Product)\n\n // // Remove all existing order products that do not exist in current input\n let removeOP = purchaseOrder.orderProducts.filter(\n existingOP => (orderProducts.filter(inOP => inOP.id == existingOP.id).length = 0)\n )\n removeOP.forEach(async op => {\n await orderProductRepo.delete(op.id)\n })\n\n purchaseOrder = await purchaseOrderRepo.findOneBy({ id: purchaseOrder.id })\n\n bizplace = await bizplaceRepo.findOneBy({ id: bizplace.id })\n\n orderProducts = await Promise.all(\n orderProducts.map(async (op: OrderProduct) => {\n if (!op?.id) delete op.id\n let foundProductDetail: ProductDetail = await tx\n .getRepository(ProductDetail)\n .findOne({ where: { product: { id: op.product.id }, packingType: op.packingType } })\n return {\n ...op,\n domain,\n bizplace: bizplace,\n name: op?.id ? op.name : OrderNoGenerator.orderProduct(),\n product: await productRepo.findOneBy({ id: op.product.id }),\n packingSize: foundProductDetail?.packingSize || 1,\n purchaseOrder: purchaseOrder,\n status: purchaseOrder.status,\n creator: op?.id ? op.creator : user,\n updater: user\n }\n })\n )\n\n await orderProductRepo.save(orderProducts)\n } catch (error) {\n throw error\n }\n}\n"]}
1
+ {"version":3,"file":"purchase-order-mutation.js","sourceRoot":"","sources":["../../../server/service/purchase-order/purchase-order-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, Repository } from 'typeorm'\n\nimport { Attachment, createAttachments, deleteAttachmentsByRef } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint, getPermittedBizplaces } from '@things-factory/biz-base'\nimport { generateId } from '@things-factory/id-rule-base'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport { Setting } from '@things-factory/setting-base'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { Location } from '@things-factory/warehouse-base'\n\nimport {\n ArrivalNotice,\n NewPurchaseOrder,\n OrderProduct,\n PurchaseOrder,\n PurchaseOrderOtherCharge,\n PurchaseOrderPatch\n} from '../'\nimport {\n ATTACHMENT_TYPE,\n ORDER_NUMBER_RULE_TYPE,\n ORDER_NUMBER_SETTING_KEY,\n ORDER_STATUS,\n PURCHASE_ORDER_STATUS\n} from '../../constants'\nimport { OrderNoGenerator } from '../../utils'\nimport { checkArrivedNoticeFunction, generateArrivalNoticeFunction } from '../arrival-notice/arrival-notice-mutation'\nimport { getPurchaseOrderFunction } from './purchase-order-query'\n\n@Resolver(PurchaseOrder)\nexport class PurchaseOrderMutation {\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async upsertPurchaseOrder(\n @Ctx() context: ResolverContext,\n @Arg('purchaseOrder', type => PurchaseOrderPatch) purchaseOrder: PurchaseOrderPatch,\n @Arg('files', type => [GraphQLUpload], { nullable: true }) files?: FileUpload\n ): Promise<PurchaseOrder> {\n try {\n const { tx } = context.state\n const createdPurchaseOrder: PurchaseOrder = await upsertPurchaseOrderFunction(\n null,\n purchaseOrder,\n files,\n context,\n tx\n )\n\n return createdPurchaseOrder\n } catch (error) {\n throw error\n }\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async approvePurchaseOrder(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n const findPurchaseOrder: PurchaseOrder = await getRepository(PurchaseOrder).findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['orderProducts', 'orderProducts.product', 'bufferLocation', 'bizplace', 'domain']\n })\n\n // const findPurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).findOne({where: {id}, relations:['bizplace']})\n // const findOrderProducts: OrderProduct[] = await tx.getRepository(OrderProduct).findBy({purchaseOrder: {id: findPurchaseOrder.id}}})\n\n // // 1. Approve purchase order\n const approvePurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...findPurchaseOrder,\n status: PURCHASE_ORDER_STATUS.APPROVED,\n approvedBy: user,\n approvedOn: new Date().toUTCString(),\n updater: user\n })\n\n await tx.getRepository(OrderProduct).save(\n findPurchaseOrder.orderProducts.map(itm => {\n return {\n ...itm,\n status: PURCHASE_ORDER_STATUS.APPROVED\n }\n })\n )\n\n // // 2. Create and confirm arrival notice\n let newGANOrder = {\n ...findPurchaseOrder,\n orderProducts: findPurchaseOrder.orderProducts.map(itm => {\n delete itm.id, itm.name\n return {\n ...itm\n }\n }),\n customerBizplaceId: findPurchaseOrder.bizplace.id,\n purchaseOrder: approvePurchaseOrder,\n orderVass: [],\n creator: user,\n updater: user\n }\n\n delete newGANOrder.id\n //change gan status to intransit and call check arrived notice function right\n newGANOrder.status = ORDER_STATUS.INTRANSIT\n\n const createdGAN: ArrivalNotice = await generateArrivalNoticeFunction(null, newGANOrder, true, [], context, tx)\n\n // await confirmArrivalNoticeFunction(createdGAN.name, context, tx)\n\n // await receiveArrivalNoticeFunction(null, createdGAN.name, context)\n\n await checkArrivedNoticeFunction(createdGAN.name, context, tx)\n\n return approvePurchaseOrder\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async rejectPurchaseOrder(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n const findPurchaseOrder: PurchaseOrder = await getRepository(PurchaseOrder).findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['orderProducts']\n })\n // // 1. Reject purchase order\n const rejectedPurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...findPurchaseOrder,\n status: PURCHASE_ORDER_STATUS.REJECTED,\n updater: user\n })\n\n await tx.getRepository(OrderProduct).save(\n findPurchaseOrder.orderProducts.map(itm => {\n return {\n ...itm,\n status: PURCHASE_ORDER_STATUS.REJECTED\n }\n })\n )\n\n return rejectedPurchaseOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async createPurchaseOrder(\n @Arg('purchaseOrder', type => NewPurchaseOrder) purchaseOrder: NewPurchaseOrder,\n @Ctx() context: ResolverContext\n ): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n return await tx.getRepository(PurchaseOrder).save({\n ...purchaseOrder,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async updatePurchaseOrder(\n @Arg('name') name: string,\n @Arg('patch', type => PurchaseOrderPatch) patch: PurchaseOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n const repository = tx.getRepository(PurchaseOrder)\n const purchaseOrder = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...purchaseOrder,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deletePurchaseOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n await tx.getRepository(PurchaseOrder).delete({ domain: { id: domain.id }, name })\n return true\n }\n}\n\nexport async function upsertPurchaseOrderFunction(\n _: any,\n purchaseOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<PurchaseOrder> {\n if (!purchaseOrder.id) {\n purchaseOrder = await createPurchaseOrderFunction(_, purchaseOrder, files, context, tx)\n } else {\n purchaseOrder = await updatePurchaseOrderFunction(_, purchaseOrder, files, context, tx)\n }\n\n return purchaseOrder\n}\n\nexport async function createPurchaseOrderFunction(\n _: any,\n purchaseOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<PurchaseOrder> {\n const { domain, user } = context.state\n let orderProducts: OrderProduct[] = purchaseOrder.orderProducts\n let otherCharges: PurchaseOrderOtherCharge[] = purchaseOrder.otherCharges\n\n let myBizplace: Bizplace\n let orderNo: string = ''\n let arrError: string[] = []\n\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n if (purchaseOrder?.bizplace?.id) {\n const permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace = permittedBizplaces.find(biz => biz.id == purchaseOrder.bizplace.id)\n\n if (!foundPermittedBizplace) throw new Error(`This user does not permitted for this company`)\n\n purchaseOrder.bizplace = foundPermittedBizplace\n } else {\n arrError.push(`No bizplace was selected`)\n }\n\n if (purchaseOrder?.supplier?.id) {\n purchaseOrder.supplier = await getRepository(ContactPoint).findOneBy({ id: purchaseOrder.supplier.id })\n } else {\n arrError.push(`No supplier was selected`)\n }\n\n if (purchaseOrder?.bufferLocation?.id) {\n purchaseOrder.bufferLocation = await getRepository(Location).findOneBy({ id: purchaseOrder.bufferLocation.id })\n } else {\n arrError.push(`No buffer location was selected`)\n }\n\n if (arrError.length > 0) {\n throw new Error(arrError.join(', '))\n }\n\n // // find PO number rule setting\n const poNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.PO_NUMBER_RULE\n }\n })\n\n orderNo = poNoSetting\n ? await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.PO_NUMBER, seed: {} })\n : OrderNoGenerator.purchaseOrder()\n\n // // 1. Create purchase order\n const createdPurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...purchaseOrder,\n name: orderNo,\n domain,\n looseItem: purchaseOrder?.looseItem ? purchaseOrder.looseItem : false,\n creator: user,\n updater: user\n })\n\n // // 2. Create purchase order product\n await upsertPurchaseOrderProducts(domain, purchaseOrder.bizplace, createdPurchaseOrder, orderProducts, user, tx)\n\n // // 3. Create purchase order misc charges\n for await (let oc of otherCharges) {\n delete oc.id\n await tx.getRepository(PurchaseOrderOtherCharge).save({\n ...oc,\n domain,\n purchaseOrder: createdPurchaseOrder,\n creator: user,\n updater: user\n })\n }\n\n // // 4. Create Attacments\n if (files?.length) {\n const attachments: Partial<Attachment>[] = files.map(attachment => {\n return {\n file: attachment,\n refType: ATTACHMENT_TYPE.PO,\n refBy: createdPurchaseOrder.id,\n category: ATTACHMENT_TYPE.PO /* TODO use refType */\n }\n })\n await createAttachments(_, { attachments }, context)\n }\n\n return createdPurchaseOrder\n}\n\nexport async function updatePurchaseOrderFunction(\n _: any,\n purchaseOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<PurchaseOrder> {\n const { domain, user } = context.state\n\n let existingPurchaseOrder: any = await getPurchaseOrderFunction(_, purchaseOrder.name, context, tx)\n\n let orderProducts: OrderProduct[] = purchaseOrder.orderProducts\n let otherCharges: PurchaseOrderOtherCharge[] = purchaseOrder.otherCharges\n\n if (purchaseOrder?.bizplace?.id) {\n const permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace = permittedBizplaces.find(biz => biz.id == purchaseOrder.bizplace.id)\n\n if (!foundPermittedBizplace) throw new Error(`This user does not permitted for this company`)\n\n purchaseOrder.bizplace = foundPermittedBizplace\n }\n\n if (purchaseOrder?.supplier?.id) {\n purchaseOrder.supplier = await getRepository(ContactPoint).findOneBy({ id: purchaseOrder.supplier.id })\n }\n\n if (purchaseOrder?.bufferLocation?.id) {\n purchaseOrder.bufferLocation = await getRepository(Location).findOneBy({ id: purchaseOrder.bufferLocation.id })\n }\n\n // // 1. Update purchase order\n const updatePurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...existingPurchaseOrder,\n ...purchaseOrder,\n domain,\n creator: user,\n updater: user\n })\n\n // // 2. Update purchase order product\n await upsertPurchaseOrderProducts(domain, purchaseOrder.bizplace, purchaseOrder, orderProducts, user, tx)\n\n // // 3. Delete Removed Other Charges\n const otherChargesRepo: Repository<PurchaseOrderOtherCharge> =\n tx?.getRepository(PurchaseOrderOtherCharge) || getRepository(PurchaseOrderOtherCharge)\n let removeOC = existingPurchaseOrder.otherCharges.filter(\n existingOC => (otherCharges.filter(inOC => inOC.id == existingOC.id).length = 0)\n )\n removeOC.forEach(async oc => {\n await otherChargesRepo.delete(oc)\n })\n\n // // 4. Process Purchase Other Other Charges Data and Insert/ Update data\n for await (let oc of otherCharges) {\n if (!oc?.id) delete oc.id\n await otherChargesRepo.save({\n ...oc,\n domain,\n purchaseOrder: existingPurchaseOrder,\n creator: oc?.id ? oc.creator : user,\n updater: user\n })\n }\n\n // // 5. Remove Purchase Order Products\n const foundAttachments: Attachment[] = await getRepository(Attachment).find({\n where: {\n domain: { id: domain.id },\n refBy: purchaseOrder.id,\n category: ATTACHMENT_TYPE.PO\n }\n })\n\n // // 6. Remove All Attachment\n if (foundAttachments?.length) {\n await deleteAttachmentsByRef(_, { refBys: foundAttachments.map(file => file.refBy) }, context)\n }\n\n // // 7. Add New Attachment\n if (files?.length > 0) {\n const attachments: Partial<Attachment>[] = files.map(attachment => {\n return {\n file: attachment,\n refType: ATTACHMENT_TYPE.PO,\n refBy: updatePurchaseOrder.id,\n category: ATTACHMENT_TYPE.PO /* TODO use refType */\n }\n })\n await createAttachments(_, { attachments }, context)\n }\n\n return existingPurchaseOrder\n}\n\nexport async function upsertPurchaseOrderProducts(\n domain: Domain,\n bizplace: Bizplace,\n purchaseOrder: PurchaseOrder,\n orderProducts: OrderProduct[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n try {\n const purchaseOrderRepo: Repository<PurchaseOrder> =\n tx?.getRepository(PurchaseOrder) || getRepository(PurchaseOrder)\n const bizplaceRepo: Repository<Bizplace> = tx?.getRepository(Bizplace) || getRepository(Bizplace)\n const orderProductRepo: Repository<OrderProduct> = tx?.getRepository(OrderProduct) || getRepository(OrderProduct)\n const productRepo: Repository<Product> = tx?.getRepository(Product) || getRepository(Product)\n\n // // Remove all existing order products that do not exist in current input\n let removeOP = purchaseOrder.orderProducts.filter(\n existingOP => (orderProducts.filter(inOP => inOP.id == existingOP.id).length = 0)\n )\n removeOP.forEach(async op => {\n await orderProductRepo.delete(op.id)\n })\n\n purchaseOrder = await purchaseOrderRepo.findOneBy({ id: purchaseOrder.id })\n\n bizplace = await bizplaceRepo.findOneBy({ id: bizplace.id })\n\n orderProducts = await Promise.all(\n orderProducts.map(async (op: OrderProduct) => {\n if (!op?.id) delete op.id\n let foundProductDetail: ProductDetail = await tx\n .getRepository(ProductDetail)\n .findOne({ where: { product: { id: op.product.id }, packingType: op.packingType } })\n return {\n ...op,\n domain,\n bizplace: bizplace,\n name: op?.id ? op.name : OrderNoGenerator.orderProduct(),\n product: await productRepo.findOneBy({ id: op.product.id }),\n packingSize: foundProductDetail?.packingSize || 1,\n purchaseOrder: purchaseOrder,\n status: purchaseOrder.status,\n creator: op?.id ? op.creator : user,\n updater: user\n }\n })\n )\n\n await orderProductRepo.save(orderProducts)\n } catch (error) {\n throw error\n }\n}\n"]}