/*
 * Update script van FACILITOR schema
 * $Revision$
 * $Id$
 */
#include "prologue.inc"

COMMIT;
SET DEFINE OFF

/////////////////////////////////////////////////////////////////////////////////////////// WRTH#87857
UPDATE fac_import_app SET fac_import_app_csv = 1 WHERE fac_import_app_code = 'CNT';

/////////////////////////////////////////////////////////////////////////////////////////// PCHX#86497
ALTER TABLE cnt_disc_params /* Kostensoort verplicht {0=niet verplicht (default), 1=verplicht} */
  ADD cnt_disc_params_ksverplicht
      NUMBER(1)
      DEFAULT 0
      NOT NULL;

/////////////////////////////////////////////////////////////////////////////////////////// SCHG#88197
ALTER TABLE fac_imp_cnt
 DROP COLUMN scope;
ALTER TABLE fac_imp_cnt
 DROP COLUMN gebouwcode;
ALTER TABLE fac_imp_cnt
  ADD ( locatiecode        VARCHAR2 (10)
      , terreincode        VARCHAR2 (12)
      , gebouwcode         VARCHAR2 (12)
      , verdiepingcode     NUMBER (3)
      , ruimtecode         VARCHAR2 (20)
      );

/////////////////////////////////////////////////////////////////////////////////////////// BAMG#85636
CREATE TABLE cnt_verlengschema
(
   cnt_verlengschema_key
      NUMBER(10)
      PRIMARY KEY,
   cnt_contract_key
      NUMBER(10)
      CONSTRAINT cnt_r_cnt_contract_key2 REFERENCES cnt_contract(cnt_contract_key),
   cnt_verlengschema_volgnr
      NUMBER(2),
   cnt_verlengschema_verlengtermijn
      NUMBER(10)
      CONSTRAINT cnt_r_cnt_termijn_key6 REFERENCES cnt_termijn(cnt_termijn_key)
);
CREATE SEQUENCE cnt_s_cnt_verlengschema_key MINVALUE 1;
CREATE INDEX cnt_i_cnt_verlengschema ON cnt_verlengschema(cnt_contract_key);

/////////////////////////////////////////////////////////////////////////////////////////// YASK#88648
UPDATE fac_message
   SET fac_message_text = 'Het veld ''Code'' is niet uniek.'
 WHERE fac_message_code = 'PRS_U_PRS_AFDELING_UPPER';

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84467
ALTER TABLE mld_kenmerk ADD mld_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE mld_kenmerk k
   SET mld_kenmerk_rolcode = 0;
UPDATE mld_kenmerk k
   SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 1
 WHERE mld_kenmerk_volgnummer <= 800
   AND mld_kenmerk_niveau IN ('T', 'D', 'S', 'A');
UPDATE mld_kenmerk k
   SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 2
 WHERE mld_kenmerk_volgnummer <= 900 -- ja ook die <=800
   AND mld_kenmerk_niveau IN ('T', 'D', 'S', 'A');
UPDATE mld_kenmerk k
   SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 4 -- anders ziet BO de normale km niet
 WHERE mld_kenmerk_volgnummer <= 800 OR mld_kenmerk_volgnummer >= 900
   AND mld_kenmerk_niveau IN ('T', 'D', 'S', 'A');

UPDATE mld_kenmerk k
   SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 1
 WHERE mld_kenmerk_volgnummer <= 100
   AND mld_kenmerk_niveau IN ('O', 'P');
UPDATE mld_kenmerk k
   SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 2
 WHERE mld_kenmerk_volgnummer <= 900
   AND mld_kenmerk_volgnummer >= 100
   AND mld_kenmerk_niveau IN ('O', 'P');
UPDATE mld_kenmerk k
   SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 4
 WHERE mld_kenmerk_volgnummer >= 900
   AND mld_kenmerk_niveau IN ('O', 'P');

ALTER TABLE bes_kenmerk ADD bes_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE bes_kenmerk k
   SET bes_kenmerk_rolcode = 0;
UPDATE bes_kenmerk k
   SET bes_kenmerk_rolcode = bes_kenmerk_rolcode + 1
 WHERE bes_kenmerk_volgnummer <= 100
   AND bes_kenmerk_type IN ('B', 'I');
