@silexpert/core 1.2.26 → 1.2.28

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 (474) hide show
  1. package/dist/cjs/api/index.d.ts.map +1 -1
  2. package/dist/cjs/api/index.js +8 -3
  3. package/dist/cjs/api/index.js.map +1 -1
  4. package/dist/cjs/api/resources/Employee.d.ts.map +1 -1
  5. package/dist/cjs/api/resources/Employee.js +1 -0
  6. package/dist/cjs/api/resources/Employee.js.map +1 -1
  7. package/dist/cjs/api/resources/RegistrationForm.d.ts +3 -2
  8. package/dist/cjs/api/resources/RegistrationForm.d.ts.map +1 -1
  9. package/dist/cjs/api/resources/RegistrationForm.js +4 -1
  10. package/dist/cjs/api/resources/RegistrationForm.js.map +1 -1
  11. package/dist/cjs/api/resources/Task.d.ts.map +1 -1
  12. package/dist/cjs/api/resources/Task.js +1 -0
  13. package/dist/cjs/api/resources/Task.js.map +1 -1
  14. package/dist/cjs/index.d.ts.map +1 -1
  15. package/dist/cjs/index.js +0 -1
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/cjs/types/Enum/Aspone.d.ts +57 -0
  18. package/dist/cjs/types/Enum/Aspone.d.ts.map +1 -1
  19. package/dist/cjs/types/Enum/Aspone.js +94 -1
  20. package/dist/cjs/types/Enum/Aspone.js.map +1 -1
  21. package/dist/cjs/types/Enum/BalanceSheet.js +1 -1
  22. package/dist/cjs/types/Enum/BalanceSheet.js.map +1 -1
  23. package/dist/cjs/types/Enum/BalanceSheetQuestion.d.ts.map +1 -1
  24. package/dist/cjs/types/Enum/BalanceSheetQuestion.js +2 -0
  25. package/dist/cjs/types/Enum/BalanceSheetQuestion.js.map +1 -1
  26. package/dist/cjs/types/Enum/BalanceSheetQuestionWording.d.ts.map +1 -1
  27. package/dist/cjs/types/Enum/BalanceSheetQuestionWording.js +1 -0
  28. package/dist/cjs/types/Enum/BalanceSheetQuestionWording.js.map +1 -1
  29. package/dist/cjs/types/Enum/CerfaType.d.ts +2 -1
  30. package/dist/cjs/types/Enum/CerfaType.d.ts.map +1 -1
  31. package/dist/cjs/types/Enum/CerfaType.js +1 -0
  32. package/dist/cjs/types/Enum/CerfaType.js.map +1 -1
  33. package/dist/cjs/types/Enum/CommercialManagement.d.ts +28 -0
  34. package/dist/cjs/types/Enum/CommercialManagement.d.ts.map +1 -1
  35. package/dist/cjs/types/Enum/CommercialManagement.js +137 -1
  36. package/dist/cjs/types/Enum/CommercialManagement.js.map +1 -1
  37. package/dist/cjs/types/Enum/RevisionGuide.d.ts.map +1 -1
  38. package/dist/cjs/types/Enum/RevisionGuide.js +5 -0
  39. package/dist/cjs/types/Enum/RevisionGuide.js.map +1 -1
  40. package/dist/cjs/types/Enum/Role.d.ts.map +1 -1
  41. package/dist/cjs/types/Enum/Role.js +1 -0
  42. package/dist/cjs/types/Enum/Role.js.map +1 -1
  43. package/dist/cjs/types/Enum/SalesContractBrandClementine.js +4 -4
  44. package/dist/cjs/types/Enum/SalesContractBrandClementine.js.map +1 -1
  45. package/dist/cjs/types/Enum/SalesContractBrandPourcentage.d.ts +1 -26
  46. package/dist/cjs/types/Enum/SalesContractBrandPourcentage.d.ts.map +1 -1
  47. package/dist/cjs/types/Enum/SalesContractBrandPourcentage.js +6 -6
  48. package/dist/cjs/types/Enum/SalesContractBrandPourcentage.js.map +1 -1
  49. package/dist/cjs/types/Enum/TransactionKind.d.ts.map +1 -1
  50. package/dist/cjs/types/Enum/TransactionKind.js.map +1 -1
  51. package/dist/cjs/types/Enum/TransactionStatus.d.ts.map +1 -1
  52. package/dist/cjs/types/Enum/TransactionStatus.js.map +1 -1
  53. package/dist/cjs/types/Enum/TypePayment.d.ts.map +1 -1
  54. package/dist/cjs/types/Enum/TypePayment.js +1 -0
  55. package/dist/cjs/types/Enum/TypePayment.js.map +1 -1
  56. package/dist/cjs/types/Interface/api/accountingFiles/Ocr.d.ts.map +1 -1
  57. package/dist/cjs/types/Interface/api/accountingFiles/Ocr.js.map +1 -1
  58. package/dist/cjs/types/Interface/api/cerfa/2573.d.ts +91 -0
  59. package/dist/cjs/types/Interface/api/cerfa/2573.d.ts.map +1 -0
  60. package/dist/cjs/types/Interface/api/cerfa/2573.js +3 -0
  61. package/dist/cjs/types/Interface/api/cerfa/2573.js.map +1 -0
  62. package/dist/cjs/types/Interface/api/cerfa/CreateCerfa.d.ts +1 -0
  63. package/dist/cjs/types/Interface/api/cerfa/CreateCerfa.d.ts.map +1 -1
  64. package/dist/cjs/types/Interface/api/cerfa/CreateCerfa.js +1 -0
  65. package/dist/cjs/types/Interface/api/cerfa/CreateCerfa.js.map +1 -1
  66. package/dist/cjs/types/Interface/api/cerfa/ReadCerfa.d.ts +2 -1
  67. package/dist/cjs/types/Interface/api/cerfa/ReadCerfa.d.ts.map +1 -1
  68. package/dist/cjs/types/Interface/api/cerfa/ReadCerfa.js.map +1 -1
  69. package/dist/cjs/types/Interface/api/checklist/Read.d.ts +1 -0
  70. package/dist/cjs/types/Interface/api/checklist/Read.d.ts.map +1 -1
  71. package/dist/cjs/types/Interface/api/checklist/Read.js.map +1 -1
  72. package/dist/cjs/types/Interface/api/commercialManagement/Create.d.ts +15 -0
  73. package/dist/cjs/types/Interface/api/commercialManagement/Create.d.ts.map +1 -1
  74. package/dist/cjs/types/Interface/api/commercialManagement/Create.js +70 -1
  75. package/dist/cjs/types/Interface/api/commercialManagement/Create.js.map +1 -1
  76. package/dist/cjs/types/Interface/api/commercialManagement/Read.d.ts +4 -0
  77. package/dist/cjs/types/Interface/api/commercialManagement/Read.d.ts.map +1 -1
  78. package/dist/cjs/types/Interface/api/commercialManagement/Read.js.map +1 -1
  79. package/dist/cjs/types/Interface/api/config/ConfigType.d.ts +282 -0
  80. package/dist/cjs/types/Interface/api/config/ConfigType.d.ts.map +1 -0
  81. package/dist/cjs/types/Interface/api/config/ConfigType.js +3 -0
  82. package/dist/cjs/types/Interface/api/config/ConfigType.js.map +1 -0
  83. package/dist/cjs/types/Interface/api/crisp/GetCrisp.d.ts.map +1 -1
  84. package/dist/cjs/types/Interface/api/crisp/GetCrisp.js.map +1 -1
  85. package/dist/cjs/types/Interface/api/exerciceQuestion/CreateExerciceQuestion.d.ts.map +1 -1
  86. package/dist/cjs/types/Interface/api/exerciceQuestion/CreateExerciceQuestion.js +3 -1
  87. package/dist/cjs/types/Interface/api/exerciceQuestion/CreateExerciceQuestion.js.map +1 -1
  88. package/dist/cjs/types/Interface/api/journal/Journals.d.ts.map +1 -1
  89. package/dist/cjs/types/Interface/api/journal/Journals.js.map +1 -1
  90. package/dist/cjs/types/Interface/api/kilometricAllowance/CreateKilometricAllowanceValidation.d.ts.map +1 -1
  91. package/dist/cjs/types/Interface/api/kilometricAllowance/CreateKilometricAllowanceValidation.js +3 -1
  92. package/dist/cjs/types/Interface/api/kilometricAllowance/CreateKilometricAllowanceValidation.js.map +1 -1
  93. package/dist/cjs/types/Interface/api/notion/NotionResponse.d.ts +4 -4
  94. package/dist/cjs/types/Interface/api/notion/NotionResponse.d.ts.map +1 -1
  95. package/dist/cjs/types/Interface/api/notion/NotionResponse.js.map +1 -1
  96. package/dist/cjs/types/Interface/api/pappers/QueryPappers.d.ts.map +1 -1
  97. package/dist/cjs/types/Interface/api/pappers/QueryPappers.js.map +1 -1
  98. package/dist/cjs/types/Interface/api/promoCode/CreateDefaultPromoCode.d.ts.map +1 -1
  99. package/dist/cjs/types/Interface/api/promoCode/CreateDefaultPromoCode.js +3 -1
  100. package/dist/cjs/types/Interface/api/promoCode/CreateDefaultPromoCode.js.map +1 -1
  101. package/dist/cjs/types/Interface/api/promoCode/ReadDefaultPromotion.d.ts.map +1 -1
  102. package/dist/cjs/types/Interface/api/promoCode/ReadDefaultPromotion.js.map +1 -1
  103. package/dist/cjs/types/Interface/api/registration/CreateRegistration.d.ts +2 -0
  104. package/dist/cjs/types/Interface/api/registration/CreateRegistration.d.ts.map +1 -1
  105. package/dist/cjs/types/Interface/api/registration/CreateRegistration.js.map +1 -1
  106. package/dist/cjs/types/Interface/api/shopify/ShopifyFinancialStatus.d.ts.map +1 -1
  107. package/dist/cjs/types/Interface/api/shopify/ShopifyFinancialStatus.js.map +1 -1
  108. package/dist/cjs/types/Interface/api/shopify/ShopifyOrder.d.ts.map +1 -1
  109. package/dist/cjs/types/Interface/api/shopify/ShopifyOrder.js.map +1 -1
  110. package/dist/cjs/types/Interface/api/shopify/discount_code.d.ts.map +1 -1
  111. package/dist/cjs/types/Interface/api/shopify/discount_code.js.map +1 -1
  112. package/dist/cjs/types/Interface/api/shopify/shipping_line.d.ts.map +1 -1
  113. package/dist/cjs/types/Interface/api/shopify/shipping_line.js.map +1 -1
  114. package/dist/cjs/types/Interface/models/IBalanceSheetQuestion.d.ts.map +1 -1
  115. package/dist/cjs/types/Interface/models/IBalanceSheetQuestion.js.map +1 -1
  116. package/dist/cjs/types/Interface/models/IFecFile.d.ts.map +1 -1
  117. package/dist/cjs/types/Interface/models/IFecFile.js.map +1 -1
  118. package/dist/cjs/types/Interface/models/IRegistration.d.ts.map +1 -1
  119. package/dist/cjs/types/Interface/models/IRegistration.js.map +1 -1
  120. package/dist/cjs/types/Interface/models/ISaleEmail.d.ts +15 -0
  121. package/dist/cjs/types/Interface/models/ISaleEmail.d.ts.map +1 -0
  122. package/dist/cjs/types/Interface/models/ISaleEmail.js +3 -0
  123. package/dist/cjs/types/Interface/models/ISaleEmail.js.map +1 -0
  124. package/dist/cjs/types/Interface/models/IUser.d.ts.map +1 -1
  125. package/dist/cjs/types/Interface/models/IUser.js.map +1 -1
  126. package/dist/cjs/types/index.d.ts +2 -0
  127. package/dist/cjs/types/index.d.ts.map +1 -1
  128. package/dist/cjs/types/index.js +2 -0
  129. package/dist/cjs/types/index.js.map +1 -1
  130. package/dist/cjs/utils/brands.d.ts.map +1 -1
  131. package/dist/cjs/utils/brands.js +5 -0
  132. package/dist/cjs/utils/brands.js.map +1 -1
  133. package/dist/cjs/utils/checkup.d.ts.map +1 -1
  134. package/dist/cjs/utils/checkup.js +5 -0
  135. package/dist/cjs/utils/checkup.js.map +1 -1
  136. package/dist/cjs/utils/commercialManagement/document.d.ts.map +1 -1
  137. package/dist/cjs/utils/commercialManagement/document.js +6 -5
  138. package/dist/cjs/utils/commercialManagement/document.js.map +1 -1
  139. package/dist/cjs/utils/commercialManagement/recurrence.js +2 -2
  140. package/dist/cjs/utils/commercialManagement/recurrence.js.map +1 -1
  141. package/dist/cjs/utils/commercialManagement/saleEmail.d.ts +10 -0
  142. package/dist/cjs/utils/commercialManagement/saleEmail.d.ts.map +1 -0
  143. package/dist/cjs/utils/commercialManagement/saleEmail.js +34 -0
  144. package/dist/cjs/utils/commercialManagement/saleEmail.js.map +1 -0
  145. package/dist/cjs/utils/commercialManagement/vat.d.ts.map +1 -1
  146. package/dist/cjs/utils/commercialManagement/vat.js +1 -0
  147. package/dist/cjs/utils/commercialManagement/vat.js.map +1 -1
  148. package/dist/cjs/utils/date.d.ts.map +1 -1
  149. package/dist/cjs/utils/date.js +9 -0
  150. package/dist/cjs/utils/date.js.map +1 -1
  151. package/dist/cjs/utils/decorators.d.ts.map +1 -1
  152. package/dist/cjs/utils/decorators.js +3 -4
  153. package/dist/cjs/utils/decorators.js.map +1 -1
  154. package/dist/cjs/utils/email.d.ts.map +1 -1
  155. package/dist/cjs/utils/email.js +22 -0
  156. package/dist/cjs/utils/email.js.map +1 -1
  157. package/dist/cjs/utils/isUrl.d.ts.map +1 -1
  158. package/dist/cjs/utils/isUrl.js +1 -2
  159. package/dist/cjs/utils/isUrl.js.map +1 -1
  160. package/dist/cjs/utils/noLodash.d.ts.map +1 -1
  161. package/dist/cjs/utils/noLodash.js +10 -2
  162. package/dist/cjs/utils/noLodash.js.map +1 -1
  163. package/dist/cjs/utils/objectUtils/flattenObject.d.ts.map +1 -1
  164. package/dist/cjs/utils/objectUtils/flattenObject.js +1 -0
  165. package/dist/cjs/utils/objectUtils/flattenObject.js.map +1 -1
  166. package/dist/cjs/utils/objectUtils/fullFlattenObject.d.ts.map +1 -1
  167. package/dist/cjs/utils/objectUtils/fullFlattenObject.js +1 -0
  168. package/dist/cjs/utils/objectUtils/fullFlattenObject.js.map +1 -1
  169. package/dist/cjs/utils/objectUtils/unflattenObject.d.ts.map +1 -1
  170. package/dist/cjs/utils/objectUtils/unflattenObject.js +0 -1
  171. package/dist/cjs/utils/objectUtils/unflattenObject.js.map +1 -1
  172. package/dist/cjs/utils/payment.d.ts.map +1 -1
  173. package/dist/cjs/utils/payment.js +6 -1
  174. package/dist/cjs/utils/payment.js.map +1 -1
  175. package/dist/cjs/utils/phone.d.ts.map +1 -1
  176. package/dist/cjs/utils/phone.js +1 -0
  177. package/dist/cjs/utils/phone.js.map +1 -1
  178. package/dist/cjs/utils/quotation.js +2 -2
  179. package/dist/cjs/utils/quotation.js.map +1 -1
  180. package/dist/cjs/utils/social.js +0 -1
  181. package/dist/cjs/utils/social.js.map +1 -1
  182. package/dist/cjs/utils/statutsGeneration.js +2 -2
  183. package/dist/cjs/utils/statutsGeneration.js.map +1 -1
  184. package/dist/cjs/utils/tests/payment.spec.js +30 -39
  185. package/dist/cjs/utils/tests/payment.spec.js.map +1 -1
  186. package/dist/cjs/utils/transforms/boolean.transform.d.ts.map +1 -1
  187. package/dist/cjs/utils/transforms/boolean.transform.js +3 -1
  188. package/dist/cjs/utils/transforms/boolean.transform.js.map +1 -1
  189. package/dist/cjs/utils/vat/3310/century23.d.ts.map +1 -1
  190. package/dist/cjs/utils/vat/3310/century23.js +23 -0
  191. package/dist/cjs/utils/vat/3310/century23.js.map +1 -1
  192. package/dist/cjs/utils/vat/3310/century24.d.ts.map +1 -1
  193. package/dist/cjs/utils/vat/3310/century24.js +23 -0
  194. package/dist/cjs/utils/vat/3310/century24.js.map +1 -1
  195. package/dist/cjs/utils/vat/3517/century23.d.ts.map +1 -1
  196. package/dist/cjs/utils/vat/3517/century23.js +4 -0
  197. package/dist/cjs/utils/vat/3517/century23.js.map +1 -1
  198. package/dist/cjs/utils/vat/registration.d.ts.map +1 -1
  199. package/dist/cjs/utils/vat/registration.js +0 -1
  200. package/dist/cjs/utils/vat/registration.js.map +1 -1
  201. package/dist/mjs/api/index.d.ts.map +1 -1
  202. package/dist/mjs/api/index.js +7 -1
  203. package/dist/mjs/api/index.js.map +1 -1
  204. package/dist/mjs/api/resources/Employee.d.ts.map +1 -1
  205. package/dist/mjs/api/resources/Employee.js +1 -0
  206. package/dist/mjs/api/resources/Employee.js.map +1 -1
  207. package/dist/mjs/api/resources/RegistrationForm.d.ts +3 -2
  208. package/dist/mjs/api/resources/RegistrationForm.d.ts.map +1 -1
  209. package/dist/mjs/api/resources/RegistrationForm.js +4 -1
  210. package/dist/mjs/api/resources/RegistrationForm.js.map +1 -1
  211. package/dist/mjs/api/resources/Task.d.ts.map +1 -1
  212. package/dist/mjs/api/resources/Task.js +1 -0
  213. package/dist/mjs/api/resources/Task.js.map +1 -1
  214. package/dist/mjs/index.d.ts.map +1 -1
  215. package/dist/mjs/index.js +0 -1
  216. package/dist/mjs/index.js.map +1 -1
  217. package/dist/mjs/types/Enum/Aspone.d.ts +57 -0
  218. package/dist/mjs/types/Enum/Aspone.d.ts.map +1 -1
  219. package/dist/mjs/types/Enum/Aspone.js +93 -0
  220. package/dist/mjs/types/Enum/Aspone.js.map +1 -1
  221. package/dist/mjs/types/Enum/BalanceSheet.js +1 -1
  222. package/dist/mjs/types/Enum/BalanceSheet.js.map +1 -1
  223. package/dist/mjs/types/Enum/BalanceSheetQuestion.d.ts.map +1 -1
  224. package/dist/mjs/types/Enum/BalanceSheetQuestion.js +2 -0
  225. package/dist/mjs/types/Enum/BalanceSheetQuestion.js.map +1 -1
  226. package/dist/mjs/types/Enum/BalanceSheetQuestionWording.d.ts.map +1 -1
  227. package/dist/mjs/types/Enum/BalanceSheetQuestionWording.js +1 -0
  228. package/dist/mjs/types/Enum/BalanceSheetQuestionWording.js.map +1 -1
  229. package/dist/mjs/types/Enum/CerfaType.d.ts +2 -1
  230. package/dist/mjs/types/Enum/CerfaType.d.ts.map +1 -1
  231. package/dist/mjs/types/Enum/CerfaType.js +1 -0
  232. package/dist/mjs/types/Enum/CerfaType.js.map +1 -1
  233. package/dist/mjs/types/Enum/CommercialManagement.d.ts +28 -0
  234. package/dist/mjs/types/Enum/CommercialManagement.d.ts.map +1 -1
  235. package/dist/mjs/types/Enum/CommercialManagement.js +136 -0
  236. package/dist/mjs/types/Enum/CommercialManagement.js.map +1 -1
  237. package/dist/mjs/types/Enum/RevisionGuide.d.ts.map +1 -1
  238. package/dist/mjs/types/Enum/RevisionGuide.js +5 -0
  239. package/dist/mjs/types/Enum/RevisionGuide.js.map +1 -1
  240. package/dist/mjs/types/Enum/Role.d.ts.map +1 -1
  241. package/dist/mjs/types/Enum/Role.js +1 -0
  242. package/dist/mjs/types/Enum/Role.js.map +1 -1
  243. package/dist/mjs/types/Enum/SalesContractBrandClementine.js +4 -4
  244. package/dist/mjs/types/Enum/SalesContractBrandClementine.js.map +1 -1
  245. package/dist/mjs/types/Enum/SalesContractBrandPourcentage.d.ts +1 -26
  246. package/dist/mjs/types/Enum/SalesContractBrandPourcentage.d.ts.map +1 -1
  247. package/dist/mjs/types/Enum/SalesContractBrandPourcentage.js +6 -6
  248. package/dist/mjs/types/Enum/SalesContractBrandPourcentage.js.map +1 -1
  249. package/dist/mjs/types/Enum/TransactionKind.d.ts.map +1 -1
  250. package/dist/mjs/types/Enum/TransactionKind.js.map +1 -1
  251. package/dist/mjs/types/Enum/TransactionStatus.d.ts.map +1 -1
  252. package/dist/mjs/types/Enum/TransactionStatus.js.map +1 -1
  253. package/dist/mjs/types/Enum/TypePayment.d.ts.map +1 -1
  254. package/dist/mjs/types/Enum/TypePayment.js +1 -0
  255. package/dist/mjs/types/Enum/TypePayment.js.map +1 -1
  256. package/dist/mjs/types/Interface/api/accountingFiles/Ocr.d.ts.map +1 -1
  257. package/dist/mjs/types/Interface/api/accountingFiles/Ocr.js.map +1 -1
  258. package/dist/mjs/types/Interface/api/cerfa/2573.d.ts +91 -0
  259. package/dist/mjs/types/Interface/api/cerfa/2573.d.ts.map +1 -0
  260. package/dist/mjs/types/Interface/api/cerfa/2573.js +2 -0
  261. package/dist/mjs/types/Interface/api/cerfa/2573.js.map +1 -0
  262. package/dist/mjs/types/Interface/api/cerfa/CreateCerfa.d.ts +1 -0
  263. package/dist/mjs/types/Interface/api/cerfa/CreateCerfa.d.ts.map +1 -1
  264. package/dist/mjs/types/Interface/api/cerfa/CreateCerfa.js +1 -0
  265. package/dist/mjs/types/Interface/api/cerfa/CreateCerfa.js.map +1 -1
  266. package/dist/mjs/types/Interface/api/cerfa/ReadCerfa.d.ts +2 -1
  267. package/dist/mjs/types/Interface/api/cerfa/ReadCerfa.d.ts.map +1 -1
  268. package/dist/mjs/types/Interface/api/cerfa/ReadCerfa.js.map +1 -1
  269. package/dist/mjs/types/Interface/api/checklist/Read.d.ts +1 -0
  270. package/dist/mjs/types/Interface/api/checklist/Read.d.ts.map +1 -1
  271. package/dist/mjs/types/Interface/api/checklist/Read.js.map +1 -1
  272. package/dist/mjs/types/Interface/api/commercialManagement/Create.d.ts +15 -0
  273. package/dist/mjs/types/Interface/api/commercialManagement/Create.d.ts.map +1 -1
  274. package/dist/mjs/types/Interface/api/commercialManagement/Create.js +79 -1
  275. package/dist/mjs/types/Interface/api/commercialManagement/Create.js.map +1 -1
  276. package/dist/mjs/types/Interface/api/commercialManagement/Read.d.ts +4 -0
  277. package/dist/mjs/types/Interface/api/commercialManagement/Read.d.ts.map +1 -1
  278. package/dist/mjs/types/Interface/api/commercialManagement/Read.js.map +1 -1
  279. package/dist/mjs/types/Interface/api/config/ConfigType.d.ts +282 -0
  280. package/dist/mjs/types/Interface/api/config/ConfigType.d.ts.map +1 -0
  281. package/dist/mjs/types/Interface/api/config/ConfigType.js +2 -0
  282. package/dist/mjs/types/Interface/api/config/ConfigType.js.map +1 -0
  283. package/dist/mjs/types/Interface/api/crisp/GetCrisp.d.ts.map +1 -1
  284. package/dist/mjs/types/Interface/api/crisp/GetCrisp.js.map +1 -1
  285. package/dist/mjs/types/Interface/api/exerciceQuestion/CreateExerciceQuestion.d.ts.map +1 -1
  286. package/dist/mjs/types/Interface/api/exerciceQuestion/CreateExerciceQuestion.js +3 -1
  287. package/dist/mjs/types/Interface/api/exerciceQuestion/CreateExerciceQuestion.js.map +1 -1
  288. package/dist/mjs/types/Interface/api/journal/Journals.d.ts.map +1 -1
  289. package/dist/mjs/types/Interface/api/journal/Journals.js.map +1 -1
  290. package/dist/mjs/types/Interface/api/kilometricAllowance/CreateKilometricAllowanceValidation.d.ts.map +1 -1
  291. package/dist/mjs/types/Interface/api/kilometricAllowance/CreateKilometricAllowanceValidation.js +3 -1
  292. package/dist/mjs/types/Interface/api/kilometricAllowance/CreateKilometricAllowanceValidation.js.map +1 -1
  293. package/dist/mjs/types/Interface/api/notion/NotionResponse.d.ts +4 -4
  294. package/dist/mjs/types/Interface/api/notion/NotionResponse.d.ts.map +1 -1
  295. package/dist/mjs/types/Interface/api/notion/NotionResponse.js.map +1 -1
  296. package/dist/mjs/types/Interface/api/pappers/QueryPappers.d.ts.map +1 -1
  297. package/dist/mjs/types/Interface/api/pappers/QueryPappers.js +3 -0
  298. package/dist/mjs/types/Interface/api/pappers/QueryPappers.js.map +1 -1
  299. package/dist/mjs/types/Interface/api/promoCode/CreateDefaultPromoCode.d.ts.map +1 -1
  300. package/dist/mjs/types/Interface/api/promoCode/CreateDefaultPromoCode.js +4 -1
  301. package/dist/mjs/types/Interface/api/promoCode/CreateDefaultPromoCode.js.map +1 -1
  302. package/dist/mjs/types/Interface/api/promoCode/ReadDefaultPromotion.d.ts.map +1 -1
  303. package/dist/mjs/types/Interface/api/promoCode/ReadDefaultPromotion.js.map +1 -1
  304. package/dist/mjs/types/Interface/api/registration/CreateRegistration.d.ts +2 -0
  305. package/dist/mjs/types/Interface/api/registration/CreateRegistration.d.ts.map +1 -1
  306. package/dist/mjs/types/Interface/api/registration/CreateRegistration.js.map +1 -1
  307. package/dist/mjs/types/Interface/api/shopify/ShopifyFinancialStatus.d.ts.map +1 -1
  308. package/dist/mjs/types/Interface/api/shopify/ShopifyFinancialStatus.js.map +1 -1
  309. package/dist/mjs/types/Interface/api/shopify/ShopifyOrder.d.ts.map +1 -1
  310. package/dist/mjs/types/Interface/api/shopify/ShopifyOrder.js.map +1 -1
  311. package/dist/mjs/types/Interface/api/shopify/discount_code.d.ts.map +1 -1
  312. package/dist/mjs/types/Interface/api/shopify/discount_code.js.map +1 -1
  313. package/dist/mjs/types/Interface/api/shopify/shipping_line.d.ts.map +1 -1
  314. package/dist/mjs/types/Interface/api/shopify/shipping_line.js.map +1 -1
  315. package/dist/mjs/types/Interface/models/IBalanceSheetQuestion.d.ts.map +1 -1
  316. package/dist/mjs/types/Interface/models/IBalanceSheetQuestion.js.map +1 -1
  317. package/dist/mjs/types/Interface/models/IFecFile.d.ts.map +1 -1
  318. package/dist/mjs/types/Interface/models/IFecFile.js.map +1 -1
  319. package/dist/mjs/types/Interface/models/IRegistration.d.ts.map +1 -1
  320. package/dist/mjs/types/Interface/models/IRegistration.js.map +1 -1
  321. package/dist/mjs/types/Interface/models/ISaleEmail.d.ts +15 -0
  322. package/dist/mjs/types/Interface/models/ISaleEmail.d.ts.map +1 -0
  323. package/dist/mjs/types/Interface/models/ISaleEmail.js +2 -0
  324. package/dist/mjs/types/Interface/models/ISaleEmail.js.map +1 -0
  325. package/dist/mjs/types/Interface/models/IUser.d.ts.map +1 -1
  326. package/dist/mjs/types/Interface/models/IUser.js.map +1 -1
  327. package/dist/mjs/types/index.d.ts +2 -0
  328. package/dist/mjs/types/index.d.ts.map +1 -1
  329. package/dist/mjs/types/index.js +2 -0
  330. package/dist/mjs/types/index.js.map +1 -1
  331. package/dist/mjs/utils/brands.d.ts.map +1 -1
  332. package/dist/mjs/utils/brands.js +5 -0
  333. package/dist/mjs/utils/brands.js.map +1 -1
  334. package/dist/mjs/utils/checkup.d.ts.map +1 -1
  335. package/dist/mjs/utils/checkup.js +5 -0
  336. package/dist/mjs/utils/checkup.js.map +1 -1
  337. package/dist/mjs/utils/commercialManagement/document.d.ts.map +1 -1
  338. package/dist/mjs/utils/commercialManagement/document.js +2 -1
  339. package/dist/mjs/utils/commercialManagement/document.js.map +1 -1
  340. package/dist/mjs/utils/commercialManagement/recurrence.js +2 -2
  341. package/dist/mjs/utils/commercialManagement/recurrence.js.map +1 -1
  342. package/dist/mjs/utils/commercialManagement/saleEmail.d.ts +10 -0
  343. package/dist/mjs/utils/commercialManagement/saleEmail.d.ts.map +1 -0
  344. package/dist/mjs/utils/commercialManagement/saleEmail.js +30 -0
  345. package/dist/mjs/utils/commercialManagement/saleEmail.js.map +1 -0
  346. package/dist/mjs/utils/commercialManagement/vat.d.ts.map +1 -1
  347. package/dist/mjs/utils/commercialManagement/vat.js +1 -0
  348. package/dist/mjs/utils/commercialManagement/vat.js.map +1 -1
  349. package/dist/mjs/utils/date.d.ts.map +1 -1
  350. package/dist/mjs/utils/date.js +9 -0
  351. package/dist/mjs/utils/date.js.map +1 -1
  352. package/dist/mjs/utils/decorators.d.ts.map +1 -1
  353. package/dist/mjs/utils/decorators.js +3 -4
  354. package/dist/mjs/utils/decorators.js.map +1 -1
  355. package/dist/mjs/utils/email.d.ts.map +1 -1
  356. package/dist/mjs/utils/email.js +22 -0
  357. package/dist/mjs/utils/email.js.map +1 -1
  358. package/dist/mjs/utils/isUrl.d.ts.map +1 -1
  359. package/dist/mjs/utils/isUrl.js +1 -2
  360. package/dist/mjs/utils/isUrl.js.map +1 -1
  361. package/dist/mjs/utils/noLodash.d.ts.map +1 -1
  362. package/dist/mjs/utils/noLodash.js +8 -1
  363. package/dist/mjs/utils/noLodash.js.map +1 -1
  364. package/dist/mjs/utils/objectUtils/flattenObject.d.ts.map +1 -1
  365. package/dist/mjs/utils/objectUtils/flattenObject.js +1 -0
  366. package/dist/mjs/utils/objectUtils/flattenObject.js.map +1 -1
  367. package/dist/mjs/utils/objectUtils/fullFlattenObject.d.ts.map +1 -1
  368. package/dist/mjs/utils/objectUtils/fullFlattenObject.js +1 -0
  369. package/dist/mjs/utils/objectUtils/fullFlattenObject.js.map +1 -1
  370. package/dist/mjs/utils/objectUtils/unflattenObject.d.ts.map +1 -1
  371. package/dist/mjs/utils/objectUtils/unflattenObject.js +0 -1
  372. package/dist/mjs/utils/objectUtils/unflattenObject.js.map +1 -1
  373. package/dist/mjs/utils/payment.d.ts.map +1 -1
  374. package/dist/mjs/utils/payment.js +6 -1
  375. package/dist/mjs/utils/payment.js.map +1 -1
  376. package/dist/mjs/utils/phone.d.ts.map +1 -1
  377. package/dist/mjs/utils/phone.js +1 -0
  378. package/dist/mjs/utils/phone.js.map +1 -1
  379. package/dist/mjs/utils/quotation.js +1 -1
  380. package/dist/mjs/utils/quotation.js.map +1 -1
  381. package/dist/mjs/utils/social.js +0 -1
  382. package/dist/mjs/utils/social.js.map +1 -1
  383. package/dist/mjs/utils/statutsGeneration.js +2 -2
  384. package/dist/mjs/utils/statutsGeneration.js.map +1 -1
  385. package/dist/mjs/utils/tests/payment.spec.js +15 -15
  386. package/dist/mjs/utils/tests/payment.spec.js.map +1 -1
  387. package/dist/mjs/utils/transforms/boolean.transform.d.ts.map +1 -1
  388. package/dist/mjs/utils/transforms/boolean.transform.js +3 -1
  389. package/dist/mjs/utils/transforms/boolean.transform.js.map +1 -1
  390. package/dist/mjs/utils/vat/3310/century23.d.ts.map +1 -1
  391. package/dist/mjs/utils/vat/3310/century23.js +23 -0
  392. package/dist/mjs/utils/vat/3310/century23.js.map +1 -1
  393. package/dist/mjs/utils/vat/3310/century24.d.ts.map +1 -1
  394. package/dist/mjs/utils/vat/3310/century24.js +23 -0
  395. package/dist/mjs/utils/vat/3310/century24.js.map +1 -1
  396. package/dist/mjs/utils/vat/3517/century23.d.ts.map +1 -1
  397. package/dist/mjs/utils/vat/3517/century23.js +4 -0
  398. package/dist/mjs/utils/vat/3517/century23.js.map +1 -1
  399. package/dist/mjs/utils/vat/registration.d.ts.map +1 -1
  400. package/dist/mjs/utils/vat/registration.js +0 -1
  401. package/dist/mjs/utils/vat/registration.js.map +1 -1
  402. package/eslint.config.mjs +47 -0
  403. package/package.json +7 -10
  404. package/ts/api/index.ts +9 -2
  405. package/ts/api/resources/Employee.ts +1 -0
  406. package/ts/api/resources/RegistrationForm.ts +8 -2
  407. package/ts/api/resources/Task.ts +1 -0
  408. package/ts/index.ts +0 -1
  409. package/ts/types/Enum/Aspone.ts +98 -1
  410. package/ts/types/Enum/BalanceSheet.ts +1 -1
  411. package/ts/types/Enum/BalanceSheetQuestion.ts +2 -0
  412. package/ts/types/Enum/BalanceSheetQuestionWording.ts +1 -0
  413. package/ts/types/Enum/CerfaType.ts +1 -0
  414. package/ts/types/Enum/CommercialManagement.ts +143 -1
  415. package/ts/types/Enum/RevisionGuide.ts +5 -0
  416. package/ts/types/Enum/Role.ts +1 -0
  417. package/ts/types/Enum/SalesContractBrandClementine.ts +4 -4
  418. package/ts/types/Enum/SalesContractBrandPourcentage.ts +7 -7
  419. package/ts/types/Enum/TransactionKind.ts +1 -0
  420. package/ts/types/Enum/TransactionStatus.ts +1 -0
  421. package/ts/types/Enum/TypePayment.ts +1 -0
  422. package/ts/types/Interface/api/accountingFiles/Ocr.ts +1 -0
  423. package/ts/types/Interface/api/cerfa/2573.ts +88 -0
  424. package/ts/types/Interface/api/cerfa/CreateCerfa.ts +1 -0
  425. package/ts/types/Interface/api/cerfa/ReadCerfa.ts +2 -0
  426. package/ts/types/Interface/api/checklist/Read.ts +1 -0
  427. package/ts/types/Interface/api/commercialManagement/Create.ts +58 -2
  428. package/ts/types/Interface/api/commercialManagement/Read.ts +5 -0
  429. package/ts/types/Interface/api/config/ConfigType.ts +325 -0
  430. package/ts/types/Interface/api/crisp/GetCrisp.ts +2 -0
  431. package/ts/types/Interface/api/exerciceQuestion/CreateExerciceQuestion.ts +1 -0
  432. package/ts/types/Interface/api/journal/Journals.ts +0 -1
  433. package/ts/types/Interface/api/kilometricAllowance/CreateKilometricAllowanceValidation.ts +1 -0
  434. package/ts/types/Interface/api/notion/NotionResponse.ts +2 -4
  435. package/ts/types/Interface/api/pappers/QueryPappers.ts +9 -0
  436. package/ts/types/Interface/api/promoCode/CreateDefaultPromoCode.ts +1 -0
  437. package/ts/types/Interface/api/promoCode/ReadDefaultPromotion.ts +1 -0
  438. package/ts/types/Interface/api/registration/CreateRegistration.ts +2 -0
  439. package/ts/types/Interface/api/shopify/ShopifyFinancialStatus.ts +1 -0
  440. package/ts/types/Interface/api/shopify/ShopifyOrder.ts +2 -0
  441. package/ts/types/Interface/api/shopify/discount_code.ts +1 -0
  442. package/ts/types/Interface/api/shopify/shipping_line.ts +2 -0
  443. package/ts/types/Interface/models/IBalanceSheetQuestion.ts +1 -0
  444. package/ts/types/Interface/models/IFecFile.ts +1 -0
  445. package/ts/types/Interface/models/IRegistration.ts +1 -0
  446. package/ts/types/Interface/models/ISaleEmail.ts +18 -0
  447. package/ts/types/Interface/models/IUser.ts +1 -0
  448. package/ts/types/index.ts +2 -0
  449. package/ts/utils/brands.ts +5 -0
  450. package/ts/utils/checkup.ts +5 -0
  451. package/ts/utils/commercialManagement/document.ts +3 -2
  452. package/ts/utils/commercialManagement/recurrence.ts +2 -2
  453. package/ts/utils/commercialManagement/saleEmail.ts +43 -0
  454. package/ts/utils/commercialManagement/vat.ts +1 -0
  455. package/ts/utils/date.ts +9 -0
  456. package/ts/utils/decorators.ts +5 -4
  457. package/ts/utils/email.ts +22 -1
  458. package/ts/utils/isUrl.ts +1 -2
  459. package/ts/utils/noLodash.ts +7 -1
  460. package/ts/utils/objectUtils/flattenObject.ts +1 -0
  461. package/ts/utils/objectUtils/fullFlattenObject.ts +1 -0
  462. package/ts/utils/objectUtils/unflattenObject.ts +0 -1
  463. package/ts/utils/payment.ts +8 -3
  464. package/ts/utils/phone.ts +1 -0
  465. package/ts/utils/quotation.ts +1 -1
  466. package/ts/utils/social.ts +1 -1
  467. package/ts/utils/statutsGeneration.ts +4 -4
  468. package/ts/utils/tests/payment.spec.ts +15 -15
  469. package/ts/utils/transforms/boolean.transform.ts +1 -0
  470. package/ts/utils/vat/3310/century23.ts +24 -0
  471. package/ts/utils/vat/3310/century24.ts +23 -0
  472. package/ts/utils/vat/3517/century23.ts +4 -0
  473. package/ts/utils/vat/registration.ts +0 -1
  474. package/tsconfig-base.json +1 -2
