--
-- BEGIN / #1119 — Analyse PeC et Avis de consulation
--

-- Nouvelle table de référence *pec_metier*
CREATE TABLE pec_metier (
    pec_metier integer NOT NULL,
    code character varying(10) NULL,
    libelle character varying(255) NOT NULL,
    description text NULL,
    om_validite_debut date NULL,
    om_validite_fin date NULL
);
ALTER TABLE ONLY pec_metier
    ADD CONSTRAINT pec_metier_pkey PRIMARY KEY (pec_metier);
CREATE SEQUENCE pec_metier_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;
COMMENT ON COLUMN pec_metier.pec_metier IS 'Identifiant technique de la prise en compte métier';
COMMENT ON COLUMN pec_metier.code IS 'Code de la prise en compte métier';
COMMENT ON COLUMN pec_metier.libelle IS 'Libellé de la prise en compte métier';
COMMENT ON COLUMN pec_metier.description IS 'Description de la prise en compte métier';
COMMENT ON COLUMN pec_metier.om_validite_debut IS 'Date de validité (début) de la prise en compte métier';
COMMENT ON COLUMN pec_metier.om_validite_fin IS 'Date de validité (fin) de la prise en compte métier';

--
ALTER TABLE dossier ADD pec_metier integer NULL;
ALTER TABLE ONLY dossier
    ADD CONSTRAINT dossier_pec_metier FOREIGN KEY (pec_metier) REFERENCES pec_metier(pec_metier);
COMMENT ON COLUMN dossier.pec_metier IS 'Statut de la prise en compte métier du dossier d''instruction';

--
ALTER TABLE evenement ADD pec_metier integer NULL;
ALTER TABLE ONLY evenement
    ADD CONSTRAINT evenement_pec_metier FOREIGN KEY (pec_metier) REFERENCES pec_metier(pec_metier);
COMMENT ON COLUMN evenement.pec_metier IS 'Statut de la prise en compte métier de l''événement destiné au dossier d''instruction';

--
ALTER TABLE instruction ADD pec_metier integer NULL;
ALTER TABLE ONLY instruction
    ADD CONSTRAINT instruction_pec_metier FOREIGN KEY (pec_metier) REFERENCES pec_metier(pec_metier);
COMMENT ON COLUMN instruction.pec_metier IS 'Statut de la prise en compte métier de l''instruction, venant de l''événement et destiné au dossier d''instruction';

--
ALTER TABLE action ADD COLUMN regle_pec_metier character varying(60) NULL;
COMMENT ON COLUMN action.regle_pec_metier IS 'Règle de calcul de la prise en compte métier d''un dossier d''instruction';

--
ALTER TABLE instruction ADD COLUMN archive_pec_metier integer NULL;
COMMENT ON COLUMN instruction.archive_pec_metier IS 'Valeur du champ prise_en_compte du dossier d''instruction avant ajout de l''événement d''instruction';

--
ALTER TABLE action ADD COLUMN regle_a_qualifier character varying(60) NULL;
COMMENT ON COLUMN action.regle_a_qualifier IS 'Règle de calcul de la qualification d''un dossier d''instruction';

--
ALTER TABLE instruction ADD COLUMN archive_a_qualifier boolean NOT NULL DEFAULT FALSE;
COMMENT ON COLUMN instruction.archive_a_qualifier IS 'Valeur du champ a_qualifier du dossier d''instruction avant ajout de l''événement d''instruction';

--
INSERT INTO om_droit (om_droit, libelle, om_profil)
SELECT nextval('om_droit_seq'), 'pec_metier', (SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL')
WHERE NOT EXISTS (
    SELECT om_droit FROM om_droit WHERE libelle = 'pec_metier' AND om_profil = (SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL')
);
INSERT INTO om_droit (om_droit, libelle, om_profil)
SELECT nextval('om_droit_seq'), 'pec_metier', (SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR GENERAL')
WHERE NOT EXISTS (
    SELECT om_droit FROM om_droit WHERE libelle = 'pec_metier' AND om_profil = (SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR GENERAL')
);

--
-- END / #1119 — Analyse PeC et Avis de consulation
--
