-- -- $Id$ -- -- Script containing customer specific sql statements for the FACILITOR database -- -- -- -- -- DEFINE thisfile = 'PROR.SQL' DEFINE dbuser = 'PROR' SET ECHO ON SET DEFINE ON COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT; COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT; WHENEVER SQLERROR CONTINUE; SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL; SPOOL &fcltlogfile WHENEVER SQLERROR EXIT; SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL; WHENEVER SQLERROR CONTINUE; --------------------------------------- PROMPT &fcltcusttxt --------------------------------------- SET DEFINE OFF ------ payload begin ------ CREATE OR REPLACE PACKAGE PROR AS PROCEDURE add_xml_row (p_bestand IN VARCHAR2, p_regel IN VARCHAR2); PROCEDURE add_xml_element (p_bestand IN VARCHAR2, p_tag IN VARCHAR2, p_value IN VARCHAR2); PROCEDURE inactivate_prs; PROCEDURE mandateer_prs(p_perslid_key IN NUMBER); END; / CREATE OR REPLACE PACKAGE BODY PROR AS PROCEDURE add_xml_row ( p_bestand IN VARCHAR2, p_regel IN VARCHAR2) AS v_index NUMBER; BEGIN SELECT COALESCE( MAX(fac_rapport_volgnr), 0) + 1 INTO v_index FROM fac_rapport WHERE fac_rapport_node = p_bestand; INSERT INTO fac_rapport ( fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel) VALUES (p_bestand, v_index, p_regel); END; PROCEDURE add_xml_element ( p_bestand IN VARCHAR2, p_tag IN VARCHAR2, p_value IN VARCHAR2) AS BEGIN pror.add_xml_row(p_bestand, '<' || p_tag || '>' || xml.char_to_html(p_value) || ''); END; PROCEDURE inactivate_prs AS v_errormsg VARCHAR2 (1000); v_errorhint VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count NUMBER (10); v_perslid_naam VARCHAR (100); v_perslid_nr VARCHAR (30); --- Als een persoon 12 maanden niet meer heeft ingelogd verwijderen we deze CURSOR prs_del IS SELECT p.prs_perslid_key, p.prs_perslid_oslogin FROM prs_v_aanwezigperslid p WHERE p.prs_perslid_login < TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm') AND NOT EXISTS (SELECT * -- alleen de NIET AFAS account moeten worden verwijderd FROM prs_kenmerklink pkl, prs_kenmerk pk WHERE pk.prs_kenmerk_upper='AFAS ACCOUNT' AND pk.prs_kenmerk_key = pkl.prs_kenmerk_key AND pkl.prs_link_key=p.prs_perslid_key AND pkl.prs_kenmerklink_waarde='1') AND p.prs_perslid_nr NOT LIKE 'P%' -- Alle P accounts komen via SCIM koppeling ,die geeft door als account inactief is GROUP BY p.prs_perslid_key, p.prs_perslid_oslogin; -- Alle personen die via de SCIM koppeling zijn aangemkaat en die inactief zijn gemaakt. CURSOR prs_del_scim IS SELECT p.prs_perslid_key, p.prs_perslid_oslogin FROM prs_v_aanwezigperslid p WHERE p.prs_perslid_inactief < TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm') AND NOT EXISTS (SELECT * -- alleen de NIET AFAS account moeten worden verwijderd FROM prs_kenmerklink pkl, prs_kenmerk pk WHERE pk.prs_kenmerk_upper='AFAS ACCOUNT' AND pk.prs_kenmerk_key = pkl.prs_kenmerk_key AND pkl.prs_link_key=p.prs_perslid_key AND pkl.prs_kenmerklink_waarde='1') AND p.prs_perslid_nr LIKE 'P%' -- Alle P accounts komen via SCIM koppeling ,die geeft door als account inactief is GROUP BY p.prs_perslid_key, p.prs_perslid_oslogin; BEGIN -- Eerst alle in Facilitro aangemaakt accounts FOR rec IN prs_del LOOP prs.delete_perslid(NULL, rec.prs_perslid_key); END LOOP; -- Alle inactive personen die initieel via de scim koppeling zijn aangemaakt FOR rec2 IN prs_del_scim LOOP prs.delete_perslid(NULL, rec2.prs_perslid_key); END LOOP; END; -- Mandateren op alle kostenplaatsen PROCEDURE mandateer_prs(p_perslid_key IN NUMBER) AS oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_errormsg VARCHAR2 (200); v_count NUMBER; BEGIN v_errormsg :='Mandatering voor '||(p_perslid_key); SELECT COUNT(*) INTO v_count FROM prs_perslidkostenplaats WHERE prs_perslid_key=p_perslid_key; IF v_COUNT=0 THEN INSERT INTO prs_perslidkostenplaats(prs_perslid_key, prs_perslidkostenplaats_boeken, prs_perslidkostenplaats_inzage, prs_perslidkostenplaats_aanmk) VALUES(p_perslid_key, 1, 0, SYSDATE); END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog ('Mandatering medewerker', 'E', v_errormsg, ''); END; END; / -- IMPORT FUNCTIES CREATE OR REPLACE PROCEDURE pror_import_afas_organisatie(p_import_key IN NUMBER) AS CURSOR c1 IS SELECT fac_imp_csv_col01 prs_bedrijf, fac_imp_csv_col02 prs_afdeling_code, fac_imp_csv_col03 prs_afdeling_naam, fac_imp_csv_col04 prs_parent, fac_imp_csv_col05 prs_laag, fac_imp_csv_col06 prs_laag1, fac_imp_csv_col07 prs_laag2, fac_imp_csv_col08 prs_laag3, fac_imp_csv_col09 prs_laag4, fac_imp_csv_col10 prs_laag5, fac_imp_csv_col11 prs_laag6, fac_imp_csv_col12 prs_laag7, fac_imp_csv_col13 prs_laag8, fac_imp_csv_col14 prs_laag9 FROM fac_imp_csv WHERE fac_import_key=p_import_key ORDER BY fac_imp_csv_key; v_errormsg VARCHAR2 (1000); v_errorhint VARCHAR2 (1000); v_aanduiding VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count NUMBER; v_parent VARCHAR2(10); BEGIN v_count:=0; DELETE FROM fac_imp_organisatie; COMMIT; FOR rec IN c1 LOOP if v_count>0 THEN IF (rec.prs_laag = '1') THEN v_parent:=rec.prs_laag1; ELSE v_parent:=rec.prs_laag2; END IF; INSERT INTO fac_imp_organisatie ( prs_bedrijf_naam, prs_afdeling_naam, prs_afdeling_naam_parent, prs_afdeling_omschrijving, prs_afdeling_externid) VALUES ( rec.prs_bedrijf, rec.prs_afdeling_code, v_parent, rec.prs_afdeling_naam, rec.prs_laag); END IF; v_count:=v_count+1; END LOOP; EXCEPTION WHEN OTHERS THEN v_errorhint := v_errormsg || ' - ' || v_aanduiding; oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes; fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint); END; / CREATE OR REPLACE PROCEDURE pror_update_afas_organisatie(p_import_key IN NUMBER) AS CURSOR c1 IS SELECT prs_afdeling_naam, prs_afdeling_omschrijving, prs_afdeling_naam_parent, prs_afdeling_externid FROM fac_imp_organisatie ORDER BY prs_afdeling_externid; v_date DATE; v_prs_afdeling_parentkey NUMBER:=-1; v_count NUMBER:=0; v_bedrijf_key NUMBER :=-1; v_afdeling_key NUMBER :=-1; BEGIN SELECT prs_bedrijf_key INTO v_bedrijf_key FROM prs_bedrijf WHERE prs_bedrijf_naam_upper='PRORAIL' AND prs_bedrijf_verwijder IS NULL; IF v_bedrijf_key>0 THEN FOR rec in C1 LOOP -- kijk of de afdeling al bestaat en dezelfde parent heeft IF rec.prs_afdeling_naam_parent IS NOT NULL THEN -- wat is de afdelings key van de parent IF rec.prs_afdeling_naam_parent='50035512' -- deze moeten onder het berdijf worden gezet. THEN v_prs_afdeling_parentkey:=TO_NUMBER(NULL); ELSE v_bedrijf_key := to_number(NULL); SELECT prs_afdeling_key INTO v_prs_afdeling_parentkey FROM prs_afdeling WHERE prs_afdeling_naam=rec.prs_afdeling_naam_parent AND prs_afdeling_verwijder IS NULL; END IF; SELECT COUNT(*) INTO v_count FROM prs_afdeling a1 where a1.prs_afdeling_naam = rec.prs_afdeling_naam AND a1.prs_afdeling_verwijder IS NULL; IF v_count=0 THEN INSERT INTO PRS_AFDELING (prs_afdeling_naam, prs_afdeling_omschrijving, prs_bedrijf_key, prs_afdeling_parentkey ) VALUES (rec.prs_afdeling_naam, rec.prs_afdeling_omschrijving, v_bedrijf_key, v_prs_afdeling_parentkey ) RETURNING prs_afdeling_key INTO v_afdeling_key; -- Wat was de afdeling waar deze in afas ondervalt IF rec.prs_afdeling_externid != '1' THEN SELECT p.prs_afdeling_key INTO v_prs_afdeling_parentkey FROM fac_imp_csv csv, prs_afdeling p WHERE csv.fac_imp_csv_col02=rec.prs_afdeling_naam AND p.prs_afdeling_naam=csv.fac_imp_csv_col04 AND p.prs_afdeling_verwijder IS NULL; flx.setflex('PRS', 1020,v_afdeling_key, 'A', v_prs_afdeling_parentkey); -- D=1021, A=1041 P=1020 flx.setflex('PRS', 1021,v_afdeling_key, 'A', rec.prs_afdeling_externid); -- D=1020 A=1040 P=1021 END IF; COMMIT; ELSE IF rec.prs_afdeling_externid != '1' THEN -- Wat is de nieuwe parent afdeling SELECT p.prs_afdeling_key INTO v_prs_afdeling_parentkey FROM fac_imp_csv csv, prs_afdeling p WHERE csv.fac_imp_csv_col02=rec.prs_afdeling_naam AND p.prs_afdeling_naam=csv.fac_imp_csv_col04 AND p.prs_afdeling_verwijder IS NULL; -- Wta is de huidge afdeling_key SELECT prs_afdeling_key INTO v_afdeling_key FROM prs_afdeling where prs_afdeling_naam= rec.prs_afdeling_naam AND prs_afdeling_verwijder IS NULL; flx.setflex('PRS', 1020,v_afdeling_key,'A', v_prs_afdeling_parentkey); -- D=1021, A=1041 P=1020 flx.setflex('PRS', 1021,v_afdeling_key,'A', rec.prs_afdeling_externid); -- D=1020 A=1040 P=1021 END IF; END IF; END IF; END LOOP; END IF; -- Nu even opruimen DELETE FROM fac_imp_csv where fac_import_key=p_import_key; DELETE FROM fac_imp_organisatie; COMMIT; END; / -- "Roepnaam";"Voorletters";"Voorvoegsel";"Achternaam";"Persnr.";"Afdnr.";"Functie";"Email";"Telefoon";"Loginnaam";"Kostenplaats";"OE_Niveau" CREATE OR REPLACE PROCEDURE pror_import_afas_personen(p_import_key IN NUMBER) AS CURSOR c1 IS SELECT fac_imp_csv_col01 prs_voornaam, fac_imp_csv_col02 prs_voorletters, fac_imp_csv_col03 prs_tussenvoegsel, fac_imp_csv_col04 prs_achternaam, fac_imp_csv_col05 prs_perslid_nr, fac_imp_csv_col06 prs_afd1_code, fac_imp_csv_col07 prs_functie, fac_imp_csv_col08 prs_email, fac_imp_csv_col09 prs_telefoon, fac_imp_csv_col10 prs_loginnaam, fac_imp_csv_col10 prs_level FROM fac_imp_csv WHERE fac_import_key=p_import_key ORDER BY fac_imp_csv_key; v_errormsg VARCHAR2 (1000); v_errorhint VARCHAR2 (1000); v_aanduiding VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count NUMBER; v_afdelingnaam VARCHAR2(20); v_afd_count NUMBER; v_srtperslid_omschrijving VARCHAR2(60); BEGIN v_count:=0; DELETE FROM fac_imp_perslid; FOR rec IN c1 LOOP IF v_count>0 THEN -- ALs een per op niveau 9 zit heeft de -- controleren of de afdeling wel beschikbaar is anders onder Onbekend zetten SELECT COUNT(*) INTO v_afd_count FROM prs_afdeling WHERE prs_afdeling_naam=rec.prs_afd1_code AND prs_afdeling_verwijder IS NULL; IF v_afd_count=0 THEN v_afdelingnaam :='Onbekend'; ELSE v_afdelingnaam := rec.prs_afd1_code; END IF; IF rec.prs_functie IS NULL THEN v_srtperslid_omschrijving:='Onbekend'; ELSE v_srtperslid_omschrijving:= rec.prs_functie; END IF; INSERT INTO fac_imp_perslid(fac_import_key, prs_afdeling_naam, prs_perslid_voornaam, prs_perslid_voorletters, prs_perslid_tussenvoegsel, prs_perslid_naam, prs_perslid_email, prs_perslid_telefoonnr, prs_srtperslid_omschrijving, prs_perslid_oslogin, prs_perslid_nr, prs_kenmerk1) VALUES(p_import_key, v_afdelingnaam, rec.prs_voornaam, rec.prs_voorletters, rec.prs_tussenvoegsel, rec.prs_achternaam, -- LTRIM(rec.prs_tussenvoegsel||' '||rec.prs_achternaam), rec.prs_email, rec.prs_telefoon, v_srtperslid_omschrijving, -- rec.prs_perslid_nr, SUBSTR(rec.prs_email,0,30), rec.prs_perslid_nr, '1000=1'); -- AFAS account kenmerk D=1022, A=1020, P=1000 END IF; v_count:=v_count+1; END LOOP; DELETE FROM fac_imp_csv where fac_import_key=p_import_key; EXCEPTION WHEN OTHERS THEN v_errorhint := v_errormsg || ' - ' || v_aanduiding; oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes; fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint); END; / CREATE OR REPLACE PROCEDURE pror_update_afas_personen(p_import_key IN NUMBER) AS CURSOR p_del -- We doen dit alleen voor de afas aqccounts IS SELECT p.prs_perslid_key FROM prs_perslid p, prs_kenmerklink kl, prs_kenmerk pk WHERE p.prs_perslid_verwijder IS NULL AND pk.prs_kenmerk_upper='AFAS ACCOUNT' AND kl.prs_kenmerk_key = pk.prs_kenmerk_key AND kl.prs_link_key=p.prs_perslid_key AND kl.prs_kenmerklink_waarde='1' AND p.prs_perslid_nr NOT IN (SELECT prs_perslid_nr FROM fac_imp_perslid); CURSOR p_mandaat IS SELECT p.prs_perslid_key FROM fac_imp_perslid f, prs_perslid p WHERE f.prs_perslid_email = p.prs_perslid_email AND p.prs_perslid_verwijder IS NULL AND p.prs_perslid_key NOT IN (SELECT DISTINCT prs_perslid_key FROM prs_perslidkostenplaats pk); CURSOR p_autgroep -- welke afas accounts hebben nog geen autgroep IS SELECT p.prs_perslid_key FROM prs_perslid p, prs_kenmerklink kl, prs_kenmerk pk WHERE p.prs_perslid_verwijder is null AND pk.prs_kenmerk_upper='AFAS ACCOUNT' AND kl.prs_kenmerk_key = pk.prs_kenmerk_key AND kl.prs_link_key=p.prs_perslid_key AND kl.prs_kenmerklink_waarde='1' AND NOT EXISTS (SELECT 'x' FROM fac_gebruikersgroep f WHERE f.prs_perslid_key=p.prs_perslid_key); v_errormsg VARCHAR2 (1000); v_errorhint VARCHAR2 (1000); v_aanduiding VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_date DATE; v_defaultgroep NUMBER:=1; v_count NUMBER; v_aanwezig NUMBER; BEGIN -- Hebben we wel een gevuld bestand binnen gekregen SELECT COUNT(*) INTO v_count FROM fac_imp_perslid; SELECT COUNT(*) INTO v_aanwezig FROM prs_perslid p, prs_kenmerklink kl, prs_kenmerk pk WHERE p.prs_perslid_verwijder IS NULL AND pk.prs_kenmerk_upper='AFAS ACCOUNT' AND kl.prs_kenmerk_key = pk.prs_kenmerk_key AND kl.prs_link_key=p.prs_perslid_key AND kl.prs_kenmerklink_waarde='1'; IF (v_count/v_aanwezig) > 0.85 -- we gaan uit van minimaal 85% aanwezig in import file THEN v_errormsg := 'Fout bij update van personen.'; prs.update_perslid (p_import_key, 'NR', 'A', 1); v_errormsg := 'Fout bij verwijderen van personen.'; FOR rec IN p_del LOOP prs.delete_perslid (p_import_key, rec.prs_perslid_key); END LOOP; v_errormsg := 'Fout bij mandateren van personen.'; FOR rec_man IN p_mandaat LOOP pror.mandateer_prs(rec_man.prs_perslid_key); END LOOP; v_errormsg := 'Fout bij toevoegen personen aan autorisatiegroep.'; FOR rec2 IN p_autgroep LOOP INSERT INTO fac_gebruikersgroep(FAC_GROEP_KEY, prs_perslid_key) VALUES(v_defaultgroep, rec2.prs_perslid_key); END LOOP; COMMIT; END IF; EXCEPTION WHEN OTHERS THEN v_errorhint := v_errormsg || ' - ' || v_aanduiding; oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes; fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint); END; / -- Import objecten lijst waarbij omschrijving gevult dowrt met de locatie gegevens CREATE OR REPLACE PROCEDURE pror_import_objecten(p_import_key IN NUMBER) AS BEGIN DELETE FROM fac_imp_ins; fac_import_ins(p_import_key); END; / CREATE OR REPLACE PROCEDURE pror_update_objecten(p_import_key IN NUMBER) AS CURSOR ins IS SELECT * FROM fac_imp_ins; BEGIN fac_update_ins(p_import_key); FOR rec IN ins LOOP UPDATE ins_deel i SET i.ins_deel_opmerking=(SELECT al.alg_locatie_code||'-'||a.alg_plaatsaanduiding||' ('||a.alg_ruimte_omschrijving||')' FROM alg_v_allonrgoed_gegevens a, alg_locatie al WHERE a.alg_locatie_key = al.alg_locatie_key AND a.alg_ruimte_key=i.ins_alg_ruimte_key) WHERE i.ins_deel_omschrijving=rec.ins_deel_omschrijving; END LOOP; END; / -- END IMPORT ins_deel CREATE OR REPLACE PROCEDURE pror_daily AS BEGIN -- inactiveren personen die 12 maanden niet hebben ingelogd pror.inactivate_prs (); END; / -- NOTIFICATIE VIEWS -- Notificatie VIEW tbv opdracht updates die met NSecure zijn uitgewisseld CREATE OR REPLACE VIEW PROR_V_NSECURE_UPDATE ( sender, receiver, code, text, key, xkey, xemail, xmobile ) AS SELECT NULL sender, NULL receiver, 'CUST03' code, 'Opdracht ' || o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr || ' met NSecureNr ' || ko.mld_kenmerkopdr_waarde || ' is gewijzigd' text, o.mld_opdr_key key, NULL xkey, (SELECT b.prs_bedrijf_email FROM prs_bedrijf b WHERE b.prs_leverancier_nr = '313341' AND b.prs_bedrijf_uitvoerende = '1' AND b.prs_bedrijf_verwijder IS NULL) xemail, NULL xmobile FROM mld_opdr o, mld_kenmerkopdr ko, mld_kenmerk km WHERE o.mld_statusopdr_key IN (5, 8) -- toegekend, geaccpeteerd AND o.mld_uitvoerende_keys = (SELECT b.prs_bedrijf_key FROM prs_bedrijf b WHERE b.prs_leverancier_nr = '313341' AND b.prs_bedrijf_uitvoerende = '1' AND b.prs_bedrijf_verwijder IS NULL) AND ko.mld_opdr_key = o.MLD_OPDR_KEY AND ko.mld_kenmerk_key = km.mld_kenmerk_key AND UPPER (km.mld_kenmerk_omschrijving) = UPPER ('Leveranciers nr') AND LENGTH (ko.mld_kenmerkopdr_waarde) > 2 AND mld_opdr_verzonden < (SELECT MAX (mon.mld_opdr_note_aanmaak) FROM MLD_OPDR_NOTE mon WHERE mon.mld_opdr_key = o.mld_opdr_key AND mon.prs_perslid_key != 23182 AND BITAND(mld_opdr_note_flag,4)=4) AND (SELECT MAX (mon.MLD_OPDR_NOTE_AANMAAK) FROM MLD_OPDR_NOTE mon WHERE mon.mld_opdr_key = o.mld_opdr_key AND mon.prs_perslid_key != 23182 AND BITAND(mld_opdr_note_flag,4)=4) > COALESCE ( (SELECT nj.fac_notificatie_job_lastrun FROM fac_notificatie_job nj WHERE nj.fac_notificatie_job_view = 'PROR_V_NSECURE_UPDATE'), SYSDATE - 2 / 24); -- Noifictaie View tbv te late annulering outlook reservereing inc catering CREATE OR REPLACE VIEW pror_v_outl_cat_annu ( reserveringnr, key, code, text, gastheer, receiver, sender, xemail, xmobile, xkey ) AS SELECT DISTINCT res_reservering_key||'/'||res_rsv_ruimte_volgnr reserveringNr, res_reservering_key key, 'CUST02' cust_code, 'Reservering '||res_reservering_key||'/'||res_rsv_ruimte_volgnr||' op '|| TO_CHAR(leverdatum,'DD-MM-YYYY HH24:MI')||' is verwijderd buiten annulerings horizon.' text, (SElECT p.prs_perslid_naam_friendly FROM prs_v_perslid_fullnames_all p WHERE p.prs_perslid_key= gastheer_key) gastheer, NULL receiver, NULL sender, 'cateringmanagerprorail@prorail.nl' xemail, NULL xmobile, res_rsv_ruimte_key xkey FROM (SElECT r.*, (SELECT MAX(rdp.res_disc_params_cancel_dagen) annuleer_dagen FROM res_rsv_artikel rra, res_artikel ra, res_discipline rd, res_disc_params rdp WHERE res_rsv_ruimte_key = r.res_rsv_ruimte_key AND ra.res_artikel_key = rra.res_artikel_key AND ra.res_discipline_key = rd.ins_discipline_key AND rdp.res_ins_discipline_key=rd.ins_discipline_key) annuleer_dagen FROM (SELECT DISTINCT res.res_rsv_ruimte_key res_rsv_ruimte_key, res.res_reservering_key res_reservering_key, res.res_rsv_ruimte_volgnr res_rsv_ruimte_volgnr, res.res_rsv_ruimte_host_key gastheer_key, res.res_rsv_ruimte_verwijder datum_verwijder, fac.safe_to_date ( TO_CHAR (res.res_rsv_ruimte_van, 'DD-MM-YYYY')||' 12:00', 'DD-MM-YYYY HH24:MI') leverdatum FROM res_rsv_ruimte res, res_rsv_artikel rra WHERE res.res_rsv_ruimte_verwijder IS NOT NULL AND res.res_rsv_ruimte_externnr IS NOT NULL AND res.res_status_fo_key=4 AND rra.res_rsv_ruimte_key=res.res_rsv_ruimte_key) r) x WHERE datum_verwijder> leverdatum - annuleer_dagen AND NOT EXISTS (SELECT rkw.res_kenmerk_key FROM res_kenmerkwaarde rkw, res_kenmerk rk WHERE rkw.res_rsv_ruimte_key=x.res_rsv_ruimte_key AND rk.res_kenmerk_key = rkw.res_kenmerk_key AND UPPER(rk.res_kenmerk_omschrijving)='EXTERNSYNCDATUM') AND NOT EXISTS (SElECT * FROM fac_tracking ft WHERE fac_tracking_refkey=x.res_rsv_ruimte_key AND ft.fac_srtnotificatie_key=223 AND ft.fac_tracking_oms LIKE '%CUST02%'); -- Noifictaie View tbv reservereing gedaan door contact<>host CREATE OR REPLACE VIEW pror_v_res_other_contact ( sender, receiver, code, text, key, xkey, xemail, xmobile ) AS SELECT NULL sender, rrr.res_rsv_ruimte_contact_key receiver, 'CUST01' code, 'Reservering '||rrr.res_reservering_key||'/ '||rrr.res_rsv_ruimte_volgnr|| -- ' is door '||(SELECT prs_perslid_naam_friendly -- FROM prs_v_perslid_fullnames p, fac_tracking ft -- WHERE ft.fac_tracking_refkey=rrr.res_rsv_ruimte_key -- AND fac_srtnotificatie_key=116 -- AND p.prs_perslid_key= ft.prs_perslid_key)|| ' voor u aangemaakt.' text, rrr.res_rsv_ruimte_key key, NULL xkey, NULL xemail, NULL xmobile FROM res_rsv_ruimte rrr WHERE rrr.res_rsv_ruimte_host_key<>rrr.res_rsv_ruimte_contact_key -- DIT MOET ANDERS AND NOT EXISTS (SELECT * FROM fac_tracking ft WHERE fac_tracking_refkey=rrr.res_rsv_ruimte_key AND ft.fac_srtnotificatie_key=223 AND ft.fac_tracking_oms LIKE '%CUST01%') AND rrr.res_rsv_ruimte_aanmaak BETWEEN SYSDATE-1 AND SYSDATE; -- EINDE NOTIFICATIE VIEWS -- VIEW TBV Kalender rappprt Service medewerkers CREATE OR REPLACE VIEW pror_v_SerMdwKalender ( USER_KEY, TITLE, VAN, TOT, ITEM_KEY, COLOR, TEXTCOLOR, URL ) AS SELECT rrr.res_rsv_ruimte_host_key user_key, CASE WHEN rro.res_ruimte_opstel_tijd>0 AND (SELECT COUNT(*) FROM res_rsv_deel rrd WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)>0 THEN 'Opstelling + Vergadermiddel' WHEN rro.res_ruimte_opstel_tijd>0 then 'Opstelling' ELSE 'Vergadermiddel' end title, rrr.res_rsv_ruimte_van van, rrr.res_rsv_ruimte_tot tot, rrr.res_rsv_ruimte_key item_key, '#009900' color, '#ffffff' textcolor, '?u=reservering' || chr (38) || 'k=' || rrr.res_rsv_ruimte_key url FROM res_rsv_ruimte rrr, res_activiteit ra, res_ruimte_opstelling rro WHERE rrr.res_activiteit_key=ra.res_activiteit_key AND UPPER(ra.res_activiteit_omschrijving)='VERGADERING' AND TRUNC(rrr.res_rsv_ruimte_van)>= TRUNC(SYSDATE-30) -- we laten alleen een 30 dagen terug zien. AND rrr.res_ruimte_opstel_key= rro.res_ruimte_opstel_key AND rrr.res_rsv_ruimte_verwijder IS NULL AND (rro.res_ruimte_opstel_tijd> 0 OR (SELECT COUNT(*) FROM res_rsv_deel rrd WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)>0 ); --- -- VIEW van alle reserveringen die catering hebben, -- CREATE OR REPLACE VIEW pror_v_res_cat AS SELECT * FROM ( SELECT DISTINCT(rrr.res_rsv_ruimte_key) rrr_key, rrr.res_reservering_key reservering_key, rrr.res_rsv_ruimte_volgnr, rrr.res_rsv_ruimte_aanmaak aanmk_datum, (SELECT MAX (fac_tracking_datum) FROM fac_tracking WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key AND fac_srtnotificatie_key = 117) last_upd, rrr.res_rsv_ruimte_externsyncdate last_export, rrr.res_rsv_ruimte_verwijder verw_datum, COALESCE(rer.res_ruimte_friendlyname,alg.alg_ruimte_nr) ruimte_nr, (SELECT prs_perslid_externid FROM prs_perslid WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller, (SELECT DISTINCT lev.PRS_BEDRIJF_EMAIL FROM res_rsv_artikel rar, res_artikel art, res_disc_params dsp, prs_bedrijf lev WHERE rar.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND art.res_artikel_key = rar.res_artikel_key AND dsp.res_ins_discipline_key = art.res_discipline_key AND lev.prs_bedrijf_key = dsp.prs_bedrijf_key) cateraar, rrr.RES_RSV_RUIMTE_VAN datum_van, rrr.RES_RSV_RUIMTE_TOT datum_tot, rrr.res_rsv_ruimte_omschrijving oms, rrr.res_rsv_ruimte_bezoekers aantal, alg.alg_locatie_code locatie_code, 'ruimte' soort, ros.res_opstelling_omschrijving opstelling, rrr.res_status_fo_key fo_status, rrr.res_rsv_ruimte_dirtlevel dirtlevel FROM res_rsv_ruimte rrr, res_rsv_artikel rra, res_ruimte_opstelling rop, res_opstelling ros, res_ruimte rer, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg WHERE rrr.res_status_bo_key = 2 AND rra.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key AND ros.res_opstelling_key = rop.res_opstelling_key AND rer.res_ruimte_key = rop.res_ruimte_key AND rarm.res_ruimte_key = rer.res_ruimte_key AND alg.alg_ruimte_key = rarm.alg_ruimte_key UNION ALL SELECT DISTINCT(rrr.res_rsv_ruimte_key) rrr_key, rrr.res_reservering_key reservering_key, rrr.res_rsv_ruimte_volgnr, rrr.res_rsv_ruimte_aanmaak aanmk_datum, (SELECT MAX (fac_tracking_datum) FROM fac_tracking WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key AND fac_srtnotificatie_key = 117) last_upd, rrr.res_rsv_ruimte_externsyncdate last_export, rrr.res_rsv_ruimte_verwijder verw_datum, alg.alg_ruimte_nr ruimte_nr, (SELECT pa.PRS_PERSLID_EMAIL FROM PRS_V_PERSLID_GEGEVENS pa WHERE pa.prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller, (SELECT DISTINCT lev.prs_bedrijf_email FROM res_rsv_artikel rar, res_artikel art, res_disc_params dsp, prs_bedrijf lev WHERE rar.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND art.res_artikel_key = rar.res_artikel_key AND dsp.res_ins_discipline_key = art.res_discipline_key AND lev.prs_bedrijf_key = dsp.prs_bedrijf_key) cateraar, rrr.RES_RSV_RUIMTE_VAN datum_van, rrr.RES_RSV_RUIMTE_TOT datum_tot, rrr.res_rsv_ruimte_omschrijving oms, rrr.res_rsv_ruimte_bezoekers aantal, alg.alg_locatie_code locatie_code, 'losse-catering' soort, 'N.V.T.' opstelling, rrr.res_status_fo_key fo_status, 0 dirtlevel FROM res_rsv_ruimte rrr, res_rsv_artikel rra, alg_v_ruimte_gegevens_all alg WHERE rrr.res_status_fo_key = 2 AND rra.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY AND alg.alg_ruimte_key = rrr.alg_ruimte_key ORDER BY reservering_key) WHERE aanmk_datum > SYSDATE-2/24 OR last_upd>aanmk_datum AND last_upd > SYSDATE-2/24; --- -- View tbv alle veiligheidsmeldingen -- Dez worden naar Provat geexporteerd/rapport wordt door provat aangeroepen --- CREATE OR REPLACE VIEW pror_v_mld_provat AS SELECT m.mld_melding_key melding_key, m.mld_melding_datum begin_datum, (SELECT p.prs_perslid_naam||','|| p.prs_perslid_voornaam||' '||p.prs_perslid_tussenvoegsel FROM prs_perslid p WHERE p.prs_perslid_key=m.prs_perslid_key) contact, md.ins_discipline_omschrijving Service, ms.mld_stdmelding_omschrijving omschrijving, (SELECT al.alg_locatie_omschrijving FROM alg_locatie al WHERE al.alg_locatie_key=m.mld_alg_locatie_key) ||'-'|| a.alg_gebouw_naam locatie, (SELECT ins_discipline_omschrijving FROM mld_discipline md WHERE md.ins_discipline_key = m.mld_ins_discipline_key) assignee, --- DEZE MOET NOG WORDERN GEVULD. '' type_request, (SELECT ms.mld_statuses_omschrijving FROM mld_statuses ms WHERE ms.mld_statuses_key=m.mld_melding_status) mld_status, '' kostenplaats, TO_CHAR(SUBSTR(m.mld_melding_omschrijving,1,4000)) onderwerp, (SELECT listagg(x.kenmerkwaardes, ', ' ) within group (order by x.volgnr) FROM (SELECT k.mld_kenmerk_omschrijving||':'||COALESCE(fud.fac_usrdata_code, km.mld_kenmerkmelding_waarde) kenmerkwaardes, k.mld_kenmerk_volgnummer volgnr FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk skm, fac_kenmerkdomein fk, fac_usrdata fud, fac_usrtab fut WHERE mld_melding_key=m.mld_melding_key AND k.mld_kenmerk_key = km.mld_kenmerk_key AND skm.mld_srtkenmerk_key(+) = k.mld_srtkenmerk_key AND fk.fac_kenmerkdomein_key(+) = skm.fac_kenmerkdomein_key AND fut.fac_usrtab_key(+) = fk.fac_usrtab_key AND fud.fac_usrtab_key(+) = fut.fac_usrtab_key AND fud.fac_usrdata_key(+) = FAC.SAFE_TO_NUMBER(km.mld_kenmerkmelding_waarde) AND k.mld_kenmerk_volgnummer>0) x ) kenmerkwaardes, (SELECT MAX (f.fac_tracking_datum) FROM fac_tracking f WHERE f.FAC_TRACKING_REFKEY=m.mld_melding_key AND f.FAC_SRTNOTIFICATIE_KEY=55 AND f.FAC_TRACKING_DATUM>m.mld_melding_datum) mld_update, (SELECT mk.mld_kenmerkmelding_waarde FROM mld_kenmerkmelding mk, mld_kenmerk k WHERE mk.MLD_melding_KEY=m.mld_melding_key AND mk.mld_kenmerk_key=k.mld_kenmerk_key AND UPPER(k.mld_kenmerk_omschrijving)='PROVATEXPORTFLAG') provat_flag, (SELECT mk.mld_kenmerkmelding_waarde FROM mld_kenmerkmelding mk, mld_kenmerk k WHERE mk.mld_melding_key=m.mld_melding_key AND mk.mld_kenmerk_key=k.mld_kenmerk_key AND UPPER(k.mld_kenmerk_omschrijving)='PROVATEXPORT') export_provat FROM mld_melding m, mld_stdmelding ms, mld_discipline md, alg_v_allonrgoed_gegevens a WHERE m.mld_stdmelding_key=ms.mld_stdmelding_key AND md.ins_discipline_key= ms.mld_ins_discipline_key AND (UPPER(ms.mld_stdmelding_omschrijving)='INZET BHV OF ONGEVAL MELDEN' OR UPPER(ms.mld_stdmelding_omschrijving)='ONVEILIGE SITUATIE MELDEN' OR UPPER(ms.mld_stdmelding_omschrijving)='BEVEILIGINGSINCIDENT MELDEN') AND a.alg_locatie_key=m.mld_alg_locatie_key AND a.alg_onroerendgoed_keys=m.mld_alg_onroerendgoed_keys AND m.mld_melding_status IN (2,3,4,5,7); --- -- View tbv alle bookmarks -- Deze worden door BIOMNI via API uitgelezen --- CREATE OR REPLACE VIEW pror_v_bkms_biomni AS SELECT CASE WHEN (SELECT USER FROM DUAL)='PROR_TEST' THEN 'https://fmis.testprorail.nl/?u='||fac_bookmark_id||CHR(38)||'mld_defaultstdmelding='||ms.MLD_STDMELDING_KEY ELSE 'https://fmis.prorail.nl/?u='||fac_bookmark_id||CHR(38)||'mld_defaultstdmelding='||ms.MLD_STDMELDING_KEY END url, ms.MLD_STDMELDING_OMSCHRIJVING FROM fac_bookmark fb, mld_stdmelding ms WHERE fb.FAC_BOOKMARK_NAAM='SSP/Biomni melding' AND ms.mld_stdmelding_verwijder IS NULL ORDER BY ms.MLD_STDMELDING_KEY; --- -- View tbv alle melding status -- Deze worden door BIOMNI via API uitgelezen --- CREATE OR REPLACE VIEW pror_v_mld_biomni AS SELECT m.mld_melding_key mld_key, id.ins_srtdiscipline_prefix||m.mld_melding_key mld_key_inclprefix, COALESCE(m.mld_melding_onderwerp, ms.mld_stdmelding_omschrijving) omschrijving, mst.mld_statuses_omschrijving, m.mld_melding_datum aanvraag_datum, COALESCE(p.prs_perslid_email,m.mld_melding_email_ext) email_aanvrager, (SELECT a.mld_melding_note_omschrijving FROM (SELECT mld_melding_note_omschrijving FROM mld_melding_note WHERE mld_melding_key=m.mld_melding_key ORDER BY mld_melding_note_aanmaak desc) a WHERE ROWNUM=1) notitie, CASE WHEN (SELECT USER FROM DUAL)='PROR_TEST' THEN 'https://fmis.testprorail.nl/appl/mld/mld_melding.asp?urole=fe'||chr(38)||'mld_key='||m.mld_melding_key ELSE 'https://fmis.prorail.nl/appl/mld/mld_melding.asp?urole=fe'||chr(38)||'mld_key='||m.mld_melding_key END response_url --'https://fmis.prorail.nl/appl/mld/mld_melding.asp?urole=fe'||chr(38)||'mld_key='||m.mld_melding_key response_url FROM mld_melding m, mld_stdmelding ms, mld_discipline md, ins_srtdiscipline id, mld_statuses mst, prs_perslid p WHERE p.prs_perslid_key=m.prs_perslid_key AND ms.mld_stdmelding_key = m.mld_stdmelding_key AND md.ins_discipline_key=ms.mld_ins_discipline_key AND id.ins_srtdiscipline_key = md.ins_srtdiscipline_key AND mst.mld_statuses_key=m.mld_melding_status AND ( p.prs_perslid_email IS NOT NULL OR m.mld_melding_email_ext IS NOT NULL) ORDER BY m.mld_melding_datum; -- -- Looplijst Cateraar -- CREATE OR REPLACE VIEW pror_v_cat_reserveringincl ( key, nummer, res_omschrijving, invoerdatum, datum, gastheer, contact, gastheer_email, gastheer_telefoon, contact_email, contact_telefoon, invoerder, kostensoortgroep, kostensoort, kpn, kpn_omschrijving, kpn_extern, fclt_3d_divisie_key, divisie_naam, divisie_omschrijving, fclt_3d_afdeling_key, afdeling_code, afdeling_omschrijving, regio_omschrijving, district_omschijving, fclt_3d_locatie_key, locatie, locatie_omschrijving, locatie_plaats, gebouw, verdieping, ruimte, opstelling, capaciteit, no_show, mandaat, personeelsnr, fclt_3d_discipline_key, catalogus_key, catalogus, reserveerbare_ruimte, bezoekers, van, tot, duur, status, bostatus, activiteit, srtactiviteit_key, activiteitsoort, opmerking, voorziening_discipline_key, voorziening_type, voorziening_catalogus, leverancier, voorziening_product_key, voorziening_product, voorziening_totaalprijs, voorziening_totaalprijsex, voorziening_van, voorziening_tot, voorziening_aantal, voorziening_prijs, voorziening_opmerking ) AS SELECT rrr.res_rsv_ruimte_key, res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr, rrr.res_rsv_ruimte_omschrijving, COALESCE (rrr.res_rsv_ruimte_aanmaak, voorz.van), rrr.res_rsv_ruimte_van, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key), (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key), (SELECT ph.prs_perslid_email FROM prs_perslid ph WHERE ph.prs_perslid_key = rrr.res_rsv_ruimte_host_key), (SELECT ph.prs_perslid_telefoonnr FROM prs_perslid ph WHERE ph.prs_perslid_key = rrr.res_rsv_ruimte_host_key), (SELECT pc.prs_perslid_email FROM prs_perslid pc WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key), (SELECT pc.prs_perslid_telefoonnr FROM prs_perslid pc WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key), (SELECT pf.prs_perslid_naam_full FROM fac_tracking tr, fac_srtnotificatie str, prs_v_perslid_fullnames_all pf WHERE tr.prs_perslid_key = pf.prs_perslid_key AND str.fac_srtnotificatie_code = 'RESNEW' AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key AND tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key), (SELECT ksg.prs_kostensoortgrp_oms FROM prs_kostensoortgrp ksg, prs_kostensoort ks WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key AND ks.prs_kostensoort_key = (SELECT disc.prs_kostensoort_key FROM res_discipline disc WHERE disc.ins_discipline_key = COALESCE ( voorz.ins_discipline_key, (SELECT ins_discipline_key FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key)))) kostensoortgroep, (SELECT ks.prs_kostensoort_oms FROM prs_kostensoort ks WHERE ks.prs_kostensoort_key = (SELECT disc.prs_kostensoort_key FROM res_discipline disc WHERE disc.ins_discipline_key = COALESCE ( voorz.ins_discipline_key, (SELECT ins_discipline_key FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key)))) kostensoort, k.prs_kostenplaats_nr, k.prs_kostenplaats_omschrijving, k.prs_kostenplaats_extern, an.prs_afdeling_key, an.prs_afdeling_naam, an.prs_afdeling_omschrijving, a.prs_afdeling_key, a.prs_afdeling_naam, a.prs_afdeling_omschrijving, (SELECT rg.alg_regio_omschrijving FROM alg_regio rg, alg_district d, alg_locatie l, alg_gebouw g, alg_verdieping v, alg_ruimte r WHERE rg.alg_regio_key = d.alg_regio_key AND d.alg_district_key = l.alg_district_key AND l.alg_locatie_key = g.alg_locatie_key AND g.alg_gebouw_key = v.alg_gebouw_key AND v.alg_verdieping_key = r.alg_verdieping_key AND r.alg_ruimte_key = r2a.alg_ruimte_key), (SELECT d.alg_district_omschrijving FROM alg_district d, alg_locatie l, alg_gebouw g, alg_verdieping v, alg_ruimte r WHERE d.alg_district_key = l.alg_district_key AND l.alg_locatie_key = g.alg_locatie_key AND g.alg_gebouw_key = v.alg_gebouw_key AND v.alg_verdieping_key = r.alg_verdieping_key AND r.alg_ruimte_key = r2a.alg_ruimte_key), (SELECT l.alg_locatie_key FROM alg_locatie l, alg_gebouw g, alg_verdieping v, alg_ruimte r WHERE l.alg_locatie_key = g.alg_locatie_key AND g.alg_gebouw_key = v.alg_gebouw_key AND v.alg_verdieping_key = r.alg_verdieping_key AND r.alg_ruimte_key = r2a.alg_ruimte_key), (SELECT alg_locatie_code FROM alg_locatie l, alg_gebouw g, alg_verdieping v, alg_ruimte r WHERE l.alg_locatie_key = g.alg_locatie_key AND g.alg_gebouw_key = v.alg_gebouw_key AND v.alg_verdieping_key = r.alg_verdieping_key AND r.alg_ruimte_key = r2a.alg_ruimte_key), (SELECT alg_locatie_omschrijving FROM alg_locatie l, alg_gebouw g, alg_verdieping v, alg_ruimte r WHERE l.alg_locatie_key = g.alg_locatie_key AND g.alg_gebouw_key = v.alg_gebouw_key AND v.alg_verdieping_key = r.alg_verdieping_key AND r.alg_ruimte_key = r2a.alg_ruimte_key), (SELECT alg_locatie_plaats FROM alg_locatie l, alg_gebouw g, alg_verdieping v, alg_ruimte r WHERE l.alg_locatie_key = g.alg_locatie_key AND g.alg_gebouw_key = v.alg_gebouw_key AND v.alg_verdieping_key = r.alg_verdieping_key AND r.alg_ruimte_key = r2a.alg_ruimte_key), (SELECT alg_gebouw_naam FROM alg_gebouw g, alg_verdieping v, alg_ruimte r WHERE g.alg_gebouw_key = v.alg_gebouw_key AND v.alg_verdieping_key = r.alg_verdieping_key AND r.alg_ruimte_key = r2a.alg_ruimte_key), (SELECT alg_verdieping_code FROM alg_verdieping v, alg_ruimte r WHERE v.alg_verdieping_key = r.alg_verdieping_key AND r.alg_ruimte_key = r2a.alg_ruimte_key), r2a.ruimte_nr, r2a.opstelling, r2a.capaciteit, rrr.res_rsv_ruimte_noshow, NVL ( (SELECT pr.fac_profiel_limiet FROM fac_profiel pr WHERE p.fac_profiel_key = pr.fac_profiel_key), 0), prs_perslid_nr, COALESCE ( voorz.ins_discipline_key, (SELECT ins_discipline_key FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key)), (SELECT ins_discipline_key FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key), (SELECT ins_discipline_omschrijving FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key), DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'), rrr.res_rsv_ruimte_bezoekers, rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot, COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0), (SELECT res_status_fo_omschrijving FROM res_status_fo rs WHERE rs.res_status_fo_key = rrr.res_status_fo_key), (SELECT res_status_bo_omschrijving FROM res_status_bo rs WHERE rs.res_status_bo_key = rrr.res_status_bo_key), ra.res_activiteit_omschrijving, rsa.res_srtactiviteit_key, rsa.res_srtactiviteit_omschrijving, rrr.res_rsv_ruimte_opmerking, voorz.ins_discipline_key, voorz.vtype, voorz.catalogus, (SELECT prs_bedrijf_naam FROM res_disc_params rdp, prs_bedrijf b WHERE rdp.prs_bedrijf_key = b.prs_bedrijf_key AND rdp.res_ins_discipline_key = voorz.ins_discipline_key), voorz.product_key, voorz.product, voorz.totaalprijs, voorz.totaalprijs_ex, TO_CHAR (voorz.van, 'hh24:mi'), TO_CHAR (voorz.tot, 'hh24:mi'), voorz.aantal, ROUND(voorz.prijs,2), (SELECT rk.res_kenmerkartikel_waarde FROM res_kenmerkartikel rk WHERE rk.res_rsv_artikel_key=voorz.rrr_dl_art_key AND rk.res_kenmerkartikel_verwijder IS NULL) voorz_opm FROM res_v_aanwezigrsv_ruimte rrr, res_activiteit ra, res_srtactiviteit rsa, res_reservering res, prs_kostenplaats k, prs_perslid p, prs_afdeling a, prs_afdeling an, prs_v_afdeling_boom ab, ( SELECT res_rsv_ruimte_key, MAX (o.res_opstelling_omschrijving) opstelling, MAX (ro.res_ruimte_opstel_bezoekers) capaciteit, MAX (ra.alg_ruimte_key) alg_ruimte_key, MAX (rr.res_ruimte_nr) ruimte_nr FROM res_rsv_ruimte r, res_ruimte_opstelling ro, res_opstelling o, res_ruimte rr, res_alg_ruimte ra WHERE r.res_rsv_ruimte_verwijder IS NULL AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND ro.res_opstelling_key = o.res_opstelling_key AND rr.res_ruimte_key = ra.res_ruimte_key GROUP BY res_rsv_ruimte_key UNION ALL SELECT res_rsv_ruimte_key, '' opstelling, NULL capaciteit, rrr.alg_ruimte_key, r.alg_ruimte_nr FROM res_rsv_ruimte rrr, alg_ruimte r WHERE rrr.alg_ruimte_key IS NOT NULL AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a, (SELECT rrd.res_rsv_ruimte_key res_rsv_ruimte_key, null rrr_dl_art_key, rd.res_deel_key product_key, rd.res_deel_omschrijving product, DECODE ( rd.res_deel_prijs_vast, 1, NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs), (rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 * NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)) totaalprijs, NULL totaalprijs_ex, rrd.res_rsv_deel_van van, rrd.res_rsv_deel_tot tot, (rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 aantal, NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs) prijs, c.ins_discipline_key ins_discipline_key, c.ins_discipline_omschrijving catalogus, 'object' vtype FROM res_v_aanwezigrsv_deel rrd, res_deel rd, ins_deel d, ins_tab_discipline c WHERE rrd.res_deel_key = rd.res_deel_key AND d.ins_deel_key = rd.res_ins_deel_key AND rrd.res_rsv_ruimte_key IS NOT NULL AND c.ins_discipline_key = rd.res_discipline_key UNION ALL SELECT rra.res_rsv_ruimte_key res_rsv_ruimte_key, rra.res_rsv_artikel_key rrr_dl_art_key, ra.res_artikel_key product_key, ra.res_artikel_omschrijving product, NVL (rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * res_artikel_prijs) totaalprijs, NVL (rra.res_rsv_artikel_prijs/(1+NVL(res_artikel_btw/100,0)), rra.res_rsv_artikel_aantal * res_artikel_prijs/(1+NVL(res_artikel_btw/100,0))) totaalprijs_ex, rra.res_rsv_artikel_levering van, NULL tot, rra.res_rsv_artikel_aantal aantal, NVL (rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal, res_artikel_prijs) prijs, c.ins_discipline_key ins_discipline_key, c.ins_discipline_omschrijving catalogus, 'consumable' vtype FROM res_v_aanwezigrsv_artikel rra, res_artikel ra, ins_tab_discipline c WHERE rra.res_artikel_key = ra.res_artikel_key AND ra.res_discipline_key = c.ins_discipline_key) voorz WHERE rrr.res_reservering_key = res.res_reservering_key AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+) AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+) AND rrr.res_activiteit_key = ra.res_activiteit_key AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = a.prs_afdeling_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = an.prs_afdeling_key AND (rrr.res_ruimte_opstel_key IS NOT NULL OR voorz.res_rsv_ruimte_key IS NOT NULL) AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY'); -- View tbv rapportage over inrichting standaardmeldingen SLA CREATE OR REPLACE VIEW PROR_V_STDMELDING_SLA AS SELECT m.hide_f_vakgroeptype vakgroeptype, m.fclt_f_vakgroep vakgroep, m.fclt_f_melding melding, m.acceptatietijd_kritisch mldacc_kritisch, m.acceptatietijd_hoog mldacc_hoog, m.acceptatietijd mldacc_normaal, m.acceptatietijd_laag mldacc_laag, m.uitvoertijd_kritisch mlduitv_kritisch, m.uitvoertijd_hoog mlduitv_hoog, m.uitvoertijd_normaal mlduitv_normaal, m.uitvoertijd_laag mlduitv_laag, (SELECT a.alg_srtruimte_omschrijving FROM alg_srtruimte a WHERE a.alg_srtruimte_key=ms.alg_srtruimte_key) srtruimte, ms.mld_stdmsrtruimte_t_accept_pr1.tijdsduur||' '|| DECODE(ms.mld_stdmsrtruimte_t_accept_pr1.eenheid,'U','Uren','D','Dagen') ruimteacc_kritisch, ms.mld_stdmsrtruimte_t_accept_pr2.tijdsduur||' '|| DECODE(ms.mld_stdmsrtruimte_t_accept_pr2.eenheid,'U','Uren','D','Dagen') ruimteacc_hoog, ms.mld_stdmsrtruimte_t_accepttijd.tijdsduur||' '|| DECODE(ms.mld_stdmsrtruimte_t_accepttijd.eenheid,'U','Uren','D','Dagen') ruimteacc_normaal, ms.mld_stdmsrtruimte_t_accept_pr4.tijdsduur||' '|| DECODE(ms.mld_stdmsrtruimte_t_accept_pr4.eenheid,'U','Uren','D','Dagen') ruimteacc_laag, ms.mld_stdmsrtruimte_t_uitv_pr1.tijdsduur||' '|| DECODE(ms.mld_stdmsrtruimte_t_uitv_pr1.eenheid,'U','Uren','D','Dagen') ruimteuitv_kritisch, ms.mld_stdmsrtruimte_t_uitv_pr2.tijdsduur||' '|| DECODE(ms.mld_stdmsrtruimte_t_uitv_pr2.eenheid,'U','Uren','D','Dagen') ruimteuitv_hoog, ms.mld_stdmsrtruimte_t_uitvtijd.tijdsduur||' '|| DECODE(ms.mld_stdmsrtruimte_t_uitvtijd.eenheid,'U','Uren','D','Dagen') ruimteuitv_normaal, ms.mld_stdmsrtruimte_t_uitv_pr4.tijdsduur||' '|| DECODE(ms.mld_stdmsrtruimte_t_uitv_pr4.eenheid,'U','Uren','D','Dagen') ruimteuitv_laag, pd.prs_dienst_omschrijving dienst, b.prs_bedrijf_naam leverancier, b.prs_leverancier_nr leverancierNr, (SELECT alg_locatie_code FROM alg_locatie al, alg_gebouw ag WHERE ag.alg_gebouw_key= pdl.alg_gebouw_key AND al.alg_locatie_key=ag.alg_locatie_key) locatie_code, (SELECT alg_gebouw_code FROM alg_gebouw WHERE alg_gebouw_key=pdl.alg_gebouw_key) gebouw_code, pdl.prs_bdl_t_uitvoertijd.tijdsduur||' '|| DECODE(pdl.prs_bdl_t_uitvoertijd.tijdsduur,'U','Uren','D','Dagen') bedruitv_normaal FROM mld_v_rap_stdmelding m, mld_stdmelding msm, mld_stdmsrtruimte ms, PRS_DIENST pd, prs_bedrijfdienstlocatie pdl, prs_bedrijf b WHERE msm.mld_stdmelding_key=m.melding_key AND pd.prs_dienst_key(+) = msm.prs_dienst_key AND pdl.prs_dienst_key = pd.prs_dienst_key AND b.prs_bedrijf_key = pdl.prs_bedrijf_key AND m.melding_key=ms.mld_stdmelding_key(+); -- VIEW TBV Financiele caterng rappoortage CREATE OR REPLACE VIEW pror_v_select_catering AS SELECT distinct rra.res_rsv_ruimte_key rrr_key, rrr.res_reservering_key||'/'||rrr.res_rsv_ruimte_volgnr reservering, rrr.res_rsv_ruimte_opmerking opmerking, 'Regulier' extra_opmerking, rrr.res_rsv_ruimte_van van, rrr.res_rsv_ruimte_tot tot, (SELECT prs_perslid_naam_friendly FROM prs_v_perslid_fullnames WHERE prs_perslid_key=rrr.res_rsv_ruimte_contact_key) aanvrager, p.prs_perslid_telefoonnr telefoon, p.prs_perslid_email email, k.prs_kostenplaats_key, k.prs_kostenplaats_nr kostenplaats, k.prs_kostenplaats_omschrijving, COALESCE ( (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||alg_ruimte_nr FROM alg_v_ruimte_gegevens alg WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||MIN(alg.alg_ruimte_nr) FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key AND rr.res_ruimte_key = rro.res_ruimte_key AND rarm.res_ruimte_key = rr.res_ruimte_key AND rarm.res_alg_ruimte_verwijder IS NULL AND alg.alg_ruimte_key = rarm.alg_ruimte_key GROUP BY alg_locatie_code,alg_gebouw_upper,alg_verdieping_code)) loc_gb_ruimtenr, COALESCE ( (SELECT alg_ruimte_nr FROM alg_v_ruimte_gegevens alg WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), (SELECT MIN(alg.alg_ruimte_nr) FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key AND rr.res_ruimte_key = rro.res_ruimte_key AND rarm.res_ruimte_key = rr.res_ruimte_key AND rarm.res_alg_ruimte_verwijder IS NULL AND alg.alg_ruimte_key = rarm.alg_ruimte_key)) ruimtenr, rrr.res_activiteit_key activiteit_key FROM res_rsv_artikel rra, res_rsv_ruimte rrr, prs_kostenplaats k, prs_v_perslid_gegevens p WHERE rrr.res_rsv_ruimte_van > TO_DATE('01-05-2022','DD-MM-YYYY') AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND rrr.res_status_bo_key = 2 AND rrr.res_status_fo_key = 2 AND p.prs_perslid_key=rrr.res_rsv_ruimte_contact_key AND rra.res_rsv_artikel_verwijder IS NULL AND rrr.res_rsv_ruimte_verwijder IS NULL UNION -- alle bezrogde reserveringn SELECT distinct rra.res_rsv_ruimte_key rrr_key, rrr.res_reservering_key||'/'||rrr.res_rsv_ruimte_volgnr reservering, rrr.res_rsv_ruimte_opmerking opmerking, 'Bezorgen' extra_opmerking, rrr.res_rsv_ruimte_van van, rrr.res_rsv_ruimte_tot tot, (SELECT prs_perslid_naam_friendly FROM prs_v_perslid_fullnames WHERE prs_perslid_key=rrr.res_rsv_ruimte_contact_key) aanvrager, p.prs_perslid_telefoonnr telefoon, p.prs_perslid_email email, k.prs_kostenplaats_key, k.prs_kostenplaats_nr kostenplaats, k.prs_kostenplaats_omschrijving, -- b.prs_bedrijf_key, -- b.prs_overeenkomst_nr, COALESCE ( (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||alg_ruimte_nr FROM alg_v_ruimte_gegevens alg WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||MIN(alg.alg_ruimte_nr) FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key AND rr.res_ruimte_key = rro.res_ruimte_key AND rarm.res_ruimte_key = rr.res_ruimte_key AND rarm.res_alg_ruimte_verwijder IS NULL AND alg.alg_ruimte_key = rarm.alg_ruimte_key GROUP BY alg_locatie_code,alg_gebouw_upper,alg_verdieping_code)) loc_gb_ruimtenr, COALESCE ( (SELECT alg_ruimte_nr FROM alg_v_ruimte_gegevens alg WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), (SELECT MIN(alg.alg_ruimte_nr) FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key AND rr.res_ruimte_key = rro.res_ruimte_key AND rarm.res_ruimte_key = rr.res_ruimte_key AND rarm.res_alg_ruimte_verwijder IS NULL AND alg.alg_ruimte_key = rarm.alg_ruimte_key)) ruimtenr, rrr.res_activiteit_key activiteit_key FROM res_rsv_artikel rra, res_rsv_ruimte rrr, prs_kostenplaats k, prs_v_perslid_gegevens p WHERE rrr.res_rsv_ruimte_van > TO_DATE('01-05-2022','DD-MM-YYYY') AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND rrr.res_status_fo_key = 2 -- Alleen definitieve res AND rrr.res_rsv_ruimte_cvab_mode IS NOT NULL -- betreft een losse catering AND p.prs_perslid_key=rrr.res_rsv_ruimte_contact_key UNION -- alle te laat verwijderde outlook reservereingen met catering SELECT distinct rrr.res_rsv_ruimte_key rrr_key, rrr.res_reservering_key||'/'||rrr.res_rsv_ruimte_volgnr reservering, rrr.res_rsv_ruimte_opmerking opmerking, 'Te late annulering' extra_opmerking, rrr.res_rsv_ruimte_van van, rrr.res_rsv_ruimte_tot tot, (SELECT prs_perslid_naam_friendly FROM prs_v_perslid_fullnames WHERE prs_perslid_key=rrr.res_rsv_ruimte_contact_key) aanvrager, p.prs_perslid_telefoonnr telefoon, p.prs_perslid_email email, k.prs_kostenplaats_key, k.prs_kostenplaats_nr kostenplaats, k.prs_kostenplaats_omschrijving, COALESCE ( (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||alg_ruimte_nr FROM alg_v_ruimte_gegevens alg WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||MIN(alg.alg_ruimte_nr) FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key AND rr.res_ruimte_key = rro.res_ruimte_key AND rarm.res_ruimte_key = rr.res_ruimte_key AND rarm.res_alg_ruimte_verwijder IS NULL AND alg.alg_ruimte_key = rarm.alg_ruimte_key GROUP BY alg_locatie_code,alg_gebouw_upper,alg_verdieping_code)) loc_gb_ruimtenr, COALESCE ( (SELECT alg_ruimte_nr FROM alg_v_ruimte_gegevens alg WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), (SELECT MIN(alg.alg_ruimte_nr) FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key AND rr.res_ruimte_key = rro.res_ruimte_key AND rarm.res_ruimte_key = rr.res_ruimte_key AND rarm.res_alg_ruimte_verwijder IS NULL AND alg.alg_ruimte_key = rarm.alg_ruimte_key)) ruimtenr, rrr.res_activiteit_key activiteit_key FROM res_rsv_ruimte rrr, prs_kostenplaats k, prs_v_perslid_gegevens p, (SElECT r.*, (SELECT MAX(rdp.res_disc_params_cancel_dagen) annuleer_dagen FROM res_rsv_artikel rra, res_artikel ra, res_discipline rd, res_disc_params rdp WHERE res_rsv_ruimte_key = r.res_rsv_ruimte_key AND ra.res_artikel_key = rra.res_artikel_key AND ra.res_discipline_key = rd.ins_discipline_key AND rdp.res_ins_discipline_key=rd.ins_discipline_key) annuleer_dagen FROM (SELECT DISTINCT res.res_rsv_ruimte_key res_rsv_ruimte_key, res.res_reservering_key res_reservering_key, res.res_rsv_ruimte_volgnr res_rsv_ruimte_volgnr, res.res_rsv_ruimte_host_key gastheer_key, res.res_rsv_ruimte_verwijder datum_verwijder, fac.safe_to_date ( TO_CHAR (res.res_rsv_ruimte_van, 'DD-MM-YYYY')||' 12:00', 'DD-MM-YYYY HH24:MI') leverdatum FROM res_rsv_ruimte res, res_rsv_artikel rra WHERE res.res_rsv_ruimte_verwijder IS NOT NULL AND res.res_rsv_ruimte_externnr IS NOT NULL -- AND res.res_status_fo_key=4 AND rra.res_rsv_ruimte_key=res.res_rsv_ruimte_key) r) x WHERE rrr.res_rsv_ruimte_van > TO_DATE('01-05-2022','DD-MM-YYYY') AND rrr.res_rsv_ruimte_key = x.res_rsv_ruimte_key AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND p.prs_perslid_key=rrr.res_rsv_ruimte_contact_key AND x.datum_verwijder> x.leverdatum - x.annuleer_dagen -- bepalen of de annulering te laat was AND rrr.res_rsv_ruimte_key NOT IN (SELECT rkw.res_rsv_ruimte_key -- deze zijn door kenmerk uitgesloten van facturatie (aangegeven door cateraar) FROM res_kenmerkwaarde rkw, res_kenmerk rk WHERE rkw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rkw.res_kenmerk_key = rk.res_kenmerk_key AND rk.res_kenmerk_omschrijving='Niet factureren'); -- PROR#90220 - Kopie van pror_v_fin_catering_rapport alleen dan zonder dat alleen afgelopen maand toont maar alle catering. De filter komt in het Rapport zelf in facilitor. -- Doel: kunnen navigeren tussen verschillende data. CREATE OR REPLACE VIEW pror_v_fin_catering_rapport ( bestelnr, van, bestellingreferentie, kostenplaatsnr, locatie, ruimte, aanvrager, leveringsdatum, aantal, artikel_nr, artikel_omschrijving, prijs_inc_btw, subtot_inc_btw, subtot_excl_btw, btw, aantal_personen, kosten_pp_inc_btw, kosten_pp_exc_btw, zakelijk_nietzakelijk ) AS SELECT bestelnr, van, bestellingreferentie, kostenplaatsnr, locatie, ruimte, aanvrager, leveringsdatum, aantal, artikel_nr, artikel_omschrijving, prijs_inc_btw, subtot_inc_btw, subtot_excl_btw, btw, COALESCE(aantal_personen,1) aantal_personen, ROUND(subtot_inc_btw/COALESCE(aantal_personen,1),2) kosten_pp_inc_btw, ROUND(subtot_excl_btw/COALESCE(aantal_personen,1),2) kosten_pp_exc_btw, zakelijk_nietzakelijk FROM ( SELECT p.rrr_key bestelnr, p.van van, p.reservering bestellingreferentie, p.kostenplaats kostenplaatsnr, SUBSTR(p.loc_gb_ruimtenr,INSTR(p.loc_gb_ruimtenr,'-',1,1)+1,INSTR(p.loc_gb_ruimtenr,'-',1,2)-INSTR(p.loc_gb_ruimtenr,'-',1,1)-1) locatie, p.loc_gb_ruimtenr ruimte, p.aanvrager aanvrager, TRUNC(p.van) leveringsdatum, art.aantal aantal, art.artikelnr artikel_nr, art.artikel_omschrijving artikel_omschrijving, art.prijs prijs_inc_btw, ROUND(COALESCE(art.totprijs,art.aantal*art.prijs),2) subtot_inc_btw, ROUND(COALESCE(art.totprijs,art.aantal*art.prijs)/((100+art.btw)/100),2) subtot_excl_btw, art.btw||'%' btw, (SELECT res_rsv_ruimte_bezoekers FROM res_rsv_ruimte WHERE res_rsv_ruimte_key=p.rrr_key) aantal_personen, (SELECT fud.fac_usrdata_omschr FROM res_kenmerkwaarde rkw, res_kenmerk rk, res_srtkenmerk rsk, fac_usrdata fud WHERE UPPER(rsk.res_srtkenmerk_omschrijving)='ZAKELIJK/NIET ZAKELIJK' AND rk.res_srtkenmerk_key=rsk.res_srtkenmerk_key AND rkw.res_kenmerk_key=rk.res_kenmerk_key AND rkw.res_rsv_ruimte_key=p.rrr_key AND fud.fac_usrdata_key=fac.safe_to_number(rkw.res_kenmerkreservering_waarde)) zakelijk_nietzakelijk, (SELECT k.res_kenmerk_key FROM res_kenmerk k WHERE k.res_kenmerk_omschrijving='ExternSyncDatum' AND k.res_activiteit_key = p.activiteit_key) kenmerk_sync_key FROM pror_v_select_catering p, ( SELECT rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key, rra.res_rsv_artikel_aantal aantal, ra.res_artikel_omschrijving artikel_omschrijving, COALESCE(ra.res_artikel_nr,ra.res_artikel_externnr) artikelnr, rra.res_rsv_artikel_levering van, ra.res_artikel_btw btw, rra.res_rsv_artikel_prijs totprijs, ra.res_artikel_prijs prijs, rd.ins_discipline_omschrijving catalogus, (SELECT rka.res_kenmerkartikel_waarde FROM res_kenmerkartikel rka, res_kenmerk rk, res_srtkenmerk rsk WHERE rka.res_rsv_artikel_key=rra.res_rsv_artikel_key AND rk.res_kenmerk_key=rka.res_kenmerk_key AND rsk.res_srtkenmerk_key = rk.res_srtkenmerk_key AND rsk.res_srtkenmerk_upper='MAATWERK OPMERKING') opmerking FROM res_rsv_artikel rra, res_artikel ra, res_discipline rd WHERE rra.res_artikel_key = ra.res_artikel_key AND ra.res_artikel_btw IN (0, 9, 21) AND rd.ins_discipline_key=ra.res_discipline_key) art WHERE art.res_rsv_ruimte_key=p.rrr_key); --- EXPORTS -- PROVAT EXPORT -- De geexporteerde meldingen een export datum meegeven. CREATE OR REPLACE PROCEDURE PROR_SELECT_PROVAT(p_applname IN VARCHAR2, p_applrun IN VARCHAR2 ) AS v_kenmerk_key NUMBER; CURSOR c IS SELECT * FROM pror_v_mld_provat WHERE provat_flag IS NULL OR (provat_flag='0' AND mld_update>TO_DATE(export_provat,'DD-MM-YYYY')); BEGIN FOR rec in c LOOP flx.setflex('MLD',823,rec.melding_key,'1'); -- Deze mogen geexporteerd worden A = 1041 P=823 END LOOP; END; / -- -- Export view voor alle meldingen die naar ProVat geexporteerd moeten die syncstatus=1 hebben -- CREATE OR REPLACE VIEW PROR_V_EXPORT_PROVAT ( result, result_order ) AS SELECT 'SLA-escalatieniveau;Requestnr;Begindatum;Contact;Service;Omschrijving;Gebouw;Assignee;Type request;Status;Kostenplaats;Omschrijving' heaeder,0 FROM DUAL UNION ALL SELECT ';'||melding_key||';'||TO_CHAR(begin_datum,'DD-MM-YYYY HH24:MI:SS')||';'||contact||';'||service||';'||omschrijving||';'||locatie||';'||assignee||';'||type_request||';'||mld_status||';;'||REPLACE(REPLACE(REPLACE(onderwerp, CHR(10),''),CHR(13),''),';',' ')||', '||kenmerkwaardes, 1 FROM pror_v_mld_provat WHERE provat_flag='1' ORDER BY 1 DESC; -- alle geexporteerde meldingen de sync date en syncstatus goedzetten CREATE OR REPLACE PROCEDURE PROR_EXPORT_PROVAT(p_applname IN VARCHAR2, p_applrun IN VARCHAR2, p_index IN VARCHAR2, p_file IN VARCHAR2 ) AS CURSOR c IS SELECT * FROM pror_v_mld_provat WHERE provat_flag='1'; BEGIN FOR rec IN C LOOP flx.setflex('MLD',757,rec.melding_key,TO_CHAR(SYSDATE,'DD-MM-YYYY')); -- A = 1021 P=757 flx.setflex('MLD',823,rec.melding_key,'0'); -- A = 1041 P=823 END LOOP; END; / -- EINDE PROVAT EXPORT -- EXPORT VAN CATERING BESTELLINGE TBV Eurest -- -- VIEW TBV EUREST EXPORT (ook gebruikt in rapportage) CREATE OR REPLACE VIEW pror_v_select_eurest_cat AS SELECT distinct rra.res_rsv_ruimte_key rrr_key, rrr.res_reservering_key||'/'||rrr.res_rsv_ruimte_volgnr reservering, rrr.res_rsv_ruimte_opmerking opmerking, 'Regulier' extra_opmerking, rrr.res_rsv_ruimte_van van, rrr.res_rsv_ruimte_tot tot, (SELECT prs_perslid_naam_friendly FROM prs_v_perslid_fullnames WHERE prs_perslid_key=rrr.res_rsv_ruimte_contact_key) aanvrager, p.prs_perslid_telefoonnr telefoon, p.prs_perslid_email email, k.prs_kostenplaats_key, k.prs_kostenplaats_nr kostenplaats, k.prs_kostenplaats_omschrijving, COALESCE ( (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||alg_ruimte_nr FROM alg_v_ruimte_gegevens alg WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||MIN(alg.alg_ruimte_nr) FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key AND rr.res_ruimte_key = rro.res_ruimte_key AND rarm.res_ruimte_key = rr.res_ruimte_key AND rarm.res_alg_ruimte_verwijder IS NULL AND alg.alg_ruimte_key = rarm.alg_ruimte_key GROUP BY alg_locatie_code,alg_gebouw_upper,alg_verdieping_code)) loc_gb_ruimtenr, COALESCE ( (SELECT alg_ruimte_nr FROM alg_v_ruimte_gegevens alg WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), (SELECT MIN(alg.alg_ruimte_nr) FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key AND rr.res_ruimte_key = rro.res_ruimte_key AND rarm.res_ruimte_key = rr.res_ruimte_key AND rarm.res_alg_ruimte_verwijder IS NULL AND alg.alg_ruimte_key = rarm.alg_ruimte_key)) ruimtenr, rrr.res_activiteit_key activiteit_key FROM res_rsv_artikel rra, res_rsv_ruimte rrr, prs_kostenplaats k, prs_v_perslid_gegevens p WHERE rrr.res_rsv_ruimte_van > TO_DATE('01-05-2022','DD-MM-YYYY') AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND rrr.res_status_bo_key = 2 -- afgemeld AND rrr.res_status_fo_key = 2 AND p.prs_perslid_key=rrr.res_rsv_ruimte_contact_key AND rra.res_rsv_artikel_verwijder IS NULL AND rrr.res_rsv_ruimte_verwijder IS NULL AND rrr.res_rsv_ruimte_key NOT IN (SELECT rkw.RES_RSV_RUIMTE_KEY FROM res_kenmerkwaarde rkw, res_kenmerk rk WHERE rkw.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY AND rk.RES_KENMERK_KEY = rkw.RES_KENMERK_KEY AND rk.RES_KENMERK_OMSCHRIJVING='ExternSyncDatum') -- AND rrr.res_rsv_ruimte_externsyncdate IS NULL KUNNEN WE NIET GEBRUIKEN AANGEZIEN DE OUTLOOK KOPPELING DEZE GEBRUIKT UNION -- alle bezrogde reserveringn SELECT distinct rra.res_rsv_ruimte_key rrr_key, rrr.res_reservering_key||'/'||rrr.res_rsv_ruimte_volgnr reservering, rrr.res_rsv_ruimte_opmerking opmerking, 'Bezorgen' extra_opmerking, rrr.res_rsv_ruimte_van van, rrr.res_rsv_ruimte_tot tot, (SELECT prs_perslid_naam_friendly FROM prs_v_perslid_fullnames WHERE prs_perslid_key=rrr.res_rsv_ruimte_contact_key) aanvrager, p.prs_perslid_telefoonnr telefoon, p.prs_perslid_email email, k.prs_kostenplaats_key, k.prs_kostenplaats_nr kostenplaats, k.prs_kostenplaats_omschrijving, -- b.prs_bedrijf_key, -- b.prs_overeenkomst_nr, COALESCE ( (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||alg_ruimte_nr FROM alg_v_ruimte_gegevens alg WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||MIN(alg.alg_ruimte_nr) FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key AND rr.res_ruimte_key = rro.res_ruimte_key AND rarm.res_ruimte_key = rr.res_ruimte_key AND rarm.res_alg_ruimte_verwijder IS NULL AND alg.alg_ruimte_key = rarm.alg_ruimte_key GROUP BY alg_locatie_code,alg_gebouw_upper,alg_verdieping_code)) loc_gb_ruimtenr, COALESCE ( (SELECT alg_ruimte_nr FROM alg_v_ruimte_gegevens alg WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), (SELECT MIN(alg.alg_ruimte_nr) FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key AND rr.res_ruimte_key = rro.res_ruimte_key AND rarm.res_ruimte_key = rr.res_ruimte_key AND rarm.res_alg_ruimte_verwijder IS NULL AND alg.alg_ruimte_key = rarm.alg_ruimte_key)) ruimtenr, rrr.res_activiteit_key activiteit_key FROM res_rsv_artikel rra, res_rsv_ruimte rrr, prs_kostenplaats k, prs_v_perslid_gegevens p WHERE rrr.res_rsv_ruimte_van > TO_DATE('01-05-2022','DD-MM-YYYY') AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND rrr.res_status_fo_key = 2 -- Alleen definitieve res AND rrr.res_rsv_ruimte_cvab_mode IS NOT NULL -- betreft een losse catering AND p.prs_perslid_key=rrr.res_rsv_ruimte_contact_key AND rrr.res_rsv_ruimte_key NOT IN (SELECT rkw.RES_RSV_RUIMTE_KEY FROM res_kenmerkwaarde rkw, res_kenmerk rk WHERE rkw.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY AND rk.RES_KENMERK_KEY = rkw.RES_KENMERK_KEY AND rk.RES_KENMERK_OMSCHRIJVING='ExternSyncDatum') -- AND rrr.res_rsv_ruimte_externsyncdate IS NULL UNION -- alle te laat verwijderde outlook reservereingen met catering SELECT distinct rrr.res_rsv_ruimte_key rrr_key, rrr.res_reservering_key||'/'||rrr.res_rsv_ruimte_volgnr reservering, rrr.res_rsv_ruimte_opmerking opmerking, 'Te late annulering' extra_opmerking, rrr.res_rsv_ruimte_van van, rrr.res_rsv_ruimte_tot tot, (SELECT prs_perslid_naam_friendly FROM prs_v_perslid_fullnames WHERE prs_perslid_key=rrr.res_rsv_ruimte_contact_key) aanvrager, p.prs_perslid_telefoonnr telefoon, p.prs_perslid_email email, k.prs_kostenplaats_key, k.prs_kostenplaats_nr kostenplaats, k.prs_kostenplaats_omschrijving, COALESCE ( (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||alg_ruimte_nr FROM alg_v_ruimte_gegevens alg WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||MIN(alg.alg_ruimte_nr) FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key AND rr.res_ruimte_key = rro.res_ruimte_key AND rarm.res_ruimte_key = rr.res_ruimte_key AND rarm.res_alg_ruimte_verwijder IS NULL AND alg.alg_ruimte_key = rarm.alg_ruimte_key GROUP BY alg_locatie_code,alg_gebouw_upper,alg_verdieping_code)) loc_gb_ruimtenr, COALESCE ( (SELECT alg_ruimte_nr FROM alg_v_ruimte_gegevens alg WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), (SELECT MIN(alg.alg_ruimte_nr) FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key AND rr.res_ruimte_key = rro.res_ruimte_key AND rarm.res_ruimte_key = rr.res_ruimte_key AND rarm.res_alg_ruimte_verwijder IS NULL AND alg.alg_ruimte_key = rarm.alg_ruimte_key)) ruimtenr, rrr.res_activiteit_key activiteit_key FROM res_rsv_ruimte rrr, prs_kostenplaats k, prs_v_perslid_gegevens p, (SElECT r.*, (SELECT MAX(rdp.res_disc_params_cancel_dagen) annuleer_dagen FROM res_rsv_artikel rra, res_artikel ra, res_discipline rd, res_disc_params rdp WHERE res_rsv_ruimte_key = r.res_rsv_ruimte_key AND ra.res_artikel_key = rra.res_artikel_key AND ra.res_discipline_key = rd.ins_discipline_key AND rdp.res_ins_discipline_key=rd.ins_discipline_key) annuleer_dagen FROM (SELECT DISTINCT res.res_rsv_ruimte_key res_rsv_ruimte_key, res.res_reservering_key res_reservering_key, res.res_rsv_ruimte_volgnr res_rsv_ruimte_volgnr, res.res_rsv_ruimte_host_key gastheer_key, res.res_rsv_ruimte_verwijder datum_verwijder, fac.safe_to_date ( TO_CHAR (res.res_rsv_ruimte_van, 'DD-MM-YYYY')||' 12:00', 'DD-MM-YYYY HH24:MI') leverdatum FROM res_rsv_ruimte res, res_rsv_artikel rra WHERE res.res_rsv_ruimte_verwijder IS NOT NULL AND res.res_rsv_ruimte_externnr IS NOT NULL -- AND res.res_status_fo_key=4 AND rra.res_rsv_ruimte_key=res.res_rsv_ruimte_key) r) x WHERE rrr.res_rsv_ruimte_van > TO_DATE('01-05-2022','DD-MM-YYYY') AND rrr.res_rsv_ruimte_key = x.res_rsv_ruimte_key AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND p.prs_perslid_key=rrr.res_rsv_ruimte_contact_key AND x.datum_verwijder> x.leverdatum - x.annuleer_dagen -- bepalen of de annulering te laat was AND rrr.res_rsv_ruimte_key NOT IN (SELECT rkw.RES_RSV_RUIMTE_KEY FROM res_kenmerkwaarde rkw, res_kenmerk rk WHERE rkw.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY AND rk.RES_KENMERK_KEY = rkw.RES_KENMERK_KEY AND rk.RES_KENMERK_OMSCHRIJVING='ExternSyncDatum') AND rrr.res_rsv_ruimte_key NOT IN (SELECT rkw.res_rsv_ruimte_key -- deze zijn door kenmerk uitgesloten van facturatie (aangegeven door cateraar) FROM res_kenmerkwaarde rkw, res_kenmerk rk WHERE rkw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rkw.res_kenmerk_key = rk.res_kenmerk_key AND rk.res_kenmerk_omschrijving='Niet factureren'); CREATE OR REPLACE PROCEDURE PROR_SELECT_EUREST_CAT( p_applname IN VARCHAR2, p_applrun IN VARCHAR2 ) AS CURSOR sel IS SELECT p.*, (SELECT alg.alg_gebouw_code FROM alg_v_allonrgoed_gegevens alg WHERE alg.alg_plaatsaanduiding=p.loc_gb_ruimtenr) gebouw_code, (SELECT k.res_kenmerk_key from res_kenmerk k WHERE k.res_kenmerk_omschrijving='ExternSyncDatum' AND k.res_activiteit_key = p.activiteit_key) kenmerk_sync_key FROM PROR_V_SELECT_EUREST_CAT p WHERE TRUNC(p.van) <= TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE,-1))); CURSOR sel_art(p_rrr_key NUMBER) IS SELECT rra.res_rsv_artikel_key, rra.res_rsv_artikel_aantal aantal, ra.res_artikel_omschrijving artikel_omschrijving, COALESCE(ra.RES_ARTIKEL_NR,ra.res_artikel_externnr) artikelnr, rra.res_rsv_artikel_levering van, ra.res_artikel_btw btw, rra.res_rsv_artikel_prijs totprijs, ra.res_artikel_prijs prijs, rd.ins_discipline_omschrijving catalogus, (SELECT rka.res_kenmerkartikel_waarde from res_kenmerkartikel rka, res_kenmerk rk, res_srtkenmerk rsk where rka.res_rsv_artikel_key=rra.res_rsv_artikel_key AND rk.res_kenmerk_key=rka.res_kenmerk_key AND rsk.res_srtkenmerk_key = rk.res_srtkenmerk_key AND rsk.res_srtkenmerk_upper='MAATWERK OPMERKING') opmerking FROM res_rsv_artikel rra, res_artikel ra, res_discipline rd WHERE rra.res_rsv_ruimte_key=p_rrr_key AND rra.res_artikel_key = ra.res_artikel_key -- AND rra.res_status_bo_key = 2 -- afgemeld -- AND rra.res_rsv_artikel_verwijder IS NULL AND ra.res_artikel_btw IN (0, 9, 21) AND rd.ins_discipline_key=ra.res_discipline_key; v_bestand VARCHAR2(20); v_shop_token VARCHAR2(50); v_contact_email VARCHAR2(50); v_debitor_value VARCHAR2(20); v_counter NUMBER; v_artikelprijs NUMBER; v_maand NUMBER; v_jaar NUMBER; BEGIN v_bestand :='EUR-EX'; v_counter:=0; -- CIRFOOD settings v_shop_token:='CMPS_1234'; v_contact_email :='compass@prorail.nl'; v_debitor_value := 'PROR_DEB_CODE'; -- IF fac.safe_to_number((TO_CHAR(SYSDATE,'MM'))) = 1 THEN -- v_maand:=12 -- v_jaar := fac_safe_to_number(TO_CHAR(SYSDATE,'YYYY'))-1; -- END IF; -- eerst opschonen DELETE FROM fac_rapport WHERE fac_rapport_node = v_bestand; pror.add_xml_row (v_bestand, ''); pror.add_xml_row (v_bestand, ''); pror.add_xml_row (v_bestand, '
'); /* pror.add_xml_row (v_bestand, ''||v_shop_token||''); */ pror.add_xml_row (v_bestand, ''); pror.add_xml_row (v_bestand, ''); pror.add_xml_row (v_bestand, 'Prorail'); pror.add_xml_row (v_bestand, ''||v_contact_email||''); pror.add_xml_row (v_bestand, ''); pror.add_xml_row (v_bestand, 'Purchaseorder Facilitor'); pror.add_xml_row (v_bestand, '
'); pror.add_xml_row (v_bestand, ''); pror.add_xml_row (v_bestand, ''); FOR rec IN sel LOOP v_counter:=v_counter+1; pror.add_xml_row(v_bestand, ''); pror.add_xml_row(v_bestand, ''); pror.add_xml_element (v_bestand, 'Name', 'PROR'); pror.add_xml_element (v_bestand, 'ID', '215990'); pror.add_xml_element (v_bestand, 'ExternalID', rec.reservering); pror.add_xml_row(v_bestand, ''); pror.add_xml_element (v_bestand, 'Name', rec.aanvrager); pror.add_xml_element (v_bestand, 'Tel', rec.telefoon); pror.add_xml_element (v_bestand, 'Email', rec.email); pror.add_xml_row(v_bestand, ''); pror.add_xml_row(v_bestand, ''); pror.add_xml_element (v_bestand, 'Comments', REGEXP_REPLACE(rec.opmerking, '[^ -~|[:space:]]', '')); pror.add_xml_row(v_bestand, ''); pror.add_xml_row(v_bestand, ''); pror.add_xml_element (v_bestand, 'Reference', SUBSTR(rec.loc_gb_ruimtenr,INSTR(rec.loc_gb_ruimtenr,'-',1,1)+1,INSTR(rec.loc_gb_ruimtenr,'-',1,2)-INSTR(rec.loc_gb_ruimtenr,'-',1,1)-1)); pror.add_xml_row(v_bestand, ''); pror.add_xml_element (v_bestand, 'Description',rec.loc_gb_ruimtenr); pror.add_xml_row(v_bestand, ''); pror.add_xml_row(v_bestand, ''); pror.add_xml_element (v_bestand, 'RequestedDeliveryDateTime',to_char(rec.van,'YYYYMMDD')||'T'||to_char(rec.van,'HH24:MI:SS')); pror.add_xml_element (v_bestand, 'RequestedCollectDateTime',to_char(rec.tot,'YYYYMMDD')||'T'||to_char(rec.tot,'HH24:MI:SS')); pror.add_xml_row(v_bestand, ''); pror.add_xml_row(v_bestand, ''); pror.add_xml_element (v_bestand, 'Code',rec.kostenplaats); pror.add_xml_row(v_bestand, ''); pror.add_xml_row(v_bestand, ''); FOR rec_art in sel_art(rec.rrr_key) LOOP pror.add_xml_row(v_bestand, ''); pror.add_xml_element (v_bestand, 'Start',TO_CHAR(rec_art.van,'HH24:MI')); pror.add_xml_row(v_bestand, ''); pror.add_xml_element (v_bestand, 'Description',rec_art.artikel_omschrijving); pror.add_xml_element (v_bestand, 'Reference',rec_art.artikelnr); pror.add_xml_row(v_bestand, ''); v_artikelprijs:=0; IF UPPER(rec_art.catalogus) LIKE 'MAATWERK%' THEN IF rec_art.totprijs IS NOT NULL THEN v_artikelprijs := rec_art.totprijs/rec_art.aantal; ELSE v_artikelprijs := rec_art.prijs; END IF; ELSE v_artikelprijs := rec_art.prijs; END IF; pror.add_xml_element (v_bestand, 'QuantityOrdered',rec_art.aantal); pror.add_xml_row(v_bestand, ''); pror.add_xml_element (v_bestand, 'NetPrice',ROUND(v_artikelPrijs/(1+rec_art.btw/100),2)); pror.add_xml_element (v_bestand, 'BrtPrice',v_artikelprijs); pror.add_xml_element (v_bestand, 'Currency','EUR'); pror.add_xml_element (v_bestand, 'VatPercentage',rec_art.btw); pror.add_xml_row(v_bestand, ''); pror.add_xml_row(v_bestand, ''); UPDATE res_rsv_artikel SET res_rsv_artikel_externsyncdate=SYSDATE WHERE res_rsv_artikel_key=rec_art.res_rsv_artikel_key; END LOOP; pror.add_xml_row(v_bestand, ''); pror.add_xml_row(v_bestand, ''); flx.setflex('RES',rec.kenmerk_sync_key,rec.rrr_key,TO_CHAR(TRUNC(SYSDATE),'DD-MM-YYYY')); -- UPDATE res_rsv_ruimte SET res_rsv_ruimte_externsyncdate=SYSDATE WHERE res_rsv_ruimte_key=rec.rrr_key; END LOOP; pror.add_xml_row (v_bestand, ''); pror.add_xml_row (v_bestand, ''); pror.add_xml_row (v_bestand, '
'); IF v_counter=0 -- we hebben niets te exporteren dan kunnen we de xml headers ook opruimen. THEN DELETE FROM fac_rapport WHERE fac_rapport_node = v_bestand; END IF; END; / CREATE OR REPLACE VIEW PROR_V_EXPORT_EUREST_CAT ( result, result_order ) AS SELECT fac_rapport_regel, fac_rapport_volgnr FROM fac_rapport WHERE fac_rapport_node LIKE 'EUR-EX%'; -- EINDE EXPORT COMPASSGROUP CREATE OR REPLACE PROCEDURE PROR_EXPORT_NSECURE_UPD(p_applname IN VARCHAR2, p_applrun IN VARCHAR2, p_filedir IN VARCHAR2, p_filename IN VARCHAR2) AS oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_errorhint VARCHAR2 (100); v_aanduiding VARCHAR2 (100); v_locatie_key NUMBER; v_lengte NUMBER; v_new_note VARCHAR2 (4000); v_note_key NUMBER; CURSOR upd IS SELECT o.mld_opdr_key, M.MLD_MELDING_KEY from mld_opdr o, mld_melding m WHERE o.MLD_STATUSOPDR_KEY IN (5,8) AND m.mld_melding_key = o.mld_melding_key AND o.MLD_UITVOERENDE_KEYS=(select b.prs_bedrijf_key from prs_bedrijf b where b.PRS_LEVERANCIER_NR ='313341' and b.PRS_BEDRIJF_UITVOERENDE='1' AND b.PRS_BEDRIJF_VERWIJDER IS NULL) AND o.MLD_OPDR_EXTERNSYNCDATE < (select MAX(mld_melding_note_aanmaak) from mld_melding_note where mld_melding_key=o.mld_melding_key and mld_melding_note_flag =1); BEGIN FOR rec IN upd LOOP SELECT MLD_MELDING_NOTE_OMSCHRIJVING INTO v_new_note FROM (SELECT MAX(mld_MELDING_note_aanmaak), mld_MELDING_key, mld_melding_note_key, MLD_melding_NOTE_OMSCHRIJVING from mld_melding_note where mld_melding_key=rec.mld_melding_key GROUP BY mld_melding_key,mld_melding_note_key,MLD_melding_NOTE_OMSCHRIJVING); -- Gaan we hem nu in de melding kenmerk notite zetten SELECT k.mld_kenmerk_key INTO v_note_key FROM mld_kenmerk k, mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key AND UPPER (sk.mld_srtkenmerk_omschrijving) = 'UPDATE NOTITIES'; v_errorhint := 'Verwijderen kenmerk bij de opdracht : ' || rec.mld_melding_key; -- DELETE MLD_KENMERKOPDR ko -- WHERE ko.mld_opdr_key = rec.mld_opdr_key -- AND ko.mld_kenmerk_key = v_note_key; mld.upsertopdrachtkenmerk (v_note_key, rec.mld_opdr_key, v_new_note); v_errorhint := 'Opdracht opnieuw te verzenden naar Nsecure voor opdracht : ' || rec.mld_melding_key; -- Eerst zetten we de opdracht opnieuw klaar om te verzenden UPDATE mld_opdr o SET mld_opdr_teverzenden = 2, mld_opdr_verzonden = NULL WHERE o.mld_opdr_key = rec.mld_opdr_key; END LOOP; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); fac.writelog (p_applname, 'E', oracle_err_num || '/' || oracle_err_mes, v_errorhint); END; / ------ payload end ------ SET DEFINE OFF BEGIN adm.systrackscriptId ('$Id$', 0); END; / COMMIT; SET ECHO OFF SPOOL OFF SET DEFINE ON PROMPT Logfile of this upgrade is: &fcltlogfile