@@ -82,12 +82,17 @@ const calculatePaymentsAuto = (params) => {
82
82
  const { idTypeBrand, isWithApplicationFees, firstExerciceNonExpresssEndDate, idPrestation, idLegalForm, prestationList, idVat, yearlyAmountNonExpress, nextYearlyAmountNonExpress, listPartialExercicePrestationExpress, listRegulations, recoveryDate } = params;
83
83
  if (!yearlyAmountNonExpress)
84
84
  throw new Error('Le montant annuel des prestations non express ne peut pas être nul.');
85
- let initializedPaymentDate = dayjs().endOf('month').diff(dayjs(), 'day') < 3 /* || dayjs().date() >= 15 */
85
+ // Si on est dans les 3 derniers jours du mois actuel,
86
+ // on ne le compte pas et on facture à partir du début de mois suivant
87
+ let initializedPaymentDate = dayjs().endOf('month').diff(dayjs(), 'day') < 3 /* || dayjs().date() >= 14 */
86
88
  ? dayjs().add(2, 'month').startOf('month').toDate()
87
89
  : dayjs().add(1, 'month').startOf('month').toDate();
88
90
  //Si date de reprise, alors on initialise à cette date
89
91
  if (recoveryDate && dayjs(recoveryDate).isAfter(dayjs(), 'month')) {
90
92
  initializedPaymentDate = dayjs(recoveryDate).startOf('month').toDate();
93
+ //Si jour de la date de reprise >= 14, alors on débute la facturation 1 mois plus tard
94
+ if (dayjs(initializedPaymentDate).date() >= 14)
95
+ initializedPaymentDate = dayjs(initializedPaymentDate).add(1, 'month').startOf('month').toDate();
91
96
  }
92
97
  // On récupère la grille tarifaire pour savoir si les tarifs sont HT ou TTC
93
98
  // et pour connaitre le montant du coût de l'app
@@ -1 +1 @@
1
- {"version":3,"file":"payment.js","sourceRoot":"","sources":["../../../ts/utils/payment.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAgD,aAAa,EAAe,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAC5H,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAOtE;;;;;;;;;GASG;AACH,MAAM,0BAA0B,GAAG,CAAC,QAAoB,EAAE,QAAoE,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,CAAC,EAAsB,EAAE;IACzM,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,IAAI,KAAK,CAAC,CAAC;IAChH,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,IAAI,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC3J,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,IAAI,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;IACjK,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAErN,MAAM,cAAc,GAAuB,EAAE,CAAC;IAC9C,IAAI,eAAe,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5D,cAAc,CAAC,IAAI,CAAC;YAClB,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,kBAAkB;YACzC,IAAI,EAAE,aAAa;YACnB,YAAY,EAAE,eAAe;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,cAAc,CAAC,IAAI,CAAC;YAClB,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,kBAAkB;YACtC,IAAI,EAAE,UAAU;YAChB,YAAY,EAAE,YAAY;SAC3B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5D,cAAc,CAAC,IAAI,CAAC;YAClB,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,kBAAkB;YACzC,IAAI,EAAE,aAAa;YACnB,YAAY,EAAE,eAAe;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,cAAc,CAAC,IAAI,CAAC;YAClB,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAkB;YACrC,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,WAAiB,EAAS,EAAE;IACjE,MAAM,qBAAqB,GAAG,MAAM,CAAC;IAErC,2EAA2E;IAC3E,kEAAkE;IAClE,mFAAmF;IAEnF,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,CAAA,yCAAyC,CAAC;QACxG,oCAAoC;QACpC,8GAA8G;QAC9G,8DAA8D;QAC9D,oDAAoD;QACpD,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,qBAAqB,GAAG,CAAC,MAA6B,EAAgB,EAAE;IAC5E,MAAM,EAAE,WAAW,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAElQ,IAAI,CAAC,sBAAsB;QAAE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IAEpH,IAAI,sBAAsB,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA,8BAA8B;QACxG,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;QACnD,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IAEtD,sDAAsD;IACtD,IAAI,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;QAClE,sBAAsB,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IACzE,CAAC;IAED,4EAA4E;IAC5E,gDAAgD;IAChD,IAAI,CAAC,cAAc,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC5F,MAAM,EAAE,eAAe,EAAE,sBAAsB,EAAE,GAAG,SAAS,CAAC;IAC9D,MAAM,uBAAuB,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,sBAAsB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;IACjI,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAE9E,IAAI,cAAc,EAAE,SAAS,IAAI,CAAC,cAAc,EAAE,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACpJ,IAAI,oCAAoC,CAAC,MAAM,IAAI,oCAAoC,EAAE,IAAI,CAAC,CAAC,EAAoC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAEpN,IAAI,2BAA2B,GAAG,sBAAsB,CAAC;IACzD,IAAI,qBAAqB,EAAE,CAAC;QAC1B,2BAA2B,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;IAC5E,CAAC;IAED,MAAM,YAAY,GAAG,oCAAoC,CAAC,MAAM,CAAC;IACjE,MAAM,YAAY,GAAiB,EAAE,CAAC;IAEtC,gEAAgE;IAChE,8CAA8C;IAC9C,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,CAAa,EAAE,EAAE;QAC3E,+EAA+E;QAC/E,qGAAqG;QAErG,4BAA4B;QAC5B,sEAAsE;QACtE,kHAAkH;QAClH,gDAAgD;QAChD;;;;;;;;;;YAUI;QACJ,OAAO,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC;IACvC,CAAC,EAAE,CAAC,CAAC,CAAC;IACN,IAAI,eAAe,GAAG,CAAC,cAAc,CAAC,CAAE,KAAK;IAC7C,IAAI,WAAW,GAAG,sBAAsB,CAAC;IAEzC,6DAA6D;IAC7D,oCAAoC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjD,MAAM,UAAU,GAAG,CAAC,EAAE,SAAiB,CAAC;QACxC,MAAM,UAAU,GAAG,CAAC,EAAE,SAAiB,CAAC;QACxC,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,qFAAqF;IACrF,IAAI,qBAAqB,EAAE,CAAC;QAC1B,YAAY,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,wBAAwB,EAAG,KAAK;YACxC,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE;YAC7B,YAAY;YACZ,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE;YACrF,WAAW,EAAE,oCAAoC,EAAE,MAAM,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B;YAC7I,OAAO,EAAE,kBAAkB;SAC5B,CAAC,CAAC;QACH,eAAe,IAAI,wBAAwB,CAAC;IAC9C,CAAC;IAED,4BAA4B;IAC5B,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC,CAAC,OAAO,CAAC,CAAC,kBAAmD,EAAE,OAAe,EAAE,EAAE;QACpH,MAAM,sBAAsB,GAAG,eAAe,CAAC;QAE/C,eAAe,IAAI,CAAC,sBAAsB;YACxC,CAAC,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC;YAC/D,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,KAAK;QAGzC,qEAAqE;QACrE,0DAA0D;QAC1D,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,sBAAsB;oBAC/C,CAAC,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC;oBAC/D,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,GAAG,GAAG,EAAG,KAAK;gBAClD,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE;gBAC7B,YAAY;gBACZ,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE;gBACrF,WAAW,EAAE,kBAAkB,CAAC,OAAO;aACxC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;aAAM,IAAI,sBAAsB,GAAG,CAAC,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;YAC7D,mGAAmG;YACnG,YAAY,CAAC,IAAI,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,sBAAsB,CAAC,GAAG,GAAG,EAAG,KAAK;gBAC/D,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE;gBAC7B,YAAY;gBACZ,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE;gBACrF,WAAW,EAAE,kBAAkB,CAAC,OAAO;aACxC,CAAC,CAAC;QACL,CAAC;QAED,sEAAsE;QACtE,IAAI,mCAAmC,GAAG,eAAe,CAAC,CAAC,KAAK;QAChE,IAAI,0BAA0B,GAAG,kBAAkB,EAAE,0BAA0B,IAAI,CAAC,CAAC,CAAC,KAAK;QAC3F,0KAA0K;QAC1K,IAAI,OAAO,KAAK,CAAC,IAAI,cAAc,GAAG,CAAC;YAAE,0BAA0B,IAAI,CAAC,CAAC;QAEzE,MAAM,aAAa,GAAG,mCAAmC,GAAG,0BAA0B,CAAC,CAAC,KAAK;QAC7F,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,0BAA0B,EAAE,KAAK,EAAE,EAAE,CAAC;YACjE,gJAAgJ;YAChJ,8CAA8C;YAC9C,MAAM,MAAM,GAAG,KAAK,GAAG,0BAA0B,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAE,KAAK;YAE/G,2GAA2G;YAC3G,IAAI,MAAM,IAAI,KAAK;gBACjB,YAAY,CAAC,IAAI,CAAC;oBAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG;oBACtC,WAAW,EAAE,WAAW;oBACxB,YAAY;oBACZ,eAAe,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE;oBAC9C,WAAW,EAAE,kBAAkB,CAAC,OAAO;iBACxC,CAAC,CAAC;YACL,mCAAmC,IAAI,aAAa,CAAC;YACrD,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7E,CAAC;QACD,eAAe,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,oBAAoB;IACpB,4BAA4B;IAC5B,sEAAsE;IACtE,kFAAkF;IAClF,yCAAyC;IACzC,IAAI,YAAY,IAAI,CAAC;QAAE,WAAW,GAAG,sBAAsB,CAAC;IAC5D,IAAI,eAAe,GAAG,KAAK,CAAC,+BAA+B,CAAC,CAAC,MAAM,EAAE,CAAC;IAEtE,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAC7B,IAAI,wBAAwB,GAAG,CAAC,CAAC;IAEjC,uFAAuF;IACvF,gFAAgF;IAChF,OAAO,CAAC,qBAAqB,IAAI,wBAAwB,GAAG,CAAC,EAAE,CAAC;QAC9D,iHAAiH;QACjH,IAAI,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACvG,IAAI,4BAA4B,GAAG,CAAC;YAAE,4BAA4B,GAAG,CAAC,CAAC;QAEvE,mGAAmG;QACnG,oEAAoE;QACpE,qEAAqE;QACrE,IAAI,4BAA4B,GAAG,EAAE,EAAE,CAAC;YACtC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3E,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAC/F,MAAM,sBAAsB,GAAG,eAAe,CAAC;QAC/C,eAAe,IAAI,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAEjG,qEAAqE;QACrE,0DAA0D;QAC1D,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAG,KAAK;gBACvH,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE;gBAC7B,YAAY;gBACZ,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE;gBACrF,WAAW,EAAE,eAAe;aAC7B,CAAC,CAAC;YACH,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;YACjG,SAAS;QACX,CAAC;aAAM,IAAI,sBAAsB,GAAG,CAAC,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;YAC7D,mGAAmG;YACnG,YAAY,CAAC,IAAI,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,sBAAsB,CAAC,GAAG,GAAG,EAAG,KAAK;gBAC/D,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE;gBAC7B,YAAY;gBACZ,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE;gBACrF,WAAW,EAAE,eAAe;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,IAAI,mCAAmC,GAAG,eAAe,CAAC;QAE1D,uDAAuD;QACvD,IAAI,CAAC,iBAAiB;YAAE,mCAAmC,IAAI,uBAAuB,CAAC;QAEvF,MAAM,aAAa,GAAG,mCAAmC,GAAG,4BAA4B,CAAC,CAAE,KAAK;QAEhG,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,4BAA4B,EAAE,KAAK,EAAE,EAAE,CAAC;gBACnE,IAAI,MAAM,GAAG,KAAK,GAAG,4BAA4B,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAmC,CAAC;gBAExG,iDAAiD;gBACjD,yGAAyG;gBACzG,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAE5C,YAAY,CAAC,IAAI,CAAC;oBAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG;oBACtC,WAAW,EAAE,WAAW;oBACxB,YAAY;oBACZ,eAAe,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE;oBAC9C,WAAW,EAAE,eAAe;iBAC7B,CAAC,CAAC;gBACH,mCAAmC,IAAI,aAAa,CAAC;gBACrD,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;YAC7E,CAAC;YACD,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QACnG,CAAC;QACD,eAAe,GAAG,CAAC,CAAC;QACpB,IAAI,4BAA4B,KAAK,EAAE;YAAE,qBAAqB,GAAG,IAAI,CAAC;QACtE,iBAAiB,GAAG,KAAK,CAAC;QAC1B,wBAAwB,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,eAAe,GAAG,CAAC,CAAC;IAEpB,4BAA4B;IAC5B,uBAAuB;IACvB,4BAA4B;IAC5B,iFAAiF;IACjF,eAAe,IAAI,sBAAsB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IAEnI,IAAI,mCAAmC,GAAG,eAAe,CAAC;IAC1D,iHAAiH;IACjH,IAAI,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACvG,IAAI,4BAA4B,GAAG,CAAC;QAAE,4BAA4B,GAAG,CAAC,CAAC;IAEvE,uDAAuD;IACvD,mCAAmC,IAAI,uBAAuB,CAAC;IAE/D,MAAM,aAAa,GAAG,mCAAmC,GAAG,4BAA4B,CAAC;IAEzF,yCAAyC;IACzC,IAAI,CAAC,YAAY,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEpC,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;QACjE,IAAI,MAAM,GAAG,aAAa,CAAC;QAE3B,iDAAiD;QACjD,yGAAyG;QACzG,uDAAuD;QACvD,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAE5C,YAAY,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG;YACtC,WAAW,EAAE,WAAW;YACxB,YAAY;YACZ,eAAe,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE;YAC9C,WAAW,EAAE,eAAe;SAC7B,CAAC,CAAC;QACH,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7E,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,OAAO,EACL,0BAA0B,EAAE,qBAAqB,GAClD,CAAC","sourcesContent":["'use strict';\n\nimport { IPayment, IRegulation, ParamsForPaymentsAuto, PaymentMethod, PaymentAuto, getTaxesIncludedAmount } from '../types';\nimport * as dayjs from 'dayjs';\nimport { PartialExercicePrestationExpress } from '../types/Interface/api/payment/Util';\nimport { getApplicationFeesAmount, getPriceGrid } from './prestation';\n\ninterface PaymentsWithList extends IPayment {\n type: 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther',\n listPayments: IPayment[]\n}\n\n/**\n * A partir d'une liste de payment (avec include jusqu'à prestationList, \n * avec en attributs 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther')\n * permet de récupérer uniquement le premier paiement de chaque type \n * et les autres payments dans listPayments\n * avec possibilité de filtrer avec le tableau de filtres\n * @param payments \n * @param types \n * @returns \n */\nconst groupPaymentsByServiceType = (payments: IPayment[], types: ('isComptable' | 'isJuridique' | 'isSocial' | 'isOther')[] = ['isComptable', 'isJuridique', 'isSocial', 'isOther']): PaymentsWithList[] => {\n const prestaComptable = payments.filter((el) => el?.paymentsPrestations?.prestationsList?.isComptable ?? false);\n const prestaSocial = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isSocial);\n const prestaJuridique = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isJuridique);\n const prestaOther = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && !el?.paymentsPrestations?.prestationsList?.isJuridique && !el?.paymentsPrestations?.prestationsList?.isSocial);\n \n const societyPayment: PaymentsWithList[] = [];\n if (prestaComptable.length && types.includes('isComptable')) {\n societyPayment.push({\n ...prestaComptable[0], // Données de base\n type: 'isComptable',\n listPayments: prestaComptable,\n });\n }\n if (prestaSocial.length && types.includes('isSocial')) {\n societyPayment.push({\n ...prestaSocial[0], // Données de base\n type: 'isSocial',\n listPayments: prestaSocial,\n });\n }\n if (prestaJuridique.length && types.includes('isJuridique')) {\n societyPayment.push({\n ...prestaJuridique[0], // Données de base\n type: 'isJuridique',\n listPayments: prestaJuridique,\n });\n }\n if (prestaOther.length && types.includes('isOther')) {\n societyPayment.push({\n ...prestaOther[0], // Données de base\n type: 'isOther',\n listPayments: prestaOther,\n });\n }\n return societyPayment;\n};\n\nconst calculateFees = (amount: number, paymentDate: Date):number => {\n const yearlyPriceIncreasing = 1.0275;\n\n // Commenté car en fin d'année, pour appliquer le taux d'inflation annuel, \n // un script enlève les 2,75€ appliqués pour appliquer le bon taux\n // const oneYearLessIfIn3LastMonthsOfYear = dayjs(goToClient).month() >= 9 ? 1 : 0;\n\n if (dayjs(paymentDate).year() - dayjs().year() > 0) {\n const nbYearsMore = dayjs(paymentDate).year() - dayjs().year()/* - oneYearLessIfIn3LastMonthsOfYear */;\n // on applique X fois l'augmentation\n // ex. : si on lance l'appel en 2024, et qu'on génére un paiement pour 2026, on applique 2 fois l'augmentation\n // soit amount * yearlyPriceIncreasing * yearlyPriceIncreasing\n // soit amount * yearlyPriceIncreasing ^ nbYearsMore\n amount = amount * Math.pow(yearlyPriceIncreasing, nbYearsMore);\n }\n return amount;\n};\n\n/**\n// * @param {number} firstPaymentAmount - amount of the first payment (first regulation of the customer)\n * @param {Date} firstExerciceNonExpresssEndDate - end date of the first exercice non express\n * @param {number} idPrestation - prestation id\n * @param {number} idLegalForm - legal form id of the society\n * @param {boolean} isWithApplicationFees - if the prestation has application fees to paid\n * @param {IPrestationList} prestationList - type of prestation (hidden: 0, isCatalog: 1, isComptable: 1)\n * @param {number} idVat - vat id of society linked\n * @param {number} yearlyAmountNonExpress - yearly amount of non express prestation (HT)\n * @param {number} nextYearlyAmountNonExpress - yearly amount of non express prestation for next years (HT)\n * @param {PartialExercicePrestationExpress[]} listPartialExercicePrestationExpress - list of exercicePrestation linked to idPrestation -> used to get express\n * @param {IRegulation[]} listRegulations - list of regulations linked to idPrestation (TTC)\n * @param {Date} recoveryDate - date of recovery of the society\n * @returns { IPayment[] } list of payment to create for billing auto, after each presta go to onBoarding\n */\nconst calculatePaymentsAuto = (params: ParamsForPaymentsAuto):PaymentAuto[] => {\n const { idTypeBrand, isWithApplicationFees, firstExerciceNonExpresssEndDate, idPrestation, idLegalForm, prestationList, idVat, yearlyAmountNonExpress, nextYearlyAmountNonExpress, listPartialExercicePrestationExpress, listRegulations, recoveryDate } = params;\n \n if (!yearlyAmountNonExpress) throw new Error('Le montant annuel des prestations non express ne peut pas être nul.');\n\n let initializedPaymentDate = dayjs().endOf('month').diff(dayjs(), 'day') < 3/* || dayjs().date() >= 15 */\n ? dayjs().add(2, 'month').startOf('month').toDate()\n : dayjs().add(1, 'month').startOf('month').toDate();\n \n //Si date de reprise, alors on initialise à cette date\n if (recoveryDate && dayjs(recoveryDate).isAfter(dayjs(), 'month')) {\n initializedPaymentDate = dayjs(recoveryDate).startOf('month').toDate();\n }\n\n // On récupère la grille tarifaire pour savoir si les tarifs sont HT ou TTC \n // et pour connaitre le montant du coût de l'app\n if (!prestationList.id) throw new Error('idPrestationList manquant');\n const priceGrid = getPriceGrid(idTypeBrand, prestationList.id);\n if (!priceGrid) throw new Error('Impossible de trouver la grille tarifaire correspondante');\n const { applicationCost, priceWithTaxesIncluded } = priceGrid;\n const applicationCostTotalTTC = (priceWithTaxesIncluded ? applicationCost : getTaxesIncludedAmount(applicationCost, idVat)) * 12;\n const applicationFeesAmountTTC = getApplicationFeesAmount(idLegalForm, idVat);\n\n if (prestationList?.isCatalog || !prestationList?.isComptable) throw new Error('Ce type de prestation ne correspond pas aux conditions attendues.');\n if (listPartialExercicePrestationExpress.length && listPartialExercicePrestationExpress?.some((ep: PartialExercicePrestationExpress) => !ep?.startDate)) throw new Error('Start date of some exercice are missing');\n \n let yearlyAmountNonExpressClone = yearlyAmountNonExpress;\n if (isWithApplicationFees) {\n yearlyAmountNonExpressClone -= getApplicationFeesAmount(idLegalForm); //HT\n }\n\n const nbExoExpress = listPartialExercicePrestationExpress.length;\n const listPayments:PaymentAuto[] = [];\n\n // on récupère le/les premiers réglements effectués, non alloués\n // const isApplicationFeesAlreadyPaid = false;\n const sumRegulations = listRegulations.reduce((acc: number, r:IRegulation) => {\n //Si la regulation est rattachée à un paymentExpectation, on récupère le détail\n // et on ne prend que les frais de dossier (applicationFee) + le montant de la compta (accountingFee)\n \n // Commenté temporairement :\n // Pour l'instant, on ne prend plus en compte les paymentExpectation :\n // On part du principe que si isWithApplicationFees = true, alors les regulations contiennent les frais de dossier\n // sinon, ils sont offerts et n'apparaissent pas\n /* if (r.paymentsExpectation?.payload) {\n const payload = JSON.parse(r.paymentsExpectation?.payload);\n if (+payload?.applicationFee > 0) {\n isApplicationFeesAlreadyPaid = true;\n acc += +payload?.applicationFee;\n }\n if (+payload?.accountingFee > 0) acc += +payload?.accountingFee;\n return acc;\n } else {\n return acc + r.amount - r.amountUsed;\n } */\n return acc + r.amount - r.amountUsed;\n }, 0);\n let remainingAmount = -sumRegulations; //TTC\n let paymentDate = initializedPaymentDate;\n\n //On order les exercicePrestation par startDate ASC et id ASC\n listPartialExercicePrestationExpress.sort((a, b) => {\n const aStartDate = a?.startDate as Date;\n const bStartDate = b?.startDate as Date;\n return dayjs(aStartDate).diff(bStartDate);\n });\n\n // Si les frais de dossiers sont facturés, on ajoute un paiement sur le mois en cours\n if (isWithApplicationFees) {\n listPayments.push({\n amount: applicationFeesAmountTTC, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,\n comment: 'Frais de dossier',\n });\n remainingAmount += applicationFeesAmountTTC;\n }\n \n // =========================\n // EXPRESS\n // =========================\n listPartialExercicePrestationExpress.forEach((exercicePrestation:PartialExercicePrestationExpress, indexEP: number) => {\n const remainingBeforeThisExo = remainingAmount;\n\n remainingAmount += !priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount; //TTC\n \n \n // Si le premier règlement couvre le coût de cet exercicePrestation, \n // on créé un paiement pour cet exo et on passe au suivant\n if (remainingAmount <= 0) {\n listPayments.push({\n amount: Math.round(100 * (!priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount)) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n return;\n } else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {\n // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo \n listPayments.push({\n amount: Math.round(100 * -remainingBeforeThisExo) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n }\n \n //express : on étale en countExpressMonthlyPayment (nb de mensualités)\n let remainingAmountByExercicePrestation = remainingAmount; //TTC\n let countExpressMonthlyPayment = exercicePrestation?.countExpressMonthlyPayment ?? 1; //TTC\n //Si un premier règlement est généré avec le montant des regulations, on le considère comme une mensualité (unioquement pour le premier express et la première mensualité)\n if (indexEP === 0 && sumRegulations > 0) countExpressMonthlyPayment -= 1;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countExpressMonthlyPayment; //TTC\n for (let index = 1; index <= countExpressMonthlyPayment; index++) {\n // On arrondis les 11 premières mensualités, mais on récupère le reste pour la dernière mensualité, pour éviter les centimes perdus en arrondis\n // et on applique le taux de tva de la société\n const amount = index < countExpressMonthlyPayment ? monthlyAmount : remainingAmountByExercicePrestation; //TTC\n \n // On évite les paiements de moins d'0,01 € (pour les paymentsExpectations ayant une différence de 1 cents)\n if (amount >= 0.005)\n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n remainingAmount = 0;\n });\n\n // =========================\n // NON EXPRESS\n // =========================\n // on lisse sur le nb de mois restants (avec au minimum 3 mensualités)\n // Si un seul exo express, alors on met les paiements de l'exo actuel en parallèle\n // sinon, ils sont à la suite des express\n if (nbExoExpress <= 1) paymentDate = initializedPaymentDate;\n let exerciceEndDate = dayjs(firstExerciceNonExpresssEndDate).toDate();\n\n let hasGeneratedWholeYear = false;\n let isFirstNonExpress = true;\n let countNonExpressGenerated = 0;\n \n // On génère des paiements jusqu'à ce qu'un exercice soit entier (12 mois), non express\n // et qu'au moins 13 mois de paiements ont été générés depuis la date de reprise\n while (!hasGeneratedWholeYear || countNonExpressGenerated < 2) {\n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n // Si un client signe un Express dans les 3 derniers mois de l'année (par exemple en décembre 2024)\n // on ne doit pas générer l'année 2025 sur 13 mois à partir du 12/24\n // mais on doit attendre le début de l'exercice concerné (ici, 01/25)\n if (countMonthsBeforeExerciceEnd > 12) {\n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n continue;\n }\n\n const exoAmount = isFirstNonExpress ? yearlyAmountNonExpressClone : nextYearlyAmountNonExpress;\n const remainingBeforeThisExo = remainingAmount;\n remainingAmount += priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat);\n\n // Si le premier règlement couvre le coût de cet exercicePrestation, \n // on créé un paiement pour cet exo et on passe au suivant\n if (remainingAmount <= 0) {\n listPayments.push({\n amount: Math.round(100 * (priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat))) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();\n continue;\n } else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {\n // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo \n listPayments.push({\n amount: Math.round(100 * -remainingBeforeThisExo) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n }\n\n let remainingAmountByExercicePrestation = remainingAmount;\n\n // - frais d'application dès les second exo non express\n if (!isFirstNonExpress) remainingAmountByExercicePrestation += applicationCostTotalTTC;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd; //TTC\n\n if (monthlyAmount > 0) {\n for (let index = 1; index <= countMonthsBeforeExerciceEnd; index++) {\n let amount = index < countMonthsBeforeExerciceEnd ? monthlyAmount : remainingAmountByExercicePrestation;\n \n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n amount = calculateFees(amount, paymentDate);\n \n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();\n }\n remainingAmount = 0;\n if (countMonthsBeforeExerciceEnd === 12) hasGeneratedWholeYear = true;\n isFirstNonExpress = false;\n countNonExpressGenerated += 1;\n }\n\n remainingAmount = 0;\n\n // =========================\n // JUSQU'EN DECEMBRE\n // =========================\n // On applique le taux de tva de la société, si besoin, selon la grille tarifaire\n remainingAmount += priceWithTaxesIncluded ? nextYearlyAmountNonExpress : getTaxesIncludedAmount(nextYearlyAmountNonExpress, idVat);\n\n let remainingAmountByExercicePrestation = remainingAmount;\n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n // - frais d'application dès les second exo non express\n remainingAmountByExercicePrestation += applicationCostTotalTTC;\n \n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd;\n \n // Si aucun paiement généré, on stoppe là\n if (!listPayments.length) return [];\n\n while (dayjs(listPayments.slice(-1)[0].datePayment).month() < 11) {\n let amount = monthlyAmount;\n\n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n // - frais d'application dès les second exo non express\n amount = calculateFees(amount, paymentDate);\n\n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n\n return listPayments;\n};\n\nexport {\n groupPaymentsByServiceType, calculatePaymentsAuto,\n};"]}
1
+ {"version":3,"file":"payment.js","sourceRoot":"","sources":["../../../ts/utils/payment.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport { IPayment, IRegulation, ParamsForPaymentsAuto, PaymentMethod, PaymentAuto, getTaxesIncludedAmount } from '../types';\nimport * as dayjs from 'dayjs';\nimport { PartialExercicePrestationExpress } from '../types/Interface/api/payment/Util';\nimport { getApplicationFeesAmount, getPriceGrid } from './prestation';\n\ninterface PaymentsWithList extends IPayment {\n type: 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther',\n listPayments: IPayment[]\n}\n\n/**\n * A partir d'une liste de payment (avec include jusqu'à prestationList, \n * avec en attributs 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther')\n * permet de récupérer uniquement le premier paiement de chaque type \n * et les autres payments dans listPayments\n * avec possibilité de filtrer avec le tableau de filtres\n * @param payments \n * @param types \n * @returns \n */\nconst groupPaymentsByServiceType = (payments: IPayment[], types: ('isComptable' | 'isJuridique' | 'isSocial' | 'isOther')[] = ['isComptable', 'isJuridique', 'isSocial', 'isOther']): PaymentsWithList[] => {\n const prestaComptable = payments.filter((el) => el?.paymentsPrestations?.prestationsList?.isComptable ?? false);\n const prestaSocial = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isSocial);\n const prestaJuridique = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isJuridique);\n const prestaOther = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && !el?.paymentsPrestations?.prestationsList?.isJuridique && !el?.paymentsPrestations?.prestationsList?.isSocial);\n \n const societyPayment: PaymentsWithList[] = [];\n if (prestaComptable.length && types.includes('isComptable')) {\n societyPayment.push({\n ...prestaComptable[0], // Données de base\n type: 'isComptable',\n listPayments: prestaComptable,\n });\n }\n if (prestaSocial.length && types.includes('isSocial')) {\n societyPayment.push({\n ...prestaSocial[0], // Données de base\n type: 'isSocial',\n listPayments: prestaSocial,\n });\n }\n if (prestaJuridique.length && types.includes('isJuridique')) {\n societyPayment.push({\n ...prestaJuridique[0], // Données de base\n type: 'isJuridique',\n listPayments: prestaJuridique,\n });\n }\n if (prestaOther.length && types.includes('isOther')) {\n societyPayment.push({\n ...prestaOther[0], // Données de base\n type: 'isOther',\n listPayments: prestaOther,\n });\n }\n return societyPayment;\n};\n\nconst calculateFees = (amount: number, paymentDate: Date):number => {\n const yearlyPriceIncreasing = 1.0275;\n\n // Commenté car en fin d'année, pour appliquer le taux d'inflation annuel, \n // un script enlève les 2,75€ appliqués pour appliquer le bon taux\n // const oneYearLessIfIn3LastMonthsOfYear = dayjs(goToClient).month() >= 9 ? 1 : 0;\n\n if (dayjs(paymentDate).year() - dayjs().year() > 0) {\n const nbYearsMore = dayjs(paymentDate).year() - dayjs().year()/* - oneYearLessIfIn3LastMonthsOfYear */;\n // on applique X fois l'augmentation\n // ex. : si on lance l'appel en 2024, et qu'on génére un paiement pour 2026, on applique 2 fois l'augmentation\n // soit amount * yearlyPriceIncreasing * yearlyPriceIncreasing\n // soit amount * yearlyPriceIncreasing ^ nbYearsMore\n amount = amount * Math.pow(yearlyPriceIncreasing, nbYearsMore);\n }\n return amount;\n};\n\n/**\n// * @param {number} firstPaymentAmount - amount of the first payment (first regulation of the customer)\n * @param {Date} firstExerciceNonExpresssEndDate - end date of the first exercice non express\n * @param {number} idPrestation - prestation id\n * @param {number} idLegalForm - legal form id of the society\n * @param {boolean} isWithApplicationFees - if the prestation has application fees to paid\n * @param {IPrestationList} prestationList - type of prestation (hidden: 0, isCatalog: 1, isComptable: 1)\n * @param {number} idVat - vat id of society linked\n * @param {number} yearlyAmountNonExpress - yearly amount of non express prestation (HT)\n * @param {number} nextYearlyAmountNonExpress - yearly amount of non express prestation for next years (HT)\n * @param {PartialExercicePrestationExpress[]} listPartialExercicePrestationExpress - list of exercicePrestation linked to idPrestation -> used to get express\n * @param {IRegulation[]} listRegulations - list of regulations linked to idPrestation (TTC)\n * @param {Date} recoveryDate - date of recovery of the society\n * @returns { IPayment[] } list of payment to create for billing auto, after each presta go to onBoarding\n */\nconst calculatePaymentsAuto = (params: ParamsForPaymentsAuto):PaymentAuto[] => {\n const { idTypeBrand, isWithApplicationFees, firstExerciceNonExpresssEndDate, idPrestation, idLegalForm, prestationList, idVat, yearlyAmountNonExpress, nextYearlyAmountNonExpress, listPartialExercicePrestationExpress, listRegulations, recoveryDate } = params;\n \n if (!yearlyAmountNonExpress) throw new Error('Le montant annuel des prestations non express ne peut pas être nul.');\n\n // Si on est dans les 3 derniers jours du mois actuel,\n // on ne le compte pas et on facture à partir du début de mois suivant\n let initializedPaymentDate = dayjs().endOf('month').diff(dayjs(), 'day') < 3/* || dayjs().date() >= 14 */\n ? dayjs().add(2, 'month').startOf('month').toDate()\n : dayjs().add(1, 'month').startOf('month').toDate();\n \n //Si date de reprise, alors on initialise à cette date\n if (recoveryDate && dayjs(recoveryDate).isAfter(dayjs(), 'month')) {\n initializedPaymentDate = dayjs(recoveryDate).startOf('month').toDate();\n\n //Si jour de la date de reprise >= 14, alors on débute la facturation 1 mois plus tard\n if (dayjs(initializedPaymentDate).date() >= 14) initializedPaymentDate = dayjs(initializedPaymentDate).add(1, 'month').startOf('month').toDate();\n }\n\n // On récupère la grille tarifaire pour savoir si les tarifs sont HT ou TTC \n // et pour connaitre le montant du coût de l'app\n if (!prestationList.id) throw new Error('idPrestationList manquant');\n const priceGrid = getPriceGrid(idTypeBrand, prestationList.id);\n if (!priceGrid) throw new Error('Impossible de trouver la grille tarifaire correspondante');\n const { applicationCost, priceWithTaxesIncluded } = priceGrid;\n const applicationCostTotalTTC = (priceWithTaxesIncluded ? applicationCost : getTaxesIncludedAmount(applicationCost, idVat)) * 12;\n const applicationFeesAmountTTC = getApplicationFeesAmount(idLegalForm, idVat);\n\n if (prestationList?.isCatalog || !prestationList?.isComptable) throw new Error('Ce type de prestation ne correspond pas aux conditions attendues.');\n if (listPartialExercicePrestationExpress.length && listPartialExercicePrestationExpress?.some((ep: PartialExercicePrestationExpress) => !ep?.startDate)) throw new Error('Start date of some exercice are missing');\n \n let yearlyAmountNonExpressClone = yearlyAmountNonExpress;\n if (isWithApplicationFees) {\n yearlyAmountNonExpressClone -= getApplicationFeesAmount(idLegalForm); //HT\n }\n\n const nbExoExpress = listPartialExercicePrestationExpress.length;\n const listPayments:PaymentAuto[] = [];\n\n // on récupère le/les premiers réglements effectués, non alloués\n // const isApplicationFeesAlreadyPaid = false;\n const sumRegulations = listRegulations.reduce((acc: number, r:IRegulation) => {\n //Si la regulation est rattachée à un paymentExpectation, on récupère le détail\n // et on ne prend que les frais de dossier (applicationFee) + le montant de la compta (accountingFee)\n \n // Commenté temporairement :\n // Pour l'instant, on ne prend plus en compte les paymentExpectation :\n // On part du principe que si isWithApplicationFees = true, alors les regulations contiennent les frais de dossier\n // sinon, ils sont offerts et n'apparaissent pas\n /* if (r.paymentsExpectation?.payload) {\n const payload = JSON.parse(r.paymentsExpectation?.payload);\n if (+payload?.applicationFee > 0) {\n isApplicationFeesAlreadyPaid = true;\n acc += +payload?.applicationFee;\n }\n if (+payload?.accountingFee > 0) acc += +payload?.accountingFee;\n return acc;\n } else {\n return acc + r.amount - r.amountUsed;\n } */\n return acc + r.amount - r.amountUsed;\n }, 0);\n let remainingAmount = -sumRegulations; //TTC\n let paymentDate = initializedPaymentDate;\n\n //On order les exercicePrestation par startDate ASC et id ASC\n listPartialExercicePrestationExpress.sort((a, b) => {\n const aStartDate = a?.startDate;\n const bStartDate = b?.startDate;\n return dayjs(aStartDate).diff(bStartDate);\n });\n\n // Si les frais de dossiers sont facturés, on ajoute un paiement sur le mois en cours\n if (isWithApplicationFees) {\n listPayments.push({\n amount: applicationFeesAmountTTC, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,\n comment: 'Frais de dossier',\n });\n remainingAmount += applicationFeesAmountTTC;\n }\n \n // =========================\n // EXPRESS\n // =========================\n listPartialExercicePrestationExpress.forEach((exercicePrestation:PartialExercicePrestationExpress, indexEP: number) => {\n const remainingBeforeThisExo = remainingAmount;\n\n remainingAmount += !priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount; //TTC\n \n \n // Si le premier règlement couvre le coût de cet exercicePrestation, \n // on créé un paiement pour cet exo et on passe au suivant\n if (remainingAmount <= 0) {\n listPayments.push({\n amount: Math.round(100 * (!priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount)) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n return;\n } else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {\n // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo \n listPayments.push({\n amount: Math.round(100 * -remainingBeforeThisExo) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n }\n \n //express : on étale en countExpressMonthlyPayment (nb de mensualités)\n let remainingAmountByExercicePrestation = remainingAmount; //TTC\n let countExpressMonthlyPayment = exercicePrestation?.countExpressMonthlyPayment ?? 1; //TTC\n //Si un premier règlement est généré avec le montant des regulations, on le considère comme une mensualité (unioquement pour le premier express et la première mensualité)\n if (indexEP === 0 && sumRegulations > 0) countExpressMonthlyPayment -= 1;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countExpressMonthlyPayment; //TTC\n for (let index = 1; index <= countExpressMonthlyPayment; index++) {\n // On arrondis les 11 premières mensualités, mais on récupère le reste pour la dernière mensualité, pour éviter les centimes perdus en arrondis\n // et on applique le taux de tva de la société\n const amount = index < countExpressMonthlyPayment ? monthlyAmount : remainingAmountByExercicePrestation; //TTC\n \n // On évite les paiements de moins d'0,01 € (pour les paymentsExpectations ayant une différence de 1 cents)\n if (amount >= 0.005)\n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n remainingAmount = 0;\n });\n\n // =========================\n // NON EXPRESS\n // =========================\n // on lisse sur le nb de mois restants (avec au minimum 3 mensualités)\n // Si un seul exo express, alors on met les paiements de l'exo actuel en parallèle\n // sinon, ils sont à la suite des express\n if (nbExoExpress <= 1) paymentDate = initializedPaymentDate;\n let exerciceEndDate = dayjs(firstExerciceNonExpresssEndDate).toDate();\n\n let hasGeneratedWholeYear = false;\n let isFirstNonExpress = true;\n let countNonExpressGenerated = 0;\n \n // On génère des paiements jusqu'à ce qu'un exercice soit entier (12 mois), non express\n // et qu'au moins 13 mois de paiements ont été générés depuis la date de reprise\n while (!hasGeneratedWholeYear || countNonExpressGenerated < 2) {\n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n // Si un client signe un Express dans les 3 derniers mois de l'année (par exemple en décembre 2024)\n // on ne doit pas générer l'année 2025 sur 13 mois à partir du 12/24\n // mais on doit attendre le début de l'exercice concerné (ici, 01/25)\n if (countMonthsBeforeExerciceEnd > 12) {\n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n continue;\n }\n\n const exoAmount = isFirstNonExpress ? yearlyAmountNonExpressClone : nextYearlyAmountNonExpress;\n const remainingBeforeThisExo = remainingAmount;\n remainingAmount += priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat);\n\n // Si le premier règlement couvre le coût de cet exercicePrestation, \n // on créé un paiement pour cet exo et on passe au suivant\n if (remainingAmount <= 0) {\n listPayments.push({\n amount: Math.round(100 * (priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat))) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();\n continue;\n } else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {\n // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo \n listPayments.push({\n amount: Math.round(100 * -remainingBeforeThisExo) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n }\n\n let remainingAmountByExercicePrestation = remainingAmount;\n\n // - frais d'application dès les second exo non express\n if (!isFirstNonExpress) remainingAmountByExercicePrestation += applicationCostTotalTTC;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd; //TTC\n\n if (monthlyAmount > 0) {\n for (let index = 1; index <= countMonthsBeforeExerciceEnd; index++) {\n let amount = index < countMonthsBeforeExerciceEnd ? monthlyAmount : remainingAmountByExercicePrestation;\n \n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n amount = calculateFees(amount, paymentDate);\n \n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();\n }\n remainingAmount = 0;\n if (countMonthsBeforeExerciceEnd === 12) hasGeneratedWholeYear = true;\n isFirstNonExpress = false;\n countNonExpressGenerated += 1;\n }\n\n remainingAmount = 0;\n\n // =========================\n // JUSQU'EN DECEMBRE\n // =========================\n // On applique le taux de tva de la société, si besoin, selon la grille tarifaire\n remainingAmount += priceWithTaxesIncluded ? nextYearlyAmountNonExpress : getTaxesIncludedAmount(nextYearlyAmountNonExpress, idVat);\n\n let remainingAmountByExercicePrestation = remainingAmount;\n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n // - frais d'application dès les second exo non express\n remainingAmountByExercicePrestation += applicationCostTotalTTC;\n \n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd;\n \n // Si aucun paiement généré, on stoppe là\n if (!listPayments.length) return [];\n\n while (dayjs(listPayments.slice(-1)[0].datePayment).month() < 11) {\n let amount = monthlyAmount;\n\n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n // - frais d'application dès les second exo non express\n amount = calculateFees(amount, paymentDate);\n\n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n\n return listPayments;\n};\n\nexport {\n groupPaymentsByServiceType, calculatePaymentsAuto,\n};"]}
@@ -1 +1 @@
1
- {"version":3,"file":"phone.d.ts","sourceRoot":"","sources":["../../../ts/utils/phone.ts"],"names":[],"mappings":"AAKA,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,SAAQ,GAAG,MAAM,GAAG,IAAI,CAcjG;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAOvE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,GAAE,aAAa,GAAG,wBAAwB,GAAG,2BAA2C,GAAG,MAAM,GAAG,IAAI,CA8BzK;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAUvE"}
1
+ {"version":3,"file":"phone.d.ts","sourceRoot":"","sources":["../../../ts/utils/phone.ts"],"names":[],"mappings":"AAKA,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,SAAQ,GAAG,MAAM,GAAG,IAAI,CAcjG;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAQvE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,GAAE,aAAa,GAAG,wBAAwB,GAAG,2BAA2C,GAAG,MAAM,GAAG,IAAI,CA8BzK;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAUvE"}
@@ -22,6 +22,7 @@ export function formatPhoneNumberToE164(phoneNumber, prefix = '+33') {
22
22
  export function getPhoneNumberWithoutPrefix(phoneNumber) {
23
23
  let number = phoneNumber;
24
24
  // @ts-ignore
25
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
25
26
  Object.keys(PhonePrefix).map((index) => PhonePrefix[index].prefix).forEach((prefix) => {
26
27
  number = number.replace(prefix, '');
27
28
  });
@@ -1 +1 @@
1
- {"version":3,"file":"phone.js","sourceRoot":"","sources":["../../../ts/utils/phone.ts"],"names":[],"mappings":"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","sourcesContent":["import { SegmentedMessage } from 'sms-segments-calculator';\nimport { PhonePrefix } from '../types/Enum/Phone';\nimport { Role } from '../types/Enum/Role';\nimport { RoleDetail } from '../types/Enum/RoleDetail';\n\nexport function formatPhoneNumberToE164(phoneNumber: string | null, prefix = '+33'): string | null {\n if (!phoneNumber) return null;\n if (phoneNumber.charAt(0) !== '+') {\n const numberInt = phoneNumber.replace(/\\D/g, '');\n if (prefix) {\n if (numberInt.length === 10 && numberInt.charAt(0) === '0') {\n return `${prefix}${numberInt.substring(1)}`;\n }\n return `${prefix}${numberInt}`;\n }\n if (numberInt.charAt(0) === '0' && numberInt.length === 10) return `+33${numberInt.substring(1)}`;\n return numberInt;\n }\n return phoneNumber;\n}\n\nexport function getPhoneNumberWithoutPrefix(phoneNumber: string): string {\n let number = phoneNumber;\n // @ts-ignore\n Object.keys(PhonePrefix).map((index) => PhonePrefix[index].prefix).forEach((prefix) => {\n number = number.replace(prefix, '');\n });\n return number;\n}\n\nexport function countSegmentsFromMessage(message: string): number {\n return new SegmentedMessage(message, 'auto').segmentsCount;\n}\n\nexport function getPhoneNumberFromRoles(roles: number[], attribute: 'phoneNumber' | 'phoneNumberPourcentage' | 'phoneNumberStatutsExpress' = 'phoneNumber'): string | null {\n if (roles.some((role) => [Role.FRONT_OFFICE, Role.EXPERT_ACCOUNTANT].includes(role))) {\n return RoleDetail.FRONT_OFFICE[attribute];\n }\n\n if (roles.some((role) => [Role.FRONT_OFFICE_EXPRESS].includes(role))) {\n return RoleDetail.FRONT_OFFICE_EXPRESS[attribute];\n }\n\n if (roles.some((role) => [Role.COMMERCIAL].includes(role))) {\n return RoleDetail.COMMERCIAL[attribute];\n }\n\n if (roles.some((role) => [Role.FACTURATION].includes(role))) {\n return RoleDetail.FACTURATION[attribute];\n }\n\n if (roles.some((role) => [Role.CUSTOMER_SUCCESS].includes(role))) {\n return RoleDetail.CUSTOMER_SUCCESS[attribute];\n }\n\n if (roles.some((role) => [Role.JURIDIC, Role.JURIDICAL_SUPPORT].includes(role))) {\n return RoleDetail.JURIDIC[attribute];\n }\n\n if (roles.some((role) => [Role.SOCIAL].includes(role))) {\n return RoleDetail.SOCIAL[attribute];\n }\n\n return null;\n}\n\nexport function formatPhoneNumberToNational(phoneNumber: string): string {\n\n const phoneWithoutSpace = phoneNumber.replace(/ /g, '');\n\n if (phoneWithoutSpace?.startsWith('+33')) {\n return phoneWithoutSpace.replace('+33', '0');\n }\n\n // Fonction à mettre à jour en fonction des cas de notre bdd\n return phoneWithoutSpace;\n}"]}
1
+ {"version":3,"file":"phone.js","sourceRoot":"","sources":["../../../ts/utils/phone.ts"],"names":[],"mappings":"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","sourcesContent":["import { SegmentedMessage } from 'sms-segments-calculator';\nimport { PhonePrefix } from '../types/Enum/Phone';\nimport { Role } from '../types/Enum/Role';\nimport { RoleDetail } from '../types/Enum/RoleDetail';\n\nexport function formatPhoneNumberToE164(phoneNumber: string | null, prefix = '+33'): string | null {\n if (!phoneNumber) return null;\n if (phoneNumber.charAt(0) !== '+') {\n const numberInt = phoneNumber.replace(/\\D/g, '');\n if (prefix) {\n if (numberInt.length === 10 && numberInt.charAt(0) === '0') {\n return `${prefix}${numberInt.substring(1)}`;\n }\n return `${prefix}${numberInt}`;\n }\n if (numberInt.charAt(0) === '0' && numberInt.length === 10) return `+33${numberInt.substring(1)}`;\n return numberInt;\n }\n return phoneNumber;\n}\n\nexport function getPhoneNumberWithoutPrefix(phoneNumber: string): string {\n let number = phoneNumber;\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n Object.keys(PhonePrefix).map((index) => PhonePrefix[index].prefix).forEach((prefix) => {\n number = number.replace(prefix, '');\n });\n return number;\n}\n\nexport function countSegmentsFromMessage(message: string): number {\n return new SegmentedMessage(message, 'auto').segmentsCount;\n}\n\nexport function getPhoneNumberFromRoles(roles: number[], attribute: 'phoneNumber' | 'phoneNumberPourcentage' | 'phoneNumberStatutsExpress' = 'phoneNumber'): string | null {\n if (roles.some((role) => [Role.FRONT_OFFICE, Role.EXPERT_ACCOUNTANT].includes(role))) {\n return RoleDetail.FRONT_OFFICE[attribute];\n }\n\n if (roles.some((role) => [Role.FRONT_OFFICE_EXPRESS].includes(role))) {\n return RoleDetail.FRONT_OFFICE_EXPRESS[attribute];\n }\n\n if (roles.some((role) => [Role.COMMERCIAL].includes(role))) {\n return RoleDetail.COMMERCIAL[attribute];\n }\n\n if (roles.some((role) => [Role.FACTURATION].includes(role))) {\n return RoleDetail.FACTURATION[attribute];\n }\n\n if (roles.some((role) => [Role.CUSTOMER_SUCCESS].includes(role))) {\n return RoleDetail.CUSTOMER_SUCCESS[attribute];\n }\n\n if (roles.some((role) => [Role.JURIDIC, Role.JURIDICAL_SUPPORT].includes(role))) {\n return RoleDetail.JURIDIC[attribute];\n }\n\n if (roles.some((role) => [Role.SOCIAL].includes(role))) {\n return RoleDetail.SOCIAL[attribute];\n }\n\n return null;\n}\n\nexport function formatPhoneNumberToNational(phoneNumber: string): string {\n\n const phoneWithoutSpace = phoneNumber.replace(/ /g, '');\n\n if (phoneWithoutSpace?.startsWith('+33')) {\n return phoneWithoutSpace.replace('+33', '0');\n }\n\n // Fonction à mettre à jour en fonction des cas de notre bdd\n return phoneWithoutSpace;\n}"]}
@@ -251,7 +251,7 @@ export function getClientQuotation(society, otherSocieties, lastNotice, unpaidDe
251
251
  return {
252
252
  cotation: quotation,
253
253
  data: detailQuotation,
254
- idSociety: society.id,
254
+ idSociety: society.id ?? 0,
255
255
  };
256
256
  }
257
257
  export function compareTwoCotation(cotations) {
@@ -1 +1 @@
1
- {"version":3,"file":"quotation.js","sourceRoot":"","sources":["../../../ts/utils/quotation.ts"],"names":[],"mappings":"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","sourcesContent":["import * as dayjs from 'dayjs';\nimport { ForbidenDomain, BasicDomain } from '../types/Enum/MailDomainType';\nimport { Activity } from '../types/Enum/Activity';\nimport { ComptaType } from '../types/Enum/ComptaType';\nimport { ISociety } from '../types/Interface/models/ISociety';\nimport { ICotation } from '../types/Interface/models/ICotation';\nimport {\n BasePaginate,\n IPayment,\n IRating, IReport, ISocietyProceding, ReadClientQuotation,\n} from '../types';\n\ntype getLeadQuotationParams = {\n firstname: string,\n lastname: string,\n phone: string,\n mail: string,\n annualTurnover: number,\n source: number,\n alreadyExist: boolean,\n activitySector: number,\n};\n\nexport function getLeadQuotation(params: getLeadQuotationParams):number {\n const {\n firstname, lastname, phone, mail, annualTurnover, source, alreadyExist, activitySector,\n } = params;\n if (\n firstname === 'test'\n || lastname === 'test'\n || mail?.includes('test')\n || ['606060606', '707070707', '612345678', '712345678', '687654321', '787654321'].includes(phone)\n ) {\n return 0;\n }\n let quotation = 0;\n\n /* cotation du prénom */\n if (firstname) quotation += 5;\n\n /* cotation du nom */\n if (lastname) quotation += 5;\n\n /* cotation du numéro de téléphone */\n if (phone && ['6', '7'].includes(phone.substr(0, 1))) {\n quotation += 15;\n } else {\n quotation += 5;\n }\n\n /* cotation de l'adresse email */\n if (BasicDomain.find((domain) => mail?.includes(domain))) {\n quotation += 5;\n } else\n if (!ForbidenDomain.find((domain) => mail?.includes(domain))) {\n quotation += 15;\n }\n\n /* cotation du CA annuel */\n if ([0, 150000, 400000, 783000, 783001].includes(annualTurnover)) {\n quotation += 10;\n } else if ([50000, 234000].includes(annualTurnover)) {\n quotation += 5;\n }\n\n /* cotation de la date d'ajout */\n if ([1, 2, 3, 4, 5].includes(new Date().getDay())) {\n const dateTime = new Date();\n const year = dateTime.getFullYear();\n const month = dateTime.getMonth();\n const day = dateTime.getDate();\n const startTime = new Date(`${year}-${month + 1}-${day} 08:45:00`);\n const endTime = new Date(`${year}-${month + 1}-${day} 18:45:00`);\n if ((startTime.getTime() <= dateTime.getTime()) && (endTime.getTime() >= dateTime.getTime())) {\n quotation += 15;\n } else {\n quotation += 5;\n }\n } else {\n quotation += 5;\n }\n\n /* cotation de la source */\n /* Parrainage */\n if (source === 49) {\n quotation += 10;\n\n /* calendly, appel entrant */\n } else if (source === 2) {\n quotation += 8;\n\n /* adWords, Bing, Formulaire */\n } else if (source === 4) {\n quotation += 6;\n\n /* Chat, Whatsapp */\n } else if ([29, 92].includes(source)) {\n quotation += 2;\n }\n\n /* cotation de la qualité (nombre de champs remplis) */\n const fieldNumber = [firstname, lastname, phone, mail, annualTurnover, activitySector].filter((data) => !!data).length;\n switch (fieldNumber) {\n case 6:\n quotation += 10;\n break;\n case 5:\n quotation += 8;\n break;\n case 4:\n quotation += 6;\n break;\n case 3:\n quotation += 4;\n break;\n case 2:\n quotation += 2;\n break;\n default:\n break;\n }\n\n /* cotation de l'existence du lead (déjà existant ou non) */\n if (alreadyExist) quotation += 8;\n\n /* cotation du secteur d'activité */\n if ([Activity.INFORMATIQUE, Activity.CONSEIL].includes(activitySector)) {\n quotation += 10;\n } else if ([Activity.TRANSPORT, Activity.BTP, Activity.RESTAURATION, Activity.COMMERCANT, Activity.MEDICAL, Activity.PROF_LIB].includes(activitySector)) {\n quotation += 5;\n }\n\n return quotation;\n}\n\n/* besoin en entré de la société concerné avec les différents imports (society), ainsi que la liste des autres sociétés ou l'owner est owner (otherSocieties) */\nexport function getClientQuotation(society: ISociety, otherSocieties: ISociety[], lastNotice: BasePaginate<IRating>, unpaidDetails: [], reports: IReport[], societyProcedings: ISocietyProceding[], tabBankAccount: any, firstPaiement: IPayment[]): ReadClientQuotation {\n let quotationPositive = 0;\n let quotationNegative = 0;\n let quotation = 0;\n const detailQuotation = {\n signature: 0,\n seniority: 0,\n additionalBenefits: 0,\n additionalCompanies: 0,\n unpayed: 0,\n updatedAnnotations: 0,\n bankSynchronization: 0,\n rating: 0,\n labRefused: 0,\n ongoingProceedings: 0,\n report: 0,\n termination: 0,\n created: 0,\n };\n\n // calcul de l'ancienneté de la société\n const anciennete = firstPaiement?.length > 0 ? dayjs().diff(dayjs(firstPaiement[0].datePayment, 'YYYY-MM-DD'), 'years') : 0;\n const ponderation = (anciennete * 0.1) + 1;\n\n /* Type de comptabilité du client (Tresorerie (+10) / Engagement (+15)) */\n if (society.idComptaType) {\n if ([ComptaType.CASH_BASED, ComptaType.CASH_BASED_ASSISTANCE, ComptaType.CASH_BASED_SEIZURE].includes(society.idComptaType)) {\n quotationPositive += 10;\n detailQuotation.signature += 10;\n } else if ([ComptaType.ACCRUALS, ComptaType.ACCRUALS_ASSISTANCE, ComptaType.ACCRUALS_SEIZURE].includes(society.idComptaType)) {\n quotationPositive += 15;\n detailQuotation.signature += 15;\n }\n }\n\n /* Ancienneté (1 ans < firstPaiement < 2 ans (+10) / 2 ans < firstPaiement (+20 / année)) */\n if (firstPaiement?.length > 0) {\n const yearAsClient = Number(new Date().getFullYear()) - Number(new Date(firstPaiement[0].datePayment).getFullYear());\n if (yearAsClient === 1) {\n quotationPositive += 10;\n detailQuotation.seniority += 10;\n } else if (yearAsClient > 1) {\n quotationPositive += (20 * (yearAsClient - 1) + 10);\n detailQuotation.seniority += (20 * (yearAsClient - 1) + 10);\n }\n }\n\n /* Prestations Complémentaires (+5 / prestation) */\n if (society.prestationsSocieties?.length) {\n const prestationsCompl = society.prestationsSocieties.filter((prestation) => prestation.idPrestationComplementary);\n prestationsCompl.forEach(() => {\n quotationPositive += Math.ceil(5 * ponderation);\n detailQuotation.additionalBenefits += Math.ceil(5 * ponderation);\n });\n }\n\n /* Sociétés supplémentaires (+8 / société) */\n if (otherSocieties.length) {\n quotationPositive += Math.ceil(8 * otherSocieties.length * ponderation);\n detailQuotation.additionalCompanies += Math.ceil(8 * otherSocieties.length * ponderation);\n }\n\n /* Impayés (-15 / mois) */\n if (unpaidDetails.length) {\n quotationNegative -= Math.ceil(15 * unpaidDetails.length * ponderation);\n detailQuotation.unpayed -= Math.ceil(15 * unpaidDetails.length * ponderation);\n }\n\n /* annotations à jour */\n if (tabBankAccount.societyAccountingTransactions?.length) {\n // on check s'il y a 80% des lignes annotées (dateLocked)\n let countNotAnnoted = 0;\n let percentageAnnotations = 100;\n tabBankAccount.societyAccountingTransactions.map((na:any) => {\n if (na.dateLocked === null) {\n countNotAnnoted += 1;\n }\n return countNotAnnoted;\n });\n if (countNotAnnoted !== 0) percentageAnnotations = (countNotAnnoted / tabBankAccount.societyAccountingTransactions?.length) * 100;\n if (percentageAnnotations >= 80) {\n quotationPositive += Math.ceil(12 * ponderation);\n detailQuotation.updatedAnnotations += Math.ceil(12 * ponderation);\n } else {\n quotationNegative -= Math.ceil(12 * ponderation);\n detailQuotation.updatedAnnotations -= Math.ceil(12 * ponderation);\n }\n }\n\n /* synchronisation bancaire */\n if (tabBankAccount.societyActivatedBankAccounts?.length) {\n // comptes synchro\n const synchro = tabBankAccount.societyActivatedBankAccounts.length - tabBankAccount.desactivatedBankAccount.length;\n quotationPositive += Math.ceil(12 * synchro * ponderation);\n detailQuotation.bankSynchronization += Math.ceil(12 * synchro * ponderation);\n\n // comptes desynchro\n quotationNegative -= Math.ceil(12 * tabBankAccount.desactivatedBankAccount.length * ponderation);\n detailQuotation.bankSynchronization -= Math.ceil(12 * tabBankAccount.desactivatedBankAccount.length * ponderation);\n }\n\n /* avis */\n if (lastNotice && lastNotice.data.length === 1) {\n if (lastNotice.data[0].average === 5) {\n quotationPositive += Math.ceil(10 * ponderation);\n detailQuotation.rating += Math.ceil(10 * ponderation);\n } else {\n quotationNegative -= 10;\n detailQuotation.rating -= 10;\n }\n }\n\n /* LAB refusée */\n if (society?.societyDetail) {\n if (!society.societyDetail?.acceptation) {\n quotationNegative -= 10;\n detailQuotation.labRefused -= 10;\n }\n }\n\n /* Cessation de paiement - redressement judiciaire - procédure en cours / signalements / résiliation */\n if (societyProcedings?.length) {\n quotationNegative -= 5 * societyProcedings.length;\n detailQuotation.ongoingProceedings -= 5 * societyProcedings.length;\n }\n\n if (reports?.length) {\n quotationNegative -= 10;\n detailQuotation.report -= 10;\n }\n\n if (society.isWaitingEnd) {\n quotationNegative -= 50;\n detailQuotation.termination -= 50;\n }\n\n /* Création chez nous */\n if (society.prestationsSocieties?.length) {\n const prestationsCreation = society.prestationsSocieties.filter((prestation) => prestation.idPrestationList === 15); // creation pas d'enum\n prestationsCreation.forEach(() => {\n quotationPositive += 10;\n detailQuotation.created += 10;\n });\n }\n\n if (quotationPositive > 100) quotationPositive = 100;\n if (quotationNegative > 100) quotationNegative = 100;\n\n quotation = quotationPositive + quotationNegative;\n\n if (quotation < 0) quotation = 0;\n\n return {\n cotation: quotation,\n data: detailQuotation,\n idSociety: society.id as number,\n };\n}\n\nexport function compareTwoCotation(cotations: ICotation[]):boolean | null {\n // on recupere les 2 dernieres cotations de la societe\n const higher = false;\n if (cotations[0].cotation === cotations[1].cotation) {\n return null;\n } if (cotations[0].cotation > cotations[1].cotation) {\n return true;\n }\n return higher;\n}"]}
1
+ {"version":3,"file":"quotation.js","sourceRoot":"","sources":["../../../ts/utils/quotation.ts"],"names":[],"mappings":"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","sourcesContent":["import * as dayjs from 'dayjs';\nimport { ForbidenDomain, BasicDomain } from '../types/Enum/MailDomainType';\nimport { Activity } from '../types/Enum/Activity';\nimport { ComptaType } from '../types/Enum/ComptaType';\nimport { ISociety } from '../types/Interface/models/ISociety';\nimport { ICotation } from '../types/Interface/models/ICotation';\nimport {\n BasePaginate,\n IPayment,\n IRating, IReport, ISocietyProceding, ReadClientQuotation,\n} from '../types';\n\ntype getLeadQuotationParams = {\n firstname: string,\n lastname: string,\n phone: string,\n mail: string,\n annualTurnover: number,\n source: number,\n alreadyExist: boolean,\n activitySector: number,\n};\n\nexport function getLeadQuotation(params: getLeadQuotationParams):number {\n const {\n firstname, lastname, phone, mail, annualTurnover, source, alreadyExist, activitySector,\n } = params;\n if (\n firstname === 'test'\n || lastname === 'test'\n || mail?.includes('test')\n || ['606060606', '707070707', '612345678', '712345678', '687654321', '787654321'].includes(phone)\n ) {\n return 0;\n }\n let quotation = 0;\n\n /* cotation du prénom */\n if (firstname) quotation += 5;\n\n /* cotation du nom */\n if (lastname) quotation += 5;\n\n /* cotation du numéro de téléphone */\n if (phone && ['6', '7'].includes(phone.substr(0, 1))) {\n quotation += 15;\n } else {\n quotation += 5;\n }\n\n /* cotation de l'adresse email */\n if (BasicDomain.find((domain) => mail?.includes(domain))) {\n quotation += 5;\n } else\n if (!ForbidenDomain.find((domain) => mail?.includes(domain))) {\n quotation += 15;\n }\n\n /* cotation du CA annuel */\n if ([0, 150000, 400000, 783000, 783001].includes(annualTurnover)) {\n quotation += 10;\n } else if ([50000, 234000].includes(annualTurnover)) {\n quotation += 5;\n }\n\n /* cotation de la date d'ajout */\n if ([1, 2, 3, 4, 5].includes(new Date().getDay())) {\n const dateTime = new Date();\n const year = dateTime.getFullYear();\n const month = dateTime.getMonth();\n const day = dateTime.getDate();\n const startTime = new Date(`${year}-${month + 1}-${day} 08:45:00`);\n const endTime = new Date(`${year}-${month + 1}-${day} 18:45:00`);\n if ((startTime.getTime() <= dateTime.getTime()) && (endTime.getTime() >= dateTime.getTime())) {\n quotation += 15;\n } else {\n quotation += 5;\n }\n } else {\n quotation += 5;\n }\n\n /* cotation de la source */\n /* Parrainage */\n if (source === 49) {\n quotation += 10;\n\n /* calendly, appel entrant */\n } else if (source === 2) {\n quotation += 8;\n\n /* adWords, Bing, Formulaire */\n } else if (source === 4) {\n quotation += 6;\n\n /* Chat, Whatsapp */\n } else if ([29, 92].includes(source)) {\n quotation += 2;\n }\n\n /* cotation de la qualité (nombre de champs remplis) */\n const fieldNumber = [firstname, lastname, phone, mail, annualTurnover, activitySector].filter((data) => !!data).length;\n switch (fieldNumber) {\n case 6:\n quotation += 10;\n break;\n case 5:\n quotation += 8;\n break;\n case 4:\n quotation += 6;\n break;\n case 3:\n quotation += 4;\n break;\n case 2:\n quotation += 2;\n break;\n default:\n break;\n }\n\n /* cotation de l'existence du lead (déjà existant ou non) */\n if (alreadyExist) quotation += 8;\n\n /* cotation du secteur d'activité */\n if ([Activity.INFORMATIQUE, Activity.CONSEIL].includes(activitySector)) {\n quotation += 10;\n } else if ([Activity.TRANSPORT, Activity.BTP, Activity.RESTAURATION, Activity.COMMERCANT, Activity.MEDICAL, Activity.PROF_LIB].includes(activitySector)) {\n quotation += 5;\n }\n\n return quotation;\n}\n\n/* besoin en entré de la société concerné avec les différents imports (society), ainsi que la liste des autres sociétés ou l'owner est owner (otherSocieties) */\nexport function getClientQuotation(society: ISociety, otherSocieties: ISociety[], lastNotice: BasePaginate<IRating>, unpaidDetails: [], reports: IReport[], societyProcedings: ISocietyProceding[], tabBankAccount: any, firstPaiement: IPayment[]): ReadClientQuotation {\n let quotationPositive = 0;\n let quotationNegative = 0;\n let quotation = 0;\n const detailQuotation = {\n signature: 0,\n seniority: 0,\n additionalBenefits: 0,\n additionalCompanies: 0,\n unpayed: 0,\n updatedAnnotations: 0,\n bankSynchronization: 0,\n rating: 0,\n labRefused: 0,\n ongoingProceedings: 0,\n report: 0,\n termination: 0,\n created: 0,\n };\n\n // calcul de l'ancienneté de la société\n const anciennete = firstPaiement?.length > 0 ? dayjs().diff(dayjs(firstPaiement[0].datePayment, 'YYYY-MM-DD'), 'years') : 0;\n const ponderation = (anciennete * 0.1) + 1;\n\n /* Type de comptabilité du client (Tresorerie (+10) / Engagement (+15)) */\n if (society.idComptaType) {\n if ([ComptaType.CASH_BASED, ComptaType.CASH_BASED_ASSISTANCE, ComptaType.CASH_BASED_SEIZURE].includes(society.idComptaType)) {\n quotationPositive += 10;\n detailQuotation.signature += 10;\n } else if ([ComptaType.ACCRUALS, ComptaType.ACCRUALS_ASSISTANCE, ComptaType.ACCRUALS_SEIZURE].includes(society.idComptaType)) {\n quotationPositive += 15;\n detailQuotation.signature += 15;\n }\n }\n\n /* Ancienneté (1 ans < firstPaiement < 2 ans (+10) / 2 ans < firstPaiement (+20 / année)) */\n if (firstPaiement?.length > 0) {\n const yearAsClient = Number(new Date().getFullYear()) - Number(new Date(firstPaiement[0].datePayment).getFullYear());\n if (yearAsClient === 1) {\n quotationPositive += 10;\n detailQuotation.seniority += 10;\n } else if (yearAsClient > 1) {\n quotationPositive += (20 * (yearAsClient - 1) + 10);\n detailQuotation.seniority += (20 * (yearAsClient - 1) + 10);\n }\n }\n\n /* Prestations Complémentaires (+5 / prestation) */\n if (society.prestationsSocieties?.length) {\n const prestationsCompl = society.prestationsSocieties.filter((prestation) => prestation.idPrestationComplementary);\n prestationsCompl.forEach(() => {\n quotationPositive += Math.ceil(5 * ponderation);\n detailQuotation.additionalBenefits += Math.ceil(5 * ponderation);\n });\n }\n\n /* Sociétés supplémentaires (+8 / société) */\n if (otherSocieties.length) {\n quotationPositive += Math.ceil(8 * otherSocieties.length * ponderation);\n detailQuotation.additionalCompanies += Math.ceil(8 * otherSocieties.length * ponderation);\n }\n\n /* Impayés (-15 / mois) */\n if (unpaidDetails.length) {\n quotationNegative -= Math.ceil(15 * unpaidDetails.length * ponderation);\n detailQuotation.unpayed -= Math.ceil(15 * unpaidDetails.length * ponderation);\n }\n\n /* annotations à jour */\n if (tabBankAccount.societyAccountingTransactions?.length) {\n // on check s'il y a 80% des lignes annotées (dateLocked)\n let countNotAnnoted = 0;\n let percentageAnnotations = 100;\n tabBankAccount.societyAccountingTransactions.map((na:any) => {\n if (na.dateLocked === null) {\n countNotAnnoted += 1;\n }\n return countNotAnnoted;\n });\n if (countNotAnnoted !== 0) percentageAnnotations = (countNotAnnoted / tabBankAccount.societyAccountingTransactions?.length) * 100;\n if (percentageAnnotations >= 80) {\n quotationPositive += Math.ceil(12 * ponderation);\n detailQuotation.updatedAnnotations += Math.ceil(12 * ponderation);\n } else {\n quotationNegative -= Math.ceil(12 * ponderation);\n detailQuotation.updatedAnnotations -= Math.ceil(12 * ponderation);\n }\n }\n\n /* synchronisation bancaire */\n if (tabBankAccount.societyActivatedBankAccounts?.length) {\n // comptes synchro\n const synchro = tabBankAccount.societyActivatedBankAccounts.length - tabBankAccount.desactivatedBankAccount.length;\n quotationPositive += Math.ceil(12 * synchro * ponderation);\n detailQuotation.bankSynchronization += Math.ceil(12 * synchro * ponderation);\n\n // comptes desynchro\n quotationNegative -= Math.ceil(12 * tabBankAccount.desactivatedBankAccount.length * ponderation);\n detailQuotation.bankSynchronization -= Math.ceil(12 * tabBankAccount.desactivatedBankAccount.length * ponderation);\n }\n\n /* avis */\n if (lastNotice && lastNotice.data.length === 1) {\n if (lastNotice.data[0].average === 5) {\n quotationPositive += Math.ceil(10 * ponderation);\n detailQuotation.rating += Math.ceil(10 * ponderation);\n } else {\n quotationNegative -= 10;\n detailQuotation.rating -= 10;\n }\n }\n\n /* LAB refusée */\n if (society?.societyDetail) {\n if (!society.societyDetail?.acceptation) {\n quotationNegative -= 10;\n detailQuotation.labRefused -= 10;\n }\n }\n\n /* Cessation de paiement - redressement judiciaire - procédure en cours / signalements / résiliation */\n if (societyProcedings?.length) {\n quotationNegative -= 5 * societyProcedings.length;\n detailQuotation.ongoingProceedings -= 5 * societyProcedings.length;\n }\n\n if (reports?.length) {\n quotationNegative -= 10;\n detailQuotation.report -= 10;\n }\n\n if (society.isWaitingEnd) {\n quotationNegative -= 50;\n detailQuotation.termination -= 50;\n }\n\n /* Création chez nous */\n if (society.prestationsSocieties?.length) {\n const prestationsCreation = society.prestationsSocieties.filter((prestation) => prestation.idPrestationList === 15); // creation pas d'enum\n prestationsCreation.forEach(() => {\n quotationPositive += 10;\n detailQuotation.created += 10;\n });\n }\n\n if (quotationPositive > 100) quotationPositive = 100;\n if (quotationNegative > 100) quotationNegative = 100;\n\n quotation = quotationPositive + quotationNegative;\n\n if (quotation < 0) quotation = 0;\n\n return {\n cotation: quotation,\n data: detailQuotation,\n idSociety: society.id ?? 0,\n };\n}\n\nexport function compareTwoCotation(cotations: ICotation[]):boolean | null {\n // on recupere les 2 dernieres cotations de la societe\n const higher = false;\n if (cotations[0].cotation === cotations[1].cotation) {\n return null;\n } if (cotations[0].cotation > cotations[1].cotation) {\n return true;\n }\n return higher;\n}"]}
@@ -6,7 +6,6 @@ const diffHours = (start, end) => {
6
6
  export function getBusinessDatesCount(startDate, endDate) {
7
7
  const day = startDate;
8
8
  let businessDays = 0;
9
- // eslint-disable-next-line no-unmodified-loop-condition
10
9
  while (day <= endDate) {
11
10
  if (day.getDay() !== 0 && day.getDay() !== 6) {
12
11
  if (diffHours(day, endDate) <= 4) {
@@ -1 +1 @@
1
- {"version":3,"file":"social.js","sourceRoot":"","sources":["../../../ts/utils/social.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,CAAC,KAAW,EAAE,GAAS,EAAU,EAAE;IACnD,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IACpD,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;IAChB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,SAAe,EAAE,OAAa;IAClE,MAAM,GAAG,GAAG,SAAS,CAAC;IACtB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,wDAAwD;IACxD,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YAC7C,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,YAAY,IAAI,GAAG,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,YAAY,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["const diffHours = (start: Date, end: Date): number => {\n let diff = (start.getTime() - end.getTime()) / 1000;\n diff /= 60 * 60;\n return Math.abs(Math.round(diff));\n};\n\nexport function getBusinessDatesCount(startDate: Date, endDate: Date): number {\n const day = startDate;\n let businessDays = 0;\n // eslint-disable-next-line no-unmodified-loop-condition\n while (day <= endDate) {\n if (day.getDay() !== 0 && day.getDay() !== 6) {\n if (diffHours(day, endDate) <= 4) {\n businessDays += 0.5;\n } else {\n businessDays += 1;\n }\n }\n day.setDate(day.getDate() + 1);\n }\n return businessDays;\n}"]}
1
+ {"version":3,"file":"social.js","sourceRoot":"","sources":["../../../ts/utils/social.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,CAAC,KAAW,EAAE,GAAS,EAAU,EAAE;IACnD,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IACpD,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;IAChB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,SAAe,EAAE,OAAa;IAClE,MAAM,GAAG,GAAG,SAAS,CAAC;IACtB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YAC7C,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,YAAY,IAAI,GAAG,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,YAAY,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["const diffHours = (start: Date, end: Date): number => {\n let diff = (start.getTime() - end.getTime()) / 1000;\n diff /= 60 * 60;\n return Math.abs(Math.round(diff));\n};\n\nexport function getBusinessDatesCount(startDate: Date, endDate: Date): number {\n const day = startDate;\n let businessDays = 0;\n \n while (day <= endDate) {\n if (day.getDay() !== 0 && day.getDay() !== 6) {\n if (diffHours(day, endDate) <= 4) {\n businessDays += 0.5;\n } else {\n businessDays += 1;\n }\n }\n day.setDate(day.getDate() + 1);\n }\n return businessDays;\n}"]}
@@ -101,9 +101,9 @@ export const creaEIMicro = {
101
101
  export const offers = [justCreation, creaEIMicro, justStatuts, creaSociete];
102
102
  export const getStatutsAmount = (idLegalForm, idPrestationList) => {
103
103
  const offer = offers.find((e) => e.id === idPrestationList);
104
- const price = typeof offer.price === 'object'
104
+ const price = typeof offer?.price === 'object'
105
105
  ? offer.price[idLegalForm]
106
- : offer.price;
106
+ : offer?.price || 0;
107
107
  return price +
108
108
  legalNoticesCosts[idLegalForm] +
109
109
  courtCosts[idLegalForm];
@@ -1 +1 @@
1
- {"version":3,"file":"statutsGeneration.js","sourceRoot":"","sources":["../../../ts/utils/statutsGeneration.ts"],"names":[],"mappings":"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","sourcesContent":["import { LegalFormTypeEnum } from '../types/Enum/LegalForm';\nimport { PrestationType } from '../types/Enum/PrestationType';\n\nexport const legalNoticesCosts: Record<number, number> = {\n [LegalFormTypeEnum.SASU]: 138,\n [LegalFormTypeEnum.SAS]: 193,\n [LegalFormTypeEnum.EURL]: 121,\n [LegalFormTypeEnum.SARL]: 144,\n [LegalFormTypeEnum.AUTO_ENTREPRENEUR]: 0,\n [LegalFormTypeEnum.EI]: 0,\n};\n\nexport const courtCosts: Record<number, number> = {\n [LegalFormTypeEnum.SASU]: 77.23,\n [LegalFormTypeEnum.SAS]: 77.23,\n [LegalFormTypeEnum.EURL]: 77.23,\n [LegalFormTypeEnum.SARL]: 77.23,\n [LegalFormTypeEnum.AUTO_ENTREPRENEUR]: 39,\n [LegalFormTypeEnum.EI]: 39,\n};\n\nexport const features = [\n {\n text: 'Statuts + dossier complet',\n detail: null,\n offers: [PrestationType.STATUTS_OPTION_1, PrestationType.STATUTS_OPTION_2],\n hidden: [PrestationType.STATUTS_FREE, PrestationType.STATUTS_OPTION_AE],\n },\n {\n text: 'Dossier complet',\n detail: null,\n offers: [PrestationType.STATUTS_OPTION_AE],\n hidden: [PrestationType.STATUTS_FREE, PrestationType.STATUTS_OPTION_1, PrestationType.STATUTS_OPTION_2],\n },\n {\n text: 'Statuts',\n detail: null,\n offers: [PrestationType.STATUTS_FREE],\n hidden: [PrestationType.STATUTS_OPTION_1, PrestationType.STATUTS_OPTION_2, PrestationType.STATUTS_OPTION_AE],\n },\n {\n text: 'Assistance mail et téléphonique',\n detail: null,\n offers: [PrestationType.STATUTS_FREE, PrestationType.STATUTS_OPTION_1, PrestationType.STATUTS_OPTION_2, PrestationType.STATUTS_OPTION_AE],\n },\n { text: 'Suivi par nos formalistes', detail: null, offers: [PrestationType.STATUTS_OPTION_2, PrestationType.STATUTS_OPTION_AE] },\n {\n text: 'Immatriculation',\n detail: '(sous réserve du guichet unique)',\n offers: [PrestationType.STATUTS_OPTION_2, PrestationType.STATUTS_OPTION_AE],\n },\n { text: 'Assurance anti-rejet', detail: null, offers: [PrestationType.STATUTS_OPTION_2] },\n { text: 'Vérification du dossier', detail: null, offers: [PrestationType.STATUTS_OPTION_2] },\n];\n\nexport const justCreation = {\n id: PrestationType.STATUTS_OPTION_1,\n tag: null,\n title: 'Just’ Création',\n description: 'Une création en quelques clics',\n price: 0,\n priceInformation: 'HT',\n additionalCosts: '+ Frais de greffe + frais d’annonce légale',\n features: features.filter((f) => f.offers.includes(PrestationType.STATUTS_FREE)),\n legalForms: [LegalFormTypeEnum.SASU, LegalFormTypeEnum.SAS, LegalFormTypeEnum.EURL, LegalFormTypeEnum.SARL],\n};\n \nexport const justStatuts = {\n id: PrestationType.STATUTS_FREE,\n tag: null,\n title: 'Just’ Statuts',\n description: 'Editer vos statuts n’a jamais été aussi simple et rapide.',\n price: 79,\n priceInformation: 'HT',\n additionalCosts: 'Annonce légale et frais de greffe non inclus',\n features: features.filter((f) => f.offers.includes(PrestationType.STATUTS_FREE)),\n legalForms: [LegalFormTypeEnum.SASU, LegalFormTypeEnum.SAS, LegalFormTypeEnum.EURL, LegalFormTypeEnum.SARL],\n};\n \nexport const creaSociete = {\n id: PrestationType.STATUTS_OPTION_2,\n tag: 'Populaire',\n title: 'Full\\'Créa',\n description: 'Création de société de A à Z, réalisée en toute conformité.',\n price: {\n [LegalFormTypeEnum.SASU]: 179,\n [LegalFormTypeEnum.SAS]: 219,\n [LegalFormTypeEnum.EURL]: 179,\n [LegalFormTypeEnum.SARL]: 219,\n } as Record<number, number>,\n priceInformation: 'HT',\n additionalCosts: '+ frais de greffe + frais d’annonce légale',\n features: features.filter((f) => f.offers.includes(PrestationType.STATUTS_OPTION_2)),\n legalForms: [LegalFormTypeEnum.SASU, LegalFormTypeEnum.SAS, LegalFormTypeEnum.EURL, LegalFormTypeEnum.SARL],\n};\n \nexport const creaEIMicro = {\n id: PrestationType.STATUTS_OPTION_AE,\n tag: null,\n title: 'Créa EI et Micro',\n description:\n 'Créer votre entreprise individuelle ou votre micro-entreprise en quelques clics.',\n price: 60,\n priceInformation: 'HT',\n additionalCosts: '+ 39€ HT de frais de greffe',\n features: features.filter((f) => f.offers.includes(PrestationType.STATUTS_OPTION_AE)),\n legalForms: [LegalFormTypeEnum.AUTO_ENTREPRENEUR, LegalFormTypeEnum.EI],\n};\n \nexport const offers = [justCreation, creaEIMicro, justStatuts, creaSociete];\n\nexport const getStatutsAmount = (idLegalForm: LegalFormTypeEnum, idPrestationList: PrestationType): number => {\n const offer = offers.find((e) => e.id === idPrestationList)!;\n \n const price =\n typeof offer.price === 'object'\n ? offer.price[idLegalForm]\n : offer.price;\n\n return price +\n legalNoticesCosts[idLegalForm] +\n courtCosts[idLegalForm];\n};"]}
1
+ {"version":3,"file":"statutsGeneration.js","sourceRoot":"","sources":["../../../ts/utils/statutsGeneration.ts"],"names":[],"mappings":"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","sourcesContent":["import { LegalFormTypeEnum } from '../types/Enum/LegalForm';\nimport { PrestationType } from '../types/Enum/PrestationType';\n\nexport const legalNoticesCosts: Record<number, number> = {\n [LegalFormTypeEnum.SASU]: 138,\n [LegalFormTypeEnum.SAS]: 193,\n [LegalFormTypeEnum.EURL]: 121,\n [LegalFormTypeEnum.SARL]: 144,\n [LegalFormTypeEnum.AUTO_ENTREPRENEUR]: 0,\n [LegalFormTypeEnum.EI]: 0,\n};\n\nexport const courtCosts: Record<number, number> = {\n [LegalFormTypeEnum.SASU]: 77.23,\n [LegalFormTypeEnum.SAS]: 77.23,\n [LegalFormTypeEnum.EURL]: 77.23,\n [LegalFormTypeEnum.SARL]: 77.23,\n [LegalFormTypeEnum.AUTO_ENTREPRENEUR]: 39,\n [LegalFormTypeEnum.EI]: 39,\n};\n\nexport const features = [\n {\n text: 'Statuts + dossier complet',\n detail: null,\n offers: [PrestationType.STATUTS_OPTION_1, PrestationType.STATUTS_OPTION_2],\n hidden: [PrestationType.STATUTS_FREE, PrestationType.STATUTS_OPTION_AE],\n },\n {\n text: 'Dossier complet',\n detail: null,\n offers: [PrestationType.STATUTS_OPTION_AE],\n hidden: [PrestationType.STATUTS_FREE, PrestationType.STATUTS_OPTION_1, PrestationType.STATUTS_OPTION_2],\n },\n {\n text: 'Statuts',\n detail: null,\n offers: [PrestationType.STATUTS_FREE],\n hidden: [PrestationType.STATUTS_OPTION_1, PrestationType.STATUTS_OPTION_2, PrestationType.STATUTS_OPTION_AE],\n },\n {\n text: 'Assistance mail et téléphonique',\n detail: null,\n offers: [PrestationType.STATUTS_FREE, PrestationType.STATUTS_OPTION_1, PrestationType.STATUTS_OPTION_2, PrestationType.STATUTS_OPTION_AE],\n },\n { text: 'Suivi par nos formalistes', detail: null, offers: [PrestationType.STATUTS_OPTION_2, PrestationType.STATUTS_OPTION_AE] },\n {\n text: 'Immatriculation',\n detail: '(sous réserve du guichet unique)',\n offers: [PrestationType.STATUTS_OPTION_2, PrestationType.STATUTS_OPTION_AE],\n },\n { text: 'Assurance anti-rejet', detail: null, offers: [PrestationType.STATUTS_OPTION_2] },\n { text: 'Vérification du dossier', detail: null, offers: [PrestationType.STATUTS_OPTION_2] },\n];\n\nexport const justCreation = {\n id: PrestationType.STATUTS_OPTION_1,\n tag: null,\n title: 'Just’ Création',\n description: 'Une création en quelques clics',\n price: 0,\n priceInformation: 'HT',\n additionalCosts: '+ Frais de greffe + frais d’annonce légale',\n features: features.filter((f) => f.offers.includes(PrestationType.STATUTS_FREE)),\n legalForms: [LegalFormTypeEnum.SASU, LegalFormTypeEnum.SAS, LegalFormTypeEnum.EURL, LegalFormTypeEnum.SARL],\n};\n \nexport const justStatuts = {\n id: PrestationType.STATUTS_FREE,\n tag: null,\n title: 'Just’ Statuts',\n description: 'Editer vos statuts n’a jamais été aussi simple et rapide.',\n price: 79,\n priceInformation: 'HT',\n additionalCosts: 'Annonce légale et frais de greffe non inclus',\n features: features.filter((f) => f.offers.includes(PrestationType.STATUTS_FREE)),\n legalForms: [LegalFormTypeEnum.SASU, LegalFormTypeEnum.SAS, LegalFormTypeEnum.EURL, LegalFormTypeEnum.SARL],\n};\n \nexport const creaSociete = {\n id: PrestationType.STATUTS_OPTION_2,\n tag: 'Populaire',\n title: 'Full\\'Créa',\n description: 'Création de société de A à Z, réalisée en toute conformité.',\n price: {\n [LegalFormTypeEnum.SASU]: 179,\n [LegalFormTypeEnum.SAS]: 219,\n [LegalFormTypeEnum.EURL]: 179,\n [LegalFormTypeEnum.SARL]: 219,\n } as Record<number, number>,\n priceInformation: 'HT',\n additionalCosts: '+ frais de greffe + frais d’annonce légale',\n features: features.filter((f) => f.offers.includes(PrestationType.STATUTS_OPTION_2)),\n legalForms: [LegalFormTypeEnum.SASU, LegalFormTypeEnum.SAS, LegalFormTypeEnum.EURL, LegalFormTypeEnum.SARL],\n};\n \nexport const creaEIMicro = {\n id: PrestationType.STATUTS_OPTION_AE,\n tag: null,\n title: 'Créa EI et Micro',\n description:\n 'Créer votre entreprise individuelle ou votre micro-entreprise en quelques clics.',\n price: 60,\n priceInformation: 'HT',\n additionalCosts: '+ 39€ HT de frais de greffe',\n features: features.filter((f) => f.offers.includes(PrestationType.STATUTS_OPTION_AE)),\n legalForms: [LegalFormTypeEnum.AUTO_ENTREPRENEUR, LegalFormTypeEnum.EI],\n};\n \nexport const offers = [justCreation, creaEIMicro, justStatuts, creaSociete];\n\nexport const getStatutsAmount = (idLegalForm: LegalFormTypeEnum, idPrestationList: PrestationType): number => {\n const offer = offers.find((e) => e.id === idPrestationList);\n \n const price: number =\n typeof offer?.price === 'object'\n ? offer.price[idLegalForm]\n : offer?.price || 0;\n\n return price +\n legalNoticesCosts[idLegalForm] +\n courtCosts[idLegalForm];\n};"]}
@@ -99,7 +99,7 @@ describe('Payment', () => {
99
99
  // logical
100
100
  // =====================
101
101
  // express
102
- test('if only one express, monthly payments of actual exo should be in parallel of express monthly payments, smoothed in number of remaining months (mini 3 months) (if not in 3 last month)', async () => {
102
+ test('if only one express, monthly payments of actual exo should be in parallel of express monthly payments, smoothed in number of remaining months (mini 3 months) (if not in 3 last month)', () => {
103
103
  const payments = calculatePaymentsAuto({
104
104
  idTypeBrand: 1,
105
105
  firstExerciceNonExpresssEndDate,
@@ -117,7 +117,7 @@ describe('Payment', () => {
117
117
  const firstNonExpressDatePayment = payments.filter(p => dayjs(p.closingDate).diff(firstExerciceNonExpresssEndDate) === 0)[0].datePayment;
118
118
  expect(dayjs(firstNonExpressDatePayment).diff(firstExpressDatePayment, 'month')).toStrictEqual(0);
119
119
  });
120
- test('if more than one express, monthly payments of actual exo should be in a row of express monthly payments and smoothed, smoothed in number of remaining months after express monthly payments (mini 3 months) (if in 3 last month of exercice)', async () => {
120
+ test('if more than one express, monthly payments of actual exo should be in a row of express monthly payments and smoothed, smoothed in number of remaining months after express monthly payments (mini 3 months) (if in 3 last month of exercice)', () => {
121
121
  const payments = calculatePaymentsAuto({
122
122
  idTypeBrand: 1,
123
123
  firstExerciceNonExpresssEndDate,
@@ -136,7 +136,7 @@ describe('Payment', () => {
136
136
  expect(dayjs(firstNonExpressDatePayment).diff(lastExpressDatePayment, 'month')).toStrictEqual(1);
137
137
  });
138
138
  // non express
139
- test('should return a number of payments equal to nb of remaining months in exercice (if not in 3 last months)', async () => {
139
+ test('should return a number of payments equal to nb of remaining months in exercice (if not in 3 last months)', () => {
140
140
  const mockedDate = dayjs('2024-05-15').toDate();
141
141
  MockDate.set(mockedDate);
142
142
  const nbMonthDelay = 6;
@@ -162,7 +162,7 @@ describe('Payment', () => {
162
162
  expect(listNonExpressPayments.length).toStrictEqual(1 + nbMonthDelay); //On ajoute 1 pour les frais de dossier
163
163
  MockDate.reset();
164
164
  });
165
- test('should return a number of payments equal to 3 (if in 3 last month of exercice)', async () => {
165
+ test('should return a number of payments equal to 3 (if in 3 last month of exercice)', () => {
166
166
  const nbMonthDelay = 1;
167
167
  const newFirstExerciceNonExpresssEndDate = dayjs().add(nbMonthDelay, 'month').endOf('month').toDate();
168
168
  const payments = calculatePaymentsAuto({
@@ -184,7 +184,7 @@ describe('Payment', () => {
184
184
  const listNonExpressPayments = payments.filter(p => dayjs(p.closingDate).diff(newFirstExerciceNonExpresssEndDate) === 0);
185
185
  expect(listNonExpressPayments.length).toStrictEqual(1 + 3); //On ajoute 1 pour les frais de dossier
186
186
  });
187
- test('should (yearlyAmountNonExpress - sum of listRegulations) / count of monthly payments be equal to monthly payment amount (if not in 3 last month)', async () => {
187
+ test('should (yearlyAmountNonExpress - sum of listRegulations) / count of monthly payments be equal to monthly payment amount (if not in 3 last month)', () => {
188
188
  const mockedDate = dayjs('2024-05-15').toDate();
189
189
  MockDate.set(mockedDate);
190
190
  const nbMonthDelay = 6;
@@ -211,7 +211,7 @@ describe('Payment', () => {
211
211
  expect(payments[1].amount).toStrictEqual(amount);
212
212
  MockDate.reset();
213
213
  });
214
- test('should (totalAmount - firstPaymentAmount) / 3 be equal to monthly payment amount (if in 3 last month of exercice)', async () => {
214
+ test('should (totalAmount - firstPaymentAmount) / 3 be equal to monthly payment amount (if in 3 last month of exercice)', () => {
215
215
  const nbMonthDelay = 1;
216
216
  const newFirstExerciceNonExpresssEndDate = dayjs().add(nbMonthDelay, 'month').endOf('month').toDate();
217
217
  const newListRegulations = [{
@@ -236,7 +236,7 @@ describe('Payment', () => {
236
236
  expect(payments[1].amount).toStrictEqual(amount);
237
237
  });
238
238
  // annual price increase
239
- test('should apply annual price increase (2,75%) if signed before last 3 months of civil year', async () => {
239
+ test('should apply annual price increase (2,75%) if signed before last 3 months of civil year', () => {
240
240
  const mockedDate = dayjs('2024-08-15').toDate();
241
241
  MockDate.set(mockedDate);
242
242
  const newFirstExerciceNonExpresssEndDate = dayjs().add(11, 'month').endOf('month').toDate();
@@ -261,7 +261,7 @@ describe('Payment', () => {
261
261
  expect(firstPaymentWithTaxRateForced - listNonExpressPayments.splice(-2)[0].amount).toBeLessThanOrEqual(0.01); //Permet de gérer le pb d'arrondi
262
262
  MockDate.reset();
263
263
  });
264
- test('should not apply annual price increase (2,75%) if signed in last 3 months of civil year', async () => {
264
+ test('should not apply annual price increase (2,75%) if signed in last 3 months of civil year', () => {
265
265
  const mockedDate = dayjs('2024-11-15').toDate();
266
266
  MockDate.set(mockedDate);
267
267
  const newFirstExerciceNonExpresssEndDate = dayjs().add(11, 'month').endOf('month').toDate();
@@ -285,7 +285,7 @@ describe('Payment', () => {
285
285
  expect(listNonExpressPayments[0].amount).toStrictEqual(listNonExpressPayments.splice(-2)[0].amount);
286
286
  MockDate.reset();
287
287
  });
288
- test('should apply 14,9€ HT increase for the second exercice created (only offered on first exo) (no rules for 3 last months)', async () => {
288
+ test('should apply 14,9€ HT increase for the second exercice created (only offered on first exo) (no rules for 3 last months)', () => {
289
289
  const mockedDate = dayjs('2024-06-15').toDate();
290
290
  MockDate.set(mockedDate);
291
291
  const newFirstExerciceNonExpresssEndDate = dayjs().add(12, 'month').endOf('month').toDate();
@@ -311,7 +311,7 @@ describe('Payment', () => {
311
311
  MockDate.reset();
312
312
  });
313
313
  // misc
314
- test('should payments been generated sorted by exercices start date', async () => {
314
+ test('should payments been generated sorted by exercices start date', () => {
315
315
  const listPartialExercicePrestationExpressCloned = [...listPartialExercicePrestationExpress];
316
316
  listPartialExercicePrestationExpressCloned[0] = {
317
317
  ...listPartialExercicePrestationExpress[0],
@@ -337,7 +337,7 @@ describe('Payment', () => {
337
337
  expect(payments.length).toBeGreaterThanOrEqual(4);
338
338
  expect(dayjs(payments[payments.length - 1].datePayment).diff(dayjs(payments?.[0]?.datePayment), 'month')).toBeGreaterThan(0);
339
339
  });
340
- test('if regulations are bigger than sum exercice prestation amounts, should pass some exercice payments', async () => {
340
+ test('if regulations are bigger than sum exercice prestation amounts, should pass some exercice payments', () => {
341
341
  const mockedDate = dayjs('2024-03-15').toDate();
342
342
  MockDate.set(mockedDate);
343
343
  const payments = calculatePaymentsAuto({
@@ -373,7 +373,7 @@ describe('Payment', () => {
373
373
  });
374
374
  MockDate.reset();
375
375
  });
376
- test('should not consider actual month if signed in last 3 days of month', async () => {
376
+ test('should not consider actual month if signed in last 3 days of month', () => {
377
377
  const mockedDate = dayjs('2024-03-29').toDate();
378
378
  MockDate.set(mockedDate);
379
379
  const payments = calculatePaymentsAuto({
@@ -393,7 +393,7 @@ describe('Payment', () => {
393
393
  expect(payments?.[1]?.datePayment).toStrictEqual(dayjs().add(2, 'month').startOf('month').toDate());
394
394
  MockDate.reset();
395
395
  });
396
- test('last payment returned should be last of a year (12/XX)', async () => {
396
+ test('last payment returned should be last of a year (12/XX)', () => {
397
397
  const mockedDate = dayjs('2024-03-29').toDate();
398
398
  MockDate.set(mockedDate);
399
399
  const payments = calculatePaymentsAuto({
@@ -412,7 +412,7 @@ describe('Payment', () => {
412
412
  expect(payments.length).toBeGreaterThanOrEqual(4);
413
413
  expect(dayjs(payments[payments.length - 1].datePayment).month()).toStrictEqual(11);
414
414
  });
415
- test('first payment and last payment should have at least one year difference (ex. : 23 - 24)', async () => {
415
+ test('first payment and last payment should have at least one year difference (ex. : 23 - 24)', () => {
416
416
  const payments = calculatePaymentsAuto({
417
417
  idTypeBrand: 1,
418
418
  firstExerciceNonExpresssEndDate,
@@ -428,7 +428,7 @@ describe('Payment', () => {
428
428
  });
429
429
  expect(dayjs(payments.slice(-1)?.[0]?.datePayment).diff(dayjs(payments?.[0]?.datePayment), 'year', true)).toBeGreaterThan(1);
430
430
  });
431
- test('real case : idSociety 114440', async () => {
431
+ test('real case : idSociety 114440', () => {
432
432
  const payments = calculatePaymentsAuto({
433
433
  idTypeBrand: 1,
434
434
  firstExerciceNonExpresssEndDate: dayjs('2024-12-31').toDate(),