@tricoteuses/senat 3.1.13 → 3.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -108,11 +108,13 @@ export function buildActesLegislatifs(dossier) {
|
|
|
108
108
|
const commissionsSaisies = lecAss.commissions_saisies ?? [];
|
|
109
109
|
for (const commission of commissionsSaisies) {
|
|
110
110
|
const isAvis = commission.type_saisine === "avis";
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
111
|
+
// Une commission "saisie pour avis" garde le code COM-AVIS même si elle a
|
|
112
|
+
// été déléguée au fond sur certains articles (commission.deleguee_au_fond
|
|
113
|
+
// === "O") : il s'agit d'une modalité de la saisine pour avis, pas d'un
|
|
114
|
+
// changement de nature. Le code -COM-CAE-DEC est réservé au "Comité
|
|
115
|
+
// d'examen approfondi" / rejet préalable et ne s'applique qu'aux lectures
|
|
116
|
+
// uniques/définitives (cf. mappingCodeActeToEtape).
|
|
117
|
+
const commissionCodeActe = isAvis ? `${phasePrefix}-COM-AVIS` : `${phasePrefix}-COM-FOND`;
|
|
116
118
|
const commissionRaps = rapports.filter((r) => r.code_organisme === commission.code_organisme);
|
|
117
119
|
const firstRapDate = commissionRaps.find((r) => r.date)?.date;
|
|
118
120
|
const firstReunionDate = commission.reunions?.find((r) => r.date)?.date;
|
package/lib/src/server/dosleg.js
CHANGED
|
@@ -324,6 +324,19 @@ export async function* findAllDossiers() {
|
|
|
324
324
|
};
|
|
325
325
|
}
|
|
326
326
|
}
|
|
327
|
+
// Normalise un libellé d'organisme pour comparer des entrées issues de sources
|
|
328
|
+
// ameli vs dosleg qui n'utilisent pas les mêmes codes (ex: "CDD" vs "DEVE")
|
|
329
|
+
// mais portent le même libellé.
|
|
330
|
+
function normalizeLibelleOrganisme(libelle) {
|
|
331
|
+
if (!libelle)
|
|
332
|
+
return null;
|
|
333
|
+
return libelle
|
|
334
|
+
.normalize("NFD")
|
|
335
|
+
.replace(/[\u0300-\u036f]/g, "")
|
|
336
|
+
.toLowerCase()
|
|
337
|
+
.replace(/\s+/g, " ")
|
|
338
|
+
.trim();
|
|
339
|
+
}
|
|
327
340
|
function mergeCommissionsSaisies(lectures) {
|
|
328
341
|
return lectures.map((lecture) => {
|
|
329
342
|
const { lectures_assemblee, ...restLecture } = lecture;
|
|
@@ -360,12 +373,30 @@ function mergeCommissionsSaisies(lectures) {
|
|
|
360
373
|
});
|
|
361
374
|
}
|
|
362
375
|
}
|
|
376
|
+
// Réconciliation entre les codes ameli (com_a.lib, ex: "CDD") et les codes
|
|
377
|
+
// dosleg (aud.orgcod, ex: "DEVE") pour un même organisme. Les rapports et
|
|
378
|
+
// réunions utilisent les codes dosleg ; on aligne donc les saisines ameli sur
|
|
379
|
+
// ces codes-là quand le libellé correspond.
|
|
363
380
|
const knownOrgs = new Set(commissionsSaisies.map((c) => c.code_organisme));
|
|
364
381
|
if (reunions_commission) {
|
|
365
382
|
const audOrgs = [...new Set(reunions_commission.map((r) => r.code_organisme))];
|
|
366
383
|
for (const audOrg of audOrgs) {
|
|
367
|
-
if (audOrg
|
|
368
|
-
|
|
384
|
+
if (!audOrg || knownOrgs.has(audOrg))
|
|
385
|
+
continue;
|
|
386
|
+
const audLibelle = reunions_commission.find((r) => r.code_organisme === audOrg)?.libelle_organisme;
|
|
387
|
+
const audLibelleNorm = normalizeLibelleOrganisme(audLibelle);
|
|
388
|
+
// Si une saisine ameli porte le même libellé, on lui réattribue le
|
|
389
|
+
// code dosleg plutôt que de créer une entrée doublon.
|
|
390
|
+
const existing = audLibelleNorm
|
|
391
|
+
? commissionsSaisies.find((c) => normalizeLibelleOrganisme(c.libelle_organisme) === audLibelleNorm)
|
|
392
|
+
: undefined;
|
|
393
|
+
if (existing) {
|
|
394
|
+
knownOrgs.delete(existing.code_organisme);
|
|
395
|
+
existing.code_organisme = audOrg;
|
|
396
|
+
existing.libelle_organisme = audLibelle ?? existing.libelle_organisme;
|
|
397
|
+
knownOrgs.add(audOrg);
|
|
398
|
+
}
|
|
399
|
+
else {
|
|
369
400
|
commissionsSaisies.push({
|
|
370
401
|
code_organisme: audOrg,
|
|
371
402
|
libelle_organisme: audLibelle ?? null,
|