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

COMMIT;

/////////////////////////////////////////////////////////////////////////////////////////// FSN#33170
#include "../kpi/kpi_tab.src"
#include "../kpi/kpi_seq.src"
// views moeten hier voor de ini
#include "../kpi/kpi_vie.src"
#include "../kpi/kpi_ind.src"
DEF_FAC_FUNCTIE2('WEB_KPIRAP', 'Info:KPI''s', 'KPI',  0, 0,    1, 'Om voorgedefinieerde KPI-rapportages te kunnen raadplegen');
#include "../kpi/kpi_ini.src"
DEF_MENUITEM(1, 'lcl_menu_kpi', '', 'KPI', 'appl/kpi/kpi_search.asp', 0, 0, 'WEB_KPIRAP', 'R', '0', '');
MENU_INS_AFTER('lcl_menu_kpi', 'lcl_menu_res_quality', 2);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#29308
ALTER TABLE fac_export_app ADD CONSTRAINT fac_u_fac_export_app_code UNIQUE(fac_export_app_code);

/////////////////////////////////////////////////////////////////////////////////////////// AAIT#27656
DEF_FAC_FUNCTIE2('WEB_CNTGO4', 'Backoffice:Contracten-goedk4', 'CNT',  11, 1, 0, 'Om contracten boven de vierde limiet goed te kunnen keuren');
DEF_FAC_FUNCTIE2('WEB_CNTGO5', 'Backoffice:Contracten-goedk5', 'CNT',  11, 1, 0, 'Om contracten boven de vijfde limiet goed te kunnen keuren');

/////////////////////////////////////////////////////////////////////////////////////////// AKZA#33692
ALTER TABLE res_ruimte ADD res_ruimte_extern_id
      VARCHAR2(256);
ALTER TABLE res_ruimte ADD res_ruimte_syncstate
      VARCHAR2(4000);
ALTER TABLE fac_import ADD fac_import_refkey
      NUMBER(10);

/////////////////////////////////////////////////////////////////////////////////////////// AKZA#34209
ALTER TABLE res_rsv_ruimte ADD res_rsv_ruimte_externnr
    VARCHAR2(1000);
CREATE INDEX res_i_res_rsv_ruimte15 ON res_rsv_ruimte (res_rsv_ruimte_externnr);

ALTER TABLE bez_bezoekers ADD bez_bezoekers_flags
    NUMBER(10) DEFAULT 0 NOT NULL;

/////////////////////////////////////////////////////////////////////////////////////////// UWVA#33631
ALTER TABLE res_activiteit ADD res_activiteit_notfrontend
        NUMBER(1)
        DEFAULT 0
        NOT NULL
        CONSTRAINT res_c_res_activiteit_notfe CHECK (res_activiteit_notfrontend IN (0,1));

/////////////////////////////////////////////////////////////////////////////////////////// FSN#34187
ALTER TABLE fac_usrrap ADD fac_usrrap_graph_options VARCHAR2(4000);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#27127
ALTER TABLE prs_perslid ADD prs_perslid_otpsecret
        VARCHAR2(128);
ALTER TABLE prs_perslid ADD prs_perslid_otpcounter
        NUMBER(10);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#34163
UPDATE prs_perslid
   SET prs_perslid_otpsecret = '1$30$6$0$' || RAWTOHEX(DBMS_RANDOM.string ('p', 20))
 WHERE prs_perslid_oslogin = '_FACILITOR';

/////////////////////////////////////////////////////////////////////////////////////////// FSN#33836
-- Alle dubbele waarden verwijderen. De regel die het eerst is aangemaakt behouden.
DELETE
  FROM ins_srtcontroledl_xcp isx1
 WHERE EXISTS
          (SELECT 1
             FROM ins_srtcontroledl_xcp isx2
            WHERE isx1.ins_deel_key = isx2.ins_deel_key
                  AND isx1.ins_srtcontrole_key = isx2.ins_srtcontrole_key
                  AND isx1.ins_srtcontroledl_xcp_key >
                        isx2.ins_srtcontroledl_xcp_key);
