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

COMMIT;
SET DEFINE OFF

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#70553
UPDATE fac_setting
   SET fac_setting_pvalue =
        (SELECT prs_perslid_apikey
           FROM prs_perslid
          WHERE prs_perslid_oslogin = '_PUTORDERS')
 WHERE fac_setting_pvalue IS NULL
   AND fac_setting_name = 'puo_fclt_web_apikey';

/////////////////////////////////////////////////////////////////////////////////////////// AAGB#75630
BEGIN
    adm.tryalter ('TABLE mld_kenmerk DROP CONSTRAINT mld_u_mld_kenmerk_code DROP INDEX');
    adm.tryalter ('TABLE mld_srtkenmerk DROP CONSTRAINT mld_u_mld_srtkenmerk_code DROP INDEX');
END;
/
ALTER TABLE alg_kenmerk ADD alg_kenmerk_code VARCHAR2(60);
ALTER TABLE bes_kenmerk ADD bes_kenmerk_code VARCHAR2(60);
ALTER TABLE bez_kenmerk ADD bez_kenmerk_code VARCHAR2(60);
ALTER TABLE cnt_kenmerk ADD cnt_kenmerk_code VARCHAR2(60);
ALTER TABLE faq_kenmerk ADD faq_kenmerk_code VARCHAR2(60);
ALTER TABLE fin_kenmerk ADD fin_kenmerk_code VARCHAR2(60);
ALTER TABLE ins_kenmerk ADD ins_kenmerk_code VARCHAR2(60);
ALTER TABLE prs_kenmerk ADD prs_kenmerk_code VARCHAR2(60);
ALTER TABLE res_kenmerk ADD res_kenmerk_code VARCHAR2(60);
ALTER TABLE bes_srtkenmerk ADD bes_srtkenmerk_code VARCHAR2(60);
ALTER TABLE cnt_srtkenmerk ADD cnt_srtkenmerk_code VARCHAR2(60);
ALTER TABLE ins_srtkenmerk ADD ins_srtkenmerk_code VARCHAR2(60);
ALTER TABLE res_srtkenmerk ADD res_srtkenmerk_code VARCHAR2(60);
ALTER TABLE fac_imp_flex ADD (srtkenmerk_code VARCHAR2(255), kenmerk_code VARCHAR2(255));

CREATE INDEX bes_i_bes_srtkenmerk1 ON bes_srtkenmerk(bes_srtkenmerk_code);
CREATE INDEX cnt_i_cnt_srtkenmerk1 ON cnt_srtkenmerk(cnt_srtkenmerk_code);
CREATE INDEX ins_i_ins_srtkenmerk2 ON ins_srtkenmerk(ins_srtkenmerk_code);
CREATE INDEX mld_i_mld_srtkenmerk1 on mld_srtkenmerk(mld_srtkenmerk_code);
CREATE INDEX res_i_res_srtkenmerk1 ON res_srtkenmerk(res_srtkenmerk_code);
CREATE INDEX alg_i_alg_kenmerk1 ON alg_kenmerk(alg_kenmerk_code);
CREATE INDEX bes_i_bes_kenmerk1 ON bes_kenmerk(bes_kenmerk_code);
CREATE INDEX bez_i_bez_kenmerk1 ON bez_kenmerk(bez_kenmerk_code);
CREATE INDEX cnt_i_cnt_kenmerk1 ON cnt_kenmerk(cnt_kenmerk_code);
CREATE INDEX faq_i_faq_kenmerk1 ON faq_kenmerk(faq_kenmerk_code);
CREATE INDEX fin_i_fin_kenmerk1 ON fin_kenmerk(fin_kenmerk_code);
CREATE INDEX ins_i_ins_kenmerk1 ON ins_kenmerk(ins_kenmerk_code);
CREATE INDEX mld_i_mld_kenmerk3 ON mld_kenmerk(mld_kenmerk_code);
CREATE INDEX prs_i_prs_kenmerk1 ON prs_kenmerk(prs_kenmerk_code);
CREATE INDEX res_i_res_kenmerk2 ON res_kenmerk(res_kenmerk_code);

-- Kolommen voor kenmerken transport leeg maken om de code velden op de juiste plaats te krijgen.
DELETE FROM fac_usrrap_cols
 WHERE fac_usrrap_key IN
       (SELECT fac_usrrap_key
          FROM fac_usrrap
         WHERE UPPER(fac_usrrap_view_name) LIKE 'FAC_V_EXP_FLEX%'
       );

