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

COMMIT;

/////////////////////////////////////////////////////////////////////////////////////////// AADS#38245
CREATE_TABLE(fac_imp_kpn, 0)
(
   prs_kostenplaats_nr              VARCHAR2 (30),
   prs_kostenplaats_omschrijving    VARCHAR2 (60),
   prs_kostenplaats_module          VARCHAR2 (3),
   prs_kostenplaats_begin           DATE,
   prs_kostenplaats_eind            DATE,
   prs_kostenplaatsgrp_key          NUMBER (10),
   prs_perslid_key                  NUMBER (10),
   prs_kostenplaats_limiet          NUMBER (8),
   prs_kostenplaats_limietperiode   NUMBER (1),
   prs_kostenplaats_extern          NUMBER (1),
   prs_kostenplaats_fiat            NUMBER (1)
);

INSERT INTO fac_import_app (fac_import_app_code, fac_import_app_oms, fac_functie_key)
  SELECT 'KPN', 'FIP: Aanmaken/bijwerken van kostenplaatsen', fac_functie_key
     FROM fac_functie
    WHERE fac_functie_code = 'WEB_PRSSYS';

/////////////////////////////////////////////////////////////////////////////////////////// FSN#37722
CREATE INDEX fac_i_imp_factuur2 ON fac_imp_factuur (fac_import_key);

DELETE FROM fac_imp_factuur f
    WHERE NOT EXISTS (SELECT 'x'
                        FROM fac_import i
                       WHERE i.fac_import_key = f.fac_import_key);
ALTER TABLE fac_imp_factuur MODIFY
    fac_import_key CONSTRAINT fac_r_fac_imp_factuur1
    REFERENCES fac_import(fac_import_key) ON DELETE CASCADE;

/////////////////////////////////////////////////////////////////////////////////////////// CSUN#37615
ALTER TABLE fac_srtnotificatie
  ADD fac_srtnotificatie_srtkm_key NUMBER(10);

/////////////////////////////////////////////////////////////////////////////////////////// PNBR#35811
ALTER TABLE res_activiteit
   ADD res_activiteit_meteindtijd NUMBER(1)
       DEFAULT 1
       CONSTRAINT res_c_res_activiteit_meteind CHECK(res_activiteit_meteindtijd IS NOT NULL);

/////////////////////////////////////////////////////////////////////////////////////////// AAIT#36064
ALTER TABLE alg_gebouw ADD (
    prs_perslid_key_verantw2
        NUMBER(10)
        CONSTRAINT alg_r_prs_perslid_key2 REFERENCES prs_perslid(prs_perslid_key)
);

/////////////////////////////////////////////////////////////////////////////////////////// HSLE#36898
ALTER TABLE fac_menu ADD (
    prs_perslid_key
        NUMBER(10)
        CONSTRAINT fac_r_prs_perslid_key7 REFERENCES prs_perslid(prs_perslid_key),
    fac_menu_filter
        VARCHAR2(4000),
    fac_menu_aanmaak
        DATE
        DEFAULT SYSDATE
);

CREATE INDEX fac_i_fac_menu_perslid_key ON fac_menu (prs_perslid_key);

//DEF_MENUKOP(0, 'lcl_current_fav');


/////////////////////////////////////////////////////////////////////////////////////////// AAFM#31763

TRUNCATE TABLE fac_imp_usrdata;
CREATE UNIQUE INDEX fac_i_imp_usrdata1 ON fac_imp_usrdata (fac_usrtab_naam, fac_usrdata_code);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#36795
ALTER TABLE ins_srtcontrole
   ADD ins_srtcontrole_options
       NUMBER(3)
       DEFAULT 15
       NOT_NULL(ins_srtcontrole_options, ins_c_ins_srtcontr_options);

/////////////////////////////////////////////////////////////////////////////////////////// PNBR#37746
ALTER TABLE bes_bestelling
  ADD bes_bestelling_lev_opm VARCHAR2(320);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#38074

ALTER TABLE alg_gebouw MODIFY alg_gebouw_naam VARCHAR2(60);
ALTER TABLE fac_imp_onrgoed1 MODIFY alg_gebouw_naam VARCHAR2(60);


/////////////////////////////////////////////////////////////////////////////////////////// DJIN#37247
ALTER TABLE bez_bezoekers
  ADD bez_bezoekers_opmerking VARCHAR2(50);
UPDATE bez_bezoekers
   SET bez_bezoekers_opmerking = bez_afspraak_opmerking
 WHERE bez_afspraak_opmerking IS NOT NULL;

///////////////////////////////////////////////////////////////////////////////////////////  FSN#37793
DECLARE
  r_key   res_opstelling.res_opstelling_key%TYPE;
  r_oms   res_opstelling.res_opstelling_omschrijving%TYPE;
  r_volg  res_opstelling.res_opstelling_volgnr%TYPE;
  r_aanm  res_opstelling.res_opstelling_aanmaak%TYPE;
  r_verw  res_opstelling.res_opstelling_verwijder%TYPE;
