fix: Corriger logique AEM status (éviter faux positif "À traiter" avec includes('traite'))
This commit is contained in:
parent
e0f1b48453
commit
9a922ce77e
3 changed files with 19 additions and 4 deletions
|
|
@ -1125,8 +1125,9 @@ export default function ContratMultiPage() {
|
|||
const label = payLabel(p) || (p.ordre ? `Paie ${p.ordre}` : 'Paie');
|
||||
// Normalize aem_statut for robust checks (API can return 'OK', 'ok', 'Traité', etc.)
|
||||
const aemNorm = String((p as any).aem_statut || '').normalize('NFD').replace(/\p{Diacritic}/gu, '').trim().toLowerCase();
|
||||
const aemOk = aemNorm === 'ok' || aemNorm === 'oui' || aemNorm.includes('ok') || aemNorm === 'traite' || aemNorm === 'traitee' || aemNorm.includes('traite');
|
||||
const aemPending = aemNorm.includes('a_traiter') || aemNorm.includes('a traiter') || (aemNorm.includes('traiter') && !aemNorm.includes('traite'));
|
||||
// Vérifier d'abord "À traiter" pour éviter les faux positifs
|
||||
const aemPending = aemNorm.includes('a_traiter') || aemNorm.includes('a traiter');
|
||||
const aemOk = !aemPending && (aemNorm === 'ok' || aemNorm === 'oui' || aemNorm.includes('ok') || aemNorm === 'valide');
|
||||
|
||||
const CardInner = (
|
||||
<div className="h-full rounded-2xl border bg-white p-4 hover:shadow-md transition-shadow relative">
|
||||
|
|
|
|||
|
|
@ -1560,7 +1560,12 @@ return (
|
|||
<Field label="Coût total employeur" value={formatEUR(slip.employer_cost)} />
|
||||
<Field label="AEM" value={(() => {
|
||||
const aemNorm = String(slip.aem_status || '').normalize('NFD').replace(/\p{Diacritic}/gu, '').trim().toLowerCase();
|
||||
const aemOk = aemNorm === 'ok' || aemNorm === 'oui' || aemNorm.includes('ok') || aemNorm === 'traite' || aemNorm === 'traitee' || aemNorm.includes('traite');
|
||||
// Vérifier d'abord si c'est "À traiter" pour éviter les faux positifs
|
||||
if (aemNorm.includes('a traiter') || aemNorm.includes('a_traiter')) {
|
||||
return <Badge tone="warn">À traiter</Badge>;
|
||||
}
|
||||
// Ensuite vérifier les cas OK
|
||||
const aemOk = aemNorm === 'ok' || aemNorm === 'oui' || aemNorm.includes('ok') || aemNorm === 'valide';
|
||||
return aemOk ? <Badge tone="ok">AEM OK</Badge> : <Badge tone="warn">À traiter</Badge>;
|
||||
})()} />
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1433,7 +1433,16 @@ return (
|
|||
<Field label="Net après PAS" value={formatEUR(slip.net_after_withholding)} />
|
||||
<Field label="Brut" value={formatEUR(slip.gross_amount)} />
|
||||
<Field label="Coût total employeur" value={formatEUR(slip.employer_cost)} />
|
||||
<Field label="AEM" value={slip.aem_status === "OK" ? <Badge tone="ok">AEM OK</Badge> : <Badge tone="warn">À traiter</Badge>} />
|
||||
<Field label="AEM" value={(() => {
|
||||
const aemNorm = String(slip.aem_status || '').normalize('NFD').replace(/\p{Diacritic}/gu, '').trim().toLowerCase();
|
||||
// Vérifier d'abord si c'est "À traiter" pour éviter les faux positifs
|
||||
if (aemNorm.includes('a traiter') || aemNorm.includes('a_traiter')) {
|
||||
return <Badge tone="warn">À traiter</Badge>;
|
||||
}
|
||||
// Ensuite vérifier les cas OK
|
||||
const aemOk = aemNorm === 'ok' || aemNorm === 'oui' || aemNorm.includes('ok') || aemNorm === 'valide';
|
||||
return aemOk ? <Badge tone="ok">AEM OK</Badge> : <Badge tone="warn">À traiter</Badge>;
|
||||
})()} />
|
||||
</div>
|
||||
))
|
||||
) : (
|
||||
|
|
|
|||
Loading…
Reference in a new issue