Example #1
0
 def formula(individu, period):
     salaire_imposable_personne_de_reference = menage.personne_de_reference(
         'salaire_imposable', period=period)
     salaire_imposable_conjoint = menage.conjoint('salaire_imposable',
                                                  period=period)
     return xor_(salaire_imposable_personne_de_reference > 0,
                 salaire_imposable_conjoint > 0)
Example #2
0
    def function(self, simulation, period):
        period = period.start.offset('first-of', 'month').period('year')
        salaire_imposable_holder = simulation.compute('salaire_imposable', period = period)
        _P = simulation.legislation_at(period.start)

        salaire_imposable = self.split_by_roles(salaire_imposable_holder, roles = [CHEF, PART])
        uniq = xor_(salaire_imposable[CHEF] > 0, salaire_imposable[PART] > 0)
        return period, uniq
Example #3
0
def _ppe_brute(ppe_elig, ppe_elig_i, ppe_rev, ppe_base, ppe_coef, ppe_coef_tp, nb_pac, marpac, celdiv, veuf, caseT, caseL, nbH, _P, _option = {'ppe_elig_i': ALL, 'ppe_base': ALL, 'ppe_rev': ALL, 'ppe_coef_tp': ALL}):
    '''
    Prime pour l'emploi (avant éventuel dispositif de cumul avec le RSA)
    'foy'
    Cf. http://travail-emploi.gouv.fr/informations-pratiques,89/fiches-pratiques,91/remuneration,113/la-prime-pour-l-emploi-ppe,1034.html
    '''
    P = _P.ir.credits_impot.ppe

    eliv, elic, eli1, eli2, eli3 = ppe_elig_i[VOUS], ppe_elig_i[CONJ], ppe_elig_i[PAC1], ppe_elig_i[PAC2], ppe_elig_i[PAC3],
    basevi, baseci = ppe_rev[VOUS], ppe_rev[CONJ]
    basev, basec, base1, base2, base3 = ppe_base[VOUS], ppe_base[CONJ], ppe_base[PAC1], ppe_base[PAC2], ppe_base[PAC1]
    coef_tpv, coef_tpc, coef_tp1, coef_tp2, coef_tp3 = ppe_coef_tp[VOUS], ppe_coef_tp[CONJ], ppe_coef_tp[PAC1], ppe_coef_tp[PAC2], ppe_coef_tp[PAC1]

    nb_pac_ppe = max_(0, nb_pac - eli1 - eli2 - eli3)

    ligne2 = marpac & xor_(basevi >= P.seuil1, baseci >= P.seuil1)
    ligne3 = (celdiv | veuf) & caseT & not_(veuf & caseT & caseL)
    ligne1 = not_(ligne2) & not_(ligne3)

    base_monact = ligne2 * (eliv * basev + elic * basec)
    base_monacti = ligne2 * (eliv * basevi + elic * baseci)

    def ppe_bar1(base):