ALTER TABLE ins_srtcontroledl_xcp
      ADD CONSTRAINT ins_u_ins_srtcontroledl_xcp
			UNIQUE (ins_deel_key, ins_srtcontrole_key);

/////////////////////////////////////////////////////////////////////////////////////////// HSLE#34222
INSERT INTO mld_meldbron(mld_meldbron_key, mld_meldbron_omschrijving) VALUES (8, 'Chat');
INSERT INTO mld_meldbron(mld_meldbron_key, mld_meldbron_omschrijving) VALUES (9, 'Social media');

/////////////////////////////////////////////////////////////////////////////////////////// AAEN#34001
CREATE_TABLE(prs_relatietype, 0)
(
   prs_relatietype_key
       NUMBER (10) PRIMARY KEY,
   prs_relatietype_omschrijving
       VARCHAR2(100)
       NOT_NULL(prs_relatietype_omschrijving, prs_c_prs_relatietype_omschr),
   prs_relatietype_aanmaak
       DATE
       DEFAULT SYSDATE,
   prs_relatietype_verwijder
       DATE
       DEFAULT NULLDATUM,
   CONSTRAINT prs_u_prs_relatietype_oms UNIQUE(prs_relatietype_omschrijving, prs_relatietype_verwijder)
);

CREATE SEQUENCE prs_s_prs_relatietype_key MINVALUE 10;

ALTER TABLE prs_bedrijf ADD prs_relatietype_key
      NUMBER(10)
      CONSTRAINT prs_r_prs_relatietype_key REFERENCES prs_relatietype(prs_relatietype_key);

INSERT INTO prs_relatietype (prs_relatietype_key, prs_relatietype_omschrijving) VALUES (1, 'Contracting party');
INSERT INTO prs_relatietype (prs_relatietype_key, prs_relatietype_omschrijving) VALUES (2, 'Managing agent');

DEF_MENUITEM(2, 'lcl_menu_prs_relatietypes'     , '', 'PRS', 'appl/mgt/prs_relatietype.asp', 0, 0, 'WEB_PRSMGT', 'W', '1', '');
MENU_INS_AFTER('lcl_menu_prs_relatietypes', 'lcl_menu_prs_staffels', 2);


/////////////////////////////////////////////////////////////////////////////////////////// FSN#30973
CREATE_VIEW(PRS_V_UDR_BEDRIJF, 0) AS SELECT 1 FROM DUAL;
INSERT INTO fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info, fac_functie_key, fac_usrrap_functie)
 SELECT 'UDR: Bedrijven','PRS_V_UDR_BEDRIJF','Basisrapport voor bedrijfrapportages', fac_functie_key, 32
   FROM fac_functie WHERE fac_functie_code='WEB_PRSSYS'
    AND NOT EXISTS (SELECT '' FROM fac_usrrap WHERE UPPER(fac_usrrap_view_name)='PRS_V_UDR_BEDRIJF');

/////////////////////////////////////////////////////////////////////////////////////////// ASFC#34371
ALTER TABLE ins_deelsrtcontrole MODIFY ins_deelsrtcontrole_datum NULL; // bij eerdere statussen mag die nu leeg zijn

DEF_FAC_SRTNOT('INSCBE', 0, 'Inspectie gestart',     'ins/ins_inspect.asp?deelsrtcont_key=', '0', 'controle', 10);
DEF_FAC_SRTNOT('INSCAF', 0, 'Inspectie uitgevoerd',  'ins/ins_inspect.asp?deelsrtcont_key=', '0', 'controle', 10);
DEF_FAC_SRTNOT('INSCVE', 0, 'Inspectie gereed',      'ins/ins_inspect.asp?deelsrtcont_key=', '0', 'controle', 10);
DEF_FAC_SRTNOT('INSCUP', 0, 'Inspectie gewijzigd',   'ins/ins_inspect.asp?deelsrtcont_key=', '0', 'controle', 10);