BEGIN
  BEGIN
    SELECT res_opstelling_omschrijving
         , res_opstelling_volgnr
         , res_opstelling_aanmaak
         , res_opstelling_verwijder
      INTO r_oms
         , r_volg
         , r_aanm
         , r_verw
      FROM res_opstelling
     WHERE res_opstelling_key = 0;
    --
    INSERT INTO res_opstelling
    ( res_opstelling_omschrijving
    , res_opstelling_volgnr
    , res_opstelling_verwijder
    ) VALUES
    ( r_oms
    , r_volg
    , SYSDATE
    )
    RETURNING res_opstelling_key
         INTO r_key;
    --
    UPDATE res_ruimte_opstelling
       SET res_opstelling_key = r_key
     WHERE res_opstelling_key = 0;
    --
    DELETE FROM res_opstelling
     WHERE res_opstelling_key = 0;
    --
    UPDATE res_opstelling
       SET res_opstelling_aanmaak = r_aanm
         , res_opstelling_verwijder = r_verw
     WHERE res_opstelling_key = r_key;
    COMMIT;
  EXCEPTION
    WHEN NO_DATA_FOUND THEN RETURN;
  END;
END;
/

/////////////////////////////////////////////////////////////////////////////////////////// FSN#38083
ALTER TABLE ins_srtcontroledl_xcp
   ADD ins_srtcontroledl_xcp_startdat
       DATE;

/////////////////////////////////////////////////////////////////////////////////////////// AAIT#37411
ALTER TABLE cnt_factuurschema ADD cnt_factuurschema_boekmaand VARCHAR2(7);
ALTER TABLE cnt_factuurschema ADD cnt_factuurschema_opmerking VARCHAR2(320);
ALTER TABLE cnt_factuurschema ADD cnt_factuurschema_aanmaak DATE DEFAULT SYSDATE;
CREATE UNIQUE INDEX cnt_i_cnt_factuurschema1 ON cnt_factuurschema(cnt_contract_key, cnt_factuurschema_boekmaand);

ALTER TABLE cnt_disc_params
    ADD cnt_disc_params_factuurschema
    NUMBER(1) DEFAULT 0 NOT NULL;

/////////////////////////////////////////////////////////////////////////////////////////// FSN#38431
DELETE FROM fac_menuitems
      WHERE fac_menuitems_label = 'lcl_menu_cad_legendawaarden';

/////////////////////////////////////////////////////////////////////////////////////////// FSN#38426
ALTER TABLE prs_contactpersoon MODIFY
    prs_contactpersoon_functie VARCHAR(60);

/////////////////////////////////////////////////////////////////////////////////////////// VENR#37077
ALTER TABLE res_ruimte
  ADD res_ruimte_min_duur
  NUMBER(5,2);

/////////////////////////////////////////////////////////////////////////////////////////// AAIT#36710
ALTER TABLE alg_kenmerk DROP CONSTRAINT alg_c_alg_kenmerk_type1;
ALTER TABLE bes_srtkenmerk DROP CONSTRAINT bes_c_bes_srtkenmerk_kenmtype;
ALTER TABLE bez_kenmerk DROP CONSTRAINT bez_c_bez_kenmerk_type2;
ALTER TABLE cnt_srtkenmerk DROP CONSTRAINT cnt_c_cnt_srtkenmerk_kenmtype;
ALTER TABLE fin_kenmerk DROP CONSTRAINT fin_c_fin_kenmerk_type1;
ALTER TABLE ins_srtkenmerk DROP CONSTRAINT ins_c_ins_srtkenmerk_kenmtype;
ALTER TABLE mld_srtkenmerk DROP CONSTRAINT mld_c_mld_srtkenmerk_kenmtype;
ALTER TABLE prs_kenmerk DROP CONSTRAINT prs_c_prs_kenmerk_type2;
ALTER TABLE res_srtkenmerk DROP CONSTRAINT res_c_res_srtkenmerk_kenmtype;

