addio-admin-sdk 1.6.39 → 1.6.41

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 (502) hide show
  1. package/.babelrc +17 -17
  2. package/.env.dev +14 -14
  3. package/.github/workflows/publish_coverage.yaml +69 -69
  4. package/addio-sdk-doc.md +1380 -1380
  5. package/changelog.md +390 -390
  6. package/dist/Interfaces/Address/index.d.ts +21 -21
  7. package/dist/Interfaces/Address/index.js +16 -16
  8. package/dist/Interfaces/Algolia/index.d.ts +147 -147
  9. package/dist/Interfaces/Algolia/index.js +2 -2
  10. package/dist/Interfaces/Attachement/index.d.ts +5 -5
  11. package/dist/Interfaces/Attachement/index.js +2 -2
  12. package/dist/Interfaces/Attribute/index.d.ts +47 -47
  13. package/dist/Interfaces/Attribute/index.js +10 -10
  14. package/dist/Interfaces/BGJob/index.d.ts +56 -56
  15. package/dist/Interfaces/BGJob/index.js +36 -36
  16. package/dist/Interfaces/BaseClass/index.d.ts +8 -8
  17. package/dist/Interfaces/BaseClass/index.js +2 -2
  18. package/dist/Interfaces/Blog/IBlogArticle.d.ts +18 -18
  19. package/dist/Interfaces/Blog/IBlogArticle.js +2 -2
  20. package/dist/Interfaces/Blog/IBlogAuthor.d.ts +7 -7
  21. package/dist/Interfaces/Blog/IBlogAuthor.js +2 -2
  22. package/dist/Interfaces/Blog/IBlogCategory.d.ts +9 -9
  23. package/dist/Interfaces/Blog/IBlogCategory.js +2 -2
  24. package/dist/Interfaces/Blog/IBlogComment.d.ts +13 -13
  25. package/dist/Interfaces/Blog/IBlogComment.js +2 -2
  26. package/dist/Interfaces/Blog/IBlogKeywords.d.ts +9 -9
  27. package/dist/Interfaces/Blog/IBlogKeywords.js +2 -2
  28. package/dist/Interfaces/Booking/index.d.ts +68 -68
  29. package/dist/Interfaces/Booking/index.js +17 -17
  30. package/dist/Interfaces/Brand/index.d.ts +13 -13
  31. package/dist/Interfaces/Brand/index.js +2 -2
  32. package/dist/Interfaces/CMS/index.d.ts +25 -25
  33. package/dist/Interfaces/CMS/index.js +2 -2
  34. package/dist/Interfaces/Cart/IPandaPayload.d.ts +64 -64
  35. package/dist/Interfaces/Cart/IPandaPayload.js +18 -18
  36. package/dist/Interfaces/Cart/IPaymentCard.d.ts +22 -22
  37. package/dist/Interfaces/Cart/IPaymentCard.js +44 -44
  38. package/dist/Interfaces/Cart/IPaypalPayload.d.ts +9 -9
  39. package/dist/Interfaces/Cart/IPaypalPayload.js +2 -2
  40. package/dist/Interfaces/Cart/IPaysafePayload.d.ts +72 -72
  41. package/dist/Interfaces/Cart/IPaysafePayload.js +2 -2
  42. package/dist/Interfaces/Cart/IStripePayload.d.ts +66 -66
  43. package/dist/Interfaces/Cart/IStripePayload.js +2 -2
  44. package/dist/Interfaces/Cart/index.d.ts +397 -397
  45. package/dist/Interfaces/Cart/index.js +181 -181
  46. package/dist/Interfaces/Catalogue/index.d.ts +68 -68
  47. package/dist/Interfaces/Catalogue/index.js +37 -37
  48. package/dist/Interfaces/Category/index.d.ts +26 -26
  49. package/dist/Interfaces/Category/index.js +2 -2
  50. package/dist/Interfaces/Chart/index.d.ts +11 -11
  51. package/dist/Interfaces/Chart/index.js +2 -2
  52. package/dist/Interfaces/Class/index.d.ts +8 -8
  53. package/dist/Interfaces/Class/index.js +2 -2
  54. package/dist/Interfaces/Consent/index.d.ts +6 -6
  55. package/dist/Interfaces/Consent/index.js +2 -2
  56. package/dist/Interfaces/Context/IContextProps.d.ts +5 -5
  57. package/dist/Interfaces/Context/IContextProps.js +2 -2
  58. package/dist/Interfaces/Context/IContextState.d.ts +15 -15
  59. package/dist/Interfaces/Context/IContextState.js +2 -2
  60. package/dist/Interfaces/Customer/ICustomerBadge.d.ts +2 -2
  61. package/dist/Interfaces/Customer/ICustomerBadge.js +2 -2
  62. package/dist/Interfaces/Customer/ICustomerRating.d.ts +10 -10
  63. package/dist/Interfaces/Customer/ICustomerRating.js +2 -2
  64. package/dist/Interfaces/Customer/index.d.ts +92 -92
  65. package/dist/Interfaces/Customer/index.js +158 -158
  66. package/dist/Interfaces/Declination/index.d.ts +106 -106
  67. package/dist/Interfaces/Declination/index.js +64 -64
  68. package/dist/Interfaces/Document/index.d.ts +8 -8
  69. package/dist/Interfaces/Document/index.js +2 -2
  70. package/dist/Interfaces/Elastic/index.d.ts +89 -89
  71. package/dist/Interfaces/Elastic/index.js +2 -2
  72. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.d.ts +11 -11
  73. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.js +2 -2
  74. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.d.ts +15 -15
  75. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.js +2 -2
  76. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.d.ts +12 -12
  77. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.js +2 -2
  78. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.d.ts +36 -36
  79. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.js +2 -2
  80. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.d.ts +12 -12
  81. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.js +2 -2
  82. package/dist/Interfaces/Email/CustomGR/ITransportEmail.d.ts +12 -12
  83. package/dist/Interfaces/Email/CustomGR/ITransportEmail.js +2 -2
  84. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.d.ts +12 -12
  85. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.js +2 -2
  86. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.d.ts +16 -16
  87. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.js +2 -2
  88. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.d.ts +15 -15
  89. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.js +2 -2
  90. package/dist/Interfaces/Email/IAbandonnedCartEmail.d.ts +29 -29
  91. package/dist/Interfaces/Email/IAbandonnedCartEmail.js +2 -2
  92. package/dist/Interfaces/Email/IAccountConfirmationEmail.d.ts +22 -22
  93. package/dist/Interfaces/Email/IAccountConfirmationEmail.js +2 -2
  94. package/dist/Interfaces/Email/IApplicationEmail.d.ts +19 -19
  95. package/dist/Interfaces/Email/IApplicationEmail.js +2 -2
  96. package/dist/Interfaces/Email/IBackInStockEmail.d.ts +21 -21
  97. package/dist/Interfaces/Email/IBackInStockEmail.js +2 -2
  98. package/dist/Interfaces/Email/IContactEmail.d.ts +20 -20
  99. package/dist/Interfaces/Email/IContactEmail.js +2 -2
  100. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.d.ts +15 -15
  101. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.js +2 -2
  102. package/dist/Interfaces/Email/ICustomerBookingEmail.d.ts +14 -14
  103. package/dist/Interfaces/Email/ICustomerBookingEmail.js +2 -2
  104. package/dist/Interfaces/Email/IEmail.d.ts +20 -20
  105. package/dist/Interfaces/Email/IEmail.js +69 -69
  106. package/dist/Interfaces/Email/IOrderConfirmationEmail.d.ts +47 -47
  107. package/dist/Interfaces/Email/IOrderConfirmationEmail.js +2 -2
  108. package/dist/Interfaces/Email/IPasswordResetEmail.d.ts +17 -17
  109. package/dist/Interfaces/Email/IPasswordResetEmail.js +2 -2
  110. package/dist/Interfaces/Email/IPhotoShootEmail.d.ts +14 -14
  111. package/dist/Interfaces/Email/IPhotoShootEmail.js +2 -2
  112. package/dist/Interfaces/Email/IPickupConfirmation.d.ts +23 -23
  113. package/dist/Interfaces/Email/IPickupConfirmation.js +2 -2
  114. package/dist/Interfaces/Email/IShippingConfirmation.d.ts +23 -23
  115. package/dist/Interfaces/Email/IShippingConfirmation.js +2 -2
  116. package/dist/Interfaces/Email/IWelcomeEmail.d.ts +19 -19
  117. package/dist/Interfaces/Email/IWelcomeEmail.js +2 -2
  118. package/dist/Interfaces/ExportSchema/index.d.ts +7 -7
  119. package/dist/Interfaces/ExportSchema/index.js +2 -2
  120. package/dist/Interfaces/ExternalService/BaseExternalService.d.ts +12 -12
  121. package/dist/Interfaces/ExternalService/BaseExternalService.js +2 -2
  122. package/dist/Interfaces/ExternalService/index.d.ts +9 -9
  123. package/dist/Interfaces/ExternalService/index.js +2 -2
  124. package/dist/Interfaces/G2/index.d.ts +286 -286
  125. package/dist/Interfaces/G2/index.js +31 -31
  126. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.d.ts +20 -20
  127. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.js +2 -2
  128. package/dist/Interfaces/Indexed/Product/index.d.ts +91 -91
  129. package/dist/Interfaces/Indexed/Product/index.js +315 -315
  130. package/dist/Interfaces/Inventory/index.d.ts +19 -19
  131. package/dist/Interfaces/Inventory/index.js +8 -8
  132. package/dist/Interfaces/Invoice/index.d.ts +4 -4
  133. package/dist/Interfaces/Invoice/index.js +2 -2
  134. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.d.ts +3 -3
  135. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.js +2 -2
  136. package/dist/Interfaces/MarketplacePublication/index.d.ts +23 -23
  137. package/dist/Interfaces/MarketplacePublication/index.js +33 -33
  138. package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
  139. package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
  140. package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
  141. package/dist/Interfaces/Operations/IUpdate.js +2 -2
  142. package/dist/Interfaces/Order/index.d.ts +4 -4
  143. package/dist/Interfaces/Order/index.js +2 -2
  144. package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
  145. package/dist/Interfaces/Org/IRelUser.js +2 -2
  146. package/dist/Interfaces/Org/index.d.ts +29 -29
  147. package/dist/Interfaces/Org/index.js +12 -12
  148. package/dist/Interfaces/Payment/index.d.ts +11 -11
  149. package/dist/Interfaces/Payment/index.js +2 -2
  150. package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
  151. package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
  152. package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
  153. package/dist/Interfaces/Product/IImportProduct.js +966 -966
  154. package/dist/Interfaces/Product/IInventoryItem.d.ts +81 -81
  155. package/dist/Interfaces/Product/IInventoryItem.js +36 -36
  156. package/dist/Interfaces/Product/IPricing.d.ts +177 -177
  157. package/dist/Interfaces/Product/IPricing.js +174 -174
  158. package/dist/Interfaces/Product/index.d.ts +121 -121
  159. package/dist/Interfaces/Product/index.js +56 -56
  160. package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
  161. package/dist/Interfaces/ProductAttribute/index.js +2 -2
  162. package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
  163. package/dist/Interfaces/PromiseToPurchase/BankType.js +42 -42
  164. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
  165. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
  166. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
  167. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
  168. package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
  169. package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
  170. package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
  171. package/dist/Interfaces/PurchaseOrder/index.js +2 -2
  172. package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
  173. package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
  174. package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
  175. package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
  176. package/dist/Interfaces/Query/IProductQueryOptions.d.ts +15 -15
  177. package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
  178. package/dist/Interfaces/Quote/index.d.ts +5 -5
  179. package/dist/Interfaces/Quote/index.js +2 -2
  180. package/dist/Interfaces/Rules/IDiscountRule.d.ts +131 -131
  181. package/dist/Interfaces/Rules/IDiscountRule.js +95 -95
  182. package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
  183. package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
  184. package/dist/Interfaces/Services/IService.d.ts +12 -12
  185. package/dist/Interfaces/Services/IService.js +2 -2
  186. package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
  187. package/dist/Interfaces/Services/IServiceSecret.js +2 -2
  188. package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
  189. package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
  190. package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
  191. package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
  192. package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
  193. package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
  194. package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
  195. package/dist/Interfaces/Shipping/Shiptime/order.js +48 -48
  196. package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
  197. package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
  198. package/dist/Interfaces/Slider/GR.d.ts +130 -130
  199. package/dist/Interfaces/Slider/GR.js +271 -271
  200. package/dist/Interfaces/Slider/index.d.ts +14 -14
  201. package/dist/Interfaces/Slider/index.js +2 -2
  202. package/dist/Interfaces/Space/IMember.d.ts +16 -16
  203. package/dist/Interfaces/Space/IMember.js +9 -9
  204. package/dist/Interfaces/Space/index.d.ts +313 -313
  205. package/dist/Interfaces/Space/index.js +78 -78
  206. package/dist/Interfaces/Specials/gr.d.ts +61 -61
  207. package/dist/Interfaces/Specials/gr.js +2 -2
  208. package/dist/Interfaces/StockNotification/index.d.ts +7 -7
  209. package/dist/Interfaces/StockNotification/index.js +2 -2
  210. package/dist/Interfaces/Store/index.d.ts +60 -60
  211. package/dist/Interfaces/Store/index.js +27 -27
  212. package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
  213. package/dist/Interfaces/Supplier/ICommand.js +2 -2
  214. package/dist/Interfaces/Supplier/index.d.ts +36 -36
  215. package/dist/Interfaces/Supplier/index.js +24 -24
  216. package/dist/Interfaces/Tag/index.d.ts +18 -18
  217. package/dist/Interfaces/Tag/index.js +2 -2
  218. package/dist/Interfaces/Tax/index.d.ts +12 -12
  219. package/dist/Interfaces/Tax/index.js +2 -2
  220. package/dist/Interfaces/TransferRequest/index.d.ts +32 -32
  221. package/dist/Interfaces/TransferRequest/index.js +26 -26
  222. package/dist/Interfaces/Translation/index.d.ts +4 -4
  223. package/dist/Interfaces/Translation/index.js +2 -2
  224. package/dist/Interfaces/Update/index.d.ts +10 -10
  225. package/dist/Interfaces/Update/index.js +2 -2
  226. package/dist/Interfaces/User/IUser.d.ts +29 -29
  227. package/dist/Interfaces/User/IUser.js +8 -8
  228. package/dist/Interfaces/Version/index.d.ts +11 -11
  229. package/dist/Interfaces/Version/index.js +2 -2
  230. package/dist/Interfaces/Wishlist/index.d.ts +7 -7
  231. package/dist/Interfaces/Wishlist/index.js +2 -2
  232. package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
  233. package/dist/constants/Interfaces/IBaseApi.js +2 -2
  234. package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
  235. package/dist/constants/Interfaces/IEndpointResult.js +2 -2
  236. package/dist/constants/enums.d.ts +6 -6
  237. package/dist/constants/enums.js +10 -10
  238. package/dist/constants/version.d.ts +2 -2
  239. package/dist/constants/version.js +5 -5
  240. package/dist/index.d.ts +32 -32
  241. package/dist/index.js +416 -416
  242. package/dist/lib/Attribute/index.d.ts +14 -14
  243. package/dist/lib/Attribute/index.js +249 -249
  244. package/dist/lib/BGJob/index.d.ts +9 -9
  245. package/dist/lib/BGJob/index.js +376 -376
  246. package/dist/lib/BackgroundWorker/index.d.ts +34 -34
  247. package/dist/lib/BackgroundWorker/index.js +72 -72
  248. package/dist/lib/Blog/BlogArticle.d.ts +5 -5
  249. package/dist/lib/Blog/BlogArticle.js +28 -28
  250. package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
  251. package/dist/lib/Blog/BlogAuthor.js +28 -28
  252. package/dist/lib/Blog/BlogCategory.d.ts +5 -5
  253. package/dist/lib/Blog/BlogCategory.js +28 -28
  254. package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
  255. package/dist/lib/Blog/BlogKeyword.js +28 -28
  256. package/dist/lib/Booking/index.d.ts +65 -65
  257. package/dist/lib/Booking/index.js +835 -835
  258. package/dist/lib/Brand/index.d.ts +17 -17
  259. package/dist/lib/Brand/index.js +276 -276
  260. package/dist/lib/Cart/index.d.ts +184 -184
  261. package/dist/lib/Cart/index.js +3766 -3722
  262. package/dist/lib/Cart/index.js.map +1 -1
  263. package/dist/lib/Catalogue/index.d.ts +9 -9
  264. package/dist/lib/Catalogue/index.js +208 -208
  265. package/dist/lib/Category/index.d.ts +26 -26
  266. package/dist/lib/Category/index.js +361 -361
  267. package/dist/lib/Class/index.d.ts +12 -12
  268. package/dist/lib/Class/index.js +159 -159
  269. package/dist/lib/Consent/index.d.ts +4 -4
  270. package/dist/lib/Consent/index.js +79 -79
  271. package/dist/lib/Customer/index.d.ts +10 -10
  272. package/dist/lib/Customer/index.js +147 -147
  273. package/dist/lib/Declination/index.d.ts +10 -10
  274. package/dist/lib/Declination/index.js +85 -85
  275. package/dist/lib/Discount/index.d.ts +18 -18
  276. package/dist/lib/Discount/index.js +759 -759
  277. package/dist/lib/ElasticSearch/index.d.ts +8 -8
  278. package/dist/lib/ElasticSearch/index.js +101 -101
  279. package/dist/lib/Email/AbandonedCartEmail.d.ts +8 -8
  280. package/dist/lib/Email/AbandonedCartEmail.js +78 -78
  281. package/dist/lib/Email/AccountConfirmationEmail.d.ts +11 -11
  282. package/dist/lib/Email/AccountConfirmationEmail.js +95 -95
  283. package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +8 -8
  284. package/dist/lib/Email/AdminOrderConfirmationEmail.js +78 -78
  285. package/dist/lib/Email/ApplicationEmail.d.ts +8 -8
  286. package/dist/lib/Email/ApplicationEmail.js +78 -78
  287. package/dist/lib/Email/BackInStockEmail.d.ts +8 -8
  288. package/dist/lib/Email/BackInStockEmail.js +78 -78
  289. package/dist/lib/Email/ContactEmail.d.ts +8 -8
  290. package/dist/lib/Email/ContactEmail.js +78 -78
  291. package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +8 -8
  292. package/dist/lib/Email/CustomerBookingAdminEmail.js +78 -78
  293. package/dist/lib/Email/CustomerBookingEmail.d.ts +8 -8
  294. package/dist/lib/Email/CustomerBookingEmail.js +78 -78
  295. package/dist/lib/Email/OrderConfirmationEmail.d.ts +8 -8
  296. package/dist/lib/Email/OrderConfirmationEmail.js +78 -78
  297. package/dist/lib/Email/OrderDenounciationEmail.d.ts +8 -8
  298. package/dist/lib/Email/OrderDenounciationEmail.js +78 -78
  299. package/dist/lib/Email/OrderSampleEmail.d.ts +8 -8
  300. package/dist/lib/Email/OrderSampleEmail.js +78 -78
  301. package/dist/lib/Email/OtherTypeEmails.d.ts +8 -8
  302. package/dist/lib/Email/OtherTypeEmails.js +90 -90
  303. package/dist/lib/Email/PasswordResetEmail.d.ts +8 -8
  304. package/dist/lib/Email/PasswordResetEmail.js +78 -78
  305. package/dist/lib/Email/PhotoShootEmail.d.ts +8 -8
  306. package/dist/lib/Email/PhotoShootEmail.js +78 -78
  307. package/dist/lib/Email/PickUpConfirmation.d.ts +8 -8
  308. package/dist/lib/Email/PickUpConfirmation.js +78 -78
  309. package/dist/lib/Email/ShippingConfirmation.d.ts +8 -8
  310. package/dist/lib/Email/ShippingConfirmation.js +78 -78
  311. package/dist/lib/Email/WelcomeEmail.d.ts +8 -8
  312. package/dist/lib/Email/WelcomeEmail.js +78 -78
  313. package/dist/lib/Email/index.d.ts +8 -8
  314. package/dist/lib/Email/index.js +82 -82
  315. package/dist/lib/ExternalService/Ebay.d.ts +63 -63
  316. package/dist/lib/ExternalService/Ebay.js +185 -185
  317. package/dist/lib/ExternalService/index.d.ts +5 -5
  318. package/dist/lib/ExternalService/index.js +28 -28
  319. package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
  320. package/dist/lib/Indexed/IndexedCart.js +194 -194
  321. package/dist/lib/Indexed/Product.d.ts +17 -17
  322. package/dist/lib/Indexed/Product.js +116 -116
  323. package/dist/lib/Inventory/index.d.ts +31 -31
  324. package/dist/lib/Inventory/index.js +560 -560
  325. package/dist/lib/Invoice/index.d.ts +5 -5
  326. package/dist/lib/Invoice/index.js +28 -28
  327. package/dist/lib/MarketplacePublication/index.d.ts +9 -9
  328. package/dist/lib/MarketplacePublication/index.js +221 -221
  329. package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
  330. package/dist/lib/MongoDB/BaseAPI.js +308 -308
  331. package/dist/lib/Order/index.d.ts +7 -7
  332. package/dist/lib/Order/index.js +62 -62
  333. package/dist/lib/Org/index.d.ts +26 -26
  334. package/dist/lib/Org/index.js +283 -283
  335. package/dist/lib/PandaPay/index.d.ts +16 -16
  336. package/dist/lib/PandaPay/index.js +219 -219
  337. package/dist/lib/Paysafe/index.d.ts +11 -11
  338. package/dist/lib/Paysafe/index.js +100 -100
  339. package/dist/lib/Product/index.d.ts +143 -143
  340. package/dist/lib/Product/index.js +1326 -1326
  341. package/dist/lib/ProductAttribute/index.d.ts +15 -15
  342. package/dist/lib/ProductAttribute/index.js +114 -114
  343. package/dist/lib/PromiseToPurchase/index.d.ts +35 -35
  344. package/dist/lib/PromiseToPurchase/index.js +474 -474
  345. package/dist/lib/PurchaseOrder/index.d.ts +9 -9
  346. package/dist/lib/PurchaseOrder/index.js +72 -72
  347. package/dist/lib/Queue/index.d.ts +40 -40
  348. package/dist/lib/Queue/index.js +254 -254
  349. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  350. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  351. package/dist/lib/Service/index.d.ts +5 -5
  352. package/dist/lib/Service/index.js +57 -57
  353. package/dist/lib/Shipment/index.d.ts +28 -28
  354. package/dist/lib/Shipment/index.js +559 -559
  355. package/dist/lib/Slider/index.d.ts +16 -16
  356. package/dist/lib/Slider/index.js +235 -235
  357. package/dist/lib/Space/index.d.ts +769 -769
  358. package/dist/lib/Space/index.js +6689 -6689
  359. package/dist/lib/StockNotification/index.d.ts +4 -4
  360. package/dist/lib/StockNotification/index.js +26 -26
  361. package/dist/lib/Store/index.d.ts +5 -5
  362. package/dist/lib/Store/index.js +30 -30
  363. package/dist/lib/Supplier/Command.d.ts +5 -5
  364. package/dist/lib/Supplier/Command.js +28 -28
  365. package/dist/lib/Supplier/index.d.ts +25 -25
  366. package/dist/lib/Supplier/index.js +92 -92
  367. package/dist/lib/Tags/index.d.ts +6 -6
  368. package/dist/lib/Tags/index.js +84 -84
  369. package/dist/lib/Tax/index.d.ts +8 -8
  370. package/dist/lib/Tax/index.js +136 -136
  371. package/dist/lib/TransferRequest/index.d.ts +21 -21
  372. package/dist/lib/TransferRequest/index.js +302 -302
  373. package/dist/lib/Update/index.d.ts +10 -10
  374. package/dist/lib/Update/index.js +71 -71
  375. package/dist/lib/User/index.d.ts +33 -33
  376. package/dist/lib/User/index.js +360 -360
  377. package/dist/lib/Wishlist/index.d.ts +5 -5
  378. package/dist/lib/Wishlist/index.js +28 -28
  379. package/dist/lib/base.d.ts +14 -14
  380. package/dist/lib/base.js +135 -135
  381. package/dist/lib/baseService.d.ts +17 -17
  382. package/dist/lib/baseService.js +114 -114
  383. package/dist/rules/GR/constants/data.d.ts +28 -28
  384. package/dist/rules/GR/constants/data.js +57 -57
  385. package/dist/rules/GR/constants/products.d.ts +8 -8
  386. package/dist/rules/GR/constants/products.js +234 -234
  387. package/dist/rules/GR/interfaces/cart.d.ts +68 -68
  388. package/dist/rules/GR/interfaces/cart.js +49 -49
  389. package/dist/rules/GR/interfaces/data.d.ts +97 -97
  390. package/dist/rules/GR/interfaces/data.js +104 -104
  391. package/dist/rules/GR/interfaces/products.d.ts +61 -61
  392. package/dist/rules/GR/interfaces/products.js +10 -10
  393. package/dist/rules/GR/utils/cart.d.ts +39 -39
  394. package/dist/rules/GR/utils/cart.js +661 -661
  395. package/dist/rules/GR/utils/data.d.ts +3 -3
  396. package/dist/rules/GR/utils/data.js +25 -25
  397. package/dist/rules/GR/utils/expedition.d.ts +70 -70
  398. package/dist/rules/GR/utils/expedition.js +1584 -1584
  399. package/dist/rules/GR/utils/g2.d.ts +153 -153
  400. package/dist/rules/GR/utils/g2.js +920 -920
  401. package/dist/rules/GR/utils/invoices.d.ts +5 -5
  402. package/dist/rules/GR/utils/invoices.js +123 -123
  403. package/dist/rules/GR/utils/products.d.ts +105 -105
  404. package/dist/rules/GR/utils/products.js +1025 -1025
  405. package/dist/rules/GR/utils/upsells.d.ts +75 -75
  406. package/dist/rules/GR/utils/upsells.js +278 -278
  407. package/dist/services/database/BaseProvider.d.ts +28 -28
  408. package/dist/services/database/BaseProvider.js +77 -77
  409. package/dist/services/database/BatchUtils.d.ts +14 -14
  410. package/dist/services/database/BatchUtils.js +88 -88
  411. package/dist/services/database/Config.d.ts +2 -2
  412. package/dist/services/database/Config.js +5 -5
  413. package/dist/services/database/DatabaseService.d.ts +42 -42
  414. package/dist/services/database/DatabaseService.js +311 -311
  415. package/dist/services/database/FirebaseProvider.d.ts +17 -17
  416. package/dist/services/database/FirebaseProvider.js +312 -312
  417. package/dist/services/database/NotFirebaseProvider.d.ts +35 -35
  418. package/dist/services/database/NotFirebaseProvider.js +367 -367
  419. package/dist/services/logs/index.d.ts +11 -11
  420. package/dist/services/logs/index.js +85 -85
  421. package/dist/utils/algolia.d.ts +6 -6
  422. package/dist/utils/algolia.js +22 -22
  423. package/dist/utils/anonymisation.d.ts +30 -30
  424. package/dist/utils/anonymisation.js +269 -269
  425. package/dist/utils/array.d.ts +5 -5
  426. package/dist/utils/array.js +36 -36
  427. package/dist/utils/aws.d.ts +14 -14
  428. package/dist/utils/aws.js +220 -220
  429. package/dist/utils/booking.d.ts +22 -22
  430. package/dist/utils/booking.js +175 -175
  431. package/dist/utils/cart.d.ts +519 -519
  432. package/dist/utils/cart.js +508 -508
  433. package/dist/utils/cmv.d.ts +10 -10
  434. package/dist/utils/cmv.js +107 -107
  435. package/dist/utils/console.d.ts +6 -6
  436. package/dist/utils/console.js +121 -121
  437. package/dist/utils/context.d.ts +19 -19
  438. package/dist/utils/context.js +41 -41
  439. package/dist/utils/currency.d.ts +6 -6
  440. package/dist/utils/currency.js +62 -62
  441. package/dist/utils/data.d.ts +40 -40
  442. package/dist/utils/data.js +233 -233
  443. package/dist/utils/date.d.ts +1 -1
  444. package/dist/utils/date.js +16 -16
  445. package/dist/utils/dimensions.d.ts +3 -3
  446. package/dist/utils/dimensions.js +18 -18
  447. package/dist/utils/discount.d.ts +33 -33
  448. package/dist/utils/discount.js +919 -919
  449. package/dist/utils/errors.d.ts +113 -113
  450. package/dist/utils/errors.js +113 -113
  451. package/dist/utils/file-admin.d.ts +8 -8
  452. package/dist/utils/file-admin.js +94 -94
  453. package/dist/utils/file.d.ts +38 -38
  454. package/dist/utils/file.js +318 -318
  455. package/dist/utils/firebase-admin.d.ts +2 -2
  456. package/dist/utils/firebase-admin.js +118 -118
  457. package/dist/utils/firebase.d.ts +41 -41
  458. package/dist/utils/firebase.js +220 -220
  459. package/dist/utils/import.d.ts +1 -1
  460. package/dist/utils/import.js +81 -81
  461. package/dist/utils/inventories.d.ts +26 -26
  462. package/dist/utils/inventories.js +368 -368
  463. package/dist/utils/locale.d.ts +13 -13
  464. package/dist/utils/locale.js +67 -67
  465. package/dist/utils/mailchimp.d.ts +57 -57
  466. package/dist/utils/mailchimp.js +735 -735
  467. package/dist/utils/mongodb.d.ts +1 -1
  468. package/dist/utils/mongodb.js +68 -68
  469. package/dist/utils/object.d.ts +12 -12
  470. package/dist/utils/object.js +129 -129
  471. package/dist/utils/payment.d.ts +10 -10
  472. package/dist/utils/payment.js +25 -25
  473. package/dist/utils/products.d.ts +26 -26
  474. package/dist/utils/products.js +301 -301
  475. package/dist/utils/promiseToPurchase.d.ts +56 -56
  476. package/dist/utils/promiseToPurchase.js +228 -228
  477. package/dist/utils/prosprsearch.d.ts +21 -21
  478. package/dist/utils/prosprsearch.js +276 -276
  479. package/dist/utils/sdc.d.ts +10 -10
  480. package/dist/utils/sdc.js +1308 -1308
  481. package/dist/utils/searchIndexes.d.ts +20 -20
  482. package/dist/utils/searchIndexes.js +273 -273
  483. package/dist/utils/services.d.ts +40 -40
  484. package/dist/utils/services.js +407 -407
  485. package/dist/utils/shipment.d.ts +110 -110
  486. package/dist/utils/shipment.js +410 -410
  487. package/dist/utils/simpletexting.d.ts +2 -2
  488. package/dist/utils/simpletexting.js +88 -88
  489. package/dist/utils/sliders.d.ts +4 -4
  490. package/dist/utils/sliders.js +70 -70
  491. package/dist/utils/string.d.ts +16 -16
  492. package/dist/utils/string.js +194 -194
  493. package/dist/utils/update.d.ts +7 -7
  494. package/dist/utils/update.js +244 -244
  495. package/dist/utils/weight.d.ts +3 -3
  496. package/dist/utils/weight.js +18 -18
  497. package/dist/utils/zones.d.ts +10 -10
  498. package/dist/utils/zones.js +287 -287
  499. package/package.json +106 -106
  500. package/publish.sh +143 -143
  501. package/readme.md +182 -182
  502. package/.env +0 -17
