@things-factory/operato-hub 6.2.102 → 6.2.103

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 (376) hide show
  1. package/dist-server/controllers/bizplace-initializer/codes.js +21 -0
  2. package/dist-server/controllers/bizplace-initializer/codes.js.map +1 -0
  3. package/dist-server/controllers/bizplace-initializer/dataset/codes.js +402 -0
  4. package/dist-server/controllers/bizplace-initializer/dataset/codes.js.map +1 -0
  5. package/dist-server/controllers/bizplace-initializer/dataset/groups.js +24 -0
  6. package/dist-server/controllers/bizplace-initializer/dataset/groups.js.map +1 -0
  7. package/dist-server/controllers/bizplace-initializer/dataset/index.js +9 -0
  8. package/dist-server/controllers/bizplace-initializer/dataset/index.js.map +1 -0
  9. package/dist-server/controllers/bizplace-initializer/dataset/menus.js +504 -0
  10. package/dist-server/controllers/bizplace-initializer/dataset/menus.js.map +1 -0
  11. package/dist-server/controllers/bizplace-initializer/dataset/roles-privileges.js +406 -0
  12. package/dist-server/controllers/bizplace-initializer/dataset/roles-privileges.js.map +1 -0
  13. package/dist-server/controllers/bizplace-initializer/dataset/settings.js +94 -0
  14. package/dist-server/controllers/bizplace-initializer/dataset/settings.js.map +1 -0
  15. package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain-roles.js +26 -0
  16. package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain-roles.js.map +1 -0
  17. package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain.js +44 -0
  18. package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain.js.map +1 -0
  19. package/dist-server/controllers/bizplace-initializer/groups.js +18 -0
  20. package/dist-server/controllers/bizplace-initializer/groups.js.map +1 -0
  21. package/dist-server/controllers/bizplace-initializer/index.js +9 -0
  22. package/dist-server/controllers/bizplace-initializer/index.js.map +1 -0
  23. package/dist-server/controllers/bizplace-initializer/menus.js +28 -0
  24. package/dist-server/controllers/bizplace-initializer/menus.js.map +1 -0
  25. package/dist-server/controllers/bizplace-initializer/settings.js +16 -0
  26. package/dist-server/controllers/bizplace-initializer/settings.js.map +1 -0
  27. package/dist-server/controllers/company-initializer/business-register.js +48 -0
  28. package/dist-server/controllers/company-initializer/business-register.js.map +1 -0
  29. package/dist-server/controllers/company-initializer/codes.js +137 -0
  30. package/dist-server/controllers/company-initializer/codes.js.map +1 -0
  31. package/dist-server/controllers/company-initializer/generate-company-roles.js +117 -0
  32. package/dist-server/controllers/company-initializer/generate-company-roles.js.map +1 -0
  33. package/dist-server/controllers/company-initializer/index.js +10 -0
  34. package/dist-server/controllers/company-initializer/index.js.map +1 -0
  35. package/dist-server/controllers/company-initializer/menus.js +348 -0
  36. package/dist-server/controllers/company-initializer/menus.js.map +1 -0
  37. package/dist-server/controllers/company-initializer/settings.js +31 -0
  38. package/dist-server/controllers/company-initializer/settings.js.map +1 -0
  39. package/dist-server/controllers/company-initializer/transporter.js +18 -0
  40. package/dist-server/controllers/company-initializer/transporter.js.map +1 -0
  41. package/dist-server/controllers/index.js +1 -0
  42. package/dist-server/controllers/index.js.map +1 -0
  43. package/dist-server/controllers/invitation.js +119 -0
  44. package/dist-server/controllers/invitation.js.map +1 -0
  45. package/dist-server/controllers/utils/make-invitation-token.js +10 -0
  46. package/dist-server/controllers/utils/make-invitation-token.js.map +1 -0
  47. package/dist-server/controllers/utils/save-invitation-token.js +13 -0
  48. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -0
  49. package/dist-server/entities/index.js +1 -0
  50. package/dist-server/entities/index.js.map +1 -0
  51. package/dist-server/errors/index.js +5 -0
  52. package/dist-server/errors/index.js.map +1 -0
  53. package/dist-server/errors/validation-error.js +14 -0
  54. package/dist-server/errors/validation-error.js.map +1 -0
  55. package/dist-server/graphql/index.js +11 -0
  56. package/dist-server/graphql/index.js.map +1 -0
  57. package/dist-server/graphql/resolvers/generators/generate-bizplace.js +38 -0
  58. package/dist-server/graphql/resolvers/generators/generate-bizplace.js.map +1 -0
  59. package/dist-server/graphql/resolvers/generators/generate-company.js +61 -0
  60. package/dist-server/graphql/resolvers/generators/generate-company.js.map +1 -0
  61. package/dist-server/graphql/resolvers/generators/index.js +8 -0
  62. package/dist-server/graphql/resolvers/generators/index.js.map +1 -0
  63. package/dist-server/graphql/resolvers/generators/update-domain-extType.js +46 -0
  64. package/dist-server/graphql/resolvers/generators/update-domain-extType.js.map +1 -0
  65. package/dist-server/graphql/resolvers/index.js +11 -0
  66. package/dist-server/graphql/resolvers/index.js.map +1 -0
  67. package/dist-server/graphql/resolvers/invitations/index.js +6 -0
  68. package/dist-server/graphql/resolvers/invitations/index.js.map +1 -0
  69. package/dist-server/graphql/resolvers/invitations/partner-invitation.js +52 -0
  70. package/dist-server/graphql/resolvers/invitations/partner-invitation.js.map +1 -0
  71. package/dist-server/graphql/resolvers/oauth2/company-roles-by-scope.js +33 -0
  72. package/dist-server/graphql/resolvers/oauth2/company-roles-by-scope.js.map +1 -0
  73. package/dist-server/graphql/resolvers/oauth2/index.js +6 -0
  74. package/dist-server/graphql/resolvers/oauth2/index.js.map +1 -0
  75. package/dist-server/graphql/resolvers/synchronization/auto-update-all-marketplace-product-variation-quantity.js +149 -0
  76. package/dist-server/graphql/resolvers/synchronization/auto-update-all-marketplace-product-variation-quantity.js.map +1 -0
  77. package/dist-server/graphql/resolvers/synchronization/create-dat-shipments.js +58 -0
  78. package/dist-server/graphql/resolvers/synchronization/create-dat-shipments.js.map +1 -0
  79. package/dist-server/graphql/resolvers/synchronization/fetch-sync-invoices.js +41 -0
  80. package/dist-server/graphql/resolvers/synchronization/fetch-sync-invoices.js.map +1 -0
  81. package/dist-server/graphql/resolvers/synchronization/fetch-sync-products.js +81 -0
  82. package/dist-server/graphql/resolvers/synchronization/fetch-sync-products.js.map +1 -0
  83. package/dist-server/graphql/resolvers/synchronization/fetch-sync-purchase-orders.js +57 -0
  84. package/dist-server/graphql/resolvers/synchronization/fetch-sync-purchase-orders.js.map +1 -0
  85. package/dist-server/graphql/resolvers/synchronization/index.js +16 -0
  86. package/dist-server/graphql/resolvers/synchronization/index.js.map +1 -0
  87. package/dist-server/graphql/resolvers/synchronization/sellercraft-pack-marketplace-order.js +68 -0
  88. package/dist-server/graphql/resolvers/synchronization/sellercraft-pack-marketplace-order.js.map +1 -0
  89. package/dist-server/graphql/resolvers/synchronization/sync-all-products-to-sellercraft.js +35 -0
  90. package/dist-server/graphql/resolvers/synchronization/sync-all-products-to-sellercraft.js.map +1 -0
  91. package/dist-server/graphql/resolvers/synchronization/sync-products-from-account.js +34 -0
  92. package/dist-server/graphql/resolvers/synchronization/sync-products-from-account.js.map +1 -0
  93. package/dist-server/graphql/resolvers/synchronization/sync-products-to-account.js +55 -0
  94. package/dist-server/graphql/resolvers/synchronization/sync-products-to-account.js.map +1 -0
  95. package/dist-server/graphql/resolvers/synchronization/sync-products-to-sellercraft.js +142 -0
  96. package/dist-server/graphql/resolvers/synchronization/sync-products-to-sellercraft.js.map +1 -0
  97. package/dist-server/graphql/types/generators/generate-bizplace-input.js +15 -0
  98. package/dist-server/graphql/types/generators/generate-bizplace-input.js.map +1 -0
  99. package/dist-server/graphql/types/generators/generate-company-input.js +15 -0
  100. package/dist-server/graphql/types/generators/generate-company-input.js.map +1 -0
  101. package/dist-server/graphql/types/generators/index.js +13 -0
  102. package/dist-server/graphql/types/generators/index.js.map +1 -0
  103. package/dist-server/graphql/types/generators/update-domain-type-input.js +12 -0
  104. package/dist-server/graphql/types/generators/update-domain-type-input.js.map +1 -0
  105. package/dist-server/graphql/types/index.js +12 -0
  106. package/dist-server/graphql/types/index.js.map +1 -0
  107. package/dist-server/graphql/types/invitations/index.js +9 -0
  108. package/dist-server/graphql/types/invitations/index.js.map +1 -0
  109. package/dist-server/graphql/types/oauth2/company-role.js +12 -0
  110. package/dist-server/graphql/types/oauth2/company-role.js.map +1 -0
  111. package/dist-server/graphql/types/oauth2/index.js +9 -0
  112. package/dist-server/graphql/types/oauth2/index.js.map +1 -0
  113. package/dist-server/graphql/types/synchronization/index.js +34 -0
  114. package/dist-server/graphql/types/synchronization/index.js.map +1 -0
  115. package/dist-server/graphql/types/synchronization/sync-invoice-list.js +12 -0
  116. package/dist-server/graphql/types/synchronization/sync-invoice-list.js.map +1 -0
  117. package/dist-server/graphql/types/synchronization/sync-invoice-set.js +42 -0
  118. package/dist-server/graphql/types/synchronization/sync-invoice-set.js.map +1 -0
  119. package/dist-server/graphql/types/synchronization/sync-product-list.js +12 -0
  120. package/dist-server/graphql/types/synchronization/sync-product-list.js.map +1 -0
  121. package/dist-server/graphql/types/synchronization/sync-product-set.js +12 -0
  122. package/dist-server/graphql/types/synchronization/sync-product-set.js.map +1 -0
  123. package/dist-server/graphql/types/synchronization/sync-purchase-order-list.js +12 -0
  124. package/dist-server/graphql/types/synchronization/sync-purchase-order-list.js.map +1 -0
  125. package/dist-server/graphql/types/synchronization/sync-purchase-order-set.js +32 -0
  126. package/dist-server/graphql/types/synchronization/sync-purchase-order-set.js.map +1 -0
  127. package/dist-server/index.js +29 -0
  128. package/dist-server/index.js.map +1 -0
  129. package/dist-server/middlewares/business-middleware.js +31 -0
  130. package/dist-server/middlewares/business-middleware.js.map +1 -0
  131. package/dist-server/middlewares/index.js +21 -0
  132. package/dist-server/middlewares/index.js.map +1 -0
  133. package/dist-server/middlewares/store-middleware.js +34 -0
  134. package/dist-server/middlewares/store-middleware.js.map +1 -0
  135. package/dist-server/middlewares/warehouse-middleware.js +34 -0
  136. package/dist-server/middlewares/warehouse-middleware.js.map +1 -0
  137. package/dist-server/migrations/1597668478399-SeedBusinessDomain.js +26 -0
  138. package/dist-server/migrations/1597668478399-SeedBusinessDomain.js.map +1 -0
  139. package/dist-server/migrations/1597668478401-SeedBusinessRoles.js +377 -0
  140. package/dist-server/migrations/1597668478401-SeedBusinessRoles.js.map +1 -0
  141. package/dist-server/migrations/1608009991065-SeedUser.js +52 -0
  142. package/dist-server/migrations/1608009991065-SeedUser.js.map +1 -0
  143. package/dist-server/migrations/index.js +12 -0
  144. package/dist-server/migrations/index.js.map +1 -0
  145. package/dist-server/routers/api/index.js +6 -0
  146. package/dist-server/routers/api/index.js.map +1 -0
  147. package/dist-server/routers/api/restful-apis/unstable/add-contact-point.js +74 -0
  148. package/dist-server/routers/api/restful-apis/unstable/add-contact-point.js.map +1 -0
  149. package/dist-server/routers/api/restful-apis/unstable/add-draft-release-order.js +171 -0
  150. package/dist-server/routers/api/restful-apis/unstable/add-draft-release-order.js.map +1 -0
  151. package/dist-server/routers/api/restful-apis/unstable/add-inbound-order.js +215 -0
  152. package/dist-server/routers/api/restful-apis/unstable/add-inbound-order.js.map +1 -0
  153. package/dist-server/routers/api/restful-apis/unstable/add-marketplace-order.js +142 -0
  154. package/dist-server/routers/api/restful-apis/unstable/add-marketplace-order.js.map +1 -0
  155. package/dist-server/routers/api/restful-apis/unstable/add-products.js +86 -0
  156. package/dist-server/routers/api/restful-apis/unstable/add-products.js.map +1 -0
  157. package/dist-server/routers/api/restful-apis/unstable/add-release-order.js +850 -0
  158. package/dist-server/routers/api/restful-apis/unstable/add-release-order.js.map +1 -0
  159. package/dist-server/routers/api/restful-apis/unstable/add-sales-invoice.js +127 -0
  160. package/dist-server/routers/api/restful-apis/unstable/add-sales-invoice.js.map +1 -0
  161. package/dist-server/routers/api/restful-apis/unstable/bizplace.js +43 -0
  162. package/dist-server/routers/api/restful-apis/unstable/bizplace.js.map +1 -0
  163. package/dist-server/routers/api/restful-apis/unstable/cancel-marketplace-order.js +61 -0
  164. package/dist-server/routers/api/restful-apis/unstable/cancel-marketplace-order.js.map +1 -0
  165. package/dist-server/routers/api/restful-apis/unstable/cancel-release-order.js +64 -0
  166. package/dist-server/routers/api/restful-apis/unstable/cancel-release-order.js.map +1 -0
  167. package/dist-server/routers/api/restful-apis/unstable/get-contact-point-list.js +101 -0
  168. package/dist-server/routers/api/restful-apis/unstable/get-contact-point-list.js.map +1 -0
  169. package/dist-server/routers/api/restful-apis/unstable/get-delivery-order-detail.js +45 -0
  170. package/dist-server/routers/api/restful-apis/unstable/get-delivery-order-detail.js.map +1 -0
  171. package/dist-server/routers/api/restful-apis/unstable/get-delivery-order-list.js +122 -0
  172. package/dist-server/routers/api/restful-apis/unstable/get-delivery-order-list.js.map +1 -0
  173. package/dist-server/routers/api/restful-apis/unstable/get-delivery-orders.js +162 -0
  174. package/dist-server/routers/api/restful-apis/unstable/get-delivery-orders.js.map +1 -0
  175. package/dist-server/routers/api/restful-apis/unstable/get-goods-received-notes.js +118 -0
  176. package/dist-server/routers/api/restful-apis/unstable/get-goods-received-notes.js.map +1 -0
  177. package/dist-server/routers/api/restful-apis/unstable/get-inbound-order-detail.js +113 -0
  178. package/dist-server/routers/api/restful-apis/unstable/get-inbound-order-detail.js.map +1 -0
  179. package/dist-server/routers/api/restful-apis/unstable/get-inbound-order-list.js +123 -0
  180. package/dist-server/routers/api/restful-apis/unstable/get-inbound-order-list.js.map +1 -0
  181. package/dist-server/routers/api/restful-apis/unstable/get-inventory-overall-product-group.js +86 -0
  182. package/dist-server/routers/api/restful-apis/unstable/get-inventory-overall-product-group.js.map +1 -0
  183. package/dist-server/routers/api/restful-apis/unstable/get-inventory-product-group.js +93 -0
  184. package/dist-server/routers/api/restful-apis/unstable/get-inventory-product-group.js.map +1 -0
  185. package/dist-server/routers/api/restful-apis/unstable/get-marketplace-order-shipping-list.js +144 -0
  186. package/dist-server/routers/api/restful-apis/unstable/get-marketplace-order-shipping-list.js.map +1 -0
  187. package/dist-server/routers/api/restful-apis/unstable/get-marketplace-store-list.js +77 -0
  188. package/dist-server/routers/api/restful-apis/unstable/get-marketplace-store-list.js.map +1 -0
  189. package/dist-server/routers/api/restful-apis/unstable/get-onhand-inventories.js +108 -0
  190. package/dist-server/routers/api/restful-apis/unstable/get-onhand-inventories.js.map +1 -0
  191. package/dist-server/routers/api/restful-apis/unstable/get-partners.js +24 -0
  192. package/dist-server/routers/api/restful-apis/unstable/get-partners.js.map +1 -0
  193. package/dist-server/routers/api/restful-apis/unstable/get-products.js +208 -0
  194. package/dist-server/routers/api/restful-apis/unstable/get-products.js.map +1 -0
  195. package/dist-server/routers/api/restful-apis/unstable/get-release-order-detail.js +123 -0
  196. package/dist-server/routers/api/restful-apis/unstable/get-release-order-detail.js.map +1 -0
  197. package/dist-server/routers/api/restful-apis/unstable/get-release-order-list.js +191 -0
  198. package/dist-server/routers/api/restful-apis/unstable/get-release-order-list.js.map +1 -0
  199. package/dist-server/routers/api/restful-apis/unstable/get-warehouses.js +20 -0
  200. package/dist-server/routers/api/restful-apis/unstable/get-warehouses.js.map +1 -0
  201. package/dist-server/routers/api/restful-apis/unstable/index.js +35 -0
  202. package/dist-server/routers/api/restful-apis/unstable/index.js.map +1 -0
  203. package/dist-server/routers/api/restful-apis/unstable/reject-inbound-order.js +33 -0
  204. package/dist-server/routers/api/restful-apis/unstable/reject-inbound-order.js.map +1 -0
  205. package/dist-server/routers/api/restful-apis/unstable/set-marketplace-order-delivered.js +43 -0
  206. package/dist-server/routers/api/restful-apis/unstable/set-marketplace-order-delivered.js.map +1 -0
  207. package/dist-server/routers/api/restful-apis/unstable/set-marketplace-order-failed-delivery.js +43 -0
  208. package/dist-server/routers/api/restful-apis/unstable/set-marketplace-order-failed-delivery.js.map +1 -0
  209. package/dist-server/routers/api/restful-apis/unstable/update-marketplace-order.js +91 -0
  210. package/dist-server/routers/api/restful-apis/unstable/update-marketplace-order.js.map +1 -0
  211. package/dist-server/routers/api/restful-apis/unstable/update-marketplace-shipping-order.js +86 -0
  212. package/dist-server/routers/api/restful-apis/unstable/update-marketplace-shipping-order.js.map +1 -0
  213. package/dist-server/routers/api/restful-apis/unstable/update-release-order-details.js +80 -0
  214. package/dist-server/routers/api/restful-apis/unstable/update-release-order-details.js.map +1 -0
  215. package/dist-server/routers/api/restful-apis/v1/add-contact-point.js +62 -0
  216. package/dist-server/routers/api/restful-apis/v1/add-contact-point.js.map +1 -0
  217. package/dist-server/routers/api/restful-apis/v1/add-draft-release-order.js +169 -0
  218. package/dist-server/routers/api/restful-apis/v1/add-draft-release-order.js.map +1 -0
  219. package/dist-server/routers/api/restful-apis/v1/add-inbound-order.js +212 -0
  220. package/dist-server/routers/api/restful-apis/v1/add-inbound-order.js.map +1 -0
  221. package/dist-server/routers/api/restful-apis/v1/add-marketplace-order.js +142 -0
  222. package/dist-server/routers/api/restful-apis/v1/add-marketplace-order.js.map +1 -0
  223. package/dist-server/routers/api/restful-apis/v1/add-products.js +86 -0
  224. package/dist-server/routers/api/restful-apis/v1/add-products.js.map +1 -0
  225. package/dist-server/routers/api/restful-apis/v1/add-release-order.js +772 -0
  226. package/dist-server/routers/api/restful-apis/v1/add-release-order.js.map +1 -0
  227. package/dist-server/routers/api/restful-apis/v1/bizplace.js +43 -0
  228. package/dist-server/routers/api/restful-apis/v1/bizplace.js.map +1 -0
  229. package/dist-server/routers/api/restful-apis/v1/cancel-marketplace-order.js +61 -0
  230. package/dist-server/routers/api/restful-apis/v1/cancel-marketplace-order.js.map +1 -0
  231. package/dist-server/routers/api/restful-apis/v1/cancel-release-order.js +64 -0
  232. package/dist-server/routers/api/restful-apis/v1/cancel-release-order.js.map +1 -0
  233. package/dist-server/routers/api/restful-apis/v1/get-contact-point-list.js +101 -0
  234. package/dist-server/routers/api/restful-apis/v1/get-contact-point-list.js.map +1 -0
  235. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-detail.js +45 -0
  236. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-detail.js.map +1 -0
  237. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-list.js +122 -0
  238. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-list.js.map +1 -0
  239. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js +162 -0
  240. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js.map +1 -0
  241. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js +118 -0
  242. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js.map +1 -0
  243. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-detail.js +113 -0
  244. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-detail.js.map +1 -0
  245. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-list.js +123 -0
  246. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-list.js.map +1 -0
  247. package/dist-server/routers/api/restful-apis/v1/get-inventory-overall-product-group.js +86 -0
  248. package/dist-server/routers/api/restful-apis/v1/get-inventory-overall-product-group.js.map +1 -0
  249. package/dist-server/routers/api/restful-apis/v1/get-inventory-product-group.js +99 -0
  250. package/dist-server/routers/api/restful-apis/v1/get-inventory-product-group.js.map +1 -0
  251. package/dist-server/routers/api/restful-apis/v1/get-marketplace-order-shipping-list.js +144 -0
  252. package/dist-server/routers/api/restful-apis/v1/get-marketplace-order-shipping-list.js.map +1 -0
  253. package/dist-server/routers/api/restful-apis/v1/get-marketplace-store-list.js +77 -0
  254. package/dist-server/routers/api/restful-apis/v1/get-marketplace-store-list.js.map +1 -0
  255. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js +108 -0
  256. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js.map +1 -0
  257. package/dist-server/routers/api/restful-apis/v1/get-partners.js +24 -0
  258. package/dist-server/routers/api/restful-apis/v1/get-partners.js.map +1 -0
  259. package/dist-server/routers/api/restful-apis/v1/get-products.js +208 -0
  260. package/dist-server/routers/api/restful-apis/v1/get-products.js.map +1 -0
  261. package/dist-server/routers/api/restful-apis/v1/get-release-order-detail.js +120 -0
  262. package/dist-server/routers/api/restful-apis/v1/get-release-order-detail.js.map +1 -0
  263. package/dist-server/routers/api/restful-apis/v1/get-release-order-list.js +189 -0
  264. package/dist-server/routers/api/restful-apis/v1/get-release-order-list.js.map +1 -0
  265. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js +20 -0
  266. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js.map +1 -0
  267. package/dist-server/routers/api/restful-apis/v1/index.js +34 -0
  268. package/dist-server/routers/api/restful-apis/v1/index.js.map +1 -0
  269. package/dist-server/routers/api/restful-apis/v1/reject-inbound-order.js +33 -0
  270. package/dist-server/routers/api/restful-apis/v1/reject-inbound-order.js.map +1 -0
  271. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-delivered.js +43 -0
  272. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-delivered.js.map +1 -0
  273. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-failed-delivery.js +43 -0
  274. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-failed-delivery.js.map +1 -0
  275. package/dist-server/routers/api/restful-apis/v1/update-marketplace-order.js +91 -0
  276. package/dist-server/routers/api/restful-apis/v1/update-marketplace-order.js.map +1 -0
  277. package/dist-server/routers/api/restful-apis/v1/update-marketplace-shipping-order.js +83 -0
  278. package/dist-server/routers/api/restful-apis/v1/update-marketplace-shipping-order.js.map +1 -0
  279. package/dist-server/routers/api/restful-apis/v1/update-release-order-details.js +80 -0
  280. package/dist-server/routers/api/restful-apis/v1/update-release-order-details.js.map +1 -0
  281. package/dist-server/routers/api/restful-apis/v2/add-contact-point.js +62 -0
  282. package/dist-server/routers/api/restful-apis/v2/add-contact-point.js.map +1 -0
  283. package/dist-server/routers/api/restful-apis/v2/add-draft-release-order.js +169 -0
  284. package/dist-server/routers/api/restful-apis/v2/add-draft-release-order.js.map +1 -0
  285. package/dist-server/routers/api/restful-apis/v2/add-inbound-order.js +212 -0
  286. package/dist-server/routers/api/restful-apis/v2/add-inbound-order.js.map +1 -0
  287. package/dist-server/routers/api/restful-apis/v2/add-marketplace-order.js +142 -0
  288. package/dist-server/routers/api/restful-apis/v2/add-marketplace-order.js.map +1 -0
  289. package/dist-server/routers/api/restful-apis/v2/add-products.js +86 -0
  290. package/dist-server/routers/api/restful-apis/v2/add-products.js.map +1 -0
  291. package/dist-server/routers/api/restful-apis/v2/add-release-order.js +772 -0
  292. package/dist-server/routers/api/restful-apis/v2/add-release-order.js.map +1 -0
  293. package/dist-server/routers/api/restful-apis/v2/bizplace.js +43 -0
  294. package/dist-server/routers/api/restful-apis/v2/bizplace.js.map +1 -0
  295. package/dist-server/routers/api/restful-apis/v2/cancel-marketplace-order.js +61 -0
  296. package/dist-server/routers/api/restful-apis/v2/cancel-marketplace-order.js.map +1 -0
  297. package/dist-server/routers/api/restful-apis/v2/cancel-release-order.js +64 -0
  298. package/dist-server/routers/api/restful-apis/v2/cancel-release-order.js.map +1 -0
  299. package/dist-server/routers/api/restful-apis/v2/get-contact-point-list.js +101 -0
  300. package/dist-server/routers/api/restful-apis/v2/get-contact-point-list.js.map +1 -0
  301. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-detail.js +45 -0
  302. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-detail.js.map +1 -0
  303. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-list.js +122 -0
  304. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-list.js.map +1 -0
  305. package/dist-server/routers/api/restful-apis/v2/get-delivery-orders.js +162 -0
  306. package/dist-server/routers/api/restful-apis/v2/get-delivery-orders.js.map +1 -0
  307. package/dist-server/routers/api/restful-apis/v2/get-goods-received-notes.js +118 -0
  308. package/dist-server/routers/api/restful-apis/v2/get-goods-received-notes.js.map +1 -0
  309. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-detail.js +113 -0
  310. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-detail.js.map +1 -0
  311. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-list.js +123 -0
  312. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-list.js.map +1 -0
  313. package/dist-server/routers/api/restful-apis/v2/get-inventory-overall-product-group.js +86 -0
  314. package/dist-server/routers/api/restful-apis/v2/get-inventory-overall-product-group.js.map +1 -0
  315. package/dist-server/routers/api/restful-apis/v2/get-inventory-product-group.js +99 -0
  316. package/dist-server/routers/api/restful-apis/v2/get-inventory-product-group.js.map +1 -0
  317. package/dist-server/routers/api/restful-apis/v2/get-marketplace-order-shipping-list.js +144 -0
  318. package/dist-server/routers/api/restful-apis/v2/get-marketplace-order-shipping-list.js.map +1 -0
  319. package/dist-server/routers/api/restful-apis/v2/get-marketplace-store-list.js +77 -0
  320. package/dist-server/routers/api/restful-apis/v2/get-marketplace-store-list.js.map +1 -0
  321. package/dist-server/routers/api/restful-apis/v2/get-onhand-inventories.js +108 -0
  322. package/dist-server/routers/api/restful-apis/v2/get-onhand-inventories.js.map +1 -0
  323. package/dist-server/routers/api/restful-apis/v2/get-partners.js +24 -0
  324. package/dist-server/routers/api/restful-apis/v2/get-partners.js.map +1 -0
  325. package/dist-server/routers/api/restful-apis/v2/get-products.js +208 -0
  326. package/dist-server/routers/api/restful-apis/v2/get-products.js.map +1 -0
  327. package/dist-server/routers/api/restful-apis/v2/get-release-order-detail.js +120 -0
  328. package/dist-server/routers/api/restful-apis/v2/get-release-order-detail.js.map +1 -0
  329. package/dist-server/routers/api/restful-apis/v2/get-release-order-list.js +189 -0
  330. package/dist-server/routers/api/restful-apis/v2/get-release-order-list.js.map +1 -0
  331. package/dist-server/routers/api/restful-apis/v2/get-warehouses.js +20 -0
  332. package/dist-server/routers/api/restful-apis/v2/get-warehouses.js.map +1 -0
  333. package/dist-server/routers/api/restful-apis/v2/index.js +34 -0
  334. package/dist-server/routers/api/restful-apis/v2/index.js.map +1 -0
  335. package/dist-server/routers/api/restful-apis/v2/reject-inbound-order.js +33 -0
  336. package/dist-server/routers/api/restful-apis/v2/reject-inbound-order.js.map +1 -0
  337. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-delivered.js +43 -0
  338. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-delivered.js.map +1 -0
  339. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-failed-delivery.js +43 -0
  340. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-failed-delivery.js.map +1 -0
  341. package/dist-server/routers/api/restful-apis/v2/update-marketplace-order.js +91 -0
  342. package/dist-server/routers/api/restful-apis/v2/update-marketplace-order.js.map +1 -0
  343. package/dist-server/routers/api/restful-apis/v2/update-marketplace-shipping-order.js +83 -0
  344. package/dist-server/routers/api/restful-apis/v2/update-marketplace-shipping-order.js.map +1 -0
  345. package/dist-server/routers/api/restful-apis/v2/update-release-order-details.js +80 -0
  346. package/dist-server/routers/api/restful-apis/v2/update-release-order-details.js.map +1 -0
  347. package/dist-server/routers/auth-invitation-router.js +23 -0
  348. package/dist-server/routers/auth-invitation-router.js.map +1 -0
  349. package/dist-server/routers/business/bizplace-register-router.js +23 -0
  350. package/dist-server/routers/business/bizplace-register-router.js.map +1 -0
  351. package/dist-server/routers/business/business-register-router.js +25 -0
  352. package/dist-server/routers/business/business-register-router.js.map +1 -0
  353. package/dist-server/routers/business/index.js +7 -0
  354. package/dist-server/routers/business/index.js.map +1 -0
  355. package/dist-server/routers/business/path-base-business-router.js +16 -0
  356. package/dist-server/routers/business/path-base-business-router.js.map +1 -0
  357. package/dist-server/routes.js +18 -0
  358. package/dist-server/routes.js.map +1 -0
  359. package/dist-server/templates/account-unlock-email.js +70 -0
  360. package/dist-server/templates/account-unlock-email.js.map +1 -0
  361. package/dist-server/templates/invitation-email.js +71 -0
  362. package/dist-server/templates/invitation-email.js.map +1 -0
  363. package/dist-server/templates/reset-password-email.js +70 -0
  364. package/dist-server/templates/reset-password-email.js.map +1 -0
  365. package/dist-server/templates/verification-email.js +71 -0
  366. package/dist-server/templates/verification-email.js.map +1 -0
  367. package/dist-server/tsconfig.tsbuildinfo +1 -0
  368. package/dist-server/utils/build-map.js +19 -0
  369. package/dist-server/utils/build-map.js.map +1 -0
  370. package/dist-server/utils/get-warehouses.js +117 -0
  371. package/dist-server/utils/get-warehouses.js.map +1 -0
  372. package/dist-server/utils/index.js +7 -0
  373. package/dist-server/utils/index.js.map +1 -0
  374. package/dist-server/utils/order-no-generator.js +11 -0
  375. package/dist-server/utils/order-no-generator.js.map +1 -0
  376. package/package.json +43 -43
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-dat-shipments.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/create-dat-shipments.ts"],"names":[],"mappings":";;;AAAA,qCAAiD;AAEjD,uDAAmD;AACnD,6CAA4C;AAC5C,uEAAgE;AAChE,2DAAwD;AACxD,iDAA8C;AAEjC,QAAA,kBAAkB,GAAG;IAChC,KAAK,CAAC,kBAAkB,CAAC,CAAO,EAAE,EAAE,EAAE,OAAwB;QAC5D,IAAI;YACF,MAAM,IAAA,uBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;gBAC3C,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAA;gBAC9B,MAAM,SAAS,GAAG,EAAE,CAAA;gBACpB,IAAI,KAAK,GAAW,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAI,CAAC,CAAC,IAAI,CAAC;oBACpD,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;oBAC3B,SAAS,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC;iBAC3C,CAAC,CAAA;gBAEF,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;oBACtB,IAAI,eAAe,GAAW,MAAM,EAAE,CAAC,aAAa,CAAC,cAAM,CAAC,CAAC,OAAO,CAAC;wBACnE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;qBACtD,CAAC,CAAA;oBAEF,IAAI,QAAQ,GAAa,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;wBAChE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE;qBAC1C,CAAC,CAAA;oBAEF,IAAI,YAAY,GAAkB,MAAM,EAAE,CAAC,aAAa,CAAC,wBAAW,CAAC,CAAC,IAAI,CAAC;wBACzE,KAAK,EAAE;4BACL,MAAM,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE;4BAClC,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE;4BAC7B,MAAM,EAAE,MAAM;4BACd,SAAS,EAAE,IAAA,kBAAQ,EAAC,IAAI,CAAC,YAAY,CAAC;yBACvC;wBACD,SAAS,EAAE,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;qBAC5D,CAAC,CAAA;oBAEF,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC9B,IAAI,gBAAgB,GAAG,YAAY,CAAC,MAAM,CACxC,CAAC,EACD,YAAY,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CACnE,CAAA;wBAED,MAAM,iBAAiB,GAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;wBAEjE,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC/B,IAAI,iBAAiB,CAAC,cAAc,EAAE;gCACpC,IAAI,cAAc,GAAS,MAAM,0BAAO,CAAC,cAAc,CAAC,IAAI,EAAE;oCAC5D,YAAY,EAAE,gBAAgB;oCAC9B,IAAI,EAAE,IAAI;iCACX,CAAC,CAAA;gCACF,cAAc,CAAC,YAAY,GAAG,WAAW,CAAA;gCACzC,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;6BACzD;yBACF;qBACF;iBACF;YACH,CAAC,CAAC,CAAA;SACH;QAAC,OAAO,CAAC,EAAE;YACV,YAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAA;SACxC;IACH,CAAC;CACF,CAAA","sourcesContent":["import { getConnection, MoreThan } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\nimport { logger } from '@things-factory/env'\nimport { Sftp, SftpAPI } from '@things-factory/integration-sftp'\nimport { ReleaseGood } from '@things-factory/sales-base'\nimport { Domain } from '@things-factory/shell'\n\nexport const createDatShipments = {\n async createDatShipments(_: void, {}, context: ResolverContext): Promise<void> {\n try {\n await getConnection().transaction(async tx => {\n const currentTime = new Date()\n const batchSize = 80\n let sftps: Sftp[] = await tx.getRepository(Sftp).find({\n where: { status: 'ACTIVE' },\n relations: ['domain', 'fulfillmentCenter']\n })\n\n for (let sftp of sftps) {\n let warehouseDomain: Domain = await tx.getRepository(Domain).findOne({\n where: { subdomain: sftp.fulfillmentCenter.centerId }\n })\n\n let bizplace: Bizplace = await tx.getRepository(Bizplace).findOne({\n where: { domain: { id: sftp.domain.id } }\n })\n\n let releaseGoods: ReleaseGood[] = await tx.getRepository(ReleaseGood).find({\n where: {\n domain: { id: warehouseDomain.id },\n bizplace: { id: bizplace.id },\n status: 'DONE',\n updatedAt: MoreThan(sftp.lastTimeSync)\n },\n relations: ['orderInventories', 'orderInventories.product']\n })\n\n while (releaseGoods.length > 0) {\n let releaseGoodBatch = releaseGoods.splice(\n 0,\n releaseGoods.length >= batchSize ? batchSize : releaseGoods.length\n )\n\n const responseFileTypes: any = JSON.parse(sftp.responseFileTypes)\n\n if (releaseGoodBatch.length > 0) {\n if (responseFileTypes.enableShipment) {\n let shipmentResult: Sftp = await SftpAPI.createShipment(sftp, {\n releaseGoods: releaseGoodBatch,\n sftp: sftp\n })\n shipmentResult.lastTimeSync = currentTime\n sftp = await tx.getRepository(Sftp).save(shipmentResult)\n }\n }\n }\n }\n })\n } catch (e) {\n logger.error(`createDatShipment: ${e}`)\n }\n }\n}\n"]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAccountingInvoices = exports.fetchSyncInvoicesResolver = void 0;
4
+ const integration_accounting_1 = require("@things-factory/integration-accounting");
5
+ const integration_fulfillment_1 = require("@things-factory/integration-fulfillment");
6
+ exports.fetchSyncInvoicesResolver = {
7
+ async fetchSyncInvoices(_, { accountId, warehouseId, customerBizplaceId }, context) {
8
+ try {
9
+ await getAccountingInvoices(accountId, warehouseId, customerBizplaceId);
10
+ return;
11
+ }
12
+ catch (e) {
13
+ throw e;
14
+ }
15
+ }
16
+ };
17
+ async function getAccountingInvoices(accountId, warehouseId, customerBizplaceId) {
18
+ try {
19
+ const accounting = await integration_accounting_1.AccountingAPI.getAccounting(accountId);
20
+ const fulfilmentCenter = await integration_fulfillment_1.FulfillmentAPI.getFulfillmentCenter(warehouseId);
21
+ const invoices = await integration_accounting_1.AccountingAPI.getInvoices(accounting, { Statuses: 'AUTHORISED' });
22
+ for (var i = 0; i < invoices.length; i++) {
23
+ const releaseOrder = invoices[i];
24
+ const existingReleaseOrder = await integration_fulfillment_1.FulfillmentAPI.getOutboundOrder(fulfilmentCenter, {
25
+ customerBizplaceId,
26
+ refNo: releaseOrder.refNo
27
+ });
28
+ if (!existingReleaseOrder) {
29
+ await integration_fulfillment_1.FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {
30
+ customerBizplaceId,
31
+ releaseOrder
32
+ });
33
+ }
34
+ }
35
+ }
36
+ catch (e) {
37
+ throw new Error(e.statusText);
38
+ }
39
+ }
40
+ exports.getAccountingInvoices = getAccountingInvoices;
41
+ //# sourceMappingURL=fetch-sync-invoices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-sync-invoices.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/fetch-sync-invoices.ts"],"names":[],"mappings":";;;AAAA,mFAAsE;AACtE,qFAA2F;AAE9E,QAAA,yBAAyB,GAAG;IACvC,KAAK,CAAC,iBAAiB,CACrB,CAAO,EACP,EACE,SAAS,EACT,WAAW,EACX,kBAAkB,EAKnB,EACD,OAAY;QAEZ,IAAI;YACF,MAAM,qBAAqB,CAAC,SAAS,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAA;YACvE,OAAM;SACP;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAA;SACR;IACH,CAAC;CACF,CAAA;AAEM,KAAK,UAAU,qBAAqB,CAAC,SAAiB,EAAE,WAAmB,EAAE,kBAA0B;IAC5G,IAAI;QACF,MAAM,UAAU,GAAkB,MAAM,sCAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAE9E,MAAM,gBAAgB,GAAsB,MAAM,wCAAc,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAA;QAClG,MAAM,QAAQ,GAAU,MAAM,sCAAa,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAA;QAE/F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YAEhC,MAAM,oBAAoB,GAAG,MAAM,wCAAc,CAAC,gBAAgB,CAAC,gBAAgB,EAAE;gBACnF,kBAAkB;gBAClB,KAAK,EAAE,YAAY,CAAC,KAAK;aAC1B,CAAC,CAAA;YAEF,IAAI,CAAC,oBAAoB,EAAE;gBACzB,MAAM,wCAAc,CAAC,mBAAmB,CAAC,gBAAgB,EAAE;oBACzD,kBAAkB;oBAClB,YAAY;iBACb,CAAC,CAAA;aACH;SACF;KACF;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;KAC9B;AACH,CAAC;AAzBD,sDAyBC","sourcesContent":["import { AccountingAPI } from '@things-factory/integration-accounting'\nimport { FulfillmentAPI, FulfillmentCenter } from '@things-factory/integration-fulfillment'\n\nexport const fetchSyncInvoicesResolver = {\n async fetchSyncInvoices(\n _: void,\n {\n accountId,\n warehouseId,\n customerBizplaceId\n }: {\n accountId: string\n warehouseId: string\n customerBizplaceId: string\n },\n context: any\n ): Promise<void> {\n try {\n await getAccountingInvoices(accountId, warehouseId, customerBizplaceId)\n return\n } catch (e) {\n throw e\n }\n }\n}\n\nexport async function getAccountingInvoices(accountId: string, warehouseId: string, customerBizplaceId: string) {\n try {\n const accounting: AccountingAPI = await AccountingAPI.getAccounting(accountId)\n\n const fulfilmentCenter: FulfillmentCenter = await FulfillmentAPI.getFulfillmentCenter(warehouseId)\n const invoices: any[] = await AccountingAPI.getInvoices(accounting, { Statuses: 'AUTHORISED' })\n\n for (var i = 0; i < invoices.length; i++) {\n const releaseOrder = invoices[i]\n\n const existingReleaseOrder = await FulfillmentAPI.getOutboundOrder(fulfilmentCenter, {\n customerBizplaceId,\n refNo: releaseOrder.refNo\n })\n\n if (!existingReleaseOrder) {\n await FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {\n customerBizplaceId,\n releaseOrder\n })\n }\n }\n } catch (e) {\n throw new Error(e.statusText)\n }\n}\n"]}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAccountingProducts = exports.fetchSyncProductsResolver = void 0;
4
+ const biz_base_1 = require("@things-factory/biz-base");
5
+ const integration_accounting_1 = require("@things-factory/integration-accounting");
6
+ const product_base_1 = require("@things-factory/product-base");
7
+ const shell_1 = require("@things-factory/shell");
8
+ const build_map_1 = require("../../../utils/build-map");
9
+ exports.fetchSyncProductsResolver = {
10
+ async fetchSyncProducts(_, { accountId, bizplaceId, pagination }, context) {
11
+ try {
12
+ const platformProducts = await getAccountingProducts(accountId);
13
+ const platformProductsMap = (0, build_map_1.buildMap)(platformProducts, 'sku');
14
+ const bizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOneBy({ id: bizplaceId });
15
+ const bizplaceProducts = await (0, shell_1.getRepository)(product_base_1.Product).find({
16
+ where: { bizplace: { id: bizplace.id } }
17
+ });
18
+ const bizplaceProductsMap = (0, build_map_1.buildMap)(bizplaceProducts, 'sku');
19
+ let items = [];
20
+ if (platformProductsMap.size) {
21
+ platformProductsMap.forEach((platformProduct) => {
22
+ const { sku } = platformProduct;
23
+ let bizplaceProduct = {};
24
+ if (bizplaceProductsMap.has(sku)) {
25
+ bizplaceProduct = bizplaceProductsMap.get(sku);
26
+ bizplaceProductsMap.delete(sku);
27
+ }
28
+ platformProductsMap.delete(sku);
29
+ items.push({
30
+ bizplaceProduct,
31
+ platformProduct
32
+ });
33
+ });
34
+ }
35
+ if (bizplaceProductsMap.size) {
36
+ bizplaceProductsMap.forEach((bizplaceProduct) => {
37
+ const { sku } = bizplaceProduct;
38
+ let platformProduct = {};
39
+ if (platformProductsMap.has(sku)) {
40
+ platformProduct = platformProductsMap.get(sku);
41
+ platformProductsMap.delete(sku);
42
+ }
43
+ bizplaceProductsMap.delete(sku);
44
+ items.push({
45
+ bizplaceProduct,
46
+ platformProduct
47
+ });
48
+ });
49
+ }
50
+ const { page, limit } = pagination;
51
+ const startIdx = (page - 1) * limit;
52
+ const endIdx = page * limit;
53
+ const total = items.length;
54
+ items = items.slice(startIdx, endIdx);
55
+ return { items, total };
56
+ }
57
+ catch (e) {
58
+ throw e;
59
+ }
60
+ }
61
+ };
62
+ function sortBySku(products) {
63
+ return products.sort((a, b) => {
64
+ if (a.sku > b.sku)
65
+ return 1;
66
+ if (a.sku < b.sku)
67
+ return -1;
68
+ return 0;
69
+ });
70
+ }
71
+ async function getAccountingProducts(accountId) {
72
+ try {
73
+ const accounting = await integration_accounting_1.AccountingAPI.getAccounting(accountId);
74
+ return await integration_accounting_1.AccountingAPI.getItems(accounting);
75
+ }
76
+ catch (e) {
77
+ throw new Error(e.statusText);
78
+ }
79
+ }
80
+ exports.getAccountingProducts = getAccountingProducts;
81
+ //# sourceMappingURL=fetch-sync-products.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-sync-products.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/fetch-sync-products.ts"],"names":[],"mappings":"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","sourcesContent":["import { Bizplace } from '@things-factory/biz-base'\nimport { AccountingAPI } from '@things-factory/integration-accounting'\nimport { Product } from '@things-factory/product-base'\nimport { getRepository } from '@things-factory/shell'\n\nimport { buildMap } from '../../../utils/build-map'\n\nexport const fetchSyncProductsResolver = {\n async fetchSyncProducts(\n _: void,\n {\n accountId,\n bizplaceId,\n pagination\n }: { accountId: string; bizplaceId: string; pagination: { page: number; limit: number } },\n context: any\n ): Promise<{ items: { bizplaceProduct: Product; platformProduct: Product }[]; total: number }> {\n try {\n const platformProducts: Product[] = await getAccountingProducts(accountId)\n const platformProductsMap: Map<string, Product> = buildMap(platformProducts, 'sku')\n\n const bizplace: Bizplace = await getRepository(Bizplace).findOneBy({ id: bizplaceId })\n const bizplaceProducts: Product[] = await getRepository(Product).find({\n where: { bizplace: { id: bizplace.id } }\n })\n const bizplaceProductsMap: Map<string, Product> = buildMap(bizplaceProducts, 'sku')\n\n let items: { bizplaceProduct: Product; platformProduct: Product }[] = []\n\n if (platformProductsMap.size) {\n platformProductsMap.forEach((platformProduct: Product) => {\n const { sku }: Product = platformProduct\n\n let bizplaceProduct: Product = {}\n\n if (bizplaceProductsMap.has(sku)) {\n bizplaceProduct = bizplaceProductsMap.get(sku)\n bizplaceProductsMap.delete(sku)\n }\n\n platformProductsMap.delete(sku)\n\n items.push({\n bizplaceProduct,\n platformProduct\n })\n })\n }\n\n if (bizplaceProductsMap.size) {\n bizplaceProductsMap.forEach((bizplaceProduct: Product) => {\n const { sku }: Product = bizplaceProduct\n\n let platformProduct: Product = {}\n\n if (platformProductsMap.has(sku)) {\n platformProduct = platformProductsMap.get(sku)\n platformProductsMap.delete(sku)\n }\n\n bizplaceProductsMap.delete(sku)\n\n items.push({\n bizplaceProduct,\n platformProduct\n })\n })\n }\n\n const { page, limit }: { page: number; limit: number } = pagination\n const startIdx: number = (page - 1) * limit\n const endIdx: number = page * limit\n\n const total = items.length\n items = items.slice(startIdx, endIdx)\n\n return { items, total }\n } catch (e) {\n throw e\n }\n }\n}\n\nfunction sortBySku(products: Product[]): Product[] {\n return products.sort((a: Product, b: Product) => {\n if (a.sku > b.sku) return 1\n if (a.sku < b.sku) return -1\n return 0\n })\n}\n\nexport async function getAccountingProducts(accountId: string): Promise<Product[]> {\n try {\n const accounting: AccountingAPI = await AccountingAPI.getAccounting(accountId)\n return await AccountingAPI.getItems(accounting)\n } catch (e) {\n throw new Error(e.statusText)\n }\n}\n"]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createInboundOrder = exports.getAccountingPurchaseOrders = exports.fetchSyncPurchaseOrdersResolver = void 0;
4
+ const integration_accounting_1 = require("@things-factory/integration-accounting");
5
+ const integration_fulfillment_1 = require("@things-factory/integration-fulfillment");
6
+ const env_1 = require("@things-factory/env");
7
+ exports.fetchSyncPurchaseOrdersResolver = {
8
+ async fetchSyncPurchaseOrders(_, { accountId, warehouseId, customerBizplaceId, fromDate, toDate }, context) {
9
+ try {
10
+ await getAccountingPurchaseOrders(accountId, warehouseId, customerBizplaceId, fromDate, toDate);
11
+ }
12
+ catch (e) {
13
+ env_1.logger.error(`Xero: fetchSyncPurchaseOrders: ${e}`);
14
+ }
15
+ }
16
+ };
17
+ async function getAccountingPurchaseOrders(accountId, warehouseId, customerBizplaceId, fromDate, toDate) {
18
+ try {
19
+ const accounting = await integration_accounting_1.AccountingAPI.getAccounting(accountId);
20
+ const fulfilmentCenter = await integration_fulfillment_1.FulfillmentAPI.getFulfillmentCenter(warehouseId);
21
+ let parameters = { status: 'AUTHORISED' };
22
+ if (fromDate) {
23
+ if (!toDate)
24
+ throw new Error('From Date setting requires To Date');
25
+ parameters = Object.assign(Object.assign({}, parameters), { DateFrom: fromDate, DateTo: toDate });
26
+ }
27
+ const purchaseOrders = await integration_accounting_1.AccountingAPI.getPurchaseOrders(accounting, Object.assign({}, parameters));
28
+ await createInboundOrder(fulfilmentCenter, purchaseOrders, customerBizplaceId);
29
+ }
30
+ catch (e) {
31
+ env_1.logger.error(`Xero: getAccountingPurchaseOrders: ${e}`);
32
+ }
33
+ }
34
+ exports.getAccountingPurchaseOrders = getAccountingPurchaseOrders;
35
+ async function createInboundOrder(fulfilmentCenter, purchaseOrders, customerBizplaceId) {
36
+ for (var i = 0; i < purchaseOrders.length; i++) {
37
+ try {
38
+ const purchaseOrder = purchaseOrders[i];
39
+ const existingArrivalNotice = await integration_fulfillment_1.FulfillmentAPI.getInboundOrder(fulfilmentCenter, {
40
+ customerBizplaceId,
41
+ refNo: purchaseOrder.refNo,
42
+ ganNo: null
43
+ });
44
+ if (!(existingArrivalNotice === null || existingArrivalNotice === void 0 ? void 0 : existingArrivalNotice.id)) {
45
+ await integration_fulfillment_1.FulfillmentAPI.createInboundOrder(fulfilmentCenter, {
46
+ customerBizplaceId,
47
+ purchaseOrder
48
+ });
49
+ }
50
+ }
51
+ catch (e) {
52
+ env_1.logger.error(`Xero: createInboundOrder: ${e}`);
53
+ }
54
+ }
55
+ }
56
+ exports.createInboundOrder = createInboundOrder;
57
+ //# sourceMappingURL=fetch-sync-purchase-orders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-sync-purchase-orders.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/fetch-sync-purchase-orders.ts"],"names":[],"mappings":";;;AAAA,mFAAsE;AACtE,qFAA2F;AAC3F,6CAA4C;AAE/B,QAAA,+BAA+B,GAAG;IAC7C,KAAK,CAAC,uBAAuB,CAC3B,CAAO,EACP,EACE,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,MAAM,EACmG,EAC3G,OAAY;QAEZ,IAAI;YACF,MAAM,2BAA2B,CAAC,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;SAChG;QAAC,OAAO,CAAC,EAAE;YACV,YAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,EAAE,CAAC,CAAA;SACpD;IACH,CAAC;CACF,CAAA;AAEM,KAAK,UAAU,2BAA2B,CAC/C,SAAiB,EACjB,WAAmB,EACnB,kBAA0B,EAC1B,QAAgB,EAChB,MAAc;IAEd,IAAI;QACF,MAAM,UAAU,GAAkB,MAAM,sCAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAE9E,MAAM,gBAAgB,GAAsB,MAAM,wCAAc,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAA;QAClG,IAAI,UAAU,GAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAA;QAE9C,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;YAClE,UAAU,mCAAQ,UAAU,KAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,CAAA;SACnE;QAED,MAAM,cAAc,GAAU,MAAM,sCAAa,CAAC,iBAAiB,CAAC,UAAU,oBAAO,UAAU,EAAG,CAAA;QAClG,MAAM,kBAAkB,CAAC,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAA;KAC/E;IAAC,OAAO,CAAC,EAAE;QACV,YAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,EAAE,CAAC,CAAA;KACxD;AACH,CAAC;AAvBD,kEAuBC;AAEM,KAAK,UAAU,kBAAkB,CACtC,gBAAmC,EACnC,cAAqB,EACrB,kBAA0B;IAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9C,IAAI;YACF,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YAEvC,MAAM,qBAAqB,GAAG,MAAM,wCAAc,CAAC,eAAe,CAAC,gBAAgB,EAAE;gBACnF,kBAAkB;gBAClB,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,KAAK,EAAE,IAAI;aACZ,CAAC,CAAA;YAEF,IAAI,CAAC,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,EAAE,CAAA,EAAE;gBAC9B,MAAM,wCAAc,CAAC,kBAAkB,CAAC,gBAAgB,EAAE;oBACxD,kBAAkB;oBAClB,aAAa;iBACd,CAAC,CAAA;aACH;SACF;QAAC,OAAO,CAAC,EAAE;YACV,YAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAA;SAC/C;KACF;AACH,CAAC;AAzBD,gDAyBC","sourcesContent":["import { AccountingAPI } from '@things-factory/integration-accounting'\nimport { FulfillmentAPI, FulfillmentCenter } from '@things-factory/integration-fulfillment'\nimport { logger } from '@things-factory/env'\n\nexport const fetchSyncPurchaseOrdersResolver = {\n async fetchSyncPurchaseOrders(\n _: void,\n {\n accountId,\n warehouseId,\n customerBizplaceId,\n fromDate,\n toDate\n }: { accountId: string; warehouseId: string; customerBizplaceId: string; fromDate: string; toDate: string },\n context: any\n ): Promise<void> {\n try {\n await getAccountingPurchaseOrders(accountId, warehouseId, customerBizplaceId, fromDate, toDate)\n } catch (e) {\n logger.error(`Xero: fetchSyncPurchaseOrders: ${e}`)\n }\n }\n}\n\nexport async function getAccountingPurchaseOrders(\n accountId: string,\n warehouseId: string,\n customerBizplaceId: string,\n fromDate: string,\n toDate: string\n) {\n try {\n const accounting: AccountingAPI = await AccountingAPI.getAccounting(accountId)\n\n const fulfilmentCenter: FulfillmentCenter = await FulfillmentAPI.getFulfillmentCenter(warehouseId)\n let parameters: any = { status: 'AUTHORISED' }\n\n if (fromDate) {\n if (!toDate) throw new Error('From Date setting requires To Date')\n parameters = { ...parameters, DateFrom: fromDate, DateTo: toDate }\n }\n\n const purchaseOrders: any[] = await AccountingAPI.getPurchaseOrders(accounting, { ...parameters })\n await createInboundOrder(fulfilmentCenter, purchaseOrders, customerBizplaceId)\n } catch (e) {\n logger.error(`Xero: getAccountingPurchaseOrders: ${e}`)\n }\n}\n\nexport async function createInboundOrder(\n fulfilmentCenter: FulfillmentCenter,\n purchaseOrders: any[],\n customerBizplaceId: string\n) {\n for (var i = 0; i < purchaseOrders.length; i++) {\n try {\n const purchaseOrder = purchaseOrders[i]\n\n const existingArrivalNotice = await FulfillmentAPI.getInboundOrder(fulfilmentCenter, {\n customerBizplaceId,\n refNo: purchaseOrder.refNo,\n ganNo: null\n })\n\n if (!existingArrivalNotice?.id) {\n await FulfillmentAPI.createInboundOrder(fulfilmentCenter, {\n customerBizplaceId,\n purchaseOrder\n })\n }\n } catch (e) {\n logger.error(`Xero: createInboundOrder: ${e}`)\n }\n }\n}\n"]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Mutation = exports.Query = void 0;
4
+ const fetch_sync_invoices_1 = require("./fetch-sync-invoices");
5
+ const fetch_sync_products_1 = require("./fetch-sync-products");
6
+ const fetch_sync_purchase_orders_1 = require("./fetch-sync-purchase-orders");
7
+ const sellercraft_pack_marketplace_order_1 = require("./sellercraft-pack-marketplace-order");
8
+ const sync_all_products_to_sellercraft_1 = require("./sync-all-products-to-sellercraft");
9
+ const sync_products_from_account_1 = require("./sync-products-from-account");
10
+ const sync_products_to_account_1 = require("./sync-products-to-account");
11
+ const sync_products_to_sellercraft_1 = require("./sync-products-to-sellercraft");
12
+ const create_dat_shipments_1 = require("./create-dat-shipments");
13
+ const auto_update_all_marketplace_product_variation_quantity_1 = require("./auto-update-all-marketplace-product-variation-quantity");
14
+ exports.Query = Object.assign(Object.assign(Object.assign({}, fetch_sync_products_1.fetchSyncProductsResolver), fetch_sync_purchase_orders_1.fetchSyncPurchaseOrdersResolver), fetch_sync_invoices_1.fetchSyncInvoicesResolver);
15
+ exports.Mutation = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, sync_products_to_sellercraft_1.syncProductsToSellercraftResolver), sync_products_from_account_1.syncProductsFromAccountResolver), sync_products_to_account_1.syncProductsToAccountResolver), sync_all_products_to_sellercraft_1.syncAllProductsToSellercraftResolver), sellercraft_pack_marketplace_order_1.sellercraftPackMarketplaceOrderResolver), create_dat_shipments_1.createDatShipments), auto_update_all_marketplace_product_variation_quantity_1.autoUpdateAllMarketplaceProductVariationQuantityResolver);
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/index.ts"],"names":[],"mappings":";;;AAAA,+DAAiE;AACjE,+DAAiE;AACjE,6EAA8E;AAC9E,6FAA8F;AAC9F,yFAAyF;AACzF,6EAA8E;AAC9E,yEAA0E;AAC1E,iFAAkF;AAClF,iEAA2D;AAC3D,qIAAmI;AAEtH,QAAA,KAAK,iDACb,+CAAyB,GACzB,4DAA+B,GAC/B,+CAAyB,EAC7B;AAEY,QAAA,QAAQ,yGAChB,gEAAiC,GACjC,4DAA+B,GAC/B,wDAA6B,GAC7B,uEAAoC,GACpC,4EAAuC,GACvC,yCAAkB,GAClB,iHAAwD,EAC5D","sourcesContent":["import { fetchSyncInvoicesResolver } from './fetch-sync-invoices'\nimport { fetchSyncProductsResolver } from './fetch-sync-products'\nimport { fetchSyncPurchaseOrdersResolver } from './fetch-sync-purchase-orders'\nimport { sellercraftPackMarketplaceOrderResolver } from './sellercraft-pack-marketplace-order'\nimport { syncAllProductsToSellercraftResolver } from './sync-all-products-to-sellercraft'\nimport { syncProductsFromAccountResolver } from './sync-products-from-account'\nimport { syncProductsToAccountResolver } from './sync-products-to-account'\nimport { syncProductsToSellercraftResolver } from './sync-products-to-sellercraft'\nimport { createDatShipments } from './create-dat-shipments'\nimport { autoUpdateAllMarketplaceProductVariationQuantityResolver } from './auto-update-all-marketplace-product-variation-quantity'\n\nexport const Query = {\n ...fetchSyncProductsResolver,\n ...fetchSyncPurchaseOrdersResolver,\n ...fetchSyncInvoicesResolver\n}\n\nexport const Mutation = {\n ...syncProductsToSellercraftResolver,\n ...syncProductsFromAccountResolver,\n ...syncProductsToAccountResolver,\n ...syncAllProductsToSellercraftResolver,\n ...sellercraftPackMarketplaceOrderResolver,\n ...createDatShipments,\n ...autoUpdateAllMarketplaceProductVariationQuantityResolver\n}\n"]}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sellercraftPackMarketplaceOrderResolver = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const biz_base_1 = require("@things-factory/biz-base");
6
+ const env_1 = require("@things-factory/env");
7
+ const integration_base_1 = require("@things-factory/integration-base");
8
+ const integration_sellercraft_1 = require("@things-factory/integration-sellercraft");
9
+ const sales_base_1 = require("@things-factory/sales-base");
10
+ exports.sellercraftPackMarketplaceOrderResolver = {
11
+ async sellercraftPackMarketplaceOrder(_, {}, context) {
12
+ try {
13
+ await (0, typeorm_1.getConnection)().transaction(async (tx) => {
14
+ const sellercrafts = await tx
15
+ .getRepository(integration_sellercraft_1.Sellercraft)
16
+ .find({ where: { status: integration_sellercraft_1.SellercraftStatus.ACTIVE }, relations: ['domain'] });
17
+ for (const sellercraft of sellercrafts) {
18
+ try {
19
+ const sellercraftDomain = sellercraft.domain;
20
+ const bizplace = await tx
21
+ .getRepository(biz_base_1.Bizplace)
22
+ .findOne({ where: { domain: { id: sellercraftDomain.id } } });
23
+ let releaseGoodsWithoutPackageId = await tx.getRepository(sales_base_1.ReleaseGood).find({
24
+ where: {
25
+ bizplace: { id: bizplace.id },
26
+ type: 'b2c',
27
+ packageId: (0, typeorm_1.IsNull)(),
28
+ status: (0, typeorm_1.Not)((0, typeorm_1.In)([sales_base_1.ORDER_STATUS.CANCELLED, sales_base_1.ORDER_STATUS.PENDING_CANCEL, sales_base_1.ORDER_STATUS.DONE]))
29
+ },
30
+ relations: ['domain', 'orderProducts', 'orderProducts.product']
31
+ });
32
+ if ((releaseGoodsWithoutPackageId === null || releaseGoodsWithoutPackageId === void 0 ? void 0 : releaseGoodsWithoutPackageId.length) > 0) {
33
+ await Promise.all(releaseGoodsWithoutPackageId.map(async (releaseGood) => {
34
+ const orderProducts = releaseGood.orderProducts;
35
+ let sellercraftOPs = [];
36
+ sellercraftOPs = orderProducts.map(orderProduct => {
37
+ const product = orderProduct.product;
38
+ return {
39
+ sku: product.sku,
40
+ releaseQty: orderProduct.releaseQty,
41
+ uom: 'EA'
42
+ };
43
+ });
44
+ const orderInformation = {
45
+ accountId: sellercraft.accountId,
46
+ orderId: releaseGood.refNo2,
47
+ sellercraftOPs
48
+ };
49
+ const packageId = await integration_sellercraft_1.SellercraftAPI.packMarketplaceOrder(sellercraft, Object.assign(Object.assign({}, orderInformation), { context: { state: { domain: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.domain, user: null } } }));
50
+ (0, integration_base_1.createPayloadLog)(sellercraft.accountId, `/order/pack`, orderInformation, packageId, context, integration_base_1.PayloadType.EGESTION, 'scheduler');
51
+ if (packageId) {
52
+ await tx.getRepository(sales_base_1.ReleaseGood).update({ id: releaseGood.id }, { packageId: packageId });
53
+ }
54
+ }));
55
+ }
56
+ }
57
+ catch (e) {
58
+ env_1.logger.error(`sellercraftPackMarketplaceOrder: ${e}`);
59
+ }
60
+ }
61
+ });
62
+ }
63
+ catch (e) {
64
+ env_1.logger.error(`sellercraftPackMarketplaceOrder: ${e}`);
65
+ }
66
+ }
67
+ };
68
+ //# sourceMappingURL=sellercraft-pack-marketplace-order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sellercraft-pack-marketplace-order.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/sellercraft-pack-marketplace-order.ts"],"names":[],"mappings":"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","sourcesContent":["import { getConnection, In, IsNull, Not, Repository } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\nimport { logger } from '@things-factory/env'\nimport { createPayloadLog, PayloadType } from '@things-factory/integration-base'\nimport { Sellercraft, SellercraftAPI, SellercraftStatus } from '@things-factory/integration-sellercraft'\nimport { Product } from '@things-factory/product-base'\nimport { ORDER_STATUS, OrderProduct, ReleaseGood } from '@things-factory/sales-base'\nimport { Domain } from '@things-factory/shell'\n\nexport const sellercraftPackMarketplaceOrderResolver = {\n async sellercraftPackMarketplaceOrder(_: void, {}, context: ResolverContext): Promise<void> {\n try {\n await getConnection().transaction(async tx => {\n const sellercrafts: Sellercraft[] = await tx\n .getRepository(Sellercraft)\n .find({ where: { status: SellercraftStatus.ACTIVE }, relations: ['domain'] })\n\n for (const sellercraft of sellercrafts) {\n try {\n const sellercraftDomain: Domain = sellercraft.domain\n const bizplace: Bizplace = await tx\n .getRepository(Bizplace)\n .findOne({ where: { domain: { id: sellercraftDomain.id } } })\n\n let releaseGoodsWithoutPackageId: ReleaseGood[] = await tx.getRepository(ReleaseGood).find({\n where: {\n bizplace: { id: bizplace.id },\n type: 'b2c',\n packageId: IsNull(),\n status: Not(In([ORDER_STATUS.CANCELLED, ORDER_STATUS.PENDING_CANCEL, ORDER_STATUS.DONE]))\n },\n relations: ['domain', 'orderProducts', 'orderProducts.product']\n })\n\n if (releaseGoodsWithoutPackageId?.length > 0) {\n await Promise.all(\n releaseGoodsWithoutPackageId.map(async releaseGood => {\n const orderProducts: OrderProduct[] = releaseGood.orderProducts\n let sellercraftOPs: any[] = []\n\n sellercraftOPs = orderProducts.map(orderProduct => {\n const product: Product = orderProduct.product\n\n return {\n sku: product.sku,\n releaseQty: orderProduct.releaseQty,\n uom: 'EA'\n }\n })\n\n const orderInformation: any = {\n accountId: sellercraft.accountId,\n orderId: releaseGood.refNo2,\n sellercraftOPs\n }\n\n const packageId: string = await SellercraftAPI.packMarketplaceOrder(sellercraft, {\n ...orderInformation,\n context: { state: { domain: releaseGood?.domain, user: null } }\n })\n\n createPayloadLog(\n sellercraft.accountId,\n `/order/pack`,\n orderInformation,\n packageId,\n context,\n PayloadType.EGESTION,\n 'scheduler'\n )\n\n if (packageId) {\n await (tx.getRepository(ReleaseGood) as Repository<ReleaseGood>).update(\n { id: releaseGood.id },\n { packageId: packageId }\n )\n }\n })\n )\n }\n } catch (e) {\n logger.error(`sellercraftPackMarketplaceOrder: ${e}`)\n }\n }\n })\n } catch (e) {\n logger.error(`sellercraftPackMarketplaceOrder: ${e}`)\n }\n }\n}\n"]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncAllProductsToSellercraftResolver = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const biz_base_1 = require("@things-factory/biz-base");
6
+ const integration_fulfillment_1 = require("@things-factory/integration-fulfillment");
7
+ const integration_sellercraft_1 = require("@things-factory/integration-sellercraft");
8
+ const sync_products_to_sellercraft_1 = require("./sync-products-to-sellercraft");
9
+ exports.syncAllProductsToSellercraftResolver = {
10
+ async syncAllProductsToSellercraft(_, {}, context) {
11
+ const { user } = context.state;
12
+ try {
13
+ await (0, typeorm_1.getConnection)().transaction(async (tx) => {
14
+ const qb = await tx
15
+ .getRepository(integration_sellercraft_1.Sellercraft)
16
+ .createQueryBuilder('sellercraft')
17
+ .innerJoinAndSelect('sellercraft.domain', 'domain')
18
+ .innerJoinAndSelect(biz_base_1.Bizplace, 'bizplace', 'bizplace.domain_id = domain.id')
19
+ .where('sellercraft.status = :status', { status: 'ACTIVE' });
20
+ const sellercrafts = await qb.getRawMany();
21
+ for (const sellercraft of sellercrafts) {
22
+ const companyBizplace = await (0, biz_base_1.getCompanyBizplace)(null, null, sellercraft.bizplace_id, tx);
23
+ const fulfillmentCenter = await tx.getRepository(integration_fulfillment_1.FulfillmentCenter).find({
24
+ where: { domain: { id: companyBizplace.domain.id } }
25
+ });
26
+ await sync_products_to_sellercraft_1.syncProductsToSellercraftResolver.syncProductsToSellercraft(null, { sellercraftId: sellercraft.id, fulfillmentCenterId: fulfillmentCenter.id, toCreateSku: false }, context);
27
+ }
28
+ });
29
+ }
30
+ catch (e) {
31
+ console.log(e);
32
+ }
33
+ }
34
+ };
35
+ //# sourceMappingURL=sync-all-products-to-sellercraft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-all-products-to-sellercraft.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/sync-all-products-to-sellercraft.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AAEvC,uDAAuE;AACvE,qFAA2E;AAC3E,qFAAqE;AAErE,iFAA8F;AAEjF,QAAA,oCAAoC,GAAG;IAClD,KAAK,CAAC,4BAA4B,CAAC,CAAM,EAAE,EAAE,EAAE,OAAwB;QACrE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC9B,IAAI;YACF,MAAM,IAAA,uBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;gBAC3C,MAAM,EAAE,GAAG,MAAM,EAAE;qBAChB,aAAa,CAAC,qCAAW,CAAC;qBAC1B,kBAAkB,CAAC,aAAa,CAAC;qBACjC,kBAAkB,CAAC,oBAAoB,EAAE,QAAQ,CAAC;qBAClD,kBAAkB,CAAC,mBAAQ,EAAE,UAAU,EAAE,gCAAgC,CAAC;qBAC1E,KAAK,CAAC,8BAA8B,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;gBAE9D,MAAM,YAAY,GAAkB,MAAM,EAAE,CAAC,UAAU,EAAE,CAAA;gBAEzD,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;oBACtC,MAAM,eAAe,GAAa,MAAM,IAAA,6BAAkB,EAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;oBACnG,MAAM,iBAAiB,GAAsB,MAAM,EAAE,CAAC,aAAa,CAAC,2CAAiB,CAAC,CAAC,IAAI,CAAC;wBAC1F,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE;qBACrD,CAAC,CAAA;oBACF,MAAM,gEAAQ,CAAC,yBAAyB,CACtC,IAAI,EACJ,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAChG,OAAO,CACR,CAAA;iBACF;YACH,CAAC,CAAC,CAAA;SACH;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SACf;IACH,CAAC;CACF,CAAA","sourcesContent":["import { getConnection } from 'typeorm'\n\nimport { Bizplace, getCompanyBizplace } from '@things-factory/biz-base'\nimport { FulfillmentCenter } from '@things-factory/integration-fulfillment'\nimport { Sellercraft } from '@things-factory/integration-sellercraft'\n\nimport { syncProductsToSellercraftResolver as resolver } from './sync-products-to-sellercraft'\n\nexport const syncAllProductsToSellercraftResolver = {\n async syncAllProductsToSellercraft(_: any, {}, context: ResolverContext): Promise<void> {\n const { user } = context.state\n try {\n await getConnection().transaction(async tx => {\n const qb = await tx\n .getRepository(Sellercraft)\n .createQueryBuilder('sellercraft')\n .innerJoinAndSelect('sellercraft.domain', 'domain')\n .innerJoinAndSelect(Bizplace, 'bizplace', 'bizplace.domain_id = domain.id')\n .where('sellercraft.status = :status', { status: 'ACTIVE' })\n\n const sellercrafts: Sellercraft[] = await qb.getRawMany()\n\n for (const sellercraft of sellercrafts) {\n const companyBizplace: Bizplace = await getCompanyBizplace(null, null, sellercraft.bizplace_id, tx)\n const fulfillmentCenter: FulfillmentCenter = await tx.getRepository(FulfillmentCenter).find({\n where: { domain: { id: companyBizplace.domain.id } }\n })\n await resolver.syncProductsToSellercraft(\n null,\n { sellercraftId: sellercraft.id, fulfillmentCenterId: fulfillmentCenter.id, toCreateSku: false },\n context\n )\n }\n })\n } catch (e) {\n console.log(e)\n }\n }\n}\n"]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncProductsFromAccountResolver = void 0;
4
+ const biz_base_1 = require("@things-factory/biz-base");
5
+ const product_base_1 = require("@things-factory/product-base");
6
+ const build_map_1 = require("../../../utils/build-map");
7
+ const fetch_sync_products_1 = require("./fetch-sync-products");
8
+ exports.syncProductsFromAccountResolver = {
9
+ async syncProductsFromAccount(_, { accountId, bizplaceId }, context) {
10
+ try {
11
+ const { tx } = context.state;
12
+ let platformProducts = await (0, fetch_sync_products_1.getAccountingProducts)(accountId);
13
+ const bizplace = await tx.getRepository(biz_base_1.Bizplace).findOneBy({ id: bizplaceId });
14
+ const platformProductsMap = (0, build_map_1.buildMap)(platformProducts, 'sku');
15
+ let bizplaceProducts = await tx
16
+ .getRepository(product_base_1.Product)
17
+ .find({ where: { bizplace: { id: bizplace.id } } });
18
+ const updateTargetProducts = bizplaceProducts
19
+ .filter(({ sku }) => platformProductsMap.has(sku))
20
+ .map((bizplaceProduct) => {
21
+ const platformProduct = platformProductsMap.get(bizplaceProduct.sku);
22
+ Object.keys(platformProduct).forEach((key) => {
23
+ bizplaceProduct[key] = platformProduct[key] === undefined ? null : platformProduct[key];
24
+ });
25
+ return bizplaceProduct;
26
+ });
27
+ await tx.getRepository(product_base_1.Product).save(updateTargetProducts, { chunk: 500 });
28
+ }
29
+ catch (e) {
30
+ throw e;
31
+ }
32
+ }
33
+ };
34
+ //# sourceMappingURL=sync-products-from-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-products-from-account.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/sync-products-from-account.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,+DAAsD;AAEtD,wDAAmD;AACnD,+DAA6D;AAEhD,QAAA,+BAA+B,GAAG;IAC7C,KAAK,CAAC,uBAAuB,CAC3B,CAAO,EACP,EAAE,SAAS,EAAE,UAAU,EAA6C,EACpE,OAAwB;QAExB,IAAI;YACF,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAC5B,IAAI,gBAAgB,GAAc,MAAM,IAAA,2CAAqB,EAAC,SAAS,CAAC,CAAA;YACxE,MAAM,QAAQ,GAAa,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;YACzF,MAAM,mBAAmB,GAAyB,IAAA,oBAAQ,EAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;YAEnF,IAAI,gBAAgB,GAAc,MAAM,EAAE;iBACvC,aAAa,CAAC,sBAAO,CAAC;iBACtB,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;YAErD,MAAM,oBAAoB,GAAc,gBAAgB;iBACrD,MAAM,CAAC,CAAC,EAAE,GAAG,EAAW,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAC1D,GAAG,CAAC,CAAC,eAAwB,EAAE,EAAE;gBAChC,MAAM,eAAe,GAAY,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;gBAE7E,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;oBACnD,eAAe,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;gBACzF,CAAC,CAAC,CAAA;gBAEF,OAAO,eAAe,CAAA;YACxB,CAAC,CAAC,CAAA;YAEJ,MAAM,EAAE,CAAC,aAAa,CAAC,sBAAO,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;SAC3E;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAA;SACR;IACH,CAAC;CACF,CAAA","sourcesContent":["import { Bizplace } from '@things-factory/biz-base'\nimport { Product } from '@things-factory/product-base'\n\nimport { buildMap } from '../../../utils/build-map'\nimport { getAccountingProducts } from './fetch-sync-products'\n\nexport const syncProductsFromAccountResolver = {\n async syncProductsFromAccount(\n _: void,\n { accountId, bizplaceId }: { accountId: string; bizplaceId: string },\n context: ResolverContext\n ): Promise<void> {\n try {\n const { tx } = context.state\n let platformProducts: Product[] = await getAccountingProducts(accountId)\n const bizplace: Bizplace = await tx.getRepository(Bizplace).findOneBy({ id: bizplaceId })\n const platformProductsMap: Map<string, Product> = buildMap(platformProducts, 'sku')\n\n let bizplaceProducts: Product[] = await tx\n .getRepository(Product)\n .find({ where: { bizplace: { id: bizplace.id } } })\n\n const updateTargetProducts: Product[] = bizplaceProducts\n .filter(({ sku }: Product) => platformProductsMap.has(sku))\n .map((bizplaceProduct: Product) => {\n const platformProduct: Product = platformProductsMap.get(bizplaceProduct.sku)\n\n Object.keys(platformProduct).forEach((key: string) => {\n bizplaceProduct[key] = platformProduct[key] === undefined ? null : platformProduct[key]\n })\n\n return bizplaceProduct\n })\n\n await tx.getRepository(Product).save(updateTargetProducts, { chunk: 500 })\n } catch (e) {\n throw e\n }\n }\n}\n"]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncProductsToAccountResolver = void 0;
4
+ const biz_base_1 = require("@things-factory/biz-base");
5
+ const integration_accounting_1 = require("@things-factory/integration-accounting");
6
+ const product_base_1 = require("@things-factory/product-base");
7
+ const build_map_1 = require("../../../utils/build-map");
8
+ const fetch_sync_products_1 = require("./fetch-sync-products");
9
+ exports.syncProductsToAccountResolver = {
10
+ async syncProductsToAccount(_, { accountId, bizplaceId }, context) {
11
+ try {
12
+ const { tx } = context.state;
13
+ const bizplace = await tx.getRepository(biz_base_1.Bizplace).findOneBy({ id: bizplaceId });
14
+ const bizplaceProducts = await tx
15
+ .getRepository(product_base_1.Product)
16
+ .find({ where: { bizplace: { id: bizplace.id } } });
17
+ let platformProducts = await (0, fetch_sync_products_1.getAccountingProducts)(accountId);
18
+ let platformProductsMap = (0, build_map_1.buildMap)(platformProducts, 'sku');
19
+ const updateTargetProducts = bizplaceProducts.map((bizplaceProduct) => {
20
+ let platformProduct = {};
21
+ if (platformProductsMap.has(bizplaceProduct.sku)) {
22
+ platformProduct = platformProductsMap.get(bizplaceProduct.sku);
23
+ }
24
+ Object.keys(bizplaceProduct).forEach((key) => {
25
+ platformProduct[key] = bizplaceProduct[key];
26
+ });
27
+ return platformProduct;
28
+ });
29
+ const chunkedProducts = splitChunk(updateTargetProducts);
30
+ const accounting = await integration_accounting_1.AccountingAPI.getAccounting(accountId);
31
+ for (let i = 0; i < chunkedProducts.length; i++) {
32
+ const products = chunkedProducts[i];
33
+ const req = context.req;
34
+ req.products = products;
35
+ try {
36
+ await integration_accounting_1.AccountingAPI.updateItems(accounting, req);
37
+ }
38
+ catch (e) {
39
+ throw new Error(e.statusText);
40
+ }
41
+ }
42
+ }
43
+ catch (e) {
44
+ throw e;
45
+ }
46
+ }
47
+ };
48
+ function splitChunk(data, unitCnt = 100) {
49
+ let splitChunk = [];
50
+ while (data.length > 0) {
51
+ splitChunk.push(data.splice(0, unitCnt));
52
+ }
53
+ return splitChunk;
54
+ }
55
+ //# sourceMappingURL=sync-products-to-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-products-to-account.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/sync-products-to-account.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,mFAAsE;AACtE,+DAAsD;AAEtD,wDAAmD;AACnD,+DAA6D;AAEhD,QAAA,6BAA6B,GAAG;IAC3C,KAAK,CAAC,qBAAqB,CACzB,CAAO,EACP,EAAE,SAAS,EAAE,UAAU,EAA6C,EACpE,OAAwB;QAExB,IAAI;YACF,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAE5B,MAAM,QAAQ,GAAa,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;YACzF,MAAM,gBAAgB,GAAc,MAAM,EAAE;iBACzC,aAAa,CAAC,sBAAO,CAAC;iBACtB,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;YAErD,IAAI,gBAAgB,GAAc,MAAM,IAAA,2CAAqB,EAAC,SAAS,CAAC,CAAA;YACxE,IAAI,mBAAmB,GAAyB,IAAA,oBAAQ,EAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;YAEjF,MAAM,oBAAoB,GAAc,gBAAgB,CAAC,GAAG,CAAC,CAAC,eAAwB,EAAE,EAAE;gBACxF,IAAI,eAAe,GAAY,EAAE,CAAA;gBACjC,IAAI,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;oBAChD,eAAe,GAAG,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;iBAC/D;gBAED,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;oBACnD,eAAe,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;gBAC7C,CAAC,CAAC,CAAA;gBAEF,OAAO,eAAe,CAAA;YACxB,CAAC,CAAC,CAAA;YAEF,MAAM,eAAe,GAAgB,UAAU,CAAC,oBAAoB,CAAC,CAAA;YACrE,MAAM,UAAU,GAAkB,MAAM,sCAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;YAE9E,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvD,MAAM,QAAQ,GAAc,eAAe,CAAC,CAAC,CAAC,CAAA;gBAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;gBACvB,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;gBACvB,IAAI;oBACF,MAAM,sCAAa,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;iBACjD;gBAAC,OAAO,CAAC,EAAE;oBACV,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;iBAC9B;aACF;SACF;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAA;SACR;IACH,CAAC;CACF,CAAA;AAED,SAAS,UAAU,CAAI,IAAS,EAAE,UAAkB,GAAG;IACrD,IAAI,UAAU,GAAU,EAAE,CAAA;IAC1B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;KACzC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC","sourcesContent":["import { Bizplace } from '@things-factory/biz-base'\nimport { AccountingAPI } from '@things-factory/integration-accounting'\nimport { Product } from '@things-factory/product-base'\n\nimport { buildMap } from '../../../utils/build-map'\nimport { getAccountingProducts } from './fetch-sync-products'\n\nexport const syncProductsToAccountResolver = {\n async syncProductsToAccount(\n _: void,\n { accountId, bizplaceId }: { accountId: string; bizplaceId: string },\n context: ResolverContext\n ): Promise<void> {\n try {\n const { tx } = context.state\n\n const bizplace: Bizplace = await tx.getRepository(Bizplace).findOneBy({ id: bizplaceId })\n const bizplaceProducts: Product[] = await tx\n .getRepository(Product)\n .find({ where: { bizplace: { id: bizplace.id } } })\n\n let platformProducts: Product[] = await getAccountingProducts(accountId)\n let platformProductsMap: Map<string, Product> = buildMap(platformProducts, 'sku')\n\n const updateTargetProducts: Product[] = bizplaceProducts.map((bizplaceProduct: Product) => {\n let platformProduct: Product = {}\n if (platformProductsMap.has(bizplaceProduct.sku)) {\n platformProduct = platformProductsMap.get(bizplaceProduct.sku)\n }\n\n Object.keys(bizplaceProduct).forEach((key: string) => {\n platformProduct[key] = bizplaceProduct[key]\n })\n\n return platformProduct\n })\n\n const chunkedProducts: Product[][] = splitChunk(updateTargetProducts)\n const accounting: AccountingAPI = await AccountingAPI.getAccounting(accountId)\n\n for (let i: number = 0; i < chunkedProducts.length; i++) {\n const products: Product[] = chunkedProducts[i]\n const req = context.req\n req.products = products\n try {\n await AccountingAPI.updateItems(accounting, req)\n } catch (e) {\n throw new Error(e.statusText)\n }\n }\n } catch (e) {\n throw e\n }\n }\n}\n\nfunction splitChunk<T>(data: T[], unitCnt: number = 100): T[][] {\n let splitChunk: T[][] = []\n while (data.length > 0) {\n splitChunk.push(data.splice(0, unitCnt))\n }\n\n return splitChunk\n}\n"]}