diff --git a/CHANGELOG b/CHANGELOG index 9e7a8d3cc0a430cc900f4c7abf60d37eece0e643..8bda97c248abe15fbf7fcfc114ba83b07164555e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,7 +3,7 @@ title: "Changements intervenus sur OSE" author: Laurent Lécluse - DSI - Unicaen ... -#OSE 6.3.2 (en développement) +#OSE 6.3.2 ## Corrections de bugs diff --git "a/data/D\303\251ploiement/Changements.pdf" "b/data/D\303\251ploiement/Changements.pdf" index c91f54dad840b21b269b6e0becc784f7745ae6ff..f20829a5e381ac68506b6cf327159bd7e1c548f9 100644 Binary files "a/data/D\303\251ploiement/Changements.pdf" and "b/data/D\303\251ploiement/Changements.pdf" differ diff --git "a/data/D\303\251ploiement/Proc\303\251dure d'installation.pdf" "b/data/D\303\251ploiement/Proc\303\251dure d'installation.pdf" index b8ccc03c7638973361fc68207cf688a2db244861..d642de73486603874df6376bad2965b8348b18a2 100644 Binary files "a/data/D\303\251ploiement/Proc\303\251dure d'installation.pdf" and "b/data/D\303\251ploiement/Proc\303\251dure d'installation.pdf" differ diff --git "a/data/D\303\251ploiement/Proc\303\251dure de mise \303\240 jour.pdf" "b/data/D\303\251ploiement/Proc\303\251dure de mise \303\240 jour.pdf" index a92d24e4d9b906c7a9aec3a208bb0a775e1af8a2..5cfc75932bfa060b33bdef5aa3c953b611aeb74a 100644 Binary files "a/data/D\303\251ploiement/Proc\303\251dure de mise \303\240 jour.pdf" and "b/data/D\303\251ploiement/Proc\303\251dure de mise \303\240 jour.pdf" differ diff --git "a/data/D\303\251ploiement/ose-ddl.sql" "b/data/D\303\251ploiement/ose-ddl.sql" index 96a8c501f70f5b198bdcd336159c93ea2f5e92fc..38f542a032cc20ee501c1b27a37ea580c3811840 100755 --- "a/data/D\303\251ploiement/ose-ddl.sql" +++ "b/data/D\303\251ploiement/ose-ddl.sql" @@ -7,7 +7,7 @@ SET DEFINE OFF; -------------------------------------------------- --- Séquences +-- sequences -------------------------------------------------- -- ADRESSE_INTERVENANT_ID_SEQ @@ -428,12499 +428,13386 @@ CREATE SEQUENCE WF_ETAPE_DEP_ID_SEQ INCREMENT BY 1 MAXVALUE 99999999999999999999 CREATE SEQUENCE WF_ETAPE_ID_SEQ INCREMENT BY 1 MAXVALUE 9999999999999999999999999999 MINVALUE 1 NOCACHE; -------------------------------------------------- --- Tables +-- tables -------------------------------------------------- -- ADRESSE_INTERVENANT -CREATE TABLE "ADRESSE_INTERVENANT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "TEL_DOMICILE" VARCHAR2(25 CHAR), - "MENTION_COMPLEMENTAIRE" VARCHAR2(50 CHAR), - "BATIMENT" VARCHAR2(60 CHAR), - "NO_VOIE" VARCHAR2(20 CHAR), - "NOM_VOIE" VARCHAR2(120 CHAR), - "LOCALITE" VARCHAR2(120 CHAR), - "CODE_POSTAL" VARCHAR2(15 CHAR), - "VILLE" VARCHAR2(120 CHAR), - "PAYS_CODE_INSEE" VARCHAR2(3 CHAR) NOT NULL ENABLE, - "PAYS_LIBELLE" VARCHAR2(50 CHAR) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "ADRESSE_INTERVENANT__UN" UNIQUE ("INTERVENANT_ID", "HISTO_DESTRUCTION") ENABLE, - CONSTRAINT "ADRESSE_INTERVENANT_SOURCE_UN" UNIQUE ("SOURCE_CODE") ENABLE, +CREATE TABLE "ADRESSE_INTERVENANT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "TEL_DOMICILE" VARCHAR2(25 CHAR), + "MENTION_COMPLEMENTAIRE" VARCHAR2(50 CHAR), + "BATIMENT" VARCHAR2(60 CHAR), + "NO_VOIE" VARCHAR2(20 CHAR), + "NOM_VOIE" VARCHAR2(120 CHAR), + "LOCALITE" VARCHAR2(120 CHAR), + "CODE_POSTAL" VARCHAR2(15 CHAR), + "VILLE" VARCHAR2(120 CHAR), + "PAYS_CODE_INSEE" VARCHAR2(3 CHAR) NOT NULL ENABLE, + "PAYS_LIBELLE" VARCHAR2(50 CHAR) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "ADRESSE_INTERVENANT__UN" UNIQUE ("INTERVENANT_ID", "HISTO_DESTRUCTION") ENABLE, + CONSTRAINT "ADRESSE_INTERVENANT_SOURCE_UN" UNIQUE ("SOURCE_CODE") ENABLE, CONSTRAINT "ADRESSE_INTERVENANT_PK" PRIMARY KEY ("ID") ENABLE ) ; -- ADRESSE_STRUCTURE -CREATE TABLE "ADRESSE_STRUCTURE" - ( "ID" NUMBER(*,0) CONSTRAINT "NNC_ADRESSE_INTERVENANTV1_ID" NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "PRINCIPALE" NUMBER(1,0), - "TELEPHONE" VARCHAR2(20 CHAR), - "NO_VOIE" VARCHAR2(10 CHAR), - "NOM_VOIE" VARCHAR2(60 CHAR), - "LOCALITE" VARCHAR2(26 CHAR), - "CODE_POSTAL" VARCHAR2(15 CHAR), - "VILLE" VARCHAR2(26 CHAR), - "PAYS_CODE_INSEE" VARCHAR2(3 CHAR), - "PAYS_LIBELLE" VARCHAR2(30 CHAR), - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "ADRESSE_STRUCTURE_SOURCE_UN" UNIQUE ("SOURCE_CODE") ENABLE, +CREATE TABLE "ADRESSE_STRUCTURE" + ( "ID" NUMBER(*,0) CONSTRAINT "NNC_ADRESSE_INTERVENANTV1_ID" NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "PRINCIPALE" NUMBER(1,0), + "TELEPHONE" VARCHAR2(20 CHAR), + "NO_VOIE" VARCHAR2(10 CHAR), + "NOM_VOIE" VARCHAR2(60 CHAR), + "LOCALITE" VARCHAR2(26 CHAR), + "CODE_POSTAL" VARCHAR2(15 CHAR), + "VILLE" VARCHAR2(26 CHAR), + "PAYS_CODE_INSEE" VARCHAR2(3 CHAR), + "PAYS_LIBELLE" VARCHAR2(30 CHAR), + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "ADRESSE_STRUCTURE_SOURCE_UN" UNIQUE ("SOURCE_CODE") ENABLE, CONSTRAINT "ADRESSE_STRUCTURE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- AFFECTATION -CREATE TABLE "AFFECTATION" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ROLE_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0), - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "UTILISATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - CONSTRAINT "AFFECTATION_PK" PRIMARY KEY ("ID") ENABLE, - CONSTRAINT "AFFECTATION_SOURCE_UN" UNIQUE ("SOURCE_CODE") ENABLE, +CREATE TABLE "AFFECTATION" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ROLE_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0), + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "UTILISATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + CONSTRAINT "AFFECTATION_PK" PRIMARY KEY ("ID") ENABLE, + CONSTRAINT "AFFECTATION_SOURCE_UN" UNIQUE ("SOURCE_CODE") ENABLE, CONSTRAINT "AFFECTATION__UN" UNIQUE ("ROLE_ID", "STRUCTURE_ID", "HISTO_DESTRUCTION", "UTILISATEUR_ID") ENABLE ) ; -- AFFECTATION_RECHERCHE -CREATE TABLE "AFFECTATION_RECHERCHE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "AFFECTATION_R_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "AFFECTATION_RECHERCHE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "AFFECTATION_R_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "AFFECTATION_R_SRC_UN" UNIQUE ("SOURCE_CODE") ENABLE ) ; -- AGREMENT -CREATE TABLE "AGREMENT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "DATE_DECISION" DATE NOT NULL ENABLE, - "TYPE_AGREMENT_ID" NUMBER(*,0) NOT NULL ENABLE, - CONSTRAINT "AGREMENT__UN" UNIQUE ("TYPE_AGREMENT_ID", "INTERVENANT_ID", "STRUCTURE_ID", "HISTO_DESTRUCTION") ENABLE, +CREATE TABLE "AGREMENT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "DATE_DECISION" DATE NOT NULL ENABLE, + "TYPE_AGREMENT_ID" NUMBER(*,0) NOT NULL ENABLE, + CONSTRAINT "AGREMENT__UN" UNIQUE ("TYPE_AGREMENT_ID", "INTERVENANT_ID", "STRUCTURE_ID", "HISTO_DESTRUCTION") ENABLE, CONSTRAINT "AGREMENT_PK" PRIMARY KEY ("ID") ENABLE ) ; -- ANNEE -CREATE TABLE "ANNEE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(9 CHAR) NOT NULL ENABLE, - "DATE_DEBUT" DATE NOT NULL ENABLE, - "DATE_FIN" DATE NOT NULL ENABLE, - "ACTIVE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "TAUX_HETD" FLOAT(126), +CREATE TABLE "ANNEE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(9 CHAR) NOT NULL ENABLE, + "DATE_DEBUT" DATE NOT NULL ENABLE, + "DATE_FIN" DATE NOT NULL ENABLE, + "ACTIVE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "TAUX_HETD" FLOAT(126), CONSTRAINT "ANNEE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- CAMPAGNE_SAISIE -CREATE TABLE "CAMPAGNE_SAISIE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, - "DATE_DEBUT" DATE, - "DATE_FIN" DATE, - "MESSAGE_INTERVENANT" VARCHAR2(300 CHAR) NOT NULL ENABLE, - "MESSAGE_AUTRES" VARCHAR2(300 CHAR), - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - CONSTRAINT "CAMPAGNE_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "CAMPAGNE_SAISIE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, + "DATE_DEBUT" DATE, + "DATE_FIN" DATE, + "MESSAGE_INTERVENANT" VARCHAR2(300 CHAR) NOT NULL ENABLE, + "MESSAGE_AUTRES" VARCHAR2(300 CHAR), + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + CONSTRAINT "CAMPAGNE_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "CAMPAGNE_SAISIE__UN" UNIQUE ("ANNEE_ID", "TYPE_INTERVENANT_ID", "TYPE_VOLUME_HORAIRE_ID") ENABLE ) ; -- CATEGORIE_PRIVILEGE -CREATE TABLE "CATEGORIE_PRIVILEGE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(150 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, - "ORDRE" NUMBER(*,0), - CONSTRAINT "CATEGORIE_PRIVILEGE_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "CATEGORIE_PRIVILEGE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(150 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, + "ORDRE" NUMBER(*,0), + CONSTRAINT "CATEGORIE_PRIVILEGE_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "CATEGORIE_PRIVILEGE__UN" UNIQUE ("CODE") ENABLE ) ; -- CC_ACTIVITE -CREATE TABLE "CC_ACTIVITE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, - "FI" NUMBER(1,0) NOT NULL ENABLE, - "FA" NUMBER(1,0) NOT NULL ENABLE, - "FC" NUMBER(1,0) NOT NULL ENABLE, - "FC_MAJOREES" NUMBER(1,0) NOT NULL ENABLE, - "REFERENTIEL" NUMBER(1,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), +CREATE TABLE "CC_ACTIVITE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, + "FI" NUMBER(1,0) NOT NULL ENABLE, + "FA" NUMBER(1,0) NOT NULL ENABLE, + "FC" NUMBER(1,0) NOT NULL ENABLE, + "FC_MAJOREES" NUMBER(1,0) NOT NULL ENABLE, + "REFERENTIEL" NUMBER(1,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), CONSTRAINT "CC_ACTIVITE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- CENTRE_COUT -CREATE TABLE "CENTRE_COUT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, - "PARENT_ID" NUMBER(*,0), - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "ACTIVITE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_RESSOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "UNITE_BUDGETAIRE" VARCHAR2(15 CHAR), - "CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, +CREATE TABLE "CENTRE_COUT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, + "PARENT_ID" NUMBER(*,0), + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "ACTIVITE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_RESSOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "UNITE_BUDGETAIRE" VARCHAR2(15 CHAR), + "CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, CONSTRAINT "CENTRE_COUT_PK" PRIMARY KEY ("ID") ENABLE ) ; -- CENTRE_COUT_EP -CREATE TABLE "CENTRE_COUT_EP" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CENTRE_COUT_ID" NUMBER(*,0) NOT NULL ENABLE, - "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_HEURES_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "CENTRE_COUT_EP_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "CENTRE_COUT_EP" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CENTRE_COUT_ID" NUMBER(*,0) NOT NULL ENABLE, + "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_HEURES_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "CENTRE_COUT_EP_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "CENTRE_COUT_EP__UN" UNIQUE ("CENTRE_COUT_ID", "ELEMENT_PEDAGOGIQUE_ID", "TYPE_HEURES_ID", "HISTO_DESTRUCTION") ENABLE ) ; -- CENTRE_COUT_STRUCTURE -CREATE TABLE "CENTRE_COUT_STRUCTURE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CENTRE_COUT_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "UNITE_BUDGETAIRE" VARCHAR2(15 CHAR), - CONSTRAINT "CENTRE_COUT_STRUCTURE_PK" PRIMARY KEY ("ID") ENABLE, - CONSTRAINT "CCS_CC_S__UN" UNIQUE ("CENTRE_COUT_ID", "STRUCTURE_ID", "HISTO_DESTRUCTION") ENABLE, +CREATE TABLE "CENTRE_COUT_STRUCTURE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CENTRE_COUT_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "UNITE_BUDGETAIRE" VARCHAR2(15 CHAR), + CONSTRAINT "CENTRE_COUT_STRUCTURE_PK" PRIMARY KEY ("ID") ENABLE, + CONSTRAINT "CCS_CC_S__UN" UNIQUE ("CENTRE_COUT_ID", "STRUCTURE_ID", "HISTO_DESTRUCTION") ENABLE, CONSTRAINT "CCS_SOURCE_CODE_UN" UNIQUE ("SOURCE_CODE", "HISTO_DESTRUCTION") ENABLE ) ; -- CHEMIN_PEDAGOGIQUE -CREATE TABLE "CHEMIN_PEDAGOGIQUE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, - "ETAPE_ID" NUMBER(*,0) NOT NULL ENABLE, - "ORDRE" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "CHEMIN_PEDAGOGIQUE__UN" UNIQUE ("ELEMENT_PEDAGOGIQUE_ID", "ETAPE_ID") DISABLE, - CONSTRAINT "CHEMIN_PEDAGO_SRC_ID_UN" UNIQUE ("SOURCE_CODE") ENABLE, +CREATE TABLE "CHEMIN_PEDAGOGIQUE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, + "ETAPE_ID" NUMBER(*,0) NOT NULL ENABLE, + "ORDRE" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "CHEMIN_PEDAGOGIQUE__UN" UNIQUE ("ELEMENT_PEDAGOGIQUE_ID", "ETAPE_ID") DISABLE, + CONSTRAINT "CHEMIN_PEDAGO_SRC_ID_UN" UNIQUE ("SOURCE_CODE") ENABLE, CONSTRAINT "CHEMIN_PEDAGOGIQUE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- CIVILITE -CREATE TABLE "CIVILITE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE_COURT" VARCHAR2(5 CHAR) NOT NULL ENABLE, - "LIBELLE_LONG" VARCHAR2(15 CHAR) NOT NULL ENABLE, - "SEXE" VARCHAR2(1 CHAR) NOT NULL ENABLE, - CONSTRAINT "CIVILITE_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "CIVILITE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE_COURT" VARCHAR2(5 CHAR) NOT NULL ENABLE, + "LIBELLE_LONG" VARCHAR2(15 CHAR) NOT NULL ENABLE, + "SEXE" VARCHAR2(1 CHAR) NOT NULL ENABLE, + CONSTRAINT "CIVILITE_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "CIVILITE_LIBELLE_COURT_UN" UNIQUE ("LIBELLE_COURT") ENABLE ) ; -- CONTRAT -CREATE TABLE "CONTRAT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_CONTRAT_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "CONTRAT_ID" NUMBER, - "DATE_RETOUR_SIGNE" DATE, - "NUMERO_AVENANT" NUMBER DEFAULT 0 NOT NULL ENABLE, - "VALIDATION_ID" NUMBER(*,0), - "TOTAL_HETD" FLOAT(126), - CONSTRAINT "CONTRAT_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "CONTRAT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_CONTRAT_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "CONTRAT_ID" NUMBER, + "DATE_RETOUR_SIGNE" DATE, + "NUMERO_AVENANT" NUMBER DEFAULT 0 NOT NULL ENABLE, + "VALIDATION_ID" NUMBER(*,0), + "TOTAL_HETD" FLOAT(126), + CONSTRAINT "CONTRAT_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "CONTRAT_NUMERO_AVENANT_UN" UNIQUE ("INTERVENANT_ID", "STRUCTURE_ID", "NUMERO_AVENANT", "VALIDATION_ID", "HISTO_DESTRUCTION") ENABLE ) ; -- CONTRAT_FICHIER -CREATE TABLE "CONTRAT_FICHIER" - ( "CONTRAT_ID" NUMBER(*,0) NOT NULL ENABLE, - "FICHIER_ID" NUMBER(*,0) NOT NULL ENABLE, +CREATE TABLE "CONTRAT_FICHIER" + ( "CONTRAT_ID" NUMBER(*,0) NOT NULL ENABLE, + "FICHIER_ID" NUMBER(*,0) NOT NULL ENABLE, CONSTRAINT "CONTRAT_FICHIER_PK" PRIMARY KEY ("CONTRAT_ID", "FICHIER_ID") ENABLE ) ; -- CORPS -CREATE TABLE "CORPS" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE_LONG" VARCHAR2(40 CHAR) NOT NULL ENABLE, - "LIBELLE_COURT" VARCHAR2(20 CHAR) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "CORPS_SOURCE_UN" UNIQUE ("SOURCE_CODE") ENABLE, +CREATE TABLE "CORPS" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE_LONG" VARCHAR2(40 CHAR) NOT NULL ENABLE, + "LIBELLE_COURT" VARCHAR2(20 CHAR) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "CORPS_SOURCE_UN" UNIQUE ("SOURCE_CODE") ENABLE, CONSTRAINT "CORPS_PK" PRIMARY KEY ("ID") ENABLE ) ; -- DEPARTEMENT -CREATE TABLE "DEPARTEMENT" - ( "ID" NUMBER NOT NULL ENABLE, - "LIBELLE_LONG" VARCHAR2(120 CHAR), - "LIBELLE_COURT" VARCHAR2(60 CHAR), - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(5 CHAR), +CREATE TABLE "DEPARTEMENT" + ( "ID" NUMBER NOT NULL ENABLE, + "LIBELLE_LONG" VARCHAR2(120 CHAR), + "LIBELLE_COURT" VARCHAR2(60 CHAR), + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(5 CHAR), CONSTRAINT "DEPARTEMENT_PK" PRIMARY KEY ("ID") ENABLE ) ; -- DISCIPLINE -CREATE TABLE "DISCIPLINE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE_COURT" VARCHAR2(20 CHAR), - "LIBELLE_LONG" VARCHAR2(200 CHAR) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "CODES_CORRESP_1" VARCHAR2(1000 CHAR), - "CODES_CORRESP_2" VARCHAR2(1000 CHAR), - "CODES_CORRESP_3" VARCHAR2(1000 CHAR), - "CODES_CORRESP_4" VARCHAR2(1000 CHAR), - CONSTRAINT "DISCIPLINE_SOURCE_UN" UNIQUE ("SOURCE_CODE") ENABLE, +CREATE TABLE "DISCIPLINE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE_COURT" VARCHAR2(20 CHAR), + "LIBELLE_LONG" VARCHAR2(200 CHAR) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "CODES_CORRESP_1" VARCHAR2(1000 CHAR), + "CODES_CORRESP_2" VARCHAR2(1000 CHAR), + "CODES_CORRESP_3" VARCHAR2(1000 CHAR), + "CODES_CORRESP_4" VARCHAR2(1000 CHAR), + CONSTRAINT "DISCIPLINE_SOURCE_UN" UNIQUE ("SOURCE_CODE") ENABLE, CONSTRAINT "DISCIPLINE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- DOMAINE_FONCTIONNEL -CREATE TABLE "DOMAINE_FONCTIONNEL" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), +CREATE TABLE "DOMAINE_FONCTIONNEL" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), CONSTRAINT "DOMAINE_FONCTIONNEL_PK" PRIMARY KEY ("ID") ENABLE ) ; -- DOSSIER -CREATE TABLE "DOSSIER" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "NOM_USUEL" VARCHAR2(128 CHAR) NOT NULL ENABLE, - "NOM_PATRONYMIQUE" VARCHAR2(128 CHAR), - "PRENOM" VARCHAR2(128 CHAR) NOT NULL ENABLE, - "CIVILITE_ID" NUMBER NOT NULL ENABLE, - "NUMERO_INSEE" VARCHAR2(20 CHAR) NOT NULL ENABLE, - "STATUT_ID" NUMBER NOT NULL ENABLE, - "ADRESSE" VARCHAR2(1024 CHAR) NOT NULL ENABLE, - "EMAIL" VARCHAR2(128 CHAR) NOT NULL ENABLE, - "TELEPHONE" VARCHAR2(20 CHAR), - "PREMIER_RECRUTEMENT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "PERTE_EMPLOI" NUMBER(1,0) DEFAULT NULL, - "RIB" VARCHAR2(50 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "NUMERO_INSEE_EST_PROVISOIRE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "DATE_NAISSANCE" DATE, - "DEPT_NAISSANCE_ID" NUMBER(*,0), - "EMAIL_PERSO" VARCHAR2(128 CHAR), - "PAYS_NAISSANCE_ID" NUMBER(*,0), - "VILLE_NAISSANCE" VARCHAR2(128 CHAR), - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - CONSTRAINT "DOSSIER_UK1" UNIQUE ("HISTO_DESTRUCTION") ENABLE, +CREATE TABLE "DOSSIER" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "NOM_USUEL" VARCHAR2(128 CHAR) NOT NULL ENABLE, + "NOM_PATRONYMIQUE" VARCHAR2(128 CHAR), + "PRENOM" VARCHAR2(128 CHAR) NOT NULL ENABLE, + "CIVILITE_ID" NUMBER NOT NULL ENABLE, + "NUMERO_INSEE" VARCHAR2(20 CHAR) NOT NULL ENABLE, + "STATUT_ID" NUMBER NOT NULL ENABLE, + "ADRESSE" VARCHAR2(1024 CHAR) NOT NULL ENABLE, + "EMAIL" VARCHAR2(128 CHAR) NOT NULL ENABLE, + "TELEPHONE" VARCHAR2(20 CHAR), + "PREMIER_RECRUTEMENT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "PERTE_EMPLOI" NUMBER(1,0) DEFAULT NULL, + "RIB" VARCHAR2(50 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "NUMERO_INSEE_EST_PROVISOIRE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "DATE_NAISSANCE" DATE, + "DEPT_NAISSANCE_ID" NUMBER(*,0), + "EMAIL_PERSO" VARCHAR2(128 CHAR), + "PAYS_NAISSANCE_ID" NUMBER(*,0), + "VILLE_NAISSANCE" VARCHAR2(128 CHAR), + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + CONSTRAINT "DOSSIER_UK1" UNIQUE ("HISTO_DESTRUCTION") ENABLE, CONSTRAINT "DOSSIER_PK" PRIMARY KEY ("ID") ENABLE ) ; -- DOTATION -CREATE TABLE "DOTATION" - ( "ID" NUMBER(*,0) CONSTRAINT "NNC_DOTATION_ID" NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) CONSTRAINT "NNC_DOTATION_ANNEE_ID" NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) CONSTRAINT "NNC_DOTATION_STRUCTURE_ID" NOT NULL ENABLE, - "HEURES" FLOAT(126) DEFAULT 0 CONSTRAINT "NNC_DOTATION_HEURES" NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "ANNEE_CIVILE" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "TYPE_RESSOURCE_ID" NUMBER(*,0) CONSTRAINT "NNC_DOTATION_TYPE_ID" NOT NULL ENABLE, - CONSTRAINT "DOTATION_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "DOTATION" + ( "ID" NUMBER(*,0) CONSTRAINT "NNC_DOTATION_ID" NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) CONSTRAINT "NNC_DOTATION_ANNEE_ID" NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) CONSTRAINT "NNC_DOTATION_STRUCTURE_ID" NOT NULL ENABLE, + "HEURES" FLOAT(126) DEFAULT 0 CONSTRAINT "NNC_DOTATION_HEURES" NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "ANNEE_CIVILE" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "TYPE_RESSOURCE_ID" NUMBER(*,0) CONSTRAINT "NNC_DOTATION_TYPE_ID" NOT NULL ENABLE, + CONSTRAINT "DOTATION_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "DOTATION__UN" UNIQUE ("TYPE_RESSOURCE_ID", "ANNEE_ID", "ANNEE_CIVILE", "STRUCTURE_ID", "LIBELLE", "HISTO_DESTRUCTION") ENABLE ) ; -- EFFECTIFS -CREATE TABLE "EFFECTIFS" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER DEFAULT NULL NOT NULL ENABLE, - "FI" NUMBER(*,0) DEFAULT 0 NOT NULL ENABLE, - "FC" NUMBER(*,0) DEFAULT 0 NOT NULL ENABLE, - "FA" NUMBER(*,0) DEFAULT 0 NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "EFFECTIFS_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "EFFECTIFS" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER DEFAULT NULL NOT NULL ENABLE, + "FI" NUMBER(*,0) DEFAULT 0 NOT NULL ENABLE, + "FC" NUMBER(*,0) DEFAULT 0 NOT NULL ENABLE, + "FA" NUMBER(*,0) DEFAULT 0 NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "EFFECTIFS_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "EFFECTIFS__UN" UNIQUE ("SOURCE_CODE", "ANNEE_ID") ENABLE ) ; -- ELEMENT_MODULATEUR -CREATE TABLE "ELEMENT_MODULATEUR" - ( "ID" NUMBER NOT NULL ENABLE, - "ELEMENT_ID" NUMBER(*,0) NOT NULL ENABLE, - "MODULATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "ELEMENT_MODULATEUR__UN" UNIQUE ("ELEMENT_ID", "MODULATEUR_ID", "HISTO_DESTRUCTION") ENABLE, +CREATE TABLE "ELEMENT_MODULATEUR" + ( "ID" NUMBER NOT NULL ENABLE, + "ELEMENT_ID" NUMBER(*,0) NOT NULL ENABLE, + "MODULATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "ELEMENT_MODULATEUR__UN" UNIQUE ("ELEMENT_ID", "MODULATEUR_ID", "HISTO_DESTRUCTION") ENABLE, CONSTRAINT "ELEMENT_MODULATEUR_PK" PRIMARY KEY ("ID") ENABLE ) ; -- ELEMENT_PEDAGOGIQUE -CREATE TABLE "ELEMENT_PEDAGOGIQUE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, - "ETAPE_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "PERIODE_ID" NUMBER(*,0), - "TAUX_FOAD" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "FI" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, - "FC" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "FA" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "TAUX_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TAUX_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TAUX_FI" FLOAT(126) DEFAULT 1 NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) DEFAULT NULL NOT NULL ENABLE, - "DISCIPLINE_ID" NUMBER(*,0), - "CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, - CONSTRAINT "ELEMENT_PEDAGOGIQUE_PK" PRIMARY KEY ("ID") ENABLE, - CONSTRAINT "EP_SRC_UN" UNIQUE ("SOURCE_CODE", "ANNEE_ID", "HISTO_DESTRUCTION") ENABLE, +CREATE TABLE "ELEMENT_PEDAGOGIQUE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, + "ETAPE_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "PERIODE_ID" NUMBER(*,0), + "TAUX_FOAD" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "FI" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, + "FC" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "FA" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "TAUX_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TAUX_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TAUX_FI" FLOAT(126) DEFAULT 1 NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) DEFAULT NULL NOT NULL ENABLE, + "DISCIPLINE_ID" NUMBER(*,0), + "CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, + CONSTRAINT "ELEMENT_PEDAGOGIQUE_PK" PRIMARY KEY ("ID") ENABLE, + CONSTRAINT "EP_SRC_UN" UNIQUE ("SOURCE_CODE", "ANNEE_ID", "HISTO_DESTRUCTION") ENABLE, CONSTRAINT "EP_CODE_UN" UNIQUE ("CODE", "HISTO_DESTRUCTION", "ANNEE_ID") ENABLE ) ; -- ELEMENT_TAUX_REGIMES -CREATE TABLE "ELEMENT_TAUX_REGIMES" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TAUX_FI" FLOAT(126) NOT NULL ENABLE, - "TAUX_FC" FLOAT(126) NOT NULL ENABLE, - "TAUX_FA" FLOAT(126) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "ELEMENT_TAUX_REGIMES__UNV1" UNIQUE ("ELEMENT_PEDAGOGIQUE_ID", "HISTO_DESTRUCTION") ENABLE, - CONSTRAINT "ELEMENT_TAUX_REGIMES_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "ELEMENT_TAUX_REGIMES" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TAUX_FI" FLOAT(126) NOT NULL ENABLE, + "TAUX_FC" FLOAT(126) NOT NULL ENABLE, + "TAUX_FA" FLOAT(126) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "ELEMENT_TAUX_REGIMES__UNV1" UNIQUE ("ELEMENT_PEDAGOGIQUE_ID", "HISTO_DESTRUCTION") ENABLE, + CONSTRAINT "ELEMENT_TAUX_REGIMES_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "ELEMENT_TAUX_REGIMES__UN" UNIQUE ("SOURCE_CODE", "HISTO_DESTRUCTION") ENABLE ) ; -- ETABLISSEMENT -CREATE TABLE "ETABLISSEMENT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "LOCALISATION" VARCHAR2(60 CHAR), - "DEPARTEMENT" VARCHAR2(3 CHAR), - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "ETABLISSEMENT_SOURCE_ID_UN" UNIQUE ("SOURCE_CODE") ENABLE, +CREATE TABLE "ETABLISSEMENT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "LOCALISATION" VARCHAR2(60 CHAR), + "DEPARTEMENT" VARCHAR2(3 CHAR), + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "ETABLISSEMENT_SOURCE_ID_UN" UNIQUE ("SOURCE_CODE") ENABLE, CONSTRAINT "ETABLISSEMENT_PK" PRIMARY KEY ("ID") ENABLE ) ; -- ETAPE -CREATE TABLE "ETAPE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, - "TYPE_FORMATION_ID" NUMBER(*,0) NOT NULL ENABLE, - "NIVEAU" NUMBER(*,0), - "SPECIFIQUE_ECHANGES" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "DOMAINE_FONCTIONNEL_ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, - CONSTRAINT "ETAPE_PK" PRIMARY KEY ("ID") ENABLE, - CONSTRAINT "ETAPE_CODE_UN" UNIQUE ("CODE", "ANNEE_ID", "HISTO_DESTRUCTION") ENABLE, +CREATE TABLE "ETAPE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, + "TYPE_FORMATION_ID" NUMBER(*,0) NOT NULL ENABLE, + "NIVEAU" NUMBER(*,0), + "SPECIFIQUE_ECHANGES" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "DOMAINE_FONCTIONNEL_ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, + CONSTRAINT "ETAPE_PK" PRIMARY KEY ("ID") ENABLE, + CONSTRAINT "ETAPE_CODE_UN" UNIQUE ("CODE", "ANNEE_ID", "HISTO_DESTRUCTION") ENABLE, CONSTRAINT "ETAPE_SRC_UN" UNIQUE ("SOURCE_CODE", "HISTO_DESTRUCTION", "ANNEE_ID") ENABLE ) ; -- ETAT_VOLUME_HORAIRE -CREATE TABLE "ETAT_VOLUME_HORAIRE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(30 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(80 CHAR) NOT NULL ENABLE, - "ORDRE" NUMBER(*,0) NOT NULL ENABLE, - CONSTRAINT "ETAT_VOLUME_HORAIRE_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "ETAT_VOLUME_HORAIRE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(30 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(80 CHAR) NOT NULL ENABLE, + "ORDRE" NUMBER(*,0) NOT NULL ENABLE, + CONSTRAINT "ETAT_VOLUME_HORAIRE_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "ETAT_VOLUME_HORAIRE__UN" UNIQUE ("CODE") ENABLE ) ; -- FICHIER -CREATE TABLE "FICHIER" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "NOM" VARCHAR2(128 CHAR) NOT NULL ENABLE, - "TYPE" VARCHAR2(128 CHAR) NOT NULL ENABLE, - "TAILLE" NUMBER(*,0) NOT NULL ENABLE, - "CONTENU" BLOB NOT NULL ENABLE, - "DESCRIPTION" VARCHAR2(256 CHAR), - "VALIDATION_ID" NUMBER, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), +CREATE TABLE "FICHIER" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "NOM" VARCHAR2(128 CHAR) NOT NULL ENABLE, + "TYPE" VARCHAR2(128 CHAR) NOT NULL ENABLE, + "TAILLE" NUMBER(*,0) NOT NULL ENABLE, + "CONTENU" BLOB NOT NULL ENABLE, + "DESCRIPTION" VARCHAR2(256 CHAR), + "VALIDATION_ID" NUMBER, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), CONSTRAINT "FICHIER_PK" PRIMARY KEY ("ID") ENABLE ) ; -- FONCTION_REFERENTIEL -CREATE TABLE "FONCTION_REFERENTIEL" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(32 CHAR) NOT NULL ENABLE, - "LIBELLE_LONG" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "LIBELLE_COURT" VARCHAR2(40 CHAR) NOT NULL ENABLE, - "PLAFOND" FLOAT(126), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "STRUCTURE_ID" NUMBER(*,0) DEFAULT NULL, - "DOMAINE_FONCTIONNEL_ID" NUMBER NOT NULL ENABLE, - "ETAPE_REQUISE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "FONCTION_REFERENTIEL_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "FONCTION_REFERENTIEL" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(32 CHAR) NOT NULL ENABLE, + "LIBELLE_LONG" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "LIBELLE_COURT" VARCHAR2(40 CHAR) NOT NULL ENABLE, + "PLAFOND" FLOAT(126), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "STRUCTURE_ID" NUMBER(*,0) DEFAULT NULL, + "DOMAINE_FONCTIONNEL_ID" NUMBER NOT NULL ENABLE, + "ETAPE_REQUISE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "FONCTION_REFERENTIEL_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "FONCTION_REFERENTIEL_CODE_UN" UNIQUE ("CODE") ENABLE ) ; -- FORMULE_RESULTAT -CREATE TABLE "FORMULE_RESULTAT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, - "ETAT_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SERVICE_DU" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HEURES_COMPL_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HEURES_COMPL_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HEURES_COMPL_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HEURES_COMPL_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "SOUS_SERVICE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "HEURES_COMPL_FC_MAJOREES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HEURES_COMPL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "SERVICE_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "SERVICE_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "SERVICE_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "SERVICE_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "SOLDE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TYPE_INTERVENANT_CODE" VARCHAR2(5 CHAR) NOT NULL ENABLE, - CONSTRAINT "FORMULE_RESULTAT__UN" UNIQUE ("INTERVENANT_ID", "TYPE_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID") ENABLE, +CREATE TABLE "FORMULE_RESULTAT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, + "ETAT_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SERVICE_DU" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HEURES_COMPL_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HEURES_COMPL_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HEURES_COMPL_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HEURES_COMPL_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "SOUS_SERVICE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "HEURES_COMPL_FC_MAJOREES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HEURES_COMPL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "SERVICE_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "SERVICE_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "SERVICE_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "SERVICE_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "SOLDE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TYPE_INTERVENANT_CODE" VARCHAR2(5 CHAR) NOT NULL ENABLE, + CONSTRAINT "FORMULE_RESULTAT__UN" UNIQUE ("INTERVENANT_ID", "TYPE_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID") ENABLE, CONSTRAINT "FORMULE_RESULTAT_PK" PRIMARY KEY ("ID") ENABLE ) ; -- FORMULE_RESULTAT_SERVICE -CREATE TABLE "FORMULE_RESULTAT_SERVICE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "FORMULE_RESULTAT_ID" NUMBER(*,0) NOT NULL ENABLE, - "SERVICE_ID" NUMBER(*,0) NOT NULL ENABLE, - "HEURES_COMPL_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HEURES_COMPL_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HEURES_COMPL_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "HEURES_COMPL_FC_MAJOREES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "SERVICE_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "SERVICE_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "SERVICE_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, +CREATE TABLE "FORMULE_RESULTAT_SERVICE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "FORMULE_RESULTAT_ID" NUMBER(*,0) NOT NULL ENABLE, + "SERVICE_ID" NUMBER(*,0) NOT NULL ENABLE, + "HEURES_COMPL_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HEURES_COMPL_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HEURES_COMPL_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "HEURES_COMPL_FC_MAJOREES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "SERVICE_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "SERVICE_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "SERVICE_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, CONSTRAINT "FORMULE_RESULTAT_SERVICE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- FORMULE_RESULTAT_SERVICE_REF -CREATE TABLE "FORMULE_RESULTAT_SERVICE_REF" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "FORMULE_RESULTAT_ID" NUMBER(*,0) NOT NULL ENABLE, - "SERVICE_REFERENTIEL_ID" NUMBER(*,0) NOT NULL ENABLE, - "HEURES_COMPL_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "SERVICE_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, +CREATE TABLE "FORMULE_RESULTAT_SERVICE_REF" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "FORMULE_RESULTAT_ID" NUMBER(*,0) NOT NULL ENABLE, + "SERVICE_REFERENTIEL_ID" NUMBER(*,0) NOT NULL ENABLE, + "HEURES_COMPL_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "SERVICE_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, CONSTRAINT "FRSR_PK" PRIMARY KEY ("ID") ENABLE ) ; -- FORMULE_RESULTAT_VH -CREATE TABLE "FORMULE_RESULTAT_VH" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "FORMULE_RESULTAT_ID" NUMBER(*,0) NOT NULL ENABLE, - "VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, - "HEURES_COMPL_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HEURES_COMPL_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HEURES_COMPL_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "HEURES_COMPL_FC_MAJOREES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "SERVICE_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "SERVICE_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "SERVICE_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, +CREATE TABLE "FORMULE_RESULTAT_VH" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "FORMULE_RESULTAT_ID" NUMBER(*,0) NOT NULL ENABLE, + "VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, + "HEURES_COMPL_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HEURES_COMPL_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HEURES_COMPL_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "HEURES_COMPL_FC_MAJOREES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "SERVICE_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "SERVICE_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "SERVICE_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, CONSTRAINT "FORMULE_RESULTAT_VH_PK" PRIMARY KEY ("ID") ENABLE ) ; -- FORMULE_RESULTAT_VH_REF -CREATE TABLE "FORMULE_RESULTAT_VH_REF" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "FORMULE_RESULTAT_ID" NUMBER(*,0) NOT NULL ENABLE, - "VOLUME_HORAIRE_REF_ID" NUMBER(*,0) NOT NULL ENABLE, - "HEURES_COMPL_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "SERVICE_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, +CREATE TABLE "FORMULE_RESULTAT_VH_REF" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "FORMULE_RESULTAT_ID" NUMBER(*,0) NOT NULL ENABLE, + "VOLUME_HORAIRE_REF_ID" NUMBER(*,0) NOT NULL ENABLE, + "HEURES_COMPL_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "SERVICE_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, CONSTRAINT "FORMULE_RESULTAT_VH_REF_PK" PRIMARY KEY ("ID") ENABLE ) ; -- GRADE -CREATE TABLE "GRADE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE_LONG" VARCHAR2(40 CHAR) NOT NULL ENABLE, - "LIBELLE_COURT" VARCHAR2(20 CHAR) NOT NULL ENABLE, - "ECHELLE" VARCHAR2(10 CHAR), - "CORPS_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), +CREATE TABLE "GRADE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE_LONG" VARCHAR2(40 CHAR) NOT NULL ENABLE, + "LIBELLE_COURT" VARCHAR2(20 CHAR) NOT NULL ENABLE, + "ECHELLE" VARCHAR2(10 CHAR), + "CORPS_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), CONSTRAINT "GRADE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- GROUPE -CREATE TABLE "GROUPE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, - "NOMBRE" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - CONSTRAINT "GROUPE__UN" UNIQUE ("ELEMENT_PEDAGOGIQUE_ID", "HISTO_DESTRUCTEUR_ID", "TYPE_INTERVENTION_ID") ENABLE, +CREATE TABLE "GROUPE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, + "NOMBRE" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + CONSTRAINT "GROUPE__UN" UNIQUE ("ELEMENT_PEDAGOGIQUE_ID", "HISTO_DESTRUCTEUR_ID", "TYPE_INTERVENTION_ID") ENABLE, CONSTRAINT "GROUPE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- GROUPE_TYPE_FORMATION -CREATE TABLE "GROUPE_TYPE_FORMATION" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE_COURT" VARCHAR2(20 CHAR) NOT NULL ENABLE, - "LIBELLE_LONG" VARCHAR2(50 CHAR) NOT NULL ENABLE, - "ORDRE" NUMBER(*,0) NOT NULL ENABLE, - "PERTINENCE_NIVEAU" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "GTYPE_FORMATION_SOURCE_UN" UNIQUE ("SOURCE_CODE") ENABLE, +CREATE TABLE "GROUPE_TYPE_FORMATION" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE_COURT" VARCHAR2(20 CHAR) NOT NULL ENABLE, + "LIBELLE_LONG" VARCHAR2(50 CHAR) NOT NULL ENABLE, + "ORDRE" NUMBER(*,0) NOT NULL ENABLE, + "PERTINENCE_NIVEAU" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "GTYPE_FORMATION_SOURCE_UN" UNIQUE ("SOURCE_CODE") ENABLE, CONSTRAINT "GROUPE_TYPE_FORMATION_PK" PRIMARY KEY ("ID") ENABLE ) ; -- HISTO_INTERVENANT_SERVICE -CREATE TABLE "HISTO_INTERVENANT_SERVICE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0), - "REFERENTIEL" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE NOT NULL ENABLE, - CONSTRAINT "HISTO_SERVICE_MODIFICATION_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "HISTO_INTERVENANT_SERVICE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0), + "REFERENTIEL" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE NOT NULL ENABLE, + CONSTRAINT "HISTO_SERVICE_MODIFICATION_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "HISTO_INTERVENANT_SERVICE__UN" UNIQUE ("INTERVENANT_ID", "TYPE_VOLUME_HORAIRE_ID", "REFERENTIEL") ENABLE ) ; -- IMPORT_TABLES -CREATE TABLE "IMPORT_TABLES" - ( "TABLE_NAME" VARCHAR2(30 CHAR) NOT NULL ENABLE, - "SYNC_FILTRE" VARCHAR2(2000 CHAR), - "SYNC_ENABLED" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "SYNC_JOB" VARCHAR2(40 CHAR), - "SYNC_HOOK_BEFORE" VARCHAR2(4000 CHAR), - "SYNC_HOOK_AFTER" VARCHAR2(4000 CHAR), - "ORDRE" NUMBER, +CREATE TABLE "IMPORT_TABLES" + ( "TABLE_NAME" VARCHAR2(30 CHAR) NOT NULL ENABLE, + "SYNC_FILTRE" VARCHAR2(2000 CHAR), + "SYNC_ENABLED" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "SYNC_JOB" VARCHAR2(40 CHAR), + "SYNC_HOOK_BEFORE" VARCHAR2(4000 CHAR), + "SYNC_HOOK_AFTER" VARCHAR2(4000 CHAR), + "ORDRE" NUMBER, CONSTRAINT "IMPORT_TABLES_PK" PRIMARY KEY ("TABLE_NAME") ENABLE ) ; -- INDICATEUR -CREATE TABLE "INDICATEUR" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE" VARCHAR2(64 CHAR) NOT NULL ENABLE, - "ORDRE" NUMBER(*,0) DEFAULT 100 NOT NULL ENABLE, - "ENABLED" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, - "NUMERO" NUMBER DEFAULT 0 NOT NULL ENABLE, - "LIBELLE_PLURIEL" VARCHAR2(255 CHAR) NOT NULL ENABLE, - "LIBELLE_SINGULIER" VARCHAR2(255 CHAR) NOT NULL ENABLE, - "MESSAGE" VARCHAR2(800 CHAR), - "ROUTE" VARCHAR2(250 CHAR) NOT NULL ENABLE, - "TEM_DISTINCT" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, - "TEM_NOT_STRUCTURE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, +CREATE TABLE "INDICATEUR" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE" VARCHAR2(64 CHAR) NOT NULL ENABLE, + "ORDRE" NUMBER(*,0) DEFAULT 100 NOT NULL ENABLE, + "ENABLED" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, + "NUMERO" NUMBER DEFAULT 0 NOT NULL ENABLE, + "LIBELLE_PLURIEL" VARCHAR2(255 CHAR) NOT NULL ENABLE, + "LIBELLE_SINGULIER" VARCHAR2(255 CHAR) NOT NULL ENABLE, + "MESSAGE" VARCHAR2(800 CHAR), + "ROUTE" VARCHAR2(250 CHAR) NOT NULL ENABLE, + "TEM_DISTINCT" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, + "TEM_NOT_STRUCTURE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, CONSTRAINT "INDICATEUR_PK" PRIMARY KEY ("ID") ENABLE ) ; -- INDIC_MODIF_DOSSIER -CREATE TABLE "INDIC_MODIF_DOSSIER" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0), - "ATTR_NAME" VARCHAR2(128 CHAR), - "ATTR_OLD_SOURCE_NAME" VARCHAR2(128 CHAR), - "ATTR_OLD_VALUE" VARCHAR2(1024 CHAR), - "ATTR_NEW_SOURCE_NAME" VARCHAR2(128 CHAR), - "ATTR_NEW_VALUE" VARCHAR2(1024 CHAR), - "EST_CREATION_DOSSIER" NUMBER(*,0) DEFAULT 0 NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, +CREATE TABLE "INDIC_MODIF_DOSSIER" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0), + "ATTR_NAME" VARCHAR2(128 CHAR), + "ATTR_OLD_SOURCE_NAME" VARCHAR2(128 CHAR), + "ATTR_OLD_VALUE" VARCHAR2(1024 CHAR), + "ATTR_NEW_SOURCE_NAME" VARCHAR2(128 CHAR), + "ATTR_NEW_VALUE" VARCHAR2(1024 CHAR), + "EST_CREATION_DOSSIER" NUMBER(*,0) DEFAULT 0 NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, CONSTRAINT "indic_diff_dossier_PK" PRIMARY KEY ("ID") ENABLE ) ; -- INTERVENANT -CREATE TABLE "INTERVENANT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CIVILITE_ID" NUMBER(*,0) NOT NULL ENABLE, - "NOM_USUEL" VARCHAR2(60 CHAR) NOT NULL ENABLE, - "PRENOM" VARCHAR2(60 CHAR) NOT NULL ENABLE, - "NOM_PATRONYMIQUE" VARCHAR2(60 CHAR) NOT NULL ENABLE, - "DATE_NAISSANCE" DATE NOT NULL ENABLE, - "VILLE_NAISSANCE_CODE_INSEE" VARCHAR2(5 CHAR), - "VILLE_NAISSANCE_LIBELLE" VARCHAR2(60 CHAR), - "TEL_PRO" VARCHAR2(20 CHAR), - "TEL_MOBILE" VARCHAR2(20 CHAR), - "EMAIL" VARCHAR2(255 CHAR), - "STATUT_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "DISCIPLINE_ID" NUMBER(*,0), - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "NUMERO_INSEE" VARCHAR2(13 CHAR), - "NUMERO_INSEE_CLE" VARCHAR2(2 CHAR), - "NUMERO_INSEE_PROVISOIRE" NUMBER(1,0), - "IBAN" VARCHAR2(50 CHAR), - "BIC" VARCHAR2(20 CHAR), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "PREMIER_RECRUTEMENT" NUMBER(1,0) DEFAULT NULL, - "ANNEE_ID" NUMBER(*,0) DEFAULT NULL NOT NULL ENABLE, - "GRADE_ID" NUMBER(*,0), - "MONTANT_INDEMNITE_FC" FLOAT(126), - "CRITERE_RECHERCHE" VARCHAR2(255 CHAR), - "CODE" VARCHAR2(60 CHAR), - "PAYS_NAISSANCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "DEP_NAISSANCE_ID" NUMBER(*,0), - "PAYS_NATIONALITE_ID" NUMBER(*,0), - "UTILISATEUR_CODE" VARCHAR2(60 CHAR), - CONSTRAINT "INTERVENANT_SOURCE__UN" UNIQUE ("SOURCE_CODE", "ANNEE_ID") ENABLE, - CONSTRAINT "INTERVENANT_PK" PRIMARY KEY ("ID") ENABLE, - CONSTRAINT "INTERVENANT_CODE_UN" UNIQUE ("CODE", "ANNEE_ID") ENABLE, +CREATE TABLE "INTERVENANT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CIVILITE_ID" NUMBER(*,0) NOT NULL ENABLE, + "NOM_USUEL" VARCHAR2(60 CHAR) NOT NULL ENABLE, + "PRENOM" VARCHAR2(60 CHAR) NOT NULL ENABLE, + "NOM_PATRONYMIQUE" VARCHAR2(60 CHAR) NOT NULL ENABLE, + "DATE_NAISSANCE" DATE NOT NULL ENABLE, + "VILLE_NAISSANCE_CODE_INSEE" VARCHAR2(5 CHAR), + "VILLE_NAISSANCE_LIBELLE" VARCHAR2(60 CHAR), + "TEL_PRO" VARCHAR2(20 CHAR), + "TEL_MOBILE" VARCHAR2(20 CHAR), + "EMAIL" VARCHAR2(255 CHAR), + "STATUT_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "DISCIPLINE_ID" NUMBER(*,0), + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "NUMERO_INSEE" VARCHAR2(13 CHAR), + "NUMERO_INSEE_CLE" VARCHAR2(2 CHAR), + "NUMERO_INSEE_PROVISOIRE" NUMBER(1,0), + "IBAN" VARCHAR2(50 CHAR), + "BIC" VARCHAR2(20 CHAR), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "PREMIER_RECRUTEMENT" NUMBER(1,0) DEFAULT NULL, + "ANNEE_ID" NUMBER(*,0) DEFAULT NULL NOT NULL ENABLE, + "GRADE_ID" NUMBER(*,0), + "MONTANT_INDEMNITE_FC" FLOAT(126), + "CRITERE_RECHERCHE" VARCHAR2(255 CHAR), + "CODE" VARCHAR2(60 CHAR), + "PAYS_NAISSANCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "DEP_NAISSANCE_ID" NUMBER(*,0), + "PAYS_NATIONALITE_ID" NUMBER(*,0), + "UTILISATEUR_CODE" VARCHAR2(60 CHAR), + CONSTRAINT "INTERVENANT_SOURCE__UN" UNIQUE ("SOURCE_CODE", "ANNEE_ID") ENABLE, + CONSTRAINT "INTERVENANT_PK" PRIMARY KEY ("ID") ENABLE, + CONSTRAINT "INTERVENANT_CODE_UN" UNIQUE ("CODE", "ANNEE_ID") ENABLE, CONSTRAINT "INTERVENANT_UTIL_CODE_UN" UNIQUE ("UTILISATEUR_CODE", "ANNEE_ID", "STATUT_ID") ENABLE ) ; -- INTERVENANT_SAISIE -CREATE TABLE "INTERVENANT_SAISIE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "STATUT_ID" NUMBER(*,0), - CONSTRAINT "INTERVENANT_SAISIE_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "INTERVENANT_SAISIE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "STATUT_ID" NUMBER(*,0), + CONSTRAINT "INTERVENANT_SAISIE_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "INTERVENANT_SAISIE__UN" UNIQUE ("INTERVENANT_ID") ENABLE ) ; -- LIEN -CREATE TABLE "LIEN" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "NOEUD_SUP_ID" NUMBER(*,0) NOT NULL ENABLE, - "NOEUD_INF_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "STRUCTURE_ID" NUMBER(*,0), - CONSTRAINT "LIEN_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "LIEN" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "NOEUD_SUP_ID" NUMBER(*,0) NOT NULL ENABLE, + "NOEUD_INF_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "STRUCTURE_ID" NUMBER(*,0), + CONSTRAINT "LIEN_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "LIEN_SRC_UN" UNIQUE ("SOURCE_CODE", "HISTO_DESTRUCTION") ENABLE ) ; -- MISE_EN_PAIEMENT -CREATE TABLE "MISE_EN_PAIEMENT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "DATE_MISE_EN_PAIEMENT" DATE, - "PERIODE_PAIEMENT_ID" NUMBER(*,0), - "VALIDATION_ID" NUMBER(*,0), - "DATE_VALIDATION" DATE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "CENTRE_COUT_ID" NUMBER(*,0) NOT NULL ENABLE, - "FORMULE_RES_SERVICE_ID" NUMBER(*,0), - "FORMULE_RES_SERVICE_REF_ID" NUMBER(*,0), - "HEURES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TYPE_HEURES_ID" NUMBER(*,0) NOT NULL ENABLE, - "DOMAINE_FONCTIONNEL_ID" NUMBER(*,0), +CREATE TABLE "MISE_EN_PAIEMENT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "DATE_MISE_EN_PAIEMENT" DATE, + "PERIODE_PAIEMENT_ID" NUMBER(*,0), + "VALIDATION_ID" NUMBER(*,0), + "DATE_VALIDATION" DATE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "CENTRE_COUT_ID" NUMBER(*,0) NOT NULL ENABLE, + "FORMULE_RES_SERVICE_ID" NUMBER(*,0), + "FORMULE_RES_SERVICE_REF_ID" NUMBER(*,0), + "HEURES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TYPE_HEURES_ID" NUMBER(*,0) NOT NULL ENABLE, + "DOMAINE_FONCTIONNEL_ID" NUMBER(*,0), CONSTRAINT "MISE_EN_PAIEMENT_PK" PRIMARY KEY ("ID") ENABLE ) ; -- MODIFICATION_SERVICE_DU -CREATE TABLE "MODIFICATION_SERVICE_DU" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "HEURES" FLOAT(126) NOT NULL ENABLE, - "MOTIF_ID" NUMBER(*,0) NOT NULL ENABLE, - "COMMENTAIRES" CLOB, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), +CREATE TABLE "MODIFICATION_SERVICE_DU" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "HEURES" FLOAT(126) NOT NULL ENABLE, + "MOTIF_ID" NUMBER(*,0) NOT NULL ENABLE, + "COMMENTAIRES" CLOB, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), CONSTRAINT "MODIFICATION_SERVICE_DU_PK" PRIMARY KEY ("ID") ENABLE ) ; -- MODULATEUR -CREATE TABLE "MODULATEUR" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(30 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(40 CHAR) NOT NULL ENABLE, - "TYPE_MODULATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "PONDERATION_SERVICE_DU" FLOAT(126) NOT NULL ENABLE, - "PONDERATION_SERVICE_COMPL" FLOAT(126) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "MODULATEUR__UN" UNIQUE ("CODE") ENABLE, +CREATE TABLE "MODULATEUR" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(30 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(40 CHAR) NOT NULL ENABLE, + "TYPE_MODULATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "PONDERATION_SERVICE_DU" FLOAT(126) NOT NULL ENABLE, + "PONDERATION_SERVICE_COMPL" FLOAT(126) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "MODULATEUR__UN" UNIQUE ("CODE") ENABLE, CONSTRAINT "MODULATEUR_PK" PRIMARY KEY ("ID") ENABLE ) ; -- MOTIF_MODIFICATION_SERVICE -CREATE TABLE "MOTIF_MODIFICATION_SERVICE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(64 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(50 CHAR) NOT NULL ENABLE, - "MULTIPLICATEUR" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "DECHARGE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "MOTIF_MODIFICATION_SERVICE_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "MOTIF_MODIFICATION_SERVICE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(64 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(50 CHAR) NOT NULL ENABLE, + "MULTIPLICATEUR" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "DECHARGE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "MOTIF_MODIFICATION_SERVICE_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "MOTIF_MODIFICATION_SERVIC_UK1" UNIQUE ("CODE") ENABLE ) ; -- MOTIF_NON_PAIEMENT -CREATE TABLE "MOTIF_NON_PAIEMENT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(3 CHAR) NOT NULL ENABLE, - "LIBELLE_COURT" VARCHAR2(50 CHAR) NOT NULL ENABLE, - "LIBELLE_LONG" VARCHAR2(200 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), +CREATE TABLE "MOTIF_NON_PAIEMENT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(3 CHAR) NOT NULL ENABLE, + "LIBELLE_COURT" VARCHAR2(50 CHAR) NOT NULL ENABLE, + "LIBELLE_LONG" VARCHAR2(200 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), CONSTRAINT "MOTIF_NON_PAIEMENT_PK" PRIMARY KEY ("ID") ENABLE ) ; -- NOEUD -CREATE TABLE "NOEUD" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(255 CHAR) NOT NULL ENABLE, - "LISTE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "ETAPE_ID" NUMBER(*,0), - "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0), - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "STRUCTURE_ID" NUMBER(*,0), - CONSTRAINT "NOEUD_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "NOEUD" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(255 CHAR) NOT NULL ENABLE, + "LISTE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "ETAPE_ID" NUMBER(*,0), + "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0), + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "STRUCTURE_ID" NUMBER(*,0), + CONSTRAINT "NOEUD_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "NOEUD_SRC_UN" UNIQUE ("SOURCE_CODE", "HISTO_DESTRUCTION") ENABLE ) ; -- NOTIFICATION_INDICATEUR -CREATE TABLE "NOTIFICATION_INDICATEUR" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "INDICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "FREQUENCE" NUMBER(*,0), - "DATE_ABONNEMENT" DATE NOT NULL ENABLE, - "DATE_DERN_NOTIF" DATE, - "AFFECTATION_ID" NUMBER(*,0) NOT NULL ENABLE, - "IN_HOME" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "NOTIF_INDICATEUR_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "NOTIFICATION_INDICATEUR" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "INDICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "FREQUENCE" NUMBER(*,0), + "DATE_ABONNEMENT" DATE NOT NULL ENABLE, + "DATE_DERN_NOTIF" DATE, + "AFFECTATION_ID" NUMBER(*,0) NOT NULL ENABLE, + "IN_HOME" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "NOTIF_INDICATEUR_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "NOTIFICATION_INDICATEUR__UN" UNIQUE ("INDICATEUR_ID", "AFFECTATION_ID") ENABLE ) ; -- PARAMETRE -CREATE TABLE "PARAMETRE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "NOM" VARCHAR2(50 CHAR) NOT NULL ENABLE, - "VALEUR" CLOB, - "DESCRIPTION" CLOB, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), +CREATE TABLE "PARAMETRE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "NOM" VARCHAR2(50 CHAR) NOT NULL ENABLE, + "VALEUR" CLOB, + "DESCRIPTION" CLOB, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), CONSTRAINT "PARAMETRE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- PAYS -CREATE TABLE "PAYS" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE_LONG" VARCHAR2(120 CHAR) NOT NULL ENABLE, - "LIBELLE_COURT" VARCHAR2(60 CHAR) NOT NULL ENABLE, - "TEMOIN_UE" NUMBER(1,0) NOT NULL ENABLE, - "VALIDITE_DEBUT" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "VALIDITE_FIN" DATE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), +CREATE TABLE "PAYS" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE_LONG" VARCHAR2(120 CHAR) NOT NULL ENABLE, + "LIBELLE_COURT" VARCHAR2(60 CHAR) NOT NULL ENABLE, + "TEMOIN_UE" NUMBER(1,0) NOT NULL ENABLE, + "VALIDITE_DEBUT" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "VALIDITE_FIN" DATE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), CONSTRAINT "PAYS_PK" PRIMARY KEY ("ID") ENABLE ) ; -- PERIMETRE -CREATE TABLE "PERIMETRE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(30 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(150 CHAR) NOT NULL ENABLE, - CONSTRAINT "PERIMETRE_PK" PRIMARY KEY ("ID") ENABLE, - CONSTRAINT "PERIMETRE_CODE_UN" UNIQUE ("CODE") ENABLE, +CREATE TABLE "PERIMETRE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(30 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(150 CHAR) NOT NULL ENABLE, + CONSTRAINT "PERIMETRE_PK" PRIMARY KEY ("ID") ENABLE, + CONSTRAINT "PERIMETRE_CODE_UN" UNIQUE ("CODE") ENABLE, CONSTRAINT "PERIMETRE_LIBELLE_UN" UNIQUE ("LIBELLE") ENABLE ) ; -- PERIODE -CREATE TABLE "PERIODE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(3 CHAR) NOT NULL ENABLE, - "LIBELLE_LONG" VARCHAR2(40 CHAR) NOT NULL ENABLE, - "LIBELLE_COURT" VARCHAR2(15 CHAR), - "ORDRE" NUMBER(*,0) NOT NULL ENABLE, - "ENSEIGNEMENT" NUMBER(1,0), - "PAIEMENT" NUMBER(1,0), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "ECART_MOIS" NUMBER NOT NULL ENABLE, - "ECART_MOIS_PAIEMENT" NUMBER NOT NULL ENABLE, - CONSTRAINT "PERIODE__UN" UNIQUE ("CODE") ENABLE, +CREATE TABLE "PERIODE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(3 CHAR) NOT NULL ENABLE, + "LIBELLE_LONG" VARCHAR2(40 CHAR) NOT NULL ENABLE, + "LIBELLE_COURT" VARCHAR2(15 CHAR), + "ORDRE" NUMBER(*,0) NOT NULL ENABLE, + "ENSEIGNEMENT" NUMBER(1,0), + "PAIEMENT" NUMBER(1,0), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "ECART_MOIS" NUMBER NOT NULL ENABLE, + "ECART_MOIS_PAIEMENT" NUMBER NOT NULL ENABLE, + CONSTRAINT "PERIODE__UN" UNIQUE ("CODE") ENABLE, CONSTRAINT "PERIODE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- PIECE_JOINTE -CREATE TABLE "PIECE_JOINTE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_PIECE_JOINTE_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "VALIDATION_ID" NUMBER(*,0), - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - CONSTRAINT "PIECE_JOINTE_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "PIECE_JOINTE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_PIECE_JOINTE_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "VALIDATION_ID" NUMBER(*,0), + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + CONSTRAINT "PIECE_JOINTE_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "PIECE_JOINTE__UN" UNIQUE ("TYPE_PIECE_JOINTE_ID", "INTERVENANT_ID", "HISTO_DESTRUCTION") ENABLE ) ; -- PIECE_JOINTE_FICHIER -CREATE TABLE "PIECE_JOINTE_FICHIER" - ( "PIECE_JOINTE_ID" NUMBER NOT NULL ENABLE, - "FICHIER_ID" NUMBER(*,0) NOT NULL ENABLE, +CREATE TABLE "PIECE_JOINTE_FICHIER" + ( "PIECE_JOINTE_ID" NUMBER NOT NULL ENABLE, + "FICHIER_ID" NUMBER(*,0) NOT NULL ENABLE, CONSTRAINT "PIECE_JOINTE_FICHIER_PK" PRIMARY KEY ("PIECE_JOINTE_ID", "FICHIER_ID") ENABLE ) ; -- PLAFOND -CREATE TABLE "PLAFOND" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(40 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(150 CHAR) NOT NULL ENABLE, +CREATE TABLE "PLAFOND" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(40 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(150 CHAR) NOT NULL ENABLE, CONSTRAINT "PLAFOND_PK" PRIMARY KEY ("ID") ENABLE ) ; -- PLAFOND_APPLICATION -CREATE TABLE "PLAFOND_APPLICATION" - ( "ID" NUMBER NOT NULL ENABLE, - "PLAFOND_ID" NUMBER(*,0) NOT NULL ENABLE, - "PLAFOND_ETAT_ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_DEBUT_ID" NUMBER(*,0), - "ANNEE_FIN_ID" NUMBER(*,0), - "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, +CREATE TABLE "PLAFOND_APPLICATION" + ( "ID" NUMBER NOT NULL ENABLE, + "PLAFOND_ID" NUMBER(*,0) NOT NULL ENABLE, + "PLAFOND_ETAT_ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_DEBUT_ID" NUMBER(*,0), + "ANNEE_FIN_ID" NUMBER(*,0), + "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, CONSTRAINT "PLAFOND_APPLICATION_PK" PRIMARY KEY ("ID") ENABLE ) ; -- PLAFOND_ETAT -CREATE TABLE "PLAFOND_ETAT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(20 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(100 CHAR) NOT NULL ENABLE, +CREATE TABLE "PLAFOND_ETAT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(20 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(100 CHAR) NOT NULL ENABLE, CONSTRAINT "PLAFOND_ETAT_PK" PRIMARY KEY ("ID") ENABLE ) ; -- PRIVILEGE -CREATE TABLE "PRIVILEGE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(150 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, - "CATEGORIE_ID" NUMBER(*,0) NOT NULL ENABLE, - "ORDRE" NUMBER(*,0), - CONSTRAINT "PRIVILEGE_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "PRIVILEGE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(150 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, + "CATEGORIE_ID" NUMBER(*,0) NOT NULL ENABLE, + "ORDRE" NUMBER(*,0), + CONSTRAINT "PRIVILEGE_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "PRIVILEGE__UN" UNIQUE ("CATEGORIE_ID", "CODE") ENABLE ) ; -- REGLE_STRUCTURE_VALIDATION -CREATE TABLE "REGLE_STRUCTURE_VALIDATION" - ( "ID" NUMBER NOT NULL ENABLE, - "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "PRIORITE" VARCHAR2(20 CHAR) NOT NULL ENABLE, - "MESSAGE" VARCHAR2(500 CHAR), - CONSTRAINT "REGLE_STRUCTURE_VALIDATION_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "REGLE_STRUCTURE_VALIDATION" + ( "ID" NUMBER NOT NULL ENABLE, + "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "PRIORITE" VARCHAR2(20 CHAR) NOT NULL ENABLE, + "MESSAGE" VARCHAR2(500 CHAR), + CONSTRAINT "REGLE_STRUCTURE_VALIDATION_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "REGLE_STRUCTURE_VALIDATION__UN" UNIQUE ("TYPE_VOLUME_HORAIRE_ID", "TYPE_INTERVENANT_ID") ENABLE ) ; -- ROLE -CREATE TABLE "ROLE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "CODE" VARCHAR2(64 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(50 CHAR) NOT NULL ENABLE, - "PERIMETRE_ID" NUMBER(*,0) NOT NULL ENABLE, - "PEUT_CHANGER_STRUCTURE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "ROLE_CODE_UN" UNIQUE ("CODE") ENABLE, +CREATE TABLE "ROLE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "CODE" VARCHAR2(64 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(50 CHAR) NOT NULL ENABLE, + "PERIMETRE_ID" NUMBER(*,0) NOT NULL ENABLE, + "PEUT_CHANGER_STRUCTURE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "ROLE_CODE_UN" UNIQUE ("CODE") ENABLE, CONSTRAINT "ROLE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- ROLE_PRIVILEGE -CREATE TABLE "ROLE_PRIVILEGE" - ( "ROLE_ID" NUMBER(*,0) NOT NULL ENABLE, - "PRIVILEGE_ID" NUMBER(*,0) NOT NULL ENABLE, +CREATE TABLE "ROLE_PRIVILEGE" + ( "ROLE_ID" NUMBER(*,0) NOT NULL ENABLE, + "PRIVILEGE_ID" NUMBER(*,0) NOT NULL ENABLE, CONSTRAINT "ROLE_PRIVILEGE_PK" PRIMARY KEY ("PRIVILEGE_ID", "ROLE_ID") ENABLE ) ; -- SCENARIO -CREATE TABLE "SCENARIO" - ( "ID" NUMBER NOT NULL ENABLE, - "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "TYPE" NUMBER(2,0) DEFAULT 0 NOT NULL ENABLE, +CREATE TABLE "SCENARIO" + ( "ID" NUMBER NOT NULL ENABLE, + "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "TYPE" NUMBER(2,0) DEFAULT 0 NOT NULL ENABLE, CONSTRAINT "SCENARIO_PK" PRIMARY KEY ("ID") ENABLE ) ; -- SCENARIO_LIEN -CREATE TABLE "SCENARIO_LIEN" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "SCENARIO_ID" NUMBER(*,0) NOT NULL ENABLE, - "LIEN_ID" NUMBER(*,0) NOT NULL ENABLE, - "ACTIF" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, - "POIDS" FLOAT(126) DEFAULT 1 NOT NULL ENABLE, - "CHOIX_MINIMUM" NUMBER DEFAULT 0, - "CHOIX_MAXIMUM" NUMBER DEFAULT 0, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "SCENARIO_LIEN_PK" PRIMARY KEY ("ID") ENABLE, - CONSTRAINT "SCENARIO_LIEN_SRC_UN" UNIQUE ("SOURCE_CODE", "HISTO_DESTRUCTION") ENABLE, +CREATE TABLE "SCENARIO_LIEN" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "SCENARIO_ID" NUMBER(*,0) NOT NULL ENABLE, + "LIEN_ID" NUMBER(*,0) NOT NULL ENABLE, + "ACTIF" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, + "POIDS" FLOAT(126) DEFAULT 1 NOT NULL ENABLE, + "CHOIX_MINIMUM" NUMBER DEFAULT 0, + "CHOIX_MAXIMUM" NUMBER DEFAULT 0, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "SCENARIO_LIEN_PK" PRIMARY KEY ("ID") ENABLE, + CONSTRAINT "SCENARIO_LIEN_SRC_UN" UNIQUE ("SOURCE_CODE", "HISTO_DESTRUCTION") ENABLE, CONSTRAINT "SCENARIO_LIEN__UN" UNIQUE ("SCENARIO_ID", "LIEN_ID", "HISTO_DESTRUCTION") ENABLE ) ; -- SCENARIO_NOEUD -CREATE TABLE "SCENARIO_NOEUD" - ( "ID" NUMBER NOT NULL ENABLE, - "SCENARIO_ID" NUMBER NOT NULL ENABLE, - "NOEUD_ID" NUMBER(*,0) NOT NULL ENABLE, - "ASSIDUITE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "HEURES" FLOAT(126), - CONSTRAINT "SCENARIO_NOEUD_PK" PRIMARY KEY ("ID") ENABLE, - CONSTRAINT "SCENARIO_NOEUD_SRC_UN" UNIQUE ("SOURCE_CODE", "HISTO_DESTRUCTION") ENABLE, +CREATE TABLE "SCENARIO_NOEUD" + ( "ID" NUMBER NOT NULL ENABLE, + "SCENARIO_ID" NUMBER NOT NULL ENABLE, + "NOEUD_ID" NUMBER(*,0) NOT NULL ENABLE, + "ASSIDUITE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "HEURES" FLOAT(126), + CONSTRAINT "SCENARIO_NOEUD_PK" PRIMARY KEY ("ID") ENABLE, + CONSTRAINT "SCENARIO_NOEUD_SRC_UN" UNIQUE ("SOURCE_CODE", "HISTO_DESTRUCTION") ENABLE, CONSTRAINT "SCENARIO_NOEUD__UN" UNIQUE ("SCENARIO_ID", "NOEUD_ID", "HISTO_DESTRUCTION") ENABLE ) ; -- SCENARIO_NOEUD_EFFECTIF -CREATE TABLE "SCENARIO_NOEUD_EFFECTIF" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "SCENARIO_NOEUD_ID" NUMBER NOT NULL ENABLE, - "TYPE_HEURES_ID" NUMBER(*,0) NOT NULL ENABLE, - "EFFECTIF" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "ETAPE_ID" NUMBER(*,0) NOT NULL ENABLE, +CREATE TABLE "SCENARIO_NOEUD_EFFECTIF" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "SCENARIO_NOEUD_ID" NUMBER NOT NULL ENABLE, + "TYPE_HEURES_ID" NUMBER(*,0) NOT NULL ENABLE, + "EFFECTIF" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "ETAPE_ID" NUMBER(*,0) NOT NULL ENABLE, CONSTRAINT "SCENARIO_NOEUD_EFFECTIF_PK" PRIMARY KEY ("ID") ENABLE ) ; -- SCENARIO_NOEUD_SEUIL -CREATE TABLE "SCENARIO_NOEUD_SEUIL" - ( "ID" NUMBER NOT NULL ENABLE, - "SCENARIO_NOEUD_ID" NUMBER NOT NULL ENABLE, - "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, - "OUVERTURE" NUMBER DEFAULT 0, - "DEDOUBLEMENT" NUMBER DEFAULT 0, - "ASSIDUITE" FLOAT(126), +CREATE TABLE "SCENARIO_NOEUD_SEUIL" + ( "ID" NUMBER NOT NULL ENABLE, + "SCENARIO_NOEUD_ID" NUMBER NOT NULL ENABLE, + "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, + "OUVERTURE" NUMBER DEFAULT 0, + "DEDOUBLEMENT" NUMBER DEFAULT 0, + "ASSIDUITE" FLOAT(126), CONSTRAINT "SCENARIO_NOEUD_SEUIL_PK" PRIMARY KEY ("ID") ENABLE ) ; -- SERVICE -CREATE TABLE "SERVICE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0), - "ETABLISSEMENT_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "DESCRIPTION" CLOB, - CONSTRAINT "SERVICE__UN" UNIQUE ("INTERVENANT_ID", "ELEMENT_PEDAGOGIQUE_ID", "ETABLISSEMENT_ID", "HISTO_DESTRUCTION") ENABLE, +CREATE TABLE "SERVICE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0), + "ETABLISSEMENT_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "DESCRIPTION" CLOB, + CONSTRAINT "SERVICE__UN" UNIQUE ("INTERVENANT_ID", "ELEMENT_PEDAGOGIQUE_ID", "ETABLISSEMENT_ID", "HISTO_DESTRUCTION") ENABLE, CONSTRAINT "SERVICE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- SERVICE_REFERENTIEL -CREATE TABLE "SERVICE_REFERENTIEL" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "FONCTION_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "COMMENTAIRES" VARCHAR2(256 CHAR), - "FORMATION" VARCHAR2(256 CHAR), +CREATE TABLE "SERVICE_REFERENTIEL" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "FONCTION_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "COMMENTAIRES" VARCHAR2(256 CHAR), + "FORMATION" VARCHAR2(256 CHAR), CONSTRAINT "SERVICE_REFERENTIEL_PK" PRIMARY KEY ("ID") ENABLE ) ; -- SEUIL_CHARGE -CREATE TABLE "SEUIL_CHARGE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "SCENARIO_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0), - "GROUPE_TYPE_FORMATION_ID" NUMBER(*,0), - "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, - "DEDOUBLEMENT" NUMBER, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, +CREATE TABLE "SEUIL_CHARGE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "SCENARIO_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0), + "GROUPE_TYPE_FORMATION_ID" NUMBER(*,0), + "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, + "DEDOUBLEMENT" NUMBER, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, CONSTRAINT "SEUIL_CHARGE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- SOURCE -CREATE TABLE "SOURCE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(15 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(30 CHAR) NOT NULL ENABLE, - "IMPORTABLE" NUMBER(1,0) NOT NULL ENABLE, - CONSTRAINT "SOURCE_CODE_UN" UNIQUE ("CODE") ENABLE, +CREATE TABLE "SOURCE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(15 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(30 CHAR) NOT NULL ENABLE, + "IMPORTABLE" NUMBER(1,0) NOT NULL ENABLE, + CONSTRAINT "SOURCE_CODE_UN" UNIQUE ("CODE") ENABLE, CONSTRAINT "SOURCE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- STATUT_INTERVENANT -CREATE TABLE "STATUT_INTERVENANT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(128 CHAR) NOT NULL ENABLE, - "SERVICE_STATUTAIRE" FLOAT(126) NOT NULL ENABLE, - "DEPASSEMENT" NUMBER(1,0) NOT NULL ENABLE, - "PLAFOND_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "MAXIMUM_HETD" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TYPE_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "ORDRE" NUMBER(*,0) NOT NULL ENABLE, - "NON_AUTORISE" NUMBER(1,0) NOT NULL ENABLE, - "PEUT_SAISIR_SERVICE" NUMBER(1,0) NOT NULL ENABLE, - "PEUT_CHOISIR_DANS_DOSSIER" NUMBER(1,0) NOT NULL ENABLE, - "PEUT_SAISIR_DOSSIER" NUMBER(1,0) NOT NULL ENABLE, - "PEUT_SAISIR_MOTIF_NON_PAIEMENT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "PEUT_AVOIR_CONTRAT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "PEUT_SAISIR_REFERENTIEL" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "PLAFOND_HC_HORS_REMU_FC" FLOAT(126) DEFAULT 9999 NOT NULL ENABLE, - "PLAFOND_HC_REMU_FC" FLOAT(126) DEFAULT 13502 NOT NULL ENABLE, - "DEPASSEMENT_SERVICE_DU_SANS_HC" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "PEUT_CLOTURER_SAISIE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "TEM_BIATSS" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "PEUT_SAISIR_SERVICE_EXT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "TEM_ATV" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "STATUT_INTERVENANT__UN" UNIQUE ("SOURCE_CODE") ENABLE, - CONSTRAINT "STATUT_INTERVENANT_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "STATUT_INTERVENANT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(128 CHAR) NOT NULL ENABLE, + "SERVICE_STATUTAIRE" FLOAT(126) NOT NULL ENABLE, + "DEPASSEMENT" NUMBER(1,0) NOT NULL ENABLE, + "PLAFOND_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "MAXIMUM_HETD" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TYPE_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "ORDRE" NUMBER(*,0) NOT NULL ENABLE, + "NON_AUTORISE" NUMBER(1,0) NOT NULL ENABLE, + "PEUT_SAISIR_SERVICE" NUMBER(1,0) NOT NULL ENABLE, + "PEUT_CHOISIR_DANS_DOSSIER" NUMBER(1,0) NOT NULL ENABLE, + "PEUT_SAISIR_DOSSIER" NUMBER(1,0) NOT NULL ENABLE, + "PEUT_SAISIR_MOTIF_NON_PAIEMENT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "PEUT_AVOIR_CONTRAT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "PEUT_SAISIR_REFERENTIEL" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "PLAFOND_HC_HORS_REMU_FC" FLOAT(126) DEFAULT 9999 NOT NULL ENABLE, + "PLAFOND_HC_REMU_FC" FLOAT(126) DEFAULT 13502 NOT NULL ENABLE, + "DEPASSEMENT_SERVICE_DU_SANS_HC" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "PEUT_CLOTURER_SAISIE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "TEM_BIATSS" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "PEUT_SAISIR_SERVICE_EXT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "TEM_ATV" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "STATUT_INTERVENANT__UN" UNIQUE ("SOURCE_CODE") ENABLE, + CONSTRAINT "STATUT_INTERVENANT_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "STATUT_INTERVENANT_ODRE_UN" UNIQUE ("HISTO_DESTRUCTION", "ORDRE") ENABLE ) ; -- STATUT_PRIVILEGE -CREATE TABLE "STATUT_PRIVILEGE" - ( "STATUT_ID" NUMBER(*,0) NOT NULL ENABLE, - "PRIVILEGE_ID" NUMBER(*,0) NOT NULL ENABLE, +CREATE TABLE "STATUT_PRIVILEGE" + ( "STATUT_ID" NUMBER(*,0) NOT NULL ENABLE, + "PRIVILEGE_ID" NUMBER(*,0) NOT NULL ENABLE, CONSTRAINT "STATUT_PRIVILEGE_PK" PRIMARY KEY ("STATUT_ID", "PRIVILEGE_ID") ENABLE ) ; -- STRUCTURE -CREATE TABLE "STRUCTURE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE_LONG" VARCHAR2(60 CHAR) NOT NULL ENABLE, - "LIBELLE_COURT" VARCHAR2(25 CHAR) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "CONTACT_PJ" VARCHAR2(255 CHAR), - "AFF_ADRESSE_CONTRAT" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, - "ENSEIGNEMENT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, - CONSTRAINT "STRUCTURE_PK" PRIMARY KEY ("ID") ENABLE, - CONSTRAINT "STRUCTURE_CODE_UN" UNIQUE ("CODE", "HISTO_DESTRUCTION") ENABLE, +CREATE TABLE "STRUCTURE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE_LONG" VARCHAR2(60 CHAR) NOT NULL ENABLE, + "LIBELLE_COURT" VARCHAR2(25 CHAR) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "CONTACT_PJ" VARCHAR2(255 CHAR), + "AFF_ADRESSE_CONTRAT" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, + "ENSEIGNEMENT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, + CONSTRAINT "STRUCTURE_PK" PRIMARY KEY ("ID") ENABLE, + CONSTRAINT "STRUCTURE_CODE_UN" UNIQUE ("CODE", "HISTO_DESTRUCTION") ENABLE, CONSTRAINT "STRUCTURE_SOURCE_CODE_UN" UNIQUE ("SOURCE_CODE", "HISTO_DESTRUCTION") ENABLE ) ; -- SYNC_LOG -CREATE TABLE "SYNC_LOG" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "DATE_SYNC" TIMESTAMP (6) NOT NULL ENABLE, - "MESSAGE" CLOB NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(200 CHAR), - "TABLE_NAME" VARCHAR2(30 CHAR), +CREATE TABLE "SYNC_LOG" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "DATE_SYNC" TIMESTAMP (6) NOT NULL ENABLE, + "MESSAGE" CLOB NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(200 CHAR), + "TABLE_NAME" VARCHAR2(30 CHAR), CONSTRAINT "SYNC_LOG_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TAUX_HORAIRE_HETD -CREATE TABLE "TAUX_HORAIRE_HETD" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "VALEUR" FLOAT(126) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), +CREATE TABLE "TAUX_HORAIRE_HETD" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "VALEUR" FLOAT(126) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), CONSTRAINT "TAUX_HORAIRE_HETD_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TBL -CREATE TABLE "TBL" - ( "TBL_NAME" VARCHAR2(30 CHAR) NOT NULL ENABLE, - "TABLE_NAME" VARCHAR2(30 CHAR), - "VIEW_NAME" VARCHAR2(30 CHAR), - "SEQUENCE_NAME" VARCHAR2(30 CHAR), - "CONSTRAINT_NAME" VARCHAR2(30 CHAR), - "CUSTOM_CALCUL_PROC" VARCHAR2(100 CHAR), - "ORDRE" NUMBER DEFAULT 1 NOT NULL ENABLE, +CREATE TABLE "TBL" + ( "TBL_NAME" VARCHAR2(30 CHAR) NOT NULL ENABLE, + "TABLE_NAME" VARCHAR2(30 CHAR), + "VIEW_NAME" VARCHAR2(30 CHAR), + "SEQUENCE_NAME" VARCHAR2(30 CHAR), + "CONSTRAINT_NAME" VARCHAR2(30 CHAR), + "CUSTOM_CALCUL_PROC" VARCHAR2(100 CHAR), + "ORDRE" NUMBER DEFAULT 1 NOT NULL ENABLE, CONSTRAINT "TBL_PK" PRIMARY KEY ("TBL_NAME") ENABLE ) ; -- TBL_AGREMENT -CREATE TABLE "TBL_AGREMENT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_AGREMENT_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0), - "OBLIGATOIRE" NUMBER(1,0) NOT NULL ENABLE, - "AGREMENT_ID" NUMBER(*,0), - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "TBL_AGREMENT_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "TBL_AGREMENT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_AGREMENT_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0), + "OBLIGATOIRE" NUMBER(1,0) NOT NULL ENABLE, + "AGREMENT_ID" NUMBER(*,0), + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "TBL_AGREMENT_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "TBL_AGREMENT__UN" UNIQUE ("TYPE_AGREMENT_ID", "INTERVENANT_ID", "STRUCTURE_ID", "TO_DELETE") ENABLE ) ; ALTER TABLE TBL_AGREMENT NOLOGGING; -- TBL_CHARGENS -CREATE TABLE "TBL_CHARGENS" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "NOEUD_ID" NUMBER(*,0) NOT NULL ENABLE, - "SCENARIO_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_HEURES_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, - "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, - "ETAPE_ID" NUMBER(*,0) NOT NULL ENABLE, - "ETAPE_ENS_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "GROUPE_TYPE_FORMATION_ID" NUMBER(*,0) NOT NULL ENABLE, - "OUVERTURE" FLOAT(126) NOT NULL ENABLE, - "DEDOUBLEMENT" FLOAT(126) NOT NULL ENABLE, - "ASSIDUITE" FLOAT(126) NOT NULL ENABLE, - "EFFECTIF" FLOAT(126) NOT NULL ENABLE, - "HEURES_ENS" FLOAT(126) NOT NULL ENABLE, - "GROUPES" FLOAT(126) NOT NULL ENABLE, - "HEURES" FLOAT(126) NOT NULL ENABLE, - "HETD" FLOAT(126) NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "TBL_CHARGENS_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "TBL_CHARGENS" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "NOEUD_ID" NUMBER(*,0) NOT NULL ENABLE, + "SCENARIO_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_HEURES_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, + "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, + "ETAPE_ID" NUMBER(*,0) NOT NULL ENABLE, + "ETAPE_ENS_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "GROUPE_TYPE_FORMATION_ID" NUMBER(*,0) NOT NULL ENABLE, + "OUVERTURE" FLOAT(126) NOT NULL ENABLE, + "DEDOUBLEMENT" FLOAT(126) NOT NULL ENABLE, + "ASSIDUITE" FLOAT(126) NOT NULL ENABLE, + "EFFECTIF" FLOAT(126) NOT NULL ENABLE, + "HEURES_ENS" FLOAT(126) NOT NULL ENABLE, + "GROUPES" FLOAT(126) NOT NULL ENABLE, + "HEURES" FLOAT(126) NOT NULL ENABLE, + "HETD" FLOAT(126) NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "TBL_CHARGENS_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "TBL_CHARGENS__UN" UNIQUE ("ANNEE_ID", "NOEUD_ID", "SCENARIO_ID", "TYPE_HEURES_ID", "TYPE_INTERVENTION_ID", "ELEMENT_PEDAGOGIQUE_ID", "ETAPE_ID", "ETAPE_ENS_ID", "STRUCTURE_ID", "GROUPE_TYPE_FORMATION_ID") ENABLE ) ; ALTER TABLE TBL_CHARGENS NOLOGGING; -- TBL_CHARGENS_SEUILS_DEF -CREATE TABLE "TBL_CHARGENS_SEUILS_DEF" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SCENARIO_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "GROUPE_TYPE_FORMATION_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, - "DEDOUBLEMENT" FLOAT(126) NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "TBL_CHARGENS_SEUILS_DEF_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "TBL_CHARGENS_SEUILS_DEF" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SCENARIO_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "GROUPE_TYPE_FORMATION_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, + "DEDOUBLEMENT" FLOAT(126) NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "TBL_CHARGENS_SEUILS_DEF_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "TBL_CHARGENS_SEUILS_DEF__UN" UNIQUE ("SCENARIO_ID", "TYPE_INTERVENTION_ID", "STRUCTURE_ID", "GROUPE_TYPE_FORMATION_ID", "ANNEE_ID") ENABLE ) ; ALTER TABLE TBL_CHARGENS_SEUILS_DEF NOLOGGING; -- TBL_CLOTURE_REALISE -CREATE TABLE "TBL_CLOTURE_REALISE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "PEUT_CLOTURER_SAISIE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "CLOTURE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "TBL_CLOTURE_REALISE__UN" UNIQUE ("INTERVENANT_ID", "TO_DELETE") ENABLE, +CREATE TABLE "TBL_CLOTURE_REALISE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "PEUT_CLOTURER_SAISIE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "CLOTURE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "TBL_CLOTURE_REALISE__UN" UNIQUE ("INTERVENANT_ID", "TO_DELETE") ENABLE, CONSTRAINT "TBL_CLOTURE_REALISE_PK" PRIMARY KEY ("ID") ENABLE ) ; ALTER TABLE TBL_CLOTURE_REALISE NOLOGGING; -- TBL_CONTRAT -CREATE TABLE "TBL_CONTRAT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "PEUT_AVOIR_CONTRAT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0), - "NBVH" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "EDITE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "SIGNE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "TBL_CONTRAT__UN" UNIQUE ("INTERVENANT_ID", "STRUCTURE_ID", "TO_DELETE") ENABLE, +CREATE TABLE "TBL_CONTRAT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "PEUT_AVOIR_CONTRAT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0), + "NBVH" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "EDITE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "SIGNE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "TBL_CONTRAT__UN" UNIQUE ("INTERVENANT_ID", "STRUCTURE_ID", "TO_DELETE") ENABLE, CONSTRAINT "TBL_CONTRAT_PK" PRIMARY KEY ("ID") ENABLE ) ; ALTER TABLE TBL_CONTRAT NOLOGGING; -- TBL_DEMS -CREATE TABLE "TBL_DEMS" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TBL_NAME" VARCHAR2(30 CHAR) NOT NULL ENABLE, - "C1" VARCHAR2(30 CHAR), - "V1" VARCHAR2(80 CHAR), - "C2" VARCHAR2(30 CHAR), - "V2" VARCHAR2(80 CHAR), - "C3" VARCHAR2(30 CHAR), - "V3" VARCHAR2(80 CHAR), - "C4" VARCHAR2(30 CHAR), - "V4" VARCHAR2(80 CHAR), - "C5" VARCHAR2(30 CHAR), - "V5" VARCHAR2(80 CHAR), +CREATE TABLE "TBL_DEMS" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TBL_NAME" VARCHAR2(30 CHAR) NOT NULL ENABLE, + "C1" VARCHAR2(30 CHAR), + "V1" VARCHAR2(80 CHAR), + "C2" VARCHAR2(30 CHAR), + "V2" VARCHAR2(80 CHAR), + "C3" VARCHAR2(30 CHAR), + "V3" VARCHAR2(80 CHAR), + "C4" VARCHAR2(30 CHAR), + "V4" VARCHAR2(80 CHAR), + "C5" VARCHAR2(30 CHAR), + "V5" VARCHAR2(80 CHAR), "SQLCOND" VARCHAR2(3500 CHAR) ) ; ALTER TABLE TBL_DEMS NOLOGGING; -- TBL_DMEP_LIQUIDATION -CREATE TABLE "TBL_DMEP_LIQUIDATION" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_RESSOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "HEURES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "TBL_DMEP_LIQUIDATION_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "TBL_DMEP_LIQUIDATION" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_RESSOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "HEURES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "TBL_DMEP_LIQUIDATION_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "TBL_DMEP_LIQUIDATION__UN" UNIQUE ("ANNEE_ID", "TYPE_RESSOURCE_ID", "STRUCTURE_ID", "TO_DELETE") ENABLE ) ; ALTER TABLE TBL_DMEP_LIQUIDATION NOLOGGING; -- TBL_DOSSIER -CREATE TABLE "TBL_DOSSIER" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "PEUT_SAISIR_DOSSIER" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "DOSSIER_ID" NUMBER(*,0), - "VALIDATION_ID" NUMBER(*,0), - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "TBL_DOSSIER__UN" UNIQUE ("INTERVENANT_ID", "TO_DELETE") ENABLE, +CREATE TABLE "TBL_DOSSIER" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "PEUT_SAISIR_DOSSIER" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "DOSSIER_ID" NUMBER(*,0), + "VALIDATION_ID" NUMBER(*,0), + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "TBL_DOSSIER__UN" UNIQUE ("INTERVENANT_ID", "TO_DELETE") ENABLE, CONSTRAINT "TBL_DOSSIER_PK" PRIMARY KEY ("ID") ENABLE ) ; ALTER TABLE TBL_DOSSIER NOLOGGING; -- TBL_LIEN -CREATE TABLE "TBL_LIEN" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIEN_ID" NUMBER(*,0) NOT NULL ENABLE, - "SCENARIO_ID" NUMBER NOT NULL ENABLE, - "SCENARIO_LIEN_ID" NUMBER(*,0), - "NOEUD_SUP_ID" NUMBER(*,0) NOT NULL ENABLE, - "NOEUD_INF_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0), - "ACTIF" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, - "POIDS" NUMBER DEFAULT 1 NOT NULL ENABLE, - "CHOIX_MINIMUM" NUMBER, - "CHOIX_MAXIMUM" NUMBER, - "NB_CHOIX" NUMBER DEFAULT 1 NOT NULL ENABLE, - "TOTAL_POIDS" FLOAT(126) DEFAULT 1 NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "MAX_POIDS" NUMBER DEFAULT 1 NOT NULL ENABLE, +CREATE TABLE "TBL_LIEN" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIEN_ID" NUMBER(*,0) NOT NULL ENABLE, + "SCENARIO_ID" NUMBER NOT NULL ENABLE, + "SCENARIO_LIEN_ID" NUMBER(*,0), + "NOEUD_SUP_ID" NUMBER(*,0) NOT NULL ENABLE, + "NOEUD_INF_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0), + "ACTIF" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, + "POIDS" NUMBER DEFAULT 1 NOT NULL ENABLE, + "CHOIX_MINIMUM" NUMBER, + "CHOIX_MAXIMUM" NUMBER, + "NB_CHOIX" NUMBER DEFAULT 1 NOT NULL ENABLE, + "TOTAL_POIDS" FLOAT(126) DEFAULT 1 NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "MAX_POIDS" NUMBER DEFAULT 1 NOT NULL ENABLE, CONSTRAINT "TBL_LIEN_PK" PRIMARY KEY ("ID") ENABLE ) ; ALTER TABLE TBL_LIEN NOLOGGING; -- TBL_PAIEMENT -CREATE TABLE "TBL_PAIEMENT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "MISE_EN_PAIEMENT_ID" NUMBER(*,0), - "PERIODE_PAIEMENT_ID" NUMBER(*,0), - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "HEURES_A_PAYER" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HEURES_A_PAYER_POND" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HEURES_DEMANDEES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HEURES_PAYEES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "FORMULE_RES_SERVICE_ID" NUMBER(*,0), - "FORMULE_RES_SERVICE_REF_ID" NUMBER(*,0), - CONSTRAINT "TBL_PAIEMENT_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "TBL_PAIEMENT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "MISE_EN_PAIEMENT_ID" NUMBER(*,0), + "PERIODE_PAIEMENT_ID" NUMBER(*,0), + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "HEURES_A_PAYER" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HEURES_A_PAYER_POND" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HEURES_DEMANDEES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HEURES_PAYEES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "FORMULE_RES_SERVICE_ID" NUMBER(*,0), + "FORMULE_RES_SERVICE_REF_ID" NUMBER(*,0), + CONSTRAINT "TBL_PAIEMENT_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "TBL_PAIEMENT__UN" UNIQUE ("INTERVENANT_ID", "TO_DELETE", "MISE_EN_PAIEMENT_ID", "FORMULE_RES_SERVICE_ID", "FORMULE_RES_SERVICE_REF_ID") ENABLE ) ; ALTER TABLE TBL_PAIEMENT NOLOGGING; -- TBL_PIECE_JOINTE -CREATE TABLE "TBL_PIECE_JOINTE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_PIECE_JOINTE_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "DEMANDEE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "FOURNIE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "VALIDEE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "HEURES_POUR_SEUIL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "TBL_PIECE_JOINTE__UN" UNIQUE ("TYPE_PIECE_JOINTE_ID", "INTERVENANT_ID", "TO_DELETE") ENABLE, +CREATE TABLE "TBL_PIECE_JOINTE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_PIECE_JOINTE_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "DEMANDEE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "FOURNIE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "VALIDEE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "HEURES_POUR_SEUIL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "TBL_PIECE_JOINTE__UN" UNIQUE ("TYPE_PIECE_JOINTE_ID", "INTERVENANT_ID", "TO_DELETE") ENABLE, CONSTRAINT "TBL_PIECE_JOINTE_PK" PRIMARY KEY ("ID") ENABLE ) ; ALTER TABLE TBL_PIECE_JOINTE NOLOGGING; -- TBL_PIECE_JOINTE_DEMANDE -CREATE TABLE "TBL_PIECE_JOINTE_DEMANDE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_PIECE_JOINTE_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "HEURES_POUR_SEUIL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "TBL_PIECE_JOINTE_DEMANDE__UN" UNIQUE ("TYPE_PIECE_JOINTE_ID", "INTERVENANT_ID", "TO_DELETE") ENABLE, +CREATE TABLE "TBL_PIECE_JOINTE_DEMANDE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_PIECE_JOINTE_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "HEURES_POUR_SEUIL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "TBL_PIECE_JOINTE_DEMANDE__UN" UNIQUE ("TYPE_PIECE_JOINTE_ID", "INTERVENANT_ID", "TO_DELETE") ENABLE, CONSTRAINT "TBL_PIECE_JOINTE_DEMANDE_PK" PRIMARY KEY ("ID") ENABLE ) ; ALTER TABLE TBL_PIECE_JOINTE_DEMANDE NOLOGGING; -- TBL_PIECE_JOINTE_FOURNIE -CREATE TABLE "TBL_PIECE_JOINTE_FOURNIE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_PIECE_JOINTE_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "VALIDATION_ID" NUMBER(*,0), - "FICHIER_ID" NUMBER(*,0), - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "PIECE_JOINTE_ID" NUMBER(*,0) NOT NULL ENABLE, - CONSTRAINT "TBL_PIECE_JOINTE_FOURNIE_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "TBL_PIECE_JOINTE_FOURNIE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_PIECE_JOINTE_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "VALIDATION_ID" NUMBER(*,0), + "FICHIER_ID" NUMBER(*,0), + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "PIECE_JOINTE_ID" NUMBER(*,0) NOT NULL ENABLE, + CONSTRAINT "TBL_PIECE_JOINTE_FOURNIE_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "TBL_PIECE_JOINTE_FOURNIE__UN" UNIQUE ("TYPE_PIECE_JOINTE_ID", "INTERVENANT_ID", "VALIDATION_ID", "FICHIER_ID") ENABLE ) ; ALTER TABLE TBL_PIECE_JOINTE_FOURNIE NOLOGGING; -- TBL_SERVICE -CREATE TABLE "TBL_SERVICE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "PEUT_SAISIR_SERVICE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0), - "STRUCTURE_ID" NUMBER(*,0), - "NBVH" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "VALIDE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0), - "ELEMENT_PEDAGOGIQUE_PERIODE_ID" NUMBER(*,0), - "ETAPE_ID" NUMBER(*,0), - "ELEMENT_PEDAGOGIQUE_HISTO" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, - "ETAPE_HISTO" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, - "HAS_HEURES_MAUVAISE_PERIODE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "SERVICE_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_INTERVENANT_CODE" VARCHAR2(5 CHAR) NOT NULL ENABLE, - "TYPE_VOLUME_HORAIRE_CODE" VARCHAR2(15 CHAR), - "HEURES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "TBL_SERVICE__UN" UNIQUE ("SERVICE_ID", "TYPE_VOLUME_HORAIRE_ID", "TO_DELETE") ENABLE, +CREATE TABLE "TBL_SERVICE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "PEUT_SAISIR_SERVICE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0), + "STRUCTURE_ID" NUMBER(*,0), + "NBVH" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "VALIDE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0), + "ELEMENT_PEDAGOGIQUE_PERIODE_ID" NUMBER(*,0), + "ETAPE_ID" NUMBER(*,0), + "ELEMENT_PEDAGOGIQUE_HISTO" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, + "ETAPE_HISTO" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, + "HAS_HEURES_MAUVAISE_PERIODE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "SERVICE_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_INTERVENANT_CODE" VARCHAR2(5 CHAR) NOT NULL ENABLE, + "TYPE_VOLUME_HORAIRE_CODE" VARCHAR2(15 CHAR), + "HEURES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "TBL_SERVICE__UN" UNIQUE ("SERVICE_ID", "TYPE_VOLUME_HORAIRE_ID", "TO_DELETE") ENABLE, CONSTRAINT "TBL_SERVICE_PK" PRIMARY KEY ("ID") ENABLE ) ; ALTER TABLE TBL_SERVICE NOLOGGING; -- TBL_SERVICE_REFERENTIEL -CREATE TABLE "TBL_SERVICE_REFERENTIEL" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "PEUT_SAISIR_SERVICE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0), - "STRUCTURE_ID" NUMBER(*,0), - "NBVH" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "VALIDE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "TBL_SERVICE_REFERENTIEL_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "TBL_SERVICE_REFERENTIEL" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "PEUT_SAISIR_SERVICE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0), + "STRUCTURE_ID" NUMBER(*,0), + "NBVH" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "VALIDE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "TBL_SERVICE_REFERENTIEL_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "TBL_SERVICE_REFERENTIEL__UN" UNIQUE ("INTERVENANT_ID", "TYPE_VOLUME_HORAIRE_ID", "STRUCTURE_ID", "TO_DELETE") ENABLE ) ; ALTER TABLE TBL_SERVICE_REFERENTIEL NOLOGGING; -- TBL_SERVICE_SAISIE -CREATE TABLE "TBL_SERVICE_SAISIE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "PEUT_SAISIR_SERVICE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "PEUT_SAISIR_REFERENTIEL" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "HEURES_SERVICE_PREV" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HEURES_REFERENTIEL_PREV" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HEURES_SERVICE_REAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HEURES_REFERENTIEL_REAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "TBL_SERVICE_SAISIE__UN" UNIQUE ("INTERVENANT_ID", "TO_DELETE") ENABLE, +CREATE TABLE "TBL_SERVICE_SAISIE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "PEUT_SAISIR_SERVICE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "PEUT_SAISIR_REFERENTIEL" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "HEURES_SERVICE_PREV" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HEURES_REFERENTIEL_PREV" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HEURES_SERVICE_REAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HEURES_REFERENTIEL_REAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "TBL_SERVICE_SAISIE__UN" UNIQUE ("INTERVENANT_ID", "TO_DELETE") ENABLE, CONSTRAINT "TBL_SERVICE_SAISIE_PK" PRIMARY KEY ("ID") ENABLE ) ; ALTER TABLE TBL_SERVICE_SAISIE NOLOGGING; -- TBL_VALIDATION_ENSEIGNEMENT -CREATE TABLE "TBL_VALIDATION_ENSEIGNEMENT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SERVICE_ID" NUMBER(*,0) NOT NULL ENABLE, - "VALIDATION_ID" NUMBER(*,0), - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, - CONSTRAINT "TBL_VALIDATION_ENSEIGNEMENT_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "TBL_VALIDATION_ENSEIGNEMENT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SERVICE_ID" NUMBER(*,0) NOT NULL ENABLE, + "VALIDATION_ID" NUMBER(*,0), + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, + CONSTRAINT "TBL_VALIDATION_ENSEIGNEMENT_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "TBL_VALIDATION_ENSEIGNEMENT_UN" UNIQUE ("INTERVENANT_ID", "STRUCTURE_ID", "TYPE_VOLUME_HORAIRE_ID", "SERVICE_ID", "VOLUME_HORAIRE_ID", "VALIDATION_ID", "TO_DELETE") ENABLE ) ; ALTER TABLE TBL_VALIDATION_ENSEIGNEMENT NOLOGGING; -- TBL_VALIDATION_REFERENTIEL -CREATE TABLE "TBL_VALIDATION_REFERENTIEL" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SERVICE_REFERENTIEL_ID" NUMBER(*,0) NOT NULL ENABLE, - "VALIDATION_ID" NUMBER(*,0), - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "VOLUME_HORAIRE_REF_ID" NUMBER(*,0) NOT NULL ENABLE, - CONSTRAINT "TBL_VALIDATION_REFERENTIEL_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "TBL_VALIDATION_REFERENTIEL" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SERVICE_REFERENTIEL_ID" NUMBER(*,0) NOT NULL ENABLE, + "VALIDATION_ID" NUMBER(*,0), + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "VOLUME_HORAIRE_REF_ID" NUMBER(*,0) NOT NULL ENABLE, + CONSTRAINT "TBL_VALIDATION_REFERENTIEL_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "TBL_VALIDATION_REFERENTIEL__UN" UNIQUE ("INTERVENANT_ID", "STRUCTURE_ID", "TYPE_VOLUME_HORAIRE_ID", "SERVICE_REFERENTIEL_ID", "VOLUME_HORAIRE_REF_ID", "VALIDATION_ID", "TO_DELETE") ENABLE ) ; ALTER TABLE TBL_VALIDATION_REFERENTIEL NOLOGGING; -- TBL_WORKFLOW -CREATE TABLE "TBL_WORKFLOW" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "ETAPE_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) DEFAULT null, - "ATTEIGNABLE" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "REALISATION" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "OBJECTIF" FLOAT(126) DEFAULT 1 NOT NULL ENABLE, - "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_INTERVENANT_CODE" VARCHAR2(5 CHAR) NOT NULL ENABLE, - "ETAPE_CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, - "STATUT_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, +CREATE TABLE "TBL_WORKFLOW" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "ETAPE_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) DEFAULT null, + "ATTEIGNABLE" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "REALISATION" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "OBJECTIF" FLOAT(126) DEFAULT 1 NOT NULL ENABLE, + "ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_INTERVENANT_CODE" VARCHAR2(5 CHAR) NOT NULL ENABLE, + "ETAPE_CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, + "STATUT_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, CONSTRAINT "TBL_WORKFLOW_PK" PRIMARY KEY ("ID") ENABLE ) ; ALTER TABLE TBL_WORKFLOW NOLOGGING; -- TEST_BUFFER -CREATE TABLE "TEST_BUFFER" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TABLE_NAME" VARCHAR2(30 CHAR) NOT NULL ENABLE, - "DATA_ID" NUMBER(*,0) NOT NULL ENABLE, +CREATE TABLE "TEST_BUFFER" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TABLE_NAME" VARCHAR2(30 CHAR) NOT NULL ENABLE, + "DATA_ID" NUMBER(*,0) NOT NULL ENABLE, CONSTRAINT "TEST_BUFFER_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TMP_SCENARIO_NOEUD_EFFECTIF -CREATE GLOBAL TEMPORARY TABLE "TMP_SCENARIO_NOEUD_EFFECTIF" - ( "SCENARIO_NOEUD_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_HEURES_ID" NUMBER(*,0) NOT NULL ENABLE, - "ETAPE_ID" NUMBER(*,0) NOT NULL ENABLE, +CREATE GLOBAL TEMPORARY TABLE "TMP_SCENARIO_NOEUD_EFFECTIF" + ( "SCENARIO_NOEUD_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_HEURES_ID" NUMBER(*,0) NOT NULL ENABLE, + "ETAPE_ID" NUMBER(*,0) NOT NULL ENABLE, "EFFECTIF" FLOAT(126) ) ON COMMIT DELETE ROWS ; -- TYPE_AGREMENT -CREATE TABLE "TYPE_AGREMENT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(60 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(256 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "TYPE_AGREMENT_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "TYPE_AGREMENT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(60 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(256 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "TYPE_AGREMENT_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "TYPE_AGREMENT__UN" UNIQUE ("CODE") ENABLE ) ; -- TYPE_AGREMENT_STATUT -CREATE TABLE "TYPE_AGREMENT_STATUT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_AGREMENT_ID" NUMBER(*,0) NOT NULL ENABLE, - "STATUT_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "OBLIGATOIRE" NUMBER(*,0) NOT NULL ENABLE, - "PREMIER_RECRUTEMENT" NUMBER(1,0) DEFAULT NULL, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "TYPE_AGREMENT_STATUT_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "TYPE_AGREMENT_STATUT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_AGREMENT_ID" NUMBER(*,0) NOT NULL ENABLE, + "STATUT_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "OBLIGATOIRE" NUMBER(*,0) NOT NULL ENABLE, + "PREMIER_RECRUTEMENT" NUMBER(1,0) DEFAULT NULL, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "TYPE_AGREMENT_STATUT_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "TYPE_AGREMENT_STATUT__UN" UNIQUE ("TYPE_AGREMENT_ID", "STATUT_INTERVENANT_ID", "PREMIER_RECRUTEMENT") ENABLE ) ; -- TYPE_CONTRAT -CREATE TABLE "TYPE_CONTRAT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(15 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(60 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), +CREATE TABLE "TYPE_CONTRAT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(15 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(60 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), CONSTRAINT "TYPE_CONTRAT_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TYPE_DOTATION -CREATE TABLE "TYPE_DOTATION" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "TYPE_RESSOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, +CREATE TABLE "TYPE_DOTATION" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "TYPE_RESSOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, CONSTRAINT "TYPE_DOTATION_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TYPE_FORMATION -CREATE TABLE "TYPE_FORMATION" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "LIBELLE_LONG" VARCHAR2(80 CHAR) NOT NULL ENABLE, - "LIBELLE_COURT" VARCHAR2(15 CHAR) NOT NULL ENABLE, - "GROUPE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "TYPE_FORMATION__UN" UNIQUE ("SOURCE_CODE") ENABLE, +CREATE TABLE "TYPE_FORMATION" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "LIBELLE_LONG" VARCHAR2(80 CHAR) NOT NULL ENABLE, + "LIBELLE_COURT" VARCHAR2(15 CHAR) NOT NULL ENABLE, + "GROUPE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "TYPE_FORMATION__UN" UNIQUE ("SOURCE_CODE") ENABLE, CONSTRAINT "TYPE_FORMATION_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TYPE_HEURES -CREATE TABLE "TYPE_HEURES" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(20 CHAR) NOT NULL ENABLE, - "LIBELLE_COURT" VARCHAR2(15 CHAR) NOT NULL ENABLE, - "LIBELLE_LONG" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "ORDRE" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_HEURES_ELEMENT_ID" NUMBER(*,0) NOT NULL ENABLE, - "ELIGIBLE_CENTRE_COUT_EP" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, - "ELIGIBLE_EXTRACTION_PAIE" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "ENSEIGNEMENT" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, - CONSTRAINT "TYPE_HEURES_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "TYPE_HEURES" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(20 CHAR) NOT NULL ENABLE, + "LIBELLE_COURT" VARCHAR2(15 CHAR) NOT NULL ENABLE, + "LIBELLE_LONG" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "ORDRE" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_HEURES_ELEMENT_ID" NUMBER(*,0) NOT NULL ENABLE, + "ELIGIBLE_CENTRE_COUT_EP" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, + "ELIGIBLE_EXTRACTION_PAIE" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "ENSEIGNEMENT" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, + CONSTRAINT "TYPE_HEURES_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "TYPE_HEURES_UN" UNIQUE ("CODE") ENABLE ) ; -- TYPE_INTERVENANT -CREATE TABLE "TYPE_INTERVENANT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(1 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(50 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "TYPE_INTERVENANT_CODE_UN" UNIQUE ("CODE") ENABLE, +CREATE TABLE "TYPE_INTERVENANT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(1 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(50 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "TYPE_INTERVENANT_CODE_UN" UNIQUE ("CODE") ENABLE, CONSTRAINT "TYPE_INTERVENANT_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TYPE_INTERVENTION -CREATE TABLE "TYPE_INTERVENTION" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(10 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(60 CHAR) NOT NULL ENABLE, - "ORDRE" NUMBER(*,0) NOT NULL ENABLE, - "TAUX_HETD_SERVICE" FLOAT(126) DEFAULT 1 NOT NULL ENABLE, - "TAUX_HETD_COMPLEMENTAIRE" FLOAT(126) DEFAULT 1 NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "VISIBLE" NUMBER(1,0) NOT NULL ENABLE, - "ANNEE_DEBUT_ID" NUMBER(*,0), - "ANNEE_FIN_ID" NUMBER(*,0), - "REGLE_FOAD" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "REGLE_FC" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "TYPE_INTERVENTION_MAQUETTE_ID" NUMBER(*,0), +CREATE TABLE "TYPE_INTERVENTION" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(10 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(60 CHAR) NOT NULL ENABLE, + "ORDRE" NUMBER(*,0) NOT NULL ENABLE, + "TAUX_HETD_SERVICE" FLOAT(126) DEFAULT 1 NOT NULL ENABLE, + "TAUX_HETD_COMPLEMENTAIRE" FLOAT(126) DEFAULT 1 NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "VISIBLE" NUMBER(1,0) NOT NULL ENABLE, + "ANNEE_DEBUT_ID" NUMBER(*,0), + "ANNEE_FIN_ID" NUMBER(*,0), + "REGLE_FOAD" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "REGLE_FC" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "TYPE_INTERVENTION_MAQUETTE_ID" NUMBER(*,0), CONSTRAINT "TYPE_INTERVENTION_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TYPE_INTERVENTION_EP -CREATE TABLE "TYPE_INTERVENTION_EP" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, - "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), +CREATE TABLE "TYPE_INTERVENTION_EP" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, + "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), CONSTRAINT "TYPE_INTERVENTION_EP_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TYPE_INTERVENTION_STRUCTURE -CREATE TABLE "TYPE_INTERVENTION_STRUCTURE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "VISIBLE" NUMBER(1,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "ANNEE_DEBUT_ID" NUMBER(*,0), - "ANNEE_FIN_ID" NUMBER(*,0), +CREATE TABLE "TYPE_INTERVENTION_STRUCTURE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "VISIBLE" NUMBER(1,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "ANNEE_DEBUT_ID" NUMBER(*,0), + "ANNEE_FIN_ID" NUMBER(*,0), CONSTRAINT "TYPE_INTERVENTION_STRUCTURE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TYPE_MODULATEUR -CREATE TABLE "TYPE_MODULATEUR" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(10 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(50 CHAR) NOT NULL ENABLE, - "PUBLIQUE" NUMBER(1,0) NOT NULL ENABLE, - "OBLIGATOIRE" NUMBER(1,0) NOT NULL ENABLE, - "SAISIE_PAR_ENSEIGNANT" NUMBER(1,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), +CREATE TABLE "TYPE_MODULATEUR" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(10 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(50 CHAR) NOT NULL ENABLE, + "PUBLIQUE" NUMBER(1,0) NOT NULL ENABLE, + "OBLIGATOIRE" NUMBER(1,0) NOT NULL ENABLE, + "SAISIE_PAR_ENSEIGNANT" NUMBER(1,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), CONSTRAINT "TYPE_MODULATEUR_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TYPE_MODULATEUR_EP -CREATE TABLE "TYPE_MODULATEUR_EP" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_MODULATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - CONSTRAINT "TYPE_MODULATEUR_EP_PK" PRIMARY KEY ("ID") ENABLE, - CONSTRAINT "TYPE_MODULATEUR_EP__UN" UNIQUE ("SOURCE_CODE") ENABLE, +CREATE TABLE "TYPE_MODULATEUR_EP" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_MODULATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + CONSTRAINT "TYPE_MODULATEUR_EP_PK" PRIMARY KEY ("ID") ENABLE, + CONSTRAINT "TYPE_MODULATEUR_EP__UN" UNIQUE ("SOURCE_CODE") ENABLE, CONSTRAINT "TYPE_MODULATEUR_EP__UNV1" UNIQUE ("TYPE_MODULATEUR_ID", "ELEMENT_PEDAGOGIQUE_ID") ENABLE ) ; -- TYPE_MODULATEUR_STRUCTURE -CREATE TABLE "TYPE_MODULATEUR_STRUCTURE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_MODULATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "ANNEE_DEBUT_ID" NUMBER(*,0), - "ANNEE_FIN_ID" NUMBER(*,0), - CONSTRAINT "TYPE_MODULATEUR_STRUCTURE_UN" UNIQUE ("TYPE_MODULATEUR_ID", "STRUCTURE_ID") ENABLE, +CREATE TABLE "TYPE_MODULATEUR_STRUCTURE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_MODULATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "ANNEE_DEBUT_ID" NUMBER(*,0), + "ANNEE_FIN_ID" NUMBER(*,0), + CONSTRAINT "TYPE_MODULATEUR_STRUCTURE_UN" UNIQUE ("TYPE_MODULATEUR_ID", "STRUCTURE_ID") ENABLE, CONSTRAINT "TYPE_MODULATEUR_STRUCTURE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TYPE_PIECE_JOINTE -CREATE TABLE "TYPE_PIECE_JOINTE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(64 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(150 CHAR) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "URL_MODELE_DOC" VARCHAR2(256 CHAR), - "ORDRE" NUMBER DEFAULT 1 NOT NULL ENABLE, +CREATE TABLE "TYPE_PIECE_JOINTE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(64 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(150 CHAR) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "URL_MODELE_DOC" VARCHAR2(256 CHAR), + "ORDRE" NUMBER DEFAULT 1 NOT NULL ENABLE, CONSTRAINT "TYPE_PIECE_JOINTE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TYPE_PIECE_JOINTE_STATUT -CREATE TABLE "TYPE_PIECE_JOINTE_STATUT" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_PIECE_JOINTE_ID" NUMBER(*,0) NOT NULL ENABLE, - "STATUT_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "OBLIGATOIRE" NUMBER(*,0) NOT NULL ENABLE, - "SEUIL_HETD" NUMBER(*,0), - "PREMIER_RECRUTEMENT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "ANNEE_DEBUT_ID" NUMBER(*,0), - "ANNEE_FIN_ID" NUMBER(*,0), - "FC" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "CHANGEMENT_RIB" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, +CREATE TABLE "TYPE_PIECE_JOINTE_STATUT" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_PIECE_JOINTE_ID" NUMBER(*,0) NOT NULL ENABLE, + "STATUT_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "OBLIGATOIRE" NUMBER(*,0) NOT NULL ENABLE, + "SEUIL_HETD" NUMBER(*,0), + "PREMIER_RECRUTEMENT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "ANNEE_DEBUT_ID" NUMBER(*,0), + "ANNEE_FIN_ID" NUMBER(*,0), + "FC" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "CHANGEMENT_RIB" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, CONSTRAINT "TYPE_PIECE_JOINTE_STATUT_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TYPE_RESSOURCE -CREATE TABLE "TYPE_RESSOURCE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, - "FI" NUMBER(1,0) NOT NULL ENABLE, - "FA" NUMBER(1,0) NOT NULL ENABLE, - "FC" NUMBER(1,0) NOT NULL ENABLE, - "FC_MAJOREES" NUMBER(1,0) NOT NULL ENABLE, - "REFERENTIEL" NUMBER(1,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "ETABLISSEMENT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, +CREATE TABLE "TYPE_RESSOURCE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE, + "FI" NUMBER(1,0) NOT NULL ENABLE, + "FA" NUMBER(1,0) NOT NULL ENABLE, + "FC" NUMBER(1,0) NOT NULL ENABLE, + "FC_MAJOREES" NUMBER(1,0) NOT NULL ENABLE, + "REFERENTIEL" NUMBER(1,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "ETABLISSEMENT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, CONSTRAINT "TYPE_RESSOURCE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TYPE_VALIDATION -CREATE TABLE "TYPE_VALIDATION" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(25 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(60 CHAR), +CREATE TABLE "TYPE_VALIDATION" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(25 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(60 CHAR), CONSTRAINT "TYPE_VALIDATION_PK" PRIMARY KEY ("ID") ENABLE ) ; -- TYPE_VOLUME_HORAIRE -CREATE TABLE "TYPE_VOLUME_HORAIRE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(15 CHAR) NOT NULL ENABLE, - "LIBELLE" VARCHAR2(60 CHAR) NOT NULL ENABLE, - "ORDRE" NUMBER NOT NULL ENABLE, - CONSTRAINT "TYPE_VOLUME_HORAIRE_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "TYPE_VOLUME_HORAIRE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(15 CHAR) NOT NULL ENABLE, + "LIBELLE" VARCHAR2(60 CHAR) NOT NULL ENABLE, + "ORDRE" NUMBER NOT NULL ENABLE, + CONSTRAINT "TYPE_VOLUME_HORAIRE_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "TYPE_VOLUME_HORAIRE__UN" UNIQUE ("CODE") ENABLE ) ; -- UTILISATEUR -CREATE TABLE "UTILISATEUR" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "USERNAME" VARCHAR2(255 CHAR) NOT NULL ENABLE, - "EMAIL" VARCHAR2(255 CHAR), - "DISPLAY_NAME" VARCHAR2(64 CHAR) NOT NULL ENABLE, - "PASSWORD" VARCHAR2(128 CHAR) NOT NULL ENABLE, - "STATE" NUMBER NOT NULL ENABLE, - "CODE" VARCHAR2(60 CHAR), - CONSTRAINT "UTILISATEUR_USERNAME_UN" UNIQUE ("USERNAME") ENABLE, +CREATE TABLE "UTILISATEUR" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "USERNAME" VARCHAR2(255 CHAR) NOT NULL ENABLE, + "EMAIL" VARCHAR2(255 CHAR), + "DISPLAY_NAME" VARCHAR2(64 CHAR) NOT NULL ENABLE, + "PASSWORD" VARCHAR2(128 CHAR) NOT NULL ENABLE, + "STATE" NUMBER NOT NULL ENABLE, + "CODE" VARCHAR2(60 CHAR), + CONSTRAINT "UTILISATEUR_USERNAME_UN" UNIQUE ("USERNAME") ENABLE, CONSTRAINT "UTILISATEUR_PK" PRIMARY KEY ("ID") ENABLE ) ; -- VALIDATION -CREATE TABLE "VALIDATION" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_VALIDATION_ID" NUMBER(*,0) NOT NULL ENABLE, - "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, - "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), +CREATE TABLE "VALIDATION" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_VALIDATION_ID" NUMBER(*,0) NOT NULL ENABLE, + "INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE, + "STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), CONSTRAINT "VALIDATION_PK" PRIMARY KEY ("ID") ENABLE ) ; -- VALIDATION_VOL_HORAIRE -CREATE TABLE "VALIDATION_VOL_HORAIRE" - ( "VALIDATION_ID" NUMBER(*,0) NOT NULL ENABLE, - "VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, +CREATE TABLE "VALIDATION_VOL_HORAIRE" + ( "VALIDATION_ID" NUMBER(*,0) NOT NULL ENABLE, + "VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, CONSTRAINT "VALIDATION_VOL_HORAIRE_PK" PRIMARY KEY ("VALIDATION_ID", "VOLUME_HORAIRE_ID") ENABLE ) ; -- VALIDATION_VOL_HORAIRE_REF -CREATE TABLE "VALIDATION_VOL_HORAIRE_REF" - ( "VALIDATION_ID" NUMBER(*,0) NOT NULL ENABLE, - "VOLUME_HORAIRE_REF_ID" NUMBER(*,0) NOT NULL ENABLE, +CREATE TABLE "VALIDATION_VOL_HORAIRE_REF" + ( "VALIDATION_ID" NUMBER(*,0) NOT NULL ENABLE, + "VOLUME_HORAIRE_REF_ID" NUMBER(*,0) NOT NULL ENABLE, CONSTRAINT "VALIDATION_VOL_HORAIRE_REF_PK" PRIMARY KEY ("VALIDATION_ID", "VOLUME_HORAIRE_REF_ID") ENABLE ) ; +-- VERSION +CREATE TABLE "VERSION" + ( "NUMERO" NUMBER NOT NULL ENABLE, + CONSTRAINT "VERSION_PK" PRIMARY KEY ("NUMERO") ENABLE + ) ; + -- VOLUME_HORAIRE -CREATE TABLE "VOLUME_HORAIRE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SERVICE_ID" NUMBER(*,0) NOT NULL ENABLE, - "PERIODE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, - "HEURES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "MOTIF_NON_PAIEMENT_ID" NUMBER(*,0), - "CONTRAT_ID" NUMBER(*,0), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), +CREATE TABLE "VOLUME_HORAIRE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SERVICE_ID" NUMBER(*,0) NOT NULL ENABLE, + "PERIODE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, + "HEURES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "MOTIF_NON_PAIEMENT_ID" NUMBER(*,0), + "CONTRAT_ID" NUMBER(*,0), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), CONSTRAINT "VOLUME_HORAIRE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- VOLUME_HORAIRE_CHARGE -CREATE TABLE "VOLUME_HORAIRE_CHARGE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "SCENARIO_ID" NUMBER(*,0) NOT NULL ENABLE, - "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, - "GROUPES" NUMBER(*,0) DEFAULT 0 NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER, - CONSTRAINT "VOLUME_HORAIRE_CHARGE_PK" PRIMARY KEY ("ID") ENABLE, - CONSTRAINT "VHC_HISTO_UN" UNIQUE ("SOURCE_CODE", "HISTO_DESTRUCTION") ENABLE, +CREATE TABLE "VOLUME_HORAIRE_CHARGE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "SCENARIO_ID" NUMBER(*,0) NOT NULL ENABLE, + "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, + "GROUPES" NUMBER(*,0) DEFAULT 0 NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER, + CONSTRAINT "VOLUME_HORAIRE_CHARGE_PK" PRIMARY KEY ("ID") ENABLE, + CONSTRAINT "VHC_HISTO_UN" UNIQUE ("SOURCE_CODE", "HISTO_DESTRUCTION") ENABLE, CONSTRAINT "VOLUME_HORAIRE_CHARGE__UN" UNIQUE ("ELEMENT_PEDAGOGIQUE_ID", "TYPE_INTERVENTION_ID", "HISTO_DESTRUCTION") ENABLE ) ; -- VOLUME_HORAIRE_ENS -CREATE TABLE "VOLUME_HORAIRE_ENS" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, - "HEURES" FLOAT(126) NOT NULL ENABLE, - "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SOURCE_CODE" VARCHAR2(100 CHAR), - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), - "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, - "GROUPES" FLOAT(126), - CONSTRAINT "VOLUME_HORAIRE_ENS_UK1" UNIQUE ("SOURCE_CODE", "HISTO_DESTRUCTION") ENABLE, +CREATE TABLE "VOLUME_HORAIRE_ENS" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE, + "HEURES" FLOAT(126) NOT NULL ENABLE, + "SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SOURCE_CODE" VARCHAR2(100 CHAR), + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), + "ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE, + "GROUPES" FLOAT(126), + CONSTRAINT "VOLUME_HORAIRE_ENS_UK1" UNIQUE ("SOURCE_CODE", "HISTO_DESTRUCTION") ENABLE, CONSTRAINT "VOLUME_HORAIRE_ENS_PK" PRIMARY KEY ("ID") ENABLE ) ; -- VOLUME_HORAIRE_REF -CREATE TABLE "VOLUME_HORAIRE_REF" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, - "SERVICE_REFERENTIEL_ID" NUMBER(*,0) NOT NULL ENABLE, - "HEURES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, - "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, - "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, - "HISTO_DESTRUCTION" DATE, - "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), +CREATE TABLE "VOLUME_HORAIRE_REF" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE, + "SERVICE_REFERENTIEL_ID" NUMBER(*,0) NOT NULL ENABLE, + "HEURES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE, + "HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE, + "HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE, + "HISTO_DESTRUCTION" DATE, + "HISTO_DESTRUCTEUR_ID" NUMBER(*,0), CONSTRAINT "VOLUME_HORAIRE_REF_PK" PRIMARY KEY ("ID") ENABLE ) ; -- WF_DEP_BLOQUANTE -CREATE TABLE "WF_DEP_BLOQUANTE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "WF_ETAPE_DEP_ID" NUMBER(*,0) NOT NULL ENABLE, - "TBL_WORKFLOW_ID" NUMBER(*,0) NOT NULL ENABLE, - "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, +CREATE TABLE "WF_DEP_BLOQUANTE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "WF_ETAPE_DEP_ID" NUMBER(*,0) NOT NULL ENABLE, + "TBL_WORKFLOW_ID" NUMBER(*,0) NOT NULL ENABLE, + "TO_DELETE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, CONSTRAINT "WF_DEPS_BLOQUANTES_PK" PRIMARY KEY ("ID") ENABLE ) ; -- WF_ETAPE -CREATE TABLE "WF_ETAPE" - ( "ID" NUMBER(*,0) NOT NULL ENABLE, - "CODE" VARCHAR2(64 CHAR) NOT NULL ENABLE, - "ORDRE" NUMBER(*,0) DEFAULT 1 NOT NULL ENABLE, - "DESC_NON_FRANCHIE" VARCHAR2(250 CHAR) NOT NULL ENABLE, - "DESC_SANS_OBJECTIF" VARCHAR2(250 CHAR), - "LIBELLE_AUTRES" VARCHAR2(150 CHAR) NOT NULL ENABLE, - "LIBELLE_INTERVENANT" VARCHAR2(150 CHAR) NOT NULL ENABLE, - "OBLIGATOIRE" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, - "ROUTE" VARCHAR2(200 CHAR) NOT NULL ENABLE, - "ROUTE_INTERVENANT" VARCHAR2(200 CHAR), - CONSTRAINT "WF_ETAPE_CODE_UN" UNIQUE ("CODE") ENABLE, - CONSTRAINT "WF_ETAPE_ORDRE_UN" UNIQUE ("ORDRE") ENABLE, +CREATE TABLE "WF_ETAPE" + ( "ID" NUMBER(*,0) NOT NULL ENABLE, + "CODE" VARCHAR2(64 CHAR) NOT NULL ENABLE, + "ORDRE" NUMBER(*,0) DEFAULT 1 NOT NULL ENABLE, + "DESC_NON_FRANCHIE" VARCHAR2(250 CHAR) NOT NULL ENABLE, + "DESC_SANS_OBJECTIF" VARCHAR2(250 CHAR), + "LIBELLE_AUTRES" VARCHAR2(150 CHAR) NOT NULL ENABLE, + "LIBELLE_INTERVENANT" VARCHAR2(150 CHAR) NOT NULL ENABLE, + "OBLIGATOIRE" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, + "ROUTE" VARCHAR2(200 CHAR) NOT NULL ENABLE, + "ROUTE_INTERVENANT" VARCHAR2(200 CHAR), + CONSTRAINT "WF_ETAPE_CODE_UN" UNIQUE ("CODE") ENABLE, + CONSTRAINT "WF_ETAPE_ORDRE_UN" UNIQUE ("ORDRE") ENABLE, CONSTRAINT "WF_ETAPE_PK" PRIMARY KEY ("ID") ENABLE ) ; -- WF_ETAPE_DEP -CREATE TABLE "WF_ETAPE_DEP" - ( "ETAPE_SUIV_ID" NUMBER(*,0) NOT NULL ENABLE, - "ETAPE_PREC_ID" NUMBER(*,0) NOT NULL ENABLE, - "LOCALE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "INTEGRALE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "PARTIELLE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - "ID" NUMBER(*,0) NOT NULL ENABLE, - "ACTIVE" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, - "TYPE_INTERVENANT_ID" NUMBER(*,0), - "OBLIGATOIRE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, - CONSTRAINT "WF_ETAPE_DEP_PK" PRIMARY KEY ("ID") ENABLE, +CREATE TABLE "WF_ETAPE_DEP" + ( "ETAPE_SUIV_ID" NUMBER(*,0) NOT NULL ENABLE, + "ETAPE_PREC_ID" NUMBER(*,0) NOT NULL ENABLE, + "LOCALE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "INTEGRALE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "PARTIELLE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + "ID" NUMBER(*,0) NOT NULL ENABLE, + "ACTIVE" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE, + "TYPE_INTERVENANT_ID" NUMBER(*,0), + "OBLIGATOIRE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, + CONSTRAINT "WF_ETAPE_DEP_PK" PRIMARY KEY ("ID") ENABLE, CONSTRAINT "WF_ETAPE_DEP__UN" UNIQUE ("ETAPE_SUIV_ID", "ETAPE_PREC_ID") ENABLE ) ; -------------------------------------------------- --- Packages +-- views -------------------------------------------------- --- OSE_CHARGENS -CREATE OR REPLACE PACKAGE "OSE_CHARGENS" AS - ENABLE_TRIGGER_EFFECTIFS BOOLEAN DEFAULT TRUE; +-- V_AGREMENT_EXPORT_CSV +CREATE OR REPLACE FORCE VIEW "V_AGREMENT_EXPORT_CSV" ("ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "ANNEE", "STRUCTURE_LIBELLE", "INTERVENANT_CODE", "INTERVENANT_NOM_USUEL", "INTERVENANT_NOM_PATRONYMIQUE", "INTERVENANT_PRENOM", "INTERVENANT_STATUT_LIBELLE", "PREMIER_RECRUTEMENT", "DISCIPLINE", "HETD_FI", "HETD_FA", "HETD_FC", "HETD_TOTAL", "TYPE_AGREMENT", "AGREE", "DATE_DECISION", "MODIFICATEUR", "DATE_MODIFICATION") AS + WITH heures_s AS ( + SELECT + i.id intervenant_id, + COALESCE(ep.structure_id,i.structure_id) structure_id, + SUM(frs.service_fi) service_fi, + SUM(frs.service_fa) service_fa, + SUM(frs.service_fc) service_fc, + SUM(frs.heures_compl_fi) heures_compl_fi, + SUM(frs.heures_compl_fa) heures_compl_fa, + SUM(frs.heures_compl_fc) heures_compl_fc, + SUM(frs.heures_compl_fc_majorees) heures_compl_fc_majorees, + SUM(frs.total) total + FROM + formule_resultat_service frs + JOIN type_volume_horaire tvh ON tvh.code = 'PREVU' + JOIN etat_volume_horaire evh ON evh.code = 'valide' + JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id + AND fr.type_volume_horaire_id = tvh.id + AND fr.etat_volume_horaire_id = evh.id + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN service s ON s.id = frs.service_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + GROUP BY + i.id, + ep.structure_id, + i.structure_id +) +SELECT + a.id annee_id, + i.id intervenant_id, + s.id structure_id, - TYPE tnoeud_ids IS TABLE OF NUMERIC; + a.libelle annee, + s.libelle_court structure_libelle, + i.code intervenant_code, + i.nom_usuel intervenant_nom_usuel, + i.nom_patronymique intervenant_nom_patronymique, + i.prenom intervenant_prenom, - FUNCTION GET_SCENARIO RETURN NUMERIC; - PROCEDURE SET_SCENARIO( SCENARIO NUMERIC ); + si.libelle intervenant_statut_libelle, + i.premier_recrutement premier_recrutement, + d.libelle_court discipline, - FUNCTION GET_NOEUD RETURN NUMERIC; - PROCEDURE SET_NOEUD( NOEUD NUMERIC ); + COALESCE(heures_s.service_fi, fr.service_fi) + + COALESCE(heures_s.heures_compl_fi, fr.heures_compl_fi) + hetd_fi, + COALESCE(heures_s.service_fa, fr.service_fa) + + COALESCE(heures_s.heures_compl_fa, fr.heures_compl_fa) + hetd_fa, + COALESCE(heures_s.service_fc, fr.service_fc) + + COALESCE(heures_s.heures_compl_fc, fr.heures_compl_fc) + + COALESCE(heures_s.heures_compl_fc_majorees, fr.heures_compl_fc_majorees) + hetd_fc, + COALESCE(heures_s.total, fr.total) hetd_total, - FUNCTION CALC_COEF( choix_min NUMERIC, choix_max NUMERIC, poids NUMERIC, max_poids NUMERIC, total_poids NUMERIC, nb_choix NUMERIC ) RETURN FLOAT; - PROCEDURE DEM_CALC_SUB_EFFECTIF( scenario_noeud_id NUMERIC, type_heures_id NUMERIC, etape_id NUMERIC, effectif FLOAT ); - PROCEDURE CALC_SUB_EFFECTIF_DEM; - PROCEDURE CALC_ALL_EFFECTIFS; - PROCEDURE CALC_EFFECTIF( noeud_id NUMERIC, scenario_id NUMERIC, type_heures_id NUMERIC DEFAULT NULL, etape_id NUMERIC DEFAULT NULL); - PROCEDURE CALC_SUB_EFFECTIF2( noeud_id NUMERIC, scenario_id NUMERIC, type_heures_id NUMERIC DEFAULT NULL, etape_id NUMERIC DEFAULT NULL); + tagr.libelle type_agrement, + CASE WHEN agr.id IS NULL THEN 0 ELSE 1 END agree, + agr.date_decision date_decision, + u.display_name modificateur, + agr.histo_modification date_modification +FROM + tbl_agrement ta + JOIN intervenant i ON i.id = ta.intervenant_id + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN annee a ON a.id = ta.annee_id + JOIN type_agrement tagr ON tagr.id = ta.type_agrement_id + JOIN type_volume_horaire tvh ON tvh.code = 'PREVU' + JOIN etat_volume_horaire evh ON evh.code = 'valide' - PROCEDURE DUPLIQUER( source_id NUMERIC, destination_id NUMERIC, utilisateur_id NUMERIC, structure_id NUMERIC, noeuds VARCHAR2 DEFAULT '', liens VARCHAR2 DEFAULT '' ); - PROCEDURE CONTROLE_SEUIL( ouverture NUMERIC, dedoublement NUMERIC ); + LEFT JOIN structure s ON s.id = ta.structure_id + LEFT JOIN agrement agr ON agr.id = ta.agrement_id + LEFT JOIN utilisateur u ON u.id = agr.histo_modificateur_id + LEFT JOIN discipline d ON d.id = i.discipline_id - FUNCTION GET_SCENARIO_NOEUD_ID( scenario_id NUMERIC, noeud_id NUMERIC ) RETURN NUMERIC; - FUNCTION CREER_SCENARIO_NOEUD( scenario_id NUMERIC, noeud_id NUMERIC, assiduite FLOAT DEFAULT 1 ) RETURN NUMERIC; + LEFT JOIN formule_resultat fr ON fr.intervenant_id = i.id + AND fr.type_volume_horaire_id = tvh.id + AND fr.etat_volume_horaire_id = evh.id - PROCEDURE ADD_SCENARIO_NOEUD_EFFECTIF( scenario_noeud_id NUMERIC, type_heures_id NUMERIC, etape_id NUMERIC, effectif FLOAT ); + LEFT JOIN heures_s ON heures_s.intervenant_id = i.id + AND heures_s.structure_id = s.id; - PROCEDURE INIT_SCENARIO_NOEUD_EFFECTIF( - etape_id NUMERIC, - scenario_id NUMERIC, - type_heures_id NUMERIC, - effectif FLOAT, - surcharge BOOLEAN DEFAULT FALSE - ); +-- V_CENTRE_COUT_STRUCTURE +CREATE OR REPLACE FORCE VIEW "V_CENTRE_COUT_STRUCTURE" ("CENTRE_COUT_ID", "STRUCTURE_ID") AS + SELECT + ccs.centre_cout_id, + ccs.structure_id +FROM + centre_cout_structure ccs +WHERE + ccs.histo_destruction IS NULL; - PROCEDURE SET_PRECALC_HEURES_PARAMS( - annee_id NUMERIC DEFAULT NULL, - structure_id NUMERIC DEFAULT NULL, - scenario_id NUMERIC DEFAULT NULL, - type_heures_id NUMERIC DEFAULT NULL, - etape_id NUMERIC DEFAULT NULL, - noeud_ids tnoeud_ids DEFAULT NULL - ); +-- V_CENTRE_COUT_TYPE_HEURES +CREATE OR REPLACE FORCE VIEW "V_CENTRE_COUT_TYPE_HEURES" ("CENTRE_COUT_ID", "TYPE_HEURES_ID") AS + select + cc.id centre_cout_id, + th.id type_heures_id +from + centre_cout cc + join type_ressource tr on tr.id = cc.type_ressource_id + join cc_activite cca on cca.id = cc.activite_id + join type_heures th on th.code = decode(tr.fi + cca.fi, 2, 'fi', null) - FUNCTION MATCH_PRECALC_HEURES_PARAMS( - annee_id NUMERIC DEFAULT NULL, - structure_id NUMERIC DEFAULT NULL, - scenario_id NUMERIC DEFAULT NULL, - type_heures_id NUMERIC DEFAULT NULL, - etape_id NUMERIC DEFAULT NULL, - noeud_id NUMERIC DEFAULT NULL - ) RETURN NUMERIC; +union all +select + cc.id centre_cout_id, + th.id type_heures_id +from + centre_cout cc + join type_ressource tr on tr.id = cc.type_ressource_id + join cc_activite cca on cca.id = cc.activite_id + join type_heures th on th.code = decode(tr.fc + cca.fc, 2, 'fc', null) -END OSE_CHARGENS; -/ +union all --- OSE_DIVERS -CREATE OR REPLACE PACKAGE "OSE_DIVERS" AS +select + cc.id centre_cout_id, + th.id type_heures_id +from + centre_cout cc + join type_ressource tr on tr.id = cc.type_ressource_id + join cc_activite cca on cca.id = cc.activite_id + join type_heures th on th.code = decode(tr.fa + cca.fa, 2, 'fa', null) - PROCEDURE CALCULER_TABLEAUX_BORD; +union all - FUNCTION GET_OSE_UTILISATEUR_ID RETURN NUMERIC; - FUNCTION GET_OSE_SOURCE_ID RETURN NUMERIC; +select + cc.id centre_cout_id, + th.id type_heures_id +from + centre_cout cc + join type_ressource tr on tr.id = cc.type_ressource_id + join cc_activite cca on cca.id = cc.activite_id + join type_heures th on th.code = decode(tr.referentiel + cca.referentiel, 2, 'referentiel', null) - FUNCTION INTERVENANT_HAS_PRIVILEGE( intervenant_id NUMERIC, privilege_name VARCHAR2 ) RETURN NUMERIC; +union all - FUNCTION implode(i_query VARCHAR2, i_seperator VARCHAR2 DEFAULT ',') RETURN VARCHAR2; +select + cc.id centre_cout_id, + th.id type_heures_id +from + centre_cout cc + join type_ressource tr on tr.id = cc.type_ressource_id + join cc_activite cca on cca.id = cc.activite_id + join type_heures th on th.code = decode(tr.fc_majorees + cca.fc_majorees, 2, 'fc_majorees', null); - PROCEDURE intervenant_horodatage_service( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, REFERENTIEL NUMERIC, HISTO_MODIFICATEUR_ID NUMERIC, HISTO_MODIFICATION DATE ); +-- V_CHARGENS_CALC_EFFECTIF +CREATE OR REPLACE FORCE VIEW "V_CHARGENS_CALC_EFFECTIF" ("NOEUD_ID", "SCENARIO_ID", "SCENARIO_NOEUD_ID", "TYPE_HEURES_ID", "ETAPE_ID", "EFFECTIF") AS + SELECT + gl.noeud_inf_id noeud_id, + snsup.scenario_id scenario_id, + sninf.id scenario_noeud_id, + sne.type_heures_id type_heures_id, + sne.etape_id etape_id, +-- sne.effectif effectif, +-- slsup.choix_minimum choix_minimum, +-- slsup.choix_maximum choix_maximum, +-- COALESCE(slinf.poids,1) poids, +-- COALESCE(sninf.assiduite,1) assiduite, +-- MIN(COALESCE(sl.poids,1)) min_poids, +-- MAX(COALESCE(sl.poids,1)) max_poids, +-- SUM(COALESCE(sl.poids,1)) total_poids, +-- COUNT(*) nb_choix, + OSE_CHARGENS.CALC_COEF( + slsup.choix_minimum, + slsup.choix_maximum, + COALESCE(slinf.poids,1), + MAX(COALESCE(sl.poids,1)), + SUM(COALESCE(sl.poids,1)), + COUNT(*) + ) * sne.effectif effectif +FROM + v_chargens_grands_liens gl + JOIN scenario_noeud snsup ON snsup.noeud_id = gl.noeud_sup_id + AND snsup.histo_destruction IS NULL - FUNCTION NIVEAU_FORMATION_ID_CALC( gtf_id NUMERIC, gtf_pertinence_niveau NUMERIC, niveau NUMERIC DEFAULT NULL ) RETURN NUMERIC; + JOIN scenario_noeud_effectif sne ON sne.scenario_noeud_id = snsup.id - FUNCTION STR_REDUCE( str CLOB ) RETURN CLOB; + LEFT JOIN scenario_lien slsup ON slsup.histo_destruction IS NULL + AND slsup.lien_id = gl.lien_sup_id + AND slsup.scenario_id = snsup.scenario_id - FUNCTION STR_FIND( haystack CLOB, needle VARCHAR2 ) RETURN NUMERIC; + LEFT JOIN scenario_lien slinf ON slinf.histo_destruction IS NULL + AND slinf.lien_id = gl.lien_inf_id + AND slinf.scenario_id = snsup.scenario_id - FUNCTION LIKED( haystack CLOB, needle CLOB ) RETURN NUMERIC; + LEFT JOIN scenario_noeud sninf ON sninf.noeud_id = gl.noeud_inf_id + AND sninf.scenario_id = snsup.scenario_id + AND sninf.histo_destruction IS NULL - FUNCTION CALCUL_TAUX_FI( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT; + JOIN lien l ON l.noeud_sup_id = gl.noeud_liste_id + AND l.histo_destruction IS NULL - FUNCTION CALCUL_TAUX_FC( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT; + LEFT JOIN scenario_lien sl ON sl.lien_id = l.id + AND sl.scenario_id = snsup.scenario_id + AND sl.histo_destruction IS NULL - FUNCTION CALCUL_TAUX_FA( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT; +WHERE + (slsup.actif = 1 OR slsup.actif IS NULL) + AND (slinf.actif = 1 OR slinf.actif IS NULL) + AND (sl.actif = 1 OR sl.actif IS NULL) + AND (snsup.scenario_id = 0 OR NULL IS NULL) + AND (sne.type_heures_id = 0 OR NULL IS NULL) + AND (sne.etape_id = 0 OR NULL IS NULL) +GROUP BY + gl.noeud_sup_id, + gl.noeud_inf_id, + snsup.scenario_id, + sninf.id, + sne.type_heures_id, + sne.etape_id, + sne.effectif, + slsup.choix_minimum, + slsup.choix_maximum, + slinf.poids; - FUNCTION STRUCTURE_UNIV_GET_ID RETURN NUMERIC; +-- V_CHARGENS_EXPORT_CSV +CREATE OR REPLACE FORCE VIEW "V_CHARGENS_EXPORT_CSV" ("ANNEE_ID", "SCENARIO_ID", "STRUCTURE_PORTEUSE_ID", "STRUCTURE_INS_ID", "ANNEE", "STRUCTURE_PORTEUSE_CODE", "STRUCTURE_PORTEUSE_LIBELLE", "ETAPE_PORTEUSE_CODE", "ETAPE_PORTEUSE_LIBELLE", "STRUCTURE_INS_CODE", "STRUCTURE_INS_LIBELLE", "ETAPE_INS_CODE", "ETAPE_INS_LIBELLE", "ELEMENT_CODE", "ELEMENT_LIBELLE", "PERIODE", "DISCIPLINE_CODE", "DISCIPLINE_LIBELLE", "TYPE_HEURES", "TYPE_INTERVENTION", "SEUIL_OUVERTURE", "SEUIL_DEDOUBLEMENT", "ASSIDUITE", "EFFECTIF_ETAPE", "EFFECTIF_ELEMENT", "HEURES_ENS", "GROUPES", "HEURES", "HETD") AS + SELECT + a.id annee_id, + cph.scenario_id scenario_id, + sp.id structure_porteuse_id, + si.id structure_ins_id, - PROCEDURE SYNC_LOG( msg CLOB ); + a.libelle annee, - FUNCTION FORMATTED_RIB (bic VARCHAR2, iban VARCHAR2) RETURN VARCHAR2; + sp.source_code structure_porteuse_code, + sp.libelle_court structure_porteuse_libelle, + eport.code etape_porteuse_code, + eport.libelle etape_porteuse_libelle, - FUNCTION FORMATTED_ADRESSE( - no_voie VARCHAR2, - nom_voie VARCHAR2, - batiment VARCHAR2, - mention_complementaire VARCHAR2, - localite VARCHAR2, - code_postal VARCHAR2, - ville VARCHAR2, - pays_libelle VARCHAR2) - RETURN VARCHAR2; + si.source_code structure_ins_code, + si.libelle_court structure_ins_libelle, + eins.code etape_ins_code, + eins.libelle etape_ins_libelle, - FUNCTION GET_TRIGGER_BODY( TRIGGER_NAME VARCHAR2 ) RETURN VARCHAR2; -END OSE_DIVERS; -/ + ep.code element_code, + ep.libelle element_libelle, + p.libelle_court periode, + d.source_code discipline_code, + d.libelle_court discipline_libelle, + th.libelle_court type_heures, + ti.code type_intervention, --- OSE_EVENT -CREATE OR REPLACE PACKAGE "OSE_EVENT" AS - - PROCEDURE ON_BEFORE_FORMULE_RES_DELETE( INTERVENANT_ID NUMERIC ); - PROCEDURE ON_AFTER_FORMULE_CALC( INTERVENANT_ID NUMERIC ); - -END OSE_EVENT; -/ - --- OSE_FORMULE -CREATE OR REPLACE PACKAGE "OSE_FORMULE" AS - - PACKAGE_SUJET VARCHAR2(80) DEFAULT 'OSE_FORMULE'; - - TYPE t_intervenant IS RECORD ( - structure_id NUMERIC, - annee_id NUMERIC, - heures_decharge FLOAT DEFAULT 0, - heures_service_statutaire FLOAT DEFAULT 0, - heures_service_modifie FLOAT DEFAULT 0, - depassement_service_du_sans_hc FLOAT DEFAULT 0 - ); + cph.ouverture seuil_ouverture, + cph.dedoublement seuil_dedoublement, + cph.assiduite assiduite, + sne.effectif effectif_etape, + cph.effectif effectif_element, + cph.heures_ens heures_ens, + cph.groupes groupes, + cph.heures heures, + cph.hetd hetd + FROM + tbl_chargens cph + JOIN annee a ON a.id = cph.annee_id + JOIN structure sp ON sp.id = cph.structure_id + JOIN etape eport ON eport.id = cph.etape_id + JOIN etape eins ON eins.id = cph.etape_ens_id + JOIN structure si ON si.id = eins.structure_id + JOIN element_pedagogique ep ON ep.id = cph.element_pedagogique_id + JOIN type_heures th ON th.id = cph.type_heures_id + JOIN type_intervention ti ON ti.id = cph.type_intervention_id + LEFT JOIN periode p ON p.id = ep.periode_id + LEFT JOIN discipline d ON d.id = ep.discipline_id + LEFT JOIN noeud n ON n.etape_id = eins.id + AND n.histo_destruction IS NULL - TYPE t_type_etat_vh IS RECORD ( - type_volume_horaire_id NUMERIC, - etat_volume_horaire_id NUMERIC - ); - TYPE t_lst_type_etat_vh IS TABLE OF t_type_etat_vh INDEX BY PLS_INTEGER; + LEFT JOIN scenario_noeud sn ON sn.noeud_id = n.id + AND sn.histo_destruction IS NULL + AND sn.scenario_id = cph.scenario_id - TYPE t_service_ref IS RECORD ( - id NUMERIC, - structure_id NUMERIC - ); - TYPE t_lst_service_ref IS TABLE OF t_service_ref INDEX BY PLS_INTEGER; + LEFT JOIN scenario_noeud_effectif sne ON sne.scenario_noeud_id = sn.id + AND sne.type_heures_id = cph.type_heures_id + AND sne.etape_id = n.etape_id +ORDER BY + structure_porteuse_code, + etape_porteuse_code, + structure_ins_code, + etape_ins_code, + element_code, + type_heures, + type_intervention; - TYPE t_service IS RECORD ( - id NUMERIC, - taux_fi FLOAT DEFAULT 1, - taux_fa FLOAT DEFAULT 0, - taux_fc FLOAT DEFAULT 0, - ponderation_service_du FLOAT DEFAULT 1, - ponderation_service_compl FLOAT DEFAULT 1, - structure_aff_id NUMERIC, - structure_ens_id NUMERIC - ); - TYPE t_lst_service IS TABLE OF t_service INDEX BY PLS_INTEGER; +-- V_CHARGENS_GRANDS_LIENS +CREATE OR REPLACE FORCE VIEW "V_CHARGENS_GRANDS_LIENS" ("NOEUD_SUP_ID", "LIEN_SUP_ID", "NOEUD_LISTE_ID", "LIEN_INF_ID", "NOEUD_INF_ID") AS + SELECT + nsup.id noeud_sup_id, + lsup.id lien_sup_id, + nl.id noeud_liste_id, + linf.id lien_inf_id, + ninf.id noeud_inf_id +FROM + noeud nsup - TYPE t_volume_horaire_ref IS RECORD ( - id NUMERIC, - service_referentiel_id NUMERIC, - type_volume_horaire_id NUMERIC, - etat_volume_horaire_id NUMERIC, - etat_volume_horaire_ordre NUMERIC, - heures FLOAT DEFAULT 0 - ); - TYPE t_lst_volume_horaire_ref IS TABLE OF t_volume_horaire_ref INDEX BY PLS_INTEGER; + JOIN lien lsup ON lsup.noeud_sup_id = nsup.id + AND lsup.histo_destruction IS NULL - TYPE t_volume_horaire IS RECORD ( - id NUMERIC, - service_id NUMERIC, - type_volume_horaire_id NUMERIC, - etat_volume_horaire_id NUMERIC, - etat_volume_horaire_ordre NUMERIC, - heures FLOAT DEFAULT 0, - taux_service_du FLOAT DEFAULT 1, - taux_service_compl FLOAT DEFAULT 1 - ); - TYPE t_lst_volume_horaire IS TABLE OF t_volume_horaire INDEX BY PLS_INTEGER; + JOIN noeud nl ON nl.liste = 1 + AND nl.histo_destruction IS NULL + AND nl.id = lsup.noeud_inf_id + JOIN lien linf ON linf.noeud_sup_id = nl.id + AND linf.histo_destruction IS NULL + JOIN noeud ninf ON ninf.id = linf.noeud_inf_id + AND ninf.histo_destruction IS NULL + AND ninf.liste = 0 +WHERE + nsup.histo_destruction IS NULL + AND nsup.liste = 0; - TYPE t_resultat_hetd IS RECORD ( - service_fi FLOAT DEFAULT 0, - service_fa FLOAT DEFAULT 0, - service_fc FLOAT DEFAULT 0, - heures_compl_fi FLOAT DEFAULT 0, - heures_compl_fa FLOAT DEFAULT 0, - heures_compl_fc FLOAT DEFAULT 0, - heures_compl_fc_majorees FLOAT DEFAULT 0 - ); - TYPE t_lst_resultat_hetd IS TABLE OF t_resultat_hetd INDEX BY PLS_INTEGER; +-- V_CHARGENS_PRECALCUL_HEURES +CREATE OR REPLACE FORCE VIEW "V_CHARGENS_PRECALCUL_HEURES" ("ANNEE_ID", "NOEUD_ID", "SCENARIO_ID", "TYPE_HEURES_ID", "TYPE_INTERVENTION_ID", "ELEMENT_PEDAGOGIQUE_ID", "ETAPE_ID", "ETAPE_ENS_ID", "STRUCTURE_ID", "OUVERTURE", "DEDOUBLEMENT", "ASSIDUITE", "EFFECTIF", "HEURES_ENS", "GROUPES", "HEURES", "HETD") AS + WITH t AS ( +SELECT + n.annee_id annee_id, + n.noeud_id noeud_id, + sn.scenario_id scenario_id, + sne.type_heures_id type_heures_id, + ti.id type_intervention_id, - TYPE t_resultat_hetd_ref IS RECORD ( - service_referentiel FLOAT DEFAULT 0, - heures_compl_referentiel FLOAT DEFAULT 0 - ); - TYPE t_lst_resultat_hetd_ref IS TABLE OF t_resultat_hetd_ref INDEX BY PLS_INTEGER; + n.element_pedagogique_id element_pedagogique_id, + n.element_pedagogique_etape_id etape_id, + sne.etape_id etape_ens_id, + n.structure_id structure_id, - TYPE t_resultat IS RECORD ( - intervenant_id NUMERIC, - type_volume_horaire_id NUMERIC, - etat_volume_horaire_id NUMERIC, - service_du FLOAT DEFAULT 0, - solde FLOAT DEFAULT 0, - sous_service FLOAT DEFAULT 0, - heures_compl FLOAT DEFAULT 0, - volume_horaire t_lst_resultat_hetd, - volume_horaire_ref t_lst_resultat_hetd_ref - ); + vhe.heures heures, + vhe.heures * ti.taux_hetd_service hetd, - d_intervenant t_intervenant; - d_type_etat_vh t_lst_type_etat_vh; - d_service_ref t_lst_service_ref; - d_service t_lst_service; - d_volume_horaire_ref t_lst_volume_horaire_ref; - d_volume_horaire t_lst_volume_horaire; - d_resultat t_resultat; + GREATEST(COALESCE(sns.ouverture, 1),1) ouverture, + GREATEST(COALESCE(sns.dedoublement, snsetp.dedoublement, csdd.dedoublement,1),1) dedoublement, + COALESCE(sns.assiduite,1) assiduite, + sne.effectif*COALESCE(sns.assiduite,1) effectif, - FUNCTION GET_INTERVENANT_ID RETURN NUMERIC; - FUNCTION GET_DATE_OBS RETURN DATE; - FUNCTION SET_DATE_OBS( DATE_OBS DATE DEFAULT NULL ) RETURN DATE; + SUM(sne.effectif*COALESCE(sns.assiduite,1)) OVER (PARTITION BY n.noeud_id, sn.scenario_id, ti.id) t_effectif - PROCEDURE SET_DEBUG_LEVEL( DEBUG_LEVEL NUMERIC ); - FUNCTION GET_DEBUG_LEVEL RETURN NUMERIC; +FROM + scenario_noeud_effectif sne + JOIN etape e ON e.id = sne.etape_id + AND e.histo_destruction IS NULL - FUNCTION GET_TAUX_HORAIRE_HETD( DATE_OBS DATE DEFAULT NULL ) RETURN FLOAT; - PROCEDURE UPDATE_ANNEE_TAUX_HETD; + JOIN scenario_noeud sn ON sn.id = sne.scenario_noeud_id + AND sn.histo_destruction IS NULL - PROCEDURE CALCULER( INTERVENANT_ID NUMERIC ); - PROCEDURE CALCULER_TOUT( ANNEE_ID NUMERIC DEFAULT NULL ); -- mise à jour de TOUTES les données ! ! ! ! - PROCEDURE CALCULER_TBL( PARAMS UNICAEN_TBL.T_PARAMS ); + JOIN tbl_noeud n ON n.noeud_id = sn.noeud_id - PROCEDURE SET_INTERVENANT(INTERVENANT_ID NUMERIC DEFAULT NULL); - FUNCTION GET_INTERVENANT RETURN NUMERIC; - FUNCTION MATCH_INTERVENANT(INTERVENANT_ID NUMERIC DEFAULT NULL) RETURN NUMERIC; -END OSE_FORMULE; -/ + JOIN volume_horaire_ens vhe ON vhe.element_pedagogique_id = n.element_pedagogique_id + AND vhe.histo_destruction IS NULL + AND vhe.heures > 0 --- OSE_HISTO -CREATE OR REPLACE PACKAGE "OSE_HISTO" AS + JOIN type_intervention ti ON ti.id = vhe.type_intervention_id - FUNCTION FILTRE( histo_debut NUMERIC, histo_fin NUMERIC ) RETURN NUMERIC; + LEFT JOIN tbl_noeud netp ON netp.etape_id = e.id -END OSE_HISTO; -/ + LEFT JOIN scenario_noeud snetp ON snetp.scenario_id = sn.scenario_id + AND snetp.noeud_id = netp.noeud_id + AND snetp.histo_destruction IS NULL --- OSE_PAIEMENT -CREATE OR REPLACE PACKAGE "OSE_PAIEMENT" AS + LEFT JOIN scenario_noeud_seuil snsetp ON snsetp.scenario_noeud_id = snetp.id + AND snsetp.type_intervention_id = ti.id - PROCEDURE CHECK_BAD_PAIEMENTS( FORMULE_RES_SERVICE_ID NUMERIC DEFAULT NULL, FORMULE_RES_SERVICE_REF_ID NUMERIC DEFAULT NULL ); + LEFT JOIN tbl_chargens_seuils_def csdd ON csdd.annee_id = n.annee_id + AND csdd.scenario_id = sn.scenario_id + AND csdd.type_intervention_id = ti.id + AND csdd.groupe_type_formation_id = n.groupe_type_formation_id + AND csdd.structure_id = n.structure_id -END OSE_PAIEMENT; -/ + LEFT JOIN scenario_noeud_seuil sns ON sns.scenario_noeud_id = sn.id + AND sns.type_intervention_id = ti.id +WHERE + 1 = OSE_CHARGENS.MATCH_PRECALC_HEURES_PARAMS( n.annee_id, n.structure_id, sn.scenario_id, sne.type_heures_id, sne.etape_id, n.noeud_id ) +) +SELECT + annee_id, + noeud_id, + scenario_id, + type_heures_id, + type_intervention_id, --- OSE_PARAMETRE -CREATE OR REPLACE PACKAGE "OSE_PARAMETRE" AS + element_pedagogique_id, + etape_id, + etape_ens_id, + structure_id, - function get_etablissement return Numeric; - function get_annee return Numeric; - function get_annee_import return Numeric; - function get_ose_user return Numeric; - function get_drh_structure_id return Numeric; - function get_date_fin_saisie_permanents RETURN DATE; - function get_ddeb_saisie_serv_real RETURN DATE; - function get_dfin_saisie_serv_real RETURN DATE; - function get_formule_package_name RETURN VARCHAR2; - function get_formule_function_name RETURN VARCHAR2; + ouverture, + dedoublement, + assiduite, + effectif, + heures heures_ens, + --t_effectif, -END OSE_PARAMETRE; -/ + CASE WHEN t_effectif < ouverture THEN 0 ELSE + CEIL( t_effectif / dedoublement ) * effectif / t_effectif + END groupes, --- OSE_TEST -CREATE OR REPLACE PACKAGE "OSE_TEST" AS + CASE WHEN t_effectif < ouverture THEN 0 ELSE + CEIL( t_effectif / dedoublement ) * heures * effectif / t_effectif + END heures, - DEBUG_ENABLED BOOLEAN DEFAULT FALSE; + CASE WHEN t_effectif < ouverture THEN 0 ELSE + CEIL( t_effectif / dedoublement ) * hetd * effectif / t_effectif + END hetd - -- SET SERVEROUTPUT ON +FROM + t; - PROCEDURE SHOW_SUCCES; - - PROCEDURE HIDE_SUCCES; - - PROCEDURE ECHO( MSG CLOB ); - - PROCEDURE INIT; - - PROCEDURE SHOW_STATS; - - PROCEDURE DEBUT( TEST_NAME CLOB ); - - PROCEDURE FIN; - - PROCEDURE ASSERT( condition BOOLEAN, MSG CLOB ); - - PROCEDURE HOROINIT; +-- V_CHARGENS_SEUILS_DED_DEF +CREATE OR REPLACE FORCE VIEW "V_CHARGENS_SEUILS_DED_DEF" ("NOEUD_ID", "SCENARIO_ID", "TYPE_INTERVENTION_ID", "DEDOUBLEMENT") AS + WITH tisc AS ( + SELECT DISTINCT + sc.type_intervention_id, + sc.scenario_id + FROM + seuil_charge sc + WHERE + sc.histo_destruction IS NULL +) +SELECT + n.noeud_id noeud_id, + tisc.scenario_id, + tisc.type_intervention_id, + COALESCE(snsetp.dedoublement, tcsd.dedoublement) dedoublement +FROM + tbl_noeud n + JOIN tisc ON 1=1 - PROCEDURE HORODATAGE( msg VARCHAR2 ); + LEFT JOIN scenario_noeud snetp ON snetp.noeud_id = n.noeud_etape_id + AND snetp.scenario_id = tisc.scenario_id + AND snetp.histo_destruction IS NULL - FUNCTION GET_STRUCTURE_BY_ID( id NUMERIC ) RETURN structure%rowtype; + LEFT JOIN scenario_noeud_seuil snsetp ON snsetp.scenario_noeud_id = snetp.id + AND snsetp.type_intervention_id = tisc.type_intervention_id -END OSE_TEST; -/ + LEFT JOIN tbl_chargens_seuils_def tcsd ON tcsd.annee_id = n.annee_id + AND tcsd.scenario_id = tisc.scenario_id + AND tcsd.groupe_type_formation_id = n.groupe_type_formation_id + AND tcsd.type_intervention_id = tisc.type_intervention_id +WHERE + COALESCE(snsetp.dedoublement, tcsd.dedoublement) IS NOT NULL; --- OSE_VALIDATION -CREATE OR REPLACE PACKAGE "OSE_VALIDATION" AS +-- V_CTL_SERVICES_ODF_HISTO +CREATE OR REPLACE FORCE VIEW "V_CTL_SERVICES_ODF_HISTO" ("PRENOM", "NOM_USUEL", "ELEMENT", "ETAPE", "TYPE_INTERVENTION", "HEURES", "HAS_CONTRAT", "HAS_VALIDATION", "ELEMENT_SUPPRIME", "ETAPE_SUPPRIMEE", "ETABLISSEMENT_SUPPRIME") AS + with vh as ( + SELECT + vh.service_id, + ti.code type_intervention, + SUM(heures) heures, + CASE WHEN vh.contrat_id IS NULL THEN 0 ELSE 1 END has_contrat, + CASE WHEN (SELECT COUNT(*) FROM validation_vol_horaire vvh WHERE vvh.volume_horaire_id = vh.id) = 1 THEN 1 ELSE 0 END has_validation + FROM + volume_horaire vh + JOIN type_volume_horaire tvh ON tvh.id = vh.type_volume_horaire_id + JOIN type_intervention ti ON ti.id = vh.type_intervention_id + WHERE + vh.histo_destruction IS NULL + AND tvh.code = 'PREVU' + GROUP BY + vh.id, ti.code, vh.service_id, vh.contrat_id +) +SELECT + i.prenom, i.nom_usuel, + ep.source_code "ELEMENT", + e.source_code etape, - FUNCTION can_devalider ( v validation%rowtype ) RETURN varchar2; + vh.type_intervention, + vh.heures, + vh.has_contrat, + vh.has_validation, + CASE WHEN ep.histo_destruction IS NOT NULL THEN 1 ELSE 0 END element_supprime, + CASE WHEN e.histo_destruction IS NOT NULL THEN 1 ELSE 0 END etape_supprimee, + CASE WHEN et.histo_destruction IS NOT NULL THEN 1 ELSE 0 END etablissement_supprime +FROM + service s + JOIN intervenant i ON i.id = s.intervenant_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + LEFT JOIN etape e ON e.id = ep.etape_id + LEFT JOIN etablissement et ON et.id = s.etablissement_id + LEFT JOIN vh ON vh.service_id = s.id +WHERE + s.histo_destruction IS NULL + AND ( + (ep.id IS NOT NULL AND ep.histo_destruction IS NOT NULL) + OR + (e.id IS NOT NULL AND e.histo_destruction IS NOT NULL) + OR + (et.id IS NOT NULL AND et.histo_destruction IS NOT NULL) + ) +order by + nom_usuel, prenom, etape, "ELEMENT", heures; -END OSE_VALIDATION; -/ +-- V_CTL_VH_MAUVAIS_SEMESTRE +CREATE OR REPLACE FORCE VIEW "V_CTL_VH_MAUVAIS_SEMESTRE" ("ID", "NOM_USUEL", "PRENOM", "HEURES", "VALIDATION_ID") AS + SELECT + vh.id, + i.nom_usuel, i.prenom, + vh.heures, + vvh.validation_id +FROM + volume_horaire vh + JOIN type_volume_horaire tvh ON tvh.id = vh.type_volume_horaire_id + JOIN service s ON s.id = vh.service_id + JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + JOIN intervenant i ON i.id = s.intervenant_id + LEFT JOIN VALIDATION_VOL_HORAIRE vvh on VVH.VOLUME_HORAIRE_ID = vh.id +WHERE + tvh.code = 'PREVU' + AND ep.periode_id IS NOT NULL + AND vh.periode_id <> ep.periode_id +ORDER BY + nom_usuel, prenom, heures; --- OSE_WORKFLOW -CREATE OR REPLACE PACKAGE "OSE_WORKFLOW" AS +-- V_ELEMENT_TYPE_HEURES +CREATE OR REPLACE FORCE VIEW "V_ELEMENT_TYPE_HEURES" ("ELEMENT_PEDAGOGIQUE_ID", "TYPE_HEURES_ID") AS + select ep.id element_pedagogique_id, th.id type_heures_id + from element_pedagogique ep + join type_heures th on th.code = decode(ep.fi, 1, 'fi', null) +union all + select ep.id element_pedagogique_id, th.id type_heures_id + from element_pedagogique ep + join type_heures th on th.code = decode(ep.fc, 1, 'fc', null) +union all + select ep.id element_pedagogique_id, th.id type_heures_id + from element_pedagogique ep + join type_heures th on th.code = decode(ep.fa, 1, 'fa', null); - PACKAGE_SUJET VARCHAR2(80) DEFAULT 'OSE_WORKFLOW'; +-- V_ELEMENT_TYPE_INTERVENTION +CREATE OR REPLACE FORCE VIEW "V_ELEMENT_TYPE_INTERVENTION" ("TYPE_INTERVENTION_ID", "ELEMENT_PEDAGOGIQUE_ID") AS + SELECT + type_intervention_id, + element_pedagogique_id +FROM + type_intervention_ep tie + JOIN type_intervention ti ON ti.id = tie.type_intervention_id +WHERE + tie.histo_destruction IS NULL +ORDER BY + ti.ordre; - PROCEDURE CALCULER( INTERVENANT_ID NUMERIC ); - PROCEDURE CALCULER_TOUT( ANNEE_ID NUMERIC DEFAULT NULL ); - PROCEDURE CALCULER_TBL( PARAMS UNICAEN_TBL.T_PARAMS ); +-- V_ELEMENT_TYPE_INTERV_POSSIBLE +CREATE OR REPLACE FORCE VIEW "V_ELEMENT_TYPE_INTERV_POSSIBLE" ("TYPE_INTERVENTION_ID", "ELEMENT_PEDAGOGIQUE_ID") AS + SELECT + ti.id type_intervention_id, + ep.id element_pedagogique_id +FROM + element_pedagogique ep - PROCEDURE DEP_CHECK( etape_suiv_id NUMERIC, etape_prec_id NUMERIC ); + JOIN type_intervention ti ON ep.annee_id BETWEEN COALESCE(ti.annee_debut_id,ep.annee_id) AND COALESCE(ti.annee_fin_id, ep.annee_id) + AND ti.histo_destruction IS NULL - PROCEDURE SET_INTERVENANT(INTERVENANT_ID NUMERIC DEFAULT NULL); - FUNCTION GET_INTERVENANT RETURN NUMERIC; - FUNCTION MATCH_INTERVENANT(INTERVENANT_ID NUMERIC DEFAULT NULL) RETURN NUMERIC; -END OSE_WORKFLOW; -/ + LEFT JOIN type_intervention_structure tis ON tis.type_intervention_id = ti.id + AND tis.structure_id = ep.structure_id + AND ep.annee_id BETWEEN COALESCE(tis.annee_debut_id,ep.annee_id) AND COALESCE(tis.annee_fin_id, ep.annee_id) + AND tis.histo_destruction IS NULL +WHERE + ep.histo_destruction IS NULL + AND COALESCE( tis.visible, ti.visible ) = 1 + AND (ti.regle_foad = 0 OR ep.taux_foad > 0) + AND (ti.regle_fc = 0 OR ep.taux_fc > 0); --- UCBN_LDAP -CREATE OR REPLACE PACKAGE "UCBN_LDAP" AUTHID CURRENT_USER AS - ldap_sess DBMS_LDAP.SESSION := NULL ; -- Ne met a NULL qu'une seule fois par session!!!! - last_used NUMBER ; - TYPE ARRAY_STR IS VARRAY(64) OF VARCHAR2(256 char); - a_multi ARRAY_STR ; - FUNCTION version RETURN VARCHAR2 ; - FUNCTION get(filtre IN VARCHAR2, attribut IN VARCHAR2, v_multi IN VARCHAR2 DEFAULT 'N', a_multi OUT ARRAY_STR) RETURN VARCHAR2 ; - FUNCTION alias2mail(ldap_alias IN VARCHAR2) RETURN VARCHAR2 ; - FUNCTION uid2mail(ldap_uid IN VARCHAR2) RETURN VARCHAR2 ; - FUNCTION hid2mail(harpege_uid IN NUMBER) RETURN VARCHAR2 ; - FUNCTION etu2mail(code_etu IN NUMBER) RETURN VARCHAR2 ; - FUNCTION uid2alias(ldap_uid IN VARCHAR2) RETURN VARCHAR2 ; - FUNCTION hid2alias(harpege_uid IN NUMBER) RETURN VARCHAR2 ; - FUNCTION uid2cn(ldap_uid IN VARCHAR2) RETURN VARCHAR2 ; - FUNCTION uid2sn(ldap_uid IN VARCHAR2) RETURN VARCHAR2 ; - FUNCTION uid2givenname(ldap_uid IN VARCHAR2) RETURN VARCHAR2 ; - FUNCTION uid2gn(ldap_uid IN VARCHAR2) RETURN VARCHAR2 ; -- givenname + sn - FUNCTION hidIsPrimaryTeacher(harpege_uid IN NUMBER) RETURN VARCHAR2 ; - FUNCTION hidIsTeacher(harpege_uid IN NUMBER) RETURN VARCHAR2 ; - FUNCTION ldap_connect RETURN NUMBER ; - FUNCTION free RETURN NUMBER ; - PROCEDURE getInvites(l_table IN VARCHAR2) ; -END ucbn_ldap; -/ +-- V_ELEMENT_TYPE_MODULATEUR +CREATE OR REPLACE FORCE VIEW "V_ELEMENT_TYPE_MODULATEUR" ("ELEMENT_PEDAGOGIQUE_ID", "TYPE_MODULATEUR_ID") AS + SELECT + ep.id element_pedagogique_id, + tms.type_modulateur_id type_modulateur_id +FROM + element_pedagogique ep + JOIN structure s ON s.id = ep.structure_id + AND s.histo_destruction IS NULL --- UNICAEN_IMPORT -CREATE OR REPLACE PACKAGE "UNICAEN_IMPORT" AS + JOIN type_modulateur_structure tms ON tms.structure_id = s.id + AND tms.histo_destruction IS NULL + AND ep.annee_id BETWEEN GREATEST(NVL(tms.annee_debut_id,0),ep.annee_id) AND LEAST(NVL(tms.annee_fin_id,9999),ep.annee_id) - z__SYNC_FILRE__z CLOB DEFAULT ''; - z__IGNORE_UPD_COLS__z CLOB DEFAULT ''; +UNION - PROCEDURE set_current_user(p_current_user IN INTEGER); - FUNCTION get_current_user return INTEGER; +SELECT + tm_ep.element_pedagogique_id element_pedagogique_id, + tm_ep.type_modulateur_id type_modulateur_id +FROM + type_modulateur_ep tm_ep +WHERE + tm_ep.histo_destruction IS NULL; - FUNCTION get_current_annee RETURN INTEGER; - PROCEDURE set_current_annee (p_current_annee INTEGER); +-- V_ETAPE_NIVEAU_FORMATION +CREATE OR REPLACE FORCE VIEW "V_ETAPE_NIVEAU_FORMATION" ("ETAPE_ID", "NIVEAU_FORMATION_ID") AS + SELECT + e.id etape_id, + nf.id niveau_formation_id +FROM + etape e + JOIN type_formation tf ON tf.id = e.type_formation_id AND tf.histo_destruction IS NULL + JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id AND gtf.histo_destruction IS NULL + JOIN v_niveau_formation nf ON nf.code = gtf.libelle_court || e.niveau +WHERE + e.histo_destruction IS NULL + AND gtf.pertinence_niveau = 1 + AND e.niveau IS NOT NULL; - FUNCTION IN_COLUMN_LIST( VALEUR VARCHAR2, CHAMPS CLOB ) RETURN NUMERIC; - PROCEDURE REFRESH_MV( mview_name varchar2 ); - PROCEDURE SYNC_LOG( message CLOB, table_name VARCHAR2 DEFAULT NULL, source_code VARCHAR2 DEFAULT NULL ); +-- V_ETAPE_TYPE_MODULATEUR +CREATE OR REPLACE FORCE VIEW "V_ETAPE_TYPE_MODULATEUR" ("TYPE_MODULATEUR_ID", "ETAPE_ID") AS + SELECT DISTINCT + etm.type_modulateur_id type_modulateur_id, + ep.etape_id etape_id +FROM + v_element_type_modulateur etm + JOIN element_pedagogique ep ON ep.id = etm.element_pedagogique_id AND ep.histo_destruction IS NULL; - PROCEDURE SYNCHRONISATION( table_name VARCHAR2, SYNC_FILRE CLOB DEFAULT '', IGNORE_UPD_COLS CLOB DEFAULT '' ); +-- V_ETAT_PAIEMENT +CREATE OR REPLACE FORCE VIEW "V_ETAT_PAIEMENT" ("PERIODE_PAIEMENT_ID", "STRUCTURE_ID", "INTERVENANT_TYPE_ID", "INTERVENANT_ID", "ANNEE_ID", "CENTRE_COUT_ID", "DOMAINE_FONCTIONNEL_ID", "ETAT", "STRUCTURE_LIBELLE", "DATE_MISE_EN_PAIEMENT", "PERIODE_PAIEMENT_LIBELLE", "INTERVENANT_TYPE", "INTERVENANT_CODE", "INTERVENANT_NOM", "INTERVENANT_NUMERO_INSEE", "CENTRE_COUT_CODE", "CENTRE_COUT_LIBELLE", "DOMAINE_FONCTIONNEL_CODE", "DOMAINE_FONCTIONNEL_LIBELLE", "HETD", "HETD_POURC", "HETD_MONTANT", "REM_FC_D714", "EXERCICE_AA", "EXERCICE_AA_MONTANT", "EXERCICE_AC", "EXERCICE_AC_MONTANT") AS + SELECT + periode_paiement_id, + structure_id, + intervenant_type_id, + intervenant_id, + annee_id, + centre_cout_id, + domaine_fonctionnel_id, + etat, + structure_libelle, + date_mise_en_paiement, + periode_paiement_libelle, + intervenant_type, + intervenant_code, + intervenant_nom, + intervenant_numero_insee, + centre_cout_code, + centre_cout_libelle, + domaine_fonctionnel_code, + domaine_fonctionnel_libelle, + hetd, + CASE WHEN pourc_ecart >= 0 THEN + CASE WHEN RANK() OVER (PARTITION BY periode_paiement_id, intervenant_id, etat, structure_id ORDER BY CASE WHEN (pourc_ecart >= 0 AND pourc_diff >= 0) OR (pourc_ecart < 0 AND pourc_diff < 0) THEN pourc_diff ELSE -1 END DESC) <= (ABS(pourc_ecart) / 0.001) THEN hetd_pourc + (pourc_ecart / ABS(pourc_ecart) * 0.001) ELSE hetd_pourc END + ELSE + CASE WHEN RANK() OVER (PARTITION BY periode_paiement_id, intervenant_id, etat, structure_id ORDER BY CASE WHEN (pourc_ecart >= 0 AND pourc_diff >= 0) OR (pourc_ecart < 0 AND pourc_diff < 0) THEN pourc_diff ELSE -1 END) <= (ABS(pourc_ecart) / 0.001) THEN hetd_pourc + (pourc_ecart / ABS(pourc_ecart) * 0.001) ELSE hetd_pourc END + END hetd_pourc, + hetd_montant, + rem_fc_d714, + exercice_aa, + exercice_aa_montant, + exercice_ac, + exercice_ac_montant +FROM +( +SELECT + dep3.*, + 1-CASE WHEN hetd > 0 THEN SUM( hetd_pourc ) OVER ( PARTITION BY periode_paiement_id, intervenant_id, etat, structure_id) ELSE 0 END pourc_ecart -END UNICAEN_IMPORT; +FROM ( -/ - --- UNICAEN_OSE_FORMULE -CREATE OR REPLACE PACKAGE "UNICAEN_OSE_FORMULE" AS +SELECT + periode_paiement_id, + structure_id, + intervenant_type_id, + intervenant_id, + annee_id, + centre_cout_id, + domaine_fonctionnel_id, + etat, + structure_libelle, + date_mise_en_paiement, + periode_paiement_libelle, + intervenant_type, + intervenant_code, + intervenant_nom, + intervenant_numero_insee, + centre_cout_code, + centre_cout_libelle, + domaine_fonctionnel_code, + domaine_fonctionnel_libelle, + hetd, + ROUND( CASE WHEN hetd > 0 THEN hetd / SUM( hetd ) OVER( PARTITION BY periode_paiement_id, intervenant_id, etat, structure_id) ELSE 0 END, 3 ) hetd_pourc, + ROUND( hetd * taux_horaire, 2 ) hetd_montant, + ROUND( fc_majorees * taux_horaire, 2 ) rem_fc_d714, + exercice_aa, + ROUND( exercice_aa * taux_horaire, 2 ) exercice_aa_montant, + exercice_ac, + ROUND( exercice_ac * taux_horaire, 2 ) exercice_ac_montant, - PROCEDURE CALCUL_RESULTAT_V2( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, ETAT_VOLUME_HORAIRE_ID NUMERIC ); - - PROCEDURE CALCUL_RESULTAT_V3( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, ETAT_VOLUME_HORAIRE_ID NUMERIC ); - PROCEDURE PURGE_EM_NON_FC; + (CASE WHEN hetd > 0 THEN hetd / SUM( hetd ) OVER( PARTITION BY periode_paiement_id, intervenant_id, etat, structure_id) ELSE 0 END) + - + ROUND( CASE WHEN hetd > 0 THEN hetd / SUM( hetd ) OVER( PARTITION BY periode_paiement_id, intervenant_id, etat, structure_id) ELSE 0 END, 3 ) pourc_diff -END UNICAEN_OSE_FORMULE; -/ +FROM ( + WITH dep AS ( -- détails par état de paiement + SELECT + CASE WHEN th.code = 'fc_majorees' THEN 1 ELSE 0 END is_fc_majoree, + p.id periode_paiement_id, + s.id structure_id, + i.id intervenant_id, + i.annee_id annee_id, + cc.id centre_cout_id, + df.id domaine_fonctionnel_id, + ti.id intervenant_type_id, + CASE + WHEN mep.date_mise_en_paiement IS NULL THEN 'a-mettre-en-paiement' + ELSE 'mis-en-paiement' + END etat, --- UNICAEN_TBL -CREATE OR REPLACE PACKAGE "UNICAEN_TBL" AS + p.libelle_long || ' ' || to_char( add_months( a.date_debut, p.ecart_mois ), 'yyyy' ) periode_paiement_libelle, + mep.date_mise_en_paiement date_mise_en_paiement, + s.libelle_court structure_libelle, + ti.libelle intervenant_type, + i.source_code intervenant_code, + i.nom_usuel || ' ' || i.prenom intervenant_nom, + TRIM( NVL(i.numero_insee,'') || NVL(TO_CHAR(i.numero_insee_cle,'00'),'') ) intervenant_numero_insee, + cc.source_code centre_cout_code, + cc.libelle centre_cout_libelle, + df.source_code domaine_fonctionnel_code, + df.libelle domaine_fonctionnel_libelle, + CASE WHEN th.code = 'fc_majorees' THEN 0 ELSE mep.heures END hetd, + CASE WHEN th.code = 'fc_majorees' THEN mep.heures ELSE 0 END fc_majorees, + mep.heures * 4 / 10 exercice_aa, + mep.heures * 6 / 10 exercice_ac, + --CASE WHEN th.code = 'fc_majorees' THEN 0 ELSE mep.heures END * 4 / 10 exercice_aa, + --CASE WHEN th.code = 'fc_majorees' THEN 0 ELSE mep.heures END * 6 / 10 exercice_ac, + OSE_FORMULE.GET_TAUX_HORAIRE_HETD( NVL(mep.date_mise_en_paiement,SYSDATE) ) taux_horaire + FROM + v_mep_intervenant_structure mis + JOIN mise_en_paiement mep ON mep.id = mis.mise_en_paiement_id AND mep.histo_destruction IS NULL + JOIN type_heures th ON th.id = mep.type_heures_id + JOIN centre_cout cc ON cc.id = mep.centre_cout_id -- pas d'historique pour les centres de coût, qui devront tout de même apparaitre mais en erreur + JOIN intervenant i ON i.id = mis.intervenant_id AND i.histo_destruction IS NULL + JOIN annee a ON a.id = i.annee_id + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN type_intervenant ti ON ti.id = si.type_intervenant_id + JOIN structure s ON s.id = mis.structure_id + LEFT JOIN validation v ON v.id = mep.validation_id AND v.histo_destruction IS NULL + LEFT JOIN domaine_fonctionnel df ON df.id = mis.domaine_fonctionnel_id + LEFT JOIN periode p ON p.id = mep.periode_paiement_id + ) + SELECT + periode_paiement_id, + structure_id, + intervenant_type_id, + intervenant_id, + annee_id, + centre_cout_id, + domaine_fonctionnel_id, + etat, + periode_paiement_libelle, + structure_libelle, + date_mise_en_paiement, + intervenant_type, + intervenant_code, + intervenant_nom, + intervenant_numero_insee, + centre_cout_code, + centre_cout_libelle, + domaine_fonctionnel_code, + domaine_fonctionnel_libelle, + SUM( hetd ) hetd, + SUM( fc_majorees ) fc_majorees, + SUM( exercice_aa ) exercice_aa, + SUM( exercice_ac ) exercice_ac, + taux_horaire + FROM + dep + GROUP BY + periode_paiement_id, + structure_id, + intervenant_type_id, + intervenant_id, + annee_id, + centre_cout_id, + domaine_fonctionnel_id, + etat, + periode_paiement_libelle, + structure_libelle, + date_mise_en_paiement, + intervenant_type, + intervenant_code, + intervenant_nom, + intervenant_numero_insee, + centre_cout_code, + centre_cout_libelle, + domaine_fonctionnel_code, + domaine_fonctionnel_libelle, + taux_horaire, + is_fc_majoree +) +dep2 +) +dep3 +) +dep4; - TYPE t_params IS RECORD ( - c1 VARCHAR2(30), v1 VARCHAR2(80), - c2 VARCHAR2(30), v2 VARCHAR2(80), - c3 VARCHAR2(30), v3 VARCHAR2(80), - c4 VARCHAR2(30), v4 VARCHAR2(80), - c5 VARCHAR2(30), v5 VARCHAR2(80), - sqlcond CLOB - ); +-- V_EXPORT_DEPASS_CHARGES +CREATE OR REPLACE FORCE VIEW "V_EXPORT_DEPASS_CHARGES" ("ANNEE_ID", "STRUCTURE_ID", "TYPE_INTERVENTION_ID", "ANNEE", "TYPE_VOLUME_HORAIRE_CODE", "INTERVENANT_CODE", "INTERVENANT_NOM", "INTERVENANT_DATE_NAISSANCE", "INTERVENANT_STATUT_LIBELLE", "INTERVENANT_TYPE_CODE", "INTERVENANT_TYPE_LIBELLE", "STRUCTURE_AFF_LIBELLE", "STRUCTURE_ENS_LIBELLE", "GROUPE_TYPE_FORMATION_LIBELLE", "TYPE_FORMATION_LIBELLE", "ETAPE_NIVEAU", "ETAPE_CODE", "ETAPE_LIBELLE", "ELEMENT_CODE", "ELEMENT_LIBELLE", "ELEMENT_TAUX_FI", "ELEMENT_TAUX_FC", "ELEMENT_TAUX_FA", "ELEMENT_SOURCE_LIBELLE", "PERIODE", "TYPE_INTERVENTION_CODE", "HEURES_SERVICE", "SOURCE_CHARGES", "HEURES_CHARGES", "GROUPES_CHARGES", "HEURES_DEPASSEMENT") AS + WITH c AS ( + SELECT + vhe.element_pedagogique_id, + vhe.type_intervention_id, + CASE WHEN MAX(vhe.groupes) IS NULL THEN + 'Charges OSE' ELSE s.libelle END source, + MAX(vhe.heures) heures, + COALESCE( MAX(vhe.groupes), ROUND(SUM(t.groupes),10) ) groupes - ACTIV_TRIGGERS BOOLEAN DEFAULT TRUE; - ACTIV_CALCULS BOOLEAN DEFAULT TRUE; - CALCUL_PROC_PARAMS t_params; + FROM + volume_horaire_ens vhe + JOIN parametre p ON p.nom = 'scenario_charges_services' + JOIN source s ON s.id = vhe.source_id + LEFT JOIN tbl_chargens t ON t.element_pedagogique_id = vhe.element_pedagogique_id + AND t.type_intervention_id = vhe.type_intervention_id + AND t.scenario_id = to_number(p.valeur) + WHERE + vhe.histo_destruction IS NULL + GROUP BY + vhe.element_pedagogique_id, + vhe.type_intervention_id, + s.libelle +), s AS ( + SELECT + i.annee_id, + vh.type_volume_horaire_id, + s.intervenant_id, + s.element_pedagogique_id, + vh.type_intervention_id, + SUM(vh.heures) heures + FROM + volume_horaire vh + JOIN service s ON s.id = vh.service_id + AND s.element_pedagogique_id IS NOT NULL + AND s.histo_destruction IS NULL + JOIN intervenant i ON i.id = s.intervenant_id + AND i.histo_destruction IS NULL + WHERE + vh.histo_destruction IS NULL + GROUP BY + i.annee_id, + vh.type_volume_horaire_id, + s.intervenant_id, + s.element_pedagogique_id, + vh.type_intervention_id +) +SELECT + s.annee_id annee_id, + sens.id structure_id, + tiv.id type_intervention_id, - FUNCTION MAKE_PARAMS( - c1 VARCHAR2 DEFAULT NULL, v1 VARCHAR2 DEFAULT NULL, - c2 VARCHAR2 DEFAULT NULL, v2 VARCHAR2 DEFAULT NULL, - c3 VARCHAR2 DEFAULT NULL, v3 VARCHAR2 DEFAULT NULL, - c4 VARCHAR2 DEFAULT NULL, v4 VARCHAR2 DEFAULT NULL, - c5 VARCHAR2 DEFAULT NULL, v5 VARCHAR2 DEFAULT NULL, - sqlcond CLOB DEFAULT NULL - ) RETURN t_params; + a.libelle annee, + tvh.libelle type_volume_horaire_code, + i.source_code intervenant_code, + i.nom_usuel || ' ' || i.prenom intervenant_nom, + i.date_naissance intervenant_date_naissance, + si.libelle intervenant_statut_libelle, - FUNCTION PARAMS_FROM_DEMS( TBL_NAME VARCHAR2 ) RETURN t_params; - FUNCTION PARAMS_TO_CONDS ( PARAMS UNICAEN_TBL.T_PARAMS ) RETURN CLOB; + ti.code intervenant_type_code, + ti.libelle intervenant_type_libelle, + CASE WHEN ti.code = 'P' THEN saff.libelle_court ELSE NULL END structure_aff_libelle, + sens.libelle_court structure_ens_libelle, - PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2 ); - PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2, CONDS CLOB ); - PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2, PARAMS t_params ); + gtf.libelle_court groupe_type_formation_libelle, + tf.libelle_court type_formation_libelle, + etp.niveau etape_niveau, + etp.source_code etape_code, + etp.libelle etape_libelle, + ep.source_code element_code, + ep.libelle element_libelle, + ep.taux_fi element_taux_fi, + ep.taux_fc element_taux_fc, + ep.taux_fa element_taux_fa, + src.libelle element_source_libelle, + p.libelle_court periode, + tiv.code type_intervention_code, + s.heures heures_service, + c.source source_charges, + c.heures heures_charges, + c.groupes groupes_charges, + s.heures - COALESCE(c.heures * c.groupes,0) heures_depassement +FROM + s + JOIN annee a ON a.id = s.annee_id + JOIN type_volume_horaire tvh ON tvh.id = s.type_volume_horaire_id + JOIN intervenant i ON i.id = s.intervenant_id + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN type_intervenant ti ON ti.id = si.type_intervenant_id + JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + JOIN etape etp ON etp.id = ep.etape_id + JOIN type_formation tf ON tf.id = etp.type_formation_id + JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id + JOIN structure saff ON saff.id = i.structure_id + JOIN structure sens ON sens.id = ep.structure_id + JOIN source src ON src.id = ep.source_id + JOIN type_intervention tiv ON tiv.id = s.type_intervention_id + LEFT JOIN c ON c.element_pedagogique_id = s.element_pedagogique_id + AND c.type_intervention_id = COALESCE(tiv.type_intervention_maquette_id,tiv.id) + LEFT JOIN periode p ON p.id = ep.periode_id; - PROCEDURE CALCULER( TBL_NAME VARCHAR2 ); - PROCEDURE CALCULER( TBL_NAME VARCHAR2, CONDS CLOB ); - PROCEDURE CALCULER( TBL_NAME VARCHAR2, PARAMS t_params ); - - PROCEDURE ANNULER_DEMANDES; - PROCEDURE ANNULER_DEMANDES( TBL_NAME VARCHAR2 ); - PROCEDURE CALCULER_DEMANDES; - - -- AUTOMATIC GENERATION -- - - PROCEDURE C_AGREMENT( PARAMS UNICAEN_TBL.T_PARAMS ); - PROCEDURE C_CHARGENS( PARAMS UNICAEN_TBL.T_PARAMS ); - PROCEDURE C_CHARGENS_SEUILS_DEF( PARAMS UNICAEN_TBL.T_PARAMS ); - PROCEDURE C_CLOTURE_REALISE( PARAMS UNICAEN_TBL.T_PARAMS ); - PROCEDURE C_CONTRAT( PARAMS UNICAEN_TBL.T_PARAMS ); - PROCEDURE C_DMEP_LIQUIDATION( PARAMS UNICAEN_TBL.T_PARAMS ); - PROCEDURE C_DOSSIER( PARAMS UNICAEN_TBL.T_PARAMS ); - PROCEDURE C_PAIEMENT( PARAMS UNICAEN_TBL.T_PARAMS ); - PROCEDURE C_PIECE_JOINTE( PARAMS UNICAEN_TBL.T_PARAMS ); - PROCEDURE C_PIECE_JOINTE_DEMANDE( PARAMS UNICAEN_TBL.T_PARAMS ); - PROCEDURE C_PIECE_JOINTE_FOURNIE( PARAMS UNICAEN_TBL.T_PARAMS ); - PROCEDURE C_SERVICE( PARAMS UNICAEN_TBL.T_PARAMS ); - PROCEDURE C_SERVICE_REFERENTIEL( PARAMS UNICAEN_TBL.T_PARAMS ); - PROCEDURE C_SERVICE_SAISIE( PARAMS UNICAEN_TBL.T_PARAMS ); - PROCEDURE C_VALIDATION_ENSEIGNEMENT( PARAMS UNICAEN_TBL.T_PARAMS ); - PROCEDURE C_VALIDATION_REFERENTIEL( PARAMS UNICAEN_TBL.T_PARAMS ); - - -- END OF AUTOMATIC GENERATION -- - -END UNICAEN_TBL; -/ - --------------------------------------------------- --- Vues --------------------------------------------------- - --- V_AGREMENT_EXPORT_CSV -CREATE OR REPLACE FORCE VIEW "V_AGREMENT_EXPORT_CSV" ("ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "ANNEE", "STRUCTURE_LIBELLE", "INTERVENANT_CODE", "INTERVENANT_NOM_USUEL", "INTERVENANT_NOM_PATRONYMIQUE", "INTERVENANT_PRENOM", "INTERVENANT_STATUT_LIBELLE", "PREMIER_RECRUTEMENT", "DISCIPLINE", "HETD_FI", "HETD_FA", "HETD_FC", "HETD_TOTAL", "TYPE_AGREMENT", "AGREE", "DATE_DECISION", "MODIFICATEUR", "DATE_MODIFICATION") AS - WITH heures_s AS ( +-- V_EXPORT_DMEP +CREATE OR REPLACE FORCE VIEW "V_EXPORT_DMEP" ("INTERVENANT_ID", "TYPE_INTERVENANT_ID", "ANNEE_ID", "STRUCTURE_AFF_ID", "STRUCTURE_ENS_ID", "STRUCTURE_ID", "CENTRE_COUT_ID", "ELEMENT_PEDAGOGIQUE_ID", "ETAPE_ID", "TYPE_FORMATION_ID", "GROUPE_TYPE_FORMATION_ID", "STATUT_INTERVENANT_ID", "PERIODE_ID", "INTERVENANT_CODE", "INTERVENANT_NOM", "INTERVENANT_DATE_NAISSANCE", "INTERVENANT_STATUT_LIBELLE", "INTERVENANT_TYPE_CODE", "INTERVENANT_TYPE_LIBELLE", "INTERVENANT_GRADE_CODE", "INTERVENANT_GRADE_LIBELLE", "INTERVENANT_DISCIPLINE_CODE", "INTERVENANT_DISCIPLINE_LIBELLE", "SERVICE_STRUCTURE_AFF_LIBELLE", "SERVICE_STRUCTURE_ENS_LIBELLE", "ETABLISSEMENT_LIBELLE", "GROUPE_TYPE_FORMATION_LIBELLE", "TYPE_FORMATION_LIBELLE", "ETAPE_NIVEAU", "ETAPE_CODE", "ETAPE_LIBELLE", "ELEMENT_CODE", "ELEMENT_LIBELLE", "ELEMENT_DISCIPLINE_CODE", "ELEMENT_DISCIPLINE_LIBELLE", "FONCTION_REFERENTIEL_LIBELLE", "ELEMENT_TAUX_FI", "ELEMENT_TAUX_FC", "ELEMENT_TAUX_FA", "ELEMENT_SOURCE_LIBELLE", "COMMENTAIRES", "ETAT", "TYPE_RESSOURCE_LIBELLE", "CENTRE_COUTS_CODE", "CENTRE_COUTS_LIBELLE", "DOMAINE_FONCTIONNEL_CODE", "DOMAINE_FONCTIONNEL_LIBELLE", "PERIODE_LIBELLE", "DATE_MISE_EN_PAIEMENT", "HEURES_FI", "HEURES_FA", "HEURES_FC", "HEURES_FC_MAJOREES", "HEURES_REFERENTIEL") AS + WITH mep AS ( SELECT - i.id intervenant_id, - COALESCE(ep.structure_id,i.structure_id) structure_id, - SUM(frs.service_fi) service_fi, - SUM(frs.service_fa) service_fa, - SUM(frs.service_fc) service_fc, - SUM(frs.heures_compl_fi) heures_compl_fi, - SUM(frs.heures_compl_fa) heures_compl_fa, - SUM(frs.heures_compl_fc) heures_compl_fc, - SUM(frs.heures_compl_fc_majorees) heures_compl_fc_majorees, - SUM(frs.total) total + frs.service_id, + frsr.service_referentiel_id, + mep.date_mise_en_paiement, + mep.periode_paiement_id, + mep.centre_cout_id, + mep.domaine_fonctionnel_id, + + sum(case when th.code = 'fi' then mep.heures else 0 end) heures_fi, + sum(case when th.code = 'fa' then mep.heures else 0 end) heures_fa, + sum(case when th.code = 'fc' then mep.heures else 0 end) heures_fc, + sum(case when th.code = 'fc_majorees' then mep.heures else 0 end) heures_fc_majorees, + sum(case when th.code = 'referentiel' then mep.heures else 0 end) heures_referentiel FROM - formule_resultat_service frs - JOIN type_volume_horaire tvh ON tvh.code = 'PREVU' - JOIN etat_volume_horaire evh ON evh.code = 'valide' - JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id - AND fr.type_volume_horaire_id = tvh.id - AND fr.etat_volume_horaire_id = evh.id - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN service s ON s.id = frs.service_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + mise_en_paiement mep + JOIN type_heures th ON th.id = mep.type_heures_id + LEFT JOIN formule_resultat_service frs ON frs.id = mep.formule_res_service_id + LEFT JOIN formule_resultat_service_ref frsr ON frsr.id = mep.formule_res_service_ref_id + WHERE + mep.histo_destruction IS NULL GROUP BY - i.id, - ep.structure_id, - i.structure_id + frs.service_id, + frsr.service_referentiel_id, + mep.date_mise_en_paiement, + mep.periode_paiement_id, + mep.centre_cout_id, + mep.domaine_fonctionnel_id ) SELECT - a.id annee_id, - i.id intervenant_id, - s.id structure_id, - - a.libelle annee, - s.libelle_court structure_libelle, - i.code intervenant_code, - i.nom_usuel intervenant_nom_usuel, - i.nom_patronymique intervenant_nom_patronymique, - i.prenom intervenant_prenom, - - si.libelle intervenant_statut_libelle, - i.premier_recrutement premier_recrutement, - d.libelle_court discipline, - - COALESCE(heures_s.service_fi, fr.service_fi) - + COALESCE(heures_s.heures_compl_fi, fr.heures_compl_fi) - hetd_fi, - COALESCE(heures_s.service_fa, fr.service_fa) - + COALESCE(heures_s.heures_compl_fa, fr.heures_compl_fa) - hetd_fa, - COALESCE(heures_s.service_fc, fr.service_fc) - + COALESCE(heures_s.heures_compl_fc, fr.heures_compl_fc) - + COALESCE(heures_s.heures_compl_fc_majorees, fr.heures_compl_fc_majorees) - hetd_fc, - COALESCE(heures_s.total, fr.total) hetd_total, - - - - - tagr.libelle type_agrement, - CASE WHEN agr.id IS NULL THEN 0 ELSE 1 END agree, - agr.date_decision date_decision, - u.display_name modificateur, - agr.histo_modification date_modification -FROM - tbl_agrement ta - JOIN intervenant i ON i.id = ta.intervenant_id - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN annee a ON a.id = ta.annee_id - JOIN type_agrement tagr ON tagr.id = ta.type_agrement_id - JOIN type_volume_horaire tvh ON tvh.code = 'PREVU' - JOIN etat_volume_horaire evh ON evh.code = 'valide' - - - LEFT JOIN structure s ON s.id = ta.structure_id - LEFT JOIN agrement agr ON agr.id = ta.agrement_id - LEFT JOIN utilisateur u ON u.id = agr.histo_modificateur_id - LEFT JOIN discipline d ON d.id = i.discipline_id - - LEFT JOIN formule_resultat fr ON fr.intervenant_id = i.id - AND fr.type_volume_horaire_id = tvh.id - AND fr.etat_volume_horaire_id = evh.id - - LEFT JOIN heures_s ON heures_s.intervenant_id = i.id - AND heures_s.structure_id = s.id; - --- V_CENTRE_COUT_STRUCTURE -CREATE OR REPLACE FORCE VIEW "V_CENTRE_COUT_STRUCTURE" ("CENTRE_COUT_ID", "STRUCTURE_ID") AS - SELECT - ccs.centre_cout_id, - ccs.structure_id -FROM - centre_cout_structure ccs -WHERE - ccs.histo_destruction IS NULL; - --- V_CENTRE_COUT_TYPE_HEURES -CREATE OR REPLACE FORCE VIEW "V_CENTRE_COUT_TYPE_HEURES" ("CENTRE_COUT_ID", "TYPE_HEURES_ID") AS - select - cc.id centre_cout_id, - th.id type_heures_id -from - centre_cout cc - join type_ressource tr on tr.id = cc.type_ressource_id - join cc_activite cca on cca.id = cc.activite_id - join type_heures th on th.code = decode(tr.fi + cca.fi, 2, 'fi', null) - -union all - -select - cc.id centre_cout_id, - th.id type_heures_id -from - centre_cout cc - join type_ressource tr on tr.id = cc.type_ressource_id - join cc_activite cca on cca.id = cc.activite_id - join type_heures th on th.code = decode(tr.fc + cca.fc, 2, 'fc', null) - -union all - -select - cc.id centre_cout_id, - th.id type_heures_id -from - centre_cout cc - join type_ressource tr on tr.id = cc.type_ressource_id - join cc_activite cca on cca.id = cc.activite_id - join type_heures th on th.code = decode(tr.fa + cca.fa, 2, 'fa', null) - -union all + i.id intervenant_id, + ti.id type_intervenant_id, + i.annee_id annee_id, + saff.id structure_aff_id, + sens.id structure_ens_id, + NVL(sens.id,saff.id) structure_id, + cc.id centre_cout_id, + ep.id element_pedagogique_id, + etp.id etape_id, + tf.id type_formation_id, + gtf.id groupe_type_formation_id, + si.id statut_intervenant_id, + p.id periode_id, -select - cc.id centre_cout_id, - th.id type_heures_id -from - centre_cout cc - join type_ressource tr on tr.id = cc.type_ressource_id - join cc_activite cca on cca.id = cc.activite_id - join type_heures th on th.code = decode(tr.referentiel + cca.referentiel, 2, 'referentiel', null) + i.source_code intervenant_code, + i.nom_usuel || ' ' || i.prenom intervenant_nom, + i.date_naissance intervenant_date_naissance, + si.libelle intervenant_statut_libelle, + ti.code intervenant_type_code, + ti.libelle intervenant_type_libelle, + g.source_code intervenant_grade_code, + g.libelle_court intervenant_grade_libelle, + di.source_code intervenant_discipline_code, + di.libelle_court intervenant_discipline_libelle, + saff.libelle_court service_structure_aff_libelle, -union all + sens.libelle_court service_structure_ens_libelle, + etab.libelle etablissement_libelle, + gtf.libelle_court groupe_type_formation_libelle, + tf.libelle_court type_formation_libelle, + etp.niveau etape_niveau, + etp.source_code etape_code, + etp.libelle etape_libelle, + ep.source_code element_code, + ep.libelle element_libelle, + de.source_code element_discipline_code, + de.libelle_court element_discipline_libelle, + fr.libelle_long fonction_referentiel_libelle, + ep.taux_fi element_taux_fi, + ep.taux_fc element_taux_fc, + ep.taux_fa element_taux_fa, + src.libelle element_source_libelle, + COALESCE(to_char(s.description),to_char(sr.commentaires)) commentaires, -select - cc.id centre_cout_id, - th.id type_heures_id -from - centre_cout cc - join type_ressource tr on tr.id = cc.type_ressource_id - join cc_activite cca on cca.id = cc.activite_id - join type_heures th on th.code = decode(tr.fc_majorees + cca.fc_majorees, 2, 'fc_majorees', null); + CASE + WHEN mep.date_mise_en_paiement IS NULL THEN 'a-mettre-en-paiement' + ELSE 'mis-en-paiement' + END etat, + tr.libelle type_ressource_libelle, + cc.source_code centre_couts_code, + cc.libelle centre_couts_libelle, + df.source_code domaine_fonctionnel_code, + df.libelle domaine_fonctionnel_libelle, + p.libelle_long periode_libelle, + mep.date_mise_en_paiement date_mise_en_paiement, + mep.heures_fi heures_fi, + mep.heures_fa heures_fa, + mep.heures_fc heures_fc, + mep.heures_fc_majorees heures_fc_majorees, + mep.heures_referentiel heures_referentiel +FROM + mep + JOIN centre_cout cc ON cc.id = mep.centre_cout_id + JOIN type_ressource tr ON tr.id = cc.type_ressource_id + LEFT JOIN service s ON s.id = mep.service_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + LEFT JOIN source src ON src.id = ep.source_id OR (ep.source_id IS NULL AND src.code = 'OSE') + LEFT JOIN discipline de ON de.id = ep.discipline_id + LEFT JOIN etape etp ON etp.id = ep.etape_id + LEFT JOIN type_formation tf ON tf.id = etp.type_formation_id + LEFT JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id + LEFT JOIN service_referentiel sr ON sr.id = mep.service_referentiel_id + LEFT JOIN fonction_referentiel fr ON fr.id = sr.fonction_id + JOIN intervenant i ON i.id = NVL( s.intervenant_id, sr.intervenant_id ) + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN type_intervenant ti ON ti.id = si.type_intervenant_id + LEFT JOIN grade g ON g.id = i.grade_id + LEFT JOIN discipline di ON di.id = i.discipline_id + LEFT JOIN structure saff ON saff.id = i.structure_id AND ti.code = 'P' + LEFT JOIN structure sens ON sens.id = NVL( ep.structure_id, sr.structure_id ) + JOIN etablissement etab ON etab.id = NVL( s.etablissement_id, ose_parametre.get_etablissement() ) + LEFT JOIN periode p ON p.id = mep.periode_paiement_id + LEFT JOIN domaine_fonctionnel df ON df.id = mep.domaine_fonctionnel_id +ORDER BY + intervenant_nom, + service_structure_aff_libelle, + service_structure_ens_libelle, + etape_libelle, + element_libelle; --- V_CHARGENS_CALC_EFFECTIF -CREATE OR REPLACE FORCE VIEW "V_CHARGENS_CALC_EFFECTIF" ("NOEUD_ID", "SCENARIO_ID", "SCENARIO_NOEUD_ID", "TYPE_HEURES_ID", "ETAPE_ID", "EFFECTIF") AS +-- V_EXPORT_PAIEMENT_WINPAIE +CREATE OR REPLACE FORCE VIEW "V_EXPORT_PAIEMENT_WINPAIE" ("TYPE_INTERVENANT_ID", "ANNEE_ID", "STRUCTURE_ID", "PERIODE_PAIEMENT_ID", "INTERVENANT_ID", "INSEE", "NOM", "CARTE", "CODE_ORIGINE", "RETENUE", "SENS", "MC", "NBU", "MONTANT", "LIBELLE") AS SELECT - gl.noeud_inf_id noeud_id, - snsup.scenario_id scenario_id, - sninf.id scenario_noeud_id, - sne.type_heures_id type_heures_id, - sne.etape_id etape_id, --- sne.effectif effectif, --- slsup.choix_minimum choix_minimum, --- slsup.choix_maximum choix_maximum, --- COALESCE(slinf.poids,1) poids, --- COALESCE(sninf.assiduite,1) assiduite, --- MIN(COALESCE(sl.poids,1)) min_poids, --- MAX(COALESCE(sl.poids,1)) max_poids, --- SUM(COALESCE(sl.poids,1)) total_poids, --- COUNT(*) nb_choix, - OSE_CHARGENS.CALC_COEF( - slsup.choix_minimum, - slsup.choix_maximum, - COALESCE(slinf.poids,1), - MAX(COALESCE(sl.poids,1)), - SUM(COALESCE(sl.poids,1)), - COUNT(*) - ) * sne.effectif effectif -FROM - v_chargens_grands_liens gl - JOIN scenario_noeud snsup ON snsup.noeud_id = gl.noeud_sup_id - AND snsup.histo_destruction IS NULL - - JOIN scenario_noeud_effectif sne ON sne.scenario_noeud_id = snsup.id - - LEFT JOIN scenario_lien slsup ON slsup.histo_destruction IS NULL - AND slsup.lien_id = gl.lien_sup_id - AND slsup.scenario_id = snsup.scenario_id + si.type_intervenant_id type_intervenant_id, + i.annee_id, + t2.structure_id, + t2.periode_paiement_id, + i.id intervenant_id, - LEFT JOIN scenario_lien slinf ON slinf.histo_destruction IS NULL - AND slinf.lien_id = gl.lien_inf_id - AND slinf.scenario_id = snsup.scenario_id - - LEFT JOIN scenario_noeud sninf ON sninf.noeud_id = gl.noeud_inf_id - AND sninf.scenario_id = snsup.scenario_id - AND sninf.histo_destruction IS NULL + NVL(i.numero_insee,'') || TRIM(NVL(TO_CHAR(i.numero_insee_cle,'00'),'')) insee, + i.nom_usuel || ',' || i.prenom nom, + to_char((SELECT valeur FROM parametre WHERE nom = 'winpaie_carte' AND histo_destruction IS NULL)) carte, + t2.code_origine, + to_char((SELECT valeur FROM parametre WHERE nom = 'winpaie_retenue' AND histo_destruction IS NULL)) retenue, + to_char((SELECT valeur FROM parametre WHERE nom = 'winpaie_sens' AND histo_destruction IS NULL)) sens, + to_char((SELECT valeur FROM parametre WHERE nom = 'winpaie_mc' AND histo_destruction IS NULL)) mc, + t2.nbu, + OSE_FORMULE.GET_TAUX_HORAIRE_HETD( NVL(t2.date_mise_en_paiement,SYSDATE) ) montant, + COALESCE(t2.unite_budgetaire,'') || ' ' || to_char(i.annee_id) || ' ' || to_char(i.annee_id+1) + /* || ' ' || to_char(FLOOR(t2.nbu)) || ' H' || CASE + WHEN to_char(ROUND( t2.nbu-FLOOR(t2.nbu), 2 )*100,'00') = ' 00' THEN '' + ELSE to_char(ROUND( t2.nbu-FLOOR(t2.nbu), 2 )*100,'00') END*/ libelle +FROM ( + SELECT + structure_id, + periode_paiement_id, + intervenant_id, + code_origine, + ROUND( SUM(nbu), 2) nbu, + unite_budgetaire, + date_mise_en_paiement + FROM ( + WITH mep AS ( + SELECT + -- pour les filtres + mep.id, + mis.structure_id, + mep.periode_paiement_id, + mis.intervenant_id, + mep.heures, + cc.unite_budgetaire, + mep.date_mise_en_paiement + FROM + v_mep_intervenant_structure mis + JOIN mise_en_paiement mep ON mep.id = mis.mise_en_paiement_id AND mep.histo_destruction IS NULL + JOIN centre_cout cc ON cc.id = mep.centre_cout_id + JOIN type_heures th ON th.id = mep.type_heures_id + WHERE + mep.date_mise_en_paiement IS NOT NULL + AND mep.periode_paiement_id IS NOT NULL + AND th.eligible_extraction_paie = 1 + ) + SELECT + mep.id, + mep.structure_id, + mep.periode_paiement_id, + mep.intervenant_id, + 2 code_origine, + mep.heures * 4 / 10 nbu, + mep.unite_budgetaire, + mep.date_mise_en_paiement + FROM + mep + WHERE + mep.heures * 4 / 10 > 0 - JOIN lien l ON l.noeud_sup_id = gl.noeud_liste_id - AND l.histo_destruction IS NULL + UNION - LEFT JOIN scenario_lien sl ON sl.lien_id = l.id - AND sl.scenario_id = snsup.scenario_id - AND sl.histo_destruction IS NULL + SELECT + mep.id, + mep.structure_id, + mep.periode_paiement_id, + mep.intervenant_id, + 1 code_origine, + mep.heures * 6 / 10 nbu, + mep.unite_budgetaire, + mep.date_mise_en_paiement + FROM + mep + WHERE + mep.heures * 6 / 10 > 0 + ) t1 + GROUP BY + structure_id, + periode_paiement_id, + intervenant_id, + code_origine, + unite_budgetaire, + date_mise_en_paiement +) t2 +JOIN intervenant i ON i.id = t2.intervenant_id +JOIN statut_intervenant si ON si.id = i.statut_id +JOIN structure s ON s.id = t2.structure_id; -WHERE - (slsup.actif = 1 OR slsup.actif IS NULL) - AND (slinf.actif = 1 OR slinf.actif IS NULL) - AND (sl.actif = 1 OR sl.actif IS NULL) - AND (snsup.scenario_id = 0 OR NULL IS NULL) - AND (sne.type_heures_id = 0 OR NULL IS NULL) - AND (sne.etape_id = 0 OR NULL IS NULL) -GROUP BY - gl.noeud_sup_id, - gl.noeud_inf_id, - snsup.scenario_id, - sninf.id, - sne.type_heures_id, - sne.etape_id, - sne.effectif, - slsup.choix_minimum, - slsup.choix_maximum, - slinf.poids; +-- V_EXPORT_PILOTAGE_ECARTS_ETATS +CREATE OR REPLACE FORCE VIEW "V_EXPORT_PILOTAGE_ECARTS_ETATS" ("ANNEE_ID", "ANNEE", "ETAT", "TYPE_HEURES_ID", "TYPE_HEURES", "STRUCTURE_ID", "STRUCTURE", "INTERVENANT_ID", "INTERVENANT_TYPE", "INTERVENANT_CODE", "INTERVENANT", "HETD_PAYABLES") AS + SELECT + t3.annee_id annee_id, + t3.annee_id || '-' || (t3.annee_id+1) annee, + t3.etat, + t3.type_heures_id, + t3.type_heures, + s.id structure_id, + s.libelle_court structure, + i.id intervenant_id, + ti.libelle intervenant_type, + i.source_code intervenant_code, + i.prenom || ' ' || i.nom_usuel intervenant, + t3.hetd_payables +FROM --- V_CHARGENS_EXPORT_CSV -CREATE OR REPLACE FORCE VIEW "V_CHARGENS_EXPORT_CSV" ("ANNEE_ID", "SCENARIO_ID", "STRUCTURE_PORTEUSE_ID", "STRUCTURE_INS_ID", "ANNEE", "STRUCTURE_PORTEUSE_CODE", "STRUCTURE_PORTEUSE_LIBELLE", "ETAPE_PORTEUSE_CODE", "ETAPE_PORTEUSE_LIBELLE", "STRUCTURE_INS_CODE", "STRUCTURE_INS_LIBELLE", "ETAPE_INS_CODE", "ETAPE_INS_LIBELLE", "ELEMENT_CODE", "ELEMENT_LIBELLE", "PERIODE", "DISCIPLINE_CODE", "DISCIPLINE_LIBELLE", "TYPE_HEURES", "TYPE_INTERVENTION", "SEUIL_OUVERTURE", "SEUIL_DEDOUBLEMENT", "ASSIDUITE", "EFFECTIF_ETAPE", "EFFECTIF_ELEMENT", "HEURES_ENS", "GROUPES", "HEURES", "HETD") AS +( +SELECT + annee_id, + etat, + type_heures_id, + type_heures, + structure_id, + intervenant_id, + sum(hetd) hetd_payables +FROM ( SELECT - a.id annee_id, - cph.scenario_id scenario_id, - sp.id structure_porteuse_id, - si.id structure_ins_id, + annee_id, + LOWER(tvh.code) || '-' || evh.code etat, + 10*tvh.ordre + evh.ordre ordre, + type_heures_id, + type_heures, + structure_id, + intervenant_id, + SUM(hetd) hetd + FROM ( + SELECT + i.annee_id, + fr.type_volume_horaire_id, + fr.etat_volume_horaire_id, + th.id type_heures_id, + th.code type_heures, + COALESCE(ep.structure_id,i.structure_id) structure_id, + fr.intervenant_id, + SUM(frs.heures_compl_fi) hetd + FROM + formule_resultat_service frs + JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id + JOIN service s ON s.id = frs.service_id + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN type_heures th ON th.code = 'fi' + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + GROUP BY + i.annee_id, + fr.type_volume_horaire_id, + fr.etat_volume_horaire_id, + th.id, th.code, + fr.intervenant_id, + ep.structure_id, + i.structure_id - a.libelle annee, + UNION ALL - sp.source_code structure_porteuse_code, - sp.libelle_court structure_porteuse_libelle, - eport.code etape_porteuse_code, - eport.libelle etape_porteuse_libelle, - - si.source_code structure_ins_code, - si.libelle_court structure_ins_libelle, - eins.code etape_ins_code, - eins.libelle etape_ins_libelle, + SELECT + i.annee_id, + fr.type_volume_horaire_id, + fr.etat_volume_horaire_id, + th.id type_heures_id, + th.code type_heures, + COALESCE(ep.structure_id,i.structure_id) structure_id, + fr.intervenant_id, + SUM(frs.heures_compl_fa) hetd + FROM + formule_resultat_service frs + JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id + JOIN service s ON s.id = frs.service_id + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN type_heures th ON th.code = 'fa' + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + GROUP BY + i.annee_id, + fr.type_volume_horaire_id, + fr.etat_volume_horaire_id, + th.id, th.code, + fr.intervenant_id, + ep.structure_id, + i.structure_id - ep.code element_code, - ep.libelle element_libelle, - p.libelle_court periode, - d.source_code discipline_code, - d.libelle_court discipline_libelle, - th.libelle_court type_heures, - ti.code type_intervention, + UNION ALL - cph.ouverture seuil_ouverture, - cph.dedoublement seuil_dedoublement, - cph.assiduite assiduite, - sne.effectif effectif_etape, - cph.effectif effectif_element, - cph.heures_ens heures_ens, - cph.groupes groupes, - cph.heures heures, - cph.hetd hetd - FROM - tbl_chargens cph - JOIN annee a ON a.id = cph.annee_id - JOIN structure sp ON sp.id = cph.structure_id - JOIN etape eport ON eport.id = cph.etape_id - JOIN etape eins ON eins.id = cph.etape_ens_id - JOIN structure si ON si.id = eins.structure_id - JOIN element_pedagogique ep ON ep.id = cph.element_pedagogique_id - JOIN type_heures th ON th.id = cph.type_heures_id - JOIN type_intervention ti ON ti.id = cph.type_intervention_id - LEFT JOIN periode p ON p.id = ep.periode_id - LEFT JOIN discipline d ON d.id = ep.discipline_id - LEFT JOIN noeud n ON n.etape_id = eins.id - AND n.histo_destruction IS NULL - - LEFT JOIN scenario_noeud sn ON sn.noeud_id = n.id - AND sn.histo_destruction IS NULL - AND sn.scenario_id = cph.scenario_id - - LEFT JOIN scenario_noeud_effectif sne ON sne.scenario_noeud_id = sn.id - AND sne.type_heures_id = cph.type_heures_id - AND sne.etape_id = n.etape_id -ORDER BY - structure_porteuse_code, - etape_porteuse_code, - structure_ins_code, - etape_ins_code, - element_code, - type_heures, - type_intervention; + SELECT + i.annee_id, + fr.type_volume_horaire_id, + fr.etat_volume_horaire_id, + th.id type_heures_id, + th.code type_heures, + COALESCE(ep.structure_id,i.structure_id) structure_id, + fr.intervenant_id, + SUM(frs.heures_compl_fc) hetd + FROM + formule_resultat_service frs + JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id + JOIN service s ON s.id = frs.service_id + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN type_heures th ON th.code = 'fc' + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + GROUP BY + i.annee_id, + fr.type_volume_horaire_id, + fr.etat_volume_horaire_id, + th.id, th.code, + fr.intervenant_id, + ep.structure_id, + i.structure_id + + UNION ALL + + SELECT + i.annee_id, + fr.type_volume_horaire_id, + fr.etat_volume_horaire_id, + th.id type_heures_id, + th.code type_heures, + sr.structure_id, + fr.intervenant_id, + sum( frsr.heures_compl_referentiel ) hetd + FROM + formule_resultat_service_ref frsr + JOIN formule_resultat fr ON fr.id = frsr.formule_resultat_id + JOIN service_referentiel sr ON sr.id = frsr.service_referentiel_id + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN type_heures th ON th.code = 'referentiel' + GROUP BY + i.annee_id, + fr.type_volume_horaire_id, + fr.etat_volume_horaire_id, + th.id, th.code, + fr.intervenant_id, + sr.structure_id + ) t1 + JOIN type_volume_horaire tvh ON tvh.id = t1.type_volume_horaire_id + JOIN etat_volume_horaire evh ON evh.id = t1.etat_volume_horaire_id + GROUP BY + annee_id, tvh.code, evh.code, tvh.ordre, evh.ordre, type_heures_id, type_heures, structure_id, intervenant_id + + UNION ALL --- V_CHARGENS_GRANDS_LIENS -CREATE OR REPLACE FORCE VIEW "V_CHARGENS_GRANDS_LIENS" ("NOEUD_SUP_ID", "LIEN_SUP_ID", "NOEUD_LISTE_ID", "LIEN_INF_ID", "NOEUD_INF_ID") AS SELECT - nsup.id noeud_sup_id, - lsup.id lien_sup_id, - nl.id noeud_liste_id, - linf.id lien_inf_id, - ninf.id noeud_inf_id -FROM - noeud nsup + annee_id, + etat, + ordre, + type_heures_id, + type_heures, + structure_id, + intervenant_id, + SUM(hetd) hetd + FROM ( + SELECT + i.annee_id, + 'demande-mise-en-paiement' etat, + 90 ordre, + th.id type_heures_id, + th.code type_heures, + COALESCE( sr.structure_id, ep.structure_id, i.structure_id ) structure_id, + i.id intervenant_id, + mep.heures hetd + FROM + mise_en_paiement mep + JOIN type_heures th ON th.id = mep.type_heures_id + JOIN centre_cout cc ON cc.id = mep.centre_cout_id + LEFT JOIN formule_resultat_service frs ON frs.id = mep.formule_res_service_id + LEFT JOIN formule_resultat_service_ref frsr ON frsr.id = mep.formule_res_service_ref_id + LEFT JOIN formule_resultat fr ON fr.id = COALESCE(frs.formule_resultat_id, frsr.formule_resultat_id) + LEFT JOIN service s ON s.id = frs.service_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + LEFT JOIN service_referentiel sr ON sr.id = frsr.service_referentiel_id + LEFT JOIN intervenant i ON i.id = fr.intervenant_id + WHERE + mep.histo_destruction IS NULL + AND th.eligible_extraction_paie = 1 - JOIN lien lsup ON lsup.noeud_sup_id = nsup.id - AND lsup.histo_destruction IS NULL + UNION ALL - JOIN noeud nl ON nl.liste = 1 - AND nl.histo_destruction IS NULL - AND nl.id = lsup.noeud_inf_id - - JOIN lien linf ON linf.noeud_sup_id = nl.id - AND linf.histo_destruction IS NULL - - JOIN noeud ninf ON ninf.id = linf.noeud_inf_id - AND ninf.histo_destruction IS NULL - AND ninf.liste = 0 -WHERE - nsup.histo_destruction IS NULL - AND nsup.liste = 0; + SELECT + i.annee_id, + 'mise-en-paiement' etat, + 91 ordre, + th.id type_heures_id, + th.code type_heures, + COALESCE( sr.structure_id, ep.structure_id, i.structure_id ) structure_id, + i.id intervenant_id, + mep.heures hetd + FROM + mise_en_paiement mep + JOIN type_heures th ON th.id = mep.type_heures_id + JOIN centre_cout cc ON cc.id = mep.centre_cout_id + LEFT JOIN formule_resultat_service frs ON frs.id = mep.formule_res_service_id + LEFT JOIN formule_resultat_service_ref frsr ON frsr.id = mep.formule_res_service_ref_id + LEFT JOIN formule_resultat fr ON fr.id = COALESCE(frs.formule_resultat_id, frsr.formule_resultat_id) + LEFT JOIN service s ON s.id = frs.service_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + LEFT JOIN service_referentiel sr ON sr.id = frsr.service_referentiel_id + LEFT JOIN intervenant i ON i.id = fr.intervenant_id + WHERE + mep.histo_destruction IS NULL + AND th.eligible_extraction_paie = 1 + AND mep.PERIODE_PAIEMENT_ID IS NOT NULL + ) t1 + GROUP BY + annee_id, etat, ordre, type_heures_id, type_heures, structure_id, intervenant_id +) t2 +GROUP BY + annee_id, + etat, ordre + ,type_heures_id, type_heures + ,structure_id + ,intervenant_id +ORDER BY + annee_id, ordre --- V_CHARGENS_PRECALCUL_HEURES -CREATE OR REPLACE FORCE VIEW "V_CHARGENS_PRECALCUL_HEURES" ("ANNEE_ID", "NOEUD_ID", "SCENARIO_ID", "TYPE_HEURES_ID", "TYPE_INTERVENTION_ID", "ELEMENT_PEDAGOGIQUE_ID", "ETAPE_ID", "ETAPE_ENS_ID", "STRUCTURE_ID", "OUVERTURE", "DEDOUBLEMENT", "ASSIDUITE", "EFFECTIF", "HEURES_ENS", "GROUPES", "HEURES", "HETD") AS - WITH t AS ( -SELECT - n.annee_id annee_id, - n.noeud_id noeud_id, - sn.scenario_id scenario_id, - sne.type_heures_id type_heures_id, - ti.id type_intervention_id, +) t3 + JOIN intervenant i ON i.id = t3.intervenant_id + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN type_intervenant ti ON ti.id = si.type_intervenant_id + JOIN structure s ON s.id = t3.structure_id; - n.element_pedagogique_id element_pedagogique_id, - n.element_pedagogique_etape_id etape_id, - sne.etape_id etape_ens_id, - n.structure_id structure_id, - - vhe.heures heures, - vhe.heures * ti.taux_hetd_service hetd, - - GREATEST(COALESCE(sns.ouverture, 1),1) ouverture, - GREATEST(COALESCE(sns.dedoublement, snsetp.dedoublement, csdd.dedoublement,1),1) dedoublement, - COALESCE(sns.assiduite,1) assiduite, - sne.effectif*COALESCE(sns.assiduite,1) effectif, +-- V_EXPORT_SERVICE +CREATE OR REPLACE FORCE VIEW "V_EXPORT_SERVICE" ("ID", "SERVICE_ID", "INTERVENANT_ID", "TYPE_INTERVENANT_ID", "ANNEE_ID", "SERVICE_DATE_MODIFICATION", "TYPE_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID", "ETABLISSEMENT_ID", "STRUCTURE_AFF_ID", "STRUCTURE_ENS_ID", "NIVEAU_FORMATION_ID", "ETAPE_ID", "ELEMENT_PEDAGOGIQUE_ID", "PERIODE_ID", "TYPE_INTERVENTION_ID", "FONCTION_REFERENTIEL_ID", "TYPE_ETAT", "INTERVENANT_CODE", "INTERVENANT_NOM", "INTERVENANT_DATE_NAISSANCE", "INTERVENANT_STATUT_LIBELLE", "INTERVENANT_TYPE_CODE", "INTERVENANT_TYPE_LIBELLE", "INTERVENANT_GRADE_CODE", "INTERVENANT_GRADE_LIBELLE", "INTERVENANT_DISCIPLINE_CODE", "INTERVENANT_DISCIPLINE_LIBELLE", "SERVICE_STRUCTURE_AFF_LIBELLE", "SERVICE_STRUCTURE_ENS_LIBELLE", "ETABLISSEMENT_LIBELLE", "GROUPE_TYPE_FORMATION_LIBELLE", "TYPE_FORMATION_LIBELLE", "ETAPE_NIVEAU", "ETAPE_CODE", "ETAPE_LIBELLE", "ELEMENT_CODE", "ELEMENT_LIBELLE", "ELEMENT_DISCIPLINE_CODE", "ELEMENT_DISCIPLINE_LIBELLE", "FONCTION_REFERENTIEL_LIBELLE", "ELEMENT_TAUX_FI", "ELEMENT_TAUX_FC", "ELEMENT_TAUX_FA", "SERVICE_REF_FORMATION", "COMMENTAIRES", "PERIODE_LIBELLE", "ELEMENT_PONDERATION_COMPL", "ELEMENT_SOURCE_LIBELLE", "HEURES", "HEURES_REF", "HEURES_NON_PAYEES", "SERVICE_STATUTAIRE", "SERVICE_DU_MODIFIE", "SERVICE_FI", "SERVICE_FA", "SERVICE_FC", "SERVICE_REFERENTIEL", "HEURES_COMPL_FI", "HEURES_COMPL_FA", "HEURES_COMPL_FC", "HEURES_COMPL_FC_MAJOREES", "HEURES_COMPL_REFERENTIEL", "TOTAL", "SOLDE", "DATE_CLOTURE_REALISE") AS + WITH t AS ( SELECT + 'vh_' || vh.id id, + s.id service_id, + s.intervenant_id intervenant_id, + vh.type_volume_horaire_id type_volume_horaire_id, + fr.etat_volume_horaire_id etat_volume_horaire_id, + s.element_pedagogique_id element_pedagogique_id, + s.etablissement_id etablissement_id, + NULL structure_aff_id, + NULL structure_ens_id, + vh.periode_id periode_id, + vh.type_intervention_id type_intervention_id, + NULL fonction_referentiel_id, - SUM(sne.effectif*COALESCE(sns.assiduite,1)) OVER (PARTITION BY n.noeud_id, sn.scenario_id, ti.id) t_effectif + s.description service_description, + vh.heures heures, + 0 heures_ref, + 0 heures_non_payees, + frvh.service_fi service_fi, + frvh.service_fa service_fa, + frvh.service_fc service_fc, + 0 service_referentiel, + frvh.heures_compl_fi heures_compl_fi, + frvh.heures_compl_fa heures_compl_fa, + frvh.heures_compl_fc heures_compl_fc, + frvh.heures_compl_fc_majorees heures_compl_fc_majorees, + 0 heures_compl_referentiel, + frvh.total total, + fr.solde solde, + NULL service_ref_formation, + NULL commentaires FROM - scenario_noeud_effectif sne - JOIN etape e ON e.id = sne.etape_id - AND e.histo_destruction IS NULL - - JOIN scenario_noeud sn ON sn.id = sne.scenario_noeud_id - AND sn.histo_destruction IS NULL - - JOIN tbl_noeud n ON n.noeud_id = sn.noeud_id - - JOIN volume_horaire_ens vhe ON vhe.element_pedagogique_id = n.element_pedagogique_id - AND vhe.histo_destruction IS NULL - AND vhe.heures > 0 + formule_resultat_vh frvh + JOIN formule_resultat fr ON fr.id = frvh.formule_resultat_id + JOIN volume_horaire vh ON vh.id = frvh.volume_horaire_id AND vh.motif_non_paiement_id IS NULL AND vh.histo_destruction IS NULL + JOIN service s ON s.id = vh.service_id AND s.intervenant_id = fr.intervenant_id AND s.histo_destruction IS NULL - JOIN type_intervention ti ON ti.id = vhe.type_intervention_id +UNION ALL - LEFT JOIN tbl_noeud netp ON netp.etape_id = e.id - - LEFT JOIN scenario_noeud snetp ON snetp.scenario_id = sn.scenario_id - AND snetp.noeud_id = netp.noeud_id - AND snetp.histo_destruction IS NULL - - LEFT JOIN scenario_noeud_seuil snsetp ON snsetp.scenario_noeud_id = snetp.id - AND snsetp.type_intervention_id = ti.id +SELECT + 'vh_' || vh.id id, + s.id service_id, + s.intervenant_id intervenant_id, + vh.type_volume_horaire_id type_volume_horaire_id, + vhe.etat_volume_horaire_id etat_volume_horaire_id, + s.element_pedagogique_id element_pedagogique_id, + s.etablissement_id etablissement_id, + NULL structure_aff_id, + NULL structure_ens_id, + vh.periode_id periode_id, + vh.type_intervention_id type_intervention_id, + NULL fonction_referentiel_id, - LEFT JOIN tbl_chargens_seuils_def csdd ON csdd.annee_id = n.annee_id - AND csdd.scenario_id = sn.scenario_id - AND csdd.type_intervention_id = ti.id - AND csdd.groupe_type_formation_id = n.groupe_type_formation_id - AND csdd.structure_id = n.structure_id + s.description service_description, - LEFT JOIN scenario_noeud_seuil sns ON sns.scenario_noeud_id = sn.id - AND sns.type_intervention_id = ti.id -WHERE - 1 = OSE_CHARGENS.MATCH_PRECALC_HEURES_PARAMS( n.annee_id, n.structure_id, sn.scenario_id, sne.type_heures_id, sne.etape_id, n.noeud_id ) -) -SELECT - annee_id, - noeud_id, - scenario_id, - type_heures_id, - type_intervention_id, - - element_pedagogique_id, - etape_id, - etape_ens_id, - structure_id, - - ouverture, - dedoublement, - assiduite, - effectif, - heures heures_ens, - --t_effectif, - - CASE WHEN t_effectif < ouverture THEN 0 ELSE - CEIL( t_effectif / dedoublement ) * effectif / t_effectif - END groupes, + vh.heures heures, + 0 heures_ref, + 1 heures_non_payees, + 0 service_fi, + 0 service_fa, + 0 service_fc, + 0 service_referentiel, + 0 heures_compl_fi, + 0 heures_compl_fa, + 0 heures_compl_fc, + 0 heures_compl_fc_majorees, + 0 heures_compl_referentiel, + 0 total, + fr.solde solde, + NULL service_ref_formation, + NULL commentaires +FROM + volume_horaire vh + JOIN service s ON s.id = vh.service_id + JOIN v_volume_horaire_etat vhe ON vhe.volume_horaire_id = vh.id + JOIN formule_resultat fr ON fr.intervenant_id = s.intervenant_id AND fr.type_volume_horaire_id = vh.type_volume_horaire_id AND fr.etat_volume_horaire_id = vhe.etat_volume_horaire_id +WHERE + vh.motif_non_paiement_id IS NOT NULL + AND vh.histo_destruction IS NULL + AND s.histo_destruction IS NULL - CASE WHEN t_effectif < ouverture THEN 0 ELSE - CEIL( t_effectif / dedoublement ) * heures * effectif / t_effectif - END heures, +UNION ALL - CASE WHEN t_effectif < ouverture THEN 0 ELSE - CEIL( t_effectif / dedoublement ) * hetd * effectif / t_effectif - END hetd +SELECT + 'vh_ref_' || vhr.id id, + sr.id service_id, + sr.intervenant_id intervenant_id, + fr.type_volume_horaire_id type_volume_horaire_id, + fr.etat_volume_horaire_id etat_volume_horaire_id, + NULL element_pedagogique_id, + OSE_PARAMETRE.GET_ETABLISSEMENT etablissement_id, + NULL structure_aff_id, + sr.structure_id structure_ens_id, + NULL periode_id, + NULL type_intervention_id, + sr.fonction_id fonction_referentiel_id, -FROM - t; + NULL service_description, --- V_CHARGENS_SEUILS_DED_DEF -CREATE OR REPLACE FORCE VIEW "V_CHARGENS_SEUILS_DED_DEF" ("NOEUD_ID", "SCENARIO_ID", "TYPE_INTERVENTION_ID", "DEDOUBLEMENT") AS - WITH tisc AS ( - SELECT DISTINCT - sc.type_intervention_id, - sc.scenario_id - FROM - seuil_charge sc - WHERE - sc.histo_destruction IS NULL -) -SELECT - n.noeud_id noeud_id, - tisc.scenario_id, - tisc.type_intervention_id, - COALESCE(snsetp.dedoublement, tcsd.dedoublement) dedoublement + 0 heures, + vhr.heures heures_ref, + 0 heures_non_payees, + 0 service_fi, + 0 service_fa, + 0 service_fc, + frvr.service_referentiel service_referentiel, + 0 heures_compl_fi, + 0 heures_compl_fa, + 0 heures_compl_fc, + 0 heures_compl_fc_majorees, + frvr.heures_compl_referentiel heures_compl_referentiel, + frvr.total total, + fr.solde solde, + sr.formation service_ref_formation, + sr.commentaires commentaires FROM - tbl_noeud n - JOIN tisc ON 1=1 + formule_resultat_vh_ref frvr + JOIN formule_resultat fr ON fr.id = frvr.formule_resultat_id + JOIN volume_horaire_ref vhr ON vhr.id = frvr.volume_horaire_ref_id + JOIN service_referentiel sr ON sr.id = vhr.service_referentiel_id AND sr.intervenant_id = fr.intervenant_id AND sr.histo_destruction IS NULL - LEFT JOIN scenario_noeud snetp ON snetp.noeud_id = n.noeud_etape_id - AND snetp.scenario_id = tisc.scenario_id - AND snetp.histo_destruction IS NULL - - LEFT JOIN scenario_noeud_seuil snsetp ON snsetp.scenario_noeud_id = snetp.id - AND snsetp.type_intervention_id = tisc.type_intervention_id - - LEFT JOIN tbl_chargens_seuils_def tcsd ON tcsd.annee_id = n.annee_id - AND tcsd.scenario_id = tisc.scenario_id - AND tcsd.groupe_type_formation_id = n.groupe_type_formation_id - AND tcsd.type_intervention_id = tisc.type_intervention_id -WHERE - COALESCE(snsetp.dedoublement, tcsd.dedoublement) IS NOT NULL; +UNION ALL --- V_CTL_SERVICES_ODF_HISTO -CREATE OR REPLACE FORCE VIEW "V_CTL_SERVICES_ODF_HISTO" ("PRENOM", "NOM_USUEL", "ELEMENT", "ETAPE", "TYPE_INTERVENTION", "HEURES", "HAS_CONTRAT", "HAS_VALIDATION", "ELEMENT_SUPPRIME", "ETAPE_SUPPRIMEE", "ETABLISSEMENT_SUPPRIME") AS - with vh as ( - SELECT - vh.service_id, - ti.code type_intervention, - SUM(heures) heures, - CASE WHEN vh.contrat_id IS NULL THEN 0 ELSE 1 END has_contrat, - CASE WHEN (SELECT COUNT(*) FROM validation_vol_horaire vvh WHERE vvh.volume_horaire_id = vh.id) = 1 THEN 1 ELSE 0 END has_validation - FROM - volume_horaire vh - JOIN type_volume_horaire tvh ON tvh.id = vh.type_volume_horaire_id - JOIN type_intervention ti ON ti.id = vh.type_intervention_id - WHERE - vh.histo_destruction IS NULL - AND tvh.code = 'PREVU' - GROUP BY - vh.id, ti.code, vh.service_id, vh.contrat_id -) SELECT - i.prenom, i.nom_usuel, - ep.source_code "ELEMENT", - e.source_code etape, - - vh.type_intervention, - vh.heures, - vh.has_contrat, - vh.has_validation, - CASE WHEN ep.histo_destruction IS NOT NULL THEN 1 ELSE 0 END element_supprime, - CASE WHEN e.histo_destruction IS NOT NULL THEN 1 ELSE 0 END etape_supprimee, - CASE WHEN et.histo_destruction IS NOT NULL THEN 1 ELSE 0 END etablissement_supprime -FROM - service s - JOIN intervenant i ON i.id = s.intervenant_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - LEFT JOIN etape e ON e.id = ep.etape_id - LEFT JOIN etablissement et ON et.id = s.etablissement_id - LEFT JOIN vh ON vh.service_id = s.id -WHERE - s.histo_destruction IS NULL - AND ( - (ep.id IS NOT NULL AND ep.histo_destruction IS NOT NULL) - OR - (e.id IS NOT NULL AND e.histo_destruction IS NOT NULL) - OR - (et.id IS NOT NULL AND et.histo_destruction IS NOT NULL) - ) -order by - nom_usuel, prenom, etape, "ELEMENT", heures; - --- V_CTL_VH_MAUVAIS_SEMESTRE -CREATE OR REPLACE FORCE VIEW "V_CTL_VH_MAUVAIS_SEMESTRE" ("ID", "NOM_USUEL", "PRENOM", "HEURES", "VALIDATION_ID") AS - SELECT - vh.id, - i.nom_usuel, i.prenom, - vh.heures, - vvh.validation_id -FROM - volume_horaire vh - JOIN type_volume_horaire tvh ON tvh.id = vh.type_volume_horaire_id - JOIN service s ON s.id = vh.service_id - JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - JOIN intervenant i ON i.id = s.intervenant_id - LEFT JOIN VALIDATION_VOL_HORAIRE vvh on VVH.VOLUME_HORAIRE_ID = vh.id -WHERE - tvh.code = 'PREVU' - AND ep.periode_id IS NOT NULL - AND vh.periode_id <> ep.periode_id -ORDER BY - nom_usuel, prenom, heures; + 'vh_0_' || i.id id, + NULL service_id, + i.id intervenant_id, + tvh.id type_volume_horaire_id, + evh.id etat_volume_horaire_id, + NULL element_pedagogique_id, + OSE_PARAMETRE.GET_ETABLISSEMENT etablissement_id, + NULL structure_aff_id, + NULL structure_ens_id, + NULL periode_id, + NULL type_intervention_id, + NULL fonction_referentiel_id, --- V_ELEMENT_TYPE_HEURES -CREATE OR REPLACE FORCE VIEW "V_ELEMENT_TYPE_HEURES" ("ELEMENT_PEDAGOGIQUE_ID", "TYPE_HEURES_ID") AS - select ep.id element_pedagogique_id, th.id type_heures_id - from element_pedagogique ep - join type_heures th on th.code = decode(ep.fi, 1, 'fi', null) -union all - select ep.id element_pedagogique_id, th.id type_heures_id - from element_pedagogique ep - join type_heures th on th.code = decode(ep.fc, 1, 'fc', null) -union all - select ep.id element_pedagogique_id, th.id type_heures_id - from element_pedagogique ep - join type_heures th on th.code = decode(ep.fa, 1, 'fa', null); + NULL service_description, --- V_ELEMENT_TYPE_INTERVENTION -CREATE OR REPLACE FORCE VIEW "V_ELEMENT_TYPE_INTERVENTION" ("TYPE_INTERVENTION_ID", "ELEMENT_PEDAGOGIQUE_ID") AS - SELECT - type_intervention_id, - element_pedagogique_id + 0 heures, + 0 heures_ref, + 0 heures_non_payees, + 0 service_fi, + 0 service_fa, + 0 service_fc, + 0 service_referentiel, + 0 heures_compl_fi, + 0 heures_compl_fa, + 0 heures_compl_fc, + 0 heures_compl_fc_majorees, + NULL heures_compl_referentiel, + 0 total, + 0 solde, + NULL service_ref_formation, + NULL commentaires FROM - type_intervention_ep tie - JOIN type_intervention ti ON ti.id = tie.type_intervention_id + intervenant i + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN etat_volume_horaire evh ON evh.code IN ('saisi','valide') + JOIN type_volume_horaire tvh ON tvh.code IN ('PREVU','REALISE') + LEFT JOIN modification_service_du msd ON msd.intervenant_id = i.id AND msd.histo_destruction IS NULL + LEFT JOIN motif_modification_service mms ON mms.id = msd.motif_id WHERE - tie.histo_destruction IS NULL -ORDER BY - ti.ordre; - --- V_ELEMENT_TYPE_INTERV_POSSIBLE -CREATE OR REPLACE FORCE VIEW "V_ELEMENT_TYPE_INTERV_POSSIBLE" ("TYPE_INTERVENTION_ID", "ELEMENT_PEDAGOGIQUE_ID") AS - SELECT - ti.id type_intervention_id, - ep.id element_pedagogique_id -FROM - element_pedagogique ep + i.histo_destruction IS NULL + AND si.service_statutaire > 0 +GROUP BY + i.id, si.service_statutaire, evh.id, tvh.id +HAVING + si.service_statutaire + SUM(msd.heures * mms.multiplicateur) = 0 - JOIN type_intervention ti ON ep.annee_id BETWEEN COALESCE(ti.annee_debut_id,ep.annee_id) AND COALESCE(ti.annee_fin_id, ep.annee_id) - AND ti.histo_destruction IS NULL - LEFT JOIN type_intervention_structure tis ON tis.type_intervention_id = ti.id - AND tis.structure_id = ep.structure_id - AND ep.annee_id BETWEEN COALESCE(tis.annee_debut_id,ep.annee_id) AND COALESCE(tis.annee_fin_id, ep.annee_id) - AND tis.histo_destruction IS NULL -WHERE - ep.histo_destruction IS NULL - AND COALESCE( tis.visible, ti.visible ) = 1 - AND (ti.regle_foad = 0 OR ep.taux_foad > 0) - AND (ti.regle_fc = 0 OR ep.taux_fc > 0); - --- V_ELEMENT_TYPE_MODULATEUR -CREATE OR REPLACE FORCE VIEW "V_ELEMENT_TYPE_MODULATEUR" ("ELEMENT_PEDAGOGIQUE_ID", "TYPE_MODULATEUR_ID") AS - SELECT - ep.id element_pedagogique_id, - tms.type_modulateur_id type_modulateur_id -FROM - element_pedagogique ep - JOIN structure s ON s.id = ep.structure_id - AND s.histo_destruction IS NULL - - JOIN type_modulateur_structure tms ON tms.structure_id = s.id - AND tms.histo_destruction IS NULL - AND ep.annee_id BETWEEN GREATEST(NVL(tms.annee_debut_id,0),ep.annee_id) AND LEAST(NVL(tms.annee_fin_id,9999),ep.annee_id) +) +SELECT + t.id id, + t.service_id service_id, + i.id intervenant_id, + ti.id type_intervenant_id, + i.annee_id annee_id, + his.histo_modification service_date_modification, + t.type_volume_horaire_id type_volume_horaire_id, + t.etat_volume_horaire_id etat_volume_horaire_id, + etab.id etablissement_id, + saff.id structure_aff_id, + sens.id structure_ens_id, + ose_divers.niveau_formation_id_calc( gtf.id, gtf.pertinence_niveau, etp.niveau ) niveau_formation_id, + etp.id etape_id, + ep.id element_pedagogique_id, + t.periode_id periode_id, + t.type_intervention_id type_intervention_id, + t.fonction_referentiel_id fonction_referentiel_id, -UNION + tvh.libelle || ' ' || evh.libelle type_etat, + i.source_code intervenant_code, + i.nom_usuel || ' ' || i.prenom intervenant_nom, + i.date_naissance intervenant_date_naissance, + si.libelle intervenant_statut_libelle, + ti.code intervenant_type_code, + ti.libelle intervenant_type_libelle, + g.source_code intervenant_grade_code, + g.libelle_court intervenant_grade_libelle, + di.source_code intervenant_discipline_code, + di.libelle_court intervenant_discipline_libelle, + saff.libelle_court service_structure_aff_libelle, -SELECT - tm_ep.element_pedagogique_id element_pedagogique_id, - tm_ep.type_modulateur_id type_modulateur_id -FROM - type_modulateur_ep tm_ep -WHERE - tm_ep.histo_destruction IS NULL; + sens.libelle_court service_structure_ens_libelle, + etab.libelle etablissement_libelle, + gtf.libelle_court groupe_type_formation_libelle, + tf.libelle_court type_formation_libelle, + etp.niveau etape_niveau, + etp.source_code etape_code, + etp.libelle etape_libelle, + ep.source_code element_code, + COALESCE(ep.libelle,to_char(t.service_description)) element_libelle, + de.source_code element_discipline_code, + de.libelle_court element_discipline_libelle, + fr.libelle_long fonction_referentiel_libelle, + ep.taux_fi element_taux_fi, + ep.taux_fc element_taux_fc, + ep.taux_fa element_taux_fa, + t.service_ref_formation service_ref_formation, + t.commentaires commentaires, + p.libelle_court periode_libelle, + CASE WHEN fs.ponderation_service_compl = 1 THEN NULL ELSE fs.ponderation_service_compl END element_ponderation_compl, + src.libelle element_source_libelle, --- V_ETAPE_NIVEAU_FORMATION -CREATE OR REPLACE FORCE VIEW "V_ETAPE_NIVEAU_FORMATION" ("ETAPE_ID", "NIVEAU_FORMATION_ID") AS - SELECT - e.id etape_id, - nf.id niveau_formation_id -FROM - etape e - JOIN type_formation tf ON tf.id = e.type_formation_id AND tf.histo_destruction IS NULL - JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id AND gtf.histo_destruction IS NULL - JOIN v_niveau_formation nf ON nf.code = gtf.libelle_court || e.niveau -WHERE - e.histo_destruction IS NULL - AND gtf.pertinence_niveau = 1 - AND e.niveau IS NOT NULL; + t.heures heures, + t.heures_ref heures_ref, + t.heures_non_payees heures_non_payees, + si.service_statutaire service_statutaire, + fsm.heures service_du_modifie, + t.service_fi service_fi, + t.service_fa service_fa, + t.service_fc service_fc, + t.service_referentiel service_referentiel, + t.heures_compl_fi heures_compl_fi, + t.heures_compl_fa heures_compl_fa, + t.heures_compl_fc heures_compl_fc, + t.heures_compl_fc_majorees heures_compl_fc_majorees, + t.heures_compl_referentiel heures_compl_referentiel, + t.total total, + t.solde solde, + v.histo_modification date_cloture_realise --- V_ETAPE_TYPE_MODULATEUR -CREATE OR REPLACE FORCE VIEW "V_ETAPE_TYPE_MODULATEUR" ("TYPE_MODULATEUR_ID", "ETAPE_ID") AS - SELECT DISTINCT - etm.type_modulateur_id type_modulateur_id, - ep.etape_id etape_id FROM - v_element_type_modulateur etm - JOIN element_pedagogique ep ON ep.id = etm.element_pedagogique_id AND ep.histo_destruction IS NULL; + t + JOIN intervenant i ON i.id = t.intervenant_id AND i.histo_destruction IS NULL + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN type_intervenant ti ON ti.id = si.type_intervenant_id + JOIN etablissement etab ON etab.id = t.etablissement_id + JOIN type_volume_horaire tvh ON tvh.id = t.type_volume_horaire_id + JOIN etat_volume_horaire evh ON evh.id = t.etat_volume_horaire_id + LEFT JOIN histo_intervenant_service his ON his.intervenant_id = i.id AND his.type_volume_horaire_id = tvh.id AND his.referentiel = 0 + LEFT JOIN grade g ON g.id = i.grade_id + LEFT JOIN discipline di ON di.id = i.discipline_id + LEFT JOIN structure saff ON saff.id = i.structure_id AND ti.code = 'P' + LEFT JOIN element_pedagogique ep ON ep.id = t.element_pedagogique_id + LEFT JOIN discipline de ON de.id = ep.discipline_id + LEFT JOIN structure sens ON sens.id = NVL(t.structure_ens_id, ep.structure_id) + LEFT JOIN periode p ON p.id = t.periode_id + LEFT JOIN source src ON src.id = ep.source_id OR (ep.source_id IS NULL AND src.code = 'OSE') + LEFT JOIN etape etp ON etp.id = ep.etape_id + LEFT JOIN type_formation tf ON tf.id = etp.type_formation_id AND tf.histo_destruction IS NULL + LEFT JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id AND gtf.histo_destruction IS NULL + LEFT JOIN v_formule_service_modifie fsm ON fsm.intervenant_id = i.id + LEFT JOIN v_formule_service fs ON fs.id = t.service_id + LEFT JOIN fonction_referentiel fr ON fr.id = t.fonction_referentiel_id + LEFT JOIN type_validation tv ON tvh.code = 'REALISE' AND tv.code = 'CLOTURE_REALISE' + LEFT JOIN validation v ON v.intervenant_id = i.id AND v.type_validation_id = tv.id AND v.histo_destruction IS NULL; --- V_ETAT_PAIEMENT -CREATE OR REPLACE FORCE VIEW "V_ETAT_PAIEMENT" ("PERIODE_PAIEMENT_ID", "STRUCTURE_ID", "INTERVENANT_TYPE_ID", "INTERVENANT_ID", "ANNEE_ID", "CENTRE_COUT_ID", "DOMAINE_FONCTIONNEL_ID", "ETAT", "STRUCTURE_LIBELLE", "DATE_MISE_EN_PAIEMENT", "PERIODE_PAIEMENT_LIBELLE", "INTERVENANT_TYPE", "INTERVENANT_CODE", "INTERVENANT_NOM", "INTERVENANT_NUMERO_INSEE", "CENTRE_COUT_CODE", "CENTRE_COUT_LIBELLE", "DOMAINE_FONCTIONNEL_CODE", "DOMAINE_FONCTIONNEL_LIBELLE", "HETD", "HETD_POURC", "HETD_MONTANT", "REM_FC_D714", "EXERCICE_AA", "EXERCICE_AA_MONTANT", "EXERCICE_AC", "EXERCICE_AC_MONTANT") AS +-- V_EXP_HETD_CENTRE_COUT +CREATE OR REPLACE FORCE VIEW "V_EXP_HETD_CENTRE_COUT" ("TYPE_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID", "ANNEE_ID", "INTERVENANT_ID", "STATUT_INTERVENANT_ID", "TYPE_INTERVENANT_ID", "GRADE_ID", "STRUCTURE_ID", "GROUPE_TYPE_FORMATION_ID", "TYPE_FORMATION_ID", "ETAPE_ID", "TYPE_VOLUME_HORAIRE", "ETAT_VOLUME_HORAIRE", "ANNEE", "CODE_INTERVENANT", "INTERVENANT", "STATUT_INTERVENANT", "TYPE_INTERVENANT", "GRADE", "STRUCTURE_ENSEIGNEMENT", "GROUPE_TYPE_FORMATION", "TYPE_FORMATION", "CODE_FORMATION", "TOTAL_HETD", "CENTRE_COUTS", "TOTAL_EUROS") AS + WITH t AS ( SELECT - periode_paiement_id, - structure_id, - intervenant_type_id, - intervenant_id, - annee_id, - centre_cout_id, - domaine_fonctionnel_id, - etat, - structure_libelle, - date_mise_en_paiement, - periode_paiement_libelle, - intervenant_type, - intervenant_code, - intervenant_nom, - intervenant_numero_insee, - centre_cout_code, - centre_cout_libelle, - domaine_fonctionnel_code, - domaine_fonctionnel_libelle, - hetd, - CASE WHEN pourc_ecart >= 0 THEN - CASE WHEN RANK() OVER (PARTITION BY periode_paiement_id, intervenant_id, etat, structure_id ORDER BY CASE WHEN (pourc_ecart >= 0 AND pourc_diff >= 0) OR (pourc_ecart < 0 AND pourc_diff < 0) THEN pourc_diff ELSE -1 END DESC) <= (ABS(pourc_ecart) / 0.001) THEN hetd_pourc + (pourc_ecart / ABS(pourc_ecart) * 0.001) ELSE hetd_pourc END - ELSE - CASE WHEN RANK() OVER (PARTITION BY periode_paiement_id, intervenant_id, etat, structure_id ORDER BY CASE WHEN (pourc_ecart >= 0 AND pourc_diff >= 0) OR (pourc_ecart < 0 AND pourc_diff < 0) THEN pourc_diff ELSE -1 END) <= (ABS(pourc_ecart) / 0.001) THEN hetd_pourc + (pourc_ecart / ABS(pourc_ecart) * 0.001) ELSE hetd_pourc END - END hetd_pourc, - hetd_montant, - rem_fc_d714, - exercice_aa, - exercice_aa_montant, - exercice_ac, - exercice_ac_montant -FROM -( -SELECT - dep3.*, - - 1-CASE WHEN hetd > 0 THEN SUM( hetd_pourc ) OVER ( PARTITION BY periode_paiement_id, intervenant_id, etat, structure_id) ELSE 0 END pourc_ecart + tvh.id type_volume_horaire_id, + evh.id etat_volume_horaire_id, + a.id annee_id, + i.id intervenant_id, + si.id statut_intervenant_id, + ti.id type_intervenant_id, + g.id grade_id, + str.id structure_id, + gtf.id groupe_type_formation_id, + tf.id type_formation_id, + e.id etape_id, + tvh.code type_volume_horaire, + evh.code etat_volume_horaire, + a.libelle annee, + i.code code_intervenant, + i.nom_usuel || ' ' || i.prenom intervenant, + si.libelle statut_intervenant, + ti.libelle type_intervenant, + g.libelle_long grade, + str.libelle_court structure_enseignement, + gtf.libelle_long groupe_type_formation, + tf.libelle_long type_formation, + e.source_code code_formation, -FROM ( + CASE WHEN mep.id IS NULL THEN frs.total ELSE mep.heures END + total_hetd, -SELECT - periode_paiement_id, - structure_id, - intervenant_type_id, - intervenant_id, - annee_id, - centre_cout_id, - domaine_fonctionnel_id, - etat, - structure_libelle, - date_mise_en_paiement, - periode_paiement_libelle, - intervenant_type, - intervenant_code, - intervenant_nom, - intervenant_numero_insee, - centre_cout_code, - centre_cout_libelle, - domaine_fonctionnel_code, - domaine_fonctionnel_libelle, - hetd, - ROUND( CASE WHEN hetd > 0 THEN hetd / SUM( hetd ) OVER( PARTITION BY periode_paiement_id, intervenant_id, etat, structure_id) ELSE 0 END, 3 ) hetd_pourc, - ROUND( hetd * taux_horaire, 2 ) hetd_montant, - ROUND( fc_majorees * taux_horaire, 2 ) rem_fc_d714, - exercice_aa, - ROUND( exercice_aa * taux_horaire, 2 ) exercice_aa_montant, - exercice_ac, - ROUND( exercice_ac * taux_horaire, 2 ) exercice_ac_montant, + cc.source_code || ' ' || cc.libelle centre_couts, + OSE_FORMULE.GET_TAUX_HORAIRE_HETD( NVL(mep.date_mise_en_paiement,SYSDATE) ) * CASE WHEN mep.id IS NULL THEN frs.total ELSE mep.heures END + total_euros + FROM + formule_resultat_service frs + JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id + JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id + JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN annee a ON a.id = i.annee_id + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN type_intervenant ti ON ti.id = si.type_intervenant_id + JOIN service s ON s.id = frs.service_id + LEFT JOIN grade g ON g.id = i.grade_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + JOIN structure str ON str.id = NVL(ep.structure_id, i.structure_id) + LEFT JOIN etape e ON e.id = ep.etape_id + LEFT JOIN type_formation tf ON tf.id = e.type_formation_id + LEFT JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id + LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id + AND mep.histo_destruction IS NULL + LEFT JOIN centre_cout cc ON cc.id = MEP.CENTRE_COUT_ID - (CASE WHEN hetd > 0 THEN hetd / SUM( hetd ) OVER( PARTITION BY periode_paiement_id, intervenant_id, etat, structure_id) ELSE 0 END) - - - ROUND( CASE WHEN hetd > 0 THEN hetd / SUM( hetd ) OVER( PARTITION BY periode_paiement_id, intervenant_id, etat, structure_id) ELSE 0 END, 3 ) pourc_diff + UNION ALL -FROM ( - WITH dep AS ( -- détails par état de paiement SELECT - CASE WHEN th.code = 'fc_majorees' THEN 1 ELSE 0 END is_fc_majoree, - p.id periode_paiement_id, - s.id structure_id, - i.id intervenant_id, - i.annee_id annee_id, - cc.id centre_cout_id, - df.id domaine_fonctionnel_id, - ti.id intervenant_type_id, - CASE - WHEN mep.date_mise_en_paiement IS NULL THEN 'a-mettre-en-paiement' - ELSE 'mis-en-paiement' - END etat, + type_volume_horaire_id, etat_volume_horaire_id, annee_id, intervenant_id, statut_intervenant_id, type_intervenant_id, + grade_id, structure_id, groupe_type_formation_id, type_formation_id, etape_id, - p.libelle_long || ' ' || to_char( add_months( a.date_debut, p.ecart_mois ), 'yyyy' ) periode_paiement_libelle, - mep.date_mise_en_paiement date_mise_en_paiement, - s.libelle_court structure_libelle, - ti.libelle intervenant_type, - i.source_code intervenant_code, - i.nom_usuel || ' ' || i.prenom intervenant_nom, - TRIM( NVL(i.numero_insee,'') || NVL(TO_CHAR(i.numero_insee_cle,'00'),'') ) intervenant_numero_insee, - cc.source_code centre_cout_code, - cc.libelle centre_cout_libelle, - df.source_code domaine_fonctionnel_code, - df.libelle domaine_fonctionnel_libelle, - CASE WHEN th.code = 'fc_majorees' THEN 0 ELSE mep.heures END hetd, - CASE WHEN th.code = 'fc_majorees' THEN mep.heures ELSE 0 END fc_majorees, - mep.heures * 4 / 10 exercice_aa, - mep.heures * 6 / 10 exercice_ac, - --CASE WHEN th.code = 'fc_majorees' THEN 0 ELSE mep.heures END * 4 / 10 exercice_aa, - --CASE WHEN th.code = 'fc_majorees' THEN 0 ELSE mep.heures END * 6 / 10 exercice_ac, - OSE_FORMULE.GET_TAUX_HORAIRE_HETD( NVL(mep.date_mise_en_paiement,SYSDATE) ) taux_horaire - FROM - v_mep_intervenant_structure mis - JOIN mise_en_paiement mep ON mep.id = mis.mise_en_paiement_id AND mep.histo_destruction IS NULL - JOIN type_heures th ON th.id = mep.type_heures_id - JOIN centre_cout cc ON cc.id = mep.centre_cout_id -- pas d'historique pour les centres de coût, qui devront tout de même apparaitre mais en erreur - JOIN intervenant i ON i.id = mis.intervenant_id AND i.histo_destruction IS NULL - JOIN annee a ON a.id = i.annee_id - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN type_intervenant ti ON ti.id = si.type_intervenant_id - JOIN structure s ON s.id = mis.structure_id - LEFT JOIN validation v ON v.id = mep.validation_id AND v.histo_destruction IS NULL - LEFT JOIN domaine_fonctionnel df ON df.id = mis.domaine_fonctionnel_id - LEFT JOIN periode p ON p.id = mep.periode_paiement_id - ) - SELECT - periode_paiement_id, - structure_id, - intervenant_type_id, - intervenant_id, - annee_id, - centre_cout_id, - domaine_fonctionnel_id, - etat, - periode_paiement_libelle, - structure_libelle, - date_mise_en_paiement, - intervenant_type, - intervenant_code, - intervenant_nom, - intervenant_numero_insee, - centre_cout_code, - centre_cout_libelle, - domaine_fonctionnel_code, - domaine_fonctionnel_libelle, - SUM( hetd ) hetd, - SUM( fc_majorees ) fc_majorees, - SUM( exercice_aa ) exercice_aa, - SUM( exercice_ac ) exercice_ac, - taux_horaire - FROM - dep - GROUP BY - periode_paiement_id, - structure_id, - intervenant_type_id, - intervenant_id, - annee_id, - centre_cout_id, - domaine_fonctionnel_id, - etat, - periode_paiement_libelle, - structure_libelle, - date_mise_en_paiement, - intervenant_type, - intervenant_code, - intervenant_nom, - intervenant_numero_insee, - centre_cout_code, - centre_cout_libelle, - domaine_fonctionnel_code, - domaine_fonctionnel_libelle, - taux_horaire, - is_fc_majoree -) -dep2 -) -dep3 -) -dep4; - --- V_EXPORT_DEPASS_CHARGES -CREATE OR REPLACE FORCE VIEW "V_EXPORT_DEPASS_CHARGES" ("ANNEE_ID", "STRUCTURE_ID", "TYPE_INTERVENTION_ID", "ANNEE", "TYPE_VOLUME_HORAIRE_CODE", "INTERVENANT_CODE", "INTERVENANT_NOM", "INTERVENANT_DATE_NAISSANCE", "INTERVENANT_STATUT_LIBELLE", "INTERVENANT_TYPE_CODE", "INTERVENANT_TYPE_LIBELLE", "STRUCTURE_AFF_LIBELLE", "STRUCTURE_ENS_LIBELLE", "GROUPE_TYPE_FORMATION_LIBELLE", "TYPE_FORMATION_LIBELLE", "ETAPE_NIVEAU", "ETAPE_CODE", "ETAPE_LIBELLE", "ELEMENT_CODE", "ELEMENT_LIBELLE", "ELEMENT_TAUX_FI", "ELEMENT_TAUX_FC", "ELEMENT_TAUX_FA", "ELEMENT_SOURCE_LIBELLE", "PERIODE", "TYPE_INTERVENTION_CODE", "HEURES_SERVICE", "SOURCE_CHARGES", "HEURES_CHARGES", "GROUPES_CHARGES", "HEURES_DEPASSEMENT") AS - WITH c AS ( + type_volume_horaire, etat_volume_horaire, annee, code_intervenant, intervenant, statut_intervenant, + type_intervenant, grade, structure_enseignement, groupe_type_formation, type_formation, + code_formation, total_hetd, centre_couts, + OSE_FORMULE.GET_TAUX_HORAIRE_HETD( SYSDATE ) * total_hetd total_euros + FROM ( SELECT - vhe.element_pedagogique_id, - vhe.type_intervention_id, - CASE WHEN MAX(vhe.groupes) IS NULL THEN - 'Charges OSE' ELSE s.libelle END source, - MAX(vhe.heures) heures, - COALESCE( MAX(vhe.groupes), ROUND(SUM(t.groupes),10) ) groupes + tvh.id type_volume_horaire_id, + evh.id etat_volume_horaire_id, + a.id annee_id, + i.id intervenant_id, + si.id statut_intervenant_id, + ti.id type_intervenant_id, + g.id grade_id, + str.id structure_id, + gtf.id groupe_type_formation_id, + tf.id type_formation_id, + e.id etape_id, + tvh.code type_volume_horaire, + evh.code etat_volume_horaire, + a.libelle annee, + i.code code_intervenant, + i.nom_usuel || ' ' || i.prenom intervenant, + si.libelle statut_intervenant, + ti.libelle type_intervenant, + g.libelle_long grade, + str.libelle_court structure_enseignement, + gtf.libelle_long groupe_type_formation, + tf.libelle_long type_formation, + e.source_code code_formation, + frs.total - SUM(mep.heures) OVER (PARTITION BY frs.id) total_hetd, + RANK() OVER ( PARTITION BY frs.id ORDER BY mep.id) ordre, + null centre_couts FROM - volume_horaire_ens vhe - JOIN parametre p ON p.nom = 'scenario_charges_services' - JOIN source s ON s.id = vhe.source_id - LEFT JOIN tbl_chargens t ON t.element_pedagogique_id = vhe.element_pedagogique_id - AND t.type_intervention_id = vhe.type_intervention_id - AND t.scenario_id = to_number(p.valeur) - WHERE - vhe.histo_destruction IS NULL - GROUP BY - vhe.element_pedagogique_id, - vhe.type_intervention_id, - s.libelle -), s AS ( - SELECT - i.annee_id, - vh.type_volume_horaire_id, - s.intervenant_id, - s.element_pedagogique_id, - vh.type_intervention_id, - SUM(vh.heures) heures - FROM - volume_horaire vh - JOIN service s ON s.id = vh.service_id - AND s.element_pedagogique_id IS NOT NULL - AND s.histo_destruction IS NULL - JOIN intervenant i ON i.id = s.intervenant_id - AND i.histo_destruction IS NULL - WHERE - vh.histo_destruction IS NULL - GROUP BY - i.annee_id, - vh.type_volume_horaire_id, - s.intervenant_id, - s.element_pedagogique_id, - vh.type_intervention_id + formule_resultat_service frs + JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id + JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id + JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN annee a ON a.id = i.annee_id + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN type_intervenant ti ON ti.id = si.type_intervenant_id + JOIN service s ON s.id = frs.service_id + LEFT JOIN grade g ON g.id = i.grade_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + JOIN structure str ON str.id = NVL(ep.structure_id, i.structure_id) + LEFT JOIN etape e ON e.id = ep.etape_id + LEFT JOIN type_formation tf ON tf.id = e.type_formation_id + LEFT JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id + LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id + AND mep.histo_destruction IS NULL + ) t WHERE ordre = 1 AND total_hetd > 0 ) SELECT - s.annee_id annee_id, - sens.id structure_id, - tiv.id type_intervention_id, + type_volume_horaire_id, + etat_volume_horaire_id, + annee_id, + intervenant_id, + statut_intervenant_id, + type_intervenant_id, + grade_id, + structure_id, + groupe_type_formation_id, + type_formation_id, + etape_id, - a.libelle annee, - tvh.libelle type_volume_horaire_code, - i.source_code intervenant_code, - i.nom_usuel || ' ' || i.prenom intervenant_nom, - i.date_naissance intervenant_date_naissance, - si.libelle intervenant_statut_libelle, + type_volume_horaire, + etat_volume_horaire, + annee, + code_intervenant, + intervenant, + statut_intervenant, + type_intervenant, + grade, + structure_enseignement, + groupe_type_formation, + type_formation, + code_formation, + SUM(total_hetd) total_hetd, + centre_couts, + SUM(total_euros) total_euros +FROM + t +GROUP BY + type_volume_horaire_id, + etat_volume_horaire_id, + annee_id, + intervenant_id, + statut_intervenant_id, + type_intervenant_id, + grade_id, + structure_id, + groupe_type_formation_id, + type_formation_id, + etape_id, - ti.code intervenant_type_code, - ti.libelle intervenant_type_libelle, - CASE WHEN ti.code = 'P' THEN saff.libelle_court ELSE NULL END structure_aff_libelle, - sens.libelle_court structure_ens_libelle, + type_volume_horaire, + etat_volume_horaire, + annee, + code_intervenant, + intervenant, + statut_intervenant, + type_intervenant, + grade, + structure_enseignement, + groupe_type_formation, + type_formation, + code_formation, + centre_couts; - gtf.libelle_court groupe_type_formation_libelle, - tf.libelle_court type_formation_libelle, - etp.niveau etape_niveau, - etp.source_code etape_code, - etp.libelle etape_libelle, - ep.source_code element_code, - ep.libelle element_libelle, - ep.taux_fi element_taux_fi, - ep.taux_fc element_taux_fc, - ep.taux_fa element_taux_fa, - src.libelle element_source_libelle, - p.libelle_court periode, - tiv.code type_intervention_code, - s.heures heures_service, - c.source source_charges, - c.heures heures_charges, - c.groupes groupes_charges, - s.heures - COALESCE(c.heures * c.groupes,0) heures_depassement +-- V_FORMULE_INTERVENANT +CREATE OR REPLACE FORCE VIEW "V_FORMULE_INTERVENANT" ("ID", "ANNEE_ID", "STRUCTURE_ID", "HEURES_SERVICE_STATUTAIRE", "DEPASSEMENT_SERVICE_DU_SANS_HC") AS + SELECT + i.id, + i.annee_id, + i.structure_id, + si.service_statutaire heures_service_statutaire, + si.depassement_service_du_sans_hc FROM - s - JOIN annee a ON a.id = s.annee_id - JOIN type_volume_horaire tvh ON tvh.id = s.type_volume_horaire_id - JOIN intervenant i ON i.id = s.intervenant_id - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN type_intervenant ti ON ti.id = si.type_intervenant_id - JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - JOIN etape etp ON etp.id = ep.etape_id - JOIN type_formation tf ON tf.id = etp.type_formation_id - JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id - JOIN structure saff ON saff.id = i.structure_id - JOIN structure sens ON sens.id = ep.structure_id - JOIN source src ON src.id = ep.source_id - JOIN type_intervention tiv ON tiv.id = s.type_intervention_id - LEFT JOIN c ON c.element_pedagogique_id = s.element_pedagogique_id - AND c.type_intervention_id = COALESCE(tiv.type_intervention_maquette_id,tiv.id) - LEFT JOIN periode p ON p.id = ep.periode_id; + intervenant i + JOIN statut_intervenant si ON si.id = i.statut_id +WHERE + i.histo_destruction IS NULL + AND i.id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, i.id ); --- V_EXPORT_DMEP -CREATE OR REPLACE FORCE VIEW "V_EXPORT_DMEP" ("INTERVENANT_ID", "TYPE_INTERVENANT_ID", "ANNEE_ID", "STRUCTURE_AFF_ID", "STRUCTURE_ENS_ID", "STRUCTURE_ID", "CENTRE_COUT_ID", "ELEMENT_PEDAGOGIQUE_ID", "ETAPE_ID", "TYPE_FORMATION_ID", "GROUPE_TYPE_FORMATION_ID", "STATUT_INTERVENANT_ID", "PERIODE_ID", "INTERVENANT_CODE", "INTERVENANT_NOM", "INTERVENANT_DATE_NAISSANCE", "INTERVENANT_STATUT_LIBELLE", "INTERVENANT_TYPE_CODE", "INTERVENANT_TYPE_LIBELLE", "INTERVENANT_GRADE_CODE", "INTERVENANT_GRADE_LIBELLE", "INTERVENANT_DISCIPLINE_CODE", "INTERVENANT_DISCIPLINE_LIBELLE", "SERVICE_STRUCTURE_AFF_LIBELLE", "SERVICE_STRUCTURE_ENS_LIBELLE", "ETABLISSEMENT_LIBELLE", "GROUPE_TYPE_FORMATION_LIBELLE", "TYPE_FORMATION_LIBELLE", "ETAPE_NIVEAU", "ETAPE_CODE", "ETAPE_LIBELLE", "ELEMENT_CODE", "ELEMENT_LIBELLE", "ELEMENT_DISCIPLINE_CODE", "ELEMENT_DISCIPLINE_LIBELLE", "FONCTION_REFERENTIEL_LIBELLE", "ELEMENT_TAUX_FI", "ELEMENT_TAUX_FC", "ELEMENT_TAUX_FA", "ELEMENT_SOURCE_LIBELLE", "COMMENTAIRES", "ETAT", "TYPE_RESSOURCE_LIBELLE", "CENTRE_COUTS_CODE", "CENTRE_COUTS_LIBELLE", "DOMAINE_FONCTIONNEL_CODE", "DOMAINE_FONCTIONNEL_LIBELLE", "PERIODE_LIBELLE", "DATE_MISE_EN_PAIEMENT", "HEURES_FI", "HEURES_FA", "HEURES_FC", "HEURES_FC_MAJOREES", "HEURES_REFERENTIEL") AS - WITH mep AS ( +-- V_FORMULE_SERVICE +CREATE OR REPLACE FORCE VIEW "V_FORMULE_SERVICE" ("ID", "INTERVENANT_ID", "TAUX_FI", "TAUX_FA", "TAUX_FC", "STRUCTURE_AFF_ID", "STRUCTURE_ENS_ID", "PONDERATION_SERVICE_DU", "PONDERATION_SERVICE_COMPL") AS SELECT - frs.service_id, - frsr.service_referentiel_id, - mep.date_mise_en_paiement, - mep.periode_paiement_id, - mep.centre_cout_id, - mep.domaine_fonctionnel_id, - - sum(case when th.code = 'fi' then mep.heures else 0 end) heures_fi, - sum(case when th.code = 'fa' then mep.heures else 0 end) heures_fa, - sum(case when th.code = 'fc' then mep.heures else 0 end) heures_fc, - sum(case when th.code = 'fc_majorees' then mep.heures else 0 end) heures_fc_majorees, - sum(case when th.code = 'referentiel' then mep.heures else 0 end) heures_referentiel - FROM - mise_en_paiement mep - JOIN type_heures th ON th.id = mep.type_heures_id - LEFT JOIN formule_resultat_service frs ON frs.id = mep.formule_res_service_id - LEFT JOIN formule_resultat_service_ref frsr ON frsr.id = mep.formule_res_service_ref_id - WHERE - mep.histo_destruction IS NULL - GROUP BY - frs.service_id, - frsr.service_referentiel_id, - mep.date_mise_en_paiement, - mep.periode_paiement_id, - mep.centre_cout_id, - mep.domaine_fonctionnel_id -) -SELECT - i.id intervenant_id, - ti.id type_intervenant_id, - i.annee_id annee_id, - saff.id structure_aff_id, - sens.id structure_ens_id, - NVL(sens.id,saff.id) structure_id, - cc.id centre_cout_id, - ep.id element_pedagogique_id, - etp.id etape_id, - tf.id type_formation_id, - gtf.id groupe_type_formation_id, - si.id statut_intervenant_id, - p.id periode_id, - - i.source_code intervenant_code, - i.nom_usuel || ' ' || i.prenom intervenant_nom, - i.date_naissance intervenant_date_naissance, - si.libelle intervenant_statut_libelle, - ti.code intervenant_type_code, - ti.libelle intervenant_type_libelle, - g.source_code intervenant_grade_code, - g.libelle_court intervenant_grade_libelle, - di.source_code intervenant_discipline_code, - di.libelle_court intervenant_discipline_libelle, - saff.libelle_court service_structure_aff_libelle, - - sens.libelle_court service_structure_ens_libelle, - etab.libelle etablissement_libelle, - gtf.libelle_court groupe_type_formation_libelle, - tf.libelle_court type_formation_libelle, - etp.niveau etape_niveau, - etp.source_code etape_code, - etp.libelle etape_libelle, - ep.source_code element_code, - ep.libelle element_libelle, - de.source_code element_discipline_code, - de.libelle_court element_discipline_libelle, - fr.libelle_long fonction_referentiel_libelle, - ep.taux_fi element_taux_fi, - ep.taux_fc element_taux_fc, - ep.taux_fa element_taux_fa, - src.libelle element_source_libelle, - COALESCE(to_char(s.description),to_char(sr.commentaires)) commentaires, - - CASE - WHEN mep.date_mise_en_paiement IS NULL THEN 'a-mettre-en-paiement' - ELSE 'mis-en-paiement' - END etat, - tr.libelle type_ressource_libelle, - cc.source_code centre_couts_code, - cc.libelle centre_couts_libelle, - df.source_code domaine_fonctionnel_code, - df.libelle domaine_fonctionnel_libelle, - p.libelle_long periode_libelle, - mep.date_mise_en_paiement date_mise_en_paiement, - mep.heures_fi heures_fi, - mep.heures_fa heures_fa, - mep.heures_fc heures_fc, - mep.heures_fc_majorees heures_fc_majorees, - mep.heures_referentiel heures_referentiel + s.id id, + s.intervenant_id intervenant_id, + CASE WHEN ep.id IS NOT NULL THEN ep.taux_fi ELSE 1 END taux_fi, + CASE WHEN ep.id IS NOT NULL THEN ep.taux_fa ELSE 0 END taux_fa, + CASE WHEN ep.id IS NOT NULL THEN ep.taux_fc ELSE 0 END taux_fc, + i.structure_id structure_aff_id, + ep.structure_id structure_ens_id, + NVL( EXP (SUM (LN (m.ponderation_service_du))), 1) ponderation_service_du, + NVL( EXP (SUM (LN (m.ponderation_service_compl))), 1) ponderation_service_compl FROM - mep - JOIN centre_cout cc ON cc.id = mep.centre_cout_id - JOIN type_ressource tr ON tr.id = cc.type_ressource_id - LEFT JOIN service s ON s.id = mep.service_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - LEFT JOIN source src ON src.id = ep.source_id OR (ep.source_id IS NULL AND src.code = 'OSE') - LEFT JOIN discipline de ON de.id = ep.discipline_id - LEFT JOIN etape etp ON etp.id = ep.etape_id - LEFT JOIN type_formation tf ON tf.id = etp.type_formation_id - LEFT JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id - LEFT JOIN service_referentiel sr ON sr.id = mep.service_referentiel_id - LEFT JOIN fonction_referentiel fr ON fr.id = sr.fonction_id - JOIN intervenant i ON i.id = NVL( s.intervenant_id, sr.intervenant_id ) - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN type_intervenant ti ON ti.id = si.type_intervenant_id - LEFT JOIN grade g ON g.id = i.grade_id - LEFT JOIN discipline di ON di.id = i.discipline_id - LEFT JOIN structure saff ON saff.id = i.structure_id AND ti.code = 'P' - LEFT JOIN structure sens ON sens.id = NVL( ep.structure_id, sr.structure_id ) - JOIN etablissement etab ON etab.id = NVL( s.etablissement_id, ose_parametre.get_etablissement() ) - LEFT JOIN periode p ON p.id = mep.periode_paiement_id - LEFT JOIN domaine_fonctionnel df ON df.id = mep.domaine_fonctionnel_id -ORDER BY - intervenant_nom, - service_structure_aff_libelle, - service_structure_ens_libelle, - etape_libelle, - element_libelle; + service s + JOIN intervenant i ON i.id = s.intervenant_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + LEFT JOIN element_modulateur em ON em.element_id = s.element_pedagogique_id + AND em.histo_destruction IS NULL + LEFT JOIN modulateur m ON m.id = em.modulateur_id +WHERE + s.histo_destruction IS NULL +GROUP BY + s.id, + s.intervenant_id, + ep.id, + ep.taux_fi, ep.taux_fa, ep.taux_fc, + i.structure_id, ep.structure_id; --- V_EXPORT_PAIEMENT_WINPAIE -CREATE OR REPLACE FORCE VIEW "V_EXPORT_PAIEMENT_WINPAIE" ("TYPE_INTERVENANT_ID", "ANNEE_ID", "STRUCTURE_ID", "PERIODE_PAIEMENT_ID", "INTERVENANT_ID", "INSEE", "NOM", "CARTE", "CODE_ORIGINE", "RETENUE", "SENS", "MC", "NBU", "MONTANT", "LIBELLE") AS - SELECT - si.type_intervenant_id type_intervenant_id, - i.annee_id, - t2.structure_id, - t2.periode_paiement_id, - i.id intervenant_id, - - NVL(i.numero_insee,'') || TRIM(NVL(TO_CHAR(i.numero_insee_cle,'00'),'')) insee, - i.nom_usuel || ',' || i.prenom nom, - to_char((SELECT valeur FROM parametre WHERE nom = 'winpaie_carte' AND histo_destruction IS NULL)) carte, - t2.code_origine, - to_char((SELECT valeur FROM parametre WHERE nom = 'winpaie_retenue' AND histo_destruction IS NULL)) retenue, - to_char((SELECT valeur FROM parametre WHERE nom = 'winpaie_sens' AND histo_destruction IS NULL)) sens, - to_char((SELECT valeur FROM parametre WHERE nom = 'winpaie_mc' AND histo_destruction IS NULL)) mc, - t2.nbu, - OSE_FORMULE.GET_TAUX_HORAIRE_HETD( NVL(t2.date_mise_en_paiement,SYSDATE) ) montant, - COALESCE(t2.unite_budgetaire,'') || ' ' || to_char(i.annee_id) || ' ' || to_char(i.annee_id+1) - /* || ' ' || to_char(FLOOR(t2.nbu)) || ' H' || CASE - WHEN to_char(ROUND( t2.nbu-FLOOR(t2.nbu), 2 )*100,'00') = ' 00' THEN '' - ELSE to_char(ROUND( t2.nbu-FLOOR(t2.nbu), 2 )*100,'00') END*/ libelle -FROM ( +-- V_FORMULE_SERVICE_MODIFIE +CREATE OR REPLACE FORCE VIEW "V_FORMULE_SERVICE_MODIFIE" ("ID", "INTERVENANT_ID", "HEURES", "HEURES_DECHARGE") AS SELECT - structure_id, - periode_paiement_id, - intervenant_id, - code_origine, - ROUND( SUM(nbu), 2) nbu, - unite_budgetaire, - date_mise_en_paiement - FROM ( - WITH mep AS ( - SELECT - -- pour les filtres - mep.id, - mis.structure_id, - mep.periode_paiement_id, - mis.intervenant_id, - mep.heures, - cc.unite_budgetaire, - mep.date_mise_en_paiement - FROM - v_mep_intervenant_structure mis - JOIN mise_en_paiement mep ON mep.id = mis.mise_en_paiement_id AND mep.histo_destruction IS NULL - JOIN centre_cout cc ON cc.id = mep.centre_cout_id - JOIN type_heures th ON th.id = mep.type_heures_id - WHERE - mep.date_mise_en_paiement IS NOT NULL - AND mep.periode_paiement_id IS NOT NULL - AND th.eligible_extraction_paie = 1 - ) - SELECT - mep.id, - mep.structure_id, - mep.periode_paiement_id, - mep.intervenant_id, - 2 code_origine, - mep.heures * 4 / 10 nbu, - mep.unite_budgetaire, - mep.date_mise_en_paiement - FROM - mep - WHERE - mep.heures * 4 / 10 > 0 + msd.intervenant_id id, + msd.intervenant_id, + NVL( SUM( msd.heures * mms.multiplicateur ), 0 ) heures, + NVL( SUM( msd.heures * mms.multiplicateur * mms.decharge ), 0 ) heures_decharge +FROM + modification_service_du msd + JOIN MOTIF_MODIFICATION_SERVICE mms ON + mms.id = msd.motif_id + AND mms.histo_destruction IS NULL + JOIN intervenant i ON i.id = msd.intervenant_id +WHERE + msd.histo_destruction IS NULL + AND 1 = ose_divers.intervenant_has_privilege(msd.intervenant_id, 'modif-service-du-association') +GROUP BY + msd.intervenant_id; - UNION +-- V_FORMULE_SERVICE_REF +CREATE OR REPLACE FORCE VIEW "V_FORMULE_SERVICE_REF" ("ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT + sr.id id, + sr.intervenant_id intervenant_id, + sr.structure_id structure_id +FROM + service_referentiel sr + JOIN intervenant i ON i.id = sr.intervenant_id +WHERE + sr.histo_destruction IS NULL + AND i.id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, i.id ); - SELECT - mep.id, - mep.structure_id, - mep.periode_paiement_id, - mep.intervenant_id, - 1 code_origine, - mep.heures * 6 / 10 nbu, - mep.unite_budgetaire, - mep.date_mise_en_paiement - FROM - mep - WHERE - mep.heures * 6 / 10 > 0 - ) t1 - GROUP BY - structure_id, - periode_paiement_id, - intervenant_id, - code_origine, - unite_budgetaire, - date_mise_en_paiement -) t2 -JOIN intervenant i ON i.id = t2.intervenant_id -JOIN statut_intervenant si ON si.id = i.statut_id -JOIN structure s ON s.id = t2.structure_id; +-- V_FORMULE_VOLUME_HORAIRE +CREATE OR REPLACE FORCE VIEW "V_FORMULE_VOLUME_HORAIRE" ("ID", "SERVICE_ID", "INTERVENANT_ID", "TYPE_INTERVENTION_ID", "TYPE_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ORDRE", "HEURES", "TAUX_SERVICE_DU", "TAUX_SERVICE_COMPL") AS + SELECT + vh.id id, + s.id service_id, + s.intervenant_id intervenant_id, + ti.id type_intervention_id, + vh.type_volume_horaire_id type_volume_horaire_id, + evh.id etat_volume_horaire_id, + evh.ordre etat_volume_horaire_ordre, + vh.heures heures, + ti.taux_hetd_service taux_service_du, + ti.taux_hetd_complementaire taux_service_compl +FROM + volume_horaire vh + JOIN service s ON s.id = vh.service_id + JOIN type_intervention ti ON ti.id = vh.type_intervention_id + JOIN v_volume_horaire_etat vhe ON vhe.volume_horaire_id = vh.id + JOIN etat_volume_horaire evh ON evh.id = vhe.etat_volume_horaire_id +WHERE + vh.histo_destruction IS NULL + AND s.histo_destruction IS NULL + AND vh.heures <> 0 + AND vh.motif_non_paiement_id IS NULL + AND s.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, s.intervenant_id ); --- V_EXPORT_PILOTAGE_ECARTS_ETATS -CREATE OR REPLACE FORCE VIEW "V_EXPORT_PILOTAGE_ECARTS_ETATS" ("ANNEE_ID", "ANNEE", "ETAT", "TYPE_HEURES_ID", "TYPE_HEURES", "STRUCTURE_ID", "STRUCTURE", "INTERVENANT_ID", "INTERVENANT_TYPE", "INTERVENANT_CODE", "INTERVENANT", "HETD_PAYABLES") AS - SELECT - t3.annee_id annee_id, - t3.annee_id || '-' || (t3.annee_id+1) annee, - t3.etat, - t3.type_heures_id, - t3.type_heures, - s.id structure_id, - s.libelle_court structure, - i.id intervenant_id, - ti.libelle intervenant_type, - i.source_code intervenant_code, - i.prenom || ' ' || i.nom_usuel intervenant, - t3.hetd_payables +-- V_FORMULE_VOLUME_HORAIRE_REF +CREATE OR REPLACE FORCE VIEW "V_FORMULE_VOLUME_HORAIRE_REF" ("ID", "SERVICE_REFERENTIEL_ID", "INTERVENANT_ID", "TYPE_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ORDRE", "HEURES") AS + SELECT + vhr.id id, + sr.id service_referentiel_id, + sr.intervenant_id intervenant_id, + vhr.type_volume_horaire_id type_volume_horaire_id, + evh.id etat_volume_horaire_id, + evh.ordre etat_volume_horaire_ordre, + vhr.heures heures +FROM + volume_horaire_ref vhr + JOIN service_referentiel sr ON sr.id = vhr.service_referentiel_id + JOIN v_volume_horaire_ref_etat vher ON vher.volume_horaire_ref_id = vhr.id + JOIN etat_volume_horaire evh ON evh.id = vher.etat_volume_horaire_id +WHERE + vhr.histo_destruction IS NULL + AND sr.histo_destruction IS NULL + AND vhr.heures <> 0 + AND sr.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, sr.intervenant_id ); + +-- V_FR_SERVICE_CENTRE_COUT +CREATE OR REPLACE FORCE VIEW "V_FR_SERVICE_CENTRE_COUT" ("FORMULE_RESULTAT_SERVICE_ID", "CENTRE_COUT_ID") AS + SELECT + frs.id formule_resultat_service_id, cc.id centre_cout_id FROM + formule_resultat_service frs + JOIN service s ON s.id = frs.service_id + JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + JOIN centre_cout cc ON cc.histo_destruction IS NULL + + JOIN centre_cout_structure ccs ON ccs.centre_cout_id = cc.id + AND ccs.structure_id = ep.structure_id + AND ccs.histo_destruction IS NULL + + JOIN cc_activite a ON a.id = cc.activite_id + AND a.histo_destruction IS NULL + + JOIN type_ressource tr ON tr.id = cc.type_ressource_id + AND tr.histo_destruction IS NULL +WHERE + ( + (frs.heures_compl_fi > 0 AND tr.fi = 1 AND a.fi = 1 ) + OR (frs.heures_compl_fa > 0 AND tr.fa = 1 AND a.fa = 1 ) + OR (frs.heures_compl_fc > 0 AND tr.fc = 1 AND a.fc = 1 ) + OR (frs.heures_compl_fc_majorees > 0 AND tr.fc_majorees = 1 AND a.fc_majorees = 1 ) + ) + +UNION -( SELECT - annee_id, - etat, - type_heures_id, - type_heures, - structure_id, + frs.id formule_resultat_service_id, cc.id +FROM + formule_resultat_service frs + JOIN service s ON s.id = frs.service_id + AND s.element_pedagogique_id IS NULL + + JOIN intervenant i ON i.id = s.intervenant_id + JOIN centre_cout cc ON cc.histo_destruction IS NULL + + JOIN centre_cout_structure ccs ON ccs.centre_cout_id = cc.id + AND ccs.structure_id = i.structure_id + AND ccs.histo_destruction IS NULL + + JOIN cc_activite a ON a.id = cc.activite_id + AND a.histo_destruction IS NULL + + JOIN type_ressource tr ON tr.id = cc.type_ressource_id + AND tr.histo_destruction IS NULL +WHERE + ( + (frs.heures_compl_fi > 0 AND tr.fi = 1 AND a.fi = 1 ) + OR (frs.heures_compl_fa > 0 AND tr.fa = 1 AND a.fa = 1 ) + OR (frs.heures_compl_fc > 0 AND tr.fc = 1 AND a.fc = 1 ) + OR (frs.heures_compl_fc_majorees > 0 AND tr.fc_majorees = 1 AND a.fc_majorees = 1 ) + ); + +-- V_FR_SERVICE_REF_CENTRE_COUT +CREATE OR REPLACE FORCE VIEW "V_FR_SERVICE_REF_CENTRE_COUT" ("FORMULE_RESULTAT_SERV_REF_ID", "CENTRE_COUT_ID") AS + SELECT + frsr.id formule_resultat_serv_ref_id, cc.id +FROM + formule_resultat_service_ref frsr + JOIN service_referentiel sr ON sr.id = frsr.service_referentiel_id + JOIN centre_cout cc ON cc.histo_destruction IS NULL + + JOIN centre_cout_structure ccs ON ccs.centre_cout_id = cc.id + AND ccs.structure_id = sr.structure_id + AND ccs.histo_destruction IS NULL + + JOIN cc_activite a ON a.id = cc.activite_id + AND a.histo_destruction IS NULL + + JOIN type_ressource tr ON tr.id = cc.type_ressource_id + AND tr.histo_destruction IS NULL +WHERE + frsr.heures_compl_referentiel > 0 AND tr.referentiel = 1; + +-- V_HAS_DMEP_A_FAIRE +CREATE OR REPLACE FORCE VIEW "V_HAS_DMEP_A_FAIRE" ("INTERVENANT_ID", "STRUCTURE_ID", "HAS_DMEP_A_FAIRE") AS + SELECT intervenant_id, - sum(hetd) hetd_payables -FROM ( + structure_id, + CASE WHEN + SUM(CASE WHEN heures_dmep > heures_compl THEN heures_compl ELSE heures_dmep END) < SUM(heures_compl) + THEN 1 ELSE 0 END has_dmep_a_faire +FROM + ( SELECT - annee_id, - LOWER(tvh.code) || '-' || evh.code etat, - 10*tvh.ordre + evh.ordre ordre, - type_heures_id, - type_heures, - structure_id, - intervenant_id, - SUM(hetd) hetd - FROM ( - SELECT - i.annee_id, - fr.type_volume_horaire_id, - fr.etat_volume_horaire_id, - th.id type_heures_id, - th.code type_heures, - COALESCE(ep.structure_id,i.structure_id) structure_id, - fr.intervenant_id, - SUM(frs.heures_compl_fi) hetd - FROM - formule_resultat_service frs - JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id - JOIN service s ON s.id = frs.service_id - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN type_heures th ON th.code = 'fi' - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - GROUP BY - i.annee_id, - fr.type_volume_horaire_id, - fr.etat_volume_horaire_id, - th.id, th.code, - fr.intervenant_id, - ep.structure_id, - i.structure_id - - UNION ALL - - SELECT - i.annee_id, - fr.type_volume_horaire_id, - fr.etat_volume_horaire_id, - th.id type_heures_id, - th.code type_heures, - COALESCE(ep.structure_id,i.structure_id) structure_id, - fr.intervenant_id, - SUM(frs.heures_compl_fa) hetd - FROM - formule_resultat_service frs - JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id - JOIN service s ON s.id = frs.service_id - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN type_heures th ON th.code = 'fa' - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - GROUP BY - i.annee_id, - fr.type_volume_horaire_id, - fr.etat_volume_horaire_id, - th.id, th.code, - fr.intervenant_id, - ep.structure_id, - i.structure_id - - UNION ALL - - SELECT - i.annee_id, - fr.type_volume_horaire_id, - fr.etat_volume_horaire_id, - th.id type_heures_id, - th.code type_heures, - COALESCE(ep.structure_id,i.structure_id) structure_id, - fr.intervenant_id, - SUM(frs.heures_compl_fc) hetd - FROM - formule_resultat_service frs - JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id - JOIN service s ON s.id = frs.service_id - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN type_heures th ON th.code = 'fc' - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - GROUP BY - i.annee_id, - fr.type_volume_horaire_id, - fr.etat_volume_horaire_id, - th.id, th.code, - fr.intervenant_id, - ep.structure_id, - i.structure_id - - UNION ALL - + fr.intervenant_id intervenant_id, + NVL( ep.structure_id, i.structure_id ) structure_id, + frs.heures_compl_fi + frs.heures_compl_fa + frs.heures_compl_fc + frs.heures_compl_fc_majorees heures_compl, + SUM( NVL(mep.heures,0) ) OVER (PARTITION BY frs.id) heures_dmep, + SUM( NVL(CASE WHEN mep.periode_paiement_id IS NOT NULL THEN mep.heures ELSE 0 END,0) ) OVER (PARTITION BY frs.id) heures_mep, + ROW_NUMBER() OVER (PARTITION BY frs.id ORDER BY 1) index__ + FROM + formule_resultat_service frs + JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id + JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code = 'REALISE' + JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id AND evh.code = 'valide' + JOIN intervenant i on i.id = fr.intervenant_id + JOIN service s ON s.id = frs.service_id + LEFT JOIN element_pedagogique ep on ep.id = s.element_pedagogique_id + LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id AND mep.histo_destruction IS NULL + + UNION + SELECT - i.annee_id, - fr.type_volume_horaire_id, - fr.etat_volume_horaire_id, - th.id type_heures_id, - th.code type_heures, - sr.structure_id, - fr.intervenant_id, - sum( frsr.heures_compl_referentiel ) hetd - FROM - formule_resultat_service_ref frsr - JOIN formule_resultat fr ON fr.id = frsr.formule_resultat_id - JOIN service_referentiel sr ON sr.id = frsr.service_referentiel_id - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN type_heures th ON th.code = 'referentiel' - GROUP BY - i.annee_id, - fr.type_volume_horaire_id, - fr.etat_volume_horaire_id, - th.id, th.code, - fr.intervenant_id, - sr.structure_id - ) t1 - JOIN type_volume_horaire tvh ON tvh.id = t1.type_volume_horaire_id - JOIN etat_volume_horaire evh ON evh.id = t1.etat_volume_horaire_id - GROUP BY - annee_id, tvh.code, evh.code, tvh.ordre, evh.ordre, type_heures_id, type_heures, structure_id, intervenant_id - - UNION ALL - + fr.intervenant_id intervenant_id, + NVL( s.structure_id, i.structure_id ) structure_id, + frs.heures_compl_referentiel heures_compl, + SUM( NVL(mep.heures,0) ) OVER (PARTITION BY frs.id) heures_dmep, + SUM( NVL(CASE WHEN mep.periode_paiement_id IS NOT NULL THEN mep.heures ELSE 0 END,0) ) OVER (PARTITION BY frs.id) heures_mep, + ROW_NUMBER() OVER (PARTITION BY frs.id ORDER BY 1) index__ + FROM + formule_resultat_service_ref frs + JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id + JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code = 'REALISE' + JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id AND evh.code = 'valide' + JOIN intervenant i on i.id = fr.intervenant_id + JOIN service_referentiel s ON s.id = frs.service_referentiel_id + LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_ref_id = frs.id AND mep.histo_destruction IS NULL + )mep +WHERE + index__ = 1 +GROUP BY + intervenant_id, + structure_id; + +-- V_HETD_PREV_VAL_STRUCT +CREATE OR REPLACE FORCE VIEW "V_HETD_PREV_VAL_STRUCT" ("ANNEE_ID", "STRUCTURE_ID", "HEURES") AS SELECT - annee_id, - etat, - ordre, - type_heures_id, - type_heures, - structure_id, - intervenant_id, - SUM(hetd) hetd - FROM ( - SELECT - i.annee_id, - 'demande-mise-en-paiement' etat, - 90 ordre, - th.id type_heures_id, - th.code type_heures, - COALESCE( sr.structure_id, ep.structure_id, i.structure_id ) structure_id, - i.id intervenant_id, - mep.heures hetd - FROM - mise_en_paiement mep - JOIN type_heures th ON th.id = mep.type_heures_id - JOIN centre_cout cc ON cc.id = mep.centre_cout_id - LEFT JOIN formule_resultat_service frs ON frs.id = mep.formule_res_service_id - LEFT JOIN formule_resultat_service_ref frsr ON frsr.id = mep.formule_res_service_ref_id - LEFT JOIN formule_resultat fr ON fr.id = COALESCE(frs.formule_resultat_id, frsr.formule_resultat_id) - LEFT JOIN service s ON s.id = frs.service_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - LEFT JOIN service_referentiel sr ON sr.id = frsr.service_referentiel_id - LEFT JOIN intervenant i ON i.id = fr.intervenant_id - WHERE - mep.histo_destruction IS NULL - AND th.eligible_extraction_paie = 1 + annee_id, + structure_id, + sum(heures) heures + +FROM +( +SELECT + i.annee_id, + NVL( ep.structure_id, i.structure_id ) structure_id, + frs.total heures +FROM + formule_resultat_service frs + JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id + JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id + JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN service s ON s.id = frs.service_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + +WHERE + tvh.code = 'PREVU' + AND evh.code = 'valide' +) t1 + +GROUP BY + annee_id, structure_id; + +-- V_IMPORT_TAB_COLS +CREATE OR REPLACE FORCE VIEW "V_IMPORT_TAB_COLS" ("TABLE_NAME", "COLUMN_NAME", "DATA_TYPE", "LENGTH", "NULLABLE", "HAS_DEFAULT", "C_TABLE_NAME", "C_COLUMN_NAME", "IMPORT_ACTIF") AS + WITH importable_tables (table_name )AS ( + SELECT + t.table_name +FROM + user_tab_cols c + join user_tables t on t.table_name = c.table_name +WHERE + c.column_name = 'SOURCE_CODE' + +MINUS + +SELECT + mview_name table_name +FROM + USER_MVIEWS +), c_values (table_name, column_name, c_table_name, c_column_name) AS ( +SELECT + tc.table_name, + tc.column_name, + pcc.table_name c_table_name, + pcc.column_name c_column_name +FROM + user_tab_cols tc + JOIN USER_CONS_COLUMNS cc ON cc.table_name = tc.table_name AND cc.column_name = tc.column_name + JOIN USER_CONSTRAINTS c ON c.constraint_name = cc.constraint_name + JOIN USER_CONSTRAINTS pc ON pc.constraint_name = c.r_constraint_name + JOIN USER_CONS_COLUMNS pcc ON pcc.constraint_name = pc.constraint_name +WHERE + c.constraint_type = 'R' AND pc.constraint_type = 'P' +) +SELECT + tc.table_name, + tc.column_name, + tc.data_type, + CASE WHEN tc.char_length = 0 THEN NULL ELSE tc.char_length END length, + CASE WHEN tc.nullable = 'Y' THEN 1 ELSE 0 END nullable, + CASE WHEN tc.data_default IS NOT NULL THEN 1 ELSE 0 END has_default, + cv.c_table_name, + cv.c_column_name, + CASE WHEN stc.table_name IS NULL THEN 0 ELSE 1 END AS import_actif +FROM + user_tab_cols tc + JOIN importable_tables t ON t.table_name = tc.table_name + LEFT JOIN import_tables it ON it.table_name = tc.table_name + LEFT JOIN c_values cv ON cv.table_name = tc.table_name AND cv.column_name = tc.column_name + LEFT JOIN user_tab_cols stc ON stc.table_name = 'SRC_' || tc.table_name AND stc.column_name = tc.column_name +WHERE + tc.column_name not like 'HISTO_%' + AND tc.column_name <> 'ID' + AND tc.table_name <> 'SYNC_LOG' +ORDER BY + it.ordre, tc.table_name, tc.column_id; + +-- V_INDICATEUR_1010 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1010" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM +( +SELECT DISTINCT + w.annee_id, + w.intervenant_id, + i.structure_id +FROM + tbl_workflow w + JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id + JOIN intervenant i ON i.id = w.intervenant_id +WHERE + w.etape_code = 'PJ_SAISIE' + AND wc.etape_code = 'SERVICE_SAISIE' + AND w.type_intervenant_code = 'E' + AND wc.realisation > 0 + AND w.atteignable = 1 + AND w.objectif > w.realisation +) t; + +-- V_INDICATEUR_1011 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1011" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM +( +SELECT DISTINCT + w.annee_id, + w.intervenant_id, + i.structure_id +FROM + tbl_workflow w + JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id + JOIN intervenant i ON i.id = w.intervenant_id +WHERE + w.etape_code = 'PJ_SAISIE' + AND wc.etape_code = 'SERVICE_SAISIE' + AND w.type_intervenant_code = 'P' + AND wc.realisation > 0 + AND w.atteignable = 1 + AND w.objectif > w.realisation +) t; + +-- V_INDICATEUR_1020 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1020" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM +( +SELECT DISTINCT + w.annee_id, + w.intervenant_id, + i.structure_id +FROM + tbl_workflow w + JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id + JOIN intervenant i ON i.id = w.intervenant_id +WHERE + w.etape_code = 'PJ_VALIDATION' + AND wc.etape_code = 'PJ_SAISIE' + AND w.type_intervenant_code = 'E' + AND wc.objectif = wc.realisation + AND w.atteignable = 1 + AND w.objectif > w.realisation +) t; + +-- V_INDICATEUR_1021 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1021" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM +( +SELECT DISTINCT + w.annee_id, + w.intervenant_id, + i.structure_id +FROM + tbl_workflow w + JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id + JOIN intervenant i ON i.id = w.intervenant_id +WHERE + w.etape_code = 'PJ_VALIDATION' + AND wc.etape_code = 'PJ_SAISIE' + AND w.type_intervenant_code = 'P' + AND wc.objectif = wc.realisation + AND w.atteignable = 1 + AND w.objectif > w.realisation +) t; + +-- V_INDICATEUR_110 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_110" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT + rownum id, + t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM ( + +SELECT DISTINCT + s.annee_id annee_id, + s.intervenant_id intervenant_id, + s.structure_id structure_id +FROM + tbl_service s +WHERE + s.type_intervenant_code = 'P' + AND s.type_volume_horaire_code = 'PREVU' + AND s.intervenant_structure_id <> s.structure_id + AND s.valide > 0 + AND s.structure_id IS NOT NULL + +) t; + +-- V_INDICATEUR_1110 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1110" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t.ANNEE_ID,t.INTERVENANT_ID,t.STRUCTURE_ID FROM ( +SELECT DISTINCT + idc.annee_id, + idc.intervenant_id, + idc.structure_id +FROM + v_indic_depass_charges idc + JOIN type_volume_horaire tvh ON tvh.id = idc.type_volume_horaire_id + LEFT JOIN periode p ON p.id = idc.periode_id +WHERE + (p.code = 'S1' OR p.id IS NULL) + AND tvh.code = 'PREVU' +) t; + +-- V_INDICATEUR_1111 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1111" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t.ANNEE_ID,t.INTERVENANT_ID,t.STRUCTURE_ID FROM ( +SELECT DISTINCT + idc.annee_id, + idc.intervenant_id, + idc.structure_id +FROM + v_indic_depass_charges idc + JOIN type_volume_horaire tvh ON tvh.id = idc.type_volume_horaire_id + LEFT JOIN periode p ON p.id = idc.periode_id +WHERE + (p.code = 'S2' OR p.id IS NULL) + AND tvh.code = 'PREVU' +) t; + +-- V_INDICATEUR_1120 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1120" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t.ANNEE_ID,t.INTERVENANT_ID,t.STRUCTURE_ID FROM ( +SELECT DISTINCT + idc.annee_id, + idc.intervenant_id, + idc.structure_id +FROM + v_indic_depass_charges idc + JOIN type_volume_horaire tvh ON tvh.id = idc.type_volume_horaire_id + LEFT JOIN periode p ON p.id = idc.periode_id +WHERE + (p.code = 'S1' OR p.id IS NULL) + AND tvh.code = 'REALISE' +) t; + +-- V_INDICATEUR_1121 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1121" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t.ANNEE_ID,t.INTERVENANT_ID,t.STRUCTURE_ID FROM ( +SELECT DISTINCT + idc.annee_id, + idc.intervenant_id, + idc.structure_id +FROM + v_indic_depass_charges idc + JOIN type_volume_horaire tvh ON tvh.id = idc.type_volume_horaire_id + LEFT JOIN periode p ON p.id = idc.periode_id +WHERE + (p.code = 'S2' OR p.id IS NULL) + AND tvh.code = 'REALISE' +) t; + +-- V_INDICATEUR_120 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_120" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT + rownum id, + t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM ( + +SELECT DISTINCT + s.annee_id annee_id, + s.intervenant_id intervenant_id, + s.structure_id structure_id +FROM + tbl_service s +WHERE + s.type_intervenant_code = 'P' + AND s.type_volume_horaire_code = 'PREVU' + AND s.intervenant_structure_id <> s.structure_id + AND s.valide > 0 + AND s.structure_id IS NOT NULL + +) t; + +-- V_INDICATEUR_1210 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1210" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS + SELECT + i.id id, + i.annee_id, + i.id intervenant_id, + i.structure_id, + AVG(t.plafond) plafond, + AVG(t.heures) heures +FROM + ( + SELECT + vhr.type_volume_horaire_id type_volume_horaire_id, + sr.intervenant_id intervenant_id, + fr.plafond plafond, + fr.id fr_id, + SUM(vhr.heures) heures + FROM + service_referentiel sr + JOIN fonction_referentiel fr ON fr.id = sr.fonction_id + JOIN volume_horaire_ref vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL + JOIN type_volume_horaire tvh ON tvh.id = vhr.type_volume_horaire_id AND tvh.code= 'PREVU' + WHERE + sr.histo_destruction IS NULL + GROUP BY + vhr.type_volume_horaire_id, + sr.intervenant_id, + fr.plafond, + fr.id + ) t + JOIN intervenant i ON i.id = t.intervenant_id +WHERE + t.heures > t.plafond + /*i.id*/ +GROUP BY + t.type_volume_horaire_id, + i.annee_id, + i.id, + i.structure_id; + +-- V_INDICATEUR_1220 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1220" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS + SELECT + i.id id, + i.annee_id, + i.id intervenant_id, + i.structure_id, + AVG(t.plafond) plafond, + AVG(t.heures) heures +FROM + ( + SELECT + vhr.type_volume_horaire_id type_volume_horaire_id, + sr.intervenant_id intervenant_id, + fr.plafond plafond, + fr.id fr_id, + SUM(vhr.heures) heures + FROM + service_referentiel sr + JOIN fonction_referentiel fr ON fr.id = sr.fonction_id + JOIN volume_horaire_ref vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL + JOIN type_volume_horaire tvh ON tvh.id = vhr.type_volume_horaire_id AND tvh.code= 'REALISE' + WHERE + sr.histo_destruction IS NULL + GROUP BY + vhr.type_volume_horaire_id, + sr.intervenant_id, + fr.plafond, + fr.id + ) t + JOIN intervenant i ON i.id = t.intervenant_id +WHERE + t.heures > t.plafond + /*i.id*/ +GROUP BY + t.type_volume_horaire_id, + i.annee_id, + i.id, + i.structure_id; + +-- V_INDICATEUR_130 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_130" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT + rownum id, + t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM ( + +SELECT DISTINCT + s.annee_id annee_id, + s.intervenant_id intervenant_id, + i.structure_id structure_id +FROM + tbl_service s + JOIN intervenant i ON i.id = s.intervenant_id + JOIN statut_intervenant si ON si.id = i.statut_id +WHERE + si.tem_biatss = 1 + AND s.type_volume_horaire_code = 'PREVU' + AND s.intervenant_structure_id <> s.structure_id + AND s.valide > 0 + AND s.structure_id IS NOT NULL + +) t; + +-- V_INDICATEUR_210 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_210" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT + rownum id, + w.annee_id, + w.intervenant_id, + w.structure_id +FROM + tbl_workflow w +WHERE + w.atteignable = 1 + AND w.etape_code = 'CONSEIL_RESTREINT' + AND w.objectif > 0 + AND w.realisation < 1; + +-- V_INDICATEUR_220 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_220" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT + rownum id, + w.annee_id, + w.intervenant_id, + i.structure_id +FROM + tbl_workflow w + JOIN intervenant i ON i.id = w.intervenant_id +WHERE + w.atteignable = 1 + AND w.etape_code = 'CONSEIL_ACADEMIQUE' + AND w.objectif > 0 + AND w.realisation < 1; + +-- V_INDICATEUR_310 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_310" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + WITH caok AS ( + SELECT + w.intervenant_id + FROM + tbl_workflow w + WHERE + w.objectif > 0 + AND w.etape_code = 'CONSEIL_ACADEMIQUE' + AND w.realisation = w.objectif +) +SELECT + rownum id, + w.annee_id, + w.intervenant_id, + w.structure_id +FROM + tbl_workflow w + JOIN caok ON caok.intervenant_id = w.intervenant_id +WHERE + w.atteignable = 1 + AND w.etape_code = 'CONTRAT' + AND w.objectif > 0 + AND w.realisation < 1; + +-- V_INDICATEUR_320 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_320" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT + rownum id, + t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" +FROM ( +SELECT DISTINCT + w.annee_id, + w.intervenant_id, + w.structure_id +FROM + tbl_workflow w + LEFT JOIN tbl_contrat c ON c.INTERVENANT_ID = w.intervenant_id AND w.structure_id = c.structure_id +WHERE + w.atteignable = 1 + AND w.etape_code = 'CONTRAT' + AND w.objectif > 0 + AND w.realisation = 0 + AND NVL(c.EDITE,0) <> 1 +) t; + +-- V_INDICATEUR_330 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_330" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + WITH has_contrat AS ( + SELECT DISTINCT + intervenant_id + FROM + tbl_contrat + WHERE + edite > 0 +) +SELECT + rownum id, + w.annee_id, + w.intervenant_id, + w.structure_id +FROM + tbl_workflow w + JOIN has_contrat hc ON hc.intervenant_id = w.intervenant_id +WHERE + w.atteignable = 1 + AND w.etape_code = 'CONTRAT' + AND w.objectif > 0 + AND w.realisation < w.objectif; + +-- V_INDICATEUR_340 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_340" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT + rownum id, + s.annee_id, + s.intervenant_id, + s.structure_id +FROM + tbl_service s + JOIN tbl_workflow w ON w.intervenant_id = s.intervenant_id AND w.structure_id = s.structure_id +WHERE + s.type_intervenant_code = 'V' + AND s.type_volume_horaire_code = 'PREVU' + AND nbvh <> valide + AND w.etape_code = 'CONTRAT' + AND w.atteignable = 1 + AND w.objectif > 0 + AND w.realisation = w.objectif; + +-- V_INDICATEUR_350 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_350" ("ID", "INTERVENANT_ID", "ANNEE_ID", "STRUCTURE_ID", "CONTRAT_ID") AS + SELECT + rownum id, + t."INTERVENANT_ID",t."ANNEE_ID",t."STRUCTURE_ID",t."CONTRAT_ID" +FROM ( +SELECT DISTINCT + i.id intervenant_id, + i.annee_id annee_id, + c.structure_id structure_id, + c.id contrat_id +FROM + contrat c + JOIN contrat_fichier cf ON cf.contrat_id = c.id + JOIN fichier f ON f.id = cf.fichier_id + AND f.histo_destruction IS NULL + JOIN intervenant i ON i.id = c.intervenant_id +WHERE + c.histo_destruction IS NULL +) t; + +-- V_INDICATEUR_360 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_360" ("ID", "INTERVENANT_ID", "ANNEE_ID", "STRUCTURE_ID", "CONTRAT_ID") AS + SELECT + rownum id, + t."INTERVENANT_ID",t."ANNEE_ID",t."STRUCTURE_ID",t."CONTRAT_ID" +FROM ( +SELECT DISTINCT + i.id intervenant_id, + i.annee_id annee_id, + c.structure_id structure_id, + c.id contrat_id +FROM + contrat c + JOIN intervenant i ON i.id = c.intervenant_id + JOIN tbl_workflow w ON w.intervenant_id = i.id AND w.structure_id = c.structure_id AND w.etape_code = 'CONTRAT' AND w.atteignable = 1 + JOIN validation v ON v.id = c.validation_id AND v.histo_destruction IS NULL +WHERE + c.histo_destruction IS NULL + AND c.date_retour_signe IS NULL +) t; + +-- V_INDICATEUR_410 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_410" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT + rownum id, + d.annee_id, + d.intervenant_id, + i.structure_id +FROM + tbl_dossier d + JOIN intervenant i ON i.id = d.intervenant_id +WHERE + d.dossier_id IS NOT NULL + AND d.validation_id IS NULL + AND d.peut_saisir_dossier = 1; + +-- V_INDICATEUR_420 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_420" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM ( + SELECT DISTINCT + i.annee_id annee_id, + i.id intervenant_id, + i.structure_id + FROM + indic_modif_dossier d + JOIN intervenant i ON i.id = d.intervenant_id + WHERE + d.histo_destruction IS NULL +) t; + +-- V_INDICATEUR_510 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_510" ("ID", "INTERVENANT_ID", "ANNEE_ID", "STRUCTURE_ID", "ELEMENTS") AS + WITH t AS ( +SELECT + s.intervenant_id, + s.annee_id, + s.structure_id, + listagg( ep.source_code || ' - ' || ep.libelle, '||') WITHIN GROUP (ORDER BY ep.libelle) elements +FROM + tbl_service s + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id +WHERE + ( + s.has_heures_mauvaise_periode = 1 + OR s.etape_histo = 0 + OR s.element_pedagogique_histo = 0 + ) + AND s.heures > 0 +GROUP BY + s.intervenant_id, + s.annee_id, + s.structure_id +) +SELECT + rownum id, t."INTERVENANT_ID",t."ANNEE_ID",t."STRUCTURE_ID", t.elements +FROM t; + +-- V_INDICATEUR_520 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_520" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS + SELECT + fr.id id, + i.annee_id annee_id, + i.id intervenant_id, + i.structure_id structure_id, + si.plafond_hc_hors_remu_fc plafond, + fr.heures_compl_fa + fr.heures_compl_fc + fr.heures_compl_fi + fr.heures_compl_referentiel heures +FROM + formule_resultat fr + JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id + JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN statut_intervenant si ON si.id = i.statut_id +WHERE + tvh.code = 'PREVU' + AND evh.code = 'saisi' + AND si.plafond_hc_hors_remu_fc < fr.heures_compl_fa + fr.heures_compl_fc + fr.heures_compl_fi + fr.heures_compl_referentiel; + +-- V_INDICATEUR_530 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_530" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS + SELECT + fr.id id, + i.annee_id annee_id, + i.id intervenant_id, + i.structure_id structure_id, + si.plafond_hc_hors_remu_fc plafond, + fr.heures_compl_fa + fr.heures_compl_fc + fr.heures_compl_fi + fr.heures_compl_referentiel heures +FROM + formule_resultat fr + JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id + JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN statut_intervenant si ON si.id = i.statut_id +WHERE + tvh.code = 'REALISE' + AND evh.code = 'saisi' + AND si.plafond_hc_hors_remu_fc < fr.heures_compl_fa + fr.heures_compl_fc + fr.heures_compl_fi + fr.heures_compl_referentiel; + +-- V_INDICATEUR_540 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_540" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS + SELECT + rownum id, + i.annee_id annee_id, + i.id intervenant_id, + i.structure_id structure_id, + ROUND( (COALESCE(si.plafond_hc_remu_fc,0) - COALESCE(i.montant_indemnite_fc,0)) / a.taux_hetd, 2 ) plafond, + fr.heures_compl_fc_majorees heures +FROM + intervenant i + JOIN annee a ON a.id = i.annee_id + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN etat_volume_horaire evh ON evh.code = 'saisi' + JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id + JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id +WHERE + fr.heures_compl_fc_majorees > ROUND( (COALESCE(si.plafond_hc_remu_fc,0) - COALESCE(i.montant_indemnite_fc,0)) / a.taux_hetd, 2 ) + AND tvh.code = 'PREVU'; + +-- V_INDICATEUR_550 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_550" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS + SELECT + rownum id, + i.annee_id annee_id, + i.id intervenant_id, + i.structure_id structure_id, + ROUND( (COALESCE(si.plafond_hc_remu_fc,0) - COALESCE(i.montant_indemnite_fc,0)) / a.taux_hetd, 2 ) plafond, + fr.heures_compl_fc_majorees heures +FROM + intervenant i + JOIN annee a ON a.id = i.annee_id + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN etat_volume_horaire evh ON evh.code = 'saisi' + JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id + JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id +WHERE + fr.heures_compl_fc_majorees > ROUND( (COALESCE(si.plafond_hc_remu_fc,0) - COALESCE(i.montant_indemnite_fc,0)) / a.taux_hetd, 2 ) + AND tvh.code = 'REALISE'; + +-- V_INDICATEUR_560 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_560" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS + SELECT + rownum id, + i.annee_id annee_id, + i.id intervenant_id, + i.structure_id structure_id, + si.maximum_hetd plafond, + fr.total heures +FROM + intervenant i + JOIN etat_volume_horaire evh ON evh.code = 'saisi' + JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code= 'PREVU' +WHERE + fr.total > si.maximum_hetd; + +-- V_INDICATEUR_570 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_570" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS + SELECT + rownum id, + i.annee_id annee_id, + i.id intervenant_id, + i.structure_id structure_id, + si.maximum_hetd plafond, + fr.total heures +FROM + intervenant i + JOIN etat_volume_horaire evh ON evh.code = 'saisi' + JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code= 'REALISE' +WHERE + fr.total > si.maximum_hetd; + +-- V_INDICATEUR_610 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_610" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "STATUT_INTERVENANT_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID",t."STATUT_INTERVENANT_ID" FROM +( +SELECT DISTINCT + w.annee_id, + w.intervenant_id, + w.structure_id, + w.statut_intervenant_id +FROM + tbl_workflow w +WHERE + w.etape_code = 'SERVICE_VALIDATION' + AND w.type_intervenant_code = 'P' + AND w.atteignable = 1 + AND w.objectif > w.realisation +) t; + +-- V_INDICATEUR_620 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_620" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM +( +SELECT DISTINCT + w.annee_id, + w.intervenant_id, + w.structure_id +FROM + tbl_workflow w +WHERE + w.etape_code = 'REFERENTIEL_VALIDATION' + AND w.type_intervenant_code = 'P' + AND w.atteignable = 1 + AND w.objectif > w.realisation +) t; + +-- V_INDICATEUR_630 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_630" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM +( +SELECT DISTINCT + w.annee_id, + w.intervenant_id, + i.structure_id +FROM + tbl_workflow w + JOIN intervenant i ON i.id = w.intervenant_id +WHERE + w.etape_code = 'CLOTURE_REALISE' + AND w.atteignable = 1 + AND w.objectif > w.realisation +) t; + +-- V_INDICATEUR_640 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_640" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM +( +SELECT DISTINCT + w.annee_id, + w.intervenant_id, + w.structure_id +FROM + tbl_workflow w + JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id +WHERE + w.etape_code = 'SERVICE_VALIDATION_REALISE' + AND w.objectif > w.realisation + AND w.atteignable = 1 + + AND wc.etape_code = 'CLOTURE_REALISE' + AND wc.objectif = wc.realisation +) t; + +-- V_INDICATEUR_650 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_650" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "STRUCTURES_CONCERNEES") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID",t."STRUCTURES_CONCERNEES" FROM +( +SELECT + w.annee_id, + w.intervenant_id, + i.structure_id, + LISTAGG(s.libelle_court, '||') WITHIN GROUP (ORDER BY s.libelle_court) structures_concernees +FROM + tbl_workflow w + JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id + JOIN intervenant i ON i.id = wc.intervenant_id + JOIN structure s ON s.id = w.structure_id +WHERE + w.etape_code = 'SERVICE_VALIDATION_REALISE' + AND w.objectif > w.realisation + AND w.atteignable = 1 + + AND wc.etape_code = 'CLOTURE_REALISE' + AND wc.objectif = wc.realisation + AND w.structure_id <> i.structure_id +GROUP BY + w.annee_id, + w.intervenant_id, + i.structure_id +) t; + +-- V_INDICATEUR_660 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_660" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM +( +SELECT + w.annee_id, + w.intervenant_id, + i.structure_id +FROM + tbl_workflow w + JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id + JOIN intervenant i ON i.id = wc.intervenant_id + JOIN structure s ON s.id = w.structure_id +WHERE + w.etape_code = 'REFERENTIEL_VALIDATION_REALISE' + AND w.objectif > w.realisation + AND w.atteignable = 1 + + AND wc.etape_code = 'CLOTURE_REALISE' + AND wc.objectif = wc.realisation + AND w.structure_id = i.structure_id +GROUP BY + w.annee_id, + w.intervenant_id, + i.structure_id +) t; + +-- V_INDICATEUR_670 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_670" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "STRUCTURES_CONCERNEES") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID",t."STRUCTURES_CONCERNEES" FROM +( +SELECT + w.annee_id, + w.intervenant_id, + i.structure_id, + LISTAGG(s.libelle_court, '||') WITHIN GROUP (ORDER BY s.libelle_court) structures_concernees +FROM + tbl_workflow w + JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id + JOIN intervenant i ON i.id = wc.intervenant_id + JOIN structure s ON s.id = w.structure_id +WHERE + w.etape_code = 'REFERENTIEL_VALIDATION_REALISE' + AND w.objectif > w.realisation + AND w.atteignable = 1 + + AND wc.etape_code = 'CLOTURE_REALISE' + AND wc.objectif = wc.realisation + AND w.structure_id <> i.structure_id +GROUP BY + w.annee_id, + w.intervenant_id, + i.structure_id +) t; + +-- V_INDICATEUR_680 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_680" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS + SELECT + fr.id id, + i.annee_id annee_id, + i.id intervenant_id, + i.structure_id structure_id, + si.plafond_referentiel plafond, + fr.heures_compl_referentiel heures +FROM + formule_resultat fr + JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id + JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN statut_intervenant si ON si.id = i.statut_id +WHERE + tvh.code = 'PREVU' + AND evh.code = 'saisi' + AND si.plafond_referentiel < fr.service_referentiel + fr.heures_compl_referentiel; + +-- V_INDICATEUR_690 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_690" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS + SELECT + fr.id id, + i.annee_id annee_id, + i.id intervenant_id, + i.structure_id structure_id, + si.plafond_referentiel plafond, + fr.heures_compl_referentiel heures +FROM + formule_resultat fr + JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id + JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN statut_intervenant si ON si.id = i.statut_id +WHERE + tvh.code = 'REALISE' + AND evh.code = 'saisi' + AND si.plafond_referentiel < fr.service_referentiel + fr.heures_compl_referentiel; + +-- V_INDICATEUR_710 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_710" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM +( +SELECT DISTINCT + w.annee_id, + w.intervenant_id, + w.structure_id +FROM + tbl_workflow w +WHERE + w.etape_code = 'SERVICE_VALIDATION' + AND w.type_intervenant_code = 'E' + AND w.atteignable = 1 + AND w.objectif > w.realisation +) t; + +-- V_INDICATEUR_720 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_720" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM +( +SELECT DISTINCT + w.annee_id, + w.intervenant_id, + w.structure_id +FROM + tbl_workflow w +WHERE + w.etape_code = 'SERVICE_VALIDATION_REALISE' + AND w.type_intervenant_code = 'E' + AND w.atteignable = 1 + AND w.objectif > w.realisation +) t; + +-- V_INDICATEUR_810 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_810" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM +( +SELECT DISTINCT + w.annee_id, + w.intervenant_id, + w.structure_id +FROM + tbl_workflow w +WHERE + w.etape_code = 'DEMANDE_MEP' + AND w.type_intervenant_code = 'P' + AND w.atteignable = 1 + AND w.objectif > w.realisation +) t; + +-- V_INDICATEUR_820 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_820" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM +( +SELECT DISTINCT + w.annee_id, + w.intervenant_id, + w.structure_id +FROM + tbl_workflow w +WHERE + w.etape_code = 'SAISIE_MEP' + AND w.type_intervenant_code = 'P' + AND w.atteignable = 1 + AND w.objectif > w.realisation +) t; + +-- V_INDICATEUR_910 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_910" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM +( +SELECT DISTINCT + w.annee_id, + w.intervenant_id, + w.structure_id +FROM + tbl_workflow w +WHERE + w.etape_code = 'DEMANDE_MEP' + AND w.type_intervenant_code = 'E' + AND w.atteignable = 1 + AND w.objectif > w.realisation +) t; + +-- V_INDICATEUR_920 +CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_920" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM +( +SELECT DISTINCT + w.annee_id, + w.intervenant_id, + w.structure_id +FROM + tbl_workflow w +WHERE + w.etape_code = 'SAISIE_MEP' + AND w.type_intervenant_code = 'E' + AND w.atteignable = 1 + AND w.objectif > w.realisation +) t; + +-- V_INDIC_ATTENTE_DEMANDE_MEP +CREATE OR REPLACE FORCE VIEW "V_INDIC_ATTENTE_DEMANDE_MEP" ("ID", "INTERVENANT_ID", "SOURCE_CODE", "CODE", "ANNEE_ID", "STRUCTURE_ID", "TOTAL_HEURES_MEP", "TOTAL_HEURES_COMPL") AS + select to_number(i.id||dmep.structure_id) id, i.id intervenant_id, i.source_code, ti.code, i.annee_id, dmep.structure_id, 0 TOTAL_HEURES_MEP, 0 TOTAL_HEURES_COMPL + from intervenant i + join statut_intervenant si on si.id = i.statut_id + join type_intervenant ti on ti.id = si.type_intervenant_id + -- l'intervenant doit avoir des heures disponibles pour une demande de MEP + join V_HAS_DMEP_A_FAIRE dmep on dmep.intervenant_id = i.id and dmep.has_dmep_a_faire <> 0 + where ( + -- un vacataire n'a pas d'autre contrainte + ti.code = 'E' + or + -- mais un permanent doit... + ( + -- avoir sa saisie de service réalisé clôturée + exists ( + select * from validation v + join type_validation tv on v.type_validation_id = tv.id and tv.code = 'CLOTURE_REALISE' + where v.intervenant_id = i.id and v.histo_destruction IS NULL + ) + -- et tous ses enseignements réalisés validés (toutes composantes d'intervention confondues) + and not exists ( + select * from volume_horaire vh + join service s on vh.service_id = s.id and s.histo_destruction IS NULL + join type_volume_horaire tvh on vh.type_volume_horaire_id = tvh.id and tvh.code = 'REALISE' + left join validation_vol_horaire vvh on vvh.volume_horaire_id = vh.id + left join validation v on vvh.validation_id = v.id and v.histo_destruction IS NULL + left join type_validation tv on v.type_validation_id = tv.id and tv.code = 'SERVICES_PAR_COMP' + where s.intervenant_id = i.id and v.id is null and vh.histo_destruction IS NULL + ) + -- et tout son référentiel réalisé validé (toutes composantes d'intervention confondues) + and not exists ( + select * from volume_horaire_ref vh + join service_referentiel s on vh.service_referentiel_id = s.id and s.histo_destruction IS NULL + join type_volume_horaire tvh on vh.type_volume_horaire_id = tvh.id and tvh.code = 'REALISE' + left join validation_vol_horaire_ref vvh on vvh.volume_horaire_ref_id = vh.id + left join validation v on vvh.validation_id = v.id and v.histo_destruction IS NULL + left join type_validation tv on v.type_validation_id = tv.id and tv.code = 'SERVICES_PAR_COMP' + where s.intervenant_id = i.id and v.id is null and vh.histo_destruction IS NULL + ) + ) + ); + +-- V_INDIC_ATTENTE_MEP +CREATE OR REPLACE FORCE VIEW "V_INDIC_ATTENTE_MEP" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "TOTAL_HEURES_MEP") AS + with + -- total des heures comp ayant fait l'objet d'une *demande* de mise en paiement + mep as ( + select intervenant_id, structure_id, sum(nvl(mep_heures, 0)) total_heures_mep + from ( + -- enseignements + select + fr.intervenant_id, + nvl(ep.structure_id, i.structure_id) structure_id, + nvl(mep.heures, 0) mep_heures + from mise_en_paiement mep + join formule_resultat_service frs on mep.formule_res_service_id = frs.id + join formule_resultat fr on frs.formule_resultat_id = fr.id + join intervenant i on fr.intervenant_id = i.id + join type_volume_horaire tvh on fr.type_volume_horaire_id = tvh.id and tvh.code = 'REALISE' + join etat_volume_horaire evh on fr.etat_volume_horaire_id = evh.id and evh.code = 'valide' + join service s on frs.service_id = s.id + left join element_pedagogique ep on s.element_pedagogique_id = ep.id + where mep.histo_destruction IS NULL and mep.date_mise_en_paiement is null -- si date_mise_en_paiement = null, c'est une demande + union all + -- referentiel + select + fr.intervenant_id, + s.structure_id, + nvl(mep.heures, 0) mep_heures + from mise_en_paiement mep + join formule_resultat_service_ref frs on mep.formule_res_service_ref_id = frs.id + join formule_resultat fr on frs.formule_resultat_id = fr.id + join intervenant i on fr.intervenant_id = i.id + join type_volume_horaire tvh on fr.type_volume_horaire_id = tvh.id and tvh.code = 'REALISE' + join etat_volume_horaire evh on fr.etat_volume_horaire_id = evh.id and evh.code = 'valide' + join service_referentiel s on frs.service_referentiel_id = s.id + where mep.histo_destruction IS NULL and mep.date_mise_en_paiement is null -- si date_mise_en_paiement = null, c'est une demande + ) + group by intervenant_id, structure_id + ) +select to_number(intervenant_id||structure_id) id, 2014 annee_id, intervenant_id, structure_id, total_heures_mep from mep; + +-- V_INDIC_ATT_VALID_ENS_AUTRE +CREATE OR REPLACE FORCE VIEW "V_INDIC_ATT_VALID_ENS_AUTRE" ("ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT distinct + to_char(v.intervenant_id)||to_char(v.structure_id) as id, + v.intervenant_id, + v.structure_id +FROM v_indic_tous_services_valides v +INNER JOIN intervenant i ON V.INTERVENANT_ID = i.id AND i.HISTO_DESTRUCTION IS NULL +INNER JOIN TYPE_VOLUME_HORAIRE tvh ON v.type_volume_horaire_id = tvh.id AND tvh.code = 'REALISE' +INNER JOIN VALIDATION clot ON clot.intervenant_id = i.id AND clot.HISTO_DESTRUCTION IS NULL +INNER JOIN TYPE_VALIDATION tv ON tv.id = clot.type_validation_id AND tv.code = 'CLOTURE_REALISE' +WHERE EXISTS + ( + SELECT s2.ID + FROM SERVICE s2 + INNER JOIN ELEMENT_PEDAGOGIQUE ep2 ON s2.ELEMENT_PEDAGOGIQUE_ID = ep2.ID AND ep2.HISTO_DESTRUCTION IS NULL + INNER JOIN VOLUME_HORAIRE vh2 ON s2.ID = vh2.SERVICE_ID AND vh2.HISTO_DESTRUCTION IS NULL + LEFT JOIN VALIDATION_VOL_HORAIRE vvh2 ON vh2.ID = vvh2.VOLUME_HORAIRE_ID + LEFT JOIN VALIDATION val2 ON val2.ID = vvh2.VALIDATION_ID AND val2.HISTO_DESTRUCTION IS NULL + WHERE + s2.INTERVENANT_ID = v.intervenant_id + AND s2.HISTO_DESTRUCTION IS NULL + AND VH2.TYPE_VOLUME_HORAIRE_ID = V.TYPE_VOLUME_HORAIRE_ID + AND ep2.structure_id <> v.structure_id -- autre composante d'intervention que celle qui a tout validé + AND val2.ID IS NULL -- au moins un VH non validé + ); + +-- V_INDIC_ATT_VALID_REF_AUTRE +CREATE OR REPLACE FORCE VIEW "V_INDIC_ATT_VALID_REF_AUTRE" ("ID", "INTERVENANT_ID", "STRUCTURE_ID") AS + SELECT distinct + to_char(v.intervenant_id)||to_char(v.structure_id) as id, + v.intervenant_id, + v.structure_id +FROM v_indic_tous_services_valides v +INNER JOIN intervenant i ON V.INTERVENANT_ID = i.id AND i.HISTO_DESTRUCTION IS NULL +INNER JOIN TYPE_VOLUME_HORAIRE tvh ON v.type_volume_horaire_id = tvh.id AND tvh.code = 'REALISE' +INNER JOIN VALIDATION clot ON clot.intervenant_id = i.id AND clot.HISTO_DESTRUCTION IS NULL +INNER JOIN TYPE_VALIDATION tv ON tv.id = clot.type_validation_id AND tv.code = 'CLOTURE_REALISE' +WHERE EXISTS + ( + SELECT s.ID + FROM SERVICE_REFERENTIEL s + INNER JOIN FONCTION_REFERENTIEL f ON S.FONCTION_ID = f.ID AND f.HISTO_DESTRUCTION IS NULL + INNER JOIN VOLUME_HORAIRE_REF vh ON s.ID = VH.SERVICE_REFERENTIEL_ID AND vh.HISTO_DESTRUCTION IS NULL + LEFT JOIN VALIDATION_VOL_HORAIRE vvh ON vh.ID = vvh.VOLUME_HORAIRE_ID + LEFT JOIN VALIDATION val ON val.ID = vvh.VALIDATION_ID AND val.HISTO_DESTRUCTION IS NULL + WHERE + s.INTERVENANT_ID = v.intervenant_id + AND s.HISTO_DESTRUCTION IS NULL + AND VH.TYPE_VOLUME_HORAIRE_ID = V.TYPE_VOLUME_HORAIRE_ID + AND s.structure_id <> v.structure_id -- autre composante d'intervention que celle qui a tout validé + AND val.ID IS NULL -- au moins un VH non validé + ); + +-- V_INDIC_ATT_VALID_SERVICE +CREATE OR REPLACE FORCE VIEW "V_INDIC_ATT_VALID_SERVICE" ("ID", "INTERVENANT_ID", "STRUCTURE_ID", "TYPE_VOLUME_HORAIRE_ID") AS + select distinct rownum id, i.id intervenant_id, nvl(ep.structure_id, i.structure_id) structure_id, vh.type_volume_horaire_id +from service s +join intervenant i on i.id = s.intervenant_id and i.histo_destruction IS NULL +join volume_horaire vh on vh.service_id = s.id and vh.histo_destruction IS NULL +join element_pedagogique ep on s.element_pedagogique_id = ep.id and ep.histo_destruction IS NULL +--join type_volume_horaire tvh on vh.type_volume_horaire_id = tvh.id and tvh.code = 'REALISE' +left join validation_vol_horaire vvh on vvh.volume_horaire_id = vh.id +left join validation v on vvh.validation_id = v.id and v.histo_destruction IS NULL +where v.id is null and s.histo_destruction IS NULL; + +-- V_INDIC_ATT_VALID_SERVICE_REF +CREATE OR REPLACE FORCE VIEW "V_INDIC_ATT_VALID_SERVICE_REF" ("ID", "INTERVENANT_ID", "STRUCTURE_ID", "TYPE_VOLUME_HORAIRE_ID") AS + select distinct rownum id, i.id intervenant_id, s.structure_id, vh.type_volume_horaire_id +from service_referentiel s +join intervenant i on i.id = s.intervenant_id and i.histo_destruction IS NULL +join volume_horaire_ref vh on vh.service_referentiel_id = s.id and vh.histo_destruction IS NULL +join fonction_referentiel f on s.fonction_id = f.id and f.histo_destruction IS NULL +--join type_volume_horaire tvh on vh.type_volume_horaire_id = tvh.id and tvh.code = 'REALISE' +left join validation_vol_horaire_ref vvh on vvh.volume_horaire_ref_id = vh.id +left join validation v on vvh.validation_id = v.id and v.histo_destruction IS NULL +where v.id is null and s.histo_destruction IS NULL; + +-- V_INDIC_DEPASS_CHARGES +CREATE OR REPLACE FORCE VIEW "V_INDIC_DEPASS_CHARGES" ("ID", "ANNEE_ID", "TYPE_VOLUME_HORAIRE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "ELEMENT_PEDAGOGIQUE_ID", "PERIODE_ID", "TYPE_INTERVENTION_ID", "HEURES") AS + WITH c AS ( + SELECT + vhe.element_pedagogique_id, + vhe.type_intervention_id, + MAX(vhe.heures) heures, + COALESCE( MAX(vhe.groupes), ROUND(SUM(t.groupes),10) ) groupes + + FROM + volume_horaire_ens vhe + JOIN parametre p ON p.nom = 'scenario_charges_services' + LEFT JOIN tbl_chargens t ON t.element_pedagogique_id = vhe.element_pedagogique_id + AND t.type_intervention_id = vhe.type_intervention_id + AND t.scenario_id = to_number(p.valeur) + GROUP BY + vhe.element_pedagogique_id, + vhe.type_intervention_id +), s AS ( + SELECT + i.annee_id, + vh.type_volume_horaire_id, + s.intervenant_id, + s.element_pedagogique_id, + vh.type_intervention_id, + SUM(vh.heures) heures + FROM + volume_horaire vh + JOIN service s ON s.id = vh.service_id + AND s.element_pedagogique_id IS NOT NULL + AND s.histo_destruction IS NULL + JOIN intervenant i ON i.id = s.intervenant_id + AND i.histo_destruction IS NULL + WHERE + vh.histo_destruction IS NULL + GROUP BY + i.annee_id, + vh.type_volume_horaire_id, + s.intervenant_id, + s.element_pedagogique_id, + vh.type_intervention_id +) +SELECT + rownum id, + s.annee_id annee_id, + s.type_volume_horaire_id type_volume_horaire_id, + s.intervenant_id intervenant_id, + ep.structure_id structure_id, + s.element_pedagogique_id element_pedagogique_id, + ep.periode_id periode_id, + s.type_intervention_id type_intervention_id, + s.heures - COALESCE(c.heures * c.groupes,0) heures +FROM + s + JOIN type_intervention ti ON ti.id = s.type_intervention_id + JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + LEFT JOIN c ON c.element_pedagogique_id = s.element_pedagogique_id + AND c.type_intervention_id = COALESCE(ti.type_intervention_maquette_id,ti.id) +WHERE + s.heures - COALESCE(c.heures * c.groupes,0) > 0; + +-- V_INDIC_DEPASS_HC_HORS_REMU_FC +CREATE OR REPLACE FORCE VIEW "V_INDIC_DEPASS_HC_HORS_REMU_FC" ("ID", "ANNEE_ID", "INTERVENANT_ID", "TYPE_VOLUME_HORAIRE_ID", "STRUCTURE_ID", "TOTAL", "PLAFOND") AS + with totaux as ( + -- totaux HC FI+FA+FC+Ref par intervenant et type de VH + select fr.intervenant_id, fr.type_volume_horaire_id, sum(fr.heures_compl_fi + fr.heures_compl_fa + fr.heures_compl_fc + fr.heures_compl_referentiel) total + from formule_resultat fr + join etat_volume_horaire evh on evh.id = fr.etat_volume_horaire_id and evh.code = 'saisi' + group by fr.intervenant_id, fr.type_volume_horaire_id +), +depass as ( + -- totaux HC FI+FA+FC+Ref dépassant le plafond HC par intervenant et type de VH + select i.id intervenant_id, t.type_volume_horaire_id, t.total, si.plafond_hc_hors_remu_fc plafond + from intervenant i + join statut_intervenant si on i.statut_id = si.id and si.plafond_hc_hors_remu_fc is not null + join totaux t on t.intervenant_id = i.id + where t.total > si.plafond_hc_hors_remu_fc +), +str_interv as ( + -- structures d'intervention distinctes par intervenant et type de VH + select distinct s.intervenant_id, vh.type_volume_horaire_id, coalesce(ep.structure_id, i.structure_id) structure_id + from service s + left join element_pedagogique ep on s.element_pedagogique_id = ep.id and ep.histo_destruction IS NULL + join intervenant i on s.intervenant_id = i.id and i.histo_destruction IS NULL + join volume_horaire vh on vh.service_id = s.id and vh.histo_destruction IS NULL + join v_vol_horaire_etat_multi vhe on vhe.volume_horaire_id = vh.id + join etat_volume_horaire evh on vhe.etat_volume_horaire_id = evh.id and evh.code = 'saisi' + where s.histo_destruction IS NULL +) +select to_number(d.intervenant_id||d.type_volume_horaire_id||str.structure_id) id, 2014 annee_id, d.intervenant_id, d.type_volume_horaire_id, str.structure_id, d.total, d.plafond +from depass d +join str_interv str on str.intervenant_id = d.intervenant_id and str.type_volume_horaire_id = d.type_volume_horaire_id; + +-- V_INDIC_DEPASS_REF +CREATE OR REPLACE FORCE VIEW "V_INDIC_DEPASS_REF" ("ID", "ANNEE_ID", "INTERVENANT_ID", "TYPE_VOLUME_HORAIRE_ID", "STRUCTURE_ID", "TOTAL", "PLAFOND") AS + with totaux as ( + select fr.intervenant_id, fr.type_volume_horaire_id, sum(fr.service_referentiel) total + from formule_resultat fr + join etat_volume_horaire evh on evh.id = fr.etat_volume_horaire_id and evh.code = 'saisi' + group by fr.intervenant_id, fr.type_volume_horaire_id + having sum(fr.service_referentiel) > 0 +), +depass as ( + select i.id intervenant_id, t.type_volume_horaire_id, t.total, si.plafond_referentiel plafond + from intervenant i + join statut_intervenant si on i.statut_id = si.id and si.plafond_referentiel is not null and si.plafond_referentiel <> 0 + join totaux t on t.intervenant_id = i.id + where t.total > si.plafond_referentiel +), +str_interv as ( + -- structures d'intervention distinctes par intervenant et type de VH + select distinct s.intervenant_id, vh.type_volume_horaire_id, s.structure_id + from service_referentiel s + join volume_horaire_ref vh on vh.service_referentiel_id = s.id and vh.histo_destruction IS NULL + join v_vol_horaire_ref_etat_multi vhe on vhe.volume_horaire_ref_id = vh.id + join etat_volume_horaire evh on vhe.etat_volume_horaire_id = evh.id and evh.code = 'saisi' + where s.histo_destruction IS NULL +) +select to_number(d.intervenant_id||d.type_volume_horaire_id||str.structure_id) id, 2014 annee_id, d.intervenant_id, d.type_volume_horaire_id, str.structure_id, d.total, d.plafond +from depass d +join str_interv str on str.intervenant_id = d.intervenant_id and str.type_volume_horaire_id = d.type_volume_horaire_id; + +-- V_INDIC_DIFF_DOSSIER +CREATE OR REPLACE FORCE VIEW "V_INDIC_DIFF_DOSSIER" ("ID", "NOM_USUEL", "ADRESSE_DOSSIER", "ADRESSE_IMPORT", "RIB_DOSSIER", "RIB_IMPORT", "NOM_USUEL_DOSSIER", "NOM_USUEL_IMPORT", "PRENOM_DOSSIER", "PRENOM_IMPORT") AS + WITH aa AS ( + SELECT a.*, ose_divers.formatted_adresse( + a.NO_VOIE, + a.NOM_VOIE, + a.BATIMENT, + a.MENTION_COMPLEMENTAIRE, + a.LOCALITE, + a.CODE_POSTAL, + a.VILLE, + a.PAYS_LIBELLE) to_string FROM adresse_intervenant a +) +select + i.id, + i.nom_usuel, + case when d.adresse <> a.to_string then d.adresse else null end adresse_dossier, + case when d.adresse <> a.to_string then a.to_string else null end adresse_import, + case when d.rib <> REPLACE(i.BIC || '-' || i.IBAN, ' ') then d.rib else null end rib_dossier, + case when d.rib <> REPLACE(i.BIC || '-' || i.IBAN, ' ') then REPLACE(i.BIC || '-' || i.IBAN, ' ') else null end rib_import, + case when UPPER(REPLACE(d.nom_usuel, ' ')) <> UPPER(REPLACE(i.nom_usuel, ' ')) then REPLACE(d.nom_usuel, ' ') else null end nom_usuel_dossier, + case when UPPER(REPLACE(d.nom_usuel, ' ')) <> UPPER(REPLACE(i.nom_usuel, ' ')) then REPLACE(i.nom_usuel, ' ') else null end nom_usuel_import, + case when UPPER(REPLACE(d.prenom, ' ')) <> UPPER(REPLACE(i.prenom, ' ')) then REPLACE(d.prenom, ' ') else null end prenom_dossier, + case when UPPER(REPLACE(d.prenom, ' ')) <> UPPER(REPLACE(i.prenom, ' ')) then REPLACE(i.prenom, ' ') else null end prenom_import + from intervenant i + join dossier d on d.intervenant_id = i.id + left join aa a on a.intervenant_id = i.id; + +-- V_INDIC_TOUS_SERVICES_VALIDES +CREATE OR REPLACE FORCE VIEW "V_INDIC_TOUS_SERVICES_VALIDES" ("INTERVENANT_ID", "STRUCTURE_ID", "TYPE_VOLUME_HORAIRE_ID") AS + with struct_ens_non_valides as ( + -- intervenants et structures d'intervention pour lesquelles des VH d'enseignement NE SONT PAS validés + SELECT distinct s.intervenant_id, ep.structure_id, vh.type_volume_horaire_id + FROM SERVICE s + INNER JOIN ELEMENT_PEDAGOGIQUE ep ON s.ELEMENT_PEDAGOGIQUE_ID = ep.ID AND ep.HISTO_DESTRUCTION IS NULL + INNER JOIN VOLUME_HORAIRE vh ON s.ID = vh.SERVICE_ID AND vh.HISTO_DESTRUCTION IS NULL + LEFT JOIN VALIDATION_VOL_HORAIRE vvh ON vvh.volume_horaire_id = vh.id + LEFT JOIN VALIDATION val ON val.ID = vvh.validation_id AND val.HISTO_DESTRUCTION IS NULL + WHERE s.HISTO_DESTRUCTION IS NULL + AND val.id is null +), +struct_ref_non_valides as ( + -- intervenants et structures d'intervention pour lesquelles des VH de référentiel NE SONT PAS validés + SELECT distinct s.intervenant_id, s.structure_id, vh.type_volume_horaire_id + FROM SERVICE_REFERENTIEL s + INNER JOIN FONCTION_REFERENTIEL f ON s.FONCTION_ID = f.ID AND f.HISTO_DESTRUCTION IS NULL + INNER JOIN VOLUME_HORAIRE_REF vh ON s.ID = VH.SERVICE_REFERENTIEL_ID AND vh.HISTO_DESTRUCTION IS NULL + LEFT JOIN VALIDATION_VOL_HORAIRE_REF vvh ON VVH.VOLUME_HORAIRE_REF_ID = vh.id + LEFT JOIN VALIDATION val ON val.ID = vvh.validation_id AND val.HISTO_DESTRUCTION IS NULL + WHERE s.HISTO_DESTRUCTION IS NULL + AND val.id is null +) +-- intervenants et structures d'intervention pour lesquelles tous les VH de référentiel et tous les VH d'enseignement SONT validés +SELECT distinct s.intervenant_id, ep.structure_id, vh.type_volume_horaire_id +FROM SERVICE s +INNER JOIN ELEMENT_PEDAGOGIQUE ep ON s.ELEMENT_PEDAGOGIQUE_ID = ep.ID AND ep.HISTO_DESTRUCTION IS NULL +INNER JOIN VOLUME_HORAIRE vh ON s.ID = vh.SERVICE_ID AND vh.HISTO_DESTRUCTION IS NULL +WHERE not exists ( + SELECT * from struct_ens_non_valides ens_nv + where ens_nv.INTERVENANT_ID = s.intervenant_id and ens_nv.structure_id = ep.structure_id and ens_nv.type_volume_horaire_id = vh.type_volume_horaire_id +) +----- +UNION +----- +SELECT distinct s.intervenant_id, s.structure_id, vh.type_volume_horaire_id +FROM SERVICE_REFERENTIEL s +INNER JOIN FONCTION_REFERENTIEL f ON s.FONCTION_ID = f.ID AND f.HISTO_DESTRUCTION IS NULL +INNER JOIN VOLUME_HORAIRE_REF vh ON s.ID = VH.SERVICE_REFERENTIEL_ID AND vh.HISTO_DESTRUCTION IS NULL +WHERE s.HISTO_DESTRUCTION IS NULL +and not exists ( + SELECT * from struct_ref_non_valides ref_nv + where ref_nv.INTERVENANT_ID = s.intervenant_id and ref_nv.structure_id = s.structure_id and ref_nv.type_volume_horaire_id = vh.type_volume_horaire_id +); + +-- V_MEP_INTERVENANT_STRUCTURE +CREATE OR REPLACE FORCE VIEW "V_MEP_INTERVENANT_STRUCTURE" ("ID", "MISE_EN_PAIEMENT_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PERIODE_PAIEMENT_ID", "DOMAINE_FONCTIONNEL_ID") AS + SELECT + rownum id, + t1."MISE_EN_PAIEMENT_ID", + t1."INTERVENANT_ID", + t1."STRUCTURE_ID", + t1.periode_paiement_id, + t1.domaine_fonctionnel_id +FROM ( + +SELECT + mep.id mise_en_paiement_id, + fr.intervenant_id intervenant_id, + sr.structure_id structure_id, + mep.periode_paiement_id periode_paiement_id, + COALESCE(mep.domaine_fonctionnel_id, fr.domaine_fonctionnel_id) domaine_fonctionnel_id +FROM + formule_resultat fr + JOIN formule_resultat_service_ref frsr ON frsr.formule_resultat_id = fr.id + JOIN mise_en_paiement mep ON mep.formule_res_service_ref_id = frsr.id + JOIN centre_cout cc ON cc.id = mep.centre_cout_id + JOIN service_referentiel sr ON sr.id = frsr.service_referentiel_id + JOIN fonction_referentiel fr ON fr.id = sr.fonction_id +UNION + +SELECT + mep.id mise_en_paiement_id, + fr.intervenant_id intervenant_id, + COALESCE( ep.structure_id, i.structure_id ) structure_id, + mep.periode_paiement_id periode_paiement_id, + COALESCE( + mep.domaine_fonctionnel_id, + e.domaine_fonctionnel_id, + to_number((SELECT valeur FROM parametre WHERE nom = 'domaine_fonctionnel_ens_ext')) + ) domaine_fonctionnel_id +FROM + formule_resultat fr + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN formule_resultat_service frs ON frs.formule_resultat_id = fr.id + JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id + JOIN centre_cout cc ON cc.id = mep.centre_cout_id + JOIN service s ON s.id = frs.service_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + LEFT JOIN etape e ON e.id = ep.etape_id +) t1; + +-- V_MODIF_SERVICE_DU_EXPORT_CSV +CREATE OR REPLACE FORCE VIEW "V_MODIF_SERVICE_DU_EXPORT_CSV" ("ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "ANNEE", "STRUCTURE_LIBELLE", "INTERVENANT_CODE", "INTERVENANT_NOM_USUEL", "INTERVENANT_NOM_PATRONYMIQUE", "INTERVENANT_PRENOM", "INTERVENANT_STATUT_LIBELLE", "INTERVENANT_SERVICE_STATUTAIRE", "MOTIF_CODE", "MOTIF_LIBELLE", "HEURES", "COMMENTAIRES", "MODIFICATEUR", "DATE_MODIFICATION") AS + SELECT + i.annee_id annee_id, + i.id intervenant_id, + i.structure_id structure_id, + + a.libelle annee, + s.libelle_court structure_libelle, + + i.code intervenant_code, + i.nom_usuel intervenant_nom_usuel, + i.nom_patronymique intervenant_nom_patronymique, + i.prenom intervenant_prenom, + si.libelle intervenant_statut_libelle, + si.service_statutaire intervenant_service_statutaire, + + mss.code motif_code, + mss.libelle motif_libelle, + + msd.heures * mss.multiplicateur heures, + + msd.commentaires commentaires, + u.display_name modificateur, + msd.histo_modification date_modification +FROM + modification_service_du msd + JOIN intervenant i ON i.id = msd.intervenant_id + JOIN annee a ON a.id = i.annee_id + JOIN structure s ON s.id = i.structure_id + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN motif_modification_service mss ON mss.id = msd.motif_id + JOIN utilisateur u ON u.id = msd.histo_modificateur_id +WHERE + msd.histo_destruction IS NULL + AND i.histo_destruction IS NULL +ORDER BY + annee_id, + structure_libelle, + intervenant_nom_usuel, + motif_libelle, + heures; + +-- V_NIVEAU_FORMATION +CREATE OR REPLACE FORCE VIEW "V_NIVEAU_FORMATION" ("ID", "CODE", "LIBELLE_LONG", "NIVEAU", "GROUPE_TYPE_FORMATION_ID") AS + SELECT DISTINCT + ose_divers.niveau_formation_id_calc( gtf.id, gtf.pertinence_niveau, e.niveau ) id, + gtf.libelle_court || e.niveau code, + gtf.libelle_long, + e.niveau, + gtf.id groupe_type_formation_id +FROM + etape e + JOIN type_formation tf ON tf.id = e.type_formation_id AND tf.histo_destruction IS NULL + JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id AND gtf.histo_destruction IS NULL +WHERE + e.histo_destruction IS NULL + AND ose_divers.niveau_formation_id_calc( gtf.id, gtf.pertinence_niveau, e.niveau ) IS NOT NULL +ORDER BY + gtf.libelle_long, e.niveau; + +-- V_PJ_HEURES +CREATE OR REPLACE FORCE VIEW "V_PJ_HEURES" ("NOM_USUEL", "PRENOM", "INTERVENANT_ID", "SOURCE_CODE", "ANNEE_ID", "CATEG", "TOTAL_HEURES") AS + SELECT + i.NOM_USUEL, + i.PRENOM, + i.id intervenant_id, + i.SOURCE_CODE, + i.annee_id, 'service' categ, + sum(vh.HEURES) as total_heures +from INTERVENANT i + join SERVICE s on s.INTERVENANT_ID = i.id and s.histo_destruction IS NULL + join VOLUME_HORAIRE vh on vh.SERVICE_ID = s.id and vh.histo_destruction IS NULL + join type_volume_horaire tvh ON TVH.ID = VH.TYPE_VOLUME_HORAIRE_ID AND (tvh.code = 'PREVU') + join ELEMENT_PEDAGOGIQUE ep on s.ELEMENT_PEDAGOGIQUE_ID = ep.id and ep.histo_destruction IS NULL + join ETAPE e on ep.ETAPE_ID = e.id and e.histo_destruction IS NULL +where i.histo_destruction IS NULL + group by i.NOM_USUEL, i.PRENOM, i.id, i.SOURCE_CODE, i.annee_id, 'service' +UNION + SELECT i.NOM_USUEL, i.PRENOM, i.id intervenant_id, i.SOURCE_CODE, i.annee_id, 'referentiel' categ, sum(vh.HEURES) as total_heures + from INTERVENANT i + join service_referentiel s on s.INTERVENANT_ID = i.id and s.histo_destruction IS NULL + join volume_horaire_ref vh on vh.service_referentiel_id = s.id and vh.histo_destruction IS NULL + join type_volume_horaire tvh ON TVH.ID = VH.TYPE_VOLUME_HORAIRE_ID AND (tvh.code = 'PREVU') + join fonction_referentiel ep on s.fonction_id = ep.id and ep.histo_destruction IS NULL + where i.histo_destruction IS NULL + group by i.NOM_USUEL, i.PRENOM, i.id, i.SOURCE_CODE, i.annee_id, 'referentiel'; + +-- V_PRIVILEGES_ROLES +CREATE OR REPLACE FORCE VIEW "V_PRIVILEGES_ROLES" ("PRIVILEGE", "ROLE") AS + WITH statuts_roles AS ( +SELECT + rp.privilege_id, + r.code role +FROM + role_privilege rp + JOIN role r ON r.id = rp.role_id AND r.histo_destruction IS NULL + +UNION ALL + +SELECT + sp.privilege_id, + 'statut/' || s.source_code role +FROM + statut_privilege sp + JOIN statut_intervenant s ON s.id = sp.statut_id AND s.histo_destruction IS NULL +) +SELECT + cp.code || '-' || p.code privilege, + sr.role +FROM + privilege p + JOIN categorie_privilege cp ON cp.id = p.categorie_id + LEFT JOIN statuts_roles sr ON sr.privilege_id = p.id; + +-- V_REF_INTERVENANT +CREATE OR REPLACE FORCE VIEW "V_REF_INTERVENANT" ("C_INTERVENANT") AS + SELECT DISTINCT + i.source_code C_INTERVENANT +FROM + tbl_service s + JOIN intervenant i ON i.id = s.intervenant_id + JOIN annee a ON a.id = s.annee_id +WHERE + s.nbvh > 0 + AND SYSDATE BETWEEN a.date_debut AND a.date_fin; + +-- V_SERVICE_NON_VALIDE +CREATE OR REPLACE FORCE VIEW "V_SERVICE_NON_VALIDE" ("ID", "INTERVENANT_ID", "SERVICE_ID", "VOLUME_HORAIRE_ID", "ELEMENT_PEDAGOGIQUE_ID", "LIBELLE", "HEURES") AS + select vh.ID, i.ID as intervenant_id, s.ID as service_id, vh.ID as volume_horaire_id, ep.id as element_pedagogique_id, ep.LIBELLE, vh.HEURES + from service s + inner join INTERVENANT i on s.INTERVENANT_ID = i.id + inner join ELEMENT_PEDAGOGIQUE ep on s.ELEMENT_PEDAGOGIQUE_ID = ep.id and ep.histo_destruction IS NULL + inner join VOLUME_HORAIRE vh on vh.SERVICE_ID = s.ID and vh.HISTO_DESTRUCTION is null + left join VALIDATION_VOL_HORAIRE vvh on vvh.VOLUME_HORAIRE_ID = vh.ID + left join VALIDATION v on vvh.VALIDATION_ID = v.ID + left join TYPE_VALIDATION tv on v.TYPE_VALIDATION_ID = tv.ID + where (v.ID is null or v.HISTO_DESTRUCTION is not null) and + not exists ( + select * from VALIDATION_VOL_HORAIRE vvh2 + inner join VALIDATION v2 on vvh2.VALIDATION_ID = v2.ID and v2.histo_destruction IS NULL + where vvh2.VOLUME_HORAIRE_ID = vvh.VOLUME_HORAIRE_ID + ); + +-- V_SERVICE_VALIDE +CREATE OR REPLACE FORCE VIEW "V_SERVICE_VALIDE" ("ID", "INTERVENANT_ID", "SERVICE_ID", "VOLUME_HORAIRE_ID", "ELEMENT_PEDAGOGIQUE_ID", "LIBELLE", "HEURES", "VALIDATION_ID", "CODE") AS + select vh.ID, i.ID as intervenant_id, s.ID as service_id, vh.ID as volume_horaire_id, ep.id as element_pedagogique_id, ep.LIBELLE, vh.HEURES, v.ID as validation_id, tv.CODE + from service s + inner join INTERVENANT i on s.INTERVENANT_ID = i.id + left join ELEMENT_PEDAGOGIQUE ep on s.ELEMENT_PEDAGOGIQUE_ID = ep.id and ep.histo_destruction IS NULL -- pas d'EP si intervention hors-UCBN + inner join VOLUME_HORAIRE vh on vh.SERVICE_ID = s.ID and vh.histo_destruction IS NULL + inner join VALIDATION_VOL_HORAIRE vvh on vvh.VOLUME_HORAIRE_ID = vh.ID + inner join VALIDATION v on vvh.VALIDATION_ID = v.ID and v.histo_destruction IS NULL + inner join TYPE_VALIDATION tv on v.TYPE_VALIDATION_ID = tv.ID; + +-- V_STRUCTURE_TYPE_MODULATEUR +CREATE OR REPLACE FORCE VIEW "V_STRUCTURE_TYPE_MODULATEUR" ("TYPE_MODULATEUR_ID", "STRUCTURE_ID") AS + SELECT DISTINCT + etm.type_modulateur_id type_modulateur_id, + ep.structure_id structure_id +FROM + v_element_type_modulateur etm + JOIN element_pedagogique ep ON ep.id = etm.element_pedagogique_id AND ep.histo_destruction IS NULL; + +-- V_TBL_AGREMENT +CREATE OR REPLACE FORCE VIEW "V_TBL_AGREMENT" ("ANNEE_ID", "TYPE_AGREMENT_ID", "INTERVENANT_ID", "STRUCTURE_ID", "OBLIGATOIRE", "AGREMENT_ID") AS + WITH i_s AS ( + SELECT DISTINCT + fr.intervenant_id, + ep.structure_id + FROM + formule_resultat fr + JOIN type_volume_horaire tvh ON tvh.code = 'PREVU' AND tvh.id = fr.type_volume_horaire_id + JOIN etat_volume_horaire evh ON evh.code = 'valide' AND evh.id = fr.etat_volume_horaire_id + + JOIN formule_resultat_service frs ON frs.formule_resultat_id = fr.id + JOIN service s ON s.id = frs.service_id + JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + WHERE + frs.total > 0 +) +SELECT + i.annee_id annee_id, + tas.type_agrement_id type_agrement_id, + i.id intervenant_id, + null structure_id, + tas.obligatoire obligatoire, + a.id agrement_id +FROM + type_agrement ta + JOIN type_agrement_statut tas ON tas.type_agrement_id = ta.id + AND tas.histo_destruction IS NULL + + JOIN intervenant i ON i.histo_destruction IS NULL + AND (tas.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = tas.premier_recrutement) + AND i.statut_id = tas.statut_intervenant_id + + LEFT JOIN agrement a ON a.type_agrement_id = ta.id + AND a.intervenant_id = i.id + AND a.histo_destruction IS NULL +WHERE + ta.code = 'CONSEIL_ACADEMIQUE' + +UNION ALL + +SELECT + i.annee_id annee_id, + tas.type_agrement_id type_agrement_id, + i.id intervenant_id, + i_s.structure_id structure_id, + tas.obligatoire obligatoire, + a.id agrement_id +FROM + type_agrement ta + JOIN type_agrement_statut tas ON tas.type_agrement_id = ta.id + AND tas.histo_destruction IS NULL + + JOIN intervenant i ON i.histo_destruction IS NULL + AND (tas.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = tas.premier_recrutement) + AND i.statut_id = tas.statut_intervenant_id + + JOIN i_s ON i_s.intervenant_id = i.id + + LEFT JOIN agrement a ON a.type_agrement_id = ta.id + AND a.intervenant_id = i.id + AND a.structure_id = i_s.structure_id + AND a.histo_destruction IS NULL +WHERE + ta.code = 'CONSEIL_RESTREINT'; + +-- V_TBL_CHARGENS +CREATE OR REPLACE FORCE VIEW "V_TBL_CHARGENS" ("ANNEE_ID", "NOEUD_ID", "SCENARIO_ID", "TYPE_HEURES_ID", "TYPE_INTERVENTION_ID", "ELEMENT_PEDAGOGIQUE_ID", "ETAPE_ID", "ETAPE_ENS_ID", "STRUCTURE_ID", "GROUPE_TYPE_FORMATION_ID", "OUVERTURE", "DEDOUBLEMENT", "ASSIDUITE", "EFFECTIF", "HEURES_ENS", "GROUPES", "HEURES", "HETD") AS + WITH t AS ( +SELECT + n.annee_id annee_id, + n.noeud_id noeud_id, + sn.scenario_id scenario_id, + sne.type_heures_id type_heures_id, + ti.id type_intervention_id, + + n.element_pedagogique_id element_pedagogique_id, + n.element_pedagogique_etape_id etape_id, + sne.etape_id etape_ens_id, + n.structure_id structure_id, + n.groupe_type_formation_id groupe_type_formation_id, + + vhe.heures heures, + vhe.heures * ti.taux_hetd_service hetd, + + GREATEST(COALESCE(sns.ouverture, 1),1) ouverture, + GREATEST(COALESCE(sns.dedoublement, snsetp.dedoublement, csdd.dedoublement,1),1) dedoublement, + COALESCE(sns.assiduite,1) assiduite, + sne.effectif*COALESCE(sns.assiduite,1) effectif, + + SUM(sne.effectif*COALESCE(sns.assiduite,1)) OVER (PARTITION BY n.noeud_id, sn.scenario_id, ti.id) t_effectif + +FROM + scenario_noeud_effectif sne + JOIN etape e ON e.id = sne.etape_id + AND e.histo_destruction IS NULL + + JOIN scenario_noeud sn ON sn.id = sne.scenario_noeud_id + AND sn.histo_destruction IS NULL + + JOIN tbl_noeud n ON n.noeud_id = sn.noeud_id + + JOIN volume_horaire_ens vhe ON vhe.element_pedagogique_id = n.element_pedagogique_id + AND vhe.histo_destruction IS NULL + AND vhe.heures > 0 + + JOIN type_intervention ti ON ti.id = vhe.type_intervention_id + + LEFT JOIN tbl_noeud netp ON netp.etape_id = e.id + + LEFT JOIN scenario_noeud snetp ON snetp.scenario_id = sn.scenario_id + AND snetp.noeud_id = netp.noeud_id + AND snetp.histo_destruction IS NULL + + LEFT JOIN scenario_noeud_seuil snsetp ON snsetp.scenario_noeud_id = snetp.id + AND snsetp.type_intervention_id = ti.id + + LEFT JOIN tbl_chargens_seuils_def csdd ON csdd.annee_id = n.annee_id + AND csdd.scenario_id = sn.scenario_id + AND csdd.type_intervention_id = ti.id + AND csdd.groupe_type_formation_id = n.groupe_type_formation_id + AND csdd.structure_id = n.structure_id + + LEFT JOIN scenario_noeud_seuil sns ON sns.scenario_noeud_id = sn.id + AND sns.type_intervention_id = ti.id +) +SELECT + annee_id, + noeud_id, + scenario_id, + type_heures_id, + type_intervention_id, + + element_pedagogique_id, + etape_id, + etape_ens_id, + structure_id, + groupe_type_formation_id, + + ouverture, + dedoublement, + assiduite, + effectif, + heures heures_ens, + --t_effectif, + + CASE WHEN t_effectif < ouverture THEN 0 ELSE + CEIL( t_effectif / dedoublement ) * effectif / t_effectif + END groupes, + + CASE WHEN t_effectif < ouverture THEN 0 ELSE + CEIL( t_effectif / dedoublement ) * heures * effectif / t_effectif + END heures, + + CASE WHEN t_effectif < ouverture THEN 0 ELSE + CEIL( t_effectif / dedoublement ) * hetd * effectif / t_effectif + END hetd + +FROM + t; + +-- V_TBL_CHARGENS_SEUILS_DEF +CREATE OR REPLACE FORCE VIEW "V_TBL_CHARGENS_SEUILS_DEF" ("ANNEE_ID", "SCENARIO_ID", "STRUCTURE_ID", "GROUPE_TYPE_FORMATION_ID", "TYPE_INTERVENTION_ID", "DEDOUBLEMENT") AS + SELECT + sta.annee_id, + sta.scenario_id, + s.structure_id, + gtf.groupe_type_formation_id, + sta.type_intervention_id, + COALESCE(sc1.dedoublement, sc2.dedoublement, sc3.dedoublement, sc4.dedoublement) dedoublement +FROM + (SELECT DISTINCT scenario_id, type_intervention_id, annee_id FROM seuil_charge WHERE histo_destruction IS NULL) sta + JOIN (SELECT DISTINCT structure_id FROM noeud WHERE structure_id IS NOT NULL) s ON 1=1 + JOIN (SELECT id groupe_type_formation_id FROM groupe_type_formation) gtf ON 1=1 + + LEFT JOIN seuil_charge sc1 ON + sc1.histo_destruction IS NULL + AND sc1.annee_id = sta.annee_id + AND sc1.scenario_id = sta.scenario_id + AND sc1.type_intervention_id = sta.type_intervention_id + AND sc1.structure_id = s.structure_id + AND sc1.groupe_type_formation_id = gtf.groupe_type_formation_id + + LEFT JOIN seuil_charge sc2 ON + sc2.histo_destruction IS NULL + AND sc2.annee_id = sta.annee_id + AND sc2.scenario_id = sta.scenario_id + AND sc2.type_intervention_id = sta.type_intervention_id + AND sc2.structure_id = s.structure_id + AND sc2.groupe_type_formation_id IS NULL + + LEFT JOIN seuil_charge sc3 ON + sc3.histo_destruction IS NULL + AND sc3.annee_id = sta.annee_id + AND sc3.scenario_id = sta.scenario_id + AND sc3.type_intervention_id = sta.type_intervention_id + AND sc3.structure_id IS NULL + AND sc3.groupe_type_formation_id = gtf.groupe_type_formation_id + + LEFT JOIN seuil_charge sc4 ON + sc4.histo_destruction IS NULL + AND sc4.annee_id = sta.annee_id + AND sc4.scenario_id = sta.scenario_id + AND sc4.type_intervention_id = sta.type_intervention_id + AND sc4.structure_id IS NULL + AND sc4.groupe_type_formation_id IS NULL +WHERE + COALESCE(sc1.dedoublement, sc2.dedoublement, sc3.dedoublement, sc4.dedoublement, 1) <> 1; + +-- V_TBL_CLOTURE_REALISE +CREATE OR REPLACE FORCE VIEW "V_TBL_CLOTURE_REALISE" ("ANNEE_ID", "INTERVENANT_ID", "PEUT_CLOTURER_SAISIE", "CLOTURE") AS + WITH t AS ( + SELECT + i.annee_id annee_id, + i.id intervenant_id, + si.peut_cloturer_saisie peut_cloturer_saisie, + CASE WHEN v.id IS NULL THEN 0 ELSE 1 END cloture + FROM + intervenant i + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN type_validation tv ON tv.code = 'CLOTURE_REALISE' + + LEFT JOIN validation v ON v.intervenant_id = i.id + AND v.type_validation_id = tv.id + AND v.histo_destruction IS NULL + + WHERE + i.histo_destruction IS NULL +) +SELECT + annee_id, + intervenant_id, + peut_cloturer_saisie, + CASE WHEN sum(cloture) = 0 THEN 0 ELSE 1 END cloture +FROM + t +GROUP BY + annee_id, + intervenant_id, + peut_cloturer_saisie; + +-- V_TBL_CONTRAT +CREATE OR REPLACE FORCE VIEW "V_TBL_CONTRAT" ("ANNEE_ID", "INTERVENANT_ID", "PEUT_AVOIR_CONTRAT", "STRUCTURE_ID", "NBVH", "EDITE", "SIGNE") AS + WITH t AS ( + SELECT + i.annee_id annee_id, + i.id intervenant_id, + si.peut_avoir_contrat peut_avoir_contrat, + NVL(ep.structure_id, i.structure_id) structure_id, + CASE WHEN evh.code IN ('contrat-edite','contrat-signe') THEN 1 ELSE 0 END edite, + CASE WHEN evh.code IN ('contrat-signe') THEN 1 ELSE 0 END signe + FROM + intervenant i + + JOIN statut_intervenant si ON si.id = i.statut_id + + JOIN service s ON s.intervenant_id = i.id + AND s.histo_destruction IS NULL + + JOIN type_volume_horaire tvh ON tvh.code = 'PREVU' + + JOIN volume_horaire vh ON vh.service_id = s.id + AND vh.histo_destruction IS NULL + AND vh.heures <> 0 + AND vh.type_volume_horaire_id = tvh.id + + JOIN v_volume_horaire_etat vhe ON vhe.volume_horaire_id = vh.id + + JOIN etat_volume_horaire evh ON evh.id = vhe.etat_volume_horaire_id + AND evh.code IN ('valide', 'contrat-edite', 'contrat-signe') + + JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + + WHERE + i.histo_destruction IS NULL + AND NOT (si.peut_avoir_contrat = 0 AND evh.code = 'valide') + + UNION ALL + + SELECT + i.annee_id annee_id, + i.id intervenant_id, + si.peut_avoir_contrat peut_avoir_contrat, + s.structure_id structure_id, + CASE WHEN evh.code IN ('contrat-edite','contrat-signe') THEN 1 ELSE 0 END edite, + CASE WHEN evh.code IN ('contrat-signe') THEN 1 ELSE 0 END signe + FROM + intervenant i + + JOIN statut_intervenant si ON si.id = i.statut_id + + JOIN service_referentiel s ON s.intervenant_id = i.id + AND s.histo_destruction IS NULL + + JOIN type_volume_horaire tvh ON tvh.code = 'PREVU' + + JOIN volume_horaire_ref vh ON vh.service_referentiel_id = s.id + AND vh.histo_destruction IS NULL + AND vh.heures <> 0 + AND vh.type_volume_horaire_id = tvh.id + + JOIN v_volume_horaire_ref_etat vhe ON vhe.volume_horaire_ref_id = vh.id + + JOIN etat_volume_horaire evh ON evh.id = vhe.etat_volume_horaire_id + AND evh.code IN ('valide', 'contrat-edite', 'contrat-signe') + + WHERE + i.histo_destruction IS NULL + AND NOT (si.peut_avoir_contrat = 0 AND evh.code = 'valide') +) +SELECT + annee_id, + intervenant_id, + peut_avoir_contrat, + structure_id, + count(*) as nbvh, + sum(edite) as edite, + sum(signe) as signe +FROM + t +GROUP BY + annee_id, + intervenant_id, + peut_avoir_contrat, + structure_id; + +-- V_TBL_DMEP_LIQUIDATION +CREATE OR REPLACE FORCE VIEW "V_TBL_DMEP_LIQUIDATION" ("ANNEE_ID", "TYPE_RESSOURCE_ID", "STRUCTURE_ID", "HEURES") AS + SELECT + annee_id, + type_ressource_id, + structure_id, + SUM(heures) heures +FROM +( + SELECT + i.annee_id, + cc.type_ressource_id, + COALESCE( ep.structure_id, i.structure_id ) structure_id, + mep.heures + FROM + mise_en_paiement mep + JOIN centre_cout cc ON cc.id = mep.centre_cout_id + JOIN formule_resultat_service frs ON frs.id = mep.formule_res_service_id + JOIN service s ON s.id = frs.service_id + JOIN intervenant i ON i.id = s.intervenant_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + WHERE + mep.histo_destruction IS NULL + + UNION ALL + + SELECT + i.annee_id, + cc.type_ressource_id, + sr.structure_id structure_id, + heures + FROM + mise_en_paiement mep + JOIN centre_cout cc ON cc.id = mep.centre_cout_id + JOIN formule_resultat_service_ref frsr ON frsr.id = mep.formule_res_service_ref_id + JOIN service_referentiel sr ON sr.id = frsr.service_referentiel_id + JOIN intervenant i ON i.id = sr.intervenant_id + + WHERE + mep.histo_destruction IS NULL + +) t1 +GROUP BY + annee_id, type_ressource_id, structure_id; + +-- V_TBL_DOSSIER +CREATE OR REPLACE FORCE VIEW "V_TBL_DOSSIER" ("ANNEE_ID", "INTERVENANT_ID", "PEUT_SAISIR_DOSSIER", "DOSSIER_ID", "VALIDATION_ID") AS + SELECT + i.annee_id, + i.id intervenant_id, + si.peut_saisir_dossier, + d.id dossier_id, + v.id validation_id +FROM + intervenant i + JOIN statut_intervenant si ON si.id = i.statut_id + LEFT JOIN dossier d ON d.intervenant_id = i.id + AND d.histo_destruction IS NULL + + JOIN type_validation tv ON tv.code = 'DONNEES_PERSO_PAR_COMP' + LEFT JOIN validation v ON v.intervenant_id = i.id + AND v.type_validation_id = tv.id + AND v.histo_destruction IS NULL +WHERE + i.histo_destruction IS NULL; + +-- V_TBL_LIEN +CREATE OR REPLACE FORCE VIEW "V_TBL_LIEN" ("LIEN_ID", "SCENARIO_ID", "SCENARIO_LIEN_ID", "NOEUD_SUP_ID", "NOEUD_INF_ID", "STRUCTURE_ID", "ACTIF", "POIDS", "MAX_POIDS", "CHOIX_MAXIMUM", "CHOIX_MINIMUM", "NB_CHOIX", "TOTAL_POIDS") AS + SELECT + l.id lien_id, + s.id scenario_id, + sl.id scenario_lien_id, + l.noeud_sup_id noeud_sup_id, + l.noeud_inf_id noeud_inf_id, + l.structure_id structure_id, + NVL(sl.actif,1) actif, + NVL(sl.poids,1) poids, + MAX(CASE WHEN 1 = NVL(sl.actif,1) THEN NVL(sl.poids,1) ELSE 0 END) OVER (PARTITION BY l.noeud_sup_id, s.id) max_poids, + sl.choix_maximum choix_maximum, + sl.choix_minimum choix_minimum, + + SUM(NVL(sl.actif,1)) OVER (PARTITION BY l.noeud_sup_id, s.id) nb_choix, + SUM(CASE WHEN 1 = NVL(sl.actif,1) THEN NVL(sl.poids,1) ELSE 0 END) OVER (PARTITION BY l.noeud_sup_id, s.id) total_poids + +FROM + lien l + JOIN scenario s ON s.histo_destruction IS NULL + LEFT JOIN scenario_lien sl ON + sl.lien_id = l.id + AND sl.scenario_id = s.id + AND s.histo_destruction IS NULL +WHERE + l.histo_destruction IS NULL; + +-- V_TBL_PAIEMENT +CREATE OR REPLACE FORCE VIEW "V_TBL_PAIEMENT" ("ANNEE_ID", "FORMULE_RES_SERVICE_ID", "FORMULE_RES_SERVICE_REF_ID", "INTERVENANT_ID", "STRUCTURE_ID", "MISE_EN_PAIEMENT_ID", "PERIODE_PAIEMENT_ID", "HEURES_A_PAYER", "HEURES_A_PAYER_POND", "HEURES_DEMANDEES", "HEURES_PAYEES") AS + SELECT + i.annee_id annee_id, + frs.id formule_res_service_id, + null formule_res_service_ref_id, + i.id intervenant_id, + COALESCE( ep.structure_id, i.structure_id ) structure_id, + mep.id mise_en_paiement_id, + mep.periode_paiement_id periode_paiement_id, + frs.heures_compl_fi + frs.heures_compl_fc + frs.heures_compl_fa + frs.heures_compl_fc_majorees heures_a_payer, + count(*) OVER(PARTITION BY frs.id) heures_a_payer_pond, + NVL(mep.heures,0) heures_demandees, + CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees +FROM + formule_resultat_service frs + JOIN type_volume_horaire tvh ON tvh.code = 'REALISE' + JOIN etat_volume_horaire evh ON evh.code = 'valide' + JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id + AND fr.type_volume_horaire_id = tvh.id + AND fr.etat_volume_horaire_id = evh.id + + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN service s ON s.id = frs.service_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id + AND mep.histo_destruction IS NULL + +UNION ALL + +SELECT + i.annee_id annee_id, + null formule_res_service_id, + frs.id formule_res_service_ref_id, + i.id intervenant_id, + s.structure_id structure_id, + mep.id mise_en_paiement_id, + mep.periode_paiement_id periode_paiement_id, + frs.heures_compl_referentiel heures_a_payer, + count(*) OVER(PARTITION BY frs.id) heures_a_payer_pond, + NVL(mep.heures,0) heures_demandees, + CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees +FROM + formule_resultat_service_ref frs + JOIN type_volume_horaire tvh ON tvh.code = 'REALISE' + JOIN etat_volume_horaire evh ON evh.code = 'valide' + JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id + AND fr.type_volume_horaire_id = tvh.id + AND fr.etat_volume_horaire_id = evh.id + + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN service_referentiel s ON s.id = frs.service_referentiel_id + LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_ref_id = frs.id + AND mep.histo_destruction IS NULL; + +-- V_TBL_PIECE_JOINTE +CREATE OR REPLACE FORCE VIEW "V_TBL_PIECE_JOINTE" ("ANNEE_ID", "TYPE_PIECE_JOINTE_ID", "INTERVENANT_ID", "DEMANDEE", "FOURNIE", "VALIDEE", "HEURES_POUR_SEUIL") AS + WITH pjf AS ( + SELECT + pjf.annee_id, + pjf.type_piece_jointe_id, + pjf.intervenant_id, + COUNT(*) count, + SUM(CASE WHEN validation_id IS NULL THEN 0 ELSE 1 END) validation, + SUM(CASE WHEN fichier_id IS NULL THEN 0 ELSE 1 END) fichier + FROM + tbl_piece_jointe_fournie pjf + GROUP BY + pjf.annee_id, + pjf.type_piece_jointe_id, + pjf.intervenant_id +) +SELECT + NVL( pjd.annee_id, pjf.annee_id ) annee_id, + NVL( pjd.type_piece_jointe_id, pjf.type_piece_jointe_id ) type_piece_jointe_id, + NVL( pjd.intervenant_id, pjf.intervenant_id ) intervenant_id, + CASE WHEN pjd.intervenant_id IS NULL THEN 0 ELSE 1 END demandee, + CASE WHEN pjf.fichier = pjf.count THEN 1 ELSE 0 END fournie, + CASE WHEN pjf.validation = pjf.count THEN 1 ELSE 0 END validee, + NVL(pjd.heures_pour_seuil,0) heures_pour_seuil +FROM + tbl_piece_jointe_demande pjd + FULL JOIN pjf ON pjf.type_piece_jointe_id = pjd.type_piece_jointe_id AND pjf.intervenant_id = pjd.intervenant_id; + +-- V_TBL_PIECE_JOINTE_DEMANDE +CREATE OR REPLACE FORCE VIEW "V_TBL_PIECE_JOINTE_DEMANDE" ("ANNEE_ID", "INTERVENANT_ID", "TYPE_PIECE_JOINTE_ID", "HEURES_POUR_SEUIL") AS + WITH i_h AS ( + SELECT + s.intervenant_id, + sum(vh.heures) heures, + sum(ep.taux_fc) fc + FROM + service s + JOIN type_volume_horaire tvh ON tvh.code = 'PREVU' + JOIN volume_horaire vh ON vh.service_id = s.id + AND vh.type_volume_horaire_id = tvh.id + AND vh.histo_destruction IS NULL + JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id -- Service sur l'établissement + WHERE + s.histo_destruction IS NULL + AND vh.motif_non_paiement_id IS NULL -- pas de motif de non paiement + GROUP BY + s.intervenant_id +) +SELECT + i.annee_id annee_id, + i.id intervenant_id, + tpj.id type_piece_jointe_id, + MAX(COALESCE(i_h.heures, 0)) heures_pour_seuil +FROM + intervenant i + + LEFT JOIN dossier d ON d.intervenant_id = i.id + AND d.histo_destruction IS NULL + + JOIN type_piece_jointe_statut tpjs ON tpjs.statut_intervenant_id = i.statut_id + AND tpjs.histo_destruction IS NULL + AND i.annee_id BETWEEN COALESCE(tpjs.annee_debut_id,i.annee_id) AND COALESCE(tpjs.annee_fin_id,i.annee_id) + + JOIN type_piece_jointe tpj ON tpj.id = tpjs.type_piece_jointe_id + AND tpj.histo_destruction IS NULL + + LEFT JOIN i_h ON i_h.intervenant_id = i.id +WHERE + -- Gestion de l'historique + i.histo_destruction IS NULL + + -- Seuil HETD + AND (COALESCE(i_h.heures,0) > COALESCE(tpjs.seuil_hetd,-1)) + + -- En fonction du premier recrutement ou non + AND (tpjs.premier_recrutement = 0 OR COALESCE(i.premier_recrutement,0) = 1) + + -- Le RIB n'est demandé QUE s'il est différent!! + AND CASE + WHEN tpjs.changement_rib = 0 OR d.id IS NULL THEN 1 + ELSE CASE WHEN replace(i.bic, ' ', '') || '-' || replace(i.iban, ' ', '') = d.rib THEN 0 ELSE 1 END + END = 1 + + -- Filtre FC + AND (tpjs.fc = 0 OR i_h.fc > 0) +GROUP BY + i.annee_id, + i.id, + tpj.id; + +-- V_TBL_PIECE_JOINTE_FOURNIE +CREATE OR REPLACE FORCE VIEW "V_TBL_PIECE_JOINTE_FOURNIE" ("ANNEE_ID", "TYPE_PIECE_JOINTE_ID", "INTERVENANT_ID", "PIECE_JOINTE_ID", "VALIDATION_ID", "FICHIER_ID") AS + SELECT + i.annee_id, + pj.type_piece_jointe_id, + pj.intervenant_id, + pj.id piece_jointe_id, + v.id validation_id, + f.id fichier_id +FROM + piece_jointe pj + JOIN intervenant i ON i.id = pj.intervenant_id + AND i.histo_destruction IS NULL + + JOIN piece_jointe_fichier pjf ON pjf.piece_jointe_id = pj.id + JOIN fichier f ON f.id = pjf.fichier_id + AND f.histo_destruction IS NULL + + LEFT JOIN validation v ON v.id = pj.validation_id + AND v.histo_destruction IS NULL +WHERE + pj.histo_destruction IS NULL; + +-- V_TBL_SERVICE +CREATE OR REPLACE FORCE VIEW "V_TBL_SERVICE" ("ANNEE_ID", "INTERVENANT_ID", "INTERVENANT_STRUCTURE_ID", "STRUCTURE_ID", "TYPE_INTERVENANT_ID", "TYPE_INTERVENANT_CODE", "PEUT_SAISIR_SERVICE", "ELEMENT_PEDAGOGIQUE_ID", "SERVICE_ID", "ELEMENT_PEDAGOGIQUE_PERIODE_ID", "ETAPE_ID", "TYPE_VOLUME_HORAIRE_ID", "TYPE_VOLUME_HORAIRE_CODE", "ELEMENT_PEDAGOGIQUE_HISTO", "ETAPE_HISTO", "HAS_HEURES_MAUVAISE_PERIODE", "NBVH", "HEURES", "VALIDE") AS + WITH t AS ( +SELECT + s.id service_id, + s.intervenant_id intervenant_id, + ep.structure_id structure_id, + ep.id element_pedagogique_id, + ep.periode_id element_pedagogique_periode_id, + etp.id etape_id, + + vh.type_volume_horaire_id type_volume_horaire_id, + vh.heures heures, + tvh.code type_volume_horaire_code, + + CASE WHEN ep.histo_destruction IS NULL THEN 1 ELSE 0 END element_pedagogique_histo, + CASE WHEN etp.histo_destruction IS NULL OR cp.id IS NOT NULL THEN 1 ELSE 0 END etape_histo, + + CASE WHEN ep.periode_id IS NOT NULL THEN + SUM( CASE WHEN vh.periode_id <> ep.periode_id THEN 1 ELSE 0 END ) OVER( PARTITION BY vh.service_id, vh.periode_id, vh.type_volume_horaire_id, vh.type_intervention_id ) + ELSE 0 END has_heures_mauvaise_periode, + + CASE WHEN v.id IS NULL THEN 0 ELSE 1 END valide +FROM + service s + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + LEFT JOIN etape etp ON etp.id = ep.etape_id + LEFT JOIN chemin_pedagogique cp ON cp.etape_id = etp.id + AND cp.element_pedagogique_id = ep.id + AND cp.histo_destruction IS NULL + + JOIN volume_horaire vh ON vh.service_id = s.id + AND vh.histo_destruction IS NULL + + JOIN type_volume_horaire tvh ON tvh.id = vh.type_volume_horaire_id + + LEFT JOIN validation_vol_horaire vvh ON vvh.volume_horaire_id = vh.id + + LEFT JOIN validation v ON v.id = vvh.validation_id + AND v.histo_destruction IS NULL +WHERE + s.histo_destruction IS NULL +) +SELECT + i.annee_id annee_id, + i.id intervenant_id, + i.structure_id intervenant_structure_id, + NVL( t.structure_id, i.structure_id ) structure_id, + ti.id type_intervenant_id, + ti.code type_intervenant_code, + si.peut_saisir_service peut_saisir_service, + + t.element_pedagogique_id, + t.service_id, + t.element_pedagogique_periode_id, + t.etape_id, + t.type_volume_horaire_id, + t.type_volume_horaire_code, + t.element_pedagogique_histo, + t.etape_histo, + + CASE WHEN SUM(t.has_heures_mauvaise_periode) > 0 THEN 1 ELSE 0 END has_heures_mauvaise_periode, + + CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE count(*) END nbvh, + CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE sum(t.heures) END heures, + sum(valide) valide +FROM + t + JOIN intervenant i ON i.id = t.intervenant_id + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN type_intervenant ti ON ti.id = si.type_intervenant_id +GROUP BY + i.annee_id, + i.id, + i.structure_id, + t.structure_id, + i.structure_id, + ti.id, + ti.code, + si.peut_saisir_service, + t.element_pedagogique_id, + t.service_id, + t.element_pedagogique_periode_id, + t.etape_id, + t.type_volume_horaire_id, + t.type_volume_horaire_code, + t.element_pedagogique_histo, + t.etape_histo; + +-- V_TBL_SERVICE_REFERENTIEL +CREATE OR REPLACE FORCE VIEW "V_TBL_SERVICE_REFERENTIEL" ("ANNEE_ID", "INTERVENANT_ID", "PEUT_SAISIR_SERVICE", "TYPE_VOLUME_HORAIRE_ID", "STRUCTURE_ID", "NBVH", "VALIDE") AS + WITH t AS ( + + SELECT + i.annee_id, + i.id intervenant_id, + si.peut_saisir_referentiel peut_saisir_service, + vh.type_volume_horaire_id, + s.structure_id, + CASE WHEN v.id IS NULL THEN 0 ELSE 1 END valide + FROM + intervenant i + + JOIN statut_intervenant si ON si.id = i.statut_id + + LEFT JOIN service_referentiel s ON s.intervenant_id = i.id + AND s.histo_destruction IS NULL + + LEFT JOIN volume_horaire_ref vh ON vh.service_referentiel_id = s.id + AND vh.histo_destruction IS NULL + + LEFT JOIN validation_vol_horaire_ref vvh ON vvh.volume_horaire_ref_id = vh.id + + LEFT JOIN validation v ON v.id = vvh.validation_id + AND v.histo_destruction IS NULL + WHERE + i.histo_destruction IS NULL + +) +SELECT + annee_id, + intervenant_id, + peut_saisir_service, + type_volume_horaire_id, + structure_id, + CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE count(*) END nbvh, + sum(valide) valide +FROM + t +WHERE + NOT (structure_id IS NOT NULL AND type_volume_horaire_id IS NULL) +GROUP BY + annee_id, + intervenant_id, + peut_saisir_service, + type_volume_horaire_id, + structure_id; + +-- V_TBL_SERVICE_SAISIE +CREATE OR REPLACE FORCE VIEW "V_TBL_SERVICE_SAISIE" ("ANNEE_ID", "INTERVENANT_ID", "PEUT_SAISIR_SERVICE", "PEUT_SAISIR_REFERENTIEL", "HEURES_SERVICE_PREV", "HEURES_REFERENTIEL_PREV", "HEURES_SERVICE_REAL", "HEURES_REFERENTIEL_REAL") AS + SELECT + i.annee_id, + i.id intervenant_id, + si.peut_saisir_service, + si.peut_saisir_referentiel, + SUM( CASE WHEN tvhs.code = 'PREVU' THEN NVL(vh .heures,0) ELSE 0 END ) heures_service_prev, + SUM( CASE WHEN tvhs.code = 'PREVU' THEN NVL(vhr.heures,0) ELSE 0 END ) heures_referentiel_prev, + SUM( CASE WHEN tvhs.code = 'REALISE' THEN NVL(vh .heures,0) ELSE 0 END ) heures_service_real, + SUM( CASE WHEN tvhs.code = 'REALISE' THEN NVL(vhr.heures,0) ELSE 0 END ) heures_referentiel_real +FROM + intervenant i + JOIN statut_intervenant si ON si.id = i.statut_id + LEFT JOIN service s ON s.intervenant_id = i.id AND s.histo_destruction IS NULL + LEFT JOIN volume_horaire vh ON vh.service_id = s.id AND vh.histo_destruction IS NULL + LEFT JOIN type_volume_horaire tvhs ON tvhs.id = vh.type_volume_horaire_id + + LEFT JOIN service_referentiel sr ON sr.intervenant_id = i.id AND sr.histo_destruction IS NULL + LEFT JOIN volume_horaire_ref vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL + LEFT JOIN type_volume_horaire tvhrs ON tvhrs.id = vhr.type_volume_horaire_id +WHERE + i.histo_destruction IS NULL +GROUP BY + i.annee_id, + i.id, + si.peut_saisir_service, + si.peut_saisir_referentiel; + +-- V_TBL_VALIDATION_ENSEIGNEMENT +CREATE OR REPLACE FORCE VIEW "V_TBL_VALIDATION_ENSEIGNEMENT" ("ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "TYPE_VOLUME_HORAIRE_ID", "SERVICE_ID", "VOLUME_HORAIRE_ID", "VALIDATION_ID") AS + SELECT DISTINCT + i.annee_id, + i.id intervenant_id, + CASE WHEN rsv.priorite = 'affectation' THEN + COALESCE( i.structure_id, ep.structure_id ) + ELSE + COALESCE( ep.structure_id, i.structure_id ) + END structure_id, + vh.type_volume_horaire_id, + s.id service_id, + vh.id volume_horaire_id, + v.id validation_id +FROM + service s + JOIN volume_horaire vh ON vh.service_id = s.id AND vh.histo_destruction IS NULL + JOIN intervenant i ON i.id = s.intervenant_id AND i.histo_destruction IS NULL + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN regle_structure_validation rsv ON rsv.type_intervenant_id = si.type_intervenant_id AND rsv.type_volume_horaire_id = vh.type_volume_horaire_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + LEFT JOIN validation_vol_horaire vvh ON vvh.volume_horaire_id = vh.id + LEFT JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL +WHERE + s.histo_destruction IS NULL; + +-- V_TBL_VALIDATION_REFERENTIEL +CREATE OR REPLACE FORCE VIEW "V_TBL_VALIDATION_REFERENTIEL" ("ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "TYPE_VOLUME_HORAIRE_ID", "SERVICE_REFERENTIEL_ID", "VOLUME_HORAIRE_REF_ID", "VALIDATION_ID") AS + SELECT DISTINCT + i.annee_id, + i.id intervenant_id, + CASE WHEN rsv.priorite = 'affectation' THEN + COALESCE( i.structure_id, s.structure_id ) + ELSE + COALESCE( s.structure_id, i.structure_id ) + END structure_id, + vh.type_volume_horaire_id, + s.id service_referentiel_id, + vh.id volume_horaire_ref_id, + v.id validation_id +FROM + service_referentiel s + JOIN volume_horaire_ref vh ON vh.service_referentiel_id = s.id AND vh.histo_destruction IS NULL + JOIN intervenant i ON i.id = s.intervenant_id AND i.histo_destruction IS NULL + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN regle_structure_validation rsv ON rsv.type_intervenant_id = si.type_intervenant_id AND rsv.type_volume_horaire_id = vh.type_volume_horaire_id + LEFT JOIN validation_vol_horaire_ref vvh ON vvh.volume_horaire_ref_id = vh.id + LEFT JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL +WHERE + s.histo_destruction IS NULL; + +-- V_TBL_VOLUME_HORAIRE +CREATE OR REPLACE FORCE VIEW "V_TBL_VOLUME_HORAIRE" ("ANNEE_ID", "INTERVENANT_ID", "INTERVENANT_STRUCTURE_ID", "STRUCTURE_ID", "TYPE_INTERVENANT_ID", "SERVICE_ID", "VOLUME_HORAIRE_ID", "TYPE_INTERVENTION_ID", "MOTIF_NON_PAIEMENT_ID", "VOLUME_HORAIRE_PERIODE_ID", "TYPE_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID", "ELEMENT_PEDAGOGIQUE_ID", "ELEMENT_PEDAGOGIQUE_PERIODE_ID", "ETAPE_ID", "TYPE_INTERVENANT_CODE", "TYPE_VOLUME_HORAIRE_CODE", "ETAT_VOLUME_HORAIRE_CODE", "PEUT_SAISIR_SERVICE", "HEURES", "ELEMENT_PEDAGOGIQUE_HISTO", "ETAPE_HISTO", "PERIODE_CORRESP") AS + WITH has_cp AS ( +SELECT + etape_id +FROM + chemin_pedagogique cp +WHERE + cp.histo_destruction IS NULL +GROUP BY + etape_id +) +SELECT + i.annee_id annee_id, + i.id intervenant_id, + i.structure_id intervenant_structure_id, + NVL(ep.structure_id, i.structure_id) structure_id, + ti.id type_intervenant_id, + s.id service_id, + vh.id volume_horaire_id, + vh.type_intervention_id type_intervention_id, + vh.motif_non_paiement_id motif_non_paiement_id, + vh.periode_id volume_horaire_periode_id, + tvh.id type_volume_horaire_id, + evh.id etat_volume_horaire_id, + ep.id element_pedagogique_id, + ep.periode_id element_pedagogique_periode_id, + etp.id etape_id, + + ti.code type_intervenant_code, + tvh.code type_volume_horaire_code, + evh.code etat_volume_horaire_code, + si.peut_saisir_service peut_saisir_service, + vh.heures heures, + + CASE WHEN ep.histo_destruction IS NULL THEN 1 ELSE 0 END element_pedagogique_histo, + CASE WHEN etp.histo_destruction IS NULL OR has_cp.etape_id IS NOT NULL THEN 1 ELSE 0 END etape_histo, + CASE WHEN ep.periode_id IS NOT NULL AND vh.periode_id <> ep.periode_id THEN 0 ELSE 1 END periode_corresp + +FROM + intervenant i + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN type_intervenant ti ON ti.id = si.type_intervenant_id + JOIN service s ON s.intervenant_id = i.id + AND s.histo_destruction IS NULL + JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + JOIN etape etp ON etp.id = ep.etape_id + JOIN volume_horaire vh ON vh.service_id = s.id + AND vh.histo_destruction IS NULL + JOIN type_volume_horaire tvh ON tvh.id = vh.type_volume_horaire_id + JOIN v_volume_horaire_etat vhe ON vhe.volume_horaire_id = vh.id + JOIN etat_volume_horaire evh ON evh.id = vhe.etat_volume_horaire_id + LEFT JOIN has_cp ON has_cp.etape_id = etp.id +WHERE + i.histo_destruction IS NULL; + +-- V_TBL_WORKFLOW +CREATE OR REPLACE FORCE VIEW "V_TBL_WORKFLOW" ("ETAPE_CODE", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "OBJECTIF", "REALISATION") AS + WITH pj AS ( + SELECT + annee_id, + intervenant_id, + SUM(demandee) demandees, + SUM(fournie) fournies, + SUM(validee) validees + FROM + tbl_piece_jointe + WHERE + 1 = OSE_WORKFLOW.match_intervenant(intervenant_id) + AND demandee > 0 + GROUP BY + annee_id, + intervenant_id +), +mep AS ( + SELECT + annee_id, + intervenant_id, + structure_id, + SUM(heures_a_payer / heures_a_payer_pond) sap, + SUM(heures_demandees) dmep, + SUM(heures_payees) mep + --COUNT(*) sap, + --SUM(CASE WHEN mise_en_paiement_id IS NULL THEN 0 ELSE 1 END) dmep, + --SUM(CASE WHEN periode_paiement_id IS NULL THEN 0 ELSE 1 END) mep + FROM + tbl_paiement + WHERE + 1 = OSE_WORKFLOW.match_intervenant(intervenant_id) + GROUP BY + annee_id, + intervenant_id, + structure_id +) +SELECT + e.code etape_code, + d.annee_id annee_id, + d.intervenant_id intervenant_id, + null structure_id, + 1 objectif, + CASE + WHEN e.code = 'DONNEES_PERSO_SAISIE' THEN + CASE WHEN d.dossier_id IS NULL THEN 0 ELSE 1 END + + WHEN e.code = 'DONNEES_PERSO_VALIDATION' THEN + CASE WHEN d.validation_id IS NULL THEN 0 ELSE 1 END + + END realisation +FROM + tbl_dossier d + JOIN ( + SELECT 'DONNEES_PERSO_SAISIE' code FROM dual + UNION SELECT 'DONNEES_PERSO_VALIDATION' code FROM dual + ) e ON 1=1 +WHERE + d. peut_saisir_dossier = 1 + AND 1 = OSE_WORKFLOW.match_intervenant(d.intervenant_id) + +UNION ALL + +SELECT + e.code etape_code, + tss.annee_id annee_id, + tss.intervenant_id intervenant_id, + NULL structure_id, + 1 objectif, + CASE + WHEN e.code = 'SERVICE_SAISIE' THEN + CASE WHEN tss.heures_service_prev + tss.heures_referentiel_prev > 0 THEN 1 ELSE 0 END + + WHEN e.code = 'SERVICE_SAISIE_REALISE' THEN + CASE WHEN tss.heures_service_real + tss.heures_referentiel_real > 0 THEN 1 ELSE 0 END + + END realisation +FROM + TBL_SERVICE_SAISIE tss + JOIN ( + SELECT 'SERVICE_SAISIE' code FROM dual + UNION SELECT 'SERVICE_SAISIE_REALISE' code FROM dual + ) e ON 1=1 +WHERE + (tss.peut_saisir_service = 1 OR tss.peut_saisir_referentiel = 1) + AND 1 = OSE_WORKFLOW.match_intervenant(tss.intervenant_id) + +UNION ALL + +SELECT + CASE + WHEN tvh.code = 'PREVU' THEN 'SERVICE_VALIDATION' + WHEN tvh.code = 'REALISE' THEN 'SERVICE_VALIDATION_REALISE' + END etape_code, + tve.annee_id annee_id, + tve.intervenant_id intervenant_id, + tve.structure_id structure_id, + COUNT(*) objectif, + SUM(CASE WHEN tve.validation_id IS NOT NULL THEN 1 ELSE 0 END) realisation +FROM + tbl_validation_enseignement tve + JOIN type_volume_horaire tvh ON tvh.id = tve.type_volume_horaire_id +WHERE + 1 = OSE_WORKFLOW.match_intervenant(tve.intervenant_id) +GROUP BY + tve.annee_id, + tve.intervenant_id, + tve.structure_id, + tvh.code + +UNION ALL + +SELECT + CASE + WHEN tvh.code = 'PREVU' THEN 'REFERENTIEL_VALIDATION' + WHEN tvh.code = 'REALISE' THEN 'REFERENTIEL_VALIDATION_REALISE' + END etape_code, + tvr.annee_id annee_id, + tvr.intervenant_id intervenant_id, + tvr.structure_id structure_id, + count(*) objectif, + SUM(CASE WHEN tvr.validation_id IS NOT NULL THEN 1 ELSE 0 END) realisation +FROM + tbl_validation_referentiel tvr + JOIN type_volume_horaire tvh ON tvh.id = tvr.type_volume_horaire_id +WHERE + 1 = OSE_WORKFLOW.match_intervenant(tvr.intervenant_id) +GROUP BY + tvr.annee_id, + tvr.intervenant_id, + tvr.structure_id, + tvh.code + +UNION ALL + +SELECT + e.code etape_code, + pj.annee_id annee_id, + pj.intervenant_id intervenant_id, + null structure_id, + CASE + WHEN e.code = 'PJ_SAISIE' THEN pj.demandees + WHEN e.code = 'PJ_VALIDATION' THEN pj.demandees + END objectif, + CASE + WHEN e.code = 'PJ_SAISIE' THEN pj.fournies + WHEN e.code = 'PJ_VALIDATION' THEN pj.validees + END realisation +FROM + pj + JOIN ( + SELECT 'PJ_SAISIE' code FROM dual + UNION SELECT 'PJ_VALIDATION' code FROM dual + ) e ON ( + (e.code = 'PJ_SAISIE' AND pj.demandees > 0) + OR (e.code = 'PJ_VALIDATION' AND pj.fournies > 0) + ) + +UNION ALL + +SELECT + ta.code etape_code, + a.annee_id annee_id, + a.intervenant_id intervenant_id, + a.structure_id structure_id, + 1 objectif, + CASE WHEN a.agrement_id IS NULL THEN 0 ELSE 1 END realisation +FROM + tbl_agrement a + JOIN type_agrement ta ON ta.id = a.type_agrement_id +WHERE + 1 = OSE_WORKFLOW.match_intervenant(a.intervenant_id) + +UNION ALL + +SELECT + 'CLOTURE_REALISE' etape_code, + c.annee_id annee_id, + c.intervenant_id intervenant_id, + null structure_id, + 1 objectif, + c.cloture realisation +FROM + tbl_cloture_realise c +WHERE + c.peut_cloturer_saisie = 1 + AND 1 = OSE_WORKFLOW.match_intervenant(c.intervenant_id) + +UNION ALL + +SELECT + e.code etape_code, + mep.annee_id annee_id, + mep.intervenant_id intervenant_id, + mep.structure_id structure_id, + CASE + WHEN e.code = 'DEMANDE_MEP' THEN mep.sap + WHEN e.code = 'SAISIE_MEP' THEN mep.dmep + END objectif, + CASE + WHEN e.code = 'DEMANDE_MEP' THEN mep.dmep + WHEN e.code = 'SAISIE_MEP' THEN mep.mep + END realisation +FROM + mep + JOIN ( + SELECT 'DEMANDE_MEP' code FROM dual + UNION SELECT 'SAISIE_MEP' code FROM dual + ) e ON ( + (e.code = 'DEMANDE_MEP' AND mep.sap > 0) + OR (e.code = 'SAISIE_MEP' AND mep.dmep > 0) + ) + + +UNION ALL + +SELECT + 'CONTRAT' etape_code, + annee_id annee_id, + intervenant_id intervenant_id, + structure_id structure_id, + nbvh objectif, + edite realisation +FROM + tbl_contrat c +WHERE + peut_avoir_contrat = 1 + AND nbvh > 0 + AND 1 = OSE_WORKFLOW.match_intervenant(c.intervenant_id); + +-- V_TOTAL_DEMANDE_MEP_STRUCTURE +CREATE OR REPLACE FORCE VIEW "V_TOTAL_DEMANDE_MEP_STRUCTURE" ("INTERVENANT_ID", "STRUCTURE_ID", "TOTAL_HEURES_MEP") AS + with mep as ( + -- enseignements + select + fr.intervenant_id, + nvl(ep.structure_id, i.structure_id) structure_id, + nvl(mep.heures, 0) mep_heures + from mise_en_paiement mep + join formule_resultat_service frs on mep.formule_res_service_id = frs.id --and mep.date_mise_en_paiement is null -- date_mise_en_paiement is null <=> demande + join formule_resultat fr on frs.formule_resultat_id = fr.id + join intervenant i on fr.intervenant_id = i.id + join service s on frs.service_id = s.id + left join element_pedagogique ep on s.element_pedagogique_id = ep.id and ep.histo_destruction IS NULL + where mep.histo_destruction IS NULL + union all + -- referentiel + select + fr.intervenant_id, + s.structure_id, + nvl(mep.heures, 0) mep_heures + from mise_en_paiement mep + join formule_resultat_service_ref frs on mep.formule_res_service_ref_id = frs.id --and mep.date_mise_en_paiement is null -- date_mise_en_paiement is null <=> demande + join formule_resultat fr on frs.formule_resultat_id = fr.id + join intervenant i on fr.intervenant_id = i.id + join service_referentiel s on frs.service_referentiel_id = s.id + where mep.histo_destruction IS NULL +) +select intervenant_id, structure_id, sum(nvl(mep_heures, 0)) total_heures_mep from mep +group by intervenant_id, structure_id; + +-- V_VALIDATION_MISE_EN_PAIEMENT +CREATE OR REPLACE FORCE VIEW "V_VALIDATION_MISE_EN_PAIEMENT" ("VALIDATION_ID", "MISE_EN_PAIEMENT_ID") AS + SELECT + vvh.validation_id, + mep.id mise_en_paiement_id +FROM + validation_vol_horaire vvh + JOIN volume_horaire vh ON vh.id = vvh.volume_horaire_id + JOIN formule_resultat_service frs ON frs.service_id = vh.service_id + JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id + +UNION + +SELECT + vvh.validation_id, + mep.id mise_en_paiement_id +FROM + validation_vol_horaire_ref vvh + JOIN volume_horaire_ref vh ON vh.id = vvh.volume_horaire_ref_id + JOIN formule_resultat_service_ref frs ON frs.service_referentiel_id = vh.service_referentiel_id + JOIN mise_en_paiement mep ON mep.formule_res_service_ref_id = frs.id; + +-- V_VOLUME_HORAIRE_ETAT +CREATE OR REPLACE FORCE VIEW "V_VOLUME_HORAIRE_ETAT" ("VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID") AS + SELECT + vh.id volume_horaire_id, + evh.id etat_volume_horaire_id +FROM + volume_horaire vh + LEFT JOIN contrat c ON c.id = vh.contrat_id AND c.histo_destruction IS NULL + LEFT JOIN validation cv ON cv.id = c.validation_id AND cv.histo_destruction IS NULL + JOIN etat_volume_horaire evh ON evh.code = CASE + WHEN c.date_retour_signe IS NOT NULL THEN 'contrat-signe' + WHEN cv.id IS NOT NULL THEN 'contrat-edite' + WHEN EXISTS( + SELECT * FROM validation v JOIN validation_vol_horaire vvh ON vvh.validation_id = v.id + WHERE vvh.volume_horaire_id = vh.id AND v.histo_destruction IS NULL + ) THEN 'valide' + ELSE 'saisi' + END; + +-- V_VOLUME_HORAIRE_REF_ETAT +CREATE OR REPLACE FORCE VIEW "V_VOLUME_HORAIRE_REF_ETAT" ("VOLUME_HORAIRE_REF_ID", "ETAT_VOLUME_HORAIRE_ID") AS + SELECT + vhr.id volume_horaire_ref_id, + evh.id etat_volume_horaire_id +FROM + volume_horaire_ref vhr + JOIN etat_volume_horaire evh ON evh.code = CASE + WHEN EXISTS( + SELECT * FROM validation v JOIN validation_vol_horaire_ref vvhr ON vvhr.validation_id = v.id + WHERE vvhr.volume_horaire_ref_id = vhr.id AND v.histo_destruction IS NULL + ) THEN 'valide' + ELSE 'saisi' + END; + +-- V_VOL_HORAIRE_ETAT_MULTI +CREATE OR REPLACE FORCE VIEW "V_VOL_HORAIRE_ETAT_MULTI" ("VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID") AS + select vh.id VOLUME_HORAIRE_ID, evh.id ETAT_VOLUME_HORAIRE_ID + from volume_horaire vh + join service s on s.id = vh.service_id and s.histo_destruction IS NULL + join etat_volume_horaire evh on evh.code = 'saisi' + where vh.histo_destruction IS NULL +union all + select vh.id, evh.id + from volume_horaire vh + join service s on s.id = vh.service_id and s.histo_destruction IS NULL + join etat_volume_horaire evh on evh.code = 'valide' + where vh.histo_destruction IS NULL + and EXISTS( + SELECT * FROM validation v JOIN validation_vol_horaire vvh ON vvh.validation_id = v.id + WHERE vvh.volume_horaire_id = vh.id AND v.histo_destruction IS NULL + ) +union all + select vh.id, evh.id + from volume_horaire vh + join service s on s.id = vh.service_id and s.histo_destruction IS NULL + join contrat c on vh.contrat_id = c.id and c.histo_destruction IS NULL + join etat_volume_horaire evh on evh.code = 'contrat-edite' + where vh.histo_destruction IS NULL +union all + select vh.id, evh.id + from volume_horaire vh + join service s on s.id = vh.service_id and s.histo_destruction IS NULL + join contrat c on vh.contrat_id = c.id and c.histo_destruction IS NULL and c.date_retour_signe is not null + join etat_volume_horaire evh on evh.code = 'contrat-signe' + where vh.histo_destruction IS NULL; + +-- V_VOL_HORAIRE_REF_ETAT_MULTI +CREATE OR REPLACE FORCE VIEW "V_VOL_HORAIRE_REF_ETAT_MULTI" ("VOLUME_HORAIRE_REF_ID", "ETAT_VOLUME_HORAIRE_ID") AS + select vh.id VOLUME_HORAIRE_REF_ID, evh.id ETAT_VOLUME_HORAIRE_ID + from volume_horaire_ref vh + join service_referentiel s on s.id = vh.service_referentiel_id and s.histo_destruction IS NULL + join etat_volume_horaire evh on evh.code = 'saisi' + where vh.histo_destruction IS NULL +union all + select vh.id, evh.id + from volume_horaire_ref vh + join service_referentiel s on s.id = vh.service_referentiel_id and s.histo_destruction IS NULL + join etat_volume_horaire evh on evh.code = 'valide' + where vh.histo_destruction IS NULL + and EXISTS( + SELECT * FROM validation v JOIN validation_vol_horaire_ref vvh ON vvh.validation_id = v.id + WHERE vvh.volume_horaire_ref_id = vh.id AND v.histo_destruction IS NULL + ); + +-- V_WORKFLOW_ETAPE_PERTINENTE +CREATE OR REPLACE FORCE VIEW "V_WORKFLOW_ETAPE_PERTINENTE" ("ANNEE_ID", "INTERVENANT_ID", "ETAPE_CODE") AS + WITH peut_pj AS ( + SELECT DISTINCT + statut_intervenant_id, + 1 tem + FROM + type_piece_jointe_statut tpjs + WHERE + tpjs.histo_destruction IS NULL +), +peut_agr AS ( + SELECT + tas.statut_intervenant_id, + ta.code, + tas.premier_recrutement + FROM + type_agrement_statut tas + JOIN type_agrement ta ON ta.id = tas.type_agrement_id + WHERE + tas.histo_destruction IS NULL +) +SELECT + i.annee_id annee_id, + i.id intervenant_id, + e.code etape_code +FROM + intervenant i + JOIN statut_intervenant si ON si.id = i.statut_id + LEFT JOIN peut_pj ON peut_pj.statut_intervenant_id = si.id + LEFT JOIN peut_agr peut_cr ON peut_cr.code = 'CONSEIL_RESTREINT' AND peut_cr.statut_intervenant_id = si.id AND (peut_cr.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = peut_cr.premier_recrutement) + LEFT JOIN peut_agr peut_ca ON peut_ca.code = 'CONSEIL_ACADEMIQUE' AND peut_ca.statut_intervenant_id = si.id AND (peut_ca.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = peut_ca.premier_recrutement) + JOIN wf_etape e ON 1 = CASE e.code + + WHEN 'DONNEES_PERSO_SAISIE' THEN + si.peut_saisir_dossier + + WHEN 'SERVICE_SAISIE' THEN + CASE WHEN si.peut_saisir_service + si.peut_saisir_referentiel = 0 THEN 0 ELSE 1 END + + WHEN 'PJ_SAISIE' THEN + peut_pj.tem + + WHEN 'PJ_VALIDATION' THEN + peut_pj.tem + + WHEN 'DONNEES_PERSO_VALIDATION' THEN + si.peut_saisir_dossier + + WHEN 'SERVICE_VALIDATION' THEN + si.peut_saisir_service + + WHEN 'REFERENTIEL_VALIDATION' THEN + si.peut_saisir_referentiel + + WHEN 'CONSEIL_RESTREINT' THEN + CASE WHEN peut_cr.code IS NULL THEN 0 ELSE 1 END + + WHEN 'CONSEIL_ACADEMIQUE' THEN + CASE WHEN peut_ca.code IS NULL THEN 0 ELSE 1 END + + WHEN 'CONTRAT' THEN + si.peut_avoir_contrat + + WHEN 'SERVICE_SAISIE_REALISE' THEN + CASE WHEN si.peut_saisir_service + si.peut_saisir_referentiel = 0 THEN 0 ELSE 1 END + + WHEN 'CLOTURE_REALISE' THEN + si.peut_cloturer_saisie + + WHEN 'SERVICE_VALIDATION_REALISE' THEN + si.peut_saisir_service + + WHEN 'REFERENTIEL_VALIDATION_REALISE' THEN + si.peut_saisir_referentiel + + WHEN 'DEMANDE_MEP' THEN + CASE WHEN si.peut_saisir_service + si.peut_saisir_referentiel = 0 THEN 0 ELSE 1 END + + WHEN 'SAISIE_MEP' THEN + CASE WHEN si.peut_saisir_service + si.peut_saisir_referentiel = 0 THEN 0 ELSE 1 END + + END +WHERE + i.histo_destruction IS NULL; + +-------------------------------------------------- +-- mviews +-------------------------------------------------- + +-- TBL_NOEUD +CREATE MATERIALIZED VIEW "TBL_NOEUD" ("NOEUD_ID", "NOEUD_ETAPE_ID", "CODE", "LIBELLE", "ANNEE_ID", "ETAPE_ID", "ELEMENT_PEDAGOGIQUE_ID", "ELEMENT_PEDAGOGIQUE_ETAPE_ID", "STRUCTURE_ID", "GROUPE_TYPE_FORMATION_ID") AS +SELECT + n.id noeud_id, + en.id noeud_etape_id, + n.code code, + n.libelle libelle, + n.annee_id annee_id, + n.etape_id etape_id, + n.element_pedagogique_id element_pedagogique_id, + etp.id element_pedagogique_etape_id, + n.structure_id structure_id, + tf.groupe_id groupe_type_formation_id +FROM + noeud n + LEFT JOIN element_pedagogique ep ON ep.id = n.element_pedagogique_id + LEFT JOIN etape etp ON etp.id = COALESCE(n.etape_id,ep.etape_id) + LEFT JOIN type_formation tf ON tf.id = etp.type_formation_id + LEFT JOIN noeud en ON en.etape_id = etp.id +WHERE + n.histo_destruction IS NULL; + +-------------------------------------------------- +-- constraints +-------------------------------------------------- + +-- ADRESSE_INTERVENANT_HCFK +ALTER TABLE "ADRESSE_INTERVENANT" ADD CONSTRAINT "ADRESSE_INTERVENANT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ADRESSE_INTERVENANT_HDFK +ALTER TABLE "ADRESSE_INTERVENANT" ADD CONSTRAINT "ADRESSE_INTERVENANT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ADRESSE_INTERVENANT_HMFK +ALTER TABLE "ADRESSE_INTERVENANT" ADD CONSTRAINT "ADRESSE_INTERVENANT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ADRESSE_INTERVENANT_SOURCE_FK +ALTER TABLE "ADRESSE_INTERVENANT" ADD CONSTRAINT "ADRESSE_INTERVENANT_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- ADRESSE_STRUCTURE_HCFK +ALTER TABLE "ADRESSE_STRUCTURE" ADD CONSTRAINT "ADRESSE_STRUCTURE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ADRESSE_STRUCTURE_HDFK +ALTER TABLE "ADRESSE_STRUCTURE" ADD CONSTRAINT "ADRESSE_STRUCTURE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ADRESSE_STRUCTURE_HMFK +ALTER TABLE "ADRESSE_STRUCTURE" ADD CONSTRAINT "ADRESSE_STRUCTURE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ADRESSE_STRUCTURE_SOURCE_FK +ALTER TABLE "ADRESSE_STRUCTURE" ADD CONSTRAINT "ADRESSE_STRUCTURE_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- ADRESSE_STRUCTURE_STRUCTURE_FK +ALTER TABLE "ADRESSE_STRUCTURE" ADD CONSTRAINT "ADRESSE_STRUCTURE_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- AFFECTATION_HCFK +ALTER TABLE "AFFECTATION" ADD CONSTRAINT "AFFECTATION_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- AFFECTATION_HDFK +ALTER TABLE "AFFECTATION" ADD CONSTRAINT "AFFECTATION_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- AFFECTATION_HMFK +ALTER TABLE "AFFECTATION" ADD CONSTRAINT "AFFECTATION_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- AFFECTATION_ROLE_FK +ALTER TABLE "AFFECTATION" ADD CONSTRAINT "AFFECTATION_ROLE_FK" FOREIGN KEY ("ROLE_ID") + REFERENCES "ROLE" ("ID") ON DELETE CASCADE ENABLE; + +-- AFFECTATION_R_HCFK +ALTER TABLE "AFFECTATION_RECHERCHE" ADD CONSTRAINT "AFFECTATION_R_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- AFFECTATION_R_HDFK +ALTER TABLE "AFFECTATION_RECHERCHE" ADD CONSTRAINT "AFFECTATION_R_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- AFFECTATION_R_HMFK +ALTER TABLE "AFFECTATION_RECHERCHE" ADD CONSTRAINT "AFFECTATION_R_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- AFFECTATION_R_INTERVENANT_FK +ALTER TABLE "AFFECTATION_RECHERCHE" ADD CONSTRAINT "AFFECTATION_R_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- AFFECTATION_R_SOURCE_FK +ALTER TABLE "AFFECTATION_RECHERCHE" ADD CONSTRAINT "AFFECTATION_R_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- AFFECTATION_R_STRUCTURE_FK +ALTER TABLE "AFFECTATION_RECHERCHE" ADD CONSTRAINT "AFFECTATION_R_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- AFFECTATION_SOURCE_FK +ALTER TABLE "AFFECTATION" ADD CONSTRAINT "AFFECTATION_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ENABLE; + +-- AFFECTATION_STRUCTURE_FK +ALTER TABLE "AFFECTATION" ADD CONSTRAINT "AFFECTATION_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- AFFECTATION_UTILISATEUR_FK +ALTER TABLE "AFFECTATION" ADD CONSTRAINT "AFFECTATION_UTILISATEUR_FK" FOREIGN KEY ("UTILISATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- AGREMENTS_STRUCTURES_FK +ALTER TABLE "AGREMENT" ADD CONSTRAINT "AGREMENTS_STRUCTURES_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- AGREMENT_HCFK +ALTER TABLE "AGREMENT" ADD CONSTRAINT "AGREMENT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- AGREMENT_HDFK +ALTER TABLE "AGREMENT" ADD CONSTRAINT "AGREMENT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- AGREMENT_HMFK +ALTER TABLE "AGREMENT" ADD CONSTRAINT "AGREMENT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- AGREMENT_INTERVENANT_FK +ALTER TABLE "AGREMENT" ADD CONSTRAINT "AGREMENT_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- AGREMENT_TYPE_AGREMENT_FK +ALTER TABLE "AGREMENT" ADD CONSTRAINT "AGREMENT_TYPE_AGREMENT_FK" FOREIGN KEY ("TYPE_AGREMENT_ID") + REFERENCES "TYPE_AGREMENT" ("ID") ON DELETE CASCADE ENABLE; + +-- AII_FK +ALTER TABLE "ADRESSE_INTERVENANT" ADD CONSTRAINT "AII_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- CAMPAGNE_SAISIE_ANNEE_FK +ALTER TABLE "CAMPAGNE_SAISIE" ADD CONSTRAINT "CAMPAGNE_SAISIE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- CCEP_CENTRE_COUT_FK +ALTER TABLE "CENTRE_COUT_EP" ADD CONSTRAINT "CCEP_CENTRE_COUT_FK" FOREIGN KEY ("CENTRE_COUT_ID") + REFERENCES "CENTRE_COUT" ("ID") ON DELETE CASCADE ENABLE; + +-- CCEP_ELEMENT_PEDAGOGIQUE_FK +ALTER TABLE "CENTRE_COUT_EP" ADD CONSTRAINT "CCEP_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") + REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + +-- CCEP_SOURCE_FK +ALTER TABLE "CENTRE_COUT_EP" ADD CONSTRAINT "CCEP_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- CCEP_TYPE_HEURES_FK +ALTER TABLE "CENTRE_COUT_EP" ADD CONSTRAINT "CCEP_TYPE_HEURES_FK" FOREIGN KEY ("TYPE_HEURES_ID") + REFERENCES "TYPE_HEURES" ("ID") ON DELETE CASCADE ENABLE; + +-- CCS_CENTRE_COUT_FK +ALTER TABLE "CENTRE_COUT_STRUCTURE" ADD CONSTRAINT "CCS_CENTRE_COUT_FK" FOREIGN KEY ("CENTRE_COUT_ID") + REFERENCES "CENTRE_COUT" ("ID") ON DELETE CASCADE ENABLE; + +-- CCS_SOURCE_FK +ALTER TABLE "CENTRE_COUT_STRUCTURE" ADD CONSTRAINT "CCS_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ENABLE; + +-- CCS_STRUCTURE_FK +ALTER TABLE "CENTRE_COUT_STRUCTURE" ADD CONSTRAINT "CCS_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- CC_ACTIVITE_HCFK +ALTER TABLE "CC_ACTIVITE" ADD CONSTRAINT "CC_ACTIVITE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CC_ACTIVITE_HDFK +ALTER TABLE "CC_ACTIVITE" ADD CONSTRAINT "CC_ACTIVITE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CC_ACTIVITE_HMFK +ALTER TABLE "CC_ACTIVITE" ADD CONSTRAINT "CC_ACTIVITE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CENTRE_COUT_ACTIVITE_FK +ALTER TABLE "CENTRE_COUT" ADD CONSTRAINT "CENTRE_COUT_ACTIVITE_FK" FOREIGN KEY ("ACTIVITE_ID") + REFERENCES "CC_ACTIVITE" ("ID") ON DELETE CASCADE ENABLE; + +-- CENTRE_COUT_CENTRE_COUT_FK +ALTER TABLE "CENTRE_COUT" ADD CONSTRAINT "CENTRE_COUT_CENTRE_COUT_FK" FOREIGN KEY ("PARENT_ID") + REFERENCES "CENTRE_COUT" ("ID") ON DELETE CASCADE ENABLE; + +-- CENTRE_COUT_EP_HCFK +ALTER TABLE "CENTRE_COUT_EP" ADD CONSTRAINT "CENTRE_COUT_EP_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CENTRE_COUT_EP_HDFK +ALTER TABLE "CENTRE_COUT_EP" ADD CONSTRAINT "CENTRE_COUT_EP_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CENTRE_COUT_EP_HMFK +ALTER TABLE "CENTRE_COUT_EP" ADD CONSTRAINT "CENTRE_COUT_EP_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CENTRE_COUT_HCFK +ALTER TABLE "CENTRE_COUT" ADD CONSTRAINT "CENTRE_COUT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CENTRE_COUT_HDFK +ALTER TABLE "CENTRE_COUT" ADD CONSTRAINT "CENTRE_COUT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CENTRE_COUT_HMFK +ALTER TABLE "CENTRE_COUT" ADD CONSTRAINT "CENTRE_COUT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CENTRE_COUT_SOURCE_FK +ALTER TABLE "CENTRE_COUT" ADD CONSTRAINT "CENTRE_COUT_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- CENTRE_COUT_STRUCTURE_HCFK +ALTER TABLE "CENTRE_COUT_STRUCTURE" ADD CONSTRAINT "CENTRE_COUT_STRUCTURE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CENTRE_COUT_STRUCTURE_HDFK +ALTER TABLE "CENTRE_COUT_STRUCTURE" ADD CONSTRAINT "CENTRE_COUT_STRUCTURE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CENTRE_COUT_STRUCTURE_HMFK +ALTER TABLE "CENTRE_COUT_STRUCTURE" ADD CONSTRAINT "CENTRE_COUT_STRUCTURE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CENTRE_COUT_TYPE_RESSOURCE_FK +ALTER TABLE "CENTRE_COUT" ADD CONSTRAINT "CENTRE_COUT_TYPE_RESSOURCE_FK" FOREIGN KEY ("TYPE_RESSOURCE_ID") + REFERENCES "TYPE_RESSOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- CHEMIN_PEDAGOGIQUE_ETAPE_FK +ALTER TABLE "CHEMIN_PEDAGOGIQUE" ADD CONSTRAINT "CHEMIN_PEDAGOGIQUE_ETAPE_FK" FOREIGN KEY ("ETAPE_ID") + REFERENCES "ETAPE" ("ID") ON DELETE CASCADE ENABLE; + +-- CHEMIN_PEDAGOGIQUE_HCFK +ALTER TABLE "CHEMIN_PEDAGOGIQUE" ADD CONSTRAINT "CHEMIN_PEDAGOGIQUE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CHEMIN_PEDAGOGIQUE_HDFK +ALTER TABLE "CHEMIN_PEDAGOGIQUE" ADD CONSTRAINT "CHEMIN_PEDAGOGIQUE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CHEMIN_PEDAGOGIQUE_HMFK +ALTER TABLE "CHEMIN_PEDAGOGIQUE" ADD CONSTRAINT "CHEMIN_PEDAGOGIQUE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CHEMIN_PEDAGOGIQUE_SOURCE_FK +ALTER TABLE "CHEMIN_PEDAGOGIQUE" ADD CONSTRAINT "CHEMIN_PEDAGOGIQUE_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- CONTRAT_CONTRAT_FK +ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_CONTRAT_FK" FOREIGN KEY ("CONTRAT_ID") + REFERENCES "CONTRAT" ("ID") ON DELETE CASCADE ENABLE; + +-- CONTRAT_FICHIER_FFK +ALTER TABLE "CONTRAT_FICHIER" ADD CONSTRAINT "CONTRAT_FICHIER_FFK" FOREIGN KEY ("FICHIER_ID") + REFERENCES "FICHIER" ("ID") ON DELETE CASCADE ENABLE; + +-- CONTRAT_FICHIER_cFK +ALTER TABLE "CONTRAT_FICHIER" ADD CONSTRAINT "CONTRAT_FICHIER_cFK" FOREIGN KEY ("CONTRAT_ID") + REFERENCES "CONTRAT" ("ID") ON DELETE CASCADE ENABLE; + +-- CONTRAT_HCFK +ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CONTRAT_HDFK +ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CONTRAT_HMFK +ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CONTRAT_INTERVENANT_FK +ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- CONTRAT_STRUCTURE_FK +ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- CONTRAT_TYPE_CONTRAT_FK +ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_TYPE_CONTRAT_FK" FOREIGN KEY ("TYPE_CONTRAT_ID") + REFERENCES "TYPE_CONTRAT" ("ID") ENABLE; + +-- CONTRAT_VALIDATION_FK +ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") + REFERENCES "VALIDATION" ("ID") ON DELETE SET NULL ENABLE; + +-- CORPS_HCFK +ALTER TABLE "CORPS" ADD CONSTRAINT "CORPS_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CORPS_HDFK +ALTER TABLE "CORPS" ADD CONSTRAINT "CORPS_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CORPS_HMFK +ALTER TABLE "CORPS" ADD CONSTRAINT "CORPS_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- CORPS_SOURCE_FK +ALTER TABLE "CORPS" ADD CONSTRAINT "CORPS_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- CPEP_FK +ALTER TABLE "CHEMIN_PEDAGOGIQUE" ADD CONSTRAINT "CPEP_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") + REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + +-- CS_TYPE_INTERVENANT_FK +ALTER TABLE "CAMPAGNE_SAISIE" ADD CONSTRAINT "CS_TYPE_INTERVENANT_FK" FOREIGN KEY ("TYPE_INTERVENANT_ID") + REFERENCES "TYPE_INTERVENANT" ("ID") ENABLE; + +-- CS_TYPE_VOLUME_HORAIRE_FK +ALTER TABLE "CAMPAGNE_SAISIE" ADD CONSTRAINT "CS_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") + REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ENABLE; + +-- DEPARTEMENT_HCFK +ALTER TABLE "DEPARTEMENT" ADD CONSTRAINT "DEPARTEMENT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- DEPARTEMENT_HDFK +ALTER TABLE "DEPARTEMENT" ADD CONSTRAINT "DEPARTEMENT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- DEPARTEMENT_HMFK +ALTER TABLE "DEPARTEMENT" ADD CONSTRAINT "DEPARTEMENT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- DEPARTEMENT_SOURCE_FK +ALTER TABLE "DEPARTEMENT" ADD CONSTRAINT "DEPARTEMENT_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- DISCIPLINE_HCFK +ALTER TABLE "DISCIPLINE" ADD CONSTRAINT "DISCIPLINE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- DISCIPLINE_HDFK +ALTER TABLE "DISCIPLINE" ADD CONSTRAINT "DISCIPLINE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- DISCIPLINE_HMFK +ALTER TABLE "DISCIPLINE" ADD CONSTRAINT "DISCIPLINE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- DISCIPLINE_SOURCE_FK +ALTER TABLE "DISCIPLINE" ADD CONSTRAINT "DISCIPLINE_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ENABLE; + +-- DOMAINE_FONCTIONNEL_HCFK +ALTER TABLE "DOMAINE_FONCTIONNEL" ADD CONSTRAINT "DOMAINE_FONCTIONNEL_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- DOMAINE_FONCTIONNEL_HDFK +ALTER TABLE "DOMAINE_FONCTIONNEL" ADD CONSTRAINT "DOMAINE_FONCTIONNEL_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- DOMAINE_FONCTIONNEL_HMFK +ALTER TABLE "DOMAINE_FONCTIONNEL" ADD CONSTRAINT "DOMAINE_FONCTIONNEL_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- DOMAINE_FONCTIONNEL_SOURCE_FK +ALTER TABLE "DOMAINE_FONCTIONNEL" ADD CONSTRAINT "DOMAINE_FONCTIONNEL_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- DOSSIER_D_FK +ALTER TABLE "DOSSIER" ADD CONSTRAINT "DOSSIER_D_FK" FOREIGN KEY ("DEPT_NAISSANCE_ID") + REFERENCES "DEPARTEMENT" ("ID") ENABLE; + +-- DOSSIER_HCFK +ALTER TABLE "DOSSIER" ADD CONSTRAINT "DOSSIER_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- DOSSIER_HDFK +ALTER TABLE "DOSSIER" ADD CONSTRAINT "DOSSIER_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- DOSSIER_HMFK +ALTER TABLE "DOSSIER" ADD CONSTRAINT "DOSSIER_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- DOSSIER_INTERVENANT_FK +ALTER TABLE "DOSSIER" ADD CONSTRAINT "DOSSIER_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ENABLE; + +-- DOSSIER_P_FK +ALTER TABLE "DOSSIER" ADD CONSTRAINT "DOSSIER_P_FK" FOREIGN KEY ("PAYS_NAISSANCE_ID") + REFERENCES "PAYS" ("ID") ENABLE; + +-- DOTATION_ANNEE_FK +ALTER TABLE "DOTATION" ADD CONSTRAINT "DOTATION_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- DOTATION_HCFK +ALTER TABLE "DOTATION" ADD CONSTRAINT "DOTATION_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- DOTATION_HDFK +ALTER TABLE "DOTATION" ADD CONSTRAINT "DOTATION_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- DOTATION_HMFK +ALTER TABLE "DOTATION" ADD CONSTRAINT "DOTATION_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- DOTATION_STRUCTURE_FK +ALTER TABLE "DOTATION" ADD CONSTRAINT "DOTATION_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- DOTATION_TYPE_RESSOURCE_FK +ALTER TABLE "DOTATION" ADD CONSTRAINT "DOTATION_TYPE_RESSOURCE_FK" FOREIGN KEY ("TYPE_RESSOURCE_ID") + REFERENCES "TYPE_RESSOURCE" ("ID") ENABLE; + +-- DS_MDS_FK +ALTER TABLE "MODIFICATION_SERVICE_DU" ADD CONSTRAINT "DS_MDS_FK" FOREIGN KEY ("MOTIF_ID") + REFERENCES "MOTIF_MODIFICATION_SERVICE" ("ID") ENABLE; + +-- EFFECTIFS_ELEMENT_FK +ALTER TABLE "EFFECTIFS" ADD CONSTRAINT "EFFECTIFS_ELEMENT_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") + REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + +-- EFFECTIFS_FK +ALTER TABLE "EFFECTIFS" ADD CONSTRAINT "EFFECTIFS_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- EFFECTIFS_HCFK +ALTER TABLE "EFFECTIFS" ADD CONSTRAINT "EFFECTIFS_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- EFFECTIFS_HDFK +ALTER TABLE "EFFECTIFS" ADD CONSTRAINT "EFFECTIFS_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- EFFECTIFS_HMFK +ALTER TABLE "EFFECTIFS" ADD CONSTRAINT "EFFECTIFS_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- EFFECTIFS_SOURCE_FK +ALTER TABLE "EFFECTIFS" ADD CONSTRAINT "EFFECTIFS_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- ELEMENT_MODULATEUR_HCFK +ALTER TABLE "ELEMENT_MODULATEUR" ADD CONSTRAINT "ELEMENT_MODULATEUR_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ELEMENT_MODULATEUR_HDFK +ALTER TABLE "ELEMENT_MODULATEUR" ADD CONSTRAINT "ELEMENT_MODULATEUR_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ELEMENT_MODULATEUR_HMFK +ALTER TABLE "ELEMENT_MODULATEUR" ADD CONSTRAINT "ELEMENT_MODULATEUR_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ELEMENT_PEDAGOGIQUE_ANNEE_FK +ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "ELEMENT_PEDAGOGIQUE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- ELEMENT_PEDAGOGIQUE_ETAPE_FK +ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "ELEMENT_PEDAGOGIQUE_ETAPE_FK" FOREIGN KEY ("ETAPE_ID") + REFERENCES "ETAPE" ("ID") ENABLE; + +-- ELEMENT_PEDAGOGIQUE_HCFK +ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "ELEMENT_PEDAGOGIQUE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ELEMENT_PEDAGOGIQUE_HDFK +ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "ELEMENT_PEDAGOGIQUE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ELEMENT_PEDAGOGIQUE_HMFK +ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "ELEMENT_PEDAGOGIQUE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ELEMENT_PEDAGOGIQUE_PERIODE_FK +ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "ELEMENT_PEDAGOGIQUE_PERIODE_FK" FOREIGN KEY ("PERIODE_ID") + REFERENCES "PERIODE" ("ID") ENABLE; + +-- ELEMENT_PEDAGOGIQUE_SOURCE_FK +ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "ELEMENT_PEDAGOGIQUE_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- ELEMENT_TAUX_REGIMES_HCFK +ALTER TABLE "ELEMENT_TAUX_REGIMES" ADD CONSTRAINT "ELEMENT_TAUX_REGIMES_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ELEMENT_TAUX_REGIMES_HDFK +ALTER TABLE "ELEMENT_TAUX_REGIMES" ADD CONSTRAINT "ELEMENT_TAUX_REGIMES_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ELEMENT_TAUX_REGIMES_HMFK +ALTER TABLE "ELEMENT_TAUX_REGIMES" ADD CONSTRAINT "ELEMENT_TAUX_REGIMES_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- EM_ELEMENT_PEDAGOGIQUE_FK +ALTER TABLE "ELEMENT_MODULATEUR" ADD CONSTRAINT "EM_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_ID") + REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + +-- EM_MODULATEUR_FK +ALTER TABLE "ELEMENT_MODULATEUR" ADD CONSTRAINT "EM_MODULATEUR_FK" FOREIGN KEY ("MODULATEUR_ID") + REFERENCES "MODULATEUR" ("ID") ENABLE; + +-- EPS_FK +ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "EPS_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- EP_DISCIPLINE_FK +ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "EP_DISCIPLINE_FK" FOREIGN KEY ("DISCIPLINE_ID") + REFERENCES "DISCIPLINE" ("ID") ENABLE; + +-- ETABLISSEMENT_HCFK +ALTER TABLE "ETABLISSEMENT" ADD CONSTRAINT "ETABLISSEMENT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ETABLISSEMENT_HDFK +ALTER TABLE "ETABLISSEMENT" ADD CONSTRAINT "ETABLISSEMENT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ETABLISSEMENT_HMFK +ALTER TABLE "ETABLISSEMENT" ADD CONSTRAINT "ETABLISSEMENT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ETABLISSEMENT_SOURCE_FK +ALTER TABLE "ETABLISSEMENT" ADD CONSTRAINT "ETABLISSEMENT_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- ETAPE_ANNEE_FK +ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- ETAPE_DOMAINE_FONCTIONNEL_FK +ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_DOMAINE_FONCTIONNEL_FK" FOREIGN KEY ("DOMAINE_FONCTIONNEL_ID") + REFERENCES "DOMAINE_FONCTIONNEL" ("ID") ENABLE; + +-- ETAPE_HCFK +ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ETAPE_HDFK +ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ETAPE_HMFK +ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ETAPE_SOURCE_FK +ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- ETAPE_STRUCTURE_FK +ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- ETAPE_TYPE_FORMATION_FK +ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_TYPE_FORMATION_FK" FOREIGN KEY ("TYPE_FORMATION_ID") + REFERENCES "TYPE_FORMATION" ("ID") ENABLE; + +-- ETR_ELEMENT_FK +ALTER TABLE "ELEMENT_TAUX_REGIMES" ADD CONSTRAINT "ETR_ELEMENT_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") + REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + +-- ETR_SOURCE_FK +ALTER TABLE "ELEMENT_TAUX_REGIMES" ADD CONSTRAINT "ETR_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ENABLE; + +-- FICHIER_HCFK +ALTER TABLE "FICHIER" ADD CONSTRAINT "FICHIER_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- FICHIER_HDFK +ALTER TABLE "FICHIER" ADD CONSTRAINT "FICHIER_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- FICHIER_HMFK +ALTER TABLE "FICHIER" ADD CONSTRAINT "FICHIER_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- FICHIER_VALID_FK +ALTER TABLE "FICHIER" ADD CONSTRAINT "FICHIER_VALID_FK" FOREIGN KEY ("VALIDATION_ID") + REFERENCES "VALIDATION" ("ID") ON DELETE SET NULL ENABLE; + +-- FONCTION_REFERENTIEL_HCFK +ALTER TABLE "FONCTION_REFERENTIEL" ADD CONSTRAINT "FONCTION_REFERENTIEL_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- FONCTION_REFERENTIEL_HDFK +ALTER TABLE "FONCTION_REFERENTIEL" ADD CONSTRAINT "FONCTION_REFERENTIEL_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- FONCTION_REFERENTIEL_HMFK +ALTER TABLE "FONCTION_REFERENTIEL" ADD CONSTRAINT "FONCTION_REFERENTIEL_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- FONCTION_REFERENTIEL_SFK +ALTER TABLE "FONCTION_REFERENTIEL" ADD CONSTRAINT "FONCTION_REFERENTIEL_SFK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- FONC_REF_DOMAINE_FONCT_FK +ALTER TABLE "FONCTION_REFERENTIEL" ADD CONSTRAINT "FONC_REF_DOMAINE_FONCT_FK" FOREIGN KEY ("DOMAINE_FONCTIONNEL_ID") + REFERENCES "DOMAINE_FONCTIONNEL" ("ID") ENABLE; + +-- FRES_ETAT_VOLUME_HORAIRE_FK +ALTER TABLE "FORMULE_RESULTAT" ADD CONSTRAINT "FRES_ETAT_VOLUME_HORAIRE_FK" FOREIGN KEY ("ETAT_VOLUME_HORAIRE_ID") + REFERENCES "ETAT_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + +-- FRES_INTERVENANT_FK +ALTER TABLE "FORMULE_RESULTAT" ADD CONSTRAINT "FRES_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- FRES_TYPE_VOLUME_HORAIRE_FK +ALTER TABLE "FORMULE_RESULTAT" ADD CONSTRAINT "FRES_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") + REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + +-- FRR_FORMULE_RESULTAT_FK +ALTER TABLE "FORMULE_RESULTAT_SERVICE_REF" ADD CONSTRAINT "FRR_FORMULE_RESULTAT_FK" FOREIGN KEY ("FORMULE_RESULTAT_ID") + REFERENCES "FORMULE_RESULTAT" ("ID") ON DELETE CASCADE ENABLE; + +-- FRSR_SERVICE_REFERENTIEL_FK +ALTER TABLE "FORMULE_RESULTAT_SERVICE_REF" ADD CONSTRAINT "FRSR_SERVICE_REFERENTIEL_FK" FOREIGN KEY ("SERVICE_REFERENTIEL_ID") + REFERENCES "SERVICE_REFERENTIEL" ("ID") ON DELETE CASCADE ENABLE; + +-- FRS_FORMULE_RESULTAT_FK +ALTER TABLE "FORMULE_RESULTAT_SERVICE" ADD CONSTRAINT "FRS_FORMULE_RESULTAT_FK" FOREIGN KEY ("FORMULE_RESULTAT_ID") + REFERENCES "FORMULE_RESULTAT" ("ID") ON DELETE CASCADE ENABLE; + +-- FRS_SERVICE_FK +ALTER TABLE "FORMULE_RESULTAT_SERVICE" ADD CONSTRAINT "FRS_SERVICE_FK" FOREIGN KEY ("SERVICE_ID") + REFERENCES "SERVICE" ("ID") ON DELETE CASCADE ENABLE; + +-- FRVHR_FORMULE_RESULTAT_FK +ALTER TABLE "FORMULE_RESULTAT_VH_REF" ADD CONSTRAINT "FRVHR_FORMULE_RESULTAT_FK" FOREIGN KEY ("FORMULE_RESULTAT_ID") + REFERENCES "FORMULE_RESULTAT" ("ID") ON DELETE CASCADE ENABLE; + +-- FRVHR_VOLUME_HORAIRE_REF_FK +ALTER TABLE "FORMULE_RESULTAT_VH_REF" ADD CONSTRAINT "FRVHR_VOLUME_HORAIRE_REF_FK" FOREIGN KEY ("VOLUME_HORAIRE_REF_ID") + REFERENCES "VOLUME_HORAIRE_REF" ("ID") ON DELETE CASCADE ENABLE; + +-- FRVH_FORMULE_RESULTAT_FK +ALTER TABLE "FORMULE_RESULTAT_VH" ADD CONSTRAINT "FRVH_FORMULE_RESULTAT_FK" FOREIGN KEY ("FORMULE_RESULTAT_ID") + REFERENCES "FORMULE_RESULTAT" ("ID") ON DELETE CASCADE ENABLE; + +-- FRVH_VOLUME_HORAIRE_FK +ALTER TABLE "FORMULE_RESULTAT_VH" ADD CONSTRAINT "FRVH_VOLUME_HORAIRE_FK" FOREIGN KEY ("VOLUME_HORAIRE_ID") + REFERENCES "VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + +-- GRADE_CORPS_FK +ALTER TABLE "GRADE" ADD CONSTRAINT "GRADE_CORPS_FK" FOREIGN KEY ("CORPS_ID") + REFERENCES "CORPS" ("ID") ENABLE; + +-- GRADE_HCFK +ALTER TABLE "GRADE" ADD CONSTRAINT "GRADE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- GRADE_HDFK +ALTER TABLE "GRADE" ADD CONSTRAINT "GRADE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- GRADE_HMFK +ALTER TABLE "GRADE" ADD CONSTRAINT "GRADE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- GRADE_SOURCE_FK +ALTER TABLE "GRADE" ADD CONSTRAINT "GRADE_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ENABLE; + +-- GROUPE_ELEMENT_PEDAGOGIQUE_FK +ALTER TABLE "GROUPE" ADD CONSTRAINT "GROUPE_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") + REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + +-- GROUPE_HCFK +ALTER TABLE "GROUPE" ADD CONSTRAINT "GROUPE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- GROUPE_HDFK +ALTER TABLE "GROUPE" ADD CONSTRAINT "GROUPE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- GROUPE_HMFK +ALTER TABLE "GROUPE" ADD CONSTRAINT "GROUPE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- GROUPE_TYPE_FORMATION_HCFK +ALTER TABLE "GROUPE_TYPE_FORMATION" ADD CONSTRAINT "GROUPE_TYPE_FORMATION_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- GROUPE_TYPE_FORMATION_HDFK +ALTER TABLE "GROUPE_TYPE_FORMATION" ADD CONSTRAINT "GROUPE_TYPE_FORMATION_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- GROUPE_TYPE_FORMATION_HMFK +ALTER TABLE "GROUPE_TYPE_FORMATION" ADD CONSTRAINT "GROUPE_TYPE_FORMATION_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- GROUPE_TYPE_INTERVENTION_FK +ALTER TABLE "GROUPE" ADD CONSTRAINT "GROUPE_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") + REFERENCES "TYPE_INTERVENTION" ("ID") ENABLE; + +-- GTYPE_FORMATION_SOURCE_FK +ALTER TABLE "GROUPE_TYPE_FORMATION" ADD CONSTRAINT "GTYPE_FORMATION_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- HSM_INTERVENANT_FK +ALTER TABLE "HISTO_INTERVENANT_SERVICE" ADD CONSTRAINT "HSM_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- HSM_TYPE_VOLUME_HORAIRE_FK +ALTER TABLE "HISTO_INTERVENANT_SERVICE" ADD CONSTRAINT "HSM_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") + REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + +-- HSM_UTILISATEUR_FK +ALTER TABLE "HISTO_INTERVENANT_SERVICE" ADD CONSTRAINT "HSM_UTILISATEUR_FK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ON DELETE CASCADE ENABLE; + +-- INDIC_MODIF_DOSSIER_HCFK +ALTER TABLE "INDIC_MODIF_DOSSIER" ADD CONSTRAINT "INDIC_MODIF_DOSSIER_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- INDIC_MODIF_DOSSIER_HDFK +ALTER TABLE "INDIC_MODIF_DOSSIER" ADD CONSTRAINT "INDIC_MODIF_DOSSIER_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- INDIC_MODIF_DOSSIER_HMFK +ALTER TABLE "INDIC_MODIF_DOSSIER" ADD CONSTRAINT "INDIC_MODIF_DOSSIER_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- INTERVENANTS_CIVILITES_FK +ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANTS_CIVILITES_FK" FOREIGN KEY ("CIVILITE_ID") + REFERENCES "CIVILITE" ("ID") ENABLE; + +-- INTERVENANT_ANNEE_FK +ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- INTERVENANT_DEPARTEMENT_FK +ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_DEPARTEMENT_FK" FOREIGN KEY ("DEP_NAISSANCE_ID") + REFERENCES "DEPARTEMENT" ("ID") ENABLE; + +-- INTERVENANT_DISCIPLINE_FK +ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_DISCIPLINE_FK" FOREIGN KEY ("DISCIPLINE_ID") + REFERENCES "DISCIPLINE" ("ID") ENABLE; + +-- INTERVENANT_GRADE_FK +ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_GRADE_FK" FOREIGN KEY ("GRADE_ID") + REFERENCES "GRADE" ("ID") ENABLE; + +-- INTERVENANT_HCFK +ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- INTERVENANT_HDFK +ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- INTERVENANT_HMFK +ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- INTERVENANT_PAYS_NAISS_FK +ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_PAYS_NAISS_FK" FOREIGN KEY ("PAYS_NAISSANCE_ID") + REFERENCES "PAYS" ("ID") ENABLE; + +-- INTERVENANT_PAYS_NAT_FK +ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_PAYS_NAT_FK" FOREIGN KEY ("PAYS_NATIONALITE_ID") + REFERENCES "PAYS" ("ID") ENABLE; + +-- INTERVENANT_SAISIE_INTERV_FK +ALTER TABLE "INTERVENANT_SAISIE" ADD CONSTRAINT "INTERVENANT_SAISIE_INTERV_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- INTERVENANT_SOURCE_FK +ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- INTERVENANT_STATUT_FK +ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_STATUT_FK" FOREIGN KEY ("STATUT_ID") + REFERENCES "STATUT_INTERVENANT" ("ID") ENABLE; + +-- INTERVENANT_STRUCTURE_FK +ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- IS_STATUT_INTERVENANT_FK +ALTER TABLE "INTERVENANT_SAISIE" ADD CONSTRAINT "IS_STATUT_INTERVENANT_FK" FOREIGN KEY ("STATUT_ID") + REFERENCES "STATUT_INTERVENANT" ("ID") ENABLE; + +-- LIEN_HCFK +ALTER TABLE "LIEN" ADD CONSTRAINT "LIEN_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- LIEN_HDFK +ALTER TABLE "LIEN" ADD CONSTRAINT "LIEN_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- LIEN_HMFK +ALTER TABLE "LIEN" ADD CONSTRAINT "LIEN_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- LIEN_NOEUD_INF_FK +ALTER TABLE "LIEN" ADD CONSTRAINT "LIEN_NOEUD_INF_FK" FOREIGN KEY ("NOEUD_INF_ID") + REFERENCES "NOEUD" ("ID") ON DELETE CASCADE ENABLE; + +-- LIEN_NOEUD_SUP_FK +ALTER TABLE "LIEN" ADD CONSTRAINT "LIEN_NOEUD_SUP_FK" FOREIGN KEY ("NOEUD_SUP_ID") + REFERENCES "NOEUD" ("ID") ON DELETE CASCADE ENABLE; + +-- LIEN_SOURCE_FK +ALTER TABLE "LIEN" ADD CONSTRAINT "LIEN_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ENABLE; + +-- LIEN_STRUCTURE_FK +ALTER TABLE "LIEN" ADD CONSTRAINT "LIEN_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- MEP_CENTRE_COUT_FK +ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MEP_CENTRE_COUT_FK" FOREIGN KEY ("CENTRE_COUT_ID") + REFERENCES "CENTRE_COUT" ("ID") ON DELETE CASCADE ENABLE; + +-- MEP_DOMAINE_FONCTIONNEL_FK +ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MEP_DOMAINE_FONCTIONNEL_FK" FOREIGN KEY ("DOMAINE_FONCTIONNEL_ID") + REFERENCES "DOMAINE_FONCTIONNEL" ("ID") ENABLE; + +-- MEP_FR_SERVICE_FK +ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MEP_FR_SERVICE_FK" FOREIGN KEY ("FORMULE_RES_SERVICE_ID") + REFERENCES "FORMULE_RESULTAT_SERVICE" ("ID") ENABLE; + +-- MEP_FR_SERVICE_REF_FK +ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MEP_FR_SERVICE_REF_FK" FOREIGN KEY ("FORMULE_RES_SERVICE_REF_ID") + REFERENCES "FORMULE_RESULTAT_SERVICE_REF" ("ID") ENABLE; + +-- MEP_TYPE_HEURES_FK +ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MEP_TYPE_HEURES_FK" FOREIGN KEY ("TYPE_HEURES_ID") + REFERENCES "TYPE_HEURES" ("ID") ON DELETE CASCADE ENABLE; + +-- MISE_EN_PAIEMENT_HCFK +ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MISE_EN_PAIEMENT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- MISE_EN_PAIEMENT_HDFK +ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MISE_EN_PAIEMENT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- MISE_EN_PAIEMENT_HMFK +ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MISE_EN_PAIEMENT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- MISE_EN_PAIEMENT_PERIODE_FK +ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MISE_EN_PAIEMENT_PERIODE_FK" FOREIGN KEY ("PERIODE_PAIEMENT_ID") + REFERENCES "PERIODE" ("ID") ENABLE; + +-- MISE_EN_PAIEMENT_VALIDATION_FK +ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MISE_EN_PAIEMENT_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") + REFERENCES "VALIDATION" ("ID") ON DELETE CASCADE ENABLE; + +-- MODIFICATION_SERVICE_DU_HCFK +ALTER TABLE "MODIFICATION_SERVICE_DU" ADD CONSTRAINT "MODIFICATION_SERVICE_DU_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- MODIFICATION_SERVICE_DU_HDFK +ALTER TABLE "MODIFICATION_SERVICE_DU" ADD CONSTRAINT "MODIFICATION_SERVICE_DU_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- MODIFICATION_SERVICE_DU_HMFK +ALTER TABLE "MODIFICATION_SERVICE_DU" ADD CONSTRAINT "MODIFICATION_SERVICE_DU_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- MODULATEUR_HCFK +ALTER TABLE "MODULATEUR" ADD CONSTRAINT "MODULATEUR_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- MODULATEUR_HDFK +ALTER TABLE "MODULATEUR" ADD CONSTRAINT "MODULATEUR_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- MODULATEUR_HMFK +ALTER TABLE "MODULATEUR" ADD CONSTRAINT "MODULATEUR_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- MODULATEUR_TYPE_MODULATEUR_FK +ALTER TABLE "MODULATEUR" ADD CONSTRAINT "MODULATEUR_TYPE_MODULATEUR_FK" FOREIGN KEY ("TYPE_MODULATEUR_ID") + REFERENCES "TYPE_MODULATEUR" ("ID") ON DELETE CASCADE ENABLE; + +-- MOTIF_MODIFICATION_SERVIC_HCFK +ALTER TABLE "MOTIF_MODIFICATION_SERVICE" ADD CONSTRAINT "MOTIF_MODIFICATION_SERVIC_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- MOTIF_MODIFICATION_SERVIC_HDFK +ALTER TABLE "MOTIF_MODIFICATION_SERVICE" ADD CONSTRAINT "MOTIF_MODIFICATION_SERVIC_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- MOTIF_MODIFICATION_SERVIC_HMFK +ALTER TABLE "MOTIF_MODIFICATION_SERVICE" ADD CONSTRAINT "MOTIF_MODIFICATION_SERVIC_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- MOTIF_NON_PAIEMENT_HCFK +ALTER TABLE "MOTIF_NON_PAIEMENT" ADD CONSTRAINT "MOTIF_NON_PAIEMENT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- MOTIF_NON_PAIEMENT_HDFK +ALTER TABLE "MOTIF_NON_PAIEMENT" ADD CONSTRAINT "MOTIF_NON_PAIEMENT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- MOTIF_NON_PAIEMENT_HMFK +ALTER TABLE "MOTIF_NON_PAIEMENT" ADD CONSTRAINT "MOTIF_NON_PAIEMENT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- MSD_INTERVENANT_FK +ALTER TABLE "MODIFICATION_SERVICE_DU" ADD CONSTRAINT "MSD_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- NOEUD_ANNEE_FK +ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- NOEUD_ELEMENT_PEDAGOGIQUE_FK +ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") + REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + +-- NOEUD_ETAPE_FK +ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_ETAPE_FK" FOREIGN KEY ("ETAPE_ID") + REFERENCES "ETAPE" ("ID") ON DELETE CASCADE ENABLE; + +-- NOEUD_HCFK +ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- NOEUD_HDFK +ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- NOEUD_HMFK +ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- NOEUD_SOURCE_FK +ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ENABLE; + +-- NOEUD_STRUCTURE_FK +ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- NOTIF_INDICATEUR_IFK +ALTER TABLE "NOTIFICATION_INDICATEUR" ADD CONSTRAINT "NOTIF_INDICATEUR_IFK" FOREIGN KEY ("INDICATEUR_ID") + REFERENCES "INDICATEUR" ("ID") ON DELETE CASCADE ENABLE; + +-- PARAMETRE_HCFK +ALTER TABLE "PARAMETRE" ADD CONSTRAINT "PARAMETRE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- PARAMETRE_HDFK +ALTER TABLE "PARAMETRE" ADD CONSTRAINT "PARAMETRE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- PARAMETRE_HMFK +ALTER TABLE "PARAMETRE" ADD CONSTRAINT "PARAMETRE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- PAYS_HCFK +ALTER TABLE "PAYS" ADD CONSTRAINT "PAYS_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- PAYS_HDFK +ALTER TABLE "PAYS" ADD CONSTRAINT "PAYS_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- PAYS_HMFK +ALTER TABLE "PAYS" ADD CONSTRAINT "PAYS_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- PAYS_SOURCE_FK +ALTER TABLE "PAYS" ADD CONSTRAINT "PAYS_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- PERIODE_HCFK +ALTER TABLE "PERIODE" ADD CONSTRAINT "PERIODE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- PERIODE_HDFK +ALTER TABLE "PERIODE" ADD CONSTRAINT "PERIODE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- PERIODE_HMFK +ALTER TABLE "PERIODE" ADD CONSTRAINT "PERIODE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- PIECE_JOINTE_FICHIER_FFK +ALTER TABLE "PIECE_JOINTE_FICHIER" ADD CONSTRAINT "PIECE_JOINTE_FICHIER_FFK" FOREIGN KEY ("FICHIER_ID") + REFERENCES "FICHIER" ("ID") ENABLE; + +-- PIECE_JOINTE_FICHIER_PJFK +ALTER TABLE "PIECE_JOINTE_FICHIER" ADD CONSTRAINT "PIECE_JOINTE_FICHIER_PJFK" FOREIGN KEY ("PIECE_JOINTE_ID") + REFERENCES "PIECE_JOINTE" ("ID") ON DELETE CASCADE ENABLE; + +-- PIECE_JOINTE_HCFK +ALTER TABLE "PIECE_JOINTE" ADD CONSTRAINT "PIECE_JOINTE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- PIECE_JOINTE_HDFK +ALTER TABLE "PIECE_JOINTE" ADD CONSTRAINT "PIECE_JOINTE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- PIECE_JOINTE_HMFK +ALTER TABLE "PIECE_JOINTE" ADD CONSTRAINT "PIECE_JOINTE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- PIECE_JOINTE_INTERVENANT_FK +ALTER TABLE "PIECE_JOINTE" ADD CONSTRAINT "PIECE_JOINTE_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ENABLE; + +-- PIECE_JOINTE_VFK +ALTER TABLE "PIECE_JOINTE" ADD CONSTRAINT "PIECE_JOINTE_VFK" FOREIGN KEY ("VALIDATION_ID") + REFERENCES "VALIDATION" ("ID") ON DELETE SET NULL ENABLE; + +-- PJ_TYPE_PIECE_JOINTE_FK +ALTER TABLE "PIECE_JOINTE" ADD CONSTRAINT "PJ_TYPE_PIECE_JOINTE_FK" FOREIGN KEY ("TYPE_PIECE_JOINTE_ID") + REFERENCES "TYPE_PIECE_JOINTE" ("ID") ON DELETE CASCADE ENABLE; + +-- PLAFONDAPP_ANNEE_DFK +ALTER TABLE "PLAFOND_APPLICATION" ADD CONSTRAINT "PLAFONDAPP_ANNEE_DFK" FOREIGN KEY ("ANNEE_DEBUT_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- PLAFONDAPP_ANNEE_FFK +ALTER TABLE "PLAFOND_APPLICATION" ADD CONSTRAINT "PLAFONDAPP_ANNEE_FFK" FOREIGN KEY ("ANNEE_FIN_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- PLAFONDAPP_PLAFOND_ETAT_FK +ALTER TABLE "PLAFOND_APPLICATION" ADD CONSTRAINT "PLAFONDAPP_PLAFOND_ETAT_FK" FOREIGN KEY ("PLAFOND_ETAT_ID") + REFERENCES "PLAFOND_ETAT" ("ID") ON DELETE CASCADE ENABLE; + +-- PLAFONDAPP_PLAFOND_FK +ALTER TABLE "PLAFOND_APPLICATION" ADD CONSTRAINT "PLAFONDAPP_PLAFOND_FK" FOREIGN KEY ("PLAFOND_ID") + REFERENCES "PLAFOND" ("ID") ON DELETE CASCADE ENABLE; + +-- PLAFONDAPP_TVH_FK +ALTER TABLE "PLAFOND_APPLICATION" ADD CONSTRAINT "PLAFONDAPP_TVH_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") + REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + +-- PRIVILEGE_CATEGORIE_FK +ALTER TABLE "PRIVILEGE" ADD CONSTRAINT "PRIVILEGE_CATEGORIE_FK" FOREIGN KEY ("CATEGORIE_ID") + REFERENCES "CATEGORIE_PRIVILEGE" ("ID") ON DELETE CASCADE ENABLE; + +-- ROLE_HCFK +ALTER TABLE "ROLE" ADD CONSTRAINT "ROLE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ROLE_HDFK +ALTER TABLE "ROLE" ADD CONSTRAINT "ROLE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ROLE_HMFK +ALTER TABLE "ROLE" ADD CONSTRAINT "ROLE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- ROLE_PERIMETRE_FK +ALTER TABLE "ROLE" ADD CONSTRAINT "ROLE_PERIMETRE_FK" FOREIGN KEY ("PERIMETRE_ID") + REFERENCES "PERIMETRE" ("ID") ENABLE; + +-- ROLE_PRIVILEGE_PRIVILEGE_FK +ALTER TABLE "ROLE_PRIVILEGE" ADD CONSTRAINT "ROLE_PRIVILEGE_PRIVILEGE_FK" FOREIGN KEY ("PRIVILEGE_ID") + REFERENCES "PRIVILEGE" ("ID") ON DELETE CASCADE ENABLE; + +-- ROLE_PRIVILEGE_ROLE_FK +ALTER TABLE "ROLE_PRIVILEGE" ADD CONSTRAINT "ROLE_PRIVILEGE_ROLE_FK" FOREIGN KEY ("ROLE_ID") + REFERENCES "ROLE" ("ID") ON DELETE CASCADE ENABLE; + +-- RSV_TYPE_INTERVENANT_FK +ALTER TABLE "REGLE_STRUCTURE_VALIDATION" ADD CONSTRAINT "RSV_TYPE_INTERVENANT_FK" FOREIGN KEY ("TYPE_INTERVENANT_ID") + REFERENCES "TYPE_INTERVENANT" ("ID") ENABLE; + +-- RSV_TYPE_VOLUME_HORAIRE_FK +ALTER TABLE "REGLE_STRUCTURE_VALIDATION" ADD CONSTRAINT "RSV_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") + REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ENABLE; + +-- SCENARIO_HCFK +ALTER TABLE "SCENARIO" ADD CONSTRAINT "SCENARIO_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SCENARIO_HDFK +ALTER TABLE "SCENARIO" ADD CONSTRAINT "SCENARIO_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SCENARIO_HMFK +ALTER TABLE "SCENARIO" ADD CONSTRAINT "SCENARIO_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SCENARIO_LIEN_HCFK +ALTER TABLE "SCENARIO_LIEN" ADD CONSTRAINT "SCENARIO_LIEN_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SCENARIO_LIEN_HDFK +ALTER TABLE "SCENARIO_LIEN" ADD CONSTRAINT "SCENARIO_LIEN_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SCENARIO_LIEN_HMFK +ALTER TABLE "SCENARIO_LIEN" ADD CONSTRAINT "SCENARIO_LIEN_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SCENARIO_LIEN_LIEN_FK +ALTER TABLE "SCENARIO_LIEN" ADD CONSTRAINT "SCENARIO_LIEN_LIEN_FK" FOREIGN KEY ("LIEN_ID") + REFERENCES "LIEN" ("ID") ON DELETE CASCADE ENABLE; + +-- SCENARIO_LIEN_SCENARIO_FK +ALTER TABLE "SCENARIO_LIEN" ADD CONSTRAINT "SCENARIO_LIEN_SCENARIO_FK" FOREIGN KEY ("SCENARIO_ID") + REFERENCES "SCENARIO" ("ID") ON DELETE CASCADE ENABLE; + +-- SCENARIO_LIEN_SOURCE_FK +ALTER TABLE "SCENARIO_LIEN" ADD CONSTRAINT "SCENARIO_LIEN_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ENABLE; + +-- SCENARIO_NOEUD_HCFK +ALTER TABLE "SCENARIO_NOEUD" ADD CONSTRAINT "SCENARIO_NOEUD_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SCENARIO_NOEUD_HDFK +ALTER TABLE "SCENARIO_NOEUD" ADD CONSTRAINT "SCENARIO_NOEUD_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SCENARIO_NOEUD_HMFK +ALTER TABLE "SCENARIO_NOEUD" ADD CONSTRAINT "SCENARIO_NOEUD_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SCENARIO_NOEUD_NOEUD_FK +ALTER TABLE "SCENARIO_NOEUD" ADD CONSTRAINT "SCENARIO_NOEUD_NOEUD_FK" FOREIGN KEY ("NOEUD_ID") + REFERENCES "NOEUD" ("ID") ON DELETE CASCADE ENABLE; + +-- SCENARIO_NOEUD_SCENARIO_FK +ALTER TABLE "SCENARIO_NOEUD" ADD CONSTRAINT "SCENARIO_NOEUD_SCENARIO_FK" FOREIGN KEY ("SCENARIO_ID") + REFERENCES "SCENARIO" ("ID") ON DELETE CASCADE ENABLE; + +-- SCENARIO_NOEUD_SOURCE_FK +ALTER TABLE "SCENARIO_NOEUD" ADD CONSTRAINT "SCENARIO_NOEUD_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ENABLE; + +-- SCENARIO_STRUCTURE_FK +ALTER TABLE "SCENARIO" ADD CONSTRAINT "SCENARIO_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- SERVICE_ELEMENT_PEDAGOGIQUE_FK +ALTER TABLE "SERVICE" ADD CONSTRAINT "SERVICE_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") + REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ENABLE; + +-- SERVICE_ETABLISSEMENT_FK +ALTER TABLE "SERVICE" ADD CONSTRAINT "SERVICE_ETABLISSEMENT_FK" FOREIGN KEY ("ETABLISSEMENT_ID") + REFERENCES "ETABLISSEMENT" ("ID") ENABLE; + +-- SERVICE_HCFK +ALTER TABLE "SERVICE" ADD CONSTRAINT "SERVICE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SERVICE_HDFK +ALTER TABLE "SERVICE" ADD CONSTRAINT "SERVICE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SERVICE_HMFK +ALTER TABLE "SERVICE" ADD CONSTRAINT "SERVICE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SERVICE_INTERVENANT_FK +ALTER TABLE "SERVICE" ADD CONSTRAINT "SERVICE_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ENABLE; + +-- SERVICE_REFERENTIEL_HCFK +ALTER TABLE "SERVICE_REFERENTIEL" ADD CONSTRAINT "SERVICE_REFERENTIEL_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SERVICE_REFERENTIEL_HDFK +ALTER TABLE "SERVICE_REFERENTIEL" ADD CONSTRAINT "SERVICE_REFERENTIEL_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SERVICE_REFERENTIEL_HMFK +ALTER TABLE "SERVICE_REFERENTIEL" ADD CONSTRAINT "SERVICE_REFERENTIEL_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SEUIL_CHARGE_ANNEE_FK +ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CHARGE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- SEUIL_CH_GT_FORMATION_FK +ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CH_GT_FORMATION_FK" FOREIGN KEY ("GROUPE_TYPE_FORMATION_ID") + REFERENCES "GROUPE_TYPE_FORMATION" ("ID") ENABLE; + +-- SEUIL_CH_SCENARIO_FK +ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CH_SCENARIO_FK" FOREIGN KEY ("SCENARIO_ID") + REFERENCES "SCENARIO" ("ID") ENABLE; + +-- SEUIL_CH_STRUCTURE_FK +ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CH_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- SEUIL_CH_TYPE_INTERVENTION_FK +ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CH_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") + REFERENCES "TYPE_INTERVENTION" ("ID") ENABLE; + +-- SEUIL_CH_UTILISATEUR_HCFK +ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CH_UTILISATEUR_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SEUIL_CH_UTILISATEUR_HDFK +ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CH_UTILISATEUR_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SEUIL_CH_UTILISATEUR_HMFK +ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CH_UTILISATEUR_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- SNE_ETAPE_FK +ALTER TABLE "SCENARIO_NOEUD_EFFECTIF" ADD CONSTRAINT "SNE_ETAPE_FK" FOREIGN KEY ("ETAPE_ID") + REFERENCES "ETAPE" ("ID") ENABLE; + +-- SNE_SCENARIO_NOEUD_FK +ALTER TABLE "SCENARIO_NOEUD_EFFECTIF" ADD CONSTRAINT "SNE_SCENARIO_NOEUD_FK" FOREIGN KEY ("SCENARIO_NOEUD_ID") + REFERENCES "SCENARIO_NOEUD" ("ID") ON DELETE CASCADE ENABLE; + +-- SNE_TYPE_HEURES_FK +ALTER TABLE "SCENARIO_NOEUD_EFFECTIF" ADD CONSTRAINT "SNE_TYPE_HEURES_FK" FOREIGN KEY ("TYPE_HEURES_ID") + REFERENCES "TYPE_HEURES" ("ID") ON DELETE CASCADE ENABLE; + +-- SNS_SCENARIO_NOEUD_FK +ALTER TABLE "SCENARIO_NOEUD_SEUIL" ADD CONSTRAINT "SNS_SCENARIO_NOEUD_FK" FOREIGN KEY ("SCENARIO_NOEUD_ID") + REFERENCES "SCENARIO_NOEUD" ("ID") ON DELETE CASCADE ENABLE; + +-- SNS_TYPE_INTERVENTION_FK +ALTER TABLE "SCENARIO_NOEUD_SEUIL" ADD CONSTRAINT "SNS_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") + REFERENCES "TYPE_INTERVENTION" ("ID") ON DELETE CASCADE ENABLE; + +-- SRFR_FK +ALTER TABLE "SERVICE_REFERENTIEL" ADD CONSTRAINT "SRFR_FK" FOREIGN KEY ("FONCTION_ID") + REFERENCES "FONCTION_REFERENTIEL" ("ID") ENABLE; + +-- SR_INTERVENANT_FK +ALTER TABLE "SERVICE_REFERENTIEL" ADD CONSTRAINT "SR_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- SR_STRUCTURE_FK +ALTER TABLE "SERVICE_REFERENTIEL" ADD CONSTRAINT "SR_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- STATUT_INTERVENANT_HCFK +ALTER TABLE "STATUT_INTERVENANT" ADD CONSTRAINT "STATUT_INTERVENANT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- STATUT_INTERVENANT_HDFK +ALTER TABLE "STATUT_INTERVENANT" ADD CONSTRAINT "STATUT_INTERVENANT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- STATUT_INTERVENANT_HMFK +ALTER TABLE "STATUT_INTERVENANT" ADD CONSTRAINT "STATUT_INTERVENANT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- STATUT_INTERVENANT_SOURCE_FK +ALTER TABLE "STATUT_INTERVENANT" ADD CONSTRAINT "STATUT_INTERVENANT_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- STATUT_INTERVENANT_TYPE_FK +ALTER TABLE "STATUT_INTERVENANT" ADD CONSTRAINT "STATUT_INTERVENANT_TYPE_FK" FOREIGN KEY ("TYPE_INTERVENANT_ID") + REFERENCES "TYPE_INTERVENANT" ("ID") ENABLE; + +-- STAT_PRIV_PRIVILEGE_FK +ALTER TABLE "STATUT_PRIVILEGE" ADD CONSTRAINT "STAT_PRIV_PRIVILEGE_FK" FOREIGN KEY ("PRIVILEGE_ID") + REFERENCES "PRIVILEGE" ("ID") ON DELETE CASCADE ENABLE; + +-- STAT_PRIV_STATUT_FK +ALTER TABLE "STATUT_PRIVILEGE" ADD CONSTRAINT "STAT_PRIV_STATUT_FK" FOREIGN KEY ("STATUT_ID") + REFERENCES "STATUT_INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- STRUCTURE_HCFK +ALTER TABLE "STRUCTURE" ADD CONSTRAINT "STRUCTURE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- STRUCTURE_HDFK +ALTER TABLE "STRUCTURE" ADD CONSTRAINT "STRUCTURE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- STRUCTURE_HMFK +ALTER TABLE "STRUCTURE" ADD CONSTRAINT "STRUCTURE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- STRUCTURE_SOURCE_FK +ALTER TABLE "STRUCTURE" ADD CONSTRAINT "STRUCTURE_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- TAS_STATUT_INTERVENANT_FK +ALTER TABLE "TYPE_AGREMENT_STATUT" ADD CONSTRAINT "TAS_STATUT_INTERVENANT_FK" FOREIGN KEY ("STATUT_INTERVENANT_ID") + REFERENCES "STATUT_INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TAS_TYPE_AGREMENT_FK +ALTER TABLE "TYPE_AGREMENT_STATUT" ADD CONSTRAINT "TAS_TYPE_AGREMENT_FK" FOREIGN KEY ("TYPE_AGREMENT_ID") + REFERENCES "TYPE_AGREMENT" ("ID") ON DELETE CASCADE ENABLE; + +-- TAUX_HORAIRE_HETD_HCFK +ALTER TABLE "TAUX_HORAIRE_HETD" ADD CONSTRAINT "TAUX_HORAIRE_HETD_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TAUX_HORAIRE_HETD_HDFK +ALTER TABLE "TAUX_HORAIRE_HETD" ADD CONSTRAINT "TAUX_HORAIRE_HETD_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TAUX_HORAIRE_HETD_HMFK +ALTER TABLE "TAUX_HORAIRE_HETD" ADD CONSTRAINT "TAUX_HORAIRE_HETD_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TBCH_ANNEE_FK +ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBCH_ELEMENT_PEDAGOGIQUE_FK +ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") + REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBCH_ETAPE_FK +ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_ETAPE_FK" FOREIGN KEY ("ETAPE_ID") + REFERENCES "ETAPE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBCH_ETAPE_FKV1 +ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_ETAPE_FKV1" FOREIGN KEY ("ETAPE_ENS_ID") + REFERENCES "ETAPE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBCH_GROUPE_TYPE_FORMATION_FK +ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_GROUPE_TYPE_FORMATION_FK" FOREIGN KEY ("GROUPE_TYPE_FORMATION_ID") + REFERENCES "GROUPE_TYPE_FORMATION" ("ID") ON DELETE CASCADE ENABLE; + +-- TBCH_NOEUD_FK +ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_NOEUD_FK" FOREIGN KEY ("NOEUD_ID") + REFERENCES "NOEUD" ("ID") ON DELETE CASCADE ENABLE; + +-- TBCH_SCENARIO_FK +ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_SCENARIO_FK" FOREIGN KEY ("SCENARIO_ID") + REFERENCES "SCENARIO" ("ID") ON DELETE CASCADE ENABLE; + +-- TBCH_STRUCTURE_FK +ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBCH_TYPE_HEURES_FK +ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_TYPE_HEURES_FK" FOREIGN KEY ("TYPE_HEURES_ID") + REFERENCES "TYPE_HEURES" ("ID") ON DELETE CASCADE ENABLE; + +-- TBCH_TYPE_INTERVENTION_FK +ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") + REFERENCES "TYPE_INTERVENTION" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_AGR_AGREMENT_FK +ALTER TABLE "TBL_AGREMENT" ADD CONSTRAINT "TBL_AGR_AGREMENT_FK" FOREIGN KEY ("AGREMENT_ID") + REFERENCES "AGREMENT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_AGR_ANNEE_FK +ALTER TABLE "TBL_AGREMENT" ADD CONSTRAINT "TBL_AGR_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_AGR_INTERVENANT_FK +ALTER TABLE "TBL_AGREMENT" ADD CONSTRAINT "TBL_AGR_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_AGR_STRUCTURE_FK +ALTER TABLE "TBL_AGREMENT" ADD CONSTRAINT "TBL_AGR_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_AGR_TYPE_AGREMENT_FK +ALTER TABLE "TBL_AGREMENT" ADD CONSTRAINT "TBL_AGR_TYPE_AGREMENT_FK" FOREIGN KEY ("TYPE_AGREMENT_ID") + REFERENCES "TYPE_AGREMENT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_CLOTURE_REALISE_ANNEE_FK +ALTER TABLE "TBL_CLOTURE_REALISE" ADD CONSTRAINT "TBL_CLOTURE_REALISE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_CLO_REAL_INTERVENANT_FK +ALTER TABLE "TBL_CLOTURE_REALISE" ADD CONSTRAINT "TBL_CLO_REAL_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_CONTRAT_ANNEE_FK +ALTER TABLE "TBL_CONTRAT" ADD CONSTRAINT "TBL_CONTRAT_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_CONTRAT_INTERVENANT_FK +ALTER TABLE "TBL_CONTRAT" ADD CONSTRAINT "TBL_CONTRAT_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_CONTRAT_STRUCTURE_FK +ALTER TABLE "TBL_CONTRAT" ADD CONSTRAINT "TBL_CONTRAT_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_CSD_ANNEE_FK +ALTER TABLE "TBL_CHARGENS_SEUILS_DEF" ADD CONSTRAINT "TBL_CSD_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- TBL_CSD_GTF_FK +ALTER TABLE "TBL_CHARGENS_SEUILS_DEF" ADD CONSTRAINT "TBL_CSD_GTF_FK" FOREIGN KEY ("GROUPE_TYPE_FORMATION_ID") + REFERENCES "GROUPE_TYPE_FORMATION" ("ID") ENABLE; + +-- TBL_CSD_SCENARIO_FK +ALTER TABLE "TBL_CHARGENS_SEUILS_DEF" ADD CONSTRAINT "TBL_CSD_SCENARIO_FK" FOREIGN KEY ("SCENARIO_ID") + REFERENCES "SCENARIO" ("ID") ENABLE; + +-- TBL_CSD_STRUCTURE_FK +ALTER TABLE "TBL_CHARGENS_SEUILS_DEF" ADD CONSTRAINT "TBL_CSD_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- TBL_CSD_TYPE_INTERVENTION_FK +ALTER TABLE "TBL_CHARGENS_SEUILS_DEF" ADD CONSTRAINT "TBL_CSD_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") + REFERENCES "TYPE_INTERVENTION" ("ID") ENABLE; + +-- TBL_DEMS_TBL_FK +ALTER TABLE "TBL_DEMS" ADD CONSTRAINT "TBL_DEMS_TBL_FK" FOREIGN KEY ("TBL_NAME") + REFERENCES "TBL" ("TBL_NAME") ON DELETE CASCADE ENABLE; + +-- TBL_DMLIQ_ANNEE_FK +ALTER TABLE "TBL_DMEP_LIQUIDATION" ADD CONSTRAINT "TBL_DMLIQ_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_DMLIQ_STRUCTURE_FK +ALTER TABLE "TBL_DMEP_LIQUIDATION" ADD CONSTRAINT "TBL_DMLIQ_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_DMLIQ_TYPE_RESSOURCE_FK +ALTER TABLE "TBL_DMEP_LIQUIDATION" ADD CONSTRAINT "TBL_DMLIQ_TYPE_RESSOURCE_FK" FOREIGN KEY ("TYPE_RESSOURCE_ID") + REFERENCES "TYPE_RESSOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_DOSSIER_ANNEE_FK +ALTER TABLE "TBL_DOSSIER" ADD CONSTRAINT "TBL_DOSSIER_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_DOSSIER_DOSSIER_FK +ALTER TABLE "TBL_DOSSIER" ADD CONSTRAINT "TBL_DOSSIER_DOSSIER_FK" FOREIGN KEY ("DOSSIER_ID") + REFERENCES "DOSSIER" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_DOSSIER_INTERVENANT_FK +ALTER TABLE "TBL_DOSSIER" ADD CONSTRAINT "TBL_DOSSIER_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_DOSSIER_VALIDATION_FK +ALTER TABLE "TBL_DOSSIER" ADD CONSTRAINT "TBL_DOSSIER_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") + REFERENCES "VALIDATION" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_LIEN_LIEN_FK +ALTER TABLE "TBL_LIEN" ADD CONSTRAINT "TBL_LIEN_LIEN_FK" FOREIGN KEY ("LIEN_ID") + REFERENCES "LIEN" ("ID") ENABLE; + +-- TBL_LIEN_NOEUD_INF_FK +ALTER TABLE "TBL_LIEN" ADD CONSTRAINT "TBL_LIEN_NOEUD_INF_FK" FOREIGN KEY ("NOEUD_INF_ID") + REFERENCES "NOEUD" ("ID") ENABLE; + +-- TBL_LIEN_NOEUD_SUP_FK +ALTER TABLE "TBL_LIEN" ADD CONSTRAINT "TBL_LIEN_NOEUD_SUP_FK" FOREIGN KEY ("NOEUD_SUP_ID") + REFERENCES "NOEUD" ("ID") ENABLE; + +-- TBL_LIEN_SCENARIO_FK +ALTER TABLE "TBL_LIEN" ADD CONSTRAINT "TBL_LIEN_SCENARIO_FK" FOREIGN KEY ("SCENARIO_ID") + REFERENCES "SCENARIO" ("ID") ENABLE; + +-- TBL_LIEN_SCENARIO_LIEN_FK +ALTER TABLE "TBL_LIEN" ADD CONSTRAINT "TBL_LIEN_SCENARIO_LIEN_FK" FOREIGN KEY ("SCENARIO_LIEN_ID") + REFERENCES "SCENARIO_LIEN" ("ID") ENABLE; + +-- TBL_LIEN_STRUCTURE_FK +ALTER TABLE "TBL_LIEN" ADD CONSTRAINT "TBL_LIEN_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- TBL_PAIEMENT_ANNEE_FK +ALTER TABLE "TBL_PAIEMENT" ADD CONSTRAINT "TBL_PAIEMENT_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PAIEMENT_FRSR_FK +ALTER TABLE "TBL_PAIEMENT" ADD CONSTRAINT "TBL_PAIEMENT_FRSR_FK" FOREIGN KEY ("FORMULE_RES_SERVICE_REF_ID") + REFERENCES "FORMULE_RESULTAT_SERVICE_REF" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PAIEMENT_FRS_FK +ALTER TABLE "TBL_PAIEMENT" ADD CONSTRAINT "TBL_PAIEMENT_FRS_FK" FOREIGN KEY ("FORMULE_RES_SERVICE_ID") + REFERENCES "FORMULE_RESULTAT_SERVICE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PAIEMENT_INTERVENANT_FK +ALTER TABLE "TBL_PAIEMENT" ADD CONSTRAINT "TBL_PAIEMENT_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PAIEMENT_MEP_FK +ALTER TABLE "TBL_PAIEMENT" ADD CONSTRAINT "TBL_PAIEMENT_MEP_FK" FOREIGN KEY ("MISE_EN_PAIEMENT_ID") + REFERENCES "MISE_EN_PAIEMENT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PAIEMENT_PERIODE_FK +ALTER TABLE "TBL_PAIEMENT" ADD CONSTRAINT "TBL_PAIEMENT_PERIODE_FK" FOREIGN KEY ("PERIODE_PAIEMENT_ID") + REFERENCES "PERIODE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PAIEMENT_STRUCTURE_FK +ALTER TABLE "TBL_PAIEMENT" ADD CONSTRAINT "TBL_PAIEMENT_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PIECE_JOINTE_ANNEE_FK +ALTER TABLE "TBL_PIECE_JOINTE" ADD CONSTRAINT "TBL_PIECE_JOINTE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PJD_ANNEE_FK +ALTER TABLE "TBL_PIECE_JOINTE_DEMANDE" ADD CONSTRAINT "TBL_PJD_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PJD_INTERVENANT_FK +ALTER TABLE "TBL_PIECE_JOINTE_DEMANDE" ADD CONSTRAINT "TBL_PJD_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PJD_TYPE_PIECE_JOINTE_FK +ALTER TABLE "TBL_PIECE_JOINTE_DEMANDE" ADD CONSTRAINT "TBL_PJD_TYPE_PIECE_JOINTE_FK" FOREIGN KEY ("TYPE_PIECE_JOINTE_ID") + REFERENCES "TYPE_PIECE_JOINTE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PJF_ANNEE_FK +ALTER TABLE "TBL_PIECE_JOINTE_FOURNIE" ADD CONSTRAINT "TBL_PJF_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PJF_FICHIER_FK +ALTER TABLE "TBL_PIECE_JOINTE_FOURNIE" ADD CONSTRAINT "TBL_PJF_FICHIER_FK" FOREIGN KEY ("FICHIER_ID") + REFERENCES "FICHIER" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PJF_INTERVENANT_FK +ALTER TABLE "TBL_PIECE_JOINTE_FOURNIE" ADD CONSTRAINT "TBL_PJF_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PJF_PIECE_JOINTE_FK +ALTER TABLE "TBL_PIECE_JOINTE_FOURNIE" ADD CONSTRAINT "TBL_PJF_PIECE_JOINTE_FK" FOREIGN KEY ("PIECE_JOINTE_ID") + REFERENCES "PIECE_JOINTE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PJF_TYPE_PIECE_JOINTE_FK +ALTER TABLE "TBL_PIECE_JOINTE_FOURNIE" ADD CONSTRAINT "TBL_PJF_TYPE_PIECE_JOINTE_FK" FOREIGN KEY ("TYPE_PIECE_JOINTE_ID") + REFERENCES "TYPE_PIECE_JOINTE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PJF_VALIDATION_FK +ALTER TABLE "TBL_PIECE_JOINTE_FOURNIE" ADD CONSTRAINT "TBL_PJF_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") + REFERENCES "VALIDATION" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PJ_INTERVENANT_FK +ALTER TABLE "TBL_PIECE_JOINTE" ADD CONSTRAINT "TBL_PJ_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_PJ_TYPE_PIECE_JOINTE_FK +ALTER TABLE "TBL_PIECE_JOINTE" ADD CONSTRAINT "TBL_PJ_TYPE_PIECE_JOINTE_FK" FOREIGN KEY ("TYPE_PIECE_JOINTE_ID") + REFERENCES "TYPE_PIECE_JOINTE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SERVICE_ANNEE_FK +ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SERVICE_ELEMENT_FK +ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_ELEMENT_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") + REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SERVICE_ETAPE_FK +ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_ETAPE_FK" FOREIGN KEY ("ETAPE_ID") + REFERENCES "ETAPE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SERVICE_INTERVENANT_FK +ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SERVICE_PERIODE_EP_FK +ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_PERIODE_EP_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_PERIODE_ID") + REFERENCES "PERIODE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SERVICE_REF_ANNEE_FK +ALTER TABLE "TBL_SERVICE_REFERENTIEL" ADD CONSTRAINT "TBL_SERVICE_REF_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SERVICE_REF_INTERVENANT_FK +ALTER TABLE "TBL_SERVICE_REFERENTIEL" ADD CONSTRAINT "TBL_SERVICE_REF_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SERVICE_REF_STRUCTURE_FK +ALTER TABLE "TBL_SERVICE_REFERENTIEL" ADD CONSTRAINT "TBL_SERVICE_REF_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SERVICE_REF_TVH_FK +ALTER TABLE "TBL_SERVICE_REFERENTIEL" ADD CONSTRAINT "TBL_SERVICE_REF_TVH_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") + REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SERVICE_SAISIE_ANNEE_FK +ALTER TABLE "TBL_SERVICE_SAISIE" ADD CONSTRAINT "TBL_SERVICE_SAISIE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SERVICE_SERVICE_FK +ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_SERVICE_FK" FOREIGN KEY ("SERVICE_ID") + REFERENCES "SERVICE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SERVICE_STRUCTURE_FK +ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SERVICE_STRUCTURE_FKV1 +ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_STRUCTURE_FKV1" FOREIGN KEY ("INTERVENANT_STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SERVICE_TINTERVENANT_FK +ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_TINTERVENANT_FK" FOREIGN KEY ("TYPE_INTERVENANT_ID") + REFERENCES "TYPE_INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SERVICE_TVH_FK +ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_TVH_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") + REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_SRV_SAISIE_INTERVENANT_FK +ALTER TABLE "TBL_SERVICE_SAISIE" ADD CONSTRAINT "TBL_SRV_SAISIE_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_WORKFLOW_ANNEE_FK +ALTER TABLE "TBL_WORKFLOW" ADD CONSTRAINT "TBL_WORKFLOW_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_WORKFLOW_EFK +ALTER TABLE "TBL_WORKFLOW" ADD CONSTRAINT "TBL_WORKFLOW_EFK" FOREIGN KEY ("ETAPE_ID") + REFERENCES "WF_ETAPE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_WORKFLOW_IFK +ALTER TABLE "TBL_WORKFLOW" ADD CONSTRAINT "TBL_WORKFLOW_IFK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_WORKFLOW_SFK +ALTER TABLE "TBL_WORKFLOW" ADD CONSTRAINT "TBL_WORKFLOW_SFK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_WORKFLOW_STATUT_FK +ALTER TABLE "TBL_WORKFLOW" ADD CONSTRAINT "TBL_WORKFLOW_STATUT_FK" FOREIGN KEY ("STATUT_INTERVENANT_ID") + REFERENCES "STATUT_INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TBL_WORKFLOW_TINTERVENANT_FK +ALTER TABLE "TBL_WORKFLOW" ADD CONSTRAINT "TBL_WORKFLOW_TINTERVENANT_FK" FOREIGN KEY ("TYPE_INTERVENANT_ID") + REFERENCES "TYPE_INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TD_TYPE_RESSOURCE_FK +ALTER TABLE "TYPE_DOTATION" ADD CONSTRAINT "TD_TYPE_RESSOURCE_FK" FOREIGN KEY ("TYPE_RESSOURCE_ID") + REFERENCES "TYPE_RESSOURCE" ("ID") ENABLE; + +-- TIEP_ELEMENT_PEDAGOGIQUE_FK +ALTER TABLE "TYPE_INTERVENTION_EP" ADD CONSTRAINT "TIEP_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") + REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + +-- TIEP_TYPE_INTERVENTION_FK +ALTER TABLE "TYPE_INTERVENTION_EP" ADD CONSTRAINT "TIEP_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") + REFERENCES "TYPE_INTERVENTION" ("ID") ON DELETE CASCADE ENABLE; + +-- TIS_ANNEE_DEBUT_FK +ALTER TABLE "TYPE_INTERVENTION_STRUCTURE" ADD CONSTRAINT "TIS_ANNEE_DEBUT_FK" FOREIGN KEY ("ANNEE_DEBUT_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- TIS_ANNEE_FIN_FK +ALTER TABLE "TYPE_INTERVENTION_STRUCTURE" ADD CONSTRAINT "TIS_ANNEE_FIN_FK" FOREIGN KEY ("ANNEE_FIN_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- TIS_STRUCTURE_FK +ALTER TABLE "TYPE_INTERVENTION_STRUCTURE" ADD CONSTRAINT "TIS_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- TIS_TYPE_INTERVENTION_FK +ALTER TABLE "TYPE_INTERVENTION_STRUCTURE" ADD CONSTRAINT "TIS_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") + REFERENCES "TYPE_INTERVENTION" ("ID") ON DELETE CASCADE ENABLE; + +-- TI_TYPE_INTERVENTION_FK +ALTER TABLE "TYPE_INTERVENTION" ADD CONSTRAINT "TI_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_MAQUETTE_ID") + REFERENCES "TYPE_INTERVENTION" ("ID") ENABLE; + +-- TME_ELEMENT_PEDAGOGIQUE_FK +ALTER TABLE "TYPE_MODULATEUR_EP" ADD CONSTRAINT "TME_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") + REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + +-- TME_SOURCE_FK +ALTER TABLE "TYPE_MODULATEUR_EP" ADD CONSTRAINT "TME_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- TME_TYPE_MODULATEUR_FK +ALTER TABLE "TYPE_MODULATEUR_EP" ADD CONSTRAINT "TME_TYPE_MODULATEUR_FK" FOREIGN KEY ("TYPE_MODULATEUR_ID") + REFERENCES "TYPE_MODULATEUR" ("ID") ON DELETE CASCADE ENABLE; + +-- TMS_ANNEE_DEBUT_FK +ALTER TABLE "TYPE_MODULATEUR_STRUCTURE" ADD CONSTRAINT "TMS_ANNEE_DEBUT_FK" FOREIGN KEY ("ANNEE_DEBUT_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- TMS_ANNEE_FIN_FK +ALTER TABLE "TYPE_MODULATEUR_STRUCTURE" ADD CONSTRAINT "TMS_ANNEE_FIN_FK" FOREIGN KEY ("ANNEE_FIN_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- TMS_STRUCTURE_FK +ALTER TABLE "TYPE_MODULATEUR_STRUCTURE" ADD CONSTRAINT "TMS_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ENABLE; + +-- TMS_TYPE_MODUL_FK +ALTER TABLE "TYPE_MODULATEUR_STRUCTURE" ADD CONSTRAINT "TMS_TYPE_MODUL_FK" FOREIGN KEY ("TYPE_MODULATEUR_ID") + REFERENCES "TYPE_MODULATEUR" ("ID") ON DELETE CASCADE ENABLE; + +-- TPJS_ANNEE_DEB_FK +ALTER TABLE "TYPE_PIECE_JOINTE_STATUT" ADD CONSTRAINT "TPJS_ANNEE_DEB_FK" FOREIGN KEY ("ANNEE_DEBUT_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TPJS_ANNEE_FIN_FK +ALTER TABLE "TYPE_PIECE_JOINTE_STATUT" ADD CONSTRAINT "TPJS_ANNEE_FIN_FK" FOREIGN KEY ("ANNEE_FIN_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TPJS_STATUT_INTERVENANT_FK +ALTER TABLE "TYPE_PIECE_JOINTE_STATUT" ADD CONSTRAINT "TPJS_STATUT_INTERVENANT_FK" FOREIGN KEY ("STATUT_INTERVENANT_ID") + REFERENCES "STATUT_INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TPJS_TYPE_PIECE_JOINTE_FK +ALTER TABLE "TYPE_PIECE_JOINTE_STATUT" ADD CONSTRAINT "TPJS_TYPE_PIECE_JOINTE_FK" FOREIGN KEY ("TYPE_PIECE_JOINTE_ID") + REFERENCES "TYPE_PIECE_JOINTE" ("ID") ON DELETE CASCADE ENABLE; + +-- TVE_ANNEE_FK +ALTER TABLE "TBL_VALIDATION_ENSEIGNEMENT" ADD CONSTRAINT "TVE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TVE_INTERVENANT_FK +ALTER TABLE "TBL_VALIDATION_ENSEIGNEMENT" ADD CONSTRAINT "TVE_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TVE_SERVICE_FK +ALTER TABLE "TBL_VALIDATION_ENSEIGNEMENT" ADD CONSTRAINT "TVE_SERVICE_FK" FOREIGN KEY ("SERVICE_ID") + REFERENCES "SERVICE" ("ID") ON DELETE CASCADE ENABLE; + +-- TVE_STRUCTURE_FK +ALTER TABLE "TBL_VALIDATION_ENSEIGNEMENT" ADD CONSTRAINT "TVE_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- TVE_TYPE_VOLUME_HORAIRE_FK +ALTER TABLE "TBL_VALIDATION_ENSEIGNEMENT" ADD CONSTRAINT "TVE_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") + REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + +-- TVE_VALIDATION_FK +ALTER TABLE "TBL_VALIDATION_ENSEIGNEMENT" ADD CONSTRAINT "TVE_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") + REFERENCES "VALIDATION" ("ID") ON DELETE CASCADE ENABLE; + +-- TVE_VOLUME_HORAIRE_FK +ALTER TABLE "TBL_VALIDATION_ENSEIGNEMENT" ADD CONSTRAINT "TVE_VOLUME_HORAIRE_FK" FOREIGN KEY ("VOLUME_HORAIRE_ID") + REFERENCES "VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + +-- TVR_ANNEE_FK +ALTER TABLE "TBL_VALIDATION_REFERENTIEL" ADD CONSTRAINT "TVR_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") + REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + +-- TVR_INTERVENANT_FK +ALTER TABLE "TBL_VALIDATION_REFERENTIEL" ADD CONSTRAINT "TVR_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + +-- TVR_SERVICE_REFERENTIEL_FK +ALTER TABLE "TBL_VALIDATION_REFERENTIEL" ADD CONSTRAINT "TVR_SERVICE_REFERENTIEL_FK" FOREIGN KEY ("SERVICE_REFERENTIEL_ID") + REFERENCES "SERVICE_REFERENTIEL" ("ID") ON DELETE CASCADE ENABLE; + +-- TVR_STRUCTURE_FK +ALTER TABLE "TBL_VALIDATION_REFERENTIEL" ADD CONSTRAINT "TVR_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- TVR_TYPE_VOLUME_HORAIRE_FK +ALTER TABLE "TBL_VALIDATION_REFERENTIEL" ADD CONSTRAINT "TVR_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") + REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + +-- TVR_VALIDATION_FK +ALTER TABLE "TBL_VALIDATION_REFERENTIEL" ADD CONSTRAINT "TVR_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") + REFERENCES "VALIDATION" ("ID") ON DELETE CASCADE ENABLE; + +-- TVR_VOLUME_HORAIRE_REF_FK +ALTER TABLE "TBL_VALIDATION_REFERENTIEL" ADD CONSTRAINT "TVR_VOLUME_HORAIRE_REF_FK" FOREIGN KEY ("VOLUME_HORAIRE_REF_ID") + REFERENCES "VOLUME_HORAIRE_REF" ("ID") ON DELETE CASCADE ENABLE; + +-- TYPE_AGREMENT_HCFK +ALTER TABLE "TYPE_AGREMENT" ADD CONSTRAINT "TYPE_AGREMENT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_AGREMENT_HDFK +ALTER TABLE "TYPE_AGREMENT" ADD CONSTRAINT "TYPE_AGREMENT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_AGREMENT_HMFK +ALTER TABLE "TYPE_AGREMENT" ADD CONSTRAINT "TYPE_AGREMENT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_AGREMENT_STATUT_HCFK +ALTER TABLE "TYPE_AGREMENT_STATUT" ADD CONSTRAINT "TYPE_AGREMENT_STATUT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_AGREMENT_STATUT_HDFK +ALTER TABLE "TYPE_AGREMENT_STATUT" ADD CONSTRAINT "TYPE_AGREMENT_STATUT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_AGREMENT_STATUT_HMFK +ALTER TABLE "TYPE_AGREMENT_STATUT" ADD CONSTRAINT "TYPE_AGREMENT_STATUT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_CONTRAT_HCFK +ALTER TABLE "TYPE_CONTRAT" ADD CONSTRAINT "TYPE_CONTRAT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_CONTRAT_HDFK +ALTER TABLE "TYPE_CONTRAT" ADD CONSTRAINT "TYPE_CONTRAT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_CONTRAT_HMFK +ALTER TABLE "TYPE_CONTRAT" ADD CONSTRAINT "TYPE_CONTRAT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_DOTATION_HCFK +ALTER TABLE "TYPE_DOTATION" ADD CONSTRAINT "TYPE_DOTATION_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_DOTATION_HDFK +ALTER TABLE "TYPE_DOTATION" ADD CONSTRAINT "TYPE_DOTATION_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_DOTATION_HMFK +ALTER TABLE "TYPE_DOTATION" ADD CONSTRAINT "TYPE_DOTATION_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_DOTATION_SOURCE_FK +ALTER TABLE "TYPE_DOTATION" ADD CONSTRAINT "TYPE_DOTATION_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- TYPE_FORMATION_GROUPE_FK +ALTER TABLE "TYPE_FORMATION" ADD CONSTRAINT "TYPE_FORMATION_GROUPE_FK" FOREIGN KEY ("GROUPE_ID") + REFERENCES "GROUPE_TYPE_FORMATION" ("ID") ENABLE; + +-- TYPE_FORMATION_HCFK +ALTER TABLE "TYPE_FORMATION" ADD CONSTRAINT "TYPE_FORMATION_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_FORMATION_HDFK +ALTER TABLE "TYPE_FORMATION" ADD CONSTRAINT "TYPE_FORMATION_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_FORMATION_HMFK +ALTER TABLE "TYPE_FORMATION" ADD CONSTRAINT "TYPE_FORMATION_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_FORMATION_SOURCE_FK +ALTER TABLE "TYPE_FORMATION" ADD CONSTRAINT "TYPE_FORMATION_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ENABLE; + +-- TYPE_HEURES_HCFK +ALTER TABLE "TYPE_HEURES" ADD CONSTRAINT "TYPE_HEURES_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_HEURES_HDFK +ALTER TABLE "TYPE_HEURES" ADD CONSTRAINT "TYPE_HEURES_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_HEURES_HMFK +ALTER TABLE "TYPE_HEURES" ADD CONSTRAINT "TYPE_HEURES_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_HEURES_TYPE_HEURES_FK +ALTER TABLE "TYPE_HEURES" ADD CONSTRAINT "TYPE_HEURES_TYPE_HEURES_FK" FOREIGN KEY ("TYPE_HEURES_ELEMENT_ID") + REFERENCES "TYPE_HEURES" ("ID") ON DELETE CASCADE ENABLE; + +-- TYPE_INTERVENANT_HCFK +ALTER TABLE "TYPE_INTERVENANT" ADD CONSTRAINT "TYPE_INTERVENANT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_INTERVENANT_HDFK +ALTER TABLE "TYPE_INTERVENANT" ADD CONSTRAINT "TYPE_INTERVENANT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_INTERVENANT_HMFK +ALTER TABLE "TYPE_INTERVENANT" ADD CONSTRAINT "TYPE_INTERVENANT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_INTERVENTION_ANNEE_FK +ALTER TABLE "TYPE_INTERVENTION" ADD CONSTRAINT "TYPE_INTERVENTION_ANNEE_FK" FOREIGN KEY ("ANNEE_DEBUT_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- TYPE_INTERVENTION_ANNEE_FKV1 +ALTER TABLE "TYPE_INTERVENTION" ADD CONSTRAINT "TYPE_INTERVENTION_ANNEE_FKV1" FOREIGN KEY ("ANNEE_FIN_ID") + REFERENCES "ANNEE" ("ID") ENABLE; + +-- TYPE_INTERVENTION_EP_HCFK +ALTER TABLE "TYPE_INTERVENTION_EP" ADD CONSTRAINT "TYPE_INTERVENTION_EP_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_INTERVENTION_EP_HDFK +ALTER TABLE "TYPE_INTERVENTION_EP" ADD CONSTRAINT "TYPE_INTERVENTION_EP_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_INTERVENTION_EP_HMFK +ALTER TABLE "TYPE_INTERVENTION_EP" ADD CONSTRAINT "TYPE_INTERVENTION_EP_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_INTERVENTION_EP_SOURCE_FK +ALTER TABLE "TYPE_INTERVENTION_EP" ADD CONSTRAINT "TYPE_INTERVENTION_EP_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- TYPE_INTERVENTION_HCFK +ALTER TABLE "TYPE_INTERVENTION" ADD CONSTRAINT "TYPE_INTERVENTION_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; - UNION ALL +-- TYPE_INTERVENTION_HDFK +ALTER TABLE "TYPE_INTERVENTION" ADD CONSTRAINT "TYPE_INTERVENTION_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; - SELECT - i.annee_id, - 'mise-en-paiement' etat, - 91 ordre, - th.id type_heures_id, - th.code type_heures, - COALESCE( sr.structure_id, ep.structure_id, i.structure_id ) structure_id, - i.id intervenant_id, - mep.heures hetd - FROM - mise_en_paiement mep - JOIN type_heures th ON th.id = mep.type_heures_id - JOIN centre_cout cc ON cc.id = mep.centre_cout_id - LEFT JOIN formule_resultat_service frs ON frs.id = mep.formule_res_service_id - LEFT JOIN formule_resultat_service_ref frsr ON frsr.id = mep.formule_res_service_ref_id - LEFT JOIN formule_resultat fr ON fr.id = COALESCE(frs.formule_resultat_id, frsr.formule_resultat_id) - LEFT JOIN service s ON s.id = frs.service_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - LEFT JOIN service_referentiel sr ON sr.id = frsr.service_referentiel_id - LEFT JOIN intervenant i ON i.id = fr.intervenant_id - WHERE - mep.histo_destruction IS NULL - AND th.eligible_extraction_paie = 1 - AND mep.PERIODE_PAIEMENT_ID IS NOT NULL - ) t1 - GROUP BY - annee_id, etat, ordre, type_heures_id, type_heures, structure_id, intervenant_id -) t2 -GROUP BY - annee_id, - etat, ordre - ,type_heures_id, type_heures - ,structure_id - ,intervenant_id -ORDER BY - annee_id, ordre - -) t3 - JOIN intervenant i ON i.id = t3.intervenant_id - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN type_intervenant ti ON ti.id = si.type_intervenant_id - JOIN structure s ON s.id = t3.structure_id; +-- TYPE_INTERVENTION_HMFK +ALTER TABLE "TYPE_INTERVENTION" ADD CONSTRAINT "TYPE_INTERVENTION_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; --- V_EXPORT_SERVICE -CREATE OR REPLACE FORCE VIEW "V_EXPORT_SERVICE" ("ID", "SERVICE_ID", "INTERVENANT_ID", "TYPE_INTERVENANT_ID", "ANNEE_ID", "SERVICE_DATE_MODIFICATION", "TYPE_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID", "ETABLISSEMENT_ID", "STRUCTURE_AFF_ID", "STRUCTURE_ENS_ID", "NIVEAU_FORMATION_ID", "ETAPE_ID", "ELEMENT_PEDAGOGIQUE_ID", "PERIODE_ID", "TYPE_INTERVENTION_ID", "FONCTION_REFERENTIEL_ID", "TYPE_ETAT", "INTERVENANT_CODE", "INTERVENANT_NOM", "INTERVENANT_DATE_NAISSANCE", "INTERVENANT_STATUT_LIBELLE", "INTERVENANT_TYPE_CODE", "INTERVENANT_TYPE_LIBELLE", "INTERVENANT_GRADE_CODE", "INTERVENANT_GRADE_LIBELLE", "INTERVENANT_DISCIPLINE_CODE", "INTERVENANT_DISCIPLINE_LIBELLE", "SERVICE_STRUCTURE_AFF_LIBELLE", "SERVICE_STRUCTURE_ENS_LIBELLE", "ETABLISSEMENT_LIBELLE", "GROUPE_TYPE_FORMATION_LIBELLE", "TYPE_FORMATION_LIBELLE", "ETAPE_NIVEAU", "ETAPE_CODE", "ETAPE_LIBELLE", "ELEMENT_CODE", "ELEMENT_LIBELLE", "ELEMENT_DISCIPLINE_CODE", "ELEMENT_DISCIPLINE_LIBELLE", "FONCTION_REFERENTIEL_LIBELLE", "ELEMENT_TAUX_FI", "ELEMENT_TAUX_FC", "ELEMENT_TAUX_FA", "SERVICE_REF_FORMATION", "COMMENTAIRES", "PERIODE_LIBELLE", "ELEMENT_PONDERATION_COMPL", "ELEMENT_SOURCE_LIBELLE", "HEURES", "HEURES_REF", "HEURES_NON_PAYEES", "SERVICE_STATUTAIRE", "SERVICE_DU_MODIFIE", "SERVICE_FI", "SERVICE_FA", "SERVICE_FC", "SERVICE_REFERENTIEL", "HEURES_COMPL_FI", "HEURES_COMPL_FA", "HEURES_COMPL_FC", "HEURES_COMPL_FC_MAJOREES", "HEURES_COMPL_REFERENTIEL", "TOTAL", "SOLDE", "DATE_CLOTURE_REALISE") AS - WITH t AS ( SELECT - 'vh_' || vh.id id, - s.id service_id, - s.intervenant_id intervenant_id, - vh.type_volume_horaire_id type_volume_horaire_id, - fr.etat_volume_horaire_id etat_volume_horaire_id, - s.element_pedagogique_id element_pedagogique_id, - s.etablissement_id etablissement_id, - NULL structure_aff_id, - NULL structure_ens_id, - vh.periode_id periode_id, - vh.type_intervention_id type_intervention_id, - NULL fonction_referentiel_id, +-- TYPE_INTERVENTION_STRUCTU_HCFK +ALTER TABLE "TYPE_INTERVENTION_STRUCTURE" ADD CONSTRAINT "TYPE_INTERVENTION_STRUCTU_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; - s.description service_description, +-- TYPE_INTERVENTION_STRUCTU_HDFK +ALTER TABLE "TYPE_INTERVENTION_STRUCTURE" ADD CONSTRAINT "TYPE_INTERVENTION_STRUCTU_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; - vh.heures heures, - 0 heures_ref, - 0 heures_non_payees, - frvh.service_fi service_fi, - frvh.service_fa service_fa, - frvh.service_fc service_fc, - 0 service_referentiel, - frvh.heures_compl_fi heures_compl_fi, - frvh.heures_compl_fa heures_compl_fa, - frvh.heures_compl_fc heures_compl_fc, - frvh.heures_compl_fc_majorees heures_compl_fc_majorees, - 0 heures_compl_referentiel, - frvh.total total, - fr.solde solde, - NULL service_ref_formation, - NULL commentaires -FROM - formule_resultat_vh frvh - JOIN formule_resultat fr ON fr.id = frvh.formule_resultat_id - JOIN volume_horaire vh ON vh.id = frvh.volume_horaire_id AND vh.motif_non_paiement_id IS NULL AND vh.histo_destruction IS NULL - JOIN service s ON s.id = vh.service_id AND s.intervenant_id = fr.intervenant_id AND s.histo_destruction IS NULL +-- TYPE_INTERVENTION_STRUCTU_HMFK +ALTER TABLE "TYPE_INTERVENTION_STRUCTURE" ADD CONSTRAINT "TYPE_INTERVENTION_STRUCTU_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; -UNION ALL +-- TYPE_MODULATEUR_EP_HCFK +ALTER TABLE "TYPE_MODULATEUR_EP" ADD CONSTRAINT "TYPE_MODULATEUR_EP_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; -SELECT - 'vh_' || vh.id id, - s.id service_id, - s.intervenant_id intervenant_id, - vh.type_volume_horaire_id type_volume_horaire_id, - vhe.etat_volume_horaire_id etat_volume_horaire_id, - s.element_pedagogique_id element_pedagogique_id, - s.etablissement_id etablissement_id, - NULL structure_aff_id, - NULL structure_ens_id, - vh.periode_id periode_id, - vh.type_intervention_id type_intervention_id, - NULL fonction_referentiel_id, +-- TYPE_MODULATEUR_EP_HDFK +ALTER TABLE "TYPE_MODULATEUR_EP" ADD CONSTRAINT "TYPE_MODULATEUR_EP_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; - s.description service_description, +-- TYPE_MODULATEUR_EP_HMFK +ALTER TABLE "TYPE_MODULATEUR_EP" ADD CONSTRAINT "TYPE_MODULATEUR_EP_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; - vh.heures heures, - 0 heures_ref, - 1 heures_non_payees, - 0 service_fi, - 0 service_fa, - 0 service_fc, - 0 service_referentiel, - 0 heures_compl_fi, - 0 heures_compl_fa, - 0 heures_compl_fc, - 0 heures_compl_fc_majorees, - 0 heures_compl_referentiel, - 0 total, - fr.solde solde, - NULL service_ref_formation, - NULL commentaires -FROM - volume_horaire vh - JOIN service s ON s.id = vh.service_id - JOIN v_volume_horaire_etat vhe ON vhe.volume_horaire_id = vh.id - JOIN formule_resultat fr ON fr.intervenant_id = s.intervenant_id AND fr.type_volume_horaire_id = vh.type_volume_horaire_id AND fr.etat_volume_horaire_id = vhe.etat_volume_horaire_id -WHERE - vh.motif_non_paiement_id IS NOT NULL - AND vh.histo_destruction IS NULL - AND s.histo_destruction IS NULL +-- TYPE_MODULATEUR_HCFK +ALTER TABLE "TYPE_MODULATEUR" ADD CONSTRAINT "TYPE_MODULATEUR_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; -UNION ALL +-- TYPE_MODULATEUR_HDFK +ALTER TABLE "TYPE_MODULATEUR" ADD CONSTRAINT "TYPE_MODULATEUR_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; -SELECT - 'vh_ref_' || vhr.id id, - sr.id service_id, - sr.intervenant_id intervenant_id, - fr.type_volume_horaire_id type_volume_horaire_id, - fr.etat_volume_horaire_id etat_volume_horaire_id, - NULL element_pedagogique_id, - OSE_PARAMETRE.GET_ETABLISSEMENT etablissement_id, - NULL structure_aff_id, - sr.structure_id structure_ens_id, - NULL periode_id, - NULL type_intervention_id, - sr.fonction_id fonction_referentiel_id, - - NULL service_description, - - 0 heures, - vhr.heures heures_ref, - 0 heures_non_payees, - 0 service_fi, - 0 service_fa, - 0 service_fc, - frvr.service_referentiel service_referentiel, - 0 heures_compl_fi, - 0 heures_compl_fa, - 0 heures_compl_fc, - 0 heures_compl_fc_majorees, - frvr.heures_compl_referentiel heures_compl_referentiel, - frvr.total total, - fr.solde solde, - sr.formation service_ref_formation, - sr.commentaires commentaires -FROM - formule_resultat_vh_ref frvr - JOIN formule_resultat fr ON fr.id = frvr.formule_resultat_id - JOIN volume_horaire_ref vhr ON vhr.id = frvr.volume_horaire_ref_id - JOIN service_referentiel sr ON sr.id = vhr.service_referentiel_id AND sr.intervenant_id = fr.intervenant_id AND sr.histo_destruction IS NULL - -UNION ALL +-- TYPE_MODULATEUR_HMFK +ALTER TABLE "TYPE_MODULATEUR" ADD CONSTRAINT "TYPE_MODULATEUR_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; -SELECT - 'vh_0_' || i.id id, - NULL service_id, - i.id intervenant_id, - tvh.id type_volume_horaire_id, - evh.id etat_volume_horaire_id, - NULL element_pedagogique_id, - OSE_PARAMETRE.GET_ETABLISSEMENT etablissement_id, - NULL structure_aff_id, - NULL structure_ens_id, - NULL periode_id, - NULL type_intervention_id, - NULL fonction_referentiel_id, - - NULL service_description, - - 0 heures, - 0 heures_ref, - 0 heures_non_payees, - 0 service_fi, - 0 service_fa, - 0 service_fc, - 0 service_referentiel, - 0 heures_compl_fi, - 0 heures_compl_fa, - 0 heures_compl_fc, - 0 heures_compl_fc_majorees, - NULL heures_compl_referentiel, - 0 total, - 0 solde, - NULL service_ref_formation, - NULL commentaires -FROM - intervenant i - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN etat_volume_horaire evh ON evh.code IN ('saisi','valide') - JOIN type_volume_horaire tvh ON tvh.code IN ('PREVU','REALISE') - LEFT JOIN modification_service_du msd ON msd.intervenant_id = i.id AND msd.histo_destruction IS NULL - LEFT JOIN motif_modification_service mms ON mms.id = msd.motif_id -WHERE - i.histo_destruction IS NULL - AND si.service_statutaire > 0 -GROUP BY - i.id, si.service_statutaire, evh.id, tvh.id -HAVING - si.service_statutaire + SUM(msd.heures * mms.multiplicateur) = 0 +-- TYPE_MODULATEUR_STRUCTURE_HCFK +ALTER TABLE "TYPE_MODULATEUR_STRUCTURE" ADD CONSTRAINT "TYPE_MODULATEUR_STRUCTURE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_MODULATEUR_STRUCTURE_HDFK +ALTER TABLE "TYPE_MODULATEUR_STRUCTURE" ADD CONSTRAINT "TYPE_MODULATEUR_STRUCTURE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_MODULATEUR_STRUCTURE_HMFK +ALTER TABLE "TYPE_MODULATEUR_STRUCTURE" ADD CONSTRAINT "TYPE_MODULATEUR_STRUCTURE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_PIECE_JOINTE_HCFK +ALTER TABLE "TYPE_PIECE_JOINTE" ADD CONSTRAINT "TYPE_PIECE_JOINTE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_PIECE_JOINTE_HDFK +ALTER TABLE "TYPE_PIECE_JOINTE" ADD CONSTRAINT "TYPE_PIECE_JOINTE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_PIECE_JOINTE_HMFK +ALTER TABLE "TYPE_PIECE_JOINTE" ADD CONSTRAINT "TYPE_PIECE_JOINTE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- TYPE_PIECE_JOINTE_STATUT_HCFK +ALTER TABLE "TYPE_PIECE_JOINTE_STATUT" ADD CONSTRAINT "TYPE_PIECE_JOINTE_STATUT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; +-- TYPE_PIECE_JOINTE_STATUT_HDFK +ALTER TABLE "TYPE_PIECE_JOINTE_STATUT" ADD CONSTRAINT "TYPE_PIECE_JOINTE_STATUT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; -) -SELECT - t.id id, - t.service_id service_id, - i.id intervenant_id, - ti.id type_intervenant_id, - i.annee_id annee_id, - his.histo_modification service_date_modification, - t.type_volume_horaire_id type_volume_horaire_id, - t.etat_volume_horaire_id etat_volume_horaire_id, - etab.id etablissement_id, - saff.id structure_aff_id, - sens.id structure_ens_id, - ose_divers.niveau_formation_id_calc( gtf.id, gtf.pertinence_niveau, etp.niveau ) niveau_formation_id, - etp.id etape_id, - ep.id element_pedagogique_id, - t.periode_id periode_id, - t.type_intervention_id type_intervention_id, - t.fonction_referentiel_id fonction_referentiel_id, - - tvh.libelle || ' ' || evh.libelle type_etat, - i.source_code intervenant_code, - i.nom_usuel || ' ' || i.prenom intervenant_nom, - i.date_naissance intervenant_date_naissance, - si.libelle intervenant_statut_libelle, - ti.code intervenant_type_code, - ti.libelle intervenant_type_libelle, - g.source_code intervenant_grade_code, - g.libelle_court intervenant_grade_libelle, - di.source_code intervenant_discipline_code, - di.libelle_court intervenant_discipline_libelle, - saff.libelle_court service_structure_aff_libelle, +-- TYPE_PIECE_JOINTE_STATUT_HMFK +ALTER TABLE "TYPE_PIECE_JOINTE_STATUT" ADD CONSTRAINT "TYPE_PIECE_JOINTE_STATUT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; - sens.libelle_court service_structure_ens_libelle, - etab.libelle etablissement_libelle, - gtf.libelle_court groupe_type_formation_libelle, - tf.libelle_court type_formation_libelle, - etp.niveau etape_niveau, - etp.source_code etape_code, - etp.libelle etape_libelle, - ep.source_code element_code, - COALESCE(ep.libelle,to_char(t.service_description)) element_libelle, - de.source_code element_discipline_code, - de.libelle_court element_discipline_libelle, - fr.libelle_long fonction_referentiel_libelle, - ep.taux_fi element_taux_fi, - ep.taux_fc element_taux_fc, - ep.taux_fa element_taux_fa, - t.service_ref_formation service_ref_formation, - t.commentaires commentaires, - p.libelle_court periode_libelle, - CASE WHEN fs.ponderation_service_compl = 1 THEN NULL ELSE fs.ponderation_service_compl END element_ponderation_compl, - src.libelle element_source_libelle, - - t.heures heures, - t.heures_ref heures_ref, - t.heures_non_payees heures_non_payees, - si.service_statutaire service_statutaire, - fsm.heures service_du_modifie, - t.service_fi service_fi, - t.service_fa service_fa, - t.service_fc service_fc, - t.service_referentiel service_referentiel, - t.heures_compl_fi heures_compl_fi, - t.heures_compl_fa heures_compl_fa, - t.heures_compl_fc heures_compl_fc, - t.heures_compl_fc_majorees heures_compl_fc_majorees, - t.heures_compl_referentiel heures_compl_referentiel, - t.total total, - t.solde solde, - v.histo_modification date_cloture_realise +-- TYPE_RESSOURCE_HCFK +ALTER TABLE "TYPE_RESSOURCE" ADD CONSTRAINT "TYPE_RESSOURCE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; -FROM - t - JOIN intervenant i ON i.id = t.intervenant_id AND i.histo_destruction IS NULL - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN type_intervenant ti ON ti.id = si.type_intervenant_id - JOIN etablissement etab ON etab.id = t.etablissement_id - JOIN type_volume_horaire tvh ON tvh.id = t.type_volume_horaire_id - JOIN etat_volume_horaire evh ON evh.id = t.etat_volume_horaire_id - LEFT JOIN histo_intervenant_service his ON his.intervenant_id = i.id AND his.type_volume_horaire_id = tvh.id AND his.referentiel = 0 - LEFT JOIN grade g ON g.id = i.grade_id - LEFT JOIN discipline di ON di.id = i.discipline_id - LEFT JOIN structure saff ON saff.id = i.structure_id AND ti.code = 'P' - LEFT JOIN element_pedagogique ep ON ep.id = t.element_pedagogique_id - LEFT JOIN discipline de ON de.id = ep.discipline_id - LEFT JOIN structure sens ON sens.id = NVL(t.structure_ens_id, ep.structure_id) - LEFT JOIN periode p ON p.id = t.periode_id - LEFT JOIN source src ON src.id = ep.source_id OR (ep.source_id IS NULL AND src.code = 'OSE') - LEFT JOIN etape etp ON etp.id = ep.etape_id - LEFT JOIN type_formation tf ON tf.id = etp.type_formation_id AND tf.histo_destruction IS NULL - LEFT JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id AND gtf.histo_destruction IS NULL - LEFT JOIN v_formule_service_modifie fsm ON fsm.intervenant_id = i.id - LEFT JOIN v_formule_service fs ON fs.id = t.service_id - LEFT JOIN fonction_referentiel fr ON fr.id = t.fonction_referentiel_id - LEFT JOIN type_validation tv ON tvh.code = 'REALISE' AND tv.code = 'CLOTURE_REALISE' - LEFT JOIN validation v ON v.intervenant_id = i.id AND v.type_validation_id = tv.id AND v.histo_destruction IS NULL; +-- TYPE_RESSOURCE_HDFK +ALTER TABLE "TYPE_RESSOURCE" ADD CONSTRAINT "TYPE_RESSOURCE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; --- V_EXP_HETD_CENTRE_COUT -CREATE OR REPLACE FORCE VIEW "V_EXP_HETD_CENTRE_COUT" ("TYPE_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID", "ANNEE_ID", "INTERVENANT_ID", "STATUT_INTERVENANT_ID", "TYPE_INTERVENANT_ID", "GRADE_ID", "STRUCTURE_ID", "GROUPE_TYPE_FORMATION_ID", "TYPE_FORMATION_ID", "ETAPE_ID", "TYPE_VOLUME_HORAIRE", "ETAT_VOLUME_HORAIRE", "ANNEE", "CODE_INTERVENANT", "INTERVENANT", "STATUT_INTERVENANT", "TYPE_INTERVENANT", "GRADE", "STRUCTURE_ENSEIGNEMENT", "GROUPE_TYPE_FORMATION", "TYPE_FORMATION", "CODE_FORMATION", "TOTAL_HETD", "CENTRE_COUTS", "TOTAL_EUROS") AS - WITH t AS ( - SELECT - tvh.id type_volume_horaire_id, - evh.id etat_volume_horaire_id, - a.id annee_id, - i.id intervenant_id, - si.id statut_intervenant_id, - ti.id type_intervenant_id, - g.id grade_id, - str.id structure_id, - gtf.id groupe_type_formation_id, - tf.id type_formation_id, - e.id etape_id, - - tvh.code type_volume_horaire, - evh.code etat_volume_horaire, - a.libelle annee, - i.code code_intervenant, - i.nom_usuel || ' ' || i.prenom intervenant, - si.libelle statut_intervenant, - ti.libelle type_intervenant, - g.libelle_long grade, - str.libelle_court structure_enseignement, - gtf.libelle_long groupe_type_formation, - tf.libelle_long type_formation, - e.source_code code_formation, +-- TYPE_RESSOURCE_HMFK +ALTER TABLE "TYPE_RESSOURCE" ADD CONSTRAINT "TYPE_RESSOURCE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; - CASE WHEN mep.id IS NULL THEN frs.total ELSE mep.heures END - total_hetd, +-- VALIDATION_HCFK +ALTER TABLE "VALIDATION" ADD CONSTRAINT "VALIDATION_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; - cc.source_code || ' ' || cc.libelle centre_couts, - OSE_FORMULE.GET_TAUX_HORAIRE_HETD( NVL(mep.date_mise_en_paiement,SYSDATE) ) * CASE WHEN mep.id IS NULL THEN frs.total ELSE mep.heures END - total_euros - FROM - formule_resultat_service frs - JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id - JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id - JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN annee a ON a.id = i.annee_id - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN type_intervenant ti ON ti.id = si.type_intervenant_id - JOIN service s ON s.id = frs.service_id - LEFT JOIN grade g ON g.id = i.grade_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - JOIN structure str ON str.id = NVL(ep.structure_id, i.structure_id) - LEFT JOIN etape e ON e.id = ep.etape_id - LEFT JOIN type_formation tf ON tf.id = e.type_formation_id - LEFT JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id - LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id - AND mep.histo_destruction IS NULL +-- VALIDATION_HDFK +ALTER TABLE "VALIDATION" ADD CONSTRAINT "VALIDATION_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; - LEFT JOIN centre_cout cc ON cc.id = MEP.CENTRE_COUT_ID +-- VALIDATION_HMFK +ALTER TABLE "VALIDATION" ADD CONSTRAINT "VALIDATION_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; - UNION ALL +-- VALIDATION_INTERVENANT_FK +ALTER TABLE "VALIDATION" ADD CONSTRAINT "VALIDATION_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; - SELECT - type_volume_horaire_id, etat_volume_horaire_id, annee_id, intervenant_id, statut_intervenant_id, type_intervenant_id, - grade_id, structure_id, groupe_type_formation_id, type_formation_id, etape_id, - - type_volume_horaire, etat_volume_horaire, annee, code_intervenant, intervenant, statut_intervenant, - type_intervenant, grade, structure_enseignement, groupe_type_formation, type_formation, - code_formation, total_hetd, centre_couts, - OSE_FORMULE.GET_TAUX_HORAIRE_HETD( SYSDATE ) * total_hetd total_euros - FROM ( - SELECT - tvh.id type_volume_horaire_id, - evh.id etat_volume_horaire_id, - a.id annee_id, - i.id intervenant_id, - si.id statut_intervenant_id, - ti.id type_intervenant_id, - g.id grade_id, - str.id structure_id, - gtf.id groupe_type_formation_id, - tf.id type_formation_id, - e.id etape_id, - - tvh.code type_volume_horaire, - evh.code etat_volume_horaire, - a.libelle annee, - i.code code_intervenant, - i.nom_usuel || ' ' || i.prenom intervenant, - si.libelle statut_intervenant, - ti.libelle type_intervenant, - g.libelle_long grade, - str.libelle_court structure_enseignement, - gtf.libelle_long groupe_type_formation, - tf.libelle_long type_formation, - e.source_code code_formation, - frs.total - SUM(mep.heures) OVER (PARTITION BY frs.id) total_hetd, - RANK() OVER ( PARTITION BY frs.id ORDER BY mep.id) ordre, - null centre_couts - FROM - formule_resultat_service frs - JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id - JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id - JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN annee a ON a.id = i.annee_id - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN type_intervenant ti ON ti.id = si.type_intervenant_id - JOIN service s ON s.id = frs.service_id - LEFT JOIN grade g ON g.id = i.grade_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - JOIN structure str ON str.id = NVL(ep.structure_id, i.structure_id) - LEFT JOIN etape e ON e.id = ep.etape_id - LEFT JOIN type_formation tf ON tf.id = e.type_formation_id - LEFT JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id - LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id - AND mep.histo_destruction IS NULL - ) t WHERE ordre = 1 AND total_hetd > 0 -) -SELECT - type_volume_horaire_id, - etat_volume_horaire_id, - annee_id, - intervenant_id, - statut_intervenant_id, - type_intervenant_id, - grade_id, - structure_id, - groupe_type_formation_id, - type_formation_id, - etape_id, +-- VALIDATION_STRUCTURE_FK +ALTER TABLE "VALIDATION" ADD CONSTRAINT "VALIDATION_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") + REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + +-- VALIDATION_TYPE_VALIDATION_FK +ALTER TABLE "VALIDATION" ADD CONSTRAINT "VALIDATION_TYPE_VALIDATION_FK" FOREIGN KEY ("TYPE_VALIDATION_ID") + REFERENCES "TYPE_VALIDATION" ("ID") ON DELETE CASCADE ENABLE; + +-- VHC_ELEMENT_PEDAGOGIQUE_FK +ALTER TABLE "VOLUME_HORAIRE_CHARGE" ADD CONSTRAINT "VHC_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") + REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ENABLE; + +-- VHC_SCENARIO_FK +ALTER TABLE "VOLUME_HORAIRE_CHARGE" ADD CONSTRAINT "VHC_SCENARIO_FK" FOREIGN KEY ("SCENARIO_ID") + REFERENCES "SCENARIO" ("ID") ON DELETE CASCADE ENABLE; + +-- VHC_SOURCE_FK +ALTER TABLE "VOLUME_HORAIRE_CHARGE" ADD CONSTRAINT "VHC_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ENABLE; + +-- VHC_TYPE_INTERVENTION_FK +ALTER TABLE "VOLUME_HORAIRE_CHARGE" ADD CONSTRAINT "VHC_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") + REFERENCES "TYPE_INTERVENTION" ("ID") ENABLE; - type_volume_horaire, - etat_volume_horaire, - annee, - code_intervenant, - intervenant, - statut_intervenant, - type_intervenant, - grade, - structure_enseignement, - groupe_type_formation, - type_formation, - code_formation, - SUM(total_hetd) total_hetd, - centre_couts, - SUM(total_euros) total_euros -FROM - t -GROUP BY - type_volume_horaire_id, - etat_volume_horaire_id, - annee_id, - intervenant_id, - statut_intervenant_id, - type_intervenant_id, - grade_id, - structure_id, - groupe_type_formation_id, - type_formation_id, - etape_id, +-- VHENS_ELEMENT_PEDAGOGIQUE_FK +ALTER TABLE "VOLUME_HORAIRE_ENS" ADD CONSTRAINT "VHENS_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") + REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ENABLE; - type_volume_horaire, - etat_volume_horaire, - annee, - code_intervenant, - intervenant, - statut_intervenant, - type_intervenant, - grade, - structure_enseignement, - groupe_type_formation, - type_formation, - code_formation, - centre_couts; +-- VHENS_TYPE_INTERVENTION_FK +ALTER TABLE "VOLUME_HORAIRE_ENS" ADD CONSTRAINT "VHENS_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") + REFERENCES "TYPE_INTERVENTION" ("ID") ON DELETE CASCADE ENABLE; --- V_FORMULE_INTERVENANT -CREATE OR REPLACE FORCE VIEW "V_FORMULE_INTERVENANT" ("ID", "ANNEE_ID", "STRUCTURE_ID", "HEURES_SERVICE_STATUTAIRE", "DEPASSEMENT_SERVICE_DU_SANS_HC") AS - SELECT - i.id, - i.annee_id, - i.structure_id, - si.service_statutaire heures_service_statutaire, - si.depassement_service_du_sans_hc -FROM - intervenant i - JOIN statut_intervenant si ON si.id = i.statut_id -WHERE - i.histo_destruction IS NULL - AND i.id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, i.id ); +-- VHIT_FK +ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VHIT_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") + REFERENCES "TYPE_INTERVENTION" ("ID") ENABLE; --- V_FORMULE_SERVICE -CREATE OR REPLACE FORCE VIEW "V_FORMULE_SERVICE" ("ID", "INTERVENANT_ID", "TAUX_FI", "TAUX_FA", "TAUX_FC", "STRUCTURE_AFF_ID", "STRUCTURE_ENS_ID", "PONDERATION_SERVICE_DU", "PONDERATION_SERVICE_COMPL") AS - SELECT - s.id id, - s.intervenant_id intervenant_id, - CASE WHEN ep.id IS NOT NULL THEN ep.taux_fi ELSE 1 END taux_fi, - CASE WHEN ep.id IS NOT NULL THEN ep.taux_fa ELSE 0 END taux_fa, - CASE WHEN ep.id IS NOT NULL THEN ep.taux_fc ELSE 0 END taux_fc, - i.structure_id structure_aff_id, - ep.structure_id structure_ens_id, - NVL( EXP (SUM (LN (m.ponderation_service_du))), 1) ponderation_service_du, - NVL( EXP (SUM (LN (m.ponderation_service_compl))), 1) ponderation_service_compl -FROM - service s - JOIN intervenant i ON i.id = s.intervenant_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - LEFT JOIN element_modulateur em ON em.element_id = s.element_pedagogique_id - AND em.histo_destruction IS NULL - LEFT JOIN modulateur m ON m.id = em.modulateur_id -WHERE - s.histo_destruction IS NULL -GROUP BY - s.id, - s.intervenant_id, - ep.id, - ep.taux_fi, ep.taux_fa, ep.taux_fc, - i.structure_id, ep.structure_id; +-- VHMNP_FK +ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VHMNP_FK" FOREIGN KEY ("MOTIF_NON_PAIEMENT_ID") + REFERENCES "MOTIF_NON_PAIEMENT" ("ID") ENABLE; --- V_FORMULE_SERVICE_MODIFIE -CREATE OR REPLACE FORCE VIEW "V_FORMULE_SERVICE_MODIFIE" ("ID", "INTERVENANT_ID", "HEURES", "HEURES_DECHARGE") AS - SELECT - msd.intervenant_id id, - msd.intervenant_id, - NVL( SUM( msd.heures * mms.multiplicateur ), 0 ) heures, - NVL( SUM( msd.heures * mms.multiplicateur * mms.decharge ), 0 ) heures_decharge -FROM - modification_service_du msd - JOIN MOTIF_MODIFICATION_SERVICE mms ON - mms.id = msd.motif_id - AND mms.histo_destruction IS NULL - JOIN intervenant i ON i.id = msd.intervenant_id -WHERE - msd.histo_destruction IS NULL - AND 1 = ose_divers.intervenant_has_privilege(msd.intervenant_id, 'modif-service-du-association') -GROUP BY - msd.intervenant_id; +-- VHR_SERVICE_REFERENTIEL_FK +ALTER TABLE "VOLUME_HORAIRE_REF" ADD CONSTRAINT "VHR_SERVICE_REFERENTIEL_FK" FOREIGN KEY ("SERVICE_REFERENTIEL_ID") + REFERENCES "SERVICE_REFERENTIEL" ("ID") ENABLE; --- V_FORMULE_SERVICE_REF -CREATE OR REPLACE FORCE VIEW "V_FORMULE_SERVICE_REF" ("ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT - sr.id id, - sr.intervenant_id intervenant_id, - sr.structure_id structure_id -FROM - service_referentiel sr - JOIN intervenant i ON i.id = sr.intervenant_id -WHERE - sr.histo_destruction IS NULL - AND i.id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, i.id ); +-- VHR_TYPE_VOLUME_HORAIRE_FK +ALTER TABLE "VOLUME_HORAIRE_REF" ADD CONSTRAINT "VHR_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") + REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ENABLE; --- V_FORMULE_VOLUME_HORAIRE -CREATE OR REPLACE FORCE VIEW "V_FORMULE_VOLUME_HORAIRE" ("ID", "SERVICE_ID", "INTERVENANT_ID", "TYPE_INTERVENTION_ID", "TYPE_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ORDRE", "HEURES", "TAUX_SERVICE_DU", "TAUX_SERVICE_COMPL") AS - SELECT - vh.id id, - s.id service_id, - s.intervenant_id intervenant_id, - ti.id type_intervention_id, - vh.type_volume_horaire_id type_volume_horaire_id, - evh.id etat_volume_horaire_id, - evh.ordre etat_volume_horaire_ordre, - vh.heures heures, - ti.taux_hetd_service taux_service_du, - ti.taux_hetd_complementaire taux_service_compl -FROM - volume_horaire vh - JOIN service s ON s.id = vh.service_id - JOIN type_intervention ti ON ti.id = vh.type_intervention_id - JOIN v_volume_horaire_etat vhe ON vhe.volume_horaire_id = vh.id - JOIN etat_volume_horaire evh ON evh.id = vhe.etat_volume_horaire_id -WHERE - vh.histo_destruction IS NULL - AND s.histo_destruction IS NULL - AND vh.heures <> 0 - AND vh.motif_non_paiement_id IS NULL - AND s.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, s.intervenant_id ); +-- VH_PERIODE_FK +ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VH_PERIODE_FK" FOREIGN KEY ("PERIODE_ID") + REFERENCES "PERIODE" ("ID") ENABLE; --- V_FORMULE_VOLUME_HORAIRE_REF -CREATE OR REPLACE FORCE VIEW "V_FORMULE_VOLUME_HORAIRE_REF" ("ID", "SERVICE_REFERENTIEL_ID", "INTERVENANT_ID", "TYPE_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ORDRE", "HEURES") AS - SELECT - vhr.id id, - sr.id service_referentiel_id, - sr.intervenant_id intervenant_id, - vhr.type_volume_horaire_id type_volume_horaire_id, - evh.id etat_volume_horaire_id, - evh.ordre etat_volume_horaire_ordre, - vhr.heures heures -FROM - volume_horaire_ref vhr - JOIN service_referentiel sr ON sr.id = vhr.service_referentiel_id - JOIN v_volume_horaire_ref_etat vher ON vher.volume_horaire_ref_id = vhr.id - JOIN etat_volume_horaire evh ON evh.id = vher.etat_volume_horaire_id -WHERE - vhr.histo_destruction IS NULL - AND sr.histo_destruction IS NULL - AND vhr.heures <> 0 - AND sr.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, sr.intervenant_id ); +-- VH_TYPE_VOLUME_HORAIRE_FK +ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VH_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") + REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ENABLE; --- V_FR_SERVICE_CENTRE_COUT -CREATE OR REPLACE FORCE VIEW "V_FR_SERVICE_CENTRE_COUT" ("FORMULE_RESULTAT_SERVICE_ID", "CENTRE_COUT_ID") AS - SELECT - frs.id formule_resultat_service_id, cc.id centre_cout_id -FROM - formule_resultat_service frs - JOIN service s ON s.id = frs.service_id - JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - JOIN centre_cout cc ON cc.histo_destruction IS NULL - - JOIN centre_cout_structure ccs ON ccs.centre_cout_id = cc.id - AND ccs.structure_id = ep.structure_id - AND ccs.histo_destruction IS NULL - - JOIN cc_activite a ON a.id = cc.activite_id - AND a.histo_destruction IS NULL - - JOIN type_ressource tr ON tr.id = cc.type_ressource_id - AND tr.histo_destruction IS NULL -WHERE - ( - (frs.heures_compl_fi > 0 AND tr.fi = 1 AND a.fi = 1 ) - OR (frs.heures_compl_fa > 0 AND tr.fa = 1 AND a.fa = 1 ) - OR (frs.heures_compl_fc > 0 AND tr.fc = 1 AND a.fc = 1 ) - OR (frs.heures_compl_fc_majorees > 0 AND tr.fc_majorees = 1 AND a.fc_majorees = 1 ) - ) +-- VOLUMES_HORAIRES_SERVICES_FK +ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VOLUMES_HORAIRES_SERVICES_FK" FOREIGN KEY ("SERVICE_ID") + REFERENCES "SERVICE" ("ID") ENABLE; + +-- VOLUME_HORAIRE_CHARGE_HCFK +ALTER TABLE "VOLUME_HORAIRE_CHARGE" ADD CONSTRAINT "VOLUME_HORAIRE_CHARGE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- VOLUME_HORAIRE_CHARGE_HDFK +ALTER TABLE "VOLUME_HORAIRE_CHARGE" ADD CONSTRAINT "VOLUME_HORAIRE_CHARGE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- VOLUME_HORAIRE_CHARGE_HMFK +ALTER TABLE "VOLUME_HORAIRE_CHARGE" ADD CONSTRAINT "VOLUME_HORAIRE_CHARGE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- VOLUME_HORAIRE_CONTRAT_FK +ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VOLUME_HORAIRE_CONTRAT_FK" FOREIGN KEY ("CONTRAT_ID") + REFERENCES "CONTRAT" ("ID") ENABLE; + +-- VOLUME_HORAIRE_ENS_HCFK +ALTER TABLE "VOLUME_HORAIRE_ENS" ADD CONSTRAINT "VOLUME_HORAIRE_ENS_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- VOLUME_HORAIRE_ENS_HDFK +ALTER TABLE "VOLUME_HORAIRE_ENS" ADD CONSTRAINT "VOLUME_HORAIRE_ENS_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- VOLUME_HORAIRE_ENS_HMFK +ALTER TABLE "VOLUME_HORAIRE_ENS" ADD CONSTRAINT "VOLUME_HORAIRE_ENS_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- VOLUME_HORAIRE_ENS_SOURCE_FK +ALTER TABLE "VOLUME_HORAIRE_ENS" ADD CONSTRAINT "VOLUME_HORAIRE_ENS_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") + REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + +-- VOLUME_HORAIRE_HCFK +ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VOLUME_HORAIRE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- VOLUME_HORAIRE_HDFK +ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VOLUME_HORAIRE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- VOLUME_HORAIRE_HMFK +ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VOLUME_HORAIRE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- VOLUME_HORAIRE_REF_HCFK +ALTER TABLE "VOLUME_HORAIRE_REF" ADD CONSTRAINT "VOLUME_HORAIRE_REF_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- VOLUME_HORAIRE_REF_HDFK +ALTER TABLE "VOLUME_HORAIRE_REF" ADD CONSTRAINT "VOLUME_HORAIRE_REF_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- VOLUME_HORAIRE_REF_HMFK +ALTER TABLE "VOLUME_HORAIRE_REF" ADD CONSTRAINT "VOLUME_HORAIRE_REF_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") + REFERENCES "UTILISATEUR" ("ID") ENABLE; + +-- VVHR_VALIDATION_FK +ALTER TABLE "VALIDATION_VOL_HORAIRE_REF" ADD CONSTRAINT "VVHR_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") + REFERENCES "VALIDATION" ("ID") ON DELETE CASCADE ENABLE; -UNION +-- VVHR_VOLUME_HORAIRE_REF_FK +ALTER TABLE "VALIDATION_VOL_HORAIRE_REF" ADD CONSTRAINT "VVHR_VOLUME_HORAIRE_REF_FK" FOREIGN KEY ("VOLUME_HORAIRE_REF_ID") + REFERENCES "VOLUME_HORAIRE_REF" ("ID") ON DELETE CASCADE ENABLE; -SELECT - frs.id formule_resultat_service_id, cc.id -FROM - formule_resultat_service frs - JOIN service s ON s.id = frs.service_id - AND s.element_pedagogique_id IS NULL - - JOIN intervenant i ON i.id = s.intervenant_id - JOIN centre_cout cc ON cc.histo_destruction IS NULL - - JOIN centre_cout_structure ccs ON ccs.centre_cout_id = cc.id - AND ccs.structure_id = i.structure_id - AND ccs.histo_destruction IS NULL - - JOIN cc_activite a ON a.id = cc.activite_id - AND a.histo_destruction IS NULL - - JOIN type_ressource tr ON tr.id = cc.type_ressource_id - AND tr.histo_destruction IS NULL -WHERE - ( - (frs.heures_compl_fi > 0 AND tr.fi = 1 AND a.fi = 1 ) - OR (frs.heures_compl_fa > 0 AND tr.fa = 1 AND a.fa = 1 ) - OR (frs.heures_compl_fc > 0 AND tr.fc = 1 AND a.fc = 1 ) - OR (frs.heures_compl_fc_majorees > 0 AND tr.fc_majorees = 1 AND a.fc_majorees = 1 ) - ); +-- VVH_VALIDATION_FK +ALTER TABLE "VALIDATION_VOL_HORAIRE" ADD CONSTRAINT "VVH_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") + REFERENCES "VALIDATION" ("ID") ON DELETE CASCADE ENABLE; --- V_FR_SERVICE_REF_CENTRE_COUT -CREATE OR REPLACE FORCE VIEW "V_FR_SERVICE_REF_CENTRE_COUT" ("FORMULE_RESULTAT_SERV_REF_ID", "CENTRE_COUT_ID") AS - SELECT - frsr.id formule_resultat_serv_ref_id, cc.id -FROM - formule_resultat_service_ref frsr - JOIN service_referentiel sr ON sr.id = frsr.service_referentiel_id - JOIN centre_cout cc ON cc.histo_destruction IS NULL - - JOIN centre_cout_structure ccs ON ccs.centre_cout_id = cc.id - AND ccs.structure_id = sr.structure_id - AND ccs.histo_destruction IS NULL - - JOIN cc_activite a ON a.id = cc.activite_id - AND a.histo_destruction IS NULL - - JOIN type_ressource tr ON tr.id = cc.type_ressource_id - AND tr.histo_destruction IS NULL -WHERE - frsr.heures_compl_referentiel > 0 AND tr.referentiel = 1; +-- VVH_VOLUME_HORAIRE_FK +ALTER TABLE "VALIDATION_VOL_HORAIRE" ADD CONSTRAINT "VVH_VOLUME_HORAIRE_FK" FOREIGN KEY ("VOLUME_HORAIRE_ID") + REFERENCES "VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; --- V_HAS_DMEP_A_FAIRE -CREATE OR REPLACE FORCE VIEW "V_HAS_DMEP_A_FAIRE" ("INTERVENANT_ID", "STRUCTURE_ID", "HAS_DMEP_A_FAIRE") AS - SELECT - intervenant_id, - structure_id, - CASE WHEN - SUM(CASE WHEN heures_dmep > heures_compl THEN heures_compl ELSE heures_dmep END) < SUM(heures_compl) - THEN 1 ELSE 0 END has_dmep_a_faire -FROM - ( - SELECT - fr.intervenant_id intervenant_id, - NVL( ep.structure_id, i.structure_id ) structure_id, - frs.heures_compl_fi + frs.heures_compl_fa + frs.heures_compl_fc + frs.heures_compl_fc_majorees heures_compl, - SUM( NVL(mep.heures,0) ) OVER (PARTITION BY frs.id) heures_dmep, - SUM( NVL(CASE WHEN mep.periode_paiement_id IS NOT NULL THEN mep.heures ELSE 0 END,0) ) OVER (PARTITION BY frs.id) heures_mep, - ROW_NUMBER() OVER (PARTITION BY frs.id ORDER BY 1) index__ - FROM - formule_resultat_service frs - JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id - JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code = 'REALISE' - JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id AND evh.code = 'valide' - JOIN intervenant i on i.id = fr.intervenant_id - JOIN service s ON s.id = frs.service_id - LEFT JOIN element_pedagogique ep on ep.id = s.element_pedagogique_id - LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id AND mep.histo_destruction IS NULL +-- WE_PREC_WE_FK +ALTER TABLE "WF_ETAPE_DEP" ADD CONSTRAINT "WE_PREC_WE_FK" FOREIGN KEY ("ETAPE_PREC_ID") + REFERENCES "WF_ETAPE" ("ID") ON DELETE CASCADE ENABLE; - UNION +-- WE_SUIV_WE_FK +ALTER TABLE "WF_ETAPE_DEP" ADD CONSTRAINT "WE_SUIV_WE_FK" FOREIGN KEY ("ETAPE_SUIV_ID") + REFERENCES "WF_ETAPE" ("ID") ON DELETE CASCADE ENABLE; - SELECT - fr.intervenant_id intervenant_id, - NVL( s.structure_id, i.structure_id ) structure_id, - frs.heures_compl_referentiel heures_compl, - SUM( NVL(mep.heures,0) ) OVER (PARTITION BY frs.id) heures_dmep, - SUM( NVL(CASE WHEN mep.periode_paiement_id IS NOT NULL THEN mep.heures ELSE 0 END,0) ) OVER (PARTITION BY frs.id) heures_mep, - ROW_NUMBER() OVER (PARTITION BY frs.id ORDER BY 1) index__ - FROM - formule_resultat_service_ref frs - JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id - JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code = 'REALISE' - JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id AND evh.code = 'valide' - JOIN intervenant i on i.id = fr.intervenant_id - JOIN service_referentiel s ON s.id = frs.service_referentiel_id - LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_ref_id = frs.id AND mep.histo_destruction IS NULL - )mep -WHERE - index__ = 1 -GROUP BY - intervenant_id, - structure_id; +-- WE_TYPE_INTERVENANT_FK +ALTER TABLE "WF_ETAPE_DEP" ADD CONSTRAINT "WE_TYPE_INTERVENANT_FK" FOREIGN KEY ("TYPE_INTERVENANT_ID") + REFERENCES "TYPE_INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; --- V_HETD_PREV_VAL_STRUCT -CREATE OR REPLACE FORCE VIEW "V_HETD_PREV_VAL_STRUCT" ("ANNEE_ID", "STRUCTURE_ID", "HEURES") AS - SELECT - annee_id, - structure_id, - sum(heures) heures +-- WF_DB_ETAPE_DEP_FK +ALTER TABLE "WF_DEP_BLOQUANTE" ADD CONSTRAINT "WF_DB_ETAPE_DEP_FK" FOREIGN KEY ("WF_ETAPE_DEP_ID") + REFERENCES "WF_ETAPE_DEP" ("ID") ON DELETE CASCADE ENABLE; -FROM -( -SELECT - i.annee_id, - NVL( ep.structure_id, i.structure_id ) structure_id, - frs.total heures -FROM - formule_resultat_service frs - JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id - JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id - JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN service s ON s.id = frs.service_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id +-- WF_DB_TBL_WORKFLOW_FK +ALTER TABLE "WF_DEP_BLOQUANTE" ADD CONSTRAINT "WF_DB_TBL_WORKFLOW_FK" FOREIGN KEY ("TBL_WORKFLOW_ID") + REFERENCES "TBL_WORKFLOW" ("ID") ON DELETE CASCADE ENABLE; -WHERE - tvh.code = 'PREVU' - AND evh.code = 'valide' -) t1 +-- indic_diff_dossier_INT_FK +ALTER TABLE "INDIC_MODIF_DOSSIER" ADD CONSTRAINT "indic_diff_dossier_INT_FK" FOREIGN KEY ("INTERVENANT_ID") + REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; -GROUP BY - annee_id, structure_id; +-------------------------------------------------- +-- indexes +-------------------------------------------------- --- V_IMPORT_TAB_COLS -CREATE OR REPLACE FORCE VIEW "V_IMPORT_TAB_COLS" ("TABLE_NAME", "COLUMN_NAME", "DATA_TYPE", "LENGTH", "NULLABLE", "HAS_DEFAULT", "C_TABLE_NAME", "C_COLUMN_NAME", "IMPORT_ACTIF") AS - WITH importable_tables (table_name )AS ( - SELECT - t.table_name -FROM - user_tab_cols c - join user_tables t on t.table_name = c.table_name -WHERE - c.column_name = 'SOURCE_CODE' +-- ADRESSE_INTERVENANT_HCFK_IDX +CREATE INDEX "ADRESSE_INTERVENANT_HCFK_IDX" ON "ADRESSE_INTERVENANT" ("HISTO_CREATEUR_ID"); -MINUS +-- ADRESSE_INTERVENANT_HDFK_IDX +CREATE INDEX "ADRESSE_INTERVENANT_HDFK_IDX" ON "ADRESSE_INTERVENANT" ("HISTO_DESTRUCTEUR_ID"); -SELECT - mview_name table_name -FROM - USER_MVIEWS -), c_values (table_name, column_name, c_table_name, c_column_name) AS ( -SELECT - tc.table_name, - tc.column_name, - pcc.table_name c_table_name, - pcc.column_name c_column_name -FROM - user_tab_cols tc - JOIN USER_CONS_COLUMNS cc ON cc.table_name = tc.table_name AND cc.column_name = tc.column_name - JOIN USER_CONSTRAINTS c ON c.constraint_name = cc.constraint_name - JOIN USER_CONSTRAINTS pc ON pc.constraint_name = c.r_constraint_name - JOIN USER_CONS_COLUMNS pcc ON pcc.constraint_name = pc.constraint_name -WHERE - c.constraint_type = 'R' AND pc.constraint_type = 'P' -) -SELECT - tc.table_name, - tc.column_name, - tc.data_type, - CASE WHEN tc.char_length = 0 THEN NULL ELSE tc.char_length END length, - CASE WHEN tc.nullable = 'Y' THEN 1 ELSE 0 END nullable, - CASE WHEN tc.data_default IS NOT NULL THEN 1 ELSE 0 END has_default, - cv.c_table_name, - cv.c_column_name, - CASE WHEN stc.table_name IS NULL THEN 0 ELSE 1 END AS import_actif -FROM - user_tab_cols tc - JOIN importable_tables t ON t.table_name = tc.table_name - LEFT JOIN import_tables it ON it.table_name = tc.table_name - LEFT JOIN c_values cv ON cv.table_name = tc.table_name AND cv.column_name = tc.column_name - LEFT JOIN user_tab_cols stc ON stc.table_name = 'SRC_' || tc.table_name AND stc.column_name = tc.column_name -WHERE - tc.column_name not like 'HISTO_%' - AND tc.column_name <> 'ID' - AND tc.table_name <> 'SYNC_LOG' -ORDER BY - it.ordre, tc.table_name, tc.column_id; +-- ADRESSE_INTERVENANT_HMFK_IDX +CREATE INDEX "ADRESSE_INTERVENANT_HMFK_IDX" ON "ADRESSE_INTERVENANT" ("HISTO_MODIFICATEUR_ID"); --- V_INDICATEUR_1010 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1010" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM -( -SELECT DISTINCT - w.annee_id, - w.intervenant_id, - i.structure_id -FROM - tbl_workflow w - JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id - JOIN intervenant i ON i.id = w.intervenant_id -WHERE - w.etape_code = 'PJ_SAISIE' - AND wc.etape_code = 'SERVICE_SAISIE' - AND w.type_intervenant_code = 'E' - AND wc.realisation > 0 - AND w.atteignable = 1 - AND w.objectif > w.realisation -) t; +-- ADRESSE_INTERVENANT_PK +CREATE UNIQUE INDEX "ADRESSE_INTERVENANT_PK" ON "ADRESSE_INTERVENANT" ("ID"); --- V_INDICATEUR_1011 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1011" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM -( -SELECT DISTINCT - w.annee_id, - w.intervenant_id, - i.structure_id -FROM - tbl_workflow w - JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id - JOIN intervenant i ON i.id = w.intervenant_id -WHERE - w.etape_code = 'PJ_SAISIE' - AND wc.etape_code = 'SERVICE_SAISIE' - AND w.type_intervenant_code = 'P' - AND wc.realisation > 0 - AND w.atteignable = 1 - AND w.objectif > w.realisation -) t; +-- ADRESSE_INTERVENANT_SOURCE_UN +CREATE UNIQUE INDEX "ADRESSE_INTERVENANT_SOURCE_UN" ON "ADRESSE_INTERVENANT" ("SOURCE_CODE"); --- V_INDICATEUR_1020 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1020" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM -( -SELECT DISTINCT - w.annee_id, - w.intervenant_id, - i.structure_id -FROM - tbl_workflow w - JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id - JOIN intervenant i ON i.id = w.intervenant_id -WHERE - w.etape_code = 'PJ_VALIDATION' - AND wc.etape_code = 'PJ_SAISIE' - AND w.type_intervenant_code = 'E' - AND wc.objectif = wc.realisation - AND w.atteignable = 1 - AND w.objectif > w.realisation -) t; +-- ADRESSE_INTERVENANT__UN +CREATE UNIQUE INDEX "ADRESSE_INTERVENANT__UN" ON "ADRESSE_INTERVENANT" ("INTERVENANT_ID", "HISTO_DESTRUCTION"); --- V_INDICATEUR_1021 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1021" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM -( -SELECT DISTINCT - w.annee_id, - w.intervenant_id, - i.structure_id -FROM - tbl_workflow w - JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id - JOIN intervenant i ON i.id = w.intervenant_id -WHERE - w.etape_code = 'PJ_VALIDATION' - AND wc.etape_code = 'PJ_SAISIE' - AND w.type_intervenant_code = 'P' - AND wc.objectif = wc.realisation - AND w.atteignable = 1 - AND w.objectif > w.realisation -) t; +-- ADRESSE_STRUCTURE_HCFK_IDX +CREATE INDEX "ADRESSE_STRUCTURE_HCFK_IDX" ON "ADRESSE_STRUCTURE" ("HISTO_CREATEUR_ID"); + +-- ADRESSE_STRUCTURE_HDFK_IDX +CREATE INDEX "ADRESSE_STRUCTURE_HDFK_IDX" ON "ADRESSE_STRUCTURE" ("HISTO_DESTRUCTEUR_ID"); --- V_INDICATEUR_110 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_110" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT - rownum id, - t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM ( +-- ADRESSE_STRUCTURE_HMFK_IDX +CREATE INDEX "ADRESSE_STRUCTURE_HMFK_IDX" ON "ADRESSE_STRUCTURE" ("HISTO_MODIFICATEUR_ID"); -SELECT DISTINCT - s.annee_id annee_id, - s.intervenant_id intervenant_id, - s.structure_id structure_id -FROM - tbl_service s -WHERE - s.type_intervenant_code = 'P' - AND s.type_volume_horaire_code = 'PREVU' - AND s.intervenant_structure_id <> s.structure_id - AND s.valide > 0 - AND s.structure_id IS NOT NULL +-- ADRESSE_STRUCTURE_PK +CREATE UNIQUE INDEX "ADRESSE_STRUCTURE_PK" ON "ADRESSE_STRUCTURE" ("ID"); -) t; +-- ADRESSE_STRUCTURE_SOURCE_UN +CREATE UNIQUE INDEX "ADRESSE_STRUCTURE_SOURCE_UN" ON "ADRESSE_STRUCTURE" ("SOURCE_CODE"); --- V_INDICATEUR_1110 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1110" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t.ANNEE_ID,t.INTERVENANT_ID,t.STRUCTURE_ID FROM ( -SELECT DISTINCT - idc.annee_id, - idc.intervenant_id, - idc.structure_id -FROM - v_indic_depass_charges idc - JOIN type_volume_horaire tvh ON tvh.id = idc.type_volume_horaire_id - LEFT JOIN periode p ON p.id = idc.periode_id -WHERE - (p.code = 'S1' OR p.id IS NULL) - AND tvh.code = 'PREVU' -) t; +-- AFFECTATION_HCFK_IDX +CREATE INDEX "AFFECTATION_HCFK_IDX" ON "AFFECTATION" ("HISTO_CREATEUR_ID"); --- V_INDICATEUR_1111 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1111" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t.ANNEE_ID,t.INTERVENANT_ID,t.STRUCTURE_ID FROM ( -SELECT DISTINCT - idc.annee_id, - idc.intervenant_id, - idc.structure_id -FROM - v_indic_depass_charges idc - JOIN type_volume_horaire tvh ON tvh.id = idc.type_volume_horaire_id - LEFT JOIN periode p ON p.id = idc.periode_id -WHERE - (p.code = 'S2' OR p.id IS NULL) - AND tvh.code = 'PREVU' -) t; +-- AFFECTATION_HDFK_IDX +CREATE INDEX "AFFECTATION_HDFK_IDX" ON "AFFECTATION" ("HISTO_DESTRUCTEUR_ID"); --- V_INDICATEUR_1120 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1120" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t.ANNEE_ID,t.INTERVENANT_ID,t.STRUCTURE_ID FROM ( -SELECT DISTINCT - idc.annee_id, - idc.intervenant_id, - idc.structure_id -FROM - v_indic_depass_charges idc - JOIN type_volume_horaire tvh ON tvh.id = idc.type_volume_horaire_id - LEFT JOIN periode p ON p.id = idc.periode_id -WHERE - (p.code = 'S1' OR p.id IS NULL) - AND tvh.code = 'REALISE' -) t; +-- AFFECTATION_HMFK_IDX +CREATE INDEX "AFFECTATION_HMFK_IDX" ON "AFFECTATION" ("HISTO_MODIFICATEUR_ID"); --- V_INDICATEUR_1121 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1121" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t.ANNEE_ID,t.INTERVENANT_ID,t.STRUCTURE_ID FROM ( -SELECT DISTINCT - idc.annee_id, - idc.intervenant_id, - idc.structure_id -FROM - v_indic_depass_charges idc - JOIN type_volume_horaire tvh ON tvh.id = idc.type_volume_horaire_id - LEFT JOIN periode p ON p.id = idc.periode_id -WHERE - (p.code = 'S2' OR p.id IS NULL) - AND tvh.code = 'REALISE' -) t; +-- AFFECTATION_PK +CREATE UNIQUE INDEX "AFFECTATION_PK" ON "AFFECTATION" ("ID"); --- V_INDICATEUR_120 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_120" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT - rownum id, - t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM ( +-- AFFECTATION_ROLE_FK_IDX +CREATE INDEX "AFFECTATION_ROLE_FK_IDX" ON "AFFECTATION" ("ROLE_ID"); -SELECT DISTINCT - s.annee_id annee_id, - s.intervenant_id intervenant_id, - s.structure_id structure_id -FROM - tbl_service s -WHERE - s.type_intervenant_code = 'P' - AND s.type_volume_horaire_code = 'PREVU' - AND s.intervenant_structure_id <> s.structure_id - AND s.valide > 0 - AND s.structure_id IS NOT NULL +-- AFFECTATION_R_HCFK_IDX +CREATE INDEX "AFFECTATION_R_HCFK_IDX" ON "AFFECTATION_RECHERCHE" ("HISTO_CREATEUR_ID"); -) t; +-- AFFECTATION_R_HDFK_IDX +CREATE INDEX "AFFECTATION_R_HDFK_IDX" ON "AFFECTATION_RECHERCHE" ("HISTO_DESTRUCTEUR_ID"); --- V_INDICATEUR_1210 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1210" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS - SELECT - i.id id, - i.annee_id, - i.id intervenant_id, - i.structure_id, - AVG(t.plafond) plafond, - AVG(t.heures) heures -FROM - ( - SELECT - vhr.type_volume_horaire_id type_volume_horaire_id, - sr.intervenant_id intervenant_id, - fr.plafond plafond, - fr.id fr_id, - SUM(vhr.heures) heures - FROM - service_referentiel sr - JOIN fonction_referentiel fr ON fr.id = sr.fonction_id - JOIN volume_horaire_ref vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL - JOIN type_volume_horaire tvh ON tvh.id = vhr.type_volume_horaire_id AND tvh.code= 'PREVU' - WHERE - sr.histo_destruction IS NULL - GROUP BY - vhr.type_volume_horaire_id, - sr.intervenant_id, - fr.plafond, - fr.id - ) t - JOIN intervenant i ON i.id = t.intervenant_id -WHERE - t.heures > t.plafond - /*i.id*/ -GROUP BY - t.type_volume_horaire_id, - i.annee_id, - i.id, - i.structure_id; +-- AFFECTATION_R_HMFK_IDX +CREATE INDEX "AFFECTATION_R_HMFK_IDX" ON "AFFECTATION_RECHERCHE" ("HISTO_MODIFICATEUR_ID"); --- V_INDICATEUR_1220 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_1220" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS - SELECT - i.id id, - i.annee_id, - i.id intervenant_id, - i.structure_id, - AVG(t.plafond) plafond, - AVG(t.heures) heures -FROM - ( - SELECT - vhr.type_volume_horaire_id type_volume_horaire_id, - sr.intervenant_id intervenant_id, - fr.plafond plafond, - fr.id fr_id, - SUM(vhr.heures) heures - FROM - service_referentiel sr - JOIN fonction_referentiel fr ON fr.id = sr.fonction_id - JOIN volume_horaire_ref vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL - JOIN type_volume_horaire tvh ON tvh.id = vhr.type_volume_horaire_id AND tvh.code= 'REALISE' - WHERE - sr.histo_destruction IS NULL - GROUP BY - vhr.type_volume_horaire_id, - sr.intervenant_id, - fr.plafond, - fr.id - ) t - JOIN intervenant i ON i.id = t.intervenant_id -WHERE - t.heures > t.plafond - /*i.id*/ -GROUP BY - t.type_volume_horaire_id, - i.annee_id, - i.id, - i.structure_id; +-- AFFECTATION_R_PK +CREATE UNIQUE INDEX "AFFECTATION_R_PK" ON "AFFECTATION_RECHERCHE" ("ID"); --- V_INDICATEUR_130 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_130" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT - rownum id, - t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM ( +-- AFFECTATION_R_SOURCE_FK_IDX +CREATE INDEX "AFFECTATION_R_SOURCE_FK_IDX" ON "AFFECTATION_RECHERCHE" ("SOURCE_ID"); -SELECT DISTINCT - s.annee_id annee_id, - s.intervenant_id intervenant_id, - i.structure_id structure_id -FROM - tbl_service s - JOIN intervenant i ON i.id = s.intervenant_id - JOIN statut_intervenant si ON si.id = i.statut_id -WHERE - si.tem_biatss = 1 - AND s.type_volume_horaire_code = 'PREVU' - AND s.intervenant_structure_id <> s.structure_id - AND s.valide > 0 - AND s.structure_id IS NOT NULL +-- AFFECTATION_R_SRC_UN +CREATE UNIQUE INDEX "AFFECTATION_R_SRC_UN" ON "AFFECTATION_RECHERCHE" ("SOURCE_CODE"); -) t; +-- AFFECTATION_R_STRUCTURE_FK_IDX +CREATE INDEX "AFFECTATION_R_STRUCTURE_FK_IDX" ON "AFFECTATION_RECHERCHE" ("STRUCTURE_ID"); --- V_INDICATEUR_210 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_210" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT - rownum id, - w.annee_id, - w.intervenant_id, - w.structure_id -FROM - tbl_workflow w -WHERE - w.atteignable = 1 - AND w.etape_code = 'CONSEIL_RESTREINT' - AND w.objectif > 0 - AND w.realisation < 1; +-- AFFECTATION_SOURCE_FK_IDX +CREATE INDEX "AFFECTATION_SOURCE_FK_IDX" ON "AFFECTATION" ("SOURCE_ID"); --- V_INDICATEUR_220 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_220" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT - rownum id, - w.annee_id, - w.intervenant_id, - i.structure_id -FROM - tbl_workflow w - JOIN intervenant i ON i.id = w.intervenant_id -WHERE - w.atteignable = 1 - AND w.etape_code = 'CONSEIL_ACADEMIQUE' - AND w.objectif > 0 - AND w.realisation < 1; +-- AFFECTATION_SOURCE_UN +CREATE UNIQUE INDEX "AFFECTATION_SOURCE_UN" ON "AFFECTATION" ("SOURCE_CODE"); --- V_INDICATEUR_310 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_310" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - WITH caok AS ( - SELECT - w.intervenant_id - FROM - tbl_workflow w - WHERE - w.objectif > 0 - AND w.etape_code = 'CONSEIL_ACADEMIQUE' - AND w.realisation = w.objectif -) -SELECT - rownum id, - w.annee_id, - w.intervenant_id, - w.structure_id -FROM - tbl_workflow w - JOIN caok ON caok.intervenant_id = w.intervenant_id -WHERE - w.atteignable = 1 - AND w.etape_code = 'CONTRAT' - AND w.objectif > 0 - AND w.realisation < 1; +-- AFFECTATION_STRUCTURE_FK_IDX +CREATE INDEX "AFFECTATION_STRUCTURE_FK_IDX" ON "AFFECTATION" ("STRUCTURE_ID"); --- V_INDICATEUR_320 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_320" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT - rownum id, - t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" -FROM ( -SELECT DISTINCT - w.annee_id, - w.intervenant_id, - w.structure_id -FROM - tbl_workflow w - LEFT JOIN tbl_contrat c ON c.INTERVENANT_ID = w.intervenant_id AND w.structure_id = c.structure_id -WHERE - w.atteignable = 1 - AND w.etape_code = 'CONTRAT' - AND w.objectif > 0 - AND w.realisation = 0 - AND NVL(c.EDITE,0) <> 1 -) t; +-- AFFECTATION__UN +CREATE UNIQUE INDEX "AFFECTATION__UN" ON "AFFECTATION" ("ROLE_ID", "STRUCTURE_ID", "HISTO_DESTRUCTION", "UTILISATEUR_ID"); + +-- AGREMENT_HCFK_IDX +CREATE INDEX "AGREMENT_HCFK_IDX" ON "AGREMENT" ("HISTO_CREATEUR_ID"); + +-- AGREMENT_HDFK_IDX +CREATE INDEX "AGREMENT_HDFK_IDX" ON "AGREMENT" ("HISTO_DESTRUCTEUR_ID"); + +-- AGREMENT_HMFK_IDX +CREATE INDEX "AGREMENT_HMFK_IDX" ON "AGREMENT" ("HISTO_MODIFICATEUR_ID"); + +-- AGREMENT_INTERVENANT_FK_IDX +CREATE INDEX "AGREMENT_INTERVENANT_FK_IDX" ON "AGREMENT" ("INTERVENANT_ID"); + +-- AGREMENT_PK +CREATE UNIQUE INDEX "AGREMENT_PK" ON "AGREMENT" ("ID"); + +-- AGREMENT_STRUCTURE_FK_IDX +CREATE INDEX "AGREMENT_STRUCTURE_FK_IDX" ON "AGREMENT" ("STRUCTURE_ID"); + +-- AGREMENT_TYPE_AGREMENT_FK_IDX +CREATE INDEX "AGREMENT_TYPE_AGREMENT_FK_IDX" ON "AGREMENT" ("TYPE_AGREMENT_ID"); + +-- AGREMENT__UN +CREATE UNIQUE INDEX "AGREMENT__UN" ON "AGREMENT" ("TYPE_AGREMENT_ID", "INTERVENANT_ID", "STRUCTURE_ID", "HISTO_DESTRUCTION"); + +-- AII_FK_IDX +CREATE INDEX "AII_FK_IDX" ON "ADRESSE_INTERVENANT" ("INTERVENANT_ID"); + +-- AI_SOURCE_FK_IDX +CREATE INDEX "AI_SOURCE_FK_IDX" ON "ADRESSE_INTERVENANT" ("SOURCE_ID"); + +-- ANNEE_PK +CREATE UNIQUE INDEX "ANNEE_PK" ON "ANNEE" ("ID"); + +-- AR_INTERVENANT_FK_IDX +CREATE INDEX "AR_INTERVENANT_FK_IDX" ON "AFFECTATION_RECHERCHE" ("INTERVENANT_ID"); --- V_INDICATEUR_330 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_330" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - WITH has_contrat AS ( - SELECT DISTINCT - intervenant_id - FROM - tbl_contrat - WHERE - edite > 0 -) -SELECT - rownum id, - w.annee_id, - w.intervenant_id, - w.structure_id -FROM - tbl_workflow w - JOIN has_contrat hc ON hc.intervenant_id = w.intervenant_id -WHERE - w.atteignable = 1 - AND w.etape_code = 'CONTRAT' - AND w.objectif > 0 - AND w.realisation < w.objectif; +-- AS_SOURCE_FK_IDX +CREATE INDEX "AS_SOURCE_FK_IDX" ON "ADRESSE_STRUCTURE" ("SOURCE_ID"); --- V_INDICATEUR_340 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_340" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT - rownum id, - s.annee_id, - s.intervenant_id, - s.structure_id -FROM - tbl_service s - JOIN tbl_workflow w ON w.intervenant_id = s.intervenant_id AND w.structure_id = s.structure_id -WHERE - s.type_intervenant_code = 'V' - AND s.type_volume_horaire_code = 'PREVU' - AND nbvh <> valide - AND w.etape_code = 'CONTRAT' - AND w.atteignable = 1 - AND w.objectif > 0 - AND w.realisation = w.objectif; +-- AS_STRUCTURE_FK_IDX +CREATE INDEX "AS_STRUCTURE_FK_IDX" ON "ADRESSE_STRUCTURE" ("STRUCTURE_ID"); --- V_INDICATEUR_350 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_350" ("ID", "INTERVENANT_ID", "ANNEE_ID", "STRUCTURE_ID", "CONTRAT_ID") AS - SELECT - rownum id, - t."INTERVENANT_ID",t."ANNEE_ID",t."STRUCTURE_ID",t."CONTRAT_ID" -FROM ( -SELECT DISTINCT - i.id intervenant_id, - i.annee_id annee_id, - c.structure_id structure_id, - c.id contrat_id -FROM - contrat c - JOIN contrat_fichier cf ON cf.contrat_id = c.id - JOIN fichier f ON f.id = cf.fichier_id - AND f.histo_destruction IS NULL - JOIN intervenant i ON i.id = c.intervenant_id -WHERE - c.histo_destruction IS NULL -) t; +-- CAMPAGNE_PK_IDX +CREATE UNIQUE INDEX "CAMPAGNE_PK_IDX" ON "CAMPAGNE_SAISIE" ("ID"); --- V_INDICATEUR_360 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_360" ("ID", "INTERVENANT_ID", "ANNEE_ID", "STRUCTURE_ID", "CONTRAT_ID") AS - SELECT - rownum id, - t."INTERVENANT_ID",t."ANNEE_ID",t."STRUCTURE_ID",t."CONTRAT_ID" -FROM ( -SELECT DISTINCT - i.id intervenant_id, - i.annee_id annee_id, - c.structure_id structure_id, - c.id contrat_id -FROM - contrat c - JOIN intervenant i ON i.id = c.intervenant_id - JOIN tbl_workflow w ON w.intervenant_id = i.id AND w.structure_id = c.structure_id AND w.etape_code = 'CONTRAT' AND w.atteignable = 1 - JOIN validation v ON v.id = c.validation_id AND v.histo_destruction IS NULL -WHERE - c.histo_destruction IS NULL - AND c.date_retour_signe IS NULL -) t; +-- CAMPAGNE_SAISIE_ANNEE_FK_IDX +CREATE INDEX "CAMPAGNE_SAISIE_ANNEE_FK_IDX" ON "CAMPAGNE_SAISIE" ("ANNEE_ID"); --- V_INDICATEUR_410 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_410" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT - rownum id, - d.annee_id, - d.intervenant_id, - i.structure_id -FROM - tbl_dossier d - JOIN intervenant i ON i.id = d.intervenant_id -WHERE - d.dossier_id IS NOT NULL - AND d.validation_id IS NULL - AND d.peut_saisir_dossier = 1; +-- CAMPAGNE_SAISIE__UN_IDX +CREATE UNIQUE INDEX "CAMPAGNE_SAISIE__UN_IDX" ON "CAMPAGNE_SAISIE" ("ANNEE_ID", "TYPE_INTERVENANT_ID", "TYPE_VOLUME_HORAIRE_ID"); --- V_INDICATEUR_420 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_420" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM ( - SELECT DISTINCT - i.annee_id annee_id, - i.id intervenant_id, - i.structure_id - FROM - indic_modif_dossier d - JOIN intervenant i ON i.id = d.intervenant_id - WHERE - d.histo_destruction IS NULL -) t; +-- CATEGORIE_PRIVILEGE_PK +CREATE UNIQUE INDEX "CATEGORIE_PRIVILEGE_PK" ON "CATEGORIE_PRIVILEGE" ("ID"); --- V_INDICATEUR_510 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_510" ("ID", "INTERVENANT_ID", "ANNEE_ID", "STRUCTURE_ID", "ELEMENTS") AS - WITH t AS ( -SELECT - s.intervenant_id, - s.annee_id, - s.structure_id, - listagg( ep.source_code || ' - ' || ep.libelle, '||') WITHIN GROUP (ORDER BY ep.libelle) elements -FROM - tbl_service s - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id -WHERE - ( - s.has_heures_mauvaise_periode = 1 - OR s.etape_histo = 0 - OR s.element_pedagogique_histo = 0 - ) - AND s.heures > 0 -GROUP BY - s.intervenant_id, - s.annee_id, - s.structure_id -) -SELECT - rownum id, t."INTERVENANT_ID",t."ANNEE_ID",t."STRUCTURE_ID", t.elements -FROM t; +-- CATEGORIE_PRIVILEGE__UN +CREATE UNIQUE INDEX "CATEGORIE_PRIVILEGE__UN" ON "CATEGORIE_PRIVILEGE" ("CODE"); --- V_INDICATEUR_520 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_520" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS - SELECT - fr.id id, - i.annee_id annee_id, - i.id intervenant_id, - i.structure_id structure_id, - si.plafond_hc_hors_remu_fc plafond, - fr.heures_compl_fa + fr.heures_compl_fc + fr.heures_compl_fi + fr.heures_compl_referentiel heures -FROM - formule_resultat fr - JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id - JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN statut_intervenant si ON si.id = i.statut_id -WHERE - tvh.code = 'PREVU' - AND evh.code = 'saisi' - AND si.plafond_hc_hors_remu_fc < fr.heures_compl_fa + fr.heures_compl_fc + fr.heures_compl_fi + fr.heures_compl_referentiel; +-- CCEP_CENTRE_COUT_FK_IDX +CREATE INDEX "CCEP_CENTRE_COUT_FK_IDX" ON "CENTRE_COUT_EP" ("CENTRE_COUT_ID"); --- V_INDICATEUR_530 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_530" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS - SELECT - fr.id id, - i.annee_id annee_id, - i.id intervenant_id, - i.structure_id structure_id, - si.plafond_hc_hors_remu_fc plafond, - fr.heures_compl_fa + fr.heures_compl_fc + fr.heures_compl_fi + fr.heures_compl_referentiel heures -FROM - formule_resultat fr - JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id - JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN statut_intervenant si ON si.id = i.statut_id -WHERE - tvh.code = 'REALISE' - AND evh.code = 'saisi' - AND si.plafond_hc_hors_remu_fc < fr.heures_compl_fa + fr.heures_compl_fc + fr.heures_compl_fi + fr.heures_compl_referentiel; +-- CCEP_EP_FK_IDX +CREATE INDEX "CCEP_EP_FK_IDX" ON "CENTRE_COUT_EP" ("ELEMENT_PEDAGOGIQUE_ID"); --- V_INDICATEUR_540 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_540" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS - SELECT - rownum id, - i.annee_id annee_id, - i.id intervenant_id, - i.structure_id structure_id, - ROUND( (COALESCE(si.plafond_hc_remu_fc,0) - COALESCE(i.montant_indemnite_fc,0)) / a.taux_hetd, 2 ) plafond, - fr.heures_compl_fc_majorees heures -FROM - intervenant i - JOIN annee a ON a.id = i.annee_id - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN etat_volume_horaire evh ON evh.code = 'saisi' - JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id - JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id -WHERE - fr.heures_compl_fc_majorees > ROUND( (COALESCE(si.plafond_hc_remu_fc,0) - COALESCE(i.montant_indemnite_fc,0)) / a.taux_hetd, 2 ) - AND tvh.code = 'PREVU'; +-- CCEP_SOURCE_FK_IDX +CREATE INDEX "CCEP_SOURCE_FK_IDX" ON "CENTRE_COUT_EP" ("SOURCE_ID"); --- V_INDICATEUR_550 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_550" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS - SELECT - rownum id, - i.annee_id annee_id, - i.id intervenant_id, - i.structure_id structure_id, - ROUND( (COALESCE(si.plafond_hc_remu_fc,0) - COALESCE(i.montant_indemnite_fc,0)) / a.taux_hetd, 2 ) plafond, - fr.heures_compl_fc_majorees heures -FROM - intervenant i - JOIN annee a ON a.id = i.annee_id - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN etat_volume_horaire evh ON evh.code = 'saisi' - JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id - JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id -WHERE - fr.heures_compl_fc_majorees > ROUND( (COALESCE(si.plafond_hc_remu_fc,0) - COALESCE(i.montant_indemnite_fc,0)) / a.taux_hetd, 2 ) - AND tvh.code = 'REALISE'; +-- CCEP_TYPE_HEURES_FK_IDX +CREATE INDEX "CCEP_TYPE_HEURES_FK_IDX" ON "CENTRE_COUT_EP" ("TYPE_HEURES_ID"); --- V_INDICATEUR_560 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_560" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS - SELECT - rownum id, - i.annee_id annee_id, - i.id intervenant_id, - i.structure_id structure_id, - si.maximum_hetd plafond, - fr.total heures -FROM - intervenant i - JOIN etat_volume_horaire evh ON evh.code = 'saisi' - JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code= 'PREVU' -WHERE - fr.total > si.maximum_hetd; +-- CCS_CC_S__UN_IDX +CREATE UNIQUE INDEX "CCS_CC_S__UN_IDX" ON "CENTRE_COUT_STRUCTURE" ("CENTRE_COUT_ID", "STRUCTURE_ID", "HISTO_DESTRUCTION"); --- V_INDICATEUR_570 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_570" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS - SELECT - rownum id, - i.annee_id annee_id, - i.id intervenant_id, - i.structure_id structure_id, - si.maximum_hetd plafond, - fr.total heures -FROM - intervenant i - JOIN etat_volume_horaire evh ON evh.code = 'saisi' - JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code= 'REALISE' -WHERE - fr.total > si.maximum_hetd; +-- CCS_CENTRE_COUT_FK_IDX +CREATE INDEX "CCS_CENTRE_COUT_FK_IDX" ON "CENTRE_COUT_STRUCTURE" ("CENTRE_COUT_ID"); --- V_INDICATEUR_610 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_610" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "STATUT_INTERVENANT_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID",t."STATUT_INTERVENANT_ID" FROM -( -SELECT DISTINCT - w.annee_id, - w.intervenant_id, - w.structure_id, - w.statut_intervenant_id -FROM - tbl_workflow w -WHERE - w.etape_code = 'SERVICE_VALIDATION' - AND w.type_intervenant_code = 'P' - AND w.atteignable = 1 - AND w.objectif > w.realisation -) t; +-- CCS_SOURCE_CODE_UN_IDX +CREATE UNIQUE INDEX "CCS_SOURCE_CODE_UN_IDX" ON "CENTRE_COUT_STRUCTURE" ("SOURCE_CODE", "HISTO_DESTRUCTION"); + +-- CCS_STRUCTURE_FK_IDX +CREATE INDEX "CCS_STRUCTURE_FK_IDX" ON "CENTRE_COUT_STRUCTURE" ("STRUCTURE_ID"); + +-- CC_ACTIVITE_FA +CREATE INDEX "CC_ACTIVITE_FA" ON "CC_ACTIVITE" ("FA"); + +-- CC_ACTIVITE_FC +CREATE INDEX "CC_ACTIVITE_FC" ON "CC_ACTIVITE" ("FC"); + +-- CC_ACTIVITE_FI +CREATE INDEX "CC_ACTIVITE_FI" ON "CC_ACTIVITE" ("FI"); + +-- CC_ACTIVITE_HCFK_IDX +CREATE INDEX "CC_ACTIVITE_HCFK_IDX" ON "CC_ACTIVITE" ("HISTO_CREATEUR_ID"); + +-- CC_ACTIVITE_HDFK_IDX +CREATE INDEX "CC_ACTIVITE_HDFK_IDX" ON "CC_ACTIVITE" ("HISTO_DESTRUCTEUR_ID"); + +-- CC_ACTIVITE_HMFK_IDX +CREATE INDEX "CC_ACTIVITE_HMFK_IDX" ON "CC_ACTIVITE" ("HISTO_MODIFICATEUR_ID"); + +-- CC_ACTIVITE_PK +CREATE UNIQUE INDEX "CC_ACTIVITE_PK" ON "CC_ACTIVITE" ("ID"); + +-- CC_ACTIVITE_REF +CREATE INDEX "CC_ACTIVITE_REF" ON "CC_ACTIVITE" ("REFERENTIEL"); + +-- CC_TYPE_RESSOURCE_FK_IDX +CREATE INDEX "CC_TYPE_RESSOURCE_FK_IDX" ON "CENTRE_COUT" ("TYPE_RESSOURCE_ID"); --- V_INDICATEUR_620 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_620" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM -( -SELECT DISTINCT - w.annee_id, - w.intervenant_id, - w.structure_id -FROM - tbl_workflow w -WHERE - w.etape_code = 'REFERENTIEL_VALIDATION' - AND w.type_intervenant_code = 'P' - AND w.atteignable = 1 - AND w.objectif > w.realisation -) t; +-- CENTRE_COUT_ACTIVITE_FK_IDX +CREATE INDEX "CENTRE_COUT_ACTIVITE_FK_IDX" ON "CENTRE_COUT" ("ACTIVITE_ID"); --- V_INDICATEUR_630 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_630" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM -( -SELECT DISTINCT - w.annee_id, - w.intervenant_id, - i.structure_id -FROM - tbl_workflow w - JOIN intervenant i ON i.id = w.intervenant_id -WHERE - w.etape_code = 'CLOTURE_REALISE' - AND w.atteignable = 1 - AND w.objectif > w.realisation -) t; +-- CENTRE_COUT_CENTRE_COUT_FK_IDX +CREATE INDEX "CENTRE_COUT_CENTRE_COUT_FK_IDX" ON "CENTRE_COUT" ("PARENT_ID"); --- V_INDICATEUR_640 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_640" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM -( -SELECT DISTINCT - w.annee_id, - w.intervenant_id, - w.structure_id -FROM - tbl_workflow w - JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id -WHERE - w.etape_code = 'SERVICE_VALIDATION_REALISE' - AND w.objectif > w.realisation - AND w.atteignable = 1 - - AND wc.etape_code = 'CLOTURE_REALISE' - AND wc.objectif = wc.realisation -) t; +-- CENTRE_COUT_EP_HCFK_IDX +CREATE INDEX "CENTRE_COUT_EP_HCFK_IDX" ON "CENTRE_COUT_EP" ("HISTO_CREATEUR_ID"); --- V_INDICATEUR_650 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_650" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "STRUCTURES_CONCERNEES") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID",t."STRUCTURES_CONCERNEES" FROM -( -SELECT - w.annee_id, - w.intervenant_id, - i.structure_id, - LISTAGG(s.libelle_court, '||') WITHIN GROUP (ORDER BY s.libelle_court) structures_concernees -FROM - tbl_workflow w - JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id - JOIN intervenant i ON i.id = wc.intervenant_id - JOIN structure s ON s.id = w.structure_id -WHERE - w.etape_code = 'SERVICE_VALIDATION_REALISE' - AND w.objectif > w.realisation - AND w.atteignable = 1 - - AND wc.etape_code = 'CLOTURE_REALISE' - AND wc.objectif = wc.realisation - AND w.structure_id <> i.structure_id -GROUP BY - w.annee_id, - w.intervenant_id, - i.structure_id -) t; +-- CENTRE_COUT_EP_HDFK_IDX +CREATE INDEX "CENTRE_COUT_EP_HDFK_IDX" ON "CENTRE_COUT_EP" ("HISTO_DESTRUCTEUR_ID"); --- V_INDICATEUR_660 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_660" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM -( -SELECT - w.annee_id, - w.intervenant_id, - i.structure_id -FROM - tbl_workflow w - JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id - JOIN intervenant i ON i.id = wc.intervenant_id - JOIN structure s ON s.id = w.structure_id -WHERE - w.etape_code = 'REFERENTIEL_VALIDATION_REALISE' - AND w.objectif > w.realisation - AND w.atteignable = 1 - - AND wc.etape_code = 'CLOTURE_REALISE' - AND wc.objectif = wc.realisation - AND w.structure_id = i.structure_id -GROUP BY - w.annee_id, - w.intervenant_id, - i.structure_id -) t; +-- CENTRE_COUT_EP_HMFK_IDX +CREATE INDEX "CENTRE_COUT_EP_HMFK_IDX" ON "CENTRE_COUT_EP" ("HISTO_MODIFICATEUR_ID"); --- V_INDICATEUR_670 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_670" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "STRUCTURES_CONCERNEES") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID",t."STRUCTURES_CONCERNEES" FROM -( -SELECT - w.annee_id, - w.intervenant_id, - i.structure_id, - LISTAGG(s.libelle_court, '||') WITHIN GROUP (ORDER BY s.libelle_court) structures_concernees -FROM - tbl_workflow w - JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id - JOIN intervenant i ON i.id = wc.intervenant_id - JOIN structure s ON s.id = w.structure_id -WHERE - w.etape_code = 'REFERENTIEL_VALIDATION_REALISE' - AND w.objectif > w.realisation - AND w.atteignable = 1 - - AND wc.etape_code = 'CLOTURE_REALISE' - AND wc.objectif = wc.realisation - AND w.structure_id <> i.structure_id -GROUP BY - w.annee_id, - w.intervenant_id, - i.structure_id -) t; +-- CENTRE_COUT_EP_PK +CREATE UNIQUE INDEX "CENTRE_COUT_EP_PK" ON "CENTRE_COUT_EP" ("ID"); --- V_INDICATEUR_680 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_680" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS - SELECT - fr.id id, - i.annee_id annee_id, - i.id intervenant_id, - i.structure_id structure_id, - si.plafond_referentiel plafond, - fr.heures_compl_referentiel heures -FROM - formule_resultat fr - JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id - JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN statut_intervenant si ON si.id = i.statut_id -WHERE - tvh.code = 'PREVU' - AND evh.code = 'saisi' - AND si.plafond_referentiel < fr.service_referentiel + fr.heures_compl_referentiel; +-- CENTRE_COUT_EP__UN +CREATE UNIQUE INDEX "CENTRE_COUT_EP__UN" ON "CENTRE_COUT_EP" ("CENTRE_COUT_ID", "ELEMENT_PEDAGOGIQUE_ID", "TYPE_HEURES_ID", "HISTO_DESTRUCTION"); --- V_INDICATEUR_690 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_690" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PLAFOND", "HEURES") AS - SELECT - fr.id id, - i.annee_id annee_id, - i.id intervenant_id, - i.structure_id structure_id, - si.plafond_referentiel plafond, - fr.heures_compl_referentiel heures -FROM - formule_resultat fr - JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id - JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN statut_intervenant si ON si.id = i.statut_id -WHERE - tvh.code = 'REALISE' - AND evh.code = 'saisi' - AND si.plafond_referentiel < fr.service_referentiel + fr.heures_compl_referentiel; +-- CENTRE_COUT_HCFK_IDX +CREATE INDEX "CENTRE_COUT_HCFK_IDX" ON "CENTRE_COUT" ("HISTO_CREATEUR_ID"); --- V_INDICATEUR_710 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_710" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM -( -SELECT DISTINCT - w.annee_id, - w.intervenant_id, - w.structure_id -FROM - tbl_workflow w -WHERE - w.etape_code = 'SERVICE_VALIDATION' - AND w.type_intervenant_code = 'E' - AND w.atteignable = 1 - AND w.objectif > w.realisation -) t; +-- CENTRE_COUT_HDFK_IDX +CREATE INDEX "CENTRE_COUT_HDFK_IDX" ON "CENTRE_COUT" ("HISTO_DESTRUCTEUR_ID"); --- V_INDICATEUR_720 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_720" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM -( -SELECT DISTINCT - w.annee_id, - w.intervenant_id, - w.structure_id -FROM - tbl_workflow w -WHERE - w.etape_code = 'SERVICE_VALIDATION_REALISE' - AND w.type_intervenant_code = 'E' - AND w.atteignable = 1 - AND w.objectif > w.realisation -) t; +-- CENTRE_COUT_HMFK_IDX +CREATE INDEX "CENTRE_COUT_HMFK_IDX" ON "CENTRE_COUT" ("HISTO_MODIFICATEUR_ID"); --- V_INDICATEUR_810 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_810" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM -( -SELECT DISTINCT - w.annee_id, - w.intervenant_id, - w.structure_id -FROM - tbl_workflow w -WHERE - w.etape_code = 'DEMANDE_MEP' - AND w.type_intervenant_code = 'P' - AND w.atteignable = 1 - AND w.objectif > w.realisation -) t; +-- CENTRE_COUT_PK +CREATE UNIQUE INDEX "CENTRE_COUT_PK" ON "CENTRE_COUT" ("ID"); --- V_INDICATEUR_820 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_820" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM -( -SELECT DISTINCT - w.annee_id, - w.intervenant_id, - w.structure_id -FROM - tbl_workflow w -WHERE - w.etape_code = 'SAISIE_MEP' - AND w.type_intervenant_code = 'P' - AND w.atteignable = 1 - AND w.objectif > w.realisation -) t; +-- CENTRE_COUT_SOURCE_FK_IDX +CREATE INDEX "CENTRE_COUT_SOURCE_FK_IDX" ON "CENTRE_COUT" ("SOURCE_ID"); --- V_INDICATEUR_910 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_910" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM -( -SELECT DISTINCT - w.annee_id, - w.intervenant_id, - w.structure_id -FROM - tbl_workflow w -WHERE - w.etape_code = 'DEMANDE_MEP' - AND w.type_intervenant_code = 'E' - AND w.atteignable = 1 - AND w.objectif > w.realisation -) t; +-- CENTRE_COUT_STRUCTURE_HCFK_IDX +CREATE INDEX "CENTRE_COUT_STRUCTURE_HCFK_IDX" ON "CENTRE_COUT_STRUCTURE" ("HISTO_CREATEUR_ID"); --- V_INDICATEUR_920 -CREATE OR REPLACE FORCE VIEW "V_INDICATEUR_920" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM -( -SELECT DISTINCT - w.annee_id, - w.intervenant_id, - w.structure_id -FROM - tbl_workflow w -WHERE - w.etape_code = 'SAISIE_MEP' - AND w.type_intervenant_code = 'E' - AND w.atteignable = 1 - AND w.objectif > w.realisation -) t; +-- CENTRE_COUT_STRUCTURE_HDFK_IDX +CREATE INDEX "CENTRE_COUT_STRUCTURE_HDFK_IDX" ON "CENTRE_COUT_STRUCTURE" ("HISTO_DESTRUCTEUR_ID"); + +-- CENTRE_COUT_STRUCTURE_HMFK_IDX +CREATE INDEX "CENTRE_COUT_STRUCTURE_HMFK_IDX" ON "CENTRE_COUT_STRUCTURE" ("HISTO_MODIFICATEUR_ID"); + +-- CENTRE_COUT_STRUCTURE_PK_IDX +CREATE UNIQUE INDEX "CENTRE_COUT_STRUCTURE_PK_IDX" ON "CENTRE_COUT_STRUCTURE" ("ID"); + +-- CHEMIN_PEDAGOGIQUE_HCFK_IDX +CREATE INDEX "CHEMIN_PEDAGOGIQUE_HCFK_IDX" ON "CHEMIN_PEDAGOGIQUE" ("HISTO_CREATEUR_ID"); + +-- CHEMIN_PEDAGOGIQUE_HDFK_IDX +CREATE INDEX "CHEMIN_PEDAGOGIQUE_HDFK_IDX" ON "CHEMIN_PEDAGOGIQUE" ("HISTO_DESTRUCTEUR_ID"); + +-- CHEMIN_PEDAGOGIQUE_HMFK_IDX +CREATE INDEX "CHEMIN_PEDAGOGIQUE_HMFK_IDX" ON "CHEMIN_PEDAGOGIQUE" ("HISTO_MODIFICATEUR_ID"); + +-- CHEMIN_PEDAGOGIQUE_PK +CREATE UNIQUE INDEX "CHEMIN_PEDAGOGIQUE_PK" ON "CHEMIN_PEDAGOGIQUE" ("ID"); + +-- CHEMIN_PEDAGO_SRC_ID_UN +CREATE UNIQUE INDEX "CHEMIN_PEDAGO_SRC_ID_UN" ON "CHEMIN_PEDAGOGIQUE" ("SOURCE_CODE"); + +-- CIVILITE_LIBELLE_COURT_UN +CREATE UNIQUE INDEX "CIVILITE_LIBELLE_COURT_UN" ON "CIVILITE" ("LIBELLE_COURT"); + +-- CIVILITE_PK +CREATE UNIQUE INDEX "CIVILITE_PK" ON "CIVILITE" ("ID"); --- V_INDIC_ATTENTE_DEMANDE_MEP -CREATE OR REPLACE FORCE VIEW "V_INDIC_ATTENTE_DEMANDE_MEP" ("ID", "INTERVENANT_ID", "SOURCE_CODE", "CODE", "ANNEE_ID", "STRUCTURE_ID", "TOTAL_HEURES_MEP", "TOTAL_HEURES_COMPL") AS - select to_number(i.id||dmep.structure_id) id, i.id intervenant_id, i.source_code, ti.code, i.annee_id, dmep.structure_id, 0 TOTAL_HEURES_MEP, 0 TOTAL_HEURES_COMPL - from intervenant i - join statut_intervenant si on si.id = i.statut_id - join type_intervenant ti on ti.id = si.type_intervenant_id - -- l'intervenant doit avoir des heures disponibles pour une demande de MEP - join V_HAS_DMEP_A_FAIRE dmep on dmep.intervenant_id = i.id and dmep.has_dmep_a_faire <> 0 - where ( - -- un vacataire n'a pas d'autre contrainte - ti.code = 'E' - or - -- mais un permanent doit... - ( - -- avoir sa saisie de service réalisé clôturée - exists ( - select * from validation v - join type_validation tv on v.type_validation_id = tv.id and tv.code = 'CLOTURE_REALISE' - where v.intervenant_id = i.id and v.histo_destruction IS NULL - ) - -- et tous ses enseignements réalisés validés (toutes composantes d'intervention confondues) - and not exists ( - select * from volume_horaire vh - join service s on vh.service_id = s.id and s.histo_destruction IS NULL - join type_volume_horaire tvh on vh.type_volume_horaire_id = tvh.id and tvh.code = 'REALISE' - left join validation_vol_horaire vvh on vvh.volume_horaire_id = vh.id - left join validation v on vvh.validation_id = v.id and v.histo_destruction IS NULL - left join type_validation tv on v.type_validation_id = tv.id and tv.code = 'SERVICES_PAR_COMP' - where s.intervenant_id = i.id and v.id is null and vh.histo_destruction IS NULL - ) - -- et tout son référentiel réalisé validé (toutes composantes d'intervention confondues) - and not exists ( - select * from volume_horaire_ref vh - join service_referentiel s on vh.service_referentiel_id = s.id and s.histo_destruction IS NULL - join type_volume_horaire tvh on vh.type_volume_horaire_id = tvh.id and tvh.code = 'REALISE' - left join validation_vol_horaire_ref vvh on vvh.volume_horaire_ref_id = vh.id - left join validation v on vvh.validation_id = v.id and v.histo_destruction IS NULL - left join type_validation tv on v.type_validation_id = tv.id and tv.code = 'SERVICES_PAR_COMP' - where s.intervenant_id = i.id and v.id is null and vh.histo_destruction IS NULL - ) - ) - ); +-- CONTRAT_CONTRAT_FK_IDX +CREATE INDEX "CONTRAT_CONTRAT_FK_IDX" ON "CONTRAT" ("CONTRAT_ID"); --- V_INDIC_ATTENTE_MEP -CREATE OR REPLACE FORCE VIEW "V_INDIC_ATTENTE_MEP" ("ID", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "TOTAL_HEURES_MEP") AS - with - -- total des heures comp ayant fait l'objet d'une *demande* de mise en paiement - mep as ( - select intervenant_id, structure_id, sum(nvl(mep_heures, 0)) total_heures_mep - from ( - -- enseignements - select - fr.intervenant_id, - nvl(ep.structure_id, i.structure_id) structure_id, - nvl(mep.heures, 0) mep_heures - from mise_en_paiement mep - join formule_resultat_service frs on mep.formule_res_service_id = frs.id - join formule_resultat fr on frs.formule_resultat_id = fr.id - join intervenant i on fr.intervenant_id = i.id - join type_volume_horaire tvh on fr.type_volume_horaire_id = tvh.id and tvh.code = 'REALISE' - join etat_volume_horaire evh on fr.etat_volume_horaire_id = evh.id and evh.code = 'valide' - join service s on frs.service_id = s.id - left join element_pedagogique ep on s.element_pedagogique_id = ep.id - where mep.histo_destruction IS NULL and mep.date_mise_en_paiement is null -- si date_mise_en_paiement = null, c'est une demande - union all - -- referentiel - select - fr.intervenant_id, - s.structure_id, - nvl(mep.heures, 0) mep_heures - from mise_en_paiement mep - join formule_resultat_service_ref frs on mep.formule_res_service_ref_id = frs.id - join formule_resultat fr on frs.formule_resultat_id = fr.id - join intervenant i on fr.intervenant_id = i.id - join type_volume_horaire tvh on fr.type_volume_horaire_id = tvh.id and tvh.code = 'REALISE' - join etat_volume_horaire evh on fr.etat_volume_horaire_id = evh.id and evh.code = 'valide' - join service_referentiel s on frs.service_referentiel_id = s.id - where mep.histo_destruction IS NULL and mep.date_mise_en_paiement is null -- si date_mise_en_paiement = null, c'est une demande - ) - group by intervenant_id, structure_id - ) -select to_number(intervenant_id||structure_id) id, 2014 annee_id, intervenant_id, structure_id, total_heures_mep from mep; +-- CONTRAT_FICHIER_FFK_IDX +CREATE INDEX "CONTRAT_FICHIER_FFK_IDX" ON "CONTRAT_FICHIER" ("FICHIER_ID"); --- V_INDIC_ATT_VALID_ENS_AUTRE -CREATE OR REPLACE FORCE VIEW "V_INDIC_ATT_VALID_ENS_AUTRE" ("ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT distinct - to_char(v.intervenant_id)||to_char(v.structure_id) as id, - v.intervenant_id, - v.structure_id -FROM v_indic_tous_services_valides v -INNER JOIN intervenant i ON V.INTERVENANT_ID = i.id AND i.HISTO_DESTRUCTION IS NULL -INNER JOIN TYPE_VOLUME_HORAIRE tvh ON v.type_volume_horaire_id = tvh.id AND tvh.code = 'REALISE' -INNER JOIN VALIDATION clot ON clot.intervenant_id = i.id AND clot.HISTO_DESTRUCTION IS NULL -INNER JOIN TYPE_VALIDATION tv ON tv.id = clot.type_validation_id AND tv.code = 'CLOTURE_REALISE' -WHERE EXISTS - ( - SELECT s2.ID - FROM SERVICE s2 - INNER JOIN ELEMENT_PEDAGOGIQUE ep2 ON s2.ELEMENT_PEDAGOGIQUE_ID = ep2.ID AND ep2.HISTO_DESTRUCTION IS NULL - INNER JOIN VOLUME_HORAIRE vh2 ON s2.ID = vh2.SERVICE_ID AND vh2.HISTO_DESTRUCTION IS NULL - LEFT JOIN VALIDATION_VOL_HORAIRE vvh2 ON vh2.ID = vvh2.VOLUME_HORAIRE_ID - LEFT JOIN VALIDATION val2 ON val2.ID = vvh2.VALIDATION_ID AND val2.HISTO_DESTRUCTION IS NULL - WHERE - s2.INTERVENANT_ID = v.intervenant_id - AND s2.HISTO_DESTRUCTION IS NULL - AND VH2.TYPE_VOLUME_HORAIRE_ID = V.TYPE_VOLUME_HORAIRE_ID - AND ep2.structure_id <> v.structure_id -- autre composante d'intervention que celle qui a tout validé - AND val2.ID IS NULL -- au moins un VH non validé - ); +-- CONTRAT_FICHIER_FK +CREATE INDEX "CONTRAT_FICHIER_FK" ON "CONTRAT_FICHIER" ("CONTRAT_ID"); --- V_INDIC_ATT_VALID_REF_AUTRE -CREATE OR REPLACE FORCE VIEW "V_INDIC_ATT_VALID_REF_AUTRE" ("ID", "INTERVENANT_ID", "STRUCTURE_ID") AS - SELECT distinct - to_char(v.intervenant_id)||to_char(v.structure_id) as id, - v.intervenant_id, - v.structure_id -FROM v_indic_tous_services_valides v -INNER JOIN intervenant i ON V.INTERVENANT_ID = i.id AND i.HISTO_DESTRUCTION IS NULL -INNER JOIN TYPE_VOLUME_HORAIRE tvh ON v.type_volume_horaire_id = tvh.id AND tvh.code = 'REALISE' -INNER JOIN VALIDATION clot ON clot.intervenant_id = i.id AND clot.HISTO_DESTRUCTION IS NULL -INNER JOIN TYPE_VALIDATION tv ON tv.id = clot.type_validation_id AND tv.code = 'CLOTURE_REALISE' -WHERE EXISTS - ( - SELECT s.ID - FROM SERVICE_REFERENTIEL s - INNER JOIN FONCTION_REFERENTIEL f ON S.FONCTION_ID = f.ID AND f.HISTO_DESTRUCTION IS NULL - INNER JOIN VOLUME_HORAIRE_REF vh ON s.ID = VH.SERVICE_REFERENTIEL_ID AND vh.HISTO_DESTRUCTION IS NULL - LEFT JOIN VALIDATION_VOL_HORAIRE vvh ON vh.ID = vvh.VOLUME_HORAIRE_ID - LEFT JOIN VALIDATION val ON val.ID = vvh.VALIDATION_ID AND val.HISTO_DESTRUCTION IS NULL - WHERE - s.INTERVENANT_ID = v.intervenant_id - AND s.HISTO_DESTRUCTION IS NULL - AND VH.TYPE_VOLUME_HORAIRE_ID = V.TYPE_VOLUME_HORAIRE_ID - AND s.structure_id <> v.structure_id -- autre composante d'intervention que celle qui a tout validé - AND val.ID IS NULL -- au moins un VH non validé - ); +-- CONTRAT_FICHIER_PK +CREATE UNIQUE INDEX "CONTRAT_FICHIER_PK" ON "CONTRAT_FICHIER" ("CONTRAT_ID", "FICHIER_ID"); --- V_INDIC_ATT_VALID_SERVICE -CREATE OR REPLACE FORCE VIEW "V_INDIC_ATT_VALID_SERVICE" ("ID", "INTERVENANT_ID", "STRUCTURE_ID", "TYPE_VOLUME_HORAIRE_ID") AS - select distinct rownum id, i.id intervenant_id, nvl(ep.structure_id, i.structure_id) structure_id, vh.type_volume_horaire_id -from service s -join intervenant i on i.id = s.intervenant_id and i.histo_destruction IS NULL -join volume_horaire vh on vh.service_id = s.id and vh.histo_destruction IS NULL -join element_pedagogique ep on s.element_pedagogique_id = ep.id and ep.histo_destruction IS NULL ---join type_volume_horaire tvh on vh.type_volume_horaire_id = tvh.id and tvh.code = 'REALISE' -left join validation_vol_horaire vvh on vvh.volume_horaire_id = vh.id -left join validation v on vvh.validation_id = v.id and v.histo_destruction IS NULL -where v.id is null and s.histo_destruction IS NULL; +-- CONTRAT_HCFK_IDX +CREATE INDEX "CONTRAT_HCFK_IDX" ON "CONTRAT" ("HISTO_CREATEUR_ID"); --- V_INDIC_ATT_VALID_SERVICE_REF -CREATE OR REPLACE FORCE VIEW "V_INDIC_ATT_VALID_SERVICE_REF" ("ID", "INTERVENANT_ID", "STRUCTURE_ID", "TYPE_VOLUME_HORAIRE_ID") AS - select distinct rownum id, i.id intervenant_id, s.structure_id, vh.type_volume_horaire_id -from service_referentiel s -join intervenant i on i.id = s.intervenant_id and i.histo_destruction IS NULL -join volume_horaire_ref vh on vh.service_referentiel_id = s.id and vh.histo_destruction IS NULL -join fonction_referentiel f on s.fonction_id = f.id and f.histo_destruction IS NULL ---join type_volume_horaire tvh on vh.type_volume_horaire_id = tvh.id and tvh.code = 'REALISE' -left join validation_vol_horaire_ref vvh on vvh.volume_horaire_ref_id = vh.id -left join validation v on vvh.validation_id = v.id and v.histo_destruction IS NULL -where v.id is null and s.histo_destruction IS NULL; +-- CONTRAT_HDFK_IDX +CREATE INDEX "CONTRAT_HDFK_IDX" ON "CONTRAT" ("HISTO_DESTRUCTEUR_ID"); --- V_INDIC_DEPASS_CHARGES -CREATE OR REPLACE FORCE VIEW "V_INDIC_DEPASS_CHARGES" ("ID", "ANNEE_ID", "TYPE_VOLUME_HORAIRE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "ELEMENT_PEDAGOGIQUE_ID", "PERIODE_ID", "TYPE_INTERVENTION_ID", "HEURES") AS - WITH c AS ( - SELECT - vhe.element_pedagogique_id, - vhe.type_intervention_id, - MAX(vhe.heures) heures, - COALESCE( MAX(vhe.groupes), ROUND(SUM(t.groupes),10) ) groupes +-- CONTRAT_HMFK_IDX +CREATE INDEX "CONTRAT_HMFK_IDX" ON "CONTRAT" ("HISTO_MODIFICATEUR_ID"); - FROM - volume_horaire_ens vhe - JOIN parametre p ON p.nom = 'scenario_charges_services' - LEFT JOIN tbl_chargens t ON t.element_pedagogique_id = vhe.element_pedagogique_id - AND t.type_intervention_id = vhe.type_intervention_id - AND t.scenario_id = to_number(p.valeur) - GROUP BY - vhe.element_pedagogique_id, - vhe.type_intervention_id -), s AS ( - SELECT - i.annee_id, - vh.type_volume_horaire_id, - s.intervenant_id, - s.element_pedagogique_id, - vh.type_intervention_id, - SUM(vh.heures) heures - FROM - volume_horaire vh - JOIN service s ON s.id = vh.service_id - AND s.element_pedagogique_id IS NOT NULL - AND s.histo_destruction IS NULL - JOIN intervenant i ON i.id = s.intervenant_id - AND i.histo_destruction IS NULL - WHERE - vh.histo_destruction IS NULL - GROUP BY - i.annee_id, - vh.type_volume_horaire_id, - s.intervenant_id, - s.element_pedagogique_id, - vh.type_intervention_id -) -SELECT - rownum id, - s.annee_id annee_id, - s.type_volume_horaire_id type_volume_horaire_id, - s.intervenant_id intervenant_id, - ep.structure_id structure_id, - s.element_pedagogique_id element_pedagogique_id, - ep.periode_id periode_id, - s.type_intervention_id type_intervention_id, - s.heures - COALESCE(c.heures * c.groupes,0) heures -FROM - s - JOIN type_intervention ti ON ti.id = s.type_intervention_id - JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - LEFT JOIN c ON c.element_pedagogique_id = s.element_pedagogique_id - AND c.type_intervention_id = COALESCE(ti.type_intervention_maquette_id,ti.id) -WHERE - s.heures - COALESCE(c.heures * c.groupes,0) > 0; +-- CONTRAT_INTERVENANT_FK_IDX +CREATE INDEX "CONTRAT_INTERVENANT_FK_IDX" ON "CONTRAT" ("INTERVENANT_ID"); --- V_INDIC_DEPASS_HC_HORS_REMU_FC -CREATE OR REPLACE FORCE VIEW "V_INDIC_DEPASS_HC_HORS_REMU_FC" ("ID", "ANNEE_ID", "INTERVENANT_ID", "TYPE_VOLUME_HORAIRE_ID", "STRUCTURE_ID", "TOTAL", "PLAFOND") AS - with totaux as ( - -- totaux HC FI+FA+FC+Ref par intervenant et type de VH - select fr.intervenant_id, fr.type_volume_horaire_id, sum(fr.heures_compl_fi + fr.heures_compl_fa + fr.heures_compl_fc + fr.heures_compl_referentiel) total - from formule_resultat fr - join etat_volume_horaire evh on evh.id = fr.etat_volume_horaire_id and evh.code = 'saisi' - group by fr.intervenant_id, fr.type_volume_horaire_id -), -depass as ( - -- totaux HC FI+FA+FC+Ref dépassant le plafond HC par intervenant et type de VH - select i.id intervenant_id, t.type_volume_horaire_id, t.total, si.plafond_hc_hors_remu_fc plafond - from intervenant i - join statut_intervenant si on i.statut_id = si.id and si.plafond_hc_hors_remu_fc is not null - join totaux t on t.intervenant_id = i.id - where t.total > si.plafond_hc_hors_remu_fc -), -str_interv as ( - -- structures d'intervention distinctes par intervenant et type de VH - select distinct s.intervenant_id, vh.type_volume_horaire_id, coalesce(ep.structure_id, i.structure_id) structure_id - from service s - left join element_pedagogique ep on s.element_pedagogique_id = ep.id and ep.histo_destruction IS NULL - join intervenant i on s.intervenant_id = i.id and i.histo_destruction IS NULL - join volume_horaire vh on vh.service_id = s.id and vh.histo_destruction IS NULL - join v_vol_horaire_etat_multi vhe on vhe.volume_horaire_id = vh.id - join etat_volume_horaire evh on vhe.etat_volume_horaire_id = evh.id and evh.code = 'saisi' - where s.histo_destruction IS NULL -) -select to_number(d.intervenant_id||d.type_volume_horaire_id||str.structure_id) id, 2014 annee_id, d.intervenant_id, d.type_volume_horaire_id, str.structure_id, d.total, d.plafond -from depass d -join str_interv str on str.intervenant_id = d.intervenant_id and str.type_volume_horaire_id = d.type_volume_horaire_id; +-- CONTRAT_NUMERO_AVENANT_UN +CREATE UNIQUE INDEX "CONTRAT_NUMERO_AVENANT_UN" ON "CONTRAT" ("INTERVENANT_ID", "STRUCTURE_ID", "NUMERO_AVENANT", "VALIDATION_ID", "HISTO_DESTRUCTION"); --- V_INDIC_DEPASS_REF -CREATE OR REPLACE FORCE VIEW "V_INDIC_DEPASS_REF" ("ID", "ANNEE_ID", "INTERVENANT_ID", "TYPE_VOLUME_HORAIRE_ID", "STRUCTURE_ID", "TOTAL", "PLAFOND") AS - with totaux as ( - select fr.intervenant_id, fr.type_volume_horaire_id, sum(fr.service_referentiel) total - from formule_resultat fr - join etat_volume_horaire evh on evh.id = fr.etat_volume_horaire_id and evh.code = 'saisi' - group by fr.intervenant_id, fr.type_volume_horaire_id - having sum(fr.service_referentiel) > 0 -), -depass as ( - select i.id intervenant_id, t.type_volume_horaire_id, t.total, si.plafond_referentiel plafond - from intervenant i - join statut_intervenant si on i.statut_id = si.id and si.plafond_referentiel is not null and si.plafond_referentiel <> 0 - join totaux t on t.intervenant_id = i.id - where t.total > si.plafond_referentiel -), -str_interv as ( - -- structures d'intervention distinctes par intervenant et type de VH - select distinct s.intervenant_id, vh.type_volume_horaire_id, s.structure_id - from service_referentiel s - join volume_horaire_ref vh on vh.service_referentiel_id = s.id and vh.histo_destruction IS NULL - join v_vol_horaire_ref_etat_multi vhe on vhe.volume_horaire_ref_id = vh.id - join etat_volume_horaire evh on vhe.etat_volume_horaire_id = evh.id and evh.code = 'saisi' - where s.histo_destruction IS NULL -) -select to_number(d.intervenant_id||d.type_volume_horaire_id||str.structure_id) id, 2014 annee_id, d.intervenant_id, d.type_volume_horaire_id, str.structure_id, d.total, d.plafond -from depass d -join str_interv str on str.intervenant_id = d.intervenant_id and str.type_volume_horaire_id = d.type_volume_horaire_id; +-- CONTRAT_PK +CREATE UNIQUE INDEX "CONTRAT_PK" ON "CONTRAT" ("ID"); + +-- CONTRAT_STRUCTURE_FK_IDX +CREATE INDEX "CONTRAT_STRUCTURE_FK_IDX" ON "CONTRAT" ("STRUCTURE_ID"); + +-- CONTRAT_TYPE_CONTRAT_FK_IDX +CREATE INDEX "CONTRAT_TYPE_CONTRAT_FK_IDX" ON "CONTRAT" ("TYPE_CONTRAT_ID"); + +-- CONTRAT_VALIDATION_FK_IDX +CREATE INDEX "CONTRAT_VALIDATION_FK_IDX" ON "CONTRAT" ("VALIDATION_ID"); + +-- CORPS_HCFK_IDX +CREATE INDEX "CORPS_HCFK_IDX" ON "CORPS" ("HISTO_CREATEUR_ID"); + +-- CORPS_HDFK_IDX +CREATE INDEX "CORPS_HDFK_IDX" ON "CORPS" ("HISTO_DESTRUCTEUR_ID"); + +-- CORPS_HMFK_IDX +CREATE INDEX "CORPS_HMFK_IDX" ON "CORPS" ("HISTO_MODIFICATEUR_ID"); + +-- CORPS_PK +CREATE UNIQUE INDEX "CORPS_PK" ON "CORPS" ("ID"); + +-- CORPS_SOURCE_FK_IDX +CREATE INDEX "CORPS_SOURCE_FK_IDX" ON "CORPS" ("SOURCE_ID"); + +-- CORPS_SOURCE_UN +CREATE UNIQUE INDEX "CORPS_SOURCE_UN" ON "CORPS" ("SOURCE_CODE"); + +-- CPEP_FK_IDX +CREATE INDEX "CPEP_FK_IDX" ON "CHEMIN_PEDAGOGIQUE" ("ELEMENT_PEDAGOGIQUE_ID"); + +-- CP_ETAPE_FK_IDX +CREATE INDEX "CP_ETAPE_FK_IDX" ON "CHEMIN_PEDAGOGIQUE" ("ETAPE_ID"); + +-- CP_SOURCE_FK_IDX +CREATE INDEX "CP_SOURCE_FK_IDX" ON "CHEMIN_PEDAGOGIQUE" ("SOURCE_ID"); + +-- CS_TYPE_INTERVENANT_FK_IDX +CREATE INDEX "CS_TYPE_INTERVENANT_FK_IDX" ON "CAMPAGNE_SAISIE" ("TYPE_INTERVENANT_ID"); --- V_INDIC_DIFF_DOSSIER -CREATE OR REPLACE FORCE VIEW "V_INDIC_DIFF_DOSSIER" ("ID", "NOM_USUEL", "ADRESSE_DOSSIER", "ADRESSE_IMPORT", "RIB_DOSSIER", "RIB_IMPORT", "NOM_USUEL_DOSSIER", "NOM_USUEL_IMPORT", "PRENOM_DOSSIER", "PRENOM_IMPORT") AS - WITH aa AS ( - SELECT a.*, ose_divers.formatted_adresse( - a.NO_VOIE, - a.NOM_VOIE, - a.BATIMENT, - a.MENTION_COMPLEMENTAIRE, - a.LOCALITE, - a.CODE_POSTAL, - a.VILLE, - a.PAYS_LIBELLE) to_string FROM adresse_intervenant a -) -select - i.id, - i.nom_usuel, - case when d.adresse <> a.to_string then d.adresse else null end adresse_dossier, - case when d.adresse <> a.to_string then a.to_string else null end adresse_import, - case when d.rib <> REPLACE(i.BIC || '-' || i.IBAN, ' ') then d.rib else null end rib_dossier, - case when d.rib <> REPLACE(i.BIC || '-' || i.IBAN, ' ') then REPLACE(i.BIC || '-' || i.IBAN, ' ') else null end rib_import, - case when UPPER(REPLACE(d.nom_usuel, ' ')) <> UPPER(REPLACE(i.nom_usuel, ' ')) then REPLACE(d.nom_usuel, ' ') else null end nom_usuel_dossier, - case when UPPER(REPLACE(d.nom_usuel, ' ')) <> UPPER(REPLACE(i.nom_usuel, ' ')) then REPLACE(i.nom_usuel, ' ') else null end nom_usuel_import, - case when UPPER(REPLACE(d.prenom, ' ')) <> UPPER(REPLACE(i.prenom, ' ')) then REPLACE(d.prenom, ' ') else null end prenom_dossier, - case when UPPER(REPLACE(d.prenom, ' ')) <> UPPER(REPLACE(i.prenom, ' ')) then REPLACE(i.prenom, ' ') else null end prenom_import - from intervenant i - join dossier d on d.intervenant_id = i.id - left join aa a on a.intervenant_id = i.id; +-- CS_TYPE_VOLUME_HORAIRE_FK_IDX +CREATE INDEX "CS_TYPE_VOLUME_HORAIRE_FK_IDX" ON "CAMPAGNE_SAISIE" ("TYPE_VOLUME_HORAIRE_ID"); --- V_INDIC_TOUS_SERVICES_VALIDES -CREATE OR REPLACE FORCE VIEW "V_INDIC_TOUS_SERVICES_VALIDES" ("INTERVENANT_ID", "STRUCTURE_ID", "TYPE_VOLUME_HORAIRE_ID") AS - with struct_ens_non_valides as ( - -- intervenants et structures d'intervention pour lesquelles des VH d'enseignement NE SONT PAS validés - SELECT distinct s.intervenant_id, ep.structure_id, vh.type_volume_horaire_id - FROM SERVICE s - INNER JOIN ELEMENT_PEDAGOGIQUE ep ON s.ELEMENT_PEDAGOGIQUE_ID = ep.ID AND ep.HISTO_DESTRUCTION IS NULL - INNER JOIN VOLUME_HORAIRE vh ON s.ID = vh.SERVICE_ID AND vh.HISTO_DESTRUCTION IS NULL - LEFT JOIN VALIDATION_VOL_HORAIRE vvh ON vvh.volume_horaire_id = vh.id - LEFT JOIN VALIDATION val ON val.ID = vvh.validation_id AND val.HISTO_DESTRUCTION IS NULL - WHERE s.HISTO_DESTRUCTION IS NULL - AND val.id is null -), -struct_ref_non_valides as ( - -- intervenants et structures d'intervention pour lesquelles des VH de référentiel NE SONT PAS validés - SELECT distinct s.intervenant_id, s.structure_id, vh.type_volume_horaire_id - FROM SERVICE_REFERENTIEL s - INNER JOIN FONCTION_REFERENTIEL f ON s.FONCTION_ID = f.ID AND f.HISTO_DESTRUCTION IS NULL - INNER JOIN VOLUME_HORAIRE_REF vh ON s.ID = VH.SERVICE_REFERENTIEL_ID AND vh.HISTO_DESTRUCTION IS NULL - LEFT JOIN VALIDATION_VOL_HORAIRE_REF vvh ON VVH.VOLUME_HORAIRE_REF_ID = vh.id - LEFT JOIN VALIDATION val ON val.ID = vvh.validation_id AND val.HISTO_DESTRUCTION IS NULL - WHERE s.HISTO_DESTRUCTION IS NULL - AND val.id is null -) --- intervenants et structures d'intervention pour lesquelles tous les VH de référentiel et tous les VH d'enseignement SONT validés -SELECT distinct s.intervenant_id, ep.structure_id, vh.type_volume_horaire_id -FROM SERVICE s -INNER JOIN ELEMENT_PEDAGOGIQUE ep ON s.ELEMENT_PEDAGOGIQUE_ID = ep.ID AND ep.HISTO_DESTRUCTION IS NULL -INNER JOIN VOLUME_HORAIRE vh ON s.ID = vh.SERVICE_ID AND vh.HISTO_DESTRUCTION IS NULL -WHERE not exists ( - SELECT * from struct_ens_non_valides ens_nv - where ens_nv.INTERVENANT_ID = s.intervenant_id and ens_nv.structure_id = ep.structure_id and ens_nv.type_volume_horaire_id = vh.type_volume_horaire_id -) ------ -UNION ------ -SELECT distinct s.intervenant_id, s.structure_id, vh.type_volume_horaire_id -FROM SERVICE_REFERENTIEL s -INNER JOIN FONCTION_REFERENTIEL f ON s.FONCTION_ID = f.ID AND f.HISTO_DESTRUCTION IS NULL -INNER JOIN VOLUME_HORAIRE_REF vh ON s.ID = VH.SERVICE_REFERENTIEL_ID AND vh.HISTO_DESTRUCTION IS NULL -WHERE s.HISTO_DESTRUCTION IS NULL -and not exists ( - SELECT * from struct_ref_non_valides ref_nv - where ref_nv.INTERVENANT_ID = s.intervenant_id and ref_nv.structure_id = s.structure_id and ref_nv.type_volume_horaire_id = vh.type_volume_horaire_id -); +-- DEPARTEMENT_HCFK_IDX +CREATE INDEX "DEPARTEMENT_HCFK_IDX" ON "DEPARTEMENT" ("HISTO_CREATEUR_ID"); --- V_INTERVENANT_RECHERCHE -CREATE OR REPLACE FORCE VIEW "V_INTERVENANT_RECHERCHE" ("ID", "SOURCE_CODE", "NOM_USUEL", "NOM_PATRONYMIQUE", "PRENOM", "DATE_NAISSANCE", "STRUCTURE", "CIVILITE", "CRITERE", "ANNEE_ID") AS - SELECT - i.id, - i.source_code, - i.nom_usuel, - i.nom_patronymique, - i.prenom, - i.date_naissance, - s.libelle_court structure, - c.libelle_long civilite, - i.critere_recherche critere, - i.annee_id -FROM - intervenant i - JOIN structure s ON s.id = i.structure_id - JOIN civilite c ON c.id = i.civilite_id -WHERE - i.histo_destruction IS NULL - -UNION ALL +-- DEPARTEMENT_HDFK_IDX +CREATE INDEX "DEPARTEMENT_HDFK_IDX" ON "DEPARTEMENT" ("HISTO_DESTRUCTEUR_ID"); -SELECT - null id, - i.source_code, - i.nom_usuel, - i.nom_patronymique, - i.prenom, - i.date_naissance, - s.libelle_court structure, - c.libelle_long civilite, - i.critere_recherche critere, - i.annee_id -FROM - src_intervenant i - JOIN structure s ON s.id = i.structure_id - JOIN civilite c ON c.id = i.civilite_id; +-- DEPARTEMENT_HMFK_IDX +CREATE INDEX "DEPARTEMENT_HMFK_IDX" ON "DEPARTEMENT" ("HISTO_MODIFICATEUR_ID"); --- V_MEP_INTERVENANT_STRUCTURE -CREATE OR REPLACE FORCE VIEW "V_MEP_INTERVENANT_STRUCTURE" ("ID", "MISE_EN_PAIEMENT_ID", "INTERVENANT_ID", "STRUCTURE_ID", "PERIODE_PAIEMENT_ID", "DOMAINE_FONCTIONNEL_ID") AS - SELECT - rownum id, - t1."MISE_EN_PAIEMENT_ID", - t1."INTERVENANT_ID", - t1."STRUCTURE_ID", - t1.periode_paiement_id, - t1.domaine_fonctionnel_id -FROM ( +-- DEPARTEMENT_PK +CREATE UNIQUE INDEX "DEPARTEMENT_PK" ON "DEPARTEMENT" ("ID"); -SELECT - mep.id mise_en_paiement_id, - fr.intervenant_id intervenant_id, - sr.structure_id structure_id, - mep.periode_paiement_id periode_paiement_id, - COALESCE(mep.domaine_fonctionnel_id, fr.domaine_fonctionnel_id) domaine_fonctionnel_id -FROM - formule_resultat fr - JOIN formule_resultat_service_ref frsr ON frsr.formule_resultat_id = fr.id - JOIN mise_en_paiement mep ON mep.formule_res_service_ref_id = frsr.id - JOIN centre_cout cc ON cc.id = mep.centre_cout_id - JOIN service_referentiel sr ON sr.id = frsr.service_referentiel_id - JOIN fonction_referentiel fr ON fr.id = sr.fonction_id -UNION +-- DEPARTEMENT_SOURCE_FK_IDX +CREATE INDEX "DEPARTEMENT_SOURCE_FK_IDX" ON "DEPARTEMENT" ("SOURCE_ID"); -SELECT - mep.id mise_en_paiement_id, - fr.intervenant_id intervenant_id, - COALESCE( ep.structure_id, i.structure_id ) structure_id, - mep.periode_paiement_id periode_paiement_id, - COALESCE( - mep.domaine_fonctionnel_id, - e.domaine_fonctionnel_id, - to_number((SELECT valeur FROM parametre WHERE nom = 'domaine_fonctionnel_ens_ext')) - ) domaine_fonctionnel_id -FROM - formule_resultat fr - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN formule_resultat_service frs ON frs.formule_resultat_id = fr.id - JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id - JOIN centre_cout cc ON cc.id = mep.centre_cout_id - JOIN service s ON s.id = frs.service_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - LEFT JOIN etape e ON e.id = ep.etape_id -) t1; +-- DF_SOURCE_FK_IDX +CREATE INDEX "DF_SOURCE_FK_IDX" ON "DOMAINE_FONCTIONNEL" ("SOURCE_ID"); --- V_MODIF_SERVICE_DU_EXPORT_CSV -CREATE OR REPLACE FORCE VIEW "V_MODIF_SERVICE_DU_EXPORT_CSV" ("ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "ANNEE", "STRUCTURE_LIBELLE", "INTERVENANT_CODE", "INTERVENANT_NOM_USUEL", "INTERVENANT_NOM_PATRONYMIQUE", "INTERVENANT_PRENOM", "INTERVENANT_STATUT_LIBELLE", "INTERVENANT_SERVICE_STATUTAIRE", "MOTIF_CODE", "MOTIF_LIBELLE", "HEURES", "COMMENTAIRES", "MODIFICATEUR", "DATE_MODIFICATION") AS - SELECT - i.annee_id annee_id, - i.id intervenant_id, - i.structure_id structure_id, - - a.libelle annee, - s.libelle_court structure_libelle, - - i.code intervenant_code, - i.nom_usuel intervenant_nom_usuel, - i.nom_patronymique intervenant_nom_patronymique, - i.prenom intervenant_prenom, - si.libelle intervenant_statut_libelle, - si.service_statutaire intervenant_service_statutaire, - - mss.code motif_code, - mss.libelle motif_libelle, - - msd.heures * mss.multiplicateur heures, - - msd.commentaires commentaires, - u.display_name modificateur, - msd.histo_modification date_modification -FROM - modification_service_du msd - JOIN intervenant i ON i.id = msd.intervenant_id - JOIN annee a ON a.id = i.annee_id - JOIN structure s ON s.id = i.structure_id - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN motif_modification_service mss ON mss.id = msd.motif_id - JOIN utilisateur u ON u.id = msd.histo_modificateur_id -WHERE - msd.histo_destruction IS NULL - AND i.histo_destruction IS NULL -ORDER BY - annee_id, - structure_libelle, - intervenant_nom_usuel, - motif_libelle, - heures; +-- DISCIPLINE_HCFK_IDX +CREATE INDEX "DISCIPLINE_HCFK_IDX" ON "DISCIPLINE" ("HISTO_CREATEUR_ID"); --- V_NIVEAU_FORMATION -CREATE OR REPLACE FORCE VIEW "V_NIVEAU_FORMATION" ("ID", "CODE", "LIBELLE_LONG", "NIVEAU", "GROUPE_TYPE_FORMATION_ID") AS - SELECT DISTINCT - ose_divers.niveau_formation_id_calc( gtf.id, gtf.pertinence_niveau, e.niveau ) id, - gtf.libelle_court || e.niveau code, - gtf.libelle_long, - e.niveau, - gtf.id groupe_type_formation_id -FROM - etape e - JOIN type_formation tf ON tf.id = e.type_formation_id AND tf.histo_destruction IS NULL - JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id AND gtf.histo_destruction IS NULL -WHERE - e.histo_destruction IS NULL - AND ose_divers.niveau_formation_id_calc( gtf.id, gtf.pertinence_niveau, e.niveau ) IS NOT NULL -ORDER BY - gtf.libelle_long, e.niveau; +-- DISCIPLINE_HDFK_IDX +CREATE INDEX "DISCIPLINE_HDFK_IDX" ON "DISCIPLINE" ("HISTO_DESTRUCTEUR_ID"); --- V_PJ_HEURES -CREATE OR REPLACE FORCE VIEW "V_PJ_HEURES" ("NOM_USUEL", "PRENOM", "INTERVENANT_ID", "SOURCE_CODE", "ANNEE_ID", "CATEG", "TOTAL_HEURES") AS - SELECT - i.NOM_USUEL, - i.PRENOM, - i.id intervenant_id, - i.SOURCE_CODE, - i.annee_id, 'service' categ, - sum(vh.HEURES) as total_heures -from INTERVENANT i - join SERVICE s on s.INTERVENANT_ID = i.id and s.histo_destruction IS NULL - join VOLUME_HORAIRE vh on vh.SERVICE_ID = s.id and vh.histo_destruction IS NULL - join type_volume_horaire tvh ON TVH.ID = VH.TYPE_VOLUME_HORAIRE_ID AND (tvh.code = 'PREVU') - join ELEMENT_PEDAGOGIQUE ep on s.ELEMENT_PEDAGOGIQUE_ID = ep.id and ep.histo_destruction IS NULL - join ETAPE e on ep.ETAPE_ID = e.id and e.histo_destruction IS NULL -where i.histo_destruction IS NULL - group by i.NOM_USUEL, i.PRENOM, i.id, i.SOURCE_CODE, i.annee_id, 'service' -UNION - SELECT i.NOM_USUEL, i.PRENOM, i.id intervenant_id, i.SOURCE_CODE, i.annee_id, 'referentiel' categ, sum(vh.HEURES) as total_heures - from INTERVENANT i - join service_referentiel s on s.INTERVENANT_ID = i.id and s.histo_destruction IS NULL - join volume_horaire_ref vh on vh.service_referentiel_id = s.id and vh.histo_destruction IS NULL - join type_volume_horaire tvh ON TVH.ID = VH.TYPE_VOLUME_HORAIRE_ID AND (tvh.code = 'PREVU') - join fonction_referentiel ep on s.fonction_id = ep.id and ep.histo_destruction IS NULL - where i.histo_destruction IS NULL - group by i.NOM_USUEL, i.PRENOM, i.id, i.SOURCE_CODE, i.annee_id, 'referentiel'; +-- DISCIPLINE_HMFK_IDX +CREATE INDEX "DISCIPLINE_HMFK_IDX" ON "DISCIPLINE" ("HISTO_MODIFICATEUR_ID"); --- V_PRIVILEGES_ROLES -CREATE OR REPLACE FORCE VIEW "V_PRIVILEGES_ROLES" ("PRIVILEGE", "ROLE") AS - WITH statuts_roles AS ( -SELECT - rp.privilege_id, - r.code role -FROM - role_privilege rp - JOIN role r ON r.id = rp.role_id AND r.histo_destruction IS NULL +-- DISCIPLINE_PK +CREATE UNIQUE INDEX "DISCIPLINE_PK" ON "DISCIPLINE" ("ID"); -UNION ALL +-- DISCIPLINE_SOURCE_FK_IDX +CREATE INDEX "DISCIPLINE_SOURCE_FK_IDX" ON "DISCIPLINE" ("SOURCE_ID"); -SELECT - sp.privilege_id, - 'statut/' || s.source_code role -FROM - statut_privilege sp - JOIN statut_intervenant s ON s.id = sp.statut_id AND s.histo_destruction IS NULL -) -SELECT - cp.code || '-' || p.code privilege, - sr.role -FROM - privilege p - JOIN categorie_privilege cp ON cp.id = p.categorie_id - LEFT JOIN statuts_roles sr ON sr.privilege_id = p.id; +-- DISCIPLINE_SOURCE_UN +CREATE UNIQUE INDEX "DISCIPLINE_SOURCE_UN" ON "DISCIPLINE" ("SOURCE_CODE"); --- V_REF_INTERVENANT -CREATE OR REPLACE FORCE VIEW "V_REF_INTERVENANT" ("C_INTERVENANT") AS - SELECT DISTINCT - i.source_code C_INTERVENANT -FROM - tbl_service s - JOIN intervenant i ON i.id = s.intervenant_id - JOIN annee a ON a.id = s.annee_id -WHERE - s.nbvh > 0 - AND SYSDATE BETWEEN a.date_debut AND a.date_fin; +-- DOMAINE_FONCTIONNEL_HCFK_IDX +CREATE INDEX "DOMAINE_FONCTIONNEL_HCFK_IDX" ON "DOMAINE_FONCTIONNEL" ("HISTO_CREATEUR_ID"); --- V_SERVICE_NON_VALIDE -CREATE OR REPLACE FORCE VIEW "V_SERVICE_NON_VALIDE" ("ID", "INTERVENANT_ID", "SERVICE_ID", "VOLUME_HORAIRE_ID", "ELEMENT_PEDAGOGIQUE_ID", "LIBELLE", "HEURES") AS - select vh.ID, i.ID as intervenant_id, s.ID as service_id, vh.ID as volume_horaire_id, ep.id as element_pedagogique_id, ep.LIBELLE, vh.HEURES - from service s - inner join INTERVENANT i on s.INTERVENANT_ID = i.id - inner join ELEMENT_PEDAGOGIQUE ep on s.ELEMENT_PEDAGOGIQUE_ID = ep.id and ep.histo_destruction IS NULL - inner join VOLUME_HORAIRE vh on vh.SERVICE_ID = s.ID and vh.HISTO_DESTRUCTION is null - left join VALIDATION_VOL_HORAIRE vvh on vvh.VOLUME_HORAIRE_ID = vh.ID - left join VALIDATION v on vvh.VALIDATION_ID = v.ID - left join TYPE_VALIDATION tv on v.TYPE_VALIDATION_ID = tv.ID - where (v.ID is null or v.HISTO_DESTRUCTION is not null) and - not exists ( - select * from VALIDATION_VOL_HORAIRE vvh2 - inner join VALIDATION v2 on vvh2.VALIDATION_ID = v2.ID and v2.histo_destruction IS NULL - where vvh2.VOLUME_HORAIRE_ID = vvh.VOLUME_HORAIRE_ID - ); +-- DOMAINE_FONCTIONNEL_HDFK_IDX +CREATE INDEX "DOMAINE_FONCTIONNEL_HDFK_IDX" ON "DOMAINE_FONCTIONNEL" ("HISTO_DESTRUCTEUR_ID"); --- V_SERVICE_VALIDE -CREATE OR REPLACE FORCE VIEW "V_SERVICE_VALIDE" ("ID", "INTERVENANT_ID", "SERVICE_ID", "VOLUME_HORAIRE_ID", "ELEMENT_PEDAGOGIQUE_ID", "LIBELLE", "HEURES", "VALIDATION_ID", "CODE") AS - select vh.ID, i.ID as intervenant_id, s.ID as service_id, vh.ID as volume_horaire_id, ep.id as element_pedagogique_id, ep.LIBELLE, vh.HEURES, v.ID as validation_id, tv.CODE - from service s - inner join INTERVENANT i on s.INTERVENANT_ID = i.id - left join ELEMENT_PEDAGOGIQUE ep on s.ELEMENT_PEDAGOGIQUE_ID = ep.id and ep.histo_destruction IS NULL -- pas d'EP si intervention hors-UCBN - inner join VOLUME_HORAIRE vh on vh.SERVICE_ID = s.ID and vh.histo_destruction IS NULL - inner join VALIDATION_VOL_HORAIRE vvh on vvh.VOLUME_HORAIRE_ID = vh.ID - inner join VALIDATION v on vvh.VALIDATION_ID = v.ID and v.histo_destruction IS NULL - inner join TYPE_VALIDATION tv on v.TYPE_VALIDATION_ID = tv.ID; +-- DOMAINE_FONCTIONNEL_HMFK_IDX +CREATE INDEX "DOMAINE_FONCTIONNEL_HMFK_IDX" ON "DOMAINE_FONCTIONNEL" ("HISTO_MODIFICATEUR_ID"); --- V_STRUCTURE_TYPE_MODULATEUR -CREATE OR REPLACE FORCE VIEW "V_STRUCTURE_TYPE_MODULATEUR" ("TYPE_MODULATEUR_ID", "STRUCTURE_ID") AS - SELECT DISTINCT - etm.type_modulateur_id type_modulateur_id, - ep.structure_id structure_id -FROM - v_element_type_modulateur etm - JOIN element_pedagogique ep ON ep.id = etm.element_pedagogique_id AND ep.histo_destruction IS NULL; +-- DOMAINE_FONCTIONNEL_PK +CREATE UNIQUE INDEX "DOMAINE_FONCTIONNEL_PK" ON "DOMAINE_FONCTIONNEL" ("ID"); + +-- DOSSIER_D_FK +CREATE INDEX "DOSSIER_D_FK" ON "DOSSIER" ("DEPT_NAISSANCE_ID"); + +-- DOSSIER_HCFK_IDX +CREATE INDEX "DOSSIER_HCFK_IDX" ON "DOSSIER" ("HISTO_CREATEUR_ID"); --- V_TBL_AGREMENT -CREATE OR REPLACE FORCE VIEW "V_TBL_AGREMENT" ("ANNEE_ID", "TYPE_AGREMENT_ID", "INTERVENANT_ID", "STRUCTURE_ID", "OBLIGATOIRE", "AGREMENT_ID") AS - WITH i_s AS ( - SELECT DISTINCT - fr.intervenant_id, - ep.structure_id - FROM - formule_resultat fr - JOIN type_volume_horaire tvh ON tvh.code = 'PREVU' AND tvh.id = fr.type_volume_horaire_id - JOIN etat_volume_horaire evh ON evh.code = 'valide' AND evh.id = fr.etat_volume_horaire_id +-- DOSSIER_HDFK_IDX +CREATE INDEX "DOSSIER_HDFK_IDX" ON "DOSSIER" ("HISTO_DESTRUCTEUR_ID"); - JOIN formule_resultat_service frs ON frs.formule_resultat_id = fr.id - JOIN service s ON s.id = frs.service_id - JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - WHERE - frs.total > 0 -) -SELECT - i.annee_id annee_id, - tas.type_agrement_id type_agrement_id, - i.id intervenant_id, - null structure_id, - tas.obligatoire obligatoire, - a.id agrement_id -FROM - type_agrement ta - JOIN type_agrement_statut tas ON tas.type_agrement_id = ta.id - AND tas.histo_destruction IS NULL - - JOIN intervenant i ON i.histo_destruction IS NULL - AND (tas.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = tas.premier_recrutement) - AND i.statut_id = tas.statut_intervenant_id - - LEFT JOIN agrement a ON a.type_agrement_id = ta.id - AND a.intervenant_id = i.id - AND a.histo_destruction IS NULL -WHERE - ta.code = 'CONSEIL_ACADEMIQUE' +-- DOSSIER_HMFK_IDX +CREATE INDEX "DOSSIER_HMFK_IDX" ON "DOSSIER" ("HISTO_MODIFICATEUR_ID"); -UNION ALL +-- DOSSIER_INTERVENANT_FK_IDX +CREATE INDEX "DOSSIER_INTERVENANT_FK_IDX" ON "DOSSIER" ("INTERVENANT_ID"); -SELECT - i.annee_id annee_id, - tas.type_agrement_id type_agrement_id, - i.id intervenant_id, - i_s.structure_id structure_id, - tas.obligatoire obligatoire, - a.id agrement_id -FROM - type_agrement ta - JOIN type_agrement_statut tas ON tas.type_agrement_id = ta.id - AND tas.histo_destruction IS NULL +-- DOSSIER_PK +CREATE UNIQUE INDEX "DOSSIER_PK" ON "DOSSIER" ("ID"); - JOIN intervenant i ON i.histo_destruction IS NULL - AND (tas.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = tas.premier_recrutement) - AND i.statut_id = tas.statut_intervenant_id +-- DOSSIER_P_FK +CREATE INDEX "DOSSIER_P_FK" ON "DOSSIER" ("PAYS_NAISSANCE_ID"); - JOIN i_s ON i_s.intervenant_id = i.id +-- DOSSIER_UK1 +CREATE UNIQUE INDEX "DOSSIER_UK1" ON "DOSSIER" ("HISTO_DESTRUCTION"); - LEFT JOIN agrement a ON a.type_agrement_id = ta.id - AND a.intervenant_id = i.id - AND a.structure_id = i_s.structure_id - AND a.histo_destruction IS NULL -WHERE - ta.code = 'CONSEIL_RESTREINT'; +-- DOTATION_ANNEE_FK_IDX +CREATE INDEX "DOTATION_ANNEE_FK_IDX" ON "DOTATION" ("ANNEE_ID"); --- V_TBL_CHARGENS -CREATE OR REPLACE FORCE VIEW "V_TBL_CHARGENS" ("ANNEE_ID", "NOEUD_ID", "SCENARIO_ID", "TYPE_HEURES_ID", "TYPE_INTERVENTION_ID", "ELEMENT_PEDAGOGIQUE_ID", "ETAPE_ID", "ETAPE_ENS_ID", "STRUCTURE_ID", "GROUPE_TYPE_FORMATION_ID", "OUVERTURE", "DEDOUBLEMENT", "ASSIDUITE", "EFFECTIF", "HEURES_ENS", "GROUPES", "HEURES", "HETD") AS - WITH t AS ( -SELECT - n.annee_id annee_id, - n.noeud_id noeud_id, - sn.scenario_id scenario_id, - sne.type_heures_id type_heures_id, - ti.id type_intervention_id, +-- DOTATION_HCFK_IDX +CREATE INDEX "DOTATION_HCFK_IDX" ON "DOTATION" ("HISTO_CREATEUR_ID"); - n.element_pedagogique_id element_pedagogique_id, - n.element_pedagogique_etape_id etape_id, - sne.etape_id etape_ens_id, - n.structure_id structure_id, - n.groupe_type_formation_id groupe_type_formation_id, +-- DOTATION_HDFK_IDX +CREATE INDEX "DOTATION_HDFK_IDX" ON "DOTATION" ("HISTO_DESTRUCTEUR_ID"); - vhe.heures heures, - vhe.heures * ti.taux_hetd_service hetd, +-- DOTATION_HMFK_IDX +CREATE INDEX "DOTATION_HMFK_IDX" ON "DOTATION" ("HISTO_MODIFICATEUR_ID"); - GREATEST(COALESCE(sns.ouverture, 1),1) ouverture, - GREATEST(COALESCE(sns.dedoublement, snsetp.dedoublement, csdd.dedoublement,1),1) dedoublement, - COALESCE(sns.assiduite,1) assiduite, - sne.effectif*COALESCE(sns.assiduite,1) effectif, +-- DOTATION_PK +CREATE UNIQUE INDEX "DOTATION_PK" ON "DOTATION" ("ID"); - SUM(sne.effectif*COALESCE(sns.assiduite,1)) OVER (PARTITION BY n.noeud_id, sn.scenario_id, ti.id) t_effectif +-- DOTATION_STRUCTURE_FK_IDX +CREATE INDEX "DOTATION_STRUCTURE_FK_IDX" ON "DOTATION" ("STRUCTURE_ID"); -FROM - scenario_noeud_effectif sne - JOIN etape e ON e.id = sne.etape_id - AND e.histo_destruction IS NULL - - JOIN scenario_noeud sn ON sn.id = sne.scenario_noeud_id - AND sn.histo_destruction IS NULL - - JOIN tbl_noeud n ON n.noeud_id = sn.noeud_id - - JOIN volume_horaire_ens vhe ON vhe.element_pedagogique_id = n.element_pedagogique_id - AND vhe.histo_destruction IS NULL - AND vhe.heures > 0 +-- DOTATION_TYPE_DOTATION_FK_IDX +CREATE INDEX "DOTATION_TYPE_DOTATION_FK_IDX" ON "DOTATION" ("TYPE_RESSOURCE_ID"); - JOIN type_intervention ti ON ti.id = vhe.type_intervention_id +-- DOTATION__UN +CREATE UNIQUE INDEX "DOTATION__UN" ON "DOTATION" ("TYPE_RESSOURCE_ID", "ANNEE_ID", "ANNEE_CIVILE", "STRUCTURE_ID", "LIBELLE", "HISTO_DESTRUCTION"); - LEFT JOIN tbl_noeud netp ON netp.etape_id = e.id - - LEFT JOIN scenario_noeud snetp ON snetp.scenario_id = sn.scenario_id - AND snetp.noeud_id = netp.noeud_id - AND snetp.histo_destruction IS NULL - - LEFT JOIN scenario_noeud_seuil snsetp ON snsetp.scenario_noeud_id = snetp.id - AND snsetp.type_intervention_id = ti.id +-- DS_MDS_FK_IDX +CREATE INDEX "DS_MDS_FK_IDX" ON "MODIFICATION_SERVICE_DU" ("MOTIF_ID"); - LEFT JOIN tbl_chargens_seuils_def csdd ON csdd.annee_id = n.annee_id - AND csdd.scenario_id = sn.scenario_id - AND csdd.type_intervention_id = ti.id - AND csdd.groupe_type_formation_id = n.groupe_type_formation_id - AND csdd.structure_id = n.structure_id +-- EFFECTIFS_ELEMENT_FK_IDX +CREATE INDEX "EFFECTIFS_ELEMENT_FK_IDX" ON "EFFECTIFS" ("ELEMENT_PEDAGOGIQUE_ID"); - LEFT JOIN scenario_noeud_seuil sns ON sns.scenario_noeud_id = sn.id - AND sns.type_intervention_id = ti.id -) -SELECT - annee_id, - noeud_id, - scenario_id, - type_heures_id, - type_intervention_id, +-- EFFECTIFS_FK +CREATE INDEX "EFFECTIFS_FK" ON "EFFECTIFS" ("ANNEE_ID"); - element_pedagogique_id, - etape_id, - etape_ens_id, - structure_id, - groupe_type_formation_id, +-- EFFECTIFS_HCFK_IDX +CREATE INDEX "EFFECTIFS_HCFK_IDX" ON "EFFECTIFS" ("HISTO_CREATEUR_ID"); - ouverture, - dedoublement, - assiduite, - effectif, - heures heures_ens, - --t_effectif, +-- EFFECTIFS_HDFK_IDX +CREATE INDEX "EFFECTIFS_HDFK_IDX" ON "EFFECTIFS" ("HISTO_DESTRUCTEUR_ID"); - CASE WHEN t_effectif < ouverture THEN 0 ELSE - CEIL( t_effectif / dedoublement ) * effectif / t_effectif - END groupes, +-- EFFECTIFS_HMFK_IDX +CREATE INDEX "EFFECTIFS_HMFK_IDX" ON "EFFECTIFS" ("HISTO_MODIFICATEUR_ID"); - CASE WHEN t_effectif < ouverture THEN 0 ELSE - CEIL( t_effectif / dedoublement ) * heures * effectif / t_effectif - END heures, +-- EFFECTIFS_PK +CREATE UNIQUE INDEX "EFFECTIFS_PK" ON "EFFECTIFS" ("ID"); - CASE WHEN t_effectif < ouverture THEN 0 ELSE - CEIL( t_effectif / dedoublement ) * hetd * effectif / t_effectif - END hetd +-- EFFECTIFS_SOURCE_FK_IDX +CREATE INDEX "EFFECTIFS_SOURCE_FK_IDX" ON "EFFECTIFS" ("SOURCE_ID"); -FROM - t; +-- EFFECTIFS__UN +CREATE UNIQUE INDEX "EFFECTIFS__UN" ON "EFFECTIFS" ("SOURCE_CODE", "ANNEE_ID"); --- V_TBL_CHARGENS_SEUILS_DEF -CREATE OR REPLACE FORCE VIEW "V_TBL_CHARGENS_SEUILS_DEF" ("ANNEE_ID", "SCENARIO_ID", "STRUCTURE_ID", "GROUPE_TYPE_FORMATION_ID", "TYPE_INTERVENTION_ID", "DEDOUBLEMENT") AS - SELECT - sta.annee_id, - sta.scenario_id, - s.structure_id, - gtf.groupe_type_formation_id, - sta.type_intervention_id, - COALESCE(sc1.dedoublement, sc2.dedoublement, sc3.dedoublement, sc4.dedoublement) dedoublement -FROM - (SELECT DISTINCT scenario_id, type_intervention_id, annee_id FROM seuil_charge WHERE histo_destruction IS NULL) sta - JOIN (SELECT DISTINCT structure_id FROM noeud WHERE structure_id IS NOT NULL) s ON 1=1 - JOIN (SELECT id groupe_type_formation_id FROM groupe_type_formation) gtf ON 1=1 - - LEFT JOIN seuil_charge sc1 ON - sc1.histo_destruction IS NULL - AND sc1.annee_id = sta.annee_id - AND sc1.scenario_id = sta.scenario_id - AND sc1.type_intervention_id = sta.type_intervention_id - AND sc1.structure_id = s.structure_id - AND sc1.groupe_type_formation_id = gtf.groupe_type_formation_id - - LEFT JOIN seuil_charge sc2 ON - sc2.histo_destruction IS NULL - AND sc2.annee_id = sta.annee_id - AND sc2.scenario_id = sta.scenario_id - AND sc2.type_intervention_id = sta.type_intervention_id - AND sc2.structure_id = s.structure_id - AND sc2.groupe_type_formation_id IS NULL - - LEFT JOIN seuil_charge sc3 ON - sc3.histo_destruction IS NULL - AND sc3.annee_id = sta.annee_id - AND sc3.scenario_id = sta.scenario_id - AND sc3.type_intervention_id = sta.type_intervention_id - AND sc3.structure_id IS NULL - AND sc3.groupe_type_formation_id = gtf.groupe_type_formation_id - - LEFT JOIN seuil_charge sc4 ON - sc4.histo_destruction IS NULL - AND sc4.annee_id = sta.annee_id - AND sc4.scenario_id = sta.scenario_id - AND sc4.type_intervention_id = sta.type_intervention_id - AND sc4.structure_id IS NULL - AND sc4.groupe_type_formation_id IS NULL -WHERE - COALESCE(sc1.dedoublement, sc2.dedoublement, sc3.dedoublement, sc4.dedoublement, 1) <> 1; +-- ELEMENT_MODULATEUR_HCFK_IDX +CREATE INDEX "ELEMENT_MODULATEUR_HCFK_IDX" ON "ELEMENT_MODULATEUR" ("HISTO_CREATEUR_ID"); --- V_TBL_CLOTURE_REALISE -CREATE OR REPLACE FORCE VIEW "V_TBL_CLOTURE_REALISE" ("ANNEE_ID", "INTERVENANT_ID", "PEUT_CLOTURER_SAISIE", "CLOTURE") AS - WITH t AS ( - SELECT - i.annee_id annee_id, - i.id intervenant_id, - si.peut_cloturer_saisie peut_cloturer_saisie, - CASE WHEN v.id IS NULL THEN 0 ELSE 1 END cloture - FROM - intervenant i - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN type_validation tv ON tv.code = 'CLOTURE_REALISE' - - LEFT JOIN validation v ON v.intervenant_id = i.id - AND v.type_validation_id = tv.id - AND v.histo_destruction IS NULL +-- ELEMENT_MODULATEUR_HDFK_IDX +CREATE INDEX "ELEMENT_MODULATEUR_HDFK_IDX" ON "ELEMENT_MODULATEUR" ("HISTO_DESTRUCTEUR_ID"); - WHERE - i.histo_destruction IS NULL -) -SELECT - annee_id, - intervenant_id, - peut_cloturer_saisie, - CASE WHEN sum(cloture) = 0 THEN 0 ELSE 1 END cloture -FROM - t -GROUP BY - annee_id, - intervenant_id, - peut_cloturer_saisie; +-- ELEMENT_MODULATEUR_HMFK_IDX +CREATE INDEX "ELEMENT_MODULATEUR_HMFK_IDX" ON "ELEMENT_MODULATEUR" ("HISTO_MODIFICATEUR_ID"); --- V_TBL_CONTRAT -CREATE OR REPLACE FORCE VIEW "V_TBL_CONTRAT" ("ANNEE_ID", "INTERVENANT_ID", "PEUT_AVOIR_CONTRAT", "STRUCTURE_ID", "NBVH", "EDITE", "SIGNE") AS - WITH t AS ( - SELECT - i.annee_id annee_id, - i.id intervenant_id, - si.peut_avoir_contrat peut_avoir_contrat, - NVL(ep.structure_id, i.structure_id) structure_id, - CASE WHEN evh.code IN ('contrat-edite','contrat-signe') THEN 1 ELSE 0 END edite, - CASE WHEN evh.code IN ('contrat-signe') THEN 1 ELSE 0 END signe - FROM - intervenant i - - JOIN statut_intervenant si ON si.id = i.statut_id - - JOIN service s ON s.intervenant_id = i.id - AND s.histo_destruction IS NULL - - JOIN type_volume_horaire tvh ON tvh.code = 'PREVU' - - JOIN volume_horaire vh ON vh.service_id = s.id - AND vh.histo_destruction IS NULL - AND vh.heures <> 0 - AND vh.type_volume_horaire_id = tvh.id - - JOIN v_volume_horaire_etat vhe ON vhe.volume_horaire_id = vh.id - - JOIN etat_volume_horaire evh ON evh.id = vhe.etat_volume_horaire_id - AND evh.code IN ('valide', 'contrat-edite', 'contrat-signe') - - JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - - WHERE - i.histo_destruction IS NULL - AND NOT (si.peut_avoir_contrat = 0 AND evh.code = 'valide') - - UNION ALL - - SELECT - i.annee_id annee_id, - i.id intervenant_id, - si.peut_avoir_contrat peut_avoir_contrat, - s.structure_id structure_id, - CASE WHEN evh.code IN ('contrat-edite','contrat-signe') THEN 1 ELSE 0 END edite, - CASE WHEN evh.code IN ('contrat-signe') THEN 1 ELSE 0 END signe - FROM - intervenant i - - JOIN statut_intervenant si ON si.id = i.statut_id - - JOIN service_referentiel s ON s.intervenant_id = i.id - AND s.histo_destruction IS NULL - - JOIN type_volume_horaire tvh ON tvh.code = 'PREVU' - - JOIN volume_horaire_ref vh ON vh.service_referentiel_id = s.id - AND vh.histo_destruction IS NULL - AND vh.heures <> 0 - AND vh.type_volume_horaire_id = tvh.id - - JOIN v_volume_horaire_ref_etat vhe ON vhe.volume_horaire_ref_id = vh.id - - JOIN etat_volume_horaire evh ON evh.id = vhe.etat_volume_horaire_id - AND evh.code IN ('valide', 'contrat-edite', 'contrat-signe') - - WHERE - i.histo_destruction IS NULL - AND NOT (si.peut_avoir_contrat = 0 AND evh.code = 'valide') -) -SELECT - annee_id, - intervenant_id, - peut_avoir_contrat, - structure_id, - count(*) as nbvh, - sum(edite) as edite, - sum(signe) as signe -FROM - t -GROUP BY - annee_id, - intervenant_id, - peut_avoir_contrat, - structure_id; +-- ELEMENT_MODULATEUR_PK +CREATE UNIQUE INDEX "ELEMENT_MODULATEUR_PK" ON "ELEMENT_MODULATEUR" ("ID"); --- V_TBL_DMEP_LIQUIDATION -CREATE OR REPLACE FORCE VIEW "V_TBL_DMEP_LIQUIDATION" ("ANNEE_ID", "TYPE_RESSOURCE_ID", "STRUCTURE_ID", "HEURES") AS - SELECT - annee_id, - type_ressource_id, - structure_id, - SUM(heures) heures -FROM -( - SELECT - i.annee_id, - cc.type_ressource_id, - COALESCE( ep.structure_id, i.structure_id ) structure_id, - mep.heures - FROM - mise_en_paiement mep - JOIN centre_cout cc ON cc.id = mep.centre_cout_id - JOIN formule_resultat_service frs ON frs.id = mep.formule_res_service_id - JOIN service s ON s.id = frs.service_id - JOIN intervenant i ON i.id = s.intervenant_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - WHERE - mep.histo_destruction IS NULL - - UNION ALL - - SELECT - i.annee_id, - cc.type_ressource_id, - sr.structure_id structure_id, - heures - FROM - mise_en_paiement mep - JOIN centre_cout cc ON cc.id = mep.centre_cout_id - JOIN formule_resultat_service_ref frsr ON frsr.id = mep.formule_res_service_ref_id - JOIN service_referentiel sr ON sr.id = frsr.service_referentiel_id - JOIN intervenant i ON i.id = sr.intervenant_id - - WHERE - mep.histo_destruction IS NULL +-- ELEMENT_MODULATEUR__UN +CREATE UNIQUE INDEX "ELEMENT_MODULATEUR__UN" ON "ELEMENT_MODULATEUR" ("ELEMENT_ID", "MODULATEUR_ID", "HISTO_DESTRUCTION"); -) t1 -GROUP BY - annee_id, type_ressource_id, structure_id; +-- ELEMENT_PEDAGOGIQUE_HCFK_IDX +CREATE INDEX "ELEMENT_PEDAGOGIQUE_HCFK_IDX" ON "ELEMENT_PEDAGOGIQUE" ("HISTO_CREATEUR_ID"); --- V_TBL_DOSSIER -CREATE OR REPLACE FORCE VIEW "V_TBL_DOSSIER" ("ANNEE_ID", "INTERVENANT_ID", "PEUT_SAISIR_DOSSIER", "DOSSIER_ID", "VALIDATION_ID") AS - SELECT - i.annee_id, - i.id intervenant_id, - si.peut_saisir_dossier, - d.id dossier_id, - v.id validation_id -FROM - intervenant i - JOIN statut_intervenant si ON si.id = i.statut_id - LEFT JOIN dossier d ON d.intervenant_id = i.id - AND d.histo_destruction IS NULL - - JOIN type_validation tv ON tv.code = 'DONNEES_PERSO_PAR_COMP' - LEFT JOIN validation v ON v.intervenant_id = i.id - AND v.type_validation_id = tv.id - AND v.histo_destruction IS NULL -WHERE - i.histo_destruction IS NULL; +-- ELEMENT_PEDAGOGIQUE_HDFK_IDX +CREATE INDEX "ELEMENT_PEDAGOGIQUE_HDFK_IDX" ON "ELEMENT_PEDAGOGIQUE" ("HISTO_DESTRUCTEUR_ID"); --- V_TBL_LIEN -CREATE OR REPLACE FORCE VIEW "V_TBL_LIEN" ("LIEN_ID", "SCENARIO_ID", "SCENARIO_LIEN_ID", "NOEUD_SUP_ID", "NOEUD_INF_ID", "STRUCTURE_ID", "ACTIF", "POIDS", "MAX_POIDS", "CHOIX_MAXIMUM", "CHOIX_MINIMUM", "NB_CHOIX", "TOTAL_POIDS") AS - SELECT - l.id lien_id, - s.id scenario_id, - sl.id scenario_lien_id, - l.noeud_sup_id noeud_sup_id, - l.noeud_inf_id noeud_inf_id, - l.structure_id structure_id, - NVL(sl.actif,1) actif, - NVL(sl.poids,1) poids, - MAX(CASE WHEN 1 = NVL(sl.actif,1) THEN NVL(sl.poids,1) ELSE 0 END) OVER (PARTITION BY l.noeud_sup_id, s.id) max_poids, - sl.choix_maximum choix_maximum, - sl.choix_minimum choix_minimum, +-- ELEMENT_PEDAGOGIQUE_HMFK_IDX +CREATE INDEX "ELEMENT_PEDAGOGIQUE_HMFK_IDX" ON "ELEMENT_PEDAGOGIQUE" ("HISTO_MODIFICATEUR_ID"); - SUM(NVL(sl.actif,1)) OVER (PARTITION BY l.noeud_sup_id, s.id) nb_choix, - SUM(CASE WHEN 1 = NVL(sl.actif,1) THEN NVL(sl.poids,1) ELSE 0 END) OVER (PARTITION BY l.noeud_sup_id, s.id) total_poids +-- ELEMENT_PEDAGOGIQUE_PK +CREATE UNIQUE INDEX "ELEMENT_PEDAGOGIQUE_PK" ON "ELEMENT_PEDAGOGIQUE" ("ID"); -FROM - lien l - JOIN scenario s ON s.histo_destruction IS NULL - LEFT JOIN scenario_lien sl ON - sl.lien_id = l.id - AND sl.scenario_id = s.id - AND s.histo_destruction IS NULL -WHERE - l.histo_destruction IS NULL; +-- ELEMENT_TAUX_REGIMES_HCFK_IDX +CREATE INDEX "ELEMENT_TAUX_REGIMES_HCFK_IDX" ON "ELEMENT_TAUX_REGIMES" ("HISTO_CREATEUR_ID"); --- V_TBL_PAIEMENT -CREATE OR REPLACE FORCE VIEW "V_TBL_PAIEMENT" ("ANNEE_ID", "FORMULE_RES_SERVICE_ID", "FORMULE_RES_SERVICE_REF_ID", "INTERVENANT_ID", "STRUCTURE_ID", "MISE_EN_PAIEMENT_ID", "PERIODE_PAIEMENT_ID", "HEURES_A_PAYER", "HEURES_A_PAYER_POND", "HEURES_DEMANDEES", "HEURES_PAYEES") AS - SELECT - i.annee_id annee_id, - frs.id formule_res_service_id, - null formule_res_service_ref_id, - i.id intervenant_id, - COALESCE( ep.structure_id, i.structure_id ) structure_id, - mep.id mise_en_paiement_id, - mep.periode_paiement_id periode_paiement_id, - frs.heures_compl_fi + frs.heures_compl_fc + frs.heures_compl_fa + frs.heures_compl_fc_majorees heures_a_payer, - count(*) OVER(PARTITION BY frs.id) heures_a_payer_pond, - NVL(mep.heures,0) heures_demandees, - CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees -FROM - formule_resultat_service frs - JOIN type_volume_horaire tvh ON tvh.code = 'REALISE' - JOIN etat_volume_horaire evh ON evh.code = 'valide' - JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id - AND fr.type_volume_horaire_id = tvh.id - AND fr.etat_volume_horaire_id = evh.id +-- ELEMENT_TAUX_REGIMES_HDFK_IDX +CREATE INDEX "ELEMENT_TAUX_REGIMES_HDFK_IDX" ON "ELEMENT_TAUX_REGIMES" ("HISTO_DESTRUCTEUR_ID"); - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN service s ON s.id = frs.service_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id - AND mep.histo_destruction IS NULL +-- ELEMENT_TAUX_REGIMES_HMFK_IDX +CREATE INDEX "ELEMENT_TAUX_REGIMES_HMFK_IDX" ON "ELEMENT_TAUX_REGIMES" ("HISTO_MODIFICATEUR_ID"); -UNION ALL +-- ELEMENT_TAUX_REGIMES_PK +CREATE UNIQUE INDEX "ELEMENT_TAUX_REGIMES_PK" ON "ELEMENT_TAUX_REGIMES" ("ID"); -SELECT - i.annee_id annee_id, - null formule_res_service_id, - frs.id formule_res_service_ref_id, - i.id intervenant_id, - s.structure_id structure_id, - mep.id mise_en_paiement_id, - mep.periode_paiement_id periode_paiement_id, - frs.heures_compl_referentiel heures_a_payer, - count(*) OVER(PARTITION BY frs.id) heures_a_payer_pond, - NVL(mep.heures,0) heures_demandees, - CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees -FROM - formule_resultat_service_ref frs - JOIN type_volume_horaire tvh ON tvh.code = 'REALISE' - JOIN etat_volume_horaire evh ON evh.code = 'valide' - JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id - AND fr.type_volume_horaire_id = tvh.id - AND fr.etat_volume_horaire_id = evh.id +-- ELEMENT_TAUX_REGIMES__UN +CREATE UNIQUE INDEX "ELEMENT_TAUX_REGIMES__UN" ON "ELEMENT_TAUX_REGIMES" ("SOURCE_CODE", "HISTO_DESTRUCTION"); - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN service_referentiel s ON s.id = frs.service_referentiel_id - LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_ref_id = frs.id - AND mep.histo_destruction IS NULL; +-- ELEMENT_TAUX_REGIMES__UNV1 +CREATE UNIQUE INDEX "ELEMENT_TAUX_REGIMES__UNV1" ON "ELEMENT_TAUX_REGIMES" ("ELEMENT_PEDAGOGIQUE_ID", "HISTO_DESTRUCTION"); --- V_TBL_PIECE_JOINTE -CREATE OR REPLACE FORCE VIEW "V_TBL_PIECE_JOINTE" ("ANNEE_ID", "TYPE_PIECE_JOINTE_ID", "INTERVENANT_ID", "DEMANDEE", "FOURNIE", "VALIDEE", "HEURES_POUR_SEUIL") AS - WITH pjf AS ( - SELECT - pjf.annee_id, - pjf.type_piece_jointe_id, - pjf.intervenant_id, - COUNT(*) count, - SUM(CASE WHEN validation_id IS NULL THEN 0 ELSE 1 END) validation, - SUM(CASE WHEN fichier_id IS NULL THEN 0 ELSE 1 END) fichier - FROM - tbl_piece_jointe_fournie pjf - GROUP BY - pjf.annee_id, - pjf.type_piece_jointe_id, - pjf.intervenant_id -) -SELECT - NVL( pjd.annee_id, pjf.annee_id ) annee_id, - NVL( pjd.type_piece_jointe_id, pjf.type_piece_jointe_id ) type_piece_jointe_id, - NVL( pjd.intervenant_id, pjf.intervenant_id ) intervenant_id, - CASE WHEN pjd.intervenant_id IS NULL THEN 0 ELSE 1 END demandee, - CASE WHEN pjf.fichier = pjf.count THEN 1 ELSE 0 END fournie, - CASE WHEN pjf.validation = pjf.count THEN 1 ELSE 0 END validee, - NVL(pjd.heures_pour_seuil,0) heures_pour_seuil -FROM - tbl_piece_jointe_demande pjd - FULL JOIN pjf ON pjf.type_piece_jointe_id = pjd.type_piece_jointe_id AND pjf.intervenant_id = pjd.intervenant_id; +-- EM_ELEMENT_PEDAGOGIQUE_FK_IDX +CREATE INDEX "EM_ELEMENT_PEDAGOGIQUE_FK_IDX" ON "ELEMENT_MODULATEUR" ("ELEMENT_ID"); --- V_TBL_PIECE_JOINTE_DEMANDE -CREATE OR REPLACE FORCE VIEW "V_TBL_PIECE_JOINTE_DEMANDE" ("ANNEE_ID", "INTERVENANT_ID", "TYPE_PIECE_JOINTE_ID", "HEURES_POUR_SEUIL") AS - WITH i_h AS ( - SELECT - s.intervenant_id, - sum(vh.heures) heures, - sum(ep.taux_fc) fc - FROM - service s - JOIN type_volume_horaire tvh ON tvh.code = 'PREVU' - JOIN volume_horaire vh ON vh.service_id = s.id - AND vh.type_volume_horaire_id = tvh.id - AND vh.histo_destruction IS NULL - JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id -- Service sur l'établissement - WHERE - s.histo_destruction IS NULL - AND vh.motif_non_paiement_id IS NULL -- pas de motif de non paiement - GROUP BY - s.intervenant_id -) -SELECT - i.annee_id annee_id, - i.id intervenant_id, - tpj.id type_piece_jointe_id, - MAX(COALESCE(i_h.heures, 0)) heures_pour_seuil -FROM - intervenant i +-- EM_MODULATEUR_FK_IDX +CREATE INDEX "EM_MODULATEUR_FK_IDX" ON "ELEMENT_MODULATEUR" ("MODULATEUR_ID"); - LEFT JOIN dossier d ON d.intervenant_id = i.id - AND d.histo_destruction IS NULL - - JOIN type_piece_jointe_statut tpjs ON tpjs.statut_intervenant_id = i.statut_id - AND tpjs.histo_destruction IS NULL - AND i.annee_id BETWEEN COALESCE(tpjs.annee_debut_id,i.annee_id) AND COALESCE(tpjs.annee_fin_id,i.annee_id) - - JOIN type_piece_jointe tpj ON tpj.id = tpjs.type_piece_jointe_id - AND tpj.histo_destruction IS NULL - - LEFT JOIN i_h ON i_h.intervenant_id = i.id -WHERE - -- Gestion de l'historique - i.histo_destruction IS NULL +-- EPS_FK_IDX +CREATE INDEX "EPS_FK_IDX" ON "ELEMENT_PEDAGOGIQUE" ("STRUCTURE_ID"); - -- Seuil HETD - AND (COALESCE(i_h.heures,0) > COALESCE(tpjs.seuil_hetd,-1)) +-- EP_ANNEE_FK_IDX +CREATE INDEX "EP_ANNEE_FK_IDX" ON "ELEMENT_PEDAGOGIQUE" ("ANNEE_ID"); - -- En fonction du premier recrutement ou non - AND (tpjs.premier_recrutement = 0 OR COALESCE(i.premier_recrutement,0) = 1) +-- EP_CODE_UN +CREATE UNIQUE INDEX "EP_CODE_UN" ON "ELEMENT_PEDAGOGIQUE" ("CODE", "HISTO_DESTRUCTION", "ANNEE_ID"); - -- Le RIB n'est demandé QUE s'il est différent!! - AND CASE - WHEN tpjs.changement_rib = 0 OR d.id IS NULL THEN 1 - ELSE CASE WHEN replace(i.bic, ' ', '') || '-' || replace(i.iban, ' ', '') = d.rib THEN 0 ELSE 1 END - END = 1 +-- EP_CODE__UN +CREATE UNIQUE INDEX "EP_CODE__UN" ON "ELEMENT_PEDAGOGIQUE" ("SOURCE_CODE", "ANNEE_ID"); - -- Filtre FC - AND (tpjs.fc = 0 OR i_h.fc > 0) -GROUP BY - i.annee_id, - i.id, - tpj.id; +-- EP_DISCIPLINE_FK_IDX +CREATE INDEX "EP_DISCIPLINE_FK_IDX" ON "ELEMENT_PEDAGOGIQUE" ("DISCIPLINE_ID"); --- V_TBL_PIECE_JOINTE_FOURNIE -CREATE OR REPLACE FORCE VIEW "V_TBL_PIECE_JOINTE_FOURNIE" ("ANNEE_ID", "TYPE_PIECE_JOINTE_ID", "INTERVENANT_ID", "PIECE_JOINTE_ID", "VALIDATION_ID", "FICHIER_ID") AS - SELECT - i.annee_id, - pj.type_piece_jointe_id, - pj.intervenant_id, - pj.id piece_jointe_id, - v.id validation_id, - f.id fichier_id -FROM - piece_jointe pj - JOIN intervenant i ON i.id = pj.intervenant_id - AND i.histo_destruction IS NULL - - JOIN piece_jointe_fichier pjf ON pjf.piece_jointe_id = pj.id - JOIN fichier f ON f.id = pjf.fichier_id - AND f.histo_destruction IS NULL - - LEFT JOIN validation v ON v.id = pj.validation_id - AND v.histo_destruction IS NULL -WHERE - pj.histo_destruction IS NULL; +-- EP_ETAPE_FK_IDX +CREATE INDEX "EP_ETAPE_FK_IDX" ON "ELEMENT_PEDAGOGIQUE" ("ETAPE_ID"); --- V_TBL_SERVICE -CREATE OR REPLACE FORCE VIEW "V_TBL_SERVICE" ("ANNEE_ID", "INTERVENANT_ID", "INTERVENANT_STRUCTURE_ID", "STRUCTURE_ID", "TYPE_INTERVENANT_ID", "TYPE_INTERVENANT_CODE", "PEUT_SAISIR_SERVICE", "ELEMENT_PEDAGOGIQUE_ID", "SERVICE_ID", "ELEMENT_PEDAGOGIQUE_PERIODE_ID", "ETAPE_ID", "TYPE_VOLUME_HORAIRE_ID", "TYPE_VOLUME_HORAIRE_CODE", "ELEMENT_PEDAGOGIQUE_HISTO", "ETAPE_HISTO", "HAS_HEURES_MAUVAISE_PERIODE", "NBVH", "HEURES", "VALIDE") AS - WITH t AS ( -SELECT - s.id service_id, - s.intervenant_id intervenant_id, - ep.structure_id structure_id, - ep.id element_pedagogique_id, - ep.periode_id element_pedagogique_periode_id, - etp.id etape_id, +-- EP_PERIODE_FK_IDX +CREATE INDEX "EP_PERIODE_FK_IDX" ON "ELEMENT_PEDAGOGIQUE" ("PERIODE_ID"); - vh.type_volume_horaire_id type_volume_horaire_id, - vh.heures heures, - tvh.code type_volume_horaire_code, +-- EP_SOURCE_FK_IDX +CREATE INDEX "EP_SOURCE_FK_IDX" ON "ELEMENT_PEDAGOGIQUE" ("SOURCE_ID"); - CASE WHEN ep.histo_destruction IS NULL THEN 1 ELSE 0 END element_pedagogique_histo, - CASE WHEN etp.histo_destruction IS NULL OR cp.id IS NOT NULL THEN 1 ELSE 0 END etape_histo, +-- EP_SRC_UN +CREATE UNIQUE INDEX "EP_SRC_UN" ON "ELEMENT_PEDAGOGIQUE" ("SOURCE_CODE", "ANNEE_ID", "HISTO_DESTRUCTION"); - CASE WHEN ep.periode_id IS NOT NULL THEN - SUM( CASE WHEN vh.periode_id <> ep.periode_id THEN 1 ELSE 0 END ) OVER( PARTITION BY vh.service_id, vh.periode_id, vh.type_volume_horaire_id, vh.type_intervention_id ) - ELSE 0 END has_heures_mauvaise_periode, +-- ETABLISSEMENT_HCFK_IDX +CREATE INDEX "ETABLISSEMENT_HCFK_IDX" ON "ETABLISSEMENT" ("HISTO_CREATEUR_ID"); - CASE WHEN v.id IS NULL THEN 0 ELSE 1 END valide -FROM - service s - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - LEFT JOIN etape etp ON etp.id = ep.etape_id - LEFT JOIN chemin_pedagogique cp ON cp.etape_id = etp.id - AND cp.element_pedagogique_id = ep.id - AND cp.histo_destruction IS NULL +-- ETABLISSEMENT_HDFK_IDX +CREATE INDEX "ETABLISSEMENT_HDFK_IDX" ON "ETABLISSEMENT" ("HISTO_DESTRUCTEUR_ID"); - JOIN volume_horaire vh ON vh.service_id = s.id - AND vh.histo_destruction IS NULL +-- ETABLISSEMENT_HMFK_IDX +CREATE INDEX "ETABLISSEMENT_HMFK_IDX" ON "ETABLISSEMENT" ("HISTO_MODIFICATEUR_ID"); - JOIN type_volume_horaire tvh ON tvh.id = vh.type_volume_horaire_id +-- ETABLISSEMENT_PK +CREATE UNIQUE INDEX "ETABLISSEMENT_PK" ON "ETABLISSEMENT" ("ID"); - LEFT JOIN validation_vol_horaire vvh ON vvh.volume_horaire_id = vh.id +-- ETABLISSEMENT_SOURCE_FK_IDX +CREATE INDEX "ETABLISSEMENT_SOURCE_FK_IDX" ON "ETABLISSEMENT" ("SOURCE_ID"); + +-- ETABLISSEMENT_SOURCE_ID_UN +CREATE UNIQUE INDEX "ETABLISSEMENT_SOURCE_ID_UN" ON "ETABLISSEMENT" ("SOURCE_CODE"); + +-- ETAPE_ANNEE_IDX +CREATE INDEX "ETAPE_ANNEE_IDX" ON "ETAPE" ("ANNEE_ID"); + +-- ETAPE_CODE_UN +CREATE UNIQUE INDEX "ETAPE_CODE_UN" ON "ETAPE" ("CODE", "ANNEE_ID", "HISTO_DESTRUCTION"); + +-- ETAPE_DF_FK_IDX +CREATE INDEX "ETAPE_DF_FK_IDX" ON "ETAPE" ("DOMAINE_FONCTIONNEL_ID"); + +-- ETAPE_HCFK_IDX +CREATE INDEX "ETAPE_HCFK_IDX" ON "ETAPE" ("HISTO_CREATEUR_ID"); + +-- ETAPE_HDFK_IDX +CREATE INDEX "ETAPE_HDFK_IDX" ON "ETAPE" ("HISTO_DESTRUCTEUR_ID"); + +-- ETAPE_HMFK_IDX +CREATE INDEX "ETAPE_HMFK_IDX" ON "ETAPE" ("HISTO_MODIFICATEUR_ID"); - LEFT JOIN validation v ON v.id = vvh.validation_id - AND v.histo_destruction IS NULL -WHERE - s.histo_destruction IS NULL -) -SELECT - i.annee_id annee_id, - i.id intervenant_id, - i.structure_id intervenant_structure_id, - NVL( t.structure_id, i.structure_id ) structure_id, - ti.id type_intervenant_id, - ti.code type_intervenant_code, - si.peut_saisir_service peut_saisir_service, +-- ETAPE_PK +CREATE UNIQUE INDEX "ETAPE_PK" ON "ETAPE" ("ID"); - t.element_pedagogique_id, - t.service_id, - t.element_pedagogique_periode_id, - t.etape_id, - t.type_volume_horaire_id, - t.type_volume_horaire_code, - t.element_pedagogique_histo, - t.etape_histo, +-- ETAPE_SOURCE_FK_IDX +CREATE INDEX "ETAPE_SOURCE_FK_IDX" ON "ETAPE" ("SOURCE_ID"); - CASE WHEN SUM(t.has_heures_mauvaise_periode) > 0 THEN 1 ELSE 0 END has_heures_mauvaise_periode, +-- ETAPE_SRC_UN +CREATE UNIQUE INDEX "ETAPE_SRC_UN" ON "ETAPE" ("SOURCE_CODE", "HISTO_DESTRUCTION", "ANNEE_ID"); - CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE count(*) END nbvh, - CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE sum(t.heures) END heures, - sum(valide) valide -FROM - t - JOIN intervenant i ON i.id = t.intervenant_id - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN type_intervenant ti ON ti.id = si.type_intervenant_id -GROUP BY - i.annee_id, - i.id, - i.structure_id, - t.structure_id, - i.structure_id, - ti.id, - ti.code, - si.peut_saisir_service, - t.element_pedagogique_id, - t.service_id, - t.element_pedagogique_periode_id, - t.etape_id, - t.type_volume_horaire_id, - t.type_volume_horaire_code, - t.element_pedagogique_histo, - t.etape_histo; +-- ETAPE_STRUCTURE_FK_IDX +CREATE INDEX "ETAPE_STRUCTURE_FK_IDX" ON "ETAPE" ("STRUCTURE_ID"); --- V_TBL_SERVICE_REFERENTIEL -CREATE OR REPLACE FORCE VIEW "V_TBL_SERVICE_REFERENTIEL" ("ANNEE_ID", "INTERVENANT_ID", "PEUT_SAISIR_SERVICE", "TYPE_VOLUME_HORAIRE_ID", "STRUCTURE_ID", "NBVH", "VALIDE") AS - WITH t AS ( +-- ETAPE_TYPE_FORMATION_FK_IDX +CREATE INDEX "ETAPE_TYPE_FORMATION_FK_IDX" ON "ETAPE" ("TYPE_FORMATION_ID"); - SELECT - i.annee_id, - i.id intervenant_id, - si.peut_saisir_referentiel peut_saisir_service, - vh.type_volume_horaire_id, - s.structure_id, - CASE WHEN v.id IS NULL THEN 0 ELSE 1 END valide - FROM - intervenant i - - JOIN statut_intervenant si ON si.id = i.statut_id - - LEFT JOIN service_referentiel s ON s.intervenant_id = i.id - AND s.histo_destruction IS NULL - - LEFT JOIN volume_horaire_ref vh ON vh.service_referentiel_id = s.id - AND vh.histo_destruction IS NULL - - LEFT JOIN validation_vol_horaire_ref vvh ON vvh.volume_horaire_ref_id = vh.id - - LEFT JOIN validation v ON v.id = vvh.validation_id - AND v.histo_destruction IS NULL - WHERE - i.histo_destruction IS NULL +-- ETAT_VOLUME_HORAIRE_PK +CREATE UNIQUE INDEX "ETAT_VOLUME_HORAIRE_PK" ON "ETAT_VOLUME_HORAIRE" ("ID"); -) -SELECT - annee_id, - intervenant_id, - peut_saisir_service, - type_volume_horaire_id, - structure_id, - CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE count(*) END nbvh, - sum(valide) valide -FROM - t -WHERE - NOT (structure_id IS NOT NULL AND type_volume_horaire_id IS NULL) -GROUP BY - annee_id, - intervenant_id, - peut_saisir_service, - type_volume_horaire_id, - structure_id; +-- ETAT_VOLUME_HORAIRE__UN +CREATE UNIQUE INDEX "ETAT_VOLUME_HORAIRE__UN" ON "ETAT_VOLUME_HORAIRE" ("CODE"); --- V_TBL_SERVICE_SAISIE -CREATE OR REPLACE FORCE VIEW "V_TBL_SERVICE_SAISIE" ("ANNEE_ID", "INTERVENANT_ID", "PEUT_SAISIR_SERVICE", "PEUT_SAISIR_REFERENTIEL", "HEURES_SERVICE_PREV", "HEURES_REFERENTIEL_PREV", "HEURES_SERVICE_REAL", "HEURES_REFERENTIEL_REAL") AS - SELECT - i.annee_id, - i.id intervenant_id, - si.peut_saisir_service, - si.peut_saisir_referentiel, - SUM( CASE WHEN tvhs.code = 'PREVU' THEN NVL(vh .heures,0) ELSE 0 END ) heures_service_prev, - SUM( CASE WHEN tvhs.code = 'PREVU' THEN NVL(vhr.heures,0) ELSE 0 END ) heures_referentiel_prev, - SUM( CASE WHEN tvhs.code = 'REALISE' THEN NVL(vh .heures,0) ELSE 0 END ) heures_service_real, - SUM( CASE WHEN tvhs.code = 'REALISE' THEN NVL(vhr.heures,0) ELSE 0 END ) heures_referentiel_real -FROM - intervenant i - JOIN statut_intervenant si ON si.id = i.statut_id - LEFT JOIN service s ON s.intervenant_id = i.id AND s.histo_destruction IS NULL - LEFT JOIN volume_horaire vh ON vh.service_id = s.id AND vh.histo_destruction IS NULL - LEFT JOIN type_volume_horaire tvhs ON tvhs.id = vh.type_volume_horaire_id +-- ETR_ELEMENT_FK_IDX +CREATE INDEX "ETR_ELEMENT_FK_IDX" ON "ELEMENT_TAUX_REGIMES" ("ELEMENT_PEDAGOGIQUE_ID"); - LEFT JOIN service_referentiel sr ON sr.intervenant_id = i.id AND sr.histo_destruction IS NULL - LEFT JOIN volume_horaire_ref vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL - LEFT JOIN type_volume_horaire tvhrs ON tvhrs.id = vhr.type_volume_horaire_id -WHERE - i.histo_destruction IS NULL -GROUP BY - i.annee_id, - i.id, - si.peut_saisir_service, - si.peut_saisir_referentiel; +-- ETR_SOURCE_FK_IDX +CREATE INDEX "ETR_SOURCE_FK_IDX" ON "ELEMENT_TAUX_REGIMES" ("SOURCE_ID"); --- V_TBL_VALIDATION_ENSEIGNEMENT -CREATE OR REPLACE FORCE VIEW "V_TBL_VALIDATION_ENSEIGNEMENT" ("ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "TYPE_VOLUME_HORAIRE_ID", "SERVICE_ID", "VOLUME_HORAIRE_ID", "VALIDATION_ID") AS - SELECT DISTINCT - i.annee_id, - i.id intervenant_id, - CASE WHEN rsv.priorite = 'affectation' THEN - COALESCE( i.structure_id, ep.structure_id ) - ELSE - COALESCE( ep.structure_id, i.structure_id ) - END structure_id, - vh.type_volume_horaire_id, - s.id service_id, - vh.id volume_horaire_id, - v.id validation_id -FROM - service s - JOIN volume_horaire vh ON vh.service_id = s.id AND vh.histo_destruction IS NULL - JOIN intervenant i ON i.id = s.intervenant_id AND i.histo_destruction IS NULL - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN regle_structure_validation rsv ON rsv.type_intervenant_id = si.type_intervenant_id AND rsv.type_volume_horaire_id = vh.type_volume_horaire_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - LEFT JOIN validation_vol_horaire vvh ON vvh.volume_horaire_id = vh.id - LEFT JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL -WHERE - s.histo_destruction IS NULL; +-- FICHIER_HCFK_IDX +CREATE INDEX "FICHIER_HCFK_IDX" ON "FICHIER" ("HISTO_CREATEUR_ID"); --- V_TBL_VALIDATION_REFERENTIEL -CREATE OR REPLACE FORCE VIEW "V_TBL_VALIDATION_REFERENTIEL" ("ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "TYPE_VOLUME_HORAIRE_ID", "SERVICE_REFERENTIEL_ID", "VOLUME_HORAIRE_REF_ID", "VALIDATION_ID") AS - SELECT DISTINCT - i.annee_id, - i.id intervenant_id, - CASE WHEN rsv.priorite = 'affectation' THEN - COALESCE( i.structure_id, s.structure_id ) - ELSE - COALESCE( s.structure_id, i.structure_id ) - END structure_id, - vh.type_volume_horaire_id, - s.id service_referentiel_id, - vh.id volume_horaire_ref_id, - v.id validation_id -FROM - service_referentiel s - JOIN volume_horaire_ref vh ON vh.service_referentiel_id = s.id AND vh.histo_destruction IS NULL - JOIN intervenant i ON i.id = s.intervenant_id AND i.histo_destruction IS NULL - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN regle_structure_validation rsv ON rsv.type_intervenant_id = si.type_intervenant_id AND rsv.type_volume_horaire_id = vh.type_volume_horaire_id - LEFT JOIN validation_vol_horaire_ref vvh ON vvh.volume_horaire_ref_id = vh.id - LEFT JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL -WHERE - s.histo_destruction IS NULL; +-- FICHIER_HDFK_IDX +CREATE INDEX "FICHIER_HDFK_IDX" ON "FICHIER" ("HISTO_DESTRUCTEUR_ID"); --- V_TBL_VOLUME_HORAIRE -CREATE OR REPLACE FORCE VIEW "V_TBL_VOLUME_HORAIRE" ("ANNEE_ID", "INTERVENANT_ID", "INTERVENANT_STRUCTURE_ID", "STRUCTURE_ID", "TYPE_INTERVENANT_ID", "SERVICE_ID", "VOLUME_HORAIRE_ID", "TYPE_INTERVENTION_ID", "MOTIF_NON_PAIEMENT_ID", "VOLUME_HORAIRE_PERIODE_ID", "TYPE_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID", "ELEMENT_PEDAGOGIQUE_ID", "ELEMENT_PEDAGOGIQUE_PERIODE_ID", "ETAPE_ID", "TYPE_INTERVENANT_CODE", "TYPE_VOLUME_HORAIRE_CODE", "ETAT_VOLUME_HORAIRE_CODE", "PEUT_SAISIR_SERVICE", "HEURES", "ELEMENT_PEDAGOGIQUE_HISTO", "ETAPE_HISTO", "PERIODE_CORRESP") AS - WITH has_cp AS ( -SELECT - etape_id -FROM - chemin_pedagogique cp -WHERE - cp.histo_destruction IS NULL -GROUP BY - etape_id -) -SELECT - i.annee_id annee_id, - i.id intervenant_id, - i.structure_id intervenant_structure_id, - NVL(ep.structure_id, i.structure_id) structure_id, - ti.id type_intervenant_id, - s.id service_id, - vh.id volume_horaire_id, - vh.type_intervention_id type_intervention_id, - vh.motif_non_paiement_id motif_non_paiement_id, - vh.periode_id volume_horaire_periode_id, - tvh.id type_volume_horaire_id, - evh.id etat_volume_horaire_id, - ep.id element_pedagogique_id, - ep.periode_id element_pedagogique_periode_id, - etp.id etape_id, +-- FICHIER_HMFK_IDX +CREATE INDEX "FICHIER_HMFK_IDX" ON "FICHIER" ("HISTO_MODIFICATEUR_ID"); - ti.code type_intervenant_code, - tvh.code type_volume_horaire_code, - evh.code etat_volume_horaire_code, - si.peut_saisir_service peut_saisir_service, - vh.heures heures, +-- FICHIER_PK +CREATE UNIQUE INDEX "FICHIER_PK" ON "FICHIER" ("ID"); - CASE WHEN ep.histo_destruction IS NULL THEN 1 ELSE 0 END element_pedagogique_histo, - CASE WHEN etp.histo_destruction IS NULL OR has_cp.etape_id IS NOT NULL THEN 1 ELSE 0 END etape_histo, - CASE WHEN ep.periode_id IS NOT NULL AND vh.periode_id <> ep.periode_id THEN 0 ELSE 1 END periode_corresp +-- FICHIER_VALID_FK_IDX +CREATE INDEX "FICHIER_VALID_FK_IDX" ON "FICHIER" ("VALIDATION_ID"); -FROM - intervenant i - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN type_intervenant ti ON ti.id = si.type_intervenant_id - JOIN service s ON s.intervenant_id = i.id - AND s.histo_destruction IS NULL - JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - JOIN etape etp ON etp.id = ep.etape_id - JOIN volume_horaire vh ON vh.service_id = s.id - AND vh.histo_destruction IS NULL - JOIN type_volume_horaire tvh ON tvh.id = vh.type_volume_horaire_id - JOIN v_volume_horaire_etat vhe ON vhe.volume_horaire_id = vh.id - JOIN etat_volume_horaire evh ON evh.id = vhe.etat_volume_horaire_id - LEFT JOIN has_cp ON has_cp.etape_id = etp.id -WHERE - i.histo_destruction IS NULL; +-- FONCTION_REFERENTIEL_CODE_UN +CREATE UNIQUE INDEX "FONCTION_REFERENTIEL_CODE_UN" ON "FONCTION_REFERENTIEL" ("CODE"); --- V_TBL_WORKFLOW -CREATE OR REPLACE FORCE VIEW "V_TBL_WORKFLOW" ("ETAPE_CODE", "ANNEE_ID", "INTERVENANT_ID", "STRUCTURE_ID", "OBJECTIF", "REALISATION") AS - WITH pj AS ( - SELECT - annee_id, - intervenant_id, - SUM(demandee) demandees, - SUM(fournie) fournies, - SUM(validee) validees - FROM - tbl_piece_jointe - WHERE - 1 = OSE_WORKFLOW.match_intervenant(intervenant_id) - AND demandee > 0 - GROUP BY - annee_id, - intervenant_id -), -mep AS ( - SELECT - annee_id, - intervenant_id, - structure_id, - SUM(heures_a_payer / heures_a_payer_pond) sap, - SUM(heures_demandees) dmep, - SUM(heures_payees) mep - --COUNT(*) sap, - --SUM(CASE WHEN mise_en_paiement_id IS NULL THEN 0 ELSE 1 END) dmep, - --SUM(CASE WHEN periode_paiement_id IS NULL THEN 0 ELSE 1 END) mep - FROM - tbl_paiement - WHERE - 1 = OSE_WORKFLOW.match_intervenant(intervenant_id) - GROUP BY - annee_id, - intervenant_id, - structure_id -) -SELECT - e.code etape_code, - d.annee_id annee_id, - d.intervenant_id intervenant_id, - null structure_id, - 1 objectif, - CASE - WHEN e.code = 'DONNEES_PERSO_SAISIE' THEN - CASE WHEN d.dossier_id IS NULL THEN 0 ELSE 1 END - - WHEN e.code = 'DONNEES_PERSO_VALIDATION' THEN - CASE WHEN d.validation_id IS NULL THEN 0 ELSE 1 END - - END realisation -FROM - tbl_dossier d - JOIN ( - SELECT 'DONNEES_PERSO_SAISIE' code FROM dual - UNION SELECT 'DONNEES_PERSO_VALIDATION' code FROM dual - ) e ON 1=1 -WHERE - d. peut_saisir_dossier = 1 - AND 1 = OSE_WORKFLOW.match_intervenant(d.intervenant_id) +-- FONCTION_REFERENTIEL_HCFK_IDX +CREATE INDEX "FONCTION_REFERENTIEL_HCFK_IDX" ON "FONCTION_REFERENTIEL" ("HISTO_CREATEUR_ID"); -UNION ALL +-- FONCTION_REFERENTIEL_HDFK_IDX +CREATE INDEX "FONCTION_REFERENTIEL_HDFK_IDX" ON "FONCTION_REFERENTIEL" ("HISTO_DESTRUCTEUR_ID"); -SELECT - e.code etape_code, - tss.annee_id annee_id, - tss.intervenant_id intervenant_id, - NULL structure_id, - 1 objectif, - CASE - WHEN e.code = 'SERVICE_SAISIE' THEN - CASE WHEN tss.heures_service_prev + tss.heures_referentiel_prev > 0 THEN 1 ELSE 0 END +-- FONCTION_REFERENTIEL_HMFK_IDX +CREATE INDEX "FONCTION_REFERENTIEL_HMFK_IDX" ON "FONCTION_REFERENTIEL" ("HISTO_MODIFICATEUR_ID"); - WHEN e.code = 'SERVICE_SAISIE_REALISE' THEN - CASE WHEN tss.heures_service_real + tss.heures_referentiel_real > 0 THEN 1 ELSE 0 END +-- FONCTION_REFERENTIEL_PK +CREATE UNIQUE INDEX "FONCTION_REFERENTIEL_PK" ON "FONCTION_REFERENTIEL" ("ID"); - END realisation -FROM - TBL_SERVICE_SAISIE tss - JOIN ( - SELECT 'SERVICE_SAISIE' code FROM dual - UNION SELECT 'SERVICE_SAISIE_REALISE' code FROM dual - ) e ON 1=1 -WHERE - (tss.peut_saisir_service = 1 OR tss.peut_saisir_referentiel = 1) - AND 1 = OSE_WORKFLOW.match_intervenant(tss.intervenant_id) - -UNION ALL +-- FONCTION_REFERENTIEL_SFK_IDX +CREATE INDEX "FONCTION_REFERENTIEL_SFK_IDX" ON "FONCTION_REFERENTIEL" ("STRUCTURE_ID"); -SELECT - CASE - WHEN tvh.code = 'PREVU' THEN 'SERVICE_VALIDATION' - WHEN tvh.code = 'REALISE' THEN 'SERVICE_VALIDATION_REALISE' - END etape_code, - tve.annee_id annee_id, - tve.intervenant_id intervenant_id, - tve.structure_id structure_id, - COUNT(*) objectif, - SUM(CASE WHEN tve.validation_id IS NOT NULL THEN 1 ELSE 0 END) realisation -FROM - tbl_validation_enseignement tve - JOIN type_volume_horaire tvh ON tvh.id = tve.type_volume_horaire_id -WHERE - 1 = OSE_WORKFLOW.match_intervenant(tve.intervenant_id) -GROUP BY - tve.annee_id, - tve.intervenant_id, - tve.structure_id, - tvh.code +-- FONC_REF_DOMAINE_FONCT_FK_IDX +CREATE INDEX "FONC_REF_DOMAINE_FONCT_FK_IDX" ON "FONCTION_REFERENTIEL" ("DOMAINE_FONCTIONNEL_ID"); -UNION ALL +-- FORMULE_RESULTAT_PK +CREATE UNIQUE INDEX "FORMULE_RESULTAT_PK" ON "FORMULE_RESULTAT" ("ID"); -SELECT - CASE - WHEN tvh.code = 'PREVU' THEN 'REFERENTIEL_VALIDATION' - WHEN tvh.code = 'REALISE' THEN 'REFERENTIEL_VALIDATION_REALISE' - END etape_code, - tvr.annee_id annee_id, - tvr.intervenant_id intervenant_id, - tvr.structure_id structure_id, - count(*) objectif, - SUM(CASE WHEN tvr.validation_id IS NOT NULL THEN 1 ELSE 0 END) realisation -FROM - tbl_validation_referentiel tvr - JOIN type_volume_horaire tvh ON tvh.id = tvr.type_volume_horaire_id -WHERE - 1 = OSE_WORKFLOW.match_intervenant(tvr.intervenant_id) -GROUP BY - tvr.annee_id, - tvr.intervenant_id, - tvr.structure_id, - tvh.code +-- FORMULE_RESULTAT_SERVICE_PK +CREATE UNIQUE INDEX "FORMULE_RESULTAT_SERVICE_PK" ON "FORMULE_RESULTAT_SERVICE" ("ID"); -UNION ALL +-- FORMULE_RESULTAT_TYPE_INT_IDX +CREATE INDEX "FORMULE_RESULTAT_TYPE_INT_IDX" ON "FORMULE_RESULTAT" ("TYPE_INTERVENANT_CODE"); -SELECT - e.code etape_code, - pj.annee_id annee_id, - pj.intervenant_id intervenant_id, - null structure_id, - CASE - WHEN e.code = 'PJ_SAISIE' THEN pj.demandees - WHEN e.code = 'PJ_VALIDATION' THEN pj.demandees - END objectif, - CASE - WHEN e.code = 'PJ_SAISIE' THEN pj.fournies - WHEN e.code = 'PJ_VALIDATION' THEN pj.validees - END realisation -FROM - pj - JOIN ( - SELECT 'PJ_SAISIE' code FROM dual - UNION SELECT 'PJ_VALIDATION' code FROM dual - ) e ON ( - (e.code = 'PJ_SAISIE' AND pj.demandees > 0) - OR (e.code = 'PJ_VALIDATION' AND pj.fournies > 0) - ) - -UNION ALL +-- FORMULE_RESULTAT_VH_PK +CREATE UNIQUE INDEX "FORMULE_RESULTAT_VH_PK" ON "FORMULE_RESULTAT_VH" ("ID"); -SELECT - ta.code etape_code, - a.annee_id annee_id, - a.intervenant_id intervenant_id, - a.structure_id structure_id, - 1 objectif, - CASE WHEN a.agrement_id IS NULL THEN 0 ELSE 1 END realisation -FROM - tbl_agrement a - JOIN type_agrement ta ON ta.id = a.type_agrement_id -WHERE - 1 = OSE_WORKFLOW.match_intervenant(a.intervenant_id) - -UNION ALL +-- FORMULE_RESULTAT_VH_REF_PK +CREATE UNIQUE INDEX "FORMULE_RESULTAT_VH_REF_PK" ON "FORMULE_RESULTAT_VH_REF" ("ID"); -SELECT - 'CLOTURE_REALISE' etape_code, - c.annee_id annee_id, - c.intervenant_id intervenant_id, - null structure_id, - 1 objectif, - c.cloture realisation -FROM - tbl_cloture_realise c -WHERE - c.peut_cloturer_saisie = 1 - AND 1 = OSE_WORKFLOW.match_intervenant(c.intervenant_id) +-- FORMULE_RESULTAT__UN +CREATE UNIQUE INDEX "FORMULE_RESULTAT__UN" ON "FORMULE_RESULTAT" ("INTERVENANT_ID", "TYPE_VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID"); -UNION ALL +-- FRES_EVH_FK_IDX +CREATE INDEX "FRES_EVH_FK_IDX" ON "FORMULE_RESULTAT" ("ETAT_VOLUME_HORAIRE_ID"); -SELECT - e.code etape_code, - mep.annee_id annee_id, - mep.intervenant_id intervenant_id, - mep.structure_id structure_id, - CASE - WHEN e.code = 'DEMANDE_MEP' THEN mep.sap - WHEN e.code = 'SAISIE_MEP' THEN mep.dmep - END objectif, - CASE - WHEN e.code = 'DEMANDE_MEP' THEN mep.dmep - WHEN e.code = 'SAISIE_MEP' THEN mep.mep - END realisation -FROM - mep - JOIN ( - SELECT 'DEMANDE_MEP' code FROM dual - UNION SELECT 'SAISIE_MEP' code FROM dual - ) e ON ( - (e.code = 'DEMANDE_MEP' AND mep.sap > 0) - OR (e.code = 'SAISIE_MEP' AND mep.dmep > 0) - ) - - -UNION ALL +-- FRES_INTERVENANT_FK_IDX +CREATE INDEX "FRES_INTERVENANT_FK_IDX" ON "FORMULE_RESULTAT" ("INTERVENANT_ID"); -SELECT - 'CONTRAT' etape_code, - annee_id annee_id, - intervenant_id intervenant_id, - structure_id structure_id, - nbvh objectif, - edite realisation -FROM - tbl_contrat c -WHERE - peut_avoir_contrat = 1 - AND nbvh > 0 - AND 1 = OSE_WORKFLOW.match_intervenant(c.intervenant_id); +-- FRES_TVH_FK_IDX +CREATE INDEX "FRES_TVH_FK_IDX" ON "FORMULE_RESULTAT" ("TYPE_VOLUME_HORAIRE_ID"); --- V_TOTAL_DEMANDE_MEP_STRUCTURE -CREATE OR REPLACE FORCE VIEW "V_TOTAL_DEMANDE_MEP_STRUCTURE" ("INTERVENANT_ID", "STRUCTURE_ID", "TOTAL_HEURES_MEP") AS - with mep as ( - -- enseignements - select - fr.intervenant_id, - nvl(ep.structure_id, i.structure_id) structure_id, - nvl(mep.heures, 0) mep_heures - from mise_en_paiement mep - join formule_resultat_service frs on mep.formule_res_service_id = frs.id --and mep.date_mise_en_paiement is null -- date_mise_en_paiement is null <=> demande - join formule_resultat fr on frs.formule_resultat_id = fr.id - join intervenant i on fr.intervenant_id = i.id - join service s on frs.service_id = s.id - left join element_pedagogique ep on s.element_pedagogique_id = ep.id and ep.histo_destruction IS NULL - where mep.histo_destruction IS NULL - union all - -- referentiel - select - fr.intervenant_id, - s.structure_id, - nvl(mep.heures, 0) mep_heures - from mise_en_paiement mep - join formule_resultat_service_ref frs on mep.formule_res_service_ref_id = frs.id --and mep.date_mise_en_paiement is null -- date_mise_en_paiement is null <=> demande - join formule_resultat fr on frs.formule_resultat_id = fr.id - join intervenant i on fr.intervenant_id = i.id - join service_referentiel s on frs.service_referentiel_id = s.id - where mep.histo_destruction IS NULL -) -select intervenant_id, structure_id, sum(nvl(mep_heures, 0)) total_heures_mep from mep -group by intervenant_id, structure_id; +-- FRR_FORMULE_RESULTAT_FK_IDX +CREATE INDEX "FRR_FORMULE_RESULTAT_FK_IDX" ON "FORMULE_RESULTAT_SERVICE_REF" ("FORMULE_RESULTAT_ID"); --- V_VALIDATION_MISE_EN_PAIEMENT -CREATE OR REPLACE FORCE VIEW "V_VALIDATION_MISE_EN_PAIEMENT" ("VALIDATION_ID", "MISE_EN_PAIEMENT_ID") AS - SELECT - vvh.validation_id, - mep.id mise_en_paiement_id -FROM - validation_vol_horaire vvh - JOIN volume_horaire vh ON vh.id = vvh.volume_horaire_id - JOIN formule_resultat_service frs ON frs.service_id = vh.service_id - JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id - -UNION +-- FRSR_PK +CREATE UNIQUE INDEX "FRSR_PK" ON "FORMULE_RESULTAT_SERVICE_REF" ("ID"); -SELECT - vvh.validation_id, - mep.id mise_en_paiement_id -FROM - validation_vol_horaire_ref vvh - JOIN volume_horaire_ref vh ON vh.id = vvh.volume_horaire_ref_id - JOIN formule_resultat_service_ref frs ON frs.service_referentiel_id = vh.service_referentiel_id - JOIN mise_en_paiement mep ON mep.formule_res_service_ref_id = frs.id; +-- FRSR_SR_FK_IDX +CREATE INDEX "FRSR_SR_FK_IDX" ON "FORMULE_RESULTAT_SERVICE_REF" ("SERVICE_REFERENTIEL_ID"); --- V_VOLUME_HORAIRE_ETAT -CREATE OR REPLACE FORCE VIEW "V_VOLUME_HORAIRE_ETAT" ("VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID") AS - SELECT - vh.id volume_horaire_id, - evh.id etat_volume_horaire_id -FROM - volume_horaire vh - LEFT JOIN contrat c ON c.id = vh.contrat_id AND c.histo_destruction IS NULL - LEFT JOIN validation cv ON cv.id = c.validation_id AND cv.histo_destruction IS NULL - JOIN etat_volume_horaire evh ON evh.code = CASE - WHEN c.date_retour_signe IS NOT NULL THEN 'contrat-signe' - WHEN cv.id IS NOT NULL THEN 'contrat-edite' - WHEN EXISTS( - SELECT * FROM validation v JOIN validation_vol_horaire vvh ON vvh.validation_id = v.id - WHERE vvh.volume_horaire_id = vh.id AND v.histo_destruction IS NULL - ) THEN 'valide' - ELSE 'saisi' - END; +-- FRS_FORMULE_RESULTAT_FK_IDX +CREATE INDEX "FRS_FORMULE_RESULTAT_FK_IDX" ON "FORMULE_RESULTAT_SERVICE" ("FORMULE_RESULTAT_ID"); --- V_VOLUME_HORAIRE_REF_ETAT -CREATE OR REPLACE FORCE VIEW "V_VOLUME_HORAIRE_REF_ETAT" ("VOLUME_HORAIRE_REF_ID", "ETAT_VOLUME_HORAIRE_ID") AS - SELECT - vhr.id volume_horaire_ref_id, - evh.id etat_volume_horaire_id -FROM - volume_horaire_ref vhr - JOIN etat_volume_horaire evh ON evh.code = CASE - WHEN EXISTS( - SELECT * FROM validation v JOIN validation_vol_horaire_ref vvhr ON vvhr.validation_id = v.id - WHERE vvhr.volume_horaire_ref_id = vhr.id AND v.histo_destruction IS NULL - ) THEN 'valide' - ELSE 'saisi' - END; +-- FRS_SERVICE_FK_IDX +CREATE INDEX "FRS_SERVICE_FK_IDX" ON "FORMULE_RESULTAT_SERVICE" ("SERVICE_ID"); + +-- FRVHR_FORMULE_RESULTAT_FK_IDX +CREATE INDEX "FRVHR_FORMULE_RESULTAT_FK_IDX" ON "FORMULE_RESULTAT_VH_REF" ("FORMULE_RESULTAT_ID"); + +-- FRVHR_VHR_FK_IDX +CREATE INDEX "FRVHR_VHR_FK_IDX" ON "FORMULE_RESULTAT_VH_REF" ("VOLUME_HORAIRE_REF_ID"); + +-- FRVH_FORMULE_RESULTAT_FK_IDX +CREATE INDEX "FRVH_FORMULE_RESULTAT_FK_IDX" ON "FORMULE_RESULTAT_VH" ("FORMULE_RESULTAT_ID"); + +-- FRVH_VOLUME_HORAIRE_FK_IDX +CREATE INDEX "FRVH_VOLUME_HORAIRE_FK_IDX" ON "FORMULE_RESULTAT_VH" ("VOLUME_HORAIRE_ID"); + +-- GRADE_CORPS_FK_IDX +CREATE INDEX "GRADE_CORPS_FK_IDX" ON "GRADE" ("CORPS_ID"); + +-- GRADE_HCFK_IDX +CREATE INDEX "GRADE_HCFK_IDX" ON "GRADE" ("HISTO_CREATEUR_ID"); + +-- GRADE_HDFK_IDX +CREATE INDEX "GRADE_HDFK_IDX" ON "GRADE" ("HISTO_DESTRUCTEUR_ID"); + +-- GRADE_HMFK_IDX +CREATE INDEX "GRADE_HMFK_IDX" ON "GRADE" ("HISTO_MODIFICATEUR_ID"); + +-- GRADE_PK +CREATE UNIQUE INDEX "GRADE_PK" ON "GRADE" ("ID"); + +-- GROUPE_EP_FK_IDX +CREATE INDEX "GROUPE_EP_FK_IDX" ON "GROUPE" ("ELEMENT_PEDAGOGIQUE_ID"); + +-- GROUPE_HCFK_IDX +CREATE INDEX "GROUPE_HCFK_IDX" ON "GROUPE" ("HISTO_CREATEUR_ID"); + +-- GROUPE_HDFK_IDX +CREATE INDEX "GROUPE_HDFK_IDX" ON "GROUPE" ("HISTO_DESTRUCTEUR_ID"); + +-- GROUPE_HMFK_IDX +CREATE INDEX "GROUPE_HMFK_IDX" ON "GROUPE" ("HISTO_MODIFICATEUR_ID"); + +-- GROUPE_PK +CREATE UNIQUE INDEX "GROUPE_PK" ON "GROUPE" ("ID"); + +-- GROUPE_TI_FK_IDX +CREATE INDEX "GROUPE_TI_FK_IDX" ON "GROUPE" ("TYPE_INTERVENTION_ID"); + +-- GROUPE_TYPE_FORMATION_HCFK_IDX +CREATE INDEX "GROUPE_TYPE_FORMATION_HCFK_IDX" ON "GROUPE_TYPE_FORMATION" ("HISTO_CREATEUR_ID"); + +-- GROUPE_TYPE_FORMATION_HDFK_IDX +CREATE INDEX "GROUPE_TYPE_FORMATION_HDFK_IDX" ON "GROUPE_TYPE_FORMATION" ("HISTO_DESTRUCTEUR_ID"); + +-- GROUPE_TYPE_FORMATION_HMFK_IDX +CREATE INDEX "GROUPE_TYPE_FORMATION_HMFK_IDX" ON "GROUPE_TYPE_FORMATION" ("HISTO_MODIFICATEUR_ID"); + +-- GROUPE_TYPE_FORMATION_PK +CREATE UNIQUE INDEX "GROUPE_TYPE_FORMATION_PK" ON "GROUPE_TYPE_FORMATION" ("ID"); + +-- GROUPE__UN +CREATE UNIQUE INDEX "GROUPE__UN" ON "GROUPE" ("ELEMENT_PEDAGOGIQUE_ID", "HISTO_DESTRUCTEUR_ID", "TYPE_INTERVENTION_ID"); + +-- GTYPE_FORMATION_SOURCE_FK_IDX +CREATE INDEX "GTYPE_FORMATION_SOURCE_FK_IDX" ON "GROUPE_TYPE_FORMATION" ("SOURCE_ID"); + +-- GTYPE_FORMATION_SOURCE_UN +CREATE UNIQUE INDEX "GTYPE_FORMATION_SOURCE_UN" ON "GROUPE_TYPE_FORMATION" ("SOURCE_CODE"); + +-- HISTO_INTERVENANT_SERVICE__UN +CREATE UNIQUE INDEX "HISTO_INTERVENANT_SERVICE__UN" ON "HISTO_INTERVENANT_SERVICE" ("INTERVENANT_ID", "TYPE_VOLUME_HORAIRE_ID", "REFERENTIEL"); + +-- HISTO_SERVICE_MODIFICATION_PK +CREATE UNIQUE INDEX "HISTO_SERVICE_MODIFICATION_PK" ON "HISTO_INTERVENANT_SERVICE" ("ID"); + +-- HSM_INTERVENANT_FK_IDX +CREATE INDEX "HSM_INTERVENANT_FK_IDX" ON "HISTO_INTERVENANT_SERVICE" ("INTERVENANT_ID"); + +-- HSM_TYPE_VOLUME_HORAIRE_FK_IDX +CREATE INDEX "HSM_TYPE_VOLUME_HORAIRE_FK_IDX" ON "HISTO_INTERVENANT_SERVICE" ("TYPE_VOLUME_HORAIRE_ID"); + +-- HSM_UTILISATEUR_FK_IDX +CREATE INDEX "HSM_UTILISATEUR_FK_IDX" ON "HISTO_INTERVENANT_SERVICE" ("HISTO_MODIFICATEUR_ID"); + +-- IMPORT_TABLES_PK +CREATE UNIQUE INDEX "IMPORT_TABLES_PK" ON "IMPORT_TABLES" ("TABLE_NAME"); + +-- INDICATEUR_PK +CREATE UNIQUE INDEX "INDICATEUR_PK" ON "INDICATEUR" ("ID"); + +-- INDIC_DIFF_DOSSIER_INT_FK_IDX +CREATE INDEX "INDIC_DIFF_DOSSIER_INT_FK_IDX" ON "INDIC_MODIF_DOSSIER" ("INTERVENANT_ID"); + +-- INDIC_MODIF_DOSSIER_HCFK_IDX +CREATE INDEX "INDIC_MODIF_DOSSIER_HCFK_IDX" ON "INDIC_MODIF_DOSSIER" ("HISTO_CREATEUR_ID"); + +-- INDIC_MODIF_DOSSIER_HDFK_IDX +CREATE INDEX "INDIC_MODIF_DOSSIER_HDFK_IDX" ON "INDIC_MODIF_DOSSIER" ("HISTO_DESTRUCTEUR_ID"); + +-- INDIC_MODIF_DOSSIER_HMFK_IDX +CREATE INDEX "INDIC_MODIF_DOSSIER_HMFK_IDX" ON "INDIC_MODIF_DOSSIER" ("HISTO_MODIFICATEUR_ID"); + +-- INDIC_MODIF_DOSSIER_PK +CREATE UNIQUE INDEX "INDIC_MODIF_DOSSIER_PK" ON "INDIC_MODIF_DOSSIER" ("ID"); + +-- INTERVENANTS_CIVILITES_FK_IDX +CREATE INDEX "INTERVENANTS_CIVILITES_FK_IDX" ON "INTERVENANT" ("CIVILITE_ID"); + +-- INTERVENANT_ANNEE_FK_IDX +CREATE INDEX "INTERVENANT_ANNEE_FK_IDX" ON "INTERVENANT" ("ANNEE_ID"); + +-- INTERVENANT_CODE_UN +CREATE UNIQUE INDEX "INTERVENANT_CODE_UN" ON "INTERVENANT" ("CODE", "ANNEE_ID"); + +-- INTERVENANT_DEP_NAISSANCE_IDX +CREATE INDEX "INTERVENANT_DEP_NAISSANCE_IDX" ON "INTERVENANT" ("DEP_NAISSANCE_ID"); + +-- INTERVENANT_DISCIPLINE_FK_IDX +CREATE INDEX "INTERVENANT_DISCIPLINE_FK_IDX" ON "INTERVENANT" ("DISCIPLINE_ID"); + +-- INTERVENANT_GRADE_FK_IDX +CREATE INDEX "INTERVENANT_GRADE_FK_IDX" ON "INTERVENANT" ("GRADE_ID"); + +-- INTERVENANT_HCFK_IDX +CREATE INDEX "INTERVENANT_HCFK_IDX" ON "INTERVENANT" ("HISTO_CREATEUR_ID"); + +-- INTERVENANT_HDFK_IDX +CREATE INDEX "INTERVENANT_HDFK_IDX" ON "INTERVENANT" ("HISTO_DESTRUCTEUR_ID"); + +-- INTERVENANT_HMFK_IDX +CREATE INDEX "INTERVENANT_HMFK_IDX" ON "INTERVENANT" ("HISTO_MODIFICATEUR_ID"); + +-- INTERVENANT_NOM_PATRO_IDX +CREATE INDEX "INTERVENANT_NOM_PATRO_IDX" ON "INTERVENANT" ("NOM_PATRONYMIQUE"); + +-- INTERVENANT_NOM_USUEL_IDX +CREATE INDEX "INTERVENANT_NOM_USUEL_IDX" ON "INTERVENANT" ("NOM_USUEL"); + +-- INTERVENANT_PAYS_NAISSANCE_IDX +CREATE INDEX "INTERVENANT_PAYS_NAISSANCE_IDX" ON "INTERVENANT" ("PAYS_NAISSANCE_ID"); + +-- INTERVENANT_PAYS_NAT_IDX +CREATE INDEX "INTERVENANT_PAYS_NAT_IDX" ON "INTERVENANT" ("PAYS_NATIONALITE_ID"); + +-- INTERVENANT_PK +CREATE UNIQUE INDEX "INTERVENANT_PK" ON "INTERVENANT" ("ID"); + +-- INTERVENANT_PRENOM_IDX +CREATE INDEX "INTERVENANT_PRENOM_IDX" ON "INTERVENANT" ("PRENOM"); + +-- INTERVENANT_RECHERCHE_IDX +CREATE INDEX "INTERVENANT_RECHERCHE_IDX" ON "INTERVENANT" ("CRITERE_RECHERCHE"); --- V_VOL_HORAIRE_ETAT_MULTI -CREATE OR REPLACE FORCE VIEW "V_VOL_HORAIRE_ETAT_MULTI" ("VOLUME_HORAIRE_ID", "ETAT_VOLUME_HORAIRE_ID") AS - select vh.id VOLUME_HORAIRE_ID, evh.id ETAT_VOLUME_HORAIRE_ID - from volume_horaire vh - join service s on s.id = vh.service_id and s.histo_destruction IS NULL - join etat_volume_horaire evh on evh.code = 'saisi' - where vh.histo_destruction IS NULL -union all - select vh.id, evh.id - from volume_horaire vh - join service s on s.id = vh.service_id and s.histo_destruction IS NULL - join etat_volume_horaire evh on evh.code = 'valide' - where vh.histo_destruction IS NULL - and EXISTS( - SELECT * FROM validation v JOIN validation_vol_horaire vvh ON vvh.validation_id = v.id - WHERE vvh.volume_horaire_id = vh.id AND v.histo_destruction IS NULL - ) -union all - select vh.id, evh.id - from volume_horaire vh - join service s on s.id = vh.service_id and s.histo_destruction IS NULL - join contrat c on vh.contrat_id = c.id and c.histo_destruction IS NULL - join etat_volume_horaire evh on evh.code = 'contrat-edite' - where vh.histo_destruction IS NULL -union all - select vh.id, evh.id - from volume_horaire vh - join service s on s.id = vh.service_id and s.histo_destruction IS NULL - join contrat c on vh.contrat_id = c.id and c.histo_destruction IS NULL and c.date_retour_signe is not null - join etat_volume_horaire evh on evh.code = 'contrat-signe' - where vh.histo_destruction IS NULL; +-- INTERVENANT_SAISIE_PK +CREATE UNIQUE INDEX "INTERVENANT_SAISIE_PK" ON "INTERVENANT_SAISIE" ("ID"); --- V_VOL_HORAIRE_REF_ETAT_MULTI -CREATE OR REPLACE FORCE VIEW "V_VOL_HORAIRE_REF_ETAT_MULTI" ("VOLUME_HORAIRE_REF_ID", "ETAT_VOLUME_HORAIRE_ID") AS - select vh.id VOLUME_HORAIRE_REF_ID, evh.id ETAT_VOLUME_HORAIRE_ID - from volume_horaire_ref vh - join service_referentiel s on s.id = vh.service_referentiel_id and s.histo_destruction IS NULL - join etat_volume_horaire evh on evh.code = 'saisi' - where vh.histo_destruction IS NULL -union all - select vh.id, evh.id - from volume_horaire_ref vh - join service_referentiel s on s.id = vh.service_referentiel_id and s.histo_destruction IS NULL - join etat_volume_horaire evh on evh.code = 'valide' - where vh.histo_destruction IS NULL - and EXISTS( - SELECT * FROM validation v JOIN validation_vol_horaire_ref vvh ON vvh.validation_id = v.id - WHERE vvh.volume_horaire_ref_id = vh.id AND v.histo_destruction IS NULL - ); +-- INTERVENANT_SAISIE_STT_IDX +CREATE INDEX "INTERVENANT_SAISIE_STT_IDX" ON "INTERVENANT_SAISIE" ("STATUT_ID"); --- V_WORKFLOW_ETAPE_PERTINENTE -CREATE OR REPLACE FORCE VIEW "V_WORKFLOW_ETAPE_PERTINENTE" ("ANNEE_ID", "INTERVENANT_ID", "ETAPE_CODE") AS - WITH peut_pj AS ( - SELECT DISTINCT - statut_intervenant_id, - 1 tem - FROM - type_piece_jointe_statut tpjs - WHERE - tpjs.histo_destruction IS NULL -), -peut_agr AS ( - SELECT - tas.statut_intervenant_id, - ta.code, - tas.premier_recrutement - FROM - type_agrement_statut tas - JOIN type_agrement ta ON ta.id = tas.type_agrement_id - WHERE - tas.histo_destruction IS NULL -) -SELECT - i.annee_id annee_id, - i.id intervenant_id, - e.code etape_code -FROM - intervenant i - JOIN statut_intervenant si ON si.id = i.statut_id - LEFT JOIN peut_pj ON peut_pj.statut_intervenant_id = si.id - LEFT JOIN peut_agr peut_cr ON peut_cr.code = 'CONSEIL_RESTREINT' AND peut_cr.statut_intervenant_id = si.id AND (peut_cr.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = peut_cr.premier_recrutement) - LEFT JOIN peut_agr peut_ca ON peut_ca.code = 'CONSEIL_ACADEMIQUE' AND peut_ca.statut_intervenant_id = si.id AND (peut_ca.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = peut_ca.premier_recrutement) - JOIN wf_etape e ON 1 = CASE e.code +-- INTERVENANT_SAISIE__UN +CREATE UNIQUE INDEX "INTERVENANT_SAISIE__UN" ON "INTERVENANT_SAISIE" ("INTERVENANT_ID"); - WHEN 'DONNEES_PERSO_SAISIE' THEN - si.peut_saisir_dossier +-- INTERVENANT_SOURCE_CODE_IDX +CREATE INDEX "INTERVENANT_SOURCE_CODE_IDX" ON "INTERVENANT" ("SOURCE_CODE"); - WHEN 'SERVICE_SAISIE' THEN - CASE WHEN si.peut_saisir_service + si.peut_saisir_referentiel = 0 THEN 0 ELSE 1 END +-- INTERVENANT_SOURCE_FK_IDX +CREATE INDEX "INTERVENANT_SOURCE_FK_IDX" ON "INTERVENANT" ("SOURCE_ID"); - WHEN 'PJ_SAISIE' THEN - peut_pj.tem +-- INTERVENANT_SOURCE__UN +CREATE UNIQUE INDEX "INTERVENANT_SOURCE__UN" ON "INTERVENANT" ("SOURCE_CODE", "ANNEE_ID"); - WHEN 'PJ_VALIDATION' THEN - peut_pj.tem +-- INTERVENANT_STATUT_FK_IDX +CREATE INDEX "INTERVENANT_STATUT_FK_IDX" ON "INTERVENANT" ("STATUT_ID"); - WHEN 'DONNEES_PERSO_VALIDATION' THEN - si.peut_saisir_dossier +-- INTERVENANT_STRUCTURE_FK_IDX +CREATE INDEX "INTERVENANT_STRUCTURE_FK_IDX" ON "INTERVENANT" ("STRUCTURE_ID"); - WHEN 'SERVICE_VALIDATION' THEN - si.peut_saisir_service +-- INTERVENANT_UTIL_CODE_UN +CREATE UNIQUE INDEX "INTERVENANT_UTIL_CODE_UN" ON "INTERVENANT" ("UTILISATEUR_CODE", "ANNEE_ID", "STATUT_ID"); - WHEN 'REFERENTIEL_VALIDATION' THEN - si.peut_saisir_referentiel +-- LIEN_HISTO_CREATEUR_IDX +CREATE INDEX "LIEN_HISTO_CREATEUR_IDX" ON "LIEN" ("HISTO_CREATEUR_ID"); - WHEN 'CONSEIL_RESTREINT' THEN - CASE WHEN peut_cr.code IS NULL THEN 0 ELSE 1 END +-- LIEN_HISTO_DESTRUCTEUR_IDX +CREATE INDEX "LIEN_HISTO_DESTRUCTEUR_IDX" ON "LIEN" ("HISTO_DESTRUCTEUR_ID"); - WHEN 'CONSEIL_ACADEMIQUE' THEN - CASE WHEN peut_ca.code IS NULL THEN 0 ELSE 1 END +-- LIEN_HISTO_MODIFICATEUR_IDX +CREATE INDEX "LIEN_HISTO_MODIFICATEUR_IDX" ON "LIEN" ("HISTO_MODIFICATEUR_ID"); - WHEN 'CONTRAT' THEN - si.peut_avoir_contrat +-- LIEN_NOEUD_INF_IDX +CREATE INDEX "LIEN_NOEUD_INF_IDX" ON "LIEN" ("NOEUD_INF_ID"); - WHEN 'SERVICE_SAISIE_REALISE' THEN - CASE WHEN si.peut_saisir_service + si.peut_saisir_referentiel = 0 THEN 0 ELSE 1 END +-- LIEN_NOEUD_SUP_IDX +CREATE INDEX "LIEN_NOEUD_SUP_IDX" ON "LIEN" ("NOEUD_SUP_ID"); - WHEN 'CLOTURE_REALISE' THEN - si.peut_cloturer_saisie +-- LIEN_PK +CREATE UNIQUE INDEX "LIEN_PK" ON "LIEN" ("ID"); - WHEN 'SERVICE_VALIDATION_REALISE' THEN - si.peut_saisir_service +-- LIEN_SOURCE_IDX +CREATE INDEX "LIEN_SOURCE_IDX" ON "LIEN" ("SOURCE_ID"); - WHEN 'REFERENTIEL_VALIDATION_REALISE' THEN - si.peut_saisir_referentiel +-- LIEN_SRC_UN +CREATE UNIQUE INDEX "LIEN_SRC_UN" ON "LIEN" ("SOURCE_CODE", "HISTO_DESTRUCTION"); - WHEN 'DEMANDE_MEP' THEN - CASE WHEN si.peut_saisir_service + si.peut_saisir_referentiel = 0 THEN 0 ELSE 1 END +-- LIEN_STRUCTURE_IDX +CREATE INDEX "LIEN_STRUCTURE_IDX" ON "LIEN" ("STRUCTURE_ID"); - WHEN 'SAISIE_MEP' THEN - CASE WHEN si.peut_saisir_service + si.peut_saisir_referentiel = 0 THEN 0 ELSE 1 END +-- MEP_CENTRE_COUT_FK_IDX +CREATE INDEX "MEP_CENTRE_COUT_FK_IDX" ON "MISE_EN_PAIEMENT" ("CENTRE_COUT_ID"); - END -WHERE - i.histo_destruction IS NULL; +-- MEP_DOMAINE_FONCTIONNEL_FK_IDX +CREATE INDEX "MEP_DOMAINE_FONCTIONNEL_FK_IDX" ON "MISE_EN_PAIEMENT" ("DOMAINE_FONCTIONNEL_ID"); --------------------------------------------------- --- Vues matérialisées --------------------------------------------------- +-- MEP_FR_SERVICE_FK_IDX +CREATE INDEX "MEP_FR_SERVICE_FK_IDX" ON "MISE_EN_PAIEMENT" ("FORMULE_RES_SERVICE_ID"); --- TBL_NOEUD -CREATE MATERIALIZED VIEW "TBL_NOEUD" ("NOEUD_ID", "NOEUD_ETAPE_ID", "CODE", "LIBELLE", "ANNEE_ID", "ETAPE_ID", "ELEMENT_PEDAGOGIQUE_ID", "ELEMENT_PEDAGOGIQUE_ETAPE_ID", "STRUCTURE_ID", "GROUPE_TYPE_FORMATION_ID") AS -SELECT - n.id noeud_id, - en.id noeud_etape_id, - n.code code, - n.libelle libelle, - n.annee_id annee_id, - n.etape_id etape_id, - n.element_pedagogique_id element_pedagogique_id, - etp.id element_pedagogique_etape_id, - n.structure_id structure_id, - tf.groupe_id groupe_type_formation_id -FROM - noeud n - LEFT JOIN element_pedagogique ep ON ep.id = n.element_pedagogique_id - LEFT JOIN etape etp ON etp.id = COALESCE(n.etape_id,ep.etape_id) - LEFT JOIN type_formation tf ON tf.id = etp.type_formation_id - LEFT JOIN noeud en ON en.etape_id = etp.id -WHERE - n.histo_destruction IS NULL; +-- MEP_FR_SERVICE_REF_FK_IDX +CREATE INDEX "MEP_FR_SERVICE_REF_FK_IDX" ON "MISE_EN_PAIEMENT" ("FORMULE_RES_SERVICE_REF_ID"); --------------------------------------------------- --- Packages Bodies --------------------------------------------------- +-- MEP_PERIODE_FK_IDX +CREATE INDEX "MEP_PERIODE_FK_IDX" ON "MISE_EN_PAIEMENT" ("PERIODE_PAIEMENT_ID"); --- OSE_CHARGENS -CREATE OR REPLACE PACKAGE BODY "OSE_CHARGENS" AS - SCENARIO NUMERIC; - NOEUD NUMERIC; - old_enable BOOLEAN DEFAULT TRUE; +-- MEP_TYPE_HEURES_FK_IDX +CREATE INDEX "MEP_TYPE_HEURES_FK_IDX" ON "MISE_EN_PAIEMENT" ("TYPE_HEURES_ID"); - TYPE T_PRECALC_HEURES_PARAMS IS RECORD ( - annee_id NUMERIC DEFAULT NULL, - structure_id NUMERIC DEFAULT NULL, - scenario_id NUMERIC DEFAULT NULL, - type_heures_id NUMERIC DEFAULT NULL, - etape_id NUMERIC DEFAULT NULL, - noeud_ids tnoeud_ids DEFAULT NULL - ); +-- MEP_VALIDATION_FK_IDX +CREATE INDEX "MEP_VALIDATION_FK_IDX" ON "MISE_EN_PAIEMENT" ("VALIDATION_ID"); - PRECALC_HEURES_PARAMS T_PRECALC_HEURES_PARAMS; +-- MISE_EN_PAIEMENT_HCFK_IDX +CREATE INDEX "MISE_EN_PAIEMENT_HCFK_IDX" ON "MISE_EN_PAIEMENT" ("HISTO_CREATEUR_ID"); +-- MISE_EN_PAIEMENT_HDFK_IDX +CREATE INDEX "MISE_EN_PAIEMENT_HDFK_IDX" ON "MISE_EN_PAIEMENT" ("HISTO_DESTRUCTEUR_ID"); - FUNCTION GET_SCENARIO RETURN NUMERIC IS - BEGIN - RETURN OSE_CHARGENS.SCENARIO; - END; +-- MISE_EN_PAIEMENT_HMFK_IDX +CREATE INDEX "MISE_EN_PAIEMENT_HMFK_IDX" ON "MISE_EN_PAIEMENT" ("HISTO_MODIFICATEUR_ID"); - PROCEDURE SET_SCENARIO( SCENARIO NUMERIC ) IS - BEGIN - OSE_CHARGENS.SCENARIO := SET_SCENARIO.SCENARIO; - END; +-- MISE_EN_PAIEMENT_PK +CREATE UNIQUE INDEX "MISE_EN_PAIEMENT_PK" ON "MISE_EN_PAIEMENT" ("ID"); +-- MMSD_HCFK_IDX +CREATE INDEX "MMSD_HCFK_IDX" ON "MOTIF_MODIFICATION_SERVICE" ("HISTO_CREATEUR_ID"); +-- MMSD_HDFK_IDX +CREATE INDEX "MMSD_HDFK_IDX" ON "MOTIF_MODIFICATION_SERVICE" ("HISTO_DESTRUCTEUR_ID"); - FUNCTION GET_NOEUD RETURN NUMERIC IS - BEGIN - RETURN OSE_CHARGENS.NOEUD; - END; +-- MMSD_HMFK_IDX +CREATE INDEX "MMSD_HMFK_IDX" ON "MOTIF_MODIFICATION_SERVICE" ("HISTO_MODIFICATEUR_ID"); - PROCEDURE SET_NOEUD( NOEUD NUMERIC ) IS - BEGIN - OSE_CHARGENS.NOEUD := SET_NOEUD.NOEUD; - END; +-- MODIFICATION_SERVICE_DU_PK +CREATE UNIQUE INDEX "MODIFICATION_SERVICE_DU_PK" ON "MODIFICATION_SERVICE_DU" ("ID"); +-- MODULATEUR_HCFK_IDX +CREATE INDEX "MODULATEUR_HCFK_IDX" ON "MODULATEUR" ("HISTO_CREATEUR_ID"); +-- MODULATEUR_HDFK_IDX +CREATE INDEX "MODULATEUR_HDFK_IDX" ON "MODULATEUR" ("HISTO_DESTRUCTEUR_ID"); +-- MODULATEUR_HMFK_IDX +CREATE INDEX "MODULATEUR_HMFK_IDX" ON "MODULATEUR" ("HISTO_MODIFICATEUR_ID"); +-- MODULATEUR_PK +CREATE UNIQUE INDEX "MODULATEUR_PK" ON "MODULATEUR" ("ID"); - FUNCTION CALC_COEF( choix_min NUMERIC, choix_max NUMERIC, poids NUMERIC, max_poids NUMERIC, total_poids NUMERIC, nb_choix NUMERIC ) RETURN FLOAT IS - cmin NUMERIC; - cmax NUMERIC; - coef_choix FLOAT; - coef_poids FLOAT; - max_coef_poids FLOAT; - correcteur FLOAT DEFAULT 1; - res FLOAT; - BEGIN - cmin := choix_min; - cmax := choix_max; +-- MODULATEUR_TM_FK_IDX +CREATE INDEX "MODULATEUR_TM_FK_IDX" ON "MODULATEUR" ("TYPE_MODULATEUR_ID"); - IF total_poids = 0 THEN RETURN 0; END IF; +-- MODULATEUR__UN +CREATE UNIQUE INDEX "MODULATEUR__UN" ON "MODULATEUR" ("CODE"); - IF cmax IS NULL OR cmax > nb_choix THEN - cmax := nb_choix; - END IF; - IF cmin IS NULL THEN - cmin := nb_choix; - ELSIF cmin > cmax THEN - cmin := cmax; - END IF; +-- MOTIF_MODIFICATION_SERVICE_PK +CREATE UNIQUE INDEX "MOTIF_MODIFICATION_SERVICE_PK" ON "MOTIF_MODIFICATION_SERVICE" ("ID"); - coef_choix := (cmin + cmax) / 2 / nb_choix; +-- MOTIF_MODIFICATION_SERVIC_UK1 +CREATE UNIQUE INDEX "MOTIF_MODIFICATION_SERVIC_UK1" ON "MOTIF_MODIFICATION_SERVICE" ("CODE"); - coef_poids := poids / total_poids; +-- MOTIF_NON_PAIEMENT_HCFK_IDX +CREATE INDEX "MOTIF_NON_PAIEMENT_HCFK_IDX" ON "MOTIF_NON_PAIEMENT" ("HISTO_CREATEUR_ID"); - max_coef_poids := max_poids / total_poids; +-- MOTIF_NON_PAIEMENT_HDFK_IDX +CREATE INDEX "MOTIF_NON_PAIEMENT_HDFK_IDX" ON "MOTIF_NON_PAIEMENT" ("HISTO_DESTRUCTEUR_ID"); - IF (coef_choix * nb_choix * max_coef_poids) <= 1 THEN - res := coef_choix * nb_choix * coef_poids; - ELSE - correcteur := 1; - res := coef_choix * nb_choix * (coef_poids + (((1/nb_choix)-coef_poids)*correcteur)); - END IF; +-- MOTIF_NON_PAIEMENT_HMFK_IDX +CREATE INDEX "MOTIF_NON_PAIEMENT_HMFK_IDX" ON "MOTIF_NON_PAIEMENT" ("HISTO_MODIFICATEUR_ID"); - --ose_test.echo('choix_min= ' || cmin || ', choix_max= ' || cmax || ', poids = ' || poids || ', max_poids = ' || max_poids || ', total_poids = ' || total_poids || ', nb_choix = ' || nb_choix || ', RES = ' || res); - RETURN res; - END; +-- MOTIF_NON_PAIEMENT_PK +CREATE UNIQUE INDEX "MOTIF_NON_PAIEMENT_PK" ON "MOTIF_NON_PAIEMENT" ("ID"); +-- MSD_HCFK_IDX +CREATE INDEX "MSD_HCFK_IDX" ON "MODIFICATION_SERVICE_DU" ("HISTO_CREATEUR_ID"); - PROCEDURE DEM_CALC_SUB_EFFECTIF( scenario_noeud_id NUMERIC, type_heures_id NUMERIC, etape_id NUMERIC, effectif FLOAT ) IS - BEGIN - INSERT INTO TMP_scenario_noeud_effectif( - scenario_noeud_id, type_heures_id, etape_id, effectif - ) VALUES( - scenario_noeud_id, type_heures_id, etape_id, effectif - ); - END; +-- MSD_HDFK_IDX +CREATE INDEX "MSD_HDFK_IDX" ON "MODIFICATION_SERVICE_DU" ("HISTO_DESTRUCTEUR_ID"); +-- MSD_HMFK_IDX +CREATE INDEX "MSD_HMFK_IDX" ON "MODIFICATION_SERVICE_DU" ("HISTO_MODIFICATEUR_ID"); +-- MSD_INTERVENANT_FK_IDX +CREATE INDEX "MSD_INTERVENANT_FK_IDX" ON "MODIFICATION_SERVICE_DU" ("INTERVENANT_ID"); - PROCEDURE CALC_SUB_EFFECTIF_DEM IS - BEGIN - DELETE FROM TMP_scenario_noeud_effectif; - END; +-- NOEUD_ANNEE_IDX +CREATE INDEX "NOEUD_ANNEE_IDX" ON "NOEUD" ("ANNEE_ID"); +-- NOEUD_EP_IDX +CREATE INDEX "NOEUD_EP_IDX" ON "NOEUD" ("ELEMENT_PEDAGOGIQUE_ID"); - PROCEDURE CALC_ALL_EFFECTIFS IS - BEGIN - FOR p IN ( +-- NOEUD_ETAPE_IDX +CREATE INDEX "NOEUD_ETAPE_IDX" ON "NOEUD" ("ETAPE_ID"); - SELECT - sn.noeud_id, - sn.scenario_id, - sne.type_heures_id, - sne.etape_id - FROM - scenario_noeud_effectif sne - JOIN scenario_noeud sn ON sn.id = sne.scenario_noeud_id - JOIN noeud n ON n.id = sn.noeud_id - WHERE - n.etape_id IS NOT NULL +-- NOEUD_HISTO_CREATEUR_IDX +CREATE INDEX "NOEUD_HISTO_CREATEUR_IDX" ON "NOEUD" ("HISTO_CREATEUR_ID"); - ) LOOP +-- NOEUD_HISTO_DESTRUCTEUR_IDX +CREATE INDEX "NOEUD_HISTO_DESTRUCTEUR_IDX" ON "NOEUD" ("HISTO_DESTRUCTEUR_ID"); - CALC_SUB_EFFECTIF2( p.noeud_id, p.scenario_id, p.type_heures_id, p.etape_id ); - END LOOP; +-- NOEUD_HISTO_MODIFICATEUR_IDX +CREATE INDEX "NOEUD_HISTO_MODIFICATEUR_IDX" ON "NOEUD" ("HISTO_MODIFICATEUR_ID"); - END; +-- NOEUD_PK +CREATE UNIQUE INDEX "NOEUD_PK" ON "NOEUD" ("ID"); +-- NOEUD_SOURCE_IDX +CREATE INDEX "NOEUD_SOURCE_IDX" ON "NOEUD" ("SOURCE_ID"); +-- NOEUD_SRC_UN +CREATE UNIQUE INDEX "NOEUD_SRC_UN" ON "NOEUD" ("SOURCE_CODE", "HISTO_DESTRUCTION"); - PROCEDURE CALC_EFFECTIF( - noeud_id NUMERIC, - scenario_id NUMERIC, - type_heures_id NUMERIC DEFAULT NULL, - etape_id NUMERIC DEFAULT NULL - ) IS - snid NUMERIC; - BEGIN - UPDATE scenario_noeud_effectif SET effectif = 0 - WHERE - scenario_noeud_id = ( - SELECT id FROM scenario_noeud WHERE noeud_id = CALC_EFFECTIF.noeud_id AND scenario_id = CALC_EFFECTIF.scenario_id - ) - AND (type_heures_id = CALC_EFFECTIF.type_heures_id OR CALC_EFFECTIF.type_heures_id IS NULL) - AND (etape_id = CALC_EFFECTIF.etape_id OR CALC_EFFECTIF.etape_id IS NULL) - ; +-- NOEUD_STRUCTURE_IDX +CREATE INDEX "NOEUD_STRUCTURE_IDX" ON "NOEUD" ("STRUCTURE_ID"); - FOR p IN ( +-- NOTIFICATION_INDICATEUR__UN +CREATE UNIQUE INDEX "NOTIFICATION_INDICATEUR__UN" ON "NOTIFICATION_INDICATEUR" ("INDICATEUR_ID", "AFFECTATION_ID"); - SELECT - * - FROM - v_chargens_calc_effectif cce - WHERE - cce.noeud_id = CALC_EFFECTIF.noeud_id - AND cce.scenario_id = CALC_EFFECTIF.scenario_id - AND (cce.type_heures_id = CALC_EFFECTIF.type_heures_id OR CALC_EFFECTIF.type_heures_id IS NULL) - AND (cce.etape_id = CALC_EFFECTIF.etape_id OR CALC_EFFECTIF.etape_id IS NULL) +-- NOTIF_INDICATEUR_AFK_IDX +CREATE INDEX "NOTIF_INDICATEUR_AFK_IDX" ON "NOTIFICATION_INDICATEUR" ("AFFECTATION_ID"); - ) LOOP - snid := OSE_CHARGENS.GET_SCENARIO_NOEUD_ID( p.scenario_id, p.noeud_id ); - IF snid IS NULL THEN - snid := OSE_CHARGENS.CREER_SCENARIO_NOEUD( p.scenario_id, p.noeud_id ); - END IF; - ADD_SCENARIO_NOEUD_EFFECTIF( snid, p.type_heures_id, p.etape_id, p.effectif ); - END LOOP; - CALC_SUB_EFFECTIF2( noeud_id, scenario_id, type_heures_id, etape_id ); - END; +-- NOTIF_INDICATEUR_IFK_IDX +CREATE INDEX "NOTIF_INDICATEUR_IFK_IDX" ON "NOTIFICATION_INDICATEUR" ("INDICATEUR_ID"); +-- NOTIF_INDICATEUR_PK +CREATE UNIQUE INDEX "NOTIF_INDICATEUR_PK" ON "NOTIFICATION_INDICATEUR" ("ID"); +-- PARAMETRE_HCFK_IDX +CREATE INDEX "PARAMETRE_HCFK_IDX" ON "PARAMETRE" ("HISTO_CREATEUR_ID"); - PROCEDURE CALC_SUB_EFFECTIF2( noeud_id NUMERIC, scenario_id NUMERIC, type_heures_id NUMERIC DEFAULT NULL, etape_id NUMERIC DEFAULT NULL) IS - BEGIN - FOR p IN ( +-- PARAMETRE_HDFK_IDX +CREATE INDEX "PARAMETRE_HDFK_IDX" ON "PARAMETRE" ("HISTO_DESTRUCTEUR_ID"); - SELECT * - FROM V_CHARGENS_GRANDS_LIENS cgl - WHERE cgl.noeud_sup_id = CALC_SUB_EFFECTIF2.noeud_id +-- PARAMETRE_HMFK_IDX +CREATE INDEX "PARAMETRE_HMFK_IDX" ON "PARAMETRE" ("HISTO_MODIFICATEUR_ID"); - ) LOOP - CALC_EFFECTIF( p.noeud_inf_id, scenario_id, type_heures_id, etape_id ); - END LOOP; - END; +-- PARAMETRE_PK +CREATE UNIQUE INDEX "PARAMETRE_PK" ON "PARAMETRE" ("ID"); + +-- PAYS_HCFK_IDX +CREATE INDEX "PAYS_HCFK_IDX" ON "PAYS" ("HISTO_CREATEUR_ID"); + +-- PAYS_HDFK_IDX +CREATE INDEX "PAYS_HDFK_IDX" ON "PAYS" ("HISTO_DESTRUCTEUR_ID"); + +-- PAYS_HMFK_IDX +CREATE INDEX "PAYS_HMFK_IDX" ON "PAYS" ("HISTO_MODIFICATEUR_ID"); + +-- PAYS_PK +CREATE UNIQUE INDEX "PAYS_PK" ON "PAYS" ("ID"); + +-- PAYS_SOURCE_FK_IDX +CREATE INDEX "PAYS_SOURCE_FK_IDX" ON "PAYS" ("SOURCE_ID"); +-- PERIMETRE_CODE_UN +CREATE UNIQUE INDEX "PERIMETRE_CODE_UN" ON "PERIMETRE" ("CODE"); +-- PERIMETRE_LIBELLE_UN +CREATE UNIQUE INDEX "PERIMETRE_LIBELLE_UN" ON "PERIMETRE" ("LIBELLE"); - PROCEDURE DUPLIQUER( source_id NUMERIC, destination_id NUMERIC, utilisateur_id NUMERIC, structure_id NUMERIC, noeuds VARCHAR2 DEFAULT '', liens VARCHAR2 DEFAULT '' ) IS - BEGIN +-- PERIMETRE_PK +CREATE UNIQUE INDEX "PERIMETRE_PK" ON "PERIMETRE" ("ID"); - /* Destruction de tous les liens antérieurs de la destination */ - DELETE FROM - scenario_lien - WHERE - scenario_id = DUPLIQUER.destination_id - AND histo_destruction IS NULL - AND (DUPLIQUER.LIENS IS NULL OR DUPLIQUER.LIENS LIKE '%,' || lien_id || ',%' ) - AND (DUPLIQUER.STRUCTURE_ID IS NULL OR lien_id IN ( - SELECT id FROM lien WHERE lien.structure_id = DUPLIQUER.STRUCTURE_ID - )) - ; +-- PERIODE_HCFK_IDX +CREATE INDEX "PERIODE_HCFK_IDX" ON "PERIODE" ("HISTO_CREATEUR_ID"); - /* Duplication des liens */ - INSERT INTO scenario_lien ( - id, - scenario_id, lien_id, - actif, poids, - choix_minimum, choix_maximum, - source_id, source_code, - histo_creation, histo_createur_id, - histo_modification, histo_modificateur_id - ) SELECT - scenario_lien_id_seq.nextval, - DUPLIQUER.destination_id, sl.lien_id, - sl.actif, sl.poids, - sl.choix_minimum, sl.choix_maximum, - source.id, 'dupli_' || sl.id || '_' || sl.lien_id || '_' || trunc(dbms_random.value(1,10000000000000)), - sysdate, DUPLIQUER.utilisateur_id, - sysdate, DUPLIQUER.utilisateur_id - FROM - scenario_lien sl - JOIN lien l ON l.id = sl.lien_id - JOIN source ON source.code = 'OSE' - WHERE - sl.scenario_id = DUPLIQUER.source_id - AND sl.histo_destruction IS NULL - AND (DUPLIQUER.LIENS IS NULL OR DUPLIQUER.LIENS LIKE '%,' || lien_id || ',%' ) - AND (DUPLIQUER.STRUCTURE_ID IS NULL OR l.structure_id = DUPLIQUER.STRUCTURE_ID) - ; +-- PERIODE_HDFK_IDX +CREATE INDEX "PERIODE_HDFK_IDX" ON "PERIODE" ("HISTO_DESTRUCTEUR_ID"); +-- PERIODE_HMFK_IDX +CREATE INDEX "PERIODE_HMFK_IDX" ON "PERIODE" ("HISTO_MODIFICATEUR_ID"); - /* Destruction de tous les noeuds antérieurs de la destination */ - DELETE FROM - scenario_noeud - WHERE - scenario_id = DUPLIQUER.destination_id - AND histo_destruction IS NULL - AND (DUPLIQUER.NOEUDS IS NULL OR DUPLIQUER.NOEUDS LIKE '%,' || noeud_id || ',%' ) - AND (DUPLIQUER.STRUCTURE_ID IS NULL OR scenario_noeud.noeud_id IN ( - SELECT id FROM noeud WHERE noeud.structure_id = DUPLIQUER.STRUCTURE_ID - )) - ; +-- PERIODE_PK +CREATE UNIQUE INDEX "PERIODE_PK" ON "PERIODE" ("ID"); - /* Duplication des noeuds */ - INSERT INTO scenario_noeud ( - id, - scenario_id, noeud_id, - assiduite, - source_id, source_code, - histo_creation, histo_createur_id, - histo_modification, histo_modificateur_id - ) SELECT - scenario_noeud_id_seq.nextval, - DUPLIQUER.destination_id, sn.noeud_id, - sn.assiduite, - source.id, 'dupli_' || sn.id || '_' || sn.noeud_id || '_' || trunc(dbms_random.value(1,10000000000000)), - sysdate, DUPLIQUER.utilisateur_id, - sysdate, DUPLIQUER.utilisateur_id - FROM - scenario_noeud sn - JOIN noeud n ON n.id = sn.noeud_id - JOIN source ON source.code = 'OSE' - WHERE - sn.scenario_id = DUPLIQUER.source_id - AND sn.histo_destruction IS NULL - AND (DUPLIQUER.NOEUDS IS NULL OR DUPLIQUER.NOEUDS LIKE '%,' || noeud_id || ',%' ) - AND (DUPLIQUER.STRUCTURE_ID IS NULL OR n.structure_id = DUPLIQUER.STRUCTURE_ID) - ; +-- PERIODE__UN +CREATE UNIQUE INDEX "PERIODE__UN" ON "PERIODE" ("CODE"); - /* Duplication des effectifs */ - INSERT INTO scenario_noeud_effectif ( - id, - scenario_noeud_id, - type_heures_id, - effectif, - etape_id - ) SELECT - scenario_noeud_effectif_id_seq.nextval, - sn_dst.id, - sne.type_heures_id, - sne.effectif, - sne.etape_id - FROM - scenario_noeud_effectif sne - JOIN scenario_noeud sn_src ON sn_src.id = sne.scenario_noeud_id - JOIN scenario_noeud sn_dst ON sn_dst.scenario_id = DUPLIQUER.destination_id AND sn_dst.noeud_id = sn_src.noeud_id - JOIN noeud n ON n.id = sn_src.noeud_id - WHERE - sn_src.scenario_id = DUPLIQUER.source_id - AND sn_src.histo_destruction IS NULL - AND (DUPLIQUER.NOEUDS IS NULL OR DUPLIQUER.NOEUDS LIKE '%,' || sn_src.noeud_id || ',%' ) - AND (DUPLIQUER.STRUCTURE_ID IS NULL OR n.structure_id = DUPLIQUER.STRUCTURE_ID) - ; +-- PIECE_JOINTE_FICHIER_FFK_IDX +CREATE INDEX "PIECE_JOINTE_FICHIER_FFK_IDX" ON "PIECE_JOINTE_FICHIER" ("FICHIER_ID"); - /* Duplication des seuils */ - INSERT INTO scenario_noeud_seuil ( - id, - scenario_noeud_id, - type_intervention_id, - ouverture, - dedoublement - ) SELECT - scenario_noeud_seuil_id_seq.nextval, - sn_dst.id, - sns.type_intervention_id, - sns.ouverture, - sns.dedoublement - FROM - scenario_noeud_seuil sns - JOIN scenario_noeud sn_src ON sn_src.id = sns.scenario_noeud_id - JOIN scenario_noeud sn_dst ON sn_dst.scenario_id = DUPLIQUER.destination_id AND sn_dst.noeud_id = sn_src.noeud_id - JOIN noeud n ON n.id = sn_src.noeud_id - WHERE - sn_src.scenario_id = DUPLIQUER.source_id - AND sn_src.histo_destruction IS NULL - AND (DUPLIQUER.NOEUDS IS NULL OR DUPLIQUER.NOEUDS LIKE '%,' || sn_src.noeud_id || ',%' ) - AND (DUPLIQUER.STRUCTURE_ID IS NULL OR n.structure_id = DUPLIQUER.STRUCTURE_ID) - ; - END; +-- PIECE_JOINTE_FICHIER_PJFK_IDX +CREATE INDEX "PIECE_JOINTE_FICHIER_PJFK_IDX" ON "PIECE_JOINTE_FICHIER" ("PIECE_JOINTE_ID"); +-- PIECE_JOINTE_FICHIER_PK +CREATE UNIQUE INDEX "PIECE_JOINTE_FICHIER_PK" ON "PIECE_JOINTE_FICHIER" ("PIECE_JOINTE_ID", "FICHIER_ID"); +-- PIECE_JOINTE_HCFK_IDX +CREATE INDEX "PIECE_JOINTE_HCFK_IDX" ON "PIECE_JOINTE" ("HISTO_CREATEUR_ID"); - PROCEDURE CONTROLE_SEUIL( ouverture NUMERIC, dedoublement NUMERIC ) IS - BEGIN - IF ouverture IS NOT NULL THEN - IF ouverture < 1 THEN - raise_application_error(-20101, 'Le seuil d''ouverture doit être supérieur ou égal à 1'); - END IF; - END IF; +-- PIECE_JOINTE_HDFK_IDX +CREATE INDEX "PIECE_JOINTE_HDFK_IDX" ON "PIECE_JOINTE" ("HISTO_DESTRUCTEUR_ID"); - IF dedoublement IS NOT NULL THEN - IF dedoublement < 1 THEN - raise_application_error(-20101, 'Le seuil de dédoublement doit être supérieur ou égal à 1'); - END IF; - END IF; +-- PIECE_JOINTE_HMFK_IDX +CREATE INDEX "PIECE_JOINTE_HMFK_IDX" ON "PIECE_JOINTE" ("HISTO_MODIFICATEUR_ID"); - IF ouverture IS NOT NULL AND dedoublement IS NOT NULL THEN - IF dedoublement < ouverture THEN - raise_application_error(-20101, 'Le seuil de dédoublement doit être supérieur ou égal au seuil d''ouverture'); - END IF; - END IF; - END; +-- PIECE_JOINTE_PK +CREATE UNIQUE INDEX "PIECE_JOINTE_PK" ON "PIECE_JOINTE" ("ID"); +-- PIECE_JOINTE_VFK_IDX +CREATE INDEX "PIECE_JOINTE_VFK_IDX" ON "PIECE_JOINTE" ("VALIDATION_ID"); - FUNCTION CREER_SCENARIO_NOEUD( scenario_id NUMERIC, noeud_id NUMERIC, assiduite FLOAT DEFAULT 1 ) RETURN NUMERIC IS - new_id NUMERIC; - BEGIN - new_id := SCENARIO_NOEUD_ID_SEQ.NEXTVAL; ---ose_test.echo(scenario_id || '-' || noeud_id); - INSERT INTO SCENARIO_NOEUD( - ID, - SCENARIO_ID, - NOEUD_ID, - ASSIDUITE, - SOURCE_ID, - SOURCE_CODE, - HEURES, - HISTO_CREATION, - HISTO_CREATEUR_ID, - HISTO_MODIFICATION, - HISTO_MODIFICATEUR_ID - ) VALUES ( - new_id, - CREER_SCENARIO_NOEUD.scenario_id, - CREER_SCENARIO_NOEUD.noeud_id, - CREER_SCENARIO_NOEUD.assiduite, - OSE_DIVERS.GET_OSE_SOURCE_ID, - 'OSE_NEW_SN_' || new_id, - null, - SYSDATE, - OSE_DIVERS.GET_OSE_UTILISATEUR_ID, - SYSDATE, - OSE_DIVERS.GET_OSE_UTILISATEUR_ID - ); - RETURN new_id; - END; +-- PIECE_JOINTE__UN +CREATE UNIQUE INDEX "PIECE_JOINTE__UN" ON "PIECE_JOINTE" ("TYPE_PIECE_JOINTE_ID", "INTERVENANT_ID", "HISTO_DESTRUCTION"); +-- PJ_DOSSIER_FK_IDX +CREATE INDEX "PJ_DOSSIER_FK_IDX" ON "PIECE_JOINTE" ("INTERVENANT_ID"); - FUNCTION GET_SCENARIO_NOEUD_ID(scenario_id NUMERIC, noeud_id NUMERIC) RETURN NUMERIC IS - res NUMERIC; - BEGIN - SELECT - sn.id INTO res - FROM - scenario_noeud sn - WHERE - sn.noeud_id = GET_SCENARIO_NOEUD_ID.noeud_id - AND sn.scenario_id = GET_SCENARIO_NOEUD_ID.scenario_id - AND sn.histo_destruction IS NULL; +-- PJ_TYPE_PIECE_JOINTE_FK_IDX +CREATE INDEX "PJ_TYPE_PIECE_JOINTE_FK_IDX" ON "PIECE_JOINTE" ("TYPE_PIECE_JOINTE_ID"); - RETURN res; +-- PLAFOND_APPLICATION_PK +CREATE UNIQUE INDEX "PLAFOND_APPLICATION_PK" ON "PLAFOND_APPLICATION" ("ID"); - EXCEPTION WHEN NO_DATA_FOUND THEN - RETURN NULL; - END; +-- PLAFOND_ETAT_PK +CREATE UNIQUE INDEX "PLAFOND_ETAT_PK" ON "PLAFOND_ETAT" ("ID"); +-- PLAFOND_PK +CREATE UNIQUE INDEX "PLAFOND_PK" ON "PLAFOND" ("ID"); - PROCEDURE ADD_SCENARIO_NOEUD_EFFECTIF( scenario_noeud_id NUMERIC, type_heures_id NUMERIC, etape_id NUMERIC, effectif FLOAT ) IS - old_enable BOOLEAN; - BEGIN - old_enable := ose_chargens.ENABLE_TRIGGER_EFFECTIFS; - ose_chargens.ENABLE_TRIGGER_EFFECTIFS := false; +-- PRIVILEGE_CATEGORIE_FK_IDX +CREATE INDEX "PRIVILEGE_CATEGORIE_FK_IDX" ON "PRIVILEGE" ("CATEGORIE_ID"); - MERGE INTO scenario_noeud_effectif sne USING dual ON ( +-- PRIVILEGE_PK +CREATE UNIQUE INDEX "PRIVILEGE_PK" ON "PRIVILEGE" ("ID"); - sne.scenario_noeud_id = ADD_SCENARIO_NOEUD_EFFECTIF.scenario_noeud_id - AND sne.type_heures_id = ADD_SCENARIO_NOEUD_EFFECTIF.type_heures_id - AND sne.etape_id = ADD_SCENARIO_NOEUD_EFFECTIF.etape_id +-- PRIVILEGE__UN +CREATE UNIQUE INDEX "PRIVILEGE__UN" ON "PRIVILEGE" ("CATEGORIE_ID", "CODE"); - ) WHEN MATCHED THEN UPDATE SET +-- REGLE_STRUCTURE_VALIDATION_PK +CREATE UNIQUE INDEX "REGLE_STRUCTURE_VALIDATION_PK" ON "REGLE_STRUCTURE_VALIDATION" ("ID"); - effectif = effectif + ADD_SCENARIO_NOEUD_EFFECTIF.effectif +-- REGLE_STRUCTURE_VALIDATION__UN +CREATE UNIQUE INDEX "REGLE_STRUCTURE_VALIDATION__UN" ON "REGLE_STRUCTURE_VALIDATION" ("TYPE_VOLUME_HORAIRE_ID", "TYPE_INTERVENANT_ID"); - WHEN NOT MATCHED THEN INSERT ( +-- ROLE_CODE_UN +CREATE UNIQUE INDEX "ROLE_CODE_UN" ON "ROLE" ("CODE"); - ID, - SCENARIO_NOEUD_ID, - TYPE_HEURES_ID, - ETAPE_ID, - EFFECTIF +-- ROLE_HCFK_IDX +CREATE INDEX "ROLE_HCFK_IDX" ON "ROLE" ("HISTO_CREATEUR_ID"); - ) VALUES ( +-- ROLE_HDFK_IDX +CREATE INDEX "ROLE_HDFK_IDX" ON "ROLE" ("HISTO_DESTRUCTEUR_ID"); - SCENARIO_NOEUD_EFFECTIF_ID_SEQ.NEXTVAL, - ADD_SCENARIO_NOEUD_EFFECTIF.scenario_noeud_id, - ADD_SCENARIO_NOEUD_EFFECTIF.type_heures_id, - ADD_SCENARIO_NOEUD_EFFECTIF.etape_id, - ADD_SCENARIO_NOEUD_EFFECTIF.effectif +-- ROLE_HMFK_IDX +CREATE INDEX "ROLE_HMFK_IDX" ON "ROLE" ("HISTO_MODIFICATEUR_ID"); - ); +-- ROLE_PERIMETRE_FK_IDX +CREATE INDEX "ROLE_PERIMETRE_FK_IDX" ON "ROLE" ("PERIMETRE_ID"); - DELETE FROM scenario_noeud_effectif WHERE effectif = 0; +-- ROLE_PK +CREATE UNIQUE INDEX "ROLE_PK" ON "ROLE" ("ID"); - ose_chargens.ENABLE_TRIGGER_EFFECTIFS := old_enable; - END; +-- ROLE_PRIVILEGE_PK +CREATE UNIQUE INDEX "ROLE_PRIVILEGE_PK" ON "ROLE_PRIVILEGE" ("PRIVILEGE_ID", "ROLE_ID"); +-- ROLE_PRIVILEGE_ROLE_FK_IDX +CREATE INDEX "ROLE_PRIVILEGE_ROLE_FK_IDX" ON "ROLE_PRIVILEGE" ("ROLE_ID"); +-- RP_PRIVILEGE_FK_IDX +CREATE INDEX "RP_PRIVILEGE_FK_IDX" ON "ROLE_PRIVILEGE" ("PRIVILEGE_ID"); - PROCEDURE INIT_SCENARIO_NOEUD_EFFECTIF( - etape_id NUMERIC, - scenario_id NUMERIC, - type_heures_id NUMERIC, - effectif FLOAT, - surcharge BOOLEAN DEFAULT FALSE - ) IS - noeud_id NUMERIC; - scenario_noeud_id NUMERIC; - scenario_noeud_effectif_id NUMERIC; - BEGIN - SELECT - n.id, sn.id, sne.id - INTO - noeud_id, scenario_noeud_id, scenario_noeud_effectif_id - FROM - noeud n - LEFT JOIN scenario_noeud sn ON sn.noeud_id = n.id - AND sn.histo_destruction IS NULL - AND sn.scenario_id = INIT_SCENARIO_NOEUD_EFFECTIF.scenario_id +-- RSV_TYPE_INTERVENANT_FK_IDX +CREATE INDEX "RSV_TYPE_INTERVENANT_FK_IDX" ON "REGLE_STRUCTURE_VALIDATION" ("TYPE_INTERVENANT_ID"); - LEFT JOIN scenario_noeud_effectif sne ON sne.scenario_noeud_id = sn.id - AND sne.type_heures_id = INIT_SCENARIO_NOEUD_EFFECTIF.type_heures_id - WHERE - n.etape_id = INIT_SCENARIO_NOEUD_EFFECTIF.etape_id - AND n.histo_destruction IS NULL - ; +-- RSV_TYPE_VOLUME_HORAIRE_FK_IDX +CREATE INDEX "RSV_TYPE_VOLUME_HORAIRE_FK_IDX" ON "REGLE_STRUCTURE_VALIDATION" ("TYPE_VOLUME_HORAIRE_ID"); - IF noeud_id IS NULL THEN RETURN; END IF; +-- SCENARIO_HC_IDX +CREATE INDEX "SCENARIO_HC_IDX" ON "SCENARIO" ("HISTO_CREATEUR_ID"); - IF scenario_noeud_id IS NULL THEN - scenario_noeud_id := CREER_SCENARIO_NOEUD( scenario_id, noeud_id ); - END IF; +-- SCENARIO_HD_IDX +CREATE INDEX "SCENARIO_HD_IDX" ON "SCENARIO" ("HISTO_DESTRUCTEUR_ID"); - IF scenario_noeud_effectif_id IS NULL THEN - scenario_noeud_effectif_id := SCENARIO_NOEUD_EFFECTIF_ID_SEQ.NEXTVAL; - INSERT INTO scenario_noeud_effectif ( - id, - scenario_noeud_id, - type_heures_id, - effectif, - etape_id - ) VALUES ( - scenario_noeud_effectif_id, - scenario_noeud_id, - INIT_SCENARIO_NOEUD_EFFECTIF.type_heures_id, - INIT_SCENARIO_NOEUD_EFFECTIF.effectif, - INIT_SCENARIO_NOEUD_EFFECTIF.etape_id - ); - ELSIF surcharge THEN - UPDATE scenario_noeud_effectif SET effectif = INIT_SCENARIO_NOEUD_EFFECTIF.effectif WHERE id = scenario_noeud_effectif_id; - END IF; +-- SCENARIO_HM_IDX +CREATE INDEX "SCENARIO_HM_IDX" ON "SCENARIO" ("HISTO_MODIFICATEUR_ID"); - CALC_SUB_EFFECTIF2( noeud_id, scenario_id, type_heures_id, etape_id ); +-- SCENARIO_LIEN_HC_IDX +CREATE INDEX "SCENARIO_LIEN_HC_IDX" ON "SCENARIO_LIEN" ("HISTO_CREATEUR_ID"); - EXCEPTION WHEN NO_DATA_FOUND THEN - RETURN; - END; +-- SCENARIO_LIEN_HD_IDX +CREATE INDEX "SCENARIO_LIEN_HD_IDX" ON "SCENARIO_LIEN" ("HISTO_DESTRUCTEUR_ID"); +-- SCENARIO_LIEN_HM_IDX +CREATE INDEX "SCENARIO_LIEN_HM_IDX" ON "SCENARIO_LIEN" ("HISTO_MODIFICATEUR_ID"); +-- SCENARIO_LIEN_LIEN_IDX +CREATE INDEX "SCENARIO_LIEN_LIEN_IDX" ON "SCENARIO_LIEN" ("LIEN_ID"); - PROCEDURE SET_PRECALC_HEURES_PARAMS( - annee_id NUMERIC DEFAULT NULL, - structure_id NUMERIC DEFAULT NULL, - scenario_id NUMERIC DEFAULT NULL, - type_heures_id NUMERIC DEFAULT NULL, - etape_id NUMERIC DEFAULT NULL, - noeud_ids tnoeud_ids DEFAULT NULL - ) IS - BEGIN - PRECALC_HEURES_PARAMS.ANNEE_ID := ANNEE_ID; - PRECALC_HEURES_PARAMS.STRUCTURE_ID := STRUCTURE_ID; - PRECALC_HEURES_PARAMS.SCENARIO_ID := SCENARIO_ID; - PRECALC_HEURES_PARAMS.TYPE_HEURES_ID := TYPE_HEURES_ID; - PRECALC_HEURES_PARAMS.ETAPE_ID := ETAPE_ID; - PRECALC_HEURES_PARAMS.NOEUD_IDS := noeud_ids; - END; +-- SCENARIO_LIEN_PK +CREATE UNIQUE INDEX "SCENARIO_LIEN_PK" ON "SCENARIO_LIEN" ("ID"); + +-- SCENARIO_LIEN_SCENARIO_IDX +CREATE INDEX "SCENARIO_LIEN_SCENARIO_IDX" ON "SCENARIO_LIEN" ("SCENARIO_ID"); + +-- SCENARIO_LIEN_SOURCE_IDX +CREATE INDEX "SCENARIO_LIEN_SOURCE_IDX" ON "SCENARIO_LIEN" ("SOURCE_ID"); + +-- SCENARIO_LIEN_SRC_UN +CREATE UNIQUE INDEX "SCENARIO_LIEN_SRC_UN" ON "SCENARIO_LIEN" ("SOURCE_CODE", "HISTO_DESTRUCTION"); +-- SCENARIO_LIEN__UN +CREATE UNIQUE INDEX "SCENARIO_LIEN__UN" ON "SCENARIO_LIEN" ("SCENARIO_ID", "LIEN_ID", "HISTO_DESTRUCTION"); +-- SCENARIO_NOEUD_EFFECTIF_PK +CREATE UNIQUE INDEX "SCENARIO_NOEUD_EFFECTIF_PK" ON "SCENARIO_NOEUD_EFFECTIF" ("ID"); - FUNCTION MATCH_PRECALC_HEURES_PARAMS( - annee_id NUMERIC DEFAULT NULL, - structure_id NUMERIC DEFAULT NULL, - scenario_id NUMERIC DEFAULT NULL, - type_heures_id NUMERIC DEFAULT NULL, - etape_id NUMERIC DEFAULT NULL, - noeud_id NUMERIC DEFAULT NULL - ) RETURN NUMERIC IS - BEGIN +-- SCENARIO_NOEUD_EFFECTIF_SN_IDX +CREATE INDEX "SCENARIO_NOEUD_EFFECTIF_SN_IDX" ON "SCENARIO_NOEUD_EFFECTIF" ("SCENARIO_NOEUD_ID"); - IF PRECALC_HEURES_PARAMS.noeud_ids IS NOT NULL THEN - IF NOT (noeud_id MEMBER OF PRECALC_HEURES_PARAMS.noeud_ids) THEN - RETURN 0; - END IF; - END IF; +-- SCENARIO_NOEUD_EFFECTIF_TH_IDX +CREATE INDEX "SCENARIO_NOEUD_EFFECTIF_TH_IDX" ON "SCENARIO_NOEUD_EFFECTIF" ("TYPE_HEURES_ID"); - IF annee_id <> COALESCE(PRECALC_HEURES_PARAMS.annee_id, annee_id) THEN - RETURN 0; - END IF; +-- SCENARIO_NOEUD_EFF_ETP_IDX +CREATE INDEX "SCENARIO_NOEUD_EFF_ETP_IDX" ON "SCENARIO_NOEUD_EFFECTIF" ("ETAPE_ID"); - IF structure_id <> COALESCE(PRECALC_HEURES_PARAMS.structure_id, structure_id) THEN - RETURN 0; - END IF; +-- SCENARIO_NOEUD_HC_IDX +CREATE INDEX "SCENARIO_NOEUD_HC_IDX" ON "SCENARIO_NOEUD" ("HISTO_CREATEUR_ID"); - IF scenario_id <> COALESCE(PRECALC_HEURES_PARAMS.scenario_id, scenario_id) THEN - RETURN 0; - END IF; +-- SCENARIO_NOEUD_HD_IDX +CREATE INDEX "SCENARIO_NOEUD_HD_IDX" ON "SCENARIO_NOEUD" ("HISTO_DESTRUCTEUR_ID"); - IF type_heures_id <> COALESCE(PRECALC_HEURES_PARAMS.type_heures_id, type_heures_id) THEN - RETURN 0; - END IF; +-- SCENARIO_NOEUD_HM_IDX +CREATE INDEX "SCENARIO_NOEUD_HM_IDX" ON "SCENARIO_NOEUD" ("HISTO_MODIFICATEUR_ID"); - IF etape_id <> COALESCE(PRECALC_HEURES_PARAMS.etape_id, etape_id) THEN - RETURN 0; - END IF; +-- SCENARIO_NOEUD_NOEUD_IDX +CREATE INDEX "SCENARIO_NOEUD_NOEUD_IDX" ON "SCENARIO_NOEUD" ("NOEUD_ID"); - RETURN 1; - END; +-- SCENARIO_NOEUD_PK +CREATE UNIQUE INDEX "SCENARIO_NOEUD_PK" ON "SCENARIO_NOEUD" ("ID"); +-- SCENARIO_NOEUD_SCENARIO_IDX +CREATE INDEX "SCENARIO_NOEUD_SCENARIO_IDX" ON "SCENARIO_NOEUD" ("SCENARIO_ID"); - FUNCTION GET_PRECALC_HEURES_ANNEE RETURN NUMERIC IS - BEGIN - RETURN PRECALC_HEURES_PARAMS.ANNEE_ID; - END; +-- SCENARIO_NOEUD_SEUIL_PK +CREATE UNIQUE INDEX "SCENARIO_NOEUD_SEUIL_PK" ON "SCENARIO_NOEUD_SEUIL" ("ID"); +-- SCENARIO_NOEUD_SEUIL_SN_IDX +CREATE INDEX "SCENARIO_NOEUD_SEUIL_SN_IDX" ON "SCENARIO_NOEUD_SEUIL" ("SCENARIO_NOEUD_ID"); +-- SCENARIO_NOEUD_SEUIL_TI_IDX +CREATE INDEX "SCENARIO_NOEUD_SEUIL_TI_IDX" ON "SCENARIO_NOEUD_SEUIL" ("TYPE_INTERVENTION_ID"); - FUNCTION GET_PRECALC_HEURES_STRUCTURE RETURN NUMERIC IS - BEGIN - RETURN PRECALC_HEURES_PARAMS.STRUCTURE_ID; - END; +-- SCENARIO_NOEUD_SOURCE_IDX +CREATE INDEX "SCENARIO_NOEUD_SOURCE_IDX" ON "SCENARIO_NOEUD" ("SOURCE_ID"); +-- SCENARIO_NOEUD_SRC_UN +CREATE UNIQUE INDEX "SCENARIO_NOEUD_SRC_UN" ON "SCENARIO_NOEUD" ("SOURCE_CODE", "HISTO_DESTRUCTION"); +-- SCENARIO_NOEUD__UN +CREATE UNIQUE INDEX "SCENARIO_NOEUD__UN" ON "SCENARIO_NOEUD" ("SCENARIO_ID", "NOEUD_ID", "HISTO_DESTRUCTION"); - FUNCTION GET_PRECALC_HEURES_SCENARIO RETURN NUMERIC IS - BEGIN - RETURN PRECALC_HEURES_PARAMS.SCENARIO_ID; - END; +-- SCENARIO_PK +CREATE UNIQUE INDEX "SCENARIO_PK" ON "SCENARIO" ("ID"); +-- SCENARIO_STRUCTURE_IDX +CREATE INDEX "SCENARIO_STRUCTURE_IDX" ON "SCENARIO" ("STRUCTURE_ID"); +-- SERVICE_ETABLISSEMENT_FK_IDX +CREATE INDEX "SERVICE_ETABLISSEMENT_FK_IDX" ON "SERVICE" ("ETABLISSEMENT_ID"); - FUNCTION GET_PRECALC_HEURES_TYPE_HEURES RETURN NUMERIC IS - BEGIN - RETURN PRECALC_HEURES_PARAMS.TYPE_HEURES_ID; - END; +-- SERVICE_HCFK_IDX +CREATE INDEX "SERVICE_HCFK_IDX" ON "SERVICE" ("HISTO_CREATEUR_ID"); +-- SERVICE_HDFK_IDX +CREATE INDEX "SERVICE_HDFK_IDX" ON "SERVICE" ("HISTO_DESTRUCTEUR_ID"); +-- SERVICE_HMFK_IDX +CREATE INDEX "SERVICE_HMFK_IDX" ON "SERVICE" ("HISTO_MODIFICATEUR_ID"); - FUNCTION GET_PRECALC_HEURES_ETAPE RETURN NUMERIC IS - BEGIN - RETURN PRECALC_HEURES_PARAMS.ETAPE_ID; - END; +-- SERVICE_INTERVENANT_FK_IDX +CREATE INDEX "SERVICE_INTERVENANT_FK_IDX" ON "SERVICE" ("INTERVENANT_ID"); --- FUNCTION GET_PRECALC_HEURES_NOEUD RETURN NUMERIC IS --- BEGIN +-- SERVICE_PK +CREATE UNIQUE INDEX "SERVICE_PK" ON "SERVICE" ("ID"); --- END; +-- SERVICE_REFERENTIEL_HCFK_IDX +CREATE INDEX "SERVICE_REFERENTIEL_HCFK_IDX" ON "SERVICE_REFERENTIEL" ("HISTO_CREATEUR_ID"); -END OSE_CHARGENS; -/ +-- SERVICE_REFERENTIEL_HDFK_IDX +CREATE INDEX "SERVICE_REFERENTIEL_HDFK_IDX" ON "SERVICE_REFERENTIEL" ("HISTO_DESTRUCTEUR_ID"); --- OSE_DIVERS -CREATE OR REPLACE PACKAGE BODY "OSE_DIVERS" AS - OSE_UTILISATEUR_ID NUMERIC; - OSE_SOURCE_ID NUMERIC; +-- SERVICE_REFERENTIEL_HMFK_IDX +CREATE INDEX "SERVICE_REFERENTIEL_HMFK_IDX" ON "SERVICE_REFERENTIEL" ("HISTO_MODIFICATEUR_ID"); +-- SERVICE_REFERENTIEL_PK +CREATE UNIQUE INDEX "SERVICE_REFERENTIEL_PK" ON "SERVICE_REFERENTIEL" ("ID"); +-- SERVICE__UN +CREATE UNIQUE INDEX "SERVICE__UN" ON "SERVICE" ("INTERVENANT_ID", "ELEMENT_PEDAGOGIQUE_ID", "ETABLISSEMENT_ID", "HISTO_DESTRUCTION"); +-- SEUIL_CHARGE_ANNEE_IDX +CREATE INDEX "SEUIL_CHARGE_ANNEE_IDX" ON "SEUIL_CHARGE" ("ANNEE_ID"); -PROCEDURE CALCULER_TABLEAUX_BORD IS -BEGIN - FOR d IN ( - SELECT tbl_name - FROM tbl - WHERE tbl_name <> 'formule' -- TROP LONG !! - ORDER BY ordre - ) - LOOP - UNICAEN_TBL.CALCULER(d.tbl_name); - dbms_output.put_line('Calcul du tableau de bord "' || d.tbl_name || '" effectué'); - COMMIT; - END LOOP; -END; +-- SEUIL_CHARGE_GTF_IDX +CREATE INDEX "SEUIL_CHARGE_GTF_IDX" ON "SEUIL_CHARGE" ("GROUPE_TYPE_FORMATION_ID"); +-- SEUIL_CHARGE_HC_IDX +CREATE INDEX "SEUIL_CHARGE_HC_IDX" ON "SEUIL_CHARGE" ("HISTO_CREATEUR_ID"); +-- SEUIL_CHARGE_HD_IDX +CREATE INDEX "SEUIL_CHARGE_HD_IDX" ON "SEUIL_CHARGE" ("HISTO_DESTRUCTEUR_ID"); -FUNCTION GET_OSE_UTILISATEUR_ID RETURN NUMERIC IS -BEGIN - IF OSE_DIVERS.OSE_UTILISATEUR_ID IS NULL THEN - SELECT - to_number(valeur) INTO OSE_DIVERS.OSE_UTILISATEUR_ID - FROM - parametre - WHERE - nom = 'oseuser'; - END IF; +-- SEUIL_CHARGE_HM_IDX +CREATE INDEX "SEUIL_CHARGE_HM_IDX" ON "SEUIL_CHARGE" ("HISTO_MODIFICATEUR_ID"); - RETURN OSE_DIVERS.OSE_UTILISATEUR_ID; -END; +-- SEUIL_CHARGE_PK +CREATE UNIQUE INDEX "SEUIL_CHARGE_PK" ON "SEUIL_CHARGE" ("ID"); +-- SEUIL_CHARGE_SCENARIO_IDX +CREATE INDEX "SEUIL_CHARGE_SCENARIO_IDX" ON "SEUIL_CHARGE" ("SCENARIO_ID"); +-- SEUIL_CHARGE_STRUCTURE_IDX +CREATE INDEX "SEUIL_CHARGE_STRUCTURE_IDX" ON "SEUIL_CHARGE" ("STRUCTURE_ID"); -FUNCTION GET_OSE_SOURCE_ID RETURN NUMERIC IS -BEGIN - IF OSE_DIVERS.OSE_SOURCE_ID IS NULL THEN - SELECT - id INTO OSE_DIVERS.OSE_SOURCE_ID - FROM - source - WHERE - code = 'OSE'; - END IF; +-- SEUIL_CHARGE_TI_IDX +CREATE INDEX "SEUIL_CHARGE_TI_IDX" ON "SEUIL_CHARGE" ("TYPE_INTERVENTION_ID"); - RETURN OSE_DIVERS.OSE_SOURCE_ID; -END; +-- SI_SOURCE_FK_IDX +CREATE INDEX "SI_SOURCE_FK_IDX" ON "STATUT_INTERVENANT" ("SOURCE_ID"); +-- SOURCE_CODE_UN +CREATE UNIQUE INDEX "SOURCE_CODE_UN" ON "SOURCE" ("CODE"); +-- SOURCE_PK +CREATE UNIQUE INDEX "SOURCE_PK" ON "SOURCE" ("ID"); -FUNCTION INTERVENANT_HAS_PRIVILEGE( intervenant_id NUMERIC, privilege_name VARCHAR2 ) RETURN NUMERIC IS - statut statut_intervenant%rowtype; - itype type_intervenant%rowtype; - res NUMERIC; -BEGIN - res := 1; - SELECT si.* INTO statut FROM statut_intervenant si JOIN intervenant i ON i.statut_id = si.id WHERE i.id = intervenant_id; - SELECT ti.* INTO itype FROM type_intervenant ti WHERE ti.id = statut.type_intervenant_id; +-- SRFR_FK_IDX +CREATE INDEX "SRFR_FK_IDX" ON "SERVICE_REFERENTIEL" ("FONCTION_ID"); - /* DEPRECATED */ - IF 'saisie_service' = privilege_name THEN - res := statut.peut_saisir_service; - RETURN res; - ELSIF 'saisie_service_exterieur' = privilege_name THEN - --IF INTERVENANT_HAS_PRIVILEGE( intervenant_id, 'saisie_service' ) = 0 OR itype.code = 'E' THEN -- cascade - IF itype.code = 'E' THEN - res := 0; - END IF; - RETURN res; - ELSIF 'saisie_service_referentiel' = privilege_name THEN - IF itype.code = 'E' THEN - res := 0; - END IF; - RETURN res; - ELSIF 'saisie_service_referentiel_autre_structure' = privilege_name THEN - res := 1; - RETURN res; - ELSIF 'saisie_motif_non_paiement' = privilege_name THEN - res := statut.peut_saisir_motif_non_paiement; - RETURN res; - END IF; - /* FIN DE DEPRECATED */ +-- SR_INTERVENANT_FK_IDX +CREATE INDEX "SR_INTERVENANT_FK_IDX" ON "SERVICE_REFERENTIEL" ("INTERVENANT_ID"); - SELECT - count(*) - INTO - res - FROM - intervenant i - JOIN statut_privilege sp ON sp.statut_id = i.statut_id - JOIN privilege p ON p.id = sp.privilege_id - JOIN categorie_privilege cp ON cp.id = p.categorie_id - WHERE - i.id = INTERVENANT_HAS_PRIVILEGE.intervenant_id - AND cp.code || '-' || p.code = privilege_name; +-- SR_STRUCTURE_FK_IDX +CREATE INDEX "SR_STRUCTURE_FK_IDX" ON "SERVICE_REFERENTIEL" ("STRUCTURE_ID"); - RETURN res; -END; +-- STATUT_INTERVENANT_HCFK_IDX +CREATE INDEX "STATUT_INTERVENANT_HCFK_IDX" ON "STATUT_INTERVENANT" ("HISTO_CREATEUR_ID"); -FUNCTION implode(i_query VARCHAR2, i_seperator VARCHAR2 DEFAULT ',') RETURN VARCHAR2 AS - l_return CLOB:=''; - l_temp CLOB; - TYPE r_cursor is REF CURSOR; - rc r_cursor; -BEGIN - OPEN rc FOR i_query; - LOOP - FETCH rc INTO L_TEMP; - EXIT WHEN RC%NOTFOUND; - l_return:=l_return||L_TEMP||i_seperator; - END LOOP; - RETURN RTRIM(l_return,i_seperator); -END; +-- STATUT_INTERVENANT_HDFK_IDX +CREATE INDEX "STATUT_INTERVENANT_HDFK_IDX" ON "STATUT_INTERVENANT" ("HISTO_DESTRUCTEUR_ID"); -PROCEDURE intervenant_horodatage_service( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, REFERENTIEL NUMERIC, HISTO_MODIFICATEUR_ID NUMERIC, HISTO_MODIFICATION DATE ) AS -BEGIN - MERGE INTO histo_intervenant_service his USING dual ON ( +-- STATUT_INTERVENANT_HMFK_IDX +CREATE INDEX "STATUT_INTERVENANT_HMFK_IDX" ON "STATUT_INTERVENANT" ("HISTO_MODIFICATEUR_ID"); - his.INTERVENANT_ID = intervenant_horodatage_service.INTERVENANT_ID - AND NVL(his.TYPE_VOLUME_HORAIRE_ID,0) = NVL(intervenant_horodatage_service.TYPE_VOLUME_HORAIRE_ID,0) - AND his.REFERENTIEL = intervenant_horodatage_service.REFERENTIEL +-- STATUT_INTERVENANT_ODRE_UN +CREATE UNIQUE INDEX "STATUT_INTERVENANT_ODRE_UN" ON "STATUT_INTERVENANT" ("HISTO_DESTRUCTION", "ORDRE"); - ) WHEN MATCHED THEN UPDATE SET +-- STATUT_INTERVENANT_PK +CREATE UNIQUE INDEX "STATUT_INTERVENANT_PK" ON "STATUT_INTERVENANT" ("ID"); - HISTO_MODIFICATEUR_ID = intervenant_horodatage_service.HISTO_MODIFICATEUR_ID, - HISTO_MODIFICATION = intervenant_horodatage_service.HISTO_MODIFICATION +-- STATUT_INTERVENANT_TYPE_FK_IDX +CREATE INDEX "STATUT_INTERVENANT_TYPE_FK_IDX" ON "STATUT_INTERVENANT" ("TYPE_INTERVENANT_ID"); - WHEN NOT MATCHED THEN INSERT ( +-- STATUT_INTERVENANT__UN +CREATE UNIQUE INDEX "STATUT_INTERVENANT__UN" ON "STATUT_INTERVENANT" ("SOURCE_CODE"); - ID, - INTERVENANT_ID, - TYPE_VOLUME_HORAIRE_ID, - REFERENTIEL, - HISTO_MODIFICATEUR_ID, - HISTO_MODIFICATION - ) VALUES ( - HISTO_INTERVENANT_SERVI_ID_SEQ.NEXTVAL, - intervenant_horodatage_service.INTERVENANT_ID, - intervenant_horodatage_service.TYPE_VOLUME_HORAIRE_ID, - intervenant_horodatage_service.REFERENTIEL, - intervenant_horodatage_service.HISTO_MODIFICATEUR_ID, - intervenant_horodatage_service.HISTO_MODIFICATION +-- STATUT_PRIVILEGE_PK +CREATE UNIQUE INDEX "STATUT_PRIVILEGE_PK" ON "STATUT_PRIVILEGE" ("STATUT_ID", "PRIVILEGE_ID"); - ); -END; +-- STAT_PRIV_PRIVILEGE_FK_IDX +CREATE INDEX "STAT_PRIV_PRIVILEGE_FK_IDX" ON "STATUT_PRIVILEGE" ("PRIVILEGE_ID"); +-- STAT_PRIV_STATUT_FK_IDX +CREATE INDEX "STAT_PRIV_STATUT_FK_IDX" ON "STATUT_PRIVILEGE" ("STATUT_ID"); -FUNCTION NIVEAU_FORMATION_ID_CALC( gtf_id NUMERIC, gtf_pertinence_niveau NUMERIC, niveau NUMERIC DEFAULT NULL ) RETURN NUMERIC AS -BEGIN - IF 1 <> gtf_pertinence_niveau OR niveau IS NULL OR niveau < 1 OR gtf_id < 1 THEN RETURN NULL; END IF; - RETURN gtf_id * 256 + niveau; -END; +-- STRUCTURE_CODE_UN +CREATE UNIQUE INDEX "STRUCTURE_CODE_UN" ON "STRUCTURE" ("CODE", "HISTO_DESTRUCTION"); -FUNCTION STR_REDUCE( str CLOB ) RETURN CLOB IS -BEGIN - RETURN utl_raw.cast_to_varchar2((nlssort(str, 'nls_sort=binary_ai'))); -END; +-- STRUCTURE_HCFK_IDX +CREATE INDEX "STRUCTURE_HCFK_IDX" ON "STRUCTURE" ("HISTO_CREATEUR_ID"); -FUNCTION STR_FIND( haystack CLOB, needle VARCHAR2 ) RETURN NUMERIC IS -BEGIN - IF STR_REDUCE( haystack ) LIKE STR_REDUCE( '%' || needle || '%' ) THEN RETURN 1; END IF; - RETURN 0; -END; +-- STRUCTURE_HDFK_IDX +CREATE INDEX "STRUCTURE_HDFK_IDX" ON "STRUCTURE" ("HISTO_DESTRUCTEUR_ID"); -FUNCTION LIKED( haystack CLOB, needle CLOB ) RETURN NUMERIC IS -BEGIN - RETURN CASE WHEN STR_REDUCE(haystack) LIKE STR_REDUCE(needle) THEN 1 ELSE 0 END; -END; +-- STRUCTURE_HMFK_IDX +CREATE INDEX "STRUCTURE_HMFK_IDX" ON "STRUCTURE" ("HISTO_MODIFICATEUR_ID"); -PROCEDURE DO_NOTHING IS -BEGIN - RETURN; -END; +-- STRUCTURE_PK +CREATE UNIQUE INDEX "STRUCTURE_PK" ON "STRUCTURE" ("ID"); -PROCEDURE CALCUL_TAUX( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, r_fi OUT FLOAT, r_fc OUT FLOAT, r_fa OUT FLOAT, arrondi NUMERIC DEFAULT 15 ) IS - nt FLOAT; - bi FLOAT; - bc FLOAT; - ba FLOAT; - reste FLOAT; -BEGIN - bi := eff_fi * fi; - bc := eff_fc * fc; - ba := eff_fa * fa; - nt := bi + bc + ba; +-- STRUCTURE_SOURCE_CODE_UN +CREATE UNIQUE INDEX "STRUCTURE_SOURCE_CODE_UN" ON "STRUCTURE" ("SOURCE_CODE", "HISTO_DESTRUCTION"); - IF nt = 0 THEN -- au cas ou, alors on ne prend plus en compte les effectifs!! - bi := fi; - bc := fc; - ba := fa; - nt := bi + bc + ba; - END IF; +-- SYNC_LOG_PK +CREATE UNIQUE INDEX "SYNC_LOG_PK" ON "SYNC_LOG" ("ID"); - IF nt = 0 THEN -- toujours au cas ou... - bi := 1; - bc := 0; - ba := 0; - nt := bi + bc + ba; - END IF; +-- S_ELEMENT_PEDAGOGIQUE_FK_IDX +CREATE INDEX "S_ELEMENT_PEDAGOGIQUE_FK_IDX" ON "SERVICE" ("ELEMENT_PEDAGOGIQUE_ID"); - -- Calcul - r_fi := bi / nt; - r_fc := bc / nt; - r_fa := ba / nt; +-- TAS_STATUT_INTERVENANT_FK_IDX +CREATE INDEX "TAS_STATUT_INTERVENANT_FK_IDX" ON "TYPE_AGREMENT_STATUT" ("STATUT_INTERVENANT_ID"); - -- Arrondis - r_fi := ROUND( r_fi, arrondi ); - r_fc := ROUND( r_fc, arrondi ); - r_fa := ROUND( r_fa, arrondi ); +-- TAS_TYPE_AGREMENT_FK_IDX +CREATE INDEX "TAS_TYPE_AGREMENT_FK_IDX" ON "TYPE_AGREMENT_STATUT" ("TYPE_AGREMENT_ID"); - -- détermination du reste - reste := 1 - r_fi - r_fc - r_fa; +-- TAUX_HORAIRE_HETD_HCFK_IDX +CREATE INDEX "TAUX_HORAIRE_HETD_HCFK_IDX" ON "TAUX_HORAIRE_HETD" ("HISTO_CREATEUR_ID"); - -- répartition éventuelle du reste - IF reste <> 0 THEN - IF r_fi > 0 THEN r_fi := r_fi + reste; - ELSIF r_fc > 0 THEN r_fc := r_fc + reste; - ELSE r_fa := r_fa + reste; END IF; - END IF; +-- TAUX_HORAIRE_HETD_HDFK_IDX +CREATE INDEX "TAUX_HORAIRE_HETD_HDFK_IDX" ON "TAUX_HORAIRE_HETD" ("HISTO_DESTRUCTEUR_ID"); -END; +-- TAUX_HORAIRE_HETD_HMFK_IDX +CREATE INDEX "TAUX_HORAIRE_HETD_HMFK_IDX" ON "TAUX_HORAIRE_HETD" ("HISTO_MODIFICATEUR_ID"); +-- TAUX_HORAIRE_HETD_PK +CREATE UNIQUE INDEX "TAUX_HORAIRE_HETD_PK" ON "TAUX_HORAIRE_HETD" ("ID"); -FUNCTION CALCUL_TAUX_FI( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT IS - ri FLOAT; - rc FLOAT; - ra FLOAT; -BEGIN - CALCUL_TAUX( eff_fi, eff_fc, eff_fa, fi, fc, fa, ri, rc, ra, arrondi ); - RETURN ri; -END; +-- TBL_AGREMENT_PK_IDX +CREATE UNIQUE INDEX "TBL_AGREMENT_PK_IDX" ON "TBL_AGREMENT" ("ID"); + +-- TBL_AGREMENT__UN_IDX +CREATE UNIQUE INDEX "TBL_AGREMENT__UN_IDX" ON "TBL_AGREMENT" ("TYPE_AGREMENT_ID", "INTERVENANT_ID", "STRUCTURE_ID", "TO_DELETE"); + +-- TBL_AGR_AGREMENT_FK_IDX +CREATE INDEX "TBL_AGR_AGREMENT_FK_IDX" ON "TBL_AGREMENT" ("AGREMENT_ID"); + +-- TBL_AGR_ANNEE_FK_IDX +CREATE INDEX "TBL_AGR_ANNEE_FK_IDX" ON "TBL_AGREMENT" ("ANNEE_ID"); + +-- TBL_AGR_INTERVENANT_FK_IDX +CREATE INDEX "TBL_AGR_INTERVENANT_FK_IDX" ON "TBL_AGREMENT" ("INTERVENANT_ID"); + +-- TBL_AGR_STRUCTURE_FK_IDX +CREATE INDEX "TBL_AGR_STRUCTURE_FK_IDX" ON "TBL_AGREMENT" ("STRUCTURE_ID"); -FUNCTION CALCUL_TAUX_FC( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT IS - ri FLOAT; - rc FLOAT; - ra FLOAT; -BEGIN - CALCUL_TAUX( eff_fi, eff_fc, eff_fa, fi, fc, fa, ri, rc, ra, arrondi ); - RETURN rc; -END; +-- TBL_AGR_TYPE_AGREMENT_FK_IDX +CREATE INDEX "TBL_AGR_TYPE_AGREMENT_FK_IDX" ON "TBL_AGREMENT" ("TYPE_AGREMENT_ID"); -FUNCTION CALCUL_TAUX_FA( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT IS - ri FLOAT; - rc FLOAT; - ra FLOAT; -BEGIN - CALCUL_TAUX( eff_fi, eff_fc, eff_fa, fi, fc, fa, ri, rc, ra, arrondi ); - RETURN ra; -END; +-- TBL_CHARGENS_PK +CREATE UNIQUE INDEX "TBL_CHARGENS_PK" ON "TBL_CHARGENS" ("ID"); -FUNCTION STRUCTURE_UNIV_GET_ID RETURN NUMERIC IS - res NUMERIC; -BEGIN - SELECT id INTO res FROM structure WHERE source_code = 'UNIV'; - RETURN res; -END; +-- TBL_CHARGENS_SEUILS_DEF_PK +CREATE UNIQUE INDEX "TBL_CHARGENS_SEUILS_DEF_PK" ON "TBL_CHARGENS_SEUILS_DEF" ("ID"); -PROCEDURE SYNC_LOG( msg CLOB ) IS -BEGIN - INSERT INTO SYNC_LOG( id, date_sync, message ) VALUES ( sync_log_id_seq.nextval, systimestamp, msg ); -END; +-- TBL_CHARGENS_SEUILS_DEF__UN +CREATE UNIQUE INDEX "TBL_CHARGENS_SEUILS_DEF__UN" ON "TBL_CHARGENS_SEUILS_DEF" ("SCENARIO_ID", "TYPE_INTERVENTION_ID", "STRUCTURE_ID", "GROUPE_TYPE_FORMATION_ID", "ANNEE_ID"); -FUNCTION FORMATTED_RIB (bic VARCHAR2, iban VARCHAR2) RETURN VARCHAR2 IS -BEGIN - if bic is null and iban is null then - return null; - end if; - RETURN regexp_replace(bic, '[[:space:]]+', '') || '-' || regexp_replace(iban, '[[:space:]]+', ''); -END; +-- TBL_CHARGENS__UN +CREATE UNIQUE INDEX "TBL_CHARGENS__UN" ON "TBL_CHARGENS" ("ANNEE_ID", "NOEUD_ID", "SCENARIO_ID", "TYPE_HEURES_ID", "TYPE_INTERVENTION_ID", "ELEMENT_PEDAGOGIQUE_ID", "ETAPE_ID", "ETAPE_ENS_ID", "STRUCTURE_ID", "GROUPE_TYPE_FORMATION_ID"); -FUNCTION FORMATTED_ADRESSE( - no_voie VARCHAR2, - nom_voie VARCHAR2, - batiment VARCHAR2, - mention_complementaire VARCHAR2, - localite VARCHAR2, - code_postal VARCHAR2, - ville VARCHAR2, - pays_libelle VARCHAR2) - RETURN VARCHAR2 -IS -BEGIN - return - -- concaténation des éléments non null séparés par ', ' - trim(trim(',' FROM REPLACE(', ' || NVL(no_voie,'#') || ', ' || NVL(nom_voie,'#') || ', ' || NVL(batiment,'#') || ', ' || NVL(mention_complementaire,'#'), ', #', ''))) || - -- saut de ligne complet - chr(13) || chr(10) || - -- concaténation des éléments non null séparés par ', ' - trim(trim(',' FROM REPLACE(', ' || NVL(localite,'#') || ', ' || NVL(code_postal,'#') || ', ' || NVL(ville,'#') || ', ' || NVL(pays_libelle,'#'), ', #', ''))); -END; +-- TBL_CLOTURE_REALISE_ANN_FK_IDX +CREATE INDEX "TBL_CLOTURE_REALISE_ANN_FK_IDX" ON "TBL_CLOTURE_REALISE" ("ANNEE_ID"); +-- TBL_CLOTURE_REALISE_PK_IDX +CREATE UNIQUE INDEX "TBL_CLOTURE_REALISE_PK_IDX" ON "TBL_CLOTURE_REALISE" ("ID"); +-- TBL_CLOTURE_REALISE__UN_IDX +CREATE UNIQUE INDEX "TBL_CLOTURE_REALISE__UN_IDX" ON "TBL_CLOTURE_REALISE" ("INTERVENANT_ID", "TO_DELETE"); -FUNCTION GET_TRIGGER_BODY( TRIGGER_NAME VARCHAR2 ) RETURN VARCHAR2 IS - vlong long; -BEGIN - SELECT trigger_body INTO vlong FROM all_triggers WHERE trigger_name = GET_TRIGGER_BODY.TRIGGER_NAME; +-- TBL_CONTRAT_ANNEE_FK_IDX +CREATE INDEX "TBL_CONTRAT_ANNEE_FK_IDX" ON "TBL_CONTRAT" ("ANNEE_ID"); - RETURN substr(vlong, 1, 32767); -END; +-- TBL_CONTRAT_INTERVENANT_FK_IDX +CREATE INDEX "TBL_CONTRAT_INTERVENANT_FK_IDX" ON "TBL_CONTRAT" ("INTERVENANT_ID"); -END OSE_DIVERS; -/ +-- TBL_CONTRAT_PK_IDX +CREATE UNIQUE INDEX "TBL_CONTRAT_PK_IDX" ON "TBL_CONTRAT" ("ID"); --- OSE_EVENT -CREATE OR REPLACE PACKAGE BODY "OSE_EVENT" AS +-- TBL_CONTRAT_STRUCTURE_FK_IDX +CREATE INDEX "TBL_CONTRAT_STRUCTURE_FK_IDX" ON "TBL_CONTRAT" ("STRUCTURE_ID"); - PROCEDURE ON_BEFORE_FORMULE_RES_DELETE( INTERVENANT_ID NUMERIC ) IS - BEGIN +-- TBL_CONTRAT__UN_IDX +CREATE UNIQUE INDEX "TBL_CONTRAT__UN_IDX" ON "TBL_CONTRAT" ("INTERVENANT_ID", "STRUCTURE_ID", "TO_DELETE"); - -- recherche des services à payer prêts à être supprimés pour cet intervenant et check - FOR sap IN ( - SELECT - frs.id - FROM - FORMULE_RESULTAT_SERVICE frs - JOIN FORMULE_RESULTAT fr ON fr.id = frs.formule_resultat_id AND fr.intervenant_id = ON_BEFORE_FORMULE_RES_DELETE.intervenant_id - JOIN TYPE_VOLUME_HORAIRE tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code = 'REALISE' - JOIN ETAT_VOLUME_HORAIRE evh ON evh.id = fr.etat_volume_horaire_id AND evh.code = 'valide' - WHERE - frs.TO_DELETE = 1 - ) - LOOP - OSE_PAIEMENT.CHECK_BAD_PAIEMENTS( sap.id ); - END LOOP; +-- TBL_CSD_ANNEE_IDX +CREATE INDEX "TBL_CSD_ANNEE_IDX" ON "TBL_CHARGENS_SEUILS_DEF" ("ANNEE_ID"); - FOR sap IN ( - SELECT - frs.id - FROM - FORMULE_RESULTAT_SERVICE_REF frs - JOIN FORMULE_RESULTAT fr ON fr.id = frs.formule_resultat_id AND fr.intervenant_id = ON_BEFORE_FORMULE_RES_DELETE.intervenant_id - JOIN TYPE_VOLUME_HORAIRE tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code = 'REALISE' - JOIN ETAT_VOLUME_HORAIRE evh ON evh.id = fr.etat_volume_horaire_id AND evh.code = 'valide' - WHERE - frs.TO_DELETE = 1 - ) - LOOP - OSE_PAIEMENT.CHECK_BAD_PAIEMENTS( null, sap.id ); - END LOOP; +-- TBL_CSD_GTF_IDX +CREATE INDEX "TBL_CSD_GTF_IDX" ON "TBL_CHARGENS_SEUILS_DEF" ("GROUPE_TYPE_FORMATION_ID"); - DELETE FROM MISE_EN_PAIEMENT WHERE histo_destruction IS NOT NULL AND - formule_res_service_id IN ( - SELECT frs.id - FROM - formule_resultat_service frs - JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id - WHERE - frs.to_delete = 1 - AND fr.intervenant_id = ON_BEFORE_FORMULE_RES_DELETE.INTERVENANT_ID - ); +-- TBL_CSD_SCENARIO_IDX +CREATE INDEX "TBL_CSD_SCENARIO_IDX" ON "TBL_CHARGENS_SEUILS_DEF" ("SCENARIO_ID"); - DELETE FROM MISE_EN_PAIEMENT WHERE histo_destruction IS NOT NULL AND - formule_res_service_ref_id IN ( - SELECT frsr.id - FROM - formule_resultat_service_ref frsr - JOIN formule_resultat fr ON fr.id = frsr.formule_resultat_id - WHERE - frsr.to_delete = 1 - AND fr.intervenant_id = ON_BEFORE_FORMULE_RES_DELETE.INTERVENANT_ID - ); - END; +-- TBL_CSD_STRUCTURE_IDX +CREATE INDEX "TBL_CSD_STRUCTURE_IDX" ON "TBL_CHARGENS_SEUILS_DEF" ("STRUCTURE_ID"); +-- TBL_CSD_TYPE_INTERVENTION_IDX +CREATE INDEX "TBL_CSD_TYPE_INTERVENTION_IDX" ON "TBL_CHARGENS_SEUILS_DEF" ("TYPE_INTERVENTION_ID"); +-- TBL_DEMS_TBL_NAME_IDX +CREATE INDEX "TBL_DEMS_TBL_NAME_IDX" ON "TBL_DEMS" ("TBL_NAME"); - PROCEDURE ON_AFTER_FORMULE_CALC( INTERVENANT_ID NUMERIC ) IS - p unicaen_tbl.t_params; - BEGIN - p := UNICAEN_TBL.make_params('INTERVENANT_ID', ON_AFTER_FORMULE_CALC.intervenant_id); +-- TBL_DMEP_LIQUIDATION_PK_IDX +CREATE UNIQUE INDEX "TBL_DMEP_LIQUIDATION_PK_IDX" ON "TBL_DMEP_LIQUIDATION" ("ID"); - UNICAEN_TBL.CALCULER( 'agrement', p ); - UNICAEN_TBL.CALCULER( 'paiement', p ); - UNICAEN_TBL.CALCULER( 'workflow', p ); - END; +-- TBL_DMEP_LIQUIDATION__UN_IDX +CREATE UNIQUE INDEX "TBL_DMEP_LIQUIDATION__UN_IDX" ON "TBL_DMEP_LIQUIDATION" ("ANNEE_ID", "TYPE_RESSOURCE_ID", "STRUCTURE_ID", "TO_DELETE"); -END OSE_EVENT; -/ +-- TBL_DMLIQ_ANNEE_FK_IDX +CREATE INDEX "TBL_DMLIQ_ANNEE_FK_IDX" ON "TBL_DMEP_LIQUIDATION" ("ANNEE_ID"); --- OSE_FORMULE -CREATE OR REPLACE PACKAGE BODY "OSE_FORMULE" AS +-- TBL_DMLIQ_STRUCTURE_FK_IDX +CREATE INDEX "TBL_DMLIQ_STRUCTURE_FK_IDX" ON "TBL_DMEP_LIQUIDATION" ("STRUCTURE_ID"); - v_date_obs DATE; - debug_level NUMERIC DEFAULT 0; - d_all_volume_horaire_ref t_lst_volume_horaire_ref; - d_all_volume_horaire t_lst_volume_horaire; - arrondi NUMERIC DEFAULT 2; +-- TBL_DMLIQ_TYPE_RESSOUR_FK +CREATE INDEX "TBL_DMLIQ_TYPE_RESSOUR_FK" ON "TBL_DMEP_LIQUIDATION" ("TYPE_RESSOURCE_ID"); - INTERVENANT_ID NUMERIC DEFAULT NULL; +-- TBL_DOSSIER_ANNEE_FK_IDX +CREATE INDEX "TBL_DOSSIER_ANNEE_FK_IDX" ON "TBL_DOSSIER" ("ANNEE_ID"); - FUNCTION GET_INTERVENANT_ID RETURN NUMERIC IS - BEGIN - RETURN INTERVENANT_ID; - END; +-- TBL_DOSSIER_DOSSIER_FK_IDX +CREATE INDEX "TBL_DOSSIER_DOSSIER_FK_IDX" ON "TBL_DOSSIER" ("DOSSIER_ID"); - FUNCTION GET_DATE_OBS RETURN DATE AS - BEGIN - RETURN COALESCE( v_date_obs, SYSDATE ); - END; +-- TBL_DOSSIER_PK_IDX +CREATE UNIQUE INDEX "TBL_DOSSIER_PK_IDX" ON "TBL_DOSSIER" ("ID"); - FUNCTION SET_DATE_OBS( DATE_OBS DATE DEFAULT NULL ) RETURN DATE IS - BEGIN - v_date_obs := DATE_OBS; - RETURN v_date_obs; - END; +-- TBL_DOSSIER_VALIDATION_FK_IDX +CREATE INDEX "TBL_DOSSIER_VALIDATION_FK_IDX" ON "TBL_DOSSIER" ("VALIDATION_ID"); - PROCEDURE SET_DEBUG_LEVEL( DEBUG_LEVEL NUMERIC ) IS - BEGIN - ose_formule.debug_level := SET_DEBUG_LEVEL.DEBUG_LEVEL; - END; +-- TBL_DOSSIER__UN_IDX +CREATE UNIQUE INDEX "TBL_DOSSIER__UN_IDX" ON "TBL_DOSSIER" ("INTERVENANT_ID", "TO_DELETE"); - FUNCTION GET_DEBUG_LEVEL RETURN NUMERIC IS - BEGIN - RETURN ose_formule.debug_level; - END; +-- TBL_LIEN_ACTIF_IDX +CREATE INDEX "TBL_LIEN_ACTIF_IDX" ON "TBL_LIEN" ("ACTIF"); - FUNCTION GET_TAUX_HORAIRE_HETD( DATE_OBS DATE DEFAULT NULL ) RETURN FLOAT IS - taux_hetd FLOAT; - BEGIN - SELECT valeur INTO taux_hetd - FROM taux_horaire_hetd t - WHERE - DATE_OBS BETWEEN t.histo_creation AND COALESCE(t.histo_destruction,GREATEST(SYSDATE,DATE_OBS)) - AND rownum = 1 - ORDER BY - histo_creation DESC; - RETURN taux_hetd; - END; +-- TBL_LIEN_LIEN_IDX +CREATE INDEX "TBL_LIEN_LIEN_IDX" ON "TBL_LIEN" ("LIEN_ID"); - PROCEDURE UPDATE_ANNEE_TAUX_HETD IS - BEGIN - UPDATE annee SET taux_hetd = GET_TAUX_HORAIRE_HETD(date_fin); - END; +-- TBL_LIEN_NOEUD_INF_IDX +CREATE INDEX "TBL_LIEN_NOEUD_INF_IDX" ON "TBL_LIEN" ("NOEUD_INF_ID"); +-- TBL_LIEN_NOEUD_SUP_IDX +CREATE INDEX "TBL_LIEN_NOEUD_SUP_IDX" ON "TBL_LIEN" ("NOEUD_SUP_ID"); +-- TBL_LIEN_PK +CREATE UNIQUE INDEX "TBL_LIEN_PK" ON "TBL_LIEN" ("ID"); - PROCEDURE CALCULER_TOUT( ANNEE_ID NUMERIC DEFAULT NULL ) IS - a_id NUMERIC; - BEGIN - a_id := NVL(CALCULER_TOUT.ANNEE_ID, OSE_PARAMETRE.GET_ANNEE); - FOR mp IN ( - SELECT DISTINCT - intervenant_id - FROM - service s - JOIN intervenant i ON i.id = s.intervenant_id - WHERE - s.histo_destruction IS NULL - AND i.annee_id = a_id +-- TBL_LIEN_SCENARIO_IDX +CREATE INDEX "TBL_LIEN_SCENARIO_IDX" ON "TBL_LIEN" ("SCENARIO_ID"); - UNION +-- TBL_LIEN_SCENARIO_LIEN_IDX +CREATE INDEX "TBL_LIEN_SCENARIO_LIEN_IDX" ON "TBL_LIEN" ("SCENARIO_LIEN_ID"); - SELECT DISTINCT - intervenant_id - FROM - service_referentiel sr - JOIN intervenant i ON i.id = sr.intervenant_id - WHERE - sr.histo_destruction IS NULL - AND i.annee_id = a_id +-- TBL_LIEN_STRUCTURE_IDX +CREATE INDEX "TBL_LIEN_STRUCTURE_IDX" ON "TBL_LIEN" ("STRUCTURE_ID"); - ) - LOOP - CALCULER( mp.intervenant_id ); - END LOOP; - END; +-- TBL_PAIEMENT_ANNEE_FK_IDX +CREATE INDEX "TBL_PAIEMENT_ANNEE_FK_IDX" ON "TBL_PAIEMENT" ("ANNEE_ID"); +-- TBL_PAIEMENT_FRSR_FK_IDX +CREATE INDEX "TBL_PAIEMENT_FRSR_FK_IDX" ON "TBL_PAIEMENT" ("FORMULE_RES_SERVICE_REF_ID"); +-- TBL_PAIEMENT_FRS_FK_IDX +CREATE INDEX "TBL_PAIEMENT_FRS_FK_IDX" ON "TBL_PAIEMENT" ("FORMULE_RES_SERVICE_ID"); - FUNCTION ENREGISTRER_RESULTAT( fr formule_resultat%rowtype ) RETURN NUMERIC IS - id NUMERIC; - ti_code VARCHAR(5); - BEGIN +-- TBL_PAIEMENT_INTERV_FK_IDX +CREATE INDEX "TBL_PAIEMENT_INTERV_FK_IDX" ON "TBL_PAIEMENT" ("INTERVENANT_ID"); - SELECT - ti.code INTO ti_code - FROM - type_intervenant ti - JOIN statut_intervenant si ON si.type_intervenant_id = ti.id - JOIN intervenant i ON i.statut_id = si.id - WHERE - i.id = fr.intervenant_id; +-- TBL_PAIEMENT_MEP_FK_IDX +CREATE INDEX "TBL_PAIEMENT_MEP_FK_IDX" ON "TBL_PAIEMENT" ("MISE_EN_PAIEMENT_ID"); +-- TBL_PAIEMENT_PERIODE_FK_IDX +CREATE INDEX "TBL_PAIEMENT_PERIODE_FK_IDX" ON "TBL_PAIEMENT" ("PERIODE_PAIEMENT_ID"); +-- TBL_PAIEMENT_PK_IDX +CREATE UNIQUE INDEX "TBL_PAIEMENT_PK_IDX" ON "TBL_PAIEMENT" ("ID"); - MERGE INTO formule_resultat tfr USING dual ON ( +-- TBL_PAIEMENT_STRUCTURE_FK_IDX +CREATE INDEX "TBL_PAIEMENT_STRUCTURE_FK_IDX" ON "TBL_PAIEMENT" ("STRUCTURE_ID"); - tfr.intervenant_id = fr.intervenant_id - AND tfr.type_volume_horaire_id = fr.type_volume_horaire_id - AND tfr.etat_volume_horaire_id = fr.etat_volume_horaire_id +-- TBL_PAIEMENT__UN +CREATE UNIQUE INDEX "TBL_PAIEMENT__UN" ON "TBL_PAIEMENT" ("INTERVENANT_ID", "TO_DELETE", "MISE_EN_PAIEMENT_ID", "FORMULE_RES_SERVICE_ID", "FORMULE_RES_SERVICE_REF_ID"); - ) WHEN MATCHED THEN UPDATE SET +-- TBL_PIECE_JOINTE_ANNEE_FK_IDX +CREATE INDEX "TBL_PIECE_JOINTE_ANNEE_FK_IDX" ON "TBL_PIECE_JOINTE" ("ANNEE_ID"); - service_du = ROUND( fr.service_du, arrondi ), - service_fi = ROUND( fr.service_fi, arrondi ), - service_fa = ROUND( fr.service_fa, arrondi ), - service_fc = ROUND( fr.service_fc, arrondi ), - service_referentiel = ROUND( fr.service_referentiel, arrondi ), - heures_compl_fi = ROUND( fr.heures_compl_fi, arrondi ), - heures_compl_fa = ROUND( fr.heures_compl_fa, arrondi ), - heures_compl_fc = ROUND( fr.heures_compl_fc, arrondi ), - heures_compl_fc_majorees = ROUND( fr.heures_compl_fc_majorees, arrondi ), - heures_compl_referentiel = ROUND( fr.heures_compl_referentiel, arrondi ), - total = ROUND( fr.total, arrondi ), - solde = ROUND( fr.solde, arrondi ), - sous_service = ROUND( fr.sous_service, arrondi ), - heures_compl = ROUND( fr.heures_compl, arrondi ), - to_delete = 0 +-- TBL_PIECE_JOINTE_PK_IDX +CREATE UNIQUE INDEX "TBL_PIECE_JOINTE_PK_IDX" ON "TBL_PIECE_JOINTE" ("ID"); - WHEN NOT MATCHED THEN INSERT ( +-- TBL_PIECE_JOINTE__UN_IDX +CREATE UNIQUE INDEX "TBL_PIECE_JOINTE__UN_IDX" ON "TBL_PIECE_JOINTE" ("TYPE_PIECE_JOINTE_ID", "INTERVENANT_ID", "TO_DELETE"); - ID, - INTERVENANT_ID, - TYPE_VOLUME_HORAIRE_ID, - ETAT_VOLUME_HORAIRE_ID, - SERVICE_DU, - SERVICE_FI, - SERVICE_FA, - SERVICE_FC, - SERVICE_REFERENTIEL, - HEURES_COMPL_FI, - HEURES_COMPL_FA, - HEURES_COMPL_FC, - HEURES_COMPL_FC_majorees, - HEURES_COMPL_REFERENTIEL, - TOTAL, - SOLDE, - SOUS_SERVICE, - HEURES_COMPL, - TO_DELETE, - type_intervenant_code +-- TBL_PJD_ANNEE_FK_IDX +CREATE INDEX "TBL_PJD_ANNEE_FK_IDX" ON "TBL_PIECE_JOINTE_DEMANDE" ("ANNEE_ID"); - ) VALUES ( +-- TBL_PJD_INTERVENANT_FK_IDX +CREATE INDEX "TBL_PJD_INTERVENANT_FK_IDX" ON "TBL_PIECE_JOINTE_DEMANDE" ("INTERVENANT_ID"); - FORMULE_RESULTAT_ID_SEQ.NEXTVAL, - fr.intervenant_id, - fr.type_volume_horaire_id, - fr.etat_volume_horaire_id, - ROUND( fr.service_du, arrondi ), - ROUND( fr.service_fi, arrondi ), - ROUND( fr.service_fa, arrondi ), - ROUND( fr.service_fc, arrondi ), - ROUND( fr.service_referentiel, arrondi ), - ROUND( fr.heures_compl_fi, arrondi ), - ROUND( fr.heures_compl_fa, arrondi ), - ROUND( fr.heures_compl_fc, arrondi ), - ROUND( fr.heures_compl_fc_majorees, arrondi ), - ROUND( fr.heures_compl_referentiel, arrondi ), - ROUND( fr.total, arrondi ), - ROUND( fr.solde, arrondi ), - ROUND( fr.sous_service, arrondi ), - ROUND( fr.heures_compl, arrondi ), - 0, - ti_code - ); +-- TBL_PJD_PK_IDX +CREATE UNIQUE INDEX "TBL_PJD_PK_IDX" ON "TBL_PIECE_JOINTE_DEMANDE" ("ID"); + +-- TBL_PJD_TPJ_FK_IDX +CREATE INDEX "TBL_PJD_TPJ_FK_IDX" ON "TBL_PIECE_JOINTE_DEMANDE" ("TYPE_PIECE_JOINTE_ID"); + +-- TBL_PJD_UN_IDX +CREATE UNIQUE INDEX "TBL_PJD_UN_IDX" ON "TBL_PIECE_JOINTE_DEMANDE" ("TYPE_PIECE_JOINTE_ID", "INTERVENANT_ID", "TO_DELETE"); + +-- TBL_PJF_ANNEE_FK_IDX +CREATE INDEX "TBL_PJF_ANNEE_FK_IDX" ON "TBL_PIECE_JOINTE_FOURNIE" ("ANNEE_ID"); + +-- TBL_PJF_FICHIER_FK_IDX +CREATE INDEX "TBL_PJF_FICHIER_FK_IDX" ON "TBL_PIECE_JOINTE_FOURNIE" ("FICHIER_ID"); + +-- TBL_PJF_INTERVENANT_FK_IDX +CREATE INDEX "TBL_PJF_INTERVENANT_FK_IDX" ON "TBL_PIECE_JOINTE_FOURNIE" ("INTERVENANT_ID"); + +-- TBL_PJF_PIECE_JOINTE_FK_IDX +CREATE INDEX "TBL_PJF_PIECE_JOINTE_FK_IDX" ON "TBL_PIECE_JOINTE_FOURNIE" ("PIECE_JOINTE_ID"); - SELECT id INTO id FROM formule_resultat tfr WHERE - tfr.intervenant_id = fr.intervenant_id - AND tfr.type_volume_horaire_id = fr.type_volume_horaire_id - AND tfr.etat_volume_horaire_id = fr.etat_volume_horaire_id; - RETURN id; - END; +-- TBL_PJF_PK_IDX +CREATE UNIQUE INDEX "TBL_PJF_PK_IDX" ON "TBL_PIECE_JOINTE_FOURNIE" ("ID"); +-- TBL_PJF_TPJ_FK_IDX +CREATE INDEX "TBL_PJF_TPJ_FK_IDX" ON "TBL_PIECE_JOINTE_FOURNIE" ("TYPE_PIECE_JOINTE_ID"); - FUNCTION ENREGISTRER_RESULTAT_SERVICE( fs formule_resultat_service%rowtype ) RETURN NUMERIC IS - id NUMERIC; - BEGIN - MERGE INTO formule_resultat_service tfs USING dual ON ( +-- TBL_PJF_UN_IDX +CREATE UNIQUE INDEX "TBL_PJF_UN_IDX" ON "TBL_PIECE_JOINTE_FOURNIE" ("TYPE_PIECE_JOINTE_ID", "INTERVENANT_ID", "VALIDATION_ID", "FICHIER_ID"); - tfs.formule_resultat_id = fs.formule_resultat_id - AND tfs.service_id = fs.service_id +-- TBL_PJF_VALIDATION_FK_IDX +CREATE INDEX "TBL_PJF_VALIDATION_FK_IDX" ON "TBL_PIECE_JOINTE_FOURNIE" ("VALIDATION_ID"); - ) WHEN MATCHED THEN UPDATE SET +-- TBL_PJ_INTERVENANT_FK_IDX +CREATE INDEX "TBL_PJ_INTERVENANT_FK_IDX" ON "TBL_PIECE_JOINTE" ("INTERVENANT_ID"); - service_fi = ROUND( fs.service_fi, arrondi ), - service_fa = ROUND( fs.service_fa, arrondi ), - service_fc = ROUND( fs.service_fc, arrondi ), - heures_compl_fi = ROUND( fs.heures_compl_fi, arrondi ), - heures_compl_fa = ROUND( fs.heures_compl_fa, arrondi ), - heures_compl_fc = ROUND( fs.heures_compl_fc, arrondi ), - heures_compl_fc_majorees = ROUND( fs.heures_compl_fc_majorees, arrondi ), - total = ROUND( fs.total, arrondi ), - TO_DELETE = 0 +-- TBL_PJ_TPJ_FK_IDX +CREATE INDEX "TBL_PJ_TPJ_FK_IDX" ON "TBL_PIECE_JOINTE" ("TYPE_PIECE_JOINTE_ID"); - WHEN NOT MATCHED THEN INSERT ( +-- TBL_PK +CREATE UNIQUE INDEX "TBL_PK" ON "TBL" ("TBL_NAME"); - ID, - FORMULE_RESULTAT_ID, - SERVICE_ID, - SERVICE_FI, - SERVICE_FA, - SERVICE_FC, - HEURES_COMPL_FI, - HEURES_COMPL_FA, - HEURES_COMPL_FC, - HEURES_COMPL_FC_majorees, - TOTAL, - TO_DELETE +-- TBL_SERVICE_ANNEE_FK_IDX +CREATE INDEX "TBL_SERVICE_ANNEE_FK_IDX" ON "TBL_SERVICE" ("ANNEE_ID"); - ) VALUES ( +-- TBL_SERVICE_ELEMENT_FK_IDX +CREATE INDEX "TBL_SERVICE_ELEMENT_FK_IDX" ON "TBL_SERVICE" ("ELEMENT_PEDAGOGIQUE_ID"); - FORMULE_RESULTAT_SERVIC_ID_SEQ.NEXTVAL, - fs.formule_resultat_id, - fs.service_id, - ROUND( fs.service_fi, arrondi ), - ROUND( fs.service_fa, arrondi ), - ROUND( fs.service_fc, arrondi ), - ROUND( fs.heures_compl_fi, arrondi ), - ROUND( fs.heures_compl_fa, arrondi ), - ROUND( fs.heures_compl_fc, arrondi ), - ROUND( fs.heures_compl_fc_majorees, arrondi ), - ROUND( fs.total, arrondi ), - 0 +-- TBL_SERVICE_ETAPE_FK_IDX +CREATE INDEX "TBL_SERVICE_ETAPE_FK_IDX" ON "TBL_SERVICE" ("ETAPE_ID"); - ); +-- TBL_SERVICE_INTERVENANT_FK_IDX +CREATE INDEX "TBL_SERVICE_INTERVENANT_FK_IDX" ON "TBL_SERVICE" ("INTERVENANT_ID"); - SELECT id INTO id FROM formule_resultat_service tfs WHERE - tfs.formule_resultat_id = fs.formule_resultat_id - AND tfs.service_id = fs.service_id; - RETURN id; - END; +-- TBL_SERVICE_PERIODE_EP_FK_IDX +CREATE INDEX "TBL_SERVICE_PERIODE_EP_FK_IDX" ON "TBL_SERVICE" ("ELEMENT_PEDAGOGIQUE_PERIODE_ID"); +-- TBL_SERVICE_PK_IDX +CREATE UNIQUE INDEX "TBL_SERVICE_PK_IDX" ON "TBL_SERVICE" ("ID"); - FUNCTION ENREGISTRER_RESULTAT_VH( fvh formule_resultat_vh%rowtype ) RETURN NUMERIC IS - id NUMERIC; - BEGIN - MERGE INTO formule_resultat_vh tfvh USING dual ON ( +-- TBL_SERVICE_REFERENTIEL_PK_IDX +CREATE UNIQUE INDEX "TBL_SERVICE_REFERENTIEL_PK_IDX" ON "TBL_SERVICE_REFERENTIEL" ("ID"); - tfvh.formule_resultat_id = fvh.formule_resultat_id - AND tfvh.volume_horaire_id = fvh.volume_horaire_id +-- TBL_SERVICE_REFERENTIEL_UN_IDX +CREATE UNIQUE INDEX "TBL_SERVICE_REFERENTIEL_UN_IDX" ON "TBL_SERVICE_REFERENTIEL" ("INTERVENANT_ID", "TYPE_VOLUME_HORAIRE_ID", "STRUCTURE_ID", "TO_DELETE"); - ) WHEN MATCHED THEN UPDATE SET +-- TBL_SERVICE_REF_ANNEE_FK_IDX +CREATE INDEX "TBL_SERVICE_REF_ANNEE_FK_IDX" ON "TBL_SERVICE_REFERENTIEL" ("ANNEE_ID"); - service_fi = ROUND( fvh.service_fi, arrondi ), - service_fa = ROUND( fvh.service_fa, arrondi ), - service_fc = ROUND( fvh.service_fc, arrondi ), - heures_compl_fi = ROUND( fvh.heures_compl_fi, arrondi ), - heures_compl_fa = ROUND( fvh.heures_compl_fa, arrondi ), - heures_compl_fc = ROUND( fvh.heures_compl_fc, arrondi ), - heures_compl_fc_majorees = ROUND( fvh.heures_compl_fc_majorees, arrondi ), - total = ROUND( fvh.total, arrondi ), - TO_DELETE = 0 +-- TBL_SERVICE_REF_INTERVENANT_FK +CREATE INDEX "TBL_SERVICE_REF_INTERVENANT_FK" ON "TBL_SERVICE_REFERENTIEL" ("INTERVENANT_ID"); - WHEN NOT MATCHED THEN INSERT ( +-- TBL_SERVICE_REF_STRUCTU_FK_IDX +CREATE INDEX "TBL_SERVICE_REF_STRUCTU_FK_IDX" ON "TBL_SERVICE_REFERENTIEL" ("STRUCTURE_ID"); - ID, - FORMULE_RESULTAT_ID, - VOLUME_HORAIRE_ID, - SERVICE_FI, - SERVICE_FA, - SERVICE_FC, - HEURES_COMPL_FI, - HEURES_COMPL_FA, - HEURES_COMPL_FC, - HEURES_COMPL_FC_MAJOREES, - TOTAL, - TO_DELETE +-- TBL_SERVICE_REF_TVH_FK_IDX +CREATE INDEX "TBL_SERVICE_REF_TVH_FK_IDX" ON "TBL_SERVICE_REFERENTIEL" ("TYPE_VOLUME_HORAIRE_ID"); - ) VALUES ( +-- TBL_SERVICE_SAISIE_ANNEE_FK +CREATE INDEX "TBL_SERVICE_SAISIE_ANNEE_FK" ON "TBL_SERVICE_SAISIE" ("ANNEE_ID"); - FORMULE_RESULTAT_VH_ID_SEQ.NEXTVAL, - fvh.formule_resultat_id, - fvh.volume_horaire_id, - ROUND( fvh.service_fi, arrondi ), - ROUND( fvh.service_fa, arrondi ), - ROUND( fvh.service_fc, arrondi ), - ROUND( fvh.heures_compl_fi, arrondi ), - ROUND( fvh.heures_compl_fa, arrondi ), - ROUND( fvh.heures_compl_fc, arrondi ), - ROUND( fvh.heures_compl_fc_majorees, arrondi ), - ROUND( fvh.total, arrondi ), - 0 +-- TBL_SERVICE_SAISIE_PK_IDX +CREATE UNIQUE INDEX "TBL_SERVICE_SAISIE_PK_IDX" ON "TBL_SERVICE_SAISIE" ("ID"); - ); +-- TBL_SERVICE_SAISIE_UN_IDX +CREATE UNIQUE INDEX "TBL_SERVICE_SAISIE_UN_IDX" ON "TBL_SERVICE_SAISIE" ("INTERVENANT_ID", "TO_DELETE"); - SELECT id INTO id FROM formule_resultat_vh tfvh WHERE - tfvh.formule_resultat_id = fvh.formule_resultat_id - AND tfvh.volume_horaire_id = fvh.volume_horaire_id; - RETURN id; - END; +-- TBL_SERVICE_SERVICE_FK_IDX +CREATE INDEX "TBL_SERVICE_SERVICE_FK_IDX" ON "TBL_SERVICE" ("SERVICE_ID"); +-- TBL_SERVICE_STRUCTURE_FKV1_IDX +CREATE INDEX "TBL_SERVICE_STRUCTURE_FKV1_IDX" ON "TBL_SERVICE" ("INTERVENANT_STRUCTURE_ID"); - FUNCTION ENREGISTRER_RESULTAT_SERV_REF( fr formule_resultat_service_ref%rowtype ) RETURN NUMERIC IS - id NUMERIC; - BEGIN - MERGE INTO formule_resultat_service_ref tfr USING dual ON ( +-- TBL_SERVICE_STRUCTURE_FK_IDX +CREATE INDEX "TBL_SERVICE_STRUCTURE_FK_IDX" ON "TBL_SERVICE" ("STRUCTURE_ID"); - tfr.formule_resultat_id = fr.formule_resultat_id - AND tfr.service_referentiel_id = fr.service_referentiel_id +-- TBL_SERVICE_TINTERV_FK_IDX +CREATE INDEX "TBL_SERVICE_TINTERV_FK_IDX" ON "TBL_SERVICE" ("TYPE_INTERVENANT_ID"); - ) WHEN MATCHED THEN UPDATE SET +-- TBL_SERVICE_TVH_FK_IDX +CREATE INDEX "TBL_SERVICE_TVH_FK_IDX" ON "TBL_SERVICE" ("TYPE_VOLUME_HORAIRE_ID"); - service_referentiel = ROUND( fr.service_referentiel, arrondi ), - heures_compl_referentiel = ROUND( fr.heures_compl_referentiel, arrondi ), - TO_DELETE = 0 +-- TBL_SERVICE_TVH_IDX_IDX +CREATE INDEX "TBL_SERVICE_TVH_IDX_IDX" ON "TBL_SERVICE" ("TYPE_VOLUME_HORAIRE_CODE"); - WHEN NOT MATCHED THEN INSERT ( +-- TBL_SERVICE_TYPE_INT_IDX +CREATE INDEX "TBL_SERVICE_TYPE_INT_IDX" ON "TBL_SERVICE" ("TYPE_INTERVENANT_CODE"); - ID, - FORMULE_RESULTAT_ID, - SERVICE_REFERENTIEL_ID, - SERVICE_REFERENTIEL, - HEURES_COMPL_REFERENTIEL, - TOTAL, - TO_DELETE +-- TBL_SERVICE__UN_IDX +CREATE UNIQUE INDEX "TBL_SERVICE__UN_IDX" ON "TBL_SERVICE" ("SERVICE_ID", "TYPE_VOLUME_HORAIRE_ID", "TO_DELETE"); - ) VALUES ( +-- TBL_VALIDATION_ENSEIGNEMENT_PK +CREATE UNIQUE INDEX "TBL_VALIDATION_ENSEIGNEMENT_PK" ON "TBL_VALIDATION_ENSEIGNEMENT" ("ID"); - FORMULE_RESULTAT_SERVIC_ID_SEQ.NEXTVAL, - fr.formule_resultat_id, - fr.service_referentiel_id, - ROUND( fr.service_referentiel, arrondi ), - ROUND( fr.heures_compl_referentiel, arrondi ), - fr.total, - 0 +-- TBL_VALIDATION_ENSEIGNEMENT_UN +CREATE UNIQUE INDEX "TBL_VALIDATION_ENSEIGNEMENT_UN" ON "TBL_VALIDATION_ENSEIGNEMENT" ("INTERVENANT_ID", "STRUCTURE_ID", "TYPE_VOLUME_HORAIRE_ID", "SERVICE_ID", "VOLUME_HORAIRE_ID", "VALIDATION_ID", "TO_DELETE"); - ); +-- TBL_VALIDATION_REFERENTIEL_PK +CREATE UNIQUE INDEX "TBL_VALIDATION_REFERENTIEL_PK" ON "TBL_VALIDATION_REFERENTIEL" ("ID"); - SELECT id INTO id FROM formule_resultat_service_ref tfr WHERE - tfr.formule_resultat_id = fr.formule_resultat_id - AND tfr.service_referentiel_id = fr.service_referentiel_id; +-- TBL_VALIDATION_REFERENTIEL__UN +CREATE UNIQUE INDEX "TBL_VALIDATION_REFERENTIEL__UN" ON "TBL_VALIDATION_REFERENTIEL" ("INTERVENANT_ID", "STRUCTURE_ID", "TYPE_VOLUME_HORAIRE_ID", "SERVICE_REFERENTIEL_ID", "VOLUME_HORAIRE_REF_ID", "VALIDATION_ID", "TO_DELETE"); - RETURN id; - END; +-- TBL_WORKFLOW_ANNEE_FK_IDX +CREATE INDEX "TBL_WORKFLOW_ANNEE_FK_IDX" ON "TBL_WORKFLOW" ("ANNEE_ID"); +-- TBL_WORKFLOW_EFK_IDX +CREATE INDEX "TBL_WORKFLOW_EFK_IDX" ON "TBL_WORKFLOW" ("ETAPE_ID"); - FUNCTION ENREGISTRER_RESULTAT_VH_REF( fvh formule_resultat_vh_ref%rowtype ) RETURN NUMERIC IS - id NUMERIC; - BEGIN - MERGE INTO formule_resultat_vh_ref tfvh USING dual ON ( +-- TBL_WORKFLOW_ETAPE_IDX +CREATE INDEX "TBL_WORKFLOW_ETAPE_IDX" ON "TBL_WORKFLOW" ("ETAPE_CODE"); - tfvh.formule_resultat_id = fvh.formule_resultat_id - AND tfvh.volume_horaire_ref_id = fvh.volume_horaire_ref_id +-- TBL_WORKFLOW_IFK_IDX +CREATE INDEX "TBL_WORKFLOW_IFK_IDX" ON "TBL_WORKFLOW" ("INTERVENANT_ID"); - ) WHEN MATCHED THEN UPDATE SET +-- TBL_WORKFLOW_PK_IDX +CREATE UNIQUE INDEX "TBL_WORKFLOW_PK_IDX" ON "TBL_WORKFLOW" ("ID"); - service_referentiel = ROUND( fvh.service_referentiel, arrondi ), - heures_compl_referentiel = ROUND( fvh.heures_compl_referentiel, arrondi ), - total = fvh.total, - TO_DELETE = 0 +-- TBL_WORKFLOW_SFK_IDX +CREATE INDEX "TBL_WORKFLOW_SFK_IDX" ON "TBL_WORKFLOW" ("STRUCTURE_ID"); - WHEN NOT MATCHED THEN INSERT ( +-- TBL_WORKFLOW_TINTERV_FK_IDX +CREATE INDEX "TBL_WORKFLOW_TINTERV_FK_IDX" ON "TBL_WORKFLOW" ("TYPE_INTERVENANT_ID"); - ID, - FORMULE_RESULTAT_ID, - VOLUME_HORAIRE_REF_ID, - SERVICE_REFERENTIEL, - HEURES_COMPL_REFERENTIEL, - TOTAL, - TO_DELETE +-- TBL_WORKFLOW_TYPE_INT_IDX +CREATE INDEX "TBL_WORKFLOW_TYPE_INT_IDX" ON "TBL_WORKFLOW" ("TYPE_INTERVENANT_CODE"); - ) VALUES ( +-- TD_TYPE_RESSOURCE_FK_IDX +CREATE INDEX "TD_TYPE_RESSOURCE_FK_IDX" ON "TYPE_DOTATION" ("TYPE_RESSOURCE_ID"); - FORMULE_RESULTAT_VH_ID_SEQ.NEXTVAL, - fvh.formule_resultat_id, - fvh.volume_horaire_ref_id, - ROUND( fvh.service_referentiel, arrondi ), - ROUND( fvh.heures_compl_referentiel, arrondi ), - fvh.total, - 0 +-- TEST_BUFFER_PK +CREATE UNIQUE INDEX "TEST_BUFFER_PK" ON "TEST_BUFFER" ("ID"); - ); +-- TIEP_EP_FK_IDX +CREATE INDEX "TIEP_EP_FK_IDX" ON "TYPE_INTERVENTION_EP" ("ELEMENT_PEDAGOGIQUE_ID"); - SELECT id INTO id FROM formule_resultat_vh_ref tfvh WHERE - tfvh.formule_resultat_id = fvh.formule_resultat_id - AND tfvh.volume_horaire_ref_id = fvh.volume_horaire_ref_id; - RETURN id; - END; +-- TIEP_SOURCE_FK_IDX +CREATE INDEX "TIEP_SOURCE_FK_IDX" ON "TYPE_INTERVENTION_EP" ("SOURCE_ID"); +-- TIEP_TYPE_INTERVENTION_FK_IDX +CREATE INDEX "TIEP_TYPE_INTERVENTION_FK_IDX" ON "TYPE_INTERVENTION_EP" ("TYPE_INTERVENTION_ID"); - PROCEDURE POPULATE_INTERVENANT( INTERVENANT_ID NUMERIC, d_intervenant OUT t_intervenant ) IS - BEGIN - SELECT - structure_id, - annee_id, - heures_service_statutaire, - depassement_service_du_sans_hc - INTO - d_intervenant.structure_id, - d_intervenant.annee_id, - d_intervenant.heures_service_statutaire, - d_intervenant.depassement_service_du_sans_hc - FROM - v_formule_intervenant fi - WHERE - fi.id = POPULATE_INTERVENANT.INTERVENANT_ID; +-- TIS_ANNEE_DEBUT_FK_IDX +CREATE INDEX "TIS_ANNEE_DEBUT_FK_IDX" ON "TYPE_INTERVENTION_STRUCTURE" ("ANNEE_DEBUT_ID"); - SELECT - NVL( SUM(heures), 0), - NVL( SUM(heures_decharge), 0) - INTO - d_intervenant.heures_service_modifie, - d_intervenant.heures_decharge - FROM - v_formule_service_modifie fsm - WHERE - fsm.intervenant_id = POPULATE_INTERVENANT.INTERVENANT_ID; +-- TIS_ANNEE_FIN_FK_IDX +CREATE INDEX "TIS_ANNEE_FIN_FK_IDX" ON "TYPE_INTERVENTION_STRUCTURE" ("ANNEE_FIN_ID"); - EXCEPTION WHEN NO_DATA_FOUND THEN - d_intervenant.structure_id := null; - d_intervenant.annee_id := null; - d_intervenant.heures_service_statutaire := 0; - d_intervenant.depassement_service_du_sans_hc := 0; - d_intervenant.heures_service_modifie := 0; - d_intervenant.heures_decharge := 0; - END; +-- TIS_HCFK_IDX +CREATE INDEX "TIS_HCFK_IDX" ON "TYPE_INTERVENTION_STRUCTURE" ("HISTO_CREATEUR_ID"); +-- TIS_HDFK_IDX +CREATE INDEX "TIS_HDFK_IDX" ON "TYPE_INTERVENTION_STRUCTURE" ("HISTO_DESTRUCTEUR_ID"); - PROCEDURE POPULATE_SERVICE_REF( INTERVENANT_ID NUMERIC, d_service_ref OUT t_lst_service_ref ) IS - i PLS_INTEGER; - BEGIN - d_service_ref.delete; +-- TIS_HMFK_IDX +CREATE INDEX "TIS_HMFK_IDX" ON "TYPE_INTERVENTION_STRUCTURE" ("HISTO_MODIFICATEUR_ID"); - FOR d IN ( - SELECT - fr.id, - fr.structure_id - FROM - v_formule_service_ref fr - WHERE - fr.intervenant_id = POPULATE_SERVICE_REF.INTERVENANT_ID - ) LOOP - d_service_ref( d.id ).id := d.id; - d_service_ref( d.id ).structure_id := d.structure_id; - END LOOP; - END; +-- TIS_STRUCTURE_FK_IDX +CREATE INDEX "TIS_STRUCTURE_FK_IDX" ON "TYPE_INTERVENTION_STRUCTURE" ("STRUCTURE_ID"); +-- TIS_TYPE_INTERVENTION_FK_IDX +CREATE INDEX "TIS_TYPE_INTERVENTION_FK_IDX" ON "TYPE_INTERVENTION_STRUCTURE" ("TYPE_INTERVENTION_ID"); - PROCEDURE POPULATE_SERVICE( INTERVENANT_ID NUMERIC, d_service OUT t_lst_service ) IS - BEGIN - d_service.delete; +-- TME_ELEMENT_PEDAGOGIQUE_FK_IDX +CREATE INDEX "TME_ELEMENT_PEDAGOGIQUE_FK_IDX" ON "TYPE_MODULATEUR_EP" ("ELEMENT_PEDAGOGIQUE_ID"); - FOR d IN ( - SELECT - id, - taux_fi, - taux_fa, - taux_fc, - structure_aff_id, - structure_ens_id, - ponderation_service_du, - ponderation_service_compl - FROM - v_formule_service fs - WHERE - fs.intervenant_id = POPULATE_SERVICE.INTERVENANT_ID - ) LOOP - d_service( d.id ).id := d.id; - d_service( d.id ).taux_fi := d.taux_fi; - d_service( d.id ).taux_fa := d.taux_fa; - d_service( d.id ).taux_fc := d.taux_fc; - d_service( d.id ).ponderation_service_du := d.ponderation_service_du; - d_service( d.id ).ponderation_service_compl := d.ponderation_service_compl; - d_service( d.id ).structure_aff_id := d.structure_aff_id; - d_service( d.id ).structure_ens_id := d.structure_ens_id; - END LOOP; - END; +-- TME_SOURCE_FK_IDX +CREATE INDEX "TME_SOURCE_FK_IDX" ON "TYPE_MODULATEUR_EP" ("SOURCE_ID"); - PROCEDURE POPULATE_VOLUME_HORAIRE_REF( INTERVENANT_ID NUMERIC, d_volume_horaire_ref OUT t_lst_volume_horaire_ref ) IS - BEGIN - d_volume_horaire_ref.delete; +-- TME_TYPE_MODULATEUR_FK_IDX +CREATE INDEX "TME_TYPE_MODULATEUR_FK_IDX" ON "TYPE_MODULATEUR_EP" ("TYPE_MODULATEUR_ID"); + +-- TMS_ANNEE_DEBUT_FK_IDX +CREATE INDEX "TMS_ANNEE_DEBUT_FK_IDX" ON "TYPE_MODULATEUR_STRUCTURE" ("ANNEE_DEBUT_ID"); + +-- TMS_ANNEE_FIN_FK_IDX +CREATE INDEX "TMS_ANNEE_FIN_FK_IDX" ON "TYPE_MODULATEUR_STRUCTURE" ("ANNEE_FIN_ID"); + +-- TMS_HCFK_IDX +CREATE INDEX "TMS_HCFK_IDX" ON "TYPE_MODULATEUR_STRUCTURE" ("HISTO_CREATEUR_ID"); + +-- TMS_HDFK_IDX +CREATE INDEX "TMS_HDFK_IDX" ON "TYPE_MODULATEUR_STRUCTURE" ("HISTO_DESTRUCTEUR_ID"); + +-- TMS_HMFK_IDX +CREATE INDEX "TMS_HMFK_IDX" ON "TYPE_MODULATEUR_STRUCTURE" ("HISTO_MODIFICATEUR_ID"); - FOR d IN ( - SELECT - id, - service_referentiel_id, - heures, - fvh.type_volume_horaire_id, - fvh.etat_volume_horaire_id, - fvh.etat_volume_horaire_ordre - FROM - v_formule_volume_horaire_ref fvh - WHERE - fvh.intervenant_id = POPULATE_VOLUME_HORAIRE_REF.INTERVENANT_ID - ) LOOP - d_volume_horaire_ref( d.id ).id := d.id; - d_volume_horaire_ref( d.id ).service_referentiel_id := d.service_referentiel_id; - d_volume_horaire_ref( d.id ).heures := d.heures; - d_volume_horaire_ref( d.id ).type_volume_horaire_id := d.type_volume_horaire_id; - d_volume_horaire_ref( d.id ).etat_volume_horaire_id := d.etat_volume_horaire_id; - d_volume_horaire_ref( d.id ).etat_volume_horaire_ordre := d.etat_volume_horaire_ordre; - END LOOP; - END; +-- TMS_STRUCTURE_FK_IDX +CREATE INDEX "TMS_STRUCTURE_FK_IDX" ON "TYPE_MODULATEUR_STRUCTURE" ("STRUCTURE_ID"); - PROCEDURE POPULATE_VOLUME_HORAIRE( INTERVENANT_ID NUMERIC, d_volume_horaire OUT t_lst_volume_horaire ) IS - BEGIN - d_volume_horaire.delete; +-- TMS_TYPE_MODUL_FK_IDX +CREATE INDEX "TMS_TYPE_MODUL_FK_IDX" ON "TYPE_MODULATEUR_STRUCTURE" ("TYPE_MODULATEUR_ID"); - FOR d IN ( - SELECT - id, - service_id, - heures, - taux_service_du, - taux_service_compl, - fvh.type_volume_horaire_id, - fvh.etat_volume_horaire_id, - fvh.etat_volume_horaire_ordre - FROM - v_formule_volume_horaire fvh - WHERE - fvh.intervenant_id = POPULATE_VOLUME_HORAIRE.INTERVENANT_ID - ) LOOP - d_volume_horaire( d.id ).id := d.id; - d_volume_horaire( d.id ).service_id := d.service_id; - d_volume_horaire( d.id ).heures := d.heures; - d_volume_horaire( d.id ).taux_service_du := d.taux_service_du; - d_volume_horaire( d.id ).taux_service_compl := d.taux_service_compl; - d_volume_horaire( d.id ).type_volume_horaire_id := d.type_volume_horaire_id; - d_volume_horaire( d.id ).etat_volume_horaire_id := d.etat_volume_horaire_id; - d_volume_horaire( d.id ).etat_volume_horaire_ordre := d.etat_volume_horaire_ordre; - END LOOP; - END; +-- TPJS_ANNEE_DEBUT_IDX +CREATE INDEX "TPJS_ANNEE_DEBUT_IDX" ON "TYPE_PIECE_JOINTE_STATUT" ("ANNEE_DEBUT_ID"); +-- TPJS_ANNEE_FIN_IDX +CREATE INDEX "TPJS_ANNEE_FIN_IDX" ON "TYPE_PIECE_JOINTE_STATUT" ("ANNEE_FIN_ID"); - PROCEDURE POPULATE_TYPE_ETAT_VH( d_volume_horaire t_lst_volume_horaire, d_volume_horaire_ref t_lst_volume_horaire_ref, d_type_etat_vh OUT t_lst_type_etat_vh ) IS - TYPE t_ordres IS TABLE OF NUMERIC INDEX BY PLS_INTEGER; +-- TPJS_HCFK_IDX +CREATE INDEX "TPJS_HCFK_IDX" ON "TYPE_PIECE_JOINTE_STATUT" ("HISTO_CREATEUR_ID"); - ordres_found t_ordres; - ordres_exists t_ordres; - type_volume_horaire_id PLS_INTEGER; - etat_volume_horaire_ordre PLS_INTEGER; - id PLS_INTEGER; - BEGIN - d_type_etat_vh.delete; +-- TPJS_HDFK_IDX +CREATE INDEX "TPJS_HDFK_IDX" ON "TYPE_PIECE_JOINTE_STATUT" ("HISTO_DESTRUCTEUR_ID"); - -- récupération des ID et ordres de volumes horaires - FOR evh IN ( - SELECT id, ordre - FROM etat_volume_horaire evh - ORDER BY ordre - ) LOOP - ordres_exists( evh.ordre ) := evh.id; - END LOOP; +-- TPJS_HMFK_IDX +CREATE INDEX "TPJS_HMFK_IDX" ON "TYPE_PIECE_JOINTE_STATUT" ("HISTO_MODIFICATEUR_ID"); - -- récupération des ordres maximum par type d'intervention - id := d_volume_horaire.FIRST; - LOOP EXIT WHEN id IS NULL; - IF NOT ordres_found.EXISTS(d_volume_horaire(id).type_volume_horaire_id) THEN - ordres_found( d_volume_horaire(id).type_volume_horaire_id ) := d_volume_horaire(id).etat_volume_horaire_ordre; - ELSIF ordres_found( d_volume_horaire(id).type_volume_horaire_id ) < d_volume_horaire(id).etat_volume_horaire_ordre THEN - ordres_found( d_volume_horaire(id).type_volume_horaire_id ) := d_volume_horaire(id).etat_volume_horaire_ordre; - END IF; - id := d_volume_horaire.NEXT(id); - END LOOP; +-- TPJS_STATUT_INTERVENANT_FK_IDX +CREATE INDEX "TPJS_STATUT_INTERVENANT_FK_IDX" ON "TYPE_PIECE_JOINTE_STATUT" ("STATUT_INTERVENANT_ID"); - id := d_volume_horaire_ref.FIRST; - LOOP EXIT WHEN id IS NULL; - IF NOT ordres_found.EXISTS(d_volume_horaire_ref(id).type_volume_horaire_id) THEN - ordres_found( d_volume_horaire_ref(id).type_volume_horaire_id ) := d_volume_horaire_ref(id).etat_volume_horaire_ordre; - ELSIF ordres_found( d_volume_horaire_ref(id).type_volume_horaire_id ) < d_volume_horaire_ref(id).etat_volume_horaire_ordre THEN - ordres_found( d_volume_horaire_ref(id).type_volume_horaire_id ) := d_volume_horaire_ref(id).etat_volume_horaire_ordre; - END IF; - id := d_volume_horaire_ref.NEXT(id); - END LOOP; +-- TPJS_TYPE_PIECE_JOINTE_FK_IDX +CREATE INDEX "TPJS_TYPE_PIECE_JOINTE_FK_IDX" ON "TYPE_PIECE_JOINTE_STATUT" ("TYPE_PIECE_JOINTE_ID"); - -- peuplement des t_lst_type_etat_vh - type_volume_horaire_id := ordres_found.FIRST; - LOOP EXIT WHEN type_volume_horaire_id IS NULL; - etat_volume_horaire_ordre := ordres_exists.FIRST; - LOOP EXIT WHEN etat_volume_horaire_ordre IS NULL; - IF etat_volume_horaire_ordre <= ordres_found(type_volume_horaire_id) THEN - d_type_etat_vh( type_volume_horaire_id + 100000 * etat_volume_horaire_ordre ).type_volume_horaire_id := type_volume_horaire_id; - d_type_etat_vh( type_volume_horaire_id + 100000 * etat_volume_horaire_ordre ).etat_volume_horaire_id := ordres_exists( etat_volume_horaire_ordre ); - END IF; - etat_volume_horaire_ordre := ordres_exists.NEXT(etat_volume_horaire_ordre); - END LOOP; +-- TVE_ANNEE_FK_IDX +CREATE INDEX "TVE_ANNEE_FK_IDX" ON "TBL_VALIDATION_ENSEIGNEMENT" ("ANNEE_ID"); - type_volume_horaire_id := ordres_found.NEXT(type_volume_horaire_id); - END LOOP; +-- TVE_INTERVENANT_FK_IDX +CREATE INDEX "TVE_INTERVENANT_FK_IDX" ON "TBL_VALIDATION_ENSEIGNEMENT" ("INTERVENANT_ID"); - END; +-- TVE_SERVICE_FK_IDX +CREATE INDEX "TVE_SERVICE_FK_IDX" ON "TBL_VALIDATION_ENSEIGNEMENT" ("SERVICE_ID"); +-- TVE_STRUCTURE_FK_IDX +CREATE INDEX "TVE_STRUCTURE_FK_IDX" ON "TBL_VALIDATION_ENSEIGNEMENT" ("STRUCTURE_ID"); - PROCEDURE POPULATE( INTERVENANT_ID NUMERIC ) IS - BEGIN - OSE_FORMULE.INTERVENANT_ID := POPULATE.INTERVENANT_ID; +-- TVE_TYPE_VOLUME_HORAIRE_FK_IDX +CREATE INDEX "TVE_TYPE_VOLUME_HORAIRE_FK_IDX" ON "TBL_VALIDATION_ENSEIGNEMENT" ("TYPE_VOLUME_HORAIRE_ID"); - POPULATE_INTERVENANT ( INTERVENANT_ID, d_intervenant ); - IF d_intervenant.heures_service_statutaire IS NOT NULL THEN -- sinon rien n'est à faire!! - POPULATE_SERVICE_REF ( INTERVENANT_ID, d_service_ref ); - POPULATE_SERVICE ( INTERVENANT_ID, d_service ); - POPULATE_VOLUME_HORAIRE_REF ( INTERVENANT_ID, d_all_volume_horaire_ref ); - POPULATE_VOLUME_HORAIRE ( INTERVENANT_ID, d_all_volume_horaire ); - POPULATE_TYPE_ETAT_VH ( d_all_volume_horaire, d_all_volume_horaire_ref, d_type_etat_vh ); - END IF; - END; +-- TVE_VALIDATION_FK_IDX +CREATE INDEX "TVE_VALIDATION_FK_IDX" ON "TBL_VALIDATION_ENSEIGNEMENT" ("VALIDATION_ID"); +-- TVE_VOLUME_HORAIRE_FK_IDX +CREATE INDEX "TVE_VOLUME_HORAIRE_FK_IDX" ON "TBL_VALIDATION_ENSEIGNEMENT" ("VOLUME_HORAIRE_ID"); - PROCEDURE POPULATE_FILTER( TYPE_VOLUME_HORAIRE_ID NUMERIC, ETAT_VOLUME_HORAIRE_ID NUMERIC ) IS - EVH_ORDRE NUMERIC; - id PLS_INTEGER; - BEGIN - d_volume_horaire.delete; - d_volume_horaire_ref.delete; +-- TVR_ANNEE_FK_IDX +CREATE INDEX "TVR_ANNEE_FK_IDX" ON "TBL_VALIDATION_REFERENTIEL" ("ANNEE_ID"); - SELECT ordre INTO EVH_ORDRE FROM etat_volume_horaire WHERE ID = ETAT_VOLUME_HORAIRE_ID; +-- TVR_INTERVENANT_FK_IDX +CREATE INDEX "TVR_INTERVENANT_FK_IDX" ON "TBL_VALIDATION_REFERENTIEL" ("INTERVENANT_ID"); - id := d_all_volume_horaire.FIRST; - LOOP EXIT WHEN id IS NULL; - IF - d_all_volume_horaire(id).type_volume_horaire_id = TYPE_VOLUME_HORAIRE_ID - AND d_all_volume_horaire(id).etat_volume_horaire_ordre >= EVH_ORDRE - THEN - d_volume_horaire(id) := d_all_volume_horaire(id); - END IF; - id := d_all_volume_horaire.NEXT(id); - END LOOP; +-- TVR_SERVICE_REFERENTIEL_FK_IDX +CREATE INDEX "TVR_SERVICE_REFERENTIEL_FK_IDX" ON "TBL_VALIDATION_REFERENTIEL" ("SERVICE_REFERENTIEL_ID"); - id := d_all_volume_horaire_ref.FIRST; - LOOP EXIT WHEN id IS NULL; - IF - d_all_volume_horaire_ref(id).type_volume_horaire_id = TYPE_VOLUME_HORAIRE_ID - AND d_all_volume_horaire_ref(id).etat_volume_horaire_ordre >= EVH_ORDRE - THEN - d_volume_horaire_ref(id) := d_all_volume_horaire_ref(id); - END IF; - id := d_all_volume_horaire_ref.NEXT(id); - END LOOP; - END; +-- TVR_STRUCTURE_FK_IDX +CREATE INDEX "TVR_STRUCTURE_FK_IDX" ON "TBL_VALIDATION_REFERENTIEL" ("STRUCTURE_ID"); +-- TVR_TYPE_VOLUME_HORAIRE_FK_IDX +CREATE INDEX "TVR_TYPE_VOLUME_HORAIRE_FK_IDX" ON "TBL_VALIDATION_REFERENTIEL" ("TYPE_VOLUME_HORAIRE_ID"); - PROCEDURE INIT_RESULTAT ( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, ETAT_VOLUME_HORAIRE_ID NUMERIC ) IS - BEGIN - d_resultat.intervenant_id := INTERVENANT_ID; - d_resultat.type_volume_horaire_id := TYPE_VOLUME_HORAIRE_ID; - d_resultat.etat_volume_horaire_id := ETAT_VOLUME_HORAIRE_ID; - d_resultat.service_du := 0; - d_resultat.solde := 0; - d_resultat.sous_service := 0; - d_resultat.heures_compl := 0; - d_resultat.volume_horaire.delete; - d_resultat.volume_horaire_ref.delete; - END; +-- TVR_VALIDATION_FK_IDX +CREATE INDEX "TVR_VALIDATION_FK_IDX" ON "TBL_VALIDATION_REFERENTIEL" ("VALIDATION_ID"); +-- TVR_VOLUME_HORAIRE_REF_FK_IDX +CREATE INDEX "TVR_VOLUME_HORAIRE_REF_FK_IDX" ON "TBL_VALIDATION_REFERENTIEL" ("VOLUME_HORAIRE_REF_ID"); - PROCEDURE CALC_RESULTAT IS - function_name VARCHAR2(30); - package_name VARCHAR2(30); - BEGIN - package_name := OSE_PARAMETRE.GET_FORMULE_PACKAGE_NAME; - function_name := OSE_PARAMETRE.GET_FORMULE_FUNCTION_NAME; +-- TYPE_AGREMENT_HCFK_IDX +CREATE INDEX "TYPE_AGREMENT_HCFK_IDX" ON "TYPE_AGREMENT" ("HISTO_CREATEUR_ID"); - EXECUTE IMMEDIATE - 'BEGIN ' || package_name || '.' || function_name || '( :1, :2, :3 ); END;' - USING - d_resultat.intervenant_id, d_resultat.type_volume_horaire_id, d_resultat.etat_volume_horaire_id; +-- TYPE_AGREMENT_HDFK_IDX +CREATE INDEX "TYPE_AGREMENT_HDFK_IDX" ON "TYPE_AGREMENT" ("HISTO_DESTRUCTEUR_ID"); - END; +-- TYPE_AGREMENT_HMFK_IDX +CREATE INDEX "TYPE_AGREMENT_HMFK_IDX" ON "TYPE_AGREMENT" ("HISTO_MODIFICATEUR_ID"); +-- TYPE_AGREMENT_PK +CREATE UNIQUE INDEX "TYPE_AGREMENT_PK" ON "TYPE_AGREMENT" ("ID"); - PROCEDURE SAVE_RESULTAT IS - res t_resultat_hetd; - res_ref t_resultat_hetd_ref; - res_service t_lst_resultat_hetd; - res_service_ref t_lst_resultat_hetd_ref; - id PLS_INTEGER; - sid PLS_INTEGER; - fr formule_resultat%rowtype; - frs formule_resultat_service%rowtype; - frsr formule_resultat_service_ref%rowtype; - frvh formule_resultat_vh%rowtype; - frvhr formule_resultat_vh_ref%rowtype; - dev_null PLS_INTEGER; - BEGIN - -- Calcul des données pour les services et le résultat global - fr.service_fi := 0; - fr.service_fa := 0; - fr.service_fc := 0; - fr.service_referentiel := 0; - fr.heures_compl_fi := 0; - fr.heures_compl_fa := 0; - fr.heures_compl_fc := 0; - fr.heures_compl_fc_majorees := 0; - fr.heures_compl_referentiel := 0; +-- TYPE_AGREMENT_STATUT_HCFK_IDX +CREATE INDEX "TYPE_AGREMENT_STATUT_HCFK_IDX" ON "TYPE_AGREMENT_STATUT" ("HISTO_CREATEUR_ID"); - id := d_resultat.volume_horaire.FIRST; - LOOP EXIT WHEN id IS NULL; - sid := d_volume_horaire(id).service_id; - IF NOT res_service.exists(sid) THEN res_service(sid).service_fi := 0; END IF; +-- TYPE_AGREMENT_STATUT_HDFK_IDX +CREATE INDEX "TYPE_AGREMENT_STATUT_HDFK_IDX" ON "TYPE_AGREMENT_STATUT" ("HISTO_DESTRUCTEUR_ID"); - res_service(sid).service_fi := res_service(sid).service_fi + d_resultat.volume_horaire(id).service_fi; - res_service(sid).service_fa := res_service(sid).service_fa + d_resultat.volume_horaire(id).service_fa; - res_service(sid).service_fc := res_service(sid).service_fc + d_resultat.volume_horaire(id).service_fc; - res_service(sid).heures_compl_fi := res_service(sid).heures_compl_fi + d_resultat.volume_horaire(id).heures_compl_fi; - res_service(sid).heures_compl_fa := res_service(sid).heures_compl_fa + d_resultat.volume_horaire(id).heures_compl_fa; - res_service(sid).heures_compl_fc := res_service(sid).heures_compl_fc + d_resultat.volume_horaire(id).heures_compl_fc; - res_service(sid).heures_compl_fc_majorees := res_service(sid).heures_compl_fc_majorees + d_resultat.volume_horaire(id).heures_compl_fc_majorees; +-- TYPE_AGREMENT_STATUT_HMFK_IDX +CREATE INDEX "TYPE_AGREMENT_STATUT_HMFK_IDX" ON "TYPE_AGREMENT_STATUT" ("HISTO_MODIFICATEUR_ID"); - fr.service_fi := fr.service_fi + d_resultat.volume_horaire(id).service_fi; - fr.service_fa := fr.service_fa + d_resultat.volume_horaire(id).service_fa; - fr.service_fc := fr.service_fc + d_resultat.volume_horaire(id).service_fc; - fr.heures_compl_fi := fr.heures_compl_fi + d_resultat.volume_horaire(id).heures_compl_fi; - fr.heures_compl_fa := fr.heures_compl_fa + d_resultat.volume_horaire(id).heures_compl_fa; - fr.heures_compl_fc := fr.heures_compl_fc + d_resultat.volume_horaire(id).heures_compl_fc; - fr.heures_compl_fc_majorees := fr.heures_compl_fc_majorees + d_resultat.volume_horaire(id).heures_compl_fc_majorees; - id := d_resultat.volume_horaire.NEXT(id); - END LOOP; +-- TYPE_AGREMENT_STATUT_PK +CREATE UNIQUE INDEX "TYPE_AGREMENT_STATUT_PK" ON "TYPE_AGREMENT_STATUT" ("ID"); - id := d_resultat.volume_horaire_ref.FIRST; - LOOP EXIT WHEN id IS NULL; - sid := d_volume_horaire_ref(id).service_referentiel_id; - IF NOT res_service_ref.exists(sid) THEN res_service_ref(sid).service_referentiel := 0; END IF; +-- TYPE_AGREMENT_STATUT__UN +CREATE UNIQUE INDEX "TYPE_AGREMENT_STATUT__UN" ON "TYPE_AGREMENT_STATUT" ("TYPE_AGREMENT_ID", "STATUT_INTERVENANT_ID", "PREMIER_RECRUTEMENT"); - res_service_ref(sid).service_referentiel := res_service_ref(sid).service_referentiel + d_resultat.volume_horaire_ref(id).service_referentiel; - res_service_ref(sid).heures_compl_referentiel := res_service_ref(sid).heures_compl_referentiel + d_resultat.volume_horaire_ref(id).heures_compl_referentiel; +-- TYPE_AGREMENT__UN +CREATE UNIQUE INDEX "TYPE_AGREMENT__UN" ON "TYPE_AGREMENT" ("CODE"); - fr.service_referentiel := fr.service_referentiel + d_resultat.volume_horaire_ref(id).service_referentiel; - fr.heures_compl_referentiel := fr.heures_compl_referentiel + d_resultat.volume_horaire_ref(id).heures_compl_referentiel; - id := d_resultat.volume_horaire_ref.NEXT(id); - END LOOP; +-- TYPE_CONTRAT_HCFK_IDX +CREATE INDEX "TYPE_CONTRAT_HCFK_IDX" ON "TYPE_CONTRAT" ("HISTO_CREATEUR_ID"); - -- Sauvegarde du résultat global - fr.id := NULL; - fr.intervenant_id := d_resultat.intervenant_id; - fr.type_volume_horaire_id := d_resultat.type_volume_horaire_id; - fr.etat_volume_horaire_id := d_resultat.etat_volume_horaire_id; - fr.service_du := d_resultat.service_du; - fr.total := fr.service_fi - + fr.service_fa - + fr.service_fc - + fr.service_referentiel - + fr.heures_compl_fi - + fr.heures_compl_fa - + fr.heures_compl_fc - + fr.heures_compl_fc_majorees - + fr.heures_compl_referentiel; - fr.solde := d_resultat.solde; - fr.sous_service := d_resultat.sous_service; - fr.heures_compl := d_resultat.heures_compl; - fr.id := OSE_FORMULE.ENREGISTRER_RESULTAT( fr ); +-- TYPE_CONTRAT_HDFK_IDX +CREATE INDEX "TYPE_CONTRAT_HDFK_IDX" ON "TYPE_CONTRAT" ("HISTO_DESTRUCTEUR_ID"); - -- sauvegarde des services - id := res_service.FIRST; - LOOP EXIT WHEN id IS NULL; - frs.id := NULL; - frs.formule_resultat_id := fr.id; - frs.service_id := id; - frs.service_fi := res_service(id).service_fi; - frs.service_fa := res_service(id).service_fa; - frs.service_fc := res_service(id).service_fc; - frs.heures_compl_fi := res_service(id).heures_compl_fi; - frs.heures_compl_fa := res_service(id).heures_compl_fa; - frs.heures_compl_fc := res_service(id).heures_compl_fc; - frs.heures_compl_fc_majorees := res_service(id).heures_compl_fc_majorees; - frs.total := frs.service_fi - + frs.service_fa - + frs.service_fc - + frs.heures_compl_fi - + frs.heures_compl_fa - + frs.heures_compl_fc - + frs.heures_compl_fc_majorees; - dev_null := OSE_FORMULE.ENREGISTRER_RESULTAT_SERVICE( frs ); - id := res_service.NEXT(id); - END LOOP; +-- TYPE_CONTRAT_HMFK_IDX +CREATE INDEX "TYPE_CONTRAT_HMFK_IDX" ON "TYPE_CONTRAT" ("HISTO_MODIFICATEUR_ID"); + +-- TYPE_CONTRAT_PK +CREATE UNIQUE INDEX "TYPE_CONTRAT_PK" ON "TYPE_CONTRAT" ("ID"); - -- sauvegarde des services référentiels - id := res_service_ref.FIRST; - LOOP EXIT WHEN id IS NULL; - frsr.id := NULL; - frsr.formule_resultat_id := fr.id; - frsr.service_referentiel_id := id; - frsr.service_referentiel := res_service_ref(id).service_referentiel; - frsr.heures_compl_referentiel := res_service_ref(id).heures_compl_referentiel; - frsr.total := res_service_ref(id).service_referentiel - + res_service_ref(id).heures_compl_referentiel; - dev_null := OSE_FORMULE.ENREGISTRER_RESULTAT_SERV_REF( frsr ); - id := res_service_ref.NEXT(id); - END LOOP; +-- TYPE_DOTATION_HCFK_IDX +CREATE INDEX "TYPE_DOTATION_HCFK_IDX" ON "TYPE_DOTATION" ("HISTO_CREATEUR_ID"); - -- sauvegarde des volumes horaires - id := d_resultat.volume_horaire.FIRST; - LOOP EXIT WHEN id IS NULL; - frvh.id := NULL; - frvh.formule_resultat_id := fr.id; - frvh.volume_horaire_id := id; - frvh.service_fi := d_resultat.volume_horaire(id).service_fi; - frvh.service_fa := d_resultat.volume_horaire(id).service_fa; - frvh.service_fc := d_resultat.volume_horaire(id).service_fc; - frvh.heures_compl_fi := d_resultat.volume_horaire(id).heures_compl_fi; - frvh.heures_compl_fa := d_resultat.volume_horaire(id).heures_compl_fa; - frvh.heures_compl_fc := d_resultat.volume_horaire(id).heures_compl_fc; - frvh.heures_compl_fc_majorees := d_resultat.volume_horaire(id).heures_compl_fc_majorees; - frvh.total := frvh.service_fi - + frvh.service_fa - + frvh.service_fc - + frvh.heures_compl_fi - + frvh.heures_compl_fa - + frvh.heures_compl_fc - + frvh.heures_compl_fc_majorees; - dev_null := OSE_FORMULE.ENREGISTRER_RESULTAT_VH( frvh ); - id := d_resultat.volume_horaire.NEXT(id); - END LOOP; +-- TYPE_DOTATION_HDFK_IDX +CREATE INDEX "TYPE_DOTATION_HDFK_IDX" ON "TYPE_DOTATION" ("HISTO_DESTRUCTEUR_ID"); - -- sauvegarde des volumes horaires référentiels - id := d_resultat.volume_horaire_ref.FIRST; - LOOP EXIT WHEN id IS NULL; - frvhr.id := NULL; - frvhr.formule_resultat_id := fr.id; - frvhr.volume_horaire_ref_id := id; - frvhr.service_referentiel := d_resultat.volume_horaire_ref(id).service_referentiel; - frvhr.heures_compl_referentiel := d_resultat.volume_horaire_ref(id).heures_compl_referentiel; - frvhr.total := frvhr.service_referentiel - + frvhr.heures_compl_referentiel; - dev_null := OSE_FORMULE.ENREGISTRER_RESULTAT_VH_REF( frvhr ); - id := d_resultat.volume_horaire_ref.NEXT(id); - END LOOP; - END; +-- TYPE_DOTATION_HMFK_IDX +CREATE INDEX "TYPE_DOTATION_HMFK_IDX" ON "TYPE_DOTATION" ("HISTO_MODIFICATEUR_ID"); - PROCEDURE DEBUG_INTERVENANT IS - BEGIN - ose_test.echo('d_intervenant'); - ose_test.echo(' .structure_id = ' || d_intervenant.structure_id || ' (' || ose_test.get_structure_by_id(d_intervenant.structure_id).libelle_court || ')' ); - ose_test.echo(' .heures_service_statutaire = ' || d_intervenant.heures_service_statutaire ); - ose_test.echo(' .heures_service_modifie = ' || d_intervenant.heures_service_modifie ); - ose_test.echo(' .depassement_service_du_sans_hc = ' || d_intervenant.depassement_service_du_sans_hc ); - ose_test.echo(''); - END; +-- TYPE_DOTATION_PK +CREATE UNIQUE INDEX "TYPE_DOTATION_PK" ON "TYPE_DOTATION" ("ID"); - PROCEDURE DEBUG_SERVICE( SERVICE_ID PLS_INTEGER ) IS - BEGIN - ose_test.echo('d_service(' || SERVICE_ID || ')' ); - ose_test.echo(' .taux_fi = ' || d_service(SERVICE_ID).taux_fi ); - ose_test.echo(' .taux_fa = ' || d_service(SERVICE_ID).taux_fa ); - ose_test.echo(' .taux_fc = ' || d_service(SERVICE_ID).taux_fc ); - ose_test.echo(' .ponderation_service_du = ' || d_service(SERVICE_ID).ponderation_service_du ); - ose_test.echo(' .ponderation_service_compl = ' || d_service(SERVICE_ID).ponderation_service_compl ); - ose_test.echo(' .structure_aff_id = ' || d_service(SERVICE_ID).structure_aff_id || ' (' || ose_test.get_structure_by_id(d_service(SERVICE_ID).structure_aff_id).libelle_court || ')' ); - ose_test.echo(' .structure_ens_id = ' || d_service(SERVICE_ID).structure_ens_id || ' (' || CASE WHEN d_service(SERVICE_ID).structure_ens_id IS NOT NULL THEN ose_test.get_structure_by_id(d_service(SERVICE_ID).structure_ens_id).libelle_court ELSE 'null' END || ')' ); - ose_test.echo(''); - END; +-- TYPE_DOTATION_SOURCE_FK_IDX +CREATE INDEX "TYPE_DOTATION_SOURCE_FK_IDX" ON "TYPE_DOTATION" ("SOURCE_ID"); - PROCEDURE DEBUG_SERVICE_REF( SERVICE_REF_ID PLS_INTEGER ) IS - BEGIN - ose_test.echo('d_service_ref(' || SERVICE_REF_ID || ')' ); - ose_test.echo(' .structure_id = ' || d_service_ref(SERVICE_REF_ID).structure_id || ' (' || ose_test.get_structure_by_id(d_service_ref(SERVICE_REF_ID).structure_id).libelle_court || ')' ); - ose_test.echo(''); - END; +-- TYPE_FORMATION_GROUPE_FK_IDX +CREATE INDEX "TYPE_FORMATION_GROUPE_FK_IDX" ON "TYPE_FORMATION" ("GROUPE_ID"); - PROCEDURE DEBUG_VOLUME_HORAIRE( VH_ID PLS_INTEGER ) IS - BEGIN - ose_test.echo('d_volume_horaire(' || VH_ID || ')' ); - ose_test.echo(' .service_id = ' || d_volume_horaire(VH_ID).service_id ); - ose_test.echo(' .type_volume_horaire_id = ' || d_volume_horaire(VH_ID).type_volume_horaire_id ); - ose_test.echo(' .etat_volume_horaire_id = ' || d_volume_horaire(VH_ID).etat_volume_horaire_id ); - ose_test.echo(' .etat_volume_horaire_ordre = ' || d_volume_horaire(VH_ID).etat_volume_horaire_ordre ); - ose_test.echo(' .heures = ' || d_volume_horaire(VH_ID).heures ); - ose_test.echo(' .taux_service_du = ' || d_volume_horaire(VH_ID).taux_service_du ); - ose_test.echo(' .taux_service_compl = ' || d_volume_horaire(VH_ID).taux_service_compl ); - ose_test.echo(''); - END; +-- TYPE_FORMATION_HCFK_IDX +CREATE INDEX "TYPE_FORMATION_HCFK_IDX" ON "TYPE_FORMATION" ("HISTO_CREATEUR_ID"); - PROCEDURE DEBUG_VOLUME_HORAIRE_REF( VH_REF_ID PLS_INTEGER ) IS - BEGIN - ose_test.echo('d_volume_horaire_ref(' || VH_REF_ID || ')' ); - ose_test.echo(' .service_referentiel_id = ' || d_volume_horaire_ref(VH_REF_ID).service_referentiel_id ); - ose_test.echo(' .type_volume_horaire_id = ' || d_volume_horaire_ref(VH_REF_ID).type_volume_horaire_id ); - ose_test.echo(' .etat_volume_horaire_id = ' || d_volume_horaire_ref(VH_REF_ID).etat_volume_horaire_id ); - ose_test.echo(' .etat_volume_horaire_ordre = ' || d_volume_horaire_ref(VH_REF_ID).etat_volume_horaire_ordre ); - ose_test.echo(' .heures = ' || d_volume_horaire_ref(VH_REF_ID).heures ); - ose_test.echo(''); - END; +-- TYPE_FORMATION_HDFK_IDX +CREATE INDEX "TYPE_FORMATION_HDFK_IDX" ON "TYPE_FORMATION" ("HISTO_DESTRUCTEUR_ID"); - PROCEDURE DEBUG_RESULTAT IS - BEGIN - ose_test.echo('d_resultat' ); - ose_test.echo(' .service_du = ' || d_resultat.service_du ); - ose_test.echo(' .solde = ' || d_resultat.solde ); - ose_test.echo(' .sous_service = ' || d_resultat.sous_service ); - ose_test.echo(' .heures_compl = ' || d_resultat.heures_compl ); - ose_test.echo(''); - END; +-- TYPE_FORMATION_HMFK_IDX +CREATE INDEX "TYPE_FORMATION_HMFK_IDX" ON "TYPE_FORMATION" ("HISTO_MODIFICATEUR_ID"); - PROCEDURE DEBUG_RESULTAT_VH( VH_ID PLS_INTEGER ) IS - BEGIN - ose_test.echo('d_resultat.volume_horaire(' || VH_ID || ')' ); - ose_test.echo(' .service_fi = ' || d_resultat.volume_horaire(VH_ID).service_fi ); - ose_test.echo(' .service_fa = ' || d_resultat.volume_horaire(VH_ID).service_fa ); - ose_test.echo(' .service_fc = ' || d_resultat.volume_horaire(VH_ID).service_fc ); - ose_test.echo(' .heures_compl_fi = ' || d_resultat.volume_horaire(VH_ID).heures_compl_fi ); - ose_test.echo(' .heures_compl_fa = ' || d_resultat.volume_horaire(VH_ID).heures_compl_fa ); - ose_test.echo(' .heures_compl_fc = ' || d_resultat.volume_horaire(VH_ID).heures_compl_fc ); - ose_test.echo(' .heures_compl_fc_majorees = ' || d_resultat.volume_horaire(VH_ID).heures_compl_fc_majorees ); - ose_test.echo(''); - END; +-- TYPE_FORMATION_PK +CREATE UNIQUE INDEX "TYPE_FORMATION_PK" ON "TYPE_FORMATION" ("ID"); - PROCEDURE DEBUG_RESULTAT_VH_REF( VH_REF_ID PLS_INTEGER ) IS - BEGIN - ose_test.echo('d_resultat.volume_horaire_ref(' || VH_REF_ID || ')' ); - ose_test.echo(' .service_referentiel = ' || d_resultat.volume_horaire_ref(VH_REF_ID).service_referentiel ); - ose_test.echo(' .heures_compl_referentiel = ' || d_resultat.volume_horaire_ref(VH_REF_ID).heures_compl_referentiel ); - ose_test.echo(''); - END; +-- TYPE_FORMATION_SOURCE_FK_IDX +CREATE INDEX "TYPE_FORMATION_SOURCE_FK_IDX" ON "TYPE_FORMATION" ("SOURCE_ID"); - PROCEDURE DEBUG_ALL( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, ETAT_VOLUME_HORAIRE_ID NUMERIC ) IS - id PLS_INTEGER; - i intervenant%rowtype; - a annee%rowtype; - tvh type_volume_horaire%rowtype; - evh etat_volume_horaire%rowtype; - BEGIN - IF GET_DEBUG_LEVEL >= 1 THEN - SELECT * INTO i FROM intervenant WHERE id = INTERVENANT_ID; - SELECT * INTO a FROM annee WHERE id = i.annee_id; - SELECT * INTO tvh FROM type_volume_horaire WHERE id = TYPE_VOLUME_HORAIRE_ID; - SELECT * INTO evh FROM etat_volume_horaire WHERE id = ETAT_VOLUME_HORAIRE_ID; +-- TYPE_FORMATION__UN +CREATE UNIQUE INDEX "TYPE_FORMATION__UN" ON "TYPE_FORMATION" ("SOURCE_CODE"); - ose_test.echo(''); - ose_test.echo('---------------------------------------------------------------------'); - ose_test.echo('Intervenant: ' || INTERVENANT_ID || ' : ' || i.prenom || ' ' || i.nom_usuel || ' (n° harp. ' || i.source_code || ')' ); - ose_test.echo( - 'Année: ' || a.libelle - || ', type ' || tvh.libelle - || ', état ' || evh.libelle - ); - ose_test.echo(''); - END IF; - IF GET_DEBUG_LEVEL >= 2 THEN - DEBUG_INTERVENANT; - END IF; +-- TYPE_HEURES_HCFK_IDX +CREATE INDEX "TYPE_HEURES_HCFK_IDX" ON "TYPE_HEURES" ("HISTO_CREATEUR_ID"); - IF GET_DEBUG_LEVEL >= 5 THEN - id := d_service.FIRST; - LOOP EXIT WHEN id IS NULL; - DEBUG_SERVICE( id ); - id := d_service.NEXT(id); - END LOOP; +-- TYPE_HEURES_HDFK_IDX +CREATE INDEX "TYPE_HEURES_HDFK_IDX" ON "TYPE_HEURES" ("HISTO_DESTRUCTEUR_ID"); - id := d_service_ref.FIRST; - LOOP EXIT WHEN id IS NULL; - DEBUG_SERVICE_REF( id ); - id := d_service_ref.NEXT(id); - END LOOP; - END IF; +-- TYPE_HEURES_HMFK_IDX +CREATE INDEX "TYPE_HEURES_HMFK_IDX" ON "TYPE_HEURES" ("HISTO_MODIFICATEUR_ID"); - IF GET_DEBUG_LEVEL >= 6 THEN - id := d_volume_horaire.FIRST; - LOOP EXIT WHEN id IS NULL; - DEBUG_VOLUME_HORAIRE( id ); - id := d_volume_horaire.NEXT(id); - END LOOP; +-- TYPE_HEURES_PK +CREATE UNIQUE INDEX "TYPE_HEURES_PK" ON "TYPE_HEURES" ("ID"); - id := d_volume_horaire_ref.FIRST; - LOOP EXIT WHEN id IS NULL; - DEBUG_VOLUME_HORAIRE_REF( id ); - id := d_volume_horaire_ref.NEXT(id); - END LOOP; - END IF; +-- TYPE_HEURES_TYPE_HEURES_FK_IDX +CREATE INDEX "TYPE_HEURES_TYPE_HEURES_FK_IDX" ON "TYPE_HEURES" ("TYPE_HEURES_ELEMENT_ID"); - IF GET_DEBUG_LEVEL >= 3 THEN - DEBUG_RESULTAT; - END IF; +-- TYPE_HEURES_UN +CREATE UNIQUE INDEX "TYPE_HEURES_UN" ON "TYPE_HEURES" ("CODE"); - IF GET_DEBUG_LEVEL >= 4 THEN - id := d_resultat.volume_horaire.FIRST; - LOOP EXIT WHEN id IS NULL; - DEBUG_RESULTAT_VH( id ); - id := d_resultat.volume_horaire.NEXT(id); - END LOOP; +-- TYPE_INTERVENANT_CODE_UN +CREATE UNIQUE INDEX "TYPE_INTERVENANT_CODE_UN" ON "TYPE_INTERVENANT" ("CODE"); - id := d_resultat.volume_horaire_ref.FIRST; - LOOP EXIT WHEN id IS NULL; - DEBUG_RESULTAT_VH_REF( id ); - id := d_resultat.volume_horaire_ref.NEXT(id); - END LOOP; - END IF; - END; +-- TYPE_INTERVENANT_HCFK_IDX +CREATE INDEX "TYPE_INTERVENANT_HCFK_IDX" ON "TYPE_INTERVENANT" ("HISTO_CREATEUR_ID"); +-- TYPE_INTERVENANT_HDFK_IDX +CREATE INDEX "TYPE_INTERVENANT_HDFK_IDX" ON "TYPE_INTERVENANT" ("HISTO_DESTRUCTEUR_ID"); +-- TYPE_INTERVENANT_HMFK_IDX +CREATE INDEX "TYPE_INTERVENANT_HMFK_IDX" ON "TYPE_INTERVENANT" ("HISTO_MODIFICATEUR_ID"); - PROCEDURE CALCULER( INTERVENANT_ID NUMERIC ) IS - id PLS_INTEGER; - found BOOLEAN; - function_name VARCHAR2(30); - package_name VARCHAR2(30); - BEGIN - package_name := OSE_PARAMETRE.GET_FORMULE_PACKAGE_NAME; - function_name := OSE_PARAMETRE.GET_FORMULE_FUNCTION_NAME; +-- TYPE_INTERVENANT_PK +CREATE UNIQUE INDEX "TYPE_INTERVENANT_PK" ON "TYPE_INTERVENANT" ("ID"); - -- détection de suppression des lignes de résultat obsolètes - UPDATE formule_resultat SET TO_DELETE = 1 WHERE intervenant_id = CALCULER.INTERVENANT_ID; - UPDATE FORMULE_RESULTAT_SERVICE_REF SET TO_DELETE = 1 WHERE formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); - UPDATE FORMULE_RESULTAT_SERVICE SET TO_DELETE = 1 WHERE formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); - UPDATE FORMULE_RESULTAT_VH_REF SET TO_DELETE = 1 WHERE formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); - UPDATE FORMULE_RESULTAT_VH SET TO_DELETE = 1 WHERE formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); +-- TYPE_INTERVENTION_EP_HCFK_IDX +CREATE INDEX "TYPE_INTERVENTION_EP_HCFK_IDX" ON "TYPE_INTERVENTION_EP" ("HISTO_CREATEUR_ID"); - POPULATE( INTERVENANT_ID ); - IF d_intervenant.heures_service_statutaire IS NOT NULL THEN -- sinon rien n'est à faire!! - -- lancement du calcul sur les nouvelles lignes ou sur les lignes existantes - id := d_type_etat_vh.FIRST; - LOOP EXIT WHEN id IS NULL; - POPULATE_FILTER( d_type_etat_vh(id).type_volume_horaire_id, d_type_etat_vh(id).etat_volume_horaire_id ); - DEBUG_ALL( INTERVENANT_ID, d_type_etat_vh(id).type_volume_horaire_id, d_type_etat_vh(id).etat_volume_horaire_id ); - OSE_FORMULE.INIT_RESULTAT( INTERVENANT_ID, d_type_etat_vh(id).type_volume_horaire_id, d_type_etat_vh(id).etat_volume_horaire_id ); - OSE_FORMULE.CALC_RESULTAT; - OSE_FORMULE.SAVE_RESULTAT; - id := d_type_etat_vh.NEXT(id); - END LOOP; - END IF; +-- TYPE_INTERVENTION_EP_HDFK_IDX +CREATE INDEX "TYPE_INTERVENTION_EP_HDFK_IDX" ON "TYPE_INTERVENTION_EP" ("HISTO_DESTRUCTEUR_ID"); - -- suppression des données devenues obsolètes - OSE_EVENT.ON_BEFORE_FORMULE_RES_DELETE( CALCULER.INTERVENANT_ID ); +-- TYPE_INTERVENTION_EP_HMFK_IDX +CREATE INDEX "TYPE_INTERVENTION_EP_HMFK_IDX" ON "TYPE_INTERVENTION_EP" ("HISTO_MODIFICATEUR_ID"); - DELETE FROM FORMULE_RESULTAT_SERVICE_REF WHERE TO_DELETE = 1 AND formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); - DELETE FROM FORMULE_RESULTAT_SERVICE WHERE TO_DELETE = 1 AND formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); - DELETE FROM FORMULE_RESULTAT_VH_REF WHERE TO_DELETE = 1 AND formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); - DELETE FROM FORMULE_RESULTAT_VH WHERE TO_DELETE = 1 AND formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); - DELETE FROM FORMULE_RESULTAT WHERE TO_DELETE = 1 AND intervenant_id = CALCULER.INTERVENANT_ID; +-- TYPE_INTERVENTION_EP_PK +CREATE UNIQUE INDEX "TYPE_INTERVENTION_EP_PK" ON "TYPE_INTERVENTION_EP" ("ID"); - OSE_EVENT.ON_AFTER_FORMULE_CALC( CALCULER.INTERVENANT_ID ); - END; +-- TYPE_INTERVENTION_HCFK_IDX +CREATE INDEX "TYPE_INTERVENTION_HCFK_IDX" ON "TYPE_INTERVENTION" ("HISTO_CREATEUR_ID"); +-- TYPE_INTERVENTION_HDFK_IDX +CREATE INDEX "TYPE_INTERVENTION_HDFK_IDX" ON "TYPE_INTERVENTION" ("HISTO_DESTRUCTEUR_ID"); +-- TYPE_INTERVENTION_HMFK_IDX +CREATE INDEX "TYPE_INTERVENTION_HMFK_IDX" ON "TYPE_INTERVENTION" ("HISTO_MODIFICATEUR_ID"); - PROCEDURE CALCULER_TBL( PARAMS UNICAEN_TBL.T_PARAMS ) IS - intervenant_id NUMERIC; - TYPE r_cursor IS REF CURSOR; - diff_cur r_cursor; - BEGIN - OPEN diff_cur FOR 'WITH interv AS (SELECT id intervenant_id, intervenant.* FROM intervenant) - SELECT intervenant_id FROM interv WHERE ' || unicaen_tbl.PARAMS_TO_CONDS( params ); - LOOP - FETCH diff_cur INTO intervenant_id; EXIT WHEN diff_cur%NOTFOUND; - BEGIN - CALCULER( intervenant_id ); - END; - END LOOP; - CLOSE diff_cur; - END; +-- TYPE_INTERVENTION_PK +CREATE UNIQUE INDEX "TYPE_INTERVENTION_PK" ON "TYPE_INTERVENTION" ("ID"); +-- TYPE_INTERVENTION_STRUCTURE_PK +CREATE UNIQUE INDEX "TYPE_INTERVENTION_STRUCTURE_PK" ON "TYPE_INTERVENTION_STRUCTURE" ("ID"); +-- TYPE_INTERV_ANNEE_DEBUT_IDX +CREATE INDEX "TYPE_INTERV_ANNEE_DEBUT_IDX" ON "TYPE_INTERVENTION" ("ANNEE_DEBUT_ID"); - FUNCTION GET_INTERVENANT RETURN NUMERIC IS - BEGIN - RETURN OSE_FORMULE.INTERVENANT_ID; - END; +-- TYPE_INTERV_ANNEE_FIN_IDX +CREATE INDEX "TYPE_INTERV_ANNEE_FIN_IDX" ON "TYPE_INTERVENTION" ("ANNEE_FIN_ID"); - PROCEDURE SET_INTERVENANT( INTERVENANT_ID NUMERIC DEFAULT NULL) IS - BEGIN - IF SET_INTERVENANT.INTERVENANT_ID = -1 THEN - OSE_FORMULE.INTERVENANT_ID := NULL; - ELSE - OSE_FORMULE.INTERVENANT_ID := SET_INTERVENANT.INTERVENANT_ID; - END IF; - END; +-- TYPE_MODULATEUR_EP_HCFK_IDX +CREATE INDEX "TYPE_MODULATEUR_EP_HCFK_IDX" ON "TYPE_MODULATEUR_EP" ("HISTO_CREATEUR_ID"); + +-- TYPE_MODULATEUR_EP_HDFK_IDX +CREATE INDEX "TYPE_MODULATEUR_EP_HDFK_IDX" ON "TYPE_MODULATEUR_EP" ("HISTO_DESTRUCTEUR_ID"); + +-- TYPE_MODULATEUR_EP_HMFK_IDX +CREATE INDEX "TYPE_MODULATEUR_EP_HMFK_IDX" ON "TYPE_MODULATEUR_EP" ("HISTO_MODIFICATEUR_ID"); + +-- TYPE_MODULATEUR_EP_PK +CREATE UNIQUE INDEX "TYPE_MODULATEUR_EP_PK" ON "TYPE_MODULATEUR_EP" ("ID"); + +-- TYPE_MODULATEUR_EP__UN +CREATE UNIQUE INDEX "TYPE_MODULATEUR_EP__UN" ON "TYPE_MODULATEUR_EP" ("SOURCE_CODE"); + +-- TYPE_MODULATEUR_EP__UNV1 +CREATE UNIQUE INDEX "TYPE_MODULATEUR_EP__UNV1" ON "TYPE_MODULATEUR_EP" ("TYPE_MODULATEUR_ID", "ELEMENT_PEDAGOGIQUE_ID"); + +-- TYPE_MODULATEUR_HCFK_IDX +CREATE INDEX "TYPE_MODULATEUR_HCFK_IDX" ON "TYPE_MODULATEUR" ("HISTO_CREATEUR_ID"); + +-- TYPE_MODULATEUR_HDFK_IDX +CREATE INDEX "TYPE_MODULATEUR_HDFK_IDX" ON "TYPE_MODULATEUR" ("HISTO_DESTRUCTEUR_ID"); + +-- TYPE_MODULATEUR_HMFK_IDX +CREATE INDEX "TYPE_MODULATEUR_HMFK_IDX" ON "TYPE_MODULATEUR" ("HISTO_MODIFICATEUR_ID"); + +-- TYPE_MODULATEUR_PK +CREATE UNIQUE INDEX "TYPE_MODULATEUR_PK" ON "TYPE_MODULATEUR" ("ID"); + +-- TYPE_MODULATEUR_STRUCTURE_PK +CREATE UNIQUE INDEX "TYPE_MODULATEUR_STRUCTURE_PK" ON "TYPE_MODULATEUR_STRUCTURE" ("ID"); - FUNCTION MATCH_INTERVENANT(INTERVENANT_ID NUMERIC DEFAULT NULL) RETURN NUMERIC IS - BEGIN - IF OSE_FORMULE.INTERVENANT_ID IS NULL OR OSE_FORMULE.INTERVENANT_ID = MATCH_INTERVENANT.INTERVENANT_ID THEN - RETURN 1; - ELSE - RETURN 0; - END IF; - END; -END OSE_FORMULE; -/ +-- TYPE_MODULATEUR_STRUCTURE_UN +CREATE UNIQUE INDEX "TYPE_MODULATEUR_STRUCTURE_UN" ON "TYPE_MODULATEUR_STRUCTURE" ("TYPE_MODULATEUR_ID", "STRUCTURE_ID"); --- OSE_HISTO -CREATE OR REPLACE PACKAGE BODY "OSE_HISTO" AS +-- TYPE_PIECE_JOINTE_HCFK_IDX +CREATE INDEX "TYPE_PIECE_JOINTE_HCFK_IDX" ON "TYPE_PIECE_JOINTE" ("HISTO_CREATEUR_ID"); - FUNCTION FILTRE( histo_debut NUMERIC, histo_fin NUMERIC ) RETURN NUMERIC IS - BEGIN - RETURN 1; - END; +-- TYPE_PIECE_JOINTE_HDFK_IDX +CREATE INDEX "TYPE_PIECE_JOINTE_HDFK_IDX" ON "TYPE_PIECE_JOINTE" ("HISTO_DESTRUCTEUR_ID"); -END OSE_HISTO; -/ +-- TYPE_PIECE_JOINTE_HMFK_IDX +CREATE INDEX "TYPE_PIECE_JOINTE_HMFK_IDX" ON "TYPE_PIECE_JOINTE" ("HISTO_MODIFICATEUR_ID"); --- OSE_PAIEMENT -CREATE OR REPLACE PACKAGE BODY "OSE_PAIEMENT" AS - - PROCEDURE CHECK_BAD_PAIEMENTS( FORMULE_RES_SERVICE_ID NUMERIC DEFAULT NULL, FORMULE_RES_SERVICE_REF_ID NUMERIC DEFAULT NULL ) IS - cc NUMERIC; - BEGIN - SELECT count(*) INTO cc - FROM mise_en_paiement mep - WHERE - mep.histo_destruction IS NULL - AND mep.formule_res_service_id = NVL( CHECK_BAD_PAIEMENTS.FORMULE_RES_SERVICE_ID, mep.formule_res_service_id ) - AND mep.formule_res_service_ref_id = NVL( CHECK_BAD_PAIEMENTS.FORMULE_RES_SERVICE_REF_ID, mep.formule_res_service_ref_id ) - ; +-- TYPE_PIECE_JOINTE_PK +CREATE UNIQUE INDEX "TYPE_PIECE_JOINTE_PK" ON "TYPE_PIECE_JOINTE" ("ID"); - IF (cc > 0) THEN - raise_application_error(-20101, 'Il est impossible d''effectuer cette action : des demandes de mise en paiement ont été saisies et ne peuvent pas être modifiées'); - ELSE - DELETE FROM mise_en_paiement WHERE - histo_destruction IS NOT NULL - AND formule_res_service_id = NVL( CHECK_BAD_PAIEMENTS.FORMULE_RES_SERVICE_ID, formule_res_service_id ) - AND formule_res_service_ref_id = NVL( CHECK_BAD_PAIEMENTS.FORMULE_RES_SERVICE_REF_ID, formule_res_service_ref_id ) - ; - END IF; - END; +-- TYPE_PIECE_JOINTE_STATUT_PK +CREATE UNIQUE INDEX "TYPE_PIECE_JOINTE_STATUT_PK" ON "TYPE_PIECE_JOINTE_STATUT" ("ID"); -END OSE_PAIEMENT; -/ +-- TYPE_RESSOURCE_FA +CREATE INDEX "TYPE_RESSOURCE_FA" ON "TYPE_RESSOURCE" ("FA"); --- OSE_PARAMETRE -CREATE OR REPLACE PACKAGE BODY "OSE_PARAMETRE" AS +-- TYPE_RESSOURCE_FC +CREATE INDEX "TYPE_RESSOURCE_FC" ON "TYPE_RESSOURCE" ("FC"); - cache_ose_user NUMERIC; - cache_annee_id NUMERIC; +-- TYPE_RESSOURCE_FI +CREATE INDEX "TYPE_RESSOURCE_FI" ON "TYPE_RESSOURCE" ("FI"); - function get_etablissement return Numeric AS - etab_id numeric; - BEGIN - select to_number(valeur) into etab_id from parametre where nom = 'etablissement'; - RETURN etab_id; - END get_etablissement; +-- TYPE_RESSOURCE_HCFK_IDX +CREATE INDEX "TYPE_RESSOURCE_HCFK_IDX" ON "TYPE_RESSOURCE" ("HISTO_CREATEUR_ID"); - function get_annee return Numeric AS - annee_id numeric; - BEGIN - IF cache_annee_id IS NOT NULL THEN RETURN cache_annee_id; END IF; - select to_number(valeur) into annee_id from parametre where nom = 'annee'; - cache_annee_id := annee_id; - RETURN cache_annee_id; - END get_annee; +-- TYPE_RESSOURCE_HDFK_IDX +CREATE INDEX "TYPE_RESSOURCE_HDFK_IDX" ON "TYPE_RESSOURCE" ("HISTO_DESTRUCTEUR_ID"); - FUNCTION get_annee_import RETURN NUMERIC AS - annee_id NUMERIC; - BEGIN - SELECT to_number(valeur) INTO annee_id FROM parametre WHERE nom = 'annee_import'; - RETURN annee_id; - END get_annee_import; +-- TYPE_RESSOURCE_HMFK_IDX +CREATE INDEX "TYPE_RESSOURCE_HMFK_IDX" ON "TYPE_RESSOURCE" ("HISTO_MODIFICATEUR_ID"); - function get_ose_user return Numeric AS - ose_user_id numeric; - BEGIN - IF cache_ose_user IS NOT NULL THEN RETURN cache_ose_user; END IF; - select to_number(valeur) into ose_user_id from parametre where nom = 'oseuser'; - cache_ose_user := ose_user_id; - RETURN cache_ose_user; - END get_ose_user; +-- TYPE_RESSOURCE_PK +CREATE UNIQUE INDEX "TYPE_RESSOURCE_PK" ON "TYPE_RESSOURCE" ("ID"); - function get_drh_structure_id return Numeric AS - drh_structure_id numeric; - BEGIN - select to_number(valeur) into drh_structure_id from parametre where nom = 'drh_structure_id'; - RETURN drh_structure_id; - END get_drh_structure_id; +-- TYPE_RESSOURCE_REF +CREATE INDEX "TYPE_RESSOURCE_REF" ON "TYPE_RESSOURCE" ("REFERENTIEL"); - FUNCTION get_date_fin_saisie_permanents RETURN DATE IS - date_fin_saisie_permanents date; - BEGIN - select TO_DATE(valeur, 'dd/mm/yyyy') into date_fin_saisie_permanents from parametre where nom = 'date_fin_saisie_permanents'; - RETURN date_fin_saisie_permanents; - END; +-- TYPE_VALIDATION_PK +CREATE UNIQUE INDEX "TYPE_VALIDATION_PK" ON "TYPE_VALIDATION" ("ID"); - FUNCTION get_ddeb_saisie_serv_real RETURN DATE IS - val date; - BEGIN - select TO_DATE(valeur, 'dd/mm/yyyy') into val from parametre where nom = 'date_debut_saisie_services_realises'; - RETURN val; - END; - - FUNCTION get_dfin_saisie_serv_real RETURN DATE IS - val date; - BEGIN - select TO_DATE(valeur, 'dd/mm/yyyy') into val from parametre where nom = 'date_fin_saisie_services_realises'; - RETURN val; - END; +-- TYPE_VOLUME_HORAIRE_PK +CREATE UNIQUE INDEX "TYPE_VOLUME_HORAIRE_PK" ON "TYPE_VOLUME_HORAIRE" ("ID"); - FUNCTION get_formule_package_name RETURN VARCHAR2 IS - formule_package_name VARCHAR2(30); - BEGIN - SELECT valeur INTO formule_package_name FROM parametre WHERE nom = 'formule_package_name'; - RETURN formule_package_name; - END; - - FUNCTION get_formule_function_name RETURN VARCHAR2 IS - formule_function_name VARCHAR2(30); - BEGIN - SELECT valeur INTO formule_function_name FROM parametre WHERE nom = 'formule_function_name'; - RETURN formule_function_name; - END; +-- TYPE_VOLUME_HORAIRE__UN +CREATE UNIQUE INDEX "TYPE_VOLUME_HORAIRE__UN" ON "TYPE_VOLUME_HORAIRE" ("CODE"); -END OSE_PARAMETRE; -/ +-- UTILISATEUR_PK +CREATE UNIQUE INDEX "UTILISATEUR_PK" ON "UTILISATEUR" ("ID"); --- OSE_TEST -CREATE OR REPLACE PACKAGE BODY "OSE_TEST" AS - TYPE OUT_LIST IS TABLE OF CLOB; - HTS TIMESTAMP; +-- UTILISATEUR_USERNAME_UN +CREATE UNIQUE INDEX "UTILISATEUR_USERNAME_UN" ON "UTILISATEUR" ("USERNAME"); - SUCCES_SHOWN BOOLEAN DEFAULT TRUE; - T_SUCCES_COUNT NUMERIC DEFAULT 0; - T_ECHECS_COUNT NUMERIC DEFAULT 0; - A_SUCCES_COUNT NUMERIC DEFAULT 0; - A_ECHECS_COUNT NUMERIC DEFAULT 0; - CURRENT_TEST CLOB; - CURRENT_TEST_OUTPUT_BUFFER OUT_LIST := OUT_LIST(); - CURRENT_TEST_OUTPUT_BUFFER_ERR BOOLEAN; +-- VALIDATION_HCFK_IDX +CREATE INDEX "VALIDATION_HCFK_IDX" ON "VALIDATION" ("HISTO_CREATEUR_ID"); - PROCEDURE SHOW_SUCCES IS - BEGIN - SUCCES_SHOWN := true; - END SHOW_SUCCES; +-- VALIDATION_HDFK_IDX +CREATE INDEX "VALIDATION_HDFK_IDX" ON "VALIDATION" ("HISTO_DESTRUCTEUR_ID"); - PROCEDURE HIDE_SUCCES IS - BEGIN - SUCCES_SHOWN := false; - END HIDE_SUCCES; +-- VALIDATION_HMFK_IDX +CREATE INDEX "VALIDATION_HMFK_IDX" ON "VALIDATION" ("HISTO_MODIFICATEUR_ID"); - PROCEDURE DEBUT( TEST_NAME CLOB ) IS - BEGIN - CURRENT_TEST := TEST_NAME; - CURRENT_TEST_OUTPUT_BUFFER_ERR := FALSE; - echo (' '); echo('TEST ' || TEST_NAME || ' >>>>>>>>>>' ); - END; +-- VALIDATION_INTERVENANT_FK_IDX +CREATE INDEX "VALIDATION_INTERVENANT_FK_IDX" ON "VALIDATION" ("INTERVENANT_ID"); - PROCEDURE FIN IS - TEST_NAME CLOB; - BEGIN - IF CURRENT_TEST_OUTPUT_BUFFER_ERR THEN - T_ECHECS_COUNT := T_ECHECS_COUNT + 1; - echo('>>>>>>>>>> FIN DU TEST ' || CURRENT_TEST ); echo (' '); - CURRENT_TEST := NULL; +-- VALIDATION_PK +CREATE UNIQUE INDEX "VALIDATION_PK" ON "VALIDATION" ("ID"); - FOR i IN 1 .. CURRENT_TEST_OUTPUT_BUFFER.COUNT LOOP - echo( CURRENT_TEST_OUTPUT_BUFFER(i) ); - END LOOP; - ELSE - T_SUCCES_COUNT := T_SUCCES_COUNT + 1; - TEST_NAME := CURRENT_TEST; - CURRENT_TEST := NULL; - echo('SUCCÈS DU TEST : ' || TEST_NAME ); - END IF; - CURRENT_TEST_OUTPUT_BUFFER.DELETE; -- clear buffer - END; +-- VALIDATION_STRUCTURE_FK_IDX +CREATE INDEX "VALIDATION_STRUCTURE_FK_IDX" ON "VALIDATION" ("STRUCTURE_ID"); - PROCEDURE ECHO( MSG CLOB ) IS - BEGIN - IF CURRENT_TEST IS NULL THEN - dbms_output.put_line(MSG); - ELSE - CURRENT_TEST_OUTPUT_BUFFER.EXTEND; - CURRENT_TEST_OUTPUT_BUFFER (CURRENT_TEST_OUTPUT_BUFFER.LAST) := MSG; - END IF; - END; +-- VALIDATION_TYPE_VALIDATION_FK +CREATE INDEX "VALIDATION_TYPE_VALIDATION_FK" ON "VALIDATION" ("TYPE_VALIDATION_ID"); - PROCEDURE INIT IS - BEGIN - T_SUCCES_COUNT := 0; - T_ECHECS_COUNT := 0; - A_SUCCES_COUNT := 0; - A_ECHECS_COUNT := 0; - CURRENT_TEST := NULL; - END INIT; +-- VALIDATION_VOL_HORAIRE_PK +CREATE UNIQUE INDEX "VALIDATION_VOL_HORAIRE_PK" ON "VALIDATION_VOL_HORAIRE" ("VALIDATION_ID", "VOLUME_HORAIRE_ID"); - PROCEDURE SHOW_STATS IS - BEGIN - echo ( ' ' ); - echo ( '********************************* STATISTIQUES *********************************' ); - echo ( ' ' ); - echo ( ' - nombre de tests passés avec succès : ' || T_SUCCES_COUNT ); - echo ( ' - nombre de tests ayant échoué : ' || T_ECHECS_COUNT ); - echo ( ' ' ); - echo ( ' - nombre d''assertions passés avec succès : ' || A_SUCCES_COUNT ); - echo ( ' - nombre d''assertions ayant échoué : ' || A_ECHECS_COUNT ); - echo ( ' ' ); - echo ( '********************************************************************************' ); - echo ( ' ' ); - END; +-- VALIDATION_VOL_HORAIRE_REF_PK +CREATE UNIQUE INDEX "VALIDATION_VOL_HORAIRE_REF_PK" ON "VALIDATION_VOL_HORAIRE_REF" ("VALIDATION_ID", "VOLUME_HORAIRE_REF_ID"); - PROCEDURE ASSERT( condition BOOLEAN, MSG CLOB ) IS - BEGIN - IF condition THEN - A_SUCCES_COUNT := A_SUCCES_COUNT + 1; - IF SUCCES_SHOWN THEN - ECHO(' SUCCÈS : ' || MSG ); - END IF; - ELSE - A_ECHECS_COUNT := A_ECHECS_COUNT + 1; - CURRENT_TEST_OUTPUT_BUFFER_ERR := TRUE; - ECHO(' ** ECHEC ** : ' || MSG ); - END IF; - END; +-- VERSION_PK +CREATE UNIQUE INDEX "VERSION_PK" ON "VERSION" ("NUMERO"); - PROCEDURE HOROINIT IS - BEGIN - HTS := systimestamp; - END; +-- VHC_HISTO_UN +CREATE UNIQUE INDEX "VHC_HISTO_UN" ON "VOLUME_HORAIRE_CHARGE" ("SOURCE_CODE", "HISTO_DESTRUCTION"); - PROCEDURE HORODATAGE( msg VARCHAR2 ) IS - diff INTERVAL DAY(9) TO SECOND(3); - BEGIN - IF HTS IS NULL THEN - HTS := systimestamp; - RETURN; - END IF; +-- VHENS_EP_FK_IDX +CREATE INDEX "VHENS_EP_FK_IDX" ON "VOLUME_HORAIRE_ENS" ("ELEMENT_PEDAGOGIQUE_ID"); - diff := systimestamp - HTS; - HTS := systimestamp; +-- VHENS_TYPE_INTERVENTION_FK_IDX +CREATE INDEX "VHENS_TYPE_INTERVENTION_FK_IDX" ON "VOLUME_HORAIRE_ENS" ("TYPE_INTERVENTION_ID"); - echo(msg || ' (' || diff || ')'); - END; +-- VHE_SOURCE_FK_IDX +CREATE INDEX "VHE_SOURCE_FK_IDX" ON "VOLUME_HORAIRE_ENS" ("SOURCE_ID"); - FUNCTION GET_STRUCTURE_BY_ID( id NUMERIC ) RETURN structure%rowtype IS - res structure%rowtype; - BEGIN - IF ID IS NULL THEN RETURN res; END IF; - SELECT * INTO res FROM structure WHERE id = GET_STRUCTURE_BY_ID.id; - RETURN res; - END; +-- VHIT_FK_IDX +CREATE INDEX "VHIT_FK_IDX" ON "VOLUME_HORAIRE" ("TYPE_INTERVENTION_ID"); -END OSE_TEST; -/ +-- VHMNP_FK_IDX +CREATE INDEX "VHMNP_FK_IDX" ON "VOLUME_HORAIRE" ("MOTIF_NON_PAIEMENT_ID"); --- OSE_VALIDATION -CREATE OR REPLACE PACKAGE BODY "OSE_VALIDATION" AS +-- VHR_SERVICE_REFERENTIEL_FK_IDX +CREATE INDEX "VHR_SERVICE_REFERENTIEL_FK_IDX" ON "VOLUME_HORAIRE_REF" ("SERVICE_REFERENTIEL_ID"); - FUNCTION can_devalider ( v validation%rowtype ) RETURN varchar2 IS - tv type_validation%rowtype; - nb NUMERIC; - result varchar2(500) default null; - BEGIN +-- VHR_TYPE_VOLUME_HORAIRE_FK_IDX +CREATE INDEX "VHR_TYPE_VOLUME_HORAIRE_FK_IDX" ON "VOLUME_HORAIRE_REF" ("TYPE_VOLUME_HORAIRE_ID"); - SELECT * INTO tv FROM type_validation WHERE id = v.type_validation_id; +-- VH_PERIODE_FK_IDX +CREATE INDEX "VH_PERIODE_FK_IDX" ON "VOLUME_HORAIRE" ("PERIODE_ID"); - IF tv.code = 'SERVICES_PAR_COMP' THEN +-- VH_SERVICES_FK_IDX +CREATE INDEX "VH_SERVICES_FK_IDX" ON "VOLUME_HORAIRE" ("SERVICE_ID"); - SELECT - SUM(CASE WHEN c.id IS NOT NULL THEN 1 ELSE 0 END) INTO nb - FROM - validation_vol_horaire vvh - JOIN volume_horaire vh ON vh.id = vvh.volume_horaire_id - LEFT JOIN contrat c ON c.id = vh.contrat_id AND c.histo_destruction IS NULL - WHERE - vvh.validation_id = v.id; +-- VH_TYPE_VOLUME_HORAIRE_FK_IDX +CREATE INDEX "VH_TYPE_VOLUME_HORAIRE_FK_IDX" ON "VOLUME_HORAIRE" ("TYPE_VOLUME_HORAIRE_ID"); - -- Si des volumes horaires ont déjà fait l'objet de contrats alors pas de dévalidation possible des heures - IF nb > 0 THEN - result := 'La dévalidation est impossible car des contrats ont déjà été édités sur la base de ces heures.'; - END IF; +-- VOLUME_HORAIRE_CHARGE_HC_IDX +CREATE INDEX "VOLUME_HORAIRE_CHARGE_HC_IDX" ON "VOLUME_HORAIRE_CHARGE" ("HISTO_CREATEUR_ID"); - END IF; +-- VOLUME_HORAIRE_CHARGE_HD_IDX +CREATE INDEX "VOLUME_HORAIRE_CHARGE_HD_IDX" ON "VOLUME_HORAIRE_CHARGE" ("HISTO_DESTRUCTEUR_ID"); - IF tv.code = 'CLOTURE_REALISE' THEN +-- VOLUME_HORAIRE_CHARGE_HM_IDX +CREATE INDEX "VOLUME_HORAIRE_CHARGE_HM_IDX" ON "VOLUME_HORAIRE_CHARGE" ("HISTO_MODIFICATEUR_ID"); - SELECT - COUNT(*) INTO nb - FROM - tbl_paiement p - WHERE - p.periode_paiement_id IS NOT NULL - AND p.intervenant_id = v.intervenant_id - AND ROWNUM = 1; +-- VOLUME_HORAIRE_CHARGE_PK +CREATE UNIQUE INDEX "VOLUME_HORAIRE_CHARGE_PK" ON "VOLUME_HORAIRE_CHARGE" ("ID"); + +-- VOLUME_HORAIRE_CHARGE_SC_IDX +CREATE INDEX "VOLUME_HORAIRE_CHARGE_SC_IDX" ON "VOLUME_HORAIRE_CHARGE" ("SCENARIO_ID"); + +-- VOLUME_HORAIRE_CHARGE_SRC_IDX +CREATE INDEX "VOLUME_HORAIRE_CHARGE_SRC_IDX" ON "VOLUME_HORAIRE_CHARGE" ("SOURCE_ID"); + +-- VOLUME_HORAIRE_CHARGE_TI_IDX +CREATE INDEX "VOLUME_HORAIRE_CHARGE_TI_IDX" ON "VOLUME_HORAIRE_CHARGE" ("TYPE_INTERVENTION_ID"); + +-- VOLUME_HORAIRE_CHARGE__UN +CREATE UNIQUE INDEX "VOLUME_HORAIRE_CHARGE__UN" ON "VOLUME_HORAIRE_CHARGE" ("ELEMENT_PEDAGOGIQUE_ID", "TYPE_INTERVENTION_ID", "HISTO_DESTRUCTION"); - IF nb > 0 THEN - result := 'La suppression de la clôture des services réalisés est impossible car des heures ont été payées ou bien le paiement a été demandé.'; - END IF; +-- VOLUME_HORAIRE_CONTRAT_FK_IDX +CREATE INDEX "VOLUME_HORAIRE_CONTRAT_FK_IDX" ON "VOLUME_HORAIRE" ("CONTRAT_ID"); - END IF; +-- VOLUME_HORAIRE_ENS_HCFK_IDX +CREATE INDEX "VOLUME_HORAIRE_ENS_HCFK_IDX" ON "VOLUME_HORAIRE_ENS" ("HISTO_CREATEUR_ID"); - RETURN result; - END; +-- VOLUME_HORAIRE_ENS_HDFK_IDX +CREATE INDEX "VOLUME_HORAIRE_ENS_HDFK_IDX" ON "VOLUME_HORAIRE_ENS" ("HISTO_DESTRUCTEUR_ID"); -END OSE_VALIDATION; -/ +-- VOLUME_HORAIRE_ENS_HMFK_IDX +CREATE INDEX "VOLUME_HORAIRE_ENS_HMFK_IDX" ON "VOLUME_HORAIRE_ENS" ("HISTO_MODIFICATEUR_ID"); --- OSE_WORKFLOW -CREATE OR REPLACE PACKAGE BODY "OSE_WORKFLOW" AS - INTERVENANT_ID NUMERIC DEFAULT NULL; +-- VOLUME_HORAIRE_ENS_PK +CREATE UNIQUE INDEX "VOLUME_HORAIRE_ENS_PK" ON "VOLUME_HORAIRE_ENS" ("ID"); - TYPE t_workflow IS TABLE OF tbl_workflow%rowtype INDEX BY PLS_INTEGER; +-- VOLUME_HORAIRE_ENS_UK1 +CREATE UNIQUE INDEX "VOLUME_HORAIRE_ENS_UK1" ON "VOLUME_HORAIRE_ENS" ("SOURCE_CODE", "HISTO_DESTRUCTION"); - TYPE t_dep IS TABLE OF wf_etape_dep%rowtype INDEX BY PLS_INTEGER; - TYPE t_deps IS TABLE OF t_dep INDEX BY PLS_INTEGER; - TYPE t_deps_bloquantes IS TABLE OF wf_dep_bloquante%rowtype INDEX BY PLS_INTEGER; +-- VOLUME_HORAIRE_HCFK_IDX +CREATE INDEX "VOLUME_HORAIRE_HCFK_IDX" ON "VOLUME_HORAIRE" ("HISTO_CREATEUR_ID"); - -- propre au calcul courant ! ! - etapes t_workflow; - deps t_deps; - deps_initialized boolean default false; - deps_bloquantes t_deps_bloquantes; - deps_bloquantes_index PLS_INTEGER DEFAULT 1; +-- VOLUME_HORAIRE_HDFK_IDX +CREATE INDEX "VOLUME_HORAIRE_HDFK_IDX" ON "VOLUME_HORAIRE" ("HISTO_DESTRUCTEUR_ID"); +-- VOLUME_HORAIRE_HEURES_IDX +CREATE INDEX "VOLUME_HORAIRE_HEURES_IDX" ON "VOLUME_HORAIRE" ("HEURES"); +-- VOLUME_HORAIRE_HMFK_IDX +CREATE INDEX "VOLUME_HORAIRE_HMFK_IDX" ON "VOLUME_HORAIRE" ("HISTO_MODIFICATEUR_ID"); +-- VOLUME_HORAIRE_PK +CREATE UNIQUE INDEX "VOLUME_HORAIRE_PK" ON "VOLUME_HORAIRE" ("ID"); - FUNCTION ETAPE_FRANCHIE( etape tbl_workflow%rowtype, need_done boolean default false ) RETURN FLOAT IS - res FLOAT DEFAULT 0; - BEGIN - IF etape.objectif = 0 THEN - IF need_done THEN RETURN 0; ELSE RETURN 1; END IF; - END IF; +-- VOLUME_HORAIRE_REF_HCFK_IDX +CREATE INDEX "VOLUME_HORAIRE_REF_HCFK_IDX" ON "VOLUME_HORAIRE_REF" ("HISTO_CREATEUR_ID"); - IF etape.atteignable = 0 THEN RETURN 0; END IF; +-- VOLUME_HORAIRE_REF_HDFK_IDX +CREATE INDEX "VOLUME_HORAIRE_REF_HDFK_IDX" ON "VOLUME_HORAIRE_REF" ("HISTO_DESTRUCTEUR_ID"); - IF etape.objectif > 0 THEN - res := etape.realisation / etape.objectif; - END IF; +-- VOLUME_HORAIRE_REF_HMFK_IDX +CREATE INDEX "VOLUME_HORAIRE_REF_HMFK_IDX" ON "VOLUME_HORAIRE_REF" ("HISTO_MODIFICATEUR_ID"); - IF res > 1 THEN - res := 1; - END IF; +-- VOLUME_HORAIRE_REF_PK +CREATE UNIQUE INDEX "VOLUME_HORAIRE_REF_PK" ON "VOLUME_HORAIRE_REF" ("ID"); - RETURN res; - END; +-- VVHR_VALIDATION_FK_IDX +CREATE INDEX "VVHR_VALIDATION_FK_IDX" ON "VALIDATION_VOL_HORAIRE_REF" ("VALIDATION_ID"); +-- VVHR_VOLUME_HORAIRE_REF_FK_IDX +CREATE INDEX "VVHR_VOLUME_HORAIRE_REF_FK_IDX" ON "VALIDATION_VOL_HORAIRE_REF" ("VOLUME_HORAIRE_REF_ID"); +-- VVH_VALIDATION_FK_IDX +CREATE INDEX "VVH_VALIDATION_FK_IDX" ON "VALIDATION_VOL_HORAIRE" ("VALIDATION_ID"); - PROCEDURE POPULATE_ETAPES( INTERVENANT_ID NUMERIC ) IS - i NUMERIC DEFAULT 0; - BEGIN - etapes.delete; -- initialisation +-- VVH_VOLUME_HORAIRE_FK_IDX +CREATE INDEX "VVH_VOLUME_HORAIRE_FK_IDX" ON "VALIDATION_VOL_HORAIRE" ("VOLUME_HORAIRE_ID"); - FOR wie IN ( - SELECT - wep.annee_id annee_id, - e.id etape_id, - w.structure_id structure_id, - ROUND(COALESCE(w.objectif,0),2) objectif, - CASE WHEN w.intervenant_id IS NULL THEN 0 ELSE 1 END atteignable, - ROUND(COALESCE(w.realisation,0),2) realisation, - wep.etape_code etape_code, - si.id statut_intervenant_id, - ti.id type_intervenant_id, - ti.code type_intervenant_code - FROM - v_workflow_etape_pertinente wep - JOIN wf_etape e ON e.code = wep.etape_code - JOIN intervenant i ON i.id = wep.intervenant_id - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN type_intervenant ti ON ti.id = si.type_intervenant_id - LEFT JOIN v_tbl_workflow w ON w.intervenant_id = wep.intervenant_id AND w.etape_code = wep.etape_code - WHERE - wep.intervenant_id = POPULATE_ETAPES.INTERVENANT_ID - AND (e.obligatoire = 1 OR w.intervenant_id IS NOT NULL) - ORDER BY - e.ordre - ) LOOP - etapes( i ).annee_id := wie.annee_id; - etapes( i ).intervenant_id := intervenant_id; - etapes( i ).etape_id := wie.etape_id; - etapes( i ).structure_id := wie.structure_id; - etapes( i ).atteignable := wie.atteignable; - etapes( i ).objectif := wie.objectif; - etapes( i ).realisation := wie.realisation; - etapes( i ).etape_code := wie.etape_code; - etapes( i ).statut_intervenant_id := wie.statut_intervenant_id; - etapes( i ).type_intervenant_id := wie.type_intervenant_id; - etapes( i ).type_intervenant_code := wie.type_intervenant_code; - i := i + 1; - END LOOP; - END; +-- WE_PREC_WE_FK_IDX +CREATE INDEX "WE_PREC_WE_FK_IDX" ON "WF_ETAPE_DEP" ("ETAPE_PREC_ID"); +-- WE_SUIV_WE_FK_IDX +CREATE INDEX "WE_SUIV_WE_FK_IDX" ON "WF_ETAPE_DEP" ("ETAPE_SUIV_ID"); +-- WE_TYPE_INTERVENANT_FK_IDX +CREATE INDEX "WE_TYPE_INTERVENANT_FK_IDX" ON "WF_ETAPE_DEP" ("TYPE_INTERVENANT_ID"); - -- peuple l'arbre des dépendances entre étapes de workflow - PROCEDURE POPULATE_DEPS( INTERVENANT_ID NUMERIC ) IS - s PLS_INTEGER; -- index de l'étape suivante - p PLS_INTEGER; -- index de l'étape précédente - BEGIN - IF deps_initialized THEN RETURN; END IF; +-- WF_DB_ETAPE_DEP_FK_IDX +CREATE INDEX "WF_DB_ETAPE_DEP_FK_IDX" ON "WF_DEP_BLOQUANTE" ("WF_ETAPE_DEP_ID"); - FOR d IN ( - SELECT - wed.* - FROM - wf_etape_dep wed - JOIN intervenant i ON i.id = POPULATE_DEPS.INTERVENANT_ID - JOIN statut_intervenant si ON si.id = i.statut_id - WHERE - active = 1 - AND wed.type_intervenant_id IS NULL OR wed.type_intervenant_id = si.type_intervenant_id - ) LOOP - deps(d.etape_suiv_id)(d.etape_prec_id) := d; - END LOOP; +-- WF_DB_TBL_WORKFLOW_FK_IDX +CREATE INDEX "WF_DB_TBL_WORKFLOW_FK_IDX" ON "WF_DEP_BLOQUANTE" ("TBL_WORKFLOW_ID"); - deps_initialized := true; - END; +-- WF_DEPS_BLOQUANTES_PK_IDX +CREATE UNIQUE INDEX "WF_DEPS_BLOQUANTES_PK_IDX" ON "WF_DEP_BLOQUANTE" ("ID"); +-- WF_ETAPE_CODE_UN +CREATE UNIQUE INDEX "WF_ETAPE_CODE_UN" ON "WF_ETAPE" ("CODE"); +-- WF_ETAPE_DEP_PK +CREATE UNIQUE INDEX "WF_ETAPE_DEP_PK" ON "WF_ETAPE_DEP" ("ID"); - PROCEDURE ADD_DEP_BLOQUANTE( wf_etape_dep_id NUMERIC, tbl_workflow_id NUMERIC ) IS - BEGIN - deps_bloquantes_index := deps_bloquantes_index + 1; - deps_bloquantes(deps_bloquantes_index).wf_etape_dep_id := wf_etape_dep_id; - deps_bloquantes(deps_bloquantes_index).tbl_workflow_id := tbl_workflow_id; - END; +-- WF_ETAPE_DEP_PK_IDX +CREATE UNIQUE INDEX "WF_ETAPE_DEP_PK_IDX" ON "WF_ETAPE_DEP" ("ETAPE_PREC_ID", "ETAPE_SUIV_ID"); +-- WF_ETAPE_DEP__UN_IDX +CREATE UNIQUE INDEX "WF_ETAPE_DEP__UN_IDX" ON "WF_ETAPE_DEP" ("ETAPE_SUIV_ID", "ETAPE_PREC_ID"); +-- WF_ETAPE_ORDRE_UN +CREATE UNIQUE INDEX "WF_ETAPE_ORDRE_UN" ON "WF_ETAPE" ("ORDRE"); - PROCEDURE CALCUL_ATTEIGNABLE( s PLS_INTEGER, d wf_etape_dep%rowtype ) IS - count_tested PLS_INTEGER DEFAULT 0; - count_na PLS_INTEGER DEFAULT 0; - p PLS_INTEGER; -- index de l'étape précédente - BEGIN +-- WF_ETAPE_PK +CREATE UNIQUE INDEX "WF_ETAPE_PK" ON "WF_ETAPE" ("ID"); - p := etapes.FIRST; - LOOP EXIT WHEN p IS NULL; - IF etapes(p).etape_id = d.etape_prec_id THEN - -- on restreint en fonction du périmètre visé : - -- - si la dépendance n'est pas locale alors on teste - -- - si les structures aussi bien de l'étape testée que de l'étape dépendante sont nulles alors on teste aussi car elles sont "universelles" - -- - si les structures sont équivalentes alors on teste, sinon elles ne sont pas dans le périmètre local - IF - (d.locale = 0) - OR etapes(s).structure_id IS NULL - OR etapes(p).structure_id IS NULL - OR etapes(s).structure_id = etapes(p).structure_id - THEN - count_tested := count_tested + 1; +-------------------------------------------------- +-- triggers +-------------------------------------------------- - -- on teste le type de franchissement désiré et si ce n'est pas bon alors on déclare l'étape courante non atteignable +-- AFFECTATION_RECHERCHE_CK +CREATE OR REPLACE TRIGGER "AFFECTATION_RECHERCHE_CK" + BEFORE INSERT OR UPDATE ON "AFFECTATION_RECHERCHE" + REFERENCING FOR EACH ROW + DECLARE + pragma autonomous_transaction; + rows_found integer; +BEGIN - -- - idem si on a besoin d'une dépendance partiellement franchie est qu'elle ne l'est pas - IF d.partielle = 1 THEN - IF ETAPE_FRANCHIE(etapes(p), d.obligatoire=1) = 0 THEN -- si le franchissement est totalement inexistant - count_na := count_na + 1; - END IF; - -- - si on a besoin d'une dépendance complètement franchie est qu'elle ne l'est pas alors ce n'est pas atteignable - ELSE - IF ETAPE_FRANCHIE(etapes(p), d.obligatoire=1) < 1 THEN - count_na := count_na + 1; - END IF; - END IF; - END IF; + if :NEW.histo_destruction IS NOT NULL THEN RETURN; END IF; -- pas de check si c'est pour une historicisation - END IF; - p := etapes.next(p); - END LOOP; + select + count(*) into rows_found + from + affectation_recherche + where + intervenant_id = :new.intervenant_id + AND structure_id = :new.structure_id + AND histo_destruction IS NULL + AND id <> :NEW.id; - -- on applique le résultat uniquement si des étapes dépendantes ont été trouvées - IF count_tested > 0 THEN + if rows_found > 0 THEN + raise_application_error(-20101, 'Un enseignant (id=' || :NEW.intervenant_id || ') ne peut pas avoir plusieurs affectations de recherche pour une même structure'); + END IF; - -- si les étapes dépendantes ont été intégralement franchies - IF d.integrale = 1 THEN - -- si l'intégralité des étapes est atteignable = NON si au moins une ne l'est pas - IF count_na > 0 THEN - etapes(s).atteignable := 0; - ADD_DEP_BLOQUANTE( d.id, s ); - END IF; +END; - -- sinon... - ELSE - -- si au moins une étape est atteignable = NON si toutes ne sont pas atteignables - IF count_tested = count_na THEN - etapes(s).atteignable := 0; - ADD_DEP_BLOQUANTE( d.id, s ); - END IF; - END IF; - END IF; - END; +/ +ALTER TRIGGER "AFFECTATION_RECHERCHE_CK" ENABLE; +-- AGREMENT_CK +CREATE OR REPLACE TRIGGER "AGREMENT_CK" + BEFORE UPDATE ON "AGREMENT" + REFERENCING FOR EACH ROW + DECLARE + contrat_found INTEGER; +BEGIN - -- calcule si les étapes sont atteignables ou non - PROCEDURE CALCUL_ATTEIGNABLES IS - e PLS_INTEGER; -- index de l'étape courante - d PLS_INTEGER; -- ID de l'étape précédante - BEGIN - deps_bloquantes.delete; - e := etapes.FIRST; - LOOP EXIT WHEN e IS NULL; - IF deps.exists(etapes(e).etape_id) THEN -- s'il n'y a aucune dépendance alors pas de test!! - d := deps(etapes(e).etape_id).FIRST; - LOOP EXIT WHEN d IS NULL; + SELECT + COUNT(*) INTO contrat_found + FROM + contrat c + WHERE + c.INTERVENANT_ID = :NEW.intervenant_id + AND c.structure_id = NVL(:NEW.structure_id,c.structure_id) + AND c.histo_destruction IS NULL + AND ROWNUM = 1; - CALCUL_ATTEIGNABLE(e, deps(etapes(e).etape_id)(d)); + IF + 1 = contrat_found + AND :NEW.histo_destruction IS NOT NULL AND :OLD.histo_destruction IS NULL + THEN - d := deps(etapes(e).etape_id).next(d); - END LOOP; - END IF; - e := etapes.next(e); - END LOOP; - END; + IF :NEW.structure_id IS NULL THEN + raise_application_error(-20101, 'Cet agrément ne peut pas être supprimé car un contrat a été signé.'); + ELSE + raise_application_error(-20101, 'Cet agrément ne peut pas être supprimé car un contrat a été signé dans la même composante.'); + END IF; + END IF; +END; - FUNCTION ENREGISTRER_ETAPE( e tbl_workflow%rowtype ) RETURN NUMERIC IS - n_etape_id NUMERIC; +/ +ALTER TRIGGER "AGREMENT_CK" ENABLE; + +-- CALC_TAUX_HETD_ANNEES +CREATE OR REPLACE TRIGGER "CALC_TAUX_HETD_ANNEES" +AFTER INSERT OR UPDATE OR DELETE ON "TAUX_HORAIRE_HETD" +BEGIN + OSE_FORMULE.UPDATE_ANNEE_TAUX_HETD; +END; + +/ +ALTER TRIGGER "CALC_TAUX_HETD_ANNEES" ENABLE; + +-- CHARGENS_MAJ_EFFECTIFS +CREATE OR REPLACE TRIGGER "CHARGENS_MAJ_EFFECTIFS" + AFTER INSERT OR DELETE OR UPDATE ON "SCENARIO_NOEUD_EFFECTIF" + REFERENCING FOR EACH ROW BEGIN +RETURN; + return; + IF NOT ose_chargens.ENABLE_TRIGGER_EFFECTIFS THEN RETURN; END IF; + IF DELETING THEN + ose_chargens.DEM_CALC_SUB_EFFECTIF( :OLD.scenario_noeud_id, :OLD.type_heures_id, :OLD.etape_id, 0 ); + ELSE + ose_chargens.DEM_CALC_SUB_EFFECTIF( :NEW.scenario_noeud_id, :NEW.type_heures_id, :NEW.etape_id, :NEW.effectif ); + END IF; - MERGE INTO tbl_workflow w USING dual ON ( +END; - w.intervenant_id = e.intervenant_id - AND w.etape_id = e.etape_id - AND NVL(w.structure_id,0) = NVL(e.structure_id,0) - ) WHEN MATCHED THEN UPDATE SET +/ +ALTER TRIGGER "CHARGENS_MAJ_EFFECTIFS" ENABLE; - atteignable = e.atteignable, - objectif = e.objectif, - realisation = e.realisation, - etape_code = e.etape_code, - statut_intervenant_id = e.statut_intervenant_id, - type_intervenant_id = e.type_intervenant_id, - type_intervenant_code = e.type_intervenant_code, - to_delete = 0 +-- ELEMENT_PEDAGOGIQUE_CK +CREATE OR REPLACE TRIGGER "ELEMENT_PEDAGOGIQUE_CK" + BEFORE INSERT OR UPDATE ON "ELEMENT_PEDAGOGIQUE" + REFERENCING FOR EACH ROW + DECLARE + enseignement INTEGER; + source_id INTEGER; +BEGIN + SELECT id INTO source_id FROM source WHERE code = 'OSE'; - WHEN NOT MATCHED THEN INSERT ( + IF :NEW.source_id <> source_id THEN RETURN; END IF; -- impossible de checker car l'UPD par import se fait champ par champ... - id, - annee_id, - intervenant_id, - etape_id, - structure_id, - atteignable, - objectif, - realisation, - etape_code, - statut_intervenant_id, - type_intervenant_id, - type_intervenant_code, - to_delete + IF :NEW.fi = 0 AND :NEW.fc = 0 AND :NEW.fa = 0 THEN + raise_application_error(-20101, 'Un enseignement doit obligatoirement être au moins en FI, FC ou FA'); + END IF; - ) VALUES ( + IF 1 <> ROUND(:NEW.taux_fi + :NEW.taux_fc + :NEW.taux_fa, 2) THEN + raise_application_error( -20101, 'Le total des taux FI, FC et FA n''est pas égal à 100%'); + END IF; - TBL_WORKFLOW_ID_SEQ.NEXTVAL, - e.annee_id, - e.intervenant_id, - e.etape_id, - e.structure_id, - e.atteignable, - e.objectif, - e.realisation, - e.etape_code, - e.statut_intervenant_id, - e.type_intervenant_id, - e.type_intervenant_code, - 0 + IF :NEW.fi = 0 AND :NEW.taux_fi > 0 THEN + raise_application_error( -20101, 'Le taux FI doit être à 0 puisque la formation n''est pas dispensée en FI'); + END IF; - ); + IF :NEW.fa = 0 AND :NEW.taux_fa > 0 THEN + raise_application_error( -20101, 'Le taux FA doit être à 0 puisque la formation n''est pas dispensée en FA'); + END IF; - SELECT w.id INTO n_etape_id FROM tbl_workflow w WHERE - w.intervenant_id = e.intervenant_id - AND w.etape_id = e.etape_id - AND NVL(w.structure_id,0) = NVL(e.structure_id,0) - ; + IF :NEW.fc = 0 AND :NEW.taux_fc > 0 THEN + raise_application_error( -20101, 'Le taux FC doit être à 0 puisque la formation n''est pas dispensée en FC'); + END IF; - RETURN n_etape_id; - END; + IF :NEW.periode_id IS NOT NULL THEN + SELECT p.enseignement + INTO enseignement + FROM periode p + WHERE p.id = :NEW.periode_id; + IF enseignement <> 1 THEN + raise_application_error(-20101, 'Cette période n''est pas appliquable à cet élément pédagogique.'); + END IF; + END IF; +END; +/ +ALTER TRIGGER "ELEMENT_PEDAGOGIQUE_CK" ENABLE; - PROCEDURE ENREGISTRER_DEP_BLOQUANTE( db wf_dep_bloquante%rowtype ) IS +-- F_CONTRAT +CREATE OR REPLACE TRIGGER "F_CONTRAT" + AFTER DELETE OR UPDATE OF INTERVENANT_ID, STRUCTURE_ID, VALIDATION_ID, DATE_RETOUR_SIGNE, HISTO_CREATION, HISTO_DESTRUCTION ON "CONTRAT" + REFERENCING FOR EACH ROW BEGIN - MERGE INTO wf_dep_bloquante wdb USING dual ON ( - wdb.wf_etape_dep_id = db.wf_etape_dep_id - AND wdb.tbl_workflow_id = db.tbl_workflow_id + IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; - ) WHEN MATCHED THEN UPDATE SET + FOR p IN ( - to_delete = 0 + SELECT DISTINCT + s.intervenant_id + FROM + volume_horaire vh + JOIN service s ON s.id = vh.service_id AND s.histo_destruction IS NULL + WHERE + vh.histo_destruction IS NULL + AND (vh.contrat_id = :OLD.id OR vh.contrat_id = :NEW.id) - WHEN NOT MATCHED THEN INSERT ( + ) LOOP - id, - wf_etape_dep_id, - tbl_workflow_id, - to_delete + UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); - ) VALUES ( + END LOOP; - WF_DEP_BLOQUANTE_ID_SEQ.NEXTVAL, - db.wf_etape_dep_id, - db.tbl_workflow_id, - 0 +END; - ); - END; +/ +ALTER TRIGGER "F_CONTRAT" ENABLE; + +-- F_CONTRAT_S +CREATE OR REPLACE TRIGGER "F_CONTRAT_S" + AFTER DELETE OR UPDATE ON "CONTRAT" + BEGIN + UNICAEN_TBL.CALCULER_DEMANDES; +END; +/ +ALTER TRIGGER "F_CONTRAT_S" ENABLE; - PROCEDURE ENREGISTRER( INTERVENANT_ID NUMERIC ) IS - i PLS_INTEGER; +-- F_ELEMENT_MODULATEUR +CREATE OR REPLACE TRIGGER "F_ELEMENT_MODULATEUR" + AFTER INSERT OR DELETE OR UPDATE ON "ELEMENT_MODULATEUR" + REFERENCING FOR EACH ROW BEGIN - UPDATE tbl_workflow SET to_delete = 1 WHERE intervenant_id = ENREGISTRER.INTERVENANT_ID; - UPDATE wf_dep_bloquante SET to_delete = 1 WHERE tbl_workflow_id IN (SELECT id FROM tbl_workflow WHERE intervenant_id = ENREGISTRER.INTERVENANT_ID); - - i := etapes.FIRST; - LOOP EXIT WHEN i IS NULL; - etapes(i).id := ENREGISTRER_ETAPE( etapes(i) ); - i := etapes.NEXT(i); - END LOOP; + IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; - i := deps_bloquantes.FIRST; - LOOP EXIT WHEN i IS NULL; - deps_bloquantes(i).tbl_workflow_id := etapes(deps_bloquantes(i).tbl_workflow_id).id; - ENREGISTRER_DEP_BLOQUANTE( deps_bloquantes(i) ); - i := deps_bloquantes.NEXT(i); - END LOOP; + FOR p IN ( - DELETE FROM tbl_workflow WHERE TO_DELETE = 1 AND intervenant_id = ENREGISTRER.INTERVENANT_ID; - DELETE FROM wf_dep_bloquante WHERE TO_DELETE = 1; - END; + SELECT DISTINCT + s.intervenant_id + FROM + service s + WHERE + s.histo_destruction IS NULL + AND (s.element_pedagogique_id = :OLD.element_id OR s.element_pedagogique_id = :NEW.element_id) + ) LOOP + UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); - PROCEDURE DEP_CHECK( etape_suiv_id NUMERIC, etape_prec_id NUMERIC ) IS - eso NUMERIC; - epo NUMERIC; - BEGIN - SELECT ordre INTO eso FROM wf_etape WHERE id = etape_suiv_id; - SELECT ordre INTO epo FROM wf_etape WHERE id = etape_prec_id; + END LOOP; - IF eso < epo THEN - raise_application_error(-20101, 'Une étape de Workflow ne peut dépendre d''une étape située en aval'); - END IF; - IF eso = epo THEN - raise_application_error(-20101, 'Une étape de Workflow ne peut dépendre d''elle-même'); - END IF; - END; +END; +/ +ALTER TRIGGER "F_ELEMENT_MODULATEUR" ENABLE; - PROCEDURE DEBUG_CALCUL( INTERVENANT_ID NUMERIC ) IS - i PLS_INTEGER; - d PLS_INTEGER; - dep_desc VARCHAR2(200); +-- F_ELEMENT_MODULATEUR_S +CREATE OR REPLACE TRIGGER "F_ELEMENT_MODULATEUR_S" + AFTER INSERT OR DELETE OR UPDATE ON "ELEMENT_MODULATEUR" BEGIN - ose_test.echo(''); - ose_test.echo('-- DEBUG WORKFLOW ETAPE INTERVENANT_ID='|| INTERVENANT_ID ||' --'); - i := etapes.FIRST; - LOOP EXIT WHEN i IS NULL; - /*ose_test.echo( - 'etape=' || RPAD( ose_test.get_wf_etape_by_id(etapes(i).etape_id).code, 30, ' ' ) - || ', structure=' || RPAD( NVL(ose_test.get_structure_by_id(etapes(i).structure_id).libelle_court,' '), 20, ' ' ) - || ', ' || CASE WHEN etapes(i).atteignable=1 THEN 'atteignable' ELSE 'na' END - || ', objectif= ' || ROUND(etapes(i).objectif) - || ', realisation= ' || ROUND(etapes(i).realisation) - );*/ + UNICAEN_TBL.CALCULER_DEMANDES; +END; - d := deps_bloquantes.FIRST; - LOOP EXIT WHEN d IS NULL; - IF deps_bloquantes(d).tbl_workflow_id = i THEN - SELECT - we.desc_non_franchie INTO dep_desc - FROM - wf_etape_dep wed - JOIN wf_etape we ON we.id = wed.etape_prec_id - WHERE - wed.id = deps_bloquantes(d).wf_etape_dep_id; +/ +ALTER TRIGGER "F_ELEMENT_MODULATEUR_S" ENABLE; - ose_test.echo(' CAUSE =' || dep_desc); - END IF; - d := deps_bloquantes.NEXT(d); - END LOOP; +-- F_ELEMENT_PEDAGOGIQUE +CREATE OR REPLACE TRIGGER "F_ELEMENT_PEDAGOGIQUE" + AFTER DELETE OR UPDATE OF ID, STRUCTURE_ID, PERIODE_ID, TAUX_FI, TAUX_FC, TAUX_FA, TAUX_FOAD, FI, FC, FA, HISTO_CREATION, HISTO_DESTRUCTION, ANNEE_ID ON "ELEMENT_PEDAGOGIQUE" + REFERENCING FOR EACH ROW + BEGIN - i := etapes.NEXT(i); - END LOOP; - ose_test.echo(''); - END; + IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + FOR p IN + ( SELECT DISTINCT s.intervenant_id + FROM service s + WHERE (s.element_pedagogique_id = :NEW.id + OR s.element_pedagogique_id = :OLD.id) + AND s.histo_destruction IS NULL + ) LOOP UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); +END LOOP; +END; +/ +ALTER TRIGGER "F_ELEMENT_PEDAGOGIQUE" ENABLE; - -- calcul du workflow pour un intervenant - PROCEDURE CALCULER( INTERVENANT_ID NUMERIC ) IS +-- F_ELEMENT_PEDAGOGIQUE_S +CREATE OR REPLACE TRIGGER "F_ELEMENT_PEDAGOGIQUE_S" + AFTER DELETE OR UPDATE ON "ELEMENT_PEDAGOGIQUE" BEGIN - set_intervenant(intervenant_id); - POPULATE_ETAPES( INTERVENANT_ID ); - POPULATE_DEPS( INTERVENANT_ID ); - CALCUL_ATTEIGNABLES; - IF OSE_TEST.DEBUG_ENABLED THEN - DEBUG_CALCUL( INTERVENANT_ID ); - END IF; - ENREGISTRER( INTERVENANT_ID ); - set_intervenant(); - END; + UNICAEN_TBL.CALCULER_DEMANDES; +END; +/ +ALTER TRIGGER "F_ELEMENT_PEDAGOGIQUE_S" ENABLE; - PROCEDURE CALCULER_TOUT( ANNEE_ID NUMERIC DEFAULT NULL ) IS +-- F_INTERVENANT +CREATE OR REPLACE TRIGGER "F_INTERVENANT" + AFTER UPDATE OF ID, DATE_NAISSANCE, STATUT_ID, STRUCTURE_ID, HISTO_CREATION, HISTO_DESTRUCTION, PREMIER_RECRUTEMENT, ANNEE_ID ON "INTERVENANT" + REFERENCING FOR EACH ROW BEGIN - FOR mp IN ( - SELECT - id intervenant_id - FROM - intervenant i - WHERE - i.histo_destruction IS NULL - AND (CALCULER_TOUT.ANNEE_ID IS NULL OR i.annee_id = CALCULER_TOUT.ANNEE_ID) - ) - LOOP - CALCULER( mp.intervenant_id ); - END LOOP; - END; + IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + + FOR p IN ( + SELECT DISTINCT + fr.intervenant_id + FROM + formule_resultat fr + WHERE + fr.intervenant_id = :NEW.id OR fr.intervenant_id = :OLD.id - PROCEDURE CALCULER_TBL( PARAMS UNICAEN_TBL.T_PARAMS ) IS - intervenant_id NUMERIC; - TYPE r_cursor IS REF CURSOR; - diff_cur r_cursor; - BEGIN - OPEN diff_cur FOR 'WITH interv AS (SELECT id intervenant_id, intervenant.* FROM intervenant) - SELECT intervenant_id FROM interv WHERE ' || unicaen_tbl.PARAMS_TO_CONDS( params ); - LOOP - FETCH diff_cur INTO intervenant_id; EXIT WHEN diff_cur%NOTFOUND; - BEGIN - CALCULER( intervenant_id ); - END; - END LOOP; - CLOSE diff_cur; - END; + ) LOOP + UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); + END LOOP; - FUNCTION GET_INTERVENANT RETURN NUMERIC IS - BEGIN - RETURN OSE_WORKFLOW.INTERVENANT_ID; - END; +END; - PROCEDURE SET_INTERVENANT( INTERVENANT_ID NUMERIC DEFAULT NULL) IS - BEGIN - IF SET_INTERVENANT.INTERVENANT_ID = -1 THEN - OSE_WORKFLOW.INTERVENANT_ID := NULL; - ELSE - OSE_WORKFLOW.INTERVENANT_ID := SET_INTERVENANT.INTERVENANT_ID; - END IF; - END; - FUNCTION MATCH_INTERVENANT(INTERVENANT_ID NUMERIC DEFAULT NULL) RETURN NUMERIC IS - BEGIN - IF OSE_WORKFLOW.INTERVENANT_ID IS NULL OR OSE_WORKFLOW.INTERVENANT_ID = MATCH_INTERVENANT.INTERVENANT_ID THEN - RETURN 1; - ELSE - RETURN 0; - END IF; - END; -END OSE_WORKFLOW; / +ALTER TRIGGER "F_INTERVENANT" ENABLE; --- UCBN_LDAP -CREATE OR REPLACE PACKAGE BODY "UCBN_LDAP" AS +-- F_INTERVENANT_S +CREATE OR REPLACE TRIGGER "F_INTERVENANT_S" + AFTER UPDATE ON "INTERVENANT" + BEGIN + UNICAEN_TBL.CALCULER_DEMANDES; +END; ---=================================================================== ---=================================================================== --- version() ---=================================================================== -FUNCTION version RETURN VARCHAR2 IS -BEGIN - RETURN ' 0.7.1 (2017-05-16) '; -END version; +/ +ALTER TRIGGER "F_INTERVENANT_S" ENABLE; ---=================================================================== ---=================================================================== --- free() ---=================================================================== -FUNCTION free RETURN NUMBER IS - l_retval PLS_INTEGER ; -BEGIN +-- F_MODIF_SERVICE_DU +CREATE OR REPLACE TRIGGER "F_MODIF_SERVICE_DU" + AFTER INSERT OR DELETE OR UPDATE ON "MODIFICATION_SERVICE_DU" + REFERENCING FOR EACH ROW BEGIN - l_retval := DBMS_LDAP.unbind_s(ld => ldap_sess); - RETURN l_retval ; - EXCEPTION - WHEN DBMS_LDAP.INVALID_SESSION THEN - RETURN NULL ; - END; -END free ; + IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + + IF DELETING OR UPDATING THEN + UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', :OLD.intervenant_id) ); + END IF; + IF INSERTING OR UPDATING THEN + UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', :NEW.intervenant_id) ); + END IF; ---=================================================================== ---=================================================================== --- ldap_connect() ---=================================================================== -FUNCTION ldap_connect RETURN NUMBER IS - ldap_host VARCHAR2(256 char) := 'ldap.unicaen.fr'; - ldap_port VARCHAR2(3 char) := '389'; - ldap_user VARCHAR2(256 char) := 'uid=oracle-ldap,ou=system,dc=unicaen,dc=fr' ; - ldap_passwd VARCHAR2(30 char) := 'HBHOe2CQgrAI' ; - ldap_base VARCHAR2(256 char) := 'ou=people,dc=unicaen,dc=fr'; +END; - l_retval PLS_INTEGER ; - resultat VARCHAR2(1024 char) := NULL ; +/ +ALTER TRIGGER "F_MODIF_SERVICE_DU" ENABLE; -BEGIN - -- Ouverture de connexion +-- F_MODIF_SERVICE_DU_S +CREATE OR REPLACE TRIGGER "F_MODIF_SERVICE_DU_S" + AFTER INSERT OR DELETE OR UPDATE ON "MODIFICATION_SERVICE_DU" BEGIN - ldap_sess := DBMS_LDAP.init(hostname => ldap_host, - portnum => ldap_port) ; - EXCEPTION - WHEN DBMS_LDAP.INIT_FAILED THEN - RETURN 1 ; - END; + UNICAEN_TBL.CALCULER_DEMANDES; +END; - -- Authentification +/ +ALTER TRIGGER "F_MODIF_SERVICE_DU_S" ENABLE; + +-- F_MODULATEUR +CREATE OR REPLACE TRIGGER "F_MODULATEUR" + AFTER DELETE OR UPDATE ON "MODULATEUR" + REFERENCING FOR EACH ROW BEGIN - l_retval := DBMS_LDAP.simple_bind_s(ld => ldap_sess, - dn => ldap_user, - passwd => ldap_passwd) ; - EXCEPTION - WHEN DBMS_LDAP.GENERAL_ERROR THEN - l_retval := DBMS_LDAP.unbind_s(ld => ldap_sess); - RETURN 2 ; - WHEN DBMS_LDAP.INVALID_SESSION THEN - l_retval := DBMS_LDAP.unbind_s(ld => ldap_sess); - RETURN 2 ; - END; - RETURN 0 ; -END ldap_connect; + IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + FOR p IN ( + SELECT DISTINCT + s.intervenant_id + FROM + service s + JOIN element_modulateur em ON + em.element_id = s.element_pedagogique_id + AND em.histo_destruction IS NULL + WHERE + s.histo_destruction IS NULL + AND (em.modulateur_id = :OLD.id OR em.modulateur_id = :NEW.id) + ) LOOP + UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); ---=================================================================== ---=================================================================== --- get(filtre, attribut) ---=================================================================== -FUNCTION get(filtre IN VARCHAR2, attribut IN VARCHAR2, v_multi IN VARCHAR2 DEFAULT 'N', a_multi OUT ARRAY_STR) RETURN VARCHAR2 IS - ldap_base VARCHAR2(256 char) := 'ou=people,dc=unicaen,dc=fr'; - l_retval PLS_INTEGER ; - l_attrs DBMS_LDAP.string_collection ; - l_message DBMS_LDAP.message ; - l_entry DBMS_LDAP.message ; - l_attr_name VARCHAR2(256 char) ; - l_ber_element DBMS_LDAP.ber_element; - l_vals DBMS_LDAP.string_collection; + END LOOP; +END; - i PLS_INTEGER ; - nb_res PLS_INTEGER ; - probleme EXCEPTION ; - resultat VARCHAR2(1024 char) := NULL ; - elapsed_since_used NUMBER ; +/ +ALTER TRIGGER "F_MODULATEUR" ENABLE; -BEGIN +-- F_MODULATEUR_S +CREATE OR REPLACE TRIGGER "F_MODULATEUR_S" + AFTER DELETE OR UPDATE ON "MODULATEUR" + BEGIN + UNICAEN_TBL.CALCULER_DEMANDES; +END; - -- On regarde depuis combien de temps la session n'a pas ete utilisee - elapsed_since_used:= to_number( to_char( SYSDATE,'yyyymmddhh24miss' ) ) - last_used ; - last_used := to_number( to_char( SYSDATE,'yyyymmddhh24miss' ) ) ; - - -- Si c'est trop vieux, on se reconnecte - IF elapsed_since_used > 10 THEN - l_retval := free() ; - END IF ; - - -- Si on n'est pas connecte: - IF ldap_sess IS NULL THEN - DBMS_OUTPUT.PUT_LINE('Reconnexion au serveur LDAP...'); - l_retval := ldap_connect() ; - CASE l_retval - WHEN 1 THEN RETURN '#Err 0010'; - WHEN 2 THEN RETURN '#Err 0011'; - ELSE NULL; - END CASE; - END IF ; - - -- On cherche le mail seulement - l_attrs(1) := attribut ; - BEGIN - l_retval := DBMS_LDAP.search_s(ld => ldap_sess, - base => ldap_base, - scope => DBMS_LDAP.SCOPE_SUBTREE, - filter => filtre, - attrs => l_attrs, - attronly => 0, - res => l_message) ; - EXCEPTION - WHEN DBMS_LDAP.GENERAL_ERROR THEN - DBMS_OUTPUT.PUT_LINE('Erreur: '||SQLERRM); - RETURN '#Err 0020' ; - WHEN DBMS_LDAP.INVALID_SESSION THEN - RETURN '#Err 0021' ; - WHEN DBMS_LDAP.invalid_search_scope THEN - RETURN '#Err 0022' ; - END; +/ +ALTER TRIGGER "F_MODULATEUR_S" ENABLE; +-- F_MOTIF_MODIFICATION_SERVICE +CREATE OR REPLACE TRIGGER "F_MOTIF_MODIFICATION_SERVICE" + AFTER DELETE OR UPDATE ON "MOTIF_MODIFICATION_SERVICE" + REFERENCING FOR EACH ROW BEGIN - nb_res := DBMS_LDAP.count_entries(ld => ldap_sess, msg => l_message) ; - EXCEPTION - WHEN DBMS_LDAP.INVALID_SESSION THEN - RETURN '#Err 0030' ; - WHEN DBMS_LDAP.INVALID_MESSAGE THEN - RETURN '#Err 0031' ; - WHEN DBMS_LDAP.count_entry_error THEN - RETURN '#Err 0032' ; - END; - IF nb_res < 1 THEN - -- Pas besoin de fermer la connexion puisqu'on en utilise qu'une... - -- l_retval := DBMS_LDAP.unbind_s(ld => ldap_sess); - -- RETURN '#Err 0033'; -- On retourne NULL depuis la 0.4.1 - RETURN NULL ; - END IF; + IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; - -- Les entrees retournees - BEGIN - l_entry := DBMS_LDAP.first_entry(ld => ldap_sess, msg => l_message); + FOR p IN ( - EXCEPTION - WHEN DBMS_LDAP.INVALID_SESSION THEN - RETURN '#Err 0034' ; - WHEN DBMS_LDAP.INVALID_MESSAGE THEN - RETURN '#Err 0035' ; - END; + SELECT DISTINCT + intervenant_id + FROM + modification_service_du msd + WHERE + msd.histo_destruction IS NULL + AND (msd.motif_id = :NEW.id OR msd.motif_id = :OLD.id) + ) LOOP - WHILE l_entry IS NOT NULL LOOP - -- Tous les attributs de l'entree: - BEGIN - l_attr_name := DBMS_LDAP.first_attribute(ld => ldap_sess, - ldapentry => l_entry, - ber_elem => l_ber_element); - EXCEPTION - WHEN DBMS_LDAP.INVALID_SESSION THEN - RETURN '#Err 0040' ; - WHEN DBMS_LDAP.INVALID_MESSAGE THEN - RETURN '#Err 0041' ; - END; + UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); - WHILE l_attr_name IS NOT NULL LOOP - -- Les valeurs de cet attribut - BEGIN - l_vals := DBMS_LDAP.get_values (ld => ldap_sess, - ldapentry => l_entry, - attr => l_attr_name); - EXCEPTION - WHEN DBMS_LDAP.INVALID_SESSION THEN - RETURN '#Err 0044' ; - WHEN DBMS_LDAP.INVALID_MESSAGE THEN - RETURN '#Err 0045' ; - END; + END LOOP; - -- Si le nom de l'attribut ne correspond pas a l'attribut demande, next. - -- C'est pour empecher le retour de "supannAutreMail" quand on demande "mail" par exemple. - IF l_attr_name = attribut THEN - -- On ne retourne que la premiere valeur si mono-value - -- Sinon, on retourne le tableau a_multi - IF v_multi = 'N' THEN - resultat := l_vals(l_vals.FIRST) ; - ELSE - a_multi := ARRAY_STR() ; -- Initialisation du tableau - i := 0 ; -- tableau commence a 1 (d'ou i++ a l'entree du FOR) - FOR v IN l_vals.FIRST .. l_vals.LAST LOOP - i := i + 1 ; - a_multi.extend ; - a_multi(i) := l_vals(v) ; - END LOOP ; - resultat := '#Err Multi-value: '||i ; - END IF; - END IF; +END; - EXIT WHEN resultat IS NOT NULL ; - -- Attribut suivant - BEGIN - l_attr_name := DBMS_LDAP.next_attribute(ld => ldap_sess, - ldapentry => l_entry, - ber_elem => l_ber_element); - EXCEPTION - WHEN DBMS_LDAP.INVALID_SESSION THEN - RETURN '#Err 0042' ; - WHEN DBMS_LDAP.INVALID_MESSAGE THEN - RETURN '#Err 0043' ; - END; +/ +ALTER TRIGGER "F_MOTIF_MODIFICATION_SERVICE" ENABLE; - END LOOP ; -- LOOP Fin des attributs - IF l_ber_element IS NOT NULL THEN - DBMS_LDAP.ber_free(l_ber_element, 0) ; - END IF ; - EXIT WHEN resultat IS NOT NULL ; - BEGIN - l_entry := DBMS_LDAP.next_entry(ld => ldap_sess, - msg => l_entry); - EXCEPTION - WHEN DBMS_LDAP.INVALID_SESSION THEN - RETURN '#Err 0036' ; - WHEN DBMS_LDAP.INVALID_MESSAGE THEN - RETURN '#Err 0037' ; - END; - END LOOP ; -- LOOP Fin des entrees +-- F_MOTIF_MODIFICATION_SERVICE_S +CREATE OR REPLACE TRIGGER "F_MOTIF_MODIFICATION_SERVICE_S" + AFTER DELETE OR UPDATE ON "MOTIF_MODIFICATION_SERVICE" + BEGIN + UNICAEN_TBL.CALCULER_DEMANDES; +END; - -- Liberation de la memoire - --l_retval := DBMS_LDAP.msgfree(l_message) ; - IF l_entry IS NOT NULL THEN - l_retval := DBMS_LDAP.msgfree(l_entry) ; - END IF ; - -- Pas de deconnexion (on la reutilisera) - --l_retval := DBMS_LDAP.unbind_s(ld => l_session); - --DBMS_OUTPUT.PUT_LINE('L_RETVAL: ' || l_retval); +/ +ALTER TRIGGER "F_MOTIF_MODIFICATION_SERVICE_S" ENABLE; - RETURN resultat ; +-- F_STATUT_INTERVENANT +CREATE OR REPLACE TRIGGER "F_STATUT_INTERVENANT" + AFTER UPDATE OF SERVICE_STATUTAIRE, DEPASSEMENT, TYPE_INTERVENANT_ID, NON_AUTORISE ON "STATUT_INTERVENANT" + REFERENCING FOR EACH ROW + BEGIN -END get ; + IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + FOR p IN ( + SELECT DISTINCT + fr.intervenant_id + FROM + intervenant i + JOIN formule_resultat fr ON fr.intervenant_id = i.id + WHERE + (i.statut_id = :NEW.id OR i.statut_id = :OLD.id) + AND i.histo_destruction IS NULL ---=================================================================== ---=================================================================== --- alias2mail(alias) ---=================================================================== -FUNCTION alias2mail(ldap_alias IN VARCHAR2) RETURN VARCHAR2 IS -BEGIN - RETURN get('supannAliasLogin='||ldap_alias, 'mail', 'N', a_multi) ; -END alias2mail; - ---=================================================================== ---=================================================================== --- uid2mail(ldap_uid) ---=================================================================== -FUNCTION uid2mail(ldap_uid IN VARCHAR2) RETURN VARCHAR2 IS -BEGIN - RETURN get('uid='||ldap_uid, 'mail', 'N', a_multi) ; -END uid2mail; + ) LOOP + UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); ---=================================================================== ---=================================================================== --- hid2mail(harpege_uid) ---=================================================================== -FUNCTION hid2mail(harpege_uid IN NUMBER) RETURN VARCHAR2 IS -BEGIN - RETURN get('uid=p'||to_char(harpege_uid,'FM00000000'), 'mail', 'N', a_multi) ; -END hid2mail; + END LOOP; +END; ---=================================================================== ---=================================================================== --- etu2mail(code_etu) ---=================================================================== -FUNCTION etu2mail(code_etu IN NUMBER) RETURN VARCHAR2 IS -BEGIN - RETURN get('uid=e'||to_char(code_etu,'FM00000000'), 'mail', 'N', a_multi) ; -END etu2mail; +/ +ALTER TRIGGER "F_STATUT_INTERVENANT" ENABLE; +-- F_STATUT_INTERVENANT_S +CREATE OR REPLACE TRIGGER "F_STATUT_INTERVENANT_S" + AFTER UPDATE ON "STATUT_INTERVENANT" + BEGIN + UNICAEN_TBL.CALCULER_DEMANDES; +END; ---=================================================================== ---=================================================================== --- uid2alias(ldap_uid) ---=================================================================== -FUNCTION uid2alias(ldap_uid IN VARCHAR2) RETURN VARCHAR2 IS -BEGIN - RETURN get('uid='||ldap_uid, 'supannAliasLogin', 'N', a_multi) ; -END uid2alias; - ---=================================================================== ---=================================================================== --- hid2alias(harpege_uid) ---=================================================================== -FUNCTION hid2alias(harpege_uid IN NUMBER) RETURN VARCHAR2 IS -BEGIN - RETURN get('uid=p'||to_char(harpege_uid,'FM00000000'), 'supannAliasLogin', 'N', a_multi) ; -END hid2alias; +/ +ALTER TRIGGER "F_STATUT_INTERVENANT_S" ENABLE; ---=================================================================== ---=================================================================== --- uid2cn(ldap_uid) ---=================================================================== -FUNCTION uid2cn(ldap_uid IN VARCHAR2) RETURN VARCHAR2 IS -BEGIN - RETURN get('uid='||ldap_uid, 'cn', 'N', a_multi) ; -END uid2cn; +-- F_TYPE_INTERVENTION +CREATE OR REPLACE TRIGGER "F_TYPE_INTERVENTION" + AFTER UPDATE OF TAUX_HETD_SERVICE, TAUX_HETD_COMPLEMENTAIRE ON "TYPE_INTERVENTION" + REFERENCING FOR EACH ROW + BEGIN + IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; ---=================================================================== ---=================================================================== --- uid2sn(ldap_uid) ---=================================================================== -FUNCTION uid2sn(ldap_uid IN VARCHAR2) RETURN VARCHAR2 IS -BEGIN - RETURN get('uid='||ldap_uid, 'sn', 'N', a_multi) ; -END uid2sn; - ---=================================================================== ---=================================================================== --- uid2givenname(ldap_uid) ---=================================================================== -FUNCTION uid2givenname(ldap_uid IN VARCHAR2) RETURN VARCHAR2 IS -BEGIN - RETURN get('uid='||ldap_uid, 'givenname', 'N', a_multi) ; -END uid2givenname; - ---=================================================================== ---=================================================================== --- uid2gn(ldap_uid) ---=================================================================== -FUNCTION uid2gn(ldap_uid IN VARCHAR2) RETURN VARCHAR2 IS -BEGIN - RETURN get('uid='||ldap_uid, 'givenname', 'N', a_multi)||' '||get('uid='||ldap_uid, 'sn', 'N', a_multi) ; -END uid2gn; + FOR p IN ( + + SELECT DISTINCT + s.intervenant_id + FROM + volume_horaire vh + JOIN service s ON s.id = vh.service_id AND s.histo_destruction IS NULL + WHERE + vh.histo_destruction IS NULL + AND (vh.type_intervention_id = :NEW.id OR vh.type_intervention_id = :OLD.id) + ) LOOP + UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); ---=================================================================== ---=================================================================== --- hidIsPrimaryTeacher(harpege_uid) --- --- Verifie eduPersonPrimaryAffiliation ---=================================================================== -FUNCTION hidIsPrimaryTeacher(harpege_uid IN NUMBER) RETURN VARCHAR2 IS - l_resultat VARCHAR2(1024 char) := NULL ; - isTeacher VARCHAR2(1) := 'N' ; -BEGIN - l_resultat := get('uid=p'||to_char(harpege_uid,'FM00000000'), 'eduPersonPrimaryAffiliation', 'N', a_multi) ; + END LOOP; +END; - IF l_resultat IS NULL THEN - RETURN NULL ; - END IF ; - IF SUBSTR( l_resultat, 1, 4 ) = '#Err' THEN - RETURN l_resultat ; - END IF ; +/ +ALTER TRIGGER "F_TYPE_INTERVENTION" ENABLE; - IF l_resultat = 'teacher' THEN - isTeacher := 'O' ; - END IF ; +-- F_TYPE_INTERVENTION_S +CREATE OR REPLACE TRIGGER "F_TYPE_INTERVENTION_S" + AFTER UPDATE ON "TYPE_INTERVENTION" + BEGIN + UNICAEN_TBL.CALCULER_DEMANDES; +END; - RETURN isTeacher ; -END hidIsPrimaryTeacher; +/ +ALTER TRIGGER "F_TYPE_INTERVENTION_S" ENABLE; +-- INDIC_TRG_MODIF_DOSSIER +CREATE OR REPLACE TRIGGER "INDIC_TRG_MODIF_DOSSIER" + AFTER INSERT OR UPDATE OF NOM_USUEL, NOM_PATRONYMIQUE, PRENOM, CIVILITE_ID, ADRESSE, RIB, DATE_NAISSANCE ON "DOSSIER" ---=================================================================== ---=================================================================== --- hidIsTeacher(harpege_uid) --- --- Retourne NULL si non trouve, --- O si flag teacher ou faculty --- N si pas ce flag. ---=================================================================== -FUNCTION hidIsTeacher(harpege_uid IN NUMBER) RETURN VARCHAR2 IS - l_resultat VARCHAR2(1024 char) := NULL ; - isTeacher VARCHAR2(1) := 'N' ; -BEGIN - l_resultat := get('uid=p'||to_char(harpege_uid,'FM00000000'), 'eduPersonAffiliation', 'Y', a_multi) ; - -- ici, l_resultat ne contient que '#Err Multi-value: i' - - -- On verifie qu'on a bien obtenu des resultats - IF l_resultat IS NULL OR SUBSTR( l_resultat, 1, 18) != '#Err Multi-value: ' THEN - RETURN l_resultat ; - END IF ; - - -- Le Nombre de resultats - IF a_multi.count = 0 THEN - RETURN NULL ; - END IF ; - - FOR i IN 1 .. a_multi.count LOOP - IF a_multi(i)='teacher' THEN - isTeacher := 'O' ; - END IF ; - END LOOP ; - - RETURN isTeacher ; - -END hidIsTeacher; - - ---=================================================================== ---=================================================================== --- getInvites() --- --- Reprend la fonction "get" mais ecrit les resultats dans une table ---=================================================================== -PROCEDURE getInvites(l_table IN VARCHAR2) IS - -- Les valeurs qu'on recherche - l_uid VARCHAR2(10 char) ; - l_ucbnstatus VARCHAR2(12 char) ; - l_login VARCHAR2(32 char) ; - l_nom_usuel VARCHAR2(128 char) ; - l_prenom VARCHAR2(128 char) ; - l_d_naissance VARCHAR2(8 char) ; - l_d_fin_insc VARCHAR2(8 char) ; - l_affectation VARCHAR2(8 char) ; - l_parrain_dn VARCHAR2(64 char) ; - - -- Les variables pour le requetage LDAP - ldap_base VARCHAR2(256 char) := 'ou=people,dc=unicaen,dc=fr'; - ldap_filtre VARCHAR2(256 char) ; - l_retval PLS_INTEGER ; - l_attrs DBMS_LDAP.string_collection ; - l_message DBMS_LDAP.message ; - l_entry DBMS_LDAP.message ; - l_attr_name VARCHAR2(256 char) ; - l_ber_element DBMS_LDAP.ber_element; - l_vals DBMS_LDAP.string_collection; - - i PLS_INTEGER ; - nb_res PLS_INTEGER ; - probleme EXCEPTION ; - resultat VARCHAR2(1024 char) := NULL ; - requete VARCHAR2(4000 char) ; - - elapsed_since_used NUMBER ; + FOR EACH ROW +/** + * But : mettre à jour la liste des PJ attendues. + */ +DECLARE + i integer := 1; + intervenantId NUMERIC; + found integer; + estCreationDossier integer; + type array_t is table of varchar2(1024); + + attrNames array_t := array_t(); + attrOldVals array_t := array_t(); + attrNewVals array_t := array_t(); + -- valeurs importées (format texte) : + impSourceName source.libelle%type; + impNomUsuel indic_modif_dossier.ATTR_NEW_VALUE%type; + impNomPatro indic_modif_dossier.ATTR_NEW_VALUE%type; + impPrenom indic_modif_dossier.ATTR_NEW_VALUE%type; + impCivilite indic_modif_dossier.ATTR_NEW_VALUE%type; + impDateNaiss indic_modif_dossier.ATTR_NEW_VALUE%type; + impAdresse indic_modif_dossier.ATTR_NEW_VALUE%type; + impRib indic_modif_dossier.ATTR_NEW_VALUE%type; + -- anciennes valeurs dans le dossier (format texte) : + oldSourceName source.libelle%type; + oldNomUsuel indic_modif_dossier.ATTR_NEW_VALUE%type; + oldNomPatro indic_modif_dossier.ATTR_NEW_VALUE%type; + oldPrenom indic_modif_dossier.ATTR_NEW_VALUE%type; + oldCivilite indic_modif_dossier.ATTR_NEW_VALUE%type; + oldDateNaiss indic_modif_dossier.ATTR_NEW_VALUE%type; + oldAdresse indic_modif_dossier.ATTR_NEW_VALUE%type; + oldRib indic_modif_dossier.ATTR_NEW_VALUE%type; + -- nouvelles valeurs dans le dossier (format texte) : + newSourceName source.libelle%type; + newNomUsuel indic_modif_dossier.ATTR_NEW_VALUE%type; + newNomPatro indic_modif_dossier.ATTR_NEW_VALUE%type; + newPrenom indic_modif_dossier.ATTR_NEW_VALUE%type; + newCivilite indic_modif_dossier.ATTR_NEW_VALUE%type; + newDateNaiss indic_modif_dossier.ATTR_NEW_VALUE%type; + newAdresse indic_modif_dossier.ATTR_NEW_VALUE%type; + newRib indic_modif_dossier.ATTR_NEW_VALUE%type; BEGIN - -- On fabrique le filtre a partir de la date en cours: - ldap_filtre := '(&(|(ucbnStatus=LECTEUR_SCD)(ucbnStatus=APPRENANT)(ucbnStatus=INVITE))(dateFinInscription>='||to_char(SYSDATE,'YYYYMMDD')||'))' ; - - -- On regarde depuis combien de temps la session n'a pas ete utilisee - elapsed_since_used:= to_number( to_char( SYSDATE,'yyyymmddhh24miss' ) ) - last_used ; - last_used := to_number( to_char( SYSDATE,'yyyymmddhh24miss' ) ) ; - - -- Si c'est trop vieux, on se reconnecte - IF elapsed_since_used > 10 THEN - l_retval := free() ; - END IF ; - - -- Si on n'est pas connecte: - IF ldap_sess IS NULL THEN - DBMS_OUTPUT.PUT_LINE('Reconnexion au serveur LDAP...'); - l_retval := ldap_connect() ; - CASE l_retval - WHEN 1 THEN DBMS_OUTPUT.PUT_LINE('#Err 0010') ; - WHEN 2 THEN DBMS_OUTPUT.PUT_LINE('#Err 0011') ; - ELSE NULL; - END CASE; - END IF ; - - -- Les attributs LDAP qu'on recherche: - l_attrs(1) := 'uid' ; - l_attrs(2) := 'sn' ; - l_attrs(3) := 'givenName' ; - l_attrs(4) := 'dateDeNaissance' ; - l_attrs(5) := 'dateFinInscription' ; - l_attrs(6) := 'supannAliasLogin' ; - l_attrs(7) := 'supannEntiteAffectation' ; - l_attrs(8) := 'ucbnStatus' ; - l_attrs(9) := 'supannParrainDN' ; - BEGIN - l_retval := DBMS_LDAP.search_s(ld => ldap_sess, - base => ldap_base, - scope => DBMS_LDAP.SCOPE_SUBTREE, - filter => ldap_filtre, - attrs => l_attrs, - attronly => 0, - res => l_message) ; - EXCEPTION - WHEN DBMS_LDAP.GENERAL_ERROR THEN - DBMS_OUTPUT.PUT_LINE('Erreur: '||SQLERRM); - DBMS_OUTPUT.PUT_LINE('#Err 0020') ; - WHEN DBMS_LDAP.INVALID_SESSION THEN - DBMS_OUTPUT.PUT_LINE('#Err 0021') ; - WHEN DBMS_LDAP.invalid_search_scope THEN - DBMS_OUTPUT.PUT_LINE('#Err 0022') ; - END; - - BEGIN - nb_res := DBMS_LDAP.count_entries(ld => ldap_sess, msg => l_message) ; - EXCEPTION - WHEN DBMS_LDAP.INVALID_SESSION THEN - DBMS_OUTPUT.PUT_LINE('#Err 0030') ; - WHEN DBMS_LDAP.INVALID_MESSAGE THEN - DBMS_OUTPUT.PUT_LINE('#Err 0031') ; - WHEN DBMS_LDAP.count_entry_error THEN - DBMS_OUTPUT.PUT_LINE('#Err 0032') ; - END; - - IF nb_res < 1 THEN - -- Pas besoin de fermer la connexion puisqu'on en utilise qu'une... - -- l_retval := DBMS_LDAP.unbind_s(ld => ldap_sess); - -- RETURN '#Err 0033'; -- On retourne NULL depuis la 0.4.1 - DBMS_OUTPUT.PUT_LINE('#Err 0033') ; - END IF; - - -- Les entrees retournees - BEGIN - l_entry := DBMS_LDAP.first_entry(ld => ldap_sess, msg => l_message); - - EXCEPTION - WHEN DBMS_LDAP.INVALID_SESSION THEN - DBMS_OUTPUT.PUT_LINE('#Err 0034') ; - WHEN DBMS_LDAP.INVALID_MESSAGE THEN - DBMS_OUTPUT.PUT_LINE('#Err 0035') ; - END; + -- + -- Témoin indiquant s'il s'agit d'une création de dossier (insert). + -- + estCreationDossier := case when inserting then 1 else 0 end; + -- + -- Fetch source OSE. + -- + select s.libelle into newSourceName from source s where s.code = 'OSE'; - WHILE l_entry IS NOT NULL LOOP - -- Tous les attributs de l'entree: - BEGIN - l_attr_name := DBMS_LDAP.first_attribute(ld => ldap_sess, - ldapentry => l_entry, - ber_elem => l_ber_element); - EXCEPTION - WHEN DBMS_LDAP.INVALID_SESSION THEN - DBMS_OUTPUT.PUT_LINE('#Err 0040') ; - WHEN DBMS_LDAP.INVALID_MESSAGE THEN - DBMS_OUTPUT.PUT_LINE('#Err 0041') ; - END; + -- + -- Fetch et formattage texte des valeurs importées. + -- + select + i.id, + s.libelle, + nvl(i.NOM_USUEL, '(Aucun)'), + nvl(i.NOM_PATRONYMIQUE, '(Aucun)'), + nvl(i.PRENOM, '(Aucun)'), + nvl(c.libelle_court, '(Aucune)'), + nvl(to_char(i.DATE_NAISSANCE, 'DD/MM/YYYY'), '(Aucune)'), + nvl(ose_divers.formatted_rib(i.bic, i.iban), '(Aucun)'), + case when a.id is not null + then ose_divers.formatted_adresse(a.NO_VOIE, a.NOM_VOIE, a.BATIMENT, a.MENTION_COMPLEMENTAIRE, a.LOCALITE, a.CODE_POSTAL, a.VILLE, a.PAYS_LIBELLE) + else '(Aucune)' + end + into + intervenantId, + oldSourceName, + impNomUsuel, + impNomPatro, + impPrenom, + impCivilite, + impDateNaiss, + impRib, + impAdresse + from intervenant i + join source s on s.id = i.source_id + left join civilite c on c.id = i.civilite_id + left join adresse_intervenant a on a.intervenant_id = i.id + where i.id = :NEW.intervenant_id; - WHILE l_attr_name IS NOT NULL LOOP - -- Les valeurs de cet attribut - BEGIN - l_vals := DBMS_LDAP.get_values (ld => ldap_sess, - ldapentry => l_entry, - attr => l_attr_name); - EXCEPTION - WHEN DBMS_LDAP.INVALID_SESSION THEN - DBMS_OUTPUT.PUT_LINE('#Err 0044') ; - WHEN DBMS_LDAP.INVALID_MESSAGE THEN - DBMS_OUTPUT.PUT_LINE('#Err 0045') ; - END; + -- + -- Anciennes valeurs dans le cas d'une création de dossier : ce sont les valeurs importées. + -- + if (1 = estCreationDossier) then + --dbms_output.put_line('inserting'); + oldNomUsuel := impNomUsuel; + oldNomPatro := impNomPatro; + oldPrenom := impPrenom; + oldCivilite := impCivilite; + oldDateNaiss := impDateNaiss; + oldAdresse := impAdresse; + oldRib := impRib; + -- + -- Anciennes valeurs dans le cas d'une mise à jour du dossier. + -- + else + --dbms_output.put_line('updating'); + oldNomUsuel := trim(:OLD.NOM_USUEL); + oldNomPatro := trim(:OLD.NOM_PATRONYMIQUE); + oldPrenom := trim(:OLD.PRENOM); + oldDateNaiss := case when :OLD.DATE_NAISSANCE is null then '(Aucune)' else to_char(:OLD.DATE_NAISSANCE, 'DD/MM/YYYY') end; + oldAdresse := trim(:OLD.ADRESSE); + oldRib := trim(:OLD.RIB); + if :OLD.CIVILITE_ID is not null then + select c.libelle_court into oldCivilite from civilite c where c.id = :OLD.CIVILITE_ID; + else + oldCivilite := '(Aucune)'; + end if; + select s.libelle into oldSourceName from source s where s.code = 'OSE'; + end if; - -- On ne retourne que la premiere valeur - CASE - WHEN l_attr_name = 'uid' THEN l_uid := l_vals(l_vals.FIRST) ; - WHEN l_attr_name = 'ucbnStatus' THEN l_ucbnstatus := l_vals(l_vals.FIRST) ; - WHEN l_attr_name = 'supannAliasLogin' THEN l_login := l_vals(l_vals.FIRST) ; - WHEN l_attr_name = 'sn' THEN l_nom_usuel := l_vals(l_vals.FIRST) ; - WHEN l_attr_name = 'givenName' THEN l_prenom := l_vals(l_vals.FIRST) ; - WHEN l_attr_name = 'dateDeNaissance' THEN l_d_naissance := l_vals(l_vals.FIRST) ; - WHEN l_attr_name = 'dateFinInscription' THEN l_d_fin_insc := l_vals(l_vals.FIRST) ; - WHEN l_attr_name = 'supannEntiteAffectation' THEN l_affectation := SUBSTR( l_vals(l_vals.FIRST), 4 ) ; - WHEN l_attr_name = 'supannParrainDN' THEN l_parrain_dn := l_vals(l_vals.FIRST) ; - END CASE ; - - -- Attribut suivant - BEGIN - l_attr_name := DBMS_LDAP.next_attribute(ld => ldap_sess, - ldapentry => l_entry, - ber_elem => l_ber_element); - EXCEPTION - WHEN DBMS_LDAP.INVALID_SESSION THEN - DBMS_OUTPUT.PUT_LINE('#Err 0042') ; - WHEN DBMS_LDAP.INVALID_MESSAGE THEN - DBMS_OUTPUT.PUT_LINE('#Err 0043') ; - END; - END LOOP ; -- LOOP Fin des attributs - - -- On insere les valeurs dans la table - dbms_output.put_line('uid= '||l_uid||' ('||l_affectation||') fin: '||l_d_fin_insc) ; - requete := 'SELECT count(*) FROM '||l_table||' WHERE ldap_uid= :l_uid' ; - EXECUTE IMMEDIATE requete INTO nb_res USING l_uid ; - IF nb_res = 0 THEN - -- un INSERT - requete := 'INSERT INTO '||l_table||'(ucbnstatus, login, nom_usuel, prenom, d_naissance, d_fin_insc, affectation, parrain_dn, ldap_uid) VALUES ' ; - requete := requete||'(:l_ucbnstatus, :l_login, :l_nom_usuel, :l_prenom, to_date(:l_d_naissance,''YYYYMMDD''), to_date(:l_d_fin_insc,''YYYYMMDD''), :l_affectation, :l_parrain_dn, :l_uid )' ; - dbms_output.put_line('req= '||requete) ; - ELSE - -- un UPDATE - requete := 'UPDATE '||l_table||' SET ' ; - requete := requete||'ucbnstatus=:l_ucbnstatus, login=:l_login, nom_usuel=:l_nom_usuel, prenom=:l_prenom, d_naissance=to_date(:l_d_naissance,''YYYYMMDD''), ' ; - requete := requete||'d_fin_insc=to_date(:l_d_fin_insc,''YYYYMMDD''), affectation=:l_affectation, parrain_dn=:l_parrain_dn ' ; - requete := requete||'WHERE ldap_uid=:l_uid' ; - dbms_output.put_line('req= '||requete) ; - END IF ; - -- Execution de la mise a jour de la table: - -- Attention, les variables sont bindees selon l'ordre, pas le nom !!!! - -- http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/dynamic.htm#LNPLS631 - EXECUTE IMMEDIATE requete USING l_ucbnstatus, l_login, l_nom_usuel, l_prenom, l_d_naissance, l_d_fin_insc, l_affectation, l_parrain_dn, l_uid ; - - IF l_ber_element IS NOT NULL THEN - DBMS_LDAP.ber_free(l_ber_element, 0) ; - END IF ; - - BEGIN - l_entry := DBMS_LDAP.next_entry(ld => ldap_sess, - msg => l_entry); - EXCEPTION - WHEN DBMS_LDAP.INVALID_SESSION THEN - DBMS_OUTPUT.PUT_LINE('#Err 0036') ; - WHEN DBMS_LDAP.INVALID_MESSAGE THEN - DBMS_OUTPUT.PUT_LINE('#Err 0037') ; - END; + -- + -- Nouvelles valeurs saisies. + -- + newNomUsuel := trim(:NEW.NOM_USUEL); + newNomPatro := trim(:NEW.NOM_PATRONYMIQUE); + newPrenom := trim(:NEW.PRENOM); + newDateNaiss := case when :NEW.DATE_NAISSANCE is null then '(Aucune)' else to_char(:NEW.DATE_NAISSANCE, 'DD/MM/YYYY') end; + newAdresse := trim(:NEW.ADRESSE); + newRib := trim(:NEW.RIB); + if :NEW.CIVILITE_ID is not null then + select c.libelle_court into newCivilite from civilite c where c.id = :NEW.CIVILITE_ID; + else + newCivilite := '(Aucune)'; + end if; - END LOOP ; -- LOOP Fin des entrees + -- + -- Détection des différences. + -- + if newNomUsuel <> oldNomUsuel then + --dbms_output.put_line('NOM_USUEL ' || sourceLib || ' = ' || oldNomUsuel || ' --> NOM_USUEL OSE = ' || :NEW.NOM_USUEL); + attrNames.extend(1); + attrOldVals.extend(1); + attrNewVals.extend(1); + attrNames(i) := 'Nom usuel'; + attrOldVals(i) := oldNomUsuel; + attrNewVals(i) := newNomUsuel; + i := i + 1; + end if; + if newNomPatro <> oldNomPatro then + --dbms_output.put_line('NOM_PATRONYMIQUE ' || sourceLib || ' = ' || oldNomPatro || ' --> NOM_PATRONYMIQUE OSE = ' || :NEW.NOM_PATRONYMIQUE); + attrNames.extend(1); + attrOldVals.extend(1); + attrNewVals.extend(1); + attrNames(i) := 'Nom de naissance'; + attrOldVals(i) := oldNomPatro; + attrNewVals(i) := newNomPatro; + i := i + 1; + end if; + if newPrenom <> oldPrenom then + --dbms_output.put_line('PRENOM ' || sourceLib || ' = ' || oldPrenom || ' --> PRENOM OSE = ' || :NEW.PRENOM); + attrNames.extend(1); + attrOldVals.extend(1); + attrNewVals.extend(1); + attrNames(i) := 'Prénom'; + attrOldVals(i) := oldPrenom; + attrNewVals(i) := newPrenom; + i := i + 1; + end if; + if newCivilite <> oldCivilite then + --dbms_output.put_line('CIVILITE_ID ' || sourceLib || ' = ' || oldCivilite || ' --> CIVILITE_ID OSE = ' || :NEW.CIVILITE_ID); + attrNames.extend(1); + attrOldVals.extend(1); + attrNewVals.extend(1); + attrNames(i) := 'Civilité'; + attrOldVals(i) := oldCivilite; + attrNewVals(i) := newCivilite; + i := i + 1; + end if; + if newDateNaiss <> oldDateNaiss then + --dbms_output.put_line('DATE_NAISSANCE ' || sourceLib || ' = ' || oldDateNaiss || ' --> DATE_NAISSANCE OSE = ' || :NEW.DATE_NAISSANCE); + attrNames.extend(1); + attrOldVals.extend(1); + attrNewVals.extend(1); + attrNames(i) := 'Date de naissance'; + attrOldVals(i) := oldDateNaiss; + attrNewVals(i) := newDateNaiss; + i := i + 1; + end if; + if newAdresse <> oldAdresse then + --dbms_output.put_line('ADRESSE ' || sourceLib || ' = ' || oldAdresse || ' --> ADRESSE OSE = ' || :NEW.ADRESSE); + attrNames.extend(1); + attrOldVals.extend(1); + attrNewVals.extend(1); + attrNames(i) := 'Adresse postale'; + attrOldVals(i) := oldAdresse; + attrNewVals(i) := newAdresse; + i := i + 1; + end if; + if oldRib is null or newRib <> oldRib then + --dbms_output.put_line('RIB ' || sourceLib || ' = ' || oldRib || ' --> RIB OSE = ' || :NEW.RIB); + attrNames.extend(1); + attrOldVals.extend(1); + attrNewVals.extend(1); + attrNames(i) := 'RIB'; + attrOldVals(i) := oldRib; + attrNewVals(i) := newRib; + i := i + 1; + end if; - -- Liberation de la memoire - IF l_entry IS NOT NULL THEN - l_retval := DBMS_LDAP.msgfree(l_entry) ; - END IF ; + -- + -- Enregistrement des différences. + -- + for i in 1 .. attrNames.count loop + --dbms_output.put_line(attrNames(i) || ' ' || oldSourceName || ' = ' || attrOldVals(i) || ' --> ' || attrNames(i) || ' ' || newSourceName || ' = ' || attrNewVals(i)); - -- Pas de deconnexion (on la reutilisera) - -- Par contre on COMMIT : - commit ; + -- vérification que la même modif n'est pas déjà consignée + select count(*) into found from indic_modif_dossier + where INTERVENANT_ID = intervenantId + and ATTR_NAME = attrNames(i) + and ATTR_OLD_VALUE = to_char(attrOldVals(i)) + and ATTR_NEW_VALUE = to_char(attrNewVals(i)); + if found > 0 then + continue; + end if; -END getInvites ; + insert into INDIC_MODIF_DOSSIER( + id, + INTERVENANT_ID, + ATTR_NAME, + ATTR_OLD_SOURCE_NAME, + ATTR_OLD_VALUE, + ATTR_NEW_SOURCE_NAME, + ATTR_NEW_VALUE, + EST_CREATION_DOSSIER, -- témoin indiquant s'il s'agit d'une création ou d'une modification de dossier + HISTO_CREATION, -- NB: date de modification du dossier + HISTO_CREATEUR_ID, -- NB: auteur de la modification du dossier + HISTO_MODIFICATION, + HISTO_MODIFICATEUR_ID + ) + values ( + indic_modif_dossier_id_seq.nextval, + intervenantId, + attrNames(i), + oldSourceName, + to_char(attrOldVals(i)), + newSourceName, + to_char(attrNewVals(i)), + estCreationDossier, + :NEW.HISTO_MODIFICATION, + :NEW.HISTO_MODIFICATEUR_ID, + :NEW.HISTO_MODIFICATION, + :NEW.HISTO_MODIFICATEUR_ID + ); + end loop; +END; -END ucbn_ldap ; / +ALTER TRIGGER "INDIC_TRG_MODIF_DOSSIER" ENABLE; --- UNICAEN_IMPORT -CREATE OR REPLACE PACKAGE BODY "UNICAEN_IMPORT" AS - - v_current_user INTEGER; - v_current_annee INTEGER; - - - - FUNCTION get_current_user RETURN INTEGER IS - BEGIN - IF v_current_user IS NULL THEN - v_current_user := OSE_PARAMETRE.GET_OSE_USER(); - END IF; - RETURN v_current_user; - END get_current_user; - - PROCEDURE set_current_user (p_current_user INTEGER) is - BEGIN - v_current_user := p_current_user; - END set_current_user; - - - - FUNCTION get_current_annee RETURN INTEGER IS +-- INTERVENANT_HORO_SERVICE +CREATE OR REPLACE TRIGGER "INTERVENANT_HORO_SERVICE" + AFTER INSERT OR DELETE OR UPDATE ON "SERVICE" + REFERENCING FOR EACH ROW BEGIN - IF v_current_annee IS NULL THEN - v_current_annee := OSE_PARAMETRE.GET_ANNEE_IMPORT(); - END IF; - RETURN v_current_annee; - END get_current_annee; - PROCEDURE set_current_annee (p_current_annee INTEGER) IS - BEGIN - v_current_annee := p_current_annee; - END set_current_annee; + IF DELETING THEN + ose_divers.intervenant_horodatage_service( + :OLD.intervenant_id, + null, + 0, + :OLD.histo_modificateur_id, + :OLD.histo_modification + ); + ELSE - PROCEDURE SYNCHRONISATION( table_name VARCHAR2, SYNC_FILRE CLOB DEFAULT '', IGNORE_UPD_COLS CLOB DEFAULT '' ) IS - ok NUMERIC(1); - BEGIN - SELECT COUNT(*) INTO ok FROM import_tables it WHERE it.table_name = SYNCHRONISATION.table_name AND it.sync_enabled = 1 AND rownum = 1; + ose_divers.intervenant_horodatage_service( + :NEW.intervenant_id, + null, + 0, + :NEW.histo_modificateur_id, + :NEW.histo_modification + ); - IF 1 = ok THEN - z__SYNC_FILRE__z := SYNCHRONISATION.SYNC_FILRE; - z__IGNORE_UPD_COLS__z := SYNCHRONISATION.IGNORE_UPD_COLS; - EXECUTE IMMEDIATE 'BEGIN UNICAEN_IMPORT_AUTOGEN_PROCS__.' || table_name || '(); END;'; - END IF; - END; + END IF; +END; +/ +ALTER TRIGGER "INTERVENANT_HORO_SERVICE" ENABLE; - PROCEDURE REFRESH_MV( mview_name varchar2 ) IS +-- INTERVENANT_HORO_SERVICE_REF +CREATE OR REPLACE TRIGGER "INTERVENANT_HORO_SERVICE_REF" + AFTER INSERT OR DELETE OR UPDATE ON "SERVICE_REFERENTIEL" + REFERENCING FOR EACH ROW BEGIN - DBMS_MVIEW.REFRESH(mview_name, 'C'); - EXCEPTION WHEN OTHERS THEN - SYNC_LOG( SQLERRM, mview_name ); - END; + IF DELETING THEN + ose_divers.intervenant_horodatage_service( + :OLD.intervenant_id, + null, + 1, + :OLD.histo_modificateur_id, + :OLD.histo_modification + ); - PROCEDURE SYNC_LOG( message CLOB, table_name VARCHAR2 DEFAULT NULL, source_code VARCHAR2 DEFAULT NULL ) IS - BEGIN - INSERT INTO SYNC_LOG("ID","DATE_SYNC","MESSAGE","TABLE_NAME","SOURCE_CODE") VALUES (SYNC_LOG_ID_SEQ.NEXTVAL, SYSDATE, message,table_name,source_code); - END SYNC_LOG; + ELSE + ose_divers.intervenant_horodatage_service( + :NEW.intervenant_id, + null, + 1, + :NEW.histo_modificateur_id, + :NEW.histo_modification + ); + END IF; - FUNCTION IN_COLUMN_LIST( VALEUR VARCHAR2, CHAMPS CLOB ) RETURN NUMERIC IS - BEGIN - IF REGEXP_LIKE(CHAMPS, '(^|,)[ \t\r\n\v\f]*' || VALEUR || '[ \t\r\n\v\f]*(,|$)') THEN RETURN 1; END IF; - RETURN 0; - END; +END; -END UNICAEN_IMPORT; / +ALTER TRIGGER "INTERVENANT_HORO_SERVICE_REF" ENABLE; --- UNICAEN_OSE_FORMULE -CREATE OR REPLACE PACKAGE BODY "UNICAEN_OSE_FORMULE" AS +-- INTERVENANT_HORO_VH +CREATE OR REPLACE TRIGGER "INTERVENANT_HORO_VH" + AFTER INSERT OR DELETE OR UPDATE ON "VOLUME_HORAIRE" + REFERENCING FOR EACH ROW + DECLARE + intervenant_id NUMERIC; +BEGIN - /* Stockage des valeurs intermédiaires */ - TYPE t_valeurs IS TABLE OF FLOAT INDEX BY PLS_INTEGER; - TYPE t_tableau IS RECORD ( - valeurs t_valeurs, - total FLOAT DEFAULT 0 - ); - TYPE t_tableaux IS TABLE OF t_tableau INDEX BY PLS_INTEGER; - t t_tableaux; - current_id PLS_INTEGER; - /* Accès au stockage des valeurs intermédiaires */ - -- Initialisation des tableaux de valeurs intermédiaires - PROCEDURE V_INIT IS - BEGIN - t.delete; - END; - -- Setter d'une valeur intermédiaire au niveau case - PROCEDURE SV( tab_index PLS_INTEGER, id PLS_INTEGER, val FLOAT ) IS - BEGIN - t(tab_index).valeurs(id) := val; - t(tab_index).total := t(tab_index).total + val; - END; + IF DELETING THEN + SELECT s.intervenant_id INTO intervenant_id FROM service s WHERE s.id = :OLD.service_id; - -- Setter d'une valeur intermédiaire au niveau tableau - PROCEDURE SV( tab_index PLS_INTEGER, val FLOAT ) IS - BEGIN - t(tab_index).total := val; - END; + ose_divers.intervenant_horodatage_service( + intervenant_id, + :OLD.type_volume_horaire_id, + 0, + :OLD.histo_modificateur_id, + :OLD.histo_modification + ); - -- Getter d'une valeur intermédiaire, au niveau case - FUNCTION GV( tab_index PLS_INTEGER, id PLS_INTEGER DEFAULT NULL ) RETURN FLOAT IS - BEGIN - IF NOT t.exists(tab_index) THEN RETURN 0; END IF; - IF NOT t(tab_index).valeurs.exists( NVL(id,current_id) ) THEN RETURN 0; END IF; - RETURN t(tab_index).valeurs( NVL(id,current_id) ); - END; + ELSE + SELECT s.intervenant_id INTO intervenant_id FROM service s WHERE s.id = :NEW.service_id; - -- Getter d'une valeur intermédiaire, au niveau tableau - FUNCTION GT( tab_index PLS_INTEGER ) RETURN FLOAT IS - BEGIN - IF NOT t.exists(tab_index) THEN RETURN 0; END IF; - RETURN t(tab_index).total; - END; + ose_divers.intervenant_horodatage_service( + intervenant_id, + :NEW.type_volume_horaire_id, + 0, + :NEW.histo_modificateur_id, + :NEW.histo_modification + ); + END IF; - /* Débogage des valeurs intermédiaires */ - PROCEDURE DEBUG_TAB( tab_index PLS_INTEGER ) IS - id PLS_INTEGER; - BEGIN - ose_test.echo( 'Tableau numéro ' || tab_index ); +END; - id := ose_formule.d_service.FIRST; - LOOP EXIT WHEN id IS NULL; - dbms_output.put( 'Service id=' || lpad(id,6,' ') || ', data = ' ); +/ +ALTER TRIGGER "INTERVENANT_HORO_VH" ENABLE; - current_id := ose_formule.d_volume_horaire.FIRST; - LOOP EXIT WHEN current_id IS NULL; - dbms_output.put( lpad(gv(tab_index),10,' ') || ' | ' ); - current_id := ose_formule.d_volume_horaire.NEXT(current_id); - END LOOP; - dbms_output.new_line; - id := ose_formule.d_service.NEXT(id); - END LOOP; +-- INTERVENANT_HORO_VH_REF +CREATE OR REPLACE TRIGGER "INTERVENANT_HORO_VH_REF" + AFTER INSERT OR DELETE OR UPDATE ON "VOLUME_HORAIRE_REF" + REFERENCING FOR EACH ROW + DECLARE + intervenant_id NUMERIC; +BEGIN - ose_test.echo( 'TOTAL = ' || LPAD(gt(tab_index), 10, ' ') ); - END; + IF DELETING THEN + SELECT s.intervenant_id INTO intervenant_id FROM service_referentiel s WHERE s.id = :OLD.service_referentiel_id; - /* Calcul des valeurs intermédiaires */ - FUNCTION C2_11( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + ose_divers.intervenant_horodatage_service( + intervenant_id, + :OLD.type_volume_horaire_id, + 1, + :OLD.histo_modificateur_id, + :OLD.histo_modification + ); - IF NVL(s.structure_ens_id,0) = NVL(s.structure_aff_id,0) AND s.taux_fc < 1 THEN - RETURN vh.heures; - ELSE - RETURN 0; - END IF; - END; + ELSE + SELECT s.intervenant_id INTO intervenant_id FROM service_referentiel s WHERE s.id = :NEW.service_referentiel_id; - FUNCTION C3_11( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + ose_divers.intervenant_horodatage_service( + intervenant_id, + :NEW.type_volume_horaire_id, + 1, + :NEW.histo_modificateur_id, + :NEW.histo_modification + ); - IF NVL(s.structure_ens_id,0) = NVL(s.structure_aff_id,0) THEN - RETURN vh.heures * (s.taux_fi + s.taux_fa); - ELSE - RETURN 0; - END IF; - END; + END IF; - FUNCTION C2_12( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); +END; - IF NVL(s.structure_ens_id,0) <> NVL(s.structure_aff_id,0) AND s.taux_fc < 1 THEN - RETURN vh.heures; - ELSE - RETURN 0; - END IF; - END; +/ +ALTER TRIGGER "INTERVENANT_HORO_VH_REF" ENABLE; - FUNCTION C3_12( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; +-- INTERVENANT_RECHERCHE +CREATE OR REPLACE TRIGGER "INTERVENANT_RECHERCHE" + BEFORE INSERT OR UPDATE OF NOM_USUEL, PRENOM, NOM_PATRONYMIQUE ON "INTERVENANT" + REFERENCING FOR EACH ROW BEGIN - s := ose_formule.d_service( vh.service_id ); - IF NVL(s.structure_ens_id,0) <> NVL(s.structure_aff_id,0) THEN - RETURN vh.heures * (s.taux_fi + s.taux_fa); - ELSE - RETURN 0; - END IF; - END; + :NEW.critere_recherche := ose_divers.str_reduce( :NEW.nom_usuel || ' ' || :NEW.nom_patronymique || ' ' || :NEW.prenom ); - FUNCTION C2_13( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); +END; - IF NVL(s.structure_ens_id,0) = NVL(s.structure_aff_id,0) AND s.taux_fc = 1 THEN - RETURN vh.heures; - ELSE - RETURN 0; - END IF; - END; +/ +ALTER TRIGGER "INTERVENANT_RECHERCHE" ENABLE; - FUNCTION C3_13( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); +-- MISE_EN_PAIEMENT_CK +CREATE OR REPLACE TRIGGER "MISE_EN_PAIEMENT_CK" + BEFORE INSERT OR UPDATE ON "MISE_EN_PAIEMENT" + REFERENCING FOR EACH ROW + DECLARE + has_validation NUMERIC; + has_mise_en_paiement NUMERIC; +BEGIN - IF NVL(s.structure_ens_id,0) = NVL(s.structure_aff_id,0) THEN - RETURN vh.heures * s.taux_fc; - ELSE - RETURN 0; - END IF; - END; + /* Initialisation des conditions */ + SELECT COUNT(*) INTO has_validation FROM validation v WHERE + v.id = :NEW.validation_id + AND v.histo_destruction IS NULL; - FUNCTION C2_14( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + IF :NEW.date_mise_en_paiement IS NULL THEN + has_mise_en_paiement := 0; + ELSE + has_mise_en_paiement := 1; + END IF; + + /* Mise en place des contraintes */ + IF :NEW.formule_res_service_id IS NULL AND :NEW.formule_res_service_ref_id IS NULL THEN + raise_application_error(-20101, 'La mise en paiement ne correspond à aucun service ou service référentiel.'); + END IF; + + IF 1 = has_validation AND :NEW.date_validation IS NULL THEN + raise_application_error(-20101, 'La validation de la mise en paiement numéro ' || :NEW.id || ' est bien renseignée mais la date de validation n''est pas précisée.'); + END IF; + + IF :NEW.periode_paiement_id IS NOT NULL AND :NEW.date_mise_en_paiement IS NULL THEN + raise_application_error(-20101, 'La mise en paiement numéro ' || :NEW.id || ' est bien effectuée mais la date de mise en paiement n''est pas précisée.'); + END IF; + +-- IF 0 = has_validation AND 1 = has_mise_en_paiement THEN +-- raise_application_error(-20101, 'La demande de mise en paiement numéro ' || :NEW.id || ' ne peut faire l''objet d''une mise en paiement tant qu''elle n''est pas validée.'); +-- END IF; - IF NVL(s.structure_ens_id,0) <> NVL(s.structure_aff_id,0) AND s.taux_fc = 1 THEN - RETURN vh.heures; - ELSE - RETURN 0; - END IF; - END; + IF + :OLD.validation_id IS NOT NULL AND :OLD.histo_destruction IS NULL + AND 1 = has_validation AND :NEW.histo_destruction IS NOT NULL + THEN + raise_application_error(-20101, 'Il est impossible de supprimer une mise en paiement validée.'); + END IF; +END; - FUNCTION C3_14( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); - IF NVL(s.structure_ens_id,0) <> NVL(s.structure_aff_id,0) THEN - RETURN vh.heures * s.taux_fc; - ELSE - RETURN 0; - END IF; - END; +/ +ALTER TRIGGER "MISE_EN_PAIEMENT_CK" ENABLE; - FUNCTION C2_15( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - f ose_formule.t_service_ref; - BEGIN - f := ose_formule.d_service_ref( fr.service_referentiel_id ); +-- MISE_EN_PAIEMENT_DEL_CK +CREATE OR REPLACE TRIGGER "MISE_EN_PAIEMENT_DEL_CK" + BEFORE DELETE ON "MISE_EN_PAIEMENT" + REFERENCING FOR EACH ROW + DECLARE + has_validation NUMERIC; +BEGIN - IF NVL(ose_formule.d_intervenant.structure_id,0) = NVL(f.structure_id,0) THEN - RETURN fr.heures; - ELSE - RETURN 0; - END IF; - END; + /* Initialisation des conditions */ + SELECT COUNT(*) INTO has_validation FROM validation v WHERE + v.id = :NEW.validation_id + AND v.histo_destruction IS NULL; - FUNCTION C2_16( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - f ose_formule.t_service_ref; - BEGIN - f := ose_formule.d_service_ref( fr.service_referentiel_id ); + /* Mise en place des contraintes */ + IF + 1 = has_validation AND :OLD.histo_destruction IS NOT NULL + THEN + raise_application_error(-20101, 'Il est impossible de supprimer une mise en paiement validée.'); + END IF; +END; - IF NVL(ose_formule.d_intervenant.structure_id,0) <> NVL(f.structure_id,0) AND NVL(f.structure_id,0) <> ose_divers.STRUCTURE_UNIV_GET_ID THEN - RETURN fr.heures; - ELSE - RETURN 0; - END IF; - END; - FUNCTION C2_17( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - f ose_formule.t_service_ref; - BEGIN - f := ose_formule.d_service_ref( fr.service_referentiel_id ); +/ +ALTER TRIGGER "MISE_EN_PAIEMENT_DEL_CK" ENABLE; - IF NVL(f.structure_id,0) = ose_divers.STRUCTURE_UNIV_GET_ID THEN - RETURN fr.heures; - ELSE - RETURN 0; - END IF; - END; +-- SERVICE_CK +CREATE OR REPLACE TRIGGER "SERVICE_CK" + BEFORE INSERT OR UPDATE ON "SERVICE" + REFERENCING FOR EACH ROW + DECLARE + etablissement integer; + res integer; +BEGIN - FUNCTION C2_21( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - RETURN gv(11) * vh.taux_service_du; - END; + etablissement := OSE_PARAMETRE.GET_ETABLISSEMENT(); - FUNCTION C2_22( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - RETURN gv(12) * vh.taux_service_du; - END; + IF :NEW.etablissement_id = etablissement AND :NEW.element_pedagogique_id IS NULL THEN + raise_application_error(-20101, 'Un enseignement doit obligatoirement être renseigné si le service est réalisé en interne.'); + END IF; - FUNCTION C2_23( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - RETURN gv(13) * vh.taux_service_du; - END; - FUNCTION C2_24( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - RETURN gv(14) * vh.taux_service_du; - END; + IF :NEW.etablissement_id <> etablissement AND OSE_DIVERS.INTERVENANT_HAS_PRIVILEGE(:NEW.intervenant_id, 'saisie_service_exterieur') = 0 THEN + raise_application_error(-20101, 'Les intervenants vacataires n''ont pas la possibilité de renseigner des enseignements pris à l''extérieur.'); + END IF; - FUNCTION C2_25( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - RETURN gv(15); - END; + IF :NEW.intervenant_id IS NOT NULL AND :NEW.element_pedagogique_id IS NOT NULL THEN + SELECT + count(*) INTO res + FROM + intervenant i, + element_pedagogique ep + WHERE + i.id = :NEW.intervenant_id + AND ep.id = :NEW.element_pedagogique_id + AND ep.annee_id = i.annee_id + ; - FUNCTION C2_26( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - RETURN gv(16); - END; + IF 0 = res THEN -- années non concomitantes + raise_application_error(-20101, 'L''année de l''intervenant ne correspond pas à l''année de l''élément pédagogique.'); + END IF; + END IF; - FUNCTION C2_27( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - RETURN gv(17); - END; +END; - FUNCTION C2_31 RETURN FLOAT IS - BEGIN - RETURN GREATEST( ose_formule.d_resultat.service_du - gt(21), 0 ); - END; +/ +ALTER TRIGGER "SERVICE_CK" ENABLE; - FUNCTION C2_32 RETURN FLOAT IS - BEGIN - RETURN GREATEST( gt(31) - gt(22), 0 ); - END; +-- SERVICE_HISTO_CK +CREATE OR REPLACE TRIGGER "SERVICE_HISTO_CK" + BEFORE UPDATE OF intervenant_id, element_pedagogique_id, etablissement_id ON "SERVICE" + REFERENCING FOR EACH ROW + DECLARE + has_validation integer; +BEGIN + SELECT COUNT(*) INTO has_validation + FROM + VALIDATION_VOL_HORAIRE vvh + JOIN validation v ON v.id = VVH.VALIDATION_ID + JOIN volume_horaire vh ON vh.id = VVH.VOLUME_HORAIRE_ID + WHERE + V.HISTO_DESTRUCTION IS NULL + AND vh.service_ID = :NEW.ID; - FUNCTION C2_33 RETURN FLOAT IS - BEGIN - RETURN GREATEST( gt(32) - gt(23), 0 ); - END; + IF 0 <> has_validation THEN + raise_application_error(-20101, 'Il est impossible de modifier ou supprimer un service dont des heures ont déjà été validées.'); + END IF; - FUNCTION C2_34 RETURN FLOAT IS - BEGIN - RETURN GREATEST( gt(33) - gt(24), 0 ); - END; +END; - FUNCTION C2_35 RETURN FLOAT IS - BEGIN - RETURN GREATEST( gt(34) - gt(25), 0 ); - END; +/ +ALTER TRIGGER "SERVICE_HISTO_CK" ENABLE; - FUNCTION C2_36 RETURN FLOAT IS +-- SERVICE_HISTO_CK_S +CREATE OR REPLACE TRIGGER "SERVICE_HISTO_CK_S" + AFTER UPDATE ON "SERVICE" BEGIN - RETURN GREATEST( gt(35) - gt(26), 0 ); - END; + -- En cas de restauration d'un service, on ne restaure pas les historiques de volumes horaires pour ne pas récussiter d'éventuels volume horaires indésirables car préalablement supprimés + FOR s IN ( - FUNCTION C2_37 RETURN FLOAT IS - BEGIN - RETURN GREATEST( gt(36) - gt(27), 0 ); - END; + SELECT * + FROM + service s + WHERE + s.histo_destruction IS NOT NULL AND s.histo_destruction > SYSDATE - 1 - FUNCTION C2_41( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - IF gt(21) <> 0 THEN - RETURN gv(21) / gt(21); - ELSE - RETURN 0; - END IF; - END; + ) LOOP - FUNCTION C2_42( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - IF gt(22) <> 0 THEN - RETURN gv(22) / gt(22); - ELSE - RETURN 0; - END IF; - END; + UPDATE VOLUME_HORAIRE SET histo_destruction = s.histo_destruction, histo_destructeur_id = s.histo_destructeur_id WHERE service_id = s.id AND VOLUME_HORAIRE.histo_destruction IS NULL; - FUNCTION C2_43( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - IF gt(23) <> 0 THEN - RETURN gv(23) / gt(23); - ELSE - RETURN 0; - END IF; - END; + END LOOP; - FUNCTION C2_44( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - IF gt(24) <> 0 THEN - RETURN gv(24) / gt(24); - ELSE - RETURN 0; - END IF; - END; +END; - FUNCTION C2_45( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - IF gt(25) <> 0 THEN - RETURN gv(25) / gt(25); - ELSE - RETURN 0; - END IF; - END; +/ +ALTER TRIGGER "SERVICE_HISTO_CK_S" ENABLE; - FUNCTION C2_46( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - IF gt(26) <> 0 THEN - RETURN gv(26) / gt(26); - ELSE - RETURN 0; - END IF; - END; +-- SERVICE_REFERENTIEL_HISTO_CK +CREATE OR REPLACE TRIGGER "SERVICE_REFERENTIEL_HISTO_CK" + BEFORE UPDATE OF FONCTION_ID, INTERVENANT_ID, STRUCTURE_ID, HISTO_DESTRUCTION ON "SERVICE_REFERENTIEL" + REFERENCING FOR EACH ROW + DECLARE + has_validation integer; +BEGIN + SELECT COUNT(*) INTO has_validation + FROM + VALIDATION_VOL_HORAIRE_REF vvh + JOIN validation v ON v.id = VVH.VALIDATION_ID + JOIN volume_horaire_ref vh ON vh.id = vvh.volume_horaire_ref_id + WHERE + V.HISTO_DESTRUCTION IS NULL + AND vh.service_referentiel_id = :OLD.ID; + + IF 0 <> has_validation THEN + raise_application_error(-20101, 'Il est impossible de modifier ou supprimer du référentiel dont des heures ont déjà été validées.'); + END IF; - FUNCTION C2_47( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - IF gt(27) <> 0 THEN - RETURN gv(27) / gt(27); - ELSE - RETURN 0; - END IF; - END; +END; - FUNCTION C2_51( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - RETURN LEAST( ose_formule.d_resultat.service_du, gt(21) ) * gv(41); - END; +/ +ALTER TRIGGER "SERVICE_REFERENTIEL_HISTO_CK" ENABLE; - FUNCTION C2_52( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS +-- T_CRG_ETAPE +CREATE OR REPLACE TRIGGER "T_CRG_ETAPE" + AFTER INSERT OR DELETE OR UPDATE OF HISTO_DESTRUCTION ON "ETAPE" + REFERENCING FOR EACH ROW BEGIN - RETURN LEAST( gt(31), gt(22) ) * gv(42); - END; + IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; - FUNCTION C2_53( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - RETURN LEAST( gt(32), gt(23) ) * gv(43); - END; + IF DELETING THEN + UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', 'etape_id = ' || :OLD.id || ' OR etape_ens_id = ' || :OLD.id ); + ELSE + UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', 'etape_id = ' || :NEW.id || ' OR etape_ens_id = ' || :NEW.id ); + END IF; - FUNCTION C2_54( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - RETURN LEAST( gt(33), gt(24) ) * gv(44); - END; +END; - FUNCTION C2_55( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - RETURN LEAST( gt(34), gt(25) ) * gv(45); - END; - FUNCTION C2_56( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - RETURN LEAST( gt(35), gt(26) ) * gv(46); - END; +/ +ALTER TRIGGER "T_CRG_ETAPE" ENABLE; - FUNCTION C2_57( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS +-- T_CRG_ETAPE_S +CREATE OR REPLACE TRIGGER "T_CRG_ETAPE_S" + AFTER INSERT OR DELETE OR UPDATE ON "ETAPE" BEGIN - RETURN LEAST( gt(36), gt(27) ) * gv(47); - END; + UNICAEN_TBL.CALCULER_DEMANDES; +END; - FUNCTION C2_61( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); - RETURN gv(51) * s.taux_fi; - END; +/ +ALTER TRIGGER "T_CRG_ETAPE_S" ENABLE; - FUNCTION C3_61( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; +-- T_CRG_SCENARIO_NOEUD +CREATE OR REPLACE TRIGGER "T_CRG_SCENARIO_NOEUD" + AFTER INSERT OR DELETE OR UPDATE OF SCENARIO_ID, NOEUD_ID, HISTO_DESTRUCTION ON "SCENARIO_NOEUD" + REFERENCING FOR EACH ROW BEGIN - s := ose_formule.d_service( vh.service_id ); + IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; - IF s.taux_fi + s.taux_fa > 0 THEN - RETURN gv(51) / (s.taux_fi + s.taux_fa) * s.taux_fi; - ELSE - RETURN 0; - END IF; - END; + IF DELETING THEN + UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('noeud_id', :OLD.noeud_id, 'scenario_id', :OLD.scenario_id ) ); + ELSE + UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('noeud_id', :NEW.noeud_id, 'scenario_id', :NEW.scenario_id ) ); + END IF; - FUNCTION C2_62( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); +END; - RETURN gv(52) * s.taux_fi; - END; - FUNCTION C3_62( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; +/ +ALTER TRIGGER "T_CRG_SCENARIO_NOEUD" ENABLE; + +-- T_CRG_SCENARIO_NOEUD_EFFECTIF +CREATE OR REPLACE TRIGGER "T_CRG_SCENARIO_NOEUD_EFFECTIF" + AFTER INSERT OR DELETE OR UPDATE OF SCENARIO_NOEUD_ID, TYPE_HEURES_ID, EFFECTIF, ETAPE_ID ON "SCENARIO_NOEUD_EFFECTIF" + REFERENCING FOR EACH ROW BEGIN - s := ose_formule.d_service( vh.service_id ); + IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; - IF s.taux_fi + s.taux_fa > 0 THEN - RETURN gv(52) / (s.taux_fi + s.taux_fa) * s.taux_fi; - ELSE - RETURN 0; + FOR p IN ( + + SELECT + sn.noeud_id, sn.scenario_id, n.etape_id + FROM + scenario_noeud sn + JOIN noeud n ON n.id = sn.noeud_id + WHERE + sn.id = :OLD.scenario_noeud_id OR sn.id = :NEW.scenario_noeud_id + + ) LOOP + + IF p.etape_id IS NOT NULL THEN + UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('etape_ens_id', p.etape_id, 'scenario_id', p.scenario_id ) ); END IF; - END; + UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('noeud_id', p.noeud_id, 'scenario_id', p.scenario_id ) ); - FUNCTION C2_71( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + END LOOP; - RETURN gv(51) * s.taux_fa; - END; +END; - FUNCTION C3_71( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); - IF s.taux_fi + s.taux_fa > 0 THEN - RETURN gv(51) / (s.taux_fi + s.taux_fa) * s.taux_fa; - ELSE - RETURN 0; - END IF; - END; +/ +ALTER TRIGGER "T_CRG_SCENARIO_NOEUD_EFFECTIF" ENABLE; - FUNCTION C2_72( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; +-- T_CRG_SCENARIO_NOEUD_SEUIL +CREATE OR REPLACE TRIGGER "T_CRG_SCENARIO_NOEUD_SEUIL" + AFTER INSERT OR DELETE OR UPDATE OF SCENARIO_NOEUD_ID, TYPE_INTERVENTION_ID, OUVERTURE, DEDOUBLEMENT, ASSIDUITE ON "SCENARIO_NOEUD_SEUIL" + REFERENCING FOR EACH ROW BEGIN - s := ose_formule.d_service( vh.service_id ); + IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; - RETURN gv(52) * s.taux_fa; - END; + FOR p IN ( - FUNCTION C3_72( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + SELECT + sn.noeud_id, sn.scenario_id, n.etape_id + FROM + scenario_noeud sn + JOIN noeud n ON n.id = sn.noeud_id + WHERE + sn.id = :OLD.scenario_noeud_id OR sn.id = :NEW.scenario_noeud_id - IF s.taux_fi + s.taux_fa > 0 THEN - RETURN gv(52) / (s.taux_fi + s.taux_fa) * s.taux_fa; - ELSE - RETURN 0; + ) LOOP + + IF p.etape_id IS NOT NULL THEN + UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('etape_ens_id', p.etape_id, 'scenario_id', p.scenario_id ) ); END IF; - END; + UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('noeud_id', p.noeud_id, 'scenario_id', p.scenario_id ) ); - FUNCTION C2_81( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + END LOOP; - RETURN gv(51) * s.taux_fc; - END; +END; - FUNCTION C2_82( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); - RETURN gv(52) * s.taux_fc; - END; +/ +ALTER TRIGGER "T_CRG_SCENARIO_NOEUD_SEUIL" ENABLE; - FUNCTION C2_83( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; +-- T_CRG_TYPE_INTERVENTION +CREATE OR REPLACE TRIGGER "T_CRG_TYPE_INTERVENTION" + AFTER INSERT OR DELETE OR UPDATE ON "TYPE_INTERVENTION" BEGIN - s := ose_formule.d_service( vh.service_id ); + UNICAEN_TBL.CALCULER_DEMANDES; +END; - RETURN gv(53) * s.taux_fc; - END; - FUNCTION C3_83( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - RETURN gv(53); - END; +/ +ALTER TRIGGER "T_CRG_TYPE_INTERVENTION" ENABLE; - FUNCTION C2_84( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; +-- T_CRG_VOLUME_HORAIRE_ENS +CREATE OR REPLACE TRIGGER "T_CRG_VOLUME_HORAIRE_ENS" + AFTER INSERT OR DELETE OR UPDATE OF ELEMENT_PEDAGOGIQUE_ID, TYPE_INTERVENTION_ID, HEURES, HISTO_DESTRUCTION ON "VOLUME_HORAIRE_ENS" + REFERENCING FOR EACH ROW BEGIN - s := ose_formule.d_service( vh.service_id ); + IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; - RETURN gv(54) * s.taux_fc; - END; + IF DELETING THEN + UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('element_pedagogique_id', :OLD.element_pedagogique_id ) ); + ELSE + UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('element_pedagogique_id', :NEW.element_pedagogique_id ) ); + END IF; - FUNCTION C3_84( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - RETURN gv(54); - END; +END; - FUNCTION C2_91( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - IF gv(21) <> 0 THEN - RETURN gv(51) / gv(21); - ELSE - RETURN 0; - END IF; - END; +/ +ALTER TRIGGER "T_CRG_VOLUME_HORAIRE_ENS" ENABLE; - FUNCTION C2_92( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - IF gv(22) <> 0 THEN - RETURN gv(52) / gv(22); - ELSE - RETURN 0; - END IF; - END; +-- VALIDATION_CK +CREATE OR REPLACE TRIGGER "VALIDATION_CK" + BEFORE DELETE OR UPDATE OF HISTO_DESTRUCTION, HISTO_DESTRUCTEUR_ID ON "VALIDATION" + REFERENCING FOR EACH ROW + DECLARE + v validation%rowtype; + err varchar2(500) default null; + pragma autonomous_transaction; +BEGIN + + IF deleting THEN + v.id := :OLD.id; + v.type_validation_id := :OLD.type_validation_id; + v.intervenant_id := :OLD.intervenant_id; + v.structure_id := :OLD.structure_id; + + + ELSIF :OLD.histo_destruction IS NULL AND :NEW.histo_destruction IS NOT NULL THEN + + v.id := :NEW.id; + v.type_validation_id := :NEW.type_validation_id; + v.intervenant_id := :NEW.intervenant_id; + v.structure_id := :NEW.structure_id; - FUNCTION C2_93( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - IF gv(23) <> 0 THEN - RETURN gv(53) / gv(23); - ELSE - RETURN 0; - END IF; - END; + END IF; - FUNCTION C2_94( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - IF gv(24) <> 0 THEN - RETURN gv(54) / gv(24); - ELSE - RETURN 0; - END IF; - END; + err := ose_validation.can_devalider( v ); - FUNCTION C2_95( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - IF gv(25) <> 0 THEN - RETURN gv(55) / gv(25); - ELSE - RETURN 0; - END IF; - END; + IF err is not null THEN + raise_application_error(-20101, err); + END IF; - FUNCTION C2_96( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - IF gv(26) <> 0 THEN - RETURN gv(56) / gv(26); - ELSE - RETURN 0; - END IF; - END; +END; - FUNCTION C2_97( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - IF gv(27) <> 0 THEN - RETURN gv(57) / gv(27); - ELSE - RETURN 0; - END IF; - END; +/ +ALTER TRIGGER "VALIDATION_CK" ENABLE; - FUNCTION C2_101( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - IF gt(37) <> 0 THEN - RETURN 0; - ELSE - RETURN 1 - gv(91); - END IF; - END; +-- VALIDATION_VOL_HORAIRE_CK +CREATE OR REPLACE TRIGGER "VALIDATION_VOL_HORAIRE_CK" + BEFORE INSERT OR DELETE OR UPDATE ON "VALIDATION_VOL_HORAIRE" + REFERENCING FOR EACH ROW + DECLARE + contrat_blinde NUMERIC; + donnee_historisee NUMERIC; + pragma autonomous_transaction; +BEGIN - FUNCTION C2_102( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - IF gt(37) <> 0 THEN - RETURN 0; - ELSE - RETURN 1 - gv(92); - END IF; - END; + if updating or deleting then - FUNCTION C2_103( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - IF gt(37) <> 0 THEN - RETURN 0; - ELSE - RETURN 1 - gv(93); - END IF; - END; + SELECT count(*) INTO contrat_blinde + FROM volume_horaire vh + JOIN contrat c ON c.id = vh.contrat_id AND c.histo_destruction IS NULL + WHERE vh.id = :OLD.volume_horaire_id; - FUNCTION C2_104( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - IF gt(37) <> 0 THEN - RETURN 0; - ELSE - RETURN 1 - gv(94); + -- Si des volumes horaires ont déjà fait l'objet de contrats alors pas de dévalidation possible des heures + IF contrat_blinde = 1 THEN + raise_application_error(-20101, 'La dévalidation est impossible car un contrat a déjà été édité sur la base de ces heures.'); END IF; - END; - FUNCTION C2_105( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - IF gt(37) <> 0 THEN - RETURN 0; - ELSE - RETURN 1 - gv(95); - END IF; - END; + else - FUNCTION C2_106( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - IF gt(37) <> 0 THEN - RETURN 0; - ELSE - RETURN 1 - gv(96); - END IF; - END; + -- si on en trouve un service, EP, étape ou VH historisé, problème + select count(*) into donnee_historisee + from service s + join element_pedagogique ep on s.element_pedagogique_id = ep.id + --join etape e on ep.etape_id = e.id + join volume_horaire vh on vh.service_id = s.id + where + vh.id = :NEW.volume_horaire_id + AND ( + s.histo_destructeur_id is not null + or ep.histo_destructeur_id is not null + --or e.histo_destructeur_id is not null + or (vh.histo_destructeur_id is not null) + ) + AND vh.heures > 0; - FUNCTION C2_107( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - IF gt(37) <> 0 THEN - RETURN 0; - ELSE - RETURN 1 - gv(97); + IF donnee_historisee > 0 THEN + raise_application_error(-20101, :NEW.volume_horaire_id || ' La validation est impossible car elle porte sur des données historisées (supprimées).'); END IF; - END; - FUNCTION C2_111( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - RETURN gv(11) * vh.taux_service_compl * gv(101); - END; + end if; - FUNCTION C2_112( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - RETURN gv(12) * vh.taux_service_compl * gv(102); - END; +END; - FUNCTION C2_113( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - RETURN gv(13) * vh.taux_service_compl * gv(103); - END; - FUNCTION C2_114( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - BEGIN - RETURN gv(14) * vh.taux_service_compl * gv(104); - END; +/ +ALTER TRIGGER "VALIDATION_VOL_HORAIRE_CK" ENABLE; - FUNCTION C2_115( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS +-- VOLUME_HORAIRE_CK +CREATE OR REPLACE TRIGGER "VOLUME_HORAIRE_CK" + BEFORE INSERT OR UPDATE ON "VOLUME_HORAIRE" + REFERENCING FOR EACH ROW + DECLARE + has_validation NUMERIC; + modified BOOLEAN; + intervenant_id NUMERIC; BEGIN - RETURN gv(15) * gv(105); - END; + IF :OLD.motif_non_paiement_id IS NULL AND :NEW.motif_non_paiement_id IS NOT NULL THEN + SELECT s.intervenant_id INTO intervenant_id FROM service s WHERE s.id = :NEW.service_id; + IF 0 = ose_divers.intervenant_has_privilege( intervenant_id, 'saisie_motif_non_paiement') THEN + raise_application_error(-20101, 'Il est impossible d''associer un motif de non paiement à cet intervenant.'); + END IF; + END IF; - FUNCTION C2_116( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - RETURN gv(16) * gv(106); - END; + IF :NEW.motif_non_paiement_id IS NOT NULL AND :NEW.contrat_id IS NOT NULL THEN + raise_application_error(-20101, 'Les heures ayant un motif de non paiement ne peuvent faire l''objet d''une contractualisation'); + END IF; - FUNCTION C2_117( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS - BEGIN - RETURN gv(17) * gv(107); - END; + modified := + NVL(:NEW.id,0) <> NVL(:OLD.id,0) + OR NVL(:NEW.type_volume_horaire_id,0) <> NVL(:OLD.type_volume_horaire_id,0) + OR NVL(:NEW.service_id,0) <> NVL(:OLD.service_id,0) + OR NVL(:NEW.periode_id,0) <> NVL(:OLD.periode_id,0) + OR NVL(:NEW.type_intervention_id,0) <> NVL(:OLD.type_intervention_id,0) + OR NVL(:NEW.heures,0) <> NVL(:OLD.heures,0) + OR NVL(:NEW.motif_non_paiement_id,0) <> NVL(:OLD.motif_non_paiement_id,0) + OR NVL(:NEW.histo_creation,SYSDATE) <> NVL(:OLD.histo_creation,SYSDATE) + OR NVL(:NEW.histo_createur_id,0) <> NVL(:OLD.histo_createur_id,0) + OR NVL(:NEW.histo_destruction,SYSDATE) <> NVL(:OLD.histo_destruction,SYSDATE) + OR NVL(:NEW.histo_destructeur_id,0) <> NVL(:OLD.histo_destructeur_id,0); - FUNCTION C2_123( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + SELECT + COUNT(*) + INTO + has_validation + FROM + VALIDATION_VOL_HORAIRE vvh + JOIN validation v ON v.id = VVH.VALIDATION_ID + WHERE + V.HISTO_DESTRUCTION IS NULL + AND vvh.VOLUME_HORAIRE_ID = :NEW.ID; - IF s.taux_fc = 1 THEN - RETURN gv(113) * s.ponderation_service_compl; - ELSE - RETURN gv(113); + IF modified AND 0 <> has_validation THEN + raise_application_error(-20101, 'Il est impossible de modifier des heures déjà validées.'); END IF; END; - FUNCTION C3_123( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); +/ +ALTER TRIGGER "VOLUME_HORAIRE_CK" ENABLE; - IF s.taux_fc > 0 THEN - RETURN gv(113) * s.ponderation_service_compl; - ELSE - RETURN gv(113); - END IF; - END; +-- VOLUME_HORAIRE_DEL_CK +CREATE OR REPLACE TRIGGER "VOLUME_HORAIRE_DEL_CK" + BEFORE DELETE ON "VOLUME_HORAIRE" + REFERENCING FOR EACH ROW + DECLARE + has_validation INTEGER; + pragma autonomous_transaction; +BEGIN - FUNCTION C2_124( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + SELECT COUNT(*) INTO has_validation + FROM + VALIDATION_VOL_HORAIRE vvh + JOIN validation v ON v.id = VVH.VALIDATION_ID + WHERE + V.HISTO_DESTRUCTION IS NULL + AND vvh.VOLUME_HORAIRE_ID = :OLD.ID; - IF s.taux_fc = 1 THEN - RETURN gv(114) * s.ponderation_service_compl; - ELSE - RETURN gv(114); - END IF; - END; + IF 0 <> has_validation THEN + raise_application_error(-20101, 'Il est impossible de supprimer des heures déjà validées.'); + END IF; - FUNCTION C3_124( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; +END; + +/ +ALTER TRIGGER "VOLUME_HORAIRE_DEL_CK" ENABLE; + +-- VOLUME_HORAIRE_REF_CK +CREATE OR REPLACE TRIGGER "VOLUME_HORAIRE_REF_CK" + BEFORE UPDATE ON "VOLUME_HORAIRE_REF" + REFERENCING FOR EACH ROW + DECLARE + has_validation NUMERIC; BEGIN - s := ose_formule.d_service( vh.service_id ); - IF s.taux_fc > 0 THEN - RETURN gv(114) * s.ponderation_service_compl; - ELSE - RETURN gv(114); - END IF; - END; + SELECT + COUNT(*) + INTO + has_validation + FROM + VALIDATION_VOL_HORAIRE_REF vvh + JOIN validation v ON v.id = VVH.VALIDATION_ID + WHERE + V.HISTO_DESTRUCTION IS NULL + AND vvh.VOLUME_HORAIRE_REF_ID = :NEW.ID; - FUNCTION C2_131( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + IF 0 <> has_validation THEN + raise_application_error(-20101, 'Il est impossible de modifier des heures référentiel déjà validées.'); + END IF; +END; - RETURN gv(111) * s.taux_fi; - END; +/ +ALTER TRIGGER "VOLUME_HORAIRE_REF_CK" ENABLE; - FUNCTION C3_131( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; +-- VOLUME_HORAIRE_REF_DEL_CK +CREATE OR REPLACE TRIGGER "VOLUME_HORAIRE_REF_DEL_CK" + BEFORE DELETE ON "VOLUME_HORAIRE_REF" + REFERENCING FOR EACH ROW + DECLARE has_validation INTEGER; + pragma autonomous_transaction; BEGIN - s := ose_formule.d_service( vh.service_id ); - - IF s.taux_fi + s.taux_fa > 0 THEN - RETURN gv(111) / (s.taux_fi + s.taux_fa) * s.taux_fi; - ELSE - RETURN 0; + SELECT COUNT(*) + INTO has_validation + FROM VALIDATION_VOL_HORAIRE_REF vvh + JOIN validation v + ON v.id = VVH.VALIDATION_ID + WHERE V.HISTO_DESTRUCTION IS NULL + AND vvh.VOLUME_HORAIRE_REF_ID = :OLD.ID; + IF 0 <> has_validation THEN + raise_application_error(-20101, 'Il est impossible de supprimer des heures référentiel déjà validées.'); END IF; END; - FUNCTION C2_132( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); +/ +ALTER TRIGGER "VOLUME_HORAIRE_REF_DEL_CK" ENABLE; - RETURN gv(112) * s.taux_fi; - END; +-- WF_ETAPE_DEP_CK +CREATE OR REPLACE TRIGGER "WF_ETAPE_DEP_CK" + BEFORE INSERT OR UPDATE ON "WF_ETAPE_DEP" + REFERENCING FOR EACH ROW +BEGIN - FUNCTION C3_132( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + OSE_WORKFLOW.DEP_CHECK( :new.etape_suiv_id, :new.etape_prec_id ); - IF s.taux_fi + s.taux_fa > 0 THEN - RETURN gv(112) / (s.taux_fi + s.taux_fa) * s.taux_fi; - ELSE - RETURN 0; - END IF; - END; +END; - FUNCTION C2_141( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); +/ +ALTER TRIGGER "WF_ETAPE_DEP_CK" ENABLE; - RETURN gv(111) * s.taux_fa; - END; +-------------------------------------------------- +-- packages +-------------------------------------------------- - FUNCTION C3_141( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); +-- OSE_CHARGENS +CREATE OR REPLACE PACKAGE "OSE_CHARGENS" AS + ENABLE_TRIGGER_EFFECTIFS BOOLEAN DEFAULT TRUE; - IF s.taux_fi + s.taux_fa > 0 THEN - RETURN gv(111) / (s.taux_fi + s.taux_fa) * s.taux_fa; - ELSE - RETURN 0; - END IF; - END; + TYPE tnoeud_ids IS TABLE OF NUMERIC; - FUNCTION C2_142( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + FUNCTION GET_SCENARIO RETURN NUMERIC; + PROCEDURE SET_SCENARIO( SCENARIO NUMERIC ); - RETURN gv(112) * s.taux_fa; - END; + FUNCTION GET_NOEUD RETURN NUMERIC; + PROCEDURE SET_NOEUD( NOEUD NUMERIC ); - FUNCTION C3_142( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + FUNCTION CALC_COEF( choix_min NUMERIC, choix_max NUMERIC, poids NUMERIC, max_poids NUMERIC, total_poids NUMERIC, nb_choix NUMERIC ) RETURN FLOAT; - IF s.taux_fi + s.taux_fa > 0 THEN - RETURN gv(112) / (s.taux_fi + s.taux_fa) * s.taux_fa; - ELSE - RETURN 0; - END IF; - END; + PROCEDURE DEM_CALC_SUB_EFFECTIF( scenario_noeud_id NUMERIC, type_heures_id NUMERIC, etape_id NUMERIC, effectif FLOAT ); + PROCEDURE CALC_SUB_EFFECTIF_DEM; - FUNCTION C2_151( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + PROCEDURE CALC_ALL_EFFECTIFS; - RETURN gv(111) * s.taux_fc; - END; + PROCEDURE CALC_EFFECTIF( noeud_id NUMERIC, scenario_id NUMERIC, type_heures_id NUMERIC DEFAULT NULL, etape_id NUMERIC DEFAULT NULL); + PROCEDURE CALC_SUB_EFFECTIF2( noeud_id NUMERIC, scenario_id NUMERIC, type_heures_id NUMERIC DEFAULT NULL, etape_id NUMERIC DEFAULT NULL); - FUNCTION C2_152( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + PROCEDURE DUPLIQUER( source_id NUMERIC, destination_id NUMERIC, utilisateur_id NUMERIC, structure_id NUMERIC, noeuds VARCHAR2 DEFAULT '', liens VARCHAR2 DEFAULT '' ); - RETURN gv(112) * s.taux_fc; - END; + PROCEDURE CONTROLE_SEUIL( ouverture NUMERIC, dedoublement NUMERIC ); - FUNCTION C2_153( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + FUNCTION GET_SCENARIO_NOEUD_ID( scenario_id NUMERIC, noeud_id NUMERIC ) RETURN NUMERIC; + FUNCTION CREER_SCENARIO_NOEUD( scenario_id NUMERIC, noeud_id NUMERIC, assiduite FLOAT DEFAULT 1 ) RETURN NUMERIC; - IF gv(123) = gv(113) THEN - RETURN gv(113) * s.taux_fc; - ELSE - RETURN 0; - END IF; - END; + PROCEDURE ADD_SCENARIO_NOEUD_EFFECTIF( scenario_noeud_id NUMERIC, type_heures_id NUMERIC, etape_id NUMERIC, effectif FLOAT ); - FUNCTION C3_153( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + PROCEDURE INIT_SCENARIO_NOEUD_EFFECTIF( + etape_id NUMERIC, + scenario_id NUMERIC, + type_heures_id NUMERIC, + effectif FLOAT, + surcharge BOOLEAN DEFAULT FALSE + ); - IF gv(123) = gv(113) THEN - RETURN gv(113); - ELSE - RETURN 0; - END IF; - END; + PROCEDURE SET_PRECALC_HEURES_PARAMS( + annee_id NUMERIC DEFAULT NULL, + structure_id NUMERIC DEFAULT NULL, + scenario_id NUMERIC DEFAULT NULL, + type_heures_id NUMERIC DEFAULT NULL, + etape_id NUMERIC DEFAULT NULL, + noeud_ids tnoeud_ids DEFAULT NULL + ); - FUNCTION C2_154( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + FUNCTION MATCH_PRECALC_HEURES_PARAMS( + annee_id NUMERIC DEFAULT NULL, + structure_id NUMERIC DEFAULT NULL, + scenario_id NUMERIC DEFAULT NULL, + type_heures_id NUMERIC DEFAULT NULL, + etape_id NUMERIC DEFAULT NULL, + noeud_id NUMERIC DEFAULT NULL + ) RETURN NUMERIC; - IF gv(124) = gv(114) THEN - RETURN gv(114) * s.taux_fc; - ELSE - RETURN 0; - END IF; - END; - FUNCTION C3_154( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); +END OSE_CHARGENS; +/ - IF gv(124) = gv(114) THEN - RETURN gv(114); - ELSE - RETURN 0; - END IF; - END; +-- OSE_DIVERS +CREATE OR REPLACE PACKAGE "OSE_DIVERS" AS - FUNCTION C2_163( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + PROCEDURE CALCULER_TABLEAUX_BORD; - IF gv(123) <> gv(113) THEN - RETURN gv(123) * s.taux_fc; - ELSE - RETURN 0; - END IF; - END; + FUNCTION GET_OSE_UTILISATEUR_ID RETURN NUMERIC; + FUNCTION GET_OSE_SOURCE_ID RETURN NUMERIC; - FUNCTION C3_163( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + FUNCTION INTERVENANT_HAS_PRIVILEGE( intervenant_id NUMERIC, privilege_name VARCHAR2 ) RETURN NUMERIC; - IF gv(123) <> gv(113) THEN - RETURN gv(123); - ELSE - RETURN 0; - END IF; - END; + FUNCTION implode(i_query VARCHAR2, i_seperator VARCHAR2 DEFAULT ',') RETURN VARCHAR2; - FUNCTION C2_164( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + PROCEDURE intervenant_horodatage_service( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, REFERENTIEL NUMERIC, HISTO_MODIFICATEUR_ID NUMERIC, HISTO_MODIFICATION DATE ); - IF gv(124) <> gv(114) THEN - RETURN gv(124) * s.taux_fc; - ELSE - RETURN 0; - END IF; - END; + FUNCTION NIVEAU_FORMATION_ID_CALC( gtf_id NUMERIC, gtf_pertinence_niveau NUMERIC, niveau NUMERIC DEFAULT NULL ) RETURN NUMERIC; - FUNCTION C3_164( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS - s ose_formule.t_service; - BEGIN - s := ose_formule.d_service( vh.service_id ); + FUNCTION STR_REDUCE( str CLOB ) RETURN CLOB; - IF gv(124) <> gv(114) THEN - RETURN gv(124); - ELSE - RETURN 0; - END IF; - END; + FUNCTION STR_FIND( haystack CLOB, needle VARCHAR2 ) RETURN NUMERIC; + + FUNCTION LIKED( haystack CLOB, needle CLOB ) RETURN NUMERIC; + + FUNCTION CALCUL_TAUX_FI( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT; + FUNCTION CALCUL_TAUX_FC( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT; + FUNCTION CALCUL_TAUX_FA( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT; + FUNCTION STRUCTURE_UNIV_GET_ID RETURN NUMERIC; + PROCEDURE SYNC_LOG( msg CLOB ); + FUNCTION FORMATTED_RIB (bic VARCHAR2, iban VARCHAR2) RETURN VARCHAR2; + FUNCTION FORMATTED_ADRESSE( + no_voie VARCHAR2, + nom_voie VARCHAR2, + batiment VARCHAR2, + mention_complementaire VARCHAR2, + localite VARCHAR2, + code_postal VARCHAR2, + ville VARCHAR2, + pays_libelle VARCHAR2) + RETURN VARCHAR2; + FUNCTION GET_TRIGGER_BODY( TRIGGER_NAME VARCHAR2 ) RETURN VARCHAR2; +END OSE_DIVERS; +/ +-- OSE_EVENT +CREATE OR REPLACE PACKAGE "OSE_EVENT" AS + PROCEDURE ON_BEFORE_FORMULE_RES_DELETE( INTERVENANT_ID NUMERIC ); + PROCEDURE ON_AFTER_FORMULE_CALC( INTERVENANT_ID NUMERIC ); - PROCEDURE CALCUL_RESULTAT_V2( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, ETAT_VOLUME_HORAIRE_ID NUMERIC ) IS - current_tableau PLS_INTEGER; - id PLS_INTEGER; - val FLOAT; - TYPE t_liste_tableaux IS VARRAY (100) OF PLS_INTEGER; - liste_tableaux t_liste_tableaux; - resultat_total FLOAT; - res FLOAT; - vh ose_formule.t_volume_horaire; - vhr ose_formule.t_volume_horaire_ref; - BEGIN - V_INIT; +END OSE_EVENT; +/ - ose_formule.d_resultat.service_du := CASE - WHEN ose_formule.d_intervenant.depassement_service_du_sans_hc = 1 -- HC traitées comme du service - OR ose_formule.d_intervenant.heures_decharge < 0 -- s'il y a une décharge => aucune HC +-- OSE_FORMULE +CREATE OR REPLACE PACKAGE "OSE_FORMULE" AS - THEN 9999 - ELSE ose_formule.d_intervenant.heures_service_statutaire + ose_formule.d_intervenant.heures_service_modifie - END; + PACKAGE_SUJET VARCHAR2(80) DEFAULT 'OSE_FORMULE'; - liste_tableaux := t_liste_tableaux( - 11, 12, 13, 14, 15, 16, 17, - 21, 22, 23, 24, 25, 26, 27, - 31, 32, 33, 34, 35, 36, 37, - 41, 42, 43, 44, 45, 46, 47, - 51, 52, 53, 54, 55, 56, 57, - 61, 62, - 71, 72, - 81, 82, 83, 84, - 91, 92, 93, 94, 95, 96, 97, - 101, 102, 103, 104, 105, 106, 107, - 111, 112, 113, 114, 115, 116, 117, - 123, 124, - 131, 132, - 141, 142, - 151, 152, 153, 154, - 163, 164 - ); + TYPE t_intervenant IS RECORD ( + structure_id NUMERIC, + annee_id NUMERIC, + heures_decharge FLOAT DEFAULT 0, + heures_service_statutaire FLOAT DEFAULT 0, + heures_service_modifie FLOAT DEFAULT 0, + depassement_service_du_sans_hc FLOAT DEFAULT 0 + ); - FOR i IN liste_tableaux.FIRST .. liste_tableaux.LAST - LOOP - current_tableau := liste_tableaux(i); + TYPE t_type_etat_vh IS RECORD ( + type_volume_horaire_id NUMERIC, + etat_volume_horaire_id NUMERIC + ); + TYPE t_lst_type_etat_vh IS TABLE OF t_type_etat_vh INDEX BY PLS_INTEGER; - IF current_tableau IN ( -- calcul pour les volumes horaires des services - 11, 12, 13, 14, - 21, 22, 23, 24, - 41, 42, 43, 44, - 51, 52, 53, 54, - 61, 62, - 71, 72, - 81, 82, 83, 84, - 91, 92, 93, 94, - 101, 102, 103, 104, - 111, 112, 113, 114, - 123, 124, - 131, 132, - 141, 142, - 151, 152, 153, 154, - 163, 164 - ) THEN + TYPE t_service_ref IS RECORD ( + id NUMERIC, + structure_id NUMERIC + ); + TYPE t_lst_service_ref IS TABLE OF t_service_ref INDEX BY PLS_INTEGER; - current_id := ose_formule.d_volume_horaire.FIRST; - LOOP EXIT WHEN current_id IS NULL; - vh := ose_formule.d_volume_horaire(current_id); - res := CASE current_tableau - WHEN 11 THEN C2_11 (vh) WHEN 12 THEN C2_12 (vh) WHEN 13 THEN C2_13 (vh) WHEN 14 THEN C2_14 (vh) - WHEN 21 THEN C2_21 (vh) WHEN 22 THEN C2_22 (vh) WHEN 23 THEN C2_23 (vh) WHEN 24 THEN C2_24 (vh) - WHEN 41 THEN C2_41 (vh) WHEN 42 THEN C2_42 (vh) WHEN 43 THEN C2_43 (vh) WHEN 44 THEN C2_44 (vh) - WHEN 51 THEN C2_51 (vh) WHEN 52 THEN C2_52 (vh) WHEN 53 THEN C2_53 (vh) WHEN 54 THEN C2_54 (vh) - WHEN 61 THEN C2_61 (vh) WHEN 62 THEN C2_62 (vh) - WHEN 71 THEN C2_71 (vh) WHEN 72 THEN C2_72 (vh) - WHEN 81 THEN C2_81 (vh) WHEN 82 THEN C2_82 (vh) WHEN 83 THEN C2_83 (vh) WHEN 84 THEN C2_84 (vh) - WHEN 91 THEN C2_91 (vh) WHEN 92 THEN C2_92 (vh) WHEN 93 THEN C2_93 (vh) WHEN 94 THEN C2_94 (vh) - WHEN 101 THEN C2_101 (vh) WHEN 102 THEN C2_102 (vh) WHEN 103 THEN C2_103 (vh) WHEN 104 THEN C2_104 (vh) - WHEN 111 THEN C2_111 (vh) WHEN 112 THEN C2_112 (vh) WHEN 113 THEN C2_113 (vh) WHEN 114 THEN C2_114 (vh) - WHEN 123 THEN C2_123 (vh) WHEN 124 THEN C2_124 (vh) - WHEN 131 THEN C2_131 (vh) WHEN 132 THEN C2_132 (vh) - WHEN 141 THEN C2_141 (vh) WHEN 142 THEN C2_142 (vh) - WHEN 151 THEN C2_151 (vh) WHEN 152 THEN C2_152 (vh) WHEN 153 THEN C2_153 (vh) WHEN 154 THEN C2_154 (vh) - WHEN 163 THEN C2_163 (vh) WHEN 164 THEN C2_164 (vh) - END; - SV( current_tableau, current_id, res ); - current_id := ose_formule.d_volume_horaire.NEXT(current_id); - END LOOP; + TYPE t_service IS RECORD ( + id NUMERIC, + taux_fi FLOAT DEFAULT 1, + taux_fa FLOAT DEFAULT 0, + taux_fc FLOAT DEFAULT 0, + ponderation_service_du FLOAT DEFAULT 1, + ponderation_service_compl FLOAT DEFAULT 1, + structure_aff_id NUMERIC, + structure_ens_id NUMERIC + ); + TYPE t_lst_service IS TABLE OF t_service INDEX BY PLS_INTEGER; - ELSIF current_tableau IN ( -- calcul des services restants dus - 31, 32, 33, 34, 35, 36, 37 - ) THEN + TYPE t_volume_horaire_ref IS RECORD ( + id NUMERIC, + service_referentiel_id NUMERIC, + type_volume_horaire_id NUMERIC, + etat_volume_horaire_id NUMERIC, + etat_volume_horaire_ordre NUMERIC, + heures FLOAT DEFAULT 0 + ); + TYPE t_lst_volume_horaire_ref IS TABLE OF t_volume_horaire_ref INDEX BY PLS_INTEGER; - res := CASE current_tableau - WHEN 31 THEN C2_31 WHEN 32 THEN C2_32 WHEN 33 THEN C2_33 - WHEN 34 THEN C2_34 WHEN 35 THEN C2_35 WHEN 36 THEN C2_36 - WHEN 37 THEN C2_37 - END; - SV( current_tableau, res ); + TYPE t_volume_horaire IS RECORD ( + id NUMERIC, + service_id NUMERIC, + type_volume_horaire_id NUMERIC, + etat_volume_horaire_id NUMERIC, + etat_volume_horaire_ordre NUMERIC, + heures FLOAT DEFAULT 0, + taux_service_du FLOAT DEFAULT 1, + taux_service_compl FLOAT DEFAULT 1 + ); + TYPE t_lst_volume_horaire IS TABLE OF t_volume_horaire INDEX BY PLS_INTEGER; - ELSIF current_tableau IN ( -- tableaux de calcul des volumes horaires référentiels - 15, 16, 17, - 25, 26, 27, - 45, 46, 47, - 55, 56, 57, - 95, 96, 97, - 105, 106, 107, - 115, 116, 117 - ) THEN - current_id := ose_formule.d_volume_horaire_ref.FIRST; - LOOP EXIT WHEN current_id IS NULL; - vhr := ose_formule.d_volume_horaire_ref(current_id); - res := CASE current_tableau - WHEN 15 THEN C2_15 (vhr) WHEN 16 THEN C2_16 (vhr) WHEN 17 THEN C2_17 (vhr) - WHEN 25 THEN C2_25 (vhr) WHEN 26 THEN C2_26 (vhr) WHEN 27 THEN C2_27 (vhr) - WHEN 45 THEN C2_45 (vhr) WHEN 46 THEN C2_46 (vhr) WHEN 47 THEN C2_47 (vhr) - WHEN 55 THEN C2_55 (vhr) WHEN 56 THEN C2_56 (vhr) WHEN 57 THEN C2_57 (vhr) - WHEN 95 THEN C2_95 (vhr) WHEN 96 THEN C2_96 (vhr) WHEN 97 THEN C2_97 (vhr) - WHEN 105 THEN C2_105 (vhr) WHEN 106 THEN C2_106 (vhr) WHEN 107 THEN C2_107 (vhr) - WHEN 115 THEN C2_115 (vhr) WHEN 116 THEN C2_116 (vhr) WHEN 117 THEN C2_117 (vhr) - END; - SV(current_tableau, current_id, res); - current_id := ose_formule.d_volume_horaire_ref.NEXT(current_id); - END LOOP; - END IF; - END LOOP; + TYPE t_resultat_hetd IS RECORD ( + service_fi FLOAT DEFAULT 0, + service_fa FLOAT DEFAULT 0, + service_fc FLOAT DEFAULT 0, + heures_compl_fi FLOAT DEFAULT 0, + heures_compl_fa FLOAT DEFAULT 0, + heures_compl_fc FLOAT DEFAULT 0, + heures_compl_fc_majorees FLOAT DEFAULT 0 + ); + TYPE t_lst_resultat_hetd IS TABLE OF t_resultat_hetd INDEX BY PLS_INTEGER; - resultat_total := gt( 55) + gt( 56) + gt( 57) - + gt( 61) + gt( 62) - + gt( 71) + gt( 72) - + gt( 81) + gt( 82) + gt( 83) + gt( 84) - + gt(115) + gt(116) + gt(117) - + gt(131) + gt(132) - + gt(141) + gt(142) - + gt(151) + gt(152) + gt(153) + gt(154) - + gt(163) + gt(164); + TYPE t_resultat_hetd_ref IS RECORD ( + service_referentiel FLOAT DEFAULT 0, + heures_compl_referentiel FLOAT DEFAULT 0 + ); + TYPE t_lst_resultat_hetd_ref IS TABLE OF t_resultat_hetd_ref INDEX BY PLS_INTEGER; - ose_formule.d_resultat.service_du := CASE - WHEN ose_formule.d_intervenant.depassement_service_du_sans_hc = 1 OR ose_formule.d_intervenant.heures_decharge < 0 - THEN GREATEST(resultat_total, ose_formule.d_intervenant.heures_service_statutaire + ose_formule.d_intervenant.heures_service_modifie) - ELSE ose_formule.d_intervenant.heures_service_statutaire + ose_formule.d_intervenant.heures_service_modifie - END; - ose_formule.d_resultat.solde := resultat_total - ose_formule.d_resultat.service_du; - IF ose_formule.d_resultat.solde >= 0 THEN - ose_formule.d_resultat.sous_service := 0; - ose_formule.d_resultat.heures_compl := ose_formule.d_resultat.solde; - ELSE - ose_formule.d_resultat.sous_service := ose_formule.d_resultat.solde * -1; - ose_formule.d_resultat.heures_compl := 0; - END IF; + TYPE t_resultat IS RECORD ( + intervenant_id NUMERIC, + type_volume_horaire_id NUMERIC, + etat_volume_horaire_id NUMERIC, + service_du FLOAT DEFAULT 0, + solde FLOAT DEFAULT 0, + sous_service FLOAT DEFAULT 0, + heures_compl FLOAT DEFAULT 0, + volume_horaire t_lst_resultat_hetd, + volume_horaire_ref t_lst_resultat_hetd_ref + ); - -- répartition des résultats par volumes horaires - current_id := ose_formule.d_volume_horaire.FIRST; - LOOP EXIT WHEN current_id IS NULL; - ose_formule.d_resultat.volume_horaire(current_id).service_fi := gv( 61) + gv( 62); - ose_formule.d_resultat.volume_horaire(current_id).service_fa := gv( 71) + gv( 72); - ose_formule.d_resultat.volume_horaire(current_id).service_fc := gv( 81) + gv( 82) + gv( 83) + gv( 84); - ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fi := gv(131) + gv(132); - ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fa := gv(141) + gv(142); - ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fc := gv(151) + gv(152) + gv(153) + gv(154); - ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fc_majorees := gv(163) + gv(164); - current_id := ose_formule.d_volume_horaire.NEXT(current_id); - END LOOP; + d_intervenant t_intervenant; + d_type_etat_vh t_lst_type_etat_vh; + d_service_ref t_lst_service_ref; + d_service t_lst_service; + d_volume_horaire_ref t_lst_volume_horaire_ref; + d_volume_horaire t_lst_volume_horaire; + d_resultat t_resultat; - -- répartition des résultats par volumes horaires référentiel - current_id := ose_formule.d_volume_horaire_ref.FIRST; - LOOP EXIT WHEN current_id IS NULL; - ose_formule.d_resultat.volume_horaire_ref(current_id).service_referentiel := gv(55) + gv(56) + gv(57); - ose_formule.d_resultat.volume_horaire_ref(current_id).heures_compl_referentiel := gv(115) + gv(116) + gv(117); - current_id := ose_formule.d_volume_horaire_ref.NEXT(current_id); - END LOOP; + FUNCTION GET_INTERVENANT_ID RETURN NUMERIC; + FUNCTION GET_DATE_OBS RETURN DATE; + FUNCTION SET_DATE_OBS( DATE_OBS DATE DEFAULT NULL ) RETURN DATE; - END; + PROCEDURE SET_DEBUG_LEVEL( DEBUG_LEVEL NUMERIC ); + FUNCTION GET_DEBUG_LEVEL RETURN NUMERIC; + FUNCTION GET_TAUX_HORAIRE_HETD( DATE_OBS DATE DEFAULT NULL ) RETURN FLOAT; + PROCEDURE UPDATE_ANNEE_TAUX_HETD; + PROCEDURE CALCULER( INTERVENANT_ID NUMERIC ); + PROCEDURE CALCULER_TOUT( ANNEE_ID NUMERIC DEFAULT NULL ); -- mise à jour de TOUTES les données ! ! ! ! + PROCEDURE CALCULER_TBL( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE SET_INTERVENANT(INTERVENANT_ID NUMERIC DEFAULT NULL); + FUNCTION GET_INTERVENANT RETURN NUMERIC; + FUNCTION MATCH_INTERVENANT(INTERVENANT_ID NUMERIC DEFAULT NULL) RETURN NUMERIC; +END OSE_FORMULE; +/ +-- OSE_HISTO +CREATE OR REPLACE PACKAGE "OSE_HISTO" AS + FUNCTION FILTRE( histo_debut NUMERIC, histo_fin NUMERIC ) RETURN NUMERIC; +END OSE_HISTO; +/ +-- OSE_PAIEMENT +CREATE OR REPLACE PACKAGE "OSE_PAIEMENT" AS + PROCEDURE CHECK_BAD_PAIEMENTS( FORMULE_RES_SERVICE_ID NUMERIC DEFAULT NULL, FORMULE_RES_SERVICE_REF_ID NUMERIC DEFAULT NULL ); +END OSE_PAIEMENT; +/ +-- OSE_PARAMETRE +CREATE OR REPLACE PACKAGE "OSE_PARAMETRE" AS + function get_etablissement return Numeric; + function get_annee return Numeric; + function get_annee_import return Numeric; + function get_ose_user return Numeric; + function get_drh_structure_id return Numeric; + function get_date_fin_saisie_permanents RETURN DATE; + function get_ddeb_saisie_serv_real RETURN DATE; + function get_dfin_saisie_serv_real RETURN DATE; + function get_formule_package_name RETURN VARCHAR2; + function get_formule_function_name RETURN VARCHAR2; +END OSE_PARAMETRE; +/ +-- OSE_TEST +CREATE OR REPLACE PACKAGE "OSE_TEST" AS - PROCEDURE CALCUL_RESULTAT_V3( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, ETAT_VOLUME_HORAIRE_ID NUMERIC ) IS - current_tableau PLS_INTEGER; - id PLS_INTEGER; - val FLOAT; - TYPE t_liste_tableaux IS VARRAY (100) OF PLS_INTEGER; - liste_tableaux t_liste_tableaux; - resultat_total FLOAT; - res FLOAT; - vh ose_formule.t_volume_horaire; - vhr ose_formule.t_volume_horaire_ref; - BEGIN + DEBUG_ENABLED BOOLEAN DEFAULT FALSE; - -- si l'année est antérieure à 2016/2017 alors on utilise la V2!! - IF ose_formule.d_intervenant.annee_id < 2016 THEN - CALCUL_RESULTAT_V2( INTERVENANT_ID, TYPE_VOLUME_HORAIRE_ID, ETAT_VOLUME_HORAIRE_ID ); - RETURN; - END IF; + -- SET SERVEROUTPUT ON - V_INIT; + PROCEDURE SHOW_SUCCES; - ose_formule.d_resultat.service_du := CASE - WHEN ose_formule.d_intervenant.depassement_service_du_sans_hc = 1 -- HC traitées comme du service - OR ose_formule.d_intervenant.heures_decharge < 0 -- s'il y a une décharge => aucune HC + PROCEDURE HIDE_SUCCES; - THEN 9999 - ELSE ose_formule.d_intervenant.heures_service_statutaire + ose_formule.d_intervenant.heures_service_modifie - END; + PROCEDURE ECHO( MSG CLOB ); - liste_tableaux := t_liste_tableaux( - 11, 12, 13, 14, 15, 16, 17, - 21, 22, 23, 24, 25, 26, 27, - 31, 32, 33, 34, 35, 36, 37, - 41, 42, 43, 44, 45, 46, 47, - 51, 52, 53, 54, 55, 56, 57, - 61, 62, - 71, 72, - 81, 82, 83, 84, - 91, 92, 93, 94, 95, 96, 97, - 101, 102, 103, 104, 105, 106, 107, - 111, 112, 113, 114, 115, 116, 117, - 123, 124, - 131, 132, - 141, 142, - 151, 152, 153, 154, - 163, 164 - ); + PROCEDURE INIT; - FOR i IN liste_tableaux.FIRST .. liste_tableaux.LAST - LOOP - current_tableau := liste_tableaux(i); + PROCEDURE SHOW_STATS; - IF current_tableau IN ( -- calcul pour les volumes horaires des services - 11, 12, 13, 14, - 21, 22, 23, 24, - 41, 42, 43, 44, - 51, 52, 53, 54, - 61, 62, - 71, 72, - 81, 82, 83, 84, - 91, 92, 93, 94, - 101, 102, 103, 104, - 111, 112, 113, 114, - 123, 124, - 131, 132, - 141, 142, - 151, 152, 153, 154, - 163, 164 - ) THEN + PROCEDURE DEBUT( TEST_NAME CLOB ); - current_id := ose_formule.d_volume_horaire.FIRST; - LOOP EXIT WHEN current_id IS NULL; - vh := ose_formule.d_volume_horaire(current_id); - res := CASE current_tableau - WHEN 11 THEN C3_11 (vh) WHEN 12 THEN C3_12 (vh) WHEN 13 THEN C3_13 (vh) WHEN 14 THEN C3_14 (vh) - WHEN 21 THEN C2_21 (vh) WHEN 22 THEN C2_22 (vh) WHEN 23 THEN C2_23 (vh) WHEN 24 THEN C2_24 (vh) - WHEN 41 THEN C2_41 (vh) WHEN 42 THEN C2_42 (vh) WHEN 43 THEN C2_43 (vh) WHEN 44 THEN C2_44 (vh) - WHEN 51 THEN C2_51 (vh) WHEN 52 THEN C2_52 (vh) WHEN 53 THEN C2_53 (vh) WHEN 54 THEN C2_54 (vh) - WHEN 61 THEN C3_61 (vh) WHEN 62 THEN C3_62 (vh) - WHEN 71 THEN C3_71 (vh) WHEN 72 THEN C3_72 (vh) - WHEN 83 THEN C3_83 (vh) WHEN 84 THEN C3_84 (vh) - WHEN 91 THEN C2_91 (vh) WHEN 92 THEN C2_92 (vh) WHEN 93 THEN C2_93 (vh) WHEN 94 THEN C2_94 (vh) - WHEN 101 THEN C2_101 (vh) WHEN 102 THEN C2_102 (vh) WHEN 103 THEN C2_103 (vh) WHEN 104 THEN C2_104 (vh) - WHEN 111 THEN C2_111 (vh) WHEN 112 THEN C2_112 (vh) WHEN 113 THEN C2_113 (vh) WHEN 114 THEN C2_114 (vh) - WHEN 123 THEN C3_123 (vh) WHEN 124 THEN C3_124 (vh) - WHEN 131 THEN C3_131 (vh) WHEN 132 THEN C3_132 (vh) - WHEN 141 THEN C3_141 (vh) WHEN 142 THEN C3_142 (vh) - WHEN 153 THEN C3_153 (vh) WHEN 154 THEN C3_154 (vh) - WHEN 163 THEN C3_163 (vh) WHEN 164 THEN C3_164 (vh) - END; - SV( current_tableau, current_id, res ); - current_id := ose_formule.d_volume_horaire.NEXT(current_id); - END LOOP; + PROCEDURE FIN; - ELSIF current_tableau IN ( -- calcul des services restants dus - 31, 32, 33, 34, 35, 36, 37 - ) THEN + PROCEDURE ASSERT( condition BOOLEAN, MSG CLOB ); - res := CASE current_tableau - WHEN 31 THEN C2_31 WHEN 32 THEN C2_32 WHEN 33 THEN C2_33 - WHEN 34 THEN C2_34 WHEN 35 THEN C2_35 WHEN 36 THEN C2_36 - WHEN 37 THEN C2_37 - END; - SV( current_tableau, res ); + PROCEDURE HOROINIT; - ELSIF current_tableau IN ( -- tableaux de calcul des volumes horaires référentiels - 15, 16, 17, - 25, 26, 27, - 45, 46, 47, - 55, 56, 57, - 95, 96, 97, - 105, 106, 107, - 115, 116, 117 - ) THEN + PROCEDURE HORODATAGE( msg VARCHAR2 ); - current_id := ose_formule.d_volume_horaire_ref.FIRST; - LOOP EXIT WHEN current_id IS NULL; - vhr := ose_formule.d_volume_horaire_ref(current_id); - res := CASE current_tableau - WHEN 15 THEN C2_15 (vhr) WHEN 16 THEN C2_16 (vhr) WHEN 17 THEN C2_17 (vhr) - WHEN 25 THEN C2_25 (vhr) WHEN 26 THEN C2_26 (vhr) WHEN 27 THEN C2_27 (vhr) - WHEN 45 THEN C2_45 (vhr) WHEN 46 THEN C2_46 (vhr) WHEN 47 THEN C2_47 (vhr) - WHEN 55 THEN C2_55 (vhr) WHEN 56 THEN C2_56 (vhr) WHEN 57 THEN C2_57 (vhr) - WHEN 95 THEN C2_95 (vhr) WHEN 96 THEN C2_96 (vhr) WHEN 97 THEN C2_97 (vhr) - WHEN 105 THEN C2_105 (vhr) WHEN 106 THEN C2_106 (vhr) WHEN 107 THEN C2_107 (vhr) - WHEN 115 THEN C2_115 (vhr) WHEN 116 THEN C2_116 (vhr) WHEN 117 THEN C2_117 (vhr) - END; - SV(current_tableau, current_id, res); - current_id := ose_formule.d_volume_horaire_ref.NEXT(current_id); - END LOOP; + FUNCTION GET_STRUCTURE_BY_ID( id NUMERIC ) RETURN structure%rowtype; - END IF; - END LOOP; +END OSE_TEST; +/ - resultat_total := gt( 55) + gt( 56) + gt( 57) - + gt( 61) + gt( 62) - + gt( 71) + gt( 72) - + gt( 83) + gt( 84) - + gt(115) + gt(116) + gt(117) - + gt(131) + gt(132) - + gt(141) + gt(142) - + gt(153) + gt(154) - + gt(163) + gt(164); +-- OSE_VALIDATION +CREATE OR REPLACE PACKAGE "OSE_VALIDATION" AS - ose_formule.d_resultat.service_du := CASE - WHEN ose_formule.d_intervenant.depassement_service_du_sans_hc = 1 OR ose_formule.d_intervenant.heures_decharge < 0 - THEN GREATEST(resultat_total, ose_formule.d_intervenant.heures_service_statutaire + ose_formule.d_intervenant.heures_service_modifie) - ELSE ose_formule.d_intervenant.heures_service_statutaire + ose_formule.d_intervenant.heures_service_modifie - END; - ose_formule.d_resultat.solde := resultat_total - ose_formule.d_resultat.service_du; - IF ose_formule.d_resultat.solde >= 0 THEN - ose_formule.d_resultat.sous_service := 0; - ose_formule.d_resultat.heures_compl := ose_formule.d_resultat.solde; - ELSE - ose_formule.d_resultat.sous_service := ose_formule.d_resultat.solde * -1; - ose_formule.d_resultat.heures_compl := 0; - END IF; + FUNCTION can_devalider ( v validation%rowtype ) RETURN varchar2; - -- répartition des résultats par volumes horaires - current_id := ose_formule.d_volume_horaire.FIRST; - LOOP EXIT WHEN current_id IS NULL; - ose_formule.d_resultat.volume_horaire(current_id).service_fi := gv( 61) + gv( 62); - ose_formule.d_resultat.volume_horaire(current_id).service_fa := gv( 71) + gv( 72); - ose_formule.d_resultat.volume_horaire(current_id).service_fc := gv( 83) + gv( 84); - ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fi := gv(131) + gv(132); - ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fa := gv(141) + gv(142); - ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fc := gv(153) + gv(154); - ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fc_majorees := gv(163) + gv(164); - current_id := ose_formule.d_volume_horaire.NEXT(current_id); - END LOOP; +END OSE_VALIDATION; +/ - -- répartition des résultats par volumes horaires référentiel - current_id := ose_formule.d_volume_horaire_ref.FIRST; - LOOP EXIT WHEN current_id IS NULL; - ose_formule.d_resultat.volume_horaire_ref(current_id).service_referentiel := gv(55) + gv(56) + gv(57); - ose_formule.d_resultat.volume_horaire_ref(current_id).heures_compl_referentiel := gv(115) + gv(116) + gv(117); - current_id := ose_formule.d_volume_horaire_ref.NEXT(current_id); - END LOOP; +-- OSE_WORKFLOW +CREATE OR REPLACE PACKAGE "OSE_WORKFLOW" AS - END; + PACKAGE_SUJET VARCHAR2(80) DEFAULT 'OSE_WORKFLOW'; + + PROCEDURE CALCULER( INTERVENANT_ID NUMERIC ); + PROCEDURE CALCULER_TOUT( ANNEE_ID NUMERIC DEFAULT NULL ); + PROCEDURE CALCULER_TBL( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE DEP_CHECK( etape_suiv_id NUMERIC, etape_prec_id NUMERIC ); + PROCEDURE SET_INTERVENANT(INTERVENANT_ID NUMERIC DEFAULT NULL); + FUNCTION GET_INTERVENANT RETURN NUMERIC; + FUNCTION MATCH_INTERVENANT(INTERVENANT_ID NUMERIC DEFAULT NULL) RETURN NUMERIC; +END OSE_WORKFLOW; +/ +-- UNICAEN_IMPORT +CREATE OR REPLACE PACKAGE "UNICAEN_IMPORT" AS + z__SYNC_FILRE__z CLOB DEFAULT ''; + z__IGNORE_UPD_COLS__z CLOB DEFAULT ''; + PROCEDURE set_current_user(p_current_user IN INTEGER); + FUNCTION get_current_user return INTEGER; + FUNCTION get_current_annee RETURN INTEGER; + PROCEDURE set_current_annee (p_current_annee INTEGER); + FUNCTION IN_COLUMN_LIST( VALEUR VARCHAR2, CHAMPS CLOB ) RETURN NUMERIC; + PROCEDURE REFRESH_MV( mview_name varchar2 ); + PROCEDURE SYNC_LOG( message CLOB, table_name VARCHAR2 DEFAULT NULL, source_code VARCHAR2 DEFAULT NULL ); + PROCEDURE SYNCHRONISATION( table_name VARCHAR2, SYNC_FILRE CLOB DEFAULT '', IGNORE_UPD_COLS CLOB DEFAULT '' ); +END UNICAEN_IMPORT; +/ +-- UNICAEN_OSE_FORMULE +CREATE OR REPLACE PACKAGE "UNICAEN_OSE_FORMULE" AS + PROCEDURE CALCUL_RESULTAT_V2( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, ETAT_VOLUME_HORAIRE_ID NUMERIC ); - PROCEDURE PURGE_EM_NON_FC IS - BEGIN - FOR em IN ( - SELECT - em.id - FROM - ELEMENT_MODULATEUR em - JOIN element_pedagogique ep ON ep.id = em.element_id AND ep.histo_destruction IS NULL - WHERE - em.histo_destruction IS NULL - AND ep.taux_fc < 1 - ) LOOP - UPDATE - element_modulateur - SET - histo_destruction = SYSDATE, - histo_destructeur_id = ose_parametre.get_ose_user - WHERE - id = em.id - ; - END LOOP; - END; + PROCEDURE CALCUL_RESULTAT_V3( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, ETAT_VOLUME_HORAIRE_ID NUMERIC ); + + PROCEDURE PURGE_EM_NON_FC; END UNICAEN_OSE_FORMULE; / -- UNICAEN_TBL -CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS +CREATE OR REPLACE PACKAGE "UNICAEN_TBL" AS + + TYPE t_params IS RECORD ( + c1 VARCHAR2(30), v1 VARCHAR2(80), + c2 VARCHAR2(30), v2 VARCHAR2(80), + c3 VARCHAR2(30), v3 VARCHAR2(80), + c4 VARCHAR2(30), v4 VARCHAR2(80), + c5 VARCHAR2(30), v5 VARCHAR2(80), + sqlcond CLOB + ); + + ACTIV_TRIGGERS BOOLEAN DEFAULT TRUE; + ACTIV_CALCULS BOOLEAN DEFAULT TRUE; + CALCUL_PROC_PARAMS t_params; FUNCTION MAKE_PARAMS( c1 VARCHAR2 DEFAULT NULL, v1 VARCHAR2 DEFAULT NULL, @@ -12929,5743 +13816,6414 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS c4 VARCHAR2 DEFAULT NULL, v4 VARCHAR2 DEFAULT NULL, c5 VARCHAR2 DEFAULT NULL, v5 VARCHAR2 DEFAULT NULL, sqlcond CLOB DEFAULT NULL - ) RETURN t_params IS - params t_params; - BEGIN - IF c1 IS NOT NULL THEN - params.c1 := c1; - params.v1 := v1; - END IF; - IF c2 IS NOT NULL THEN - params.c2 := c2; - params.v2 := v2; - END IF; - IF c3 IS NOT NULL THEN - params.c3 := c3; - params.v3 := v3; - END IF; - IF c4 IS NOT NULL THEN - params.c4 := c4; - params.v4 := v4; - END IF; - IF c5 IS NOT NULL THEN - params.c5 := c5; - params.v5 := v5; - END IF; - params.sqlcond := sqlcond; + ) RETURN t_params; - RETURN params; - END; + FUNCTION PARAMS_FROM_DEMS( TBL_NAME VARCHAR2 ) RETURN t_params; + FUNCTION PARAMS_TO_CONDS ( PARAMS UNICAEN_TBL.T_PARAMS ) RETURN CLOB; + + PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2 ); + PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2, CONDS CLOB ); + PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2, PARAMS t_params ); + PROCEDURE CALCULER( TBL_NAME VARCHAR2 ); + PROCEDURE CALCULER( TBL_NAME VARCHAR2, CONDS CLOB ); + PROCEDURE CALCULER( TBL_NAME VARCHAR2, PARAMS t_params ); + PROCEDURE ANNULER_DEMANDES; + PROCEDURE ANNULER_DEMANDES( TBL_NAME VARCHAR2 ); + PROCEDURE CALCULER_DEMANDES; - PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2 ) IS - p t_params; - BEGIN - DEMANDE_CALCUL( tbl_name, p ); - END; + -- AUTOMATIC GENERATION -- + + PROCEDURE C_AGREMENT( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE C_CHARGENS( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE C_CHARGENS_SEUILS_DEF( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE C_CLOTURE_REALISE( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE C_CONTRAT( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE C_DMEP_LIQUIDATION( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE C_DOSSIER( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE C_PAIEMENT( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE C_PIECE_JOINTE( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE C_PIECE_JOINTE_DEMANDE( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE C_PIECE_JOINTE_FOURNIE( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE C_SERVICE( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE C_SERVICE_REFERENTIEL( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE C_SERVICE_SAISIE( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE C_VALIDATION_ENSEIGNEMENT( PARAMS UNICAEN_TBL.T_PARAMS ); + PROCEDURE C_VALIDATION_REFERENTIEL( PARAMS UNICAEN_TBL.T_PARAMS ); + + -- END OF AUTOMATIC GENERATION -- +END UNICAEN_TBL; +/ +-- OSE_CHARGENS +CREATE OR REPLACE PACKAGE BODY "OSE_CHARGENS" AS + SCENARIO NUMERIC; + NOEUD NUMERIC; + old_enable BOOLEAN DEFAULT TRUE; - PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2, CONDS CLOB ) IS - p t_params; + TYPE T_PRECALC_HEURES_PARAMS IS RECORD ( + annee_id NUMERIC DEFAULT NULL, + structure_id NUMERIC DEFAULT NULL, + scenario_id NUMERIC DEFAULT NULL, + type_heures_id NUMERIC DEFAULT NULL, + etape_id NUMERIC DEFAULT NULL, + noeud_ids tnoeud_ids DEFAULT NULL + ); + + PRECALC_HEURES_PARAMS T_PRECALC_HEURES_PARAMS; + + + FUNCTION GET_SCENARIO RETURN NUMERIC IS BEGIN - p.sqlcond := CONDS; - DEMANDE_CALCUL( tbl_name, p ); + RETURN OSE_CHARGENS.SCENARIO; END; + PROCEDURE SET_SCENARIO( SCENARIO NUMERIC ) IS + BEGIN + OSE_CHARGENS.SCENARIO := SET_SCENARIO.SCENARIO; + END; - PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2, PARAMS t_params ) IS + + FUNCTION GET_NOEUD RETURN NUMERIC IS BEGIN - INSERT INTO tbl_dems ( - ID, - TBL_NAME, - c1, v1, - c2, v2, - c3, v3, - c4, v4, - c5, v5, - sqlcond - ) VALUES ( - TBL_DEMS_ID_SEQ.NEXTVAL, - TBL_NAME, - PARAMS.c1, PARAMS.v1, - PARAMS.c2, PARAMS.v2, - PARAMS.c3, PARAMS.v3, - PARAMS.c4, PARAMS.v4, - PARAMS.c5, PARAMS.v5, - PARAMS.sqlcond - ); + RETURN OSE_CHARGENS.NOEUD; END; + PROCEDURE SET_NOEUD( NOEUD NUMERIC ) IS + BEGIN + OSE_CHARGENS.NOEUD := SET_NOEUD.NOEUD; + END; - FUNCTION PARAMS_FROM_DEMS( TBL_NAME VARCHAR2 ) RETURN t_params IS - res t_params; - conds CLOB := ''; - cond CLOB; - BEGIN - FOR d IN ( - SELECT * - FROM tbl_dems - WHERE tbl_name = PARAMS_FROM_DEMS.TBL_NAME - ) - LOOP - cond := ''; - IF d.c1 IS NOT NULL THEN - IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; - IF d.v1 IS NULL THEN - cond := cond || d.c1 || ' IS NULL'; - ELSE - cond := cond || d.c1 || '=' || d.v1; - END IF; - END IF; - IF d.c2 IS NOT NULL THEN - IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; - IF d.v2 IS NULL THEN - cond := cond || d.c2 || ' IS NULL'; - ELSE - cond := cond || d.c2 || '=' || d.v2; - END IF; - END IF; + FUNCTION CALC_COEF( choix_min NUMERIC, choix_max NUMERIC, poids NUMERIC, max_poids NUMERIC, total_poids NUMERIC, nb_choix NUMERIC ) RETURN FLOAT IS + cmin NUMERIC; + cmax NUMERIC; + coef_choix FLOAT; + coef_poids FLOAT; + max_coef_poids FLOAT; + correcteur FLOAT DEFAULT 1; + res FLOAT; + BEGIN + cmin := choix_min; + cmax := choix_max; - IF d.c3 IS NOT NULL THEN - IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; - IF d.v3 IS NULL THEN - cond := cond || d.c3 || ' IS NULL'; - ELSE - cond := cond || d.c3 || '=' || d.v3; - END IF; - END IF; + IF total_poids = 0 THEN RETURN 0; END IF; - IF d.c4 IS NOT NULL THEN - IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; - IF d.v4 IS NULL THEN - cond := cond || d.c4 || ' IS NULL'; - ELSE - cond := cond || d.c4 || '=' || d.v4; - END IF; - END IF; + IF cmax IS NULL OR cmax > nb_choix THEN + cmax := nb_choix; + END IF; + IF cmin IS NULL THEN + cmin := nb_choix; + ELSIF cmin > cmax THEN + cmin := cmax; + END IF; - IF d.c5 IS NOT NULL THEN - IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; - IF d.v5 IS NULL THEN - cond := cond || d.c5 || ' IS NULL'; - ELSE - cond := cond || d.c5 || '=' || d.v5; - END IF; - END IF; + coef_choix := (cmin + cmax) / 2 / nb_choix; - IF d.sqlcond IS NOT NULL THEN - IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; - cond := cond || '(' || d.sqlcond || ')'; - END IF; + coef_poids := poids / total_poids; - IF conds IS NOT NULL THEN - conds := conds || ' OR '; + max_coef_poids := max_poids / total_poids; + + IF (coef_choix * nb_choix * max_coef_poids) <= 1 THEN + res := coef_choix * nb_choix * coef_poids; + ELSE + correcteur := 1; + res := coef_choix * nb_choix * (coef_poids + (((1/nb_choix)-coef_poids)*correcteur)); END IF; - conds := conds || '(' || cond || ')'; - END LOOP; - res.sqlcond := conds; - DELETE FROM tbl_dems WHERE tbl_name = PARAMS_FROM_DEMS.TBL_NAME; - RETURN res; + --ose_test.echo('choix_min= ' || cmin || ', choix_max= ' || cmax || ', poids = ' || poids || ', max_poids = ' || max_poids || ', total_poids = ' || total_poids || ', nb_choix = ' || nb_choix || ', RES = ' || res); + RETURN res; END; - - FUNCTION PARAMS_TO_CONDS ( PARAMS UNICAEN_TBL.T_PARAMS ) RETURN CLOB IS - cond CLOB; + PROCEDURE DEM_CALC_SUB_EFFECTIF( scenario_noeud_id NUMERIC, type_heures_id NUMERIC, etape_id NUMERIC, effectif FLOAT ) IS BEGIN - IF params.c1 IS NOT NULL THEN - IF params.v1 IS NULL THEN - cond := cond || params.c1 || ' IS NULL'; - ELSE - cond := cond || params.c1 || '=' || params.v1; - END IF; - END IF; + INSERT INTO TMP_scenario_noeud_effectif( + scenario_noeud_id, type_heures_id, etape_id, effectif + ) VALUES( + scenario_noeud_id, type_heures_id, etape_id, effectif + ); + END; - IF params.c2 IS NOT NULL THEN - IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; - IF params.v2 IS NULL THEN - cond := cond || params.c2 || ' IS NULL'; - ELSE - cond := cond || params.c2 || '=' || params.v2; - END IF; - END IF; - IF params.c3 IS NOT NULL THEN - IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; - IF params.v3 IS NULL THEN - cond := cond || params.c3 || ' IS NULL'; - ELSE - cond := cond || params.c3 || '=' || params.v3; - END IF; - END IF; - IF params.c4 IS NOT NULL THEN - IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; - IF params.v4 IS NULL THEN - cond := cond || params.c4 || ' IS NULL'; - ELSE - cond := cond || params.c4 || '=' || params.v4; - END IF; - END IF; + PROCEDURE CALC_SUB_EFFECTIF_DEM IS + BEGIN + DELETE FROM TMP_scenario_noeud_effectif; + END; - IF params.c5 IS NOT NULL THEN - IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; - IF params.v5 IS NULL THEN - cond := cond || params.c5 || ' IS NULL'; - ELSE - cond := cond || params.c5 || '=' || params.v5; - END IF; - END IF; - IF params.sqlcond IS NOT NULL THEN - IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; - cond := cond || '(' || params.sqlcond || ')'; - END IF; + PROCEDURE CALC_ALL_EFFECTIFS IS + BEGIN + FOR p IN ( + + SELECT + sn.noeud_id, + sn.scenario_id, + sne.type_heures_id, + sne.etape_id + FROM + scenario_noeud_effectif sne + JOIN scenario_noeud sn ON sn.id = sne.scenario_noeud_id + JOIN noeud n ON n.id = sn.noeud_id + WHERE + n.etape_id IS NOT NULL - IF cond IS NULL THEN cond := '1=1'; END IF; + ) LOOP + + CALC_SUB_EFFECTIF2( p.noeud_id, p.scenario_id, p.type_heures_id, p.etape_id ); + END LOOP; - RETURN cond; END; - PROCEDURE CALCULER( TBL_NAME VARCHAR2 ) IS - p t_params; + PROCEDURE CALC_EFFECTIF( + noeud_id NUMERIC, + scenario_id NUMERIC, + type_heures_id NUMERIC DEFAULT NULL, + etape_id NUMERIC DEFAULT NULL + ) IS + snid NUMERIC; BEGIN - ANNULER_DEMANDES( TBL_NAME ); - CALCULER(TBL_NAME, p); - END; + UPDATE scenario_noeud_effectif SET effectif = 0 + WHERE + scenario_noeud_id = ( + SELECT id FROM scenario_noeud WHERE noeud_id = CALC_EFFECTIF.noeud_id AND scenario_id = CALC_EFFECTIF.scenario_id + ) + AND (type_heures_id = CALC_EFFECTIF.type_heures_id OR CALC_EFFECTIF.type_heures_id IS NULL) + AND (etape_id = CALC_EFFECTIF.etape_id OR CALC_EFFECTIF.etape_id IS NULL) + ; + FOR p IN ( + SELECT + * + FROM + v_chargens_calc_effectif cce + WHERE + cce.noeud_id = CALC_EFFECTIF.noeud_id + AND cce.scenario_id = CALC_EFFECTIF.scenario_id + AND (cce.type_heures_id = CALC_EFFECTIF.type_heures_id OR CALC_EFFECTIF.type_heures_id IS NULL) + AND (cce.etape_id = CALC_EFFECTIF.etape_id OR CALC_EFFECTIF.etape_id IS NULL) - PROCEDURE CALCULER( TBL_NAME VARCHAR2, CONDS CLOB ) IS - p t_params; - BEGIN - p.sqlcond := CONDS; - CALCULER(TBL_NAME, p); + ) LOOP + snid := OSE_CHARGENS.GET_SCENARIO_NOEUD_ID( p.scenario_id, p.noeud_id ); + IF snid IS NULL THEN + snid := OSE_CHARGENS.CREER_SCENARIO_NOEUD( p.scenario_id, p.noeud_id ); + END IF; + ADD_SCENARIO_NOEUD_EFFECTIF( snid, p.type_heures_id, p.etape_id, p.effectif ); + END LOOP; + CALC_SUB_EFFECTIF2( noeud_id, scenario_id, type_heures_id, etape_id ); END; - PROCEDURE CALCULER( TBL_NAME VARCHAR2, PARAMS t_params ) IS - calcul_proc varchar2(30); + PROCEDURE CALC_SUB_EFFECTIF2( noeud_id NUMERIC, scenario_id NUMERIC, type_heures_id NUMERIC DEFAULT NULL, etape_id NUMERIC DEFAULT NULL) IS BEGIN - IF NOT UNICAEN_TBL.ACTIV_CALCULS THEN RETURN; END IF; - - SELECT custom_calcul_proc INTO calcul_proc FROM tbl WHERE tbl_name = CALCULER.TBL_NAME; + FOR p IN ( - UNICAEN_TBL.CALCUL_PROC_PARAMS := PARAMS; - IF calcul_proc IS NOT NULL THEN - EXECUTE IMMEDIATE - 'BEGIN ' || calcul_proc || '(UNICAEN_TBL.CALCUL_PROC_PARAMS); END;' - ; - ELSE - EXECUTE IMMEDIATE - 'BEGIN UNICAEN_TBL.C_' || TBL_NAME || '(UNICAEN_TBL.CALCUL_PROC_PARAMS); END;' - ; - END IF; + SELECT * + FROM V_CHARGENS_GRANDS_LIENS cgl + WHERE cgl.noeud_sup_id = CALC_SUB_EFFECTIF2.noeud_id + ) LOOP + CALC_EFFECTIF( p.noeud_inf_id, scenario_id, type_heures_id, etape_id ); + END LOOP; END; - PROCEDURE ANNULER_DEMANDES IS + PROCEDURE DUPLIQUER( source_id NUMERIC, destination_id NUMERIC, utilisateur_id NUMERIC, structure_id NUMERIC, noeuds VARCHAR2 DEFAULT '', liens VARCHAR2 DEFAULT '' ) IS BEGIN - DELETE FROM tbl_dems; - END; + /* Destruction de tous les liens antérieurs de la destination */ + DELETE FROM + scenario_lien + WHERE + scenario_id = DUPLIQUER.destination_id + AND histo_destruction IS NULL + AND (DUPLIQUER.LIENS IS NULL OR DUPLIQUER.LIENS LIKE '%,' || lien_id || ',%' ) + AND (DUPLIQUER.STRUCTURE_ID IS NULL OR lien_id IN ( + SELECT id FROM lien WHERE lien.structure_id = DUPLIQUER.STRUCTURE_ID + )) + ; + /* Duplication des liens */ + INSERT INTO scenario_lien ( + id, + scenario_id, lien_id, + actif, poids, + choix_minimum, choix_maximum, + source_id, source_code, + histo_creation, histo_createur_id, + histo_modification, histo_modificateur_id + ) SELECT + scenario_lien_id_seq.nextval, + DUPLIQUER.destination_id, sl.lien_id, + sl.actif, sl.poids, + sl.choix_minimum, sl.choix_maximum, + source.id, 'dupli_' || sl.id || '_' || sl.lien_id || '_' || trunc(dbms_random.value(1,10000000000000)), + sysdate, DUPLIQUER.utilisateur_id, + sysdate, DUPLIQUER.utilisateur_id + FROM + scenario_lien sl + JOIN lien l ON l.id = sl.lien_id + JOIN source ON source.code = 'OSE' + WHERE + sl.scenario_id = DUPLIQUER.source_id + AND sl.histo_destruction IS NULL + AND (DUPLIQUER.LIENS IS NULL OR DUPLIQUER.LIENS LIKE '%,' || lien_id || ',%' ) + AND (DUPLIQUER.STRUCTURE_ID IS NULL OR l.structure_id = DUPLIQUER.STRUCTURE_ID) + ; - PROCEDURE ANNULER_DEMANDES( TBL_NAME VARCHAR2 ) IS - BEGIN - DELETE FROM tbl_dems WHERE tbl_name = ANNULER_DEMANDES.tbl_name; - END; + /* Destruction de tous les noeuds antérieurs de la destination */ + DELETE FROM + scenario_noeud + WHERE + scenario_id = DUPLIQUER.destination_id + AND histo_destruction IS NULL + AND (DUPLIQUER.NOEUDS IS NULL OR DUPLIQUER.NOEUDS LIKE '%,' || noeud_id || ',%' ) + AND (DUPLIQUER.STRUCTURE_ID IS NULL OR scenario_noeud.noeud_id IN ( + SELECT id FROM noeud WHERE noeud.structure_id = DUPLIQUER.STRUCTURE_ID + )) + ; + /* Duplication des noeuds */ + INSERT INTO scenario_noeud ( + id, + scenario_id, noeud_id, + assiduite, + source_id, source_code, + histo_creation, histo_createur_id, + histo_modification, histo_modificateur_id + ) SELECT + scenario_noeud_id_seq.nextval, + DUPLIQUER.destination_id, sn.noeud_id, + sn.assiduite, + source.id, 'dupli_' || sn.id || '_' || sn.noeud_id || '_' || trunc(dbms_random.value(1,10000000000000)), + sysdate, DUPLIQUER.utilisateur_id, + sysdate, DUPLIQUER.utilisateur_id + FROM + scenario_noeud sn + JOIN noeud n ON n.id = sn.noeud_id + JOIN source ON source.code = 'OSE' + WHERE + sn.scenario_id = DUPLIQUER.source_id + AND sn.histo_destruction IS NULL + AND (DUPLIQUER.NOEUDS IS NULL OR DUPLIQUER.NOEUDS LIKE '%,' || noeud_id || ',%' ) + AND (DUPLIQUER.STRUCTURE_ID IS NULL OR n.structure_id = DUPLIQUER.STRUCTURE_ID) + ; - FUNCTION HAS_DEMANDES RETURN BOOLEAN IS - has_dems NUMERIC; - BEGIN - SELECT count(*) INTO has_dems from tbl_dems where rownum = 1; + /* Duplication des effectifs */ + INSERT INTO scenario_noeud_effectif ( + id, + scenario_noeud_id, + type_heures_id, + effectif, + etape_id + ) SELECT + scenario_noeud_effectif_id_seq.nextval, + sn_dst.id, + sne.type_heures_id, + sne.effectif, + sne.etape_id + FROM + scenario_noeud_effectif sne + JOIN scenario_noeud sn_src ON sn_src.id = sne.scenario_noeud_id + JOIN scenario_noeud sn_dst ON sn_dst.scenario_id = DUPLIQUER.destination_id AND sn_dst.noeud_id = sn_src.noeud_id + JOIN noeud n ON n.id = sn_src.noeud_id + WHERE + sn_src.scenario_id = DUPLIQUER.source_id + AND sn_src.histo_destruction IS NULL + AND (DUPLIQUER.NOEUDS IS NULL OR DUPLIQUER.NOEUDS LIKE '%,' || sn_src.noeud_id || ',%' ) + AND (DUPLIQUER.STRUCTURE_ID IS NULL OR n.structure_id = DUPLIQUER.STRUCTURE_ID) + ; - RETURN has_dems = 1; + /* Duplication des seuils */ + INSERT INTO scenario_noeud_seuil ( + id, + scenario_noeud_id, + type_intervention_id, + ouverture, + dedoublement + ) SELECT + scenario_noeud_seuil_id_seq.nextval, + sn_dst.id, + sns.type_intervention_id, + sns.ouverture, + sns.dedoublement + FROM + scenario_noeud_seuil sns + JOIN scenario_noeud sn_src ON sn_src.id = sns.scenario_noeud_id + JOIN scenario_noeud sn_dst ON sn_dst.scenario_id = DUPLIQUER.destination_id AND sn_dst.noeud_id = sn_src.noeud_id + JOIN noeud n ON n.id = sn_src.noeud_id + WHERE + sn_src.scenario_id = DUPLIQUER.source_id + AND sn_src.histo_destruction IS NULL + AND (DUPLIQUER.NOEUDS IS NULL OR DUPLIQUER.NOEUDS LIKE '%,' || sn_src.noeud_id || ',%' ) + AND (DUPLIQUER.STRUCTURE_ID IS NULL OR n.structure_id = DUPLIQUER.STRUCTURE_ID) + ; END; - PROCEDURE CALCULER_DEMANDES IS - dems t_params; + PROCEDURE CONTROLE_SEUIL( ouverture NUMERIC, dedoublement NUMERIC ) IS BEGIN - FOR d IN ( - SELECT DISTINCT tbl_name FROM tbl_dems - ) LOOP - dems := PARAMS_FROM_DEMS( d.tbl_name ); - calculer( d.tbl_name, dems ); - END LOOP; + IF ouverture IS NOT NULL THEN + IF ouverture < 1 THEN + raise_application_error(-20101, 'Le seuil d''ouverture doit être supérieur ou égal à 1'); + END IF; + END IF; - IF HAS_DEMANDES THEN -- pour les boucles !! - CALCULER_DEMANDES; + IF dedoublement IS NOT NULL THEN + IF dedoublement < 1 THEN + raise_application_error(-20101, 'Le seuil de dédoublement doit être supérieur ou égal à 1'); + END IF; + END IF; + + IF ouverture IS NOT NULL AND dedoublement IS NOT NULL THEN + IF dedoublement < ouverture THEN + raise_application_error(-20101, 'Le seuil de dédoublement doit être supérieur ou égal au seuil d''ouverture'); + END IF; END IF; END; - - -- AUTOMATIC GENERATION -- - - PROCEDURE C_AGREMENT( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; + FUNCTION CREER_SCENARIO_NOEUD( scenario_id NUMERIC, noeud_id NUMERIC, assiduite FLOAT DEFAULT 1 ) RETURN NUMERIC IS + new_id NUMERIC; + BEGIN + new_id := SCENARIO_NOEUD_ID_SEQ.NEXTVAL; +--ose_test.echo(scenario_id || '-' || noeud_id); + INSERT INTO SCENARIO_NOEUD( + ID, + SCENARIO_ID, + NOEUD_ID, + ASSIDUITE, + SOURCE_ID, + SOURCE_CODE, + HEURES, + HISTO_CREATION, + HISTO_CREATEUR_ID, + HISTO_MODIFICATION, + HISTO_MODIFICATEUR_ID + ) VALUES ( + new_id, + CREER_SCENARIO_NOEUD.scenario_id, + CREER_SCENARIO_NOEUD.noeud_id, + CREER_SCENARIO_NOEUD.assiduite, + OSE_DIVERS.GET_OSE_SOURCE_ID, + 'OSE_NEW_SN_' || new_id, + null, + SYSDATE, + OSE_DIVERS.GET_OSE_UTILISATEUR_ID, + SYSDATE, + OSE_DIVERS.GET_OSE_UTILISATEUR_ID + ); + RETURN new_id; + END; + + + FUNCTION GET_SCENARIO_NOEUD_ID(scenario_id NUMERIC, noeud_id NUMERIC) RETURN NUMERIC IS + res NUMERIC; BEGIN - conds := params_to_conds( params ); + SELECT + sn.id INTO res + FROM + scenario_noeud sn + WHERE + sn.noeud_id = GET_SCENARIO_NOEUD_ID.noeud_id + AND sn.scenario_id = GET_SCENARIO_NOEUD_ID.scenario_id + AND sn.histo_destruction IS NULL; - EXECUTE IMMEDIATE 'BEGIN + RETURN res; - UPDATE TBL_AGREMENT SET to_delete = 1 WHERE ' || conds || '; + EXCEPTION WHEN NO_DATA_FOUND THEN + RETURN NULL; + END; - MERGE INTO - TBL_AGREMENT t - USING ( - SELECT - tv.* - FROM - (WITH i_s AS ( - SELECT DISTINCT - fr.intervenant_id, - ep.structure_id - FROM - formule_resultat fr - JOIN type_volume_horaire tvh ON tvh.code = ''PREVU'' AND tvh.id = fr.type_volume_horaire_id - JOIN etat_volume_horaire evh ON evh.code = ''valide'' AND evh.id = fr.etat_volume_horaire_id - - JOIN formule_resultat_service frs ON frs.formule_resultat_id = fr.id - JOIN service s ON s.id = frs.service_id - JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - WHERE - frs.total > 0 - ) - SELECT - i.annee_id annee_id, - tas.type_agrement_id type_agrement_id, - i.id intervenant_id, - null structure_id, - tas.obligatoire obligatoire, - a.id agrement_id - FROM - type_agrement ta - JOIN type_agrement_statut tas ON tas.type_agrement_id = ta.id - AND tas.histo_destruction IS NULL - - JOIN intervenant i ON i.histo_destruction IS NULL - AND (tas.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = tas.premier_recrutement) - AND i.statut_id = tas.statut_intervenant_id - - LEFT JOIN agrement a ON a.type_agrement_id = ta.id - AND a.intervenant_id = i.id - AND a.histo_destruction IS NULL - WHERE - ta.code = ''CONSEIL_ACADEMIQUE'' - - UNION ALL - - SELECT - i.annee_id annee_id, - tas.type_agrement_id type_agrement_id, - i.id intervenant_id, - i_s.structure_id structure_id, - tas.obligatoire obligatoire, - a.id agrement_id - FROM - type_agrement ta - JOIN type_agrement_statut tas ON tas.type_agrement_id = ta.id - AND tas.histo_destruction IS NULL - - JOIN intervenant i ON i.histo_destruction IS NULL - AND (tas.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = tas.premier_recrutement) - AND i.statut_id = tas.statut_intervenant_id - - JOIN i_s ON i_s.intervenant_id = i.id - - LEFT JOIN agrement a ON a.type_agrement_id = ta.id - AND a.intervenant_id = i.id - AND a.structure_id = i_s.structure_id - AND a.histo_destruction IS NULL - WHERE - ta.code = ''CONSEIL_RESTREINT'') tv - WHERE - ' || conds || ' + PROCEDURE ADD_SCENARIO_NOEUD_EFFECTIF( scenario_noeud_id NUMERIC, type_heures_id NUMERIC, etape_id NUMERIC, effectif FLOAT ) IS + old_enable BOOLEAN; + BEGIN + old_enable := ose_chargens.ENABLE_TRIGGER_EFFECTIFS; + ose_chargens.ENABLE_TRIGGER_EFFECTIFS := false; - ) v ON ( - t.TYPE_AGREMENT_ID = v.TYPE_AGREMENT_ID - AND t.INTERVENANT_ID = v.INTERVENANT_ID - AND COALESCE(t.STRUCTURE_ID,0) = COALESCE(v.STRUCTURE_ID,0) + MERGE INTO scenario_noeud_effectif sne USING dual ON ( + + sne.scenario_noeud_id = ADD_SCENARIO_NOEUD_EFFECTIF.scenario_noeud_id + AND sne.type_heures_id = ADD_SCENARIO_NOEUD_EFFECTIF.type_heures_id + AND sne.etape_id = ADD_SCENARIO_NOEUD_EFFECTIF.etape_id ) WHEN MATCHED THEN UPDATE SET - ANNEE_ID = v.ANNEE_ID, - OBLIGATOIRE = v.OBLIGATOIRE, - AGREMENT_ID = v.AGREMENT_ID, - to_delete = 0 + effectif = effectif + ADD_SCENARIO_NOEUD_EFFECTIF.effectif WHEN NOT MATCHED THEN INSERT ( ID, - ANNEE_ID, - TYPE_AGREMENT_ID, - INTERVENANT_ID, - STRUCTURE_ID, - OBLIGATOIRE, - AGREMENT_ID, - TO_DELETE + SCENARIO_NOEUD_ID, + TYPE_HEURES_ID, + ETAPE_ID, + EFFECTIF ) VALUES ( - TBL_AGREMENT_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.TYPE_AGREMENT_ID, - v.INTERVENANT_ID, - v.STRUCTURE_ID, - v.OBLIGATOIRE, - v.AGREMENT_ID, - 0 + SCENARIO_NOEUD_EFFECTIF_ID_SEQ.NEXTVAL, + ADD_SCENARIO_NOEUD_EFFECTIF.scenario_noeud_id, + ADD_SCENARIO_NOEUD_EFFECTIF.type_heures_id, + ADD_SCENARIO_NOEUD_EFFECTIF.etape_id, + ADD_SCENARIO_NOEUD_EFFECTIF.effectif ); - DELETE TBL_AGREMENT WHERE to_delete = 1 AND ' || conds || '; - - END;'; + DELETE FROM scenario_noeud_effectif WHERE effectif = 0; + ose_chargens.ENABLE_TRIGGER_EFFECTIFS := old_enable; END; - PROCEDURE C_CHARGENS( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; + PROCEDURE INIT_SCENARIO_NOEUD_EFFECTIF( + etape_id NUMERIC, + scenario_id NUMERIC, + type_heures_id NUMERIC, + effectif FLOAT, + surcharge BOOLEAN DEFAULT FALSE + ) IS + noeud_id NUMERIC; + scenario_noeud_id NUMERIC; + scenario_noeud_effectif_id NUMERIC; BEGIN - conds := params_to_conds( params ); + SELECT + n.id, sn.id, sne.id + INTO + noeud_id, scenario_noeud_id, scenario_noeud_effectif_id + FROM + noeud n + LEFT JOIN scenario_noeud sn ON sn.noeud_id = n.id + AND sn.histo_destruction IS NULL + AND sn.scenario_id = INIT_SCENARIO_NOEUD_EFFECTIF.scenario_id - EXECUTE IMMEDIATE 'BEGIN + LEFT JOIN scenario_noeud_effectif sne ON sne.scenario_noeud_id = sn.id + AND sne.type_heures_id = INIT_SCENARIO_NOEUD_EFFECTIF.type_heures_id + WHERE + n.etape_id = INIT_SCENARIO_NOEUD_EFFECTIF.etape_id + AND n.histo_destruction IS NULL + ; - UPDATE TBL_CHARGENS SET to_delete = 1 WHERE ' || conds || '; + IF noeud_id IS NULL THEN RETURN; END IF; - MERGE INTO - TBL_CHARGENS t - USING ( + IF scenario_noeud_id IS NULL THEN + scenario_noeud_id := CREER_SCENARIO_NOEUD( scenario_id, noeud_id ); + END IF; - SELECT - tv.* - FROM - (WITH t AS ( - SELECT - n.annee_id annee_id, - n.noeud_id noeud_id, - sn.scenario_id scenario_id, - sne.type_heures_id type_heures_id, - ti.id type_intervention_id, - - n.element_pedagogique_id element_pedagogique_id, - n.element_pedagogique_etape_id etape_id, - sne.etape_id etape_ens_id, - n.structure_id structure_id, - n.groupe_type_formation_id groupe_type_formation_id, - - vhe.heures heures, - vhe.heures * ti.taux_hetd_service hetd, - - GREATEST(COALESCE(sns.ouverture, 1),1) ouverture, - GREATEST(COALESCE(sns.dedoublement, snsetp.dedoublement, csdd.dedoublement,1),1) dedoublement, - COALESCE(sns.assiduite,1) assiduite, - sne.effectif*COALESCE(sns.assiduite,1) effectif, - - SUM(sne.effectif*COALESCE(sns.assiduite,1)) OVER (PARTITION BY n.noeud_id, sn.scenario_id, ti.id) t_effectif - - FROM - scenario_noeud_effectif sne - JOIN etape e ON e.id = sne.etape_id - AND e.histo_destruction IS NULL - - JOIN scenario_noeud sn ON sn.id = sne.scenario_noeud_id - AND sn.histo_destruction IS NULL - - JOIN tbl_noeud n ON n.noeud_id = sn.noeud_id - - JOIN volume_horaire_ens vhe ON vhe.element_pedagogique_id = n.element_pedagogique_id - AND vhe.histo_destruction IS NULL - AND vhe.heures > 0 - - JOIN type_intervention ti ON ti.id = vhe.type_intervention_id - - LEFT JOIN tbl_noeud netp ON netp.etape_id = e.id - - LEFT JOIN scenario_noeud snetp ON snetp.scenario_id = sn.scenario_id - AND snetp.noeud_id = netp.noeud_id - AND snetp.histo_destruction IS NULL - - LEFT JOIN scenario_noeud_seuil snsetp ON snsetp.scenario_noeud_id = snetp.id - AND snsetp.type_intervention_id = ti.id - - LEFT JOIN tbl_chargens_seuils_def csdd ON csdd.annee_id = n.annee_id - AND csdd.scenario_id = sn.scenario_id - AND csdd.type_intervention_id = ti.id - AND csdd.groupe_type_formation_id = n.groupe_type_formation_id - AND csdd.structure_id = n.structure_id - - LEFT JOIN scenario_noeud_seuil sns ON sns.scenario_noeud_id = sn.id - AND sns.type_intervention_id = ti.id - ) - SELECT - annee_id, - noeud_id, - scenario_id, - type_heures_id, - type_intervention_id, - - element_pedagogique_id, - etape_id, - etape_ens_id, - structure_id, - groupe_type_formation_id, - - ouverture, - dedoublement, - assiduite, - effectif, - heures heures_ens, - --t_effectif, - - CASE WHEN t_effectif < ouverture THEN 0 ELSE - CEIL( t_effectif / dedoublement ) * effectif / t_effectif - END groupes, - - CASE WHEN t_effectif < ouverture THEN 0 ELSE - CEIL( t_effectif / dedoublement ) * heures * effectif / t_effectif - END heures, - - CASE WHEN t_effectif < ouverture THEN 0 ELSE - CEIL( t_effectif / dedoublement ) * hetd * effectif / t_effectif - END hetd - - FROM - t) tv - WHERE - ' || conds || ' + IF scenario_noeud_effectif_id IS NULL THEN + scenario_noeud_effectif_id := SCENARIO_NOEUD_EFFECTIF_ID_SEQ.NEXTVAL; + INSERT INTO scenario_noeud_effectif ( + id, + scenario_noeud_id, + type_heures_id, + effectif, + etape_id + ) VALUES ( + scenario_noeud_effectif_id, + scenario_noeud_id, + INIT_SCENARIO_NOEUD_EFFECTIF.type_heures_id, + INIT_SCENARIO_NOEUD_EFFECTIF.effectif, + INIT_SCENARIO_NOEUD_EFFECTIF.etape_id + ); + ELSIF surcharge THEN + UPDATE scenario_noeud_effectif SET effectif = INIT_SCENARIO_NOEUD_EFFECTIF.effectif WHERE id = scenario_noeud_effectif_id; + END IF; + + CALC_SUB_EFFECTIF2( noeud_id, scenario_id, type_heures_id, etape_id ); + + EXCEPTION WHEN NO_DATA_FOUND THEN + RETURN; + END; - ) v ON ( - t.ANNEE_ID = v.ANNEE_ID - AND t.NOEUD_ID = v.NOEUD_ID - AND t.SCENARIO_ID = v.SCENARIO_ID - AND t.TYPE_HEURES_ID = v.TYPE_HEURES_ID - AND t.TYPE_INTERVENTION_ID = v.TYPE_INTERVENTION_ID - AND t.ELEMENT_PEDAGOGIQUE_ID = v.ELEMENT_PEDAGOGIQUE_ID - AND t.ETAPE_ID = v.ETAPE_ID - AND t.ETAPE_ENS_ID = v.ETAPE_ENS_ID - AND t.STRUCTURE_ID = v.STRUCTURE_ID - AND t.GROUPE_TYPE_FORMATION_ID = v.GROUPE_TYPE_FORMATION_ID - ) WHEN MATCHED THEN UPDATE SET - OUVERTURE = v.OUVERTURE, - DEDOUBLEMENT = v.DEDOUBLEMENT, - ASSIDUITE = v.ASSIDUITE, - EFFECTIF = v.EFFECTIF, - HEURES_ENS = v.HEURES_ENS, - GROUPES = v.GROUPES, - HEURES = v.HEURES, - HETD = v.HETD, - to_delete = 0 + PROCEDURE SET_PRECALC_HEURES_PARAMS( + annee_id NUMERIC DEFAULT NULL, + structure_id NUMERIC DEFAULT NULL, + scenario_id NUMERIC DEFAULT NULL, + type_heures_id NUMERIC DEFAULT NULL, + etape_id NUMERIC DEFAULT NULL, + noeud_ids tnoeud_ids DEFAULT NULL + ) IS + BEGIN + PRECALC_HEURES_PARAMS.ANNEE_ID := ANNEE_ID; + PRECALC_HEURES_PARAMS.STRUCTURE_ID := STRUCTURE_ID; + PRECALC_HEURES_PARAMS.SCENARIO_ID := SCENARIO_ID; + PRECALC_HEURES_PARAMS.TYPE_HEURES_ID := TYPE_HEURES_ID; + PRECALC_HEURES_PARAMS.ETAPE_ID := ETAPE_ID; + PRECALC_HEURES_PARAMS.NOEUD_IDS := noeud_ids; + END; - WHEN NOT MATCHED THEN INSERT ( - ID, - ANNEE_ID, - NOEUD_ID, - SCENARIO_ID, - TYPE_HEURES_ID, - TYPE_INTERVENTION_ID, - ELEMENT_PEDAGOGIQUE_ID, - ETAPE_ID, - ETAPE_ENS_ID, - STRUCTURE_ID, - GROUPE_TYPE_FORMATION_ID, - OUVERTURE, - DEDOUBLEMENT, - ASSIDUITE, - EFFECTIF, - HEURES_ENS, - GROUPES, - HEURES, - HETD, - TO_DELETE - ) VALUES ( + FUNCTION MATCH_PRECALC_HEURES_PARAMS( + annee_id NUMERIC DEFAULT NULL, + structure_id NUMERIC DEFAULT NULL, + scenario_id NUMERIC DEFAULT NULL, + type_heures_id NUMERIC DEFAULT NULL, + etape_id NUMERIC DEFAULT NULL, + noeud_id NUMERIC DEFAULT NULL + ) RETURN NUMERIC IS + BEGIN - TBL_CHARGENS_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.NOEUD_ID, - v.SCENARIO_ID, - v.TYPE_HEURES_ID, - v.TYPE_INTERVENTION_ID, - v.ELEMENT_PEDAGOGIQUE_ID, - v.ETAPE_ID, - v.ETAPE_ENS_ID, - v.STRUCTURE_ID, - v.GROUPE_TYPE_FORMATION_ID, - v.OUVERTURE, - v.DEDOUBLEMENT, - v.ASSIDUITE, - v.EFFECTIF, - v.HEURES_ENS, - v.GROUPES, - v.HEURES, - v.HETD, - 0 + IF PRECALC_HEURES_PARAMS.noeud_ids IS NOT NULL THEN + IF NOT (noeud_id MEMBER OF PRECALC_HEURES_PARAMS.noeud_ids) THEN + RETURN 0; + END IF; + END IF; - ); + IF annee_id <> COALESCE(PRECALC_HEURES_PARAMS.annee_id, annee_id) THEN + RETURN 0; + END IF; - DELETE TBL_CHARGENS WHERE to_delete = 1 AND ' || conds || '; + IF structure_id <> COALESCE(PRECALC_HEURES_PARAMS.structure_id, structure_id) THEN + RETURN 0; + END IF; - END;'; + IF scenario_id <> COALESCE(PRECALC_HEURES_PARAMS.scenario_id, scenario_id) THEN + RETURN 0; + END IF; + + IF type_heures_id <> COALESCE(PRECALC_HEURES_PARAMS.type_heures_id, type_heures_id) THEN + RETURN 0; + END IF; + + IF etape_id <> COALESCE(PRECALC_HEURES_PARAMS.etape_id, etape_id) THEN + RETURN 0; + END IF; + RETURN 1; END; + FUNCTION GET_PRECALC_HEURES_ANNEE RETURN NUMERIC IS + BEGIN + RETURN PRECALC_HEURES_PARAMS.ANNEE_ID; + END; + - PROCEDURE C_CHARGENS_SEUILS_DEF( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; + + FUNCTION GET_PRECALC_HEURES_STRUCTURE RETURN NUMERIC IS BEGIN - conds := params_to_conds( params ); + RETURN PRECALC_HEURES_PARAMS.STRUCTURE_ID; + END; - EXECUTE IMMEDIATE 'BEGIN - UPDATE TBL_CHARGENS_SEUILS_DEF SET to_delete = 1 WHERE ' || conds || '; - MERGE INTO - TBL_CHARGENS_SEUILS_DEF t - USING ( + FUNCTION GET_PRECALC_HEURES_SCENARIO RETURN NUMERIC IS + BEGIN + RETURN PRECALC_HEURES_PARAMS.SCENARIO_ID; + END; - SELECT - tv.* - FROM - (SELECT - sta.annee_id, - sta.scenario_id, - s.structure_id, - gtf.groupe_type_formation_id, - sta.type_intervention_id, - COALESCE(sc1.dedoublement, sc2.dedoublement, sc3.dedoublement, sc4.dedoublement) dedoublement - FROM - (SELECT DISTINCT scenario_id, type_intervention_id, annee_id FROM seuil_charge WHERE histo_destruction IS NULL) sta - JOIN (SELECT DISTINCT structure_id FROM noeud WHERE structure_id IS NOT NULL) s ON 1=1 - JOIN (SELECT id groupe_type_formation_id FROM groupe_type_formation) gtf ON 1=1 - - LEFT JOIN seuil_charge sc1 ON - sc1.histo_destruction IS NULL - AND sc1.annee_id = sta.annee_id - AND sc1.scenario_id = sta.scenario_id - AND sc1.type_intervention_id = sta.type_intervention_id - AND sc1.structure_id = s.structure_id - AND sc1.groupe_type_formation_id = gtf.groupe_type_formation_id - - LEFT JOIN seuil_charge sc2 ON - sc2.histo_destruction IS NULL - AND sc2.annee_id = sta.annee_id - AND sc2.scenario_id = sta.scenario_id - AND sc2.type_intervention_id = sta.type_intervention_id - AND sc2.structure_id = s.structure_id - AND sc2.groupe_type_formation_id IS NULL - - LEFT JOIN seuil_charge sc3 ON - sc3.histo_destruction IS NULL - AND sc3.annee_id = sta.annee_id - AND sc3.scenario_id = sta.scenario_id - AND sc3.type_intervention_id = sta.type_intervention_id - AND sc3.structure_id IS NULL - AND sc3.groupe_type_formation_id = gtf.groupe_type_formation_id - - LEFT JOIN seuil_charge sc4 ON - sc4.histo_destruction IS NULL - AND sc4.annee_id = sta.annee_id - AND sc4.scenario_id = sta.scenario_id - AND sc4.type_intervention_id = sta.type_intervention_id - AND sc4.structure_id IS NULL - AND sc4.groupe_type_formation_id IS NULL - WHERE - COALESCE(sc1.dedoublement, sc2.dedoublement, sc3.dedoublement, sc4.dedoublement, 1) <> 1) tv - WHERE - ' || conds || ' - ) v ON ( - t.ANNEE_ID = v.ANNEE_ID - AND t.SCENARIO_ID = v.SCENARIO_ID - AND t.STRUCTURE_ID = v.STRUCTURE_ID - AND t.GROUPE_TYPE_FORMATION_ID = v.GROUPE_TYPE_FORMATION_ID - AND t.TYPE_INTERVENTION_ID = v.TYPE_INTERVENTION_ID - ) WHEN MATCHED THEN UPDATE SET + FUNCTION GET_PRECALC_HEURES_TYPE_HEURES RETURN NUMERIC IS + BEGIN + RETURN PRECALC_HEURES_PARAMS.TYPE_HEURES_ID; + END; - DEDOUBLEMENT = v.DEDOUBLEMENT, - to_delete = 0 - WHEN NOT MATCHED THEN INSERT ( - ID, - ANNEE_ID, - SCENARIO_ID, - STRUCTURE_ID, - GROUPE_TYPE_FORMATION_ID, - TYPE_INTERVENTION_ID, - DEDOUBLEMENT, - TO_DELETE + FUNCTION GET_PRECALC_HEURES_ETAPE RETURN NUMERIC IS + BEGIN + RETURN PRECALC_HEURES_PARAMS.ETAPE_ID; + END; - ) VALUES ( +-- FUNCTION GET_PRECALC_HEURES_NOEUD RETURN NUMERIC IS +-- BEGIN + +-- END; + +END OSE_CHARGENS; +/ + +-- OSE_DIVERS +CREATE OR REPLACE PACKAGE BODY "OSE_DIVERS" AS + OSE_UTILISATEUR_ID NUMERIC; + OSE_SOURCE_ID NUMERIC; + + + + +PROCEDURE CALCULER_TABLEAUX_BORD IS +BEGIN + FOR d IN ( + SELECT tbl_name + FROM tbl + WHERE tbl_name <> 'formule' -- TROP LONG !! + ORDER BY ordre + ) + LOOP + UNICAEN_TBL.CALCULER(d.tbl_name); + dbms_output.put_line('Calcul du tableau de bord "' || d.tbl_name || '" effectué'); + COMMIT; + END LOOP; +END; + + + +FUNCTION GET_OSE_UTILISATEUR_ID RETURN NUMERIC IS +BEGIN + IF OSE_DIVERS.OSE_UTILISATEUR_ID IS NULL THEN + SELECT + to_number(valeur) INTO OSE_DIVERS.OSE_UTILISATEUR_ID + FROM + parametre + WHERE + nom = 'oseuser'; + END IF; + + RETURN OSE_DIVERS.OSE_UTILISATEUR_ID; +END; - TBL_CHARGENS_SEUILS_DEF_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.SCENARIO_ID, - v.STRUCTURE_ID, - v.GROUPE_TYPE_FORMATION_ID, - v.TYPE_INTERVENTION_ID, - v.DEDOUBLEMENT, - 0 - ); - DELETE TBL_CHARGENS_SEUILS_DEF WHERE to_delete = 1 AND ' || conds || '; +FUNCTION GET_OSE_SOURCE_ID RETURN NUMERIC IS +BEGIN + IF OSE_DIVERS.OSE_SOURCE_ID IS NULL THEN + SELECT + id INTO OSE_DIVERS.OSE_SOURCE_ID + FROM + source + WHERE + code = 'OSE'; + END IF; - END;'; + RETURN OSE_DIVERS.OSE_SOURCE_ID; +END; - END; +FUNCTION INTERVENANT_HAS_PRIVILEGE( intervenant_id NUMERIC, privilege_name VARCHAR2 ) RETURN NUMERIC IS + statut statut_intervenant%rowtype; + itype type_intervenant%rowtype; + res NUMERIC; +BEGIN + res := 1; + SELECT si.* INTO statut FROM statut_intervenant si JOIN intervenant i ON i.statut_id = si.id WHERE i.id = intervenant_id; + SELECT ti.* INTO itype FROM type_intervenant ti WHERE ti.id = statut.type_intervenant_id; - PROCEDURE C_CLOTURE_REALISE( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; - BEGIN - conds := params_to_conds( params ); + /* DEPRECATED */ + IF 'saisie_service' = privilege_name THEN + res := statut.peut_saisir_service; + RETURN res; + ELSIF 'saisie_service_exterieur' = privilege_name THEN + --IF INTERVENANT_HAS_PRIVILEGE( intervenant_id, 'saisie_service' ) = 0 OR itype.code = 'E' THEN -- cascade + IF itype.code = 'E' THEN + res := 0; + END IF; + RETURN res; + ELSIF 'saisie_service_referentiel' = privilege_name THEN + IF itype.code = 'E' THEN + res := 0; + END IF; + RETURN res; + ELSIF 'saisie_service_referentiel_autre_structure' = privilege_name THEN + res := 1; + RETURN res; + ELSIF 'saisie_motif_non_paiement' = privilege_name THEN + res := statut.peut_saisir_motif_non_paiement; + RETURN res; + END IF; + /* FIN DE DEPRECATED */ - EXECUTE IMMEDIATE 'BEGIN + SELECT + count(*) + INTO + res + FROM + intervenant i + JOIN statut_privilege sp ON sp.statut_id = i.statut_id + JOIN privilege p ON p.id = sp.privilege_id + JOIN categorie_privilege cp ON cp.id = p.categorie_id + WHERE + i.id = INTERVENANT_HAS_PRIVILEGE.intervenant_id + AND cp.code || '-' || p.code = privilege_name; - UPDATE TBL_CLOTURE_REALISE SET to_delete = 1 WHERE ' || conds || '; + RETURN res; +END; - MERGE INTO - TBL_CLOTURE_REALISE t - USING ( +FUNCTION implode(i_query VARCHAR2, i_seperator VARCHAR2 DEFAULT ',') RETURN VARCHAR2 AS + l_return CLOB:=''; + l_temp CLOB; + TYPE r_cursor is REF CURSOR; + rc r_cursor; +BEGIN + OPEN rc FOR i_query; + LOOP + FETCH rc INTO L_TEMP; + EXIT WHEN RC%NOTFOUND; + l_return:=l_return||L_TEMP||i_seperator; + END LOOP; + RETURN RTRIM(l_return,i_seperator); +END; - SELECT - tv.* - FROM - (WITH t AS ( - SELECT - i.annee_id annee_id, - i.id intervenant_id, - si.peut_cloturer_saisie peut_cloturer_saisie, - CASE WHEN v.id IS NULL THEN 0 ELSE 1 END cloture - FROM - intervenant i - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN type_validation tv ON tv.code = ''CLOTURE_REALISE'' - - LEFT JOIN validation v ON v.intervenant_id = i.id - AND v.type_validation_id = tv.id - AND v.histo_destruction IS NULL - - WHERE - i.histo_destruction IS NULL - ) - SELECT - annee_id, - intervenant_id, - peut_cloturer_saisie, - CASE WHEN sum(cloture) = 0 THEN 0 ELSE 1 END cloture - FROM - t - GROUP BY - annee_id, - intervenant_id, - peut_cloturer_saisie) tv - WHERE - ' || conds || ' +PROCEDURE intervenant_horodatage_service( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, REFERENTIEL NUMERIC, HISTO_MODIFICATEUR_ID NUMERIC, HISTO_MODIFICATION DATE ) AS +BEGIN + MERGE INTO histo_intervenant_service his USING dual ON ( - ) v ON ( - t.INTERVENANT_ID = v.INTERVENANT_ID + his.INTERVENANT_ID = intervenant_horodatage_service.INTERVENANT_ID + AND NVL(his.TYPE_VOLUME_HORAIRE_ID,0) = NVL(intervenant_horodatage_service.TYPE_VOLUME_HORAIRE_ID,0) + AND his.REFERENTIEL = intervenant_horodatage_service.REFERENTIEL ) WHEN MATCHED THEN UPDATE SET - ANNEE_ID = v.ANNEE_ID, - PEUT_CLOTURER_SAISIE = v.PEUT_CLOTURER_SAISIE, - CLOTURE = v.CLOTURE, - to_delete = 0 + HISTO_MODIFICATEUR_ID = intervenant_horodatage_service.HISTO_MODIFICATEUR_ID, + HISTO_MODIFICATION = intervenant_horodatage_service.HISTO_MODIFICATION WHEN NOT MATCHED THEN INSERT ( ID, - ANNEE_ID, INTERVENANT_ID, - PEUT_CLOTURER_SAISIE, - CLOTURE, - TO_DELETE - + TYPE_VOLUME_HORAIRE_ID, + REFERENTIEL, + HISTO_MODIFICATEUR_ID, + HISTO_MODIFICATION ) VALUES ( - - TBL_CLOTURE_REALISE_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.INTERVENANT_ID, - v.PEUT_CLOTURER_SAISIE, - v.CLOTURE, - 0 + HISTO_INTERVENANT_SERVI_ID_SEQ.NEXTVAL, + intervenant_horodatage_service.INTERVENANT_ID, + intervenant_horodatage_service.TYPE_VOLUME_HORAIRE_ID, + intervenant_horodatage_service.REFERENTIEL, + intervenant_horodatage_service.HISTO_MODIFICATEUR_ID, + intervenant_horodatage_service.HISTO_MODIFICATION ); - - DELETE TBL_CLOTURE_REALISE WHERE to_delete = 1 AND ' || conds || '; - - END;'; - - END; +END; +FUNCTION NIVEAU_FORMATION_ID_CALC( gtf_id NUMERIC, gtf_pertinence_niveau NUMERIC, niveau NUMERIC DEFAULT NULL ) RETURN NUMERIC AS +BEGIN + IF 1 <> gtf_pertinence_niveau OR niveau IS NULL OR niveau < 1 OR gtf_id < 1 THEN RETURN NULL; END IF; + RETURN gtf_id * 256 + niveau; +END; - PROCEDURE C_CONTRAT( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; - BEGIN - conds := params_to_conds( params ); +FUNCTION STR_REDUCE( str CLOB ) RETURN CLOB IS +BEGIN + RETURN utl_raw.cast_to_varchar2((nlssort(str, 'nls_sort=binary_ai'))); +END; - EXECUTE IMMEDIATE 'BEGIN +FUNCTION STR_FIND( haystack CLOB, needle VARCHAR2 ) RETURN NUMERIC IS +BEGIN + IF STR_REDUCE( haystack ) LIKE STR_REDUCE( '%' || needle || '%' ) THEN RETURN 1; END IF; + RETURN 0; +END; - UPDATE TBL_CONTRAT SET to_delete = 1 WHERE ' || conds || '; +FUNCTION LIKED( haystack CLOB, needle CLOB ) RETURN NUMERIC IS +BEGIN + RETURN CASE WHEN STR_REDUCE(haystack) LIKE STR_REDUCE(needle) THEN 1 ELSE 0 END; +END; - MERGE INTO - TBL_CONTRAT t - USING ( +PROCEDURE DO_NOTHING IS +BEGIN + RETURN; +END; - SELECT - tv.* - FROM - (WITH t AS ( - SELECT - i.annee_id annee_id, - i.id intervenant_id, - si.peut_avoir_contrat peut_avoir_contrat, - NVL(ep.structure_id, i.structure_id) structure_id, - CASE WHEN evh.code IN (''contrat-edite'',''contrat-signe'') THEN 1 ELSE 0 END edite, - CASE WHEN evh.code IN (''contrat-signe'') THEN 1 ELSE 0 END signe - FROM - intervenant i - - JOIN statut_intervenant si ON si.id = i.statut_id - - JOIN service s ON s.intervenant_id = i.id - AND s.histo_destruction IS NULL - - JOIN type_volume_horaire tvh ON tvh.code = ''PREVU'' - - JOIN volume_horaire vh ON vh.service_id = s.id - AND vh.histo_destruction IS NULL - AND vh.heures <> 0 - AND vh.type_volume_horaire_id = tvh.id - - JOIN v_volume_horaire_etat vhe ON vhe.volume_horaire_id = vh.id - - JOIN etat_volume_horaire evh ON evh.id = vhe.etat_volume_horaire_id - AND evh.code IN (''valide'', ''contrat-edite'', ''contrat-signe'') - - JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - - WHERE - i.histo_destruction IS NULL - AND NOT (si.peut_avoir_contrat = 0 AND evh.code = ''valide'') - - UNION ALL - - SELECT - i.annee_id annee_id, - i.id intervenant_id, - si.peut_avoir_contrat peut_avoir_contrat, - s.structure_id structure_id, - CASE WHEN evh.code IN (''contrat-edite'',''contrat-signe'') THEN 1 ELSE 0 END edite, - CASE WHEN evh.code IN (''contrat-signe'') THEN 1 ELSE 0 END signe - FROM - intervenant i - - JOIN statut_intervenant si ON si.id = i.statut_id - - JOIN service_referentiel s ON s.intervenant_id = i.id - AND s.histo_destruction IS NULL - - JOIN type_volume_horaire tvh ON tvh.code = ''PREVU'' - - JOIN volume_horaire_ref vh ON vh.service_referentiel_id = s.id - AND vh.histo_destruction IS NULL - AND vh.heures <> 0 - AND vh.type_volume_horaire_id = tvh.id - - JOIN v_volume_horaire_ref_etat vhe ON vhe.volume_horaire_ref_id = vh.id - - JOIN etat_volume_horaire evh ON evh.id = vhe.etat_volume_horaire_id - AND evh.code IN (''valide'', ''contrat-edite'', ''contrat-signe'') - - WHERE - i.histo_destruction IS NULL - AND NOT (si.peut_avoir_contrat = 0 AND evh.code = ''valide'') - ) - SELECT - annee_id, - intervenant_id, - peut_avoir_contrat, - structure_id, - count(*) as nbvh, - sum(edite) as edite, - sum(signe) as signe - FROM - t - GROUP BY - annee_id, - intervenant_id, - peut_avoir_contrat, - structure_id) tv - WHERE - ' || conds || ' +PROCEDURE CALCUL_TAUX( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, r_fi OUT FLOAT, r_fc OUT FLOAT, r_fa OUT FLOAT, arrondi NUMERIC DEFAULT 15 ) IS + nt FLOAT; + bi FLOAT; + bc FLOAT; + ba FLOAT; + reste FLOAT; +BEGIN + bi := eff_fi * fi; + bc := eff_fc * fc; + ba := eff_fa * fa; + nt := bi + bc + ba; - ) v ON ( - t.INTERVENANT_ID = v.INTERVENANT_ID - AND COALESCE(t.STRUCTURE_ID,0) = COALESCE(v.STRUCTURE_ID,0) + IF nt = 0 THEN -- au cas ou, alors on ne prend plus en compte les effectifs!! + bi := fi; + bc := fc; + ba := fa; + nt := bi + bc + ba; + END IF; - ) WHEN MATCHED THEN UPDATE SET + IF nt = 0 THEN -- toujours au cas ou... + bi := 1; + bc := 0; + ba := 0; + nt := bi + bc + ba; + END IF; - ANNEE_ID = v.ANNEE_ID, - PEUT_AVOIR_CONTRAT = v.PEUT_AVOIR_CONTRAT, - NBVH = v.NBVH, - EDITE = v.EDITE, - SIGNE = v.SIGNE, - to_delete = 0 + -- Calcul + r_fi := bi / nt; + r_fc := bc / nt; + r_fa := ba / nt; - WHEN NOT MATCHED THEN INSERT ( + -- Arrondis + r_fi := ROUND( r_fi, arrondi ); + r_fc := ROUND( r_fc, arrondi ); + r_fa := ROUND( r_fa, arrondi ); - ID, - ANNEE_ID, - INTERVENANT_ID, - PEUT_AVOIR_CONTRAT, - STRUCTURE_ID, - NBVH, - EDITE, - SIGNE, - TO_DELETE + -- détermination du reste + reste := 1 - r_fi - r_fc - r_fa; - ) VALUES ( + -- répartition éventuelle du reste + IF reste <> 0 THEN + IF r_fi > 0 THEN r_fi := r_fi + reste; + ELSIF r_fc > 0 THEN r_fc := r_fc + reste; + ELSE r_fa := r_fa + reste; END IF; + END IF; - TBL_CONTRAT_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.INTERVENANT_ID, - v.PEUT_AVOIR_CONTRAT, - v.STRUCTURE_ID, - v.NBVH, - v.EDITE, - v.SIGNE, - 0 +END; - ); - DELETE TBL_CONTRAT WHERE to_delete = 1 AND ' || conds || '; +FUNCTION CALCUL_TAUX_FI( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT IS + ri FLOAT; + rc FLOAT; + ra FLOAT; +BEGIN + CALCUL_TAUX( eff_fi, eff_fc, eff_fa, fi, fc, fa, ri, rc, ra, arrondi ); + RETURN ri; +END; - END;'; +FUNCTION CALCUL_TAUX_FC( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT IS + ri FLOAT; + rc FLOAT; + ra FLOAT; +BEGIN + CALCUL_TAUX( eff_fi, eff_fc, eff_fa, fi, fc, fa, ri, rc, ra, arrondi ); + RETURN rc; +END; - END; +FUNCTION CALCUL_TAUX_FA( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT IS + ri FLOAT; + rc FLOAT; + ra FLOAT; +BEGIN + CALCUL_TAUX( eff_fi, eff_fc, eff_fa, fi, fc, fa, ri, rc, ra, arrondi ); + RETURN ra; +END; +FUNCTION STRUCTURE_UNIV_GET_ID RETURN NUMERIC IS + res NUMERIC; +BEGIN + SELECT id INTO res FROM structure WHERE source_code = 'UNIV'; + RETURN res; +END; +PROCEDURE SYNC_LOG( msg CLOB ) IS +BEGIN + INSERT INTO SYNC_LOG( id, date_sync, message ) VALUES ( sync_log_id_seq.nextval, systimestamp, msg ); +END; - PROCEDURE C_DMEP_LIQUIDATION( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; - BEGIN - conds := params_to_conds( params ); +FUNCTION FORMATTED_RIB (bic VARCHAR2, iban VARCHAR2) RETURN VARCHAR2 IS +BEGIN + if bic is null and iban is null then + return null; + end if; + RETURN regexp_replace(bic, '[[:space:]]+', '') || '-' || regexp_replace(iban, '[[:space:]]+', ''); +END; - EXECUTE IMMEDIATE 'BEGIN +FUNCTION FORMATTED_ADRESSE( + no_voie VARCHAR2, + nom_voie VARCHAR2, + batiment VARCHAR2, + mention_complementaire VARCHAR2, + localite VARCHAR2, + code_postal VARCHAR2, + ville VARCHAR2, + pays_libelle VARCHAR2) + RETURN VARCHAR2 +IS +BEGIN + return + -- concaténation des éléments non null séparés par ', ' + trim(trim(',' FROM REPLACE(', ' || NVL(no_voie,'#') || ', ' || NVL(nom_voie,'#') || ', ' || NVL(batiment,'#') || ', ' || NVL(mention_complementaire,'#'), ', #', ''))) || + -- saut de ligne complet + chr(13) || chr(10) || + -- concaténation des éléments non null séparés par ', ' + trim(trim(',' FROM REPLACE(', ' || NVL(localite,'#') || ', ' || NVL(code_postal,'#') || ', ' || NVL(ville,'#') || ', ' || NVL(pays_libelle,'#'), ', #', ''))); +END; - UPDATE TBL_DMEP_LIQUIDATION SET to_delete = 1 WHERE ' || conds || '; - MERGE INTO - TBL_DMEP_LIQUIDATION t - USING ( - SELECT - tv.* - FROM - (SELECT - annee_id, - type_ressource_id, - structure_id, - SUM(heures) heures - FROM - ( - SELECT - i.annee_id, - cc.type_ressource_id, - COALESCE( ep.structure_id, i.structure_id ) structure_id, - mep.heures - FROM - mise_en_paiement mep - JOIN centre_cout cc ON cc.id = mep.centre_cout_id - JOIN formule_resultat_service frs ON frs.id = mep.formule_res_service_id - JOIN service s ON s.id = frs.service_id - JOIN intervenant i ON i.id = s.intervenant_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - WHERE - mep.histo_destruction IS NULL - - UNION ALL - - SELECT - i.annee_id, - cc.type_ressource_id, - sr.structure_id structure_id, - heures - FROM - mise_en_paiement mep - JOIN centre_cout cc ON cc.id = mep.centre_cout_id - JOIN formule_resultat_service_ref frsr ON frsr.id = mep.formule_res_service_ref_id - JOIN service_referentiel sr ON sr.id = frsr.service_referentiel_id - JOIN intervenant i ON i.id = sr.intervenant_id - - WHERE - mep.histo_destruction IS NULL - - ) t1 - GROUP BY - annee_id, type_ressource_id, structure_id) tv - WHERE - ' || conds || ' +FUNCTION GET_TRIGGER_BODY( TRIGGER_NAME VARCHAR2 ) RETURN VARCHAR2 IS + vlong long; +BEGIN + SELECT trigger_body INTO vlong FROM all_triggers WHERE trigger_name = GET_TRIGGER_BODY.TRIGGER_NAME; - ) v ON ( - t.ANNEE_ID = v.ANNEE_ID - AND t.TYPE_RESSOURCE_ID = v.TYPE_RESSOURCE_ID - AND t.STRUCTURE_ID = v.STRUCTURE_ID + RETURN substr(vlong, 1, 32767); +END; - ) WHEN MATCHED THEN UPDATE SET +END OSE_DIVERS; +/ - HEURES = v.HEURES, - to_delete = 0 +-- OSE_EVENT +CREATE OR REPLACE PACKAGE BODY "OSE_EVENT" AS - WHEN NOT MATCHED THEN INSERT ( + PROCEDURE ON_BEFORE_FORMULE_RES_DELETE( INTERVENANT_ID NUMERIC ) IS + BEGIN - ID, - ANNEE_ID, - TYPE_RESSOURCE_ID, - STRUCTURE_ID, - HEURES, - TO_DELETE + -- recherche des services à payer prêts à être supprimés pour cet intervenant et check + FOR sap IN ( + SELECT + frs.id + FROM + FORMULE_RESULTAT_SERVICE frs + JOIN FORMULE_RESULTAT fr ON fr.id = frs.formule_resultat_id AND fr.intervenant_id = ON_BEFORE_FORMULE_RES_DELETE.intervenant_id + JOIN TYPE_VOLUME_HORAIRE tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code = 'REALISE' + JOIN ETAT_VOLUME_HORAIRE evh ON evh.id = fr.etat_volume_horaire_id AND evh.code = 'valide' + WHERE + frs.TO_DELETE = 1 + ) + LOOP + OSE_PAIEMENT.CHECK_BAD_PAIEMENTS( sap.id ); + END LOOP; - ) VALUES ( + FOR sap IN ( + SELECT + frs.id + FROM + FORMULE_RESULTAT_SERVICE_REF frs + JOIN FORMULE_RESULTAT fr ON fr.id = frs.formule_resultat_id AND fr.intervenant_id = ON_BEFORE_FORMULE_RES_DELETE.intervenant_id + JOIN TYPE_VOLUME_HORAIRE tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code = 'REALISE' + JOIN ETAT_VOLUME_HORAIRE evh ON evh.id = fr.etat_volume_horaire_id AND evh.code = 'valide' + WHERE + frs.TO_DELETE = 1 + ) + LOOP + OSE_PAIEMENT.CHECK_BAD_PAIEMENTS( null, sap.id ); + END LOOP; - TBL_DMEP_LIQUIDATION_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.TYPE_RESSOURCE_ID, - v.STRUCTURE_ID, - v.HEURES, - 0 + DELETE FROM MISE_EN_PAIEMENT WHERE histo_destruction IS NOT NULL AND + formule_res_service_id IN ( + SELECT frs.id + FROM + formule_resultat_service frs + JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id + WHERE + frs.to_delete = 1 + AND fr.intervenant_id = ON_BEFORE_FORMULE_RES_DELETE.INTERVENANT_ID + ); + + DELETE FROM MISE_EN_PAIEMENT WHERE histo_destruction IS NOT NULL AND + formule_res_service_ref_id IN ( + SELECT frsr.id + FROM + formule_resultat_service_ref frsr + JOIN formule_resultat fr ON fr.id = frsr.formule_resultat_id + WHERE + frsr.to_delete = 1 + AND fr.intervenant_id = ON_BEFORE_FORMULE_RES_DELETE.INTERVENANT_ID + ); + END; - ); - DELETE TBL_DMEP_LIQUIDATION WHERE to_delete = 1 AND ' || conds || '; - END;'; + PROCEDURE ON_AFTER_FORMULE_CALC( INTERVENANT_ID NUMERIC ) IS + p unicaen_tbl.t_params; + BEGIN + p := UNICAEN_TBL.make_params('INTERVENANT_ID', ON_AFTER_FORMULE_CALC.intervenant_id); + UNICAEN_TBL.CALCULER( 'agrement', p ); + UNICAEN_TBL.CALCULER( 'paiement', p ); + UNICAEN_TBL.CALCULER( 'workflow', p ); END; +END OSE_EVENT; +/ +-- OSE_FORMULE +CREATE OR REPLACE PACKAGE BODY "OSE_FORMULE" AS - PROCEDURE C_DOSSIER( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; - BEGIN - conds := params_to_conds( params ); - - EXECUTE IMMEDIATE 'BEGIN + v_date_obs DATE; + debug_level NUMERIC DEFAULT 0; + d_all_volume_horaire_ref t_lst_volume_horaire_ref; + d_all_volume_horaire t_lst_volume_horaire; + arrondi NUMERIC DEFAULT 2; - UPDATE TBL_DOSSIER SET to_delete = 1 WHERE ' || conds || '; + INTERVENANT_ID NUMERIC DEFAULT NULL; - MERGE INTO - TBL_DOSSIER t - USING ( + FUNCTION GET_INTERVENANT_ID RETURN NUMERIC IS + BEGIN + RETURN INTERVENANT_ID; + END; - SELECT - tv.* - FROM - (SELECT - i.annee_id, - i.id intervenant_id, - si.peut_saisir_dossier, - d.id dossier_id, - v.id validation_id - FROM - intervenant i - JOIN statut_intervenant si ON si.id = i.statut_id - LEFT JOIN dossier d ON d.intervenant_id = i.id - AND d.histo_destruction IS NULL - - JOIN type_validation tv ON tv.code = ''DONNEES_PERSO_PAR_COMP'' - LEFT JOIN validation v ON v.intervenant_id = i.id - AND v.type_validation_id = tv.id - AND v.histo_destruction IS NULL - WHERE - i.histo_destruction IS NULL) tv - WHERE - ' || conds || ' + FUNCTION GET_DATE_OBS RETURN DATE AS + BEGIN + RETURN COALESCE( v_date_obs, SYSDATE ); + END; - ) v ON ( - t.INTERVENANT_ID = v.INTERVENANT_ID + FUNCTION SET_DATE_OBS( DATE_OBS DATE DEFAULT NULL ) RETURN DATE IS + BEGIN + v_date_obs := DATE_OBS; + RETURN v_date_obs; + END; - ) WHEN MATCHED THEN UPDATE SET + PROCEDURE SET_DEBUG_LEVEL( DEBUG_LEVEL NUMERIC ) IS + BEGIN + ose_formule.debug_level := SET_DEBUG_LEVEL.DEBUG_LEVEL; + END; - ANNEE_ID = v.ANNEE_ID, - PEUT_SAISIR_DOSSIER = v.PEUT_SAISIR_DOSSIER, - DOSSIER_ID = v.DOSSIER_ID, - VALIDATION_ID = v.VALIDATION_ID, - to_delete = 0 + FUNCTION GET_DEBUG_LEVEL RETURN NUMERIC IS + BEGIN + RETURN ose_formule.debug_level; + END; - WHEN NOT MATCHED THEN INSERT ( + FUNCTION GET_TAUX_HORAIRE_HETD( DATE_OBS DATE DEFAULT NULL ) RETURN FLOAT IS + taux_hetd FLOAT; + BEGIN + SELECT valeur INTO taux_hetd + FROM taux_horaire_hetd t + WHERE + DATE_OBS BETWEEN t.histo_creation AND COALESCE(t.histo_destruction,GREATEST(SYSDATE,DATE_OBS)) + AND rownum = 1 + ORDER BY + histo_creation DESC; + RETURN taux_hetd; + END; - ID, - ANNEE_ID, - INTERVENANT_ID, - PEUT_SAISIR_DOSSIER, - DOSSIER_ID, - VALIDATION_ID, - TO_DELETE + PROCEDURE UPDATE_ANNEE_TAUX_HETD IS + BEGIN + UPDATE annee SET taux_hetd = GET_TAUX_HORAIRE_HETD(date_fin); + END; - ) VALUES ( - TBL_DOSSIER_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.INTERVENANT_ID, - v.PEUT_SAISIR_DOSSIER, - v.DOSSIER_ID, - v.VALIDATION_ID, - 0 - ); + PROCEDURE CALCULER_TOUT( ANNEE_ID NUMERIC DEFAULT NULL ) IS + a_id NUMERIC; + BEGIN + a_id := NVL(CALCULER_TOUT.ANNEE_ID, OSE_PARAMETRE.GET_ANNEE); + FOR mp IN ( + SELECT DISTINCT + intervenant_id + FROM + service s + JOIN intervenant i ON i.id = s.intervenant_id + WHERE + s.histo_destruction IS NULL + AND i.annee_id = a_id - DELETE TBL_DOSSIER WHERE to_delete = 1 AND ' || conds || '; + UNION - END;'; + SELECT DISTINCT + intervenant_id + FROM + service_referentiel sr + JOIN intervenant i ON i.id = sr.intervenant_id + WHERE + sr.histo_destruction IS NULL + AND i.annee_id = a_id + ) + LOOP + CALCULER( mp.intervenant_id ); + END LOOP; END; - PROCEDURE C_PAIEMENT( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; + FUNCTION ENREGISTRER_RESULTAT( fr formule_resultat%rowtype ) RETURN NUMERIC IS + id NUMERIC; + ti_code VARCHAR(5); BEGIN - conds := params_to_conds( params ); - EXECUTE IMMEDIATE 'BEGIN + SELECT + ti.code INTO ti_code + FROM + type_intervenant ti + JOIN statut_intervenant si ON si.type_intervenant_id = ti.id + JOIN intervenant i ON i.statut_id = si.id + WHERE + i.id = fr.intervenant_id; - UPDATE TBL_PAIEMENT SET to_delete = 1 WHERE ' || conds || '; - MERGE INTO - TBL_PAIEMENT t - USING ( - SELECT - tv.* - FROM - (SELECT - i.annee_id annee_id, - frs.id formule_res_service_id, - null formule_res_service_ref_id, - i.id intervenant_id, - COALESCE( ep.structure_id, i.structure_id ) structure_id, - mep.id mise_en_paiement_id, - mep.periode_paiement_id periode_paiement_id, - frs.heures_compl_fi + frs.heures_compl_fc + frs.heures_compl_fa + frs.heures_compl_fc_majorees heures_a_payer, - count(*) OVER(PARTITION BY frs.id) heures_a_payer_pond, - NVL(mep.heures,0) heures_demandees, - CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees - FROM - formule_resultat_service frs - JOIN type_volume_horaire tvh ON tvh.code = ''REALISE'' - JOIN etat_volume_horaire evh ON evh.code = ''valide'' - JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id - AND fr.type_volume_horaire_id = tvh.id - AND fr.etat_volume_horaire_id = evh.id - - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN service s ON s.id = frs.service_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id - AND mep.histo_destruction IS NULL - - UNION ALL - - SELECT - i.annee_id annee_id, - null formule_res_service_id, - frs.id formule_res_service_ref_id, - i.id intervenant_id, - s.structure_id structure_id, - mep.id mise_en_paiement_id, - mep.periode_paiement_id periode_paiement_id, - frs.heures_compl_referentiel heures_a_payer, - count(*) OVER(PARTITION BY frs.id) heures_a_payer_pond, - NVL(mep.heures,0) heures_demandees, - CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees - FROM - formule_resultat_service_ref frs - JOIN type_volume_horaire tvh ON tvh.code = ''REALISE'' - JOIN etat_volume_horaire evh ON evh.code = ''valide'' - JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id - AND fr.type_volume_horaire_id = tvh.id - AND fr.etat_volume_horaire_id = evh.id - - JOIN intervenant i ON i.id = fr.intervenant_id - JOIN service_referentiel s ON s.id = frs.service_referentiel_id - LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_ref_id = frs.id - AND mep.histo_destruction IS NULL) tv - WHERE - ' || conds || ' + MERGE INTO formule_resultat tfr USING dual ON ( - ) v ON ( - t.INTERVENANT_ID = v.INTERVENANT_ID - AND COALESCE(t.MISE_EN_PAIEMENT_ID,0) = COALESCE(v.MISE_EN_PAIEMENT_ID,0) - AND COALESCE(t.FORMULE_RES_SERVICE_ID,0) = COALESCE(v.FORMULE_RES_SERVICE_ID,0) - AND COALESCE(t.FORMULE_RES_SERVICE_REF_ID,0) = COALESCE(v.FORMULE_RES_SERVICE_REF_ID,0) + tfr.intervenant_id = fr.intervenant_id + AND tfr.type_volume_horaire_id = fr.type_volume_horaire_id + AND tfr.etat_volume_horaire_id = fr.etat_volume_horaire_id ) WHEN MATCHED THEN UPDATE SET - ANNEE_ID = v.ANNEE_ID, - STRUCTURE_ID = v.STRUCTURE_ID, - PERIODE_PAIEMENT_ID = v.PERIODE_PAIEMENT_ID, - HEURES_A_PAYER = v.HEURES_A_PAYER, - HEURES_A_PAYER_POND = v.HEURES_A_PAYER_POND, - HEURES_DEMANDEES = v.HEURES_DEMANDEES, - HEURES_PAYEES = v.HEURES_PAYEES, - to_delete = 0 + service_du = ROUND( fr.service_du, arrondi ), + service_fi = ROUND( fr.service_fi, arrondi ), + service_fa = ROUND( fr.service_fa, arrondi ), + service_fc = ROUND( fr.service_fc, arrondi ), + service_referentiel = ROUND( fr.service_referentiel, arrondi ), + heures_compl_fi = ROUND( fr.heures_compl_fi, arrondi ), + heures_compl_fa = ROUND( fr.heures_compl_fa, arrondi ), + heures_compl_fc = ROUND( fr.heures_compl_fc, arrondi ), + heures_compl_fc_majorees = ROUND( fr.heures_compl_fc_majorees, arrondi ), + heures_compl_referentiel = ROUND( fr.heures_compl_referentiel, arrondi ), + total = ROUND( fr.total, arrondi ), + solde = ROUND( fr.solde, arrondi ), + sous_service = ROUND( fr.sous_service, arrondi ), + heures_compl = ROUND( fr.heures_compl, arrondi ), + to_delete = 0 WHEN NOT MATCHED THEN INSERT ( ID, - ANNEE_ID, INTERVENANT_ID, - STRUCTURE_ID, - MISE_EN_PAIEMENT_ID, - PERIODE_PAIEMENT_ID, - HEURES_A_PAYER, - HEURES_A_PAYER_POND, - HEURES_DEMANDEES, - HEURES_PAYEES, - FORMULE_RES_SERVICE_ID, - FORMULE_RES_SERVICE_REF_ID, - TO_DELETE + TYPE_VOLUME_HORAIRE_ID, + ETAT_VOLUME_HORAIRE_ID, + SERVICE_DU, + SERVICE_FI, + SERVICE_FA, + SERVICE_FC, + SERVICE_REFERENTIEL, + HEURES_COMPL_FI, + HEURES_COMPL_FA, + HEURES_COMPL_FC, + HEURES_COMPL_FC_majorees, + HEURES_COMPL_REFERENTIEL, + TOTAL, + SOLDE, + SOUS_SERVICE, + HEURES_COMPL, + TO_DELETE, + type_intervenant_code ) VALUES ( - TBL_PAIEMENT_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.INTERVENANT_ID, - v.STRUCTURE_ID, - v.MISE_EN_PAIEMENT_ID, - v.PERIODE_PAIEMENT_ID, - v.HEURES_A_PAYER, - v.HEURES_A_PAYER_POND, - v.HEURES_DEMANDEES, - v.HEURES_PAYEES, - v.FORMULE_RES_SERVICE_ID, - v.FORMULE_RES_SERVICE_REF_ID, - 0 - + FORMULE_RESULTAT_ID_SEQ.NEXTVAL, + fr.intervenant_id, + fr.type_volume_horaire_id, + fr.etat_volume_horaire_id, + ROUND( fr.service_du, arrondi ), + ROUND( fr.service_fi, arrondi ), + ROUND( fr.service_fa, arrondi ), + ROUND( fr.service_fc, arrondi ), + ROUND( fr.service_referentiel, arrondi ), + ROUND( fr.heures_compl_fi, arrondi ), + ROUND( fr.heures_compl_fa, arrondi ), + ROUND( fr.heures_compl_fc, arrondi ), + ROUND( fr.heures_compl_fc_majorees, arrondi ), + ROUND( fr.heures_compl_referentiel, arrondi ), + ROUND( fr.total, arrondi ), + ROUND( fr.solde, arrondi ), + ROUND( fr.sous_service, arrondi ), + ROUND( fr.heures_compl, arrondi ), + 0, + ti_code ); - DELETE TBL_PAIEMENT WHERE to_delete = 1 AND ' || conds || '; - - END;'; - + SELECT id INTO id FROM formule_resultat tfr WHERE + tfr.intervenant_id = fr.intervenant_id + AND tfr.type_volume_horaire_id = fr.type_volume_horaire_id + AND tfr.etat_volume_horaire_id = fr.etat_volume_horaire_id; + RETURN id; END; - - PROCEDURE C_PIECE_JOINTE( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; + FUNCTION ENREGISTRER_RESULTAT_SERVICE( fs formule_resultat_service%rowtype ) RETURN NUMERIC IS + id NUMERIC; BEGIN - conds := params_to_conds( params ); - - EXECUTE IMMEDIATE 'BEGIN - - UPDATE TBL_PIECE_JOINTE SET to_delete = 1 WHERE ' || conds || '; - - MERGE INTO - TBL_PIECE_JOINTE t - USING ( - - SELECT - tv.* - FROM - (WITH pjf AS ( - SELECT - pjf.annee_id, - pjf.type_piece_jointe_id, - pjf.intervenant_id, - COUNT(*) count, - SUM(CASE WHEN validation_id IS NULL THEN 0 ELSE 1 END) validation, - SUM(CASE WHEN fichier_id IS NULL THEN 0 ELSE 1 END) fichier - FROM - tbl_piece_jointe_fournie pjf - GROUP BY - pjf.annee_id, - pjf.type_piece_jointe_id, - pjf.intervenant_id - ) - SELECT - NVL( pjd.annee_id, pjf.annee_id ) annee_id, - NVL( pjd.type_piece_jointe_id, pjf.type_piece_jointe_id ) type_piece_jointe_id, - NVL( pjd.intervenant_id, pjf.intervenant_id ) intervenant_id, - CASE WHEN pjd.intervenant_id IS NULL THEN 0 ELSE 1 END demandee, - CASE WHEN pjf.fichier = pjf.count THEN 1 ELSE 0 END fournie, - CASE WHEN pjf.validation = pjf.count THEN 1 ELSE 0 END validee, - NVL(pjd.heures_pour_seuil,0) heures_pour_seuil - FROM - tbl_piece_jointe_demande pjd - FULL JOIN pjf ON pjf.type_piece_jointe_id = pjd.type_piece_jointe_id AND pjf.intervenant_id = pjd.intervenant_id) tv - WHERE - ' || conds || ' + MERGE INTO formule_resultat_service tfs USING dual ON ( - ) v ON ( - t.TYPE_PIECE_JOINTE_ID = v.TYPE_PIECE_JOINTE_ID - AND t.INTERVENANT_ID = v.INTERVENANT_ID + tfs.formule_resultat_id = fs.formule_resultat_id + AND tfs.service_id = fs.service_id ) WHEN MATCHED THEN UPDATE SET - ANNEE_ID = v.ANNEE_ID, - DEMANDEE = v.DEMANDEE, - FOURNIE = v.FOURNIE, - VALIDEE = v.VALIDEE, - HEURES_POUR_SEUIL = v.HEURES_POUR_SEUIL, - to_delete = 0 + service_fi = ROUND( fs.service_fi, arrondi ), + service_fa = ROUND( fs.service_fa, arrondi ), + service_fc = ROUND( fs.service_fc, arrondi ), + heures_compl_fi = ROUND( fs.heures_compl_fi, arrondi ), + heures_compl_fa = ROUND( fs.heures_compl_fa, arrondi ), + heures_compl_fc = ROUND( fs.heures_compl_fc, arrondi ), + heures_compl_fc_majorees = ROUND( fs.heures_compl_fc_majorees, arrondi ), + total = ROUND( fs.total, arrondi ), + TO_DELETE = 0 WHEN NOT MATCHED THEN INSERT ( ID, - ANNEE_ID, - TYPE_PIECE_JOINTE_ID, - INTERVENANT_ID, - DEMANDEE, - FOURNIE, - VALIDEE, - HEURES_POUR_SEUIL, + FORMULE_RESULTAT_ID, + SERVICE_ID, + SERVICE_FI, + SERVICE_FA, + SERVICE_FC, + HEURES_COMPL_FI, + HEURES_COMPL_FA, + HEURES_COMPL_FC, + HEURES_COMPL_FC_majorees, + TOTAL, TO_DELETE ) VALUES ( - TBL_PIECE_JOINTE_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.TYPE_PIECE_JOINTE_ID, - v.INTERVENANT_ID, - v.DEMANDEE, - v.FOURNIE, - v.VALIDEE, - v.HEURES_POUR_SEUIL, + FORMULE_RESULTAT_SERVIC_ID_SEQ.NEXTVAL, + fs.formule_resultat_id, + fs.service_id, + ROUND( fs.service_fi, arrondi ), + ROUND( fs.service_fa, arrondi ), + ROUND( fs.service_fc, arrondi ), + ROUND( fs.heures_compl_fi, arrondi ), + ROUND( fs.heures_compl_fa, arrondi ), + ROUND( fs.heures_compl_fc, arrondi ), + ROUND( fs.heures_compl_fc_majorees, arrondi ), + ROUND( fs.total, arrondi ), 0 ); - DELETE TBL_PIECE_JOINTE WHERE to_delete = 1 AND ' || conds || '; + SELECT id INTO id FROM formule_resultat_service tfs WHERE + tfs.formule_resultat_id = fs.formule_resultat_id + AND tfs.service_id = fs.service_id; + RETURN id; + END; - END;'; - END; + FUNCTION ENREGISTRER_RESULTAT_VH( fvh formule_resultat_vh%rowtype ) RETURN NUMERIC IS + id NUMERIC; + BEGIN + MERGE INTO formule_resultat_vh tfvh USING dual ON ( + tfvh.formule_resultat_id = fvh.formule_resultat_id + AND tfvh.volume_horaire_id = fvh.volume_horaire_id + ) WHEN MATCHED THEN UPDATE SET - PROCEDURE C_PIECE_JOINTE_DEMANDE( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; - BEGIN - conds := params_to_conds( params ); + service_fi = ROUND( fvh.service_fi, arrondi ), + service_fa = ROUND( fvh.service_fa, arrondi ), + service_fc = ROUND( fvh.service_fc, arrondi ), + heures_compl_fi = ROUND( fvh.heures_compl_fi, arrondi ), + heures_compl_fa = ROUND( fvh.heures_compl_fa, arrondi ), + heures_compl_fc = ROUND( fvh.heures_compl_fc, arrondi ), + heures_compl_fc_majorees = ROUND( fvh.heures_compl_fc_majorees, arrondi ), + total = ROUND( fvh.total, arrondi ), + TO_DELETE = 0 - EXECUTE IMMEDIATE 'BEGIN + WHEN NOT MATCHED THEN INSERT ( - UPDATE TBL_PIECE_JOINTE_DEMANDE SET to_delete = 1 WHERE ' || conds || '; + ID, + FORMULE_RESULTAT_ID, + VOLUME_HORAIRE_ID, + SERVICE_FI, + SERVICE_FA, + SERVICE_FC, + HEURES_COMPL_FI, + HEURES_COMPL_FA, + HEURES_COMPL_FC, + HEURES_COMPL_FC_MAJOREES, + TOTAL, + TO_DELETE - MERGE INTO - TBL_PIECE_JOINTE_DEMANDE t - USING ( + ) VALUES ( - SELECT - tv.* - FROM - (WITH i_h AS ( - SELECT - s.intervenant_id, - sum(vh.heures) heures, - sum(ep.taux_fc) fc - FROM - service s - JOIN type_volume_horaire tvh ON tvh.code = ''PREVU'' - JOIN volume_horaire vh ON vh.service_id = s.id - AND vh.type_volume_horaire_id = tvh.id - AND vh.histo_destruction IS NULL - JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id -- Service sur l''établissement - WHERE - s.histo_destruction IS NULL - AND vh.motif_non_paiement_id IS NULL -- pas de motif de non paiement - GROUP BY - s.intervenant_id - ) - SELECT - i.annee_id annee_id, - i.id intervenant_id, - tpj.id type_piece_jointe_id, - MAX(COALESCE(i_h.heures, 0)) heures_pour_seuil - FROM - intervenant i - - LEFT JOIN dossier d ON d.intervenant_id = i.id - AND d.histo_destruction IS NULL - - JOIN type_piece_jointe_statut tpjs ON tpjs.statut_intervenant_id = i.statut_id - AND tpjs.histo_destruction IS NULL - AND i.annee_id BETWEEN COALESCE(tpjs.annee_debut_id,i.annee_id) AND COALESCE(tpjs.annee_fin_id,i.annee_id) - - JOIN type_piece_jointe tpj ON tpj.id = tpjs.type_piece_jointe_id - AND tpj.histo_destruction IS NULL - - LEFT JOIN i_h ON i_h.intervenant_id = i.id - WHERE - -- Gestion de l''historique - i.histo_destruction IS NULL - - -- Seuil HETD - AND (COALESCE(i_h.heures,0) > COALESCE(tpjs.seuil_hetd,-1)) - - -- En fonction du premier recrutement ou non - AND (tpjs.premier_recrutement = 0 OR COALESCE(i.premier_recrutement,0) = 1) - - -- Le RIB n''est demandé QUE s''il est différent!! - AND CASE - WHEN tpjs.changement_rib = 0 OR d.id IS NULL THEN 1 - ELSE CASE WHEN replace(i.bic, '' '', '''') || ''-'' || replace(i.iban, '' '', '''') = d.rib THEN 0 ELSE 1 END - END = 1 - - -- Filtre FC - AND (tpjs.fc = 0 OR i_h.fc > 0) - GROUP BY - i.annee_id, - i.id, - tpj.id) tv - WHERE - ' || conds || ' + FORMULE_RESULTAT_VH_ID_SEQ.NEXTVAL, + fvh.formule_resultat_id, + fvh.volume_horaire_id, + ROUND( fvh.service_fi, arrondi ), + ROUND( fvh.service_fa, arrondi ), + ROUND( fvh.service_fc, arrondi ), + ROUND( fvh.heures_compl_fi, arrondi ), + ROUND( fvh.heures_compl_fa, arrondi ), + ROUND( fvh.heures_compl_fc, arrondi ), + ROUND( fvh.heures_compl_fc_majorees, arrondi ), + ROUND( fvh.total, arrondi ), + 0 - ) v ON ( - t.TYPE_PIECE_JOINTE_ID = v.TYPE_PIECE_JOINTE_ID - AND t.INTERVENANT_ID = v.INTERVENANT_ID + ); + + SELECT id INTO id FROM formule_resultat_vh tfvh WHERE + tfvh.formule_resultat_id = fvh.formule_resultat_id + AND tfvh.volume_horaire_id = fvh.volume_horaire_id; + RETURN id; + END; + + + FUNCTION ENREGISTRER_RESULTAT_SERV_REF( fr formule_resultat_service_ref%rowtype ) RETURN NUMERIC IS + id NUMERIC; + BEGIN + MERGE INTO formule_resultat_service_ref tfr USING dual ON ( + + tfr.formule_resultat_id = fr.formule_resultat_id + AND tfr.service_referentiel_id = fr.service_referentiel_id ) WHEN MATCHED THEN UPDATE SET - ANNEE_ID = v.ANNEE_ID, - HEURES_POUR_SEUIL = v.HEURES_POUR_SEUIL, - to_delete = 0 + service_referentiel = ROUND( fr.service_referentiel, arrondi ), + heures_compl_referentiel = ROUND( fr.heures_compl_referentiel, arrondi ), + TO_DELETE = 0 WHEN NOT MATCHED THEN INSERT ( ID, - ANNEE_ID, - TYPE_PIECE_JOINTE_ID, - INTERVENANT_ID, - HEURES_POUR_SEUIL, + FORMULE_RESULTAT_ID, + SERVICE_REFERENTIEL_ID, + SERVICE_REFERENTIEL, + HEURES_COMPL_REFERENTIEL, + TOTAL, TO_DELETE ) VALUES ( - TBL_PIECE_JOINTE_DEMAND_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.TYPE_PIECE_JOINTE_ID, - v.INTERVENANT_ID, - v.HEURES_POUR_SEUIL, + FORMULE_RESULTAT_SERVIC_ID_SEQ.NEXTVAL, + fr.formule_resultat_id, + fr.service_referentiel_id, + ROUND( fr.service_referentiel, arrondi ), + ROUND( fr.heures_compl_referentiel, arrondi ), + fr.total, 0 ); - DELETE TBL_PIECE_JOINTE_DEMANDE WHERE to_delete = 1 AND ' || conds || '; - - END;'; + SELECT id INTO id FROM formule_resultat_service_ref tfr WHERE + tfr.formule_resultat_id = fr.formule_resultat_id + AND tfr.service_referentiel_id = fr.service_referentiel_id; + RETURN id; END; - - PROCEDURE C_PIECE_JOINTE_FOURNIE( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; + FUNCTION ENREGISTRER_RESULTAT_VH_REF( fvh formule_resultat_vh_ref%rowtype ) RETURN NUMERIC IS + id NUMERIC; BEGIN - conds := params_to_conds( params ); - - EXECUTE IMMEDIATE 'BEGIN - - UPDATE TBL_PIECE_JOINTE_FOURNIE SET to_delete = 1 WHERE ' || conds || '; - - MERGE INTO - TBL_PIECE_JOINTE_FOURNIE t - USING ( - - SELECT - tv.* - FROM - (SELECT - i.annee_id, - pj.type_piece_jointe_id, - pj.intervenant_id, - pj.id piece_jointe_id, - v.id validation_id, - f.id fichier_id - FROM - piece_jointe pj - JOIN intervenant i ON i.id = pj.intervenant_id - AND i.histo_destruction IS NULL - - JOIN piece_jointe_fichier pjf ON pjf.piece_jointe_id = pj.id - JOIN fichier f ON f.id = pjf.fichier_id - AND f.histo_destruction IS NULL - - LEFT JOIN validation v ON v.id = pj.validation_id - AND v.histo_destruction IS NULL - WHERE - pj.histo_destruction IS NULL) tv - WHERE - ' || conds || ' + MERGE INTO formule_resultat_vh_ref tfvh USING dual ON ( - ) v ON ( - t.TYPE_PIECE_JOINTE_ID = v.TYPE_PIECE_JOINTE_ID - AND t.INTERVENANT_ID = v.INTERVENANT_ID - AND COALESCE(t.VALIDATION_ID,0) = COALESCE(v.VALIDATION_ID,0) - AND COALESCE(t.FICHIER_ID,0) = COALESCE(v.FICHIER_ID,0) + tfvh.formule_resultat_id = fvh.formule_resultat_id + AND tfvh.volume_horaire_ref_id = fvh.volume_horaire_ref_id ) WHEN MATCHED THEN UPDATE SET - ANNEE_ID = v.ANNEE_ID, - PIECE_JOINTE_ID = v.PIECE_JOINTE_ID, - to_delete = 0 + service_referentiel = ROUND( fvh.service_referentiel, arrondi ), + heures_compl_referentiel = ROUND( fvh.heures_compl_referentiel, arrondi ), + total = fvh.total, + TO_DELETE = 0 WHEN NOT MATCHED THEN INSERT ( ID, - ANNEE_ID, - TYPE_PIECE_JOINTE_ID, - INTERVENANT_ID, - VALIDATION_ID, - FICHIER_ID, - PIECE_JOINTE_ID, + FORMULE_RESULTAT_ID, + VOLUME_HORAIRE_REF_ID, + SERVICE_REFERENTIEL, + HEURES_COMPL_REFERENTIEL, + TOTAL, TO_DELETE ) VALUES ( - TBL_PIECE_JOINTE_FOURNI_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.TYPE_PIECE_JOINTE_ID, - v.INTERVENANT_ID, - v.VALIDATION_ID, - v.FICHIER_ID, - v.PIECE_JOINTE_ID, + FORMULE_RESULTAT_VH_ID_SEQ.NEXTVAL, + fvh.formule_resultat_id, + fvh.volume_horaire_ref_id, + ROUND( fvh.service_referentiel, arrondi ), + ROUND( fvh.heures_compl_referentiel, arrondi ), + fvh.total, 0 ); - DELETE TBL_PIECE_JOINTE_FOURNIE WHERE to_delete = 1 AND ' || conds || '; + SELECT id INTO id FROM formule_resultat_vh_ref tfvh WHERE + tfvh.formule_resultat_id = fvh.formule_resultat_id + AND tfvh.volume_horaire_ref_id = fvh.volume_horaire_ref_id; + RETURN id; + END; + + + PROCEDURE POPULATE_INTERVENANT( INTERVENANT_ID NUMERIC, d_intervenant OUT t_intervenant ) IS + BEGIN + SELECT + structure_id, + annee_id, + heures_service_statutaire, + depassement_service_du_sans_hc + INTO + d_intervenant.structure_id, + d_intervenant.annee_id, + d_intervenant.heures_service_statutaire, + d_intervenant.depassement_service_du_sans_hc + FROM + v_formule_intervenant fi + WHERE + fi.id = POPULATE_INTERVENANT.INTERVENANT_ID; + + SELECT + NVL( SUM(heures), 0), + NVL( SUM(heures_decharge), 0) + INTO + d_intervenant.heures_service_modifie, + d_intervenant.heures_decharge + FROM + v_formule_service_modifie fsm + WHERE + fsm.intervenant_id = POPULATE_INTERVENANT.INTERVENANT_ID; + + EXCEPTION WHEN NO_DATA_FOUND THEN + d_intervenant.structure_id := null; + d_intervenant.annee_id := null; + d_intervenant.heures_service_statutaire := 0; + d_intervenant.depassement_service_du_sans_hc := 0; + d_intervenant.heures_service_modifie := 0; + d_intervenant.heures_decharge := 0; + END; + + + PROCEDURE POPULATE_SERVICE_REF( INTERVENANT_ID NUMERIC, d_service_ref OUT t_lst_service_ref ) IS + i PLS_INTEGER; + BEGIN + d_service_ref.delete; + + FOR d IN ( + SELECT + fr.id, + fr.structure_id + FROM + v_formule_service_ref fr + WHERE + fr.intervenant_id = POPULATE_SERVICE_REF.INTERVENANT_ID + ) LOOP + d_service_ref( d.id ).id := d.id; + d_service_ref( d.id ).structure_id := d.structure_id; + END LOOP; + END; - END;'; + PROCEDURE POPULATE_SERVICE( INTERVENANT_ID NUMERIC, d_service OUT t_lst_service ) IS + BEGIN + d_service.delete; + + FOR d IN ( + SELECT + id, + taux_fi, + taux_fa, + taux_fc, + structure_aff_id, + structure_ens_id, + ponderation_service_du, + ponderation_service_compl + FROM + v_formule_service fs + WHERE + fs.intervenant_id = POPULATE_SERVICE.INTERVENANT_ID + ) LOOP + d_service( d.id ).id := d.id; + d_service( d.id ).taux_fi := d.taux_fi; + d_service( d.id ).taux_fa := d.taux_fa; + d_service( d.id ).taux_fc := d.taux_fc; + d_service( d.id ).ponderation_service_du := d.ponderation_service_du; + d_service( d.id ).ponderation_service_compl := d.ponderation_service_compl; + d_service( d.id ).structure_aff_id := d.structure_aff_id; + d_service( d.id ).structure_ens_id := d.structure_ens_id; + END LOOP; + END; + + PROCEDURE POPULATE_VOLUME_HORAIRE_REF( INTERVENANT_ID NUMERIC, d_volume_horaire_ref OUT t_lst_volume_horaire_ref ) IS + BEGIN + d_volume_horaire_ref.delete; + + FOR d IN ( + SELECT + id, + service_referentiel_id, + heures, + fvh.type_volume_horaire_id, + fvh.etat_volume_horaire_id, + fvh.etat_volume_horaire_ordre + FROM + v_formule_volume_horaire_ref fvh + WHERE + fvh.intervenant_id = POPULATE_VOLUME_HORAIRE_REF.INTERVENANT_ID + ) LOOP + d_volume_horaire_ref( d.id ).id := d.id; + d_volume_horaire_ref( d.id ).service_referentiel_id := d.service_referentiel_id; + d_volume_horaire_ref( d.id ).heures := d.heures; + d_volume_horaire_ref( d.id ).type_volume_horaire_id := d.type_volume_horaire_id; + d_volume_horaire_ref( d.id ).etat_volume_horaire_id := d.etat_volume_horaire_id; + d_volume_horaire_ref( d.id ).etat_volume_horaire_ordre := d.etat_volume_horaire_ordre; + END LOOP; + END; + + PROCEDURE POPULATE_VOLUME_HORAIRE( INTERVENANT_ID NUMERIC, d_volume_horaire OUT t_lst_volume_horaire ) IS + BEGIN + d_volume_horaire.delete; + + FOR d IN ( + SELECT + id, + service_id, + heures, + taux_service_du, + taux_service_compl, + fvh.type_volume_horaire_id, + fvh.etat_volume_horaire_id, + fvh.etat_volume_horaire_ordre + FROM + v_formule_volume_horaire fvh + WHERE + fvh.intervenant_id = POPULATE_VOLUME_HORAIRE.INTERVENANT_ID + ) LOOP + d_volume_horaire( d.id ).id := d.id; + d_volume_horaire( d.id ).service_id := d.service_id; + d_volume_horaire( d.id ).heures := d.heures; + d_volume_horaire( d.id ).taux_service_du := d.taux_service_du; + d_volume_horaire( d.id ).taux_service_compl := d.taux_service_compl; + d_volume_horaire( d.id ).type_volume_horaire_id := d.type_volume_horaire_id; + d_volume_horaire( d.id ).etat_volume_horaire_id := d.etat_volume_horaire_id; + d_volume_horaire( d.id ).etat_volume_horaire_ordre := d.etat_volume_horaire_ordre; + END LOOP; END; + PROCEDURE POPULATE_TYPE_ETAT_VH( d_volume_horaire t_lst_volume_horaire, d_volume_horaire_ref t_lst_volume_horaire_ref, d_type_etat_vh OUT t_lst_type_etat_vh ) IS + TYPE t_ordres IS TABLE OF NUMERIC INDEX BY PLS_INTEGER; - PROCEDURE C_SERVICE( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; + ordres_found t_ordres; + ordres_exists t_ordres; + type_volume_horaire_id PLS_INTEGER; + etat_volume_horaire_ordre PLS_INTEGER; + id PLS_INTEGER; BEGIN - conds := params_to_conds( params ); + d_type_etat_vh.delete; - EXECUTE IMMEDIATE 'BEGIN + -- récupération des ID et ordres de volumes horaires + FOR evh IN ( + SELECT id, ordre + FROM etat_volume_horaire evh + ORDER BY ordre + ) LOOP + ordres_exists( evh.ordre ) := evh.id; + END LOOP; - UPDATE TBL_SERVICE SET to_delete = 1 WHERE ' || conds || '; + -- récupération des ordres maximum par type d'intervention + id := d_volume_horaire.FIRST; + LOOP EXIT WHEN id IS NULL; + IF NOT ordres_found.EXISTS(d_volume_horaire(id).type_volume_horaire_id) THEN + ordres_found( d_volume_horaire(id).type_volume_horaire_id ) := d_volume_horaire(id).etat_volume_horaire_ordre; + ELSIF ordres_found( d_volume_horaire(id).type_volume_horaire_id ) < d_volume_horaire(id).etat_volume_horaire_ordre THEN + ordres_found( d_volume_horaire(id).type_volume_horaire_id ) := d_volume_horaire(id).etat_volume_horaire_ordre; + END IF; + id := d_volume_horaire.NEXT(id); + END LOOP; - MERGE INTO - TBL_SERVICE t - USING ( + id := d_volume_horaire_ref.FIRST; + LOOP EXIT WHEN id IS NULL; + IF NOT ordres_found.EXISTS(d_volume_horaire_ref(id).type_volume_horaire_id) THEN + ordres_found( d_volume_horaire_ref(id).type_volume_horaire_id ) := d_volume_horaire_ref(id).etat_volume_horaire_ordre; + ELSIF ordres_found( d_volume_horaire_ref(id).type_volume_horaire_id ) < d_volume_horaire_ref(id).etat_volume_horaire_ordre THEN + ordres_found( d_volume_horaire_ref(id).type_volume_horaire_id ) := d_volume_horaire_ref(id).etat_volume_horaire_ordre; + END IF; + id := d_volume_horaire_ref.NEXT(id); + END LOOP; - SELECT - tv.* - FROM - (WITH t AS ( - SELECT - s.id service_id, - s.intervenant_id intervenant_id, - ep.structure_id structure_id, - ep.id element_pedagogique_id, - ep.periode_id element_pedagogique_periode_id, - etp.id etape_id, - - vh.type_volume_horaire_id type_volume_horaire_id, - vh.heures heures, - tvh.code type_volume_horaire_code, - - CASE WHEN ep.histo_destruction IS NULL THEN 1 ELSE 0 END element_pedagogique_histo, - CASE WHEN etp.histo_destruction IS NULL OR cp.id IS NOT NULL THEN 1 ELSE 0 END etape_histo, - - CASE WHEN ep.periode_id IS NOT NULL THEN - SUM( CASE WHEN vh.periode_id <> ep.periode_id THEN 1 ELSE 0 END ) OVER( PARTITION BY vh.service_id, vh.periode_id, vh.type_volume_horaire_id, vh.type_intervention_id ) - ELSE 0 END has_heures_mauvaise_periode, - - CASE WHEN v.id IS NULL THEN 0 ELSE 1 END valide - FROM - service s - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - LEFT JOIN etape etp ON etp.id = ep.etape_id - LEFT JOIN chemin_pedagogique cp ON cp.etape_id = etp.id - AND cp.element_pedagogique_id = ep.id - AND cp.histo_destruction IS NULL - - JOIN volume_horaire vh ON vh.service_id = s.id - AND vh.histo_destruction IS NULL - - JOIN type_volume_horaire tvh ON tvh.id = vh.type_volume_horaire_id - - LEFT JOIN validation_vol_horaire vvh ON vvh.volume_horaire_id = vh.id - - LEFT JOIN validation v ON v.id = vvh.validation_id - AND v.histo_destruction IS NULL - WHERE - s.histo_destruction IS NULL - ) - SELECT - i.annee_id annee_id, - i.id intervenant_id, - i.structure_id intervenant_structure_id, - NVL( t.structure_id, i.structure_id ) structure_id, - ti.id type_intervenant_id, - ti.code type_intervenant_code, - si.peut_saisir_service peut_saisir_service, - - t.element_pedagogique_id, - t.service_id, - t.element_pedagogique_periode_id, - t.etape_id, - t.type_volume_horaire_id, - t.type_volume_horaire_code, - t.element_pedagogique_histo, - t.etape_histo, - - CASE WHEN SUM(t.has_heures_mauvaise_periode) > 0 THEN 1 ELSE 0 END has_heures_mauvaise_periode, - - CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE count(*) END nbvh, - CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE sum(t.heures) END heures, - sum(valide) valide - FROM - t - JOIN intervenant i ON i.id = t.intervenant_id - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN type_intervenant ti ON ti.id = si.type_intervenant_id - GROUP BY - i.annee_id, - i.id, - i.structure_id, - t.structure_id, - i.structure_id, - ti.id, - ti.code, - si.peut_saisir_service, - t.element_pedagogique_id, - t.service_id, - t.element_pedagogique_periode_id, - t.etape_id, - t.type_volume_horaire_id, - t.type_volume_horaire_code, - t.element_pedagogique_histo, - t.etape_histo) tv - WHERE - ' || conds || ' + -- peuplement des t_lst_type_etat_vh + type_volume_horaire_id := ordres_found.FIRST; + LOOP EXIT WHEN type_volume_horaire_id IS NULL; + etat_volume_horaire_ordre := ordres_exists.FIRST; + LOOP EXIT WHEN etat_volume_horaire_ordre IS NULL; + IF etat_volume_horaire_ordre <= ordres_found(type_volume_horaire_id) THEN + d_type_etat_vh( type_volume_horaire_id + 100000 * etat_volume_horaire_ordre ).type_volume_horaire_id := type_volume_horaire_id; + d_type_etat_vh( type_volume_horaire_id + 100000 * etat_volume_horaire_ordre ).etat_volume_horaire_id := ordres_exists( etat_volume_horaire_ordre ); + END IF; + etat_volume_horaire_ordre := ordres_exists.NEXT(etat_volume_horaire_ordre); + END LOOP; - ) v ON ( - COALESCE(t.TYPE_VOLUME_HORAIRE_ID,0) = COALESCE(v.TYPE_VOLUME_HORAIRE_ID,0) - AND t.SERVICE_ID = v.SERVICE_ID + type_volume_horaire_id := ordres_found.NEXT(type_volume_horaire_id); + END LOOP; - ) WHEN MATCHED THEN UPDATE SET + END; - ANNEE_ID = v.ANNEE_ID, - INTERVENANT_ID = v.INTERVENANT_ID, - PEUT_SAISIR_SERVICE = v.PEUT_SAISIR_SERVICE, - STRUCTURE_ID = v.STRUCTURE_ID, - NBVH = v.NBVH, - VALIDE = v.VALIDE, - ELEMENT_PEDAGOGIQUE_ID = v.ELEMENT_PEDAGOGIQUE_ID, - ELEMENT_PEDAGOGIQUE_PERIODE_ID = v.ELEMENT_PEDAGOGIQUE_PERIODE_ID, - ETAPE_ID = v.ETAPE_ID, - ELEMENT_PEDAGOGIQUE_HISTO = v.ELEMENT_PEDAGOGIQUE_HISTO, - ETAPE_HISTO = v.ETAPE_HISTO, - HAS_HEURES_MAUVAISE_PERIODE = v.HAS_HEURES_MAUVAISE_PERIODE, - INTERVENANT_STRUCTURE_ID = v.INTERVENANT_STRUCTURE_ID, - TYPE_INTERVENANT_ID = v.TYPE_INTERVENANT_ID, - TYPE_INTERVENANT_CODE = v.TYPE_INTERVENANT_CODE, - TYPE_VOLUME_HORAIRE_CODE = v.TYPE_VOLUME_HORAIRE_CODE, - HEURES = v.HEURES, - to_delete = 0 - WHEN NOT MATCHED THEN INSERT ( + PROCEDURE POPULATE( INTERVENANT_ID NUMERIC ) IS + BEGIN + OSE_FORMULE.INTERVENANT_ID := POPULATE.INTERVENANT_ID; - ID, - ANNEE_ID, - INTERVENANT_ID, - PEUT_SAISIR_SERVICE, - TYPE_VOLUME_HORAIRE_ID, - STRUCTURE_ID, - NBVH, - VALIDE, - ELEMENT_PEDAGOGIQUE_ID, - ELEMENT_PEDAGOGIQUE_PERIODE_ID, - ETAPE_ID, - ELEMENT_PEDAGOGIQUE_HISTO, - ETAPE_HISTO, - HAS_HEURES_MAUVAISE_PERIODE, - SERVICE_ID, - INTERVENANT_STRUCTURE_ID, - TYPE_INTERVENANT_ID, - TYPE_INTERVENANT_CODE, - TYPE_VOLUME_HORAIRE_CODE, - HEURES, - TO_DELETE + POPULATE_INTERVENANT ( INTERVENANT_ID, d_intervenant ); + IF d_intervenant.heures_service_statutaire IS NOT NULL THEN -- sinon rien n'est à faire!! + POPULATE_SERVICE_REF ( INTERVENANT_ID, d_service_ref ); + POPULATE_SERVICE ( INTERVENANT_ID, d_service ); + POPULATE_VOLUME_HORAIRE_REF ( INTERVENANT_ID, d_all_volume_horaire_ref ); + POPULATE_VOLUME_HORAIRE ( INTERVENANT_ID, d_all_volume_horaire ); + POPULATE_TYPE_ETAT_VH ( d_all_volume_horaire, d_all_volume_horaire_ref, d_type_etat_vh ); + END IF; + END; - ) VALUES ( - TBL_SERVICE_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.INTERVENANT_ID, - v.PEUT_SAISIR_SERVICE, - v.TYPE_VOLUME_HORAIRE_ID, - v.STRUCTURE_ID, - v.NBVH, - v.VALIDE, - v.ELEMENT_PEDAGOGIQUE_ID, - v.ELEMENT_PEDAGOGIQUE_PERIODE_ID, - v.ETAPE_ID, - v.ELEMENT_PEDAGOGIQUE_HISTO, - v.ETAPE_HISTO, - v.HAS_HEURES_MAUVAISE_PERIODE, - v.SERVICE_ID, - v.INTERVENANT_STRUCTURE_ID, - v.TYPE_INTERVENANT_ID, - v.TYPE_INTERVENANT_CODE, - v.TYPE_VOLUME_HORAIRE_CODE, - v.HEURES, - 0 + PROCEDURE POPULATE_FILTER( TYPE_VOLUME_HORAIRE_ID NUMERIC, ETAT_VOLUME_HORAIRE_ID NUMERIC ) IS + EVH_ORDRE NUMERIC; + id PLS_INTEGER; + BEGIN + d_volume_horaire.delete; + d_volume_horaire_ref.delete; - ); + SELECT ordre INTO EVH_ORDRE FROM etat_volume_horaire WHERE ID = ETAT_VOLUME_HORAIRE_ID; - DELETE TBL_SERVICE WHERE to_delete = 1 AND ' || conds || '; + id := d_all_volume_horaire.FIRST; + LOOP EXIT WHEN id IS NULL; + IF + d_all_volume_horaire(id).type_volume_horaire_id = TYPE_VOLUME_HORAIRE_ID + AND d_all_volume_horaire(id).etat_volume_horaire_ordre >= EVH_ORDRE + THEN + d_volume_horaire(id) := d_all_volume_horaire(id); + END IF; + id := d_all_volume_horaire.NEXT(id); + END LOOP; + + id := d_all_volume_horaire_ref.FIRST; + LOOP EXIT WHEN id IS NULL; + IF + d_all_volume_horaire_ref(id).type_volume_horaire_id = TYPE_VOLUME_HORAIRE_ID + AND d_all_volume_horaire_ref(id).etat_volume_horaire_ordre >= EVH_ORDRE + THEN + d_volume_horaire_ref(id) := d_all_volume_horaire_ref(id); + END IF; + id := d_all_volume_horaire_ref.NEXT(id); + END LOOP; + END; - END;'; + PROCEDURE INIT_RESULTAT ( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, ETAT_VOLUME_HORAIRE_ID NUMERIC ) IS + BEGIN + d_resultat.intervenant_id := INTERVENANT_ID; + d_resultat.type_volume_horaire_id := TYPE_VOLUME_HORAIRE_ID; + d_resultat.etat_volume_horaire_id := ETAT_VOLUME_HORAIRE_ID; + d_resultat.service_du := 0; + d_resultat.solde := 0; + d_resultat.sous_service := 0; + d_resultat.heures_compl := 0; + d_resultat.volume_horaire.delete; + d_resultat.volume_horaire_ref.delete; END; - - PROCEDURE C_SERVICE_REFERENTIEL( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; + PROCEDURE CALC_RESULTAT IS + function_name VARCHAR2(30); + package_name VARCHAR2(30); BEGIN - conds := params_to_conds( params ); + package_name := OSE_PARAMETRE.GET_FORMULE_PACKAGE_NAME; + function_name := OSE_PARAMETRE.GET_FORMULE_FUNCTION_NAME; - EXECUTE IMMEDIATE 'BEGIN + EXECUTE IMMEDIATE + 'BEGIN ' || package_name || '.' || function_name || '( :1, :2, :3 ); END;' + USING + d_resultat.intervenant_id, d_resultat.type_volume_horaire_id, d_resultat.etat_volume_horaire_id; - UPDATE TBL_SERVICE_REFERENTIEL SET to_delete = 1 WHERE ' || conds || '; + END; - MERGE INTO - TBL_SERVICE_REFERENTIEL t - USING ( - SELECT - tv.* - FROM - (WITH t AS ( - - SELECT - i.annee_id, - i.id intervenant_id, - si.peut_saisir_referentiel peut_saisir_service, - vh.type_volume_horaire_id, - s.structure_id, - CASE WHEN v.id IS NULL THEN 0 ELSE 1 END valide - FROM - intervenant i - - JOIN statut_intervenant si ON si.id = i.statut_id - - LEFT JOIN service_referentiel s ON s.intervenant_id = i.id - AND s.histo_destruction IS NULL - - LEFT JOIN volume_horaire_ref vh ON vh.service_referentiel_id = s.id - AND vh.histo_destruction IS NULL - - LEFT JOIN validation_vol_horaire_ref vvh ON vvh.volume_horaire_ref_id = vh.id - - LEFT JOIN validation v ON v.id = vvh.validation_id - AND v.histo_destruction IS NULL - WHERE - i.histo_destruction IS NULL - - ) - SELECT - annee_id, - intervenant_id, - peut_saisir_service, - type_volume_horaire_id, - structure_id, - CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE count(*) END nbvh, - sum(valide) valide - FROM - t - WHERE - NOT (structure_id IS NOT NULL AND type_volume_horaire_id IS NULL) - GROUP BY - annee_id, - intervenant_id, - peut_saisir_service, - type_volume_horaire_id, - structure_id) tv - WHERE - ' || conds || ' + PROCEDURE SAVE_RESULTAT IS + res t_resultat_hetd; + res_ref t_resultat_hetd_ref; + res_service t_lst_resultat_hetd; + res_service_ref t_lst_resultat_hetd_ref; + id PLS_INTEGER; + sid PLS_INTEGER; + fr formule_resultat%rowtype; + frs formule_resultat_service%rowtype; + frsr formule_resultat_service_ref%rowtype; + frvh formule_resultat_vh%rowtype; + frvhr formule_resultat_vh_ref%rowtype; + dev_null PLS_INTEGER; + BEGIN + -- Calcul des données pour les services et le résultat global + fr.service_fi := 0; + fr.service_fa := 0; + fr.service_fc := 0; + fr.service_referentiel := 0; + fr.heures_compl_fi := 0; + fr.heures_compl_fa := 0; + fr.heures_compl_fc := 0; + fr.heures_compl_fc_majorees := 0; + fr.heures_compl_referentiel := 0; - ) v ON ( - t.INTERVENANT_ID = v.INTERVENANT_ID - AND COALESCE(t.TYPE_VOLUME_HORAIRE_ID,0) = COALESCE(v.TYPE_VOLUME_HORAIRE_ID,0) - AND COALESCE(t.STRUCTURE_ID,0) = COALESCE(v.STRUCTURE_ID,0) + id := d_resultat.volume_horaire.FIRST; + LOOP EXIT WHEN id IS NULL; + sid := d_volume_horaire(id).service_id; + IF NOT res_service.exists(sid) THEN res_service(sid).service_fi := 0; END IF; - ) WHEN MATCHED THEN UPDATE SET + res_service(sid).service_fi := res_service(sid).service_fi + d_resultat.volume_horaire(id).service_fi; + res_service(sid).service_fa := res_service(sid).service_fa + d_resultat.volume_horaire(id).service_fa; + res_service(sid).service_fc := res_service(sid).service_fc + d_resultat.volume_horaire(id).service_fc; + res_service(sid).heures_compl_fi := res_service(sid).heures_compl_fi + d_resultat.volume_horaire(id).heures_compl_fi; + res_service(sid).heures_compl_fa := res_service(sid).heures_compl_fa + d_resultat.volume_horaire(id).heures_compl_fa; + res_service(sid).heures_compl_fc := res_service(sid).heures_compl_fc + d_resultat.volume_horaire(id).heures_compl_fc; + res_service(sid).heures_compl_fc_majorees := res_service(sid).heures_compl_fc_majorees + d_resultat.volume_horaire(id).heures_compl_fc_majorees; - ANNEE_ID = v.ANNEE_ID, - PEUT_SAISIR_SERVICE = v.PEUT_SAISIR_SERVICE, - NBVH = v.NBVH, - VALIDE = v.VALIDE, - to_delete = 0 + fr.service_fi := fr.service_fi + d_resultat.volume_horaire(id).service_fi; + fr.service_fa := fr.service_fa + d_resultat.volume_horaire(id).service_fa; + fr.service_fc := fr.service_fc + d_resultat.volume_horaire(id).service_fc; + fr.heures_compl_fi := fr.heures_compl_fi + d_resultat.volume_horaire(id).heures_compl_fi; + fr.heures_compl_fa := fr.heures_compl_fa + d_resultat.volume_horaire(id).heures_compl_fa; + fr.heures_compl_fc := fr.heures_compl_fc + d_resultat.volume_horaire(id).heures_compl_fc; + fr.heures_compl_fc_majorees := fr.heures_compl_fc_majorees + d_resultat.volume_horaire(id).heures_compl_fc_majorees; + id := d_resultat.volume_horaire.NEXT(id); + END LOOP; - WHEN NOT MATCHED THEN INSERT ( + id := d_resultat.volume_horaire_ref.FIRST; + LOOP EXIT WHEN id IS NULL; + sid := d_volume_horaire_ref(id).service_referentiel_id; + IF NOT res_service_ref.exists(sid) THEN res_service_ref(sid).service_referentiel := 0; END IF; - ID, - ANNEE_ID, - INTERVENANT_ID, - PEUT_SAISIR_SERVICE, - TYPE_VOLUME_HORAIRE_ID, - STRUCTURE_ID, - NBVH, - VALIDE, - TO_DELETE + res_service_ref(sid).service_referentiel := res_service_ref(sid).service_referentiel + d_resultat.volume_horaire_ref(id).service_referentiel; + res_service_ref(sid).heures_compl_referentiel := res_service_ref(sid).heures_compl_referentiel + d_resultat.volume_horaire_ref(id).heures_compl_referentiel; - ) VALUES ( + fr.service_referentiel := fr.service_referentiel + d_resultat.volume_horaire_ref(id).service_referentiel; + fr.heures_compl_referentiel := fr.heures_compl_referentiel + d_resultat.volume_horaire_ref(id).heures_compl_referentiel; + id := d_resultat.volume_horaire_ref.NEXT(id); + END LOOP; - TBL_SERVICE_REFERENTIEL_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.INTERVENANT_ID, - v.PEUT_SAISIR_SERVICE, - v.TYPE_VOLUME_HORAIRE_ID, - v.STRUCTURE_ID, - v.NBVH, - v.VALIDE, - 0 + -- Sauvegarde du résultat global + fr.id := NULL; + fr.intervenant_id := d_resultat.intervenant_id; + fr.type_volume_horaire_id := d_resultat.type_volume_horaire_id; + fr.etat_volume_horaire_id := d_resultat.etat_volume_horaire_id; + fr.service_du := d_resultat.service_du; + fr.total := fr.service_fi + + fr.service_fa + + fr.service_fc + + fr.service_referentiel + + fr.heures_compl_fi + + fr.heures_compl_fa + + fr.heures_compl_fc + + fr.heures_compl_fc_majorees + + fr.heures_compl_referentiel; + fr.solde := d_resultat.solde; + fr.sous_service := d_resultat.sous_service; + fr.heures_compl := d_resultat.heures_compl; + fr.id := OSE_FORMULE.ENREGISTRER_RESULTAT( fr ); - ); + -- sauvegarde des services + id := res_service.FIRST; + LOOP EXIT WHEN id IS NULL; + frs.id := NULL; + frs.formule_resultat_id := fr.id; + frs.service_id := id; + frs.service_fi := res_service(id).service_fi; + frs.service_fa := res_service(id).service_fa; + frs.service_fc := res_service(id).service_fc; + frs.heures_compl_fi := res_service(id).heures_compl_fi; + frs.heures_compl_fa := res_service(id).heures_compl_fa; + frs.heures_compl_fc := res_service(id).heures_compl_fc; + frs.heures_compl_fc_majorees := res_service(id).heures_compl_fc_majorees; + frs.total := frs.service_fi + + frs.service_fa + + frs.service_fc + + frs.heures_compl_fi + + frs.heures_compl_fa + + frs.heures_compl_fc + + frs.heures_compl_fc_majorees; + dev_null := OSE_FORMULE.ENREGISTRER_RESULTAT_SERVICE( frs ); + id := res_service.NEXT(id); + END LOOP; - DELETE TBL_SERVICE_REFERENTIEL WHERE to_delete = 1 AND ' || conds || '; + -- sauvegarde des services référentiels + id := res_service_ref.FIRST; + LOOP EXIT WHEN id IS NULL; + frsr.id := NULL; + frsr.formule_resultat_id := fr.id; + frsr.service_referentiel_id := id; + frsr.service_referentiel := res_service_ref(id).service_referentiel; + frsr.heures_compl_referentiel := res_service_ref(id).heures_compl_referentiel; + frsr.total := res_service_ref(id).service_referentiel + + res_service_ref(id).heures_compl_referentiel; + dev_null := OSE_FORMULE.ENREGISTRER_RESULTAT_SERV_REF( frsr ); + id := res_service_ref.NEXT(id); + END LOOP; - END;'; + -- sauvegarde des volumes horaires + id := d_resultat.volume_horaire.FIRST; + LOOP EXIT WHEN id IS NULL; + frvh.id := NULL; + frvh.formule_resultat_id := fr.id; + frvh.volume_horaire_id := id; + frvh.service_fi := d_resultat.volume_horaire(id).service_fi; + frvh.service_fa := d_resultat.volume_horaire(id).service_fa; + frvh.service_fc := d_resultat.volume_horaire(id).service_fc; + frvh.heures_compl_fi := d_resultat.volume_horaire(id).heures_compl_fi; + frvh.heures_compl_fa := d_resultat.volume_horaire(id).heures_compl_fa; + frvh.heures_compl_fc := d_resultat.volume_horaire(id).heures_compl_fc; + frvh.heures_compl_fc_majorees := d_resultat.volume_horaire(id).heures_compl_fc_majorees; + frvh.total := frvh.service_fi + + frvh.service_fa + + frvh.service_fc + + frvh.heures_compl_fi + + frvh.heures_compl_fa + + frvh.heures_compl_fc + + frvh.heures_compl_fc_majorees; + dev_null := OSE_FORMULE.ENREGISTRER_RESULTAT_VH( frvh ); + id := d_resultat.volume_horaire.NEXT(id); + END LOOP; + + -- sauvegarde des volumes horaires référentiels + id := d_resultat.volume_horaire_ref.FIRST; + LOOP EXIT WHEN id IS NULL; + frvhr.id := NULL; + frvhr.formule_resultat_id := fr.id; + frvhr.volume_horaire_ref_id := id; + frvhr.service_referentiel := d_resultat.volume_horaire_ref(id).service_referentiel; + frvhr.heures_compl_referentiel := d_resultat.volume_horaire_ref(id).heures_compl_referentiel; + frvhr.total := frvhr.service_referentiel + + frvhr.heures_compl_referentiel; + dev_null := OSE_FORMULE.ENREGISTRER_RESULTAT_VH_REF( frvhr ); + id := d_resultat.volume_horaire_ref.NEXT(id); + END LOOP; + END; + PROCEDURE DEBUG_INTERVENANT IS + BEGIN + ose_test.echo('d_intervenant'); + ose_test.echo(' .structure_id = ' || d_intervenant.structure_id || ' (' || ose_test.get_structure_by_id(d_intervenant.structure_id).libelle_court || ')' ); + ose_test.echo(' .heures_service_statutaire = ' || d_intervenant.heures_service_statutaire ); + ose_test.echo(' .heures_service_modifie = ' || d_intervenant.heures_service_modifie ); + ose_test.echo(' .depassement_service_du_sans_hc = ' || d_intervenant.depassement_service_du_sans_hc ); + ose_test.echo(''); END; - - - PROCEDURE C_SERVICE_SAISIE( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; + PROCEDURE DEBUG_SERVICE( SERVICE_ID PLS_INTEGER ) IS BEGIN - conds := params_to_conds( params ); + ose_test.echo('d_service(' || SERVICE_ID || ')' ); + ose_test.echo(' .taux_fi = ' || d_service(SERVICE_ID).taux_fi ); + ose_test.echo(' .taux_fa = ' || d_service(SERVICE_ID).taux_fa ); + ose_test.echo(' .taux_fc = ' || d_service(SERVICE_ID).taux_fc ); + ose_test.echo(' .ponderation_service_du = ' || d_service(SERVICE_ID).ponderation_service_du ); + ose_test.echo(' .ponderation_service_compl = ' || d_service(SERVICE_ID).ponderation_service_compl ); + ose_test.echo(' .structure_aff_id = ' || d_service(SERVICE_ID).structure_aff_id || ' (' || ose_test.get_structure_by_id(d_service(SERVICE_ID).structure_aff_id).libelle_court || ')' ); + ose_test.echo(' .structure_ens_id = ' || d_service(SERVICE_ID).structure_ens_id || ' (' || CASE WHEN d_service(SERVICE_ID).structure_ens_id IS NOT NULL THEN ose_test.get_structure_by_id(d_service(SERVICE_ID).structure_ens_id).libelle_court ELSE 'null' END || ')' ); + ose_test.echo(''); + END; - EXECUTE IMMEDIATE 'BEGIN + PROCEDURE DEBUG_SERVICE_REF( SERVICE_REF_ID PLS_INTEGER ) IS + BEGIN + ose_test.echo('d_service_ref(' || SERVICE_REF_ID || ')' ); + ose_test.echo(' .structure_id = ' || d_service_ref(SERVICE_REF_ID).structure_id || ' (' || ose_test.get_structure_by_id(d_service_ref(SERVICE_REF_ID).structure_id).libelle_court || ')' ); + ose_test.echo(''); + END; - UPDATE TBL_SERVICE_SAISIE SET to_delete = 1 WHERE ' || conds || '; + PROCEDURE DEBUG_VOLUME_HORAIRE( VH_ID PLS_INTEGER ) IS + BEGIN + ose_test.echo('d_volume_horaire(' || VH_ID || ')' ); + ose_test.echo(' .service_id = ' || d_volume_horaire(VH_ID).service_id ); + ose_test.echo(' .type_volume_horaire_id = ' || d_volume_horaire(VH_ID).type_volume_horaire_id ); + ose_test.echo(' .etat_volume_horaire_id = ' || d_volume_horaire(VH_ID).etat_volume_horaire_id ); + ose_test.echo(' .etat_volume_horaire_ordre = ' || d_volume_horaire(VH_ID).etat_volume_horaire_ordre ); + ose_test.echo(' .heures = ' || d_volume_horaire(VH_ID).heures ); + ose_test.echo(' .taux_service_du = ' || d_volume_horaire(VH_ID).taux_service_du ); + ose_test.echo(' .taux_service_compl = ' || d_volume_horaire(VH_ID).taux_service_compl ); + ose_test.echo(''); + END; - MERGE INTO - TBL_SERVICE_SAISIE t - USING ( + PROCEDURE DEBUG_VOLUME_HORAIRE_REF( VH_REF_ID PLS_INTEGER ) IS + BEGIN + ose_test.echo('d_volume_horaire_ref(' || VH_REF_ID || ')' ); + ose_test.echo(' .service_referentiel_id = ' || d_volume_horaire_ref(VH_REF_ID).service_referentiel_id ); + ose_test.echo(' .type_volume_horaire_id = ' || d_volume_horaire_ref(VH_REF_ID).type_volume_horaire_id ); + ose_test.echo(' .etat_volume_horaire_id = ' || d_volume_horaire_ref(VH_REF_ID).etat_volume_horaire_id ); + ose_test.echo(' .etat_volume_horaire_ordre = ' || d_volume_horaire_ref(VH_REF_ID).etat_volume_horaire_ordre ); + ose_test.echo(' .heures = ' || d_volume_horaire_ref(VH_REF_ID).heures ); + ose_test.echo(''); + END; - SELECT - tv.* - FROM - (SELECT - i.annee_id, - i.id intervenant_id, - si.peut_saisir_service, - si.peut_saisir_referentiel, - SUM( CASE WHEN tvhs.code = ''PREVU'' THEN NVL(vh .heures,0) ELSE 0 END ) heures_service_prev, - SUM( CASE WHEN tvhs.code = ''PREVU'' THEN NVL(vhr.heures,0) ELSE 0 END ) heures_referentiel_prev, - SUM( CASE WHEN tvhs.code = ''REALISE'' THEN NVL(vh .heures,0) ELSE 0 END ) heures_service_real, - SUM( CASE WHEN tvhs.code = ''REALISE'' THEN NVL(vhr.heures,0) ELSE 0 END ) heures_referentiel_real - FROM - intervenant i - JOIN statut_intervenant si ON si.id = i.statut_id - LEFT JOIN service s ON s.intervenant_id = i.id AND s.histo_destruction IS NULL - LEFT JOIN volume_horaire vh ON vh.service_id = s.id AND vh.histo_destruction IS NULL - LEFT JOIN type_volume_horaire tvhs ON tvhs.id = vh.type_volume_horaire_id - - LEFT JOIN service_referentiel sr ON sr.intervenant_id = i.id AND sr.histo_destruction IS NULL - LEFT JOIN volume_horaire_ref vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL - LEFT JOIN type_volume_horaire tvhrs ON tvhrs.id = vhr.type_volume_horaire_id - WHERE - i.histo_destruction IS NULL - GROUP BY - i.annee_id, - i.id, - si.peut_saisir_service, - si.peut_saisir_referentiel) tv - WHERE - ' || conds || ' + PROCEDURE DEBUG_RESULTAT IS + BEGIN + ose_test.echo('d_resultat' ); + ose_test.echo(' .service_du = ' || d_resultat.service_du ); + ose_test.echo(' .solde = ' || d_resultat.solde ); + ose_test.echo(' .sous_service = ' || d_resultat.sous_service ); + ose_test.echo(' .heures_compl = ' || d_resultat.heures_compl ); + ose_test.echo(''); + END; - ) v ON ( - t.INTERVENANT_ID = v.INTERVENANT_ID + PROCEDURE DEBUG_RESULTAT_VH( VH_ID PLS_INTEGER ) IS + BEGIN + ose_test.echo('d_resultat.volume_horaire(' || VH_ID || ')' ); + ose_test.echo(' .service_fi = ' || d_resultat.volume_horaire(VH_ID).service_fi ); + ose_test.echo(' .service_fa = ' || d_resultat.volume_horaire(VH_ID).service_fa ); + ose_test.echo(' .service_fc = ' || d_resultat.volume_horaire(VH_ID).service_fc ); + ose_test.echo(' .heures_compl_fi = ' || d_resultat.volume_horaire(VH_ID).heures_compl_fi ); + ose_test.echo(' .heures_compl_fa = ' || d_resultat.volume_horaire(VH_ID).heures_compl_fa ); + ose_test.echo(' .heures_compl_fc = ' || d_resultat.volume_horaire(VH_ID).heures_compl_fc ); + ose_test.echo(' .heures_compl_fc_majorees = ' || d_resultat.volume_horaire(VH_ID).heures_compl_fc_majorees ); + ose_test.echo(''); + END; - ) WHEN MATCHED THEN UPDATE SET + PROCEDURE DEBUG_RESULTAT_VH_REF( VH_REF_ID PLS_INTEGER ) IS + BEGIN + ose_test.echo('d_resultat.volume_horaire_ref(' || VH_REF_ID || ')' ); + ose_test.echo(' .service_referentiel = ' || d_resultat.volume_horaire_ref(VH_REF_ID).service_referentiel ); + ose_test.echo(' .heures_compl_referentiel = ' || d_resultat.volume_horaire_ref(VH_REF_ID).heures_compl_referentiel ); + ose_test.echo(''); + END; - ANNEE_ID = v.ANNEE_ID, - PEUT_SAISIR_SERVICE = v.PEUT_SAISIR_SERVICE, - PEUT_SAISIR_REFERENTIEL = v.PEUT_SAISIR_REFERENTIEL, - HEURES_SERVICE_PREV = v.HEURES_SERVICE_PREV, - HEURES_REFERENTIEL_PREV = v.HEURES_REFERENTIEL_PREV, - HEURES_SERVICE_REAL = v.HEURES_SERVICE_REAL, - HEURES_REFERENTIEL_REAL = v.HEURES_REFERENTIEL_REAL, - to_delete = 0 + PROCEDURE DEBUG_ALL( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, ETAT_VOLUME_HORAIRE_ID NUMERIC ) IS + id PLS_INTEGER; + i intervenant%rowtype; + a annee%rowtype; + tvh type_volume_horaire%rowtype; + evh etat_volume_horaire%rowtype; + BEGIN + IF GET_DEBUG_LEVEL >= 1 THEN + SELECT * INTO i FROM intervenant WHERE id = INTERVENANT_ID; + SELECT * INTO a FROM annee WHERE id = i.annee_id; + SELECT * INTO tvh FROM type_volume_horaire WHERE id = TYPE_VOLUME_HORAIRE_ID; + SELECT * INTO evh FROM etat_volume_horaire WHERE id = ETAT_VOLUME_HORAIRE_ID; - WHEN NOT MATCHED THEN INSERT ( + ose_test.echo(''); + ose_test.echo('---------------------------------------------------------------------'); + ose_test.echo('Intervenant: ' || INTERVENANT_ID || ' : ' || i.prenom || ' ' || i.nom_usuel || ' (n° harp. ' || i.source_code || ')' ); + ose_test.echo( + 'Année: ' || a.libelle + || ', type ' || tvh.libelle + || ', état ' || evh.libelle + ); + ose_test.echo(''); + END IF; + IF GET_DEBUG_LEVEL >= 2 THEN + DEBUG_INTERVENANT; + END IF; - ID, - ANNEE_ID, - INTERVENANT_ID, - PEUT_SAISIR_SERVICE, - PEUT_SAISIR_REFERENTIEL, - HEURES_SERVICE_PREV, - HEURES_REFERENTIEL_PREV, - HEURES_SERVICE_REAL, - HEURES_REFERENTIEL_REAL, - TO_DELETE + IF GET_DEBUG_LEVEL >= 5 THEN + id := d_service.FIRST; + LOOP EXIT WHEN id IS NULL; + DEBUG_SERVICE( id ); + id := d_service.NEXT(id); + END LOOP; - ) VALUES ( + id := d_service_ref.FIRST; + LOOP EXIT WHEN id IS NULL; + DEBUG_SERVICE_REF( id ); + id := d_service_ref.NEXT(id); + END LOOP; + END IF; - TBL_SERVICE_SAISIE_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.INTERVENANT_ID, - v.PEUT_SAISIR_SERVICE, - v.PEUT_SAISIR_REFERENTIEL, - v.HEURES_SERVICE_PREV, - v.HEURES_REFERENTIEL_PREV, - v.HEURES_SERVICE_REAL, - v.HEURES_REFERENTIEL_REAL, - 0 + IF GET_DEBUG_LEVEL >= 6 THEN + id := d_volume_horaire.FIRST; + LOOP EXIT WHEN id IS NULL; + DEBUG_VOLUME_HORAIRE( id ); + id := d_volume_horaire.NEXT(id); + END LOOP; - ); + id := d_volume_horaire_ref.FIRST; + LOOP EXIT WHEN id IS NULL; + DEBUG_VOLUME_HORAIRE_REF( id ); + id := d_volume_horaire_ref.NEXT(id); + END LOOP; + END IF; - DELETE TBL_SERVICE_SAISIE WHERE to_delete = 1 AND ' || conds || '; + IF GET_DEBUG_LEVEL >= 3 THEN + DEBUG_RESULTAT; + END IF; - END;'; + IF GET_DEBUG_LEVEL >= 4 THEN + id := d_resultat.volume_horaire.FIRST; + LOOP EXIT WHEN id IS NULL; + DEBUG_RESULTAT_VH( id ); + id := d_resultat.volume_horaire.NEXT(id); + END LOOP; + id := d_resultat.volume_horaire_ref.FIRST; + LOOP EXIT WHEN id IS NULL; + DEBUG_RESULTAT_VH_REF( id ); + id := d_resultat.volume_horaire_ref.NEXT(id); + END LOOP; + END IF; END; - PROCEDURE C_VALIDATION_ENSEIGNEMENT( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; + PROCEDURE CALCULER( INTERVENANT_ID NUMERIC ) IS + id PLS_INTEGER; + found BOOLEAN; + function_name VARCHAR2(30); + package_name VARCHAR2(30); BEGIN - conds := params_to_conds( params ); - - EXECUTE IMMEDIATE 'BEGIN - - UPDATE TBL_VALIDATION_ENSEIGNEMENT SET to_delete = 1 WHERE ' || conds || '; + package_name := OSE_PARAMETRE.GET_FORMULE_PACKAGE_NAME; + function_name := OSE_PARAMETRE.GET_FORMULE_FUNCTION_NAME; - MERGE INTO - TBL_VALIDATION_ENSEIGNEMENT t - USING ( + -- détection de suppression des lignes de résultat obsolètes + UPDATE formule_resultat SET TO_DELETE = 1 WHERE intervenant_id = CALCULER.INTERVENANT_ID; + UPDATE FORMULE_RESULTAT_SERVICE_REF SET TO_DELETE = 1 WHERE formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); + UPDATE FORMULE_RESULTAT_SERVICE SET TO_DELETE = 1 WHERE formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); + UPDATE FORMULE_RESULTAT_VH_REF SET TO_DELETE = 1 WHERE formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); + UPDATE FORMULE_RESULTAT_VH SET TO_DELETE = 1 WHERE formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); - SELECT - tv.* - FROM - (SELECT DISTINCT - i.annee_id, - i.id intervenant_id, - CASE WHEN rsv.priorite = ''affectation'' THEN - COALESCE( i.structure_id, ep.structure_id ) - ELSE - COALESCE( ep.structure_id, i.structure_id ) - END structure_id, - vh.type_volume_horaire_id, - s.id service_id, - vh.id volume_horaire_id, - v.id validation_id - FROM - service s - JOIN volume_horaire vh ON vh.service_id = s.id AND vh.histo_destruction IS NULL - JOIN intervenant i ON i.id = s.intervenant_id AND i.histo_destruction IS NULL - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN regle_structure_validation rsv ON rsv.type_intervenant_id = si.type_intervenant_id AND rsv.type_volume_horaire_id = vh.type_volume_horaire_id - LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id - LEFT JOIN validation_vol_horaire vvh ON vvh.volume_horaire_id = vh.id - LEFT JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL - WHERE - s.histo_destruction IS NULL) tv - WHERE - ' || conds || ' + POPULATE( INTERVENANT_ID ); + IF d_intervenant.heures_service_statutaire IS NOT NULL THEN -- sinon rien n'est à faire!! + -- lancement du calcul sur les nouvelles lignes ou sur les lignes existantes + id := d_type_etat_vh.FIRST; + LOOP EXIT WHEN id IS NULL; + POPULATE_FILTER( d_type_etat_vh(id).type_volume_horaire_id, d_type_etat_vh(id).etat_volume_horaire_id ); + DEBUG_ALL( INTERVENANT_ID, d_type_etat_vh(id).type_volume_horaire_id, d_type_etat_vh(id).etat_volume_horaire_id ); + OSE_FORMULE.INIT_RESULTAT( INTERVENANT_ID, d_type_etat_vh(id).type_volume_horaire_id, d_type_etat_vh(id).etat_volume_horaire_id ); + OSE_FORMULE.CALC_RESULTAT; + OSE_FORMULE.SAVE_RESULTAT; + id := d_type_etat_vh.NEXT(id); + END LOOP; + END IF; - ) v ON ( - t.INTERVENANT_ID = v.INTERVENANT_ID - AND t.STRUCTURE_ID = v.STRUCTURE_ID - AND t.TYPE_VOLUME_HORAIRE_ID = v.TYPE_VOLUME_HORAIRE_ID - AND t.SERVICE_ID = v.SERVICE_ID - AND COALESCE(t.VALIDATION_ID,0) = COALESCE(v.VALIDATION_ID,0) - AND t.VOLUME_HORAIRE_ID = v.VOLUME_HORAIRE_ID + -- suppression des données devenues obsolètes + OSE_EVENT.ON_BEFORE_FORMULE_RES_DELETE( CALCULER.INTERVENANT_ID ); - ) WHEN MATCHED THEN UPDATE SET + UPDATE FORMULE_RESULTAT_SERVICE SET + to_delete = 0, + service_fi = 0, + service_fa = 0, + service_fc = 0, + heures_compl_fi = 0, + heures_compl_fa = 0, + heures_compl_fc = 0, + heures_compl_fc_majorees = 0, + total = 0 + WHERE + TO_DELETE = 1 + AND 0 < (SELECT COUNT(*) FROM mise_en_paiement mep WHERE mep.formule_res_service_id = FORMULE_RESULTAT_SERVICE.id) + AND formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); - ANNEE_ID = v.ANNEE_ID, - to_delete = 0 + DELETE FROM FORMULE_RESULTAT_SERVICE_REF WHERE TO_DELETE = 1 AND formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); + DELETE FROM FORMULE_RESULTAT_SERVICE WHERE TO_DELETE = 1 AND formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); + DELETE FROM FORMULE_RESULTAT_VH_REF WHERE TO_DELETE = 1 AND formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); + DELETE FROM FORMULE_RESULTAT_VH WHERE TO_DELETE = 1 AND formule_resultat_id IN (SELECT id FROM formule_resultat WHERE intervenant_id = CALCULER.INTERVENANT_ID); + DELETE FROM FORMULE_RESULTAT WHERE TO_DELETE = 1 AND intervenant_id = CALCULER.INTERVENANT_ID; - WHEN NOT MATCHED THEN INSERT ( + OSE_EVENT.ON_AFTER_FORMULE_CALC( CALCULER.INTERVENANT_ID ); + END; - ID, - ANNEE_ID, - INTERVENANT_ID, - STRUCTURE_ID, - TYPE_VOLUME_HORAIRE_ID, - SERVICE_ID, - VALIDATION_ID, - VOLUME_HORAIRE_ID, - TO_DELETE - ) VALUES ( - TBL_VALIDATION_ENSEIGNE_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.INTERVENANT_ID, - v.STRUCTURE_ID, - v.TYPE_VOLUME_HORAIRE_ID, - v.SERVICE_ID, - v.VALIDATION_ID, - v.VOLUME_HORAIRE_ID, - 0 + PROCEDURE CALCULER_TBL( PARAMS UNICAEN_TBL.T_PARAMS ) IS + intervenant_id NUMERIC; + TYPE r_cursor IS REF CURSOR; + diff_cur r_cursor; + BEGIN + OPEN diff_cur FOR 'WITH interv AS (SELECT id intervenant_id, intervenant.* FROM intervenant) + SELECT intervenant_id FROM interv WHERE ' || unicaen_tbl.PARAMS_TO_CONDS( params ); + LOOP + FETCH diff_cur INTO intervenant_id; EXIT WHEN diff_cur%NOTFOUND; + BEGIN + CALCULER( intervenant_id ); + END; + END LOOP; + CLOSE diff_cur; + END; - ); - DELETE TBL_VALIDATION_ENSEIGNEMENT WHERE to_delete = 1 AND ' || conds || '; - END;'; + FUNCTION GET_INTERVENANT RETURN NUMERIC IS + BEGIN + RETURN OSE_FORMULE.INTERVENANT_ID; + END; + PROCEDURE SET_INTERVENANT( INTERVENANT_ID NUMERIC DEFAULT NULL) IS + BEGIN + IF SET_INTERVENANT.INTERVENANT_ID = -1 THEN + OSE_FORMULE.INTERVENANT_ID := NULL; + ELSE + OSE_FORMULE.INTERVENANT_ID := SET_INTERVENANT.INTERVENANT_ID; + END IF; END; + FUNCTION MATCH_INTERVENANT(INTERVENANT_ID NUMERIC DEFAULT NULL) RETURN NUMERIC IS + BEGIN + IF OSE_FORMULE.INTERVENANT_ID IS NULL OR OSE_FORMULE.INTERVENANT_ID = MATCH_INTERVENANT.INTERVENANT_ID THEN + RETURN 1; + ELSE + RETURN 0; + END IF; + END; +END OSE_FORMULE; +/ +-- OSE_HISTO +CREATE OR REPLACE PACKAGE BODY "OSE_HISTO" AS - PROCEDURE C_VALIDATION_REFERENTIEL( PARAMS UNICAEN_TBL.T_PARAMS ) IS - conds CLOB; + FUNCTION FILTRE( histo_debut NUMERIC, histo_fin NUMERIC ) RETURN NUMERIC IS BEGIN - conds := params_to_conds( params ); + RETURN 1; + END; - EXECUTE IMMEDIATE 'BEGIN +END OSE_HISTO; +/ - UPDATE TBL_VALIDATION_REFERENTIEL SET to_delete = 1 WHERE ' || conds || '; +-- OSE_PAIEMENT +CREATE OR REPLACE PACKAGE BODY "OSE_PAIEMENT" AS - MERGE INTO - TBL_VALIDATION_REFERENTIEL t - USING ( + PROCEDURE CHECK_BAD_PAIEMENTS( FORMULE_RES_SERVICE_ID NUMERIC DEFAULT NULL, FORMULE_RES_SERVICE_REF_ID NUMERIC DEFAULT NULL ) IS + cc NUMERIC; + BEGIN + SELECT count(*) INTO cc + FROM mise_en_paiement mep + WHERE + mep.histo_destruction IS NULL + AND mep.formule_res_service_id = NVL( CHECK_BAD_PAIEMENTS.FORMULE_RES_SERVICE_ID, mep.formule_res_service_id ) + AND mep.formule_res_service_ref_id = NVL( CHECK_BAD_PAIEMENTS.FORMULE_RES_SERVICE_REF_ID, mep.formule_res_service_ref_id ) + ; - SELECT - tv.* - FROM - (SELECT DISTINCT - i.annee_id, - i.id intervenant_id, - CASE WHEN rsv.priorite = ''affectation'' THEN - COALESCE( i.structure_id, s.structure_id ) - ELSE - COALESCE( s.structure_id, i.structure_id ) - END structure_id, - vh.type_volume_horaire_id, - s.id service_referentiel_id, - vh.id volume_horaire_ref_id, - v.id validation_id - FROM - service_referentiel s - JOIN volume_horaire_ref vh ON vh.service_referentiel_id = s.id AND vh.histo_destruction IS NULL - JOIN intervenant i ON i.id = s.intervenant_id AND i.histo_destruction IS NULL - JOIN statut_intervenant si ON si.id = i.statut_id - JOIN regle_structure_validation rsv ON rsv.type_intervenant_id = si.type_intervenant_id AND rsv.type_volume_horaire_id = vh.type_volume_horaire_id - LEFT JOIN validation_vol_horaire_ref vvh ON vvh.volume_horaire_ref_id = vh.id - LEFT JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL - WHERE - s.histo_destruction IS NULL) tv - WHERE - ' || conds || ' + IF (cc > 0) THEN + raise_application_error(-20101, 'Il est impossible d''effectuer cette action : des demandes de mise en paiement ont été saisies et ne peuvent pas être modifiées'); + ELSE + DELETE FROM mise_en_paiement WHERE + histo_destruction IS NOT NULL + AND formule_res_service_id = NVL( CHECK_BAD_PAIEMENTS.FORMULE_RES_SERVICE_ID, formule_res_service_id ) + AND formule_res_service_ref_id = NVL( CHECK_BAD_PAIEMENTS.FORMULE_RES_SERVICE_REF_ID, formule_res_service_ref_id ) + ; + END IF; + END; - ) v ON ( - t.INTERVENANT_ID = v.INTERVENANT_ID - AND t.STRUCTURE_ID = v.STRUCTURE_ID - AND t.TYPE_VOLUME_HORAIRE_ID = v.TYPE_VOLUME_HORAIRE_ID - AND t.SERVICE_REFERENTIEL_ID = v.SERVICE_REFERENTIEL_ID - AND COALESCE(t.VALIDATION_ID,0) = COALESCE(v.VALIDATION_ID,0) - AND t.VOLUME_HORAIRE_REF_ID = v.VOLUME_HORAIRE_REF_ID +END OSE_PAIEMENT; +/ - ) WHEN MATCHED THEN UPDATE SET +-- OSE_PARAMETRE +CREATE OR REPLACE PACKAGE BODY "OSE_PARAMETRE" AS - ANNEE_ID = v.ANNEE_ID, - to_delete = 0 + cache_ose_user NUMERIC; + cache_annee_id NUMERIC; - WHEN NOT MATCHED THEN INSERT ( + function get_etablissement return Numeric AS + etab_id numeric; + BEGIN + select to_number(valeur) into etab_id from parametre where nom = 'etablissement'; + RETURN etab_id; + END get_etablissement; - ID, - ANNEE_ID, - INTERVENANT_ID, - STRUCTURE_ID, - TYPE_VOLUME_HORAIRE_ID, - SERVICE_REFERENTIEL_ID, - VALIDATION_ID, - VOLUME_HORAIRE_REF_ID, - TO_DELETE + function get_annee return Numeric AS + annee_id numeric; + BEGIN + IF cache_annee_id IS NOT NULL THEN RETURN cache_annee_id; END IF; + select to_number(valeur) into annee_id from parametre where nom = 'annee'; + cache_annee_id := annee_id; + RETURN cache_annee_id; + END get_annee; - ) VALUES ( + FUNCTION get_annee_import RETURN NUMERIC AS + annee_id NUMERIC; + BEGIN + SELECT to_number(valeur) INTO annee_id FROM parametre WHERE nom = 'annee_import'; + RETURN annee_id; + END get_annee_import; - TBL_VALIDATION_REFERENT_ID_SEQ.NEXTVAL, - v.ANNEE_ID, - v.INTERVENANT_ID, - v.STRUCTURE_ID, - v.TYPE_VOLUME_HORAIRE_ID, - v.SERVICE_REFERENTIEL_ID, - v.VALIDATION_ID, - v.VOLUME_HORAIRE_REF_ID, - 0 + function get_ose_user return Numeric AS + ose_user_id numeric; + BEGIN + IF cache_ose_user IS NOT NULL THEN RETURN cache_ose_user; END IF; + select to_number(valeur) into ose_user_id from parametre where nom = 'oseuser'; + cache_ose_user := ose_user_id; + RETURN cache_ose_user; + END get_ose_user; - ); + function get_drh_structure_id return Numeric AS + drh_structure_id numeric; + BEGIN + select to_number(valeur) into drh_structure_id from parametre where nom = 'drh_structure_id'; + RETURN drh_structure_id; + END get_drh_structure_id; - DELETE TBL_VALIDATION_REFERENTIEL WHERE to_delete = 1 AND ' || conds || '; + FUNCTION get_date_fin_saisie_permanents RETURN DATE IS + date_fin_saisie_permanents date; + BEGIN + select TO_DATE(valeur, 'dd/mm/yyyy') into date_fin_saisie_permanents from parametre where nom = 'date_fin_saisie_permanents'; + RETURN date_fin_saisie_permanents; + END; - END;'; + FUNCTION get_ddeb_saisie_serv_real RETURN DATE IS + val date; + BEGIN + select TO_DATE(valeur, 'dd/mm/yyyy') into val from parametre where nom = 'date_debut_saisie_services_realises'; + RETURN val; + END; + FUNCTION get_dfin_saisie_serv_real RETURN DATE IS + val date; + BEGIN + select TO_DATE(valeur, 'dd/mm/yyyy') into val from parametre where nom = 'date_fin_saisie_services_realises'; + RETURN val; END; - -- END OF AUTOMATIC GENERATION -- + FUNCTION get_formule_package_name RETURN VARCHAR2 IS + formule_package_name VARCHAR2(30); + BEGIN + SELECT valeur INTO formule_package_name FROM parametre WHERE nom = 'formule_package_name'; + RETURN formule_package_name; + END; -END UNICAEN_TBL; + FUNCTION get_formule_function_name RETURN VARCHAR2 IS + formule_function_name VARCHAR2(30); + BEGIN + SELECT valeur INTO formule_function_name FROM parametre WHERE nom = 'formule_function_name'; + RETURN formule_function_name; + END; + +END OSE_PARAMETRE; / --------------------------------------------------- --- Clés étrangères --------------------------------------------------- +-- OSE_TEST +CREATE OR REPLACE PACKAGE BODY "OSE_TEST" AS + TYPE OUT_LIST IS TABLE OF CLOB; + HTS TIMESTAMP; + + SUCCES_SHOWN BOOLEAN DEFAULT TRUE; + T_SUCCES_COUNT NUMERIC DEFAULT 0; + T_ECHECS_COUNT NUMERIC DEFAULT 0; + A_SUCCES_COUNT NUMERIC DEFAULT 0; + A_ECHECS_COUNT NUMERIC DEFAULT 0; + CURRENT_TEST CLOB; + CURRENT_TEST_OUTPUT_BUFFER OUT_LIST := OUT_LIST(); + CURRENT_TEST_OUTPUT_BUFFER_ERR BOOLEAN; --- ADRESSE_INTERVENANT_HCFK -ALTER TABLE "ADRESSE_INTERVENANT" ADD CONSTRAINT "ADRESSE_INTERVENANT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE SHOW_SUCCES IS + BEGIN + SUCCES_SHOWN := true; + END SHOW_SUCCES; --- ADRESSE_INTERVENANT_HDFK -ALTER TABLE "ADRESSE_INTERVENANT" ADD CONSTRAINT "ADRESSE_INTERVENANT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE HIDE_SUCCES IS + BEGIN + SUCCES_SHOWN := false; + END HIDE_SUCCES; --- ADRESSE_INTERVENANT_HMFK -ALTER TABLE "ADRESSE_INTERVENANT" ADD CONSTRAINT "ADRESSE_INTERVENANT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE DEBUT( TEST_NAME CLOB ) IS + BEGIN + CURRENT_TEST := TEST_NAME; + CURRENT_TEST_OUTPUT_BUFFER_ERR := FALSE; + echo (' '); echo('TEST ' || TEST_NAME || ' >>>>>>>>>>' ); + END; --- ADRESSE_INTERVENANT_SOURCE_FK -ALTER TABLE "ADRESSE_INTERVENANT" ADD CONSTRAINT "ADRESSE_INTERVENANT_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + PROCEDURE FIN IS + TEST_NAME CLOB; + BEGIN + IF CURRENT_TEST_OUTPUT_BUFFER_ERR THEN + T_ECHECS_COUNT := T_ECHECS_COUNT + 1; + echo('>>>>>>>>>> FIN DU TEST ' || CURRENT_TEST ); echo (' '); + CURRENT_TEST := NULL; --- ADRESSE_STRUCTURE_HCFK -ALTER TABLE "ADRESSE_STRUCTURE" ADD CONSTRAINT "ADRESSE_STRUCTURE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FOR i IN 1 .. CURRENT_TEST_OUTPUT_BUFFER.COUNT LOOP + echo( CURRENT_TEST_OUTPUT_BUFFER(i) ); + END LOOP; + ELSE + T_SUCCES_COUNT := T_SUCCES_COUNT + 1; + TEST_NAME := CURRENT_TEST; + CURRENT_TEST := NULL; + echo('SUCCÈS DU TEST : ' || TEST_NAME ); + END IF; + CURRENT_TEST_OUTPUT_BUFFER.DELETE; -- clear buffer + END; --- ADRESSE_STRUCTURE_HDFK -ALTER TABLE "ADRESSE_STRUCTURE" ADD CONSTRAINT "ADRESSE_STRUCTURE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE ECHO( MSG CLOB ) IS + BEGIN + IF CURRENT_TEST IS NULL THEN + dbms_output.put_line(MSG); + ELSE + CURRENT_TEST_OUTPUT_BUFFER.EXTEND; + CURRENT_TEST_OUTPUT_BUFFER (CURRENT_TEST_OUTPUT_BUFFER.LAST) := MSG; + END IF; + END; --- ADRESSE_STRUCTURE_HMFK -ALTER TABLE "ADRESSE_STRUCTURE" ADD CONSTRAINT "ADRESSE_STRUCTURE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE INIT IS + BEGIN + T_SUCCES_COUNT := 0; + T_ECHECS_COUNT := 0; + A_SUCCES_COUNT := 0; + A_ECHECS_COUNT := 0; + CURRENT_TEST := NULL; + END INIT; --- ADRESSE_STRUCTURE_SOURCE_FK -ALTER TABLE "ADRESSE_STRUCTURE" ADD CONSTRAINT "ADRESSE_STRUCTURE_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + PROCEDURE SHOW_STATS IS + BEGIN + echo ( ' ' ); + echo ( '********************************* STATISTIQUES *********************************' ); + echo ( ' ' ); + echo ( ' - nombre de tests passés avec succès : ' || T_SUCCES_COUNT ); + echo ( ' - nombre de tests ayant échoué : ' || T_ECHECS_COUNT ); + echo ( ' ' ); + echo ( ' - nombre d''assertions passés avec succès : ' || A_SUCCES_COUNT ); + echo ( ' - nombre d''assertions ayant échoué : ' || A_ECHECS_COUNT ); + echo ( ' ' ); + echo ( '********************************************************************************' ); + echo ( ' ' ); + END; --- ADRESSE_STRUCTURE_STRUCTURE_FK -ALTER TABLE "ADRESSE_STRUCTURE" ADD CONSTRAINT "ADRESSE_STRUCTURE_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + PROCEDURE ASSERT( condition BOOLEAN, MSG CLOB ) IS + BEGIN + IF condition THEN + A_SUCCES_COUNT := A_SUCCES_COUNT + 1; + IF SUCCES_SHOWN THEN + ECHO(' SUCCÈS : ' || MSG ); + END IF; + ELSE + A_ECHECS_COUNT := A_ECHECS_COUNT + 1; + CURRENT_TEST_OUTPUT_BUFFER_ERR := TRUE; + ECHO(' ** ECHEC ** : ' || MSG ); + END IF; + END; --- AFFECTATION_HCFK -ALTER TABLE "AFFECTATION" ADD CONSTRAINT "AFFECTATION_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE HOROINIT IS + BEGIN + HTS := systimestamp; + END; --- AFFECTATION_HDFK -ALTER TABLE "AFFECTATION" ADD CONSTRAINT "AFFECTATION_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE HORODATAGE( msg VARCHAR2 ) IS + diff INTERVAL DAY(9) TO SECOND(3); + BEGIN + IF HTS IS NULL THEN + HTS := systimestamp; + RETURN; + END IF; --- AFFECTATION_HMFK -ALTER TABLE "AFFECTATION" ADD CONSTRAINT "AFFECTATION_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + diff := systimestamp - HTS; + HTS := systimestamp; --- AFFECTATION_ROLE_FK -ALTER TABLE "AFFECTATION" ADD CONSTRAINT "AFFECTATION_ROLE_FK" FOREIGN KEY ("ROLE_ID") - REFERENCES "ROLE" ("ID") ON DELETE CASCADE ENABLE; + echo(msg || ' (' || diff || ')'); + END; --- AFFECTATION_R_HCFK -ALTER TABLE "AFFECTATION_RECHERCHE" ADD CONSTRAINT "AFFECTATION_R_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION GET_STRUCTURE_BY_ID( id NUMERIC ) RETURN structure%rowtype IS + res structure%rowtype; + BEGIN + IF ID IS NULL THEN RETURN res; END IF; + SELECT * INTO res FROM structure WHERE id = GET_STRUCTURE_BY_ID.id; + RETURN res; + END; --- AFFECTATION_R_HDFK -ALTER TABLE "AFFECTATION_RECHERCHE" ADD CONSTRAINT "AFFECTATION_R_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; +END OSE_TEST; +/ --- AFFECTATION_R_HMFK -ALTER TABLE "AFFECTATION_RECHERCHE" ADD CONSTRAINT "AFFECTATION_R_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; +-- OSE_VALIDATION +CREATE OR REPLACE PACKAGE BODY "OSE_VALIDATION" AS --- AFFECTATION_R_INTERVENANT_FK -ALTER TABLE "AFFECTATION_RECHERCHE" ADD CONSTRAINT "AFFECTATION_R_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION can_devalider ( v validation%rowtype ) RETURN varchar2 IS + tv type_validation%rowtype; + nb NUMERIC; + result varchar2(500) default null; + BEGIN --- AFFECTATION_R_SOURCE_FK -ALTER TABLE "AFFECTATION_RECHERCHE" ADD CONSTRAINT "AFFECTATION_R_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + SELECT * INTO tv FROM type_validation WHERE id = v.type_validation_id; --- AFFECTATION_R_STRUCTURE_FK -ALTER TABLE "AFFECTATION_RECHERCHE" ADD CONSTRAINT "AFFECTATION_R_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; + IF tv.code = 'SERVICES_PAR_COMP' THEN --- AFFECTATION_SOURCE_FK -ALTER TABLE "AFFECTATION" ADD CONSTRAINT "AFFECTATION_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ENABLE; + SELECT + SUM(CASE WHEN c.id IS NOT NULL THEN 1 ELSE 0 END) INTO nb + FROM + validation_vol_horaire vvh + JOIN volume_horaire vh ON vh.id = vvh.volume_horaire_id + LEFT JOIN contrat c ON c.id = vh.contrat_id AND c.histo_destruction IS NULL + WHERE + vvh.validation_id = v.id; --- AFFECTATION_STRUCTURE_FK -ALTER TABLE "AFFECTATION" ADD CONSTRAINT "AFFECTATION_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; + -- Si des volumes horaires ont déjà fait l'objet de contrats alors pas de dévalidation possible des heures + IF nb > 0 THEN + result := 'La dévalidation est impossible car des contrats ont déjà été édités sur la base de ces heures.'; + END IF; --- AFFECTATION_UTILISATEUR_FK -ALTER TABLE "AFFECTATION" ADD CONSTRAINT "AFFECTATION_UTILISATEUR_FK" FOREIGN KEY ("UTILISATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + END IF; --- AGREMENTS_STRUCTURES_FK -ALTER TABLE "AGREMENT" ADD CONSTRAINT "AGREMENTS_STRUCTURES_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; + IF tv.code = 'CLOTURE_REALISE' THEN --- AGREMENT_HCFK -ALTER TABLE "AGREMENT" ADD CONSTRAINT "AGREMENT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + SELECT + COUNT(*) INTO nb + FROM + tbl_paiement p + WHERE + p.periode_paiement_id IS NOT NULL + AND p.intervenant_id = v.intervenant_id + AND ROWNUM = 1; --- AGREMENT_HDFK -ALTER TABLE "AGREMENT" ADD CONSTRAINT "AGREMENT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF nb > 0 THEN + result := 'La suppression de la clôture des services réalisés est impossible car des heures ont été payées ou bien le paiement a été demandé.'; + END IF; --- AGREMENT_HMFK -ALTER TABLE "AGREMENT" ADD CONSTRAINT "AGREMENT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + END IF; --- AGREMENT_INTERVENANT_FK -ALTER TABLE "AGREMENT" ADD CONSTRAINT "AGREMENT_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + RETURN result; + END; --- AGREMENT_TYPE_AGREMENT_FK -ALTER TABLE "AGREMENT" ADD CONSTRAINT "AGREMENT_TYPE_AGREMENT_FK" FOREIGN KEY ("TYPE_AGREMENT_ID") - REFERENCES "TYPE_AGREMENT" ("ID") ON DELETE CASCADE ENABLE; +END OSE_VALIDATION; +/ --- AII_FK -ALTER TABLE "ADRESSE_INTERVENANT" ADD CONSTRAINT "AII_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; +-- OSE_WORKFLOW +CREATE OR REPLACE PACKAGE BODY "OSE_WORKFLOW" AS + INTERVENANT_ID NUMERIC DEFAULT NULL; --- CAMPAGNE_SAISIE_ANNEE_FK -ALTER TABLE "CAMPAGNE_SAISIE" ADD CONSTRAINT "CAMPAGNE_SAISIE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ENABLE; + TYPE t_workflow IS TABLE OF tbl_workflow%rowtype INDEX BY PLS_INTEGER; --- CCEP_CENTRE_COUT_FK -ALTER TABLE "CENTRE_COUT_EP" ADD CONSTRAINT "CCEP_CENTRE_COUT_FK" FOREIGN KEY ("CENTRE_COUT_ID") - REFERENCES "CENTRE_COUT" ("ID") ON DELETE CASCADE ENABLE; + TYPE t_dep IS TABLE OF wf_etape_dep%rowtype INDEX BY PLS_INTEGER; + TYPE t_deps IS TABLE OF t_dep INDEX BY PLS_INTEGER; + TYPE t_deps_bloquantes IS TABLE OF wf_dep_bloquante%rowtype INDEX BY PLS_INTEGER; --- CCEP_ELEMENT_PEDAGOGIQUE_FK -ALTER TABLE "CENTRE_COUT_EP" ADD CONSTRAINT "CCEP_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") - REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + -- propre au calcul courant ! ! + etapes t_workflow; + deps t_deps; + deps_initialized boolean default false; + deps_bloquantes t_deps_bloquantes; + deps_bloquantes_index PLS_INTEGER DEFAULT 1; --- CCEP_SOURCE_FK -ALTER TABLE "CENTRE_COUT_EP" ADD CONSTRAINT "CCEP_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; --- CCEP_TYPE_HEURES_FK -ALTER TABLE "CENTRE_COUT_EP" ADD CONSTRAINT "CCEP_TYPE_HEURES_FK" FOREIGN KEY ("TYPE_HEURES_ID") - REFERENCES "TYPE_HEURES" ("ID") ON DELETE CASCADE ENABLE; --- CCS_CENTRE_COUT_FK -ALTER TABLE "CENTRE_COUT_STRUCTURE" ADD CONSTRAINT "CCS_CENTRE_COUT_FK" FOREIGN KEY ("CENTRE_COUT_ID") - REFERENCES "CENTRE_COUT" ("ID") ON DELETE CASCADE ENABLE; --- CCS_SOURCE_FK -ALTER TABLE "CENTRE_COUT_STRUCTURE" ADD CONSTRAINT "CCS_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ENABLE; + FUNCTION ETAPE_FRANCHIE( etape tbl_workflow%rowtype, need_done boolean default false ) RETURN FLOAT IS + res FLOAT DEFAULT 0; + BEGIN + IF etape.objectif = 0 THEN + IF need_done THEN RETURN 0; ELSE RETURN 1; END IF; + END IF; --- CCS_STRUCTURE_FK -ALTER TABLE "CENTRE_COUT_STRUCTURE" ADD CONSTRAINT "CCS_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + IF etape.atteignable = 0 THEN RETURN 0; END IF; --- CC_ACTIVITE_HCFK -ALTER TABLE "CC_ACTIVITE" ADD CONSTRAINT "CC_ACTIVITE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF etape.objectif > 0 THEN + res := etape.realisation / etape.objectif; + END IF; --- CC_ACTIVITE_HDFK -ALTER TABLE "CC_ACTIVITE" ADD CONSTRAINT "CC_ACTIVITE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF res > 1 THEN + res := 1; + END IF; --- CC_ACTIVITE_HMFK -ALTER TABLE "CC_ACTIVITE" ADD CONSTRAINT "CC_ACTIVITE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + RETURN res; + END; --- CENTRE_COUT_ACTIVITE_FK -ALTER TABLE "CENTRE_COUT" ADD CONSTRAINT "CENTRE_COUT_ACTIVITE_FK" FOREIGN KEY ("ACTIVITE_ID") - REFERENCES "CC_ACTIVITE" ("ID") ON DELETE CASCADE ENABLE; --- CENTRE_COUT_CENTRE_COUT_FK -ALTER TABLE "CENTRE_COUT" ADD CONSTRAINT "CENTRE_COUT_CENTRE_COUT_FK" FOREIGN KEY ("PARENT_ID") - REFERENCES "CENTRE_COUT" ("ID") ON DELETE CASCADE ENABLE; --- CENTRE_COUT_EP_HCFK -ALTER TABLE "CENTRE_COUT_EP" ADD CONSTRAINT "CENTRE_COUT_EP_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE POPULATE_ETAPES( INTERVENANT_ID NUMERIC ) IS + i NUMERIC DEFAULT 0; + BEGIN + etapes.delete; -- initialisation --- CENTRE_COUT_EP_HDFK -ALTER TABLE "CENTRE_COUT_EP" ADD CONSTRAINT "CENTRE_COUT_EP_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FOR wie IN ( + SELECT + wep.annee_id annee_id, + e.id etape_id, + w.structure_id structure_id, + ROUND(COALESCE(w.objectif,0),2) objectif, + CASE WHEN w.intervenant_id IS NULL THEN 0 ELSE 1 END atteignable, + ROUND(COALESCE(w.realisation,0),2) realisation, + wep.etape_code etape_code, + si.id statut_intervenant_id, + ti.id type_intervenant_id, + ti.code type_intervenant_code + FROM + v_workflow_etape_pertinente wep + JOIN wf_etape e ON e.code = wep.etape_code + JOIN intervenant i ON i.id = wep.intervenant_id + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN type_intervenant ti ON ti.id = si.type_intervenant_id + LEFT JOIN v_tbl_workflow w ON w.intervenant_id = wep.intervenant_id AND w.etape_code = wep.etape_code + WHERE + wep.intervenant_id = POPULATE_ETAPES.INTERVENANT_ID + AND (e.obligatoire = 1 OR w.intervenant_id IS NOT NULL) + ORDER BY + e.ordre + ) LOOP + etapes( i ).annee_id := wie.annee_id; + etapes( i ).intervenant_id := intervenant_id; + etapes( i ).etape_id := wie.etape_id; + etapes( i ).structure_id := wie.structure_id; + etapes( i ).atteignable := wie.atteignable; + etapes( i ).objectif := wie.objectif; + etapes( i ).realisation := wie.realisation; + etapes( i ).etape_code := wie.etape_code; + etapes( i ).statut_intervenant_id := wie.statut_intervenant_id; + etapes( i ).type_intervenant_id := wie.type_intervenant_id; + etapes( i ).type_intervenant_code := wie.type_intervenant_code; + i := i + 1; + END LOOP; + END; --- CENTRE_COUT_EP_HMFK -ALTER TABLE "CENTRE_COUT_EP" ADD CONSTRAINT "CENTRE_COUT_EP_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- CENTRE_COUT_HCFK -ALTER TABLE "CENTRE_COUT" ADD CONSTRAINT "CENTRE_COUT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- CENTRE_COUT_HDFK -ALTER TABLE "CENTRE_COUT" ADD CONSTRAINT "CENTRE_COUT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + -- peuple l'arbre des dépendances entre étapes de workflow + PROCEDURE POPULATE_DEPS( INTERVENANT_ID NUMERIC ) IS + s PLS_INTEGER; -- index de l'étape suivante + p PLS_INTEGER; -- index de l'étape précédente + BEGIN + IF deps_initialized THEN RETURN; END IF; --- CENTRE_COUT_HMFK -ALTER TABLE "CENTRE_COUT" ADD CONSTRAINT "CENTRE_COUT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FOR d IN ( + SELECT + wed.* + FROM + wf_etape_dep wed + JOIN intervenant i ON i.id = POPULATE_DEPS.INTERVENANT_ID + JOIN statut_intervenant si ON si.id = i.statut_id + WHERE + active = 1 + AND wed.type_intervenant_id IS NULL OR wed.type_intervenant_id = si.type_intervenant_id + ) LOOP + deps(d.etape_suiv_id)(d.etape_prec_id) := d; + END LOOP; --- CENTRE_COUT_SOURCE_FK -ALTER TABLE "CENTRE_COUT" ADD CONSTRAINT "CENTRE_COUT_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + deps_initialized := true; + END; --- CENTRE_COUT_STRUCTURE_HCFK -ALTER TABLE "CENTRE_COUT_STRUCTURE" ADD CONSTRAINT "CENTRE_COUT_STRUCTURE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- CENTRE_COUT_STRUCTURE_HDFK -ALTER TABLE "CENTRE_COUT_STRUCTURE" ADD CONSTRAINT "CENTRE_COUT_STRUCTURE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- CENTRE_COUT_STRUCTURE_HMFK -ALTER TABLE "CENTRE_COUT_STRUCTURE" ADD CONSTRAINT "CENTRE_COUT_STRUCTURE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE ADD_DEP_BLOQUANTE( wf_etape_dep_id NUMERIC, tbl_workflow_id NUMERIC ) IS + BEGIN + deps_bloquantes_index := deps_bloquantes_index + 1; + deps_bloquantes(deps_bloquantes_index).wf_etape_dep_id := wf_etape_dep_id; + deps_bloquantes(deps_bloquantes_index).tbl_workflow_id := tbl_workflow_id; + END; --- CENTRE_COUT_TYPE_RESSOURCE_FK -ALTER TABLE "CENTRE_COUT" ADD CONSTRAINT "CENTRE_COUT_TYPE_RESSOURCE_FK" FOREIGN KEY ("TYPE_RESSOURCE_ID") - REFERENCES "TYPE_RESSOURCE" ("ID") ON DELETE CASCADE ENABLE; --- CHEMIN_PEDAGOGIQUE_ETAPE_FK -ALTER TABLE "CHEMIN_PEDAGOGIQUE" ADD CONSTRAINT "CHEMIN_PEDAGOGIQUE_ETAPE_FK" FOREIGN KEY ("ETAPE_ID") - REFERENCES "ETAPE" ("ID") ON DELETE CASCADE ENABLE; --- CHEMIN_PEDAGOGIQUE_HCFK -ALTER TABLE "CHEMIN_PEDAGOGIQUE" ADD CONSTRAINT "CHEMIN_PEDAGOGIQUE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE CALCUL_ATTEIGNABLE( s PLS_INTEGER, d wf_etape_dep%rowtype ) IS + count_tested PLS_INTEGER DEFAULT 0; + count_na PLS_INTEGER DEFAULT 0; + p PLS_INTEGER; -- index de l'étape précédente + BEGIN --- CHEMIN_PEDAGOGIQUE_HDFK -ALTER TABLE "CHEMIN_PEDAGOGIQUE" ADD CONSTRAINT "CHEMIN_PEDAGOGIQUE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + p := etapes.FIRST; + LOOP EXIT WHEN p IS NULL; + IF etapes(p).etape_id = d.etape_prec_id THEN + -- on restreint en fonction du périmètre visé : + -- - si la dépendance n'est pas locale alors on teste + -- - si les structures aussi bien de l'étape testée que de l'étape dépendante sont nulles alors on teste aussi car elles sont "universelles" + -- - si les structures sont équivalentes alors on teste, sinon elles ne sont pas dans le périmètre local + IF + (d.locale = 0) + OR etapes(s).structure_id IS NULL + OR etapes(p).structure_id IS NULL + OR etapes(s).structure_id = etapes(p).structure_id + THEN + count_tested := count_tested + 1; --- CHEMIN_PEDAGOGIQUE_HMFK -ALTER TABLE "CHEMIN_PEDAGOGIQUE" ADD CONSTRAINT "CHEMIN_PEDAGOGIQUE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + -- on teste le type de franchissement désiré et si ce n'est pas bon alors on déclare l'étape courante non atteignable --- CHEMIN_PEDAGOGIQUE_SOURCE_FK -ALTER TABLE "CHEMIN_PEDAGOGIQUE" ADD CONSTRAINT "CHEMIN_PEDAGOGIQUE_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + -- - idem si on a besoin d'une dépendance partiellement franchie est qu'elle ne l'est pas + IF d.partielle = 1 THEN + IF ETAPE_FRANCHIE(etapes(p), d.obligatoire=1) = 0 THEN -- si le franchissement est totalement inexistant + count_na := count_na + 1; + END IF; + -- - si on a besoin d'une dépendance complètement franchie est qu'elle ne l'est pas alors ce n'est pas atteignable + ELSE + IF ETAPE_FRANCHIE(etapes(p), d.obligatoire=1) < 1 THEN + count_na := count_na + 1; + END IF; + END IF; + END IF; --- CONTRAT_CONTRAT_FK -ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_CONTRAT_FK" FOREIGN KEY ("CONTRAT_ID") - REFERENCES "CONTRAT" ("ID") ON DELETE CASCADE ENABLE; + END IF; + p := etapes.next(p); + END LOOP; --- CONTRAT_FICHIER_FFK -ALTER TABLE "CONTRAT_FICHIER" ADD CONSTRAINT "CONTRAT_FICHIER_FFK" FOREIGN KEY ("FICHIER_ID") - REFERENCES "FICHIER" ("ID") ON DELETE CASCADE ENABLE; + -- on applique le résultat uniquement si des étapes dépendantes ont été trouvées + IF count_tested > 0 THEN --- CONTRAT_FICHIER_cFK -ALTER TABLE "CONTRAT_FICHIER" ADD CONSTRAINT "CONTRAT_FICHIER_cFK" FOREIGN KEY ("CONTRAT_ID") - REFERENCES "CONTRAT" ("ID") ON DELETE CASCADE ENABLE; + -- si les étapes dépendantes ont été intégralement franchies + IF d.integrale = 1 THEN + -- si l'intégralité des étapes est atteignable = NON si au moins une ne l'est pas + IF count_na > 0 THEN + etapes(s).atteignable := 0; + ADD_DEP_BLOQUANTE( d.id, s ); + END IF; --- CONTRAT_HCFK -ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + -- sinon... + ELSE + -- si au moins une étape est atteignable = NON si toutes ne sont pas atteignables + IF count_tested = count_na THEN + etapes(s).atteignable := 0; + ADD_DEP_BLOQUANTE( d.id, s ); + END IF; + END IF; + END IF; + END; --- CONTRAT_HDFK -ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- CONTRAT_HMFK -ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- CONTRAT_INTERVENANT_FK -ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + -- calcule si les étapes sont atteignables ou non + PROCEDURE CALCUL_ATTEIGNABLES IS + e PLS_INTEGER; -- index de l'étape courante + d PLS_INTEGER; -- ID de l'étape précédante + BEGIN + deps_bloquantes.delete; + e := etapes.FIRST; + LOOP EXIT WHEN e IS NULL; + IF deps.exists(etapes(e).etape_id) THEN -- s'il n'y a aucune dépendance alors pas de test!! + d := deps(etapes(e).etape_id).FIRST; + LOOP EXIT WHEN d IS NULL; --- CONTRAT_STRUCTURE_FK -ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; + CALCUL_ATTEIGNABLE(e, deps(etapes(e).etape_id)(d)); --- CONTRAT_TYPE_CONTRAT_FK -ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_TYPE_CONTRAT_FK" FOREIGN KEY ("TYPE_CONTRAT_ID") - REFERENCES "TYPE_CONTRAT" ("ID") ENABLE; + d := deps(etapes(e).etape_id).next(d); + END LOOP; + END IF; + e := etapes.next(e); + END LOOP; + END; --- CONTRAT_VALIDATION_FK -ALTER TABLE "CONTRAT" ADD CONSTRAINT "CONTRAT_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") - REFERENCES "VALIDATION" ("ID") ON DELETE SET NULL ENABLE; --- CORPS_HCFK -ALTER TABLE "CORPS" ADD CONSTRAINT "CORPS_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- CORPS_HDFK -ALTER TABLE "CORPS" ADD CONSTRAINT "CORPS_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION ENREGISTRER_ETAPE( e tbl_workflow%rowtype ) RETURN NUMERIC IS + n_etape_id NUMERIC; + BEGIN + + MERGE INTO tbl_workflow w USING dual ON ( + + w.intervenant_id = e.intervenant_id + AND w.etape_id = e.etape_id + AND NVL(w.structure_id,0) = NVL(e.structure_id,0) --- CORPS_HMFK -ALTER TABLE "CORPS" ADD CONSTRAINT "CORPS_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ) WHEN MATCHED THEN UPDATE SET --- CORPS_SOURCE_FK -ALTER TABLE "CORPS" ADD CONSTRAINT "CORPS_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + atteignable = e.atteignable, + objectif = e.objectif, + realisation = e.realisation, + etape_code = e.etape_code, + statut_intervenant_id = e.statut_intervenant_id, + type_intervenant_id = e.type_intervenant_id, + type_intervenant_code = e.type_intervenant_code, + to_delete = 0 --- CPEP_FK -ALTER TABLE "CHEMIN_PEDAGOGIQUE" ADD CONSTRAINT "CPEP_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") - REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + WHEN NOT MATCHED THEN INSERT ( --- CS_TYPE_INTERVENANT_FK -ALTER TABLE "CAMPAGNE_SAISIE" ADD CONSTRAINT "CS_TYPE_INTERVENANT_FK" FOREIGN KEY ("TYPE_INTERVENANT_ID") - REFERENCES "TYPE_INTERVENANT" ("ID") ENABLE; + id, + annee_id, + intervenant_id, + etape_id, + structure_id, + atteignable, + objectif, + realisation, + etape_code, + statut_intervenant_id, + type_intervenant_id, + type_intervenant_code, + to_delete --- CS_TYPE_VOLUME_HORAIRE_FK -ALTER TABLE "CAMPAGNE_SAISIE" ADD CONSTRAINT "CS_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") - REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ENABLE; + ) VALUES ( --- DEPARTEMENT_HCFK -ALTER TABLE "DEPARTEMENT" ADD CONSTRAINT "DEPARTEMENT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + TBL_WORKFLOW_ID_SEQ.NEXTVAL, + e.annee_id, + e.intervenant_id, + e.etape_id, + e.structure_id, + e.atteignable, + e.objectif, + e.realisation, + e.etape_code, + e.statut_intervenant_id, + e.type_intervenant_id, + e.type_intervenant_code, + 0 --- DEPARTEMENT_HDFK -ALTER TABLE "DEPARTEMENT" ADD CONSTRAINT "DEPARTEMENT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ); --- DEPARTEMENT_HMFK -ALTER TABLE "DEPARTEMENT" ADD CONSTRAINT "DEPARTEMENT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + SELECT w.id INTO n_etape_id FROM tbl_workflow w WHERE + w.intervenant_id = e.intervenant_id + AND w.etape_id = e.etape_id + AND NVL(w.structure_id,0) = NVL(e.structure_id,0) + ; --- DEPARTEMENT_SOURCE_FK -ALTER TABLE "DEPARTEMENT" ADD CONSTRAINT "DEPARTEMENT_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + RETURN n_etape_id; + END; --- DISCIPLINE_HCFK -ALTER TABLE "DISCIPLINE" ADD CONSTRAINT "DISCIPLINE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- DISCIPLINE_HDFK -ALTER TABLE "DISCIPLINE" ADD CONSTRAINT "DISCIPLINE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- DISCIPLINE_HMFK -ALTER TABLE "DISCIPLINE" ADD CONSTRAINT "DISCIPLINE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE ENREGISTRER_DEP_BLOQUANTE( db wf_dep_bloquante%rowtype ) IS + BEGIN + MERGE INTO wf_dep_bloquante wdb USING dual ON ( --- DISCIPLINE_SOURCE_FK -ALTER TABLE "DISCIPLINE" ADD CONSTRAINT "DISCIPLINE_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ENABLE; + wdb.wf_etape_dep_id = db.wf_etape_dep_id + AND wdb.tbl_workflow_id = db.tbl_workflow_id --- DOMAINE_FONCTIONNEL_HCFK -ALTER TABLE "DOMAINE_FONCTIONNEL" ADD CONSTRAINT "DOMAINE_FONCTIONNEL_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ) WHEN MATCHED THEN UPDATE SET --- DOMAINE_FONCTIONNEL_HDFK -ALTER TABLE "DOMAINE_FONCTIONNEL" ADD CONSTRAINT "DOMAINE_FONCTIONNEL_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + to_delete = 0 --- DOMAINE_FONCTIONNEL_HMFK -ALTER TABLE "DOMAINE_FONCTIONNEL" ADD CONSTRAINT "DOMAINE_FONCTIONNEL_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + WHEN NOT MATCHED THEN INSERT ( --- DOMAINE_FONCTIONNEL_SOURCE_FK -ALTER TABLE "DOMAINE_FONCTIONNEL" ADD CONSTRAINT "DOMAINE_FONCTIONNEL_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + id, + wf_etape_dep_id, + tbl_workflow_id, + to_delete --- DOSSIER_D_FK -ALTER TABLE "DOSSIER" ADD CONSTRAINT "DOSSIER_D_FK" FOREIGN KEY ("DEPT_NAISSANCE_ID") - REFERENCES "DEPARTEMENT" ("ID") ENABLE; + ) VALUES ( --- DOSSIER_HCFK -ALTER TABLE "DOSSIER" ADD CONSTRAINT "DOSSIER_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + WF_DEP_BLOQUANTE_ID_SEQ.NEXTVAL, + db.wf_etape_dep_id, + db.tbl_workflow_id, + 0 --- DOSSIER_HDFK -ALTER TABLE "DOSSIER" ADD CONSTRAINT "DOSSIER_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ); + END; --- DOSSIER_HMFK -ALTER TABLE "DOSSIER" ADD CONSTRAINT "DOSSIER_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- DOSSIER_INTERVENANT_FK -ALTER TABLE "DOSSIER" ADD CONSTRAINT "DOSSIER_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ENABLE; --- DOSSIER_P_FK -ALTER TABLE "DOSSIER" ADD CONSTRAINT "DOSSIER_P_FK" FOREIGN KEY ("PAYS_NAISSANCE_ID") - REFERENCES "PAYS" ("ID") ENABLE; + PROCEDURE ENREGISTRER( INTERVENANT_ID NUMERIC ) IS + i PLS_INTEGER; + BEGIN --- DOTATION_ANNEE_FK -ALTER TABLE "DOTATION" ADD CONSTRAINT "DOTATION_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + UPDATE tbl_workflow SET to_delete = 1 WHERE intervenant_id = ENREGISTRER.INTERVENANT_ID; + UPDATE wf_dep_bloquante SET to_delete = 1 WHERE tbl_workflow_id IN (SELECT id FROM tbl_workflow WHERE intervenant_id = ENREGISTRER.INTERVENANT_ID); --- DOTATION_HCFK -ALTER TABLE "DOTATION" ADD CONSTRAINT "DOTATION_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + i := etapes.FIRST; + LOOP EXIT WHEN i IS NULL; + etapes(i).id := ENREGISTRER_ETAPE( etapes(i) ); + i := etapes.NEXT(i); + END LOOP; --- DOTATION_HDFK -ALTER TABLE "DOTATION" ADD CONSTRAINT "DOTATION_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + i := deps_bloquantes.FIRST; + LOOP EXIT WHEN i IS NULL; + deps_bloquantes(i).tbl_workflow_id := etapes(deps_bloquantes(i).tbl_workflow_id).id; + ENREGISTRER_DEP_BLOQUANTE( deps_bloquantes(i) ); + i := deps_bloquantes.NEXT(i); + END LOOP; --- DOTATION_HMFK -ALTER TABLE "DOTATION" ADD CONSTRAINT "DOTATION_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + DELETE FROM tbl_workflow WHERE TO_DELETE = 1 AND intervenant_id = ENREGISTRER.INTERVENANT_ID; + DELETE FROM wf_dep_bloquante WHERE TO_DELETE = 1; + END; --- DOTATION_STRUCTURE_FK -ALTER TABLE "DOTATION" ADD CONSTRAINT "DOTATION_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; --- DOTATION_TYPE_RESSOURCE_FK -ALTER TABLE "DOTATION" ADD CONSTRAINT "DOTATION_TYPE_RESSOURCE_FK" FOREIGN KEY ("TYPE_RESSOURCE_ID") - REFERENCES "TYPE_RESSOURCE" ("ID") ENABLE; --- DS_MDS_FK -ALTER TABLE "MODIFICATION_SERVICE_DU" ADD CONSTRAINT "DS_MDS_FK" FOREIGN KEY ("MOTIF_ID") - REFERENCES "MOTIF_MODIFICATION_SERVICE" ("ID") ENABLE; + PROCEDURE DEP_CHECK( etape_suiv_id NUMERIC, etape_prec_id NUMERIC ) IS + eso NUMERIC; + epo NUMERIC; + BEGIN + SELECT ordre INTO eso FROM wf_etape WHERE id = etape_suiv_id; + SELECT ordre INTO epo FROM wf_etape WHERE id = etape_prec_id; --- EFFECTIFS_ELEMENT_FK -ALTER TABLE "EFFECTIFS" ADD CONSTRAINT "EFFECTIFS_ELEMENT_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") - REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + IF eso < epo THEN + raise_application_error(-20101, 'Une étape de Workflow ne peut dépendre d''une étape située en aval'); + END IF; + IF eso = epo THEN + raise_application_error(-20101, 'Une étape de Workflow ne peut dépendre d''elle-même'); + END IF; + END; --- EFFECTIFS_FK -ALTER TABLE "EFFECTIFS" ADD CONSTRAINT "EFFECTIFS_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ENABLE; --- EFFECTIFS_HCFK -ALTER TABLE "EFFECTIFS" ADD CONSTRAINT "EFFECTIFS_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- EFFECTIFS_HDFK -ALTER TABLE "EFFECTIFS" ADD CONSTRAINT "EFFECTIFS_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE DEBUG_CALCUL( INTERVENANT_ID NUMERIC ) IS + i PLS_INTEGER; + d PLS_INTEGER; + dep_desc VARCHAR2(200); + BEGIN + ose_test.echo(''); + ose_test.echo('-- DEBUG WORKFLOW ETAPE INTERVENANT_ID='|| INTERVENANT_ID ||' --'); + i := etapes.FIRST; + LOOP EXIT WHEN i IS NULL; + /*ose_test.echo( + 'etape=' || RPAD( ose_test.get_wf_etape_by_id(etapes(i).etape_id).code, 30, ' ' ) + || ', structure=' || RPAD( NVL(ose_test.get_structure_by_id(etapes(i).structure_id).libelle_court,' '), 20, ' ' ) + || ', ' || CASE WHEN etapes(i).atteignable=1 THEN 'atteignable' ELSE 'na' END + || ', objectif= ' || ROUND(etapes(i).objectif) + || ', realisation= ' || ROUND(etapes(i).realisation) + );*/ --- EFFECTIFS_HMFK -ALTER TABLE "EFFECTIFS" ADD CONSTRAINT "EFFECTIFS_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + d := deps_bloquantes.FIRST; + LOOP EXIT WHEN d IS NULL; + IF deps_bloquantes(d).tbl_workflow_id = i THEN --- EFFECTIFS_SOURCE_FK -ALTER TABLE "EFFECTIFS" ADD CONSTRAINT "EFFECTIFS_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + SELECT + we.desc_non_franchie INTO dep_desc + FROM + wf_etape_dep wed + JOIN wf_etape we ON we.id = wed.etape_prec_id + WHERE + wed.id = deps_bloquantes(d).wf_etape_dep_id; --- ELEMENT_MODULATEUR_HCFK -ALTER TABLE "ELEMENT_MODULATEUR" ADD CONSTRAINT "ELEMENT_MODULATEUR_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ose_test.echo(' CAUSE =' || dep_desc); + END IF; + d := deps_bloquantes.NEXT(d); + END LOOP; --- ELEMENT_MODULATEUR_HDFK -ALTER TABLE "ELEMENT_MODULATEUR" ADD CONSTRAINT "ELEMENT_MODULATEUR_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + i := etapes.NEXT(i); + END LOOP; + ose_test.echo(''); + END; --- ELEMENT_MODULATEUR_HMFK -ALTER TABLE "ELEMENT_MODULATEUR" ADD CONSTRAINT "ELEMENT_MODULATEUR_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- ELEMENT_PEDAGOGIQUE_ANNEE_FK -ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "ELEMENT_PEDAGOGIQUE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ENABLE; --- ELEMENT_PEDAGOGIQUE_ETAPE_FK -ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "ELEMENT_PEDAGOGIQUE_ETAPE_FK" FOREIGN KEY ("ETAPE_ID") - REFERENCES "ETAPE" ("ID") ENABLE; + -- calcul du workflow pour un intervenant + PROCEDURE CALCULER( INTERVENANT_ID NUMERIC ) IS + BEGIN + set_intervenant(intervenant_id); + POPULATE_ETAPES( INTERVENANT_ID ); + POPULATE_DEPS( INTERVENANT_ID ); + CALCUL_ATTEIGNABLES; + IF OSE_TEST.DEBUG_ENABLED THEN + DEBUG_CALCUL( INTERVENANT_ID ); + END IF; + ENREGISTRER( INTERVENANT_ID ); + set_intervenant(); + END; --- ELEMENT_PEDAGOGIQUE_HCFK -ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "ELEMENT_PEDAGOGIQUE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- ELEMENT_PEDAGOGIQUE_HDFK -ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "ELEMENT_PEDAGOGIQUE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- ELEMENT_PEDAGOGIQUE_HMFK -ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "ELEMENT_PEDAGOGIQUE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE CALCULER_TOUT( ANNEE_ID NUMERIC DEFAULT NULL ) IS + BEGIN + FOR mp IN ( + SELECT + id intervenant_id + FROM + intervenant i + WHERE + i.histo_destruction IS NULL + AND (CALCULER_TOUT.ANNEE_ID IS NULL OR i.annee_id = CALCULER_TOUT.ANNEE_ID) + ) + LOOP + CALCULER( mp.intervenant_id ); + END LOOP; + END; --- ELEMENT_PEDAGOGIQUE_PERIODE_FK -ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "ELEMENT_PEDAGOGIQUE_PERIODE_FK" FOREIGN KEY ("PERIODE_ID") - REFERENCES "PERIODE" ("ID") ENABLE; --- ELEMENT_PEDAGOGIQUE_SOURCE_FK -ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "ELEMENT_PEDAGOGIQUE_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; --- ELEMENT_TAUX_REGIMES_HCFK -ALTER TABLE "ELEMENT_TAUX_REGIMES" ADD CONSTRAINT "ELEMENT_TAUX_REGIMES_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE CALCULER_TBL( PARAMS UNICAEN_TBL.T_PARAMS ) IS + intervenant_id NUMERIC; + TYPE r_cursor IS REF CURSOR; + diff_cur r_cursor; + BEGIN + OPEN diff_cur FOR 'WITH interv AS (SELECT id intervenant_id, intervenant.* FROM intervenant) + SELECT intervenant_id FROM interv WHERE ' || unicaen_tbl.PARAMS_TO_CONDS( params ); + LOOP + FETCH diff_cur INTO intervenant_id; EXIT WHEN diff_cur%NOTFOUND; + BEGIN + CALCULER( intervenant_id ); + END; + END LOOP; + CLOSE diff_cur; + END; --- ELEMENT_TAUX_REGIMES_HDFK -ALTER TABLE "ELEMENT_TAUX_REGIMES" ADD CONSTRAINT "ELEMENT_TAUX_REGIMES_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- ELEMENT_TAUX_REGIMES_HMFK -ALTER TABLE "ELEMENT_TAUX_REGIMES" ADD CONSTRAINT "ELEMENT_TAUX_REGIMES_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- EM_ELEMENT_PEDAGOGIQUE_FK -ALTER TABLE "ELEMENT_MODULATEUR" ADD CONSTRAINT "EM_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_ID") - REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION GET_INTERVENANT RETURN NUMERIC IS + BEGIN + RETURN OSE_WORKFLOW.INTERVENANT_ID; + END; --- EM_MODULATEUR_FK -ALTER TABLE "ELEMENT_MODULATEUR" ADD CONSTRAINT "EM_MODULATEUR_FK" FOREIGN KEY ("MODULATEUR_ID") - REFERENCES "MODULATEUR" ("ID") ENABLE; + PROCEDURE SET_INTERVENANT( INTERVENANT_ID NUMERIC DEFAULT NULL) IS + BEGIN + IF SET_INTERVENANT.INTERVENANT_ID = -1 THEN + OSE_WORKFLOW.INTERVENANT_ID := NULL; + ELSE + OSE_WORKFLOW.INTERVENANT_ID := SET_INTERVENANT.INTERVENANT_ID; + END IF; + END; --- EPS_FK -ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "EPS_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; + FUNCTION MATCH_INTERVENANT(INTERVENANT_ID NUMERIC DEFAULT NULL) RETURN NUMERIC IS + BEGIN + IF OSE_WORKFLOW.INTERVENANT_ID IS NULL OR OSE_WORKFLOW.INTERVENANT_ID = MATCH_INTERVENANT.INTERVENANT_ID THEN + RETURN 1; + ELSE + RETURN 0; + END IF; + END; +END OSE_WORKFLOW; +/ --- EP_DISCIPLINE_FK -ALTER TABLE "ELEMENT_PEDAGOGIQUE" ADD CONSTRAINT "EP_DISCIPLINE_FK" FOREIGN KEY ("DISCIPLINE_ID") - REFERENCES "DISCIPLINE" ("ID") ENABLE; +-- UNICAEN_IMPORT +CREATE OR REPLACE PACKAGE BODY "UNICAEN_IMPORT" AS --- ETABLISSEMENT_HCFK -ALTER TABLE "ETABLISSEMENT" ADD CONSTRAINT "ETABLISSEMENT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + v_current_user INTEGER; + v_current_annee INTEGER; --- ETABLISSEMENT_HDFK -ALTER TABLE "ETABLISSEMENT" ADD CONSTRAINT "ETABLISSEMENT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- ETABLISSEMENT_HMFK -ALTER TABLE "ETABLISSEMENT" ADD CONSTRAINT "ETABLISSEMENT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- ETABLISSEMENT_SOURCE_FK -ALTER TABLE "ETABLISSEMENT" ADD CONSTRAINT "ETABLISSEMENT_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION get_current_user RETURN INTEGER IS + BEGIN + IF v_current_user IS NULL THEN + v_current_user := OSE_PARAMETRE.GET_OSE_USER(); + END IF; + RETURN v_current_user; + END get_current_user; --- ETAPE_ANNEE_FK -ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ENABLE; + PROCEDURE set_current_user (p_current_user INTEGER) is + BEGIN + v_current_user := p_current_user; + END set_current_user; --- ETAPE_DOMAINE_FONCTIONNEL_FK -ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_DOMAINE_FONCTIONNEL_FK" FOREIGN KEY ("DOMAINE_FONCTIONNEL_ID") - REFERENCES "DOMAINE_FONCTIONNEL" ("ID") ENABLE; --- ETAPE_HCFK -ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- ETAPE_HDFK -ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION get_current_annee RETURN INTEGER IS + BEGIN + IF v_current_annee IS NULL THEN + v_current_annee := OSE_PARAMETRE.GET_ANNEE_IMPORT(); + END IF; + RETURN v_current_annee; + END get_current_annee; --- ETAPE_HMFK -ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE set_current_annee (p_current_annee INTEGER) IS + BEGIN + v_current_annee := p_current_annee; + END set_current_annee; --- ETAPE_SOURCE_FK -ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; --- ETAPE_STRUCTURE_FK -ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; --- ETAPE_TYPE_FORMATION_FK -ALTER TABLE "ETAPE" ADD CONSTRAINT "ETAPE_TYPE_FORMATION_FK" FOREIGN KEY ("TYPE_FORMATION_ID") - REFERENCES "TYPE_FORMATION" ("ID") ENABLE; + PROCEDURE SYNCHRONISATION( table_name VARCHAR2, SYNC_FILRE CLOB DEFAULT '', IGNORE_UPD_COLS CLOB DEFAULT '' ) IS + ok NUMERIC(1); + BEGIN + SELECT COUNT(*) INTO ok FROM import_tables it WHERE it.table_name = SYNCHRONISATION.table_name AND it.sync_enabled = 1 AND rownum = 1; --- ETR_ELEMENT_FK -ALTER TABLE "ELEMENT_TAUX_REGIMES" ADD CONSTRAINT "ETR_ELEMENT_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") - REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + IF 1 = ok THEN + z__SYNC_FILRE__z := SYNCHRONISATION.SYNC_FILRE; + z__IGNORE_UPD_COLS__z := SYNCHRONISATION.IGNORE_UPD_COLS; + EXECUTE IMMEDIATE 'BEGIN UNICAEN_IMPORT_AUTOGEN_PROCS__.' || table_name || '(); END;'; + END IF; + END; --- ETR_SOURCE_FK -ALTER TABLE "ELEMENT_TAUX_REGIMES" ADD CONSTRAINT "ETR_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ENABLE; --- FICHIER_HCFK -ALTER TABLE "FICHIER" ADD CONSTRAINT "FICHIER_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- FICHIER_HDFK -ALTER TABLE "FICHIER" ADD CONSTRAINT "FICHIER_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE REFRESH_MV( mview_name varchar2 ) IS + BEGIN + DBMS_MVIEW.REFRESH(mview_name, 'C'); + EXCEPTION WHEN OTHERS THEN + SYNC_LOG( SQLERRM, mview_name ); + END; --- FICHIER_HMFK -ALTER TABLE "FICHIER" ADD CONSTRAINT "FICHIER_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- FICHIER_VALID_FK -ALTER TABLE "FICHIER" ADD CONSTRAINT "FICHIER_VALID_FK" FOREIGN KEY ("VALIDATION_ID") - REFERENCES "VALIDATION" ("ID") ON DELETE SET NULL ENABLE; --- FONCTION_REFERENTIEL_HCFK -ALTER TABLE "FONCTION_REFERENTIEL" ADD CONSTRAINT "FONCTION_REFERENTIEL_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE SYNC_LOG( message CLOB, table_name VARCHAR2 DEFAULT NULL, source_code VARCHAR2 DEFAULT NULL ) IS + BEGIN + INSERT INTO SYNC_LOG("ID","DATE_SYNC","MESSAGE","TABLE_NAME","SOURCE_CODE") VALUES (SYNC_LOG_ID_SEQ.NEXTVAL, SYSDATE, message,table_name,source_code); + END SYNC_LOG; --- FONCTION_REFERENTIEL_HDFK -ALTER TABLE "FONCTION_REFERENTIEL" ADD CONSTRAINT "FONCTION_REFERENTIEL_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- FONCTION_REFERENTIEL_HMFK -ALTER TABLE "FONCTION_REFERENTIEL" ADD CONSTRAINT "FONCTION_REFERENTIEL_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- FONCTION_REFERENTIEL_SFK -ALTER TABLE "FONCTION_REFERENTIEL" ADD CONSTRAINT "FONCTION_REFERENTIEL_SFK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; + FUNCTION IN_COLUMN_LIST( VALEUR VARCHAR2, CHAMPS CLOB ) RETURN NUMERIC IS + BEGIN + IF REGEXP_LIKE(CHAMPS, '(^|,)[ \t\r\n\v\f]*' || VALEUR || '[ \t\r\n\v\f]*(,|$)') THEN RETURN 1; END IF; + RETURN 0; + END; --- FONC_REF_DOMAINE_FONCT_FK -ALTER TABLE "FONCTION_REFERENTIEL" ADD CONSTRAINT "FONC_REF_DOMAINE_FONCT_FK" FOREIGN KEY ("DOMAINE_FONCTIONNEL_ID") - REFERENCES "DOMAINE_FONCTIONNEL" ("ID") ENABLE; +END UNICAEN_IMPORT; +/ --- FRES_ETAT_VOLUME_HORAIRE_FK -ALTER TABLE "FORMULE_RESULTAT" ADD CONSTRAINT "FRES_ETAT_VOLUME_HORAIRE_FK" FOREIGN KEY ("ETAT_VOLUME_HORAIRE_ID") - REFERENCES "ETAT_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; +-- UNICAEN_OSE_FORMULE +CREATE OR REPLACE PACKAGE BODY "UNICAEN_OSE_FORMULE" AS --- FRES_INTERVENANT_FK -ALTER TABLE "FORMULE_RESULTAT" ADD CONSTRAINT "FRES_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + /* Stockage des valeurs intermédiaires */ + TYPE t_valeurs IS TABLE OF FLOAT INDEX BY PLS_INTEGER; + TYPE t_tableau IS RECORD ( + valeurs t_valeurs, + total FLOAT DEFAULT 0 + ); + TYPE t_tableaux IS TABLE OF t_tableau INDEX BY PLS_INTEGER; + t t_tableaux; + current_id PLS_INTEGER; + + /* Accès au stockage des valeurs intermédiaires */ + -- Initialisation des tableaux de valeurs intermédiaires + PROCEDURE V_INIT IS + BEGIN + t.delete; + END; --- FRES_TYPE_VOLUME_HORAIRE_FK -ALTER TABLE "FORMULE_RESULTAT" ADD CONSTRAINT "FRES_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") - REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + -- Setter d'une valeur intermédiaire au niveau case + PROCEDURE SV( tab_index PLS_INTEGER, id PLS_INTEGER, val FLOAT ) IS + BEGIN + t(tab_index).valeurs(id) := val; + t(tab_index).total := t(tab_index).total + val; + END; --- FRR_FORMULE_RESULTAT_FK -ALTER TABLE "FORMULE_RESULTAT_SERVICE_REF" ADD CONSTRAINT "FRR_FORMULE_RESULTAT_FK" FOREIGN KEY ("FORMULE_RESULTAT_ID") - REFERENCES "FORMULE_RESULTAT" ("ID") ON DELETE CASCADE ENABLE; + -- Setter d'une valeur intermédiaire au niveau tableau + PROCEDURE SV( tab_index PLS_INTEGER, val FLOAT ) IS + BEGIN + t(tab_index).total := val; + END; --- FRSR_SERVICE_REFERENTIEL_FK -ALTER TABLE "FORMULE_RESULTAT_SERVICE_REF" ADD CONSTRAINT "FRSR_SERVICE_REFERENTIEL_FK" FOREIGN KEY ("SERVICE_REFERENTIEL_ID") - REFERENCES "SERVICE_REFERENTIEL" ("ID") ON DELETE CASCADE ENABLE; + -- Getter d'une valeur intermédiaire, au niveau case + FUNCTION GV( tab_index PLS_INTEGER, id PLS_INTEGER DEFAULT NULL ) RETURN FLOAT IS + BEGIN + IF NOT t.exists(tab_index) THEN RETURN 0; END IF; + IF NOT t(tab_index).valeurs.exists( NVL(id,current_id) ) THEN RETURN 0; END IF; + RETURN t(tab_index).valeurs( NVL(id,current_id) ); + END; --- FRS_FORMULE_RESULTAT_FK -ALTER TABLE "FORMULE_RESULTAT_SERVICE" ADD CONSTRAINT "FRS_FORMULE_RESULTAT_FK" FOREIGN KEY ("FORMULE_RESULTAT_ID") - REFERENCES "FORMULE_RESULTAT" ("ID") ON DELETE CASCADE ENABLE; + -- Getter d'une valeur intermédiaire, au niveau tableau + FUNCTION GT( tab_index PLS_INTEGER ) RETURN FLOAT IS + BEGIN + IF NOT t.exists(tab_index) THEN RETURN 0; END IF; + RETURN t(tab_index).total; + END; --- FRS_SERVICE_FK -ALTER TABLE "FORMULE_RESULTAT_SERVICE" ADD CONSTRAINT "FRS_SERVICE_FK" FOREIGN KEY ("SERVICE_ID") - REFERENCES "SERVICE" ("ID") ON DELETE CASCADE ENABLE; --- FRVHR_FORMULE_RESULTAT_FK -ALTER TABLE "FORMULE_RESULTAT_VH_REF" ADD CONSTRAINT "FRVHR_FORMULE_RESULTAT_FK" FOREIGN KEY ("FORMULE_RESULTAT_ID") - REFERENCES "FORMULE_RESULTAT" ("ID") ON DELETE CASCADE ENABLE; + /* Débogage des valeurs intermédiaires */ + PROCEDURE DEBUG_TAB( tab_index PLS_INTEGER ) IS + id PLS_INTEGER; + BEGIN + ose_test.echo( 'Tableau numéro ' || tab_index ); --- FRVHR_VOLUME_HORAIRE_REF_FK -ALTER TABLE "FORMULE_RESULTAT_VH_REF" ADD CONSTRAINT "FRVHR_VOLUME_HORAIRE_REF_FK" FOREIGN KEY ("VOLUME_HORAIRE_REF_ID") - REFERENCES "VOLUME_HORAIRE_REF" ("ID") ON DELETE CASCADE ENABLE; + id := ose_formule.d_service.FIRST; + LOOP EXIT WHEN id IS NULL; + dbms_output.put( 'Service id=' || lpad(id,6,' ') || ', data = ' ); --- FRVH_FORMULE_RESULTAT_FK -ALTER TABLE "FORMULE_RESULTAT_VH" ADD CONSTRAINT "FRVH_FORMULE_RESULTAT_FK" FOREIGN KEY ("FORMULE_RESULTAT_ID") - REFERENCES "FORMULE_RESULTAT" ("ID") ON DELETE CASCADE ENABLE; + current_id := ose_formule.d_volume_horaire.FIRST; + LOOP EXIT WHEN current_id IS NULL; + dbms_output.put( lpad(gv(tab_index),10,' ') || ' | ' ); + current_id := ose_formule.d_volume_horaire.NEXT(current_id); + END LOOP; + dbms_output.new_line; + id := ose_formule.d_service.NEXT(id); + END LOOP; --- FRVH_VOLUME_HORAIRE_FK -ALTER TABLE "FORMULE_RESULTAT_VH" ADD CONSTRAINT "FRVH_VOLUME_HORAIRE_FK" FOREIGN KEY ("VOLUME_HORAIRE_ID") - REFERENCES "VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + ose_test.echo( 'TOTAL = ' || LPAD(gt(tab_index), 10, ' ') ); + END; --- GRADE_CORPS_FK -ALTER TABLE "GRADE" ADD CONSTRAINT "GRADE_CORPS_FK" FOREIGN KEY ("CORPS_ID") - REFERENCES "CORPS" ("ID") ENABLE; --- GRADE_HCFK -ALTER TABLE "GRADE" ADD CONSTRAINT "GRADE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- GRADE_HDFK -ALTER TABLE "GRADE" ADD CONSTRAINT "GRADE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + /* Calcul des valeurs intermédiaires */ + FUNCTION C2_11( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- GRADE_HMFK -ALTER TABLE "GRADE" ADD CONSTRAINT "GRADE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF NVL(s.structure_ens_id,0) = NVL(s.structure_aff_id,0) AND s.taux_fc < 1 THEN + RETURN vh.heures; + ELSE + RETURN 0; + END IF; + END; --- GRADE_SOURCE_FK -ALTER TABLE "GRADE" ADD CONSTRAINT "GRADE_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ENABLE; + FUNCTION C3_11( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- GROUPE_ELEMENT_PEDAGOGIQUE_FK -ALTER TABLE "GROUPE" ADD CONSTRAINT "GROUPE_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") - REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + IF NVL(s.structure_ens_id,0) = NVL(s.structure_aff_id,0) THEN + RETURN vh.heures * (s.taux_fi + s.taux_fa); + ELSE + RETURN 0; + END IF; + END; --- GROUPE_HCFK -ALTER TABLE "GROUPE" ADD CONSTRAINT "GROUPE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_12( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- GROUPE_HDFK -ALTER TABLE "GROUPE" ADD CONSTRAINT "GROUPE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF NVL(s.structure_ens_id,0) <> NVL(s.structure_aff_id,0) AND s.taux_fc < 1 THEN + RETURN vh.heures; + ELSE + RETURN 0; + END IF; + END; --- GROUPE_HMFK -ALTER TABLE "GROUPE" ADD CONSTRAINT "GROUPE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C3_12( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- GROUPE_TYPE_FORMATION_HCFK -ALTER TABLE "GROUPE_TYPE_FORMATION" ADD CONSTRAINT "GROUPE_TYPE_FORMATION_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF NVL(s.structure_ens_id,0) <> NVL(s.structure_aff_id,0) THEN + RETURN vh.heures * (s.taux_fi + s.taux_fa); + ELSE + RETURN 0; + END IF; + END; --- GROUPE_TYPE_FORMATION_HDFK -ALTER TABLE "GROUPE_TYPE_FORMATION" ADD CONSTRAINT "GROUPE_TYPE_FORMATION_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_13( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- GROUPE_TYPE_FORMATION_HMFK -ALTER TABLE "GROUPE_TYPE_FORMATION" ADD CONSTRAINT "GROUPE_TYPE_FORMATION_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF NVL(s.structure_ens_id,0) = NVL(s.structure_aff_id,0) AND s.taux_fc = 1 THEN + RETURN vh.heures; + ELSE + RETURN 0; + END IF; + END; --- GROUPE_TYPE_INTERVENTION_FK -ALTER TABLE "GROUPE" ADD CONSTRAINT "GROUPE_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") - REFERENCES "TYPE_INTERVENTION" ("ID") ENABLE; + FUNCTION C3_13( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- GTYPE_FORMATION_SOURCE_FK -ALTER TABLE "GROUPE_TYPE_FORMATION" ADD CONSTRAINT "GTYPE_FORMATION_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + IF NVL(s.structure_ens_id,0) = NVL(s.structure_aff_id,0) THEN + RETURN vh.heures * s.taux_fc; + ELSE + RETURN 0; + END IF; + END; --- HSM_INTERVENANT_FK -ALTER TABLE "HISTO_INTERVENANT_SERVICE" ADD CONSTRAINT "HSM_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_14( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- HSM_TYPE_VOLUME_HORAIRE_FK -ALTER TABLE "HISTO_INTERVENANT_SERVICE" ADD CONSTRAINT "HSM_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") - REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + IF NVL(s.structure_ens_id,0) <> NVL(s.structure_aff_id,0) AND s.taux_fc = 1 THEN + RETURN vh.heures; + ELSE + RETURN 0; + END IF; + END; --- HSM_UTILISATEUR_FK -ALTER TABLE "HISTO_INTERVENANT_SERVICE" ADD CONSTRAINT "HSM_UTILISATEUR_FK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C3_14( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- INDIC_MODIF_DOSSIER_HCFK -ALTER TABLE "INDIC_MODIF_DOSSIER" ADD CONSTRAINT "INDIC_MODIF_DOSSIER_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF NVL(s.structure_ens_id,0) <> NVL(s.structure_aff_id,0) THEN + RETURN vh.heures * s.taux_fc; + ELSE + RETURN 0; + END IF; + END; --- INDIC_MODIF_DOSSIER_HDFK -ALTER TABLE "INDIC_MODIF_DOSSIER" ADD CONSTRAINT "INDIC_MODIF_DOSSIER_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_15( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + f ose_formule.t_service_ref; + BEGIN + f := ose_formule.d_service_ref( fr.service_referentiel_id ); --- INDIC_MODIF_DOSSIER_HMFK -ALTER TABLE "INDIC_MODIF_DOSSIER" ADD CONSTRAINT "INDIC_MODIF_DOSSIER_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF NVL(ose_formule.d_intervenant.structure_id,0) = NVL(f.structure_id,0) THEN + RETURN fr.heures; + ELSE + RETURN 0; + END IF; + END; --- INTERVENANTS_CIVILITES_FK -ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANTS_CIVILITES_FK" FOREIGN KEY ("CIVILITE_ID") - REFERENCES "CIVILITE" ("ID") ENABLE; + FUNCTION C2_16( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + f ose_formule.t_service_ref; + BEGIN + f := ose_formule.d_service_ref( fr.service_referentiel_id ); --- INTERVENANT_ANNEE_FK -ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ENABLE; + IF NVL(ose_formule.d_intervenant.structure_id,0) <> NVL(f.structure_id,0) AND NVL(f.structure_id,0) <> ose_divers.STRUCTURE_UNIV_GET_ID THEN + RETURN fr.heures; + ELSE + RETURN 0; + END IF; + END; --- INTERVENANT_DEPARTEMENT_FK -ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_DEPARTEMENT_FK" FOREIGN KEY ("DEP_NAISSANCE_ID") - REFERENCES "DEPARTEMENT" ("ID") ENABLE; + FUNCTION C2_17( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + f ose_formule.t_service_ref; + BEGIN + f := ose_formule.d_service_ref( fr.service_referentiel_id ); --- INTERVENANT_DISCIPLINE_FK -ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_DISCIPLINE_FK" FOREIGN KEY ("DISCIPLINE_ID") - REFERENCES "DISCIPLINE" ("ID") ENABLE; + IF NVL(f.structure_id,0) = ose_divers.STRUCTURE_UNIV_GET_ID THEN + RETURN fr.heures; + ELSE + RETURN 0; + END IF; + END; + + FUNCTION C2_21( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + RETURN gv(11) * vh.taux_service_du; + END; --- INTERVENANT_GRADE_FK -ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_GRADE_FK" FOREIGN KEY ("GRADE_ID") - REFERENCES "GRADE" ("ID") ENABLE; + FUNCTION C2_22( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + RETURN gv(12) * vh.taux_service_du; + END; --- INTERVENANT_HCFK -ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_23( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + RETURN gv(13) * vh.taux_service_du; + END; --- INTERVENANT_HDFK -ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_24( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + RETURN gv(14) * vh.taux_service_du; + END; --- INTERVENANT_HMFK -ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_25( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + RETURN gv(15); + END; --- INTERVENANT_PAYS_NAISS_FK -ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_PAYS_NAISS_FK" FOREIGN KEY ("PAYS_NAISSANCE_ID") - REFERENCES "PAYS" ("ID") ENABLE; + FUNCTION C2_26( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + RETURN gv(16); + END; --- INTERVENANT_PAYS_NAT_FK -ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_PAYS_NAT_FK" FOREIGN KEY ("PAYS_NATIONALITE_ID") - REFERENCES "PAYS" ("ID") ENABLE; + FUNCTION C2_27( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + RETURN gv(17); + END; --- INTERVENANT_SAISIE_INTERV_FK -ALTER TABLE "INTERVENANT_SAISIE" ADD CONSTRAINT "INTERVENANT_SAISIE_INTERV_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_31 RETURN FLOAT IS + BEGIN + RETURN GREATEST( ose_formule.d_resultat.service_du - gt(21), 0 ); + END; --- INTERVENANT_SOURCE_FK -ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_32 RETURN FLOAT IS + BEGIN + RETURN GREATEST( gt(31) - gt(22), 0 ); + END; --- INTERVENANT_STATUT_FK -ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_STATUT_FK" FOREIGN KEY ("STATUT_ID") - REFERENCES "STATUT_INTERVENANT" ("ID") ENABLE; + FUNCTION C2_33 RETURN FLOAT IS + BEGIN + RETURN GREATEST( gt(32) - gt(23), 0 ); + END; --- INTERVENANT_STRUCTURE_FK -ALTER TABLE "INTERVENANT" ADD CONSTRAINT "INTERVENANT_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; + FUNCTION C2_34 RETURN FLOAT IS + BEGIN + RETURN GREATEST( gt(33) - gt(24), 0 ); + END; --- IS_STATUT_INTERVENANT_FK -ALTER TABLE "INTERVENANT_SAISIE" ADD CONSTRAINT "IS_STATUT_INTERVENANT_FK" FOREIGN KEY ("STATUT_ID") - REFERENCES "STATUT_INTERVENANT" ("ID") ENABLE; + FUNCTION C2_35 RETURN FLOAT IS + BEGIN + RETURN GREATEST( gt(34) - gt(25), 0 ); + END; --- LIEN_HCFK -ALTER TABLE "LIEN" ADD CONSTRAINT "LIEN_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_36 RETURN FLOAT IS + BEGIN + RETURN GREATEST( gt(35) - gt(26), 0 ); + END; --- LIEN_HDFK -ALTER TABLE "LIEN" ADD CONSTRAINT "LIEN_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_37 RETURN FLOAT IS + BEGIN + RETURN GREATEST( gt(36) - gt(27), 0 ); + END; --- LIEN_HMFK -ALTER TABLE "LIEN" ADD CONSTRAINT "LIEN_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_41( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + IF gt(21) <> 0 THEN + RETURN gv(21) / gt(21); + ELSE + RETURN 0; + END IF; + END; --- LIEN_NOEUD_INF_FK -ALTER TABLE "LIEN" ADD CONSTRAINT "LIEN_NOEUD_INF_FK" FOREIGN KEY ("NOEUD_INF_ID") - REFERENCES "NOEUD" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_42( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + IF gt(22) <> 0 THEN + RETURN gv(22) / gt(22); + ELSE + RETURN 0; + END IF; + END; --- LIEN_NOEUD_SUP_FK -ALTER TABLE "LIEN" ADD CONSTRAINT "LIEN_NOEUD_SUP_FK" FOREIGN KEY ("NOEUD_SUP_ID") - REFERENCES "NOEUD" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_43( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + IF gt(23) <> 0 THEN + RETURN gv(23) / gt(23); + ELSE + RETURN 0; + END IF; + END; --- LIEN_SOURCE_FK -ALTER TABLE "LIEN" ADD CONSTRAINT "LIEN_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ENABLE; + FUNCTION C2_44( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + IF gt(24) <> 0 THEN + RETURN gv(24) / gt(24); + ELSE + RETURN 0; + END IF; + END; --- LIEN_STRUCTURE_FK -ALTER TABLE "LIEN" ADD CONSTRAINT "LIEN_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; + FUNCTION C2_45( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + IF gt(25) <> 0 THEN + RETURN gv(25) / gt(25); + ELSE + RETURN 0; + END IF; + END; --- MEP_CENTRE_COUT_FK -ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MEP_CENTRE_COUT_FK" FOREIGN KEY ("CENTRE_COUT_ID") - REFERENCES "CENTRE_COUT" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_46( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + IF gt(26) <> 0 THEN + RETURN gv(26) / gt(26); + ELSE + RETURN 0; + END IF; + END; --- MEP_DOMAINE_FONCTIONNEL_FK -ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MEP_DOMAINE_FONCTIONNEL_FK" FOREIGN KEY ("DOMAINE_FONCTIONNEL_ID") - REFERENCES "DOMAINE_FONCTIONNEL" ("ID") ENABLE; + FUNCTION C2_47( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + IF gt(27) <> 0 THEN + RETURN gv(27) / gt(27); + ELSE + RETURN 0; + END IF; + END; --- MEP_FR_SERVICE_FK -ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MEP_FR_SERVICE_FK" FOREIGN KEY ("FORMULE_RES_SERVICE_ID") - REFERENCES "FORMULE_RESULTAT_SERVICE" ("ID") ENABLE; + FUNCTION C2_51( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + RETURN LEAST( ose_formule.d_resultat.service_du, gt(21) ) * gv(41); + END; --- MEP_FR_SERVICE_REF_FK -ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MEP_FR_SERVICE_REF_FK" FOREIGN KEY ("FORMULE_RES_SERVICE_REF_ID") - REFERENCES "FORMULE_RESULTAT_SERVICE_REF" ("ID") ENABLE; + FUNCTION C2_52( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + RETURN LEAST( gt(31), gt(22) ) * gv(42); + END; --- MEP_TYPE_HEURES_FK -ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MEP_TYPE_HEURES_FK" FOREIGN KEY ("TYPE_HEURES_ID") - REFERENCES "TYPE_HEURES" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_53( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + RETURN LEAST( gt(32), gt(23) ) * gv(43); + END; --- MISE_EN_PAIEMENT_HCFK -ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MISE_EN_PAIEMENT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_54( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + RETURN LEAST( gt(33), gt(24) ) * gv(44); + END; --- MISE_EN_PAIEMENT_HDFK -ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MISE_EN_PAIEMENT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_55( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + RETURN LEAST( gt(34), gt(25) ) * gv(45); + END; --- MISE_EN_PAIEMENT_HMFK -ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MISE_EN_PAIEMENT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_56( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + RETURN LEAST( gt(35), gt(26) ) * gv(46); + END; --- MISE_EN_PAIEMENT_PERIODE_FK -ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MISE_EN_PAIEMENT_PERIODE_FK" FOREIGN KEY ("PERIODE_PAIEMENT_ID") - REFERENCES "PERIODE" ("ID") ENABLE; + FUNCTION C2_57( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + RETURN LEAST( gt(36), gt(27) ) * gv(47); + END; --- MISE_EN_PAIEMENT_VALIDATION_FK -ALTER TABLE "MISE_EN_PAIEMENT" ADD CONSTRAINT "MISE_EN_PAIEMENT_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") - REFERENCES "VALIDATION" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_61( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- MODIFICATION_SERVICE_DU_HCFK -ALTER TABLE "MODIFICATION_SERVICE_DU" ADD CONSTRAINT "MODIFICATION_SERVICE_DU_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + RETURN gv(51) * s.taux_fi; + END; --- MODIFICATION_SERVICE_DU_HDFK -ALTER TABLE "MODIFICATION_SERVICE_DU" ADD CONSTRAINT "MODIFICATION_SERVICE_DU_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C3_61( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- MODIFICATION_SERVICE_DU_HMFK -ALTER TABLE "MODIFICATION_SERVICE_DU" ADD CONSTRAINT "MODIFICATION_SERVICE_DU_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF s.taux_fi + s.taux_fa > 0 THEN + RETURN gv(51) / (s.taux_fi + s.taux_fa) * s.taux_fi; + ELSE + RETURN 0; + END IF; + END; --- MODULATEUR_HCFK -ALTER TABLE "MODULATEUR" ADD CONSTRAINT "MODULATEUR_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_62( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- MODULATEUR_HDFK -ALTER TABLE "MODULATEUR" ADD CONSTRAINT "MODULATEUR_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + RETURN gv(52) * s.taux_fi; + END; --- MODULATEUR_HMFK -ALTER TABLE "MODULATEUR" ADD CONSTRAINT "MODULATEUR_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C3_62( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- MODULATEUR_TYPE_MODULATEUR_FK -ALTER TABLE "MODULATEUR" ADD CONSTRAINT "MODULATEUR_TYPE_MODULATEUR_FK" FOREIGN KEY ("TYPE_MODULATEUR_ID") - REFERENCES "TYPE_MODULATEUR" ("ID") ON DELETE CASCADE ENABLE; + IF s.taux_fi + s.taux_fa > 0 THEN + RETURN gv(52) / (s.taux_fi + s.taux_fa) * s.taux_fi; + ELSE + RETURN 0; + END IF; + END; --- MOTIF_MODIFICATION_SERVIC_HCFK -ALTER TABLE "MOTIF_MODIFICATION_SERVICE" ADD CONSTRAINT "MOTIF_MODIFICATION_SERVIC_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_71( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- MOTIF_MODIFICATION_SERVIC_HDFK -ALTER TABLE "MOTIF_MODIFICATION_SERVICE" ADD CONSTRAINT "MOTIF_MODIFICATION_SERVIC_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + RETURN gv(51) * s.taux_fa; + END; --- MOTIF_MODIFICATION_SERVIC_HMFK -ALTER TABLE "MOTIF_MODIFICATION_SERVICE" ADD CONSTRAINT "MOTIF_MODIFICATION_SERVIC_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C3_71( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- MOTIF_NON_PAIEMENT_HCFK -ALTER TABLE "MOTIF_NON_PAIEMENT" ADD CONSTRAINT "MOTIF_NON_PAIEMENT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF s.taux_fi + s.taux_fa > 0 THEN + RETURN gv(51) / (s.taux_fi + s.taux_fa) * s.taux_fa; + ELSE + RETURN 0; + END IF; + END; --- MOTIF_NON_PAIEMENT_HDFK -ALTER TABLE "MOTIF_NON_PAIEMENT" ADD CONSTRAINT "MOTIF_NON_PAIEMENT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_72( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- MOTIF_NON_PAIEMENT_HMFK -ALTER TABLE "MOTIF_NON_PAIEMENT" ADD CONSTRAINT "MOTIF_NON_PAIEMENT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + RETURN gv(52) * s.taux_fa; + END; --- MSD_INTERVENANT_FK -ALTER TABLE "MODIFICATION_SERVICE_DU" ADD CONSTRAINT "MSD_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C3_72( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- NOEUD_ANNEE_FK -ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ENABLE; + IF s.taux_fi + s.taux_fa > 0 THEN + RETURN gv(52) / (s.taux_fi + s.taux_fa) * s.taux_fa; + ELSE + RETURN 0; + END IF; + END; --- NOEUD_ELEMENT_PEDAGOGIQUE_FK -ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") - REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_81( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- NOEUD_ETAPE_FK -ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_ETAPE_FK" FOREIGN KEY ("ETAPE_ID") - REFERENCES "ETAPE" ("ID") ON DELETE CASCADE ENABLE; + RETURN gv(51) * s.taux_fc; + END; --- NOEUD_HCFK -ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_82( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- NOEUD_HDFK -ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + RETURN gv(52) * s.taux_fc; + END; --- NOEUD_HMFK -ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_83( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- NOEUD_SOURCE_FK -ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ENABLE; + RETURN gv(53) * s.taux_fc; + END; --- NOEUD_STRUCTURE_FK -ALTER TABLE "NOEUD" ADD CONSTRAINT "NOEUD_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; + FUNCTION C3_83( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + RETURN gv(53); + END; --- NOTIF_INDICATEUR_IFK -ALTER TABLE "NOTIFICATION_INDICATEUR" ADD CONSTRAINT "NOTIF_INDICATEUR_IFK" FOREIGN KEY ("INDICATEUR_ID") - REFERENCES "INDICATEUR" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_84( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- PARAMETRE_HCFK -ALTER TABLE "PARAMETRE" ADD CONSTRAINT "PARAMETRE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + RETURN gv(54) * s.taux_fc; + END; --- PARAMETRE_HDFK -ALTER TABLE "PARAMETRE" ADD CONSTRAINT "PARAMETRE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C3_84( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + RETURN gv(54); + END; --- PARAMETRE_HMFK -ALTER TABLE "PARAMETRE" ADD CONSTRAINT "PARAMETRE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_91( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + IF gv(21) <> 0 THEN + RETURN gv(51) / gv(21); + ELSE + RETURN 0; + END IF; + END; --- PAYS_HCFK -ALTER TABLE "PAYS" ADD CONSTRAINT "PAYS_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_92( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + IF gv(22) <> 0 THEN + RETURN gv(52) / gv(22); + ELSE + RETURN 0; + END IF; + END; --- PAYS_HDFK -ALTER TABLE "PAYS" ADD CONSTRAINT "PAYS_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_93( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + IF gv(23) <> 0 THEN + RETURN gv(53) / gv(23); + ELSE + RETURN 0; + END IF; + END; --- PAYS_HMFK -ALTER TABLE "PAYS" ADD CONSTRAINT "PAYS_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_94( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + IF gv(24) <> 0 THEN + RETURN gv(54) / gv(24); + ELSE + RETURN 0; + END IF; + END; --- PAYS_SOURCE_FK -ALTER TABLE "PAYS" ADD CONSTRAINT "PAYS_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_95( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + IF gv(25) <> 0 THEN + RETURN gv(55) / gv(25); + ELSE + RETURN 0; + END IF; + END; --- PERIODE_HCFK -ALTER TABLE "PERIODE" ADD CONSTRAINT "PERIODE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_96( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + IF gv(26) <> 0 THEN + RETURN gv(56) / gv(26); + ELSE + RETURN 0; + END IF; + END; --- PERIODE_HDFK -ALTER TABLE "PERIODE" ADD CONSTRAINT "PERIODE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_97( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + IF gv(27) <> 0 THEN + RETURN gv(57) / gv(27); + ELSE + RETURN 0; + END IF; + END; --- PERIODE_HMFK -ALTER TABLE "PERIODE" ADD CONSTRAINT "PERIODE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_101( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + IF gt(37) <> 0 THEN + RETURN 0; + ELSE + RETURN 1 - gv(91); + END IF; + END; --- PIECE_JOINTE_FICHIER_FFK -ALTER TABLE "PIECE_JOINTE_FICHIER" ADD CONSTRAINT "PIECE_JOINTE_FICHIER_FFK" FOREIGN KEY ("FICHIER_ID") - REFERENCES "FICHIER" ("ID") ENABLE; + FUNCTION C2_102( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + IF gt(37) <> 0 THEN + RETURN 0; + ELSE + RETURN 1 - gv(92); + END IF; + END; --- PIECE_JOINTE_FICHIER_PJFK -ALTER TABLE "PIECE_JOINTE_FICHIER" ADD CONSTRAINT "PIECE_JOINTE_FICHIER_PJFK" FOREIGN KEY ("PIECE_JOINTE_ID") - REFERENCES "PIECE_JOINTE" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_103( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + IF gt(37) <> 0 THEN + RETURN 0; + ELSE + RETURN 1 - gv(93); + END IF; + END; --- PIECE_JOINTE_HCFK -ALTER TABLE "PIECE_JOINTE" ADD CONSTRAINT "PIECE_JOINTE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_104( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + IF gt(37) <> 0 THEN + RETURN 0; + ELSE + RETURN 1 - gv(94); + END IF; + END; --- PIECE_JOINTE_HDFK -ALTER TABLE "PIECE_JOINTE" ADD CONSTRAINT "PIECE_JOINTE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_105( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + IF gt(37) <> 0 THEN + RETURN 0; + ELSE + RETURN 1 - gv(95); + END IF; + END; --- PIECE_JOINTE_HMFK -ALTER TABLE "PIECE_JOINTE" ADD CONSTRAINT "PIECE_JOINTE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_106( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + IF gt(37) <> 0 THEN + RETURN 0; + ELSE + RETURN 1 - gv(96); + END IF; + END; --- PIECE_JOINTE_INTERVENANT_FK -ALTER TABLE "PIECE_JOINTE" ADD CONSTRAINT "PIECE_JOINTE_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ENABLE; + FUNCTION C2_107( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + IF gt(37) <> 0 THEN + RETURN 0; + ELSE + RETURN 1 - gv(97); + END IF; + END; --- PIECE_JOINTE_VFK -ALTER TABLE "PIECE_JOINTE" ADD CONSTRAINT "PIECE_JOINTE_VFK" FOREIGN KEY ("VALIDATION_ID") - REFERENCES "VALIDATION" ("ID") ON DELETE SET NULL ENABLE; + FUNCTION C2_111( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + RETURN gv(11) * vh.taux_service_compl * gv(101); + END; --- PJ_TYPE_PIECE_JOINTE_FK -ALTER TABLE "PIECE_JOINTE" ADD CONSTRAINT "PJ_TYPE_PIECE_JOINTE_FK" FOREIGN KEY ("TYPE_PIECE_JOINTE_ID") - REFERENCES "TYPE_PIECE_JOINTE" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_112( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + RETURN gv(12) * vh.taux_service_compl * gv(102); + END; --- PLAFONDAPP_ANNEE_DFK -ALTER TABLE "PLAFOND_APPLICATION" ADD CONSTRAINT "PLAFONDAPP_ANNEE_DFK" FOREIGN KEY ("ANNEE_DEBUT_ID") - REFERENCES "ANNEE" ("ID") ENABLE; + FUNCTION C2_113( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + RETURN gv(13) * vh.taux_service_compl * gv(103); + END; --- PLAFONDAPP_ANNEE_FFK -ALTER TABLE "PLAFOND_APPLICATION" ADD CONSTRAINT "PLAFONDAPP_ANNEE_FFK" FOREIGN KEY ("ANNEE_FIN_ID") - REFERENCES "ANNEE" ("ID") ENABLE; + FUNCTION C2_114( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + BEGIN + RETURN gv(14) * vh.taux_service_compl * gv(104); + END; --- PLAFONDAPP_PLAFOND_ETAT_FK -ALTER TABLE "PLAFOND_APPLICATION" ADD CONSTRAINT "PLAFONDAPP_PLAFOND_ETAT_FK" FOREIGN KEY ("PLAFOND_ETAT_ID") - REFERENCES "PLAFOND_ETAT" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_115( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + RETURN gv(15) * gv(105); + END; --- PLAFONDAPP_PLAFOND_FK -ALTER TABLE "PLAFOND_APPLICATION" ADD CONSTRAINT "PLAFONDAPP_PLAFOND_FK" FOREIGN KEY ("PLAFOND_ID") - REFERENCES "PLAFOND" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_116( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + RETURN gv(16) * gv(106); + END; --- PLAFONDAPP_TVH_FK -ALTER TABLE "PLAFOND_APPLICATION" ADD CONSTRAINT "PLAFONDAPP_TVH_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") - REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_117( fr ose_formule.t_volume_horaire_ref ) RETURN FLOAT IS + BEGIN + RETURN gv(17) * gv(107); + END; --- PRIVILEGE_CATEGORIE_FK -ALTER TABLE "PRIVILEGE" ADD CONSTRAINT "PRIVILEGE_CATEGORIE_FK" FOREIGN KEY ("CATEGORIE_ID") - REFERENCES "CATEGORIE_PRIVILEGE" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_123( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- ROLE_HCFK -ALTER TABLE "ROLE" ADD CONSTRAINT "ROLE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF s.taux_fc = 1 THEN + RETURN gv(113) * s.ponderation_service_compl; + ELSE + RETURN gv(113); + END IF; + END; --- ROLE_HDFK -ALTER TABLE "ROLE" ADD CONSTRAINT "ROLE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C3_123( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- ROLE_HMFK -ALTER TABLE "ROLE" ADD CONSTRAINT "ROLE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF s.taux_fc > 0 THEN + RETURN gv(113) * s.ponderation_service_compl; + ELSE + RETURN gv(113); + END IF; + END; --- ROLE_PERIMETRE_FK -ALTER TABLE "ROLE" ADD CONSTRAINT "ROLE_PERIMETRE_FK" FOREIGN KEY ("PERIMETRE_ID") - REFERENCES "PERIMETRE" ("ID") ENABLE; + FUNCTION C2_124( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- ROLE_PRIVILEGE_PRIVILEGE_FK -ALTER TABLE "ROLE_PRIVILEGE" ADD CONSTRAINT "ROLE_PRIVILEGE_PRIVILEGE_FK" FOREIGN KEY ("PRIVILEGE_ID") - REFERENCES "PRIVILEGE" ("ID") ON DELETE CASCADE ENABLE; + IF s.taux_fc = 1 THEN + RETURN gv(114) * s.ponderation_service_compl; + ELSE + RETURN gv(114); + END IF; + END; --- ROLE_PRIVILEGE_ROLE_FK -ALTER TABLE "ROLE_PRIVILEGE" ADD CONSTRAINT "ROLE_PRIVILEGE_ROLE_FK" FOREIGN KEY ("ROLE_ID") - REFERENCES "ROLE" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C3_124( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- RSV_TYPE_INTERVENANT_FK -ALTER TABLE "REGLE_STRUCTURE_VALIDATION" ADD CONSTRAINT "RSV_TYPE_INTERVENANT_FK" FOREIGN KEY ("TYPE_INTERVENANT_ID") - REFERENCES "TYPE_INTERVENANT" ("ID") ENABLE; + IF s.taux_fc > 0 THEN + RETURN gv(114) * s.ponderation_service_compl; + ELSE + RETURN gv(114); + END IF; + END; --- RSV_TYPE_VOLUME_HORAIRE_FK -ALTER TABLE "REGLE_STRUCTURE_VALIDATION" ADD CONSTRAINT "RSV_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") - REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ENABLE; + FUNCTION C2_131( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SCENARIO_HCFK -ALTER TABLE "SCENARIO" ADD CONSTRAINT "SCENARIO_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + RETURN gv(111) * s.taux_fi; + END; --- SCENARIO_HDFK -ALTER TABLE "SCENARIO" ADD CONSTRAINT "SCENARIO_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C3_131( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SCENARIO_HMFK -ALTER TABLE "SCENARIO" ADD CONSTRAINT "SCENARIO_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF s.taux_fi + s.taux_fa > 0 THEN + RETURN gv(111) / (s.taux_fi + s.taux_fa) * s.taux_fi; + ELSE + RETURN 0; + END IF; + END; --- SCENARIO_LIEN_HCFK -ALTER TABLE "SCENARIO_LIEN" ADD CONSTRAINT "SCENARIO_LIEN_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_132( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SCENARIO_LIEN_HDFK -ALTER TABLE "SCENARIO_LIEN" ADD CONSTRAINT "SCENARIO_LIEN_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + RETURN gv(112) * s.taux_fi; + END; --- SCENARIO_LIEN_HMFK -ALTER TABLE "SCENARIO_LIEN" ADD CONSTRAINT "SCENARIO_LIEN_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C3_132( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SCENARIO_LIEN_LIEN_FK -ALTER TABLE "SCENARIO_LIEN" ADD CONSTRAINT "SCENARIO_LIEN_LIEN_FK" FOREIGN KEY ("LIEN_ID") - REFERENCES "LIEN" ("ID") ON DELETE CASCADE ENABLE; + IF s.taux_fi + s.taux_fa > 0 THEN + RETURN gv(112) / (s.taux_fi + s.taux_fa) * s.taux_fi; + ELSE + RETURN 0; + END IF; + END; --- SCENARIO_LIEN_SCENARIO_FK -ALTER TABLE "SCENARIO_LIEN" ADD CONSTRAINT "SCENARIO_LIEN_SCENARIO_FK" FOREIGN KEY ("SCENARIO_ID") - REFERENCES "SCENARIO" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C2_141( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SCENARIO_LIEN_SOURCE_FK -ALTER TABLE "SCENARIO_LIEN" ADD CONSTRAINT "SCENARIO_LIEN_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ENABLE; + RETURN gv(111) * s.taux_fa; + END; --- SCENARIO_NOEUD_HCFK -ALTER TABLE "SCENARIO_NOEUD" ADD CONSTRAINT "SCENARIO_NOEUD_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C3_141( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SCENARIO_NOEUD_HDFK -ALTER TABLE "SCENARIO_NOEUD" ADD CONSTRAINT "SCENARIO_NOEUD_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF s.taux_fi + s.taux_fa > 0 THEN + RETURN gv(111) / (s.taux_fi + s.taux_fa) * s.taux_fa; + ELSE + RETURN 0; + END IF; + END; --- SCENARIO_NOEUD_HMFK -ALTER TABLE "SCENARIO_NOEUD" ADD CONSTRAINT "SCENARIO_NOEUD_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_142( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SCENARIO_NOEUD_NOEUD_FK -ALTER TABLE "SCENARIO_NOEUD" ADD CONSTRAINT "SCENARIO_NOEUD_NOEUD_FK" FOREIGN KEY ("NOEUD_ID") - REFERENCES "NOEUD" ("ID") ON DELETE CASCADE ENABLE; + RETURN gv(112) * s.taux_fa; + END; --- SCENARIO_NOEUD_SCENARIO_FK -ALTER TABLE "SCENARIO_NOEUD" ADD CONSTRAINT "SCENARIO_NOEUD_SCENARIO_FK" FOREIGN KEY ("SCENARIO_ID") - REFERENCES "SCENARIO" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION C3_142( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); + + IF s.taux_fi + s.taux_fa > 0 THEN + RETURN gv(112) / (s.taux_fi + s.taux_fa) * s.taux_fa; + ELSE + RETURN 0; + END IF; + END; --- SCENARIO_NOEUD_SOURCE_FK -ALTER TABLE "SCENARIO_NOEUD" ADD CONSTRAINT "SCENARIO_NOEUD_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ENABLE; + FUNCTION C2_151( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SCENARIO_STRUCTURE_FK -ALTER TABLE "SCENARIO" ADD CONSTRAINT "SCENARIO_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; + RETURN gv(111) * s.taux_fc; + END; --- SERVICE_ELEMENT_PEDAGOGIQUE_FK -ALTER TABLE "SERVICE" ADD CONSTRAINT "SERVICE_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") - REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ENABLE; + FUNCTION C2_152( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SERVICE_ETABLISSEMENT_FK -ALTER TABLE "SERVICE" ADD CONSTRAINT "SERVICE_ETABLISSEMENT_FK" FOREIGN KEY ("ETABLISSEMENT_ID") - REFERENCES "ETABLISSEMENT" ("ID") ENABLE; + RETURN gv(112) * s.taux_fc; + END; --- SERVICE_HCFK -ALTER TABLE "SERVICE" ADD CONSTRAINT "SERVICE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_153( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SERVICE_HDFK -ALTER TABLE "SERVICE" ADD CONSTRAINT "SERVICE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF gv(123) = gv(113) THEN + RETURN gv(113) * s.taux_fc; + ELSE + RETURN 0; + END IF; + END; --- SERVICE_HMFK -ALTER TABLE "SERVICE" ADD CONSTRAINT "SERVICE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C3_153( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SERVICE_INTERVENANT_FK -ALTER TABLE "SERVICE" ADD CONSTRAINT "SERVICE_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ENABLE; + IF gv(123) = gv(113) THEN + RETURN gv(113); + ELSE + RETURN 0; + END IF; + END; --- SERVICE_REFERENTIEL_HCFK -ALTER TABLE "SERVICE_REFERENTIEL" ADD CONSTRAINT "SERVICE_REFERENTIEL_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_154( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SERVICE_REFERENTIEL_HDFK -ALTER TABLE "SERVICE_REFERENTIEL" ADD CONSTRAINT "SERVICE_REFERENTIEL_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF gv(124) = gv(114) THEN + RETURN gv(114) * s.taux_fc; + ELSE + RETURN 0; + END IF; + END; --- SERVICE_REFERENTIEL_HMFK -ALTER TABLE "SERVICE_REFERENTIEL" ADD CONSTRAINT "SERVICE_REFERENTIEL_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C3_154( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SEUIL_CHARGE_ANNEE_FK -ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CHARGE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ENABLE; + IF gv(124) = gv(114) THEN + RETURN gv(114); + ELSE + RETURN 0; + END IF; + END; --- SEUIL_CH_GT_FORMATION_FK -ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CH_GT_FORMATION_FK" FOREIGN KEY ("GROUPE_TYPE_FORMATION_ID") - REFERENCES "GROUPE_TYPE_FORMATION" ("ID") ENABLE; + FUNCTION C2_163( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SEUIL_CH_SCENARIO_FK -ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CH_SCENARIO_FK" FOREIGN KEY ("SCENARIO_ID") - REFERENCES "SCENARIO" ("ID") ENABLE; + IF gv(123) <> gv(113) THEN + RETURN gv(123) * s.taux_fc; + ELSE + RETURN 0; + END IF; + END; --- SEUIL_CH_STRUCTURE_FK -ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CH_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; + FUNCTION C3_163( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SEUIL_CH_TYPE_INTERVENTION_FK -ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CH_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") - REFERENCES "TYPE_INTERVENTION" ("ID") ENABLE; + IF gv(123) <> gv(113) THEN + RETURN gv(123); + ELSE + RETURN 0; + END IF; + END; --- SEUIL_CH_UTILISATEUR_HCFK -ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CH_UTILISATEUR_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C2_164( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SEUIL_CH_UTILISATEUR_HDFK -ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CH_UTILISATEUR_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF gv(124) <> gv(114) THEN + RETURN gv(124) * s.taux_fc; + ELSE + RETURN 0; + END IF; + END; --- SEUIL_CH_UTILISATEUR_HMFK -ALTER TABLE "SEUIL_CHARGE" ADD CONSTRAINT "SEUIL_CH_UTILISATEUR_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FUNCTION C3_164( vh ose_formule.t_volume_horaire ) RETURN FLOAT IS + s ose_formule.t_service; + BEGIN + s := ose_formule.d_service( vh.service_id ); --- SNE_ETAPE_FK -ALTER TABLE "SCENARIO_NOEUD_EFFECTIF" ADD CONSTRAINT "SNE_ETAPE_FK" FOREIGN KEY ("ETAPE_ID") - REFERENCES "ETAPE" ("ID") ENABLE; + IF gv(124) <> gv(114) THEN + RETURN gv(124); + ELSE + RETURN 0; + END IF; + END; --- SNE_SCENARIO_NOEUD_FK -ALTER TABLE "SCENARIO_NOEUD_EFFECTIF" ADD CONSTRAINT "SNE_SCENARIO_NOEUD_FK" FOREIGN KEY ("SCENARIO_NOEUD_ID") - REFERENCES "SCENARIO_NOEUD" ("ID") ON DELETE CASCADE ENABLE; --- SNE_TYPE_HEURES_FK -ALTER TABLE "SCENARIO_NOEUD_EFFECTIF" ADD CONSTRAINT "SNE_TYPE_HEURES_FK" FOREIGN KEY ("TYPE_HEURES_ID") - REFERENCES "TYPE_HEURES" ("ID") ON DELETE CASCADE ENABLE; --- SNS_SCENARIO_NOEUD_FK -ALTER TABLE "SCENARIO_NOEUD_SEUIL" ADD CONSTRAINT "SNS_SCENARIO_NOEUD_FK" FOREIGN KEY ("SCENARIO_NOEUD_ID") - REFERENCES "SCENARIO_NOEUD" ("ID") ON DELETE CASCADE ENABLE; --- SNS_TYPE_INTERVENTION_FK -ALTER TABLE "SCENARIO_NOEUD_SEUIL" ADD CONSTRAINT "SNS_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") - REFERENCES "TYPE_INTERVENTION" ("ID") ON DELETE CASCADE ENABLE; --- SRFR_FK -ALTER TABLE "SERVICE_REFERENTIEL" ADD CONSTRAINT "SRFR_FK" FOREIGN KEY ("FONCTION_ID") - REFERENCES "FONCTION_REFERENTIEL" ("ID") ENABLE; --- SR_INTERVENANT_FK -ALTER TABLE "SERVICE_REFERENTIEL" ADD CONSTRAINT "SR_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; --- SR_STRUCTURE_FK -ALTER TABLE "SERVICE_REFERENTIEL" ADD CONSTRAINT "SR_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; --- STATUT_INTERVENANT_HCFK -ALTER TABLE "STATUT_INTERVENANT" ADD CONSTRAINT "STATUT_INTERVENANT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- STATUT_INTERVENANT_HDFK -ALTER TABLE "STATUT_INTERVENANT" ADD CONSTRAINT "STATUT_INTERVENANT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- STATUT_INTERVENANT_HMFK -ALTER TABLE "STATUT_INTERVENANT" ADD CONSTRAINT "STATUT_INTERVENANT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE CALCUL_RESULTAT_V2( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, ETAT_VOLUME_HORAIRE_ID NUMERIC ) IS + current_tableau PLS_INTEGER; + id PLS_INTEGER; + val FLOAT; + TYPE t_liste_tableaux IS VARRAY (100) OF PLS_INTEGER; + liste_tableaux t_liste_tableaux; + resultat_total FLOAT; + res FLOAT; + vh ose_formule.t_volume_horaire; + vhr ose_formule.t_volume_horaire_ref; + BEGIN + V_INIT; --- STATUT_INTERVENANT_SOURCE_FK -ALTER TABLE "STATUT_INTERVENANT" ADD CONSTRAINT "STATUT_INTERVENANT_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + ose_formule.d_resultat.service_du := CASE + WHEN ose_formule.d_intervenant.depassement_service_du_sans_hc = 1 -- HC traitées comme du service + OR ose_formule.d_intervenant.heures_decharge < 0 -- s'il y a une décharge => aucune HC --- STATUT_INTERVENANT_TYPE_FK -ALTER TABLE "STATUT_INTERVENANT" ADD CONSTRAINT "STATUT_INTERVENANT_TYPE_FK" FOREIGN KEY ("TYPE_INTERVENANT_ID") - REFERENCES "TYPE_INTERVENANT" ("ID") ENABLE; + THEN 9999 + ELSE ose_formule.d_intervenant.heures_service_statutaire + ose_formule.d_intervenant.heures_service_modifie + END; --- STAT_PRIV_PRIVILEGE_FK -ALTER TABLE "STATUT_PRIVILEGE" ADD CONSTRAINT "STAT_PRIV_PRIVILEGE_FK" FOREIGN KEY ("PRIVILEGE_ID") - REFERENCES "PRIVILEGE" ("ID") ON DELETE CASCADE ENABLE; + liste_tableaux := t_liste_tableaux( + 11, 12, 13, 14, 15, 16, 17, + 21, 22, 23, 24, 25, 26, 27, + 31, 32, 33, 34, 35, 36, 37, + 41, 42, 43, 44, 45, 46, 47, + 51, 52, 53, 54, 55, 56, 57, + 61, 62, + 71, 72, + 81, 82, 83, 84, + 91, 92, 93, 94, 95, 96, 97, + 101, 102, 103, 104, 105, 106, 107, + 111, 112, 113, 114, 115, 116, 117, + 123, 124, + 131, 132, + 141, 142, + 151, 152, 153, 154, + 163, 164 + ); --- STAT_PRIV_STATUT_FK -ALTER TABLE "STATUT_PRIVILEGE" ADD CONSTRAINT "STAT_PRIV_STATUT_FK" FOREIGN KEY ("STATUT_ID") - REFERENCES "STATUT_INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + FOR i IN liste_tableaux.FIRST .. liste_tableaux.LAST + LOOP + current_tableau := liste_tableaux(i); --- STRUCTURE_HCFK -ALTER TABLE "STRUCTURE" ADD CONSTRAINT "STRUCTURE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + IF current_tableau IN ( -- calcul pour les volumes horaires des services + 11, 12, 13, 14, + 21, 22, 23, 24, + 41, 42, 43, 44, + 51, 52, 53, 54, + 61, 62, + 71, 72, + 81, 82, 83, 84, + 91, 92, 93, 94, + 101, 102, 103, 104, + 111, 112, 113, 114, + 123, 124, + 131, 132, + 141, 142, + 151, 152, 153, 154, + 163, 164 + ) THEN --- STRUCTURE_HDFK -ALTER TABLE "STRUCTURE" ADD CONSTRAINT "STRUCTURE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + current_id := ose_formule.d_volume_horaire.FIRST; + LOOP EXIT WHEN current_id IS NULL; + vh := ose_formule.d_volume_horaire(current_id); + res := CASE current_tableau + WHEN 11 THEN C2_11 (vh) WHEN 12 THEN C2_12 (vh) WHEN 13 THEN C2_13 (vh) WHEN 14 THEN C2_14 (vh) + WHEN 21 THEN C2_21 (vh) WHEN 22 THEN C2_22 (vh) WHEN 23 THEN C2_23 (vh) WHEN 24 THEN C2_24 (vh) + WHEN 41 THEN C2_41 (vh) WHEN 42 THEN C2_42 (vh) WHEN 43 THEN C2_43 (vh) WHEN 44 THEN C2_44 (vh) + WHEN 51 THEN C2_51 (vh) WHEN 52 THEN C2_52 (vh) WHEN 53 THEN C2_53 (vh) WHEN 54 THEN C2_54 (vh) + WHEN 61 THEN C2_61 (vh) WHEN 62 THEN C2_62 (vh) + WHEN 71 THEN C2_71 (vh) WHEN 72 THEN C2_72 (vh) + WHEN 81 THEN C2_81 (vh) WHEN 82 THEN C2_82 (vh) WHEN 83 THEN C2_83 (vh) WHEN 84 THEN C2_84 (vh) + WHEN 91 THEN C2_91 (vh) WHEN 92 THEN C2_92 (vh) WHEN 93 THEN C2_93 (vh) WHEN 94 THEN C2_94 (vh) + WHEN 101 THEN C2_101 (vh) WHEN 102 THEN C2_102 (vh) WHEN 103 THEN C2_103 (vh) WHEN 104 THEN C2_104 (vh) + WHEN 111 THEN C2_111 (vh) WHEN 112 THEN C2_112 (vh) WHEN 113 THEN C2_113 (vh) WHEN 114 THEN C2_114 (vh) + WHEN 123 THEN C2_123 (vh) WHEN 124 THEN C2_124 (vh) + WHEN 131 THEN C2_131 (vh) WHEN 132 THEN C2_132 (vh) + WHEN 141 THEN C2_141 (vh) WHEN 142 THEN C2_142 (vh) + WHEN 151 THEN C2_151 (vh) WHEN 152 THEN C2_152 (vh) WHEN 153 THEN C2_153 (vh) WHEN 154 THEN C2_154 (vh) + WHEN 163 THEN C2_163 (vh) WHEN 164 THEN C2_164 (vh) + END; + SV( current_tableau, current_id, res ); + current_id := ose_formule.d_volume_horaire.NEXT(current_id); + END LOOP; --- STRUCTURE_HMFK -ALTER TABLE "STRUCTURE" ADD CONSTRAINT "STRUCTURE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ELSIF current_tableau IN ( -- calcul des services restants dus + 31, 32, 33, 34, 35, 36, 37 + ) THEN --- STRUCTURE_SOURCE_FK -ALTER TABLE "STRUCTURE" ADD CONSTRAINT "STRUCTURE_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + res := CASE current_tableau + WHEN 31 THEN C2_31 WHEN 32 THEN C2_32 WHEN 33 THEN C2_33 + WHEN 34 THEN C2_34 WHEN 35 THEN C2_35 WHEN 36 THEN C2_36 + WHEN 37 THEN C2_37 + END; + SV( current_tableau, res ); --- TAS_STATUT_INTERVENANT_FK -ALTER TABLE "TYPE_AGREMENT_STATUT" ADD CONSTRAINT "TAS_STATUT_INTERVENANT_FK" FOREIGN KEY ("STATUT_INTERVENANT_ID") - REFERENCES "STATUT_INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + ELSIF current_tableau IN ( -- tableaux de calcul des volumes horaires référentiels + 15, 16, 17, + 25, 26, 27, + 45, 46, 47, + 55, 56, 57, + 95, 96, 97, + 105, 106, 107, + 115, 116, 117 + ) THEN --- TAS_TYPE_AGREMENT_FK -ALTER TABLE "TYPE_AGREMENT_STATUT" ADD CONSTRAINT "TAS_TYPE_AGREMENT_FK" FOREIGN KEY ("TYPE_AGREMENT_ID") - REFERENCES "TYPE_AGREMENT" ("ID") ON DELETE CASCADE ENABLE; + current_id := ose_formule.d_volume_horaire_ref.FIRST; + LOOP EXIT WHEN current_id IS NULL; + vhr := ose_formule.d_volume_horaire_ref(current_id); + res := CASE current_tableau + WHEN 15 THEN C2_15 (vhr) WHEN 16 THEN C2_16 (vhr) WHEN 17 THEN C2_17 (vhr) + WHEN 25 THEN C2_25 (vhr) WHEN 26 THEN C2_26 (vhr) WHEN 27 THEN C2_27 (vhr) + WHEN 45 THEN C2_45 (vhr) WHEN 46 THEN C2_46 (vhr) WHEN 47 THEN C2_47 (vhr) + WHEN 55 THEN C2_55 (vhr) WHEN 56 THEN C2_56 (vhr) WHEN 57 THEN C2_57 (vhr) + WHEN 95 THEN C2_95 (vhr) WHEN 96 THEN C2_96 (vhr) WHEN 97 THEN C2_97 (vhr) + WHEN 105 THEN C2_105 (vhr) WHEN 106 THEN C2_106 (vhr) WHEN 107 THEN C2_107 (vhr) + WHEN 115 THEN C2_115 (vhr) WHEN 116 THEN C2_116 (vhr) WHEN 117 THEN C2_117 (vhr) + END; + SV(current_tableau, current_id, res); + current_id := ose_formule.d_volume_horaire_ref.NEXT(current_id); + END LOOP; --- TAUX_HORAIRE_HETD_HCFK -ALTER TABLE "TAUX_HORAIRE_HETD" ADD CONSTRAINT "TAUX_HORAIRE_HETD_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + END IF; + END LOOP; --- TAUX_HORAIRE_HETD_HDFK -ALTER TABLE "TAUX_HORAIRE_HETD" ADD CONSTRAINT "TAUX_HORAIRE_HETD_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + resultat_total := gt( 55) + gt( 56) + gt( 57) + + gt( 61) + gt( 62) + + gt( 71) + gt( 72) + + gt( 81) + gt( 82) + gt( 83) + gt( 84) + + gt(115) + gt(116) + gt(117) + + gt(131) + gt(132) + + gt(141) + gt(142) + + gt(151) + gt(152) + gt(153) + gt(154) + + gt(163) + gt(164); --- TAUX_HORAIRE_HETD_HMFK -ALTER TABLE "TAUX_HORAIRE_HETD" ADD CONSTRAINT "TAUX_HORAIRE_HETD_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ose_formule.d_resultat.service_du := CASE + WHEN ose_formule.d_intervenant.depassement_service_du_sans_hc = 1 OR ose_formule.d_intervenant.heures_decharge < 0 + THEN GREATEST(resultat_total, ose_formule.d_intervenant.heures_service_statutaire + ose_formule.d_intervenant.heures_service_modifie) + ELSE ose_formule.d_intervenant.heures_service_statutaire + ose_formule.d_intervenant.heures_service_modifie + END; + ose_formule.d_resultat.solde := resultat_total - ose_formule.d_resultat.service_du; + IF ose_formule.d_resultat.solde >= 0 THEN + ose_formule.d_resultat.sous_service := 0; + ose_formule.d_resultat.heures_compl := ose_formule.d_resultat.solde; + ELSE + ose_formule.d_resultat.sous_service := ose_formule.d_resultat.solde * -1; + ose_formule.d_resultat.heures_compl := 0; + END IF; --- TBCH_ANNEE_FK -ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + -- répartition des résultats par volumes horaires + current_id := ose_formule.d_volume_horaire.FIRST; + LOOP EXIT WHEN current_id IS NULL; + ose_formule.d_resultat.volume_horaire(current_id).service_fi := gv( 61) + gv( 62); + ose_formule.d_resultat.volume_horaire(current_id).service_fa := gv( 71) + gv( 72); + ose_formule.d_resultat.volume_horaire(current_id).service_fc := gv( 81) + gv( 82) + gv( 83) + gv( 84); + ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fi := gv(131) + gv(132); + ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fa := gv(141) + gv(142); + ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fc := gv(151) + gv(152) + gv(153) + gv(154); + ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fc_majorees := gv(163) + gv(164); + current_id := ose_formule.d_volume_horaire.NEXT(current_id); + END LOOP; --- TBCH_ELEMENT_PEDAGOGIQUE_FK -ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") - REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + -- répartition des résultats par volumes horaires référentiel + current_id := ose_formule.d_volume_horaire_ref.FIRST; + LOOP EXIT WHEN current_id IS NULL; + ose_formule.d_resultat.volume_horaire_ref(current_id).service_referentiel := gv(55) + gv(56) + gv(57); + ose_formule.d_resultat.volume_horaire_ref(current_id).heures_compl_referentiel := gv(115) + gv(116) + gv(117); + current_id := ose_formule.d_volume_horaire_ref.NEXT(current_id); + END LOOP; --- TBCH_ETAPE_FK -ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_ETAPE_FK" FOREIGN KEY ("ETAPE_ID") - REFERENCES "ETAPE" ("ID") ON DELETE CASCADE ENABLE; + END; --- TBCH_ETAPE_FKV1 -ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_ETAPE_FKV1" FOREIGN KEY ("ETAPE_ENS_ID") - REFERENCES "ETAPE" ("ID") ON DELETE CASCADE ENABLE; --- TBCH_GROUPE_TYPE_FORMATION_FK -ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_GROUPE_TYPE_FORMATION_FK" FOREIGN KEY ("GROUPE_TYPE_FORMATION_ID") - REFERENCES "GROUPE_TYPE_FORMATION" ("ID") ON DELETE CASCADE ENABLE; --- TBCH_NOEUD_FK -ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_NOEUD_FK" FOREIGN KEY ("NOEUD_ID") - REFERENCES "NOEUD" ("ID") ON DELETE CASCADE ENABLE; --- TBCH_SCENARIO_FK -ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_SCENARIO_FK" FOREIGN KEY ("SCENARIO_ID") - REFERENCES "SCENARIO" ("ID") ON DELETE CASCADE ENABLE; --- TBCH_STRUCTURE_FK -ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; --- TBCH_TYPE_HEURES_FK -ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_TYPE_HEURES_FK" FOREIGN KEY ("TYPE_HEURES_ID") - REFERENCES "TYPE_HEURES" ("ID") ON DELETE CASCADE ENABLE; --- TBCH_TYPE_INTERVENTION_FK -ALTER TABLE "TBL_CHARGENS" ADD CONSTRAINT "TBCH_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") - REFERENCES "TYPE_INTERVENTION" ("ID") ON DELETE CASCADE ENABLE; --- TBL_AGR_AGREMENT_FK -ALTER TABLE "TBL_AGREMENT" ADD CONSTRAINT "TBL_AGR_AGREMENT_FK" FOREIGN KEY ("AGREMENT_ID") - REFERENCES "AGREMENT" ("ID") ON DELETE CASCADE ENABLE; --- TBL_AGR_ANNEE_FK -ALTER TABLE "TBL_AGREMENT" ADD CONSTRAINT "TBL_AGR_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; --- TBL_AGR_INTERVENANT_FK -ALTER TABLE "TBL_AGREMENT" ADD CONSTRAINT "TBL_AGR_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; --- TBL_AGR_STRUCTURE_FK -ALTER TABLE "TBL_AGREMENT" ADD CONSTRAINT "TBL_AGR_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; --- TBL_AGR_TYPE_AGREMENT_FK -ALTER TABLE "TBL_AGREMENT" ADD CONSTRAINT "TBL_AGR_TYPE_AGREMENT_FK" FOREIGN KEY ("TYPE_AGREMENT_ID") - REFERENCES "TYPE_AGREMENT" ("ID") ON DELETE CASCADE ENABLE; --- TBL_CLOTURE_REALISE_ANNEE_FK -ALTER TABLE "TBL_CLOTURE_REALISE" ADD CONSTRAINT "TBL_CLOTURE_REALISE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; --- TBL_CLO_REAL_INTERVENANT_FK -ALTER TABLE "TBL_CLOTURE_REALISE" ADD CONSTRAINT "TBL_CLO_REAL_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + PROCEDURE CALCUL_RESULTAT_V3( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, ETAT_VOLUME_HORAIRE_ID NUMERIC ) IS + current_tableau PLS_INTEGER; + id PLS_INTEGER; + val FLOAT; + TYPE t_liste_tableaux IS VARRAY (100) OF PLS_INTEGER; + liste_tableaux t_liste_tableaux; + resultat_total FLOAT; + res FLOAT; + vh ose_formule.t_volume_horaire; + vhr ose_formule.t_volume_horaire_ref; + BEGIN --- TBL_CONTRAT_ANNEE_FK -ALTER TABLE "TBL_CONTRAT" ADD CONSTRAINT "TBL_CONTRAT_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + -- si l'année est antérieure à 2016/2017 alors on utilise la V2!! + IF ose_formule.d_intervenant.annee_id < 2016 THEN + CALCUL_RESULTAT_V2( INTERVENANT_ID, TYPE_VOLUME_HORAIRE_ID, ETAT_VOLUME_HORAIRE_ID ); + RETURN; + END IF; --- TBL_CONTRAT_INTERVENANT_FK -ALTER TABLE "TBL_CONTRAT" ADD CONSTRAINT "TBL_CONTRAT_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + V_INIT; --- TBL_CONTRAT_STRUCTURE_FK -ALTER TABLE "TBL_CONTRAT" ADD CONSTRAINT "TBL_CONTRAT_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + ose_formule.d_resultat.service_du := CASE + WHEN ose_formule.d_intervenant.depassement_service_du_sans_hc = 1 -- HC traitées comme du service + OR ose_formule.d_intervenant.heures_decharge < 0 -- s'il y a une décharge => aucune HC --- TBL_CSD_ANNEE_FK -ALTER TABLE "TBL_CHARGENS_SEUILS_DEF" ADD CONSTRAINT "TBL_CSD_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ENABLE; + THEN 9999 + ELSE ose_formule.d_intervenant.heures_service_statutaire + ose_formule.d_intervenant.heures_service_modifie + END; --- TBL_CSD_GTF_FK -ALTER TABLE "TBL_CHARGENS_SEUILS_DEF" ADD CONSTRAINT "TBL_CSD_GTF_FK" FOREIGN KEY ("GROUPE_TYPE_FORMATION_ID") - REFERENCES "GROUPE_TYPE_FORMATION" ("ID") ENABLE; + liste_tableaux := t_liste_tableaux( + 11, 12, 13, 14, 15, 16, 17, + 21, 22, 23, 24, 25, 26, 27, + 31, 32, 33, 34, 35, 36, 37, + 41, 42, 43, 44, 45, 46, 47, + 51, 52, 53, 54, 55, 56, 57, + 61, 62, + 71, 72, + 81, 82, 83, 84, + 91, 92, 93, 94, 95, 96, 97, + 101, 102, 103, 104, 105, 106, 107, + 111, 112, 113, 114, 115, 116, 117, + 123, 124, + 131, 132, + 141, 142, + 151, 152, 153, 154, + 163, 164 + ); --- TBL_CSD_SCENARIO_FK -ALTER TABLE "TBL_CHARGENS_SEUILS_DEF" ADD CONSTRAINT "TBL_CSD_SCENARIO_FK" FOREIGN KEY ("SCENARIO_ID") - REFERENCES "SCENARIO" ("ID") ENABLE; + FOR i IN liste_tableaux.FIRST .. liste_tableaux.LAST + LOOP + current_tableau := liste_tableaux(i); --- TBL_CSD_STRUCTURE_FK -ALTER TABLE "TBL_CHARGENS_SEUILS_DEF" ADD CONSTRAINT "TBL_CSD_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; + IF current_tableau IN ( -- calcul pour les volumes horaires des services + 11, 12, 13, 14, + 21, 22, 23, 24, + 41, 42, 43, 44, + 51, 52, 53, 54, + 61, 62, + 71, 72, + 81, 82, 83, 84, + 91, 92, 93, 94, + 101, 102, 103, 104, + 111, 112, 113, 114, + 123, 124, + 131, 132, + 141, 142, + 151, 152, 153, 154, + 163, 164 + ) THEN --- TBL_CSD_TYPE_INTERVENTION_FK -ALTER TABLE "TBL_CHARGENS_SEUILS_DEF" ADD CONSTRAINT "TBL_CSD_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") - REFERENCES "TYPE_INTERVENTION" ("ID") ENABLE; + current_id := ose_formule.d_volume_horaire.FIRST; + LOOP EXIT WHEN current_id IS NULL; + vh := ose_formule.d_volume_horaire(current_id); + res := CASE current_tableau + WHEN 11 THEN C3_11 (vh) WHEN 12 THEN C3_12 (vh) WHEN 13 THEN C3_13 (vh) WHEN 14 THEN C3_14 (vh) + WHEN 21 THEN C2_21 (vh) WHEN 22 THEN C2_22 (vh) WHEN 23 THEN C2_23 (vh) WHEN 24 THEN C2_24 (vh) + WHEN 41 THEN C2_41 (vh) WHEN 42 THEN C2_42 (vh) WHEN 43 THEN C2_43 (vh) WHEN 44 THEN C2_44 (vh) + WHEN 51 THEN C2_51 (vh) WHEN 52 THEN C2_52 (vh) WHEN 53 THEN C2_53 (vh) WHEN 54 THEN C2_54 (vh) + WHEN 61 THEN C3_61 (vh) WHEN 62 THEN C3_62 (vh) + WHEN 71 THEN C3_71 (vh) WHEN 72 THEN C3_72 (vh) + WHEN 83 THEN C3_83 (vh) WHEN 84 THEN C3_84 (vh) + WHEN 91 THEN C2_91 (vh) WHEN 92 THEN C2_92 (vh) WHEN 93 THEN C2_93 (vh) WHEN 94 THEN C2_94 (vh) + WHEN 101 THEN C2_101 (vh) WHEN 102 THEN C2_102 (vh) WHEN 103 THEN C2_103 (vh) WHEN 104 THEN C2_104 (vh) + WHEN 111 THEN C2_111 (vh) WHEN 112 THEN C2_112 (vh) WHEN 113 THEN C2_113 (vh) WHEN 114 THEN C2_114 (vh) + WHEN 123 THEN C3_123 (vh) WHEN 124 THEN C3_124 (vh) + WHEN 131 THEN C3_131 (vh) WHEN 132 THEN C3_132 (vh) + WHEN 141 THEN C3_141 (vh) WHEN 142 THEN C3_142 (vh) + WHEN 153 THEN C3_153 (vh) WHEN 154 THEN C3_154 (vh) + WHEN 163 THEN C3_163 (vh) WHEN 164 THEN C3_164 (vh) + END; + SV( current_tableau, current_id, res ); + current_id := ose_formule.d_volume_horaire.NEXT(current_id); + END LOOP; --- TBL_DEMS_TBL_FK -ALTER TABLE "TBL_DEMS" ADD CONSTRAINT "TBL_DEMS_TBL_FK" FOREIGN KEY ("TBL_NAME") - REFERENCES "TBL" ("TBL_NAME") ON DELETE CASCADE ENABLE; + ELSIF current_tableau IN ( -- calcul des services restants dus + 31, 32, 33, 34, 35, 36, 37 + ) THEN --- TBL_DMLIQ_ANNEE_FK -ALTER TABLE "TBL_DMEP_LIQUIDATION" ADD CONSTRAINT "TBL_DMLIQ_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + res := CASE current_tableau + WHEN 31 THEN C2_31 WHEN 32 THEN C2_32 WHEN 33 THEN C2_33 + WHEN 34 THEN C2_34 WHEN 35 THEN C2_35 WHEN 36 THEN C2_36 + WHEN 37 THEN C2_37 + END; + SV( current_tableau, res ); --- TBL_DMLIQ_STRUCTURE_FK -ALTER TABLE "TBL_DMEP_LIQUIDATION" ADD CONSTRAINT "TBL_DMLIQ_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + ELSIF current_tableau IN ( -- tableaux de calcul des volumes horaires référentiels + 15, 16, 17, + 25, 26, 27, + 45, 46, 47, + 55, 56, 57, + 95, 96, 97, + 105, 106, 107, + 115, 116, 117 + ) THEN --- TBL_DMLIQ_TYPE_RESSOURCE_FK -ALTER TABLE "TBL_DMEP_LIQUIDATION" ADD CONSTRAINT "TBL_DMLIQ_TYPE_RESSOURCE_FK" FOREIGN KEY ("TYPE_RESSOURCE_ID") - REFERENCES "TYPE_RESSOURCE" ("ID") ON DELETE CASCADE ENABLE; + current_id := ose_formule.d_volume_horaire_ref.FIRST; + LOOP EXIT WHEN current_id IS NULL; + vhr := ose_formule.d_volume_horaire_ref(current_id); + res := CASE current_tableau + WHEN 15 THEN C2_15 (vhr) WHEN 16 THEN C2_16 (vhr) WHEN 17 THEN C2_17 (vhr) + WHEN 25 THEN C2_25 (vhr) WHEN 26 THEN C2_26 (vhr) WHEN 27 THEN C2_27 (vhr) + WHEN 45 THEN C2_45 (vhr) WHEN 46 THEN C2_46 (vhr) WHEN 47 THEN C2_47 (vhr) + WHEN 55 THEN C2_55 (vhr) WHEN 56 THEN C2_56 (vhr) WHEN 57 THEN C2_57 (vhr) + WHEN 95 THEN C2_95 (vhr) WHEN 96 THEN C2_96 (vhr) WHEN 97 THEN C2_97 (vhr) + WHEN 105 THEN C2_105 (vhr) WHEN 106 THEN C2_106 (vhr) WHEN 107 THEN C2_107 (vhr) + WHEN 115 THEN C2_115 (vhr) WHEN 116 THEN C2_116 (vhr) WHEN 117 THEN C2_117 (vhr) + END; + SV(current_tableau, current_id, res); + current_id := ose_formule.d_volume_horaire_ref.NEXT(current_id); + END LOOP; --- TBL_DOSSIER_ANNEE_FK -ALTER TABLE "TBL_DOSSIER" ADD CONSTRAINT "TBL_DOSSIER_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + END IF; + END LOOP; --- TBL_DOSSIER_DOSSIER_FK -ALTER TABLE "TBL_DOSSIER" ADD CONSTRAINT "TBL_DOSSIER_DOSSIER_FK" FOREIGN KEY ("DOSSIER_ID") - REFERENCES "DOSSIER" ("ID") ON DELETE CASCADE ENABLE; + resultat_total := gt( 55) + gt( 56) + gt( 57) + + gt( 61) + gt( 62) + + gt( 71) + gt( 72) + + gt( 83) + gt( 84) + + gt(115) + gt(116) + gt(117) + + gt(131) + gt(132) + + gt(141) + gt(142) + + gt(153) + gt(154) + + gt(163) + gt(164); --- TBL_DOSSIER_INTERVENANT_FK -ALTER TABLE "TBL_DOSSIER" ADD CONSTRAINT "TBL_DOSSIER_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + ose_formule.d_resultat.service_du := CASE + WHEN ose_formule.d_intervenant.depassement_service_du_sans_hc = 1 OR ose_formule.d_intervenant.heures_decharge < 0 + THEN GREATEST(resultat_total, ose_formule.d_intervenant.heures_service_statutaire + ose_formule.d_intervenant.heures_service_modifie) + ELSE ose_formule.d_intervenant.heures_service_statutaire + ose_formule.d_intervenant.heures_service_modifie + END; + ose_formule.d_resultat.solde := resultat_total - ose_formule.d_resultat.service_du; + IF ose_formule.d_resultat.solde >= 0 THEN + ose_formule.d_resultat.sous_service := 0; + ose_formule.d_resultat.heures_compl := ose_formule.d_resultat.solde; + ELSE + ose_formule.d_resultat.sous_service := ose_formule.d_resultat.solde * -1; + ose_formule.d_resultat.heures_compl := 0; + END IF; --- TBL_DOSSIER_VALIDATION_FK -ALTER TABLE "TBL_DOSSIER" ADD CONSTRAINT "TBL_DOSSIER_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") - REFERENCES "VALIDATION" ("ID") ON DELETE CASCADE ENABLE; + -- répartition des résultats par volumes horaires + current_id := ose_formule.d_volume_horaire.FIRST; + LOOP EXIT WHEN current_id IS NULL; + ose_formule.d_resultat.volume_horaire(current_id).service_fi := gv( 61) + gv( 62); + ose_formule.d_resultat.volume_horaire(current_id).service_fa := gv( 71) + gv( 72); + ose_formule.d_resultat.volume_horaire(current_id).service_fc := gv( 83) + gv( 84); + ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fi := gv(131) + gv(132); + ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fa := gv(141) + gv(142); + ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fc := gv(153) + gv(154); + ose_formule.d_resultat.volume_horaire(current_id).heures_compl_fc_majorees := gv(163) + gv(164); + current_id := ose_formule.d_volume_horaire.NEXT(current_id); + END LOOP; --- TBL_LIEN_LIEN_FK -ALTER TABLE "TBL_LIEN" ADD CONSTRAINT "TBL_LIEN_LIEN_FK" FOREIGN KEY ("LIEN_ID") - REFERENCES "LIEN" ("ID") ENABLE; + -- répartition des résultats par volumes horaires référentiel + current_id := ose_formule.d_volume_horaire_ref.FIRST; + LOOP EXIT WHEN current_id IS NULL; + ose_formule.d_resultat.volume_horaire_ref(current_id).service_referentiel := gv(55) + gv(56) + gv(57); + ose_formule.d_resultat.volume_horaire_ref(current_id).heures_compl_referentiel := gv(115) + gv(116) + gv(117); + current_id := ose_formule.d_volume_horaire_ref.NEXT(current_id); + END LOOP; --- TBL_LIEN_NOEUD_INF_FK -ALTER TABLE "TBL_LIEN" ADD CONSTRAINT "TBL_LIEN_NOEUD_INF_FK" FOREIGN KEY ("NOEUD_INF_ID") - REFERENCES "NOEUD" ("ID") ENABLE; + END; --- TBL_LIEN_NOEUD_SUP_FK -ALTER TABLE "TBL_LIEN" ADD CONSTRAINT "TBL_LIEN_NOEUD_SUP_FK" FOREIGN KEY ("NOEUD_SUP_ID") - REFERENCES "NOEUD" ("ID") ENABLE; --- TBL_LIEN_SCENARIO_FK -ALTER TABLE "TBL_LIEN" ADD CONSTRAINT "TBL_LIEN_SCENARIO_FK" FOREIGN KEY ("SCENARIO_ID") - REFERENCES "SCENARIO" ("ID") ENABLE; --- TBL_LIEN_SCENARIO_LIEN_FK -ALTER TABLE "TBL_LIEN" ADD CONSTRAINT "TBL_LIEN_SCENARIO_LIEN_FK" FOREIGN KEY ("SCENARIO_LIEN_ID") - REFERENCES "SCENARIO_LIEN" ("ID") ENABLE; --- TBL_LIEN_STRUCTURE_FK -ALTER TABLE "TBL_LIEN" ADD CONSTRAINT "TBL_LIEN_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; --- TBL_PAIEMENT_ANNEE_FK -ALTER TABLE "TBL_PAIEMENT" ADD CONSTRAINT "TBL_PAIEMENT_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; --- TBL_PAIEMENT_FRSR_FK -ALTER TABLE "TBL_PAIEMENT" ADD CONSTRAINT "TBL_PAIEMENT_FRSR_FK" FOREIGN KEY ("FORMULE_RES_SERVICE_REF_ID") - REFERENCES "FORMULE_RESULTAT_SERVICE_REF" ("ID") ON DELETE CASCADE ENABLE; --- TBL_PAIEMENT_FRS_FK -ALTER TABLE "TBL_PAIEMENT" ADD CONSTRAINT "TBL_PAIEMENT_FRS_FK" FOREIGN KEY ("FORMULE_RES_SERVICE_ID") - REFERENCES "FORMULE_RESULTAT_SERVICE" ("ID") ON DELETE CASCADE ENABLE; --- TBL_PAIEMENT_INTERVENANT_FK -ALTER TABLE "TBL_PAIEMENT" ADD CONSTRAINT "TBL_PAIEMENT_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; --- TBL_PAIEMENT_MEP_FK -ALTER TABLE "TBL_PAIEMENT" ADD CONSTRAINT "TBL_PAIEMENT_MEP_FK" FOREIGN KEY ("MISE_EN_PAIEMENT_ID") - REFERENCES "MISE_EN_PAIEMENT" ("ID") ON DELETE CASCADE ENABLE; --- TBL_PAIEMENT_PERIODE_FK -ALTER TABLE "TBL_PAIEMENT" ADD CONSTRAINT "TBL_PAIEMENT_PERIODE_FK" FOREIGN KEY ("PERIODE_PAIEMENT_ID") - REFERENCES "PERIODE" ("ID") ON DELETE CASCADE ENABLE; --- TBL_PAIEMENT_STRUCTURE_FK -ALTER TABLE "TBL_PAIEMENT" ADD CONSTRAINT "TBL_PAIEMENT_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; --- TBL_PIECE_JOINTE_ANNEE_FK -ALTER TABLE "TBL_PIECE_JOINTE" ADD CONSTRAINT "TBL_PIECE_JOINTE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; --- TBL_PJD_ANNEE_FK -ALTER TABLE "TBL_PIECE_JOINTE_DEMANDE" ADD CONSTRAINT "TBL_PJD_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; --- TBL_PJD_INTERVENANT_FK -ALTER TABLE "TBL_PIECE_JOINTE_DEMANDE" ADD CONSTRAINT "TBL_PJD_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; --- TBL_PJD_TYPE_PIECE_JOINTE_FK -ALTER TABLE "TBL_PIECE_JOINTE_DEMANDE" ADD CONSTRAINT "TBL_PJD_TYPE_PIECE_JOINTE_FK" FOREIGN KEY ("TYPE_PIECE_JOINTE_ID") - REFERENCES "TYPE_PIECE_JOINTE" ("ID") ON DELETE CASCADE ENABLE; + PROCEDURE PURGE_EM_NON_FC IS + BEGIN + FOR em IN ( + SELECT + em.id + FROM + ELEMENT_MODULATEUR em + JOIN element_pedagogique ep ON ep.id = em.element_id AND ep.histo_destruction IS NULL + WHERE + em.histo_destruction IS NULL + AND ep.taux_fc < 1 + ) LOOP + UPDATE + element_modulateur + SET + histo_destruction = SYSDATE, + histo_destructeur_id = ose_parametre.get_ose_user + WHERE + id = em.id + ; + END LOOP; + END; --- TBL_PJF_ANNEE_FK -ALTER TABLE "TBL_PIECE_JOINTE_FOURNIE" ADD CONSTRAINT "TBL_PJF_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; +END UNICAEN_OSE_FORMULE; +/ --- TBL_PJF_FICHIER_FK -ALTER TABLE "TBL_PIECE_JOINTE_FOURNIE" ADD CONSTRAINT "TBL_PJF_FICHIER_FK" FOREIGN KEY ("FICHIER_ID") - REFERENCES "FICHIER" ("ID") ON DELETE CASCADE ENABLE; +-- UNICAEN_TBL +CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS --- TBL_PJF_INTERVENANT_FK -ALTER TABLE "TBL_PIECE_JOINTE_FOURNIE" ADD CONSTRAINT "TBL_PJF_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION MAKE_PARAMS( + c1 VARCHAR2 DEFAULT NULL, v1 VARCHAR2 DEFAULT NULL, + c2 VARCHAR2 DEFAULT NULL, v2 VARCHAR2 DEFAULT NULL, + c3 VARCHAR2 DEFAULT NULL, v3 VARCHAR2 DEFAULT NULL, + c4 VARCHAR2 DEFAULT NULL, v4 VARCHAR2 DEFAULT NULL, + c5 VARCHAR2 DEFAULT NULL, v5 VARCHAR2 DEFAULT NULL, + sqlcond CLOB DEFAULT NULL + ) RETURN t_params IS + params t_params; + BEGIN + IF c1 IS NOT NULL THEN + params.c1 := c1; + params.v1 := v1; + END IF; + IF c2 IS NOT NULL THEN + params.c2 := c2; + params.v2 := v2; + END IF; + IF c3 IS NOT NULL THEN + params.c3 := c3; + params.v3 := v3; + END IF; + IF c4 IS NOT NULL THEN + params.c4 := c4; + params.v4 := v4; + END IF; + IF c5 IS NOT NULL THEN + params.c5 := c5; + params.v5 := v5; + END IF; + params.sqlcond := sqlcond; --- TBL_PJF_PIECE_JOINTE_FK -ALTER TABLE "TBL_PIECE_JOINTE_FOURNIE" ADD CONSTRAINT "TBL_PJF_PIECE_JOINTE_FK" FOREIGN KEY ("PIECE_JOINTE_ID") - REFERENCES "PIECE_JOINTE" ("ID") ON DELETE CASCADE ENABLE; + RETURN params; + END; --- TBL_PJF_TYPE_PIECE_JOINTE_FK -ALTER TABLE "TBL_PIECE_JOINTE_FOURNIE" ADD CONSTRAINT "TBL_PJF_TYPE_PIECE_JOINTE_FK" FOREIGN KEY ("TYPE_PIECE_JOINTE_ID") - REFERENCES "TYPE_PIECE_JOINTE" ("ID") ON DELETE CASCADE ENABLE; --- TBL_PJF_VALIDATION_FK -ALTER TABLE "TBL_PIECE_JOINTE_FOURNIE" ADD CONSTRAINT "TBL_PJF_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") - REFERENCES "VALIDATION" ("ID") ON DELETE CASCADE ENABLE; --- TBL_PJ_INTERVENANT_FK -ALTER TABLE "TBL_PIECE_JOINTE" ADD CONSTRAINT "TBL_PJ_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2 ) IS + p t_params; + BEGIN + DEMANDE_CALCUL( tbl_name, p ); + END; --- TBL_PJ_TYPE_PIECE_JOINTE_FK -ALTER TABLE "TBL_PIECE_JOINTE" ADD CONSTRAINT "TBL_PJ_TYPE_PIECE_JOINTE_FK" FOREIGN KEY ("TYPE_PIECE_JOINTE_ID") - REFERENCES "TYPE_PIECE_JOINTE" ("ID") ON DELETE CASCADE ENABLE; --- TBL_SERVICE_ANNEE_FK -ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; --- TBL_SERVICE_ELEMENT_FK -ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_ELEMENT_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") - REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2, CONDS CLOB ) IS + p t_params; + BEGIN + p.sqlcond := CONDS; + DEMANDE_CALCUL( tbl_name, p ); + END; --- TBL_SERVICE_ETAPE_FK -ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_ETAPE_FK" FOREIGN KEY ("ETAPE_ID") - REFERENCES "ETAPE" ("ID") ON DELETE CASCADE ENABLE; --- TBL_SERVICE_INTERVENANT_FK -ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; --- TBL_SERVICE_PERIODE_EP_FK -ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_PERIODE_EP_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_PERIODE_ID") - REFERENCES "PERIODE" ("ID") ON DELETE CASCADE ENABLE; + PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2, PARAMS t_params ) IS + BEGIN + INSERT INTO tbl_dems ( + ID, + TBL_NAME, + c1, v1, + c2, v2, + c3, v3, + c4, v4, + c5, v5, + sqlcond + ) VALUES ( + TBL_DEMS_ID_SEQ.NEXTVAL, + TBL_NAME, + PARAMS.c1, PARAMS.v1, + PARAMS.c2, PARAMS.v2, + PARAMS.c3, PARAMS.v3, + PARAMS.c4, PARAMS.v4, + PARAMS.c5, PARAMS.v5, + PARAMS.sqlcond + ); + END; --- TBL_SERVICE_REF_ANNEE_FK -ALTER TABLE "TBL_SERVICE_REFERENTIEL" ADD CONSTRAINT "TBL_SERVICE_REF_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; --- TBL_SERVICE_REF_INTERVENANT_FK -ALTER TABLE "TBL_SERVICE_REFERENTIEL" ADD CONSTRAINT "TBL_SERVICE_REF_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; --- TBL_SERVICE_REF_STRUCTURE_FK -ALTER TABLE "TBL_SERVICE_REFERENTIEL" ADD CONSTRAINT "TBL_SERVICE_REF_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION PARAMS_FROM_DEMS( TBL_NAME VARCHAR2 ) RETURN t_params IS + res t_params; + conds CLOB := ''; + cond CLOB; + BEGIN + FOR d IN ( + SELECT * + FROM tbl_dems + WHERE tbl_name = PARAMS_FROM_DEMS.TBL_NAME + ) + LOOP --- TBL_SERVICE_REF_TVH_FK -ALTER TABLE "TBL_SERVICE_REFERENTIEL" ADD CONSTRAINT "TBL_SERVICE_REF_TVH_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") - REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + cond := ''; --- TBL_SERVICE_SAISIE_ANNEE_FK -ALTER TABLE "TBL_SERVICE_SAISIE" ADD CONSTRAINT "TBL_SERVICE_SAISIE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + IF d.c1 IS NOT NULL THEN + IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; + IF d.v1 IS NULL THEN + cond := cond || d.c1 || ' IS NULL'; + ELSE + cond := cond || d.c1 || '=' || d.v1; + END IF; + END IF; --- TBL_SERVICE_SERVICE_FK -ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_SERVICE_FK" FOREIGN KEY ("SERVICE_ID") - REFERENCES "SERVICE" ("ID") ON DELETE CASCADE ENABLE; + IF d.c2 IS NOT NULL THEN + IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; + IF d.v2 IS NULL THEN + cond := cond || d.c2 || ' IS NULL'; + ELSE + cond := cond || d.c2 || '=' || d.v2; + END IF; + END IF; --- TBL_SERVICE_STRUCTURE_FK -ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + IF d.c3 IS NOT NULL THEN + IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; + IF d.v3 IS NULL THEN + cond := cond || d.c3 || ' IS NULL'; + ELSE + cond := cond || d.c3 || '=' || d.v3; + END IF; + END IF; --- TBL_SERVICE_STRUCTURE_FKV1 -ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_STRUCTURE_FKV1" FOREIGN KEY ("INTERVENANT_STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + IF d.c4 IS NOT NULL THEN + IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; + IF d.v4 IS NULL THEN + cond := cond || d.c4 || ' IS NULL'; + ELSE + cond := cond || d.c4 || '=' || d.v4; + END IF; + END IF; --- TBL_SERVICE_TINTERVENANT_FK -ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_TINTERVENANT_FK" FOREIGN KEY ("TYPE_INTERVENANT_ID") - REFERENCES "TYPE_INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + IF d.c5 IS NOT NULL THEN + IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; + IF d.v5 IS NULL THEN + cond := cond || d.c5 || ' IS NULL'; + ELSE + cond := cond || d.c5 || '=' || d.v5; + END IF; + END IF; --- TBL_SERVICE_TVH_FK -ALTER TABLE "TBL_SERVICE" ADD CONSTRAINT "TBL_SERVICE_TVH_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") - REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + IF d.sqlcond IS NOT NULL THEN + IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; + cond := cond || '(' || d.sqlcond || ')'; + END IF; --- TBL_SRV_SAISIE_INTERVENANT_FK -ALTER TABLE "TBL_SERVICE_SAISIE" ADD CONSTRAINT "TBL_SRV_SAISIE_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + IF conds IS NOT NULL THEN + conds := conds || ' OR '; + END IF; + conds := conds || '(' || cond || ')'; + END LOOP; --- TBL_WORKFLOW_ANNEE_FK -ALTER TABLE "TBL_WORKFLOW" ADD CONSTRAINT "TBL_WORKFLOW_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + res.sqlcond := conds; + DELETE FROM tbl_dems WHERE tbl_name = PARAMS_FROM_DEMS.TBL_NAME; + RETURN res; + END; --- TBL_WORKFLOW_EFK -ALTER TABLE "TBL_WORKFLOW" ADD CONSTRAINT "TBL_WORKFLOW_EFK" FOREIGN KEY ("ETAPE_ID") - REFERENCES "WF_ETAPE" ("ID") ON DELETE CASCADE ENABLE; --- TBL_WORKFLOW_IFK -ALTER TABLE "TBL_WORKFLOW" ADD CONSTRAINT "TBL_WORKFLOW_IFK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; --- TBL_WORKFLOW_SFK -ALTER TABLE "TBL_WORKFLOW" ADD CONSTRAINT "TBL_WORKFLOW_SFK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION PARAMS_TO_CONDS ( PARAMS UNICAEN_TBL.T_PARAMS ) RETURN CLOB IS + cond CLOB; + BEGIN + IF params.c1 IS NOT NULL THEN + IF params.v1 IS NULL THEN + cond := cond || params.c1 || ' IS NULL'; + ELSE + cond := cond || params.c1 || '=' || params.v1; + END IF; + END IF; --- TBL_WORKFLOW_STATUT_FK -ALTER TABLE "TBL_WORKFLOW" ADD CONSTRAINT "TBL_WORKFLOW_STATUT_FK" FOREIGN KEY ("STATUT_INTERVENANT_ID") - REFERENCES "STATUT_INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + IF params.c2 IS NOT NULL THEN + IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; + IF params.v2 IS NULL THEN + cond := cond || params.c2 || ' IS NULL'; + ELSE + cond := cond || params.c2 || '=' || params.v2; + END IF; + END IF; --- TBL_WORKFLOW_TINTERVENANT_FK -ALTER TABLE "TBL_WORKFLOW" ADD CONSTRAINT "TBL_WORKFLOW_TINTERVENANT_FK" FOREIGN KEY ("TYPE_INTERVENANT_ID") - REFERENCES "TYPE_INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + IF params.c3 IS NOT NULL THEN + IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; + IF params.v3 IS NULL THEN + cond := cond || params.c3 || ' IS NULL'; + ELSE + cond := cond || params.c3 || '=' || params.v3; + END IF; + END IF; --- TD_TYPE_RESSOURCE_FK -ALTER TABLE "TYPE_DOTATION" ADD CONSTRAINT "TD_TYPE_RESSOURCE_FK" FOREIGN KEY ("TYPE_RESSOURCE_ID") - REFERENCES "TYPE_RESSOURCE" ("ID") ENABLE; + IF params.c4 IS NOT NULL THEN + IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; + IF params.v4 IS NULL THEN + cond := cond || params.c4 || ' IS NULL'; + ELSE + cond := cond || params.c4 || '=' || params.v4; + END IF; + END IF; --- TIEP_ELEMENT_PEDAGOGIQUE_FK -ALTER TABLE "TYPE_INTERVENTION_EP" ADD CONSTRAINT "TIEP_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") - REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; + IF params.c5 IS NOT NULL THEN + IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; + IF params.v5 IS NULL THEN + cond := cond || params.c5 || ' IS NULL'; + ELSE + cond := cond || params.c5 || '=' || params.v5; + END IF; + END IF; --- TIEP_TYPE_INTERVENTION_FK -ALTER TABLE "TYPE_INTERVENTION_EP" ADD CONSTRAINT "TIEP_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") - REFERENCES "TYPE_INTERVENTION" ("ID") ON DELETE CASCADE ENABLE; + IF params.sqlcond IS NOT NULL THEN + IF cond IS NOT NULL THEN cond := cond || ' AND '; END IF; + cond := cond || '(' || params.sqlcond || ')'; + END IF; --- TIS_ANNEE_DEBUT_FK -ALTER TABLE "TYPE_INTERVENTION_STRUCTURE" ADD CONSTRAINT "TIS_ANNEE_DEBUT_FK" FOREIGN KEY ("ANNEE_DEBUT_ID") - REFERENCES "ANNEE" ("ID") ENABLE; + IF cond IS NULL THEN cond := '1=1'; END IF; --- TIS_ANNEE_FIN_FK -ALTER TABLE "TYPE_INTERVENTION_STRUCTURE" ADD CONSTRAINT "TIS_ANNEE_FIN_FK" FOREIGN KEY ("ANNEE_FIN_ID") - REFERENCES "ANNEE" ("ID") ENABLE; + RETURN cond; + END; --- TIS_STRUCTURE_FK -ALTER TABLE "TYPE_INTERVENTION_STRUCTURE" ADD CONSTRAINT "TIS_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; --- TIS_TYPE_INTERVENTION_FK -ALTER TABLE "TYPE_INTERVENTION_STRUCTURE" ADD CONSTRAINT "TIS_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") - REFERENCES "TYPE_INTERVENTION" ("ID") ON DELETE CASCADE ENABLE; --- TI_TYPE_INTERVENTION_FK -ALTER TABLE "TYPE_INTERVENTION" ADD CONSTRAINT "TI_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_MAQUETTE_ID") - REFERENCES "TYPE_INTERVENTION" ("ID") ENABLE; + PROCEDURE CALCULER( TBL_NAME VARCHAR2 ) IS + p t_params; + BEGIN + ANNULER_DEMANDES( TBL_NAME ); + CALCULER(TBL_NAME, p); + END; --- TME_ELEMENT_PEDAGOGIQUE_FK -ALTER TABLE "TYPE_MODULATEUR_EP" ADD CONSTRAINT "TME_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") - REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ON DELETE CASCADE ENABLE; --- TME_SOURCE_FK -ALTER TABLE "TYPE_MODULATEUR_EP" ADD CONSTRAINT "TME_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; --- TME_TYPE_MODULATEUR_FK -ALTER TABLE "TYPE_MODULATEUR_EP" ADD CONSTRAINT "TME_TYPE_MODULATEUR_FK" FOREIGN KEY ("TYPE_MODULATEUR_ID") - REFERENCES "TYPE_MODULATEUR" ("ID") ON DELETE CASCADE ENABLE; + PROCEDURE CALCULER( TBL_NAME VARCHAR2, CONDS CLOB ) IS + p t_params; + BEGIN + p.sqlcond := CONDS; + CALCULER(TBL_NAME, p); + END; --- TMS_ANNEE_DEBUT_FK -ALTER TABLE "TYPE_MODULATEUR_STRUCTURE" ADD CONSTRAINT "TMS_ANNEE_DEBUT_FK" FOREIGN KEY ("ANNEE_DEBUT_ID") - REFERENCES "ANNEE" ("ID") ENABLE; --- TMS_ANNEE_FIN_FK -ALTER TABLE "TYPE_MODULATEUR_STRUCTURE" ADD CONSTRAINT "TMS_ANNEE_FIN_FK" FOREIGN KEY ("ANNEE_FIN_ID") - REFERENCES "ANNEE" ("ID") ENABLE; --- TMS_STRUCTURE_FK -ALTER TABLE "TYPE_MODULATEUR_STRUCTURE" ADD CONSTRAINT "TMS_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ENABLE; + PROCEDURE CALCULER( TBL_NAME VARCHAR2, PARAMS t_params ) IS + calcul_proc varchar2(30); + BEGIN + IF NOT UNICAEN_TBL.ACTIV_CALCULS THEN RETURN; END IF; --- TMS_TYPE_MODUL_FK -ALTER TABLE "TYPE_MODULATEUR_STRUCTURE" ADD CONSTRAINT "TMS_TYPE_MODUL_FK" FOREIGN KEY ("TYPE_MODULATEUR_ID") - REFERENCES "TYPE_MODULATEUR" ("ID") ON DELETE CASCADE ENABLE; + SELECT custom_calcul_proc INTO calcul_proc FROM tbl WHERE tbl_name = CALCULER.TBL_NAME; --- TPJS_ANNEE_DEB_FK -ALTER TABLE "TYPE_PIECE_JOINTE_STATUT" ADD CONSTRAINT "TPJS_ANNEE_DEB_FK" FOREIGN KEY ("ANNEE_DEBUT_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + UNICAEN_TBL.CALCUL_PROC_PARAMS := PARAMS; + IF calcul_proc IS NOT NULL THEN + EXECUTE IMMEDIATE + 'BEGIN ' || calcul_proc || '(UNICAEN_TBL.CALCUL_PROC_PARAMS); END;' + ; + ELSE + EXECUTE IMMEDIATE + 'BEGIN UNICAEN_TBL.C_' || TBL_NAME || '(UNICAEN_TBL.CALCUL_PROC_PARAMS); END;' + ; + END IF; --- TPJS_ANNEE_FIN_FK -ALTER TABLE "TYPE_PIECE_JOINTE_STATUT" ADD CONSTRAINT "TPJS_ANNEE_FIN_FK" FOREIGN KEY ("ANNEE_FIN_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + END; --- TPJS_STATUT_INTERVENANT_FK -ALTER TABLE "TYPE_PIECE_JOINTE_STATUT" ADD CONSTRAINT "TPJS_STATUT_INTERVENANT_FK" FOREIGN KEY ("STATUT_INTERVENANT_ID") - REFERENCES "STATUT_INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; --- TPJS_TYPE_PIECE_JOINTE_FK -ALTER TABLE "TYPE_PIECE_JOINTE_STATUT" ADD CONSTRAINT "TPJS_TYPE_PIECE_JOINTE_FK" FOREIGN KEY ("TYPE_PIECE_JOINTE_ID") - REFERENCES "TYPE_PIECE_JOINTE" ("ID") ON DELETE CASCADE ENABLE; --- TVE_ANNEE_FK -ALTER TABLE "TBL_VALIDATION_ENSEIGNEMENT" ADD CONSTRAINT "TVE_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + PROCEDURE ANNULER_DEMANDES IS + BEGIN + DELETE FROM tbl_dems; + END; --- TVE_INTERVENANT_FK -ALTER TABLE "TBL_VALIDATION_ENSEIGNEMENT" ADD CONSTRAINT "TVE_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; --- TVE_SERVICE_FK -ALTER TABLE "TBL_VALIDATION_ENSEIGNEMENT" ADD CONSTRAINT "TVE_SERVICE_FK" FOREIGN KEY ("SERVICE_ID") - REFERENCES "SERVICE" ("ID") ON DELETE CASCADE ENABLE; --- TVE_STRUCTURE_FK -ALTER TABLE "TBL_VALIDATION_ENSEIGNEMENT" ADD CONSTRAINT "TVE_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + PROCEDURE ANNULER_DEMANDES( TBL_NAME VARCHAR2 ) IS + BEGIN + DELETE FROM tbl_dems WHERE tbl_name = ANNULER_DEMANDES.tbl_name; + END; --- TVE_TYPE_VOLUME_HORAIRE_FK -ALTER TABLE "TBL_VALIDATION_ENSEIGNEMENT" ADD CONSTRAINT "TVE_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") - REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; --- TVE_VALIDATION_FK -ALTER TABLE "TBL_VALIDATION_ENSEIGNEMENT" ADD CONSTRAINT "TVE_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") - REFERENCES "VALIDATION" ("ID") ON DELETE CASCADE ENABLE; --- TVE_VOLUME_HORAIRE_FK -ALTER TABLE "TBL_VALIDATION_ENSEIGNEMENT" ADD CONSTRAINT "TVE_VOLUME_HORAIRE_FK" FOREIGN KEY ("VOLUME_HORAIRE_ID") - REFERENCES "VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + FUNCTION HAS_DEMANDES RETURN BOOLEAN IS + has_dems NUMERIC; + BEGIN + SELECT count(*) INTO has_dems from tbl_dems where rownum = 1; --- TVR_ANNEE_FK -ALTER TABLE "TBL_VALIDATION_REFERENTIEL" ADD CONSTRAINT "TVR_ANNEE_FK" FOREIGN KEY ("ANNEE_ID") - REFERENCES "ANNEE" ("ID") ON DELETE CASCADE ENABLE; + RETURN has_dems = 1; + END; --- TVR_INTERVENANT_FK -ALTER TABLE "TBL_VALIDATION_REFERENTIEL" ADD CONSTRAINT "TVR_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; --- TVR_SERVICE_REFERENTIEL_FK -ALTER TABLE "TBL_VALIDATION_REFERENTIEL" ADD CONSTRAINT "TVR_SERVICE_REFERENTIEL_FK" FOREIGN KEY ("SERVICE_REFERENTIEL_ID") - REFERENCES "SERVICE_REFERENTIEL" ("ID") ON DELETE CASCADE ENABLE; --- TVR_STRUCTURE_FK -ALTER TABLE "TBL_VALIDATION_REFERENTIEL" ADD CONSTRAINT "TVR_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + PROCEDURE CALCULER_DEMANDES IS + dems t_params; + BEGIN + FOR d IN ( + SELECT DISTINCT tbl_name FROM tbl_dems + ) LOOP + dems := PARAMS_FROM_DEMS( d.tbl_name ); + calculer( d.tbl_name, dems ); + END LOOP; --- TVR_TYPE_VOLUME_HORAIRE_FK -ALTER TABLE "TBL_VALIDATION_REFERENTIEL" ADD CONSTRAINT "TVR_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") - REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + IF HAS_DEMANDES THEN -- pour les boucles !! + CALCULER_DEMANDES; + END IF; + END; --- TVR_VALIDATION_FK -ALTER TABLE "TBL_VALIDATION_REFERENTIEL" ADD CONSTRAINT "TVR_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") - REFERENCES "VALIDATION" ("ID") ON DELETE CASCADE ENABLE; --- TVR_VOLUME_HORAIRE_REF_FK -ALTER TABLE "TBL_VALIDATION_REFERENTIEL" ADD CONSTRAINT "TVR_VOLUME_HORAIRE_REF_FK" FOREIGN KEY ("VOLUME_HORAIRE_REF_ID") - REFERENCES "VOLUME_HORAIRE_REF" ("ID") ON DELETE CASCADE ENABLE; --- TYPE_AGREMENT_HCFK -ALTER TABLE "TYPE_AGREMENT" ADD CONSTRAINT "TYPE_AGREMENT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + -- AUTOMATIC GENERATION -- --- TYPE_AGREMENT_HDFK -ALTER TABLE "TYPE_AGREMENT" ADD CONSTRAINT "TYPE_AGREMENT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE C_AGREMENT( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; + BEGIN + conds := params_to_conds( params ); --- TYPE_AGREMENT_HMFK -ALTER TABLE "TYPE_AGREMENT" ADD CONSTRAINT "TYPE_AGREMENT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + EXECUTE IMMEDIATE 'BEGIN --- TYPE_AGREMENT_STATUT_HCFK -ALTER TABLE "TYPE_AGREMENT_STATUT" ADD CONSTRAINT "TYPE_AGREMENT_STATUT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + UPDATE TBL_AGREMENT SET to_delete = 1 WHERE ' || conds || '; --- TYPE_AGREMENT_STATUT_HDFK -ALTER TABLE "TYPE_AGREMENT_STATUT" ADD CONSTRAINT "TYPE_AGREMENT_STATUT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + MERGE INTO + TBL_AGREMENT t + USING ( --- TYPE_AGREMENT_STATUT_HMFK -ALTER TABLE "TYPE_AGREMENT_STATUT" ADD CONSTRAINT "TYPE_AGREMENT_STATUT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + SELECT + tv.* + FROM + (WITH i_s AS ( + SELECT DISTINCT + fr.intervenant_id, + ep.structure_id + FROM + formule_resultat fr + JOIN type_volume_horaire tvh ON tvh.code = ''PREVU'' AND tvh.id = fr.type_volume_horaire_id + JOIN etat_volume_horaire evh ON evh.code = ''valide'' AND evh.id = fr.etat_volume_horaire_id --- TYPE_CONTRAT_HCFK -ALTER TABLE "TYPE_CONTRAT" ADD CONSTRAINT "TYPE_CONTRAT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + JOIN formule_resultat_service frs ON frs.formule_resultat_id = fr.id + JOIN service s ON s.id = frs.service_id + JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + WHERE + frs.total > 0 + ) + SELECT + i.annee_id annee_id, + tas.type_agrement_id type_agrement_id, + i.id intervenant_id, + null structure_id, + tas.obligatoire obligatoire, + a.id agrement_id + FROM + type_agrement ta + JOIN type_agrement_statut tas ON tas.type_agrement_id = ta.id + AND tas.histo_destruction IS NULL --- TYPE_CONTRAT_HDFK -ALTER TABLE "TYPE_CONTRAT" ADD CONSTRAINT "TYPE_CONTRAT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + JOIN intervenant i ON i.histo_destruction IS NULL + AND (tas.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = tas.premier_recrutement) + AND i.statut_id = tas.statut_intervenant_id --- TYPE_CONTRAT_HMFK -ALTER TABLE "TYPE_CONTRAT" ADD CONSTRAINT "TYPE_CONTRAT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + LEFT JOIN agrement a ON a.type_agrement_id = ta.id + AND a.intervenant_id = i.id + AND a.histo_destruction IS NULL + WHERE + ta.code = ''CONSEIL_ACADEMIQUE'' --- TYPE_DOTATION_HCFK -ALTER TABLE "TYPE_DOTATION" ADD CONSTRAINT "TYPE_DOTATION_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + UNION ALL --- TYPE_DOTATION_HDFK -ALTER TABLE "TYPE_DOTATION" ADD CONSTRAINT "TYPE_DOTATION_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + SELECT + i.annee_id annee_id, + tas.type_agrement_id type_agrement_id, + i.id intervenant_id, + i_s.structure_id structure_id, + tas.obligatoire obligatoire, + a.id agrement_id + FROM + type_agrement ta + JOIN type_agrement_statut tas ON tas.type_agrement_id = ta.id + AND tas.histo_destruction IS NULL --- TYPE_DOTATION_HMFK -ALTER TABLE "TYPE_DOTATION" ADD CONSTRAINT "TYPE_DOTATION_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + JOIN intervenant i ON i.histo_destruction IS NULL + AND (tas.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = tas.premier_recrutement) + AND i.statut_id = tas.statut_intervenant_id --- TYPE_DOTATION_SOURCE_FK -ALTER TABLE "TYPE_DOTATION" ADD CONSTRAINT "TYPE_DOTATION_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + JOIN i_s ON i_s.intervenant_id = i.id --- TYPE_FORMATION_GROUPE_FK -ALTER TABLE "TYPE_FORMATION" ADD CONSTRAINT "TYPE_FORMATION_GROUPE_FK" FOREIGN KEY ("GROUPE_ID") - REFERENCES "GROUPE_TYPE_FORMATION" ("ID") ENABLE; + LEFT JOIN agrement a ON a.type_agrement_id = ta.id + AND a.intervenant_id = i.id + AND a.structure_id = i_s.structure_id + AND a.histo_destruction IS NULL + WHERE + ta.code = ''CONSEIL_RESTREINT'') tv + WHERE + ' || conds || ' --- TYPE_FORMATION_HCFK -ALTER TABLE "TYPE_FORMATION" ADD CONSTRAINT "TYPE_FORMATION_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ) v ON ( + t.TYPE_AGREMENT_ID = v.TYPE_AGREMENT_ID + AND t.INTERVENANT_ID = v.INTERVENANT_ID + AND COALESCE(t.STRUCTURE_ID,0) = COALESCE(v.STRUCTURE_ID,0) --- TYPE_FORMATION_HDFK -ALTER TABLE "TYPE_FORMATION" ADD CONSTRAINT "TYPE_FORMATION_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ) WHEN MATCHED THEN UPDATE SET --- TYPE_FORMATION_HMFK -ALTER TABLE "TYPE_FORMATION" ADD CONSTRAINT "TYPE_FORMATION_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ANNEE_ID = v.ANNEE_ID, + OBLIGATOIRE = v.OBLIGATOIRE, + AGREMENT_ID = v.AGREMENT_ID, + to_delete = 0 --- TYPE_FORMATION_SOURCE_FK -ALTER TABLE "TYPE_FORMATION" ADD CONSTRAINT "TYPE_FORMATION_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ENABLE; + WHEN NOT MATCHED THEN INSERT ( --- TYPE_HEURES_HCFK -ALTER TABLE "TYPE_HEURES" ADD CONSTRAINT "TYPE_HEURES_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ID, + ANNEE_ID, + TYPE_AGREMENT_ID, + INTERVENANT_ID, + STRUCTURE_ID, + OBLIGATOIRE, + AGREMENT_ID, + TO_DELETE --- TYPE_HEURES_HDFK -ALTER TABLE "TYPE_HEURES" ADD CONSTRAINT "TYPE_HEURES_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ) VALUES ( --- TYPE_HEURES_HMFK -ALTER TABLE "TYPE_HEURES" ADD CONSTRAINT "TYPE_HEURES_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + TBL_AGREMENT_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.TYPE_AGREMENT_ID, + v.INTERVENANT_ID, + v.STRUCTURE_ID, + v.OBLIGATOIRE, + v.AGREMENT_ID, + 0 --- TYPE_HEURES_TYPE_HEURES_FK -ALTER TABLE "TYPE_HEURES" ADD CONSTRAINT "TYPE_HEURES_TYPE_HEURES_FK" FOREIGN KEY ("TYPE_HEURES_ELEMENT_ID") - REFERENCES "TYPE_HEURES" ("ID") ON DELETE CASCADE ENABLE; + ); --- TYPE_INTERVENANT_HCFK -ALTER TABLE "TYPE_INTERVENANT" ADD CONSTRAINT "TYPE_INTERVENANT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + DELETE TBL_AGREMENT WHERE to_delete = 1 AND ' || conds || '; --- TYPE_INTERVENANT_HDFK -ALTER TABLE "TYPE_INTERVENANT" ADD CONSTRAINT "TYPE_INTERVENANT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + END;'; --- TYPE_INTERVENANT_HMFK -ALTER TABLE "TYPE_INTERVENANT" ADD CONSTRAINT "TYPE_INTERVENANT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + END; --- TYPE_INTERVENTION_ANNEE_FK -ALTER TABLE "TYPE_INTERVENTION" ADD CONSTRAINT "TYPE_INTERVENTION_ANNEE_FK" FOREIGN KEY ("ANNEE_DEBUT_ID") - REFERENCES "ANNEE" ("ID") ENABLE; --- TYPE_INTERVENTION_ANNEE_FKV1 -ALTER TABLE "TYPE_INTERVENTION" ADD CONSTRAINT "TYPE_INTERVENTION_ANNEE_FKV1" FOREIGN KEY ("ANNEE_FIN_ID") - REFERENCES "ANNEE" ("ID") ENABLE; --- TYPE_INTERVENTION_EP_HCFK -ALTER TABLE "TYPE_INTERVENTION_EP" ADD CONSTRAINT "TYPE_INTERVENTION_EP_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE C_CHARGENS( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; + BEGIN + conds := params_to_conds( params ); --- TYPE_INTERVENTION_EP_HDFK -ALTER TABLE "TYPE_INTERVENTION_EP" ADD CONSTRAINT "TYPE_INTERVENTION_EP_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + EXECUTE IMMEDIATE 'BEGIN --- TYPE_INTERVENTION_EP_HMFK -ALTER TABLE "TYPE_INTERVENTION_EP" ADD CONSTRAINT "TYPE_INTERVENTION_EP_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + UPDATE TBL_CHARGENS SET to_delete = 1 WHERE ' || conds || '; --- TYPE_INTERVENTION_EP_SOURCE_FK -ALTER TABLE "TYPE_INTERVENTION_EP" ADD CONSTRAINT "TYPE_INTERVENTION_EP_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + MERGE INTO + TBL_CHARGENS t + USING ( --- TYPE_INTERVENTION_HCFK -ALTER TABLE "TYPE_INTERVENTION" ADD CONSTRAINT "TYPE_INTERVENTION_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + SELECT + tv.* + FROM + (WITH t AS ( + SELECT + n.annee_id annee_id, + n.noeud_id noeud_id, + sn.scenario_id scenario_id, + sne.type_heures_id type_heures_id, + ti.id type_intervention_id, --- TYPE_INTERVENTION_HDFK -ALTER TABLE "TYPE_INTERVENTION" ADD CONSTRAINT "TYPE_INTERVENTION_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + n.element_pedagogique_id element_pedagogique_id, + n.element_pedagogique_etape_id etape_id, + sne.etape_id etape_ens_id, + n.structure_id structure_id, + n.groupe_type_formation_id groupe_type_formation_id, --- TYPE_INTERVENTION_HMFK -ALTER TABLE "TYPE_INTERVENTION" ADD CONSTRAINT "TYPE_INTERVENTION_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + vhe.heures heures, + vhe.heures * ti.taux_hetd_service hetd, --- TYPE_INTERVENTION_STRUCTU_HCFK -ALTER TABLE "TYPE_INTERVENTION_STRUCTURE" ADD CONSTRAINT "TYPE_INTERVENTION_STRUCTU_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + GREATEST(COALESCE(sns.ouverture, 1),1) ouverture, + GREATEST(COALESCE(sns.dedoublement, snsetp.dedoublement, csdd.dedoublement,1),1) dedoublement, + COALESCE(sns.assiduite,1) assiduite, + sne.effectif*COALESCE(sns.assiduite,1) effectif, --- TYPE_INTERVENTION_STRUCTU_HDFK -ALTER TABLE "TYPE_INTERVENTION_STRUCTURE" ADD CONSTRAINT "TYPE_INTERVENTION_STRUCTU_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + SUM(sne.effectif*COALESCE(sns.assiduite,1)) OVER (PARTITION BY n.noeud_id, sn.scenario_id, ti.id) t_effectif --- TYPE_INTERVENTION_STRUCTU_HMFK -ALTER TABLE "TYPE_INTERVENTION_STRUCTURE" ADD CONSTRAINT "TYPE_INTERVENTION_STRUCTU_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FROM + scenario_noeud_effectif sne + JOIN etape e ON e.id = sne.etape_id + AND e.histo_destruction IS NULL --- TYPE_MODULATEUR_EP_HCFK -ALTER TABLE "TYPE_MODULATEUR_EP" ADD CONSTRAINT "TYPE_MODULATEUR_EP_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + JOIN scenario_noeud sn ON sn.id = sne.scenario_noeud_id + AND sn.histo_destruction IS NULL --- TYPE_MODULATEUR_EP_HDFK -ALTER TABLE "TYPE_MODULATEUR_EP" ADD CONSTRAINT "TYPE_MODULATEUR_EP_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + JOIN tbl_noeud n ON n.noeud_id = sn.noeud_id --- TYPE_MODULATEUR_EP_HMFK -ALTER TABLE "TYPE_MODULATEUR_EP" ADD CONSTRAINT "TYPE_MODULATEUR_EP_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + JOIN volume_horaire_ens vhe ON vhe.element_pedagogique_id = n.element_pedagogique_id + AND vhe.histo_destruction IS NULL + AND vhe.heures > 0 --- TYPE_MODULATEUR_HCFK -ALTER TABLE "TYPE_MODULATEUR" ADD CONSTRAINT "TYPE_MODULATEUR_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + JOIN type_intervention ti ON ti.id = vhe.type_intervention_id --- TYPE_MODULATEUR_HDFK -ALTER TABLE "TYPE_MODULATEUR" ADD CONSTRAINT "TYPE_MODULATEUR_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + LEFT JOIN tbl_noeud netp ON netp.etape_id = e.id --- TYPE_MODULATEUR_HMFK -ALTER TABLE "TYPE_MODULATEUR" ADD CONSTRAINT "TYPE_MODULATEUR_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + LEFT JOIN scenario_noeud snetp ON snetp.scenario_id = sn.scenario_id + AND snetp.noeud_id = netp.noeud_id + AND snetp.histo_destruction IS NULL --- TYPE_MODULATEUR_STRUCTURE_HCFK -ALTER TABLE "TYPE_MODULATEUR_STRUCTURE" ADD CONSTRAINT "TYPE_MODULATEUR_STRUCTURE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + LEFT JOIN scenario_noeud_seuil snsetp ON snsetp.scenario_noeud_id = snetp.id + AND snsetp.type_intervention_id = ti.id --- TYPE_MODULATEUR_STRUCTURE_HDFK -ALTER TABLE "TYPE_MODULATEUR_STRUCTURE" ADD CONSTRAINT "TYPE_MODULATEUR_STRUCTURE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + LEFT JOIN tbl_chargens_seuils_def csdd ON csdd.annee_id = n.annee_id + AND csdd.scenario_id = sn.scenario_id + AND csdd.type_intervention_id = ti.id + AND csdd.groupe_type_formation_id = n.groupe_type_formation_id + AND csdd.structure_id = n.structure_id --- TYPE_MODULATEUR_STRUCTURE_HMFK -ALTER TABLE "TYPE_MODULATEUR_STRUCTURE" ADD CONSTRAINT "TYPE_MODULATEUR_STRUCTURE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + LEFT JOIN scenario_noeud_seuil sns ON sns.scenario_noeud_id = sn.id + AND sns.type_intervention_id = ti.id + ) + SELECT + annee_id, + noeud_id, + scenario_id, + type_heures_id, + type_intervention_id, --- TYPE_PIECE_JOINTE_HCFK -ALTER TABLE "TYPE_PIECE_JOINTE" ADD CONSTRAINT "TYPE_PIECE_JOINTE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + element_pedagogique_id, + etape_id, + etape_ens_id, + structure_id, + groupe_type_formation_id, --- TYPE_PIECE_JOINTE_HDFK -ALTER TABLE "TYPE_PIECE_JOINTE" ADD CONSTRAINT "TYPE_PIECE_JOINTE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ouverture, + dedoublement, + assiduite, + effectif, + heures heures_ens, + --t_effectif, --- TYPE_PIECE_JOINTE_HMFK -ALTER TABLE "TYPE_PIECE_JOINTE" ADD CONSTRAINT "TYPE_PIECE_JOINTE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + CASE WHEN t_effectif < ouverture THEN 0 ELSE + CEIL( t_effectif / dedoublement ) * effectif / t_effectif + END groupes, --- TYPE_PIECE_JOINTE_STATUT_HCFK -ALTER TABLE "TYPE_PIECE_JOINTE_STATUT" ADD CONSTRAINT "TYPE_PIECE_JOINTE_STATUT_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + CASE WHEN t_effectif < ouverture THEN 0 ELSE + CEIL( t_effectif / dedoublement ) * heures * effectif / t_effectif + END heures, --- TYPE_PIECE_JOINTE_STATUT_HDFK -ALTER TABLE "TYPE_PIECE_JOINTE_STATUT" ADD CONSTRAINT "TYPE_PIECE_JOINTE_STATUT_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + CASE WHEN t_effectif < ouverture THEN 0 ELSE + CEIL( t_effectif / dedoublement ) * hetd * effectif / t_effectif + END hetd --- TYPE_PIECE_JOINTE_STATUT_HMFK -ALTER TABLE "TYPE_PIECE_JOINTE_STATUT" ADD CONSTRAINT "TYPE_PIECE_JOINTE_STATUT_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + FROM + t) tv + WHERE + ' || conds || ' --- TYPE_RESSOURCE_HCFK -ALTER TABLE "TYPE_RESSOURCE" ADD CONSTRAINT "TYPE_RESSOURCE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ) v ON ( + t.ANNEE_ID = v.ANNEE_ID + AND t.NOEUD_ID = v.NOEUD_ID + AND t.SCENARIO_ID = v.SCENARIO_ID + AND t.TYPE_HEURES_ID = v.TYPE_HEURES_ID + AND t.TYPE_INTERVENTION_ID = v.TYPE_INTERVENTION_ID + AND t.ELEMENT_PEDAGOGIQUE_ID = v.ELEMENT_PEDAGOGIQUE_ID + AND t.ETAPE_ID = v.ETAPE_ID + AND t.ETAPE_ENS_ID = v.ETAPE_ENS_ID + AND t.STRUCTURE_ID = v.STRUCTURE_ID + AND t.GROUPE_TYPE_FORMATION_ID = v.GROUPE_TYPE_FORMATION_ID --- TYPE_RESSOURCE_HDFK -ALTER TABLE "TYPE_RESSOURCE" ADD CONSTRAINT "TYPE_RESSOURCE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ) WHEN MATCHED THEN UPDATE SET --- TYPE_RESSOURCE_HMFK -ALTER TABLE "TYPE_RESSOURCE" ADD CONSTRAINT "TYPE_RESSOURCE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + OUVERTURE = v.OUVERTURE, + DEDOUBLEMENT = v.DEDOUBLEMENT, + ASSIDUITE = v.ASSIDUITE, + EFFECTIF = v.EFFECTIF, + HEURES_ENS = v.HEURES_ENS, + GROUPES = v.GROUPES, + HEURES = v.HEURES, + HETD = v.HETD, + to_delete = 0 --- VALIDATION_HCFK -ALTER TABLE "VALIDATION" ADD CONSTRAINT "VALIDATION_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + WHEN NOT MATCHED THEN INSERT ( --- VALIDATION_HDFK -ALTER TABLE "VALIDATION" ADD CONSTRAINT "VALIDATION_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ID, + ANNEE_ID, + NOEUD_ID, + SCENARIO_ID, + TYPE_HEURES_ID, + TYPE_INTERVENTION_ID, + ELEMENT_PEDAGOGIQUE_ID, + ETAPE_ID, + ETAPE_ENS_ID, + STRUCTURE_ID, + GROUPE_TYPE_FORMATION_ID, + OUVERTURE, + DEDOUBLEMENT, + ASSIDUITE, + EFFECTIF, + HEURES_ENS, + GROUPES, + HEURES, + HETD, + TO_DELETE --- VALIDATION_HMFK -ALTER TABLE "VALIDATION" ADD CONSTRAINT "VALIDATION_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ) VALUES ( --- VALIDATION_INTERVENANT_FK -ALTER TABLE "VALIDATION" ADD CONSTRAINT "VALIDATION_INTERVENANT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + TBL_CHARGENS_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.NOEUD_ID, + v.SCENARIO_ID, + v.TYPE_HEURES_ID, + v.TYPE_INTERVENTION_ID, + v.ELEMENT_PEDAGOGIQUE_ID, + v.ETAPE_ID, + v.ETAPE_ENS_ID, + v.STRUCTURE_ID, + v.GROUPE_TYPE_FORMATION_ID, + v.OUVERTURE, + v.DEDOUBLEMENT, + v.ASSIDUITE, + v.EFFECTIF, + v.HEURES_ENS, + v.GROUPES, + v.HEURES, + v.HETD, + 0 --- VALIDATION_STRUCTURE_FK -ALTER TABLE "VALIDATION" ADD CONSTRAINT "VALIDATION_STRUCTURE_FK" FOREIGN KEY ("STRUCTURE_ID") - REFERENCES "STRUCTURE" ("ID") ON DELETE CASCADE ENABLE; + ); --- VALIDATION_TYPE_VALIDATION_FK -ALTER TABLE "VALIDATION" ADD CONSTRAINT "VALIDATION_TYPE_VALIDATION_FK" FOREIGN KEY ("TYPE_VALIDATION_ID") - REFERENCES "TYPE_VALIDATION" ("ID") ON DELETE CASCADE ENABLE; + DELETE TBL_CHARGENS WHERE to_delete = 1 AND ' || conds || '; --- VHC_ELEMENT_PEDAGOGIQUE_FK -ALTER TABLE "VOLUME_HORAIRE_CHARGE" ADD CONSTRAINT "VHC_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") - REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ENABLE; + END;'; --- VHC_SCENARIO_FK -ALTER TABLE "VOLUME_HORAIRE_CHARGE" ADD CONSTRAINT "VHC_SCENARIO_FK" FOREIGN KEY ("SCENARIO_ID") - REFERENCES "SCENARIO" ("ID") ON DELETE CASCADE ENABLE; + END; --- VHC_SOURCE_FK -ALTER TABLE "VOLUME_HORAIRE_CHARGE" ADD CONSTRAINT "VHC_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ENABLE; --- VHC_TYPE_INTERVENTION_FK -ALTER TABLE "VOLUME_HORAIRE_CHARGE" ADD CONSTRAINT "VHC_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") - REFERENCES "TYPE_INTERVENTION" ("ID") ENABLE; --- VHENS_ELEMENT_PEDAGOGIQUE_FK -ALTER TABLE "VOLUME_HORAIRE_ENS" ADD CONSTRAINT "VHENS_ELEMENT_PEDAGOGIQUE_FK" FOREIGN KEY ("ELEMENT_PEDAGOGIQUE_ID") - REFERENCES "ELEMENT_PEDAGOGIQUE" ("ID") ENABLE; + PROCEDURE C_CHARGENS_SEUILS_DEF( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; + BEGIN + conds := params_to_conds( params ); + + EXECUTE IMMEDIATE 'BEGIN --- VHENS_TYPE_INTERVENTION_FK -ALTER TABLE "VOLUME_HORAIRE_ENS" ADD CONSTRAINT "VHENS_TYPE_INTERVENTION_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") - REFERENCES "TYPE_INTERVENTION" ("ID") ON DELETE CASCADE ENABLE; + UPDATE TBL_CHARGENS_SEUILS_DEF SET to_delete = 1 WHERE ' || conds || '; --- VHIT_FK -ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VHIT_FK" FOREIGN KEY ("TYPE_INTERVENTION_ID") - REFERENCES "TYPE_INTERVENTION" ("ID") ENABLE; + MERGE INTO + TBL_CHARGENS_SEUILS_DEF t + USING ( --- VHMNP_FK -ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VHMNP_FK" FOREIGN KEY ("MOTIF_NON_PAIEMENT_ID") - REFERENCES "MOTIF_NON_PAIEMENT" ("ID") ENABLE; + SELECT + tv.* + FROM + (SELECT + sta.annee_id, + sta.scenario_id, + s.structure_id, + gtf.groupe_type_formation_id, + sta.type_intervention_id, + COALESCE(sc1.dedoublement, sc2.dedoublement, sc3.dedoublement, sc4.dedoublement) dedoublement + FROM + (SELECT DISTINCT scenario_id, type_intervention_id, annee_id FROM seuil_charge WHERE histo_destruction IS NULL) sta + JOIN (SELECT DISTINCT structure_id FROM noeud WHERE structure_id IS NOT NULL) s ON 1=1 + JOIN (SELECT id groupe_type_formation_id FROM groupe_type_formation) gtf ON 1=1 --- VHR_SERVICE_REFERENTIEL_FK -ALTER TABLE "VOLUME_HORAIRE_REF" ADD CONSTRAINT "VHR_SERVICE_REFERENTIEL_FK" FOREIGN KEY ("SERVICE_REFERENTIEL_ID") - REFERENCES "SERVICE_REFERENTIEL" ("ID") ENABLE; + LEFT JOIN seuil_charge sc1 ON + sc1.histo_destruction IS NULL + AND sc1.annee_id = sta.annee_id + AND sc1.scenario_id = sta.scenario_id + AND sc1.type_intervention_id = sta.type_intervention_id + AND sc1.structure_id = s.structure_id + AND sc1.groupe_type_formation_id = gtf.groupe_type_formation_id --- VHR_TYPE_VOLUME_HORAIRE_FK -ALTER TABLE "VOLUME_HORAIRE_REF" ADD CONSTRAINT "VHR_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") - REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ENABLE; + LEFT JOIN seuil_charge sc2 ON + sc2.histo_destruction IS NULL + AND sc2.annee_id = sta.annee_id + AND sc2.scenario_id = sta.scenario_id + AND sc2.type_intervention_id = sta.type_intervention_id + AND sc2.structure_id = s.structure_id + AND sc2.groupe_type_formation_id IS NULL --- VH_PERIODE_FK -ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VH_PERIODE_FK" FOREIGN KEY ("PERIODE_ID") - REFERENCES "PERIODE" ("ID") ENABLE; + LEFT JOIN seuil_charge sc3 ON + sc3.histo_destruction IS NULL + AND sc3.annee_id = sta.annee_id + AND sc3.scenario_id = sta.scenario_id + AND sc3.type_intervention_id = sta.type_intervention_id + AND sc3.structure_id IS NULL + AND sc3.groupe_type_formation_id = gtf.groupe_type_formation_id --- VH_TYPE_VOLUME_HORAIRE_FK -ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VH_TYPE_VOLUME_HORAIRE_FK" FOREIGN KEY ("TYPE_VOLUME_HORAIRE_ID") - REFERENCES "TYPE_VOLUME_HORAIRE" ("ID") ENABLE; + LEFT JOIN seuil_charge sc4 ON + sc4.histo_destruction IS NULL + AND sc4.annee_id = sta.annee_id + AND sc4.scenario_id = sta.scenario_id + AND sc4.type_intervention_id = sta.type_intervention_id + AND sc4.structure_id IS NULL + AND sc4.groupe_type_formation_id IS NULL + WHERE + COALESCE(sc1.dedoublement, sc2.dedoublement, sc3.dedoublement, sc4.dedoublement, 1) <> 1) tv + WHERE + ' || conds || ' --- VOLUMES_HORAIRES_SERVICES_FK -ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VOLUMES_HORAIRES_SERVICES_FK" FOREIGN KEY ("SERVICE_ID") - REFERENCES "SERVICE" ("ID") ENABLE; + ) v ON ( + t.ANNEE_ID = v.ANNEE_ID + AND t.SCENARIO_ID = v.SCENARIO_ID + AND t.STRUCTURE_ID = v.STRUCTURE_ID + AND t.GROUPE_TYPE_FORMATION_ID = v.GROUPE_TYPE_FORMATION_ID + AND t.TYPE_INTERVENTION_ID = v.TYPE_INTERVENTION_ID --- VOLUME_HORAIRE_CHARGE_HCFK -ALTER TABLE "VOLUME_HORAIRE_CHARGE" ADD CONSTRAINT "VOLUME_HORAIRE_CHARGE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ) WHEN MATCHED THEN UPDATE SET --- VOLUME_HORAIRE_CHARGE_HDFK -ALTER TABLE "VOLUME_HORAIRE_CHARGE" ADD CONSTRAINT "VOLUME_HORAIRE_CHARGE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + DEDOUBLEMENT = v.DEDOUBLEMENT, + to_delete = 0 --- VOLUME_HORAIRE_CHARGE_HMFK -ALTER TABLE "VOLUME_HORAIRE_CHARGE" ADD CONSTRAINT "VOLUME_HORAIRE_CHARGE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + WHEN NOT MATCHED THEN INSERT ( --- VOLUME_HORAIRE_CONTRAT_FK -ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VOLUME_HORAIRE_CONTRAT_FK" FOREIGN KEY ("CONTRAT_ID") - REFERENCES "CONTRAT" ("ID") ENABLE; + ID, + ANNEE_ID, + SCENARIO_ID, + STRUCTURE_ID, + GROUPE_TYPE_FORMATION_ID, + TYPE_INTERVENTION_ID, + DEDOUBLEMENT, + TO_DELETE --- VOLUME_HORAIRE_ENS_HCFK -ALTER TABLE "VOLUME_HORAIRE_ENS" ADD CONSTRAINT "VOLUME_HORAIRE_ENS_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ) VALUES ( --- VOLUME_HORAIRE_ENS_HDFK -ALTER TABLE "VOLUME_HORAIRE_ENS" ADD CONSTRAINT "VOLUME_HORAIRE_ENS_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + TBL_CHARGENS_SEUILS_DEF_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.SCENARIO_ID, + v.STRUCTURE_ID, + v.GROUPE_TYPE_FORMATION_ID, + v.TYPE_INTERVENTION_ID, + v.DEDOUBLEMENT, + 0 --- VOLUME_HORAIRE_ENS_HMFK -ALTER TABLE "VOLUME_HORAIRE_ENS" ADD CONSTRAINT "VOLUME_HORAIRE_ENS_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + ); --- VOLUME_HORAIRE_ENS_SOURCE_FK -ALTER TABLE "VOLUME_HORAIRE_ENS" ADD CONSTRAINT "VOLUME_HORAIRE_ENS_SOURCE_FK" FOREIGN KEY ("SOURCE_ID") - REFERENCES "SOURCE" ("ID") ON DELETE CASCADE ENABLE; + DELETE TBL_CHARGENS_SEUILS_DEF WHERE to_delete = 1 AND ' || conds || '; --- VOLUME_HORAIRE_HCFK -ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VOLUME_HORAIRE_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + END;'; --- VOLUME_HORAIRE_HDFK -ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VOLUME_HORAIRE_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + END; --- VOLUME_HORAIRE_HMFK -ALTER TABLE "VOLUME_HORAIRE" ADD CONSTRAINT "VOLUME_HORAIRE_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- VOLUME_HORAIRE_REF_HCFK -ALTER TABLE "VOLUME_HORAIRE_REF" ADD CONSTRAINT "VOLUME_HORAIRE_REF_HCFK" FOREIGN KEY ("HISTO_CREATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; --- VOLUME_HORAIRE_REF_HDFK -ALTER TABLE "VOLUME_HORAIRE_REF" ADD CONSTRAINT "VOLUME_HORAIRE_REF_HDFK" FOREIGN KEY ("HISTO_DESTRUCTEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + PROCEDURE C_CLOTURE_REALISE( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; + BEGIN + conds := params_to_conds( params ); --- VOLUME_HORAIRE_REF_HMFK -ALTER TABLE "VOLUME_HORAIRE_REF" ADD CONSTRAINT "VOLUME_HORAIRE_REF_HMFK" FOREIGN KEY ("HISTO_MODIFICATEUR_ID") - REFERENCES "UTILISATEUR" ("ID") ENABLE; + EXECUTE IMMEDIATE 'BEGIN --- VVHR_VALIDATION_FK -ALTER TABLE "VALIDATION_VOL_HORAIRE_REF" ADD CONSTRAINT "VVHR_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") - REFERENCES "VALIDATION" ("ID") ON DELETE CASCADE ENABLE; + UPDATE TBL_CLOTURE_REALISE SET to_delete = 1 WHERE ' || conds || '; --- VVHR_VOLUME_HORAIRE_REF_FK -ALTER TABLE "VALIDATION_VOL_HORAIRE_REF" ADD CONSTRAINT "VVHR_VOLUME_HORAIRE_REF_FK" FOREIGN KEY ("VOLUME_HORAIRE_REF_ID") - REFERENCES "VOLUME_HORAIRE_REF" ("ID") ON DELETE CASCADE ENABLE; + MERGE INTO + TBL_CLOTURE_REALISE t + USING ( --- VVH_VALIDATION_FK -ALTER TABLE "VALIDATION_VOL_HORAIRE" ADD CONSTRAINT "VVH_VALIDATION_FK" FOREIGN KEY ("VALIDATION_ID") - REFERENCES "VALIDATION" ("ID") ON DELETE CASCADE ENABLE; + SELECT + tv.* + FROM + (WITH t AS ( + SELECT + i.annee_id annee_id, + i.id intervenant_id, + si.peut_cloturer_saisie peut_cloturer_saisie, + CASE WHEN v.id IS NULL THEN 0 ELSE 1 END cloture + FROM + intervenant i + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN type_validation tv ON tv.code = ''CLOTURE_REALISE'' --- VVH_VOLUME_HORAIRE_FK -ALTER TABLE "VALIDATION_VOL_HORAIRE" ADD CONSTRAINT "VVH_VOLUME_HORAIRE_FK" FOREIGN KEY ("VOLUME_HORAIRE_ID") - REFERENCES "VOLUME_HORAIRE" ("ID") ON DELETE CASCADE ENABLE; + LEFT JOIN validation v ON v.intervenant_id = i.id + AND v.type_validation_id = tv.id + AND v.histo_destruction IS NULL --- WE_PREC_WE_FK -ALTER TABLE "WF_ETAPE_DEP" ADD CONSTRAINT "WE_PREC_WE_FK" FOREIGN KEY ("ETAPE_PREC_ID") - REFERENCES "WF_ETAPE" ("ID") ON DELETE CASCADE ENABLE; + WHERE + i.histo_destruction IS NULL + ) + SELECT + annee_id, + intervenant_id, + peut_cloturer_saisie, + CASE WHEN sum(cloture) = 0 THEN 0 ELSE 1 END cloture + FROM + t + GROUP BY + annee_id, + intervenant_id, + peut_cloturer_saisie) tv + WHERE + ' || conds || ' --- WE_SUIV_WE_FK -ALTER TABLE "WF_ETAPE_DEP" ADD CONSTRAINT "WE_SUIV_WE_FK" FOREIGN KEY ("ETAPE_SUIV_ID") - REFERENCES "WF_ETAPE" ("ID") ON DELETE CASCADE ENABLE; + ) v ON ( + t.INTERVENANT_ID = v.INTERVENANT_ID --- WE_TYPE_INTERVENANT_FK -ALTER TABLE "WF_ETAPE_DEP" ADD CONSTRAINT "WE_TYPE_INTERVENANT_FK" FOREIGN KEY ("TYPE_INTERVENANT_ID") - REFERENCES "TYPE_INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + ) WHEN MATCHED THEN UPDATE SET --- WF_DB_ETAPE_DEP_FK -ALTER TABLE "WF_DEP_BLOQUANTE" ADD CONSTRAINT "WF_DB_ETAPE_DEP_FK" FOREIGN KEY ("WF_ETAPE_DEP_ID") - REFERENCES "WF_ETAPE_DEP" ("ID") ON DELETE CASCADE ENABLE; + ANNEE_ID = v.ANNEE_ID, + PEUT_CLOTURER_SAISIE = v.PEUT_CLOTURER_SAISIE, + CLOTURE = v.CLOTURE, + to_delete = 0 --- WF_DB_TBL_WORKFLOW_FK -ALTER TABLE "WF_DEP_BLOQUANTE" ADD CONSTRAINT "WF_DB_TBL_WORKFLOW_FK" FOREIGN KEY ("TBL_WORKFLOW_ID") - REFERENCES "TBL_WORKFLOW" ("ID") ON DELETE CASCADE ENABLE; + WHEN NOT MATCHED THEN INSERT ( --- indic_diff_dossier_INT_FK -ALTER TABLE "INDIC_MODIF_DOSSIER" ADD CONSTRAINT "indic_diff_dossier_INT_FK" FOREIGN KEY ("INTERVENANT_ID") - REFERENCES "INTERVENANT" ("ID") ON DELETE CASCADE ENABLE; + ID, + ANNEE_ID, + INTERVENANT_ID, + PEUT_CLOTURER_SAISIE, + CLOTURE, + TO_DELETE --------------------------------------------------- --- Triggers --------------------------------------------------- + ) VALUES ( --- AFFECTATION_RECHERCHE_CK -CREATE OR REPLACE TRIGGER "AFFECTATION_RECHERCHE_CK" - BEFORE INSERT OR UPDATE ON "AFFECTATION_RECHERCHE" - REFERENCING FOR EACH ROW - DECLARE - pragma autonomous_transaction; - rows_found integer; -BEGIN + TBL_CLOTURE_REALISE_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.INTERVENANT_ID, + v.PEUT_CLOTURER_SAISIE, + v.CLOTURE, + 0 - if :NEW.histo_destruction IS NOT NULL THEN RETURN; END IF; -- pas de check si c'est pour une historicisation + ); - select - count(*) into rows_found - from - affectation_recherche - where - intervenant_id = :new.intervenant_id - AND structure_id = :new.structure_id - AND histo_destruction IS NULL - AND id <> :NEW.id; + DELETE TBL_CLOTURE_REALISE WHERE to_delete = 1 AND ' || conds || '; - if rows_found > 0 THEN - raise_application_error(-20101, 'Un enseignant (id=' || :NEW.intervenant_id || ') ne peut pas avoir plusieurs affectations de recherche pour une même structure'); - END IF; + END;'; + + END; -END; -/ -ALTER TRIGGER "AFFECTATION_RECHERCHE_CK" ENABLE; + PROCEDURE C_CONTRAT( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; + BEGIN + conds := params_to_conds( params ); --- AGREMENT_CK -CREATE OR REPLACE TRIGGER "AGREMENT_CK" - BEFORE UPDATE ON "AGREMENT" - REFERENCING FOR EACH ROW - DECLARE - contrat_found INTEGER; -BEGIN + EXECUTE IMMEDIATE 'BEGIN - SELECT - COUNT(*) INTO contrat_found - FROM - contrat c - WHERE - c.INTERVENANT_ID = :NEW.intervenant_id - AND c.structure_id = NVL(:NEW.structure_id,c.structure_id) - AND c.histo_destruction IS NULL - AND ROWNUM = 1; + UPDATE TBL_CONTRAT SET to_delete = 1 WHERE ' || conds || '; - IF - 1 = contrat_found - AND :NEW.histo_destruction IS NOT NULL AND :OLD.histo_destruction IS NULL - THEN + MERGE INTO + TBL_CONTRAT t + USING ( - IF :NEW.structure_id IS NULL THEN - raise_application_error(-20101, 'Cet agrément ne peut pas être supprimé car un contrat a été signé.'); - ELSE - raise_application_error(-20101, 'Cet agrément ne peut pas être supprimé car un contrat a été signé dans la même composante.'); - END IF; - END IF; + SELECT + tv.* + FROM + (WITH t AS ( + SELECT + i.annee_id annee_id, + i.id intervenant_id, + si.peut_avoir_contrat peut_avoir_contrat, + NVL(ep.structure_id, i.structure_id) structure_id, + CASE WHEN evh.code IN (''contrat-edite'',''contrat-signe'') THEN 1 ELSE 0 END edite, + CASE WHEN evh.code IN (''contrat-signe'') THEN 1 ELSE 0 END signe + FROM + intervenant i -END; + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN service s ON s.intervenant_id = i.id + AND s.histo_destruction IS NULL -/ -ALTER TRIGGER "AGREMENT_CK" ENABLE; + JOIN type_volume_horaire tvh ON tvh.code = ''PREVU'' --- CALC_TAUX_HETD_ANNEES -CREATE OR REPLACE TRIGGER "CALC_TAUX_HETD_ANNEES" -AFTER INSERT OR UPDATE OR DELETE ON "TAUX_HORAIRE_HETD" -BEGIN - OSE_FORMULE.UPDATE_ANNEE_TAUX_HETD; -END; + JOIN volume_horaire vh ON vh.service_id = s.id + AND vh.histo_destruction IS NULL + AND vh.heures <> 0 + AND vh.type_volume_horaire_id = tvh.id -/ -ALTER TRIGGER "CALC_TAUX_HETD_ANNEES" ENABLE; + JOIN v_volume_horaire_etat vhe ON vhe.volume_horaire_id = vh.id --- CHARGENS_MAJ_EFFECTIFS -CREATE OR REPLACE TRIGGER "CHARGENS_MAJ_EFFECTIFS" - AFTER INSERT OR DELETE OR UPDATE ON "SCENARIO_NOEUD_EFFECTIF" - REFERENCING FOR EACH ROW - BEGIN -RETURN; - return; - IF NOT ose_chargens.ENABLE_TRIGGER_EFFECTIFS THEN RETURN; END IF; - IF DELETING THEN - ose_chargens.DEM_CALC_SUB_EFFECTIF( :OLD.scenario_noeud_id, :OLD.type_heures_id, :OLD.etape_id, 0 ); - ELSE - ose_chargens.DEM_CALC_SUB_EFFECTIF( :NEW.scenario_noeud_id, :NEW.type_heures_id, :NEW.etape_id, :NEW.effectif ); - END IF; + JOIN etat_volume_horaire evh ON evh.id = vhe.etat_volume_horaire_id + AND evh.code IN (''valide'', ''contrat-edite'', ''contrat-signe'') -END; + JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + WHERE + i.histo_destruction IS NULL + AND NOT (si.peut_avoir_contrat = 0 AND evh.code = ''valide'') -/ -ALTER TRIGGER "CHARGENS_MAJ_EFFECTIFS" ENABLE; + UNION ALL --- ELEMENT_PEDAGOGIQUE_CK -CREATE OR REPLACE TRIGGER "ELEMENT_PEDAGOGIQUE_CK" - BEFORE INSERT OR UPDATE ON "ELEMENT_PEDAGOGIQUE" - REFERENCING FOR EACH ROW - DECLARE - enseignement INTEGER; - source_id INTEGER; -BEGIN - SELECT id INTO source_id FROM source WHERE code = 'OSE'; + SELECT + i.annee_id annee_id, + i.id intervenant_id, + si.peut_avoir_contrat peut_avoir_contrat, + s.structure_id structure_id, + CASE WHEN evh.code IN (''contrat-edite'',''contrat-signe'') THEN 1 ELSE 0 END edite, + CASE WHEN evh.code IN (''contrat-signe'') THEN 1 ELSE 0 END signe + FROM + intervenant i - IF :NEW.source_id <> source_id THEN RETURN; END IF; -- impossible de checker car l'UPD par import se fait champ par champ... - - IF :NEW.fi = 0 AND :NEW.fc = 0 AND :NEW.fa = 0 THEN - raise_application_error(-20101, 'Un enseignement doit obligatoirement être au moins en FI, FC ou FA'); - END IF; + JOIN statut_intervenant si ON si.id = i.statut_id - IF 1 <> ROUND(:NEW.taux_fi + :NEW.taux_fc + :NEW.taux_fa, 2) THEN - raise_application_error( -20101, 'Le total des taux FI, FC et FA n''est pas égal à 100%'); - END IF; + JOIN service_referentiel s ON s.intervenant_id = i.id + AND s.histo_destruction IS NULL - IF :NEW.fi = 0 AND :NEW.taux_fi > 0 THEN - raise_application_error( -20101, 'Le taux FI doit être à 0 puisque la formation n''est pas dispensée en FI'); - END IF; + JOIN type_volume_horaire tvh ON tvh.code = ''PREVU'' - IF :NEW.fa = 0 AND :NEW.taux_fa > 0 THEN - raise_application_error( -20101, 'Le taux FA doit être à 0 puisque la formation n''est pas dispensée en FA'); - END IF; - - IF :NEW.fc = 0 AND :NEW.taux_fc > 0 THEN - raise_application_error( -20101, 'Le taux FC doit être à 0 puisque la formation n''est pas dispensée en FC'); - END IF; + JOIN volume_horaire_ref vh ON vh.service_referentiel_id = s.id + AND vh.histo_destruction IS NULL + AND vh.heures <> 0 + AND vh.type_volume_horaire_id = tvh.id - IF :NEW.periode_id IS NOT NULL THEN - SELECT p.enseignement - INTO enseignement - FROM periode p - WHERE p.id = :NEW.periode_id; - IF enseignement <> 1 THEN - raise_application_error(-20101, 'Cette période n''est pas appliquable à cet élément pédagogique.'); - END IF; - END IF; + JOIN v_volume_horaire_ref_etat vhe ON vhe.volume_horaire_ref_id = vh.id -END; + JOIN etat_volume_horaire evh ON evh.id = vhe.etat_volume_horaire_id + AND evh.code IN (''valide'', ''contrat-edite'', ''contrat-signe'') -/ -ALTER TRIGGER "ELEMENT_PEDAGOGIQUE_CK" ENABLE; + WHERE + i.histo_destruction IS NULL + AND NOT (si.peut_avoir_contrat = 0 AND evh.code = ''valide'') + ) + SELECT + annee_id, + intervenant_id, + peut_avoir_contrat, + structure_id, + count(*) as nbvh, + sum(edite) as edite, + sum(signe) as signe + FROM + t + GROUP BY + annee_id, + intervenant_id, + peut_avoir_contrat, + structure_id) tv + WHERE + ' || conds || ' --- F_CONTRAT -CREATE OR REPLACE TRIGGER "F_CONTRAT" - AFTER DELETE OR UPDATE OF INTERVENANT_ID, STRUCTURE_ID, VALIDATION_ID, DATE_RETOUR_SIGNE, HISTO_CREATION, HISTO_DESTRUCTION ON "CONTRAT" - REFERENCING FOR EACH ROW - BEGIN + ) v ON ( + t.INTERVENANT_ID = v.INTERVENANT_ID + AND COALESCE(t.STRUCTURE_ID,0) = COALESCE(v.STRUCTURE_ID,0) - IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + ) WHEN MATCHED THEN UPDATE SET - FOR p IN ( + ANNEE_ID = v.ANNEE_ID, + PEUT_AVOIR_CONTRAT = v.PEUT_AVOIR_CONTRAT, + NBVH = v.NBVH, + EDITE = v.EDITE, + SIGNE = v.SIGNE, + to_delete = 0 - SELECT DISTINCT - s.intervenant_id - FROM - volume_horaire vh - JOIN service s ON s.id = vh.service_id AND s.histo_destruction IS NULL - WHERE - vh.histo_destruction IS NULL - AND (vh.contrat_id = :OLD.id OR vh.contrat_id = :NEW.id) + WHEN NOT MATCHED THEN INSERT ( - ) LOOP + ID, + ANNEE_ID, + INTERVENANT_ID, + PEUT_AVOIR_CONTRAT, + STRUCTURE_ID, + NBVH, + EDITE, + SIGNE, + TO_DELETE - UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); + ) VALUES ( - END LOOP; + TBL_CONTRAT_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.INTERVENANT_ID, + v.PEUT_AVOIR_CONTRAT, + v.STRUCTURE_ID, + v.NBVH, + v.EDITE, + v.SIGNE, + 0 -END; + ); -/ -ALTER TRIGGER "F_CONTRAT" ENABLE; + DELETE TBL_CONTRAT WHERE to_delete = 1 AND ' || conds || '; --- F_CONTRAT_S -CREATE OR REPLACE TRIGGER "F_CONTRAT_S" - AFTER DELETE OR UPDATE ON "CONTRAT" - BEGIN - UNICAEN_TBL.CALCULER_DEMANDES; -END; + END;'; + END; -/ -ALTER TRIGGER "F_CONTRAT_S" ENABLE; --- F_ELEMENT_MODULATEUR -CREATE OR REPLACE TRIGGER "F_ELEMENT_MODULATEUR" - AFTER INSERT OR DELETE OR UPDATE ON "ELEMENT_MODULATEUR" - REFERENCING FOR EACH ROW + + PROCEDURE C_DMEP_LIQUIDATION( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; BEGIN + conds := params_to_conds( params ); - IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + EXECUTE IMMEDIATE 'BEGIN - FOR p IN ( + UPDATE TBL_DMEP_LIQUIDATION SET to_delete = 1 WHERE ' || conds || '; + + MERGE INTO + TBL_DMEP_LIQUIDATION t + USING ( + + SELECT + tv.* + FROM + (SELECT + annee_id, + type_ressource_id, + structure_id, + SUM(heures) heures + FROM + ( + SELECT + i.annee_id, + cc.type_ressource_id, + COALESCE( ep.structure_id, i.structure_id ) structure_id, + mep.heures + FROM + mise_en_paiement mep + JOIN centre_cout cc ON cc.id = mep.centre_cout_id + JOIN formule_resultat_service frs ON frs.id = mep.formule_res_service_id + JOIN service s ON s.id = frs.service_id + JOIN intervenant i ON i.id = s.intervenant_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + WHERE + mep.histo_destruction IS NULL - SELECT DISTINCT - s.intervenant_id - FROM - service s - WHERE - s.histo_destruction IS NULL - AND (s.element_pedagogique_id = :OLD.element_id OR s.element_pedagogique_id = :NEW.element_id) + UNION ALL - ) LOOP + SELECT + i.annee_id, + cc.type_ressource_id, + sr.structure_id structure_id, + heures + FROM + mise_en_paiement mep + JOIN centre_cout cc ON cc.id = mep.centre_cout_id + JOIN formule_resultat_service_ref frsr ON frsr.id = mep.formule_res_service_ref_id + JOIN service_referentiel sr ON sr.id = frsr.service_referentiel_id + JOIN intervenant i ON i.id = sr.intervenant_id - UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); + WHERE + mep.histo_destruction IS NULL - END LOOP; + ) t1 + GROUP BY + annee_id, type_ressource_id, structure_id) tv + WHERE + ' || conds || ' -END; + ) v ON ( + t.ANNEE_ID = v.ANNEE_ID + AND t.TYPE_RESSOURCE_ID = v.TYPE_RESSOURCE_ID + AND t.STRUCTURE_ID = v.STRUCTURE_ID + ) WHEN MATCHED THEN UPDATE SET -/ -ALTER TRIGGER "F_ELEMENT_MODULATEUR" ENABLE; + HEURES = v.HEURES, + to_delete = 0 --- F_ELEMENT_MODULATEUR_S -CREATE OR REPLACE TRIGGER "F_ELEMENT_MODULATEUR_S" - AFTER INSERT OR DELETE OR UPDATE ON "ELEMENT_MODULATEUR" - BEGIN - UNICAEN_TBL.CALCULER_DEMANDES; -END; + WHEN NOT MATCHED THEN INSERT ( + ID, + ANNEE_ID, + TYPE_RESSOURCE_ID, + STRUCTURE_ID, + HEURES, + TO_DELETE -/ -ALTER TRIGGER "F_ELEMENT_MODULATEUR_S" ENABLE; + ) VALUES ( --- F_ELEMENT_PEDAGOGIQUE -CREATE OR REPLACE TRIGGER "F_ELEMENT_PEDAGOGIQUE" - AFTER DELETE OR UPDATE OF ID, STRUCTURE_ID, PERIODE_ID, TAUX_FI, TAUX_FC, TAUX_FA, TAUX_FOAD, FI, FC, FA, HISTO_CREATION, HISTO_DESTRUCTION, ANNEE_ID ON "ELEMENT_PEDAGOGIQUE" - REFERENCING FOR EACH ROW - BEGIN + TBL_DMEP_LIQUIDATION_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.TYPE_RESSOURCE_ID, + v.STRUCTURE_ID, + v.HEURES, + 0 - IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + ); - FOR p IN - ( SELECT DISTINCT s.intervenant_id - FROM service s - WHERE (s.element_pedagogique_id = :NEW.id - OR s.element_pedagogique_id = :OLD.id) - AND s.histo_destruction IS NULL - ) LOOP UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); -END LOOP; -END; + DELETE TBL_DMEP_LIQUIDATION WHERE to_delete = 1 AND ' || conds || '; -/ -ALTER TRIGGER "F_ELEMENT_PEDAGOGIQUE" ENABLE; + END;'; --- F_ELEMENT_PEDAGOGIQUE_S -CREATE OR REPLACE TRIGGER "F_ELEMENT_PEDAGOGIQUE_S" - AFTER DELETE OR UPDATE ON "ELEMENT_PEDAGOGIQUE" - BEGIN - UNICAEN_TBL.CALCULER_DEMANDES; -END; + END; -/ -ALTER TRIGGER "F_ELEMENT_PEDAGOGIQUE_S" ENABLE; --- F_INTERVENANT -CREATE OR REPLACE TRIGGER "F_INTERVENANT" - AFTER UPDATE OF ID, DATE_NAISSANCE, STATUT_ID, STRUCTURE_ID, HISTO_CREATION, HISTO_DESTRUCTION, PREMIER_RECRUTEMENT, ANNEE_ID ON "INTERVENANT" - REFERENCING FOR EACH ROW + PROCEDURE C_DOSSIER( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; BEGIN + conds := params_to_conds( params ); - IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + EXECUTE IMMEDIATE 'BEGIN - FOR p IN ( + UPDATE TBL_DOSSIER SET to_delete = 1 WHERE ' || conds || '; - SELECT DISTINCT - fr.intervenant_id - FROM - formule_resultat fr - WHERE - fr.intervenant_id = :NEW.id OR fr.intervenant_id = :OLD.id + MERGE INTO + TBL_DOSSIER t + USING ( - ) LOOP + SELECT + tv.* + FROM + (SELECT + i.annee_id, + i.id intervenant_id, + si.peut_saisir_dossier, + d.id dossier_id, + v.id validation_id + FROM + intervenant i + JOIN statut_intervenant si ON si.id = i.statut_id + LEFT JOIN dossier d ON d.intervenant_id = i.id + AND d.histo_destruction IS NULL - UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); + JOIN type_validation tv ON tv.code = ''DONNEES_PERSO_PAR_COMP'' + LEFT JOIN validation v ON v.intervenant_id = i.id + AND v.type_validation_id = tv.id + AND v.histo_destruction IS NULL + WHERE + i.histo_destruction IS NULL) tv + WHERE + ' || conds || ' - END LOOP; + ) v ON ( + t.INTERVENANT_ID = v.INTERVENANT_ID -END; + ) WHEN MATCHED THEN UPDATE SET + ANNEE_ID = v.ANNEE_ID, + PEUT_SAISIR_DOSSIER = v.PEUT_SAISIR_DOSSIER, + DOSSIER_ID = v.DOSSIER_ID, + VALIDATION_ID = v.VALIDATION_ID, + to_delete = 0 -/ -ALTER TRIGGER "F_INTERVENANT" ENABLE; + WHEN NOT MATCHED THEN INSERT ( --- F_INTERVENANT_S -CREATE OR REPLACE TRIGGER "F_INTERVENANT_S" - AFTER UPDATE ON "INTERVENANT" - BEGIN - UNICAEN_TBL.CALCULER_DEMANDES; -END; + ID, + ANNEE_ID, + INTERVENANT_ID, + PEUT_SAISIR_DOSSIER, + DOSSIER_ID, + VALIDATION_ID, + TO_DELETE + ) VALUES ( -/ -ALTER TRIGGER "F_INTERVENANT_S" ENABLE; + TBL_DOSSIER_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.INTERVENANT_ID, + v.PEUT_SAISIR_DOSSIER, + v.DOSSIER_ID, + v.VALIDATION_ID, + 0 --- F_MODIF_SERVICE_DU -CREATE OR REPLACE TRIGGER "F_MODIF_SERVICE_DU" - AFTER INSERT OR DELETE OR UPDATE ON "MODIFICATION_SERVICE_DU" - REFERENCING FOR EACH ROW - BEGIN + ); - IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + DELETE TBL_DOSSIER WHERE to_delete = 1 AND ' || conds || '; - IF DELETING OR UPDATING THEN - UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', :OLD.intervenant_id) ); - END IF; - IF INSERTING OR UPDATING THEN - UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', :NEW.intervenant_id) ); - END IF; + END;'; -END; + END; -/ -ALTER TRIGGER "F_MODIF_SERVICE_DU" ENABLE; --- F_MODIF_SERVICE_DU_S -CREATE OR REPLACE TRIGGER "F_MODIF_SERVICE_DU_S" - AFTER INSERT OR DELETE OR UPDATE ON "MODIFICATION_SERVICE_DU" + PROCEDURE C_PAIEMENT( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; BEGIN - UNICAEN_TBL.CALCULER_DEMANDES; -END; + conds := params_to_conds( params ); + EXECUTE IMMEDIATE 'BEGIN -/ -ALTER TRIGGER "F_MODIF_SERVICE_DU_S" ENABLE; + UPDATE TBL_PAIEMENT SET to_delete = 1 WHERE ' || conds || '; --- F_MODULATEUR -CREATE OR REPLACE TRIGGER "F_MODULATEUR" - AFTER DELETE OR UPDATE ON "MODULATEUR" - REFERENCING FOR EACH ROW - BEGIN + MERGE INTO + TBL_PAIEMENT t + USING ( - IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + SELECT + tv.* + FROM + (SELECT + i.annee_id annee_id, + frs.id formule_res_service_id, + null formule_res_service_ref_id, + i.id intervenant_id, + COALESCE( ep.structure_id, i.structure_id ) structure_id, + mep.id mise_en_paiement_id, + mep.periode_paiement_id periode_paiement_id, + frs.heures_compl_fi + frs.heures_compl_fc + frs.heures_compl_fa + frs.heures_compl_fc_majorees heures_a_payer, + count(*) OVER(PARTITION BY frs.id) heures_a_payer_pond, + NVL(mep.heures,0) heures_demandees, + CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees + FROM + formule_resultat_service frs + JOIN type_volume_horaire tvh ON tvh.code = ''REALISE'' + JOIN etat_volume_horaire evh ON evh.code = ''valide'' + JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id + AND fr.type_volume_horaire_id = tvh.id + AND fr.etat_volume_horaire_id = evh.id - FOR p IN ( + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN service s ON s.id = frs.service_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id + AND mep.histo_destruction IS NULL - SELECT DISTINCT - s.intervenant_id - FROM - service s - JOIN element_modulateur em ON - em.element_id = s.element_pedagogique_id - AND em.histo_destruction IS NULL - WHERE - s.histo_destruction IS NULL - AND (em.modulateur_id = :OLD.id OR em.modulateur_id = :NEW.id) + UNION ALL + + SELECT + i.annee_id annee_id, + null formule_res_service_id, + frs.id formule_res_service_ref_id, + i.id intervenant_id, + s.structure_id structure_id, + mep.id mise_en_paiement_id, + mep.periode_paiement_id periode_paiement_id, + frs.heures_compl_referentiel heures_a_payer, + count(*) OVER(PARTITION BY frs.id) heures_a_payer_pond, + NVL(mep.heures,0) heures_demandees, + CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees + FROM + formule_resultat_service_ref frs + JOIN type_volume_horaire tvh ON tvh.code = ''REALISE'' + JOIN etat_volume_horaire evh ON evh.code = ''valide'' + JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id + AND fr.type_volume_horaire_id = tvh.id + AND fr.etat_volume_horaire_id = evh.id + + JOIN intervenant i ON i.id = fr.intervenant_id + JOIN service_referentiel s ON s.id = frs.service_referentiel_id + LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_ref_id = frs.id + AND mep.histo_destruction IS NULL) tv + WHERE + ' || conds || ' - ) LOOP + ) v ON ( + t.INTERVENANT_ID = v.INTERVENANT_ID + AND COALESCE(t.MISE_EN_PAIEMENT_ID,0) = COALESCE(v.MISE_EN_PAIEMENT_ID,0) + AND COALESCE(t.FORMULE_RES_SERVICE_ID,0) = COALESCE(v.FORMULE_RES_SERVICE_ID,0) + AND COALESCE(t.FORMULE_RES_SERVICE_REF_ID,0) = COALESCE(v.FORMULE_RES_SERVICE_REF_ID,0) - UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); + ) WHEN MATCHED THEN UPDATE SET - END LOOP; -END; + ANNEE_ID = v.ANNEE_ID, + STRUCTURE_ID = v.STRUCTURE_ID, + PERIODE_PAIEMENT_ID = v.PERIODE_PAIEMENT_ID, + HEURES_A_PAYER = v.HEURES_A_PAYER, + HEURES_A_PAYER_POND = v.HEURES_A_PAYER_POND, + HEURES_DEMANDEES = v.HEURES_DEMANDEES, + HEURES_PAYEES = v.HEURES_PAYEES, + to_delete = 0 + WHEN NOT MATCHED THEN INSERT ( -/ -ALTER TRIGGER "F_MODULATEUR" ENABLE; + ID, + ANNEE_ID, + INTERVENANT_ID, + STRUCTURE_ID, + MISE_EN_PAIEMENT_ID, + PERIODE_PAIEMENT_ID, + HEURES_A_PAYER, + HEURES_A_PAYER_POND, + HEURES_DEMANDEES, + HEURES_PAYEES, + FORMULE_RES_SERVICE_ID, + FORMULE_RES_SERVICE_REF_ID, + TO_DELETE --- F_MODULATEUR_S -CREATE OR REPLACE TRIGGER "F_MODULATEUR_S" - AFTER DELETE OR UPDATE ON "MODULATEUR" - BEGIN - UNICAEN_TBL.CALCULER_DEMANDES; -END; + ) VALUES ( + TBL_PAIEMENT_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.INTERVENANT_ID, + v.STRUCTURE_ID, + v.MISE_EN_PAIEMENT_ID, + v.PERIODE_PAIEMENT_ID, + v.HEURES_A_PAYER, + v.HEURES_A_PAYER_POND, + v.HEURES_DEMANDEES, + v.HEURES_PAYEES, + v.FORMULE_RES_SERVICE_ID, + v.FORMULE_RES_SERVICE_REF_ID, + 0 -/ -ALTER TRIGGER "F_MODULATEUR_S" ENABLE; + ); --- F_MOTIF_MODIFICATION_SERVICE -CREATE OR REPLACE TRIGGER "F_MOTIF_MODIFICATION_SERVICE" - AFTER DELETE OR UPDATE ON "MOTIF_MODIFICATION_SERVICE" - REFERENCING FOR EACH ROW - BEGIN + DELETE TBL_PAIEMENT WHERE to_delete = 1 AND ' || conds || '; - IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + END;'; - FOR p IN ( + END; - SELECT DISTINCT - intervenant_id - FROM - modification_service_du msd - WHERE - msd.histo_destruction IS NULL - AND (msd.motif_id = :NEW.id OR msd.motif_id = :OLD.id) - ) LOOP - UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); + PROCEDURE C_PIECE_JOINTE( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; + BEGIN + conds := params_to_conds( params ); - END LOOP; + EXECUTE IMMEDIATE 'BEGIN -END; + UPDATE TBL_PIECE_JOINTE SET to_delete = 1 WHERE ' || conds || '; + MERGE INTO + TBL_PIECE_JOINTE t + USING ( -/ -ALTER TRIGGER "F_MOTIF_MODIFICATION_SERVICE" ENABLE; + SELECT + tv.* + FROM + (WITH pjf AS ( + SELECT + pjf.annee_id, + pjf.type_piece_jointe_id, + pjf.intervenant_id, + COUNT(*) count, + SUM(CASE WHEN validation_id IS NULL THEN 0 ELSE 1 END) validation, + SUM(CASE WHEN fichier_id IS NULL THEN 0 ELSE 1 END) fichier + FROM + tbl_piece_jointe_fournie pjf + GROUP BY + pjf.annee_id, + pjf.type_piece_jointe_id, + pjf.intervenant_id + ) + SELECT + NVL( pjd.annee_id, pjf.annee_id ) annee_id, + NVL( pjd.type_piece_jointe_id, pjf.type_piece_jointe_id ) type_piece_jointe_id, + NVL( pjd.intervenant_id, pjf.intervenant_id ) intervenant_id, + CASE WHEN pjd.intervenant_id IS NULL THEN 0 ELSE 1 END demandee, + CASE WHEN pjf.fichier = pjf.count THEN 1 ELSE 0 END fournie, + CASE WHEN pjf.validation = pjf.count THEN 1 ELSE 0 END validee, + NVL(pjd.heures_pour_seuil,0) heures_pour_seuil + FROM + tbl_piece_jointe_demande pjd + FULL JOIN pjf ON pjf.type_piece_jointe_id = pjd.type_piece_jointe_id AND pjf.intervenant_id = pjd.intervenant_id) tv + WHERE + ' || conds || ' --- F_MOTIF_MODIFICATION_SERVICE_S -CREATE OR REPLACE TRIGGER "F_MOTIF_MODIFICATION_SERVICE_S" - AFTER DELETE OR UPDATE ON "MOTIF_MODIFICATION_SERVICE" - BEGIN - UNICAEN_TBL.CALCULER_DEMANDES; -END; + ) v ON ( + t.TYPE_PIECE_JOINTE_ID = v.TYPE_PIECE_JOINTE_ID + AND t.INTERVENANT_ID = v.INTERVENANT_ID + ) WHEN MATCHED THEN UPDATE SET -/ -ALTER TRIGGER "F_MOTIF_MODIFICATION_SERVICE_S" ENABLE; + ANNEE_ID = v.ANNEE_ID, + DEMANDEE = v.DEMANDEE, + FOURNIE = v.FOURNIE, + VALIDEE = v.VALIDEE, + HEURES_POUR_SEUIL = v.HEURES_POUR_SEUIL, + to_delete = 0 --- F_STATUT_INTERVENANT -CREATE OR REPLACE TRIGGER "F_STATUT_INTERVENANT" - AFTER UPDATE OF SERVICE_STATUTAIRE, DEPASSEMENT, TYPE_INTERVENANT_ID, NON_AUTORISE ON "STATUT_INTERVENANT" - REFERENCING FOR EACH ROW - BEGIN + WHEN NOT MATCHED THEN INSERT ( - IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + ID, + ANNEE_ID, + TYPE_PIECE_JOINTE_ID, + INTERVENANT_ID, + DEMANDEE, + FOURNIE, + VALIDEE, + HEURES_POUR_SEUIL, + TO_DELETE - FOR p IN ( + ) VALUES ( - SELECT DISTINCT - fr.intervenant_id - FROM - intervenant i - JOIN formule_resultat fr ON fr.intervenant_id = i.id - WHERE - (i.statut_id = :NEW.id OR i.statut_id = :OLD.id) - AND i.histo_destruction IS NULL + TBL_PIECE_JOINTE_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.TYPE_PIECE_JOINTE_ID, + v.INTERVENANT_ID, + v.DEMANDEE, + v.FOURNIE, + v.VALIDEE, + v.HEURES_POUR_SEUIL, + 0 - ) LOOP + ); - UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); + DELETE TBL_PIECE_JOINTE WHERE to_delete = 1 AND ' || conds || '; - END LOOP; -END; + END;'; + END; -/ -ALTER TRIGGER "F_STATUT_INTERVENANT" ENABLE; --- F_STATUT_INTERVENANT_S -CREATE OR REPLACE TRIGGER "F_STATUT_INTERVENANT_S" - AFTER UPDATE ON "STATUT_INTERVENANT" + + PROCEDURE C_PIECE_JOINTE_DEMANDE( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; BEGIN - UNICAEN_TBL.CALCULER_DEMANDES; -END; + conds := params_to_conds( params ); + EXECUTE IMMEDIATE 'BEGIN -/ -ALTER TRIGGER "F_STATUT_INTERVENANT_S" ENABLE; + UPDATE TBL_PIECE_JOINTE_DEMANDE SET to_delete = 1 WHERE ' || conds || '; --- F_TYPE_INTERVENTION -CREATE OR REPLACE TRIGGER "F_TYPE_INTERVENTION" - AFTER UPDATE OF TAUX_HETD_SERVICE, TAUX_HETD_COMPLEMENTAIRE ON "TYPE_INTERVENTION" - REFERENCING FOR EACH ROW - BEGIN + MERGE INTO + TBL_PIECE_JOINTE_DEMANDE t + USING ( - IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + SELECT + tv.* + FROM + (WITH i_h AS ( + SELECT + s.intervenant_id, + sum(vh.heures) heures, + sum(ep.taux_fc) fc + FROM + service s + JOIN type_volume_horaire tvh ON tvh.code = ''PREVU'' + JOIN volume_horaire vh ON vh.service_id = s.id + AND vh.type_volume_horaire_id = tvh.id + AND vh.histo_destruction IS NULL + JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id -- Service sur l''établissement + WHERE + s.histo_destruction IS NULL + AND vh.motif_non_paiement_id IS NULL -- pas de motif de non paiement + GROUP BY + s.intervenant_id + ) + SELECT + i.annee_id annee_id, + i.id intervenant_id, + tpj.id type_piece_jointe_id, + MAX(COALESCE(i_h.heures, 0)) heures_pour_seuil + FROM + intervenant i - FOR p IN ( + LEFT JOIN dossier d ON d.intervenant_id = i.id + AND d.histo_destruction IS NULL - SELECT DISTINCT - s.intervenant_id - FROM - volume_horaire vh - JOIN service s ON s.id = vh.service_id AND s.histo_destruction IS NULL - WHERE - vh.histo_destruction IS NULL - AND (vh.type_intervention_id = :NEW.id OR vh.type_intervention_id = :OLD.id) + JOIN type_piece_jointe_statut tpjs ON tpjs.statut_intervenant_id = i.statut_id + AND tpjs.histo_destruction IS NULL + AND i.annee_id BETWEEN COALESCE(tpjs.annee_debut_id,i.annee_id) AND COALESCE(tpjs.annee_fin_id,i.annee_id) - ) LOOP + JOIN type_piece_jointe tpj ON tpj.id = tpjs.type_piece_jointe_id + AND tpj.histo_destruction IS NULL - UNICAEN_TBL.DEMANDE_CALCUL('formule', UNICAEN_TBL.make_params('INTERVENANT_ID', p.intervenant_id) ); + LEFT JOIN i_h ON i_h.intervenant_id = i.id + WHERE + -- Gestion de l''historique + i.histo_destruction IS NULL - END LOOP; -END; + -- Seuil HETD + AND (COALESCE(i_h.heures,0) > COALESCE(tpjs.seuil_hetd,-1)) + -- En fonction du premier recrutement ou non + AND (tpjs.premier_recrutement = 0 OR COALESCE(i.premier_recrutement,0) = 1) -/ -ALTER TRIGGER "F_TYPE_INTERVENTION" ENABLE; + -- Le RIB n''est demandé QUE s''il est différent!! + AND CASE + WHEN tpjs.changement_rib = 0 OR d.id IS NULL THEN 1 + ELSE CASE WHEN replace(i.bic, '' '', '''') || ''-'' || replace(i.iban, '' '', '''') = d.rib THEN 0 ELSE 1 END + END = 1 --- F_TYPE_INTERVENTION_S -CREATE OR REPLACE TRIGGER "F_TYPE_INTERVENTION_S" - AFTER UPDATE ON "TYPE_INTERVENTION" - BEGIN - UNICAEN_TBL.CALCULER_DEMANDES; -END; + -- Filtre FC + AND (tpjs.fc = 0 OR i_h.fc > 0) + GROUP BY + i.annee_id, + i.id, + tpj.id) tv + WHERE + ' || conds || ' + ) v ON ( + t.TYPE_PIECE_JOINTE_ID = v.TYPE_PIECE_JOINTE_ID + AND t.INTERVENANT_ID = v.INTERVENANT_ID -/ -ALTER TRIGGER "F_TYPE_INTERVENTION_S" ENABLE; + ) WHEN MATCHED THEN UPDATE SET --- INDIC_TRG_MODIF_DOSSIER -CREATE OR REPLACE TRIGGER "INDIC_TRG_MODIF_DOSSIER" - AFTER INSERT OR UPDATE OF NOM_USUEL, NOM_PATRONYMIQUE, PRENOM, CIVILITE_ID, ADRESSE, RIB, DATE_NAISSANCE ON "DOSSIER" + ANNEE_ID = v.ANNEE_ID, + HEURES_POUR_SEUIL = v.HEURES_POUR_SEUIL, + to_delete = 0 - FOR EACH ROW -/** - * But : mettre à jour la liste des PJ attendues. - */ -DECLARE - i integer := 1; - intervenantId NUMERIC; - found integer; - estCreationDossier integer; - type array_t is table of varchar2(1024); - - attrNames array_t := array_t(); - attrOldVals array_t := array_t(); - attrNewVals array_t := array_t(); - - -- valeurs importées (format texte) : - impSourceName source.libelle%type; - impNomUsuel indic_modif_dossier.ATTR_NEW_VALUE%type; - impNomPatro indic_modif_dossier.ATTR_NEW_VALUE%type; - impPrenom indic_modif_dossier.ATTR_NEW_VALUE%type; - impCivilite indic_modif_dossier.ATTR_NEW_VALUE%type; - impDateNaiss indic_modif_dossier.ATTR_NEW_VALUE%type; - impAdresse indic_modif_dossier.ATTR_NEW_VALUE%type; - impRib indic_modif_dossier.ATTR_NEW_VALUE%type; - -- anciennes valeurs dans le dossier (format texte) : - oldSourceName source.libelle%type; - oldNomUsuel indic_modif_dossier.ATTR_NEW_VALUE%type; - oldNomPatro indic_modif_dossier.ATTR_NEW_VALUE%type; - oldPrenom indic_modif_dossier.ATTR_NEW_VALUE%type; - oldCivilite indic_modif_dossier.ATTR_NEW_VALUE%type; - oldDateNaiss indic_modif_dossier.ATTR_NEW_VALUE%type; - oldAdresse indic_modif_dossier.ATTR_NEW_VALUE%type; - oldRib indic_modif_dossier.ATTR_NEW_VALUE%type; - -- nouvelles valeurs dans le dossier (format texte) : - newSourceName source.libelle%type; - newNomUsuel indic_modif_dossier.ATTR_NEW_VALUE%type; - newNomPatro indic_modif_dossier.ATTR_NEW_VALUE%type; - newPrenom indic_modif_dossier.ATTR_NEW_VALUE%type; - newCivilite indic_modif_dossier.ATTR_NEW_VALUE%type; - newDateNaiss indic_modif_dossier.ATTR_NEW_VALUE%type; - newAdresse indic_modif_dossier.ATTR_NEW_VALUE%type; - newRib indic_modif_dossier.ATTR_NEW_VALUE%type; -BEGIN - -- - -- Témoin indiquant s'il s'agit d'une création de dossier (insert). - -- - estCreationDossier := case when inserting then 1 else 0 end; - - -- - -- Fetch source OSE. - -- - select s.libelle into newSourceName from source s where s.code = 'OSE'; - - -- - -- Fetch et formattage texte des valeurs importées. - -- - select - i.id, - s.libelle, - nvl(i.NOM_USUEL, '(Aucun)'), - nvl(i.NOM_PATRONYMIQUE, '(Aucun)'), - nvl(i.PRENOM, '(Aucun)'), - nvl(c.libelle_court, '(Aucune)'), - nvl(to_char(i.DATE_NAISSANCE, 'DD/MM/YYYY'), '(Aucune)'), - nvl(ose_divers.formatted_rib(i.bic, i.iban), '(Aucun)'), - case when a.id is not null - then ose_divers.formatted_adresse(a.NO_VOIE, a.NOM_VOIE, a.BATIMENT, a.MENTION_COMPLEMENTAIRE, a.LOCALITE, a.CODE_POSTAL, a.VILLE, a.PAYS_LIBELLE) - else '(Aucune)' - end - into - intervenantId, - oldSourceName, - impNomUsuel, - impNomPatro, - impPrenom, - impCivilite, - impDateNaiss, - impRib, - impAdresse - from intervenant i - join source s on s.id = i.source_id - left join civilite c on c.id = i.civilite_id - left join adresse_intervenant a on a.intervenant_id = i.id - where i.id = :NEW.intervenant_id; - - -- - -- Anciennes valeurs dans le cas d'une création de dossier : ce sont les valeurs importées. - -- - if (1 = estCreationDossier) then - --dbms_output.put_line('inserting'); - oldNomUsuel := impNomUsuel; - oldNomPatro := impNomPatro; - oldPrenom := impPrenom; - oldCivilite := impCivilite; - oldDateNaiss := impDateNaiss; - oldAdresse := impAdresse; - oldRib := impRib; - -- - -- Anciennes valeurs dans le cas d'une mise à jour du dossier. - -- - else - --dbms_output.put_line('updating'); - oldNomUsuel := trim(:OLD.NOM_USUEL); - oldNomPatro := trim(:OLD.NOM_PATRONYMIQUE); - oldPrenom := trim(:OLD.PRENOM); - oldDateNaiss := case when :OLD.DATE_NAISSANCE is null then '(Aucune)' else to_char(:OLD.DATE_NAISSANCE, 'DD/MM/YYYY') end; - oldAdresse := trim(:OLD.ADRESSE); - oldRib := trim(:OLD.RIB); - if :OLD.CIVILITE_ID is not null then - select c.libelle_court into oldCivilite from civilite c where c.id = :OLD.CIVILITE_ID; - else - oldCivilite := '(Aucune)'; - end if; - select s.libelle into oldSourceName from source s where s.code = 'OSE'; - end if; - - -- - -- Nouvelles valeurs saisies. - -- - newNomUsuel := trim(:NEW.NOM_USUEL); - newNomPatro := trim(:NEW.NOM_PATRONYMIQUE); - newPrenom := trim(:NEW.PRENOM); - newDateNaiss := case when :NEW.DATE_NAISSANCE is null then '(Aucune)' else to_char(:NEW.DATE_NAISSANCE, 'DD/MM/YYYY') end; - newAdresse := trim(:NEW.ADRESSE); - newRib := trim(:NEW.RIB); - if :NEW.CIVILITE_ID is not null then - select c.libelle_court into newCivilite from civilite c where c.id = :NEW.CIVILITE_ID; - else - newCivilite := '(Aucune)'; - end if; - - -- - -- Détection des différences. - -- - if newNomUsuel <> oldNomUsuel then - --dbms_output.put_line('NOM_USUEL ' || sourceLib || ' = ' || oldNomUsuel || ' --> NOM_USUEL OSE = ' || :NEW.NOM_USUEL); - attrNames.extend(1); - attrOldVals.extend(1); - attrNewVals.extend(1); - attrNames(i) := 'Nom usuel'; - attrOldVals(i) := oldNomUsuel; - attrNewVals(i) := newNomUsuel; - i := i + 1; - end if; - if newNomPatro <> oldNomPatro then - --dbms_output.put_line('NOM_PATRONYMIQUE ' || sourceLib || ' = ' || oldNomPatro || ' --> NOM_PATRONYMIQUE OSE = ' || :NEW.NOM_PATRONYMIQUE); - attrNames.extend(1); - attrOldVals.extend(1); - attrNewVals.extend(1); - attrNames(i) := 'Nom de naissance'; - attrOldVals(i) := oldNomPatro; - attrNewVals(i) := newNomPatro; - i := i + 1; - end if; - if newPrenom <> oldPrenom then - --dbms_output.put_line('PRENOM ' || sourceLib || ' = ' || oldPrenom || ' --> PRENOM OSE = ' || :NEW.PRENOM); - attrNames.extend(1); - attrOldVals.extend(1); - attrNewVals.extend(1); - attrNames(i) := 'Prénom'; - attrOldVals(i) := oldPrenom; - attrNewVals(i) := newPrenom; - i := i + 1; - end if; - if newCivilite <> oldCivilite then - --dbms_output.put_line('CIVILITE_ID ' || sourceLib || ' = ' || oldCivilite || ' --> CIVILITE_ID OSE = ' || :NEW.CIVILITE_ID); - attrNames.extend(1); - attrOldVals.extend(1); - attrNewVals.extend(1); - attrNames(i) := 'Civilité'; - attrOldVals(i) := oldCivilite; - attrNewVals(i) := newCivilite; - i := i + 1; - end if; - if newDateNaiss <> oldDateNaiss then - --dbms_output.put_line('DATE_NAISSANCE ' || sourceLib || ' = ' || oldDateNaiss || ' --> DATE_NAISSANCE OSE = ' || :NEW.DATE_NAISSANCE); - attrNames.extend(1); - attrOldVals.extend(1); - attrNewVals.extend(1); - attrNames(i) := 'Date de naissance'; - attrOldVals(i) := oldDateNaiss; - attrNewVals(i) := newDateNaiss; - i := i + 1; - end if; - if newAdresse <> oldAdresse then - --dbms_output.put_line('ADRESSE ' || sourceLib || ' = ' || oldAdresse || ' --> ADRESSE OSE = ' || :NEW.ADRESSE); - attrNames.extend(1); - attrOldVals.extend(1); - attrNewVals.extend(1); - attrNames(i) := 'Adresse postale'; - attrOldVals(i) := oldAdresse; - attrNewVals(i) := newAdresse; - i := i + 1; - end if; - if oldRib is null or newRib <> oldRib then - --dbms_output.put_line('RIB ' || sourceLib || ' = ' || oldRib || ' --> RIB OSE = ' || :NEW.RIB); - attrNames.extend(1); - attrOldVals.extend(1); - attrNewVals.extend(1); - attrNames(i) := 'RIB'; - attrOldVals(i) := oldRib; - attrNewVals(i) := newRib; - i := i + 1; - end if; - - -- - -- Enregistrement des différences. - -- - for i in 1 .. attrNames.count loop - --dbms_output.put_line(attrNames(i) || ' ' || oldSourceName || ' = ' || attrOldVals(i) || ' --> ' || attrNames(i) || ' ' || newSourceName || ' = ' || attrNewVals(i)); - - -- vérification que la même modif n'est pas déjà consignée - select count(*) into found from indic_modif_dossier - where INTERVENANT_ID = intervenantId - and ATTR_NAME = attrNames(i) - and ATTR_OLD_VALUE = to_char(attrOldVals(i)) - and ATTR_NEW_VALUE = to_char(attrNewVals(i)); - if found > 0 then - continue; - end if; - - insert into INDIC_MODIF_DOSSIER( - id, - INTERVENANT_ID, - ATTR_NAME, - ATTR_OLD_SOURCE_NAME, - ATTR_OLD_VALUE, - ATTR_NEW_SOURCE_NAME, - ATTR_NEW_VALUE, - EST_CREATION_DOSSIER, -- témoin indiquant s'il s'agit d'une création ou d'une modification de dossier - HISTO_CREATION, -- NB: date de modification du dossier - HISTO_CREATEUR_ID, -- NB: auteur de la modification du dossier - HISTO_MODIFICATION, - HISTO_MODIFICATEUR_ID - ) - values ( - indic_modif_dossier_id_seq.nextval, - intervenantId, - attrNames(i), - oldSourceName, - to_char(attrOldVals(i)), - newSourceName, - to_char(attrNewVals(i)), - estCreationDossier, - :NEW.HISTO_MODIFICATION, - :NEW.HISTO_MODIFICATEUR_ID, - :NEW.HISTO_MODIFICATION, - :NEW.HISTO_MODIFICATEUR_ID - ); - end loop; - -END; + WHEN NOT MATCHED THEN INSERT ( -/ -ALTER TRIGGER "INDIC_TRG_MODIF_DOSSIER" ENABLE; + ID, + ANNEE_ID, + TYPE_PIECE_JOINTE_ID, + INTERVENANT_ID, + HEURES_POUR_SEUIL, + TO_DELETE --- INTERVENANT_HORO_SERVICE -CREATE OR REPLACE TRIGGER "INTERVENANT_HORO_SERVICE" - AFTER INSERT OR DELETE OR UPDATE ON "SERVICE" - REFERENCING FOR EACH ROW - BEGIN - - IF DELETING THEN - - ose_divers.intervenant_horodatage_service( - :OLD.intervenant_id, - null, - 0, - :OLD.histo_modificateur_id, - :OLD.histo_modification - ); - - ELSE + ) VALUES ( + + TBL_PIECE_JOINTE_DEMAND_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.TYPE_PIECE_JOINTE_ID, + v.INTERVENANT_ID, + v.HEURES_POUR_SEUIL, + 0 - ose_divers.intervenant_horodatage_service( - :NEW.intervenant_id, - null, - 0, - :NEW.histo_modificateur_id, - :NEW.histo_modification ); - - END IF; -END; + DELETE TBL_PIECE_JOINTE_DEMANDE WHERE to_delete = 1 AND ' || conds || '; -/ -ALTER TRIGGER "INTERVENANT_HORO_SERVICE" ENABLE; + END;'; --- INTERVENANT_HORO_SERVICE_REF -CREATE OR REPLACE TRIGGER "INTERVENANT_HORO_SERVICE_REF" - AFTER INSERT OR DELETE OR UPDATE ON "SERVICE_REFERENTIEL" - REFERENCING FOR EACH ROW + END; + + + + PROCEDURE C_PIECE_JOINTE_FOURNIE( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; BEGIN - - IF DELETING THEN - - ose_divers.intervenant_horodatage_service( - :OLD.intervenant_id, - null, - 1, - :OLD.histo_modificateur_id, - :OLD.histo_modification - ); - - ELSE + conds := params_to_conds( params ); - ose_divers.intervenant_horodatage_service( - :NEW.intervenant_id, - null, - 1, - :NEW.histo_modificateur_id, - :NEW.histo_modification - ); - - END IF; + EXECUTE IMMEDIATE 'BEGIN -END; + UPDATE TBL_PIECE_JOINTE_FOURNIE SET to_delete = 1 WHERE ' || conds || '; -/ -ALTER TRIGGER "INTERVENANT_HORO_SERVICE_REF" ENABLE; + MERGE INTO + TBL_PIECE_JOINTE_FOURNIE t + USING ( --- INTERVENANT_HORO_VH -CREATE OR REPLACE TRIGGER "INTERVENANT_HORO_VH" - AFTER INSERT OR DELETE OR UPDATE ON "VOLUME_HORAIRE" - REFERENCING FOR EACH ROW - DECLARE - intervenant_id NUMERIC; -BEGIN - - - - IF DELETING THEN - SELECT s.intervenant_id INTO intervenant_id FROM service s WHERE s.id = :OLD.service_id; - - ose_divers.intervenant_horodatage_service( - intervenant_id, - :OLD.type_volume_horaire_id, - 0, - :OLD.histo_modificateur_id, - :OLD.histo_modification - ); - - ELSE - SELECT s.intervenant_id INTO intervenant_id FROM service s WHERE s.id = :NEW.service_id; - - ose_divers.intervenant_horodatage_service( - intervenant_id, - :NEW.type_volume_horaire_id, - 0, - :NEW.histo_modificateur_id, - :NEW.histo_modification - ); - - END IF; + SELECT + tv.* + FROM + (SELECT + i.annee_id, + pj.type_piece_jointe_id, + pj.intervenant_id, + pj.id piece_jointe_id, + v.id validation_id, + f.id fichier_id + FROM + piece_jointe pj + JOIN intervenant i ON i.id = pj.intervenant_id + AND i.histo_destruction IS NULL -END; + JOIN piece_jointe_fichier pjf ON pjf.piece_jointe_id = pj.id + JOIN fichier f ON f.id = pjf.fichier_id + AND f.histo_destruction IS NULL -/ -ALTER TRIGGER "INTERVENANT_HORO_VH" ENABLE; + LEFT JOIN validation v ON v.id = pj.validation_id + AND v.histo_destruction IS NULL + WHERE + pj.histo_destruction IS NULL) tv + WHERE + ' || conds || ' + + ) v ON ( + t.TYPE_PIECE_JOINTE_ID = v.TYPE_PIECE_JOINTE_ID + AND t.INTERVENANT_ID = v.INTERVENANT_ID + AND COALESCE(t.VALIDATION_ID,0) = COALESCE(v.VALIDATION_ID,0) + AND COALESCE(t.FICHIER_ID,0) = COALESCE(v.FICHIER_ID,0) + + ) WHEN MATCHED THEN UPDATE SET + + ANNEE_ID = v.ANNEE_ID, + PIECE_JOINTE_ID = v.PIECE_JOINTE_ID, + to_delete = 0 + + WHEN NOT MATCHED THEN INSERT ( + + ID, + ANNEE_ID, + TYPE_PIECE_JOINTE_ID, + INTERVENANT_ID, + VALIDATION_ID, + FICHIER_ID, + PIECE_JOINTE_ID, + TO_DELETE + + ) VALUES ( + + TBL_PIECE_JOINTE_FOURNI_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.TYPE_PIECE_JOINTE_ID, + v.INTERVENANT_ID, + v.VALIDATION_ID, + v.FICHIER_ID, + v.PIECE_JOINTE_ID, + 0 --- INTERVENANT_HORO_VH_REF -CREATE OR REPLACE TRIGGER "INTERVENANT_HORO_VH_REF" - AFTER INSERT OR DELETE OR UPDATE ON "VOLUME_HORAIRE_REF" - REFERENCING FOR EACH ROW - DECLARE - intervenant_id NUMERIC; -BEGIN - - - - IF DELETING THEN - SELECT s.intervenant_id INTO intervenant_id FROM service_referentiel s WHERE s.id = :OLD.service_referentiel_id; - - ose_divers.intervenant_horodatage_service( - intervenant_id, - :OLD.type_volume_horaire_id, - 1, - :OLD.histo_modificateur_id, - :OLD.histo_modification - ); - - ELSE - SELECT s.intervenant_id INTO intervenant_id FROM service_referentiel s WHERE s.id = :NEW.service_referentiel_id; - - ose_divers.intervenant_horodatage_service( - intervenant_id, - :NEW.type_volume_horaire_id, - 1, - :NEW.histo_modificateur_id, - :NEW.histo_modification ); - - END IF; -END; + DELETE TBL_PIECE_JOINTE_FOURNIE WHERE to_delete = 1 AND ' || conds || '; -/ -ALTER TRIGGER "INTERVENANT_HORO_VH_REF" ENABLE; + END;'; --- INTERVENANT_RECHERCHE -CREATE OR REPLACE TRIGGER "INTERVENANT_RECHERCHE" - BEFORE INSERT OR UPDATE OF NOM_USUEL, PRENOM, NOM_PATRONYMIQUE ON "INTERVENANT" - REFERENCING FOR EACH ROW - BEGIN + END; - :NEW.critere_recherche := ose_divers.str_reduce( :NEW.nom_usuel || ' ' || :NEW.nom_patronymique || ' ' || :NEW.prenom ); - -END; -/ -ALTER TRIGGER "INTERVENANT_RECHERCHE" ENABLE; --- MISE_EN_PAIEMENT_CK -CREATE OR REPLACE TRIGGER "MISE_EN_PAIEMENT_CK" - BEFORE INSERT OR UPDATE ON "MISE_EN_PAIEMENT" - REFERENCING FOR EACH ROW - DECLARE - has_validation NUMERIC; - has_mise_en_paiement NUMERIC; -BEGIN + PROCEDURE C_SERVICE( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; + BEGIN + conds := params_to_conds( params ); - /* Initialisation des conditions */ - SELECT COUNT(*) INTO has_validation FROM validation v WHERE - v.id = :NEW.validation_id - AND v.histo_destruction IS NULL; + EXECUTE IMMEDIATE 'BEGIN - IF :NEW.date_mise_en_paiement IS NULL THEN - has_mise_en_paiement := 0; - ELSE - has_mise_en_paiement := 1; - END IF; + UPDATE TBL_SERVICE SET to_delete = 1 WHERE ' || conds || '; - /* Mise en place des contraintes */ - IF :NEW.formule_res_service_id IS NULL AND :NEW.formule_res_service_ref_id IS NULL THEN - raise_application_error(-20101, 'La mise en paiement ne correspond à aucun service ou service référentiel.'); - END IF; + MERGE INTO + TBL_SERVICE t + USING ( - IF 1 = has_validation AND :NEW.date_validation IS NULL THEN - raise_application_error(-20101, 'La validation de la mise en paiement numéro ' || :NEW.id || ' est bien renseignée mais la date de validation n''est pas précisée.'); - END IF; + SELECT + tv.* + FROM + (WITH t AS ( + SELECT + s.id service_id, + s.intervenant_id intervenant_id, + ep.structure_id structure_id, + ep.id element_pedagogique_id, + ep.periode_id element_pedagogique_periode_id, + etp.id etape_id, - IF :NEW.periode_paiement_id IS NOT NULL AND :NEW.date_mise_en_paiement IS NULL THEN - raise_application_error(-20101, 'La mise en paiement numéro ' || :NEW.id || ' est bien effectuée mais la date de mise en paiement n''est pas précisée.'); - END IF; + vh.type_volume_horaire_id type_volume_horaire_id, + vh.heures heures, + tvh.code type_volume_horaire_code, --- IF 0 = has_validation AND 1 = has_mise_en_paiement THEN --- raise_application_error(-20101, 'La demande de mise en paiement numéro ' || :NEW.id || ' ne peut faire l''objet d''une mise en paiement tant qu''elle n''est pas validée.'); --- END IF; + CASE WHEN ep.histo_destruction IS NULL THEN 1 ELSE 0 END element_pedagogique_histo, + CASE WHEN etp.histo_destruction IS NULL OR cp.id IS NOT NULL THEN 1 ELSE 0 END etape_histo, - IF - :OLD.validation_id IS NOT NULL AND :OLD.histo_destruction IS NULL - AND 1 = has_validation AND :NEW.histo_destruction IS NOT NULL - THEN - raise_application_error(-20101, 'Il est impossible de supprimer une mise en paiement validée.'); - END IF; -END; + CASE WHEN ep.periode_id IS NOT NULL THEN + SUM( CASE WHEN vh.periode_id <> ep.periode_id THEN 1 ELSE 0 END ) OVER( PARTITION BY vh.service_id, vh.periode_id, vh.type_volume_horaire_id, vh.type_intervention_id ) + ELSE 0 END has_heures_mauvaise_periode, + + CASE WHEN v.id IS NULL THEN 0 ELSE 1 END valide + FROM + service s + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + LEFT JOIN etape etp ON etp.id = ep.etape_id + LEFT JOIN chemin_pedagogique cp ON cp.etape_id = etp.id + AND cp.element_pedagogique_id = ep.id + AND cp.histo_destruction IS NULL + JOIN volume_horaire vh ON vh.service_id = s.id + AND vh.histo_destruction IS NULL -/ -ALTER TRIGGER "MISE_EN_PAIEMENT_CK" ENABLE; + JOIN type_volume_horaire tvh ON tvh.id = vh.type_volume_horaire_id --- MISE_EN_PAIEMENT_DEL_CK -CREATE OR REPLACE TRIGGER "MISE_EN_PAIEMENT_DEL_CK" - BEFORE DELETE ON "MISE_EN_PAIEMENT" - REFERENCING FOR EACH ROW - DECLARE - has_validation NUMERIC; -BEGIN + LEFT JOIN validation_vol_horaire vvh ON vvh.volume_horaire_id = vh.id - /* Initialisation des conditions */ - SELECT COUNT(*) INTO has_validation FROM validation v WHERE - v.id = :NEW.validation_id - AND v.histo_destruction IS NULL; + LEFT JOIN validation v ON v.id = vvh.validation_id + AND v.histo_destruction IS NULL + WHERE + s.histo_destruction IS NULL + ) + SELECT + i.annee_id annee_id, + i.id intervenant_id, + i.structure_id intervenant_structure_id, + NVL( t.structure_id, i.structure_id ) structure_id, + ti.id type_intervenant_id, + ti.code type_intervenant_code, + si.peut_saisir_service peut_saisir_service, - /* Mise en place des contraintes */ - IF - 1 = has_validation AND :OLD.histo_destruction IS NOT NULL - THEN - raise_application_error(-20101, 'Il est impossible de supprimer une mise en paiement validée.'); - END IF; -END; + t.element_pedagogique_id, + t.service_id, + t.element_pedagogique_periode_id, + t.etape_id, + t.type_volume_horaire_id, + t.type_volume_horaire_code, + t.element_pedagogique_histo, + t.etape_histo, + CASE WHEN SUM(t.has_heures_mauvaise_periode) > 0 THEN 1 ELSE 0 END has_heures_mauvaise_periode, -/ -ALTER TRIGGER "MISE_EN_PAIEMENT_DEL_CK" ENABLE; + CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE count(*) END nbvh, + CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE sum(t.heures) END heures, + sum(valide) valide + FROM + t + JOIN intervenant i ON i.id = t.intervenant_id + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN type_intervenant ti ON ti.id = si.type_intervenant_id + GROUP BY + i.annee_id, + i.id, + i.structure_id, + t.structure_id, + i.structure_id, + ti.id, + ti.code, + si.peut_saisir_service, + t.element_pedagogique_id, + t.service_id, + t.element_pedagogique_periode_id, + t.etape_id, + t.type_volume_horaire_id, + t.type_volume_horaire_code, + t.element_pedagogique_histo, + t.etape_histo) tv + WHERE + ' || conds || ' --- SERVICE_CK -CREATE OR REPLACE TRIGGER "SERVICE_CK" - BEFORE INSERT OR UPDATE ON "SERVICE" - REFERENCING FOR EACH ROW - DECLARE - etablissement integer; - res integer; -BEGIN + ) v ON ( + COALESCE(t.TYPE_VOLUME_HORAIRE_ID,0) = COALESCE(v.TYPE_VOLUME_HORAIRE_ID,0) + AND t.SERVICE_ID = v.SERVICE_ID - etablissement := OSE_PARAMETRE.GET_ETABLISSEMENT(); + ) WHEN MATCHED THEN UPDATE SET - IF :NEW.etablissement_id = etablissement AND :NEW.element_pedagogique_id IS NULL THEN - raise_application_error(-20101, 'Un enseignement doit obligatoirement être renseigné si le service est réalisé en interne.'); - END IF; + ANNEE_ID = v.ANNEE_ID, + INTERVENANT_ID = v.INTERVENANT_ID, + PEUT_SAISIR_SERVICE = v.PEUT_SAISIR_SERVICE, + STRUCTURE_ID = v.STRUCTURE_ID, + NBVH = v.NBVH, + VALIDE = v.VALIDE, + ELEMENT_PEDAGOGIQUE_ID = v.ELEMENT_PEDAGOGIQUE_ID, + ELEMENT_PEDAGOGIQUE_PERIODE_ID = v.ELEMENT_PEDAGOGIQUE_PERIODE_ID, + ETAPE_ID = v.ETAPE_ID, + ELEMENT_PEDAGOGIQUE_HISTO = v.ELEMENT_PEDAGOGIQUE_HISTO, + ETAPE_HISTO = v.ETAPE_HISTO, + HAS_HEURES_MAUVAISE_PERIODE = v.HAS_HEURES_MAUVAISE_PERIODE, + INTERVENANT_STRUCTURE_ID = v.INTERVENANT_STRUCTURE_ID, + TYPE_INTERVENANT_ID = v.TYPE_INTERVENANT_ID, + TYPE_INTERVENANT_CODE = v.TYPE_INTERVENANT_CODE, + TYPE_VOLUME_HORAIRE_CODE = v.TYPE_VOLUME_HORAIRE_CODE, + HEURES = v.HEURES, + to_delete = 0 + WHEN NOT MATCHED THEN INSERT ( - IF :NEW.etablissement_id <> etablissement AND OSE_DIVERS.INTERVENANT_HAS_PRIVILEGE(:NEW.intervenant_id, 'saisie_service_exterieur') = 0 THEN - raise_application_error(-20101, 'Les intervenants vacataires n''ont pas la possibilité de renseigner des enseignements pris à l''extérieur.'); - END IF; + ID, + ANNEE_ID, + INTERVENANT_ID, + PEUT_SAISIR_SERVICE, + TYPE_VOLUME_HORAIRE_ID, + STRUCTURE_ID, + NBVH, + VALIDE, + ELEMENT_PEDAGOGIQUE_ID, + ELEMENT_PEDAGOGIQUE_PERIODE_ID, + ETAPE_ID, + ELEMENT_PEDAGOGIQUE_HISTO, + ETAPE_HISTO, + HAS_HEURES_MAUVAISE_PERIODE, + SERVICE_ID, + INTERVENANT_STRUCTURE_ID, + TYPE_INTERVENANT_ID, + TYPE_INTERVENANT_CODE, + TYPE_VOLUME_HORAIRE_CODE, + HEURES, + TO_DELETE - IF :NEW.intervenant_id IS NOT NULL AND :NEW.element_pedagogique_id IS NOT NULL THEN - SELECT - count(*) INTO res - FROM - intervenant i, - element_pedagogique ep - WHERE - i.id = :NEW.intervenant_id - AND ep.id = :NEW.element_pedagogique_id - AND ep.annee_id = i.annee_id - ; + ) VALUES ( - IF 0 = res THEN -- années non concomitantes - raise_application_error(-20101, 'L''année de l''intervenant ne correspond pas à l''année de l''élément pédagogique.'); - END IF; - END IF; + TBL_SERVICE_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.INTERVENANT_ID, + v.PEUT_SAISIR_SERVICE, + v.TYPE_VOLUME_HORAIRE_ID, + v.STRUCTURE_ID, + v.NBVH, + v.VALIDE, + v.ELEMENT_PEDAGOGIQUE_ID, + v.ELEMENT_PEDAGOGIQUE_PERIODE_ID, + v.ETAPE_ID, + v.ELEMENT_PEDAGOGIQUE_HISTO, + v.ETAPE_HISTO, + v.HAS_HEURES_MAUVAISE_PERIODE, + v.SERVICE_ID, + v.INTERVENANT_STRUCTURE_ID, + v.TYPE_INTERVENANT_ID, + v.TYPE_INTERVENANT_CODE, + v.TYPE_VOLUME_HORAIRE_CODE, + v.HEURES, + 0 -END; + ); -/ -ALTER TRIGGER "SERVICE_CK" ENABLE; + DELETE TBL_SERVICE WHERE to_delete = 1 AND ' || conds || '; --- SERVICE_HISTO_CK -CREATE OR REPLACE TRIGGER "SERVICE_HISTO_CK" - BEFORE UPDATE OF intervenant_id, element_pedagogique_id, etablissement_id ON "SERVICE" - REFERENCING FOR EACH ROW - DECLARE - has_validation integer; -BEGIN - SELECT COUNT(*) INTO has_validation - FROM - VALIDATION_VOL_HORAIRE vvh - JOIN validation v ON v.id = VVH.VALIDATION_ID - JOIN volume_horaire vh ON vh.id = VVH.VOLUME_HORAIRE_ID - WHERE - V.HISTO_DESTRUCTION IS NULL - AND vh.service_ID = :NEW.ID; + END;'; - IF 0 <> has_validation THEN - raise_application_error(-20101, 'Il est impossible de modifier ou supprimer un service dont des heures ont déjà été validées.'); - END IF; + END; -END; -/ -ALTER TRIGGER "SERVICE_HISTO_CK" ENABLE; --- SERVICE_HISTO_CK_S -CREATE OR REPLACE TRIGGER "SERVICE_HISTO_CK_S" - AFTER UPDATE ON "SERVICE" + PROCEDURE C_SERVICE_REFERENTIEL( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; BEGIN - -- En cas de restauration d'un service, on ne restaure pas les historiques de volumes horaires pour ne pas récussiter d'éventuels volume horaires indésirables car préalablement supprimés - FOR s IN ( + conds := params_to_conds( params ); - SELECT * - FROM - service s - WHERE - s.histo_destruction IS NOT NULL AND s.histo_destruction > SYSDATE - 1 + EXECUTE IMMEDIATE 'BEGIN - ) LOOP + UPDATE TBL_SERVICE_REFERENTIEL SET to_delete = 1 WHERE ' || conds || '; - UPDATE VOLUME_HORAIRE SET histo_destruction = s.histo_destruction, histo_destructeur_id = s.histo_destructeur_id WHERE service_id = s.id AND VOLUME_HORAIRE.histo_destruction IS NULL; + MERGE INTO + TBL_SERVICE_REFERENTIEL t + USING ( - END LOOP; - -END; + SELECT + tv.* + FROM + (WITH t AS ( -/ -ALTER TRIGGER "SERVICE_HISTO_CK_S" ENABLE; + SELECT + i.annee_id, + i.id intervenant_id, + si.peut_saisir_referentiel peut_saisir_service, + vh.type_volume_horaire_id, + s.structure_id, + CASE WHEN v.id IS NULL THEN 0 ELSE 1 END valide + FROM + intervenant i --- SERVICE_REFERENTIEL_HISTO_CK -CREATE OR REPLACE TRIGGER "SERVICE_REFERENTIEL_HISTO_CK" - BEFORE UPDATE OF FONCTION_ID, INTERVENANT_ID, STRUCTURE_ID, HISTO_DESTRUCTION ON "SERVICE_REFERENTIEL" - REFERENCING FOR EACH ROW - DECLARE - has_validation integer; -BEGIN - SELECT COUNT(*) INTO has_validation - FROM - VALIDATION_VOL_HORAIRE_REF vvh - JOIN validation v ON v.id = VVH.VALIDATION_ID - JOIN volume_horaire_ref vh ON vh.id = vvh.volume_horaire_ref_id - WHERE - V.HISTO_DESTRUCTION IS NULL - AND vh.service_referentiel_id = :OLD.ID; + JOIN statut_intervenant si ON si.id = i.statut_id - IF 0 <> has_validation THEN - raise_application_error(-20101, 'Il est impossible de modifier ou supprimer du référentiel dont des heures ont déjà été validées.'); - END IF; + LEFT JOIN service_referentiel s ON s.intervenant_id = i.id + AND s.histo_destruction IS NULL -END; + LEFT JOIN volume_horaire_ref vh ON vh.service_referentiel_id = s.id + AND vh.histo_destruction IS NULL -/ -ALTER TRIGGER "SERVICE_REFERENTIEL_HISTO_CK" ENABLE; + LEFT JOIN validation_vol_horaire_ref vvh ON vvh.volume_horaire_ref_id = vh.id --- T_CRG_ETAPE -CREATE OR REPLACE TRIGGER "T_CRG_ETAPE" - AFTER INSERT OR DELETE OR UPDATE OF HISTO_DESTRUCTION ON "ETAPE" - REFERENCING FOR EACH ROW - BEGIN - IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + LEFT JOIN validation v ON v.id = vvh.validation_id + AND v.histo_destruction IS NULL + WHERE + i.histo_destruction IS NULL - IF DELETING THEN - UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', 'etape_id = ' || :OLD.id || ' OR etape_ens_id = ' || :OLD.id ); - ELSE - UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', 'etape_id = ' || :NEW.id || ' OR etape_ens_id = ' || :NEW.id ); - END IF; + ) + SELECT + annee_id, + intervenant_id, + peut_saisir_service, + type_volume_horaire_id, + structure_id, + CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE count(*) END nbvh, + sum(valide) valide + FROM + t + WHERE + NOT (structure_id IS NOT NULL AND type_volume_horaire_id IS NULL) + GROUP BY + annee_id, + intervenant_id, + peut_saisir_service, + type_volume_horaire_id, + structure_id) tv + WHERE + ' || conds || ' -END; + ) v ON ( + t.INTERVENANT_ID = v.INTERVENANT_ID + AND COALESCE(t.TYPE_VOLUME_HORAIRE_ID,0) = COALESCE(v.TYPE_VOLUME_HORAIRE_ID,0) + AND COALESCE(t.STRUCTURE_ID,0) = COALESCE(v.STRUCTURE_ID,0) + ) WHEN MATCHED THEN UPDATE SET -/ -ALTER TRIGGER "T_CRG_ETAPE" ENABLE; + ANNEE_ID = v.ANNEE_ID, + PEUT_SAISIR_SERVICE = v.PEUT_SAISIR_SERVICE, + NBVH = v.NBVH, + VALIDE = v.VALIDE, + to_delete = 0 --- T_CRG_ETAPE_S -CREATE OR REPLACE TRIGGER "T_CRG_ETAPE_S" - AFTER INSERT OR DELETE OR UPDATE ON "ETAPE" - BEGIN - UNICAEN_TBL.CALCULER_DEMANDES; -END; + WHEN NOT MATCHED THEN INSERT ( + ID, + ANNEE_ID, + INTERVENANT_ID, + PEUT_SAISIR_SERVICE, + TYPE_VOLUME_HORAIRE_ID, + STRUCTURE_ID, + NBVH, + VALIDE, + TO_DELETE -/ -ALTER TRIGGER "T_CRG_ETAPE_S" ENABLE; + ) VALUES ( --- T_CRG_SCENARIO_NOEUD -CREATE OR REPLACE TRIGGER "T_CRG_SCENARIO_NOEUD" - AFTER INSERT OR DELETE OR UPDATE OF SCENARIO_ID, NOEUD_ID, HISTO_DESTRUCTION ON "SCENARIO_NOEUD" - REFERENCING FOR EACH ROW - BEGIN - IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + TBL_SERVICE_REFERENTIEL_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.INTERVENANT_ID, + v.PEUT_SAISIR_SERVICE, + v.TYPE_VOLUME_HORAIRE_ID, + v.STRUCTURE_ID, + v.NBVH, + v.VALIDE, + 0 - IF DELETING THEN - UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('noeud_id', :OLD.noeud_id, 'scenario_id', :OLD.scenario_id ) ); - ELSE - UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('noeud_id', :NEW.noeud_id, 'scenario_id', :NEW.scenario_id ) ); - END IF; + ); -END; + DELETE TBL_SERVICE_REFERENTIEL WHERE to_delete = 1 AND ' || conds || '; + END;'; -/ -ALTER TRIGGER "T_CRG_SCENARIO_NOEUD" ENABLE; + END; --- T_CRG_SCENARIO_NOEUD_EFFECTIF -CREATE OR REPLACE TRIGGER "T_CRG_SCENARIO_NOEUD_EFFECTIF" - AFTER INSERT OR DELETE OR UPDATE OF SCENARIO_NOEUD_ID, TYPE_HEURES_ID, EFFECTIF, ETAPE_ID ON "SCENARIO_NOEUD_EFFECTIF" - REFERENCING FOR EACH ROW - BEGIN - IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; - FOR p IN ( - SELECT - sn.noeud_id, sn.scenario_id, n.etape_id - FROM - scenario_noeud sn - JOIN noeud n ON n.id = sn.noeud_id - WHERE - sn.id = :OLD.scenario_noeud_id OR sn.id = :NEW.scenario_noeud_id + PROCEDURE C_SERVICE_SAISIE( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; + BEGIN + conds := params_to_conds( params ); - ) LOOP + EXECUTE IMMEDIATE 'BEGIN - IF p.etape_id IS NOT NULL THEN - UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('etape_ens_id', p.etape_id, 'scenario_id', p.scenario_id ) ); - END IF; - UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('noeud_id', p.noeud_id, 'scenario_id', p.scenario_id ) ); + UPDATE TBL_SERVICE_SAISIE SET to_delete = 1 WHERE ' || conds || '; - END LOOP; + MERGE INTO + TBL_SERVICE_SAISIE t + USING ( -END; + SELECT + tv.* + FROM + (SELECT + i.annee_id, + i.id intervenant_id, + si.peut_saisir_service, + si.peut_saisir_referentiel, + SUM( CASE WHEN tvhs.code = ''PREVU'' THEN NVL(vh .heures,0) ELSE 0 END ) heures_service_prev, + SUM( CASE WHEN tvhs.code = ''PREVU'' THEN NVL(vhr.heures,0) ELSE 0 END ) heures_referentiel_prev, + SUM( CASE WHEN tvhs.code = ''REALISE'' THEN NVL(vh .heures,0) ELSE 0 END ) heures_service_real, + SUM( CASE WHEN tvhs.code = ''REALISE'' THEN NVL(vhr.heures,0) ELSE 0 END ) heures_referentiel_real + FROM + intervenant i + JOIN statut_intervenant si ON si.id = i.statut_id + LEFT JOIN service s ON s.intervenant_id = i.id AND s.histo_destruction IS NULL + LEFT JOIN volume_horaire vh ON vh.service_id = s.id AND vh.histo_destruction IS NULL + LEFT JOIN type_volume_horaire tvhs ON tvhs.id = vh.type_volume_horaire_id + LEFT JOIN service_referentiel sr ON sr.intervenant_id = i.id AND sr.histo_destruction IS NULL + LEFT JOIN volume_horaire_ref vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL + LEFT JOIN type_volume_horaire tvhrs ON tvhrs.id = vhr.type_volume_horaire_id + WHERE + i.histo_destruction IS NULL + GROUP BY + i.annee_id, + i.id, + si.peut_saisir_service, + si.peut_saisir_referentiel) tv + WHERE + ' || conds || ' -/ -ALTER TRIGGER "T_CRG_SCENARIO_NOEUD_EFFECTIF" ENABLE; + ) v ON ( + t.INTERVENANT_ID = v.INTERVENANT_ID --- T_CRG_SCENARIO_NOEUD_SEUIL -CREATE OR REPLACE TRIGGER "T_CRG_SCENARIO_NOEUD_SEUIL" - AFTER INSERT OR DELETE OR UPDATE OF SCENARIO_NOEUD_ID, TYPE_INTERVENTION_ID, OUVERTURE, DEDOUBLEMENT, ASSIDUITE ON "SCENARIO_NOEUD_SEUIL" - REFERENCING FOR EACH ROW - BEGIN - IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; + ) WHEN MATCHED THEN UPDATE SET - FOR p IN ( + ANNEE_ID = v.ANNEE_ID, + PEUT_SAISIR_SERVICE = v.PEUT_SAISIR_SERVICE, + PEUT_SAISIR_REFERENTIEL = v.PEUT_SAISIR_REFERENTIEL, + HEURES_SERVICE_PREV = v.HEURES_SERVICE_PREV, + HEURES_REFERENTIEL_PREV = v.HEURES_REFERENTIEL_PREV, + HEURES_SERVICE_REAL = v.HEURES_SERVICE_REAL, + HEURES_REFERENTIEL_REAL = v.HEURES_REFERENTIEL_REAL, + to_delete = 0 - SELECT - sn.noeud_id, sn.scenario_id, n.etape_id - FROM - scenario_noeud sn - JOIN noeud n ON n.id = sn.noeud_id - WHERE - sn.id = :OLD.scenario_noeud_id OR sn.id = :NEW.scenario_noeud_id + WHEN NOT MATCHED THEN INSERT ( - ) LOOP + ID, + ANNEE_ID, + INTERVENANT_ID, + PEUT_SAISIR_SERVICE, + PEUT_SAISIR_REFERENTIEL, + HEURES_SERVICE_PREV, + HEURES_REFERENTIEL_PREV, + HEURES_SERVICE_REAL, + HEURES_REFERENTIEL_REAL, + TO_DELETE - IF p.etape_id IS NOT NULL THEN - UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('etape_ens_id', p.etape_id, 'scenario_id', p.scenario_id ) ); - END IF; - UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('noeud_id', p.noeud_id, 'scenario_id', p.scenario_id ) ); + ) VALUES ( - END LOOP; + TBL_SERVICE_SAISIE_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.INTERVENANT_ID, + v.PEUT_SAISIR_SERVICE, + v.PEUT_SAISIR_REFERENTIEL, + v.HEURES_SERVICE_PREV, + v.HEURES_REFERENTIEL_PREV, + v.HEURES_SERVICE_REAL, + v.HEURES_REFERENTIEL_REAL, + 0 -END; + ); + DELETE TBL_SERVICE_SAISIE WHERE to_delete = 1 AND ' || conds || '; -/ -ALTER TRIGGER "T_CRG_SCENARIO_NOEUD_SEUIL" ENABLE; + END;'; --- T_CRG_TYPE_INTERVENTION -CREATE OR REPLACE TRIGGER "T_CRG_TYPE_INTERVENTION" - AFTER INSERT OR DELETE OR UPDATE ON "TYPE_INTERVENTION" - BEGIN - UNICAEN_TBL.CALCULER_DEMANDES; -END; + END; -/ -ALTER TRIGGER "T_CRG_TYPE_INTERVENTION" ENABLE; --- T_CRG_VOLUME_HORAIRE_ENS -CREATE OR REPLACE TRIGGER "T_CRG_VOLUME_HORAIRE_ENS" - AFTER INSERT OR DELETE OR UPDATE OF ELEMENT_PEDAGOGIQUE_ID, TYPE_INTERVENTION_ID, HEURES, HISTO_DESTRUCTION ON "VOLUME_HORAIRE_ENS" - REFERENCING FOR EACH ROW + PROCEDURE C_VALIDATION_ENSEIGNEMENT( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; BEGIN - IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF; - - IF DELETING THEN - UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('element_pedagogique_id', :OLD.element_pedagogique_id ) ); - ELSE - UNICAEN_TBL.DEMANDE_CALCUL( 'chargens', unicaen_tbl.make_params('element_pedagogique_id', :NEW.element_pedagogique_id ) ); - END IF; - -END; - -/ -ALTER TRIGGER "T_CRG_VOLUME_HORAIRE_ENS" ENABLE; - --- VALIDATION_CK -CREATE OR REPLACE TRIGGER "VALIDATION_CK" - BEFORE DELETE OR UPDATE OF HISTO_DESTRUCTION, HISTO_DESTRUCTEUR_ID ON "VALIDATION" - REFERENCING FOR EACH ROW - DECLARE - v validation%rowtype; - err varchar2(500) default null; - pragma autonomous_transaction; -BEGIN + conds := params_to_conds( params ); - IF deleting THEN - v.id := :OLD.id; - v.type_validation_id := :OLD.type_validation_id; - v.intervenant_id := :OLD.intervenant_id; - v.structure_id := :OLD.structure_id; - + EXECUTE IMMEDIATE 'BEGIN - ELSIF :OLD.histo_destruction IS NULL AND :NEW.histo_destruction IS NOT NULL THEN + UPDATE TBL_VALIDATION_ENSEIGNEMENT SET to_delete = 1 WHERE ' || conds || '; - v.id := :NEW.id; - v.type_validation_id := :NEW.type_validation_id; - v.intervenant_id := :NEW.intervenant_id; - v.structure_id := :NEW.structure_id; + MERGE INTO + TBL_VALIDATION_ENSEIGNEMENT t + USING ( - END IF; - - err := ose_validation.can_devalider( v ); - - IF err is not null THEN - raise_application_error(-20101, err); - END IF; + SELECT + tv.* + FROM + (SELECT DISTINCT + i.annee_id, + i.id intervenant_id, + CASE WHEN rsv.priorite = ''affectation'' THEN + COALESCE( i.structure_id, ep.structure_id ) + ELSE + COALESCE( ep.structure_id, i.structure_id ) + END structure_id, + vh.type_volume_horaire_id, + s.id service_id, + vh.id volume_horaire_id, + v.id validation_id + FROM + service s + JOIN volume_horaire vh ON vh.service_id = s.id AND vh.histo_destruction IS NULL + JOIN intervenant i ON i.id = s.intervenant_id AND i.histo_destruction IS NULL + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN regle_structure_validation rsv ON rsv.type_intervenant_id = si.type_intervenant_id AND rsv.type_volume_horaire_id = vh.type_volume_horaire_id + LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + LEFT JOIN validation_vol_horaire vvh ON vvh.volume_horaire_id = vh.id + LEFT JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL + WHERE + s.histo_destruction IS NULL) tv + WHERE + ' || conds || ' -END; + ) v ON ( + t.INTERVENANT_ID = v.INTERVENANT_ID + AND t.STRUCTURE_ID = v.STRUCTURE_ID + AND t.TYPE_VOLUME_HORAIRE_ID = v.TYPE_VOLUME_HORAIRE_ID + AND t.SERVICE_ID = v.SERVICE_ID + AND COALESCE(t.VALIDATION_ID,0) = COALESCE(v.VALIDATION_ID,0) + AND t.VOLUME_HORAIRE_ID = v.VOLUME_HORAIRE_ID -/ -ALTER TRIGGER "VALIDATION_CK" ENABLE; + ) WHEN MATCHED THEN UPDATE SET --- VALIDATION_VOL_HORAIRE_CK -CREATE OR REPLACE TRIGGER "VALIDATION_VOL_HORAIRE_CK" - BEFORE INSERT OR DELETE OR UPDATE ON "VALIDATION_VOL_HORAIRE" - REFERENCING FOR EACH ROW - DECLARE - contrat_blinde NUMERIC; - donnee_historisee NUMERIC; - pragma autonomous_transaction; -BEGIN + ANNEE_ID = v.ANNEE_ID, + to_delete = 0 - if updating or deleting then + WHEN NOT MATCHED THEN INSERT ( - SELECT count(*) INTO contrat_blinde - FROM volume_horaire vh - JOIN contrat c ON c.id = vh.contrat_id AND c.histo_destruction IS NULL - WHERE vh.id = :OLD.volume_horaire_id; + ID, + ANNEE_ID, + INTERVENANT_ID, + STRUCTURE_ID, + TYPE_VOLUME_HORAIRE_ID, + SERVICE_ID, + VALIDATION_ID, + VOLUME_HORAIRE_ID, + TO_DELETE - -- Si des volumes horaires ont déjà fait l'objet de contrats alors pas de dévalidation possible des heures - IF contrat_blinde = 1 THEN - raise_application_error(-20101, 'La dévalidation est impossible car un contrat a déjà été édité sur la base de ces heures.'); - END IF; + ) VALUES ( - else + TBL_VALIDATION_ENSEIGNE_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.INTERVENANT_ID, + v.STRUCTURE_ID, + v.TYPE_VOLUME_HORAIRE_ID, + v.SERVICE_ID, + v.VALIDATION_ID, + v.VOLUME_HORAIRE_ID, + 0 - -- si on en trouve un service, EP, étape ou VH historisé, problème - select count(*) into donnee_historisee - from service s - join element_pedagogique ep on s.element_pedagogique_id = ep.id - --join etape e on ep.etape_id = e.id - join volume_horaire vh on vh.service_id = s.id - where - vh.id = :NEW.volume_horaire_id - AND ( - s.histo_destructeur_id is not null - or ep.histo_destructeur_id is not null - --or e.histo_destructeur_id is not null - or (vh.histo_destructeur_id is not null) - ) - AND vh.heures > 0; + ); - IF donnee_historisee > 0 THEN - raise_application_error(-20101, :NEW.volume_horaire_id || ' La validation est impossible car elle porte sur des données historisées (supprimées).'); - END IF; + DELETE TBL_VALIDATION_ENSEIGNEMENT WHERE to_delete = 1 AND ' || conds || '; - end if; + END;'; -END; + END; -/ -ALTER TRIGGER "VALIDATION_VOL_HORAIRE_CK" ENABLE; --- VOLUME_HORAIRE_CK -CREATE OR REPLACE TRIGGER "VOLUME_HORAIRE_CK" - BEFORE INSERT OR UPDATE ON "VOLUME_HORAIRE" - REFERENCING FOR EACH ROW - DECLARE - has_validation NUMERIC; - modified BOOLEAN; - intervenant_id NUMERIC; + PROCEDURE C_VALIDATION_REFERENTIEL( PARAMS UNICAEN_TBL.T_PARAMS ) IS + conds CLOB; BEGIN - IF :OLD.motif_non_paiement_id IS NULL AND :NEW.motif_non_paiement_id IS NOT NULL THEN - SELECT s.intervenant_id INTO intervenant_id FROM service s WHERE s.id = :NEW.service_id; - IF 0 = ose_divers.intervenant_has_privilege( intervenant_id, 'saisie_motif_non_paiement') THEN - raise_application_error(-20101, 'Il est impossible d''associer un motif de non paiement à cet intervenant.'); - END IF; - END IF; - - IF :NEW.motif_non_paiement_id IS NOT NULL AND :NEW.contrat_id IS NOT NULL THEN - raise_application_error(-20101, 'Les heures ayant un motif de non paiement ne peuvent faire l''objet d''une contractualisation'); - END IF; + conds := params_to_conds( params ); - modified := - NVL(:NEW.id,0) <> NVL(:OLD.id,0) - OR NVL(:NEW.type_volume_horaire_id,0) <> NVL(:OLD.type_volume_horaire_id,0) - OR NVL(:NEW.service_id,0) <> NVL(:OLD.service_id,0) - OR NVL(:NEW.periode_id,0) <> NVL(:OLD.periode_id,0) - OR NVL(:NEW.type_intervention_id,0) <> NVL(:OLD.type_intervention_id,0) - OR NVL(:NEW.heures,0) <> NVL(:OLD.heures,0) - OR NVL(:NEW.motif_non_paiement_id,0) <> NVL(:OLD.motif_non_paiement_id,0) - OR NVL(:NEW.histo_creation,SYSDATE) <> NVL(:OLD.histo_creation,SYSDATE) - OR NVL(:NEW.histo_createur_id,0) <> NVL(:OLD.histo_createur_id,0) - OR NVL(:NEW.histo_destruction,SYSDATE) <> NVL(:OLD.histo_destruction,SYSDATE) - OR NVL(:NEW.histo_destructeur_id,0) <> NVL(:OLD.histo_destructeur_id,0); - - SELECT - COUNT(*) - INTO - has_validation - FROM - VALIDATION_VOL_HORAIRE vvh - JOIN validation v ON v.id = VVH.VALIDATION_ID - WHERE - V.HISTO_DESTRUCTION IS NULL - AND vvh.VOLUME_HORAIRE_ID = :NEW.ID; - - IF modified AND 0 <> has_validation THEN - raise_application_error(-20101, 'Il est impossible de modifier des heures déjà validées.'); - END IF; - END; + EXECUTE IMMEDIATE 'BEGIN -/ -ALTER TRIGGER "VOLUME_HORAIRE_CK" ENABLE; + UPDATE TBL_VALIDATION_REFERENTIEL SET to_delete = 1 WHERE ' || conds || '; --- VOLUME_HORAIRE_DEL_CK -CREATE OR REPLACE TRIGGER "VOLUME_HORAIRE_DEL_CK" - BEFORE DELETE ON "VOLUME_HORAIRE" - REFERENCING FOR EACH ROW - DECLARE - has_validation INTEGER; - pragma autonomous_transaction; -BEGIN - - SELECT COUNT(*) INTO has_validation - FROM - VALIDATION_VOL_HORAIRE vvh - JOIN validation v ON v.id = VVH.VALIDATION_ID - WHERE - V.HISTO_DESTRUCTION IS NULL - AND vvh.VOLUME_HORAIRE_ID = :OLD.ID; + MERGE INTO + TBL_VALIDATION_REFERENTIEL t + USING ( - IF 0 <> has_validation THEN - raise_application_error(-20101, 'Il est impossible de supprimer des heures déjà validées.'); - END IF; + SELECT + tv.* + FROM + (SELECT DISTINCT + i.annee_id, + i.id intervenant_id, + CASE WHEN rsv.priorite = ''affectation'' THEN + COALESCE( i.structure_id, s.structure_id ) + ELSE + COALESCE( s.structure_id, i.structure_id ) + END structure_id, + vh.type_volume_horaire_id, + s.id service_referentiel_id, + vh.id volume_horaire_ref_id, + v.id validation_id + FROM + service_referentiel s + JOIN volume_horaire_ref vh ON vh.service_referentiel_id = s.id AND vh.histo_destruction IS NULL + JOIN intervenant i ON i.id = s.intervenant_id AND i.histo_destruction IS NULL + JOIN statut_intervenant si ON si.id = i.statut_id + JOIN regle_structure_validation rsv ON rsv.type_intervenant_id = si.type_intervenant_id AND rsv.type_volume_horaire_id = vh.type_volume_horaire_id + LEFT JOIN validation_vol_horaire_ref vvh ON vvh.volume_horaire_ref_id = vh.id + LEFT JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL + WHERE + s.histo_destruction IS NULL) tv + WHERE + ' || conds || ' -END; + ) v ON ( + t.INTERVENANT_ID = v.INTERVENANT_ID + AND t.STRUCTURE_ID = v.STRUCTURE_ID + AND t.TYPE_VOLUME_HORAIRE_ID = v.TYPE_VOLUME_HORAIRE_ID + AND t.SERVICE_REFERENTIEL_ID = v.SERVICE_REFERENTIEL_ID + AND COALESCE(t.VALIDATION_ID,0) = COALESCE(v.VALIDATION_ID,0) + AND t.VOLUME_HORAIRE_REF_ID = v.VOLUME_HORAIRE_REF_ID -/ -ALTER TRIGGER "VOLUME_HORAIRE_DEL_CK" ENABLE; + ) WHEN MATCHED THEN UPDATE SET --- VOLUME_HORAIRE_REF_CK -CREATE OR REPLACE TRIGGER "VOLUME_HORAIRE_REF_CK" - BEFORE UPDATE ON "VOLUME_HORAIRE_REF" - REFERENCING FOR EACH ROW - DECLARE - has_validation NUMERIC; - BEGIN - - SELECT - COUNT(*) - INTO - has_validation - FROM - VALIDATION_VOL_HORAIRE_REF vvh - JOIN validation v ON v.id = VVH.VALIDATION_ID - WHERE - V.HISTO_DESTRUCTION IS NULL - AND vvh.VOLUME_HORAIRE_REF_ID = :NEW.ID; - - IF 0 <> has_validation THEN - raise_application_error(-20101, 'Il est impossible de modifier des heures référentiel déjà validées.'); - END IF; -END; + ANNEE_ID = v.ANNEE_ID, + to_delete = 0 -/ -ALTER TRIGGER "VOLUME_HORAIRE_REF_CK" ENABLE; + WHEN NOT MATCHED THEN INSERT ( --- VOLUME_HORAIRE_REF_DEL_CK -CREATE OR REPLACE TRIGGER "VOLUME_HORAIRE_REF_DEL_CK" - BEFORE DELETE ON "VOLUME_HORAIRE_REF" - REFERENCING FOR EACH ROW - DECLARE has_validation INTEGER; - pragma autonomous_transaction; - BEGIN - SELECT COUNT(*) - INTO has_validation - FROM VALIDATION_VOL_HORAIRE_REF vvh - JOIN validation v - ON v.id = VVH.VALIDATION_ID - WHERE V.HISTO_DESTRUCTION IS NULL - AND vvh.VOLUME_HORAIRE_REF_ID = :OLD.ID; - IF 0 <> has_validation THEN - raise_application_error(-20101, 'Il est impossible de supprimer des heures référentiel déjà validées.'); - END IF; - END; + ID, + ANNEE_ID, + INTERVENANT_ID, + STRUCTURE_ID, + TYPE_VOLUME_HORAIRE_ID, + SERVICE_REFERENTIEL_ID, + VALIDATION_ID, + VOLUME_HORAIRE_REF_ID, + TO_DELETE -/ -ALTER TRIGGER "VOLUME_HORAIRE_REF_DEL_CK" ENABLE; + ) VALUES ( --- WF_ETAPE_DEP_CK -CREATE OR REPLACE TRIGGER "WF_ETAPE_DEP_CK" - BEFORE INSERT OR UPDATE ON "WF_ETAPE_DEP" - REFERENCING FOR EACH ROW -BEGIN + TBL_VALIDATION_REFERENT_ID_SEQ.NEXTVAL, + v.ANNEE_ID, + v.INTERVENANT_ID, + v.STRUCTURE_ID, + v.TYPE_VOLUME_HORAIRE_ID, + v.SERVICE_REFERENTIEL_ID, + v.VALIDATION_ID, + v.VOLUME_HORAIRE_REF_ID, + 0 - OSE_WORKFLOW.DEP_CHECK( :new.etape_suiv_id, :new.etape_prec_id ); + ); -END; + DELETE TBL_VALIDATION_REFERENTIEL WHERE to_delete = 1 AND ' || conds || '; -/ -ALTER TRIGGER "WF_ETAPE_DEP_CK" ENABLE; + END;'; + END; + -- END OF AUTOMATIC GENERATION -- + +END UNICAEN_TBL; +/ --- Table SOURCE -INSERT INTO SOURCE(ID, CODE, LIBELLE, IMPORTABLE) VALUES (SOURCE_ID_SEQ.NEXTVAL, q'[OSE]', q'[OSE]', 0); -- Table ANNEE @@ -19128,6 +20686,10 @@ INSERT INTO PRIVILEGE(ID, CODE, LIBELLE, CATEGORIE_ID, ORDRE) VALUES (PRIVILEGE_ INSERT INTO PRIVILEGE(ID, CODE, LIBELLE, CATEGORIE_ID, ORDRE) VALUES (PRIVILEGE_ID_SEQ.NEXTVAL, q'[tables-visualisation]', q'[Tables (visualisation)]', (SELECT ID FROM CATEGORIE_PRIVILEGE WHERE ROWNUM = 1 AND CODE = q'[import]'), 8); +-- Table SOURCE +INSERT INTO SOURCE(ID, CODE, LIBELLE, IMPORTABLE) VALUES (SOURCE_ID_SEQ.NEXTVAL, q'[OSE]', q'[OSE]', 0); + + -- Table TBL INSERT INTO TBL(TBL_NAME, TABLE_NAME, VIEW_NAME, SEQUENCE_NAME, CONSTRAINT_NAME, CUSTOM_CALCUL_PROC, ORDRE) VALUES (q'[chargens_seuils_def]', q'[TBL_CHARGENS_SEUILS_DEF]', q'[V_TBL_CHARGENS_SEUILS_DEF]', NULL, q'[TBL_CHARGENS_SEUILS_DEF__UN]', NULL, 1); INSERT INTO TBL(TBL_NAME, TABLE_NAME, VIEW_NAME, SEQUENCE_NAME, CONSTRAINT_NAME, CUSTOM_CALCUL_PROC, ORDRE) VALUES (q'[agrement]', q'[TBL_AGREMENT]', q'[V_TBL_AGREMENT]', NULL, q'[TBL_AGREMENT__UN]', NULL, 1); @@ -19168,6 +20730,10 @@ INSERT INTO TYPE_VOLUME_HORAIRE(ID, CODE, LIBELLE, ORDRE) VALUES (TYPE_VOLUME_HO INSERT INTO UTILISATEUR(ID, USERNAME, EMAIL, DISPLAY_NAME, PASSWORD, STATE, CODE) VALUES (UTILISATEUR_ID_SEQ.NEXTVAL, q'[oseappli]', q'[dsi.applications@unicaen.fr]', q'[Application OSE]', 'x', 1, NULL); +-- Table VERSION +INSERT INTO VERSION(NUMERO) VALUES (1); + + -- Table WF_ETAPE INSERT INTO WF_ETAPE(ID, CODE, ORDRE, DESC_NON_FRANCHIE, DESC_SANS_OBJECTIF, LIBELLE_AUTRES, LIBELLE_INTERVENANT, OBLIGATOIRE, ROUTE, ROUTE_INTERVENANT) VALUES (WF_ETAPE_ID_SEQ.NEXTVAL, q'[REFERENTIEL_VALIDATION_REALISE]', 130, q'[Le référentiel réalisé n'a pas été intégralement validé]', NULL, q'[Je visualise la validation du référentiel réalisé]', q'[Je visualise la validation de mon référentiel réalisé]', 0, q'[intervenant/validation/referentiel/realise]', NULL); INSERT INTO WF_ETAPE(ID, CODE, ORDRE, DESC_NON_FRANCHIE, DESC_SANS_OBJECTIF, LIBELLE_AUTRES, LIBELLE_INTERVENANT, OBLIGATOIRE, ROUTE, ROUTE_INTERVENANT) VALUES (WF_ETAPE_ID_SEQ.NEXTVAL, q'[CLOTURE_REALISE]', 115, q'[La clôture de saisie des services réalisés n'a pas été effectuée]', NULL, q'[Je visualise la clôture de la saisie des services réalisés]', q'[Je visualise la clôture de la saisie de mes services réalisés]', 1, q'[intervenant/services-realises]', NULL); @@ -19287,7 +20853,6 @@ INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (CORPS_ID_SEQ.NEXTVAL, q'[PROFESSEURS SANS CHAIRE]', q'[PROF. SANS CHAIRE]', (SELECT id FROM source WHERE code = 'OSE'), q'[H01]', SYSDATE, 1, SYSDATE, 1); INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (CORPS_ID_SEQ.NEXTVAL, q'[PROFESSEURS TITULAIRES]', q'[PROF. TITULAIRES ]', (SELECT id FROM source WHERE code = 'OSE'), q'[H02]', SYSDATE, 1, SYSDATE, 1); INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (CORPS_ID_SEQ.NEXTVAL, q'[PROF. TITULAIRES A TITRE PERSONNEL]', q'[PR. TIT. TITRE PERS.]', (SELECT id FROM source WHERE code = 'OSE'), q'[H03]', SYSDATE, 1, SYSDATE, 1); -INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (CORPS_ID_SEQ.NEXTVAL, q'[CHARGE D'ETUDES DOCUMENTAIRES (CULTURE)]', q'[CHARGE ET.DOC (CULT)]', (SELECT id FROM source WHERE code = 'OSE'), q'[296]', SYSDATE, 1, SYSDATE, 1); INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (CORPS_ID_SEQ.NEXTVAL, q'[DIRECTEUR DE RECHERCHE EPST]', q'[DR]', (SELECT id FROM source WHERE code = 'OSE'), q'[H04]', SYSDATE, 1, SYSDATE, 1); INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (CORPS_ID_SEQ.NEXTVAL, q'[CHARGE DE RECHERCHE EPST]', q'[CR]', (SELECT id FROM source WHERE code = 'OSE'), q'[H05]', SYSDATE, 1, SYSDATE, 1); INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (CORPS_ID_SEQ.NEXTVAL, q'[ASSISTANT NON AGREGE ET ASSIMILE]', q'[AS N-AGR.]', (SELECT id FROM source WHERE code = 'OSE'), q'[304]', SYSDATE, 1, SYSDATE, 1); @@ -19486,6 +21051,7 @@ INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (CORPS_ID_SEQ.NEXTVAL, q'[SOUS-DIRECTEUR DE LABO. DU CNAM]', q'[SOUS-DIR.LABO.CNAM]', (SELECT id FROM source WHERE code = 'OSE'), q'[361]', SYSDATE, 1, SYSDATE, 1); INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (CORPS_ID_SEQ.NEXTVAL, q'[PROFESSEUR DE L'ENSAM]', q'[PROF. DE L'ENSAM]', (SELECT id FROM source WHERE code = 'OSE'), q'[364]', SYSDATE, 1, SYSDATE, 1); INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (CORPS_ID_SEQ.NEXTVAL, q'[PROF. TECH. ADJOINT ET CHEF DE TP ENSAM]', q'[PROF.T.A.CH.TP ENSAM]', (SELECT id FROM source WHERE code = 'OSE'), q'[365]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (CORPS_ID_SEQ.NEXTVAL, q'[CHARGE D'ETUDES DOCUMENTAIRES (CULTURE)]', q'[CHARGE ET.DOC.]', (SELECT id FROM source WHERE code = 'OSE'), q'[981]', SYSDATE, 1, SYSDATE, 1); INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (CORPS_ID_SEQ.NEXTVAL, q'[DIRE GENE CROUS]', q'[DG CROUS]', (SELECT id FROM source WHERE code = 'OSE'), q'[005]', SYSDATE, 1, SYSDATE, 1); INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (CORPS_ID_SEQ.NEXTVAL, q'[DIRECTEUR GENERAL DES SERVICES EPSCP]', q'[DGS EPSCP]', (SELECT id FROM source WHERE code = 'OSE'), q'[029]', SYSDATE, 1, SYSDATE, 1); INSERT INTO CORPS(ID, LIBELLE_LONG, LIBELLE_COURT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (CORPS_ID_SEQ.NEXTVAL, q'[SOUS DIRECTEUR DE CNOUS]', q'[SDIR CNOUS]', (SELECT id FROM source WHERE code = 'OSE'), q'[224]', SYSDATE, 1, SYSDATE, 1); @@ -27716,7 +29282,7 @@ INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOU INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[EC DE MANAGEMENT DE PARIS]', q'[EM PARIS]', q'[075]', (SELECT id FROM source WHERE code = 'OSE'), q'[0752103D]', SYSDATE, 1, SYSDATE, 1); INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[EC PREP PRATIQUE DES AFFAIRES]', q'[EPPA PARIS]', q'[075]', (SELECT id FROM source WHERE code = 'OSE'), q'[0752219E]', SYSDATE, 1, SYSDATE, 1); INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[INST SUP SC TECH ECO COM PARIS]', q'[ISSTEC PAR]', q'[075]', (SELECT id FROM source WHERE code = 'OSE'), q'[0752304X]', SYSDATE, 1, SYSDATE, 1); -INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[EC SUP LIBRE SC COMMERC APPLIQ]', q'[ESSCA PARI]', q'[075]', (SELECT id FROM source WHERE code = 'OSE'), q'[0752790A]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[EC SUP LIBRE SC COMMERC APPLIQ]', q'[ESLSCA]', q'[075]', (SELECT id FROM source WHERE code = 'OSE'), q'[0752790A]', SYSDATE, 1, SYSDATE, 1); INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[INST PREP ADM GESTION PARIS]', q'[IPAG PARIS]', q'[075]', (SELECT id FROM source WHERE code = 'OSE'), q'[0752792C]', SYSDATE, 1, SYSDATE, 1); INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[INST DE RECHERCHE ACTION COMM]', q'[IRAC PARIS]', q'[075]', (SELECT id FROM source WHERE code = 'OSE'), q'[0752887F]', SYSDATE, 1, SYSDATE, 1); INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[INST SUP EUROPEEN DE GESTION]', q'[ISEG PARIS]', q'[075]', (SELECT id FROM source WHERE code = 'OSE'), q'[0752972Y]', SYSDATE, 1, SYSDATE, 1); @@ -29208,6 +30774,19 @@ INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOU INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[AFTRAL Tours]', q'[AFTRAL]', q'[037]', (SELECT id FROM source WHERE code = 'OSE'), q'[03700000]', SYSDATE, 1, SYSDATE, 1); INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[AFTRAL Orléans]', q'[AFTRAL]', q'[045]', (SELECT id FROM source WHERE code = 'OSE'), q'[0450000]', SYSDATE, 1, SYSDATE, 1); INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[CFA du transport et de la logistique - AFTRAL]', q'[AFTRAL]', q'[006]', (SELECT id FROM source WHERE code = 'OSE'), q'[0061989E]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[Charité - Université de médecine Berlin]', q'[Charité]', q'[099]', (SELECT id FROM source WHERE code = 'OSE'), q'[ETR1171]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[Institut Régional de Formation et Techniciens de Laboratoire Médical]', q'[IRFTLM]', q'[037]', (SELECT id FROM source WHERE code = 'OSE'), q'[0371470X]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[AXENS GROUP]', q'[AXENS]', q'[092]', (SELECT id FROM source WHERE code = 'OSE'), q'[AXENS]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[Total Petrochemicals Research Feluy]', q'[Total]', q'[099]', (SELECT id FROM source WHERE code = 'OSE'), q'[ETR1175]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[University of California Santa Barbara]', q'[University]', q'[099]', (SELECT id FROM source WHERE code = 'OSE'), q'[ETR1176]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[Universität Kaiserslautern]', q'[Univ KAIS.]', q'[099]', (SELECT id FROM source WHERE code = 'OSE'), q'[ETR1177]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[American University of Paris]', q'[Amer.uni.]', q'[075]', (SELECT id FROM source WHERE code = 'OSE'), q'[ETR1178]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[FIM CCI Formation - Campus 1]', q'[FIM CCI]', q'[050]', (SELECT id FROM source WHERE code = 'OSE'), q'[05000000]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[Faculté des métiers de la CCI]', q'[FACULTE 35]', q'[035]', (SELECT id FROM source WHERE code = 'OSE'), q'[0351884H]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[MENSA]', q'[MENSA]', q'[035]', (SELECT id FROM source WHERE code = 'OSE'), q'[0352779F]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[Faculté des sciences d'Oujda]', q'[F. Oujda]', q'[099]', (SELECT id FROM source WHERE code = 'OSE'), q'[ETR1172]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[Faculté des sciences et techniques de Fès]', q'[F. Fès]', q'[099]', (SELECT id FROM source WHERE code = 'OSE'), q'[ETR1173]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO ETABLISSEMENT(ID, LIBELLE, LOCALISATION, DEPARTEMENT, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (ETABLISSEMENT_ID_SEQ.NEXTVAL, q'[Ecole Supérieure de Technologie]', q'[EST Maroc]', q'[099]', (SELECT id FROM source WHERE code = 'OSE'), q'[ETR1174]', SYSDATE, 1, SYSDATE, 1); -- Table GRADE @@ -29623,9 +31202,6 @@ INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[PROF. TITULAIRES A TITRE PERSONNEL]', q'[PR. TIT. TITRE PERS]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[H03]'), (SELECT id FROM source WHERE code = 'OSE'), q'[H030]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[MAITRE DE CONFERENCE CL. NORMALE]', q'[MT.CONF.CL NORM.]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[301]'), (SELECT id FROM source WHERE code = 'OSE'), q'[3014]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[BIBLIOTHECAIRE]', q'[BIBLIOTHECAIRE]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[806]'), (SELECT id FROM source WHERE code = 'OSE'), q'[8063]', SYSDATE, 1, SYSDATE, 1); -INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[CHARGE D'ETUDES DOCUMENTAIRES (CULTURE)]', q'[CHARGE ET.DOC (CULT)]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[296]'), (SELECT id FROM source WHERE code = 'OSE'), q'[2961]', SYSDATE, 1, SYSDATE, 1); -INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[CHARGE ETUDES DOC PAL 2CL (CULT)]', q'[CH.ET.DOC P2CL(CULT)]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[296]'), (SELECT id FROM source WHERE code = 'OSE'), q'[2962]', SYSDATE, 1, SYSDATE, 1); -INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[CHARGE ETUDES DOC PAL 1CL (CULT)]', q'[CH.ET.DOC P1CL(CULT)]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[296]'), (SELECT id FROM source WHERE code = 'OSE'), q'[2963]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[PHYSICIEN ADJOINT CL NORMALE]', q'[PHYS.ADJ.CN]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[333]'), (SELECT id FROM source WHERE code = 'OSE'), q'[3334]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[ASTRONOME ADJOINT CL NORMALE]', q'[ASTRO.ADJ.CN]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[332]'), (SELECT id FROM source WHERE code = 'OSE'), q'[3324]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[MAITRE DE CONF.DU MUSEUM HIST.NAT.C.N]', q'[MAIT.CF.MUSEUM CN]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[351]'), (SELECT id FROM source WHERE code = 'OSE'), q'[3514]', SYSDATE, 1, SYSDATE, 1); @@ -29723,12 +31299,12 @@ INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[PSYCHOLOGUE EDUCATION NATIONALE HC]', q'[PSY.EN.HC]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[522]'), (SELECT id FROM source WHERE code = 'OSE'), q'[5222]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[PSYCHOLOGUE EDUCATION NATIONALE CN]', q'[PSY.EN.CN]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[522]'), (SELECT id FROM source WHERE code = 'OSE'), q'[5221]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[ARCHITECTE URBANISTE GENERAL DE L'ETAT]', q'[ARC URB GEN ETAT]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[281]'), (SELECT id FROM source WHERE code = 'OSE'), q'[2815]', SYSDATE, 1, SYSDATE, 1); -INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[ADJ TECH PRINC DE RECH ET DE FORM DE 1CL]', q'[ATRF P1C]', q'[2]', (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[941]'), (SELECT id FROM source WHERE code = 'OSE'), q'[9412]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[ADJ TECH PRINC DE RECH ET DE FORM DE 2CL]', q'[ATRF P2C]', q'[3]', (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[941]'), (SELECT id FROM source WHERE code = 'OSE'), q'[9412]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[ADJOINT ADMINISTRATIF PRINCIPAL DE 1CL]', q'[ADJ P1C]', q'[3]', (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[057]'), (SELECT id FROM source WHERE code = 'OSE'), q'[0573]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[MAG PRINCIPAL DES BIBLIOTHEQUES DE 2CL]', q'[MAG P2C]', q'[2]', (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[942]'), (SELECT id FROM source WHERE code = 'OSE'), q'[9422]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[ADJ. TEC. DES ETAB. D'ENSEIGNEMENT]', q'[ATEC]', q'[1]', (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[943]'), (SELECT id FROM source WHERE code = 'OSE'), q'[9431]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[ADJ. TEC. PRINCIPAL DE 1CL DES ETAB ENS]', q'[ATEC P1C]', q'[3]', (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[943]'), (SELECT id FROM source WHERE code = 'OSE'), q'[9433]', SYSDATE, 1, SYSDATE, 1); -INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[ADJ TECH PRINC DE RECH ET DE FORM DE 2CL]', q'[ATRF P2C]', q'[3]', (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[941]'), (SELECT id FROM source WHERE code = 'OSE'), q'[9413]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[ADJ TECH PRINC DE RECH ET DE FORM DE 1CL]', q'[ATRF P1C]', q'[2]', (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[941]'), (SELECT id FROM source WHERE code = 'OSE'), q'[9413]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[ADJOINT ADMINISTRATIF]', q'[ADJAENES]', q'[1]', (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[057]'), (SELECT id FROM source WHERE code = 'OSE'), q'[0571]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[MAGASINIER DES BIBLIOTHEQUES]', q'[MAG]', q'[1]', (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[942]'), (SELECT id FROM source WHERE code = 'OSE'), q'[9421]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[ADJOINT ADMINISTRATIF PRINCIPAL DE 2CL]', q'[ADJ P2C]', q'[2]', (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[057]'), (SELECT id FROM source WHERE code = 'OSE'), q'[0572]', SYSDATE, 1, SYSDATE, 1); @@ -29751,6 +31327,10 @@ INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[SECRETAIRE GENERAL D'ACADEMIE GROUPE I]', q'[SGA GP I]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[091]'), (SELECT id FROM source WHERE code = 'OSE'), q'[0911]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[CONSEILLER DE RECTEUR OU DE VICE RECTEUR]', q'[CONSEILLER RECTEUR]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[093]'), (SELECT id FROM source WHERE code = 'OSE'), q'[0931]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[VICE-RECTEUR GROUPE II]', q'[VICE-RECTEUR GP II]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[090]'), (SELECT id FROM source WHERE code = 'OSE'), q'[0902]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[MEDECIN DE L'E.N. HORS CLASSE]', q'[MED.EN.HC]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[997]'), (SELECT id FROM source WHERE code = 'OSE'), q'[9973]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[CHARGE D'ETUDES DOCUMENTAIRES]', q'[CED]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[981]'), (SELECT id FROM source WHERE code = 'OSE'), q'[9811]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[CHARGE D'ETUDES DOCUMENTAIRES PRINCIPAL]', q'[CED P]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[981]'), (SELECT id FROM source WHERE code = 'OSE'), q'[9812]', SYSDATE, 1, SYSDATE, 1); +INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[CHARGE D'ETUDES DOCUMENTAIRES HC]', q'[CED HC]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[981]'), (SELECT id FROM source WHERE code = 'OSE'), q'[9813]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[DIRECTEUR GENERAL DES SERVICES GR III]', q'[DGS GR III]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[029]'), (SELECT id FROM source WHERE code = 'OSE'), q'[0293]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[AGENT COMPTABLE CROUS GROUPE I]', q'[AC CROUS G1]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[052]'), (SELECT id FROM source WHERE code = 'OSE'), q'[0521]', SYSDATE, 1, SYSDATE, 1); INSERT INTO GRADE(ID, LIBELLE_LONG, LIBELLE_COURT, ECHELLE, CORPS_ID, SOURCE_ID, SOURCE_CODE, HISTO_CREATION, HISTO_CREATEUR_ID, HISTO_MODIFICATION, HISTO_MODIFICATEUR_ID) VALUES (GRADE_ID_SEQ.NEXTVAL, q'[PROFESSEUR D'EPS CLASSE EXCEPTIONNELLE]', q'[EPS CE]', NULL, (SELECT ID FROM CORPS WHERE ROWNUM = 1 AND SOURCE_CODE = q'[531]'), (SELECT id FROM source WHERE code = 'OSE'), q'[5314]', SYSDATE, 1, SYSDATE, 1);