addio-admin-sdk 1.6.13 → 1.6.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/.babelrc +17 -17
  2. package/.env.dev +14 -14
  3. package/.github/workflows/publish_coverage.yaml +69 -69
  4. package/addio-sdk-doc.md +1380 -1380
  5. package/changelog.md +362 -353
  6. package/dist/Interfaces/Address/index.d.ts +21 -21
  7. package/dist/Interfaces/Address/index.js +16 -16
  8. package/dist/Interfaces/Algolia/index.d.ts +145 -145
  9. package/dist/Interfaces/Algolia/index.js +2 -2
  10. package/dist/Interfaces/Attachement/index.d.ts +5 -5
  11. package/dist/Interfaces/Attachement/index.js +2 -2
  12. package/dist/Interfaces/Attribute/index.d.ts +47 -47
  13. package/dist/Interfaces/Attribute/index.js +10 -10
  14. package/dist/Interfaces/BGJob/index.d.ts +56 -56
  15. package/dist/Interfaces/BGJob/index.js +36 -36
  16. package/dist/Interfaces/BaseClass/index.d.ts +8 -8
  17. package/dist/Interfaces/BaseClass/index.js +2 -2
  18. package/dist/Interfaces/Blog/IBlogArticle.d.ts +18 -18
  19. package/dist/Interfaces/Blog/IBlogArticle.js +2 -2
  20. package/dist/Interfaces/Blog/IBlogAuthor.d.ts +7 -7
  21. package/dist/Interfaces/Blog/IBlogAuthor.js +2 -2
  22. package/dist/Interfaces/Blog/IBlogCategory.d.ts +9 -9
  23. package/dist/Interfaces/Blog/IBlogCategory.js +2 -2
  24. package/dist/Interfaces/Blog/IBlogComment.d.ts +13 -13
  25. package/dist/Interfaces/Blog/IBlogComment.js +2 -2
  26. package/dist/Interfaces/Blog/IBlogKeywords.d.ts +9 -9
  27. package/dist/Interfaces/Blog/IBlogKeywords.js +2 -2
  28. package/dist/Interfaces/Booking/index.d.ts +68 -68
  29. package/dist/Interfaces/Booking/index.js +17 -17
  30. package/dist/Interfaces/Brand/index.d.ts +13 -13
  31. package/dist/Interfaces/Brand/index.js +2 -2
  32. package/dist/Interfaces/CMS/index.d.ts +25 -25
  33. package/dist/Interfaces/CMS/index.js +2 -2
  34. package/dist/Interfaces/Cart/IPandaPayload.d.ts +64 -64
  35. package/dist/Interfaces/Cart/IPandaPayload.js +18 -18
  36. package/dist/Interfaces/Cart/IPaymentCard.d.ts +22 -22
  37. package/dist/Interfaces/Cart/IPaymentCard.js +44 -44
  38. package/dist/Interfaces/Cart/IPaypalPayload.d.ts +9 -9
  39. package/dist/Interfaces/Cart/IPaypalPayload.js +2 -2
  40. package/dist/Interfaces/Cart/IPaysafePayload.d.ts +72 -72
  41. package/dist/Interfaces/Cart/IPaysafePayload.js +2 -2
  42. package/dist/Interfaces/Cart/IStripePayload.d.ts +66 -66
  43. package/dist/Interfaces/Cart/IStripePayload.js +2 -2
  44. package/dist/Interfaces/Cart/index.d.ts +397 -397
  45. package/dist/Interfaces/Cart/index.js +181 -181
  46. package/dist/Interfaces/Catalogue/index.d.ts +68 -68
  47. package/dist/Interfaces/Catalogue/index.js +37 -37
  48. package/dist/Interfaces/Category/index.d.ts +26 -26
  49. package/dist/Interfaces/Category/index.js +2 -2
  50. package/dist/Interfaces/Chart/index.d.ts +11 -11
  51. package/dist/Interfaces/Chart/index.js +2 -2
  52. package/dist/Interfaces/Class/index.d.ts +8 -8
  53. package/dist/Interfaces/Class/index.js +2 -2
  54. package/dist/Interfaces/Consent/index.d.ts +6 -6
  55. package/dist/Interfaces/Consent/index.js +2 -2
  56. package/dist/Interfaces/Context/IContextProps.d.ts +5 -5
  57. package/dist/Interfaces/Context/IContextProps.js +2 -2
  58. package/dist/Interfaces/Context/IContextState.d.ts +15 -15
  59. package/dist/Interfaces/Context/IContextState.js +2 -2
  60. package/dist/Interfaces/Customer/ICustomerBadge.d.ts +2 -2
  61. package/dist/Interfaces/Customer/ICustomerBadge.js +2 -2
  62. package/dist/Interfaces/Customer/ICustomerRating.d.ts +10 -10
  63. package/dist/Interfaces/Customer/ICustomerRating.js +2 -2
  64. package/dist/Interfaces/Customer/index.d.ts +92 -92
  65. package/dist/Interfaces/Customer/index.js +158 -158
  66. package/dist/Interfaces/Declination/index.d.ts +106 -106
  67. package/dist/Interfaces/Declination/index.js +64 -64
  68. package/dist/Interfaces/Document/index.d.ts +8 -8
  69. package/dist/Interfaces/Document/index.js +2 -2
  70. package/dist/Interfaces/Elastic/index.d.ts +89 -89
  71. package/dist/Interfaces/Elastic/index.js +2 -2
  72. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.d.ts +11 -11
  73. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.js +2 -2
  74. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.d.ts +15 -15
  75. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.js +2 -2
  76. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.d.ts +12 -12
  77. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.js +2 -2
  78. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.d.ts +36 -36
  79. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.js +2 -2
  80. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.d.ts +12 -12
  81. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.js +2 -2
  82. package/dist/Interfaces/Email/CustomGR/ITransportEmail.d.ts +12 -12
  83. package/dist/Interfaces/Email/CustomGR/ITransportEmail.js +2 -2
  84. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.d.ts +12 -12
  85. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.js +2 -2
  86. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.d.ts +16 -16
  87. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.js +2 -2
  88. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.d.ts +15 -15
  89. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.js +2 -2
  90. package/dist/Interfaces/Email/IAbandonnedCartEmail.d.ts +29 -29
  91. package/dist/Interfaces/Email/IAbandonnedCartEmail.js +2 -2
  92. package/dist/Interfaces/Email/IAccountConfirmationEmail.d.ts +22 -22
  93. package/dist/Interfaces/Email/IAccountConfirmationEmail.js +2 -2
  94. package/dist/Interfaces/Email/IApplicationEmail.d.ts +19 -19
  95. package/dist/Interfaces/Email/IApplicationEmail.js +2 -2
  96. package/dist/Interfaces/Email/IBackInStockEmail.d.ts +21 -21
  97. package/dist/Interfaces/Email/IBackInStockEmail.js +2 -2
  98. package/dist/Interfaces/Email/IContactEmail.d.ts +20 -20
  99. package/dist/Interfaces/Email/IContactEmail.js +2 -2
  100. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.d.ts +15 -15
  101. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.js +2 -2
  102. package/dist/Interfaces/Email/ICustomerBookingEmail.d.ts +14 -14
  103. package/dist/Interfaces/Email/ICustomerBookingEmail.js +2 -2
  104. package/dist/Interfaces/Email/IEmail.d.ts +20 -20
  105. package/dist/Interfaces/Email/IEmail.js +69 -69
  106. package/dist/Interfaces/Email/IOrderConfirmationEmail.d.ts +47 -47
  107. package/dist/Interfaces/Email/IOrderConfirmationEmail.js +2 -2
  108. package/dist/Interfaces/Email/IPasswordResetEmail.d.ts +17 -17
  109. package/dist/Interfaces/Email/IPasswordResetEmail.js +2 -2
  110. package/dist/Interfaces/Email/IPhotoShootEmail.d.ts +14 -14
  111. package/dist/Interfaces/Email/IPhotoShootEmail.js +2 -2
  112. package/dist/Interfaces/Email/IPickupConfirmation.d.ts +23 -23
  113. package/dist/Interfaces/Email/IPickupConfirmation.js +2 -2
  114. package/dist/Interfaces/Email/IShippingConfirmation.d.ts +23 -23
  115. package/dist/Interfaces/Email/IShippingConfirmation.js +2 -2
  116. package/dist/Interfaces/Email/IWelcomeEmail.d.ts +19 -19
  117. package/dist/Interfaces/Email/IWelcomeEmail.js +2 -2
  118. package/dist/Interfaces/ExportSchema/index.d.ts +7 -7
  119. package/dist/Interfaces/ExportSchema/index.js +2 -2
  120. package/dist/Interfaces/ExternalService/BaseExternalService.d.ts +12 -12
  121. package/dist/Interfaces/ExternalService/BaseExternalService.js +2 -2
  122. package/dist/Interfaces/ExternalService/index.d.ts +9 -9
  123. package/dist/Interfaces/ExternalService/index.js +2 -2
  124. package/dist/Interfaces/G2/index.d.ts +286 -286
  125. package/dist/Interfaces/G2/index.js +31 -31
  126. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.d.ts +20 -20
  127. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.js +2 -2
  128. package/dist/Interfaces/Indexed/Product/index.d.ts +91 -91
  129. package/dist/Interfaces/Indexed/Product/index.js +315 -315
  130. package/dist/Interfaces/Inventory/index.d.ts +19 -19
  131. package/dist/Interfaces/Inventory/index.js +8 -8
  132. package/dist/Interfaces/Invoice/index.d.ts +4 -4
  133. package/dist/Interfaces/Invoice/index.js +2 -2
  134. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.d.ts +3 -3
  135. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.js +2 -2
  136. package/dist/Interfaces/MarketplacePublication/index.d.ts +23 -23
  137. package/dist/Interfaces/MarketplacePublication/index.js +33 -33
  138. package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
  139. package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
  140. package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
  141. package/dist/Interfaces/Operations/IUpdate.js +2 -2
  142. package/dist/Interfaces/Order/index.d.ts +4 -4
  143. package/dist/Interfaces/Order/index.js +2 -2
  144. package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
  145. package/dist/Interfaces/Org/IRelUser.js +2 -2
  146. package/dist/Interfaces/Org/index.d.ts +29 -29
  147. package/dist/Interfaces/Org/index.js +12 -12
  148. package/dist/Interfaces/Payment/index.d.ts +11 -11
  149. package/dist/Interfaces/Payment/index.js +2 -2
  150. package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
  151. package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
  152. package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
  153. package/dist/Interfaces/Product/IImportProduct.js +966 -966
  154. package/dist/Interfaces/Product/IInventoryItem.d.ts +81 -81
  155. package/dist/Interfaces/Product/IInventoryItem.js +36 -36
  156. package/dist/Interfaces/Product/IPricing.d.ts +177 -177
  157. package/dist/Interfaces/Product/IPricing.js +174 -174
  158. package/dist/Interfaces/Product/index.d.ts +121 -121
  159. package/dist/Interfaces/Product/index.js +56 -56
  160. package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
  161. package/dist/Interfaces/ProductAttribute/index.js +2 -2
  162. package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
  163. package/dist/Interfaces/PromiseToPurchase/BankType.js +42 -42
  164. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
  165. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
  166. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
  167. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
  168. package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
  169. package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
  170. package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
  171. package/dist/Interfaces/PurchaseOrder/index.js +2 -2
  172. package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
  173. package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
  174. package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
  175. package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
  176. package/dist/Interfaces/Query/IProductQueryOptions.d.ts +15 -15
  177. package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
  178. package/dist/Interfaces/Quote/index.d.ts +5 -5
  179. package/dist/Interfaces/Quote/index.js +2 -2
  180. package/dist/Interfaces/Rules/IDiscountRule.d.ts +131 -131
  181. package/dist/Interfaces/Rules/IDiscountRule.js +95 -95
  182. package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
  183. package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
  184. package/dist/Interfaces/Services/IService.d.ts +12 -12
  185. package/dist/Interfaces/Services/IService.js +2 -2
  186. package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
  187. package/dist/Interfaces/Services/IServiceSecret.js +2 -2
  188. package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
  189. package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
  190. package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
  191. package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
  192. package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
  193. package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
  194. package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
  195. package/dist/Interfaces/Shipping/Shiptime/order.js +48 -48
  196. package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
  197. package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
  198. package/dist/Interfaces/Slider/GR.d.ts +130 -130
  199. package/dist/Interfaces/Slider/GR.js +271 -271
  200. package/dist/Interfaces/Slider/index.d.ts +14 -14
  201. package/dist/Interfaces/Slider/index.js +2 -2
  202. package/dist/Interfaces/Space/IMember.d.ts +16 -16
  203. package/dist/Interfaces/Space/IMember.js +9 -9
  204. package/dist/Interfaces/Space/index.d.ts +311 -311
  205. package/dist/Interfaces/Space/index.js +77 -77
  206. package/dist/Interfaces/Specials/gr.d.ts +61 -61
  207. package/dist/Interfaces/Specials/gr.js +2 -2
  208. package/dist/Interfaces/StockNotification/index.d.ts +7 -7
  209. package/dist/Interfaces/StockNotification/index.js +2 -2
  210. package/dist/Interfaces/Store/index.d.ts +60 -60
  211. package/dist/Interfaces/Store/index.js +27 -27
  212. package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
  213. package/dist/Interfaces/Supplier/ICommand.js +2 -2
  214. package/dist/Interfaces/Supplier/index.d.ts +36 -36
  215. package/dist/Interfaces/Supplier/index.js +24 -24
  216. package/dist/Interfaces/Tag/index.d.ts +18 -18
  217. package/dist/Interfaces/Tag/index.js +2 -2
  218. package/dist/Interfaces/Tax/index.d.ts +12 -12
  219. package/dist/Interfaces/Tax/index.js +2 -2
  220. package/dist/Interfaces/TransferRequest/index.d.ts +32 -32
  221. package/dist/Interfaces/TransferRequest/index.js +26 -26
  222. package/dist/Interfaces/Translation/index.d.ts +4 -4
  223. package/dist/Interfaces/Translation/index.js +2 -2
  224. package/dist/Interfaces/Update/index.d.ts +10 -10
  225. package/dist/Interfaces/Update/index.js +2 -2
  226. package/dist/Interfaces/User/IUser.d.ts +29 -29
  227. package/dist/Interfaces/User/IUser.js +8 -8
  228. package/dist/Interfaces/Version/index.d.ts +11 -11
  229. package/dist/Interfaces/Version/index.js +2 -2
  230. package/dist/Interfaces/Wishlist/index.d.ts +7 -7
  231. package/dist/Interfaces/Wishlist/index.js +2 -2
  232. package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
  233. package/dist/constants/Interfaces/IBaseApi.js +2 -2
  234. package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
  235. package/dist/constants/Interfaces/IEndpointResult.js +2 -2
  236. package/dist/constants/enums.d.ts +6 -6
  237. package/dist/constants/enums.js +10 -10
  238. package/dist/constants/version.d.ts +2 -2
  239. package/dist/constants/version.js +5 -5
  240. package/dist/index.d.ts +32 -32
  241. package/dist/index.js +416 -416
  242. package/dist/lib/Attribute/index.d.ts +14 -14
  243. package/dist/lib/Attribute/index.js +249 -249
  244. package/dist/lib/BGJob/index.d.ts +9 -9
  245. package/dist/lib/BGJob/index.js +376 -376
  246. package/dist/lib/BackgroundWorker/index.d.ts +34 -34
  247. package/dist/lib/BackgroundWorker/index.js +72 -72
  248. package/dist/lib/Blog/BlogArticle.d.ts +5 -5
  249. package/dist/lib/Blog/BlogArticle.js +28 -28
  250. package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
  251. package/dist/lib/Blog/BlogAuthor.js +28 -28
  252. package/dist/lib/Blog/BlogCategory.d.ts +5 -5
  253. package/dist/lib/Blog/BlogCategory.js +28 -28
  254. package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
  255. package/dist/lib/Blog/BlogKeyword.js +28 -28
  256. package/dist/lib/Booking/index.d.ts +63 -63
  257. package/dist/lib/Booking/index.js +813 -813
  258. package/dist/lib/Brand/index.d.ts +17 -17
  259. package/dist/lib/Brand/index.js +276 -276
  260. package/dist/lib/Cart/index.d.ts +184 -184
  261. package/dist/lib/Cart/index.js +3653 -3653
  262. package/dist/lib/Catalogue/index.d.ts +9 -9
  263. package/dist/lib/Catalogue/index.js +208 -208
  264. package/dist/lib/Category/index.d.ts +26 -26
  265. package/dist/lib/Category/index.js +361 -361
  266. package/dist/lib/Class/index.d.ts +12 -12
  267. package/dist/lib/Class/index.js +159 -159
  268. package/dist/lib/Consent/index.d.ts +4 -4
  269. package/dist/lib/Consent/index.js +79 -79
  270. package/dist/lib/Customer/index.d.ts +10 -10
  271. package/dist/lib/Customer/index.js +140 -140
  272. package/dist/lib/Declination/index.d.ts +10 -10
  273. package/dist/lib/Declination/index.js +85 -85
  274. package/dist/lib/Discount/index.d.ts +18 -18
  275. package/dist/lib/Discount/index.js +759 -759
  276. package/dist/lib/ElasticSearch/index.d.ts +8 -8
  277. package/dist/lib/ElasticSearch/index.js +101 -101
  278. package/dist/lib/Email/AbandonedCartEmail.d.ts +8 -8
  279. package/dist/lib/Email/AbandonedCartEmail.js +78 -78
  280. package/dist/lib/Email/AccountConfirmationEmail.d.ts +11 -11
  281. package/dist/lib/Email/AccountConfirmationEmail.js +95 -95
  282. package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +8 -8
  283. package/dist/lib/Email/AdminOrderConfirmationEmail.js +78 -78
  284. package/dist/lib/Email/ApplicationEmail.d.ts +8 -8
  285. package/dist/lib/Email/ApplicationEmail.js +78 -78
  286. package/dist/lib/Email/BackInStockEmail.d.ts +8 -8
  287. package/dist/lib/Email/BackInStockEmail.js +78 -78
  288. package/dist/lib/Email/ContactEmail.d.ts +8 -8
  289. package/dist/lib/Email/ContactEmail.js +78 -78
  290. package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +8 -8
  291. package/dist/lib/Email/CustomerBookingAdminEmail.js +78 -78
  292. package/dist/lib/Email/CustomerBookingEmail.d.ts +8 -8
  293. package/dist/lib/Email/CustomerBookingEmail.js +78 -78
  294. package/dist/lib/Email/OrderConfirmationEmail.d.ts +8 -8
  295. package/dist/lib/Email/OrderConfirmationEmail.js +78 -78
  296. package/dist/lib/Email/OrderDenounciationEmail.d.ts +8 -8
  297. package/dist/lib/Email/OrderDenounciationEmail.js +78 -78
  298. package/dist/lib/Email/OrderSampleEmail.d.ts +8 -8
  299. package/dist/lib/Email/OrderSampleEmail.js +78 -78
  300. package/dist/lib/Email/OtherTypeEmails.d.ts +8 -8
  301. package/dist/lib/Email/OtherTypeEmails.js +90 -90
  302. package/dist/lib/Email/PasswordResetEmail.d.ts +8 -8
  303. package/dist/lib/Email/PasswordResetEmail.js +78 -78
  304. package/dist/lib/Email/PhotoShootEmail.d.ts +8 -8
  305. package/dist/lib/Email/PhotoShootEmail.js +78 -78
  306. package/dist/lib/Email/PickUpConfirmation.d.ts +8 -8
  307. package/dist/lib/Email/PickUpConfirmation.js +78 -78
  308. package/dist/lib/Email/ShippingConfirmation.d.ts +8 -8
  309. package/dist/lib/Email/ShippingConfirmation.js +78 -78
  310. package/dist/lib/Email/WelcomeEmail.d.ts +8 -8
  311. package/dist/lib/Email/WelcomeEmail.js +78 -78
  312. package/dist/lib/Email/index.d.ts +8 -8
  313. package/dist/lib/Email/index.js +82 -82
  314. package/dist/lib/ExternalService/Ebay.d.ts +63 -63
  315. package/dist/lib/ExternalService/Ebay.js +185 -185
  316. package/dist/lib/ExternalService/index.d.ts +5 -5
  317. package/dist/lib/ExternalService/index.js +28 -28
  318. package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
  319. package/dist/lib/Indexed/IndexedCart.js +194 -194
  320. package/dist/lib/Indexed/Product.d.ts +17 -17
  321. package/dist/lib/Indexed/Product.js +116 -116
  322. package/dist/lib/Inventory/index.d.ts +31 -31
  323. package/dist/lib/Inventory/index.js +560 -560
  324. package/dist/lib/Invoice/index.d.ts +5 -5
  325. package/dist/lib/Invoice/index.js +28 -28
  326. package/dist/lib/MarketplacePublication/index.d.ts +9 -9
  327. package/dist/lib/MarketplacePublication/index.js +221 -221
  328. package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
  329. package/dist/lib/MongoDB/BaseAPI.js +308 -308
  330. package/dist/lib/Order/index.d.ts +7 -7
  331. package/dist/lib/Order/index.js +62 -62
  332. package/dist/lib/Org/index.d.ts +26 -26
  333. package/dist/lib/Org/index.js +286 -286
  334. package/dist/lib/PandaPay/index.d.ts +16 -16
  335. package/dist/lib/PandaPay/index.js +219 -219
  336. package/dist/lib/Paysafe/index.d.ts +11 -11
  337. package/dist/lib/Paysafe/index.js +100 -100
  338. package/dist/lib/Product/index.d.ts +143 -143
  339. package/dist/lib/Product/index.js +1326 -1326
  340. package/dist/lib/ProductAttribute/index.d.ts +15 -15
  341. package/dist/lib/ProductAttribute/index.js +114 -114
  342. package/dist/lib/PromiseToPurchase/index.d.ts +35 -35
  343. package/dist/lib/PromiseToPurchase/index.js +474 -474
  344. package/dist/lib/PurchaseOrder/index.d.ts +9 -9
  345. package/dist/lib/PurchaseOrder/index.js +72 -72
  346. package/dist/lib/Queue/index.d.ts +40 -40
  347. package/dist/lib/Queue/index.js +254 -254
  348. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  349. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  350. package/dist/lib/Service/index.d.ts +5 -5
  351. package/dist/lib/Service/index.js +57 -57
  352. package/dist/lib/Shipment/index.d.ts +28 -28
  353. package/dist/lib/Shipment/index.js +559 -559
  354. package/dist/lib/Slider/index.d.ts +16 -16
  355. package/dist/lib/Slider/index.js +235 -235
  356. package/dist/lib/Space/index.d.ts +769 -769
  357. package/dist/lib/Space/index.js +6688 -6688
  358. package/dist/lib/StockNotification/index.d.ts +4 -4
  359. package/dist/lib/StockNotification/index.js +26 -26
  360. package/dist/lib/Store/index.d.ts +5 -5
  361. package/dist/lib/Store/index.js +30 -30
  362. package/dist/lib/Supplier/Command.d.ts +5 -5
  363. package/dist/lib/Supplier/Command.js +28 -28
  364. package/dist/lib/Supplier/index.d.ts +25 -25
  365. package/dist/lib/Supplier/index.js +92 -92
  366. package/dist/lib/Tags/index.d.ts +6 -6
  367. package/dist/lib/Tags/index.js +84 -84
  368. package/dist/lib/Tax/index.d.ts +8 -8
  369. package/dist/lib/Tax/index.js +136 -136
  370. package/dist/lib/TransferRequest/index.d.ts +21 -21
  371. package/dist/lib/TransferRequest/index.js +302 -302
  372. package/dist/lib/Update/index.d.ts +10 -10
  373. package/dist/lib/Update/index.js +71 -71
  374. package/dist/lib/User/index.d.ts +33 -33
  375. package/dist/lib/User/index.js +360 -360
  376. package/dist/lib/Wishlist/index.d.ts +5 -5
  377. package/dist/lib/Wishlist/index.js +28 -28
  378. package/dist/lib/base.d.ts +14 -14
  379. package/dist/lib/base.js +135 -135
  380. package/dist/lib/baseService.d.ts +17 -17
  381. package/dist/lib/baseService.js +113 -113
  382. package/dist/rules/GR/constants/data.d.ts +28 -28
  383. package/dist/rules/GR/constants/data.js +57 -57
  384. package/dist/rules/GR/constants/products.d.ts +8 -8
  385. package/dist/rules/GR/constants/products.js +234 -234
  386. package/dist/rules/GR/interfaces/cart.d.ts +68 -68
  387. package/dist/rules/GR/interfaces/cart.js +49 -49
  388. package/dist/rules/GR/interfaces/data.d.ts +97 -97
  389. package/dist/rules/GR/interfaces/data.js +104 -104
  390. package/dist/rules/GR/interfaces/products.d.ts +61 -61
  391. package/dist/rules/GR/interfaces/products.js +10 -10
  392. package/dist/rules/GR/utils/cart.d.ts +39 -39
  393. package/dist/rules/GR/utils/cart.js +644 -644
  394. package/dist/rules/GR/utils/data.d.ts +3 -3
  395. package/dist/rules/GR/utils/data.js +25 -25
  396. package/dist/rules/GR/utils/expedition.d.ts +70 -70
  397. package/dist/rules/GR/utils/expedition.js +1584 -1584
  398. package/dist/rules/GR/utils/expedition.js.map +1 -1
  399. package/dist/rules/GR/utils/g2.d.ts +153 -153
  400. package/dist/rules/GR/utils/g2.js +914 -914
  401. package/dist/rules/GR/utils/invoices.d.ts +5 -5
  402. package/dist/rules/GR/utils/invoices.js +140 -140
  403. package/dist/rules/GR/utils/products.d.ts +105 -105
  404. package/dist/rules/GR/utils/products.js +1013 -1013
  405. package/dist/rules/GR/utils/upsells.d.ts +75 -75
  406. package/dist/rules/GR/utils/upsells.js +278 -278
  407. package/dist/services/database/BaseProvider.d.ts +28 -28
  408. package/dist/services/database/BaseProvider.js +77 -77
  409. package/dist/services/database/BatchUtils.d.ts +14 -14
  410. package/dist/services/database/BatchUtils.js +88 -88
  411. package/dist/services/database/Config.d.ts +2 -2
  412. package/dist/services/database/Config.js +5 -5
  413. package/dist/services/database/DatabaseService.d.ts +41 -41
  414. package/dist/services/database/DatabaseService.js +311 -311
  415. package/dist/services/database/FirebaseProvider.d.ts +17 -17
  416. package/dist/services/database/FirebaseProvider.js +300 -300
  417. package/dist/services/database/NotFirebaseProvider.d.ts +35 -35
  418. package/dist/services/database/NotFirebaseProvider.js +367 -367
  419. package/dist/utils/algolia.d.ts +6 -6
  420. package/dist/utils/algolia.js +22 -22
  421. package/dist/utils/anonymisation.d.ts +30 -30
  422. package/dist/utils/anonymisation.js +269 -269
  423. package/dist/utils/array.d.ts +5 -5
  424. package/dist/utils/array.js +36 -36
  425. package/dist/utils/aws.d.ts +14 -14
  426. package/dist/utils/aws.js +220 -220
  427. package/dist/utils/booking.d.ts +22 -22
  428. package/dist/utils/booking.js +175 -175
  429. package/dist/utils/cart.d.ts +511 -511
  430. package/dist/utils/cart.js +503 -503
  431. package/dist/utils/cmv.d.ts +10 -10
  432. package/dist/utils/cmv.js +107 -107
  433. package/dist/utils/console.d.ts +6 -6
  434. package/dist/utils/console.js +121 -121
  435. package/dist/utils/context.d.ts +19 -19
  436. package/dist/utils/context.js +41 -41
  437. package/dist/utils/currency.d.ts +6 -6
  438. package/dist/utils/currency.js +62 -62
  439. package/dist/utils/data.d.ts +40 -40
  440. package/dist/utils/data.js +226 -226
  441. package/dist/utils/date.d.ts +1 -1
  442. package/dist/utils/date.js +16 -16
  443. package/dist/utils/dimensions.d.ts +3 -3
  444. package/dist/utils/dimensions.js +18 -18
  445. package/dist/utils/discount.d.ts +33 -33
  446. package/dist/utils/discount.js +906 -906
  447. package/dist/utils/errors.d.ts +113 -113
  448. package/dist/utils/errors.js +113 -113
  449. package/dist/utils/file-admin.d.ts +8 -8
  450. package/dist/utils/file-admin.js +94 -94
  451. package/dist/utils/file.d.ts +38 -38
  452. package/dist/utils/file.js +318 -318
  453. package/dist/utils/firebase-admin.d.ts +2 -2
  454. package/dist/utils/firebase-admin.js +118 -118
  455. package/dist/utils/firebase.d.ts +41 -41
  456. package/dist/utils/firebase.js +220 -220
  457. package/dist/utils/import.d.ts +1 -1
  458. package/dist/utils/import.js +81 -81
  459. package/dist/utils/inventories.d.ts +26 -26
  460. package/dist/utils/inventories.js +355 -355
  461. package/dist/utils/locale.d.ts +13 -13
  462. package/dist/utils/locale.js +67 -67
  463. package/dist/utils/mailchimp.d.ts +57 -57
  464. package/dist/utils/mailchimp.js +735 -735
  465. package/dist/utils/mongodb.d.ts +1 -1
  466. package/dist/utils/mongodb.js +68 -68
  467. package/dist/utils/object.d.ts +6 -6
  468. package/dist/utils/object.js +124 -124
  469. package/dist/utils/payment.d.ts +10 -10
  470. package/dist/utils/payment.js +25 -25
  471. package/dist/utils/products.d.ts +26 -26
  472. package/dist/utils/products.js +301 -301
  473. package/dist/utils/promiseToPurchase.d.ts +56 -56
  474. package/dist/utils/promiseToPurchase.js +228 -228
  475. package/dist/utils/prosprsearch.d.ts +21 -21
  476. package/dist/utils/prosprsearch.js +276 -276
  477. package/dist/utils/sdc.d.ts +10 -10
  478. package/dist/utils/sdc.js +1308 -1308
  479. package/dist/utils/searchIndexes.d.ts +20 -20
  480. package/dist/utils/searchIndexes.js +273 -273
  481. package/dist/utils/services.d.ts +38 -38
  482. package/dist/utils/services.js +394 -394
  483. package/dist/utils/shipment.d.ts +110 -110
  484. package/dist/utils/shipment.js +410 -410
  485. package/dist/utils/simpletexting.d.ts +2 -2
  486. package/dist/utils/simpletexting.js +88 -88
  487. package/dist/utils/sliders.d.ts +4 -4
  488. package/dist/utils/sliders.js +70 -70
  489. package/dist/utils/string.d.ts +16 -16
  490. package/dist/utils/string.js +194 -194
  491. package/dist/utils/update.d.ts +7 -7
  492. package/dist/utils/update.js +244 -244
  493. package/dist/utils/weight.d.ts +3 -3
  494. package/dist/utils/weight.js +18 -18
  495. package/dist/utils/zones.d.ts +10 -10
  496. package/dist/utils/zones.js +287 -287
  497. package/package.json +106 -106
  498. package/publish.sh +143 -143
  499. package/readme.md +182 -182
