@things-factory/operato-hub 4.3.104 → 4.3.105-alpha.0

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 (327) hide show
  1. package/client/pages/bizplace/register.js +2 -0
  2. package/config.development.js +15 -30
  3. package/dist-server/controllers/bizplace-initializer/dataset/codes.js +1 -1
  4. package/dist-server/controllers/bizplace-initializer/dataset/codes.js.map +1 -1
  5. package/dist-server/graphql/resolvers/synchronization/sync-products-to-sellercraft.js +10 -8
  6. package/dist-server/graphql/resolvers/synchronization/sync-products-to-sellercraft.js.map +1 -1
  7. package/dist-server/middlewares/store-middleware.js.map +1 -1
  8. package/dist-server/routers/api/index.js +0 -1
  9. package/dist-server/routers/api/index.js.map +1 -1
  10. package/dist-server/routers/api/restful-apis/unstable/add-release-order.js +8 -8
  11. package/dist-server/routers/api/restful-apis/v1/company/add-contact-points.js +105 -0
  12. package/dist-server/routers/api/restful-apis/v1/company/add-contact-points.js.map +1 -0
  13. package/dist-server/routers/api/restful-apis/v1/company/add-marketplace-order.js +197 -0
  14. package/dist-server/routers/api/restful-apis/v1/company/add-marketplace-order.js.map +1 -0
  15. package/dist-server/routers/api/restful-apis/v1/company/add-products.js +69 -0
  16. package/dist-server/routers/api/restful-apis/v1/company/add-products.js.map +1 -0
  17. package/dist-server/routers/api/restful-apis/v1/company/cancel-marketplace-order.js +90 -0
  18. package/dist-server/routers/api/restful-apis/v1/company/cancel-marketplace-order.js.map +1 -0
  19. package/dist-server/routers/api/restful-apis/v1/company/get-bizplace-list.js +49 -0
  20. package/dist-server/routers/api/restful-apis/v1/company/get-bizplace-list.js.map +1 -0
  21. package/dist-server/routers/api/restful-apis/v1/company/get-contact-point-list.js +62 -0
  22. package/dist-server/routers/api/restful-apis/v1/company/get-contact-point-list.js.map +1 -0
  23. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-order-shipping-list.js +108 -0
  24. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-order-shipping-list.js.map +1 -0
  25. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-store-list.js +51 -0
  26. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-store-list.js.map +1 -0
  27. package/dist-server/routers/api/restful-apis/v1/company/get-partner-list.js +88 -0
  28. package/dist-server/routers/api/restful-apis/v1/company/get-partner-list.js.map +1 -0
  29. package/dist-server/routers/api/restful-apis/v1/company/get-product-list.js +98 -0
  30. package/dist-server/routers/api/restful-apis/v1/company/get-product-list.js.map +1 -0
  31. package/dist-server/routers/api/restful-apis/v1/company/index.js +15 -0
  32. package/dist-server/routers/api/restful-apis/v1/company/index.js.map +1 -0
  33. package/dist-server/routers/api/restful-apis/v1/company/update-marketplace-order-delivered.js +62 -0
  34. package/dist-server/routers/api/restful-apis/v1/company/update-marketplace-order-delivered.js.map +1 -0
  35. package/dist-server/routers/api/restful-apis/v1/company/update-marketplace-shipping-order.js +44 -0
  36. package/dist-server/routers/api/restful-apis/v1/company/update-marketplace-shipping-order.js.map +1 -0
  37. package/dist-server/routers/api/restful-apis/v1/index.js +2 -31
  38. package/dist-server/routers/api/restful-apis/v1/index.js.map +1 -1
  39. package/dist-server/routers/api/restful-apis/v1/middlewares/business-middleware.js +66 -0
  40. package/dist-server/routers/api/restful-apis/v1/middlewares/business-middleware.js.map +1 -0
  41. package/dist-server/routers/api/restful-apis/v1/middlewares/index.js +40 -0
  42. package/dist-server/routers/api/restful-apis/v1/middlewares/index.js.map +1 -0
  43. package/dist-server/routers/api/restful-apis/v1/middlewares/logging-middleware.js +23 -0
  44. package/dist-server/routers/api/restful-apis/v1/middlewares/logging-middleware.js.map +1 -0
  45. package/dist-server/routers/api/restful-apis/v1/middlewares/store-middleware.js +32 -0
  46. package/dist-server/routers/api/restful-apis/v1/middlewares/store-middleware.js.map +1 -0
  47. package/dist-server/routers/api/restful-apis/v1/middlewares/validation-middleware.js +118 -0
  48. package/dist-server/routers/api/restful-apis/v1/middlewares/validation-middleware.js.map +1 -0
  49. package/dist-server/routers/api/restful-apis/v1/middlewares/warehouse-middleware.js +31 -0
  50. package/dist-server/routers/api/restful-apis/v1/middlewares/warehouse-middleware.js.map +1 -0
  51. package/dist-server/routers/api/restful-apis/v1/utils/error-util.js +71 -0
  52. package/dist-server/routers/api/restful-apis/v1/utils/error-util.js.map +1 -0
  53. package/dist-server/routers/api/restful-apis/v1/utils/params.js +555 -0
  54. package/dist-server/routers/api/restful-apis/v1/utils/params.js.map +1 -0
  55. package/dist-server/routers/api/restful-apis/v1/utils/validate-util.js +60 -0
  56. package/dist-server/routers/api/restful-apis/v1/utils/validate-util.js.map +1 -0
  57. package/dist-server/routers/api/restful-apis/v1/warehouse/add-inbound-order.js +236 -0
  58. package/dist-server/routers/api/restful-apis/v1/warehouse/add-inbound-order.js.map +1 -0
  59. package/dist-server/routers/api/restful-apis/v1/warehouse/add-release-order.js +762 -0
  60. package/dist-server/routers/api/restful-apis/v1/warehouse/add-release-order.js.map +1 -0
  61. package/dist-server/routers/api/restful-apis/v1/warehouse/cancel-inbound-order.js +197 -0
  62. package/dist-server/routers/api/restful-apis/v1/warehouse/cancel-inbound-order.js.map +1 -0
  63. package/dist-server/routers/api/restful-apis/v1/warehouse/cancel-release-order.js +177 -0
  64. package/dist-server/routers/api/restful-apis/v1/warehouse/cancel-release-order.js.map +1 -0
  65. package/dist-server/routers/api/restful-apis/v1/warehouse/get-delivery-order-list.js +138 -0
  66. package/dist-server/routers/api/restful-apis/v1/warehouse/get-delivery-order-list.js.map +1 -0
  67. package/dist-server/routers/api/restful-apis/v1/warehouse/get-goods-received-note-list.js +97 -0
  68. package/dist-server/routers/api/restful-apis/v1/warehouse/get-goods-received-note-list.js.map +1 -0
  69. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.js +81 -0
  70. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.js.map +1 -0
  71. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.js +94 -0
  72. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.js.map +1 -0
  73. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.js +87 -0
  74. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.js.map +1 -0
  75. package/dist-server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.js +84 -0
  76. package/dist-server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.js.map +1 -0
  77. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-details.js +96 -0
  78. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-details.js.map +1 -0
  79. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-list.js +110 -0
  80. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-list.js.map +1 -0
  81. package/dist-server/routers/api/restful-apis/v1/warehouse/index.js +16 -0
  82. package/dist-server/routers/api/restful-apis/v1/warehouse/index.js.map +1 -0
  83. package/dist-server/routers/api/restful-apis/v1/warehouse/update-release-order-details.js +71 -0
  84. package/dist-server/routers/api/restful-apis/v1/warehouse/update-release-order-details.js.map +1 -0
  85. package/openapi/v1/Inventory.yaml +263 -0
  86. package/package.json +54 -54
  87. package/server/controllers/bizplace-initializer/dataset/codes.ts +1 -1
  88. package/server/graphql/resolvers/synchronization/sync-products-to-sellercraft.ts +25 -16
  89. package/server/middlewares/store-middleware.ts +1 -0
  90. package/server/routers/api/index.ts +0 -1
  91. package/server/routers/api/restful-apis/unstable/add-release-order.ts +8 -8
  92. package/server/routers/api/restful-apis/v1/company/add-contact-points.ts +111 -0
  93. package/server/routers/api/restful-apis/v1/company/add-marketplace-order.ts +234 -0
  94. package/server/routers/api/restful-apis/v1/company/add-products.ts +96 -0
  95. package/server/routers/api/restful-apis/v1/company/cancel-marketplace-order.ts +94 -0
  96. package/server/routers/api/restful-apis/v1/company/get-bizplace-list.ts +55 -0
  97. package/server/routers/api/restful-apis/v1/company/get-contact-point-list.ts +67 -0
  98. package/server/routers/api/restful-apis/v1/company/get-marketplace-order-shipping-list.ts +115 -0
  99. package/server/routers/api/restful-apis/v1/company/get-marketplace-store-list.ts +57 -0
  100. package/server/routers/api/restful-apis/v1/company/get-partner-list.ts +95 -0
  101. package/server/routers/api/restful-apis/v1/company/get-product-list.ts +103 -0
  102. package/server/routers/api/restful-apis/v1/company/index.ts +12 -0
  103. package/server/routers/api/restful-apis/v1/company/update-marketplace-order-delivered.ts +66 -0
  104. package/server/routers/api/restful-apis/v1/company/update-marketplace-shipping-order.ts +55 -0
  105. package/server/routers/api/restful-apis/v1/index.ts +2 -31
  106. package/server/routers/api/restful-apis/v1/middlewares/business-middleware.ts +68 -0
  107. package/server/routers/api/restful-apis/v1/middlewares/index.ts +26 -0
  108. package/server/routers/api/restful-apis/v1/middlewares/logging-middleware.ts +24 -0
  109. package/server/routers/api/restful-apis/v1/middlewares/store-middleware.ts +34 -0
  110. package/server/routers/api/restful-apis/v1/middlewares/validation-middleware.ts +116 -0
  111. package/server/routers/api/restful-apis/v1/middlewares/warehouse-middleware.ts +31 -0
  112. package/server/routers/api/restful-apis/v1/utils/error-util.ts +70 -0
  113. package/server/routers/api/restful-apis/v1/utils/params.ts +555 -0
  114. package/server/routers/api/restful-apis/v1/utils/validate-util.ts +53 -0
  115. package/server/routers/api/restful-apis/v1/warehouse/add-inbound-order.ts +324 -0
  116. package/server/routers/api/restful-apis/v1/warehouse/add-release-order.ts +941 -0
  117. package/server/routers/api/restful-apis/v1/warehouse/cancel-inbound-order.ts +261 -0
  118. package/server/routers/api/restful-apis/v1/warehouse/cancel-release-order.ts +258 -0
  119. package/server/routers/api/restful-apis/v1/warehouse/get-delivery-order-list.ts +141 -0
  120. package/server/routers/api/restful-apis/v1/warehouse/get-goods-received-note-list.ts +105 -0
  121. package/server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.ts +83 -0
  122. package/server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.ts +96 -0
  123. package/server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.ts +112 -0
  124. package/server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.ts +89 -0
  125. package/server/routers/api/restful-apis/v1/warehouse/get-release-order-details.ts +99 -0
  126. package/server/routers/api/restful-apis/v1/warehouse/get-release-order-list.ts +113 -0
  127. package/server/routers/api/restful-apis/v1/warehouse/index.ts +13 -0
  128. package/server/routers/api/restful-apis/v1/warehouse/update-release-order-details.ts +96 -0
  129. package/translations/en.json +1 -0
  130. package/translations/ko.json +1 -0
  131. package/translations/ms.json +1 -0
  132. package/translations/zh.json +1 -0
  133. package/dist-server/routers/api/restful-apis/v1/add-contact-point.js +0 -64
  134. package/dist-server/routers/api/restful-apis/v1/add-contact-point.js.map +0 -1
  135. package/dist-server/routers/api/restful-apis/v1/add-draft-release-order.js +0 -171
  136. package/dist-server/routers/api/restful-apis/v1/add-draft-release-order.js.map +0 -1
  137. package/dist-server/routers/api/restful-apis/v1/add-inbound-order.js +0 -213
  138. package/dist-server/routers/api/restful-apis/v1/add-inbound-order.js.map +0 -1
  139. package/dist-server/routers/api/restful-apis/v1/add-marketplace-order.js +0 -144
  140. package/dist-server/routers/api/restful-apis/v1/add-marketplace-order.js.map +0 -1
  141. package/dist-server/routers/api/restful-apis/v1/add-products.js +0 -88
  142. package/dist-server/routers/api/restful-apis/v1/add-products.js.map +0 -1
  143. package/dist-server/routers/api/restful-apis/v1/add-release-order.js +0 -774
  144. package/dist-server/routers/api/restful-apis/v1/add-release-order.js.map +0 -1
  145. package/dist-server/routers/api/restful-apis/v1/bizplace.js +0 -45
  146. package/dist-server/routers/api/restful-apis/v1/bizplace.js.map +0 -1
  147. package/dist-server/routers/api/restful-apis/v1/cancel-marketplace-order.js +0 -63
  148. package/dist-server/routers/api/restful-apis/v1/cancel-marketplace-order.js.map +0 -1
  149. package/dist-server/routers/api/restful-apis/v1/cancel-release-order.js +0 -66
  150. package/dist-server/routers/api/restful-apis/v1/cancel-release-order.js.map +0 -1
  151. package/dist-server/routers/api/restful-apis/v1/get-contact-point-list.js +0 -103
  152. package/dist-server/routers/api/restful-apis/v1/get-contact-point-list.js.map +0 -1
  153. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-detail.js +0 -47
  154. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-detail.js.map +0 -1
  155. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-list.js +0 -124
  156. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-list.js.map +0 -1
  157. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js +0 -164
  158. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js.map +0 -1
  159. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js +0 -120
  160. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js.map +0 -1
  161. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-detail.js +0 -115
  162. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-detail.js.map +0 -1
  163. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-list.js +0 -125
  164. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-list.js.map +0 -1
  165. package/dist-server/routers/api/restful-apis/v1/get-inventory-overall-product-group.js +0 -88
  166. package/dist-server/routers/api/restful-apis/v1/get-inventory-overall-product-group.js.map +0 -1
  167. package/dist-server/routers/api/restful-apis/v1/get-inventory-product-group.js +0 -101
  168. package/dist-server/routers/api/restful-apis/v1/get-inventory-product-group.js.map +0 -1
  169. package/dist-server/routers/api/restful-apis/v1/get-marketplace-order-shipping-list.js +0 -146
  170. package/dist-server/routers/api/restful-apis/v1/get-marketplace-order-shipping-list.js.map +0 -1
  171. package/dist-server/routers/api/restful-apis/v1/get-marketplace-store-list.js +0 -79
  172. package/dist-server/routers/api/restful-apis/v1/get-marketplace-store-list.js.map +0 -1
  173. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js +0 -110
  174. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js.map +0 -1
  175. package/dist-server/routers/api/restful-apis/v1/get-partners.js +0 -23
  176. package/dist-server/routers/api/restful-apis/v1/get-partners.js.map +0 -1
  177. package/dist-server/routers/api/restful-apis/v1/get-products.js +0 -210
  178. package/dist-server/routers/api/restful-apis/v1/get-products.js.map +0 -1
  179. package/dist-server/routers/api/restful-apis/v1/get-release-order-detail.js +0 -122
  180. package/dist-server/routers/api/restful-apis/v1/get-release-order-detail.js.map +0 -1
  181. package/dist-server/routers/api/restful-apis/v1/get-release-order-list.js +0 -191
  182. package/dist-server/routers/api/restful-apis/v1/get-release-order-list.js.map +0 -1
  183. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js +0 -20
  184. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js.map +0 -1
  185. package/dist-server/routers/api/restful-apis/v1/reject-inbound-order.js +0 -35
  186. package/dist-server/routers/api/restful-apis/v1/reject-inbound-order.js.map +0 -1
  187. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-delivered.js +0 -45
  188. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-delivered.js.map +0 -1
  189. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-failed-delivery.js +0 -45
  190. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-failed-delivery.js.map +0 -1
  191. package/dist-server/routers/api/restful-apis/v1/update-marketplace-order.js +0 -93
  192. package/dist-server/routers/api/restful-apis/v1/update-marketplace-order.js.map +0 -1
  193. package/dist-server/routers/api/restful-apis/v1/update-marketplace-shipping-order.js +0 -85
  194. package/dist-server/routers/api/restful-apis/v1/update-marketplace-shipping-order.js.map +0 -1
  195. package/dist-server/routers/api/restful-apis/v1/update-release-order-details.js +0 -82
  196. package/dist-server/routers/api/restful-apis/v1/update-release-order-details.js.map +0 -1
  197. package/dist-server/routers/api/restful-apis/v2/add-contact-point.js +0 -64
  198. package/dist-server/routers/api/restful-apis/v2/add-contact-point.js.map +0 -1
  199. package/dist-server/routers/api/restful-apis/v2/add-draft-release-order.js +0 -171
  200. package/dist-server/routers/api/restful-apis/v2/add-draft-release-order.js.map +0 -1
  201. package/dist-server/routers/api/restful-apis/v2/add-inbound-order.js +0 -213
  202. package/dist-server/routers/api/restful-apis/v2/add-inbound-order.js.map +0 -1
  203. package/dist-server/routers/api/restful-apis/v2/add-marketplace-order.js +0 -144
  204. package/dist-server/routers/api/restful-apis/v2/add-marketplace-order.js.map +0 -1
  205. package/dist-server/routers/api/restful-apis/v2/add-products.js +0 -88
  206. package/dist-server/routers/api/restful-apis/v2/add-products.js.map +0 -1
  207. package/dist-server/routers/api/restful-apis/v2/add-release-order.js +0 -774
  208. package/dist-server/routers/api/restful-apis/v2/add-release-order.js.map +0 -1
  209. package/dist-server/routers/api/restful-apis/v2/bizplace.js +0 -45
  210. package/dist-server/routers/api/restful-apis/v2/bizplace.js.map +0 -1
  211. package/dist-server/routers/api/restful-apis/v2/cancel-marketplace-order.js +0 -63
  212. package/dist-server/routers/api/restful-apis/v2/cancel-marketplace-order.js.map +0 -1
  213. package/dist-server/routers/api/restful-apis/v2/cancel-release-order.js +0 -66
  214. package/dist-server/routers/api/restful-apis/v2/cancel-release-order.js.map +0 -1
  215. package/dist-server/routers/api/restful-apis/v2/get-contact-point-list.js +0 -103
  216. package/dist-server/routers/api/restful-apis/v2/get-contact-point-list.js.map +0 -1
  217. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-detail.js +0 -47
  218. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-detail.js.map +0 -1
  219. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-list.js +0 -124
  220. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-list.js.map +0 -1
  221. package/dist-server/routers/api/restful-apis/v2/get-delivery-orders.js +0 -164
  222. package/dist-server/routers/api/restful-apis/v2/get-delivery-orders.js.map +0 -1
  223. package/dist-server/routers/api/restful-apis/v2/get-goods-received-notes.js +0 -120
  224. package/dist-server/routers/api/restful-apis/v2/get-goods-received-notes.js.map +0 -1
  225. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-detail.js +0 -115
  226. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-detail.js.map +0 -1
  227. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-list.js +0 -125
  228. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-list.js.map +0 -1
  229. package/dist-server/routers/api/restful-apis/v2/get-inventory-overall-product-group.js +0 -88
  230. package/dist-server/routers/api/restful-apis/v2/get-inventory-overall-product-group.js.map +0 -1
  231. package/dist-server/routers/api/restful-apis/v2/get-inventory-product-group.js +0 -101
  232. package/dist-server/routers/api/restful-apis/v2/get-inventory-product-group.js.map +0 -1
  233. package/dist-server/routers/api/restful-apis/v2/get-marketplace-order-shipping-list.js +0 -146
  234. package/dist-server/routers/api/restful-apis/v2/get-marketplace-order-shipping-list.js.map +0 -1
  235. package/dist-server/routers/api/restful-apis/v2/get-marketplace-store-list.js +0 -79
  236. package/dist-server/routers/api/restful-apis/v2/get-marketplace-store-list.js.map +0 -1
  237. package/dist-server/routers/api/restful-apis/v2/get-onhand-inventories.js +0 -110
  238. package/dist-server/routers/api/restful-apis/v2/get-onhand-inventories.js.map +0 -1
  239. package/dist-server/routers/api/restful-apis/v2/get-partners.js +0 -23
  240. package/dist-server/routers/api/restful-apis/v2/get-partners.js.map +0 -1
  241. package/dist-server/routers/api/restful-apis/v2/get-products.js +0 -210
  242. package/dist-server/routers/api/restful-apis/v2/get-products.js.map +0 -1
  243. package/dist-server/routers/api/restful-apis/v2/get-release-order-detail.js +0 -122
  244. package/dist-server/routers/api/restful-apis/v2/get-release-order-detail.js.map +0 -1
  245. package/dist-server/routers/api/restful-apis/v2/get-release-order-list.js +0 -191
  246. package/dist-server/routers/api/restful-apis/v2/get-release-order-list.js.map +0 -1
  247. package/dist-server/routers/api/restful-apis/v2/get-warehouses.js +0 -20
  248. package/dist-server/routers/api/restful-apis/v2/get-warehouses.js.map +0 -1
  249. package/dist-server/routers/api/restful-apis/v2/index.js +0 -34
  250. package/dist-server/routers/api/restful-apis/v2/index.js.map +0 -1
  251. package/dist-server/routers/api/restful-apis/v2/reject-inbound-order.js +0 -35
  252. package/dist-server/routers/api/restful-apis/v2/reject-inbound-order.js.map +0 -1
  253. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-delivered.js +0 -45
  254. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-delivered.js.map +0 -1
  255. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-failed-delivery.js +0 -45
  256. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-failed-delivery.js.map +0 -1
  257. package/dist-server/routers/api/restful-apis/v2/update-marketplace-order.js +0 -93
  258. package/dist-server/routers/api/restful-apis/v2/update-marketplace-order.js.map +0 -1
  259. package/dist-server/routers/api/restful-apis/v2/update-marketplace-shipping-order.js +0 -85
  260. package/dist-server/routers/api/restful-apis/v2/update-marketplace-shipping-order.js.map +0 -1
  261. package/dist-server/routers/api/restful-apis/v2/update-release-order-details.js +0 -82
  262. package/dist-server/routers/api/restful-apis/v2/update-release-order-details.js.map +0 -1
  263. package/server/routers/api/restful-apis/v1/add-contact-point.ts +0 -77
  264. package/server/routers/api/restful-apis/v1/add-draft-release-order.ts +0 -196
  265. package/server/routers/api/restful-apis/v1/add-inbound-order.ts +0 -242
  266. package/server/routers/api/restful-apis/v1/add-marketplace-order.ts +0 -172
  267. package/server/routers/api/restful-apis/v1/add-products.ts +0 -112
  268. package/server/routers/api/restful-apis/v1/add-release-order.ts +0 -967
  269. package/server/routers/api/restful-apis/v1/bizplace.ts +0 -45
  270. package/server/routers/api/restful-apis/v1/cancel-marketplace-order.ts +0 -81
  271. package/server/routers/api/restful-apis/v1/cancel-release-order.ts +0 -91
  272. package/server/routers/api/restful-apis/v1/get-contact-point-list.ts +0 -110
  273. package/server/routers/api/restful-apis/v1/get-delivery-order-detail.ts +0 -46
  274. package/server/routers/api/restful-apis/v1/get-delivery-order-list.ts +0 -121
  275. package/server/routers/api/restful-apis/v1/get-delivery-orders.ts +0 -178
  276. package/server/routers/api/restful-apis/v1/get-goods-received-notes.ts +0 -134
  277. package/server/routers/api/restful-apis/v1/get-inbound-order-detail.ts +0 -128
  278. package/server/routers/api/restful-apis/v1/get-inbound-order-list.ts +0 -126
  279. package/server/routers/api/restful-apis/v1/get-inventory-overall-product-group.ts +0 -99
  280. package/server/routers/api/restful-apis/v1/get-inventory-product-group.ts +0 -112
  281. package/server/routers/api/restful-apis/v1/get-marketplace-order-shipping-list.ts +0 -156
  282. package/server/routers/api/restful-apis/v1/get-marketplace-store-list.ts +0 -81
  283. package/server/routers/api/restful-apis/v1/get-onhand-inventories.ts +0 -125
  284. package/server/routers/api/restful-apis/v1/get-partners.ts +0 -24
  285. package/server/routers/api/restful-apis/v1/get-products.ts +0 -216
  286. package/server/routers/api/restful-apis/v1/get-release-order-detail.ts +0 -134
  287. package/server/routers/api/restful-apis/v1/get-release-order-list.ts +0 -198
  288. package/server/routers/api/restful-apis/v1/get-warehouses.ts +0 -18
  289. package/server/routers/api/restful-apis/v1/reject-inbound-order.ts +0 -46
  290. package/server/routers/api/restful-apis/v1/set-marketplace-order-delivered.ts +0 -60
  291. package/server/routers/api/restful-apis/v1/set-marketplace-order-failed-delivery.ts +0 -60
  292. package/server/routers/api/restful-apis/v1/update-marketplace-order.ts +0 -111
  293. package/server/routers/api/restful-apis/v1/update-marketplace-shipping-order.ts +0 -104
  294. package/server/routers/api/restful-apis/v1/update-release-order-details.ts +0 -94
  295. package/server/routers/api/restful-apis/v2/add-contact-point.ts +0 -77
  296. package/server/routers/api/restful-apis/v2/add-draft-release-order.ts +0 -196
  297. package/server/routers/api/restful-apis/v2/add-inbound-order.ts +0 -242
  298. package/server/routers/api/restful-apis/v2/add-marketplace-order.ts +0 -172
  299. package/server/routers/api/restful-apis/v2/add-products.ts +0 -112
  300. package/server/routers/api/restful-apis/v2/add-release-order.ts +0 -967
  301. package/server/routers/api/restful-apis/v2/bizplace.ts +0 -45
  302. package/server/routers/api/restful-apis/v2/cancel-marketplace-order.ts +0 -81
  303. package/server/routers/api/restful-apis/v2/cancel-release-order.ts +0 -91
  304. package/server/routers/api/restful-apis/v2/get-contact-point-list.ts +0 -110
  305. package/server/routers/api/restful-apis/v2/get-delivery-order-detail.ts +0 -46
  306. package/server/routers/api/restful-apis/v2/get-delivery-order-list.ts +0 -121
  307. package/server/routers/api/restful-apis/v2/get-delivery-orders.ts +0 -178
  308. package/server/routers/api/restful-apis/v2/get-goods-received-notes.ts +0 -134
  309. package/server/routers/api/restful-apis/v2/get-inbound-order-detail.ts +0 -128
  310. package/server/routers/api/restful-apis/v2/get-inbound-order-list.ts +0 -126
  311. package/server/routers/api/restful-apis/v2/get-inventory-overall-product-group.ts +0 -99
  312. package/server/routers/api/restful-apis/v2/get-inventory-product-group.ts +0 -112
  313. package/server/routers/api/restful-apis/v2/get-marketplace-order-shipping-list.ts +0 -156
  314. package/server/routers/api/restful-apis/v2/get-marketplace-store-list.ts +0 -81
  315. package/server/routers/api/restful-apis/v2/get-onhand-inventories.ts +0 -125
  316. package/server/routers/api/restful-apis/v2/get-partners.ts +0 -24
  317. package/server/routers/api/restful-apis/v2/get-products.ts +0 -216
  318. package/server/routers/api/restful-apis/v2/get-release-order-detail.ts +0 -134
  319. package/server/routers/api/restful-apis/v2/get-release-order-list.ts +0 -198
  320. package/server/routers/api/restful-apis/v2/get-warehouses.ts +0 -18
  321. package/server/routers/api/restful-apis/v2/index.ts +0 -31
  322. package/server/routers/api/restful-apis/v2/reject-inbound-order.ts +0 -46
  323. package/server/routers/api/restful-apis/v2/set-marketplace-order-delivered.ts +0 -60
  324. package/server/routers/api/restful-apis/v2/set-marketplace-order-failed-delivery.ts +0 -60
  325. package/server/routers/api/restful-apis/v2/update-marketplace-order.ts +0 -111
  326. package/server/routers/api/restful-apis/v2/update-marketplace-shipping-order.ts +0 -104
  327. package/server/routers/api/restful-apis/v2/update-release-order-details.ts +0 -94
