Checkpoint: Suppression des 6 lignes parasites en BDD (Infogérance, Sécurité, Applicatifs HEP, Applicatifs SMR, Téléphonie, TOTAL) + filtre PARASITE_PATTERNS dans handleFileImport pour empêcher leur réinsertion lors d'un import Excel.
This commit is contained in:
@@ -521,8 +521,17 @@ function ClesRepartitionView({ annee, basesRepartitionRaw, isLoadingBases, isErr
|
||||
}
|
||||
|
||||
// ── Construction des lignes à importer ───────────────────────────────
|
||||
// Mots-clés qui indiquent une ligne parasite (catégorie ou synthèse, pas un établissement)
|
||||
const PARASITE_PATTERNS = /^(infog|s.curit|t.l.phonie|app global|app hep|app smr|applicatifs|total|ventilation|r.partition|nouveaut)/i;
|
||||
const importRows = data.slice(headerIdx + 1)
|
||||
.filter(row => row[codeIdx] && String(row[codeIdx]).trim())
|
||||
.filter(row => {
|
||||
const code = String(row[codeIdx] ?? '').trim();
|
||||
if (!code) return false;
|
||||
// Rejeter les lignes dont le code ressemble à un libellé de catégorie
|
||||
const codeNorm = code.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
|
||||
if (PARASITE_PATTERNS.test(codeNorm)) return false;
|
||||
return true;
|
||||
})
|
||||
.map(row => ({
|
||||
etablissementCode: String(row[codeIdx]).trim(),
|
||||
etablissementNom: nomIdx >= 0 ? String(row[nomIdx]).trim() || null : null,
|
||||
|
||||
Reference in New Issue
Block a user