diff --git a/etudes/abattement_pensions/abattement_pensions.ml b/etudes/abattement_pensions/abattement_pensions.ml index 6a284299d839e1e1c9f95096a371770852b109c8..23b9b85e831f0662d6adb35a601c010eefb22b8b 100644 --- a/etudes/abattement_pensions/abattement_pensions.ml +++ b/etudes/abattement_pensions/abattement_pensions.ml @@ -21,6 +21,14 @@ module CalculNaifDroit = struct let abattement = R.Oper.o_mult_mon_rat d.pensions (R.Oper.o_div_rat_rat + { + filename = "dummy.catala_fr"; + start_line = 0; + start_column = 0; + end_line = 0; + end_column = 0; + law_headings = []; + } (R.decimal_of_integer (R.integer_of_int 1)) (R.decimal_of_integer (R.integer_of_int 10))) in @@ -64,8 +72,16 @@ module CalculPlafondProratisePartoutVersionM2015 = struct then R.money_of_units_int 0 else R.Oper.o_mult_mon_rat plafond_abattement - (R.Oper.o_div_mon_mon abattement_deplafonne - abattement_total_deplafonne) + (R.Oper.o_div_mon_mon + { + filename = "dummy.catala_fr"; + start_line = 0; + start_column = 0; + end_line = 0; + end_column = 0; + law_headings = []; + } + abattement_deplafonne abattement_total_deplafonne) in R.money_round (if R.Oper.o_gt_mon_mon abattement_deplafonne plafond_proratise then @@ -145,8 +161,16 @@ module CalculPlafondProratiseNonPlancherVersionM2015 = struct then R.money_of_units_int 0 else R.Oper.o_mult_mon_rat plafond_a_repartir - (R.Oper.o_div_mon_mon abattement_deplafonne - abattement_total_non_au_plancher) + (R.Oper.o_div_mon_mon + { + filename = "dummy.catala_fr"; + start_line = 0; + start_column = 0; + end_line = 0; + end_column = 0; + law_headings = []; + } + abattement_deplafonne abattement_total_non_au_plancher) in if R.Oper.o_gt_mon_mon abattement_deplafonne plafond_proratise then plafond_proratise @@ -186,6 +210,14 @@ module CalculPlafondProratiseNonPlancherVersionM2022 = struct R.money_round (R.Oper.o_mult_mon_rat d.pensions (R.Oper.o_div_rat_rat + { + filename = "dummy.catala_fr"; + start_line = 0; + start_column = 0; + end_line = 0; + end_column = 0; + law_headings = []; + } (R.decimal_of_integer (R.integer_of_int 1)) (R.decimal_of_integer (R.integer_of_int 10)))) in @@ -269,7 +301,16 @@ module CalculPlafondProratiseNonPlancherVersionM2022 = struct then R.money_of_units_int 0 else R.Oper.o_mult_mon_rat plafond_a_repartir - (R.Oper.o_div_mon_mon abattement_deplafonne + (R.Oper.o_div_mon_mon + { + filename = "dummy.catala_fr"; + start_line = 0; + start_column = 0; + end_line = 0; + end_column = 0; + law_headings = []; + } + abattement_deplafonne abattement_total_non_au_plancher) in if diff --git a/etudes/verification_prorata/verification_prorata.ml b/etudes/verification_prorata/verification_prorata.ml index b2c946e46b0a4353a58c58d02615d47dc8233746..c53a52a538bed4795bce67458494d3986cf4571d 100644 --- a/etudes/verification_prorata/verification_prorata.ml +++ b/etudes/verification_prorata/verification_prorata.ml @@ -31,11 +31,20 @@ let print_prorata_input (i : Oracles.ProRataArrondiEuro_in.t) : string = try o_mult_rat_rat (R.decimal_of_money i.montant_a_distribuer_in) - (o_div_rat_rat (R.decimal_of_money base) + (o_div_rat_rat + { + filename = "dummy.catala_fr"; + start_line = 0; + start_column = 0; + end_line = 0; + end_column = 0; + law_headings = []; + } + (R.decimal_of_money base) (R.decimal_of_money (Array.fold_left R.Oper.o_add_mon_mon (R.money_of_units_int 0) i.bases_prorata_in))) - with R.Division_by_zero -> R.decimal_of_float 0.0 + with R.Error (R.DivisionByZero, _) -> R.decimal_of_float 0.0 in R.money_of_decimal @@ R.decimal_round brut) i.bases_prorata_in @@ -116,7 +125,16 @@ let t2 = let brut = o_mult_rat_rat (R.decimal_of_money prorata_input.montant_a_distribuer_in) - (o_div_rat_rat (R.decimal_of_money base) + (o_div_rat_rat + { + filename = "dummy.catala_fr"; + start_line = 0; + start_column = 0; + end_line = 0; + end_column = 0; + law_headings = []; + } + (R.decimal_of_money base) (R.decimal_of_money total_bases)) in R.money_of_decimal @@ R.decimal_round brut) @@ -143,9 +161,18 @@ let t3 = try o_mult_rat_rat (R.decimal_of_money prorata_input.montant_a_distribuer_in) - (o_div_rat_rat (R.decimal_of_money base) + (o_div_rat_rat + { + filename = "dummy.catala_fr"; + start_line = 0; + start_column = 0; + end_line = 0; + end_column = 0; + law_headings = []; + } + (R.decimal_of_money base) (R.decimal_of_money total_bases)) - with R.Division_by_zero -> R.decimal_of_float 0.0 + with R.Error (R.DivisionByZero, _) -> R.decimal_of_float 0.0 in R.money_of_decimal @@ R.decimal_round brut) prorata_input.bases_prorata_in diff --git a/sources/cgi_revenus.catala_fr b/sources/cgi_revenus.catala_fr index c4e3e8f0157084c2a882fdacdeffbcd774f4d2f2..2bc4a1ffb521c7029ee454f7872019dac0247b51 100644 --- a/sources/cgi_revenus.catala_fr +++ b/sources/cgi_revenus.catala_fr @@ -225,6 +225,43 @@ ces dispositions s'appliquent aux cessions réalisées à compter du 1er janvier ######## II : Bénéfices industriels et commerciaux +######### 1 : Définition des bénéfices industriels et commerciaux + +########## Article 34 | LEGIARTI000024188625 + +Sont considérés comme bénéfices industriels et commerciaux, pour l'application +de l'impôt sur le revenu, les bénéfices réalisés par des personnes physiques et +provenant de l'exercice d'une profession commerciale, industrielle ou +artisanale. + +Il en est de même, dans les mêmes conditions, des bénéfices réalisés par les +concessionnaires de mines, par les amodiataires et sous-amodiataires de +concessions minières, par les titulaires de permis d'exploitation de mines et +par les explorateurs de mines de pétrole et de gaz combustibles. + +Par exception aux dispositions du premier alinéa, sont classés dans la catégorie +des salaires les revenus correspondant aux rémunérations dites " à la part " +perçues au titre de leur travail personnel par les artisans pêcheurs, ainsi que, +lorsqu'ils sont embarqués, par le ou les pêcheurs associés d'une société de +pêche artisanale, telle que définie à l'article L. 931-2 du code rural et de la +pêche maritime et soumise au régime d'imposition prévu à l'article 8. + +NOTA : + +Modification effectuée en conséquence des articles 1er, 4 et 7 de l'ordonnance +n° 2010-462 du 6 mai 2010. + +```catala +champ d'application BénéficesIndustrielsCommerciauxDéclarant: + définition solde_net_professionnel état revenus_imposables_réel égal à + revenus.professionnels.revenus_imposables_réel + - revenus.professionnels.déficit_réel + + définition solde_net_non_professionnel état revenus_imposables_réel égal à + revenus.non_professionnels.revenus_imposables_réel + - revenus.non_professionnels.déficit_réel +``` + ######### 2 : Détermination des bénéfices imposables ########## Article 39 quaterdecies | LEGIARTI000046860376 @@ -328,6 +365,27 @@ d'un exercice est déduit des bénéfices de cet exercice. champ d'application PlusMoinsValueCourtTermeBénéficesIndustrielsCommerciaux: définition solde_net égal à plus_values_nettes - moins_values_nettes + +champ d'application BénéficesIndustrielsCommerciauxDéclarant: + définition solde_net_professionnel état plus_moins_value_court_terme_micro + égal à + solde_net_professionnel + + (résultat de PlusMoinsValueCourtTermeBénéficesIndustrielsCommerciaux avec { + -- plus_values_nettes: + revenus.professionnels.plus_values_nettes_court_terme_micro + -- moins_values_nettes: + revenus.professionnels.moins_values_nettes_court_terme_micro + }).solde_net + + définition solde_net_non_professionnel état plus_moins_value_court_terme_micro + égal à + solde_net_non_professionnel + + (résultat de PlusMoinsValueCourtTermeBénéficesIndustrielsCommerciaux avec { + -- plus_values_nettes: + revenus.non_professionnels.plus_values_nettes_court_terme_micro + -- moins_values_nettes: + revenus.non_professionnels.moins_values_nettes_court_terme_micro + }).solde_net ``` ########## Article 39 quindecies | LEGIARTI000036428314 @@ -354,11 +412,11 @@ champ d'application BénéficesIndustrielsCommerciauxDéclarant: (résultat de PrélèvementPlusMoinsValueLongTermeBénéficesIndustrielsCommerciaux avec { -- plus_values_nettes: - revenus_professionnels.plus_values_nettes_long_terme_micro + - revenus_non_professionnels.plus_values_nettes_long_terme_micro + revenus.professionnels.plus_values_nettes_long_terme_micro + + revenus.non_professionnels.plus_values_nettes_long_terme_micro -- moins_values_nettes: - revenus_professionnels.moins_values_nettes_long_terme_micro + - revenus_non_professionnels.moins_values_nettes_long_terme_micro + revenus.professionnels.moins_values_nettes_long_terme_micro + + revenus.non_professionnels.moins_values_nettes_long_terme_micro }).prélèvement_libératoire + # En régime réel, d'après le premier alinéa du I de l'article 93 du CGI, # les plus-values nettes à court terme sont comprises dans le revenu @@ -367,8 +425,8 @@ champ d'application BénéficesIndustrielsCommerciauxDéclarant: (résultat de PrélèvementPlusMoinsValueLongTermeBénéficesIndustrielsCommerciaux avec { -- plus_values_nettes: - revenus_non_professionnels.plus_values_nettes_long_terme_réel + - revenus_professionnels.plus_values_nettes_long_terme_réel + revenus.non_professionnels.plus_values_nettes_long_terme_réel + + revenus.professionnels.plus_values_nettes_long_terme_réel -- moins_values_nettes: 0 € }).prélèvement_libératoire @@ -660,34 +718,34 @@ champ d'application BénéficesIndustrielsCommerciauxDéclarant: # exister des revenus micro-BIC exceptionnels ou différés et donc soumis au # quotient. définition asiette_abattement_forfaitaire_micro_marchandises égal à - revenus_professionnels.revenus_imposables_micro_marchandises + + revenus.professionnels.revenus_imposables_micro_marchandises + (somme argent de (selon revenu_exceptionnel_ou_différé.catégorie sous forme -- MicroBénéficesIndustrielsCommerciauxMarchandises: revenu_exceptionnel_ou_différé.valeur -- n'importe quel: 0 €) pour revenu_exceptionnel_ou_différé parmi - revenus_professionnels.revenus_exceptionnels_ou_différés) + - revenus_non_professionnels.revenus_imposables_micro_marchandises + + revenus.professionnels.revenus_exceptionnels_ou_différés) + + revenus.non_professionnels.revenus_imposables_micro_marchandises + somme argent de (selon revenu_exceptionnel_ou_différé.catégorie sous forme -- MicroBénéficesIndustrielsCommerciauxMarchandises: revenu_exceptionnel_ou_différé.valeur -- n'importe quel: 0 €) pour revenu_exceptionnel_ou_différé parmi - revenus_non_professionnels.revenus_exceptionnels_ou_différés + revenus.non_professionnels.revenus_exceptionnels_ou_différés définition asiette_abattement_forfaitaire_micro_services égal à - revenus_professionnels.revenus_imposables_micro_services + + revenus.professionnels.revenus_imposables_micro_services + (somme argent de (selon revenu_exceptionnel_ou_différé.catégorie sous forme -- MicroBénéficesIndustrielsCommerciauxServices: revenu_exceptionnel_ou_différé.valeur -- n'importe quel: 0 €) pour revenu_exceptionnel_ou_différé parmi - revenus_professionnels.revenus_exceptionnels_ou_différés) + - revenus_non_professionnels.revenus_imposables_micro_services + + revenus.professionnels.revenus_exceptionnels_ou_différés) + + revenus.non_professionnels.revenus_imposables_micro_services + somme argent de (selon revenu_exceptionnel_ou_différé.catégorie sous forme -- MicroBénéficesIndustrielsCommerciauxServices: revenu_exceptionnel_ou_différé.valeur -- n'importe quel: 0 €) pour revenu_exceptionnel_ou_différé parmi - revenus_non_professionnels.revenus_exceptionnels_ou_différés + revenus.non_professionnels.revenus_exceptionnels_ou_différés définition abattement_forfaitaire_micro_total_marchandises état base égal à asiette_abattement_forfaitaire_micro_marchandises * 71% @@ -732,7 +790,7 @@ champ d'application BénéficesIndustrielsCommerciauxDéclarant: -- année_revenu: année_revenu }).revenu_quotienté) pour revenu parmi - revenus_professionnels.revenus_exceptionnels_ou_différés + revenus.professionnels.revenus_exceptionnels_ou_différés définition revenus_quotientés_non_professionnels égal à (soit déduction égal à @@ -753,13 +811,13 @@ champ d'application BénéficesIndustrielsCommerciauxDéclarant: -- année_revenu: année_revenu }).revenu_quotienté) pour revenu parmi - revenus_non_professionnels.revenus_exceptionnels_ou_différés + revenus.non_professionnels.revenus_exceptionnels_ou_différés définition abattement_forfaitaire_micro_professionnel_marchandises égal à # Ici on code à la main un pro-rata vers les deux catégories dont # sont issues l'abattement. arrondi de (abattement_forfaitaire_micro_total_marchandises * - (revenus_professionnels.revenus_imposables_micro_marchandises / + (revenus.professionnels.revenus_imposables_micro_marchandises / asiette_abattement_forfaitaire_micro_marchandises)) définition abattement_forfaitaire_micro_non_professionnel_marchandises égal à @@ -781,7 +839,7 @@ champ d'application BénéficesIndustrielsCommerciauxDéclarant: # Ici on code à la main un pro-rata vers les deux catégories dont # sont issues l'abattement. arrondi de (abattement_forfaitaire_micro_total_services * - (revenus_professionnels.revenus_imposables_micro_services / + (revenus.professionnels.revenus_imposables_micro_services / asiette_abattement_forfaitaire_micro_services)) définition abattement_forfaitaire_micro_non_professionnel_services égal à @@ -798,6 +856,20 @@ champ d'application BénéficesIndustrielsCommerciauxDéclarant: revenu_quotienté.déduction -- n'importe quel: 0 €) pour revenu_quotienté parmi revenus_quotientés_professionnels) + + définition solde_net_professionnel état revenus_imposables_micro égal à + solde_net_professionnel + + revenus.professionnels.revenus_imposables_micro_marchandises + - abattement_forfaitaire_micro_professionnel_marchandises + + revenus.professionnels.revenus_imposables_micro_services + - abattement_forfaitaire_micro_professionnel_services + + définition solde_net_non_professionnel état revenus_imposables_micro égal à + solde_net_non_professionnel + + revenus.non_professionnels.revenus_imposables_micro_marchandises + - abattement_forfaitaire_micro_non_professionnel_marchandises + + revenus.non_professionnels.revenus_imposables_micro_services + - abattement_forfaitaire_micro_non_professionnel_services ``` Les plus ou moins-values mentionnées au cinquième alinéa sont déterminées et @@ -2556,9 +2628,12 @@ champ d'application BénéficesNonCommerciauxDéclarant: définition abattement_forfaitaire_micro_professionnel égal à # Ici on code à la main un pro-rata vers les deux catégories dont # sont issues l'abattement. - arrondi de (abattement_forfaitaire_micro_total * - (revenus.professionnels.généraux.revenus_imposables_micro / - asiette_abattement_forfaitaire_micro_total)) + si asiette_abattement_forfaitaire_micro_total = 0 € alors + 0 € + sinon + arrondi de (abattement_forfaitaire_micro_total * + (revenus.professionnels.généraux.revenus_imposables_micro / + asiette_abattement_forfaitaire_micro_total)) définition abattement_forfaitaire_micro_non_professionnel égal à # Il reste donc ici le solde. @@ -2721,8 +2796,9 @@ champ d'application BénéficesIndustrielsCommerciauxDéclarant: sous condition année_revenu = 2022 conséquence égal à - chiffre_affaires_prélèvement_libératoire_marchandises_éxonéré_cotisations * - 1,0% + revenus. + chiffre_affaires_prélèvement_libératoire_marchandises_éxonéré_cotisations + * 1,0% ``` 2° 1,7 % pour les contribuables soumis au régime défini à l'article 50-0 et @@ -2734,7 +2810,8 @@ champ d'application BénéficesIndustrielsCommerciauxDéclarant: année_revenu = 2022 conséquence égal à prélèvement_libératoire_auto_entreprise + - chiffre_affaires_prélèvement_libératoire_services_éxonéré_cotisations * + revenus. + chiffre_affaires_prélèvement_libératoire_services_éxonéré_cotisations * 1,7% ``` diff --git a/sources/oracles.ml b/sources/oracles.ml index 09a32451538b3c49fe77498232cdeabd617a77e0..a2059420fc216173c998fac1766afcf829dee8a7 100644 --- a/sources/oracles.ml +++ b/sources/oracles.ml @@ -153,6 +153,8 @@ let imputation_aux_deficits_les_plus_anciens type direction_arrondi = Haut | Bas | Nul +let zero = decimal_of_float 0.0 + let pro_rata_arrondi_euro (pro_rata_arrondi_euro_in : ProRataArrondiEuro_in.t) : ProRataArrondiEuro.t = let montant_a_distribuer_ : money = @@ -164,15 +166,18 @@ let pro_rata_arrondi_euro (pro_rata_arrondi_euro_in : ProRataArrondiEuro_in.t) : pro_rata_arrondi_euro_in.ProRataArrondiEuro_in.bases_prorata_in then raise - (AssertionFailed - { - filename = "oracles.catala_fr"; - start_line = 39; - start_column = 5; - end_line = 40; - end_column = 27; - law_headings = ["Calcul de pro-rata"]; - }); + (Error + ( AssertionFailed, + [ + { + filename = "oracles.catala_fr"; + start_line = 39; + start_column = 5; + end_line = 40; + end_column = 27; + law_headings = ["Calcul de pro-rata"]; + }; + ] )); if (not (o_eq_mon_mon montant_a_distribuer_ (money_of_units_int 0))) && Array.for_all @@ -180,26 +185,32 @@ let pro_rata_arrondi_euro (pro_rata_arrondi_euro_in : ProRataArrondiEuro_in.t) : pro_rata_arrondi_euro_in.ProRataArrondiEuro_in.bases_prorata_in then raise - (AssertionFailed - { - filename = "oracles.catala_fr"; - start_line = 41; - start_column = 5; - end_line = 41; - end_column = 55; - law_headings = ["Calcul de pro-rata"]; - }); + (Error + ( AssertionFailed, + [ + { + filename = "oracles.catala_fr"; + start_line = 41; + start_column = 5; + end_line = 41; + end_column = 55; + law_headings = ["Calcul de pro-rata"]; + }; + ] )); if money_round montant_a_distribuer_ <> montant_a_distribuer_ then raise - (AssertionFailed - { - filename = "oracles.catala_fr"; - start_line = 42; - start_column = 5; - end_line = 42; - end_column = 61; - law_headings = ["Calcul de pro-rata"]; - }); + (Error + ( AssertionFailed, + [ + { + filename = "oracles.catala_fr"; + start_line = 42; + start_column = 5; + end_line = 42; + end_column = 61; + law_headings = ["Calcul de pro-rata"]; + }; + ] )); let bases_prorata_ : money array = pro_rata_arrondi_euro_in.ProRataArrondiEuro_in.bases_prorata_in in @@ -212,14 +223,30 @@ let pro_rata_arrondi_euro (pro_rata_arrondi_euro_in : ProRataArrondiEuro_in.t) : Array.map (fun base_prorata -> let brut = - try - o_mult_rat_rat - (decimal_of_money montant_a_distribuer_) - (o_div_rat_rat - (decimal_of_money base_prorata) - (decimal_of_money assiette_totale_prorata)) - with Runtime_ocaml.Runtime.Division_by_zero -> - Runtime_ocaml.Runtime.decimal_of_float 0.0 + let assiette_totale_rat = + decimal_of_money assiette_totale_prorata + in + if o_eq_rat_rat assiette_totale_rat zero then zero + else + try + o_mult_rat_rat + (decimal_of_money montant_a_distribuer_) + (o_div_rat_rat + { + filename = "oracles.catala_fr"; + start_line = 0; + start_column = 0; + end_line = 0; + end_column = 0; + law_headings = []; + } + (decimal_of_money base_prorata) + (decimal_of_money assiette_totale_prorata)) + with + | Runtime_ocaml.Runtime.Error + (Runtime_ocaml.Runtime.DivisionByZero, _) + -> + Runtime_ocaml.Runtime.decimal_of_float 0.0 in let arrondi = decimal_round brut in ( money_of_decimal arrondi, diff --git a/sources/prologue.catala_fr b/sources/prologue.catala_fr index 2933984465faa186db075678b594cf6448338018..95464abf80c556edb7568592305d2a4fb4f7537d 100644 --- a/sources/prologue.catala_fr +++ b/sources/prologue.catala_fr @@ -435,7 +435,7 @@ déclaration champ d'application BénéficesNonCommerciauxFoyerFiscal: entrée déficits_réels_années_antérieures_non_professionnels contenu liste de Oracles.DéficitAntérieur - interne résultats_liquidation_bénéfices_non_commerciaux contenu + résultat résultats_liquidation_bénéfices_non_commerciaux contenu liste de BénéficesNonCommerciauxDéclarant interne solde_net_global_non_professionnel contenu argent état agrégation @@ -445,7 +445,7 @@ déclaration champ d'application BénéficesNonCommerciauxFoyerFiscal: imputation_déficit_sur_revenu_quotientés_non_professionnels champ d'application ImputationDéficitSurRevenusQuotientés - imputation_aux_déficits_les_plus_anciens champ d'application + imputation_aux_déficits_les_plus_anciens champ d'application Oracles.ImputationAuxDéficitsLesPlusAnciens résultat revenus_quotientés_imputés @@ -462,7 +462,7 @@ déclaration champ d'application BénéficesNonCommerciauxFoyerFiscal: ### Bénéfices Industriels et Commerciaux ```catala-metadata -déclaration structure DéclarationBénéficesIndustrielsCommerciaux: +déclaration structure DéclarationBénéficesIndustrielsCommerciauxGénéraux: # Case 5KX/... et 5NX/... donnée plus_values_nettes_court_terme_micro contenu argent # Case 5KJ/... et 5IU/... @@ -477,35 +477,40 @@ déclaration structure DéclarationBénéficesIndustrielsCommerciaux: donnée revenus_imposables_micro_marchandises contenu argent # Case 5KP/... et 5NP/... donnée revenus_imposables_micro_services contenu argent + # Case 5KC/... et 5NC/... + donnée revenus_imposables_réel contenu argent + # Case 5KF/... et 5NF/... + donnée déficit_réel contenu argent # Case 0XX donnée revenus_exceptionnels_ou_différés contenu liste de RevenuExceptionnelOuDifféré -déclaration champ d'application BénéficesIndustrielsCommerciauxDéclarant: - entrée revenus_professionnels contenu - DéclarationBénéficesIndustrielsCommerciaux - entrée revenus_non_professionnels contenu - DéclarationBénéficesIndustrielsCommerciaux - # Les cases ci-dessous ne font pas la distinction entre revenus professionnels - # et non-professionnels, d'où le fait qu'on ne les ai pas mises avec - # "DéclarationBénéficesIndustrielsCommerciaux". +déclaration structure DéclarationBénéficesIndustrielsCommerciaux: + donnée professionnels contenu + DéclarationBénéficesIndustrielsCommerciauxGénéraux + donnée non_professionnels contenu + DéclarationBénéficesIndustrielsCommerciauxGénéraux # Case 5TA/... - # entrée + # donnée # total_chiffre_affaires_prélèvement_libératoire_marchandises # contenu argent # Case 5TJ/... - entrée + donnée chiffre_affaires_prélèvement_libératoire_marchandises_éxonéré_cotisations contenu argent # Case 5TB/... - # entrée + # donnée # total_chiffre_affaires_prélèvement_libératoire_services # contenu argent # Case 5TK/... - entrée + donnée chiffre_affaires_prélèvement_libératoire_services_éxonéré_cotisations contenu argent + + +déclaration champ d'application BénéficesIndustrielsCommerciauxDéclarant: + entrée revenus contenu DéclarationBénéficesIndustrielsCommerciaux entrée année_revenu contenu entier interne asiette_abattement_forfaitaire_micro_services contenu argent @@ -526,6 +531,15 @@ déclaration champ d'application BénéficesIndustrielsCommerciauxDéclarant: résultat revenus_quotientés_non_professionnels contenu liste de RevenuQuotienté + résultat solde_net_professionnel contenu argent + état revenus_imposables_réel + état revenus_imposables_micro + état plus_moins_value_court_terme_micro + résultat solde_net_non_professionnel contenu argent + état revenus_imposables_réel + état revenus_imposables_micro + état plus_moins_value_court_terme_micro + résultat prélèvement_libératoire_auto_entreprise contenu argent état marchandises état services diff --git a/tests/benefices_non_commerciaux.catala_fr b/tests/benefices_non_commerciaux.catala_fr index d83fc73361a62023fd9759e7bab80fa47392d60c..6968eddeae9f0387b801c3b27f281ac3b0d95a80 100644 --- a/tests/benefices_non_commerciaux.catala_fr +++ b/tests/benefices_non_commerciaux.catala_fr @@ -1,10 +1,10 @@ > Usage de Interface > Usage de Impot_revenu en tant que IR +> Usage de Oracles # Tests calcul revenu global sur bénéfices non commerciaux - ## Cas test bénéfices non commerciaux n°1 Composition du foyer fiscal : un couple pacsé et un enfant à charge. @@ -13,17 +13,114 @@ Déclaration de revenus pour 2022 : Déclarant 1 : -- 5QC : 12 700 -- 5QA : 8 000 -- 5QE : 50 000 +- 5JG : 1 000 +- 5JJ : 15 000 Déclarant 2 : -- 5LU : 2 000 -- 5LV : 5 000 -- 5LW : 1 000 +- 5LU : 3 000 + + +### Calcul du revenu net + +#### Déclarant 1 + +Régis par [l'article 92 du +CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000039382326/) et +suivants, les revenus issus des bénéfices non commerciaux (BNC) nets, une fois +déterminés, sont une composante du revenu brut global ([article 13 +CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000036428268/2018-01-01)). + +Dans le cas des BNC, deux régimes d'imposition existent : +- Le régime déclaratif spécial ou "_micro-BNC_" : ce régime encadre les + revenus des contribuables dont les revenus de l'année civile précédente ou + de la pénultième année sont inférieurs ou égaux au montant de [l'article 102 + ter du CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042159018/). +- Le régime de la déclaration contrôlée : qui encadre les revenus des + contribuables dont les revenus de l'année civile précédente ou de la + pénultième année sont supérieurs au montant fixé par le même texte. + +En l'espèce, le déclarant 1 relève du régime de la déclaration contrôlée. + +Il a déclaré avoir perçu en 2022 : + +##### Bénéfices et déficits du déclarant 1 + +Le bénéfice imposable correspond au bénéfice net réalisé par le contribuable +lors de l'année d'imposition. Ce bénéfice +[net](https://bofip.impots.gouv.fr/bofip/2809-PGP.html/identifiant=BOI-BNC-BASE-10-10-20210512) +est "_égal à l'excédent des recettes totales (produit brut) sur les dépenses +nécessitées par l'exercice de la profession, prévu par le 1 de l'article +93 du code général des impôts (CGI)_". + +Ces bénéfices peuvent être tirés d'activités : +- Professionnelles; +- Non professionnelles. + +La nature de l'activité a son importance si le contribuable déclare un déficit. +En effet, l'imputation de ce dernier sur les revenus du foyer variera +en fonction de la nature de l'activité exercée. + +En l'espèce, le déclarant 1 a perçu : + +- Un bénéfice non professionnel d'un montant de 1 000€; +- Un déficit non professionnel d'un montant de 15 000€. + +Aux termes du [2 de l'article 156 du +CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000022334816/2010-05-08), +les déficits non commerciaux non professionnels ne peuvent s'imputer que sur +des activités de même nature et ce jusqu'à la sixième année. + +Soit : 1 000 - 15 000 = - 14 000 -## Analyse +**Le revenu net du déclarant 1 est de 0€ avec 14 000€ de déficit à reporter.** + +#### Déclarant 2 + +En 2022, le déclarant 2 a également perçu des bénéfices non commerciaux +non professionnels. + +Cependant, il relève du régime déclaratif spécial ("micro-BNC") prévu à +[l'article 102 ter du CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042159018/). + +Aux termes de cet article, le montant des bénéfices imposables +se voit appliquer un abattement forfaitaire de 34%. + +Soit : 3 000*34% = 1 020, 3 000- 1020 = 1 980. + +**Le revenu net du déclarant 2 est de 1 980€** + +#### Calcul du revenu brut global + +[L'article 12 du CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000006302214/) +dispose que "_L'impôt est dû chaque année à raison des bénéfices ou revenus que +le contribuable réalise ou dont il dispose au cours de la même année_". +Et le [1 de l'article 13](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000044983201/2024-04-16) +de préciser "_Le bénéfice ou revenu imposable est constitué par l'excédent du +produit brut, y compris la valeur des profits et avantages en nature, sur les +dépenses effectuées en vue de l'acquisition et de la conservation du revenu_". + +Le 2 de ce même article 13 fixe les modalités de détermination du revenu global +net annuel. Ce revenu global net annuel sert de base à l'impôt sur le revenu. +Afin de pouvoir le calculer, il faut commencer par calculer le revenu brut +global. + +Celui-ci est déterminé par la somme des revenus nets catégoriels des différents +membres du foyer fiscal, mais aussi par la soustraction des déficits. + +Ici, la question de l'imputation des déficits se pose. La question est réglée +par le [2 de l'article 156 du +CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000022334816/2010-05-08) +qui dispose : "_Des déficits provenant d'activités non commerciales au sens +de l'article 92, autres que ceux qui proviennent de l'exercice d'une profession +libérale ou des charges et offices dont les titulaires n'ont pas la qualité de +commerçants ; ces déficits peuvent cependant être imputés sur les bénéfices +tirés d'activités semblables durant la même année ou les six années suivantes_". + +Soit : - 14 000 + 1 980 = - 12 020. + +**Le revenu brut global du foyer fiscal sera donc de 0€. Il faudra également +reporter 12 020€ de déficit sur les six années suivantes.** ```catala @@ -34,57 +131,153 @@ déclaration champ d'application BénéficesNonCommerciaux1: résultat sortie contenu IR.BénéficesNonCommerciauxFoyerFiscal champ d'application BénéficesNonCommerciaux1: - définition déclarant1.professionnels égal à - (résultat de Interface.BénéficesNonCommerciauxProfessionnelsDéclarant avec { + définition déclarant1.non_professionnels égal à + (résultat de Interface.BénéficesNonCommerciauxNonProfessionnelsDéclarant avec { -- généraux: (résultat de Interface.BénéficesNonCommerciauxGénérauxDéclarant avec { - -- revenus_imposables: 12700€ + -- revenus_imposables: 1 000 € + -- déficit_réel : 15 000 € }).sortie - -- produits_inventeurs_logiciel_taxables: 8000 € }).sortie définition déclarant2.non_professionnels égal à (résultat de Interface.BénéficesNonCommerciauxNonProfessionnelsDéclarant avec { -- généraux: (résultat de Interface.BénéficesNonCommerciauxGénérauxDéclarant avec { - -- revenus_imposables_micro: 2000€ - -- plus_values_nettes_long_terme_micro : 5000 € - -- moins_values_nettes_long_terme_micro: 1000 € + -- revenus_imposables_micro: 3000€ }).sortie }).sortie - # cases des déficits non encore entrées, non codés: 5QE (déficit BNC pro régime réel) = 50 000 € - définition sortie égal à résultat de IR.BénéficesNonCommerciauxFoyerFiscal avec { -- déficits_réels_années_antérieures_non_professionnels: [] -- revenus: [déclarant1.sortie; déclarant2.sortie] -- année_revenu: 2022 } - - # TODO juridique et informatique : faire passer ce test ``` +```catala-test-inline +$ catala test-scope BénéficesNonCommerciaux1 +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.BénéficesNonCommerciauxFoyerFiscal { +│ -- résultats_liquidation_bénéfices_non_commerciaux: +│ [ +│ Impot_revenu.BénéficesNonCommerciauxDéclarant { +│ -- abattement_forfaitaire_micro_professionnel: 0,00 € +│ -- abattement_forfaitaire_micro_non_professionnel: 0,00 € +│ -- revenus_quotientés_professionnels: [] +│ -- revenus_quotientés_non_professionnels: [] +│ -- prélèvement_libératoire_auto_entreprise: 0,00 € +│ -- prélèvement_libératoire_plus_values_long_terme: 0,00 € +│ -- solde_net_professionnel: 0,00 € +│ -- solde_net_non_professionnel: -14 000,00 € +│ -- impôt_taux_forfaitaire: 0,00 € +│ }; +│ Impot_revenu.BénéficesNonCommerciauxDéclarant { +│ -- abattement_forfaitaire_micro_professionnel: 0,00 € +│ -- abattement_forfaitaire_micro_non_professionnel: 1 020,00 € +│ -- revenus_quotientés_professionnels: [] +│ -- revenus_quotientés_non_professionnels: [] +│ -- prélèvement_libératoire_auto_entreprise: 0,00 € +│ -- prélèvement_libératoire_plus_values_long_terme: 0,00 € +│ -- solde_net_professionnel: 0,00 € +│ -- solde_net_non_professionnel: 1 980,00 € +│ -- impôt_taux_forfaitaire: 0,00 € +│ } +│ ] +│ -- revenus_quotientés_imputés: [[]; []] +│ -- revenu_brut_global: 0,00 € +│ -- déficit_brut_global: -12 020,00 € +│ -- déficits_réels_années_antérieures_non_professionnels_mis_à _jour: [] +│ } +└─ +``` + ## Cas test bénéfices non commerciaux n°2 -Composition du foyer fiscal : un couple pacsé et un enfant à charge. +Déclarant 1 : -Déclaration de revenus pour 2022 : +- 5JG : 15 798 +- 5KT : 5 000 +- 5LT : 2 000 +- 5MT : 15 000 -Déclarant 1 : +Calcul du revenu brut global et des déficits à imputer sur les années suivantes. -- 5JG : 1 000 -- 5JJ : 15 000 +Régis par [l'article 92 et suivants du CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000044983291), +les revenus issus des bénéfices non commerciaux net, une fois déterminés, sont +une composante du revenu brut global ([article 13 du +CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000044983201)). -Déclarant 2 : +Dans le cas des BNC, deux régimes d'imposition existent : -- 5LU : 3 000 +- le régime déclaratif spécial ou "micro-BNC" : ce régime encadre les revenus + des contribuables dont les revenus de l'année civile précédente ou de la + pénultième année sont inférieurs ou égaux au montant de [l'article 102 ter + du + CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000047622381). +- le régime de la déclaration contrôlée : qui encadre les revenus de l'année + civile précédente ou de la pénultième année sont supérieurs au montant prévu + par ce même texte. + +En l'espèce, le contribuable relève du régime de la déclaration contrôlée. + +En 2022, il déclare avoir perçu un bénéfice net de 15 798€. + +Le bénéfice imposable correspond au bénéfice net réalisé par le contribuable +lors de l'année d'imposition. Ce bénéfice +[net](https://bofip.impots.gouv.fr/bofip/2809-PGP.html/identifiant=BOI-BNC-BASE-10-10-20210512) +est "_égal à l'excédent des recettes totales (produit brut) sur les dépenses +nécessitées par l'exercice de la profession, prévu par le 1 de l'article 93 du +code général des impôts (CGI)_". + +Ces bénéfices peuvent être de nature : + +- Professionnelle +- Non professionnelle + +La nature de l'activité a son importance si le contribuable déclare un +déficit. En effet, l'imputation de ce dernier sur les revenus du contribuables +dépend de leurs natures respectives. + +Le contribuable a déclaré ici des déficits non commerciaux au titre des années +: -## Analyse +- 2019 : 5 000€ +- 2020 : 2 000€ +- 2021 : 15 000€ +Aux termes du [2 de l'article 156 du +CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000047622626), +les déficits non commerciaux non professionnels ne peuvent être imputés que +sur "_les bénéfices tirés d'activités semblables durant la même année ou les +six années suivantes_". + +Et le I de ce même article de préciser concernant l'ordre d'imputation si le +contribuable déclare plusieurs déficits antérieurs de même nature : +"_l'excédent du déficit est reporté successivement sur le revenu global des +années suivantes jusqu'à la sixième année inclusivement_". + +Autrement dit, il faut d'abord imputer sur les revenus de l'année d'imposition +du contribuable le déficit le plus ancien et ce jusqu'au plus récent. + +Soit : + +15 798 (revenu année N)- 5 000 (déficit de l'année 2019) = 10 978 + +Imputation du déficit de l'année 2020 : + +10 798 - 2 000 = 8 798 + +Imputation du déficit de l'année 2021 : + +8 798 - 15 000 = - 6020. + +**En conséquence, le revenu brut global du contribuable sera de 0€. De plus il +lui restera à imputer 6 020€ de déficit** ```catala déclaration champ d'application BénéficesNonCommerciaux2: déclarant1 champ d'application Interface.BénéficesNonCommerciauxDéclarant - déclarant2 champ d'application Interface.BénéficesNonCommerciauxDéclarant résultat sortie contenu IR.BénéficesNonCommerciauxFoyerFiscal @@ -92,25 +285,324 @@ champ d'application BénéficesNonCommerciaux2: définition déclarant1.non_professionnels égal à (résultat de Interface.BénéficesNonCommerciauxNonProfessionnelsDéclarant avec { -- généraux: (résultat de Interface.BénéficesNonCommerciauxGénérauxDéclarant avec { - -- revenus_imposables: 1 000 € - -- déficit_réel : 15 000 € + -- revenus_imposables: 15 798 € + }).sortie + }).sortie + + définition sortie égal à résultat de IR.BénéficesNonCommerciauxFoyerFiscal avec { + -- déficits_réels_années_antérieures_non_professionnels: [ + Oracles.DéficitAntérieur { + -- année: 2019 + -- valeur: 5000 € + }; + Oracles.DéficitAntérieur { + -- année: 2020 + -- valeur: 2000 € + }; + Oracles.DéficitAntérieur { + -- année: 2021 + -- valeur: 15 000 € + } + ] + -- revenus: [déclarant1.sortie] + -- année_revenu: 2022 + } +``` + +```catala-test-inline +$ catala test-scope BénéficesNonCommerciaux2 +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.BénéficesNonCommerciauxFoyerFiscal { +│ -- résultats_liquidation_bénéfices_non_commerciaux: +│ [ +│ Impot_revenu.BénéficesNonCommerciauxDéclarant { +│ -- abattement_forfaitaire_micro_professionnel: 0,00 € +│ -- abattement_forfaitaire_micro_non_professionnel: 0,00 € +│ -- revenus_quotientés_professionnels: [] +│ -- revenus_quotientés_non_professionnels: [] +│ -- prélèvement_libératoire_auto_entreprise: 0,00 € +│ -- prélèvement_libératoire_plus_values_long_terme: 0,00 € +│ -- solde_net_professionnel: 0,00 € +│ -- solde_net_non_professionnel: 15 798,00 € +│ -- impôt_taux_forfaitaire: 0,00 € +│ } +│ ] +│ -- revenus_quotientés_imputés: [[]] +│ -- revenu_brut_global: 0,00 € +│ -- déficit_brut_global: 0,00 € +│ -- déficits_réels_années_antérieures_non_professionnels_mis_à _jour: +│ [ +│ Oracles.DéficitAntérieur { -- année: 2 021 -- valeur: 6 202,00 € } +│ ] +│ } +└─ +``` + +## Cas de test bénéfices non commerciaux n°3 + +Déclarant 1 : +- 5JG : 22 540 +- 5JJ : 4 000 + +Déclarant 2 : +- 5RF : 10 000 + +Déclarant 3 : +- 5MU : 1 000 +- 5MY : 200 +- 5MD : 500 + +Déficits antérieurs : + +- 2020 (5LT) : 1 000 +- 2021 (5MT) : 25 000 + +Calcul du revenu brut global et imputation des déficits. + +### Analyse + +#### Déclarant 1 + +Régis par [l'article 92 du +CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000039382326/) et +suivants, les revenus issus des bénéfices non commerciaux (BNC) nets , une +fois déterminés, sont une composante du revenu brut global ([article 13 +CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000036428268/2018-01-01)). + +Dans le cas des BNC, deux régimes d'imposition existent : +- Le régime déclaratif spécial ou "_micro-BNC_" : ce régime encadre les + revenus des contribuables dont les revenus de l'année civile précédente ou + de la pénultième année sont inférieurs ou égaux au montant de [l'article 102 + ter du + CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042159018/). +- Le régime de la déclaration contrôlée : qui encadre les revenus des + contribuables dont les revenus de l'année civile précédente ou de la + pénultième année sont supérieurs au montant fixé par le même texte. + +En l'espèce, le déclarant 1 relève du régime de la déclaration contrôlée. + +Il a déclaré avoir perçu en 2022 : + +##### Bénéfices et déficits du déclarant 1 + +Le bénéfice imposable correspond au bénéfice net réalisé par le contribuable +lors de l'année d'imposition. Ce bénéfice +[net](https://bofip.impots.gouv.fr/bofip/2809-PGP.html/identifiant=BOI-BNC-BASE-10-10-20210512) +est "_égal à l'excédent des recettes totales (produit brut) sur les dépenses +nécessitées par l'exercice de la profession, prévu par le 1 de l'article 93 du +code général des impôts (CGI)_". + +Ces bénéfices peuvent être tirés d'activités : +- Professionnelles; +- Non professionnelles. + +La nature de l'activité a son importance si le contribuable déclare un +déficit. En effet, l'imputation de ce dernier sur les revenus du foyer variera +en fonction de la nature de l'activité exercée. + +En l'espèce, le déclarant 1 a déclaré avoir perçu en 2022 : + +- Un bénéfice non commercial non professionnel de 22 540€ +- Un déficit non commercial non professionnel de 4 000€. + +Aux termes du [2 de l'article 156 du +CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000022334816/2010-05-08), +les déficits non commerciaux non professionnels ne peuvent s'imputer que sur +des activités de même nature et ce jusqu'à la sixième année. + +Soit pour le déclarant 1 : + +22 540 - 4 000 = 18 540 + +**Le déclarant 1 a un revenu net de 18 540€** + +#### Déclarant 2 + +Il s'agit des revenus de même nature et du même régime que ceux du déclarant +1. + +**Le revenu net du déclarant 2 est de 10 000€** + +#### Déclarant 3 + +En 2022, le déclarant 3 a également perçu des bénéfices non commerciaux non +professionnels. + +Cependant, il relève du régime déclaratif spécial ("micro-BNC") prévu à +[l'article 102 ter du +CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042159018/). + +Aux termes de cet article, le montant des bénéfices imposables se voit +appliquer un abattement forfaitaire de 34%. + +soit 1 000 * 34% = 660 + +En outre, le déclarant 3 a également déclaré une plus-value à court terme +d'un montant de 200€ et une moins value à court terme de 500€. + +La compensation de ces deux éléments fait apparaitre une moins-value nette à +court terme de 300€. + +Aux termes du [3 de l'article 39 quaterdecies du +CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000027654286/2014-06-28) +: "_l'excédent des moins-values à court terme constaté au cours d'un exercice +est déduit des bénéfices de cet exercice_". + +Soit 660 - 300 = 360. + +**Le revenu net du déclarant 3 est de 360€** + +### Calcul du revenu brut global + +[L'article 12 du +CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000006302214/) +dispose que : "_L'impôt est dû chaque année à raison des bénéfices ou revenus +que le contribuable réalise ou dont il dispose au cours de la même année_". + +Et le [1 de l'article +13](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000044983201/2024-04-22) +de préciser : "_Le bénéfice ou revenu imposable est constitué par l'excédent +du produit brut, y compris la valeur des profits et avantages en nature, sur +les dépenses effectuées en vue de l'acquisition et de la conservation du +revenu_". + +Le 2 de ce même article 13 fixe les modalités de détermination du revenu net +global annuel. Ce revenu global net annuel sert de base à l'impôt sur le +revenu. Afin de pouvoir le calculer, il faut commencer par calculer le revenu +brut global. Celui-ci est déterminé par la somme des revenus nets catégoriels +des différents membres du foyer fiscal soit : + +18 540 + 10 000 + 360 = 28 900. + +Mais le revenu brut global est aussi déterminé après l'imputation des +déficits. + +En l'espèce, le foyer fiscal a déclaré des déficits au titre des années : +- 2020 : 1 000€ +- 2021 : 25 000€ + +Aux termes du [2 de l'article 156 du +CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000022334816/2010-05-08), +les déficits non commerciaux non professionnels ne peuvent être imputés que +sur "_les bénéfices tirés d'activités semblables durant la même année ou les +six années suivantes_". + +En l'espèce, tous les déclarants du foyer fiscal ont perçu des bénéfices non +commerciaux non professionnels, les déficits antérieurs étant de même nature, +ils peuvent donc être déduits de ces revenus. + +Le [premier alinéa du I de l'article 156 du +CGI](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000022334816/2010-05-08) +précise l'ordre d'imputation des déficits des années antérieures sur les +revenus de l'année d'imposition : "_l'excédent du déficit est reporté +successivement sur le revenu global des années suivantes jusqu'à la sixième +année inclusivement_". + +Autrement dit, il faut d'abord imputer sur les revenus de l'année d'imposition +le déficit le plus ancien et remonter jusqu'au plus récent. + +Soit : + +- Imputation du déficit de l'année 2020 : 28 900 - 1 000 = 27 900 +- Imputation du déficit de l'année 2021 : 27 900 - 25 000 = 2 900 + +**Le revenu brut global du foyer fiscal sera de 2 900€** + +```catala +déclaration champ d'application BénéficesNonCommerciaux3: + déclarant1 champ d'application Interface.BénéficesNonCommerciauxDéclarant + déclarant2 champ d'application Interface.BénéficesNonCommerciauxDéclarant + déclarant3 champ d'application Interface.BénéficesNonCommerciauxDéclarant + + résultat sortie contenu IR.BénéficesNonCommerciauxFoyerFiscal + +champ d'application BénéficesNonCommerciaux3: + définition déclarant1.non_professionnels égal à + (résultat de Interface.BénéficesNonCommerciauxNonProfessionnelsDéclarant avec { + -- généraux: (résultat de Interface.BénéficesNonCommerciauxGénérauxDéclarant avec { + -- revenus_imposables: 22 540 € + -- déficit_réel : 4 000 € }).sortie }).sortie définition déclarant2.non_professionnels égal à (résultat de Interface.BénéficesNonCommerciauxNonProfessionnelsDéclarant avec { -- généraux: (résultat de Interface.BénéficesNonCommerciauxGénérauxDéclarant avec { - -- revenus_imposables_micro: 3000€ + -- revenus_imposables: 10 000 € }).sortie }).sortie - # cases des déficits non encore entrées, non codés: 5QE (déficit BNC pro régime réel) = 50 000 € + définition déclarant3.non_professionnels égal à + (résultat de Interface.BénéficesNonCommerciauxNonProfessionnelsDéclarant avec { + -- généraux: (résultat de Interface.BénéficesNonCommerciauxGénérauxDéclarant avec { + -- revenus_imposables_micro: 1 000 € + -- plus_values_nettes_court_terme_micro: 200 € + -- moins_values_nettes_court_terme_micro: 500 € + }).sortie + }).sortie définition sortie égal à résultat de IR.BénéficesNonCommerciauxFoyerFiscal avec { - -- déficits_réels_années_antérieures_non_professionnels: [] - -- revenus: [déclarant1.sortie; déclarant2.sortie] + -- déficits_réels_années_antérieures_non_professionnels: [ + Oracles.DéficitAntérieur { + -- année: 2020 + -- valeur: 1 000 € + }; + Oracles.DéficitAntérieur { + -- année: 2021 + -- valeur: 25 000 € + } + ] + -- revenus: [déclarant1.sortie; déclarant2.sortie; déclarant3.sortie] -- année_revenu: 2022 } +``` - # TODO juridique et informatique : faire passer ce test +```catala-test-inline +$ catala test-scope BénéficesNonCommerciaux3 +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.BénéficesNonCommerciauxFoyerFiscal { +│ -- résultats_liquidation_bénéfices_non_commerciaux: +│ [ +│ Impot_revenu.BénéficesNonCommerciauxDéclarant { +│ -- abattement_forfaitaire_micro_professionnel: 0,00 € +│ -- abattement_forfaitaire_micro_non_professionnel: 0,00 € +│ -- revenus_quotientés_professionnels: [] +│ -- revenus_quotientés_non_professionnels: [] +│ -- prélèvement_libératoire_auto_entreprise: 0,00 € +│ -- prélèvement_libératoire_plus_values_long_terme: 0,00 € +│ -- solde_net_professionnel: 0,00 € +│ -- solde_net_non_professionnel: 18 540,00 € +│ -- impôt_taux_forfaitaire: 0,00 € +│ }; +│ Impot_revenu.BénéficesNonCommerciauxDéclarant { +│ -- abattement_forfaitaire_micro_professionnel: 0,00 € +│ -- abattement_forfaitaire_micro_non_professionnel: 0,00 € +│ -- revenus_quotientés_professionnels: [] +│ -- revenus_quotientés_non_professionnels: [] +│ -- prélèvement_libératoire_auto_entreprise: 0,00 € +│ -- prélèvement_libératoire_plus_values_long_terme: 0,00 € +│ -- solde_net_professionnel: 0,00 € +│ -- solde_net_non_professionnel: 10 000,00 € +│ -- impôt_taux_forfaitaire: 0,00 € +│ }; +│ Impot_revenu.BénéficesNonCommerciauxDéclarant { +│ -- abattement_forfaitaire_micro_professionnel: 0,00 € +│ -- abattement_forfaitaire_micro_non_professionnel: 340,00 € +│ -- revenus_quotientés_professionnels: [] +│ -- revenus_quotientés_non_professionnels: [] +│ -- prélèvement_libératoire_auto_entreprise: 0,00 € +│ -- prélèvement_libératoire_plus_values_long_terme: 0,00 € +│ -- solde_net_professionnel: 0,00 € +│ -- solde_net_non_professionnel: 360,00 € +│ -- impôt_taux_forfaitaire: 0,00 € +│ } +│ ] +│ -- revenus_quotientés_imputés: [[]; []; []] +│ -- revenu_brut_global: 2 900,00 € +│ -- déficit_brut_global: 0,00 € +│ -- déficits_réels_années_antérieures_non_professionnels_mis_à _jour: [] +│ } +└─ ``` diff --git a/tests/deficits_anterieurs.catala_fr b/tests/deficits_anterieurs.catala_fr index eb7c31035d35959aed82b2752392c40361e79ad0..02e341eeda0773b834830de01af2ca5ebe161316 100644 --- a/tests/deficits_anterieurs.catala_fr +++ b/tests/deficits_anterieurs.catala_fr @@ -21,13 +21,13 @@ champ d'application DéficitsAntérieurs1: ``` ```catala-test-inline -$ catala Interpret --disable-warnings -s DéficitsAntérieurs1 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Oracles.ImputationAuxDéficitsLesPlusAnciens { - -- revenu_imputé: 0,00 € - -- déficits_antérieurs_restants: - [Oracles.DéficitAntérieur { -- année: 2 020 -- valeur: 100,00 € }] - } +$ catala test-scope DéficitsAntérieurs1 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Oracles.ImputationAuxDéficitsLesPlusAnciens { +│ -- revenu_imputé: 0,00 € +│ -- déficits_antérieurs_restants: +│ [Oracles.DéficitAntérieur { -- année: 2 020 -- valeur: 100,00 € }] +│ } +└─ ``` diff --git a/tests/interface.catala_fr b/tests/interface.catala_fr index f77ca4a26c60f148721a1bb2eb3960cf1cb0a224..b21e37dad9e302323a1703812c01dfd720d9c03c 100644 --- a/tests/interface.catala_fr +++ b/tests/interface.catala_fr @@ -283,7 +283,7 @@ champ d'application BénéficesNonCommerciauxDéclarant: ### Bénéfices industriels et commerciaux ```catala-metadata -déclaration champ d'application BénéficesIndustrielsCommerciaux: +déclaration champ d'application BénéficesIndustrielsCommerciauxGénérauxDéclarant: contexte plus_values_nettes_court_terme_micro contenu argent contexte moins_values_nettes_court_terme_micro contenu argent contexte plus_values_nettes_long_terme_micro contenu argent @@ -291,15 +291,17 @@ déclaration champ d'application BénéficesIndustrielsCommerciaux: contexte plus_values_nettes_long_terme_réel contenu argent contexte revenus_imposables_micro_marchandises contenu argent contexte revenus_imposables_micro_services contenu argent + contexte revenus_imposables_réel contenu argent + contexte déficit_réel contenu argent contexte revenus_exceptionnels_ou_différés contenu liste de IR.RevenuExceptionnelOuDifféré résultat sortie contenu - IR.DéclarationBénéficesIndustrielsCommerciaux + IR.DéclarationBénéficesIndustrielsCommerciauxGénéraux ``` ```catala -champ d'application BénéficesIndustrielsCommerciaux: +champ d'application BénéficesIndustrielsCommerciauxGénérauxDéclarant: définition plus_values_nettes_court_terme_micro égal à 0€ définition moins_values_nettes_court_terme_micro égal à 0€ définition plus_values_nettes_long_terme_micro égal à 0€ @@ -308,9 +310,11 @@ champ d'application BénéficesIndustrielsCommerciaux: définition revenus_imposables_micro_marchandises égal à 0 € définition revenus_imposables_micro_services égal à 0 € définition revenus_exceptionnels_ou_différés égal à [] + définition revenus_imposables_réel égal à 0 € + définition déficit_réel égal à 0 € définition sortie égal à - IR.DéclarationBénéficesIndustrielsCommerciaux { + IR.DéclarationBénéficesIndustrielsCommerciauxGénéraux { -- plus_values_nettes_court_terme_micro: plus_values_nettes_court_terme_micro -- moins_values_nettes_court_terme_micro: @@ -327,6 +331,49 @@ champ d'application BénéficesIndustrielsCommerciaux: revenus_imposables_micro_services -- revenus_exceptionnels_ou_différés: revenus_exceptionnels_ou_différés + -- revenus_imposables_réel: revenus_imposables_réel + -- déficit_réel: déficit_réel + } +``` + +```catala-metadata +déclaration champ d'application BénéficesIndustrielsCommerciauxDéclarant: + contexte professionnels contenu + IR.DéclarationBénéficesIndustrielsCommerciauxGénéraux + contexte non_professionnels contenu + IR.DéclarationBénéficesIndustrielsCommerciauxGénéraux + contexte + chiffre_affaires_prélèvement_libératoire_marchandises_éxonéré_cotisations + contenu argent + contexte + chiffre_affaires_prélèvement_libératoire_services_éxonéré_cotisations + contenu argent + + résultat sortie contenu + IR.DéclarationBénéficesIndustrielsCommerciaux +``` + +```catala +champ d'application BénéficesIndustrielsCommerciauxDéclarant: + définition professionnels égal à + (résultat de BénéficesIndustrielsCommerciauxGénérauxDéclarant).sortie + définition non_professionnels égal à + (résultat de BénéficesIndustrielsCommerciauxGénérauxDéclarant).sortie + définition + chiffre_affaires_prélèvement_libératoire_marchandises_éxonéré_cotisations + égal à 0 € + définition + chiffre_affaires_prélèvement_libératoire_services_éxonéré_cotisations + égal à 0 € + + définition sortie égal à + IR.DéclarationBénéficesIndustrielsCommerciaux { + -- professionnels: professionnels + -- non_professionnels: non_professionnels + -- chiffre_affaires_prélèvement_libératoire_marchandises_éxonéré_cotisations: + chiffre_affaires_prélèvement_libératoire_marchandises_éxonéré_cotisations + -- chiffre_affaires_prélèvement_libératoire_services_éxonéré_cotisations: + chiffre_affaires_prélèvement_libératoire_services_éxonéré_cotisations } ``` diff --git a/tests/nombre_de_parts.catala_fr b/tests/nombre_de_parts.catala_fr index b3cdaffaf50caa4bce7705305a76e1466e620a8b..d8b7ce2ac4cd1fcbbaef9a1b01629b02794b2f0a 100644 --- a/tests/nombre_de_parts.catala_fr +++ b/tests/nombre_de_parts.catala_fr @@ -124,14 +124,14 @@ champ d'application NombreDeParts1: Le test ci-dessus doit donner le résultat suivant à l'exécution. ```catala-test-inline -$ catala Interpret --disable-warnings -s NombreDeParts1 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.NombreDeParts { - -- nombre_de_parts: 3,0 - -- abattement: 0,00 € - } +$ catala test-scope NombreDeParts1 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.NombreDeParts { +│ -- nombre_de_parts: 3,0 +│ -- abattement: 0,00 € +│ } +└─ ``` ## Cas de test 2 @@ -278,14 +278,14 @@ Le nombre de parts du foyer est donc de 4,5 parts. Le test ci-dessus doit donner le résultat suivant à l'exécution. ```catala-test-inline -$ catala Interpret --disable-warnings -s NombreDeParts2 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.NombreDeParts { - -- nombre_de_parts: 4,5 - -- abattement: 0,00 € - } +$ catala test-scope NombreDeParts2 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.NombreDeParts { +│ -- nombre_de_parts: 4,5 +│ -- abattement: 0,00 € +│ } +└─ ``` ## Cas de test 3 @@ -518,14 +518,14 @@ auquel il a droit doit être divisé de moitié. Le nombre de parts du foyer est donc de 4,5 parts. ```catala-test-inline -$ catala Interpret --disable-warnings -s NombreDeParts3 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.NombreDeParts { - -- nombre_de_parts: 4,0 - -- abattement: 9 552,00 € - } +$ catala test-scope NombreDeParts3 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.NombreDeParts { +│ -- nombre_de_parts: 4,0 +│ -- abattement: 9 552,00 € +│ } +└─ ``` ## Cas de test 4 (n°1 du POC 2023) @@ -664,14 +664,14 @@ Soit une majoration de 0.25 par pour l'enfant à charge. **Aussi, le quotient familial du foyer fiscal P sera de 2.25 parts.** ```catala-test-inline -$ catala Interpret --disable-warnings -s NombreDeParts4 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.NombreDeParts { - -- nombre_de_parts: 2,25 - -- abattement: 0,00 € - } +$ catala test-scope NombreDeParts4 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.NombreDeParts { +│ -- nombre_de_parts: 2,25 +│ -- abattement: 0,00 € +│ } +└─ ``` ## Cas de test 5 (n°2 du POC) @@ -834,12 +834,12 @@ prévoit une majoration supplémentaire d'un quart de part. 3.75 parts** ```catala-test-inline -$ catala Interpret --disable-warnings -s NombreDeParts5 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.NombreDeParts { - -- nombre_de_parts: 3,75 - -- abattement: 0,00 € - } +$ catala test-scope NombreDeParts5 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.NombreDeParts { +│ -- nombre_de_parts: 3,75 +│ -- abattement: 0,00 € +│ } +└─ ``` diff --git a/tests/prorata.catala_fr b/tests/prorata.catala_fr index 6337eb29c1ba41cedd16c71e4874ef87fb9f9fd9..76f30d2271272a25f3e964bec83185fdc9a4a3dc 100644 --- a/tests/prorata.catala_fr +++ b/tests/prorata.catala_fr @@ -16,13 +16,13 @@ champ d'application ProRata1: ```catala-test-inline -$ catala Interpret --disable-warnings -s ProRata1 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Oracles.ProRataArrondiEuro { - -- valeurs_proratisées: [10,00 €; 20,00 €; 30,00 €; 40,00 €] - } +$ catala test-scope ProRata1 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Oracles.ProRataArrondiEuro { +│ -- valeurs_proratisées: [10,00 €; 20,00 €; 30,00 €; 40,00 €] +│ } +└─ ``` ```catala @@ -38,13 +38,13 @@ champ d'application ProRata2: ``` ```catala-test-inline -$ catala Interpret --disable-warnings -s ProRata2 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Oracles.ProRataArrondiEuro { - -- valeurs_proratisées: [2,00 €; 3,00 €; 4,00 €; 6,00 €] - } +$ catala test-scope ProRata2 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Oracles.ProRataArrondiEuro { +│ -- valeurs_proratisées: [2,00 €; 3,00 €; 4,00 €; 6,00 €] +│ } +└─ ``` ```catala @@ -60,16 +60,16 @@ champ d'application ProRata3: ``` ```catala-test-inline -$ catala Interpret --disable-warnings -s ProRata3 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Oracles.ProRataArrondiEuro { - -- valeurs_proratisées: - [ - 11,00 €; 65,00 €; 10,00 €; 219,00 €; 20,00 €; 106,00 €; - 30,00 €; 106,00 € - ] - } +$ catala test-scope ProRata3 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Oracles.ProRataArrondiEuro { +│ -- valeurs_proratisées: +│ [ +│ 11,00 €; 65,00 €; 10,00 €; 219,00 €; 20,00 €; 106,00 €; +│ 30,00 €; 106,00 € +│ ] +│ } +└─ ``` diff --git a/tests/traitements_salaires.catala_fr b/tests/traitements_salaires.catala_fr index 3a59c3c03400a6ed69142a77c1f7995c392ffcdf..c60ce548a61837faa465bfae51ae2aff01f03d99 100644 --- a/tests/traitements_salaires.catala_fr +++ b/tests/traitements_salaires.catala_fr @@ -27,20 +27,20 @@ champ d'application TraitementsSalaires1: Le test ci-dessus doit donner le résultat suivant à l'exécution. ```catala-test-inline -$ catala Interpret --disable-warnings -s TraitementsSalaires1 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: 1 000,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 10 000,00 € - -- revenu_brut_déclarant_hors_quotient: 9 000,00 € - -- revenus_quotientés: [] - } +$ catala test-scope TraitementsSalaires1 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: 1 000,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 10 000,00 € +│ -- revenu_brut_déclarant_hors_quotient: 9 000,00 € +│ -- revenus_quotientés: [] +│ } +└─ ``` ## Cas de test 2 @@ -66,20 +66,20 @@ champ d'application TraitementsSalaires2: Le test ci-dessus doit donner le résultat suivant à l'exécution. ```catala-test-inline -$ catala Interpret --disable-warnings -s TraitementsSalaires2 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: 2 000,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 10 000,00 € - -- revenu_brut_déclarant_hors_quotient: 8 000,00 € - -- revenus_quotientés: [] - } +$ catala test-scope TraitementsSalaires2 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: 2 000,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 10 000,00 € +│ -- revenu_brut_déclarant_hors_quotient: 8 000,00 € +│ -- revenus_quotientés: [] +│ } +└─ ``` @@ -263,25 +263,24 @@ champ d'application TraitementsSalaires3: ``` ```catala-test-inline -$ catala interpret --disable-warnings -s TraitementsSalaires3 -[RESULT] Computation successful! Results: -[RESULT] -parts = - Impot_revenu.NombreDeParts { - -- nombre_de_parts: 1,0 - -- abattement: 0,00 € - } -[RESULT] -traitements_salaires = - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 2 000,00 € - -- déduction_frais_professionnels_traitements_salaires: 0,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 2 025,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: 0,00 € - -- revenu_brut_déclarant_hors_quotient: 18 000,00 € - -- revenus_quotientés: [] - } +$ catala test-scope TraitementsSalaires3 --disable-warnings +┌─[RESULT]─ +│ parts = +│ Impot_revenu.NombreDeParts { +│ -- nombre_de_parts: 1,0 +│ -- abattement: 0,00 € +│ } +│ traitements_salaires = +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 2 000,00 € +│ -- déduction_frais_professionnels_traitements_salaires: 0,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 2 025,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: 0,00 € +│ -- revenu_brut_déclarant_hors_quotient: 18 000,00 € +│ -- revenus_quotientés: [] +│ } +└─ ``` ## Cas de test 4 @@ -366,39 +365,39 @@ champ d'application TraitementsSalaires4: ``` ```catala-test-inline -$ catala interpret --disable-warnings -s TraitementsSalaires4 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.TraitementsSalairesFoyerFiscal { - -- déclarations_avec_résultats_traitements_salaires: - [ - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 1 914,00 € - -- déduction_frais_professionnels_traitements_salaires: 0,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 0,00 € - -- revenu_brut_déclarant_hors_quotient: 50 086,00 € - -- revenus_quotientés: [] - }; - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 2 209,00 € - -- déduction_frais_professionnels_traitements_salaires: 0,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 0,00 € - -- revenu_brut_déclarant_hors_quotient: 57 791,00 € - -- revenus_quotientés: [] - } - ] - -- rentes_viagères_titre_onéreux: 0,00 € - -- revenu_brut_global: 107 877,00 € - -- déficit_brut_global: 0,00 € - -- revenus_quotientés: [] - } +$ catala test-scope TraitementsSalaires4 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.TraitementsSalairesFoyerFiscal { +│ -- déclarations_avec_résultats_traitements_salaires: +│ [ +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 1 914,00 € +│ -- déduction_frais_professionnels_traitements_salaires: 0,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 0,00 € +│ -- revenu_brut_déclarant_hors_quotient: 50 086,00 € +│ -- revenus_quotientés: [] +│ }; +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 2 209,00 € +│ -- déduction_frais_professionnels_traitements_salaires: 0,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 0,00 € +│ -- revenu_brut_déclarant_hors_quotient: 57 791,00 € +│ -- revenus_quotientés: [] +│ } +│ ] +│ -- rentes_viagères_titre_onéreux: 0,00 € +│ -- revenu_brut_global: 107 877,00 € +│ -- déficit_brut_global: 0,00 € +│ -- revenus_quotientés: [] +│ } +└─ ``` ## Cas de test 5 @@ -535,49 +534,49 @@ champ d'application TraitementsSalaires5: ``` ```catala-test-inline -$ catala interpret --disable-warnings -s TraitementsSalaires5 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.TraitementsSalairesFoyerFiscal { - -- déclarations_avec_résultats_traitements_salaires: - [ - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 3 958,00 € - -- déduction_frais_professionnels_traitements_salaires: 0,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 0,00 € - -- revenu_brut_déclarant_hors_quotient: 68 042,00 € - -- revenus_quotientés: [] - }; - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 165,00 € - -- déduction_frais_professionnels_traitements_salaires: 0,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 0,00 € - -- revenu_brut_déclarant_hors_quotient: 135,00 € - -- revenus_quotientés: [] - }; - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: 0,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 6 750,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 0,00 € - -- revenu_brut_déclarant_hors_quotient: 0,00 € - -- revenus_quotientés: [] - } - ] - -- rentes_viagères_titre_onéreux: 0,00 € - -- revenu_brut_global: 68 177,00 € - -- déficit_brut_global: 0,00 € - -- revenus_quotientés: [] - } +$ catala test-scope TraitementsSalaires5 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.TraitementsSalairesFoyerFiscal { +│ -- déclarations_avec_résultats_traitements_salaires: +│ [ +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 3 958,00 € +│ -- déduction_frais_professionnels_traitements_salaires: 0,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 0,00 € +│ -- revenu_brut_déclarant_hors_quotient: 68 042,00 € +│ -- revenus_quotientés: [] +│ }; +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 165,00 € +│ -- déduction_frais_professionnels_traitements_salaires: 0,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 0,00 € +│ -- revenu_brut_déclarant_hors_quotient: 135,00 € +│ -- revenus_quotientés: [] +│ }; +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: 0,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 6 750,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 0,00 € +│ -- revenu_brut_déclarant_hors_quotient: 0,00 € +│ -- revenus_quotientés: [] +│ } +│ ] +│ -- rentes_viagères_titre_onéreux: 0,00 € +│ -- revenu_brut_global: 68 177,00 € +│ -- déficit_brut_global: 0,00 € +│ -- revenus_quotientés: [] +│ } +└─ ``` ## Cas de test 6 (n°1 du POC 2023) @@ -746,50 +745,51 @@ champ d'application TraitementsSalaires6: ``` ```catala-test-inline -$ catala interpret --disable-warnings -s TraitementsSalaires6 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.TraitementsSalairesFoyerFiscal { - -- déclarations_avec_résultats_traitements_salaires: - [ - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: - 4 800,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 48 000,00 € - -- revenu_brut_déclarant_hors_quotient: 43 200,00 € - -- revenus_quotientés: [] - }; - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 4 123,00 € - -- déduction_frais_professionnels_traitements_salaires: 0,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 0,00 € - -- revenu_brut_déclarant_hors_quotient: 41 377,00 € - -- revenus_quotientés: [] - }; - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: 472,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 3 000,00 € - -- revenu_brut_déclarant_hors_quotient: 2 528,00 € - -- revenus_quotientés: [] - } - ] - -- rentes_viagères_titre_onéreux: 0,00 € - -- revenu_brut_global: 87 105,00 € - -- déficit_brut_global: 0,00 € - -- revenus_quotientés: [] - } +$ catala test-scope TraitementsSalaires6 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.TraitementsSalairesFoyerFiscal { +│ -- déclarations_avec_résultats_traitements_salaires: +│ [ +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: +│ 4 800,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 48 000,00 € +│ -- revenu_brut_déclarant_hors_quotient: 43 200,00 € +│ -- revenus_quotientés: [] +│ }; +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 4 123,00 € +│ -- déduction_frais_professionnels_traitements_salaires: 0,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 0,00 € +│ -- revenu_brut_déclarant_hors_quotient: 41 377,00 € +│ -- revenus_quotientés: [] +│ }; +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: +│ 472,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 3 000,00 € +│ -- revenu_brut_déclarant_hors_quotient: 2 528,00 € +│ -- revenus_quotientés: [] +│ } +│ ] +│ -- rentes_viagères_titre_onéreux: 0,00 € +│ -- revenu_brut_global: 87 105,00 € +│ -- déficit_brut_global: 0,00 € +│ -- revenus_quotientés: [] +│ } +└─ ``` ## Cas de test revenus quotientés @@ -1208,58 +1208,59 @@ champ d'application TraitementsSalaires7: ``` ```catala-test-inline -$ catala interpret --disable-warnings -s TraitementsSalaires7 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.TraitementsSalairesFoyerFiscal { - -- déclarations_avec_résultats_traitements_salaires: - [ - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: - 2 203,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 48 650,00 € - -- revenu_brut_déclarant_hors_quotient: 46 447,00 € - -- revenus_quotientés: - [ - Impot_revenu.RevenuQuotienté { - -- valeur_nette: 238 681,00 € - -- déduction: 11 319,00 € - -- coefficient: 5 - -- catégorie: TraitementsSalaires () - } - ] - }; - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: 895,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 8 950,00 € - -- revenu_brut_déclarant_hors_quotient: 8 055,00 € - -- revenus_quotientés: [] - }; - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 150,00 € - -- déduction_frais_professionnels_traitements_salaires: 0,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 0,00 € - -- revenu_brut_déclarant_hors_quotient: 0,00 € - -- revenus_quotientés: [] - } - ] - -- rentes_viagères_titre_onéreux: 30 000,00 € - -- revenu_brut_global: 84 502,00 € - -- déficit_brut_global: 0,00 € - -- revenus_quotientés: [] - } +$ catala test-scope TraitementsSalaires7 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.TraitementsSalairesFoyerFiscal { +│ -- déclarations_avec_résultats_traitements_salaires: +│ [ +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: +│ 2 203,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 48 650,00 € +│ -- revenu_brut_déclarant_hors_quotient: 46 447,00 € +│ -- revenus_quotientés: +│ [ +│ Impot_revenu.RevenuQuotienté { +│ -- valeur_nette: 238 681,00 € +│ -- déduction: 11 319,00 € +│ -- coefficient: 5 +│ -- catégorie: TraitementsSalaires () +│ } +│ ] +│ }; +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: +│ 895,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 8 950,00 € +│ -- revenu_brut_déclarant_hors_quotient: 8 055,00 € +│ -- revenus_quotientés: [] +│ }; +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 150,00 € +│ -- déduction_frais_professionnels_traitements_salaires: 0,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 0,00 € +│ -- revenu_brut_déclarant_hors_quotient: 0,00 € +│ -- revenus_quotientés: [] +│ } +│ ] +│ -- rentes_viagères_titre_onéreux: 30 000,00 € +│ -- revenu_brut_global: 84 502,00 € +│ -- déficit_brut_global: 0,00 € +│ -- revenus_quotientés: [] +│ } +└─ ``` ## Cas de test revenus quotientés 2 @@ -1339,58 +1340,59 @@ champ d'application TraitementsSalaires8: ``` ```catala-test-inline -$ catala interpret --disable-warnings -s TraitementsSalaires8 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.TraitementsSalairesFoyerFiscal { - -- déclarations_avec_résultats_traitements_salaires: - [ - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: 986,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 72 360,00 € - -- revenu_brut_déclarant_hors_quotient: 71 374,00 € - -- revenus_quotientés: - [ - Impot_revenu.RevenuQuotienté { - -- valeur_nette: 907 464,00 € - -- déduction: 12 536,00 € - -- coefficient: 6 - -- catégorie: TraitementsSalaires () - } - ] - }; - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: - 5 000,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 46 544,00 € - -- revenu_brut_déclarant_hors_quotient: 41 544,00 € - -- revenus_quotientés: [] - }; - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 694,00 € - -- déduction_frais_professionnels_traitements_salaires: 0,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 0,00 € - -- revenu_brut_déclarant_hors_quotient: 6 242,00 € - -- revenus_quotientés: [] - } - ] - -- rentes_viagères_titre_onéreux: 0,00 € - -- revenu_brut_global: 119 160,00 € - -- déficit_brut_global: 0,00 € - -- revenus_quotientés: [] - } +$ catala test-scope TraitementsSalaires8 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.TraitementsSalairesFoyerFiscal { +│ -- déclarations_avec_résultats_traitements_salaires: +│ [ +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: +│ 986,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 72 360,00 € +│ -- revenu_brut_déclarant_hors_quotient: 71 374,00 € +│ -- revenus_quotientés: +│ [ +│ Impot_revenu.RevenuQuotienté { +│ -- valeur_nette: 907 464,00 € +│ -- déduction: 12 536,00 € +│ -- coefficient: 6 +│ -- catégorie: TraitementsSalaires () +│ } +│ ] +│ }; +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: +│ 5 000,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 46 544,00 € +│ -- revenu_brut_déclarant_hors_quotient: 41 544,00 € +│ -- revenus_quotientés: [] +│ }; +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 694,00 € +│ -- déduction_frais_professionnels_traitements_salaires: 0,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 0,00 € +│ -- revenu_brut_déclarant_hors_quotient: 6 242,00 € +│ -- revenus_quotientés: [] +│ } +│ ] +│ -- rentes_viagères_titre_onéreux: 0,00 € +│ -- revenu_brut_global: 119 160,00 € +│ -- déficit_brut_global: 0,00 € +│ -- revenus_quotientés: [] +│ } +└─ ``` ## Cas test n°9 (revenus quotientés forts, traitements salaires faibles) @@ -1451,37 +1453,37 @@ revenus quotientés ? L'exemple du BOFiP ne permet de le déterminer mais ce cas de test si (issue #56). ```catala-test-inline -$ catala interpret --disable-warnings -s TraitementsSalaires9 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.TraitementsSalairesFoyerFiscal { - -- déclarations_avec_résultats_traitements_salaires: - [ - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: 94,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 350,00 € - -- revenu_brut_déclarant_hors_quotient: 256,00 € - -- revenus_quotientés: - [ - Impot_revenu.RevenuQuotienté { - -- valeur_nette: 486 572,00 € - -- déduction: 13 428,00 € - -- coefficient: 6 - -- catégorie: TraitementsSalaires () - } - ] - } - ] - -- rentes_viagères_titre_onéreux: 0,00 € - -- revenu_brut_global: 256,00 € - -- déficit_brut_global: 0,00 € - -- revenus_quotientés: [] - } +$ catala test-scope TraitementsSalaires9 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.TraitementsSalairesFoyerFiscal { +│ -- déclarations_avec_résultats_traitements_salaires: +│ [ +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: 94,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 350,00 € +│ -- revenu_brut_déclarant_hors_quotient: 256,00 € +│ -- revenus_quotientés: +│ [ +│ Impot_revenu.RevenuQuotienté { +│ -- valeur_nette: 486 572,00 € +│ -- déduction: 13 428,00 € +│ -- coefficient: 6 +│ -- catégorie: TraitementsSalaires () +│ } +│ ] +│ } +│ ] +│ -- rentes_viagères_titre_onéreux: 0,00 € +│ -- revenu_brut_global: 256,00 € +│ -- déficit_brut_global: 0,00 € +│ -- revenus_quotientés: [] +│ } +└─ ``` ## Cas de test nombre de parts + revenus 2 @@ -1791,41 +1793,41 @@ champ d'application TraitementsSalaires10: ``` ```catala-test-inline -$ catala interpret --disable-warnings -s TraitementsSalaires10 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.TraitementsSalairesFoyerFiscal { - -- déclarations_avec_résultats_traitements_salaires: - [ - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: - 4 000,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 40 000,00 € - -- revenu_brut_déclarant_hors_quotient: 36 000,00 € - -- revenus_quotientés: [] - }; - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: - 2 000,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 20 000,00 € - -- revenu_brut_déclarant_hors_quotient: 18 000,00 € - -- revenus_quotientés: [] - } - ] - -- rentes_viagères_titre_onéreux: 10 500,00 € - -- revenu_brut_global: 64 500,00 € - -- déficit_brut_global: 0,00 € - -- revenus_quotientés: [] - } +$ catala test-scope TraitementsSalaires10 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.TraitementsSalairesFoyerFiscal { +│ -- déclarations_avec_résultats_traitements_salaires: +│ [ +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: +│ 4 000,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 40 000,00 € +│ -- revenu_brut_déclarant_hors_quotient: 36 000,00 € +│ -- revenus_quotientés: [] +│ }; +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: +│ 2 000,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 20 000,00 € +│ -- revenu_brut_déclarant_hors_quotient: 18 000,00 € +│ -- revenus_quotientés: [] +│ } +│ ] +│ -- rentes_viagères_titre_onéreux: 10 500,00 € +│ -- revenu_brut_global: 64 500,00 € +│ -- déficit_brut_global: 0,00 € +│ -- revenus_quotientés: [] +│ } +└─ ``` ## Cas de test 11 (n°2 du POC 2023) @@ -2454,79 +2456,80 @@ champ d'application TraitementsSalaires11: ``` ```catala-test-inline -$ catala interpret --disable-warnings -s TraitementsSalaires11 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.TraitementsSalairesFoyerFiscal { - -- déclarations_avec_résultats_traitements_salaires: - [ - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: - 13 133,00 € - -- exonérations_81_quater: 7 500,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 139 045,00 € - -- revenu_brut_déclarant_hors_quotient: 125 912,00 € - -- revenus_quotientés: - [ - Impot_revenu.RevenuQuotienté { - -- valeur_nette: 3 734,00 € - -- déduction: 389,00 € - -- coefficient: 5 - -- catégorie: TraitementsSalaires () - } - ] - }; - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: - 1 000,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 10 000,00 € - -- revenu_brut_déclarant_hors_quotient: 9 000,00 € - -- revenus_quotientés: [] - }; - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 350,00 € - -- déduction_frais_professionnels_traitements_salaires: 0,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 0,00 € - -- revenu_brut_déclarant_hors_quotient: 0,00 € - -- revenus_quotientés: [] - }; - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: 0,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 0,00 € - -- revenu_brut_déclarant_hors_quotient: 0,00 € - -- revenus_quotientés: [] - }; - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: 850,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 500,00 € - -- revenu_brut_déclarant_hors_quotient: -350,00 € - -- revenus_quotientés: [] - } - ] - -- rentes_viagères_titre_onéreux: 2 050,00 € - -- revenu_brut_global: 140 612,00 € - -- déficit_brut_global: 0,00 € - -- revenus_quotientés: [] - } +$ catala test-scope TraitementsSalaires11 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.TraitementsSalairesFoyerFiscal { +│ -- déclarations_avec_résultats_traitements_salaires: +│ [ +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: +│ 13 133,00 € +│ -- exonérations_81_quater: 7 500,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 139 045,00 € +│ -- revenu_brut_déclarant_hors_quotient: 125 912,00 € +│ -- revenus_quotientés: +│ [ +│ Impot_revenu.RevenuQuotienté { +│ -- valeur_nette: 3 734,00 € +│ -- déduction: 389,00 € +│ -- coefficient: 5 +│ -- catégorie: TraitementsSalaires () +│ } +│ ] +│ }; +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: +│ 1 000,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 10 000,00 € +│ -- revenu_brut_déclarant_hors_quotient: 9 000,00 € +│ -- revenus_quotientés: [] +│ }; +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 350,00 € +│ -- déduction_frais_professionnels_traitements_salaires: 0,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 0,00 € +│ -- revenu_brut_déclarant_hors_quotient: 0,00 € +│ -- revenus_quotientés: [] +│ }; +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: 0,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 0,00 € +│ -- revenu_brut_déclarant_hors_quotient: 0,00 € +│ -- revenus_quotientés: [] +│ }; +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: +│ 850,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 500,00 € +│ -- revenu_brut_déclarant_hors_quotient: -350,00 € +│ -- revenus_quotientés: [] +│ } +│ ] +│ -- rentes_viagères_titre_onéreux: 2 050,00 € +│ -- revenu_brut_global: 140 612,00 € +│ -- déficit_brut_global: 0,00 € +│ -- revenus_quotientés: [] +│ } +└─ ``` ## Cas de test 12 @@ -2574,55 +2577,55 @@ champ d'application TraitementsSalaires12: ```catala-test-inline -$ catala interpret --disable-warnings -s TraitementsSalaires12 -[RESULT] Computation successful! Results: -[RESULT] -sortie = - Impot_revenu.TraitementsSalairesFoyerFiscal { - -- déclarations_avec_résultats_traitements_salaires: - [ - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: - 15 000,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 10 000,00 € - -- revenu_brut_déclarant_hors_quotient: -5 000,00 € - -- revenus_quotientés: - [ - Impot_revenu.RevenuQuotienté { - -- valeur_nette: 0,00 € - -- déduction: 5 000,00 € - -- coefficient: 5 - -- catégorie: TraitementsSalaires () - } - ] - }; - Impot_revenu.TraitementsSalairesDéclarant { - -- abattement_pensions_retraites_rentes: 0,00 € - -- déduction_frais_professionnels_traitements_salaires: 0,00 € - -- exonérations_81_quater: 0,00 € - -- prélèvement_libératoire: 0,00 € - -- traitements_salaires_avec_déduction_frais_professionnels: - 0,00 € - -- revenu_brut_déclarant_hors_quotient: 0,00 € - -- revenus_quotientés: - [ - Impot_revenu.RevenuQuotienté { - -- valeur_nette: 0,00 € - -- déduction: 500,00 € - -- coefficient: 4 - -- catégorie: TraitementsSalaires () - } - ] - } - ] - -- rentes_viagères_titre_onéreux: 0,00 € - -- revenu_brut_global: 0,00 € - -- déficit_brut_global: -500,00 € - -- revenus_quotientés: [] - } +$ catala test-scope TraitementsSalaires12 --disable-warnings +┌─[RESULT]─ +│ sortie = +│ Impot_revenu.TraitementsSalairesFoyerFiscal { +│ -- déclarations_avec_résultats_traitements_salaires: +│ [ +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: +│ 15 000,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 10 000,00 € +│ -- revenu_brut_déclarant_hors_quotient: -5 000,00 € +│ -- revenus_quotientés: +│ [ +│ Impot_revenu.RevenuQuotienté { +│ -- valeur_nette: 0,00 € +│ -- déduction: 5 000,00 € +│ -- coefficient: 5 +│ -- catégorie: TraitementsSalaires () +│ } +│ ] +│ }; +│ Impot_revenu.TraitementsSalairesDéclarant { +│ -- abattement_pensions_retraites_rentes: 0,00 € +│ -- déduction_frais_professionnels_traitements_salaires: 0,00 € +│ -- exonérations_81_quater: 0,00 € +│ -- prélèvement_libératoire: 0,00 € +│ -- traitements_salaires_avec_déduction_frais_professionnels: +│ 0,00 € +│ -- revenu_brut_déclarant_hors_quotient: 0,00 € +│ -- revenus_quotientés: +│ [ +│ Impot_revenu.RevenuQuotienté { +│ -- valeur_nette: 0,00 € +│ -- déduction: 500,00 € +│ -- coefficient: 4 +│ -- catégorie: TraitementsSalaires () +│ } +│ ] +│ } +│ ] +│ -- rentes_viagères_titre_onéreux: 0,00 € +│ -- revenu_brut_global: 0,00 € +│ -- déficit_brut_global: -500,00 € +│ -- revenus_quotientés: [] +│ } +└─ ```