/////////////////////////////////////////////////////////////////////////////////////////// AAIT#34370
ALTER TABLE ins_deelsrtcontrole ADD ins_deelsrtcontrole_plandatum DATE;
ALTER TABLE ins_deelsrtcontrole ADD ins_deelsrtcontrole_status NUMBER(1) DEFAULT 6 CONSTRAINT ins_c_deelsrtcontrole_status NOT NULL;

CREATE INDEX ins_i_ins_deelsrtcontrole1 ON ins_deelsrtcontrole(ins_deelsrtcontrole_status, ins_deel_key);

DEF_STATUS('controle', 0, 'lcl_ins_controle_pending');
DEF_STATUS('controle', 2, 'lcl_ins_controle_gestart');
DEF_STATUS('controle', 5, 'lcl_ins_controle_afgemeld');
DEF_STATUS('controle', 6, 'lcl_ins_controle_verwerkt');

/////////////////////////////////////////////////////////////////////////////////////////// FSN#34368
ALTER TABLE ins_controlemode ADD ins_srtcontrole_type NUMBER(1) DEFAULT(1); // 1=controle, 2=vervanging, 3=certificering
ALTER TABLE ins_controlemode DROP CONSTRAINT ins_u_ins_controlemode_oms DROP INDEX;
ALTER TABLE ins_controlemode ADD CONSTRAINT ins_u_ins_controlemode_oms UNIQUE (ins_srtcontrole_type,ins_controlemode_oms);

INSERT INTO ins_controlemode (ins_controlemode_oms,
                              ins_controlemode_opmerking,
                              ins_controlemode_success,
                              ins_srtcontrole_type)
   SELECT ins_controlemode_oms,
          ins_controlemode_opmerking,
          ins_controlemode_success,
          2
     FROM ins_controlemode
    WHERE ins_srtcontrole_type = 1;

INSERT INTO ins_controlemode (ins_controlemode_oms,
                              ins_controlemode_opmerking,
                              ins_controlemode_success,
                              ins_srtcontrole_type)
   SELECT ins_controlemode_oms,
          ins_controlemode_opmerking,
          ins_controlemode_success,
          3
     FROM ins_controlemode
    WHERE ins_srtcontrole_type = 1;

-- omhangen naar de nieuwe waarden
UPDATE ins_deelsrtcontrole dsc
   SET ins_controlemode_key =
          (SELECT cm.ins_controlemode_key
             FROM ins_controlemode cm, ins_controlemode prev, ins_srtcontrole sc
            WHERE     cm.ins_controlemode_oms = prev.ins_controlemode_oms
                  AND cm.ins_srtcontrole_type = 2
                  AND prev.ins_srtcontrole_type = 1
                  AND sc.ins_srtcontrole_key = dsc.ins_srtcontrole_key
                  AND dsc.ins_controlemode_key = prev.ins_controlemode_key)
 WHERE dsc.ins_srtcontrole_key IN (SELECT ins_srtcontrole_key
                                     FROM ins_srtcontrole
                                    WHERE ins_srtcontrole_type = 2);

UPDATE ins_deelsrtcontrole dsc
   SET ins_controlemode_key =
          (SELECT cm.ins_controlemode_key
             FROM ins_controlemode cm, ins_controlemode prev, ins_srtcontrole sc
            WHERE     cm.ins_controlemode_oms = prev.ins_controlemode_oms
                  AND cm.ins_srtcontrole_type = 3
                  AND prev.ins_srtcontrole_type = 1
                  AND sc.ins_srtcontrole_key = dsc.ins_srtcontrole_key
                  AND dsc.ins_controlemode_key = prev.ins_controlemode_key)
 WHERE dsc.ins_srtcontrole_key IN (SELECT ins_srtcontrole_key
                                     FROM ins_srtcontrole
                                    WHERE ins_srtcontrole_type = 3);

