def _api(agem, age, smic55, isol, forf_log, br_rmi, af_majo, rsa, _P, _option = {'age': ENFS, 'agem': ENFS, 'smic55': ENFS}): ''' Allocation de parent isolé ''' P = _P bmaf = P.fam.af.bmaf; # TODO benjamin = age_en_mois_benjamin(agem) enceinte = (benjamin<0)*(benjamin>-6) # TODO quel mois mettre ? # TODO pas complètement exact # L'allocataire perçoit l'API : # jusqu'à ce que le plus jeune enfant ait 3 ans, # ou pendant 12 mois consécutifs si les enfants sont âgés de plus de 3 ans # et s'il a présenté sa demande dans les 6 mois à partir du moment où il # assure seul la charge de l'enfant. # TODO: API courte gens pour les gens qui ont divorcés dans l'année # Le droit à l'allocation est réétudié tous les 3 mois. ## Calcul de l'année et mois de naissance du benjamin condition = (floor(benjamin/12) <= P.minim.api.age-1) eligib = isol*( (enceinte!=0) | (nb_enf(age, smic55, 0,P.minim.api.age-1)>0) )*condition; # moins de 20 ans avant inclusion dans rsa # moins de 25 ans après inclusion dans rsa api1 = eligib*bmaf*(P.minim.api.base + P.minim.api.enf_sup*nb_enf(age, smic55, P.fam.af.age1,P.minim.api.age_pac-1) ) rsa = (P.minim.api.age_pac >= 25) # dummy passage au rsa majoré br_api = br_rmi + af_majo*not_(rsa) # On pourrait mensualiser RMI, BRrmi et forfait logement api = max_(0, api1 - forf_log/12 - br_api/12 - rsa/12) # L'API est exonérée de CRDS return 12*api # annualisé
def _api(agem, age, smic55, isol, forf_log, br_rmi, af_majo, rsa, _P, _option={ 'age': ENFS, 'agem': ENFS, 'smic55': ENFS }): ''' Allocation de parent isolé ''' P = _P bmaf = P.fam.af.bmaf # TODO benjamin = age_en_mois_benjamin(agem) enceinte = (benjamin < 0) * (benjamin > -6) # TODO quel mois mettre ? # TODO pas complètement exact # L'allocataire perçoit l'API : # jusqu'à ce que le plus jeune enfant ait 3 ans, # ou pendant 12 mois consécutifs si les enfants sont âgés de plus de 3 ans # et s'il a présenté sa demande dans les 6 mois à partir du moment où il # assure seul la charge de l'enfant. # TODO: API courte gens pour les gens qui ont divorcés dans l'année # Le droit à l'allocation est réétudié tous les 3 mois. ## Calcul de l'année et mois de naissance du benjamin condition = (floor(benjamin / 12) <= P.minim.api.age - 1) eligib = isol * ( (enceinte != 0) | (nb_enf(age, smic55, 0, P.minim.api.age - 1) > 0)) * condition # moins de 20 ans avant inclusion dans rsa # moins de 25 ans après inclusion dans rsa api1 = eligib * bmaf * (P.minim.api.base + P.minim.api.enf_sup * nb_enf( age, smic55, P.fam.af.age1, P.minim.api.age_pac - 1)) rsa = (P.minim.api.age_pac >= 25) # dummy passage au rsa majoré br_api = br_rmi + af_majo * not_(rsa) # On pourrait mensualiser RMI, BRrmi et forfait logement api = max_(0, api1 - forf_log / 12 - br_api / 12 - rsa / 12) # L'API est exonérée de CRDS return 12 * api # annualisé
def _al_pac(age, smic55, nbR, _P, _option = {'age': ENFS, 'smic55': ENFS}): ''' Nombre de personne à charge au sens des allocations logement ''' P = _P # site de la CAF en 2011: ## Enfant à charge # Vous assurez financièrement l'entretien et asez la responsabilité # affective et éducative d'un enfant, que vous ayez ou non un lien de # parenté avec lui. Il est reconnu à votre charge pour le versement # des aides au logement jusqu'au mois précédent ses 21 ans. # Attention, s'il travaille, il doit gagner moins de 836,55 € par mois. ## Parents âgés ou infirmes # Sont à votre charge s'ils vivent avec vous et si leurs revenus 2009 # ne dépassent pas 10 386,59 € : # * vos parents ou grand-parents âgés de plus de 65 ans ou d'au moins # 60 ans, inaptes au travail, anciens déportés, # * vos proches parents infirmes âgés de 22 ans ou plus (parents, # grand-parents, enfants, petits enfants, frères, soeurs, oncles, # tantes, neveux, nièces). # P_AL.D_enfch est une dummy qui vaut 1 si les enfants sont comptés à # charge (cas actuel) et zéro sinon. al_nbinv = nbR age1 = P.fam.af.age1 age2 = P.fam.cf.age2 al_nbenf = nb_enf(age, smic55, age1, age2) al_pac = P.al.autres.D_enfch*(al_nbenf + al_nbinv) # manque invalides # TODO: il faudrait probablement définir les AL pour un ménage et non # pour une famille return al_pac
def _aefa(age, smic55, af_nbenf, nb_par, ass ,aer, api, rsa, _P, _option = {'age': ENFS, 'smic55': ENFS}): ''' Aide exceptionelle de fin d'année (prime de Noël) ''' # Insituée en 1998 # Apparaît sous le nom de complément de rmi dans les ERF P = _P dummy_ass = ass > 0 dummy_aer = aer > 0 dummy_api = api > 0 dummy_rmi = rsa > 0 # Le montant de l’aide mentionnée à l’article 1er versée aux bénéficiaires de l’allocation de solidarité # spécifique à taux majoré servie aux allocataires âgés de cinquante-cinq ans ou plus justifiant de vingt années # d’activité salariée, aux allocataires âgés de cinquante-sept ans et demi ou plus justifiant de dix années d’activité # salariée ainsi qu’aux allocataires justifiant d’au moins 160 trimestres validés dans les régimes d’assurance # vieillesse ou de périodes reconnues équivalentes est égal à maj = 0 # TODO condition = (dummy_ass+dummy_aer+dummy_api+dummy_rmi > 0) if hasattr(P.fam.af,"age3"): nbPAC = nb_enf(age, smic55, P.fam.af.age1,P.fam.af.age3) else: nbPAC = af_nbenf # TODO check nombre de PAC pour une famille P = _P.minim aefa = condition*P.aefa.mon_seul*(1 + (nb_par==2)*P.aefa.tx_2p + nbPAC*P.aefa.tx_supp*(nb_par<=2) + nbPAC*P.aefa.tx_3pac*max_(nbPAC-2,0)) if _P.datesim.year==2008: aefa += condition*P.aefa.forf2008 aefa_maj = P.aefa.mon_seul*maj aefa = max_(aefa_maj,aefa) return aefa
def _rmi_nbp(age, smic55, nb_par, _P, _option={'age': ENFS, 'smic55': ENFS}): ''' Nombre de personne à charge au sens du Rmi ou du Rsa 'fam' ''' return nb_par + nb_enf(age, smic55, 0, 24) # TODO limite d'âge dans paramètres
def _al_pac(age, smic55, nbR, _P, _option={'age': ENFS, 'smic55': ENFS}): ''' Nombre de personne à charge au sens des allocations logement ''' P = _P # site de la CAF en 2011: ## Enfant à charge # Vous assurez financièrement l'entretien et asez la responsabilité # affective et éducative d'un enfant, que vous ayez ou non un lien de # parenté avec lui. Il est reconnu à votre charge pour le versement # des aides au logement jusqu'au mois précédent ses 21 ans. # Attention, s'il travaille, il doit gagner moins de 836,55 € par mois. ## Parents âgés ou infirmes # Sont à votre charge s'ils vivent avec vous et si leurs revenus 2009 # ne dépassent pas 10 386,59 € : # * vos parents ou grand-parents âgés de plus de 65 ans ou d'au moins # 60 ans, inaptes au travail, anciens déportés, # * vos proches parents infirmes âgés de 22 ans ou plus (parents, # grand-parents, enfants, petits enfants, frères, soeurs, oncles, # tantes, neveux, nièces). # P_AL.D_enfch est une dummy qui vaut 1 si les enfants sont comptés à # charge (cas actuel) et zéro sinon. al_nbinv = nbR age1 = P.fam.af.age1 age2 = P.fam.cf.age2 al_nbenf = nb_enf(age, smic55, age1, age2) al_pac = P.al.autres.D_enfch * (al_nbenf + al_nbinv) # manque invalides # TODO: il faudrait probablement définir les AL pour un ménage et non # pour une famille return al_pac
def _aefa(age, smic55, af_nbenf, nb_par, ass, aer, api, rsa, _P, _option={ 'age': ENFS, 'smic55': ENFS }): ''' Aide exceptionelle de fin d'année (prime de Noël) ''' # Insituée en 1998 # Apparaît sous le nom de complément de rmi dans les ERF P = _P dummy_ass = ass > 0 dummy_aer = aer > 0 dummy_api = api > 0 dummy_rmi = rsa > 0 # Le montant de l’aide mentionnée à l’article 1er versée aux bénéficiaires de l’allocation de solidarité # spécifique à taux majoré servie aux allocataires âgés de cinquante-cinq ans ou plus justifiant de vingt années # d’activité salariée, aux allocataires âgés de cinquante-sept ans et demi ou plus justifiant de dix années d’activité # salariée ainsi qu’aux allocataires justifiant d’au moins 160 trimestres validés dans les régimes d’assurance # vieillesse ou de périodes reconnues équivalentes est égal à maj = 0 # TODO condition = (dummy_ass + dummy_aer + dummy_api + dummy_rmi > 0) if hasattr(P.fam.af, "age3"): nbPAC = nb_enf(age, smic55, P.fam.af.age1, P.fam.af.age3) else: nbPAC = af_nbenf # TODO check nombre de PAC pour une famille P = _P.minim aefa = condition * P.aefa.mon_seul * ( 1 + (nb_par == 2) * P.aefa.tx_2p + nbPAC * P.aefa.tx_supp * (nb_par <= 2) + nbPAC * P.aefa.tx_3pac * max_(nbPAC - 2, 0)) if _P.datesim.year == 2008: aefa += condition * P.aefa.forf2008 aefa_maj = P.aefa.mon_seul * maj aefa = max_(aefa_maj, aefa) return aefa
def _rmi_nbp(age, smic55, nb_par , _P, _option = {'age': ENFS, 'smic55': ENFS}): ''' Nombre de personne à charge au sens du Rmi ou du Rsa 'fam' ''' return nb_par + nb_enf(age, smic55, 0, 24) # TODO limite d'âge dans paramètres