UPDATE bes_kenmerk k
   SET bes_kenmerk_rolcode = bes_kenmerk_rolcode + 4
 WHERE bes_kenmerk_volgnummer >= 900
   AND bes_kenmerk_type IN ('B', 'I');

ALTER TABLE cnt_kenmerk ADD cnt_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE cnt_kenmerk k
   SET cnt_kenmerk_rolcode = 0;
UPDATE cnt_kenmerk k
   SET cnt_kenmerk_rolcode = 1
 WHERE cnt_kenmerk_volgnummer <= 100;
UPDATE cnt_kenmerk k
   SET cnt_kenmerk_rolcode = cnt_kenmerk_rolcode + 2
 WHERE cnt_kenmerk_volgnummer >= 100;

ALTER TABLE ins_kenmerk ADD ins_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE ins_kenmerk k
   SET ins_kenmerk_rolcode = 0;
UPDATE ins_kenmerk k
   SET ins_kenmerk_rolcode = 1
 WHERE ins_kenmerk_volgnummer <= 100
   AND ins_kenmerk_niveau IN ('D', 'G', 'S');
UPDATE ins_kenmerk k
   SET ins_kenmerk_rolcode = ins_kenmerk_rolcode + 2
 WHERE ins_kenmerk_volgnummer >= 100
   AND ins_kenmerk_volgnummer <= 900
   AND ins_kenmerk_niveau IN ('D', 'G', 'S');
UPDATE ins_kenmerk k
   SET ins_kenmerk_rolcode = ins_kenmerk_rolcode + 4
 WHERE ins_kenmerk_volgnummer >= 900
   AND ins_kenmerk_niveau IN ('D', 'G', 'S');
UPDATE ins_kenmerk k
   SET ins_kenmerk_rolcode = 1
 WHERE ins_kenmerk_volgnummer <= 100
   AND ins_kenmerk_niveau IN ('T', 'C', 'E');

ALTER TABLE res_kenmerk ADD res_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE res_kenmerk k
   SET res_kenmerk_rolcode = 0;
UPDATE res_kenmerk k
   SET res_kenmerk_rolcode = 1
 WHERE res_kenmerk_volgnummer <= 800;
UPDATE res_kenmerk k
   SET res_kenmerk_rolcode = res_kenmerk_rolcode + 2
 WHERE res_kenmerk_volgnummer <= 900;
UPDATE res_kenmerk k
   SET res_kenmerk_rolcode = res_kenmerk_rolcode + 4
 WHERE res_kenmerk_volgnummer <= 800
    OR res_kenmerk_volgnummer >= 900;

// Deze varianten hebben kenmerk_volgnr ipv kenmerk_volgnummer
// (en tegelijkertijd geen verwijzing naar een kenmerksoort)
ALTER TABLE alg_kenmerk ADD alg_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE alg_kenmerk k
   SET alg_kenmerk_rolcode = 0;
UPDATE alg_kenmerk k
   SET alg_kenmerk_rolcode = 1
 WHERE alg_kenmerk_volgnr <= 100;
UPDATE alg_kenmerk k
   SET alg_kenmerk_rolcode = alg_kenmerk_rolcode + 2
 WHERE alg_kenmerk_volgnr >= 100;

ALTER TABLE bez_kenmerk ADD bez_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE bez_kenmerk k
   SET bez_kenmerk_rolcode = 0;
UPDATE bez_kenmerk k
   SET bez_kenmerk_rolcode = 3
 WHERE bez_kenmerk_volgnr <= 900;
UPDATE bez_kenmerk k
   SET bez_kenmerk_rolcode = bez_kenmerk_rolcode + 4
 WHERE bez_kenmerk_volgnr >= 900;

ALTER TABLE fin_kenmerk ADD fin_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE fin_kenmerk k
   SET fin_kenmerk_rolcode = 1;

ALTER TABLE faq_kenmerk ADD faq_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE faq_kenmerk k
   SET faq_kenmerk_rolcode = 1;

ALTER TABLE prs_kenmerk ADD prs_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE prs_kenmerk k
   SET prs_kenmerk_rolcode = 0;
UPDATE prs_kenmerk k
   SET prs_kenmerk_rolcode = 1
 WHERE prs_kenmerk_volgnr <= 100;
UPDATE prs_kenmerk k
   SET prs_kenmerk_rolcode = prs_kenmerk_rolcode + 2
 WHERE prs_kenmerk_volgnr >= 100;
