@silexpert/core 1.3.131-4 → 1.3.131

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 (400) hide show
  1. package/dist/cjs/api/resources/Checklist.d.ts +2 -3
  2. package/dist/cjs/api/resources/Checklist.d.ts.map +1 -1
  3. package/dist/cjs/api/resources/Checklist.js +1 -9
  4. package/dist/cjs/api/resources/Checklist.js.map +1 -1
  5. package/dist/cjs/api/resources/Exercice.d.ts +0 -1
  6. package/dist/cjs/api/resources/Exercice.d.ts.map +1 -1
  7. package/dist/cjs/api/resources/Exercice.js +0 -3
  8. package/dist/cjs/api/resources/Exercice.js.map +1 -1
  9. package/dist/cjs/api/resources/Payment.d.ts +2 -3
  10. package/dist/cjs/api/resources/Payment.d.ts.map +1 -1
  11. package/dist/cjs/api/resources/Payment.js +0 -3
  12. package/dist/cjs/api/resources/Payment.js.map +1 -1
  13. package/dist/cjs/api/resources/Registration.js +1 -1
  14. package/dist/cjs/api/resources/Registration.js.map +1 -1
  15. package/dist/cjs/api/resources/Team.d.ts +1 -21
  16. package/dist/cjs/api/resources/Team.d.ts.map +1 -1
  17. package/dist/cjs/api/resources/Team.js +0 -26
  18. package/dist/cjs/api/resources/Team.js.map +1 -1
  19. package/dist/cjs/api/resources.d.ts +0 -4
  20. package/dist/cjs/api/resources.d.ts.map +1 -1
  21. package/dist/cjs/api/resources.js +0 -4
  22. package/dist/cjs/api/resources.js.map +1 -1
  23. package/dist/cjs/types/Enum/Aspone.d.ts +0 -8
  24. package/dist/cjs/types/Enum/Aspone.d.ts.map +1 -1
  25. package/dist/cjs/types/Enum/Aspone.js +1 -11
  26. package/dist/cjs/types/Enum/Aspone.js.map +1 -1
  27. package/dist/cjs/types/Enum/BalanceSheet.d.ts +0 -66
  28. package/dist/cjs/types/Enum/BalanceSheet.d.ts.map +1 -1
  29. package/dist/cjs/types/Enum/BalanceSheet.js +69 -136
  30. package/dist/cjs/types/Enum/BalanceSheet.js.map +1 -1
  31. package/dist/cjs/types/Enum/BalanceSheetQuestion.d.ts +1 -62
  32. package/dist/cjs/types/Enum/BalanceSheetQuestion.d.ts.map +1 -1
  33. package/dist/cjs/types/Enum/BalanceSheetQuestion.js +0 -62
  34. package/dist/cjs/types/Enum/BalanceSheetQuestion.js.map +1 -1
  35. package/dist/cjs/types/Enum/BalanceSheetQuestionWording.d.ts +13 -58
  36. package/dist/cjs/types/Enum/BalanceSheetQuestionWording.d.ts.map +1 -1
  37. package/dist/cjs/types/Enum/BalanceSheetQuestionWording.js +12 -58
  38. package/dist/cjs/types/Enum/BalanceSheetQuestionWording.js.map +1 -1
  39. package/dist/cjs/types/Enum/Ged.js +1 -1
  40. package/dist/cjs/types/Enum/Ged.js.map +1 -1
  41. package/dist/cjs/types/Enum/GlobalRegime.js +19 -19
  42. package/dist/cjs/types/Enum/GlobalRegime.js.map +1 -1
  43. package/dist/cjs/types/Enum/IncomeStatement.d.ts +0 -32
  44. package/dist/cjs/types/Enum/IncomeStatement.d.ts.map +1 -1
  45. package/dist/cjs/types/Enum/IncomeStatement.js +41 -74
  46. package/dist/cjs/types/Enum/IncomeStatement.js.map +1 -1
  47. package/dist/cjs/types/Enum/LegalForm.d.ts +0 -1
  48. package/dist/cjs/types/Enum/LegalForm.d.ts.map +1 -1
  49. package/dist/cjs/types/Enum/LegalForm.js +4 -39
  50. package/dist/cjs/types/Enum/LegalForm.js.map +1 -1
  51. package/dist/cjs/types/Enum/MailAuto.d.ts +1 -2
  52. package/dist/cjs/types/Enum/MailAuto.d.ts.map +1 -1
  53. package/dist/cjs/types/Enum/MailAuto.js +0 -1
  54. package/dist/cjs/types/Enum/MailAuto.js.map +1 -1
  55. package/dist/cjs/types/Interface/api/OnBoarding.d.ts +0 -1
  56. package/dist/cjs/types/Interface/api/OnBoarding.d.ts.map +1 -1
  57. package/dist/cjs/types/Interface/api/OnBoarding.js +0 -6
  58. package/dist/cjs/types/Interface/api/OnBoarding.js.map +1 -1
  59. package/dist/cjs/types/Interface/api/balanceSheet/ReadBalanceSheet.d.ts +2 -3
  60. package/dist/cjs/types/Interface/api/balanceSheet/ReadBalanceSheet.d.ts.map +1 -1
  61. package/dist/cjs/types/Interface/api/balanceSheet/ReadBalanceSheet.js.map +1 -1
  62. package/dist/cjs/types/Interface/api/cerfa/2031.d.ts +2 -3
  63. package/dist/cjs/types/Interface/api/cerfa/2031.d.ts.map +1 -1
  64. package/dist/cjs/types/Interface/api/cerfa/2031.js.map +1 -1
  65. package/dist/cjs/types/Interface/api/cerfa/2050.d.ts +1634 -1592
  66. package/dist/cjs/types/Interface/api/cerfa/2050.d.ts.map +1 -1
  67. package/dist/cjs/types/Interface/api/cerfa/2050.js.map +1 -1
  68. package/dist/cjs/types/Interface/api/cerfa/2065.d.ts +2 -3
  69. package/dist/cjs/types/Interface/api/cerfa/2065.d.ts.map +1 -1
  70. package/dist/cjs/types/Interface/api/cerfa/2065.js.map +1 -1
  71. package/dist/cjs/types/Interface/api/cerfa/ReadCerfa.d.ts +1 -10
  72. package/dist/cjs/types/Interface/api/cerfa/ReadCerfa.d.ts.map +1 -1
  73. package/dist/cjs/types/Interface/api/cerfa/ReadCerfa.js.map +1 -1
  74. package/dist/cjs/types/Interface/api/checklist/Query.d.ts +0 -3
  75. package/dist/cjs/types/Interface/api/checklist/Query.d.ts.map +1 -1
  76. package/dist/cjs/types/Interface/api/checklist/Query.js +1 -11
  77. package/dist/cjs/types/Interface/api/checklist/Query.js.map +1 -1
  78. package/dist/cjs/types/Interface/api/incomeStatement/ReadIncomeStatement.d.ts +2 -3
  79. package/dist/cjs/types/Interface/api/incomeStatement/ReadIncomeStatement.d.ts.map +1 -1
  80. package/dist/cjs/types/Interface/api/incomeStatement/ReadIncomeStatement.js.map +1 -1
  81. package/dist/cjs/types/Interface/api/payment/Params.d.ts +0 -4
  82. package/dist/cjs/types/Interface/api/payment/Params.d.ts.map +1 -1
  83. package/dist/cjs/types/Interface/api/payment/Params.js +1 -18
  84. package/dist/cjs/types/Interface/api/payment/Params.js.map +1 -1
  85. package/dist/cjs/types/Interface/api/payment/Util.d.ts +2 -0
  86. package/dist/cjs/types/Interface/api/payment/Util.d.ts.map +1 -1
  87. package/dist/cjs/types/Interface/api/payment/Util.js.map +1 -1
  88. package/dist/cjs/types/Interface/api/registration/ReadRegistration.d.ts +0 -4
  89. package/dist/cjs/types/Interface/api/registration/ReadRegistration.d.ts.map +1 -1
  90. package/dist/cjs/types/Interface/api/registration/ReadRegistration.js.map +1 -1
  91. package/dist/cjs/types/Interface/api/society/ReadSociety.d.ts +4 -2
  92. package/dist/cjs/types/Interface/api/society/ReadSociety.d.ts.map +1 -1
  93. package/dist/cjs/types/Interface/api/society/ReadSociety.js.map +1 -1
  94. package/dist/cjs/types/Interface/models/IPrestation.d.ts.map +1 -1
  95. package/dist/cjs/types/Interface/models/IPrestation.js.map +1 -1
  96. package/dist/cjs/types/Interface/models/IUser.d.ts +0 -1
  97. package/dist/cjs/types/Interface/models/IUser.d.ts.map +1 -1
  98. package/dist/cjs/types/Interface/models/IUser.js.map +1 -1
  99. package/dist/cjs/types/index.d.ts +0 -4
  100. package/dist/cjs/types/index.d.ts.map +1 -1
  101. package/dist/cjs/types/index.js +0 -4
  102. package/dist/cjs/types/index.js.map +1 -1
  103. package/dist/cjs/utils/payment.js +50 -54
  104. package/dist/cjs/utils/payment.js.map +1 -1
  105. package/dist/cjs/utils/prestation.d.ts +0 -1
  106. package/dist/cjs/utils/prestation.d.ts.map +1 -1
  107. package/dist/cjs/utils/prestation.js +0 -1
  108. package/dist/cjs/utils/prestation.js.map +1 -1
  109. package/dist/cjs/utils/tests/payment.spec.js +33 -33
  110. package/dist/cjs/utils/tests/payment.spec.js.map +1 -1
  111. package/dist/cjs/utils/vat/3310/century25.js +1 -1
  112. package/dist/cjs/utils/vat/3310/century25.js.map +1 -1
  113. package/dist/cjs/utils/vat/3517/century25.js +1 -1
  114. package/dist/cjs/utils/vat/3517/century25.js.map +1 -1
  115. package/dist/mjs/api/resources/Checklist.d.ts +2 -3
  116. package/dist/mjs/api/resources/Checklist.d.ts.map +1 -1
  117. package/dist/mjs/api/resources/Checklist.js +1 -9
  118. package/dist/mjs/api/resources/Checklist.js.map +1 -1
  119. package/dist/mjs/api/resources/Exercice.d.ts +0 -1
  120. package/dist/mjs/api/resources/Exercice.d.ts.map +1 -1
  121. package/dist/mjs/api/resources/Exercice.js +0 -3
  122. package/dist/mjs/api/resources/Exercice.js.map +1 -1
  123. package/dist/mjs/api/resources/Payment.d.ts +2 -3
  124. package/dist/mjs/api/resources/Payment.d.ts.map +1 -1
  125. package/dist/mjs/api/resources/Payment.js +0 -3
  126. package/dist/mjs/api/resources/Payment.js.map +1 -1
  127. package/dist/mjs/api/resources/Registration.js +1 -1
  128. package/dist/mjs/api/resources/Registration.js.map +1 -1
  129. package/dist/mjs/api/resources/Team.d.ts +1 -21
  130. package/dist/mjs/api/resources/Team.d.ts.map +1 -1
  131. package/dist/mjs/api/resources/Team.js +0 -26
  132. package/dist/mjs/api/resources/Team.js.map +1 -1
  133. package/dist/mjs/api/resources.d.ts +0 -4
  134. package/dist/mjs/api/resources.d.ts.map +1 -1
  135. package/dist/mjs/api/resources.js +0 -4
  136. package/dist/mjs/api/resources.js.map +1 -1
  137. package/dist/mjs/types/Enum/Aspone.d.ts +0 -8
  138. package/dist/mjs/types/Enum/Aspone.d.ts.map +1 -1
  139. package/dist/mjs/types/Enum/Aspone.js +0 -10
  140. package/dist/mjs/types/Enum/Aspone.js.map +1 -1
  141. package/dist/mjs/types/Enum/BalanceSheet.d.ts +0 -66
  142. package/dist/mjs/types/Enum/BalanceSheet.d.ts.map +1 -1
  143. package/dist/mjs/types/Enum/BalanceSheet.js +68 -135
  144. package/dist/mjs/types/Enum/BalanceSheet.js.map +1 -1
  145. package/dist/mjs/types/Enum/BalanceSheetQuestion.d.ts +1 -62
  146. package/dist/mjs/types/Enum/BalanceSheetQuestion.d.ts.map +1 -1
  147. package/dist/mjs/types/Enum/BalanceSheetQuestion.js +0 -62
  148. package/dist/mjs/types/Enum/BalanceSheetQuestion.js.map +1 -1
  149. package/dist/mjs/types/Enum/BalanceSheetQuestionWording.d.ts +13 -58
  150. package/dist/mjs/types/Enum/BalanceSheetQuestionWording.d.ts.map +1 -1
  151. package/dist/mjs/types/Enum/BalanceSheetQuestionWording.js +12 -58
  152. package/dist/mjs/types/Enum/BalanceSheetQuestionWording.js.map +1 -1
  153. package/dist/mjs/types/Enum/Ged.js +1 -1
  154. package/dist/mjs/types/Enum/Ged.js.map +1 -1
  155. package/dist/mjs/types/Enum/GlobalRegime.js +19 -19
  156. package/dist/mjs/types/Enum/GlobalRegime.js.map +1 -1
  157. package/dist/mjs/types/Enum/IncomeStatement.d.ts +0 -32
  158. package/dist/mjs/types/Enum/IncomeStatement.d.ts.map +1 -1
  159. package/dist/mjs/types/Enum/IncomeStatement.js +40 -73
  160. package/dist/mjs/types/Enum/IncomeStatement.js.map +1 -1
  161. package/dist/mjs/types/Enum/LegalForm.d.ts +0 -1
  162. package/dist/mjs/types/Enum/LegalForm.d.ts.map +1 -1
  163. package/dist/mjs/types/Enum/LegalForm.js +4 -39
  164. package/dist/mjs/types/Enum/LegalForm.js.map +1 -1
  165. package/dist/mjs/types/Enum/MailAuto.d.ts +1 -2
  166. package/dist/mjs/types/Enum/MailAuto.d.ts.map +1 -1
  167. package/dist/mjs/types/Enum/MailAuto.js +0 -1
  168. package/dist/mjs/types/Enum/MailAuto.js.map +1 -1
  169. package/dist/mjs/types/Interface/api/OnBoarding.d.ts +0 -1
  170. package/dist/mjs/types/Interface/api/OnBoarding.d.ts.map +1 -1
  171. package/dist/mjs/types/Interface/api/OnBoarding.js +0 -7
  172. package/dist/mjs/types/Interface/api/OnBoarding.js.map +1 -1
  173. package/dist/mjs/types/Interface/api/balanceSheet/ReadBalanceSheet.d.ts +2 -3
  174. package/dist/mjs/types/Interface/api/balanceSheet/ReadBalanceSheet.d.ts.map +1 -1
  175. package/dist/mjs/types/Interface/api/balanceSheet/ReadBalanceSheet.js.map +1 -1
  176. package/dist/mjs/types/Interface/api/cerfa/2031.d.ts +2 -3
  177. package/dist/mjs/types/Interface/api/cerfa/2031.d.ts.map +1 -1
  178. package/dist/mjs/types/Interface/api/cerfa/2031.js.map +1 -1
  179. package/dist/mjs/types/Interface/api/cerfa/2050.d.ts +1634 -1592
  180. package/dist/mjs/types/Interface/api/cerfa/2050.d.ts.map +1 -1
  181. package/dist/mjs/types/Interface/api/cerfa/2050.js.map +1 -1
  182. package/dist/mjs/types/Interface/api/cerfa/2065.d.ts +2 -3
  183. package/dist/mjs/types/Interface/api/cerfa/2065.d.ts.map +1 -1
  184. package/dist/mjs/types/Interface/api/cerfa/2065.js.map +1 -1
  185. package/dist/mjs/types/Interface/api/cerfa/ReadCerfa.d.ts +1 -10
  186. package/dist/mjs/types/Interface/api/cerfa/ReadCerfa.d.ts.map +1 -1
  187. package/dist/mjs/types/Interface/api/cerfa/ReadCerfa.js.map +1 -1
  188. package/dist/mjs/types/Interface/api/checklist/Query.d.ts +0 -3
  189. package/dist/mjs/types/Interface/api/checklist/Query.d.ts.map +1 -1
  190. package/dist/mjs/types/Interface/api/checklist/Query.js +0 -10
  191. package/dist/mjs/types/Interface/api/checklist/Query.js.map +1 -1
  192. package/dist/mjs/types/Interface/api/incomeStatement/ReadIncomeStatement.d.ts +2 -3
  193. package/dist/mjs/types/Interface/api/incomeStatement/ReadIncomeStatement.d.ts.map +1 -1
  194. package/dist/mjs/types/Interface/api/incomeStatement/ReadIncomeStatement.js.map +1 -1
  195. package/dist/mjs/types/Interface/api/payment/Params.d.ts +0 -4
  196. package/dist/mjs/types/Interface/api/payment/Params.d.ts.map +1 -1
  197. package/dist/mjs/types/Interface/api/payment/Params.js +1 -19
  198. package/dist/mjs/types/Interface/api/payment/Params.js.map +1 -1
  199. package/dist/mjs/types/Interface/api/payment/Util.d.ts +2 -0
  200. package/dist/mjs/types/Interface/api/payment/Util.d.ts.map +1 -1
  201. package/dist/mjs/types/Interface/api/payment/Util.js.map +1 -1
  202. package/dist/mjs/types/Interface/api/registration/ReadRegistration.d.ts +0 -4
  203. package/dist/mjs/types/Interface/api/registration/ReadRegistration.d.ts.map +1 -1
  204. package/dist/mjs/types/Interface/api/registration/ReadRegistration.js.map +1 -1
  205. package/dist/mjs/types/Interface/api/society/ReadSociety.d.ts +4 -2
  206. package/dist/mjs/types/Interface/api/society/ReadSociety.d.ts.map +1 -1
  207. package/dist/mjs/types/Interface/api/society/ReadSociety.js.map +1 -1
  208. package/dist/mjs/types/Interface/models/IPrestation.d.ts.map +1 -1
  209. package/dist/mjs/types/Interface/models/IPrestation.js.map +1 -1
  210. package/dist/mjs/types/Interface/models/IUser.d.ts +0 -1
  211. package/dist/mjs/types/Interface/models/IUser.d.ts.map +1 -1
  212. package/dist/mjs/types/Interface/models/IUser.js.map +1 -1
  213. package/dist/mjs/types/index.d.ts +0 -4
  214. package/dist/mjs/types/index.d.ts.map +1 -1
  215. package/dist/mjs/types/index.js +0 -4
  216. package/dist/mjs/types/index.js.map +1 -1
  217. package/dist/mjs/utils/payment.js +48 -52
  218. package/dist/mjs/utils/payment.js.map +1 -1
  219. package/dist/mjs/utils/prestation.d.ts +0 -1
  220. package/dist/mjs/utils/prestation.d.ts.map +1 -1
  221. package/dist/mjs/utils/prestation.js +0 -1
  222. package/dist/mjs/utils/prestation.js.map +1 -1
  223. package/dist/mjs/utils/tests/payment.spec.js +34 -34
  224. package/dist/mjs/utils/tests/payment.spec.js.map +1 -1
  225. package/dist/mjs/utils/vat/3310/century25.js +1 -1
  226. package/dist/mjs/utils/vat/3310/century25.js.map +1 -1
  227. package/dist/mjs/utils/vat/3517/century25.js +1 -1
  228. package/dist/mjs/utils/vat/3517/century25.js.map +1 -1
  229. package/package.json +1 -1
  230. package/ts/api/resources/Checklist.ts +2 -12
  231. package/ts/api/resources/Exercice.ts +0 -4
  232. package/ts/api/resources/Payment.ts +1 -6
  233. package/ts/api/resources/Registration.ts +1 -1
  234. package/ts/api/resources/Team.ts +1 -31
  235. package/ts/api/resources.ts +0 -4
  236. package/ts/types/Enum/Aspone.ts +0 -10
  237. package/ts/types/Enum/BalanceSheet.ts +68 -137
  238. package/ts/types/Enum/BalanceSheetQuestion.ts +0 -63
  239. package/ts/types/Enum/BalanceSheetQuestionWording.ts +81 -130
  240. package/ts/types/Enum/Ged.ts +1 -1
  241. package/ts/types/Enum/GlobalRegime.ts +19 -19
  242. package/ts/types/Enum/IncomeStatement.ts +40 -73
  243. package/ts/types/Enum/LegalForm.ts +4 -40
  244. package/ts/types/Enum/MailAuto.ts +0 -1
  245. package/ts/types/Interface/api/OnBoarding.ts +0 -5
  246. package/ts/types/Interface/api/balanceSheet/ReadBalanceSheet.ts +2 -4
  247. package/ts/types/Interface/api/cerfa/2031.ts +2 -3
  248. package/ts/types/Interface/api/cerfa/2050.ts +1399 -1580
  249. package/ts/types/Interface/api/cerfa/2065.ts +2 -2
  250. package/ts/types/Interface/api/cerfa/ReadCerfa.ts +2 -20
  251. package/ts/types/Interface/api/checklist/Query.ts +0 -8
  252. package/ts/types/Interface/api/incomeStatement/ReadIncomeStatement.ts +2 -4
  253. package/ts/types/Interface/api/payment/Params.ts +1 -14
  254. package/ts/types/Interface/api/payment/Util.ts +2 -2
  255. package/ts/types/Interface/api/registration/ReadRegistration.ts +0 -4
  256. package/ts/types/Interface/api/society/ReadSociety.ts +4 -2
  257. package/ts/types/Interface/models/IPrestation.ts +0 -1
  258. package/ts/types/Interface/models/IUser.ts +0 -1
  259. package/ts/types/index.ts +0 -4
  260. package/ts/utils/payment.ts +49 -49
  261. package/ts/utils/prestation.ts +0 -1
  262. package/ts/utils/tests/payment.spec.ts +34 -34
  263. package/ts/utils/vat/3310/century25.ts +1 -1
  264. package/ts/utils/vat/3517/century25.ts +1 -1
  265. package/dist/cjs/api/resources/DashboardLayout.d.ts +0 -9
  266. package/dist/cjs/api/resources/DashboardLayout.d.ts.map +0 -1
  267. package/dist/cjs/api/resources/DashboardLayout.js +0 -20
  268. package/dist/cjs/api/resources/DashboardLayout.js.map +0 -1
  269. package/dist/cjs/api/resources/Mfa.d.ts +0 -19
  270. package/dist/cjs/api/resources/Mfa.d.ts.map +0 -1
  271. package/dist/cjs/api/resources/Mfa.js +0 -27
  272. package/dist/cjs/api/resources/Mfa.js.map +0 -1
  273. package/dist/cjs/types/Enum/DashboardBlock.d.ts +0 -13
  274. package/dist/cjs/types/Enum/DashboardBlock.d.ts.map +0 -1
  275. package/dist/cjs/types/Enum/DashboardBlock.js +0 -17
  276. package/dist/cjs/types/Enum/DashboardBlock.js.map +0 -1
  277. package/dist/cjs/types/Interface/api/DashboardLayout.d.ts +0 -24
  278. package/dist/cjs/types/Interface/api/DashboardLayout.d.ts.map +0 -1
  279. package/dist/cjs/types/Interface/api/DashboardLayout.js +0 -3
  280. package/dist/cjs/types/Interface/api/DashboardLayout.js.map +0 -1
  281. package/dist/cjs/types/Interface/api/authentification/AuthenticationResponse.d.ts +0 -7
  282. package/dist/cjs/types/Interface/api/authentification/AuthenticationResponse.d.ts.map +0 -1
  283. package/dist/cjs/types/Interface/api/authentification/AuthenticationResponse.js +0 -3
  284. package/dist/cjs/types/Interface/api/authentification/AuthenticationResponse.js.map +0 -1
  285. package/dist/cjs/types/Interface/api/feature/GetAvailableDashboardBlocks.d.ts +0 -5
  286. package/dist/cjs/types/Interface/api/feature/GetAvailableDashboardBlocks.d.ts.map +0 -1
  287. package/dist/cjs/types/Interface/api/feature/GetAvailableDashboardBlocks.js +0 -3
  288. package/dist/cjs/types/Interface/api/feature/GetAvailableDashboardBlocks.js.map +0 -1
  289. package/dist/cjs/types/Interface/api/mfa/DisableMfa.dto.d.ts +0 -4
  290. package/dist/cjs/types/Interface/api/mfa/DisableMfa.dto.d.ts.map +0 -1
  291. package/dist/cjs/types/Interface/api/mfa/DisableMfa.dto.js +0 -21
  292. package/dist/cjs/types/Interface/api/mfa/DisableMfa.dto.js.map +0 -1
  293. package/dist/cjs/types/Interface/api/mfa/SetupInit.dto.d.ts +0 -5
  294. package/dist/cjs/types/Interface/api/mfa/SetupInit.dto.d.ts.map +0 -1
  295. package/dist/cjs/types/Interface/api/mfa/SetupInit.dto.js +0 -25
  296. package/dist/cjs/types/Interface/api/mfa/SetupInit.dto.js.map +0 -1
  297. package/dist/cjs/types/Interface/api/mfa/SetupVerify.dto.d.ts +0 -5
  298. package/dist/cjs/types/Interface/api/mfa/SetupVerify.dto.d.ts.map +0 -1
  299. package/dist/cjs/types/Interface/api/mfa/SetupVerify.dto.js +0 -25
  300. package/dist/cjs/types/Interface/api/mfa/SetupVerify.dto.js.map +0 -1
  301. package/dist/cjs/types/Interface/api/mfa/VerifyCode.dto.d.ts +0 -5
  302. package/dist/cjs/types/Interface/api/mfa/VerifyCode.dto.d.ts.map +0 -1
  303. package/dist/cjs/types/Interface/api/mfa/VerifyCode.dto.js +0 -26
  304. package/dist/cjs/types/Interface/api/mfa/VerifyCode.dto.js.map +0 -1
  305. package/dist/cjs/types/Interface/api/mfa/VerifyRecoveryCode.dto.d.ts +0 -5
  306. package/dist/cjs/types/Interface/api/mfa/VerifyRecoveryCode.dto.d.ts.map +0 -1
  307. package/dist/cjs/types/Interface/api/mfa/VerifyRecoveryCode.dto.js +0 -26
  308. package/dist/cjs/types/Interface/api/mfa/VerifyRecoveryCode.dto.js.map +0 -1
  309. package/dist/cjs/types/Interface/api/mfa/mfa.d.ts +0 -19
  310. package/dist/cjs/types/Interface/api/mfa/mfa.d.ts.map +0 -1
  311. package/dist/cjs/types/Interface/api/mfa/mfa.js +0 -3
  312. package/dist/cjs/types/Interface/api/mfa/mfa.js.map +0 -1
  313. package/dist/cjs/types/Interface/api/team/UpdateTeamsForUser.d.ts +0 -6
  314. package/dist/cjs/types/Interface/api/team/UpdateTeamsForUser.d.ts.map +0 -1
  315. package/dist/cjs/types/Interface/api/team/UpdateTeamsForUser.js +0 -38
  316. package/dist/cjs/types/Interface/api/team/UpdateTeamsForUser.js.map +0 -1
  317. package/dist/cjs/types/Interface/models/IUserMfa.d.ts +0 -12
  318. package/dist/cjs/types/Interface/models/IUserMfa.d.ts.map +0 -1
  319. package/dist/cjs/types/Interface/models/IUserMfa.js +0 -3
  320. package/dist/cjs/types/Interface/models/IUserMfa.js.map +0 -1
  321. package/dist/cjs/types/Interface/models/IUserMfaRecoveryCode.d.ts +0 -9
  322. package/dist/cjs/types/Interface/models/IUserMfaRecoveryCode.d.ts.map +0 -1
  323. package/dist/cjs/types/Interface/models/IUserMfaRecoveryCode.js +0 -3
  324. package/dist/cjs/types/Interface/models/IUserMfaRecoveryCode.js.map +0 -1
  325. package/dist/mjs/api/resources/DashboardLayout.d.ts +0 -9
  326. package/dist/mjs/api/resources/DashboardLayout.d.ts.map +0 -1
  327. package/dist/mjs/api/resources/DashboardLayout.js +0 -16
  328. package/dist/mjs/api/resources/DashboardLayout.js.map +0 -1
  329. package/dist/mjs/api/resources/Mfa.d.ts +0 -19
  330. package/dist/mjs/api/resources/Mfa.d.ts.map +0 -1
  331. package/dist/mjs/api/resources/Mfa.js +0 -23
  332. package/dist/mjs/api/resources/Mfa.js.map +0 -1
  333. package/dist/mjs/types/Enum/DashboardBlock.d.ts +0 -13
  334. package/dist/mjs/types/Enum/DashboardBlock.d.ts.map +0 -1
  335. package/dist/mjs/types/Enum/DashboardBlock.js +0 -14
  336. package/dist/mjs/types/Enum/DashboardBlock.js.map +0 -1
  337. package/dist/mjs/types/Interface/api/DashboardLayout.d.ts +0 -24
  338. package/dist/mjs/types/Interface/api/DashboardLayout.d.ts.map +0 -1
  339. package/dist/mjs/types/Interface/api/DashboardLayout.js +0 -2
  340. package/dist/mjs/types/Interface/api/DashboardLayout.js.map +0 -1
  341. package/dist/mjs/types/Interface/api/authentification/AuthenticationResponse.d.ts +0 -7
  342. package/dist/mjs/types/Interface/api/authentification/AuthenticationResponse.d.ts.map +0 -1
  343. package/dist/mjs/types/Interface/api/authentification/AuthenticationResponse.js +0 -2
  344. package/dist/mjs/types/Interface/api/authentification/AuthenticationResponse.js.map +0 -1
  345. package/dist/mjs/types/Interface/api/feature/GetAvailableDashboardBlocks.d.ts +0 -5
  346. package/dist/mjs/types/Interface/api/feature/GetAvailableDashboardBlocks.d.ts.map +0 -1
  347. package/dist/mjs/types/Interface/api/feature/GetAvailableDashboardBlocks.js +0 -2
  348. package/dist/mjs/types/Interface/api/feature/GetAvailableDashboardBlocks.js.map +0 -1
  349. package/dist/mjs/types/Interface/api/mfa/DisableMfa.dto.d.ts +0 -4
  350. package/dist/mjs/types/Interface/api/mfa/DisableMfa.dto.d.ts.map +0 -1
  351. package/dist/mjs/types/Interface/api/mfa/DisableMfa.dto.js +0 -18
  352. package/dist/mjs/types/Interface/api/mfa/DisableMfa.dto.js.map +0 -1
  353. package/dist/mjs/types/Interface/api/mfa/SetupInit.dto.d.ts +0 -5
  354. package/dist/mjs/types/Interface/api/mfa/SetupInit.dto.d.ts.map +0 -1
  355. package/dist/mjs/types/Interface/api/mfa/SetupInit.dto.js +0 -23
  356. package/dist/mjs/types/Interface/api/mfa/SetupInit.dto.js.map +0 -1
  357. package/dist/mjs/types/Interface/api/mfa/SetupVerify.dto.d.ts +0 -5
  358. package/dist/mjs/types/Interface/api/mfa/SetupVerify.dto.d.ts.map +0 -1
  359. package/dist/mjs/types/Interface/api/mfa/SetupVerify.dto.js +0 -23
  360. package/dist/mjs/types/Interface/api/mfa/SetupVerify.dto.js.map +0 -1
  361. package/dist/mjs/types/Interface/api/mfa/VerifyCode.dto.d.ts +0 -5
  362. package/dist/mjs/types/Interface/api/mfa/VerifyCode.dto.d.ts.map +0 -1
  363. package/dist/mjs/types/Interface/api/mfa/VerifyCode.dto.js +0 -24
  364. package/dist/mjs/types/Interface/api/mfa/VerifyCode.dto.js.map +0 -1
  365. package/dist/mjs/types/Interface/api/mfa/VerifyRecoveryCode.dto.d.ts +0 -5
  366. package/dist/mjs/types/Interface/api/mfa/VerifyRecoveryCode.dto.d.ts.map +0 -1
  367. package/dist/mjs/types/Interface/api/mfa/VerifyRecoveryCode.dto.js +0 -24
  368. package/dist/mjs/types/Interface/api/mfa/VerifyRecoveryCode.dto.js.map +0 -1
  369. package/dist/mjs/types/Interface/api/mfa/mfa.d.ts +0 -19
  370. package/dist/mjs/types/Interface/api/mfa/mfa.d.ts.map +0 -1
  371. package/dist/mjs/types/Interface/api/mfa/mfa.js +0 -2
  372. package/dist/mjs/types/Interface/api/mfa/mfa.js.map +0 -1
  373. package/dist/mjs/types/Interface/api/team/UpdateTeamsForUser.d.ts +0 -6
  374. package/dist/mjs/types/Interface/api/team/UpdateTeamsForUser.d.ts.map +0 -1
  375. package/dist/mjs/types/Interface/api/team/UpdateTeamsForUser.js +0 -37
  376. package/dist/mjs/types/Interface/api/team/UpdateTeamsForUser.js.map +0 -1
  377. package/dist/mjs/types/Interface/models/IUserMfa.d.ts +0 -12
  378. package/dist/mjs/types/Interface/models/IUserMfa.d.ts.map +0 -1
  379. package/dist/mjs/types/Interface/models/IUserMfa.js +0 -2
  380. package/dist/mjs/types/Interface/models/IUserMfa.js.map +0 -1
  381. package/dist/mjs/types/Interface/models/IUserMfaRecoveryCode.d.ts +0 -9
  382. package/dist/mjs/types/Interface/models/IUserMfaRecoveryCode.d.ts.map +0 -1
  383. package/dist/mjs/types/Interface/models/IUserMfaRecoveryCode.js +0 -2
  384. package/dist/mjs/types/Interface/models/IUserMfaRecoveryCode.js.map +0 -1
  385. package/ts/api/resources/DashboardLayout.ts +0 -20
  386. package/ts/api/resources/Mfa.ts +0 -29
  387. package/ts/types/Enum/DashboardBlock.ts +0 -12
  388. package/ts/types/Interface/api/DashboardLayout.ts +0 -27
  389. package/ts/types/Interface/api/authentification/AuthenticationResponse.ts +0 -6
  390. package/ts/types/Interface/api/feature/GetAvailableDashboardBlocks.ts +0 -5
  391. package/ts/types/Interface/api/mfa/DisableMfa.dto.ts +0 -6
  392. package/ts/types/Interface/api/mfa/SetupInit.dto.ts +0 -9
  393. package/ts/types/Interface/api/mfa/SetupVerify.dto.ts +0 -9
  394. package/ts/types/Interface/api/mfa/VerifyCode.dto.ts +0 -10
  395. package/ts/types/Interface/api/mfa/VerifyRecoveryCode.dto.ts +0 -10
  396. package/ts/types/Interface/api/mfa/mfa.ts +0 -21
  397. package/ts/types/Interface/api/mfa/setupInit +0 -0
  398. package/ts/types/Interface/api/team/UpdateTeamsForUser.ts +0 -22
  399. package/ts/types/Interface/models/IUserMfa.ts +0 -11
  400. package/ts/types/Interface/models/IUserMfaRecoveryCode.ts +0 -8
