Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remplace paje_clca par page_prepare dans le calcul de la paje. #884

Merged
merged 25 commits into from
Mar 1, 2018

Conversation

Anna-Livia
Copy link
Contributor

@Anna-Livia Anna-Livia commented Jan 26, 2018

Fixes #880
This PR is one solution to the issue bellow. #884 is another one
A partir d'avril 2017, la page_clca n'existe plus .

  • Évolution du système socio-fiscal.
  • Périodes concernées : A partir du 04/2017
  • Zones impactées : prestations_familiales/paje.py.
  • Détails :
    • Description de la fonctionnalité ajoutée ou du nouveau comportement adopté.
    • Cas dans lesquels une erreur était constatée.

Ces changements :

  • Corrigent ou améliorent un calcul déjà existant.

@Anna-Livia
Copy link
Contributor Author

Anna-Livia commented Jan 26, 2018

Cet appel à l'API web provoque une erreur 500 :

{
  "familles": {
    "famille_1": {
      "enfants": [
        "Janet"
      ],
      "parents": [
        "Bill",
        "Bob"
      ],
"paje":{
"2018-03": null
}
    }
  },
  "foyers_fiscaux": {
    "foyer_fiscal_1": {
      "declarants": [
        "Bill",
        "Bob"
      ],
      "personnes_a_charge": [
        "Janet"
      ]
    }
  },
  "individus": {
    "Bill": {
      "salaire_de_base": {
        "2017": 20000,
"2018":20000
      }
    },
    "Bob": {
      "salaire_de_base": {
        "2017": 30000,
"2018":20000
      }
    },
    "Janet": {}
  },
  "menages": {
    "menage_1": {
      "conjoint": [
        "Bob"
      ],
      "enfants": [
        "Janet"
      ],
      "impots_directs": {
        "2017": null
      },
      "personne_de_reference": [
        "Bill"
      ],
      "revenu_disponible": {
        "2017": null
      }
    }
  }
}

@Anna-Livia
Copy link
Contributor Author

J'ai fait de nouvelles modifications. J'ai découvert que la paje_colca avait aussi été supprimée.

J'ai fait une sorte de "hack" pour que paje_clca_taux_plein et paje_clca_taux_partielcontinues d'être fonctionnel car je n'ai pas réussi à déterminer comment elles impactent paje_cmg

@Anna-Livia
Copy link
Contributor Author

@monbocal : Je ne sais pas comment bien tester la paje, la page_clca et la PrEPare. Est ce que tu pourrais m'aider ?

Copy link
Member

@benjello benjello left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je ne suis pas spécialiste mais cela m'a l'air correct

@fpagnoux
Copy link
Member

fpagnoux commented Feb 1, 2018

J'arrive bien après la bataille, mais est-ce que vous avez envisagé de mettre une date de fin aux formules qui appellent les paramètres qui ont disparu de la législation ?

Si on met un attribut end à paje_clca qui vaut 2017-12-31, alors cette variable vaudra toujours 0 à partir du 2018-01-01 et sa formule ne sera jamais appellée. On n'aura donc plus d’erreur de paramètre.

@@ -228,6 +228,27 @@ class ppa_base_ressources_prestations_familiales(Variable):
label = u"Prestations familiales prises en compte dans le calcul de la PPA"
definition_period = MONTH

def formula_2017_04(famille, period, parameters, mois_demande):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Si une date de fin est définie pour les variables paje_*, on peut probablement garder la formule précédente.

Pour éviter les erreurs 500, toute variable doit être calculable à toute période. Si un paramètre utilisé est légitimement supprimé de la législation à une certaine date, la variable qui l'appelle doit soit être déclarée supprimée de la législation (via end), soit adaptée avec une nouvelle formule qui n'utilise pas ces paramètres.

@fpagnoux
Copy link
Member

fpagnoux commented Feb 1, 2018

Si on veut se prémunir d'un tel bug dans le futur, un test python qui vérifie qu'on peut bien calculer sans erreur un revenu disponible en 2025 serait à mon avis bienvenue 🙂

@benjello
Copy link
Member

benjello commented Feb 1, 2018