#        cond1 = ligne1 | ligne3
#        cond2 = ligne2
#        return 1 / ppe_coef * ((cond1 & (base <= P.seuil2)) * (base) * P.taux1 +
#                           (cond1 & (base > P.seuil2) & (base <= P.seuil3)) * (P.seuil3 - base) * P.taux2 +
#                           (cond2 & (base <= P.seuil2)) * (base * P.taux1) +
#                           (cond2 & (base > P.seuil2) & (base <= P.seuil3)) * ((P.seuil3 - base) * P.taux2) +
#                           (cond2 & (base > P.seuil4) & (base <= P.seuil5)) * (P.seuil5 - base) * P.taux3)
        return (1 / ppe_coef) * (((base <= P.seuil2)) * (base) * P.taux1 +
                           ((base > P.seuil2) & (base <= P.seuil3)) * (P.seuil3 - base) * P.taux2 +
                           ligne2 * ((base > P.seuil4) & (base <= P.seuil5)) * (P.seuil5 - base) * P.taux3)


    def ppe_bar2(base):
        return (1 / ppe_coef) * ((base <= P.seuil2) * (base) * P.taux1 +
                           ((base > P.seuil2) & (base <= P.seuil3)) * (P.seuil3 - base1) * P.taux2)

    # calcul des primes individuelles.

    ppev = eliv * ppe_bar1(basev)
    ppec = elic * ppe_bar1(basec)
    ppe1 = eli1 * ppe_bar2(base1)
    ppe2 = eli2 * ppe_bar2(base2)
    ppe3 = eli3 * ppe_bar2(base3)

    # Primes de monoactivité
    ppe_monact_vous = (eliv & ligne2 & (basevi >= P.seuil1) & (basev <= P.seuil4)) * P.monact
    ppe_monact_conj = (elic & ligne2 & (baseci >= P.seuil1) & (basec <= P.seuil4)) * P.monact

    # Primes pour enfants à charge
    maj_pac = ppe_elig * (eliv | elic) * (
        (ligne1 & marpac & ((ppev + ppec) != 0) & (min_(basev, basec) <= P.seuil3)) * P.pac * (nb_pac_ppe + nbH * 0.5) +
        (ligne1 & (celdiv | veuf) & eliv & (basev <= P.seuil3)) * P.pac * (nb_pac_ppe + nbH * 0.5) +
        (ligne2 & (base_monacti >= P.seuil1) & (base_monact <= P.seuil3)) * P.pac * (nb_pac_ppe + nbH * 0.5) +
        (ligne2 & (base_monact > P.seuil3) & (base_monact <= P.seuil5)) * P.pac * ((nb_pac_ppe != 0) + 0.5 * ((nb_pac_ppe == 0) & (nbH != 0))) +
        (ligne3 & (basevi >= P.seuil1) & (basev <= P.seuil3)) * ((min_(nb_pac_ppe, 1) * 2 * P.pac + max_(nb_pac_ppe - 1, 0) * P.pac) + (nb_pac_ppe == 0) * (min_(nbH, 2) * P.pac + max_(nbH - 2, 0) * P.pac * 0.5)) +
        (ligne3 & (basev > P.seuil3) & (basev <= P.seuil5)) * P.pac * ((nb_pac_ppe != 0) * 2 + ((nb_pac_ppe == 0) & (nbH != 0))))

    def coef(coef_tp):
        return (coef_tp <= 0.5) * coef_tp * 1.45 + (coef_tp > 0.5) * (0.55 * coef_tp + 0.45)

    ppe_vous = ppe_elig * (ppev * coef(coef_tpv) + ppe_monact_vous)
    ppe_conj = ppe_elig * (ppec * coef(coef_tpc) + ppe_monact_conj)
    ppe_pac1 = ppe_elig * (ppe1 * coef(coef_tp1))
    ppe_pac2 = ppe_elig * (ppe2 * coef(coef_tp2))
    ppe_pac3 = ppe_elig * (ppe3 * coef(coef_tp3))

    ppe_tot = ppe_vous + ppe_conj + ppe_pac1 + ppe_pac2 + ppe_pac3 + maj_pac

    ppe_tot = (ppe_tot != 0) * max_(P.versmin, ppe_tot)
    # from pandas import DataFrame
    # decompo = {0: ppev, 1 :ppe_vous, 2: ppec,3: ppe_conj, 4: maj_pac, 5 : ppe_monact_vous, 6: ppe_monact_conj, 8: basev, 81 : basevi, 9: basec, 91 : baseci, 10:ppe_tot}
    # print DataFrame(decompo).to_string()

    return ppe_tot