@@ -1,11 +1,10 @@
1
- import { EntityManager, getRepository } from 'typeorm'
1
+ import { EntityManager } from 'typeorm'
2
2
 
3
3
  import { Bizplace } from '@things-factory/biz-base'
4
4
  import { logger } from '@things-factory/env'
5
5
  import { FulfillmentAPI, FulfillmentCenter } from '@things-factory/integration-fulfillment'
6
6
  import { Sellercraft, SellercraftAPI } from '@things-factory/integration-sellercraft'
7
- import { Product, ProductDetail } from '@things-factory/product-base'
8
- import { WarehouseBizplaceOnhandInventory } from '@things-factory/worksheet-base'
7
+ import { ProductDetail } from '@things-factory/product-base'
9
8
  import { Domain } from '@things-factory/shell'
10
9
 
11
10
  export const syncProductsToSellercraftResolver = {
@@ -24,16 +23,19 @@ export const syncProductsToSellercraftResolver = {
24
23
  let hasMorePage: boolean = true
25
24
  const limit: number = 50
26
25
 
27
- const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({ where: { id: sellercraftId }, relations: ['domain'] })
26
+ const sellercraft: Sellercraft = await tx
27
+ .getRepository(Sellercraft)
28
+ .findOne({ where: { id: sellercraftId }, relations: ['domain'] })
28
29
  const customerDomain: Domain = sellercraft.domain
29
30
  const fulfilmentCenter: FulfillmentCenter = await FulfillmentAPI.getFulfillmentCenter(fulfillmentCenterId)
30
31
  const customerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: customerDomain } })
