/* DB16TO17.SRC
 * Update script van Facilitor schema
 * $Revision$
 * $Id$
 */
#include "prologue.inc"

COMMIT;

/////////////////////////////////////////////////////////////////////////////////////////// FSN#23845
ALTER TABLE ins_deelsrtcontrole
ADD
(
    prs_perslid_key
        NUMBER(10)
        CONSTRAINT ins_r_prs_perslid_key REFERENCES prs_perslid(prs_perslid_key) ON DELETE SET NULL
);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#24366
DROP VIEW fac_v_my_prs_afdelingen_read;
DROP VIEW fac_v_my_prs_afdelingen_write;

/////////////////////////////////////////////////////////////////////////////////////////// FSN#24359
DEF_MENUITEM(2, 'lcl_menu_alg_setting', '', 'ALG', 'appl/fac/fac_setting_search.asp?module=ALG', 0, 0, 'WEB_PRSSYS', 'W', '0');
DEF_MENUITEM(2, 'lcl_menu_prs_setting', '', 'PRS', 'appl/fac/fac_setting_search.asp?module=PRS', 0, 0, 'WEB_PRSSYS', 'W', '0');
DEF_MENUITEM(2, 'lcl_menu_ins_setting', '', 'INS', 'appl/fac/fac_setting_search.asp?module=INS', 0, 0, 'WEB_PRSSYS', 'W', '0');
DEF_MENUITEM(2, 'lcl_menu_mld_setting', '', 'MLD', 'appl/fac/fac_setting_search.asp?module=MLD', 0, 0, 'WEB_PRSSYS', 'W', '0');
DEF_MENUITEM(2, 'lcl_menu_res_setting', '', 'RES', 'appl/fac/fac_setting_search.asp?module=RES', 0, 0, 'WEB_PRSSYS', 'W', '0');
DEF_MENUITEM(2, 'lcl_menu_bes_setting', '', 'BES', 'appl/fac/fac_setting_search.asp?module=BES', 0, 0, 'WEB_PRSSYS', 'W', '0');
DEF_MENUITEM(2, 'lcl_menu_cnt_setting', '', 'CNT', 'appl/fac/fac_setting_search.asp?module=CNT', 0, 0, 'WEB_PRSSYS', 'W', '0');
DEF_MENUITEM(2, 'lcl_menu_fin_setting', '', 'FIN', 'appl/fac/fac_setting_search.asp?module=FIN', 0, 0, 'WEB_PRSSYS', 'W', '0');
DEF_MENUITEM(2, 'lcl_menu_cad_setting', '', 'CAD', 'appl/fac/fac_setting_search.asp?module=CAD', 0, 0, 'WEB_PRSSYS', 'W', '0');
DEF_MENUITEM(2, 'lcl_menu_mrk_setting', '', 'MRK', 'appl/fac/fac_setting_search.asp?module=MRK', 0, 0, 'WEB_PRSSYS', 'W', '0');
DEF_MENUITEM(2, 'lcl_menu_bez_setting', '', 'BEZ', 'appl/fac/fac_setting_search.asp?module=BEZ', 0, 0, 'WEB_PRSSYS', 'W', '0');
DEF_MENUITEM(2, 'lcl_menu_fac_setting', '', 'FAC', 'appl/fac/fac_setting_search.asp',            0, 0, 'WEB_PRSSYS', 'W', '0');
--
UPDATE fac_menuitems SET fac_menuitems_module = 'PRS' WHERE fac_menuitems_label = 'lcl_menu_prs_kenmerkdomeinen';

/////////////////////////////////////////////////////////////////////////////////////////// FSN#24267
ALTER TABLE fac_bookmark ADD fac_bookmark_xmlnode VARCHAR2(60);

DEF_BOOKMARK('afspraak',        'appl/bez/bez_afspraak.asp',    'afspr_key=');
DEF_BOOKMARK('bestelling',      'appl/bes/bes_bestelling.asp',  'bes_key=');
DEF_BOOKMARK('contract',        'appl/cnt/cnt_contract.asp',    'cnt_key=');
DEF_BOOKMARK('deel',            'appl/ins/ins_deel.asp',        'ins_key=');
DEF_BOOKMARK('factuur',         'appl/fin/fin_factuur.asp',     'fin_key=');
DEF_BOOKMARK('gebouw',          'appl/alg/alg_gebouw.asp',      'key=');
DEF_BOOKMARK('locatie',         'appl/alg/alg_locatie.asp',     'key=');
DEF_BOOKMARK('melding',         'appl/mld/mld_melding.asp',     'mld_key=');
DEF_BOOKMARK('message',         'appl/msg/msg_message.asp',     'message_key=');
DEF_BOOKMARK('opdracht',        'appl/mld/mld_opdr.asp',        'opdr_key=');
DEF_BOOKMARK('perslid',         'appl/prs/prs_perslid.asp',     'prs_key=');
DEF_BOOKMARK('reservering',     'appl/res/res_reservering.asp', 'rsv_ruimte_key=');
DEF_BOOKMARK('ruimte',          'appl/alg/alg_ruimte.asp',      'key=');
DEF_BOOKMARK('verdieping',      'appl/alg/alg_verdieping.asp',  'key=');
DEF_BOOKMARK('xreservering',    'appl/res/res_reservering.asp', 'rsv_ruimte_key=');