// Deze mag niks meer opleveren:
--SELECT cm.ins_srtcontrole_type, sc.ins_srtcontrole_type
--  FROM ins_controlemode cm, ins_deelsrtcontrole dsc, ins_srtcontrole sc
-- WHERE     dsc.ins_controlemode_key = cm.ins_controlemode_key
--       AND dsc.ins_srtcontrole_key = sc.ins_srtcontrole_key
--       AND cm.ins_srtcontrole_type <> sc.ins_srtcontrole_type
// Ruim de ongebruikte modes op. Dapper?
DELETE FROM ins_controlemode cm1
      WHERE NOT EXISTS (SELECT ''
                          FROM ins_deelsrtcontrole cm2
                         WHERE cm2.ins_controlemode_key = cm1.ins_controlemode_key);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#34401
ALTER TABLE mld_stdmsrtruimte ADD mld_stdmsrtruimte_malusbasis NUMBER(8,2);
ALTER TABLE mld_stdmelding ADD mld_stdmelding_malusbasis NUMBER(8,2);

/////////////////////////////////////////////////////////////////////////////////////////// ARFR#34428
ALTER TABLE fac_imp_cnt MODIFY afdeling VARCHAR2 (15);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#34345
CREATE INDEX fin_i_fin_factuur4
    ON fin_factuur(fin_factuur_statuses_key, fin_factuur_verwijder);

/////////////////////////////////////////////////////////////////////////////////////////// MDUX#31775
CREATE_VIEW(FIN_V_UDR_KOSTENOVERZICHT, 0) AS SELECT 1 FROM DUAL;
INSERT INTO fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info, fac_functie_key, fac_usrrap_functie)
 SELECT 'UDR: Kostenoverzicht','FIN_V_UDR_KOSTENOVERZICHT','Basisrapport voor kostenrapportages', fac_functie_key, 32
   FROM fac_functie WHERE fac_functie_code='WEB_PRSSYS'
    AND NOT EXISTS (SELECT '' FROM fac_usrrap WHERE UPPER(fac_usrrap_view_name)='FIN_V_UDR_KOSTENOVERZICHT');

/////////////////////////////////////////////////////////////////////////////////////////// AKZA#34210
ALTER TABLE res_artikel ADD res_artikel_begintijd
      NUMBER(5,2)
      CONSTRAINT res_c_artikel_begintijd CHECK(res_artikel_begintijd>=0 AND res_artikel_begintijd<24);
ALTER TABLE res_artikel ADD res_artikel_eindtijd
      NUMBER(5,2)
      CONSTRAINT res_c_artikel_eindtijd CHECK(res_artikel_eindtijd>=0 AND res_artikel_eindtijd<24);

/////////////////////////////////////////////////////////////////////////////////////////// UWVA#32742

ALTER TABLE fac_imp_flex ADD ins_discipline VARCHAR2(255);
ALTER TABLE fac_imp_flex ADD ins_srtgroep VARCHAR2(255);
ALTER TABLE fac_imp_flex ADD ins_srtdeel VARCHAR2(255);

CREATE_VIEW(fac_v_exp_flex_ins, 0) AS SELECT 1 FROM DUAL;
INSERT INTO fac_usrrap
            (fac_usrrap_omschrijving, fac_usrrap_view_name,
             fac_usrrap_vraagbegindatum, fac_usrrap_vraageinddatum,
             fac_usrrap_functie,
             fac_usrrap_info,
             fac_functie_key, fac_usrrap_autorefresh
            )
     VALUES ('TRANSPORT: Flexkenmerken Objecten', 'FAC_V_EXP_FLEX_INS',
             0, 0,
             0,
             'Exporteren van flexkenmerken voor INS (per discipline/groep/objectsoort of soort controle)',
             (SELECT fac_functie_key FROM fac_functie
               WHERE fac_functie_code = 'WEB_PRSSYS'),
             0
            );

/////////////////////////////////////////////////////////////////////////////////////////// FSN#34368
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/ins_controlemode.asp' WHERE fac_menuitems_label = 'lcl_menu_ins_controlemode';