ALTER TABLE alg_kenmerk MODIFY alg_kenmerk_kenmerktype
    CONSTRAINT alg_c_alg_kenmerk_type1 CHECK(alg_kenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l', 'B'));
ALTER TABLE bes_srtkenmerk MODIFY bes_srtkenmerk_kenmerktype
    CONSTRAINT bes_c_bes_srtkenmerk_kenmtype  CHECK(bes_srtkenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l', 'B'));
ALTER TABLE bez_kenmerk MODIFY bez_kenmerk_kenmerktype
    CONSTRAINT bez_c_bez_kenmerk_type2 CHECK(bez_kenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l', 'B'));
ALTER TABLE cnt_srtkenmerk MODIFY cnt_srtkenmerk_kenmerktype
    CONSTRAINT cnt_c_cnt_srtkenmerk_kenmtype  CHECK(cnt_srtkenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l', 'B'));
ALTER TABLE fin_kenmerk MODIFY fin_kenmerk_kenmerktype
    CONSTRAINT fin_c_fin_kenmerk_type1 CHECK(fin_kenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l', 'B'));
ALTER TABLE ins_srtkenmerk MODIFY ins_srtkenmerk_kenmerktype
    CONSTRAINT ins_c_ins_srtkenmerk_kenmtype CHECK(ins_srtkenmerk_kenmerktype IN('C', 'N', 'D', 'R', 'X', 'L', 'Q','F','M','E','S', 'l', 'B'));
ALTER TABLE mld_srtkenmerk MODIFY mld_srtkenmerk_kenmerktype
    CONSTRAINT mld_c_mld_srtkenmerk_kenmtype  CHECK(mld_srtkenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l', 'B'));
ALTER TABLE prs_kenmerk MODIFY prs_kenmerk_kenmerktype
    CONSTRAINT prs_c_prs_kenmerk_type2 CHECK (prs_kenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l', 'B'));
ALTER TABLE res_srtkenmerk MODIFY res_srtkenmerk_kenmerktype
    CONSTRAINT res_c_res_srtkenmerk_kenmtype CHECK(res_srtkenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l', 'B'));

CREATE_TABLE (fac_kenmwaarden, 0)
(
    fac_kenmwaarden_key
        NUMBER(10)
        CONSTRAINT fac_k_fac_kenmwaarden_key PRIMARY KEY,
    fac_kenmwaarden_module
        VARCHAR2(3)
        NOT_NULL(fac_kenmwaarden_module, fac_c_kenmwaarden_module),
    fac_kenmwaarden_refkey
        NUMBER(10),
    fac_kenmwaarden_niveau
        VARCHAR2(1)
        CONSTRAINT fac_c_fac_kenmwaarden_niveau CHECK(fac_kenmwaarden_niveau IS NOT NULL
               AND fac_kenmwaarden_niveau IN ('R','V','G','T','L','D','A','B','C','P')
                OR fac_kenmwaarden_niveau IS NULL),
    fac_kenmwaarden_kenmerk_key
        NUMBER(10),
    fac_kenmwaarden_waarde
        VARCHAR2(4000),
    fac_kenmwaarden_kenmerktype
        VARCHAR2(1)
        CONSTRAINT fac_c_fac_kenmwaarden_kenmtype  CHECK(fac_kenmwaarden_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l', 'B')),
    fac_kenmwaarden_isexpr
        VARCHAR2(1)
        DEFAULT 0
        CONSTRAINT fac_c_fac_kenmwaarden_isexpr CHECK(fac_kenmwaarden_isexpr IS NOT NULL
               AND fac_kenmwaarden_isexpr IN (0, 1)),
    prs_perslid_key
        NUMBER(10)
        CONSTRAINT fac_r_prs_perslid_key8 REFERENCES prs_perslid(prs_perslid_key),
        CONSTRAINT fac_c_prs_perslid_key1 CHECK(prs_perslid_key IS NOT NULL),
    CONSTRAINT fac_u_fac_kenmwaarden UNIQUE(fac_kenmwaarden_module, fac_kenmwaarden_refkey, fac_kenmwaarden_kenmerk_key, prs_perslid_key)
);

CREATE SEQUENCE fac_s_fac_kenmwaarden_key       MINVALUE 1;

/////////////////////////////////////////////////////////////////////////////////////////// PCHE#36077
ALTER TABLE prs_perslid ADD prs_perslid_terms_datum DATE;
ALTER TABLE prs_perslid ADD prs_perslid_terms_version VARCHAR2(200);

/////////////////////////////////////////////////////////////////////////////////////////// NYBU#38371
ALTER TABLE res_disc_params
  MODIFY res_disc_params_cancel_dagen NUMBER(3);

ALTER TABLE res_disc_params
  MODIFY res_disc_params_expire_dagen NUMBER(3);

/////////////////////////////////////////////////////////////////////////////////////////// HSLE#37750
CREATE VIEW res_v_udr_reserveringincl AS SELECT '' dummy FROM DUAL;
UPDATE fac_usrrap
   SET fac_usrrap_view_name='RES_V_UDR_RESERVERINGINCL'
 WHERE fac_usrrap_view_name='RES_V_UDR_RESERVERING';
UPDATE fac_usrrap
   SET fac_usrrap_info = 'Basisrapport voor reserveringsrapportages incl. voorzieningen'
     , fac_usrrap_omschrijving = 'UDR: Reserveringen-voorzieningen'
 WHERE fac_usrrap_omschrijving = 'UDR: Reserveringen';

INSERT INTO fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info, fac_functie_key, fac_usrrap_functie)
 SELECT 'UDR: Reserveringen','RES_V_UDR_RESERVERING','Basisrapport voor reserveringsrapportages', fac_functie_key, 32
   FROM fac_functie WHERE fac_functie_code='WEB_UDRMAN'
    AND NOT EXISTS (SELECT '' FROM fac_usrrap WHERE UPPER(fac_usrrap_view_name)='RES_V_UDR_RESERVERING');

/////////////////////////////////////////////////////////////////////////////////////////// UWVA#37540
ALTER TABLE res_ruimte ADD
  res_ruimte_begintijdblok
    NUMBER(5,2)
    CONSTRAINT res_c_ruimte_begintijdblok CHECK(res_ruimte_begintijdblok>=0 AND res_ruimte_begintijdblok<24);
ALTER TABLE res_ruimte ADD
  res_ruimte_eindtijdblok
    NUMBER(5,2)
    CONSTRAINT res_c_ruimte_eindtijdblok CHECK(res_ruimte_eindtijdblok>=0 AND res_ruimte_eindtijdblok<24);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#35094
UPDATE fac_menuitems SET fac_menuitems_image='fa-search' WHERE fac_menuitems_image='m_algemeen-zoeken.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-list-ul' WHERE fac_menuitems_image='m_overzichten-persoonlijk-mijn-lopende-zaken.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-check-square-o' WHERE fac_menuitems_image='m_overzichten-persoonlijk-mijn-fiatteringsverzoeken.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-exclamation-circle' WHERE fac_menuitems_image='m_acties-self-doe-een-melding.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-handshake-o' WHERE fac_menuitems_image='m_acties-self-registreer-een-bezoeker.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-user-circle-o' WHERE fac_menuitems_image='m_acties-self-reserveer-een-ruimte.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-shopping-cart' WHERE fac_menuitems_image='m_acties-self-doe-een-bestelling.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-wrench' WHERE fac_menuitems_image='m_acties-werk-lopende-meldingen.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-briefcase' WHERE fac_menuitems_image='m_acties-werk-lopende-opdrachten.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-users' WHERE fac_menuitems_image='m_acties-werk-bezoekers.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-file-text-o' WHERE fac_menuitems_image='m_overzichten-algemeen-contracten.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-circle-o' WHERE fac_menuitems_image='m_overzichten-algemeen-objecten.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-repeat' WHERE fac_menuitems_image='m_acties-werk-terugkerende-zaken.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-building-o' WHERE fac_menuitems_image='m_overzichten-algemeen-ruimtes.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-map-o' WHERE fac_menuitems_image='m_overzichten-algemeen-plattegronden.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-map-marker' WHERE fac_menuitems_image='m_algemeen-hier-ben-ik.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-comment-o' WHERE fac_menuitems_image='m_overzichten-persoonlijk-mijn-berichten.png';
UPDATE fac_menuitems SET fac_menuitems_image='fa-file-text' WHERE fac_menuitems_image='m_overzichten-algemeen-rapporten.png';

/////////////////////////////////////////////////////////////////////////////////////////// RWSN#38671
ALTER TABLE fac_usrrap
  ADD fac_usrrap_ratio NUMBER(1)
      DEFAULT 1 NOT NULL
   CONSTRAINT fac_c_fac_usrrap_ratio CHECK (fac_usrrap_ratio IN (0,1,2,3));

/////////////////////////////////////////////////////////////////////////////////////////// FSN#36125

-- Nu definitief de lcl's invullen
UPDATE fac_module
   SET fac_module_remark = 'lcl_module_' || fac_module_name;

/////////////////////////////////////////////////////////////////////////////////////////// FSN#36125
UPDATE fac_menu
   SET fac_menu_altlabel = 'lcl_menu_fac_custnotificaties'
 WHERE fac_menu_alturl = 'appl/mgt/fac_srtnotificatie.asp?cust=1';

/////////////////////////////////////////////////////////////////////////////////////////// FSN#38916
DEF_MENUENTRY(2, 99120, 'lcl_menu_fac_anytable', '', 'FAC', 'appl/mgt/user_tables.asp', 0, 0, 'WEB_FACFAC');

///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////




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

/////////////////////////////////////////////////////////////////////////////////////////// CLEANUP
ALTER TABLE ins_srtcontrole DROP COLUMN ins_srtcontrole_type;
ALTER TABLE cnt_factuurschema DROP COLUMN cnt_factuurschema_datum;
ALTER TABLE cnt_factuurschema DROP COLUMN cnt_factuurschema_referentie;
///////////////////////////////////////////////////////////////////////////////////////////
REGISTERONCE('$Id$')

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