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

COMMIT;

// Voor de nieuwe adm.systrackscriptId
#include "adm\adm_pac.src"

/////////////////////////////////////////////////////////////////////////////////////////// FSN#22666
ALTER TABLE ins_srtdiscipline ADD CONSTRAINT ins_c_ins_srtdiscipline_kk CHECK(ins_srtdiscipline_kostenklant IN (0,1,2));
ALTER TABLE ins_srtdiscipline MODIFY ins_srtdiscipline_kostenklant DEFAULT (0);

/////////////////////////////////////////////////////////////////////////////////////////// AAIT#27656
DEF_FAC_FUNCTIE2('WEB_CNTGO1', 'Backoffice:Contracten-goedk1', 'CNT',  0, 1, 0, 'Om contracten boven de eerste limiet goed te kunnen keuren');
DEF_FAC_FUNCTIE2('WEB_CNTGO2', 'Backoffice:Contracten-goedk2', 'CNT',  0, 1, 0, 'Om contracten boven de tweede limiet goed te kunnen keuren');
DEF_FAC_FUNCTIE2('WEB_CNTGO3', 'Backoffice:Contracten-goedk3', 'CNT',  0, 1, 0, 'Om contracten boven de derde limiet goed te kunnen keuren');

#define DEF_FAC_SRTNOT0(c, m, o, u, g, x) INSERT INTO fac_srtnotificatie (fac_srtnotificatie_code, fac_srtnotificatie_mode, fac_srtnotificatie_oms, fac_srtnotificatie_url, fac_srtnotificatie_groep, fac_srtnotificatie_xmlnode) VALUES (c, m, o, u, g, x)
DEF_FAC_SRTNOT0('CNTCPT', 1, 'Concept contract ##KEY## (##LEV##/##OMSCH##) is ingediend',               'cnt/cnt_contract.asp?cnt_key=', '0', 'contract');
DEF_FAC_SRTNOT0('CNTAPP', 1, 'Uw goedkeuring wordt verzocht voor contract ##KEY## (##LEV##/##OMSCH##)', 'cnt/cnt_contract.asp?cnt_key=', '0', 'contract');
DEF_FAC_SRTNOT0('CNTFIT', 1, 'Contract ##KEY## (##LEV##/##OMSCH##) is goedgekeurd',                     'cnt/cnt_contract.asp?cnt_key=', '0', 'contract');
DEF_FAC_SRTNOT0('CNTREJ', 9, 'Contract ##KEY## (##LEV##/##OMSCH##) is afgewezen',                       'cnt/cnt_contract.asp?cnt_key=', '0', 'contract');
DEF_FAC_SRTNOT0('CNTCLO', 1, 'Contract ##KEY## (##LEV##/##OMSCH##) is gesloten',                        'cnt/cnt_contract.asp?cnt_key=', '0', 'contract');
DEF_FAC_SRTNOT0('CNTSNT', 0, 'Contract ##KEY## is verzonden',                                           'cnt/cnt_contract.asp?cnt_key=', '0', 'contract');
DEF_FAC_SRTNOT0('CNTSNX', 0, 'Contract ##KEY## is niet verzonden',                                      'cnt/cnt_contract.asp?cnt_key=', '0', 'contract');

ALTER TABLE cnt_contract ADD cnt_contract_approved NUMBER(11,2);
ALTER TABLE cnt_contract ADD cnt_contract_teverzenden NUMBER(1);
ALTER TABLE cnt_contract MODIFY (cnt_contract_status DEFAULT NULL);
BEGIN
  adm.tryalter('TABLE cnt_contract DROP CONSTRAINT cnt_c_cnt_contract_status'); // Uit DB15to16
  adm.tryalter('TABLE cnt_contract DROP CONSTRAINT cnt_r_cnt_contract_status'); // Uit oude CNT_TAB.SRC
END;
/
ALTER TABLE cnt_contract ADD CONSTRAINT cnt_c_cnt_contract_status CHECK(cnt_contract_status IN (0,1,2,3));

ALTER TABLE faq_kenmerkwaarde DROP CONSTRAINT faq_r_faq_key;
ALTER TABLE faq_kenmerkwaarde ADD CONSTRAINT faq_r_faq_key
 FOREIGN KEY (fac_faq_key)  REFERENCES fac_faq(fac_faq_key) ON DELETE CASCADE;