/////////////////////////////////////////////////////////////////////////////////////////// NYBU#74881
INSERT INTO fac_setting (fac_setting_module
                        , fac_setting_flags
                        , fac_functie_key
                        , fac_setting_name
                        , fac_setting_type
                        , fac_setting_default
                        , fac_setting_pvalue
                        , fac_setting_description
                        )
    SELECT fac_setting_module
         , fac_setting_flags
         , fac_functie_key
         , 'res_forselect_options'
         , fac_setting_type
         , fac_setting_default
         , fac_setting_pvalue
         , 'for selecting rooms: 0=default, +1=no plantable image, +2=tooltip on room/object, +4=room description popup only'
      FROM fac_setting
     WHERE fac_setting_name = 'res_planbord_options';

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#76751
CREATE UNIQUE INDEX res_i_res_ruimte_sync ON res_ruimte_sync(res_ruimte_key);

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#67535
UPDATE fac_import_app
   SET fac_functie_key = (SELECT fac_functie_key FROM fac_functie WHERE fac_functie_code = 'WEB_FACTAB')
 WHERE fac_import_app_key IN
     ( SELECT i.fac_import_app_key
         FROM fac_import_app i
            , fac_functie f
        WHERE i.fac_import_app_code IN ( 'ONRGOED1_DEL'
                                       , 'ONRGOED2_DEL'
                                       , 'ORGANISATIE_DEL'
                                       , 'PERSLID_DEL'
                                       , 'MLD_DEL'
                                       , 'FAC_GROEP_DEL'
                                       , 'FAC_VAKGROEP_DEL'
                                       , 'GENERICCSV'
                                       )
          AND i.fac_functie_key = f.fac_functie_key
          AND f.fac_functie_code = 'WEB_FACFAC'
     );

UPDATE fac_usrrap
   SET fac_functie_key = (SELECT fac_functie_key FROM fac_functie WHERE fac_functie_code = 'WEB_FACTAB')
 WHERE fac_usrrap_key IN
     ( SELECT r.fac_usrrap_key
         FROM fac_usrrap r
            , fac_functie f
        WHERE r.fac_usrrap_view_name IN ( 'fac_v_usage_statistics'
                                        , 'fac_v_usage_statistics_all'
                                        )
          AND r.fac_functie_key = f.fac_functie_key
          AND f.fac_functie_code = 'WEB_FACFAC'
     );

UPDATE fac_menuitems
   SET fac_functie_key = (SELECT fac_functie_key FROM fac_functie WHERE fac_functie_code = 'WEB_FACTAB')
 WHERE fac_menuitems_key IN
     ( SELECT m.fac_menuitems_key
         FROM fac_menuitems m
            , fac_functie f
        WHERE m.fac_menuitems_label IN ( 'lcl_menu_fac_exporteren'
                                       , 'lcl_menu_fac_importeren'
                                       , 'lcl_menu_api_list'
                                       , 'lcl_menu_aut_sp'
                                       , 'lcl_menu_fac_anytable'
                                       , 'lcl_menu_fac_anysql'
                                       , 'lcl_menu_fac_anyupload'
                                       )
          AND m.fac_functie_key = f.fac_functie_key
          AND f.fac_functie_code = 'WEB_FACFAC'
     );

UPDATE fac_menu
   SET fac_functie_key = (SELECT fac_functie_key FROM fac_functie WHERE fac_functie_code = 'WEB_FACTAB')
 WHERE fac_menu_key IN
     ( SELECT m.fac_menu_key
         FROM fac_menu m
            , fac_functie f
        WHERE m.fac_menu_altlabel IN ( 'lcl_menu_fac_exporteren'
                                     , 'lcl_menu_fac_importeren'
                                     , 'lcl_menu_api_list'
                                     , 'lcl_menu_aut_sp'
                                     , 'lcl_menu_fac_anytable'
                                     , 'lcl_menu_fac_anysql'
                                     , 'lcl_menu_fac_anyupload'
                                     )
          AND m.fac_functie_key = f.fac_functie_key
          AND f.fac_functie_code = 'WEB_FACFAC'
     );

// nieuwe functie ten behoeve van BLCC#75816
DEF_FAC_FUNCTIE3('WEB_FINMGT', 'FIN', 0, 0, 2);

ALTER PACKAGE fac COMPILE; // anders (nog) invalid en lukt het volgende niet niet
ALTER PACKAGE fac COMPILE BODY;
INSERT INTO fac_groeprechten
     ( fac_groep_key, fac_functie_key, ins_discipline_key
     , fac_gebruiker_prs_level_read, fac_gebruiker_alg_level_read
     , fac_gebruiker_prs_level_write, fac_gebruiker_alg_level_write
     )
