Commit 576ce32d authored by Equipe IR-CALCUL DGFiP's avatar Equipe IR-CALCUL DGFiP
Browse files

Initial commit

parent cdd1b0e7
This diff is collapsed.
This diff is collapsed.
#*************************************************************************************************************************
#
#Copyright or or Copr.[DGFIP][2016]
#
#Ce logiciel a t initialement dvelopp par la Direction Gnrale des
#Finances Publiques pour permettre le calcul de l'impt sur le revenu 2016
#au titre des revenus perus en 2015. La prsente version a permis la
#gnration du moteur de calcul des chanes de taxation des rles d'impt
#sur le revenu de ce millsime.
#
#Ce logiciel est rgi par la licence CeCILL 2.1 soumise au droit franais
#et respectant les principes de diffusion des logiciels libres. Vous pouvez
#utiliser, modifier et/ou redistribuer ce programme sous les conditions de
#la licence CeCILL 2.1 telle que diffuse par le CEA, le CNRS et l'INRIA sur
#le site "http://www.cecill.info".
#
#Le fait que vous puissiez accder cet en-tte signifie que vous avez pris
#connaissance de la licence CeCILL 2.1 et que vous en avez accept les termes.
#
#**************************************************************************************************************************
#
# CHAPITRE 2. CALCUL DU NET A PAYER
#
#
#
regle 201000:
application : batch , iliad ;
NAPINI = ( IRN + PIR - IRANT )* (1 - INDTXMIN) *(1 - INDTXMOY)
+ min(0, IRN + PIR - IRANT) * (INDTXMIN + INDTXMOY)
+ max(0, IRN + PIR - IRANT) *
(INDTXMIN*positif((IAVIMBIS-NAPCRPAVIM)-SEUIL_61 )
+ INDTXMOY* positif((IAVIMO-NAPCRPAVIM)-SEUIL_61))
+ RASAR * V_CNR;
RC1INI = positif( NAPINI + 1 - SEUIL_12 ) ;
regle 201010:
application : batch , iliad ;
NAPTOT = IRCUM + TAXACUM + PCAPCUM + TAXLOYCUM + HAUTREVCUM - RECUMIR ;
regle 201020:
application : iliad , batch ;
NAPTOTA = V_IRPSANT - V_ANTRE ;
NAPTOTAIR = V_TOTIRANT - V_ANTREIR ;
TOTCRA = V_ANTCR ;
TOTIRPSANT = V_IRPSANT - V_NONMERANT + V_NONRESTANT - V_ANTRE ;
regle 201030:
application : iliad ;
OCEDIMP = IRNIN ;
regle 201040:
application : batch , iliad ;
IRNIN = (IRN - IRANT) * positif(IRN - IRANT) ;
regle isf 201050:
application : batch , iliad ;
ISF4BASE = ISF4BIS * positif_ou_nul(ISF4BIS - SEUIL_12) ;
ISFIN = ISF4BASE ;
regle 201060:
application : batch , iliad ;
IRNIN_INR = max(0,min( 0, IAN + AVFISCOPTER - IRE ) + max( 0, IAN + AVFISCOPTER - IRE ) * positif( IAMD1 + 1 + V_ANTREIR - SEUIL_61) - IRANT - IR9YI)
* positif(min( 0, IAN + AVFISCOPTER - IRE ) + max( 0, IAN + AVFISCOPTER - IRE ) * positif( IAMD1 + 1 + V_ANTREIR - SEUIL_61) - IRANT);
CSBASE_INR = max(0,CSG - CSGIM - CS9YP);
RDBASE_INR = max(0,RDSN - CRDSIM - RD9YP);
PSBASE_INR = max(0,PRS - PRSPROV - PS9YP);
CVNBASE_INR = max(0,CVNN - COD8YT - CVN9YP);
CDISBASE_INR = max(0,CDIS - CDISPROV - CDIS9YP);
GLOBASE_INR = max(0,CGLOA - COD8YL - GLO9YP);
RSE1BASE_INR = max(0,RSE1N - CSPROVYD - RSE19YP);
RSE2BASE_INR = max(0, max(0, RSE8TV - CIRSE8TV - CSPROVYF) + max(0, RSE8SA -CIRSE8SA - CSPROVYN) - RSE29YP);
RSE3BASE_INR = max(0,RSE3N - CSPROVYG - RSE39YP);
RSE4BASE_INR = max(0, RSE4N - CSPROVYH - CSPROVYP - RSE49YP);
RSE5BASE_INR = max(0,RSE5N - CSPROVYE - RSE59YP);
RSE6BASE_INR = max(0,RSE6N - RSE69YP);
TAXABASE_INR = arr(max(TAXASSUR - TAXA9YI + min(0,min( 0, IAN + AVFISCOPTER - IRE ) + max( 0, IAN + AVFISCOPTER - IRE ) * positif( IAMD1 + 1 + V_ANTREIR - SEUIL_61)
- IRANT),0)) * positif(IAMD1 + 1 + V_ANTREIR - SEUIL_61);
PCAPBASE_INR = arr(max(IPCAPTAXT - CAP9YI + min(0,min( 0, IAN + AVFISCOPTER - IRE ) + max( 0, IAN + AVFISCOPTER - IRE ) * positif( IAMD1 + 1 + V_ANTREIR - SEUIL_61)
- IRANT + TAXASSUR),0)) * positif(IAMD1 + 1 + V_ANTREIR - SEUIL_61);
LOYBASE_INR = arr(max(TAXLOY - LOY9YI + min(0,min( 0, IAN + AVFISCOPTER - IRE ) + max( 0, IAN + AVFISCOPTER - IRE ) * positif( IAMD1 + 1 + V_ANTREIR - SEUIL_61)
- IRANT + TAXASSUR+IPCAPTAXT),0)) * positif(IAMD1 + 1 + V_ANTREIR - SEUIL_61);
CHRBASE_INR = arr(max(IHAUTREVT - CHR9YI + min(0,min( 0, IAN + AVFISCOPTER - IRE ) + max( 0, IAN + AVFISCOPTER - IRE ) * positif( IAMD1 + 1 + V_ANTREIR - SEUIL_61)
- IRANT + TAXASSUR+IPCAPTAXT+TAXLOY),0)) * positif(IAMD1 + 1 + V_ANTREIR - SEUIL_61);
CSBASE = CSG - CSGIM ;
RDBASE = RDSN - CRDSIM ;
PSBASE = PRS - PRSPROV ;
CVNBASE = CVNN - COD8YT ;
CDISBASE = CDIS - CDISPROV ;
GLOBASE = CGLOA - COD8YL ;
RSE1BASE = RSE1N - CSPROVYD;
RSE2BASE = max(0, RSE8TV - CIRSE8TV - CSPROVYF)
+ max(0, RSE8SA - CIRSE8SA - CSPROVYN) ;
RSE3BASE = RSE3N - CSPROVYG;
RSE4BASE = max(0, RSE4N - CSPROVYH - CSPROVYP) ;
RSE5BASE = RSE5N - CSPROVYE ;
RSE6BASE = RSE6N ;
TAXABASE = arr(max(TAXASSUR + min(0,IRN - IRANT),0)) * positif(IAMD1 + 1 - SEUIL_61);
PCAPBASE = arr(max(IPCAPTAXT + min(0,IRN - IRANT + TAXASSUR),0)) * positif(IAMD1 + 1 - SEUIL_61);
LOYBASE = arr(max(TAXLOY + min(0,IRN - IRANT + TAXASSUR+IPCAPTAXT),0)) * positif(IAMD1 + 1 - SEUIL_61);
CHRBASE = arr(max(IHAUTREVT + min(0,IRN - IRANT + TAXASSUR+IPCAPTAXT+TAXLOY),0)) * positif(IAMD1 + 1 - SEUIL_61);
IRBASE_I = (IRN -IRANT)*positif(IRN+1-SEUIL_12);
IRBASE_N = (IRN - IRANT)*(1 - positif (IRN-IRANT + TAXABASE_IRECT+CAPBASE_IRECT+HRBASE_IRECT))
+ (IAN - min( IAN , IRE )) * positif (IRN-IRANT + TAXABASE_IRECT+CAPBASE_IRECT+HRBASE_IRECT);
TAXABASE_I = TAXASSUR * positif(IAMD1 + 1 - SEUIL_61);
TAXABASE_N = arr(max(TAXASSUR + min(0,IRN - IRANT),0)) * positif(IAMD1 + 1 - SEUIL_61);
CAPBASE_I = IPCAPTAXT * positif(IAMD1 + 1 - SEUIL_61);
CAPBASE_N = arr(max(IPCAPTAXT + min(0,IRN - IRANT + TAXASSUR),0)) * positif(IAMD1 + 1 - SEUIL_61);
LOYBASE_I = TAXLOY * positif(IAMD1 + 1 - SEUIL_61);
LOYBASE_N = arr(max(TAXLOY + min(0,IRN - IRANT + TAXASSUR+IPCAPTAXT),0)) * positif(IAMD1 + 1 - SEUIL_61);
HRBASE_I = IHAUTREVT * positif(IAMD1 + 1 - SEUIL_61);
HRBASE_N = arr(max(IHAUTREVT + min(0,IRN - IRANT + TAXASSUR+IPCAPTAXT+TAXLOY),0)) * positif(IAMD1 + 1 - SEUIL_61);
IRNN = IRNIN ;
regle 201070:
application : iliad ;
PIR = (
INCIR_NET
+ NMAJ1 + NMAJ3 + NMAJ4
+ arr((BTOINR) * TXINT / 100)* (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT)))
;
PPRS = (
INCPS_NET
+ NMAJP1 + NMAJP4
+ arr(max(0,PRS-PRSPROV-PS9YP) * TXINT / 100)* (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT))) * positif_ou_nul(CSTOTSSPENA - SEUIL_61);
PCSG = (
INCCS_NET
+ NMAJC1 + NMAJC4
+ arr(max(0,CSG-CSGIM-CS9YP) * TXINT / 100) * (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT))) * positif_ou_nul(CSTOTSSPENA - SEUIL_61);
PRDS = (
INCRD_NET
+ NMAJR1 + NMAJR4
+ arr(max(0,RDSN-CRDSIM-RD9YP) * TXINT / 100) * (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT))) * positif_ou_nul(CSTOTSSPENA - SEUIL_61);
PCVN = (
INCCVN_NET
+ NMAJCVN1 + NMAJCVN4
+ arr(max(0,CVNN - COD8YT-CVN9YP) * TXINT / 100) * (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT))) * positif_ou_nul(CSTOTSSPENA - SEUIL_61);
PTAXA = (
INCTAXA_NET
+ NMAJTAXA1 + NMAJTAXA3 + NMAJTAXA4
+ arr(max(0,TAXASSUR- min(TAXASSUR+0,max(0,INE-IRB+AVFISCOPTER))+min(0,IRN - IRANT)-TAXA9YI) * TXINT / 100)* (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT))) ;
PPCAP = (
INCPCAP_NET
+ NMAJPCAP1 + NMAJPCAP3 + NMAJPCAP4
+ arr(max(0,IPCAPTAXT- min(IPCAPTAXT+0,max(0,INE-IRB+AVFISCOPTER-TAXASSUR))+min(0,IRN - IRANT+TAXASSUR)-CAP9YI) * TXINT / 100)* (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT))) ;
PTAXLOY = (
INCLOY_NET
+ NMAJLOY1 + NMAJLOY3 + NMAJLOY4
+ arr(max(0,LOYELEV- min(LOYELEV+0,max(0,INE-IRB+AVFISCOPTER-TAXASSUR-IPCAPTAXT))+min(0,IRN - IRANT+TAXASSUR+IPCAPTAXT)-LOY9YI) * TXINT / 100)* (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT))) ;
PHAUTREV = (
INCCHR_NET
+ NMAJCHR1 + NMAJCHR3 + NMAJCHR4
+ arr(max(0,IHAUTREVT+min(0,IRN - IRANT+TAXASSUR+IPCAPTAXT+LOYELEV)-CHR9YI) * TXINT / 100)* (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT))) ;
PGLOA = (
INCGLOA_NET
+ NMAJGLO1 + NMAJGLO4
+ arr((max(0,CGLOA - COD8YL-GLO9YP)* TXINT / 100) * (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT)))) * positif_ou_nul(CSTOTSSPENA - SEUIL_61);
PRSE1 = (
INCRSE1_NET
+ NMAJRSE11 + NMAJRSE14
+ arr(max(0,RSE1 -CIRSE1 -CSPROVYD-RSE19YP)* TXINT / 100) * (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT))) * positif_ou_nul(CSTOTSSPENA - SEUIL_61);
PRSE2 = (
INCRSE2_NET
+ NMAJRSE21 + NMAJRSE24
+ arr(max(0,(max(0,RSE8TV -CIRSE8TV -CSPROVYF)+ max(0, RSE8SA -CIRSE8SA - CSPROVYN)-RSE29YP)) * TXINT / 100
) * (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT))
) * positif_ou_nul(CSTOTSSPENA - SEUIL_61);
PRSE3 = (
INCRSE3_NET
+ NMAJRSE31 + NMAJRSE34
+ arr(max(0,RSE3 -CIRSE3 -CSPROVYG-RSE39YP)* TXINT / 100) * (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT))) * positif_ou_nul(CSTOTSSPENA - SEUIL_61);
PRSE4 = (
INCRSE4_NET
+ NMAJRSE41 + NMAJRSE44
+ arr(max(0,RSE4 - CIRSE4 - CSPROVRSE4 - RSE49YP)* TXINT / 100) * (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT))
) * positif_ou_nul(CSTOTSSPENA - SEUIL_61);
PRSE5 = (
INCRSE5_NET
+ NMAJRSE51 + NMAJRSE54
+ arr(max(0,RSE5 -CIRSE5 -CSPROVYE-RSE59YP)* TXINT / 100) * (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT))) * positif_ou_nul(CSTOTSSPENA - SEUIL_61);
PRSE6 = (
INCRSE6_NET
+ NMAJRSE61 + NMAJRSE64
+ arr(max(0,RSE6 -CIRSE6 -RSE69YP)* TXINT / 100) * (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT))) * positif_ou_nul(CSTOTSSPENA - SEUIL_61);
PCDIS = (
INCCDIS_NET
+ NMAJCDIS1 + NMAJCDIS4
+ arr(max(0,CDIS-CDISPROV-CDIS9YP) * TXINT / 100) * (1-positif(FLAG_PRIM+FLAG_RETARD+FLAG_DEFAUT))) * positif_ou_nul(CSTOTSSPENA - SEUIL_61);
PDEG = max(0,PIR_A + PTAXA_A + PPCAP_A - PTAXLOY_A - PCHR_A - PIR - PTAXA - PPCAP - PTAXLOY - PHAUTREV);
regle 201080:
application : batch , iliad ;
PTOTIRCS = PIR + PTAXA + PTAXLOY + PHAUTREV + PPCAP +
PPRS + PCSG + PRDS + PCDIS + PCVN +
PGLOA + PRSE1 + PRSE2 + PRSE3 + PRSE4 +
PRSE5 + PRSE6 ;
TOTPENIR = (PIR + PTAXA + PTAXLOY + PHAUTREV + PPCAP)
* positif ( positif_ou_nul(VARIR61-SEUIL_61)
+ positif_ou_nul(VARIRDROIT-SEUIL_61)
) ;
TOTPENCS = (PPRS+ PCSG + PRDS + PCVN + PCDIS + PGLOA + PRSE1 + PRSE2 + PRSE3 + PRSE4 + PRSE5 + PRSE6) * positif_ou_nul(VARPS61-SEUIL_61);
INCTOTIR = RETIR + RETTAXA + RETPCAP + RETLOY + RETHAUTREV ;
INCTOTCS = RETCS+RETRD+RETPS+RETCVN+RETCDIS+RETGLOA
+RETRSE1+RETRSE2+RETRSE3+RETRSE4
+RETRSE5+RETRSE6;
RETIRCSTOT = INCTOTIR + INCTOTCS ;
regle 201090:
application : batch ;
PIR = PTOIR * positif_ou_nul(IAMD1 - SEUIL_61) ;
PPRS = PTOPRS ;
PCSG = PTOCSG ;
PRSE1 = PTORSE1 ;
PRSE2 = PTORSE2 ;
PRSE3 = PTORSE3 ;
PRSE4 = PTORSE4 ;
PRSE5 = PTORSE5 ;
PRSE6 = PTORSE6 ;
PRDS = PTORDS ;
PTAXA = PTOTAXA ;
PPCAP = PTOTPCAP ;
PTAXLOY = PTOTLOY ;
PHAUTREV = PTOTCHR ;
PCVN = PTOCVN ;
PCDIS = PTOCDIS ;
PGLOA = PTOGLOA ;
regle 201100:
application : iliad , batch ;
PTOT = PIR ;
regle 201110:
application : iliad ;
ILI_SYNT_IR = positif(TOTIRCUM - NONMER - RECUMIR + NONREST - TOTPENIR) * max(0 , IRCUM - NONMER + NONREST - PIR)
+ (1 - positif(TOTIRCUM - NONMER - RECUMIR + NONREST - TOTPENIR)) * (TOTIRCUM - NONMER - RECUMIR + NONREST - TOTPENIR) ;
PIRNEG = abs(min(0 , IRCUM - NONMER + NONREST - PIR)) ;
ILI_SYNT_TAXA = positif(TOTIRCUM - NONMER - RECUMIR + NONREST - TOTPENIR) * max(0,TAXACUM - PTAXA - PIRNEG)
+ (1 - positif(TOTIRCUM - NONMER - RECUMIR + NONREST - TOTPENIR)) * 0 ;
PTAXANEG = abs(min(0 , TAXACUM - PTAXA - PIRNEG)) ;
ILI_SYNT_CAP = positif(TOTIRCUM - NONMER - RECUMIR + NONREST - TOTPENIR) * max(0 , PCAPCUM - PPCAP - PTAXANEG)
+ (1 - positif(TOTIRCUM - NONMER - RECUMIR + NONREST - TOTPENIR)) * 0 ;
PPCAPNEG = abs(min(0 , PCAPCUM - PPCAP - PTAXANEG)) ;
ILI_SYNT_LOY = positif(TOTIRCUM - NONMER - RECUMIR + NONREST - TOTPENIR) * max(0 , TAXLOYCUM - PTAXLOY - PPCAPNEG)
+ (1 - positif(TOTIRCUM - NONMER - RECUMIR + NONREST - TOTPENIR)) * 0 ;
PTAXLOYNEG = abs(min(0 , TAXLOYCUM - PTAXLOY - PPCAPNEG)) ;
ILI_SYNT_CHR = positif(TOTIRCUM - NONMER - RECUMIR + NONREST - TOTPENIR) * max(0 , HAUTREVCUM - PHAUTREV - PTAXLOYNEG)
+ (1 - positif(TOTIRCUM - NONMER - RECUMIR + NONREST - TOTPENIR)) * 0 ;
ILI_SYNT_TOTIR = ILI_SYNT_IR + ILI_SYNT_TAXA + ILI_SYNT_CAP + ILI_SYNT_LOY + ILI_SYNT_CHR ;
regle 201120:
application : iliad , batch ;
ILIIRNET = positif_ou_nul(TOTIRCUM - RECUMIR - TOTPENIR) * max(0,IRCUM-PIR)
+ (1 - positif_ou_nul(TOTIRCUM - RECUMIR - TOTPENIR)) * (TOTIRCUM - RECUMIR - TOTPENIR);
PIRNETNEG = max(0,PIR-IRCUM);
ILITAXANET = positif_ou_nul(TOTIRCUM - RECUMIR - TOTPENIR) * max(0,TAXACUM - PTAXA - PIRNETNEG)
+ (1 - positif_ou_nul(TOTIRCUM - RECUMIR - TOTPENIR)) * 0;
PTAXANETNEG = max(0,PIR+PTAXA-IRCUM-TAXACUM);
ILICAPNET = positif_ou_nul(TOTIRCUM - RECUMIR - TOTPENIR) * max(0,PCAPCUM -PPCAP-PTAXANETNEG)
+ (1 - positif_ou_nul(TOTIRCUM - RECUMIR - TOTPENIR)) * 0;
PPCAPNETNEG = max(0,PIR+PTAXA+PPCAP-IRCUM-TAXACUM-PCAPCUM);
ILILOYNET = positif_ou_nul(TOTIRCUM - RECUMIR - TOTPENIR) * max(0,TAXLOYCUM-PTAXLOY-PPCAPNETNEG)
+ (1 - positif_ou_nul(TOTIRCUM - RECUMIR - TOTPENIR)) * 0;
PTAXLOYNETNEG = max(0,PIR+PTAXA+PPCAP+PTAXLOY-IRCUM-TAXACUM-PCAPCUM-TAXLOYCUM);
ILICHRNET = positif_ou_nul(TOTIRCUM - RECUMIR - TOTPENIR) * max(0,HAUTREVCUM-PHAUTREV-PTAXLOYNETNEG)
+ (1 - positif_ou_nul(TOTIRCUM - RECUMIR - TOTPENIR)) * 0;
ILITOTIRNET = ILIIRNET + ILITAXANET + ILICAPNET + ILILOYNET + ILICHRNET;
ILITOTPSNET = max(0, NAPCR61 - TOTPENCS) ;
TOTIRE = IREP - ITRED - IRE - INE ;
TOTTP = TTPVQ + REVTP ;
regle 201130:
application : batch ;
MAJOTOT28IR = NMAJ1 +
NMAJTAXA1 +
NMAJPCAP1 +
NMAJLOY1 +
NMAJCHR1 ;
MAJOTOT28PS = NMAJC1 +
NMAJR1 +
NMAJP1 +
NMAJCVN1 +
NMAJCDIS1 +
NMAJGLO1 +
NMAJRSE11 +
NMAJRSE21 +
NMAJRSE31 +
NMAJRSE41 +
NMAJRSE51 +
NMAJRSE61 ;
MAJO1728TOT = MAJOTOT28IR + MAJOTOT28PS ;
regle 201140:
application : iliad ;
DEC_CGA_AGA = BAFV + BAFC + BAFP
+ BAHREV - BAHDEV
+ BAHREC - BAHDEC
+ BAHREP - BAHDEP
+ BIHNOV - BIHDNV
+ BIHNOC - BIHDNC
+ BIHNOP - BIHDNP
+ BICHREV - BICHDEV
+ BICHREC - BICHDEC
+ BICHREP - BICHDEP
+ BNHREV - BNHDEV
+ BNHREC - BNHDEC
+ BNHREP - BNHDEP
+ ANOCEP - DNOCEP
+ ANOVEP - DNOCEPC
+ ANOPEP - DNOCEPP
;
MAJ_CGA_AGA = arr(SUPREV * (BAFV + BAFC + BAFP))
+ arr(SUPREV * max(0,BAHREV - BAHDEV ))
+ arr(SUPREV * max(0,BAHREC - BAHDEC ))
+ arr(SUPREV * max(0,BAHREP - BAHDEP ))
+ arr(SUPREV * max(0,BIHNOV - BIHDNV ))
+ arr(SUPREV * max(0,BIHNOC - BIHDNC ))
+ arr(SUPREV * max(0,BIHNOP - BIHDNP ))
+ arr(SUPREV * max(0,BICHREV - BICHDEV ))
+ arr(SUPREV * max(0,BICHREC - BICHDEC ))
+ arr(SUPREV * max(0,BICHREP - BICHDEP ))
+ arr(SUPREV * max(0,BNHREV - BNHDEV ))
+ arr(SUPREV * max(0,BNHREC - BNHDEC ))
+ arr(SUPREV * max(0,BNHREP - BNHDEP ))
+ arr(SUPREV * max(0,ANOCEP - DNOCEP ))
+ arr(SUPREV * max(0,ANOVEP - DNOCEPC ))
+ arr(SUPREV * max(0,ANOPEP - DNOCEPP ))
;
TOT_CGA_AGA = DEC_CGA_AGA + MAJ_CGA_AGA ;
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#*************************************************************************************************************************
#
#Copyright or or Copr.[DGFIP][2016]
#
#Ce logiciel a t initialement dvelopp par la Direction Gnrale des
#Finances Publiques pour permettre le calcul de l'impt sur le revenu 2016
#au titre des revenus perus en 2015. La prsente version a permis la
#gnration du moteur de calcul des chanes de taxation des rles d'impt
#sur le revenu de ce millsime.
#
#Ce logiciel est rgi par la licence CeCILL 2.1 soumise au droit franais
#et respectant les principes de diffusion des logiciels libres. Vous pouvez
#utiliser, modifier et/ou redistribuer ce programme sous les conditions de
#la licence CeCILL 2.1 telle que diffuse par le CEA, le CNRS et l'INRIA sur
#le site "http://www.cecill.info".
#
#Le fait que vous puissiez accder cet en-tte signifie que vous avez pris
#connaissance de la licence CeCILL 2.1 et que vous en avez accept les termes.
#
#**************************************************************************************************************************
regle 521000:
application : bareme , iliad , batch ;
TAUX1 = (TX_BAR1 - TX_BAR0 ) ;
TAUX2 = (TX_BAR2 - TX_BAR1 ) ;
TAUX3 = (TX_BAR3 - TX_BAR2 ) ;
TAUX4 = (TX_BAR4 - TX_BAR3 ) ;
TAUX5 = (TX_BAR5 - TX_BAR4 ) ;
regle 521010:
application : bareme , iliad , batch ;
pour x=0,5;y=1,2;z=1,2:
DSxyz = max( QFxyz - LIM_BAR1 , 0 ) * (TAUX1 / 100)
+ max( QFxyz - LIM_BAR2 , 0 ) * (TAUX2 / 100)
+ max( QFxyz - LIM_BAR3 , 0 ) * (TAUX3 / 100)
+ max( QFxyz - LIM_BAR4 , 0 ) * (TAUX4 / 100)
+ max( QFxyz - LIM_BAR5 , 0 ) * (TAUX5 / 100);
regle 521020:
application : iliad , batch ;
WTXMARJ = (RB51) / ( NB1 * null(PLAFQF) + NB2 *null(1-PLAFQF)) ;
TXMARJ = max ( positif (WTXMARJ - LIM_BAR1) * TX_BAR1 ,
max ( positif (WTXMARJ - LIM_BAR2) * TX_BAR2 ,
max ( positif (WTXMARJ - LIM_BAR3) * TX_BAR3 ,
max ( positif (WTXMARJ - LIM_BAR4) * TX_BAR4 ,
max ( positif (WTXMARJ - LIM_BAR5) * TX_BAR5 , 0
)
)
)
)
)
* ( 1 - positif (
present ( NRBASE )
+ present ( NRINET )
+ present ( IPTEFP )
+ present ( IPTEFN )
+ present ( PRODOM )
+ present ( PROGUY )
)
)
* (1- V_CNR)
* positif(IN01+IPQ1001);
TXMARJBA = max ( positif (WTXMARJ - LIM_BAR1) * TX_BAR1 ,
max ( positif (WTXMARJ - LIM_BAR2) * TX_BAR2 ,
max ( positif (WTXMARJ - LIM_BAR3) * TX_BAR3 ,
max ( positif (WTXMARJ - LIM_BAR4) * TX_BAR4 ,
max ( positif (WTXMARJ - LIM_BAR5) * TX_BAR5 , 0
)
)
)
)
)
* positif(IN01+IPQ1001);
regle 521030:
application : bareme , iliad , batch ;
pour y=1,2:
DS0y4 = max( QF0y4 - LIM_BAR1 , 0 ) * (TAUX1 /100)
+ max( QF0y4 - LIM_BAR2 , 0 ) * (TAUX2 /100)
+ max( QF0y4 - LIM_BAR3 , 0 ) * (TAUX3 /100)
+ max( QF0y4 - LIM_BAR4 , 0 ) * (TAUX4 /100)
+ max( QF0y4 - LIM_BAR5 , 0 ) * (TAUX5 /100);
pour x=0,5;y=1,2:
DSxy5 = max( QFxy5 - LIM_BAR1 , 0 ) * (TAUX1 /100)
+ max( QFxy5 - LIM_BAR2 , 0 ) * (TAUX2 /100)
+ max( QFxy5 - LIM_BAR3 , 0 ) * (TAUX3 /100)
+ max( QFxy5 - LIM_BAR4 , 0 ) * (TAUX4 /100)
+ max( QFxy5 - LIM_BAR5 , 0 ) * (TAUX5 /100);
pour y=1,2:
DS0y6 = max( QF0y6 - LIM_BAR1 , 0 ) * (TAUX1 /100)
+ max( QF0y6 - LIM_BAR2 , 0 ) * (TAUX2 /100)
+ max( QF0y6 - LIM_BAR3 , 0 ) * (TAUX3 /100)
+ max( QF0y6 - LIM_BAR4 , 0 ) * (TAUX4 /100)
+ max( QF0y6 - LIM_BAR5 , 0 ) * (TAUX5 /100);
regle 521040:
application : bareme , iliad , batch ;
NB1 = NBPT ;
NB2 = 1 + BOOL_0AM + BOOL_0AZ * V_0AV ;
regle 521050:
application : bareme , iliad , batch ;
pour y=1,2;z=1,2:
QF0yz = arr(RB0z) / NBy;
pour y=1,2;z=1,2:
QF5yz = arr(RB5z) / NBy;
pour y=1,2:
QF0y4 = arr(RB04) / NBy;
pour x=0,5;y=1,2:
QFxy5 = arr(RBx5) / NBy;
pour y=1,2:
QF0y6 = arr(RB06) / NBy;
regle corrective 521070:
application : iliad , batch ;
CFRIAHP = ARESTIMO + ALOGDOM + ADUFREPFI + ADUFREPFK + ADUFLOEKL + ADUFLOGIH + APIREPAI
+ APIREPBI + APIREPCI + APIREPDI + APIQGH + APIQEF + APIQCD + APIQAB + ATOURREP
+ ATOUHOTR + ATOUREPA + ACELRREDLA + ACELRREDLB + ACELRREDLE + ACELRREDLM + ACELRREDLN
+ ACELRREDLG + ACELRREDLC + ACELRREDLD + ACELRREDLS + ACELRREDLT + ACELRREDLH + ACELRREDLF
+ ACELRREDLZ + ACELRREDLX + ACELRREDLI + ACELRREDMG + ACELRREDMH + ACELRREDLJ + ACELREPHS
+ ACELREPHR + ACELREPHU + ACELREPHT + ACELREPHZ + ACELREPHX + ACELREPHW + ACELREPHV + ACELREPHF
+ ACELREPHD + ACELREPHH + ACELREPHG + ACELREPHA + ACELREPGU + ACELREPGX + ACELREPGS + ACELREPGW
+ ACELREPGL + ACELREPGV + ACELREPGJ + ACELREPYH + ACELREPYL + ACELREPYF + ACELREPYK + ACELREPYD
+ ACELREPYJ + ACELREPYB + ACELREPYP + ACELREPYS + ACELREPYO + ACELREPYR + ACELREPYN + ACELREPYQ
+ ACELREPYM + ACELHM + ACELHL + ACELHNO + ACELHJK + ACELNQ + ACELNBGL + ACELCOM + ACEL + ACELJP
+ ACELJBGL + ACELJOQR + ACEL2012 + ACELFD + ACELFABC + AREDMEUB + AREDREP + AILMIX + AILMIY + AILMPA
+ AILMPF + AINVRED + AILMIH + AILMJC + AILMPB + AILMPG + AILMIZ + AILMJI + AILMPC + AILMPH + AILMJS
+ AILMPD + AILMPI + AILMPE + AILMPJ + AMEUBLE + APROREP + AREPNPRO + AREPMEU + AILMIC + AILMIB + AILMIA
+ AILMJY + AILMJX + AILMJW + AILMJV + AILMOE + AILMOD + AILMOC + AILMOB + AILMOA + AILMOJ + AILMOI + AILMOH
+ AILMOG + AILMOF + ARESIMEUB + ARESIVIEU + ARESINEUV + ALOCIDEFG + ACODJTJU + ACODOU + ACODOV;
CFRIRHP = RRESTIMO + RLOGDOM + RDUFREPFI + RDUFREPFK + RDUFLOEKL + RDUFLOGIH + RPIREPAI + RPIREPBI
+ RPIREPCI + RPIREPDI + RPIQGH + RPIQEF + RPIQCD + RPIQAB + RTOURREP + RTOUHOTR + RTOUREPA
+ RCELRREDLA + RCELRREDLB + RCELRREDLE + RCELRREDLM + RCELRREDLN + RCELRREDLG + RCELRREDLC
+ RCELRREDLD + RCELRREDLS + RCELRREDLT + RCELRREDLH + RCELRREDLF + RCELRREDLZ + RCELRREDLX
+ RCELRREDLI + RCELRREDMG + RCELRREDMH + RCELRREDLJ + RCELREPHS + RCELREPHR + RCELREPHU + RCELREPHT
+ RCELREPHZ + RCELREPHX + RCELREPHW + RCELREPHV + RCELREPHF + RCELREPHD + RCELREPHH + RCELREPHG
+ RCELREPHA + RCELREPGU + RCELREPGX + RCELREPGS + RCELREPGW + RCELREPGL + RCELREPGV + RCELREPGJ
+ RCELREPYH + RCELREPYL + RCELREPYF + RCELREPYK + RCELREPYD + RCELREPYJ + RCELREPYB + RCELREPYP
+ RCELREPYS + RCELREPYO + RCELREPYR + RCELREPYN + RCELREPYQ + RCELREPYM + RCELHM + RCELHL + RCELHNO
+ RCELHJK + RCELNQ + RCELNBGL + RCELCOM + RCEL + RCELJP + RCELJBGL + RCELJOQR + RCEL2012 + RCELFD
+ RCELFABC + RREDMEUB + RREDREP + RILMIX + RILMIY + RILMPA + RILMPF + RINVRED + RILMIH + RILMJC
+ RILMPB + RILMPG + RILMIZ + RILMJI + RILMPC + RILMPH + RILMJS + RILMPD + RILMPI + RILMPE
+ RILMPJ + RMEUBLE + RPROREP + RREPNPRO + RREPMEU + RILMIC + RILMIB + RILMIA + RILMJY + RILMJX
+ RILMJW + RILMJV + RILMOE + RILMOD + RILMOC + RILMOB + RILMOA + RILMOJ + RILMOI + RILMOH + RILMOG
+ RILMOF + RRESIMEUB + RRESIVIEU + RRESINEUV + RLOCIDEFG + RCODJTJU + RCODOU + RCODOV ;
CFRIADON = AREPA + ADONS;
CFRIRDON = RREPA + RDONS;
CFRIAENF = APRESCOMP;
CFRIRENF = RPRESCOMP + RRETU;
CFRIADEP = AHEBE + AAIDE;
CFRIRDEP = RHEBE + RAIDE;
CFRIAFOR = BFCPI + ACOMP + AFOREST + AFORET + ANOUV + ALOCENT + ALOGSOC + ACOLENT + ACOTFOR + ADOMSOC1 + AFIPDOM;
CFRIRFOR = RINNO + RCOMP + RFOREST + RFORET + RNOUV + RLOCENT + RLOGSOC + RCOLENT + RCOTFOR + RDOMSOC1 + RFIPDOM;
CFRIAVIE = ASURV;
CFRIRVIE = RSURV;
CFRIAAUTRE = AFIPC + ADIFAGRI + ASOCREPR+ASOUFIP+ARIRENOV+APATNAT+APATNAT1+APATNAT2+APATNAT3;
CFRIRAUTRE = RFIPC + RDIFAGRI + RSOCREPR+RSOUFIP+RRIRENOV+RPATNAT+RPATNAT1+RPATNAT2+RPATNAT3;
CFCIDIV = CIGARD + CISYND + CIADCRE + CIFORET;
TOTDEFRCM = DFRCM1 + DFRCM2+DFRCM3 +DFRCM4 +DFRCM5 +DFRCMN;
TOTDEFLOC = DEFLOC1 + DEFLOC2 +DEFLOC3 +DEFLOC4 +DEFLOC5 +DEFLOC6 +DEFLOC7 +DEFLOC8 +DEFLOC9 +DEFLOC10;
TOTMIBV = MIBRNETV + MIBNPRNETV + MIBNPPVV + MIBPVV - BICPMVCTV - MIBNPDCT;
TOTMIBC = MIBRNETC + MIBNPRNETC + MIBNPPVC + MIBPVC - BICPMVCTC;
TOTMIBP = MIBRNETP + MIBNPRNETP + MIBNPPVP + MIBPVP - BICPMVCTP;
TOTBNCV = SPENETPV + SPENETNPV + BNCPROPVV - BNCPMVCTV + BNCNPPVV - BNCNPDCT;
TOTBNCC = SPENETPC + SPENETNPC + BNCPROPVC - BNCPMVCTC + BNCNPPVC;
TOTBNCP = SPENETPP + SPENETNPP + BNCPROPVP - BNCPMVCTP + BNCNPPVP;
TOTSPEREP = SPEDREPV + SPEDREPC +SPEDREPP;
TOTSPEREPNP = SPEDREPNPV + SPEDREPNPC +SPEDREPNPP;
IRNINCFIR = IAN+AVFISCOPTER-IRE;
regle 522000:
application : iliad , batch ;
CODMESGOUV = positif(NBPT - 10) + positif(LIGTTPVQ + LIG74 + LIGHAUTNET) + null(2 - V_REGCO) + positif(CESSASSV + CESSASSC + PCAPTAXV + PCAPTAXC + LOYELEV + 0)
+ positif(IPROP + AVFISCOPTER + IPREP + IPPRICORSE) + (null(V_ZDC - 1) * positif(V_0AC + V_0AD + V_0AV + V_0AM + V_0AO + 0)) ;
MESGOUV2 = 1 * positif((IDRS3 - IDECA) * positif(IDECA + 0) + (IDRS3 - IDEC) * positif(IDEC + 0)) * (1 - positif(CODMESGOUV)) * (1 - positif(V_BTPPE + 0))
+ 2 * positif((IDRS3 - IDECA) * positif(IDECA + 0) + (IDRS3 - IDEC) * positif(IDEC + 0)) * (1 - positif(CODMESGOUV)) * positif(V_BTPPE + 0)
+ 3 * positif((null(IDRS3 - IDECA) * positif(IDECA + 0)) + null(IDEC) + CODMESGOUV) ;
sortie(V_CALCUL_MESGOUV) ;
regle 522010:
application : iliad , batch ;
V_ANC_NAP = V_ANC_NAPE * (1 - (2 * V_ANC_NEG)) ;
GAINDBLELIQ = max(0 , V_ANC_NAP - NAPT) * null(MESGOUV2 - 1) ;
VANCNAP = V_ANC_NAP ;
regle 522020:
application : iliad , batch ;
MESGOUV = MESGOUV2 ;
#*************************************************************************************************************************
#
#Copyright or or Copr.[DGFIP][2016]
#
#Ce logiciel a t initialement dvelopp par la Direction Gnrale des
#Finances Publiques pour permettre le calcul de l'impt sur le revenu 2016
#au titre des revenus perus en 2015. La prsente version a permis la
#gnration du moteur de calcul des chanes de taxation des rles d'impt
#sur le revenu de ce millsime.
#
#Ce logiciel est rgi par la licence CeCILL 2.1 soumise au droit franais
#et respectant les principes de diffusion des logiciels libres. Vous pouvez
#utiliser, modifier et/ou redistribuer ce programme sous les conditions de
#la licence CeCILL 2.1 telle que diffuse par le CEA, le CNRS et l'INRIA sur
#le site "http://www.cecill.info".
#
#Le fait que vous puissiez accder cet en-tte signifie que vous avez pris
#connaissance de la licence CeCILL 2.1 et que vous en avez accept les termes.
#
#**************************************************************************************************************************
#
#### # # ## ##### # ##### ##### ###### #####
# # # # # # # # # # # # # #
# ###### # # # # # # # # ##### # ####
# # # ###### ##### # # ##### # # #
# # # # # # # # # # # # # #
#### # # # # # # # # # ###### #### #####
#
#
#
#
#
#
#
#
# CALCUL DU NOMBRE DE PARTS
#
#