/////////////////////////////////////////////////////////////////////////////////////////// PCHD#27790
ALTER TABLE fin_kenmerk ADD fin_kenmerk_type VARCHAR2(1)
 CONSTRAINT fin_c_fin_kenmerk_type CHECK (fin_kenmerk_type is not null and (fin_kenmerk_type IN( 'F', 'R')));

UPDATE fin_kenmerk SET fin_kenmerk_type='F' WHERE fin_kenmerk_type IS NULL;

CREATE_TABLE(fin_kenmerkfactregel,0)
    (fin_kenmerkfactregel_key
        NUMBER(10)
        CONSTRAINT fin_k_kenmerkfactregel_key PRIMARY KEY
    ,fin_factuurregel_key
        NUMBER(10)
        CONSTRAINT fin_r_fin_factuurregel_key REFERENCES fin_factuurregel(fin_factuurregel_key)
    ,fin_kenmerk_key
        NUMBER(10)
        CONSTRAINT fin_r_fin_kenmerk_key2 REFERENCES fin_kenmerk(fin_kenmerk_key)
    ,fin_kenmerkfactregel_waarde
        VARCHAR2(4000)
    ,fin_kenmerkfactregel_aanmaak
        DATE
        DEFAULT SYSDATE
        NOT_NULL(fin_kenmerkfactregel_aanmaak, fin_c_kenmerkfactregel_aanm)
    ,fin_kenmerkfactregel_verwijder
        DATE
        DEFAULT NULLDATUM,
    CONSTRAINT fin_u_kenmerkfactregel_key UNIQUE(fin_factuurregel_key, fin_kenmerk_key, fin_kenmerkfactregel_verwijder)
);
CREATE SEQUENCE fin_s_fin_kenmerkfactregel_key MINVALUE 1;

/////////////////////////////////////////////////////////////////////////////////////////// FSN#27787
INSERT INTO fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name,fac_usrrap_info, fac_functie_key)
 SELECT 'BEHEER: Autorisatiegroeprechten','FAC_V_RAP_GROEPRECHTEN2','Welke groepen hebben welke rechten?', fac_functie_key
   FROM fac_functie WHERE fac_functie_code='WEB_PRSSYS'
   AND NOT EXISTS (SELECT '' FROM fac_usrrap WHERE UPPER(fac_usrrap_view_name)='FAC_V_RAP_GROEPRECHTEN2');

/////////////////////////////////////////////////////////////////////////////////////////// FSN#27478
CREATE_TABLE(prs_bedrijfadres, 0) (
    prs_bedrijfadres_key
        NUMBER(10)
        CONSTRAINT prs_k_prs_bedrijfadres_key PRIMARY KEY,
    prs_bedrijf_key
        NUMBER(10)
        CONSTRAINT prs_r_prs_bedrijf_key6 REFERENCES prs_bedrijf(prs_bedrijf_key) ON DELETE CASCADE,
    prs_bedrijfadres_type
        VARCHAR2(1)
        CONSTRAINT prs_c_prs_bedrijfadrestype CHECK (prs_bedrijfadres_type IN ('O','B','C')),
    mld_typeopdr_key
        NUMBER(10) CONSTRAINT prs_r_mld_typeopdr_key REFERENCES mld_typeopdr(mld_typeopdr_key) ON DELETE CASCADE,
    prs_bedrijfadres_url
        VARCHAR2(512),
    prs_bedrijfadres_ordermode
        NUMBER(3)  DEFAULT 0,
    prs_bedrijfadres_certificate
        VARCHAR2(255),
    prs_bedrijfadres_xsl
        VARCHAR2(256),
    prs_bedrijfadres_ext
        VARCHAR2(10)
);

CREATE SEQUENCE prs_s_prs_bedrijfadres_key     MINVALUE 1;

CREATE INDEX prs_i_prs_bedrijfadres1 on prs_bedrijfadres(prs_bedrijf_key);
CREATE UNIQUE INDEX prs_i_prs_bedrijfadres2 on prs_bedrijfadres(prs_bedrijf_key, prs_bedrijfadres_type, mld_typeopdr_key);

