addio-admin-sdk 1.7.21 → 1.7.23

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