Example #4
0
def _ppe_brute(ppe_elig, ppe_elig_i, ppe_rev, ppe_base, ppe_coef, ppe_coef_tp, nb_pac, marpac, celdiv, veuf, caseT, caseL, nbH, _P, _option = {'ppe_elig_i': ALL, 'ppe_base': ALL, 'ppe_rev': ALL, 'ppe_coef_tp': ALL}):
    '''
    Prime pour l'emploi (avant éventuel dispositif de cumul avec le RSA)
    'foy'
    '''
    P = _P.ir.credits_impot.ppe

    eliv, elic, eli1, eli2, eli3 = ppe_elig_i[VOUS], ppe_elig_i[CONJ], ppe_elig_i[PAC1], ppe_elig_i[PAC2], ppe_elig_i[PAC3],
    basevi, baseci = ppe_rev[VOUS], ppe_rev[CONJ]
    basev, basec, base1, base2, base3 = ppe_base[VOUS], ppe_base[CONJ], ppe_base[PAC1], ppe_base[PAC2], ppe_base[PAC1]
    coef_tpv, coef_tpc, coef_tp1, coef_tp2, coef_tp3 = ppe_coef_tp[VOUS], ppe_coef_tp[CONJ], ppe_coef_tp[PAC1], ppe_coef_tp[PAC2], ppe_coef_tp[PAC1]

    nb_pac_ppe = max_(0, nb_pac - eli1 - eli2 - eli3)

    ligne2 = marpac & xor_(basevi >= P.seuil1, baseci >= P.seuil1)
    ligne3 = (celdiv | veuf) & caseT & not_(veuf & caseT & caseL)
    ligne1 = not_(ligne2) & not_(ligne3)

    base_monact = ligne2 * (eliv * basev + elic * basec)
    base_monacti = ligne2 * (eliv * basevi + elic * baseci)

    def ppe_bar1(base):
        cond1 = ligne1 | ligne3
        cond2 = ligne2
        return 1 / ppe_coef * ((cond1 & (base <= P.seuil2)) * (base) * P.taux1 +
                           (cond1 & (base > P.seuil2) & (base <= P.seuil3)) * (P.seuil3 - base) * P.taux2 +
                           (cond2 & (base <= P.seuil2)) * (base * P.taux1) +
                           (cond2 & (base > P.seuil2) & (base <= P.seuil3)) * ((P.seuil3 - base) * P.taux2) +
                           (cond2 & (base > P.seuil4) & (base <= P.seuil5)) * (P.seuil5 - base) * P.taux3)

    def ppe_bar2(base):
        return 1 / ppe_coef * ((base <= P.seuil2) * (base) * P.taux1 +
                           ((base > P.seuil2) & (base <= P.seuil3)) * (P.seuil3 - base1) * P.taux2)

    # calcul des primes individuelles.
    ppev = eliv * ppe_bar1(basev)
    ppec = elic * ppe_bar1(basec)
    ppe1 = eli1 * ppe_bar2(base1)
    ppe2 = eli2 * ppe_bar2(base2)
    ppe3 = eli3 * ppe_bar2(base3)

    ppe_monact_vous = (eliv & ligne2 & (basevi >= P.seuil1) & (basev <= P.seuil4)) * P.monact
    ppe_monact_conj = (elic & ligne2 & (baseci >= P.seuil1) & (basec <= P.seuil4)) * P.monact

    maj_pac = ppe_elig * (eliv | elic) * (
        (ligne1 & marpac & ((ppev + ppec) != 0) & (min_(basev, basec) <= P.seuil3)) * P.pac * (nb_pac_ppe + nbH * 0.5) +
        (ligne1 & (celdiv | veuf) & eliv & (basev <= P.seuil3)) * P.pac * (nb_pac_ppe + nbH * 0.5) +
        (ligne2 & (base_monacti >= P.seuil1) & (base_monact <= P.seuil3)) * P.pac * (nb_pac_ppe + nbH * 0.5) +
        (ligne2 & (base_monact > P.seuil3) & (base_monact <= P.seuil5)) * P.pac * ((nb_pac_ppe != 0) + 0.5 * ((nb_pac_ppe == 0) & (nbH != 0))) +
        (ligne3 & (basevi >= P.seuil1) & (basev <= P.seuil3)) * ((min_(nb_pac_ppe, 1) * 2 * P.pac + max_(nb_pac_ppe - 1, 0) * P.pac) + (nb_pac_ppe == 0) * (min_(nbH, 2) * P.pac + max_(nbH - 2, 0) * P.pac * 0.5)) +
        (ligne3 & (basev > P.seuil3) & (basev <= P.seuil5)) * P.pac * ((nb_pac_ppe != 0) * 2 + ((nb_pac_ppe == 0) & (nbH != 0))))

    plaf_ppe = P.seuil3 * ((celdiv | veuf) & (nb_pac_ppe == 0) | marpac & (ppev > P.seuil1) & (ppec > P.seuil1)) + P.seuil4 * (marpac & ((ppev > P.seuil1) | (ppec > P.seuil1)) | ligne3)

    def coef(coef_tp):
        return (coef_tp <= 0.5) * coef_tp * 1.45 + (coef_tp > 0.5) * (0.55 * coef_tp + 0.45)

    ppe_vous = ppe_elig * (ppev * coef(coef_tpv) + ppe_monact_vous)
    ppe_conj = ppe_elig * (ppec * coef(coef_tpc) + ppe_monact_conj)
    ppe_pac1 = ppe_elig * (ppe1 * coef(coef_tp1))
    ppe_pac2 = ppe_elig * (ppe2 * coef(coef_tp2))
    ppe_pac3 = ppe_elig * (ppe3 * coef(coef_tp3))

    ppe_tot = ppe_vous + ppe_conj + ppe_pac1 + ppe_pac2 + ppe_pac3 + maj_pac
    ppe_tot = (ppe_tot != 0) * max_(P.versmin, ppe_tot)
    ppe_tot = ppe_tot * (ppe_tot <= plaf_ppe)

    return ppe_tot
 def formula(individu, period):
     salaire_imposable_personne_de_reference = menage.personne_de_reference('salaire_imposable', period = period)
     salaire_imposable_conjoint = menage.conjoint('salaire_imposable', period = period)
     return xor_(salaire_imposable_personne_de_reference > 0, salaire_imposable_conjoint > 0)