CREATE_TRIGGER(prs_t_prs_bedrijfadres_B_I)
BEFORE INSERT ON prs_bedrijfadres
FOR EACH ROW
BEGIN
    UPDATE_PRIMARY_KEY(prs_bedrijfadres_key, prs_s_prs_bedrijfadres_key);
END;
/
INSERT INTO prs_bedrijfadres (prs_bedrijf_key, prs_bedrijfadres_type, prs_bedrijfadres_url, prs_bedrijfadres_ordermode, prs_bedrijfadres_certificate, prs_bedrijfadres_xsl)
     SELECT prs_bedrijf_key, 'O', prs_bedrijf_mldorder_adres, prs_bedrijf_order_mode, prs_bedrijf_order_certificate, prs_bedrijf_XSL
       FROM prs_bedrijf
      WHERE prs_bedrijf_mldorder_adres IS NOT NULL;

INSERT INTO prs_bedrijfadres (prs_bedrijf_key, prs_bedrijfadres_type, prs_bedrijfadres_url, prs_bedrijfadres_ordermode, prs_bedrijfadres_certificate, prs_bedrijfadres_xsl)
     SELECT prs_bedrijf_key, 'B', prs_bedrijf_order_adres, prs_bedrijf_order_mode, prs_bedrijf_order_certificate, prs_bedrijf_XSL
       FROM prs_bedrijf
      WHERE prs_bedrijf_order_adres IS NOT NULL;

/////////////////////////////////////////////////////////////////////////////////////////// HAYG#27870
ALTER TABLE ins_disc_params MODIFY (ins_disc_params_type DEFAULT 0);

UPDATE ins_disc_params
   SET ins_disc_params_type = 0
 WHERE ins_disc_params_type IS NULL;

/////////////////////////////////////////////////////////////////////////////////////////// UWVA#27881
ALTER TABLE bes_srtdeel ADD bes_srtdeel_details_loc VARCHAR2(255);
ALTER TABLE bes_disc_params MODIFY bes_disc_params_punchouturl VARCHAR2(1024);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#27997
UPDATE prs_kostenplaats
   SET prs_kostenplaats_extern = 0
 WHERE prs_kostenplaats_extern IS NULL;

/////////////////////////////////////////////////////////////////////////////////////////// FSN#27532
ALTER TABLE fac_srtnotificatie ADD fac_srtnotificatie_delay NUMBER(4);
// defaultwaarden
UPDATE fac_srtnotificatie SET fac_srtnotificatie_delay = 0;
UPDATE fac_srtnotificatie
   SET fac_srtnotificatie_delay = 60
 WHERE fac_srtnotificatie_code IN ('BESUPD', 'MLDUPD', 'ORDUPD', 'RESNEW', 'RESUPD', 'CNTNEW', 'CNTUPD', 'ALGLUP', 'ALGGUP', 'ALGVUP', 'ALGRUP', 'FINNEW', 'FINUPD');

/////////////////////////////////////////////////////////////////////////////////////////// AAIT#27946
ALTER TABLE fac_bookmark ADD fac_bookmark_refreshtime NUMBER(10);

/////////////////////////////////////////////////////////////////////////////////////////// FSN#28134
UPDATE fac_api
   SET fac_api_viewmapping_json = '[{"req": "Delen", "node": "deel", "view": "ins_v_api_delen","filter":{"deel":"deel","plaats":"plaats","plaatstype":"plaatstype","soortdeel":"soortdeel","soortgroep":"soortgroep","discipline":"discipline"},"limit":100}]'
 WHERE fac_api_name = 'INS';

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

/////////////////////////////////////////////////////////////////////////////////////////// CLEANUP
DROP VIEW prs_v_lopendezaken;
ALTER TABLE prs_bedrijf DROP COLUMN prs_bedrijf_offerte_adres;
ALTER TABLE prs_bedrijf DROP COLUMN prs_bedrijf_contract_adres;

--ALTER TABLE prs_bedrijf DROP COLUMN prs_bedrijf_mldorder_adres;
--ALTER TABLE prs_bedrijf DROP COLUMN prs_bedrijf_order_adres;
--ALTER TABLE prs_bedrijf DROP COLUMN prs_bedrijf_order_mode;
--ALTER TABLE prs_bedrijf DROP COLUMN prs_bedrijf_order_certificate;
--ALTER TABLE prs_bedrijf DROP COLUMN prs_bedrijf_XSL;

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