/////////////////////////////////////////////////////////////////////////////////////////// HOUT#23425
ALTER TABLE mld_melding ADD res_rsv_ruimte_key
      NUMBER(10)
      CONSTRAINT mld_r_res_rsv_ruimte_key REFERENCES res_rsv_ruimte(res_rsv_ruimte_key);

/////////////////////////////////////////////////////////////////////////////////////////// AASA#24474
UPDATE fac_menuitems SET fac_menuitems_url='appl/fac/fac_fiattering_search.asp'
 WHERE fac_menuitems_url='appl/fac/fac_fiattering_list.asp';

/////////////////////////////////////////////////////////////////////////////////////////// FSN#24664
UPDATE mld_melding
   SET prs_perslid_key_voor = prs_perslid_key
 WHERE prs_perslid_key_voor IS NULL;

ALTER TABLE mld_melding ADD CONSTRAINT mld_c_prs_perslid_key_voor CHECK(prs_perslid_key_voor IS NOT NULL);

/////////////////////////////////////////////////////////////////////////////////////////// SBSH#21632
CREATE SEQUENCE fac_s_user01 MINVALUE 1 NOCACHE;
CREATE SEQUENCE fac_s_user02 MINVALUE 1 NOCACHE;
CREATE SEQUENCE fac_s_user03 MINVALUE 1 NOCACHE;
CREATE SEQUENCE fac_s_user04 MINVALUE 1 NOCACHE;
CREATE SEQUENCE fac_s_user05 MINVALUE 1 NOCACHE;
/////////////////////////////////////////////////////////////////////////////////////////// PNBR#24774
ALTER TABLE alg_kenmerk  MODIFY alg_kenmerk_default VARCHAR2(4000);
ALTER TABLE bes_kenmerk  MODIFY bes_kenmerk_default VARCHAR2(4000);
ALTER TABLE bez_kenmerk  MODIFY bez_kenmerk_default VARCHAR2(4000);
ALTER TABLE cnt_kenmerk  MODIFY cnt_kenmerk_default VARCHAR2(4000);
ALTER TABLE fin_kenmerk  MODIFY fin_kenmerk_default VARCHAR2(4000);
ALTER TABLE mld_kenmerk  MODIFY mld_kenmerk_default VARCHAR2(4000);
ALTER TABLE prs_kenmerk  MODIFY prs_kenmerk_default VARCHAR2(4000);
ALTER TABLE res_kenmerk  MODIFY res_kenmerk_default VARCHAR2(4000);
ALTER TABLE fac_imp_flex MODIFY     kenmerk_default VARCHAR2(4000);

/////////////////////////////////////////////////////////////////////////////////////////// AKZA#24809
ALTER TABLE mld_opdr_materiaal MODIFY mld_opdr_materiaal_omschr VARCHAR2(255);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#24562
UPDATE fac_setting
   SET fac_setting_pvalue = fac_setting_default,
       fac_setting_default = NULL
 WHERE fac_setting_pvalue IS NULL
   AND fac_setting_name = 'fac_logfilename';

/////////////////////////////////////////////////////////////////////////////////////////// FSN#24596
CREATE_TABLE(mld_stdmeldinggroep,0)
(
    mld_stdmeldinggroep_key
        NUMBER(10)
        CONSTRAINT mld_k_mld_stdmeldinggroep_key PRIMARY KEY,
    mld_stdmeldinggroep_naam
        VARCHAR2(30)
        NOT_NULL(mld_stdmeldinggroep_naam, mld_c_mld_stdmeldinggroep_naam),
    mld_stdmeldinggroep_oms
        VARCHAR2(1000),
  CONSTRAINT mld_u_stdmeldinggroep_naam UNIQUE (mld_stdmeldinggroep_naam)
);

CREATE SEQUENCE mld_s_mld_stdmeldinggroep_key MINVALUE 1;

-- Trigger hier al aanmaken omdat de tabel ook meteen gevuld gaat worden.
CREATE_TRIGGER(mld_t_mld_stdmeldinggroep_b_iu)
BEFORE INSERT OR UPDATE ON mld_stdmeldinggroep
FOR EACH ROW
BEGIN
  UPDATE_PRIMARY_KEY(mld_stdmeldinggroep_key, mld_s_mld_stdmeldinggroep_key);