31
32
 
32
- await tx.query(`
33
+ await tx.query(
34
+ `
33
35
  create temp table temp_warehouse_product_inventory ON COMMIT DROP as (
34
36
  select p.id, p.sku as product_sku, p.name as product_name, p.description as product_description,
35
37
  pd.gtin, pd.uom, pd.packing_size, coalesce(pd.nett_weight, 0) as nett_weight, pd.width, pd."depth", pd.height,
36
- coalesce(src.qty, 0) as available_qty, coalesce(src.qty - src."remainQty", 0) as reserved_qty, coalesce(src."remainQty",0) as remain_qty
38
+ coalesce(src.qty, 0) as available_qty, coalesce(src.qty - src."remain_qty", 0) as reserved_qty, coalesce(src."remain_qty",0) as remain_qty
37
39
  from bizplaces b
38
40
  inner join companies c on c.id = b.company_id
39
41
  inner join domains d on d.id = c.domain_id
@@ -41,17 +43,19 @@ export const syncProductsToSellercraftResolver = {
41
43
  inner join product_details pd on pd.product_id = p.id
42
44
  left join (
43
45
  select wboi.* from warehouse_bizplace_onhand_inventories wboi
44
- inner join domains d on d.id = wboi."domainId"
46
+ inner join domains d on d.id = wboi."domain_id"
45
47
  inner join fulfillment_centers fc on d.subdomain = fc.center_id
46
48
  where fc.id= $1
47
- and wboi."bizplaceId" = $2 and "groupType" = 'SINGLE'
48
- ) src on src."productId" = pd."product_id"
49
- and src."packingType" = pd."packing_type"
50
- and src."packingSize" = pd."packing_size"
49
+ and wboi."bizplaceId" = $2 and "group_type" = 'SINGLE'
50
+ ) src on src."product_id" = pd."product_id"
51
+ and src."packing_type" = pd."packing_type"
52
+ and src."packing_size" = pd."packing_size"
51
53
  and src."uom" = pd."uom"
52
54
  where b.id = $2
53
55
  )
54
- `, [fulfilmentCenter.id, customerBizplace.id])
56
+ `,
57
+ [fulfilmentCenter.id, customerBizplace.id]
58
+ )
55
59
 
