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,768 +1,768 @@
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.getLabelForCartType = exports.getClientNumberForCart = exports.getPercentFromReducedPrice = exports.checkPriceForEscompte = exports.getLowestAppliedPrice = exports.getAppliedPrice = exports.getRecursiveItemsFromSubItems = exports.getRecursiveItems = exports.getGrassProductForCart = exports.getConcreteCartInfo = exports.orderCartItems = exports.getProTitleFromCart = exports.isPro = exports.getCartType = exports.checkCartTypeBeforeAddingItem = exports.checkIfDecliIsOkForMixedSale = exports.checkIfItemCanBeAddedToCart = exports.checkIfCartContainsType = exports.handleAddGrassItemsCart = void 0;
74
- var orderBy_1 = __importDefault(require("lodash/orderBy"));
75
- var flatten_1 = __importDefault(require("lodash/flatten"));
76
- var uniqBy_1 = __importDefault(require("lodash/uniqBy"));
77
- var toNumber_1 = __importDefault(require("lodash/toNumber"));
78
- var round_1 = __importDefault(require("lodash/round"));
79
- var moment_1 = __importDefault(require("moment"));
80
- var cart_1 = require("../interfaces/cart");
81
- var products_1 = require("./products");
82
- var upsells_1 = require("./upsells");
83
- var expedition_1 = require("./expedition");
84
- var products_2 = require("../constants/products");
85
- var Cart_1 = require("../../../Interfaces/Cart");
86
- var G2_1 = require("../../../Interfaces/G2");
87
- var locale_1 = require("../../../utils/locale");
88
- var inventories_1 = require("../../../utils/inventories");
89
- var products_3 = require("../../../utils/products");
90
- var data_1 = require("../../../utils/data");
91
- var data_2 = require("../interfaces/data");
92
- var g2_1 = require("./g2");
93
- var object_1 = require("../../../utils/object");
94
- var cart_2 = require("../../../utils/cart");
95
- var handleAddGrassItemsCart = function (cart, chosenDeclination, parentProduct, isUpdating, isRecommendedUpsell, formValues, fetchProduct, kentuckyBaseGrass, locale, isPro, customPriceList, recommendedUpsellParentSlug) {
96
- if (locale === void 0) { locale = 'fr'; }
97
- return __awaiter(void 0, void 0, void 0, function () {
98
- var itemsToAdd, itemsToUpdate, itemsToDelete, newShippingPayload, prodUpsell, onlySamplesInCart, baseGrass, baseGrassProd, _loop_1, _i, prodUpsell_1, anUpsell, currentInstallItem, upsell, allInstallFees, installationDecli_1, installIsDifferent, _loop_2, _a, allInstallFees_1, fee, minQteInstall_1, minInstall, fertilisationItem, roulageItem, otherInstall_1, feeProduct_1, handleProSpec_1, pro_installation_info, rest, fusion_1, productsToRemove_1, pro_installation_info;
99
- return __generator(this, function (_b) {
100
- switch (_b.label) {
101
- case 0:
102
- if (!!!chosenDeclination || !!!parentProduct)
103
- return [2, {
104
- error: ''
105
- }];
106
- itemsToAdd = [];
107
- itemsToUpdate = [];
108
- itemsToDelete = [];
109
- newShippingPayload = cart.shipping_payload;
110
- prodUpsell = parentProduct.product_upsells;
111
- onlySamplesInCart = !!cart.items.length && cart.items.every(function (item) { return !!item.is_sample; });
112
- if (!!onlySamplesInCart) {
113
- return [2, {
114
- error: (0, locale_1.translateILang)({
115
- fr: "Pour ajouter ce produit à votre panier vous devez d'abord compléter la commande en cours ou vider votre panier",
116
- en: 'To add this product to your cart, you must first complete your current order or empty your cart'
117
- }, locale)
118
- }];
119
- }
120
- if (!!isPro && !!customPriceList) {
121
- chosenDeclination = (0, g2_1.checkForCustomPriceEquivalent)(chosenDeclination, customPriceList, {
122
- removeTierPricing: chosenDeclination.sku === products_2.kentucky
123
- });
124
- }
125
- if (isUpdating && !!cart.items.find(function (i) { return i.sku === chosenDeclination.sku; })) {
126
- itemsToUpdate.push({
127
- sku: chosenDeclination.sku,
128
- qte: formValues.qte || 0
129
- });
130
- }
131
- else {
132
- itemsToAdd.push(__assign(__assign({}, chosenDeclination), { qte: formValues.qte || 0, parent_slug: !!isRecommendedUpsell && recommendedUpsellParentSlug ? recommendedUpsellParentSlug : parentProduct.slug, product_upsells: parentProduct.product_upsells, categories: parentProduct.categories }));
133
- }
134
- if (!!!!isRecommendedUpsell) return [3, 9];
135
- baseGrass = parentProduct;
136
- if (!!prodUpsell && !!prodUpsell.find(function (anUpsell) { return anUpsell.recommendation_sku === products_2.kentucky; })) {
137
- baseGrassProd = kentuckyBaseGrass;
138
- if (!!baseGrassProd)
139
- baseGrass = baseGrassProd;
140
- }
141
- if (!!!prodUpsell) return [3, 4];
142
- _loop_1 = function (anUpsell) {
143
- var sameProduct, sameDecli, anUpsellProduct, ratio;
144
- return __generator(this, function (_c) {
145
- switch (_c.label) {
146
- case 0:
147
- if (!!!anUpsell.auto_add)
148
- return [2, "continue"];
149
- return [4, fetchProduct(anUpsell.recommendation_parent_slug, locale, undefined, true)];
150
- case 1:
151
- sameProduct = _c.sent();
152
- if (!!!sameProduct || !!!sameProduct.declinations)
153
- return [2, "continue"];
154
- sameDecli = (sameProduct.declinations || []).find(function (decli) { return decli.sku === anUpsell.recommendation_sku; });
155
- if (!!!sameDecli)
156
- return [2, "continue"];
157
- if (!!isPro && !!customPriceList) {
158
- sameDecli = (0, g2_1.checkForCustomPriceEquivalent)(sameDecli, customPriceList, {
159
- removeTierPricing: sameDecli.sku === products_2.kentucky
160
- });
161
- }
162
- anUpsellProduct = __assign(__assign(__assign(__assign({}, sameDecli), { parent_slug: anUpsell.recommendation_parent_slug, recommended_qte: anUpsell.recommendation_qty, recommended_sku: anUpsell.recommendation_sku, matching_qte: !!anUpsell.matching_qty, auto_add: anUpsell.auto_add, actual_qte: anUpsell.actual_qty }), (!!anUpsell.is_recommendation ? { is_recommendation: true } : {})), (!!anUpsell.show_recommendation_msg ? { show_recommendation_msg: true } : {}));
163
- ratio = (0, upsells_1.calculateUpsellQte)(anUpsellProduct, formValues.qte || 0);
164
- if (!!ratio) {
165
- if (isUpdating && !!cart.items.find(function (i) { return i.sku === anUpsellProduct.sku; })) {
166
- itemsToUpdate.push({
167
- sku: anUpsellProduct.sku,
168
- qte: ratio
169
- });
170
- }
171
- else {
172
- itemsToAdd.push(__assign(__assign({}, sameDecli), { qte: ratio, is_upsell_of_sku: chosenDeclination.sku, parent_slug: sameProduct.slug, product_upsells: sameProduct.product_upsells, categories: sameProduct.categories }));
173
- }
174
- }
175
- return [2];
176
- }
177
- });
178
- };
179
- _i = 0, prodUpsell_1 = prodUpsell;
180
- _b.label = 1;
181
- case 1:
182
- if (!(_i < prodUpsell_1.length)) return [3, 4];
183
- anUpsell = prodUpsell_1[_i];
184
- return [5, _loop_1(anUpsell)];
185
- case 2:
186
- _b.sent();
187
- _b.label = 3;
188
- case 3:
189
- _i++;
190
- return [3, 1];
191
- case 4:
192
- currentInstallItem = cart.items.find(function (i) { return i.parent_slug === 'installation-gazon'; });
193
- if (!!!formValues.installation) return [3, 8];
194
- upsell = baseGrass.product_upsells;
195
- if (!!!upsell) return [3, 7];
196
- return [4, (0, products_1.getInstallationArray)(Number(formValues.qte), upsell, fetchProduct, locale, isPro, chosenDeclination.sku, customPriceList, {
197
- engrais: !!formValues.engrais,
198
- roulage: !!formValues.roulage
199
- })];
200
- case 5:
201
- allInstallFees = _b.sent();
202
- installationDecli_1 = allInstallFees.find(function (fee) { return fee.parent_slug === 'installation-gazon'; });
203
- installIsDifferent = !!currentInstallItem && !!installationDecli_1 && currentInstallItem.sku !== installationDecli_1.sku;
204
- _loop_2 = function (fee) {
205
- if (isUpdating && !!cart.items.find(function (i) { return i.sku === fee.sku; }) && !!!installIsDifferent) {
206
- itemsToUpdate.push({
207
- sku: fee.sku,
208
- qte: fee.qte
209
- });
210
- }
211
- else {
212
- itemsToAdd.push(fee);
213
- }
214
- };
215
- for (_a = 0, allInstallFees_1 = allInstallFees; _a < allInstallFees_1.length; _a++) {
216
- fee = allInstallFees_1[_a];
217
- _loop_2(fee);
218
- }
219
- minQteInstall_1 = (0, expedition_1.getMinQteInstall)(!!isPro);
220
- if (typeof formValues.qte === 'number' && formValues.qte >= minQteInstall_1) {
221
- minInstall = cart.items.find(function (item) { return item.parent_slug === 'frais-minimum-gazon-pour-installation'; });
222
- if (!!minInstall) {
223
- itemsToDelete.push(minInstall.sku);
224
- }
225
- }
226
- fertilisationItem = cart.items.find(function (i) { return i.parent_slug === 'installation-fertilisation'; });
227
- if (isUpdating && !!!formValues.engrais && !!fertilisationItem) {
228
- itemsToDelete.push(fertilisationItem.sku);
229
- }
230
- roulageItem = cart.items.find(function (i) { return i.parent_slug === 'installation-roulage'; });
231
- if (isUpdating && !!!formValues.roulage && !!roulageItem) {
232
- itemsToDelete.push(roulageItem.sku);
233
- }
234
- otherInstall_1 = !!installIsDifferent ? currentInstallItem : undefined;
235
- if (!!otherInstall_1) {
236
- itemsToDelete.push(otherInstall_1.sku);
237
- itemsToDelete = __spreadArray(__spreadArray([], itemsToDelete, true), cart.items.filter(function (i) { return i.is_upsell_of_sku === otherInstall_1.sku; }).map(function (i) { return i.sku; }), true);
238
- }
239
- if (!!!isPro) return [3, 7];
240
- newShippingPayload = __assign(__assign({}, newShippingPayload), { pro_installation_info: formValues.pro });
241
- return [4, fetchProduct('frais_extra_pro_installation', locale, undefined, true)];
242
- case 6:
243
- feeProduct_1 = _b.sent();
244
- handleProSpec_1 = function (sku, isSelected) {
245
- if (!!!feeProduct_1 || !!!installationDecli_1)
246
- return;
247
- var itemIsInCart = !!cart.items.find(function (i) { return i.sku === sku; });
248
- if (isSelected) {
249
- var decli = feeProduct_1.declinations.find(function (d) { return d.sku === sku; });
250
- if (!!decli) {
251
- if (!!customPriceList) {
252
- decli = (0, g2_1.checkForCustomPriceEquivalent)(decli, customPriceList);
253
- }
254
- if (isUpdating && itemIsInCart && !!!otherInstall_1) {
255
- itemsToUpdate.push({
256
- sku: sku,
257
- qte: typeof formValues.qte === 'number' && formValues.qte < minQteInstall_1
258
- ? minQteInstall_1
259
- : formValues.qte || 0
260
- });
261
- }
262
- else {
263
- if (!!otherInstall_1) {
264
- itemsToDelete.push(decli.sku);
265
- }
266
- itemsToAdd.push(__assign(__assign({}, decli), { qte: typeof formValues.qte === 'number' && formValues.qte < minQteInstall_1
267
- ? minQteInstall_1
268
- : formValues.qte || 0, is_upsell_of_sku: installationDecli_1.sku, parent_slug: 'frais_extra_pro_installation' }));
269
- }
270
- }
271
- }
272
- else {
273
- if (itemIsInCart) {
274
- itemsToDelete.push(sku);
275
- }
276
- }
277
- };
278
- if (!!formValues.pro && !!formValues.pro.specs) {
279
- Object.entries(formValues.pro.specs).forEach(function (spec) {
280
- handleProSpec_1(products_2.installationProSpecSkus[spec[0]], spec[1]);
281
- });
282
- }
283
- _b.label = 7;
284
- case 7: return [3, 9];
285
- case 8:
286
- if (!!isUpdating && !formValues.installation) {
287
- if (!!newShippingPayload && !!newShippingPayload.pro_installation_info) {
288
- pro_installation_info = newShippingPayload.pro_installation_info, rest = __rest(newShippingPayload, ["pro_installation_info"]);
289
- newShippingPayload = __assign({}, rest);
290
- }
291
- itemsToDelete = __spreadArray(__spreadArray([], itemsToDelete, true), (0, products_1.getAllInstallFromItems)(cart.items).map(function (i) { return i.sku; }), true);
292
- }
293
- _b.label = 9;
294
- case 9:
295
- itemsToAdd = (0, upsells_1.removeExceptionAutoAddUpsells)(itemsToAdd);
296
- if (!!isUpdating) {
297
- if (!!cart.items) {
298
- fusion_1 = __spreadArray(__spreadArray([], cart.items.filter(function (i) { return itemsToUpdate.some(function (update) { return i.sku === update.sku; }) || i.is_upsell_of_sku === 'summary'; }), true), itemsToAdd, true);
299
- productsToRemove_1 = fusion_1.filter(function (item) {
300
- var removedBecauseException = !!!(0, upsells_1.removeExceptionAutoAddUpsells)(fusion_1).some(function (i) { return i.sku === item.sku; });
301
- return item.is_upsell_of_sku === 'summary' || !!removedBecauseException;
302
- });
303
- itemsToAdd = itemsToAdd.filter(function (i) { return !!!productsToRemove_1.map(function (r) { return r.sku; }).includes(i.sku); });
304
- if (!!productsToRemove_1.length) {
305
- itemsToDelete = __spreadArray(__spreadArray([], itemsToDelete, true), productsToRemove_1.map(function (item) { return item.sku; }), true);
306
- if (newShippingPayload) {
307
- pro_installation_info = newShippingPayload.pro_installation_info;
308
- newShippingPayload = __assign(__assign({}, newShippingPayload), (!!pro_installation_info ? { pro_installation_info: pro_installation_info } : {}));
309
- }
310
- }
311
- }
312
- }
313
- return [2, {
314
- itemsToAdd: itemsToAdd,
315
- itemsToUpdate: itemsToUpdate,
316
- itemsToDelete: itemsToDelete,
317
- newShippingPayload: newShippingPayload
318
- }];
319
- }
320
- });
321
- });
322
- };
323
- exports.handleAddGrassItemsCart = handleAddGrassItemsCart;
324
- var checkIfCartContainsType = function (type, cartData, excludeUndefinedForAccessories, excludeUndefinedForBeton) {
325
- if (excludeUndefinedForAccessories === void 0) { excludeUndefinedForAccessories = true; }
326
- if (excludeUndefinedForBeton === void 0) { excludeUndefinedForBeton = true; }
327
- switch (type) {
328
- case cart_1.CartGeneralTypeEnum.GRASS:
329
- return !!cartData.items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'gazon') && !!!i.is_sample; });
330
- case cart_1.CartGeneralTypeEnum.VRAC:
331
- return !!cartData.items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'vrac'); });
332
- case cart_1.CartGeneralTypeEnum.INSTALLATION:
333
- return !!cartData.items.some(function (i) { return i.parent_slug === 'installation-gazon'; });
334
- case cart_1.CartGeneralTypeEnum.SAMPLE:
335
- return !!cartData.items.some(function (i) { return !!i.is_sample; });
336
- case cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES:
337
- return (!!cartData.items &&
338
- !!cartData.items.length &&
339
- cartData.items
340
- .filter(function (i) { return !!!i.is_service; })
341
- .every(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'accessoire', excludeUndefinedForAccessories); }));
342
- case cart_1.CartGeneralTypeEnum.BETON:
343
- return (!!cartData.items &&
344
- !!cartData.items.length &&
345
- cartData.items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'beton', excludeUndefinedForBeton) && !!!i.is_sample; }));
346
- default:
347
- return false;
348
- }
349
- };
350
- exports.checkIfCartContainsType = checkIfCartContainsType;
351
- var checkIfItemCanBeAddedToCart = function (prod, parentProdType, cartData, addToCart, declination, useParent, autoAdd) {
352
- if (addToCart === void 0) { addToCart = false; }
353
- if (declination === void 0) { declination = undefined; }
354
- if (useParent === void 0) { useParent = false; }
355
- if (autoAdd === void 0) { autoAdd = false; }
356
- var addItToCart = !!autoAdd ? true : (0, exports.checkCartTypeBeforeAddingItem)(prod, declination, cartData);
357
- if (!!!addItToCart) {
358
- return {
359
- addToCart: false,
360
- error: {
361
- fr: "Pour ajouter ce type de produit à votre panier vous devez d'abord compléter la commande en cours ou vider votre panier.",
362
- en: 'To add this type of product to your cart, you must first complete the current order or empty your cart.'
363
- }
364
- };
365
- }
366
- var prodDeclination = declination;
367
- if (!!!useParent) {
368
- switch (parentProdType) {
369
- case 'gazon':
370
- prodDeclination =
371
- prodDeclination || prod.declinations.find(function (declination) { return !!!declination.is_sample; });
372
- break;
373
- case 'beton':
374
- break;
375
- case 'other':
376
- case 'vrac':
377
- if (!!!prod.declinations.find(function (decli) { return !!decli.other_units; })) {
378
- prodDeclination =
379
- prodDeclination || prod.declinations.find(function (declination) { return !!!declination.is_sample; });
380
- }
381
- }
382
- }
383
- var decliIsSample = !!prodDeclination && !!prodDeclination.is_sample;
384
- if (!!decliIsSample) {
385
- if (!!cartData && !!cartData.items.length) {
386
- switch (true) {
387
- case cartData.items.length === 4:
388
- return {
389
- addToCart: false,
390
- error: {
391
- fr: 'Un maximum de quatre échantillons est permis à la fois par commande.',
392
- en: 'A maximum of four samples can be added to your cart.'
393
- }
394
- };
395
- case !!cartData.items.find(function (item) { return !!prodDeclination && item.sku === prodDeclination.sku; }):
396
- return {
397
- addToCart: false,
398
- error: {
399
- fr: 'Vous avez déjà cet échantillon au panier.',
400
- en: 'This sample is already in your cart.'
401
- }
402
- };
403
- default:
404
- addToCart = true;
405
- }
406
- }
407
- else {
408
- addToCart = true;
409
- }
410
- }
411
- else if (!!prodDeclination && !!!(0, products_1.checkIfProductIsOfType)(prod, 'gazon')) {
412
- addToCart = true;
413
- }
414
- return {
415
- addToCart: addToCart,
416
- declinationChecked: prodDeclination,
417
- showForm: true
418
- };
419
- };
420
- exports.checkIfItemCanBeAddedToCart = checkIfItemCanBeAddedToCart;
421
- var checkIfDecliIsOkForMixedSale = function (decli, typeToCheck) {
422
- return (decli.attributes &&
423
- !!decli.attributes[data_2.AttributesIdEnumGR.VENTE_MIXTE] &&
424
- !!decli.attributes[data_2.AttributesIdEnumGR.VENTE_MIXTE].includes(typeToCheck));
425
- };
426
- exports.checkIfDecliIsOkForMixedSale = checkIfDecliIsOkForMixedSale;
427
- var checkCartTypeBeforeAddingItem = function (prod, declination, cartData, forceCartType) {
428
- if (!!!cartData || !!!cartData.items || !!!cartData.items.length) {
429
- if (!!!forceCartType)
430
- return true;
431
- }
432
- var cartType = !!forceCartType ? forceCartType : !!cartData ? (0, exports.getCartType)(cartData) : '';
433
- if (!!!cartType)
434
- return true;
435
- var items = !!cartData ? cartData.items : [];
436
- if (!!cartData && !!cartData.is_booking)
437
- return false;
438
- if ((!!!prod.declinations.find(function (decli) { return !!decli.is_sample; }) || (!!declination && !declination.is_sample)) &&
439
- cartType === cart_1.CartGeneralTypeEnum.SAMPLE) {
440
- return false;
441
- }
442
- if (!!declination && !!declination.is_sample && cartType !== cart_1.CartGeneralTypeEnum.SAMPLE) {
443
- return false;
444
- }
445
- if (!!(0, products_1.checkIfProductIsOfType)(prod, 'gazon') && cartType !== cart_1.CartGeneralTypeEnum.SAMPLE) {
446
- if (!!items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'gazon'); }))
447
- return false;
448
- if (!!items.some(function (i) { return !!!(0, exports.checkIfDecliIsOkForMixedSale)(i, 'gazon'); }))
449
- return false;
450
- }
451
- var currentCartUpsells = [];
452
- try {
453
- currentCartUpsells = (0, uniqBy_1.default)((0, flatten_1.default)(items.map(function (i) { return i.product_upsells || []; })), function (i) {
454
- return !!i.recommendation_sku ? i.recommendation_sku : i.recommendation_parent_slug;
455
- });
456
- }
457
- catch (e) {
458
- if (!!process.env.IS_TEST_ENV)
459
- console.log('error on fetching cart upsells: ', e.toString());
460
- }
461
- if (cartType === cart_1.CartGeneralTypeEnum.GRASS) {
462
- if (!!!prod.declinations.some(function (decli) { return (0, exports.checkIfDecliIsOkForMixedSale)(decli, 'gazon'); }) ||
463
- (!!declination && !!!(0, exports.checkIfDecliIsOkForMixedSale)(declination, 'gazon'))) {
464
- if (!!!currentCartUpsells.length ||
465
- (!!currentCartUpsells.length &&
466
- (!!!prod.declinations.find(function (decli) {
467
- return !!currentCartUpsells.find(function (item) {
468
- return (!!item.use_parent &&
469
- item.recommendation_parent_slug &&
470
- item.recommendation_parent_slug === prod.slug) ||
471
- item.recommendation_sku === decli.sku;
472
- });
473
- }) ||
474
- (!!declination &&
475
- !!!currentCartUpsells.find(function (item) {
476
- return item.recommendation_sku === declination.sku ||
477
- (!!item.use_parent &&
478
- item.recommendation_parent_slug &&
479
- item.recommendation_parent_slug === prod.slug);
480
- }))))) {
481
- return false;
482
- }
483
- }
484
- else {
485
- }
486
- }
487
- if (cartType !== cart_1.CartGeneralTypeEnum.VRAC &&
488
- (prod.declinations.every(function (decli) { return !!(0, products_1.checkIfProductIsOfType)(decli, 'vrac'); }) ||
489
- (!!declination && !!(0, products_1.checkIfProductIsOfType)(declination, 'vrac'))) &&
490
- items.some(function (i) { return !!!(0, exports.checkIfDecliIsOkForMixedSale)(i, 'vrac'); })) {
491
- return false;
492
- }
493
- if (cartType === cart_1.CartGeneralTypeEnum.VRAC &&
494
- (!!!prod.declinations.some(function (decli) { return !!(0, products_1.checkIfProductIsOfType)(decli, 'vrac') || !!(0, exports.checkIfDecliIsOkForMixedSale)(decli, 'vrac'); }) ||
495
- (!!declination &&
496
- !!!(0, products_1.checkIfProductIsOfType)(declination, 'vrac', true) &&
497
- !!!(0, exports.checkIfDecliIsOkForMixedSale)(declination, 'vrac')))) {
498
- return false;
499
- }
500
- return true;
501
- };
502
- exports.checkCartTypeBeforeAddingItem = checkCartTypeBeforeAddingItem;
503
- var getCartType = function (cartData) {
504
- switch (true) {
505
- case !!cartData.is_booking:
506
- return !!cartData.is_booking_beton ? cart_1.CartGeneralTypeEnum.BOOKING_BETON : cart_1.CartGeneralTypeEnum.BOOKING;
507
- case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.SAMPLE, cartData):
508
- return cart_1.CartGeneralTypeEnum.SAMPLE;
509
- case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.VRAC, cartData):
510
- return cart_1.CartGeneralTypeEnum.VRAC;
511
- case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.GRASS, cartData):
512
- return cart_1.CartGeneralTypeEnum.GRASS;
513
- case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES, cartData):
514
- return cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES;
515
- default:
516
- return cart_1.CartGeneralTypeEnum.BETON;
517
- }
518
- };
519
- exports.getCartType = getCartType;
520
- var isPro = function (invoice) {
521
- return !!(0, exports.getProTitleFromCart)(invoice);
522
- };
523
- exports.isPro = isPro;
524
- var getProTitleFromCart = function (invoice) {
525
- return (0, object_1.recursiveCheckObject)(invoice, 'customer_info.pro_title');
526
- };
527
- exports.getProTitleFromCart = getProTitleFromCart;
528
- var orderCartItems = function (cart) {
529
- return (0, orderBy_1.default)(!!cart.promise_to_purchase && !!cart.promise_to_purchase.ids
530
- ? (0, g2_1.groupArrayOfItemsByItemAndCorrespondingEscompteItem)(cart.items)
531
- : cart.items, function (item) {
532
- var upsellRelativeItem = !!item.is_upsell_of_sku
533
- ? cart.items.find(function (i) { return i.sku === item.is_upsell_of_sku; })
534
- : undefined;
535
- if (!!!item.is_service ||
536
- ((0, g2_1.isEscompteSuppItem)(item.sku) && !!upsellRelativeItem && !!!upsellRelativeItem.is_service))
537
- return 0;
538
- if (item.is_service && item.sku === 'FRSBETON')
539
- return 1;
540
- return 2;
541
- });
542
- };
543
- exports.orderCartItems = orderCartItems;
544
- var getConcreteCartInfo = function (cartData, fetchInventoryItem, pickupStoreId, inventoryItemsArray) { return __awaiter(void 0, void 0, void 0, function () {
545
- var containsYellowProduct, containsGreenProduct, containsRedProduct, isInStock, storeId, inventoryItems, _a;
546
- return __generator(this, function (_b) {
547
- switch (_b.label) {
548
- case 0:
549
- containsYellowProduct = (0, products_1.getConcreteItemsByAvailability)(cartData, 'delais-a-prevoir');
550
- containsGreenProduct = (0, products_1.getConcreteItemsByAvailability)(cartData, 'en-stock');
551
- containsRedProduct = (0, products_1.getConcreteItemsByAvailability)(cartData, 'aucune-production-prevue');
552
- isInStock = true;
553
- storeId = !!pickupStoreId ? pickupStoreId : (0, object_1.recursiveCheckObject)(cartData, 'shipping_payload.pickup_store.id');
554
- if (!(!!storeId && !!containsGreenProduct && !!containsGreenProduct.length)) return [3, 4];
555
- if (!(!!inventoryItemsArray && !!inventoryItemsArray.length)) return [3, 1];
556
- _a = inventoryItemsArray;
557
- return [3, 3];
558
- case 1: return [4, Promise.all(containsGreenProduct.map(function (item) { return __awaiter(void 0, void 0, void 0, function () { var _a; return __generator(this, function (_b) {
559
- switch (_b.label) {
560
- case 0:
561
- if (!!!item.is_service) return [3, 1];
562
- _a = undefined;
563
- return [3, 3];
564
- case 1: return [4, fetchInventoryItem(item.sku)];
565
- case 2:
566
- _a = _b.sent();
567
- _b.label = 3;
568
- case 3: return [2, _a];
569
- }
570
- }); }); }))];
571
- case 2:
572
- _a = (_b.sent()).filter(function (i) { return !!i; });
573
- _b.label = 3;
574
- case 3:
575
- inventoryItems = _a;
576
- isInStock =
577
- !!inventoryItems &&
578
- !!inventoryItems.length &&
579
- inventoryItems.every(function (inventoryItem) {
580
- var cartItem = containsGreenProduct.find(function (i) { return i.sku === inventoryItem.sku; });
581
- if (!!!cartItem)
582
- return false;
583
- var inventoryStock = inventoryItem.inventories.find(function (i) { return i.store_id === storeId; });
584
- if (!!!inventoryStock || !!!inventoryStock.qty)
585
- return false;
586
- var qtys = (0, inventories_1.getQty)(inventoryItem.other_units, inventoryStock.qty.available);
587
- var sellUnit = qtys['sellUnit'];
588
- if (!sellUnit)
589
- return false;
590
- return sellUnit.value >= cartItem.qte;
591
- });
592
- _b.label = 4;
593
- case 4: return [2, {
594
- type: !!containsRedProduct && !!containsRedProduct.length
595
- ? 'red'
596
- : !!containsYellowProduct && !!containsYellowProduct.length
597
- ? 'yellow'
598
- : 'green',
599
- inStock: isInStock
600
- }];
601
- }
602
- });
603
- }); };
604
- exports.getConcreteCartInfo = getConcreteCartInfo;
605
- var getGrassProductForCart = function (item) {
606
- if (!!!item)
607
- return;
608
- return {
609
- slug: item.parent_slug || '',
610
- sku: item.sku,
611
- qte: item.qte,
612
- price: (0, products_3.getLowestPrice)(item).price.amount
613
- };
614
- };
615
- exports.getGrassProductForCart = getGrassProductForCart;
616
- var getRecursiveItems = function (cartItems, cartContainsGrass, keepFees) {
617
- var getRecusiveItem = function (item) {
618
- var subItems = cartItems.filter(function (i) { return i.is_upsell_of_sku === item.sku; }).map(function (subI) { return getRecusiveItem(subI); });
619
- return __assign(__assign({}, item), { sub_items: !!subItems && !!subItems.length ? subItems : undefined });
620
- };
621
- var newItemList = cartItems
622
- .map(function (i) { return getRecusiveItem(i); })
623
- .filter(function (i) {
624
- return (!!keepFees && !!i.is_upsell_of_sku && i.is_upsell_of_sku === 'summary') ||
625
- (!!i.sub_items && !!!i.is_upsell_of_sku) ||
626
- (!!!i.is_upsell_of_sku && !!!i.sub_items);
627
- });
628
- return !!!cartContainsGrass ? newItemList : (0, orderBy_1.default)(newItemList, function (i) { return !!i.sub_items; }, 'desc');
629
- };
630
- exports.getRecursiveItems = getRecursiveItems;
631
- var getRecursiveItemsFromSubItems = function (item) {
632
- var getRecusiveItem = function (item) {
633
- var subItems = item.sub_items;
634
- if (!!subItems) {
635
- var items = __spreadArray([item], (0, flatten_1.default)(subItems.map(function (i) { return getRecusiveItem(i); })), true);
636
- return items;
637
- }
638
- return [item];
639
- };
640
- return !!item.sub_items ? __spreadArray([item], (0, flatten_1.default)(item.sub_items.map(function (i) { return getRecusiveItem(i); })), true) : [item];
641
- };
642
- exports.getRecursiveItemsFromSubItems = getRecursiveItemsFromSubItems;
643
- var getAppliedPrice = function (item, options) {
644
- if (options === void 0) { options = {}; }
645
- var applied = (0, exports.getLowestAppliedPrice)(item);
646
- if (!!options.getLowest) {
647
- return applied.amount;
648
- }
649
- if ((!!!item.promo_price && !!!item.discount_price) || !!options.isBookingBeton) {
650
- return item.regular_price.amount;
651
- }
652
- var itemPriceIsEscompte = (!!item.promo_price && (0, exports.checkPriceForEscompte)(item.promo_price)) ||
653
- (!!item.discount_price && (0, exports.checkPriceForEscompte)(item.discount_price));
654
- if (!!itemPriceIsEscompte) {
655
- if (!!item.discount_price)
656
- return item.discount_price.amount;
657
- return item.regular_price.amount;
658
- }
659
- return applied.amount;
660
- };
661
- exports.getAppliedPrice = getAppliedPrice;
662
- var getLowestAppliedPrice = function (item) {
663
- var regular = item.regular_price;
664
- var promo = item.promo_price;
665
- var discount = item.discount_price;
666
- var regularPrice = regular.amount || 0;
667
- var promoPrice = !!promo ? promo.amount : regularPrice;
668
- var discountPrice = !!discount ? discount.amount : regularPrice;
669
- if (!!promo && promoPrice <= discountPrice && promoPrice <= regularPrice) {
670
- return promo;
671
- }
672
- if (!!discount && discountPrice <= promoPrice && discountPrice <= regularPrice) {
673
- return discount;
674
- }
675
- return regular;
676
- };
677
- exports.getLowestAppliedPrice = getLowestAppliedPrice;
678
- var checkPriceForEscompte = function (price) {
679
- var priceType = price.price_type;
680
- var posUnitPrice = "pos_custom_".concat(Cart_1.CustomPromoType.UNIT_PRICE);
681
- var isEscompteType = !!priceType &&
682
- !!![
683
- G2_1.CustomPriceItemTypeEnum.ENTENTE,
684
- G2_1.CustomPriceItemTypeEnum.REG,
685
- posUnitPrice,
686
- products_3.priceTypeEnum.TIER_PRICING
687
- ].includes(priceType);
688
- return !!isEscompteType;
689
- };
690
- exports.checkPriceForEscompte = checkPriceForEscompte;
691
- var getPercentFromReducedPrice = function (item, isPro) {
692
- var typeToCheck = !!item.promo_price && !!item.promo_price.price_type ? 'promo' : 'discount';
693
- var priceToCheck = typeToCheck === 'promo' ? item.promo_price : item.discount_price;
694
- if (!!!priceToCheck || (!!!isPro && !!!priceToCheck.overridden))
695
- return;
696
- if (!!!(0, exports.checkPriceForEscompte)(priceToCheck))
697
- return;
698
- if (typeToCheck === 'promo')
699
- return (0, round_1.default)((0, cart_2.getActualPromoPrice)(item, '%'), 2);
700
- return (0, round_1.default)((0, cart_2.getActualDiscountPrice)(item, '%'), 2);
701
- };
702
- exports.getPercentFromReducedPrice = getPercentFromReducedPrice;
703
- var getClientNumberForCart = function (cartData, space, options) {
704
- if (options === void 0) { options = {}; }
705
- if (!!!cartData)
706
- return '';
707
- var proTitle = (0, object_1.recursiveCheckObject)(cartData, 'customer_info.pro_title');
708
- var isWebCart = cartData.cart_type === Cart_1.CartTypeEnum.WEB || !!cartData.is_from_web;
709
- var paFoundInCart = (0, object_1.recursiveCheckObject)(cartData, 'promise_to_purchase');
710
- var isPA = !!((0, object_1.recursiveCheckObject)(paFoundInCart, 'ids') || []).length;
711
- if (!!paFoundInCart && !!options.checkIfEscPaApplied) {
712
- var bankTypes = !!space ? space.bankTypes.get() : [];
713
- var grassBank_1 = bankTypes.find(function (b) { return (0, locale_1.getLocaleOfDictionnary)(b.name, 'fr').toLowerCase() == 'gazon'; });
714
- var atLeastOneEscPaApplied = cartData.items.some(function (i) { return (0, g2_1.isEscompteSuppItem)(i.sku); }) ||
715
- (!!grassBank_1 &&
716
- (paFoundInCart.banks_used || []).some(function (b) { return b.bank_type_id == grassBank_1.id; }) &&
717
- cartData.items.some(function (i) { return i.sku == products_2.kentucky; }));
718
- isPA = atLeastOneEscPaApplied;
719
- }
720
- if (!!proTitle && !!cartData.customer_id) {
721
- return "".concat(cartData.customer_id).concat(!!isPA ? 'PA' : '');
722
- }
723
- if (!!isWebCart) {
724
- return "".concat(!!cartData.is_pickup ? 'COM' : 'LIV').concat(!!cartData.paid_at ? (0, moment_1.default)((0, data_1.formatDate)(cartData.paid_at)).format('YY') : '00', "WEB");
725
- }
726
- if (!!options.isQuote) {
727
- return proTitle === 'anonymous-pos-pro' ? 'Paysagiste' : 'Détail';
728
- }
729
- return _getPOSCustomerTypeForCart(cartData);
730
- };
731
- exports.getClientNumberForCart = getClientNumberForCart;
732
- var _getPOSCustomerTypeForCart = function (cartData) {
733
- var isPickup = !!cartData && !!cartData.is_pickup;
734
- var isPro = !!cartData.customer_info && !!cartData.customer_info.pro_title;
735
- var currentYear = !!cartData.paid_at ? (0, moment_1.default)((0, data_1.formatDate)(cartData.paid_at)).format('YY') : '00';
736
- var storeNb = !!cartData.created_by && !!cartData.created_by.at_store_number ? cartData.created_by.at_store_number : 0;
737
- var aNumber = (0, toNumber_1.default)(storeNb);
738
- var endOfCode = '';
739
- if (!!!aNumber) {
740
- endOfCode = "".concat(!!isPro ? '3' : '').concat(storeNb);
741
- }
742
- else {
743
- endOfCode = "".concat(!!isPro ? '3' : aNumber < 10 ? '0' : '').concat(aNumber);
744
- }
745
- return "".concat(!!isPickup ? 'COM' : 'LIV').concat(currentYear).concat(endOfCode);
746
- };
747
- var getLabelForCartType = function (value) {
748
- switch (value) {
749
- case cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES:
750
- return 'Accessoires seulement';
751
- case cart_1.CartGeneralTypeEnum.BETON:
752
- return 'Béton';
753
- case cart_1.CartGeneralTypeEnum.SAMPLE:
754
- return 'Échantillons';
755
- case cart_1.CartGeneralTypeEnum.GRASS:
756
- return 'Gazon';
757
- case cart_1.CartGeneralTypeEnum.INSTALLATION:
758
- return 'Installation';
759
- case cart_1.CartGeneralTypeEnum.VRAC:
760
- return 'Vrac';
761
- case Cart_1.CartContentTypeEnum.MIXED:
762
- return 'Mixte';
763
- default:
764
- return value;
765
- }
766
- };
767
- exports.getLabelForCartType = getLabelForCartType;
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.getLabelForCartType = exports.getClientNumberForCart = exports.getPercentFromReducedPrice = exports.checkPriceForEscompte = exports.getLowestAppliedPrice = exports.getAppliedPrice = exports.getRecursiveItemsFromSubItems = exports.getRecursiveItems = exports.getGrassProductForCart = exports.getConcreteCartInfo = exports.orderCartItems = exports.getProTitleFromCart = exports.isPro = exports.getCartType = exports.checkCartTypeBeforeAddingItem = exports.checkIfDecliIsOkForMixedSale = exports.checkIfItemCanBeAddedToCart = exports.checkIfCartContainsType = exports.handleAddGrassItemsCart = void 0;
74
+ var orderBy_1 = __importDefault(require("lodash/orderBy"));
75
+ var flatten_1 = __importDefault(require("lodash/flatten"));
76
+ var uniqBy_1 = __importDefault(require("lodash/uniqBy"));
77
+ var toNumber_1 = __importDefault(require("lodash/toNumber"));
78
+ var round_1 = __importDefault(require("lodash/round"));
79
+ var moment_1 = __importDefault(require("moment"));
80
+ var cart_1 = require("../interfaces/cart");
81
+ var products_1 = require("./products");
82
+ var upsells_1 = require("./upsells");
83
+ var expedition_1 = require("./expedition");
84
+ var products_2 = require("../constants/products");
85
+ var Cart_1 = require("../../../Interfaces/Cart");
86
+ var G2_1 = require("../../../Interfaces/G2");
87
+ var locale_1 = require("../../../utils/locale");
88
+ var inventories_1 = require("../../../utils/inventories");
89
+ var products_3 = require("../../../utils/products");
90
+ var data_1 = require("../../../utils/data");
91
+ var data_2 = require("../interfaces/data");
92
+ var g2_1 = require("./g2");
93
+ var object_1 = require("../../../utils/object");
94
+ var cart_2 = require("../../../utils/cart");
95
+ var handleAddGrassItemsCart = function (cart, chosenDeclination, parentProduct, isUpdating, isRecommendedUpsell, formValues, fetchProduct, kentuckyBaseGrass, locale, isPro, customPriceList, recommendedUpsellParentSlug) {
96
+ if (locale === void 0) { locale = 'fr'; }
97
+ return __awaiter(void 0, void 0, void 0, function () {
98
+ var itemsToAdd, itemsToUpdate, itemsToDelete, newShippingPayload, prodUpsell, onlySamplesInCart, baseGrass, baseGrassProd, _loop_1, _i, prodUpsell_1, anUpsell, currentInstallItem, upsell, allInstallFees, installationDecli_1, installIsDifferent, _loop_2, _a, allInstallFees_1, fee, minQteInstall_1, minInstall, fertilisationItem, roulageItem, otherInstall_1, feeProduct_1, handleProSpec_1, pro_installation_info, rest, fusion_1, productsToRemove_1, pro_installation_info;
99
+ return __generator(this, function (_b) {
100
+ switch (_b.label) {
101
+ case 0:
102
+ if (!!!chosenDeclination || !!!parentProduct)
103
+ return [2, {
104
+ error: ''
105
+ }];
106
+ itemsToAdd = [];
107
+ itemsToUpdate = [];
108
+ itemsToDelete = [];
109
+ newShippingPayload = cart.shipping_payload;
110
+ prodUpsell = parentProduct.product_upsells;
111
+ onlySamplesInCart = !!cart.items.length && cart.items.every(function (item) { return !!item.is_sample; });
112
+ if (!!onlySamplesInCart) {
113
+ return [2, {
114
+ error: (0, locale_1.translateILang)({
115
+ fr: "Pour ajouter ce produit à votre panier vous devez d'abord compléter la commande en cours ou vider votre panier",
116
+ en: 'To add this product to your cart, you must first complete your current order or empty your cart'
117
+ }, locale)
118
+ }];
119
+ }
120
+ if (!!isPro && !!customPriceList) {
121
+ chosenDeclination = (0, g2_1.checkForCustomPriceEquivalent)(chosenDeclination, customPriceList, {
122
+ removeTierPricing: chosenDeclination.sku === products_2.kentucky
123
+ });
124
+ }
125
+ if (isUpdating && !!cart.items.find(function (i) { return i.sku === chosenDeclination.sku; })) {
126
+ itemsToUpdate.push({
127
+ sku: chosenDeclination.sku,
128
+ qte: formValues.qte || 0
129
+ });
130
+ }
131
+ else {
132
+ itemsToAdd.push(__assign(__assign({}, chosenDeclination), { qte: formValues.qte || 0, parent_slug: !!isRecommendedUpsell && recommendedUpsellParentSlug ? recommendedUpsellParentSlug : parentProduct.slug, product_upsells: parentProduct.product_upsells, categories: parentProduct.categories }));
133
+ }
134
+ if (!!!!isRecommendedUpsell) return [3, 9];
135
+ baseGrass = parentProduct;
136
+ if (!!prodUpsell && !!prodUpsell.find(function (anUpsell) { return anUpsell.recommendation_sku === products_2.kentucky; })) {
137
+ baseGrassProd = kentuckyBaseGrass;
138
+ if (!!baseGrassProd)
139
+ baseGrass = baseGrassProd;
140
+ }
141
+ if (!!!prodUpsell) return [3, 4];
142
+ _loop_1 = function (anUpsell) {
143
+ var sameProduct, sameDecli, anUpsellProduct, ratio;
144
+ return __generator(this, function (_c) {
145
+ switch (_c.label) {
146
+ case 0:
147
+ if (!!!anUpsell.auto_add)
148
+ return [2, "continue"];
149
+ return [4, fetchProduct(anUpsell.recommendation_parent_slug, locale, undefined, true)];
150
+ case 1:
151
+ sameProduct = _c.sent();
152
+ if (!!!sameProduct || !!!sameProduct.declinations)
153
+ return [2, "continue"];
154
+ sameDecli = (sameProduct.declinations || []).find(function (decli) { return decli.sku === anUpsell.recommendation_sku; });
155
+ if (!!!sameDecli)
156
+ return [2, "continue"];
157
+ if (!!isPro && !!customPriceList) {
158
+ sameDecli = (0, g2_1.checkForCustomPriceEquivalent)(sameDecli, customPriceList, {
159
+ removeTierPricing: sameDecli.sku === products_2.kentucky
160
+ });
161
+ }
162
+ anUpsellProduct = __assign(__assign(__assign(__assign({}, sameDecli), { parent_slug: anUpsell.recommendation_parent_slug, recommended_qte: anUpsell.recommendation_qty, recommended_sku: anUpsell.recommendation_sku, matching_qte: !!anUpsell.matching_qty, auto_add: anUpsell.auto_add, actual_qte: anUpsell.actual_qty }), (!!anUpsell.is_recommendation ? { is_recommendation: true } : {})), (!!anUpsell.show_recommendation_msg ? { show_recommendation_msg: true } : {}));
163
+ ratio = (0, upsells_1.calculateUpsellQte)(anUpsellProduct, formValues.qte || 0);
164
+ if (!!ratio) {
165
+ if (isUpdating && !!cart.items.find(function (i) { return i.sku === anUpsellProduct.sku; })) {
166
+ itemsToUpdate.push({
167
+ sku: anUpsellProduct.sku,
168
+ qte: ratio
169
+ });
170
+ }
171
+ else {
172
+ itemsToAdd.push(__assign(__assign({}, sameDecli), { qte: ratio, is_upsell_of_sku: chosenDeclination.sku, parent_slug: sameProduct.slug, product_upsells: sameProduct.product_upsells, categories: sameProduct.categories }));
173
+ }
174
+ }
175
+ return [2];
176
+ }
177
+ });
178
+ };
179
+ _i = 0, prodUpsell_1 = prodUpsell;
180
+ _b.label = 1;
181
+ case 1:
182
+ if (!(_i < prodUpsell_1.length)) return [3, 4];
183
+ anUpsell = prodUpsell_1[_i];
184
+ return [5, _loop_1(anUpsell)];
185
+ case 2:
186
+ _b.sent();
187
+ _b.label = 3;
188
+ case 3:
189
+ _i++;
190
+ return [3, 1];
191
+ case 4:
192
+ currentInstallItem = cart.items.find(function (i) { return i.parent_slug === 'installation-gazon'; });
193
+ if (!!!formValues.installation) return [3, 8];
194
+ upsell = baseGrass.product_upsells;
195
+ if (!!!upsell) return [3, 7];
196
+ return [4, (0, products_1.getInstallationArray)(Number(formValues.qte), upsell, fetchProduct, locale, isPro, chosenDeclination.sku, customPriceList, {
197
+ engrais: !!formValues.engrais,
198
+ roulage: !!formValues.roulage
199
+ })];
200
+ case 5:
201
+ allInstallFees = _b.sent();
202
+ installationDecli_1 = allInstallFees.find(function (fee) { return fee.parent_slug === 'installation-gazon'; });
203
+ installIsDifferent = !!currentInstallItem && !!installationDecli_1 && currentInstallItem.sku !== installationDecli_1.sku;
204
+ _loop_2 = function (fee) {
205
+ if (isUpdating && !!cart.items.find(function (i) { return i.sku === fee.sku; }) && !!!installIsDifferent) {
206
+ itemsToUpdate.push({
207
+ sku: fee.sku,
208
+ qte: fee.qte
209
+ });
210
+ }
211
+ else {
212
+ itemsToAdd.push(fee);
213
+ }
214
+ };
215
+ for (_a = 0, allInstallFees_1 = allInstallFees; _a < allInstallFees_1.length; _a++) {
216
+ fee = allInstallFees_1[_a];
217
+ _loop_2(fee);
218
+ }
219
+ minQteInstall_1 = (0, expedition_1.getMinQteInstall)(!!isPro);
220
+ if (typeof formValues.qte === 'number' && formValues.qte >= minQteInstall_1) {
221
+ minInstall = cart.items.find(function (item) { return item.parent_slug === 'frais-minimum-gazon-pour-installation'; });
222
+ if (!!minInstall) {
223
+ itemsToDelete.push(minInstall.sku);
224
+ }
225
+ }
226
+ fertilisationItem = cart.items.find(function (i) { return i.parent_slug === 'installation-fertilisation'; });
227
+ if (isUpdating && !!!formValues.engrais && !!fertilisationItem) {
228
+ itemsToDelete.push(fertilisationItem.sku);
229
+ }
230
+ roulageItem = cart.items.find(function (i) { return i.parent_slug === 'installation-roulage'; });
231
+ if (isUpdating && !!!formValues.roulage && !!roulageItem) {
232
+ itemsToDelete.push(roulageItem.sku);
233
+ }
234
+ otherInstall_1 = !!installIsDifferent ? currentInstallItem : undefined;
235
+ if (!!otherInstall_1) {
236
+ itemsToDelete.push(otherInstall_1.sku);
237
+ itemsToDelete = __spreadArray(__spreadArray([], itemsToDelete, true), cart.items.filter(function (i) { return i.is_upsell_of_sku === otherInstall_1.sku; }).map(function (i) { return i.sku; }), true);
238
+ }
239
+ if (!!!isPro) return [3, 7];
240
+ newShippingPayload = __assign(__assign({}, newShippingPayload), { pro_installation_info: formValues.pro });
241
+ return [4, fetchProduct('frais_extra_pro_installation', locale, undefined, true)];
242
+ case 6:
243
+ feeProduct_1 = _b.sent();
244
+ handleProSpec_1 = function (sku, isSelected) {
245
+ if (!!!feeProduct_1 || !!!installationDecli_1)
246
+ return;
247
+ var itemIsInCart = !!cart.items.find(function (i) { return i.sku === sku; });
248
+ if (isSelected) {
249
+ var decli = feeProduct_1.declinations.find(function (d) { return d.sku === sku; });
250
+ if (!!decli) {
251
+ if (!!customPriceList) {
252
+ decli = (0, g2_1.checkForCustomPriceEquivalent)(decli, customPriceList);
253
+ }
254
+ if (isUpdating && itemIsInCart && !!!otherInstall_1) {
255
+ itemsToUpdate.push({
256
+ sku: sku,
257
+ qte: typeof formValues.qte === 'number' && formValues.qte < minQteInstall_1
258
+ ? minQteInstall_1
259
+ : formValues.qte || 0
260
+ });
261
+ }
262
+ else {
263
+ if (!!otherInstall_1) {
264
+ itemsToDelete.push(decli.sku);
265
+ }
266
+ itemsToAdd.push(__assign(__assign({}, decli), { qte: typeof formValues.qte === 'number' && formValues.qte < minQteInstall_1
267
+ ? minQteInstall_1
268
+ : formValues.qte || 0, is_upsell_of_sku: installationDecli_1.sku, parent_slug: 'frais_extra_pro_installation' }));
269
+ }
270
+ }
271
+ }
272
+ else {
273
+ if (itemIsInCart) {
274
+ itemsToDelete.push(sku);
275
+ }
276
+ }
277
+ };
278
+ if (!!formValues.pro && !!formValues.pro.specs) {
279
+ Object.entries(formValues.pro.specs).forEach(function (spec) {
280
+ handleProSpec_1(products_2.installationProSpecSkus[spec[0]], spec[1]);
281
+ });
282
+ }
283
+ _b.label = 7;
284
+ case 7: return [3, 9];
285
+ case 8:
286
+ if (!!isUpdating && !formValues.installation) {
287
+ if (!!newShippingPayload && !!newShippingPayload.pro_installation_info) {
288
+ pro_installation_info = newShippingPayload.pro_installation_info, rest = __rest(newShippingPayload, ["pro_installation_info"]);
289
+ newShippingPayload = __assign({}, rest);
290
+ }
291
+ itemsToDelete = __spreadArray(__spreadArray([], itemsToDelete, true), (0, products_1.getAllInstallFromItems)(cart.items).map(function (i) { return i.sku; }), true);
292
+ }
293
+ _b.label = 9;
294
+ case 9:
295
+ itemsToAdd = (0, upsells_1.removeExceptionAutoAddUpsells)(itemsToAdd);
296
+ if (!!isUpdating) {
297
+ if (!!cart.items) {
298
+ fusion_1 = __spreadArray(__spreadArray([], cart.items.filter(function (i) { return itemsToUpdate.some(function (update) { return i.sku === update.sku; }) || i.is_upsell_of_sku === 'summary'; }), true), itemsToAdd, true);
299
+ productsToRemove_1 = fusion_1.filter(function (item) {
300
+ var removedBecauseException = !!!(0, upsells_1.removeExceptionAutoAddUpsells)(fusion_1).some(function (i) { return i.sku === item.sku; });
301
+ return item.is_upsell_of_sku === 'summary' || !!removedBecauseException;
302
+ });
303
+ itemsToAdd = itemsToAdd.filter(function (i) { return !!!productsToRemove_1.map(function (r) { return r.sku; }).includes(i.sku); });
304
+ if (!!productsToRemove_1.length) {
305
+ itemsToDelete = __spreadArray(__spreadArray([], itemsToDelete, true), productsToRemove_1.map(function (item) { return item.sku; }), true);
306
+ if (newShippingPayload) {
307
+ pro_installation_info = newShippingPayload.pro_installation_info;
308
+ newShippingPayload = __assign(__assign({}, newShippingPayload), (!!pro_installation_info ? { pro_installation_info: pro_installation_info } : {}));
309
+ }
310
+ }
311
+ }
312
+ }
313
+ return [2, {
314
+ itemsToAdd: itemsToAdd,
315
+ itemsToUpdate: itemsToUpdate,
316
+ itemsToDelete: itemsToDelete,
317
+ newShippingPayload: newShippingPayload
318
+ }];
319
+ }
320
+ });
321
+ });
322
+ };
323
+ exports.handleAddGrassItemsCart = handleAddGrassItemsCart;
324
+ var checkIfCartContainsType = function (type, cartData, excludeUndefinedForAccessories, excludeUndefinedForBeton) {
325
+ if (excludeUndefinedForAccessories === void 0) { excludeUndefinedForAccessories = true; }
326
+ if (excludeUndefinedForBeton === void 0) { excludeUndefinedForBeton = true; }
327
+ switch (type) {
328
+ case cart_1.CartGeneralTypeEnum.GRASS:
329
+ return !!cartData.items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'gazon') && !!!i.is_sample; });
330
+ case cart_1.CartGeneralTypeEnum.VRAC:
331
+ return !!cartData.items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'vrac'); });
332
+ case cart_1.CartGeneralTypeEnum.INSTALLATION:
333
+ return !!cartData.items.some(function (i) { return i.parent_slug === 'installation-gazon'; });
334
+ case cart_1.CartGeneralTypeEnum.SAMPLE:
335
+ return !!cartData.items.some(function (i) { return !!i.is_sample; });
336
+ case cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES:
337
+ return (!!cartData.items &&
338
+ !!cartData.items.length &&
339
+ cartData.items
340
+ .filter(function (i) { return !!!i.is_service; })
341
+ .every(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'accessoire', excludeUndefinedForAccessories); }));
342
+ case cart_1.CartGeneralTypeEnum.BETON:
343
+ return (!!cartData.items &&
344
+ !!cartData.items.length &&
345
+ cartData.items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'beton', excludeUndefinedForBeton) && !!!i.is_sample; }));
346
+ default:
347
+ return false;
348
+ }
349
+ };
350
+ exports.checkIfCartContainsType = checkIfCartContainsType;
351
+ var checkIfItemCanBeAddedToCart = function (prod, parentProdType, cartData, addToCart, declination, useParent, autoAdd) {
352
+ if (addToCart === void 0) { addToCart = false; }
353
+ if (declination === void 0) { declination = undefined; }
354
+ if (useParent === void 0) { useParent = false; }
355
+ if (autoAdd === void 0) { autoAdd = false; }
356
+ var addItToCart = !!autoAdd ? true : (0, exports.checkCartTypeBeforeAddingItem)(prod, declination, cartData);
357
+ if (!!!addItToCart) {
358
+ return {
359
+ addToCart: false,
360
+ error: {
361
+ fr: "Pour ajouter ce type de produit à votre panier vous devez d'abord compléter la commande en cours ou vider votre panier.",
362
+ en: 'To add this type of product to your cart, you must first complete the current order or empty your cart.'
363
+ }
364
+ };
365
+ }
366
+ var prodDeclination = declination;
367
+ if (!!!useParent) {
368
+ switch (parentProdType) {
369
+ case 'gazon':
370
+ prodDeclination =
371
+ prodDeclination || prod.declinations.find(function (declination) { return !!!declination.is_sample; });
372
+ break;
373
+ case 'beton':
374
+ break;
375
+ case 'other':
376
+ case 'vrac':
377
+ if (!!!prod.declinations.find(function (decli) { return !!decli.other_units; })) {
378
+ prodDeclination =
379
+ prodDeclination || prod.declinations.find(function (declination) { return !!!declination.is_sample; });
380
+ }
381
+ }
382
+ }
383
+ var decliIsSample = !!prodDeclination && !!prodDeclination.is_sample;
384
+ if (!!decliIsSample) {
385
+ if (!!cartData && !!cartData.items.length) {
386
+ switch (true) {
387
+ case cartData.items.length === 4:
388
+ return {
389
+ addToCart: false,
390
+ error: {
391
+ fr: 'Un maximum de quatre échantillons est permis à la fois par commande.',
392
+ en: 'A maximum of four samples can be added to your cart.'
393
+ }
394
+ };
395
+ case !!cartData.items.find(function (item) { return !!prodDeclination && item.sku === prodDeclination.sku; }):
396
+ return {
397
+ addToCart: false,
398
+ error: {
399
+ fr: 'Vous avez déjà cet échantillon au panier.',
400
+ en: 'This sample is already in your cart.'
401
+ }
402
+ };
403
+ default:
404
+ addToCart = true;
405
+ }
406
+ }
407
+ else {
408
+ addToCart = true;
409
+ }
410
+ }
411
+ else if (!!prodDeclination && !!!(0, products_1.checkIfProductIsOfType)(prod, 'gazon')) {
412
+ addToCart = true;
413
+ }
414
+ return {
415
+ addToCart: addToCart,
416
+ declinationChecked: prodDeclination,
417
+ showForm: true
418
+ };
419
+ };
420
+ exports.checkIfItemCanBeAddedToCart = checkIfItemCanBeAddedToCart;
421
+ var checkIfDecliIsOkForMixedSale = function (decli, typeToCheck) {
422
+ return (decli.attributes &&
423
+ !!decli.attributes[data_2.AttributesIdEnumGR.VENTE_MIXTE] &&
424
+ !!decli.attributes[data_2.AttributesIdEnumGR.VENTE_MIXTE].includes(typeToCheck));
425
+ };
426
+ exports.checkIfDecliIsOkForMixedSale = checkIfDecliIsOkForMixedSale;
427
+ var checkCartTypeBeforeAddingItem = function (prod, declination, cartData, forceCartType) {
428
+ if (!!!cartData || !!!cartData.items || !!!cartData.items.length) {
429
+ if (!!!forceCartType)
430
+ return true;
431
+ }
432
+ var cartType = !!forceCartType ? forceCartType : !!cartData ? (0, exports.getCartType)(cartData) : '';
433
+ if (!!!cartType)
434
+ return true;
435
+ var items = !!cartData ? cartData.items : [];
436
+ if (!!cartData && !!cartData.is_booking)
437
+ return false;
438
+ if ((!!!prod.declinations.find(function (decli) { return !!decli.is_sample; }) || (!!declination && !declination.is_sample)) &&
439
+ cartType === cart_1.CartGeneralTypeEnum.SAMPLE) {
440
+ return false;
441
+ }
442
+ if (!!declination && !!declination.is_sample && cartType !== cart_1.CartGeneralTypeEnum.SAMPLE) {
443
+ return false;
444
+ }
445
+ if (!!(0, products_1.checkIfProductIsOfType)(prod, 'gazon') && cartType !== cart_1.CartGeneralTypeEnum.SAMPLE) {
446
+ if (!!items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'gazon'); }))
447
+ return false;
448
+ if (!!items.some(function (i) { return !!!(0, exports.checkIfDecliIsOkForMixedSale)(i, 'gazon'); }))
449
+ return false;
450
+ }
451
+ var currentCartUpsells = [];
452
+ try {
453
+ currentCartUpsells = (0, uniqBy_1.default)((0, flatten_1.default)(items.map(function (i) { return i.product_upsells || []; })), function (i) {
454
+ return !!i.recommendation_sku ? i.recommendation_sku : i.recommendation_parent_slug;
455
+ });
456
+ }
457
+ catch (e) {
458
+ if (!!process.env.IS_TEST_ENV)
459
+ console.log('error on fetching cart upsells: ', e.toString());
460
+ }
461
+ if (cartType === cart_1.CartGeneralTypeEnum.GRASS) {
462
+ if (!!!prod.declinations.some(function (decli) { return (0, exports.checkIfDecliIsOkForMixedSale)(decli, 'gazon'); }) ||
463
+ (!!declination && !!!(0, exports.checkIfDecliIsOkForMixedSale)(declination, 'gazon'))) {
464
+ if (!!!currentCartUpsells.length ||
465
+ (!!currentCartUpsells.length &&
466
+ (!!!prod.declinations.find(function (decli) {
467
+ return !!currentCartUpsells.find(function (item) {
468
+ return (!!item.use_parent &&
469
+ item.recommendation_parent_slug &&
470
+ item.recommendation_parent_slug === prod.slug) ||
471
+ item.recommendation_sku === decli.sku;
472
+ });
473
+ }) ||
474
+ (!!declination &&
475
+ !!!currentCartUpsells.find(function (item) {
476
+ return item.recommendation_sku === declination.sku ||
477
+ (!!item.use_parent &&
478
+ item.recommendation_parent_slug &&
479
+ item.recommendation_parent_slug === prod.slug);
480
+ }))))) {
481
+ return false;
482
+ }
483
+ }
484
+ else {
485
+ }
486
+ }
487
+ if (cartType !== cart_1.CartGeneralTypeEnum.VRAC &&
488
+ (prod.declinations.every(function (decli) { return !!(0, products_1.checkIfProductIsOfType)(decli, 'vrac'); }) ||
489
+ (!!declination && !!(0, products_1.checkIfProductIsOfType)(declination, 'vrac'))) &&
490
+ items.some(function (i) { return !!!(0, exports.checkIfDecliIsOkForMixedSale)(i, 'vrac'); })) {
491
+ return false;
492
+ }
493
+ if (cartType === cart_1.CartGeneralTypeEnum.VRAC &&
494
+ (!!!prod.declinations.some(function (decli) { return !!(0, products_1.checkIfProductIsOfType)(decli, 'vrac') || !!(0, exports.checkIfDecliIsOkForMixedSale)(decli, 'vrac'); }) ||
495
+ (!!declination &&
496
+ !!!(0, products_1.checkIfProductIsOfType)(declination, 'vrac', true) &&
497
+ !!!(0, exports.checkIfDecliIsOkForMixedSale)(declination, 'vrac')))) {
498
+ return false;
499
+ }
500
+ return true;
501
+ };
502
+ exports.checkCartTypeBeforeAddingItem = checkCartTypeBeforeAddingItem;
503
+ var getCartType = function (cartData) {
504
+ switch (true) {
505
+ case !!cartData.is_booking:
506
+ return !!cartData.is_booking_beton ? cart_1.CartGeneralTypeEnum.BOOKING_BETON : cart_1.CartGeneralTypeEnum.BOOKING;
507
+ case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.SAMPLE, cartData):
508
+ return cart_1.CartGeneralTypeEnum.SAMPLE;
509
+ case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.VRAC, cartData):
510
+ return cart_1.CartGeneralTypeEnum.VRAC;
511
+ case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.GRASS, cartData):
512
+ return cart_1.CartGeneralTypeEnum.GRASS;
513
+ case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES, cartData):
514
+ return cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES;
515
+ default:
516
+ return cart_1.CartGeneralTypeEnum.BETON;
517
+ }
518
+ };
519
+ exports.getCartType = getCartType;
520
+ var isPro = function (invoice) {
521
+ return !!(0, exports.getProTitleFromCart)(invoice);
522
+ };
523
+ exports.isPro = isPro;
524
+ var getProTitleFromCart = function (invoice) {
525
+ return (0, object_1.recursiveCheckObject)(invoice, 'customer_info.pro_title');
526
+ };
527
+ exports.getProTitleFromCart = getProTitleFromCart;
528
+ var orderCartItems = function (cart) {
529
+ return (0, orderBy_1.default)(!!cart.promise_to_purchase && !!cart.promise_to_purchase.ids
530
+ ? (0, g2_1.groupArrayOfItemsByItemAndCorrespondingEscompteItem)(cart.items)
531
+ : cart.items, function (item) {
532
+ var upsellRelativeItem = !!item.is_upsell_of_sku
533
+ ? cart.items.find(function (i) { return i.sku === item.is_upsell_of_sku; })
534
+ : undefined;
535
+ if (!!!item.is_service ||
536
+ ((0, g2_1.isEscompteSuppItem)(item.sku) && !!upsellRelativeItem && !!!upsellRelativeItem.is_service))
537
+ return 0;
538
+ if (item.is_service && item.sku === 'FRSBETON')
539
+ return 1;
540
+ return 2;
541
+ });
542
+ };
543
+ exports.orderCartItems = orderCartItems;
544
+ var getConcreteCartInfo = function (cartData, fetchInventoryItem, pickupStoreId, inventoryItemsArray) { return __awaiter(void 0, void 0, void 0, function () {
545
+ var containsYellowProduct, containsGreenProduct, containsRedProduct, isInStock, storeId, inventoryItems, _a;
546
+ return __generator(this, function (_b) {
547
+ switch (_b.label) {
548
+ case 0:
549
+ containsYellowProduct = (0, products_1.getConcreteItemsByAvailability)(cartData, 'delais-a-prevoir');
550
+ containsGreenProduct = (0, products_1.getConcreteItemsByAvailability)(cartData, 'en-stock');
551
+ containsRedProduct = (0, products_1.getConcreteItemsByAvailability)(cartData, 'aucune-production-prevue');
552
+ isInStock = true;
553
+ storeId = !!pickupStoreId ? pickupStoreId : (0, object_1.recursiveCheckObject)(cartData, 'shipping_payload.pickup_store.id');
554
+ if (!(!!storeId && !!containsGreenProduct && !!containsGreenProduct.length)) return [3, 4];
555
+ if (!(!!inventoryItemsArray && !!inventoryItemsArray.length)) return [3, 1];
556
+ _a = inventoryItemsArray;
557
+ return [3, 3];
558
+ case 1: return [4, Promise.all(containsGreenProduct.map(function (item) { return __awaiter(void 0, void 0, void 0, function () { var _a; return __generator(this, function (_b) {
559
+ switch (_b.label) {
560
+ case 0:
561
+ if (!!!item.is_service) return [3, 1];
562
+ _a = undefined;
563
+ return [3, 3];
564
+ case 1: return [4, fetchInventoryItem(item.sku)];
565
+ case 2:
566
+ _a = _b.sent();
567
+ _b.label = 3;
568
+ case 3: return [2, _a];
569
+ }
570
+ }); }); }))];
571
+ case 2:
572
+ _a = (_b.sent()).filter(function (i) { return !!i; });
573
+ _b.label = 3;
574
+ case 3:
575
+ inventoryItems = _a;
576
+ isInStock =
577
+ !!inventoryItems &&
578
+ !!inventoryItems.length &&
579
+ inventoryItems.every(function (inventoryItem) {
580
+ var cartItem = containsGreenProduct.find(function (i) { return i.sku === inventoryItem.sku; });
581
+ if (!!!cartItem)
582
+ return false;
583
+ var inventoryStock = inventoryItem.inventories.find(function (i) { return i.store_id === storeId; });
584
+ if (!!!inventoryStock || !!!inventoryStock.qty)
585
+ return false;
586
+ var qtys = (0, inventories_1.getQty)(inventoryItem.other_units, inventoryStock.qty.available);
587
+ var sellUnit = qtys['sellUnit'];
588
+ if (!sellUnit)
589
+ return false;
590
+ return sellUnit.value >= cartItem.qte;
591
+ });
592
+ _b.label = 4;
593
+ case 4: return [2, {
594
+ type: !!containsRedProduct && !!containsRedProduct.length
595
+ ? 'red'
596
+ : !!containsYellowProduct && !!containsYellowProduct.length
597
+ ? 'yellow'
598
+ : 'green',
599
+ inStock: isInStock
600
+ }];
601
+ }
602
+ });
603
+ }); };
604
+ exports.getConcreteCartInfo = getConcreteCartInfo;
605
+ var getGrassProductForCart = function (item) {
606
+ if (!!!item)
607
+ return;
608
+ return {
609
+ slug: item.parent_slug || '',
610
+ sku: item.sku,
611
+ qte: item.qte,
612
+ price: (0, products_3.getLowestPrice)(item).price.amount
613
+ };
614
+ };
615
+ exports.getGrassProductForCart = getGrassProductForCart;
616
+ var getRecursiveItems = function (cartItems, cartContainsGrass, keepFees) {
617
+ var getRecusiveItem = function (item) {
618
+ var subItems = cartItems.filter(function (i) { return i.is_upsell_of_sku === item.sku; }).map(function (subI) { return getRecusiveItem(subI); });
619
+ return __assign(__assign({}, item), { sub_items: !!subItems && !!subItems.length ? subItems : undefined });
620
+ };
621
+ var newItemList = cartItems
622
+ .map(function (i) { return getRecusiveItem(i); })
623
+ .filter(function (i) {
624
+ return (!!keepFees && !!i.is_upsell_of_sku && i.is_upsell_of_sku === 'summary') ||
625
+ (!!i.sub_items && !!!i.is_upsell_of_sku) ||
626
+ (!!!i.is_upsell_of_sku && !!!i.sub_items);
627
+ });
628
+ return !!!cartContainsGrass ? newItemList : (0, orderBy_1.default)(newItemList, function (i) { return !!i.sub_items; }, 'desc');
629
+ };
630
+ exports.getRecursiveItems = getRecursiveItems;
631
+ var getRecursiveItemsFromSubItems = function (item) {
632
+ var getRecusiveItem = function (item) {
633
+ var subItems = item.sub_items;
634
+ if (!!subItems) {
635
+ var items = __spreadArray([item], (0, flatten_1.default)(subItems.map(function (i) { return getRecusiveItem(i); })), true);
636
+ return items;
637
+ }
638
+ return [item];
639
+ };
640
+ return !!item.sub_items ? __spreadArray([item], (0, flatten_1.default)(item.sub_items.map(function (i) { return getRecusiveItem(i); })), true) : [item];
641
+ };
642
+ exports.getRecursiveItemsFromSubItems = getRecursiveItemsFromSubItems;
643
+ var getAppliedPrice = function (item, options) {
644
+ if (options === void 0) { options = {}; }
645
+ var applied = (0, exports.getLowestAppliedPrice)(item);
646
+ if (!!options.getLowest) {
647
+ return applied.amount;
648
+ }
649
+ if ((!!!item.promo_price && !!!item.discount_price) || !!options.isBookingBeton) {
650
+ return item.regular_price.amount;
651
+ }
652
+ var itemPriceIsEscompte = (!!item.promo_price && (0, exports.checkPriceForEscompte)(item.promo_price)) ||
653
+ (!!item.discount_price && (0, exports.checkPriceForEscompte)(item.discount_price));
654
+ if (!!itemPriceIsEscompte) {
655
+ if (!!item.discount_price)
656
+ return item.discount_price.amount;
657
+ return item.regular_price.amount;
658
+ }
659
+ return applied.amount;
660
+ };
661
+ exports.getAppliedPrice = getAppliedPrice;
662
+ var getLowestAppliedPrice = function (item) {
663
+ var regular = item.regular_price;
664
+ var promo = item.promo_price;
665
+ var discount = item.discount_price;
666
+ var regularPrice = regular.amount || 0;
667
+ var promoPrice = !!promo ? promo.amount : regularPrice;
668
+ var discountPrice = !!discount ? discount.amount : regularPrice;
669
+ if (!!promo && promoPrice <= discountPrice && promoPrice <= regularPrice) {
670
+ return promo;
671
+ }
672
+ if (!!discount && discountPrice <= promoPrice && discountPrice <= regularPrice) {
673
+ return discount;
674
+ }
675
+ return regular;
676
+ };
677
+ exports.getLowestAppliedPrice = getLowestAppliedPrice;
678
+ var checkPriceForEscompte = function (price) {
679
+ var priceType = price.price_type;
680
+ var posUnitPrice = "pos_custom_".concat(Cart_1.CustomPromoType.UNIT_PRICE);
681
+ var isEscompteType = !!priceType &&
682
+ !!![
683
+ G2_1.CustomPriceItemTypeEnum.ENTENTE,
684
+ G2_1.CustomPriceItemTypeEnum.REG,
685
+ posUnitPrice,
686
+ products_3.priceTypeEnum.TIER_PRICING
687
+ ].includes(priceType);
688
+ return !!isEscompteType;
689
+ };
690
+ exports.checkPriceForEscompte = checkPriceForEscompte;
691
+ var getPercentFromReducedPrice = function (item, isPro) {
692
+ var typeToCheck = !!item.promo_price && !!item.promo_price.price_type ? 'promo' : 'discount';
693
+ var priceToCheck = typeToCheck === 'promo' ? item.promo_price : item.discount_price;
694
+ if (!!!priceToCheck || (!!!isPro && !!!priceToCheck.overridden))
695
+ return;
696
+ if (!!!(0, exports.checkPriceForEscompte)(priceToCheck))
697
+ return;
698
+ if (typeToCheck === 'promo')
699
+ return (0, round_1.default)((0, cart_2.getActualPromoPrice)(item, '%'), 2);
700
+ return (0, round_1.default)((0, cart_2.getActualDiscountPrice)(item, '%'), 2);
701
+ };
702
+ exports.getPercentFromReducedPrice = getPercentFromReducedPrice;
703
+ var getClientNumberForCart = function (cartData, space, options) {
704
+ if (options === void 0) { options = {}; }
705
+ if (!!!cartData)
706
+ return '';
707
+ var proTitle = (0, object_1.recursiveCheckObject)(cartData, 'customer_info.pro_title');
708
+ var isWebCart = cartData.cart_type === Cart_1.CartTypeEnum.WEB || !!cartData.is_from_web;
709
+ var paFoundInCart = (0, object_1.recursiveCheckObject)(cartData, 'promise_to_purchase');
710
+ var isPA = !!((0, object_1.recursiveCheckObject)(paFoundInCart, 'ids') || []).length;
711
+ if (!!paFoundInCart && !!options.checkIfEscPaApplied) {
712
+ var bankTypes = !!space ? space.bankTypes.get() : [];
713
+ var grassBank_1 = bankTypes.find(function (b) { return (0, locale_1.getLocaleOfDictionnary)(b.name, 'fr').toLowerCase() == 'gazon'; });
714
+ var atLeastOneEscPaApplied = cartData.items.some(function (i) { return (0, g2_1.isEscompteSuppItem)(i.sku); }) ||
715
+ (!!grassBank_1 &&
716
+ (paFoundInCart.banks_used || []).some(function (b) { return b.bank_type_id == grassBank_1.id; }) &&
717
+ cartData.items.some(function (i) { return i.sku == products_2.kentucky; }));
718
+ isPA = atLeastOneEscPaApplied;
719
+ }
720
+ if (!!proTitle && !!cartData.customer_id) {
721
+ return "".concat(cartData.customer_id).concat(!!isPA ? 'PA' : '');
722
+ }
723
+ if (!!isWebCart) {
724
+ return "".concat(!!cartData.is_pickup ? 'COM' : 'LIV').concat(!!cartData.paid_at ? (0, moment_1.default)((0, data_1.formatDate)(cartData.paid_at)).format('YY') : '00', "WEB");
725
+ }
726
+ if (!!options.isQuote) {
727
+ return proTitle === 'anonymous-pos-pro' ? 'Paysagiste' : 'Détail';
728
+ }
729
+ return _getPOSCustomerTypeForCart(cartData);
730
+ };
731
+ exports.getClientNumberForCart = getClientNumberForCart;
732
+ var _getPOSCustomerTypeForCart = function (cartData) {
733
+ var isPickup = !!cartData && !!cartData.is_pickup;
734
+ var isPro = !!cartData.customer_info && !!cartData.customer_info.pro_title;
735
+ var currentYear = !!cartData.paid_at ? (0, moment_1.default)((0, data_1.formatDate)(cartData.paid_at)).format('YY') : '00';
736
+ var storeNb = !!cartData.created_by && !!cartData.created_by.at_store_number ? cartData.created_by.at_store_number : 0;
737
+ var aNumber = (0, toNumber_1.default)(storeNb);
738
+ var endOfCode = '';
739
+ if (!!!aNumber) {
740
+ endOfCode = "".concat(!!isPro ? '3' : '').concat(storeNb);
741
+ }
742
+ else {
743
+ endOfCode = "".concat(!!isPro ? '3' : aNumber < 10 ? '0' : '').concat(aNumber);
744
+ }
745
+ return "".concat(!!isPickup ? 'COM' : 'LIV').concat(currentYear).concat(endOfCode);
746
+ };
747
+ var getLabelForCartType = function (value) {
748
+ switch (value) {
749
+ case cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES:
750
+ return 'Accessoires seulement';
751
+ case cart_1.CartGeneralTypeEnum.BETON:
752
+ return 'Béton';
753
+ case cart_1.CartGeneralTypeEnum.SAMPLE:
754
+ return 'Échantillons';
755
+ case cart_1.CartGeneralTypeEnum.GRASS:
756
+ return 'Gazon';
757
+ case cart_1.CartGeneralTypeEnum.INSTALLATION:
758
+ return 'Installation';
759
+ case cart_1.CartGeneralTypeEnum.VRAC:
760
+ return 'Vrac';
761
+ case Cart_1.CartContentTypeEnum.MIXED:
762
+ return 'Mixte';
763
+ default:
764
+ return value;
765
+ }
766
+ };
767
+ exports.getLabelForCartType = getLabelForCartType;
768
768
  //# sourceMappingURL=cart.js.map