betagouv / aplypro

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

Caractères spéciaux dans le nom du RIB #784

Closed DiffusionAplyPro closed 6 months ago

DiffusionAplyPro commented 6 months ago

Bonjour, En analysant les motifs de rejet des RIB, il ressort le motif de rejet suivant :

Les caractères autorisés pour l'intitulé SEPA sont limités à l'alphabet latin, aux chiffres, au caractère espace et aux caractères suivants: / - ? : ( ) . , ' + pour le code XXXXXXX et Les caractères autorisés pour l'intitulé SEPA sont limités à l'alphabet latin, aux chiffres, au caractère espace et aux caractères suivants: / - ? : ( ) . , ' + pour le code XXXXX

Cela vient principalement de "&" et de "_" qui sont présent dans le nom du RIB.

Il faudrait mettre en place un filtre qui n'autosise que l'alphabet latin, aux chiffres, au caractère espace et aux caractères suivants: / - ? : ( ) . , ' +.

Prévoir un nettoyage des noms qui ne sont pas bons.

Mickael

Actuellement 16 rejets

freesteph commented 6 months ago

lesquels ? normalement on fait déjà le nettoyage de ces caractères... tu as un exemple ?

DiffusionAplyPro commented 6 months ago
asp_payment_request_transition_id rib_id
337728 447812
323714 439056
1007783 547440
966206 466045
958840 210694
337610 56010
655991 48196
281897 203481
591083 124187
132364 459093
966126 292066
584124 143491
591124 45220
937783 454934
656002 406510
282156 421163
584095 468567
1007774 290677

le 2eme ID, motif de rejet ASP : Les caractères autorisés pour l'intitulé SEPA sont limités à l'alphabet latin, aux chiffres, au caractère espace et aux caractères suivants: / - ? : ( ) . , ' + pour le code ZXXXX FXXX & OXXX

Select (aprt.METADATA::json->>'Motif rejet') AS MOTIF_REJET
       ,aprt.id asp_payment_request_transition_id,rib.id rib_id
       ,RIB.NAME
from public.ASP_PAYMENT_REQUEST_TRANSITIONS aprt
join public.ASP_PAYMENT_REQUESTS apr on apr.ID = aprt.ASP_PAYMENT_REQUEST_ID
join public.PFMPS pf on pf.ID = apr.PFMP_ID
join public.SCHOOLINGS sco on sco.id = pf.SCHOOLING_ID
Join public.STUDENTS s on s.id = sco.STUDENT_ID
join public.RIBS rib on rib.STUDENT_ID = s.ID
where aprt.MOST_RECENT=TRUE
and aprt.TO_STATE='rejected'
and (aprt.METADATA::json->>'Motif rejet') like 'Les caract%';
DiffusionAplyPro commented 6 months ago

Attention y'en des IBAN dans les noms de RIB ...

105031 266923 278700 575954 255263 563503 209773 331586 592728 147108 300275 546812 502584 515807 318286 324761 491740 431749 94422 90406 137637 105822 38272 270080 258036 581912 416643 545178 412110 62783 73774 292355 137790 97713 97592 362213 8755 4575 549793 458477 491608 104494 88818 165247 386853 163184 265482 174631 567494 273691 47135 339987 531668 415311 332927 309176