Example #6
0
def _ppe_brute(ppe_elig, ppe_elig_i, ppe_rev, ppe_base, ppe_coef, ppe_coef_tp, nb_pac, marpac, celdiv, veuf, caseT, caseL, nbH, _P, _option = {'ppe_elig_i': ALL, 'ppe_base': ALL, 'ppe_rev': ALL, 'ppe_coef_tp': ALL}):
    '''
    Prime pour l'emploi (avant éventuel dispositif de cumul avec le RSA)
    'foy'
    '''
    P = _P.ir.credits_impot.ppe

    eliv, elic, eli1, eli2, eli3 = ppe_elig_i[VOUS], ppe_elig_i[CONJ], ppe_elig_i[PAC1], ppe_elig_i[PAC2], ppe_elig_i[PAC3], 
    basevi, baseci = ppe_rev[VOUS], ppe_rev[CONJ]
    basev, basec, base1, base2, base3  = ppe_base[VOUS], ppe_base[CONJ], ppe_base[PAC1], ppe_base[PAC2], ppe_base[PAC1]
    coef_tpv, coef_tpc, coef_tp1, coef_tp2, coef_tp3  = ppe_coef_tp[VOUS], ppe_coef_tp[CONJ], ppe_coef_tp[PAC1], ppe_coef_tp[PAC2], ppe_coef_tp[PAC1]
    
    nb_pac_ppe = max_(0, nb_pac - eli1 - eli2 -eli3 )
        
    ligne2 = marpac & xor_(basevi >= P.seuil1, baseci >= P.seuil1)
    ligne3 = (celdiv | veuf) & caseT & not_(veuf & caseT & caseL)
    ligne1 = not_(ligne2) & not_(ligne3)
    
    base_monact = ligne2*(eliv*basev + elic*basec)
    base_monacti = ligne2*(eliv*basevi + elic*baseci)

    def ppe_bar1(base):
        cond1 = ligne1 | ligne3
        cond2 = ligne2
        return 1/ppe_coef*((cond1 & (base <= P.seuil2))*(base)*P.taux1 +
                           (cond1 & (base> P.seuil2) & (base <= P.seuil3))*(P.seuil3 - base)*P.taux2 +
                           (cond2 & (base <= P.seuil2))*(base*P.taux1 ) +
                           (cond2 & (base >  P.seuil2) & (base <= P.seuil3))*((P.seuil3 - base)*P.taux2) +
                           (cond2 & (base >  P.seuil4) & (base <= P.seuil5))*(P.seuil5 - base)*P.taux3)

    def ppe_bar2(base):
        return 1/ppe_coef*((base <= P.seuil2)*(base)*P.taux1 +
                           ((base> P.seuil2) & (base <= P.seuil3))*(P.seuil3 - base1)*P.taux2 )

    # calcul des primes individuelles.
    ppev = eliv*ppe_bar1(basev)
    ppec = elic*ppe_bar1(basec)
    ppe1 = eli1*ppe_bar2(base1)
    ppe2 = eli2*ppe_bar2(base2)
    ppe3 = eli3*ppe_bar2(base3)
    
    ppe_monact_vous = (eliv & ligne2 & (basevi>=P.seuil1) & (basev <= P.seuil4))*P.monact
    ppe_monact_conj = (elic & ligne2 & (baseci>=P.seuil1) & (basec <= P.seuil4))*P.monact
    
    maj_pac = ppe_elig*(eliv|elic)*(
        (ligne1 & marpac & ((ppev+ppec)!=0) & (min_(basev,basec)<= P.seuil3))*P.pac*(nb_pac_ppe + nbH*0.5) +
        (ligne1 & (celdiv | veuf) & eliv & (basev<=P.seuil3))*P.pac*(nb_pac_ppe + nbH*0.5) +
        (ligne2 & (base_monacti >= P.seuil1) & (base_monact <= P.seuil3))*P.pac*(nb_pac_ppe + nbH*0.5) +
        (ligne2 & (base_monact > P.seuil3) & (base_monact <= P.seuil5))*P.pac*((nb_pac_ppe!=0) + 0.5*((nb_pac_ppe==0) & (nbH!=0))) +
        (ligne3 & (basevi >=P.seuil1) & (basev <= P.seuil3))*((min_(nb_pac_ppe,1)*2*P.pac + max_(nb_pac_ppe-1,0)*P.pac) + (nb_pac_ppe==0)*(min_(nbH,2)*P.pac + max_(nbH-2,0)*P.pac*0.5)) +
        (ligne3 & (basev  > P.seuil3) & (basev <= P.seuil5))*P.pac*((nb_pac_ppe!=0)*2 +((nb_pac_ppe==0) & (nbH!=0))))

    def coef(coef_tp):
        return (coef_tp <=0.5)*coef_tp*1.45 + (coef_tp > 0.5)*(0.55*coef_tp + 0.45)
    
    ppe_vous = ppe_elig*(ppev*coef(coef_tpv) + ppe_monact_vous)
    ppe_conj = ppe_elig*(ppec*coef(coef_tpc) + ppe_monact_conj)
    ppe_pac1 = ppe_elig*(ppe1*coef(coef_tp1))
    ppe_pac2 = ppe_elig*(ppe2*coef(coef_tp2))
    ppe_pac3 = ppe_elig*(ppe3*coef(coef_tp3))
    
    ppe_tot = ppe_vous + ppe_conj + ppe_pac1 + ppe_pac2 + ppe_pac3 +  maj_pac
    
    ppe_tot = (ppe_tot!=0)*max_(P.versmin, ppe_tot)
    
    return ppe_tot
