Files
Database/_UP/DB17to18.src
Maykel Geerdink 83be7afd9d FSN#26422: S("can_selfapprove") bedrag laten zijn ipv. boolean.
svn path=/Database/trunk/; revision=17851
2013-05-06 10:20:58 +00:00

687 lines
34 KiB
Plaintext

/* DB17TO18.SRC
* Update script van Facilitor schema
* $Revision$
* $Id$
*/
#include "prologue.inc"
COMMIT;
/////////////////////////////////////////////////////////////////////////////////////////// UWVA#25509
/* Dit doen we eerst, voordat er door DDL zaken invaligd kunenn worden */
UPDATE bes_bestelling b
SET bes_bestelling_status = 1
WHERE b.bes_bestelling_status <> 1 /* bestelling niet afgewezen */
AND EXISTS
(SELECT *
FROM bes_bestelling_item bi,
bes_bestelopdr_item boi,
bes_bestelopdr bo
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_bestelopdr_item_key =
boi.bes_bestelopdr_item_key
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.bes_bestelopdr_status = 1); /* opdracht wel afgewezen */
UPDATE bes_bestelling b
SET bes_bestelling_status = 6
WHERE b.bes_bestelling_status <> 6 /* bestelling niet geleverd */
AND EXISTS
(SELECT *
FROM bes_bestelling_item bi,
bes_bestelopdr_item boi,
bes_bestelopdr bo
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_bestelopdr_item_key =
boi.bes_bestelopdr_item_key
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.bes_bestelopdr_status = 6); /* opdracht wel geleverd */
/////////////////////////////////////////////////////////////////////////////////////////// PNBR#24995
ALTER TABLE mld_stdmelding ADD mld_stdmelding_directklaar NUMBER(1);
/////////////////////////////////////////////////////////////////////////////////////////// UWVA#25063
ALTER TABLE res_artikel ADD res_artikel_minimum NUMBER(3);
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25320
// allerallerlaatste keer
UPDATE fac_setting SET fac_setting_name = LOWER(fac_setting_name);
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25499
UPDATE fac_menuitems SET fac_menuitems_url='appl/ins/ins_srtdeel_search.asp'
WHERE fac_menuitems_url='appl/ins/ins_srtdeel_search';
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25818
DELETE
FROM fac_locale_xref
WHERE fac_locale_xref_filepath LIKE '/%'; // Canonieke naam is zonder / vooraan
/////////////////////////////////////////////////////////////////////////////////////////// AAEN#25223
ALTER TABLE prs_perslid ADD prs_perslid_apikey VARCHAR2(128);
-- Er is nu een bescheiden compatibiliteitsprobleem indien er meerder users waren
-- met verschillende API-keys. Hoe moeten we dat oplossen? Dat kan niet.
-- Signaleer als dat zo is
SELECT 'OR'||'A-xx persoon heeft minstens 2 APIs, dit moet voor de upgrade worden opgelost; perslid_key='||prs_perslid_key,
MAX (fac_api_apikey) api,
COUNT ( * )
FROM fac_api a
GROUP BY prs_perslid_key
HAVING COUNT ( * ) > 1;
UPDATE prs_perslid p
SET prs_perslid_apikey =
(SELECT MAX (fac_api_apikey)
FROM fac_api a
WHERE a.prs_perslid_key = p.prs_perslid_key)
WHERE prs_perslid_apikey IS NULL;
-- plus definities uit fac_ini TODO: als die definitiever zijn die hier opnemen
-- Ik ruim ze uit eerdere runs nog even op (@development)
alter table fac_api modify fac_api_apikey null;
DELETE FROM fac_api WHERE fac_api_name IN (SELECT fac_module_name FROM fac_module);
-- ALG
INSERT INTO fac_api (fac_api_name, fac_api_filepath, fac_api_loglevel, fac_api_viewmapping_json) VALUES
('ALG', 'appl/api/api_soap.asp', 0,
'[{"req": "Regios", "node": "regio", "view": "alg_v_api_regios","filter":{"regioomschrijving":"regioomschrijving"},"limit":75},'
||'{"req": "Districten", "node": "district", "view": "alg_v_api_districten","filter":{"regioomschrijving":"regioomschrijving","districtomschrijving":"districtomschrijving"},"limit":75},'
||'{"req": "Locaties", "node": "locatie", "view": "alg_v_api_locaties","filter":{"regioomschrijving":"regioomschrijving","districtomschrijving":"districtomschrijving","locatiecode":"locatiecode","locatieomschrijving":"locatieomschrijving"},"limit":150},'
||'{"req": "Gebouwen", "node": "gebouw", "view": "alg_v_api_gebouwen","filter":{"locatiecode":"locatiecode","gebouwcode":"gebouwcode","gebouwnaam":"gebouwnaam","soortgebouw":"soortgebouw"},"limit":75},'
||'{"req": "Verdiepingen", "node": "verdieping", "view": "alg_v_api_verdiepingen","filter":{"locatiecode":"locatiecode","gebouwcode":"gebouwcode","verdiepingcode":"verdiepingcode"},"limit":75},'
||'{"req": "Ruimten", "node": "ruimte", "view": "alg_v_api_ruimten","filter":{"locatiecode":"locatiecode","gebouwcode":"gebouwcode","verdiepingcode":"verdiepingcode","ruimtecode":"ruimtecode","soortruimte":"soortruimte"},"limit":150}]'
);
-- BES
INSERT INTO fac_api (fac_api_name, fac_api_filepath, fac_api_loglevel, fac_api_viewmapping_json) VALUES
('BES', 'appl/api/api_soap.asp', 0,
'[{"req": "Bestellingen", "node": "bestelling", "view": "bes_v_api_bestellingen","filter":{},"limit":75},'
||'{"req": "Bestelopdrachten", "node": "bestelopdracht", "view": "bes_v_api_bestelopdrachten","filter":{},"limit":75}]'
);
-- BEZ
INSERT INTO fac_api (fac_api_name, fac_api_filepath, fac_api_loglevel, fac_api_viewmapping_json) VALUES
('BEZ', 'appl/api/api_soap.asp', 0,
'[{"req": "Afspraken", "node": "afspraak", "view": "bez_v_api_afspraken","filter":{},"limit":75}]'
);
-- CNT
INSERT INTO fac_api (fac_api_name, fac_api_filepath, fac_api_loglevel, fac_api_viewmapping_json) VALUES
('CNT', 'appl/api/api_soap.asp', 0,
'[{"req": "Contracten", "node": "contract", "view": "cnt_v_api_contracten","filter":{},"limit":75}]'
);
-- FIN
INSERT INTO fac_api (fac_api_name, fac_api_filepath, fac_api_loglevel, fac_api_viewmapping_json) VALUES
('FIN', 'appl/api/api_soap.asp', 0,
'[{"req": "Facturen", "node": "factuur", "view": "fin_v_api_facturen","filter":{},"limit":75}]'
);
-- INS
INSERT INTO fac_api (fac_api_name, fac_api_filepath, fac_api_loglevel, fac_api_viewmapping_json) VALUES
('INS', 'appl/api/api_soap.asp', 0,
'[{"req": "Delen", "node": "deel", "view": "ins_v_api_delen","filter":{},"limit":75}]'
);
-- MLD
INSERT INTO fac_api (fac_api_name, fac_api_filepath, fac_api_loglevel, fac_api_viewmapping_json) VALUES
('MLD', 'appl/api/api_soap.asp', 0,
'[{"req": "Meldingen", "node": "melding", "view": "mld_v_api_meldingen","filter":{},"limit":75},'
||'{"req": "Opdrachten", "node": "opdracht", "view": "mld_v_api_opdrachten","filter":{},"limit":75}]'
);
-- PRS
INSERT INTO fac_api (fac_api_name, fac_api_filepath, fac_api_loglevel, fac_api_viewmapping_json) VALUES
('PRS', 'appl/api/api_soap.asp', 0,
'[{"req": "Afdelingen", "node": "afdeling", "view": "prs_v_api_afdelingen","filter":{},"limit":75},'
||'{"req": "Personen", "node": "persoon", "view": "prs_v_api_personen","filter":{},"limit":75}]'
);
-- RES
INSERT INTO fac_api (fac_api_name, fac_api_filepath, fac_api_loglevel, fac_api_viewmapping_json) VALUES
('RES', 'appl/api/api_soap.asp', 0,
'[{"req": "Reserveringen", "node": "reservering", "view": "res_v_api_reserveringen","filter":{"locatiecode":"locatiecode","gebouwcode":"gebouwcode","verdiepingcode":"verdiepingcode","ruimtecode":"ruimtecode", "catalogus": "catalogus", "begindatumtijd": {"colName": "van", "operand":"GT","datatype":"date"}, "einddatumtijd": {"colName": "tot", "operand":"LT", "datatype":"date"}},"limit":75},'
||'{"req": "Voorzieningen", "node": "voorziening", "view": "res_v_api_voorzieningen","filter":{"locatiecode":"locatiecode","gebouwcode":"gebouwcode","verdiepingcode":"verdiepingcode", "catalogus": "catalogus"},"limit":75}]'
);
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25100
DEF_MENUITEM(0, 'lcl_menu_fe_marktplaats' , '', 'MRK', 'appl/mrk/mrk_search.asp?urole=fe', 0, 0, 'WEB_MRKUSE', 'R', '0');
DEF_MENUITEM(1, 'lcl_menu_mrk_bo_overview' , '', 'MRK', 'appl/mrk/mrk_search.asp?urole=bo', 0, 0, 'WEB_MRKBOF', 'R', '0');
/////////////////////////////////////////////////////////////////////////////////////////// AAIT#25547
_FAC_MODULE('FAQ','Kennisbank')
UPDATE fac_functie SET fac_functie_module='FAQ' WHERE fac_functie_module='FAC' AND fac_functie_code LIKE 'WEB_FAQ%';
UPDATE fac_menuitems SET fac_menuitems_module='FAQ' WHERE fac_menuitems_module='FAC' AND fac_menuitems_label LIKE 'lcl_menu_faq_%';
UPDATE fac_menuitems SET fac_functie_key=(SELECT fac_functie_key FROM fac_functie WHERE fac_functie_code = 'WEB_FAQFOF') WHERE fac_menuitems_label='lcl_menu_faq_kennisbank_fo';
DEF_FAC_FUNCTIE2('WEB_FAQMGT', 'Modulebeheer:Kennisbank', 'FAQ', 0, 0, 2, 'Modulebeheer');
DEF_FAC_FUNCTIE2('WEB_FAQMSU', 'Supergebruiker:Kennisbank', 'FAQ', 0, 0, 2, 'Supergebruiker');
// Geef PRS rechten op deze nieuwe functie
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)
SELECT g.fac_groep_key,
g.fac_gebruiker_prs_level_write,
g.fac_gebruiker_prs_level_read,
g.fac_gebruiker_alg_level_write,
g.fac_gebruiker_alg_level_read,
f.fac_functie_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_PRSSYS')
AND f.fac_functie_code = 'WEB_FAQMGT'
AND (g.fac_groep_key, f.fac_functie_key) NOT IN
(SELECT fac_groep_key, fac_functie_key FROM fac_groeprechten);
DEF_MENUITEM(2, 'lcl_menu_faq_kenmerk' , '', 'FAQ', 'appl/facmgtVB/faq_kenmerkgrid.asp', 0, 0, 'WEB_FAQMGT', 'W', '1');
DEF_MENUITEM(2, 'lcl_menu_faq_kenmerkdomeinen' , '', 'FAQ', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=FAQ', 0, 0, 'WEB_PRSSYS', 'W', '1');
DEF_MENUITEM(2, 'lcl_menu_faq_setting' , '', 'FAQ', 'appl/fac/fac_setting_search.asp?module=FAQ', 0, 0, 'WEB_PRSSYS', 'W', '0');
MENU_INSKOP_AFTER('lcl_facmgt_faq', 'lcl_menu_bez_kenmerkdomeinen', 2, 4) ;
MENU_INS_AFTERKOP('lcl_menu_faq_kenmerk', 'lcl_facmgt_faq', 2) ;
MENU_INS_AFTER('lcl_menu_faq_kenmerkdomeinen', 'lcl_menu_faq_kenmerk', 2) ;
CREATE SEQUENCE faq_s_faq_kenmerk_key MINVALUE 1;
CREATE SEQUENCE faq_s_faq_kenmerkwaarde_key MINVALUE 1;
CREATE_TABLE(faq_kenmerk,0)
(
faq_kenmerk_key NUMBER(10)
CONSTRAINT faq_k_faq_kenmerk_key PRIMARY KEY,
faq_kenmerk_volgnr NUMBER(3),
faq_kenmerk_omschrijving VARCHAR2(50),
faq_kenmerk_upper VARCHAR2(50),
faq_kenmerk_hint VARCHAR2(255),
faq_kenmerk_default VARCHAR2(4000),
faq_kenmerk_dimensie VARCHAR2(10),
faq_kenmerk_kenmerktype VARCHAR2(1)
CONSTRAINT faq_c_faq_kenmerk_type1
CHECK(faq_kenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l')),
faq_kenmerk_systeem NUMBER(1),
faq_kenmerk_toonbaar NUMBER(1),
faq_kenmerk_uniek NUMBER(1),
faq_kenmerk_regexp VARCHAR2(255),
faq_kenmerk_verplicht NUMBER(1),
faq_kenmerk_lengte NUMBER(4),
faq_kenmerk_dec NUMBER(2),
faq_kenmerk_nmin NUMBER(10),
faq_kenmerk_nmax NUMBER(10),
fac_kenmerkdomein_key NUMBER(10)
CONSTRAINT faq_r_kenmerkdomein_key1 REFERENCES fac_kenmerkdomein(fac_kenmerkdomein_key),
faq_kenmerk_aanmaak DATE
DEFAULT SYSDATE
NOT_NULL(faq_kenmerk_aanmaak, faq_c_faq_kenmerk_aanmaak),
faq_kenmerk_verwijder DATE
DEFAULT NULLDATUM
);
CREATE_TABLE(faq_kenmerkwaarde,0)
(
faq_kenmerkwaarde_key NUMBER(10)
CONSTRAINT faq_k_faq_kenmerkwaarde_key PRIMARY KEY,
fac_faq_key NUMBER(10)
CONSTRAINT faq_r_faq_key REFERENCES fac_faq(fac_faq_key),
faq_kenmerk_key NUMBER(10),
faq_kenmerkwaarde_waarde VARCHAR2(4000),
faq_kenmerkwaarde_aanmaak DATE
DEFAULT SYSDATE
NOT_NULL(faq_kenmerkwaarde_aanmaak, faq_c_faq_kenmerkwaarde_aanm),
faq_kenmerkwaarde_verwijder DATE
DEFAULT NULLDATUM,
CONSTRAINT faq_u_faq_kenmerkwaarde_key UNIQUE(fac_faq_key, faq_kenmerk_key, faq_kenmerkwaarde_verwijder)
);
ALTER TABLE fac_faq ADD fac_faq_hint VARCHAR2(1000);
CREATE_TABLE(fac_imp_faq, 0) (
fac_faq_question VARCHAR2 (4000),
fac_faq_answer VARCHAR2 (4000),
fac_faq_level VARCHAR2 (30),
ins_discipline_key NUMBER(10),
mld_stdmelding_key NUMBER(10),
fac_faq_source VARCHAR2 (60),
fac_faq_url VARCHAR2 (250),
fac_faq_datum DATE,
fac_faq_lang VARCHAR2 (3),
fac_faq_hint VARCHAR2 (1000)
);
INSERT INTO fac_import_app
(fac_import_app_code, fac_import_app_oms, fac_functie_key)
SELECT 'FAQ', 'FIP: Kennisbank', fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_PRSSYS';
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25688
DROP INDEX bez_i_bez_afspraak_bez1;
DROP INDEX bez_i_bez_afspraak_bez2;
CREATE INDEX bez_i_bez_afspraak_bez5 ON bez_afspraak(bez_afspraak_contact_key, bez_afspraak_datum);
CREATE INDEX bez_i_bez_afspraak_bez6 ON bez_afspraak(bez_afspraak_host_key, bez_afspraak_datum);
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25689
ALTER TABLE fac_locale DROP CONSTRAINT fac_u_fac_locale;
ALTER TABLE fac_locale ADD CONSTRAINT fac_u_fac_locale
UNIQUE(fac_locale_dialect_key, fac_locale_lang, fac_localeitems_key, fac_locale_kolomnaam, fac_locale_kolomkeyval);
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25479
CREATE INDEX fin_i_fin_factuurregel1 ON fin_factuurregel(fin_factuur_key);
CREATE INDEX fin_i_fin_factuurnote1 ON fin_factuur_note(fin_factuur_key);
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25754
ALTER TABLE fac_imp_ins ADD ins_kenmerkwaarde6 VARCHAR2 (255);
ALTER TABLE fac_imp_ins ADD ins_kenmerkwaarde7 VARCHAR2 (255);
ALTER TABLE fac_imp_ins ADD ins_kenmerkwaarde8 VARCHAR2 (255);
ALTER TABLE fac_imp_ins ADD ins_kenmerkwaarde9 VARCHAR2 (255);
ALTER TABLE fac_imp_ins ADD ins_kenmerkwaarde10 VARCHAR2 (255);
ALTER TABLE fac_imp_ins ADD ins_kenmerkwaarde11 VARCHAR2 (255);
ALTER TABLE fac_imp_ins ADD ins_kenmerkwaarde12 VARCHAR2 (255);
ALTER TABLE fac_imp_ins ADD ins_kenmerkwaarde13 VARCHAR2 (255);
ALTER TABLE fac_imp_ins ADD ins_kenmerkwaarde14 VARCHAR2 (255);
ALTER TABLE fac_imp_ins ADD ins_kenmerkwaarde15 VARCHAR2 (255);
ALTER TABLE fac_imp_ins ADD ins_kenmerkwaarde16 VARCHAR2 (255);
ALTER TABLE fac_imp_ins ADD ins_kenmerkwaarde17 VARCHAR2 (255);
ALTER TABLE fac_imp_ins ADD ins_kenmerkwaarde18 VARCHAR2 (255);
ALTER TABLE fac_imp_ins ADD ins_kenmerkwaarde19 VARCHAR2 (255);
ALTER TABLE fac_imp_ins ADD ins_kenmerkwaarde20 VARCHAR2 (255);
/////////////////////////////////////////////////////////////////////////////////////////// UWVA#25755
ALTER TABLE mld_melding ADD mld_melding_accepttijd NUMBER(4,2);
-- Het blijkt dat fac geinvalideerd is geraakt door iets van bovenstaande. Helpt dit?
ALTER PACKAGE fac COMPILE;
-- Dilemma, definitiekwestie.
-- Het onbekende verleden bevriezen met de kennis van nu, of leeg laten?
-- De eerste optie doet recht aan de definitie van nu, en bevriest voor later.
ALTER TRIGGER mld_t_mld_melding_b_iu DISABLE;
UPDATE mld_melding m
SET mld_melding_accepttijd = (SELECT mld_stdmelding_urgentie
FROM mld_stdmelding s
WHERE s.mld_stdmelding_key=m.mld_stdmelding_key)
WHERE mld_melding_accepttijd IS NULL;
ALTER TRIGGER mld_t_mld_melding_B_IU ENABLE;
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25791
DEF_MENUITEM(1, 'lcl_menu_prs_browser' , '', 'ALG', 'appl/prs/prs_afdn_search.asp', 0, 0, 'WEB_PRSUSE', 'R', '1');
MENU_INS_AFTER( 'lcl_menu_prs_browser', 'lcl_menu_prs_bedrijf_intern', 2);
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25849
ALTER TABLE prs_perslid ADD prs_perslid_options VARCHAR2(4000);
/////////////////////////////////////////////////////////////////////////////////////////// UWVA#24389
DECLARE
CURSOR c1 IS
SELECT bes_srtdeel_nr,
bes_srtgroep_key,
prs_bedrijf_key,
bes_srtdeel_verwijder,
COUNT ( * )
FROM bes_srtdeel
GROUP BY bes_srtdeel_nr,
bes_srtgroep_key,
prs_bedrijf_key,
bes_srtdeel_verwijder
HAVING COUNT ( * ) > 1;
r1 c1%ROWTYPE;
CURSOR c2( srtdeel_nr VARCHAR2
, srtgroep_key NUMBER
, bedrijf_key NUMBER
, vdatum DATE
) IS
SELECT S.bes_srtdeel_verwijder + NUMTODSINTERVAL(rownum-1,'SECOND') d1
FROM bes_srtdeel S
WHERE S.bes_srtdeel_nr = srtdeel_nr
AND S.bes_srtgroep_key = srtgroep_key
AND S.prs_bedrijf_key = bedrijf_key
AND S.bes_srtdeel_verwijder = vdatum
FOR UPDATE;
r2 c2%ROWTYPE;
CURSOR c3( srtdeel_nr VARCHAR2
, srtgroep_key NUMBER
, bedrijf_key NUMBER
) IS
SELECT S.bes_srtdeel_key
, (SELECT NVL(MAX(1),0)
FROM bes_bestelling_item B
WHERE B.bes_srtdeel_key = S.bes_srtdeel_key
) besteld
FROM bes_srtdeel S
WHERE S.bes_srtdeel_nr = srtdeel_nr
AND S.bes_srtgroep_key = srtgroep_key
AND S.prs_bedrijf_key = bedrijf_key
AND S.bes_srtdeel_verwijder IS NULL
ORDER BY besteld DESC, S.bes_srtdeel_aanmaak DESC;
r3 c3%ROWTYPE;
vdate1 date;
vdate2 date;
aantal number;
prfkey number;
BEGIN
/* Lege artikelnr met default vullen */
DBMS_OUTPUT.put_line ('Artikelnr vullen:');
UPDATE bes_srtdeel
SET bes_srtdeel_nr = 'Artikel '||bes_srtdeel_key
WHERE bes_srtdeel_nr IS NULL;
/* Niet verwijderde artikelen naar 1 artikelnummer verplaatsen */
OPEN c1;
LOOP
FETCH c1 INTO r1;
EXIT WHEN c1%NOTFOUND;
IF r1.bes_srtdeel_verwijder IS NULL
THEN
DBMS_OUTPUT.put_line ('>Artikelnr: ' || r1.bes_srtdeel_nr);
aantal := 0;
FOR r3 in c3( r1.bes_srtdeel_nr
, r1.bes_srtgroep_key
, r1.prs_bedrijf_key
)
LOOP
IF aantal = 0
THEN
prfkey := r3.bes_srtdeel_key;
DBMS_OUTPUT.put_line (aantal||'# '||r3.bes_srtdeel_key);
ELSE
/* Omhangen van artikel in bestel-item */
DBMS_OUTPUT.put_line (aantal||'# '||r3.bes_srtdeel_key ||'-->'||prfkey);
UPDATE bes_bestelling_item
SET bes_srtdeel_key = prfkey
WHERE bes_srtdeel_key = r3.bes_srtdeel_key;
/* Verwijder het niet meer gebruikte artikel */
DBMS_OUTPUT.put_line ('Verwijder: '||r3.bes_srtdeel_key);
UPDATE bes_srtdeel
SET bes_srtdeel_verwijder = sysdate
WHERE bes_srtdeel_key = r3.bes_srtdeel_key;
END IF;
aantal := aantal + 1;
END LOOP;
END IF;
END LOOP;
CLOSE c1;
/* verwijderdatum artikelen uniek maken */
OPEN c1;
LOOP
FETCH c1 INTO r1;
EXIT WHEN c1%NOTFOUND;
IF r1.bes_srtdeel_verwijder IS NOT NULL
THEN
FOR r2 IN c2( r1.bes_srtdeel_nr
, r1.bes_srtgroep_key
, r1.prs_bedrijf_key
, r1.bes_srtdeel_verwijder
)
LOOP
vdate1 := r2.d1;
vdate2 := r1.bes_srtdeel_verwijder;
DBMS_OUTPUT.put_line ('>Wijzig verwijderdatum: ' ||to_char(vdate2, 'dd-mm-yyyy hh24:mi:ss')
||'-->' ||to_char(vdate1, 'dd-mm-yyyy hh24:mi:ss'));
UPDATE bes_srtdeel
SET bes_srtdeel_verwijder = vdate1
WHERE CURRENT OF c2;
END LOOP;
END IF;
END LOOP;
CLOSE c1;
END;
/
ALTER TABLE bes_srtdeel MODIFY bes_srtdeel_nr NOT_NULL(bes_srtdeel_nr, bes_c_bes_srtdeel_nr);
CREATE UNIQUE INDEX bes_i_bes_srtdeel2 ON bes_srtdeel(bes_srtdeel_nr, prs_bedrijf_key, bes_srtgroep_key, bes_srtdeel_verwijder);
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25766
CREATE_TABLE(fac_imp_inspectie, 0) (
ins_discipline_omschrijving VARCHAR2 (30),
ins_srtgroep_omschrijving VARCHAR2 (60),
ins_srtdeel_code VARCHAR2 (10),
ins_srtcontrole_omschrijving VARCHAR2 (60),
ins_srtcontrole_info VARCHAR2 (320),
ins_srtcontrole_periode VARCHAR2 (4)
);
INSERT INTO fac_import_app
(fac_import_app_code, fac_import_app_oms, fac_functie_key)
SELECT 'INSPECTIE', 'FIP: 9-Aanvullen van inspectiedefinities', fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_PRSSYS';
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25873
ALTER TABLE fac_usrgraph ADD fac_usrgraph_options VARCHAR2(4000);
/////////////////////////////////////////////////////////////////////////////////////////// UWVA#24148
CREATE_TABLE(mld_behandelgroep,0)
(
mld_behandelgroep_key
NUMBER(10)
CONSTRAINT mld_k_behandelgroep_key PRIMARY KEY,
mld_behandelgroep_naam
VARCHAR2(30)
NOT_NULL(mld_behandelgroep_naam, mld_c_behandelgroep_naam),
mld_behandelgroep_oms
VARCHAR2(1000),
CONSTRAINT mld_u_behandelgroep_naam UNIQUE (mld_behandelgroep_naam)
);
ALTER TABLE mld_disc_params
ADD mld_behandelgroep_key
NUMBER(10) CONSTRAINT mld_r_behandelgroep_key1 REFERENCES mld_behandelgroep(mld_behandelgroep_key);
CREATE SEQUENCE mld_s_mld_behandelgroep_key MINVALUE 1;
DEF_MENUITEM(2, 'lcl_menu_mld_behandelgroep' , '', 'MLD', 'appl/facmgtVB/mld_behandelgroepgrid.asp', 0, 0, 'WEB_MLDMGT', 'W', '1');
MENU_INS_AFTER( 'lcl_menu_mld_behandelgroep', 'lcl_menu_mld_stdmeldinggroep', 2);
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25900
CREATE INDEX mld_i_mld_melding_object2 ON mld_melding_object(ins_deel_key, mld_melding_key);
///////////////////////////////////////////////////////////////////////////////////////////
UPDATE fac_import_app SET fac_import_app_oms = 'FIP: 6-Aanvullen objecten'
WHERE fac_import_app_code = 'INS';
/////////////////////////////////////////////////////////////////////////////////////////// AANX#25939
ALTER TABLE mld_typeopdr ADD mld_typeopdr_contract NUMBER(1) DEFAULT (2)
CONSTRAINT mld_c_mld_typeopdr_contract CHECK(mld_typeopdr_contract IN (0,2,3));
/////////////////////////////////////////////////////////////////////////////////////////// NYBU#25763
ALTER TABLE res_ruimte ADD res_ruimte_prijs_dag NUMBER(7,2);
ALTER TABLE res_ruimte ADD res_ruimte_prijsfactor_intern NUMBER(5,3);
ALTER TABLE res_rsv_ruimte ADD res_rsv_ruimte_korting NUMBER(9,2)
CONSTRAINT res_c_res_rsv_ruimte_korting CHECK(res_rsv_ruimte_korting >= 0);
ALTER TABLE prs_kostenplaats ADD prs_kostenplaats_extern NUMBER(1) DEFAULT 0;
/////////////////////////////////////////////////////////////////////////////////////////// FSN#26014
CREATE INDEX bes_i_bes_bestelling13 ON bes_bestelling (bes_bestelling_retourvan_key);
/////////////////////////////////////////////////////////////////////////////////////////// SUTF#26060
CREATE_TABLE(prs_kostenplaatsdisc, 0) (
prs_kostenplaatsdisc_key
NUMBER(10) PRIMARY KEY,
prs_kostenplaats_key
NUMBER(10)
CONSTRAINT prs_r_prs_kostenplaats_key4 REFERENCES prs_kostenplaats(prs_kostenplaats_key) ON DELETE CASCADE,
ins_discipline_key
NUMBER(10)
REFERENCES ins_tab_discipline(ins_discipline_key) ON DELETE CASCADE,
prs_kostenplaatsdisc_limiet
NUMBER(8)
NOT NULL
);
CREATE SEQUENCE prs_s_prs_kostenplaatsdisc_key MINVALUE 1;
CREATE_TRIGGER(prs_t_prs_kostenpltsdisc_B_IU)
BEFORE INSERT OR UPDATE ON prs_kostenplaatsdisc
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_kostenplaatsdisc_key, prs_s_prs_kostenplaatsdisc_key);
END;
/
CREATE UNIQUE INDEX prs_i_prs_kostenplaatsdisc1 ON prs_kostenplaatsdisc (prs_kostenplaats_key, ins_discipline_key);
/////////////////////////////////////////////////////////////////////////////////////////// FSN#26123
UPDATE fac_functie SET fac_functie_groep = 0
WHERE fac_functie_code IN ('WEB_CADALG', 'WEB_CADPRS', 'WEB_CADOBJ', 'WEB_CADMLD', 'WEB_CADCNT', 'WEB_CADSCH', 'WEB_CADSLE');
/////////////////////////////////////////////////////////////////////////////////////////// AAES#25942
ALTER TABLE fac_imp_onrgoed2 ADD prs_afdeling_naam VARCHAR2(60 CHAR);
ALTER TABLE fac_imp_onrgoed2 ADD prs_ruimteafdeling_bezetting NUMBER(8,5);
ALTER TABLE fac_imp_onrgoed2 ADD alg_kenmerkwaarde1 VARCHAR2(255);
ALTER TABLE fac_imp_onrgoed2 ADD alg_kenmerkwaarde2 VARCHAR2(255);
ALTER TABLE fac_imp_onrgoed2 ADD alg_kenmerkwaarde3 VARCHAR2(255);
ALTER TABLE fac_imp_onrgoed2 ADD alg_kenmerkwaarde4 VARCHAR2(255);
ALTER TABLE fac_imp_onrgoed2 ADD alg_kenmerkwaarde5 VARCHAR2(255);
/////////////////////////////////////////////////////////////////////////////////////////// FSN#26109
INSERT INTO fac_menuitems (fac_menuitems_groep, fac_menuitems_label, fac_menuitems_oms, fac_menuitems_module, fac_menuitems_url, fac_menuitems_srtdisc, fac_menuitems_disc, fac_functie_key, fac_menuitems_rw, fac_menuitems_default)
SELECT 0, 'lcl_menu_res_fe_1', '', 'RES', 'appl/res/res_reservering.asp?urole=fe', 1, 0, fac_functie_key, 'W', '0'
FROM fac_functie
WHERE fac_functie_code='WEB_RESUSE'
AND NOT EXISTS (SELECT fac_menuitems_key FROM fac_menuitems WHERE fac_menuitems_label = 'lcl_menu_res_fe_1');
INSERT INTO fac_menuitems (fac_menuitems_groep, fac_menuitems_label, fac_menuitems_oms, fac_menuitems_module, fac_menuitems_url, fac_menuitems_srtdisc, fac_menuitems_disc, fac_functie_key, fac_menuitems_rw, fac_menuitems_default)
SELECT 1, 'lcl_menu_res_fo_1', '', 'RES', 'appl/res/res_reservering.asp?urole=fo', 1, 0, fac_functie_key, 'W', '0'
FROM fac_functie
WHERE fac_functie_code='WEB_RESFOF'
AND NOT EXISTS (SELECT fac_menuitems_key FROM fac_menuitems WHERE fac_menuitems_label = 'lcl_menu_res_fo_1');
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25952
CREATE TABLE fac_imp_cnt
(
nummer_intern VARCHAR2 (30),
nummer_extern VARCHAR2 (30),
cnt_soort VARCHAR2 (30),
beschrijving VARCHAR2 (50),
mantel_nr VARCHAR2 (30),
omschrijving VARCHAR2 (1000),
afdeling VARCHAR2 (10),
perslid_eig VARCHAR2 (30),
perslid_beh VARCHAR2 (30),
opmerking VARCHAR2 (1000),
datum_ingang DATE,
datum_eind DATE,
datum_opzeg DATE,
datum_rappel DATE,
bedrijf_naam VARCHAR2 (60),
contact_naam VARCHAR2 (30),
kpn_code VARCHAR2 (30),
bedrag NUMBER (11,2),
bedrag_termijn NUMBER (11,2),
uurtarief NUMBER (6,2),
korting NUMBER (4,2),
gebouwcode VARCHAR2 (12),
verlengen VARCHAR2 (1),
flex1 VARCHAR2 (1000),
flex2 VARCHAR2 (1000),
flex3 VARCHAR2 (1000),
flex4 VARCHAR2 (1000),
flex5 VARCHAR2 (1000)
);
INSERT INTO fac_import_app
(fac_import_app_code, fac_import_app_oms, fac_functie_key)
SELECT 'CNT', 'FIP: Contracten', fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_PRSSYS';
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25697
-- Setting mld_close_mld_auto moet op 1 staan. Dan pas mld_typeopdr_sluitmelding aanpassen van 1 naar 2.
UPDATE mld_typeopdr
SET mld_typeopdr_sluitmelding = 2
WHERE mld_typeopdr_sluitmelding = 1
AND (SELECT COALESCE (fs.fac_setting_pvalue, fs.fac_setting_default)
FROM fac_setting fs
WHERE fs.fac_setting_name LIKE 'mld_close_mld_auto') = 1;
/////////////////////////////////////////////////////////////////////////////////////////// FSN#25708
CREATE_TABLE(fac_qvw_ticket, 0)
(
fac_qvw_ticket_userid VARCHAR(32),
fac_qvw_ticket_flags NUMBER(3) DEFAULT 0 NOT NULL,
fac_qvw_ticket_aanmaak DATE DEFAULT SYSDATE,
fac_qvw_ticket_uitgifte DATE DEFAULT SYSDATE,
prs_perslid_key NUMBER(10) CONSTRAINT fac_r_qvw_perslid_key REFERENCES prs_perslid(prs_perslid_key) ON DELETE CASCADE
);
UPDATE fac_functie SET fac_functie_min_level = 3
WHERE fac_functie_code = 'WEB_MGTRAP' AND fac_functie_min_level = 0;
UPDATE fac_groeprechten
SET fac_gebruiker_prs_level_write = 9, fac_gebruiker_alg_level_write = 9
WHERE fac_functie_key = (SELECT fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_MGTRAP')
AND fac_gebruiker_prs_level_write = -1
AND fac_gebruiker_alg_level_write = -1;
UPDATE fac_setting
SET fac_setting_pvalue = 2
WHERE fac_setting_name = 'qvw_enabled' AND fac_setting_pvalue = 1;
/////////////////////////////////////////////////////////////////////////////////////////// FSN#24771
DEF_BOOKMARK('bestelopdr', 'appl/bes/bes_opdr.asp', 'ordernr=');
/////////////////////////////////////////////////////////////////////////////////////////// FSN#26422
UPDATE fac_setting
SET fac_setting_default = '9999999'
, fac_setting_description = 'I can approve myself below or equal this limit or someone else must approve always above this limit'
, fac_setting_pvalue = (CASE fac_setting_pvalue
WHEN '1'
THEN '9999999'
ELSE fac_setting_pvalue
END)
WHERE fac_setting_name LIKE 'can_selfapprove';
/////////////////////////////////////////////////////////////////////////////////////////// QA
-- detected using TOAD schema differences not all relevant, however the first are
ALTER TABLE fin_kenmerk DROP CONSTRAINT fin_c_fin_kenmerk_type1;
ALTER TABLE fin_kenmerk ADD CONSTRAINT fin_c_fin_kenmerk_type1 CHECK(fin_kenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l'));
ALTER TABLE ins_srtkenmerk DROP CONSTRAINT ins_c_ins_srtkenmerk_kenmtype;
ALTER TABLE ins_srtkenmerk ADD CONSTRAINT ins_c_ins_srtkenmerk_kenmtype CHECK(ins_srtkenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l'));
ALTER TABLE fac_locale DROP CONSTRAINT fac_u_fac_locale DROP INDEX;
ALTER TABLE fac_locale ADD CONSTRAINT fac_u_fac_locale UNIQUE(fac_locale_dialect_key, fac_locale_lang, fac_localeitems_key, fac_locale_kolomnaam, fac_locale_kolomkeyval);
ALTER TABLE fac_locale DROP CONSTRAINT fac_c_fac_locale1;
ALTER TABLE fac_locale ADD CONSTRAINT fac_c_fac_locale1
CHECK((fac_localeitems_key IS NOT NULL AND fac_locale_dialect_key IS NOT NULL AND fac_locale_kolomnaam IS NULL AND fac_locale_kolomkeyval IS NULL)
OR (fac_localeitems_key IS NULL AND fac_locale_dialect_key IS NULL AND fac_locale_kolomnaam IS NOT NULL AND fac_locale_kolomkeyval IS NOT NULL));
BEGIN
adm.trydrop('INDEX res_i_res_rsv_artikel2');
END;
/
// res_u_res_activiteit_upper is vaker *afwezig* dan aanwezig
// ALTER TABLE res_activiteit DROP CONSTRAINT res_u_res_activiteit_upper DROP INDEX;
ALTER TABLE res_activiteit ADD CONSTRAINT res_u_res_activiteit_upper UNIQUE(res_activiteit_upper, res_activiteit_verwijder, res_srtactiviteit_key);
PROMPT Hierboven mag een foutmelding komen: ORA02261: Dergelijke unieke of primaire sleutel bestaat al in de tabel
ALTER TABLE alg_srtruimte DROP CONSTRAINT alg_c_prs_werkplek_verhuurbaar;
ALTER TABLE alg_srtruimte ADD CONSTRAINT alg_c_prs_werkplek_verhuurbaar CHECK(NOT(prs_bevat_werkplek = 1 AND prs_verhuurbaar IS NULL));
/////////////////////////////////////////////////////////////////////////////////////////// GENERAL
/////////////////////////////////////////////////////////////////////////////////////////// CLEANUP
ALTER TABLE fac_api DROP COLUMN fac_api_apikey;
ALTER TABLE fac_api DROP COLUMN prs_perslid_key;
ALTER TABLE fac_api DROP COLUMN fac_api_no_session;
--FSN#25590
BEGIN
adm.trydrop('TABLE sys_tracking PURGE');
adm.trydrop('FUNCTION PRS_P_PRS_BepaalWerkplekOpp');
adm.trydrop('PACKAGE fac_p_fac_save_restore');
END;
/
--FSN#17879
ALTER TABLE bes_bestelling DROP COLUMN bes_bestelling_item_cnt;
ALTER TABLE bes_bestelling DROP COLUMN bes_bestelling_item_cnt_lev;
ALTER TABLE bes_bestelling DROP COLUMN bes_bestelling_item_cnt_acpt;
ALTER TABLE bes_bestelopdr DROP COLUMN bes_bestelopdr_item_cnt;
ALTER TABLE bes_bestelopdr DROP COLUMN bes_bestelopdr_item_cnt_lev;
ALTER TABLE fac_usrtab DROP COLUMN fac_usrtab_viewdef;
ALTER TABLE fac_usrtab DROP COLUMN fac_usrtab_view;
-- Later wellicht in de epiloog;
DELETE FROM fac_selectie;
///////////////////////////////////////////////////////////////////////////////////////////
REGISTERONCE('$Workfile: DB17to18.src $','$Revision$')
#include "epilogue.inc"