SELECT *
  FROM (SELECT fac_groep_key
             , (SELECT fac_functie_key FROM fac_functie WHERE fac_functie_code = 'WEB_'||m.module||'MGT') fin_functie_key
             , ins_discipline_key
             , fac_gebruiker_prs_level_read
             , fac_gebruiker_alg_level_read
             , fac_gebruiker_prs_level_write
             , fac_gebruiker_alg_level_write
          FROM fac_groeprechten r
             , (SELECT 'ALG' module FROM DUAL UNION SELECT 'BEZ' FROM DUAL UNION SELECT 'FIN' FROM DUAL UNION SELECT 'PRS' FROM DUAL) m
         WHERE fac_functie_key = (SELECT fac_functie_key FROM fac_functie WHERE fac_functie_code = 'WEB_PRSSYS')
       ) i
 WHERE (i.fac_groep_key, i.fin_functie_key, i.ins_discipline_key) NOT IN
       (SELECT c.fac_groep_key, c.fac_functie_key, c.ins_discipline_key
          FROM fac_groeprechten c
       );

UPDATE fac_menuitems
   SET fac_functie_key = (SELECT fac_functie_key
                            FROM fac_functie
                           WHERE fac_functie_code = 'WEB_'||fac_menuitems_module||'MGT')
 WHERE fac_menuitems_key IN
     ( SELECT m.fac_menuitems_key
         FROM fac_menuitems m
            , fac_functie f
        WHERE m.fac_menuitems_label IN ( 'lcl_menu_alg_districtkenmerken'
                                       , 'lcl_menu_alg_locatiekenmerken'
                                       , 'lcl_menu_alg_terreinkenmerken'
                                       , 'lcl_menu_alg_gebouwkenmerken'
                                       , 'lcl_menu_alg_verdiepkenmerken'
                                       , 'lcl_menu_alg_ruimtekenmerken'
                                       , 'lcl_menu_prs_bedrijfkenmerken'
                                       , 'lcl_menu_prs_afdelingskenmerke'
                                       , 'lcl_menu_prs_persoonskenmerken'
                                       , 'lcl_menu_prs_contactkenmerken'
                                       , 'lcl_menu_fin_kenmerken'
                                       , 'lcl_menu_bez_kenmerken'
                                       )
          AND m.fac_functie_key = f.fac_functie_key
     );

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#77322
ALTER TABLE cad_thema ADD tmp_type NUMBER(3);
UPDATE cad_thema SET tmp_type = TO_NUMBER(cad_thema_type);
UPDATE cad_thema SET cad_thema_type = null;
ALTER TABLE cad_thema DROP CONSTRAINT cad_c_cad_thema_type;
ALTER TABLE cad_thema MODIFY cad_thema_type NUMBER(3);
ALTER TABLE cad_thema ADD CONSTRAINT cad_c_cad_thema_type CHECK (cad_thema_type between 1 and 255);
UPDATE cad_thema SET cad_thema_type = tmp_type;
ALTER TABLE cad_thema DROP COLUMN tmp_type;

/////////////////////////////////////////////////////////////////////////////////////////// NORA#77301
UPDATE fac_localeitems
   SET fac_localeitems_dialect_id = 'MLD_SRTDISCIPLINE_KEY'
 WHERE fac_localeitems_dialect_id = 'MLD_TYPEOPDR_KEY'
   AND fac_localeitems_lcl = 'lcl_menu_mld_fe_3';

/////////////////////////////////////////////////////////////////////////////////////////// AAIT#75947
ALTER TABLE fac_imp_flex ADD kenmerk_module VARCHAR2(3);
CREATE OR REPLACE VIEW fac_v_exp_flex_fin AS SELECT * FROM DUAL;
DEF_RAPPORT('WEB_PRSSYS', 0, 'fac_v_exp_flex_fin', 'TRANSPORT: Flexkenmerken Facturen',   'Exporteren van flexkenmerken voor FIN',
                                                   'TRANSPORT: Flex properties Invoices', 'Export of flex properties for FIN');

/////////////////////////////////////////////////////////////////////////////////////////// KFHT#75454
ALTER TABLE alg_gebouw ADD alg_gebouw_adres VARCHAR2(50);
ALTER TABLE alg_gebouw ADD alg_gebouw_postcode VARCHAR2(12);

/////////////////////////////////////////////////////////////////////////////////////////// SVRZ#62191

ALTER TABLE fac_notificatie ADD (
    fac_notificatie_geturl  VARCHAR2(4000),
    fac_notificatie_getbody VARCHAR2(4000)
);

ALTER TABLE fac_notificatie_job ADD (
    fac_notificatie_job_geturl  VARCHAR2(4000),
    fac_notificatie_job_getbody VARCHAR2(4000),
    prs_perslid_key NUMBER(10) -- owner
       CONSTRAINT fac_r_prs_perslid_key12
       REFERENCES prs_perslid(prs_perslid_key),
    prs_perslid_key_receiver NUMBER(10)
      REFERENCES prs_perslid(prs_perslid_key) ON DELETE CASCADE
);