UPDATE prs_kenmerk k
   SET prs_kenmerk_rolcode = prs_kenmerk_rolcode + 4  -- Wijzigbaar met PROFIL
 WHERE prs_kenmerk_niveau <> 'C' AND prs_kenmerk_volgnr >= 800;
UPDATE prs_kenmerk k
   SET prs_kenmerk_rolcode = prs_kenmerk_rolcode + 4  -- Wijzigbaar met EXTREL
 WHERE prs_kenmerk_niveau = 'C' AND BITAND (prs_kenmerk_rolcode, 4) = 0;
UPDATE prs_kenmerk k
   SET prs_kenmerk_toonbaar = COALESCE (prs_kenmerk_toonbaar, 0) + 2 -- Zichtbaar in profiel
 WHERE prs_kenmerk_volgnr > 800
   AND prs_kenmerk_volgnr <= 900
   AND BITAND (COALESCE (prs_kenmerk_toonbaar, 0), 2) = 0;

ALTER TABLE fac_imp_flex ADD kenmerk_rolcode VARCHAR2(255);
/*
UPDATE ins_kenmerk k
   SET ins_kenmerk_omschrijving = (SELECT ins_srtkenmerk_omschrijving FROM ins_srtkenmerk sk WHERE sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key)
 WHERE ins_kenmerk_omschrijving IS NULL;
UPDATE mld_kenmerk k
   SET mld_kenmerk_omschrijving = (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key)
 WHERE mld_kenmerk_omschrijving IS NULL;
UPDATE res_kenmerk k
   SET res_kenmerk_omschrijving = (SELECT res_srtkenmerk_omschrijving FROM res_srtkenmerk sk WHERE sk.res_srtkenmerk_key = k.res_srtkenmerk_key)
 WHERE res_kenmerk_omschrijving IS NULL;
UPDATE bes_kenmerk k
   SET bes_kenmerk_omschrijving = (SELECT bes_srtkenmerk_omschrijving FROM bes_srtkenmerk sk WHERE sk.bes_srtkenmerk_key = k.bes_srtkenmerk_key)
 WHERE bes_kenmerk_omschrijving IS NULL;
UPDATE cnt_kenmerk k
   SET cnt_kenmerk_omschrijving = (SELECT cnt_srtkenmerk_omschrijving FROM cnt_srtkenmerk sk WHERE sk.cnt_srtkenmerk_key = k.cnt_srtkenmerk_key)
 WHERE cnt_kenmerk_omschrijving IS NULL;
*/

/////////////////////////////////////////////////////////////////////////////////////////// AAIT#87224
ALTER TABLE prs_bedrijf MODIFY prs_bedrijf_opmerking VARCHAR2(4000);
ALTER TABLE fac_imp_ext_bedrijf MODIFY prs_bedrijf_opmerking VARCHAR2(4000);

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#88353
UPDATE prs_bedrijf SET prs_bedrijf_intern = NULL WHERE prs_bedrijf_intern = 0;
ALTER TABLE prs_bedrijf
  ADD CONSTRAINT prs_c_prs_bedrijf_intern CHECK(prs_bedrijf_intern IS NULL OR prs_bedrijf_intern IN (1,2));

/////////////////////////////////////////////////////////////////////////////////////////// LOGC#89125
ALTER TABLE mld_melding_tag ADD mld_melding_tag_datum_acc DATE;

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85585
ALTER TABLE fac_email_setting
    ADD (mld_stdmelding_key NUMBER (10) REFERENCES mld_stdmelding (mld_stdmelding_key) ON DELETE CASCADE);
ALTER TABLE fac_email_setting
    MODIFY fac_email_setting_attachpath VARCHAR2 (255) DEFAULT '*flexfilespath';
ALTER TABLE fac_email_setting
   ADD fac_email_setting_text VARCHAR2 (320);

INSERT INTO fac_setting (fac_setting_module
                       , fac_setting_flags
                       , fac_functie_key
                       , fac_setting_name
                       , fac_setting_type
                       , fac_setting_description)
    SELECT 'FAC'
         , 1
         , fac_functie_key
         , 'm2m_enabled'
         , 'number'
         , 'Is Facilitor Mail2Melding configured {0=disabled | 1=enabled}'
      FROM fac_functie
     WHERE fac_functie_code = 'WEB_FACFAC';
