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

COMMIT;
SET DEFINE OFF

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#83751
ALTER TABLE fac_import_app DROP COLUMN fac_import_app_action;

/////////////////////////////////////////////////////////////////////////////////////////// EIND#82452
ALTER TABLE mld_melding DROP COLUMN mld_melding_omschrijving_old;

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#83940
ALTER TABLE fac_api DROP COLUMN fac_import_app_key;

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#82437
DEF_MENUITEM(1, 'lcl_menu_mld_concepts', '', 'MLD', 'appl/mld/mld_search.asp?concept=1&urole=fo', 0, 0, 'WEB_MLDMSU', 'R', '0', '');

/////////////////////////////////////////////////////////////////////////////////////////// YAXX#83974
ALTER TABLE fac_imp_bedrijfadres ADD prs_bedrijfadres_replyaddress VARCHAR2(512);

/////////////////////////////////////////////////////////////////////////////////////////// PCHX#80376
ALTER TABLE prs_collega ADD prs_collega_vervaldatum DATE;

/////////////////////////////////////////////////////////////////////////////////////////// FMHN#84318
ALTER TABLE mld_vrije_dagen
  ADD mld_vrije_dagen_id VARCHAR2(50)
  DEFAULT ('Default') NOT NULL;
CREATE INDEX mld_i_mld_vrije_dagen_id ON mld_vrije_dagen(mld_vrije_dagen_id);
BEGIN
  adm.tryalter('TABLE mld_vrije_dagen DROP CONSTRAINT mld_u_mld_vrije_dagen_datum');
  adm.trydrop('INDEX mld_u_mld_vrije_dagen_datum');
END;
/
ALTER TABLE mld_vrije_dagen ADD CONSTRAINT mld_u_mld_vrije_dagen_datum UNIQUE(mld_vrije_dagen_datum, mld_vrije_dagen_id);

ALTER TABLE alg_gebouw
  ADD mld_vrije_dagen_id VARCHAR2(50);

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84550
UPDATE fac_setting
   SET fac_setting_pvalue = NULL
 WHERE fac_setting_name = 'sys_ip_lockmode'
   AND fac_setting_pvalue IS NOT NULL;

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84626
ALTER TABLE prs_bedrijfadres
     MODIFY prs_bedrijfadres_username VARCHAR2(128);

ALTER TABLE fac_imp_bedrijfadres
     MODIFY prs_bedrijfadres_username VARCHAR2(128);

/////////////////////////////////////////////////////////////////////////////////////////// HSLE#81369
DEF_FAC_FUNCTIE3('WEB_MLDREO', 'MLD', 13, 1,    1);

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#81526
BEGIN
   adm.trydrop ('TABLE tmp_imp_mjb');
END;
/
CREATE TABLE fac_imp_taak_mjob
( ins_deel_key                  NUMBER(10)
, ctr_discipline_key            NUMBER(10)
, ismjob                        NUMBER(1)
, ins_srtcontrole_omschrijving  VARCHAR2(60)
, ins_srtcontrole_key           NUMBER(10)
, ins_srtcontrole_opmerking     VARCHAR2(320)
, ins_srtcontrole_groep         VARCHAR2(60)
, ins_srtcontrole_prioriteit    NUMBER(3)
, fin_btwtabelwaarde_key        NUMBER(10)
, prs_kostenplaats_key          NUMBER(10)
, ins_srtcontroledl_xcp_aantal  NUMBER(8,2)
, ins_srtcontroledl_xcp_aanteh  VARCHAR2(30)
, ins_srtcontroledl_xcp_perc    NUMBER(3)
, ins_srtcontroledl_xcp_opmerk  VARCHAR2(320)
, ins_srtcontroledl_xcp_eenheid NUMBER(3)
, ins_srtcontroledl_xcp_periode NUMBER(6,2)
, ins_srtcontroledl_xcp_start   DATE
, ins_srtcontroledl_xcp_eind    DATE
, ins_srtcontroledl_xcp_materia NUMBER(9,2)
, prs_dienst_omschrijving       VARCHAR2(60)
, ins_srtcontroledl_xcp_key     NUMBER(10)
);
DEF_IMPORT('WEB_INSMGT', 'TAAK_MJOB', 'Import MJOB', 'Import MJOB', 1);

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84691
CREATE_TABLE(mld_vervolg_beperking, 0)
(
    mld_vervolg_beperking_key
        NUMBER(10)
        PRIMARY KEY,
    ins_srtdiscipline_key_1
        NUMBER(10) NOT NULL
        CONSTRAINT mld_r_ins_srtdiscipline_key1 REFERENCES ins_srtdiscipline(ins_srtdiscipline_key) ON DELETE CASCADE,
    ins_srtdiscipline_key_2
        NUMBER(10) NOT NULL
        CONSTRAINT mld_r_ins_srtdiscipline_key3 REFERENCES ins_srtdiscipline(ins_srtdiscipline_key) ON DELETE CASCADE,
    mld_vervolg_beperking_aanmaak
        DATE DEFAULT SYSDATE NOT NULL
);

