/* 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"