addio-admin-sdk 1.7.89 → 1.7.90

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 (558) hide show
  1. package/.babelrc +17 -17
  2. package/.env.dev +14 -14
  3. package/.github/workflows/publish_coverage.yam_ +69 -69
  4. package/addio-sdk-doc.md +1473 -1473
  5. package/changelog.md +537 -537
  6. package/dist/Interfaces/Address/index.d.ts +21 -21
  7. package/dist/Interfaces/Address/index.js +16 -16
  8. package/dist/Interfaces/Algolia/index.d.ts +164 -164
  9. package/dist/Interfaces/Algolia/index.js +2 -2
  10. package/dist/Interfaces/Attachement/index.d.ts +5 -5
  11. package/dist/Interfaces/Attachement/index.js +2 -2
  12. package/dist/Interfaces/Attribute/index.d.ts +52 -52
  13. package/dist/Interfaces/Attribute/index.js +10 -10
  14. package/dist/Interfaces/BGJob/index.d.ts +56 -56
  15. package/dist/Interfaces/BGJob/index.js +25 -25
  16. package/dist/Interfaces/BaseClass/index.d.ts +8 -8
  17. package/dist/Interfaces/BaseClass/index.js +2 -2
  18. package/dist/Interfaces/Blog/IBlogArticle.d.ts +18 -18
  19. package/dist/Interfaces/Blog/IBlogArticle.js +2 -2
  20. package/dist/Interfaces/Blog/IBlogAuthor.d.ts +7 -7
  21. package/dist/Interfaces/Blog/IBlogAuthor.js +2 -2
  22. package/dist/Interfaces/Blog/IBlogCategory.d.ts +9 -9
  23. package/dist/Interfaces/Blog/IBlogCategory.js +2 -2
  24. package/dist/Interfaces/Blog/IBlogComment.d.ts +13 -13
  25. package/dist/Interfaces/Blog/IBlogComment.js +2 -2
  26. package/dist/Interfaces/Blog/IBlogKeywords.d.ts +9 -9
  27. package/dist/Interfaces/Blog/IBlogKeywords.js +2 -2
  28. package/dist/Interfaces/Booking/index.d.ts +74 -74
  29. package/dist/Interfaces/Booking/index.js +17 -17
  30. package/dist/Interfaces/Brand/index.d.ts +15 -15
  31. package/dist/Interfaces/Brand/index.js +2 -2
  32. package/dist/Interfaces/CMS/index.d.ts +25 -25
  33. package/dist/Interfaces/CMS/index.js +2 -2
  34. package/dist/Interfaces/Cart/IElavonPayload.d.ts +93 -93
  35. package/dist/Interfaces/Cart/IElavonPayload.js +17 -17
  36. package/dist/Interfaces/Cart/IPandaPayload.d.ts +64 -64
  37. package/dist/Interfaces/Cart/IPandaPayload.js +18 -18
  38. package/dist/Interfaces/Cart/IPaymentCard.d.ts +22 -22
  39. package/dist/Interfaces/Cart/IPaymentCard.js +44 -44
  40. package/dist/Interfaces/Cart/IPaypalPayload.d.ts +9 -9
  41. package/dist/Interfaces/Cart/IPaypalPayload.js +2 -2
  42. package/dist/Interfaces/Cart/IPaysafePayload.d.ts +72 -72
  43. package/dist/Interfaces/Cart/IPaysafePayload.js +2 -2
  44. package/dist/Interfaces/Cart/IStripePayload.d.ts +66 -66
  45. package/dist/Interfaces/Cart/IStripePayload.js +2 -2
  46. package/dist/Interfaces/Cart/index.d.ts +425 -425
  47. package/dist/Interfaces/Cart/index.js +192 -192
  48. package/dist/Interfaces/Catalogue/index.d.ts +68 -68
  49. package/dist/Interfaces/Catalogue/index.js +37 -37
  50. package/dist/Interfaces/Category/index.d.ts +33 -33
  51. package/dist/Interfaces/Category/index.js +2 -2
  52. package/dist/Interfaces/Chart/index.d.ts +11 -11
  53. package/dist/Interfaces/Chart/index.js +2 -2
  54. package/dist/Interfaces/Class/index.d.ts +8 -8
  55. package/dist/Interfaces/Class/index.js +2 -2
  56. package/dist/Interfaces/Consent/index.d.ts +6 -6
  57. package/dist/Interfaces/Consent/index.js +2 -2
  58. package/dist/Interfaces/Context/IContextProps.d.ts +4 -4
  59. package/dist/Interfaces/Context/IContextProps.js +2 -2
  60. package/dist/Interfaces/Context/IContextState.d.ts +15 -15
  61. package/dist/Interfaces/Context/IContextState.js +2 -2
  62. package/dist/Interfaces/Customer/ICustomerBadge.d.ts +2 -2
  63. package/dist/Interfaces/Customer/ICustomerBadge.js +2 -2
  64. package/dist/Interfaces/Customer/ICustomerRating.d.ts +10 -10
  65. package/dist/Interfaces/Customer/ICustomerRating.js +2 -2
  66. package/dist/Interfaces/Customer/IStoreCredit.d.ts +12 -12
  67. package/dist/Interfaces/Customer/IStoreCredit.js +2 -2
  68. package/dist/Interfaces/Customer/index.d.ts +97 -97
  69. package/dist/Interfaces/Customer/index.js +141 -141
  70. package/dist/Interfaces/Declination/index.d.ts +114 -114
  71. package/dist/Interfaces/Declination/index.js +60 -60
  72. package/dist/Interfaces/Document/index.d.ts +8 -8
  73. package/dist/Interfaces/Document/index.js +2 -2
  74. package/dist/Interfaces/Elastic/index.d.ts +89 -89
  75. package/dist/Interfaces/Elastic/index.js +2 -2
  76. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.d.ts +11 -11
  77. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.js +2 -2
  78. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.d.ts +15 -15
  79. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.js +2 -2
  80. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.d.ts +12 -12
  81. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.js +2 -2
  82. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.d.ts +36 -36
  83. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.js +2 -2
  84. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.d.ts +12 -12
  85. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.js +2 -2
  86. package/dist/Interfaces/Email/CustomGR/ITransportEmail.d.ts +12 -12
  87. package/dist/Interfaces/Email/CustomGR/ITransportEmail.js +2 -2
  88. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.d.ts +12 -12
  89. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.js +2 -2
  90. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.d.ts +16 -16
  91. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.js +2 -2
  92. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.d.ts +15 -15
  93. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.js +2 -2
  94. package/dist/Interfaces/Email/IAbandonnedCartEmail.d.ts +29 -29
  95. package/dist/Interfaces/Email/IAbandonnedCartEmail.js +2 -2
  96. package/dist/Interfaces/Email/IAccountConfirmationEmail.d.ts +22 -22
  97. package/dist/Interfaces/Email/IAccountConfirmationEmail.js +2 -2
  98. package/dist/Interfaces/Email/IApplicationEmail.d.ts +19 -19
  99. package/dist/Interfaces/Email/IApplicationEmail.js +2 -2
  100. package/dist/Interfaces/Email/IBackInStockEmail.d.ts +21 -21
  101. package/dist/Interfaces/Email/IBackInStockEmail.js +2 -2
  102. package/dist/Interfaces/Email/IContactEmail.d.ts +20 -20
  103. package/dist/Interfaces/Email/IContactEmail.js +2 -2
  104. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.d.ts +15 -15
  105. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.js +2 -2
  106. package/dist/Interfaces/Email/ICustomerBookingEmail.d.ts +14 -14
  107. package/dist/Interfaces/Email/ICustomerBookingEmail.js +2 -2
  108. package/dist/Interfaces/Email/IEmail.d.ts +20 -20
  109. package/dist/Interfaces/Email/IEmail.js +56 -56
  110. package/dist/Interfaces/Email/IOrderConfirmationEmail.d.ts +47 -47
  111. package/dist/Interfaces/Email/IOrderConfirmationEmail.js +2 -2
  112. package/dist/Interfaces/Email/IPasswordResetEmail.d.ts +17 -17
  113. package/dist/Interfaces/Email/IPasswordResetEmail.js +2 -2
  114. package/dist/Interfaces/Email/IPhotoShootEmail.d.ts +14 -14
  115. package/dist/Interfaces/Email/IPhotoShootEmail.js +2 -2
  116. package/dist/Interfaces/Email/IPickupConfirmation.d.ts +23 -23
  117. package/dist/Interfaces/Email/IPickupConfirmation.js +2 -2
  118. package/dist/Interfaces/Email/IShippingConfirmation.d.ts +23 -23
  119. package/dist/Interfaces/Email/IShippingConfirmation.js +2 -2
  120. package/dist/Interfaces/Email/IWelcomeEmail.d.ts +19 -19
  121. package/dist/Interfaces/Email/IWelcomeEmail.js +2 -2
  122. package/dist/Interfaces/ExportSchema/index.d.ts +7 -7
  123. package/dist/Interfaces/ExportSchema/index.js +2 -2
  124. package/dist/Interfaces/ExternalService/BaseExternalService.d.ts +12 -12
  125. package/dist/Interfaces/ExternalService/BaseExternalService.js +2 -2
  126. package/dist/Interfaces/ExternalService/ExternalProductsService.d.ts +4 -4
  127. package/dist/Interfaces/ExternalService/ExternalProductsService.js +2 -2
  128. package/dist/Interfaces/ExternalService/index.d.ts +9 -9
  129. package/dist/Interfaces/ExternalService/index.js +2 -2
  130. package/dist/Interfaces/FirstOrderTracking/index.d.ts +5 -5
  131. package/dist/Interfaces/FirstOrderTracking/index.js +2 -2
  132. package/dist/Interfaces/G2/index.d.ts +556 -556
  133. package/dist/Interfaces/G2/index.js +36 -36
  134. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.d.ts +20 -20
  135. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.js +2 -2
  136. package/dist/Interfaces/Indexed/Product/index.d.ts +97 -97
  137. package/dist/Interfaces/Indexed/Product/index.js +212 -212
  138. package/dist/Interfaces/Inventory/index.d.ts +19 -19
  139. package/dist/Interfaces/Inventory/index.js +8 -8
  140. package/dist/Interfaces/Invoice/index.d.ts +4 -4
  141. package/dist/Interfaces/Invoice/index.js +2 -2
  142. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.d.ts +3 -3
  143. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.js +2 -2
  144. package/dist/Interfaces/MarketplacePublication/index.d.ts +23 -23
  145. package/dist/Interfaces/MarketplacePublication/index.js +22 -22
  146. package/dist/Interfaces/Menu/index.d.ts +23 -23
  147. package/dist/Interfaces/Menu/index.js +10 -10
  148. package/dist/Interfaces/Note/index.d.ts +10 -10
  149. package/dist/Interfaces/Note/index.js +7 -7
  150. package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
  151. package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
  152. package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
  153. package/dist/Interfaces/Operations/IUpdate.js +2 -2
  154. package/dist/Interfaces/Order/index.d.ts +4 -4
  155. package/dist/Interfaces/Order/index.js +2 -2
  156. package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
  157. package/dist/Interfaces/Org/IRelUser.js +2 -2
  158. package/dist/Interfaces/Org/index.d.ts +29 -29
  159. package/dist/Interfaces/Org/index.js +12 -12
  160. package/dist/Interfaces/Payment/index.d.ts +13 -13
  161. package/dist/Interfaces/Payment/index.js +2 -2
  162. package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
  163. package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
  164. package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
  165. package/dist/Interfaces/Product/IImportProduct.js +791 -791
  166. package/dist/Interfaces/Product/IInventoryItem.d.ts +84 -84
  167. package/dist/Interfaces/Product/IInventoryItem.js +36 -36
  168. package/dist/Interfaces/Product/IPricing.d.ts +177 -177
  169. package/dist/Interfaces/Product/IPricing.js +174 -174
  170. package/dist/Interfaces/Product/index.d.ts +127 -127
  171. package/dist/Interfaces/Product/index.js +56 -56
  172. package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
  173. package/dist/Interfaces/ProductAttribute/index.js +2 -2
  174. package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
  175. package/dist/Interfaces/PromiseToPurchase/BankType.js +41 -41
  176. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
  177. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
  178. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
  179. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
  180. package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
  181. package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
  182. package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
  183. package/dist/Interfaces/PurchaseOrder/index.js +2 -2
  184. package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
  185. package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
  186. package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
  187. package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
  188. package/dist/Interfaces/Query/IProductQueryOptions.d.ts +16 -16
  189. package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
  190. package/dist/Interfaces/Quote/index.d.ts +5 -5
  191. package/dist/Interfaces/Quote/index.js +2 -2
  192. package/dist/Interfaces/Refunds/index.d.ts +106 -106
  193. package/dist/Interfaces/Refunds/index.js +2 -2
  194. package/dist/Interfaces/Rules/IDiscountRule.d.ts +137 -137
  195. package/dist/Interfaces/Rules/IDiscountRule.js +95 -95
  196. package/dist/Interfaces/Schedule/index.d.ts +48 -48
  197. package/dist/Interfaces/Schedule/index.js +2 -2
  198. package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
  199. package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
  200. package/dist/Interfaces/Services/IService.d.ts +12 -12
  201. package/dist/Interfaces/Services/IService.js +2 -2
  202. package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
  203. package/dist/Interfaces/Services/IServiceSecret.js +2 -2
  204. package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
  205. package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
  206. package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
  207. package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
  208. package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
  209. package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
  210. package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
  211. package/dist/Interfaces/Shipping/Shiptime/order.js +48 -48
  212. package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
  213. package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
  214. package/dist/Interfaces/Slider/GR.d.ts +114 -114
  215. package/dist/Interfaces/Slider/GR.js +271 -271
  216. package/dist/Interfaces/Slider/index.d.ts +30 -30
  217. package/dist/Interfaces/Slider/index.js +2 -2
  218. package/dist/Interfaces/Space/IExternalService.d.ts +52 -52
  219. package/dist/Interfaces/Space/IExternalService.js +43 -43
  220. package/dist/Interfaces/Space/IMember.d.ts +16 -16
  221. package/dist/Interfaces/Space/IMember.js +9 -9
  222. package/dist/Interfaces/Space/index.d.ts +390 -390
  223. package/dist/Interfaces/Space/index.js +160 -160
  224. package/dist/Interfaces/Specials/gr.d.ts +61 -61
  225. package/dist/Interfaces/Specials/gr.js +2 -2
  226. package/dist/Interfaces/StockNotification/index.d.ts +7 -7
  227. package/dist/Interfaces/StockNotification/index.js +2 -2
  228. package/dist/Interfaces/Store/index.d.ts +62 -62
  229. package/dist/Interfaces/Store/index.js +27 -27
  230. package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
  231. package/dist/Interfaces/Supplier/ICommand.js +2 -2
  232. package/dist/Interfaces/Supplier/index.d.ts +36 -36
  233. package/dist/Interfaces/Supplier/index.js +24 -24
  234. package/dist/Interfaces/TCG/index.d.ts +110 -110
  235. package/dist/Interfaces/TCG/index.js +27 -27
  236. package/dist/Interfaces/Tag/index.d.ts +18 -18
  237. package/dist/Interfaces/Tag/index.js +2 -2
  238. package/dist/Interfaces/Tax/index.d.ts +13 -13
  239. package/dist/Interfaces/Tax/index.js +2 -2
  240. package/dist/Interfaces/TransferRequest/index.d.ts +103 -103
  241. package/dist/Interfaces/TransferRequest/index.js +43 -43
  242. package/dist/Interfaces/Translation/index.d.ts +8 -8
  243. package/dist/Interfaces/Translation/index.js +5 -5
  244. package/dist/Interfaces/Update/index.d.ts +10 -10
  245. package/dist/Interfaces/Update/index.js +2 -2
  246. package/dist/Interfaces/User/IUser.d.ts +65 -65
  247. package/dist/Interfaces/User/IUser.js +8 -8
  248. package/dist/Interfaces/Version/index.d.ts +11 -11
  249. package/dist/Interfaces/Version/index.js +2 -2
  250. package/dist/Interfaces/Wishlist/index.d.ts +7 -7
  251. package/dist/Interfaces/Wishlist/index.js +2 -2
  252. package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
  253. package/dist/constants/Interfaces/IBaseApi.js +2 -2
  254. package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
  255. package/dist/constants/Interfaces/IEndpointResult.js +2 -2
  256. package/dist/constants/enums.d.ts +6 -6
  257. package/dist/constants/enums.js +10 -10
  258. package/dist/constants/services.d.ts +2 -2
  259. package/dist/constants/services.js +111 -111
  260. package/dist/constants/version.d.ts +2 -2
  261. package/dist/constants/version.js +5 -5
  262. package/dist/index.d.ts +32 -32
  263. package/dist/index.js +242 -242
  264. package/dist/lib/Attribute/index.d.ts +14 -14
  265. package/dist/lib/Attribute/index.js +143 -143
  266. package/dist/lib/BGJob/index.d.ts +9 -9
  267. package/dist/lib/BGJob/index.js +212 -212
  268. package/dist/lib/BackgroundWorker/index.d.ts +34 -34
  269. package/dist/lib/BackgroundWorker/index.js +59 -59
  270. package/dist/lib/Blog/BlogArticle.d.ts +5 -5
  271. package/dist/lib/Blog/BlogArticle.js +10 -10
  272. package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
  273. package/dist/lib/Blog/BlogAuthor.js +10 -10
  274. package/dist/lib/Blog/BlogCategory.d.ts +5 -5
  275. package/dist/lib/Blog/BlogCategory.js +10 -10
  276. package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
  277. package/dist/lib/Blog/BlogKeyword.js +10 -10
  278. package/dist/lib/Booking/index.d.ts +70 -70
  279. package/dist/lib/Booking/index.js +576 -576
  280. package/dist/lib/Brand/index.d.ts +17 -17
  281. package/dist/lib/Brand/index.js +113 -113
  282. package/dist/lib/Cart/index.d.ts +206 -206
  283. package/dist/lib/Cart/index.js +3165 -3164
  284. package/dist/lib/Cart/index.js.map +1 -1
  285. package/dist/lib/Catalogue/index.d.ts +9 -9
  286. package/dist/lib/Catalogue/index.js +69 -69
  287. package/dist/lib/Category/index.d.ts +27 -27
  288. package/dist/lib/Category/index.js +190 -190
  289. package/dist/lib/Class/index.d.ts +12 -12
  290. package/dist/lib/Class/index.js +58 -58
  291. package/dist/lib/Consent/index.d.ts +4 -4
  292. package/dist/lib/Consent/index.js +29 -29
  293. package/dist/lib/Customer/index.d.ts +11 -11
  294. package/dist/lib/Customer/index.js +68 -68
  295. package/dist/lib/Declination/index.d.ts +9 -9
  296. package/dist/lib/Declination/index.js +24 -24
  297. package/dist/lib/Discount/index.d.ts +18 -18
  298. package/dist/lib/Discount/index.js +470 -470
  299. package/dist/lib/ElasticSearch/index.d.ts +8 -8
  300. package/dist/lib/ElasticSearch/index.js +45 -45
  301. package/dist/lib/Elavon/index.d.ts +18 -18
  302. package/dist/lib/Elavon/index.js +130 -130
  303. package/dist/lib/Email/AbandonedCartEmail.d.ts +8 -8
  304. package/dist/lib/Email/AbandonedCartEmail.js +16 -16
  305. package/dist/lib/Email/AccountConfirmationEmail.d.ts +11 -11
  306. package/dist/lib/Email/AccountConfirmationEmail.js +22 -22
  307. package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +8 -8
  308. package/dist/lib/Email/AdminOrderConfirmationEmail.js +16 -16
  309. package/dist/lib/Email/ApplicationEmail.d.ts +8 -8
  310. package/dist/lib/Email/ApplicationEmail.js +16 -16
  311. package/dist/lib/Email/BackInStockEmail.d.ts +8 -8
  312. package/dist/lib/Email/BackInStockEmail.js +16 -16
  313. package/dist/lib/Email/ContactEmail.d.ts +8 -8
  314. package/dist/lib/Email/ContactEmail.js +16 -16
  315. package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +8 -8
  316. package/dist/lib/Email/CustomerBookingAdminEmail.js +16 -16
  317. package/dist/lib/Email/CustomerBookingEmail.d.ts +8 -8
  318. package/dist/lib/Email/CustomerBookingEmail.js +16 -16
  319. package/dist/lib/Email/OrderConfirmationEmail.d.ts +8 -8
  320. package/dist/lib/Email/OrderConfirmationEmail.js +16 -16
  321. package/dist/lib/Email/OrderDenounciationEmail.d.ts +8 -8
  322. package/dist/lib/Email/OrderDenounciationEmail.js +16 -16
  323. package/dist/lib/Email/OrderSampleEmail.d.ts +8 -8
  324. package/dist/lib/Email/OrderSampleEmail.js +16 -16
  325. package/dist/lib/Email/OtherTypeEmails.d.ts +8 -8
  326. package/dist/lib/Email/OtherTypeEmails.js +19 -19
  327. package/dist/lib/Email/PasswordResetEmail.d.ts +8 -8
  328. package/dist/lib/Email/PasswordResetEmail.js +16 -16
  329. package/dist/lib/Email/PhotoShootEmail.d.ts +8 -8
  330. package/dist/lib/Email/PhotoShootEmail.js +16 -16
  331. package/dist/lib/Email/PickUpConfirmation.d.ts +8 -8
  332. package/dist/lib/Email/PickUpConfirmation.js +16 -16
  333. package/dist/lib/Email/ShippingConfirmation.d.ts +8 -8
  334. package/dist/lib/Email/ShippingConfirmation.js +16 -16
  335. package/dist/lib/Email/WelcomeEmail.d.ts +8 -8
  336. package/dist/lib/Email/WelcomeEmail.js +16 -16
  337. package/dist/lib/Email/index.d.ts +8 -8
  338. package/dist/lib/Email/index.js +23 -23
  339. package/dist/lib/ExternalService/Ebay.d.ts +62 -62
  340. package/dist/lib/ExternalService/Ebay.js +102 -102
  341. package/dist/lib/ExternalService/index.d.ts +5 -5
  342. package/dist/lib/ExternalService/index.js +10 -10
  343. package/dist/lib/FirstOrderTracking/index.d.ts +5 -5
  344. package/dist/lib/FirstOrderTracking/index.js +10 -10
  345. package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
  346. package/dist/lib/Indexed/IndexedCart.js +86 -86
  347. package/dist/lib/Indexed/Product.d.ts +17 -17
  348. package/dist/lib/Indexed/Product.js +48 -48
  349. package/dist/lib/Inventory/index.d.ts +49 -49
  350. package/dist/lib/Inventory/index.js +314 -314
  351. package/dist/lib/Invoice/index.d.ts +5 -5
  352. package/dist/lib/Invoice/index.js +10 -10
  353. package/dist/lib/MarketplacePublication/index.d.ts +9 -9
  354. package/dist/lib/MarketplacePublication/index.js +118 -118
  355. package/dist/lib/Menu/index.d.ts +11 -11
  356. package/dist/lib/Menu/index.js +105 -105
  357. package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
  358. package/dist/lib/MongoDB/BaseAPI.js +200 -200
  359. package/dist/lib/Note/index.d.ts +4 -4
  360. package/dist/lib/Note/index.js +6 -6
  361. package/dist/lib/Order/index.d.ts +7 -7
  362. package/dist/lib/Order/index.js +33 -33
  363. package/dist/lib/Org/index.d.ts +27 -27
  364. package/dist/lib/Org/index.js +175 -175
  365. package/dist/lib/PandaPay/index.d.ts +16 -16
  366. package/dist/lib/PandaPay/index.js +170 -170
  367. package/dist/lib/Paysafe/index.d.ts +11 -11
  368. package/dist/lib/Paysafe/index.js +40 -40
  369. package/dist/lib/Product/index.d.ts +154 -154
  370. package/dist/lib/Product/index.js +793 -793
  371. package/dist/lib/ProductAttribute/index.d.ts +15 -15
  372. package/dist/lib/ProductAttribute/index.js +45 -45
  373. package/dist/lib/PromiseToPurchase/index.d.ts +37 -37
  374. package/dist/lib/PromiseToPurchase/index.js +264 -264
  375. package/dist/lib/PurchaseOrder/index.d.ts +9 -9
  376. package/dist/lib/PurchaseOrder/index.js +16 -16
  377. package/dist/lib/Schedule/index.d.ts +5 -5
  378. package/dist/lib/Schedule/index.js +12 -12
  379. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  380. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  381. package/dist/lib/Service/index.d.ts +5 -5
  382. package/dist/lib/Service/index.js +13 -13
  383. package/dist/lib/Shipment/index.d.ts +28 -28
  384. package/dist/lib/Shipment/index.js +357 -357
  385. package/dist/lib/Slider/index.d.ts +16 -16
  386. package/dist/lib/Slider/index.js +113 -113
  387. package/dist/lib/Space/index.d.ts +883 -883
  388. package/dist/lib/Space/index.js +5134 -5134
  389. package/dist/lib/StockNotification/index.d.ts +4 -4
  390. package/dist/lib/StockNotification/index.js +6 -6
  391. package/dist/lib/Store/index.d.ts +5 -5
  392. package/dist/lib/Store/index.js +12 -12
  393. package/dist/lib/Supplier/Command.d.ts +5 -5
  394. package/dist/lib/Supplier/Command.js +10 -10
  395. package/dist/lib/Supplier/index.d.ts +25 -25
  396. package/dist/lib/Supplier/index.js +22 -22
  397. package/dist/lib/Tags/index.d.ts +6 -6
  398. package/dist/lib/Tags/index.js +21 -21
  399. package/dist/lib/Tax/index.d.ts +8 -8
  400. package/dist/lib/Tax/index.js +54 -54
  401. package/dist/lib/TransferRequest/index.d.ts +112 -112
  402. package/dist/lib/TransferRequest/index.js +794 -794
  403. package/dist/lib/Update/index.d.ts +10 -10
  404. package/dist/lib/Update/index.js +22 -22
  405. package/dist/lib/User/index.d.ts +35 -35
  406. package/dist/lib/User/index.js +248 -248
  407. package/dist/lib/Wishlist/index.d.ts +5 -5
  408. package/dist/lib/Wishlist/index.js +10 -10
  409. package/dist/lib/base.d.ts +14 -14
  410. package/dist/lib/base.js +62 -62
  411. package/dist/lib/baseService.d.ts +17 -17
  412. package/dist/lib/baseService.js +43 -43
  413. package/dist/rules/GR/constants/data.d.ts +26 -26
  414. package/dist/rules/GR/constants/data.js +55 -55
  415. package/dist/rules/GR/constants/products.d.ts +8 -8
  416. package/dist/rules/GR/constants/products.js +234 -234
  417. package/dist/rules/GR/interfaces/cart.d.ts +84 -84
  418. package/dist/rules/GR/interfaces/cart.js +41 -41
  419. package/dist/rules/GR/interfaces/data.d.ts +97 -97
  420. package/dist/rules/GR/interfaces/data.js +104 -104
  421. package/dist/rules/GR/interfaces/products.d.ts +61 -61
  422. package/dist/rules/GR/interfaces/products.js +10 -10
  423. package/dist/rules/GR/utils/cart.d.ts +53 -53
  424. package/dist/rules/GR/utils/cart.js +637 -637
  425. package/dist/rules/GR/utils/data.d.ts +3 -3
  426. package/dist/rules/GR/utils/data.js +25 -25
  427. package/dist/rules/GR/utils/expedition.d.ts +71 -71
  428. package/dist/rules/GR/utils/expedition.js +1542 -1542
  429. package/dist/rules/GR/utils/g2.d.ts +176 -176
  430. package/dist/rules/GR/utils/g2.js +849 -849
  431. package/dist/rules/GR/utils/invoices.d.ts +24 -24
  432. package/dist/rules/GR/utils/invoices.js +174 -174
  433. package/dist/rules/GR/utils/products.d.ts +104 -104
  434. package/dist/rules/GR/utils/products.js +984 -984
  435. package/dist/rules/GR/utils/upsells.d.ts +79 -79
  436. package/dist/rules/GR/utils/upsells.js +183 -183
  437. package/dist/services/database/BaseProvider.d.ts +29 -29
  438. package/dist/services/database/BaseProvider.js +28 -28
  439. package/dist/services/database/BatchUtils.d.ts +14 -14
  440. package/dist/services/database/BatchUtils.js +43 -43
  441. package/dist/services/database/Config.d.ts +2 -2
  442. package/dist/services/database/Config.js +5 -5
  443. package/dist/services/database/DatabaseService.d.ts +41 -41
  444. package/dist/services/database/DatabaseService.js +152 -152
  445. package/dist/services/database/FirebaseProvider.d.ts +17 -17
  446. package/dist/services/database/FirebaseProvider.js +218 -218
  447. package/dist/services/database/NotFirebaseProvider.d.ts +35 -35
  448. package/dist/services/database/NotFirebaseProvider.js +243 -243
  449. package/dist/services/g2/G2OrderSlip.d.ts +42 -42
  450. package/dist/services/g2/G2OrderSlip.js +210 -210
  451. package/dist/services/g2/utils.d.ts +9 -9
  452. package/dist/services/g2/utils.js +703 -703
  453. package/dist/services/logs/index.d.ts +20 -20
  454. package/dist/services/logs/index.js +61 -61
  455. package/dist/services/products/BaseClass.d.ts +50 -50
  456. package/dist/services/products/BaseClass.js +64 -64
  457. package/dist/services/products/TCGService.d.ts +29 -29
  458. package/dist/services/products/TCGService.js +499 -499
  459. package/dist/services/products/utils.d.ts +9 -9
  460. package/dist/services/products/utils.js +94 -94
  461. package/dist/utils/algolia.d.ts +6 -6
  462. package/dist/utils/algolia.js +21 -21
  463. package/dist/utils/anonymisation.d.ts +30 -30
  464. package/dist/utils/anonymisation.js +250 -250
  465. package/dist/utils/array.d.ts +5 -5
  466. package/dist/utils/array.js +14 -14
  467. package/dist/utils/aws.d.ts +14 -14
  468. package/dist/utils/aws.js +126 -126
  469. package/dist/utils/booking.d.ts +22 -22
  470. package/dist/utils/booking.js +118 -118
  471. package/dist/utils/cart.d.ts +134 -134
  472. package/dist/utils/cart.js +862 -862
  473. package/dist/utils/categories.d.ts +2 -2
  474. package/dist/utils/categories.js +54 -54
  475. package/dist/utils/cmv.d.ts +10 -10
  476. package/dist/utils/cmv.js +107 -107
  477. package/dist/utils/console.d.ts +6 -6
  478. package/dist/utils/console.js +59 -59
  479. package/dist/utils/context.d.ts +20 -20
  480. package/dist/utils/context.js +61 -61
  481. package/dist/utils/currency.d.ts +6 -6
  482. package/dist/utils/currency.js +61 -61
  483. package/dist/utils/data.d.ts +31 -31
  484. package/dist/utils/data.js +294 -294
  485. package/dist/utils/date.d.ts +1 -1
  486. package/dist/utils/date.js +16 -16
  487. package/dist/utils/dimensions.d.ts +3 -3
  488. package/dist/utils/dimensions.js +16 -16
  489. package/dist/utils/discount.d.ts +46 -46
  490. package/dist/utils/discount.js +934 -934
  491. package/dist/utils/errors.d.ts +113 -113
  492. package/dist/utils/errors.js +113 -113
  493. package/dist/utils/file-admin.d.ts +8 -8
  494. package/dist/utils/file-admin.js +38 -38
  495. package/dist/utils/file.d.ts +38 -38
  496. package/dist/utils/file.js +200 -200
  497. package/dist/utils/firebase-admin.d.ts +2 -2
  498. package/dist/utils/firebase-admin.js +61 -61
  499. package/dist/utils/firebase.d.ts +41 -41
  500. package/dist/utils/firebase.js +131 -131
  501. package/dist/utils/import.d.ts +1 -1
  502. package/dist/utils/import.js +21 -21
  503. package/dist/utils/inventories.d.ts +49 -49
  504. package/dist/utils/inventories.js +392 -392
  505. package/dist/utils/locale.d.ts +15 -15
  506. package/dist/utils/locale.js +78 -78
  507. package/dist/utils/locale.js.map +1 -1
  508. package/dist/utils/mailchimp.d.ts +58 -58
  509. package/dist/utils/mailchimp.js +495 -495
  510. package/dist/utils/mathUtils.d.ts +17 -17
  511. package/dist/utils/mathUtils.js +315 -315
  512. package/dist/utils/mongodb.d.ts +1 -1
  513. package/dist/utils/mongodb.js +22 -22
  514. package/dist/utils/object.d.ts +13 -13
  515. package/dist/utils/object.js +115 -115
  516. package/dist/utils/payment.d.ts +10 -10
  517. package/dist/utils/payment.js +23 -23
  518. package/dist/utils/products.d.ts +32 -32
  519. package/dist/utils/products.js +186 -186
  520. package/dist/utils/promiseToPurchase.d.ts +56 -56
  521. package/dist/utils/promiseToPurchase.js +195 -195
  522. package/dist/utils/prosprsearch.d.ts +26 -26
  523. package/dist/utils/prosprsearch.js +182 -182
  524. package/dist/utils/refunds.d.ts +2 -2
  525. package/dist/utils/refunds.js +21 -21
  526. package/dist/utils/sdc.d.ts +10 -10
  527. package/dist/utils/sdc.js +1302 -1302
  528. package/dist/utils/searchIndexes.d.ts +21 -21
  529. package/dist/utils/searchIndexes.js +210 -210
  530. package/dist/utils/services.d.ts +42 -42
  531. package/dist/utils/services.js +409 -409
  532. package/dist/utils/shipment.d.ts +110 -110
  533. package/dist/utils/shipment.js +345 -345
  534. package/dist/utils/simpletexting.d.ts +2 -2
  535. package/dist/utils/simpletexting.js +45 -45
  536. package/dist/utils/sliders.d.ts +4 -4
  537. package/dist/utils/sliders.js +24 -24
  538. package/dist/utils/string.d.ts +16 -16
  539. package/dist/utils/string.js +191 -191
  540. package/dist/utils/tcgService.d.ts +2 -2
  541. package/dist/utils/tcgService.js +8 -8
  542. package/dist/utils/tools.d.ts +1 -1
  543. package/dist/utils/tools.js +9 -9
  544. package/dist/utils/transferRequests.d.ts +19 -19
  545. package/dist/utils/transferRequests.js +43 -43
  546. package/dist/utils/update.d.ts +7 -7
  547. package/dist/utils/update.js +125 -125
  548. package/dist/utils/weight.d.ts +3 -3
  549. package/dist/utils/weight.js +16 -16
  550. package/dist/utils/zones.d.ts +11 -11
  551. package/dist/utils/zones.js +218 -218
  552. package/package.json +110 -110
  553. package/publish.sh +143 -143
  554. package/readme.md +182 -182
  555. package/.env +0 -15
  556. package/dist/lib/Queue/index.d.ts +0 -40
  557. package/dist/lib/Queue/index.js +0 -255
  558. package/dist/lib/Queue/index.js.map +0 -1
@@ -1,704 +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
- 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;
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;
704
704
  //# sourceMappingURL=utils.js.map