# Mise en recette Workflow dérogation MAXS ###### tags: `MAXS` - [x] PR de master vers recette - commit avant PR : 65aa4cee1b185f0c430094adf8e3656cbd159aaf - [x] tester la version - [x] PR de recette vers master ### Création / modification tables - [x] MAXS_METIER_VALIDATION ``` sql ALTER TABLE MAXSADMMIGR.MAXS_METIER_VALIDATEUR MODIFY(POIDS_VALIDATION VARCHAR2(10 BYTE)); ``` - [x] MAXS_SIMULATION ``` sql ALTER TABLE MAXSADMMIGR.MAXS_SIMULATION MODIFY(MONTANT VARCHAR2(15 BYTE)); ALTER TABLE MAXSADMMIGR.MAXS_SIMULATION MODIFY(DUREE VARCHAR2(16 BYTE)); ALTER TABLE MAXSADMMIGR.MAXS_SIMULATION MODIFY(FRAIS_DOSSIER VARCHAR2(8 BYTE)); ``` - [x] MAXS_FOYER ``` sql ALTER TABLE MAXSADMMIGR.MAXS_FOYER ADD (NB_PERSONNES_TMP NUMBER); UPDATE MAXSADMMIGR.MAXS_FOYER SET NB_PERSONNES_TMP = to_number(replace(NB_PERSONNES, '.' , ',')); ALTER TABLE MAXSADMMIGR.MAXS_FOYER DROP COLUMN NB_PERSONNES;0 ALTER TABLE MAXSADMMIGR.MAXS_FOYER RENAME COLUMN NB_PERSONNES_TMP TO NB_PERSONNES; ``` - [x] SEQ_VALIDATION_SIMULATION ``` sql CREATE SEQUENCE MAXSADMMIGR.SEQ_VALIDATION_SIMULATION START WITH 1 MAXVALUE 9999999999999999999999999999 MINVALUE 0 NOCYCLE NOCACHE NOORDER NOKEEP GLOBAL; ``` - [x] MAXS_METIER_VALIDATEUR ``` sql ALTER TABLE MAXSADMMIGR.MAXS_METIER_VALIDATEUR ADD (REDUCTION_DEROGATION VARCHAR2(10 BYTE) NOT NULL); ``` - [x] MAXS_VALIDATION_SIMULATION ``` sql ALTER TABLE MAXSADMMIGR.MAXS_VALIDATION_SIMULATION ADD (COMMENTAIRE VARCHAR2(500 BYTE)); ``` - [x] MAXS_LIENS_VALIDATEURS ``` sql CREATE TABLE MAXS_LIENS_VALIDATEURS ( ID_VALIDATEUR NUMBER NOT NULL, ID_SUPERIEUR NUMBER NOT NULL, ORDRE NUMBER ) TABLESPACE DAT_PROD PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCOMPRESS NOCACHE MONITORING; CREATE UNIQUE INDEX MAXS_LIENS_VALIDATEURS_PK ON MAXS_LIENS_VALIDATEURS (ID_VALIDATEUR, ID_SUPERIEUR) NOLOGGING TABLESPACE DAT_PROD PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); ALTER TABLE MAXS_LIENS_VALIDATEURS ADD ( CONSTRAINT MAXS_LIENS_VALIDATEURS_PK PRIMARY KEY (ID_VALIDATEUR, ID_SUPERIEUR) USING INDEX MAXS_LIENS_VALIDATEURS_PK ENABLE VALIDATE); ALTER TABLE MAXS_LIENS_VALIDATEURS ADD ( CONSTRAINT MAXS_LIENS_VALIDATEURS_R01 FOREIGN KEY (ID_VALIDATEUR) REFERENCES MAXS_METIER_VALIDATEUR (ID_METIER_VALIDATEUR) ON DELETE CASCADE ENABLE VALIDATE, CONSTRAINT MAXS_LIENS_VALIDATEURS_R02 FOREIGN KEY (ID_SUPERIEUR) REFERENCES MAXS_METIER_VALIDATEUR (ID_METIER_VALIDATEUR) ENABLE VALIDATE); ``` - [x] CONTRAINTES ``` sql DELETE FROM MAXS_FOYER WHERE ID_SIMULATION IN ( SELECT DISTINCT ID_SIMULATION FROM MAXS_SIMULATION WHERE ID_SIMULATION NOT IN ( SELECT ID_SIMULATION FROM MAXS_FOYER) UNION ALL SELECT DISTINCT ID_SIMULATION FROM MAXS_FOYER WHERE ID_SIMULATION NOT IN ( SELECT ID_SIMULATION FROM MAXS_SIMULATION)); ALTER TABLE MAXS_FOYER ADD CONSTRAINT MAXS_FOYER_R01 FOREIGN KEY (ID_SIMULATION) REFERENCES MAXS_SIMULATION (ID_SIMULATION) ON DELETE CASCADE; DELETE FROM MAXS_SIMULATION_CRITERE WHERE ID_SIMULATION IN( SELECT DISTINCT ID_SIMULATION FROM MAXS_SIMULATION_CRITERE WHERE ID_SIMULATION NOT IN ( SELECT ID_SIMULATION FROM MAXS_SIMULATION) UNION ALL SELECT DISTINCT ID_SIMULATION FROM MAXS_SIMULATION WHERE ID_SIMULATION NOT IN ( SELECT ID_SIMULATION FROM MAXS_SIMULATION_CRITERE)); ALTER TABLE MAXSADMMIGR.MAXS_SIMULATION_CRITERE ADD CONSTRAINT MAXS_SIMULATION_CRITERE_R02 FOREIGN KEY (ID_SIMULATION) REFERENCES MAXSADMMIGR.MAXS_SIMULATION (ID_SIMULATION) ON DELETE CASCADE; DELETE FROM MAXS_SIMULATION_PRODUIT WHERE ID_SIMULATION IN( SELECT DISTINCT ID_SIMULATION FROM MAXS_SIMULATION_PRODUIT WHERE ID_SIMULATION NOT IN ( SELECT ID_SIMULATION FROM MAXS_SIMULATION) UNION ALL SELECT DISTINCT ID_SIMULATION FROM MAXS_SIMULATION WHERE ID_SIMULATION NOT IN ( SELECT ID_SIMULATION FROM MAXS_SIMULATION_PRODUIT)); ALTER TABLE MAXSADMMIGR.MAXS_SIMULATION_PRODUIT ADD CONSTRAINT MAXS_SIMULATION_PRODUITS_R01 FOREIGN KEY (ID_SIMULATION) REFERENCES MAXSADMMIGR.MAXS_SIMULATION (ID_SIMULATION) ON DELETE CASCADE; ``` - [x] Peupler les tables depuis MAXSADMREC - [x] MAXS_ETAT_SIMULATION - [x] MAXS_METIER_VALIDATEUR - [x] MAXS_LIENS_VALIDATEUR - [x] GRANT de MAXS vers CORR_METIER - [x] [maxs_stceb] dans db-oracle.ini - [x] J'ai commenté des lignes dans api.php pour que ça marche : MAXS::DEMANDE_INTERDITE => voir le commun ? 111..113 ``` php if (!$estUtilisateur) { $action = Maxs::DEMANDE_INTERDIT } ``` - [x] Modification de la règle de l'accès à la demande de dérogation en prod : simulation-validation-controleur.js pour ne pas lancer une demande lorsque le taux est au dessus du personnalisé mais en dessous du taux sans dérog et en s'assurant qu'il y a un taux demandé (des dérog sont parties sans taux demandés, les GC interrogés ne savent pas comment ils ont fait) ``` js if (vm.input.tauxDemande < vm.input.tauxSansDerog && vm.input.tauxDemande < vm.input.tauxPersonnalise && vm.input.tauxDemande!=null) ``` - [x] Le lien dans les mails pointaient sur migr, correction faite en prod - [x] problème pour stocker les nombes de personnes au foyer avec le séparateur , => corrigé en remplaçant la virgule par un point quand on insert ## Requêtes de suivi de prod - Jointure entre simulation et validation simulation pour pouvoir voir quels taux sont demandés en dérog => vérification de cohérence ``` sql SELECT vs.*, s.ID_AD_INSTRUCTEUR, s.DUREE, s.TAUX_STANDARD, s.TAUX_PERSONNALISE, s.TAUX_DEMANDE FROM MAXS_VALIDATION_SIMULATION vs LEFT JOIN MAXS_SIMULATION s ON s.ID_SIMULATION=vs.ID_SIMUlATION ORDER BY DATE_ENVOI_DEMANDE DESC; ``` - Compte des dérogation par ID_AD_VALIDATEUR avec Prénom et Nom ``` sql SELECT ID_AD_VALIDATEUR, p.PRENOM, p.NOMUSU, COUNT(*) as "COMPTE", COUNT(DISTINCT DATE_DECISION) as "TRAITEE" FROM MAXS_VALIDATION_SIMULATION vs LEFT JOIN STCEB.PERSON@STCEB p ON p.ID_ADMSG = vs.ID_AD_VALIDATEUR GROUP BY ID_AD_VALIDATEUR, p.PRENOM, p.NOMUSU ORDER BY "COMPTE" DESC; ```