@silexpert/core 1.1.314 → 1.1.315

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.
@@ -482,9 +482,9 @@ exports.GlobalRegime = {
482
482
  ],
483
483
  },
484
484
  SELARL: {
485
- name: 'SELARL',
485
+ name: 'SELARL / SELARLU',
486
486
  id: 10,
487
- idLegalForms: [LegalForm_1.LegalForm.SELARL.id],
487
+ idLegalForms: [LegalForm_1.LegalForm.SELARL.id, LegalForm_1.LegalForm.SELARLU.id],
488
488
  choices: [
489
489
  {
490
490
  name: 'Profession libérale (BNC - IR - 2035)',
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalRegime.js","sourceRoot":"","sources":["../../../../ts/types/Enum/GlobalRegime.ts"],"names":[],"mappings":"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","sourcesContent":["import { Activity } from './Activity';\nimport { CerfaType } from './CerfaType';\nimport { FiscalRegime } from './FiscalRegime';\nimport { LegalForm } from './LegalForm';\nimport { ProfitsType } from './ProfitsType';\nimport { TaxSystem } from './TaxSystem';\n/** this enum is about all the choices by legalForm for a society a declaration. All choices return multiple informations:\n * idActivity: the activity of the society (1: Prestataire de services, 2: Commerçant, 3: Profession libérale, 4: Autres)\n * idTaxSystem: the taxSystem of the society (1: IS, 2:IR, 3: N/A)\n * profitsType: the type of profits of the society (1: BIC, 2:BNC)\n * realFiscalRegime: The FiscalRegime of the society (1: RS, 2: RN, 3:NA)\n */\nexport type GlobalRegimeTypeChoicesContent = {\n name: string;\n idActivity: Activity,\n idTaxSystem: TaxSystem;\n profitsType?: ProfitsType;\n idFiscalRegime: FiscalRegime;\n declaration: number;\n annexe?: number,\n hidden: boolean,\n};\nexport type GlobalRegimeTypeContent = {\n name: string;\n id: number;\n idLegalForms: number[];\n choices: GlobalRegimeTypeChoicesContent[]\n};\nexport type GlobalRegimeType = {\n [key: string]: GlobalRegimeTypeContent\n};\nexport const GlobalRegime: GlobalRegimeType = {\n ENTREPRISE_INDIVIDUELLE: {\n name: 'Entreprise Individuelle',\n id: 1,\n idLegalForms: [LegalForm.EI.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Profession libérale (BNC - IR - 2035)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Profession libérale (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n ],\n },\n EIRL: {\n name: 'EIRL',\n id: 2,\n idLegalForms: [LegalForm.EIRL.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Profession libérale (BNC - IR - 2035)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA, // FIXME: Pas de RS/RN ?\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Profession libérale (BNC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Profession libérale (BNC - IS - 2065 & 2050)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n AUTO_MICRO_ENTREPRENEUR: {\n name: 'Auto-entrepreneur / micro-entreprise',\n id: 3,\n idLegalForms: [LegalForm.AUTO_ENTREPRENEUR.id],\n choices: [\n {\n name: 'Activité négoce (achat/revente de marchandises) et prestation d\\'hébergement (Micro-BIC - 2042-C-Pro)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.NA,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2042_C_Pro,\n hidden: false,\n },\n {\n name: 'Presta de services commerciales ou artisanales (Micro-BIC - 2042-C-Pro)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.NA,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2042_C_Pro,\n hidden: false,\n },\n {\n name: 'Profession libérale (Micro-BNC - 2042-C-Pro)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.NA,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2042_C_Pro,\n hidden: false,\n },\n ],\n },\n ASSOCIATION: {\n name: 'Association',\n id: 4,\n idLegalForms: [LegalForm.ASSOCIATION.id],\n choices: [\n // {\n // name: 'Non fiscalisée si revenus de capitaux (2070)',\n // idActivity: Activity.AUTRES,\n // idTaxSystem: TaxSystem.IS,\n // idFiscalRegime: FiscalRegime.NA,\n // declaration: CerfaType.CERFA_2070,\n // },\n {\n name: 'Fiscalisée (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.AUTRES,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Fiscalisée (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.AUTRES,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n EURL_SARL: {\n name: 'EURL / SARL',\n id: 5,\n idLegalForms: [LegalForm.EURL.id, LegalForm.SARL.id, LegalForm.GIE.id ],\n choices: [\n {\n name: 'Presta de services (BNC - IR - 2035)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 && 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SAS_SASU: {\n name: 'SAS / SASU',\n id: 6,\n idLegalForms: [LegalForm.SAS.id, LegalForm.SASU.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SA: {\n name: 'SA',\n id: 7,\n idLegalForms: [LegalForm.SA.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SCI: {\n name: 'SCI',\n id: 8,\n idLegalForms: [LegalForm.SCI.id],\n choices: [\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n ],\n },\n SCP: {\n name: 'SCP',\n id: 9,\n idLegalForms: [LegalForm.SCP.id],\n choices: [\n {\n name: 'Presta de services (BNC - IR - 2035)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SELARL: {\n name: 'SELARL',\n id: 10,\n idLegalForms: [LegalForm.SELARL.id],\n choices: [\n {\n name: 'Profession libérale (BNC - IR - 2035)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Profession libérale (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Profession libérale (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n};"]}
1
+ {"version":3,"file":"GlobalRegime.js","sourceRoot":"","sources":["../../../../ts/types/Enum/GlobalRegime.ts"],"names":[],"mappings":"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","sourcesContent":["import { Activity } from './Activity';\nimport { CerfaType } from './CerfaType';\nimport { FiscalRegime } from './FiscalRegime';\nimport { LegalForm } from './LegalForm';\nimport { ProfitsType } from './ProfitsType';\nimport { TaxSystem } from './TaxSystem';\n/** this enum is about all the choices by legalForm for a society a declaration. All choices return multiple informations:\n * idActivity: the activity of the society (1: Prestataire de services, 2: Commerçant, 3: Profession libérale, 4: Autres)\n * idTaxSystem: the taxSystem of the society (1: IS, 2:IR, 3: N/A)\n * profitsType: the type of profits of the society (1: BIC, 2:BNC)\n * realFiscalRegime: The FiscalRegime of the society (1: RS, 2: RN, 3:NA)\n */\nexport type GlobalRegimeTypeChoicesContent = {\n name: string;\n idActivity: Activity,\n idTaxSystem: TaxSystem;\n profitsType?: ProfitsType;\n idFiscalRegime: FiscalRegime;\n declaration: number;\n annexe?: number,\n hidden: boolean,\n};\nexport type GlobalRegimeTypeContent = {\n name: string;\n id: number;\n idLegalForms: number[];\n choices: GlobalRegimeTypeChoicesContent[]\n};\nexport type GlobalRegimeType = {\n [key: string]: GlobalRegimeTypeContent\n};\nexport const GlobalRegime: GlobalRegimeType = {\n ENTREPRISE_INDIVIDUELLE: {\n name: 'Entreprise Individuelle',\n id: 1,\n idLegalForms: [LegalForm.EI.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Profession libérale (BNC - IR - 2035)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Profession libérale (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n ],\n },\n EIRL: {\n name: 'EIRL',\n id: 2,\n idLegalForms: [LegalForm.EIRL.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Profession libérale (BNC - IR - 2035)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA, // FIXME: Pas de RS/RN ?\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Profession libérale (BNC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Profession libérale (BNC - IS - 2065 & 2050)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n AUTO_MICRO_ENTREPRENEUR: {\n name: 'Auto-entrepreneur / micro-entreprise',\n id: 3,\n idLegalForms: [LegalForm.AUTO_ENTREPRENEUR.id],\n choices: [\n {\n name: 'Activité négoce (achat/revente de marchandises) et prestation d\\'hébergement (Micro-BIC - 2042-C-Pro)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.NA,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2042_C_Pro,\n hidden: false,\n },\n {\n name: 'Presta de services commerciales ou artisanales (Micro-BIC - 2042-C-Pro)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.NA,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2042_C_Pro,\n hidden: false,\n },\n {\n name: 'Profession libérale (Micro-BNC - 2042-C-Pro)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.NA,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2042_C_Pro,\n hidden: false,\n },\n ],\n },\n ASSOCIATION: {\n name: 'Association',\n id: 4,\n idLegalForms: [LegalForm.ASSOCIATION.id],\n choices: [\n // {\n // name: 'Non fiscalisée si revenus de capitaux (2070)',\n // idActivity: Activity.AUTRES,\n // idTaxSystem: TaxSystem.IS,\n // idFiscalRegime: FiscalRegime.NA,\n // declaration: CerfaType.CERFA_2070,\n // },\n {\n name: 'Fiscalisée (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.AUTRES,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Fiscalisée (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.AUTRES,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n EURL_SARL: {\n name: 'EURL / SARL',\n id: 5,\n idLegalForms: [LegalForm.EURL.id, LegalForm.SARL.id, LegalForm.GIE.id ],\n choices: [\n {\n name: 'Presta de services (BNC - IR - 2035)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 && 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SAS_SASU: {\n name: 'SAS / SASU',\n id: 6,\n idLegalForms: [LegalForm.SAS.id, LegalForm.SASU.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SA: {\n name: 'SA',\n id: 7,\n idLegalForms: [LegalForm.SA.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SCI: {\n name: 'SCI',\n id: 8,\n idLegalForms: [LegalForm.SCI.id],\n choices: [\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n ],\n },\n SCP: {\n name: 'SCP',\n id: 9,\n idLegalForms: [LegalForm.SCP.id],\n choices: [\n {\n name: 'Presta de services (BNC - IR - 2035)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SELARL: {\n name: 'SELARL / SELARLU',\n id: 10,\n idLegalForms: [LegalForm.SELARL.id, LegalForm.SELARLU.id],\n choices: [\n {\n name: 'Profession libérale (BNC - IR - 2035)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Profession libérale (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Profession libérale (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n};"]}
@@ -60,6 +60,7 @@ export interface IPrestation {
60
60
  prestationJuridique?: IPrestation;
61
61
  prestationSocial?: IPrestation;
62
62
  prestationCreation?: IPrestation;
63
+ prestationControleFiscal?: IPrestation;
63
64
  societiesPrestations?: ISociety;
64
65
  prestationsDetailsBeforeExercice?: IExercicePrestation[];
65
66
  customersSignatures?: ICustomerSignature[];
@@ -1 +1 @@
1
- {"version":3,"file":"IPrestation.d.ts","sourceRoot":"","sources":["../../../../../ts/types/Interface/models/IPrestation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IPrestation.d.ts","sourceRoot":"","sources":["../../../../../ts/types/Interface/models/IPrestation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IPrestation.js","sourceRoot":"","sources":["../../../../../ts/types/Interface/models/IPrestation.ts"],"names":[],"mappings":"","sourcesContent":["import { IExercice } from './IExercice';\nimport { IPayment } from './IPayment';\nimport { IPrestationList } from './IPrestationList';\nimport { IPrestationComplementary } from './IPrestationComplementary';\nimport { ISociety } from './ISociety';\nimport { IExercicePrestation } from './IExercicePrestation';\nimport { ICustomerSignature } from './ICustomerSignature';\nimport { ITerminationList } from './ITerminationList';\nimport { IUser } from '../..';\n\n// prestations\nexport interface IPrestation {\n id?: number;\n numPrestation: string | null;\n statePrevi: number | null;\n archive: boolean;\n withStatuteDrafted: boolean | null;\n withCaptainContrat: boolean | null;\n withStatutesApportNature: boolean | null;\n withStatutesAutorisationTutelle: boolean | null;\n withStatutesFileAccre: boolean | null;\n paid: boolean | null;\n signed: boolean | null;\n toAdministratif: number | null;\n goToAdministratif: Date | null;\n administratifStatus: number;\n toConstitution: number;\n dateValidPrestation: Date | null;\n goToOnboarding: Date | null;\n dateLeavingOnboarding?: Date | null;\n goToClient: Date | null;\n goToFacturation?: Date | null;\n dateLeavingFacturation?: Date | null;\n scoring: number | null;\n isWithApplicationFees?: boolean;\n state: boolean;\n commentPdf: string | null;\n token: string | null;\n size: number | null;\n inProgress: number | null;\n idSociety: number;\n idPrestationList: number;\n idPrestationComplementary: number | null;\n gestionJuridique: boolean;\n idPrestationSocial: number | null;\n idPrestationJuridique: number | null;\n idPrestationCreation: number | null;\n idPrestationDeclarationIR: number | null;\n idPrestationControleFiscal: number | null;\n idOnBoarder: number | null;\n idStateAppointment: number | null;\n totalAmount?: number;\n discountAmount?: number;\n debitType?: string;\n createdAt?: Date | null;\n updatedAt?: Date | null;\n deletedAt?: Date | null;\n\n // Associations\n exercices?: IExercice[];\n prestationsPayments?: IPayment[];\n prestationsList?: IPrestationList;\n prestationsComplementary?: IPrestationComplementary;\n prestationJuridique?: IPrestation;\n prestationSocial?: IPrestation;\n prestationCreation?: IPrestation;\n societiesPrestations?: ISociety;\n prestationsDetailsBeforeExercice?: IExercicePrestation[];\n customersSignatures?: ICustomerSignature[];\n terminationList?: ITerminationList;\n onBoarder?: IUser;\n}"]}
1
+ {"version":3,"file":"IPrestation.js","sourceRoot":"","sources":["../../../../../ts/types/Interface/models/IPrestation.ts"],"names":[],"mappings":"","sourcesContent":["import { IExercice } from './IExercice';\nimport { IPayment } from './IPayment';\nimport { IPrestationList } from './IPrestationList';\nimport { IPrestationComplementary } from './IPrestationComplementary';\nimport { ISociety } from './ISociety';\nimport { IExercicePrestation } from './IExercicePrestation';\nimport { ICustomerSignature } from './ICustomerSignature';\nimport { ITerminationList } from './ITerminationList';\nimport { IUser } from '../..';\n\n// prestations\nexport interface IPrestation {\n id?: number;\n numPrestation: string | null;\n statePrevi: number | null;\n archive: boolean;\n withStatuteDrafted: boolean | null;\n withCaptainContrat: boolean | null;\n withStatutesApportNature: boolean | null;\n withStatutesAutorisationTutelle: boolean | null;\n withStatutesFileAccre: boolean | null;\n paid: boolean | null;\n signed: boolean | null;\n toAdministratif: number | null;\n goToAdministratif: Date | null;\n administratifStatus: number;\n toConstitution: number;\n dateValidPrestation: Date | null;\n goToOnboarding: Date | null;\n dateLeavingOnboarding?: Date | null;\n goToClient: Date | null;\n goToFacturation?: Date | null;\n dateLeavingFacturation?: Date | null;\n scoring: number | null;\n isWithApplicationFees?: boolean;\n state: boolean;\n commentPdf: string | null;\n token: string | null;\n size: number | null;\n inProgress: number | null;\n idSociety: number;\n idPrestationList: number;\n idPrestationComplementary: number | null;\n gestionJuridique: boolean;\n idPrestationSocial: number | null;\n idPrestationJuridique: number | null;\n idPrestationCreation: number | null;\n idPrestationDeclarationIR: number | null;\n idPrestationControleFiscal: number | null;\n idOnBoarder: number | null;\n idStateAppointment: number | null;\n totalAmount?: number;\n discountAmount?: number;\n debitType?: string;\n createdAt?: Date | null;\n updatedAt?: Date | null;\n deletedAt?: Date | null;\n\n // Associations\n exercices?: IExercice[];\n prestationsPayments?: IPayment[];\n prestationsList?: IPrestationList;\n prestationsComplementary?: IPrestationComplementary;\n prestationJuridique?: IPrestation;\n prestationSocial?: IPrestation;\n prestationCreation?: IPrestation;\n prestationControleFiscal?: IPrestation;\n societiesPrestations?: ISociety;\n prestationsDetailsBeforeExercice?: IExercicePrestation[];\n customersSignatures?: ICustomerSignature[];\n terminationList?: ITerminationList;\n onBoarder?: IUser;\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../ts/utils/payment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAe,qBAAqB,EAAiB,WAAW,EAA0B,MAAM,UAAU,CAAC;AAK5H,UAAU,gBAAiB,SAAQ,QAAQ;IACzC,IAAI,EAAE,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7D,YAAY,EAAE,QAAQ,EAAE,CAAA;CACzB;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,0BAA0B,aAAc,QAAQ,EAAE,UAAS,CAAC,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC,EAAE,KAA2D,gBAAgB,EAoCrM,CAAC;AAkBF;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,qBAAqB,WAAY,qBAAqB,KAAE,WAAW,EA4NxE,CAAC;AAEF,OAAO,EACL,0BAA0B,EAAE,qBAAqB,GAClD,CAAC"}
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../ts/utils/payment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAe,qBAAqB,EAAiB,WAAW,EAA0B,MAAM,UAAU,CAAC;AAK5H,UAAU,gBAAiB,SAAQ,QAAQ;IACzC,IAAI,EAAE,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7D,YAAY,EAAE,QAAQ,EAAE,CAAA;CACzB;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,0BAA0B,aAAc,QAAQ,EAAE,UAAS,CAAC,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC,EAAE,KAA2D,gBAAgB,EAoCrM,CAAC;AAkBF;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,qBAAqB,WAAY,qBAAqB,KAAE,WAAW,EA4PxE,CAAC;AAEF,OAAO,EACL,0BAA0B,EAAE,qBAAqB,GAClD,CAAC"}
@@ -63,7 +63,7 @@ const calculateFees = (amount, goToClient, paymentDate) => {
63
63
  * @returns { IPayment[] } list of payment to create for billing auto, after each presta go to onBoarding
64
64
  */
65
65
  const calculatePaymentsAuto = (params) => {
66
- var _a, _b, _c, _d;
66
+ var _a, _b, _c, _d, _e, _f;
67
67
  const { idTypeBrand, goToClient, isWithApplicationFees, firstExerciceNonExpresssEndDate, idPrestation, idLegalForm, prestationList, idVat, yearlyAmountNonExpress, nextYearlyAmountNonExpress, listPartialExercicePrestationExpress, listRegulations } = params;
68
68
  const initializedPaymentDate = dayjs().endOf('month').diff(dayjs(), 'day') < 3 /* || dayjs().date() >= 15 */
69
69
  ? dayjs().add(2, 'month').startOf('month').toDate()
@@ -117,42 +117,57 @@ const calculatePaymentsAuto = (params) => {
117
117
  const bStartDate = b === null || b === void 0 ? void 0 : b.startDate;
118
118
  return dayjs(aStartDate).diff(bStartDate);
119
119
  });
120
- //On ajoute un paiement initial correspondant à la somme des régulations
121
- if (sumRegulations) {
120
+ // Si les frais de dossiers sont facturés, on ajoute un paiement sur le mois en cours
121
+ if (isWithApplicationFees) {
122
122
  listPayments.push({
123
- amount: isWithApplicationFees ? sumRegulations - applicationFeesAmountTTC : sumRegulations, //TTC
123
+ amount: applicationFeesAmountTTC, //TTC
124
124
  isPaid: true,
125
125
  datePayment: dayjs().toDate(),
126
126
  idPrestation,
127
127
  idPaymentMethod: (_b = (_a = listRegulations[0]) === null || _a === void 0 ? void 0 : _a.idPaymentMethod) !== null && _b !== void 0 ? _b : types_1.PaymentMethod.DIRECT_DEBIT.id,
128
128
  closingDate: (listPartialExercicePrestationExpress === null || listPartialExercicePrestationExpress === void 0 ? void 0 : listPartialExercicePrestationExpress.length) ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,
129
+ comment: 'Frais de dossier',
129
130
  });
130
- // Si les frais de dossiers sont facturés, on ajoute un paiement sur le mois en cours
131
- if (isWithApplicationFees)
132
- listPayments.push({
133
- amount: applicationFeesAmountTTC, //TTC
134
- isPaid: true,
135
- datePayment: dayjs().toDate(),
136
- idPrestation,
137
- idPaymentMethod: (_d = (_c = listRegulations[0]) === null || _c === void 0 ? void 0 : _c.idPaymentMethod) !== null && _d !== void 0 ? _d : types_1.PaymentMethod.DIRECT_DEBIT.id,
138
- closingDate: (listPartialExercicePrestationExpress === null || listPartialExercicePrestationExpress === void 0 ? void 0 : listPartialExercicePrestationExpress.length) ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,
139
- comment: 'Frais de dossier',
140
- });
131
+ remainingAmount += applicationFeesAmountTTC;
141
132
  }
142
133
  // =========================
143
134
  // EXPRESS
144
135
  // =========================
145
136
  listPartialExercicePrestationExpress.forEach((exercicePrestation, indexEP) => {
146
- var _a;
137
+ var _a, _b, _c, _d, _e;
138
+ const remainingBeforeThisExo = remainingAmount;
147
139
  remainingAmount += !priceWithTaxesIncluded
148
140
  ? (0, types_1.getTaxesIncludedAmount)(exercicePrestation.totalAmount, idVat)
149
141
  : exercicePrestation.totalAmount; //TTC
150
- //Si le premier règlement couvre le coût de cet exercicePrestation, on passe au suivant
151
- if (remainingAmount <= 0)
142
+ // Si le premier règlement couvre le coût de cet exercicePrestation,
143
+ // on créé un paiement pour cet exo et on passe au suivant
144
+ if (remainingAmount <= 0) {
145
+ listPayments.push({
146
+ amount: !priceWithTaxesIncluded
147
+ ? (0, types_1.getTaxesIncludedAmount)(exercicePrestation.totalAmount, idVat)
148
+ : exercicePrestation.totalAmount, //TTC
149
+ isPaid: true,
150
+ datePayment: dayjs().toDate(),
151
+ idPrestation,
152
+ idPaymentMethod: (_b = (_a = listRegulations[0]) === null || _a === void 0 ? void 0 : _a.idPaymentMethod) !== null && _b !== void 0 ? _b : types_1.PaymentMethod.DIRECT_DEBIT.id,
153
+ closingDate: exercicePrestation.endDate,
154
+ });
152
155
  return;
156
+ }
157
+ else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {
158
+ // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo
159
+ listPayments.push({
160
+ amount: -remainingBeforeThisExo, //TTC
161
+ isPaid: true,
162
+ datePayment: dayjs().toDate(),
163
+ idPrestation,
164
+ idPaymentMethod: (_d = (_c = listRegulations[0]) === null || _c === void 0 ? void 0 : _c.idPaymentMethod) !== null && _d !== void 0 ? _d : types_1.PaymentMethod.DIRECT_DEBIT.id,
165
+ closingDate: exercicePrestation.endDate,
166
+ });
167
+ }
153
168
  //express : on étale en countExpressMonthlyPayment (nb de mensualités)
154
169
  let remainingAmountByExercicePrestation = remainingAmount; //TTC
155
- let countExpressMonthlyPayment = (_a = exercicePrestation === null || exercicePrestation === void 0 ? void 0 : exercicePrestation.countExpressMonthlyPayment) !== null && _a !== void 0 ? _a : 3; //TTC
170
+ let countExpressMonthlyPayment = (_e = exercicePrestation === null || exercicePrestation === void 0 ? void 0 : exercicePrestation.countExpressMonthlyPayment) !== null && _e !== void 0 ? _e : 3; //TTC
156
171
  //Si un premier règlement est généré avec le montant des regulations, on le considère comme une mensualité (unioquement pour le premier express et la première mensualité)
157
172
  if (indexEP === 0 && sumRegulations > 0)
158
173
  countExpressMonthlyPayment -= 1;
@@ -191,16 +206,33 @@ const calculatePaymentsAuto = (params) => {
191
206
  if (countMonthsBeforeExerciceEnd < 3)
192
207
  countMonthsBeforeExerciceEnd = 3;
193
208
  const exoAmount = isFirstNonExpress ? yearlyAmountNonExpress : nextYearlyAmountNonExpress;
209
+ const remainingBeforeThisExo = remainingAmount;
194
210
  remainingAmount += priceWithTaxesIncluded ? exoAmount : (0, types_1.getTaxesIncludedAmount)(exoAmount, idVat);
195
- //TODO: CAS A TESTER : si sumRegulations couvre le premier exercice par exemple (cas rar mais à envisager)
196
- //Si le premier règlement couvre le coût de cet exercicePrestation, on passe au suivant
197
- // if (remainingAmount <= 0) {
198
- // continue;
199
- // }
200
- // Si on a ajouté une ligne pour les applications fees, alors on les déduit du montant total
201
- /* if (isFirstNonExpress && isWithApplicationFees && !isApplicationFeesAlreadyPaid) {
202
- remainingAmount -= applicationFeesAmountTTC;
203
- } */
211
+ // Si le premier règlement couvre le coût de cet exercicePrestation,
212
+ // on créé un paiement pour cet exo et on passe au suivant
213
+ if (remainingAmount <= 0) {
214
+ listPayments.push({
215
+ amount: priceWithTaxesIncluded ? exoAmount : (0, types_1.getTaxesIncludedAmount)(exoAmount, idVat), //TTC
216
+ isPaid: true,
217
+ datePayment: dayjs().toDate(),
218
+ idPrestation,
219
+ idPaymentMethod: (_d = (_c = listRegulations[0]) === null || _c === void 0 ? void 0 : _c.idPaymentMethod) !== null && _d !== void 0 ? _d : types_1.PaymentMethod.DIRECT_DEBIT.id,
220
+ closingDate: exerciceEndDate,
221
+ });
222
+ exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();
223
+ continue;
224
+ }
225
+ else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {
226
+ // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo
227
+ listPayments.push({
228
+ amount: -remainingBeforeThisExo, //TTC
229
+ isPaid: true,
230
+ datePayment: dayjs().toDate(),
231
+ idPrestation,
232
+ idPaymentMethod: (_f = (_e = listRegulations[0]) === null || _e === void 0 ? void 0 : _e.idPaymentMethod) !== null && _f !== void 0 ? _f : types_1.PaymentMethod.DIRECT_DEBIT.id,
233
+ closingDate: exerciceEndDate,
234
+ });
235
+ }
204
236
  let remainingAmountByExercicePrestation = remainingAmount;
205
237
  // - frais d'application dès les second exo non express
206
238
  if (!isFirstNonExpress)
@@ -1 +1 @@
1
- {"version":3,"file":"payment.js","sourceRoot":"","sources":["../../../ts/utils/payment.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,oCAA4H;AAC5H,+BAA+B;AAE/B,6CAAsE;AAOtE;;;;;;;;;GASG;AACH,MAAM,0BAA0B,GAAG,CAAC,QAAoB,EAAE,QAAoE,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,CAAC,EAAsB,EAAE;IACzM,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,mBAAC,OAAA,MAAA,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,mBAAmB,0CAAE,eAAe,0CAAE,WAAW,mCAAI,KAAK,CAAA,EAAA,CAAC,CAAC;IAChH,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,uBAAC,OAAA,CAAC,CAAA,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,mBAAmB,0CAAE,eAAe,0CAAE,WAAW,CAAA,KAAI,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,mBAAmB,0CAAE,eAAe,0CAAE,QAAQ,CAAA,CAAA,EAAA,CAAC,CAAC;IAC3J,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,uBAAC,OAAA,CAAC,CAAA,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,mBAAmB,0CAAE,eAAe,0CAAE,WAAW,CAAA,KAAI,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,mBAAmB,0CAAE,eAAe,0CAAE,WAAW,CAAA,CAAA,EAAA,CAAC,CAAC;IACjK,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,+BAAC,OAAA,CAAC,CAAA,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,mBAAmB,0CAAE,eAAe,0CAAE,WAAW,CAAA,IAAI,CAAC,CAAA,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,mBAAmB,0CAAE,eAAe,0CAAE,WAAW,CAAA,IAAI,CAAC,CAAA,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,mBAAmB,0CAAE,eAAe,0CAAE,QAAQ,CAAA,CAAA,EAAA,CAAC,CAAC;IAErN,MAAM,cAAc,GAAuB,EAAE,CAAC;IAC9C,IAAI,eAAe,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5D,cAAc,CAAC,IAAI,iCACd,eAAe,CAAC,CAAC,CAAC,KACrB,IAAI,EAAE,aAAa,EACnB,YAAY,EAAE,eAAe,IAC7B,CAAC;IACL,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,cAAc,CAAC,IAAI,iCACd,YAAY,CAAC,CAAC,CAAC,KAClB,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,YAAY,IAC1B,CAAC;IACL,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5D,cAAc,CAAC,IAAI,iCACd,eAAe,CAAC,CAAC,CAAC,KACrB,IAAI,EAAE,aAAa,EACnB,YAAY,EAAE,eAAe,IAC7B,CAAC;IACL,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,cAAc,CAAC,IAAI,iCACd,WAAW,CAAC,CAAC,CAAC,KACjB,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,WAAW,IACzB,CAAC;IACL,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AA+PA,gEAA0B;AA7P5B,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,UAAgB,EAAE,WAAiB,EAAS,EAAE;IACnF,MAAM,qBAAqB,GAAG,MAAM,CAAC;IAErC,MAAM,gCAAgC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhF,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,gCAAgC,CAAC;QAClG,oCAAoC;QACpC,8GAA8G;QAC9G,8DAA8D;QAC9D,oDAAoD;QACpD,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,qBAAqB,GAAG,CAAC,MAA6B,EAAgB,EAAE;;IAC5E,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAChQ,MAAM,sBAAsB,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA,8BAA8B;QAC1G,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;QACnD,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IAEtD,4EAA4E;IAC5E,gDAAgD;IAChD,IAAI,CAAC,cAAc,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,IAAA,yBAAY,EAAC,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC5F,MAAM,EAAE,eAAe,EAAE,sBAAsB,EAAE,GAAG,SAAS,CAAC;IAC9D,MAAM,uBAAuB,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAA,8BAAsB,EAAC,eAAe,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;IACjI,MAAM,wBAAwB,GAAG,IAAA,qCAAwB,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAE9E,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,SAAS,KAAI,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,CAAA;QAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACpJ,yFAAyF;IACzF,IAAI,oCAAoC,CAAC,MAAM,KAAI,oCAAoC,aAApC,oCAAoC,uBAApC,oCAAoC,CAAE,IAAI,CAAC,CAAC,EAAoC,EAAE,EAAE,CAAC,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,SAAS,CAAA,CAAC,CAAA;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACpN,IAAI,CAAC,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,CAAA,IAAI,CAAC,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,UAAU,CAAA,CAAC,CAAA;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEtJ,MAAM,YAAY,GAAG,oCAAoC,CAAC,MAAM,CAAC;IACjE,MAAM,YAAY,GAAiB,EAAE,CAAC;IAEtC,gEAAgE;IAChE,8CAA8C;IAC9C,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,CAAa,EAAE,EAAE;QAC3E,+EAA+E;QAC/E,qGAAqG;QAErG,4BAA4B;QAC5B,sEAAsE;QACtE,kHAAkH;QAClH,gDAAgD;QAChD;;;;;;;;;;YAUI;QACJ,OAAO,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC;IACvC,CAAC,EAAE,CAAC,CAAC,CAAC;IACN,IAAI,eAAe,GAAG,CAAC,cAAc,CAAC,CAAE,KAAK;IAC7C,IAAI,WAAW,GAAG,sBAAsB,CAAC;IAEzC,6DAA6D;IAC7D,oCAAoC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjD,MAAM,UAAU,GAAG,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,SAAiB,CAAC;QACxC,MAAM,UAAU,GAAG,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,SAAiB,CAAC;QACxC,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,IAAI,cAAc,EAAE,CAAC;QACnB,YAAY,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,cAAc,GAAG,wBAAwB,CAAC,CAAC,CAAC,cAAc,EAAG,KAAK;YAClG,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE;YAC7B,YAAY;YACZ,eAAe,EAAE,MAAA,MAAA,eAAe,CAAC,CAAC,CAAC,0CAAE,eAAe,mCAAI,qBAAa,CAAC,YAAY,CAAC,EAAE;YACrF,WAAW,EAAE,CAAA,oCAAoC,aAApC,oCAAoC,uBAApC,oCAAoC,CAAE,MAAM,EAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B;SAC9I,CAAC,CAAC;QAEH,qFAAqF;QACrF,IAAI,qBAAqB;YACvB,YAAY,CAAC,IAAI,CAAC;gBAChB,MAAM,EAAE,wBAAwB,EAAG,KAAK;gBACxC,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE;gBAC7B,YAAY;gBACZ,eAAe,EAAE,MAAA,MAAA,eAAe,CAAC,CAAC,CAAC,0CAAE,eAAe,mCAAI,qBAAa,CAAC,YAAY,CAAC,EAAE;gBACrF,WAAW,EAAE,CAAA,oCAAoC,aAApC,oCAAoC,uBAApC,oCAAoC,CAAE,MAAM,EAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B;gBAC7I,OAAO,EAAE,kBAAkB;aAC5B,CAAC,CAAC;IACP,CAAC;IAED,4BAA4B;IAC5B,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC,CAAC,OAAO,CAAC,CAAC,kBAAmD,EAAE,OAAe,EAAE,EAAE;;QACpH,eAAe,IAAI,CAAC,sBAAsB;YACxC,CAAC,CAAC,IAAA,8BAAsB,EAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC;YAC/D,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,KAAK;QACzC,uFAAuF;QACvF,IAAI,eAAe,IAAI,CAAC;YAAE,OAAO;QAEjC,sEAAsE;QACtE,IAAI,mCAAmC,GAAG,eAAe,CAAC,CAAC,KAAK;QAChE,IAAI,0BAA0B,GAAG,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,0BAA0B,mCAAI,CAAC,CAAC,CAAC,KAAK;QAC3F,0KAA0K;QAC1K,IAAI,OAAO,KAAK,CAAC,IAAI,cAAc,GAAG,CAAC;YAAE,0BAA0B,IAAI,CAAC,CAAC;QAEzE,MAAM,aAAa,GAAG,mCAAmC,GAAG,0BAA0B,CAAC,CAAC,KAAK;QAC7F,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,0BAA0B,EAAE,KAAK,EAAE,EAAE,CAAC;YACjE,gJAAgJ;YAChJ,8CAA8C;YAC9C,MAAM,MAAM,GAAG,KAAK,GAAG,0BAA0B,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAE,KAAK;YAE/G,YAAY,CAAC,IAAI,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG;gBACtC,WAAW,EAAE,WAAW;gBACxB,YAAY;gBACZ,eAAe,EAAE,qBAAa,CAAC,YAAY,CAAC,EAAE;gBAC9C,WAAW,EAAE,kBAAkB,CAAC,OAAO;aACxC,CAAC,CAAC;YACH,mCAAmC,IAAI,aAAa,CAAC;YACrD,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7E,CAAC;QACD,eAAe,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,oBAAoB;IACpB,4BAA4B;IAC5B,sEAAsE;IACtE,kFAAkF;IAClF,yCAAyC;IACzC,IAAI,YAAY,IAAI,CAAC;QAAE,WAAW,GAAG,sBAAsB,CAAC;IAC5D,IAAI,eAAe,GAAG,KAAK,CAAC,+BAA+B,CAAC,CAAC,MAAM,EAAE,CAAC;IAEtE,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAE7B,sFAAsF;IACtF,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAE9B,iHAAiH;QACjH,IAAI,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACvG,IAAI,4BAA4B,GAAG,CAAC;YAAE,4BAA4B,GAAG,CAAC,CAAC;QAEvE,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAC1F,eAAe,IAAI,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,8BAAsB,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAEjG,0GAA0G;QAC1G,uFAAuF;QACvF,8BAA8B;QAC9B,cAAc;QACd,IAAI;QAEJ,4FAA4F;QAC5F;;YAEI;QAEJ,IAAI,mCAAmC,GAAG,eAAe,CAAC;QAE1D,uDAAuD;QACvD,IAAI,CAAC,iBAAiB;YAAE,mCAAmC,IAAI,uBAAuB,CAAC;QAEvF,MAAM,aAAa,GAAG,mCAAmC,GAAG,4BAA4B,CAAC,CAAE,KAAK;QAEhG,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,4BAA4B,EAAE,KAAK,EAAE,EAAE,CAAC;gBACnE,IAAI,MAAM,GAAG,KAAK,GAAG,4BAA4B,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAmC,CAAC;gBAExG,iDAAiD;gBACjD,yGAAyG;gBACzG,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;gBAExD,YAAY,CAAC,IAAI,CAAC;oBAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG;oBACtC,WAAW,EAAE,WAAW;oBACxB,YAAY;oBACZ,eAAe,EAAE,qBAAa,CAAC,YAAY,CAAC,EAAE;oBAC9C,WAAW,EAAE,eAAe;iBAC7B,CAAC,CAAC;gBACH,mCAAmC,IAAI,aAAa,CAAC;gBACrD,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;YAC7E,CAAC;YACD,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QACnG,CAAC;QACD,eAAe,GAAG,CAAC,CAAC;QACpB,IAAI,4BAA4B,KAAK,EAAE;YAAE,qBAAqB,GAAG,IAAI,CAAC;QACtE,iBAAiB,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,eAAe,GAAG,CAAC,CAAC;IAEpB,4BAA4B;IAC5B,uBAAuB;IACvB,4BAA4B;IAC5B,iFAAiF;IACjF,eAAe,IAAI,sBAAsB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAA,8BAAsB,EAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IAEnI,IAAI,mCAAmC,GAAG,eAAe,CAAC;IAC1D,iHAAiH;IACjH,IAAI,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACvG,IAAI,4BAA4B,GAAG,CAAC;QAAE,4BAA4B,GAAG,CAAC,CAAC;IAEvE,uDAAuD;IACvD,mCAAmC,IAAI,uBAAuB,CAAC;IAE/D,MAAM,aAAa,GAAG,mCAAmC,GAAG,4BAA4B,CAAC;IAEzF,yCAAyC;IACzC,IAAI,CAAC,YAAY,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEpC,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;QACjE,IAAI,MAAM,GAAG,aAAa,CAAC;QAE3B,iDAAiD;QACjD,yGAAyG;QACzG,uDAAuD;QACvD,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAExD,YAAY,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG;YACtC,WAAW,EAAE,WAAW;YACxB,YAAY;YACZ,eAAe,EAAE,qBAAa,CAAC,YAAY,CAAC,EAAE;YAC9C,WAAW,EAAE,eAAe;SAC7B,CAAC,CAAC;QACH,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7E,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAG4B,sDAAqB","sourcesContent":["'use strict';\n\nimport { IPayment, IRegulation, ParamsForPaymentsAuto, PaymentMethod, PaymentAuto, getTaxesIncludedAmount } from '../types';\nimport * as dayjs from 'dayjs';\nimport { PartialExercicePrestationExpress } from '../types/Interface/api/payment/Util';\nimport { getApplicationFeesAmount, getPriceGrid } from './prestation';\n\ninterface PaymentsWithList extends IPayment {\n type: 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther',\n listPayments: IPayment[]\n}\n\n/**\n * A partir d'une liste de payment (avec include jusqu'à prestationList, \n * avec en attributs 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther')\n * permet de récupérer uniquement le premier paiement de chaque type \n * et les autres payments dans listPayments\n * avec possibilité de filtrer avec le tableau de filtres\n * @param payments \n * @param types \n * @returns \n */\nconst groupPaymentsByServiceType = (payments: IPayment[], types: ('isComptable' | 'isJuridique' | 'isSocial' | 'isOther')[] = ['isComptable', 'isJuridique', 'isSocial', 'isOther']): PaymentsWithList[] => {\n const prestaComptable = payments.filter((el) => el?.paymentsPrestations?.prestationsList?.isComptable ?? false);\n const prestaSocial = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isSocial);\n const prestaJuridique = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isJuridique);\n const prestaOther = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && !el?.paymentsPrestations?.prestationsList?.isJuridique && !el?.paymentsPrestations?.prestationsList?.isSocial);\n \n const societyPayment: PaymentsWithList[] = [];\n if (prestaComptable.length && types.includes('isComptable')) {\n societyPayment.push({\n ...prestaComptable[0], // Données de base\n type: 'isComptable',\n listPayments: prestaComptable,\n });\n }\n if (prestaSocial.length && types.includes('isSocial')) {\n societyPayment.push({\n ...prestaSocial[0], // Données de base\n type: 'isSocial',\n listPayments: prestaSocial,\n });\n }\n if (prestaJuridique.length && types.includes('isJuridique')) {\n societyPayment.push({\n ...prestaJuridique[0], // Données de base\n type: 'isJuridique',\n listPayments: prestaJuridique,\n });\n }\n if (prestaOther.length && types.includes('isOther')) {\n societyPayment.push({\n ...prestaOther[0], // Données de base\n type: 'isOther',\n listPayments: prestaOther,\n });\n }\n return societyPayment;\n};\n\nconst calculateFees = (amount: number, goToClient: Date, paymentDate: Date):number => {\n const yearlyPriceIncreasing = 1.0275;\n\n const oneYearLessIfIn3LastMonthsOfYear = dayjs(goToClient).month() >= 9 ? 1 : 0;\n\n if (dayjs(paymentDate).year() - dayjs().year() > 0) {\n const nbYearsMore = dayjs(paymentDate).year() - dayjs().year() - oneYearLessIfIn3LastMonthsOfYear;\n // on applique X fois l'augmentation\n // ex. : si on lance l'appel en 2024, et qu'on génére un paiement pour 2026, on applique 2 fois l'augmentation\n // soit amount * yearlyPriceIncreasing * yearlyPriceIncreasing\n // soit amount * yearlyPriceIncreasing ^ nbYearsMore\n amount = amount * Math.pow(yearlyPriceIncreasing, nbYearsMore);\n }\n return amount;\n};\n\n/**\n// * @param {number} firstPaymentAmount - amount of the first payment (first regulation of the customer)\n * @param {Date} firstExerciceNonExpresssEndDate - end date of the first exercice non express\n * @param {number} idPrestation - prestation id\n * @param {number} idLegalForm - legal form id of the society\n * @param {boolean} isWithApplicationFees - if the prestation has application fees to paid\n * @param {IPrestationList} prestationList - type of prestation (hidden: 0, isCatalog: 1, isComptable: 1)\n * @param {number} idVat - vat id of society linked\n * @param {number} yearlyAmountNonExpress - yearly amount of non express prestation (HT)\n * @param {number} nextYearlyAmountNonExpress - yearly amount of non express prestation for next years (HT)\n * @param {PartialExercicePrestationExpress[]} listPartialExercicePrestationExpress - list of exercicePrestation linked to idPrestation -> used to get express\n * @param {IRegulation[]} listRegulations - list of regulations linked to idPrestation (TTC)\n * @returns { IPayment[] } list of payment to create for billing auto, after each presta go to onBoarding\n */\nconst calculatePaymentsAuto = (params: ParamsForPaymentsAuto):PaymentAuto[] => {\n const { idTypeBrand, goToClient, isWithApplicationFees, firstExerciceNonExpresssEndDate, idPrestation, idLegalForm, prestationList, idVat, yearlyAmountNonExpress, nextYearlyAmountNonExpress, listPartialExercicePrestationExpress, listRegulations } = params;\n const initializedPaymentDate = dayjs().endOf('month').diff(dayjs(), 'day') < 3/* || dayjs().date() >= 15 */\n ? dayjs().add(2, 'month').startOf('month').toDate()\n : dayjs().add(1, 'month').startOf('month').toDate();\n\n // On récupère la grille tarifaire pour savoir si les tarifs sont HT ou TTC \n // et pour connaitre le montant du coût de l'app\n if (!prestationList.id) throw new Error('idPrestationList manquant');\n const priceGrid = getPriceGrid(idTypeBrand, prestationList.id);\n if (!priceGrid) throw new Error('Impossible de trouver la grille tarifaire correspondante');\n const { applicationCost, priceWithTaxesIncluded } = priceGrid;\n const applicationCostTotalTTC = (priceWithTaxesIncluded ? applicationCost : getTaxesIncludedAmount(applicationCost, idVat)) * 12;\n const applicationFeesAmountTTC = getApplicationFeesAmount(idLegalForm, idVat);\n\n if (prestationList?.isCatalog || !prestationList?.isComptable) throw new Error('Ce type de prestation ne correspond pas aux conditions attendues.');\n // if (!listRegulations?.length) throw new Error('List of regulations can not be empty');\n if (listPartialExercicePrestationExpress.length && listPartialExercicePrestationExpress?.some((ep: PartialExercicePrestationExpress) => !ep?.startDate)) throw new Error('Start date of some exercice are missing');\n if (!listRegulations?.every((r: IRegulation) => !!r?.amount || !!r?.amountUsed)) throw new Error('Amount and amountUsed are missing for regulations');\n\n const nbExoExpress = listPartialExercicePrestationExpress.length;\n const listPayments:PaymentAuto[] = [];\n\n // on récupère le/les premiers réglements effectués, non alloués\n // const isApplicationFeesAlreadyPaid = false;\n const sumRegulations = listRegulations.reduce((acc: number, r:IRegulation) => {\n //Si la regulation est rattachée à un paymentExpectation, on récupère le détail\n // et on ne prend que les frais de dossier (applicationFee) + le montant de la compta (accountingFee)\n \n // Commenté temporairement :\n // Pour l'instant, on ne prend plus en compte les paymentExpectation :\n // On part du principe que si isWithApplicationFees = true, alors les regulations contiennent les frais de dossier\n // sinon, ils sont offerts et n'apparaissent pas\n /* if (r.paymentsExpectation?.payload) {\n const payload = JSON.parse(r.paymentsExpectation?.payload);\n if (+payload?.applicationFee > 0) {\n isApplicationFeesAlreadyPaid = true;\n acc += +payload?.applicationFee;\n }\n if (+payload?.accountingFee > 0) acc += +payload?.accountingFee;\n return acc;\n } else {\n return acc + r.amount - r.amountUsed;\n } */\n return acc + r.amount - r.amountUsed;\n }, 0);\n let remainingAmount = -sumRegulations; //TTC\n let paymentDate = initializedPaymentDate;\n\n //On order les exercicePrestation par startDate ASC et id ASC\n listPartialExercicePrestationExpress.sort((a, b) => {\n const aStartDate = a?.startDate as Date;\n const bStartDate = b?.startDate as Date;\n return dayjs(aStartDate).diff(bStartDate);\n });\n\n //On ajoute un paiement initial correspondant à la somme des régulations\n if (sumRegulations) {\n listPayments.push({\n amount: isWithApplicationFees ? sumRegulations - applicationFeesAmountTTC : sumRegulations, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,\n });\n\n // Si les frais de dossiers sont facturés, on ajoute un paiement sur le mois en cours\n if (isWithApplicationFees)\n listPayments.push({\n amount: applicationFeesAmountTTC, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,\n comment: 'Frais de dossier',\n });\n }\n \n // =========================\n // EXPRESS\n // =========================\n listPartialExercicePrestationExpress.forEach((exercicePrestation:PartialExercicePrestationExpress, indexEP: number) => {\n remainingAmount += !priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount; //TTC\n //Si le premier règlement couvre le coût de cet exercicePrestation, on passe au suivant\n if (remainingAmount <= 0) return;\n \n //express : on étale en countExpressMonthlyPayment (nb de mensualités)\n let remainingAmountByExercicePrestation = remainingAmount; //TTC\n let countExpressMonthlyPayment = exercicePrestation?.countExpressMonthlyPayment ?? 3; //TTC\n //Si un premier règlement est généré avec le montant des regulations, on le considère comme une mensualité (unioquement pour le premier express et la première mensualité)\n if (indexEP === 0 && sumRegulations > 0) countExpressMonthlyPayment -= 1;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countExpressMonthlyPayment; //TTC\n for (let index = 1; index <= countExpressMonthlyPayment; index++) {\n // On arrondis les 11 premières mensualités, mais on récupère le reste pour la dernière mensualité, pour éviter les centimes perdus en arrondis\n // et on applique le taux de tva de la société\n const amount = index < countExpressMonthlyPayment ? monthlyAmount : remainingAmountByExercicePrestation; //TTC\n \n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n remainingAmount = 0;\n });\n\n // =========================\n // NON EXPRESS\n // =========================\n // on lisse sur le nb de mois restants (avec au minimum 3 mensualités)\n // Si un seul exo express, alors on met les paiements de l'exo actuel en parallèle\n // sinon, ils sont à la suite des express\n if (nbExoExpress <= 1) paymentDate = initializedPaymentDate;\n let exerciceEndDate = dayjs(firstExerciceNonExpresssEndDate).toDate();\n\n let hasGeneratedWholeYear = false;\n let isFirstNonExpress = true;\n \n //On génère des paiements jusqu'à ce qu'un exercice soit entier (12 mois), non express\n while (!hasGeneratedWholeYear) {\n \n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n const exoAmount = isFirstNonExpress ? yearlyAmountNonExpress : nextYearlyAmountNonExpress;\n remainingAmount += priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat);\n\n //TODO: CAS A TESTER : si sumRegulations couvre le premier exercice par exemple (cas rar mais à envisager)\n //Si le premier règlement couvre le coût de cet exercicePrestation, on passe au suivant\n // if (remainingAmount <= 0) {\n // continue;\n // }\n\n // Si on a ajouté une ligne pour les applications fees, alors on les déduit du montant total\n /* if (isFirstNonExpress && isWithApplicationFees && !isApplicationFeesAlreadyPaid) {\n remainingAmount -= applicationFeesAmountTTC;\n } */\n\n let remainingAmountByExercicePrestation = remainingAmount;\n\n // - frais d'application dès les second exo non express\n if (!isFirstNonExpress) remainingAmountByExercicePrestation += applicationCostTotalTTC;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd; //TTC\n\n if (monthlyAmount > 0) {\n for (let index = 1; index <= countMonthsBeforeExerciceEnd; index++) {\n let amount = index < countMonthsBeforeExerciceEnd ? monthlyAmount : remainingAmountByExercicePrestation;\n \n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n amount = calculateFees(amount, goToClient, paymentDate);\n \n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();\n }\n remainingAmount = 0;\n if (countMonthsBeforeExerciceEnd === 12) hasGeneratedWholeYear = true;\n isFirstNonExpress = false;\n }\n\n remainingAmount = 0;\n\n // =========================\n // JUSQU'EN DECEMBRE\n // =========================\n // On applique le taux de tva de la société, si besoin, selon la grille tarifaire\n remainingAmount += priceWithTaxesIncluded ? nextYearlyAmountNonExpress : getTaxesIncludedAmount(nextYearlyAmountNonExpress, idVat);\n\n let remainingAmountByExercicePrestation = remainingAmount;\n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n // - frais d'application dès les second exo non express\n remainingAmountByExercicePrestation += applicationCostTotalTTC;\n \n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd;\n \n // Si aucun paiement généré, on stoppe là\n if (!listPayments.length) return [];\n\n while (dayjs(listPayments.slice(-1)[0].datePayment).month() < 11) {\n let amount = monthlyAmount;\n\n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n // - frais d'application dès les second exo non express\n amount = calculateFees(amount, goToClient, paymentDate);\n\n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n\n return listPayments;\n};\n\nexport {\n groupPaymentsByServiceType, calculatePaymentsAuto,\n};"]}
1
+ {"version":3,"file":"payment.js","sourceRoot":"","sources":["../../../ts/utils/payment.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport { IPayment, IRegulation, ParamsForPaymentsAuto, PaymentMethod, PaymentAuto, getTaxesIncludedAmount } from '../types';\nimport * as dayjs from 'dayjs';\nimport { PartialExercicePrestationExpress } from '../types/Interface/api/payment/Util';\nimport { getApplicationFeesAmount, getPriceGrid } from './prestation';\n\ninterface PaymentsWithList extends IPayment {\n type: 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther',\n listPayments: IPayment[]\n}\n\n/**\n * A partir d'une liste de payment (avec include jusqu'à prestationList, \n * avec en attributs 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther')\n * permet de récupérer uniquement le premier paiement de chaque type \n * et les autres payments dans listPayments\n * avec possibilité de filtrer avec le tableau de filtres\n * @param payments \n * @param types \n * @returns \n */\nconst groupPaymentsByServiceType = (payments: IPayment[], types: ('isComptable' | 'isJuridique' | 'isSocial' | 'isOther')[] = ['isComptable', 'isJuridique', 'isSocial', 'isOther']): PaymentsWithList[] => {\n const prestaComptable = payments.filter((el) => el?.paymentsPrestations?.prestationsList?.isComptable ?? false);\n const prestaSocial = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isSocial);\n const prestaJuridique = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isJuridique);\n const prestaOther = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && !el?.paymentsPrestations?.prestationsList?.isJuridique && !el?.paymentsPrestations?.prestationsList?.isSocial);\n \n const societyPayment: PaymentsWithList[] = [];\n if (prestaComptable.length && types.includes('isComptable')) {\n societyPayment.push({\n ...prestaComptable[0], // Données de base\n type: 'isComptable',\n listPayments: prestaComptable,\n });\n }\n if (prestaSocial.length && types.includes('isSocial')) {\n societyPayment.push({\n ...prestaSocial[0], // Données de base\n type: 'isSocial',\n listPayments: prestaSocial,\n });\n }\n if (prestaJuridique.length && types.includes('isJuridique')) {\n societyPayment.push({\n ...prestaJuridique[0], // Données de base\n type: 'isJuridique',\n listPayments: prestaJuridique,\n });\n }\n if (prestaOther.length && types.includes('isOther')) {\n societyPayment.push({\n ...prestaOther[0], // Données de base\n type: 'isOther',\n listPayments: prestaOther,\n });\n }\n return societyPayment;\n};\n\nconst calculateFees = (amount: number, goToClient: Date, paymentDate: Date):number => {\n const yearlyPriceIncreasing = 1.0275;\n\n const oneYearLessIfIn3LastMonthsOfYear = dayjs(goToClient).month() >= 9 ? 1 : 0;\n\n if (dayjs(paymentDate).year() - dayjs().year() > 0) {\n const nbYearsMore = dayjs(paymentDate).year() - dayjs().year() - oneYearLessIfIn3LastMonthsOfYear;\n // on applique X fois l'augmentation\n // ex. : si on lance l'appel en 2024, et qu'on génére un paiement pour 2026, on applique 2 fois l'augmentation\n // soit amount * yearlyPriceIncreasing * yearlyPriceIncreasing\n // soit amount * yearlyPriceIncreasing ^ nbYearsMore\n amount = amount * Math.pow(yearlyPriceIncreasing, nbYearsMore);\n }\n return amount;\n};\n\n/**\n// * @param {number} firstPaymentAmount - amount of the first payment (first regulation of the customer)\n * @param {Date} firstExerciceNonExpresssEndDate - end date of the first exercice non express\n * @param {number} idPrestation - prestation id\n * @param {number} idLegalForm - legal form id of the society\n * @param {boolean} isWithApplicationFees - if the prestation has application fees to paid\n * @param {IPrestationList} prestationList - type of prestation (hidden: 0, isCatalog: 1, isComptable: 1)\n * @param {number} idVat - vat id of society linked\n * @param {number} yearlyAmountNonExpress - yearly amount of non express prestation (HT)\n * @param {number} nextYearlyAmountNonExpress - yearly amount of non express prestation for next years (HT)\n * @param {PartialExercicePrestationExpress[]} listPartialExercicePrestationExpress - list of exercicePrestation linked to idPrestation -> used to get express\n * @param {IRegulation[]} listRegulations - list of regulations linked to idPrestation (TTC)\n * @returns { IPayment[] } list of payment to create for billing auto, after each presta go to onBoarding\n */\nconst calculatePaymentsAuto = (params: ParamsForPaymentsAuto):PaymentAuto[] => {\n const { idTypeBrand, goToClient, isWithApplicationFees, firstExerciceNonExpresssEndDate, idPrestation, idLegalForm, prestationList, idVat, yearlyAmountNonExpress, nextYearlyAmountNonExpress, listPartialExercicePrestationExpress, listRegulations } = params;\n const initializedPaymentDate = dayjs().endOf('month').diff(dayjs(), 'day') < 3/* || dayjs().date() >= 15 */\n ? dayjs().add(2, 'month').startOf('month').toDate()\n : dayjs().add(1, 'month').startOf('month').toDate();\n\n // On récupère la grille tarifaire pour savoir si les tarifs sont HT ou TTC \n // et pour connaitre le montant du coût de l'app\n if (!prestationList.id) throw new Error('idPrestationList manquant');\n const priceGrid = getPriceGrid(idTypeBrand, prestationList.id);\n if (!priceGrid) throw new Error('Impossible de trouver la grille tarifaire correspondante');\n const { applicationCost, priceWithTaxesIncluded } = priceGrid;\n const applicationCostTotalTTC = (priceWithTaxesIncluded ? applicationCost : getTaxesIncludedAmount(applicationCost, idVat)) * 12;\n const applicationFeesAmountTTC = getApplicationFeesAmount(idLegalForm, idVat);\n\n if (prestationList?.isCatalog || !prestationList?.isComptable) throw new Error('Ce type de prestation ne correspond pas aux conditions attendues.');\n // if (!listRegulations?.length) throw new Error('List of regulations can not be empty');\n if (listPartialExercicePrestationExpress.length && listPartialExercicePrestationExpress?.some((ep: PartialExercicePrestationExpress) => !ep?.startDate)) throw new Error('Start date of some exercice are missing');\n if (!listRegulations?.every((r: IRegulation) => !!r?.amount || !!r?.amountUsed)) throw new Error('Amount and amountUsed are missing for regulations');\n\n const nbExoExpress = listPartialExercicePrestationExpress.length;\n const listPayments:PaymentAuto[] = [];\n\n // on récupère le/les premiers réglements effectués, non alloués\n // const isApplicationFeesAlreadyPaid = false;\n const sumRegulations = listRegulations.reduce((acc: number, r:IRegulation) => {\n //Si la regulation est rattachée à un paymentExpectation, on récupère le détail\n // et on ne prend que les frais de dossier (applicationFee) + le montant de la compta (accountingFee)\n \n // Commenté temporairement :\n // Pour l'instant, on ne prend plus en compte les paymentExpectation :\n // On part du principe que si isWithApplicationFees = true, alors les regulations contiennent les frais de dossier\n // sinon, ils sont offerts et n'apparaissent pas\n /* if (r.paymentsExpectation?.payload) {\n const payload = JSON.parse(r.paymentsExpectation?.payload);\n if (+payload?.applicationFee > 0) {\n isApplicationFeesAlreadyPaid = true;\n acc += +payload?.applicationFee;\n }\n if (+payload?.accountingFee > 0) acc += +payload?.accountingFee;\n return acc;\n } else {\n return acc + r.amount - r.amountUsed;\n } */\n return acc + r.amount - r.amountUsed;\n }, 0);\n let remainingAmount = -sumRegulations; //TTC\n let paymentDate = initializedPaymentDate;\n\n //On order les exercicePrestation par startDate ASC et id ASC\n listPartialExercicePrestationExpress.sort((a, b) => {\n const aStartDate = a?.startDate as Date;\n const bStartDate = b?.startDate as Date;\n return dayjs(aStartDate).diff(bStartDate);\n });\n\n // Si les frais de dossiers sont facturés, on ajoute un paiement sur le mois en cours\n if (isWithApplicationFees) {\n listPayments.push({\n amount: applicationFeesAmountTTC, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,\n comment: 'Frais de dossier',\n });\n remainingAmount += applicationFeesAmountTTC;\n }\n \n // =========================\n // EXPRESS\n // =========================\n listPartialExercicePrestationExpress.forEach((exercicePrestation:PartialExercicePrestationExpress, indexEP: number) => {\n const remainingBeforeThisExo = remainingAmount;\n\n remainingAmount += !priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount; //TTC\n \n \n // Si le premier règlement couvre le coût de cet exercicePrestation, \n // on créé un paiement pour cet exo et on passe au suivant\n if (remainingAmount <= 0) {\n listPayments.push({\n amount: !priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n return;\n } else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {\n // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo \n listPayments.push({\n amount: -remainingBeforeThisExo, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n }\n \n //express : on étale en countExpressMonthlyPayment (nb de mensualités)\n let remainingAmountByExercicePrestation = remainingAmount; //TTC\n let countExpressMonthlyPayment = exercicePrestation?.countExpressMonthlyPayment ?? 3; //TTC\n //Si un premier règlement est généré avec le montant des regulations, on le considère comme une mensualité (unioquement pour le premier express et la première mensualité)\n if (indexEP === 0 && sumRegulations > 0) countExpressMonthlyPayment -= 1;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countExpressMonthlyPayment; //TTC\n for (let index = 1; index <= countExpressMonthlyPayment; index++) {\n // On arrondis les 11 premières mensualités, mais on récupère le reste pour la dernière mensualité, pour éviter les centimes perdus en arrondis\n // et on applique le taux de tva de la société\n const amount = index < countExpressMonthlyPayment ? monthlyAmount : remainingAmountByExercicePrestation; //TTC\n \n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n remainingAmount = 0;\n });\n\n // =========================\n // NON EXPRESS\n // =========================\n // on lisse sur le nb de mois restants (avec au minimum 3 mensualités)\n // Si un seul exo express, alors on met les paiements de l'exo actuel en parallèle\n // sinon, ils sont à la suite des express\n if (nbExoExpress <= 1) paymentDate = initializedPaymentDate;\n let exerciceEndDate = dayjs(firstExerciceNonExpresssEndDate).toDate();\n\n let hasGeneratedWholeYear = false;\n let isFirstNonExpress = true;\n \n //On génère des paiements jusqu'à ce qu'un exercice soit entier (12 mois), non express\n while (!hasGeneratedWholeYear) {\n \n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n const exoAmount = isFirstNonExpress ? yearlyAmountNonExpress : nextYearlyAmountNonExpress;\n const remainingBeforeThisExo = remainingAmount;\n remainingAmount += priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat);\n\n // Si le premier règlement couvre le coût de cet exercicePrestation, \n // on créé un paiement pour cet exo et on passe au suivant\n if (remainingAmount <= 0) {\n listPayments.push({\n amount: priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat), //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();\n continue;\n } else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {\n // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo \n listPayments.push({\n amount: -remainingBeforeThisExo, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n }\n\n let remainingAmountByExercicePrestation = remainingAmount;\n\n // - frais d'application dès les second exo non express\n if (!isFirstNonExpress) remainingAmountByExercicePrestation += applicationCostTotalTTC;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd; //TTC\n\n if (monthlyAmount > 0) {\n for (let index = 1; index <= countMonthsBeforeExerciceEnd; index++) {\n let amount = index < countMonthsBeforeExerciceEnd ? monthlyAmount : remainingAmountByExercicePrestation;\n \n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n amount = calculateFees(amount, goToClient, paymentDate);\n \n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();\n }\n remainingAmount = 0;\n if (countMonthsBeforeExerciceEnd === 12) hasGeneratedWholeYear = true;\n isFirstNonExpress = false;\n }\n\n remainingAmount = 0;\n\n // =========================\n // JUSQU'EN DECEMBRE\n // =========================\n // On applique le taux de tva de la société, si besoin, selon la grille tarifaire\n remainingAmount += priceWithTaxesIncluded ? nextYearlyAmountNonExpress : getTaxesIncludedAmount(nextYearlyAmountNonExpress, idVat);\n\n let remainingAmountByExercicePrestation = remainingAmount;\n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n // - frais d'application dès les second exo non express\n remainingAmountByExercicePrestation += applicationCostTotalTTC;\n \n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd;\n \n // Si aucun paiement généré, on stoppe là\n if (!listPayments.length) return [];\n\n while (dayjs(listPayments.slice(-1)[0].datePayment).month() < 11) {\n let amount = monthlyAmount;\n\n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n // - frais d'application dès les second exo non express\n amount = calculateFees(amount, goToClient, paymentDate);\n\n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n\n return listPayments;\n};\n\nexport {\n groupPaymentsByServiceType, calculatePaymentsAuto,\n};"]}
@@ -479,9 +479,9 @@ export const GlobalRegime = {
479
479
  ],
480
480
  },
481
481
  SELARL: {
482
- name: 'SELARL',
482
+ name: 'SELARL / SELARLU',
483
483
  id: 10,
484
- idLegalForms: [LegalForm.SELARL.id],
484
+ idLegalForms: [LegalForm.SELARL.id, LegalForm.SELARLU.id],
485
485
  choices: [
486
486
  {
487
487
  name: 'Profession libérale (BNC - IR - 2035)',
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalRegime.js","sourceRoot":"","sources":["../../../../ts/types/Enum/GlobalRegime.ts"],"names":[],"mappings":"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","sourcesContent":["import { Activity } from './Activity';\nimport { CerfaType } from './CerfaType';\nimport { FiscalRegime } from './FiscalRegime';\nimport { LegalForm } from './LegalForm';\nimport { ProfitsType } from './ProfitsType';\nimport { TaxSystem } from './TaxSystem';\n/** this enum is about all the choices by legalForm for a society a declaration. All choices return multiple informations:\n * idActivity: the activity of the society (1: Prestataire de services, 2: Commerçant, 3: Profession libérale, 4: Autres)\n * idTaxSystem: the taxSystem of the society (1: IS, 2:IR, 3: N/A)\n * profitsType: the type of profits of the society (1: BIC, 2:BNC)\n * realFiscalRegime: The FiscalRegime of the society (1: RS, 2: RN, 3:NA)\n */\nexport type GlobalRegimeTypeChoicesContent = {\n name: string;\n idActivity: Activity,\n idTaxSystem: TaxSystem;\n profitsType?: ProfitsType;\n idFiscalRegime: FiscalRegime;\n declaration: number;\n annexe?: number,\n hidden: boolean,\n};\nexport type GlobalRegimeTypeContent = {\n name: string;\n id: number;\n idLegalForms: number[];\n choices: GlobalRegimeTypeChoicesContent[]\n};\nexport type GlobalRegimeType = {\n [key: string]: GlobalRegimeTypeContent\n};\nexport const GlobalRegime: GlobalRegimeType = {\n ENTREPRISE_INDIVIDUELLE: {\n name: 'Entreprise Individuelle',\n id: 1,\n idLegalForms: [LegalForm.EI.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Profession libérale (BNC - IR - 2035)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Profession libérale (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n ],\n },\n EIRL: {\n name: 'EIRL',\n id: 2,\n idLegalForms: [LegalForm.EIRL.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Profession libérale (BNC - IR - 2035)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA, // FIXME: Pas de RS/RN ?\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Profession libérale (BNC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Profession libérale (BNC - IS - 2065 & 2050)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n AUTO_MICRO_ENTREPRENEUR: {\n name: 'Auto-entrepreneur / micro-entreprise',\n id: 3,\n idLegalForms: [LegalForm.AUTO_ENTREPRENEUR.id],\n choices: [\n {\n name: 'Activité négoce (achat/revente de marchandises) et prestation d\\'hébergement (Micro-BIC - 2042-C-Pro)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.NA,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2042_C_Pro,\n hidden: false,\n },\n {\n name: 'Presta de services commerciales ou artisanales (Micro-BIC - 2042-C-Pro)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.NA,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2042_C_Pro,\n hidden: false,\n },\n {\n name: 'Profession libérale (Micro-BNC - 2042-C-Pro)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.NA,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2042_C_Pro,\n hidden: false,\n },\n ],\n },\n ASSOCIATION: {\n name: 'Association',\n id: 4,\n idLegalForms: [LegalForm.ASSOCIATION.id],\n choices: [\n // {\n // name: 'Non fiscalisée si revenus de capitaux (2070)',\n // idActivity: Activity.AUTRES,\n // idTaxSystem: TaxSystem.IS,\n // idFiscalRegime: FiscalRegime.NA,\n // declaration: CerfaType.CERFA_2070,\n // },\n {\n name: 'Fiscalisée (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.AUTRES,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Fiscalisée (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.AUTRES,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n EURL_SARL: {\n name: 'EURL / SARL',\n id: 5,\n idLegalForms: [LegalForm.EURL.id, LegalForm.SARL.id, LegalForm.GIE.id ],\n choices: [\n {\n name: 'Presta de services (BNC - IR - 2035)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 && 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SAS_SASU: {\n name: 'SAS / SASU',\n id: 6,\n idLegalForms: [LegalForm.SAS.id, LegalForm.SASU.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SA: {\n name: 'SA',\n id: 7,\n idLegalForms: [LegalForm.SA.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SCI: {\n name: 'SCI',\n id: 8,\n idLegalForms: [LegalForm.SCI.id],\n choices: [\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n ],\n },\n SCP: {\n name: 'SCP',\n id: 9,\n idLegalForms: [LegalForm.SCP.id],\n choices: [\n {\n name: 'Presta de services (BNC - IR - 2035)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SELARL: {\n name: 'SELARL',\n id: 10,\n idLegalForms: [LegalForm.SELARL.id],\n choices: [\n {\n name: 'Profession libérale (BNC - IR - 2035)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Profession libérale (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Profession libérale (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n};"]}
1
+ {"version":3,"file":"GlobalRegime.js","sourceRoot":"","sources":["../../../../ts/types/Enum/GlobalRegime.ts"],"names":[],"mappings":"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","sourcesContent":["import { Activity } from './Activity';\nimport { CerfaType } from './CerfaType';\nimport { FiscalRegime } from './FiscalRegime';\nimport { LegalForm } from './LegalForm';\nimport { ProfitsType } from './ProfitsType';\nimport { TaxSystem } from './TaxSystem';\n/** this enum is about all the choices by legalForm for a society a declaration. All choices return multiple informations:\n * idActivity: the activity of the society (1: Prestataire de services, 2: Commerçant, 3: Profession libérale, 4: Autres)\n * idTaxSystem: the taxSystem of the society (1: IS, 2:IR, 3: N/A)\n * profitsType: the type of profits of the society (1: BIC, 2:BNC)\n * realFiscalRegime: The FiscalRegime of the society (1: RS, 2: RN, 3:NA)\n */\nexport type GlobalRegimeTypeChoicesContent = {\n name: string;\n idActivity: Activity,\n idTaxSystem: TaxSystem;\n profitsType?: ProfitsType;\n idFiscalRegime: FiscalRegime;\n declaration: number;\n annexe?: number,\n hidden: boolean,\n};\nexport type GlobalRegimeTypeContent = {\n name: string;\n id: number;\n idLegalForms: number[];\n choices: GlobalRegimeTypeChoicesContent[]\n};\nexport type GlobalRegimeType = {\n [key: string]: GlobalRegimeTypeContent\n};\nexport const GlobalRegime: GlobalRegimeType = {\n ENTREPRISE_INDIVIDUELLE: {\n name: 'Entreprise Individuelle',\n id: 1,\n idLegalForms: [LegalForm.EI.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Profession libérale (BNC - IR - 2035)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Profession libérale (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n ],\n },\n EIRL: {\n name: 'EIRL',\n id: 2,\n idLegalForms: [LegalForm.EIRL.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Profession libérale (BNC - IR - 2035)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA, // FIXME: Pas de RS/RN ?\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Profession libérale (BNC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Profession libérale (BNC - IS - 2065 & 2050)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n AUTO_MICRO_ENTREPRENEUR: {\n name: 'Auto-entrepreneur / micro-entreprise',\n id: 3,\n idLegalForms: [LegalForm.AUTO_ENTREPRENEUR.id],\n choices: [\n {\n name: 'Activité négoce (achat/revente de marchandises) et prestation d\\'hébergement (Micro-BIC - 2042-C-Pro)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.NA,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2042_C_Pro,\n hidden: false,\n },\n {\n name: 'Presta de services commerciales ou artisanales (Micro-BIC - 2042-C-Pro)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.NA,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2042_C_Pro,\n hidden: false,\n },\n {\n name: 'Profession libérale (Micro-BNC - 2042-C-Pro)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.NA,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2042_C_Pro,\n hidden: false,\n },\n ],\n },\n ASSOCIATION: {\n name: 'Association',\n id: 4,\n idLegalForms: [LegalForm.ASSOCIATION.id],\n choices: [\n // {\n // name: 'Non fiscalisée si revenus de capitaux (2070)',\n // idActivity: Activity.AUTRES,\n // idTaxSystem: TaxSystem.IS,\n // idFiscalRegime: FiscalRegime.NA,\n // declaration: CerfaType.CERFA_2070,\n // },\n {\n name: 'Fiscalisée (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.AUTRES,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Fiscalisée (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.AUTRES,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n EURL_SARL: {\n name: 'EURL / SARL',\n id: 5,\n idLegalForms: [LegalForm.EURL.id, LegalForm.SARL.id, LegalForm.GIE.id ],\n choices: [\n {\n name: 'Presta de services (BNC - IR - 2035)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 && 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SAS_SASU: {\n name: 'SAS / SASU',\n id: 6,\n idLegalForms: [LegalForm.SAS.id, LegalForm.SASU.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IR - 2031 + 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IR - 2031 + 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2031,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SA: {\n name: 'SA',\n id: 7,\n idLegalForms: [LegalForm.SA.id],\n choices: [\n {\n name: 'Artisan - commerçant (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Artisan - commerçant (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.COMMERCANT,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SCI: {\n name: 'SCI',\n id: 8,\n idLegalForms: [LegalForm.SCI.id],\n choices: [\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n ],\n },\n SCP: {\n name: 'SCP',\n id: 9,\n idLegalForms: [LegalForm.SCP.id],\n choices: [\n {\n name: 'Presta de services (BNC - IR - 2035)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Presta de services (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PRESTA_SERVICE,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n SELARL: {\n name: 'SELARL / SELARLU',\n id: 10,\n idLegalForms: [LegalForm.SELARL.id, LegalForm.SELARLU.id],\n choices: [\n {\n name: 'Profession libérale (BNC - IR - 2035)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IR,\n profitsType: ProfitsType.BNC,\n idFiscalRegime: FiscalRegime.NA,\n declaration: CerfaType.CERFA_2035,\n hidden: false,\n },\n {\n name: 'Profession libérale (BIC - IS - Réel simplifié - 2065 & 2033)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RS,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2033,\n hidden: false,\n },\n {\n name: 'Profession libérale (BIC - IS - Réel normal - 2065 & 2050)',\n idActivity: Activity.PROF_LIB,\n idTaxSystem: TaxSystem.IS,\n profitsType: ProfitsType.BIC,\n idFiscalRegime: FiscalRegime.RN,\n declaration: CerfaType.CERFA_2065,\n annexe: CerfaType.CERFA_2050,\n hidden: true,\n },\n ],\n },\n};"]}
@@ -60,6 +60,7 @@ export interface IPrestation {
60
60
  prestationJuridique?: IPrestation;
61
61
  prestationSocial?: IPrestation;
62
62
  prestationCreation?: IPrestation;
63
+ prestationControleFiscal?: IPrestation;
63
64
  societiesPrestations?: ISociety;
64
65
  prestationsDetailsBeforeExercice?: IExercicePrestation[];
65
66
  customersSignatures?: ICustomerSignature[];
@@ -1 +1 @@
1
- {"version":3,"file":"IPrestation.d.ts","sourceRoot":"","sources":["../../../../../ts/types/Interface/models/IPrestation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IPrestation.d.ts","sourceRoot":"","sources":["../../../../../ts/types/Interface/models/IPrestation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IPrestation.js","sourceRoot":"","sources":["../../../../../ts/types/Interface/models/IPrestation.ts"],"names":[],"mappings":"","sourcesContent":["import { IExercice } from './IExercice';\nimport { IPayment } from './IPayment';\nimport { IPrestationList } from './IPrestationList';\nimport { IPrestationComplementary } from './IPrestationComplementary';\nimport { ISociety } from './ISociety';\nimport { IExercicePrestation } from './IExercicePrestation';\nimport { ICustomerSignature } from './ICustomerSignature';\nimport { ITerminationList } from './ITerminationList';\nimport { IUser } from '../..';\n\n// prestations\nexport interface IPrestation {\n id?: number;\n numPrestation: string | null;\n statePrevi: number | null;\n archive: boolean;\n withStatuteDrafted: boolean | null;\n withCaptainContrat: boolean | null;\n withStatutesApportNature: boolean | null;\n withStatutesAutorisationTutelle: boolean | null;\n withStatutesFileAccre: boolean | null;\n paid: boolean | null;\n signed: boolean | null;\n toAdministratif: number | null;\n goToAdministratif: Date | null;\n administratifStatus: number;\n toConstitution: number;\n dateValidPrestation: Date | null;\n goToOnboarding: Date | null;\n dateLeavingOnboarding?: Date | null;\n goToClient: Date | null;\n goToFacturation?: Date | null;\n dateLeavingFacturation?: Date | null;\n scoring: number | null;\n isWithApplicationFees?: boolean;\n state: boolean;\n commentPdf: string | null;\n token: string | null;\n size: number | null;\n inProgress: number | null;\n idSociety: number;\n idPrestationList: number;\n idPrestationComplementary: number | null;\n gestionJuridique: boolean;\n idPrestationSocial: number | null;\n idPrestationJuridique: number | null;\n idPrestationCreation: number | null;\n idPrestationDeclarationIR: number | null;\n idPrestationControleFiscal: number | null;\n idOnBoarder: number | null;\n idStateAppointment: number | null;\n totalAmount?: number;\n discountAmount?: number;\n debitType?: string;\n createdAt?: Date | null;\n updatedAt?: Date | null;\n deletedAt?: Date | null;\n\n // Associations\n exercices?: IExercice[];\n prestationsPayments?: IPayment[];\n prestationsList?: IPrestationList;\n prestationsComplementary?: IPrestationComplementary;\n prestationJuridique?: IPrestation;\n prestationSocial?: IPrestation;\n prestationCreation?: IPrestation;\n societiesPrestations?: ISociety;\n prestationsDetailsBeforeExercice?: IExercicePrestation[];\n customersSignatures?: ICustomerSignature[];\n terminationList?: ITerminationList;\n onBoarder?: IUser;\n}"]}
1
+ {"version":3,"file":"IPrestation.js","sourceRoot":"","sources":["../../../../../ts/types/Interface/models/IPrestation.ts"],"names":[],"mappings":"","sourcesContent":["import { IExercice } from './IExercice';\nimport { IPayment } from './IPayment';\nimport { IPrestationList } from './IPrestationList';\nimport { IPrestationComplementary } from './IPrestationComplementary';\nimport { ISociety } from './ISociety';\nimport { IExercicePrestation } from './IExercicePrestation';\nimport { ICustomerSignature } from './ICustomerSignature';\nimport { ITerminationList } from './ITerminationList';\nimport { IUser } from '../..';\n\n// prestations\nexport interface IPrestation {\n id?: number;\n numPrestation: string | null;\n statePrevi: number | null;\n archive: boolean;\n withStatuteDrafted: boolean | null;\n withCaptainContrat: boolean | null;\n withStatutesApportNature: boolean | null;\n withStatutesAutorisationTutelle: boolean | null;\n withStatutesFileAccre: boolean | null;\n paid: boolean | null;\n signed: boolean | null;\n toAdministratif: number | null;\n goToAdministratif: Date | null;\n administratifStatus: number;\n toConstitution: number;\n dateValidPrestation: Date | null;\n goToOnboarding: Date | null;\n dateLeavingOnboarding?: Date | null;\n goToClient: Date | null;\n goToFacturation?: Date | null;\n dateLeavingFacturation?: Date | null;\n scoring: number | null;\n isWithApplicationFees?: boolean;\n state: boolean;\n commentPdf: string | null;\n token: string | null;\n size: number | null;\n inProgress: number | null;\n idSociety: number;\n idPrestationList: number;\n idPrestationComplementary: number | null;\n gestionJuridique: boolean;\n idPrestationSocial: number | null;\n idPrestationJuridique: number | null;\n idPrestationCreation: number | null;\n idPrestationDeclarationIR: number | null;\n idPrestationControleFiscal: number | null;\n idOnBoarder: number | null;\n idStateAppointment: number | null;\n totalAmount?: number;\n discountAmount?: number;\n debitType?: string;\n createdAt?: Date | null;\n updatedAt?: Date | null;\n deletedAt?: Date | null;\n\n // Associations\n exercices?: IExercice[];\n prestationsPayments?: IPayment[];\n prestationsList?: IPrestationList;\n prestationsComplementary?: IPrestationComplementary;\n prestationJuridique?: IPrestation;\n prestationSocial?: IPrestation;\n prestationCreation?: IPrestation;\n prestationControleFiscal?: IPrestation;\n societiesPrestations?: ISociety;\n prestationsDetailsBeforeExercice?: IExercicePrestation[];\n customersSignatures?: ICustomerSignature[];\n terminationList?: ITerminationList;\n onBoarder?: IUser;\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../ts/utils/payment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAe,qBAAqB,EAAiB,WAAW,EAA0B,MAAM,UAAU,CAAC;AAK5H,UAAU,gBAAiB,SAAQ,QAAQ;IACzC,IAAI,EAAE,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7D,YAAY,EAAE,QAAQ,EAAE,CAAA;CACzB;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,0BAA0B,aAAc,QAAQ,EAAE,UAAS,CAAC,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC,EAAE,KAA2D,gBAAgB,EAoCrM,CAAC;AAkBF;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,qBAAqB,WAAY,qBAAqB,KAAE,WAAW,EA4NxE,CAAC;AAEF,OAAO,EACL,0BAA0B,EAAE,qBAAqB,GAClD,CAAC"}
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../ts/utils/payment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAe,qBAAqB,EAAiB,WAAW,EAA0B,MAAM,UAAU,CAAC;AAK5H,UAAU,gBAAiB,SAAQ,QAAQ;IACzC,IAAI,EAAE,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7D,YAAY,EAAE,QAAQ,EAAE,CAAA;CACzB;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,0BAA0B,aAAc,QAAQ,EAAE,UAAS,CAAC,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC,EAAE,KAA2D,gBAAgB,EAoCrM,CAAC;AAkBF;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,qBAAqB,WAAY,qBAAqB,KAAE,WAAW,EA4PxE,CAAC;AAEF,OAAO,EACL,0BAA0B,EAAE,qBAAqB,GAClD,CAAC"}
@@ -129,38 +129,53 @@ const calculatePaymentsAuto = (params) => {
129
129
  const bStartDate = b?.startDate;
130
130
  return dayjs(aStartDate).diff(bStartDate);
131
131
  });
132
- //On ajoute un paiement initial correspondant à la somme des régulations
133
- if (sumRegulations) {
132
+ // Si les frais de dossiers sont facturés, on ajoute un paiement sur le mois en cours
133
+ if (isWithApplicationFees) {
134
134
  listPayments.push({
135
- amount: isWithApplicationFees ? sumRegulations - applicationFeesAmountTTC : sumRegulations, //TTC
135
+ amount: applicationFeesAmountTTC, //TTC
136
136
  isPaid: true,
137
137
  datePayment: dayjs().toDate(),
138
138
  idPrestation,
139
139
  idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,
140
140
  closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,
141
+ comment: 'Frais de dossier',
141
142
  });
142
- // Si les frais de dossiers sont facturés, on ajoute un paiement sur le mois en cours
143
- if (isWithApplicationFees)
144
- listPayments.push({
145
- amount: applicationFeesAmountTTC, //TTC
146
- isPaid: true,
147
- datePayment: dayjs().toDate(),
148
- idPrestation,
149
- idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,
150
- closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,
151
- comment: 'Frais de dossier',
152
- });
143
+ remainingAmount += applicationFeesAmountTTC;
153
144
  }
154
145
  // =========================
155
146
  // EXPRESS
156
147
  // =========================
157
148
  listPartialExercicePrestationExpress.forEach((exercicePrestation, indexEP) => {
149
+ const remainingBeforeThisExo = remainingAmount;
158
150
  remainingAmount += !priceWithTaxesIncluded
159
151
  ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat)
160
152
  : exercicePrestation.totalAmount; //TTC
161
- //Si le premier règlement couvre le coût de cet exercicePrestation, on passe au suivant
162
- if (remainingAmount <= 0)
153
+ // Si le premier règlement couvre le coût de cet exercicePrestation,
154
+ // on créé un paiement pour cet exo et on passe au suivant
155
+ if (remainingAmount <= 0) {
156
+ listPayments.push({
157
+ amount: !priceWithTaxesIncluded
158
+ ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat)
159
+ : exercicePrestation.totalAmount, //TTC
160
+ isPaid: true,
161
+ datePayment: dayjs().toDate(),
162
+ idPrestation,
163
+ idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,
164
+ closingDate: exercicePrestation.endDate,
165
+ });
163
166
  return;
167
+ }
168
+ else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {
169
+ // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo
170
+ listPayments.push({
171
+ amount: -remainingBeforeThisExo, //TTC
172
+ isPaid: true,
173
+ datePayment: dayjs().toDate(),
174
+ idPrestation,
175
+ idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,
176
+ closingDate: exercicePrestation.endDate,
177
+ });
178
+ }
164
179
  //express : on étale en countExpressMonthlyPayment (nb de mensualités)
165
180
  let remainingAmountByExercicePrestation = remainingAmount; //TTC
166
181
  let countExpressMonthlyPayment = exercicePrestation?.countExpressMonthlyPayment ?? 3; //TTC
@@ -202,16 +217,33 @@ const calculatePaymentsAuto = (params) => {
202
217
  if (countMonthsBeforeExerciceEnd < 3)
203
218
  countMonthsBeforeExerciceEnd = 3;
204
219
  const exoAmount = isFirstNonExpress ? yearlyAmountNonExpress : nextYearlyAmountNonExpress;
220
+ const remainingBeforeThisExo = remainingAmount;
205
221
  remainingAmount += priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat);
206
- //TODO: CAS A TESTER : si sumRegulations couvre le premier exercice par exemple (cas rar mais à envisager)
207
- //Si le premier règlement couvre le coût de cet exercicePrestation, on passe au suivant
208
- // if (remainingAmount <= 0) {
209
- // continue;
210
- // }
211
- // Si on a ajouté une ligne pour les applications fees, alors on les déduit du montant total
212
- /* if (isFirstNonExpress && isWithApplicationFees && !isApplicationFeesAlreadyPaid) {
213
- remainingAmount -= applicationFeesAmountTTC;
214
- } */
222
+ // Si le premier règlement couvre le coût de cet exercicePrestation,
223
+ // on créé un paiement pour cet exo et on passe au suivant
224
+ if (remainingAmount <= 0) {
225
+ listPayments.push({
226
+ amount: priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat), //TTC
227
+ isPaid: true,
228
+ datePayment: dayjs().toDate(),
229
+ idPrestation,
230
+ idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,
231
+ closingDate: exerciceEndDate,
232
+ });
233
+ exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();
234
+ continue;
235
+ }
236
+ else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {
237
+ // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo
238
+ listPayments.push({
239
+ amount: -remainingBeforeThisExo, //TTC
240
+ isPaid: true,
241
+ datePayment: dayjs().toDate(),
242
+ idPrestation,
243
+ idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,
244
+ closingDate: exerciceEndDate,
245
+ });
246
+ }
215
247
  let remainingAmountByExercicePrestation = remainingAmount;
216
248
  // - frais d'application dès les second exo non express
217
249
  if (!isFirstNonExpress)
@@ -1 +1 @@
1
- {"version":3,"file":"payment.js","sourceRoot":"","sources":["../../../ts/utils/payment.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAgD,aAAa,EAAe,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAC5H,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAOtE;;;;;;;;;GASG;AACH,MAAM,0BAA0B,GAAG,CAAC,QAAoB,EAAE,QAAoE,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,CAAC,EAAsB,EAAE;IACzM,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,IAAI,KAAK,CAAC,CAAC;IAChH,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,IAAI,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC3J,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,IAAI,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;IACjK,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAErN,MAAM,cAAc,GAAuB,EAAE,CAAC;IAC9C,IAAI,eAAe,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5D,cAAc,CAAC,IAAI,CAAC;YAClB,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,kBAAkB;YACzC,IAAI,EAAE,aAAa;YACnB,YAAY,EAAE,eAAe;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,cAAc,CAAC,IAAI,CAAC;YAClB,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,kBAAkB;YACtC,IAAI,EAAE,UAAU;YAChB,YAAY,EAAE,YAAY;SAC3B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5D,cAAc,CAAC,IAAI,CAAC;YAClB,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,kBAAkB;YACzC,IAAI,EAAE,aAAa;YACnB,YAAY,EAAE,eAAe;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,cAAc,CAAC,IAAI,CAAC;YAClB,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAkB;YACrC,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,UAAgB,EAAE,WAAiB,EAAS,EAAE;IACnF,MAAM,qBAAqB,GAAG,MAAM,CAAC;IAErC,MAAM,gCAAgC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhF,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,gCAAgC,CAAC;QAClG,oCAAoC;QACpC,8GAA8G;QAC9G,8DAA8D;QAC9D,oDAAoD;QACpD,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,qBAAqB,GAAG,CAAC,MAA6B,EAAgB,EAAE;IAC5E,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAChQ,MAAM,sBAAsB,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA,8BAA8B;QAC1G,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;QACnD,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IAEtD,4EAA4E;IAC5E,gDAAgD;IAChD,IAAI,CAAC,cAAc,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC5F,MAAM,EAAE,eAAe,EAAE,sBAAsB,EAAE,GAAG,SAAS,CAAC;IAC9D,MAAM,uBAAuB,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,sBAAsB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;IACjI,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAE9E,IAAI,cAAc,EAAE,SAAS,IAAI,CAAC,cAAc,EAAE,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACpJ,yFAAyF;IACzF,IAAI,oCAAoC,CAAC,MAAM,IAAI,oCAAoC,EAAE,IAAI,CAAC,CAAC,EAAoC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACpN,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEtJ,MAAM,YAAY,GAAG,oCAAoC,CAAC,MAAM,CAAC;IACjE,MAAM,YAAY,GAAiB,EAAE,CAAC;IAEtC,gEAAgE;IAChE,8CAA8C;IAC9C,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,CAAa,EAAE,EAAE;QAC3E,+EAA+E;QAC/E,qGAAqG;QAErG,4BAA4B;QAC5B,sEAAsE;QACtE,kHAAkH;QAClH,gDAAgD;QAChD;;;;;;;;;;YAUI;QACJ,OAAO,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC;IACvC,CAAC,EAAE,CAAC,CAAC,CAAC;IACN,IAAI,eAAe,GAAG,CAAC,cAAc,CAAC,CAAE,KAAK;IAC7C,IAAI,WAAW,GAAG,sBAAsB,CAAC;IAEzC,6DAA6D;IAC7D,oCAAoC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjD,MAAM,UAAU,GAAG,CAAC,EAAE,SAAiB,CAAC;QACxC,MAAM,UAAU,GAAG,CAAC,EAAE,SAAiB,CAAC;QACxC,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,IAAI,cAAc,EAAE,CAAC;QACnB,YAAY,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,cAAc,GAAG,wBAAwB,CAAC,CAAC,CAAC,cAAc,EAAG,KAAK;YAClG,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE;YAC7B,YAAY;YACZ,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE;YACrF,WAAW,EAAE,oCAAoC,EAAE,MAAM,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B;SAC9I,CAAC,CAAC;QAEH,qFAAqF;QACrF,IAAI,qBAAqB;YACvB,YAAY,CAAC,IAAI,CAAC;gBAChB,MAAM,EAAE,wBAAwB,EAAG,KAAK;gBACxC,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE;gBAC7B,YAAY;gBACZ,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE;gBACrF,WAAW,EAAE,oCAAoC,EAAE,MAAM,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B;gBAC7I,OAAO,EAAE,kBAAkB;aAC5B,CAAC,CAAC;IACP,CAAC;IAED,4BAA4B;IAC5B,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC,CAAC,OAAO,CAAC,CAAC,kBAAmD,EAAE,OAAe,EAAE,EAAE;QACpH,eAAe,IAAI,CAAC,sBAAsB;YACxC,CAAC,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC;YAC/D,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,KAAK;QACzC,uFAAuF;QACvF,IAAI,eAAe,IAAI,CAAC;YAAE,OAAO;QAEjC,sEAAsE;QACtE,IAAI,mCAAmC,GAAG,eAAe,CAAC,CAAC,KAAK;QAChE,IAAI,0BAA0B,GAAG,kBAAkB,EAAE,0BAA0B,IAAI,CAAC,CAAC,CAAC,KAAK;QAC3F,0KAA0K;QAC1K,IAAI,OAAO,KAAK,CAAC,IAAI,cAAc,GAAG,CAAC;YAAE,0BAA0B,IAAI,CAAC,CAAC;QAEzE,MAAM,aAAa,GAAG,mCAAmC,GAAG,0BAA0B,CAAC,CAAC,KAAK;QAC7F,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,0BAA0B,EAAE,KAAK,EAAE,EAAE,CAAC;YACjE,gJAAgJ;YAChJ,8CAA8C;YAC9C,MAAM,MAAM,GAAG,KAAK,GAAG,0BAA0B,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAE,KAAK;YAE/G,YAAY,CAAC,IAAI,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG;gBACtC,WAAW,EAAE,WAAW;gBACxB,YAAY;gBACZ,eAAe,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE;gBAC9C,WAAW,EAAE,kBAAkB,CAAC,OAAO;aACxC,CAAC,CAAC;YACH,mCAAmC,IAAI,aAAa,CAAC;YACrD,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7E,CAAC;QACD,eAAe,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,oBAAoB;IACpB,4BAA4B;IAC5B,sEAAsE;IACtE,kFAAkF;IAClF,yCAAyC;IACzC,IAAI,YAAY,IAAI,CAAC;QAAE,WAAW,GAAG,sBAAsB,CAAC;IAC5D,IAAI,eAAe,GAAG,KAAK,CAAC,+BAA+B,CAAC,CAAC,MAAM,EAAE,CAAC;IAEtE,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAE7B,sFAAsF;IACtF,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAE9B,iHAAiH;QACjH,IAAI,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACvG,IAAI,4BAA4B,GAAG,CAAC;YAAE,4BAA4B,GAAG,CAAC,CAAC;QAEvE,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAC1F,eAAe,IAAI,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAEjG,0GAA0G;QAC1G,uFAAuF;QACvF,8BAA8B;QAC9B,cAAc;QACd,IAAI;QAEJ,4FAA4F;QAC5F;;YAEI;QAEJ,IAAI,mCAAmC,GAAG,eAAe,CAAC;QAE1D,uDAAuD;QACvD,IAAI,CAAC,iBAAiB;YAAE,mCAAmC,IAAI,uBAAuB,CAAC;QAEvF,MAAM,aAAa,GAAG,mCAAmC,GAAG,4BAA4B,CAAC,CAAE,KAAK;QAEhG,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,4BAA4B,EAAE,KAAK,EAAE,EAAE,CAAC;gBACnE,IAAI,MAAM,GAAG,KAAK,GAAG,4BAA4B,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAmC,CAAC;gBAExG,iDAAiD;gBACjD,yGAAyG;gBACzG,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;gBAExD,YAAY,CAAC,IAAI,CAAC;oBAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG;oBACtC,WAAW,EAAE,WAAW;oBACxB,YAAY;oBACZ,eAAe,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE;oBAC9C,WAAW,EAAE,eAAe;iBAC7B,CAAC,CAAC;gBACH,mCAAmC,IAAI,aAAa,CAAC;gBACrD,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;YAC7E,CAAC;YACD,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QACnG,CAAC;QACD,eAAe,GAAG,CAAC,CAAC;QACpB,IAAI,4BAA4B,KAAK,EAAE;YAAE,qBAAqB,GAAG,IAAI,CAAC;QACtE,iBAAiB,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,eAAe,GAAG,CAAC,CAAC;IAEpB,4BAA4B;IAC5B,uBAAuB;IACvB,4BAA4B;IAC5B,iFAAiF;IACjF,eAAe,IAAI,sBAAsB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IAEnI,IAAI,mCAAmC,GAAG,eAAe,CAAC;IAC1D,iHAAiH;IACjH,IAAI,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACvG,IAAI,4BAA4B,GAAG,CAAC;QAAE,4BAA4B,GAAG,CAAC,CAAC;IAEvE,uDAAuD;IACvD,mCAAmC,IAAI,uBAAuB,CAAC;IAE/D,MAAM,aAAa,GAAG,mCAAmC,GAAG,4BAA4B,CAAC;IAEzF,yCAAyC;IACzC,IAAI,CAAC,YAAY,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEpC,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;QACjE,IAAI,MAAM,GAAG,aAAa,CAAC;QAE3B,iDAAiD;QACjD,yGAAyG;QACzG,uDAAuD;QACvD,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAExD,YAAY,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG;YACtC,WAAW,EAAE,WAAW;YACxB,YAAY;YACZ,eAAe,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE;YAC9C,WAAW,EAAE,eAAe;SAC7B,CAAC,CAAC;QACH,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7E,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,OAAO,EACL,0BAA0B,EAAE,qBAAqB,GAClD,CAAC","sourcesContent":["'use strict';\n\nimport { IPayment, IRegulation, ParamsForPaymentsAuto, PaymentMethod, PaymentAuto, getTaxesIncludedAmount } from '../types';\nimport * as dayjs from 'dayjs';\nimport { PartialExercicePrestationExpress } from '../types/Interface/api/payment/Util';\nimport { getApplicationFeesAmount, getPriceGrid } from './prestation';\n\ninterface PaymentsWithList extends IPayment {\n type: 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther',\n listPayments: IPayment[]\n}\n\n/**\n * A partir d'une liste de payment (avec include jusqu'à prestationList, \n * avec en attributs 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther')\n * permet de récupérer uniquement le premier paiement de chaque type \n * et les autres payments dans listPayments\n * avec possibilité de filtrer avec le tableau de filtres\n * @param payments \n * @param types \n * @returns \n */\nconst groupPaymentsByServiceType = (payments: IPayment[], types: ('isComptable' | 'isJuridique' | 'isSocial' | 'isOther')[] = ['isComptable', 'isJuridique', 'isSocial', 'isOther']): PaymentsWithList[] => {\n const prestaComptable = payments.filter((el) => el?.paymentsPrestations?.prestationsList?.isComptable ?? false);\n const prestaSocial = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isSocial);\n const prestaJuridique = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isJuridique);\n const prestaOther = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && !el?.paymentsPrestations?.prestationsList?.isJuridique && !el?.paymentsPrestations?.prestationsList?.isSocial);\n \n const societyPayment: PaymentsWithList[] = [];\n if (prestaComptable.length && types.includes('isComptable')) {\n societyPayment.push({\n ...prestaComptable[0], // Données de base\n type: 'isComptable',\n listPayments: prestaComptable,\n });\n }\n if (prestaSocial.length && types.includes('isSocial')) {\n societyPayment.push({\n ...prestaSocial[0], // Données de base\n type: 'isSocial',\n listPayments: prestaSocial,\n });\n }\n if (prestaJuridique.length && types.includes('isJuridique')) {\n societyPayment.push({\n ...prestaJuridique[0], // Données de base\n type: 'isJuridique',\n listPayments: prestaJuridique,\n });\n }\n if (prestaOther.length && types.includes('isOther')) {\n societyPayment.push({\n ...prestaOther[0], // Données de base\n type: 'isOther',\n listPayments: prestaOther,\n });\n }\n return societyPayment;\n};\n\nconst calculateFees = (amount: number, goToClient: Date, paymentDate: Date):number => {\n const yearlyPriceIncreasing = 1.0275;\n\n const oneYearLessIfIn3LastMonthsOfYear = dayjs(goToClient).month() >= 9 ? 1 : 0;\n\n if (dayjs(paymentDate).year() - dayjs().year() > 0) {\n const nbYearsMore = dayjs(paymentDate).year() - dayjs().year() - oneYearLessIfIn3LastMonthsOfYear;\n // on applique X fois l'augmentation\n // ex. : si on lance l'appel en 2024, et qu'on génére un paiement pour 2026, on applique 2 fois l'augmentation\n // soit amount * yearlyPriceIncreasing * yearlyPriceIncreasing\n // soit amount * yearlyPriceIncreasing ^ nbYearsMore\n amount = amount * Math.pow(yearlyPriceIncreasing, nbYearsMore);\n }\n return amount;\n};\n\n/**\n// * @param {number} firstPaymentAmount - amount of the first payment (first regulation of the customer)\n * @param {Date} firstExerciceNonExpresssEndDate - end date of the first exercice non express\n * @param {number} idPrestation - prestation id\n * @param {number} idLegalForm - legal form id of the society\n * @param {boolean} isWithApplicationFees - if the prestation has application fees to paid\n * @param {IPrestationList} prestationList - type of prestation (hidden: 0, isCatalog: 1, isComptable: 1)\n * @param {number} idVat - vat id of society linked\n * @param {number} yearlyAmountNonExpress - yearly amount of non express prestation (HT)\n * @param {number} nextYearlyAmountNonExpress - yearly amount of non express prestation for next years (HT)\n * @param {PartialExercicePrestationExpress[]} listPartialExercicePrestationExpress - list of exercicePrestation linked to idPrestation -> used to get express\n * @param {IRegulation[]} listRegulations - list of regulations linked to idPrestation (TTC)\n * @returns { IPayment[] } list of payment to create for billing auto, after each presta go to onBoarding\n */\nconst calculatePaymentsAuto = (params: ParamsForPaymentsAuto):PaymentAuto[] => {\n const { idTypeBrand, goToClient, isWithApplicationFees, firstExerciceNonExpresssEndDate, idPrestation, idLegalForm, prestationList, idVat, yearlyAmountNonExpress, nextYearlyAmountNonExpress, listPartialExercicePrestationExpress, listRegulations } = params;\n const initializedPaymentDate = dayjs().endOf('month').diff(dayjs(), 'day') < 3/* || dayjs().date() >= 15 */\n ? dayjs().add(2, 'month').startOf('month').toDate()\n : dayjs().add(1, 'month').startOf('month').toDate();\n\n // On récupère la grille tarifaire pour savoir si les tarifs sont HT ou TTC \n // et pour connaitre le montant du coût de l'app\n if (!prestationList.id) throw new Error('idPrestationList manquant');\n const priceGrid = getPriceGrid(idTypeBrand, prestationList.id);\n if (!priceGrid) throw new Error('Impossible de trouver la grille tarifaire correspondante');\n const { applicationCost, priceWithTaxesIncluded } = priceGrid;\n const applicationCostTotalTTC = (priceWithTaxesIncluded ? applicationCost : getTaxesIncludedAmount(applicationCost, idVat)) * 12;\n const applicationFeesAmountTTC = getApplicationFeesAmount(idLegalForm, idVat);\n\n if (prestationList?.isCatalog || !prestationList?.isComptable) throw new Error('Ce type de prestation ne correspond pas aux conditions attendues.');\n // if (!listRegulations?.length) throw new Error('List of regulations can not be empty');\n if (listPartialExercicePrestationExpress.length && listPartialExercicePrestationExpress?.some((ep: PartialExercicePrestationExpress) => !ep?.startDate)) throw new Error('Start date of some exercice are missing');\n if (!listRegulations?.every((r: IRegulation) => !!r?.amount || !!r?.amountUsed)) throw new Error('Amount and amountUsed are missing for regulations');\n\n const nbExoExpress = listPartialExercicePrestationExpress.length;\n const listPayments:PaymentAuto[] = [];\n\n // on récupère le/les premiers réglements effectués, non alloués\n // const isApplicationFeesAlreadyPaid = false;\n const sumRegulations = listRegulations.reduce((acc: number, r:IRegulation) => {\n //Si la regulation est rattachée à un paymentExpectation, on récupère le détail\n // et on ne prend que les frais de dossier (applicationFee) + le montant de la compta (accountingFee)\n \n // Commenté temporairement :\n // Pour l'instant, on ne prend plus en compte les paymentExpectation :\n // On part du principe que si isWithApplicationFees = true, alors les regulations contiennent les frais de dossier\n // sinon, ils sont offerts et n'apparaissent pas\n /* if (r.paymentsExpectation?.payload) {\n const payload = JSON.parse(r.paymentsExpectation?.payload);\n if (+payload?.applicationFee > 0) {\n isApplicationFeesAlreadyPaid = true;\n acc += +payload?.applicationFee;\n }\n if (+payload?.accountingFee > 0) acc += +payload?.accountingFee;\n return acc;\n } else {\n return acc + r.amount - r.amountUsed;\n } */\n return acc + r.amount - r.amountUsed;\n }, 0);\n let remainingAmount = -sumRegulations; //TTC\n let paymentDate = initializedPaymentDate;\n\n //On order les exercicePrestation par startDate ASC et id ASC\n listPartialExercicePrestationExpress.sort((a, b) => {\n const aStartDate = a?.startDate as Date;\n const bStartDate = b?.startDate as Date;\n return dayjs(aStartDate).diff(bStartDate);\n });\n\n //On ajoute un paiement initial correspondant à la somme des régulations\n if (sumRegulations) {\n listPayments.push({\n amount: isWithApplicationFees ? sumRegulations - applicationFeesAmountTTC : sumRegulations, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,\n });\n\n // Si les frais de dossiers sont facturés, on ajoute un paiement sur le mois en cours\n if (isWithApplicationFees)\n listPayments.push({\n amount: applicationFeesAmountTTC, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,\n comment: 'Frais de dossier',\n });\n }\n \n // =========================\n // EXPRESS\n // =========================\n listPartialExercicePrestationExpress.forEach((exercicePrestation:PartialExercicePrestationExpress, indexEP: number) => {\n remainingAmount += !priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount; //TTC\n //Si le premier règlement couvre le coût de cet exercicePrestation, on passe au suivant\n if (remainingAmount <= 0) return;\n \n //express : on étale en countExpressMonthlyPayment (nb de mensualités)\n let remainingAmountByExercicePrestation = remainingAmount; //TTC\n let countExpressMonthlyPayment = exercicePrestation?.countExpressMonthlyPayment ?? 3; //TTC\n //Si un premier règlement est généré avec le montant des regulations, on le considère comme une mensualité (unioquement pour le premier express et la première mensualité)\n if (indexEP === 0 && sumRegulations > 0) countExpressMonthlyPayment -= 1;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countExpressMonthlyPayment; //TTC\n for (let index = 1; index <= countExpressMonthlyPayment; index++) {\n // On arrondis les 11 premières mensualités, mais on récupère le reste pour la dernière mensualité, pour éviter les centimes perdus en arrondis\n // et on applique le taux de tva de la société\n const amount = index < countExpressMonthlyPayment ? monthlyAmount : remainingAmountByExercicePrestation; //TTC\n \n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n remainingAmount = 0;\n });\n\n // =========================\n // NON EXPRESS\n // =========================\n // on lisse sur le nb de mois restants (avec au minimum 3 mensualités)\n // Si un seul exo express, alors on met les paiements de l'exo actuel en parallèle\n // sinon, ils sont à la suite des express\n if (nbExoExpress <= 1) paymentDate = initializedPaymentDate;\n let exerciceEndDate = dayjs(firstExerciceNonExpresssEndDate).toDate();\n\n let hasGeneratedWholeYear = false;\n let isFirstNonExpress = true;\n \n //On génère des paiements jusqu'à ce qu'un exercice soit entier (12 mois), non express\n while (!hasGeneratedWholeYear) {\n \n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n const exoAmount = isFirstNonExpress ? yearlyAmountNonExpress : nextYearlyAmountNonExpress;\n remainingAmount += priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat);\n\n //TODO: CAS A TESTER : si sumRegulations couvre le premier exercice par exemple (cas rar mais à envisager)\n //Si le premier règlement couvre le coût de cet exercicePrestation, on passe au suivant\n // if (remainingAmount <= 0) {\n // continue;\n // }\n\n // Si on a ajouté une ligne pour les applications fees, alors on les déduit du montant total\n /* if (isFirstNonExpress && isWithApplicationFees && !isApplicationFeesAlreadyPaid) {\n remainingAmount -= applicationFeesAmountTTC;\n } */\n\n let remainingAmountByExercicePrestation = remainingAmount;\n\n // - frais d'application dès les second exo non express\n if (!isFirstNonExpress) remainingAmountByExercicePrestation += applicationCostTotalTTC;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd; //TTC\n\n if (monthlyAmount > 0) {\n for (let index = 1; index <= countMonthsBeforeExerciceEnd; index++) {\n let amount = index < countMonthsBeforeExerciceEnd ? monthlyAmount : remainingAmountByExercicePrestation;\n \n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n amount = calculateFees(amount, goToClient, paymentDate);\n \n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();\n }\n remainingAmount = 0;\n if (countMonthsBeforeExerciceEnd === 12) hasGeneratedWholeYear = true;\n isFirstNonExpress = false;\n }\n\n remainingAmount = 0;\n\n // =========================\n // JUSQU'EN DECEMBRE\n // =========================\n // On applique le taux de tva de la société, si besoin, selon la grille tarifaire\n remainingAmount += priceWithTaxesIncluded ? nextYearlyAmountNonExpress : getTaxesIncludedAmount(nextYearlyAmountNonExpress, idVat);\n\n let remainingAmountByExercicePrestation = remainingAmount;\n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n // - frais d'application dès les second exo non express\n remainingAmountByExercicePrestation += applicationCostTotalTTC;\n \n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd;\n \n // Si aucun paiement généré, on stoppe là\n if (!listPayments.length) return [];\n\n while (dayjs(listPayments.slice(-1)[0].datePayment).month() < 11) {\n let amount = monthlyAmount;\n\n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n // - frais d'application dès les second exo non express\n amount = calculateFees(amount, goToClient, paymentDate);\n\n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n\n return listPayments;\n};\n\nexport {\n groupPaymentsByServiceType, calculatePaymentsAuto,\n};"]}
1
+ {"version":3,"file":"payment.js","sourceRoot":"","sources":["../../../ts/utils/payment.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport { IPayment, IRegulation, ParamsForPaymentsAuto, PaymentMethod, PaymentAuto, getTaxesIncludedAmount } from '../types';\nimport * as dayjs from 'dayjs';\nimport { PartialExercicePrestationExpress } from '../types/Interface/api/payment/Util';\nimport { getApplicationFeesAmount, getPriceGrid } from './prestation';\n\ninterface PaymentsWithList extends IPayment {\n type: 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther',\n listPayments: IPayment[]\n}\n\n/**\n * A partir d'une liste de payment (avec include jusqu'à prestationList, \n * avec en attributs 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther')\n * permet de récupérer uniquement le premier paiement de chaque type \n * et les autres payments dans listPayments\n * avec possibilité de filtrer avec le tableau de filtres\n * @param payments \n * @param types \n * @returns \n */\nconst groupPaymentsByServiceType = (payments: IPayment[], types: ('isComptable' | 'isJuridique' | 'isSocial' | 'isOther')[] = ['isComptable', 'isJuridique', 'isSocial', 'isOther']): PaymentsWithList[] => {\n const prestaComptable = payments.filter((el) => el?.paymentsPrestations?.prestationsList?.isComptable ?? false);\n const prestaSocial = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isSocial);\n const prestaJuridique = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isJuridique);\n const prestaOther = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && !el?.paymentsPrestations?.prestationsList?.isJuridique && !el?.paymentsPrestations?.prestationsList?.isSocial);\n \n const societyPayment: PaymentsWithList[] = [];\n if (prestaComptable.length && types.includes('isComptable')) {\n societyPayment.push({\n ...prestaComptable[0], // Données de base\n type: 'isComptable',\n listPayments: prestaComptable,\n });\n }\n if (prestaSocial.length && types.includes('isSocial')) {\n societyPayment.push({\n ...prestaSocial[0], // Données de base\n type: 'isSocial',\n listPayments: prestaSocial,\n });\n }\n if (prestaJuridique.length && types.includes('isJuridique')) {\n societyPayment.push({\n ...prestaJuridique[0], // Données de base\n type: 'isJuridique',\n listPayments: prestaJuridique,\n });\n }\n if (prestaOther.length && types.includes('isOther')) {\n societyPayment.push({\n ...prestaOther[0], // Données de base\n type: 'isOther',\n listPayments: prestaOther,\n });\n }\n return societyPayment;\n};\n\nconst calculateFees = (amount: number, goToClient: Date, paymentDate: Date):number => {\n const yearlyPriceIncreasing = 1.0275;\n\n const oneYearLessIfIn3LastMonthsOfYear = dayjs(goToClient).month() >= 9 ? 1 : 0;\n\n if (dayjs(paymentDate).year() - dayjs().year() > 0) {\n const nbYearsMore = dayjs(paymentDate).year() - dayjs().year() - oneYearLessIfIn3LastMonthsOfYear;\n // on applique X fois l'augmentation\n // ex. : si on lance l'appel en 2024, et qu'on génére un paiement pour 2026, on applique 2 fois l'augmentation\n // soit amount * yearlyPriceIncreasing * yearlyPriceIncreasing\n // soit amount * yearlyPriceIncreasing ^ nbYearsMore\n amount = amount * Math.pow(yearlyPriceIncreasing, nbYearsMore);\n }\n return amount;\n};\n\n/**\n// * @param {number} firstPaymentAmount - amount of the first payment (first regulation of the customer)\n * @param {Date} firstExerciceNonExpresssEndDate - end date of the first exercice non express\n * @param {number} idPrestation - prestation id\n * @param {number} idLegalForm - legal form id of the society\n * @param {boolean} isWithApplicationFees - if the prestation has application fees to paid\n * @param {IPrestationList} prestationList - type of prestation (hidden: 0, isCatalog: 1, isComptable: 1)\n * @param {number} idVat - vat id of society linked\n * @param {number} yearlyAmountNonExpress - yearly amount of non express prestation (HT)\n * @param {number} nextYearlyAmountNonExpress - yearly amount of non express prestation for next years (HT)\n * @param {PartialExercicePrestationExpress[]} listPartialExercicePrestationExpress - list of exercicePrestation linked to idPrestation -> used to get express\n * @param {IRegulation[]} listRegulations - list of regulations linked to idPrestation (TTC)\n * @returns { IPayment[] } list of payment to create for billing auto, after each presta go to onBoarding\n */\nconst calculatePaymentsAuto = (params: ParamsForPaymentsAuto):PaymentAuto[] => {\n const { idTypeBrand, goToClient, isWithApplicationFees, firstExerciceNonExpresssEndDate, idPrestation, idLegalForm, prestationList, idVat, yearlyAmountNonExpress, nextYearlyAmountNonExpress, listPartialExercicePrestationExpress, listRegulations } = params;\n const initializedPaymentDate = dayjs().endOf('month').diff(dayjs(), 'day') < 3/* || dayjs().date() >= 15 */\n ? dayjs().add(2, 'month').startOf('month').toDate()\n : dayjs().add(1, 'month').startOf('month').toDate();\n\n // On récupère la grille tarifaire pour savoir si les tarifs sont HT ou TTC \n // et pour connaitre le montant du coût de l'app\n if (!prestationList.id) throw new Error('idPrestationList manquant');\n const priceGrid = getPriceGrid(idTypeBrand, prestationList.id);\n if (!priceGrid) throw new Error('Impossible de trouver la grille tarifaire correspondante');\n const { applicationCost, priceWithTaxesIncluded } = priceGrid;\n const applicationCostTotalTTC = (priceWithTaxesIncluded ? applicationCost : getTaxesIncludedAmount(applicationCost, idVat)) * 12;\n const applicationFeesAmountTTC = getApplicationFeesAmount(idLegalForm, idVat);\n\n if (prestationList?.isCatalog || !prestationList?.isComptable) throw new Error('Ce type de prestation ne correspond pas aux conditions attendues.');\n // if (!listRegulations?.length) throw new Error('List of regulations can not be empty');\n if (listPartialExercicePrestationExpress.length && listPartialExercicePrestationExpress?.some((ep: PartialExercicePrestationExpress) => !ep?.startDate)) throw new Error('Start date of some exercice are missing');\n if (!listRegulations?.every((r: IRegulation) => !!r?.amount || !!r?.amountUsed)) throw new Error('Amount and amountUsed are missing for regulations');\n\n const nbExoExpress = listPartialExercicePrestationExpress.length;\n const listPayments:PaymentAuto[] = [];\n\n // on récupère le/les premiers réglements effectués, non alloués\n // const isApplicationFeesAlreadyPaid = false;\n const sumRegulations = listRegulations.reduce((acc: number, r:IRegulation) => {\n //Si la regulation est rattachée à un paymentExpectation, on récupère le détail\n // et on ne prend que les frais de dossier (applicationFee) + le montant de la compta (accountingFee)\n \n // Commenté temporairement :\n // Pour l'instant, on ne prend plus en compte les paymentExpectation :\n // On part du principe que si isWithApplicationFees = true, alors les regulations contiennent les frais de dossier\n // sinon, ils sont offerts et n'apparaissent pas\n /* if (r.paymentsExpectation?.payload) {\n const payload = JSON.parse(r.paymentsExpectation?.payload);\n if (+payload?.applicationFee > 0) {\n isApplicationFeesAlreadyPaid = true;\n acc += +payload?.applicationFee;\n }\n if (+payload?.accountingFee > 0) acc += +payload?.accountingFee;\n return acc;\n } else {\n return acc + r.amount - r.amountUsed;\n } */\n return acc + r.amount - r.amountUsed;\n }, 0);\n let remainingAmount = -sumRegulations; //TTC\n let paymentDate = initializedPaymentDate;\n\n //On order les exercicePrestation par startDate ASC et id ASC\n listPartialExercicePrestationExpress.sort((a, b) => {\n const aStartDate = a?.startDate as Date;\n const bStartDate = b?.startDate as Date;\n return dayjs(aStartDate).diff(bStartDate);\n });\n\n // Si les frais de dossiers sont facturés, on ajoute un paiement sur le mois en cours\n if (isWithApplicationFees) {\n listPayments.push({\n amount: applicationFeesAmountTTC, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,\n comment: 'Frais de dossier',\n });\n remainingAmount += applicationFeesAmountTTC;\n }\n \n // =========================\n // EXPRESS\n // =========================\n listPartialExercicePrestationExpress.forEach((exercicePrestation:PartialExercicePrestationExpress, indexEP: number) => {\n const remainingBeforeThisExo = remainingAmount;\n\n remainingAmount += !priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount; //TTC\n \n \n // Si le premier règlement couvre le coût de cet exercicePrestation, \n // on créé un paiement pour cet exo et on passe au suivant\n if (remainingAmount <= 0) {\n listPayments.push({\n amount: !priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n return;\n } else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {\n // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo \n listPayments.push({\n amount: -remainingBeforeThisExo, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n }\n \n //express : on étale en countExpressMonthlyPayment (nb de mensualités)\n let remainingAmountByExercicePrestation = remainingAmount; //TTC\n let countExpressMonthlyPayment = exercicePrestation?.countExpressMonthlyPayment ?? 3; //TTC\n //Si un premier règlement est généré avec le montant des regulations, on le considère comme une mensualité (unioquement pour le premier express et la première mensualité)\n if (indexEP === 0 && sumRegulations > 0) countExpressMonthlyPayment -= 1;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countExpressMonthlyPayment; //TTC\n for (let index = 1; index <= countExpressMonthlyPayment; index++) {\n // On arrondis les 11 premières mensualités, mais on récupère le reste pour la dernière mensualité, pour éviter les centimes perdus en arrondis\n // et on applique le taux de tva de la société\n const amount = index < countExpressMonthlyPayment ? monthlyAmount : remainingAmountByExercicePrestation; //TTC\n \n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n remainingAmount = 0;\n });\n\n // =========================\n // NON EXPRESS\n // =========================\n // on lisse sur le nb de mois restants (avec au minimum 3 mensualités)\n // Si un seul exo express, alors on met les paiements de l'exo actuel en parallèle\n // sinon, ils sont à la suite des express\n if (nbExoExpress <= 1) paymentDate = initializedPaymentDate;\n let exerciceEndDate = dayjs(firstExerciceNonExpresssEndDate).toDate();\n\n let hasGeneratedWholeYear = false;\n let isFirstNonExpress = true;\n \n //On génère des paiements jusqu'à ce qu'un exercice soit entier (12 mois), non express\n while (!hasGeneratedWholeYear) {\n \n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n const exoAmount = isFirstNonExpress ? yearlyAmountNonExpress : nextYearlyAmountNonExpress;\n const remainingBeforeThisExo = remainingAmount;\n remainingAmount += priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat);\n\n // Si le premier règlement couvre le coût de cet exercicePrestation, \n // on créé un paiement pour cet exo et on passe au suivant\n if (remainingAmount <= 0) {\n listPayments.push({\n amount: priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat), //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();\n continue;\n } else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {\n // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo \n listPayments.push({\n amount: -remainingBeforeThisExo, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n }\n\n let remainingAmountByExercicePrestation = remainingAmount;\n\n // - frais d'application dès les second exo non express\n if (!isFirstNonExpress) remainingAmountByExercicePrestation += applicationCostTotalTTC;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd; //TTC\n\n if (monthlyAmount > 0) {\n for (let index = 1; index <= countMonthsBeforeExerciceEnd; index++) {\n let amount = index < countMonthsBeforeExerciceEnd ? monthlyAmount : remainingAmountByExercicePrestation;\n \n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n amount = calculateFees(amount, goToClient, paymentDate);\n \n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();\n }\n remainingAmount = 0;\n if (countMonthsBeforeExerciceEnd === 12) hasGeneratedWholeYear = true;\n isFirstNonExpress = false;\n }\n\n remainingAmount = 0;\n\n // =========================\n // JUSQU'EN DECEMBRE\n // =========================\n // On applique le taux de tva de la société, si besoin, selon la grille tarifaire\n remainingAmount += priceWithTaxesIncluded ? nextYearlyAmountNonExpress : getTaxesIncludedAmount(nextYearlyAmountNonExpress, idVat);\n\n let remainingAmountByExercicePrestation = remainingAmount;\n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n // - frais d'application dès les second exo non express\n remainingAmountByExercicePrestation += applicationCostTotalTTC;\n \n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd;\n \n // Si aucun paiement généré, on stoppe là\n if (!listPayments.length) return [];\n\n while (dayjs(listPayments.slice(-1)[0].datePayment).month() < 11) {\n let amount = monthlyAmount;\n\n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n // - frais d'application dès les second exo non express\n amount = calculateFees(amount, goToClient, paymentDate);\n\n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n\n return listPayments;\n};\n\nexport {\n groupPaymentsByServiceType, calculatePaymentsAuto,\n};"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silexpert/core",
3
- "version": "1.1.314",
3
+ "version": "1.1.315",
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",
@@ -504,9 +504,9 @@ export const GlobalRegime: GlobalRegimeType = {
504
504
  ],
505
505
  },
506
506
  SELARL: {
507
- name: 'SELARL',
507
+ name: 'SELARL / SELARLU',
508
508
  id: 10,
509
- idLegalForms: [LegalForm.SELARL.id],
509
+ idLegalForms: [LegalForm.SELARL.id, LegalForm.SELARLU.id],
510
510
  choices: [
511
511
  {
512
512
  name: 'Profession libérale (BNC - IR - 2035)',
@@ -64,6 +64,7 @@ export interface IPrestation {
64
64
  prestationJuridique?: IPrestation;
65
65
  prestationSocial?: IPrestation;
66
66
  prestationCreation?: IPrestation;
67
+ prestationControleFiscal?: IPrestation;
67
68
  societiesPrestations?: ISociety;
68
69
  prestationsDetailsBeforeExercice?: IExercicePrestation[];
69
70
  customersSignatures?: ICustomerSignature[];
@@ -144,39 +144,56 @@ const calculatePaymentsAuto = (params: ParamsForPaymentsAuto):PaymentAuto[] => {
144
144
  return dayjs(aStartDate).diff(bStartDate);
145
145
  });
146
146
 
147
- //On ajoute un paiement initial correspondant à la somme des régulations
148
- if (sumRegulations) {
147
+ // Si les frais de dossiers sont facturés, on ajoute un paiement sur le mois en cours
148
+ if (isWithApplicationFees) {
149
149
  listPayments.push({
150
- amount: isWithApplicationFees ? sumRegulations - applicationFeesAmountTTC : sumRegulations, //TTC
150
+ amount: applicationFeesAmountTTC, //TTC
151
151
  isPaid: true,
152
152
  datePayment: dayjs().toDate(),
153
153
  idPrestation,
154
154
  idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,
155
155
  closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,
156
+ comment: 'Frais de dossier',
156
157
  });
157
-
158
- // Si les frais de dossiers sont facturés, on ajoute un paiement sur le mois en cours
159
- if (isWithApplicationFees)
160
- listPayments.push({
161
- amount: applicationFeesAmountTTC, //TTC
162
- isPaid: true,
163
- datePayment: dayjs().toDate(),
164
- idPrestation,
165
- idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,
166
- closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,
167
- comment: 'Frais de dossier',
168
- });
158
+ remainingAmount += applicationFeesAmountTTC;
169
159
  }
170
160
 
171
161
  // =========================
172
162
  // EXPRESS
173
163
  // =========================
174
164
  listPartialExercicePrestationExpress.forEach((exercicePrestation:PartialExercicePrestationExpress, indexEP: number) => {
165
+ const remainingBeforeThisExo = remainingAmount;
166
+
175
167
  remainingAmount += !priceWithTaxesIncluded
176
168
  ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat)
177
169
  : exercicePrestation.totalAmount; //TTC
178
- //Si le premier règlement couvre le coût de cet exercicePrestation, on passe au suivant
179
- if (remainingAmount <= 0) return;
170
+
171
+
172
+ // Si le premier règlement couvre le coût de cet exercicePrestation,
173
+ // on créé un paiement pour cet exo et on passe au suivant
174
+ if (remainingAmount <= 0) {
175
+ listPayments.push({
176
+ amount: !priceWithTaxesIncluded
177
+ ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat)
178
+ : exercicePrestation.totalAmount, //TTC
179
+ isPaid: true,
180
+ datePayment: dayjs().toDate(),
181
+ idPrestation,
182
+ idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,
183
+ closingDate: exercicePrestation.endDate,
184
+ });
185
+ return;
186
+ } else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {
187
+ // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo
188
+ listPayments.push({
189
+ amount: -remainingBeforeThisExo, //TTC
190
+ isPaid: true,
191
+ datePayment: dayjs().toDate(),
192
+ idPrestation,
193
+ idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,
194
+ closingDate: exercicePrestation.endDate,
195
+ });
196
+ }
180
197
 
181
198
  //express : on étale en countExpressMonthlyPayment (nb de mensualités)
182
199
  let remainingAmountByExercicePrestation = remainingAmount; //TTC
@@ -223,18 +240,33 @@ const calculatePaymentsAuto = (params: ParamsForPaymentsAuto):PaymentAuto[] => {
223
240
  if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;
224
241
 
225
242
  const exoAmount = isFirstNonExpress ? yearlyAmountNonExpress : nextYearlyAmountNonExpress;
243
+ const remainingBeforeThisExo = remainingAmount;
226
244
  remainingAmount += priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat);
227
245
 
228
- //TODO: CAS A TESTER : si sumRegulations couvre le premier exercice par exemple (cas rar mais à envisager)
229
- //Si le premier règlement couvre le coût de cet exercicePrestation, on passe au suivant
230
- // if (remainingAmount <= 0) {
231
- // continue;
232
- // }
233
-
234
- // Si on a ajouté une ligne pour les applications fees, alors on les déduit du montant total
235
- /* if (isFirstNonExpress && isWithApplicationFees && !isApplicationFeesAlreadyPaid) {
236
- remainingAmount -= applicationFeesAmountTTC;
237
- } */
246
+ // Si le premier règlement couvre le coût de cet exercicePrestation,
247
+ // on créé un paiement pour cet exo et on passe au suivant
248
+ if (remainingAmount <= 0) {
249
+ listPayments.push({
250
+ amount: priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat), //TTC
251
+ isPaid: true,
252
+ datePayment: dayjs().toDate(),
253
+ idPrestation,
254
+ idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,
255
+ closingDate: exerciceEndDate,
256
+ });
257
+ exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();
258
+ continue;
259
+ } else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {
260
+ // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo
261
+ listPayments.push({
262
+ amount: -remainingBeforeThisExo, //TTC
263
+ isPaid: true,
264
+ datePayment: dayjs().toDate(),
265
+ idPrestation,
266
+ idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,
267
+ closingDate: exerciceEndDate,
268
+ });
269
+ }
238
270
 
239
271
  let remainingAmountByExercicePrestation = remainingAmount;
240
272