END;
/
-- Behoudt de case-sensitivity maar
INSERT INTO mld_stdmeldinggroep (mld_stdmeldinggroep_naam)
     SELECT DISTINCT mld_stdmelding_groep FROM mld_stdmelding
      WHERE mld_stdmelding_groep IS NOT NULL;

ALTER TABLE mld_stdmelding
  ADD mld_stdmeldinggroep_key
      NUMBER(10)
      CONSTRAINT mld_r_mld_stdmeldinggroep_key REFERENCES mld_stdmeldinggroep(mld_stdmeldinggroep_key);

UPDATE mld_stdmelding
   SET mld_stdmeldinggroep_key = (SELECT mld_stdmeldinggroep_key
                                    FROM mld_stdmeldinggroep
                                   WHERE mld_stdmeldinggroep_naam = mld_stdmelding_groep);

DEF_MENUITEM(2, 'lcl_menu_mld_stdmeldinggroep', '', 'MLD', 'appl/facmgtVB/mld_stdmelding_groepgrid.asp?module=MLD', 0, 0, 'WEB_MLDMGT', 'W', '1');
MENU_INS_AFTER( 'lcl_menu_mld_stdmeldinggroep', 'lcl_menu_mld_vakgroepen', 2);

ALTER TABLE fac_imp_mld MODIFY mld_stdmelding_groep VARCHAR2(30);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#24820
// Opruimen oude notificaties (portal bitje maar geen receiver)
// Als status 0 wordt dan wordt record vanzelf verwijderd
UPDATE fac_notificatie
   SET fac_notificatie_status = BITAND (fac_notificatie_status, 255 - 1)
 WHERE BITAND (fac_notificatie_status, 1) = 1  AND prs_perslid_key_receiver IS NULL;

/////////////////////////////////////////////////////////////////////////////////////////// FSN#24657
ALTER TABLE prs_perslid ADD prs_perslid_flags NUMBER(10) DEFAULT 0;
UPDATE prs_perslid SET prs_perslid_flags = 1 WHERE prs_perslid_systeemadres IS NOT NULL AND prs_perslid_flags IS NULL;
UPDATE prs_perslid SET prs_perslid_flags = 1 WHERE prs_perslid_key IN (SELECT prs_perslid_key FROM fac_api) AND prs_perslid_flags IS NULL;

/////////////////////////////////////////////////////////////////////////////////////////// FSN#24836
ALTER TABLE mld_opdr_materiaal MODIFY mld_opdr_materiaal_aantal NUMBER(8,2);

/////////////////////////////////////////////////////////////////////////////////////////// SKAF#24843
UPDATE fac_functie SET fac_functie_min_level=3 WHERE fac_functie_code='WEB_MRKUSE' AND fac_functie_min_level=0;
UPDATE fac_functie SET fac_functie_info='Om berichten op de marktplaats te lezen/plaatsen' WHERE fac_functie_code='WEB_MRKUSE';

/////////////////////////////////////////////////////////////////////////////////////////// SUTF#24607
ALTER TABLE ins_tab_discipline ADD ins_discipline_volgnr NUMBER(4);

/////////////////////////////////////////////////////////////////////////////////////////// AAES#24862
ALTER TABLE fac_imp_perslid MODIFY prs_perslid_naam VARCHAR2(60);

ALTER TABLE prs_perslid MODIFY prs_perslid_naam VARCHAR2(60);
ALTER TABLE prs_perslid MODIFY prs_perslid_upper VARCHAR2(60);

/////////////////////////////////////////////////////////////////////////////////////////// RWSN#24879
ALTER TABLE fac_imp_usrdata ADD fac_usrdata_vervaldatum DATE;

/////////////////////////////////////////////////////////////////////////////////////////// AAEN#23971
DEF_FAC_SRTNOT('BEZUPD', 0, 'Uw afspraak ##KEY## is gewijzigd',                    'bez/bez_afspraak.asp?afspr_key=', '0', 'afspraak');
DEF_FAC_SRTNOT('RESBLK', 0, 'Uw reservering ##KEY## (##DESC##) is nu geblokkeerd', 'res/res_reservering.asp?rsv_ruimte_key=', '0', 'reservering');

/////////////////////////////////////////////////////////////////////////////////////////// PZHO#24800
// Verwijderde artikelen onder aanwezige res_rsv_ruimte echt droppen
DELETE FROM res_rsv_artikel rra
 WHERE rra.res_rsv_artikel_verwijder IS NOT NULL
   AND rra.res_rsv_ruimte_key IN (
      SELECT res_rsv_ruimte_key
        FROM res_rsv_ruimte rrr
     WHERE  rrr.res_rsv_ruimte_verwijder IS NULL);

