@things-factory/operato-hub 4.3.107 → 4.3.108

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 (326) hide show
  1. package/client/pages/bizplace/register.js +2 -0
  2. package/dist-server/controllers/bizplace-initializer/dataset/codes.js +1 -1
  3. package/dist-server/controllers/bizplace-initializer/dataset/codes.js.map +1 -1
  4. package/dist-server/graphql/resolvers/synchronization/sync-products-to-sellercraft.js +10 -9
  5. package/dist-server/graphql/resolvers/synchronization/sync-products-to-sellercraft.js.map +1 -1
  6. package/dist-server/middlewares/store-middleware.js.map +1 -1
  7. package/dist-server/routers/api/index.js +0 -1
  8. package/dist-server/routers/api/index.js.map +1 -1
  9. package/dist-server/routers/api/restful-apis/unstable/add-release-order.js +8 -8
  10. package/dist-server/routers/api/restful-apis/v1/company/add-contact-points.js +105 -0
  11. package/dist-server/routers/api/restful-apis/v1/company/add-contact-points.js.map +1 -0
  12. package/dist-server/routers/api/restful-apis/v1/company/add-marketplace-order.js +197 -0
  13. package/dist-server/routers/api/restful-apis/v1/company/add-marketplace-order.js.map +1 -0
  14. package/dist-server/routers/api/restful-apis/v1/company/add-products.js +69 -0
  15. package/dist-server/routers/api/restful-apis/v1/company/add-products.js.map +1 -0
  16. package/dist-server/routers/api/restful-apis/v1/company/cancel-marketplace-order.js +90 -0
  17. package/dist-server/routers/api/restful-apis/v1/company/cancel-marketplace-order.js.map +1 -0
  18. package/dist-server/routers/api/restful-apis/v1/company/get-bizplace-list.js +49 -0
  19. package/dist-server/routers/api/restful-apis/v1/company/get-bizplace-list.js.map +1 -0
  20. package/dist-server/routers/api/restful-apis/v1/company/get-contact-point-list.js +62 -0
  21. package/dist-server/routers/api/restful-apis/v1/company/get-contact-point-list.js.map +1 -0
  22. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-order-shipping-list.js +108 -0
  23. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-order-shipping-list.js.map +1 -0
  24. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-store-list.js +51 -0
  25. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-store-list.js.map +1 -0
  26. package/dist-server/routers/api/restful-apis/v1/company/get-partner-list.js +88 -0
  27. package/dist-server/routers/api/restful-apis/v1/company/get-partner-list.js.map +1 -0
  28. package/dist-server/routers/api/restful-apis/v1/company/get-product-list.js +98 -0
  29. package/dist-server/routers/api/restful-apis/v1/company/get-product-list.js.map +1 -0
  30. package/dist-server/routers/api/restful-apis/v1/company/index.js +15 -0
  31. package/dist-server/routers/api/restful-apis/v1/company/index.js.map +1 -0
  32. package/dist-server/routers/api/restful-apis/v1/company/update-marketplace-order-delivered.js +62 -0
  33. package/dist-server/routers/api/restful-apis/v1/company/update-marketplace-order-delivered.js.map +1 -0
  34. package/dist-server/routers/api/restful-apis/v1/company/update-marketplace-shipping-order.js +44 -0
  35. package/dist-server/routers/api/restful-apis/v1/company/update-marketplace-shipping-order.js.map +1 -0
  36. package/dist-server/routers/api/restful-apis/v1/index.js +2 -31
  37. package/dist-server/routers/api/restful-apis/v1/index.js.map +1 -1
  38. package/dist-server/routers/api/restful-apis/v1/middlewares/business-middleware.js +66 -0
  39. package/dist-server/routers/api/restful-apis/v1/middlewares/business-middleware.js.map +1 -0
  40. package/dist-server/routers/api/restful-apis/v1/middlewares/index.js +40 -0
  41. package/dist-server/routers/api/restful-apis/v1/middlewares/index.js.map +1 -0
  42. package/dist-server/routers/api/restful-apis/v1/middlewares/logging-middleware.js +23 -0
  43. package/dist-server/routers/api/restful-apis/v1/middlewares/logging-middleware.js.map +1 -0
  44. package/dist-server/routers/api/restful-apis/v1/middlewares/store-middleware.js +32 -0
  45. package/dist-server/routers/api/restful-apis/v1/middlewares/store-middleware.js.map +1 -0
  46. package/dist-server/routers/api/restful-apis/v1/middlewares/validation-middleware.js +118 -0
  47. package/dist-server/routers/api/restful-apis/v1/middlewares/validation-middleware.js.map +1 -0
  48. package/dist-server/routers/api/restful-apis/v1/middlewares/warehouse-middleware.js +31 -0
  49. package/dist-server/routers/api/restful-apis/v1/middlewares/warehouse-middleware.js.map +1 -0
  50. package/dist-server/routers/api/restful-apis/v1/utils/error-util.js +71 -0
  51. package/dist-server/routers/api/restful-apis/v1/utils/error-util.js.map +1 -0
  52. package/dist-server/routers/api/restful-apis/v1/utils/params.js +555 -0
  53. package/dist-server/routers/api/restful-apis/v1/utils/params.js.map +1 -0
  54. package/dist-server/routers/api/restful-apis/v1/utils/validate-util.js +60 -0
  55. package/dist-server/routers/api/restful-apis/v1/utils/validate-util.js.map +1 -0
  56. package/dist-server/routers/api/restful-apis/v1/warehouse/add-inbound-order.js +236 -0
  57. package/dist-server/routers/api/restful-apis/v1/warehouse/add-inbound-order.js.map +1 -0
  58. package/dist-server/routers/api/restful-apis/v1/warehouse/add-release-order.js +762 -0
  59. package/dist-server/routers/api/restful-apis/v1/warehouse/add-release-order.js.map +1 -0
  60. package/dist-server/routers/api/restful-apis/v1/warehouse/cancel-inbound-order.js +197 -0
  61. package/dist-server/routers/api/restful-apis/v1/warehouse/cancel-inbound-order.js.map +1 -0
  62. package/dist-server/routers/api/restful-apis/v1/warehouse/cancel-release-order.js +177 -0
  63. package/dist-server/routers/api/restful-apis/v1/warehouse/cancel-release-order.js.map +1 -0
  64. package/dist-server/routers/api/restful-apis/v1/warehouse/get-delivery-order-list.js +138 -0
  65. package/dist-server/routers/api/restful-apis/v1/warehouse/get-delivery-order-list.js.map +1 -0
  66. package/dist-server/routers/api/restful-apis/v1/warehouse/get-goods-received-note-list.js +97 -0
  67. package/dist-server/routers/api/restful-apis/v1/warehouse/get-goods-received-note-list.js.map +1 -0
  68. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.js +81 -0
  69. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.js.map +1 -0
  70. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.js +94 -0
  71. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.js.map +1 -0
  72. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.js +87 -0
  73. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.js.map +1 -0
  74. package/dist-server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.js +84 -0
  75. package/dist-server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.js.map +1 -0
  76. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-details.js +96 -0
  77. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-details.js.map +1 -0
  78. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-list.js +110 -0
  79. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-list.js.map +1 -0
  80. package/dist-server/routers/api/restful-apis/v1/warehouse/index.js +16 -0
  81. package/dist-server/routers/api/restful-apis/v1/warehouse/index.js.map +1 -0
  82. package/dist-server/routers/api/restful-apis/v1/warehouse/update-release-order-details.js +71 -0
  83. package/dist-server/routers/api/restful-apis/v1/warehouse/update-release-order-details.js.map +1 -0
  84. package/openapi/v1/Inventory.yaml +263 -0
  85. package/package.json +54 -54
  86. package/server/controllers/bizplace-initializer/dataset/codes.ts +1 -1
  87. package/server/graphql/resolvers/synchronization/sync-products-to-sellercraft.ts +25 -17
  88. package/server/middlewares/store-middleware.ts +1 -0
  89. package/server/routers/api/index.ts +0 -1
  90. package/server/routers/api/restful-apis/unstable/add-release-order.ts +8 -8
  91. package/server/routers/api/restful-apis/v1/company/add-contact-points.ts +111 -0
  92. package/server/routers/api/restful-apis/v1/company/add-marketplace-order.ts +234 -0
  93. package/server/routers/api/restful-apis/v1/company/add-products.ts +96 -0
  94. package/server/routers/api/restful-apis/v1/company/cancel-marketplace-order.ts +94 -0
  95. package/server/routers/api/restful-apis/v1/company/get-bizplace-list.ts +55 -0
  96. package/server/routers/api/restful-apis/v1/company/get-contact-point-list.ts +67 -0
  97. package/server/routers/api/restful-apis/v1/company/get-marketplace-order-shipping-list.ts +115 -0
  98. package/server/routers/api/restful-apis/v1/company/get-marketplace-store-list.ts +57 -0
  99. package/server/routers/api/restful-apis/v1/company/get-partner-list.ts +95 -0
  100. package/server/routers/api/restful-apis/v1/company/get-product-list.ts +103 -0
  101. package/server/routers/api/restful-apis/v1/company/index.ts +12 -0
  102. package/server/routers/api/restful-apis/v1/company/update-marketplace-order-delivered.ts +66 -0
  103. package/server/routers/api/restful-apis/v1/company/update-marketplace-shipping-order.ts +55 -0
  104. package/server/routers/api/restful-apis/v1/index.ts +2 -31
  105. package/server/routers/api/restful-apis/v1/middlewares/business-middleware.ts +68 -0
  106. package/server/routers/api/restful-apis/v1/middlewares/index.ts +26 -0
  107. package/server/routers/api/restful-apis/v1/middlewares/logging-middleware.ts +24 -0
  108. package/server/routers/api/restful-apis/v1/middlewares/store-middleware.ts +34 -0
  109. package/server/routers/api/restful-apis/v1/middlewares/validation-middleware.ts +116 -0
  110. package/server/routers/api/restful-apis/v1/middlewares/warehouse-middleware.ts +31 -0
  111. package/server/routers/api/restful-apis/v1/utils/error-util.ts +70 -0
  112. package/server/routers/api/restful-apis/v1/utils/params.ts +555 -0
  113. package/server/routers/api/restful-apis/v1/utils/validate-util.ts +53 -0
  114. package/server/routers/api/restful-apis/v1/warehouse/add-inbound-order.ts +324 -0
  115. package/server/routers/api/restful-apis/v1/warehouse/add-release-order.ts +941 -0
  116. package/server/routers/api/restful-apis/v1/warehouse/cancel-inbound-order.ts +261 -0
  117. package/server/routers/api/restful-apis/v1/warehouse/cancel-release-order.ts +258 -0
  118. package/server/routers/api/restful-apis/v1/warehouse/get-delivery-order-list.ts +141 -0
  119. package/server/routers/api/restful-apis/v1/warehouse/get-goods-received-note-list.ts +105 -0
  120. package/server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.ts +83 -0
  121. package/server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.ts +96 -0
  122. package/server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.ts +112 -0
  123. package/server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.ts +89 -0
  124. package/server/routers/api/restful-apis/v1/warehouse/get-release-order-details.ts +99 -0
  125. package/server/routers/api/restful-apis/v1/warehouse/get-release-order-list.ts +113 -0
  126. package/server/routers/api/restful-apis/v1/warehouse/index.ts +13 -0
  127. package/server/routers/api/restful-apis/v1/warehouse/update-release-order-details.ts +96 -0
  128. package/translations/en.json +2 -0
  129. package/translations/ko.json +2 -0
  130. package/translations/ms.json +2 -0
  131. package/translations/zh.json +2 -0
  132. package/dist-server/routers/api/restful-apis/v1/add-contact-point.js +0 -64
  133. package/dist-server/routers/api/restful-apis/v1/add-contact-point.js.map +0 -1
  134. package/dist-server/routers/api/restful-apis/v1/add-draft-release-order.js +0 -171
  135. package/dist-server/routers/api/restful-apis/v1/add-draft-release-order.js.map +0 -1
  136. package/dist-server/routers/api/restful-apis/v1/add-inbound-order.js +0 -213
  137. package/dist-server/routers/api/restful-apis/v1/add-inbound-order.js.map +0 -1
  138. package/dist-server/routers/api/restful-apis/v1/add-marketplace-order.js +0 -144
  139. package/dist-server/routers/api/restful-apis/v1/add-marketplace-order.js.map +0 -1
  140. package/dist-server/routers/api/restful-apis/v1/add-products.js +0 -88
  141. package/dist-server/routers/api/restful-apis/v1/add-products.js.map +0 -1
  142. package/dist-server/routers/api/restful-apis/v1/add-release-order.js +0 -774
  143. package/dist-server/routers/api/restful-apis/v1/add-release-order.js.map +0 -1
  144. package/dist-server/routers/api/restful-apis/v1/bizplace.js +0 -45
  145. package/dist-server/routers/api/restful-apis/v1/bizplace.js.map +0 -1
  146. package/dist-server/routers/api/restful-apis/v1/cancel-marketplace-order.js +0 -63
  147. package/dist-server/routers/api/restful-apis/v1/cancel-marketplace-order.js.map +0 -1
  148. package/dist-server/routers/api/restful-apis/v1/cancel-release-order.js +0 -66
  149. package/dist-server/routers/api/restful-apis/v1/cancel-release-order.js.map +0 -1
  150. package/dist-server/routers/api/restful-apis/v1/get-contact-point-list.js +0 -103
  151. package/dist-server/routers/api/restful-apis/v1/get-contact-point-list.js.map +0 -1
  152. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-detail.js +0 -47
  153. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-detail.js.map +0 -1
  154. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-list.js +0 -124
  155. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-list.js.map +0 -1
  156. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js +0 -164
  157. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js.map +0 -1
  158. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js +0 -120
  159. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js.map +0 -1
  160. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-detail.js +0 -115
  161. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-detail.js.map +0 -1
  162. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-list.js +0 -125
  163. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-list.js.map +0 -1
  164. package/dist-server/routers/api/restful-apis/v1/get-inventory-overall-product-group.js +0 -88
  165. package/dist-server/routers/api/restful-apis/v1/get-inventory-overall-product-group.js.map +0 -1
  166. package/dist-server/routers/api/restful-apis/v1/get-inventory-product-group.js +0 -101
  167. package/dist-server/routers/api/restful-apis/v1/get-inventory-product-group.js.map +0 -1
  168. package/dist-server/routers/api/restful-apis/v1/get-marketplace-order-shipping-list.js +0 -146
  169. package/dist-server/routers/api/restful-apis/v1/get-marketplace-order-shipping-list.js.map +0 -1
  170. package/dist-server/routers/api/restful-apis/v1/get-marketplace-store-list.js +0 -79
  171. package/dist-server/routers/api/restful-apis/v1/get-marketplace-store-list.js.map +0 -1
  172. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js +0 -110
  173. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js.map +0 -1
  174. package/dist-server/routers/api/restful-apis/v1/get-partners.js +0 -23
  175. package/dist-server/routers/api/restful-apis/v1/get-partners.js.map +0 -1
  176. package/dist-server/routers/api/restful-apis/v1/get-products.js +0 -210
  177. package/dist-server/routers/api/restful-apis/v1/get-products.js.map +0 -1
  178. package/dist-server/routers/api/restful-apis/v1/get-release-order-detail.js +0 -122
  179. package/dist-server/routers/api/restful-apis/v1/get-release-order-detail.js.map +0 -1
  180. package/dist-server/routers/api/restful-apis/v1/get-release-order-list.js +0 -191
  181. package/dist-server/routers/api/restful-apis/v1/get-release-order-list.js.map +0 -1
  182. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js +0 -20
  183. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js.map +0 -1
  184. package/dist-server/routers/api/restful-apis/v1/reject-inbound-order.js +0 -35
  185. package/dist-server/routers/api/restful-apis/v1/reject-inbound-order.js.map +0 -1
  186. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-delivered.js +0 -45
  187. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-delivered.js.map +0 -1
  188. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-failed-delivery.js +0 -45
  189. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-failed-delivery.js.map +0 -1
  190. package/dist-server/routers/api/restful-apis/v1/update-marketplace-order.js +0 -93
  191. package/dist-server/routers/api/restful-apis/v1/update-marketplace-order.js.map +0 -1
  192. package/dist-server/routers/api/restful-apis/v1/update-marketplace-shipping-order.js +0 -85
  193. package/dist-server/routers/api/restful-apis/v1/update-marketplace-shipping-order.js.map +0 -1
  194. package/dist-server/routers/api/restful-apis/v1/update-release-order-details.js +0 -82
  195. package/dist-server/routers/api/restful-apis/v1/update-release-order-details.js.map +0 -1
  196. package/dist-server/routers/api/restful-apis/v2/add-contact-point.js +0 -64
  197. package/dist-server/routers/api/restful-apis/v2/add-contact-point.js.map +0 -1
  198. package/dist-server/routers/api/restful-apis/v2/add-draft-release-order.js +0 -171
  199. package/dist-server/routers/api/restful-apis/v2/add-draft-release-order.js.map +0 -1
  200. package/dist-server/routers/api/restful-apis/v2/add-inbound-order.js +0 -213
  201. package/dist-server/routers/api/restful-apis/v2/add-inbound-order.js.map +0 -1
  202. package/dist-server/routers/api/restful-apis/v2/add-marketplace-order.js +0 -144
  203. package/dist-server/routers/api/restful-apis/v2/add-marketplace-order.js.map +0 -1
  204. package/dist-server/routers/api/restful-apis/v2/add-products.js +0 -88
  205. package/dist-server/routers/api/restful-apis/v2/add-products.js.map +0 -1
  206. package/dist-server/routers/api/restful-apis/v2/add-release-order.js +0 -774
  207. package/dist-server/routers/api/restful-apis/v2/add-release-order.js.map +0 -1
  208. package/dist-server/routers/api/restful-apis/v2/bizplace.js +0 -45
  209. package/dist-server/routers/api/restful-apis/v2/bizplace.js.map +0 -1
  210. package/dist-server/routers/api/restful-apis/v2/cancel-marketplace-order.js +0 -63
  211. package/dist-server/routers/api/restful-apis/v2/cancel-marketplace-order.js.map +0 -1
  212. package/dist-server/routers/api/restful-apis/v2/cancel-release-order.js +0 -66
  213. package/dist-server/routers/api/restful-apis/v2/cancel-release-order.js.map +0 -1
  214. package/dist-server/routers/api/restful-apis/v2/get-contact-point-list.js +0 -103
  215. package/dist-server/routers/api/restful-apis/v2/get-contact-point-list.js.map +0 -1
  216. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-detail.js +0 -47
  217. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-detail.js.map +0 -1
  218. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-list.js +0 -124
  219. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-list.js.map +0 -1
  220. package/dist-server/routers/api/restful-apis/v2/get-delivery-orders.js +0 -164
  221. package/dist-server/routers/api/restful-apis/v2/get-delivery-orders.js.map +0 -1
  222. package/dist-server/routers/api/restful-apis/v2/get-goods-received-notes.js +0 -120
  223. package/dist-server/routers/api/restful-apis/v2/get-goods-received-notes.js.map +0 -1
  224. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-detail.js +0 -115
  225. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-detail.js.map +0 -1
  226. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-list.js +0 -125
  227. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-list.js.map +0 -1
  228. package/dist-server/routers/api/restful-apis/v2/get-inventory-overall-product-group.js +0 -88
  229. package/dist-server/routers/api/restful-apis/v2/get-inventory-overall-product-group.js.map +0 -1
  230. package/dist-server/routers/api/restful-apis/v2/get-inventory-product-group.js +0 -101
  231. package/dist-server/routers/api/restful-apis/v2/get-inventory-product-group.js.map +0 -1
  232. package/dist-server/routers/api/restful-apis/v2/get-marketplace-order-shipping-list.js +0 -146
  233. package/dist-server/routers/api/restful-apis/v2/get-marketplace-order-shipping-list.js.map +0 -1
  234. package/dist-server/routers/api/restful-apis/v2/get-marketplace-store-list.js +0 -79
  235. package/dist-server/routers/api/restful-apis/v2/get-marketplace-store-list.js.map +0 -1
  236. package/dist-server/routers/api/restful-apis/v2/get-onhand-inventories.js +0 -110
  237. package/dist-server/routers/api/restful-apis/v2/get-onhand-inventories.js.map +0 -1
  238. package/dist-server/routers/api/restful-apis/v2/get-partners.js +0 -23
  239. package/dist-server/routers/api/restful-apis/v2/get-partners.js.map +0 -1
  240. package/dist-server/routers/api/restful-apis/v2/get-products.js +0 -210
  241. package/dist-server/routers/api/restful-apis/v2/get-products.js.map +0 -1
  242. package/dist-server/routers/api/restful-apis/v2/get-release-order-detail.js +0 -122
  243. package/dist-server/routers/api/restful-apis/v2/get-release-order-detail.js.map +0 -1
  244. package/dist-server/routers/api/restful-apis/v2/get-release-order-list.js +0 -191
  245. package/dist-server/routers/api/restful-apis/v2/get-release-order-list.js.map +0 -1
  246. package/dist-server/routers/api/restful-apis/v2/get-warehouses.js +0 -20
  247. package/dist-server/routers/api/restful-apis/v2/get-warehouses.js.map +0 -1
  248. package/dist-server/routers/api/restful-apis/v2/index.js +0 -34
  249. package/dist-server/routers/api/restful-apis/v2/index.js.map +0 -1
  250. package/dist-server/routers/api/restful-apis/v2/reject-inbound-order.js +0 -35
  251. package/dist-server/routers/api/restful-apis/v2/reject-inbound-order.js.map +0 -1
  252. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-delivered.js +0 -45
  253. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-delivered.js.map +0 -1
  254. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-failed-delivery.js +0 -45
  255. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-failed-delivery.js.map +0 -1
  256. package/dist-server/routers/api/restful-apis/v2/update-marketplace-order.js +0 -93
  257. package/dist-server/routers/api/restful-apis/v2/update-marketplace-order.js.map +0 -1
  258. package/dist-server/routers/api/restful-apis/v2/update-marketplace-shipping-order.js +0 -85
  259. package/dist-server/routers/api/restful-apis/v2/update-marketplace-shipping-order.js.map +0 -1
  260. package/dist-server/routers/api/restful-apis/v2/update-release-order-details.js +0 -82
  261. package/dist-server/routers/api/restful-apis/v2/update-release-order-details.js.map +0 -1
  262. package/server/routers/api/restful-apis/v1/add-contact-point.ts +0 -77
  263. package/server/routers/api/restful-apis/v1/add-draft-release-order.ts +0 -196
  264. package/server/routers/api/restful-apis/v1/add-inbound-order.ts +0 -242
  265. package/server/routers/api/restful-apis/v1/add-marketplace-order.ts +0 -172
  266. package/server/routers/api/restful-apis/v1/add-products.ts +0 -112
  267. package/server/routers/api/restful-apis/v1/add-release-order.ts +0 -967
  268. package/server/routers/api/restful-apis/v1/bizplace.ts +0 -45
  269. package/server/routers/api/restful-apis/v1/cancel-marketplace-order.ts +0 -81
  270. package/server/routers/api/restful-apis/v1/cancel-release-order.ts +0 -91
  271. package/server/routers/api/restful-apis/v1/get-contact-point-list.ts +0 -110
  272. package/server/routers/api/restful-apis/v1/get-delivery-order-detail.ts +0 -46
  273. package/server/routers/api/restful-apis/v1/get-delivery-order-list.ts +0 -121
  274. package/server/routers/api/restful-apis/v1/get-delivery-orders.ts +0 -178
  275. package/server/routers/api/restful-apis/v1/get-goods-received-notes.ts +0 -134
  276. package/server/routers/api/restful-apis/v1/get-inbound-order-detail.ts +0 -128
  277. package/server/routers/api/restful-apis/v1/get-inbound-order-list.ts +0 -126
  278. package/server/routers/api/restful-apis/v1/get-inventory-overall-product-group.ts +0 -99
  279. package/server/routers/api/restful-apis/v1/get-inventory-product-group.ts +0 -112
  280. package/server/routers/api/restful-apis/v1/get-marketplace-order-shipping-list.ts +0 -156
  281. package/server/routers/api/restful-apis/v1/get-marketplace-store-list.ts +0 -81
  282. package/server/routers/api/restful-apis/v1/get-onhand-inventories.ts +0 -125
  283. package/server/routers/api/restful-apis/v1/get-partners.ts +0 -24
  284. package/server/routers/api/restful-apis/v1/get-products.ts +0 -216
  285. package/server/routers/api/restful-apis/v1/get-release-order-detail.ts +0 -134
  286. package/server/routers/api/restful-apis/v1/get-release-order-list.ts +0 -198
  287. package/server/routers/api/restful-apis/v1/get-warehouses.ts +0 -18
  288. package/server/routers/api/restful-apis/v1/reject-inbound-order.ts +0 -46
  289. package/server/routers/api/restful-apis/v1/set-marketplace-order-delivered.ts +0 -60
  290. package/server/routers/api/restful-apis/v1/set-marketplace-order-failed-delivery.ts +0 -60
  291. package/server/routers/api/restful-apis/v1/update-marketplace-order.ts +0 -111
  292. package/server/routers/api/restful-apis/v1/update-marketplace-shipping-order.ts +0 -104
  293. package/server/routers/api/restful-apis/v1/update-release-order-details.ts +0 -94
  294. package/server/routers/api/restful-apis/v2/add-contact-point.ts +0 -77
  295. package/server/routers/api/restful-apis/v2/add-draft-release-order.ts +0 -196
  296. package/server/routers/api/restful-apis/v2/add-inbound-order.ts +0 -242
  297. package/server/routers/api/restful-apis/v2/add-marketplace-order.ts +0 -172
  298. package/server/routers/api/restful-apis/v2/add-products.ts +0 -112
  299. package/server/routers/api/restful-apis/v2/add-release-order.ts +0 -967
  300. package/server/routers/api/restful-apis/v2/bizplace.ts +0 -45
  301. package/server/routers/api/restful-apis/v2/cancel-marketplace-order.ts +0 -81
  302. package/server/routers/api/restful-apis/v2/cancel-release-order.ts +0 -91
  303. package/server/routers/api/restful-apis/v2/get-contact-point-list.ts +0 -110
  304. package/server/routers/api/restful-apis/v2/get-delivery-order-detail.ts +0 -46
  305. package/server/routers/api/restful-apis/v2/get-delivery-order-list.ts +0 -121
  306. package/server/routers/api/restful-apis/v2/get-delivery-orders.ts +0 -178
  307. package/server/routers/api/restful-apis/v2/get-goods-received-notes.ts +0 -134
  308. package/server/routers/api/restful-apis/v2/get-inbound-order-detail.ts +0 -128
  309. package/server/routers/api/restful-apis/v2/get-inbound-order-list.ts +0 -126
  310. package/server/routers/api/restful-apis/v2/get-inventory-overall-product-group.ts +0 -99
  311. package/server/routers/api/restful-apis/v2/get-inventory-product-group.ts +0 -112
  312. package/server/routers/api/restful-apis/v2/get-marketplace-order-shipping-list.ts +0 -156
  313. package/server/routers/api/restful-apis/v2/get-marketplace-store-list.ts +0 -81
  314. package/server/routers/api/restful-apis/v2/get-onhand-inventories.ts +0 -125
  315. package/server/routers/api/restful-apis/v2/get-partners.ts +0 -24
  316. package/server/routers/api/restful-apis/v2/get-products.ts +0 -216
  317. package/server/routers/api/restful-apis/v2/get-release-order-detail.ts +0 -134
  318. package/server/routers/api/restful-apis/v2/get-release-order-list.ts +0 -198
  319. package/server/routers/api/restful-apis/v2/get-warehouses.ts +0 -18
  320. package/server/routers/api/restful-apis/v2/index.ts +0 -31
  321. package/server/routers/api/restful-apis/v2/reject-inbound-order.ts +0 -46
  322. package/server/routers/api/restful-apis/v2/set-marketplace-order-delivered.ts +0 -60
  323. package/server/routers/api/restful-apis/v2/set-marketplace-order-failed-delivery.ts +0 -60
  324. package/server/routers/api/restful-apis/v2/update-marketplace-order.ts +0 -111
  325. package/server/routers/api/restful-apis/v2/update-marketplace-shipping-order.ts +0 -104
  326. 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,18 +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
