-- MàJ de la version en BDD
UPDATE om_version SET om_version = '5.15.0' WHERE exists(SELECT 1 FROM om_version) = true;
INSERT INTO om_version
SELECT ('5.15.0') WHERE exists(SELECT 1 FROM om_version) = false;

--
-- BEGIN / [#9991] Amélioration de la fonction SQL pour l'affichage d'une adresse
--

CREATE OR REPLACE FUNCTION adresse(
    numero text,
    voie text,
    complement text,
    lieu_dit text,
    bp text,
    code_postal text,
    localite text,
    cedex text,
    separateur text DEFAULT '<br>') RETURNS text AS $$

    SELECT CONCAT(
        CASE WHEN COALESCE(numero, '') != '' THEN CONCAT(numero, ' ') END,
        CASE WHEN COALESCE(voie, '') != '' THEN CONCAT(voie, ' ') END,
        CASE WHEN COALESCE(complement, '') != '' THEN CONCAT(complement, separateur) END,
        CASE WHEN COALESCE(lieu_dit, '') != '' THEN CONCAT(lieu_dit, ' ') END, 
        CASE WHEN COALESCE(bp, '') != '' THEN CONCAT('BP ', bp, separateur) END, 
        CASE WHEN COALESCE(code_postal, '') != '' THEN CONCAT(code_postal, ' ') END,
        CASE WHEN COALESCE(localite, '') != '' THEN CONCAT(localite, ' ') END,
        CASE WHEN COALESCE(cedex, '') != '' THEN CONCAT('CEDEX ', cedex, ' ') END
    )
$$ LANGUAGE SQL;

--
-- END / [#9991] Amélioration de la fonction SQL pour l'affichage d'une adresse
--

--
-- BEGIN / Mise à jour de la requête 'instruction'
--

\i v5.15.0-om_requete.sql

--
-- END / Mise à jour de la requête 'instruction'
--

--
-- BEGIN / [#1444] - Connecteur parapheur LexPersona / RequestManager
--
CREATE TABLE "compteur" (
"compteur" integer NOT NULL,
"code" varchar(150) NOT NULL,
"description" varchar(300) NOT NULL,
"unite" varchar(10) NULL,
"quantite" double precision NOT NULL,
"quota" double precision NOT NULL,
"alerte" double precision NULL,
"om_collectivite" integer NOT NULL,
"date_modification" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
"om_validite_debut" date NOT NULL,
"om_validite_fin" date
);

CREATE SEQUENCE compteur_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

ALTER TABLE "compteur" ADD CONSTRAINT "compteur_compteur" PRIMARY KEY ("compteur");
ALTER TABLE "compteur"
ADD CONSTRAINT "compteur_code_om_collectivite_om_validite_debut_om_validite_fin" UNIQUE ("code", "om_collectivite", "om_validite_debut", "om_validite_fin");
CREATE INDEX "compteur_code" ON "compteur" ("code");
CREATE INDEX "compteur_om_collectivite" ON "compteur" ("om_collectivite");
CREATE INDEX "compteur_om_validite_debut" ON "compteur" ("om_validite_debut");
CREATE INDEX "compteur_om_validite_fin" ON "compteur" ("om_validite_fin");

ALTER TABLE "compteur"
ADD FOREIGN KEY ("om_collectivite") REFERENCES "om_collectivite" ("om_collectivite");
--
-- END / [#1444] - Connecteur parapheur LexPersona / RequestManager
--

--
-- BEGIN / [#10002] - Passage en tacite de consultations à l'état clôturé 
--
-- Création d'un index pour accélérer la récupération des dossiers sur lesquels
-- appliquer un tacite
CREATE INDEX IF NOT EXISTS avis_decision_null_dli_in_idx ON dossier(
    (avis_decision IS NULL),
    date_limite,
    incomplet_notifie
)
WHERE
    (avis_decision IS NULL)
    AND (date_limite IS NOT NULL);

-- Création d'un index pour accélérer la récupération des dossiers sur lesquels
-- appliquer un tacite d'incompletude
CREATE INDEX IF NOT EXISTS avis_decision_null_dliin_in_idx ON dossier(
    (avis_decision IS NULL),
    date_limite_incompletude,
    incomplet_notifie
)
WHERE
    (avis_decision IS NULL)
    AND (date_limite_incompletude IS NOT NULL);

--
-- END / [#10002] - Passage en tacite de consultations à l'état clôturé 
--

--
-- BEGIN / [#10008] - Mise à jour du numéro d’archive
--

DELETE FROM om_droit WHERE libelle = 'gestion_numero_versement_archive';

--
-- END / [#10008] - Mise à jour du numéro d’archive
--
