@silexpert/core 1.3.202 → 1.3.203-is-0

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 (194) hide show
  1. package/dist/cjs/api/resources/Docoon.d.ts +6 -0
  2. package/dist/cjs/api/resources/Docoon.d.ts.map +1 -0
  3. package/dist/cjs/api/resources/Docoon.js +11 -0
  4. package/dist/cjs/api/resources/Docoon.js.map +1 -0
  5. package/dist/cjs/api/resources/InternalInvoicing.d.ts +1 -1
  6. package/dist/cjs/api/resources/InternalInvoicing.d.ts.map +1 -1
  7. package/dist/cjs/api/resources/InternalInvoicing.js +5 -1
  8. package/dist/cjs/api/resources/InternalInvoicing.js.map +1 -1
  9. package/dist/cjs/api/resources/WorkingSchedule.d.ts +1 -0
  10. package/dist/cjs/api/resources/WorkingSchedule.d.ts.map +1 -1
  11. package/dist/cjs/api/resources/WorkingSchedule.js +3 -0
  12. package/dist/cjs/api/resources/WorkingSchedule.js.map +1 -1
  13. package/dist/cjs/api/resources.d.ts +2 -0
  14. package/dist/cjs/api/resources.d.ts.map +1 -1
  15. package/dist/cjs/api/resources.js +2 -0
  16. package/dist/cjs/api/resources.js.map +1 -1
  17. package/dist/cjs/types/Enum/AnalyticsUtm.d.ts +49 -0
  18. package/dist/cjs/types/Enum/AnalyticsUtm.d.ts.map +1 -0
  19. package/dist/cjs/types/Enum/AnalyticsUtm.js +54 -0
  20. package/dist/cjs/types/Enum/AnalyticsUtm.js.map +1 -0
  21. package/dist/cjs/types/Enum/BalanceSheet.js +2 -2
  22. package/dist/cjs/types/Enum/BalanceSheet.js.map +1 -1
  23. package/dist/cjs/types/Enum/PrestationType.js +1 -1
  24. package/dist/cjs/types/Enum/PrestationType.js.map +1 -1
  25. package/dist/cjs/types/Interface/api/card/Cron.d.ts +1 -0
  26. package/dist/cjs/types/Interface/api/card/Cron.d.ts.map +1 -1
  27. package/dist/cjs/types/Interface/api/card/Cron.js +6 -0
  28. package/dist/cjs/types/Interface/api/card/Cron.js.map +1 -1
  29. package/dist/cjs/types/Interface/api/cerfa/2571.d.ts +2 -53
  30. package/dist/cjs/types/Interface/api/cerfa/2571.d.ts.map +1 -1
  31. package/dist/cjs/types/Interface/api/cerfa/2571.js +1 -4
  32. package/dist/cjs/types/Interface/api/cerfa/2571.js.map +1 -1
  33. package/dist/cjs/types/Interface/api/cerfa/2572.d.ts +9 -150
  34. package/dist/cjs/types/Interface/api/cerfa/2572.d.ts.map +1 -1
  35. package/dist/cjs/types/Interface/api/cerfa/2572.js +4 -7
  36. package/dist/cjs/types/Interface/api/cerfa/2572.js.map +1 -1
  37. package/dist/cjs/types/Interface/api/cerfa/2573.d.ts +2 -1
  38. package/dist/cjs/types/Interface/api/cerfa/2573.d.ts.map +1 -1
  39. package/dist/cjs/types/Interface/api/cerfa/2573.js.map +1 -1
  40. package/dist/cjs/types/Interface/api/config/ConfigType.d.ts +4 -0
  41. package/dist/cjs/types/Interface/api/config/ConfigType.d.ts.map +1 -1
  42. package/dist/cjs/types/Interface/api/config/ConfigType.js.map +1 -1
  43. package/dist/cjs/types/Interface/api/docoon/Query.d.ts +6 -0
  44. package/dist/cjs/types/Interface/api/docoon/Query.d.ts.map +1 -0
  45. package/dist/cjs/types/Interface/api/docoon/Query.js +36 -0
  46. package/dist/cjs/types/Interface/api/docoon/Query.js.map +1 -0
  47. package/dist/cjs/types/Interface/api/docoon/Read.d.ts +78 -0
  48. package/dist/cjs/types/Interface/api/docoon/Read.d.ts.map +1 -0
  49. package/dist/cjs/types/Interface/api/docoon/Read.js +3 -0
  50. package/dist/cjs/types/Interface/api/docoon/Read.js.map +1 -0
  51. package/dist/cjs/types/Interface/api/generalLedger/IGeneralLedgerThirdParty.d.ts +2 -0
  52. package/dist/cjs/types/Interface/api/generalLedger/IGeneralLedgerThirdParty.d.ts.map +1 -1
  53. package/dist/cjs/types/Interface/api/generalLedger/IGeneralLedgerThirdParty.js.map +1 -1
  54. package/dist/cjs/types/Interface/api/revenue/revenueMovement.d.ts +1 -0
  55. package/dist/cjs/types/Interface/api/revenue/revenueMovement.d.ts.map +1 -1
  56. package/dist/cjs/types/Interface/api/revenue/revenueMovement.js.map +1 -1
  57. package/dist/cjs/types/Interface/api/revision/Query.d.ts +2 -1
  58. package/dist/cjs/types/Interface/api/revision/Query.d.ts.map +1 -1
  59. package/dist/cjs/types/Interface/api/revision/Query.js +6 -0
  60. package/dist/cjs/types/Interface/api/revision/Query.js.map +1 -1
  61. package/dist/cjs/types/Interface/api/user/RegisterProspect.d.ts +2 -0
  62. package/dist/cjs/types/Interface/api/user/RegisterProspect.d.ts.map +1 -1
  63. package/dist/cjs/types/Interface/api/user/RegisterProspect.js +14 -0
  64. package/dist/cjs/types/Interface/api/user/RegisterProspect.js.map +1 -1
  65. package/dist/cjs/types/Interface/api/webex/GetWebinarsParams.d.ts +1 -0
  66. package/dist/cjs/types/Interface/api/webex/GetWebinarsParams.d.ts.map +1 -1
  67. package/dist/cjs/types/Interface/api/webex/GetWebinarsParams.js +5 -0
  68. package/dist/cjs/types/Interface/api/webex/GetWebinarsParams.js.map +1 -1
  69. package/dist/cjs/types/Interface/models/IAccountDetail.d.ts +1 -0
  70. package/dist/cjs/types/Interface/models/IAccountDetail.d.ts.map +1 -1
  71. package/dist/cjs/types/Interface/models/IAccountDetail.js.map +1 -1
  72. package/dist/cjs/types/Interface/models/IAnalyticsUtm.d.ts +2 -0
  73. package/dist/cjs/types/Interface/models/IAnalyticsUtm.d.ts.map +1 -1
  74. package/dist/cjs/types/Interface/models/IAnalyticsUtm.js.map +1 -1
  75. package/dist/cjs/types/Interface/models/IExercicePrestation.d.ts +1 -0
  76. package/dist/cjs/types/Interface/models/IExercicePrestation.d.ts.map +1 -1
  77. package/dist/cjs/types/Interface/models/IExercicePrestation.js.map +1 -1
  78. package/dist/cjs/types/index.d.ts +3 -0
  79. package/dist/cjs/types/index.d.ts.map +1 -1
  80. package/dist/cjs/types/index.js +3 -0
  81. package/dist/cjs/types/index.js.map +1 -1
  82. package/dist/cjs/utils/email.js +1 -1
  83. package/dist/cjs/utils/email.js.map +1 -1
  84. package/dist/cjs/utils/vat/registration.js.map +1 -1
  85. package/dist/mjs/api/resources/Docoon.d.ts +6 -0
  86. package/dist/mjs/api/resources/Docoon.d.ts.map +1 -0
  87. package/dist/mjs/api/resources/Docoon.js +7 -0
  88. package/dist/mjs/api/resources/Docoon.js.map +1 -0
  89. package/dist/mjs/api/resources/InternalInvoicing.d.ts +1 -1
  90. package/dist/mjs/api/resources/InternalInvoicing.d.ts.map +1 -1
  91. package/dist/mjs/api/resources/InternalInvoicing.js +5 -1
  92. package/dist/mjs/api/resources/InternalInvoicing.js.map +1 -1
  93. package/dist/mjs/api/resources/WorkingSchedule.d.ts +1 -0
  94. package/dist/mjs/api/resources/WorkingSchedule.d.ts.map +1 -1
  95. package/dist/mjs/api/resources/WorkingSchedule.js +3 -0
  96. package/dist/mjs/api/resources/WorkingSchedule.js.map +1 -1
  97. package/dist/mjs/api/resources.d.ts +2 -0
  98. package/dist/mjs/api/resources.d.ts.map +1 -1
  99. package/dist/mjs/api/resources.js +2 -0
  100. package/dist/mjs/api/resources.js.map +1 -1
  101. package/dist/mjs/types/Enum/AnalyticsUtm.d.ts +49 -0
  102. package/dist/mjs/types/Enum/AnalyticsUtm.d.ts.map +1 -0
  103. package/dist/mjs/types/Enum/AnalyticsUtm.js +51 -0
  104. package/dist/mjs/types/Enum/AnalyticsUtm.js.map +1 -0
  105. package/dist/mjs/types/Enum/BalanceSheet.js +2 -2
  106. package/dist/mjs/types/Enum/BalanceSheet.js.map +1 -1
  107. package/dist/mjs/types/Enum/PrestationType.js +1 -1
  108. package/dist/mjs/types/Enum/PrestationType.js.map +1 -1
  109. package/dist/mjs/types/Interface/api/card/Cron.d.ts +1 -0
  110. package/dist/mjs/types/Interface/api/card/Cron.d.ts.map +1 -1
  111. package/dist/mjs/types/Interface/api/card/Cron.js +6 -0
  112. package/dist/mjs/types/Interface/api/card/Cron.js.map +1 -1
  113. package/dist/mjs/types/Interface/api/cerfa/2571.d.ts +2 -53
  114. package/dist/mjs/types/Interface/api/cerfa/2571.d.ts.map +1 -1
  115. package/dist/mjs/types/Interface/api/cerfa/2571.js +0 -10
  116. package/dist/mjs/types/Interface/api/cerfa/2571.js.map +1 -1
  117. package/dist/mjs/types/Interface/api/cerfa/2572.d.ts +9 -150
  118. package/dist/mjs/types/Interface/api/cerfa/2572.d.ts.map +1 -1
  119. package/dist/mjs/types/Interface/api/cerfa/2572.js +3 -17
  120. package/dist/mjs/types/Interface/api/cerfa/2572.js.map +1 -1
  121. package/dist/mjs/types/Interface/api/cerfa/2573.d.ts +2 -1
  122. package/dist/mjs/types/Interface/api/cerfa/2573.d.ts.map +1 -1
  123. package/dist/mjs/types/Interface/api/cerfa/2573.js.map +1 -1
  124. package/dist/mjs/types/Interface/api/config/ConfigType.d.ts +4 -0
  125. package/dist/mjs/types/Interface/api/config/ConfigType.d.ts.map +1 -1
  126. package/dist/mjs/types/Interface/api/config/ConfigType.js.map +1 -1
  127. package/dist/mjs/types/Interface/api/docoon/Query.d.ts +6 -0
  128. package/dist/mjs/types/Interface/api/docoon/Query.d.ts.map +1 -0
  129. package/dist/mjs/types/Interface/api/docoon/Query.js +35 -0
  130. package/dist/mjs/types/Interface/api/docoon/Query.js.map +1 -0
  131. package/dist/mjs/types/Interface/api/docoon/Read.d.ts +78 -0
  132. package/dist/mjs/types/Interface/api/docoon/Read.d.ts.map +1 -0
  133. package/dist/mjs/types/Interface/api/docoon/Read.js +2 -0
  134. package/dist/mjs/types/Interface/api/docoon/Read.js.map +1 -0
  135. package/dist/mjs/types/Interface/api/generalLedger/IGeneralLedgerThirdParty.d.ts +2 -0
  136. package/dist/mjs/types/Interface/api/generalLedger/IGeneralLedgerThirdParty.d.ts.map +1 -1
  137. package/dist/mjs/types/Interface/api/generalLedger/IGeneralLedgerThirdParty.js.map +1 -1
  138. package/dist/mjs/types/Interface/api/revenue/revenueMovement.d.ts +1 -0
  139. package/dist/mjs/types/Interface/api/revenue/revenueMovement.d.ts.map +1 -1
  140. package/dist/mjs/types/Interface/api/revenue/revenueMovement.js.map +1 -1
  141. package/dist/mjs/types/Interface/api/revision/Query.d.ts +2 -1
  142. package/dist/mjs/types/Interface/api/revision/Query.d.ts.map +1 -1
  143. package/dist/mjs/types/Interface/api/revision/Query.js +7 -0
  144. package/dist/mjs/types/Interface/api/revision/Query.js.map +1 -1
  145. package/dist/mjs/types/Interface/api/user/RegisterProspect.d.ts +2 -0
  146. package/dist/mjs/types/Interface/api/user/RegisterProspect.d.ts.map +1 -1
  147. package/dist/mjs/types/Interface/api/user/RegisterProspect.js +16 -0
  148. package/dist/mjs/types/Interface/api/user/RegisterProspect.js.map +1 -1
  149. package/dist/mjs/types/Interface/api/webex/GetWebinarsParams.d.ts +1 -0
  150. package/dist/mjs/types/Interface/api/webex/GetWebinarsParams.d.ts.map +1 -1
  151. package/dist/mjs/types/Interface/api/webex/GetWebinarsParams.js +6 -0
  152. package/dist/mjs/types/Interface/api/webex/GetWebinarsParams.js.map +1 -1
  153. package/dist/mjs/types/Interface/models/IAccountDetail.d.ts +1 -0
  154. package/dist/mjs/types/Interface/models/IAccountDetail.d.ts.map +1 -1
  155. package/dist/mjs/types/Interface/models/IAccountDetail.js.map +1 -1
  156. package/dist/mjs/types/Interface/models/IAnalyticsUtm.d.ts +2 -0
  157. package/dist/mjs/types/Interface/models/IAnalyticsUtm.d.ts.map +1 -1
  158. package/dist/mjs/types/Interface/models/IAnalyticsUtm.js.map +1 -1
  159. package/dist/mjs/types/Interface/models/IExercicePrestation.d.ts +1 -0
  160. package/dist/mjs/types/Interface/models/IExercicePrestation.d.ts.map +1 -1
  161. package/dist/mjs/types/Interface/models/IExercicePrestation.js.map +1 -1
  162. package/dist/mjs/types/index.d.ts +3 -0
  163. package/dist/mjs/types/index.d.ts.map +1 -1
  164. package/dist/mjs/types/index.js +3 -0
  165. package/dist/mjs/types/index.js.map +1 -1
  166. package/dist/mjs/utils/email.js +1 -1
  167. package/dist/mjs/utils/email.js.map +1 -1
  168. package/dist/mjs/utils/vat/registration.js.map +1 -1
  169. package/package.json +1 -1
  170. package/ts/api/resources/Docoon.ts +8 -0
  171. package/ts/api/resources/InternalInvoicing.ts +5 -1
  172. package/ts/api/resources/WorkingSchedule.ts +4 -0
  173. package/ts/api/resources.ts +2 -0
  174. package/ts/types/Enum/AnalyticsUtm.ts +51 -0
  175. package/ts/types/Enum/BalanceSheet.ts +2 -2
  176. package/ts/types/Enum/PrestationType.ts +1 -1
  177. package/ts/types/Interface/api/card/Cron.ts +5 -0
  178. package/ts/types/Interface/api/cerfa/2571.ts +3 -54
  179. package/ts/types/Interface/api/cerfa/2572.ts +10 -148
  180. package/ts/types/Interface/api/cerfa/2573.ts +3 -1
  181. package/ts/types/Interface/api/config/ConfigType.ts +6 -1
  182. package/ts/types/Interface/api/docoon/Query.ts +19 -0
  183. package/ts/types/Interface/api/docoon/Read.ts +93 -0
  184. package/ts/types/Interface/api/generalLedger/IGeneralLedgerThirdParty.ts +2 -0
  185. package/ts/types/Interface/api/revenue/revenueMovement.ts +1 -0
  186. package/ts/types/Interface/api/revision/Query.ts +6 -1
  187. package/ts/types/Interface/api/user/RegisterProspect.ts +12 -0
  188. package/ts/types/Interface/api/webex/GetWebinarsParams.ts +4 -0
  189. package/ts/types/Interface/models/IAccountDetail.ts +1 -0
  190. package/ts/types/Interface/models/IAnalyticsUtm.ts +2 -0
  191. package/ts/types/Interface/models/IExercicePrestation.ts +1 -0
  192. package/ts/types/index.ts +3 -0
  193. package/ts/utils/email.ts +1 -1
  194. package/ts/utils/vat/registration.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"email.js","sourceRoot":"","sources":["../../../ts/utils/email.ts"],"names":[],"mappings":"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","sourcesContent":["// import * as dayjs from 'dayjs';\n// import { orderBy as orderByLodash } from 'lodash';\nimport { Role } from '../types/Enum/Role';\nimport { TimeSlot } from '../types/Enum/TimeSlot';\nimport { IUser } from '../types/Interface/models/IUser';\nimport { getBrandConfig } from './brands';\nimport { signatureTemplate } from './email/templates/signature';\nimport { intersection } from './noLodash';\n\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst ejs = require('ejs');\n\nfunction getRoleSignature(user: any) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (user.positionLabel) return user.positionLabel;\n\n const isStagiaireOrAlternant =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n user.roles.map((r: any) => r.id).includes(Role.INTERN) || user.roles.map((r: any) => r.id).includes(Role.ALTERNATE);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isManager = user.roles.map((r: any) => r.id).includes(Role.MANAGER);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isSocial = user.roles.map((r: any) => r.id).includes(Role.SOCIAL);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isJuridic = user.roles.map((r: any) => r.id).includes(Role.JURIDIC);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isFacturation = user.roles.map((r: any) => r.id).includes(Role.FACTURATION);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isExpert = user.roles.map((r: any) => r.id).includes(Role.EXPERT_ACCOUNTANT);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isCS = user.roles.map((r: any) => r.id).includes(Role.CUSTOMER_SUCCESS);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isOnBoarder = user.roles.map((r: any) => r.id).includes(Role.ON_BOARDER);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isSatisfaction = user.roles.map((r: any) => r.id).includes(Role.SATISFACTION);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isDataOfficer = user.roles.map((r: any) => r.id).includes(Role.DATA_OFFICER);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isSales = user.roles.map((r: any) => r.id).includes(Role.COMMERCIAL);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isAdmin = user.roles.map((r: any) => r.id).includes(Role.ADMIN);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isTechnicalAdvisor = user.roles.map((r: any) => r.id).includes(Role.TECHNICAL_ADVISOR);\n\n const isFront = !!intersection(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n user.roles.map((r: any) => r.id),\n [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS],\n ).length;\n\n if (isSales && isManager) {\n return 'Responsable commercial';\n }\n if (isSales) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} de clientèle`;\n }\n\n if (isCS && isManager) {\n return 'Responsable relations clients';\n }\n if (isCS) {\n return `Conseill${user.idCivility === 2 ? 'ère' : 'er'} comptable`;\n }\n\n if (isTechnicalAdvisor) {\n return `Référent${user.idCivility === 2 ? 'e' : ''} technique`;\n }\n\n if (isOnBoarder && isManager) {\n return `Responsable chargé${user.idCivility === 2 ? 'e' : ''} accueil clients`;\n }\n if (isOnBoarder) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} accueil clients`;\n }\n\n if (isSatisfaction && isManager) {\n return `Responsable chargé${user.idCivility === 2 ? 'e' : ''} de la satisfaction clients`;\n }\n if (isSatisfaction) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} de la satisfaction clients`;\n }\n\n if (isDataOfficer && isManager) {\n return 'Responsable aide comptable';\n }\n if (isDataOfficer) {\n return 'Aide comptable';\n }\n\n if (isFacturation && isStagiaireOrAlternant) {\n return 'Assistant facturation';\n }\n if (isFacturation && isManager) {\n return 'Responsable facturation';\n }\n if (isFacturation) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} de facturation`;\n }\n\n if (isJuridic && isStagiaireOrAlternant) {\n return 'Assistant juridique';\n }\n if (isJuridic && isManager) {\n return 'Responsable juridique';\n }\n if (isJuridic) {\n return 'Juriste';\n }\n\n if (isSocial && isStagiaireOrAlternant) {\n return 'Assistant paie';\n }\n if (isSocial && isManager) {\n return 'Responsable paie';\n }\n if (isSocial) {\n return 'Gestionnaire de paie';\n }\n\n if (isExpert) {\n return `Expert${user.idCivility === 2 ? 'e' : ''}-comptable`;\n }\n\n if (isAdmin) {\n return 'Développeur web';\n }\n\n if (isFront && isManager) return 'Responsable comptable';\n if (isFront && isStagiaireOrAlternant) return 'Assistant comptable';\n // if (isFront) return `Comptable dédié${user.idCivility === 2 ? 'e' : ''}`;\n // return `Comptable dédié${user.idCivility === 2 ? 'e' : ''}`;\n // if (isFront) return `Comptable`;\n return 'Comptable';\n}\n\nexport function getHoraires(user: IUser) {\n // On affiche les horaires uniquement pour les front, et pas pour les TVA\n\n // if (\n // isItThisEnv('Pourcentage') &&\n // user?.entity &&\n // [EntityType.COMPTALIB, EntityType.AMEX, EntityType.CABINET_RONCHIERI_LANDRA].includes(user.entity)\n // ) {\n // return 'Du lundi au vendredi de 9h à 18h';\n // }\n\n return 'Du lundi au vendredi de 9h à 18h';\n\n // if (!intersection([user.roles.map((r: any) => r.id), [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS, Role.COMMERCIAL]]).length) return 'Du lundi au vendredi de 9h à 18h';\n\n // if (!user.workingSchedules.length) return 'Du lundi au vendredi de 9h à 18h';\n\n // let reducedSchedules = user.workingSchedules.reduce((acc: any, e:any, index: number) => {\n // const name = `${dayjs(e.morningStart, 'HH:mm:ss').format('HH:mm')}-${dayjs(e.afternoonEnd || e.morningEnd, 'HH:mm:ss').format('HH:mm')}`;\n // if (!acc[name]) acc[name] = [index];\n // else acc[name].push(index);\n // return acc;\n // }, {});\n\n // reducedSchedules = orderByLodash(reducedSchedules, (elem) => elem.length, ['desc']);\n\n // let resultHoraire = '';\n // let startH;\n // let startM;\n // let endH;\n // let endM;\n // let firstDayOfWeek;\n // let lastDayOfWeek;\n\n // reducedSchedules.forEach((schedule: any, index: number) => {\n // startH = dayjs(user.workingSchedules[schedule[0]].morningStart ? user.workingSchedules[schedule[0]].morningStart : user.workingSchedules[schedule[0]].afternoonStart, 'HH:mm:ss').get('hour');\n // startM = dayjs(user.workingSchedules[schedule[0]].morningStart ? user.workingSchedules[schedule[0]].morningStart : user.workingSchedules[schedule[0]].afternoonStart, 'HH:mm:ss').get('minute');\n // endH = dayjs(user.workingSchedules[schedule[0]].afternoonEnd || user.workingSchedules[schedule[0]].morningEnd, 'HH:mm:ss').get('hour');\n // endM = dayjs(user.workingSchedules[schedule[0]].afternoonEnd || user.workingSchedules[schedule[0]].morningEnd, 'HH:mm:ss').get('minute');\n // firstDayOfWeek = dayjs().locale('fr').day(user.workingSchedules[schedule[0]].idDay).format('dddd');\n // if (!index) {\n // // pour le premier index, on affiche l'amplitude horaire la plus commune, du XX au XX de Xh à Xh\n // lastDayOfWeek = dayjs().locale('fr').day(user.workingSchedules[user.workingSchedules.length - 1].idDay).format('dddd');\n // resultHoraire += `Du ${firstDayOfWeek} au ${lastDayOfWeek} de ${startH}h${startM > 0 ? startM : ''} à ${endH}h${endM > 0 ? endM : ''}`;\n // } else { // Fonctionnel si uniquement un jour par semaine avec des horaires différents\n // resultHoraire += `<br/>Le ${firstDayOfWeek} de ${startH}h${startM > 0 ? startM : ''} à ${endH}h${endM > 0 ? endM : ''}`;\n // }\n // });\n // return resultHoraire;\n}\n\nfunction getMailSignature(user: any, idTypeBrand: number) {\n const informatiqueMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.informatique',\n }) as unknown as string;\n const bonjourMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.bonjour',\n }) as unknown as string;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (user.roles.map((r: any) => r.id).includes(Role.ADMIN)) {\n return informatiqueMail;\n }\n\n if (\n user &&\n !!intersection(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n user.roles.map((r: any) => r.id),\n [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS, Role.DATA_OFFICER, Role.COMMERCIAL, Role.TECHNICAL_ADVISOR],\n ).length\n )\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return user.email;\n return bonjourMail;\n}\n\nfunction getPhoneSignature(user: any) {\n if (user.phone && user.phone !== '0383931414') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return user.phone.replace(/\\B(?=(\\d{2})+(?!\\d))/g, '&nbsp;');\n }\n return null;\n}\n\nexport function generateSignature(params: any): string {\n const { fromAddress = null, idTypeBrand = 1, society, ...otherParams } = params;\n let { user, forceRole = null } = otherParams;\n\n const hostS3 = getBrandConfig({\n idTypeBrand,\n objectWaited: 'urlS3',\n });\n\n const brandName = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'name',\n }) as unknown as string;\n const brandPostalAddress = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'companyInformation.postalAddress',\n }) as unknown as string;\n const brandCity = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'companyInformation.city',\n }) as unknown as string;\n const commercialName = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'commercialName',\n }) as unknown as string;\n const iban = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'bank.IBAN',\n }) as unknown as string;\n const bic = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'bank.BIC',\n }) as unknown as string;\n const bonjourMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.bonjour',\n }) as unknown as string;\n const socialMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.social',\n }) as unknown as string;\n const dataOfficerMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.gestion',\n }) as unknown as string;\n const satisfactionMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.satisfaction',\n }) as unknown as string;\n const resiliationMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.resiliation',\n }) as unknown as string;\n const supportMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.support',\n }) as unknown as string;\n const juridiqueMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.juridique',\n }) as unknown as string;\n const facturationMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.facturation',\n }) as unknown as string;\n const primaryColor = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'colors.primary',\n }) as unknown as string;\n const standardPhoneSignature = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listPhones.contact',\n }) as unknown as string;\n const juridiquePhoneSignature = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listPhones.juridique',\n }) as unknown as string;\n const socialPhoneSignature = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listPhones.social',\n }) as unknown as string;\n\n // Pour les cas hybrides des personnes ayant plusieurs rôles\n // Comme Morgane (Facturation + Satisfaction) et qui peut choisir plusieurs emails d'expédition\n // Il faut que la signature corresponde à l'adresse d'expédition\n // donc actuellement, on ne gère que satisfaction/resiliation/facturation\n const listGenericEmails: { email: string; forceRole: string }[] = [\n { email: satisfactionMail, forceRole: 'satisfaction' },\n { email: resiliationMail, forceRole: 'resiliation' },\n { email: facturationMail, forceRole: 'facturation' },\n ];\n const genericEmailUsed = listGenericEmails.find((e) => e.email === fromAddress);\n if (genericEmailUsed) {\n forceRole = genericEmailUsed.forceRole;\n }\n\n let roleSignature: string | null;\n let mailSignature: string | null;\n let phoneSignature: string | null;\n let horaires: string | null;\n [roleSignature, mailSignature, phoneSignature, horaires] = [\n 'Expert-Comptable',\n bonjourMail,\n null,\n 'Du lundi au vendredi de 9h à 18h',\n ];\n\n if (user?.roles && user.roles.some((r: any) => r.id === Role.DATA_OFFICER)) {\n // Signature data_officer\n user = {\n firstname: `L'équipe ${commercialName}`,\n isAll: true,\n };\n mailSignature = dataOfficerMail;\n roleSignature = '';\n } else if (\n intersection(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n (user?.roles ?? []).map((r: any) => r.id),\n [Role.FRONT_OFFICE, Role.SENIOR],\n ).length === 2\n ) {\n // Signature front senior\n user = {\n firstname: `L'équipe ${commercialName}`,\n isAll: true,\n };\n mailSignature = bonjourMail;\n roleSignature = '';\n } else if (forceRole === 'satisfaction') {\n // Signature satisfaction\n user = {\n firstname: 'Service satisfaction clients',\n isAll: true,\n };\n mailSignature = satisfactionMail;\n roleSignature = '';\n phoneSignature = standardPhoneSignature;\n } else if (forceRole === 'resiliation') {\n // Signature resiliation\n user = {\n firstname: 'Service satisfaction clients',\n isAll: true,\n };\n mailSignature = resiliationMail;\n roleSignature = '';\n phoneSignature = standardPhoneSignature;\n } else if (forceRole === 'social') {\n // Signature social\n user = {\n firstname: 'Service social',\n isAll: true,\n };\n mailSignature = socialMail;\n roleSignature = '';\n phoneSignature = socialPhoneSignature;\n } else if (forceRole === 'support') {\n // Signature support\n user = {\n firstname: 'Service Support',\n isAll: true,\n };\n mailSignature = supportMail;\n roleSignature = null;\n } else if (forceRole === 'juridique') {\n // Signature juridique\n user = {\n firstname: 'Service juridique',\n isAll: true,\n };\n mailSignature = juridiqueMail;\n roleSignature = null;\n phoneSignature = juridiquePhoneSignature;\n } else if (forceRole === 'facturation') {\n // Signature facturation\n user = {\n firstname: 'Service facturation',\n isAll: true,\n };\n mailSignature = facturationMail;\n roleSignature = null;\n phoneSignature = standardPhoneSignature;\n } else if (!user) {\n // Signature Clementine\n user = {\n firstname: `L'équipe ${commercialName}`,\n isAll: true,\n };\n roleSignature = '';\n } else if (user !== 0) {\n // Signature par défaut\n roleSignature = getRoleSignature(user);\n mailSignature = getMailSignature(user, idTypeBrand);\n horaires = getHoraires(user);\n phoneSignature = getPhoneSignature(user);\n }\n\n // Si on a une société, alors on remplace le lien calendly de base par le lien calendly interne\n // on n'affiche uniquement si le collaboreatur a bien des créneaux horaires\n if (\n society?.id &&\n user?.roles?.some((r: any) =>\n [Role.FRONT_OFFICE, Role.FACTURATION, Role.JURIDIC, Role.COMMERCIAL].includes(r.id),\n ) &&\n user?.usersTimeSlots?.length\n ) {\n const isJuridic = user?.roles?.some((r: any) => [Role.JURIDIC].includes(r.id));\n const isFactu = user?.roles?.some((r: any) => [Role.FACTURATION].includes(r.id));\n const isCommercial = user?.roles?.some((r: any) => [Role.COMMERCIAL].includes(r.id));\n let idType = TimeSlot.BILAN;\n if (isJuridic) idType = TimeSlot.EDIT_SOCIETY;\n if (isFactu) idType = TimeSlot.BILLING;\n if (isCommercial) idType = TimeSlot.SALES;\n const urlApp = getBrandConfig({ objectWaited: 'urlApp' }) as unknown as string;\n user.calendlyUrl = `${urlApp}/appointment?uuid=${society?.externalId ? society.externalId : ''}&idType=${idType}`;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return ejs.render(signatureTemplate, {\n forceRole,\n isFacturation: user.roles ? user.roles.some((r: any) => r.id === Role.FACTURATION) : false,\n isDataOfficer: user.roles ? user.roles.some((r: any) => r.id === Role.DATA_OFFICER) : true,\n brandName,\n brandPostalAddress,\n brandCity,\n idTypeBrand,\n commercialName,\n iban,\n bic,\n hostS3,\n user,\n roleSignature,\n mailSignature,\n phoneSignature: phoneSignature ? phoneSignature.replace(/\\s+/gm, '&nbsp;') : null,\n standardPhoneSignature: standardPhoneSignature.replace(/\\s+/gm, '&nbsp;'),\n horaires,\n primaryColor,\n supportMail,\n });\n}\n"]}