Bravo @Anna-Livia ! Et aussi @fpagnoux pour tes remarques que j'aurais dû/pu faire pour certaines ...
Je tenterai de faire mieux mon boulot la prochaine fois :-(

@benjello
Copy link
Member

benjello commented Feb 1, 2018

@Anna-Livia : suggestion renommer aussi les variables avec des noms barbares gar_dom etc comme cela a été fait ici pour améliorer la lisibilité.

@Anna-Livia
Copy link
Contributor Author

@benjello le lien pointe vers cette même PR 😕 Est-ce qu'il y a des variables que tu voulais modifier en particulier ?

@benjello
Copy link
Member

benjello commented Feb 1, 2018

@Anna-Livia je pense que cela vaut le coup de modifier les variables suivantes:

  • empl_dir en emploi_direct
  • ass_mat en assistant_maternel
  • gar_dom en garde_a_domicile

@Anna-Livia
Copy link
Contributor Author

@benjello C'est fait pour formula_2017_04_01, est-ce que ta proposition est de l'appliquer aussi aux formules plus anciennes ?

@benjello
Copy link
Member

benjello commented Feb 1, 2018

Pour toutes je veux changer le nom des variables au sens openfisca et pas seulement la variable apparaissant dans la formule.
Désolé de ne pas avori été assez clair @Anna-Livia.

@benjello
Copy link
Member

benjello commented Feb 1, 2018

Peut-être même faudrait-il ajouter un préfixe paje_.

@Anna-Livia
Copy link
Contributor Author

@benjello cela entrainerait un breaking change, je pense que ce n'est pas forcément la bonne PR pour ça. Cependant, il y a un vrai sujet sur les variables (au sens openfisca) utilisées dans la paje.

Copy link
Member

@guillett guillett left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci beaucoup !

Il faut changer la version.

Je n'ai pas d'expertise pour avoir un avis sur la logique du change.

CHANGELOG.md Outdated
@@ -1,5 +1,13 @@
# Changelog

### 20.1.3 [#884](https://github.com/openfisca/openfisca-france/pull/884)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

## 20.1.0 ?

setup.py Outdated
@@ -7,7 +7,7 @@

setup(
name = 'OpenFisca-France',
version = '20.0.3',
version = '20.1.3',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

20.1.0 ?

@benjello
Copy link
Member

benjello commented Feb 1, 2018

@Anna-Livia : as you like, peut-être qu'il faut préparer une PR où l'on stocke des breaking changes "cosmétiques". C'est vous les pros, je pensais juste que c'était bien de faire les changements d'un bloc quand on les voit.

@onmytab
Copy link

onmytab commented Feb 1, 2018

Bonjour, est-ce que cette modification est liée au fait qu'en ce moment les montants des variable af, paje_base et cmg (et ars il me semble) ne varient plus selon salaire_de_base ?

@Anna-Livia Anna-Livia requested a review from fpagnoux February 1, 2018 16:37
Copy link
Member

@fpagnoux fpagnoux left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je n'ai hélas pas eu le temps de regarder en détail cette proposition d'évolution de la législation.

Il me semble par contre que cette PR n'est pas adaptée à la correction urgente d'un bug critique sur OpenFisca.

La correction du bug, qui doit être livrée au plus tôt, semble être mêlée à une évolution législative plus large, le tout noyé dans des déplacements de variables qui rendent impossible une relecture rapide du diff.

paje = (paje_base > 0)
paje_colca = opt_colca * condition * (nbenf >= 3) * P.af.bmaf * (
(paje) * P.paje.colca.avecab + not_(paje) * P.paje.colca.sansab)
return paje_colca
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Manque un saut de ligne en fin de fichier

@@ -76,7 +87,7 @@ def formula_2004_01_01(famille, period):
paje_cmg = famille('paje_cmg', period)
paje_colca = famille('paje_colca', period)

return paje_base + (paje_naissance + paje_clca + paje_cmg + paje_colca) / 12
Copy link
Member

@fpagnoux fpagnoux Feb 1, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ce /12 qui disparaît ne me semble pas sans conséquence.
A-t-on changé le résultat des formules de paje_naissance , etc. ? Cette division était-elle illégitime ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La paje c'est la somme des aides qui la composent (paje_base, paje_naissance ...)
--> source : http://www.caf.fr/allocataires/droits-et-prestations/s-informer-sur-les-aides/petite-enfance/la-prestation-d-accueil-du-jeune-enfant-paje

  • Toutes ces aides ont l'attribut definition_period = MONTH
  • la /12me semble donc illégitime, peut être un artéfact d'un calcul à l'année

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, je ne suis pas un expert, donc pas de blocage de mon côté. Cette prestation n'était pas calculée par mes-aides (qui ne calcule que la PAJE de base je crois) donc rien ne me porte à croire que le calcul précédent était particulièrement juste.

Si @benjello et @guillett n'ont pas de raison de garder ce /12, ok pour le supprimer.

@@ -244,122 +255,134 @@ def formula_2004_01_01(famille, period, parameters):
return nais_prime * elig * nb_enfants_7e_mois_grossese


class paje_clca(Variable):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ces déplacements de variables rendent très difficile la lecture du diff 😕

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, didn't know :/

@fpagnoux
Copy link
Member

fpagnoux commented Feb 1, 2018

Je suggère un correctif minimaliste pour remettre le package d'aplomb : #892.

@Anna-Livia
Copy link
Contributor Author

@onmytab Les modifications de cette PR sont liées à la disparition de la paje_clcaet de la paje_colca ainsi que la fin de l'obligation de salaire minimal pour être éligible à la paje_cmg.
Par contre, la base de ressource des allocation familiale ou sa prise en compte dans la paje_cmgne sont pas impactés.

Je suis curieuse d'en savoir plus sur les changement dont vous parlez. Pourriez-vous ouvrir une nouvelle issue sur le sujet ?

@Anna-Livia Anna-Livia requested a review from fpagnoux February 2, 2018 10:00
@fpagnoux fpagnoux dismissed their stale review February 12, 2018 14:40

Pas de blocage

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants