betagouv / aplypro

Aplypro - Allocation pour les lycéens pro
3 stars 3 forks source link

Contraintes de cohérence sur les PFMPs #480

Open JeSuisUnCaillou opened 4 months ago

JeSuisUnCaillou commented 4 months ago
### Tasks
- [ ] Ajouter les contraintes sur le modèle de PFMP
- [ ] Corriger les données de production
JeSuisUnCaillou commented 4 months ago

Voici une extraction effectuée par Mickaël des données incorrectes qu'il a trouvées :

ANALYSE incoherence saisie PFMP - anonymisé.csv

DiffusionAplyPro commented 4 months ago

Requete de l'extraction au dessus. Les données bouges y'a +3K par rapport à hier...

SELECT S.*
       ,CASE WHEN DIFF<NBJ_MAX-DUREE_PFMP
             THEN DIFF
             ELSE CASE WHEN NBJ_MAX-DUREE_PFMP<0 THEN 0 ELSE NBJ_MAX-DUREE_PFMP END
        END * daily_rate INDUS
FROM ( 
        select  et.UAI,el.id STUDENT_ID,el.INE,EL.LAST_NAME,EL.FIRST_NAME,c.LABEL CLASSE,MEF.LABEL MEF,MEF.CODE
                ,pf.id pfmp_id,pf.START_DATE,pf.END_DATE,pf.END_DATE-pf.START_DATE+1 DUREE_PFMP
                --,CASE WHEN PF.END_DATE>CURRENT_DATE THEN 1 ELSE 0 END FIN_PFMP
               ,Coalesce(PF.DAY_COUNT,0) NB_JOUR
               ,Coalesce(PF.DAY_COUNT,0)-(pf.END_DATE-pf.START_DATE+1) DIFF
               ,w.DAILY_RATE,w.YEARLY_CAP,w.YEARLY_CAP/w.DAILY_RATE NBJ_MAX
        from public.PFMPS pf
        join public.SCHOOLINGS sco on sco.id = pf.SCHOOLING_ID
        join public.STUDENTS el on el.id = sco.STUDENT_ID
        join public.CLASSES c on c.id = sco.CLASSE_ID
        join public.MEFS mef on mef.id = c.MEF_ID
        left join public.WAGES w on (w.MEF_CODES #>> '{}') ~ mef.code = 'true'
        join public.ESTABLISHMENTS et on et.id = c.ESTABLISHMENT_ID
        where pf.END_DATE-pf.START_DATE+1<Coalesce(PF.DAY_COUNT,0)
     ) S
order by UAI,INE,START_DATE;

Identification des PFMP avec jours alors que PFMP non terminée

select count(*) NB
from PUBLIC.PFMPS pf
where pf.END_DATE>current_date 
and PF.DAY_COUNT is not null;
AlainSN2 commented 4 months ago

cf. carte #477