From d2309cec524547ec14dfa577ee99a877ffacef8c Mon Sep 17 00:00:00 2001 From: vmaubert <v.maubert@code-troopers.com> Date: Wed, 14 Sep 2022 11:30:47 +0200 Subject: [PATCH] feat(dreal): ajoute les titres en attente de la Dreal sur le tableau de bord (#184) --- package-lock.json | 16 +- packages/api/.prettierignore | 1 + packages/api/package.json | 2 +- .../src/api/graphql/resolvers/metas.test.ts | 10 +- .../api/src/api/graphql/resolvers/metas.ts | 20 +- packages/api/src/api/rest/titres.ts | 98 +- .../business/rules-demarches/_utils.test.ts | 8 +- .../__snapshots__/oct.machine.test.ts.snap | 22 +- .../business/rules-demarches/arm/oct.cas.json | 3651 +---------------- .../rules-demarches/arm/oct.machine.test.ts | 588 +-- .../rules-demarches/arm/oct.machine.ts | 516 ++- .../business/rules-demarches/axm/oct.cas.json | 1 + .../rules-demarches/axm/oct.machine.test.ts | 373 ++ .../rules-demarches/axm/oct.machine.ts | 855 ++++ .../business/rules-demarches/axm/oct.test.ts | 267 -- .../src/business/rules-demarches/axm/oct.ts | 222 - .../rules-demarches/definitions.test.ts | 6 +- .../business/rules-demarches/definitions.ts | 19 +- .../rules-demarches/machine-common.test.ts | 75 + .../rules-demarches/machine-common.ts | 81 + .../rules-demarches/machine-helper.test.ts | 103 +- .../rules-demarches/machine-helper.ts | 401 +- .../rules-demarches/machine-test-helper.ts | 63 +- .../src/business/rules-demarches/machines.ts | 4 + .../titre-demarche-depot-demande-date-find.ts | 4 +- .../titre-demarche-statut-id-find.test.ts | 2 +- .../rules/titre-demarche-statut-id-find.ts | 9 +- .../src/business/utils/titre-etapes-sort.ts | 16 +- .../titre-demarche-etat-validate.test.ts | 33 +- .../titre-demarche-etat-validate.ts | 38 +- .../api/src/tools/demarches/tests-creation.ts | 156 +- packages/common/src/titres.ts | 1 + .../pure-dreal-dashboard.stories.storyshot | 591 ++- .../dashboard/pure-dreal-dashboard.stories.ts | 12 +- .../dashboard/pure-dreal-dashboard.vue | 18 +- 35 files changed, 2998 insertions(+), 5284 deletions(-) create mode 100644 packages/api/src/business/rules-demarches/axm/oct.cas.json create mode 100644 packages/api/src/business/rules-demarches/axm/oct.machine.test.ts create mode 100644 packages/api/src/business/rules-demarches/axm/oct.machine.ts delete mode 100644 packages/api/src/business/rules-demarches/axm/oct.test.ts delete mode 100644 packages/api/src/business/rules-demarches/axm/oct.ts create mode 100644 packages/api/src/business/rules-demarches/machine-common.test.ts create mode 100644 packages/api/src/business/rules-demarches/machine-common.ts create mode 100644 packages/api/src/business/rules-demarches/machines.ts diff --git a/package-lock.json b/package-lock.json index a27978a6f..31e27e6a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38041,9 +38041,9 @@ "dev": true }, "node_modules/xstate": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.32.1.tgz", - "integrity": "sha512-QYUd+3GkXZ8i6qdixnOn28bL3EvA++LONYL/EMWwKlFSh/hiLndJ8YTnz77FDs+JUXcwU7NZJg7qoezoRHc4GQ==", + "version": "4.33.4", + "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.33.4.tgz", + "integrity": "sha512-3giWybQ8XvAr+3tDENlGduR4XREmiUOVxKRjdqFEe6g8eD8UrYhTth3OyLHX/sR9r/9GY2t/LbjfkCC8XFfv4Q==", "funding": { "type": "opencollective", "url": "https://opencollective.com/xstate" @@ -38238,7 +38238,7 @@ "tus-node-server": "^0.7.1", "typescript": "^4.7.4", "xlsx": "^0.18.5", - "xstate": "^4.32.1" + "xstate": "^4.33.4" }, "devDependencies": { "@jest/types": "^28.1.3", @@ -55579,7 +55579,7 @@ "@types/proj4": "^2.5.2", "@types/shpjs": "^3.4.1", "@types/sql-formatter": "^2.3.0", - "@types/stream-json": "*", + "@types/stream-json": "^1.7.2", "@types/supertest": "^2.0.12", "@typescript-eslint/eslint-plugin": "^5.34.0", "@typescript-eslint/parser": "^5.34.0", @@ -82190,9 +82190,9 @@ "dev": true }, "xstate": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.32.1.tgz", - "integrity": "sha512-QYUd+3GkXZ8i6qdixnOn28bL3EvA++LONYL/EMWwKlFSh/hiLndJ8YTnz77FDs+JUXcwU7NZJg7qoezoRHc4GQ==" + "version": "4.33.4", + "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.33.4.tgz", + "integrity": "sha512-3giWybQ8XvAr+3tDENlGduR4XREmiUOVxKRjdqFEe6g8eD8UrYhTth3OyLHX/sR9r/9GY2t/LbjfkCC8XFfv4Q==" }, "xtend": { "version": "4.0.2", diff --git a/packages/api/.prettierignore b/packages/api/.prettierignore index e11e6ac81..8e8f25e34 100644 --- a/packages/api/.prettierignore +++ b/packages/api/.prettierignore @@ -7,3 +7,4 @@ files node_modules sources CHANGELOG.md +oct.cas.json diff --git a/packages/api/package.json b/packages/api/package.json index 79a4960fc..c2f20a728 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -113,7 +113,7 @@ "tus-node-server": "^0.7.1", "typescript": "^4.7.4", "xlsx": "^0.18.5", - "xstate": "^4.32.1" + "xstate": "^4.33.4" }, "devDependencies": { "@jest/types": "^28.1.3", diff --git a/packages/api/src/api/graphql/resolvers/metas.test.ts b/packages/api/src/api/graphql/resolvers/metas.test.ts index 3c6cc2a31..2d9b5c086 100644 --- a/packages/api/src/api/graphql/resolvers/metas.test.ts +++ b/packages/api/src/api/graphql/resolvers/metas.test.ts @@ -2,6 +2,7 @@ import { etapesTypesPossibleACetteDateOuALaPlaceDeLEtape } from './metas' import TitresDemarches from '../../../database/models/titres-demarches' import { IEtapeType } from '../../../types' import { newDemarcheId } from '../../../database/models/_format/id-create' +import { ArmOctMachine } from '../../../business/rules-demarches/arm/oct.machine' describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () { const demarche: Pick<TitresDemarches, 'etapes'> = { @@ -1256,9 +1257,10 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () { etapesCreation: true } ] - + const machine = new ArmOctMachine() test('modifie une étape existante', () => { const etapes = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape( + machine, demarche, 'etapeId3', '2019-10-11', @@ -1272,6 +1274,7 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () { for (const etape of demarche?.etapes ?? []) { const etapesTypesPossibles = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape( + machine, demarche, etape.id, etape.date, @@ -1291,6 +1294,7 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () { test('ajoute une nouvelle étape à la fin', () => { const etapes = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape( + machine, demarche, undefined, '2022-05-06', @@ -1302,6 +1306,7 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () { test('ajoute une nouvelle étape en plein milieu', () => { const etapes = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape( + machine, demarche, undefined, '2019-12-04', @@ -1331,6 +1336,7 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () { ] } const etapes = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape( + machine, demarche, undefined, '2019-12-04', @@ -1360,6 +1366,7 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () { ] } const etapes = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape( + machine, demarche, undefined, '2019-12-04', @@ -1411,6 +1418,7 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () { ] } const etapes = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape( + machine, demarche, undefined, '2022-07-01', diff --git a/packages/api/src/api/graphql/resolvers/metas.ts b/packages/api/src/api/graphql/resolvers/metas.ts index 08c7c076d..e3a336494 100644 --- a/packages/api/src/api/graphql/resolvers/metas.ts +++ b/packages/api/src/api/graphql/resolvers/metas.ts @@ -34,20 +34,20 @@ import { import { userSuper } from '../../../database/user-super' import { sortedAdministrationTypes } from 'camino-common/src/static/administrations' import { sortedGeoSystemes } from 'camino-common/src/static/geoSystemes' -import { - isEtapesOk, - possibleNextEtapes, - toMachineEtapes -} from '../../../business/rules-demarches/machine-helper' + import { UNITES } from 'camino-common/src/static/unites' import { titreEtapesSortAscByOrdre } from '../../../business/utils/titre-etapes-sort' import TitresDemarches from '../../../database/models/titres-demarches' -import { Etape } from '../../../business/rules-demarches/arm/oct.machine' import { Pays, PaysList } from 'camino-common/src/static/pays' import { Departement, Departements } from 'camino-common/src/static/departement' import { Region, Regions } from 'camino-common/src/static/region' import { EtapesStatuts } from 'camino-common/src/static/etapesStatuts' import { sortedTitresStatuts } from 'camino-common/src/static/titresStatuts' +import { + Etape, + toMachineEtapes +} from '../../../business/rules-demarches/machine-common' +import { CaminoMachines } from '../../../business/rules-demarches/machines' export const devises = async () => devisesGet() @@ -130,6 +130,7 @@ export const demarchesStatuts = async () => { } // VISIBLE_FOR_TESTING export const etapesTypesPossibleACetteDateOuALaPlaceDeLEtape = ( + machine: CaminoMachines, titreDemarche: Pick<TitresDemarches, 'etapes'>, titreEtapeId: string | undefined, date: string, @@ -152,18 +153,18 @@ export const etapesTypesPossibleACetteDateOuALaPlaceDeLEtape = ( etapesApres.push(...toMachineEtapes(sortedEtapes.slice(etapesAvant.length))) } - const etapesPossibles = possibleNextEtapes(etapesAvant).filter(et => { + const etapesPossibles = machine.possibleNextEtapes(etapesAvant).filter(et => { const newEtapes = [...etapesAvant] const items = { ...et, date } newEtapes.push(items) newEtapes.push(...etapesApres) - return isEtapesOk(newEtapes) + return machine.isEtapesOk(newEtapes) }) etapesTypes = etapesTypes.filter(et => - etapesPossibles.map(({ typeId }) => typeId).includes(et.id) + etapesPossibles.map(({ etapeTypeId }) => etapeTypeId).includes(et.id) ) return etapesTypes @@ -240,6 +241,7 @@ const demarcheEtapesTypesGet = async ( if (isDemarcheDefinitionMachine(demarcheDefinition)) { etapesTypes = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape( + demarcheDefinition.machine, titreDemarche, titreEtapeId, date, diff --git a/packages/api/src/api/rest/titres.ts b/packages/api/src/api/rest/titres.ts index 77aff92d9..0ee955c2a 100644 --- a/packages/api/src/api/rest/titres.ts +++ b/packages/api/src/api/rest/titres.ts @@ -26,10 +26,6 @@ import { TitreLink, TitreLinks } from 'camino-common/src/titres' -import { - toMachineEtapes, - whoIsBlocking -} from '../../business/rules-demarches/machine-helper' import { demarcheDefinitionFind, isDemarcheDefinitionMachine @@ -44,6 +40,7 @@ import { titreAdministrationsGet } from '../_format/titres' import { canLinkTitres } from 'camino-common/src/permissions/titres' import { linkTitres } from '../../database/queries/titres-titres' import { checkTitreLinks } from '../../business/validations/titre-links-validate' +import { toMachineEtapes } from '../../business/rules-demarches/machine-common' type MyTitreRef = { type: NonNullable<ITitreReference['type']> } & Omit< ITitreReference, @@ -170,18 +167,22 @@ async function titresArmAvecOctroi( if (!octARM.etapes) { throw new Error('les étapes ne sont pas chargées') } + if (octARM.statutId === 'eco') { + return null + } - const hasMachine = isDemarcheDefinitionMachine( - demarcheDefinitionFind( - titre.typeId, - octARM.typeId, - octARM.etapes, - octARM.id - ) + const dd = demarcheDefinitionFind( + titre.typeId, + octARM.typeId, + octARM.etapes, + octARM.id ) + const hasMachine = isDemarcheDefinitionMachine(dd) const blockedByMe: boolean = hasMachine && - whoIsBlocking(toMachineEtapes(octARM.etapes)).includes(administrationId) + dd.machine + .whoIsBlocking(toMachineEtapes(octARM.etapes)) + .includes(administrationId) // TODO 2022-06-08 wait for typescript to get better at type interpolation return { @@ -246,6 +247,7 @@ type DrealTitreSanitize = NotNullableKeys< interface TitreDrealAvecReferences { titre: DrealTitreSanitize references: MyTitreRef[] + blockedByMe: boolean } export const titresDREAL = async ( req: express.Request, @@ -267,26 +269,36 @@ export const titresDREAL = async ( statutsIds: ['dmi', 'mod', 'val'] } + const titresAutorises = await titresGet( + filters, + { + fields: { id: {} } + }, + user + ) + const titresAutorisesIds = titresAutorises + .filter( + ({ modification, demarchesCreation, travauxCreation }) => + (modification ?? false) || + (demarchesCreation ?? false) || + (travauxCreation ?? false) + ) + .map(({ id }) => id) const titres = await titresGet( - { ...filters, colonne: 'nom' }, + { ...filters, ids: titresAutorisesIds, colonne: 'nom' }, { fields: { type: { id: {} }, references: { type: { id: {} } }, titulaires: { id: {} }, - activites: { id: {} } + activites: { id: {} }, + demarches: { etapes: { id: {} } } } }, - user + userSuper ) const titresFormated: CommonTitreDREAL[] = titres - .filter( - ({ modification, demarchesCreation, travauxCreation }) => - (modification ?? false) || - (demarchesCreation ?? false) || - (travauxCreation ?? false) - ) .map((titre: ITitre): TitreDrealAvecReferences | null => { if (titre.slug === undefined) { return null @@ -316,14 +328,51 @@ export const titresDREAL = async ( throw new Error('le type de référence n’est pas chargé') } - return { titre: titre as DrealTitreSanitize, references } + if (!titre.demarches) { + throw new Error('les démarches ne sont pas chargées') + } + + const octroi = titre.demarches.find( + demarche => demarche.typeId === 'oct' + ) + let blockedByMe = false + if (octroi) { + if (!octroi.etapes) { + throw new Error('les étapes ne sont pas chargées') + } + if (octroi.statutId === 'eco') { + return null + } else { + const dd = demarcheDefinitionFind( + titre.typeId, + octroi.typeId, + octroi.etapes, + octroi.id + ) + const hasMachine = isDemarcheDefinitionMachine(dd) + try { + blockedByMe = + hasMachine && + dd.machine + .whoIsBlocking(toMachineEtapes(octroi.etapes)) + .includes(user.administrationId) + } catch (e) { + console.error( + `Impossible de traiter le titre ${titre.id} car la démarche d'octroi n'est pas valide`, + e + ) + } + } + } + + return { titre: titre as DrealTitreSanitize, references, blockedByMe } }) .filter( ( titre: TitreDrealAvecReferences | null ): titre is TitreDrealAvecReferences => titre !== null ) - .map(({ titre, references }) => { + .map(({ titre, references, blockedByMe }) => { return { id: titre.id, slug: titre.slug, @@ -341,7 +390,8 @@ export const titresDREAL = async ( activitesAbsentes: typeof titre.activitesAbsentes === 'string' ? parseInt(titre.activitesAbsentes, 10) - : titre.activitesAbsentes ?? 0 + : titre.activitesAbsentes ?? 0, + enAttenteDeDREAL: blockedByMe } }) diff --git a/packages/api/src/business/rules-demarches/_utils.test.ts b/packages/api/src/business/rules-demarches/_utils.test.ts index 67b590de4..35fcd571c 100644 --- a/packages/api/src/business/rules-demarches/_utils.test.ts +++ b/packages/api/src/business/rules-demarches/_utils.test.ts @@ -24,7 +24,7 @@ import { TitreTypeId } from 'camino-common/src/static/titresTypes' import { newDemarcheId } from '../../database/models/_format/id-create' test('teste EtatsValidate', () => { - const octEtatsValidate = demarcheEtatsValidate('oct', 'axm', '2021-01-01') + const octEtatsValidate = demarcheEtatsValidate('ren', 'arm', '2021-01-01') expect(octEtatsValidate).toBeTruthy() expect(octEtatsValidate([], {})).toHaveLength(0) @@ -60,7 +60,7 @@ const elementsGet = <T>(fileName: string): T[] => { ) } -const etapesTypesGet = (demarcheTypeId: string, titreTypeId: string) => { +export const etapesTypesGet = (demarcheTypeId: string, titreTypeId: string) => { const titresTypesDemarchesTypesEtapesTypes = elementsGet<ITitreTypeDemarcheTypeEtapeType>( 'titres-types--demarches-types--etapes-types.json' @@ -87,7 +87,7 @@ const etapesTypesGet = (demarcheTypeId: string, titreTypeId: string) => { ) } -const demarcheEtatsValidate = ( +export const demarcheEtatsValidate = ( demarcheTypeId: string, titreTypeId: TitreTypeId, date: string @@ -135,5 +135,3 @@ const demarcheEtatsValidate = ( ) } } - -export { demarcheEtatsValidate, etapesTypesGet } diff --git a/packages/api/src/business/rules-demarches/arm/__snapshots__/oct.machine.test.ts.snap b/packages/api/src/business/rules-demarches/arm/__snapshots__/oct.machine.test.ts.snap index dbfbeff50..ff2f23391 100644 --- a/packages/api/src/business/rules-demarches/arm/__snapshots__/oct.machine.test.ts.snap +++ b/packages/api/src/business/rules-demarches/arm/__snapshots__/oct.machine.test.ts.snap @@ -1,23 +1,23 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`vérifie l’arbre d’octroi d’ARM ne peut pas créer 2 "mfr" 1`] = `"Error: cannot execute step: '{\\"typeId\\":\\"mfr\\",\\"statutId\\":\\"fai\\",\\"date\\":\\"2020-01-03\\"}' after '[\\"mfr_fai\\",\\"mdp_fai\\"]'. The event {\\"type\\":\\"FAIRE_DEMANDE\\",\\"mecanise\\":false,\\"franchissements\\":null} should be one of 'MODIFIER_DEMANDE,DESISTER_PAR_LE_DEMANDEUR,CLASSER_SANS_SUITE,PAYER_FRAIS_DE_DOSSIER'"`; +exports[`vérifie l’arbre d’octroi d’ARM ne peut pas créer 2 "mfr" 1`] = `"Error: cannot execute step: '{\\"etapeTypeId\\":\\"mfr\\",\\"etapeStatutId\\":\\"fai\\",\\"date\\":\\"2020-01-03\\"}' after '[\\"mfr_fai\\",\\"mdp_fai\\"]'. The event {\\"type\\":\\"FAIRE_DEMANDE\\",\\"mecanise\\":false,\\"franchissements\\":null} should be one of 'MODIFIER_DEMANDE,DESISTER_PAR_LE_DEMANDEUR,CLASSER_SANS_SUITE,PAYER_FRAIS_DE_DOSSIER'"`; -exports[`vérifie l’arbre d’octroi d’ARM ne peut pas créer deux "des" 1`] = `"Error: cannot execute step: '{\\"typeId\\":\\"des\\",\\"statutId\\":\\"fai\\",\\"date\\":\\"2020-01-04\\"}' after '[\\"mfr_fai\\",\\"mdp_fai\\",\\"des_fai\\"]'. The event {\\"type\\":\\"DESISTER_PAR_LE_DEMANDEUR\\"} should be one of 'VALIDER_FRAIS_DE_DOSSIER'"`; +exports[`vérifie l’arbre d’octroi d’ARM ne peut pas créer deux "des" 1`] = `"Error: cannot execute step: '{\\"etapeTypeId\\":\\"des\\",\\"etapeStatutId\\":\\"fai\\",\\"date\\":\\"2020-01-04\\"}' after '[\\"mfr_fai\\",\\"mdp_fai\\",\\"des_fai\\"]'. The event {\\"type\\":\\"DESISTER_PAR_LE_DEMANDEUR\\"} should be one of 'VALIDER_FRAIS_DE_DOSSIER'"`; -exports[`vérifie l’arbre d’octroi d’ARM ne peut pas créer une "css" après une "des" 1`] = `"Error: cannot execute step: '{\\"typeId\\":\\"css\\",\\"statutId\\":\\"fai\\",\\"date\\":\\"2020-01-05\\"}' after '[\\"mfr_fai\\",\\"mdp_fai\\",\\"des_fai\\"]'. The event {\\"type\\":\\"CLASSER_SANS_SUITE\\"} should be one of 'VALIDER_FRAIS_DE_DOSSIER'"`; +exports[`vérifie l’arbre d’octroi d’ARM ne peut pas créer une "css" après une "des" 1`] = `"Error: cannot execute step: '{\\"etapeTypeId\\":\\"css\\",\\"etapeStatutId\\":\\"fai\\",\\"date\\":\\"2020-01-05\\"}' after '[\\"mfr_fai\\",\\"mdp_fai\\",\\"des_fai\\"]'. The event {\\"type\\":\\"CLASSER_SANS_SUITE\\"} should be one of 'VALIDER_FRAIS_DE_DOSSIER'"`; -exports[`vérifie l’arbre d’octroi d’ARM ne peut pas créer une "mno" après la "aca" si le titre n’est pas mécanisé 1`] = `"Error: cannot execute step: '{\\"typeId\\":\\"mnb\\",\\"statutId\\":\\"fai\\",\\"date\\":\\"2020-01-04\\"}' after '[\\"mfr_fai\\",\\"mdp_fai\\",\\"pfd_fai\\",\\"mcp_com\\",\\"vfd_fai\\",\\"mcr_fav\\",\\"eof_fai\\",\\"aof_fav\\",\\"sca_fai\\",\\"aca_fav\\"]'. The event {\\"type\\":\\"NOTIFIER_DEMANDEUR_AVIS_FAVORABLE_CARM\\"} should be one of 'SIGNER_AUTORISATION_DE_RECHERCHE_MINIERE,DESISTER_PAR_LE_DEMANDEUR,CLASSER_SANS_SUITE'"`; +exports[`vérifie l’arbre d’octroi d’ARM ne peut pas créer une "mno" après la "aca" si le titre n’est pas mécanisé 1`] = `"Error: cannot execute step: '{\\"etapeTypeId\\":\\"mnb\\",\\"etapeStatutId\\":\\"fai\\",\\"date\\":\\"2020-01-04\\"}' after '[\\"mfr_fai\\",\\"mdp_fai\\",\\"pfd_fai\\",\\"mcp_com\\",\\"vfd_fai\\",\\"mcr_fav\\",\\"eof_fai\\",\\"aof_fav\\",\\"sca_fai\\",\\"aca_fav\\"]'. The event {\\"type\\":\\"NOTIFIER_DEMANDEUR_AVIS_FAVORABLE_CARM\\"} should be one of 'SIGNER_AUTORISATION_DE_RECHERCHE_MINIERE,DESISTER_PAR_LE_DEMANDEUR,CLASSER_SANS_SUITE'"`; -exports[`vérifie l’arbre d’octroi d’ARM ne peut pas créer une étape "{ typeId: 'mcb', statutId: 'fai', date: '2020-01-01' }" si il n’existe pas d’autres étapes 1`] = `"Error: cannot execute step: '{\\"typeId\\":\\"mcb\\",\\"statutId\\":\\"fai\\",\\"date\\":\\"2020-01-01\\"}' after '[]'. The event {\\"type\\":\\"DEMANDER_COMPLEMENTS_RDE\\"} should be one of 'REFUSER_RDE,ACCEPTER_RDE,FAIRE_DEMANDE,PAYER_FRAIS_DE_DOSSIER,DEMANDER_MODIFICATION_DE_LA_DEMANDE,EXEMPTER_DAE'"`; +exports[`vérifie l’arbre d’octroi d’ARM ne peut pas créer une étape "{ etapeTypeId: 'mcb', etapeStatutId: 'fai', date: '2020-01-01' }" si il n’existe pas d’autres étapes 1`] = `"Error: cannot execute step: '{\\"etapeTypeId\\":\\"mcb\\",\\"etapeStatutId\\":\\"fai\\",\\"date\\":\\"2020-01-01\\"}' after '[]'. The event {\\"type\\":\\"DEMANDER_COMPLEMENTS_RDE\\"} should be one of 'REFUSER_RDE,ACCEPTER_RDE,FAIRE_DEMANDE,PAYER_FRAIS_DE_DOSSIER,DEMANDER_MODIFICATION_DE_LA_DEMANDE,EXEMPTER_DAE'"`; -exports[`vérifie l’arbre d’octroi d’ARM ne peut pas créer une étape "{ typeId: 'mcd', statutId: 'fai', date: '2020-01-01' }" si il n’existe pas d’autres étapes 1`] = `"Error: cannot execute step: '{\\"typeId\\":\\"mcd\\",\\"statutId\\":\\"fai\\",\\"date\\":\\"2020-01-01\\"}' after '[]'. The event {\\"type\\":\\"DEMANDER_COMPLEMENTS_DAE\\"} should be one of 'REFUSER_RDE,ACCEPTER_RDE,FAIRE_DEMANDE,PAYER_FRAIS_DE_DOSSIER,DEMANDER_MODIFICATION_DE_LA_DEMANDE,EXEMPTER_DAE'"`; +exports[`vérifie l’arbre d’octroi d’ARM ne peut pas créer une étape "{ etapeTypeId: 'mcd', etapeStatutId: 'fai', date: '2020-01-01' }" si il n’existe pas d’autres étapes 1`] = `"Error: cannot execute step: '{\\"etapeTypeId\\":\\"mcd\\",\\"etapeStatutId\\":\\"fai\\",\\"date\\":\\"2020-01-01\\"}' after '[]'. The event {\\"type\\":\\"DEMANDER_COMPLEMENTS_DAE\\"} should be one of 'REFUSER_RDE,ACCEPTER_RDE,FAIRE_DEMANDE,PAYER_FRAIS_DE_DOSSIER,DEMANDER_MODIFICATION_DE_LA_DEMANDE,EXEMPTER_DAE'"`; -exports[`vérifie l’arbre d’octroi d’ARM ne peut pas créer une étape "mcp" sans "mdp" 1`] = `"Error: cannot execute step: '{\\"typeId\\":\\"mcp\\",\\"statutId\\":\\"com\\",\\"date\\":\\"2022-04-16\\"}' after '[\\"mfr_fai\\"]'. The event {\\"type\\":\\"ACCEPTER_COMPLETUDE\\"} should be one of 'DEPOSER_DEMANDE,PAYER_FRAIS_DE_DOSSIER'"`; +exports[`vérifie l’arbre d’octroi d’ARM ne peut pas créer une étape "mcp" sans "mdp" 1`] = `"Error: cannot execute step: '{\\"etapeTypeId\\":\\"mcp\\",\\"etapeStatutId\\":\\"com\\",\\"date\\":\\"2022-04-16\\"}' after '[\\"mfr_fai\\"]'. The event {\\"type\\":\\"ACCEPTER_COMPLETUDE\\"} should be one of 'DEPOSER_DEMANDE,PAYER_FRAIS_DE_DOSSIER'"`; -exports[`vérifie l’arbre d’octroi d’ARM ne peut pas déplacer une étape "mdp" sans "mfr" 1`] = `"Error: cannot execute step: '{\\"typeId\\":\\"mdp\\",\\"statutId\\":\\"fai\\",\\"date\\":\\"2020-02-02\\"}' after '[]'. The event {\\"type\\":\\"DEPOSER_DEMANDE\\"} should be one of 'REFUSER_RDE,ACCEPTER_RDE,FAIRE_DEMANDE,PAYER_FRAIS_DE_DOSSIER,DEMANDER_MODIFICATION_DE_LA_DEMANDE,EXEMPTER_DAE'"`; +exports[`vérifie l’arbre d’octroi d’ARM ne peut pas déplacer une étape "mdp" sans "mfr" 1`] = `"Error: cannot execute step: '{\\"etapeTypeId\\":\\"mdp\\",\\"etapeStatutId\\":\\"fai\\",\\"date\\":\\"2020-02-02\\"}' after '[]'. The event {\\"type\\":\\"DEPOSER_DEMANDE\\"} should be one of 'REFUSER_RDE,ACCEPTER_RDE,FAIRE_DEMANDE,PAYER_FRAIS_DE_DOSSIER,DEMANDER_MODIFICATION_DE_LA_DEMANDE,EXEMPTER_DAE'"`; -exports[`vérifie l’arbre d’octroi d’ARM ne peut pas faire de mfr non mécanisée après une dae 1`] = `"Error: cannot execute step: '{\\"typeId\\":\\"mfr\\",\\"statutId\\":\\"fai\\",\\"date\\":\\"2021-02-25\\",\\"contenu\\":{\\"arm\\":{\\"mecanise\\":false}}}' after '[\\"dae_exe\\"]'. The event {\\"type\\":\\"FAIRE_DEMANDE\\",\\"mecanise\\":false,\\"franchissements\\":null} should be one of 'FAIRE_DEMANDE,PAYER_FRAIS_DE_DOSSIER,REFUSER_RDE,ACCEPTER_RDE'"`; +exports[`vérifie l’arbre d’octroi d’ARM ne peut pas faire de mfr non mécanisée après une dae 1`] = `"Error: cannot execute step: '{\\"etapeTypeId\\":\\"mfr\\",\\"etapeStatutId\\":\\"fai\\",\\"date\\":\\"2021-02-25\\",\\"contenu\\":{\\"arm\\":{\\"mecanise\\":false}}}' after '[\\"dae_exe\\"]'. The event {\\"type\\":\\"FAIRE_DEMANDE\\",\\"mecanise\\":false,\\"franchissements\\":null} should be one of 'FAIRE_DEMANDE,PAYER_FRAIS_DE_DOSSIER,REFUSER_RDE,ACCEPTER_RDE'"`; -exports[`vérifie l’arbre d’octroi d’ARM ne peut pas faire de mfr non mécanisée après une rde 1`] = `"Error: cannot execute step: '{\\"typeId\\":\\"mfr\\",\\"statutId\\":\\"fai\\",\\"date\\":\\"2021-02-25\\",\\"contenu\\":{\\"arm\\":{\\"mecanise\\":false}}}' after '[\\"rde_fav\\"]'. The event {\\"type\\":\\"FAIRE_DEMANDE\\",\\"mecanise\\":false,\\"franchissements\\":null} should be one of 'FAIRE_DEMANDE,PAYER_FRAIS_DE_DOSSIER,DEMANDER_MODIFICATION_DE_LA_DEMANDE,EXEMPTER_DAE'"`; +exports[`vérifie l’arbre d’octroi d’ARM ne peut pas faire de mfr non mécanisée après une rde 1`] = `"Error: cannot execute step: '{\\"etapeTypeId\\":\\"mfr\\",\\"etapeStatutId\\":\\"fai\\",\\"date\\":\\"2021-02-25\\",\\"contenu\\":{\\"arm\\":{\\"mecanise\\":false}}}' after '[\\"rde_fav\\"]'. The event {\\"type\\":\\"FAIRE_DEMANDE\\",\\"mecanise\\":false,\\"franchissements\\":null} should be one of 'FAIRE_DEMANDE,PAYER_FRAIS_DE_DOSSIER,DEMANDER_MODIFICATION_DE_LA_DEMANDE,EXEMPTER_DAE'"`; -exports[`vérifie l’arbre d’octroi d’ARM ne peut pas faire une "mfr" non mécanisée avec un franchissement d’eau 1`] = `"Error: cannot execute step: '{\\"typeId\\":\\"mfr\\",\\"statutId\\":\\"fai\\",\\"date\\":\\"2019-12-10\\",\\"contenu\\":{\\"arm\\":{\\"mecanise\\":false,\\"franchissements\\":3}}}' after '[]'. The event {\\"type\\":\\"FAIRE_DEMANDE\\",\\"mecanise\\":false,\\"franchissements\\":3} should be one of 'REFUSER_RDE,ACCEPTER_RDE,FAIRE_DEMANDE,PAYER_FRAIS_DE_DOSSIER,DEMANDER_MODIFICATION_DE_LA_DEMANDE,EXEMPTER_DAE'"`; +exports[`vérifie l’arbre d’octroi d’ARM ne peut pas faire une "mfr" non mécanisée avec un franchissement d’eau 1`] = `"Error: cannot execute step: '{\\"etapeTypeId\\":\\"mfr\\",\\"etapeStatutId\\":\\"fai\\",\\"date\\":\\"2019-12-10\\",\\"contenu\\":{\\"arm\\":{\\"mecanise\\":false,\\"franchissements\\":3}}}' after '[]'. The event {\\"type\\":\\"FAIRE_DEMANDE\\",\\"mecanise\\":false,\\"franchissements\\":3} should be one of 'REFUSER_RDE,ACCEPTER_RDE,FAIRE_DEMANDE,PAYER_FRAIS_DE_DOSSIER,DEMANDER_MODIFICATION_DE_LA_DEMANDE,EXEMPTER_DAE'"`; diff --git a/packages/api/src/business/rules-demarches/arm/oct.cas.json b/packages/api/src/business/rules-demarches/arm/oct.cas.json index a272ef1fc..6f6849537 100644 --- a/packages/api/src/business/rules-demarches/arm/oct.cas.json +++ b/packages/api/src/business/rules-demarches/arm/oct.cas.json @@ -1,3650 +1 @@ -[ - { - "id": 0, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "fre" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "fav" }, - { "date": "11", "typeId": "mnb", "statutId": "fai" }, - { "date": "12", "typeId": "css", "statutId": "fai" } - ] - }, - { - "id": 1, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 6 } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "dae", "statutId": "exe" }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "mcb", "statutId": "fai" }, - { - "date": "9", - "typeId": "rcb", - "statutId": "fai", - "contenu": { "arm": { "franchissements": 6 } } - }, - { - "date": "10", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 7 } } - }, - { "date": "11", "typeId": "aof", "statutId": "def" }, - { "date": "12", "typeId": "sca", "statutId": "fai" }, - { "date": "13", "typeId": "aca", "statutId": "def" } - ] - }, - { - "id": 2, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "1", "typeId": "dae", "statutId": "exe" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "mcb", "statutId": "fai" }, - { - "date": "6", - "typeId": "rcb", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 4 } } - }, - { "date": "7", "typeId": "vfd", "statutId": "fai" }, - { "date": "8", "typeId": "mcr", "statutId": "fav" }, - { - "date": "9", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 4 } } - }, - { "date": "10", "typeId": "eof", "statutId": "fai" }, - { "date": "11", "typeId": "aof", "statutId": "fav" }, - { "date": "12", "typeId": "sca", "statutId": "fai" }, - { "date": "13", "typeId": "aca", "statutId": "fav" }, - { "date": "14", "typeId": "mnb", "statutId": "fai" }, - { "date": "15", "typeId": "pfc", "statutId": "fai" }, - { "date": "16", "typeId": "vfc", "statutId": "fai" }, - { - "date": "17", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 3, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 5 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "mcb", "statutId": "fai" }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "edm", "statutId": "fav" }, - { - "date": "10", - "typeId": "rde", - "statutId": "def", - "contenu": { "arm": { "franchissements": 5 } } - }, - { "date": "11", "typeId": "aof", "statutId": "def" }, - { "date": "12", "typeId": "sca", "statutId": "fai" }, - { "date": "13", "typeId": "aca", "statutId": "def" }, - { "date": "14", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 4, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "edm", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "fav" }, - { - "date": "11", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 5, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 3 } } - }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 3 } } - }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mdp", "statutId": "fai" }, - { "date": "5", "typeId": "mcp", "statutId": "com" }, - { "date": "6", "typeId": "vfd", "statutId": "fai" }, - { "date": "7", "typeId": "mcr", "statutId": "fav" }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "aof", "statutId": "def" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 6, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 7 } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "dae", "statutId": "exe" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { - "date": "9", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 7 } } - }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 7, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 7 } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "dae", "statutId": "exe" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { - "date": "9", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 7 } } - }, - { - "date": "10", - "typeId": "mod", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "11", "typeId": "css", "statutId": "fai" } - ] - }, - { - "id": 8, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "def" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "ajo" }, - { "date": "11", "typeId": "mna", "statutId": "fai" }, - { "date": "12", "typeId": "css", "statutId": "fai" } - ] - }, - { - "id": 9, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 6 } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "dae", "statutId": "exe" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { - "date": "9", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 6 } } - }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 10, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 11 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { - "date": "5", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 11 } } - }, - { "date": "6", "typeId": "vfd", "statutId": "fai" }, - { "date": "7", "typeId": "mcr", "statutId": "fav" }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 11, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 4 } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { - "date": "9", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 4 } } - }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 12, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "2", "typeId": "dae", "statutId": "exe" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { "date": "9", "typeId": "mcb", "statutId": "fai" }, - { - "date": "10", - "typeId": "rcb", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 5 } } - }, - { - "date": "11", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 5 } } - }, - { "date": "12", "typeId": "sca", "statutId": "fai" }, - { "date": "13", "typeId": "aca", "statutId": "fav" }, - { "date": "14", "typeId": "mnb", "statutId": "fai" }, - { "date": "15", "typeId": "css", "statutId": "fai" } - ] - }, - { - "id": 13, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 10 } } - }, - { "date": "1", "typeId": "dae", "statutId": "exe" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { - "date": "7", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 10 } } - }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "aof", "statutId": "def" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "def" }, - { "date": "12", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 14, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "des", "statutId": "fai" } - ] - }, - { - "id": 15, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fav" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "fav" }, - { - "date": "10", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 16, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": {} } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fav" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "fav" }, - { - "date": "10", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 17, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "edm", "statutId": "fav" }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 18, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 13 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { - "date": "8", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 13 } } - }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 19, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 9 } } - }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { - "date": "5", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 9 } } - }, - { "date": "6", "typeId": "vfd", "statutId": "fai" }, - { "date": "7", "typeId": "mcr", "statutId": "fav" }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 20, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "fav" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "fav" }, - { - "date": "11", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 21, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 3 } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { - "date": "9", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 3 } } - }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 22, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 7 } } - }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { - "date": "9", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 7 } } - }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 23, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "def" }, - { - "date": "9", - "typeId": "rde", - "statutId": "def", - "contenu": { "arm": { "franchissements": 14 } } - }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "ajo" }, - { "date": "12", "typeId": "mna", "statutId": "fai" }, - { "date": "13", "typeId": "sca", "statutId": "fai" }, - { "date": "14", "typeId": "aca", "statutId": "def" } - ] - }, - { - "id": 24, - "etapes": [ - { "date": "0", "typeId": "mfr", "statutId": "fai" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "fav" }, - { "date": "8", "typeId": "aof", "statutId": "def" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "def" }, - { "date": "11", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 25, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fav" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "fav" }, - { - "date": "10", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 26, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fav" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "fav" }, - { - "date": "10", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 27, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fav" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "fav" }, - { - "date": "10", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "11", "typeId": "mns", "statutId": "fai" } - ] - }, - { - "id": 28, - "etapes": [ - { "date": "0", "typeId": "mfr", "statutId": "fai" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fav" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "fav" }, - { - "date": "10", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "11", "typeId": "mns", "statutId": "fai" } - ] - }, - { - "id": 29, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false, "franchissements": 0 } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "def" }, - { "date": "8", "typeId": "aof", "statutId": "def" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "def" } - ] - }, - { - "id": 30, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false, "franchissements": 0 } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "fav" }, - { "date": "8", "typeId": "aof", "statutId": "def" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "def" }, - { "date": "11", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 31, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fav" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "fav" }, - { - "date": "10", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 32, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 5 } } - }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "edm", "statutId": "def" }, - { "date": "9", "typeId": "aof", "statutId": "def" }, - { "date": "10", "typeId": "css", "statutId": "fai" } - ] - }, - { - "id": 33, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "fav" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "fav" }, - { - "date": "11", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 34, - "etapes": [ - { "date": "0", "typeId": "mfr", "statutId": "fai" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fav" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "fav" }, - { - "date": "10", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 35, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 9 } } - }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { - "date": "9", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 9 } } - }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 36, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 11 } } - }, - { "date": "1", "typeId": "dae", "statutId": "exe" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { - "date": "7", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 11 } } - }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "edm", "statutId": "fav" }, - { "date": "10", "typeId": "aof", "statutId": "fav" }, - { "date": "11", "typeId": "sca", "statutId": "fai" }, - { "date": "12", "typeId": "aca", "statutId": "fav" }, - { "date": "13", "typeId": "mnb", "statutId": "fai" }, - { "date": "14", "typeId": "pfc", "statutId": "fai" }, - { "date": "15", "typeId": "vfc", "statutId": "fai" }, - { - "date": "16", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 37, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { - "date": "5", - "typeId": "mod", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "6", "typeId": "vfd", "statutId": "fai" }, - { "date": "7", "typeId": "mcr", "statutId": "fav" }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "css", "statutId": "fai" } - ] - }, - { - "id": 38, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 3 } } - }, - { "date": "1", "typeId": "dae", "statutId": "exe" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { - "date": "8", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 3 } } - }, - { "date": "9", "typeId": "edm", "statutId": "fav" }, - { "date": "10", "typeId": "aof", "statutId": "def" }, - { "date": "11", "typeId": "sca", "statutId": "fai" }, - { "date": "12", "typeId": "aca", "statutId": "def" }, - { "date": "13", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 39, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "def" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "def" }, - { "date": "10", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 40, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "fav" }, - { "date": "8", "typeId": "aof", "statutId": "def" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "def" }, - { "date": "11", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 41, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "def" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "def" }, - { "date": "10", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 42, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fre" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "fav" }, - { - "date": "10", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 43, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "def" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "def" }, - { "date": "10", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 44, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "def" }, - { "date": "8", "typeId": "aof", "statutId": "def" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "fav" }, - { - "date": "11", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 45, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 10 } } - }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { - "date": "5", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 10 } } - }, - { "date": "6", "typeId": "vfd", "statutId": "fai" }, - { "date": "7", "typeId": "mcr", "statutId": "fav" }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "css", "statutId": "fai" } - ] - }, - { - "id": 46, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 10 } } - }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 10 } } - }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mdp", "statutId": "fai" }, - { "date": "5", "typeId": "mcp", "statutId": "com" }, - { "date": "6", "typeId": "vfd", "statutId": "fai" }, - { "date": "7", "typeId": "mcr", "statutId": "fav" }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "edm", "statutId": "fav" }, - { "date": "10", "typeId": "aof", "statutId": "fav" }, - { "date": "11", "typeId": "sca", "statutId": "fai" }, - { "date": "12", "typeId": "aca", "statutId": "fav" }, - { "date": "13", "typeId": "mnb", "statutId": "fai" }, - { "date": "14", "typeId": "css", "statutId": "fai" } - ] - }, - { - "id": 47, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 7 } } - }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { - "date": "9", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 7 } } - }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 48, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "def" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "def" }, - { "date": "10", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 49, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 10 } } - }, - { "date": "1", "typeId": "dae", "statutId": "exe" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { - "date": "6", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 10 } } - }, - { "date": "7", "typeId": "mcr", "statutId": "fav" }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "edm", "statutId": "fav" }, - { "date": "10", "typeId": "aof", "statutId": "def" }, - { "date": "11", "typeId": "sca", "statutId": "fai" }, - { "date": "12", "typeId": "aca", "statutId": "def" }, - { "date": "13", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 50, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 9 } } - }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { - "date": "5", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 9 } } - }, - { "date": "6", "typeId": "des", "statutId": "fai" }, - { "date": "7", "typeId": "vfd", "statutId": "fai" } - ] - }, - { - "id": 51, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "fav" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "fav" }, - { - "date": "11", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 52, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 11 } } - }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { - "date": "5", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 11 } } - }, - { "date": "6", "typeId": "vfd", "statutId": "fai" }, - { "date": "7", "typeId": "mcr", "statutId": "fav" }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 53, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 7 } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "dae", "statutId": "exe" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { - "date": "9", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 7 } } - }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 54, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 8 } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "dae", "statutId": "exe" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "fre" }, - { - "date": "9", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 8 } } - }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 55, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 18 } } - }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcb", "statutId": "fai" }, - { "date": "5", "typeId": "mcp", "statutId": "com" }, - { "date": "6", "typeId": "vfd", "statutId": "fai" }, - { - "date": "7", - "typeId": "rcb", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 18 } } - }, - { - "date": "8", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 18 } } - }, - { "date": "9", "typeId": "mcr", "statutId": "fav" }, - { "date": "10", "typeId": "eof", "statutId": "fai" }, - { "date": "11", "typeId": "aof", "statutId": "fav" }, - { "date": "12", "typeId": "sca", "statutId": "fai" }, - { "date": "13", "typeId": "aca", "statutId": "fav" }, - { "date": "14", "typeId": "mnb", "statutId": "fai" }, - { "date": "15", "typeId": "pfc", "statutId": "fai" }, - { "date": "16", "typeId": "vfc", "statutId": "fai" }, - { - "date": "17", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 56, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 19 } } - }, - { "date": "1", "typeId": "dae", "statutId": "exe" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { - "date": "7", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 19 } } - }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 57, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "def" }, - { "date": "8", "typeId": "aof", "statutId": "def" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "def" } - ] - }, - { - "id": 58, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "def" }, - { "date": "8", "typeId": "aof", "statutId": "def" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "def" } - ] - }, - { - "id": 59, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "def" }, - { "date": "8", "typeId": "aof", "statutId": "def" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "def" } - ] - }, - { - "id": 60, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "def" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "ajo" }, - { "date": "10", "typeId": "mna", "statutId": "fai" }, - { "date": "11", "typeId": "css", "statutId": "fai" } - ] - }, - { - "id": 61, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false, "franchissements": 0 } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "def" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "def" }, - { "date": "10", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 62, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false, "franchissements": 0 } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "def" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "def" }, - { "date": "10", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 63, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false, "franchissements": 0 } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "edm", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "fav" }, - { - "date": "11", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "12", "typeId": "mns", "statutId": "fai" } - ] - }, - { - "id": 64, - "etapes": [ - { "date": "0", "typeId": "mfr", "statutId": "fai" }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fav" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "fav" }, - { - "date": "10", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 65, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "inc" }, - { "date": "4", "typeId": "mcm", "statutId": "fai" }, - { "date": "5", "typeId": "des", "statutId": "fai" } - ] - }, - { - "id": 66, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 9 } } - }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "edm", "statutId": "fav" }, - { "date": "9", "typeId": "mcb", "statutId": "fai" }, - { - "date": "10", - "typeId": "rcb", - "statutId": "fai", - "contenu": { "arm": { "franchissements": 9 } } - }, - { "date": "11", "typeId": "aof", "statutId": "fav" }, - { - "date": "12", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 9 } } - }, - { "date": "13", "typeId": "sca", "statutId": "fai" }, - { "date": "14", "typeId": "aca", "statutId": "fav" }, - { "date": "15", "typeId": "mnb", "statutId": "fai" }, - { "date": "16", "typeId": "pfc", "statutId": "fai" }, - { "date": "17", "typeId": "vfc", "statutId": "fai" }, - { - "date": "18", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "19", "typeId": "aco", "statutId": "fai" } - ] - }, - { - "id": 67, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { "date": "1", "typeId": "dae", "statutId": "exe" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 0 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "edm", "statutId": "fav" }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 68, - "etapes": [ - { "date": "0", "typeId": "mfr", "statutId": "fai" }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "fav" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "fav" }, - { "date": "11", "typeId": "sco", "statutId": "fai" } - ] - }, - { - "id": 69, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "fav" }, - { "date": "8", "typeId": "aof", "statutId": "fre" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "ajo" }, - { "date": "11", "typeId": "mna", "statutId": "fai" }, - { "date": "12", "typeId": "sca", "statutId": "fai" }, - { "date": "13", "typeId": "aca", "statutId": "fav" }, - { - "date": "14", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 70, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "inc" }, - { "date": "4", "typeId": "mcm", "statutId": "fai" }, - { - "date": "5", - "typeId": "rcm", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "6", "typeId": "mcp", "statutId": "com" }, - { "date": "7", "typeId": "vfd", "statutId": "fai" }, - { "date": "8", "typeId": "mcr", "statutId": "fav" }, - { "date": "9", "typeId": "eof", "statutId": "fai" }, - { "date": "10", "typeId": "aof", "statutId": "fav" }, - { "date": "11", "typeId": "sca", "statutId": "fai" }, - { "date": "12", "typeId": "aca", "statutId": "fav" } - ] - }, - { - "id": 71, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 13 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "edm", "statutId": "fav" }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { - "date": "10", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 13 } } - }, - { "date": "11", "typeId": "sca", "statutId": "fai" }, - { "date": "12", "typeId": "aca", "statutId": "fav" }, - { "date": "13", "typeId": "mnb", "statutId": "fai" }, - { "date": "14", "typeId": "pfc", "statutId": "fai" }, - { "date": "15", "typeId": "vfc", "statutId": "fai" }, - { - "date": "16", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 72, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 12 } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "dae", "statutId": "exe" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "edm", "statutId": "fav" }, - { "date": "9", "typeId": "mcb", "statutId": "fai" }, - { - "date": "10", - "typeId": "rcb", - "statutId": "fai", - "contenu": { "arm": { "franchissements": 12 } } - }, - { - "date": "11", - "typeId": "rde", - "statutId": "def", - "contenu": { "arm": { "franchissements": 12 } } - }, - { "date": "12", "typeId": "aof", "statutId": "def" }, - { "date": "13", "typeId": "sca", "statutId": "fai" }, - { "date": "14", "typeId": "aca", "statutId": "ajo" }, - { "date": "15", "typeId": "mna", "statutId": "fai" }, - { "date": "16", "typeId": "sca", "statutId": "fai" }, - { "date": "17", "typeId": "aca", "statutId": "def" } - ] - }, - { - "id": 73, - "etapes": [ - { "date": "0", "typeId": "mfr", "statutId": "fai" }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "fav" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "fav" }, - { "date": "11", "typeId": "sco", "statutId": "fai" } - ] - }, - { - "id": 74, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 10 } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "dae", "statutId": "exe" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "edm", "statutId": "fav" }, - { - "date": "9", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 17 } } - }, - { "date": "10", "typeId": "aof", "statutId": "fav" }, - { "date": "11", "typeId": "sca", "statutId": "fai" }, - { "date": "12", "typeId": "aca", "statutId": "fav" }, - { "date": "13", "typeId": "mnb", "statutId": "fai" }, - { "date": "14", "typeId": "pfc", "statutId": "fai" }, - { "date": "15", "typeId": "vfc", "statutId": "fai" }, - { - "date": "16", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "17", "typeId": "aco", "statutId": "fai" }, - { "date": "18", "typeId": "mnv", "statutId": "fai" } - ] - }, - { - "id": 75, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 7 } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "dae", "statutId": "exe" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { - "date": "5", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 7 } } - }, - { "date": "6", "typeId": "vfd", "statutId": "fai" }, - { "date": "7", "typeId": "mcr", "statutId": "fav" }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 76, - "etapes": [ - { "date": "0", "typeId": "mfr", "statutId": "fai" }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "fav" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "fav" }, - { "date": "11", "typeId": "sco", "statutId": "fai" } - ] - }, - { - "id": 77, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 10 } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 10 } } - }, - { "date": "3", "typeId": "dae", "statutId": "exe" }, - { "date": "4", "typeId": "mdp", "statutId": "fai" }, - { "date": "5", "typeId": "mcp", "statutId": "com" }, - { "date": "6", "typeId": "des", "statutId": "fai" } - ] - }, - { - "id": 78, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 8 } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { - "date": "8", - "typeId": "rde", - "statutId": "def", - "contenu": { "arm": { "franchissements": 8 } } - }, - { "date": "9", "typeId": "aof", "statutId": "def" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "def" }, - { "date": "12", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 79, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 14 } } - }, - { "date": "1", "typeId": "dae", "statutId": "exe" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "mcb", "statutId": "fai" }, - { "date": "6", "typeId": "vfd", "statutId": "fai" }, - { "date": "7", "typeId": "mcr", "statutId": "fav" }, - { "date": "8", "typeId": "edm", "statutId": "fav" }, - { "date": "9", "typeId": "eof", "statutId": "fai" }, - { - "date": "10", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 14 } } - }, - { "date": "11", "typeId": "aof", "statutId": "fre" }, - { "date": "12", "typeId": "sca", "statutId": "fai" }, - { "date": "13", "typeId": "aca", "statutId": "fav" }, - { "date": "14", "typeId": "mnb", "statutId": "fai" }, - { "date": "15", "typeId": "pfc", "statutId": "fai" }, - { "date": "16", "typeId": "vfc", "statutId": "fai" }, - { - "date": "17", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "18", "typeId": "aco", "statutId": "fai" } - ] - }, - { - "id": 80, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 8 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "edm", "statutId": "fav" }, - { "date": "9", "typeId": "aof", "statutId": "fre" }, - { - "date": "10", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 8 } } - }, - { "date": "11", "typeId": "sca", "statutId": "fai" }, - { "date": "12", "typeId": "aca", "statutId": "fav" }, - { "date": "13", "typeId": "mnb", "statutId": "fai" }, - { "date": "14", "typeId": "pfc", "statutId": "fai" }, - { "date": "15", "typeId": "vfc", "statutId": "fai" }, - { - "date": "16", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 81, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 5 } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "dae", "statutId": "exe" }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { - "date": "8", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 5 } } - } - ] - }, - { - "id": 82, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 4 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { - "date": "8", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 4 } } - }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 83, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { "date": "1", "typeId": "dae", "statutId": "exe" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { - "date": "5", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 8 } } - }, - { "date": "6", "typeId": "vfd", "statutId": "fai" }, - { "date": "7", "typeId": "mcr", "statutId": "fav" }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 84, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "fav" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "fav" }, - { - "date": "11", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 85, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 9 } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "edm", "statutId": "fav" }, - { - "date": "9", - "typeId": "rde", - "statutId": "def", - "contenu": { "arm": { "franchissements": 9 } } - }, - { "date": "10", "typeId": "aof", "statutId": "def" }, - { "date": "11", "typeId": "sca", "statutId": "fai" }, - { "date": "12", "typeId": "aca", "statutId": "def" }, - { "date": "13", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 86, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "def" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "def" }, - { "date": "10", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 87, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 9 } } - }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { - "date": "5", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 9 } } - }, - { "date": "6", "typeId": "vfd", "statutId": "fai" }, - { "date": "7", "typeId": "mcr", "statutId": "fav" }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 88, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 13 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "mcb", "statutId": "fai" }, - { - "date": "9", - "typeId": "rcb", - "statutId": "fai", - "contenu": { "arm": { "franchissements": 13 } } - }, - { - "date": "10", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 14 } } - }, - { "date": "11", "typeId": "aof", "statutId": "fav" }, - { "date": "12", "typeId": "sca", "statutId": "fai" }, - { "date": "13", "typeId": "aca", "statutId": "fav" }, - { "date": "14", "typeId": "mnb", "statutId": "fai" }, - { "date": "15", "typeId": "pfc", "statutId": "fai" }, - { "date": "16", "typeId": "vfc", "statutId": "fai" }, - { - "date": "17", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 89, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 9 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "inc" }, - { "date": "5", "typeId": "mcm", "statutId": "fai" }, - { - "date": "6", - "typeId": "rcm", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 9 } } - }, - { "date": "7", "typeId": "mcp", "statutId": "com" }, - { "date": "8", "typeId": "vfd", "statutId": "fai" }, - { "date": "9", "typeId": "mcr", "statutId": "fav" }, - { "date": "10", "typeId": "eof", "statutId": "fai" }, - { "date": "11", "typeId": "mcb", "statutId": "fai" }, - { - "date": "12", - "typeId": "rcb", - "statutId": "fai", - "contenu": { "arm": { "franchissements": 9 } } - } - ] - }, - { - "id": 90, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": {} } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fav" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "fav" }, - { - "date": "10", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 91, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "aco", - "contenu": { "arm": { "mecanise": true, "franchissements": 11 } } - } - ] - }, - { - "id": 92, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 5 } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "dae", "statutId": "exe" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "edm", "statutId": "fav" }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "mcb", "statutId": "fai" }, - { - "date": "10", - "typeId": "rcb", - "statutId": "fai", - "contenu": { "arm": { "franchissements": 5 } } - }, - { - "date": "11", - "typeId": "rde", - "statutId": "def", - "contenu": { "arm": { "franchissements": 5 } } - }, - { "date": "12", "typeId": "aof", "statutId": "def" }, - { "date": "13", "typeId": "sca", "statutId": "fai" }, - { "date": "14", "typeId": "aca", "statutId": "def" } - ] - }, - { - "id": 93, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "des", "statutId": "fai" } - ] - }, - { - "id": 94, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": {} } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fav" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "fav" }, - { - "date": "10", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 95, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { - "date": "5", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 9 } } - }, - { "date": "6", "typeId": "vfd", "statutId": "fai" }, - { "date": "7", "typeId": "mcr", "statutId": "fav" }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "aof", "statutId": "def" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "def" } - ] - }, - { - "id": 96, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 5 } } - }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "edm", "statutId": "fav" }, - { "date": "9", "typeId": "mcb", "statutId": "fai" }, - { - "date": "10", - "typeId": "rde", - "statutId": "def", - "contenu": { "arm": { "franchissements": 5 } } - }, - { "date": "11", "typeId": "aof", "statutId": "def" }, - { "date": "12", "typeId": "sca", "statutId": "fai" }, - { "date": "13", "typeId": "aca", "statutId": "def" }, - { "date": "14", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 97, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": {} } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fav" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "fav" }, - { - "date": "10", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 98, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 1 } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "dae", "statutId": "exe" }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { - "date": "8", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 1 } } - }, - { "date": "9", "typeId": "aof", "statutId": "def" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "ajo" }, - { "date": "12", "typeId": "mna", "statutId": "fai" }, - { "date": "13", "typeId": "sca", "statutId": "fai" }, - { "date": "14", "typeId": "aca", "statutId": "fav" }, - { "date": "15", "typeId": "mnb", "statutId": "fai" }, - { "date": "16", "typeId": "pfc", "statutId": "fai" }, - { "date": "17", "typeId": "vfc", "statutId": "fai" }, - { - "date": "18", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { "id": 99, "etapes": [{ "date": "0", "typeId": "mfr", "statutId": "aco" }] }, - { - "id": 100, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": {} } - }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fav" }, - { "date": "8", "typeId": "sca", "statutId": "fai" }, - { "date": "9", "typeId": "aca", "statutId": "fav" }, - { - "date": "10", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 101, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "aco", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 102, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "aco", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 103, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fav" }, - { "date": "8", "typeId": "sca", "statutId": "fai" } - ] - }, - { - "id": 104, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "aco", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 105, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 2 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "inc" }, - { "date": "5", "typeId": "mcm", "statutId": "fai" }, - { "date": "6", "typeId": "des", "statutId": "fai" }, - { "date": "7", "typeId": "vfd", "statutId": "fai" } - ] - }, - { - "id": 106, - "etapes": [{ "date": "0", "typeId": "mfr", "statutId": "aco" }] - }, - { - "id": 107, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 3 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { - "date": "7", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 3 } } - }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" } - ] - }, - { - "id": 108, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "fav" }, - { "date": "8", "typeId": "sca", "statutId": "fai" } - ] - }, - { - "id": 109, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "inc" }, - { "date": "4", "typeId": "css", "statutId": "fai" } - ] - }, - { - "id": 110, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 10 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "des", "statutId": "fai" } - ] - }, - { - "id": 111, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "des", "statutId": "fai" } - ] - }, - { - "id": 112, - "etapes": [{ "date": "0", "typeId": "mfr", "statutId": "aco" }] - }, - { - "id": 113, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 4 } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "dae", "statutId": "exe" }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { - "date": "8", - "typeId": "rde", - "statutId": "def", - "contenu": { "arm": { "franchissements": 4 } } - }, - { "date": "9", "typeId": "aof", "statutId": "def" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "ajo" }, - { "date": "12", "typeId": "mna", "statutId": "fai" }, - { "date": "13", "typeId": "sca", "statutId": "fai" }, - { "date": "14", "typeId": "aca", "statutId": "def" }, - { "date": "15", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 114, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 12 } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "dae", "statutId": "exe" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { - "date": "8", - "typeId": "rde", - "statutId": "def", - "contenu": { "arm": { "franchissements": 12 } } - }, - { "date": "9", "typeId": "aof", "statutId": "def" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "def" }, - { "date": "12", "typeId": "mnd", "statutId": "fai" } - ] - }, - { - "id": 115, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "def" }, - { "date": "8", "typeId": "sca", "statutId": "fai" } - ] - }, - { - "id": 116, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 3 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" } - ] - }, - { - "id": 117, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "aof", "statutId": "def" }, - { "date": "8", "typeId": "sca", "statutId": "fai" } - ] - }, - { - "id": 118, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "dae", "statutId": "exe" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { - "date": "8", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 5 } } - }, - { "date": "9", "typeId": "aof", "statutId": "fre" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 119, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" } - ] - }, - { - "id": 120, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 12 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" } - ] - }, - { - "id": 121, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 5 } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "dae", "statutId": "exe" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { - "date": "8", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 5 } } - }, - { "date": "9", "typeId": "aof", "statutId": "fre" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 122, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 14 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" } - ] - }, - { - "id": 123, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 9 } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "dae", "statutId": "exe" }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { - "date": "8", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 9 } } - }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "16", "typeId": "aco", "statutId": "fai" }, - { "date": "17", "typeId": "mnv", "statutId": "fai" } - ] - }, - { - "id": 124, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" } - ] - }, - { - "id": 125, - "etapes": [ - { - "date": "0", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 4 } } - }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 4 } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "dae", "statutId": "exe" }, - { "date": "4", "typeId": "pfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcp", "statutId": "com" }, - { "date": "6", "typeId": "vfd", "statutId": "fai" }, - { "date": "7", "typeId": "mcr", "statutId": "fav" }, - { "date": "8", "typeId": "eof", "statutId": "fai" }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "16", "typeId": "aco", "statutId": "fai" } - ] - }, - { - "id": 126, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "inc" }, - { "date": "4", "typeId": "mcm", "statutId": "fai" } - ] - }, - { - "id": 127, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 12 } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "dae", "statutId": "exe" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "edm", "statutId": "fav" }, - { - "date": "9", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 17 } } - }, - { "date": "10", "typeId": "aof", "statutId": "fav" }, - { "date": "11", "typeId": "sca", "statutId": "fai" }, - { "date": "12", "typeId": "aca", "statutId": "fav" }, - { "date": "13", "typeId": "mnb", "statutId": "fai" }, - { "date": "14", "typeId": "pfc", "statutId": "fai" }, - { "date": "15", "typeId": "vfc", "statutId": "fai" }, - { - "date": "16", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "17", "typeId": "aco", "statutId": "fai" }, - { "date": "18", "typeId": "mnv", "statutId": "fai" } - ] - }, - { - "id": 128, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 7 } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "dae", "statutId": "exe" }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "mcb", "statutId": "fai" }, - { - "date": "9", - "typeId": "rde", - "statutId": "def", - "contenu": { "arm": { "franchissements": 7 } } - }, - { "date": "10", "typeId": "aof", "statutId": "def" }, - { "date": "11", "typeId": "sca", "statutId": "fai" } - ] - }, - { - "id": 129, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "des", "statutId": "fai" } - ] - }, - { - "id": 130, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 4 } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" }, - { "date": "2", "typeId": "dae", "statutId": "exe" }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "mcb", "statutId": "fai" }, - { - "date": "9", - "typeId": "rde", - "statutId": "def", - "contenu": { "arm": { "franchissements": 4 } } - }, - { "date": "10", "typeId": "aof", "statutId": "def" }, - { "date": "11", "typeId": "sca", "statutId": "fai" } - ] - }, - { - "id": 131, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 8 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { - "date": "7", - "typeId": "rde", - "statutId": "fav", - "contenu": { "arm": { "franchissements": 8 } } - } - ] - }, - { - "id": 132, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" } - ] - }, - { - "id": 133, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "1", "typeId": "mdp", "statutId": "fai" } - ] - }, - { - "id": 134, - "etapes": [ - { - "date": "0", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 0 } } - }, - { "date": "1", "typeId": "dae", "statutId": "exe" }, - { "date": "2", "typeId": "pfd", "statutId": "fai" }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "vfd", "statutId": "fai" }, - { "date": "6", "typeId": "mcr", "statutId": "fav" }, - { "date": "7", "typeId": "eof", "statutId": "fai" }, - { "date": "8", "typeId": "edm", "statutId": "fav" }, - { "date": "9", "typeId": "aof", "statutId": "fav" }, - { "date": "10", "typeId": "sca", "statutId": "fai" }, - { "date": "11", "typeId": "aca", "statutId": "fav" }, - { "date": "12", "typeId": "mnb", "statutId": "fai" }, - { "date": "13", "typeId": "pfc", "statutId": "fai" }, - { "date": "14", "typeId": "vfc", "statutId": "fai" }, - { - "date": "15", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 135, - "etapes": [ - { "date": "0", "typeId": "pfd", "statutId": "fai" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "mcp", "statutId": "com" }, - { "date": "4", "typeId": "vfd", "statutId": "fai" }, - { "date": "5", "typeId": "mcr", "statutId": "fav" }, - { "date": "6", "typeId": "eof", "statutId": "fai" }, - { "date": "7", "typeId": "edm", "statutId": "fav" }, - { "date": "8", "typeId": "aof", "statutId": "fav" }, - { "date": "9", "typeId": "sca", "statutId": "fai" }, - { "date": "10", "typeId": "aca", "statutId": "fav" }, - { - "date": "11", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": false } } - } - ] - }, - { - "id": 136, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { - "date": "1", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - }, - { "date": "2", "typeId": "mdp", "statutId": "fai" }, - { "date": "3", "typeId": "pfd", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" }, - { "date": "5", "typeId": "mcb", "statutId": "fai" }, - { - "date": "6", - "typeId": "rcb", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 0 } } - }, - { "date": "7", "typeId": "vfd", "statutId": "fai" }, - { "date": "8", "typeId": "mcr", "statutId": "fav" }, - { "date": "9", "typeId": "eof", "statutId": "fai" }, - { "date": "10", "typeId": "aof", "statutId": "fav" }, - { "date": "11", "typeId": "sca", "statutId": "fai" }, - { "date": "12", "typeId": "aca", "statutId": "fav" }, - { "date": "13", "typeId": "mnb", "statutId": "fai" }, - { "date": "14", "typeId": "pfc", "statutId": "fai" }, - { "date": "15", "typeId": "vfc", "statutId": "fai" }, - { - "date": "16", - "typeId": "sco", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true } } - } - ] - }, - { - "id": 137, - "etapes": [ - { "date": "0", "typeId": "dae", "statutId": "exe" }, - { "date": "1", "typeId": "pfd", "statutId": "fai" }, - { - "date": "2", - "typeId": "mfr", - "statutId": "fai", - "contenu": { "arm": { "mecanise": true, "franchissements": 11 } } - }, - { "date": "3", "typeId": "mdp", "statutId": "fai" }, - { "date": "4", "typeId": "mcp", "statutId": "com" } - ] - } -] +[{"id":0,"demarcheStatutId":"cls","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"css","etapeStatutId":"fai"}]},{"id":1,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":6}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"mcb","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"rcb","etapeStatutId":"fai","contenu":{"arm":{"franchissements":6}}},{"date":"10","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":7}}},{"date":"11","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"12","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"aca","etapeStatutId":"def"}]},{"id":2,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"mcb","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"rcb","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":4}}},{"date":"7","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":4}}},{"date":"10","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"14","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":3,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":5}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"mcb","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"rde","etapeStatutId":"def","contenu":{"arm":{"franchissements":5}}},{"date":"11","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"12","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"14","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":4,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":5,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":3}}},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":3}}},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"6","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":6,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":7}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":7}}},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":7,"demarcheStatutId":"cls","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"ajo"},{"date":"11","etapeTypeId":"mna","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"css","etapeStatutId":"fai"}]},{"id":8,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":6}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":6}}},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":9,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":11}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":11}}},{"date":"6","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":10,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":4}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":4}}},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":11,"demarcheStatutId":"cls","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"2","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"mcb","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"rcb","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":5}}},{"date":"11","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":5}}},{"date":"12","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"14","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"css","etapeStatutId":"fai"}]},{"id":12,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":10}}},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":10}}},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"12","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":13,"demarcheStatutId":"des","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"des","etapeStatutId":"fai"}]},{"id":14,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":15,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":16,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":17,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":13}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":13}}},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":18,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":9}}},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":9}}},{"date":"6","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":19,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":20,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":3}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":3}}},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":21,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":7}}},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":7}}},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":22,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"def","contenu":{"arm":{"franchissements":14}}},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"ajo"},{"date":"12","etapeTypeId":"mna","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"aca","etapeStatutId":"def"}]},{"id":23,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"11","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":24,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":25,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":26,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"11","etapeTypeId":"mns","etapeStatutId":"fai"}]},{"id":27,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"11","etapeTypeId":"mns","etapeStatutId":"fai"}]},{"id":28,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false,"franchissements":0}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"def"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"def"}]},{"id":29,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false,"franchissements":0}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"11","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":30,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":31,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":32,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":33,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":9}}},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":9}}},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":34,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":11}}},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":11}}},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":35,"demarcheStatutId":"cls","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"mod","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"6","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"css","etapeStatutId":"fai"}]},{"id":36,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":3}}},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":3}}},{"date":"9","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"11","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"13","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":37,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"10","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":38,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"11","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":39,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"10","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":40,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":41,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"10","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":42,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"def"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":43,"demarcheStatutId":"cls","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":10}}},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":10}}},{"date":"6","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"css","etapeStatutId":"fai"}]},{"id":44,"demarcheStatutId":"cls","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":10}}},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":10}}},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"6","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"css","etapeStatutId":"fai"}]},{"id":45,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":7}}},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":7}}},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":46,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"10","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":47,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":10}}},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":10}}},{"date":"7","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"11","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"13","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":48,"demarcheStatutId":"des","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":9}}},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":9}}},{"date":"6","etapeTypeId":"des","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"vfd","etapeStatutId":"fai"}]},{"id":49,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":50,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":11}}},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":11}}},{"date":"6","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":51,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":7}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":7}}},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":52,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":8}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":8}}},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":53,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":18}}},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcb","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"6","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"rcb","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":18}}},{"date":"8","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":18}}},{"date":"9","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"14","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":54,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":19}}},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":19}}},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":55,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"def"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"def"}]},{"id":56,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"def"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"def"}]},{"id":57,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"def"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"def"}]},{"id":58,"demarcheStatutId":"cls","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"ajo"},{"date":"10","etapeTypeId":"mna","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"css","etapeStatutId":"fai"}]},{"id":59,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false,"franchissements":0}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"10","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":60,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false,"franchissements":0}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"10","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":61,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false,"franchissements":0}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"12","etapeTypeId":"mns","etapeStatutId":"fai"}]},{"id":62,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":63,"demarcheStatutId":"des","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"inc"},{"date":"4","etapeTypeId":"mcm","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"des","etapeStatutId":"fai"}]},{"id":64,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":9}}},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"mcb","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"rcb","etapeStatutId":"fai","contenu":{"arm":{"franchissements":9}}},{"date":"11","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":9}}},{"date":"13","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"15","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"18","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"19","etapeTypeId":"aco","etapeStatutId":"fai"}]},{"id":65,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":0}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":66,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sco","etapeStatutId":"fai"}]},{"id":67,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":13}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":13}}},{"date":"11","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":68,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":12}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"mcb","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"rcb","etapeStatutId":"fai","contenu":{"arm":{"franchissements":12}}},{"date":"11","etapeTypeId":"rde","etapeStatutId":"def","contenu":{"arm":{"franchissements":12}}},{"date":"12","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"13","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"aca","etapeStatutId":"ajo"},{"date":"15","etapeTypeId":"mna","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"aca","etapeStatutId":"def"}]},{"id":69,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sco","etapeStatutId":"fai"}]},{"id":70,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":7}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":7}}},{"date":"6","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":71,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"inc"},{"date":"4","etapeTypeId":"mcm","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rcm","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"6","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"7","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":72,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"ajo"},{"date":"11","etapeTypeId":"mna","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"14","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"15","etapeTypeId":"mns","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"aco","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"mnv","etapeStatutId":"fai"}]},{"id":73,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sco","etapeStatutId":"fai"}]},{"id":74,"demarcheStatutId":"des","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":10}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":10}}},{"date":"3","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"4","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"6","etapeTypeId":"des","etapeStatutId":"fai"}]},{"id":75,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":8}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"rde","etapeStatutId":"def","contenu":{"arm":{"franchissements":8}}},{"date":"9","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"12","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":76,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":14}}},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"mcb","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":14}}},{"date":"11","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"12","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"14","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"18","etapeTypeId":"aco","etapeStatutId":"fai"}]},{"id":77,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":8}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"10","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":8}}},{"date":"11","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":78,"demarcheStatutId":"ins","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":5}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":5}}}]},{"id":79,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":4}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":4}}},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"16","etapeTypeId":"aco","etapeStatutId":"fai"}]},{"id":80,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":8}}},{"date":"6","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"16","etapeTypeId":"aco","etapeStatutId":"fai"}]},{"id":81,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":82,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":9}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"def","contenu":{"arm":{"franchissements":9}}},{"date":"10","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"11","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"13","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":83,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"10","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":84,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":9}}},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":9}}},{"date":"6","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":85,"demarcheStatutId":"ins","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":9}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"inc"},{"date":"5","etapeTypeId":"mcm","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"rcm","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":9}}},{"date":"7","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"8","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"mcb","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"rcb","etapeStatutId":"fai","contenu":{"arm":{"franchissements":9}}}]},{"id":86,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":87,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":5}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"mcb","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"rcb","etapeStatutId":"fai","contenu":{"arm":{"franchissements":5}}},{"date":"11","etapeTypeId":"rde","etapeStatutId":"def","contenu":{"arm":{"franchissements":5}}},{"date":"12","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"13","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"aca","etapeStatutId":"def"}]},{"id":88,"demarcheStatutId":"des","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"des","etapeStatutId":"fai"}]},{"id":89,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":90,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":9}}},{"date":"6","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"def"}]},{"id":91,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":5}}},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"mcb","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"rde","etapeStatutId":"def","contenu":{"arm":{"franchissements":5}}},{"date":"11","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"12","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"14","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":92,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":93,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":1}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":1}}},{"date":"9","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"ajo"},{"date":"12","etapeTypeId":"mna","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"15","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"18","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":94,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{}}},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":95,"demarcheStatutId":"des","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":2}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"inc"},{"date":"5","etapeTypeId":"mcm","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"des","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"vfd","etapeStatutId":"fai"}]},{"id":96,"demarcheStatutId":"ins","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":3}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":3}}},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"}]},{"id":97,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":98,"demarcheStatutId":"des","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":10}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"des","etapeStatutId":"fai"}]},{"id":99,"demarcheStatutId":"des","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"des","etapeStatutId":"fai"}]},{"id":100,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":4}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"rde","etapeStatutId":"def","contenu":{"arm":{"franchissements":4}}},{"date":"9","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"ajo"},{"date":"12","etapeTypeId":"mna","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"15","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":101,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":12}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"rde","etapeStatutId":"def","contenu":{"arm":{"franchissements":12}}},{"date":"9","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"12","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":102,"demarcheStatutId":"ins","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":3}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"}]},{"id":103,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"10","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":104,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"10","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":105,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":5}}},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"16","etapeTypeId":"aco","etapeStatutId":"fai"}]},{"id":106,"demarcheStatutId":"ins","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":12}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"}]},{"id":107,"demarcheStatutId":"ins","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":8}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"}]},{"id":108,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":13}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"mcb","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"rcb","etapeStatutId":"fai","contenu":{"arm":{"franchissements":13}}},{"date":"10","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":14}}},{"date":"11","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"14","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":109,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":110,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":111,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":10}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":17}}},{"date":"10","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"17","etapeTypeId":"aco","etapeStatutId":"fai"},{"date":"18","etapeTypeId":"mnv","etapeStatutId":"fai"}]},{"id":112,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":5}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":5}}},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":113,"demarcheStatutId":"ins","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":8}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"}]},{"id":114,"demarcheStatutId":"ins","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":18}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"}]},{"id":115,"demarcheStatutId":"ins","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":14}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"}]},{"id":116,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"8","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":117,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":9}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":9}}},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"16","etapeTypeId":"aco","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"mnv","etapeStatutId":"fai"}]},{"id":118,"demarcheStatutId":"ins","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":8}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"}]},{"id":119,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":4}}},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":4}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"4","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"6","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"16","etapeTypeId":"aco","etapeStatutId":"fai"}]},{"id":120,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":12}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":17}}},{"date":"10","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"17","etapeTypeId":"aco","etapeStatutId":"fai"},{"date":"18","etapeTypeId":"mnv","etapeStatutId":"fai"}]},{"id":121,"demarcheStatutId":"des","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"des","etapeStatutId":"fai"}]},{"id":122,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":7}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"mcb","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"def","contenu":{"arm":{"franchissements":7}}},{"date":"10","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"11","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"13","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":123,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":4}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"mcb","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"rde","etapeStatutId":"def","contenu":{"arm":{"franchissements":4}}},{"date":"10","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"11","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"aca","etapeStatutId":"def"},{"date":"13","etapeTypeId":"mnd","etapeStatutId":"fai"}]},{"id":124,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":8}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"rde","etapeStatutId":"fav","contenu":{"arm":{"franchissements":8}}},{"date":"9","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"def"}]},{"id":125,"demarcheStatutId":"ins","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":4}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"}]},{"id":126,"demarcheStatutId":"ins","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"}]},{"id":127,"demarcheStatutId":"des","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"des","etapeStatutId":"fai"}]},{"id":128,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":0}}},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"11","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":129,"demarcheStatutId":"des","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"1","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"des","etapeStatutId":"fai"}]},{"id":130,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"4","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"6","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"edm","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}}]},{"id":131,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}},{"date":"2","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"mcb","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"rcb","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":0}}},{"date":"7","etapeTypeId":"vfd","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"eof","etapeStatutId":"fai"},{"date":"10","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"sca","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"aca","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"mnb","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"pfc","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"vfc","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"sco","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true}}}]},{"id":132,"demarcheStatutId":"ins","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":3}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"}]},{"id":133,"demarcheStatutId":"ins","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"pfd","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":6}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcp","etapeStatutId":"com"},{"date":"5","etapeTypeId":"mod","etapeStatutId":"fai","contenu":{"arm":{"mecanise":true,"franchissements":6}}}]},{"id":134,"demarcheStatutId":"eco","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"aco"}]}] \ No newline at end of file diff --git a/packages/api/src/business/rules-demarches/arm/oct.machine.test.ts b/packages/api/src/business/rules-demarches/arm/oct.machine.test.ts index d22d9b241..b62aefd8a 100644 --- a/packages/api/src/business/rules-demarches/arm/oct.machine.test.ts +++ b/packages/api/src/business/rules-demarches/arm/oct.machine.test.ts @@ -1,8 +1,8 @@ -import { Etape, armOctMachine } from './oct.machine' +import { ArmOctMachine } from './oct.machine' import { interpret } from 'xstate' import { interpretMachine, - orderAndInterpretMachine + orderAndInterpretMachine as commonOrderAndInterpretMachine } from '../machine-test-helper' import { IContenu } from '../../../types' import { @@ -10,12 +10,17 @@ import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts' import { ETAPES_TYPES, EtapeTypeId } from 'camino-common/src/static/etapesTypes' +import { Etape } from '../machine-common' const etapesProd = require('./oct.cas.json') +const orderAndInterpretMachine = (etapes: readonly Etape[]) => { + return commonOrderAndInterpretMachine(new ArmOctMachine(), etapes) +} describe('vérifie l’arbre d’octroi d’ARM', () => { + const armOctMachine = new ArmOctMachine() test('ne peut pas désister', () => { - const service = interpret(armOctMachine) + const service = interpret(armOctMachine.machine) const interpreter = service.start() const state = interpreter.state @@ -27,17 +32,17 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { test('quelles sont mes prochaines étapes sur un titre mécanisé', () => { const service = orderAndInterpretMachine([ - { typeId: 'pfd', statutId: 'fai', date: '2020-02-03' }, - { typeId: 'mdp', statutId: 'fai', date: '2020-02-02' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2020-02-03' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2020-02-02' }, { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2020-01-01', contenu: { arm: { mecanise: true } } } ]) - expect(service).canOnlyTransitionTo([ + expect(service).canOnlyTransitionTo(armOctMachine, [ 'ACCEPTER_RDE', 'CLASSER_SANS_SUITE', 'DESISTER_PAR_LE_DEMANDEUR', @@ -52,17 +57,17 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { test('quelles sont mes prochaines étapes sur un titre mécanisé avec franchissements', () => { const service = orderAndInterpretMachine([ - { typeId: 'pfd', statutId: 'fai', date: '2020-02-03' }, - { typeId: 'mdp', statutId: 'fai', date: '2020-02-02' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2020-02-03' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2020-02-02' }, { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2020-01-01', contenu: { arm: { mecanise: true, franchissements: 1 } } } ]) - expect(service).canOnlyTransitionTo([ + expect(service).canOnlyTransitionTo(armOctMachine, [ 'ACCEPTER_RDE', 'CLASSER_SANS_SUITE', 'DEMANDER_COMPLEMENTS_DAE', @@ -79,17 +84,17 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { // notamment car il permet de trouver tous les chemins possibles vers les états finaux test('quelles sont mes prochaines étapes non mécanisé', () => { const service = orderAndInterpretMachine([ - { typeId: 'pfd', statutId: 'fai', date: '2020-02-03' }, - { typeId: 'mdp', statutId: 'fai', date: '2020-02-02' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2020-02-03' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2020-02-02' }, { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2020-01-01', contenu: { arm: { mecanise: false } } } ]) - expect(service).canOnlyTransitionTo([ + expect(service).canOnlyTransitionTo(armOctMachine, [ 'ACCEPTER_COMPLETUDE', 'CLASSER_SANS_SUITE', 'DESISTER_PAR_LE_DEMANDEUR', @@ -100,18 +105,18 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { test('on peut faire une demande de compléments après une complétude incomplète', () => { const service = orderAndInterpretMachine([ - { typeId: 'mcp', statutId: 'inc', date: '2020-02-04' }, - { typeId: 'pfd', statutId: 'fai', date: '2020-02-03' }, - { typeId: 'mdp', statutId: 'fai', date: '2020-02-02' }, + { etapeTypeId: 'mcp', etapeStatutId: 'inc', date: '2020-02-04' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2020-02-03' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2020-02-02' }, { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2020-01-01', contenu: { arm: { mecanise: false } } } ]) - expect(service).canOnlyTransitionTo([ + expect(service).canOnlyTransitionTo(armOctMachine, [ 'CLASSER_SANS_SUITE', 'DEMANDER_COMPLEMENTS_COMPLETUDE', 'DESISTER_PAR_LE_DEMANDEUR', @@ -121,15 +126,15 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { test.each([ { - typeId: + etapeTypeId: ETAPES_TYPES.demandeDeComplements_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_, - statutId: ETAPES_STATUTS.FAIT, + etapeStatutId: ETAPES_STATUTS.FAIT, date: '2020-01-01' }, { - typeId: + etapeTypeId: ETAPES_TYPES.demandeDeComplements_RecepisseDeDeclarationLoiSurLeau_, - statutId: ETAPES_STATUTS.FAIT, + etapeStatutId: ETAPES_STATUTS.FAIT, date: '2020-01-01' } ])( @@ -143,16 +148,16 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { test('peut créer une étape "mdp" juste après une "mfr"', () => { orderAndInterpretMachine([ - { typeId: 'mfr', statutId: 'fai', date: '2022-04-14' }, - { typeId: 'mdp', statutId: 'fai', date: '2022-04-15' } + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2022-04-14' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2022-04-15' } ]) }) test('ne peut pas créer une étape "mcp" sans "mdp"', () => { expect(() => orderAndInterpretMachine([ - { typeId: 'mfr', statutId: 'fai', date: '2022-04-14' }, - { typeId: 'mcp', statutId: 'com', date: '2022-04-16' } + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2022-04-14' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2022-04-16' } ]) ).toThrowErrorMatchingSnapshot() }) @@ -160,9 +165,9 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { test('ne peut pas créer 2 "mfr"', () => { expect(() => orderAndInterpretMachine([ - { typeId: 'mfr', statutId: 'fai', date: '2020-01-01' }, - { typeId: 'mdp', statutId: 'fai', date: '2020-01-02' }, - { typeId: 'mfr', statutId: 'fai', date: '2020-01-03' } + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2020-01-01' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2020-01-02' }, + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2020-01-03' } ]) ).toThrowErrorMatchingSnapshot() }) @@ -170,8 +175,8 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { test('ne peut pas déplacer une étape "mdp" sans "mfr"', () => { expect(() => orderAndInterpretMachine([ - { typeId: 'mdp', statutId: 'fai', date: '2020-02-02' }, - { typeId: 'mfr', statutId: 'fai', date: '2020-02-03' } + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2020-02-02' }, + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2020-02-03' } ]) ).toThrowErrorMatchingSnapshot() }) @@ -200,186 +205,191 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { }) => { orderAndInterpretMachine([ { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2020-01-01', contenu: { arm: { mecanise: true, franchissements: 1 } } }, - { typeId: 'mdp', statutId: 'fai', date: '2020-01-02' }, - { typeId, statutId, contenu, date: '2020-01-03' } + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2020-01-02' }, + { + etapeTypeId: typeId, + etapeStatutId: statutId, + contenu, + date: '2020-01-03' + } ]) } ) test('peut créer une étape "mcp" après une "mdp"', () => { orderAndInterpretMachine([ - { typeId: 'mcp', statutId: 'com', date: '2020-02-03' }, - { typeId: 'pfd', statutId: 'fai', date: '2020-02-03' }, - { typeId: 'mdp', statutId: 'fai', date: '2020-02-02' }, - { typeId: 'mfr', statutId: 'fai', date: '2020-01-01' } + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2020-02-03' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2020-02-03' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2020-02-02' }, + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2020-01-01' } ]) }) test('peut créer une "des" après "mdp"', () => { orderAndInterpretMachine([ - { typeId: 'mfr', statutId: 'fai', date: '2020-01-01' }, - { typeId: 'mdp', statutId: 'fai', date: '2020-01-02' }, - { typeId: 'des', statutId: 'fai', date: '2020-01-04' } + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2020-01-01' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2020-01-02' }, + { etapeTypeId: 'des', etapeStatutId: 'fai', date: '2020-01-04' } ]) }) test('ne peut pas créer deux "des"', () => { expect(() => orderAndInterpretMachine([ - { typeId: 'mfr', statutId: 'fai', date: '2020-01-01' }, - { typeId: 'mdp', statutId: 'fai', date: '2020-01-02' }, - { typeId: 'des', statutId: 'fai', date: '2020-01-03' }, - { typeId: 'des', statutId: 'fai', date: '2020-01-04' } + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2020-01-01' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2020-01-02' }, + { etapeTypeId: 'des', etapeStatutId: 'fai', date: '2020-01-03' }, + { etapeTypeId: 'des', etapeStatutId: 'fai', date: '2020-01-04' } ]) ).toThrowErrorMatchingSnapshot() }) test('ne peut pas créer une "css" après une "des"', () => { expect(() => orderAndInterpretMachine([ - { typeId: 'mfr', statutId: 'fai', date: '2020-01-01' }, - { typeId: 'mdp', statutId: 'fai', date: '2020-01-02' }, - { typeId: 'des', statutId: 'fai', date: '2020-01-04' }, - { typeId: 'css', statutId: 'fai', date: '2020-01-05' } + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2020-01-01' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2020-01-02' }, + { etapeTypeId: 'des', etapeStatutId: 'fai', date: '2020-01-04' }, + { etapeTypeId: 'css', etapeStatutId: 'fai', date: '2020-01-05' } ]) ).toThrowErrorMatchingSnapshot() }) test('peut créer une "des" si le titre est en attente de "pfc"', () => { orderAndInterpretMachine([ { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2020-01-01', contenu: { arm: { mecanise: true } } }, - { typeId: 'mdp', statutId: 'fai', date: '2020-01-02' }, - { typeId: 'dae', statutId: 'exe', date: '2020-01-03' }, - { typeId: 'pfd', statutId: 'fai', date: '2020-01-04' }, - { typeId: 'mcp', statutId: 'com', date: '2020-01-05' }, - { typeId: 'mod', statutId: 'fai', date: '2020-01-06' }, - { typeId: 'vfd', statutId: 'fai', date: '2020-01-06' }, - { typeId: 'mcr', statutId: 'fav', date: '2020-01-07' }, - { typeId: 'eof', statutId: 'fai', date: '2020-01-08' }, - { typeId: 'aof', statutId: 'fav', date: '2020-01-09' }, - { typeId: 'sca', statutId: 'fai', date: '2020-01-10' }, - { typeId: 'aca', statutId: 'fav', date: '2020-01-11' }, - { typeId: 'mnb', statutId: 'fai', date: '2020-01-12' }, - { typeId: 'des', statutId: 'fai', date: '2020-01-13' } + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2020-01-02' }, + { etapeTypeId: 'dae', etapeStatutId: 'exe', date: '2020-01-03' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2020-01-04' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2020-01-05' }, + { etapeTypeId: 'mod', etapeStatutId: 'fai', date: '2020-01-06' }, + { etapeTypeId: 'vfd', etapeStatutId: 'fai', date: '2020-01-06' }, + { etapeTypeId: 'mcr', etapeStatutId: 'fav', date: '2020-01-07' }, + { etapeTypeId: 'eof', etapeStatutId: 'fai', date: '2020-01-08' }, + { etapeTypeId: 'aof', etapeStatutId: 'fav', date: '2020-01-09' }, + { etapeTypeId: 'sca', etapeStatutId: 'fai', date: '2020-01-10' }, + { etapeTypeId: 'aca', etapeStatutId: 'fav', date: '2020-01-11' }, + { etapeTypeId: 'mnb', etapeStatutId: 'fai', date: '2020-01-12' }, + { etapeTypeId: 'des', etapeStatutId: 'fai', date: '2020-01-13' } ]) }) test('ne peut pas créer une "mno" après la "aca" si le titre n’est pas mécanisé', () => { expect(() => orderAndInterpretMachine([ - { typeId: 'mfr', statutId: 'fai', date: '2020-01-01' }, - { typeId: 'mdp', statutId: 'fai', date: '2020-01-01' }, - { typeId: 'pfd', statutId: 'fai', date: '2020-01-01' }, - { typeId: 'mcp', statutId: 'com', date: '2020-01-01' }, - { typeId: 'vfd', statutId: 'fai', date: '2020-01-01' }, - { typeId: 'mcr', statutId: 'fav', date: '2020-01-01' }, - { typeId: 'eof', statutId: 'fai', date: '2020-01-01' }, - { typeId: 'aof', statutId: 'fav', date: '2020-01-01' }, - { typeId: 'sca', statutId: 'fai', date: '2020-01-02' }, - { typeId: 'aca', statutId: 'fav', date: '2020-01-03' }, - { typeId: 'mnb', statutId: 'fai', date: '2020-01-04' } + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2020-01-01' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2020-01-01' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2020-01-01' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2020-01-01' }, + { etapeTypeId: 'vfd', etapeStatutId: 'fai', date: '2020-01-01' }, + { etapeTypeId: 'mcr', etapeStatutId: 'fav', date: '2020-01-01' }, + { etapeTypeId: 'eof', etapeStatutId: 'fai', date: '2020-01-01' }, + { etapeTypeId: 'aof', etapeStatutId: 'fav', date: '2020-01-01' }, + { etapeTypeId: 'sca', etapeStatutId: 'fai', date: '2020-01-02' }, + { etapeTypeId: 'aca', etapeStatutId: 'fav', date: '2020-01-03' }, + { etapeTypeId: 'mnb', etapeStatutId: 'fai', date: '2020-01-04' } ]) ).toThrowErrorMatchingSnapshot() }) test('peut créer une "mnd" apres une "aca" défavorable', () => { orderAndInterpretMachine([ - { typeId: 'mnd', date: '2020-08-18', statutId: 'fai' }, - { typeId: 'aca', date: '2020-08-18', statutId: 'def' }, - { typeId: 'sca', date: '2020-08-07', statutId: 'fai' }, - { typeId: 'aof', date: '2020-06-19', statutId: 'def' }, - { typeId: 'eof', date: '2020-06-19', statutId: 'fai' }, - { typeId: 'mcr', date: '2020-06-15', statutId: 'fav' }, - { typeId: 'vfd', date: '2020-06-15', statutId: 'fai' }, - { typeId: 'mcp', date: '2020-05-29', statutId: 'com' }, - { typeId: 'mdp', date: '2020-05-04', statutId: 'fai' }, - { typeId: 'pfd', date: '2020-05-01', statutId: 'fai' }, - { typeId: 'mfr', date: '2020-04-29', statutId: 'fai' } + { etapeTypeId: 'mnd', date: '2020-08-18', etapeStatutId: 'fai' }, + { etapeTypeId: 'aca', date: '2020-08-18', etapeStatutId: 'def' }, + { etapeTypeId: 'sca', date: '2020-08-07', etapeStatutId: 'fai' }, + { etapeTypeId: 'aof', date: '2020-06-19', etapeStatutId: 'def' }, + { etapeTypeId: 'eof', date: '2020-06-19', etapeStatutId: 'fai' }, + { etapeTypeId: 'mcr', date: '2020-06-15', etapeStatutId: 'fav' }, + { etapeTypeId: 'vfd', date: '2020-06-15', etapeStatutId: 'fai' }, + { etapeTypeId: 'mcp', date: '2020-05-29', etapeStatutId: 'com' }, + { etapeTypeId: 'mdp', date: '2020-05-04', etapeStatutId: 'fai' }, + { etapeTypeId: 'pfd', date: '2020-05-01', etapeStatutId: 'fai' }, + { etapeTypeId: 'mfr', date: '2020-04-29', etapeStatutId: 'fai' } ]) }) test('peut créer une "mod" si il n’y a pas de sca', () => { orderAndInterpretMachine([ - { typeId: 'mfr', date: '2019-12-12', statutId: 'fai' }, - { typeId: 'mdp', date: '2019-12-12', statutId: 'fai' }, - { typeId: 'pfd', date: '2019-12-12', statutId: 'fai' }, - { typeId: 'mcp', date: '2020-01-21', statutId: 'com' }, - { typeId: 'vfd', date: '2020-02-05', statutId: 'fai' }, - { typeId: 'mcr', date: '2020-02-05', statutId: 'fav' }, - { typeId: 'eof', date: '2020-02-05', statutId: 'fai' }, - { typeId: 'aof', date: '2020-02-05', statutId: 'fav' }, - { typeId: 'mod', date: '2020-06-17', statutId: 'fai' } + { etapeTypeId: 'mfr', date: '2019-12-12', etapeStatutId: 'fai' }, + { etapeTypeId: 'mdp', date: '2019-12-12', etapeStatutId: 'fai' }, + { etapeTypeId: 'pfd', date: '2019-12-12', etapeStatutId: 'fai' }, + { etapeTypeId: 'mcp', date: '2020-01-21', etapeStatutId: 'com' }, + { etapeTypeId: 'vfd', date: '2020-02-05', etapeStatutId: 'fai' }, + { etapeTypeId: 'mcr', date: '2020-02-05', etapeStatutId: 'fav' }, + { etapeTypeId: 'eof', date: '2020-02-05', etapeStatutId: 'fai' }, + { etapeTypeId: 'aof', date: '2020-02-05', etapeStatutId: 'fav' }, + { etapeTypeId: 'mod', date: '2020-06-17', etapeStatutId: 'fai' } ]) }) test('peut créer une "mcp" après une "pfd" et "mdp"', () => { orderAndInterpretMachine([ - { typeId: 'mfr', date: '2020-01-30', statutId: 'fai' }, - { typeId: 'mdp', date: '2020-02-23', statutId: 'fai' }, - { typeId: 'pfd', date: '2020-02-23', statutId: 'fai' }, - { typeId: 'mcp', date: '2020-02-28', statutId: 'com' } + { etapeTypeId: 'mfr', date: '2020-01-30', etapeStatutId: 'fai' }, + { etapeTypeId: 'mdp', date: '2020-02-23', etapeStatutId: 'fai' }, + { etapeTypeId: 'pfd', date: '2020-02-23', etapeStatutId: 'fai' }, + { etapeTypeId: 'mcp', date: '2020-02-28', etapeStatutId: 'com' } ]) }) test('peut créer une "sca" après une "aof" et "rde"', () => { orderAndInterpretMachine([ - { typeId: 'dae', date: '2020-06-22', statutId: 'exe' }, + { etapeTypeId: 'dae', date: '2020-06-22', etapeStatutId: 'exe' }, { - typeId: 'mfr', + etapeTypeId: 'mfr', date: '2020-07-09', - statutId: 'fai', + etapeStatutId: 'fai', contenu: { arm: { mecanise: true, franchissements: 3 } } }, - { typeId: 'pfd', date: '2020-07-10', statutId: 'fai' }, - { typeId: 'mdp', date: '2020-07-17', statutId: 'fai' }, - { typeId: 'mcp', date: '2020-07-17', statutId: 'com' }, + { etapeTypeId: 'pfd', date: '2020-07-10', etapeStatutId: 'fai' }, + { etapeTypeId: 'mdp', date: '2020-07-17', etapeStatutId: 'fai' }, + { etapeTypeId: 'mcp', date: '2020-07-17', etapeStatutId: 'com' }, { - typeId: 'rde', + etapeTypeId: 'rde', date: '2020-07-30', - statutId: 'fav', + etapeStatutId: 'fav', contenu: { arm: { franchissements: 3 } } }, - { typeId: 'vfd', date: '2020-07-31', statutId: 'fai' }, - { typeId: 'mcr', date: '2020-07-31', statutId: 'fav' }, - { typeId: 'eof', date: '2020-08-10', statutId: 'fai' }, - { typeId: 'aof', date: '2020-08-10', statutId: 'fav' }, - { typeId: 'sca', date: '2020-09-04', statutId: 'fai' } + { etapeTypeId: 'vfd', date: '2020-07-31', etapeStatutId: 'fai' }, + { etapeTypeId: 'mcr', date: '2020-07-31', etapeStatutId: 'fav' }, + { etapeTypeId: 'eof', date: '2020-08-10', etapeStatutId: 'fai' }, + { etapeTypeId: 'aof', date: '2020-08-10', etapeStatutId: 'fav' }, + { etapeTypeId: 'sca', date: '2020-09-04', etapeStatutId: 'fai' } ]) }) test('peut faire une "sco" après une "aca" favorable en mécanisé', () => { orderAndInterpretMachine([ - { typeId: 'sco', statutId: 'fai', date: '2020-09-28' }, - { typeId: 'vfc', statutId: 'fai', date: '2020-07-17' }, - { typeId: 'pfc', statutId: 'fai', date: '2020-07-16' }, - { typeId: 'mnb', statutId: 'fai', date: '2020-07-09' }, - { typeId: 'aca', statutId: 'fav', date: '2020-06-17' }, - { typeId: 'sca', statutId: 'fai', date: '2020-06-15' }, + { etapeTypeId: 'sco', etapeStatutId: 'fai', date: '2020-09-28' }, + { etapeTypeId: 'vfc', etapeStatutId: 'fai', date: '2020-07-17' }, + { etapeTypeId: 'pfc', etapeStatutId: 'fai', date: '2020-07-16' }, + { etapeTypeId: 'mnb', etapeStatutId: 'fai', date: '2020-07-09' }, + { etapeTypeId: 'aca', etapeStatutId: 'fav', date: '2020-06-17' }, + { etapeTypeId: 'sca', etapeStatutId: 'fai', date: '2020-06-15' }, { - typeId: 'rde', - statutId: 'fav', + etapeTypeId: 'rde', + etapeStatutId: 'fav', date: '2020-02-11', contenu: { arm: { franchissements: 3 } } }, - { typeId: 'aof', statutId: 'fav', date: '2020-02-08' }, - { typeId: 'eof', statutId: 'fai', date: '2020-02-07' }, - { typeId: 'mcr', statutId: 'fav', date: '2020-02-06' }, - { typeId: 'vfd', statutId: 'fai', date: '2020-02-05' }, - { typeId: 'mcp', statutId: 'com', date: '2020-01-23' }, - { typeId: 'dae', statutId: 'exe', date: '2020-01-14' }, - { typeId: 'pfd', statutId: 'fai', date: '2019-12-13' }, - { typeId: 'mdp', statutId: 'fai', date: '2019-12-11' }, + { etapeTypeId: 'aof', etapeStatutId: 'fav', date: '2020-02-08' }, + { etapeTypeId: 'eof', etapeStatutId: 'fai', date: '2020-02-07' }, + { etapeTypeId: 'mcr', etapeStatutId: 'fav', date: '2020-02-06' }, + { etapeTypeId: 'vfd', etapeStatutId: 'fai', date: '2020-02-05' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2020-01-23' }, + { etapeTypeId: 'dae', etapeStatutId: 'exe', date: '2020-01-14' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2019-12-13' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2019-12-11' }, { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2019-12-10', contenu: { arm: { mecanise: true, franchissements: 3 } } } @@ -388,23 +398,23 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { test('les étapes sont vérifiées dans le bon ordre', () => { orderAndInterpretMachine([ - { typeId: 'aof', statutId: 'fav', date: '2021-06-08' }, - { typeId: 'eof', statutId: 'fai', date: '2021-06-02' }, - { typeId: 'mcp', statutId: 'com', date: '2021-05-20' }, - { typeId: 'mcr', statutId: 'fav', date: '2021-05-20' }, - { typeId: 'vfd', statutId: 'fai', date: '2021-05-20' }, - { typeId: 'pfd', statutId: 'fai', date: '2021-05-20' }, - { typeId: 'dae', statutId: 'exe', date: '2021-05-20' }, - { typeId: 'mdp', statutId: 'fai', date: '2021-05-20' }, + { etapeTypeId: 'aof', etapeStatutId: 'fav', date: '2021-06-08' }, + { etapeTypeId: 'eof', etapeStatutId: 'fai', date: '2021-06-02' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2021-05-20' }, + { etapeTypeId: 'mcr', etapeStatutId: 'fav', date: '2021-05-20' }, + { etapeTypeId: 'vfd', etapeStatutId: 'fai', date: '2021-05-20' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2021-05-20' }, + { etapeTypeId: 'dae', etapeStatutId: 'exe', date: '2021-05-20' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2021-05-20' }, { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2021-05-20', contenu: { arm: { mecanise: true, franchissements: 3 } } }, { - typeId: 'rde', - statutId: 'fav', + etapeTypeId: 'rde', + etapeStatutId: 'fav', date: '2021-04-09', contenu: { arm: { franchissements: 3 } } } @@ -413,115 +423,115 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { test('des étapes qui se font la même journée', () => { orderAndInterpretMachine([ - { typeId: 'mcp', statutId: 'com', date: '2021-02-26' }, - { typeId: 'mdp', statutId: 'fai', date: '2021-02-26' }, - { typeId: 'mfr', statutId: 'fai', date: '2021-02-26' }, - { typeId: 'pfd', statutId: 'fai', date: '2020-09-03' } + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2021-02-26' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2021-02-26' }, + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2021-02-26' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2020-09-03' } ]) }) test('peut réaliser une saisine de la CARM après un récépissé de la déclaration sur l’eau défavorable', () => { orderAndInterpretMachine([ - { typeId: 'sca', statutId: 'fai', date: '2021-09-24' }, - { typeId: 'aof', statutId: 'def', date: '2021-09-23' }, + { etapeTypeId: 'sca', etapeStatutId: 'fai', date: '2021-09-24' }, + { etapeTypeId: 'aof', etapeStatutId: 'def', date: '2021-09-23' }, { - typeId: 'rde', - statutId: 'def', + etapeTypeId: 'rde', + etapeStatutId: 'def', date: '2021-09-22', contenu: { arm: { franchissements: 3 } } }, - { typeId: 'edm', statutId: 'fav', date: '2021-04-30' }, - { typeId: 'eof', statutId: 'fai', date: '2021-03-17' }, - { typeId: 'mcb', statutId: 'fai', date: '2021-03-16' }, - { typeId: 'mcr', statutId: 'fav', date: '2021-03-11' }, - { typeId: 'vfd', statutId: 'fai', date: '2021-03-10' }, - { typeId: 'mcp', statutId: 'com', date: '2021-02-26' }, - { typeId: 'mdp', statutId: 'fai', date: '2021-02-26' }, + { etapeTypeId: 'edm', etapeStatutId: 'fav', date: '2021-04-30' }, + { etapeTypeId: 'eof', etapeStatutId: 'fai', date: '2021-03-17' }, + { etapeTypeId: 'mcb', etapeStatutId: 'fai', date: '2021-03-16' }, + { etapeTypeId: 'mcr', etapeStatutId: 'fav', date: '2021-03-11' }, + { etapeTypeId: 'vfd', etapeStatutId: 'fai', date: '2021-03-10' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2021-02-26' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2021-02-26' }, { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2021-02-26', contenu: { arm: { mecanise: true, franchissements: 3 } } }, - { typeId: 'pfd', statutId: 'fai', date: '2020-09-03' }, - { typeId: 'dae', statutId: 'exe', date: '2020-07-28' } + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2020-09-03' }, + { etapeTypeId: 'dae', etapeStatutId: 'exe', date: '2020-07-28' } ]) }) test('peut réaliser une demande d’informations sur l’avis de l’ONF', () => { orderAndInterpretMachine([ - { typeId: 'aof', statutId: 'def', date: '2021-09-23' }, - { typeId: 'ria', statutId: 'fai', date: '2021-09-21' }, - { typeId: 'mia', statutId: 'fai', date: '2021-09-20' }, - { typeId: 'eof', statutId: 'fai', date: '2021-03-17' }, - { typeId: 'mcr', statutId: 'fav', date: '2021-03-10' }, - { typeId: 'vfd', statutId: 'fai', date: '2021-03-10' }, - { typeId: 'mcp', statutId: 'com', date: '2021-02-26' }, - { typeId: 'mdp', statutId: 'fai', date: '2021-02-26' }, - { typeId: 'mfr', statutId: 'fai', date: '2021-02-26' }, - { typeId: 'pfd', statutId: 'fai', date: '2020-09-03' } + { etapeTypeId: 'aof', etapeStatutId: 'def', date: '2021-09-23' }, + { etapeTypeId: 'ria', etapeStatutId: 'fai', date: '2021-09-21' }, + { etapeTypeId: 'mia', etapeStatutId: 'fai', date: '2021-09-20' }, + { etapeTypeId: 'eof', etapeStatutId: 'fai', date: '2021-03-17' }, + { etapeTypeId: 'mcr', etapeStatutId: 'fav', date: '2021-03-10' }, + { etapeTypeId: 'vfd', etapeStatutId: 'fai', date: '2021-03-10' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2021-02-26' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2021-02-26' }, + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2021-02-26' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2020-09-03' } ]) }) test('peut réaliser une demande de compléments après un avis de la CARM ajourné', () => { orderAndInterpretMachine([ - { typeId: 'sca', statutId: 'fai', date: '2021-09-30' }, - { typeId: 'rcs', statutId: 'fai', date: '2021-09-28' }, - { typeId: 'mcs', statutId: 'fai', date: '2021-09-27' }, - { typeId: 'mna', statutId: 'fai', date: '2021-09-26' }, - { typeId: 'aca', statutId: 'ajo', date: '2021-09-25' }, - { typeId: 'sca', statutId: 'fai', date: '2021-09-24' }, - { typeId: 'aof', statutId: 'fav', date: '2021-09-23' }, - { typeId: 'eof', statutId: 'fai', date: '2021-03-17' }, - { typeId: 'mcr', statutId: 'fav', date: '2021-03-10' }, - { typeId: 'vfd', statutId: 'fai', date: '2021-03-10' }, - { typeId: 'mcp', statutId: 'com', date: '2021-02-26' }, - { typeId: 'mdp', statutId: 'fai', date: '2021-02-26' }, - { typeId: 'mfr', statutId: 'fai', date: '2021-02-26' }, - { typeId: 'pfd', statutId: 'fai', date: '2020-09-03' } + { etapeTypeId: 'sca', etapeStatutId: 'fai', date: '2021-09-30' }, + { etapeTypeId: 'rcs', etapeStatutId: 'fai', date: '2021-09-28' }, + { etapeTypeId: 'mcs', etapeStatutId: 'fai', date: '2021-09-27' }, + { etapeTypeId: 'mna', etapeStatutId: 'fai', date: '2021-09-26' }, + { etapeTypeId: 'aca', etapeStatutId: 'ajo', date: '2021-09-25' }, + { etapeTypeId: 'sca', etapeStatutId: 'fai', date: '2021-09-24' }, + { etapeTypeId: 'aof', etapeStatutId: 'fav', date: '2021-09-23' }, + { etapeTypeId: 'eof', etapeStatutId: 'fai', date: '2021-03-17' }, + { etapeTypeId: 'mcr', etapeStatutId: 'fav', date: '2021-03-10' }, + { etapeTypeId: 'vfd', etapeStatutId: 'fai', date: '2021-03-10' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2021-02-26' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2021-02-26' }, + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2021-02-26' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2020-09-03' } ]) }) test('peut réaliser une demande d’ARM non mécanisée et un avenant', () => { orderAndInterpretMachine([ - { typeId: 'mnv', statutId: 'fai', date: '2021-09-29' }, - { typeId: 'aco', statutId: 'fai', date: '2021-09-28' }, - { typeId: 'mns', statutId: 'fai', date: '2021-09-27' }, - { typeId: 'sco', statutId: 'fai', date: '2021-09-26' }, - { typeId: 'aca', statutId: 'fav', date: '2021-09-25' }, - { typeId: 'sca', statutId: 'fai', date: '2021-09-24' }, - { typeId: 'aof', statutId: 'fav', date: '2021-09-23' }, - { typeId: 'eof', statutId: 'fai', date: '2021-03-17' }, - { typeId: 'mcr', statutId: 'fav', date: '2021-03-10' }, - { typeId: 'vfd', statutId: 'fai', date: '2021-03-10' }, - { typeId: 'mcp', statutId: 'com', date: '2021-02-26' }, - { typeId: 'mdp', statutId: 'fai', date: '2021-02-26' }, - { typeId: 'mfr', statutId: 'fai', date: '2021-02-26' }, - { typeId: 'pfd', statutId: 'fai', date: '2020-09-03' } + { etapeTypeId: 'mnv', etapeStatutId: 'fai', date: '2021-09-29' }, + { etapeTypeId: 'aco', etapeStatutId: 'fai', date: '2021-09-28' }, + { etapeTypeId: 'mns', etapeStatutId: 'fai', date: '2021-09-27' }, + { etapeTypeId: 'sco', etapeStatutId: 'fai', date: '2021-09-26' }, + { etapeTypeId: 'aca', etapeStatutId: 'fav', date: '2021-09-25' }, + { etapeTypeId: 'sca', etapeStatutId: 'fai', date: '2021-09-24' }, + { etapeTypeId: 'aof', etapeStatutId: 'fav', date: '2021-09-23' }, + { etapeTypeId: 'eof', etapeStatutId: 'fai', date: '2021-03-17' }, + { etapeTypeId: 'mcr', etapeStatutId: 'fav', date: '2021-03-10' }, + { etapeTypeId: 'vfd', etapeStatutId: 'fai', date: '2021-03-10' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2021-02-26' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2021-02-26' }, + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2021-02-26' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2020-09-03' } ]) }) test('peut réaliser une demande d’ARM mécanisée et un avenant', () => { orderAndInterpretMachine([ - { typeId: 'mnv', statutId: 'fai', date: '2021-10-02' }, - { typeId: 'aco', statutId: 'fai', date: '2021-10-01' }, - { typeId: 'sco', statutId: 'fai', date: '2021-09-29' }, - { typeId: 'vfc', statutId: 'fai', date: '2021-09-28' }, - { typeId: 'pfc', statutId: 'fai', date: '2021-09-27' }, - { typeId: 'mnb', statutId: 'fai', date: '2021-09-26' }, - { typeId: 'aca', statutId: 'fav', date: '2021-09-25' }, - { typeId: 'sca', statutId: 'fai', date: '2021-09-24' }, - { typeId: 'aof', statutId: 'fav', date: '2021-09-23' }, - { typeId: 'eof', statutId: 'fai', date: '2021-03-17' }, - { typeId: 'mcr', statutId: 'fav', date: '2021-03-11' }, - { typeId: 'vfd', statutId: 'fai', date: '2021-03-10' }, - { typeId: 'mcp', statutId: 'com', date: '2021-02-29' }, - { typeId: 'pfd', statutId: 'fai', date: '2021-02-28' }, - { typeId: 'dae', statutId: 'exe', date: '2021-02-27' }, - { typeId: 'mdp', statutId: 'fai', date: '2021-02-26' }, + { etapeTypeId: 'mnv', etapeStatutId: 'fai', date: '2021-10-02' }, + { etapeTypeId: 'aco', etapeStatutId: 'fai', date: '2021-10-01' }, + { etapeTypeId: 'sco', etapeStatutId: 'fai', date: '2021-09-29' }, + { etapeTypeId: 'vfc', etapeStatutId: 'fai', date: '2021-09-28' }, + { etapeTypeId: 'pfc', etapeStatutId: 'fai', date: '2021-09-27' }, + { etapeTypeId: 'mnb', etapeStatutId: 'fai', date: '2021-09-26' }, + { etapeTypeId: 'aca', etapeStatutId: 'fav', date: '2021-09-25' }, + { etapeTypeId: 'sca', etapeStatutId: 'fai', date: '2021-09-24' }, + { etapeTypeId: 'aof', etapeStatutId: 'fav', date: '2021-09-23' }, + { etapeTypeId: 'eof', etapeStatutId: 'fai', date: '2021-03-17' }, + { etapeTypeId: 'mcr', etapeStatutId: 'fav', date: '2021-03-11' }, + { etapeTypeId: 'vfd', etapeStatutId: 'fai', date: '2021-03-10' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2021-02-29' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2021-02-28' }, + { etapeTypeId: 'dae', etapeStatutId: 'exe', date: '2021-02-27' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2021-02-26' }, { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2021-02-25', contenu: { arm: { mecanise: true } } } @@ -531,8 +541,8 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { test("peut faire une demande de compléments pour la RDE si les franchissements d'eau ne sont pas spécifiés sur une ARM mécanisée", () => { orderAndInterpretMachine([ { - typeId: 'rcb', - statutId: 'fai', + etapeTypeId: 'rcb', + etapeStatutId: 'fai', date: '2020-10-08', contenu: { arm: { @@ -540,14 +550,14 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { } } }, - { typeId: 'mcb', statutId: 'fai', date: '2020-10-05' }, - { typeId: 'mcp', statutId: 'com', date: '2020-08-25' }, - { typeId: 'mdp', statutId: 'fai', date: '2020-08-25' }, - { typeId: 'pfd', statutId: 'fai', date: '2020-08-20' }, - { typeId: 'dae', statutId: 'exe', date: '2020-07-30' }, + { etapeTypeId: 'mcb', etapeStatutId: 'fai', date: '2020-10-05' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2020-08-25' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2020-08-25' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2020-08-20' }, + { etapeTypeId: 'dae', etapeStatutId: 'exe', date: '2020-07-30' }, { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2020-07-14', contenu: { arm: { @@ -561,10 +571,10 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { test('ne peut pas faire de mfr non mécanisée après une dae', () => { expect(() => orderAndInterpretMachine([ - { typeId: 'dae', statutId: 'exe', date: '2021-02-23' }, + { etapeTypeId: 'dae', etapeStatutId: 'exe', date: '2021-02-23' }, { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2021-02-25', contenu: { arm: { mecanise: false } } } @@ -576,14 +586,14 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { expect(() => orderAndInterpretMachine([ { - typeId: 'rde', - statutId: 'fav', + etapeTypeId: 'rde', + etapeStatutId: 'fav', date: '2021-02-23', contenu: { arm: { franchissements: 1 } } }, { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2021-02-25', contenu: { arm: { mecanise: false } } } @@ -593,71 +603,71 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { test('peut réaliser une validation des frais de dossier complémentaire après un désistement', () => { orderAndInterpretMachine([ - { typeId: 'vfc', statutId: 'fai', date: '2021-10-04' }, - { typeId: 'mnc', statutId: 'fai', date: '2021-10-02' }, - { typeId: 'css', statutId: 'fai', date: '2021-10-01' }, - { typeId: 'aof', statutId: 'fav', date: '2021-09-23' }, - { typeId: 'eof', statutId: 'fai', date: '2021-03-17' }, - { typeId: 'mcr', statutId: 'fav', date: '2021-03-11' }, - { typeId: 'vfd', statutId: 'fai', date: '2021-03-10' }, - { typeId: 'mcp', statutId: 'com', date: '2021-02-29' }, - { typeId: 'pfd', statutId: 'fai', date: '2021-02-28' }, - { typeId: 'dae', statutId: 'exe', date: '2021-02-27' }, - { typeId: 'mdp', statutId: 'fai', date: '2021-02-26' }, + { etapeTypeId: 'vfc', etapeStatutId: 'fai', date: '2021-10-04' }, + { etapeTypeId: 'mnc', etapeStatutId: 'fai', date: '2021-10-02' }, + { etapeTypeId: 'css', etapeStatutId: 'fai', date: '2021-10-01' }, + { etapeTypeId: 'aof', etapeStatutId: 'fav', date: '2021-09-23' }, + { etapeTypeId: 'eof', etapeStatutId: 'fai', date: '2021-03-17' }, + { etapeTypeId: 'mcr', etapeStatutId: 'fav', date: '2021-03-11' }, + { etapeTypeId: 'vfd', etapeStatutId: 'fai', date: '2021-03-10' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2021-02-29' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2021-02-28' }, + { etapeTypeId: 'dae', etapeStatutId: 'exe', date: '2021-02-27' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2021-02-26' }, { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2021-02-25', contenu: { arm: { mecanise: true } } } ]) orderAndInterpretMachine([ - { typeId: 'vfc', statutId: 'fai', date: '2021-10-05' }, - { typeId: 'vfd', statutId: 'fai', date: '2021-10-04' }, - { typeId: 'mnc', statutId: 'fai', date: '2021-10-02' }, - { typeId: 'css', statutId: 'fai', date: '2021-10-01' }, - { typeId: 'mcp', statutId: 'com', date: '2021-02-29' }, - { typeId: 'pfd', statutId: 'fai', date: '2021-02-28' }, - { typeId: 'dae', statutId: 'exe', date: '2021-02-27' }, - { typeId: 'mdp', statutId: 'fai', date: '2021-02-26' }, + { etapeTypeId: 'vfc', etapeStatutId: 'fai', date: '2021-10-05' }, + { etapeTypeId: 'vfd', etapeStatutId: 'fai', date: '2021-10-04' }, + { etapeTypeId: 'mnc', etapeStatutId: 'fai', date: '2021-10-02' }, + { etapeTypeId: 'css', etapeStatutId: 'fai', date: '2021-10-01' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2021-02-29' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2021-02-28' }, + { etapeTypeId: 'dae', etapeStatutId: 'exe', date: '2021-02-27' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2021-02-26' }, { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2021-02-25', contenu: { arm: { mecanise: true } } } ]) orderAndInterpretMachine([ - { typeId: 'vfc', statutId: 'fai', date: '2021-10-04' }, - { typeId: 'des', statutId: 'fai', date: '2021-10-01' }, - { typeId: 'aof', statutId: 'fav', date: '2021-09-23' }, - { typeId: 'eof', statutId: 'fai', date: '2021-03-17' }, - { typeId: 'mcr', statutId: 'fav', date: '2021-03-11' }, - { typeId: 'vfd', statutId: 'fai', date: '2021-03-10' }, - { typeId: 'mcp', statutId: 'com', date: '2021-02-29' }, - { typeId: 'pfd', statutId: 'fai', date: '2021-02-28' }, - { typeId: 'dae', statutId: 'exe', date: '2021-02-27' }, - { typeId: 'mdp', statutId: 'fai', date: '2021-02-26' }, + { etapeTypeId: 'vfc', etapeStatutId: 'fai', date: '2021-10-04' }, + { etapeTypeId: 'des', etapeStatutId: 'fai', date: '2021-10-01' }, + { etapeTypeId: 'aof', etapeStatutId: 'fav', date: '2021-09-23' }, + { etapeTypeId: 'eof', etapeStatutId: 'fai', date: '2021-03-17' }, + { etapeTypeId: 'mcr', etapeStatutId: 'fav', date: '2021-03-11' }, + { etapeTypeId: 'vfd', etapeStatutId: 'fai', date: '2021-03-10' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2021-02-29' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2021-02-28' }, + { etapeTypeId: 'dae', etapeStatutId: 'exe', date: '2021-02-27' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2021-02-26' }, { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2021-02-25', contenu: { arm: { mecanise: true } } } ]) orderAndInterpretMachine([ - { typeId: 'vfc', statutId: 'fai', date: '2021-10-05' }, - { typeId: 'vfd', statutId: 'fai', date: '2021-10-04' }, - { typeId: 'des', statutId: 'fai', date: '2021-10-01' }, - { typeId: 'mcp', statutId: 'com', date: '2021-02-29' }, - { typeId: 'pfd', statutId: 'fai', date: '2021-02-28' }, - { typeId: 'dae', statutId: 'exe', date: '2021-02-27' }, - { typeId: 'mdp', statutId: 'fai', date: '2021-02-26' }, + { etapeTypeId: 'vfc', etapeStatutId: 'fai', date: '2021-10-05' }, + { etapeTypeId: 'vfd', etapeStatutId: 'fai', date: '2021-10-04' }, + { etapeTypeId: 'des', etapeStatutId: 'fai', date: '2021-10-01' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2021-02-29' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2021-02-28' }, + { etapeTypeId: 'dae', etapeStatutId: 'exe', date: '2021-02-27' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2021-02-26' }, { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2021-02-25', contenu: { arm: { mecanise: true } } } @@ -668,8 +678,8 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { expect(() => orderAndInterpretMachine([ { - typeId: 'mfr', - statutId: 'fai', + etapeTypeId: 'mfr', + etapeStatutId: 'fai', date: '2019-12-10', contenu: { arm: { mecanise: false, franchissements: 3 } } } @@ -680,6 +690,10 @@ describe('vérifie l’arbre d’octroi d’ARM', () => { // pour regénérer le oct.cas.json: `npm run test:generate-data -w packages/api` test.each(etapesProd as any[])('cas réel N°$id', demarche => { // ici les étapes sont déjà ordonnées - interpretMachine(demarche.etapes as Etape[]) + interpretMachine(armOctMachine, demarche.etapes) + expect(armOctMachine.demarcheStatut(demarche.etapes)).toStrictEqual({ + demarcheStatut: demarche.demarcheStatutId, + publique: demarche.demarchePublique + }) }) }) diff --git a/packages/api/src/business/rules-demarches/arm/oct.machine.ts b/packages/api/src/business/rules-demarches/arm/oct.machine.ts index f9b742917..275403a9f 100644 --- a/packages/api/src/business/rules-demarches/arm/oct.machine.ts +++ b/packages/api/src/business/rules-demarches/arm/oct.machine.ts @@ -1,27 +1,9 @@ import { assign, createMachine } from 'xstate' import { IContenu } from '../../../types' -import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations' -import { - EtapeStatutId, - EtapeStatutKey -} from 'camino-common/src/static/etapesStatuts' -import { EtapeTypeId } from 'camino-common/src/static/etapesTypes' -import { - EtapesTypesEtapesStatuts, - EtapeTypeEtapeStatut -} from 'camino-common/src/static/etapesTypesEtapesStatuts' -import { - DemarchesStatutsIds, - DemarcheStatutId -} from 'camino-common/src/static/demarchesStatuts' - -export interface Etape { - // TODO 2022-07-28 : ceci pourrait être réduit en utilisant les états de 'trad' - typeId: EtapeTypeId - statutId: EtapeStatutId - date: string - contenu?: IContenu -} +import { EtapesTypesEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts' +import { CaminoMachine } from '../machine-helper' +import { CaminoCommonContext, DBEtat, Etape, tags } from '../machine-common' +import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts' type FaireDemandeEvent = { mecanise: boolean @@ -97,37 +79,6 @@ export type XStateEvent = export type Event = XStateEvent['type'] -export const isEvent = (event: string): event is Event => { - return EVENTS.includes(event) -} - -export const toPotentialXStateEvent = (event: Event): XStateEvent[] => { - switch (event) { - case 'FAIRE_DEMANDE': { - return [ - { type: event, mecanise: false, franchissements: null }, - { type: event, mecanise: true, franchissements: null }, - { type: event, mecanise: true, franchissements: 0 }, - { type: event, mecanise: true, franchissements: 2 } - ] - } - case 'ACCEPTER_RDE': - case 'REFUSER_RDE': - case 'RECEVOIR_COMPLEMENTS_RDE': { - return [ - { type: event, franchissements: 0 }, - { type: event, franchissements: 3 } - ] - } - default: - // related to https://github.com/microsoft/TypeScript/issues/46497 https://github.com/microsoft/TypeScript/issues/40803 :( - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - return [{ type: event }] - } -} - -export type DBEtat = { [key in EtapeStatutKey]?: EtapeTypeEtapeStatut } const trad: { [key in Event]: DBEtat } = { FAIRE_DEMANDE: EtapesTypesEtapesStatuts.demande, DEPOSER_DEMANDE: EtapesTypesEtapesStatuts.depotDeLaDemande, @@ -255,85 +206,115 @@ export const EVENTS = Object.keys(trad) as Array< Extract<keyof typeof trad, string> > -export const eventToEtat = (event: Event): DBEtat => { - return trad[event] -} +export class ArmOctMachine extends CaminoMachine<OctARMContext, XStateEvent> { + constructor() { + super(armOctMachine) + } -export const xStateEventToEtape = ( - event: XStateEvent -): Omit<Etape, 'date'>[] => { - const dbEtat = trad[event.type] - let contenu: IContenu | undefined - switch (event.type) { - case 'FAIRE_DEMANDE': { - contenu = { - arm: { - mecanise: event.mecanise, - franchissements: event.franchissements + caminoXStateEventToEtapes(event: XStateEvent): Omit<Etape, 'date'>[] { + const dbEtat = trad[event.type] + let contenu: IContenu | undefined + switch (event.type) { + case 'FAIRE_DEMANDE': { + contenu = { + arm: { + mecanise: event.mecanise, + franchissements: event.franchissements + } } + break + } + case 'ACCEPTER_RDE': + case 'REFUSER_RDE': + case 'RECEVOIR_COMPLEMENTS_RDE': { + contenu = { arm: { franchissements: event.franchissements } } } - break - } - case 'ACCEPTER_RDE': - case 'REFUSER_RDE': - case 'RECEVOIR_COMPLEMENTS_RDE': { - contenu = { arm: { franchissements: event.franchissements } } } + + return Object.values(dbEtat).map(({ etapeTypeId, etapeStatutId }) => ({ + etapeTypeId, + etapeStatutId, + contenu + })) } - return Object.values(dbEtat).map(({ etapeTypeId, etapeStatutId }) => ({ - typeId: etapeTypeId, - statutId: etapeStatutId, - contenu - })) -} + eventFrom(etape: Etape): XStateEvent { + const entries = Object.entries(trad).filter( + (entry): entry is [Event, DBEtat] => EVENTS.includes(entry[0]) + ) -export const eventFrom = (etape: Etape): XStateEvent => { - const entries = Object.entries(trad).filter( - (entry): entry is [Event, DBEtat] => EVENTS.includes(entry[0]) - ) + const entry = entries.find(([_key, dbEtat]) => { + return Object.values(dbEtat).some( + dbEtatSingle => + dbEtatSingle.etapeTypeId === etape.etapeTypeId && + dbEtatSingle.etapeStatutId === etape.etapeStatutId + ) + }) - const entry = entries.find(([_key, dbEtat]) => { - return Object.values(dbEtat).some( - dbEtatSingle => - dbEtatSingle.etapeTypeId === etape.typeId && - dbEtatSingle.etapeStatutId === etape.statutId - ) - }) + if (entry) { + const eventFromEntry = entry[0] + switch (eventFromEntry) { + case 'FAIRE_DEMANDE': { + let mecanise = false + let franchissements = null + if (typeof etape.contenu?.arm?.mecanise === 'boolean') { + mecanise = etape.contenu?.arm.mecanise + } + if (typeof etape.contenu?.arm?.franchissements === 'number') { + franchissements = etape.contenu?.arm?.franchissements + } - if (entry) { - const eventFromEntry = entry[0] - switch (eventFromEntry) { - case 'FAIRE_DEMANDE': { - let mecanise = false - let franchissements = null - if (typeof etape.contenu?.arm?.mecanise === 'boolean') { - mecanise = etape.contenu?.arm.mecanise + return { type: eventFromEntry, mecanise, franchissements } } - if (typeof etape.contenu?.arm?.franchissements === 'number') { - franchissements = etape.contenu?.arm?.franchissements + case 'ACCEPTER_RDE': + case 'REFUSER_RDE': + case 'RECEVOIR_COMPLEMENTS_RDE': { + let franchissements = null + if (typeof etape.contenu?.arm?.franchissements === 'number') { + franchissements = etape.contenu?.arm?.franchissements + } + + return { type: eventFromEntry, franchissements } } + default: + // related to https://github.com/microsoft/TypeScript/issues/46497 https://github.com/microsoft/TypeScript/issues/40803 :( + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + return { type: eventFromEntry } + } + } + throw new Error(`no event from ${JSON.stringify(etape)}`) + } + + isEvent(event: string): event is XStateEvent['type'] { + return EVENTS.includes(event) + } - return { type: eventFromEntry, mecanise, franchissements } + toPotentialCaminoXStateEvent(event: XStateEvent['type']): XStateEvent[] { + switch (event) { + case 'FAIRE_DEMANDE': { + return [ + { type: event, mecanise: false, franchissements: null }, + { type: event, mecanise: true, franchissements: null }, + { type: event, mecanise: true, franchissements: 0 }, + { type: event, mecanise: true, franchissements: 2 } + ] } case 'ACCEPTER_RDE': case 'REFUSER_RDE': case 'RECEVOIR_COMPLEMENTS_RDE': { - let franchissements = null - if (typeof etape.contenu?.arm?.franchissements === 'number') { - franchissements = etape.contenu?.arm?.franchissements - } - - return { type: eventFromEntry, franchissements } + return [ + { type: event, franchissements: 0 }, + { type: event, franchissements: 3 } + ] } default: // related to https://github.com/microsoft/TypeScript/issues/46497 https://github.com/microsoft/TypeScript/issues/40803 :( // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - return { type: eventFromEntry } + return [{ type: event }] } } - throw new Error(`no event from ${JSON.stringify(etape)}`) } type MecanisationConnuMecanise = { @@ -349,11 +330,9 @@ type MecanisationConnu = type MecanisationInconnu = MecanisationConnu | 'inconnu' -export interface OctARMContext { +export interface OctARMContext extends CaminoCommonContext { mecanisation: MecanisationInconnu - visibilite: 'confidentielle' | 'publique' expertiseONFFaite: boolean - demarcheStatut: DemarcheStatutId paiementFraisDossierValide: boolean } @@ -400,13 +379,13 @@ const fraisDeDossierComplementairesPayeOuExempte = ( const validationFraisApresDesistementOuClassementSansSuite = [ { target: - 'demandeEnConstructionOuDeposeeOuEnInstruction.pasRde.validationDesFraisDossier', + 'demandeEnConstructionOuDeposeeOuEnInstructionMachine.pasRdeMachine.validationDesFraisDossierAFaire', cond: (context: OctARMContext) => { return !context.paiementFraisDossierValide } }, { - target: 'validationDuPaiementDesFraisDeDossierComplementaires', + target: 'validationDuPaiementDesFraisDeDossierComplementairesAFaire', cond: (context: OctARMContext) => { return ( context.paiementFraisDossierValide && @@ -439,13 +418,6 @@ const actionMecanisation = assign<OctARMContext>({ } }) -export const tags = { - responsable: { - [ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']]: 'responsablePTMG', - [ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']]: 'responsableONF' - } -} as const - const actionAccepterOuRefuserRDE = assign< OctARMContext, AccepterRDE | RefuserRDE @@ -492,9 +464,10 @@ const actionRecevoirComplementsRde = assign< } }) -export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ +const armOctMachine = createMachine<OctARMContext, XStateEvent>({ + predictableActionArguments: true, id: 'oct', - initial: 'demandeEnConstructionOuDeposeeOuEnInstruction', + initial: 'demandeEnConstructionOuDeposeeOuEnInstructionMachine', context: { mecanisation: 'inconnu', expertiseONFFaite: false, @@ -510,42 +483,44 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ context.visibilite === 'confidentielle' }, DESISTER_PAR_LE_DEMANDEUR: { - target: 'desistementDuDemandeur', + target: 'desistementDuDemandeurFait', cond: context => context.demarcheStatut === DemarchesStatutsIds.EnInstruction, actions: assign<OctARMContext, { type: 'DESISTER_PAR_LE_DEMANDEUR' }>({ - demarcheStatut: DemarchesStatutsIds.Desiste + demarcheStatut: DemarchesStatutsIds.Desiste, + visibilite: 'publique' }) }, CLASSER_SANS_SUITE: { - target: 'decisionDeClassementSansSuite', + target: 'decisionDeClassementSansSuiteFait', cond: context => context.demarcheStatut === DemarchesStatutsIds.EnInstruction, actions: assign<OctARMContext, { type: 'CLASSER_SANS_SUITE' }>({ - demarcheStatut: DemarchesStatutsIds.ClasseSansSuite + demarcheStatut: DemarchesStatutsIds.ClasseSansSuite, + visibilite: 'publique' }) } }, states: { - demandeEnConstructionOuDeposeeOuEnInstruction: { + demandeEnConstructionOuDeposeeOuEnInstructionMachine: { type: 'parallel', onDone: { - target: 'saisineCommissionAutorisationsDeRecherchesMinieres' + target: 'saisineCommissionAutorisationsDeRecherchesMinieresAFaire' }, states: { - pasRde: { - initial: 'demandeEnConstructionOuDeposee', + pasRdeMachine: { + initial: 'demandeEnConstructionOuDeposeeMachine', states: { - demandeEnConstructionOuDeposee: { + demandeEnConstructionOuDeposeeMachine: { type: 'parallel', states: { - demande: { - initial: 'demandeEnConstruction', + demandeMachine: { + initial: 'demandeAFaire', states: { - demandeEnConstruction: { + demandeAFaire: { on: { FAIRE_DEMANDE: { - target: 'demandeFaite', + target: 'demandeADeposer', actions: assign<OctARMContext, FaireDemandeEvent>({ mecanisation: (context, event) => { if ( @@ -597,7 +572,7 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ } } }, - demandeFaite: { + demandeADeposer: { on: { DEPOSER_DEMANDE: { target: 'demandeDeposee', @@ -615,93 +590,98 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ } } }, - paiementDesFraisDeDossier: { - initial: 'nonPaye', + paiementDesFraisDeDossierMachine: { + initial: 'paiementDesFraisDeDossierAFaire', states: { - nonPaye: { + paiementDesFraisDeDossierAFaire: { on: { - PAYER_FRAIS_DE_DOSSIER: 'paye' + PAYER_FRAIS_DE_DOSSIER: 'paiementDesFraisDeDossierFait' } }, - paye: { + paiementDesFraisDeDossierFait: { type: 'final' } } }, - decisionAutoriteEnvironnementale: { - initial: 'enCours', + decisionAutoriteEnvironnementaleMachine: { + initial: 'decisionAutoriteEnvironnementaleAFaire', states: { - enCours: { + decisionAutoriteEnvironnementaleAFaire: { always: { - target: 'exemptee', + target: 'decisionAutoriteEnvironnementaleExemptee', cond: context => isNonMecanise(context.mecanisation) }, on: { DEMANDER_MODIFICATION_DE_LA_DEMANDE: { - target: 'modificationDeLaDemande', + target: 'modificationDeLaDemandeAFaire', actions: actionMecanisation }, EXEMPTER_DAE: { - target: 'exemptee', + target: 'decisionAutoriteEnvironnementaleExemptee', actions: actionMecanisation }, DEMANDER_COMPLEMENTS_DAE: { - target: 'demandeDeComplements', + target: 'recevoirComplementDAEAFaire', cond: context => context.demarcheStatut !== DemarchesStatutsIds.EnConstruction } } }, - demandeDeComplements: { + recevoirComplementDAEAFaire: { on: { - RECEVOIR_COMPLEMENTS_DAE: 'enCours', + RECEVOIR_COMPLEMENTS_DAE: + 'decisionAutoriteEnvironnementaleAFaire', EXEMPTER_DAE: { - target: 'exemptee', + target: 'decisionAutoriteEnvironnementaleExemptee', actions: actionMecanisation }, DEMANDER_MODIFICATION_DE_LA_DEMANDE: { - target: 'modificationDeLaDemande', + target: 'modificationDeLaDemandeAFaire', actions: actionMecanisation } } }, - modificationDeLaDemande: { - on: { MODIFIER_DEMANDE_APRES_DAE: 'demandeModifiee' } + modificationDeLaDemandeAFaire: { + on: { + MODIFIER_DEMANDE_APRES_DAE: + 'modificationDeLaDemandeFaite' + } }, - exemptee: { type: 'final' }, - demandeModifiee: { type: 'final' } + decisionAutoriteEnvironnementaleExemptee: { type: 'final' }, + modificationDeLaDemandeFaite: { type: 'final' } } } }, onDone: { - target: 'completudeDeLaDemande' + target: 'completudeDeLaDemandeAFaire' } }, - completudeDeLaDemande: { + completudeDeLaDemandeAFaire: { on: { - REFUSER_COMPLETUDE: 'refusTemporaireCompletude', - ACCEPTER_COMPLETUDE: 'validationDesFraisDossier' + REFUSER_COMPLETUDE: 'demandeDeComplementsPourCompletudeAFaire', + ACCEPTER_COMPLETUDE: 'validationDesFraisDossierAFaire' }, tags: [tags.responsable['ope-ptmg-973-01']] }, - refusTemporaireCompletude: { + demandeDeComplementsPourCompletudeAFaire: { on: { - DEMANDER_COMPLEMENTS_COMPLETUDE: 'demandeDeComplements' + DEMANDER_COMPLEMENTS_COMPLETUDE: + 'receptionDeComplementsPourCompletudeAFaire' } }, - demandeDeComplements: { + receptionDeComplementsPourCompletudeAFaire: { on: { - RECEVOIR_COMPLEMENTS_COMPLETUDE: 'completudeDeLaDemande' + RECEVOIR_COMPLEMENTS_COMPLETUDE: 'completudeDeLaDemandeAFaire' } }, - validationDesFraisDossier: { + validationDesFraisDossierAFaire: { tags: [tags.responsable['ope-onf-973-01']], on: { VALIDER_FRAIS_DE_DOSSIER: [ { - target: 'recevabiliteDeLaDemande', + target: 'recevabiliteDeLaDemandeAFaire', actions: assign< OctARMContext, { type: 'VALIDER_FRAIS_DE_DOSSIER' } @@ -723,7 +703,7 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ }, { target: - '#validationDuPaiementDesFraisDeDossierComplementaires', + '#validationDuPaiementDesFraisDeDossierComplementairesAFaire', cond: context => (context.demarcheStatut === DemarchesStatutsIds.Desiste || context.demarcheStatut === @@ -733,86 +713,88 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ ] } }, - recevabiliteDeLaDemande: { + recevabiliteDeLaDemandeAFaire: { tags: [tags.responsable['ope-onf-973-01']], on: { DEMANDER_INFORMATION_MCR: - 'demandeInformationPourLaRecevabilite', + 'receptionInformationPourLaRecevabiliteAFaire', DEMANDER_COMPLEMENTS_MCR: - 'demandeComplementsPourLaRecevabilite', - DECLARER_DEMANDE_FAVORABLE: 'expertises', - DECLARER_DEMANDE_DEFAVORABLE: 'recevabiliteDefavorable' + 'receptionComplementsPourLaRecevabiliteAFaire', + DECLARER_DEMANDE_FAVORABLE: 'expertisesMachine', + DECLARER_DEMANDE_DEFAVORABLE: 'avisONFARendre' } }, - demandeInformationPourLaRecevabilite: { + receptionInformationPourLaRecevabiliteAFaire: { on: { - RECEVOIR_INFORMATION_MCR: 'recevabiliteDeLaDemande', - DECLARER_DEMANDE_FAVORABLE: 'expertises', - DECLARER_DEMANDE_DEFAVORABLE: 'recevabiliteDefavorable' + RECEVOIR_INFORMATION_MCR: 'recevabiliteDeLaDemandeAFaire', + DECLARER_DEMANDE_FAVORABLE: 'expertisesMachine', + DECLARER_DEMANDE_DEFAVORABLE: 'avisONFARendre' } }, - demandeComplementsPourLaRecevabilite: { + receptionComplementsPourLaRecevabiliteAFaire: { on: { - RECEVOIR_COMPLEMENTS_MCR: 'recevabiliteDeLaDemande', - DECLARER_DEMANDE_FAVORABLE: 'expertises', - DECLARER_DEMANDE_DEFAVORABLE: 'recevabiliteDefavorable' + RECEVOIR_COMPLEMENTS_MCR: 'recevabiliteDeLaDemandeAFaire', + DECLARER_DEMANDE_FAVORABLE: 'expertisesMachine', + DECLARER_DEMANDE_DEFAVORABLE: 'avisONFARendre' } }, - expertises: { + expertisesMachine: { type: 'parallel', states: { - expertiseONF: { - initial: 'enCours', + expertiseONFMachine: { + initial: 'expertiseONFAFaire', states: { - enCours: { + expertiseONFAFaire: { on: { DEMANDER_INFORMATION_EXPERTISE_ONF: - 'demandeInformationONF', - FAIRE_EXPERTISE_ONF: 'expertiseONFFaite' + 'expertiseOuReceptionInformationONFAFaire', + FAIRE_EXPERTISE_ONF: 'demandeAvisONFAFaire' } }, - demandeInformationONF: { + expertiseOuReceptionInformationONFAFaire: { on: { - FAIRE_EXPERTISE_ONF: 'expertiseONFFaite', - RECEVOIR_INFORMATION_EXPERTISE_ONF: 'enCours' + FAIRE_EXPERTISE_ONF: 'demandeAvisONFAFaire', + RECEVOIR_INFORMATION_EXPERTISE_ONF: 'expertiseONFAFaire' } }, - expertiseONFFaite: { + demandeAvisONFAFaire: { on: { DEMANDER_INFORMATION_AVIS_ONF: - 'demandeInformationAvisONF' + 'receptionInformationAvisONFAFaire' }, entry: assign<OctARMContext>({ expertiseONFFaite: true }) }, - demandeInformationAvisONF: { + receptionInformationAvisONFAFaire: { on: { - RECEVOIR_INFORMATION_AVIS_ONF: 'expertiseONFFaite' + RECEVOIR_INFORMATION_AVIS_ONF: 'demandeAvisONFAFaire' } } } }, - expertiseServiceEau: { - initial: 'enCours', + expertiseServiceEauMachine: { + initial: 'expertiseServiceEauAfaire', states: { - enCours: { + expertiseServiceEauAfaire: { on: { - RECEVOIR_EXPERTISE_SERVICE_EAU: 'edeFait' + RECEVOIR_EXPERTISE_SERVICE_EAU: + 'expertiseServiceEauFait' } }, - edeFait: { + expertiseServiceEauFait: { type: 'final' } } }, - expertiseServiceMines: { - initial: 'enCours', + expertiseServiceMinesMachine: { + initial: 'expertiseServiceMinesAFaire', states: { - enCours: { + expertiseServiceMinesAFaire: { on: { - RECEVOIR_EXPERTISE_SERVICE_MINES: 'edmFait' + RECEVOIR_EXPERTISE_SERVICE_MINES: + 'expertiseServiceMinesFait' } }, - edmFait: { type: 'final' } + expertiseServiceMinesFait: { type: 'final' } } } }, @@ -823,7 +805,7 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ } } }, - recevabiliteDefavorable: { + avisONFARendre: { on: { RENDRE_AVIS_ONF: 'avisONFRendu' } @@ -831,12 +813,12 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ avisONFRendu: { type: 'final' } } }, - declarationLoiSurLEau: { - initial: 'enCours', + declarationLoiSurLEauMachine: { + initial: 'declarationLoiSurLEauAFaire', states: { - enCours: { + declarationLoiSurLEauAFaire: { always: { - target: 'exemptee', + target: 'declarationLoiSurLEauExemptee', cond: context => isNonMecanise(context.mecanisation) || (isMecanise(context.mecanisation) && @@ -845,51 +827,51 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ }, on: { REFUSER_RDE: { - target: 'faite', - cond: (context, event) => (event.franchissements ?? 0) > 0, + target: 'declarationLoiSurLEauFaite', + cond: (_context, event) => (event.franchissements ?? 0) > 0, actions: actionAccepterOuRefuserRDE }, ACCEPTER_RDE: { - target: 'faite', - cond: (context, event) => (event.franchissements ?? 0) > 0, + target: 'declarationLoiSurLEauFaite', + cond: (_context, event) => (event.franchissements ?? 0) > 0, actions: actionAccepterOuRefuserRDE }, - DEMANDER_COMPLEMENTS_RDE: 'demandeDeComplements' + DEMANDER_COMPLEMENTS_RDE: 'receptionDeComplementsAFaire' } }, - demandeDeComplements: { + receptionDeComplementsAFaire: { on: { RECEVOIR_COMPLEMENTS_RDE: { - target: 'enCours', + target: 'declarationLoiSurLEauAFaire', actions: actionRecevoirComplementsRde }, REFUSER_RDE: { - target: 'faite', + target: 'declarationLoiSurLEauFaite', cond: context => isMecanise(context.mecanisation) && context.mecanisation.franchissementCoursEau > 0, actions: actionAccepterOuRefuserRDE }, ACCEPTER_RDE: { - target: 'faite', + target: 'declarationLoiSurLEauFaite', cond: context => isMecanise(context.mecanisation) && context.mecanisation.franchissementCoursEau > 0, actions: actionAccepterOuRefuserRDE }, - DEMANDER_COMPLEMENTS_RDE: 'demandeDeComplements' + DEMANDER_COMPLEMENTS_RDE: 'receptionDeComplementsAFaire' } }, - exemptee: { + declarationLoiSurLEauExemptee: { always: { - target: 'enCours', + target: 'declarationLoiSurLEauAFaire', cond: context => isMecanise(context.mecanisation) && context.mecanisation.franchissementCoursEau > 0 }, on: { DEMANDER_COMPLEMENTS_RDE: { - target: 'demandeDeComplements', + target: 'receptionDeComplementsAFaire', cond: context => (context.demarcheStatut === DemarchesStatutsIds.Depose || context.demarcheStatut === @@ -897,7 +879,7 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ isMecanise(context.mecanisation) }, REFUSER_RDE: { - target: 'faite', + target: 'declarationLoiSurLEauFaite', cond: (context, event) => (isInconnu(context.mecanisation) || isMecanise(context.mecanisation)) && @@ -905,7 +887,7 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ actions: actionAccepterOuRefuserRDE }, ACCEPTER_RDE: { - target: 'faite', + target: 'declarationLoiSurLEauFaite', cond: (context, event) => (isInconnu(context.mecanisation) || isMecanise(context.mecanisation)) && @@ -915,30 +897,30 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ }, type: 'final' }, - faite: { type: 'final' } + declarationLoiSurLEauFaite: { type: 'final' } } } } }, - saisineCommissionAutorisationsDeRecherchesMinieres: { + saisineCommissionAutorisationsDeRecherchesMinieresAFaire: { on: { FAIRE_SAISINE_CARM: { - target: 'avisCommissionAutorisationDeRecherchesMinieres', + target: 'avisCommissionAutorisationDeRecherchesMinieresAFaire', actions: assign<OctARMContext, { type: 'FAIRE_SAISINE_CARM' }>({ visibilite: 'publique' }) }, DEMANDER_COMPLEMENTS_RDE: { target: [ - 'demandeEnConstructionOuDeposeeOuEnInstruction.declarationLoiSurLEau.demandeDeComplements', - 'demandeEnConstructionOuDeposeeOuEnInstruction.pasRde.avisONFRendu' + 'demandeEnConstructionOuDeposeeOuEnInstructionMachine.declarationLoiSurLEauMachine.receptionDeComplementsAFaire', + 'demandeEnConstructionOuDeposeeOuEnInstructionMachine.pasRdeMachine.avisONFRendu' ], cond: context => isMecanise(context.mecanisation) && !context.mecanisation.franchissementCoursEau }, REFUSER_RDE: { - target: 'saisineCommissionAutorisationsDeRecherchesMinieres', + target: 'saisineCommissionAutorisationsDeRecherchesMinieresAFaire', cond: (context, event) => isMecanise(context.mecanisation) && !context.mecanisation.franchissementCoursEau && @@ -946,7 +928,7 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ actions: actionAccepterOuRefuserRDE }, ACCEPTER_RDE: { - target: 'saisineCommissionAutorisationsDeRecherchesMinieres', + target: 'saisineCommissionAutorisationsDeRecherchesMinieresAFaire', cond: (context, event) => isMecanise(context.mecanisation) && !context.mecanisation.franchissementCoursEau && @@ -955,20 +937,21 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ } } }, - avisCommissionAutorisationDeRecherchesMinieres: { + avisCommissionAutorisationDeRecherchesMinieresAFaire: { on: { RENDRE_AVIS_FAVORABLE_CARM: [ { - target: 'signatureAutorisationDeRechercheMiniere', + target: 'signatureAutorisationDeRechercheMiniereAFaire', cond: context => isNonMecanise(context.mecanisation) }, { - target: 'notificationDuDemandeurFraisDeDossierComplementaires', + target: + 'notificationDuDemandeurFraisDeDossierComplementairesAFaire', cond: context => isMecanise(context.mecanisation) } ], RENDRE_AVIS_DEFAVORABLE_CARM: { - target: 'notificationDuDemandeurAvisDefavorableCARM', + target: 'notificationDuDemandeurAvisDefavorableCARMAFaire', actions: assign< OctARMContext, { type: 'RENDRE_AVIS_DEFAVORABLE_CARM' } @@ -976,50 +959,53 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ demarcheStatut: DemarchesStatutsIds.Rejete }) }, - RENDRE_AVIS_AJOURNE_CARM: 'notificationDuDemandeurAvisAjourneCARM' + RENDRE_AVIS_AJOURNE_CARM: 'notificationDuDemandeurAvisAjourneCARMAFaire' } }, - notificationDuDemandeurAvisAjourneCARM: { - on: { NOTIFIER_DEMANDEUR_AVIS_AJOURNE_CARM: 'saisineCARMEnAttente' } + notificationDuDemandeurAvisAjourneCARMAFaire: { + on: { NOTIFIER_DEMANDEUR_AVIS_AJOURNE_CARM: 'saisineCARMAFaire' } }, - saisineCARMEnAttente: { + saisineCARMAFaire: { on: { - DEMANDER_COMPLEMENT_SAISINE_CARM: 'demandeComplementSaisineCARM', - FAIRE_SAISINE_CARM: 'avisCommissionAutorisationDeRecherchesMinieres' + DEMANDER_COMPLEMENT_SAISINE_CARM: + 'receptionComplementSaisineCARMAFaire', + FAIRE_SAISINE_CARM: + 'avisCommissionAutorisationDeRecherchesMinieresAFaire' } }, - demandeComplementSaisineCARM: { + receptionComplementSaisineCARMAFaire: { on: { - RECEVOIR_COMPLEMENT_SAISINE_CARM: 'saisineCARMEnAttente', - FAIRE_SAISINE_CARM: 'avisCommissionAutorisationDeRecherchesMinieres' + RECEVOIR_COMPLEMENT_SAISINE_CARM: 'saisineCARMAFaire', + FAIRE_SAISINE_CARM: + 'avisCommissionAutorisationDeRecherchesMinieresAFaire' } }, - notificationDuDemandeurAvisDefavorableCARM: { + notificationDuDemandeurAvisDefavorableCARMAFaire: { on: { NOTIFIER_DEMANDEUR_AVIS_DEFAVORABLE_CARM: { target: 'fini' } } }, - notificationDuDemandeurFraisDeDossierComplementaires: { + notificationDuDemandeurFraisDeDossierComplementairesAFaire: { on: { NOTIFIER_DEMANDEUR_AVIS_FAVORABLE_CARM: - 'paiementDesFraisDeDossierComplementaires' + 'paiementDesFraisDeDossierComplementairesAFaire' } }, - paiementDesFraisDeDossierComplementaires: { + paiementDesFraisDeDossierComplementairesAFaire: { on: { PAYER_FRAIS_DE_DOSSIER_COMPLEMENTAIRES: - 'validationDuPaiementDesFraisDeDossierComplementaires' + 'validationDuPaiementDesFraisDeDossierComplementairesAFaire' } }, - validationDuPaiementDesFraisDeDossierComplementaires: { + validationDuPaiementDesFraisDeDossierComplementairesAFaire: { tags: [tags.responsable['ope-onf-973-01']], - id: 'validationDuPaiementDesFraisDeDossierComplementaires', + id: 'validationDuPaiementDesFraisDeDossierComplementairesAFaire', on: { VALIDER_PAIEMENT_FRAIS_DE_DOSSIER_COMPLEMENTAIRES: [ { - target: 'signatureAutorisationDeRechercheMiniere', + target: 'signatureAutorisationDeRechercheMiniereAFaire', actions: assign< OctARMContext, { type: 'VALIDER_PAIEMENT_FRAIS_DE_DOSSIER_COMPLEMENTAIRES' } @@ -1063,11 +1049,11 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ ] } }, - signatureAutorisationDeRechercheMiniere: { + signatureAutorisationDeRechercheMiniereAFaire: { on: { SIGNER_AUTORISATION_DE_RECHERCHE_MINIERE: [ { - target: 'avenantARM', + target: 'avenantARMAFaire', actions: assign< OctARMContext, { type: 'SIGNER_AUTORISATION_DE_RECHERCHE_MINIERE' } @@ -1077,7 +1063,7 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ cond: context => isMecanise(context.mecanisation) }, { - target: 'notificationSignatureARM', + target: 'notificationSignatureARMAFaire', actions: assign< OctARMContext, { type: 'SIGNER_AUTORISATION_DE_RECHERCHE_MINIERE' } @@ -1089,26 +1075,26 @@ export const armOctMachine = createMachine<OctARMContext, XStateEvent>({ ] } }, - notificationSignatureARM: { - on: { NOTIFIER_DEMANDEUR_SIGNATURE_ARM: 'avenantARM' } + notificationSignatureARMAFaire: { + on: { NOTIFIER_DEMANDEUR_SIGNATURE_ARM: 'avenantARMAFaire' } }, - avenantARM: { - on: { FAIRE_AVENANT_ARM: 'notificationAvenantARM' } + avenantARMAFaire: { + on: { FAIRE_AVENANT_ARM: 'notificationAvenantARMAFaire' } }, - notificationAvenantARM: { - on: { NOTIFIER_AVENANT_ARM: 'avenantARM' } + notificationAvenantARMAFaire: { + on: { NOTIFIER_AVENANT_ARM: 'avenantARMAFaire' } }, - desistementDuDemandeur: { + desistementDuDemandeurFait: { always: validationFraisApresDesistementOuClassementSansSuite }, - decisionDeClassementSansSuite: { + decisionDeClassementSansSuiteFait: { on: { NOTIFIER_DEMANDEUR_CSS: { - target: 'notificationDuDemandeurApresClassementSansSuite' + target: 'notificationDuDemandeurApresClassementSansSuiteFait' } } }, - notificationDuDemandeurApresClassementSansSuite: { + notificationDuDemandeurApresClassementSansSuiteFait: { always: validationFraisApresDesistementOuClassementSansSuite }, diff --git a/packages/api/src/business/rules-demarches/axm/oct.cas.json b/packages/api/src/business/rules-demarches/axm/oct.cas.json new file mode 100644 index 000000000..50e82b867 --- /dev/null +++ b/packages/api/src/business/rules-demarches/axm/oct.cas.json @@ -0,0 +1 @@ +[{"id":0,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"agn","etapeStatutId":"def"},{"date":"10","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"11","etapeTypeId":"apd","etapeStatutId":"def"},{"date":"12","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"apo","etapeStatutId":"def"},{"date":"14","etapeTypeId":"dex","etapeStatutId":"rej"}]},{"id":1,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"agn","etapeStatutId":"def"},{"date":"10","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"11","etapeTypeId":"apd","etapeStatutId":"def"},{"date":"12","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"apo","etapeStatutId":"def"},{"date":"14","etapeTypeId":"dex","etapeStatutId":"rej"}]},{"id":2,"demarcheStatutId":"dep","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"}]},{"id":3,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"afp","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"agn","etapeStatutId":"def"},{"date":"12","etapeTypeId":"ama","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"ars","etapeStatutId":"fav"},{"date":"14","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"15","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"17","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":4,"demarcheStatutId":"des","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"des","etapeStatutId":"fai"}]},{"id":5,"demarcheStatutId":"eco","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"aco"}]},{"id":6,"demarcheStatutId":"des","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"afp","etapeStatutId":"def"},{"date":"9","etapeTypeId":"des","etapeStatutId":"fai"}]},{"id":7,"demarcheStatutId":"dep","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"}]},{"id":8,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"afp","etapeStatutId":"fre"},{"date":"10","etapeTypeId":"aac","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"12","etapeTypeId":"ass","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"agn","etapeStatutId":"fav"},{"date":"14","etapeTypeId":"cps","etapeStatutId":"fav"},{"date":"15","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"16","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"18","etapeTypeId":"sas","etapeStatutId":"fai"},{"date":"19","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":9,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"afp","etapeStatutId":"fre"},{"date":"10","etapeTypeId":"aac","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"12","etapeTypeId":"ass","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"agn","etapeStatutId":"fav"},{"date":"14","etapeTypeId":"cps","etapeStatutId":"fav"},{"date":"15","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"16","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"18","etapeTypeId":"sas","etapeStatutId":"fai"},{"date":"19","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":10,"demarcheStatutId":"eco","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"aco"}]},{"id":11,"demarcheStatutId":"dep","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"}]},{"id":12,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aec","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"aac","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"afp","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"ass","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"14","etapeTypeId":"agn","etapeStatutId":"def"},{"date":"15","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"16","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"18","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":13,"demarcheStatutId":"eco","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"}]},{"id":14,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aac","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"ars","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"afp","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"13","etapeTypeId":"agn","etapeStatutId":"def"},{"date":"14","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"15","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"17","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":15,"demarcheStatutId":"eco","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"}]},{"id":16,"demarcheStatutId":"dep","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"}]},{"id":17,"demarcheStatutId":"dep","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"}]},{"id":18,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"afp","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"auc","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"12","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"15","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":19,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"5","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"agn","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"9","etapeTypeId":"ars","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":20,"demarcheStatutId":"dep","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"}]},{"id":21,"demarcheStatutId":"dep","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"}]},{"id":22,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"afp","etapeStatutId":"fre"},{"date":"10","etapeTypeId":"aac","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"12","etapeTypeId":"ass","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"agn","etapeStatutId":"fav"},{"date":"14","etapeTypeId":"cps","etapeStatutId":"fav"},{"date":"15","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"16","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"18","etapeTypeId":"sas","etapeStatutId":"fai"},{"date":"19","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":23,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"5","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"afp","etapeStatutId":"fre"},{"date":"8","etapeTypeId":"ass","etapeStatutId":"fre"},{"date":"9","etapeTypeId":"aac","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"11","etapeTypeId":"agn","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"15","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":24,"demarcheStatutId":"ins","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"5","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"afp","etapeStatutId":"fre"},{"date":"8","etapeTypeId":"ass","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"aec","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"aac","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"agn","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"14","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"15","etapeTypeId":"apo","etapeStatutId":"fav"}]},{"id":25,"demarcheStatutId":"dep","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"}]},{"id":26,"demarcheStatutId":"ins","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"5","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"ssr","etapeStatutId":"fai"}]},{"id":27,"demarcheStatutId":"des","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"des","etapeStatutId":"fai"}]},{"id":28,"demarcheStatutId":"dep","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"}]},{"id":29,"demarcheStatutId":"dep","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"}]},{"id":30,"demarcheStatutId":"dep","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"}]},{"id":31,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"5","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"8","etapeTypeId":"agn","etapeStatutId":"def"},{"date":"9","etapeTypeId":"ars","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":32,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"5","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"8","etapeTypeId":"agn","etapeStatutId":"def"},{"date":"9","etapeTypeId":"ars","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":33,"demarcheStatutId":"dep","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"}]},{"id":34,"demarcheStatutId":"dep","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"2","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"}]},{"id":35,"demarcheStatutId":"dep","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"}]},{"id":36,"demarcheStatutId":"eco","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"aco"}]},{"id":37,"demarcheStatutId":"eco","demarchePublique":false,"etapes":[{"date":"0","etapeTypeId":"mfr","etapeStatutId":"aco"}]},{"id":38,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aec","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"afp","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"ass","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"aac","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"agn","etapeStatutId":"def"},{"date":"14","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"15","etapeTypeId":"apd","etapeStatutId":"fre"},{"date":"16","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"18","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":39,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"afp","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"ass","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"aac","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"agn","etapeStatutId":"def"},{"date":"13","etapeTypeId":"ars","etapeStatutId":"fav"},{"date":"14","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"15","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"16","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"17","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":40,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"afp","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"aac","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"auc","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"13","etapeTypeId":"ars","etapeStatutId":"fav"},{"date":"14","etapeTypeId":"agn","etapeStatutId":"fav"},{"date":"15","etapeTypeId":"abs","etapeStatutId":"dre"},{"date":"16","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"17","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"18","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"19","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":41,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"afp","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"aac","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"auc","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"13","etapeTypeId":"agn","etapeStatutId":"def"},{"date":"14","etapeTypeId":"ars","etapeStatutId":"fav"},{"date":"15","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"16","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"18","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":42,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"5","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"ass","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"aec","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"12","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":43,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"ass","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"aec","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"aof","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"14","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"15","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":44,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"5","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"7","etapeTypeId":"afp","etapeStatutId":"fav"},{"date":"8","etapeTypeId":"aac","etapeStatutId":"fav"},{"date":"9","etapeTypeId":"agn","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"aof","etapeStatutId":"fre"},{"date":"11","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"13","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"14","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":45,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"1","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"aac","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"afp","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"auc","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"13","etapeTypeId":"agn","etapeStatutId":"def"},{"date":"14","etapeTypeId":"ars","etapeStatutId":"fav"},{"date":"15","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"16","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"18","etapeTypeId":"dex","etapeStatutId":"acc"}]},{"id":46,"demarcheStatutId":"rej","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai","contenu":{"arm":{"mecanise":false}}},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"afp","etapeStatutId":"fav"},{"date":"10","etapeTypeId":"aec","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"ass","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"aac","etapeStatutId":"fav"},{"date":"13","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"14","etapeTypeId":"agn","etapeStatutId":"def"},{"date":"15","etapeTypeId":"ars","etapeStatutId":"fav"},{"date":"16","etapeTypeId":"apd","etapeStatutId":"def"},{"date":"17","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"18","etapeTypeId":"apo","etapeStatutId":"def"},{"date":"19","etapeTypeId":"dex","etapeStatutId":"rej"}]},{"id":47,"demarcheStatutId":"acc","demarchePublique":true,"etapes":[{"date":"0","etapeTypeId":"dae","etapeStatutId":"exe"},{"date":"1","etapeTypeId":"asl","etapeStatutId":"fav"},{"date":"2","etapeTypeId":"mfr","etapeStatutId":"fai"},{"date":"3","etapeTypeId":"mdp","etapeStatutId":"fai"},{"date":"4","etapeTypeId":"mca","etapeStatutId":"fai"},{"date":"5","etapeTypeId":"rca","etapeStatutId":"fai"},{"date":"6","etapeTypeId":"mcr","etapeStatutId":"fav"},{"date":"7","etapeTypeId":"scl","etapeStatutId":"fai"},{"date":"8","etapeTypeId":"ssr","etapeStatutId":"fai"},{"date":"9","etapeTypeId":"afp","etapeStatutId":"def"},{"date":"10","etapeTypeId":"aac","etapeStatutId":"fav"},{"date":"11","etapeTypeId":"auc","etapeStatutId":"fav"},{"date":"12","etapeTypeId":"aof","etapeStatutId":"def"},{"date":"13","etapeTypeId":"ars","etapeStatutId":"fav"},{"date":"14","etapeTypeId":"agn","etapeStatutId":"fav"},{"date":"15","etapeTypeId":"apd","etapeStatutId":"fav"},{"date":"16","etapeTypeId":"spo","etapeStatutId":"fai"},{"date":"17","etapeTypeId":"apo","etapeStatutId":"fav"},{"date":"18","etapeTypeId":"dex","etapeStatutId":"acc"}]}] \ No newline at end of file diff --git a/packages/api/src/business/rules-demarches/axm/oct.machine.test.ts b/packages/api/src/business/rules-demarches/axm/oct.machine.test.ts new file mode 100644 index 000000000..089f2596a --- /dev/null +++ b/packages/api/src/business/rules-demarches/axm/oct.machine.test.ts @@ -0,0 +1,373 @@ +import { + interpretMachine, + orderAndInterpretMachine +} from '../machine-test-helper' +import { AxmOctMachine } from './oct.machine' +import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts' +import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations' +const etapesProd = require('./oct.cas.json') + +describe('vérifie l’arbre d’octroi d’AXM', () => { + const axmOctMachine = new AxmOctMachine() + test('peut créer une "mdp" après une "mfr", "dae" et "asl"', () => { + const etapes = [ + { ...ETES.demande.FAIT, date: '2022-04-14' }, + { + ...ETES + .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_ + .EXEMPTE, + date: '2020-01-01' + }, + { ...ETES.decisionDuProprietaireDuSol.FAVORABLE, date: '2020-01-01' }, + { ...ETES.depotDeLaDemande.FAIT, date: '2022-04-15' } + ] + const service = orderAndInterpretMachine(axmOctMachine, etapes) + expect(service).canOnlyTransitionTo(axmOctMachine, [ + 'DEMANDER_COMPLEMENTS_POUR_RECEVABILITE', + 'FAIRE_CLASSEMENT_SANS_SUITE', + 'FAIRE_DESISTEMENT_DEMANDEUR', + 'FAIRE_NOTE_INTERNE_SIGNALEE', + 'FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE', + 'FAIRE_RECEVABILITE_DEMANDE_FAVORABLE', + 'RENDRE_DECISION_IMPLICITE_REJET' + ]) + expect(axmOctMachine.whoIsBlocking(etapes)).toStrictEqual([ + ADMINISTRATION_IDS['DGTM - GUYANE'] + ]) + }) + + test('peut créer une "mdp" après une "mfr", "asl", "dae" requise', () => { + const etapes = [ + { ...ETES.demande.FAIT, date: '2022-04-14' }, + { + ...ETES + .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_ + .REQUIS, + date: '2020-01-01' + }, + { + ...ETES + .modificationDeLaDemande_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_ + .FAIT, + date: '2020-01-02' + }, + { ...ETES.decisionDuProprietaireDuSol.FAVORABLE, date: '2020-01-01' }, + { ...ETES.depotDeLaDemande.FAIT, date: '2022-04-15' } + ] + const service = orderAndInterpretMachine(axmOctMachine, etapes) + expect(service).canOnlyTransitionTo(axmOctMachine, [ + 'DEMANDER_COMPLEMENTS_POUR_RECEVABILITE', + 'FAIRE_CLASSEMENT_SANS_SUITE', + 'FAIRE_DESISTEMENT_DEMANDEUR', + 'FAIRE_NOTE_INTERNE_SIGNALEE', + 'FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE', + 'FAIRE_RECEVABILITE_DEMANDE_FAVORABLE', + 'RENDRE_DECISION_IMPLICITE_REJET' + ]) + expect(axmOctMachine.whoIsBlocking(etapes)).toStrictEqual([ + ADMINISTRATION_IDS['DGTM - GUYANE'] + ]) + }) + + test('ne peut pas créer une "mdp" avec une "dae" requise', () => { + const service = orderAndInterpretMachine(axmOctMachine, [ + { ...ETES.demande.FAIT, date: '2022-04-14' }, + { + ...ETES + .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_ + .REQUIS, + date: '2020-01-01' + }, + { ...ETES.decisionDuProprietaireDuSol.FAVORABLE, date: '2020-01-01' } + ]) + expect(service).canOnlyTransitionTo(axmOctMachine, [ + 'FAIRE_CLASSEMENT_SANS_SUITE', + 'FAIRE_DESISTEMENT_DEMANDEUR', + 'FAIRE_NOTE_INTERNE_SIGNALEE', + 'MODIFIER_DEMANDE_APRES_DAE' + ]) + }) + + test('peut faire l’avis du DREAL sans aucun autre avis', () => { + const service = orderAndInterpretMachine(axmOctMachine, [ + { ...ETES.demande.FAIT, date: '2022-04-14' }, + { + ...ETES + .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_ + .EXEMPTE, + date: '2020-01-01' + }, + { ...ETES.decisionDuProprietaireDuSol.FAVORABLE, date: '2020-01-01' }, + { ...ETES.depotDeLaDemande.FAIT, date: '2022-04-15' }, + { ...ETES.recevabiliteDeLaDemande.FAVORABLE, date: '2022-04-15' }, + { ...ETES.saisineDesCollectivitesLocales.FAIT, date: '2022-04-15' }, + { ...ETES.saisineDesServices.FAIT, date: '2022-04-15' }, + { + ...ETES + .avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement + .FAVORABLE, + date: '2022-04-15' + } + ]) + expect(service).canOnlyTransitionTo(axmOctMachine, [ + 'FAIRE_CLASSEMENT_SANS_SUITE', + 'FAIRE_DESISTEMENT_DEMANDEUR', + 'FAIRE_NOTE_INTERNE_SIGNALEE', + 'FAIRE_SAISINE_COMMISSION_DEPARTEMENTALE_DES_MINES', + 'RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES', + 'RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES_AJOURNE' + ]) + }) + test('peut ajourner l’avis de la commission départementale des mines', () => { + const service = orderAndInterpretMachine(axmOctMachine, [ + { ...ETES.demande.FAIT, date: '2022-04-14' }, + { + ...ETES + .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_ + .EXEMPTE, + date: '2020-01-01' + }, + { ...ETES.decisionDuProprietaireDuSol.FAVORABLE, date: '2020-01-01' }, + { ...ETES.depotDeLaDemande.FAIT, date: '2022-04-15' }, + { ...ETES.recevabiliteDeLaDemande.FAVORABLE, date: '2022-04-15' }, + { ...ETES.saisineDesCollectivitesLocales.FAIT, date: '2022-04-15' }, + { ...ETES.saisineDesServices.FAIT, date: '2022-04-15' }, + { + ...ETES + .avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement + .FAVORABLE, + date: '2022-04-15' + }, + { + ...ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.AJOURNE, + date: '2022-04-16' + }, + { + ...ETES + .avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement + .FAVORABLE, + date: '2022-04-17' + }, + { + ...ETES.saisineDeLaCommissionDepartementaleDesMines_CDM_.FAIT, + date: '2022-04-18' + }, + { + ...ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.FAVORABLE, + date: '2022-04-18' + } + ]) + expect(service).canOnlyTransitionTo(axmOctMachine, [ + 'FAIRE_CLASSEMENT_SANS_SUITE', + 'FAIRE_DESISTEMENT_DEMANDEUR', + 'FAIRE_NOTE_INTERNE_SIGNALEE', + 'FAIRE_SAISINE_AUTORITE_SIGNATAIRE', + 'RENDRE_DECISION_ADMINISTRATION_ACCEPTE', + 'RENDRE_DECISION_ADMINISTRATION_REJETE' + ]) + }) + test('après une saisine des services avec un accord du propriétaire du sol AVEC réserves, la confirmation de l’accord est obligatoire', () => { + const service = orderAndInterpretMachine(axmOctMachine, [ + { ...ETES.demande.FAIT, date: '2022-04-14' }, + { + ...ETES + .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_ + .EXEMPTE, + date: '2020-01-01' + }, + { + ...ETES.decisionDuProprietaireDuSol.FAVORABLE_AVEC_RESERVE, + date: '2020-01-01' + }, + { ...ETES.depotDeLaDemande.FAIT, date: '2022-04-15' }, + { ...ETES.recevabiliteDeLaDemande.FAVORABLE, date: '2022-04-15' }, + { ...ETES.saisineDesCollectivitesLocales.FAIT, date: '2022-04-15' }, + { ...ETES.avisDunMaire.FAVORABLE, date: '2022-04-15' }, + { ...ETES.saisineDesServices.FAIT, date: '2022-04-15' }, + { + ...ETES.avisDGTMServiceMilieuxNaturelsBiodiversiteSitesEtPaysages_MNBST_ + .FAVORABLE, + date: '2022-04-15' + }, + { + ...ETES.avisDGTMServiceAmenagementUrbanismeConstructionLogement_AUCL_ + .FAVORABLE, + date: '2022-04-16' + }, + { + ...ETES + .avisDeLaDirectionDesEntreprisesDeLaConcurrenceDeLaConsommationDuTravailEtDeLemploi + .FAVORABLE, + date: '2022-04-16' + }, + { + ...ETES.avisDeLaDirectionDalimentationDeLagricultureEtDeLaForet + .FAVORABLE, + date: '2022-04-16' + }, + { + ...ETES.avisDeDirectionRegionaleDesAffairesCulturelles.FAVORABLE, + date: '2022-04-16' + }, + { ...ETES.avisDeLagenceRegionaleDeSante.FAVORABLE, date: '2022-04-16' }, + { + ...ETES.avisDeLaDirectionRegionaleDesFinancesPubliques.FAVORABLE, + date: '2022-04-16' + }, + { + ...ETES.avisDeLaCaisseGeneraleDeSecuriteSociale.FAVORABLE, + date: '2022-04-16' + }, + { ...ETES.avisDeLOfficeNationalDesForets.FAVORABLE, date: '2022-04-16' }, + { + ...ETES.avisDeLetatMajorOrpaillageEtPecheIllicite_EMOPI_.FAVORABLE, + date: '2022-04-16' + }, + { ...ETES.avisDeLaGendarmerieNationale.FAVORABLE, date: '2022-04-16' } + ]) + + expect(service).canOnlyTransitionTo(axmOctMachine, [ + 'DEMANDER_INFORMATION_POUR_AVIS_DREAL', + 'FAIRE_CLASSEMENT_SANS_SUITE', + 'FAIRE_CONFIRMATION_PROPRIETAIRE_DU_SOL', + 'FAIRE_DESISTEMENT_DEMANDEUR', + 'FAIRE_NOTE_INTERNE_SIGNALEE' + ]) + }) + + test('ne peut pas faire de note interne signalée avant une demande', () => { + const service = orderAndInterpretMachine(axmOctMachine, []) + expect(service).canOnlyTransitionTo(axmOctMachine, [ + 'RENDRE_DAE_REQUISE', + 'RENDRE_DAE_EXEMPTEE', + 'FAIRE_DEMANDE', + 'RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_DEFAVORABLE', + 'RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE', + 'RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE_AVEC_RESERVE' + ]) + }) + + test('peut faire uniquement une decision annulation par le juge administratif après une décision implicite', () => { + const service = orderAndInterpretMachine(axmOctMachine, [ + { ...ETES.demande.FAIT, date: '2022-04-01' }, + { + ...ETES + .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_ + .EXEMPTE, + date: '2020-01-01' + }, + { ...ETES.decisionDuProprietaireDuSol.FAVORABLE, date: '2020-01-01' }, + { ...ETES.noteInterneSignalee.FAIT, date: '2022-04-10' }, + { ...ETES.depotDeLaDemande.FAIT, date: '2022-04-11' }, + { ...ETES.decisionImplicite.REJETE, date: '2022-04-12' } + ]) + expect(service).canOnlyTransitionTo(axmOctMachine, [ + 'FAIRE_NOTE_INTERNE_SIGNALEE', + 'RENDRE_DECISION_ANNULATION_PAR_JUGE_ADMINISTRATIF' + ]) + }) + + test('peut classer sans suite après une décision du propriétaire du sol défavorable', () => { + const etapes = [ + { ...ETES.decisionDuProprietaireDuSol.DEFAVORABLE, date: '2020-01-01' }, + { ...ETES.classementSansSuite.FAIT, date: '2022-04-10' } + ] + const service = orderAndInterpretMachine(axmOctMachine, etapes) + expect(service).canOnlyTransitionTo(axmOctMachine, []) + expect(axmOctMachine.whoIsBlocking(etapes)).toStrictEqual([]) + }) + + test('après une décision du propriétaire du sol défavorable, la DGTM est en attente', () => { + const etapes = [ + { ...ETES.decisionDuProprietaireDuSol.DEFAVORABLE, date: '2020-01-01' } + ] + const service = orderAndInterpretMachine(axmOctMachine, etapes) + expect(service).canOnlyTransitionTo(axmOctMachine, [ + 'FAIRE_CLASSEMENT_SANS_SUITE' + ]) + expect(axmOctMachine.whoIsBlocking(etapes)).toStrictEqual([ + ADMINISTRATION_IDS['DGTM - GUYANE'] + ]) + }) + + test('peut faire un octroi complet', () => { + const etapes = [ + { ...ETES.demande.FAIT, date: '2022-04-01' }, + { + ...ETES + .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_ + .EXEMPTE, + date: '2020-01-01' + }, + { ...ETES.decisionDuProprietaireDuSol.FAVORABLE, date: '2020-01-01' }, + { ...ETES.noteInterneSignalee.FAIT, date: '2022-04-10' }, + { ...ETES.depotDeLaDemande.FAIT, date: '2022-04-11' }, + { + ...ETES.demandeDeComplements_RecevabiliteDeLaDemande_.FAIT, + date: '2022-04-11' + }, + { + ...ETES.receptionDeComplements_RecevabiliteDeLaDemande_.FAIT, + date: '2022-04-11' + }, + { ...ETES.recevabiliteDeLaDemande.DEFAVORABLE, date: '2022-04-12' }, + { ...ETES.modificationDeLaDemande.FAIT, date: '2022-04-13' }, + { ...ETES.recevabiliteDeLaDemande.FAVORABLE, date: '2022-04-15' }, + { ...ETES.saisineDesCollectivitesLocales.FAIT, date: '2022-04-16' }, + { ...ETES.avisDunMaire.FAVORABLE, date: '2022-04-17' }, + { ...ETES.saisineDesServices.FAIT, date: '2022-04-18' }, + { + ...ETES.avisDGTMServiceMilieuxNaturelsBiodiversiteSitesEtPaysages_MNBST_ + .FAVORABLE, + date: '2022-04-19' + }, + { + ...ETES + .avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement + .FAVORABLE, + date: '2022-04-20' + }, + { + ...ETES.saisineDeLaCommissionDepartementaleDesMines_CDM_.FAIT, + date: '2022-04-21' + }, + { + ...ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.FAVORABLE, + date: '2022-04-22' + }, + { + ...ETES.saisineDeLautoriteSignataire.FAIT, + date: '2022-04-23' + }, + { + ...ETES.decisionDeLadministration.ACCEPTE, + date: '2022-04-24' + }, + { ...ETES.notificationDesCollectivitesLocales.FAIT, date: '2022-04-25' }, + { + ...ETES.publicationDansUnJournalLocalOuNational.FAIT, + date: '2022-04-26' + }, + { + ...ETES.publicationDeDecisionAuRecueilDesActesAdministratifs.FAIT, + date: '2022-04-27' + }, + { ...ETES.notificationAuDemandeur.FAIT, date: '2022-04-28' } + ] + const service = orderAndInterpretMachine(axmOctMachine, etapes) + expect(service).canOnlyTransitionTo(axmOctMachine, [ + 'FAIRE_NOTE_INTERNE_SIGNALEE' + ]) + expect(axmOctMachine.whoIsBlocking(etapes)).toStrictEqual([]) + }) + + // pour regénérer le oct.cas.json: `npm run test:generate-data -w packages/api` + test.each(etapesProd as any[])('cas réel N°$id', demarche => { + // ici les étapes sont déjà ordonnées + interpretMachine(axmOctMachine, demarche.etapes) + expect(axmOctMachine.demarcheStatut(demarche.etapes)).toStrictEqual({ + demarcheStatut: demarche.demarcheStatutId, + publique: demarche.demarchePublique + }) + }) +}) diff --git a/packages/api/src/business/rules-demarches/axm/oct.machine.ts b/packages/api/src/business/rules-demarches/axm/oct.machine.ts new file mode 100644 index 000000000..155910963 --- /dev/null +++ b/packages/api/src/business/rules-demarches/axm/oct.machine.ts @@ -0,0 +1,855 @@ +import { assign, createMachine } from 'xstate' +import { CaminoMachine } from '../machine-helper' +import { CaminoCommonContext, DBEtat, Etape, tags } from '../machine-common' +import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts' +import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts' +import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations' + +// FIXME +// ? revoir la 1ère machine +// ? refacto de la machine +// ? vérifier la visibilité classement sans suite (@laure) +// ? brancher le calcul de la visibilité +export type AXMOctXStateEvent = + | { type: 'FAIRE_DEMANDE' } + | { type: 'DEPOSER_DEMANDE' } + | { type: 'RENDRE_DAE_EXEMPTEE' } + | { type: 'RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE' } + | { type: 'RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE_AVEC_RESERVE' } + | { type: 'RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_DEFAVORABLE' } + | { type: 'RENDRE_DAE_REQUISE' } + | { type: 'MODIFIER_DEMANDE_APRES_DAE' } + | { type: 'DEMANDER_COMPLEMENTS_POUR_RECEVABILITE' } + | { type: 'RECEVOIR_COMPLEMENTS_POUR_RECEVABILITE' } + | { type: 'FAIRE_RECEVABILITE_DEMANDE_FAVORABLE' } + | { type: 'FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE' } + | { type: 'MODIFIER_LA_DEMANDE' } + | { type: 'FAIRE_SAISINE_COLLECTIVITES_LOCALES' } + | { type: 'RENDRE_AVIS_DUN_MAIRE' } + | { type: 'RENDRE_AVIS_DREAL' } + | { type: 'FAIRE_SAISINE_DES_SERVICES' } + | { type: 'RENDRE_AVIS_DGTM_MNBST' } + | { type: 'FAIRE_SAISINE_COMMISSION_DEPARTEMENTALE_DES_MINES' } + | { type: 'RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES' } + | { type: 'RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES_AJOURNE' } + | { type: 'FAIRE_SAISINE_AUTORITE_SIGNATAIRE' } + | { type: 'RENDRE_DECISION_ADMINISTRATION_ACCEPTE' } + | { type: 'RENDRE_DECISION_ADMINISTRATION_REJETE' } + | { type: 'NOTIFIER_DEMANDEUR' } + | { type: 'PUBLIER_DECISIONS_RECUEIL_ACTES_ADMINISTRATIFS' } + | { type: 'PUBLIER_DANS_UN_JOURNAL_LOCAL_OU_NATIONAL' } + | { type: 'NOTIFIER_COLLECTIVITES_LOCALES' } + | { type: 'RENDRE_DECISION_ABROGATION' } + | { type: 'RENDRE_DECISION_RETRAIT' } + | { type: 'RENDRE_AVIS_DGTMAUCUL' } + | { + type: 'RENDRE_AVIS_DIRECTION_ENTREPRISE_CONCURRENCE_CONSOMMATION_TRAVAIL_EMPLOI' + } + | { type: 'RENDRE_AVIS_DIRECTION_ALIMENTATION_AGRICULTURE_FORET' } + | { type: 'RENDRE_AVIS_DIRECTION_REGIONALE_AFFAIRES_CULTURELLES' } + | { type: 'RENDRE_AVIS_AGENCE_REGIONALE_SANTE' } + | { type: 'RENDRE_AVIS_DIRECTION_REGIONALE_FINANCES_PUBLIQUES' } + | { type: 'RENDRE_AVIS_CAISSE_GENERALE_DE_SECURITE_SOCIALE' } + | { type: 'RENDRE_AVIS_OFFICE_NATIONAL_DES_FORETS' } + | { type: 'RENDRE_AVIS_ETAT_MAJOR_ORPAILLAGE_ET_PECHE_ILLICITE' } + | { type: 'RENDRE_AVIS_GENDARMERIE_NATIONALE' } + | { type: 'FAIRE_CONFIRMATION_PROPRIETAIRE_DU_SOL' } + | { type: 'FAIRE_NOTE_INTERNE_SIGNALEE' } + | { type: 'DEMANDER_INFORMATION_POUR_AVIS_DREAL' } + | { type: 'RECEVOIR_INFORMATION_POUR_AVIS_DREAL' } + | { type: 'RENDRE_DECISION_IMPLICITE_REJET' } + | { type: 'RENDRE_DECISION_ANNULATION_PAR_JUGE_ADMINISTRATIF' } + | { type: 'FAIRE_DESISTEMENT_DEMANDEUR' } + | { type: 'FAIRE_CLASSEMENT_SANS_SUITE' } + +const trad: { [key in AXMOctXStateEvent['type']]: DBEtat } = { + FAIRE_DEMANDE: ETES.demande, + DEPOSER_DEMANDE: ETES.depotDeLaDemande, + RENDRE_DAE_EXEMPTEE: { + EXEMPTE: + ETES + .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_ + .EXEMPTE + }, + RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE: { + FAVORABLE: ETES.decisionDuProprietaireDuSol.FAVORABLE + }, + RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE_AVEC_RESERVE: { + FAVORABLE_AVEC_RESERVE: + ETES.decisionDuProprietaireDuSol.FAVORABLE_AVEC_RESERVE + }, + RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_DEFAVORABLE: { + DEFAVORABLE: ETES.decisionDuProprietaireDuSol.DEFAVORABLE + }, + RENDRE_DAE_REQUISE: { + REQUIS: + ETES + .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_ + .REQUIS + }, + MODIFIER_DEMANDE_APRES_DAE: + ETES.modificationDeLaDemande_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_, + DEMANDER_COMPLEMENTS_POUR_RECEVABILITE: + ETES.demandeDeComplements_RecevabiliteDeLaDemande_, + RECEVOIR_COMPLEMENTS_POUR_RECEVABILITE: + ETES.receptionDeComplements_RecevabiliteDeLaDemande_, + FAIRE_RECEVABILITE_DEMANDE_FAVORABLE: { + FAVORABLE: ETES.recevabiliteDeLaDemande.FAVORABLE + }, + FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE: { + DEFAVORABLE: ETES.recevabiliteDeLaDemande.DEFAVORABLE + }, + MODIFIER_LA_DEMANDE: ETES.modificationDeLaDemande, + FAIRE_SAISINE_COLLECTIVITES_LOCALES: ETES.saisineDesCollectivitesLocales, + RENDRE_AVIS_DUN_MAIRE: ETES.avisDunMaire, + RENDRE_AVIS_DREAL: + ETES.avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement, + FAIRE_SAISINE_DES_SERVICES: ETES.saisineDesServices, + RENDRE_AVIS_DGTM_MNBST: + ETES.avisDGTMServiceMilieuxNaturelsBiodiversiteSitesEtPaysages_MNBST_, + FAIRE_SAISINE_COMMISSION_DEPARTEMENTALE_DES_MINES: + ETES.saisineDeLaCommissionDepartementaleDesMines_CDM_, + RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES: { + FAVORABLE: ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.FAVORABLE, + FAVORABLE_AVEC_RESERVE: + ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.FAVORABLE_AVEC_RESERVE, + DEFAVORABLE: ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.DEFAVORABLE, + DEFAVORABLE_AVEC_RESERVES: + ETES.avisDeLaCommissionDepartementaleDesMines_CDM_ + .DEFAVORABLE_AVEC_RESERVES + }, + RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES_AJOURNE: { + AJOURNE: ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.AJOURNE + }, + FAIRE_SAISINE_AUTORITE_SIGNATAIRE: ETES.saisineDeLautoriteSignataire, + RENDRE_DECISION_ADMINISTRATION_ACCEPTE: { + ACCEPTE: ETES.decisionDeLadministration.ACCEPTE + }, + RENDRE_DECISION_ADMINISTRATION_REJETE: { + REJETE: ETES.decisionDeLadministration.REJETE + }, + NOTIFIER_DEMANDEUR: ETES.notificationAuDemandeur, + PUBLIER_DECISIONS_RECUEIL_ACTES_ADMINISTRATIFS: + ETES.publicationDeDecisionAuRecueilDesActesAdministratifs, + PUBLIER_DANS_UN_JOURNAL_LOCAL_OU_NATIONAL: + ETES.publicationDansUnJournalLocalOuNational, + NOTIFIER_COLLECTIVITES_LOCALES: ETES.notificationDesCollectivitesLocales, + RENDRE_DECISION_ABROGATION: ETES.abrogationDeLaDecision, + RENDRE_DECISION_RETRAIT: ETES.retraitDeLaDecision, + RENDRE_AVIS_DGTMAUCUL: + ETES.avisDGTMServiceAmenagementUrbanismeConstructionLogement_AUCL_, + RENDRE_AVIS_DIRECTION_ENTREPRISE_CONCURRENCE_CONSOMMATION_TRAVAIL_EMPLOI: + ETES.avisDeLaDirectionDesEntreprisesDeLaConcurrenceDeLaConsommationDuTravailEtDeLemploi, + RENDRE_AVIS_DIRECTION_ALIMENTATION_AGRICULTURE_FORET: + ETES.avisDeLaDirectionDalimentationDeLagricultureEtDeLaForet, + RENDRE_AVIS_DIRECTION_REGIONALE_AFFAIRES_CULTURELLES: + ETES.avisDeDirectionRegionaleDesAffairesCulturelles, + RENDRE_AVIS_AGENCE_REGIONALE_SANTE: ETES.avisDeLagenceRegionaleDeSante, + RENDRE_AVIS_DIRECTION_REGIONALE_FINANCES_PUBLIQUES: + ETES.avisDeLaDirectionRegionaleDesFinancesPubliques, + RENDRE_AVIS_CAISSE_GENERALE_DE_SECURITE_SOCIALE: + ETES.avisDeLaCaisseGeneraleDeSecuriteSociale, + RENDRE_AVIS_OFFICE_NATIONAL_DES_FORETS: ETES.avisDeLOfficeNationalDesForets, + RENDRE_AVIS_ETAT_MAJOR_ORPAILLAGE_ET_PECHE_ILLICITE: + ETES.avisDeLetatMajorOrpaillageEtPecheIllicite_EMOPI_, + RENDRE_AVIS_GENDARMERIE_NATIONALE: ETES.avisDeLaGendarmerieNationale, + FAIRE_CONFIRMATION_PROPRIETAIRE_DU_SOL: + ETES.confirmationDeLaccordDuProprietaireDuSol, + FAIRE_NOTE_INTERNE_SIGNALEE: ETES.noteInterneSignalee, + DEMANDER_INFORMATION_POUR_AVIS_DREAL: + ETES.demandeDinformations_AvisDuDREALDEALOuDGTM_, + RECEVOIR_INFORMATION_POUR_AVIS_DREAL: + ETES.receptionDinformation_AvisDuDREALDEALOuDGTM_, + RENDRE_DECISION_IMPLICITE_REJET: { REJETE: ETES.decisionImplicite.REJETE }, + RENDRE_DECISION_ANNULATION_PAR_JUGE_ADMINISTRATIF: + ETES.decisionDuJugeAdministratif, + FAIRE_DESISTEMENT_DEMANDEUR: ETES.desistementDuDemandeur, + FAIRE_CLASSEMENT_SANS_SUITE: ETES.classementSansSuite +} +const EVENTS = Object.keys(trad) as Array<Extract<keyof typeof trad, string>> + +// basé sur https://cacoo.com/diagrams/iUPEVBYNBjsiirfE/249D0 +export class AxmOctMachine extends CaminoMachine< + AxmContext, + AXMOctXStateEvent +> { + constructor() { + super(axmOctMachine) + } + + caminoXStateEventToEtapes(event: AXMOctXStateEvent): Omit<Etape, 'date'>[] { + const dbEtat = trad[event.type] + + return Object.values(dbEtat).map(({ etapeTypeId, etapeStatutId }) => ({ + etapeTypeId, + etapeStatutId + })) + } + + eventFrom(etape: Etape): AXMOctXStateEvent { + const entries = Object.entries(trad).filter( + (entry): entry is [AXMOctXStateEvent['type'], DBEtat] => + EVENTS.includes(entry[0]) + ) + + const entry = entries.find(([_key, dbEtat]) => { + return Object.values(dbEtat).some( + dbEtatSingle => + dbEtatSingle.etapeTypeId === etape.etapeTypeId && + dbEtatSingle.etapeStatutId === etape.etapeStatutId + ) + }) + + if (entry) { + const eventFromEntry = entry[0] + + // related to https://github.com/microsoft/TypeScript/issues/46497 https://github.com/microsoft/TypeScript/issues/40803 :( + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + return { type: eventFromEntry } + } + throw new Error(`no event from ${JSON.stringify(etape)}`) + } + + isEvent(event: string): event is AXMOctXStateEvent['type'] { + return EVENTS.includes(event) + } + + toPotentialCaminoXStateEvent( + event: AXMOctXStateEvent['type'] + ): AXMOctXStateEvent[] { + // related to https://github.com/microsoft/TypeScript/issues/46497 https://github.com/microsoft/TypeScript/issues/40803 :( + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + return [{ type: event }] + } +} +interface AxmContext extends CaminoCommonContext { + demandeFaite: boolean + daeRequiseOuDemandeDeposee: boolean + decisionDuProprietaireDuSolFavorableSansReserve: boolean + saisineDesCollectivitesLocalesFaite: boolean + saisineDesServicesFaite: boolean +} +const axmOctMachine = createMachine<AxmContext, AXMOctXStateEvent>({ + predictableActionArguments: true, + id: 'AXMOct', + initial: 'demandeAFaireEtDecisionsARendre', + context: { + demarcheStatut: DemarchesStatutsIds.EnConstruction, + demandeFaite: false, + decisionDuProprietaireDuSolFavorableSansReserve: false, + saisineDesCollectivitesLocalesFaite: false, + saisineDesServicesFaite: false, + daeRequiseOuDemandeDeposee: false, + visibilite: 'confidentielle' + }, + on: { + FAIRE_NOTE_INTERNE_SIGNALEE: { + actions: assign<AxmContext, { type: 'FAIRE_NOTE_INTERNE_SIGNALEE' }>({}), + cond: context => context.demandeFaite + }, + FAIRE_DESISTEMENT_DEMANDEUR: { + cond: context => + context.demandeFaite && + [ + DemarchesStatutsIds.EnConstruction, + DemarchesStatutsIds.Depose, + DemarchesStatutsIds.EnInstruction + ].includes(context.demarcheStatut), + target: 'desistementDuDemandeurRendu' + }, + FAIRE_CLASSEMENT_SANS_SUITE: { + cond: context => + context.daeRequiseOuDemandeDeposee && + [ + DemarchesStatutsIds.EnConstruction, + DemarchesStatutsIds.Depose, + DemarchesStatutsIds.EnInstruction + ].includes(context.demarcheStatut), + target: 'classementSansSuiteRendu' + } + }, + states: { + demandeAFaireEtDecisionsARendre: { + type: 'parallel', + states: { + demandeMachine: { + initial: 'demandeAFaire', + states: { + demandeAFaire: { + on: { + FAIRE_DEMANDE: 'demandeFaite' + } + }, + demandeFaite: { + type: 'final', + entry: assign<AxmContext>({ demandeFaite: true }) + } + } + }, + decisionAutoriteEnvironnementaleMachine: { + initial: 'decisionARendre', + states: { + decisionARendre: { + on: { + RENDRE_DAE_REQUISE: { + target: 'demandeAModifier', + actions: assign<AxmContext, { type: 'RENDRE_DAE_REQUISE' }>({ + daeRequiseOuDemandeDeposee: true + }) + }, + RENDRE_DAE_EXEMPTEE: 'demandeExemptee' + } + }, + demandeAModifier: { + on: { MODIFIER_DEMANDE_APRES_DAE: 'demandeModifiee' } + }, + demandeExemptee: { type: 'final' }, + demandeModifiee: { type: 'final' } + } + }, + decisionDuProprietaireDuSolMachine: { + initial: 'decisionARendre', + states: { + decisionARendre: { + on: { + RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE: { + target: 'decisionRendue', + actions: assign< + AxmContext, + { type: 'RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE' } + >({ + decisionDuProprietaireDuSolFavorableSansReserve: true + }) + }, + RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE_AVEC_RESERVE: + 'decisionRendue', + RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_DEFAVORABLE: + '#classementSansSuiteAFaire' + } + }, + decisionRendue: { type: 'final' } + } + } + }, + + onDone: { + target: 'depotDeLaDemandeAFaire' + } + }, + depotDeLaDemandeAFaire: { + tags: [tags.responsable[ADMINISTRATION_IDS['DGTM - GUYANE']]], + on: { + DEPOSER_DEMANDE: { + target: 'recevabiliteDeLaDemandeAFaire', + actions: assign<AxmContext, { type: 'DEPOSER_DEMANDE' }>({ + demarcheStatut: DemarchesStatutsIds.Depose, + daeRequiseOuDemandeDeposee: true + }) + } + } + }, + recevabiliteDeLaDemandeAFaire: { + tags: [tags.responsable[ADMINISTRATION_IDS['DGTM - GUYANE']]], + on: { + DEMANDER_COMPLEMENTS_POUR_RECEVABILITE: + 'complementsPourRecevabiliteAFaire', + FAIRE_RECEVABILITE_DEMANDE_FAVORABLE: { + target: 'saisinesAFairePuisRendreAvisDREAL', + actions: assign< + AxmContext, + { type: 'FAIRE_RECEVABILITE_DEMANDE_FAVORABLE' } + >({ + demarcheStatut: DemarchesStatutsIds.EnInstruction, + visibilite: 'publique' + }) + }, + FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE: 'modificationDeLaDemandeAFaire', + RENDRE_DECISION_IMPLICITE_REJET: { + target: 'decisionAnnulationParJugeAdministratifAFaire', + actions: assign< + AxmContext, + { type: 'RENDRE_DECISION_IMPLICITE_REJET' } + >({ + demarcheStatut: DemarchesStatutsIds.Rejete, + visibilite: 'publique' + }) + } + } + }, + complementsPourRecevabiliteAFaire: { + on: { + RECEVOIR_COMPLEMENTS_POUR_RECEVABILITE: 'recevabiliteDeLaDemandeAFaire', + FAIRE_RECEVABILITE_DEMANDE_FAVORABLE: { + target: 'saisinesAFairePuisRendreAvisDREAL', + actions: assign< + AxmContext, + { type: 'FAIRE_RECEVABILITE_DEMANDE_FAVORABLE' } + >({ + demarcheStatut: DemarchesStatutsIds.EnInstruction, + visibilite: 'publique' + }) + }, + FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE: 'modificationDeLaDemandeAFaire' + } + }, + modificationDeLaDemandeAFaire: { + on: { + MODIFIER_LA_DEMANDE: 'recevabiliteDeLaDemandeAFaire' + } + }, + saisinesAFairePuisRendreAvisDREAL: { + type: 'parallel', + states: { + rendreAvisDrealMachine: { + initial: 'rendreAvisDrealPasEncorePossible', + states: { + rendreAvisDrealPasEncorePossible: { + always: { + target: 'rendreAvisDrealAFaire', + cond: (context: AxmContext) => + context.saisineDesServicesFaite && + context.saisineDesCollectivitesLocalesFaite && + context.decisionDuProprietaireDuSolFavorableSansReserve + } + }, + rendreAvisDrealAFaire: { + tags: [tags.responsable[ADMINISTRATION_IDS['DGTM - GUYANE']]], + on: { + RENDRE_AVIS_DREAL: + '#saisineOuAvisCommissionDepartementaleDesMinesARendre' + } + } + } + }, + demandeInformationPourAvisDREALMachine: { + initial: 'demandeInformationPourAvisDREALAFaire', + states: { + demandeInformationPourAvisDREALAFaire: { + on: { + DEMANDER_INFORMATION_POUR_AVIS_DREAL: + 'receptionInformationPourAvisDREALAFaire' + } + }, + receptionInformationPourAvisDREALAFaire: { + on: { + RECEVOIR_INFORMATION_POUR_AVIS_DREAL: + 'demandeInformationPourAvisDREALAFaire' + } + } + } + }, + saisineCollectivitesLocalesMachine: { + initial: 'saisineCollectivitesLocalesAFaire', + states: { + saisineCollectivitesLocalesAFaire: { + on: { + FAIRE_SAISINE_COLLECTIVITES_LOCALES: { + target: 'avisDunMaireARendre', + cond: context => !context.saisineDesCollectivitesLocalesFaite, + actions: assign< + AxmContext, + { type: 'FAIRE_SAISINE_COLLECTIVITES_LOCALES' } + >({ + saisineDesCollectivitesLocalesFaite: true + }) + } + } + }, + avisDunMaireARendre: { + on: { RENDRE_AVIS_DUN_MAIRE: 'avisDunMaireRendu' } + }, + avisDunMaireRendu: { type: 'final' } + } + }, + saisineDesServicesMachine: { + initial: 'saisineDesServicesAFaire', + states: { + saisineDesServicesAFaire: { + on: { + FAIRE_SAISINE_DES_SERVICES: { + target: 'avisDesServicesARendre', + cond: context => !context.saisineDesServicesFaite, + actions: assign< + AxmContext, + { type: 'FAIRE_SAISINE_DES_SERVICES' } + >({ + saisineDesServicesFaite: true + }) + } + } + }, + avisDesServicesARendre: { + type: 'parallel', + + states: { + confirmationAccordProprietaireDuSolMachine: { + initial: 'confirmationAccordProprietaireDuSolAFaire', + states: { + confirmationAccordProprietaireDuSolAFaire: { + on: { + FAIRE_CONFIRMATION_PROPRIETAIRE_DU_SOL: + 'confirmationAccordProprietaireDuSolFait' + } + }, + confirmationAccordProprietaireDuSolFait: { + type: 'final', + entry: assign<AxmContext>({ + decisionDuProprietaireDuSolFavorableSansReserve: true + }) + } + } + }, + avisDgtmMNBSTMachine: { + initial: 'avisDgtmMNBSTARendre', + states: { + avisDgtmMNBSTARendre: { + on: { RENDRE_AVIS_DGTM_MNBST: 'avisDgtmMNBSTRendu' } + }, + avisDgtmMNBSTRendu: { type: 'final' } + } + }, + avisDGTMAUCULMachine: { + initial: 'avisDGTMAUCULARendre', + states: { + avisDGTMAUCULARendre: { + on: { RENDRE_AVIS_DGTMAUCUL: 'avisDGTMAUCULRendu' } + }, + avisDGTMAUCULRendu: { type: 'final' } + } + }, + avisDirectionEntrepriseConcurrenceConsommationTravailEmploiMachine: + { + initial: + 'avisDirectionEntrepriseConcurrenceConsommationTravailEmploiARendre', + states: { + avisDirectionEntrepriseConcurrenceConsommationTravailEmploiARendre: + { + on: { + RENDRE_AVIS_DIRECTION_ENTREPRISE_CONCURRENCE_CONSOMMATION_TRAVAIL_EMPLOI: + 'avisDirectionEntrepriseConcurrenceConsommationTravailEmploiRendu' + } + }, + avisDirectionEntrepriseConcurrenceConsommationTravailEmploiRendu: + { type: 'final' } + } + }, + avisDirectionAlimentationAgricultureForetMachine: { + initial: 'avisDirectionAlimentationAgricultureForetARendre', + states: { + avisDirectionAlimentationAgricultureForetARendre: { + on: { + RENDRE_AVIS_DIRECTION_ALIMENTATION_AGRICULTURE_FORET: + 'avisDirectionAlimentationAgricultureForetRendu' + } + }, + avisDirectionAlimentationAgricultureForetRendu: { + type: 'final' + } + } + }, + avisDirectionRegionaleAffairesCulturellesMachine: { + initial: 'avisDirectionRegionaleAffairesCulturellesARendre', + states: { + avisDirectionRegionaleAffairesCulturellesARendre: { + on: { + RENDRE_AVIS_DIRECTION_REGIONALE_AFFAIRES_CULTURELLES: + 'avisDirectionRegionaleAffairesCulturellesRendu' + } + }, + avisDirectionRegionaleAffairesCulturellesRendu: { + type: 'final' + } + } + }, + avisAgenceRegionaleSanteMachine: { + initial: 'avisAgenceRegionaleSanteARendre', + states: { + avisAgenceRegionaleSanteARendre: { + on: { + RENDRE_AVIS_AGENCE_REGIONALE_SANTE: + 'avisAgenceRegionaleSanteRendu' + } + }, + avisAgenceRegionaleSanteRendu: { type: 'final' } + } + }, + avisDirectionRegionaleFinancesPubliquesMachine: { + initial: 'avisDirectionRegionaleFinancesPubliquesARendre', + states: { + avisDirectionRegionaleFinancesPubliquesARendre: { + on: { + RENDRE_AVIS_DIRECTION_REGIONALE_FINANCES_PUBLIQUES: + 'avisDirectionRegionaleFinancesPubliquesRendu' + } + }, + avisDirectionRegionaleFinancesPubliquesRendu: { + type: 'final' + } + } + }, + avisCaisseGeneraleDeSecuriteSocialeMachine: { + initial: 'avisCaisseGeneraleDeSecuriteSocialeARendre', + states: { + avisCaisseGeneraleDeSecuriteSocialeARendre: { + on: { + RENDRE_AVIS_CAISSE_GENERALE_DE_SECURITE_SOCIALE: + 'avisCaisseGeneraleDeSecuriteSocialeRendu' + } + }, + avisCaisseGeneraleDeSecuriteSocialeRendu: { type: 'final' } + } + }, + avisOfficeNationalDesForetsMachine: { + initial: 'avisOfficeNationalDesForetsARendre', + states: { + avisOfficeNationalDesForetsARendre: { + on: { + RENDRE_AVIS_OFFICE_NATIONAL_DES_FORETS: + 'avisOfficeNationalDesForetsRendu' + } + }, + avisOfficeNationalDesForetsRendu: { type: 'final' } + } + }, + avisGendarmerieNationaleMachine: { + initial: 'avisGendarmerieNationaleARendre', + states: { + avisGendarmerieNationaleARendre: { + on: { + RENDRE_AVIS_GENDARMERIE_NATIONALE: + 'avisGendarmerieNationaleRendu' + } + }, + avisGendarmerieNationaleRendu: { type: 'final' } + } + }, + avisEtatMajorOrpaillageEtPecheIlliciteMachine: { + initial: 'avisEtatMajorOrpaillageEtPecheIlliciteARendre', + states: { + avisEtatMajorOrpaillageEtPecheIlliciteARendre: { + on: { + RENDRE_AVIS_ETAT_MAJOR_ORPAILLAGE_ET_PECHE_ILLICITE: + 'avisEtatMajorOrpaillageEtPecheIlliciteRendu' + } + }, + avisEtatMajorOrpaillageEtPecheIlliciteRendu: { + type: 'final' + } + } + } + }, + onDone: 'avisDesServicesRendus' + }, + avisDesServicesRendus: { type: 'final' } + } + } + } + }, + avisDREALARendre: { + tags: [tags.responsable[ADMINISTRATION_IDS['DGTM - GUYANE']]], + on: { + RENDRE_AVIS_DREAL: + 'saisineOuAvisCommissionDepartementaleDesMinesARendre' + } + }, + saisineOuAvisCommissionDepartementaleDesMinesARendre: { + id: 'saisineOuAvisCommissionDepartementaleDesMinesARendre', + on: { + FAIRE_SAISINE_COMMISSION_DEPARTEMENTALE_DES_MINES: + 'avisCommissionDepartementaleDesMinesARendre', + RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES_AJOURNE: + 'avisDREALARendre', + RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES: + 'saisineAutoriteSignataireOuDecisionAdministrationARendre' + } + }, + avisCommissionDepartementaleDesMinesARendre: { + on: { + RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES_AJOURNE: + 'avisDREALARendre', + RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES: + 'saisineAutoriteSignataireOuDecisionAdministrationARendre' + } + }, + saisineAutoriteSignataireOuDecisionAdministrationARendre: { + on: { + FAIRE_SAISINE_AUTORITE_SIGNATAIRE: 'decisionAdministrationARendre', + RENDRE_DECISION_ADMINISTRATION_ACCEPTE: { + target: 'decisionAdministrationRendue', + actions: assign< + AxmContext, + { type: 'RENDRE_DECISION_ADMINISTRATION_ACCEPTE' } + >({ + demarcheStatut: DemarchesStatutsIds.Accepte + }) + }, + RENDRE_DECISION_ADMINISTRATION_REJETE: { + target: 'decisionAdministrationRendue', + actions: assign< + AxmContext, + { type: 'RENDRE_DECISION_ADMINISTRATION_REJETE' } + >({ + demarcheStatut: DemarchesStatutsIds.Rejete + }) + } + } + }, + decisionAdministrationARendre: { + on: { + RENDRE_DECISION_ADMINISTRATION_ACCEPTE: { + target: 'decisionAdministrationRendue', + actions: assign< + AxmContext, + { type: 'RENDRE_DECISION_ADMINISTRATION_ACCEPTE' } + >({ + demarcheStatut: DemarchesStatutsIds.Accepte + }) + }, + RENDRE_DECISION_ADMINISTRATION_REJETE: { + target: 'decisionAdministrationRendue', + actions: assign< + AxmContext, + { type: 'RENDRE_DECISION_ADMINISTRATION_REJETE' } + >({ + demarcheStatut: DemarchesStatutsIds.Rejete + }) + } + } + }, + decisionAdministrationRendue: { + on: { + RENDRE_DECISION_ABROGATION: 'decisionAbrogationFaite', + RENDRE_DECISION_RETRAIT: 'decisionRetraitFaite', + RENDRE_DECISION_ANNULATION_PAR_JUGE_ADMINISTRATIF: { + target: 'decisionAnnulationParJugeAdministratifRendu' + }, + NOTIFIER_DEMANDEUR: { target: 'publicationsEtNotificationsMachine' }, + PUBLIER_DECISIONS_RECUEIL_ACTES_ADMINISTRATIFS: + 'publicationsEtNotificationsMachine', + PUBLIER_DANS_UN_JOURNAL_LOCAL_OU_NATIONAL: + 'publicationsEtNotificationsMachine', + NOTIFIER_COLLECTIVITES_LOCALES: 'publicationsEtNotificationsMachine' + } + }, + publicationsEtNotificationsMachine: { + type: 'parallel', + states: { + notificationDuDemadeurMachine: { + initial: 'notificationDuDemandeurAFaire', + states: { + notificationDuDemandeurAFaire: { + always: { + target: 'notificationDuDemandeurFaite', + cond: (_context, _event, meta) => { + return meta.state.history?.event.type === 'NOTIFIER_DEMANDEUR' + } + }, + on: { NOTIFIER_DEMANDEUR: 'notificationDuDemandeurFaite' } + }, + notificationDuDemandeurFaite: { type: 'final' } + } + }, + publicationDecisionsRecueilActesAdministratifsMachine: { + initial: 'publicationDecisionsRecueilActesAdministratifsAFaire', + states: { + publicationDecisionsRecueilActesAdministratifsAFaire: { + always: { + target: 'publicationDecisionsRecueilActesAdministratifsFaite', + cond: (_context, _event, meta) => { + return ( + meta.state.history?.event.type === + 'PUBLIER_DECISIONS_RECUEIL_ACTES_ADMINISTRATIFS' + ) + } + }, + on: { + PUBLIER_DECISIONS_RECUEIL_ACTES_ADMINISTRATIFS: + 'publicationDecisionsRecueilActesAdministratifsFaite' + } + }, + publicationDecisionsRecueilActesAdministratifsFaite: { + type: 'final' + } + } + }, + publicationDansUnJournalLocalOuNationalMachine: { + initial: 'publicationDansUnJournalLocalOuNationalAFaire', + states: { + publicationDansUnJournalLocalOuNationalAFaire: { + always: { + target: 'publicationDansUnJournalLocalOuNationalFaite', + cond: (_context, _event, meta) => { + return ( + meta.state.history?.event.type === + 'PUBLIER_DANS_UN_JOURNAL_LOCAL_OU_NATIONAL' + ) + } + }, + on: { + PUBLIER_DANS_UN_JOURNAL_LOCAL_OU_NATIONAL: + 'publicationDansUnJournalLocalOuNationalFaite' + } + }, + publicationDansUnJournalLocalOuNationalFaite: { type: 'final' } + } + }, + notificationDesCollectivitesLocalesMachine: { + initial: 'notificationDesCollectivitesLocalesAFaire', + states: { + notificationDesCollectivitesLocalesAFaire: { + always: { + target: 'notificationDesCollectivitesLocalesFaite', + cond: (_context, _event, meta) => { + return ( + meta.state.history?.event.type === + 'NOTIFIER_COLLECTIVITES_LOCALES' + ) + } + }, + on: { + NOTIFIER_COLLECTIVITES_LOCALES: + 'notificationDesCollectivitesLocalesFaite' + } + }, + notificationDesCollectivitesLocalesFaite: { type: 'final' } + } + } + } + }, + decisionAnnulationParJugeAdministratifAFaire: { + on: { + RENDRE_DECISION_ANNULATION_PAR_JUGE_ADMINISTRATIF: + 'decisionAnnulationParJugeAdministratifRendu' + } + }, + classementSansSuiteAFaire: { + id: 'classementSansSuiteAFaire', + tags: [tags.responsable[ADMINISTRATION_IDS['DGTM - GUYANE']]], + on: { + FAIRE_CLASSEMENT_SANS_SUITE: 'classementSansSuiteRendu' + } + }, + decisionAbrogationFaite: { type: 'final' }, + decisionRetraitFaite: { type: 'final' }, + decisionAnnulationParJugeAdministratifRendu: { + type: 'final', + entry: assign<AxmContext>({ demarcheStatut: DemarchesStatutsIds.Rejete }) + }, + desistementDuDemandeurRendu: { + type: 'final', + entry: assign<AxmContext>({ + demarcheStatut: DemarchesStatutsIds.Desiste, + visibilite: 'publique' + }) + }, + classementSansSuiteRendu: { + type: 'final', + entry: assign<AxmContext>({ + demarcheStatut: DemarchesStatutsIds.ClasseSansSuite, + visibilite: 'publique' + }) + } + } +}) diff --git a/packages/api/src/business/rules-demarches/axm/oct.test.ts b/packages/api/src/business/rules-demarches/axm/oct.test.ts deleted file mode 100644 index 3af3966d8..000000000 --- a/packages/api/src/business/rules-demarches/axm/oct.test.ts +++ /dev/null @@ -1,267 +0,0 @@ -import { demarcheEtatsValidate } from '../_utils.test' -import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts' -import { EtapeTypeId } from 'camino-common/src/static/etapesTypes' - -describe('vérifie l’arbre d’octroi d’AXM', () => { - const octEtatsValidate = demarcheEtatsValidate('oct', 'axm', '2020-10-01') - - test('peut créer une "mdp" après une "mfr"', () => { - expect( - octEtatsValidate([ - { typeId: 'mfr', date: '2020-01-01' }, - { typeId: 'dae', statutId: 'exe', date: '2020-01-01' }, - { typeId: 'mdp', date: '2020-01-02' } - ]) - ).toHaveLength(0) - }) - - test('ne peut pas créer une "nis" sans "mfr"', () => { - expect(octEtatsValidate([{ typeId: 'nis', date: '2020-01-01' }])).toEqual([ - 'l’étape "nis" n’est pas possible après ' - ]) - }) - - test('peut créer une "nis" après une "mfr"', () => { - expect( - octEtatsValidate([ - { typeId: 'mfr', date: '2020-01-01' }, - { typeId: 'dae', statutId: 'exe', date: '2020-01-01' }, - { typeId: 'nis', date: '2020-01-02' }, - { typeId: 'mdp', date: '2020-01-03' } - ]) - ).toHaveLength(0) - }) - - test('ne peut pas créer 2 étapes "mdp"', () => { - expect( - octEtatsValidate([ - { typeId: 'mfr', date: '2020-01-01' }, - { typeId: 'dae', statutId: 'exe', date: '2020-01-01' }, - { typeId: 'mdp', date: '2020-01-02' }, - { typeId: 'mca', date: '2020-01-03' }, - { typeId: 'mdp', date: '2020-01-04' } - ]) - ).toEqual(['l’étape "mdp" n’est plus possible après "mfr", "mca"']) - }) - - test('ne peut pas avoir juste une étape "Décision de l’administration"', () => { - expect(octEtatsValidate([{ typeId: 'dex', date: '2020-08-21' }])).toEqual([ - 'l’étape "dex" n’est pas possible juste après ' - ]) - }) - - test('ne peut pas créer une "mdp" sans une "dae"', () => { - expect( - octEtatsValidate([ - { typeId: 'mfr', date: '2020-01-01' }, - { typeId: 'mdp', date: '2020-01-02' } - ]) - ).toContain('l’étape "mdp" n’est pas possible juste après "mfr"') - }) - - test('ne peut pas créer une "mdp" sans une "dae" requis', () => { - expect( - octEtatsValidate([ - { typeId: 'mfr', date: '2020-01-01' }, - { typeId: 'dae', statutId: 'req', date: '2020-01-01' }, - { typeId: 'mdp', date: '2020-01-02' } - ]) - ).toContain('l’étape "mdp" n’est pas possible juste après "mfr", "dae"') - }) - - test('peut créer une faire une "mno", une "rpu" et une "pqr" à la fin de la démarche', () => { - expect( - octEtatsValidate([ - { typeId: 'mfr', date: '2020-01-01' }, - { typeId: 'dae', statutId: 'exe', date: '2020-01-01' }, - { typeId: 'mdp', date: '2020-01-02' }, - { typeId: 'asl', statutId: 'fav', date: '2020-01-02' }, - { typeId: 'mcr', statutId: 'fav', date: '2020-01-03' }, - { typeId: 'scl', date: '2020-01-04' }, - { typeId: 'ama', date: '2020-01-05' }, - { typeId: 'ssr', date: '2020-01-04' }, - { typeId: 'cps', date: '2020-01-05' }, - { typeId: 'apd', date: '2020-01-06' }, - { typeId: 'spo', date: '2020-01-07' }, - { typeId: 'apo', statutId: 'fav', date: '2020-01-08' }, - { typeId: 'sas', date: '2020-01-08' }, - { typeId: 'dex', statutId: 'acc', date: '2020-01-09' }, - { typeId: 'mno', date: '2020-01-10' }, - { typeId: 'pqr', date: '2020-01-10' }, - { typeId: 'rpu', date: '2020-01-10' } - ]) - ).toHaveLength(0) - }) - - test('ne peut créer une faire une "mno" et une "abd" à la fin de la démarche', () => { - expect( - octEtatsValidate([ - { typeId: 'mfr', date: '2020-01-01' }, - { typeId: 'dae', statutId: 'exe', date: '2020-01-01' }, - { typeId: 'mdp', date: '2020-01-02' }, - { typeId: 'asl', statutId: 'fav', date: '2020-01-02' }, - { typeId: 'mcr', statutId: 'fav', date: '2020-01-03' }, - { typeId: 'scl', date: '2020-01-04' }, - { typeId: 'ama', date: '2020-01-05' }, - { typeId: 'ssr', date: '2020-01-04' }, - { typeId: 'cps', date: '2020-01-05' }, - { typeId: 'apd', date: '2020-01-06' }, - { typeId: 'spo', date: '2020-01-07' }, - { typeId: 'apo', statutId: 'fav', date: '2020-01-08' }, - { typeId: 'sas', date: '2020-01-08' }, - { typeId: 'dex', statutId: 'acc', date: '2020-01-09' }, - { typeId: 'abd', date: '2020-01-10' }, - { typeId: 'mno', date: '2020-01-11' } - ]) - ).toContain('l’étape "mno" n’est plus possible après "ama", "dex", "abd"') - }) - - test('ne peut créer une faire une "rtd" et une "abd" à la fin de la démarche', () => { - expect( - octEtatsValidate([ - { typeId: 'mfr', date: '2020-01-01' }, - { typeId: 'dae', statutId: 'exe', date: '2020-01-01' }, - { typeId: 'mdp', date: '2020-01-02' }, - { typeId: 'asl', statutId: 'fav', date: '2020-01-02' }, - { typeId: 'mcr', statutId: 'fav', date: '2020-01-03' }, - { typeId: 'scl', date: '2020-01-04' }, - { typeId: 'ama', date: '2020-01-05' }, - { typeId: 'ssr', date: '2020-01-04' }, - { typeId: 'cps', date: '2020-01-05' }, - { typeId: 'apd', date: '2020-01-06' }, - { typeId: 'spo', date: '2020-01-07' }, - { typeId: 'apo', statutId: 'fav', date: '2020-01-08' }, - { typeId: 'sas', date: '2020-01-08' }, - { typeId: 'dex', statutId: 'acc', date: '2020-01-09' }, - { typeId: 'abd', date: '2020-01-10' }, - { typeId: 'rtd', date: '2020-01-11' } - ]) - ).toContain('l’étape "rtd" n’est plus possible après "ama", "dex", "abd"') - }) - - test('peut créer une "css" après un refus du propriétaire du sol', () => { - expect( - octEtatsValidate([ - { typeId: 'css', date: '2020-01-05' }, - { typeId: 'asl', date: '2020-01-03', statutId: 'def' } - ]) - ).toHaveLength(0) - }) - - test('la saisine de l’autorité signataire (sas) est optionnelle', () => { - expect( - octEtatsValidate([ - { typeId: 'mfr', date: '2020-01-01' }, - { typeId: 'dae', statutId: 'exe', date: '2020-01-01' }, - { typeId: 'mdp', date: '2020-01-02' }, - { typeId: 'asl', statutId: 'fav', date: '2020-01-02' }, - { typeId: 'mcr', statutId: 'fav', date: '2020-01-03' }, - { typeId: 'scl', date: '2020-01-04' }, - { typeId: 'ama', date: '2020-01-05' }, - { typeId: 'ssr', date: '2020-01-04' }, - { typeId: 'cps', date: '2020-01-05' }, - { typeId: 'apd', date: '2020-01-06' }, - { typeId: 'spo', date: '2020-01-07' }, - { typeId: 'apo', statutId: 'fav', date: '2020-01-08' }, - { typeId: 'dex', statutId: 'acc', date: '2020-01-09' } - ]) - ).toHaveLength(0) - }) - - test( - 'la confirmation de l’accord du propriétaire du sol (cps) est optionnel ' + - 'si la décision du propriétaire du sol (asl) est favorable sans réserve', - () => { - expect( - octEtatsValidate([ - { typeId: 'mfr', date: '2020-01-01' }, - { typeId: 'dae', statutId: 'exe', date: '2020-01-01' }, - { typeId: 'mdp', date: '2020-01-02' }, - { typeId: 'asl', statutId: 'fav', date: '2020-01-02' }, - { typeId: 'mcr', statutId: 'fav', date: '2020-01-03' }, - { typeId: 'scl', date: '2020-01-04' }, - { typeId: 'ama', date: '2020-01-05' }, - { typeId: 'ssr', date: '2020-01-04' }, - { typeId: 'apd', date: '2020-01-06' } - ]) - ).toHaveLength(0) - } - ) - - test( - 'la confirmation de l’accord du propriétaire du sol (cps) est obligatoire ' + - 'si la décision du propriétaire du sol (asl) est favorable avec réserves', - () => { - expect( - octEtatsValidate([ - { typeId: 'mfr', date: '2020-01-01' }, - { typeId: 'dae', statutId: 'exe', date: '2020-01-01' }, - { typeId: 'mdp', date: '2020-01-02' }, - { typeId: 'asl', statutId: 'fre', date: '2020-01-02' }, - { typeId: 'mcr', statutId: 'fav', date: '2020-01-03' }, - { typeId: 'scl', date: '2020-01-04' }, - { typeId: 'ama', date: '2020-01-05' }, - { typeId: 'ssr', date: '2020-01-04' }, - { typeId: 'apd', date: '2020-01-06' } - ]) - ).toContain( - 'l’étape "apd" n’est pas possible juste après "mcr", "ssr", "ama"' - ) - } - ) - - test('la saisine de la commission départementale des mines (spo) est optionnelle', () => { - expect( - octEtatsValidate([ - { typeId: 'mfr', date: '2020-01-01' }, - { typeId: 'dae', statutId: 'exe', date: '2020-01-01' }, - { typeId: 'mdp', date: '2020-01-02' }, - { typeId: 'asl', statutId: 'fav', date: '2020-01-02' }, - { typeId: 'mcr', statutId: 'fav', date: '2020-01-03' }, - { typeId: 'scl', date: '2020-01-04' }, - { typeId: 'ama', date: '2020-01-05' }, - { typeId: 'ssr', date: '2020-01-04' }, - { typeId: 'cps', date: '2020-01-05' }, - { typeId: 'apd', date: '2020-01-06' }, - { typeId: 'apo', statutId: 'fav', date: '2020-01-08' } - ]) - ).toHaveLength(0) - }) - - test('la décision du propriétaire du sol (asl) peut-être favorable avec réserve (fre)', () => { - expect( - octEtatsValidate([ - { typeId: 'mfr', date: '2020-01-01' }, - { typeId: 'dae', statutId: 'exe', date: '2020-01-01' }, - { typeId: 'mdp', date: '2020-01-02' }, - { typeId: 'asl', statutId: 'fre', date: '2020-01-02' }, - { typeId: 'mcr', statutId: 'fav', date: '2020-01-03' } - ]) - ).toHaveLength(0) - }) - - test.each<[EtapeTypeId, EtapeStatutId]>([ - ['dex', 'fav'], - ['sas', 'fai'] - ])( - 'la %s est possible après une apo favorable avec réserve', - (typeId, statutId) => { - expect( - octEtatsValidate([ - { typeId: 'mfr', date: '2020-01-01' }, - { typeId: 'dae', statutId: 'exe', date: '2020-01-01' }, - { typeId: 'mdp', date: '2020-01-02' }, - { typeId: 'asl', statutId: 'fav', date: '2020-01-02' }, - { typeId: 'mcr', statutId: 'fav', date: '2020-01-03' }, - { typeId: 'scl', date: '2020-01-04' }, - { typeId: 'ama', date: '2020-01-05' }, - { typeId: 'ssr', date: '2020-01-04' }, - { typeId: 'cps', date: '2020-01-05' }, - { typeId: 'apd', date: '2020-01-06' }, - { typeId: 'apo', statutId: 'fre', date: '2020-01-08' }, - { typeId, statutId, date: '2020-01-09' } - ]) - ).toHaveLength(0) - } - ) -}) diff --git a/packages/api/src/business/rules-demarches/axm/oct.ts b/packages/api/src/business/rules-demarches/axm/oct.ts deleted file mode 100644 index 48421dd7f..000000000 --- a/packages/api/src/business/rules-demarches/axm/oct.ts +++ /dev/null @@ -1,222 +0,0 @@ -import { IDemarcheDefinitionRestrictions } from '../definitions' - -// https://cacoo.com/diagrams/sa6BiSBs5fwtQFXi/249D0 -const restrictionsAxmOct: IDemarcheDefinitionRestrictions = { - mfr: { - // FIXME normalement c’est jusqu’à la MDP, mais la DGTM n’a pas le temps de s’adapter à cette modification - separation: ['mcr'], - justeApres: [[]] - }, - asl: { - justeApres: [], - avant: [[{ etapeTypeId: 'asl' }]] - }, - dae: { - justeApres: [], - avant: [[{ etapeTypeId: 'dae' }]] - }, - mom: { - justeApres: [[{ etapeTypeId: 'dae', statutId: 'req' }]] - }, - mdp: { - avant: [[{ etapeTypeId: 'mdp' }]], - justeApres: [ - [{ etapeTypeId: 'mfr' }, { etapeTypeId: 'dae', statutId: 'exe' }], - [{ etapeTypeId: 'mfr' }, { etapeTypeId: 'mom' }] - ] - }, - nis: { - justeApres: [[]], - apres: [[{ etapeTypeId: 'mfr' }]], - final: false - }, - mod: { - justeApres: [[{ etapeTypeId: 'mdp' }]] - }, - mca: { - justeApres: [[{ etapeTypeId: 'mdp' }], [{ etapeTypeId: 'rca' }]], - avant: [[{ etapeTypeId: 'mcr' }]] - }, - rca: { justeApres: [[{ etapeTypeId: 'mca' }]] }, - mcr: { - justeApres: [ - [{ etapeTypeId: 'mdp' }, { etapeTypeId: 'asl', statutId: 'fav' }], - [{ etapeTypeId: 'rca' }, { etapeTypeId: 'asl', statutId: 'fav' }], - [{ etapeTypeId: 'rca' }, { etapeTypeId: 'asl', statutId: 'fav' }], - [{ etapeTypeId: 'mom' }, { etapeTypeId: 'asl', statutId: 'fav' }], - [{ etapeTypeId: 'mdp' }, { etapeTypeId: 'asl', statutId: 'fre' }], - [{ etapeTypeId: 'rca' }, { etapeTypeId: 'asl', statutId: 'fre' }], - [{ etapeTypeId: 'rca' }, { etapeTypeId: 'asl', statutId: 'fre' }], - [{ etapeTypeId: 'mom' }, { etapeTypeId: 'asl', statutId: 'fre' }], - [{ etapeTypeId: 'mod' }] - ], - separation: ['apd'] - }, - mie: { - avant: [[{ etapeTypeId: 'apd' }]], - justeApres: [[{ etapeTypeId: 'mcr' }], [{ etapeTypeId: 'rie' }]] - }, - rie: { - justeApres: [[{ etapeTypeId: 'mie' }]] - }, - scl: { - justeApres: [[{ etapeTypeId: 'mcr', statutId: 'fav' }]] - }, - ama: { - justeApres: [[{ etapeTypeId: 'scl' }]] - }, - ssr: { - justeApres: [[{ etapeTypeId: 'mcr', statutId: 'fav' }]], - separation: ['apd'] - }, - cps: { justeApres: [[{ etapeTypeId: 'ssr' }]] }, - abs: { justeApres: [[{ etapeTypeId: 'ssr' }]] }, - auc: { justeApres: [[{ etapeTypeId: 'ssr' }]] }, - aec: { justeApres: [[{ etapeTypeId: 'ssr' }]] }, - aaf: { justeApres: [[{ etapeTypeId: 'ssr' }]] }, - aac: { justeApres: [[{ etapeTypeId: 'ssr' }]] }, - ars: { justeApres: [[{ etapeTypeId: 'ssr' }]] }, - afp: { justeApres: [[{ etapeTypeId: 'ssr' }]] }, - ass: { justeApres: [[{ etapeTypeId: 'ssr' }]] }, - aof: { justeApres: [[{ etapeTypeId: 'ssr' }]] }, - agn: { justeApres: [[{ etapeTypeId: 'ssr' }]] }, - api: { justeApres: [[{ etapeTypeId: 'ssr' }]] }, - apd: { - apres: [[{ etapeTypeId: 'scl' }]], - justeApres: [ - [ - { etapeTypeId: 'ssr' }, - { - contextCheck: etapes => { - // on peut faire un « avis de la DREAL » juste après une « Saisine des services » - // si la « Décision du propriétaire du sol » est favorable sans réserve - const aslEtape = etapes.find(e => e.typeId === 'asl') - - return aslEtape?.statutId === 'fav' - } - } - ], - [{ etapeTypeId: 'cps' }], - [{ etapeTypeId: 'apo', statutId: 'ajo' }] - ] - }, - spo: { - justeApres: [[{ etapeTypeId: 'apd' }]] - }, - apo: { - justeApres: [[{ etapeTypeId: 'spo' }], [{ etapeTypeId: 'apd' }]] - }, - sas: { - justeApres: [ - [{ etapeTypeId: 'apo', statutId: 'fav' }], - [{ etapeTypeId: 'apo', statutId: 'fre' }], - [{ etapeTypeId: 'apo', statutId: 'def' }] - ] - }, - dex: { - justeApres: [ - [{ etapeTypeId: 'apo', statutId: 'fav' }], - [{ etapeTypeId: 'apo', statutId: 'fre' }], - [{ etapeTypeId: 'apo', statutId: 'def' }], - [{ etapeTypeId: 'sas' }] - ], - separation: [] - }, - mno: { - justeApres: [[{ etapeTypeId: 'dex' }]], - avant: [ - [{ etapeTypeId: 'abd' }], - [{ etapeTypeId: 'rtd' }], - [{ etapeTypeId: 'and' }] - ] - }, - rpu: { - justeApres: [[{ etapeTypeId: 'dex' }]], - avant: [ - [{ etapeTypeId: 'abd' }], - [{ etapeTypeId: 'rtd' }], - [{ etapeTypeId: 'and' }] - ] - }, - pqr: { - justeApres: [[{ etapeTypeId: 'dex' }]], - avant: [ - [{ etapeTypeId: 'abd' }], - [{ etapeTypeId: 'rtd' }], - [{ etapeTypeId: 'and' }] - ] - }, - ncl: { - justeApres: [[{ etapeTypeId: 'dex' }]], - avant: [ - [{ etapeTypeId: 'abd' }], - [{ etapeTypeId: 'rtd' }], - [{ etapeTypeId: 'and' }] - ] - }, - abd: { - justeApres: [[{ etapeTypeId: 'dex' }]], - avant: [ - [{ etapeTypeId: 'abd' }], - [{ etapeTypeId: 'rtd' }], - [{ etapeTypeId: 'and' }], - [{ etapeTypeId: 'mno' }], - [{ etapeTypeId: 'rpu' }], - [{ etapeTypeId: 'pqr' }], - [{ etapeTypeId: 'ncl' }] - ] - }, - rtd: { - justeApres: [[{ etapeTypeId: 'dex' }]], - avant: [ - [{ etapeTypeId: 'abd' }], - [{ etapeTypeId: 'rtd' }], - [{ etapeTypeId: 'and' }], - [{ etapeTypeId: 'mno' }], - [{ etapeTypeId: 'rpu' }], - [{ etapeTypeId: 'pqr' }], - [{ etapeTypeId: 'ncl' }] - ] - }, - and: { - justeApres: [[{ etapeTypeId: 'dex' }], [{ etapeTypeId: 'dim' }]], - avant: [ - [{ etapeTypeId: 'abd' }], - [{ etapeTypeId: 'rtd' }], - [{ etapeTypeId: 'and' }], - [{ etapeTypeId: 'mno' }], - [{ etapeTypeId: 'rpu' }], - [{ etapeTypeId: 'pqr' }], - [{ etapeTypeId: 'ncl' }] - ] - }, - dim: { - justeApres: [[{ etapeTypeId: 'mdp' }]] - }, - css: { - justeApres: [[]], - apres: [ - [{ etapeTypeId: 'mdp' }], - [{ etapeTypeId: 'asl', statutId: 'def' }], - [{ etapeTypeId: 'dae', statutId: 'req' }] - ], - avant: [ - [{ etapeTypeId: 'dex' }], - [{ etapeTypeId: 'dim' }], - [{ etapeTypeId: 'des' }] - ] - }, - des: { - justeApres: [[]], - apres: [ - [{ etapeTypeId: 'mfr' }, { etapeTypeId: 'asl' }, { etapeTypeId: 'dae' }] - ], - avant: [ - [{ etapeTypeId: 'dex' }], - [{ etapeTypeId: 'dim' }], - [{ etapeTypeId: 'css' }] - ] - } -} - -export { restrictionsAxmOct } diff --git a/packages/api/src/business/rules-demarches/definitions.test.ts b/packages/api/src/business/rules-demarches/definitions.test.ts index 839b90532..2805514df 100644 --- a/packages/api/src/business/rules-demarches/definitions.test.ts +++ b/packages/api/src/business/rules-demarches/definitions.test.ts @@ -2,8 +2,8 @@ import { isDemarcheDefinitionMachine, isDemarcheDefinitionRestriction } from './definitions' -import { armOctMachine } from './arm/oct.machine' import { restrictionsArmRet } from './arm/ret' +import { ArmOctMachine } from './arm/oct.machine' test('isDemarcheDefinitionMachine', () => { expect( @@ -11,7 +11,7 @@ test('isDemarcheDefinitionMachine', () => { titreTypeId: '', demarcheTypeIds: [], dateDebut: '', - machine: armOctMachine + machine: new ArmOctMachine() }) ).toBe(true) expect( @@ -30,7 +30,7 @@ test('isDemarcheDefinitionRestriction', () => { titreTypeId: '', demarcheTypeIds: [], dateDebut: '', - machine: armOctMachine + machine: new ArmOctMachine() }) ).toBe(false) expect( diff --git a/packages/api/src/business/rules-demarches/definitions.ts b/packages/api/src/business/rules-demarches/definitions.ts index 052fc0753..3fe455e59 100644 --- a/packages/api/src/business/rules-demarches/definitions.ts +++ b/packages/api/src/business/rules-demarches/definitions.ts @@ -2,11 +2,12 @@ import { DemarcheId, IContenuValeur, ITitreEtape } from '../../types' import { restrictionsArmRet } from './arm/ret' import { restrictionsArmRenPro } from './arm/ren-pro' -import { restrictionsAxmOct } from './axm/oct' import { etatsDefinitionPrmOct } from './prm/oct' -import { AnyStateMachine } from 'xstate' -import { armOctMachine } from './arm/oct.machine' import { titreDemarcheDepotDemandeDateFind } from '../rules/titre-demarche-depot-demande-date-find' +import { CaminoMachines } from './machines' +import { ArmOctMachine } from './arm/oct.machine' +import { AxmOctMachine } from './axm/oct.machine' +import { newDemarcheId } from '../../database/models/_format/id-create' export interface IEtapeTypeIdCondition { etapeTypeId?: string @@ -57,7 +58,7 @@ export interface DemarcheDefinitionRestriction restrictions: IDemarcheDefinitionRestrictions } export interface DemarcheDefinitionMachine extends DemarcheDefinitionCommon { - machine: AnyStateMachine + machine: CaminoMachines } type IContenuOperation = { @@ -82,7 +83,7 @@ export const demarchesDefinitions: IDemarcheDefinition[] = [ { titreTypeId: 'arm', demarcheTypeIds: ['oct'], - machine: armOctMachine, + machine: new ArmOctMachine(), dateDebut: '2019-10-31' }, { @@ -106,9 +107,13 @@ export const demarchesDefinitions: IDemarcheDefinition[] = [ { titreTypeId: 'axm', demarcheTypeIds: ['oct'], - restrictions: restrictionsAxmOct, + machine: new AxmOctMachine(), // https://camino.beta.gouv.fr/titres/m-ax-crique-tumuc-humac-2020 - dateDebut: '2020-09-30' + dateDebut: '2020-09-30', + demarcheIdExceptions: [ + newDemarcheId('C3rs92l1eci3mLvsAGkv7gVV'), + newDemarcheId('YEWeODXiFb7xKJB2OQlTyc14') + ] } ] diff --git a/packages/api/src/business/rules-demarches/machine-common.test.ts b/packages/api/src/business/rules-demarches/machine-common.test.ts new file mode 100644 index 000000000..7f495288a --- /dev/null +++ b/packages/api/src/business/rules-demarches/machine-common.test.ts @@ -0,0 +1,75 @@ +import { newDemarcheId } from '../../database/models/_format/id-create' +import { ITitreEtape } from '../../types' +import { toMachineEtapes } from './machine-common' + +describe('toMachineEtapes', () => { + test('transforme une étape de la bdd en étape de machine', () => { + expect( + toMachineEtapes([ + { + id: 'id', + typeId: 'mfr', + statutId: 'fai', + date: '2022-01-01', + titreDemarcheId: newDemarcheId('idDemarche') + } + ]) + ).toEqual([ + { + etapeTypeId: 'mfr', + etapeStatutId: 'fai', + date: '2022-01-01' + } + ]) + + expect( + toMachineEtapes([ + { + id: 'id', + typeId: 'mfr', + statutId: 'fai', + date: '2022-01-01', + titreDemarcheId: newDemarcheId('idDemarche'), + contenu: { arm: { mecanise: true } } + } + ]) + ).toEqual([ + { + etapeTypeId: 'mfr', + etapeStatutId: 'fai', + date: '2022-01-01', + contenu: { arm: { mecanise: true } } + } + ]) + }) + + test('emet une erreur si le type de l’étape est inconnu', () => { + expect(() => + toMachineEtapes([ + { + id: 'id', + typeId: 'iii', + statutId: 'fai', + date: '2022-01-01', + titreDemarcheId: 'idDemarche' + } as unknown as ITitreEtape + ]) + ).toThrowErrorMatchingInlineSnapshot(`"l'état iii est inconnu"`) + }) + + test('emet une erreur si le type de le statut est inconnu', () => { + expect(() => + toMachineEtapes([ + { + id: 'id', + typeId: 'mfr', + statutId: 'ffi', + date: '2022-01-01', + titreDemarcheId: 'idDemarche' + } as unknown as ITitreEtape + ]) + ).toThrowErrorMatchingInlineSnapshot( + `"le status ffi est inconnu, {\\"id\\":\\"id\\",\\"typeId\\":\\"mfr\\",\\"statutId\\":\\"ffi\\",\\"date\\":\\"2022-01-01\\",\\"titreDemarcheId\\":\\"idDemarche\\"}"` + ) + }) +}) diff --git a/packages/api/src/business/rules-demarches/machine-common.ts b/packages/api/src/business/rules-demarches/machine-common.ts new file mode 100644 index 000000000..23bd7967c --- /dev/null +++ b/packages/api/src/business/rules-demarches/machine-common.ts @@ -0,0 +1,81 @@ +import { IContenu, ITitreEtape } from '../../types' +import { + EtapeStatutId, + EtapeStatutKey, + isStatut +} from 'camino-common/src/static/etapesStatuts' +import { + EtapeTypeId, + isEtapeTypeId +} from 'camino-common/src/static/etapesTypes' +import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations' +import { EtapeTypeEtapeStatut } from 'camino-common/src/static/etapesTypesEtapesStatuts' +import { DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts' + +export interface Etape { + // TODO 2022-07-28 : ceci pourrait être réduit en utilisant les états de 'trad' + etapeTypeId: EtapeTypeId + etapeStatutId: EtapeStatutId + date: string + contenu?: IContenu +} + +export interface CaminoCommonContext { + demarcheStatut: DemarcheStatutId + visibilite: 'confidentielle' | 'publique' +} + +export const toMachineEtapes = (etapes: ITitreEtape[]): Etape[] => { + // FIXME si on appelle titreEtapesSortAscByOrdre on se retrouve avec une grosse dépendance cyclique + return etapes + .slice() + .sort((a, b) => a.ordre! - b.ordre!) + .map(dbEtape => toMachineEtape(dbEtape)) +} + +const toMachineEtape = (dbEtape: ITitreEtape): Etape => { + let typeId + if (isEtapeTypeId(dbEtape.typeId)) { + typeId = dbEtape.typeId + } else { + throw new Error(`l'état ${dbEtape.typeId} est inconnu`) + } + let statutId + if (isStatut(dbEtape.statutId)) { + statutId = dbEtape.statutId + } else { + console.error( + `le status ${dbEtape.statutId} est inconnu, ${JSON.stringify(dbEtape)}` + ) + throw new Error( + `le status ${dbEtape.statutId} est inconnu, ${JSON.stringify(dbEtape)}` + ) + } + + const machineEtape: Etape = { + date: dbEtape.date, + etapeTypeId: typeId, + etapeStatutId: statutId + } + if (dbEtape.contenu) { + machineEtape.contenu = dbEtape.contenu + } + + return machineEtape +} + +export const tags = { + responsable: { + [ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']]: 'responsablePTMG', + [ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']]: 'responsableONF', + [ADMINISTRATION_IDS['DGTM - GUYANE']]: 'responsableDGTM' + } +} as const + +export type Intervenant = keyof typeof tags['responsable'] + +export const intervenants = Object.keys(tags.responsable) as Array< + keyof typeof tags.responsable +> + +export type DBEtat = { [key in EtapeStatutKey]?: EtapeTypeEtapeStatut } diff --git a/packages/api/src/business/rules-demarches/machine-helper.test.ts b/packages/api/src/business/rules-demarches/machine-helper.test.ts index edb7a88b8..20ccb92e8 100644 --- a/packages/api/src/business/rules-demarches/machine-helper.test.ts +++ b/packages/api/src/business/rules-demarches/machine-helper.test.ts @@ -1,111 +1,50 @@ -import { isEtapesOk, toMachineEtape, whoIsBlocking } from './machine-helper' import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations' -import { ITitreEtape } from '../../types' -import { newDemarcheId } from '../../database/models/_format/id-create' +import { ArmOctMachine } from './arm/oct.machine' +const machine = new ArmOctMachine() describe('isEtapesOk', () => { // On n'est pas certain de notre base de données, si ça impacte les perf, test('refuse si les étapes ne sont pas temporellement dans le bon ordre', () => { expect( - isEtapesOk([ - { typeId: 'mfr', statutId: 'fai', date: '2021-02-26' }, - { typeId: 'mdp', statutId: 'fai', date: '2021-02-10' } + machine.isEtapesOk([ + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2021-02-26' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2021-02-10' } ]) ).toBe(false) }) }) -describe('toMachineEtape', () => { - test('transforme une étape de la bdd en étape de machine', () => { - expect( - toMachineEtape({ - id: 'id', - typeId: 'mfr', - statutId: 'fai', - date: '2022-01-01', - titreDemarcheId: newDemarcheId('idDemarche') - }) - ).toEqual({ - typeId: 'mfr', - statutId: 'fai', - date: '2022-01-01' - }) - - expect( - toMachineEtape({ - id: 'id', - typeId: 'mfr', - statutId: 'fai', - date: '2022-01-01', - titreDemarcheId: newDemarcheId('idDemarche'), - contenu: { arm: { mecanise: true } } - }) - ).toEqual({ - typeId: 'mfr', - statutId: 'fai', - date: '2022-01-01', - contenu: { arm: { mecanise: true } } - }) - }) - - test('emet une erreur si le type de l’étape est inconnu', () => { - expect(() => - toMachineEtape({ - id: 'id', - typeId: 'iii', - statutId: 'fai', - date: '2022-01-01', - titreDemarcheId: 'idDemarche' - } as unknown as ITitreEtape) - ).toThrowErrorMatchingInlineSnapshot(`"l'état iii est inconnu"`) - }) - - test('emet une erreur si le type de le statut est inconnu', () => { - expect(() => - toMachineEtape({ - id: 'id', - typeId: 'mfr', - statutId: 'ffi', - date: '2022-01-01', - titreDemarcheId: 'idDemarche' - } as unknown as ITitreEtape) - ).toThrowErrorMatchingInlineSnapshot( - `"le status ffi est inconnu, {\\"id\\":\\"id\\",\\"typeId\\":\\"mfr\\",\\"statutId\\":\\"ffi\\",\\"date\\":\\"2022-01-01\\",\\"titreDemarcheId\\":\\"idDemarche\\"}"` - ) - }) -}) - describe('whoIsBlocking', () => { test('on attend le PTMG pour la recevabilité d’une demande d’ARM', () => { expect( - whoIsBlocking([ - { typeId: 'mfr', statutId: 'fai', date: '2021-02-01' }, - { typeId: 'mdp', statutId: 'fai', date: '2021-02-02' }, - { typeId: 'pfd', statutId: 'fai', date: '2021-02-03' } + machine.whoIsBlocking([ + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2021-02-01' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2021-02-02' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2021-02-03' } ]) ).toStrictEqual([ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']]) }) test("on attend l'ONF pour la validation du paiement des frais de dossier", () => { expect( - whoIsBlocking([ - { typeId: 'mfr', statutId: 'fai', date: '2021-02-01' }, - { typeId: 'mdp', statutId: 'fai', date: '2021-02-02' }, - { typeId: 'pfd', statutId: 'fai', date: '2021-02-03' }, - { typeId: 'mcp', statutId: 'com', date: '2021-02-04' } + machine.whoIsBlocking([ + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2021-02-01' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2021-02-02' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2021-02-03' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2021-02-04' } ]) ).toStrictEqual([ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']]) }) test('on attend personne', () => { expect( - whoIsBlocking([ - { typeId: 'mfr', statutId: 'fai', date: '2021-02-01' }, - { typeId: 'mdp', statutId: 'fai', date: '2021-02-02' }, - { typeId: 'pfd', statutId: 'fai', date: '2021-02-03' }, - { typeId: 'mcp', statutId: 'com', date: '2021-02-04' }, - { typeId: 'vfd', statutId: 'fai', date: '2021-02-05' }, - { typeId: 'mcr', statutId: 'fav', date: '2021-02-06' } + machine.whoIsBlocking([ + { etapeTypeId: 'mfr', etapeStatutId: 'fai', date: '2021-02-01' }, + { etapeTypeId: 'mdp', etapeStatutId: 'fai', date: '2021-02-02' }, + { etapeTypeId: 'pfd', etapeStatutId: 'fai', date: '2021-02-03' }, + { etapeTypeId: 'mcp', etapeStatutId: 'com', date: '2021-02-04' }, + { etapeTypeId: 'vfd', etapeStatutId: 'fai', date: '2021-02-05' }, + { etapeTypeId: 'mcr', etapeStatutId: 'fav', date: '2021-02-06' } ]) ).toStrictEqual([]) }) diff --git a/packages/api/src/business/rules-demarches/machine-helper.ts b/packages/api/src/business/rules-demarches/machine-helper.ts index 837f250c2..9c5ec56f1 100644 --- a/packages/api/src/business/rules-demarches/machine-helper.ts +++ b/packages/api/src/business/rules-demarches/machine-helper.ts @@ -1,227 +1,254 @@ import { - armOctMachine, + BaseActionObject, + interpret, + ResolveTypegenMeta, + ServiceMap, + State, + StateMachine, + TypegenDisabled +} from 'xstate' +import { EventObject } from 'xstate/lib/types' +import { + CaminoCommonContext, Etape, - eventFrom, - isEvent, - OctARMContext, - tags, - toPotentialXStateEvent, - XStateEvent, - xStateEventToEtape -} from './arm/oct.machine' -import { interpret, State, StateFrom } from 'xstate' -import { ITitreEtape } from '../../types' -import { titreEtapesSortAscByOrdre } from '../utils/titre-etapes-sort' -import { isStatut } from 'camino-common/src/static/etapesStatuts' -import { isEtapeTypeId } from 'camino-common/src/static/etapesTypes' + Intervenant, + intervenants, + tags +} from './machine-common' import { DemarchesStatutsIds, DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts' -// TODO 2022-05-18: il faudrait que le orderMachine retourne la solution la plus longue possible quand il n'y a pas de solution, pour aider au debug -// orderMachine devrait retourner un tuple {ok: bool, etapes: Etape[]} pour éviter de faire isEtapesOk(orderMachine( qui ne sert à rien car orderMachine sait si les étapes sont ok -export const orderMachine = (etapes: readonly Etape[]): readonly Etape[] => { - const sortedEtapes = etapes - .slice() - .sort((a, b) => a.date.localeCompare(b.date)) +export abstract class CaminoMachine< + CaminoContext extends CaminoCommonContext, + CaminoEvent extends EventObject +> { + public readonly machine: StateMachine< + CaminoContext, + any, + CaminoEvent, + { value: any; context: CaminoContext }, + BaseActionObject, + ServiceMap, + ResolveTypegenMeta< + TypegenDisabled, + CaminoEvent, + BaseActionObject, + ServiceMap + > + > + + protected constructor( + machine: StateMachine< + CaminoContext, + any, + CaminoEvent, + { value: any; context: CaminoContext }, + BaseActionObject, + ServiceMap, + ResolveTypegenMeta< + TypegenDisabled, + CaminoEvent, + BaseActionObject, + ServiceMap + > + > + ) { + this.machine = machine + } - const solution = findSolution(sortedEtapes) + abstract eventFrom(etape: Etape): CaminoEvent + abstract isEvent(event: string): event is CaminoEvent['type'] + abstract toPotentialCaminoXStateEvent( + event: CaminoEvent['type'] + ): CaminoEvent[] - if (solution === undefined) { - return sortedEtapes - } + abstract caminoXStateEventToEtapes(event: CaminoEvent): Omit<Etape, 'date'>[] - return solution -} + public orderMachine(etapes: readonly Etape[]): readonly Etape[] { + const sortedEtapes = etapes + .slice() + .sort((a, b) => a.date.localeCompare(b.date)) + + const solution = this.findSolution(sortedEtapes) + + if (solution === undefined) { + return sortedEtapes + } -const findSolution = ( - etapes: readonly Etape[], - temp: Etape[] = [] -): readonly Etape[] | undefined => { - if (!etapes.length) { - return isEtapesOk(temp) ? temp : undefined + return solution } - const etape = etapes[0] - // Une étape en conflit avec une autre peut être: - // - une étape à la même date - const etapesAvecConflitPotentiel = etapes.filter( - ({ date }) => date === etape.date - ) - - if (etapesAvecConflitPotentiel.length) { - for (let i = 0; i < etapesAvecConflitPotentiel.length; i++) { - const e = etapesAvecConflitPotentiel[i] - const tmp = [...temp] - tmp.push(e) - const nextEtapes = etapes.filter( - ({ date, typeId, statutId }) => - date !== e.date || typeId !== e.typeId || statutId !== e.statutId - ) - if (isEtapesOk(tmp)) { - const solution = findSolution(nextEtapes, tmp) - if (solution) { - return solution + private findSolution( + etapes: readonly Etape[], + temp: Etape[] = [] + ): readonly Etape[] | undefined { + if (!etapes.length) { + return this.isEtapesOk(temp) ? temp : undefined + } + + const etape = etapes[0] + // Une étape en conflit avec une autre peut être: + // - une étape à la même date + const etapesAvecConflitPotentiel = etapes.filter( + ({ date }) => date === etape.date + ) + + if (etapesAvecConflitPotentiel.length) { + for (let i = 0; i < etapesAvecConflitPotentiel.length; i++) { + const e = etapesAvecConflitPotentiel[i] + const tmp = [...temp] + tmp.push(e) + const nextEtapes = etapes.filter( + ({ date, etapeTypeId, etapeStatutId }) => + date !== e.date || + etapeTypeId !== e.etapeTypeId || + etapeStatutId !== e.etapeStatutId + ) + if (this.isEtapesOk(tmp)) { + const solution = this.findSolution(nextEtapes, tmp) + if (solution) { + return solution + } } } + } else { + temp.push(etape) + const nextEtapes = etapes.slice(1) + const solution = this.findSolution(nextEtapes, temp) + if (solution) { + return solution + } } - } else { - temp.push(etape) - const nextEtapes = etapes.slice(1) - const solution = findSolution(nextEtapes, temp) - if (solution) { - return solution - } - } - return undefined -} + return undefined + } -export const toMachineEtapes = (etapes: ITitreEtape[]): Etape[] => { - return titreEtapesSortAscByOrdre(etapes).map(dbEtape => - toMachineEtape(dbEtape) - ) -} + /** + * Cette function ne doit JAMAIS appeler orderMachine, car c'est orderMachine qui se sert de cette fonction. + * Cette function ne fait que vérifier si les étapes qu'on lui donne sont valides dans l'ordre + */ + public isEtapesOk( + sortedEtapes: readonly Etape[], + initialState: State<CaminoContext, CaminoEvent> | null = null + ): boolean { + if (sortedEtapes.length) { + for (let i = 1; i < sortedEtapes.length; i++) { + if (sortedEtapes[i - 1].date > sortedEtapes[i].date) { + return false + } + } + } + const result = this.goTo(sortedEtapes, initialState) -export const toMachineEtape = (dbEtape: ITitreEtape): Etape => { - let typeId - if (isEtapeTypeId(dbEtape.typeId)) { - typeId = dbEtape.typeId - } else { - throw new Error(`l'état ${dbEtape.typeId} est inconnu`) - } - let statutId - if (isStatut(dbEtape.statutId)) { - statutId = dbEtape.statutId - } else { - console.error( - `le status ${dbEtape.statutId} est inconnu, ${JSON.stringify(dbEtape)}` - ) - throw new Error( - `le status ${dbEtape.statutId} est inconnu, ${JSON.stringify(dbEtape)}` - ) + return result.valid } - const machineEtape: Etape = { - date: dbEtape.date, - typeId, - statutId - } - if (dbEtape.contenu) { - machineEtape.contenu = dbEtape.contenu - } + private goTo( + etapes: readonly Etape[], + initialState: State<CaminoContext, CaminoEvent> | null = null + ): + | { valid: false; etapeIndex: number } + | { + valid: true + state: State< + CaminoContext, + CaminoEvent, + any, + { value: any; context: CaminoContext }, + ResolveTypegenMeta< + TypegenDisabled, + CaminoEvent, + BaseActionObject, + ServiceMap + > + > + } { + const service = interpret(this.machine) + + if (initialState === null) { + service.start() + } else { + service.start(initialState) + } + for (let i = 0; i < etapes.length; i++) { + const etapeAFaire = etapes[i] + const event = this.eventFrom(etapeAFaire) + if (!service.state.can(event)) { + service.stop() - return machineEtape -} + return { valid: false, etapeIndex: i } + } + service.send(event) + } -export const demarcheStatut = (etapes: readonly Etape[]): DemarcheStatutId => { - const value = goTo(etapes) - if (!value.valid) { - console.error( - `impossible de trouver le demarcheStatus, cette liste d'étapes '${JSON.stringify( - etapes - )}' est incohérente à l'étape ${value.etapeIndex + 1}` - ) + const state = service.state + service.stop() - return DemarchesStatutsIds.Indetermine - } else { - return value.state.context.demarcheStatut + return { valid: true, state } } -} - -type Intervenant = keyof typeof tags['responsable'] - -const intervenants = Object.keys(tags.responsable) as Array< - keyof typeof tags.responsable -> -const goTo = ( - etapes: readonly Etape[], - initialState: State<OctARMContext, XStateEvent> | null = null -): - | { valid: false; etapeIndex: number } - | { valid: true; state: StateFrom<typeof armOctMachine> } => { - const service = interpret(armOctMachine) + public demarcheStatut(etapes: readonly Etape[]): { + demarcheStatut: DemarcheStatutId + publique: boolean + } { + const value = this.goTo(etapes) + if (!value.valid) { + console.error( + `impossible de trouver le demarcheStatus, cette liste d'étapes '${JSON.stringify( + etapes + )}' est incohérente à l'étape ${value.etapeIndex + 1}` + ) - if (initialState === null) { - service.start() - } else { - service.start(initialState) + return { + demarcheStatut: DemarchesStatutsIds.Indetermine, + publique: false + } + } else { + return { + demarcheStatut: value.state.context.demarcheStatut, + publique: value.state.context.visibilite === 'publique' + } + } } - for (let i = 0; i < etapes.length; i++) { - const etapeAFaire = etapes[i] - const event = eventFrom(etapeAFaire) - if (!service.state.can(event)) { - service.stop() - return { valid: false, etapeIndex: i } + private assertGoTo( + etapes: readonly Etape[], + initialState: State<CaminoContext, CaminoEvent> | null = null + ) { + const value = this.goTo(etapes, initialState) + if (!value.valid) { + throw new Error( + `Les étapes '${JSON.stringify( + etapes + )}' sont invalides à partir de l’étape ${value.etapeIndex}` + ) + } else { + return value.state } - service.send(event) } - service.stop() + public whoIsBlocking(etapes: readonly Etape[]): Intervenant[] { + const state = this.assertGoTo(etapes) - return { valid: true, state: service.state } -} + const responsables: string[] = [...state.tags] -const assertGoTo = ( - etapes: readonly Etape[], - initialState: State<OctARMContext, XStateEvent> | null = null -) => { - const value = goTo(etapes, initialState) - if (!value.valid) { - throw new Error( - `Les étapes '${JSON.stringify( - etapes - )}' sont invalides à partir de l’étape ${value.etapeIndex}` - ) - } else { - return value.state + return intervenants.filter(r => responsables.includes(tags.responsable[r])) } -} - -export const whoIsBlocking = (etapes: readonly Etape[]): Intervenant[] => { - const state = assertGoTo(etapes) - const responsables: string[] = [...state.tags] + public possibleNextEtapes(etapes: readonly Etape[]): Omit<Etape, 'date'>[] { + const state = this.assertGoTo(etapes) - return intervenants.filter(r => responsables.includes(tags.responsable[r])) -} - -export const possibleNextEtapes = ( - etapes: readonly Etape[] -): Omit<Etape, 'date'>[] => { - const state = assertGoTo(etapes) - - return state.nextEvents - .filter(isEvent) - .flatMap(event => { - const events = toPotentialXStateEvent(event) - - return events - .filter(event => state.can(event)) - .flatMap(xStateEventToEtape) - }) - .filter(event => event !== undefined) -} + return state.nextEvents + .filter(this.isEvent) + .flatMap(event => { + const events = this.toPotentialCaminoXStateEvent(event) -/** - * Cette function ne doit JAMAIS appeler orderMachine, car c'est orderMachine qui se sert de cette fonction. - * Cette function ne fait que vérifier si les étapes qu'on lui donne sont valides dans l'ordre - */ -export const isEtapesOk = ( - sortedEtapes: readonly Etape[], - initialState: State<OctARMContext, XStateEvent> | null = null -): boolean => { - if (sortedEtapes.length) { - for (let i = 1; i < sortedEtapes.length; i++) { - if (sortedEtapes[i - 1].date > sortedEtapes[i].date) { - return false - } - } + return events + .filter(event => state.can(event)) + .flatMap(this.caminoXStateEventToEtapes) + }) + .filter(event => event !== undefined) } - const result = goTo(sortedEtapes, initialState) - - return result.valid } diff --git a/packages/api/src/business/rules-demarches/machine-test-helper.ts b/packages/api/src/business/rules-demarches/machine-test-helper.ts index cc06dc1e3..3d71f6332 100644 --- a/packages/api/src/business/rules-demarches/machine-test-helper.ts +++ b/packages/api/src/business/rules-demarches/machine-test-helper.ts @@ -1,16 +1,13 @@ -import { - Etape, - Event, - eventFrom, - armOctMachine, - isEvent, - toPotentialXStateEvent -} from './arm/oct.machine' +import { Etape } from './machine-common' +import { EventObject } from 'xstate/lib/types' import { interpret } from 'xstate' -import { orderMachine } from './machine-helper' +import { CaminoMachine } from './machine-helper' interface CustomMatchers<R = unknown> { - canOnlyTransitionTo(_events: Event[]): R + canOnlyTransitionTo<T extends EventObject>( + machine: CaminoMachine<any, T>, + _events: EventObject['type'][] + ): R } declare global { @@ -24,12 +21,16 @@ declare global { } } expect.extend({ - canOnlyTransitionTo(service, events: Event[]) { + canOnlyTransitionTo<T extends EventObject>( + service: any, + machine: CaminoMachine<any, T>, + events: T['type'][] + ) { events.sort() - const passEvents: Event[] = service.state.nextEvents - .filter(isEvent) - .filter((event: Event) => { - const events = toPotentialXStateEvent(event) + const passEvents: EventObject['type'][] = service.state.nextEvents + .filter(machine.isEvent) + .filter((event: EventObject['type']) => { + const events = machine.toPotentialCaminoXStateEvent(event) return events.some(event => service.state.can(event)) }) @@ -55,27 +56,32 @@ expect.extend({ } }) -export const interpretMachine = (etapes: readonly Etape[]) => { - const service = interpret(armOctMachine) +export const interpretMachine = <T extends EventObject>( + machine: CaminoMachine<any, T>, + etapes: readonly Etape[] +) => { + const service = interpret(machine.machine) service.start() for (let i = 0; i < etapes.length; i++) { const etapeAFaire = etapes[i] - const event = eventFrom(etapeAFaire) + const event = machine.eventFrom(etapeAFaire) if (!service.state.can(event)) { throw new Error( `Error: cannot execute step: '${JSON.stringify( etapeAFaire )}' after '${JSON.stringify( - etapes.slice(0, i).map(etape => etape.typeId + '_' + etape.statutId) + etapes + .slice(0, i) + .map(etape => etape.etapeTypeId + '_' + etape.etapeStatutId) )}'. The event ${JSON.stringify( event )} should be one of '${service.state.nextEvents - .filter(isEvent) - .filter((event: Event) => { - const events = toPotentialXStateEvent(event) + .filter(machine.isEvent) + .filter((event: EventObject['type']) => { + const events = machine.toPotentialCaminoXStateEvent(event) return events.some(event => service.state.can(event)) })}'` @@ -84,15 +90,12 @@ export const interpretMachine = (etapes: readonly Etape[]) => { service.send(event) } - service.stop() - return service } -export const orderAndInterpretMachine = (etapes: readonly Etape[]) => { - const sortedEtapes = etapes - .slice() - .sort((a, b) => a.date.localeCompare(b.date)) - - return interpretMachine(orderMachine(sortedEtapes)) +export const orderAndInterpretMachine = <T extends EventObject>( + machine: CaminoMachine<any, T>, + etapes: readonly Etape[] +) => { + return interpretMachine(machine, machine.orderMachine(etapes)) } diff --git a/packages/api/src/business/rules-demarches/machines.ts b/packages/api/src/business/rules-demarches/machines.ts new file mode 100644 index 000000000..43c39863e --- /dev/null +++ b/packages/api/src/business/rules-demarches/machines.ts @@ -0,0 +1,4 @@ +import { ArmOctMachine } from './arm/oct.machine' +import { AxmOctMachine } from './axm/oct.machine' + +export type CaminoMachines = ArmOctMachine | AxmOctMachine diff --git a/packages/api/src/business/rules/titre-demarche-depot-demande-date-find.ts b/packages/api/src/business/rules/titre-demarche-depot-demande-date-find.ts index d418d417c..078b18eec 100644 --- a/packages/api/src/business/rules/titre-demarche-depot-demande-date-find.ts +++ b/packages/api/src/business/rules/titre-demarche-depot-demande-date-find.ts @@ -5,7 +5,7 @@ import { ITitreEtape } from '../../types' // sinon // retourne la date de la première étape -const titreDemarcheDepotDemandeDateFind = ( +export const titreDemarcheDepotDemandeDateFind = ( titreEtapes: Pick<ITitreEtape, 'date' | 'typeId'>[] | undefined ): undefined | string => { if (!titreEtapes || titreEtapes.length === 0) { @@ -20,5 +20,3 @@ const titreDemarcheDepotDemandeDateFind = ( return titreEtapes.map(te => te.date).sort()[0] } - -export { titreDemarcheDepotDemandeDateFind } diff --git a/packages/api/src/business/rules/titre-demarche-statut-id-find.test.ts b/packages/api/src/business/rules/titre-demarche-statut-id-find.test.ts index c1d5275ad..7af064b56 100644 --- a/packages/api/src/business/rules/titre-demarche-statut-id-find.test.ts +++ b/packages/api/src/business/rules/titre-demarche-statut-id-find.test.ts @@ -49,7 +49,7 @@ describe("statut d'une démarche", () => { expect( titreDemarcheStatutIdFind( 'oct', - etapesBuild([{ typeId: 'dex', statutId: 'acc' }]), + etapesBuild([{ typeId: 'dex', date: '2010-01-01', statutId: 'acc' }]), 'axm', newDemarcheId() ) diff --git a/packages/api/src/business/rules/titre-demarche-statut-id-find.ts b/packages/api/src/business/rules/titre-demarche-statut-id-find.ts index 9bae67846..074aa3b11 100644 --- a/packages/api/src/business/rules/titre-demarche-statut-id-find.ts +++ b/packages/api/src/business/rules/titre-demarche-statut-id-find.ts @@ -10,10 +10,7 @@ import { demarcheDefinitionFind, isDemarcheDefinitionMachine } from '../rules-demarches/definitions' -import { - demarcheStatut, - toMachineEtapes -} from '../rules-demarches/machine-helper' +import { toMachineEtapes } from '../rules-demarches/machine-common' import { DemarcheStatutId, DemarchesStatutsIds @@ -396,7 +393,9 @@ export const titreDemarcheStatutIdFind = ( ) if (isDemarcheDefinitionMachine(demarcheDefinition)) { - return demarcheStatut(toMachineEtapes(titreDemarcheEtapes)) + return demarcheDefinition.machine.demarcheStatut( + toMachineEtapes(titreDemarcheEtapes) + ).demarcheStatut } // si la démarche fait l’objet d’une demande diff --git a/packages/api/src/business/utils/titre-etapes-sort.ts b/packages/api/src/business/utils/titre-etapes-sort.ts index 0dc9a02cf..74188ac1f 100644 --- a/packages/api/src/business/utils/titre-etapes-sort.ts +++ b/packages/api/src/business/utils/titre-etapes-sort.ts @@ -5,11 +5,7 @@ import { IDemarcheDefinitionRestrictions, isDemarcheDefinitionMachine } from '../rules-demarches/definitions' -import { - isEtapesOk, - orderMachine, - toMachineEtapes -} from '../rules-demarches/machine-helper' +import { toMachineEtapes } from '../rules-demarches/machine-common' // classe les étapes selon leur ordre inverse: 3, 2, 1. export const titreEtapesSortDescByOrdre = (titreEtapes: ITitreEtape[]) => @@ -41,8 +37,10 @@ export const titreEtapesSortAscByDate = ( ) } if (isDemarcheDefinitionMachine(demarcheDefinition)) { - const etapes = orderMachine(toMachineEtapes(titreEtapes)) - if (!isEtapesOk(etapes)) { + const etapes = demarcheDefinition.machine.orderMachine( + toMachineEtapes(titreEtapes) + ) + if (!demarcheDefinition.machine.isEtapesOk(etapes)) { console.error( `impossible de trouver un ordre pour la démarche '${ titreEtapes[0]?.titreDemarcheId @@ -55,8 +53,8 @@ export const titreEtapesSortAscByDate = ( titreEtapes.find( te => te.date === etape.date && - te.typeId === etape.typeId && - te.statutId === etape.statutId + te.typeId === etape.etapeTypeId && + te.statutId === etape.etapeStatutId ) ) .filter( diff --git a/packages/api/src/business/validations/titre-demarche-etat-validate.test.ts b/packages/api/src/business/validations/titre-demarche-etat-validate.test.ts index a27df6b46..d16bce9db 100644 --- a/packages/api/src/business/validations/titre-demarche-etat-validate.test.ts +++ b/packages/api/src/business/validations/titre-demarche-etat-validate.test.ts @@ -2,6 +2,7 @@ import { IDemarcheType, ITitre, ITitreEtape, ITitreType } from '../../types' import { titreDemarcheUpdatedEtatValidate } from './titre-demarche-etat-validate' import { newDemarcheId } from '../../database/models/_format/id-create' +import { EtapesTypesEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts' describe('teste titreDemarcheUpdatedEtatValidate', () => { test('ajoute une étape à une démarche vide', () => { @@ -274,7 +275,7 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => { ).toContain('il y a déjà une demande en construction') }) - test('ne peut pas ajouter étape de type inconnu', () => { + test('ne peut pas ajouter étape de type inconnu sur une machine', () => { expect( titreDemarcheUpdatedEtatValidate( { id: 'oct' } as IDemarcheType, @@ -286,14 +287,36 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => { } as unknown as ITitreType, demarches: [{ typeId: 'oct' }] } as ITitre, - { typeId: 'aaa', date: '2022-01-01' } as unknown as ITitreEtape, + { + typeId: 'aaa', + date: '2022-01-01', + statutId: 'fai' + } as unknown as ITitreEtape, newDemarcheId(), [ - { id: '1', typeId: 'mfr', statutId: 'aco', date: '2021-01-01' }, - { id: '2', typeId: 'dae', date: '2021-01-02' } + { + id: '1', + typeId: + EtapesTypesEtapesStatuts.demande.EN_CONSTRUCTION.etapeTypeId, + statutId: + EtapesTypesEtapesStatuts.demande.EN_CONSTRUCTION.etapeStatutId, + date: '2021-01-01' + }, + { + id: '2', + typeId: + EtapesTypesEtapesStatuts + .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_ + .REQUIS.etapeTypeId, + statutId: + EtapesTypesEtapesStatuts + .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_ + .REQUIS.etapeStatutId, + date: '2021-01-02' + } ] as ITitreEtape[] ) - ).toContain('l’étape aaa n’existe pas dans l’arbre') + ).toContain('la démarche n’est pas valide') }) }) diff --git a/packages/api/src/business/validations/titre-demarche-etat-validate.ts b/packages/api/src/business/validations/titre-demarche-etat-validate.ts index 377a6c97f..4bc8b8159 100644 --- a/packages/api/src/business/validations/titre-demarche-etat-validate.ts +++ b/packages/api/src/business/validations/titre-demarche-etat-validate.ts @@ -17,11 +17,7 @@ import { titreContenuFormat } from '../../database/models/_format/titre-contenu' import { titreEtapesSortAscByDate } from '../utils/titre-etapes-sort' import { titreEtapeEtatValidate } from './titre-etape-etat-validate' import { objectClone } from '../../tools/index' -import { - isEtapesOk, - orderMachine, - toMachineEtapes -} from '../rules-demarches/machine-helper' +import { toMachineEtapes } from '../rules-demarches/machine-common' const titreDemarcheEtapesBuild = ( titreEtape: ITitreEtape, @@ -56,7 +52,7 @@ const titreDemarcheEtapesBuild = ( } // vérifie que la démarche est valide par rapport aux définitions des types d'étape -const titreDemarcheEtatValidate = ( +export const titreDemarcheEtatValidate = ( demarcheDefinitionRestrictions: IDemarcheDefinitionRestrictions, demarcheType: IDemarcheType, titreDemarche: ITitreDemarche, @@ -111,7 +107,7 @@ const titreDemarcheEtatValidate = ( // vérifie que la modification de la démarche // est valide par rapport aux définitions des types d'étape -const titreDemarcheUpdatedEtatValidate = ( +export const titreDemarcheUpdatedEtatValidate = ( demarcheType: IDemarcheType, titre: ITitre, titreEtape: ITitreEtape, @@ -172,21 +168,17 @@ const titreDemarcheUpdatedEtatValidate = ( // vérifie que toutes les étapes existent dans l’arbre if (isDemarcheDefinitionMachine(demarcheDefinition)) { - // TODO 2022-04-22 - // - [x] utiliser la machine pour calculer le statut de la démarche (lancer le daily après pour vérifier les modifications en prod) - // - [x] Prise en compte des statuts d'étapes pour le calcul des étapes possibles - // - [x] Changer la machine à état pour classer sans suite dès le classement sans suite, et pas après la notification du demandeur - // - [x] Prendre en compte la VFC lors de desistement et CSS - // - [x] vérifier le calcul de l’ordre des étapes déjà existant - // - [x] renommer les trucs dans oct.machine.ts (uniformisation...) - // - // PR mergeable ici ^ - // - ajouter les « responsables » sur les étapes (ex: onf, ptmg) - // - gérer les notifications via les responsables ? - // - récupérer les titres où la personne connectée est en « attente » - - const ok = isEtapesOk(orderMachine(toMachineEtapes(titreDemarcheEtapesNew))) - if (!ok) { + try { + const ok = demarcheDefinition.machine.isEtapesOk( + demarcheDefinition.machine.orderMachine( + toMachineEtapes(titreDemarcheEtapesNew) + ) + ) + if (!ok) { + titreDemarchesErrors.push('la démarche n’est pas valide') + } + } catch (e) { + console.warn('une erreur est survenue', e) titreDemarchesErrors.push('la démarche n’est pas valide') } } else { @@ -213,5 +205,3 @@ const titreDemarcheUpdatedEtatValidate = ( return titreDemarchesErrors } - -export { titreDemarcheUpdatedEtatValidate, titreDemarcheEtatValidate } diff --git a/packages/api/src/tools/demarches/tests-creation.ts b/packages/api/src/tools/demarches/tests-creation.ts index aef0b446b..f50a7e01b 100644 --- a/packages/api/src/tools/demarches/tests-creation.ts +++ b/packages/api/src/tools/demarches/tests-creation.ts @@ -3,77 +3,115 @@ import '../../init' import { titresDemarchesGet } from '../../database/queries/titres-demarches' import { userSuper } from '../../database/user-super' import { titreDemarcheDepotDemandeDateFind } from '../../business/rules/titre-demarche-depot-demande-date-find' -import { Etape } from '../../business/rules-demarches/arm/oct.machine' import { writeFileSync } from 'fs' import { - isEtapesOk, - toMachineEtape -} from '../../business/rules-demarches/machine-helper' + Etape, + toMachineEtapes +} from '../../business/rules-demarches/machine-common' +import { + demarchesDefinitions, + isDemarcheDefinitionMachine +} from '../../business/rules-demarches/definitions' const writeEtapesForTest = async () => { - const demarcheDefinition = { - titreTypeId: 'arm', - demarcheTypeIds: ['oct'], - dateDebut: '2019-10-31' - } - const demarches = await titresDemarchesGet( - { - titresTypesIds: [demarcheDefinition.titreTypeId.slice(0, 2)], - titresDomainesIds: [demarcheDefinition.titreTypeId.slice(2)], - typesIds: demarcheDefinition.demarcheTypeIds - }, - { - fields: { - titre: { id: {}, demarches: { etapes: { id: {} } } }, - etapes: { id: {} }, - type: { etapesTypes: { id: {} } } - } - }, - userSuper + const demarcheDefinitionMachines = demarchesDefinitions.filter( + isDemarcheDefinitionMachine ) - const toutesLesEtapes = demarches - .filter(demarche => demarche.etapes?.length) - .filter(demarche => { - const date = titreDemarcheDepotDemandeDateFind(demarche.etapes!) + for (const demarcheDefinition of demarcheDefinitionMachines) { + const demarches = await titresDemarchesGet( + { + titresTypesIds: [demarcheDefinition.titreTypeId.slice(0, 2)], + titresDomainesIds: [demarcheDefinition.titreTypeId.slice(2)], + typesIds: demarcheDefinition.demarcheTypeIds + }, + { + fields: { + titre: { id: {}, demarches: { etapes: { id: {} } } }, + etapes: { id: {} }, + type: { etapesTypes: { id: {} } } + } + }, + userSuper + ) - return (date ?? '') > demarcheDefinition.dateDebut - }) - .map((demarche, index) => { - const etapes: Etape[] = - demarche?.etapes - ?.sort((a, b) => (a.ordre ?? 0) - (b.ordre ?? 0)) - ?.map(etape => { - if (etape?.contenu?.arm) { - etape.contenu = { arm: etape.contenu?.arm } - } else { - delete etape.contenu - } + const toutesLesEtapes = demarches + .filter(demarche => demarche.etapes?.length) + .filter(demarche => { + const date = titreDemarcheDepotDemandeDateFind(demarche.etapes!) - return toMachineEtape(etape) - }) ?? [] - try { - if (!isEtapesOk(etapes)) { - console.warn( - `https://camino.beta.gouv.fr/titres/${demarche.titreId} => démarche "${demarche.typeId}"` - ) + return (date ?? '') > demarcheDefinition.dateDebut + }) + .filter(({ titreId }) => { + if ( + // décision du propriétaire du sol avant le dépôt de la demande + [ + 'EI4lAxLbhdFOoHb6LWL0y9pO', + 'e8ZYqaA9HB3bXuOeRlXz5g76', + // visibilité publique + 'z0DZo6TKEvP28D6oQyAuTvwA', + 'RGOrc6hTOErMD8SBkUChbTyg', + '8KsDiNBHR9lAHv229GIqA7fw', + '8pY4eoUKtuR3is8l3Vy0vmJC' + ].includes(titreId) + ) { + console.info('On ignore le titre ' + titreId) + + return false } - } catch (e) { - console.error( - `https://camino.beta.gouv.fr/titres/${demarche.titreId} => démarche "${demarche.typeId}"` - ) - } - const etapesAnonymes = etapes.map((etape, index) => { - return { ...etape, date: index.toString() } + return true }) + .map((demarche, index) => { + const etapes: Etape[] = toMachineEtapes( + demarche?.etapes + ?.sort((a, b) => (a.ordre ?? 0) - (b.ordre ?? 0)) + ?.map(etape => { + if (etape?.contenu?.arm) { + etape.contenu = { arm: etape.contenu?.arm } + } else { + delete etape.contenu + } - return { id: index, etapes: etapesAnonymes } - }) - writeFileSync( - 'src/business/rules-demarches/arm/oct.cas.json', - JSON.stringify(toutesLesEtapes) - ) + return etape + }) ?? [] + ) + try { + if (!demarcheDefinition.machine.isEtapesOk(etapes)) { + etapes.splice( + 0, + etapes.length, + ...demarcheDefinition.machine.orderMachine(etapes) + ) + if (!demarcheDefinition.machine.isEtapesOk(etapes)) { + console.warn( + `https://camino.beta.gouv.fr/titres/${demarche.titreId} => démarche N*${index} "${demarcheDefinition.titreTypeId}/${demarche.typeId}"` + ) + } + } + } catch (e) { + console.error('something went wrong', e) + console.error( + `https://camino.beta.gouv.fr/titres/${demarche.titreId} => démarche N*${index} "${demarcheDefinition.titreTypeId}/${demarche.typeId}"` + ) + } + + const etapesAnonymes = etapes.map((etape, index) => { + return { ...etape, date: index.toString() } + }) + + return { + id: index, + demarcheStatutId: demarche.statutId, + demarchePublique: demarche.publicLecture ?? false, + etapes: etapesAnonymes + } + }) + writeFileSync( + `src/business/rules-demarches/${demarcheDefinition.titreTypeId}/${demarcheDefinition.demarcheTypeIds[0]}.cas.json`, + JSON.stringify(toutesLesEtapes) + ) + } } writeEtapesForTest() diff --git a/packages/common/src/titres.ts b/packages/common/src/titres.ts index fff330714..2fca106bb 100644 --- a/packages/common/src/titres.ts +++ b/packages/common/src/titres.ts @@ -20,6 +20,7 @@ export interface CommonTitreDREAL extends CommonTitre { typeId: TitreTypeTypeId activitesAbsentes: number activitesEnConstruction: number + enAttenteDeDREAL: boolean } export interface CommonTitreONF extends CommonTitre { diff --git a/packages/ui/src/components/dashboard/__snapshots__/pure-dreal-dashboard.stories.storyshot b/packages/ui/src/components/dashboard/__snapshots__/pure-dreal-dashboard.stories.storyshot index 9089901f0..662b88dd4 100644 --- a/packages/ui/src/components/dashboard/__snapshots__/pure-dreal-dashboard.stories.storyshot +++ b/packages/ui/src/components/dashboard/__snapshots__/pure-dreal-dashboard.stories.storyshot @@ -44,6 +44,483 @@ exports[`Automated Storybook Snapshots Components/PureDrealDashboard Ok 1`] = ` </div> <!--v-if--> <div> + + <div + class="line-neutral width-full mb-l" + /> + <h3> + Titres en attente de la DREAL + </h3> + <div + class="mb-xxl" + > + <div + class="overflow-scroll-x mb" + > + <div + class="table" + > + <div + class="tr" + > + + <div + class="th nowrap min-width-8" + > + <button + class="btn-menu full-x p-0" + > + Nom + <!--v-if--> + </button> + </div> + <div + class="th nowrap" + > + <button + class="btn-menu full-x p-0" + > + – + <!--v-if--> + </button> + </div> + <div + class="th nowrap min-width-8" + > + <button + class="btn-menu full-x p-0" + > + Type + <!--v-if--> + </button> + </div> + <div + class="th nowrap nowrap min-width-5" + > + <button + class="btn-menu full-x p-0" + > + Statut + <svg + aria-labelledby="chevron-bas" + class="right" + fill="#666" + height="24px" + role="application" + style="display: block;" + tabindex="-1" + viewBox="0 0 24 24" + width="24px" + xmlns="http://www.w3.org/2000/svg" + > + <svg + aria-hidden="true" + style="position: absolute; width: 0px; height: 0px; overflow: hidden;" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + > + <symbol + id="icon-at" + viewBox="0 0 24 24" + > + <title> + at + </title> + <path + d="M20 12a8 8 0 1 0-3.562 6.657l1.11 1.664A9.953 9.953 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10v1.5a3.5 3.5 0 0 1-6.396 1.966A5 5 0 1 1 15 8H17v5.5a1.5 1.5 0 0 0 3 0V12zm-8-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6z" + /> + </symbol> + <symbol + id="icon-checkbox-blank" + viewBox="0 0 24 24" + > + <title> + checkbox-blank + </title> + <path + d="M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5z" + /> + </symbol> + <symbol + id="icon-checkbox" + viewBox="0 0 24 24" + > + <title> + checkbox + </title> + <path + d="M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6.003 11L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z" + /> + </symbol> + <symbol + id="icon-chevron-bas" + viewBox="0 0 24 24" + > + <title> + chevron-bas + </title> + <path + d="M12 13.172l4.95-4.95 1.414 1.414L12 16 5.636 9.636 7.05 8.222z" + /> + </symbol> + <symbol + id="icon-chevron-haut" + viewBox="0 0 24 24" + > + <title> + chevron-haut + </title> + <path + d="M12 10.828l-4.95 4.95-1.414-1.414L12 8l6.364 6.364-1.414 1.414z" + /> + </symbol> + <symbol + id="icon-close" + viewBox="0 0 24 24" + > + <title> + close + </title> + <path + d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z" + /> + </symbol> + <symbol + id="icon-delete" + viewBox="0 0 24 24" + > + <title> + delete + </title> + <path + d="M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3zm1 2H6v12h12V8zm-9 3h2v6H9v-6zm4 0h2v6h-2v-6zM9 4v2h6V4H9z" + /> + </symbol> + <symbol + id="icon-download" + viewBox="0 0 24 24" + > + <title> + download + </title> + <path + d="M3 19h18v2H3v-2zm10-5.828L19.071 7.1l1.414 1.414L12 17 3.515 8.515 4.929 7.1 11 13.17V2h2v11.172z" + /> + </symbol> + <symbol + id="icon-error-warning" + viewBox="0 0 24 24" + > + <title> + error-warning + </title> + <path + d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-7v2h2v-2h-2zm0-8v6h2V7h-2z" + fill="rgba(231,76,60,1)" + /> + </symbol> + <symbol + id="icon-external-link" + viewBox="0 0 24 24" + > + <title> + external-link + </title> + <path + d="M10 6v2H5v11h11v-5h2v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h6zm11-3v8h-2V6.413l-7.793 7.794-1.414-1.414L17.585 5H13V3h8z" + /> + </symbol> + <symbol + id="icon-file" + viewBox="0 0 24 24" + > + <title> + file + </title> + <path + d="M9 2.003V2h10.998C20.55 2 21 2.455 21 2.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V8l6-5.997zM5.83 8H9V4.83L5.83 8zM11 4v5a1 1 0 0 1-1 1H5v10h14V4h-8z" + /> + </symbol> + <symbol + id="icon-file-add" + viewBox="0 0 24 24" + > + <title> + file-add + </title> + <path + d="M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM11 11V8h2v3h3v2h-3v3h-2v-3H8v-2h3z" + /> + </symbol> + <symbol + id="icon-globe" + viewBox="0 0 24 24" + > + <title> + globe + </title> + <path + d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-2.29-2.333A17.9 17.9 0 0 1 8.027 13H4.062a8.008 8.008 0 0 0 5.648 6.667zM10.03 13c.151 2.439.848 4.73 1.97 6.752A15.905 15.905 0 0 0 13.97 13h-3.94zm9.908 0h-3.965a17.9 17.9 0 0 1-1.683 6.667A8.008 8.008 0 0 0 19.938 13zM4.062 11h3.965A17.9 17.9 0 0 1 9.71 4.333 8.008 8.008 0 0 0 4.062 11zm5.969 0h3.938A15.905 15.905 0 0 0 12 4.248 15.905 15.905 0 0 0 10.03 11zm4.259-6.667A17.9 17.9 0 0 1 15.973 11h3.965a8.008 8.008 0 0 0-5.648-6.667z" + /> + </symbol> + <symbol + id="icon-help" + viewBox="0 0 24 24" + > + <title> + help + </title> + <path + d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM11 7h2v2h-2V7zm0 4h2v6h-2v-6z" + /> + </symbol> + <symbol + id="icon-key" + viewBox="0 0 24 24" + > + <title> + key + </title> + <path + d="M10.758 11.828l7.849-7.849 1.414 1.414-1.414 1.415 2.474 2.474-1.414 1.415-2.475-2.475-1.414 1.414 2.121 2.121-1.414 1.415-2.121-2.122-2.192 2.192a5.002 5.002 0 0 1-7.708 6.294 5 5 0 0 1 6.294-7.708zm-.637 6.293A3 3 0 1 0 5.88 13.88a3 3 0 0 0 4.242 4.242z" + /> + </symbol> + <symbol + id="icon-link" + viewBox="0 0 24 24" + > + <title> + link + </title> + <path + d="M18.364 15.536L16.95 14.12l1.414-1.414a5 5 0 1 0-7.071-7.071L9.879 7.05 8.464 5.636 9.88 4.222a7 7 0 0 1 9.9 9.9l-1.415 1.414zm-2.828 2.828l-1.415 1.414a7 7 0 0 1-9.9-9.9l1.415-1.414L7.05 9.88l-1.414 1.414a5 5 0 1 0 7.071 7.071l1.414-1.414 1.415 1.414zm-.708-10.607l1.415 1.415-7.071 7.07-1.415-1.414 7.071-7.07z" + /> + </symbol> + <symbol + id="icon-list" + viewBox="0 0 24 24" + > + <title> + list + </title> + <path + d="M8 4h13v2H8V4zM4.5 6.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 6.9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zM8 11h13v2H8v-2zm0 7h13v2H8v-2z" + /> + </symbol> + <symbol + id="icon-marker-cluster" + viewBox="0 0 24 24" + > + <title> + marker-cluster + </title> + <path + d="M12 20.9l4.95-4.95a7 7 0 1 0-9.9 0L12 20.9zm0 2.828l-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zM12 13a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8z" + /> + </symbol> + <symbol + id="icon-marker-none" + viewBox="0 0 24 24" + > + <title> + marker-none + </title> + <g + id="24-markers-grouped" + transform="translate(0.908117, 0.000078)" + > + <path + d="M9.09188309,18.8999221 L14.0418831,13.9499221 C16.7753479,11.2161783 16.7751972,6.78415329 14.0415464,4.05059549 C11.3078956,1.31703769 6.87587059,1.31703769 4.1422198,4.05059549 C1.40856902,6.78415329 1.40841827,11.2161783 4.14188309,13.9499221 L9.09188309,18.8999221 Z M9.09188309,21.7279221 L2.72788309,15.3639221 C-0.786803866,11.8491921 -0.786780603,6.15072729 2.72793505,2.63602598 C6.24265071,-0.878675327 11.9411155,-0.878675327 15.4558311,2.63602598 C18.9705468,6.15072729 18.97057,11.8491921 15.4558831,15.3639221 L9.09188309,21.7279221 L9.09188309,21.7279221 Z M9.09188309,10.9999221 C10.1964526,10.9999221 11.0918831,10.1044916 11.0918831,8.99992206 C11.0918831,7.89535256 10.1964526,6.99992206 9.09188309,6.99992206 C7.98731359,6.99992206 7.09188309,7.89535256 7.09188309,8.99992206 C7.09188309,10.1044916 7.98731359,10.9999221 9.09188309,10.9999221 Z M9.09188309,12.9999221 C6.88274409,12.9999221 5.09188309,11.2090611 5.09188309,8.99992206 C5.09188309,6.79078306 6.88274409,4.99992206 9.09188309,4.99992206 C11.3010221,4.99992206 13.0918831,6.79078306 13.0918831,8.99992206 C13.0918831,11.2090611 11.3010221,12.9999221 9.09188309,12.9999221 Z" + /> + <rect + height="24" + transform="translate(9.192388, 9.514641) rotate(-45.000000) translate(-9.192388, -9.514641) " + width="2" + x="8.19238816" + y="-2.48535931" + /> + </g> + </symbol> + <symbol + id="icon-marker-ungrouped" + viewBox="0 0 24 24" + > + <title> + marker-ungrouped + </title> + <path + d="M9.975 8.975a3.5 3.5 0 1 0-4.95 0L7.5 11.45l2.475-2.475zM7.5 14.278L3.61 10.39a5.5 5.5 0 1 1 7.78 0L7.5 14.28zM7.5 8a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm9 12.45l2.475-2.475a3.5 3.5 0 1 0-4.95 0L16.5 20.45zm3.89-1.06l-3.89 3.888-3.89-3.889a5.5 5.5 0 1 1 7.78 0zM16.5 17a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z" + /> + </symbol> + <symbol + id="icon-menu" + viewBox="0 0 24 24" + > + <title> + menu + </title> + <path + d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z" + /> + </symbol> + <symbol + id="icon-minus" + viewBox="0 0 24 24" + > + <title> + minus + </title> + <path + d="M5 11h14v2H5z" + /> + </symbol> + <symbol + id="icon-move-down" + viewBox="0 0 24 24" + > + <title> + move-down + </title> + <path + d="M13 16.172l5.364-5.364 1.414 1.414L12 20l-7.778-7.778 1.414-1.414L11 16.172V4h2v12.172z" + /> + </symbol> + <symbol + id="icon-move-up" + viewBox="0 0 24 24" + > + <title> + move-up + </title> + <path + d="M13 7.828V20h-2V7.828l-5.364 5.364-1.414-1.414L12 4l7.778 7.778-1.414 1.414L13 7.828z" + /> + </symbol> + <symbol + id="icon-pattern" + viewBox="0 0 24 24" + > + <title> + pattern + </title> + <path + d="M14.567 21h-4.242L3 13.675V9.433L14.567 21zM21 10.393v4.243L9.364 3h4.243L21 10.393zM3 17.849L6.151 21H3v-3.151zM5.053 3L21 18.947V21h-2.19L3 5.19V3h2.053zM21 6.151L17.849 3H21v3.151z" + /> + </symbol> + <symbol + id="icon-pencil" + viewBox="0 0 24 24" + > + <title> + pencil + </title> + <path + d="M15.728 9.686l-1.414-1.414L5 17.586V19h1.414l9.314-9.314zm1.414-1.414l1.414-1.414-1.414-1.414-1.414 1.414 1.414 1.414zM7.242 21H3v-4.243L16.435 3.322a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414L7.243 21z" + /> + </symbol> + <symbol + id="icon-plus" + viewBox="0 0 24 24" + > + <title> + plus + </title> + <path + d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z" + /> + </symbol> + <symbol + id="icon-refresh" + viewBox="0 0 24 24" + > + <title> + refresh + </title> + <path + d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z" + /> + </symbol> + <symbol + id="icon-x" + viewBox="0 0 24 24" + > + <title> + x + </title> + <path + d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415L12 10.586z" + /> + </symbol> + </svg> + <use + href="#icon-chevron-bas" + /> + </svg> + </button> + </div> + + </div> + + <router-link + class="tr tr-link text-decoration-none" + to="[object Object]" + > + + <div + class="td min-width-8" + > + <span + class="bold" + > + Second Nom de titre + </span> + </div> + <div + class="td" + > + <span + class="cap-first small bold mono" + > + <span + class="bg-domaine-m color-bg pill py-xs px-s" + > + + m + + </span> + </span> + </div> + <div + class="td min-width-8" + > + <span + class="small bold cap-first" + > + permis exclusif de recherches + </span> + </div> + <div + class="td nowrap min-width-5" + > + <span + class="cap-first small bold" + > + <span + class="bg-warning color-bg pill py-xs px-s" + > + + demande initiale + + </span> + </span> + </div> + + </router-link> + + </div> + </div> + </div> + <div class="line-neutral width-full mb-l" /> @@ -579,120 +1056,6 @@ exports[`Automated Storybook Snapshots Components/PureDrealDashboard Ok 1`] = ` </ul> </div> - </router-link> - <router-link - class="tr tr-link text-decoration-none" - to="[object Object]" - > - - <div - class="td min-width-8" - > - <span - class="bold" - > - Second Nom de titre - </span> - </div> - <div - class="td" - > - <span - class="cap-first small bold mono" - > - <span - class="bg-domaine-m color-bg pill py-xs px-s" - > - - m - - </span> - </span> - </div> - <div - class="td min-width-8" - > - <span - class="small bold cap-first" - > - permis exclusif de recherches - </span> - </div> - <div - class="td nowrap min-width-5" - > - <span - class="cap-first small bold" - > - <span - class="bg-warning color-bg pill py-xs px-s" - > - - demande initiale - - </span> - </span> - </div> - <div - class="td min-width-5" - > - <div - class="mb--s" - > - <!--v-if--> - <span - class="mr-xs inline-block" - > - <span - class="cap-first small bold" - > - <span - class="bg-warning color-bg pill py-xs px-s" - > - - 2 - - </span> - </span> - </span> - </div> - </div> - <div - class="td min-width-8" - > - <ul - class="list-prefix mb--xs" - > - - <li - class="h6" - > - PTMG : 2010-001 - </li> - <li - class="h6" - > - PTMG : 2010-000 - </li> - - </ul> - </div> - <div - class="td min-width-10" - > - <ul - class="list-prefix mb--xs" - > - - <li - class="h6" - > - Titulaire3 - </li> - - </ul> - </div> - </router-link> <router-link class="tr tr-link text-decoration-none" diff --git a/packages/ui/src/components/dashboard/pure-dreal-dashboard.stories.ts b/packages/ui/src/components/dashboard/pure-dreal-dashboard.stories.ts index 08aa71e38..a3303af21 100644 --- a/packages/ui/src/components/dashboard/pure-dreal-dashboard.stories.ts +++ b/packages/ui/src/components/dashboard/pure-dreal-dashboard.stories.ts @@ -31,7 +31,8 @@ const titres: CommonTitreDREAL[] = [ } ], activitesAbsentes: 0, - activitesEnConstruction: 0 + activitesEnConstruction: 0, + enAttenteDeDREAL: false }, { id: 'secondId', @@ -53,7 +54,8 @@ const titres: CommonTitreDREAL[] = [ } ], activitesEnConstruction: 2, - activitesAbsentes: 0 + activitesAbsentes: 0, + enAttenteDeDREAL: true }, { id: 'thirdId', @@ -69,7 +71,8 @@ const titres: CommonTitreDREAL[] = [ } ], activitesAbsentes: 0, - activitesEnConstruction: 3 + activitesEnConstruction: 3, + enAttenteDeDREAL: false }, { id: 'fourthId', @@ -91,7 +94,8 @@ const titres: CommonTitreDREAL[] = [ } ], activitesEnConstruction: 8, - activitesAbsentes: 2 + activitesAbsentes: 2, + enAttenteDeDREAL: false } ] diff --git a/packages/ui/src/components/dashboard/pure-dreal-dashboard.vue b/packages/ui/src/components/dashboard/pure-dreal-dashboard.vue index 9781bbc30..34c972942 100644 --- a/packages/ui/src/components/dashboard/pure-dreal-dashboard.vue +++ b/packages/ui/src/components/dashboard/pure-dreal-dashboard.vue @@ -9,6 +9,16 @@ <div class="loader" /> </div> <div v-if="status === 'LOADED'"> + <template v-if="drealTitresBloques.length"> + <div class="line-neutral width-full mb-l"></div> + <h3>Titres en attente de la DREAL</h3> + <TableAuto + class="mb-xxl" + :columns="columns.slice(0, 4)" + :rows="drealTitresBloques" + :initialSort="{ column: initialColumnId, order: 'asc' }" + /> + </template> <div class="line-neutral width-full mb-l"></div> <h3>Titres en cours d’instruction</h3> <TableAuto @@ -57,6 +67,7 @@ import { CommonTitreDREAL } from 'camino-common/src/titres' const status = ref<'LOADING' | 'LOADED' | 'ERROR'>('LOADING') const drealTitres = ref<TableAutoRow[]>([]) +const drealTitresBloques = ref<TableAutoRow[]>([]) const props = defineProps<{ getDrealTitres: () => Promise<CommonTitreDREAL[]> }>() @@ -100,7 +111,12 @@ const titresLignesBuild = ( onMounted(async () => { try { const titres = await props.getDrealTitres() - drealTitres.value.push(...titresLignesBuild(titres)) + drealTitres.value.push( + ...titresLignesBuild(titres.filter(titre => !titre.enAttenteDeDREAL)) + ) + drealTitresBloques.value.push( + ...titresLignesBuild(titres.filter(titre => titre.enAttenteDeDREAL)) + ) status.value = 'LOADED' } catch (e) { console.log('error', e) -- GitLab