addio-admin-sdk 1.7.86 → 1.7.87

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 (560) hide show
  1. package/.babelrc +17 -17
  2. package/.env +14 -0
  3. package/.env.dev +14 -14
  4. package/.github/workflows/publish_coverage.yam_ +69 -69
  5. package/addio-sdk-doc.md +1473 -1473
  6. package/changelog.md +537 -537
  7. package/dist/Interfaces/Address/index.d.ts +21 -21
  8. package/dist/Interfaces/Address/index.js +16 -16
  9. package/dist/Interfaces/Algolia/index.d.ts +164 -164
  10. package/dist/Interfaces/Algolia/index.js +2 -2
  11. package/dist/Interfaces/Attachement/index.d.ts +5 -5
  12. package/dist/Interfaces/Attachement/index.js +2 -2
  13. package/dist/Interfaces/Attribute/index.d.ts +52 -52
  14. package/dist/Interfaces/Attribute/index.js +10 -10
  15. package/dist/Interfaces/BGJob/index.d.ts +56 -56
  16. package/dist/Interfaces/BGJob/index.js +25 -25
  17. package/dist/Interfaces/BaseClass/index.d.ts +8 -8
  18. package/dist/Interfaces/BaseClass/index.js +2 -2
  19. package/dist/Interfaces/Blog/IBlogArticle.d.ts +18 -18
  20. package/dist/Interfaces/Blog/IBlogArticle.js +2 -2
  21. package/dist/Interfaces/Blog/IBlogAuthor.d.ts +7 -7
  22. package/dist/Interfaces/Blog/IBlogAuthor.js +2 -2
  23. package/dist/Interfaces/Blog/IBlogCategory.d.ts +9 -9
  24. package/dist/Interfaces/Blog/IBlogCategory.js +2 -2
  25. package/dist/Interfaces/Blog/IBlogComment.d.ts +13 -13
  26. package/dist/Interfaces/Blog/IBlogComment.js +2 -2
  27. package/dist/Interfaces/Blog/IBlogKeywords.d.ts +9 -9
  28. package/dist/Interfaces/Blog/IBlogKeywords.js +2 -2
  29. package/dist/Interfaces/Booking/index.d.ts +74 -74
  30. package/dist/Interfaces/Booking/index.js +17 -17
  31. package/dist/Interfaces/Brand/index.d.ts +15 -15
  32. package/dist/Interfaces/Brand/index.js +2 -2
  33. package/dist/Interfaces/CMS/index.d.ts +25 -25
  34. package/dist/Interfaces/CMS/index.js +2 -2
  35. package/dist/Interfaces/Cart/IElavonPayload.d.ts +93 -93
  36. package/dist/Interfaces/Cart/IElavonPayload.js +17 -17
  37. package/dist/Interfaces/Cart/IPandaPayload.d.ts +64 -64
  38. package/dist/Interfaces/Cart/IPandaPayload.js +18 -18
  39. package/dist/Interfaces/Cart/IPaymentCard.d.ts +22 -22
  40. package/dist/Interfaces/Cart/IPaymentCard.js +44 -44
  41. package/dist/Interfaces/Cart/IPaypalPayload.d.ts +9 -9
  42. package/dist/Interfaces/Cart/IPaypalPayload.js +2 -2
  43. package/dist/Interfaces/Cart/IPaysafePayload.d.ts +72 -72
  44. package/dist/Interfaces/Cart/IPaysafePayload.js +2 -2
  45. package/dist/Interfaces/Cart/IStripePayload.d.ts +66 -66
  46. package/dist/Interfaces/Cart/IStripePayload.js +2 -2
  47. package/dist/Interfaces/Cart/index.d.ts +424 -424
  48. package/dist/Interfaces/Cart/index.js +192 -192
  49. package/dist/Interfaces/Catalogue/index.d.ts +68 -68
  50. package/dist/Interfaces/Catalogue/index.js +37 -37
  51. package/dist/Interfaces/Category/index.d.ts +33 -33
  52. package/dist/Interfaces/Category/index.js +2 -2
  53. package/dist/Interfaces/Chart/index.d.ts +11 -11
  54. package/dist/Interfaces/Chart/index.js +2 -2
  55. package/dist/Interfaces/Class/index.d.ts +8 -8
  56. package/dist/Interfaces/Class/index.js +2 -2
  57. package/dist/Interfaces/Consent/index.d.ts +6 -6
  58. package/dist/Interfaces/Consent/index.js +2 -2
  59. package/dist/Interfaces/Context/IContextProps.d.ts +4 -4
  60. package/dist/Interfaces/Context/IContextProps.js +2 -2
  61. package/dist/Interfaces/Context/IContextState.d.ts +15 -15
  62. package/dist/Interfaces/Context/IContextState.js +2 -2
  63. package/dist/Interfaces/Customer/ICustomerBadge.d.ts +2 -2
  64. package/dist/Interfaces/Customer/ICustomerBadge.js +2 -2
  65. package/dist/Interfaces/Customer/ICustomerRating.d.ts +10 -10
  66. package/dist/Interfaces/Customer/ICustomerRating.js +2 -2
  67. package/dist/Interfaces/Customer/IStoreCredit.d.ts +12 -12
  68. package/dist/Interfaces/Customer/IStoreCredit.js +2 -2
  69. package/dist/Interfaces/Customer/index.d.ts +97 -97
  70. package/dist/Interfaces/Customer/index.js +141 -141
  71. package/dist/Interfaces/Declination/index.d.ts +114 -114
  72. package/dist/Interfaces/Declination/index.js +60 -60
  73. package/dist/Interfaces/Document/index.d.ts +8 -8
  74. package/dist/Interfaces/Document/index.js +2 -2
  75. package/dist/Interfaces/Elastic/index.d.ts +89 -89
  76. package/dist/Interfaces/Elastic/index.js +2 -2
  77. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.d.ts +11 -11
  78. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.js +2 -2
  79. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.d.ts +15 -15
  80. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.js +2 -2
  81. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.d.ts +12 -12
  82. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.js +2 -2
  83. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.d.ts +36 -36
  84. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.js +2 -2
  85. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.d.ts +12 -12
  86. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.js +2 -2
  87. package/dist/Interfaces/Email/CustomGR/ITransportEmail.d.ts +12 -12
  88. package/dist/Interfaces/Email/CustomGR/ITransportEmail.js +2 -2
  89. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.d.ts +12 -12
  90. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.js +2 -2
  91. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.d.ts +16 -16
  92. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.js +2 -2
  93. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.d.ts +15 -15
  94. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.js +2 -2
  95. package/dist/Interfaces/Email/IAbandonnedCartEmail.d.ts +29 -29
  96. package/dist/Interfaces/Email/IAbandonnedCartEmail.js +2 -2
  97. package/dist/Interfaces/Email/IAccountConfirmationEmail.d.ts +22 -22
  98. package/dist/Interfaces/Email/IAccountConfirmationEmail.js +2 -2
  99. package/dist/Interfaces/Email/IApplicationEmail.d.ts +19 -19
  100. package/dist/Interfaces/Email/IApplicationEmail.js +2 -2
  101. package/dist/Interfaces/Email/IBackInStockEmail.d.ts +21 -21
  102. package/dist/Interfaces/Email/IBackInStockEmail.js +2 -2
  103. package/dist/Interfaces/Email/IContactEmail.d.ts +20 -20
  104. package/dist/Interfaces/Email/IContactEmail.js +2 -2
  105. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.d.ts +15 -15
  106. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.js +2 -2
  107. package/dist/Interfaces/Email/ICustomerBookingEmail.d.ts +14 -14
  108. package/dist/Interfaces/Email/ICustomerBookingEmail.js +2 -2
  109. package/dist/Interfaces/Email/IEmail.d.ts +20 -20
  110. package/dist/Interfaces/Email/IEmail.js +56 -56
  111. package/dist/Interfaces/Email/IOrderConfirmationEmail.d.ts +47 -47
  112. package/dist/Interfaces/Email/IOrderConfirmationEmail.js +2 -2
  113. package/dist/Interfaces/Email/IPasswordResetEmail.d.ts +17 -17
  114. package/dist/Interfaces/Email/IPasswordResetEmail.js +2 -2
  115. package/dist/Interfaces/Email/IPhotoShootEmail.d.ts +14 -14
  116. package/dist/Interfaces/Email/IPhotoShootEmail.js +2 -2
  117. package/dist/Interfaces/Email/IPickupConfirmation.d.ts +23 -23
  118. package/dist/Interfaces/Email/IPickupConfirmation.js +2 -2
  119. package/dist/Interfaces/Email/IShippingConfirmation.d.ts +23 -23
  120. package/dist/Interfaces/Email/IShippingConfirmation.js +2 -2
  121. package/dist/Interfaces/Email/IWelcomeEmail.d.ts +19 -19
  122. package/dist/Interfaces/Email/IWelcomeEmail.js +2 -2
  123. package/dist/Interfaces/ExportSchema/index.d.ts +7 -7
  124. package/dist/Interfaces/ExportSchema/index.js +2 -2
  125. package/dist/Interfaces/ExternalService/BaseExternalService.d.ts +12 -12
  126. package/dist/Interfaces/ExternalService/BaseExternalService.js +2 -2
  127. package/dist/Interfaces/ExternalService/ExternalProductsService.d.ts +4 -4
  128. package/dist/Interfaces/ExternalService/ExternalProductsService.js +2 -2
  129. package/dist/Interfaces/ExternalService/index.d.ts +9 -9
  130. package/dist/Interfaces/ExternalService/index.js +2 -2
  131. package/dist/Interfaces/FirstOrderTracking/index.d.ts +5 -5
  132. package/dist/Interfaces/FirstOrderTracking/index.js +2 -2
  133. package/dist/Interfaces/G2/index.d.ts +556 -556
  134. package/dist/Interfaces/G2/index.js +36 -36
  135. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.d.ts +20 -20
  136. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.js +2 -2
  137. package/dist/Interfaces/Indexed/Product/index.d.ts +97 -97
  138. package/dist/Interfaces/Indexed/Product/index.js +212 -212
  139. package/dist/Interfaces/Inventory/index.d.ts +19 -19
  140. package/dist/Interfaces/Inventory/index.js +8 -8
  141. package/dist/Interfaces/Invoice/index.d.ts +4 -4
  142. package/dist/Interfaces/Invoice/index.js +2 -2
  143. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.d.ts +3 -3
  144. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.js +2 -2
  145. package/dist/Interfaces/MarketplacePublication/index.d.ts +23 -23
  146. package/dist/Interfaces/MarketplacePublication/index.js +22 -22
  147. package/dist/Interfaces/Menu/index.d.ts +23 -23
  148. package/dist/Interfaces/Menu/index.js +10 -10
  149. package/dist/Interfaces/Note/index.d.ts +10 -0
  150. package/dist/Interfaces/Note/index.js +8 -0
  151. package/dist/Interfaces/Note/index.js.map +1 -0
  152. package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
  153. package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
  154. package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
  155. package/dist/Interfaces/Operations/IUpdate.js +2 -2
  156. package/dist/Interfaces/Order/index.d.ts +4 -4
  157. package/dist/Interfaces/Order/index.js +2 -2
  158. package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
  159. package/dist/Interfaces/Org/IRelUser.js +2 -2
  160. package/dist/Interfaces/Org/index.d.ts +29 -29
  161. package/dist/Interfaces/Org/index.js +12 -12
  162. package/dist/Interfaces/Payment/index.d.ts +13 -13
  163. package/dist/Interfaces/Payment/index.js +2 -2
  164. package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
  165. package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
  166. package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
  167. package/dist/Interfaces/Product/IImportProduct.js +791 -791
  168. package/dist/Interfaces/Product/IInventoryItem.d.ts +84 -84
  169. package/dist/Interfaces/Product/IInventoryItem.js +36 -36
  170. package/dist/Interfaces/Product/IPricing.d.ts +177 -177
  171. package/dist/Interfaces/Product/IPricing.js +174 -174
  172. package/dist/Interfaces/Product/index.d.ts +127 -127
  173. package/dist/Interfaces/Product/index.js +56 -56
  174. package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
  175. package/dist/Interfaces/ProductAttribute/index.js +2 -2
  176. package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
  177. package/dist/Interfaces/PromiseToPurchase/BankType.js +41 -41
  178. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
  179. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
  180. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
  181. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
  182. package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
  183. package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
  184. package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
  185. package/dist/Interfaces/PurchaseOrder/index.js +2 -2
  186. package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
  187. package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
  188. package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
  189. package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
  190. package/dist/Interfaces/Query/IProductQueryOptions.d.ts +16 -16
  191. package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
  192. package/dist/Interfaces/Quote/index.d.ts +5 -5
  193. package/dist/Interfaces/Quote/index.js +2 -2
  194. package/dist/Interfaces/Refunds/index.d.ts +106 -106
  195. package/dist/Interfaces/Refunds/index.js +2 -2
  196. package/dist/Interfaces/Rules/IDiscountRule.d.ts +137 -137
  197. package/dist/Interfaces/Rules/IDiscountRule.js +95 -95
  198. package/dist/Interfaces/Schedule/index.d.ts +48 -48
  199. package/dist/Interfaces/Schedule/index.js +2 -2
  200. package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
  201. package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
  202. package/dist/Interfaces/Services/IService.d.ts +12 -12
  203. package/dist/Interfaces/Services/IService.js +2 -2
  204. package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
  205. package/dist/Interfaces/Services/IServiceSecret.js +2 -2
  206. package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
  207. package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
  208. package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
  209. package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
  210. package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
  211. package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
  212. package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
  213. package/dist/Interfaces/Shipping/Shiptime/order.js +48 -48
  214. package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
  215. package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
  216. package/dist/Interfaces/Slider/GR.d.ts +114 -114
  217. package/dist/Interfaces/Slider/GR.js +271 -271
  218. package/dist/Interfaces/Slider/index.d.ts +30 -30
  219. package/dist/Interfaces/Slider/index.js +2 -2
  220. package/dist/Interfaces/Space/IExternalService.d.ts +52 -52
  221. package/dist/Interfaces/Space/IExternalService.js +43 -43
  222. package/dist/Interfaces/Space/IMember.d.ts +16 -16
  223. package/dist/Interfaces/Space/IMember.js +9 -9
  224. package/dist/Interfaces/Space/index.d.ts +385 -385
  225. package/dist/Interfaces/Space/index.js +159 -159
  226. package/dist/Interfaces/Specials/gr.d.ts +61 -61
  227. package/dist/Interfaces/Specials/gr.js +2 -2
  228. package/dist/Interfaces/StockNotification/index.d.ts +7 -7
  229. package/dist/Interfaces/StockNotification/index.js +2 -2
  230. package/dist/Interfaces/Store/index.d.ts +62 -62
  231. package/dist/Interfaces/Store/index.js +27 -27
  232. package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
  233. package/dist/Interfaces/Supplier/ICommand.js +2 -2
  234. package/dist/Interfaces/Supplier/index.d.ts +36 -36
  235. package/dist/Interfaces/Supplier/index.js +24 -24
  236. package/dist/Interfaces/TCG/index.d.ts +110 -110
  237. package/dist/Interfaces/TCG/index.js +27 -27
  238. package/dist/Interfaces/Tag/index.d.ts +18 -18
  239. package/dist/Interfaces/Tag/index.js +2 -2
  240. package/dist/Interfaces/Tax/index.d.ts +13 -13
  241. package/dist/Interfaces/Tax/index.js +2 -2
  242. package/dist/Interfaces/TransferRequest/index.d.ts +103 -103
  243. package/dist/Interfaces/TransferRequest/index.js +43 -43
  244. package/dist/Interfaces/Translation/index.d.ts +8 -8
  245. package/dist/Interfaces/Translation/index.js +5 -5
  246. package/dist/Interfaces/Update/index.d.ts +10 -10
  247. package/dist/Interfaces/Update/index.js +2 -2
  248. package/dist/Interfaces/User/IUser.d.ts +65 -65
  249. package/dist/Interfaces/User/IUser.js +8 -8
  250. package/dist/Interfaces/Version/index.d.ts +11 -11
  251. package/dist/Interfaces/Version/index.js +2 -2
  252. package/dist/Interfaces/Wishlist/index.d.ts +7 -7
  253. package/dist/Interfaces/Wishlist/index.js +2 -2
  254. package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
  255. package/dist/constants/Interfaces/IBaseApi.js +2 -2
  256. package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
  257. package/dist/constants/Interfaces/IEndpointResult.js +2 -2
  258. package/dist/constants/enums.d.ts +6 -6
  259. package/dist/constants/enums.js +10 -10
  260. package/dist/constants/services.d.ts +2 -2
  261. package/dist/constants/services.js +111 -111
  262. package/dist/constants/version.d.ts +2 -2
  263. package/dist/constants/version.js +5 -5
  264. package/dist/index.d.ts +32 -32
  265. package/dist/index.js +242 -242
  266. package/dist/lib/Attribute/index.d.ts +14 -14
  267. package/dist/lib/Attribute/index.js +143 -143
  268. package/dist/lib/BGJob/index.d.ts +9 -9
  269. package/dist/lib/BGJob/index.js +212 -212
  270. package/dist/lib/BackgroundWorker/index.d.ts +34 -34
  271. package/dist/lib/BackgroundWorker/index.js +59 -59
  272. package/dist/lib/Blog/BlogArticle.d.ts +5 -5
  273. package/dist/lib/Blog/BlogArticle.js +10 -10
  274. package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
  275. package/dist/lib/Blog/BlogAuthor.js +10 -10
  276. package/dist/lib/Blog/BlogCategory.d.ts +5 -5
  277. package/dist/lib/Blog/BlogCategory.js +10 -10
  278. package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
  279. package/dist/lib/Blog/BlogKeyword.js +10 -10
  280. package/dist/lib/Booking/index.d.ts +70 -70
  281. package/dist/lib/Booking/index.js +576 -576
  282. package/dist/lib/Brand/index.d.ts +17 -17
  283. package/dist/lib/Brand/index.js +113 -113
  284. package/dist/lib/Cart/index.d.ts +206 -206
  285. package/dist/lib/Cart/index.js +3164 -3164
  286. package/dist/lib/Catalogue/index.d.ts +9 -9
  287. package/dist/lib/Catalogue/index.js +69 -69
  288. package/dist/lib/Category/index.d.ts +27 -27
  289. package/dist/lib/Category/index.js +190 -190
  290. package/dist/lib/Class/index.d.ts +12 -12
  291. package/dist/lib/Class/index.js +58 -58
  292. package/dist/lib/Consent/index.d.ts +4 -4
  293. package/dist/lib/Consent/index.js +29 -29
  294. package/dist/lib/Customer/index.d.ts +11 -11
  295. package/dist/lib/Customer/index.js +68 -68
  296. package/dist/lib/Declination/index.d.ts +9 -9
  297. package/dist/lib/Declination/index.js +24 -24
  298. package/dist/lib/Discount/index.d.ts +18 -18
  299. package/dist/lib/Discount/index.js +470 -470
  300. package/dist/lib/ElasticSearch/index.d.ts +8 -8
  301. package/dist/lib/ElasticSearch/index.js +45 -45
  302. package/dist/lib/Elavon/index.d.ts +18 -18
  303. package/dist/lib/Elavon/index.js +130 -130
  304. package/dist/lib/Email/AbandonedCartEmail.d.ts +8 -8
  305. package/dist/lib/Email/AbandonedCartEmail.js +16 -16
  306. package/dist/lib/Email/AccountConfirmationEmail.d.ts +11 -11
  307. package/dist/lib/Email/AccountConfirmationEmail.js +22 -22
  308. package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +8 -8
  309. package/dist/lib/Email/AdminOrderConfirmationEmail.js +16 -16
  310. package/dist/lib/Email/ApplicationEmail.d.ts +8 -8
  311. package/dist/lib/Email/ApplicationEmail.js +16 -16
  312. package/dist/lib/Email/BackInStockEmail.d.ts +8 -8
  313. package/dist/lib/Email/BackInStockEmail.js +16 -16
  314. package/dist/lib/Email/ContactEmail.d.ts +8 -8
  315. package/dist/lib/Email/ContactEmail.js +16 -16
  316. package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +8 -8
  317. package/dist/lib/Email/CustomerBookingAdminEmail.js +16 -16
  318. package/dist/lib/Email/CustomerBookingEmail.d.ts +8 -8
  319. package/dist/lib/Email/CustomerBookingEmail.js +16 -16
  320. package/dist/lib/Email/OrderConfirmationEmail.d.ts +8 -8
  321. package/dist/lib/Email/OrderConfirmationEmail.js +16 -16
  322. package/dist/lib/Email/OrderDenounciationEmail.d.ts +8 -8
  323. package/dist/lib/Email/OrderDenounciationEmail.js +16 -16
  324. package/dist/lib/Email/OrderSampleEmail.d.ts +8 -8
  325. package/dist/lib/Email/OrderSampleEmail.js +16 -16
  326. package/dist/lib/Email/OtherTypeEmails.d.ts +8 -8
  327. package/dist/lib/Email/OtherTypeEmails.js +19 -19
  328. package/dist/lib/Email/PasswordResetEmail.d.ts +8 -8
  329. package/dist/lib/Email/PasswordResetEmail.js +16 -16
  330. package/dist/lib/Email/PhotoShootEmail.d.ts +8 -8
  331. package/dist/lib/Email/PhotoShootEmail.js +16 -16
  332. package/dist/lib/Email/PickUpConfirmation.d.ts +8 -8
  333. package/dist/lib/Email/PickUpConfirmation.js +16 -16
  334. package/dist/lib/Email/ShippingConfirmation.d.ts +8 -8
  335. package/dist/lib/Email/ShippingConfirmation.js +16 -16
  336. package/dist/lib/Email/WelcomeEmail.d.ts +8 -8
  337. package/dist/lib/Email/WelcomeEmail.js +16 -16
  338. package/dist/lib/Email/index.d.ts +8 -8
  339. package/dist/lib/Email/index.js +23 -23
  340. package/dist/lib/ExternalService/Ebay.d.ts +62 -62
  341. package/dist/lib/ExternalService/Ebay.js +102 -102
  342. package/dist/lib/ExternalService/index.d.ts +5 -5
  343. package/dist/lib/ExternalService/index.js +10 -10
  344. package/dist/lib/FirstOrderTracking/index.d.ts +5 -5
  345. package/dist/lib/FirstOrderTracking/index.js +10 -10
  346. package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
  347. package/dist/lib/Indexed/IndexedCart.js +86 -86
  348. package/dist/lib/Indexed/Product.d.ts +17 -17
  349. package/dist/lib/Indexed/Product.js +48 -48
  350. package/dist/lib/Inventory/index.d.ts +49 -49
  351. package/dist/lib/Inventory/index.js +314 -314
  352. package/dist/lib/Invoice/index.d.ts +5 -5
  353. package/dist/lib/Invoice/index.js +10 -10
  354. package/dist/lib/MarketplacePublication/index.d.ts +9 -9
  355. package/dist/lib/MarketplacePublication/index.js +118 -118
  356. package/dist/lib/Menu/index.d.ts +11 -11
  357. package/dist/lib/Menu/index.js +103 -103
  358. package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
  359. package/dist/lib/MongoDB/BaseAPI.js +200 -200
  360. package/dist/lib/Note/index.d.ts +4 -0
  361. package/dist/lib/Note/index.js +7 -0
  362. package/dist/lib/Note/index.js.map +1 -0
  363. package/dist/lib/Order/index.d.ts +7 -7
  364. package/dist/lib/Order/index.js +33 -33
  365. package/dist/lib/Org/index.d.ts +27 -27
  366. package/dist/lib/Org/index.js +175 -175
  367. package/dist/lib/PandaPay/index.d.ts +16 -16
  368. package/dist/lib/PandaPay/index.js +170 -170
  369. package/dist/lib/Paysafe/index.d.ts +11 -11
  370. package/dist/lib/Paysafe/index.js +40 -40
  371. package/dist/lib/Product/index.d.ts +154 -154
  372. package/dist/lib/Product/index.js +793 -793
  373. package/dist/lib/ProductAttribute/index.d.ts +15 -15
  374. package/dist/lib/ProductAttribute/index.js +45 -45
  375. package/dist/lib/PromiseToPurchase/index.d.ts +37 -37
  376. package/dist/lib/PromiseToPurchase/index.js +264 -264
  377. package/dist/lib/PurchaseOrder/index.d.ts +9 -9
  378. package/dist/lib/PurchaseOrder/index.js +16 -16
  379. package/dist/lib/Schedule/index.d.ts +5 -5
  380. package/dist/lib/Schedule/index.js +12 -12
  381. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  382. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  383. package/dist/lib/Service/index.d.ts +5 -5
  384. package/dist/lib/Service/index.js +13 -13
  385. package/dist/lib/Shipment/index.d.ts +28 -28
  386. package/dist/lib/Shipment/index.js +357 -357
  387. package/dist/lib/Slider/index.d.ts +16 -16
  388. package/dist/lib/Slider/index.js +113 -113
  389. package/dist/lib/Space/index.d.ts +873 -873
  390. package/dist/lib/Space/index.js +5094 -5094
  391. package/dist/lib/StockNotification/index.d.ts +4 -4
  392. package/dist/lib/StockNotification/index.js +6 -6
  393. package/dist/lib/Store/index.d.ts +5 -5
  394. package/dist/lib/Store/index.js +12 -12
  395. package/dist/lib/Supplier/Command.d.ts +5 -5
  396. package/dist/lib/Supplier/Command.js +10 -10
  397. package/dist/lib/Supplier/index.d.ts +25 -25
  398. package/dist/lib/Supplier/index.js +22 -22
  399. package/dist/lib/Tags/index.d.ts +6 -6
  400. package/dist/lib/Tags/index.js +21 -21
  401. package/dist/lib/Tax/index.d.ts +8 -8
  402. package/dist/lib/Tax/index.js +54 -54
  403. package/dist/lib/TransferRequest/index.d.ts +112 -112
  404. package/dist/lib/TransferRequest/index.js +794 -794
  405. package/dist/lib/Update/index.d.ts +10 -10
  406. package/dist/lib/Update/index.js +22 -22
  407. package/dist/lib/User/index.d.ts +35 -35
  408. package/dist/lib/User/index.js +248 -248
  409. package/dist/lib/Wishlist/index.d.ts +5 -5
  410. package/dist/lib/Wishlist/index.js +10 -10
  411. package/dist/lib/base.d.ts +14 -14
  412. package/dist/lib/base.js +62 -62
  413. package/dist/lib/baseService.d.ts +17 -17
  414. package/dist/lib/baseService.js +43 -43
  415. package/dist/rules/GR/constants/data.d.ts +26 -26
  416. package/dist/rules/GR/constants/data.js +55 -55
  417. package/dist/rules/GR/constants/products.d.ts +8 -8
  418. package/dist/rules/GR/constants/products.js +234 -234
  419. package/dist/rules/GR/interfaces/cart.d.ts +84 -83
  420. package/dist/rules/GR/interfaces/cart.js +41 -40
  421. package/dist/rules/GR/interfaces/cart.js.map +1 -1
  422. package/dist/rules/GR/interfaces/data.d.ts +97 -97
  423. package/dist/rules/GR/interfaces/data.js +104 -104
  424. package/dist/rules/GR/interfaces/products.d.ts +61 -61
  425. package/dist/rules/GR/interfaces/products.js +10 -10
  426. package/dist/rules/GR/utils/cart.d.ts +53 -53
  427. package/dist/rules/GR/utils/cart.js +637 -631
  428. package/dist/rules/GR/utils/cart.js.map +1 -1
  429. package/dist/rules/GR/utils/data.d.ts +3 -3
  430. package/dist/rules/GR/utils/data.js +25 -25
  431. package/dist/rules/GR/utils/expedition.d.ts +71 -71
  432. package/dist/rules/GR/utils/expedition.js +1542 -1542
  433. package/dist/rules/GR/utils/g2.d.ts +176 -176
  434. package/dist/rules/GR/utils/g2.js +845 -845
  435. package/dist/rules/GR/utils/invoices.d.ts +24 -24
  436. package/dist/rules/GR/utils/invoices.js +174 -171
  437. package/dist/rules/GR/utils/invoices.js.map +1 -1
  438. package/dist/rules/GR/utils/products.d.ts +104 -104
  439. package/dist/rules/GR/utils/products.js +984 -984
  440. package/dist/rules/GR/utils/upsells.d.ts +79 -79
  441. package/dist/rules/GR/utils/upsells.js +183 -183
  442. package/dist/services/database/BaseProvider.d.ts +29 -29
  443. package/dist/services/database/BaseProvider.js +28 -28
  444. package/dist/services/database/BatchUtils.d.ts +14 -14
  445. package/dist/services/database/BatchUtils.js +43 -43
  446. package/dist/services/database/Config.d.ts +2 -2
  447. package/dist/services/database/Config.js +5 -5
  448. package/dist/services/database/DatabaseService.d.ts +41 -41
  449. package/dist/services/database/DatabaseService.js +152 -152
  450. package/dist/services/database/FirebaseProvider.d.ts +17 -17
  451. package/dist/services/database/FirebaseProvider.js +218 -218
  452. package/dist/services/database/NotFirebaseProvider.d.ts +35 -35
  453. package/dist/services/database/NotFirebaseProvider.js +243 -243
  454. package/dist/services/g2/G2OrderSlip.d.ts +42 -42
  455. package/dist/services/g2/G2OrderSlip.js +210 -210
  456. package/dist/services/g2/utils.d.ts +9 -9
  457. package/dist/services/g2/utils.js +703 -695
  458. package/dist/services/g2/utils.js.map +1 -1
  459. package/dist/services/logs/index.d.ts +20 -20
  460. package/dist/services/logs/index.js +61 -61
  461. package/dist/services/products/BaseClass.d.ts +50 -50
  462. package/dist/services/products/BaseClass.js +64 -64
  463. package/dist/services/products/TCGService.d.ts +29 -29
  464. package/dist/services/products/TCGService.js +499 -499
  465. package/dist/services/products/utils.d.ts +9 -9
  466. package/dist/services/products/utils.js +94 -94
  467. package/dist/utils/algolia.d.ts +6 -6
  468. package/dist/utils/algolia.js +21 -21
  469. package/dist/utils/anonymisation.d.ts +30 -30
  470. package/dist/utils/anonymisation.js +250 -250
  471. package/dist/utils/array.d.ts +5 -5
  472. package/dist/utils/array.js +14 -14
  473. package/dist/utils/aws.d.ts +14 -14
  474. package/dist/utils/aws.js +126 -126
  475. package/dist/utils/booking.d.ts +22 -22
  476. package/dist/utils/booking.js +118 -118
  477. package/dist/utils/cart.d.ts +103 -102
  478. package/dist/utils/cart.js +690 -652
  479. package/dist/utils/cart.js.map +1 -1
  480. package/dist/utils/categories.d.ts +2 -2
  481. package/dist/utils/categories.js +54 -54
  482. package/dist/utils/cmv.d.ts +10 -10
  483. package/dist/utils/cmv.js +107 -107
  484. package/dist/utils/console.d.ts +6 -6
  485. package/dist/utils/console.js +59 -59
  486. package/dist/utils/context.d.ts +20 -20
  487. package/dist/utils/context.js +61 -61
  488. package/dist/utils/currency.d.ts +6 -6
  489. package/dist/utils/currency.js +61 -61
  490. package/dist/utils/data.d.ts +31 -31
  491. package/dist/utils/data.js +293 -293
  492. package/dist/utils/date.d.ts +1 -1
  493. package/dist/utils/date.js +16 -16
  494. package/dist/utils/dimensions.d.ts +3 -3
  495. package/dist/utils/dimensions.js +16 -16
  496. package/dist/utils/discount.d.ts +46 -46
  497. package/dist/utils/discount.js +934 -934
  498. package/dist/utils/errors.d.ts +113 -113
  499. package/dist/utils/errors.js +113 -113
  500. package/dist/utils/file-admin.d.ts +8 -8
  501. package/dist/utils/file-admin.js +38 -38
  502. package/dist/utils/file.d.ts +38 -38
  503. package/dist/utils/file.js +200 -200
  504. package/dist/utils/firebase-admin.d.ts +2 -2
  505. package/dist/utils/firebase-admin.js +61 -61
  506. package/dist/utils/firebase.d.ts +41 -41
  507. package/dist/utils/firebase.js +131 -131
  508. package/dist/utils/import.d.ts +1 -1
  509. package/dist/utils/import.js +21 -21
  510. package/dist/utils/inventories.d.ts +49 -49
  511. package/dist/utils/inventories.js +392 -392
  512. package/dist/utils/locale.d.ts +15 -15
  513. package/dist/utils/locale.js +78 -78
  514. package/dist/utils/mailchimp.d.ts +58 -58
  515. package/dist/utils/mailchimp.js +495 -495
  516. package/dist/utils/mathUtils.d.ts +17 -17
  517. package/dist/utils/mathUtils.js +315 -315
  518. package/dist/utils/mongodb.d.ts +1 -1
  519. package/dist/utils/mongodb.js +22 -22
  520. package/dist/utils/object.d.ts +13 -13
  521. package/dist/utils/object.js +115 -115
  522. package/dist/utils/payment.d.ts +10 -10
  523. package/dist/utils/payment.js +23 -23
  524. package/dist/utils/products.d.ts +32 -32
  525. package/dist/utils/products.js +186 -186
  526. package/dist/utils/promiseToPurchase.d.ts +56 -56
  527. package/dist/utils/promiseToPurchase.js +195 -195
  528. package/dist/utils/prosprsearch.d.ts +26 -26
  529. package/dist/utils/prosprsearch.js +182 -182
  530. package/dist/utils/refunds.d.ts +2 -2
  531. package/dist/utils/refunds.js +21 -21
  532. package/dist/utils/sdc.d.ts +10 -10
  533. package/dist/utils/sdc.js +1302 -1302
  534. package/dist/utils/searchIndexes.d.ts +21 -21
  535. package/dist/utils/searchIndexes.js +210 -210
  536. package/dist/utils/services.d.ts +42 -42
  537. package/dist/utils/services.js +409 -409
  538. package/dist/utils/shipment.d.ts +110 -110
  539. package/dist/utils/shipment.js +345 -345
  540. package/dist/utils/simpletexting.d.ts +2 -2
  541. package/dist/utils/simpletexting.js +45 -45
  542. package/dist/utils/sliders.d.ts +4 -4
  543. package/dist/utils/sliders.js +24 -24
  544. package/dist/utils/string.d.ts +16 -16
  545. package/dist/utils/string.js +191 -191
  546. package/dist/utils/tcgService.d.ts +2 -2
  547. package/dist/utils/tcgService.js +8 -8
  548. package/dist/utils/tools.d.ts +1 -1
  549. package/dist/utils/tools.js +9 -9
  550. package/dist/utils/transferRequests.d.ts +19 -19
  551. package/dist/utils/transferRequests.js +43 -43
  552. package/dist/utils/update.d.ts +7 -7
  553. package/dist/utils/update.js +125 -125
  554. package/dist/utils/weight.d.ts +3 -3
  555. package/dist/utils/weight.js +16 -16
  556. package/dist/utils/zones.d.ts +11 -11
  557. package/dist/utils/zones.js +218 -218
  558. package/package.json +110 -110
  559. package/publish.sh +143 -143
  560. package/readme.md +182 -182