DELETE FROM res_rsv_deel rrd
 WHERE rrd.res_rsv_deel_verwijder IS NOT NULL
   AND rrd.res_rsv_ruimte_key IN (
      SELECT res_rsv_ruimte_key
        FROM res_rsv_ruimte rrr
     WHERE  rrr.res_rsv_ruimte_verwijder IS NULL);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#24335
ALTER TABLE mld_kenmerk ADD mld_kenmerk_verplicht_status NUMBER(2);

/////////////////////////////////////////////////////////////////////////////////////////// UWVA#14569
// -- 1=view has xemail and xmobile, 2=use fac.notifytracking in stead of fac.putnotification(srtprio)
ALTER TABLE fac_notificatie_job
  ADD  fac_notificatie_job_flags
    NUMBER(10) default 0;

/////////////////////////////////////////////////////////////////////////////////////////// HOUT#23425
create index mld_i_mld_melding19 on mld_melding(res_rsv_ruimte_key);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#24660
-- Compatibel blijven: iedereen met WEB_BESBOR ook WEB_BESBOF geven
INSERT INTO fac_groeprechten (fac_groep_key,
                              fac_gebruiker_prs_level_write, fac_gebruiker_prs_level_read,
                              fac_gebruiker_alg_level_write, fac_gebruiker_alg_level_read,
                              fac_functie_key,
                              ins_discipline_key
                             )
   SELECT   g.fac_groep_key,
            fac_gebruiker_prs_level_write, fac_gebruiker_prs_level_read,
            fac_gebruiker_alg_level_write, fac_gebruiker_alg_level_read,
            f.fac_functie_key,
            g.ins_discipline_key
     FROM   fac_groeprechten g, fac_functie f
    WHERE   g.fac_functie_key = (SELECT   fac_functie_key
                                   FROM   fac_functie
                                  WHERE   fac_functie_code = 'WEB_BESBOF')
            AND f.fac_functie_code='WEB_BESBOR'
            AND (g.fac_groep_key, f.fac_functie_key, g.ins_discipline_key) NOT IN
                     (SELECT   fac_groep_key, fac_functie_key, ins_discipline_key FROM fac_groeprechten);

UPDATE fac_functie SET fac_functie_omschrijving='Backoffice:Bestellingen'
 WHERE fac_functie_code='WEB_BESBOF'
   AND fac_functie_omschrijving='Backoffice:Bestelaanvragen';

/////////////////////////////////////////////////////////////////////////////////////////// PNBR#23965
DEF_MENUITEM(2, 'lcl_menu_fac_xsledit'          , '', 'FAC', 'appl/fac/fac_edit_xsl.asp', 0, 0, 'WEB_PRSSYS', 'W', '1');
MENU_INS_AFTER('lcl_menu_fac_xsledit', 'lcl_menu_fac_setting', 2);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#24660
UPDATE fac_menuitems
   SET fac_menuitems_url = 'appl/bes/opdr_search.asp?urole=bo'
 WHERE fac_menuitems_label LIKE 'lcl_menu_bes_bo_order_overzich'
   AND fac_menuitems_module LIKE 'BES'
   AND fac_menuitems_url lIKE 'appl/bes/opdr_search.asp';

UPDATE fac_menuitems
   SET fac_menuitems_url = 'appl/bes/opdr_search.asp?urole=br'
 WHERE fac_menuitems_label LIKE 'lcl_menu_bes_bo_afhandelen'
   AND fac_menuitems_module LIKE 'BES'
   AND fac_menuitems_url lIKE 'appl/bes/opdr_search.asp?urole=bo';

/////////////////////////////////////////////////////////////////////////////////////////// GENERAL


/////////////////////////////////////////////////////////////////////////////////////////// CLEANUP
ALTER TABLE fac_api DROP COLUMN fac_api_xmlnode;
ALTER TABLE fac_setting DROP COLUMN fac_setting_ovalue;
ALTER TABLE fac_setting DROP COLUMN fac_setting_tvalue;
ALTER TABLE fac_setting DROP COLUMN fac_setting_avalue;

ALTER TABLE mld_stdmelding DROP COLUMN mld_stdmelding_groep;

DELETE FROM fac_menuitems WHERE fac_menuitems_label='lcl_menu_sch_schoonmaak';
DELETE FROM fac_functie WHERE fac_functie_code = 'WEB_SCHBOF';
DROP VIEW sch_v_schoonmaakbedrijf;
DROP VIEW sch_v_ruimtegegevens;
DROP VIEW sch_v_locatiegegevens;
DROP TABLE sch_programma_bedrijf PURGE;
DROP TABLE sch_programma PURGE;
DROP SEQUENCE sch_s_sch_programma_key;
DROP SEQUENCE sch_s_sch_programma_b_key;
///////////////////////////////////////////////////////////////////////////////////////////
REGISTERONCE('$Workfile: DB16to17.src $','$Revision$')
#include "epilogue.inc"
