@silexpert/core 1.3.131-3 → 1.3.131-4

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 (302) hide show
  1. package/dist/cjs/api/resources/Checklist.d.ts +3 -2
  2. package/dist/cjs/api/resources/Checklist.d.ts.map +1 -1
  3. package/dist/cjs/api/resources/Checklist.js +9 -1
  4. package/dist/cjs/api/resources/Checklist.js.map +1 -1
  5. package/dist/cjs/api/resources/DashboardLayout.d.ts +9 -0
  6. package/dist/cjs/api/resources/DashboardLayout.d.ts.map +1 -0
  7. package/dist/cjs/api/resources/DashboardLayout.js +20 -0
  8. package/dist/cjs/api/resources/DashboardLayout.js.map +1 -0
  9. package/dist/cjs/api/resources/Mfa.d.ts +2 -2
  10. package/dist/cjs/api/resources/Mfa.d.ts.map +1 -1
  11. package/dist/cjs/api/resources/Mfa.js +2 -1
  12. package/dist/cjs/api/resources/Mfa.js.map +1 -1
  13. package/dist/cjs/api/resources/Payment.d.ts +3 -2
  14. package/dist/cjs/api/resources/Payment.d.ts.map +1 -1
  15. package/dist/cjs/api/resources/Payment.js +3 -0
  16. package/dist/cjs/api/resources/Payment.js.map +1 -1
  17. package/dist/cjs/api/resources/Registration.js +1 -1
  18. package/dist/cjs/api/resources/Registration.js.map +1 -1
  19. package/dist/cjs/api/resources/Team.d.ts +21 -1
  20. package/dist/cjs/api/resources/Team.d.ts.map +1 -1
  21. package/dist/cjs/api/resources/Team.js +26 -0
  22. package/dist/cjs/api/resources/Team.js.map +1 -1
  23. package/dist/cjs/api/resources.d.ts +2 -0
  24. package/dist/cjs/api/resources.d.ts.map +1 -1
  25. package/dist/cjs/api/resources.js +2 -0
  26. package/dist/cjs/api/resources.js.map +1 -1
  27. package/dist/cjs/types/Enum/Aspone.d.ts +8 -0
  28. package/dist/cjs/types/Enum/Aspone.d.ts.map +1 -1
  29. package/dist/cjs/types/Enum/Aspone.js +11 -1
  30. package/dist/cjs/types/Enum/Aspone.js.map +1 -1
  31. package/dist/cjs/types/Enum/BalanceSheet.d.ts +66 -0
  32. package/dist/cjs/types/Enum/BalanceSheet.d.ts.map +1 -1
  33. package/dist/cjs/types/Enum/BalanceSheet.js +136 -69
  34. package/dist/cjs/types/Enum/BalanceSheet.js.map +1 -1
  35. package/dist/cjs/types/Enum/BalanceSheetQuestion.d.ts +62 -1
  36. package/dist/cjs/types/Enum/BalanceSheetQuestion.d.ts.map +1 -1
  37. package/dist/cjs/types/Enum/BalanceSheetQuestion.js +62 -0
  38. package/dist/cjs/types/Enum/BalanceSheetQuestion.js.map +1 -1
  39. package/dist/cjs/types/Enum/BalanceSheetQuestionWording.d.ts +58 -13
  40. package/dist/cjs/types/Enum/BalanceSheetQuestionWording.d.ts.map +1 -1
  41. package/dist/cjs/types/Enum/BalanceSheetQuestionWording.js +58 -12
  42. package/dist/cjs/types/Enum/BalanceSheetQuestionWording.js.map +1 -1
  43. package/dist/cjs/types/Enum/DashboardBlock.d.ts +13 -0
  44. package/dist/cjs/types/Enum/DashboardBlock.d.ts.map +1 -0
  45. package/dist/cjs/types/Enum/DashboardBlock.js +17 -0
  46. package/dist/cjs/types/Enum/DashboardBlock.js.map +1 -0
  47. package/dist/cjs/types/Enum/Ged.js +1 -1
  48. package/dist/cjs/types/Enum/Ged.js.map +1 -1
  49. package/dist/cjs/types/Enum/GlobalRegime.js +19 -19
  50. package/dist/cjs/types/Enum/GlobalRegime.js.map +1 -1
  51. package/dist/cjs/types/Enum/IncomeStatement.d.ts +32 -0
  52. package/dist/cjs/types/Enum/IncomeStatement.d.ts.map +1 -1
  53. package/dist/cjs/types/Enum/IncomeStatement.js +74 -41
  54. package/dist/cjs/types/Enum/IncomeStatement.js.map +1 -1
  55. package/dist/cjs/types/Enum/LegalForm.d.ts +1 -0
  56. package/dist/cjs/types/Enum/LegalForm.d.ts.map +1 -1
  57. package/dist/cjs/types/Enum/LegalForm.js +39 -4
  58. package/dist/cjs/types/Enum/LegalForm.js.map +1 -1
  59. package/dist/cjs/types/Enum/MailAuto.d.ts +2 -1
  60. package/dist/cjs/types/Enum/MailAuto.d.ts.map +1 -1
  61. package/dist/cjs/types/Enum/MailAuto.js +1 -0
  62. package/dist/cjs/types/Enum/MailAuto.js.map +1 -1
  63. package/dist/cjs/types/Interface/api/DashboardLayout.d.ts +24 -0
  64. package/dist/cjs/types/Interface/api/DashboardLayout.d.ts.map +1 -0
  65. package/dist/cjs/types/Interface/api/DashboardLayout.js +3 -0
  66. package/dist/cjs/types/Interface/api/DashboardLayout.js.map +1 -0
  67. package/dist/cjs/types/Interface/api/OnBoarding.d.ts +1 -0
  68. package/dist/cjs/types/Interface/api/OnBoarding.d.ts.map +1 -1
  69. package/dist/cjs/types/Interface/api/OnBoarding.js +6 -0
  70. package/dist/cjs/types/Interface/api/OnBoarding.js.map +1 -1
  71. package/dist/cjs/types/Interface/api/balanceSheet/ReadBalanceSheet.d.ts +3 -2
  72. package/dist/cjs/types/Interface/api/balanceSheet/ReadBalanceSheet.d.ts.map +1 -1
  73. package/dist/cjs/types/Interface/api/balanceSheet/ReadBalanceSheet.js.map +1 -1
  74. package/dist/cjs/types/Interface/api/cerfa/2031.d.ts +3 -2
  75. package/dist/cjs/types/Interface/api/cerfa/2031.d.ts.map +1 -1
  76. package/dist/cjs/types/Interface/api/cerfa/2031.js.map +1 -1
  77. package/dist/cjs/types/Interface/api/cerfa/2050.d.ts +1592 -1634
  78. package/dist/cjs/types/Interface/api/cerfa/2050.d.ts.map +1 -1
  79. package/dist/cjs/types/Interface/api/cerfa/2050.js.map +1 -1
  80. package/dist/cjs/types/Interface/api/cerfa/2065.d.ts +3 -2
  81. package/dist/cjs/types/Interface/api/cerfa/2065.d.ts.map +1 -1
  82. package/dist/cjs/types/Interface/api/cerfa/2065.js.map +1 -1
  83. package/dist/cjs/types/Interface/api/cerfa/ReadCerfa.d.ts +10 -1
  84. package/dist/cjs/types/Interface/api/cerfa/ReadCerfa.d.ts.map +1 -1
  85. package/dist/cjs/types/Interface/api/cerfa/ReadCerfa.js.map +1 -1
  86. package/dist/cjs/types/Interface/api/checklist/Query.d.ts +3 -0
  87. package/dist/cjs/types/Interface/api/checklist/Query.d.ts.map +1 -1
  88. package/dist/cjs/types/Interface/api/checklist/Query.js +11 -1
  89. package/dist/cjs/types/Interface/api/checklist/Query.js.map +1 -1
  90. package/dist/cjs/types/Interface/api/feature/GetAvailableDashboardBlocks.d.ts +5 -0
  91. package/dist/cjs/types/Interface/api/feature/GetAvailableDashboardBlocks.d.ts.map +1 -0
  92. package/dist/cjs/types/Interface/api/feature/GetAvailableDashboardBlocks.js +3 -0
  93. package/dist/cjs/types/Interface/api/feature/GetAvailableDashboardBlocks.js.map +1 -0
  94. package/dist/cjs/types/Interface/api/incomeStatement/ReadIncomeStatement.d.ts +3 -2
  95. package/dist/cjs/types/Interface/api/incomeStatement/ReadIncomeStatement.d.ts.map +1 -1
  96. package/dist/cjs/types/Interface/api/incomeStatement/ReadIncomeStatement.js.map +1 -1
  97. package/dist/cjs/types/Interface/api/payment/Params.d.ts +4 -0
  98. package/dist/cjs/types/Interface/api/payment/Params.d.ts.map +1 -1
  99. package/dist/cjs/types/Interface/api/payment/Params.js +18 -1
  100. package/dist/cjs/types/Interface/api/payment/Params.js.map +1 -1
  101. package/dist/cjs/types/Interface/api/payment/Util.d.ts +0 -2
  102. package/dist/cjs/types/Interface/api/payment/Util.d.ts.map +1 -1
  103. package/dist/cjs/types/Interface/api/payment/Util.js.map +1 -1
  104. package/dist/cjs/types/Interface/api/registration/ReadRegistration.d.ts +4 -0
  105. package/dist/cjs/types/Interface/api/registration/ReadRegistration.d.ts.map +1 -1
  106. package/dist/cjs/types/Interface/api/registration/ReadRegistration.js.map +1 -1
  107. package/dist/cjs/types/Interface/api/society/ReadSociety.d.ts +2 -4
  108. package/dist/cjs/types/Interface/api/society/ReadSociety.d.ts.map +1 -1
  109. package/dist/cjs/types/Interface/api/society/ReadSociety.js.map +1 -1
  110. package/dist/cjs/types/Interface/api/team/UpdateTeamsForUser.d.ts +6 -0
  111. package/dist/cjs/types/Interface/api/team/UpdateTeamsForUser.d.ts.map +1 -0
  112. package/dist/cjs/types/Interface/api/team/UpdateTeamsForUser.js +38 -0
  113. package/dist/cjs/types/Interface/api/team/UpdateTeamsForUser.js.map +1 -0
  114. package/dist/cjs/types/Interface/models/IPrestation.d.ts.map +1 -1
  115. package/dist/cjs/types/Interface/models/IPrestation.js.map +1 -1
  116. package/dist/cjs/types/index.d.ts +3 -0
  117. package/dist/cjs/types/index.d.ts.map +1 -1
  118. package/dist/cjs/types/index.js +3 -0
  119. package/dist/cjs/types/index.js.map +1 -1
  120. package/dist/cjs/utils/payment.js +54 -50
  121. package/dist/cjs/utils/payment.js.map +1 -1
  122. package/dist/cjs/utils/prestation.d.ts +1 -0
  123. package/dist/cjs/utils/prestation.d.ts.map +1 -1
  124. package/dist/cjs/utils/prestation.js +1 -0
  125. package/dist/cjs/utils/prestation.js.map +1 -1
  126. package/dist/cjs/utils/tests/payment.spec.js +33 -33
  127. package/dist/cjs/utils/tests/payment.spec.js.map +1 -1
  128. package/dist/cjs/utils/vat/3310/century25.js +1 -1
  129. package/dist/cjs/utils/vat/3310/century25.js.map +1 -1
  130. package/dist/cjs/utils/vat/3517/century25.js +1 -1
  131. package/dist/cjs/utils/vat/3517/century25.js.map +1 -1
  132. package/dist/mjs/api/resources/Checklist.d.ts +3 -2
  133. package/dist/mjs/api/resources/Checklist.d.ts.map +1 -1
  134. package/dist/mjs/api/resources/Checklist.js +9 -1
  135. package/dist/mjs/api/resources/Checklist.js.map +1 -1
  136. package/dist/mjs/api/resources/DashboardLayout.d.ts +9 -0
  137. package/dist/mjs/api/resources/DashboardLayout.d.ts.map +1 -0
  138. package/dist/mjs/api/resources/DashboardLayout.js +16 -0
  139. package/dist/mjs/api/resources/DashboardLayout.js.map +1 -0
  140. package/dist/mjs/api/resources/Mfa.d.ts +2 -2
  141. package/dist/mjs/api/resources/Mfa.d.ts.map +1 -1
  142. package/dist/mjs/api/resources/Mfa.js +2 -1
  143. package/dist/mjs/api/resources/Mfa.js.map +1 -1
  144. package/dist/mjs/api/resources/Payment.d.ts +3 -2
  145. package/dist/mjs/api/resources/Payment.d.ts.map +1 -1
  146. package/dist/mjs/api/resources/Payment.js +3 -0
  147. package/dist/mjs/api/resources/Payment.js.map +1 -1
  148. package/dist/mjs/api/resources/Registration.js +1 -1
  149. package/dist/mjs/api/resources/Registration.js.map +1 -1
  150. package/dist/mjs/api/resources/Team.d.ts +21 -1
  151. package/dist/mjs/api/resources/Team.d.ts.map +1 -1
  152. package/dist/mjs/api/resources/Team.js +26 -0
  153. package/dist/mjs/api/resources/Team.js.map +1 -1
  154. package/dist/mjs/api/resources.d.ts +2 -0
  155. package/dist/mjs/api/resources.d.ts.map +1 -1
  156. package/dist/mjs/api/resources.js +2 -0
  157. package/dist/mjs/api/resources.js.map +1 -1
  158. package/dist/mjs/types/Enum/Aspone.d.ts +8 -0
  159. package/dist/mjs/types/Enum/Aspone.d.ts.map +1 -1
  160. package/dist/mjs/types/Enum/Aspone.js +10 -0
  161. package/dist/mjs/types/Enum/Aspone.js.map +1 -1
  162. package/dist/mjs/types/Enum/BalanceSheet.d.ts +66 -0
  163. package/dist/mjs/types/Enum/BalanceSheet.d.ts.map +1 -1
  164. package/dist/mjs/types/Enum/BalanceSheet.js +135 -68
  165. package/dist/mjs/types/Enum/BalanceSheet.js.map +1 -1
  166. package/dist/mjs/types/Enum/BalanceSheetQuestion.d.ts +62 -1
  167. package/dist/mjs/types/Enum/BalanceSheetQuestion.d.ts.map +1 -1
  168. package/dist/mjs/types/Enum/BalanceSheetQuestion.js +62 -0
  169. package/dist/mjs/types/Enum/BalanceSheetQuestion.js.map +1 -1
  170. package/dist/mjs/types/Enum/BalanceSheetQuestionWording.d.ts +58 -13
  171. package/dist/mjs/types/Enum/BalanceSheetQuestionWording.d.ts.map +1 -1
  172. package/dist/mjs/types/Enum/BalanceSheetQuestionWording.js +58 -12
  173. package/dist/mjs/types/Enum/BalanceSheetQuestionWording.js.map +1 -1
  174. package/dist/mjs/types/Enum/DashboardBlock.d.ts +13 -0
  175. package/dist/mjs/types/Enum/DashboardBlock.d.ts.map +1 -0
  176. package/dist/mjs/types/Enum/DashboardBlock.js +14 -0
  177. package/dist/mjs/types/Enum/DashboardBlock.js.map +1 -0
  178. package/dist/mjs/types/Enum/Ged.js +1 -1
  179. package/dist/mjs/types/Enum/Ged.js.map +1 -1
  180. package/dist/mjs/types/Enum/GlobalRegime.js +19 -19
  181. package/dist/mjs/types/Enum/GlobalRegime.js.map +1 -1
  182. package/dist/mjs/types/Enum/IncomeStatement.d.ts +32 -0
  183. package/dist/mjs/types/Enum/IncomeStatement.d.ts.map +1 -1
  184. package/dist/mjs/types/Enum/IncomeStatement.js +73 -40
  185. package/dist/mjs/types/Enum/IncomeStatement.js.map +1 -1
  186. package/dist/mjs/types/Enum/LegalForm.d.ts +1 -0
  187. package/dist/mjs/types/Enum/LegalForm.d.ts.map +1 -1
  188. package/dist/mjs/types/Enum/LegalForm.js +39 -4
  189. package/dist/mjs/types/Enum/LegalForm.js.map +1 -1
  190. package/dist/mjs/types/Enum/MailAuto.d.ts +2 -1
  191. package/dist/mjs/types/Enum/MailAuto.d.ts.map +1 -1
  192. package/dist/mjs/types/Enum/MailAuto.js +1 -0
  193. package/dist/mjs/types/Enum/MailAuto.js.map +1 -1
  194. package/dist/mjs/types/Interface/api/DashboardLayout.d.ts +24 -0
  195. package/dist/mjs/types/Interface/api/DashboardLayout.d.ts.map +1 -0
  196. package/dist/mjs/types/Interface/api/DashboardLayout.js +2 -0
  197. package/dist/mjs/types/Interface/api/DashboardLayout.js.map +1 -0
  198. package/dist/mjs/types/Interface/api/OnBoarding.d.ts +1 -0
  199. package/dist/mjs/types/Interface/api/OnBoarding.d.ts.map +1 -1
  200. package/dist/mjs/types/Interface/api/OnBoarding.js +7 -0
  201. package/dist/mjs/types/Interface/api/OnBoarding.js.map +1 -1
  202. package/dist/mjs/types/Interface/api/balanceSheet/ReadBalanceSheet.d.ts +3 -2
  203. package/dist/mjs/types/Interface/api/balanceSheet/ReadBalanceSheet.d.ts.map +1 -1
  204. package/dist/mjs/types/Interface/api/balanceSheet/ReadBalanceSheet.js.map +1 -1
  205. package/dist/mjs/types/Interface/api/cerfa/2031.d.ts +3 -2
  206. package/dist/mjs/types/Interface/api/cerfa/2031.d.ts.map +1 -1
  207. package/dist/mjs/types/Interface/api/cerfa/2031.js.map +1 -1
  208. package/dist/mjs/types/Interface/api/cerfa/2050.d.ts +1592 -1634
  209. package/dist/mjs/types/Interface/api/cerfa/2050.d.ts.map +1 -1
  210. package/dist/mjs/types/Interface/api/cerfa/2050.js.map +1 -1
  211. package/dist/mjs/types/Interface/api/cerfa/2065.d.ts +3 -2
  212. package/dist/mjs/types/Interface/api/cerfa/2065.d.ts.map +1 -1
  213. package/dist/mjs/types/Interface/api/cerfa/2065.js.map +1 -1
  214. package/dist/mjs/types/Interface/api/cerfa/ReadCerfa.d.ts +10 -1
  215. package/dist/mjs/types/Interface/api/cerfa/ReadCerfa.d.ts.map +1 -1
  216. package/dist/mjs/types/Interface/api/cerfa/ReadCerfa.js.map +1 -1
  217. package/dist/mjs/types/Interface/api/checklist/Query.d.ts +3 -0
  218. package/dist/mjs/types/Interface/api/checklist/Query.d.ts.map +1 -1
  219. package/dist/mjs/types/Interface/api/checklist/Query.js +10 -0
  220. package/dist/mjs/types/Interface/api/checklist/Query.js.map +1 -1
  221. package/dist/mjs/types/Interface/api/feature/GetAvailableDashboardBlocks.d.ts +5 -0
  222. package/dist/mjs/types/Interface/api/feature/GetAvailableDashboardBlocks.d.ts.map +1 -0
  223. package/dist/mjs/types/Interface/api/feature/GetAvailableDashboardBlocks.js +2 -0
  224. package/dist/mjs/types/Interface/api/feature/GetAvailableDashboardBlocks.js.map +1 -0
  225. package/dist/mjs/types/Interface/api/incomeStatement/ReadIncomeStatement.d.ts +3 -2
  226. package/dist/mjs/types/Interface/api/incomeStatement/ReadIncomeStatement.d.ts.map +1 -1
  227. package/dist/mjs/types/Interface/api/incomeStatement/ReadIncomeStatement.js.map +1 -1
  228. package/dist/mjs/types/Interface/api/payment/Params.d.ts +4 -0
  229. package/dist/mjs/types/Interface/api/payment/Params.d.ts.map +1 -1
  230. package/dist/mjs/types/Interface/api/payment/Params.js +19 -1
  231. package/dist/mjs/types/Interface/api/payment/Params.js.map +1 -1
  232. package/dist/mjs/types/Interface/api/payment/Util.d.ts +0 -2
  233. package/dist/mjs/types/Interface/api/payment/Util.d.ts.map +1 -1
  234. package/dist/mjs/types/Interface/api/payment/Util.js.map +1 -1
  235. package/dist/mjs/types/Interface/api/registration/ReadRegistration.d.ts +4 -0
  236. package/dist/mjs/types/Interface/api/registration/ReadRegistration.d.ts.map +1 -1
  237. package/dist/mjs/types/Interface/api/registration/ReadRegistration.js.map +1 -1
  238. package/dist/mjs/types/Interface/api/society/ReadSociety.d.ts +2 -4
  239. package/dist/mjs/types/Interface/api/society/ReadSociety.d.ts.map +1 -1
  240. package/dist/mjs/types/Interface/api/society/ReadSociety.js.map +1 -1
  241. package/dist/mjs/types/Interface/api/team/UpdateTeamsForUser.d.ts +6 -0
  242. package/dist/mjs/types/Interface/api/team/UpdateTeamsForUser.d.ts.map +1 -0
  243. package/dist/mjs/types/Interface/api/team/UpdateTeamsForUser.js +37 -0
  244. package/dist/mjs/types/Interface/api/team/UpdateTeamsForUser.js.map +1 -0
  245. package/dist/mjs/types/Interface/models/IPrestation.d.ts.map +1 -1
  246. package/dist/mjs/types/Interface/models/IPrestation.js.map +1 -1
  247. package/dist/mjs/types/index.d.ts +3 -0
  248. package/dist/mjs/types/index.d.ts.map +1 -1
  249. package/dist/mjs/types/index.js +3 -0
  250. package/dist/mjs/types/index.js.map +1 -1
  251. package/dist/mjs/utils/payment.js +52 -48
  252. package/dist/mjs/utils/payment.js.map +1 -1
  253. package/dist/mjs/utils/prestation.d.ts +1 -0
  254. package/dist/mjs/utils/prestation.d.ts.map +1 -1
  255. package/dist/mjs/utils/prestation.js +1 -0
  256. package/dist/mjs/utils/prestation.js.map +1 -1
  257. package/dist/mjs/utils/tests/payment.spec.js +34 -34
  258. package/dist/mjs/utils/tests/payment.spec.js.map +1 -1
  259. package/dist/mjs/utils/vat/3310/century25.js +1 -1
  260. package/dist/mjs/utils/vat/3310/century25.js.map +1 -1
  261. package/dist/mjs/utils/vat/3517/century25.js +1 -1
  262. package/dist/mjs/utils/vat/3517/century25.js.map +1 -1
  263. package/package.json +1 -1
  264. package/ts/api/resources/Checklist.ts +12 -2
  265. package/ts/api/resources/DashboardLayout.ts +20 -0
  266. package/ts/api/resources/Mfa.ts +3 -2
  267. package/ts/api/resources/Payment.ts +6 -1
  268. package/ts/api/resources/Registration.ts +1 -1
  269. package/ts/api/resources/Team.ts +31 -1
  270. package/ts/api/resources.ts +2 -0
  271. package/ts/types/Enum/Aspone.ts +10 -0
  272. package/ts/types/Enum/BalanceSheet.ts +137 -68
  273. package/ts/types/Enum/BalanceSheetQuestion.ts +63 -0
  274. package/ts/types/Enum/BalanceSheetQuestionWording.ts +130 -81
  275. package/ts/types/Enum/DashboardBlock.ts +12 -0
  276. package/ts/types/Enum/Ged.ts +1 -1
  277. package/ts/types/Enum/GlobalRegime.ts +19 -19
  278. package/ts/types/Enum/IncomeStatement.ts +73 -40
  279. package/ts/types/Enum/LegalForm.ts +40 -4
  280. package/ts/types/Enum/MailAuto.ts +1 -0
  281. package/ts/types/Interface/api/DashboardLayout.ts +27 -0
  282. package/ts/types/Interface/api/OnBoarding.ts +5 -0
  283. package/ts/types/Interface/api/balanceSheet/ReadBalanceSheet.ts +4 -2
  284. package/ts/types/Interface/api/cerfa/2031.ts +3 -2
  285. package/ts/types/Interface/api/cerfa/2050.ts +1580 -1399
  286. package/ts/types/Interface/api/cerfa/2065.ts +2 -2
  287. package/ts/types/Interface/api/cerfa/ReadCerfa.ts +20 -2
  288. package/ts/types/Interface/api/checklist/Query.ts +8 -0
  289. package/ts/types/Interface/api/feature/GetAvailableDashboardBlocks.ts +5 -0
  290. package/ts/types/Interface/api/incomeStatement/ReadIncomeStatement.ts +4 -2
  291. package/ts/types/Interface/api/payment/Params.ts +14 -1
  292. package/ts/types/Interface/api/payment/Util.ts +2 -2
  293. package/ts/types/Interface/api/registration/ReadRegistration.ts +4 -0
  294. package/ts/types/Interface/api/society/ReadSociety.ts +2 -4
  295. package/ts/types/Interface/api/team/UpdateTeamsForUser.ts +22 -0
  296. package/ts/types/Interface/models/IPrestation.ts +1 -0
  297. package/ts/types/index.ts +3 -0
  298. package/ts/utils/payment.ts +49 -49
  299. package/ts/utils/prestation.ts +1 -0
  300. package/ts/utils/tests/payment.spec.ts +34 -34
  301. package/ts/utils/vat/3310/century25.ts +1 -1
  302. package/ts/utils/vat/3517/century25.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as dayjs from 'dayjs';
2
- import { Vat, PaymentMethod, LegalFormTypeEnum, getTaxesIncludedAmount } from '../../types';
2
+ import { Vat, PaymentMethod, 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, 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"]}
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"]}
@@ -662,7 +662,7 @@ export function getCerfa3310Century25RegistrationFields(data) {
662
662
  tag: 'Valeur',
663
663
  isMultiple: false,
664
664
  description: 'Autres',
665
- value: data.isNil && !data.isHolidayDeposit ? 'X' : null,
665
+ value: comment && comment?.length > 0 && !data.isHolidayDeposit ? 'X' : null,
666
666
  },
667
667
  {
668
668
  key: 'BB',