/////////////////////////////////////////////////////////////////////////////////////////// FSN#33941
//ALG
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/alg_srtgebouw.asp' WHERE fac_menuitems_label = 'lcl_menu_alg_gebouwfuncties';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/alg_srtterreinsector.asp' WHERE fac_menuitems_label = 'lcl_menu_alg_terreinsoorten' ;
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/alg_kenmerk.asp?alg_kenmerk_niveau=D' WHERE fac_menuitems_label = 'lcl_menu_alg_districtkenmerken';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/alg_kenmerk.asp?alg_kenmerk_niveau=L' WHERE fac_menuitems_label = 'lcl_menu_alg_locatiekenmerken';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/alg_kenmerk.asp?alg_kenmerk_niveau=T' WHERE fac_menuitems_label = 'lcl_menu_alg_terreinkenmerken';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/alg_kenmerk.asp?alg_kenmerk_niveau=G' WHERE fac_menuitems_label = 'lcl_menu_alg_gebouwkenmerken';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/alg_kenmerk.asp?alg_kenmerk_niveau=V' WHERE fac_menuitems_label = 'lcl_menu_alg_verdiepkenmerken';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/alg_kenmerk.asp?alg_kenmerk_niveau=R' WHERE fac_menuitems_label = 'lcl_menu_alg_ruimtekenmerken';
//BES
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/bes_srtgroep.asp' WHERE fac_menuitems_label = 'lcl_menu_bes_groepen';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/bes_discipline.asp' WHERE fac_menuitems_label = 'lcl_menu_bes_catalogi';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/bes_disciplineprod.asp' WHERE fac_menuitems_label = 'lcl_menu_bes_prodcatalogi';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/bes_srtprodgroep.asp' WHERE fac_menuitems_label = 'lcl_menu_bes_prodgroepen';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/bes_staffeltabel.asp' WHERE fac_menuitems_label = 'lcl_menu_bes_staffeltabel';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/bes_grootheid.asp' WHERE fac_menuitems_label = 'lcl_menu_bes_grootheden';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/bes_kenmerkbestel.asp' WHERE fac_menuitems_label = 'lcl_menu_bes_kenmerken';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/bes_kenmerk.asp' WHERE fac_menuitems_label = 'lcl_menu_bes_itemkenmerken';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/bes_srtkenmerk.asp' WHERE fac_menuitems_label = 'lcl_menu_bes_kenmerksoorten';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/fac_import_app.asp' WHERE fac_menuitems_label = 'lcl_menu_bes_importeren';
//BEZ
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/bez_actie.asp' WHERE fac_menuitems_label = 'lcl_menu_bez_acties';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/bez_kenmerk.asp' WHERE fac_menuitems_label = 'lcl_menu_bez_kenmerken';
//INS
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/ins_srtkenmerk.asp' WHERE fac_menuitems_label = 'lcl_menu_ins_kenmerksoorten';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/ins_srtcontrole.asp' WHERE fac_menuitems_label = 'lcl_menu_ins_srtcontrole';
//PRS
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/prs_srtperslid.asp' WHERE fac_menuitems_label = 'lcl_menu_prs_functies';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/prs_dienst.asp' WHERE fac_menuitems_label = 'lcl_menu_prs_diensten';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/prs_staffel.asp' WHERE fac_menuitems_label = 'lcl_menu_prs_staffels';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/prs_kenmerk.asp?prs_kenmerk_niveau=B' WHERE fac_menuitems_label = 'lcl_menu_prs_bedrijfkenmerken';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/prs_kenmerk.asp?prs_kenmerk_niveau=A' WHERE fac_menuitems_label = 'lcl_menu_prs_afdelingskenmerke';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/prs_kenmerk.asp?prs_kenmerk_niveau=P' WHERE fac_menuitems_label = 'lcl_menu_prs_persoonskenmerken';
UPDATE fac_menuitems SET fac_menuitems_url = 'appl/mgt/prs_kenmerk.asp?prs_kenmerk_niveau=C' WHERE fac_menuitems_label = 'lcl_menu_prs_contactkenmerken';

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

/////////////////////////////////////////////////////////////////////////////////////////// CLEANUP

REGISTERONCE('$Id$')
#include "epilogue.inc"
