addio-admin-sdk 1.7.170 → 1.7.171

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 (584) hide show
  1. package/.babelrc +17 -17
  2. package/.env.dev +14 -14
  3. package/.github/workflows/run_unit_test.yaml +48 -48
  4. package/addio-sdk-doc.md +1473 -1473
  5. package/changelog.md +573 -573
  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 +182 -182
  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 +53 -53
  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/Buylist/index.d.ts +17 -0
  33. package/dist/Interfaces/Buylist/index.js +3 -0
  34. package/dist/Interfaces/Buylist/index.js.map +1 -0
  35. package/dist/Interfaces/CMS/index.d.ts +28 -28
  36. package/dist/Interfaces/CMS/index.js +5 -5
  37. package/dist/Interfaces/Cart/IElavonPayload.d.ts +93 -93
  38. package/dist/Interfaces/Cart/IElavonPayload.js +17 -17
  39. package/dist/Interfaces/Cart/IMarketPayload.d.ts +12 -12
  40. package/dist/Interfaces/Cart/IMarketPayload.js +2 -2
  41. package/dist/Interfaces/Cart/IPandaPayload.d.ts +64 -64
  42. package/dist/Interfaces/Cart/IPandaPayload.js +18 -18
  43. package/dist/Interfaces/Cart/IPaymentCard.d.ts +22 -22
  44. package/dist/Interfaces/Cart/IPaymentCard.js +44 -44
  45. package/dist/Interfaces/Cart/IPaypalPayload.d.ts +9 -9
  46. package/dist/Interfaces/Cart/IPaypalPayload.js +2 -2
  47. package/dist/Interfaces/Cart/IPaysafePayload.d.ts +72 -72
  48. package/dist/Interfaces/Cart/IPaysafePayload.js +2 -2
  49. package/dist/Interfaces/Cart/IStripePayload.d.ts +66 -66
  50. package/dist/Interfaces/Cart/IStripePayload.js +2 -2
  51. package/dist/Interfaces/Cart/index.d.ts +451 -451
  52. package/dist/Interfaces/Cart/index.js +216 -216
  53. package/dist/Interfaces/CartReservedQuantities/index.d.ts +10 -10
  54. package/dist/Interfaces/CartReservedQuantities/index.js +2 -2
  55. package/dist/Interfaces/CashDrawers/index.d.ts +38 -38
  56. package/dist/Interfaces/CashDrawers/index.js +19 -19
  57. package/dist/Interfaces/Catalogue/index.d.ts +68 -68
  58. package/dist/Interfaces/Catalogue/index.js +37 -37
  59. package/dist/Interfaces/Category/index.d.ts +33 -33
  60. package/dist/Interfaces/Category/index.js +2 -2
  61. package/dist/Interfaces/Chart/index.d.ts +11 -11
  62. package/dist/Interfaces/Chart/index.js +2 -2
  63. package/dist/Interfaces/Class/index.d.ts +8 -8
  64. package/dist/Interfaces/Class/index.js +2 -2
  65. package/dist/Interfaces/Consent/index.d.ts +6 -6
  66. package/dist/Interfaces/Consent/index.js +2 -2
  67. package/dist/Interfaces/Context/IContextProps.d.ts +4 -4
  68. package/dist/Interfaces/Context/IContextProps.js +2 -2
  69. package/dist/Interfaces/Context/IContextState.d.ts +15 -15
  70. package/dist/Interfaces/Context/IContextState.js +2 -2
  71. package/dist/Interfaces/Customer/ICustomerBadge.d.ts +2 -2
  72. package/dist/Interfaces/Customer/ICustomerBadge.js +2 -2
  73. package/dist/Interfaces/Customer/ICustomerRating.d.ts +10 -10
  74. package/dist/Interfaces/Customer/ICustomerRating.js +2 -2
  75. package/dist/Interfaces/Customer/IStoreCredit.d.ts +13 -13
  76. package/dist/Interfaces/Customer/IStoreCredit.js +2 -2
  77. package/dist/Interfaces/Customer/index.d.ts +104 -104
  78. package/dist/Interfaces/Customer/index.js +148 -148
  79. package/dist/Interfaces/Declination/index.d.ts +117 -117
  80. package/dist/Interfaces/Declination/index.js +66 -66
  81. package/dist/Interfaces/Document/index.d.ts +8 -8
  82. package/dist/Interfaces/Document/index.js +2 -2
  83. package/dist/Interfaces/Elastic/index.d.ts +89 -89
  84. package/dist/Interfaces/Elastic/index.js +2 -2
  85. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.d.ts +11 -11
  86. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.js +2 -2
  87. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.d.ts +15 -15
  88. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.js +2 -2
  89. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.d.ts +12 -12
  90. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.js +2 -2
  91. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.d.ts +36 -36
  92. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.js +2 -2
  93. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.d.ts +12 -12
  94. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.js +2 -2
  95. package/dist/Interfaces/Email/CustomGR/ITransportEmail.d.ts +12 -12
  96. package/dist/Interfaces/Email/CustomGR/ITransportEmail.js +2 -2
  97. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.d.ts +12 -12
  98. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.js +2 -2
  99. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.d.ts +16 -16
  100. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.js +2 -2
  101. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.d.ts +15 -15
  102. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.js +2 -2
  103. package/dist/Interfaces/Email/IAbandonnedCartEmail.d.ts +29 -29
  104. package/dist/Interfaces/Email/IAbandonnedCartEmail.js +2 -2
  105. package/dist/Interfaces/Email/IAccountConfirmationEmail.d.ts +22 -22
  106. package/dist/Interfaces/Email/IAccountConfirmationEmail.js +2 -2
  107. package/dist/Interfaces/Email/IApplicationEmail.d.ts +19 -19
  108. package/dist/Interfaces/Email/IApplicationEmail.js +2 -2
  109. package/dist/Interfaces/Email/IBackInStockEmail.d.ts +21 -21
  110. package/dist/Interfaces/Email/IBackInStockEmail.js +2 -2
  111. package/dist/Interfaces/Email/IContactEmail.d.ts +20 -20
  112. package/dist/Interfaces/Email/IContactEmail.js +2 -2
  113. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.d.ts +15 -15
  114. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.js +2 -2
  115. package/dist/Interfaces/Email/ICustomerBookingEmail.d.ts +14 -14
  116. package/dist/Interfaces/Email/ICustomerBookingEmail.js +2 -2
  117. package/dist/Interfaces/Email/IEmail.d.ts +20 -20
  118. package/dist/Interfaces/Email/IEmail.js +60 -60
  119. package/dist/Interfaces/Email/IOrderConfirmationEmail.d.ts +47 -47
  120. package/dist/Interfaces/Email/IOrderConfirmationEmail.js +2 -2
  121. package/dist/Interfaces/Email/IPasswordResetEmail.d.ts +17 -17
  122. package/dist/Interfaces/Email/IPasswordResetEmail.js +2 -2
  123. package/dist/Interfaces/Email/IPhotoShootEmail.d.ts +14 -14
  124. package/dist/Interfaces/Email/IPhotoShootEmail.js +2 -2
  125. package/dist/Interfaces/Email/IPickupConfirmation.d.ts +23 -23
  126. package/dist/Interfaces/Email/IPickupConfirmation.js +2 -2
  127. package/dist/Interfaces/Email/IShippingConfirmation.d.ts +23 -23
  128. package/dist/Interfaces/Email/IShippingConfirmation.js +2 -2
  129. package/dist/Interfaces/Email/IWelcomeEmail.d.ts +19 -19
  130. package/dist/Interfaces/Email/IWelcomeEmail.js +2 -2
  131. package/dist/Interfaces/ExportSchema/index.d.ts +7 -7
  132. package/dist/Interfaces/ExportSchema/index.js +2 -2
  133. package/dist/Interfaces/ExternalService/BaseExternalService.d.ts +12 -12
  134. package/dist/Interfaces/ExternalService/BaseExternalService.js +2 -2
  135. package/dist/Interfaces/ExternalService/ExternalProductsService.d.ts +4 -4
  136. package/dist/Interfaces/ExternalService/ExternalProductsService.js +2 -2
  137. package/dist/Interfaces/ExternalService/index.d.ts +9 -9
  138. package/dist/Interfaces/ExternalService/index.js +2 -2
  139. package/dist/Interfaces/FirstOrderTracking/index.d.ts +5 -5
  140. package/dist/Interfaces/FirstOrderTracking/index.js +2 -2
  141. package/dist/Interfaces/G2/index.d.ts +556 -556
  142. package/dist/Interfaces/G2/index.js +38 -38
  143. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.d.ts +20 -20
  144. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.js +2 -2
  145. package/dist/Interfaces/Indexed/Product/index.d.ts +105 -105
  146. package/dist/Interfaces/Indexed/Product/index.js +253 -253
  147. package/dist/Interfaces/Inventory/index.d.ts +19 -19
  148. package/dist/Interfaces/Inventory/index.js +8 -8
  149. package/dist/Interfaces/Invoice/index.d.ts +4 -4
  150. package/dist/Interfaces/Invoice/index.js +2 -2
  151. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.d.ts +3 -3
  152. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.js +2 -2
  153. package/dist/Interfaces/MarketplacePublication/index.d.ts +23 -23
  154. package/dist/Interfaces/MarketplacePublication/index.js +22 -22
  155. package/dist/Interfaces/Menu/index.d.ts +40 -40
  156. package/dist/Interfaces/Menu/index.js +16 -16
  157. package/dist/Interfaces/Note/index.d.ts +10 -10
  158. package/dist/Interfaces/Note/index.js +7 -7
  159. package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
  160. package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
  161. package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
  162. package/dist/Interfaces/Operations/IUpdate.js +2 -2
  163. package/dist/Interfaces/Order/index.d.ts +4 -4
  164. package/dist/Interfaces/Order/index.js +2 -2
  165. package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
  166. package/dist/Interfaces/Org/IRelUser.js +2 -2
  167. package/dist/Interfaces/Org/index.d.ts +29 -29
  168. package/dist/Interfaces/Org/index.js +12 -12
  169. package/dist/Interfaces/Payment/index.d.ts +26 -26
  170. package/dist/Interfaces/Payment/index.js +14 -14
  171. package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
  172. package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
  173. package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
  174. package/dist/Interfaces/Product/IImportProduct.js +882 -882
  175. package/dist/Interfaces/Product/IInventoryItem.d.ts +74 -74
  176. package/dist/Interfaces/Product/IInventoryItem.js +38 -38
  177. package/dist/Interfaces/Product/IPricing.d.ts +177 -177
  178. package/dist/Interfaces/Product/IPricing.js +180 -180
  179. package/dist/Interfaces/Product/index.d.ts +137 -137
  180. package/dist/Interfaces/Product/index.js +64 -64
  181. package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
  182. package/dist/Interfaces/ProductAttribute/index.js +2 -2
  183. package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
  184. package/dist/Interfaces/PromiseToPurchase/BankType.js +41 -41
  185. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
  186. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
  187. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
  188. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
  189. package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
  190. package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
  191. package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
  192. package/dist/Interfaces/PurchaseOrder/index.js +2 -2
  193. package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
  194. package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
  195. package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
  196. package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
  197. package/dist/Interfaces/Query/IProductQueryOptions.d.ts +16 -16
  198. package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
  199. package/dist/Interfaces/Quote/index.d.ts +5 -5
  200. package/dist/Interfaces/Quote/index.js +2 -2
  201. package/dist/Interfaces/Refunds/index.d.ts +106 -106
  202. package/dist/Interfaces/Refunds/index.js +2 -2
  203. package/dist/Interfaces/Rules/IDiscountRule.d.ts +155 -155
  204. package/dist/Interfaces/Rules/IDiscountRule.js +114 -114
  205. package/dist/Interfaces/Schedule/index.d.ts +48 -48
  206. package/dist/Interfaces/Schedule/index.js +2 -2
  207. package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
  208. package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
  209. package/dist/Interfaces/Services/IService.d.ts +16 -16
  210. package/dist/Interfaces/Services/IService.js +2 -2
  211. package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
  212. package/dist/Interfaces/Services/IServiceSecret.js +2 -2
  213. package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
  214. package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
  215. package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
  216. package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
  217. package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
  218. package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
  219. package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
  220. package/dist/Interfaces/Shipping/Shiptime/order.js +71 -71
  221. package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
  222. package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
  223. package/dist/Interfaces/Slider/GR.d.ts +114 -114
  224. package/dist/Interfaces/Slider/GR.js +271 -271
  225. package/dist/Interfaces/Slider/index.d.ts +30 -30
  226. package/dist/Interfaces/Slider/index.js +2 -2
  227. package/dist/Interfaces/Space/IExternalService.d.ts +54 -54
  228. package/dist/Interfaces/Space/IExternalService.js +45 -45
  229. package/dist/Interfaces/Space/IMember.d.ts +16 -16
  230. package/dist/Interfaces/Space/IMember.js +9 -9
  231. package/dist/Interfaces/Space/index.d.ts +414 -414
  232. package/dist/Interfaces/Space/index.js +176 -176
  233. package/dist/Interfaces/Specials/gr.d.ts +61 -61
  234. package/dist/Interfaces/Specials/gr.js +2 -2
  235. package/dist/Interfaces/StockNotification/index.d.ts +7 -7
  236. package/dist/Interfaces/StockNotification/index.js +2 -2
  237. package/dist/Interfaces/Store/index.d.ts +63 -63
  238. package/dist/Interfaces/Store/index.js +27 -27
  239. package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
  240. package/dist/Interfaces/Supplier/ICommand.js +2 -2
  241. package/dist/Interfaces/Supplier/index.d.ts +36 -36
  242. package/dist/Interfaces/Supplier/index.js +24 -24
  243. package/dist/Interfaces/TCG/index.d.ts +194 -194
  244. package/dist/Interfaces/TCG/index.js +60 -60
  245. package/dist/Interfaces/Tag/index.d.ts +18 -18
  246. package/dist/Interfaces/Tag/index.js +2 -2
  247. package/dist/Interfaces/Tax/index.d.ts +13 -13
  248. package/dist/Interfaces/Tax/index.js +2 -2
  249. package/dist/Interfaces/TransferRequest/index.d.ts +103 -103
  250. package/dist/Interfaces/TransferRequest/index.js +46 -46
  251. package/dist/Interfaces/Translation/index.d.ts +8 -8
  252. package/dist/Interfaces/Translation/index.js +5 -5
  253. package/dist/Interfaces/Update/index.d.ts +10 -10
  254. package/dist/Interfaces/Update/index.js +2 -2
  255. package/dist/Interfaces/User/IUser.d.ts +65 -65
  256. package/dist/Interfaces/User/IUser.js +8 -8
  257. package/dist/Interfaces/Version/index.d.ts +11 -11
  258. package/dist/Interfaces/Version/index.js +2 -2
  259. package/dist/Interfaces/Wishlist/index.d.ts +7 -7
  260. package/dist/Interfaces/Wishlist/index.js +2 -2
  261. package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
  262. package/dist/constants/Interfaces/IBaseApi.js +2 -2
  263. package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
  264. package/dist/constants/Interfaces/IEndpointResult.js +2 -2
  265. package/dist/constants/enums.d.ts +6 -6
  266. package/dist/constants/enums.js +10 -10
  267. package/dist/constants/services.d.ts +2 -2
  268. package/dist/constants/services.js +122 -122
  269. package/dist/constants/version.d.ts +2 -2
  270. package/dist/constants/version.js +5 -5
  271. package/dist/index.d.ts +50 -50
  272. package/dist/index.js +266 -266
  273. package/dist/lib/Attribute/index.d.ts +14 -14
  274. package/dist/lib/Attribute/index.js +186 -186
  275. package/dist/lib/BGJob/index.d.ts +9 -9
  276. package/dist/lib/BGJob/index.js +216 -216
  277. package/dist/lib/BackgroundWorker/index.d.ts +34 -34
  278. package/dist/lib/BackgroundWorker/index.js +59 -59
  279. package/dist/lib/Blog/BlogArticle.d.ts +5 -5
  280. package/dist/lib/Blog/BlogArticle.js +10 -10
  281. package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
  282. package/dist/lib/Blog/BlogAuthor.js +10 -10
  283. package/dist/lib/Blog/BlogCategory.d.ts +5 -5
  284. package/dist/lib/Blog/BlogCategory.js +10 -10
  285. package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
  286. package/dist/lib/Blog/BlogKeyword.js +10 -10
  287. package/dist/lib/Booking/index.d.ts +85 -85
  288. package/dist/lib/Booking/index.js +596 -596
  289. package/dist/lib/Brand/index.d.ts +26 -26
  290. package/dist/lib/Brand/index.js +131 -131
  291. package/dist/lib/Cart/index.d.ts +354 -354
  292. package/dist/lib/Cart/index.js +4055 -4055
  293. package/dist/lib/CartReservedQuantities/index.d.ts +49 -49
  294. package/dist/lib/CartReservedQuantities/index.js +159 -159
  295. package/dist/lib/CashDrawerShift/index.d.ts +84 -84
  296. package/dist/lib/CashDrawerShift/index.js +206 -206
  297. package/dist/lib/Catalogue/index.d.ts +15 -15
  298. package/dist/lib/Catalogue/index.js +78 -78
  299. package/dist/lib/Category/index.d.ts +34 -34
  300. package/dist/lib/Category/index.js +230 -230
  301. package/dist/lib/Class/index.d.ts +16 -16
  302. package/dist/lib/Class/index.js +66 -66
  303. package/dist/lib/Consent/index.d.ts +4 -4
  304. package/dist/lib/Consent/index.js +29 -29
  305. package/dist/lib/Customer/index.d.ts +30 -30
  306. package/dist/lib/Customer/index.js +92 -92
  307. package/dist/lib/Declination/index.d.ts +9 -9
  308. package/dist/lib/Declination/index.js +26 -26
  309. package/dist/lib/Discount/index.d.ts +27 -27
  310. package/dist/lib/Discount/index.js +493 -493
  311. package/dist/lib/ElasticSearch/index.d.ts +13 -13
  312. package/dist/lib/ElasticSearch/index.js +50 -50
  313. package/dist/lib/Elavon/index.d.ts +18 -18
  314. package/dist/lib/Elavon/index.js +135 -135
  315. package/dist/lib/Email/AbandonedCartEmail.d.ts +16 -16
  316. package/dist/lib/Email/AbandonedCartEmail.js +24 -24
  317. package/dist/lib/Email/AccountConfirmationEmail.d.ts +19 -19
  318. package/dist/lib/Email/AccountConfirmationEmail.js +30 -30
  319. package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +16 -16
  320. package/dist/lib/Email/AdminOrderConfirmationEmail.js +24 -24
  321. package/dist/lib/Email/ApplicationEmail.d.ts +16 -16
  322. package/dist/lib/Email/ApplicationEmail.js +24 -24
  323. package/dist/lib/Email/BackInStockEmail.d.ts +16 -16
  324. package/dist/lib/Email/BackInStockEmail.js +24 -24
  325. package/dist/lib/Email/ContactEmail.d.ts +16 -16
  326. package/dist/lib/Email/ContactEmail.js +24 -24
  327. package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +16 -16
  328. package/dist/lib/Email/CustomerBookingAdminEmail.js +24 -24
  329. package/dist/lib/Email/CustomerBookingEmail.d.ts +16 -16
  330. package/dist/lib/Email/CustomerBookingEmail.js +24 -24
  331. package/dist/lib/Email/OrderConfirmationEmail.d.ts +16 -16
  332. package/dist/lib/Email/OrderConfirmationEmail.js +24 -24
  333. package/dist/lib/Email/OrderDenounciationEmail.d.ts +16 -16
  334. package/dist/lib/Email/OrderDenounciationEmail.js +24 -24
  335. package/dist/lib/Email/OrderSampleEmail.d.ts +16 -16
  336. package/dist/lib/Email/OrderSampleEmail.js +24 -24
  337. package/dist/lib/Email/OtherTypeEmails.d.ts +16 -16
  338. package/dist/lib/Email/OtherTypeEmails.js +27 -27
  339. package/dist/lib/Email/PasswordResetEmail.d.ts +16 -16
  340. package/dist/lib/Email/PasswordResetEmail.js +24 -24
  341. package/dist/lib/Email/PhotoShootEmail.d.ts +16 -16
  342. package/dist/lib/Email/PhotoShootEmail.js +24 -24
  343. package/dist/lib/Email/PickUpConfirmation.d.ts +16 -16
  344. package/dist/lib/Email/PickUpConfirmation.js +24 -24
  345. package/dist/lib/Email/ShippingConfirmation.d.ts +16 -16
  346. package/dist/lib/Email/ShippingConfirmation.js +24 -24
  347. package/dist/lib/Email/WelcomeEmail.d.ts +16 -16
  348. package/dist/lib/Email/WelcomeEmail.js +24 -24
  349. package/dist/lib/Email/index.d.ts +16 -16
  350. package/dist/lib/Email/index.js +31 -31
  351. package/dist/lib/ExternalService/Ebay.d.ts +74 -74
  352. package/dist/lib/ExternalService/Ebay.js +124 -124
  353. package/dist/lib/ExternalService/index.d.ts +5 -5
  354. package/dist/lib/ExternalService/index.js +10 -10
  355. package/dist/lib/FirstOrderTracking/index.d.ts +5 -5
  356. package/dist/lib/FirstOrderTracking/index.js +10 -10
  357. package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
  358. package/dist/lib/Indexed/IndexedCart.js +91 -91
  359. package/dist/lib/Indexed/Product.d.ts +17 -17
  360. package/dist/lib/Indexed/Product.js +98 -98
  361. package/dist/lib/Inventory/index.d.ts +112 -112
  362. package/dist/lib/Inventory/index.js +492 -492
  363. package/dist/lib/Invoice/index.d.ts +16 -16
  364. package/dist/lib/Invoice/index.js +21 -21
  365. package/dist/lib/MarketplacePublication/index.d.ts +9 -9
  366. package/dist/lib/MarketplacePublication/index.js +426 -426
  367. package/dist/lib/Menu/index.d.ts +11 -11
  368. package/dist/lib/Menu/index.js +107 -107
  369. package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
  370. package/dist/lib/MongoDB/BaseAPI.js +200 -200
  371. package/dist/lib/Note/index.d.ts +4 -4
  372. package/dist/lib/Note/index.js +6 -6
  373. package/dist/lib/Order/index.d.ts +27 -27
  374. package/dist/lib/Order/index.js +56 -56
  375. package/dist/lib/Org/index.d.ts +68 -68
  376. package/dist/lib/Org/index.js +216 -216
  377. package/dist/lib/PandaPay/index.d.ts +16 -16
  378. package/dist/lib/PandaPay/index.js +176 -176
  379. package/dist/lib/Paysafe/index.d.ts +11 -11
  380. package/dist/lib/Paysafe/index.js +41 -41
  381. package/dist/lib/Product/index.d.ts +182 -182
  382. package/dist/lib/Product/index.js +847 -847
  383. package/dist/lib/ProductAttribute/index.d.ts +15 -15
  384. package/dist/lib/ProductAttribute/index.js +45 -45
  385. package/dist/lib/PromiseToPurchase/index.d.ts +109 -109
  386. package/dist/lib/PromiseToPurchase/index.js +343 -343
  387. package/dist/lib/PurchaseOrder/index.d.ts +20 -20
  388. package/dist/lib/PurchaseOrder/index.js +28 -28
  389. package/dist/lib/Queue/index.d.ts +40 -0
  390. package/dist/lib/Queue/index.js +255 -0
  391. package/dist/lib/Queue/index.js.map +1 -0
  392. package/dist/lib/Schedule/index.d.ts +5 -5
  393. package/dist/lib/Schedule/index.js +12 -12
  394. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  395. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  396. package/dist/lib/Service/index.d.ts +13 -13
  397. package/dist/lib/Service/index.js +21 -21
  398. package/dist/lib/Shipment/index.d.ts +28 -28
  399. package/dist/lib/Shipment/index.js +370 -370
  400. package/dist/lib/Slider/index.d.ts +22 -22
  401. package/dist/lib/Slider/index.js +119 -119
  402. package/dist/lib/Space/index.d.ts +1181 -1181
  403. package/dist/lib/Space/index.js +5841 -5841
  404. package/dist/lib/StockNotification/index.d.ts +4 -4
  405. package/dist/lib/StockNotification/index.js +6 -6
  406. package/dist/lib/Store/index.d.ts +5 -5
  407. package/dist/lib/Store/index.js +12 -12
  408. package/dist/lib/Supplier/Command.d.ts +5 -5
  409. package/dist/lib/Supplier/Command.js +10 -10
  410. package/dist/lib/Supplier/index.d.ts +25 -25
  411. package/dist/lib/Supplier/index.js +27 -27
  412. package/dist/lib/Tags/index.d.ts +6 -6
  413. package/dist/lib/Tags/index.js +26 -26
  414. package/dist/lib/Tax/index.d.ts +8 -8
  415. package/dist/lib/Tax/index.js +54 -54
  416. package/dist/lib/TransferRequest/index.d.ts +290 -290
  417. package/dist/lib/TransferRequest/index.js +1026 -1026
  418. package/dist/lib/Update/index.d.ts +10 -10
  419. package/dist/lib/Update/index.js +22 -22
  420. package/dist/lib/User/index.d.ts +89 -89
  421. package/dist/lib/User/index.js +328 -328
  422. package/dist/lib/Wishlist/index.d.ts +5 -5
  423. package/dist/lib/Wishlist/index.js +10 -10
  424. package/dist/lib/base.d.ts +14 -14
  425. package/dist/lib/base.js +62 -62
  426. package/dist/lib/baseService.d.ts +17 -17
  427. package/dist/lib/baseService.js +69 -69
  428. package/dist/rules/ADD/utils/buyback.d.ts +4 -4
  429. package/dist/rules/ADD/utils/buyback.js +135 -135
  430. package/dist/rules/GR/constants/data.d.ts +26 -26
  431. package/dist/rules/GR/constants/data.js +81 -81
  432. package/dist/rules/GR/constants/expedition.d.ts +4 -4
  433. package/dist/rules/GR/constants/expedition.js +9 -9
  434. package/dist/rules/GR/constants/products.d.ts +22 -22
  435. package/dist/rules/GR/constants/products.js +263 -263
  436. package/dist/rules/GR/interfaces/cart.d.ts +84 -84
  437. package/dist/rules/GR/interfaces/cart.js +41 -41
  438. package/dist/rules/GR/interfaces/data.d.ts +101 -101
  439. package/dist/rules/GR/interfaces/data.js +114 -114
  440. package/dist/rules/GR/interfaces/products.d.ts +61 -61
  441. package/dist/rules/GR/interfaces/products.js +10 -10
  442. package/dist/rules/GR/utils/cart.d.ts +95 -95
  443. package/dist/rules/GR/utils/cart.js +839 -839
  444. package/dist/rules/GR/utils/data.d.ts +3 -3
  445. package/dist/rules/GR/utils/data.js +28 -28
  446. package/dist/rules/GR/utils/expedition.d.ts +140 -140
  447. package/dist/rules/GR/utils/expedition.js +2016 -2016
  448. package/dist/rules/GR/utils/g2.d.ts +209 -209
  449. package/dist/rules/GR/utils/g2.js +1002 -1002
  450. package/dist/rules/GR/utils/invoices.d.ts +51 -51
  451. package/dist/rules/GR/utils/invoices.js +215 -215
  452. package/dist/rules/GR/utils/products.d.ts +277 -277
  453. package/dist/rules/GR/utils/products.js +1350 -1350
  454. package/dist/rules/GR/utils/upsells.d.ts +111 -111
  455. package/dist/rules/GR/utils/upsells.js +215 -215
  456. package/dist/services/database/BaseProvider.d.ts +29 -29
  457. package/dist/services/database/BaseProvider.js +28 -28
  458. package/dist/services/database/BatchUtils.d.ts +14 -14
  459. package/dist/services/database/BatchUtils.js +43 -43
  460. package/dist/services/database/Config.d.ts +2 -2
  461. package/dist/services/database/Config.js +5 -5
  462. package/dist/services/database/DatabaseService.d.ts +125 -125
  463. package/dist/services/database/DatabaseService.js +237 -237
  464. package/dist/services/database/FirebaseProvider.d.ts +17 -17
  465. package/dist/services/database/FirebaseProvider.js +235 -235
  466. package/dist/services/database/NotFirebaseProvider.d.ts +49 -49
  467. package/dist/services/database/NotFirebaseProvider.js +262 -262
  468. package/dist/services/g2/G2OrderSlip.d.ts +49 -49
  469. package/dist/services/g2/G2OrderSlip.js +228 -228
  470. package/dist/services/g2/utils.d.ts +19 -19
  471. package/dist/services/g2/utils.js +967 -967
  472. package/dist/services/logs/index.d.ts +23 -23
  473. package/dist/services/logs/index.js +66 -66
  474. package/dist/services/marketplace/BaseMarketServiceClass.d.ts +74 -69
  475. package/dist/services/marketplace/BaseMarketServiceClass.js +140 -133
  476. package/dist/services/marketplace/BaseMarketServiceClass.js.map +1 -1
  477. package/dist/services/marketplace/CardtraderServiceClass.d.ts +38 -33
  478. package/dist/services/marketplace/CardtraderServiceClass.js +223 -215
  479. package/dist/services/marketplace/CardtraderServiceClass.js.map +1 -1
  480. package/dist/services/marketplace/utils.d.ts +17 -17
  481. package/dist/services/marketplace/utils.js +32 -32
  482. package/dist/services/products/BaseClass.d.ts +79 -50
  483. package/dist/services/products/BaseClass.js +144 -66
  484. package/dist/services/products/BaseClass.js.map +1 -1
  485. package/dist/services/products/TCGService.d.ts +29 -32
  486. package/dist/services/products/TCGService.js +503 -554
  487. package/dist/services/products/TCGService.js.map +1 -1
  488. package/dist/services/products/utils.d.ts +31 -31
  489. package/dist/services/products/utils.js +144 -144
  490. package/dist/utils/algolia.d.ts +46 -46
  491. package/dist/utils/algolia.js +21 -21
  492. package/dist/utils/anonymisation.d.ts +54 -54
  493. package/dist/utils/anonymisation.js +280 -280
  494. package/dist/utils/array.d.ts +5 -5
  495. package/dist/utils/array.js +14 -14
  496. package/dist/utils/aws.d.ts +36 -36
  497. package/dist/utils/aws.js +154 -154
  498. package/dist/utils/booking.d.ts +30 -30
  499. package/dist/utils/booking.js +127 -127
  500. package/dist/utils/cart.d.ts +272 -272
  501. package/dist/utils/cart.js +1169 -1169
  502. package/dist/utils/categories.d.ts +2 -2
  503. package/dist/utils/categories.js +54 -54
  504. package/dist/utils/cmv.d.ts +10 -10
  505. package/dist/utils/cmv.js +107 -107
  506. package/dist/utils/console.d.ts +6 -6
  507. package/dist/utils/console.js +59 -59
  508. package/dist/utils/context.d.ts +20 -20
  509. package/dist/utils/context.js +61 -61
  510. package/dist/utils/currency.d.ts +6 -6
  511. package/dist/utils/currency.js +91 -91
  512. package/dist/utils/data.d.ts +31 -31
  513. package/dist/utils/data.js +296 -296
  514. package/dist/utils/date.d.ts +1 -1
  515. package/dist/utils/date.js +16 -16
  516. package/dist/utils/dimensions.d.ts +3 -3
  517. package/dist/utils/dimensions.js +16 -16
  518. package/dist/utils/discount.d.ts +174 -174
  519. package/dist/utils/discount.js +1118 -1118
  520. package/dist/utils/errors.d.ts +118 -118
  521. package/dist/utils/errors.js +123 -123
  522. package/dist/utils/file-admin.d.ts +8 -8
  523. package/dist/utils/file-admin.js +39 -39
  524. package/dist/utils/file.d.ts +39 -39
  525. package/dist/utils/file.js +208 -208
  526. package/dist/utils/firebase-admin.d.ts +11 -11
  527. package/dist/utils/firebase-admin.js +73 -73
  528. package/dist/utils/firebase.d.ts +58 -58
  529. package/dist/utils/firebase.js +148 -148
  530. package/dist/utils/import.d.ts +1 -1
  531. package/dist/utils/import.js +21 -21
  532. package/dist/utils/inventories.d.ts +101 -101
  533. package/dist/utils/inventories.js +467 -467
  534. package/dist/utils/locale.d.ts +24 -24
  535. package/dist/utils/locale.js +91 -91
  536. package/dist/utils/mailchimp.d.ts +58 -58
  537. package/dist/utils/mailchimp.js +531 -531
  538. package/dist/utils/mathUtils.d.ts +17 -17
  539. package/dist/utils/mathUtils.js +324 -324
  540. package/dist/utils/mongodb.d.ts +1 -1
  541. package/dist/utils/mongodb.js +22 -22
  542. package/dist/utils/object.d.ts +32 -32
  543. package/dist/utils/object.js +133 -133
  544. package/dist/utils/payment.d.ts +10 -10
  545. package/dist/utils/payment.js +23 -23
  546. package/dist/utils/products.d.ts +39 -39
  547. package/dist/utils/products.js +195 -195
  548. package/dist/utils/promiseToPurchase.d.ts +88 -88
  549. package/dist/utils/promiseToPurchase.js +229 -229
  550. package/dist/utils/prosprsearch.d.ts +42 -42
  551. package/dist/utils/prosprsearch.js +216 -216
  552. package/dist/utils/refunds.d.ts +2 -2
  553. package/dist/utils/refunds.js +21 -21
  554. package/dist/utils/sdc.d.ts +10 -10
  555. package/dist/utils/sdc.js +1309 -1309
  556. package/dist/utils/searchIndexes.d.ts +58 -58
  557. package/dist/utils/searchIndexes.js +247 -247
  558. package/dist/utils/services.d.ts +42 -42
  559. package/dist/utils/services.js +409 -409
  560. package/dist/utils/shipment.d.ts +110 -110
  561. package/dist/utils/shipment.js +345 -345
  562. package/dist/utils/simpletexting.d.ts +2 -2
  563. package/dist/utils/simpletexting.js +45 -45
  564. package/dist/utils/sliders.d.ts +4 -4
  565. package/dist/utils/sliders.js +24 -24
  566. package/dist/utils/string.d.ts +16 -16
  567. package/dist/utils/string.js +192 -192
  568. package/dist/utils/tcgService.d.ts +88 -88
  569. package/dist/utils/tcgService.js +408 -408
  570. package/dist/utils/tools.d.ts +5 -5
  571. package/dist/utils/tools.js +13 -13
  572. package/dist/utils/transferRequests.d.ts +43 -43
  573. package/dist/utils/transferRequests.js +67 -67
  574. package/dist/utils/update.d.ts +7 -7
  575. package/dist/utils/update.js +137 -137
  576. package/dist/utils/weight.d.ts +3 -3
  577. package/dist/utils/weight.js +16 -16
  578. package/dist/utils/zones.d.ts +11 -11
  579. package/dist/utils/zones.js +218 -218
  580. package/package.json +107 -107
  581. package/publish.sh +143 -143
  582. package/readme.md +182 -182
  583. package/.claude/settings.local.json +0 -7
  584. package/.env +0 -14