@@ -1,814 +1,814 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
- return new (P || (P = Promise))(function (resolve, reject) {
31
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
- step((generator = generator.apply(thisArg, _arguments || [])).next());
35
- });
36
- };
37
- var __generator = (this && this.__generator) || function (thisArg, body) {
38
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
- function verb(n) { return function (v) { return step([n, v]); }; }
41
- function step(op) {
42
- if (f) throw new TypeError("Generator is already executing.");
43
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
44
- 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;
45
- if (y = 0, t) op = [op[0] & 2, t.value];
46
- switch (op[0]) {
47
- case 0: case 1: t = op; break;
48
- case 4: _.label++; return { value: op[1], done: false };
49
- case 5: _.label++; y = op[1]; op = [0]; continue;
50
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
- default:
52
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
- if (t[2]) _.ops.pop();
57
- _.trys.pop(); continue;
58
- }
59
- op = body.call(thisArg, _);
60
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
- }
63
- };
64
- var __rest = (this && this.__rest) || function (s, e) {
65
- var t = {};
66
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
67
- t[p] = s[p];
68
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
69
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
70
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
71
- t[p[i]] = s[p[i]];
72
- }
73
- return t;
74
- };
75
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
76
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
77
- if (ar || !(i in from)) {
78
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
79
- ar[i] = from[i];
80
- }
81
- }
82
- return to.concat(ar || Array.prototype.slice.call(from));
83
- };
84
- var __importDefault = (this && this.__importDefault) || function (mod) {
85
- return (mod && mod.__esModule) ? mod : { "default": mod };
86
- };
87
- Object.defineProperty(exports, "__esModule", { value: true });
88
- var lodash_1 = require("lodash");
89
- var Booking_1 = require("../../Interfaces/Booking");
90
- var Cart_1 = require("../../Interfaces/Cart");
91
- var Customer_1 = require("../../Interfaces/Customer");
92
- var IDiscountRule_1 = require("../../Interfaces/Rules/IDiscountRule");
93
- var booking_1 = require("../../utils/booking");
94
- var console_1 = require("../../utils/console");
95
- var data_1 = require("../../utils/data");
96
- var locale_1 = require("../../utils/locale");
97
- var Cart_2 = __importDefault(require("../Cart"));
98
- var Space_1 = __importDefault(require("../Space"));
99
- var data_2 = require("../../rules/GR/constants/data");
100
- var baseService_1 = require("../baseService");
101
- var DatabaseService_1 = __importDefault(require("../../services/database/DatabaseService"));
102
- var expedition_1 = require("../../rules/GR/utils/expedition");
103
- var Booking = (function (_super) {
104
- __extends(Booking, _super);
105
- function Booking() {
106
- var _this = _super !== null && _super.apply(this, arguments) || this;
107
- _this.assignToClient = function (_a, doNotSave) {
108
- var clientId = _a.clientId, clientRef = _a.clientRef, overrideExistingClient = _a.overrideExistingClient;
109
- return __awaiter(_this, void 0, void 0, function () {
110
- var clientToAssign;
111
- return __generator(this, function (_b) {
112
- switch (_b.label) {
113
- case 0:
114
- if (!!!clientRef && !!!clientId)
115
- throw new Error("Can't access client. Please provide id or ref");
116
- if (!!!overrideExistingClient && !!this._data.to_client)
117
- throw new Error("Can't override existing client. If you want to, pass 'overrideExistingClient' props to true");
118
- if (!!clientRef) {
119
- this._data = __assign(__assign({}, this._data), { to_client: clientRef });
120
- }
121
- if (DatabaseService_1.default.getPathParent(this._collection.path) == '/')
122
- throw new Error("Can't access parent space collection");
123
- if (!!clientId) {
124
- clientToAssign = DatabaseService_1.default.addToPath(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'customers'), clientId);
125
- this._data = __assign(__assign({}, this._data), { to_client: clientToAssign });
126
- }
127
- return [4, this.save(undefined, undefined, !!doNotSave ? false : true)];
128
- case 1: return [2, _b.sent()];
129
- }
130
- });
131
- });
132
- };
133
- _this.assignToUser = function (userRef, save) { return __awaiter(_this, void 0, void 0, function () {
134
- var error_1;
135
- return __generator(this, function (_a) {
136
- switch (_a.label) {
137
- case 0:
138
- _a.trys.push([0, 2, , 3]);
139
- this._data = __assign(__assign({}, this._data), { by_user: userRef });
140
- return [4, this.save(undefined, undefined, save)];
141
- case 1: return [2, _a.sent()];
142
- case 2:
143
- error_1 = _a.sent();
144
- (0, console_1.errorMessage)("Error while assigning user to booking. ".concat(error_1, " - ").concat(JSON.stringify(error_1)));
145
- return [3, 3];
146
- case 3: return [2];
147
- }
148
- });
149
- }); };
150
- _this.addOrUpdateItem = function (_a) {
151
- var _b = _a.item, sku = _b.sku, name = _b.name, price = _b.price, parentSlug = _b.parentSlug, discount = _b.discount, client_discount = _b.client_discount, units = _b.units, custom_id = _b.custom_id, qty = _a.qty;
152
- return __awaiter(_this, void 0, void 0, function () {
153
- return __generator(this, function (_c) {
154
- switch (_c.label) {
155
- case 0:
156
- if (!!!sku && !!!custom_id)
157
- throw new Error("Can't find product without SKU");
158
- if (!!qty && qty <= 0)
159
- throw new Error("Use 'removeItem'");
160
- if (!!(0, lodash_1.find)(this._data.items, function (item) {
161
- return !!item.custom_id ? item.custom_id === custom_id : !!item.item_sku && item.item_sku === sku;
162
- })) {
163
- this._data = __assign(__assign({}, this._data), { items: this._data.items.map(function (_item) {
164
- if (!!_item.custom_id ? _item.custom_id !== custom_id : _item.item_sku !== sku)
165
- return _item;
166
- (0, console_1.workingMessage)("Updating item ".concat(!!_item.item_sku ? _item.item_sku : _item.custom_id, " with price: ").concat(price, " and quantity: ").concat(qty));
167
- return __assign(__assign(__assign(__assign({}, _item), { item_name: name, item_sku: sku, item_price: price, qty: !!qty ? qty : _item.qty, item_discount: discount, parent_slug: parentSlug }), (!!custom_id ? { custom_id: custom_id } : {})), (typeof client_discount === 'number' ? { item_client_discount: client_discount } : {}));
168
- }) });
169
- }
170
- else {
171
- this._data = __assign(__assign({}, this._data), { items: __spreadArray(__spreadArray([], this._data.items, true), [
172
- __assign(__assign(__assign({ item_name: name, item_price: price, item_sku: sku, qty: qty, parent_slug: parentSlug, item_discount: discount }, (!!custom_id ? { custom_id: custom_id } : {})), (typeof client_discount === 'number' ? { item_client_discount: client_discount } : {})), { units: units })
173
- ], false) });
174
- }
175
- this._data = __assign(__assign({}, this._data), { is_paillis: !!this._data.items.find(function (item) { return data_2.PAILLIS_SKUS.includes(item.item_sku); }), shipping_price: !!this._data.items.find(function (item) { return data_2.PAILLIS_DROPSHIP_SKUS.includes(item.item_sku); })
176
- ? data_2.bookingFees.shippingFee_paillisDropship
177
- : !!this._data.shipping_price
178
- ? this._data.shipping_price
179
- : !!this._data.is_pickup
180
- ? !!this._data.type && this._data.type === Booking_1.BookingTypeEnum.BETON
181
- ? data_2.bookingFees.preparationFee_beton
182
- : data_2.bookingFees.preparationFee_accessoires
183
- : !!this._data.type && this._data.type === Booking_1.BookingTypeEnum.BETON
184
- ? data_2.bookingFees.shippingFee_beton
185
- : data_2.bookingFees.shippingFee_accessoires });
186
- if (!!this._data.type && this._data.type === Booking_1.BookingTypeEnum.BETON) {
187
- this.recalculatePalletFee();
188
- }
189
- return [4, this.save()];
190
- case 1: return [2, _c.sent()];
191
- }
192
- });
193
- });
194
- };
195
- _this.removeItem = function (_a) {
196
- var _b = _a.item, sku = _b.sku, custom_id = _b.custom_id;
197
- return __awaiter(_this, void 0, void 0, function () {
198
- var index, isBeton, hasDropShipItems;
199
- return __generator(this, function (_c) {
200
- switch (_c.label) {
201
- case 0:
202
- if (!!!sku && !!!custom_id)
203
- throw new Error("Can't find product without SKU");
204
- if (!!!this._data.items.length)
205
- return [2, true];
206
- index = this._data.items.findIndex(function (i) {
207
- return !!i.custom_id && custom_id ? i.custom_id === custom_id : !!sku ? i.item_sku === sku : false;
208
- });
209
- if (index === -1)
210
- return [2, true];
211
- this._data = __assign(__assign({}, this._data), { items: __spreadArray(__spreadArray([], this._data.items.slice(0, index), true), this._data.items.slice(index + 1), true) });
212
- isBeton = this._data.type === Booking_1.BookingTypeEnum.BETON;
213
- hasDropShipItems = this._data.items.find(function (item) {
214
- return data_2.PAILLIS_DROPSHIP_SKUS.includes(item.item_sku);
215
- });
216
- this._data = __assign(__assign({}, this._data), (!!sku
217
- ? {
218
- is_paillis: !!this._data.items.find(function (item) { return data_2.PAILLIS_SKUS.includes(item.item_sku); }),
219
- shipping_price: !!hasDropShipItems
220
- ? data_2.bookingFees.shippingFee_paillisDropship
221
- : !!this._data.is_pickup
222
- ? !!isBeton
223
- ? data_2.bookingFees.preparationFee_beton
224
- : data_2.bookingFees.preparationFee_accessoires
225
- : !!isBeton
226
- ? data_2.bookingFees.shippingFee_beton
227
- : data_2.bookingFees.shippingFee_accessoires
228
- }
229
- : {}));
230
- if (!!this._data.type && this._data.type === Booking_1.BookingTypeEnum.BETON) {
231
- this.recalculatePalletFee();
232
- }
233
- return [4, this.save()];
234
- case 1: return [2, _c.sent()];
235
- }
236
- });
237
- });
238
- };
239
- _this.recalculatePalletFee = function () {
240
- var totalPallets = (0, booking_1.getTotalPalletQty)(_this._data.items);
241
- _this._data = __assign(__assign({}, _this._data), { palettes_qty: totalPallets });
242
- };
243
- _this.setToBeApproved = function (priceList, fees) { return __awaiter(_this, void 0, void 0, function () {
244
- var error_2;
245
- return __generator(this, function (_a) {
246
- switch (_a.label) {
247
- case 0:
248
- this._data = __assign(__assign({}, this._data), { status: Booking_1.BookingStatusEnum.APPROVING });
249
- _a.label = 1;
250
- case 1:
251
- _a.trys.push([1, 3, , 5]);
252
- return [4, this.createOrder({ priceList: priceList, fees: fees })];
253
- case 2: return [2, _a.sent()];
254
- case 3:
255
- error_2 = _a.sent();
256
- (0, console_1.errorMessage)("Error while creating order from booking, reverting to booking. ".concat(error_2, " ").concat(JSON.stringify(error_2)));
257
- this._data = __assign(__assign({}, this._data), { status: Booking_1.BookingStatusEnum.BOOKING });
258
- return [4, this.save()];
259
- case 4:
260
- _a.sent();
261
- return [3, 5];
262
- case 5: return [2];
263
- }
264
- });
265
- }); };
266
- _this.approve = function () { return __awaiter(_this, void 0, void 0, function () {
267
- var space, cartSnap, data, cartObj, error_3;
268
- var _a;
269
- return __generator(this, function (_b) {
270
- switch (_b.label) {
271
- case 0:
272
- if (!!!this._data.order)
273
- throw new Error("Can't find relative order.");
274
- this._data = __assign(__assign({}, this._data), { status: Booking_1.BookingStatusEnum.APPROVED });
275
- _b.label = 1;
276
- case 1:
277
- _b.trys.push([1, 6, , 8]);
278
- if (DatabaseService_1.default.getPathParent(this._collection.path) == '/')
279
- throw new Error("can't access parent space");
280
- return [4, Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user)];
281
- case 2:
282
- space = _b.sent();
283
- return [4, DatabaseService_1.default.getDocumentByPath(this._data.order)];
284
- case 3:
285
- cartSnap = _b.sent();
286
- data = cartSnap.data;
287
- if (!!!data)
288
- throw new Error('data is undefined for fetched cart');
289
- cartObj = new Cart_2.default(__assign(__assign({}, data), { billing_info: __assign(__assign({}, data.billing_info), (!!data.billing_address
290
- ? { expedition_recipient_phone: (0, data_1.formatPhoneNumberDB)(data.billing_address.expedition_recipient_phone) }
291
- : {})), shipping_info: __assign(__assign({}, data.shipping_info), (!!data.shipping_address
292
- ? { expedition_recipient_phone: (0, data_1.formatPhoneNumberDB)(data.shipping_address.expedition_recipient_phone) }
293
- : {})), shipping_payload: __assign(__assign({}, ((_a = data.shipping_payload) !== null && _a !== void 0 ? _a : {})), { delivery_or_pickup_date: !!this._data.is_pickup
294
- ? this._data.pickup_date
295
- : this._data.shipping_date, delivery_notes: !!this._data.notes ? this._data.notes : '', totalPallet: this._data.palettes_qty, isOutOfArea: !!this._data.isBookingOutOfZone, orderOrProjectNumber: this._data.project_identifiant, contact_infos: {
296
- contact_firstname: this._data.contact_firstname,
297
- contact_name: this._data.contact_name,
298
- contact_phone: this._data.contact_phone,
299
- contact_email: this._data.contact_firstname
300
- } }) }), {
301
- path: DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'carts')
302
- }, this._user);
303
- return [4, cartObj.processPOSPayment({
304
- cartTotal: cartObj.data().total,
305
- charge_credit: true
306
- }, cartObj, space)];
307
- case 4:
308
- _b.sent();
309
- return [4, this.save()];
310
- case 5: return [2, _b.sent()];
311
- case 6:
312
- error_3 = _b.sent();
313
- (0, console_1.errorMessage)("Error while approving order from booking, reverting to booking. ".concat(error_3, " ").concat(JSON.stringify(error_3)));
314
- this._data = __assign(__assign({}, this._data), { status: Booking_1.BookingStatusEnum.APPROVING });
315
- return [4, this.save()];
316
- case 7:
317
- _b.sent();
318
- return [3, 8];
319
- case 8: return [2];
320
- }
321
- });
322
- }); };
323
- _this.refuse = function () { return __awaiter(_this, void 0, void 0, function () {
324
- return __generator(this, function (_a) {
325
- switch (_a.label) {
326
- case 0:
327
- if (!(typeof this._data.order == 'string')) return [3, 2];
328
- return [4, DatabaseService_1.default.deleteDocumentByPath(this._data.order)];
329
- case 1:
330
- _a.sent();
331
- return [3, 4];
332
- case 2: return [4, DatabaseService_1.default.deleteDocumentByPath(this._data.order.path)];
333
- case 3:
334
- _a.sent();
335
- _a.label = 4;
336
- case 4:
337
- this._data = __assign(__assign({}, this._data), { status: Booking_1.BookingStatusEnum.BOOKING, order: false });
338
- return [4, this.save()];
339
- case 5: return [2, _a.sent()];
340
- }
341
- });
342
- }); };
343
- _this.cancel = function () { return __awaiter(_this, void 0, void 0, function () {
344
- var previous, error_4;
345
- return __generator(this, function (_a) {
346
- switch (_a.label) {
347
- case 0:
348
- previous = this._data.status;
349
- this._data = __assign(__assign({}, this._data), { status: Booking_1.BookingStatusEnum.CANCELLED });
350
- _a.label = 1;
351
- case 1:
352
- _a.trys.push([1, 5, , 7]);
353
- if (!!!this._data.order) return [3, 3];
354
- return [4, this.deleteOrder()];
355
- case 2: return [2, _a.sent()];
356
- case 3: return [4, this.save()];
357
- case 4:
358
- _a.sent();
359
- return [3, 7];
360
- case 5:
361
- error_4 = _a.sent();
362
- (0, console_1.errorMessage)("Error while deleting order from booking, reverting to previous state. ".concat(error_4, " ").concat(JSON.stringify(error_4)));
363
- this._data = __assign(__assign({}, this._data), { status: previous });
364
- return [4, this.save()];
365
- case 6:
366
- _a.sent();
367
- return [3, 7];
368
- case 7: return [2];
369
- }
370
- });
371
- }); };
372
- _this.setIsDone = function () { return __awaiter(_this, void 0, void 0, function () {
373
- return __generator(this, function (_a) {
374
- switch (_a.label) {
375
- case 0:
376
- this._data = __assign(__assign({}, this._data), { status: Booking_1.BookingStatusEnum.DONE });
377
- return [4, this.save()];
378
- case 1: return [2, _a.sent()];
379
- }
380
- });
381
- }); };
382
- _this.calculateRegularPriceForItem = function (item) {
383
- var clientDiscount = (0, lodash_1.toNumber)(item.item_client_discount) || 0;
384
- var extraDiscount = (0, lodash_1.toNumber)(item.item_discount) || 0;
385
- var firstSubtotal = !!extraDiscount ? (0, lodash_1.toNumber)((item.item_price * 100) / (100 - extraDiscount)) : item.item_price;
386
- var secondSubtotal = !!clientDiscount ? (0, lodash_1.toNumber)((firstSubtotal * 100) / (100 - clientDiscount)) : firstSubtotal;
387
- return (0, lodash_1.round)(secondSubtotal, 2);
388
- };
389
- _this.calculateShippingFeeQte = function (dataToCheck) {
390
- var data = dataToCheck || _this.data();
391
- var bookingType = data.type || Booking_1.BookingTypeEnum.ACCESSOIRES;
392
- if (bookingType == Booking_1.BookingTypeEnum.ACCESSOIRES)
393
- return 1;
394
- var pallets = Math.ceil(data.palettes_qty || 0);
395
- return Math.ceil(pallets / (expedition_1.expeditionFeePalletTier !== null && expedition_1.expeditionFeePalletTier !== void 0 ? expedition_1.expeditionFeePalletTier : 1));
396
- };
397
- _this.calculateShippingAmount = function (dataToCheck) {
398
- var data = dataToCheck || _this.data();
399
- var bookingType = data.type || Booking_1.BookingTypeEnum.ACCESSOIRES;
400
- var currentShippingAmount = data.shipping_price || 0;
401
- if (bookingType == Booking_1.BookingTypeEnum.ACCESSOIRES)
402
- return currentShippingAmount;
403
- var feeQty = _this.calculateShippingFeeQte(dataToCheck);
404
- if (feeQty == 0)
405
- return currentShippingAmount;
406
- return feeQty * currentShippingAmount;
407
- };
408
- _this.createOrder = function (_a) {
409
- var sendMail = _a.sendMail, priceList = _a.priceList, _b = _a.fees, fees = _b === void 0 ? {} : _b;
410
- return __awaiter(_this, void 0, void 0, function () {
411
- var space, customer, type, pallet, extraFeeOutOfZone, shippingProd, preparationFee, extraFeeAfterDate, _c, _d, pastDateFee, outOfZoneFee, _e, _f, _error_1, order, _g, _h;
412
- var _j;
413
- var _this = this;
414
- var _k, _l, _m;
415
- return __generator(this, function (_o) {
416
- switch (_o.label) {
417
- case 0:
418
- if (DatabaseService_1.default.getPathParent(this._collection.path) == '/')
419
- throw new Error("Can't access parent space collection");
420
- return [4, Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user)];
421
- case 1:
422
- space = _o.sent();
423
- return [4, DatabaseService_1.default.getDocumentByPath(this.data().to_client)];
424
- case 2:
425
- customer = (_o.sent()).data;
426
- type = !!this.data().type ? this.data().type : undefined;
427
- _o.label = 3;
428
- case 3:
429
- _o.trys.push([3, 17, , 18]);
430
- if (!!!fees.pallet) return [3, 4];
431
- _c = fees.pallet;
432
- return [3, 6];
433
- case 4: return [4, (0, booking_1.getPalletFee)(space, priceList)];
434
- case 5:
435
- _c = _o.sent();
436
- _o.label = 6;
437
- case 6:
438
- pallet = _c;
439
- if (!(!!fees.extraFeeOutOfZone && !!fees.extraFeeAfterDate)) return [3, 7];
440
- extraFeeOutOfZone = fees.extraFeeOutOfZone;
441
- extraFeeAfterDate = fees.extraFeeAfterDate;
442
- return [3, 9];
443
- case 7: return [4, (0, booking_1.getAllBookingExtraFees)(space, priceList)];
444
- case 8:
445
- _d = _o.sent(), pastDateFee = _d.pastDateFee, outOfZoneFee = _d.outOfZoneFee;
446
- extraFeeOutOfZone = outOfZoneFee;
447
- extraFeeAfterDate = pastDateFee;
448
- _o.label = 9;
449
- case 9:
450
- if (!(this.data().type === Booking_1.BookingTypeEnum.BETON)) return [3, 16];
451
- if (!((_k = fees.shippingProd) !== null && _k !== void 0)) return [3, 10];
452
- _e = _k;
453
- return [3, 12];
454
- case 10: return [4, (0, booking_1.getBetonShippingFee)(space, priceList)];
455
- case 11:
456
- _e = (_o.sent());
457
- _o.label = 12;
458
- case 12:
459
- shippingProd = _e;
460
- if (!((_l = fees.preparationFee) !== null && _l !== void 0)) return [3, 13];
461
- _f = _l;
462
- return [3, 15];
463
- case 13: return [4, (0, booking_1.getBetonPreparationFee)(space, priceList)];
464
- case 14:
465
- _f = (_o.sent());
466
- _o.label = 15;
467
- case 15:
468
- preparationFee = _f;
469
- _o.label = 16;
470
- case 16: return [3, 18];
471
- case 17:
472
- _error_1 = _o.sent();
473
- return [3, 18];
474
- case 18:
475
- _g = Cart_2.default.bind;
476
- _j = {};
477
- _h = [[]];
478
- return [4, Promise.all(this._data.items.map(function (item) { return __awaiter(_this, void 0, void 0, function () {
479
- var parent_1, _a, declination, getDeclinationPrice, tier_pricing, rest, error_5;
480
- var _this = this;
481
- return __generator(this, function (_b) {
482
- switch (_b.label) {
483
- case 0:
484
- _b.trys.push([0, 4, , 5]);
485
- if (!!!item.custom_id) return [3, 1];
486
- _a = undefined;
487
- return [3, 3];
488
- case 1: return [4, space.cartItem.get({
489
- query: [
490
- {
491
- field: 'slug',
492
- operator: 'in',
493
- value: [item.parent_slug.toLowerCase(), item.parent_slug]
494
- }
495
- ]
496
- })];
497
- case 2:
498
- _a = (_b.sent())[0];
499
- _b.label = 3;
500
- case 3:
501
- parent_1 = _a;
502
- declination = !!item.custom_id
503
- ? undefined
504
- : parent_1.declinations.find(function (declination) {
505
- return !![item.item_sku.toLowerCase().trim(), item.item_sku.toUpperCase().trim()].includes(declination.sku);
506
- });
507
- getDeclinationPrice = function () {
508
- var newPrice = {};
509
- if (!!item.item_discount || !!item.item_client_discount) {
510
- newPrice = {
511
- regular_price: {
512
- currency: 'CAD',
513
- amount: _this.calculateRegularPriceForItem(item)
514
- },
515
- discount_price: {
516
- currency: 'CAD',
517
- amount: item.item_price
518
- }
519
- };
520
- }
521
- else {
522
- newPrice = {
523
- regular_price: {
524
- amount: item.item_price,
525
- currency: 'CAD'
526
- }
527
- };
528
- }
529
- return newPrice;
530
- };
531
- if (!!!declination) {
532
- if (!!!item.custom_id)
533
- return [2, undefined];
534
- return [2, __assign(__assign(__assign(__assign({}, (0, Cart_1.getDefaultCartItem)()), { is_temp_prod: true, sku: item.item_sku, parent_name: (0, locale_1.getLanguageDictFromString)('TEMP', space.preferences.languages()), name: (0, locale_1.getLanguageDictFromString)(item.item_name, space.preferences.languages()), qte: item.qty, parent_slug: item.parent_slug, images_path: [] }), (!!parent_1 ? { categories: parent_1.categories } : {})), getDeclinationPrice())];
535
- }
536
- tier_pricing = declination.tier_pricing, rest = __rest(declination, ["tier_pricing"]);
537
- return [2, __assign(__assign(__assign(__assign(__assign({}, rest), { qte: item.qty, images_path: __spreadArray(__spreadArray([], (!!parent_1.image_files[0]
538
- ? [parent_1.image_files[0]]
539
- : []), true), (declination || { images_path: [] }).images_path, true), parent_slug: item.parent_slug }), (!!parent_1 ? { categories: parent_1.categories } : {})), getDeclinationPrice()), (!!item.units ? { other_units: item.units } : {}))];
540
- case 4:
541
- error_5 = _b.sent();
542
- if (process.env.NODE_ENV !== 'production')
543
- return [2, undefined];
544
- return [3, 5];
545
- case 5: return [2];
546
- }
547
- });
548
- }); }))];
549
- case 19:
550
- order = new (_g.apply(Cart_2.default, [void 0, (_j.items = __spreadArray.apply(void 0, [__spreadArray.apply(void 0, [__spreadArray.apply(void 0, [__spreadArray.apply(void 0, [__spreadArray.apply(void 0, [__spreadArray.apply(void 0, _h.concat([(_o.sent()).filter(function (i) { return !!i; }), true])), (!!this._data.extra_zone_fee && !!extraFeeOutOfZone
551
- ? [
552
- __assign(__assign({}, extraFeeOutOfZone), { qte: 1, parent_slug: 'frais-supplementaires-booking' })
553
- ]
554
- : []), true]), (!!type &&
555
- type === Booking_1.BookingTypeEnum.ACCESSOIRES &&
556
- !!this._data.extra_fee_if_after_date &&
557
- !!extraFeeAfterDate
558
- ? [
559
- __assign(__assign({}, extraFeeAfterDate), { qte: 1, parent_slug: 'frais-supplementaires-booking' })
560
- ]
561
- : []), true]), (!!type && type === Booking_1.BookingTypeEnum.BETON && !!preparationFee
562
- ? [
563
- __assign(__assign({}, preparationFee), { qte: 1, parent_slug: 'frais-preparation-general-beton' })
564
- ]
565
- : []), true]), (!!this.data().shipping_price && !!shippingProd
566
- ? [
567
- __assign(__assign({}, shippingProd), { qte: this.calculateShippingFeeQte(), name: [
568
- { lang: 'fr', value: 'Frais de livraison' },
569
- { lang: 'en', value: 'Shipping fees' }
570
- ], regular_price: __assign(__assign({}, shippingProd.regular_price), { amount: this.data().shipping_price }), parent_slug: 'livraison-beton-accessoires' })
571
- ]
572
- : []), true]), (!!this.data().palettes_qty && !!pallet
573
- ? [
574
- __assign(__assign({}, pallet), { parent_slug: 'frais-palette', qte: this.data().palettes_qty, regular_price: __assign(__assign({}, pallet.regular_price), { amount: !!this.data().type && this.data().type === Booking_1.BookingTypeEnum.ACCESSOIRES
575
- ? data_2.bookingFees.palletFee_accessoires
576
- : data_2.bookingFees.palletFee_beton }) })
577
- ]
578
- : []), true]),
579
- _j.customer_info = {
580
- customer_default_email: customer.basic_info.customer_email,
581
- pro_title: !!customer.basic_info.customer_professionnal_info
582
- ? customer.basic_info.customer_professionnal_info.professionnal_title
583
- : undefined,
584
- pro_proof_doc: !!customer.basic_info.customer_professionnal_info
585
- ? customer.basic_info.customer_professionnal_info.proof_doc_value
586
- : undefined
587
- },
588
- _j.customer_id = customer.id,
589
- _j.billing_address = !!this.data().billing_info
590
- ? this.data().billing_info
591
- : customer.expedition_info.find(function (e) { return !!e.is_default && !!e.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.BILLING); }) || customer.expedition_info[0],
592
- _j.shipping_address = __assign(__assign({}, (!!this.data().shipping_info
593
- ? this.data().shipping_info
594
- : customer.expedition_info.find(function (e) { return !!e.is_default && !!e.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.SHIPPING); }) || customer.expedition_info[0])), { expedition_recipient_name: !!this.data().contact_firstname && !!this.data().contact_name
595
- ? "".concat(this.data().contact_firstname, " ").concat(this.data().contact_name)
596
- : !!this.data().shipping_info
597
- ? this.data().shipping_info.expedition_recipient_name || ''
598
- : (customer.expedition_info.find(function (e) { return !!e.is_default && !!e.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.SHIPPING); }) || customer.expedition_info[0]).expedition_recipient_name, expedition_recipient_phone: !!this.data().contact_phone
599
- ? this.data().contact_phone
600
- : !!this.data().shipping_info
601
- ? this.data().shipping_info.expedition_recipient_phone || ''
602
- : (customer.expedition_info.find(function (e) { return !!e.is_default && !!e.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.SHIPPING); }) || customer.expedition_info[0]).expedition_recipient_phone }),
603
- _j.user_email = !!this.data().contact_email
604
- ? this.data().contact_email
605
- : customer.basic_info.customer_email,
606
- _j.status = !!this.data().is_pickup
607
- ? Cart_1.CartStatusEnum.CHECKOUT_PICKUP
608
- : Cart_1.CartStatusEnum.CHECKOUT_SHIPPING,
609
- _j.boxes = [],
610
- _j.cart_type = 'web',
611
- _j.discount_rules = __spreadArray([], (!!this.data().payment_on_reception
612
- ? [
613
- __assign(__assign({}, (0, IDiscountRule_1.getDefaultDiscountRule)('promotion')), { name: [
614
- { lang: 'fr', value: "Escompte sur booking" },
615
- { lang: 'en', value: "Promo on booking" }
616
- ], appliesTo: {
617
- value: 'cart'
618
- }, result: {
619
- action: 'percent',
620
- action_value: this.data().payment_on_reception_percent || 0
621
- } })
622
- ]
623
- : []), true),
624
- _j.locale = 'fr',
625
- _j.shipping = !!shippingProd ? 0 : this.data().shipping_price,
626
- _j.shipping_message = '',
627
- _j.subtotal = 0,
628
- _j.taxes = [],
629
- _j.total = 0,
630
- _j.is_pickup = !!this.data().is_pickup,
631
- _j.is_booking = this.data().id || false,
632
- _j.is_booking_beton = this.data().type === Booking_1.BookingTypeEnum.BETON,
633
- _j.shipping_payload = __assign(__assign(__assign(__assign(__assign({ delivery_or_pickup_date: !!this._data.is_pickup
634
- ? this._data.pickup_date
635
- : this._data.shipping_date }, (!!!this._data.is_pickup ? { delivery_period: 'AM' } : {})), (!!this._data.is_pickup
636
- ? {
637
- pickup_store: space.data().stores_warehouses.find(function (sw) { return sw.id === _this._data.pickup_id; })
638
- }
639
- : {})), { delivery_notes: !!this._data.notes ? this._data.notes : '', totalPallet: this._data.palettes_qty, isOutOfArea: !!this._data.isBookingOutOfZone, orderOrProjectNumber: this._data.project_identifiant }), (!!this._data.delivery_on_site ? { onSiteDelivery: true } : {})), { contact_infos: {
640
- contact_firstname: this._data.contact_firstname,
641
- contact_name: this._data.contact_name,
642
- contact_phone: this._data.contact_phone,
643
- contact_email: this._data.contact_firstname
644
- } }),
645
- _j), {
646
- path: DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'carts')
647
- },
648
- this._user]))();
649
- return [4, order.postConstruct(undefined, true, { skipDiscountRules: true, skipTierPricing: true })];
650
- case 20:
651
- _o.sent();
652
- this._data = __assign(__assign({}, this._data), { order: DatabaseService_1.default.addToPath(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'carts'), (_m = order.data().id) !== null && _m !== void 0 ? _m : '') });
653
- return [4, this.save()];
654
- case 21: return [2, _o.sent()];
655
- }
656
- });
657
- });
658
- };
659
- _this.delete = function () { return __awaiter(_this, void 0, void 0, function () {
660
- return __generator(this, function (_a) {
661
- switch (_a.label) {
662
- case 0: return [4, this.deleteOrder()];
663
- case 1:
664
- _a.sent();
665
- return [4, _super.prototype.delete.call(this)];
666
- case 2: return [2, _a.sent()];
667
- }
668
- });
669
- }); };
670
- _this.deleteOrder = function () { return __awaiter(_this, void 0, void 0, function () {
671
- return __generator(this, function (_a) {
672
- switch (_a.label) {
673
- case 0:
674
- if (!!!this._data.order)
675
- return [2];
676
- if (!(typeof this._data.order == 'string')) return [3, 2];
677
- return [4, DatabaseService_1.default.deleteDocumentByPath(this._data.order)];
678
- case 1:
679
- _a.sent();
680
- return [3, 4];
681
- case 2: return [4, DatabaseService_1.default.deleteDocumentByPath(this._data.order.path)];
682
- case 3:
683
- _a.sent();
684
- _a.label = 4;
685
- case 4:
686
- this._data = __assign(__assign({}, this._data), { order: undefined });
687
- return [4, this.save()];
688
- case 5: return [2, _a.sent()];
689
- }
690
- });
691
- }); };
692
- _this.setIsFromWeb = function (isFromWeb, saveToDatabase) {
693
- if (isFromWeb === void 0) { isFromWeb = true; }
694
- if (saveToDatabase === void 0) { saveToDatabase = true; }
695
- return __awaiter(_this, void 0, void 0, function () {
696
- return __generator(this, function (_a) {
697
- switch (_a.label) {
698
- case 0:
699
- this._data = __assign(__assign({}, this._data), { is_from_web: isFromWeb });
700
- return [4, this.save(undefined, undefined, saveToDatabase)];
701
- case 1: return [2, _a.sent()];
702
- }
703
- });
704
- });
705
- };
706
- _this.setType = function (type) { return __awaiter(_this, void 0, void 0, function () {
707
- return __generator(this, function (_a) {
708
- switch (_a.label) {
709
- case 0:
710
- this._data = __assign(__assign({}, this._data), { is_pickup: type === 'pickup' });
711
- return [4, this.save()];
712
- case 1: return [2, _a.sent()];
713
- }
714
- });
715
- }); };
716
- _this.setNotes = function (notes) { return __awaiter(_this, void 0, void 0, function () {
717
- return __generator(this, function (_a) {
718
- switch (_a.label) {
719
- case 0:
720
- this._data = __assign(__assign({}, this._data), { notes: notes });
721
- return [4, this.save()];
722
- case 1: return [2, _a.sent()];
723
- }
724
- });
725
- }); };
726
- _this.setPalettesQty = function (palettes_qty) { return __awaiter(_this, void 0, void 0, function () {
727
- return __generator(this, function (_a) {
728
- this._data = __assign(__assign({}, this._data), { palettes_qty: palettes_qty });
729
- return [2, this.save()];
730
- });
731
- }); };
732
- _this.setShippingPrice = function (shipping_price) { return __awaiter(_this, void 0, void 0, function () {
733
- return __generator(this, function (_a) {
734
- this._data = __assign(__assign({}, this._data), { shipping_price: shipping_price });
735
- return [2, this.save()];
736
- });
737
- }); };
738
- _this.setShippingAddress = function (address, save) {
739
- if (save === void 0) { save = false; }
740
- return __awaiter(_this, void 0, void 0, function () {
741
- return __generator(this, function (_a) {
742
- switch (_a.label) {
743
- case 0:
744
- this._data = __assign(__assign({}, this._data), { shipping_info: address });
745
- return [4, this.save(undefined, undefined, save)];
746
- case 1:
747
- _a.sent();
748
- return [2];
749
- }
750
- });
751
- });
752
- };
753
- _this.setBillingAddress = function (address, save) {
754
- if (save === void 0) { save = false; }
755
- return __awaiter(_this, void 0, void 0, function () {
756
- return __generator(this, function (_a) {
757
- switch (_a.label) {
758
- case 0:
759
- this._data = __assign(__assign({}, this._data), { billing_info: address });
760
- return [4, this.save(undefined, undefined, save)];
761
- case 1:
762
- _a.sent();
763
- return [2];
764
- }
765
- });
766
- });
767
- };
768
- _this.addDiscount = function (discount, isPercent) { return __awaiter(_this, void 0, void 0, function () {
769
- return __generator(this, function (_a) {
770
- switch (_a.label) {
771
- case 0:
772
- this._data = __assign(__assign({}, this._data), { discount_percent: !!isPercent ? discount : undefined, discount_price: !!!isPercent ? discount : undefined });
773
- return [4, this.save()];
774
- case 1:
775
- _a.sent();
776
- return [2];
777
- }
778
- });
779
- }); };
780
- _this.setPaymentOnReception = function (paymentOnReception, percent) { return __awaiter(_this, void 0, void 0, function () {
781
- return __generator(this, function (_a) {
782
- switch (_a.label) {
783
- case 0:
784
- this._data = __assign(__assign({}, this._data), { payment_on_reception: paymentOnReception, payment_on_reception_percent: percent });
785
- return [4, this.save()];
786
- case 1:
787
- _a.sent();
788
- return [2];
789
- }
790
- });
791
- }); };
792
- _this.setContactInfo = function (contactInfo, dataToUse, saveToObj) {
793
- if (saveToObj === void 0) { saveToObj = true; }
794
- return __awaiter(_this, void 0, void 0, function () {
795
- return __generator(this, function (_a) {
796
- switch (_a.label) {
797
- case 0:
798
- this._data = __assign(__assign({}, (!!dataToUse ? dataToUse : this._data)), contactInfo);
799
- if (!!!saveToObj) return [3, 2];
800
- return [4, this.save()];
801
- case 1:
802
- _a.sent();
803
- _a.label = 2;
804
- case 2: return [2, this._data];
805
- }
806
- });
807
- });
808
- };
809
- return _this;
810
- }
811
- return Booking;
812
- }(baseService_1.BaseServiceClass));
813
- exports.default = Booking;
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
28
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
+ return new (P || (P = Promise))(function (resolve, reject) {
31
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
35
+ });
36
+ };
37
+ var __generator = (this && this.__generator) || function (thisArg, body) {
38
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
+ function verb(n) { return function (v) { return step([n, v]); }; }
41
+ function step(op) {
42
+ if (f) throw new TypeError("Generator is already executing.");
43
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
44
+ 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;
45
+ if (y = 0, t) op = [op[0] & 2, t.value];
46
+ switch (op[0]) {
47
+ case 0: case 1: t = op; break;
48
+ case 4: _.label++; return { value: op[1], done: false };
49
+ case 5: _.label++; y = op[1]; op = [0]; continue;
50
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
+ default:
52
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
+ if (t[2]) _.ops.pop();
57
+ _.trys.pop(); continue;
58
+ }
59
+ op = body.call(thisArg, _);
60
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
+ }
63
+ };
64
+ var __rest = (this && this.__rest) || function (s, e) {
65
+ var t = {};
66
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
67
+ t[p] = s[p];
68
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
69
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
70
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
71
+ t[p[i]] = s[p[i]];
72
+ }
73
+ return t;
74
+ };
75
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
76
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
77
+ if (ar || !(i in from)) {
78
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
79
+ ar[i] = from[i];
80
+ }
81
+ }
82
+ return to.concat(ar || Array.prototype.slice.call(from));
83
+ };
84
+ var __importDefault = (this && this.__importDefault) || function (mod) {
85
+ return (mod && mod.__esModule) ? mod : { "default": mod };
86
+ };
87
+ Object.defineProperty(exports, "__esModule", { value: true });
88
+ var lodash_1 = require("lodash");
89
+ var Booking_1 = require("../../Interfaces/Booking");
90
+ var Cart_1 = require("../../Interfaces/Cart");
91
+ var Customer_1 = require("../../Interfaces/Customer");
92
+ var IDiscountRule_1 = require("../../Interfaces/Rules/IDiscountRule");
93
+ var booking_1 = require("../../utils/booking");
94
+ var console_1 = require("../../utils/console");
95
+ var data_1 = require("../../utils/data");
96
+ var locale_1 = require("../../utils/locale");
97
+ var Cart_2 = __importDefault(require("../Cart"));
98
+ var Space_1 = __importDefault(require("../Space"));
99
+ var data_2 = require("../../rules/GR/constants/data");
100
+ var baseService_1 = require("../baseService");
101
+ var DatabaseService_1 = __importDefault(require("../../services/database/DatabaseService"));
102
+ var expedition_1 = require("../../rules/GR/utils/expedition");
103
+ var Booking = (function (_super) {
104
+ __extends(Booking, _super);
105
+ function Booking() {
106
+ var _this = _super !== null && _super.apply(this, arguments) || this;
107
+ _this.assignToClient = function (_a, doNotSave) {
108
+ var clientId = _a.clientId, clientRef = _a.clientRef, overrideExistingClient = _a.overrideExistingClient;
109
+ return __awaiter(_this, void 0, void 0, function () {
110
+ var clientToAssign;
111
+ return __generator(this, function (_b) {
112
+ switch (_b.label) {
113
+ case 0:
114
+ if (!!!clientRef && !!!clientId)
115
+ throw new Error("Can't access client. Please provide id or ref");
116
+ if (!!!overrideExistingClient && !!this._data.to_client)
117
+ throw new Error("Can't override existing client. If you want to, pass 'overrideExistingClient' props to true");
118
+ if (!!clientRef) {
119
+ this._data = __assign(__assign({}, this._data), { to_client: clientRef });
120
+ }
121
+ if (DatabaseService_1.default.getPathParent(this._collection.path) == '/')
122
+ throw new Error("Can't access parent space collection");
123
+ if (!!clientId) {
124
+ clientToAssign = DatabaseService_1.default.addToPath(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'customers'), clientId);
125
+ this._data = __assign(__assign({}, this._data), { to_client: clientToAssign });
126
+ }
127
+ return [4, this.save(undefined, undefined, !!doNotSave ? false : true)];
128
+ case 1: return [2, _b.sent()];
129
+ }
130
+ });
131
+ });
132
+ };
133
+ _this.assignToUser = function (userRef, save) { return __awaiter(_this, void 0, void 0, function () {
134
+ var error_1;
135
+ return __generator(this, function (_a) {
136
+ switch (_a.label) {
137
+ case 0:
138
+ _a.trys.push([0, 2, , 3]);
139
+ this._data = __assign(__assign({}, this._data), { by_user: userRef });
140
+ return [4, this.save(undefined, undefined, save)];
141
+ case 1: return [2, _a.sent()];
142
+ case 2:
143
+ error_1 = _a.sent();
144
+ (0, console_1.errorMessage)("Error while assigning user to booking. ".concat(error_1, " - ").concat(JSON.stringify(error_1)));
145
+ return [3, 3];
146
+ case 3: return [2];
147
+ }
148
+ });
149
+ }); };
150
+ _this.addOrUpdateItem = function (_a) {
151
+ var _b = _a.item, sku = _b.sku, name = _b.name, price = _b.price, parentSlug = _b.parentSlug, discount = _b.discount, client_discount = _b.client_discount, units = _b.units, custom_id = _b.custom_id, qty = _a.qty;
152
+ return __awaiter(_this, void 0, void 0, function () {
153
+ return __generator(this, function (_c) {
154
+ switch (_c.label) {
155
+ case 0:
156
+ if (!!!sku && !!!custom_id)
157
+ throw new Error("Can't find product without SKU");
158
+ if (!!qty && qty <= 0)
159
+ throw new Error("Use 'removeItem'");
160
+ if (!!(0, lodash_1.find)(this._data.items, function (item) {
161
+ return !!item.custom_id ? item.custom_id === custom_id : !!item.item_sku && item.item_sku === sku;
162
+ })) {
163
+ this._data = __assign(__assign({}, this._data), { items: this._data.items.map(function (_item) {
164
+ if (!!_item.custom_id ? _item.custom_id !== custom_id : _item.item_sku !== sku)
165
+ return _item;
166
+ (0, console_1.workingMessage)("Updating item ".concat(!!_item.item_sku ? _item.item_sku : _item.custom_id, " with price: ").concat(price, " and quantity: ").concat(qty));
167
+ return __assign(__assign(__assign(__assign({}, _item), { item_name: name, item_sku: sku, item_price: price, qty: !!qty ? qty : _item.qty, item_discount: discount, parent_slug: parentSlug }), (!!custom_id ? { custom_id: custom_id } : {})), (typeof client_discount === 'number' ? { item_client_discount: client_discount } : {}));
168
+ }) });
169
+ }
170
+ else {
171
+ this._data = __assign(__assign({}, this._data), { items: __spreadArray(__spreadArray([], this._data.items, true), [
172
+ __assign(__assign(__assign({ item_name: name, item_price: price, item_sku: sku, qty: qty, parent_slug: parentSlug, item_discount: discount }, (!!custom_id ? { custom_id: custom_id } : {})), (typeof client_discount === 'number' ? { item_client_discount: client_discount } : {})), { units: units })
173
+ ], false) });
174
+ }
175
+ this._data = __assign(__assign({}, this._data), { is_paillis: !!this._data.items.find(function (item) { return data_2.PAILLIS_SKUS.includes(item.item_sku); }), shipping_price: !!this._data.items.find(function (item) { return data_2.PAILLIS_DROPSHIP_SKUS.includes(item.item_sku); })
176
+ ? data_2.bookingFees.shippingFee_paillisDropship
177
+ : !!this._data.shipping_price
178
+ ? this._data.shipping_price
179
+ : !!this._data.is_pickup
180
+ ? !!this._data.type && this._data.type === Booking_1.BookingTypeEnum.BETON
181
+ ? data_2.bookingFees.preparationFee_beton
182
+ : data_2.bookingFees.preparationFee_accessoires
183
+ : !!this._data.type && this._data.type === Booking_1.BookingTypeEnum.BETON
184
+ ? data_2.bookingFees.shippingFee_beton
185
+ : data_2.bookingFees.shippingFee_accessoires });
186
+ if (!!this._data.type && this._data.type === Booking_1.BookingTypeEnum.BETON) {
187
+ this.recalculatePalletFee();
188
+ }
189
+ return [4, this.save()];
190
+ case 1: return [2, _c.sent()];
191
+ }
192
+ });
193
+ });
194
+ };
195
+ _this.removeItem = function (_a) {
196
+ var _b = _a.item, sku = _b.sku, custom_id = _b.custom_id;
197
+ return __awaiter(_this, void 0, void 0, function () {
198
+ var index, isBeton, hasDropShipItems;
199
+ return __generator(this, function (_c) {
200
+ switch (_c.label) {
201
+ case 0:
202
+ if (!!!sku && !!!custom_id)
203
+ throw new Error("Can't find product without SKU");
204
+ if (!!!this._data.items.length)
205
+ return [2, true];
206
+ index = this._data.items.findIndex(function (i) {
207
+ return !!i.custom_id && custom_id ? i.custom_id === custom_id : !!sku ? i.item_sku === sku : false;
208
+ });
209
+ if (index === -1)
210
+ return [2, true];
211
+ this._data = __assign(__assign({}, this._data), { items: __spreadArray(__spreadArray([], this._data.items.slice(0, index), true), this._data.items.slice(index + 1), true) });
212
+ isBeton = this._data.type === Booking_1.BookingTypeEnum.BETON;
213
+ hasDropShipItems = this._data.items.find(function (item) {
214
+ return data_2.PAILLIS_DROPSHIP_SKUS.includes(item.item_sku);
215
+ });
216
+ this._data = __assign(__assign({}, this._data), (!!sku
217
+ ? {
218
+ is_paillis: !!this._data.items.find(function (item) { return data_2.PAILLIS_SKUS.includes(item.item_sku); }),
219
+ shipping_price: !!hasDropShipItems
220
+ ? data_2.bookingFees.shippingFee_paillisDropship
221
+ : !!this._data.is_pickup
222
+ ? !!isBeton
223
+ ? data_2.bookingFees.preparationFee_beton
224
+ : data_2.bookingFees.preparationFee_accessoires
225
+ : !!isBeton
226
+ ? data_2.bookingFees.shippingFee_beton
227
+ : data_2.bookingFees.shippingFee_accessoires
228
+ }
229
+ : {}));
230
+ if (!!this._data.type && this._data.type === Booking_1.BookingTypeEnum.BETON) {
231
+ this.recalculatePalletFee();
232
+ }
233
+ return [4, this.save()];
234
+ case 1: return [2, _c.sent()];
235
+ }
236
+ });
237
+ });
238
+ };
239
+ _this.recalculatePalletFee = function () {
240
+ var totalPallets = (0, booking_1.getTotalPalletQty)(_this._data.items);
241
+ _this._data = __assign(__assign({}, _this._data), { palettes_qty: totalPallets });
242
+ };
243
+ _this.setToBeApproved = function (priceList, fees) { return __awaiter(_this, void 0, void 0, function () {
244
+ var error_2;
245
+ return __generator(this, function (_a) {
246
+ switch (_a.label) {
247
+ case 0:
248
+ this._data = __assign(__assign({}, this._data), { status: Booking_1.BookingStatusEnum.APPROVING });
249
+ _a.label = 1;
250
+ case 1:
251
+ _a.trys.push([1, 3, , 5]);
252
+ return [4, this.createOrder({ priceList: priceList, fees: fees })];
253
+ case 2: return [2, _a.sent()];
254
+ case 3:
255
+ error_2 = _a.sent();
256
+ (0, console_1.errorMessage)("Error while creating order from booking, reverting to booking. ".concat(error_2, " ").concat(JSON.stringify(error_2)));
257
+ this._data = __assign(__assign({}, this._data), { status: Booking_1.BookingStatusEnum.BOOKING });
258
+ return [4, this.save()];
259
+ case 4:
260
+ _a.sent();
261
+ return [3, 5];
262
+ case 5: return [2];
263
+ }
264
+ });
265
+ }); };
266
+ _this.approve = function () { return __awaiter(_this, void 0, void 0, function () {
267
+ var space, cartSnap, data, cartObj, error_3;
268
+ var _a;
269
+ return __generator(this, function (_b) {
270
+ switch (_b.label) {
271
+ case 0:
272
+ if (!!!this._data.order)
273
+ throw new Error("Can't find relative order.");
274
+ this._data = __assign(__assign({}, this._data), { status: Booking_1.BookingStatusEnum.APPROVED });
275
+ _b.label = 1;
276
+ case 1:
277
+ _b.trys.push([1, 6, , 8]);
278
+ if (DatabaseService_1.default.getPathParent(this._collection.path) == '/')
279
+ throw new Error("can't access parent space");
280
+ return [4, Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user)];
281
+ case 2:
282
+ space = _b.sent();
283
+ return [4, DatabaseService_1.default.getDocumentByPath(this._data.order)];
284
+ case 3:
285
+ cartSnap = _b.sent();
286
+ data = cartSnap.data;
287
+ if (!!!data)
288
+ throw new Error('data is undefined for fetched cart');
289
+ cartObj = new Cart_2.default(__assign(__assign({}, data), { billing_info: __assign(__assign({}, data.billing_info), (!!data.billing_address
290
+ ? { expedition_recipient_phone: (0, data_1.formatPhoneNumberDB)(data.billing_address.expedition_recipient_phone) }
291
+ : {})), shipping_info: __assign(__assign({}, data.shipping_info), (!!data.shipping_address
292
+ ? { expedition_recipient_phone: (0, data_1.formatPhoneNumberDB)(data.shipping_address.expedition_recipient_phone) }
293
+ : {})), shipping_payload: __assign(__assign({}, ((_a = data.shipping_payload) !== null && _a !== void 0 ? _a : {})), { delivery_or_pickup_date: !!this._data.is_pickup
294
+ ? this._data.pickup_date
295
+ : this._data.shipping_date, delivery_notes: !!this._data.notes ? this._data.notes : '', totalPallet: this._data.palettes_qty, isOutOfArea: !!this._data.isBookingOutOfZone, orderOrProjectNumber: this._data.project_identifiant, contact_infos: {
296
+ contact_firstname: this._data.contact_firstname,
297
+ contact_name: this._data.contact_name,
298
+ contact_phone: this._data.contact_phone,
299
+ contact_email: this._data.contact_firstname
300
+ } }) }), {
301
+ path: DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'carts')
302
+ }, this._user);
303
+ return [4, cartObj.processPOSPayment({
304
+ cartTotal: cartObj.data().total,
305
+ charge_credit: true
306
+ }, cartObj, space)];
307
+ case 4:
308
+ _b.sent();
309
+ return [4, this.save()];
310
+ case 5: return [2, _b.sent()];
311
+ case 6:
312
+ error_3 = _b.sent();
313
+ (0, console_1.errorMessage)("Error while approving order from booking, reverting to booking. ".concat(error_3, " ").concat(JSON.stringify(error_3)));
314
+ this._data = __assign(__assign({}, this._data), { status: Booking_1.BookingStatusEnum.APPROVING });
315
+ return [4, this.save()];
316
+ case 7:
317
+ _b.sent();
318
+ return [3, 8];
319
+ case 8: return [2];
320
+ }
321
+ });
322
+ }); };
323
+ _this.refuse = function () { return __awaiter(_this, void 0, void 0, function () {
324
+ return __generator(this, function (_a) {
325
+ switch (_a.label) {
326
+ case 0:
327
+ if (!(typeof this._data.order == 'string')) return [3, 2];
328
+ return [4, DatabaseService_1.default.deleteDocumentByPath(this._data.order)];
329
+ case 1:
330
+ _a.sent();
331
+ return [3, 4];
332
+ case 2: return [4, DatabaseService_1.default.deleteDocumentByPath(this._data.order.path)];
333
+ case 3:
334
+ _a.sent();
335
+ _a.label = 4;
336
+ case 4:
337
+ this._data = __assign(__assign({}, this._data), { status: Booking_1.BookingStatusEnum.BOOKING, order: false });
338
+ return [4, this.save()];
339
+ case 5: return [2, _a.sent()];
340
+ }
341
+ });
342
+ }); };
343
+ _this.cancel = function () { return __awaiter(_this, void 0, void 0, function () {
344
+ var previous, error_4;
345
+ return __generator(this, function (_a) {
346
+ switch (_a.label) {
347
+ case 0:
348
+ previous = this._data.status;
349
+ this._data = __assign(__assign({}, this._data), { status: Booking_1.BookingStatusEnum.CANCELLED });
350
+ _a.label = 1;
351
+ case 1:
352
+ _a.trys.push([1, 5, , 7]);
353
+ if (!!!this._data.order) return [3, 3];
354
+ return [4, this.deleteOrder()];
355
+ case 2: return [2, _a.sent()];
356
+ case 3: return [4, this.save()];
357
+ case 4:
358
+ _a.sent();
359
+ return [3, 7];
360
+ case 5:
361
+ error_4 = _a.sent();
362
+ (0, console_1.errorMessage)("Error while deleting order from booking, reverting to previous state. ".concat(error_4, " ").concat(JSON.stringify(error_4)));
363
+ this._data = __assign(__assign({}, this._data), { status: previous });
364
+ return [4, this.save()];
365
+ case 6:
366
+ _a.sent();
367
+ return [3, 7];
368
+ case 7: return [2];
369
+ }
370
+ });
371
+ }); };
372
+ _this.setIsDone = function () { return __awaiter(_this, void 0, void 0, function () {
373
+ return __generator(this, function (_a) {
374
+ switch (_a.label) {
375
+ case 0:
376
+ this._data = __assign(__assign({}, this._data), { status: Booking_1.BookingStatusEnum.DONE });
377
+ return [4, this.save()];
378
+ case 1: return [2, _a.sent()];
379
+ }
380
+ });
381
+ }); };
382
+ _this.calculateRegularPriceForItem = function (item) {
383
+ var clientDiscount = (0, lodash_1.toNumber)(item.item_client_discount) || 0;
384
+ var extraDiscount = (0, lodash_1.toNumber)(item.item_discount) || 0;
385
+ var firstSubtotal = !!extraDiscount ? (0, lodash_1.toNumber)((item.item_price * 100) / (100 - extraDiscount)) : item.item_price;
386
+ var secondSubtotal = !!clientDiscount ? (0, lodash_1.toNumber)((firstSubtotal * 100) / (100 - clientDiscount)) : firstSubtotal;
387
+ return (0, lodash_1.round)(secondSubtotal, 2);
388
+ };
389
+ _this.calculateShippingFeeQte = function (dataToCheck) {
390
+ var data = dataToCheck || _this.data();
391
+ var bookingType = data.type || Booking_1.BookingTypeEnum.ACCESSOIRES;
392
+ if (bookingType == Booking_1.BookingTypeEnum.ACCESSOIRES)
393
+ return 1;
394
+ var pallets = Math.ceil(data.palettes_qty || 0);
395
+ return Math.ceil(pallets / (expedition_1.expeditionFeePalletTier !== null && expedition_1.expeditionFeePalletTier !== void 0 ? expedition_1.expeditionFeePalletTier : 1));
396
+ };
397
+ _this.calculateShippingAmount = function (dataToCheck) {
398
+ var data = dataToCheck || _this.data();
399
+ var bookingType = data.type || Booking_1.BookingTypeEnum.ACCESSOIRES;
400
+ var currentShippingAmount = data.shipping_price || 0;
401
+ if (bookingType == Booking_1.BookingTypeEnum.ACCESSOIRES)
402
+ return currentShippingAmount;
403
+ var feeQty = _this.calculateShippingFeeQte(dataToCheck);
404
+ if (feeQty == 0)
405
+ return currentShippingAmount;
406
+ return feeQty * currentShippingAmount;
407
+ };
408
+ _this.createOrder = function (_a) {
409
+ var sendMail = _a.sendMail, priceList = _a.priceList, _b = _a.fees, fees = _b === void 0 ? {} : _b;
410
+ return __awaiter(_this, void 0, void 0, function () {
411
+ var space, customer, type, pallet, extraFeeOutOfZone, shippingProd, preparationFee, extraFeeAfterDate, _c, _d, pastDateFee, outOfZoneFee, _e, _f, _error_1, order, _g, _h;
412
+ var _j;
413
+ var _this = this;
414
+ var _k, _l, _m;
415
+ return __generator(this, function (_o) {
416
+ switch (_o.label) {
417
+ case 0:
418
+ if (DatabaseService_1.default.getPathParent(this._collection.path) == '/')
419
+ throw new Error("Can't access parent space collection");
420
+ return [4, Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user)];
421
+ case 1:
422
+ space = _o.sent();
423
+ return [4, DatabaseService_1.default.getDocumentByPath(this.data().to_client)];
424
+ case 2:
425
+ customer = (_o.sent()).data;
426
+ type = !!this.data().type ? this.data().type : undefined;
427
+ _o.label = 3;
428
+ case 3:
429
+ _o.trys.push([3, 17, , 18]);
430
+ if (!!!fees.pallet) return [3, 4];
431
+ _c = fees.pallet;
432
+ return [3, 6];
433
+ case 4: return [4, (0, booking_1.getPalletFee)(space, priceList)];
434
+ case 5:
435
+ _c = _o.sent();
436
+ _o.label = 6;
437
+ case 6:
438
+ pallet = _c;
439
+ if (!(!!fees.extraFeeOutOfZone && !!fees.extraFeeAfterDate)) return [3, 7];
440
+ extraFeeOutOfZone = fees.extraFeeOutOfZone;
441
+ extraFeeAfterDate = fees.extraFeeAfterDate;
442
+ return [3, 9];
443
+ case 7: return [4, (0, booking_1.getAllBookingExtraFees)(space, priceList)];
444
+ case 8:
445
+ _d = _o.sent(), pastDateFee = _d.pastDateFee, outOfZoneFee = _d.outOfZoneFee;
446
+ extraFeeOutOfZone = outOfZoneFee;
447
+ extraFeeAfterDate = pastDateFee;
448
+ _o.label = 9;
449
+ case 9:
450
+ if (!(this.data().type === Booking_1.BookingTypeEnum.BETON)) return [3, 16];
451
+ if (!((_k = fees.shippingProd) !== null && _k !== void 0)) return [3, 10];
452
+ _e = _k;
453
+ return [3, 12];
454
+ case 10: return [4, (0, booking_1.getBetonShippingFee)(space, priceList)];
455
+ case 11:
456
+ _e = (_o.sent());
457
+ _o.label = 12;
458
+ case 12:
459
+ shippingProd = _e;
460
+ if (!((_l = fees.preparationFee) !== null && _l !== void 0)) return [3, 13];
461
+ _f = _l;
462
+ return [3, 15];
463
+ case 13: return [4, (0, booking_1.getBetonPreparationFee)(space, priceList)];
464
+ case 14:
465
+ _f = (_o.sent());
466
+ _o.label = 15;
467
+ case 15:
468
+ preparationFee = _f;
469
+ _o.label = 16;
470
+ case 16: return [3, 18];
471
+ case 17:
472
+ _error_1 = _o.sent();
473
+ return [3, 18];
474
+ case 18:
475
+ _g = Cart_2.default.bind;
476
+ _j = {};
477
+ _h = [[]];
478
+ return [4, Promise.all(this._data.items.map(function (item) { return __awaiter(_this, void 0, void 0, function () {
479
+ var parent_1, _a, declination, getDeclinationPrice, tier_pricing, rest, error_5;
480
+ var _this = this;
481
+ return __generator(this, function (_b) {
482
+ switch (_b.label) {
483
+ case 0:
484
+ _b.trys.push([0, 4, , 5]);
485
+ if (!!!item.custom_id) return [3, 1];
486
+ _a = undefined;
487
+ return [3, 3];
488
+ case 1: return [4, space.cartItem.get({
489
+ query: [
490
+ {
491
+ field: 'slug',
492
+ operator: 'in',
493
+ value: [item.parent_slug.toLowerCase(), item.parent_slug]
494
+ }
495
+ ]
496
+ })];
497
+ case 2:
498
+ _a = (_b.sent())[0];
499
+ _b.label = 3;
500
+ case 3:
501
+ parent_1 = _a;
502
+ declination = !!item.custom_id
503
+ ? undefined
504
+ : parent_1.declinations.find(function (declination) {
505
+ return !![item.item_sku.toLowerCase().trim(), item.item_sku.toUpperCase().trim()].includes(declination.sku);
506
+ });
507
+ getDeclinationPrice = function () {
508
+ var newPrice = {};
509
+ if (!!item.item_discount || !!item.item_client_discount) {
510
+ newPrice = {
511
+ regular_price: {
512
+ currency: 'CAD',
513
+ amount: _this.calculateRegularPriceForItem(item)
514
+ },
515
+ discount_price: {
516
+ currency: 'CAD',
517
+ amount: item.item_price
518
+ }
519
+ };
520
+ }
521
+ else {
522
+ newPrice = {
523
+ regular_price: {
524
+ amount: item.item_price,
525
+ currency: 'CAD'
526
+ }
527
+ };
528
+ }
529
+ return newPrice;
530
+ };
531
+ if (!!!declination) {
532
+ if (!!!item.custom_id)
533
+ return [2, undefined];
534
+ return [2, __assign(__assign(__assign(__assign({}, (0, Cart_1.getDefaultCartItem)()), { is_temp_prod: true, sku: item.item_sku, parent_name: (0, locale_1.getLanguageDictFromString)('TEMP', space.preferences.languages()), name: (0, locale_1.getLanguageDictFromString)(item.item_name, space.preferences.languages()), qte: item.qty, parent_slug: item.parent_slug, images_path: [] }), (!!parent_1 ? { categories: parent_1.categories } : {})), getDeclinationPrice())];
535
+ }
536
+ tier_pricing = declination.tier_pricing, rest = __rest(declination, ["tier_pricing"]);
537
+ return [2, __assign(__assign(__assign(__assign(__assign({}, rest), { qte: item.qty, images_path: __spreadArray(__spreadArray([], (!!parent_1.image_files[0]
538
+ ? [parent_1.image_files[0]]
539
+ : []), true), (declination || { images_path: [] }).images_path, true), parent_slug: item.parent_slug }), (!!parent_1 ? { categories: parent_1.categories } : {})), getDeclinationPrice()), (!!item.units ? { other_units: item.units } : {}))];
540
+ case 4:
541
+ error_5 = _b.sent();
542
+ if (process.env.NODE_ENV !== 'production')
543
+ return [2, undefined];
544
+ return [3, 5];
545
+ case 5: return [2];
546
+ }
547
+ });
548
+ }); }))];
549
+ case 19:
550
+ order = new (_g.apply(Cart_2.default, [void 0, (_j.items = __spreadArray.apply(void 0, [__spreadArray.apply(void 0, [__spreadArray.apply(void 0, [__spreadArray.apply(void 0, [__spreadArray.apply(void 0, [__spreadArray.apply(void 0, _h.concat([(_o.sent()).filter(function (i) { return !!i; }), true])), (!!this._data.extra_zone_fee && !!extraFeeOutOfZone
551
+ ? [
552
+ __assign(__assign({}, extraFeeOutOfZone), { qte: 1, parent_slug: 'frais-supplementaires-booking' })
553
+ ]
554
+ : []), true]), (!!type &&
555
+ type === Booking_1.BookingTypeEnum.ACCESSOIRES &&
556
+ !!this._data.extra_fee_if_after_date &&
557
+ !!extraFeeAfterDate
558
+ ? [
559
+ __assign(__assign({}, extraFeeAfterDate), { qte: 1, parent_slug: 'frais-supplementaires-booking' })
560
+ ]
561
+ : []), true]), (!!type && type === Booking_1.BookingTypeEnum.BETON && !!preparationFee
562
+ ? [
563
+ __assign(__assign({}, preparationFee), { qte: 1, parent_slug: 'frais-preparation-general-beton' })
564
+ ]
565
+ : []), true]), (!!this.data().shipping_price && !!shippingProd
566
+ ? [
567
+ __assign(__assign({}, shippingProd), { qte: this.calculateShippingFeeQte(), name: [
568
+ { lang: 'fr', value: 'Frais de livraison' },
569
+ { lang: 'en', value: 'Shipping fees' }
570
+ ], regular_price: __assign(__assign({}, shippingProd.regular_price), { amount: this.data().shipping_price }), parent_slug: 'livraison-beton-accessoires' })
571
+ ]
572
+ : []), true]), (!!this.data().palettes_qty && !!pallet
573
+ ? [
574
+ __assign(__assign({}, pallet), { parent_slug: 'frais-palette', qte: this.data().palettes_qty, regular_price: __assign(__assign({}, pallet.regular_price), { amount: !!this.data().type && this.data().type === Booking_1.BookingTypeEnum.ACCESSOIRES
575
+ ? data_2.bookingFees.palletFee_accessoires
576
+ : data_2.bookingFees.palletFee_beton }) })
577
+ ]
578
+ : []), true]),
579
+ _j.customer_info = {
580
+ customer_default_email: customer.basic_info.customer_email,
581
+ pro_title: !!customer.basic_info.customer_professionnal_info
582
+ ? customer.basic_info.customer_professionnal_info.professionnal_title
583
+ : undefined,
584
+ pro_proof_doc: !!customer.basic_info.customer_professionnal_info
585
+ ? customer.basic_info.customer_professionnal_info.proof_doc_value
586
+ : undefined
587
+ },
588
+ _j.customer_id = customer.id,
589
+ _j.billing_address = !!this.data().billing_info
590
+ ? this.data().billing_info
591
+ : customer.expedition_info.find(function (e) { return !!e.is_default && !!e.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.BILLING); }) || customer.expedition_info[0],
592
+ _j.shipping_address = __assign(__assign({}, (!!this.data().shipping_info
593
+ ? this.data().shipping_info
594
+ : customer.expedition_info.find(function (e) { return !!e.is_default && !!e.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.SHIPPING); }) || customer.expedition_info[0])), { expedition_recipient_name: !!this.data().contact_firstname && !!this.data().contact_name
595
+ ? "".concat(this.data().contact_firstname, " ").concat(this.data().contact_name)
596
+ : !!this.data().shipping_info
597
+ ? this.data().shipping_info.expedition_recipient_name || ''
598
+ : (customer.expedition_info.find(function (e) { return !!e.is_default && !!e.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.SHIPPING); }) || customer.expedition_info[0]).expedition_recipient_name, expedition_recipient_phone: !!this.data().contact_phone
599
+ ? this.data().contact_phone
600
+ : !!this.data().shipping_info
601
+ ? this.data().shipping_info.expedition_recipient_phone || ''
602
+ : (customer.expedition_info.find(function (e) { return !!e.is_default && !!e.is_default.includes(Customer_1.defaultExpeditionOptionsEnum.SHIPPING); }) || customer.expedition_info[0]).expedition_recipient_phone }),
603
+ _j.user_email = !!this.data().contact_email
604
+ ? this.data().contact_email
605
+ : customer.basic_info.customer_email,
606
+ _j.status = !!this.data().is_pickup
607
+ ? Cart_1.CartStatusEnum.CHECKOUT_PICKUP
608
+ : Cart_1.CartStatusEnum.CHECKOUT_SHIPPING,
609
+ _j.boxes = [],
610
+ _j.cart_type = 'web',
611
+ _j.discount_rules = __spreadArray([], (!!this.data().payment_on_reception
612
+ ? [
613
+ __assign(__assign({}, (0, IDiscountRule_1.getDefaultDiscountRule)('promotion')), { name: [
614
+ { lang: 'fr', value: "Escompte sur booking" },
615
+ { lang: 'en', value: "Promo on booking" }
616
+ ], appliesTo: {
617
+ value: 'cart'
618
+ }, result: {
619
+ action: 'percent',
620
+ action_value: this.data().payment_on_reception_percent || 0
621
+ } })
622
+ ]
623
+ : []), true),
624
+ _j.locale = 'fr',
625
+ _j.shipping = !!shippingProd ? 0 : this.data().shipping_price,
626
+ _j.shipping_message = '',
627
+ _j.subtotal = 0,
628
+ _j.taxes = [],
629
+ _j.total = 0,
630
+ _j.is_pickup = !!this.data().is_pickup,
631
+ _j.is_booking = this.data().id || false,
632
+ _j.is_booking_beton = this.data().type === Booking_1.BookingTypeEnum.BETON,
633
+ _j.shipping_payload = __assign(__assign(__assign(__assign(__assign({ delivery_or_pickup_date: !!this._data.is_pickup
634
+ ? this._data.pickup_date
635
+ : this._data.shipping_date }, (!!!this._data.is_pickup ? { delivery_period: 'AM' } : {})), (!!this._data.is_pickup
636
+ ? {
637
+ pickup_store: space.data().stores_warehouses.find(function (sw) { return sw.id === _this._data.pickup_id; })
638
+ }
639
+ : {})), { delivery_notes: !!this._data.notes ? this._data.notes : '', totalPallet: this._data.palettes_qty, isOutOfArea: !!this._data.isBookingOutOfZone, orderOrProjectNumber: this._data.project_identifiant }), (!!this._data.delivery_on_site ? { onSiteDelivery: true } : {})), { contact_infos: {
640
+ contact_firstname: this._data.contact_firstname,
641
+ contact_name: this._data.contact_name,
642
+ contact_phone: this._data.contact_phone,
643
+ contact_email: this._data.contact_firstname
644
+ } }),
645
+ _j), {
646
+ path: DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'carts')
647
+ },
648
+ this._user]))();
649
+ return [4, order.postConstruct(undefined, true, { skipDiscountRules: true, skipTierPricing: true })];
650
+ case 20:
651
+ _o.sent();
652
+ this._data = __assign(__assign({}, this._data), { order: DatabaseService_1.default.addToPath(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'carts'), (_m = order.data().id) !== null && _m !== void 0 ? _m : '') });
653
+ return [4, this.save()];
654
+ case 21: return [2, _o.sent()];
655
+ }
656
+ });
657
+ });
658
+ };
659
+ _this.delete = function () { return __awaiter(_this, void 0, void 0, function () {
660
+ return __generator(this, function (_a) {
661
+ switch (_a.label) {
662
+ case 0: return [4, this.deleteOrder()];
663
+ case 1:
664
+ _a.sent();
665
+ return [4, _super.prototype.delete.call(this)];
666
+ case 2: return [2, _a.sent()];
667
+ }
668
+ });
669
+ }); };
670
+ _this.deleteOrder = function () { return __awaiter(_this, void 0, void 0, function () {
671
+ return __generator(this, function (_a) {
672
+ switch (_a.label) {
673
+ case 0:
674
+ if (!!!this._data.order)
675
+ return [2];
676
+ if (!(typeof this._data.order == 'string')) return [3, 2];
677
+ return [4, DatabaseService_1.default.deleteDocumentByPath(this._data.order)];
678
+ case 1:
679
+ _a.sent();
680
+ return [3, 4];
681
+ case 2: return [4, DatabaseService_1.default.deleteDocumentByPath(this._data.order.path)];
682
+ case 3:
683
+ _a.sent();
684
+ _a.label = 4;
685
+ case 4:
686
+ this._data = __assign(__assign({}, this._data), { order: undefined });
687
+ return [4, this.save()];
688
+ case 5: return [2, _a.sent()];
689
+ }
690
+ });
691
+ }); };
692
+ _this.setIsFromWeb = function (isFromWeb, saveToDatabase) {
693
+ if (isFromWeb === void 0) { isFromWeb = true; }
694
+ if (saveToDatabase === void 0) { saveToDatabase = true; }
695
+ return __awaiter(_this, void 0, void 0, function () {
696
+ return __generator(this, function (_a) {
697
+ switch (_a.label) {
698
+ case 0:
699
+ this._data = __assign(__assign({}, this._data), { is_from_web: isFromWeb });
700
+ return [4, this.save(undefined, undefined, saveToDatabase)];
701
+ case 1: return [2, _a.sent()];
702
+ }
703
+ });
704
+ });
705
+ };
706
+ _this.setType = function (type) { return __awaiter(_this, void 0, void 0, function () {
707
+ return __generator(this, function (_a) {
708
+ switch (_a.label) {
709
+ case 0:
710
+ this._data = __assign(__assign({}, this._data), { is_pickup: type === 'pickup' });
711
+ return [4, this.save()];
712
+ case 1: return [2, _a.sent()];
713
+ }
714
+ });
715
+ }); };
716
+ _this.setNotes = function (notes) { return __awaiter(_this, void 0, void 0, function () {
717
+ return __generator(this, function (_a) {
718
+ switch (_a.label) {
719
+ case 0:
720
+ this._data = __assign(__assign({}, this._data), { notes: notes });
721
+ return [4, this.save()];
722
+ case 1: return [2, _a.sent()];
723
+ }
724
+ });
725
+ }); };
726
+ _this.setPalettesQty = function (palettes_qty) { return __awaiter(_this, void 0, void 0, function () {
727
+ return __generator(this, function (_a) {
728
+ this._data = __assign(__assign({}, this._data), { palettes_qty: palettes_qty });
729
+ return [2, this.save()];
730
+ });
731
+ }); };
732
+ _this.setShippingPrice = function (shipping_price) { return __awaiter(_this, void 0, void 0, function () {
733
+ return __generator(this, function (_a) {
734
+ this._data = __assign(__assign({}, this._data), { shipping_price: shipping_price });
735
+ return [2, this.save()];
736
+ });
737
+ }); };
738
+ _this.setShippingAddress = function (address, save) {
739
+ if (save === void 0) { save = false; }
740
+ return __awaiter(_this, void 0, void 0, function () {
741
+ return __generator(this, function (_a) {
742
+ switch (_a.label) {
743
+ case 0:
744
+ this._data = __assign(__assign({}, this._data), { shipping_info: address });
745
+ return [4, this.save(undefined, undefined, save)];
746
+ case 1:
747
+ _a.sent();
748
+ return [2];
749
+ }
750
+ });
751
+ });
752
+ };
753
+ _this.setBillingAddress = function (address, save) {
754
+ if (save === void 0) { save = false; }
755
+ return __awaiter(_this, void 0, void 0, function () {
756
+ return __generator(this, function (_a) {
757
+ switch (_a.label) {
758
+ case 0:
759
+ this._data = __assign(__assign({}, this._data), { billing_info: address });
760
+ return [4, this.save(undefined, undefined, save)];
761
+ case 1:
762
+ _a.sent();
763
+ return [2];
764
+ }
765
+ });
766
+ });
767
+ };
768
+ _this.addDiscount = function (discount, isPercent) { return __awaiter(_this, void 0, void 0, function () {
769
+ return __generator(this, function (_a) {
770
+ switch (_a.label) {
771
+ case 0:
772
+ this._data = __assign(__assign({}, this._data), { discount_percent: !!isPercent ? discount : undefined, discount_price: !!!isPercent ? discount : undefined });
773
+ return [4, this.save()];
774
+ case 1:
775
+ _a.sent();
776
+ return [2];
777
+ }
778
+ });
779
+ }); };
780
+ _this.setPaymentOnReception = function (paymentOnReception, percent) { return __awaiter(_this, void 0, void 0, function () {
781
+ return __generator(this, function (_a) {
782
+ switch (_a.label) {
783
+ case 0:
784
+ this._data = __assign(__assign({}, this._data), { payment_on_reception: paymentOnReception, payment_on_reception_percent: percent });
785
+ return [4, this.save()];
786
+ case 1:
787
+ _a.sent();
788
+ return [2];
789
+ }
790
+ });
791
+ }); };
792
+ _this.setContactInfo = function (contactInfo, dataToUse, saveToObj) {
793
+ if (saveToObj === void 0) { saveToObj = true; }
794
+ return __awaiter(_this, void 0, void 0, function () {
795
+ return __generator(this, function (_a) {
796
+ switch (_a.label) {
797
+ case 0:
798
+ this._data = __assign(__assign({}, (!!dataToUse ? dataToUse : this._data)), contactInfo);
799
+ if (!!!saveToObj) return [3, 2];
800
+ return [4, this.save()];
801
+ case 1:
802
+ _a.sent();
803
+ _a.label = 2;
804
+ case 2: return [2, this._data];
805
+ }
806
+ });
807
+ });
808
+ };
809
+ return _this;
810
+ }
811
+ return Booking;
812
+ }(baseService_1.BaseServiceClass));
813
+ exports.default = Booking;
814
814
  //# sourceMappingURL=index.js.map