#include "../AUT/AUT_INI.SRC"

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#75365
BEGIN
    adm.trydrop ('INDEX res_i_res_rsv_res_reservering1');
END;
/
CREATE INDEX res_i_res_reservering1 ON res_reservering(mld_melding_key);
CREATE INDEX bez_i_bez_bezoekers1 ON bez_bezoekers(prs_perslid_key);
CREATE INDEX bez_i_bez_bezoekers2 ON bez_bezoekers(prs_contactpersoon_key);
CREATE INDEX fac_i_fac_gui_counter1 ON fac_gui_counter(prs_perslid_key);
CREATE INDEX fin_i_fin_factuur5 ON fin_factuur(prs_perslid_key_user);
CREATE INDEX fin_i_fin_factuur6 ON fin_factuur(prs_perslid_key_goedkeur);
CREATE INDEX ins_i_ins_deel8 ON ins_deel(prs_perslid_key_beh);
CREATE INDEX ins_i_ins_deel9 ON ins_deel(res_rsv_deel_key);
CREATE INDEX mld_i_mld_melding25 ON mld_melding(mld_melding_behandelaar2_key);

/////////////////////////////////////////////////////////////////////////////////////////// PNBR#75964
ALTER TABLE mld_stdmelding DROP CONSTRAINT mld_c_alg_onrgoed_niveau;
ALTER TABLE mld_stdmelding ADD CONSTRAINT mld_c_alg_onrgoed_niveau CHECK (alg_onrgoed_niveau IN ('L','G','V','R','H'));

/////////////////////////////////////////////////////////////////////////////////////////// RWSN#76922
DEF_FAC_SRTNOT('INSCN1', 0, 'lcl_noti_INSCN1', 'ins/ins_deel.asp?ins_key=', '0', 'deel', 60);

UPDATE fac_tracking
   SET fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key FROM fac_srtnotificatie WHERE fac_srtnotificatie_code = 'INSCN1')
 WHERE fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key FROM fac_srtnotificatie WHERE fac_srtnotificatie_code = 'INSUPD')
   AND fac_tracking_oms LIKE lcl.l('lcl_ins_deel_mjb_score1') || ': %';

/////////////////////////////////////////////////////////////////////////////////////////// PROR#75644

ALTER TABLE alg_srtgebouw ADD alg_srtgebouw_t_uitvoer_pr1 MLD_T_UITVOERTIJD
      CONSTRAINT alg_c_alg_srtgebouw_t_uitv_pr1 CHECK(alg_srtgebouw_t_uitvoer_pr1.tijdsduur >= 0);
ALTER TABLE alg_srtgebouw ADD alg_srtgebouw_t_uitvoer_pr2 MLD_T_UITVOERTIJD
      CONSTRAINT alg_c_alg_srtgebouw_t_uitv_pr2 CHECK(alg_srtgebouw_t_uitvoer_pr2.tijdsduur >= 0);
ALTER TABLE alg_srtgebouw ADD alg_srtgebouw_t_uitvoer_pr4 MLD_T_UITVOERTIJD
      CONSTRAINT alg_c_alg_srtgebouw_t_uitv_pr4 CHECK(alg_srtgebouw_t_uitvoer_pr4.tijdsduur >= 0);
ALTER TABLE alg_srtgebouw MODIFY alg_srtgebouw_t_uitvoer_pr1 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE alg_srtgebouw MODIFY alg_srtgebouw_t_uitvoer_pr2 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE alg_srtgebouw MODIFY alg_srtgebouw_t_uitvoer_pr4 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);

ALTER TABLE alg_srtruimte ADD alg_srtruimte_t_uitvoer_pr1 MLD_T_UITVOERTIJD
      CONSTRAINT alg_c_alg_srtruimt_t_uitv_pr1 CHECK(alg_srtruimte_t_uitvoer_pr1.tijdsduur >= 0);
ALTER TABLE alg_srtruimte ADD alg_srtruimte_t_uitvoer_pr2 MLD_T_UITVOERTIJD
      CONSTRAINT alg_c_alg_srtruimt_t_uitv_pr2 CHECK(alg_srtruimte_t_uitvoer_pr2.tijdsduur >= 0);
ALTER TABLE alg_srtruimte ADD alg_srtruimte_t_uitvoer_pr4 MLD_T_UITVOERTIJD
      CONSTRAINT alg_c_alg_srtruimt_t_uitv_pr4 CHECK(alg_srtruimte_t_uitvoer_pr4.tijdsduur >= 0);