Example #7
0
def _ppe_brute(ppe_elig, ppe_elig_i, ppe_rev, ppe_base, ppe_coef, ppe_coef_tp, nb_pac, marpac, celdiv, veuf, caseT, caseL, nbH, _P, _option = {'ppe_elig_i': ALL, 'ppe_base': ALL, 'ppe_rev': ALL, 'ppe_coef_tp': ALL}):
    '''
    Prime pour l'emploi (avant éventuel dispositif de cumul avec le RSA)
    'foy'
    Cf. http://travail-emploi.gouv.fr/informations-pratiques,89/fiches-pratiques,91/remuneration,113/la-prime-pour-l-emploi-ppe,1034.html
    '''
    P = _P.ir.credits_impot.ppe

    eliv, elic, eli1, eli2, eli3 = ppe_elig_i[VOUS], ppe_elig_i[CONJ], ppe_elig_i[PAC1], ppe_elig_i[PAC2], ppe_elig_i[PAC3],
    basevi, baseci = ppe_rev[VOUS], ppe_rev[CONJ]
    basev, basec, base1, base2, base3 = ppe_base[VOUS], ppe_base[CONJ], ppe_base[PAC1], ppe_base[PAC2], ppe_base[PAC1]
    coef_tpv, coef_tpc, coef_tp1, coef_tp2, coef_tp3 = ppe_coef_tp[VOUS], ppe_coef_tp[CONJ], ppe_coef_tp[PAC1], ppe_coef_tp[PAC2], ppe_coef_tp[PAC1]

    nb_pac_ppe = max_(0, nb_pac - eli1 - eli2 - eli3)

    ligne2 = marpac & xor_(basevi >= P.seuil1, baseci >= P.seuil1)
    ligne3 = (celdiv | veuf) & caseT & not_(veuf & caseT & caseL)
    ligne1 = not_(ligne2) & not_(ligne3)

    base_monact = ligne2 * (eliv * basev + elic * basec)
    base_monacti = ligne2 * (eliv * basevi + elic * baseci)

    def ppe_bar1(base):
