@@ -330,7 +330,7 @@ class b9pr(Variable):
330330 cerfa_field = '9PR'
331331 unit = 'currency'
332332 entity = FoyerFiscal
333- label = 'Impôts dus au titre des revenus et produits 2018 '
333+ label = 'Impôts dus au titre des revenus et produits'
334334 definition_period = YEAR
335335 # start = '2018-01-01'
336336
@@ -340,7 +340,7 @@ class b9px(Variable):
340340 cerfa_field = '9PX'
341341 unit = 'currency'
342342 entity = FoyerFiscal
343- label = 'Revenus et produits de l’année 2018 en cas de montant négatif, inscrivez 0'
343+ label = 'Revenus et produits de l’année en cas de montant négatif, inscrivez 0'
344344 definition_period = YEAR
345345 # start = '2018-01-01'
346346
@@ -425,36 +425,19 @@ class isf_ifi_imm_non_bati(Variable):
425425 def formula_2018_01_01 (foyer_fiscal , period , parameters ):
426426 b9ac = foyer_fiscal ('b9ac' , period )
427427 b9ad = foyer_fiscal ('b9ad' , period )
428- b1bh = foyer_fiscal ('b1bh ' , period )
429- b1bk = foyer_fiscal ('b1bk ' , period )
430- non_bati = parameters (period ).taxation_capital .impot_fortune_immobiliere_ifi_partir_2018 .forfait_mobilier . non_bati
428+ b9ba = foyer_fiscal ('b9ba ' , period )
429+ b9bb = foyer_fiscal ('b9bb ' , period )
430+ exonerations = parameters (period ).taxation_capital .impot_fortune_immobiliere_ifi_partir_2018 .exonerations
431431
432432 # forêts
433- b9ac_exon = b9ac * non_bati .taux_bois_forets
433+ b9ac_exon = b9ac * exonerations .taux_bois_forets
434434 # bien ruraux loués à long terme
435- b9ad_exon_sous_seuil = min_ (b9ad , non_bati . seuil ) * non_bati . taux_biens_ruraux
436- b9ad_exon_dessus_seuil = max_ (b9ad - non_bati . seuil , 0 ) * non_bati . taux_forestier_agricole
435+ b9ad_exon_sous_seuil = min_ (b9ad , exonerations . taux_avec_seuil . seuil ) * exonerations . taux_avec_seuil . taux_sous_seuil
436+ b9ad_exon_dessus_seuil = max_ (b9ad - exonerations . taux_avec_seuil . seuil , 0 ) * exonerations . taux_avec_seuil . taux_dessous_seuil
437437 # part de groupements forestiers- agricoles fonciers
438- b1bi = min_ (b1bh , non_bati .seuil ) * non_bati .taux_biens_ruraux
439- b1bj = max_ (b1bh - non_bati .seuil , 0 ) * non_bati .taux_forestier_agricole
440- return b9ac_exon + b9ad_exon_sous_seuil + b9ad_exon_dessus_seuil + b1bi + b1bj + b1bk
441-
442- # def formula_2018_01_01(foyer_fiscal, period, parameters):
443- # b1bc = foyer_fiscal('b1bc', period)
444- # b1be = foyer_fiscal('b1be', period)
445- # b1bh = foyer_fiscal('b1bh', period)
446- # b1bk = foyer_fiscal('b1bk', period)
447- # non_bati = parameters(period).taxation_capital.impot_fortune_immobiliere_ifi_partir_2018.forfait_mobilier.non_bati
448-
449- # # forêts
450- # b1bd = b1bc * non_bati.taux_bois_forets
451- # # bien ruraux loués à long terme
452- # b1bf = min_(b1be, non_bati.seuil) * non_bati.taux_biens_ruraux
453- # b1bg = max_(b1be - non_bati.seuil, 0) * non_bati.taux_forestier_agricole
454- # # part de groupements forestiers- agricoles fonciers
455- # b1bi = min_(b1bh, non_bati.seuil) * non_bati.taux_biens_ruraux
456- # b1bj = max_(b1bh - non_bati.seuil, 0) * non_bati.taux_forestier_agricole
457- # return b1bd + b1bf + b1bg + b1bi + b1bj + b1bk
438+ b9ba_exon_sous_seuil = min_ (b9ba , exonerations .taux_avec_seuil .seuil ) * exonerations .taux_avec_seuil .taux_sous_seuil
439+ b9ba_exon_dessus_seuil = max_ (b9ba - exonerations .taux_avec_seuil .seuil , 0 ) * exonerations .taux_avec_seuil .taux_dessous_seuil
440+ return b9ac_exon + b9ad_exon_sous_seuil + b9ad_exon_dessus_seuil + b9ba_exon_sous_seuil + b9ba_exon_dessus_seuil + b9bb
458441
459442 def formula (foyer_fiscal , period , parameters ):
460443 b1bc = foyer_fiscal ('b1bc' , period )
@@ -523,15 +506,10 @@ def formula_2018_01_01(foyer_fiscal, period, parameters):
523506 # TODO: Gérer les trois option meubles meublants
524507 isf_ifi_imm_bati = foyer_fiscal ('isf_ifi_imm_bati' , period )
525508 isf_ifi_imm_non_bati = foyer_fiscal ('isf_ifi_imm_non_bati' , period )
526- isf_droits_sociaux = foyer_fiscal ('isf_droits_sociaux' , period )
527- b1cg = foyer_fiscal ('b1cg' , period )
528- b2gh = foyer_fiscal ('b2gh' , period )
529- forfait_mobilier = parameters (period ).taxation_capital .impot_fortune_immobiliere_ifi_partir_2018 .forfait_mobilier
509+ b9gf = foyer_fiscal ('b9gf' , period )
510+ b9gh = foyer_fiscal ('b9gh' , period )
530511
531- total = isf_ifi_imm_bati + isf_ifi_imm_non_bati + isf_droits_sociaux
532- forf_mob = (b1cg != 0 ) * b1cg + (b1cg == 0 ) * total * forfait_mobilier .majoration_forfaitaire
533- actif_brut = total + forf_mob
534- return actif_brut - b2gh
512+ return max_ (isf_ifi_imm_bati + isf_ifi_imm_non_bati - b9gf - b9gh , 0 )
535513
536514 def formula_1989_01_01 (foyer_fiscal , period , parameters ):
537515 # TODO: Gérer les trois option meubles meublants
@@ -624,7 +602,7 @@ class isf_inv_pme(Variable):
624602 entity = FoyerFiscal
625603 label = 'isf_inv_pme'
626604 definition_period = YEAR
627- end = '2018 -12-31'
605+ end = '2017 -12-31'
628606
629607 def formula_2008 (foyer_fiscal , period , parameters ):
630608 '''
@@ -652,32 +630,6 @@ def formula_2008(foyer_fiscal, period, parameters):
652630
653631 return where (montant_reduc < plaf , montant_reduc , plaf )
654632
655- def formula_2018 (foyer_fiscal , period , parameters ):
656- '''
657- Réductions pour investissements dans les PME
658- à partir de 2018!
659- '''
660- b2mt = foyer_fiscal ('b2mt' , period )
661- b2ne = foyer_fiscal ('b2ne' , period )
662- b2mv = foyer_fiscal ('b2mv' , period )
663- b2nf = foyer_fiscal ('b2nf' , period )
664- b2mx = foyer_fiscal ('b2mx' , period )
665- b2na = foyer_fiscal ('b2na' , period )
666- reduc_impot = parameters (period ).taxation_capital .impot_fortune_immobiliere_ifi_partir_2018 .reduc_impot
667- taux_dons = reduc_impot .reduction_dons_certains_organismes_interet_general .taux
668- taux_invest_direct = reduc_impot .reduction_investissements_capital_pme .taux_investissement_direct
669- taux_fip_fci = reduc_impot .reduction_investissements_dans_fcpi_ou_fip_dans_pme .taux_investissement
670-
671- inv_dir_soc = b2mt * taux_dons + b2ne * taux_invest_direct
672- holdings = b2mv * taux_dons + b2nf * taux_invest_direct
673- fip = b2mx * taux_fip_fci
674- fcpi = b2na * taux_fip_fci
675-
676- montant_reduc = holdings + fip + fcpi + inv_dir_soc
677- plaf = parameters (period ).taxation_capital .impot_fortune_immobiliere_ifi_partir_2018 .reduc_impot .plafond_somme_trois_reductions_pme_fcip_fip_pme_dons
678-
679- return where (montant_reduc < plaf , montant_reduc , plaf )
680-
681633
682634class isf_org_int_gen (Variable ):
683635 value_type = float
@@ -693,9 +645,10 @@ def formula_2008(foyer_fiscal, period, parameters):
693645 return where (montant < P .limite_reduction , montant , P .limite_reduction )
694646
695647 def formula_2018 (foyer_fiscal , period , parameters ):
696- b2nc = foyer_fiscal ('b2nc' , period )
648+ b9nc = foyer_fiscal ('b9nc' , period )
649+ b9ng = foyer_fiscal ('b9ng' , period )
697650 P = parameters (period ).taxation_capital .impot_fortune_immobiliere_ifi_partir_2018 .reduc_impot .reduction_dons_certains_organismes_interet_general
698- montant = b2nc * P .taux
651+ montant = ( b9nc + b9ng ) * P .taux
699652
700653 return where (montant < P .limite_reduction , montant , P .limite_reduction )
701654
@@ -731,21 +684,9 @@ def formula_2009(foyer_fiscal, period, parameters):
731684
732685 def formula_2018 (foyer_fiscal , period , parameters ):
733686 isf_ifi_avant_reduction = foyer_fiscal ('isf_ifi_avant_reduction' , period )
734- isf_inv_pme = foyer_fiscal ('isf_inv_pme' , period )
735687 isf_org_int_gen = foyer_fiscal ('isf_org_int_gen' , period )
736- isf_reduc_pac = foyer_fiscal ('isf_reduc_pac' , period )
737- borne_max = parameters (period ).taxation_capital .impot_fortune_immobiliere_ifi_partir_2018 .reduc_impot .plafond_somme_trois_reductions_pme_fcip_fip_pme_dons
738688
739- return max_ (0 , isf_ifi_avant_reduction - min_ (isf_inv_pme + isf_org_int_gen , borne_max ) - isf_reduc_pac )
740-
741- def formula_2019 (foyer_fiscal , period , parameters ):
742- # Les réductions pour investissements dans les PME (FIP et FCPI) ne sont plus éligibles
743- isf_ifi_avant_reduction = foyer_fiscal ('isf_ifi_avant_reduction' , period )
744- isf_org_int_gen = foyer_fiscal ('isf_org_int_gen' , period )
745- isf_reduc_pac = foyer_fiscal ('isf_reduc_pac' , period )
746- borne_max = parameters (period ).taxation_capital .impot_fortune_immobiliere_ifi_partir_2018 .reduc_impot .plafond_somme_trois_reductions_pme_fcip_fip_pme_dons
747-
748- return max_ (0 , isf_ifi_avant_reduction - min_ (isf_org_int_gen , borne_max ) - isf_reduc_pac )
689+ return max_ (0 , isf_ifi_avant_reduction - isf_org_int_gen )
749690
750691
751692# # calcul du plafonnement ##
@@ -922,6 +863,11 @@ class isf_ifi(Variable):
922863 reference = 'https://www.legifrance.gouv.fr/codes/id/LEGISCTA000036385039/'
923864 definition_period = YEAR
924865
866+ def formula_2018_01_01 (foyer_fiscal , period ):
867+ b9rs = foyer_fiscal ('b9rs' , period )
868+ isf_ifi_apres_plaf = foyer_fiscal ('isf_ifi_apres_plaf' , period )
869+ return min_ (- (isf_ifi_apres_plaf - b9rs ), 0 )
870+
925871 def formula (foyer_fiscal , period ):
926872 b4rs = foyer_fiscal ('b4rs' , period )
927873 isf_ifi_apres_plaf = foyer_fiscal ('isf_ifi_apres_plaf' , period )
0 commit comments