ALTER TABLE alg_srtruimte MODIFY alg_srtruimte_t_uitvoer_pr1 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE alg_srtruimte MODIFY alg_srtruimte_t_uitvoer_pr2 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE alg_srtruimte MODIFY alg_srtruimte_t_uitvoer_pr4 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);

ALTER TABLE alg_srtterreinsector ADD alg_srtterreinsec_t_uitv_pr1 MLD_T_UITVOERTIJD
      CONSTRAINT alg_c_alg_srtterrein_t_uitv1 CHECK(alg_srtterreinsec_t_uitv_pr1.tijdsduur >= 0);
ALTER TABLE alg_srtterreinsector ADD alg_srtterreinsec_t_uitv_pr2 MLD_T_UITVOERTIJD
      CONSTRAINT alg_c_alg_srtterrein_t_uitv2 CHECK(alg_srtterreinsec_t_uitv_pr2.tijdsduur >= 0);
ALTER TABLE alg_srtterreinsector ADD alg_srtterreinsec_t_uitv_pr4 MLD_T_UITVOERTIJD
      CONSTRAINT alg_c_alg_srtterrein_t_uitv4 CHECK(alg_srtterreinsec_t_uitv_pr4.tijdsduur >= 0);
ALTER TABLE alg_srtterreinsector MODIFY alg_srtterreinsec_t_uitv_pr1 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE alg_srtterreinsector MODIFY alg_srtterreinsec_t_uitv_pr2 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE alg_srtterreinsector MODIFY alg_srtterreinsec_t_uitv_pr4 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);