-- Zet nieuwe setting m2m_enabled voor omgeving waar m2m in gebruik is
DECLARE
    m2m   NUMBER;
BEGIN
    SELECT COUNT (*) INTO m2m FROM fac_email_setting;

    IF m2m > 0
    THEN
        UPDATE fac_setting
           SET fac_setting_pvalue = '1'
         WHERE fac_setting_name = 'm2m_enabled';
    END IF;
END;
/
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#88913
DEF_FAC_SRTNOT('ORDSND', 0, 'lcl_noti_ORDSND', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 60);

-- CNTNEW/ORDNEW/BES2NE aanmaken bij kanalen die nog naar geen enkele notificatie luisteren
INSERT INTO prs_bedrijfadres_srtnoti (prs_bedrijfadres_key, fac_srtnotificatie_key)
    SELECT prs_bedrijfadres_key, fac_srtnotificatie_key
      FROM fac_srtnotificatie, prs_bedrijfadres ba
     WHERE     fac_srtnotificatie_code = 'CNTNEW'
           AND prs_bedrijfadres_type = 'C'
           AND NOT EXISTS
                   (SELECT 1
                      FROM prs_bedrijfadres_srtnoti ba_srt
                     WHERE ba_srt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key);

INSERT INTO prs_bedrijfadres_srtnoti (prs_bedrijfadres_key, fac_srtnotificatie_key)
    SELECT prs_bedrijfadres_key, fac_srtnotificatie_key
      FROM fac_srtnotificatie, prs_bedrijfadres ba
     WHERE     fac_srtnotificatie_code IN ('ORDNEW', 'ORDSND')
           AND prs_bedrijfadres_type = 'O'
           AND NOT EXISTS
                   (SELECT 1
                      FROM prs_bedrijfadres_srtnoti ba_srt
                     WHERE ba_srt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key);

INSERT INTO prs_bedrijfadres_srtnoti (prs_bedrijfadres_key, fac_srtnotificatie_key)
    SELECT prs_bedrijfadres_key, fac_srtnotificatie_key
      FROM fac_srtnotificatie, prs_bedrijfadres ba
     WHERE     fac_srtnotificatie_code = 'BES2NE'
           AND prs_bedrijfadres_type = 'B'
           AND NOT EXISTS
                   (SELECT 1
                      FROM prs_bedrijfadres_srtnoti ba_srt
                     WHERE ba_srt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key);
-- RESNEW luisterde al nooit automatisch

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#87091
ALTER TABLE fac_nieuws ADD
    mld_melding_key
        NUMBER(10) CONSTRAINT mld_r_mld_melding_key8 REFERENCES mld_melding(mld_melding_key) ON DELETE SET NULL;

UPDATE fac_setting
   SET fac_setting_pvalue = fac_setting_pvalue || ',fa-megaphone'
 WHERE     fac_setting_pvalue IS NOT NULL
       AND fac_setting_name = 'buttons_in_hamburger';

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#89182
INSERT INTO fac_locale (fac_locale_lang,
                        fac_locale_kolomkeyval,
                        fac_locale_kolomnaam,
                        fac_locale_tekst)
    SELECT 'EN',
           fac_usrrap_key,
           'FAC_USRRAP_OMSCHRIJVING',
           'UDR: Key management'
      FROM fac_usrrap
     WHERE     fac_usrrap_view_name = 'ins_v_rap_sle_toegang'
           AND fac_usrrap_omschrijving = 'SLE: Sleuteloverzicht'
           AND fac_usrrap_info = 'Overzicht van sleutels en bezitters';

INSERT INTO fac_locale (fac_locale_lang,
                        fac_locale_kolomkeyval,
                        fac_locale_kolomnaam,
                        fac_locale_tekst)
    SELECT 'EN',
           fac_usrrap_key,
           'FAC_USRRAP_INFO',
           'Basic report for key management'
      FROM fac_usrrap
     WHERE     fac_usrrap_view_name = 'ins_v_rap_sle_toegang'
           AND fac_usrrap_omschrijving = 'SLE: Sleuteloverzicht'
           AND fac_usrrap_info = 'Overzicht van sleutels en bezitters';