@@ -1,696 +1,704 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.transformCreditNoteToG2Order = exports.transformAddioCartToG2Order = exports.getDefaultG2OrderItem = void 0;
7
- const G2OrderSlip_1 = __importDefault(require("./G2OrderSlip"));
8
- const logs_1 = require("../logs");
9
- const round_1 = __importDefault(require("lodash/round"));
10
- const products_1 = require("../../rules/GR/constants/products");
11
- const cart_1 = require("../../rules/GR/utils/cart");
12
- const expedition_1 = require("../../rules/GR/utils/expedition");
13
- const g2_1 = require("../../rules/GR/utils/g2");
14
- const products_2 = require("../../rules/GR/utils/products");
15
- const cart_2 = require("../../utils/cart");
16
- const data_1 = require("../../utils/data");
17
- const discount_1 = require("../../utils/discount");
18
- const locale_1 = require("../../utils/locale");
19
- const object_1 = require("../../utils/object");
20
- const services_1 = require("../../utils/services");
21
- const context_1 = require("../../utils/context");
22
- const string_1 = require("../../utils/string");
23
- const __1 = require("../..");
24
- const Cart_1 = require("../../Interfaces/Cart");
25
- const cart_3 = require("../../rules/GR/interfaces/cart");
26
- const refunds_1 = require("../../utils/refunds");
27
- const getDefaultG2OrderItem = (noArticle) => ({
28
- noArticle: noArticle || '',
29
- libreNum1: 0,
30
- libreNum2: 0,
31
- libreNum3: 0,
32
- referenceArticleEquivalent: 0,
33
- pourcCommission: 0,
34
- prixDetailSuggere: 0,
35
- prixMinimum: 0,
36
- montantCommission: 0,
37
- coutdeVenteUnitaire: 0
38
- });
39
- exports.getDefaultG2OrderItem = getDefaultG2OrderItem;
40
- const transformAddioCartToG2Order = async (addioCart, space, orgId, isTest, creditNote) => {
41
- if (addioCart.status < Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS) {
42
- console.error("can't create an order slip for a non-paid cart. Returning!");
43
- return;
44
- }
45
- const g2Service = space.services({ field: 'external_service_name', value: 'G2' });
46
- if (!!!g2Service.length ||
47
- !!!(0, object_1.recursiveCheckObject)(g2Service[0], 'external_service_infos.specific_actions.save_order_to_g2')) {
48
- console.error('space does not have G2 in external_services or does not save order property. Returning!');
49
- return;
50
- }
51
- const g2OrderObj = new G2OrderSlip_1.default(space, orgId);
52
- const data = { addioCart, creditNote, g2OrderObj, space, orgId };
53
- try {
54
- await _constructGeneralData(data, isTest);
55
- _constructBillingData(data);
56
- _constructShippingData(data);
57
- _constructExtraData(data);
58
- await _constructCustomerData(data);
59
- await _constructAllItems(data);
60
- return g2OrderObj;
61
- }
62
- catch (e) {
63
- console.error('error on transforming cart for G2: ', e.toString());
64
- throw 'error on transforming cart for G2: ' + e.toString();
65
- }
66
- };
67
- exports.transformAddioCartToG2Order = transformAddioCartToG2Order;
68
- const _getCustomerData = (addioCart, dataToReturn, space) => {
69
- switch (dataToReturn) {
70
- case 'id':
71
- return (0, cart_1.getClientNumberForCart)(addioCart, space, { checkIfEscPaApplied: true });
72
- case 'fullname':
73
- case 'firstname':
74
- case 'lastname':
75
- const nameToUse = ((0, object_1.recursiveCheckObject)(addioCart, 'billing_address.expedition_recipient_name') || '').split('%');
76
- return dataToReturn == 'firstname'
77
- ? nameToUse[0]
78
- : dataToReturn == 'lastname' && nameToUse.length > 1
79
- ? nameToUse[1]
80
- : nameToUse.join(' ');
81
- case 'phone':
82
- return (0, object_1.recursiveCheckObject)(addioCart, 'billing_address.expedition_recipient_phone') || null;
83
- case 'termsCode':
84
- const isDepot = (0, object_1.recursiveCheckObject)(addioCart, 'custom_payment_type.method') === Cart_1.CustomPaymentTypeEnum.DEPOT;
85
- return !!isDepot
86
- ? 'P.S.L.'
87
- : (0, object_1.recursiveCheckObject)(addioCart, 'customer_info.previous_terms_code') ||
88
- (0, object_1.recursiveCheckObject)(addioCart, 'customer_info.terms_code') ||
89
- 'P.S.L.';
90
- }
91
- };
92
- const _getTransformCartProps = (addioCart) => {
93
- return {
94
- cartLocale: !!addioCart ? addioCart.locale : 'fr',
95
- cartType: !!addioCart ? (0, cart_1.getCartType)(addioCart) : cart_3.CartGeneralTypeEnum.BETON,
96
- isPro: !!addioCart ? (0, cart_1.isPro)(addioCart) : false,
97
- shippingToOntario: !!addioCart.shipping_address && (0, cart_2.getTaxProvinceFromShippingAddress)(addioCart.shipping_address.address) === 'ON',
98
- isPickup: !!(0, object_1.recursiveCheckObject)(addioCart, 'is_pickup')
99
- };
100
- };
101
- const _constructGeneralData = async (data, _isTest) => {
102
- const { addioCart, g2OrderObj, space, creditNote } = data;
103
- const isWebCart = addioCart.cart_type == Cart_1.CartTypeEnum.WEB;
104
- let taxProvince = 'QC';
105
- const cartShippingAddress = (0, object_1.recursiveCheckObject)(addioCart, 'shipping_address.address');
106
- if (!!cartShippingAddress && cartShippingAddress.state != taxProvince) {
107
- const shortCartShippingState = (0, cart_2.getTaxProvinceFromShippingAddress)(cartShippingAddress);
108
- if (!!shortCartShippingState)
109
- taxProvince = shortCartShippingState;
110
- }
111
- const repNumber = !!isWebCart ? 'WEB' : (0, object_1.recursiveCheckObject)(addioCart, 'created_by.user_external_id') || 'NOUVEAU';
112
- g2OrderObj.setNoClient(_getCustomerData(addioCart, 'id', space));
113
- g2OrderObj.setNoProvinceTaxation(taxProvince);
114
- g2OrderObj.setCondition(_getCustomerData(addioCart, 'termsCode', space));
115
- g2OrderObj.setNoRepresentant(repNumber);
116
- g2OrderObj.setDate(!!addioCart.paid_at ? (0, data_1.formatDate)(addioCart.paid_at) : null);
117
- const cartRef = addioCart.ref || '';
118
- const cartInvoice = addioCart.invoice_ref || '';
119
- g2OrderObj.setNoCommDuClient(`${cartRef}${!!cartInvoice && !!cartRef ? '/' : ''}${cartInvoice.replace('-', '')}`);
120
- let customerName = !(0, cart_1.isPro)(addioCart) ? _getCustomerData(addioCart, 'fullname', space) : '';
121
- if (customerName.length + cartRef.length > 24) {
122
- const customerLastName = _getCustomerData(addioCart, 'lastname', space);
123
- customerName = customerLastName.length + cartRef.length <= 24 ? customerLastName : '';
124
- }
125
- g2OrderObj.setDescription(`${!!customerName ? customerName + ' ' : ''}${addioCart.ref || ''}`);
126
- let name = (0, object_1.recursiveCheckObject)(addioCart, 'billing_address.expedition_recipient_name') || '';
127
- name = name.replace('%', ' ').slice(0, 50);
128
- let tel = (0, object_1.recursiveCheckObject)(addioCart, 'billing_address.expedition_recipient_phone') || '';
129
- tel = (0, data_1.formatPhoneNumberPrint)(tel);
130
- const fullLength = name.length + tel.length;
131
- let orderedByValue = `${name}${!!name && !!tel && fullLength <= 49 ? ' ' : ''}${fullLength <= 49 ? tel : ''}`;
132
- g2OrderObj.setCommandePar(orderedByValue || null);
133
- if (!!creditNote) {
134
- g2OrderObj.setNoteDeCredit(true);
135
- g2OrderObj.setNoCommDuClient(`${(0, refunds_1.formatRefundInvoiceRef)(creditNote.ref, space, creditNote.groupCode).replace('-', '')}${!!creditNote.ref && !!cartRef ? '/' : ''}${cartRef}`);
136
- if (!!creditNote.secondaryRef) {
137
- g2OrderObj.setNotes(`# mémo de retour: ${creditNote.secondaryRef}` + '\r\n');
138
- }
139
- if (!!creditNote.notes) {
140
- g2OrderObj.setNotes(creditNote.notes.replace('\n\n', '\r\n') + '\r\n');
141
- }
142
- try {
143
- const user = await space.users.get(creditNote.createdBy.email);
144
- g2OrderObj.setNoRepresentant(user.external_id || 'NOUVEAU');
145
- }
146
- catch (e) {
147
- console.error('error on fetching user with email: ', e.toString());
148
- g2OrderObj.setNoRepresentant('NOUVEAU');
149
- }
150
- }
151
- };
152
- const _constructExtraData = (data) => {
153
- const { addioCart, g2OrderObj, creditNote } = data;
154
- if (addioCart.status == Cart_1.CartStatusEnum.CANCELLED || addioCart.status == Cart_1.CartStatusEnum.EXT_REFUND) {
155
- const cancelledDate = (0, object_1.recursiveCheckObject)(addioCart, 'canceled_by.date');
156
- if (!!cancelledDate)
157
- g2OrderObj.setDateAnnulation((0, data_1.formatDate)(cancelledDate));
158
- }
159
- if (!!addioCart.payment_reference && !creditNote) {
160
- g2OrderObj.setNotes(`#ref. paiement : ${addioCart.payment_reference}\r\n`);
161
- }
162
- if (!!(0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.credit_card_postal_code') && !creditNote) {
163
- g2OrderObj.setNotes(`code postal de la carte de crédit : ${(0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.credit_card_postal_code')}\r\n`);
164
- }
165
- };
166
- const _constructBillingData = (data) => {
167
- const { addioCart, g2OrderObj, space } = data;
168
- const cartBillingInfo = addioCart.billing_address;
169
- if (!!cartBillingInfo) {
170
- let g2BillingInfo = [];
171
- const customerPhone = _getCustomerData(addioCart, 'phone', space);
172
- const address = (0, cart_2.getAddressStrArray)(cartBillingInfo.address);
173
- if (!(0, cart_1.isPro)(addioCart)) {
174
- g2BillingInfo.push(_getCustomerData(addioCart, 'fullname', space) || '');
175
- g2BillingInfo.push(!!customerPhone ? (0, data_1.formatPhoneNumberPrint)(customerPhone) : '');
176
- if (!(0, cart_2.checkIfShippingSameAsBilling)(addioCart)) {
177
- g2BillingInfo.push(...address);
178
- }
179
- }
180
- else {
181
- const customerCompanyName = (0, object_1.recursiveCheckObject)(addioCart, 'customer_info.company_name');
182
- g2BillingInfo.push(customerCompanyName ? customerCompanyName : '');
183
- g2BillingInfo.push(...address);
184
- const poNumber = (0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.orderOrProjectNumber');
185
- if (!!poNumber)
186
- g2BillingInfo.push(`PO ${poNumber}`);
187
- }
188
- g2OrderObj.setVenduA(g2BillingInfo.filter((i) => !!i).join('\r\n'));
189
- }
190
- else {
191
- g2OrderObj.setVenduA(null);
192
- }
193
- };
194
- const _constructShippingData = (data) => {
195
- const { addioCart, g2OrderObj, space, creditNote } = data;
196
- const cartRef = addioCart.ref || '';
197
- const invoiceRef = addioCart.invoice_ref || '';
198
- if (!!creditNote) {
199
- const refundStore = space.preferences.stores.get().find((s) => s.id == creditNote.groupCode);
200
- g2OrderObj.setLivreaNom(`RETOUR${!!refundStore ? ' ' + refundStore.name : ''}`);
201
- g2OrderObj.setLivreaDepartement(`${(0, refunds_1.formatRefundInvoiceRef)(creditNote.ref, space, creditNote.groupCode).replace('-', '')}${!!cartRef ? '/' : ''}${cartRef}`);
202
- g2OrderObj.setTransport('RETOUR');
203
- }
204
- else if (!!addioCart.is_pickup) {
205
- const pickupStoreID = addioCart.current_store_id || (0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.pickup_store.id') || '';
206
- const sameStore = space.preferences.stores.get().find((s) => s.id == pickupStoreID);
207
- g2OrderObj.setLivreaNom(`PICK UP${!!sameStore ? ' ' + sameStore.name : ''}`);
208
- g2OrderObj.setLivreaDepartement(`${cartRef}${!!cartRef && !!invoiceRef ? '/' : ''}${invoiceRef.replace('-', '')}`);
209
- g2OrderObj.setTransport('PICK-UP');
210
- }
211
- else {
212
- const cartShippingInfo = addioCart.shipping_address;
213
- if (!!cartShippingInfo) {
214
- g2OrderObj.setLivreaNom(null);
215
- g2OrderObj.setLivreaTelephone(null);
216
- g2OrderObj.setLivreaAdresse(`${!!cartShippingInfo.address.app ? cartShippingInfo.address.app + ' - ' : ''}${cartShippingInfo.address.line1}`);
217
- g2OrderObj.setLivreaVille(cartShippingInfo.address.city);
218
- const provinceCode = (0, cart_2.getCurrentProvince)(cartShippingInfo.address.state);
219
- g2OrderObj.setLivreaProvince(!!provinceCode ? provinceCode.value : cartShippingInfo.address.state);
220
- g2OrderObj.setLivreaCodePostal(cartShippingInfo.address.postal_code);
221
- g2OrderObj.setLivreaPays(cartShippingInfo.address.country);
222
- }
223
- g2OrderObj.setTransport('LIVRAISON');
224
- }
225
- if (!creditNote) {
226
- const cartForDate = (0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.delivery_or_pickup_date');
227
- const timeOfDay = (0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.delivery_period');
228
- if (!!cartForDate) {
229
- let dateToUse = (0, data_1.formatDate)(cartForDate);
230
- if (timeOfDay) {
231
- if (timeOfDay == 'AM')
232
- dateToUse.setHours(8);
233
- else
234
- dateToUse.setHours(13);
235
- }
236
- else {
237
- dateToUse.setHours(0);
238
- }
239
- dateToUse.setMinutes(0);
240
- dateToUse.setSeconds(0);
241
- g2OrderObj.setDateRequis(dateToUse);
242
- }
243
- else {
244
- g2OrderObj.setDateRequis(null);
245
- }
246
- }
247
- };
248
- const _constructCustomerData = async (data) => {
249
- const { addioCart, g2OrderObj, space, orgId } = data;
250
- let joursEcheance = null;
251
- let joursReglementAnticipe = null;
252
- let pourcEscReglementAnticipe = null;
253
- const customerID = _getCustomerData(addioCart, 'id', space);
254
- if (!!customerID) {
255
- try {
256
- const token = (0, context_1.getSpaceToken)(space, orgId);
257
- if (!!!token)
258
- throw 'Could not generate space token';
259
- const g2Customers = await (0, g2_1.getG2Customer)(token, customerID);
260
- if (!!!g2Customers.length)
261
- throw `Could not find customer in G2 with ID ${customerID}`;
262
- const sameCustomer = g2Customers[0];
263
- joursEcheance = sameCustomer.conditionsReglements.conditionReglement.joursÉchéance;
264
- joursReglementAnticipe = sameCustomer.conditionsReglements.conditionReglement.joursRèglementAnticipé;
265
- pourcEscReglementAnticipe = sameCustomer.conditionsReglements.conditionReglement.pourcEscRèglementAnticipé;
266
- if (!!!g2OrderObj.data().commandePar && (0, cart_1.isPro)(addioCart)) {
267
- let valueToUse = sameCustomer.client.personneRessourceVentes || '';
268
- valueToUse = valueToUse.slice(0, 50);
269
- g2OrderObj.setCommandePar(valueToUse || null);
270
- }
271
- }
272
- catch (e) {
273
- console.error('could not fetch customer term details: ', e.toString());
274
- }
275
- }
276
- g2OrderObj.setJoursEcheance(joursEcheance);
277
- g2OrderObj.setJoursReglementAnticipe(joursReglementAnticipe);
278
- g2OrderObj.setPourcEscReglementAnticipe(pourcEscReglementAnticipe);
279
- };
280
- const _constructAllItems = async (data) => {
281
- var _a;
282
- if (!!!data.addioCart)
283
- return;
284
- const allOptions = _getTransformCartProps(data.addioCart);
285
- let subtotalToUse = 0;
286
- try {
287
- subtotalToUse = await _constructProductItems(allOptions, data);
288
- }
289
- catch (e) {
290
- console.error('error on transforming items for G2: ', e.toString());
291
- }
292
- if (!!subtotalToUse) {
293
- try {
294
- subtotalToUse = await _constructPromoItems(subtotalToUse, allOptions, data);
295
- }
296
- catch (e) {
297
- console.error('error on transforming promos for G2: ', e.toString());
298
- }
299
- }
300
- if (!!data.creditNote && !!data.creditNote.refundFeesAmount) {
301
- try {
302
- await _constructRefundFeeItem(data);
303
- }
304
- catch (e) {
305
- console.error('error on adding refund fee item to G2 order: ', e.toString());
306
- }
307
- }
308
- if (allOptions.shippingToOntario) {
309
- try {
310
- await _constructOntarioTaxItem(subtotalToUse, data);
311
- }
312
- catch (e) {
313
- console.error('error on adding Ontario tax item to G2 order: ', e.toString());
314
- }
315
- }
316
- if (!data.creditNote) {
317
- _constructCartTypeItem(data);
318
- _constructPersonOnSiteItem(data);
319
- }
320
- if (subtotalToUse.toFixed(2) !== data.addioCart.subtotal.toFixed(2)) {
321
- const logTxt = `Something went wrong! Subtotals don't match... calculated subtotal: ${subtotalToUse.toFixed(2)}, cart subtotal: ${data.addioCart.subtotal.toFixed(2)}`;
322
- if (!__1.isTestEnv) {
323
- await (0, logs_1.SystemLog)({
324
- clientName: `sdk-admin | G2 | _constructAllItems (G2 order), space: ${(0, services_1.getSpaceInitialsByID)(data.space.data().id)}`,
325
- clientToken: (_a = process.env.NEXT_PUBLIC_LOG_SYSTEM_KEY) !== null && _a !== void 0 ? _a : ''
326
- }, logs_1.LogType.INFO, logTxt);
327
- }
328
- else {
329
- console.error(logTxt);
330
- }
331
- }
332
- };
333
- const _constructProductItems = async (allOptions, data) => {
334
- if (!!!data.addioCart)
335
- return 0;
336
- let calculatedSubtotal = 0;
337
- let allItems = (0, cart_1.orderCartItems)(data.addioCart);
338
- for (let item of allItems) {
339
- try {
340
- const { g2Item, internalMsgForItem } = await _transformCartItemToPartialG2Item(item, data.space, data.orgId, allOptions);
341
- data.g2OrderObj.addItemLineToOrder(g2Item, internalMsgForItem);
342
- const escompteApplied = !!g2Item.pourcEscompte ? (100 - g2Item.pourcEscompte) / 100 : 1;
343
- calculatedSubtotal += (g2Item.prixUnitaire || 0) * escompteApplied * (g2Item.quantite || 0);
344
- }
345
- catch (e) {
346
- console.error('error on transforming item to G2 item: ', e.toString());
347
- }
348
- }
349
- return calculatedSubtotal;
350
- };
351
- const _constructPromoItems = async (subtotalToUse, allOptions, data) => {
352
- var _a;
353
- if (!!!data.addioCart)
354
- return 0;
355
- let allPromos = (0, discount_1.getCartPromo)(data.addioCart) || [];
356
- let allNonIncentivePromos = allPromos.filter((p) => p.applies_to !== Cart_1.CartPromoAppliesToEnum.TOTAL_AFTER_TAXES);
357
- let promoAmountData = (0, cart_2.getAllPromoAppliedPrices)(allNonIncentivePromos, subtotalToUse, data.addioCart.items, data.space, !!data.creditNote);
358
- let calculatedSubtotal = subtotalToUse;
359
- for (let promoAmounts of promoAmountData) {
360
- try {
361
- const samePromoInCartApplied = allPromos.find((p) => p.discount_id === promoAmounts.id);
362
- const promoToCheckID = (_a = promoAmounts.id) !== null && _a !== void 0 ? _a : '';
363
- if (!!!samePromoInCartApplied) {
364
- console.error('could not find corresponding cart promo for id: ', promoAmounts.id);
365
- continue;
366
- }
367
- const sameDiscountRule = data.addioCart.discount_rules.find((d) => d.id == promoToCheckID);
368
- const externalValueForG2 = !!sameDiscountRule
369
- ? (0, object_1.recursiveCheckObject)(sameDiscountRule, 'external_values.noArticle')
370
- : undefined;
371
- const amountToUseForQuantity = [Cart_1.CartPromoAppliesToEnum.PRODUCT, Cart_1.CartPromoAppliesToEnum.ITEMS].includes(promoAmounts.appliesTo)
372
- ? promoAmounts.productTotalAmount
373
- : samePromoInCartApplied.amount_unit && samePromoInCartApplied.amount_unit.includes('amount')
374
- ? 1
375
- : promoAmounts.subtotalBefore;
376
- const { g2Item, internalMsgForItem } = await _transformCartPromoToPartialG2Item(samePromoInCartApplied, externalValueForG2, amountToUseForQuantity, data.space, data.orgId, allOptions);
377
- data.g2OrderObj.addItemLineToOrder(g2Item, internalMsgForItem);
378
- }
379
- catch (e) {
380
- console.error('error on transforming item to G2 item: ', e.toString());
381
- }
382
- }
383
- if (promoAmountData.length >= 1) {
384
- calculatedSubtotal = promoAmountData[promoAmountData.length - 1].subtotalAfter;
385
- }
386
- let incentive = allPromos.find((p) => p.applies_to === Cart_1.CartPromoAppliesToEnum.TOTAL_AFTER_TAXES);
387
- if (!!incentive) {
388
- const sameDiscountRule = data.addioCart.discount_rules.find((d) => d.id == incentive.discount_id);
389
- const externalValueForG2 = !!sameDiscountRule
390
- ? (0, object_1.recursiveCheckObject)(sameDiscountRule, 'external_values.noArticle')
391
- : undefined;
392
- const { g2Item, internalMsgForItem } = await _transformCartPromoToPartialG2Item(incentive, externalValueForG2, calculatedSubtotal, data.space, data.orgId, allOptions);
393
- data.g2OrderObj.addItemLineToOrder(g2Item, internalMsgForItem);
394
- }
395
- return calculatedSubtotal;
396
- };
397
- const _constructRefundFeeItem = async (data) => {
398
- if (!!!data.creditNote)
399
- return;
400
- const refundFeeG2Prod = await (0, g2_1.fetchProductFromG2WithSku)('320000000-1', data.space, data.orgId, true);
401
- const refundFeeG2Sku = !!refundFeeG2Prod ? refundFeeG2Prod.article.noArticle : undefined;
402
- if (!!!refundFeeG2Prod)
403
- console.error('error on fetching refund fee from G2: could not fetch');
404
- let quantityForFee = !!refundFeeG2Prod ? data.creditNote.refundFeesAmount / refundFeeG2Prod.prix[0].prix : 0;
405
- const transformedRefundProduct = Object.assign(Object.assign({}, (0, exports.getDefaultG2OrderItem)()), { noArticle: refundFeeG2Sku || '999999999-1', description: !!refundFeeG2Prod && refundFeeG2Prod.article.description
406
- ? refundFeeG2Prod.article.description
407
- : 'Frais de retour', sku: refundFeeG2Sku || '320000000-1', quantite: quantityForFee, prixUnitaire: !!refundFeeG2Prod ? refundFeeG2Prod.prix[0].prix : 0, pourcEscompte: 0, taxableTPS: true, taxableTVQ: true });
408
- data.g2OrderObj.addItemLineToOrder(transformedRefundProduct);
409
- };
410
- const _constructOntarioTaxItem = async (currentSubtotal, data) => {
411
- const ontarioTaxG2Prod = await (0, g2_1.fetchProductFromG2WithSku)('TAXEONTARIO', data.space, data.orgId, true);
412
- if (!!!ontarioTaxG2Prod) {
413
- console.error('Error on fetching ontarioTax product from G2: could not fetch!');
414
- }
415
- let amountForTax = !!ontarioTaxG2Prod && !!ontarioTaxG2Prod.prix[0] ? ontarioTaxG2Prod.prix[0].prix : undefined;
416
- if (typeof amountForTax == 'undefined') {
417
- console.error('could not fetch price for Ontario tax amount');
418
- amountForTax = 0;
419
- }
420
- const transformedTaxProduct = Object.assign(Object.assign({}, (0, exports.getDefaultG2OrderItem)()), { noArticle: !!ontarioTaxG2Prod && ontarioTaxG2Prod.article.noArticle ? ontarioTaxG2Prod.article.noArticle : '999999999-1', description: !!ontarioTaxG2Prod && ontarioTaxG2Prod.article.description
421
- ? ontarioTaxG2Prod.article.description
422
- : 'Taxes pour livraison en Ontario', sku: !!ontarioTaxG2Prod && ontarioTaxG2Prod.article.noArticle ? ontarioTaxG2Prod.article.noArticle : 'TAXEONTARIO', quantite: currentSubtotal, prixUnitaire: amountForTax, pourcEscompte: 0, taxableTPS: false, taxableTVQ: false });
423
- data.g2OrderObj.addItemLineToOrder(transformedTaxProduct);
424
- };
425
- const _constructCartTypeItem = (data) => {
426
- const { addioCart, g2OrderObj } = data;
427
- if (!!addioCart.is_pickup)
428
- return;
429
- const cartProps = _getTransformCartProps(addioCart);
430
- const allItems = addioCart.items;
431
- if (![cart_3.CartGeneralTypeEnum.BETON, cart_3.CartGeneralTypeEnum.GRASS].includes(cartProps.cartType))
432
- return;
433
- let calculatedPalQty = (0, expedition_1.getPalletQty)(allItems, cartProps.cartType == cart_3.CartGeneralTypeEnum.BETON ? 'concrete' : 'grass');
434
- let itemMsgStr = '';
435
- if (cartProps.cartType == cart_3.CartGeneralTypeEnum.BETON) {
436
- let concretePalQty = calculatedPalQty;
437
- const palletFeeProd = allItems.find((i) => i.parent_slug == 'frais-palette');
438
- if (!!palletFeeProd) {
439
- concretePalQty = palletFeeProd.qte;
440
- }
441
- itemMsgStr += `${concretePalQty} BETON`;
442
- let allAccessories = allItems.filter((i) => {
443
- const cat2 = (0, object_1.recursiveCheckObject)(i, 'external_values.catégorie2') || '';
444
- return !!cat2.includes('ACC') && !!(0, object_1.recursiveCheckObject)(i, 'external_values.catégorie1') && !i.is_service;
445
- });
446
- for (let acc of allAccessories)
447
- itemMsgStr += ` + ${(0, object_1.recursiveCheckObject)(acc, 'external_values.catégorie1')}`;
448
- }
449
- else {
450
- itemMsgStr += `${calculatedPalQty % 1 != 0 ? Math.floor(calculatedPalQty) + '½' : calculatedPalQty} GAZON`;
451
- const principalGrassItem = allItems.find((i) => (0, products_2.checkIfProductIsOfType)(i, 'gazon', true) && !i.is_service && i.sku !== products_1.kentucky);
452
- if (!!principalGrassItem)
453
- itemMsgStr += ` ${(0, locale_1.getLocaleOfDictionnary)(principalGrassItem.name, addioCart.locale).toUpperCase()}`;
454
- if ((0, cart_1.checkIfCartContainsType)(cart_3.CartGeneralTypeEnum.INSTALLATION, addioCart)) {
455
- itemMsgStr += ' EN INSTALLATION';
456
- if (allItems.some((i) => i.parent_slug == 'installation-fertilisation'))
457
- itemMsgStr += ` + FERTILISATION`;
458
- if (allItems.some((i) => i.parent_slug == 'installation-roulage'))
459
- itemMsgStr += ` + ROULAGE`;
460
- let installAddOnStr = [];
461
- for (let installProAddOn of Object.keys(products_1.installationProSpecSkus)) {
462
- if (allItems.some((i) => i.sku === products_1.installationProSpecSkus[installProAddOn])) {
463
- switch (installProAddOn) {
464
- case 'bord_rue':
465
- installAddOnStr.push('BORD DE RUE');
466
- break;
467
- case 'piste_cyclable':
468
- installAddOnStr.push('PISTE CYCLABLE');
469
- break;
470
- case 'petit_espace':
471
- installAddOnStr.push('ESPACE INSUFFISANT');
472
- break;
473
- case 'pentes':
474
- installAddOnStr.push('PIQUETAGE');
475
- break;
476
- case 'nivellement_necessaire':
477
- installAddOnStr.push('NIVELLEMENT');
478
- break;
479
- }
480
- }
481
- }
482
- if (installAddOnStr.length > 0)
483
- itemMsgStr += ` + ${installAddOnStr.join(' | ')}`;
484
- }
485
- }
486
- const constructedItem = Object.assign(Object.assign({}, (0, exports.getDefaultG2OrderItem)()), { message: itemMsgStr, quantite: null, prixUnitaire: null, pourcEscompte: 0, taxableTPS: true, taxableTVQ: true });
487
- g2OrderObj.addItemLineToOrder(constructedItem);
488
- };
489
- const _constructPersonOnSiteItem = (data) => {
490
- const { addioCart, g2OrderObj } = data;
491
- const cartProps = _getTransformCartProps(addioCart);
492
- if (!!cartProps.isPickup)
493
- return;
494
- const personOnSiteName = (0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.personOnSiteName');
495
- const personOnSitePhone = (0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.personOnSitePhone');
496
- if (!!!personOnSiteName && !!!personOnSitePhone)
497
- return;
498
- const constructedItem = Object.assign(Object.assign({}, (0, exports.getDefaultG2OrderItem)()), { noArticle: 'APPEL', message: `* APPELER 30 MIN AVANT ${personOnSiteName.trim()} ${(0, data_1.formatPhoneNumberPrint)(personOnSitePhone).trim()}`, quantite: 0, prixUnitaire: 0, pourcEscompte: 0, taxableTPS: true, taxableTVQ: true });
499
- g2OrderObj.addItemLineToOrder(constructedItem);
500
- };
501
- const _transformCartItemToPartialG2Item = async (item, space, orgId, options) => {
502
- var _a;
503
- let extraMsg = [];
504
- const isCustomProd = !!item.is_temp_prod;
505
- const isEscSuppItem = (0, g2_1.isEscompteSuppItem)(item.sku);
506
- const updatedPriceMsg = !!(0, cart_2.priceWasOverridden)(item)
507
- ? (0, object_1.recursiveCheckObject)(item, 'discount_price.authorization.note')
508
- : undefined;
509
- const updatedEscompteMsg = !!(0, cart_2.priceWasOverridden)(item)
510
- ? (0, object_1.recursiveCheckObject)(item, 'promo_price.authorization.note')
511
- : '';
512
- let defaultSku = (0, object_1.recursiveCheckObject)(item, 'external_values.noArticle') || item.sku;
513
- if (isEscSuppItem)
514
- defaultSku = (0, string_1.splitFromFirstChar)('-', defaultSku)[0];
515
- let transG2Item = (0, exports.getDefaultG2OrderItem)(defaultSku);
516
- transG2Item.description = (_a = (0, locale_1.getLocaleOfDictionnary)(item.name, options.cartLocale)) !== null && _a !== void 0 ? _a : null;
517
- transG2Item.quantite = isEscSuppItem ? (0, round_1.default)(item.qte, 2) : item.qte;
518
- transG2Item.prixUnitaire = (0, cart_1.getAppliedPrice)(item, {
519
- isBookingBeton: options.cartType == cart_3.CartGeneralTypeEnum.BOOKING_BETON
520
- });
521
- transG2Item.pourcEscompte = (0, cart_1.getPercentFromReducedPrice)(item, !!options.isPro) || 0;
522
- transG2Item.prixModifieUtilisateur = !!updatedPriceMsg || (isCustomProd && !isEscSuppItem);
523
- transG2Item.escompteModifieUtilisateur = !!updatedEscompteMsg || (isCustomProd && !isEscSuppItem);
524
- const prodIsTaxExempt = !!item.tax_exemption || options.shippingToOntario;
525
- transG2Item.taxableTPS = !prodIsTaxExempt;
526
- transG2Item.taxableTVQ = !prodIsTaxExempt;
527
- try {
528
- transG2Item = await _updateItemWithG2Prod(defaultSku, transG2Item, options, space, orgId, {
529
- noArticle: true,
530
- description: true,
531
- message: true
532
- }, (msg) => !!msg && extraMsg.push(msg));
533
- }
534
- catch (e) {
535
- console.error(`error on fetching prod from G2 for sku ${defaultSku}: `, e.toString());
536
- }
537
- if (!!isCustomProd && !isEscSuppItem)
538
- extraMsg.push(`Produit ajouté manuellement`);
539
- else {
540
- const allMsgs = [];
541
- if (!!updatedPriceMsg)
542
- allMsgs.push(`Message d'autorisation (prix unitaire modifié) : ${updatedPriceMsg}`);
543
- if (!!updatedEscompteMsg && updatedPriceMsg != updatedEscompteMsg)
544
- allMsgs.push(`Message d'autorisation (% escompte modifié) : ${updatedEscompteMsg}`);
545
- if (allMsgs.length)
546
- extraMsg.push(allMsgs.join(' | '));
547
- }
548
- return {
549
- g2Item: transG2Item,
550
- internalMsgForItem: !!extraMsg.length ? `${extraMsg.join(', ')}` : ''
551
- };
552
- };
553
- const _transformCartPromoToPartialG2Item = async (promo, associatedNoArticle, quantityToUse, space, orgId, options) => {
554
- let extraMsg = [];
555
- let defaultSku = associatedNoArticle || '';
556
- if (!!!defaultSku && !!promo.promo_code)
557
- defaultSku = promo.promo_code;
558
- let transG2Item = (0, exports.getDefaultG2OrderItem)(defaultSku);
559
- transG2Item.description = promo.promo_name;
560
- transG2Item.quantite = quantityToUse;
561
- let promoResultAmountRemoved = 0;
562
- if (!!promo.amount_removed) {
563
- if (!!!promo.amount_unit || promo.amount_unit.includes('percent')) {
564
- promoResultAmountRemoved = promo.amount_removed / 100;
565
- }
566
- else {
567
- promoResultAmountRemoved = promo.amount_removed;
568
- }
569
- }
570
- transG2Item.prixUnitaire = promoResultAmountRemoved * -1;
571
- transG2Item.pourcEscompte = 0;
572
- const shouldRemoveTaxes = promo.applies_to == Cart_1.CartPromoAppliesToEnum.TOTAL_AFTER_TAXES || options.shippingToOntario;
573
- transG2Item.taxableTPS = !shouldRemoveTaxes;
574
- transG2Item.taxableTVQ = !shouldRemoveTaxes;
575
- if (!!defaultSku) {
576
- try {
577
- transG2Item = await _updateItemWithG2Prod(defaultSku, transG2Item, options, space, orgId, {
578
- noArticle: true,
579
- description: true
580
- }, (msg) => !!msg && extraMsg.push(msg));
581
- }
582
- catch (e) {
583
- console.error(`error on fetching prod from G2 for sku ${defaultSku}: `, e.toString());
584
- }
585
- }
586
- else {
587
- transG2Item.noArticle = '999999999-1';
588
- transG2Item.pourcEscompte = 0;
589
- }
590
- if (transG2Item.noArticle == '999999999-1') {
591
- transG2Item.prixModifieUtilisateur = true;
592
- transG2Item.escompteModifieUtilisateur = true;
593
- }
594
- return {
595
- g2Item: transG2Item,
596
- internalMsgForItem: !!extraMsg.length ? `${extraMsg.join(', ')}` : ''
597
- };
598
- };
599
- const _updateItemWithG2Prod = async (sku, transG2Item, options, space, orgId, valuesToUpdate, addMessageToG2Order) => {
600
- var _a;
601
- const g2Prod = await (0, g2_1.fetchProductFromG2WithSku)(sku, space, orgId);
602
- if (!!g2Prod) {
603
- if (valuesToUpdate.noArticle) {
604
- if (!!g2Prod.noArticle && g2Prod.noArticle !== sku) {
605
- transG2Item.noArticle = g2Prod.noArticle;
606
- transG2Item.sku = sku;
607
- }
608
- }
609
- if (valuesToUpdate.description) {
610
- const g2Description = options.cartLocale == 'en' && !!g2Prod.article.description2
611
- ? g2Prod.article.description2
612
- : g2Prod.article.description;
613
- if (!!g2Description && g2Description !== transG2Item.description) {
614
- transG2Item.description = g2Prod.article.description;
615
- }
616
- }
617
- }
618
- else {
619
- if (valuesToUpdate.noArticle) {
620
- transG2Item.noArticle = '999999999-1';
621
- transG2Item.sku = sku;
622
- transG2Item.pourcEscompte = 0;
623
- if (!!addMessageToG2Order)
624
- addMessageToG2Order(`Sku non-trouvé dans G2 : ${sku}`);
625
- }
626
- if (!sku.includes('test')) {
627
- console.error(`Error - G2 equivalent not found for sku: ${sku}`);
628
- await (0, logs_1.SystemLog)({
629
- clientName: `sdk-admin | G2 | transformCartItemToG2Item | ${(0, services_1.getSpaceInitialsByID)(space.data().id)}`,
630
- clientToken: (_a = process.env.NEXT_PUBLIC_LOG_SYSTEM_KEY) !== null && _a !== void 0 ? _a : ''
631
- }, logs_1.LogType.INFO, `G2 equivalent not found for sku: ${sku}`);
632
- }
633
- }
634
- return transG2Item;
635
- };
636
- const transformCreditNoteToG2Order = async (creditNote, cartId, space, orgId, isTest) => {
637
- const g2Service = space.services({ field: 'external_service_name', value: 'G2' });
638
- if (!!!g2Service.length ||
639
- !!!(0, object_1.recursiveCheckObject)(g2Service[0], 'external_service_infos.specific_actions.save_order_to_g2')) {
640
- console.error('space does not have G2 in external_services or does not save order property. Returning!');
641
- return;
642
- }
643
- let correspondingCart;
644
- try {
645
- const cartQuery = await space.carts.get({ query: [{ field: 'id', operator: '==', value: cartId }] });
646
- if (!!cartQuery && cartQuery.length > 0)
647
- correspondingCart = cartQuery[0].data();
648
- }
649
- catch (e) {
650
- console.error('could not fetch corresponding cart from database: ', e.toString());
651
- }
652
- if (!!!correspondingCart) {
653
- console.log("couldn't find cart! returning");
654
- return;
655
- }
656
- correspondingCart.paid_at = creditNote.createdAt;
657
- if (!!correspondingCart.processed_by) {
658
- correspondingCart.processed_by = Object.assign(Object.assign({}, correspondingCart.processed_by), { date: creditNote.createdAt });
659
- }
660
- correspondingCart.items = correspondingCart.items
661
- .map((i) => {
662
- const sameInRefund = creditNote.items.find((refItem) => refItem.itemId === i.parent_product_id && refItem.variantId === i.sku);
663
- if (!!!sameInRefund)
664
- return;
665
- i.qte = Number(sameInRefund.creditedQty) * -1;
666
- return i;
667
- })
668
- .filter((i) => !!i);
669
- correspondingCart.subtotal = creditNote.subtotal * -1;
670
- correspondingCart.total = creditNote.total * -1;
671
- correspondingCart.taxes = creditNote.taxes.map((t) => (Object.assign(Object.assign({}, t), { taxes: t.taxes.map((tax) => (Object.assign(Object.assign({}, tax), { amount: (tax.amount || 0) * -1 }))) })));
672
- if (!!correspondingCart.subtotalWithoutPromotions) {
673
- correspondingCart.subtotalWithoutPromotions = creditNote.subtotalWithoutPromotions * -1;
674
- }
675
- const currentCartPromos = (0, discount_1.getCartPromo)(Object.assign({}, correspondingCart)) || [];
676
- correspondingCart.promo_after_taxes_amount = creditNote.promoAfterTaxesAmount;
677
- correspondingCart.cart_promos_applied = (creditNote.promos || [])
678
- .map((p) => {
679
- const sameInCreditNote = currentCartPromos.find((cartPromo) => p.discountId == cartPromo.discount_id);
680
- if (!!sameInCreditNote) {
681
- if (sameInCreditNote.applies_to === Cart_1.CartPromoAppliesToEnum.TOTAL_AFTER_TAXES &&
682
- creditNote.promoAfterTaxesAmount) {
683
- sameInCreditNote.amount_removed = creditNote.promoAfterTaxesAmount;
684
- }
685
- else if (!p.unit.includes('percent')) {
686
- sameInCreditNote.amount_removed = p.refundedAmount;
687
- }
688
- }
689
- return sameInCreditNote;
690
- })
691
- .filter((p) => !!p);
692
- let transformedG2Order = await (0, exports.transformAddioCartToG2Order)(correspondingCart, space, orgId, isTest, creditNote);
693
- return transformedG2Order;
694
- };
695
- exports.transformCreditNoteToG2Order = transformCreditNoteToG2Order;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.transformCreditNoteToG2Order = exports.transformAddioCartToG2Order = exports.getDefaultG2OrderItem = void 0;
7
+ const G2OrderSlip_1 = __importDefault(require("./G2OrderSlip"));
8
+ const logs_1 = require("../logs");
9
+ const round_1 = __importDefault(require("lodash/round"));
10
+ const products_1 = require("../../rules/GR/constants/products");
11
+ const cart_1 = require("../../rules/GR/utils/cart");
12
+ const expedition_1 = require("../../rules/GR/utils/expedition");
13
+ const g2_1 = require("../../rules/GR/utils/g2");
14
+ const products_2 = require("../../rules/GR/utils/products");
15
+ const cart_2 = require("../../utils/cart");
16
+ const data_1 = require("../../utils/data");
17
+ const discount_1 = require("../../utils/discount");
18
+ const locale_1 = require("../../utils/locale");
19
+ const object_1 = require("../../utils/object");
20
+ const services_1 = require("../../utils/services");
21
+ const context_1 = require("../../utils/context");
22
+ const string_1 = require("../../utils/string");
23
+ const __1 = require("../..");
24
+ const Cart_1 = require("../../Interfaces/Cart");
25
+ const cart_3 = require("../../rules/GR/interfaces/cart");
26
+ const refunds_1 = require("../../utils/refunds");
27
+ const getDefaultG2OrderItem = (noArticle) => ({
28
+ noArticle: noArticle || '',
29
+ libreNum1: 0,
30
+ libreNum2: 0,
31
+ libreNum3: 0,
32
+ referenceArticleEquivalent: 0,
33
+ pourcCommission: 0,
34
+ prixDetailSuggere: 0,
35
+ prixMinimum: 0,
36
+ montantCommission: 0,
37
+ coutdeVenteUnitaire: 0
38
+ });
39
+ exports.getDefaultG2OrderItem = getDefaultG2OrderItem;
40
+ const transformAddioCartToG2Order = async (addioCart, space, orgId, isTest, creditNote) => {
41
+ if (addioCart.status < Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS) {
42
+ console.error("can't create an order slip for a non-paid cart. Returning!");
43
+ return;
44
+ }
45
+ const g2Service = space.services({ field: 'external_service_name', value: 'G2' });
46
+ if (!!!g2Service.length ||
47
+ !!!(0, object_1.recursiveCheckObject)(g2Service[0], 'external_service_infos.specific_actions.save_order_to_g2')) {
48
+ console.error('space does not have G2 in external_services or does not save order property. Returning!');
49
+ return;
50
+ }
51
+ const g2OrderObj = new G2OrderSlip_1.default(space, orgId);
52
+ const data = { addioCart, creditNote, g2OrderObj, space, orgId };
53
+ try {
54
+ await _constructGeneralData(data, isTest);
55
+ _constructBillingData(data);
56
+ _constructShippingData(data);
57
+ _constructExtraData(data);
58
+ await _constructCustomerData(data);
59
+ await _constructAllItems(data);
60
+ return g2OrderObj;
61
+ }
62
+ catch (e) {
63
+ console.error('error on transforming cart for G2: ', e.toString());
64
+ throw 'error on transforming cart for G2: ' + e.toString();
65
+ }
66
+ };
67
+ exports.transformAddioCartToG2Order = transformAddioCartToG2Order;
68
+ const _getCustomerData = (addioCart, dataToReturn, space) => {
69
+ switch (dataToReturn) {
70
+ case 'id':
71
+ return (0, cart_1.getClientNumberForCart)(addioCart, space, { checkIfEscPaApplied: true });
72
+ case 'fullname':
73
+ case 'firstname':
74
+ case 'lastname':
75
+ const nameToUse = ((0, object_1.recursiveCheckObject)(addioCart, 'billing_address.expedition_recipient_name') || '').split('%');
76
+ return dataToReturn == 'firstname'
77
+ ? nameToUse[0]
78
+ : dataToReturn == 'lastname' && nameToUse.length > 1
79
+ ? nameToUse[1]
80
+ : nameToUse.join(' ');
81
+ case 'phone':
82
+ return (0, object_1.recursiveCheckObject)(addioCart, 'billing_address.expedition_recipient_phone') || null;
83
+ case 'termsCode':
84
+ const isDepot = (0, object_1.recursiveCheckObject)(addioCart, 'custom_payment_type.method') === Cart_1.CustomPaymentTypeEnum.DEPOT;
85
+ return !!isDepot
86
+ ? 'P.S.L.'
87
+ : (0, object_1.recursiveCheckObject)(addioCart, 'customer_info.previous_terms_code') ||
88
+ (0, object_1.recursiveCheckObject)(addioCart, 'customer_info.terms_code') ||
89
+ 'P.S.L.';
90
+ }
91
+ };
92
+ const _getTransformCartProps = (addioCart) => {
93
+ return {
94
+ cartLocale: !!addioCart ? addioCart.locale : 'fr',
95
+ cartType: !!addioCart ? (0, cart_1.getCartType)(addioCart) : cart_3.CartGeneralTypeEnum.BETON,
96
+ isPro: !!addioCart ? (0, cart_1.isPro)(addioCart) : false,
97
+ shippingToOntario: !!addioCart.shipping_address && (0, cart_2.getTaxProvinceFromShippingAddress)(addioCart.shipping_address.address) === 'ON',
98
+ isPickup: !!(0, object_1.recursiveCheckObject)(addioCart, 'is_pickup')
99
+ };
100
+ };
101
+ const _constructGeneralData = async (data, _isTest) => {
102
+ const { addioCart, g2OrderObj, space, creditNote } = data;
103
+ const isWebCart = addioCart.cart_type == Cart_1.CartTypeEnum.WEB;
104
+ let taxProvince = 'QC';
105
+ const cartShippingAddress = (0, object_1.recursiveCheckObject)(addioCart, 'shipping_address.address');
106
+ if (!!cartShippingAddress && cartShippingAddress.state != taxProvince) {
107
+ const shortCartShippingState = (0, cart_2.getTaxProvinceFromShippingAddress)(cartShippingAddress);
108
+ if (!!shortCartShippingState)
109
+ taxProvince = shortCartShippingState;
110
+ }
111
+ const repNumber = !!isWebCart ? 'WEB' : (0, object_1.recursiveCheckObject)(addioCart, 'created_by.user_external_id') || 'NOUVEAU';
112
+ g2OrderObj.setNoClient(_getCustomerData(addioCart, 'id', space));
113
+ g2OrderObj.setNoProvinceTaxation(taxProvince);
114
+ g2OrderObj.setCondition(_getCustomerData(addioCart, 'termsCode', space));
115
+ g2OrderObj.setNoRepresentant(repNumber);
116
+ g2OrderObj.setDate(!!addioCart.paid_at ? (0, data_1.formatDate)(addioCart.paid_at) : null);
117
+ const cartRef = addioCart.ref || '';
118
+ const cartInvoice = addioCart.invoice_ref || '';
119
+ g2OrderObj.setNoCommDuClient(`${cartRef}${!!cartInvoice && !!cartRef ? '/' : ''}${cartInvoice.replace('-', '')}`);
120
+ let customerName = !(0, cart_1.isPro)(addioCart) ? _getCustomerData(addioCart, 'fullname', space) : '';
121
+ if (customerName.length + cartRef.length > 24) {
122
+ const customerLastName = _getCustomerData(addioCart, 'lastname', space);
123
+ customerName = customerLastName.length + cartRef.length <= 24 ? customerLastName : '';
124
+ }
125
+ g2OrderObj.setDescription(`${!!customerName ? customerName + ' ' : ''}${addioCart.ref || ''}`);
126
+ let name = (0, object_1.recursiveCheckObject)(addioCart, 'billing_address.expedition_recipient_name') || '';
127
+ name = name.replace('%', ' ').slice(0, 50);
128
+ let tel = (0, object_1.recursiveCheckObject)(addioCart, 'billing_address.expedition_recipient_phone') || '';
129
+ tel = (0, data_1.formatPhoneNumberPrint)(tel);
130
+ const fullLength = name.length + tel.length;
131
+ let orderedByValue = `${name}${!!name && !!tel && fullLength <= 49 ? ' ' : ''}${fullLength <= 49 ? tel : ''}`;
132
+ g2OrderObj.setCommandePar(orderedByValue || null);
133
+ if (!!creditNote) {
134
+ g2OrderObj.setNoteDeCredit(true);
135
+ g2OrderObj.setNoCommDuClient(`${(0, refunds_1.formatRefundInvoiceRef)(creditNote.ref, space, creditNote.groupCode).replace('-', '')}${!!creditNote.ref && !!cartRef ? '/' : ''}${cartRef}`);
136
+ if (!!creditNote.secondaryRef) {
137
+ g2OrderObj.setNotes(`# mémo de retour: ${creditNote.secondaryRef}` + '\r\n');
138
+ }
139
+ if (!!creditNote.notes) {
140
+ g2OrderObj.setNotes(creditNote.notes.replace('\n\n', '\r\n') + '\r\n');
141
+ }
142
+ try {
143
+ const user = await space.users.get(creditNote.createdBy.email);
144
+ g2OrderObj.setNoRepresentant(user.external_id || 'NOUVEAU');
145
+ }
146
+ catch (e) {
147
+ console.error('error on fetching user with email: ', e.toString());
148
+ g2OrderObj.setNoRepresentant('NOUVEAU');
149
+ }
150
+ }
151
+ if ((0, cart_1.checkIfCartContainsType)(cart_3.CartGeneralTypeEnum.RETURN_PALLETS, addioCart)) {
152
+ if (!!addioCart.shipping_payload.pallet_return_memo_ref) {
153
+ g2OrderObj.setNotes(`# mémo de retour: ${addioCart.shipping_payload.pallet_return_memo_ref}` + '\r\n');
154
+ }
155
+ if (!!addioCart.message) {
156
+ g2OrderObj.setNotes(addioCart.message.replace('\n\n', '\r\n') + '\r\n');
157
+ }
158
+ }
159
+ };
160
+ const _constructExtraData = (data) => {
161
+ const { addioCart, g2OrderObj, creditNote } = data;
162
+ if (addioCart.status == Cart_1.CartStatusEnum.CANCELLED || addioCart.status == Cart_1.CartStatusEnum.EXT_REFUND) {
163
+ const cancelledDate = (0, object_1.recursiveCheckObject)(addioCart, 'canceled_by.date');
164
+ if (!!cancelledDate)
165
+ g2OrderObj.setDateAnnulation((0, data_1.formatDate)(cancelledDate));
166
+ }
167
+ if (!!addioCart.payment_reference && !creditNote) {
168
+ g2OrderObj.setNotes(`#ref. paiement : ${addioCart.payment_reference}\r\n`);
169
+ }
170
+ if (!!(0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.credit_card_postal_code') && !creditNote) {
171
+ g2OrderObj.setNotes(`code postal de la carte de crédit : ${(0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.credit_card_postal_code')}\r\n`);
172
+ }
173
+ };
174
+ const _constructBillingData = (data) => {
175
+ const { addioCart, g2OrderObj, space } = data;
176
+ const cartBillingInfo = addioCart.billing_address;
177
+ if (!!cartBillingInfo) {
178
+ let g2BillingInfo = [];
179
+ const customerPhone = _getCustomerData(addioCart, 'phone', space);
180
+ const address = (0, cart_2.getAddressStrArray)(cartBillingInfo.address);
181
+ if (!(0, cart_1.isPro)(addioCart)) {
182
+ g2BillingInfo.push(_getCustomerData(addioCart, 'fullname', space) || '');
183
+ g2BillingInfo.push(!!customerPhone ? (0, data_1.formatPhoneNumberPrint)(customerPhone) : '');
184
+ if (!(0, cart_2.checkIfShippingSameAsBilling)(addioCart)) {
185
+ g2BillingInfo.push(...address);
186
+ }
187
+ }
188
+ else {
189
+ const customerCompanyName = (0, object_1.recursiveCheckObject)(addioCart, 'customer_info.company_name');
190
+ g2BillingInfo.push(customerCompanyName ? customerCompanyName : '');
191
+ g2BillingInfo.push(...address);
192
+ const poNumber = (0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.orderOrProjectNumber');
193
+ if (!!poNumber)
194
+ g2BillingInfo.push(`PO ${poNumber}`);
195
+ }
196
+ g2OrderObj.setVenduA(g2BillingInfo.filter((i) => !!i).join('\r\n'));
197
+ }
198
+ else {
199
+ g2OrderObj.setVenduA(null);
200
+ }
201
+ };
202
+ const _constructShippingData = (data) => {
203
+ const { addioCart, g2OrderObj, space, creditNote } = data;
204
+ const cartRef = addioCart.ref || '';
205
+ const invoiceRef = addioCart.invoice_ref || '';
206
+ if (!!creditNote) {
207
+ const refundStore = space.preferences.stores.get().find((s) => s.id == creditNote.groupCode);
208
+ g2OrderObj.setLivreaNom(`RETOUR${!!refundStore ? ' ' + refundStore.name : ''}`);
209
+ g2OrderObj.setLivreaDepartement(`${(0, refunds_1.formatRefundInvoiceRef)(creditNote.ref, space, creditNote.groupCode).replace('-', '')}${!!cartRef ? '/' : ''}${cartRef}`);
210
+ g2OrderObj.setTransport('RETOUR');
211
+ }
212
+ else if (!!addioCart.is_pickup) {
213
+ const pickupStoreID = addioCart.current_store_id || (0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.pickup_store.id') || '';
214
+ const sameStore = space.preferences.stores.get().find((s) => s.id == pickupStoreID);
215
+ g2OrderObj.setLivreaNom(`PICK UP${!!sameStore ? ' ' + sameStore.name : ''}`);
216
+ g2OrderObj.setLivreaDepartement(`${cartRef}${!!cartRef && !!invoiceRef ? '/' : ''}${invoiceRef.replace('-', '')}`);
217
+ g2OrderObj.setTransport('PICK-UP');
218
+ }
219
+ else {
220
+ const cartShippingInfo = addioCart.shipping_address;
221
+ if (!!cartShippingInfo) {
222
+ g2OrderObj.setLivreaNom(null);
223
+ g2OrderObj.setLivreaTelephone(null);
224
+ g2OrderObj.setLivreaAdresse(`${!!cartShippingInfo.address.app ? cartShippingInfo.address.app + ' - ' : ''}${cartShippingInfo.address.line1}`);
225
+ g2OrderObj.setLivreaVille(cartShippingInfo.address.city);
226
+ const provinceCode = (0, cart_2.getCurrentProvince)(cartShippingInfo.address.state);
227
+ g2OrderObj.setLivreaProvince(!!provinceCode ? provinceCode.value : cartShippingInfo.address.state);
228
+ g2OrderObj.setLivreaCodePostal(cartShippingInfo.address.postal_code);
229
+ g2OrderObj.setLivreaPays(cartShippingInfo.address.country);
230
+ }
231
+ g2OrderObj.setTransport('LIVRAISON');
232
+ }
233
+ if (!creditNote) {
234
+ const cartForDate = (0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.delivery_or_pickup_date');
235
+ const timeOfDay = (0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.delivery_period');
236
+ if (!!cartForDate) {
237
+ let dateToUse = (0, data_1.formatDate)(cartForDate);
238
+ if (timeOfDay) {
239
+ if (timeOfDay == 'AM')
240
+ dateToUse.setHours(8);
241
+ else
242
+ dateToUse.setHours(13);
243
+ }
244
+ else {
245
+ dateToUse.setHours(0);
246
+ }
247
+ dateToUse.setMinutes(0);
248
+ dateToUse.setSeconds(0);
249
+ g2OrderObj.setDateRequis(dateToUse);
250
+ }
251
+ else {
252
+ g2OrderObj.setDateRequis(null);
253
+ }
254
+ }
255
+ };
256
+ const _constructCustomerData = async (data) => {
257
+ const { addioCart, g2OrderObj, space, orgId } = data;
258
+ let joursEcheance = null;
259
+ let joursReglementAnticipe = null;
260
+ let pourcEscReglementAnticipe = null;
261
+ const customerID = _getCustomerData(addioCart, 'id', space);
262
+ if (!!customerID) {
263
+ try {
264
+ const token = (0, context_1.getSpaceToken)(space, orgId);
265
+ if (!!!token)
266
+ throw 'Could not generate space token';
267
+ const g2Customers = await (0, g2_1.getG2Customer)(token, customerID);
268
+ if (!!!g2Customers.length)
269
+ throw `Could not find customer in G2 with ID ${customerID}`;
270
+ const sameCustomer = g2Customers[0];
271
+ joursEcheance = sameCustomer.conditionsReglements.conditionReglement.joursÉchéance;
272
+ joursReglementAnticipe = sameCustomer.conditionsReglements.conditionReglement.joursRèglementAnticipé;
273
+ pourcEscReglementAnticipe = sameCustomer.conditionsReglements.conditionReglement.pourcEscRèglementAnticipé;
274
+ if (!!!g2OrderObj.data().commandePar && (0, cart_1.isPro)(addioCart)) {
275
+ let valueToUse = sameCustomer.client.personneRessourceVentes || '';
276
+ valueToUse = valueToUse.slice(0, 50);
277
+ g2OrderObj.setCommandePar(valueToUse || null);
278
+ }
279
+ }
280
+ catch (e) {
281
+ console.error('could not fetch customer term details: ', e.toString());
282
+ }
283
+ }
284
+ g2OrderObj.setJoursEcheance(joursEcheance);
285
+ g2OrderObj.setJoursReglementAnticipe(joursReglementAnticipe);
286
+ g2OrderObj.setPourcEscReglementAnticipe(pourcEscReglementAnticipe);
287
+ };
288
+ const _constructAllItems = async (data) => {
289
+ var _a;
290
+ if (!!!data.addioCart)
291
+ return;
292
+ const allOptions = _getTransformCartProps(data.addioCart);
293
+ let subtotalToUse = 0;
294
+ try {
295
+ subtotalToUse = await _constructProductItems(allOptions, data);
296
+ }
297
+ catch (e) {
298
+ console.error('error on transforming items for G2: ', e.toString());
299
+ }
300
+ if (!!subtotalToUse) {
301
+ try {
302
+ subtotalToUse = await _constructPromoItems(subtotalToUse, allOptions, data);
303
+ }
304
+ catch (e) {
305
+ console.error('error on transforming promos for G2: ', e.toString());
306
+ }
307
+ }
308
+ if (!!data.creditNote && !!data.creditNote.refundFeesAmount) {
309
+ try {
310
+ await _constructRefundFeeItem(data);
311
+ }
312
+ catch (e) {
313
+ console.error('error on adding refund fee item to G2 order: ', e.toString());
314
+ }
315
+ }
316
+ if (allOptions.shippingToOntario) {
317
+ try {
318
+ await _constructOntarioTaxItem(subtotalToUse, data);
319
+ }
320
+ catch (e) {
321
+ console.error('error on adding Ontario tax item to G2 order: ', e.toString());
322
+ }
323
+ }
324
+ if (!data.creditNote) {
325
+ _constructCartTypeItem(data);
326
+ _constructPersonOnSiteItem(data);
327
+ }
328
+ if (subtotalToUse.toFixed(2) !== data.addioCart.subtotal.toFixed(2)) {
329
+ const logTxt = `Something went wrong! Subtotals don't match... calculated subtotal: ${subtotalToUse.toFixed(2)}, cart subtotal: ${data.addioCart.subtotal.toFixed(2)}`;
330
+ if (!__1.isTestEnv) {
331
+ await (0, logs_1.SystemLog)({
332
+ clientName: `sdk-admin | G2 | _constructAllItems (G2 order), space: ${(0, services_1.getSpaceInitialsByID)(data.space.data().id)}`,
333
+ clientToken: (_a = process.env.NEXT_PUBLIC_LOG_SYSTEM_KEY) !== null && _a !== void 0 ? _a : ''
334
+ }, logs_1.LogType.INFO, logTxt);
335
+ }
336
+ else {
337
+ console.error(logTxt);
338
+ }
339
+ }
340
+ };
341
+ const _constructProductItems = async (allOptions, data) => {
342
+ if (!!!data.addioCart)
343
+ return 0;
344
+ let calculatedSubtotal = 0;
345
+ let allItems = (0, cart_1.orderCartItems)(data.addioCart);
346
+ for (let item of allItems) {
347
+ try {
348
+ const { g2Item, internalMsgForItem } = await _transformCartItemToPartialG2Item(item, data.space, data.orgId, allOptions);
349
+ data.g2OrderObj.addItemLineToOrder(g2Item, internalMsgForItem);
350
+ const escompteApplied = !!g2Item.pourcEscompte ? (100 - g2Item.pourcEscompte) / 100 : 1;
351
+ calculatedSubtotal += (g2Item.prixUnitaire || 0) * escompteApplied * (g2Item.quantite || 0);
352
+ }
353
+ catch (e) {
354
+ console.error('error on transforming item to G2 item: ', e.toString());
355
+ }
356
+ }
357
+ return calculatedSubtotal;
358
+ };
359
+ const _constructPromoItems = async (subtotalToUse, allOptions, data) => {
360
+ var _a;
361
+ if (!!!data.addioCart)
362
+ return 0;
363
+ let allPromos = (0, discount_1.getCartPromo)(data.addioCart) || [];
364
+ let allNonIncentivePromos = allPromos.filter((p) => p.applies_to !== Cart_1.CartPromoAppliesToEnum.TOTAL_AFTER_TAXES);
365
+ let promoAmountData = (0, cart_2.getAllPromoAppliedPrices)(allNonIncentivePromos, subtotalToUse, data.addioCart.items, data.space, !!data.creditNote);
366
+ let calculatedSubtotal = subtotalToUse;
367
+ for (let promoAmounts of promoAmountData) {
368
+ try {
369
+ const samePromoInCartApplied = allPromos.find((p) => p.discount_id === promoAmounts.id);
370
+ const promoToCheckID = (_a = promoAmounts.id) !== null && _a !== void 0 ? _a : '';
371
+ if (!!!samePromoInCartApplied) {
372
+ console.error('could not find corresponding cart promo for id: ', promoAmounts.id);
373
+ continue;
374
+ }
375
+ const sameDiscountRule = data.addioCart.discount_rules.find((d) => d.id == promoToCheckID);
376
+ const externalValueForG2 = !!sameDiscountRule
377
+ ? (0, object_1.recursiveCheckObject)(sameDiscountRule, 'external_values.noArticle')
378
+ : undefined;
379
+ const amountToUseForQuantity = [Cart_1.CartPromoAppliesToEnum.PRODUCT, Cart_1.CartPromoAppliesToEnum.ITEMS].includes(promoAmounts.appliesTo)
380
+ ? promoAmounts.productTotalAmount
381
+ : samePromoInCartApplied.amount_unit && samePromoInCartApplied.amount_unit.includes('amount')
382
+ ? 1
383
+ : promoAmounts.subtotalBefore;
384
+ const { g2Item, internalMsgForItem } = await _transformCartPromoToPartialG2Item(samePromoInCartApplied, externalValueForG2, amountToUseForQuantity, data.space, data.orgId, allOptions);
385
+ data.g2OrderObj.addItemLineToOrder(g2Item, internalMsgForItem);
386
+ }
387
+ catch (e) {
388
+ console.error('error on transforming item to G2 item: ', e.toString());
389
+ }
390
+ }
391
+ if (promoAmountData.length >= 1) {
392
+ calculatedSubtotal = promoAmountData[promoAmountData.length - 1].subtotalAfter;
393
+ }
394
+ let incentive = allPromos.find((p) => p.applies_to === Cart_1.CartPromoAppliesToEnum.TOTAL_AFTER_TAXES);
395
+ if (!!incentive) {
396
+ const sameDiscountRule = data.addioCart.discount_rules.find((d) => d.id == incentive.discount_id);
397
+ const externalValueForG2 = !!sameDiscountRule
398
+ ? (0, object_1.recursiveCheckObject)(sameDiscountRule, 'external_values.noArticle')
399
+ : undefined;
400
+ const { g2Item, internalMsgForItem } = await _transformCartPromoToPartialG2Item(incentive, externalValueForG2, calculatedSubtotal, data.space, data.orgId, allOptions);
401
+ data.g2OrderObj.addItemLineToOrder(g2Item, internalMsgForItem);
402
+ }
403
+ return calculatedSubtotal;
404
+ };
405
+ const _constructRefundFeeItem = async (data) => {
406
+ if (!!!data.creditNote)
407
+ return;
408
+ const refundFeeG2Prod = await (0, g2_1.fetchProductFromG2WithSku)('320000000-1', data.space, data.orgId, true);
409
+ const refundFeeG2Sku = !!refundFeeG2Prod ? refundFeeG2Prod.article.noArticle : undefined;
410
+ if (!!!refundFeeG2Prod)
411
+ console.error('error on fetching refund fee from G2: could not fetch');
412
+ let quantityForFee = !!refundFeeG2Prod ? data.creditNote.refundFeesAmount / refundFeeG2Prod.prix[0].prix : 0;
413
+ const transformedRefundProduct = Object.assign(Object.assign({}, (0, exports.getDefaultG2OrderItem)()), { noArticle: refundFeeG2Sku || '999999999-1', description: !!refundFeeG2Prod && refundFeeG2Prod.article.description
414
+ ? refundFeeG2Prod.article.description
415
+ : 'Frais de retour', sku: refundFeeG2Sku || '320000000-1', quantite: quantityForFee, prixUnitaire: !!refundFeeG2Prod ? refundFeeG2Prod.prix[0].prix : 0, pourcEscompte: 0, taxableTPS: true, taxableTVQ: true });
416
+ data.g2OrderObj.addItemLineToOrder(transformedRefundProduct);
417
+ };
418
+ const _constructOntarioTaxItem = async (currentSubtotal, data) => {
419
+ const ontarioTaxG2Prod = await (0, g2_1.fetchProductFromG2WithSku)('TAXEONTARIO', data.space, data.orgId, true);
420
+ if (!!!ontarioTaxG2Prod) {
421
+ console.error('Error on fetching ontarioTax product from G2: could not fetch!');
422
+ }
423
+ let amountForTax = !!ontarioTaxG2Prod && !!ontarioTaxG2Prod.prix[0] ? ontarioTaxG2Prod.prix[0].prix : undefined;
424
+ if (typeof amountForTax == 'undefined') {
425
+ console.error('could not fetch price for Ontario tax amount');
426
+ amountForTax = 0;
427
+ }
428
+ const transformedTaxProduct = Object.assign(Object.assign({}, (0, exports.getDefaultG2OrderItem)()), { noArticle: !!ontarioTaxG2Prod && ontarioTaxG2Prod.article.noArticle ? ontarioTaxG2Prod.article.noArticle : '999999999-1', description: !!ontarioTaxG2Prod && ontarioTaxG2Prod.article.description
429
+ ? ontarioTaxG2Prod.article.description
430
+ : 'Taxes pour livraison en Ontario', sku: !!ontarioTaxG2Prod && ontarioTaxG2Prod.article.noArticle ? ontarioTaxG2Prod.article.noArticle : 'TAXEONTARIO', quantite: currentSubtotal, prixUnitaire: amountForTax, pourcEscompte: 0, taxableTPS: false, taxableTVQ: false });
431
+ data.g2OrderObj.addItemLineToOrder(transformedTaxProduct);
432
+ };
433
+ const _constructCartTypeItem = (data) => {
434
+ const { addioCart, g2OrderObj } = data;
435
+ if (!!addioCart.is_pickup)
436
+ return;
437
+ const cartProps = _getTransformCartProps(addioCart);
438
+ const allItems = addioCart.items;
439
+ if (![cart_3.CartGeneralTypeEnum.BETON, cart_3.CartGeneralTypeEnum.GRASS].includes(cartProps.cartType))
440
+ return;
441
+ let calculatedPalQty = (0, expedition_1.getPalletQty)(allItems, cartProps.cartType == cart_3.CartGeneralTypeEnum.BETON ? 'concrete' : 'grass');
442
+ let itemMsgStr = '';
443
+ if (cartProps.cartType == cart_3.CartGeneralTypeEnum.BETON) {
444
+ let concretePalQty = calculatedPalQty;
445
+ const palletFeeProd = allItems.find((i) => i.parent_slug == 'frais-palette');
446
+ if (!!palletFeeProd) {
447
+ concretePalQty = palletFeeProd.qte;
448
+ }
449
+ itemMsgStr += `${concretePalQty} BETON`;
450
+ let allAccessories = allItems.filter((i) => {
451
+ const cat2 = (0, object_1.recursiveCheckObject)(i, 'external_values.catégorie2') || '';
452
+ return !!cat2.includes('ACC') && !!(0, object_1.recursiveCheckObject)(i, 'external_values.catégorie1') && !i.is_service;
453
+ });
454
+ for (let acc of allAccessories)
455
+ itemMsgStr += ` + ${(0, object_1.recursiveCheckObject)(acc, 'external_values.catégorie1')}`;
456
+ }
457
+ else {
458
+ itemMsgStr += `${calculatedPalQty % 1 != 0 ? Math.floor(calculatedPalQty) + '½' : calculatedPalQty} GAZON`;
459
+ const principalGrassItem = allItems.find((i) => (0, products_2.checkIfProductIsOfType)(i, 'gazon', true) && !i.is_service && i.sku !== products_1.kentucky);
460
+ if (!!principalGrassItem)
461
+ itemMsgStr += ` ${(0, locale_1.getLocaleOfDictionnary)(principalGrassItem.name, addioCart.locale).toUpperCase()}`;
462
+ if ((0, cart_1.checkIfCartContainsType)(cart_3.CartGeneralTypeEnum.INSTALLATION, addioCart)) {
463
+ itemMsgStr += ' EN INSTALLATION';
464
+ if (allItems.some((i) => i.parent_slug == 'installation-fertilisation'))
465
+ itemMsgStr += ` + FERTILISATION`;
466
+ if (allItems.some((i) => i.parent_slug == 'installation-roulage'))
467
+ itemMsgStr += ` + ROULAGE`;
468
+ let installAddOnStr = [];
469
+ for (let installProAddOn of Object.keys(products_1.installationProSpecSkus)) {
470
+ if (allItems.some((i) => i.sku === products_1.installationProSpecSkus[installProAddOn])) {
471
+ switch (installProAddOn) {
472
+ case 'bord_rue':
473
+ installAddOnStr.push('BORD DE RUE');
474
+ break;
475
+ case 'piste_cyclable':
476
+ installAddOnStr.push('PISTE CYCLABLE');
477
+ break;
478
+ case 'petit_espace':
479
+ installAddOnStr.push('ESPACE INSUFFISANT');
480
+ break;
481
+ case 'pentes':
482
+ installAddOnStr.push('PIQUETAGE');
483
+ break;
484
+ case 'nivellement_necessaire':
485
+ installAddOnStr.push('NIVELLEMENT');
486
+ break;
487
+ }
488
+ }
489
+ }
490
+ if (installAddOnStr.length > 0)
491
+ itemMsgStr += ` + ${installAddOnStr.join(' | ')}`;
492
+ }
493
+ }
494
+ const constructedItem = Object.assign(Object.assign({}, (0, exports.getDefaultG2OrderItem)()), { message: itemMsgStr, quantite: null, prixUnitaire: null, pourcEscompte: 0, taxableTPS: true, taxableTVQ: true });
495
+ g2OrderObj.addItemLineToOrder(constructedItem);
496
+ };
497
+ const _constructPersonOnSiteItem = (data) => {
498
+ const { addioCart, g2OrderObj } = data;
499
+ const cartProps = _getTransformCartProps(addioCart);
500
+ if (!!cartProps.isPickup)
501
+ return;
502
+ const personOnSiteName = (0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.personOnSiteName');
503
+ const personOnSitePhone = (0, object_1.recursiveCheckObject)(addioCart, 'shipping_payload.personOnSitePhone');
504
+ if (!!!personOnSiteName && !!!personOnSitePhone)
505
+ return;
506
+ const constructedItem = Object.assign(Object.assign({}, (0, exports.getDefaultG2OrderItem)()), { noArticle: 'APPEL', message: `* APPELER 30 MIN AVANT ${personOnSiteName.trim()} ${(0, data_1.formatPhoneNumberPrint)(personOnSitePhone).trim()}`, quantite: 0, prixUnitaire: 0, pourcEscompte: 0, taxableTPS: true, taxableTVQ: true });
507
+ g2OrderObj.addItemLineToOrder(constructedItem);
508
+ };
509
+ const _transformCartItemToPartialG2Item = async (item, space, orgId, options) => {
510
+ var _a;
511
+ let extraMsg = [];
512
+ const isCustomProd = !!item.is_temp_prod;
513
+ const isEscSuppItem = (0, g2_1.isEscompteSuppItem)(item.sku);
514
+ const updatedPriceMsg = !!(0, cart_2.priceWasOverridden)(item)
515
+ ? (0, object_1.recursiveCheckObject)(item, 'discount_price.authorization.note')
516
+ : undefined;
517
+ const updatedEscompteMsg = !!(0, cart_2.priceWasOverridden)(item)
518
+ ? (0, object_1.recursiveCheckObject)(item, 'promo_price.authorization.note')
519
+ : '';
520
+ let defaultSku = (0, object_1.recursiveCheckObject)(item, 'external_values.noArticle') || item.sku;
521
+ if (isEscSuppItem)
522
+ defaultSku = (0, string_1.splitFromFirstChar)('-', defaultSku)[0];
523
+ let transG2Item = (0, exports.getDefaultG2OrderItem)(defaultSku);
524
+ transG2Item.description = (_a = (0, locale_1.getLocaleOfDictionnary)(item.name, options.cartLocale)) !== null && _a !== void 0 ? _a : null;
525
+ transG2Item.quantite = isEscSuppItem ? (0, round_1.default)(item.qte, 2) : item.qte;
526
+ transG2Item.prixUnitaire = (0, cart_1.getAppliedPrice)(item, {
527
+ isBookingBeton: options.cartType == cart_3.CartGeneralTypeEnum.BOOKING_BETON
528
+ });
529
+ transG2Item.pourcEscompte = (0, cart_1.getPercentFromReducedPrice)(item, !!options.isPro) || 0;
530
+ transG2Item.prixModifieUtilisateur = !!updatedPriceMsg || (isCustomProd && !isEscSuppItem);
531
+ transG2Item.escompteModifieUtilisateur = !!updatedEscompteMsg || (isCustomProd && !isEscSuppItem);
532
+ const prodIsTaxExempt = !!item.tax_exemption || options.shippingToOntario;
533
+ transG2Item.taxableTPS = !prodIsTaxExempt;
534
+ transG2Item.taxableTVQ = !prodIsTaxExempt;
535
+ try {
536
+ transG2Item = await _updateItemWithG2Prod(defaultSku, transG2Item, options, space, orgId, {
537
+ noArticle: true,
538
+ description: true,
539
+ message: true
540
+ }, (msg) => !!msg && extraMsg.push(msg));
541
+ }
542
+ catch (e) {
543
+ console.error(`error on fetching prod from G2 for sku ${defaultSku}: `, e.toString());
544
+ }
545
+ if (!!isCustomProd && !isEscSuppItem)
546
+ extraMsg.push(`Produit ajouté manuellement`);
547
+ else {
548
+ const allMsgs = [];
549
+ if (!!updatedPriceMsg)
550
+ allMsgs.push(`Message d'autorisation (prix unitaire modifié) : ${updatedPriceMsg}`);
551
+ if (!!updatedEscompteMsg && updatedPriceMsg != updatedEscompteMsg)
552
+ allMsgs.push(`Message d'autorisation (% escompte modifié) : ${updatedEscompteMsg}`);
553
+ if (allMsgs.length)
554
+ extraMsg.push(allMsgs.join(' | '));
555
+ }
556
+ return {
557
+ g2Item: transG2Item,
558
+ internalMsgForItem: !!extraMsg.length ? `${extraMsg.join(', ')}` : ''
559
+ };
560
+ };
561
+ const _transformCartPromoToPartialG2Item = async (promo, associatedNoArticle, quantityToUse, space, orgId, options) => {
562
+ let extraMsg = [];
563
+ let defaultSku = associatedNoArticle || '';
564
+ if (!!!defaultSku && !!promo.promo_code)
565
+ defaultSku = promo.promo_code;
566
+ let transG2Item = (0, exports.getDefaultG2OrderItem)(defaultSku);
567
+ transG2Item.description = promo.promo_name;
568
+ transG2Item.quantite = quantityToUse;
569
+ let promoResultAmountRemoved = 0;
570
+ if (!!promo.amount_removed) {
571
+ if (!!!promo.amount_unit || promo.amount_unit.includes('percent')) {
572
+ promoResultAmountRemoved = promo.amount_removed / 100;
573
+ }
574
+ else {
575
+ promoResultAmountRemoved = promo.amount_removed;
576
+ }
577
+ }
578
+ transG2Item.prixUnitaire = promoResultAmountRemoved * -1;
579
+ transG2Item.pourcEscompte = 0;
580
+ const shouldRemoveTaxes = promo.applies_to == Cart_1.CartPromoAppliesToEnum.TOTAL_AFTER_TAXES || options.shippingToOntario;
581
+ transG2Item.taxableTPS = !shouldRemoveTaxes;
582
+ transG2Item.taxableTVQ = !shouldRemoveTaxes;
583
+ if (!!defaultSku) {
584
+ try {
585
+ transG2Item = await _updateItemWithG2Prod(defaultSku, transG2Item, options, space, orgId, {
586
+ noArticle: true,
587
+ description: true
588
+ }, (msg) => !!msg && extraMsg.push(msg));
589
+ }
590
+ catch (e) {
591
+ console.error(`error on fetching prod from G2 for sku ${defaultSku}: `, e.toString());
592
+ }
593
+ }
594
+ else {
595
+ transG2Item.noArticle = '999999999-1';
596
+ transG2Item.pourcEscompte = 0;
597
+ }
598
+ if (transG2Item.noArticle == '999999999-1') {
599
+ transG2Item.prixModifieUtilisateur = true;
600
+ transG2Item.escompteModifieUtilisateur = true;
601
+ }
602
+ return {
603
+ g2Item: transG2Item,
604
+ internalMsgForItem: !!extraMsg.length ? `${extraMsg.join(', ')}` : ''
605
+ };
606
+ };
607
+ const _updateItemWithG2Prod = async (sku, transG2Item, options, space, orgId, valuesToUpdate, addMessageToG2Order) => {
608
+ var _a;
609
+ const g2Prod = await (0, g2_1.fetchProductFromG2WithSku)(sku, space, orgId);
610
+ if (!!g2Prod) {
611
+ if (valuesToUpdate.noArticle) {
612
+ if (!!g2Prod.noArticle && g2Prod.noArticle !== sku) {
613
+ transG2Item.noArticle = g2Prod.noArticle;
614
+ transG2Item.sku = sku;
615
+ }
616
+ }
617
+ if (valuesToUpdate.description) {
618
+ const g2Description = options.cartLocale == 'en' && !!g2Prod.article.description2
619
+ ? g2Prod.article.description2
620
+ : g2Prod.article.description;
621
+ if (!!g2Description && g2Description !== transG2Item.description) {
622
+ transG2Item.description = g2Prod.article.description;
623
+ }
624
+ }
625
+ }
626
+ else {
627
+ if (valuesToUpdate.noArticle) {
628
+ transG2Item.noArticle = '999999999-1';
629
+ transG2Item.sku = sku;
630
+ transG2Item.pourcEscompte = 0;
631
+ if (!!addMessageToG2Order)
632
+ addMessageToG2Order(`Sku non-trouvé dans G2 : ${sku}`);
633
+ }
634
+ if (!sku.includes('test')) {
635
+ console.error(`Error - G2 equivalent not found for sku: ${sku}`);
636
+ await (0, logs_1.SystemLog)({
637
+ clientName: `sdk-admin | G2 | transformCartItemToG2Item | ${(0, services_1.getSpaceInitialsByID)(space.data().id)}`,
638
+ clientToken: (_a = process.env.NEXT_PUBLIC_LOG_SYSTEM_KEY) !== null && _a !== void 0 ? _a : ''
639
+ }, logs_1.LogType.INFO, `G2 equivalent not found for sku: ${sku}`);
640
+ }
641
+ }
642
+ return transG2Item;
643
+ };
644
+ const transformCreditNoteToG2Order = async (creditNote, cartId, space, orgId, isTest) => {
645
+ const g2Service = space.services({ field: 'external_service_name', value: 'G2' });
646
+ if (!!!g2Service.length ||
647
+ !!!(0, object_1.recursiveCheckObject)(g2Service[0], 'external_service_infos.specific_actions.save_order_to_g2')) {
648
+ console.error('space does not have G2 in external_services or does not save order property. Returning!');
649
+ return;
650
+ }
651
+ let correspondingCart;
652
+ try {
653
+ const cartQuery = await space.carts.get({ query: [{ field: 'id', operator: '==', value: cartId }] });
654
+ if (!!cartQuery && cartQuery.length > 0)
655
+ correspondingCart = cartQuery[0].data();
656
+ }
657
+ catch (e) {
658
+ console.error('could not fetch corresponding cart from database: ', e.toString());
659
+ }
660
+ if (!!!correspondingCart) {
661
+ console.log("couldn't find cart! returning");
662
+ return;
663
+ }
664
+ correspondingCart.paid_at = creditNote.createdAt;
665
+ if (!!correspondingCart.processed_by) {
666
+ correspondingCart.processed_by = Object.assign(Object.assign({}, correspondingCart.processed_by), { date: creditNote.createdAt });
667
+ }
668
+ correspondingCart.items = correspondingCart.items
669
+ .map((i) => {
670
+ const sameInRefund = creditNote.items.find((refItem) => refItem.itemId === i.parent_product_id && refItem.variantId === i.sku);
671
+ if (!!!sameInRefund)
672
+ return;
673
+ i.qte = Number(sameInRefund.creditedQty) * -1;
674
+ return i;
675
+ })
676
+ .filter((i) => !!i);
677
+ correspondingCart.subtotal = creditNote.subtotal * -1;
678
+ correspondingCart.total = creditNote.total * -1;
679
+ correspondingCart.taxes = creditNote.taxes.map((t) => (Object.assign(Object.assign({}, t), { taxes: t.taxes.map((tax) => (Object.assign(Object.assign({}, tax), { amount: (tax.amount || 0) * -1 }))) })));
680
+ if (!!correspondingCart.subtotalWithoutPromotions) {
681
+ correspondingCart.subtotalWithoutPromotions = creditNote.subtotalWithoutPromotions * -1;
682
+ }
683
+ const currentCartPromos = (0, discount_1.getCartPromo)(Object.assign({}, correspondingCart)) || [];
684
+ correspondingCart.promo_after_taxes_amount = creditNote.promoAfterTaxesAmount;
685
+ correspondingCart.cart_promos_applied = (creditNote.promos || [])
686
+ .map((p) => {
687
+ const sameInCreditNote = currentCartPromos.find((cartPromo) => p.discountId == cartPromo.discount_id);
688
+ if (!!sameInCreditNote) {
689
+ if (sameInCreditNote.applies_to === Cart_1.CartPromoAppliesToEnum.TOTAL_AFTER_TAXES &&
690
+ creditNote.promoAfterTaxesAmount) {
691
+ sameInCreditNote.amount_removed = creditNote.promoAfterTaxesAmount;
692
+ }
693
+ else if (!p.unit.includes('percent')) {
694
+ sameInCreditNote.amount_removed = p.refundedAmount;
695
+ }
696
+ }
697
+ return sameInCreditNote;
698
+ })
699
+ .filter((p) => !!p);
700
+ let transformedG2Order = await (0, exports.transformAddioCartToG2Order)(correspondingCart, space, orgId, isTest, creditNote);
701
+ return transformedG2Order;
702
+ };
703
+ exports.transformCreditNoteToG2Order = transformCreditNoteToG2Order;
696
704
  //# sourceMappingURL=utils.js.map