1
+ {"version":3,"file":"email.js","sourceRoot":"","sources":["../../../ts/utils/email.ts"],"names":[],"mappings":"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","sourcesContent":["// import * as dayjs from 'dayjs';\n// import { orderBy as orderByLodash } from 'lodash';\nimport { Role } from '../types/Enum/Role';\nimport { TimeSlot } from '../types/Enum/TimeSlot';\nimport { IUser } from '../types/Interface/models/IUser';\nimport { getBrandConfig } from './brands';\nimport { signatureTemplate } from './email/templates/signature';\nimport { intersection } from './noLodash';\n\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst ejs = require('ejs');\n\nfunction getRoleSignature(user: any) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (user.positionLabel) return user.positionLabel;\n\n const isStagiaireOrAlternant =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n user.roles.map((r: any) => r.id).includes(Role.INTERN) || user.roles.map((r: any) => r.id).includes(Role.ALTERNATE);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isManager = user.roles.map((r: any) => r.id).includes(Role.MANAGER);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isSocial = user.roles.map((r: any) => r.id).includes(Role.SOCIAL);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isJuridic = user.roles.map((r: any) => r.id).includes(Role.JURIDIC);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isFacturation = user.roles.map((r: any) => r.id).includes(Role.FACTURATION);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isExpert = user.roles.map((r: any) => r.id).includes(Role.EXPERT_ACCOUNTANT);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isCS = user.roles.map((r: any) => r.id).includes(Role.CUSTOMER_SUCCESS);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isOnBoarder = user.roles.map((r: any) => r.id).includes(Role.ON_BOARDER);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isSatisfaction = user.roles.map((r: any) => r.id).includes(Role.SATISFACTION);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isDataOfficer = user.roles.map((r: any) => r.id).includes(Role.DATA_OFFICER);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isSales = user.roles.map((r: any) => r.id).includes(Role.COMMERCIAL);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isAdmin = user.roles.map((r: any) => r.id).includes(Role.ADMIN);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isTechnicalAdvisor = user.roles.map((r: any) => r.id).includes(Role.TECHNICAL_ADVISOR);\n\n const isFront = !!intersection(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n user.roles.map((r: any) => r.id),\n [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS],\n ).length;\n\n if (isSales && isManager) {\n return 'Responsable commercial';\n }\n if (isSales) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} de clientèle`;\n }\n\n if (isCS && isManager) {\n return 'Responsable relations clients';\n }\n if (isCS) {\n return `Conseill${user.idCivility === 2 ? 'ère' : 'er'} comptable`;\n }\n\n if (isTechnicalAdvisor) {\n return `Référent${user.idCivility === 2 ? 'e' : ''} technique`;\n }\n\n if (isOnBoarder && isManager) {\n return `Responsable chargé${user.idCivility === 2 ? 'e' : ''} accueil clients`;\n }\n if (isOnBoarder) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} accueil clients`;\n }\n\n if (isSatisfaction && isManager) {\n return `Responsable chargé${user.idCivility === 2 ? 'e' : ''} de la satisfaction clients`;\n }\n if (isSatisfaction) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} de la satisfaction clients`;\n }\n\n if (isDataOfficer && isManager) {\n return 'Responsable aide comptable';\n }\n if (isDataOfficer) {\n return 'Aide comptable';\n }\n\n if (isFacturation && isStagiaireOrAlternant) {\n return 'Assistant facturation';\n }\n if (isFacturation && isManager) {\n return 'Responsable facturation';\n }\n if (isFacturation) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} de facturation`;\n }\n\n if (isJuridic && isStagiaireOrAlternant) {\n return 'Assistant juridique';\n }\n if (isJuridic && isManager) {\n return 'Responsable juridique';\n }\n if (isJuridic) {\n return 'Juriste';\n }\n\n if (isSocial && isStagiaireOrAlternant) {\n return 'Assistant paie';\n }\n if (isSocial && isManager) {\n return 'Responsable paie';\n }\n if (isSocial) {\n return 'Gestionnaire de paie';\n }\n\n if (isExpert) {\n return `Expert${user.idCivility === 2 ? 'e' : ''}-comptable`;\n }\n\n if (isAdmin) {\n return 'Développeur web';\n }\n\n if (isFront && isManager) return 'Responsable comptable';\n if (isFront && isStagiaireOrAlternant) return 'Assistant comptable';\n // if (isFront) return `Comptable dédié${user.idCivility === 2 ? 'e' : ''}`;\n // return `Comptable dédié${user.idCivility === 2 ? 'e' : ''}`;\n // if (isFront) return `Comptable`;\n return 'Comptable';\n}\n\nexport function getHoraires(user: IUser) {\n // On affiche les horaires uniquement pour les front, et pas pour les TVA\n\n // if (\n // isItThisEnv('Pourcentage') &&\n // user?.entity &&\n // [EntityType.COMPTALIB, EntityType.AMEX, EntityType.CABINET_RONCHIERI_LANDRA].includes(user.entity)\n // ) {\n // return 'Du lundi au vendredi de 9h à 18h';\n // }\n\n return 'Du lundi au vendredi de 9h à 18h';\n\n // if (!intersection([user.roles.map((r: any) => r.id), [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS, Role.COMMERCIAL]]).length) return 'Du lundi au vendredi de 9h à 18h';\n\n // if (!user.workingSchedules.length) return 'Du lundi au vendredi de 9h à 18h';\n\n // let reducedSchedules = user.workingSchedules.reduce((acc: any, e:any, index: number) => {\n // const name = `${dayjs(e.morningStart, 'HH:mm:ss').format('HH:mm')}-${dayjs(e.afternoonEnd || e.morningEnd, 'HH:mm:ss').format('HH:mm')}`;\n // if (!acc[name]) acc[name] = [index];\n // else acc[name].push(index);\n // return acc;\n // }, {});\n\n // reducedSchedules = orderByLodash(reducedSchedules, (elem) => elem.length, ['desc']);\n\n // let resultHoraire = '';\n // let startH;\n // let startM;\n // let endH;\n // let endM;\n // let firstDayOfWeek;\n // let lastDayOfWeek;\n\n // reducedSchedules.forEach((schedule: any, index: number) => {\n // startH = dayjs(user.workingSchedules[schedule[0]].morningStart ? user.workingSchedules[schedule[0]].morningStart : user.workingSchedules[schedule[0]].afternoonStart, 'HH:mm:ss').get('hour');\n // startM = dayjs(user.workingSchedules[schedule[0]].morningStart ? user.workingSchedules[schedule[0]].morningStart : user.workingSchedules[schedule[0]].afternoonStart, 'HH:mm:ss').get('minute');\n // endH = dayjs(user.workingSchedules[schedule[0]].afternoonEnd || user.workingSchedules[schedule[0]].morningEnd, 'HH:mm:ss').get('hour');\n // endM = dayjs(user.workingSchedules[schedule[0]].afternoonEnd || user.workingSchedules[schedule[0]].morningEnd, 'HH:mm:ss').get('minute');\n // firstDayOfWeek = dayjs().locale('fr').day(user.workingSchedules[schedule[0]].idDay).format('dddd');\n // if (!index) {\n // // pour le premier index, on affiche l'amplitude horaire la plus commune, du XX au XX de Xh à Xh\n // lastDayOfWeek = dayjs().locale('fr').day(user.workingSchedules[user.workingSchedules.length - 1].idDay).format('dddd');\n // resultHoraire += `Du ${firstDayOfWeek} au ${lastDayOfWeek} de ${startH}h${startM > 0 ? startM : ''} à ${endH}h${endM > 0 ? endM : ''}`;\n // } else { // Fonctionnel si uniquement un jour par semaine avec des horaires différents\n // resultHoraire += `<br/>Le ${firstDayOfWeek} de ${startH}h${startM > 0 ? startM : ''} à ${endH}h${endM > 0 ? endM : ''}`;\n // }\n // });\n // return resultHoraire;\n}\n\nfunction getMailSignature(user: any, idTypeBrand: number) {\n const informatiqueMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.informatique',\n }) as unknown as string;\n const bonjourMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.bonjour',\n }) as unknown as string;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (user.roles.map((r: any) => r.id).includes(Role.ADMIN)) {\n return informatiqueMail;\n }\n\n if (\n user &&\n !!intersection(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n user.roles.map((r: any) => r.id),\n [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS, Role.DATA_OFFICER, Role.COMMERCIAL, Role.TECHNICAL_ADVISOR],\n ).length\n )\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return user.email;\n return bonjourMail;\n}\n\nfunction getPhoneSignature(user: any) {\n if (user.phone && user.phone !== '0383931414') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return user.phone.replace(/\\B(?=(\\d{2})+(?!\\d))/g, '&nbsp;');\n }\n return null;\n}\n\nexport function generateSignature(params: any): string {\n const { fromAddress = null, idTypeBrand = 1, society, ...otherParams } = params;\n let { user, forceRole = null } = otherParams;\n\n const hostS3 = getBrandConfig({\n idTypeBrand,\n objectWaited: 'urlS3',\n });\n\n const brandName = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'name',\n }) as unknown as string;\n const brandPostalAddress = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'companyInformation.postalAddress',\n }) as unknown as string;\n const brandCity = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'companyInformation.city',\n }) as unknown as string;\n const commercialName = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'commercialName',\n }) as unknown as string;\n const iban = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'bank.IBAN',\n }) as unknown as string;\n const bic = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'bank.BIC',\n }) as unknown as string;\n const bonjourMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.bonjour',\n }) as unknown as string;\n const socialMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.social',\n }) as unknown as string;\n const dataOfficerMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.gestion',\n }) as unknown as string;\n const satisfactionMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.satisfaction',\n }) as unknown as string;\n const resiliationMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.resiliation',\n }) as unknown as string;\n const supportMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.support',\n }) as unknown as string;\n const juridiqueMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.juridique',\n }) as unknown as string;\n const facturationMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.facturation',\n }) as unknown as string;\n const primaryColor = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'colors.primary',\n }) as unknown as string;\n const standardPhoneSignature = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listPhones.contact',\n }) as unknown as string;\n const juridiquePhoneSignature = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listPhones.juridique',\n }) as unknown as string;\n const socialPhoneSignature = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listPhones.social',\n }) as unknown as string;\n\n // Pour les cas hybrides des personnes ayant plusieurs rôles\n // Comme Morgane (Facturation + Satisfaction) et qui peut choisir plusieurs emails d'expédition\n // Il faut que la signature corresponde à l'adresse d'expédition\n // donc actuellement, on ne gère que satisfaction/resiliation/facturation\n const listGenericEmails: { email: string; forceRole: string }[] = [\n { email: satisfactionMail, forceRole: 'satisfaction' },\n { email: resiliationMail, forceRole: 'resiliation' },\n { email: facturationMail, forceRole: 'facturation' },\n ];\n const genericEmailUsed = listGenericEmails.find((e) => e.email === fromAddress);\n if (genericEmailUsed) {\n forceRole = genericEmailUsed.forceRole;\n }\n\n let roleSignature: string | null;\n let mailSignature: string | null;\n let phoneSignature: string | null;\n let horaires: string | null;\n [roleSignature, mailSignature, phoneSignature, horaires] = [\n 'Expert-Comptable',\n bonjourMail,\n null,\n 'Du lundi au vendredi de 9h à 18h',\n ];\n\n if (user?.roles && user.roles.some((r: any) => r.id === Role.DATA_OFFICER)) {\n // Signature data_officer\n user = {\n firstname: `L'équipe ${commercialName}`,\n isAll: true,\n };\n mailSignature = dataOfficerMail;\n roleSignature = '';\n } else if (\n intersection(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n (user?.roles ?? []).map((r: any) => r.id),\n [Role.FRONT_OFFICE, Role.SENIOR],\n ).length === 2\n ) {\n // Signature front senior\n user = {\n firstname: `L'équipe ${commercialName}`,\n isAll: true,\n };\n mailSignature = bonjourMail;\n roleSignature = '';\n } else if (forceRole === 'satisfaction') {\n // Signature satisfaction\n user = {\n firstname: 'Service satisfaction clients',\n isAll: true,\n };\n mailSignature = satisfactionMail;\n roleSignature = '';\n phoneSignature = standardPhoneSignature;\n } else if (forceRole === 'resiliation') {\n // Signature resiliation\n user = {\n firstname: 'Service satisfaction clients',\n isAll: true,\n };\n mailSignature = resiliationMail;\n roleSignature = '';\n phoneSignature = standardPhoneSignature;\n } else if (forceRole === 'social') {\n // Signature social\n user = {\n firstname: 'Service social',\n isAll: true,\n };\n mailSignature = socialMail;\n roleSignature = '';\n phoneSignature = socialPhoneSignature;\n } else if (forceRole === 'support') {\n // Signature support\n user = {\n firstname: 'Service Support',\n isAll: true,\n };\n mailSignature = supportMail;\n roleSignature = null;\n } else if (forceRole === 'juridique') {\n // Signature juridique\n user = {\n firstname: 'Service juridique',\n isAll: true,\n };\n mailSignature = juridiqueMail;\n roleSignature = null;\n phoneSignature = juridiquePhoneSignature;\n } else if (forceRole === 'facturation') {\n // Signature facturation\n user = {\n firstname: 'Service facturation',\n isAll: true,\n };\n mailSignature = facturationMail;\n roleSignature = null;\n phoneSignature = standardPhoneSignature;\n } else if (!user || forceRole === 'generique') {\n // Signature Clementine\n user = {\n firstname: `L'équipe ${commercialName}`,\n isAll: true,\n };\n roleSignature = '';\n } else if (user !== 0) {\n // Signature par défaut\n roleSignature = getRoleSignature(user);\n mailSignature = getMailSignature(user, idTypeBrand);\n horaires = getHoraires(user);\n phoneSignature = getPhoneSignature(user);\n }\n\n // Si on a une société, alors on remplace le lien calendly de base par le lien calendly interne\n // on n'affiche uniquement si le collaboreatur a bien des créneaux horaires\n if (\n society?.id &&\n user?.roles?.some((r: any) =>\n [Role.FRONT_OFFICE, Role.FACTURATION, Role.JURIDIC, Role.COMMERCIAL].includes(r.id),\n ) &&\n user?.usersTimeSlots?.length\n ) {\n const isJuridic = user?.roles?.some((r: any) => [Role.JURIDIC].includes(r.id));\n const isFactu = user?.roles?.some((r: any) => [Role.FACTURATION].includes(r.id));\n const isCommercial = user?.roles?.some((r: any) => [Role.COMMERCIAL].includes(r.id));\n let idType = TimeSlot.BILAN;\n if (isJuridic) idType = TimeSlot.EDIT_SOCIETY;\n if (isFactu) idType = TimeSlot.BILLING;\n if (isCommercial) idType = TimeSlot.SALES;\n const urlApp = getBrandConfig({ objectWaited: 'urlApp' }) as unknown as string;\n user.calendlyUrl = `${urlApp}/appointment?uuid=${society?.externalId ? society.externalId : ''}&idType=${idType}`;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return ejs.render(signatureTemplate, {\n forceRole,\n isFacturation: user.roles ? user.roles.some((r: any) => r.id === Role.FACTURATION) : false,\n isDataOfficer: user.roles ? user.roles.some((r: any) => r.id === Role.DATA_OFFICER) : true,\n brandName,\n brandPostalAddress,\n brandCity,\n idTypeBrand,\n commercialName,\n iban,\n bic,\n hostS3,\n user,\n roleSignature,\n mailSignature,\n phoneSignature: phoneSignature ? phoneSignature.replace(/\\s+/gm, '&nbsp;') : null,\n standardPhoneSignature: standardPhoneSignature.replace(/\\s+/gm, '&nbsp;'),\n horaires,\n primaryColor,\n supportMail,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../../ts/utils/vat/registration.ts"],"names":[],"mappings":"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","sourcesContent":["import * as dayjs from 'dayjs';\nimport { isDefined } from 'class-validator';\nimport { reverse, sumBy } from 'lodash';\nimport {\n AnyCerfa3310_Century,\n Cerfa2571_2023,\n Cerfa2573_2024,\n Cerfa3514_2022,\n CerfaType,\n CustomerVatType,\n IRegistration,\n InterchangeHistory,\n ReadDeclaration,\n ReadRegistration,\n ReadRegistrationTick,\n RegistrationState,\n RegistrationTickState,\n TaxType,\n} from '../../types';\nimport { AnyCerfa3517Century } from '../../types/Interface/api/cerfa/3517';\n\nconst waitingState: ReadRegistrationTick = {\n state: RegistrationTickState.IN_PROGRESS,\n title: 'En cours de traitement',\n details: [],\n date: null,\n isPayment: false,\n};\n\nexport function getTicks(registration: ReadRegistration): ReadRegistrationTick[][] {\n const declarations: Array<ReadDeclaration> = registration.response?.declarations ?? [];\n const history: InterchangeHistory[] = registration.response?.history;\n\n if (registration.state === RegistrationState.IN_PROGRESS) {\n const data: ReadRegistrationTick[][] = [];\n\n declarations.forEach((declaration) => {\n const result = [\n {\n type:\n isDefined(declaration?.type) && isDefined(declaration?.declarationType?.label)\n ? `${declaration?.type} - ${declaration?.declarationType?.label}`\n : null,\n state: RegistrationTickState.FINISHED,\n title: 'Déclaration envoyée',\n details: [],\n date: registration.sendAt ? dayjs(registration.sendAt).toISOString() : null,\n isPayment: false,\n },\n waitingState,\n waitingState,\n waitingState,\n ];\n\n if (registration.amountToPay && registration.amountToPay > 0) {\n result.push({\n ...waitingState,\n isPayment: true,\n });\n }\n\n data.push(result);\n });\n\n return data;\n }\n if ([RegistrationState.ACCEPTED, RegistrationState.REFUSED].includes(registration.state)) {\n const data: ReadRegistrationTick[][] = [];\n\n if (!declarations.length) {\n const response: ReadRegistrationTick[] = [\n {\n type: null,\n state: RegistrationTickState.FINISHED,\n title: 'Déclaration envoyée',\n date: registration.sendAt ? dayjs(registration.sendAt).toISOString() : null,\n details: [],\n },\n {\n state: RegistrationTickState.FAILED,\n title: history?.find((h) => h.isError)?.label ?? '',\n details: history?.find((h) => h.isError)?.stateDetailsHistory ?? [],\n date: history?.find((h) => h.isError)?.date ?? null,\n },\n waitingState,\n waitingState,\n ];\n\n if (registration.amountToPay && registration.amountToPay > 0) {\n response.push({\n ...waitingState,\n isPayment: true,\n });\n }\n\n data.push(response);\n }\n\n declarations.forEach((declaration) => {\n const response: ReadRegistrationTick[] = [\n {\n type:\n isDefined(declaration?.type) && isDefined(declaration?.declarationType?.label)\n ? `${declaration?.type} - ${declaration?.declarationType?.label}`\n : null,\n state: RegistrationTickState.FINISHED,\n title: 'Déclaration envoyée',\n date: registration.sendAt ? dayjs(registration.sendAt).toISOString() : null,\n details: [],\n },\n ...reverse(declaration.states).map((d: InterchangeHistory) => ({\n state: d.isError ? RegistrationTickState.FAILED : RegistrationTickState.FINISHED,\n title: d.label ?? null,\n details: d?.stateDetailsHistory,\n date: d.date ?? null,\n })),\n ];\n\n for (let index = declaration.states.length; index < 3; index += 1) {\n response.push({ ...waitingState, title: null });\n }\n\n if (isDefined(declaration.payment)) {\n response.push({\n state: declaration.payment.isError\n ? RegistrationTickState.FAILED\n : declaration.payment.isError === null\n ? RegistrationTickState.IN_PROGRESS\n : RegistrationTickState.FINISHED,\n title: declaration.payment?.label ?? '',\n details: [],\n isPayment: true,\n date: declaration.payment.date ?? null,\n });\n }\n data.push(response);\n });\n\n return data;\n }\n\n return [];\n}\n\nexport function getTypeAndAmountFromRegistration(registration: IRegistration): {\n type: CustomerVatType | null;\n amount: number | null;\n collectable: number;\n deductible: number;\n amountBase?: number;\n regulationAdd?: number;\n regulationDeduct?: number;\n reportFromPrevious?: number;\n} {\n if (registration.idCerfaType === CerfaType.CERFA_3310) {\n const payload = registration.payload.cerfa3310 as AnyCerfa3310_Century;\n const other = {\n collectable: payload.vat?.grossDue,\n deductible: payload.vat?.deductible.total,\n regulationAdd: payload.vat?.sumToAdd,\n regulationDeduct: payload.vat?.deductible?.toImpute,\n reportFromPrevious: payload.vat?.deductible?.report,\n };\n if (payload?.isNil) return { type: CustomerVatType.VAT_TO_NIL, amount: 0, ...other };\n if (payload?.toPay?.total > 0) return { type: CustomerVatType.VAT_TO_PAY, amount: payload.toPay.total, ...other };\n if (payload?.credit?.refundAsked > 0)\n return { type: CustomerVatType.VAT_REFUND, amount: payload.credit.refundAsked, ...other };\n if (payload?.credit?.toReport > 0)\n return { type: CustomerVatType.VAT_REPORT, amount: payload.credit.toReport, ...other };\n return { type: CustomerVatType.VAT_TO_PAY, amount: 0, ...other };\n }\n if (registration.idCerfaType === CerfaType.CERFA_3514) {\n const payload = registration.payload.cerfa3514 as Cerfa3514_2022;\n const other = { collectable: payload.vatAmountCollected, deductible: payload.vatAmountDeductible };\n if (payload?.vatAmountToPay > 0)\n return { type: CustomerVatType.VAT_TO_PAY, amount: payload.vatAmountToPay, ...other };\n if (payload?.vatRefundedOnInvests)\n return { type: CustomerVatType.VAT_REFUND, amount: payload.vatRefundedOnInvests, ...other };\n return { type: CustomerVatType.VAT_TO_PAY, amount: 0, ...other };\n }\n if (registration.idCerfaType === CerfaType.CERFA_3517) {\n const payload = registration.payload.cerfa3517 as AnyCerfa3517Century;\n const other = {\n collectable: payload.other.total,\n deductible: payload.deductible.total,\n amountBase: payload?.total,\n };\n if (payload?.isNil) return { type: CustomerVatType.VAT_TO_NIL, amount: 0, ...other };\n if (payload?.recapitulation?.toPay > 0)\n return { type: CustomerVatType.VAT_TO_PAY, amount: payload?.recapitulation?.toPay, ...other };\n if (payload?.recapitulation?.refund > 0)\n return { type: CustomerVatType.VAT_REFUND, amount: payload?.recapitulation?.refund, ...other };\n if (payload?.recapitulation?.creditToReport > 0 || payload?.recapitulation?.imputedCredit > 0)\n return {\n type: CustomerVatType.VAT_REPORT,\n amount: payload?.recapitulation?.creditToReport ?? payload?.recapitulation?.imputedCredit,\n ...other,\n };\n return { type: CustomerVatType.VAT_TO_PAY, amount: 0, ...other };\n }\n if (\n [\n CerfaType.CERFA_2571_2023_A,\n CerfaType.CERFA_2571_2023_B,\n CerfaType.CERFA_2571_2023_C,\n CerfaType.CERFA_2571_2023_D,\n ].includes(registration.idCerfaType)\n ) {\n const payload = registration.payload.cerfa2571 as Cerfa2571_2023;\n\n if (registration.customerIsRegime?.type === TaxType.TO_PAY) {\n return {\n type: CustomerVatType.VAT_TO_PAY,\n amount: payload.companyTax.toPay.total,\n collectable: 0,\n deductible: 0,\n };\n } else if (registration.customerIsRegime?.type === TaxType.REFUND) {\n return {\n type: CustomerVatType.VAT_REFUND,\n amount: registration.customerIsRegime?.amount,\n collectable: 0,\n deductible: 0,\n };\n } else if (registration.customerIsRegime?.type === TaxType.REPORTABLE) {\n return {\n type: CustomerVatType.VAT_REPORT,\n amount: registration.customerIsRegime?.amount,\n collectable: 0,\n deductible: 0,\n };\n }\n\n return { type: CustomerVatType.VAT_TO_PAY, amount: payload.companyTax.toPay.total, collectable: 0, deductible: 0 };\n }\n if ([CerfaType.CERFA_2573].includes(registration.idCerfaType)) {\n const payload = registration.payload?.cerfa2573 as Cerfa2573_2024;\n return {\n type: CustomerVatType.VAT_REFUND,\n amount: sumBy(payload?.refunds ?? [], (r) => r?.amount ?? 0),\n collectable: 0,\n deductible: 0,\n };\n }\n\n return {\n type: null,\n amount: null,\n collectable: 0,\n deductible: 0,\n };\n}\n"]}
1
+ {"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../../ts/utils/vat/registration.ts"],"names":[],"mappings":"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","sourcesContent":["import * as dayjs from 'dayjs';\nimport { isDefined } from 'class-validator';\nimport { reverse, sumBy } from 'lodash';\nimport {\n AnyCerfa2571Century,\n AnyCerfa3310_Century,\n Cerfa2573_2024,\n Cerfa3514_2022,\n CerfaType,\n CustomerVatType,\n IRegistration,\n InterchangeHistory,\n ReadDeclaration,\n ReadRegistration,\n ReadRegistrationTick,\n RegistrationState,\n RegistrationTickState,\n TaxType,\n} from '../../types';\nimport { AnyCerfa3517Century } from '../../types/Interface/api/cerfa/3517';\n\nconst waitingState: ReadRegistrationTick = {\n state: RegistrationTickState.IN_PROGRESS,\n title: 'En cours de traitement',\n details: [],\n date: null,\n isPayment: false,\n};\n\nexport function getTicks(registration: ReadRegistration): ReadRegistrationTick[][] {\n const declarations: Array<ReadDeclaration> = registration.response?.declarations ?? [];\n const history: InterchangeHistory[] = registration.response?.history;\n\n if (registration.state === RegistrationState.IN_PROGRESS) {\n const data: ReadRegistrationTick[][] = [];\n\n declarations.forEach((declaration) => {\n const result = [\n {\n type:\n isDefined(declaration?.type) && isDefined(declaration?.declarationType?.label)\n ? `${declaration?.type} - ${declaration?.declarationType?.label}`\n : null,\n state: RegistrationTickState.FINISHED,\n title: 'Déclaration envoyée',\n details: [],\n date: registration.sendAt ? dayjs(registration.sendAt).toISOString() : null,\n isPayment: false,\n },\n waitingState,\n waitingState,\n waitingState,\n ];\n\n if (registration.amountToPay && registration.amountToPay > 0) {\n result.push({\n ...waitingState,\n isPayment: true,\n });\n }\n\n data.push(result);\n });\n\n return data;\n }\n if ([RegistrationState.ACCEPTED, RegistrationState.REFUSED].includes(registration.state)) {\n const data: ReadRegistrationTick[][] = [];\n\n if (!declarations.length) {\n const response: ReadRegistrationTick[] = [\n {\n type: null,\n state: RegistrationTickState.FINISHED,\n title: 'Déclaration envoyée',\n date: registration.sendAt ? dayjs(registration.sendAt).toISOString() : null,\n details: [],\n },\n {\n state: RegistrationTickState.FAILED,\n title: history?.find((h) => h.isError)?.label ?? '',\n details: history?.find((h) => h.isError)?.stateDetailsHistory ?? [],\n date: history?.find((h) => h.isError)?.date ?? null,\n },\n waitingState,\n waitingState,\n ];\n\n if (registration.amountToPay && registration.amountToPay > 0) {\n response.push({\n ...waitingState,\n isPayment: true,\n });\n }\n\n data.push(response);\n }\n\n declarations.forEach((declaration) => {\n const response: ReadRegistrationTick[] = [\n {\n type:\n isDefined(declaration?.type) && isDefined(declaration?.declarationType?.label)\n ? `${declaration?.type} - ${declaration?.declarationType?.label}`\n : null,\n state: RegistrationTickState.FINISHED,\n title: 'Déclaration envoyée',\n date: registration.sendAt ? dayjs(registration.sendAt).toISOString() : null,\n details: [],\n },\n ...reverse(declaration.states).map((d: InterchangeHistory) => ({\n state: d.isError ? RegistrationTickState.FAILED : RegistrationTickState.FINISHED,\n title: d.label ?? null,\n details: d?.stateDetailsHistory,\n date: d.date ?? null,\n })),\n ];\n\n for (let index = declaration.states.length; index < 3; index += 1) {\n response.push({ ...waitingState, title: null });\n }\n\n if (isDefined(declaration.payment)) {\n response.push({\n state: declaration.payment.isError\n ? RegistrationTickState.FAILED\n : declaration.payment.isError === null\n ? RegistrationTickState.IN_PROGRESS\n : RegistrationTickState.FINISHED,\n title: declaration.payment?.label ?? '',\n details: [],\n isPayment: true,\n date: declaration.payment.date ?? null,\n });\n }\n data.push(response);\n });\n\n return data;\n }\n\n return [];\n}\n\nexport function getTypeAndAmountFromRegistration(registration: IRegistration): {\n type: CustomerVatType | null;\n amount: number | null;\n collectable: number;\n deductible: number;\n amountBase?: number;\n regulationAdd?: number;\n regulationDeduct?: number;\n reportFromPrevious?: number;\n} {\n if (registration.idCerfaType === CerfaType.CERFA_3310) {\n const payload = registration.payload.cerfa3310 as AnyCerfa3310_Century;\n const other = {\n collectable: payload.vat?.grossDue,\n deductible: payload.vat?.deductible.total,\n regulationAdd: payload.vat?.sumToAdd,\n regulationDeduct: payload.vat?.deductible?.toImpute,\n reportFromPrevious: payload.vat?.deductible?.report,\n };\n if (payload?.isNil) return { type: CustomerVatType.VAT_TO_NIL, amount: 0, ...other };\n if (payload?.toPay?.total > 0) return { type: CustomerVatType.VAT_TO_PAY, amount: payload.toPay.total, ...other };\n if (payload?.credit?.refundAsked > 0)\n return { type: CustomerVatType.VAT_REFUND, amount: payload.credit.refundAsked, ...other };\n if (payload?.credit?.toReport > 0)\n return { type: CustomerVatType.VAT_REPORT, amount: payload.credit.toReport, ...other };\n return { type: CustomerVatType.VAT_TO_PAY, amount: 0, ...other };\n }\n if (registration.idCerfaType === CerfaType.CERFA_3514) {\n const payload = registration.payload.cerfa3514 as Cerfa3514_2022;\n const other = { collectable: payload.vatAmountCollected, deductible: payload.vatAmountDeductible };\n if (payload?.vatAmountToPay > 0)\n return { type: CustomerVatType.VAT_TO_PAY, amount: payload.vatAmountToPay, ...other };\n if (payload?.vatRefundedOnInvests)\n return { type: CustomerVatType.VAT_REFUND, amount: payload.vatRefundedOnInvests, ...other };\n return { type: CustomerVatType.VAT_TO_PAY, amount: 0, ...other };\n }\n if (registration.idCerfaType === CerfaType.CERFA_3517) {\n const payload = registration.payload.cerfa3517 as AnyCerfa3517Century;\n const other = {\n collectable: payload.other.total,\n deductible: payload.deductible.total,\n amountBase: payload?.total,\n };\n if (payload?.isNil) return { type: CustomerVatType.VAT_TO_NIL, amount: 0, ...other };\n if (payload?.recapitulation?.toPay > 0)\n return { type: CustomerVatType.VAT_TO_PAY, amount: payload?.recapitulation?.toPay, ...other };\n if (payload?.recapitulation?.refund > 0)\n return { type: CustomerVatType.VAT_REFUND, amount: payload?.recapitulation?.refund, ...other };\n if (payload?.recapitulation?.creditToReport > 0 || payload?.recapitulation?.imputedCredit > 0)\n return {\n type: CustomerVatType.VAT_REPORT,\n amount: payload?.recapitulation?.creditToReport ?? payload?.recapitulation?.imputedCredit,\n ...other,\n };\n return { type: CustomerVatType.VAT_TO_PAY, amount: 0, ...other };\n }\n if (\n [\n CerfaType.CERFA_2571_2023_A,\n CerfaType.CERFA_2571_2023_B,\n CerfaType.CERFA_2571_2023_C,\n CerfaType.CERFA_2571_2023_D,\n ].includes(registration.idCerfaType)\n ) {\n const payload = registration.payload.cerfa2571 as AnyCerfa2571Century;\n\n if (registration.customerIsRegime?.type === TaxType.TO_PAY) {\n return {\n type: CustomerVatType.VAT_TO_PAY,\n amount: payload.companyTax.toPay.total,\n collectable: 0,\n deductible: 0,\n };\n } else if (registration.customerIsRegime?.type === TaxType.REFUND) {\n return {\n type: CustomerVatType.VAT_REFUND,\n amount: registration.customerIsRegime?.amount,\n collectable: 0,\n deductible: 0,\n };\n } else if (registration.customerIsRegime?.type === TaxType.REPORTABLE) {\n return {\n type: CustomerVatType.VAT_REPORT,\n amount: registration.customerIsRegime?.amount,\n collectable: 0,\n deductible: 0,\n };\n }\n\n return { type: CustomerVatType.VAT_TO_PAY, amount: payload.companyTax.toPay.total, collectable: 0, deductible: 0 };\n }\n if ([CerfaType.CERFA_2573].includes(registration.idCerfaType)) {\n const payload = registration.payload?.cerfa2573 as Cerfa2573_2024;\n return {\n type: CustomerVatType.VAT_REFUND,\n amount: sumBy(payload?.refunds ?? [], (r) => r?.amount ?? 0),\n collectable: 0,\n deductible: 0,\n };\n }\n\n return {\n type: null,\n amount: null,\n collectable: 0,\n deductible: 0,\n };\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silexpert/core",
3
- "version": "1.3.202",
3
+ "version": "1.3.203-is-0",
4
4
  "description": "Silex Core perform HTTP Request and object binding. Silex core helps developers to retrieve and return formatted object",
5
5
  "homepage": "https://gitlab.compta-clementine.fr/dev/silex-api",
6
6
  "main": "dist/cjs/index.js",
@@ -0,0 +1,8 @@
1
+ import { QueryDirectoryLine, ReadDirectoryLine } from '../../types';
2
+ import { Resource } from '../Resource';
3
+
4
+ export class Docoon extends Resource {
5
+ getDirectoryLine(params: QueryDirectoryLine): Promise<ReadDirectoryLine> {
6
+ return this.axios.$get('/docoon/directory-line', { params });
7
+ }
8
+ }
@@ -22,7 +22,7 @@ export class InternalInvoicing extends Resource {
22
22
  regenerate(params: RegenerateInternalInvoicing): Promise<number> {
23
23
  return this.axios.$post('/internalInvoicing/regenerate', params);
24
24
  }
25
- generateCutOff(type: number): Promise<boolean> {
25
+ generateCutOff(type: number, date?: string): Promise<boolean> {
26
26
  switch (type) {
27
27
  case 1:
28
28
  return this.axios.$post('/internalInvoicing/cutOff/PCA', {});
@@ -34,6 +34,10 @@ export class InternalInvoicing extends Resource {
34
34
  return this.axios.$post('/internalInvoicing/cutOff/PCA-accounting-package', {});
35
35
  case 9:
36
36
  return this.axios.$post('/internalInvoicing/cutOff/AAE-detail', {});
37
+ case 10:
38
+ return this.axios.$post('/internalInvoicing/cutOff/extourne-pca-comptable-production', { date });
39
+ case 11:
40
+ return this.axios.$post('/internalInvoicing/cutOff/society-approvals-docs-completed', { date });
37
41
  default:
38
42
  return this.axios.$post('/internalInvoicing/cutOff/PCA', {});
39
43
  }
@@ -36,6 +36,10 @@ export class WorkingSchedule extends Resource {
36
36
  return this.axios.$get(`workingSchedule/${id}`);
37
37
  }
38
38
 
39
+ getAll(): Promise<ReadWorkingSchedule[]> {
40
+ return this.axios.$get('workingSchedule/all');
41
+ }
42
+
39
43
  getAvailableTimeSlots(params: QueryAvailableTimeSlot): Promise<TimeSlots[]> {
40
44
  return this.axios.$get('workingSchedule/available-time-slots', {
41
45
  params,
@@ -190,6 +190,7 @@ import { InformationRequest } from './resources/InformationRequest';
190
190
  import { AutomaticRegistration } from './resources/AutomaticRegistration';
191
191
  import { LoginApproval } from './resources/LoginApproval';
192
192
  import { SocietyApproval } from './resources/SocietyApproval';
193
+ import { Docoon } from './resources/Docoon';
193
194
 
194
195
  export const resources = {
195
196
  budgetInsight: BudgetInsight,
@@ -384,4 +385,5 @@ export const resources = {
384
385
  automaticRegistration: AutomaticRegistration,
385
386
  loginApproval: LoginApproval,
386
387
  societyApproval: SocietyApproval,
388
+ docoon: Docoon,
387
389
  };
@@ -0,0 +1,51 @@
1
+ export enum AnalyticsUtmSituation {
2
+ COMPANY_ALREADY_ESTABLISHED = 1,
3
+ COMPANY_CREATION = 2,
4
+ }
5
+
6
+ export enum AnalyticsUtmServiceSought {
7
+ OVERDUE_ACCOUNTING = 1,
8
+ ACCOUNTING_MANAGEMENT_TOOL = 2,
9
+ ACOUNTING_EXPERTISE = 3,
10
+ LEGAL_ADVICE = 4,
11
+ PAYROLL_MANAGEMENT_AND_SOCIAL = 5,
12
+ OTHER = 6,
13
+ }
14
+
15
+ export const AnalyticsUtmSituationDetails = {
16
+ COMPANY_ALREADY_ESTABLISHED: {
17
+ id: AnalyticsUtmSituation.COMPANY_ALREADY_ESTABLISHED,
18
+ label: 'Ma société est déjà créée',
19
+ },
20
+ COMPANY_CREATION: {
21
+ id: AnalyticsUtmSituation.COMPANY_CREATION,
22
+ label: 'Je souhaite créer ma société',
23
+ },
24
+ } as const;
25
+
26
+ export const AnalyticsUtmServiceSoughtDetails = {
27
+ OVERDUE_ACCOUNTING: {
28
+ id: AnalyticsUtmServiceSought.OVERDUE_ACCOUNTING,
29
+ label: 'Comptabilité en retard',
30
+ },
31
+ ACCOUNTING_MANAGEMENT_TOOL: {
32
+ id: AnalyticsUtmServiceSought.ACCOUNTING_MANAGEMENT_TOOL,
33
+ label: 'Outil gestion comptable (factures, devis, TVA, bilan)',
34
+ },
35
+ ACOUNTING_EXPERTISE: {
36
+ id: AnalyticsUtmServiceSought.ACOUNTING_EXPERTISE,
37
+ label: 'Expertise comptable (accompagnement et conseils)',
38
+ },
39
+ LEGAL_ADVICE: {
40
+ id: AnalyticsUtmServiceSought.LEGAL_ADVICE,
41
+ label: 'Juridique & conseils',
42
+ },
43
+ PAYROLL_MANAGEMENT_AND_SOCIAL: {
44
+ id: AnalyticsUtmServiceSought.PAYROLL_MANAGEMENT_AND_SOCIAL,
45
+ label: 'Gestion de la paie et déclarations sociales',
46
+ },
47
+ OTHER: {
48
+ id: AnalyticsUtmServiceSought.OTHER,
49
+ label: 'Autres',
50
+ },
51
+ } as const;
@@ -941,7 +941,7 @@ export const BALANCE_SHEET_LIST_PASSIVE: BalanceSheetList = [
941
941
  accounts: ['4191'],
942
942
  isSubcategory: true,
943
943
  total: 0,
944
- type: 'passive',
944
+ // type: 'passive', Demandé par Angelo
945
945
  accountsDescription: [],
946
946
  },
947
947
  {
@@ -976,7 +976,7 @@ export const BALANCE_SHEET_LIST_PASSIVE: BalanceSheetList = [
976
976
  {
977
977
  name: BalanceSheetPassiveLabel.AUTRES_DETTES,
978
978
  key: 'OtherDebts',
979
- accounts: ['4196', '4197', '4198', '464', '467', '468', '478', '509', '457'],
979
+ accounts: ['4196', '4197', '4198', '464', '467', '468', '478', '509', '457', '4181'],
980
980
  // PASSIF Autres = lorsque l'entreprise doit de l'argent au client = somme débit > crédit (modifié)
981
981
  idThirdPartyTypeToAdd: [ThirdPartyType.CUSTOMER, MathematicalSign.LESS],
982
982
  isSubcategory: true,
@@ -3440,7 +3440,7 @@ export const PrestationDetail: PrestationDetailEnum = {
3440
3440
  },
3441
3441
  ASSURANCE_CONTROLE_FISCAL: {
3442
3442
  id: 211,
3443
- name: 'Assurance contrôle fiscal',
3443
+ name: 'Assistance contrôle fiscal',
3444
3444
  isComptable: true,
3445
3445
  isJuridique: false,
3446
3446
  isSocial: false,
@@ -25,4 +25,9 @@ export class QueryCronCards {
25
25
  @IsOptional()
26
26
  @IsInt()
27
27
  declare idSociety?: number;
28
+
29
+ @ApiPropertyOptional()
30
+ @IsOptional()
31
+ @IsInt()
32
+ declare limit?: number;
28
33
  }
@@ -35,59 +35,6 @@ type BaseRateAndAmount = {
35
35
  amount: number;
36
36
  };
37
37
 
38
- export class Cerfa2571_2023 {
39
- siren: string;
40
- exercice: Exercice;
41
- society: Society;
42
- companyTax: {
43
- imputations: {
44
- default: number;
45
- job: number;
46
- deficit: number;
47
- corse: number;
48
- search: number;
49
- patronage: number;
50
- outerSea: number;
51
- collaborativeSearch: number;
52
- overage: number;
53
- };
54
- toPay: {
55
- default: number;
56
- rent: number;
57
- social: number;
58
- tax: number;
59
- capitalGain: number;
60
- total: number;
61
- };
62
- reductions: {
63
- hasDefault: boolean;
64
- hasSocial: boolean;
65
- };
66
- };
67
- payment: Payment;
68
- administration?: Administration;
69
- advances: {
70
- normalRate: BaseRateAndAmount;
71
- reducedRate: BaseRateAndAmount;
72
- onResult: BaseRateAndAmount;
73
- subTotal: number;
74
- regulation: number;
75
- total: number;
76
- };
77
- credit: {
78
- job: number;
79
- deficit: number;
80
- corse: number;
81
- search: number;
82
- patronage: number;
83
- outerSea: number;
84
- collaborativeSearch: number;
85
- overage: number;
86
- default: number;
87
- toPay: number;
88
- };
89
- }
90
-
91
38
  export class Cerfa2571_2024 {
92
39
  siren: string;
93
40
  exercice: Exercice;
@@ -146,6 +93,7 @@ export class Cerfa2571_2024 {
146
93
  }
147
94
 
148
95
  export type Cerfa2571_2025 = Cerfa2571_2024;
96
+ export type Cerfa2571_2026 = Cerfa2571_2025;
149
97
 
150
98
  export type Prepare2571Params = {
151
99
  idSociety: number;
@@ -154,4 +102,5 @@ export type Prepare2571Params = {
154
102
  idRegistration: number;
155
103
  };
156
104
 
157
- export type AnyCerfa2571Century = Cerfa2571_2025 | Cerfa2571_2023;
105
+ // eslint-disable-next-line @typescript-eslint/no-duplicate-type-constituents
106
+ export type AnyCerfa2571Century = Cerfa2571_2026 | Cerfa2571_2025 | Cerfa2571_2024;