- and pd."is_default" = true
54
55
  )
55
- `, [fulfilmentCenter.id, customerBizplace.id])
56
+ `,
57
+ [fulfilmentCenter.id, customerBizplace.id]
58
+ )
56
59
 
57
60
  let total = await tx.query(`
58
61
  select count(*) from temp_warehouse_product_inventory
@@ -67,9 +70,12 @@ export const syncProductsToSellercraftResolver = {
67
70
  // paginationOffset: page
68
71
  // })
69
72
 
70
- const items = await tx.query(`
73
+ const items = await tx.query(
74
+ `
71
75
  select * from temp_warehouse_product_inventory limit $1 offset $2
72
- `, [limit, page * limit])
76
+ `,
77
+ [limit, page * limit]
78
+ )
73
79
 
74
80
  let sellercraftInv: any[] = []
75
81
 
@@ -102,9 +108,11 @@ export const syncProductsToSellercraftResolver = {
102
108
  await SellercraftAPI.updateProduct(sellercraft, { context, accountId: sellercraft.accountId, sellercraftInv })
103
109
 
104
110
  page++
105
- hasMorePage = (total[0]?.count || 0) > (page * limit)
111
+ hasMorePage = (total[0]?.count || 0) > page * limit
106
112
  } catch (e) {
107
- logger.error(`[syncProductsToSellercraftResolver] sellercraftID:${sellercraftId} fulfillmentCenterId:${fulfillmentCenterId} page:${page} - ${e}`)
113
+ logger.error(
114
+ `[syncProductsToSellercraftResolver] sellercraftID:${sellercraftId} fulfillmentCenterId:${fulfillmentCenterId} page:${page} - ${e}`
115
+ )
108
116
  }
109
117
  }
110
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'
@@ -130,15 +130,15 @@ router.post(
130
130
  let itemList = await tx.query(
131
131
  `
132
132
  select wboi.* from warehouse_bizplace_onhand_inventories wboi
133
- where wboi."domainId"= $1 and
134
- wboi."bizplaceId" = $2 and
135
- wboi."groupType" = 'SINGLE' and
136
- wboi."productId" = $3 and
137
- wboi."packingType" = $4 and
138
- wboi."packingSize" = $5 and
133
+ where wboi."domain_id"= $1 and
134
+ wboi."bizplace_id" = $2 and
135
+ wboi."group_type" = 'SINGLE' and
136
+ wboi."product_id" = $3 and
137
+ wboi."packing_type" = $4 and
138
+ wboi."packing_size" = $5 and
139
139
  wboi."uom" = $6 and
140
- wboi."remainQty" >= $7 and
141
- wboi."remainUomValue" >= $8
140
+ wboi."remain_qty" >= $7 and
141
+ wboi."remain_uom_value" >= $8
142
142
  `,
143
143
  [
144
144
  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
+ })