@@ -1,5 +1,5 @@
1
1
  import * as dayjs from 'dayjs';
2
- import { Vat, PaymentMethod, getTaxesIncludedAmount } from '../../types';
2
+ import { Vat, PaymentMethod, LegalFormTypeEnum, getTaxesIncludedAmount } from '../../types';
3
3
  import MockDate from 'mockdate';
4
4
  import { calculatePaymentsAuto } from '../payment';
5
5
  describe('Payment', () => {
@@ -72,7 +72,7 @@ describe('Payment', () => {
72
72
  // =====================
73
73
  // errors handling
74
74
  // =====================
75
- test("should return error if prestationList doesn't correspond (!hidden, isCatalog, isComptable)", () => {
75
+ test('should return error if prestationList doesn\'t correspond (!hidden, isCatalog, isComptable)', () => {
76
76
  expect.assertions(2);
77
77
  try {
78
78
  prestationList.hidden = true;
@@ -80,8 +80,8 @@ describe('Payment', () => {
80
80
  idTypeBrand: 1,
81
81
  firstExerciceNonExpresssEndDate,
82
82
  idPrestation,
83
- // isWithApplicationFees: true,
84
- // idLegalForm: LegalFormTypeEnum.SARL,
83
+ isWithApplicationFees: true,
84
+ idLegalForm: LegalFormTypeEnum.SARL,
85
85
  prestationList: {
86
86
  ...prestationList,
87
87
  isCatalog: true,
@@ -108,8 +108,8 @@ describe('Payment', () => {
108
108
  idTypeBrand: 1,
109
109
  firstExerciceNonExpresssEndDate,
110
110
  idPrestation,
111
- // isWithApplicationFees: true,
112
- // idLegalForm: LegalFormTypeEnum.SARL,
111
+ isWithApplicationFees: true,
112
+ idLegalForm: LegalFormTypeEnum.SARL,
113
113
  prestationList,
114
114
  idVat,
115
115
  listPartialExercicePrestationExpress: [listPartialExercicePrestationExpress[0]],
@@ -126,8 +126,8 @@ describe('Payment', () => {
126
126
  idTypeBrand: 1,
127
127
  firstExerciceNonExpresssEndDate,
128
128
  idPrestation,
129
- // isWithApplicationFees: true,
130
- // idLegalForm: LegalFormTypeEnum.SARL,
129
+ isWithApplicationFees: true,
130
+ idLegalForm: LegalFormTypeEnum.SARL,
131
131
  prestationList,
132
132
  idVat,
133
133
  listPartialExercicePrestationExpress,
@@ -151,8 +151,8 @@ describe('Payment', () => {
151
151
  idTypeBrand: 1,
152
152
  firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,
153
153
  idPrestation,
154
- // isWithApplicationFees: true,
155
- // idLegalForm: LegalFormTypeEnum.SARL,
154
+ isWithApplicationFees: true,
155
+ idLegalForm: LegalFormTypeEnum.SARL,
156
156
  prestationList,
157
157
  idVat,
158
158
  listPartialExercicePrestationExpress: [],
@@ -177,8 +177,8 @@ describe('Payment', () => {
177
177
  idTypeBrand: 1,
178
178
  firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,
179
179
  idPrestation,
180
- // isWithApplicationFees: true,
181
- // idLegalForm: LegalFormTypeEnum.SARL,
180
+ isWithApplicationFees: true,
181
+ idLegalForm: LegalFormTypeEnum.SARL,
182
182
  prestationList,
183
183
  idVat,
184
184
  listPartialExercicePrestationExpress: [],
@@ -209,8 +209,8 @@ describe('Payment', () => {
209
209
  idTypeBrand: 1,
210
210
  firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,
211
211
  idPrestation,
212
- // isWithApplicationFees: false,
213
- // idLegalForm: LegalFormTypeEnum.SARL,
212
+ isWithApplicationFees: false,
213
+ idLegalForm: LegalFormTypeEnum.SARL,
214
214
  prestationList,
215
215
  idVat,
216
216
  listPartialExercicePrestationExpress: [],
@@ -237,8 +237,8 @@ describe('Payment', () => {
237
237
  idTypeBrand: 1,
238
238
  firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,
239
239
  idPrestation,
240
- // isWithApplicationFees: false,
241
- // idLegalForm: LegalFormTypeEnum.SARL,
240
+ isWithApplicationFees: false,
241
+ idLegalForm: LegalFormTypeEnum.SARL,
242
242
  prestationList,
243
243
  idVat,
244
244
  listPartialExercicePrestationExpress: [],
@@ -260,8 +260,8 @@ describe('Payment', () => {
260
260
  idTypeBrand: 1,
261
261
  firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,
262
262
  idPrestation,
263
- // isWithApplicationFees: true,
264
- // idLegalForm: LegalFormTypeEnum.SARL,
263
+ isWithApplicationFees: true,
264
+ idLegalForm: LegalFormTypeEnum.SARL,
265
265
  prestationList,
266
266
  idVat,
267
267
  listPartialExercicePrestationExpress: [],
@@ -287,8 +287,8 @@ describe('Payment', () => {
287
287
  idTypeBrand: 1,
288
288
  firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,
289
289
  idPrestation,
290
- // isWithApplicationFees: true,
291
- // idLegalForm: LegalFormTypeEnum.SARL,
290
+ isWithApplicationFees: true,
291
+ idLegalForm: LegalFormTypeEnum.SARL,
292
292
  prestationList,
293
293
  idVat,
294
294
  listPartialExercicePrestationExpress: [],
@@ -313,8 +313,8 @@ describe('Payment', () => {
313
313
  idTypeBrand: 1,
314
314
  firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,
315
315
  idPrestation,
316
- // isWithApplicationFees: false,
317
- // idLegalForm: LegalFormTypeEnum.SARL,
316
+ isWithApplicationFees: false,
317
+ idLegalForm: LegalFormTypeEnum.SARL,
318
318
  prestationList,
319
319
  idVat,
320
320
  listPartialExercicePrestationExpress: [],
@@ -347,8 +347,8 @@ describe('Payment', () => {
347
347
  idTypeBrand: 1,
348
348
  firstExerciceNonExpresssEndDate,
349
349
  idPrestation,
350
- // isWithApplicationFees: true,
351
- // idLegalForm: LegalFormTypeEnum.SARL,
350
+ isWithApplicationFees: true,
351
+ idLegalForm: LegalFormTypeEnum.SARL,
352
352
  prestationList,
353
353
  idVat,
354
354
  listPartialExercicePrestationExpress: listPartialExercicePrestationExpressCloned,
@@ -366,8 +366,8 @@ describe('Payment', () => {
366
366
  idTypeBrand: 1,
367
367
  firstExerciceNonExpresssEndDate,
368
368
  idPrestation,
369
- // isWithApplicationFees: false,
370
- // idLegalForm: LegalFormTypeEnum.SARL,
369
+ isWithApplicationFees: false,
370
+ idLegalForm: LegalFormTypeEnum.SARL,
371
371
  prestationList,
372
372
  idVat,
373
373
  listPartialExercicePrestationExpress,
@@ -404,8 +404,8 @@ describe('Payment', () => {
404
404
  idTypeBrand: 1,
405
405
  firstExerciceNonExpresssEndDate,
406
406
  idPrestation,
407
- // isWithApplicationFees: false,
408
- // idLegalForm: LegalFormTypeEnum.SARL,
407
+ isWithApplicationFees: false,
408
+ idLegalForm: LegalFormTypeEnum.SARL,
409
409
  prestationList,
410
410
  idVat,
411
411
  listPartialExercicePrestationExpress,
@@ -424,8 +424,8 @@ describe('Payment', () => {
424
424
  idTypeBrand: 1,
425
425
  firstExerciceNonExpresssEndDate,
426
426
  idPrestation,
427
- // isWithApplicationFees: true,
428
- // idLegalForm: LegalFormTypeEnum.SARL,
427
+ isWithApplicationFees: true,
428
+ idLegalForm: LegalFormTypeEnum.SARL,
429
429
  prestationList,
430
430
  idVat,
431
431
  listPartialExercicePrestationExpress,
@@ -441,8 +441,8 @@ describe('Payment', () => {
441
441
  idTypeBrand: 1,
442
442
  firstExerciceNonExpresssEndDate,
443
443
  idPrestation,
444
- // isWithApplicationFees: true,
445
- // idLegalForm: LegalFormTypeEnum.SARL,
444
+ isWithApplicationFees: true,
445
+ idLegalForm: LegalFormTypeEnum.SARL,
446
446
  prestationList,
447
447
  idVat,
448
448
  listPartialExercicePrestationExpress: [],
@@ -457,8 +457,8 @@ describe('Payment', () => {
457
457
  idTypeBrand: 1,
458
458
  firstExerciceNonExpresssEndDate: dayjs('2024-12-31').toDate(),
459
459
  idPrestation,
460
- // isWithApplicationFees: true,
461
- // idLegalForm: LegalFormTypeEnum.SARL,
460
+ isWithApplicationFees: true,
461
+ idLegalForm: LegalFormTypeEnum.SARL,
462
462
  prestationList,
463
463
  idVat: Vat.TX_20.id,
464
464
  listPartialExercicePrestationExpress: [],
@@ -1 +1 @@
1
- {"version":3,"file":"payment.spec.js","sourceRoot":"","sources":["../../../../ts/utils/tests/payment.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import * as dayjs from 'dayjs';\nimport { IRegulation, Vat, PaymentMethod, getTaxesIncludedAmount } from '../../types';\nimport MockDate from 'mockdate';\n\nimport { calculatePaymentsAuto } from '../payment';\nimport { PartialExercicePrestationExpress } from '../../types/Interface/api/payment/Util';\n\ndescribe('Payment', () => {\n describe('calculatePayments', () => {\n const idPrestation = 1;\n const idSociety = 1;\n const yearlyAmountNonExpress = 1800;\n const nextYearlyAmountNonExpress = 1800;\n const appCost = 14.9;\n\n const firstExerciceNonExpresssEndDate = dayjs().add(11, 'month').endOf('month').toDate();\n const prestationList = {\n id: 34,\n name: 'Compta Pro',\n isComptable: true,\n isJuridique: false,\n isSocial: false,\n isAttestation: false,\n inAverageCart: true,\n isBack: false,\n minimumPrice: null,\n price: null,\n isCatalog: false,\n isPlannable: false,\n hidden: false,\n isComplementary: false,\n signaturePosition: '400,54,569,90',\n signaturePage: 7,\n };\n const idVat = Vat.TX_10.id;\n const listPartialExercicePrestationExpress: PartialExercicePrestationExpress[] = [\n {\n startDate: dayjs().subtract(2, 'year').startOf('month').toDate(),\n endDate: dayjs().subtract(13, 'month').endOf('month').toDate(),\n countExpressMonthlyPayment: 2,\n totalAmount: 1200,\n },\n {\n startDate: dayjs().subtract(1, 'year').startOf('month').toDate(),\n endDate: dayjs().subtract(1, 'month').endOf('month').toDate(),\n countExpressMonthlyPayment: 2,\n totalAmount: 1800,\n },\n ];\n const listRegulations: IRegulation[] = [\n {\n amount: 600,\n amountUsed: 0,\n date: new Date(),\n processed: true,\n idPaymentMethod: PaymentMethod.BANK_CARD.id,\n idSociety,\n },\n {\n amount: 300,\n amountUsed: 0,\n date: new Date(),\n processed: true,\n idPaymentMethod: PaymentMethod.BANK_CARD.id,\n idSociety,\n },\n {\n amount: 300,\n amountUsed: 300,\n date: new Date(),\n processed: true,\n idPaymentMethod: PaymentMethod.BANK_CARD.id,\n idSociety,\n },\n ];\n\n // =====================\n // errors handling\n // =====================\n test(\"should return error if prestationList doesn't correspond (!hidden, isCatalog, isComptable)\", () => {\n expect.assertions(2);\n try {\n prestationList.hidden = true;\n calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n // isWithApplicationFees: true,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList: {\n ...prestationList,\n isCatalog: true,\n },\n idVat,\n listPartialExercicePrestationExpress,\n listRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n } catch (error) {\n expect(error).toBeInstanceOf(Error);\n // @ts-ignore\n expect(error.message).toStrictEqual('Ce type de prestation ne correspond pas aux conditions attendues.');\n }\n });\n\n // =====================\n // logical\n // =====================\n // express\n 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)', () => {\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n // isWithApplicationFees: true,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [listPartialExercicePrestationExpress[0]],\n listRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const firstExpressDatePayment = payments.filter(\n (p) => dayjs(p.closingDate).diff(firstExerciceNonExpresssEndDate) < 0,\n )[0].datePayment;\n const firstNonExpressDatePayment = payments.filter(\n (p) => dayjs(p.closingDate).diff(firstExerciceNonExpresssEndDate) === 0,\n )[0].datePayment;\n expect(dayjs(firstNonExpressDatePayment).diff(firstExpressDatePayment, 'month')).toStrictEqual(0);\n });\n 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)', () => {\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n // isWithApplicationFees: true,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress,\n listRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const lastExpressDatePayment = payments\n .filter((p) => dayjs(p.closingDate).diff(firstExerciceNonExpresssEndDate) < 0)\n .splice(-1)?.[0]?.datePayment;\n const firstNonExpressDatePayment = payments.filter(\n (p) => dayjs(p.closingDate).diff(firstExerciceNonExpresssEndDate) === 0,\n )?.[0]?.datePayment;\n expect(dayjs(firstNonExpressDatePayment).diff(lastExpressDatePayment, 'month')).toStrictEqual(1);\n });\n // non express\n test('should return a number of payments equal to nb of remaining months in exercice (if not in 3 last months)', () => {\n const mockedDate = dayjs('2024-05-15').toDate();\n MockDate.set(mockedDate);\n\n const nbMonthDelay = 6;\n const newFirstExerciceNonExpresssEndDate = dayjs().add(nbMonthDelay, 'month').endOf('month').toDate();\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,\n idPrestation,\n // isWithApplicationFees: true,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations: [\n {\n amount: 50,\n amountUsed: 0,\n } as IRegulation,\n ],\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n // const listNonExpressPayments = payments.filter(p => p.closingDate === newFirstExerciceNonExpresssEndDate);\n const listNonExpressPayments = payments.filter(\n (p) => dayjs(p.closingDate).diff(newFirstExerciceNonExpresssEndDate) === 0,\n );\n expect(listNonExpressPayments.length).toStrictEqual(1 + nbMonthDelay); //On ajoute 1 pour les frais de dossier\n\n MockDate.reset();\n });\n test('should return a number of payments equal to 3 (if in 3 last month of exercice)', () => {\n const nbMonthDelay = 1;\n const newFirstExerciceNonExpresssEndDate = dayjs().add(nbMonthDelay, 'month').endOf('month').toDate();\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,\n idPrestation,\n // isWithApplicationFees: true,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations: [\n {\n amount: 50,\n amountUsed: 0,\n } as IRegulation,\n ],\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const listNonExpressPayments = payments.filter(\n (p) => dayjs(p.closingDate).diff(newFirstExerciceNonExpresssEndDate) === 0,\n );\n expect(listNonExpressPayments.length).toStrictEqual(1 + 3); //On ajoute 1 pour les frais de dossier\n });\n test('should (yearlyAmountNonExpress - sum of listRegulations) / count of monthly payments be equal to monthly payment amount (if not in 3 last month)', () => {\n const mockedDate = dayjs('2024-05-15').toDate();\n MockDate.set(mockedDate);\n\n const nbMonthDelay = 6;\n const newFirstExerciceNonExpresssEndDate = dayjs().add(nbMonthDelay, 'month').endOf('month').toDate();\n const newListRegulations = [\n {\n amount: 50,\n amountUsed: 0,\n } as IRegulation,\n ];\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,\n idPrestation,\n // isWithApplicationFees: false,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations: newListRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const diff =\n getTaxesIncludedAmount(yearlyAmountNonExpress, idVat) -\n newListRegulations.reduce((acc, r: IRegulation) => acc + r.amount - r.amountUsed, 0);\n const amount = Math.round((100 * diff) / nbMonthDelay) / 100;\n\n expect(payments[1].amount).toStrictEqual(amount);\n\n MockDate.reset();\n });\n test('should (totalAmount - firstPaymentAmount) / 3 be equal to monthly payment amount (if in 3 last month of exercice)', () => {\n const nbMonthDelay = 1;\n const newFirstExerciceNonExpresssEndDate = dayjs().add(nbMonthDelay, 'month').endOf('month').toDate();\n const newListRegulations = [\n {\n amount: 50,\n amountUsed: 0,\n } as IRegulation,\n ];\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,\n idPrestation,\n // isWithApplicationFees: false,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations: newListRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const diff =\n getTaxesIncludedAmount(yearlyAmountNonExpress, idVat) -\n newListRegulations.reduce((acc, r: IRegulation) => acc + r.amount - r.amountUsed, 0);\n const amount = Math.round((100 * diff) / 3) / 100;\n\n expect(payments[1].amount).toStrictEqual(amount);\n });\n // annual price increase\n test('should apply annual price increase (2,75%) if signed before last 3 months of civil year', () => {\n const mockedDate = dayjs('2024-08-15').toDate();\n MockDate.set(mockedDate);\n\n const newFirstExerciceNonExpresssEndDate = dayjs().add(11, 'month').endOf('month').toDate();\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,\n idPrestation,\n // isWithApplicationFees: true,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations: [\n {\n amount: 50,\n amountUsed: 0,\n } as IRegulation,\n ],\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const listNonExpressPayments = payments.filter(\n (p) => dayjs(p.closingDate).diff(newFirstExerciceNonExpresssEndDate) === 0,\n );\n const firstPaymentWithTaxRateForced = listNonExpressPayments[1].amount * 1.0275;\n expect(firstPaymentWithTaxRateForced - listNonExpressPayments.splice(-2)[0].amount).toBeLessThanOrEqual(0.01); //Permet de gérer le pb d'arrondi\n\n MockDate.reset();\n });\n test('should not apply annual price increase (2,75%) if signed in last 3 months of civil year', () => {\n const mockedDate = dayjs('2024-11-15').toDate();\n MockDate.set(mockedDate);\n\n const newFirstExerciceNonExpresssEndDate = dayjs().add(11, 'month').endOf('month').toDate();\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,\n idPrestation,\n // isWithApplicationFees: true,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations: [\n {\n amount: 50,\n amountUsed: 0,\n } as IRegulation,\n ],\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const listNonExpressPayments = payments.filter((p) => dayjs(p.datePayment).diff(dayjs('2025-06-01')) === 0);\n expect(listNonExpressPayments[0].amount).toStrictEqual(listNonExpressPayments.splice(-2)[0].amount);\n\n MockDate.reset();\n });\n\n test('should apply 14,9€ HT increase for the second exercice created (only offered on first exo) (no rules for 3 last months)', () => {\n const mockedDate = dayjs('2024-06-15').toDate();\n MockDate.set(mockedDate);\n\n const newFirstExerciceNonExpresssEndDate = dayjs().add(12, 'month').endOf('month').toDate();\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,\n idPrestation,\n // isWithApplicationFees: false,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations: [\n {\n amount: 50,\n amountUsed: 50,\n } as IRegulation,\n ],\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const paymentsOfFirstExo =\n payments.filter((p) => dayjs(p.datePayment).diff(dayjs('2025-06-01')) === 0)[0].amount ?? 0;\n const paymentsOfSecondExo =\n payments.filter((p) => dayjs(p.datePayment).diff(dayjs('2025-07-01')) === 0).splice(-1)[0].amount ?? 0;\n expect(\n Math.round(100 * (paymentsOfFirstExo + getTaxesIncludedAmount(appCost, idVat) * 1.0275)) / 100,\n ).toStrictEqual(paymentsOfSecondExo);\n\n MockDate.reset();\n });\n\n // misc\n test('should payments been generated sorted by exercices start date', () => {\n const listPartialExercicePrestationExpressCloned = [...listPartialExercicePrestationExpress];\n listPartialExercicePrestationExpressCloned[0] = {\n ...listPartialExercicePrestationExpress[0],\n startDate: dayjs().add(1, 'year').startOf('month').toDate(),\n };\n listPartialExercicePrestationExpressCloned[1] = {\n ...listPartialExercicePrestationExpress[1],\n startDate: dayjs().startOf('month').toDate(),\n };\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n // isWithApplicationFees: true,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: listPartialExercicePrestationExpressCloned,\n listRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n expect(payments.length).toBeGreaterThanOrEqual(4);\n expect(\n dayjs(payments[payments.length - 1].datePayment).diff(dayjs(payments?.[0]?.datePayment), 'month'),\n ).toBeGreaterThan(0);\n });\n test('if regulations are bigger than sum exercice prestation amounts, should pass some exercice payments', () => {\n const mockedDate = dayjs('2024-03-15').toDate();\n MockDate.set(mockedDate);\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n // isWithApplicationFees: false,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress,\n listRegulations: [\n {\n amount: 2000,\n amountUsed: 0,\n date: new Date(),\n processed: true,\n idPaymentMethod: PaymentMethod.BANK_CARD.id,\n idSociety,\n },\n ],\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n expect(payments.length).toBeGreaterThanOrEqual(2);\n expect(payments[0]).toMatchObject({\n amount: 1320, // 1200 * 1,1\n idPrestation: 1,\n idPaymentMethod: PaymentMethod.BANK_CARD.id,\n });\n expect(payments[1]).toMatchObject({\n amount: 680, // 2000 - (1200 * 1,1)\n idPrestation: 1,\n idPaymentMethod: PaymentMethod.BANK_CARD.id,\n });\n MockDate.reset();\n });\n test('should not consider actual month if signed in last 3 days of month', () => {\n const mockedDate = dayjs('2024-03-29').toDate();\n MockDate.set(mockedDate);\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n // isWithApplicationFees: false,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress,\n listRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n expect(payments.length).toBeGreaterThanOrEqual(4);\n expect(payments?.[1]?.datePayment).toStrictEqual(dayjs().add(2, 'month').startOf('month').toDate());\n MockDate.reset();\n });\n test('last payment returned should be last of a year (12/XX)', () => {\n const mockedDate = dayjs('2024-03-29').toDate();\n MockDate.set(mockedDate);\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n // isWithApplicationFees: true,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress,\n listRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n expect(payments.length).toBeGreaterThanOrEqual(4);\n expect(dayjs(payments[payments.length - 1].datePayment).month()).toStrictEqual(11);\n });\n test('first payment and last payment should have at least one year difference (ex. : 23 - 24)', () => {\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n // isWithApplicationFees: true,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n expect(\n dayjs(payments.slice(-1)?.[0]?.datePayment).diff(dayjs(payments?.[0]?.datePayment), 'year', true),\n ).toBeGreaterThan(1);\n });\n test('real case : idSociety 114440', () => {\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: dayjs('2024-12-31').toDate(),\n idPrestation,\n // isWithApplicationFees: true,\n // idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat: Vat.TX_20.id,\n listPartialExercicePrestationExpress: [],\n listRegulations: [\n {\n amount: 1006.8,\n amountUsed: 0,\n date: dayjs('2024-06-06').toDate(),\n processed: false,\n idPaymentMethod: PaymentMethod.BANK_CARD.id,\n idSociety,\n },\n ],\n yearlyAmountNonExpress: 1433,\n nextYearlyAmountNonExpress: 1433,\n });\n expect(\n dayjs(payments.slice(-1)?.[0]?.datePayment).diff(dayjs(payments?.[0]?.datePayment), 'year', true),\n ).toBeGreaterThan(1);\n });\n });\n});\n"]}
1
+ {"version":3,"file":"payment.spec.js","sourceRoot":"","sources":["../../../../ts/utils/tests/payment.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import * as dayjs from 'dayjs';\nimport { IRegulation, Vat, PaymentMethod, LegalFormTypeEnum, getTaxesIncludedAmount } from '../../types';\nimport MockDate from 'mockdate';\n\nimport { calculatePaymentsAuto } from '../payment';\nimport { PartialExercicePrestationExpress } from '../../types/Interface/api/payment/Util';\n\ndescribe('Payment', () => {\n describe('calculatePayments', () => {\n const idPrestation = 1;\n const idSociety = 1;\n const yearlyAmountNonExpress = 1800;\n const nextYearlyAmountNonExpress = 1800;\n const appCost = 14.9;\n\n const firstExerciceNonExpresssEndDate = dayjs().add(11, 'month').endOf('month').toDate();\n const prestationList = {\n id: 34,\n name: 'Compta Pro',\n isComptable: true,\n isJuridique: false,\n isSocial: false,\n isAttestation: false,\n inAverageCart: true,\n isBack: false,\n minimumPrice: null,\n price: null,\n isCatalog: false,\n isPlannable: false,\n hidden: false,\n isComplementary: false,\n signaturePosition: '400,54,569,90',\n signaturePage: 7,\n };\n const idVat = Vat.TX_10.id;\n const listPartialExercicePrestationExpress: PartialExercicePrestationExpress[] = [\n {\n startDate: dayjs().subtract(2, 'year').startOf('month').toDate(),\n endDate: dayjs().subtract(13, 'month').endOf('month').toDate(),\n countExpressMonthlyPayment: 2,\n totalAmount: 1200,\n },\n {\n startDate: dayjs().subtract(1, 'year').startOf('month').toDate(),\n endDate: dayjs().subtract(1, 'month').endOf('month').toDate(),\n countExpressMonthlyPayment: 2,\n totalAmount: 1800,\n },\n ];\n const listRegulations: IRegulation[] = [\n {\n amount: 600,\n amountUsed: 0,\n date: new Date(),\n processed: true,\n idPaymentMethod: PaymentMethod.BANK_CARD.id,\n idSociety,\n },\n {\n amount: 300,\n amountUsed: 0,\n date: new Date(),\n processed: true,\n idPaymentMethod: PaymentMethod.BANK_CARD.id,\n idSociety,\n },\n {\n amount: 300,\n amountUsed: 300,\n date: new Date(),\n processed: true,\n idPaymentMethod: PaymentMethod.BANK_CARD.id,\n idSociety,\n },\n ];\n\n // =====================\n // errors handling\n // =====================\n test('should return error if prestationList doesn\\'t correspond (!hidden, isCatalog, isComptable)', () => {\n expect.assertions(2);\n try {\n prestationList.hidden = true;\n calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n isWithApplicationFees: true,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList: {\n ...prestationList,\n isCatalog: true,\n },\n idVat,\n listPartialExercicePrestationExpress,\n listRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n } catch (error) {\n expect(error).toBeInstanceOf(Error);\n // @ts-ignore\n expect(error.message).toStrictEqual('Ce type de prestation ne correspond pas aux conditions attendues.');\n }\n });\n\n // =====================\n // logical\n // =====================\n // express\n 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)', () => {\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n isWithApplicationFees: true,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [listPartialExercicePrestationExpress[0]],\n listRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const firstExpressDatePayment = payments.filter(\n (p) => dayjs(p.closingDate).diff(firstExerciceNonExpresssEndDate) < 0,\n )[0].datePayment;\n const firstNonExpressDatePayment = payments.filter(\n (p) => dayjs(p.closingDate).diff(firstExerciceNonExpresssEndDate) === 0,\n )[0].datePayment;\n expect(dayjs(firstNonExpressDatePayment).diff(firstExpressDatePayment, 'month')).toStrictEqual(0);\n });\n 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)', () => {\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n isWithApplicationFees: true,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress,\n listRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const lastExpressDatePayment = payments\n .filter((p) => dayjs(p.closingDate).diff(firstExerciceNonExpresssEndDate) < 0)\n .splice(-1)?.[0]?.datePayment;\n const firstNonExpressDatePayment = payments.filter(\n (p) => dayjs(p.closingDate).diff(firstExerciceNonExpresssEndDate) === 0,\n )?.[0]?.datePayment;\n expect(dayjs(firstNonExpressDatePayment).diff(lastExpressDatePayment, 'month')).toStrictEqual(1);\n });\n // non express\n test('should return a number of payments equal to nb of remaining months in exercice (if not in 3 last months)', () => {\n const mockedDate = dayjs('2024-05-15').toDate();\n MockDate.set(mockedDate);\n\n const nbMonthDelay = 6;\n const newFirstExerciceNonExpresssEndDate = dayjs().add(nbMonthDelay, 'month').endOf('month').toDate();\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,\n idPrestation,\n isWithApplicationFees: true,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations: [\n {\n amount: 50,\n amountUsed: 0,\n } as IRegulation,\n ],\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n // const listNonExpressPayments = payments.filter(p => p.closingDate === newFirstExerciceNonExpresssEndDate);\n const listNonExpressPayments = payments.filter(\n (p) => dayjs(p.closingDate).diff(newFirstExerciceNonExpresssEndDate) === 0,\n );\n expect(listNonExpressPayments.length).toStrictEqual(1 + nbMonthDelay); //On ajoute 1 pour les frais de dossier\n\n MockDate.reset();\n });\n test('should return a number of payments equal to 3 (if in 3 last month of exercice)', () => {\n const nbMonthDelay = 1;\n const newFirstExerciceNonExpresssEndDate = dayjs().add(nbMonthDelay, 'month').endOf('month').toDate();\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,\n idPrestation,\n isWithApplicationFees: true,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations: [\n {\n amount: 50,\n amountUsed: 0,\n } as IRegulation,\n ],\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const listNonExpressPayments = payments.filter(\n (p) => dayjs(p.closingDate).diff(newFirstExerciceNonExpresssEndDate) === 0,\n );\n expect(listNonExpressPayments.length).toStrictEqual(1 + 3); //On ajoute 1 pour les frais de dossier\n });\n test('should (yearlyAmountNonExpress - sum of listRegulations) / count of monthly payments be equal to monthly payment amount (if not in 3 last month)', () => {\n const mockedDate = dayjs('2024-05-15').toDate();\n MockDate.set(mockedDate);\n\n const nbMonthDelay = 6;\n const newFirstExerciceNonExpresssEndDate = dayjs().add(nbMonthDelay, 'month').endOf('month').toDate();\n const newListRegulations = [\n {\n amount: 50,\n amountUsed: 0,\n } as IRegulation,\n ];\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,\n idPrestation,\n isWithApplicationFees: false,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations: newListRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const diff =\n getTaxesIncludedAmount(yearlyAmountNonExpress, idVat) -\n newListRegulations.reduce((acc, r: IRegulation) => acc + r.amount - r.amountUsed, 0);\n const amount = Math.round((100 * diff) / nbMonthDelay) / 100;\n\n expect(payments[1].amount).toStrictEqual(amount);\n\n MockDate.reset();\n });\n test('should (totalAmount - firstPaymentAmount) / 3 be equal to monthly payment amount (if in 3 last month of exercice)', () => {\n const nbMonthDelay = 1;\n const newFirstExerciceNonExpresssEndDate = dayjs().add(nbMonthDelay, 'month').endOf('month').toDate();\n const newListRegulations = [\n {\n amount: 50,\n amountUsed: 0,\n } as IRegulation,\n ];\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,\n idPrestation,\n isWithApplicationFees: false,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations: newListRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const diff =\n getTaxesIncludedAmount(yearlyAmountNonExpress, idVat) -\n newListRegulations.reduce((acc, r: IRegulation) => acc + r.amount - r.amountUsed, 0);\n const amount = Math.round((100 * diff) / 3) / 100;\n\n expect(payments[1].amount).toStrictEqual(amount);\n });\n // annual price increase\n test('should apply annual price increase (2,75%) if signed before last 3 months of civil year', () => {\n const mockedDate = dayjs('2024-08-15').toDate();\n MockDate.set(mockedDate);\n\n const newFirstExerciceNonExpresssEndDate = dayjs().add(11, 'month').endOf('month').toDate();\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,\n idPrestation,\n isWithApplicationFees: true,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations: [\n {\n amount: 50,\n amountUsed: 0,\n } as IRegulation,\n ],\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const listNonExpressPayments = payments.filter(\n (p) => dayjs(p.closingDate).diff(newFirstExerciceNonExpresssEndDate) === 0,\n );\n const firstPaymentWithTaxRateForced = listNonExpressPayments[1].amount * 1.0275;\n expect(firstPaymentWithTaxRateForced - listNonExpressPayments.splice(-2)[0].amount).toBeLessThanOrEqual(0.01); //Permet de gérer le pb d'arrondi\n\n MockDate.reset();\n });\n test('should not apply annual price increase (2,75%) if signed in last 3 months of civil year', () => {\n const mockedDate = dayjs('2024-11-15').toDate();\n MockDate.set(mockedDate);\n\n const newFirstExerciceNonExpresssEndDate = dayjs().add(11, 'month').endOf('month').toDate();\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,\n idPrestation,\n isWithApplicationFees: true,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations: [\n {\n amount: 50,\n amountUsed: 0,\n } as IRegulation,\n ],\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const listNonExpressPayments = payments.filter((p) => dayjs(p.datePayment).diff(dayjs('2025-06-01')) === 0);\n expect(listNonExpressPayments[0].amount).toStrictEqual(listNonExpressPayments.splice(-2)[0].amount);\n\n MockDate.reset();\n });\n\n test('should apply 14,9€ HT increase for the second exercice created (only offered on first exo) (no rules for 3 last months)', () => {\n const mockedDate = dayjs('2024-06-15').toDate();\n MockDate.set(mockedDate);\n\n const newFirstExerciceNonExpresssEndDate = dayjs().add(12, 'month').endOf('month').toDate();\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,\n idPrestation,\n isWithApplicationFees: false,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations: [\n {\n amount: 50,\n amountUsed: 50,\n } as IRegulation,\n ],\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n\n const paymentsOfFirstExo =\n payments.filter((p) => dayjs(p.datePayment).diff(dayjs('2025-06-01')) === 0)[0].amount ?? 0;\n const paymentsOfSecondExo =\n payments.filter((p) => dayjs(p.datePayment).diff(dayjs('2025-07-01')) === 0).splice(-1)[0].amount ?? 0;\n expect(\n Math.round(100 * (paymentsOfFirstExo + getTaxesIncludedAmount(appCost, idVat) * 1.0275)) / 100,\n ).toStrictEqual(paymentsOfSecondExo);\n\n MockDate.reset();\n });\n\n // misc\n test('should payments been generated sorted by exercices start date', () => {\n const listPartialExercicePrestationExpressCloned = [...listPartialExercicePrestationExpress];\n listPartialExercicePrestationExpressCloned[0] = {\n ...listPartialExercicePrestationExpress[0],\n startDate: dayjs().add(1, 'year').startOf('month').toDate(),\n };\n listPartialExercicePrestationExpressCloned[1] = {\n ...listPartialExercicePrestationExpress[1],\n startDate: dayjs().startOf('month').toDate(),\n };\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n isWithApplicationFees: true,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: listPartialExercicePrestationExpressCloned,\n listRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n expect(payments.length).toBeGreaterThanOrEqual(4);\n expect(\n dayjs(payments[payments.length - 1].datePayment).diff(dayjs(payments?.[0]?.datePayment), 'month'),\n ).toBeGreaterThan(0);\n });\n test('if regulations are bigger than sum exercice prestation amounts, should pass some exercice payments', () => {\n const mockedDate = dayjs('2024-03-15').toDate();\n MockDate.set(mockedDate);\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n isWithApplicationFees: false,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress,\n listRegulations: [\n {\n amount: 2000,\n amountUsed: 0,\n date: new Date(),\n processed: true,\n idPaymentMethod: PaymentMethod.BANK_CARD.id,\n idSociety,\n },\n ],\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n expect(payments.length).toBeGreaterThanOrEqual(2);\n expect(payments[0]).toMatchObject({\n amount: 1320, // 1200 * 1,1\n idPrestation: 1,\n idPaymentMethod: PaymentMethod.BANK_CARD.id,\n });\n expect(payments[1]).toMatchObject({\n amount: 680, // 2000 - (1200 * 1,1)\n idPrestation: 1,\n idPaymentMethod: PaymentMethod.BANK_CARD.id,\n });\n MockDate.reset();\n });\n test('should not consider actual month if signed in last 3 days of month', () => {\n const mockedDate = dayjs('2024-03-29').toDate();\n MockDate.set(mockedDate);\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n isWithApplicationFees: false,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress,\n listRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n expect(payments.length).toBeGreaterThanOrEqual(4);\n expect(payments?.[1]?.datePayment).toStrictEqual(dayjs().add(2, 'month').startOf('month').toDate());\n MockDate.reset();\n });\n test('last payment returned should be last of a year (12/XX)', () => {\n const mockedDate = dayjs('2024-03-29').toDate();\n MockDate.set(mockedDate);\n\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n isWithApplicationFees: true,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress,\n listRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n expect(payments.length).toBeGreaterThanOrEqual(4);\n expect(dayjs(payments[payments.length - 1].datePayment).month()).toStrictEqual(11);\n });\n test('first payment and last payment should have at least one year difference (ex. : 23 - 24)', () => {\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate,\n idPrestation,\n isWithApplicationFees: true,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat,\n listPartialExercicePrestationExpress: [],\n listRegulations,\n yearlyAmountNonExpress,\n nextYearlyAmountNonExpress,\n });\n expect(\n dayjs(payments.slice(-1)?.[0]?.datePayment).diff(dayjs(payments?.[0]?.datePayment), 'year', true),\n ).toBeGreaterThan(1);\n });\n test('real case : idSociety 114440', () => {\n const payments = calculatePaymentsAuto({\n idTypeBrand: 1,\n firstExerciceNonExpresssEndDate: dayjs('2024-12-31').toDate(),\n idPrestation,\n isWithApplicationFees: true,\n idLegalForm: LegalFormTypeEnum.SARL,\n prestationList,\n idVat: Vat.TX_20.id,\n listPartialExercicePrestationExpress: [],\n listRegulations: [\n {\n amount: 1006.8,\n amountUsed: 0,\n date: dayjs('2024-06-06').toDate(),\n processed: false,\n idPaymentMethod: PaymentMethod.BANK_CARD.id,\n idSociety,\n },\n ],\n yearlyAmountNonExpress: 1433,\n nextYearlyAmountNonExpress: 1433,\n });\n expect(\n dayjs(payments.slice(-1)?.[0]?.datePayment).diff(dayjs(payments?.[0]?.datePayment), 'year', true),\n ).toBeGreaterThan(1);\n });\n });\n});\n"]}
@@ -662,7 +662,7 @@ export function getCerfa3310Century25RegistrationFields(data) {
662
662
  tag: 'Valeur',
663
663
  isMultiple: false,
664
664
  description: 'Autres',
665
- value: comment && comment?.length > 0 && !data.isHolidayDeposit ? 'X' : null,
665
+ value: data.isNil && !data.isHolidayDeposit ? 'X' : null,
666
666
  },
667
667
  {
668
668
  key: 'BB',