addio-admin-sdk 1.6.39 → 1.6.41

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