addio-admin-sdk 1.6.21 → 1.6.22

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