#        cond1 = ligne1 | ligne3
#        cond2 = ligne2
#        return 1 / ppe_coef * ((cond1 & (base <= P.seuil2)) * (base) * P.taux1 +
#                           (cond1 & (base > P.seuil2) & (base <= P.seuil3)) * (P.seuil3 - base) * P.taux2 +
#                           (cond2 & (base <= P.seuil2)) * (base * P.taux1) +
#                           (cond2 & (base > P.seuil2) & (base <= P.seuil3)) * ((P.seuil3 - base) * P.taux2) +
#                           (cond2 & (base > P.seuil4) & (base <= P.seuil5)) * (P.seuil5 - base) * P.taux3)
        return (1 / ppe_coef) * (((base <= P.seuil2)) * (base) * P.taux1 +
                           ((base > P.seuil2) & (base <= P.seuil3)) * (P.seuil3 - base) * P.taux2 +
                           ligne2 * ((base > P.seuil4) & (base <= P.seuil5)) * (P.seuil5 - base) * P.taux3)


    def ppe_bar2(base):
        return (1 / ppe_coef) * ((base <= P.seuil2) * (base) * P.taux1 +
                           ((base > P.seuil2) & (base <= P.seuil3)) * (P.seuil3 - base1) * P.taux2)

    # calcul des primes individuelles.

    ppev = eliv * ppe_bar1(basev)
    ppec = elic * ppe_bar1(basec)
    ppe1 = eli1 * ppe_bar2(base1)
    ppe2 = eli2 * ppe_bar2(base2)
    ppe3 = eli3 * ppe_bar2(base3)

    # Primes de monoactivité
    ppe_monact_vous = (eliv & ligne2 & (basevi >= P.seuil1) & (basev <= P.seuil4)) * P.monact
    ppe_monact_conj = (elic & ligne2 & (baseci >= P.seuil1) & (basec <= P.seuil4)) * P.monact

    # Primes pour enfants à charge
    maj_pac = ppe_elig * (eliv | elic) * (
        (ligne1 & marpac & ((ppev + ppec) != 0) & (min_(basev, basec) <= P.seuil3)) * P.pac * (nb_pac_ppe + nbH * 0.5) +
        (ligne1 & (celdiv | veuf) & eliv & (basev <= P.seuil3)) * P.pac * (nb_pac_ppe + nbH * 0.5) +
        (ligne2 & (base_monacti >= P.seuil1) & (base_monact <= P.seuil3)) * P.pac * (nb_pac_ppe + nbH * 0.5) +
        (ligne2 & (base_monact > P.seuil3) & (base_monact <= P.seuil5)) * P.pac * ((nb_pac_ppe != 0) + 0.5 * ((nb_pac_ppe == 0) & (nbH != 0))) +
        (ligne3 & (basevi >= P.seuil1) & (basev <= P.seuil3)) * ((min_(nb_pac_ppe, 1) * 2 * P.pac + max_(nb_pac_ppe - 1, 0) * P.pac) + (nb_pac_ppe == 0) * (min_(nbH, 2) * P.pac + max_(nbH - 2, 0) * P.pac * 0.5)) +
        (ligne3 & (basev > P.seuil3) & (basev <= P.seuil5)) * P.pac * ((nb_pac_ppe != 0) * 2 + ((nb_pac_ppe == 0) & (nbH != 0))))

    def coef(coef_tp):
        return (coef_tp <= 0.5) * coef_tp * 1.45 + (coef_tp > 0.5) * (0.55 * coef_tp + 0.45)

    ppe_vous = ppe_elig * (ppev * coef(coef_tpv) + ppe_monact_vous)
    ppe_conj = ppe_elig * (ppec * coef(coef_tpc) + ppe_monact_conj)
    ppe_pac1 = ppe_elig * (ppe1 * coef(coef_tp1))
    ppe_pac2 = ppe_elig * (ppe2 * coef(coef_tp2))
    ppe_pac3 = ppe_elig * (ppe3 * coef(coef_tp3))

    ppe_tot = ppe_vous + ppe_conj + ppe_pac1 + ppe_pac2 + ppe_pac3 + maj_pac

    ppe_tot = (ppe_tot != 0) * max_(P.versmin, ppe_tot)
    # from pandas import DataFrame
    # decompo = {0: ppev, 1 :ppe_vous, 2: ppec,3: ppe_conj, 4: maj_pac, 5 : ppe_monact_vous, 6: ppe_monact_conj, 8: basev, 81 : basevi, 9: basec, 91 : baseci, 10:ppe_tot}
    # print DataFrame(decompo).to_string()

    return ppe_tot