CREATE SEQUENCE mld_s_mld_vervolg_beperking_key MINVALUE 1;

/////////////////////////////////////////////////////////////////////////////////////////// PNBR#80680
ALTER TABLE fac_tracking ADD fac_tracking_subject_refkey NUMBER (10);

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#83953
ALTER TABLE mld_melding
  MODIFY mld_melding_onderwerp VARCHAR2(200)
  MODIFY mld_melding_onderwerp_ai VARCHAR2(200);

/////////////////////////////////////////////////////////////////////////////////////////// MARX#80460
ALTER TABLE prs_bedrijfadres DROP CONSTRAINT prs_c_prs_bedrijfadrestype;

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84940
DROP TRIGGER fin_t_fin_factuur_B_IU;
DROP TRIGGER fin_t_fin_factuurregel_B_IU;
DROP TRIGGER bez_t_bez_bezoekers_B_IU;

/////////////////////////////////////////////////////////////////////////////////////////// VNOG#84884
ALTER PACKAGE fac COMPILE; // anders (nog) invalid en lukt het volgende niet niet
ALTER PACKAGE fac COMPILE BODY;

// TIjdelijk de flags op 0 zetten anders krijgen we foutmelding "PRS_M183".
UPDATE prs_perslid
   SET prs_perslid_flags = 0
 WHERE prs_perslid_oslogin = '_SENSOR';

UPDATE prs_perslid
   SET prs_perslid_naam = 'Systeem',
       prs_perslid_oslogin = '_SYSTEEM',
       prs_perslid_opmerking = 'System account for system-triggered-events.'||CHR(13)||'For Facilitor internal use'
 WHERE prs_perslid_oslogin = '_SENSOR';

UPDATE prs_perslid
   SET prs_perslid_flags = 36
 WHERE prs_perslid_oslogin = '_SYSTEEM';

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84334
UPDATE fac_menuitems
   SET fac_functie_key =
           (SELECT fac_functie_key
              FROM fac_functie
             WHERE fac_functie_code = 'WEB_MLDMGT')
 WHERE     fac_menuitems_label = 'lcl_menu_mld_vakgroeptypes'
       AND fac_functie_key = (SELECT fac_functie_key
                                FROM fac_functie
                               WHERE fac_functie_code = 'WEB_PRSSYS');

UPDATE fac_menuitems
   SET fac_functie_key =
           (SELECT fac_functie_key
              FROM fac_functie
             WHERE fac_functie_code = 'WEB_MLDMGT')
 WHERE     fac_menuitems_label = 'lcl_menu_mld_opdrachttypes'
       AND fac_functie_key = (SELECT fac_functie_key
                                FROM fac_functie
                               WHERE fac_functie_code = 'WEB_PRSSYS');


/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85185
UPDATE fac_setting
   SET fac_setting_pvalue =
           REGEXP_REPLACE (REGEXP_REPLACE (fac_setting_pvalue,
                                           ',\s*fclt-skolar-sans',
                                           '',
                                           1,
                                           0),
                           'fclt-skolar-sans\s*,',
                           '',
                           1,
                           0)
 WHERE     fac_setting_name = 'csstemplate'
       AND (   REGEXP_LIKE (fac_setting_pvalue, ',\s*fclt-skolar-sans')
            OR REGEXP_LIKE (fac_setting_pvalue, 'fclt-skolar-sans\s*,'));


/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84812
UPDATE prs_afdeling
   SET prs_afdeling_omschrijving = 'Onbekend'
 WHERE prs_afdeling_omschrijving IS NULL
 	 AND prs_afdeling_naam = 'Onbekend';

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85198
// Voor accept omgevingen herstel DB48
UPDATE fac_usrrap
   SET fac_usrrap_groep = 'EXPORT'
 WHERE fac_usrrap_groep = 'ROUNDTRIP';

/////////////////////////////////////////////////////////////////////////////////////////// BAUS#80301
ALTER TABLE ins_kenmerk DROP CONSTRAINT ins_c_ins_kenmerk_niveau2;
ALTER TABLE ins_kenmerk ADD CONSTRAINT ins_c_ins_kenmerk_niveau2 CHECK
            (ins_kenmerk_niveau IS NOT NULL AND (ins_kenmerk_niveau IN ('D', 'G', 'S', 'T', 'C', 'E')));  // T=Alle taken, C=srtcontrole, E=ctr-discipline
ALTER TABLE ins_kenmerk DROP CONSTRAINT ins_r_ins_srtinstallatie_key1;
ALTER TABLE ins_kenmerk ADD CONSTRAINT ins_r_ins_srtinstallatie_key1 CHECK
            (ins_srtinstallatie_key IS NOT NULL OR ins_kenmerk_niveau IN ('D', 'T'));

DEF_MENUITEM(2, 'lcl_menu_ins_taakkenmerken'    , '', 'CTR', 'appl/mgt/ins_kenmerk.asp?niveau=T', 0, 0, 'WEB_CTRMGT', 'W', '1', '');

