addio-admin-sdk 1.6.13 → 1.6.14

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 (499) hide show
  1. package/.babelrc +17 -17
  2. package/.env.dev +14 -14
  3. package/.github/workflows/publish_coverage.yaml +69 -69
  4. package/addio-sdk-doc.md +1380 -1380
  5. package/changelog.md +362 -353
  6. package/dist/Interfaces/Address/index.d.ts +21 -21
  7. package/dist/Interfaces/Address/index.js +16 -16
  8. package/dist/Interfaces/Algolia/index.d.ts +145 -145
  9. package/dist/Interfaces/Algolia/index.js +2 -2
  10. package/dist/Interfaces/Attachement/index.d.ts +5 -5
  11. package/dist/Interfaces/Attachement/index.js +2 -2
  12. package/dist/Interfaces/Attribute/index.d.ts +47 -47
  13. package/dist/Interfaces/Attribute/index.js +10 -10
  14. package/dist/Interfaces/BGJob/index.d.ts +56 -56
  15. package/dist/Interfaces/BGJob/index.js +36 -36
  16. package/dist/Interfaces/BaseClass/index.d.ts +8 -8
  17. package/dist/Interfaces/BaseClass/index.js +2 -2
  18. package/dist/Interfaces/Blog/IBlogArticle.d.ts +18 -18
  19. package/dist/Interfaces/Blog/IBlogArticle.js +2 -2
  20. package/dist/Interfaces/Blog/IBlogAuthor.d.ts +7 -7
  21. package/dist/Interfaces/Blog/IBlogAuthor.js +2 -2
  22. package/dist/Interfaces/Blog/IBlogCategory.d.ts +9 -9
  23. package/dist/Interfaces/Blog/IBlogCategory.js +2 -2
  24. package/dist/Interfaces/Blog/IBlogComment.d.ts +13 -13
  25. package/dist/Interfaces/Blog/IBlogComment.js +2 -2
  26. package/dist/Interfaces/Blog/IBlogKeywords.d.ts +9 -9
  27. package/dist/Interfaces/Blog/IBlogKeywords.js +2 -2
  28. package/dist/Interfaces/Booking/index.d.ts +68 -68
  29. package/dist/Interfaces/Booking/index.js +17 -17
  30. package/dist/Interfaces/Brand/index.d.ts +13 -13
  31. package/dist/Interfaces/Brand/index.js +2 -2
  32. package/dist/Interfaces/CMS/index.d.ts +25 -25
  33. package/dist/Interfaces/CMS/index.js +2 -2
  34. package/dist/Interfaces/Cart/IPandaPayload.d.ts +64 -64
  35. package/dist/Interfaces/Cart/IPandaPayload.js +18 -18
  36. package/dist/Interfaces/Cart/IPaymentCard.d.ts +22 -22
  37. package/dist/Interfaces/Cart/IPaymentCard.js +44 -44
  38. package/dist/Interfaces/Cart/IPaypalPayload.d.ts +9 -9
  39. package/dist/Interfaces/Cart/IPaypalPayload.js +2 -2
  40. package/dist/Interfaces/Cart/IPaysafePayload.d.ts +72 -72
  41. package/dist/Interfaces/Cart/IPaysafePayload.js +2 -2
  42. package/dist/Interfaces/Cart/IStripePayload.d.ts +66 -66
  43. package/dist/Interfaces/Cart/IStripePayload.js +2 -2
  44. package/dist/Interfaces/Cart/index.d.ts +397 -397
  45. package/dist/Interfaces/Cart/index.js +181 -181
  46. package/dist/Interfaces/Catalogue/index.d.ts +68 -68
  47. package/dist/Interfaces/Catalogue/index.js +37 -37
  48. package/dist/Interfaces/Category/index.d.ts +26 -26
  49. package/dist/Interfaces/Category/index.js +2 -2
  50. package/dist/Interfaces/Chart/index.d.ts +11 -11
  51. package/dist/Interfaces/Chart/index.js +2 -2
  52. package/dist/Interfaces/Class/index.d.ts +8 -8
  53. package/dist/Interfaces/Class/index.js +2 -2
  54. package/dist/Interfaces/Consent/index.d.ts +6 -6
  55. package/dist/Interfaces/Consent/index.js +2 -2
  56. package/dist/Interfaces/Context/IContextProps.d.ts +5 -5
  57. package/dist/Interfaces/Context/IContextProps.js +2 -2
  58. package/dist/Interfaces/Context/IContextState.d.ts +15 -15
  59. package/dist/Interfaces/Context/IContextState.js +2 -2
  60. package/dist/Interfaces/Customer/ICustomerBadge.d.ts +2 -2
  61. package/dist/Interfaces/Customer/ICustomerBadge.js +2 -2
  62. package/dist/Interfaces/Customer/ICustomerRating.d.ts +10 -10
  63. package/dist/Interfaces/Customer/ICustomerRating.js +2 -2
  64. package/dist/Interfaces/Customer/index.d.ts +92 -92
  65. package/dist/Interfaces/Customer/index.js +158 -158
  66. package/dist/Interfaces/Declination/index.d.ts +106 -106
  67. package/dist/Interfaces/Declination/index.js +64 -64
  68. package/dist/Interfaces/Document/index.d.ts +8 -8
  69. package/dist/Interfaces/Document/index.js +2 -2
  70. package/dist/Interfaces/Elastic/index.d.ts +89 -89
  71. package/dist/Interfaces/Elastic/index.js +2 -2
  72. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.d.ts +11 -11
  73. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.js +2 -2
  74. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.d.ts +15 -15
  75. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.js +2 -2
  76. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.d.ts +12 -12
  77. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.js +2 -2
  78. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.d.ts +36 -36
  79. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.js +2 -2
  80. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.d.ts +12 -12
  81. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.js +2 -2
  82. package/dist/Interfaces/Email/CustomGR/ITransportEmail.d.ts +12 -12
  83. package/dist/Interfaces/Email/CustomGR/ITransportEmail.js +2 -2
  84. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.d.ts +12 -12
  85. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.js +2 -2
  86. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.d.ts +16 -16
  87. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.js +2 -2
  88. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.d.ts +15 -15
  89. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.js +2 -2
  90. package/dist/Interfaces/Email/IAbandonnedCartEmail.d.ts +29 -29
  91. package/dist/Interfaces/Email/IAbandonnedCartEmail.js +2 -2
  92. package/dist/Interfaces/Email/IAccountConfirmationEmail.d.ts +22 -22
  93. package/dist/Interfaces/Email/IAccountConfirmationEmail.js +2 -2
  94. package/dist/Interfaces/Email/IApplicationEmail.d.ts +19 -19
  95. package/dist/Interfaces/Email/IApplicationEmail.js +2 -2
  96. package/dist/Interfaces/Email/IBackInStockEmail.d.ts +21 -21
  97. package/dist/Interfaces/Email/IBackInStockEmail.js +2 -2
  98. package/dist/Interfaces/Email/IContactEmail.d.ts +20 -20
  99. package/dist/Interfaces/Email/IContactEmail.js +2 -2
  100. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.d.ts +15 -15
  101. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.js +2 -2
  102. package/dist/Interfaces/Email/ICustomerBookingEmail.d.ts +14 -14
  103. package/dist/Interfaces/Email/ICustomerBookingEmail.js +2 -2
  104. package/dist/Interfaces/Email/IEmail.d.ts +20 -20
  105. package/dist/Interfaces/Email/IEmail.js +69 -69
  106. package/dist/Interfaces/Email/IOrderConfirmationEmail.d.ts +47 -47
  107. package/dist/Interfaces/Email/IOrderConfirmationEmail.js +2 -2
  108. package/dist/Interfaces/Email/IPasswordResetEmail.d.ts +17 -17
  109. package/dist/Interfaces/Email/IPasswordResetEmail.js +2 -2
  110. package/dist/Interfaces/Email/IPhotoShootEmail.d.ts +14 -14
  111. package/dist/Interfaces/Email/IPhotoShootEmail.js +2 -2
  112. package/dist/Interfaces/Email/IPickupConfirmation.d.ts +23 -23
  113. package/dist/Interfaces/Email/IPickupConfirmation.js +2 -2
  114. package/dist/Interfaces/Email/IShippingConfirmation.d.ts +23 -23
  115. package/dist/Interfaces/Email/IShippingConfirmation.js +2 -2
  116. package/dist/Interfaces/Email/IWelcomeEmail.d.ts +19 -19
  117. package/dist/Interfaces/Email/IWelcomeEmail.js +2 -2
  118. package/dist/Interfaces/ExportSchema/index.d.ts +7 -7
  119. package/dist/Interfaces/ExportSchema/index.js +2 -2
  120. package/dist/Interfaces/ExternalService/BaseExternalService.d.ts +12 -12
  121. package/dist/Interfaces/ExternalService/BaseExternalService.js +2 -2
  122. package/dist/Interfaces/ExternalService/index.d.ts +9 -9
  123. package/dist/Interfaces/ExternalService/index.js +2 -2
  124. package/dist/Interfaces/G2/index.d.ts +286 -286
  125. package/dist/Interfaces/G2/index.js +31 -31
  126. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.d.ts +20 -20
  127. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.js +2 -2
  128. package/dist/Interfaces/Indexed/Product/index.d.ts +91 -91
  129. package/dist/Interfaces/Indexed/Product/index.js +315 -315
  130. package/dist/Interfaces/Inventory/index.d.ts +19 -19
  131. package/dist/Interfaces/Inventory/index.js +8 -8
  132. package/dist/Interfaces/Invoice/index.d.ts +4 -4
  133. package/dist/Interfaces/Invoice/index.js +2 -2
  134. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.d.ts +3 -3
  135. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.js +2 -2
  136. package/dist/Interfaces/MarketplacePublication/index.d.ts +23 -23
  137. package/dist/Interfaces/MarketplacePublication/index.js +33 -33
  138. package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
  139. package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
  140. package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
  141. package/dist/Interfaces/Operations/IUpdate.js +2 -2
  142. package/dist/Interfaces/Order/index.d.ts +4 -4
  143. package/dist/Interfaces/Order/index.js +2 -2
  144. package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
  145. package/dist/Interfaces/Org/IRelUser.js +2 -2
  146. package/dist/Interfaces/Org/index.d.ts +29 -29
  147. package/dist/Interfaces/Org/index.js +12 -12
  148. package/dist/Interfaces/Payment/index.d.ts +11 -11
  149. package/dist/Interfaces/Payment/index.js +2 -2
  150. package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
  151. package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
  152. package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
  153. package/dist/Interfaces/Product/IImportProduct.js +966 -966
  154. package/dist/Interfaces/Product/IInventoryItem.d.ts +81 -81
  155. package/dist/Interfaces/Product/IInventoryItem.js +36 -36
  156. package/dist/Interfaces/Product/IPricing.d.ts +177 -177
  157. package/dist/Interfaces/Product/IPricing.js +174 -174
  158. package/dist/Interfaces/Product/index.d.ts +121 -121
  159. package/dist/Interfaces/Product/index.js +56 -56
  160. package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
  161. package/dist/Interfaces/ProductAttribute/index.js +2 -2
  162. package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
  163. package/dist/Interfaces/PromiseToPurchase/BankType.js +42 -42
  164. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
  165. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
  166. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
  167. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
  168. package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
  169. package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
  170. package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
  171. package/dist/Interfaces/PurchaseOrder/index.js +2 -2
  172. package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
  173. package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
  174. package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
  175. package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
  176. package/dist/Interfaces/Query/IProductQueryOptions.d.ts +15 -15
  177. package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
  178. package/dist/Interfaces/Quote/index.d.ts +5 -5
  179. package/dist/Interfaces/Quote/index.js +2 -2
  180. package/dist/Interfaces/Rules/IDiscountRule.d.ts +131 -131
  181. package/dist/Interfaces/Rules/IDiscountRule.js +95 -95
  182. package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
  183. package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
  184. package/dist/Interfaces/Services/IService.d.ts +12 -12
  185. package/dist/Interfaces/Services/IService.js +2 -2
  186. package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
  187. package/dist/Interfaces/Services/IServiceSecret.js +2 -2
  188. package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
  189. package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
  190. package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
  191. package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
  192. package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
  193. package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
  194. package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
  195. package/dist/Interfaces/Shipping/Shiptime/order.js +48 -48
  196. package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
  197. package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
  198. package/dist/Interfaces/Slider/GR.d.ts +130 -130
  199. package/dist/Interfaces/Slider/GR.js +271 -271
  200. package/dist/Interfaces/Slider/index.d.ts +14 -14
  201. package/dist/Interfaces/Slider/index.js +2 -2
  202. package/dist/Interfaces/Space/IMember.d.ts +16 -16
  203. package/dist/Interfaces/Space/IMember.js +9 -9
  204. package/dist/Interfaces/Space/index.d.ts +311 -311
  205. package/dist/Interfaces/Space/index.js +77 -77
  206. package/dist/Interfaces/Specials/gr.d.ts +61 -61
  207. package/dist/Interfaces/Specials/gr.js +2 -2
  208. package/dist/Interfaces/StockNotification/index.d.ts +7 -7
  209. package/dist/Interfaces/StockNotification/index.js +2 -2
  210. package/dist/Interfaces/Store/index.d.ts +60 -60
  211. package/dist/Interfaces/Store/index.js +27 -27
  212. package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
  213. package/dist/Interfaces/Supplier/ICommand.js +2 -2
  214. package/dist/Interfaces/Supplier/index.d.ts +36 -36
  215. package/dist/Interfaces/Supplier/index.js +24 -24
  216. package/dist/Interfaces/Tag/index.d.ts +18 -18
  217. package/dist/Interfaces/Tag/index.js +2 -2
  218. package/dist/Interfaces/Tax/index.d.ts +12 -12
  219. package/dist/Interfaces/Tax/index.js +2 -2
  220. package/dist/Interfaces/TransferRequest/index.d.ts +32 -32
  221. package/dist/Interfaces/TransferRequest/index.js +26 -26
  222. package/dist/Interfaces/Translation/index.d.ts +4 -4
  223. package/dist/Interfaces/Translation/index.js +2 -2
  224. package/dist/Interfaces/Update/index.d.ts +10 -10
  225. package/dist/Interfaces/Update/index.js +2 -2
  226. package/dist/Interfaces/User/IUser.d.ts +29 -29
  227. package/dist/Interfaces/User/IUser.js +8 -8
  228. package/dist/Interfaces/Version/index.d.ts +11 -11
  229. package/dist/Interfaces/Version/index.js +2 -2
  230. package/dist/Interfaces/Wishlist/index.d.ts +7 -7
  231. package/dist/Interfaces/Wishlist/index.js +2 -2
  232. package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
  233. package/dist/constants/Interfaces/IBaseApi.js +2 -2
  234. package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
  235. package/dist/constants/Interfaces/IEndpointResult.js +2 -2
  236. package/dist/constants/enums.d.ts +6 -6
  237. package/dist/constants/enums.js +10 -10
  238. package/dist/constants/version.d.ts +2 -2
  239. package/dist/constants/version.js +5 -5
  240. package/dist/index.d.ts +32 -32
  241. package/dist/index.js +416 -416
  242. package/dist/lib/Attribute/index.d.ts +14 -14
  243. package/dist/lib/Attribute/index.js +249 -249
  244. package/dist/lib/BGJob/index.d.ts +9 -9
  245. package/dist/lib/BGJob/index.js +376 -376
  246. package/dist/lib/BackgroundWorker/index.d.ts +34 -34
  247. package/dist/lib/BackgroundWorker/index.js +72 -72
  248. package/dist/lib/Blog/BlogArticle.d.ts +5 -5
  249. package/dist/lib/Blog/BlogArticle.js +28 -28
  250. package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
  251. package/dist/lib/Blog/BlogAuthor.js +28 -28
  252. package/dist/lib/Blog/BlogCategory.d.ts +5 -5
  253. package/dist/lib/Blog/BlogCategory.js +28 -28
  254. package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
  255. package/dist/lib/Blog/BlogKeyword.js +28 -28
  256. package/dist/lib/Booking/index.d.ts +63 -63
  257. package/dist/lib/Booking/index.js +813 -813
  258. package/dist/lib/Brand/index.d.ts +17 -17
  259. package/dist/lib/Brand/index.js +276 -276
  260. package/dist/lib/Cart/index.d.ts +184 -184
  261. package/dist/lib/Cart/index.js +3653 -3653
  262. package/dist/lib/Catalogue/index.d.ts +9 -9
  263. package/dist/lib/Catalogue/index.js +208 -208
  264. package/dist/lib/Category/index.d.ts +26 -26
  265. package/dist/lib/Category/index.js +361 -361
  266. package/dist/lib/Class/index.d.ts +12 -12
  267. package/dist/lib/Class/index.js +159 -159
  268. package/dist/lib/Consent/index.d.ts +4 -4
  269. package/dist/lib/Consent/index.js +79 -79
  270. package/dist/lib/Customer/index.d.ts +10 -10
  271. package/dist/lib/Customer/index.js +140 -140
  272. package/dist/lib/Declination/index.d.ts +10 -10
  273. package/dist/lib/Declination/index.js +85 -85
  274. package/dist/lib/Discount/index.d.ts +18 -18
  275. package/dist/lib/Discount/index.js +759 -759
  276. package/dist/lib/ElasticSearch/index.d.ts +8 -8
  277. package/dist/lib/ElasticSearch/index.js +101 -101
  278. package/dist/lib/Email/AbandonedCartEmail.d.ts +8 -8
  279. package/dist/lib/Email/AbandonedCartEmail.js +78 -78
  280. package/dist/lib/Email/AccountConfirmationEmail.d.ts +11 -11
  281. package/dist/lib/Email/AccountConfirmationEmail.js +95 -95
  282. package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +8 -8
  283. package/dist/lib/Email/AdminOrderConfirmationEmail.js +78 -78
  284. package/dist/lib/Email/ApplicationEmail.d.ts +8 -8
  285. package/dist/lib/Email/ApplicationEmail.js +78 -78
  286. package/dist/lib/Email/BackInStockEmail.d.ts +8 -8
  287. package/dist/lib/Email/BackInStockEmail.js +78 -78
  288. package/dist/lib/Email/ContactEmail.d.ts +8 -8
  289. package/dist/lib/Email/ContactEmail.js +78 -78
  290. package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +8 -8
  291. package/dist/lib/Email/CustomerBookingAdminEmail.js +78 -78
  292. package/dist/lib/Email/CustomerBookingEmail.d.ts +8 -8
  293. package/dist/lib/Email/CustomerBookingEmail.js +78 -78
  294. package/dist/lib/Email/OrderConfirmationEmail.d.ts +8 -8
  295. package/dist/lib/Email/OrderConfirmationEmail.js +78 -78
  296. package/dist/lib/Email/OrderDenounciationEmail.d.ts +8 -8
  297. package/dist/lib/Email/OrderDenounciationEmail.js +78 -78
  298. package/dist/lib/Email/OrderSampleEmail.d.ts +8 -8
  299. package/dist/lib/Email/OrderSampleEmail.js +78 -78
  300. package/dist/lib/Email/OtherTypeEmails.d.ts +8 -8
  301. package/dist/lib/Email/OtherTypeEmails.js +90 -90
  302. package/dist/lib/Email/PasswordResetEmail.d.ts +8 -8
  303. package/dist/lib/Email/PasswordResetEmail.js +78 -78
  304. package/dist/lib/Email/PhotoShootEmail.d.ts +8 -8
  305. package/dist/lib/Email/PhotoShootEmail.js +78 -78
  306. package/dist/lib/Email/PickUpConfirmation.d.ts +8 -8
  307. package/dist/lib/Email/PickUpConfirmation.js +78 -78
  308. package/dist/lib/Email/ShippingConfirmation.d.ts +8 -8
  309. package/dist/lib/Email/ShippingConfirmation.js +78 -78
  310. package/dist/lib/Email/WelcomeEmail.d.ts +8 -8
  311. package/dist/lib/Email/WelcomeEmail.js +78 -78
  312. package/dist/lib/Email/index.d.ts +8 -8
  313. package/dist/lib/Email/index.js +82 -82
  314. package/dist/lib/ExternalService/Ebay.d.ts +63 -63
  315. package/dist/lib/ExternalService/Ebay.js +185 -185
  316. package/dist/lib/ExternalService/index.d.ts +5 -5
  317. package/dist/lib/ExternalService/index.js +28 -28
  318. package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
  319. package/dist/lib/Indexed/IndexedCart.js +194 -194
  320. package/dist/lib/Indexed/Product.d.ts +17 -17
  321. package/dist/lib/Indexed/Product.js +116 -116
  322. package/dist/lib/Inventory/index.d.ts +31 -31
  323. package/dist/lib/Inventory/index.js +560 -560
  324. package/dist/lib/Invoice/index.d.ts +5 -5
  325. package/dist/lib/Invoice/index.js +28 -28
  326. package/dist/lib/MarketplacePublication/index.d.ts +9 -9
  327. package/dist/lib/MarketplacePublication/index.js +221 -221
  328. package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
  329. package/dist/lib/MongoDB/BaseAPI.js +308 -308
  330. package/dist/lib/Order/index.d.ts +7 -7
  331. package/dist/lib/Order/index.js +62 -62
  332. package/dist/lib/Org/index.d.ts +26 -26
  333. package/dist/lib/Org/index.js +286 -286
  334. package/dist/lib/PandaPay/index.d.ts +16 -16
  335. package/dist/lib/PandaPay/index.js +219 -219
  336. package/dist/lib/Paysafe/index.d.ts +11 -11
  337. package/dist/lib/Paysafe/index.js +100 -100
  338. package/dist/lib/Product/index.d.ts +143 -143
  339. package/dist/lib/Product/index.js +1326 -1326
  340. package/dist/lib/ProductAttribute/index.d.ts +15 -15
  341. package/dist/lib/ProductAttribute/index.js +114 -114
  342. package/dist/lib/PromiseToPurchase/index.d.ts +35 -35
  343. package/dist/lib/PromiseToPurchase/index.js +474 -474
  344. package/dist/lib/PurchaseOrder/index.d.ts +9 -9
  345. package/dist/lib/PurchaseOrder/index.js +72 -72
  346. package/dist/lib/Queue/index.d.ts +40 -40
  347. package/dist/lib/Queue/index.js +254 -254
  348. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  349. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  350. package/dist/lib/Service/index.d.ts +5 -5
  351. package/dist/lib/Service/index.js +57 -57
  352. package/dist/lib/Shipment/index.d.ts +28 -28
  353. package/dist/lib/Shipment/index.js +559 -559
  354. package/dist/lib/Slider/index.d.ts +16 -16
  355. package/dist/lib/Slider/index.js +235 -235
  356. package/dist/lib/Space/index.d.ts +769 -769
  357. package/dist/lib/Space/index.js +6688 -6688
  358. package/dist/lib/StockNotification/index.d.ts +4 -4
  359. package/dist/lib/StockNotification/index.js +26 -26
  360. package/dist/lib/Store/index.d.ts +5 -5
  361. package/dist/lib/Store/index.js +30 -30
  362. package/dist/lib/Supplier/Command.d.ts +5 -5
  363. package/dist/lib/Supplier/Command.js +28 -28
  364. package/dist/lib/Supplier/index.d.ts +25 -25
  365. package/dist/lib/Supplier/index.js +92 -92
  366. package/dist/lib/Tags/index.d.ts +6 -6
  367. package/dist/lib/Tags/index.js +84 -84
  368. package/dist/lib/Tax/index.d.ts +8 -8
  369. package/dist/lib/Tax/index.js +136 -136
  370. package/dist/lib/TransferRequest/index.d.ts +21 -21
  371. package/dist/lib/TransferRequest/index.js +302 -302
  372. package/dist/lib/Update/index.d.ts +10 -10
  373. package/dist/lib/Update/index.js +71 -71
  374. package/dist/lib/User/index.d.ts +33 -33
  375. package/dist/lib/User/index.js +360 -360
  376. package/dist/lib/Wishlist/index.d.ts +5 -5
  377. package/dist/lib/Wishlist/index.js +28 -28
  378. package/dist/lib/base.d.ts +14 -14
  379. package/dist/lib/base.js +135 -135
  380. package/dist/lib/baseService.d.ts +17 -17
  381. package/dist/lib/baseService.js +113 -113
  382. package/dist/rules/GR/constants/data.d.ts +28 -28
  383. package/dist/rules/GR/constants/data.js +57 -57
  384. package/dist/rules/GR/constants/products.d.ts +8 -8
  385. package/dist/rules/GR/constants/products.js +234 -234
  386. package/dist/rules/GR/interfaces/cart.d.ts +68 -68
  387. package/dist/rules/GR/interfaces/cart.js +49 -49
  388. package/dist/rules/GR/interfaces/data.d.ts +97 -97
  389. package/dist/rules/GR/interfaces/data.js +104 -104
  390. package/dist/rules/GR/interfaces/products.d.ts +61 -61
  391. package/dist/rules/GR/interfaces/products.js +10 -10
  392. package/dist/rules/GR/utils/cart.d.ts +39 -39
  393. package/dist/rules/GR/utils/cart.js +644 -644
  394. package/dist/rules/GR/utils/data.d.ts +3 -3
  395. package/dist/rules/GR/utils/data.js +25 -25
  396. package/dist/rules/GR/utils/expedition.d.ts +70 -70
  397. package/dist/rules/GR/utils/expedition.js +1584 -1584
  398. package/dist/rules/GR/utils/expedition.js.map +1 -1
  399. package/dist/rules/GR/utils/g2.d.ts +153 -153
  400. package/dist/rules/GR/utils/g2.js +914 -914
  401. package/dist/rules/GR/utils/invoices.d.ts +5 -5
  402. package/dist/rules/GR/utils/invoices.js +140 -140
  403. package/dist/rules/GR/utils/products.d.ts +105 -105
  404. package/dist/rules/GR/utils/products.js +1013 -1013
  405. package/dist/rules/GR/utils/upsells.d.ts +75 -75
  406. package/dist/rules/GR/utils/upsells.js +278 -278
  407. package/dist/services/database/BaseProvider.d.ts +28 -28
  408. package/dist/services/database/BaseProvider.js +77 -77
  409. package/dist/services/database/BatchUtils.d.ts +14 -14
  410. package/dist/services/database/BatchUtils.js +88 -88
  411. package/dist/services/database/Config.d.ts +2 -2
  412. package/dist/services/database/Config.js +5 -5
  413. package/dist/services/database/DatabaseService.d.ts +41 -41
  414. package/dist/services/database/DatabaseService.js +311 -311
  415. package/dist/services/database/FirebaseProvider.d.ts +17 -17
  416. package/dist/services/database/FirebaseProvider.js +300 -300
  417. package/dist/services/database/NotFirebaseProvider.d.ts +35 -35
  418. package/dist/services/database/NotFirebaseProvider.js +367 -367
  419. package/dist/utils/algolia.d.ts +6 -6
  420. package/dist/utils/algolia.js +22 -22
  421. package/dist/utils/anonymisation.d.ts +30 -30
  422. package/dist/utils/anonymisation.js +269 -269
  423. package/dist/utils/array.d.ts +5 -5
  424. package/dist/utils/array.js +36 -36
  425. package/dist/utils/aws.d.ts +14 -14
  426. package/dist/utils/aws.js +220 -220
  427. package/dist/utils/booking.d.ts +22 -22
  428. package/dist/utils/booking.js +175 -175
  429. package/dist/utils/cart.d.ts +511 -511
  430. package/dist/utils/cart.js +503 -503
  431. package/dist/utils/cmv.d.ts +10 -10
  432. package/dist/utils/cmv.js +107 -107
  433. package/dist/utils/console.d.ts +6 -6
  434. package/dist/utils/console.js +121 -121
  435. package/dist/utils/context.d.ts +19 -19
  436. package/dist/utils/context.js +41 -41
  437. package/dist/utils/currency.d.ts +6 -6
  438. package/dist/utils/currency.js +62 -62
  439. package/dist/utils/data.d.ts +40 -40
  440. package/dist/utils/data.js +226 -226
  441. package/dist/utils/date.d.ts +1 -1
  442. package/dist/utils/date.js +16 -16
  443. package/dist/utils/dimensions.d.ts +3 -3
  444. package/dist/utils/dimensions.js +18 -18
  445. package/dist/utils/discount.d.ts +33 -33
  446. package/dist/utils/discount.js +906 -906
  447. package/dist/utils/errors.d.ts +113 -113
  448. package/dist/utils/errors.js +113 -113
  449. package/dist/utils/file-admin.d.ts +8 -8
  450. package/dist/utils/file-admin.js +94 -94
  451. package/dist/utils/file.d.ts +38 -38
  452. package/dist/utils/file.js +318 -318
  453. package/dist/utils/firebase-admin.d.ts +2 -2
  454. package/dist/utils/firebase-admin.js +118 -118
  455. package/dist/utils/firebase.d.ts +41 -41
  456. package/dist/utils/firebase.js +220 -220
  457. package/dist/utils/import.d.ts +1 -1
  458. package/dist/utils/import.js +81 -81
  459. package/dist/utils/inventories.d.ts +26 -26
  460. package/dist/utils/inventories.js +355 -355
  461. package/dist/utils/locale.d.ts +13 -13
  462. package/dist/utils/locale.js +67 -67
  463. package/dist/utils/mailchimp.d.ts +57 -57
  464. package/dist/utils/mailchimp.js +735 -735
  465. package/dist/utils/mongodb.d.ts +1 -1
  466. package/dist/utils/mongodb.js +68 -68
  467. package/dist/utils/object.d.ts +6 -6
  468. package/dist/utils/object.js +124 -124
  469. package/dist/utils/payment.d.ts +10 -10
  470. package/dist/utils/payment.js +25 -25
  471. package/dist/utils/products.d.ts +26 -26
  472. package/dist/utils/products.js +301 -301
  473. package/dist/utils/promiseToPurchase.d.ts +56 -56
  474. package/dist/utils/promiseToPurchase.js +228 -228
  475. package/dist/utils/prosprsearch.d.ts +21 -21
  476. package/dist/utils/prosprsearch.js +276 -276
  477. package/dist/utils/sdc.d.ts +10 -10
  478. package/dist/utils/sdc.js +1308 -1308
  479. package/dist/utils/searchIndexes.d.ts +20 -20
  480. package/dist/utils/searchIndexes.js +273 -273
  481. package/dist/utils/services.d.ts +38 -38
  482. package/dist/utils/services.js +394 -394
  483. package/dist/utils/shipment.d.ts +110 -110
  484. package/dist/utils/shipment.js +410 -410
  485. package/dist/utils/simpletexting.d.ts +2 -2
  486. package/dist/utils/simpletexting.js +88 -88
  487. package/dist/utils/sliders.d.ts +4 -4
  488. package/dist/utils/sliders.js +70 -70
  489. package/dist/utils/string.d.ts +16 -16
  490. package/dist/utils/string.js +194 -194
  491. package/dist/utils/update.d.ts +7 -7
  492. package/dist/utils/update.js +244 -244
  493. package/dist/utils/weight.d.ts +3 -3
  494. package/dist/utils/weight.js +18 -18
  495. package/dist/utils/zones.d.ts +10 -10
  496. package/dist/utils/zones.js +287 -287
  497. package/package.json +106 -106
  498. package/publish.sh +143 -143
  499. package/readme.md +182 -182
