diff --git a/admin/src/scenes/settings/operations/actions/AffectationSimulation/AffectationCLESimulationMetropoleModal.tsx b/admin/src/scenes/settings/operations/actions/AffectationSimulation/AffectationCLESimulationMetropoleModal.tsx index 45a8043246..2423f765ee 100644 --- a/admin/src/scenes/settings/operations/actions/AffectationSimulation/AffectationCLESimulationMetropoleModal.tsx +++ b/admin/src/scenes/settings/operations/actions/AffectationSimulation/AffectationCLESimulationMetropoleModal.tsx @@ -2,7 +2,7 @@ import React from "react"; import { HiOutlineLightningBolt } from "react-icons/hi"; -import { CohortDto, formatDepartement, Phase1Routes, region2department, RegionsMetropoleAndCorse, translate } from "snu-lib"; +import { CohortDto, formatDepartement, Phase1Routes, region2department, RegionsMetropole, translate } from "snu-lib"; import { Button, CollapsableSelectSwitcher, Modal, SectionSwitcher } from "@snu/ds/admin"; import { useSetState } from "react-use"; import { useMutation, useQueryClient } from "@tanstack/react-query"; @@ -22,8 +22,8 @@ export default function AffectationCLESimulationMetropoleModal({ session, onClos departements: Record; etranger: boolean; }>({ - departements: RegionsMetropoleAndCorse.reduce((acc, region) => { - acc[region] = region2department[region].filter((departement) => !session.eligibility?.zones || session.eligibility.zones.includes(departement)); + departements: RegionsMetropole.reduce((acc, region) => { + acc[region] = region2department[region]; return acc; }, {}), etranger: true, @@ -70,7 +70,7 @@ export default function AffectationCLESimulationMetropoleModal({ session, onClos

Découpage territorial

- {RegionsMetropoleAndCorse.map((region) => ( + {RegionsMetropole.map((region) => ( ligneBus.ligneDeBus.id === jeune.ligneDeBusId, )!.ligneDeBus; - const sejour = centreList.find((centre) => centre.sejour.id === jeune.sejourId)!.sejour; + const sejour = sejourList.find((centre) => centre.sejour.id === jeune.sejourId)?.sejour; const classe = classeList.find((classe) => classe.id === jeune.classeId)!; const etablissement = etablissementList.find( (etablissement) => etablissement.id === classe.etablissementId, @@ -138,56 +136,55 @@ export class SimulationAffectationCLEService { const referentClasse = referentsList.find((referent) => classe.referentClasseIds.includes(referent.id)); return { - "_id du volontaire": jeune.id, + "id du volontaire": jeune.id, Nom: jeune.nom, Prenom: jeune.prenom, Email: jeune.email, Cohort: jeune.sessionNom!, Statut: jeune.statut, - "Statut de phase 1": "AFFECTED", - "_id du bus": ligneBus.id, - "Nom du bus": jeune.ligneDeBusId, - "_id du centre": jeune.centreId!, - "Nom du centre": sejour.centreNom!, - "Département du centre": sejour.departement!, - "Région du centre": sejour.region!, - "_id classe": jeune.classeId!, + "Statut de phase 1": jeune.statutPhase1, + "id du bus": ligneBus.id, + "Nom du bus": ligneBus.numeroLigne, + "id du centre": jeune.centreId!, + // "matricule du centre": centre?., + "Nom du centre": sejour?.centreNom!, + "Département du centre": sejour?.departement!, + "Région du centre": sejour?.region!, + "id classe": jeune.classeId!, "Nom de la classe": classe.nom!, "Nom de l'établissement": etablissement?.nom, "Département de l'établissement": etablissement?.departement, "Région de l'établissement": etablissement?.region, "Référent de classe Nom": referentClasse?.nomComplet, "Référent de classe Email": referentClasse?.email, - dev_sessionPhase1Id: jeune.sejourId!, - dev_cohesionCenterId: classe.centreCohesionId!, - dev_pointDeRassemblementId: jeune.pointDeRassemblementId!, - dev_ligneId: jeune.ligneDeBusId!, - dev_status: jeune.statut, - dev_statusPhase1: "AFFECTED", + sejourId: jeune.sejourId!, + classeCenterId: classe.centreCohesionId!, + pointDeRassemblementId: jeune.pointDeRassemblementId!, + jeuneLigneId: jeune.ligneDeBusId!, } as JeuneRapport; }); - const centreListRapport = centreList.map((centre) => { - const sejour = centre.sejour; + const centreListRapport = sejourList.map((info) => { + const sejour = info.sejour; return { - _id: sejour.id, + id: sejour.id, "Nom du centre": sejour.centreNom, "Département du centre": sejour.departement, "Région du centre": sejour.region, "Places disponibles": sejour.placesTotal || 0, - "Places occupées": centre.placeOccupees, - "Places restantes": centre.placeRestantes, + "Places occupées": info.placeOccupees, + "Places restantes": info.placeRestantes, } as CentreRapport; }); const ligneBusRapport = ligneDeBusList.map((ligneBusResults) => { const ligneDeBus = ligneBusResults.ligneDeBus; const classe = classeList.find((classe) => classe.id === ligneBusResults.classeId)!; - const sejour = centreList.find((centre) => centre.sejour.id === ligneBusResults.sejourId)!.sejour; + const sejour = sejourList.find((centre) => centre.sejour.id === ligneBusResults.sejourId)!.sejour; return { - _id: ligneDeBus.id, + id: ligneDeBus.id, "Nom du bus": ligneDeBus.numeroLigne, - "_id du centre": classe.centreCohesionId, + "id du centre": classe.centreCohesionId, "Nom du centre": sejour.centreNom, "Département du centre": sejour.departement, "Région du centre": sejour.region, @@ -215,13 +212,13 @@ export class SimulationAffectationCLEService { placesRestantes = sejour.placesRestantes; } return { - "_id classe": classe.id, + "id classe": classe.id, "Nom de la classe": classe.nom, "Nom de l'établissement": etablissement?.nom, "Département de l'établissement": etablissement?.departement, "Région de l'établissement": etablissement?.region, - "_id du centre": classe.centreCohesionId, - "_id du bus": ligneBus?.id, + "id du centre": classe.centreCohesionId, + "id du bus": ligneBus?.id, "Nom du bus": ligneBus?.numeroLigne, Erreur: erreur.message, "Nombre de volontaires": erreur.jeunesNombre, diff --git a/apiv2/src/admin/core/sejours/phase1/affectation/SimulationAffectationCLE.ts b/apiv2/src/admin/core/sejours/phase1/affectation/SimulationAffectationCLE.ts index e991283f68..e338cbaf24 100644 --- a/apiv2/src/admin/core/sejours/phase1/affectation/SimulationAffectationCLE.ts +++ b/apiv2/src/admin/core/sejours/phase1/affectation/SimulationAffectationCLE.ts @@ -31,7 +31,7 @@ import { ReferentGateway } from "@admin/core/iam/Referent.gateway"; type Resultats = { jeunesList: JeuneModel[]; jeunesDejaAffectedList: JeuneModel[]; - centreList: { + sejourList: { sejour: SejourModel; placeOccupees: number; placeRestantes: number; @@ -111,7 +111,7 @@ export class SimulationAffectationCLE implements UseCase r.sejour.id === sejour.id); + const resultatCentre = resultats.sejourList.find((r) => r.sejour.id === sejour.id); placesRestantes = resultatCentre?.placeRestantes || sejour.placesRestantes || 0; if (placesRestantes < jeunesList.length) { resultats.classeErreurList.push({ @@ -227,7 +227,7 @@ export class SimulationAffectationCLE implements UseCase { parseXLS: jest.fn().mockResolvedValue([ { "_id du volontaire": "jeune1", - dev_ligneId: "65f9c8bb735e0e12a4213c18", - dev_sessionPhase1Id: "6597e6acb86afb08146e8f86", - dev_cohesionCenterId: "609bebb00c1cc9a888ae8fa8", - dev_pointDeRassemblementId: "6398797d3bc18708cc3981f6", + jeuneLigneId: "65f9c8bb735e0e12a4213c18", + sejourId: "6597e6acb86afb08146e8f86", + classeCenterId: "609bebb00c1cc9a888ae8fa8", + pointDeRassemblementId: "6398797d3bc18708cc3981f6", }, ]), }, diff --git a/apiv2/src/admin/core/sejours/phase1/affectation/ValiderAffectationCLE.ts b/apiv2/src/admin/core/sejours/phase1/affectation/ValiderAffectationCLE.ts index 66e8e7550d..e4da7c2ab0 100644 --- a/apiv2/src/admin/core/sejours/phase1/affectation/ValiderAffectationCLE.ts +++ b/apiv2/src/admin/core/sejours/phase1/affectation/ValiderAffectationCLE.ts @@ -58,7 +58,7 @@ export type ValiderAffectationRapportData = Array< centreNom: string; "places restantes après l'inscription (centre)": string | number; "places totale (centre)": string | number; - error?: string; + erreur?: string; } >; @@ -104,7 +104,7 @@ export class ValiderAffectationCLE implements UseCase jeune["_id du volontaire"]), + simulationJeunesAAffecterList.map((jeune) => jeune["id du volontaire"]), ); if (jeuneAAffecterList.length !== simulationJeunesAAffecterList.length) { throw new FunctionalException( @@ -123,11 +123,11 @@ export class ValiderAffectationCLE implements UseCase jeune.id === jeuneRapport["_id du volontaire"])!; + const jeune = jeuneAAffecterList.find((jeune) => jeune.id === jeuneRapport["id du volontaire"])!; - const ligneDeBus = ligneDeBusList.find((ligne) => ligne.id === jeuneRapport.dev_ligneId); - const sejour = sejoursList.find((sejour) => sejour.id === jeuneRapport.dev_sessionPhase1Id); - const pdr = pdrList.find((pdr) => pdr.id === jeuneRapport.dev_pointDeRassemblementId); // TODO: utiliser le matricule + const ligneDeBus = ligneDeBusList.find((ligne) => ligne.id === jeuneRapport.jeuneLigneId); + const sejour = sejoursList.find((sejour) => sejour.id === jeuneRapport.sejourId); + const pdr = pdrList.find((pdr) => pdr.id === jeuneRapport.pointDeRassemblementId); // TODO: utiliser le matricule // Controle de coherence if (jeune.statut !== YOUNG_STATUS.VALIDATED) { @@ -141,10 +141,10 @@ export class ValiderAffectationCLE implements UseCase jeune ${jeune.id} ignored.`, + `🚩 Ligne de bus introuvable (${jeuneRapport.jeuneLigneId}) => jeune ${jeune.id} ignored.`, ); throw new FunctionalException( FunctionalExceptionCode.AFFECTATION_NOT_ENOUGH_DATA, - `ligne de bus non trouvée ${jeuneRapport.dev_ligneId} (jeune: ${jeune.id})`, + `ligne de bus non trouvée ${jeuneRapport.jeuneLigneId} (jeune: ${jeune.id})`, ); } if (!pdr) { this.logger.error( - `🚩 Point de rassemblement introuvable (${jeuneRapport.dev_pointDeRassemblementId}) => jeune ${jeune.id} ignored.`, + `🚩 Point de rassemblement introuvable (${jeuneRapport.pointDeRassemblementId}) => jeune ${jeune.id} ignored.`, ); throw new FunctionalException( FunctionalExceptionCode.AFFECTATION_NOT_ENOUGH_DATA, - `point de rassemblement non trouvé ${jeuneRapport.dev_pointDeRassemblementId} (jeune: ${jeune.id})`, + `point de rassemblement non trouvé ${jeuneRapport.pointDeRassemblementId} (jeune: ${jeune.id})`, ); } @@ -196,12 +196,12 @@ export class ValiderAffectationCLE implements UseCase