-- Aanmaken van het default menuitem "Taakkenmerken":
INSERT INTO fac_menu(fac_menuitems_key,
                     fac_menu_volgnr,
                     fac_menu_altlabel,
                     fac_menu_alturl,
                     fac_menu_altgroep,
                     fac_menu_image,
                     fac_menu_level,
                     fac_menu_info)
    SELECT fac_menuitems_key,
             (SELECT fm.fac_menu_volgnr
                FROM fac_menu fm
               WHERE fm.fac_menu_altlabel = 'lcl_menu_ins_kenmerken')
           + 1,
           fac_menuitems_label,
           fac_menuitems_url,
           fac_menuitems_groep,
           fac_menuitems_image,
           CASE
               WHEN fac_menuitems_groep IN (0, 1, 2) THEN 2
               WHEN fac_menuitems_groep IN (3, 7) THEN 1
               ELSE 0
           END
               fac_menu_level,
           fac_menuitems_oms
      FROM fac_menuitems i
     WHERE fac_menuitems_label = 'lcl_menu_ins_taakkenmerken'
       AND i.fac_menuitems_key NOT IN
               (SELECT m.fac_menuitems_key
                  FROM fac_menu m
                 WHERE m.fac_menuitems_key IS NOT NULL);

/////////////////////////////////////////////////////////////////////////////////////////// YAXX#84507
UPDATE fac_setting
   SET fac_setting_pvalue =
           CASE WHEN fac_setting_pvalue = 'true' THEN '1' ELSE '0' END
 WHERE fac_setting_name = 'mld_opdr_pref_contractors_only'
   AND fac_setting_pvalue IS NOT NULL;

/////////////////////////////////////////////////////////////////////////////////////////// FBEA#83210
ALTER TABLE res_activiteit
    ADD (res_activiteit_color VARCHAR2 (60 CHAR));

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#83767
ALTER TABLE fac_imp_mld MODIFY ( mld_stdmelding_uitvoertijd  NUMBER(12,5)
                               , mld_stdmelding_uitvoertijd1 NUMBER(12,5)
                               , mld_stdmelding_uitvoertijd2 NUMBER(12,5)
                               , mld_stdmelding_uitvoertijd4 NUMBER(12,5)
                               );
ALTER TABLE fac_imp_mld ADD ( mld_stdmelding_accepttijd  NUMBER(12,5)
                            , mld_stdmelding_accepttijd1 NUMBER(12,5)
                            , mld_stdmelding_accepttijd2 NUMBER(12,5)
                            , mld_stdmelding_accepttijd4 NUMBER(12,5)
                            );
ALTER TABLE fac_imp_mld DROP COLUMN mld_stdmelding_urgentie;

/////////////////////////////////////////////////////////////////////////////////////////// CSUN#85306
CREATE SEQUENCE prs_s_prs_prsfaq_key MINVALUE 1;

CREATE_TABLE(prs_prsfaq, 0)
(
    prs_prsfaq_key
        NUMBER(10)
        CONSTRAINT prs_k_prsfaq_key PRIMARY KEY,
    prs_bedrijf_key
        NUMBER(10)
        NOT NULL
        CONSTRAINT prs_r_prs_bedrijf_key9 REFERENCES prs_bedrijf(prs_bedrijf_key) ON DELETE CASCADE,
    prs_afdeling_key  /* optionele verbijzondering binnen dit bedrijf */
        NUMBER(10)
        CONSTRAINT prs_r_prs_afdeling_key2 REFERENCES prs_afdeling(prs_afdeling_key) ON DELETE CASCADE,
    fac_faq_key
        NUMBER(10)
        NOT NULL
        CONSTRAINT prs_r_fac_faq_key REFERENCES fac_faq(fac_faq_key) ON DELETE CASCADE
);

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85565
DEF_MENUITEM(2, 'lcl_menu_unusedstats', '', 'FAC', 'appl/fac/fac_unused_stats.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
MENU_INS_AFTER('lcl_menu_unusedstats', 'lcl_menu_about', -2);

/////////////////////////////////////////////////////////////////////////////////////////// ALKM#85717
ALTER TABLE prs_srtperslid MODIFY ( prs_srtperslid_omschrijving VARCHAR2(100)
                                  , prs_srtperslid_upper VARCHAR2(100));
ALTER TABLE fac_imp_perslid MODIFY (prs_srtperslid_omschrijving VARCHAR2(100));

/////////////////////////////////////////////////////////////////////////////////////////// AAXX#81521
ALTER TABLE res_rsv_ruimte
    ADD res_rsv_ruimte_visibility NUMBER (4) DEFAULT 1 NOT NULL;

ALTER TABLE exc_import
    ADD visibility NUMBER (4) DEFAULT 1;

ALTER TABLE exc_import
    ADD CONSTRAINT exc_c_visibility CHECK
            (modifier = 'D' OR visibility IS NOT NULL);

/////////////////////////////////////////////////////////////////////////////////////////// SCHG#85790
ALTER TABLE fac_imp_cnt
    MODIFY (cnt_soort VARCHAR2(60));

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

REGISTERONCE('$Id$')

#define POST_RECREATE "DB48to49_post.src"
#include "epilogue.inc"