56
60
  let total = await tx.query(`
57
61
  select count(*) from temp_warehouse_product_inventory
@@ -66,9 +70,12 @@ export const syncProductsToSellercraftResolver = {
66
70
  // paginationOffset: page
67
71
  // })
68
72
 
69
- const items = await tx.query(`
73
+ const items = await tx.query(
74
+ `
70
75
  select * from temp_warehouse_product_inventory limit $1 offset $2
71
- `, [limit, page * limit])
76
+ `,
77
+ [limit, page * limit]
78
+ )
72
79
 
73
80
  let sellercraftInv: any[] = []
74
81
 
@@ -101,9 +108,11 @@ export const syncProductsToSellercraftResolver = {
101
108
  await SellercraftAPI.updateProduct(sellercraft, { context, accountId: sellercraft.accountId, sellercraftInv })
102
109
 
103
110
  page++
104
- hasMorePage = (total[0]?.count || 0) > (page * limit)
111
+ hasMorePage = (total[0]?.count || 0) > page * limit
105
112
  } catch (e) {
106
- logger.error(`[syncProductsToSellercraftResolver] sellercraftID:${sellercraftId} fulfillmentCenterId:${fulfillmentCenterId} page:${page} - ${e}`)
113
+ logger.error(
114
+ `[syncProductsToSellercraftResolver] sellercraftID:${sellercraftId} fulfillmentCenterId:${fulfillmentCenterId} page:${page} - ${e}`
115
+ )
107
116
  }
108
117
  }
109
118
  } catch (e) {
@@ -1,4 +1,5 @@
1
1
  import { getRepository } from 'typeorm'
2
+
2
3
  import { MarketplaceStore as MarketplaceStoreEntity } from '@things-factory/integration-marketplace'
3
4
 
4
5
  const debug = require('debug')('things-factory:operato-hub:store-middleware')
@@ -1,3 +1,2 @@
1
1
  import './restful-apis/v1'
2
- import './restful-apis/v2'
3
2
  import './restful-apis/unstable'
@@ -124,15 +124,15 @@ router.post(
124
124
  let itemList = await tx.query(
125
125
  `
126
126
  select wboi.* from warehouse_bizplace_onhand_inventories wboi
127
- where wboi."domainId"= $1 and
128
- wboi."bizplaceId" = $2 and
129
- wboi."groupType" = 'SINGLE' and
130
- wboi."productId" = $3 and
131
- wboi."packingType" = $4 and
132
- wboi."packingSize" = $5 and
127
+ where wboi."domain_id"= $1 and
128
+ wboi."bizplace_id" = $2 and
129
+ wboi."group_type" = 'SINGLE' and
130
+ wboi."product_id" = $3 and
131
+ wboi."packing_type" = $4 and
132
+ wboi."packing_size" = $5 and
133
133
  wboi."uom" = $6 and
134
- wboi."remainQty" >= $7 and
135
- wboi."remainUomValue" >= $8
134
+ wboi."remain_qty" >= $7 and
135
+ wboi."remain_uom_value" >= $8
136
136
  `,
137
137
  [
138
138
  domain.id,
@@ -0,0 +1,111 @@
1
+ import { getConnection, EntityManager, In, Brackets } from 'typeorm'
2
+
3
+ import { restfulApiRouter as router } from '@things-factory/api'
4
+ import { ContactPoint } from '@things-factory/biz-base'
5
+ import { Bizplace } from '@things-factory/biz-base'
6
+
7
+ import { ApiError, ApiErrorHandler, throwInternalServerError } from '../utils/error-util'
8
+ import { businessMiddleware, loggingMiddleware, validationMiddleware } from '../middlewares'
9
+
10
+ router.post(
11
+ '/v1/company/add-contact-points',
12
+ businessMiddleware,
13
+ validationMiddleware,
14
+ loggingMiddleware,
15
+ async (context, next) => {
16
+ try {
17
+ if (!Array.isArray(context.request.body.data)) throw new ApiError('E01', 'data field is not an array')
18
+ if (!context.request.body.hasOwnProperty('bizplaceId')) throw new ApiError('E03', 'bizplaceId')
19
+ if (!context.request.body.bizplaceId) throw new ApiError('E01', 'bizplaceId')
20
+ await getConnection().transaction(async (tx: EntityManager) => {
21
+ // create and format values to be inserted
22
+ const bizplace: Bizplace = await tx.getRepository(Bizplace).findOne({
23
+ where: { id: context.request.body.bizplaceId }
24
+ })
25
+
26
+ // check if phone or email already belongs in bizplace
27
+ const phones = []
28
+ const emails = []
29
+ let values = []
30
+ for (const datapoint of context.request.body.data) {
31
+ phones.push(datapoint.phone)
32
+ emails.push(datapoint.email)
33
+ const value = {
34
+ name: datapoint.name,
35
+ description: datapoint.description,
36
+ companyName: datapoint.companyName,
37
+ email: datapoint.email,
38
+ fax: datapoint.fax,
39
+ phone: datapoint.phone,
40
+ billingAddress: datapoint.billingAddress,
41
+ accountNo: datapoint.accountNo,
42
+ address: datapoint.address,
43
+ address2: datapoint.address2,
44
+ city: datapoint.city,
45
+ state: datapoint.state,
46
+ postCode: datapoint.postCode,
47
+ type: datapoint.type,
48
+ domain: context.state.domain,
49
+ bizplace: bizplace,
50
+ creator: context.state.user,
51
+ updater: context.state.user
52
+ }
53
+ values.push(value)
54
+ }
55
+
56
+ const checkDuplicateEmailPhone: ContactPoint = await tx
57
+ .getRepository(ContactPoint)
58
+ .createQueryBuilder('cp')
59
+ .where('cp.bizplace_id = :bizplaceId', { bizplaceId: context.request.body.bizplaceId })
60
+ .andWhere(
61
+ new Brackets(qb => {
62
+ qb.where('cp.email in(:email)', { email: emails.toString() })
63
+ qb.orWhere('cp.phone in(:phone)', { phone: phones.toString() })
64
+ })
65
+ )
66
+ .getOne()
67
+ if (checkDuplicateEmailPhone) throw new ApiError('E05', 'email or phone number')
68
+
69
+ // insert values to DB
70
+ const result = await tx
71
+ .getRepository(ContactPoint)
72
+ .createQueryBuilder()
73
+ .insert()
74
+ .into(ContactPoint)
75
+ .values(values)
76
+ .returning('*')
77
+ .execute()
78
+
79
+ // create and format response
80
+ let data = []
81
+ for (const contactPoint of result.generatedMaps) {
82
+ const datapoint = {
83
+ name: contactPoint.name,
84
+ description: contactPoint.description,
85
+ companyName: contactPoint.companyName,
86
+ email: contactPoint.email,
87
+ fax: contactPoint.fax,
88
+ phone: contactPoint.phone,
89
+ billingAddress: contactPoint.billingAddress,
90
+ accountNo: contactPoint.accountNo,
91
+ address: contactPoint.address,
92
+ address2: contactPoint.address2,
93
+ city: contactPoint.city,
94
+ state: contactPoint.state,
95
+ postCode: contactPoint.postCode,
96
+ type: contactPoint.type,
97
+ createdAt: contactPoint.createdAt
98
+ }
99
+ data.push(datapoint)
100
+ }
101
+
102
+ context.body = {
103
+ data
104
+ }
105
+ })
106
+ } catch (e) {
107
+ if (e instanceof ApiError) ApiErrorHandler(context, e)
108
+ else throwInternalServerError(context, e)
109
+ }
110
+ }
111
+ )
@@ -0,0 +1,234 @@
1
+ import { getConnection, EntityManager, IsNull, SelectQueryBuilder } from 'typeorm'
2
+
3
+ import { restfulApiRouter as router } from '@things-factory/api'
4
+ import { ApiError, ApiErrorHandler, throwInternalServerError } from '../utils/error-util'
5
+ import { v4 as uuidv4 } from 'uuid'
6
+ import { MarketplaceStore } from '@things-factory/integration-marketplace'
7
+ import { Product, ProductBundle, ProductBundleSetting } from '@things-factory/product-base'
8
+ import {
9
+ MarketplaceOrder as MarketplaceOrderEntity,
10
+ MarketplaceOrderItem as MarketplaceOrderItemEntity,
11
+ MarketplaceOrderShipping as MarketplaceOrderShippingEntity,
12
+ MarketplaceOrderShippingItem as MarketplaceOrderShippingItemEntity,
13
+ MarketplaceProductVariation as MarketplaceProductVariationEntity,
14
+ NoGenerator
15
+ } from '@things-factory/marketplace-base'
16
+ import { businessMiddleware, validationMiddleware, loggingMiddleware } from '../middlewares'
17
+
18
+ router.post(
19
+ '/v1/company/add-marketplace-order',
20
+ businessMiddleware,
21
+ validationMiddleware,
22
+ loggingMiddleware,
23
+ async (context, next) => {
24
+ try {
25
+ await getConnection().transaction(async (tx: EntityManager) => {
26
+ const { user, domain } = context.state
27
+ const marketplaceOrder = context.request.body.data
28
+
29
+ const marketplaceStore: MarketplaceStore = await tx.getRepository(MarketplaceStore).findOne({
30
+ where: { name: marketplaceOrder.storeId, domain }
31
+ })
32
+ if (!marketplaceStore) throw new ApiError('E04', 'storeId')
33
+
34
+ let invalidQty = marketplaceOrder.marketplaceOrderItems.find(itm => itm.qty <= 0)
35
+ if (invalidQty) {
36
+ throw new ApiError('E01', 'qty')
37
+ }
38
+
39
+ let marketplaceOrderItems: MarketplaceOrderItemEntity[] = []
40
+
41
+ let newMarketplaceOrder: MarketplaceOrderEntity = Object.assign({}, marketplaceOrder)
42
+ const itemCount: number = marketplaceOrder.marketplaceOrderItems?.length
43
+
44
+ const currentDate = new Date()
45
+ newMarketplaceOrder.name = `MO-${currentDate.getFullYear()}${
46
+ currentDate.getMonth() + 1
47
+ }${currentDate.getDate()}${currentDate.getHours()}${currentDate.getMinutes()}${currentDate.getSeconds()}${currentDate.getMilliseconds()}`
48
+ newMarketplaceOrder.itemCount = itemCount
49
+ newMarketplaceOrder.marketplaceStore = marketplaceStore
50
+ newMarketplaceOrder.domain = domain
51
+ newMarketplaceOrder.creator = user
52
+ newMarketplaceOrder = await tx.getRepository(MarketplaceOrderEntity).save(newMarketplaceOrder)
53
+
54
+ let newMarketplaceOrderShipping: MarketplaceOrderShippingEntity
55
+ if (marketplaceOrder?.marketplaceOrderShipping) {
56
+ const marketplaceOrderShipping: any = marketplaceOrder.marketplaceOrderShipping
57
+ newMarketplaceOrderShipping = Object.assign({}, marketplaceOrderShipping)
58
+ newMarketplaceOrderShipping.name = marketplaceOrderShipping?.shippingId
59
+ ? marketplaceOrderShipping.shippingId
60
+ : NoGenerator.orderShipping()
61
+ newMarketplaceOrderShipping.transporter =
62
+ marketplaceOrderShipping?.transporter === '' ? null : marketplaceOrderShipping.transporter
63
+ newMarketplaceOrderShipping.ownTransporter =
64
+ marketplaceOrderShipping?.transporter === '' ? null : marketplaceOrderShipping.transporter
65
+ newMarketplaceOrderShipping.marketplaceStore = marketplaceStore
66
+ newMarketplaceOrderShipping.orderNoRef = newMarketplaceOrder.orderNo
67
+ newMarketplaceOrderShipping.subOrderNoRef = newMarketplaceOrder.orderNo
68
+ newMarketplaceOrderShipping.domain = domain
69
+ newMarketplaceOrderShipping.creator = user
70
+ newMarketplaceOrderShipping = await tx
71
+ .getRepository(MarketplaceOrderShippingEntity)
72
+ .save(newMarketplaceOrderShipping)
73
+ }
74
+
75
+ marketplaceOrderItems = await Promise.all(
76
+ marketplaceOrder?.marketplaceOrderItems.map(async orderItem => {
77
+ let marketplaceOrderItem: MarketplaceOrderItemEntity = Object.assign({}, orderItem)
78
+
79
+ const marketplaceProductVariation = orderItem.marketplaceProductVariation
80
+ const qb: SelectQueryBuilder<MarketplaceProductVariationEntity> = await tx
81
+ .getRepository(MarketplaceProductVariationEntity)
82
+ .createQueryBuilder('mpv')
83
+ .leftJoin('mpv.marketplaceProduct', 'mp')
84
+ .leftJoin('mp.marketplaceStore', 'ms')
85
+ .where('mpv.domain_id = :domainId')
86
+ .andWhere('mpv.variation_id = :variationId')
87
+ .andWhere('ms.id = :marketplaceStoreId')
88
+ .setParameters({
89
+ domainId: domain.id,
90
+ variationId: marketplaceProductVariation.variationId,
91
+ marketplaceStoreId: marketplaceStore.id
92
+ })
93
+
94
+ let foundVariation: MarketplaceProductVariationEntity = await qb.getOne()
95
+
96
+ if (!foundVariation) {
97
+ let newVariation: MarketplaceProductVariationEntity = Object.assign({}, marketplaceProductVariation)
98
+ newVariation.status = 'ACTIVE'
99
+ newVariation.domain = domain
100
+
101
+ await tx.getRepository(MarketplaceProductVariationEntity).save(newVariation)
102
+ foundVariation = newVariation
103
+ }
104
+
105
+ marketplaceOrderItem.marketplaceProductVariation = foundVariation
106
+ marketplaceOrderItem.name = orderItem.orderItemId
107
+ marketplaceOrderItem.marketplaceOrder = newMarketplaceOrder
108
+ marketplaceOrderItem.domain = domain
109
+ marketplaceOrderItem.creator = user
110
+
111
+ return marketplaceOrderItem
112
+ })
113
+ )
114
+
115
+ marketplaceOrderItems = await tx.getRepository(MarketplaceOrderItemEntity).save(marketplaceOrderItems)
116
+
117
+ await Promise.all(
118
+ marketplaceOrderItems.map(async marketplaceOrderItem => {
119
+ const marketplaceProductVariation = marketplaceOrderItem.marketplaceProductVariation
120
+
121
+ let product: Product = await tx.getRepository(Product).findOne({
122
+ where: { domain: marketplaceStore.domain, sku: marketplaceProductVariation.sku, deletedAt: IsNull() },
123
+ relations: ['productDetails']
124
+ })
125
+
126
+ let productBundle: ProductBundle
127
+ if (!product) {
128
+ productBundle = await tx.getRepository(ProductBundle).findOne({
129
+ where: { domain: marketplaceStore.domain, sku: marketplaceProductVariation.sku },
130
+ relations: ['productBundleSettings', 'productBundleSettings.product']
131
+ })
132
+ }
133
+
134
+ let existingMarketplaceOrderShippingItems: MarketplaceOrderShippingItemEntity[] = await tx
135
+ .getRepository(MarketplaceOrderShippingItemEntity)
136
+ .find({
137
+ where: { domain: marketplaceStore.domain, marketplaceOrderItem }
138
+ })
139
+
140
+ if (existingMarketplaceOrderShippingItems && existingMarketplaceOrderShippingItems?.length) {
141
+ } else {
142
+ if (productBundle) {
143
+ const productBundleSettings: ProductBundleSetting[] = productBundle.productBundleSettings
144
+ let marketplaceOrderShippingItems: MarketplaceOrderShippingItemEntity[] = []
145
+ productBundleSettings.map(productBundleSetting => {
146
+ let marketplaceOrderShippingItem: MarketplaceOrderShippingItemEntity =
147
+ new MarketplaceOrderShippingItemEntity()
148
+ marketplaceOrderShippingItem.name = uuidv4()
149
+ marketplaceOrderShippingItem.qty = marketplaceOrderItem.qty * productBundleSetting.bundleQty
150
+ marketplaceOrderShippingItem.domain = marketplaceStore.domain
151
+ marketplaceOrderShippingItem.marketplaceOrderItem = marketplaceOrderItem
152
+ marketplaceOrderShippingItem.marketplaceOrderShipping = newMarketplaceOrderShipping
153
+ marketplaceOrderShippingItem.product = productBundleSetting.product
154
+
155
+ marketplaceOrderShippingItems.push(marketplaceOrderShippingItem)
156
+ })
157
+
158
+ await tx.getRepository(MarketplaceOrderShippingItemEntity).save(marketplaceOrderShippingItems)
159
+ } else {
160
+ let marketplaceOrderShippingItem: MarketplaceOrderShippingItemEntity =
161
+ new MarketplaceOrderShippingItemEntity()
162
+ marketplaceOrderShippingItem.name = uuidv4()
163
+ marketplaceOrderShippingItem.qty = marketplaceOrderItem.qty
164
+ marketplaceOrderShippingItem.domain = marketplaceStore.domain
165
+ marketplaceOrderShippingItem.marketplaceOrderItem = marketplaceOrderItem
166
+ marketplaceOrderShippingItem.marketplaceOrderShipping = newMarketplaceOrderShipping
167
+ marketplaceOrderShippingItem.product = product ? product : null
168
+
169
+ await tx.getRepository(MarketplaceOrderShippingItemEntity).save(marketplaceOrderShippingItem)
170
+ }
171
+ }
172
+ })
173
+ )
174
+
175
+ let marketplaceOrderItemsData = []
176
+ for (const item of marketplaceOrderItems) {
177
+ const datapoint = {
178
+ marketplaceOrderVariation: {
179
+ variationId: item.marketplaceProductVariation.variationId,
180
+ sku: item.marketplaceProductVariation.sku,
181
+ variationSku: item.marketplaceProductVariation.variationSku,
182
+ variationName: item.marketplaceProductVariation.variationName
183
+ },
184
+ marketplaceOrderShipping: {
185
+ attentionTo: item.marketplaceOrderShipping.attentionTo,
186
+ address1: item.marketplaceOrderShipping.address1,
187
+ address2: item.marketplaceOrderShipping.address2,
188
+ address3: item.marketplaceOrderShipping.address3,
189
+ address4: item.marketplaceOrderShipping.address4,
190
+ address5: item.marketplaceOrderShipping.address5,
191
+ state: item.marketplaceOrderShipping.state,
192
+ city: item.marketplaceOrderShipping.city,
193
+ postCode: item.marketplaceOrderShipping.postCode,
194
+ country: item.marketplaceOrderShipping.country,
195
+ phone1: item.marketplaceOrderShipping.phone1,
196
+ phone2: item.marketplaceOrderShipping.phone2,
197
+ email: item.marketplaceOrderShipping.email,
198
+ freightType: item.marketplaceOrderShipping.freightType,
199
+ parcelType: item.marketplaceOrderShipping.parcelType,
200
+ deliveryMethod: item.marketplaceOrderShipping.deliveryMethod,
201
+ totalWeight: item.marketplaceOrderShipping.totalWeight,
202
+ totalVolume: item.marketplaceOrderShipping.totalVolume,
203
+ transporter: item.marketplaceOrderShipping.transporter
204
+ }
205
+ }
206
+ marketplaceOrderItemsData.push(datapoint)
207
+ }
208
+ const data = {
209
+ orderNo: newMarketplaceOrder.orderNo,
210
+ itemCount,
211
+ paymentMethod: newMarketplaceOrder.paymentMethod,
212
+ remark: newMarketplaceOrder.remark,
213
+ giftOption: newMarketplaceOrder.giftOption,
214
+ orderCreatedAt: newMarketplaceOrder.orderCreatedAt,
215
+ orderUpdatedAt: newMarketplaceOrder.orderUpdatedAt,
216
+ marketplaceOrderItems: marketplaceOrderItemsData,
217
+ orderItemId: newMarketplaceOrder.orderItemId,
218
+ qty: newMarketplaceOrder.qty,
219
+ cancelBy: newMarketplaceOrder.cancelBy,
220
+ returnStatus: newMarketplaceOrder.returnStatus,
221
+ packageId: newMarketplaceOrder.packageId,
222
+ status: newMarketplaceOrder.status
223
+ }
224
+
225
+ context.body = {
226
+ data
227
+ }
228
+ })
229
+ } catch (e) {
230
+ if (e instanceof ApiError) ApiErrorHandler(context, e)
231
+ else throwInternalServerError(context, e)
232
+ }
233
+ }
234
+ )
@@ -0,0 +1,96 @@
1
+ import { getRepository, In, getConnection, EntityManager } from 'typeorm'
2
+
3
+ import { restfulApiRouter as router } from '@things-factory/api'
4
+ import { Bizplace } from '@things-factory/biz-base'
5
+ import { Product, ProductDetail } from '@things-factory/product-base'
6
+
7
+ import { ApiError, ApiErrorHandler, throwInternalServerError } from '../utils/error-util'
8
+ import _ from 'lodash'
9
+ import { businessMiddleware, validationMiddleware, loggingMiddleware } from '../middlewares'
10
+
11
+ router.post(
12
+ '/v1/company/add-products',
13
+ businessMiddleware,
14
+ validationMiddleware,
15
+ loggingMiddleware,
16
+ async (context, next) => {
17
+ try {
18
+ await getConnection().transaction(async (tx: EntityManager) => {
19
+ if (!Array.isArray(context.request.body.data)) throw new ApiError('E01', 'data field is not an array')
20
+
21
+ const products = context.request.body.data
22
+ const skus = products.map(p => p.sku)
23
+ const { user, domain } = context.state
24
+
25
+ // find bizplace
26
+ const bizplace = await getRepository(Bizplace).findOne({
27
+ where: {
28
+ domain
29
+ }
30
+ })
31
+
32
+ //check duplicate sku from request
33
+ let duplicateSku = skus.filter((item, index) => skus.indexOf(item) != index)
34
+
35
+ if (duplicateSku?.length > 0) {
36
+ throw new ApiError('E05', `duplicated products found: ${[...new Set(duplicateSku)]}`)
37
+ }
38
+
39
+ //check if sku existed in db
40
+ let existedProducts: Product = await getRepository(Product).find({
41
+ where: {
42
+ sku: In(skus),
43
+ bizplace
44
+ }
45
+ })
46
+
47
+ if (existedProducts?.length > 0) {
48
+ throw new ApiError('E05', `existing products found: ${existedProducts.map(ep => ep.sku)}`)
49
+ }
50
+
51
+ // save product
52
+ await Promise.all(
53
+ products.map(async p => {
54
+ const product = p
55
+ const productDetails = p.productDetails
56
+
57
+ product.domain = domain
58
+ product.bizplace = bizplace
59
+ product.creator = user
60
+ product.updater = user
61
+ delete product.productDetails
62
+
63
+ const result = await tx.getRepository(Product).save(products)
64
+
65
+ const newProduct = result[0]
66
+
67
+ // save product details
68
+ await Promise.all(
69
+ productDetails.map(async pd => {
70
+ if (pd.packingSize < 0) throw new ApiError('E01', `${pd.gtin}: packing size cannot be negative`)
71
+ const productDetails = pd
72
+ await tx.getRepository(ProductDetail).save({
73
+ ...productDetails,
74
+ name: productDetails.gtin,
75
+ product: newProduct,
76
+ childProductDetail: null,
77
+ childQty: 0,
78
+ domain: domain,
79
+ creator: user,
80
+ updater: user
81
+ })
82
+ })
83
+ )
84
+ })
85
+ )
86
+
87
+ context.body = {
88
+ data: context.request.body
89
+ }
90
+ })
91
+ } catch (e) {
92
+ if (e instanceof ApiError) ApiErrorHandler(context, e)
93
+ else throwInternalServerError(context, e)
94
+ }
95
+ }
96
+ )
@@ -0,0 +1,94 @@
1
+ import { getConnection, EntityManager } from 'typeorm'
2
+
3
+ import { restfulApiRouter as router } from '@things-factory/api'
4
+ import { Domain } from '@things-factory/shell'
5
+ import { MarketplaceOrder, MarketplaceOrderItem } from '@things-factory/marketplace-base'
6
+ import { MarketplaceStore } from '@things-factory/integration-marketplace'
7
+
8
+ import { ApiError, ApiErrorHandler, throwInternalServerError } from '../utils/error-util'
9
+ import { User } from '@things-factory/auth-base'
10
+ import { Bizplace, getCustomerBizplaces } from '@things-factory/biz-base'
11
+ import { FulfillmentAPI, FulfillmentCenter } from '@things-factory/integration-fulfillment'
12
+ import { businessMiddleware, validationMiddleware, loggingMiddleware } from '../middlewares'
13
+
14
+ router.post('/v1/company/cancel-marketplace-order', businessMiddleware, validationMiddleware, loggingMiddleware, async (context, next) => {
15
+ try {
16
+ const { orderNo, remark, cancelBy } = context.request.body.data
17
+ const { domain, user }: { domain: Domain; user: User } = context.state
18
+
19
+ await getConnection().transaction(async (tx: EntityManager) => {
20
+ const marketplaceStore: MarketplaceStore = await tx.getRepository(MarketplaceStore).findOne({
21
+ where: { name: context.request.body.data.storeId, domain: context.state.domain }
22
+ })
23
+ if (!marketplaceStore) throw new ApiError('E04', 'storeId')
24
+
25
+ let marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
26
+ where: { domain, orderNo, marketplaceStore },
27
+ relations: ['fulfillmentCenter', 'marketplaceStore', 'marketplaceOrderItems']
28
+ })
29
+ if (!marketplaceOrder) throw new ApiError('E04', 'orderNo')
30
+
31
+ let marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems.map(orderItem => {
32
+ let marketplaceOrderItem: MarketplaceOrderItem = Object.assign({}, orderItem)
33
+ marketplaceOrderItem.reason = remark
34
+ marketplaceOrderItem.status = 'cancelled'
35
+ marketplaceOrderItem.updater = user
36
+ marketplaceOrderItem.cancelBy = cancelBy
37
+
38
+ return marketplaceOrderItem
39
+ })
40
+ await tx.getRepository(MarketplaceOrderItem).save(marketplaceOrderItems)
41
+
42
+ marketplaceOrder.status = 'cancelled'
43
+ marketplaceOrder.remark = remark
44
+ marketplaceOrder.updater = user
45
+ marketplaceOrder = await tx.getRepository(MarketplaceOrder).save(marketplaceOrder)
46
+
47
+ const cancelStatuses: string[] = ['cancelled', 'canceled']
48
+ if (cancelStatuses.includes(marketplaceOrder.status) && marketplaceOrder?.releaseOrderId) {
49
+ if (marketplaceOrder.isSplitted) {
50
+ const fulfillmentCenter: FulfillmentCenter = marketplaceOrder.fulfillmentCenter
51
+ const centerId: string = fulfillmentCenter.centerId
52
+ const warehouseDomain: Domain = await tx.getRepository(Domain).findOne({ where: { subdomain: centerId } })
53
+ const customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)
54
+ const customerBizplaceId: string = customerBizplaces[0].id
55
+
56
+ const { items: releaseOrders }: any = await FulfillmentAPI.getOutboundOrders(fulfillmentCenter, {
57
+ customerBizplaceId,
58
+ refNo: marketplaceOrder.orderNo
59
+ })
60
+ if (releaseOrders?.length) {
61
+ for (var a = 0; a < releaseOrders.length; a++) {
62
+ const releaseOrderId: string = releaseOrders[a].id
63
+ await FulfillmentAPI.cancelReleaseOrder(fulfillmentCenter, { customerBizplaceId, releaseOrderId })
64
+ }
65
+ }
66
+ } else {
67
+ const releaseOrderId: string = marketplaceOrder.releaseOrderId
68
+ const fulfillmentCenter: FulfillmentCenter = marketplaceOrder.fulfillmentCenter
69
+ const centerId: string = fulfillmentCenter.centerId
70
+
71
+ const warehouseDomain: Domain = await tx.getRepository(Domain).findOne({ where: { subdomain: centerId } })
72
+ const customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)
73
+ const customerBizplaceId: string = customerBizplaces[0].id
74
+ await FulfillmentAPI.cancelReleaseOrder(fulfillmentCenter, { customerBizplaceId, releaseOrderId })
75
+ }
76
+ }
77
+ const data = {
78
+ orderNo: marketplaceOrder.orderNo,
79
+ status: marketplaceOrder.status,
80
+ remark: marketplaceOrder.remark,
81
+ cancelBy: cancelBy || null,
82
+ createdAt: marketplaceOrder.createdAt,
83
+ updatedAt: marketplaceOrder.updatedAt
84
+ }
85
+
86
+ context.body = {
87
+ data
88
+ }
89
+ })
90
+ } catch (e) {
91
+ if (e instanceof ApiError) ApiErrorHandler(context, e)
92
+ else throwInternalServerError(context, e)
93
+ }
94
+ })