ALTER TABLE mld_stdmsrtruimte ADD mld_stdmsrtruimte_t_accept_pr1 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtruimte_t_acc1 CHECK(mld_stdmsrtruimte_t_accept_pr1.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtruimte ADD mld_stdmsrtruimte_t_accept_pr2 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtruimte_t_acc2 CHECK(mld_stdmsrtruimte_t_accept_pr2.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtruimte ADD mld_stdmsrtruimte_t_accept_pr4 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtruimte_t_acc4 CHECK(mld_stdmsrtruimte_t_accept_pr4.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtruimte ADD mld_stdmsrtruimte_t_uitv_pr1 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtruimte_t_uit1 CHECK(mld_stdmsrtruimte_t_uitv_pr1.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtruimte ADD mld_stdmsrtruimte_t_uitv_pr2 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtruimte_t_uit2 CHECK(mld_stdmsrtruimte_t_uitv_pr2.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtruimte ADD mld_stdmsrtruimte_t_uitv_pr4 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtruimte_t_uit4 CHECK(mld_stdmsrtruimte_t_uitv_pr4.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtruimte MODIFY mld_stdmsrtruimte_t_accept_pr1  DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmsrtruimte MODIFY mld_stdmsrtruimte_t_accept_pr2  DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmsrtruimte MODIFY mld_stdmsrtruimte_t_accept_pr4  DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmsrtruimte MODIFY mld_stdmsrtruimte_t_uitv_pr1 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmsrtruimte MODIFY mld_stdmsrtruimte_t_uitv_pr2 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmsrtruimte MODIFY mld_stdmsrtruimte_t_uitv_pr4 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);

ALTER TABLE mld_stdmsrtgebouw ADD mld_stdmsrtgebouw_t_accept_pr1 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtgebouw_t_acc1 CHECK(mld_stdmsrtgebouw_t_accept_pr1.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtgebouw ADD mld_stdmsrtgebouw_t_accept_pr2 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtgebouw_t_acc2 CHECK(mld_stdmsrtgebouw_t_accept_pr2.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtgebouw ADD mld_stdmsrtgebouw_t_accept_pr4 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtgebouw_t_acc4 CHECK(mld_stdmsrtgebouw_t_accept_pr4.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtgebouw ADD mld_stdmsrtgebouw_t_uitv_pr1 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtgebouw_t_uitv1 CHECK(mld_stdmsrtgebouw_t_uitv_pr1.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtgebouw ADD mld_stdmsrtgebouw_t_uitv_pr2 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtgebouw_t_uitv2 CHECK(mld_stdmsrtgebouw_t_uitv_pr2.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtgebouw ADD mld_stdmsrtgebouw_t_uitv_pr4 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtgebouw_t_uitv4 CHECK(mld_stdmsrtgebouw_t_uitv_pr4.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtgebouw MODIFY mld_stdmsrtgebouw_t_accept_pr1 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmsrtgebouw MODIFY mld_stdmsrtgebouw_t_accept_pr2 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmsrtgebouw MODIFY mld_stdmsrtgebouw_t_accept_pr4 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmsrtgebouw MODIFY mld_stdmsrtgebouw_t_uitv_pr1 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmsrtgebouw MODIFY mld_stdmsrtgebouw_t_uitv_pr2 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmsrtgebouw MODIFY mld_stdmsrtgebouw_t_uitv_pr4 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);

ALTER TABLE mld_stdmsrtterrein ADD mld_stdmsrtterrein_t_acc_pr1 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtterrein_t_ac1 CHECK(mld_stdmsrtterrein_t_acc_pr1.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtterrein ADD mld_stdmsrtterrein_t_acc_pr2 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtterrein_t_ac2 CHECK(mld_stdmsrtterrein_t_acc_pr2.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtterrein ADD mld_stdmsrtterrein_t_acc_pr4 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtterrein_t_ac4 CHECK(mld_stdmsrtterrein_t_acc_pr4.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtterrein ADD mld_stdmsrtterrein_t_uitv_pr1 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtterrein_t_ui1 CHECK(mld_stdmsrtterrein_t_uitv_pr1.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtterrein ADD mld_stdmsrtterrein_t_uitv_pr2 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtterrein_t_ui2 CHECK(mld_stdmsrtterrein_t_uitv_pr2.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtterrein ADD mld_stdmsrtterrein_t_uitv_pr4 MLD_T_UITVOERTIJD
      CONSTRAINT mld_c_mld_stdmsrtterrein_t_ui4 CHECK(mld_stdmsrtterrein_t_uitv_pr4.tijdsduur >= 0);
ALTER TABLE mld_stdmsrtterrein MODIFY mld_stdmsrtterrein_t_acc_pr1 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmsrtterrein MODIFY mld_stdmsrtterrein_t_acc_pr2 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmsrtterrein MODIFY mld_stdmsrtterrein_t_acc_pr4 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmsrtterrein MODIFY mld_stdmsrtterrein_t_uitv_pr1 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmsrtterrein MODIFY mld_stdmsrtterrein_t_uitv_pr2 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmsrtterrein MODIFY mld_stdmsrtterrein_t_uitv_pr4 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);

/////////////////////////////////////////////////////////////////////////////////////////// FMHN#74401
ALTER TABLE bez_bezoekers MODIFY bez_afspraak_naam VARCHAR2(60);

/////////////////////////////////////////////////////////////////////////////////////////// BLST#77421
ALTER TABLE alg_locatie MODIFY alg_locatie_verantw_tel VARCHAR2(20);
ALTER TABLE bez_afspraak MODIFY bez_afspraak_telefoonnr VARCHAR2(20);
ALTER TABLE fac_imp_adres MODIFY adres_telefoon VARCHAR2(20);
ALTER TABLE fac_imp_onrgoed1 MODIFY alg_locatie_verantw_tel VARCHAR2(20);
ALTER TABLE fac_imp_perslid MODIFY prs_perslid_telefoonnr VARCHAR2(20);
ALTER TABLE fac_imp_perslid MODIFY prs_perslid_mobiel VARCHAR2(20);
ALTER TABLE mld_adres MODIFY mld_adres_contactpers_telefoon VARCHAR2(20);
ALTER TABLE mld_adres MODIFY mld_adres_telefoon VARCHAR2(20);
ALTER TABLE mld_disc_params MODIFY mld_disc_params_smsnw1 VARCHAR2(20);
ALTER TABLE mld_disc_params MODIFY mld_disc_params_smsnw2 VARCHAR2(20);
ALTER TABLE mld_disc_params MODIFY mld_disc_params_smsnw3 VARCHAR2(20);
ALTER TABLE mld_disc_params MODIFY mld_disc_params_smsnw4 VARCHAR2(20);
ALTER TABLE mld_melding MODIFY mld_melding_tel_ext VARCHAR2(20);
ALTER TABLE prs_perslid MODIFY prs_perslid_telefoonnr VARCHAR2(20);
ALTER TABLE prs_perslid MODIFY prs_perslid_mobiel VARCHAR2(20);

/////////////////////////////////////////////////////////////////////////////////////////// PZEE#77071
ALTER TABLE res_disc_params ADD res_disc_params_expire_wkdag NUMBER(1);

/////////////////////////////////////////////////////////////////////////////////////////// YKPN#77618
CREATE_TABLE(mld_typeopdrfaq, 0)
(
    mld_typeopdrfaq_key
        NUMBER(10)
        CONSTRAINT mld_k_typeopdrfaq_key PRIMARY KEY,
    mld_typeopdr_key
        NUMBER(10)
        CONSTRAINT mld_r_mld_typeopdr_key4 REFERENCES mld_typeopdr(mld_typeopdr_key) ON DELETE CASCADE,
    fac_faq_key
        NUMBER(10)
        NOT_NULL(fac_faq_key, mld_c_fac_faq_key2)
        CONSTRAINT mld_r_fac_faq_key2 REFERENCES fac_faq(fac_faq_key) ON DELETE CASCADE
);

CREATE UNIQUE INDEX mld_i_mld_typeopdrfaq1 ON mld_typeopdrfaq(mld_typeopdr_key, fac_faq_key);
CREATE INDEX mld_i_mld_typeopdrfaq2 ON mld_typeopdrfaq(fac_faq_key);

CREATE SEQUENCE mld_s_mld_typeopdrfaq_key      MINVALUE 1;

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#60010
DEF_MENUITEM(2, 'lcl_menu_gdprstats'            , '', 'FAC', 'appl/prs/prs_gdpr_stats.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
MENU_INS_AFTER('lcl_menu_gdprstats', 'lcl_menu_about', -5);

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#77900
ALTER TABLE mld_melding_object ADD ins_deelsrtcontrole_key NUMBER(10)
      CONSTRAINT mld_r_ins_deelsrtcontrole_key REFERENCES ins_deelsrtcontrole(ins_deelsrtcontrole_key);

DEF_FAC_FUNCTIE3('WEB_CTRFOF', 'CTR', 3, 1, 1);
DEF_FAC_FUNCTIE3('WEB_CTRBOF', 'CTR', 3, 1, 1);

DEF_STATUS('controle', 3, 'lcl_ins_controle_ter_uitvoer');

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

-- Conversie CTRUSE rechten. CTRUSE wordt opgesplitst in CTRUSE, CTRFOF en CTRBOF.
-- CTRFOF en CTRBOF moeten dezelfde rechten hebben als CTRUSE.
INSERT INTO fac_groeprechten(fac_groep_key,
                             ins_discipline_key,
                             fac_functie_key,
                             fac_gebruiker_prs_level_read,
                             fac_gebruiker_alg_level_read,
                             fac_gebruiker_prs_level_write,
                             fac_gebruiker_alg_level_write)
    (SELECT gr.fac_groep_key,
            gr.ins_discipline_key,
            (SELECT fac_functie_key
               FROM fac_functie
              WHERE fac_functie_code = 'WEB_CTRFOF'),
            fac_gebruiker_prs_level_read,
            fac_gebruiker_alg_level_read,
            fac_gebruiker_prs_level_write,
            fac_gebruiker_alg_level_write
       FROM fac_groeprechten gr,
            fac_functie ff
      WHERE ff.fac_functie_key = gr.fac_functie_key
        AND ff.fac_functie_code = 'WEB_CTRUSE');

INSERT INTO fac_groeprechten(fac_groep_key,
                             ins_discipline_key,
                             fac_functie_key,
                             fac_gebruiker_prs_level_read,
                             fac_gebruiker_alg_level_read,
                             fac_gebruiker_prs_level_write,
                             fac_gebruiker_alg_level_write)
    (SELECT gr.fac_groep_key,
            gr.ins_discipline_key,
            (SELECT fac_functie_key
               FROM fac_functie
              WHERE fac_functie_code = 'WEB_CTRBOF'),
            fac_gebruiker_prs_level_read,
            fac_gebruiker_alg_level_read,
            fac_gebruiker_prs_level_write,
            fac_gebruiker_alg_level_write
       FROM fac_groeprechten gr,
            fac_functie ff
      WHERE ff.fac_functie_key = gr.fac_functie_key
        AND ff.fac_functie_code = 'WEB_CTRUSE');

DEF_FAC_SRTNOT('INSCTU', 0, 'lcl_noti_INSCTU', 'ins/ins_inspect.asp?deelsrtcont_key=', '0', 'controle', 10);

DEF_MENUITEM(1, 'lcl_mjb_console'               , '', 'INS', 'appl/mjb/mjb_search.asp?mode=1', 0, 0, 'WEB_CTRUSE', 'R', '0', '');
DEF_MENUITEM(1, 'lcl_mjb_console2'              , '', 'INS', 'appl/mjb/mjb_search.asp?mode=2', 0, 0, 'WEB_CTRBOF', 'R', '0', '');
DEF_MENUITEM(1, 'lcl_mjb_console3'              , '', 'INS', 'appl/mjb/mjb_search.asp?mode=3', 0, 0, 'WEB_CTRBOF', 'R', '0', '');

-- Alle kto taken bij een melding overzetten naar de mld_melding_object tabel.
BEGIN
   DECLARE
      CURSOR c_kto IS
         SELECT m.mld_melding_key,
                mo.mld_melding_key mld_melding_key_mo,
                idsc.ins_deelsrtcontrole_key,
                idsc.ins_deel_key,
                idsc.ins_deelsrtcontrole_status,
                mo.mld_melding_object_key
           FROM mld_melding m,
                mld_melding_object mo,
                ins_deelsrtcontrole idsc
          WHERE m.mld_melding_key = mo.mld_melding_key(+)
            AND m.mld_melding_kto_key = idsc.ins_deelsrtcontrole_key
            AND idsc.ins_deel_key = mo.ins_deel_key(+)
            AND m.mld_melding_kto_type LIKE 'T';
   BEGIN
      FOR kto IN c_kto
      LOOP
         IF (kto.mld_melding_key_mo IS NULL)
         THEN
            INSERT INTO mld_melding_object (mld_melding_key,
                                            ins_deel_key,
                                            ins_deelsrtcontrole_key)
                                    VALUES (kto.mld_melding_key,
                                            kto.ins_deel_key,
                                            kto.ins_deelsrtcontrole_key);
         ELSE
            UPDATE mld_melding_object
               SET ins_deelsrtcontrole_key = kto.ins_deelsrtcontrole_key
             WHERE mld_melding_object_key = kto.mld_melding_object_key;
         END IF;

         -- Er is een melding bij de taak. Dan moet de status ook naar Ter uitvoering(3).
         IF (kto.ins_deelsrtcontrole_status = 2)
         THEN
            UPDATE ins_deelsrtcontrole
               SET ins_deelsrtcontrole_status = 3
             WHERE ins_deelsrtcontrole_key = kto.ins_deelsrtcontrole_key;
         END IF;
        -- De kto waarden bij de melding laten we nog even gevuld maar gebruiken we niet meer.
      END LOOP;
   END;
END;
/

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#77060
ALTER TABLE fac_selectie      MODIFY fac_selectie_tabel           VARCHAR2(128);
ALTER TABLE fac_usrrap        MODIFY fac_usrrap_view_name         VARCHAR2(128);
ALTER TABLE fac_usrgraph      MODIFY fac_usrgraph_view_name       VARCHAR2(128);
ALTER TABLE fac_mgtrap        MODIFY fac_mgtrap_view_name         VARCHAR2(128);
ALTER TABLE fac_locale        MODIFY fac_locale_kolomnaam         VARCHAR2(128);
ALTER TABLE fac_kenmerkdomein MODIFY fac_kenmerkdomein_kolomnaam  VARCHAR2(128);
ALTER TABLE fac_kenmerkdomein MODIFY fac_kenmerkdomein_kolomtxt   VARCHAR2(128);
ALTER TABLE fac_kenmerkdomein MODIFY fac_kenmerkdomein_kolomtxt2  VARCHAR2(128);
ALTER TABLE fac_audit         MODIFY fac_audit_tabelnaam          VARCHAR2(128);
ALTER TABLE fac_audit         MODIFY fac_audit_veldnaam           VARCHAR2(128);
ALTER TABLE prj_selectie      MODIFY prj_selectie_tabelnaam       VARCHAR2(128);
ALTER TABLE prs_perslid_cols  MODIFY prs_perslid_cols_column_name VARCHAR2(128);

/////////////////////////////////////////////////////////////////////////////////////////// AAES#77904
ALTER TABLE mld_opdr MODIFY mld_opdr_materiaal NUMBER(10,2);
ALTER TABLE mld_standaardopdr MODIFY mld_standaardopdr_materiaal NUMBER(10,2);

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#76998
CREATE OR REPLACE VIEW prs_v_rap_impersonations AS SELECT * FROM DUAL;
CREATE OR REPLACE VIEW prs_v_rap_supportaccess AS SELECT * FROM DUAL;
DEF_RAPPORT('WEB_PRSSYS', 0, 'prs_v_rap_impersonations',       'BEHEER: Audit van impersonaties',  'Rapport van ''Inloggen als'' activiteiten',
                                                               'ADMIN: Audit of impersonations',   'Report of all ''Impersonate'' activities')
DEF_RAPPORT('WEB_FACFAC', 0, 'prs_v_rap_supportaccess',        'BEHEER: Audit van support-toegang','Rapport van alle toegang door Facilitor support',
                                                               'ADMIN: Audit of support access',   'Report of all access by Facilitor application management')

/////////////////////////////////////////////////////////////////////////////////////////// FCLT#75020
ALTER TABLE fac_bijlagen MODIFY fac_bijlagen_module VARCHAR2(4);

/////////////////////////////////////////////////////////////////////////////////////////// ZLMV#78601
ALTER TABLE prs_perslid MODIFY prs_perslid_externoslogin VARCHAR2(256);

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


REGISTERONCE('$Id$')

#include "epilogue.inc"
