addio-admin-sdk 1.7.21 → 1.7.22

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