@@ -1,468 +1,468 @@
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.getSpaceUnitsToUseForContext = exports.checkIfStoreHasInventory = exports.checkIfItemIsUnavailableForStore = exports.getAvailableSellUnitQuantity = exports.convertQtyFromSellUnit = exports.getQty = exports.getConvertedUnitQuantity = exports.getGroupedByBetonProducts = exports.getAttrStringForItem = exports.getAttributesToShow = exports.getUnitShortDict = exports.unitShortDict = exports.unitDict = exports.orderByAccessoires = exports.orderByBeton = exports.checkWebInventoryForType = void 0;
7
- const flatten_1 = __importDefault(require("lodash/flatten"));
8
- const groupBy_1 = __importDefault(require("lodash/groupBy"));
9
- const orderBy_1 = __importDefault(require("lodash/orderBy"));
10
- const sumBy_1 = __importDefault(require("lodash/sumBy"));
11
- const toNumber_1 = __importDefault(require("lodash/toNumber"));
12
- const uniq_1 = __importDefault(require("lodash/uniq"));
13
- const IInventoryItem_1 = require("../Interfaces/Product/IInventoryItem");
14
- const data_1 = require("../rules/GR/interfaces/data");
15
- const locale_1 = require("./locale");
16
- const products_1 = require("../rules/GR/utils/products");
17
- const round_1 = __importDefault(require("lodash/round"));
18
- const object_1 = require("./object");
19
- const checkWebInventoryForType = (inventories, currentWebInventory, type) => {
20
- const canSellOnline = inventories.filter((i) => i.can_sell_online);
21
- if (!!!canSellOnline.length)
22
- return;
23
- return Object.assign(Object.assign({}, (!!currentWebInventory ? currentWebInventory : (0, IInventoryItem_1.getDefaultInventoryQuantities)())), { [type]: (0, sumBy_1.default)(canSellOnline, (i) => (0, toNumber_1.default)(i.qty[type] || 0)) });
24
- };
25
- exports.checkWebInventoryForType = checkWebInventoryForType;
26
- exports.orderByBeton = [
27
- 'NkLD1rmnGiFZpJA1w6js.moderne',
28
- 'NkLD1rmnGiFZpJA1w6js.traditionnel',
29
- 'NkLD1rmnGiFZpJA1w6js.permeable',
30
- 'oWzANqTldrV1McGzBAU2.moderne',
31
- 'oWzANqTldrV1McGzBAU2.traditionnel',
32
- '9jgHOxtMVSC1QTs1d9NX',
33
- 'IbCDQBYaPmC125hBlr2j',
34
- 'ptd8lA1kUTsWdyufNGjh',
35
- 'mVjg7x05H1hizbet2xsv',
36
- 'xOQPwedYjSYavS0FJlaE',
37
- 'axEbPjUTnk64S5kRlfh6',
38
- 'WS0n2jiEtoYMSId78GCZ',
39
- '87HSMsPuUBm5XEUfreu1',
40
- 'j0aJi1eyJwLabcpaPn6a',
41
- 'Q1rCiYAOvadUXAITj47i' // mursDeBlocArchitecturaux
42
- ];
43
- exports.orderByAccessoires = [
44
- 'KrjSKiXHXa4MrRJIopJO',
45
- '3uA7YFYwBVRYS8382JKB',
46
- 'shmXowMw563z07Gr1k3d',
47
- 'YZa62rG0LOnC9WKG8BRE',
48
- 'OkeEqkF6QLNoFbzCgpdJ',
49
- 'k2XN5GeN4PRxtbpj4BFk',
50
- 'uDyyPN1IZGhivbV2hXiy',
51
- 'G0xkLTH1XbFBgGGRm6Of',
52
- 'GPFBURGlRFtAzaj5v6vr',
53
- 'QXbBm82HL3vRc7GBjPYQ',
54
- 'XijBekSz3MPAzACFSKUk',
55
- 'meLuoK1SVeqUoo0bWvdz' // engraisGazon
56
- ];
57
- exports.unitDict = {
58
- p2: { fr: 'Pieds Carrés', en: 'Square Feet' },
59
- pal: { fr: 'Palette', en: 'Pallet' },
60
- rg: { fr: 'Rangs', en: 'Row' },
61
- ensemble: { fr: 'Ensemble', en: 'Kit' },
62
- pl: { fr: 'Pieds linéaires', en: 'Linear feet' },
63
- mcx: { fr: 'Morceaux', en: 'Pieces' },
64
- unite: { fr: 'Unités', en: 'Units' },
65
- sac: { fr: 'Sac', en: 'Bag' },
66
- vg3: { fr: 'Verge cube', en: 'Cubic yard' },
67
- demipalsm: { fr: 'Demi-palette (petite)', en: 'Half-pallet (small)' },
68
- demipallg: { fr: 'Demi-palette (lg)', en: 'Half-pallet (lg)' },
69
- tonne: { fr: 'Tonne', en: 'Ton' },
70
- roul: { fr: 'Rouleau', en: 'Roll' },
71
- bte: { fr: 'Boîte', en: 'Box' },
72
- pqt: { fr: 'Paquet', en: 'Bundle' },
73
- '': { fr: 'Unités', en: 'Units' }
74
- };
75
- exports.unitShortDict = {
76
- p2: { fr: 'pi²', en: 'pi²' },
77
- pal: { fr: 'pal.', en: 'pal.' },
78
- rg: { fr: 'rg', en: 'row' },
79
- ensemble: { fr: 'ens.', en: 'kit' },
80
- pl: { fr: 'pL', en: 'linear feet' },
81
- mcx: { fr: 'mcx', en: 'piece' },
82
- unite: { fr: 'unité', en: 'unit' },
83
- sac: { fr: 'sac', en: 'bag' },
84
- vg3: { fr: 'vg³', en: 'yd³' },
85
- demipalsm: { fr: 'Demi-pal. (petite)', en: 'Half-pal. (sm)' },
86
- demipallg: { fr: 'Demi-pal. (lg)', en: 'Half-pal. (lg)' },
87
- tonne: { fr: 'tonne', en: 'ton' },
88
- roul: { fr: 'roul.', en: 'roll' },
89
- bte: { fr: 'bte', en: 'box' },
90
- pqt: { fr: 'pqt', en: 'bundle' },
91
- '': { fr: 'unité', en: 'unit' }
92
- };
93
- /**
94
- * Returns the dictionnary containing the shortened version of unit labels in multiple languages
95
- * @param {string} slug The slug for which we want to get the shortened dictionnary
96
- * @param {string[]} returnUnitForSlugs An array of slugs that we want to return a default dictionnary for, in this case the unit dictionnary for unit
97
- * @returns {ILang} The dictionnary containing the shortened unit label in multiple languages
98
- */
99
- const getUnitShortDict = (slug, returnUnitForSlugs) => {
100
- try {
101
- if (!!returnUnitForSlugs && !!returnUnitForSlugs.includes(slug)) {
102
- return exports.unitShortDict['unite'];
103
- }
104
- const res = exports.unitShortDict[slug];
105
- if (!!!res)
106
- return { fr: slug, en: slug };
107
- return res;
108
- }
109
- catch (err) {
110
- console.log(err);
111
- return { fr: slug, en: slug };
112
- }
113
- };
114
- exports.getUnitShortDict = getUnitShortDict;
115
- const getOrganizedIndexedDecliAttributes = (decli) => {
116
- return (0, flatten_1.default)(Object.entries(decli.attributes).map((attrArr) => {
117
- const newArray = !!!attrArr[1] ? [] : attrArr[1].map((aValue) => `${attrArr[0]}.${aValue}`);
118
- return (0, flatten_1.default)(newArray);
119
- }));
120
- };
121
- const getAttributesToShow = (currentItems) => {
122
- const allAttributesPerItem = currentItems.map((item) => !!Array.isArray(item.attributes) ? item.attributes : getOrganizedIndexedDecliAttributes(item));
123
- const allAttributes = (0, uniq_1.default)((0, flatten_1.default)(allAttributesPerItem));
124
- const group = (0, groupBy_1.default)(allAttributes, (a) => a.split('.')[0]);
125
- const parentAttributesToShow = Object.entries(group)
126
- .map((g) => {
127
- let attrToShow = undefined;
128
- // Remove spécific attributes from the list
129
- if ([
130
- data_1.AttributesIdEnumGR.AVAILABILITY,
131
- data_1.AttributesIdEnumGR.TYPE,
132
- data_1.AttributesIdEnumGR.MARKETING,
133
- data_1.AttributesIdEnumGR.COLOR_GROUP,
134
- data_1.AttributesIdEnumGR.VENTE_MIXTE,
135
- data_1.AttributesIdEnumGR.TYPE_UTILISATION_BETON
136
- ].includes(g[0])) {
137
- return attrToShow;
138
- }
139
- // Check if the attribute values present in the item list are the same for all items. If so, remove from list
140
- if (g[1].length > 1) {
141
- const allItemsContainAllAttr = allAttributesPerItem.every((itemAttributes) => {
142
- const sameAttr = itemAttributes.filter((attr) => attr.includes(g[0]));
143
- if (!!!sameAttr)
144
- return false;
145
- return sameAttr.length === g[1].length && sameAttr.every((attr) => g[1].includes(attr));
146
- });
147
- // if not all items contain all attribute values, add to attributes to show
148
- if (!!!allItemsContainAllAttr) {
149
- attrToShow = g[0];
150
- }
151
- }
152
- return attrToShow;
153
- })
154
- .filter((v) => !!v);
155
- return parentAttributesToShow;
156
- };
157
- exports.getAttributesToShow = getAttributesToShow;
158
- const attrToShowInItem = (item, attributesToShow) => {
159
- const itemAttributes = Array.isArray(item.attributes)
160
- ? item.attributes
161
- : getOrganizedIndexedDecliAttributes(item);
162
- return itemAttributes
163
- .map((a) => {
164
- if (attributesToShow.find((attr_id) => attr_id === a.split('.')[0])) {
165
- return a;
166
- }
167
- return;
168
- })
169
- .filter((v) => !!v);
170
- };
171
- const attrString = (attrToShow, attributes, locale) => {
172
- const valuesArray = (0, orderBy_1.default)(attrToShow, (a) => a.split('.')[0] === 'Sy9GlMjUcqUkvKeqLuSz' ? 'AAA' : a.split('.')[0][0]).map((attr) => {
173
- const attribute = attributes.find((a) => a.id === attr.split('.')[0]);
174
- if (!!!attribute)
175
- return '';
176
- const attributeValue = attribute.values.find((a) => a.slug === attr.split('.')[1]);
177
- if (!!!attributeValue)
178
- return '';
179
- return (0, locale_1.getLocaleOfDictionnary)(attributeValue.value, locale);
180
- });
181
- return valuesArray.join(' - ');
182
- };
183
- const getAttrStringForItem = (inventoryItem, attributesToShow, attributes, locale = 'fr') => {
184
- const attrToShow = attrToShowInItem(inventoryItem, attributesToShow);
185
- const attrStr = attrString(attrToShow, attributes, locale);
186
- return attrStr;
187
- };
188
- exports.getAttrStringForItem = getAttrStringForItem;
189
- const getGroupedByBetonProducts = (arrBeton, categories) => {
190
- return (0, groupBy_1.default)(arrBeton, (item) => {
191
- const categorySlugLvl0 = !!item.categories ? item.categories['lvl0'] : '';
192
- const categorySlugLvl1 = !!item.categories && !!item.categories['lvl1'] ? item.categories['lvl1'].split(' > ')[1] : '';
193
- const categorySlugLvl2 = !!item.categories && !!item.categories['lvl2'] ? item.categories['lvl2'].split(' > ')[2] : '';
194
- const lvl0CategoryId = !!categorySlugLvl0 && categories.some((c) => c.slug === categorySlugLvl0)
195
- ? categories.find((c) => c.slug === categorySlugLvl0).id
196
- : '';
197
- const lvl1CategoryId = !!categorySlugLvl1 && categories.some((c) => c.slug === categorySlugLvl1)
198
- ? categories.find((c) => c.slug === categorySlugLvl1).id
199
- : '';
200
- const lvl2CategoryId = !!categorySlugLvl2 && categories.some((c) => c.slug === categorySlugLvl2)
201
- ? categories.find((c) => c.slug === categorySlugLvl2).id
202
- : '';
203
- const sameCategoryId = !!lvl2CategoryId && !!exports.orderByBeton.some((order) => order.includes(lvl2CategoryId))
204
- ? lvl2CategoryId
205
- : !!lvl1CategoryId && !!exports.orderByBeton.some((order) => order.includes(lvl1CategoryId))
206
- ? lvl1CategoryId
207
- : !!lvl0CategoryId && !!exports.orderByBeton.some((order) => order.includes(lvl0CategoryId))
208
- ? lvl0CategoryId
209
- : '';
210
- const attrDict = Object.entries(item.attributes);
211
- const foundAttr = attrDict.find((attr) => attr[0] === data_1.AttributesIdEnumGR.STYLE);
212
- const foundSameCat = !!exports.orderByBeton.some((order) => order.includes(`${sameCategoryId}.`));
213
- const styleAttribute = foundSameCat && foundAttr ? foundAttr[1][0] : '';
214
- return !!!sameCategoryId && !!!styleAttribute
215
- ? 'zzzzzzz'
216
- : `${sameCategoryId}${!!styleAttribute ? '.' + styleAttribute : ''}`;
217
- });
218
- };
219
- exports.getGroupedByBetonProducts = getGroupedByBetonProducts;
220
- /**
221
- * Convert a given quantity to either inventory of sale unit, using an item's unit array.
222
- * @param otherUnits The item's possible units array
223
- * @param qte The quantity to convert
224
- * @param convertTo The unit type for conversion.
225
- * @param roundResult Optionnal. If result should be rounded. Checks if unit supports decimals (if so, rounds to 2 decimals. Else, rounds to 0).
226
- */
227
- const getConvertedUnitQuantity = (otherUnits, qte, convertTo, roundResult) => {
228
- if (!!!otherUnits)
229
- return qte;
230
- const sellUnit = otherUnits.find((unit) => unit.is_sale_unit);
231
- if (!!!sellUnit)
232
- return qte;
233
- let inventoryUnit = otherUnits.find((unit) => unit.is_inventory_unit);
234
- if (!!!inventoryUnit)
235
- inventoryUnit = otherUnits.find((unit) => unit.fitting_unit == 1);
236
- if (!!!inventoryUnit)
237
- return qte;
238
- if (inventoryUnit.unit_slug === sellUnit.unit_slug)
239
- return qte;
240
- if (convertTo === 'sale_unit') {
241
- const calculated = qte * (1 / (sellUnit.fitting_unit || 1));
242
- if (!roundResult)
243
- return calculated;
244
- return (0, round_1.default)(calculated, (0, products_1.productUnitSupportsDecimals)(sellUnit.unit_slug) ? 2 : 0);
245
- }
246
- const calculated = qte * (sellUnit.fitting_unit || 1);
247
- if (!roundResult)
248
- return calculated;
249
- return (0, round_1.default)(calculated, (0, products_1.productUnitSupportsDecimals)(inventoryUnit.unit_slug) ? 2 : 0);
250
- };
251
- exports.getConvertedUnitQuantity = getConvertedUnitQuantity;
252
- /**
253
- * Constructs object with detailled inventory quantities by unit (based on other_units for product)
254
- * @param otherUnits
255
- * @param inventoryQuantity
256
- * @param options.showNegativeInventory - Optionnal
257
- * @param options.unitSlugsToCheck - Optionnal. If provided, only checks for provided units.
258
- * @param options.log - Ooptionnal. If true, logs found data at each step to browser
259
- * @returns A key-value object where the key is the unit slug, and the value contains the calculated amount for unit, the fitting unit ratio, and if is the "smallest" unit, the true slug of the corresponding unit
260
- */
261
- const getQty = (otherUnits, inventoryQuantity, unitSlugsToCheck, options = {}) => {
262
- let qtyUnits = {};
263
- let calculatedUnits = [];
264
- const unitsToCheck = unitSlugsToCheck || [
265
- { slug: 'pal', roundToOneQte: true },
266
- { slug: 'unite', roundToOneQte: false }
267
- ];
268
- if (options.log)
269
- console.log('qtyUnits at beggining: ', Object.assign({}, qtyUnits), 'otherunits here: ', otherUnits);
270
- const isNegativeQty = inventoryQuantity < 0 && !!options.showNegativeInventory;
271
- // If negative quantities should be shown, we still need to calculate quantities with positive values to get correct other unit quantites
272
- // Quantities will be "reset" to negative later in the function
273
- if (!!isNegativeQty)
274
- inventoryQuantity = inventoryQuantity * -1;
275
- if (!!!otherUnits ||
276
- !!!otherUnits.length ||
277
- !!otherUnits
278
- .filter((other_unit) => other_unit.unit_slug !== 'booking')
279
- .every((other_unit) => !!!other_unit.fitting_unit)) {
280
- qtyUnits['unite'] = {
281
- value: inventoryQuantity * (!!isNegativeQty ? -1 : 1),
282
- fitting_unit: 1
283
- };
284
- return qtyUnits;
285
- }
286
- const orderedOtherUnits = (0, orderBy_1.default)(otherUnits, 'fitting_unit', 'desc');
287
- const calculateRest = (currentRest, currentValue, fittingUnit) => {
288
- let rest = 0;
289
- if (currentValue < 1) {
290
- rest = currentRest;
291
- }
292
- else {
293
- const calculatedRest = (currentRest % (fittingUnit || 1)) * (currentRest > 0 ? 1 : -1);
294
- rest = calculatedRest < 0.001 ? 0 : calculatedRest;
295
- }
296
- return rest;
297
- };
298
- let rest = inventoryQuantity;
299
- if (options.log)
300
- console.log('rest at start: ', rest, ', orderedUnits: ', orderedOtherUnits);
301
- // NEW - Now loops on all units and returns values for equivalent found in unitsToCheck array + inventory Unit for product if not already included
302
- for (let unit of orderedOtherUnits) {
303
- const slug = unit.unit_slug;
304
- if (options.log)
305
- console.log('checking for unit: ', slug);
306
- const isInventoryUnit = unit.is_inventory_unit || (orderedOtherUnits.every((u) => !u.is_inventory_unit) && unit.fitting_unit == 1);
307
- let inUnitsToCheck = unitsToCheck.find((u) => u.slug == slug);
308
- const alreadyInArray = calculatedUnits.some((u) => u.slug == slug || u.fittingUnit == unit.fitting_unit);
309
- if (options.log)
310
- console.log('slug: ', slug, ', inUnitsToCheck: ', inUnitsToCheck, ', isInventoryUnit: ', isInventoryUnit);
311
- // Only continue check for unit if :
312
- // - equivalent unit not already in calculated values array
313
- // - unit found in units to check OR is inventory unit for product
314
- // - fitting unit for unit is a valid number
315
- if (!alreadyInArray && (!!inUnitsToCheck || isInventoryUnit) && !!unit.fitting_unit) {
316
- const shouldRoundToOne = !!inUnitsToCheck && inUnitsToCheck.roundToOneQte;
317
- const value = rest / (unit.fitting_unit || 1);
318
- // Unit label in new objet is either :
319
- // - the label "unite" if unit is inventory unit and should use generic label option
320
- // - else the unit's "normal" slug
321
- const unitLabelToUpdate = isInventoryUnit && !options.returnTrueUnitSlug && !shouldRoundToOne ? 'unite' : slug;
322
- qtyUnits[unitLabelToUpdate] = Object.assign({ value: _getQtyValue(value, unit.fitting_unit === 1, isNegativeQty), fitting_unit: unit.fitting_unit || 1, is_inventory_unit: isInventoryUnit }, (isInventoryUnit && !options.returnTrueUnitSlug && !shouldRoundToOne ? { true_unit: slug } : {}));
323
- if (!!options.log) {
324
- console.log('_getQtyValue ', _getQtyValue(value, unit.fitting_unit === 1, isNegativeQty));
325
- console.log(`qtyUnits after ${slug}: `, Object.assign({}, qtyUnits));
326
- }
327
- // Calculate rest from new value remove for current unit
328
- rest = calculateRest(rest, value, unit.fitting_unit);
329
- if (options.log) {
330
- console.log('rest calculated: ', rest);
331
- console.log('shouldRoundToOne: ', shouldRoundToOne);
332
- }
333
- // If unit has property roundToOneQte, and the left over rest quantity is equivalent to one unit of current uni
334
- // Add 1 quantity to value for current unit, and set rest to 0 (no need to loop in next unit!)
335
- if (shouldRoundToOne) {
336
- let restToCheck = !(0, products_1.productUnitSupportsDecimals)(slug) ? (0, round_1.default)(rest) : rest;
337
- if (options.log)
338
- console.log('value: ', value, ', rest & restToCheck: ', rest, restToCheck);
339
- if (value > 1 && restToCheck == unit.fitting_unit) {
340
- qtyUnits[unitLabelToUpdate]['value'] = qtyUnits[unitLabelToUpdate].value + (!!isNegativeQty ? -1 : 1);
341
- rest = 0;
342
- }
343
- }
344
- if (options.log) {
345
- console.log(`rest after ${slug}: `, rest);
346
- console.log(`qtyUnits after round to one check`, Object.assign({}, qtyUnits));
347
- }
348
- // Push unit values to calculated unit array to keep track and check for "doubled" unit values in later loops
349
- calculatedUnits.push({ slug: slug, fittingUnit: unit.fitting_unit });
350
- }
351
- }
352
- return qtyUnits;
353
- };
354
- exports.getQty = getQty;
355
- /**
356
- * Calculates inventory unit quantity for function getQty
357
- * @param value
358
- * @param isUnitFittingUnit
359
- * @param isNegativeQty
360
- */
361
- const _getQtyValue = (value, _isUnitFittingUnit, isNegativeQty) => {
362
- if (value < 1)
363
- return 0;
364
- const roundedValue = Math.floor((0, round_1.default)(value, 5));
365
- return roundedValue * (!!isNegativeQty ? -1 : 1);
366
- };
367
- const convertQtyFromSellUnit = (allUnits, sellUnitQty, convertToUnitSlug) => {
368
- if (!!!allUnits)
369
- return sellUnitQty;
370
- const sellUnit = allUnits.find((u) => !!u.is_sale_unit);
371
- const convertToUnit = allUnits.find((u) => u.unit_slug === convertToUnitSlug);
372
- if (!!!sellUnit)
373
- return sellUnitQty;
374
- if (!!!convertToUnit)
375
- return sellUnitQty;
376
- if (sellUnit.unit_slug === convertToUnit.unit_slug)
377
- return sellUnitQty;
378
- return (sellUnitQty * (sellUnit.fitting_unit || 1)) / (convertToUnit.fitting_unit || 1);
379
- };
380
- exports.convertQtyFromSellUnit = convertQtyFromSellUnit;
381
- /**
382
- * Returns the quantities available for a product based on the current store branch.
383
- *
384
- * @param {IInventoryItem} [inventory] - The inventoryItem to check
385
- * @param {string | null | undefined} [currentSucc] - The current store's slug
386
- * @param {IFilledDimensionUnits[] | undefined} [otherUnits] - The item's other_units
387
- * @param {IIndexedProduct | ICartItem} [product] - The item to check
388
- * @param {boolean} [roundQty] - Wether we want to round to qty string or not
389
- * @returns {{value: number|string, unit:string}} - The string representation of the available quantity or 'Non disponible' if there's no inventory available.
390
- */
391
- const getAvailableSellUnitQuantity = (inventory, currentSucc, otherUnits, product, roundQty = true) => {
392
- if (!!!currentSucc || !!!otherUnits)
393
- return { value: '', unit: '' };
394
- const saleUnit = otherUnits.find((u) => !!u.is_sale_unit);
395
- const storeInv = inventory.inventories.find((i) => i.store_id === currentSucc);
396
- if (!!(0, products_1.checkIfProductIsOfType)(product, 'vrac') && !!storeInv) {
397
- const available = !!!storeInv.unavailable_in_store;
398
- return { value: !!available ? 'Disponible' : 'Non-disponible', unit: '' };
399
- }
400
- else {
401
- if (!!inventory.is_infinite_stock || !!product.is_service || !!!storeInv)
402
- return { value: 'Disponible', unit: '' };
403
- let invValue = storeInv.qty.available;
404
- if (invValue < 0)
405
- invValue = 0;
406
- const sellUnitValue = (0, exports.getConvertedUnitQuantity)(otherUnits, invValue, 'sale_unit');
407
- let convertedValue;
408
- if (!!roundQty) {
409
- convertedValue = sellUnitValue.toFixed(!!saleUnit && !!(0, products_1.productUnitSupportsDecimals)(saleUnit.unit_slug) ? 2 : 0);
410
- }
411
- else {
412
- convertedValue = sellUnitValue.toString();
413
- }
414
- const unit = (0, products_1.getUnitLabelWithSlug)(!!saleUnit ? saleUnit.unit_slug : 'unite', 'fr', true, ['booking']);
415
- return { value: convertedValue, unit };
416
- }
417
- };
418
- exports.getAvailableSellUnitQuantity = getAvailableSellUnitQuantity;
419
- /**
420
- * Returns true or false depending on if an item is unavailable for a specific store
421
- *
422
- * @param {number} [qte] - The quantity of the item to check in the store's inventory
423
- * @param {IIndexedProduct | ICartItem} [product] - The item
424
- * @param {IFilledDimensionUnits[] | undefined} [otherUnits] - The item's otherUnits
425
- * @param {IInventoryItem | undefined} [inventoryItem] - The inventoryItem for the store to check
426
- * @param {string | null} [storeId] - The id of the store to check
427
- * @returns {boolean} - True if the item is unavailable for that store, or false if it's available
428
- */
429
- const checkIfItemIsUnavailableForStore = (qte, product, otherUnits, inventoryItem, storeID) => {
430
- if (!!!inventoryItem ||
431
- !!inventoryItem.is_infinite_stock ||
432
- !!product.is_service ||
433
- !!product.is_sample ||
434
- !!(0, products_1.checkIfProductIsOfType)(product, 'vrac'))
435
- return false;
436
- const availableSellUnitQty = (0, exports.getAvailableSellUnitQuantity)(inventoryItem, storeID, otherUnits, product, false).value;
437
- if (!!isNaN(parseFloat(availableSellUnitQty)))
438
- return false;
439
- return qte > parseFloat(availableSellUnitQty);
440
- };
441
- exports.checkIfItemIsUnavailableForStore = checkIfItemIsUnavailableForStore;
442
- /**
443
- * Does the store have an inventory
444
- * @param store Store info
445
- * @returns True if the store has an inventory, false otherwise
446
- */
447
- const checkIfStoreHasInventory = (store) => {
448
- return !store.no_inventory_for_store;
449
- };
450
- exports.checkIfStoreHasInventory = checkIfStoreHasInventory;
451
- /**
452
- * Gets units to use in specific context for a specified space. Returns the condensed version with the unit's slug and if leftover unit quantities should be rounded to 1 in inventory calculatios
453
- * @param spaceData
454
- * @param context
455
- */
456
- const getSpaceUnitsToUseForContext = (spaceData, context) => {
457
- const spaceUnits = (0, object_1.recursiveCheckObject)(spaceData, 'transport_preferences.dimension_units') || [];
458
- return spaceUnits
459
- .filter((u) => context == 'transfers'
460
- ? !!(0, object_1.recursiveCheckObject)(u, 'use_for.transfer_request_management')
461
- : !!(0, object_1.recursiveCheckObject)(u, 'use_for.detailed_inventory_management'))
462
- .map((u) => ({
463
- slug: u.slug,
464
- roundToOneQte: !!(0, object_1.recursiveCheckObject)(u, 'specifics.should_round_to_one_unit_in_calculations')
465
- }));
466
- };
467
- exports.getSpaceUnitsToUseForContext = getSpaceUnitsToUseForContext;
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.getSpaceUnitsToUseForContext = exports.checkIfStoreHasInventory = exports.checkIfItemIsUnavailableForStore = exports.getAvailableSellUnitQuantity = exports.convertQtyFromSellUnit = exports.getQty = exports.getConvertedUnitQuantity = exports.getGroupedByBetonProducts = exports.getAttrStringForItem = exports.getAttributesToShow = exports.getUnitShortDict = exports.unitShortDict = exports.unitDict = exports.orderByAccessoires = exports.orderByBeton = exports.checkWebInventoryForType = void 0;
7
+ const flatten_1 = __importDefault(require("lodash/flatten"));
8
+ const groupBy_1 = __importDefault(require("lodash/groupBy"));
9
+ const orderBy_1 = __importDefault(require("lodash/orderBy"));
10
+ const sumBy_1 = __importDefault(require("lodash/sumBy"));
11
+ const toNumber_1 = __importDefault(require("lodash/toNumber"));
12
+ const uniq_1 = __importDefault(require("lodash/uniq"));
13
+ const IInventoryItem_1 = require("../Interfaces/Product/IInventoryItem");
14
+ const data_1 = require("../rules/GR/interfaces/data");
15
+ const locale_1 = require("./locale");
16
+ const products_1 = require("../rules/GR/utils/products");
17
+ const round_1 = __importDefault(require("lodash/round"));
18
+ const object_1 = require("./object");
19
+ const checkWebInventoryForType = (inventories, currentWebInventory, type) => {
20
+ const canSellOnline = inventories.filter((i) => i.can_sell_online);
21
+ if (!!!canSellOnline.length)
22
+ return;
23
+ return Object.assign(Object.assign({}, (!!currentWebInventory ? currentWebInventory : (0, IInventoryItem_1.getDefaultInventoryQuantities)())), { [type]: (0, sumBy_1.default)(canSellOnline, (i) => (0, toNumber_1.default)(i.qty[type] || 0)) });
24
+ };
25
+ exports.checkWebInventoryForType = checkWebInventoryForType;
26
+ exports.orderByBeton = [
27
+ 'NkLD1rmnGiFZpJA1w6js.moderne',
28
+ 'NkLD1rmnGiFZpJA1w6js.traditionnel',
29
+ 'NkLD1rmnGiFZpJA1w6js.permeable',
30
+ 'oWzANqTldrV1McGzBAU2.moderne',
31
+ 'oWzANqTldrV1McGzBAU2.traditionnel',
32
+ '9jgHOxtMVSC1QTs1d9NX',
33
+ 'IbCDQBYaPmC125hBlr2j',
34
+ 'ptd8lA1kUTsWdyufNGjh',
35
+ 'mVjg7x05H1hizbet2xsv',
36
+ 'xOQPwedYjSYavS0FJlaE',
37
+ 'axEbPjUTnk64S5kRlfh6',
38
+ 'WS0n2jiEtoYMSId78GCZ',
39
+ '87HSMsPuUBm5XEUfreu1',
40
+ 'j0aJi1eyJwLabcpaPn6a',
41
+ 'Q1rCiYAOvadUXAITj47i' // mursDeBlocArchitecturaux
42
+ ];
43
+ exports.orderByAccessoires = [
44
+ 'KrjSKiXHXa4MrRJIopJO',
45
+ '3uA7YFYwBVRYS8382JKB',
46
+ 'shmXowMw563z07Gr1k3d',
47
+ 'YZa62rG0LOnC9WKG8BRE',
48
+ 'OkeEqkF6QLNoFbzCgpdJ',
49
+ 'k2XN5GeN4PRxtbpj4BFk',
50
+ 'uDyyPN1IZGhivbV2hXiy',
51
+ 'G0xkLTH1XbFBgGGRm6Of',
52
+ 'GPFBURGlRFtAzaj5v6vr',
53
+ 'QXbBm82HL3vRc7GBjPYQ',
54
+ 'XijBekSz3MPAzACFSKUk',
55
+ 'meLuoK1SVeqUoo0bWvdz' // engraisGazon
56
+ ];
57
+ exports.unitDict = {
58
+ p2: { fr: 'Pieds Carrés', en: 'Square Feet' },
59
+ pal: { fr: 'Palette', en: 'Pallet' },
60
+ rg: { fr: 'Rangs', en: 'Row' },
61
+ ensemble: { fr: 'Ensemble', en: 'Kit' },
62
+ pl: { fr: 'Pieds linéaires', en: 'Linear feet' },
63
+ mcx: { fr: 'Morceaux', en: 'Pieces' },
64
+ unite: { fr: 'Unités', en: 'Units' },
65
+ sac: { fr: 'Sac', en: 'Bag' },
66
+ vg3: { fr: 'Verge cube', en: 'Cubic yard' },
67
+ demipalsm: { fr: 'Demi-palette (petite)', en: 'Half-pallet (small)' },
68
+ demipallg: { fr: 'Demi-palette (lg)', en: 'Half-pallet (lg)' },
69
+ tonne: { fr: 'Tonne', en: 'Ton' },
70
+ roul: { fr: 'Rouleau', en: 'Roll' },
71
+ bte: { fr: 'Boîte', en: 'Box' },
72
+ pqt: { fr: 'Paquet', en: 'Bundle' },
73
+ '': { fr: 'Unités', en: 'Units' }
74
+ };
75
+ exports.unitShortDict = {
76
+ p2: { fr: 'pi²', en: 'pi²' },
77
+ pal: { fr: 'pal.', en: 'pal.' },
78
+ rg: { fr: 'rg', en: 'row' },
79
+ ensemble: { fr: 'ens.', en: 'kit' },
80
+ pl: { fr: 'pL', en: 'linear feet' },
81
+ mcx: { fr: 'mcx', en: 'piece' },
82
+ unite: { fr: 'unité', en: 'unit' },
83
+ sac: { fr: 'sac', en: 'bag' },
84
+ vg3: { fr: 'vg³', en: 'yd³' },
85
+ demipalsm: { fr: 'Demi-pal. (petite)', en: 'Half-pal. (sm)' },
86
+ demipallg: { fr: 'Demi-pal. (lg)', en: 'Half-pal. (lg)' },
87
+ tonne: { fr: 'tonne', en: 'ton' },
88
+ roul: { fr: 'roul.', en: 'roll' },
89
+ bte: { fr: 'bte', en: 'box' },
90
+ pqt: { fr: 'pqt', en: 'bundle' },
91
+ '': { fr: 'unité', en: 'unit' }
92
+ };
93
+ /**
94
+ * Returns the dictionnary containing the shortened version of unit labels in multiple languages
95
+ * @param {string} slug The slug for which we want to get the shortened dictionnary
96
+ * @param {string[]} returnUnitForSlugs An array of slugs that we want to return a default dictionnary for, in this case the unit dictionnary for unit
97
+ * @returns {ILang} The dictionnary containing the shortened unit label in multiple languages
98
+ */
99
+ const getUnitShortDict = (slug, returnUnitForSlugs) => {
100
+ try {
101
+ if (!!returnUnitForSlugs && !!returnUnitForSlugs.includes(slug)) {
102
+ return exports.unitShortDict['unite'];
103
+ }
104
+ const res = exports.unitShortDict[slug];
105
+ if (!!!res)
106
+ return { fr: slug, en: slug };
107
+ return res;
108
+ }
109
+ catch (err) {
110
+ console.log(err);
111
+ return { fr: slug, en: slug };
112
+ }
113
+ };
114
+ exports.getUnitShortDict = getUnitShortDict;
115
+ const getOrganizedIndexedDecliAttributes = (decli) => {
116
+ return (0, flatten_1.default)(Object.entries(decli.attributes).map((attrArr) => {
117
+ const newArray = !!!attrArr[1] ? [] : attrArr[1].map((aValue) => `${attrArr[0]}.${aValue}`);
118
+ return (0, flatten_1.default)(newArray);
119
+ }));
120
+ };
121
+ const getAttributesToShow = (currentItems) => {
122
+ const allAttributesPerItem = currentItems.map((item) => !!Array.isArray(item.attributes) ? item.attributes : getOrganizedIndexedDecliAttributes(item));
123
+ const allAttributes = (0, uniq_1.default)((0, flatten_1.default)(allAttributesPerItem));
124
+ const group = (0, groupBy_1.default)(allAttributes, (a) => a.split('.')[0]);
125
+ const parentAttributesToShow = Object.entries(group)
126
+ .map((g) => {
127
+ let attrToShow = undefined;
128
+ // Remove spécific attributes from the list
129
+ if ([
130
+ data_1.AttributesIdEnumGR.AVAILABILITY,
131
+ data_1.AttributesIdEnumGR.TYPE,
132
+ data_1.AttributesIdEnumGR.MARKETING,
133
+ data_1.AttributesIdEnumGR.COLOR_GROUP,
134
+ data_1.AttributesIdEnumGR.VENTE_MIXTE,
135
+ data_1.AttributesIdEnumGR.TYPE_UTILISATION_BETON
136
+ ].includes(g[0])) {
137
+ return attrToShow;
138
+ }
139
+ // Check if the attribute values present in the item list are the same for all items. If so, remove from list
140
+ if (g[1].length > 1) {
141
+ const allItemsContainAllAttr = allAttributesPerItem.every((itemAttributes) => {
142
+ const sameAttr = itemAttributes.filter((attr) => attr.includes(g[0]));
143
+ if (!!!sameAttr)
144
+ return false;
145
+ return sameAttr.length === g[1].length && sameAttr.every((attr) => g[1].includes(attr));
146
+ });
147
+ // if not all items contain all attribute values, add to attributes to show
148
+ if (!!!allItemsContainAllAttr) {
149
+ attrToShow = g[0];
150
+ }
151
+ }
152
+ return attrToShow;
153
+ })
154
+ .filter((v) => !!v);
155
+ return parentAttributesToShow;
156
+ };
157
+ exports.getAttributesToShow = getAttributesToShow;
158
+ const attrToShowInItem = (item, attributesToShow) => {
159
+ const itemAttributes = Array.isArray(item.attributes)
160
+ ? item.attributes
161
+ : getOrganizedIndexedDecliAttributes(item);
162
+ return itemAttributes
163
+ .map((a) => {
164
+ if (attributesToShow.find((attr_id) => attr_id === a.split('.')[0])) {
165
+ return a;
166
+ }
167
+ return;
168
+ })
169
+ .filter((v) => !!v);
170
+ };
171
+ const attrString = (attrToShow, attributes, locale) => {
172
+ const valuesArray = (0, orderBy_1.default)(attrToShow, (a) => a.split('.')[0] === 'Sy9GlMjUcqUkvKeqLuSz' ? 'AAA' : a.split('.')[0][0]).map((attr) => {
173
+ const attribute = attributes.find((a) => a.id === attr.split('.')[0]);
174
+ if (!!!attribute)
175
+ return '';
176
+ const attributeValue = attribute.values.find((a) => a.slug === attr.split('.')[1]);
177
+ if (!!!attributeValue)
178
+ return '';
179
+ return (0, locale_1.getLocaleOfDictionnary)(attributeValue.value, locale);
180
+ });
181
+ return valuesArray.join(' - ');
182
+ };
183
+ const getAttrStringForItem = (inventoryItem, attributesToShow, attributes, locale = 'fr') => {
184
+ const attrToShow = attrToShowInItem(inventoryItem, attributesToShow);
185
+ const attrStr = attrString(attrToShow, attributes, locale);
186
+ return attrStr;
187
+ };
188
+ exports.getAttrStringForItem = getAttrStringForItem;
189
+ const getGroupedByBetonProducts = (arrBeton, categories) => {
190
+ return (0, groupBy_1.default)(arrBeton, (item) => {
191
+ const categorySlugLvl0 = !!item.categories ? item.categories['lvl0'] : '';
192
+ const categorySlugLvl1 = !!item.categories && !!item.categories['lvl1'] ? item.categories['lvl1'].split(' > ')[1] : '';
193
+ const categorySlugLvl2 = !!item.categories && !!item.categories['lvl2'] ? item.categories['lvl2'].split(' > ')[2] : '';
194
+ const lvl0CategoryId = !!categorySlugLvl0 && categories.some((c) => c.slug === categorySlugLvl0)
195
+ ? categories.find((c) => c.slug === categorySlugLvl0).id
196
+ : '';
197
+ const lvl1CategoryId = !!categorySlugLvl1 && categories.some((c) => c.slug === categorySlugLvl1)
198
+ ? categories.find((c) => c.slug === categorySlugLvl1).id
199
+ : '';
200
+ const lvl2CategoryId = !!categorySlugLvl2 && categories.some((c) => c.slug === categorySlugLvl2)
201
+ ? categories.find((c) => c.slug === categorySlugLvl2).id
202
+ : '';
203
+ const sameCategoryId = !!lvl2CategoryId && !!exports.orderByBeton.some((order) => order.includes(lvl2CategoryId))
204
+ ? lvl2CategoryId
205
+ : !!lvl1CategoryId && !!exports.orderByBeton.some((order) => order.includes(lvl1CategoryId))
206
+ ? lvl1CategoryId
207
+ : !!lvl0CategoryId && !!exports.orderByBeton.some((order) => order.includes(lvl0CategoryId))
208
+ ? lvl0CategoryId
209
+ : '';
210
+ const attrDict = Object.entries(item.attributes);
211
+ const foundAttr = attrDict.find((attr) => attr[0] === data_1.AttributesIdEnumGR.STYLE);
212
+ const foundSameCat = !!exports.orderByBeton.some((order) => order.includes(`${sameCategoryId}.`));
213
+ const styleAttribute = foundSameCat && foundAttr ? foundAttr[1][0] : '';
214
+ return !!!sameCategoryId && !!!styleAttribute
215
+ ? 'zzzzzzz'
216
+ : `${sameCategoryId}${!!styleAttribute ? '.' + styleAttribute : ''}`;
217
+ });
218
+ };
219
+ exports.getGroupedByBetonProducts = getGroupedByBetonProducts;
220
+ /**
221
+ * Convert a given quantity to either inventory of sale unit, using an item's unit array.
222
+ * @param otherUnits The item's possible units array
223
+ * @param qte The quantity to convert
224
+ * @param convertTo The unit type for conversion.
225
+ * @param roundResult Optionnal. If result should be rounded. Checks if unit supports decimals (if so, rounds to 2 decimals. Else, rounds to 0).
226
+ */
227
+ const getConvertedUnitQuantity = (otherUnits, qte, convertTo, roundResult) => {
228
+ if (!!!otherUnits)
229
+ return qte;
230
+ const sellUnit = otherUnits.find((unit) => unit.is_sale_unit);
231
+ if (!!!sellUnit)
232
+ return qte;
233
+ let inventoryUnit = otherUnits.find((unit) => unit.is_inventory_unit);
234
+ if (!!!inventoryUnit)
235
+ inventoryUnit = otherUnits.find((unit) => unit.fitting_unit == 1);
236
+ if (!!!inventoryUnit)
237
+ return qte;
238
+ if (inventoryUnit.unit_slug === sellUnit.unit_slug)
239
+ return qte;
240
+ if (convertTo === 'sale_unit') {
241
+ const calculated = qte * (1 / (sellUnit.fitting_unit || 1));
242
+ if (!roundResult)
243
+ return calculated;
244
+ return (0, round_1.default)(calculated, (0, products_1.productUnitSupportsDecimals)(sellUnit.unit_slug) ? 2 : 0);
245
+ }
246
+ const calculated = qte * (sellUnit.fitting_unit || 1);
247
+ if (!roundResult)
248
+ return calculated;
249
+ return (0, round_1.default)(calculated, (0, products_1.productUnitSupportsDecimals)(inventoryUnit.unit_slug) ? 2 : 0);
250
+ };
251
+ exports.getConvertedUnitQuantity = getConvertedUnitQuantity;
252
+ /**
253
+ * Constructs object with detailled inventory quantities by unit (based on other_units for product)
254
+ * @param otherUnits
255
+ * @param inventoryQuantity
256
+ * @param options.showNegativeInventory - Optionnal
257
+ * @param options.unitSlugsToCheck - Optionnal. If provided, only checks for provided units.
258
+ * @param options.log - Ooptionnal. If true, logs found data at each step to browser
259
+ * @returns A key-value object where the key is the unit slug, and the value contains the calculated amount for unit, the fitting unit ratio, and if is the "smallest" unit, the true slug of the corresponding unit
260
+ */
261
+ const getQty = (otherUnits, inventoryQuantity, unitSlugsToCheck, options = {}) => {
262
+ let qtyUnits = {};
263
+ let calculatedUnits = [];
264
+ const unitsToCheck = unitSlugsToCheck || [
265
+ { slug: 'pal', roundToOneQte: true },
266
+ { slug: 'unite', roundToOneQte: false }
267
+ ];
268
+ if (options.log)
269
+ console.log('qtyUnits at beggining: ', Object.assign({}, qtyUnits), 'otherunits here: ', otherUnits);
270
+ const isNegativeQty = inventoryQuantity < 0 && !!options.showNegativeInventory;
271
+ // If negative quantities should be shown, we still need to calculate quantities with positive values to get correct other unit quantites
272
+ // Quantities will be "reset" to negative later in the function
273
+ if (!!isNegativeQty)
274
+ inventoryQuantity = inventoryQuantity * -1;
275
+ if (!!!otherUnits ||
276
+ !!!otherUnits.length ||
277
+ !!otherUnits
278
+ .filter((other_unit) => other_unit.unit_slug !== 'booking')
279
+ .every((other_unit) => !!!other_unit.fitting_unit)) {
280
+ qtyUnits['unite'] = {
281
+ value: inventoryQuantity * (!!isNegativeQty ? -1 : 1),
282
+ fitting_unit: 1
283
+ };
284
+ return qtyUnits;
285
+ }
286
+ const orderedOtherUnits = (0, orderBy_1.default)(otherUnits, 'fitting_unit', 'desc');
287
+ const calculateRest = (currentRest, currentValue, fittingUnit) => {
288
+ let rest = 0;
289
+ if (currentValue < 1) {
290
+ rest = currentRest;
291
+ }
292
+ else {
293
+ const calculatedRest = (currentRest % (fittingUnit || 1)) * (currentRest > 0 ? 1 : -1);
294
+ rest = calculatedRest < 0.001 ? 0 : calculatedRest;
295
+ }
296
+ return rest;
297
+ };
298
+ let rest = inventoryQuantity;
299
+ if (options.log)
300
+ console.log('rest at start: ', rest, ', orderedUnits: ', orderedOtherUnits);
301
+ // NEW - Now loops on all units and returns values for equivalent found in unitsToCheck array + inventory Unit for product if not already included
302
+ for (let unit of orderedOtherUnits) {
303
+ const slug = unit.unit_slug;
304
+ if (options.log)
305
+ console.log('checking for unit: ', slug);
306
+ const isInventoryUnit = unit.is_inventory_unit || (orderedOtherUnits.every((u) => !u.is_inventory_unit) && unit.fitting_unit == 1);
307
+ let inUnitsToCheck = unitsToCheck.find((u) => u.slug == slug);
308
+ const alreadyInArray = calculatedUnits.some((u) => u.slug == slug || u.fittingUnit == unit.fitting_unit);
309
+ if (options.log)
310
+ console.log('slug: ', slug, ', inUnitsToCheck: ', inUnitsToCheck, ', isInventoryUnit: ', isInventoryUnit);
311
+ // Only continue check for unit if :
312
+ // - equivalent unit not already in calculated values array
313
+ // - unit found in units to check OR is inventory unit for product
314
+ // - fitting unit for unit is a valid number
315
+ if (!alreadyInArray && (!!inUnitsToCheck || isInventoryUnit) && !!unit.fitting_unit) {
316
+ const shouldRoundToOne = !!inUnitsToCheck && inUnitsToCheck.roundToOneQte;
317
+ const value = rest / (unit.fitting_unit || 1);
318
+ // Unit label in new objet is either :
319
+ // - the label "unite" if unit is inventory unit and should use generic label option
320
+ // - else the unit's "normal" slug
321
+ const unitLabelToUpdate = isInventoryUnit && !options.returnTrueUnitSlug && !shouldRoundToOne ? 'unite' : slug;
322
+ qtyUnits[unitLabelToUpdate] = Object.assign({ value: _getQtyValue(value, unit.fitting_unit === 1, isNegativeQty), fitting_unit: unit.fitting_unit || 1, is_inventory_unit: isInventoryUnit }, (isInventoryUnit && !options.returnTrueUnitSlug && !shouldRoundToOne ? { true_unit: slug } : {}));
323
+ if (!!options.log) {
324
+ console.log('_getQtyValue ', _getQtyValue(value, unit.fitting_unit === 1, isNegativeQty));
325
+ console.log(`qtyUnits after ${slug}: `, Object.assign({}, qtyUnits));
326
+ }
327
+ // Calculate rest from new value remove for current unit
328
+ rest = calculateRest(rest, value, unit.fitting_unit);
329
+ if (options.log) {
330
+ console.log('rest calculated: ', rest);
331
+ console.log('shouldRoundToOne: ', shouldRoundToOne);
332
+ }
333
+ // If unit has property roundToOneQte, and the left over rest quantity is equivalent to one unit of current uni
334
+ // Add 1 quantity to value for current unit, and set rest to 0 (no need to loop in next unit!)
335
+ if (shouldRoundToOne) {
336
+ let restToCheck = !(0, products_1.productUnitSupportsDecimals)(slug) ? (0, round_1.default)(rest) : rest;
337
+ if (options.log)
338
+ console.log('value: ', value, ', rest & restToCheck: ', rest, restToCheck);
339
+ if (value > 1 && restToCheck == unit.fitting_unit) {
340
+ qtyUnits[unitLabelToUpdate]['value'] = qtyUnits[unitLabelToUpdate].value + (!!isNegativeQty ? -1 : 1);
341
+ rest = 0;
342
+ }
343
+ }
344
+ if (options.log) {
345
+ console.log(`rest after ${slug}: `, rest);
346
+ console.log(`qtyUnits after round to one check`, Object.assign({}, qtyUnits));
347
+ }
348
+ // Push unit values to calculated unit array to keep track and check for "doubled" unit values in later loops
349
+ calculatedUnits.push({ slug: slug, fittingUnit: unit.fitting_unit });
350
+ }
351
+ }
352
+ return qtyUnits;
353
+ };
354
+ exports.getQty = getQty;
355
+ /**
356
+ * Calculates inventory unit quantity for function getQty
357
+ * @param value
358
+ * @param isUnitFittingUnit
359
+ * @param isNegativeQty
360
+ */
361
+ const _getQtyValue = (value, _isUnitFittingUnit, isNegativeQty) => {
362
+ if (value < 1)
363
+ return 0;
364
+ const roundedValue = Math.floor((0, round_1.default)(value, 5));
365
+ return roundedValue * (!!isNegativeQty ? -1 : 1);
366
+ };
367
+ const convertQtyFromSellUnit = (allUnits, sellUnitQty, convertToUnitSlug) => {
368
+ if (!!!allUnits)
369
+ return sellUnitQty;
370
+ const sellUnit = allUnits.find((u) => !!u.is_sale_unit);
371
+ const convertToUnit = allUnits.find((u) => u.unit_slug === convertToUnitSlug);
372
+ if (!!!sellUnit)
373
+ return sellUnitQty;
374
+ if (!!!convertToUnit)
375
+ return sellUnitQty;
376
+ if (sellUnit.unit_slug === convertToUnit.unit_slug)
377
+ return sellUnitQty;
378
+ return (sellUnitQty * (sellUnit.fitting_unit || 1)) / (convertToUnit.fitting_unit || 1);
379
+ };
380
+ exports.convertQtyFromSellUnit = convertQtyFromSellUnit;
381
+ /**
382
+ * Returns the quantities available for a product based on the current store branch.
383
+ *
384
+ * @param {IInventoryItem} [inventory] - The inventoryItem to check
385
+ * @param {string | null | undefined} [currentSucc] - The current store's slug
386
+ * @param {IFilledDimensionUnits[] | undefined} [otherUnits] - The item's other_units
387
+ * @param {IIndexedProduct | ICartItem} [product] - The item to check
388
+ * @param {boolean} [roundQty] - Wether we want to round to qty string or not
389
+ * @returns {{value: number|string, unit:string}} - The string representation of the available quantity or 'Non disponible' if there's no inventory available.
390
+ */
391
+ const getAvailableSellUnitQuantity = (inventory, currentSucc, otherUnits, product, roundQty = true) => {
392
+ if (!!!currentSucc || !!!otherUnits)
393
+ return { value: '', unit: '' };
394
+ const saleUnit = otherUnits.find((u) => !!u.is_sale_unit);
395
+ const storeInv = inventory.inventories.find((i) => i.store_id === currentSucc);
396
+ if (!!(0, products_1.checkIfProductIsOfType)(product, 'vrac') && !!storeInv) {
397
+ const available = !!!storeInv.unavailable_in_store;
398
+ return { value: !!available ? 'Disponible' : 'Non-disponible', unit: '' };
399
+ }
400
+ else {
401
+ if (!!inventory.is_infinite_stock || !!product.is_service || !!!storeInv)
402
+ return { value: 'Disponible', unit: '' };
403
+ let invValue = storeInv.qty.available;
404
+ if (invValue < 0)
405
+ invValue = 0;
406
+ const sellUnitValue = (0, exports.getConvertedUnitQuantity)(otherUnits, invValue, 'sale_unit');
407
+ let convertedValue;
408
+ if (!!roundQty) {
409
+ convertedValue = sellUnitValue.toFixed(!!saleUnit && !!(0, products_1.productUnitSupportsDecimals)(saleUnit.unit_slug) ? 2 : 0);
410
+ }
411
+ else {
412
+ convertedValue = sellUnitValue.toString();
413
+ }
414
+ const unit = (0, products_1.getUnitLabelWithSlug)(!!saleUnit ? saleUnit.unit_slug : 'unite', 'fr', true, ['booking']);
415
+ return { value: convertedValue, unit };
416
+ }
417
+ };
418
+ exports.getAvailableSellUnitQuantity = getAvailableSellUnitQuantity;
419
+ /**
420
+ * Returns true or false depending on if an item is unavailable for a specific store
421
+ *
422
+ * @param {number} [qte] - The quantity of the item to check in the store's inventory
423
+ * @param {IIndexedProduct | ICartItem} [product] - The item
424
+ * @param {IFilledDimensionUnits[] | undefined} [otherUnits] - The item's otherUnits
425
+ * @param {IInventoryItem | undefined} [inventoryItem] - The inventoryItem for the store to check
426
+ * @param {string | null} [storeId] - The id of the store to check
427
+ * @returns {boolean} - True if the item is unavailable for that store, or false if it's available
428
+ */
429
+ const checkIfItemIsUnavailableForStore = (qte, product, otherUnits, inventoryItem, storeID) => {
430
+ if (!!!inventoryItem ||
431
+ !!inventoryItem.is_infinite_stock ||
432
+ !!product.is_service ||
433
+ !!product.is_sample ||
434
+ !!(0, products_1.checkIfProductIsOfType)(product, 'vrac'))
435
+ return false;
436
+ const availableSellUnitQty = (0, exports.getAvailableSellUnitQuantity)(inventoryItem, storeID, otherUnits, product, false).value;
437
+ if (!!isNaN(parseFloat(availableSellUnitQty)))
438
+ return false;
439
+ return qte > parseFloat(availableSellUnitQty);
440
+ };
441
+ exports.checkIfItemIsUnavailableForStore = checkIfItemIsUnavailableForStore;
442
+ /**
443
+ * Does the store have an inventory
444
+ * @param store Store info
445
+ * @returns True if the store has an inventory, false otherwise
446
+ */
447
+ const checkIfStoreHasInventory = (store) => {
448
+ return !store.no_inventory_for_store;
449
+ };
450
+ exports.checkIfStoreHasInventory = checkIfStoreHasInventory;
451
+ /**
452
+ * Gets units to use in specific context for a specified space. Returns the condensed version with the unit's slug and if leftover unit quantities should be rounded to 1 in inventory calculatios
453
+ * @param spaceData
454
+ * @param context
455
+ */
456
+ const getSpaceUnitsToUseForContext = (spaceData, context) => {
457
+ const spaceUnits = (0, object_1.recursiveCheckObject)(spaceData, 'transport_preferences.dimension_units') || [];
458
+ return spaceUnits
459
+ .filter((u) => context == 'transfers'
460
+ ? !!(0, object_1.recursiveCheckObject)(u, 'use_for.transfer_request_management')
461
+ : !!(0, object_1.recursiveCheckObject)(u, 'use_for.detailed_inventory_management'))
462
+ .map((u) => ({
463
+ slug: u.slug,
464
+ roundToOneQte: !!(0, object_1.recursiveCheckObject)(u, 'specifics.should_round_to_one_unit_in_calculations')
465
+ }));
466
+ };
467
+ exports.getSpaceUnitsToUseForContext = getSpaceUnitsToUseForContext;
468
468
  //# sourceMappingURL=inventories.js.map