UPDATE fac_usrrap
   SET fac_usrrap_omschrijving = 'UDR: Sleuteloverzicht',
       fac_usrrap_info = 'Basisrapport voor sleutels',
       fac_usrrap_groep = 'BASIS'
 WHERE fac_usrrap_view_name = 'ins_v_rap_sle_toegang'
   AND fac_usrrap_omschrijving = 'SLE: Sleuteloverzicht'
   AND fac_usrrap_info = 'Overzicht van sleutels en bezitters'
   AND fac_usrrap_groep IS NULL;

/////////////////////////////////////////////////////////////////////////////////////////// FZKH#88777
ALTER TABLE fac_activiteit DROP CONSTRAINT fac_c_fac_activiteit_eenheid;
ALTER TABLE fac_activiteit
  ADD CONSTRAINT fac_c_fac_activiteit_eenheid CHECK (fac_activiteit_eenheid IN (1,2,3,4,5) OR fac_activiteit_eenheid IS NULL);

DEF_MENUITEM(1, 'lcl_menu_fac_jobs_templates_fo', '', 'MLD', 'appl/fac/job_search.asp?urole=fo&template=1', 0, 0, 'WEB_MLDFOF', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fac_jobs_templates', '', 'MLD', 'appl/fac/job_search.asp?template=1', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
MENU_INS_AFTER('lcl_menu_fac_jobs_templates', 'lcl_menu_mld_workflows', 1);

/////////////////////////////////////////////////////////////////////////////////////////// FZKH#87243
UPDATE mld_kenmerk k1
   SET k1.mld_kenmerk_inlijst = k1.mld_kenmerk_inlijst + 2
 WHERE k1.mld_kenmerk_key IN
           (SELECT k2.mld_kenmerk_key
              FROM mld_kenmerk k2, mld_srtkenmerk sk, fac_kenmerkdomein kd
             WHERE     k2.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
                   AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
                   AND k2.mld_kenmerk_verwijder IS NULL
                   AND sk.mld_srtkenmerk_verwijder IS NULL
                   AND kd.fac_kenmerkdomein_verwijder IS NULL
                   AND k2.mld_kenmerk_show_expr IS NULL
                   AND k2.mld_kenmerk_toonbaar IS NULL
                   AND k2.mld_kenmerk_niveau IN ('A',
                                                 'T',
                                                 'D',
                                                 'S')
                   AND sk.mld_srtkenmerk_kenmerktype IN ('r', 'R')
                   AND NOT EXISTS
                           (SELECT ''
                              FROM fac_usrtab u1
                             WHERE     u1.fac_usrtab_parentkey IS NOT NULL
                                   AND u1.fac_usrtab_key = kd.fac_usrtab_key)
                   AND NOT EXISTS
                           (SELECT ''
                              FROM fac_usrtab u1, fac_usrtab u2
                             WHERE     u2.fac_usrtab_parentkey =
                                       u1.fac_usrtab_key
                                   AND u1.fac_usrtab_key = kd.fac_usrtab_key));

/////////////////////////////////////////////////////////////////////////////////////////// ALLR#80285
ALTER TABLE res_ruimte
    ADD res_ruimte_limiet NUMBER (3);

/////////////////////////////////////////////////////////////////////////////////////////// BLCC#88329
ALTER TABLE cnt_disc_params
  ADD cnt_disc_params_approve_new NUMBER(1) DEFAULT 0 NOT NULL;

/////////////////////////////////////////////////////////////////////////////////////////// VLKC#89252
INSERT INTO fac_setting (fac_setting_module,
                         fac_setting_name,
                         fac_setting_type,
                         fac_setting_description,
                         fac_setting_default,
                         fac_setting_pvalue)
     VALUES('MLD',
            'mld_pessismistisch_hergoedkeuren',
            'number',
            'Hergoedkeuren als de opdrachtkosten boven de bestellimiet, of boven de goedkeuringsvrijstelling komen {1=ja | 0=alleen als beiden waar zijn}',
            '0',
            (SELECT fac_setting_pvalue FROM fac_setting WHERE fac_setting_name = 'fac_reserved_number2'));

UPDATE fac_setting
   SET fac_setting_pvalue = ''
 WHERE fac_setting_name = 'fac_reserved_number2';

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000


REGISTERONCE('$Id$')

#include "epilogue.inc"