@@ -1,662 +1,662 @@
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.getRecursiveItemsFromSubItems = exports.getRecursiveItems = exports.getGrassProductForCart = exports.getConcreteCartInfo = 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 moment_1 = __importDefault(require("moment"));
79
- var cart_1 = require("../interfaces/cart");
80
- var products_1 = require("./products");
81
- var upsells_1 = require("./upsells");
82
- var expedition_1 = require("./expedition");
83
- var products_2 = require("../constants/products");
84
- var Cart_1 = require("../../../Interfaces/Cart");
85
- var locale_1 = require("../../../utils/locale");
86
- var inventories_1 = require("../../../utils/inventories");
87
- var products_3 = require("../../../utils/products");
88
- var data_1 = require("../../../utils/data");
89
- var data_2 = require("../interfaces/data");
90
- var g2_1 = require("./g2");
91
- var object_1 = require("../../../utils/object");
92
- var handleAddGrassItemsCart = function (cart, chosenDeclination, parentProduct, isUpdating, isRecommendedUpsell, formValues, fetchProduct, kentuckyBaseGrass, locale, isPro, customPriceList, recommendedUpsellParentSlug) {
93
- if (locale === void 0) { locale = 'fr'; }
94
- return __awaiter(void 0, void 0, void 0, function () {
95
- 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;
96
- return __generator(this, function (_b) {
97
- switch (_b.label) {
98
- case 0:
99
- if (!!!chosenDeclination || !!!parentProduct)
100
- return [2, {
101
- error: ''
102
- }];
103
- itemsToAdd = [];
104
- itemsToUpdate = [];
105
- itemsToDelete = [];
106
- newShippingPayload = cart.shipping_payload;
107
- prodUpsell = parentProduct.product_upsells;
108
- onlySamplesInCart = !!cart.items.length && cart.items.every(function (item) { return !!item.is_sample; });
109
- if (!!onlySamplesInCart) {
110
- return [2, {
111
- error: (0, locale_1.translateILang)({
112
- fr: "Pour ajouter ce produit à votre panier vous devez d'abord compléter la commande en cours ou vider votre panier",
113
- en: "Pour ajouter ce produit à votre panier vous devez d'abord compléter la commande en cours ou vider votre panier"
114
- }, locale)
115
- }];
116
- }
117
- if (!!isPro && !!customPriceList) {
118
- chosenDeclination = (0, g2_1.checkForCustomPriceEquivalent)(chosenDeclination, customPriceList, {
119
- removeTierPricing: chosenDeclination.sku === products_2.kentucky
120
- });
121
- }
122
- if (isUpdating && !!cart.items.find(function (i) { return i.sku === chosenDeclination.sku; })) {
123
- itemsToUpdate.push({
124
- sku: chosenDeclination.sku,
125
- qte: formValues.qte || 0
126
- });
127
- }
128
- else {
129
- itemsToAdd.push(__assign(__assign({}, chosenDeclination), { qte: formValues.qte || 0, parent_slug: !!isRecommendedUpsell && recommendedUpsellParentSlug ? recommendedUpsellParentSlug : parentProduct.slug, product_upsells: parentProduct.product_upsells, categories: parentProduct.categories }));
130
- }
131
- if (!!!!isRecommendedUpsell) return [3, 9];
132
- baseGrass = parentProduct;
133
- if (!!prodUpsell && !!prodUpsell.find(function (anUpsell) { return anUpsell.recommendation_sku === products_2.kentucky; })) {
134
- baseGrassProd = kentuckyBaseGrass;
135
- if (!!baseGrassProd)
136
- baseGrass = baseGrassProd;
137
- }
138
- if (!!!prodUpsell) return [3, 4];
139
- _loop_1 = function (anUpsell) {
140
- var sameProduct, sameDecli, anUpsellProduct, ratio;
141
- return __generator(this, function (_c) {
142
- switch (_c.label) {
143
- case 0:
144
- if (!!!anUpsell.auto_add)
145
- return [2, "continue"];
146
- return [4, fetchProduct(anUpsell.recommendation_parent_slug, locale, undefined, true)];
147
- case 1:
148
- sameProduct = _c.sent();
149
- if (!!!sameProduct || !!!sameProduct.declinations)
150
- return [2, "continue"];
151
- sameDecli = (sameProduct.declinations || []).find(function (decli) { return decli.sku === anUpsell.recommendation_sku; });
152
- if (!!!sameDecli)
153
- return [2, "continue"];
154
- if (!!isPro && !!customPriceList) {
155
- sameDecli = (0, g2_1.checkForCustomPriceEquivalent)(sameDecli, customPriceList, {
156
- removeTierPricing: sameDecli.sku === products_2.kentucky
157
- });
158
- }
159
- 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 } : {}));
160
- ratio = (0, upsells_1.calculateUpsellQte)(anUpsellProduct, formValues.qte || 0);
161
- if (!!ratio) {
162
- if (isUpdating && !!cart.items.find(function (i) { return i.sku === anUpsellProduct.sku; })) {
163
- itemsToUpdate.push({
164
- sku: anUpsellProduct.sku,
165
- qte: ratio
166
- });
167
- }
168
- else {
169
- 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 }));
170
- }
171
- }
172
- return [2];
173
- }
174
- });
175
- };
176
- _i = 0, prodUpsell_1 = prodUpsell;
177
- _b.label = 1;
178
- case 1:
179
- if (!(_i < prodUpsell_1.length)) return [3, 4];
180
- anUpsell = prodUpsell_1[_i];
181
- return [5, _loop_1(anUpsell)];
182
- case 2:
183
- _b.sent();
184
- _b.label = 3;
185
- case 3:
186
- _i++;
187
- return [3, 1];
188
- case 4:
189
- currentInstallItem = cart.items.find(function (i) { return i.parent_slug === 'installation-gazon'; });
190
- if (!!!formValues.installation) return [3, 8];
191
- upsell = baseGrass.product_upsells;
192
- if (!!!upsell) return [3, 7];
193
- return [4, (0, products_1.getInstallationArray)(Number(formValues.qte), upsell, fetchProduct, locale, isPro, chosenDeclination.sku, customPriceList, {
194
- engrais: !!formValues.engrais,
195
- roulage: !!formValues.roulage
196
- })];
197
- case 5:
198
- allInstallFees = _b.sent();
199
- installationDecli_1 = allInstallFees.find(function (fee) { return fee.parent_slug === 'installation-gazon'; });
200
- installIsDifferent = !!currentInstallItem && !!installationDecli_1 && currentInstallItem.sku !== installationDecli_1.sku;
201
- _loop_2 = function (fee) {
202
- if (isUpdating && !!cart.items.find(function (i) { return i.sku === fee.sku; }) && !!!installIsDifferent) {
203
- itemsToUpdate.push({
204
- sku: fee.sku,
205
- qte: fee.qte
206
- });
207
- }
208
- else {
209
- itemsToAdd.push(fee);
210
- }
211
- };
212
- for (_a = 0, allInstallFees_1 = allInstallFees; _a < allInstallFees_1.length; _a++) {
213
- fee = allInstallFees_1[_a];
214
- _loop_2(fee);
215
- }
216
- minQteInstall_1 = (0, expedition_1.getMinQteInstall)(!!isPro);
217
- if (typeof formValues.qte === 'number' && formValues.qte >= minQteInstall_1) {
218
- minInstall = cart.items.find(function (item) { return item.parent_slug === 'frais-minimum-gazon-pour-installation'; });
219
- if (!!minInstall) {
220
- itemsToDelete.push(minInstall.sku);
221
- }
222
- }
223
- fertilisationItem = cart.items.find(function (i) { return i.parent_slug === 'installation-fertilisation'; });
224
- if (isUpdating && !!!formValues.engrais && !!fertilisationItem) {
225
- itemsToDelete.push(fertilisationItem.sku);
226
- }
227
- roulageItem = cart.items.find(function (i) { return i.parent_slug === 'installation-roulage'; });
228
- if (isUpdating && !!!formValues.roulage && !!roulageItem) {
229
- itemsToDelete.push(roulageItem.sku);
230
- }
231
- otherInstall_1 = !!installIsDifferent ? currentInstallItem : undefined;
232
- if (!!otherInstall_1) {
233
- itemsToDelete.push(otherInstall_1.sku);
234
- 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);
235
- }
236
- if (!!!isPro) return [3, 7];
237
- newShippingPayload = __assign(__assign({}, newShippingPayload), { pro_installation_info: formValues.pro });
238
- return [4, fetchProduct('frais_extra_pro_installation', locale, undefined, true)];
239
- case 6:
240
- feeProduct_1 = _b.sent();
241
- handleProSpec_1 = function (sku, isSelected) {
242
- if (!!!feeProduct_1 || !!!installationDecli_1)
243
- return;
244
- var itemIsInCart = !!cart.items.find(function (i) { return i.sku === sku; });
245
- if (isSelected) {
246
- var decli = feeProduct_1.declinations.find(function (d) { return d.sku === sku; });
247
- if (!!decli) {
248
- if (!!customPriceList) {
249
- decli = (0, g2_1.checkForCustomPriceEquivalent)(decli, customPriceList);
250
- }
251
- if (isUpdating && itemIsInCart && !!!otherInstall_1) {
252
- itemsToUpdate.push({
253
- sku: sku,
254
- qte: typeof formValues.qte === 'number' && formValues.qte < minQteInstall_1
255
- ? minQteInstall_1
256
- : formValues.qte || 0
257
- });
258
- }
259
- else {
260
- if (!!otherInstall_1) {
261
- itemsToDelete.push(decli.sku);
262
- }
263
- itemsToAdd.push(__assign(__assign({}, decli), { qte: typeof formValues.qte === 'number' && formValues.qte < minQteInstall_1
264
- ? minQteInstall_1
265
- : formValues.qte || 0, is_upsell_of_sku: installationDecli_1.sku, parent_slug: 'frais_extra_pro_installation' }));
266
- }
267
- }
268
- }
269
- else {
270
- if (itemIsInCart) {
271
- itemsToDelete.push(sku);
272
- }
273
- }
274
- };
275
- if (!!formValues.pro && !!formValues.pro.specs) {
276
- Object.entries(formValues.pro.specs).forEach(function (spec) {
277
- handleProSpec_1(products_2.installationProSpecSkus[spec[0]], spec[1]);
278
- });
279
- }
280
- _b.label = 7;
281
- case 7: return [3, 9];
282
- case 8:
283
- if (!!isUpdating && !formValues.installation) {
284
- if (!!newShippingPayload && !!newShippingPayload.pro_installation_info) {
285
- pro_installation_info = newShippingPayload.pro_installation_info, rest = __rest(newShippingPayload, ["pro_installation_info"]);
286
- newShippingPayload = __assign({}, rest);
287
- }
288
- itemsToDelete = __spreadArray(__spreadArray([], itemsToDelete, true), (0, products_1.getAllInstallFromItems)(cart.items).map(function (i) { return i.sku; }), true);
289
- }
290
- _b.label = 9;
291
- case 9:
292
- itemsToAdd = (0, upsells_1.removeExceptionAutoAddUpsells)(itemsToAdd);
293
- if (!!isUpdating) {
294
- if (!!cart.items) {
295
- 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);
296
- productsToRemove_1 = fusion_1.filter(function (item) {
297
- var removedBecauseException = !!!(0, upsells_1.removeExceptionAutoAddUpsells)(fusion_1).some(function (i) { return i.sku === item.sku; });
298
- return item.is_upsell_of_sku === 'summary' || !!removedBecauseException;
299
- });
300
- itemsToAdd = itemsToAdd.filter(function (i) { return !!!productsToRemove_1.map(function (r) { return r.sku; }).includes(i.sku); });
301
- if (!!productsToRemove_1.length) {
302
- itemsToDelete = __spreadArray(__spreadArray([], itemsToDelete, true), productsToRemove_1.map(function (item) { return item.sku; }), true);
303
- if (newShippingPayload) {
304
- pro_installation_info = newShippingPayload.pro_installation_info;
305
- newShippingPayload = __assign(__assign({}, newShippingPayload), (!!pro_installation_info ? { pro_installation_info: pro_installation_info } : {}));
306
- }
307
- }
308
- }
309
- }
310
- return [2, {
311
- itemsToAdd: itemsToAdd,
312
- itemsToUpdate: itemsToUpdate,
313
- itemsToDelete: itemsToDelete,
314
- newShippingPayload: newShippingPayload
315
- }];
316
- }
317
- });
318
- });
319
- };
320
- exports.handleAddGrassItemsCart = handleAddGrassItemsCart;
321
- var checkIfCartContainsType = function (type, cartData, excludeUndefinedForAccessories, excludeUndefinedForBeton) {
322
- if (excludeUndefinedForAccessories === void 0) { excludeUndefinedForAccessories = true; }
323
- if (excludeUndefinedForBeton === void 0) { excludeUndefinedForBeton = true; }
324
- switch (type) {
325
- case cart_1.CartGeneralTypeEnum.GRASS:
326
- return !!cartData.items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'gazon') && !!!i.is_sample; });
327
- case cart_1.CartGeneralTypeEnum.VRAC:
328
- return !!cartData.items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'vrac'); });
329
- case cart_1.CartGeneralTypeEnum.INSTALLATION:
330
- return !!cartData.items.some(function (i) { return i.parent_slug === 'installation-gazon'; });
331
- case cart_1.CartGeneralTypeEnum.SAMPLE:
332
- return !!cartData.items.some(function (i) { return !!i.is_sample; });
333
- case cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES:
334
- return (!!cartData.items &&
335
- !!cartData.items.length &&
336
- cartData.items
337
- .filter(function (i) { return !!!i.is_service; })
338
- .every(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'accessoire', excludeUndefinedForAccessories); }));
339
- case cart_1.CartGeneralTypeEnum.BETON:
340
- return (!!cartData.items &&
341
- !!cartData.items.length &&
342
- cartData.items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'beton', excludeUndefinedForBeton) && !!!i.is_sample; }));
343
- default:
344
- return false;
345
- }
346
- };
347
- exports.checkIfCartContainsType = checkIfCartContainsType;
348
- var checkIfItemCanBeAddedToCart = function (prod, parentProdType, cartData, addToCart, declination, useParent, autoAdd) {
349
- if (addToCart === void 0) { addToCart = false; }
350
- if (declination === void 0) { declination = undefined; }
351
- if (useParent === void 0) { useParent = false; }
352
- if (autoAdd === void 0) { autoAdd = false; }
353
- var addItToCart = !!autoAdd ? true : (0, exports.checkCartTypeBeforeAddingItem)(prod, declination, cartData);
354
- if (!!!addItToCart) {
355
- return {
356
- addToCart: false,
357
- error: {
358
- fr: "Pour ajouter ce type de produit à votre panier vous devez d'abord compléter la commande en cours ou vider votre panier.",
359
- en: 'To add this type of product to your cart, you must first complete the current order or empty your cart.'
360
- }
361
- };
362
- }
363
- var prodDeclination = declination;
364
- if (!!!useParent) {
365
- switch (parentProdType) {
366
- case 'gazon':
367
- prodDeclination =
368
- prodDeclination || prod.declinations.find(function (declination) { return !!!declination.is_sample; });
369
- break;
370
- case 'beton':
371
- break;
372
- case 'other':
373
- case 'vrac':
374
- if (!!!prod.declinations.find(function (decli) { return !!decli.other_units; })) {
375
- prodDeclination =
376
- prodDeclination || prod.declinations.find(function (declination) { return !!!declination.is_sample; });
377
- }
378
- }
379
- }
380
- var decliIsSample = !!prodDeclination && !!prodDeclination.is_sample;
381
- if (!!decliIsSample) {
382
- if (!!cartData && !!cartData.items.length) {
383
- switch (true) {
384
- case cartData.items.length === 4:
385
- return {
386
- addToCart: false,
387
- error: {
388
- fr: 'Un maximum de quatre échantillons est permis à la fois par commande.',
389
- en: 'A maximum of four samples can be added to your cart.'
390
- }
391
- };
392
- case !!cartData.items.find(function (item) { return !!prodDeclination && item.sku === prodDeclination.sku; }):
393
- return {
394
- addToCart: false,
395
- error: {
396
- fr: 'Vous avez déjà cet échantillon au panier.',
397
- en: 'This sample is already in your cart.'
398
- }
399
- };
400
- default:
401
- addToCart = true;
402
- }
403
- }
404
- else {
405
- addToCart = true;
406
- }
407
- }
408
- else if (!!prodDeclination && !!!(0, products_1.checkIfProductIsOfType)(prod, 'gazon')) {
409
- addToCart = true;
410
- }
411
- return {
412
- addToCart: addToCart,
413
- declinationChecked: prodDeclination,
414
- showForm: true
415
- };
416
- };
417
- exports.checkIfItemCanBeAddedToCart = checkIfItemCanBeAddedToCart;
418
- var checkIfDecliIsOkForMixedSale = function (decli, typeToCheck) {
419
- return (decli.attributes &&
420
- !!decli.attributes[data_2.AttributesIdEnumGR.VENTE_MIXTE] &&
421
- !!decli.attributes[data_2.AttributesIdEnumGR.VENTE_MIXTE].includes(typeToCheck));
422
- };
423
- exports.checkIfDecliIsOkForMixedSale = checkIfDecliIsOkForMixedSale;
424
- var checkCartTypeBeforeAddingItem = function (prod, declination, cartData, forceCartType) {
425
- if (!!!cartData || !!!cartData.items || !!!cartData.items.length) {
426
- if (!!!forceCartType)
427
- return true;
428
- }
429
- var cartType = !!forceCartType ? forceCartType : !!cartData ? (0, exports.getCartType)(cartData) : '';
430
- if (!!!cartType)
431
- return true;
432
- var items = !!cartData ? cartData.items : [];
433
- if (!!cartData && !!cartData.is_booking)
434
- return false;
435
- if ((!!!prod.declinations.find(function (decli) { return !!decli.is_sample; }) || (!!declination && !declination.is_sample)) &&
436
- cartType === cart_1.CartGeneralTypeEnum.SAMPLE) {
437
- return false;
438
- }
439
- if (!!declination && !!declination.is_sample && cartType !== cart_1.CartGeneralTypeEnum.SAMPLE) {
440
- return false;
441
- }
442
- if (!!(0, products_1.checkIfProductIsOfType)(prod, 'gazon') && cartType !== cart_1.CartGeneralTypeEnum.SAMPLE) {
443
- if (!!items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'gazon'); }))
444
- return false;
445
- if (!!items.some(function (i) { return !!!(0, exports.checkIfDecliIsOkForMixedSale)(i, 'gazon'); }))
446
- return false;
447
- }
448
- var currentCartUpsells = [];
449
- try {
450
- currentCartUpsells = (0, uniqBy_1.default)((0, flatten_1.default)(items.map(function (i) { return i.product_upsells || []; })), function (i) {
451
- return !!i.recommendation_sku ? i.recommendation_sku : i.recommendation_parent_slug;
452
- });
453
- }
454
- catch (e) {
455
- if (!!process.env.IS_TEST_ENV)
456
- console.log('error on fetching cart upsells: ', e.toString());
457
- }
458
- if (cartType === cart_1.CartGeneralTypeEnum.GRASS) {
459
- if (!!!prod.declinations.some(function (decli) { return (0, exports.checkIfDecliIsOkForMixedSale)(decli, 'gazon'); }) ||
460
- (!!declination && !!!(0, exports.checkIfDecliIsOkForMixedSale)(declination, 'gazon'))) {
461
- if (!!!currentCartUpsells.length ||
462
- (!!currentCartUpsells.length &&
463
- (!!!prod.declinations.find(function (decli) {
464
- return !!currentCartUpsells.find(function (item) {
465
- return (!!item.use_parent &&
466
- item.recommendation_parent_slug &&
467
- item.recommendation_parent_slug === prod.slug) ||
468
- item.recommendation_sku === decli.sku;
469
- });
470
- }) ||
471
- (!!declination &&
472
- !!!currentCartUpsells.find(function (item) {
473
- return item.recommendation_sku === declination.sku ||
474
- (!!item.use_parent &&
475
- item.recommendation_parent_slug &&
476
- item.recommendation_parent_slug === prod.slug);
477
- }))))) {
478
- return false;
479
- }
480
- }
481
- else {
482
- }
483
- }
484
- if (cartType !== cart_1.CartGeneralTypeEnum.VRAC &&
485
- (prod.declinations.every(function (decli) { return !!(0, products_1.checkIfProductIsOfType)(decli, 'vrac'); }) ||
486
- (!!declination && !!(0, products_1.checkIfProductIsOfType)(declination, 'vrac'))) &&
487
- items.some(function (i) { return !!!(0, exports.checkIfDecliIsOkForMixedSale)(i, 'vrac'); })) {
488
- return false;
489
- }
490
- if (cartType === cart_1.CartGeneralTypeEnum.VRAC &&
491
- (!!!prod.declinations.some(function (decli) { return !!(0, products_1.checkIfProductIsOfType)(decli, 'vrac') || !!(0, exports.checkIfDecliIsOkForMixedSale)(decli, 'vrac'); }) ||
492
- (!!declination &&
493
- !!!(0, products_1.checkIfProductIsOfType)(declination, 'vrac', true) &&
494
- !!!(0, exports.checkIfDecliIsOkForMixedSale)(declination, 'vrac')))) {
495
- return false;
496
- }
497
- return true;
498
- };
499
- exports.checkCartTypeBeforeAddingItem = checkCartTypeBeforeAddingItem;
500
- var getCartType = function (cartData) {
501
- switch (true) {
502
- case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.SAMPLE, cartData):
503
- return cart_1.CartGeneralTypeEnum.SAMPLE;
504
- case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.VRAC, cartData):
505
- return cart_1.CartGeneralTypeEnum.VRAC;
506
- case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.GRASS, cartData):
507
- return cart_1.CartGeneralTypeEnum.GRASS;
508
- case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES, cartData):
509
- return cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES;
510
- default:
511
- return cart_1.CartGeneralTypeEnum.BETON;
512
- }
513
- };
514
- exports.getCartType = getCartType;
515
- var getConcreteCartInfo = function (cartData, fetchInventoryItem, pickupStoreId) { return __awaiter(void 0, void 0, void 0, function () {
516
- var containsYellowProduct, containsGreenProduct, containsRedProduct, isInStock, storeId, inventoryItems;
517
- return __generator(this, function (_a) {
518
- switch (_a.label) {
519
- case 0:
520
- containsYellowProduct = (0, products_1.getConcreteItemsByAvailability)(cartData, 'delais-a-prevoir');
521
- containsGreenProduct = (0, products_1.getConcreteItemsByAvailability)(cartData, 'en-stock');
522
- containsRedProduct = (0, products_1.getConcreteItemsByAvailability)(cartData, 'aucune-production-prevue');
523
- isInStock = true;
524
- storeId = !!pickupStoreId ? pickupStoreId : (0, object_1.recursiveCheckObject)(cartData, 'shipping_payload.pickup_store.id');
525
- if (!(!!storeId && !!containsGreenProduct && !!containsGreenProduct.length)) return [3, 2];
526
- return [4, Promise.all(containsGreenProduct.map(function (item) { return __awaiter(void 0, void 0, void 0, function () { var _a; return __generator(this, function (_b) {
527
- switch (_b.label) {
528
- case 0:
529
- if (!!!item.is_service) return [3, 1];
530
- _a = undefined;
531
- return [3, 3];
532
- case 1: return [4, fetchInventoryItem(item.sku)];
533
- case 2:
534
- _a = _b.sent();
535
- _b.label = 3;
536
- case 3: return [2, (_a)];
537
- }
538
- }); }); }))];
539
- case 1:
540
- inventoryItems = (_a.sent()).filter(function (i) { return !!i; });
541
- isInStock =
542
- !!inventoryItems &&
543
- !!inventoryItems.length &&
544
- inventoryItems.every(function (inventoryItem) {
545
- var cartItem = containsGreenProduct.find(function (i) { return i.sku === inventoryItem.sku; });
546
- if (!!!cartItem)
547
- return false;
548
- var inventoryStock = inventoryItem.inventories.find(function (i) { return i.store_id === storeId; });
549
- if (!!!inventoryStock || !!!inventoryStock.qty)
550
- return false;
551
- var qtys = (0, inventories_1.getQty)(inventoryItem.other_units, inventoryStock.qty.available);
552
- var sellUnit = qtys['sellUnit'];
553
- if (!sellUnit)
554
- return false;
555
- return sellUnit.value >= cartItem.qte;
556
- });
557
- _a.label = 2;
558
- case 2: return [2, {
559
- type: !!containsRedProduct && !!containsRedProduct.length
560
- ? 'red'
561
- : !!containsYellowProduct && !!containsYellowProduct.length
562
- ? 'yellow'
563
- : 'green',
564
- inStock: isInStock
565
- }];
566
- }
567
- });
568
- }); };
569
- exports.getConcreteCartInfo = getConcreteCartInfo;
570
- var getGrassProductForCart = function (item) {
571
- if (!!!item)
572
- return;
573
- return {
574
- slug: item.parent_slug || '',
575
- sku: item.sku,
576
- qte: item.qte,
577
- price: (0, products_3.getLowestPrice)(item).price.amount
578
- };
579
- };
580
- exports.getGrassProductForCart = getGrassProductForCart;
581
- var getRecursiveItems = function (cartItems, cartContainsGrass, keepFees) {
582
- var getRecusiveItem = function (item) {
583
- var subItems = cartItems.filter(function (i) { return i.is_upsell_of_sku === item.sku; }).map(function (subI) { return getRecusiveItem(subI); });
584
- return __assign(__assign({}, item), { sub_items: !!subItems && !!subItems.length ? subItems : undefined });
585
- };
586
- var newItemList = cartItems
587
- .map(function (i) { return getRecusiveItem(i); })
588
- .filter(function (i) {
589
- return (!!keepFees && !!i.is_upsell_of_sku && i.is_upsell_of_sku === 'summary') ||
590
- (!!i.sub_items && !!!i.is_upsell_of_sku) ||
591
- (!!!i.is_upsell_of_sku && !!!i.sub_items);
592
- });
593
- return !!!cartContainsGrass ? newItemList : (0, orderBy_1.default)(newItemList, function (i) { return !!i.sub_items; }, 'desc');
594
- };
595
- exports.getRecursiveItems = getRecursiveItems;
596
- var getRecursiveItemsFromSubItems = function (item) {
597
- var getRecusiveItem = function (item) {
598
- var subItems = item.sub_items;
599
- if (!!subItems) {
600
- var items = __spreadArray([item], (0, flatten_1.default)(subItems.map(function (i) { return getRecusiveItem(i); })), true);
601
- return items;
602
- }
603
- return [item];
604
- };
605
- return !!item.sub_items ? __spreadArray([item], (0, flatten_1.default)(item.sub_items.map(function (i) { return getRecusiveItem(i); })), true) : [item];
606
- };
607
- exports.getRecursiveItemsFromSubItems = getRecursiveItemsFromSubItems;
608
- var getClientNumberForCart = function (cartData, isQuote) {
609
- if (!!!cartData)
610
- return '';
611
- var proTitle = (0, object_1.recursiveCheckObject)(cartData, 'customer_info.pro_title');
612
- var isPA = !!((0, object_1.recursiveCheckObject)(cartData, 'promise_to_purchase.ids') || []).length;
613
- var isWebCart = cartData.cart_type === Cart_1.CartTypeEnum.WEB || !!cartData.is_from_web;
614
- if (!!proTitle && !!cartData.customer_id) {
615
- return "".concat(cartData.customer_id).concat(!!isPA ? 'PA' : '');
616
- }
617
- if (!!isWebCart) {
618
- return "".concat(!!cartData.is_pickup ? 'COM' : 'LIV').concat((0, moment_1.default)((0, data_1.formatDate)(cartData.paid_at)).format('YY'), "WEB");
619
- }
620
- if (!!isQuote) {
621
- return proTitle === 'anonymous-pos-pro' ? 'Paysagiste' : 'Détail';
622
- }
623
- return _getPOSCustomerTypeForCart(cartData);
624
- };
625
- exports.getClientNumberForCart = getClientNumberForCart;
626
- var _getPOSCustomerTypeForCart = function (cartData) {
627
- var isPickup = !!cartData && !!cartData.is_pickup;
628
- var isPro = !!cartData.customer_info && !!cartData.customer_info.pro_title;
629
- var currentYear = (0, moment_1.default)((0, data_1.formatDate)(cartData.paid_at)).format('YY');
630
- var storeNb = !!cartData.created_by && !!cartData.created_by.at_store_number ? cartData.created_by.at_store_number : 0;
631
- var aNumber = (0, toNumber_1.default)(storeNb);
632
- var endOfCode = '';
633
- if (!!!aNumber) {
634
- endOfCode = "".concat(!!isPro ? 3 : '').concat(storeNb);
635
- }
636
- else {
637
- endOfCode = "".concat(!!!isPro && aNumber < 10 ? '0' : '').concat((!!isPro ? 30 : 0) + aNumber);
638
- }
639
- return "".concat(!!isPickup ? 'COM' : 'LIV').concat(currentYear).concat(endOfCode);
640
- };
641
- var getLabelForCartType = function (value) {
642
- switch (value) {
643
- case cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES:
644
- return 'Accessoires seulement';
645
- case cart_1.CartGeneralTypeEnum.BETON:
646
- return 'Béton';
647
- case cart_1.CartGeneralTypeEnum.SAMPLE:
648
- return 'Échantillons';
649
- case cart_1.CartGeneralTypeEnum.GRASS:
650
- return 'Gazon';
651
- case cart_1.CartGeneralTypeEnum.INSTALLATION:
652
- return 'Installation';
653
- case cart_1.CartGeneralTypeEnum.VRAC:
654
- return 'Vrac';
655
- case Cart_1.CartContentTypeEnum.MIXED:
656
- return 'Mixte';
657
- default:
658
- return value;
659
- }
660
- };
661
- 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.getRecursiveItemsFromSubItems = exports.getRecursiveItems = exports.getGrassProductForCart = exports.getConcreteCartInfo = 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 moment_1 = __importDefault(require("moment"));
79
+ var cart_1 = require("../interfaces/cart");
80
+ var products_1 = require("./products");
81
+ var upsells_1 = require("./upsells");
82
+ var expedition_1 = require("./expedition");
83
+ var products_2 = require("../constants/products");
84
+ var Cart_1 = require("../../../Interfaces/Cart");
85
+ var locale_1 = require("../../../utils/locale");
86
+ var inventories_1 = require("../../../utils/inventories");
87
+ var products_3 = require("../../../utils/products");
88
+ var data_1 = require("../../../utils/data");
89
+ var data_2 = require("../interfaces/data");
90
+ var g2_1 = require("./g2");
91
+ var object_1 = require("../../../utils/object");
92
+ var handleAddGrassItemsCart = function (cart, chosenDeclination, parentProduct, isUpdating, isRecommendedUpsell, formValues, fetchProduct, kentuckyBaseGrass, locale, isPro, customPriceList, recommendedUpsellParentSlug) {
93
+ if (locale === void 0) { locale = 'fr'; }
94
+ return __awaiter(void 0, void 0, void 0, function () {
95
+ 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;
96
+ return __generator(this, function (_b) {
97
+ switch (_b.label) {
98
+ case 0:
99
+ if (!!!chosenDeclination || !!!parentProduct)
100
+ return [2, {
101
+ error: ''
102
+ }];
103
+ itemsToAdd = [];
104
+ itemsToUpdate = [];
105
+ itemsToDelete = [];
106
+ newShippingPayload = cart.shipping_payload;
107
+ prodUpsell = parentProduct.product_upsells;
108
+ onlySamplesInCart = !!cart.items.length && cart.items.every(function (item) { return !!item.is_sample; });
109
+ if (!!onlySamplesInCart) {
110
+ return [2, {
111
+ error: (0, locale_1.translateILang)({
112
+ fr: "Pour ajouter ce produit à votre panier vous devez d'abord compléter la commande en cours ou vider votre panier",
113
+ en: "Pour ajouter ce produit à votre panier vous devez d'abord compléter la commande en cours ou vider votre panier"
114
+ }, locale)
115
+ }];
116
+ }
117
+ if (!!isPro && !!customPriceList) {
118
+ chosenDeclination = (0, g2_1.checkForCustomPriceEquivalent)(chosenDeclination, customPriceList, {
119
+ removeTierPricing: chosenDeclination.sku === products_2.kentucky
120
+ });
121
+ }
122
+ if (isUpdating && !!cart.items.find(function (i) { return i.sku === chosenDeclination.sku; })) {
123
+ itemsToUpdate.push({
124
+ sku: chosenDeclination.sku,
125
+ qte: formValues.qte || 0
126
+ });
127
+ }
128
+ else {
129
+ itemsToAdd.push(__assign(__assign({}, chosenDeclination), { qte: formValues.qte || 0, parent_slug: !!isRecommendedUpsell && recommendedUpsellParentSlug ? recommendedUpsellParentSlug : parentProduct.slug, product_upsells: parentProduct.product_upsells, categories: parentProduct.categories }));
130
+ }
131
+ if (!!!!isRecommendedUpsell) return [3, 9];
132
+ baseGrass = parentProduct;
133
+ if (!!prodUpsell && !!prodUpsell.find(function (anUpsell) { return anUpsell.recommendation_sku === products_2.kentucky; })) {
134
+ baseGrassProd = kentuckyBaseGrass;
135
+ if (!!baseGrassProd)
136
+ baseGrass = baseGrassProd;
137
+ }
138
+ if (!!!prodUpsell) return [3, 4];
139
+ _loop_1 = function (anUpsell) {
140
+ var sameProduct, sameDecli, anUpsellProduct, ratio;
141
+ return __generator(this, function (_c) {
142
+ switch (_c.label) {
143
+ case 0:
144
+ if (!!!anUpsell.auto_add)
145
+ return [2, "continue"];
146
+ return [4, fetchProduct(anUpsell.recommendation_parent_slug, locale, undefined, true)];
147
+ case 1:
148
+ sameProduct = _c.sent();
149
+ if (!!!sameProduct || !!!sameProduct.declinations)
150
+ return [2, "continue"];
151
+ sameDecli = (sameProduct.declinations || []).find(function (decli) { return decli.sku === anUpsell.recommendation_sku; });
152
+ if (!!!sameDecli)
153
+ return [2, "continue"];
154
+ if (!!isPro && !!customPriceList) {
155
+ sameDecli = (0, g2_1.checkForCustomPriceEquivalent)(sameDecli, customPriceList, {
156
+ removeTierPricing: sameDecli.sku === products_2.kentucky
157
+ });
158
+ }
159
+ 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 } : {}));
160
+ ratio = (0, upsells_1.calculateUpsellQte)(anUpsellProduct, formValues.qte || 0);
161
+ if (!!ratio) {
162
+ if (isUpdating && !!cart.items.find(function (i) { return i.sku === anUpsellProduct.sku; })) {
163
+ itemsToUpdate.push({
164
+ sku: anUpsellProduct.sku,
165
+ qte: ratio
166
+ });
167
+ }
168
+ else {
169
+ 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 }));
170
+ }
171
+ }
172
+ return [2];
173
+ }
174
+ });
175
+ };
176
+ _i = 0, prodUpsell_1 = prodUpsell;
177
+ _b.label = 1;
178
+ case 1:
179
+ if (!(_i < prodUpsell_1.length)) return [3, 4];
180
+ anUpsell = prodUpsell_1[_i];
181
+ return [5, _loop_1(anUpsell)];
182
+ case 2:
183
+ _b.sent();
184
+ _b.label = 3;
185
+ case 3:
186
+ _i++;
187
+ return [3, 1];
188
+ case 4:
189
+ currentInstallItem = cart.items.find(function (i) { return i.parent_slug === 'installation-gazon'; });
190
+ if (!!!formValues.installation) return [3, 8];
191
+ upsell = baseGrass.product_upsells;
192
+ if (!!!upsell) return [3, 7];
193
+ return [4, (0, products_1.getInstallationArray)(Number(formValues.qte), upsell, fetchProduct, locale, isPro, chosenDeclination.sku, customPriceList, {
194
+ engrais: !!formValues.engrais,
195
+ roulage: !!formValues.roulage
196
+ })];
197
+ case 5:
198
+ allInstallFees = _b.sent();
199
+ installationDecli_1 = allInstallFees.find(function (fee) { return fee.parent_slug === 'installation-gazon'; });
200
+ installIsDifferent = !!currentInstallItem && !!installationDecli_1 && currentInstallItem.sku !== installationDecli_1.sku;
201
+ _loop_2 = function (fee) {
202
+ if (isUpdating && !!cart.items.find(function (i) { return i.sku === fee.sku; }) && !!!installIsDifferent) {
203
+ itemsToUpdate.push({
204
+ sku: fee.sku,
205
+ qte: fee.qte
206
+ });
207
+ }
208
+ else {
209
+ itemsToAdd.push(fee);
210
+ }
211
+ };
212
+ for (_a = 0, allInstallFees_1 = allInstallFees; _a < allInstallFees_1.length; _a++) {
213
+ fee = allInstallFees_1[_a];
214
+ _loop_2(fee);
215
+ }
216
+ minQteInstall_1 = (0, expedition_1.getMinQteInstall)(!!isPro);
217
+ if (typeof formValues.qte === 'number' && formValues.qte >= minQteInstall_1) {
218
+ minInstall = cart.items.find(function (item) { return item.parent_slug === 'frais-minimum-gazon-pour-installation'; });
219
+ if (!!minInstall) {
220
+ itemsToDelete.push(minInstall.sku);
221
+ }
222
+ }
223
+ fertilisationItem = cart.items.find(function (i) { return i.parent_slug === 'installation-fertilisation'; });
224
+ if (isUpdating && !!!formValues.engrais && !!fertilisationItem) {
225
+ itemsToDelete.push(fertilisationItem.sku);
226
+ }
227
+ roulageItem = cart.items.find(function (i) { return i.parent_slug === 'installation-roulage'; });
228
+ if (isUpdating && !!!formValues.roulage && !!roulageItem) {
229
+ itemsToDelete.push(roulageItem.sku);
230
+ }
231
+ otherInstall_1 = !!installIsDifferent ? currentInstallItem : undefined;
232
+ if (!!otherInstall_1) {
233
+ itemsToDelete.push(otherInstall_1.sku);
234
+ 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);
235
+ }
236
+ if (!!!isPro) return [3, 7];
237
+ newShippingPayload = __assign(__assign({}, newShippingPayload), { pro_installation_info: formValues.pro });
238
+ return [4, fetchProduct('frais_extra_pro_installation', locale, undefined, true)];
239
+ case 6:
240
+ feeProduct_1 = _b.sent();
241
+ handleProSpec_1 = function (sku, isSelected) {
242
+ if (!!!feeProduct_1 || !!!installationDecli_1)
243
+ return;
244
+ var itemIsInCart = !!cart.items.find(function (i) { return i.sku === sku; });
245
+ if (isSelected) {
246
+ var decli = feeProduct_1.declinations.find(function (d) { return d.sku === sku; });
247
+ if (!!decli) {
248
+ if (!!customPriceList) {
249
+ decli = (0, g2_1.checkForCustomPriceEquivalent)(decli, customPriceList);
250
+ }
251
+ if (isUpdating && itemIsInCart && !!!otherInstall_1) {
252
+ itemsToUpdate.push({
253
+ sku: sku,
254
+ qte: typeof formValues.qte === 'number' && formValues.qte < minQteInstall_1
255
+ ? minQteInstall_1
256
+ : formValues.qte || 0
257
+ });
258
+ }
259
+ else {
260
+ if (!!otherInstall_1) {
261
+ itemsToDelete.push(decli.sku);
262
+ }
263
+ itemsToAdd.push(__assign(__assign({}, decli), { qte: typeof formValues.qte === 'number' && formValues.qte < minQteInstall_1
264
+ ? minQteInstall_1
265
+ : formValues.qte || 0, is_upsell_of_sku: installationDecli_1.sku, parent_slug: 'frais_extra_pro_installation' }));
266
+ }
267
+ }
268
+ }
269
+ else {
270
+ if (itemIsInCart) {
271
+ itemsToDelete.push(sku);
272
+ }
273
+ }
274
+ };
275
+ if (!!formValues.pro && !!formValues.pro.specs) {
276
+ Object.entries(formValues.pro.specs).forEach(function (spec) {
277
+ handleProSpec_1(products_2.installationProSpecSkus[spec[0]], spec[1]);
278
+ });
279
+ }
280
+ _b.label = 7;
281
+ case 7: return [3, 9];
282
+ case 8:
283
+ if (!!isUpdating && !formValues.installation) {
284
+ if (!!newShippingPayload && !!newShippingPayload.pro_installation_info) {
285
+ pro_installation_info = newShippingPayload.pro_installation_info, rest = __rest(newShippingPayload, ["pro_installation_info"]);
286
+ newShippingPayload = __assign({}, rest);
287
+ }
288
+ itemsToDelete = __spreadArray(__spreadArray([], itemsToDelete, true), (0, products_1.getAllInstallFromItems)(cart.items).map(function (i) { return i.sku; }), true);
289
+ }
290
+ _b.label = 9;
291
+ case 9:
292
+ itemsToAdd = (0, upsells_1.removeExceptionAutoAddUpsells)(itemsToAdd);
293
+ if (!!isUpdating) {
294
+ if (!!cart.items) {
295
+ 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);
296
+ productsToRemove_1 = fusion_1.filter(function (item) {
297
+ var removedBecauseException = !!!(0, upsells_1.removeExceptionAutoAddUpsells)(fusion_1).some(function (i) { return i.sku === item.sku; });
298
+ return item.is_upsell_of_sku === 'summary' || !!removedBecauseException;
299
+ });
300
+ itemsToAdd = itemsToAdd.filter(function (i) { return !!!productsToRemove_1.map(function (r) { return r.sku; }).includes(i.sku); });
301
+ if (!!productsToRemove_1.length) {
302
+ itemsToDelete = __spreadArray(__spreadArray([], itemsToDelete, true), productsToRemove_1.map(function (item) { return item.sku; }), true);
303
+ if (newShippingPayload) {
304
+ pro_installation_info = newShippingPayload.pro_installation_info;
305
+ newShippingPayload = __assign(__assign({}, newShippingPayload), (!!pro_installation_info ? { pro_installation_info: pro_installation_info } : {}));
306
+ }
307
+ }
308
+ }
309
+ }
310
+ return [2, {
311
+ itemsToAdd: itemsToAdd,
312
+ itemsToUpdate: itemsToUpdate,
313
+ itemsToDelete: itemsToDelete,
314
+ newShippingPayload: newShippingPayload
315
+ }];
316
+ }
317
+ });
318
+ });
319
+ };
320
+ exports.handleAddGrassItemsCart = handleAddGrassItemsCart;
321
+ var checkIfCartContainsType = function (type, cartData, excludeUndefinedForAccessories, excludeUndefinedForBeton) {
322
+ if (excludeUndefinedForAccessories === void 0) { excludeUndefinedForAccessories = true; }
323
+ if (excludeUndefinedForBeton === void 0) { excludeUndefinedForBeton = true; }
324
+ switch (type) {
325
+ case cart_1.CartGeneralTypeEnum.GRASS:
326
+ return !!cartData.items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'gazon') && !!!i.is_sample; });
327
+ case cart_1.CartGeneralTypeEnum.VRAC:
328
+ return !!cartData.items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'vrac'); });
329
+ case cart_1.CartGeneralTypeEnum.INSTALLATION:
330
+ return !!cartData.items.some(function (i) { return i.parent_slug === 'installation-gazon'; });
331
+ case cart_1.CartGeneralTypeEnum.SAMPLE:
332
+ return !!cartData.items.some(function (i) { return !!i.is_sample; });
333
+ case cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES:
334
+ return (!!cartData.items &&
335
+ !!cartData.items.length &&
336
+ cartData.items
337
+ .filter(function (i) { return !!!i.is_service; })
338
+ .every(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'accessoire', excludeUndefinedForAccessories); }));
339
+ case cart_1.CartGeneralTypeEnum.BETON:
340
+ return (!!cartData.items &&
341
+ !!cartData.items.length &&
342
+ cartData.items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'beton', excludeUndefinedForBeton) && !!!i.is_sample; }));
343
+ default:
344
+ return false;
345
+ }
346
+ };
347
+ exports.checkIfCartContainsType = checkIfCartContainsType;
348
+ var checkIfItemCanBeAddedToCart = function (prod, parentProdType, cartData, addToCart, declination, useParent, autoAdd) {
349
+ if (addToCart === void 0) { addToCart = false; }
350
+ if (declination === void 0) { declination = undefined; }
351
+ if (useParent === void 0) { useParent = false; }
352
+ if (autoAdd === void 0) { autoAdd = false; }
353
+ var addItToCart = !!autoAdd ? true : (0, exports.checkCartTypeBeforeAddingItem)(prod, declination, cartData);
354
+ if (!!!addItToCart) {
355
+ return {
356
+ addToCart: false,
357
+ error: {
358
+ fr: "Pour ajouter ce type de produit à votre panier vous devez d'abord compléter la commande en cours ou vider votre panier.",
359
+ en: 'To add this type of product to your cart, you must first complete the current order or empty your cart.'
360
+ }
361
+ };
362
+ }
363
+ var prodDeclination = declination;
364
+ if (!!!useParent) {
365
+ switch (parentProdType) {
366
+ case 'gazon':
367
+ prodDeclination =
368
+ prodDeclination || prod.declinations.find(function (declination) { return !!!declination.is_sample; });
369
+ break;
370
+ case 'beton':
371
+ break;
372
+ case 'other':
373
+ case 'vrac':
374
+ if (!!!prod.declinations.find(function (decli) { return !!decli.other_units; })) {
375
+ prodDeclination =
376
+ prodDeclination || prod.declinations.find(function (declination) { return !!!declination.is_sample; });
377
+ }
378
+ }
379
+ }
380
+ var decliIsSample = !!prodDeclination && !!prodDeclination.is_sample;
381
+ if (!!decliIsSample) {
382
+ if (!!cartData && !!cartData.items.length) {
383
+ switch (true) {
384
+ case cartData.items.length === 4:
385
+ return {
386
+ addToCart: false,
387
+ error: {
388
+ fr: 'Un maximum de quatre échantillons est permis à la fois par commande.',
389
+ en: 'A maximum of four samples can be added to your cart.'
390
+ }
391
+ };
392
+ case !!cartData.items.find(function (item) { return !!prodDeclination && item.sku === prodDeclination.sku; }):
393
+ return {
394
+ addToCart: false,
395
+ error: {
396
+ fr: 'Vous avez déjà cet échantillon au panier.',
397
+ en: 'This sample is already in your cart.'
398
+ }
399
+ };
400
+ default:
401
+ addToCart = true;
402
+ }
403
+ }
404
+ else {
405
+ addToCart = true;
406
+ }
407
+ }
408
+ else if (!!prodDeclination && !!!(0, products_1.checkIfProductIsOfType)(prod, 'gazon')) {
409
+ addToCart = true;
410
+ }
411
+ return {
412
+ addToCart: addToCart,
413
+ declinationChecked: prodDeclination,
414
+ showForm: true
415
+ };
416
+ };
417
+ exports.checkIfItemCanBeAddedToCart = checkIfItemCanBeAddedToCart;
418
+ var checkIfDecliIsOkForMixedSale = function (decli, typeToCheck) {
419
+ return (decli.attributes &&
420
+ !!decli.attributes[data_2.AttributesIdEnumGR.VENTE_MIXTE] &&
421
+ !!decli.attributes[data_2.AttributesIdEnumGR.VENTE_MIXTE].includes(typeToCheck));
422
+ };
423
+ exports.checkIfDecliIsOkForMixedSale = checkIfDecliIsOkForMixedSale;
424
+ var checkCartTypeBeforeAddingItem = function (prod, declination, cartData, forceCartType) {
425
+ if (!!!cartData || !!!cartData.items || !!!cartData.items.length) {
426
+ if (!!!forceCartType)
427
+ return true;
428
+ }
429
+ var cartType = !!forceCartType ? forceCartType : !!cartData ? (0, exports.getCartType)(cartData) : '';
430
+ if (!!!cartType)
431
+ return true;
432
+ var items = !!cartData ? cartData.items : [];
433
+ if (!!cartData && !!cartData.is_booking)
434
+ return false;
435
+ if ((!!!prod.declinations.find(function (decli) { return !!decli.is_sample; }) || (!!declination && !declination.is_sample)) &&
436
+ cartType === cart_1.CartGeneralTypeEnum.SAMPLE) {
437
+ return false;
438
+ }
439
+ if (!!declination && !!declination.is_sample && cartType !== cart_1.CartGeneralTypeEnum.SAMPLE) {
440
+ return false;
441
+ }
442
+ if (!!(0, products_1.checkIfProductIsOfType)(prod, 'gazon') && cartType !== cart_1.CartGeneralTypeEnum.SAMPLE) {
443
+ if (!!items.some(function (i) { return !!(0, products_1.checkIfProductIsOfType)(i, 'gazon'); }))
444
+ return false;
445
+ if (!!items.some(function (i) { return !!!(0, exports.checkIfDecliIsOkForMixedSale)(i, 'gazon'); }))
446
+ return false;
447
+ }
448
+ var currentCartUpsells = [];
449
+ try {
450
+ currentCartUpsells = (0, uniqBy_1.default)((0, flatten_1.default)(items.map(function (i) { return i.product_upsells || []; })), function (i) {
451
+ return !!i.recommendation_sku ? i.recommendation_sku : i.recommendation_parent_slug;
452
+ });
453
+ }
454
+ catch (e) {
455
+ if (!!process.env.IS_TEST_ENV)
456
+ console.log('error on fetching cart upsells: ', e.toString());
457
+ }
458
+ if (cartType === cart_1.CartGeneralTypeEnum.GRASS) {
459
+ if (!!!prod.declinations.some(function (decli) { return (0, exports.checkIfDecliIsOkForMixedSale)(decli, 'gazon'); }) ||
460
+ (!!declination && !!!(0, exports.checkIfDecliIsOkForMixedSale)(declination, 'gazon'))) {
461
+ if (!!!currentCartUpsells.length ||
462
+ (!!currentCartUpsells.length &&
463
+ (!!!prod.declinations.find(function (decli) {
464
+ return !!currentCartUpsells.find(function (item) {
465
+ return (!!item.use_parent &&
466
+ item.recommendation_parent_slug &&
467
+ item.recommendation_parent_slug === prod.slug) ||
468
+ item.recommendation_sku === decli.sku;
469
+ });
470
+ }) ||
471
+ (!!declination &&
472
+ !!!currentCartUpsells.find(function (item) {
473
+ return item.recommendation_sku === declination.sku ||
474
+ (!!item.use_parent &&
475
+ item.recommendation_parent_slug &&
476
+ item.recommendation_parent_slug === prod.slug);
477
+ }))))) {
478
+ return false;
479
+ }
480
+ }
481
+ else {
482
+ }
483
+ }
484
+ if (cartType !== cart_1.CartGeneralTypeEnum.VRAC &&
485
+ (prod.declinations.every(function (decli) { return !!(0, products_1.checkIfProductIsOfType)(decli, 'vrac'); }) ||
486
+ (!!declination && !!(0, products_1.checkIfProductIsOfType)(declination, 'vrac'))) &&
487
+ items.some(function (i) { return !!!(0, exports.checkIfDecliIsOkForMixedSale)(i, 'vrac'); })) {
488
+ return false;
489
+ }
490
+ if (cartType === cart_1.CartGeneralTypeEnum.VRAC &&
491
+ (!!!prod.declinations.some(function (decli) { return !!(0, products_1.checkIfProductIsOfType)(decli, 'vrac') || !!(0, exports.checkIfDecliIsOkForMixedSale)(decli, 'vrac'); }) ||
492
+ (!!declination &&
493
+ !!!(0, products_1.checkIfProductIsOfType)(declination, 'vrac', true) &&
494
+ !!!(0, exports.checkIfDecliIsOkForMixedSale)(declination, 'vrac')))) {
495
+ return false;
496
+ }
497
+ return true;
498
+ };
499
+ exports.checkCartTypeBeforeAddingItem = checkCartTypeBeforeAddingItem;
500
+ var getCartType = function (cartData) {
501
+ switch (true) {
502
+ case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.SAMPLE, cartData):
503
+ return cart_1.CartGeneralTypeEnum.SAMPLE;
504
+ case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.VRAC, cartData):
505
+ return cart_1.CartGeneralTypeEnum.VRAC;
506
+ case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.GRASS, cartData):
507
+ return cart_1.CartGeneralTypeEnum.GRASS;
508
+ case (0, exports.checkIfCartContainsType)(cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES, cartData):
509
+ return cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES;
510
+ default:
511
+ return cart_1.CartGeneralTypeEnum.BETON;
512
+ }
513
+ };
514
+ exports.getCartType = getCartType;
515
+ var getConcreteCartInfo = function (cartData, fetchInventoryItem, pickupStoreId) { return __awaiter(void 0, void 0, void 0, function () {
516
+ var containsYellowProduct, containsGreenProduct, containsRedProduct, isInStock, storeId, inventoryItems;
517
+ return __generator(this, function (_a) {
518
+ switch (_a.label) {
519
+ case 0:
520
+ containsYellowProduct = (0, products_1.getConcreteItemsByAvailability)(cartData, 'delais-a-prevoir');
521
+ containsGreenProduct = (0, products_1.getConcreteItemsByAvailability)(cartData, 'en-stock');
522
+ containsRedProduct = (0, products_1.getConcreteItemsByAvailability)(cartData, 'aucune-production-prevue');
523
+ isInStock = true;
524
+ storeId = !!pickupStoreId ? pickupStoreId : (0, object_1.recursiveCheckObject)(cartData, 'shipping_payload.pickup_store.id');
525
+ if (!(!!storeId && !!containsGreenProduct && !!containsGreenProduct.length)) return [3, 2];
526
+ return [4, Promise.all(containsGreenProduct.map(function (item) { return __awaiter(void 0, void 0, void 0, function () { var _a; return __generator(this, function (_b) {
527
+ switch (_b.label) {
528
+ case 0:
529
+ if (!!!item.is_service) return [3, 1];
530
+ _a = undefined;
531
+ return [3, 3];
532
+ case 1: return [4, fetchInventoryItem(item.sku)];
533
+ case 2:
534
+ _a = _b.sent();
535
+ _b.label = 3;
536
+ case 3: return [2, (_a)];
537
+ }
538
+ }); }); }))];
539
+ case 1:
540
+ inventoryItems = (_a.sent()).filter(function (i) { return !!i; });
541
+ isInStock =
542
+ !!inventoryItems &&
543
+ !!inventoryItems.length &&
544
+ inventoryItems.every(function (inventoryItem) {
545
+ var cartItem = containsGreenProduct.find(function (i) { return i.sku === inventoryItem.sku; });
546
+ if (!!!cartItem)
547
+ return false;
548
+ var inventoryStock = inventoryItem.inventories.find(function (i) { return i.store_id === storeId; });
549
+ if (!!!inventoryStock || !!!inventoryStock.qty)
550
+ return false;
551
+ var qtys = (0, inventories_1.getQty)(inventoryItem.other_units, inventoryStock.qty.available);
552
+ var sellUnit = qtys['sellUnit'];
553
+ if (!sellUnit)
554
+ return false;
555
+ return sellUnit.value >= cartItem.qte;
556
+ });
557
+ _a.label = 2;
558
+ case 2: return [2, {
559
+ type: !!containsRedProduct && !!containsRedProduct.length
560
+ ? 'red'
561
+ : !!containsYellowProduct && !!containsYellowProduct.length
562
+ ? 'yellow'
563
+ : 'green',
564
+ inStock: isInStock
565
+ }];
566
+ }
567
+ });
568
+ }); };
569
+ exports.getConcreteCartInfo = getConcreteCartInfo;
570
+ var getGrassProductForCart = function (item) {
571
+ if (!!!item)
572
+ return;
573
+ return {
574
+ slug: item.parent_slug || '',
575
+ sku: item.sku,
576
+ qte: item.qte,
577
+ price: (0, products_3.getLowestPrice)(item).price.amount
578
+ };
579
+ };
580
+ exports.getGrassProductForCart = getGrassProductForCart;
581
+ var getRecursiveItems = function (cartItems, cartContainsGrass, keepFees) {
582
+ var getRecusiveItem = function (item) {
583
+ var subItems = cartItems.filter(function (i) { return i.is_upsell_of_sku === item.sku; }).map(function (subI) { return getRecusiveItem(subI); });
584
+ return __assign(__assign({}, item), { sub_items: !!subItems && !!subItems.length ? subItems : undefined });
585
+ };
586
+ var newItemList = cartItems
587
+ .map(function (i) { return getRecusiveItem(i); })
588
+ .filter(function (i) {
589
+ return (!!keepFees && !!i.is_upsell_of_sku && i.is_upsell_of_sku === 'summary') ||
590
+ (!!i.sub_items && !!!i.is_upsell_of_sku) ||
591
+ (!!!i.is_upsell_of_sku && !!!i.sub_items);
592
+ });
593
+ return !!!cartContainsGrass ? newItemList : (0, orderBy_1.default)(newItemList, function (i) { return !!i.sub_items; }, 'desc');
594
+ };
595
+ exports.getRecursiveItems = getRecursiveItems;
596
+ var getRecursiveItemsFromSubItems = function (item) {
597
+ var getRecusiveItem = function (item) {
598
+ var subItems = item.sub_items;
599
+ if (!!subItems) {
600
+ var items = __spreadArray([item], (0, flatten_1.default)(subItems.map(function (i) { return getRecusiveItem(i); })), true);
601
+ return items;
602
+ }
603
+ return [item];
604
+ };
605
+ return !!item.sub_items ? __spreadArray([item], (0, flatten_1.default)(item.sub_items.map(function (i) { return getRecusiveItem(i); })), true) : [item];
606
+ };
607
+ exports.getRecursiveItemsFromSubItems = getRecursiveItemsFromSubItems;
608
+ var getClientNumberForCart = function (cartData, isQuote) {
609
+ if (!!!cartData)
610
+ return '';
611
+ var proTitle = (0, object_1.recursiveCheckObject)(cartData, 'customer_info.pro_title');
612
+ var isPA = !!((0, object_1.recursiveCheckObject)(cartData, 'promise_to_purchase.ids') || []).length;
613
+ var isWebCart = cartData.cart_type === Cart_1.CartTypeEnum.WEB || !!cartData.is_from_web;
614
+ if (!!proTitle && !!cartData.customer_id) {
615
+ return "".concat(cartData.customer_id).concat(!!isPA ? 'PA' : '');
616
+ }
617
+ if (!!isWebCart) {
618
+ return "".concat(!!cartData.is_pickup ? 'COM' : 'LIV').concat((0, moment_1.default)((0, data_1.formatDate)(cartData.paid_at)).format('YY'), "WEB");
619
+ }
620
+ if (!!isQuote) {
621
+ return proTitle === 'anonymous-pos-pro' ? 'Paysagiste' : 'Détail';
622
+ }
623
+ return _getPOSCustomerTypeForCart(cartData);
624
+ };
625
+ exports.getClientNumberForCart = getClientNumberForCart;
626
+ var _getPOSCustomerTypeForCart = function (cartData) {
627
+ var isPickup = !!cartData && !!cartData.is_pickup;
628
+ var isPro = !!cartData.customer_info && !!cartData.customer_info.pro_title;
629
+ var currentYear = (0, moment_1.default)((0, data_1.formatDate)(cartData.paid_at)).format('YY');
630
+ var storeNb = !!cartData.created_by && !!cartData.created_by.at_store_number ? cartData.created_by.at_store_number : 0;
631
+ var aNumber = (0, toNumber_1.default)(storeNb);
632
+ var endOfCode = '';
633
+ if (!!!aNumber) {
634
+ endOfCode = "".concat(!!isPro ? 3 : '').concat(storeNb);
635
+ }
636
+ else {
637
+ endOfCode = "".concat(!!!isPro && aNumber < 10 ? '0' : '').concat((!!isPro ? 30 : 0) + aNumber);
638
+ }
639
+ return "".concat(!!isPickup ? 'COM' : 'LIV').concat(currentYear).concat(endOfCode);
640
+ };
641
+ var getLabelForCartType = function (value) {
642
+ switch (value) {
643
+ case cart_1.CartGeneralTypeEnum.ONLY_ACCESSORIES:
644
+ return 'Accessoires seulement';
645
+ case cart_1.CartGeneralTypeEnum.BETON:
646
+ return 'Béton';
647
+ case cart_1.CartGeneralTypeEnum.SAMPLE:
648
+ return 'Échantillons';
649
+ case cart_1.CartGeneralTypeEnum.GRASS:
650
+ return 'Gazon';
651
+ case cart_1.CartGeneralTypeEnum.INSTALLATION:
652
+ return 'Installation';
653
+ case cart_1.CartGeneralTypeEnum.VRAC:
654
+ return 'Vrac';
655
+ case Cart_1.CartContentTypeEnum.MIXED:
656
+ return 'Mixte';
657
+ default:
658
+ return value;
659
+ }
660
+ };
661
+ exports.getLabelForCartType = getLabelForCartType;
662
662
  //# sourceMappingURL=cart.js.map