@@ -1,915 +1,915 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- var __rest = (this && this.__rest) || function (s, e) {
50
- var t = {};
51
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
52
- t[p] = s[p];
53
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
54
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
55
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
56
- t[p[i]] = s[p[i]];
57
- }
58
- return t;
59
- };
60
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
61
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
62
- if (ar || !(i in from)) {
63
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
64
- ar[i] = from[i];
65
- }
66
- }
67
- return to.concat(ar || Array.prototype.slice.call(from));
68
- };
69
- var __importDefault = (this && this.__importDefault) || function (mod) {
70
- return (mod && mod.__esModule) ? mod : { "default": mod };
71
- };
72
- Object.defineProperty(exports, "__esModule", { value: true });
73
- exports.checkForCustomPriceEquivalent = exports.isEscompteSuppItem = exports.buildEscompteSuppCartItem = exports.groupArrayOfItemsByItemAndCorrespondingEscompteItem = exports.getItemEscompteSupp = exports.getCustomPriceList = exports.fetchCustomPriceList = exports.getG2CustomerTypeFromCode = exports.getG2DiscountFromCode = exports.updateCustomerWithG2Info = exports.checkIfCustomerExistsInG2 = exports.transformG2CustomerToCustomer = exports.getAllNewOrUpdatedCustomersFromG2 = exports.getG2Customer = exports.getG2ProductExternalValues = void 0;
74
- var uuid_1 = require("uuid");
75
- var crypto_js_1 = __importDefault(require("crypto-js"));
76
- var moment_1 = __importDefault(require("moment"));
77
- var maxBy_1 = __importDefault(require("lodash/maxBy"));
78
- var orderBy_1 = __importDefault(require("lodash/orderBy"));
79
- var toNumber_1 = __importDefault(require("lodash/toNumber"));
80
- var minBy_1 = __importDefault(require("lodash/minBy"));
81
- var uniqBy_1 = __importDefault(require("lodash/uniqBy"));
82
- var chunk_1 = __importDefault(require("lodash/chunk"));
83
- var Customer_1 = require("../../../Interfaces/Customer");
84
- var G2_1 = require("../../../Interfaces/G2");
85
- var data_1 = require("../../../utils/data");
86
- var object_1 = require("../../../utils/object");
87
- var context_1 = require("../../../utils/context");
88
- var locale_1 = require("../../../utils/locale");
89
- var data_2 = require("../interfaces/data");
90
- var flatten_1 = __importDefault(require("lodash/flatten"));
91
- var groupBy_1 = __importDefault(require("lodash/groupBy"));
92
- var string_1 = require("../../../utils/string");
93
- var products_1 = require("../../../utils/products");
94
- var __1 = require("../../..");
95
- var anonymisation_1 = require("../../../utils/anonymisation");
96
- var getG2ProductExternalValues = function (sku, g2Service, space, org) { return __awaiter(void 0, void 0, void 0, function () {
97
- var g2Auth, externalValues, api, token, g2ProductsQuery, productG2, catégorie1, catégorie2, e_1;
98
- var _a, _b;
99
- return __generator(this, function (_c) {
100
- switch (_c.label) {
101
- case 0:
102
- g2Auth = g2Service.external_service_infos.api;
103
- if (!!!g2Auth)
104
- return [2];
105
- externalValues = undefined;
106
- api = __1.API_URL;
107
- token = (0, context_1.getSpaceToken)(space, org);
108
- _c.label = 1;
109
- case 1:
110
- _c.trys.push([1, 4, , 5]);
111
- return [4, fetch("".concat(api, "/services/g2/products/").concat(sku), {
112
- method: 'GET',
113
- headers: {
114
- 'Content-Type': 'application/json',
115
- Authorization: "Bearer ".concat(token)
116
- }
117
- })];
118
- case 2:
119
- g2ProductsQuery = _c.sent();
120
- return [4, g2ProductsQuery.json()];
121
- case 3:
122
- productG2 = _c.sent();
123
- if (!!productG2 && !!productG2[0]) {
124
- catégorie1 = (_a = productG2[0].article['catégorie1']) !== null && _a !== void 0 ? _a : undefined;
125
- catégorie2 = (_b = productG2[0].article['catégorie2']) !== null && _b !== void 0 ? _b : undefined;
126
- if (!!catégorie1 || catégorie2) {
127
- externalValues = { catégorie1: catégorie1, catégorie2: catégorie2 };
128
- }
129
- }
130
- return [2, externalValues];
131
- case 4:
132
- e_1 = _c.sent();
133
- console.log('error on fetching external_values for sku from G2: ', e_1.toString());
134
- return [3, 5];
135
- case 5: return [2];
136
- }
137
- });
138
- }); };
139
- exports.getG2ProductExternalValues = getG2ProductExternalValues;
140
- var getG2Customer = function (spaceToken, customerId) { return __awaiter(void 0, void 0, void 0, function () {
141
- var allG2Customers, api, g2CustomersQuery, G2RequestRes, e_2;
142
- return __generator(this, function (_a) {
143
- switch (_a.label) {
144
- case 0:
145
- allG2Customers = [];
146
- _a.label = 1;
147
- case 1:
148
- _a.trys.push([1, 4, , 5]);
149
- api = __1.API_URL;
150
- return [4, fetch("".concat(api, "/services/g2/customers/").concat(customerId), {
151
- method: 'GET',
152
- headers: {
153
- 'Content-Type': 'application/json',
154
- Authorization: "Bearer ".concat(spaceToken)
155
- }
156
- })];
157
- case 2:
158
- g2CustomersQuery = _a.sent();
159
- return [4, g2CustomersQuery.json()];
160
- case 3:
161
- G2RequestRes = _a.sent();
162
- if (!!g2CustomersQuery.status && g2CustomersQuery.status !== 200)
163
- throw "Error - ".concat(g2CustomersQuery.status);
164
- if (!!!G2RequestRes || !!!G2RequestRes.length)
165
- throw 'Error - no data';
166
- allG2Customers = G2RequestRes;
167
- return [3, 5];
168
- case 4:
169
- e_2 = _a.sent();
170
- console.log('error on querying G2: ', e_2);
171
- return [3, 5];
172
- case 5: return [2, allG2Customers];
173
- }
174
- });
175
- }); };
176
- exports.getG2Customer = getG2Customer;
177
- var getAllNewOrUpdatedCustomersFromG2 = function (space, allG2Customers) { return __awaiter(void 0, void 0, void 0, function () {
178
- var allCurrentCustomers, customerQuery, e_3, allNewCustomers, allUpdatedCustomers, _loop_1, _i, allG2Customers_1, g2;
179
- return __generator(this, function (_a) {
180
- switch (_a.label) {
181
- case 0:
182
- allCurrentCustomers = [];
183
- _a.label = 1;
184
- case 1:
185
- _a.trys.push([1, 3, , 4]);
186
- return [4, space.customers.get()];
187
- case 2:
188
- customerQuery = _a.sent();
189
- if (!!customerQuery && !!customerQuery.length)
190
- throw 'Error - no data';
191
- allCurrentCustomers = customerQuery.map(function (customer) { return customer.data(); });
192
- return [3, 4];
193
- case 3:
194
- e_3 = _a.sent();
195
- console.log('error on fetching customers: ', e_3.toString());
196
- return [2];
197
- case 4:
198
- allNewCustomers = [];
199
- allUpdatedCustomers = [];
200
- _loop_1 = function (g2) {
201
- var sameCustomerInDb = allCurrentCustomers.find(function (c) { return !!c.id && c.id.toUpperCase() === g2.client.noClient.toUpperCase(); });
202
- if (!!!sameCustomerInDb) {
203
- allNewCustomers.push((0, exports.transformG2CustomerToCustomer)(g2));
204
- return "continue";
205
- }
206
- if (!!(0, object_1.difference)(sameCustomerInDb, (0, exports.transformG2CustomerToCustomer)(g2))) {
207
- allUpdatedCustomers.push((0, exports.transformG2CustomerToCustomer)(g2, sameCustomerInDb));
208
- }
209
- };
210
- for (_i = 0, allG2Customers_1 = allG2Customers; _i < allG2Customers_1.length; _i++) {
211
- g2 = allG2Customers_1[_i];
212
- _loop_1(g2);
213
- }
214
- return [2, { new: allNewCustomers, updated: allUpdatedCustomers }];
215
- }
216
- });
217
- }); };
218
- exports.getAllNewOrUpdatedCustomersFromG2 = getAllNewOrUpdatedCustomersFromG2;
219
- var transformG2CustomerToCustomer = function (g2Customer, prevCustomer, allGroups) {
220
- var client = g2Customer.client;
221
- var getCustomerNameInfo = function (aName) {
222
- return {
223
- customer_firstname: aName.replace(/[0-9]/g, '').replace(/\-\-/g, '').split(' ')[0].trim(),
224
- customer_lastname: aName
225
- .replace(/[0-9]/g, '')
226
- .replace(/\-\-/g, '')
227
- .trim()
228
- .split(' ')
229
- .map(function (aString, key) { return (!!!key ? undefined : aString); })
230
- .filter(function (s) { return !!s; })
231
- .join(' '),
232
- customer_phone: aName.replace(/[^0-9]/g, '').trim()
233
- };
234
- };
235
- var getOtherCustomerInfo = function (propsStr) {
236
- var clientToCheck = client;
237
- if (!!!clientToCheck[propsStr])
238
- return {};
239
- var email = !!clientToCheck["".concat(propsStr, "Email")] ? clientToCheck["".concat(propsStr, "Email")].toLowerCase() : undefined;
240
- var fax = !!clientToCheck["".concat(propsStr, "FAX")] ? (0, data_1.formatPhoneNumberDB)(clientToCheck["".concat(propsStr, "FAX")]) : undefined;
241
- return __assign(__assign({}, (!!email
242
- ? {
243
- customer_email: email
244
- }
245
- : {
246
- customer_communicationPreference: 'phone'
247
- })), (!!fax
248
- ? {
249
- customer_photocopier: fax
250
- }
251
- : {}));
252
- };
253
- var getPrevCustomerAddress = function (expeditionInfo) {
254
- var defaultBilling = expeditionInfo.findIndex(function (ei) { return ei.is_default && ei.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.BILLING); });
255
- if (defaultBilling !== -1) {
256
- return __spreadArray(__spreadArray(__spreadArray([], expeditionInfo.slice(0, defaultBilling), true), [
257
- __assign(__assign({}, expeditionInfo[defaultBilling]), { address: __assign(__assign({}, expeditionInfo[defaultBilling].address), getClientAddress()) })
258
- ], false), expeditionInfo.slice(defaultBilling + 1), true);
259
- }
260
- return __spreadArray(__spreadArray([], expeditionInfo, true), [
261
- {
262
- address: __assign(__assign({}, getClientAddress()), { id: (0, uuid_1.v4)() }),
263
- is_default: [Customer_1.defaultExpeditionOptionsEnum.BILLING],
264
- expedition_recipient_name: !!client.nom ? client.nom : '',
265
- expedition_recipient_phone: !!client.téléphone ? (0, data_1.formatPhoneNumberDB)(client.téléphone) : ''
266
- }
267
- ], false);
268
- };
269
- var getClientAddress = function () {
270
- return {
271
- city: client.ville,
272
- country: !!client.pays ? client.pays : 'CA',
273
- line1: client.adresse || '',
274
- postal_code: !!client.codePostal ? client.codePostal.toUpperCase() : '',
275
- state: client.province || ''
276
- };
277
- };
278
- var shouldCheckForCompany = function () {
279
- return !!client.nom || !!client.téléphone || !!client.personneRessourceComptes;
280
- };
281
- var defaultProGroup = 'aspirant';
282
- var getCustomerGroupFromTypeCode = function (type) {
283
- if (!!!allGroups)
284
- return defaultProGroup;
285
- var sameGroup = allGroups.find(function (g) { return g.external_slug === type; });
286
- return !!sameGroup ? sameGroup.slug : defaultProGroup;
287
- };
288
- var customerWithNewInfo = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (0, Customer_1.getDefaultCustomer)()), (!!prevCustomer ? prevCustomer : { id: client.noClient })), (!!!prevCustomer
289
- ? {
290
- hash: crypto_js_1.default.AES.encrypt(client.noClient, client.noClient).toString(),
291
- type: Customer_1.CustomerTypeEnum.COMPANY
292
- }
293
- : {})), (!!client.limiteDeCrédit && Math.round((0, toNumber_1.default)(client.limiteDeCrédit))
294
- ? {
295
- has_credit_line: true,
296
- credit_line_max: client.limiteDeCrédit
297
- }
298
- : {})), (!!client.noReprésentant ? { represented_by: client.noReprésentant } : {})), { basic_info: __assign(__assign(__assign(__assign(__assign(__assign({}, (0, Customer_1.getDefaultBasicCustomer)()), (!!prevCustomer ? prevCustomer.basic_info : { customer_type: Customer_1.BasicCustomerTypeEnum.PRO })), (!!client.email ? { customer_email: client.email.split(';')[0].toLowerCase() } : {})), (!!client.fax ? { customer_photocopier: client.fax } : {})), (!!client.personneRessourceVentes ? getCustomerNameInfo(client.personneRessourceVentes) : {})), { customer_professionnal_info: __assign(__assign(__assign(__assign(__assign(__assign({}, (!!prevCustomer ? prevCustomer.basic_info.customer_professionnal_info : {})), { professionnal_title: !!client.groupeDeClient && !!(0, exports.getG2CustomerTypeFromCode)(client.groupeDeClient)
299
- ? getCustomerGroupFromTypeCode((0, exports.getG2CustomerTypeFromCode)(client.groupeDeClient))
300
- : defaultProGroup, proof_doc_value: client.noClient }), (!!client.noCondition ? { terms_code: client.noCondition } : {})), (!!client.groupeDeClient ? { external_customer_group: client.groupeDeClient } : {})), (!!client.codeFA ? { external_customer_code: client.codeFA } : {})), (!!client.classePrix ? { external_price_class: client.classePrix.toString() } : {})) }) }), ((!!prevCustomer && !!prevCustomer.company_info) || shouldCheckForCompany()
301
- ? {
302
- company_info: __assign(__assign(__assign({}, (!!prevCustomer && !!prevCustomer.company_info ? prevCustomer.company_info : {})), { invoice_info: __assign(__assign(__assign({}, (!!prevCustomer && !!prevCustomer.company_info && !!prevCustomer.company_info.invoice_info
303
- ? prevCustomer.company_info.invoice_info
304
- : {})), { legal_name: !!client.nom ? client.nom : '' }), (!!client.téléphone ? { phone: (0, data_1.formatPhoneNumberDB)(client.téléphone) } : {})) }), (!!client.personneRessourceComptes || !!client.personneRessourceAutres
305
- ? {
306
- other_users: __spreadArray(__spreadArray([], (!!client.personneRessourceComptes
307
- ? [
308
- __assign(__assign(__assign({}, (0, Customer_1.getDefaultBasicCustomer)()), getCustomerNameInfo(client.personneRessourceComptes)), getOtherCustomerInfo('personneRessourceComptes'))
309
- ]
310
- : []), true), (!!client.personneRessourceAutres
311
- ? [
312
- __assign(__assign(__assign({}, (0, Customer_1.getDefaultBasicCustomer)()), getCustomerNameInfo(client.personneRessourceAutres)), getOtherCustomerInfo('personneRessourceAutres'))
313
- ]
314
- : []), true)
315
- }
316
- : {}))
317
- }
318
- : {})), { expedition_info: !!prevCustomer && prevCustomer.expedition_info && prevCustomer.expedition_info.length
319
- ? prevCustomer.expedition_info.length > 1
320
- ? getPrevCustomerAddress(prevCustomer.expedition_info)
321
- : [
322
- __assign(__assign({}, prevCustomer.expedition_info[0]), { address: __assign(__assign({}, (prevCustomer.expedition_info[0].address ? prevCustomer.expedition_info[0].address : {})), getClientAddress()), is_default: __spreadArray(__spreadArray([], (prevCustomer.expedition_info[0].is_default || []), true), (!!!prevCustomer.expedition_info[0].is_default ||
323
- !!!prevCustomer.expedition_info[0].is_default.includes(Customer_1.defaultExpeditionOptionsEnum.BILLING)
324
- ? [Customer_1.defaultExpeditionOptionsEnum.BILLING]
325
- : []), true) })
326
- ]
327
- : [
328
- {
329
- address: __assign(__assign({}, getClientAddress()), { id: (0, uuid_1.v4)() }),
330
- is_default: [Customer_1.defaultExpeditionOptionsEnum.BILLING],
331
- expedition_recipient_name: !!client.nom ? client.nom : '',
332
- expedition_recipient_phone: !!client.téléphone ? (0, data_1.formatPhoneNumberDB)(client.téléphone) : ''
333
- }
334
- ] });
335
- if (!!__1.isTestEnv &&
336
- !!prevCustomer &&
337
- !!prevCustomer.basic_info.customer_email &&
338
- prevCustomer.basic_info.customer_email.includes('@dummy.com')) {
339
- var allPropsToReset = anonymisation_1.g2Properties.map(function (p) { return p.path; });
340
- for (var _i = 0, allPropsToReset_1 = allPropsToReset; _i < allPropsToReset_1.length; _i++) {
341
- var prop = allPropsToReset_1[_i];
342
- var prevValue = (0, object_1.recursiveCheckObject)(prevCustomer, prop);
343
- var currentValue = (0, object_1.recursiveCheckObject)(customerWithNewInfo, prop);
344
- if (prevValue == currentValue)
345
- continue;
346
- customerWithNewInfo = (0, object_1.recursiveSetObject)(customerWithNewInfo, prevValue, prop);
347
- }
348
- }
349
- return customerWithNewInfo;
350
- };
351
- exports.transformG2CustomerToCustomer = transformG2CustomerToCustomer;
352
- var checkIfCustomerExistsInG2 = function (customerID, space, org) { return __awaiter(void 0, void 0, void 0, function () {
353
- var token, api, response, exists, e_4;
354
- return __generator(this, function (_a) {
355
- switch (_a.label) {
356
- case 0:
357
- _a.trys.push([0, 3, , 4]);
358
- token = (0, context_1.getSpaceToken)(space, org);
359
- if (!!!token)
360
- throw new Error('no token found for space');
361
- api = __1.API_URL;
362
- return [4, fetch("".concat(api, "/services/g2/customers/").concat(customerID, "/exists"), {
363
- method: 'GET',
364
- headers: {
365
- 'Content-Type': 'application/json',
366
- Authorization: "Bearer ".concat(token)
367
- }
368
- })];
369
- case 1:
370
- response = _a.sent();
371
- if (!!response.status && response.status !== 200)
372
- throw "Error - ".concat(response.status);
373
- return [4, response.json()];
374
- case 2:
375
- exists = (_a.sent()).exists;
376
- return [2, exists];
377
- case 3:
378
- e_4 = _a.sent();
379
- console.log('error on checking customer in G2: ', e_4.toString());
380
- return [2, false];
381
- case 4: return [2];
382
- }
383
- });
384
- }); };
385
- exports.checkIfCustomerExistsInG2 = checkIfCustomerExistsInG2;
386
- var updateCustomerWithG2Info = function (customerID, space, org, addToDB, skipEmailCheck) {
387
- if (addToDB === void 0) { addToDB = true; }
388
- if (skipEmailCheck === void 0) { skipEmailCheck = false; }
389
- return __awaiter(void 0, void 0, void 0, function () {
390
- var token, api, delay1, updatedCustomerQuery, G2RequestRes, updatedCustomer, delay4, e_5;
391
- return __generator(this, function (_a) {
392
- switch (_a.label) {
393
- case 0:
394
- console.log('===============');
395
- console.log('in v2 sdk updateCustomerWithG2Info');
396
- _a.label = 1;
397
- case 1:
398
- _a.trys.push([1, 6, , 7]);
399
- token = (0, context_1.getSpaceToken)(space, org);
400
- if (!!!token)
401
- return [2];
402
- api = __1.API_URL;
403
- console.log('----------------------');
404
- delay1 = (0, moment_1.default)();
405
- return [4, fetch("".concat(api, "/services/g2/customers/").concat(customerID, "/convert"), {
406
- method: 'GET',
407
- headers: {
408
- 'Content-Type': 'application/json',
409
- Authorization: "Bearer ".concat(token)
410
- }
411
- })];
412
- case 2:
413
- updatedCustomerQuery = _a.sent();
414
- console.log('called api to update customer delay: ', (0, moment_1.default)().diff(delay1, 'seconds'));
415
- if (!!updatedCustomerQuery.status && updatedCustomerQuery.status !== 200)
416
- throw "Error - ".concat(updatedCustomerQuery.status);
417
- return [4, updatedCustomerQuery.json()];
418
- case 3:
419
- G2RequestRes = _a.sent();
420
- console.log('G2RequestRes: ', G2RequestRes);
421
- if (!!!G2RequestRes)
422
- throw 'Error - no data';
423
- updatedCustomer = (0, anonymisation_1.hideG2CustomerInfoIfNeeded)(G2RequestRes.customer);
424
- if (!!!addToDB) return [3, 5];
425
- console.log('----------------------');
426
- delay4 = (0, moment_1.default)();
427
- return [4, space.addCustomer(updatedCustomer, undefined, skipEmailCheck)];
428
- case 4:
429
- _a.sent();
430
- console.log('saving to database delay: ', (0, moment_1.default)().diff(delay4, 'seconds'));
431
- _a.label = 5;
432
- case 5:
433
- console.log('=====================');
434
- return [2, updatedCustomer];
435
- case 6:
436
- e_5 = _a.sent();
437
- console.log('error on updating customer info with G2: ', e_5.toString());
438
- return [2];
439
- case 7: return [2];
440
- }
441
- });
442
- });
443
- };
444
- exports.updateCustomerWithG2Info = updateCustomerWithG2Info;
445
- var getG2DiscountFromCode = function (code) {
446
- var onlyNb = code.replace(/[^0-9]/gi, '');
447
- return !!!onlyNb || !!isNaN(Number(onlyNb)) ? undefined : (0, toNumber_1.default)(onlyNb);
448
- };
449
- exports.getG2DiscountFromCode = getG2DiscountFromCode;
450
- var getG2CustomerTypeFromCode = function (code) {
451
- var parsedCode = code;
452
- var possiblePrefixes = ['BASE', 'PAYS', 'RENC'];
453
- for (var _i = 0, possiblePrefixes_1 = possiblePrefixes; _i < possiblePrefixes_1.length; _i++) {
454
- var prefix = possiblePrefixes_1[_i];
455
- parsedCode = parsedCode.replace(prefix, '');
456
- }
457
- parsedCode = parsedCode.replace(/[0-9]/gi, '');
458
- var possibleTypes = ['AM', 'AL', 'AS', 'AMN'];
459
- var checkWithPossibleTypes = function (codeToCheck, removeFrom) {
460
- if (!!!possibleTypes.includes(codeToCheck)) {
461
- if (codeToCheck.length === 1)
462
- return '';
463
- if (removeFrom == 'start') {
464
- return checkWithPossibleTypes(codeToCheck.substring(1), removeFrom);
465
- }
466
- else {
467
- return checkWithPossibleTypes(codeToCheck.replace(/.$/, ''), removeFrom);
468
- }
469
- }
470
- return codeToCheck;
471
- };
472
- if (!!parsedCode) {
473
- var removedValues = checkWithPossibleTypes(parsedCode, 'end');
474
- if (!!!removedValues)
475
- removedValues = checkWithPossibleTypes(parsedCode, 'start');
476
- parsedCode = removedValues;
477
- }
478
- return parsedCode;
479
- };
480
- exports.getG2CustomerTypeFromCode = getG2CustomerTypeFromCode;
481
- var fetchCustomPriceList = function (spaceToken, customerId, ignoreDashPriceList, onlyForProductSlugs) { return __awaiter(void 0, void 0, void 0, function () {
482
- var prices, api, g2PriceListQuery, e_6;
483
- return __generator(this, function (_a) {
484
- switch (_a.label) {
485
- case 0:
486
- prices = [];
487
- _a.label = 1;
488
- case 1:
489
- _a.trys.push([1, 4, , 5]);
490
- api = __1.API_URL;
491
- return [4, fetch("".concat(api, "/services/g2/customers/").concat(customerId, "/customPrices"), {
492
- method: 'POST',
493
- headers: {
494
- 'Content-Type': 'application/json',
495
- Authorization: "Bearer ".concat(spaceToken)
496
- },
497
- body: JSON.stringify(__assign({ ignoreDashPriceList: !!ignoreDashPriceList }, (!!onlyForProductSlugs ? { onlyForProductSlugs: onlyForProductSlugs } : {})))
498
- })];
499
- case 2:
500
- g2PriceListQuery = _a.sent();
501
- return [4, g2PriceListQuery.json()];
502
- case 3:
503
- prices = _a.sent();
504
- if (!!g2PriceListQuery.status && g2PriceListQuery.status !== 200)
505
- throw "Error - ".concat(g2PriceListQuery.status);
506
- if (!!!prices || !!!prices.length)
507
- throw 'Error - no data';
508
- return [3, 5];
509
- case 4:
510
- e_6 = _a.sent();
511
- console.log('error on fetching custom prices:', e_6.toString());
512
- return [3, 5];
513
- case 5: return [2, prices];
514
- }
515
- });
516
- }); };
517
- exports.fetchCustomPriceList = fetchCustomPriceList;
518
- var getCustomPriceList = function (space, idClient, ignoreDashPriceList, onlyForProductSlugs) { return __awaiter(void 0, void 0, void 0, function () {
519
- var priceList, escomptesClient, ententesClient, G2Auth, G2Service, customerReq, customers, allG2Customers, g2Customer, today_1, allCurrentEntentes, mostRecent, _a, noClient, groupeDeClient, classePrix_1, customerType_1, normalCustomerEscompte, escomptesNumClient, numClientResults, e_7, escomptesGroupeClient, groupeClientResults, groupeClientEscomptes, noDuplicates, e_8, allProducts, batchResults, _i, _b, group, query, e_9, allCustomerGroups, customerGroupByPriceClass_1, _c, allProducts_1, prod, data, type, _loop_2, _d, _e, decli, e_10;
520
- return __generator(this, function (_f) {
521
- switch (_f.label) {
522
- case 0:
523
- priceList = [];
524
- escomptesClient = [];
525
- ententesClient = [];
526
- G2Auth = '';
527
- G2Service = space.services({ field: 'external_service_name', value: 'G2' });
528
- if (!!G2Service && !!G2Service.length) {
529
- G2Auth = G2Service[0].external_service_infos.api;
530
- }
531
- if (!!!G2Auth)
532
- throw "Error on fetching G2 API info from space";
533
- _f.label = 1;
534
- case 1:
535
- _f.trys.push([1, 28, , 29]);
536
- return [4, fetch("https://g2api.groupericher.com/api/clients?noClient=".concat(idClient), {
537
- method: 'GET',
538
- headers: {
539
- Authorization: G2Auth
540
- }
541
- })];
542
- case 2:
543
- customerReq = _f.sent();
544
- return [4, customerReq.json()];
545
- case 3:
546
- customers = _f.sent();
547
- if (customerReq.status !== 200) {
548
- throw "Error on fetching customers from G2 API: ".concat(customerReq.status);
549
- }
550
- allG2Customers = customers;
551
- g2Customer = allG2Customers[0];
552
- if (!!!g2Customer)
553
- return [2, priceList];
554
- today_1 = (0, moment_1.default)();
555
- allCurrentEntentes = g2Customer.soumissions.filter(function (s) {
556
- return !!s.soumission.actif &&
557
- !!s.soumission.dateDébut &&
558
- !!s.soumission.dateFin &&
559
- today_1.isBetween((0, moment_1.default)(s.soumission.dateDébut), (0, moment_1.default)(s.soumission.dateFin));
560
- });
561
- mostRecent = (0, orderBy_1.default)(allCurrentEntentes, function (e) { return (0, moment_1.default)(e.soumission.dateDébut).unix(); }, 'desc');
562
- if (!!mostRecent) {
563
- ententesClient = mostRecent;
564
- }
565
- _a = g2Customer.client, noClient = _a.noClient, groupeDeClient = _a.groupeDeClient, classePrix_1 = _a.classePrix;
566
- customerType_1 = !!!groupeDeClient ? undefined : (0, exports.getG2CustomerTypeFromCode)(groupeDeClient);
567
- normalCustomerEscompte = !!!groupeDeClient ? undefined : (0, exports.getG2DiscountFromCode)(groupeDeClient);
568
- _f.label = 4;
569
- case 4:
570
- _f.trys.push([4, 7, , 8]);
571
- return [4, fetch("https://g2api.groupericher.com/api/escompteclient?code=".concat(noClient), {
572
- method: 'GET',
573
- headers: {
574
- Authorization: G2Auth
575
- }
576
- })];
577
- case 5:
578
- escomptesNumClient = _f.sent();
579
- return [4, escomptesNumClient.json()];
580
- case 6:
581
- numClientResults = _f.sent();
582
- if (!!numClientResults.status && numClientResults.status !== 200) {
583
- console.log("Error on fetching escompteClients from G2 API with noClient ".concat(noClient, ": ").concat(numClientResults.status));
584
- }
585
- else {
586
- escomptesClient = __spreadArray(__spreadArray([], escomptesClient, true), numClientResults.map(function (r) { return r.escompteClient; }), true);
587
- }
588
- return [3, 8];
589
- case 7:
590
- e_7 = _f.sent();
591
- console.log('error on fetching escomptesClient from G2: ', e_7.toString());
592
- return [3, 8];
593
- case 8:
594
- _f.trys.push([8, 13, , 14]);
595
- if (!(!!groupeDeClient && groupeDeClient !== noClient)) return [3, 11];
596
- return [4, fetch("https://g2api.groupericher.com/api/escompteclient?code=".concat(groupeDeClient), {
597
- method: 'GET',
598
- headers: {
599
- Authorization: G2Auth
600
- }
601
- })];
602
- case 9:
603
- escomptesGroupeClient = _f.sent();
604
- return [4, escomptesGroupeClient.json()];
605
- case 10:
606
- groupeClientResults = _f.sent();
607
- if (!!groupeClientResults.statuts && groupeClientResults.status !== 200) {
608
- console.log("Error on fetching escompteClients from G2 API with groupeClient ".concat(groupeDeClient, ": ").concat(groupeClientResults.status));
609
- }
610
- else {
611
- groupeClientEscomptes = groupeClientResults.map(function (r) { return r.escompteClient; });
612
- noDuplicates = groupeClientEscomptes.filter(function (es) { return !!!es.code2 || !!!escomptesClient.some(function (e) { return !!e.code2 && e.code2 === es.code2; }); });
613
- escomptesClient = __spreadArray(__spreadArray([], escomptesClient, true), noDuplicates, true);
614
- }
615
- return [3, 12];
616
- case 11:
617
- console.log('ignoring groupeClient escomptes because id and groupeClient are same');
618
- _f.label = 12;
619
- case 12: return [3, 14];
620
- case 13:
621
- e_8 = _f.sent();
622
- console.log('error on fetching escomptesClient from G2: ', e_8.toString());
623
- return [3, 14];
624
- case 14:
625
- allProducts = [];
626
- _f.label = 15;
627
- case 15:
628
- _f.trys.push([15, 26, , 27]);
629
- if (!(!!onlyForProductSlugs && !!onlyForProductSlugs.length)) return [3, 23];
630
- if (!(onlyForProductSlugs.length <= 10)) return [3, 17];
631
- return [4, space.indexedProducts.get({
632
- query: [{ field: 'slug', operator: 'in', value: onlyForProductSlugs }]
633
- })];
634
- case 16:
635
- allProducts = _f.sent();
636
- return [3, 22];
637
- case 17:
638
- batchResults = [];
639
- _i = 0, _b = (0, chunk_1.default)(onlyForProductSlugs, 10);
640
- _f.label = 18;
641
- case 18:
642
- if (!(_i < _b.length)) return [3, 21];
643
- group = _b[_i];
644
- return [4, space.indexedProducts.get({
645
- query: [{ field: 'slug', operator: 'in', value: group }]
646
- })];
647
- case 19:
648
- query = _f.sent();
649
- batchResults.push(query);
650
- _f.label = 20;
651
- case 20:
652
- _i++;
653
- return [3, 18];
654
- case 21:
655
- allProducts = (0, flatten_1.default)(batchResults);
656
- _f.label = 22;
657
- case 22: return [3, 25];
658
- case 23: return [4, space.indexedProducts.get({
659
- query: [{ field: 'draft', operator: '!=', value: true }]
660
- })];
661
- case 24:
662
- allProducts = _f.sent();
663
- _f.label = 25;
664
- case 25: return [3, 27];
665
- case 26:
666
- e_9 = _f.sent();
667
- console.log('error on fetching all products : ', e_9.toString());
668
- return [3, 27];
669
- case 27:
670
- if (!!!allProducts.length)
671
- return [2, priceList];
672
- allCustomerGroups = space.preferences.customers.groups() || [];
673
- customerGroupByPriceClass_1 = !!classePrix_1
674
- ? allCustomerGroups.find(function (g) { return g.external_price_list_slug == classePrix_1.toString(); })
675
- : undefined;
676
- for (_c = 0, allProducts_1 = allProducts; _c < allProducts_1.length; _c++) {
677
- prod = allProducts_1[_c];
678
- data = prod.data();
679
- if (!!!data || !!data.draft)
680
- continue;
681
- type = !!data.attributes && data.attributes[data_2.AttributesIdEnumGR.TYPE];
682
- _loop_2 = function (decli) {
683
- var isSpecificBetonProd = !!decli.external_values && ['BOLDUC', 'RINOX', 'RICHER', 'OAKS'].includes(decli.external_values['catégorie2']);
684
- var shouldApplyNormalEscompte = !!!data.is_service && !!isSpecificBetonProd;
685
- var isNetPrice = !!decli.external_values && decli.external_values['catégorie2'] === 'NET';
686
- var sku = decli.sku;
687
- var basePrice = (0, toNumber_1.default)(decli.regular_price.amount);
688
- if (!!decli.prices_list && !!decli.prices_list.length && !!!ignoreDashPriceList) {
689
- var priceListItemToUse = undefined;
690
- var samePriceClassInPriceList = !!customerGroupByPriceClass_1
691
- ? decli.prices_list.find(function (pl) { return pl.group_id == customerGroupByPriceClass_1.slug; })
692
- : undefined;
693
- if (!!samePriceClassInPriceList && !isNaN((0, toNumber_1.default)(samePriceClassInPriceList.amount))) {
694
- priceListItemToUse = samePriceClassInPriceList;
695
- }
696
- else if (!!groupeDeClient) {
697
- var samePriceInPriceList = !!customerType_1
698
- ? decli.prices_list.find(function (p) { return !!p.external_slug && p.external_slug === customerType_1; })
699
- : undefined;
700
- var proPriceInPriceList = decli.prices_list.find(function (p) { return p.group_id === 'aspirant'; });
701
- if (!!samePriceInPriceList && !isNaN((0, toNumber_1.default)(samePriceInPriceList.amount))) {
702
- priceListItemToUse = samePriceClassInPriceList;
703
- }
704
- else if (!!proPriceInPriceList && !isNaN((0, toNumber_1.default)(proPriceInPriceList.amount))) {
705
- priceListItemToUse = proPriceInPriceList;
706
- }
707
- }
708
- if (!!priceListItemToUse) {
709
- basePrice = (0, toNumber_1.default)(priceListItemToUse.amount);
710
- if (!!!isNetPrice) {
711
- shouldApplyNormalEscompte = !!priceListItemToUse.custom_promo_applies && !!isSpecificBetonProd;
712
- isNetPrice = !!priceListItemToUse.is_net_price;
713
- }
714
- }
715
- }
716
- var comparePrices = [
717
- __assign(__assign({ price: basePrice, type: G2_1.CustomPriceItemTypeEnum.REG }, (!!(0, object_1.recursiveCheckObject)(decli, 'external_values.catégorie1')
718
- ? { code1: decli.external_values.catégorie1 }
719
- : {})), (!!(0, object_1.recursiveCheckObject)(decli, 'external_values.catégorie2')
720
- ? { code2: decli.external_values.catégorie2 }
721
- : {}))
722
- ];
723
- var foundEntenteForProduct = false;
724
- if (!!ententesClient.length) {
725
- for (var _g = 0, ententesClient_1 = ententesClient; _g < ententesClient_1.length; _g++) {
726
- var entente = ententesClient_1[_g];
727
- if (!!foundEntenteForProduct)
728
- break;
729
- var sameProd = entente.articles.find(function (a) { return !!a.article.noArticle && a.article.noArticle === sku; });
730
- if (!!!sameProd) {
731
- sameProd = entente.articles.find(function (a) { return !!a.article.noArticle && a.article.noArticle.includes(sku); });
732
- }
733
- if (!!sameProd) {
734
- var priceToSet = typeof sameProd.article.prixUnitaireNet === 'number'
735
- ? sameProd.article.prixUnitaireNet
736
- : typeof sameProd.article.prixUnitaire === 'number'
737
- ? sameProd.article.prixUnitaire
738
- : undefined;
739
- if (typeof priceToSet === 'number') {
740
- foundEntenteForProduct = true;
741
- comparePrices.push(__assign(__assign({ price: (0, toNumber_1.default)(priceToSet), type: G2_1.CustomPriceItemTypeEnum.ENTENTE }, (!!decli.external_values ? { code2: decli.external_values['catégorie2'] } : {})), (!!sameProd.article.pourcEscompte
742
- ? __assign(__assign({}, (typeof sameProd.article.prixUnitaire === 'number'
743
- ? { reg: sameProd.article.prixUnitaire }
744
- : {})), { percent: sameProd.article.pourcEscompte }) : {})));
745
- }
746
- }
747
- }
748
- }
749
- if (!!escomptesClient.length) {
750
- var findBestDeal = function (escomptesToCheck) {
751
- var bestDeal = (0, maxBy_1.default)(escomptesToCheck, function (escompte) { return (0, toNumber_1.default)(escompte.pourcEscompte); });
752
- if (!!bestDeal) {
753
- comparePrices.push(__assign({ price: basePrice * ((100 - (0, toNumber_1.default)(bestDeal.pourcEscompte)) / 100), type: G2_1.CustomPriceItemTypeEnum.ESCOMPTE, percent: (0, toNumber_1.default)(bestDeal.pourcEscompte), code1: bestDeal.code1 }, (!!bestDeal.code2 ? { code2: bestDeal.code2 } : {})));
754
- }
755
- };
756
- if (!!!foundEntenteForProduct) {
757
- if (!!isNetPrice) {
758
- var sameCat1Escompte = escomptesClient.filter(function (e) {
759
- if (!!!e.code2)
760
- return false;
761
- return decli.external_values && e.code2 === decli.external_values['catégorie1'] && e.code2 == 'DALLE';
762
- });
763
- if (!!sameCat1Escompte && !!sameCat1Escompte.length) {
764
- findBestDeal(sameCat1Escompte);
765
- }
766
- }
767
- else {
768
- var no2ndCode = escomptesClient.filter(function (e) { return !!!e.code2; });
769
- if (!!no2ndCode.length) {
770
- findBestDeal(no2ndCode);
771
- }
772
- var sameSkuEscompte = escomptesClient.filter(function (e) { return e.code2 && e.code2 === sku; });
773
- if (!!!sameSkuEscompte.length) {
774
- sameSkuEscompte = escomptesClient.filter(function (e) { return e.code2 && e.code2.includes(sku); });
775
- }
776
- if (!!sameSkuEscompte.length) {
777
- findBestDeal(sameSkuEscompte);
778
- }
779
- if (!!!sameSkuEscompte.length) {
780
- var sameBrandEscompte = escomptesClient.filter(function (e) {
781
- if (!!!e.code2)
782
- return;
783
- return (decli.external_values &&
784
- (e.code2 === decli.external_values['catégorie2'] || e.code2 === decli.external_values['catégorie1']));
785
- });
786
- if (!!sameBrandEscompte) {
787
- findBestDeal(sameBrandEscompte);
788
- }
789
- }
790
- }
791
- }
792
- }
793
- comparePrices = (0, uniqBy_1.default)(comparePrices, function (p) { return p.price; });
794
- var lowestPrice = (0, minBy_1.default)(comparePrices, function (p) { return p.price; });
795
- var customPriceItemToPush = undefined;
796
- if (!!lowestPrice) {
797
- customPriceItemToPush = __assign(__assign({ sku: sku, parent_slug: data.slug, name: "".concat(!!decli.parent_name &&
798
- !!!(0, locale_1.getPrincipalWord)(decli.name, space).trim().includes((0, locale_1.getPrincipalWord)(decli.parent_name).trim())
799
- ? (0, locale_1.getPrincipalWord)(decli.name, space) + ' - '
800
- : '').concat((0, locale_1.getPrincipalWord)(decli.name, space)), reg: basePrice }, (!!type
801
- ? {
802
- prod_type: type[0]
803
- }
804
- : {})), lowestPrice);
805
- }
806
- if (!!customPriceItemToPush) {
807
- priceList.push(customPriceItemToPush);
808
- }
809
- };
810
- for (_d = 0, _e = data.declinations.filter(function (d) { return !!!d.is_sample; }); _d < _e.length; _d++) {
811
- decli = _e[_d];
812
- _loop_2(decli);
813
- }
814
- }
815
- return [2, priceList];
816
- case 28:
817
- e_10 = _f.sent();
818
- console.log('error on fetching customer from G2: ', e_10.toString());
819
- return [2, e_10.toString()];
820
- case 29: return [2];
821
- }
822
- });
823
- }); };
824
- exports.getCustomPriceList = getCustomPriceList;
825
- var getItemEscompteSupp = function (customPriceList, item) {
826
- var code2InItem = (0, object_1.recursiveCheckObject)(item, "external_values.cat\u00E9gorie2");
827
- var code2InPriceList = undefined;
828
- var customPriceItem = customPriceList.find(function (priceItem) { return priceItem.sku === item.sku; });
829
- if (!!customPriceItem && !!customPriceItem.code2) {
830
- code2InPriceList = customPriceItem.code2;
831
- }
832
- var code2ToCheck = code2InPriceList !== null && code2InPriceList !== void 0 ? code2InPriceList : code2InItem;
833
- if (!!!code2ToCheck)
834
- return;
835
- var foundEsc = customPriceList.find(function (priceItem) { return priceItem.sku === 'ESC' + code2ToCheck; });
836
- if (!!!foundEsc && !!code2InItem) {
837
- foundEsc = customPriceList.find(function (priceItem) { return priceItem.sku === 'ESC' + code2InItem; });
838
- }
839
- return foundEsc;
840
- };
841
- exports.getItemEscompteSupp = getItemEscompteSupp;
842
- var groupArrayOfItemsByItemAndCorrespondingEscompteItem = function (items) {
843
- return (0, flatten_1.default)(Object.values((0, groupBy_1.default)(items, function (item) { return ((0, exports.isEscompteSuppItem)(item.sku) ? (0, string_1.splitFromFirstChar)('-', item.sku)[1] : item.sku); })));
844
- };
845
- exports.groupArrayOfItemsByItemAndCorrespondingEscompteItem = groupArrayOfItemsByItemAndCorrespondingEscompteItem;
846
- var buildEscompteSuppCartItem = function (escompteItems, customPriceList, escompteSuppItem, item) {
847
- if (!!!escompteItems[0])
848
- return;
849
- var priceToUse = (0, products_1.getLowestPrice)(item);
850
- var escompteDecli = escompteItems[0].data().declinations.find(function (decli) { return decli.sku === escompteSuppItem.sku; });
851
- if (!!!escompteDecli)
852
- return;
853
- var sameInCustomPriceList = customPriceList.find(function (c) { return c.sku === escompteDecli.sku; });
854
- if (!!sameInCustomPriceList &&
855
- sameInCustomPriceList.type === G2_1.CustomPriceItemTypeEnum.REG &&
856
- sameInCustomPriceList.price === 0)
857
- return;
858
- var escompteEquivalent = (0, exports.checkForCustomPriceEquivalent)(escompteDecli, customPriceList);
859
- return __assign(__assign({}, escompteEquivalent), { is_upsell_of_sku: item.sku, is_temp_prod: true, price_override: true, qte_override: true, qte: item.qte * priceToUse.price.amount, sku: "".concat(escompteEquivalent.sku, "-").concat(item.sku), regular_price: (0, products_1.getLowestPrice)(escompteEquivalent).price });
860
- };
861
- exports.buildEscompteSuppCartItem = buildEscompteSuppCartItem;
862
- var isEscompteSuppItem = function (itemSku) {
863
- return Object.values(G2_1.EscomptesDeclinationSkusEnum).some(function (subString) { return itemSku.includes(subString); });
864
- };
865
- exports.isEscompteSuppItem = isEscompteSuppItem;
866
- var checkForCustomPriceEquivalent = function (item, customPriceList, options) {
867
- var _a;
868
- if (options === void 0) { options = {}; }
869
- var sameInCustomPriceList = customPriceList.find(function (i) { return i.sku === item.sku; });
870
- if (!!!sameInCustomPriceList)
871
- return item;
872
- if (!!item.price_overide && sameInCustomPriceList.type === G2_1.CustomPriceItemTypeEnum.REG)
873
- return item;
874
- var regular_price = item.regular_price, promo_price = item.promo_price, discount_price = item.discount_price, tier_pricing = item.tier_pricing, rest = __rest(item, ["regular_price", "promo_price", "discount_price", "tier_pricing"]);
875
- var isReg = sameInCustomPriceList.type === G2_1.CustomPriceItemTypeEnum.REG;
876
- var isEntente = sameInCustomPriceList.type === G2_1.CustomPriceItemTypeEnum.ENTENTE;
877
- var isPA = !!sameInCustomPriceList.PA_percent;
878
- var hasOverriddenPrice = item.price_override;
879
- var shouldUseCustomPriceForRegPrice = (!!isReg && !!!sameInCustomPriceList.percent) || (!!options.setNetPriceAsRegular && !!isEntente);
880
- return __assign(__assign(__assign(__assign({}, rest), { regular_price: __assign(__assign(__assign({}, regular_price), { amount: !!item.price_override
881
- ? regular_price.amount
882
- : (!!isReg || !!isEntente) && sameInCustomPriceList.price == 0
883
- ? 0
884
- : !!shouldUseCustomPriceForRegPrice
885
- ? sameInCustomPriceList.price
886
- : sameInCustomPriceList.reg }), (sameInCustomPriceList.type !== G2_1.CustomPriceItemTypeEnum.REG && !!!regular_price.price_type
887
- ? { price_type: sameInCustomPriceList.type }
888
- : {})) }), (!!!hasOverriddenPrice
889
- ? __assign(__assign({}, (sameInCustomPriceList.percent || !!!isReg
890
- ? __assign({}, (!!sameInCustomPriceList.percent &&
891
- [G2_1.CustomPriceItemTypeEnum.ESCOMPTE, G2_1.CustomPriceItemTypeEnum.NORMAL_ESCOMPTE].includes(sameInCustomPriceList.type)
892
- ? {
893
- promo_price: __assign(__assign({}, (item.promo_price || { currency: 'CAD' })), { amount: sameInCustomPriceList.price, price_type: sameInCustomPriceList.type })
894
- }
895
- : !!!options.setNetPriceAsRegular
896
- ? {
897
- discount_price: __assign(__assign({}, (item.discount_price || { currency: 'CAD' })), { amount: sameInCustomPriceList.price, price_type: sameInCustomPriceList.type })
898
- }
899
- : {})) : !!item.discount_price && item.discount_price.price_type === 'tierpricing' && !!!options.removeTierPricing
900
- ? {
901
- discount_price: __assign(__assign({}, item.discount_price), { original_amount: !!isReg || !!!options.setNetPriceAsRegular ? null : sameInCustomPriceList.price })
902
- }
903
- : {})), (!!isPA
904
- ? {
905
- promo_price: __assign(__assign({}, (item.promo_price || { currency: 'CAD' })), { amount: (_a = sameInCustomPriceList.PA_price) !== null && _a !== void 0 ? _a : sameInCustomPriceList.price, price_type: sameInCustomPriceList.type, percent_applied: sameInCustomPriceList.PA_percent }),
906
- discount_price: __assign(__assign({}, (item.discount_price || { currency: 'CAD' })), { amount: sameInCustomPriceList.price, price_type: sameInCustomPriceList.type, percent_applied: sameInCustomPriceList.percent })
907
- }
908
- : {})) : {})), (!!!options.removeTierPricing && !!tier_pricing
909
- ? {
910
- tier_pricing: tier_pricing
911
- }
912
- : {}));
913
- };
914
- exports.checkForCustomPriceEquivalent = checkForCustomPriceEquivalent;
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __rest = (this && this.__rest) || function (s, e) {
50
+ var t = {};
51
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
52
+ t[p] = s[p];
53
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
54
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
55
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
56
+ t[p[i]] = s[p[i]];
57
+ }
58
+ return t;
59
+ };
60
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
61
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
62
+ if (ar || !(i in from)) {
63
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
64
+ ar[i] = from[i];
65
+ }
66
+ }
67
+ return to.concat(ar || Array.prototype.slice.call(from));
68
+ };
69
+ var __importDefault = (this && this.__importDefault) || function (mod) {
70
+ return (mod && mod.__esModule) ? mod : { "default": mod };
71
+ };
72
+ Object.defineProperty(exports, "__esModule", { value: true });
73
+ exports.checkForCustomPriceEquivalent = exports.isEscompteSuppItem = exports.buildEscompteSuppCartItem = exports.groupArrayOfItemsByItemAndCorrespondingEscompteItem = exports.getItemEscompteSupp = exports.getCustomPriceList = exports.fetchCustomPriceList = exports.getG2CustomerTypeFromCode = exports.getG2DiscountFromCode = exports.updateCustomerWithG2Info = exports.checkIfCustomerExistsInG2 = exports.transformG2CustomerToCustomer = exports.getAllNewOrUpdatedCustomersFromG2 = exports.getG2Customer = exports.getG2ProductExternalValues = void 0;
74
+ var uuid_1 = require("uuid");
75
+ var crypto_js_1 = __importDefault(require("crypto-js"));
76
+ var moment_1 = __importDefault(require("moment"));
77
+ var maxBy_1 = __importDefault(require("lodash/maxBy"));
78
+ var orderBy_1 = __importDefault(require("lodash/orderBy"));
79
+ var toNumber_1 = __importDefault(require("lodash/toNumber"));
80
+ var minBy_1 = __importDefault(require("lodash/minBy"));
81
+ var uniqBy_1 = __importDefault(require("lodash/uniqBy"));
82
+ var chunk_1 = __importDefault(require("lodash/chunk"));
83
+ var Customer_1 = require("../../../Interfaces/Customer");
84
+ var G2_1 = require("../../../Interfaces/G2");
85
+ var data_1 = require("../../../utils/data");
86
+ var object_1 = require("../../../utils/object");
87
+ var context_1 = require("../../../utils/context");
88
+ var locale_1 = require("../../../utils/locale");
89
+ var data_2 = require("../interfaces/data");
90
+ var flatten_1 = __importDefault(require("lodash/flatten"));
91
+ var groupBy_1 = __importDefault(require("lodash/groupBy"));
92
+ var string_1 = require("../../../utils/string");
93
+ var products_1 = require("../../../utils/products");
94
+ var __1 = require("../../..");
95
+ var anonymisation_1 = require("../../../utils/anonymisation");
96
+ var getG2ProductExternalValues = function (sku, g2Service, space, org) { return __awaiter(void 0, void 0, void 0, function () {
97
+ var g2Auth, externalValues, api, token, g2ProductsQuery, productG2, catégorie1, catégorie2, e_1;
98
+ var _a, _b;
99
+ return __generator(this, function (_c) {
100
+ switch (_c.label) {
101
+ case 0:
102
+ g2Auth = g2Service.external_service_infos.api;
103
+ if (!!!g2Auth)
104
+ return [2];
105
+ externalValues = undefined;
106
+ api = __1.API_URL;
107
+ token = (0, context_1.getSpaceToken)(space, org);
108
+ _c.label = 1;
109
+ case 1:
110
+ _c.trys.push([1, 4, , 5]);
111
+ return [4, fetch("".concat(api, "/services/g2/products/").concat(sku), {
112
+ method: 'GET',
113
+ headers: {
114
+ 'Content-Type': 'application/json',
115
+ Authorization: "Bearer ".concat(token)
116
+ }
117
+ })];
118
+ case 2:
119
+ g2ProductsQuery = _c.sent();
120
+ return [4, g2ProductsQuery.json()];
121
+ case 3:
122
+ productG2 = _c.sent();
123
+ if (!!productG2 && !!productG2[0]) {
124
+ catégorie1 = (_a = productG2[0].article['catégorie1']) !== null && _a !== void 0 ? _a : undefined;
125
+ catégorie2 = (_b = productG2[0].article['catégorie2']) !== null && _b !== void 0 ? _b : undefined;
126
+ if (!!catégorie1 || catégorie2) {
127
+ externalValues = { catégorie1: catégorie1, catégorie2: catégorie2 };
128
+ }
129
+ }
130
+ return [2, externalValues];
131
+ case 4:
132
+ e_1 = _c.sent();
133
+ console.log('error on fetching external_values for sku from G2: ', e_1.toString());
134
+ return [3, 5];
135
+ case 5: return [2];
136
+ }
137
+ });
138
+ }); };
139
+ exports.getG2ProductExternalValues = getG2ProductExternalValues;
140
+ var getG2Customer = function (spaceToken, customerId) { return __awaiter(void 0, void 0, void 0, function () {
141
+ var allG2Customers, api, g2CustomersQuery, G2RequestRes, e_2;
142
+ return __generator(this, function (_a) {
143
+ switch (_a.label) {
144
+ case 0:
145
+ allG2Customers = [];
146
+ _a.label = 1;
147
+ case 1:
148
+ _a.trys.push([1, 4, , 5]);
149
+ api = __1.API_URL;
150
+ return [4, fetch("".concat(api, "/services/g2/customers/").concat(customerId), {
151
+ method: 'GET',
152
+ headers: {
153
+ 'Content-Type': 'application/json',
154
+ Authorization: "Bearer ".concat(spaceToken)
155
+ }
156
+ })];
157
+ case 2:
158
+ g2CustomersQuery = _a.sent();
159
+ return [4, g2CustomersQuery.json()];
160
+ case 3:
161
+ G2RequestRes = _a.sent();
162
+ if (!!g2CustomersQuery.status && g2CustomersQuery.status !== 200)
163
+ throw "Error - ".concat(g2CustomersQuery.status);
164
+ if (!!!G2RequestRes || !!!G2RequestRes.length)
165
+ throw 'Error - no data';
166
+ allG2Customers = G2RequestRes;
167
+ return [3, 5];
168
+ case 4:
169
+ e_2 = _a.sent();
170
+ console.log('error on querying G2: ', e_2);
171
+ return [3, 5];
172
+ case 5: return [2, allG2Customers];
173
+ }
174
+ });
175
+ }); };
176
+ exports.getG2Customer = getG2Customer;
177
+ var getAllNewOrUpdatedCustomersFromG2 = function (space, allG2Customers) { return __awaiter(void 0, void 0, void 0, function () {
178
+ var allCurrentCustomers, customerQuery, e_3, allNewCustomers, allUpdatedCustomers, _loop_1, _i, allG2Customers_1, g2;
179
+ return __generator(this, function (_a) {
180
+ switch (_a.label) {
181
+ case 0:
182
+ allCurrentCustomers = [];
183
+ _a.label = 1;
184
+ case 1:
185
+ _a.trys.push([1, 3, , 4]);
186
+ return [4, space.customers.get()];
187
+ case 2:
188
+ customerQuery = _a.sent();
189
+ if (!!customerQuery && !!customerQuery.length)
190
+ throw 'Error - no data';
191
+ allCurrentCustomers = customerQuery.map(function (customer) { return customer.data(); });
192
+ return [3, 4];
193
+ case 3:
194
+ e_3 = _a.sent();
195
+ console.log('error on fetching customers: ', e_3.toString());
196
+ return [2];
197
+ case 4:
198
+ allNewCustomers = [];
199
+ allUpdatedCustomers = [];
200
+ _loop_1 = function (g2) {
201
+ var sameCustomerInDb = allCurrentCustomers.find(function (c) { return !!c.id && c.id.toUpperCase() === g2.client.noClient.toUpperCase(); });
202
+ if (!!!sameCustomerInDb) {
203
+ allNewCustomers.push((0, exports.transformG2CustomerToCustomer)(g2));
204
+ return "continue";
205
+ }
206
+ if (!!(0, object_1.difference)(sameCustomerInDb, (0, exports.transformG2CustomerToCustomer)(g2))) {
207
+ allUpdatedCustomers.push((0, exports.transformG2CustomerToCustomer)(g2, sameCustomerInDb));
208
+ }
209
+ };
210
+ for (_i = 0, allG2Customers_1 = allG2Customers; _i < allG2Customers_1.length; _i++) {
211
+ g2 = allG2Customers_1[_i];
212
+ _loop_1(g2);
213
+ }
214
+ return [2, { new: allNewCustomers, updated: allUpdatedCustomers }];
215
+ }
216
+ });
217
+ }); };
218
+ exports.getAllNewOrUpdatedCustomersFromG2 = getAllNewOrUpdatedCustomersFromG2;
219
+ var transformG2CustomerToCustomer = function (g2Customer, prevCustomer, allGroups) {
220
+ var client = g2Customer.client;
221
+ var getCustomerNameInfo = function (aName) {
222
+ return {
223
+ customer_firstname: aName.replace(/[0-9]/g, '').replace(/\-\-/g, '').split(' ')[0].trim(),
224
+ customer_lastname: aName
225
+ .replace(/[0-9]/g, '')
226
+ .replace(/\-\-/g, '')
227
+ .trim()
228
+ .split(' ')
229
+ .map(function (aString, key) { return (!!!key ? undefined : aString); })
230
+ .filter(function (s) { return !!s; })
231
+ .join(' '),
232
+ customer_phone: aName.replace(/[^0-9]/g, '').trim()
233
+ };
234
+ };
235
+ var getOtherCustomerInfo = function (propsStr) {
236
+ var clientToCheck = client;
237
+ if (!!!clientToCheck[propsStr])
238
+ return {};
239
+ var email = !!clientToCheck["".concat(propsStr, "Email")] ? clientToCheck["".concat(propsStr, "Email")].toLowerCase() : undefined;
240
+ var fax = !!clientToCheck["".concat(propsStr, "FAX")] ? (0, data_1.formatPhoneNumberDB)(clientToCheck["".concat(propsStr, "FAX")]) : undefined;
241
+ return __assign(__assign({}, (!!email
242
+ ? {
243
+ customer_email: email
244
+ }
245
+ : {
246
+ customer_communicationPreference: 'phone'
247
+ })), (!!fax
248
+ ? {
249
+ customer_photocopier: fax
250
+ }
251
+ : {}));
252
+ };
253
+ var getPrevCustomerAddress = function (expeditionInfo) {
254
+ var defaultBilling = expeditionInfo.findIndex(function (ei) { return ei.is_default && ei.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.BILLING); });
255
+ if (defaultBilling !== -1) {
256
+ return __spreadArray(__spreadArray(__spreadArray([], expeditionInfo.slice(0, defaultBilling), true), [
257
+ __assign(__assign({}, expeditionInfo[defaultBilling]), { address: __assign(__assign({}, expeditionInfo[defaultBilling].address), getClientAddress()) })
258
+ ], false), expeditionInfo.slice(defaultBilling + 1), true);
259
+ }
260
+ return __spreadArray(__spreadArray([], expeditionInfo, true), [
261
+ {
262
+ address: __assign(__assign({}, getClientAddress()), { id: (0, uuid_1.v4)() }),
263
+ is_default: [Customer_1.defaultExpeditionOptionsEnum.BILLING],
264
+ expedition_recipient_name: !!client.nom ? client.nom : '',
265
+ expedition_recipient_phone: !!client.téléphone ? (0, data_1.formatPhoneNumberDB)(client.téléphone) : ''
266
+ }
267
+ ], false);
268
+ };
269
+ var getClientAddress = function () {
270
+ return {
271
+ city: client.ville,
272
+ country: !!client.pays ? client.pays : 'CA',
273
+ line1: client.adresse || '',
274
+ postal_code: !!client.codePostal ? client.codePostal.toUpperCase() : '',
275
+ state: client.province || ''
276
+ };
277
+ };
278
+ var shouldCheckForCompany = function () {
279
+ return !!client.nom || !!client.téléphone || !!client.personneRessourceComptes;
280
+ };
281
+ var defaultProGroup = 'aspirant';
282
+ var getCustomerGroupFromTypeCode = function (type) {
283
+ if (!!!allGroups)
284
+ return defaultProGroup;
285
+ var sameGroup = allGroups.find(function (g) { return g.external_slug === type; });
286
+ return !!sameGroup ? sameGroup.slug : defaultProGroup;
287
+ };
288
+ var customerWithNewInfo = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (0, Customer_1.getDefaultCustomer)()), (!!prevCustomer ? prevCustomer : { id: client.noClient })), (!!!prevCustomer
289
+ ? {
290
+ hash: crypto_js_1.default.AES.encrypt(client.noClient, client.noClient).toString(),
291
+ type: Customer_1.CustomerTypeEnum.COMPANY
292
+ }
293
+ : {})), (!!client.limiteDeCrédit && Math.round((0, toNumber_1.default)(client.limiteDeCrédit))
294
+ ? {
295
+ has_credit_line: true,
296
+ credit_line_max: client.limiteDeCrédit
297
+ }
298
+ : {})), (!!client.noReprésentant ? { represented_by: client.noReprésentant } : {})), { basic_info: __assign(__assign(__assign(__assign(__assign(__assign({}, (0, Customer_1.getDefaultBasicCustomer)()), (!!prevCustomer ? prevCustomer.basic_info : { customer_type: Customer_1.BasicCustomerTypeEnum.PRO })), (!!client.email ? { customer_email: client.email.split(';')[0].toLowerCase() } : {})), (!!client.fax ? { customer_photocopier: client.fax } : {})), (!!client.personneRessourceVentes ? getCustomerNameInfo(client.personneRessourceVentes) : {})), { customer_professionnal_info: __assign(__assign(__assign(__assign(__assign(__assign({}, (!!prevCustomer ? prevCustomer.basic_info.customer_professionnal_info : {})), { professionnal_title: !!client.groupeDeClient && !!(0, exports.getG2CustomerTypeFromCode)(client.groupeDeClient)
299
+ ? getCustomerGroupFromTypeCode((0, exports.getG2CustomerTypeFromCode)(client.groupeDeClient))
300
+ : defaultProGroup, proof_doc_value: client.noClient }), (!!client.noCondition ? { terms_code: client.noCondition } : {})), (!!client.groupeDeClient ? { external_customer_group: client.groupeDeClient } : {})), (!!client.codeFA ? { external_customer_code: client.codeFA } : {})), (!!client.classePrix ? { external_price_class: client.classePrix.toString() } : {})) }) }), ((!!prevCustomer && !!prevCustomer.company_info) || shouldCheckForCompany()
301
+ ? {
302
+ company_info: __assign(__assign(__assign({}, (!!prevCustomer && !!prevCustomer.company_info ? prevCustomer.company_info : {})), { invoice_info: __assign(__assign(__assign({}, (!!prevCustomer && !!prevCustomer.company_info && !!prevCustomer.company_info.invoice_info
303
+ ? prevCustomer.company_info.invoice_info
304
+ : {})), { legal_name: !!client.nom ? client.nom : '' }), (!!client.téléphone ? { phone: (0, data_1.formatPhoneNumberDB)(client.téléphone) } : {})) }), (!!client.personneRessourceComptes || !!client.personneRessourceAutres
305
+ ? {
306
+ other_users: __spreadArray(__spreadArray([], (!!client.personneRessourceComptes
307
+ ? [
308
+ __assign(__assign(__assign({}, (0, Customer_1.getDefaultBasicCustomer)()), getCustomerNameInfo(client.personneRessourceComptes)), getOtherCustomerInfo('personneRessourceComptes'))
309
+ ]
310
+ : []), true), (!!client.personneRessourceAutres
311
+ ? [
312
+ __assign(__assign(__assign({}, (0, Customer_1.getDefaultBasicCustomer)()), getCustomerNameInfo(client.personneRessourceAutres)), getOtherCustomerInfo('personneRessourceAutres'))
313
+ ]
314
+ : []), true)
315
+ }
316
+ : {}))
317
+ }
318
+ : {})), { expedition_info: !!prevCustomer && prevCustomer.expedition_info && prevCustomer.expedition_info.length
319
+ ? prevCustomer.expedition_info.length > 1
320
+ ? getPrevCustomerAddress(prevCustomer.expedition_info)
321
+ : [
322
+ __assign(__assign({}, prevCustomer.expedition_info[0]), { address: __assign(__assign({}, (prevCustomer.expedition_info[0].address ? prevCustomer.expedition_info[0].address : {})), getClientAddress()), is_default: __spreadArray(__spreadArray([], (prevCustomer.expedition_info[0].is_default || []), true), (!!!prevCustomer.expedition_info[0].is_default ||
323
+ !!!prevCustomer.expedition_info[0].is_default.includes(Customer_1.defaultExpeditionOptionsEnum.BILLING)
324
+ ? [Customer_1.defaultExpeditionOptionsEnum.BILLING]
325
+ : []), true) })
326
+ ]
327
+ : [
328
+ {
329
+ address: __assign(__assign({}, getClientAddress()), { id: (0, uuid_1.v4)() }),
330
+ is_default: [Customer_1.defaultExpeditionOptionsEnum.BILLING],
331
+ expedition_recipient_name: !!client.nom ? client.nom : '',
332
+ expedition_recipient_phone: !!client.téléphone ? (0, data_1.formatPhoneNumberDB)(client.téléphone) : ''
333
+ }
334
+ ] });
335
+ if (!!__1.isTestEnv &&
336
+ !!prevCustomer &&
337
+ !!prevCustomer.basic_info.customer_email &&
338
+ prevCustomer.basic_info.customer_email.includes('@dummy.com')) {
339
+ var allPropsToReset = anonymisation_1.g2Properties.map(function (p) { return p.path; });
340
+ for (var _i = 0, allPropsToReset_1 = allPropsToReset; _i < allPropsToReset_1.length; _i++) {
341
+ var prop = allPropsToReset_1[_i];
342
+ var prevValue = (0, object_1.recursiveCheckObject)(prevCustomer, prop);
343
+ var currentValue = (0, object_1.recursiveCheckObject)(customerWithNewInfo, prop);
344
+ if (prevValue == currentValue)
345
+ continue;
346
+ customerWithNewInfo = (0, object_1.recursiveSetObject)(customerWithNewInfo, prevValue, prop);
347
+ }
348
+ }
349
+ return customerWithNewInfo;
350
+ };
351
+ exports.transformG2CustomerToCustomer = transformG2CustomerToCustomer;
352
+ var checkIfCustomerExistsInG2 = function (customerID, space, org) { return __awaiter(void 0, void 0, void 0, function () {
353
+ var token, api, response, exists, e_4;
354
+ return __generator(this, function (_a) {
355
+ switch (_a.label) {
356
+ case 0:
357
+ _a.trys.push([0, 3, , 4]);
358
+ token = (0, context_1.getSpaceToken)(space, org);
359
+ if (!!!token)
360
+ throw new Error('no token found for space');
361
+ api = __1.API_URL;
362
+ return [4, fetch("".concat(api, "/services/g2/customers/").concat(customerID, "/exists"), {
363
+ method: 'GET',
364
+ headers: {
365
+ 'Content-Type': 'application/json',
366
+ Authorization: "Bearer ".concat(token)
367
+ }
368
+ })];
369
+ case 1:
370
+ response = _a.sent();
371
+ if (!!response.status && response.status !== 200)
372
+ throw "Error - ".concat(response.status);
373
+ return [4, response.json()];
374
+ case 2:
375
+ exists = (_a.sent()).exists;
376
+ return [2, exists];
377
+ case 3:
378
+ e_4 = _a.sent();
379
+ console.log('error on checking customer in G2: ', e_4.toString());
380
+ return [2, false];
381
+ case 4: return [2];
382
+ }
383
+ });
384
+ }); };
385
+ exports.checkIfCustomerExistsInG2 = checkIfCustomerExistsInG2;
386
+ var updateCustomerWithG2Info = function (customerID, space, org, addToDB, skipEmailCheck) {
387
+ if (addToDB === void 0) { addToDB = true; }
388
+ if (skipEmailCheck === void 0) { skipEmailCheck = false; }
389
+ return __awaiter(void 0, void 0, void 0, function () {
390
+ var token, api, delay1, updatedCustomerQuery, G2RequestRes, updatedCustomer, delay4, e_5;
391
+ return __generator(this, function (_a) {
392
+ switch (_a.label) {
393
+ case 0:
394
+ console.log('===============');
395
+ console.log('in v2 sdk updateCustomerWithG2Info');
396
+ _a.label = 1;
397
+ case 1:
398
+ _a.trys.push([1, 6, , 7]);
399
+ token = (0, context_1.getSpaceToken)(space, org);
400
+ if (!!!token)
401
+ return [2];
402
+ api = __1.API_URL;
403
+ console.log('----------------------');
404
+ delay1 = (0, moment_1.default)();
405
+ return [4, fetch("".concat(api, "/services/g2/customers/").concat(customerID, "/convert"), {
406
+ method: 'GET',
407
+ headers: {
408
+ 'Content-Type': 'application/json',
409
+ Authorization: "Bearer ".concat(token)
410
+ }
411
+ })];
412
+ case 2:
413
+ updatedCustomerQuery = _a.sent();
414
+ console.log('called api to update customer delay: ', (0, moment_1.default)().diff(delay1, 'seconds'));
415
+ if (!!updatedCustomerQuery.status && updatedCustomerQuery.status !== 200)
416
+ throw "Error - ".concat(updatedCustomerQuery.status);
417
+ return [4, updatedCustomerQuery.json()];
418
+ case 3:
419
+ G2RequestRes = _a.sent();
420
+ console.log('G2RequestRes: ', G2RequestRes);
421
+ if (!!!G2RequestRes)
422
+ throw 'Error - no data';
423
+ updatedCustomer = (0, anonymisation_1.hideG2CustomerInfoIfNeeded)(G2RequestRes.customer);
424
+ if (!!!addToDB) return [3, 5];
425
+ console.log('----------------------');
426
+ delay4 = (0, moment_1.default)();
427
+ return [4, space.addCustomer(updatedCustomer, undefined, skipEmailCheck)];
428
+ case 4:
429
+ _a.sent();
430
+ console.log('saving to database delay: ', (0, moment_1.default)().diff(delay4, 'seconds'));
431
+ _a.label = 5;
432
+ case 5:
433
+ console.log('=====================');
434
+ return [2, updatedCustomer];
435
+ case 6:
436
+ e_5 = _a.sent();
437
+ console.log('error on updating customer info with G2: ', e_5.toString());
438
+ return [2];
439
+ case 7: return [2];
440
+ }
441
+ });
442
+ });
443
+ };
444
+ exports.updateCustomerWithG2Info = updateCustomerWithG2Info;
445
+ var getG2DiscountFromCode = function (code) {
446
+ var onlyNb = code.replace(/[^0-9]/gi, '');
447
+ return !!!onlyNb || !!isNaN(Number(onlyNb)) ? undefined : (0, toNumber_1.default)(onlyNb);
448
+ };
449
+ exports.getG2DiscountFromCode = getG2DiscountFromCode;
450
+ var getG2CustomerTypeFromCode = function (code) {
451
+ var parsedCode = code;
452
+ var possiblePrefixes = ['BASE', 'PAYS', 'RENC'];
453
+ for (var _i = 0, possiblePrefixes_1 = possiblePrefixes; _i < possiblePrefixes_1.length; _i++) {
454
+ var prefix = possiblePrefixes_1[_i];
455
+ parsedCode = parsedCode.replace(prefix, '');
456
+ }
457
+ parsedCode = parsedCode.replace(/[0-9]/gi, '');
458
+ var possibleTypes = ['AM', 'AL', 'AS', 'AMN'];
459
+ var checkWithPossibleTypes = function (codeToCheck, removeFrom) {
460
+ if (!!!possibleTypes.includes(codeToCheck)) {
461
+ if (codeToCheck.length === 1)
462
+ return '';
463
+ if (removeFrom == 'start') {
464
+ return checkWithPossibleTypes(codeToCheck.substring(1), removeFrom);
465
+ }
466
+ else {
467
+ return checkWithPossibleTypes(codeToCheck.replace(/.$/, ''), removeFrom);
468
+ }
469
+ }
470
+ return codeToCheck;
471
+ };
472
+ if (!!parsedCode) {
473
+ var removedValues = checkWithPossibleTypes(parsedCode, 'end');
474
+ if (!!!removedValues)
475
+ removedValues = checkWithPossibleTypes(parsedCode, 'start');
476
+ parsedCode = removedValues;
477
+ }
478
+ return parsedCode;
479
+ };
480
+ exports.getG2CustomerTypeFromCode = getG2CustomerTypeFromCode;
481
+ var fetchCustomPriceList = function (spaceToken, customerId, ignoreDashPriceList, onlyForProductSlugs) { return __awaiter(void 0, void 0, void 0, function () {
482
+ var prices, api, g2PriceListQuery, e_6;
483
+ return __generator(this, function (_a) {
484
+ switch (_a.label) {
485
+ case 0:
486
+ prices = [];
487
+ _a.label = 1;
488
+ case 1:
489
+ _a.trys.push([1, 4, , 5]);
490
+ api = __1.API_URL;
491
+ return [4, fetch("".concat(api, "/services/g2/customers/").concat(customerId, "/customPrices"), {
492
+ method: 'POST',
493
+ headers: {
494
+ 'Content-Type': 'application/json',
495
+ Authorization: "Bearer ".concat(spaceToken)
496
+ },
497
+ body: JSON.stringify(__assign({ ignoreDashPriceList: !!ignoreDashPriceList }, (!!onlyForProductSlugs ? { onlyForProductSlugs: onlyForProductSlugs } : {})))
498
+ })];
499
+ case 2:
500
+ g2PriceListQuery = _a.sent();
501
+ return [4, g2PriceListQuery.json()];
502
+ case 3:
503
+ prices = _a.sent();
504
+ if (!!g2PriceListQuery.status && g2PriceListQuery.status !== 200)
505
+ throw "Error - ".concat(g2PriceListQuery.status);
506
+ if (!!!prices || !!!prices.length)
507
+ throw 'Error - no data';
508
+ return [3, 5];
509
+ case 4:
510
+ e_6 = _a.sent();
511
+ console.log('error on fetching custom prices:', e_6.toString());
512
+ return [3, 5];
513
+ case 5: return [2, prices];
514
+ }
515
+ });
516
+ }); };
517
+ exports.fetchCustomPriceList = fetchCustomPriceList;
518
+ var getCustomPriceList = function (space, idClient, ignoreDashPriceList, onlyForProductSlugs) { return __awaiter(void 0, void 0, void 0, function () {
519
+ var priceList, escomptesClient, ententesClient, G2Auth, G2Service, customerReq, customers, allG2Customers, g2Customer, today_1, allCurrentEntentes, mostRecent, _a, noClient, groupeDeClient, classePrix_1, customerType_1, normalCustomerEscompte, escomptesNumClient, numClientResults, e_7, escomptesGroupeClient, groupeClientResults, groupeClientEscomptes, noDuplicates, e_8, allProducts, batchResults, _i, _b, group, query, e_9, allCustomerGroups, customerGroupByPriceClass_1, _c, allProducts_1, prod, data, type, _loop_2, _d, _e, decli, e_10;
520
+ return __generator(this, function (_f) {
521
+ switch (_f.label) {
522
+ case 0:
523
+ priceList = [];
524
+ escomptesClient = [];
525
+ ententesClient = [];
526
+ G2Auth = '';
527
+ G2Service = space.services({ field: 'external_service_name', value: 'G2' });
528
+ if (!!G2Service && !!G2Service.length) {
529
+ G2Auth = G2Service[0].external_service_infos.api;
530
+ }
531
+ if (!!!G2Auth)
532
+ throw "Error on fetching G2 API info from space";
533
+ _f.label = 1;
534
+ case 1:
535
+ _f.trys.push([1, 28, , 29]);
536
+ return [4, fetch("https://g2api.groupericher.com/api/clients?noClient=".concat(idClient), {
537
+ method: 'GET',
538
+ headers: {
539
+ Authorization: G2Auth
540
+ }
541
+ })];
542
+ case 2:
543
+ customerReq = _f.sent();
544
+ return [4, customerReq.json()];
545
+ case 3:
546
+ customers = _f.sent();
547
+ if (customerReq.status !== 200) {
548
+ throw "Error on fetching customers from G2 API: ".concat(customerReq.status);
549
+ }
550
+ allG2Customers = customers;
551
+ g2Customer = allG2Customers[0];
552
+ if (!!!g2Customer)
553
+ return [2, priceList];
554
+ today_1 = (0, moment_1.default)();
555
+ allCurrentEntentes = g2Customer.soumissions.filter(function (s) {
556
+ return !!s.soumission.actif &&
557
+ !!s.soumission.dateDébut &&
558
+ !!s.soumission.dateFin &&
559
+ today_1.isBetween((0, moment_1.default)(s.soumission.dateDébut), (0, moment_1.default)(s.soumission.dateFin));
560
+ });
561
+ mostRecent = (0, orderBy_1.default)(allCurrentEntentes, function (e) { return (0, moment_1.default)(e.soumission.dateDébut).unix(); }, 'desc');
562
+ if (!!mostRecent) {
563
+ ententesClient = mostRecent;
564
+ }
565
+ _a = g2Customer.client, noClient = _a.noClient, groupeDeClient = _a.groupeDeClient, classePrix_1 = _a.classePrix;
566
+ customerType_1 = !!!groupeDeClient ? undefined : (0, exports.getG2CustomerTypeFromCode)(groupeDeClient);
567
+ normalCustomerEscompte = !!!groupeDeClient ? undefined : (0, exports.getG2DiscountFromCode)(groupeDeClient);
568
+ _f.label = 4;
569
+ case 4:
570
+ _f.trys.push([4, 7, , 8]);
571
+ return [4, fetch("https://g2api.groupericher.com/api/escompteclient?code=".concat(noClient), {
572
+ method: 'GET',
573
+ headers: {
574
+ Authorization: G2Auth
575
+ }
576
+ })];
577
+ case 5:
578
+ escomptesNumClient = _f.sent();
579
+ return [4, escomptesNumClient.json()];
580
+ case 6:
581
+ numClientResults = _f.sent();
582
+ if (!!numClientResults.status && numClientResults.status !== 200) {
583
+ console.log("Error on fetching escompteClients from G2 API with noClient ".concat(noClient, ": ").concat(numClientResults.status));
584
+ }
585
+ else {
586
+ escomptesClient = __spreadArray(__spreadArray([], escomptesClient, true), numClientResults.map(function (r) { return r.escompteClient; }), true);
587
+ }
588
+ return [3, 8];
589
+ case 7:
590
+ e_7 = _f.sent();
591
+ console.log('error on fetching escomptesClient from G2: ', e_7.toString());
592
+ return [3, 8];
593
+ case 8:
594
+ _f.trys.push([8, 13, , 14]);
595
+ if (!(!!groupeDeClient && groupeDeClient !== noClient)) return [3, 11];
596
+ return [4, fetch("https://g2api.groupericher.com/api/escompteclient?code=".concat(groupeDeClient), {
597
+ method: 'GET',
598
+ headers: {
599
+ Authorization: G2Auth
600
+ }
601
+ })];
602
+ case 9:
603
+ escomptesGroupeClient = _f.sent();
604
+ return [4, escomptesGroupeClient.json()];
605
+ case 10:
606
+ groupeClientResults = _f.sent();
607
+ if (!!groupeClientResults.statuts && groupeClientResults.status !== 200) {
608
+ console.log("Error on fetching escompteClients from G2 API with groupeClient ".concat(groupeDeClient, ": ").concat(groupeClientResults.status));
609
+ }
610
+ else {
611
+ groupeClientEscomptes = groupeClientResults.map(function (r) { return r.escompteClient; });
612
+ noDuplicates = groupeClientEscomptes.filter(function (es) { return !!!es.code2 || !!!escomptesClient.some(function (e) { return !!e.code2 && e.code2 === es.code2; }); });
613
+ escomptesClient = __spreadArray(__spreadArray([], escomptesClient, true), noDuplicates, true);
614
+ }
615
+ return [3, 12];
616
+ case 11:
617
+ console.log('ignoring groupeClient escomptes because id and groupeClient are same');
618
+ _f.label = 12;
619
+ case 12: return [3, 14];
620
+ case 13:
621
+ e_8 = _f.sent();
622
+ console.log('error on fetching escomptesClient from G2: ', e_8.toString());
623
+ return [3, 14];
624
+ case 14:
625
+ allProducts = [];
626
+ _f.label = 15;
627
+ case 15:
628
+ _f.trys.push([15, 26, , 27]);
629
+ if (!(!!onlyForProductSlugs && !!onlyForProductSlugs.length)) return [3, 23];
630
+ if (!(onlyForProductSlugs.length <= 10)) return [3, 17];
631
+ return [4, space.indexedProducts.get({
632
+ query: [{ field: 'slug', operator: 'in', value: onlyForProductSlugs }]
633
+ })];
634
+ case 16:
635
+ allProducts = _f.sent();
636
+ return [3, 22];
637
+ case 17:
638
+ batchResults = [];
639
+ _i = 0, _b = (0, chunk_1.default)(onlyForProductSlugs, 10);
640
+ _f.label = 18;
641
+ case 18:
642
+ if (!(_i < _b.length)) return [3, 21];
643
+ group = _b[_i];
644
+ return [4, space.indexedProducts.get({
645
+ query: [{ field: 'slug', operator: 'in', value: group }]
646
+ })];
647
+ case 19:
648
+ query = _f.sent();
649
+ batchResults.push(query);
650
+ _f.label = 20;
651
+ case 20:
652
+ _i++;
653
+ return [3, 18];
654
+ case 21:
655
+ allProducts = (0, flatten_1.default)(batchResults);
656
+ _f.label = 22;
657
+ case 22: return [3, 25];
658
+ case 23: return [4, space.indexedProducts.get({
659
+ query: [{ field: 'draft', operator: '!=', value: true }]
660
+ })];
661
+ case 24:
662
+ allProducts = _f.sent();
663
+ _f.label = 25;
664
+ case 25: return [3, 27];
665
+ case 26:
666
+ e_9 = _f.sent();
667
+ console.log('error on fetching all products : ', e_9.toString());
668
+ return [3, 27];
669
+ case 27:
670
+ if (!!!allProducts.length)
671
+ return [2, priceList];
672
+ allCustomerGroups = space.preferences.customers.groups() || [];
673
+ customerGroupByPriceClass_1 = !!classePrix_1
674
+ ? allCustomerGroups.find(function (g) { return g.external_price_list_slug == classePrix_1.toString(); })
675
+ : undefined;
676
+ for (_c = 0, allProducts_1 = allProducts; _c < allProducts_1.length; _c++) {
677
+ prod = allProducts_1[_c];
678
+ data = prod.data();
679
+ if (!!!data || !!data.draft)
680
+ continue;
681
+ type = !!data.attributes && data.attributes[data_2.AttributesIdEnumGR.TYPE];
682
+ _loop_2 = function (decli) {
683
+ var isSpecificBetonProd = !!decli.external_values && ['BOLDUC', 'RINOX', 'RICHER', 'OAKS'].includes(decli.external_values['catégorie2']);
684
+ var shouldApplyNormalEscompte = !!!data.is_service && !!isSpecificBetonProd;
685
+ var isNetPrice = !!decli.external_values && decli.external_values['catégorie2'] === 'NET';
686
+ var sku = decli.sku;
687
+ var basePrice = (0, toNumber_1.default)(decli.regular_price.amount);
688
+ if (!!decli.prices_list && !!decli.prices_list.length && !!!ignoreDashPriceList) {
689
+ var priceListItemToUse = undefined;
690
+ var samePriceClassInPriceList = !!customerGroupByPriceClass_1
691
+ ? decli.prices_list.find(function (pl) { return pl.group_id == customerGroupByPriceClass_1.slug; })
692
+ : undefined;
693
+ if (!!samePriceClassInPriceList && !isNaN((0, toNumber_1.default)(samePriceClassInPriceList.amount))) {
694
+ priceListItemToUse = samePriceClassInPriceList;
695
+ }
696
+ else if (!!groupeDeClient) {
697
+ var samePriceInPriceList = !!customerType_1
698
+ ? decli.prices_list.find(function (p) { return !!p.external_slug && p.external_slug === customerType_1; })
699
+ : undefined;
700
+ var proPriceInPriceList = decli.prices_list.find(function (p) { return p.group_id === 'aspirant'; });
701
+ if (!!samePriceInPriceList && !isNaN((0, toNumber_1.default)(samePriceInPriceList.amount))) {
702
+ priceListItemToUse = samePriceClassInPriceList;
703
+ }
704
+ else if (!!proPriceInPriceList && !isNaN((0, toNumber_1.default)(proPriceInPriceList.amount))) {
705
+ priceListItemToUse = proPriceInPriceList;
706
+ }
707
+ }
708
+ if (!!priceListItemToUse) {
709
+ basePrice = (0, toNumber_1.default)(priceListItemToUse.amount);
710
+ if (!!!isNetPrice) {
711
+ shouldApplyNormalEscompte = !!priceListItemToUse.custom_promo_applies && !!isSpecificBetonProd;
712
+ isNetPrice = !!priceListItemToUse.is_net_price;
713
+ }
714
+ }
715
+ }
716
+ var comparePrices = [
717
+ __assign(__assign({ price: basePrice, type: G2_1.CustomPriceItemTypeEnum.REG }, (!!(0, object_1.recursiveCheckObject)(decli, 'external_values.catégorie1')
718
+ ? { code1: decli.external_values.catégorie1 }
719
+ : {})), (!!(0, object_1.recursiveCheckObject)(decli, 'external_values.catégorie2')
720
+ ? { code2: decli.external_values.catégorie2 }
721
+ : {}))
722
+ ];
723
+ var foundEntenteForProduct = false;
724
+ if (!!ententesClient.length) {
725
+ for (var _g = 0, ententesClient_1 = ententesClient; _g < ententesClient_1.length; _g++) {
726
+ var entente = ententesClient_1[_g];
727
+ if (!!foundEntenteForProduct)
728
+ break;
729
+ var sameProd = entente.articles.find(function (a) { return !!a.article.noArticle && a.article.noArticle === sku; });
730
+ if (!!!sameProd) {
731
+ sameProd = entente.articles.find(function (a) { return !!a.article.noArticle && a.article.noArticle.includes(sku); });
732
+ }
733
+ if (!!sameProd) {
734
+ var priceToSet = typeof sameProd.article.prixUnitaireNet === 'number'
735
+ ? sameProd.article.prixUnitaireNet
736
+ : typeof sameProd.article.prixUnitaire === 'number'
737
+ ? sameProd.article.prixUnitaire
738
+ : undefined;
739
+ if (typeof priceToSet === 'number') {
740
+ foundEntenteForProduct = true;
741
+ comparePrices.push(__assign(__assign({ price: (0, toNumber_1.default)(priceToSet), type: G2_1.CustomPriceItemTypeEnum.ENTENTE }, (!!decli.external_values ? { code2: decli.external_values['catégorie2'] } : {})), (!!sameProd.article.pourcEscompte
742
+ ? __assign(__assign({}, (typeof sameProd.article.prixUnitaire === 'number'
743
+ ? { reg: sameProd.article.prixUnitaire }
744
+ : {})), { percent: sameProd.article.pourcEscompte }) : {})));
745
+ }
746
+ }
747
+ }
748
+ }
749
+ if (!!escomptesClient.length) {
750
+ var findBestDeal = function (escomptesToCheck) {
751
+ var bestDeal = (0, maxBy_1.default)(escomptesToCheck, function (escompte) { return (0, toNumber_1.default)(escompte.pourcEscompte); });
752
+ if (!!bestDeal) {
753
+ comparePrices.push(__assign({ price: basePrice * ((100 - (0, toNumber_1.default)(bestDeal.pourcEscompte)) / 100), type: G2_1.CustomPriceItemTypeEnum.ESCOMPTE, percent: (0, toNumber_1.default)(bestDeal.pourcEscompte), code1: bestDeal.code1 }, (!!bestDeal.code2 ? { code2: bestDeal.code2 } : {})));
754
+ }
755
+ };
756
+ if (!!!foundEntenteForProduct) {
757
+ if (!!isNetPrice) {
758
+ var sameCat1Escompte = escomptesClient.filter(function (e) {
759
+ if (!!!e.code2)
760
+ return false;
761
+ return decli.external_values && e.code2 === decli.external_values['catégorie1'] && e.code2 == 'DALLE';
762
+ });
763
+ if (!!sameCat1Escompte && !!sameCat1Escompte.length) {
764
+ findBestDeal(sameCat1Escompte);
765
+ }
766
+ }
767
+ else {
768
+ var no2ndCode = escomptesClient.filter(function (e) { return !!!e.code2; });
769
+ if (!!no2ndCode.length) {
770
+ findBestDeal(no2ndCode);
771
+ }
772
+ var sameSkuEscompte = escomptesClient.filter(function (e) { return e.code2 && e.code2 === sku; });
773
+ if (!!!sameSkuEscompte.length) {
774
+ sameSkuEscompte = escomptesClient.filter(function (e) { return e.code2 && e.code2.includes(sku); });
775
+ }
776
+ if (!!sameSkuEscompte.length) {
777
+ findBestDeal(sameSkuEscompte);
778
+ }
779
+ if (!!!sameSkuEscompte.length) {
780
+ var sameBrandEscompte = escomptesClient.filter(function (e) {
781
+ if (!!!e.code2)
782
+ return;
783
+ return (decli.external_values &&
784
+ (e.code2 === decli.external_values['catégorie2'] || e.code2 === decli.external_values['catégorie1']));
785
+ });
786
+ if (!!sameBrandEscompte) {
787
+ findBestDeal(sameBrandEscompte);
788
+ }
789
+ }
790
+ }
791
+ }
792
+ }
793
+ comparePrices = (0, uniqBy_1.default)(comparePrices, function (p) { return p.price; });
794
+ var lowestPrice = (0, minBy_1.default)(comparePrices, function (p) { return p.price; });
795
+ var customPriceItemToPush = undefined;
796
+ if (!!lowestPrice) {
797
+ customPriceItemToPush = __assign(__assign({ sku: sku, parent_slug: data.slug, name: "".concat(!!decli.parent_name &&
798
+ !!!(0, locale_1.getPrincipalWord)(decli.name, space).trim().includes((0, locale_1.getPrincipalWord)(decli.parent_name).trim())
799
+ ? (0, locale_1.getPrincipalWord)(decli.name, space) + ' - '
800
+ : '').concat((0, locale_1.getPrincipalWord)(decli.name, space)), reg: basePrice }, (!!type
801
+ ? {
802
+ prod_type: type[0]
803
+ }
804
+ : {})), lowestPrice);
805
+ }
806
+ if (!!customPriceItemToPush) {
807
+ priceList.push(customPriceItemToPush);
808
+ }
809
+ };
810
+ for (_d = 0, _e = data.declinations.filter(function (d) { return !!!d.is_sample; }); _d < _e.length; _d++) {
811
+ decli = _e[_d];
812
+ _loop_2(decli);
813
+ }
814
+ }
815
+ return [2, priceList];
816
+ case 28:
817
+ e_10 = _f.sent();
818
+ console.log('error on fetching customer from G2: ', e_10.toString());
819
+ return [2, e_10.toString()];
820
+ case 29: return [2];
821
+ }
822
+ });
823
+ }); };
824
+ exports.getCustomPriceList = getCustomPriceList;
825
+ var getItemEscompteSupp = function (customPriceList, item) {
826
+ var code2InItem = (0, object_1.recursiveCheckObject)(item, "external_values.cat\u00E9gorie2");
827
+ var code2InPriceList = undefined;
828
+ var customPriceItem = customPriceList.find(function (priceItem) { return priceItem.sku === item.sku; });
829
+ if (!!customPriceItem && !!customPriceItem.code2) {
830
+ code2InPriceList = customPriceItem.code2;
831
+ }
832
+ var code2ToCheck = code2InPriceList !== null && code2InPriceList !== void 0 ? code2InPriceList : code2InItem;
833
+ if (!!!code2ToCheck)
834
+ return;
835
+ var foundEsc = customPriceList.find(function (priceItem) { return priceItem.sku === 'ESC' + code2ToCheck; });
836
+ if (!!!foundEsc && !!code2InItem) {
837
+ foundEsc = customPriceList.find(function (priceItem) { return priceItem.sku === 'ESC' + code2InItem; });
838
+ }
839
+ return foundEsc;
840
+ };
841
+ exports.getItemEscompteSupp = getItemEscompteSupp;
842
+ var groupArrayOfItemsByItemAndCorrespondingEscompteItem = function (items) {
843
+ return (0, flatten_1.default)(Object.values((0, groupBy_1.default)(items, function (item) { return ((0, exports.isEscompteSuppItem)(item.sku) ? (0, string_1.splitFromFirstChar)('-', item.sku)[1] : item.sku); })));
844
+ };
845
+ exports.groupArrayOfItemsByItemAndCorrespondingEscompteItem = groupArrayOfItemsByItemAndCorrespondingEscompteItem;
846
+ var buildEscompteSuppCartItem = function (escompteItems, customPriceList, escompteSuppItem, item) {
847
+ if (!!!escompteItems[0])
848
+ return;
849
+ var priceToUse = (0, products_1.getLowestPrice)(item);
850
+ var escompteDecli = escompteItems[0].data().declinations.find(function (decli) { return decli.sku === escompteSuppItem.sku; });
851
+ if (!!!escompteDecli)
852
+ return;
853
+ var sameInCustomPriceList = customPriceList.find(function (c) { return c.sku === escompteDecli.sku; });
854
+ if (!!sameInCustomPriceList &&
855
+ sameInCustomPriceList.type === G2_1.CustomPriceItemTypeEnum.REG &&
856
+ sameInCustomPriceList.price === 0)
857
+ return;
858
+ var escompteEquivalent = (0, exports.checkForCustomPriceEquivalent)(escompteDecli, customPriceList);
859
+ return __assign(__assign({}, escompteEquivalent), { is_upsell_of_sku: item.sku, is_temp_prod: true, price_override: true, qte_override: true, qte: item.qte * priceToUse.price.amount, sku: "".concat(escompteEquivalent.sku, "-").concat(item.sku), regular_price: (0, products_1.getLowestPrice)(escompteEquivalent).price });
860
+ };
861
+ exports.buildEscompteSuppCartItem = buildEscompteSuppCartItem;
862
+ var isEscompteSuppItem = function (itemSku) {
863
+ return Object.values(G2_1.EscomptesDeclinationSkusEnum).some(function (subString) { return itemSku.includes(subString); });
864
+ };
865
+ exports.isEscompteSuppItem = isEscompteSuppItem;
866
+ var checkForCustomPriceEquivalent = function (item, customPriceList, options) {
867
+ var _a;
868
+ if (options === void 0) { options = {}; }
869
+ var sameInCustomPriceList = customPriceList.find(function (i) { return i.sku === item.sku; });
870
+ if (!!!sameInCustomPriceList)
871
+ return item;
872
+ if (!!item.price_overide && sameInCustomPriceList.type === G2_1.CustomPriceItemTypeEnum.REG)
873
+ return item;
874
+ var regular_price = item.regular_price, promo_price = item.promo_price, discount_price = item.discount_price, tier_pricing = item.tier_pricing, rest = __rest(item, ["regular_price", "promo_price", "discount_price", "tier_pricing"]);
875
+ var isReg = sameInCustomPriceList.type === G2_1.CustomPriceItemTypeEnum.REG;
876
+ var isEntente = sameInCustomPriceList.type === G2_1.CustomPriceItemTypeEnum.ENTENTE;
877
+ var isPA = !!sameInCustomPriceList.PA_percent;
878
+ var hasOverriddenPrice = item.price_override;
879
+ var shouldUseCustomPriceForRegPrice = (!!isReg && !!!sameInCustomPriceList.percent) || (!!options.setNetPriceAsRegular && !!isEntente);
880
+ return __assign(__assign(__assign(__assign({}, rest), { regular_price: __assign(__assign(__assign({}, regular_price), { amount: !!item.price_override
881
+ ? regular_price.amount
882
+ : (!!isReg || !!isEntente) && sameInCustomPriceList.price == 0
883
+ ? 0
884
+ : !!shouldUseCustomPriceForRegPrice
885
+ ? sameInCustomPriceList.price
886
+ : sameInCustomPriceList.reg }), (sameInCustomPriceList.type !== G2_1.CustomPriceItemTypeEnum.REG && !!!regular_price.price_type
887
+ ? { price_type: sameInCustomPriceList.type }
888
+ : {})) }), (!!!hasOverriddenPrice
889
+ ? __assign(__assign({}, (sameInCustomPriceList.percent || !!!isReg
890
+ ? __assign({}, (!!sameInCustomPriceList.percent &&
891
+ [G2_1.CustomPriceItemTypeEnum.ESCOMPTE, G2_1.CustomPriceItemTypeEnum.NORMAL_ESCOMPTE].includes(sameInCustomPriceList.type)
892
+ ? {
893
+ promo_price: __assign(__assign({}, (item.promo_price || { currency: 'CAD' })), { amount: sameInCustomPriceList.price, price_type: sameInCustomPriceList.type })
894
+ }
895
+ : !!!options.setNetPriceAsRegular
896
+ ? {
897
+ discount_price: __assign(__assign({}, (item.discount_price || { currency: 'CAD' })), { amount: sameInCustomPriceList.price, price_type: sameInCustomPriceList.type })
898
+ }
899
+ : {})) : !!item.discount_price && item.discount_price.price_type === 'tierpricing' && !!!options.removeTierPricing
900
+ ? {
901
+ discount_price: __assign(__assign({}, item.discount_price), { original_amount: !!isReg || !!!options.setNetPriceAsRegular ? null : sameInCustomPriceList.price })
902
+ }
903
+ : {})), (!!isPA
904
+ ? {
905
+ promo_price: __assign(__assign({}, (item.promo_price || { currency: 'CAD' })), { amount: (_a = sameInCustomPriceList.PA_price) !== null && _a !== void 0 ? _a : sameInCustomPriceList.price, price_type: sameInCustomPriceList.type, percent_applied: sameInCustomPriceList.PA_percent }),
906
+ discount_price: __assign(__assign({}, (item.discount_price || { currency: 'CAD' })), { amount: sameInCustomPriceList.price, price_type: sameInCustomPriceList.type, percent_applied: sameInCustomPriceList.percent })
907
+ }
908
+ : {})) : {})), (!!!options.removeTierPricing && !!tier_pricing
909
+ ? {
910
+ tier_pricing: tier_pricing
911
+ }
912
+ : {}));
913
+ };
914
+ exports.checkForCustomPriceEquivalent = checkForCustomPriceEquivalent;
915
915
  //# sourceMappingURL=g2.js.map