diff --git a/AA/aaxx_.sql b/AA/aaxx_.sql deleted file mode 100644 index 7f319dfb1..000000000 --- a/AA/aaxx_.sql +++ /dev/null @@ -1,15656 +0,0 @@ --- --- $Id$ --- --- Script containing customer generic configuration sql statements for AAFM - -DEFINE thisfile = 'AAXX.SQL' -DEFINE dbuser = '^AA|^ASMS|^GULU|^NMMS|^RABO|^ZKHM' - -SET ECHO ON -SET DEFINE ON -COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT; -WHENEVER SQLERROR EXIT; -SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL; -WHENEVER SQLERROR CONTINUE; -SPOOL &fcltlogfile -SET DEFINE OFF - -@@aa_prs_pack.sql; - ---============================================================================= --- EXPORTFUNCTIES GENERIEK -------------------------------------------------------------------------------- -CREATE OR REPLACE FUNCTION aaxx_exp_escape (a VARCHAR2) RETURN VARCHAR2 -AS -BEGIN - RETURN replace(a, '"', ''''); -END aaxx_exp_escape; -/ - -CREATE OR REPLACE FUNCTION aaxx_get_user - RETURN VARCHAR2 -AS - v_user VARCHAR2 (20); -BEGIN - v_user := SUBSTR (USER, 1, 4); - IF v_user = 'AAAH' THEN RETURN 'AH'; END IF; - IF v_user = 'AAAR' THEN RETURN 'ARCADIS'; END IF; - IF v_user = 'AADO' THEN RETURN 'DOW'; END IF; - IF v_user = 'AADB' THEN RETURN 'DBS'; END IF; - IF v_user = 'AADS' THEN RETURN 'DSM'; END IF; - IF v_user = 'AAEN' THEN RETURN 'ENEXIS'; END IF; - IF v_user = 'AAES' THEN RETURN 'ESSENT'; END IF; - IF v_user = 'AAEY' THEN RETURN 'EY'; END IF; - IF v_user = 'AAFP' THEN RETURN 'FPC'; END IF; - IF v_user = 'AAHU' THEN RETURN 'HUNTSMAN'; END IF; - IF v_user = 'AAGN' THEN RETURN 'GN'; END IF; - IF v_user = 'AAIT' THEN RETURN 'IT'; END IF; - IF v_user = 'AALB' THEN RETURN 'LB'; END IF; - IF v_user = 'AANS' THEN RETURN 'NS'; END IF; - IF v_user = 'AAPM' THEN RETURN 'PM'; END IF; - IF v_user = 'AARW' THEN RETURN 'RWS'; END IF; - IF v_user = 'AASA' THEN RETURN 'SABIC'; END IF; - IF v_user = 'AASI' THEN RETURN 'SITECH'; END IF; - IF v_user = 'AAVG' THEN RETURN 'VG'; END IF; - IF v_user = 'AAVL' THEN RETURN 'VL'; END IF; - IF v_user = 'AAZC' THEN RETURN 'ZCN'; END IF; - IF v_user = 'ASMS' THEN RETURN 'AMS'; END IF; - IF v_user = 'GULU' THEN RETURN 'GUL'; END IF; - IF v_user = 'NMMS' THEN RETURN 'NMM'; END IF; - IF v_user = 'RABO' THEN RETURN 'RABO'; END IF; - IF v_user = 'ZKHM' THEN RETURN 'ZKHM'; END IF; - RETURN ''; -END aaxx_get_user; -/ - --- functie om geimporteerde bedragen te converteren naar getallen. -CREATE OR REPLACE FUNCTION aaxx_get_imp_float (f_float VARCHAR2) - RETURN NUMBER -AS - v_komma_pos NUMBER; - v_punt_pos NUMBER; - v_float_text VARCHAR2 (100); -BEGIN - v_punt_pos := INSTR (f_float, '.'); - v_komma_pos := INSTR (f_float, ','); - - IF v_punt_pos <> 0 AND v_komma_pos <> 0 - THEN - IF v_punt_pos > v_komma_pos - THEN - v_float_text := REPLACE (f_float, ',', ''); - ELSE - v_float_text := REPLACE (f_float, '.', ''); - END IF; - ELSE - v_float_text := f_float; - END IF; - - RETURN fac.safe_to_number (REPLACE (v_float_text, ',', '.')); -END; -/ - - --- view met gegevens over een bestelling en bestelopdracht -CREATE OR REPLACE VIEW aaxx_v_bestelgegevens -AS - SELECT boi.bes_bestelopdr_key, - bes_bestelopdr_id, - sg.ins_discipline_key, - be.mld_adres_key_lev, - be.bes_bestelling_leverdatum, - bo.prs_bedrijf_key - FROM bes_bestelling be, - bes_bestelling_item bi, - bes_bestelopdr bo, - bes_bestelopdr_item boi, - bes_srtdeel sd, - bes_srtgroep sg - WHERE be.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 bi.bes_srtdeel_key = sd.bes_srtdeel_key - AND sd.bes_srtgroep_key = sg.bes_srtgroep_key; - - --- View om de exact code van een gebouw te bepalen. --- Dit kenmerk heeft voor de verschillende klanten een andere key. -CREATE OR REPLACE VIEW aaxx_v_exact_code_gebouw ( - alg_gebouw_key, - exact_code) -AS -SELECT alg_onrgoed_key alg_gebouw_key, - alg_onrgoedkenmerk_waarde exact_code - FROM alg_onrgoedkenmerk - WHERE alg_onrgoed_niveau = 'G' - AND alg_kenmerk_key = DECODE(aaxx_get_user, - 'FP', 1000, - 'HUNTSMAN', 1040, - 'IT', 1021, - 'NS', 1009, - 'SABIC', 1120, - 'SITECH', 1200, - 1020); - --- View om de exact code van een gebouw te bepalen op basis van een factuurkey --- Op dit moment ondersteunen we dit alleen bij opdrachten en contracten -CREATE OR REPLACE VIEW aaxx_v_exact_code_gebouw_fac -( - fin_factuur_key, - exact_code -) -AS -SELECT fin_factuur_key, exact_code - FROM fin_factuur f, - mld_opdr o, - mld_melding m, - alg_v_onroerendgoed og, - aaxx_v_exact_code_gebouw eg - WHERE f.mld_opdr_key = o.mld_opdr_key - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys - AND og.alg_gebouw_key = eg.alg_gebouw_key -UNION ALL -SELECT fin_factuur_key, exact_code - FROM fin_factuur f, cnt_contract_plaats cp, aaxx_v_exact_code_gebouw eg - WHERE f.cnt_contract_key = cp.cnt_contract_key - AND cp.cnt_alg_plaats_key = eg.alg_gebouw_key - AND cp.cnt_alg_plaats_code = 'G' -UNION ALL -SELECT DISTINCT fin_factuur_key, exact_code - FROM fin_factuur f, - aaxx_v_bestelgegevens bg, - mld_adres ma, - aaxx_v_exact_code_gebouw eg, - alg_gebouw g - WHERE f.bes_bestelopdr_key = bg.bes_bestelopdr_key - AND bg.mld_adres_key_lev = ma.mld_adres_key(+) - AND ma.mld_adres_gebouw_ruimte = g.alg_gebouw_code(+) - AND g.alg_gebouw_key = eg.alg_gebouw_key(+); - --- Functie om bij facturen met een btw tarief dat verlegd is, voor de verkoopfactuur toch een geldige --- btw code te genereren. De klant moet namelijk wel BTW betalen. -CREATE OR REPLACE FUNCTION aaxx_get_verkoop_btw_code (p_btwtabelwaarde_key IN NUMBER) RETURN VARCHAR2 -AS - v_verlegd NUMBER; - v_perc NUMBER(5,3); - v_code VARCHAR2(10); - v_btwtabel_key NUMBER; - -BEGIN - SELECT COALESCE(fin_btwtabelwaarde_verlegd,0), - fin_btwtabelwaarde_perc, - fin_btwtabelwaarde_code, - fin_btwtabel_key - INTO v_verlegd, - v_perc, - v_code, - v_btwtabel_key - FROM fin_btwtabelwaarde - WHERE fin_btwtabelwaarde_key = p_btwtabelwaarde_key; - - IF v_verlegd = 1 THEN - IF v_perc = 21 THEN v_code := 5; END IF; -- Bij 21 procent staandaard code 5 teruggeven - IF v_perc = 6 THEN v_code := 2; END IF; -- Bij 6 procent staandaard code 2 teruggeven - END IF; - RETURN v_code; -END aaxx_get_verkoop_btw_code; -/ - --- script om dagelijks terugkerende scripts aan te roepen. Kan aangeroepen worden vanuit de klantomgeving --- indien er voor die klant ook specifieke zaken dagelijks geregeld moeten worden. -CREATE OR REPLACE PROCEDURE aaxx_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) -AS -BEGIN - -- job om flexkenmerken bij projectorders in te vullen - IF aaxx_get_user <> 'AMS' AND aaxx_get_user <> 'GUL' THEN - aaxx_select_dwh_set_kenmerken (p_applname, p_applrun); - END IF; - - -- job om gebruikers die recentelijk niet ingelogd zijn de rechten te ontnemen. - -- In ieder geval niet voor: AAES, AAEN, AAVL, AAZC - IF -- aaxx_get_user = 'ARCADIS' AAAR#26433 - -- OR - aaxx_get_user = 'DOW' - OR aaxx_get_user = 'DSM' - OR aaxx_get_user = 'FPC' - OR aaxx_get_user = 'HUNTSMAN' - OR aaxx_get_user = 'LB' - -- OR aaxx_get_user = 'NS' AANS#25534 - OR aaxx_get_user = 'SABIC' - OR aaxx_get_user = 'SITECH' - OR aaxx_get_user = 'AMS' - OR aaxx_get_user = 'GUL' - THEN - aaxx_delete_non_active_users (p_applname, p_applrun); - END IF; - - -- verwijder key users met ORDBO2 rechten - IF -- aaxx_get_user = 'ARCADIS' AAAR#26433 - -- OR - aaxx_get_user = 'AH' - OR aaxx_get_user = 'DBS' - OR aaxx_get_user = 'DOW' - OR aaxx_get_user = 'DSM' - OR aaxx_get_user = 'EY' - OR aaxx_get_user = 'LB' - -- OR aaxx_get_user = 'NS' AANS#25534 - OR aaxx_get_user = 'SABIC' - OR aaxx_get_user = 'SITECH' - OR aaxx_get_user = 'VG' - OR aaxx_get_user = 'ZCN' - OR aaxx_get_user = 'AMS' - OR aaxx_get_user = 'GUL' - OR aaxx_get_user = 'NMM' - OR aaxx_get_user = 'RABO' - OR aaxx_get_user = 'ZKHM' - THEN - aaxx_delete_non_active_key (p_applname, p_applrun); - END IF; - - -- Haal de mensen die we zojuist de login hebben ontnomen ook uit de autorisatiegroepen. - DELETE fac_gebruikersgroep gg - WHERE EXISTS - (SELECT p.prs_perslid_key - FROM prs_perslid p - WHERE prs_perslid_oslogin IS NULL - AND prs_perslid_oslogin2 IS NULL - AND p.prs_perslid_key = gg.prs_perslid_key); - - -- job om bij to houden welke gebruikers vandaag ingelogd zijn geweest. - aaxx_export_login (p_applname, p_applrun); - - -- job om complimenten af te melden. - aaxx_afmelden_complimenten (p_applname, p_applrun); - - -- job om ordercorrecties door te voeren. - aaxx_ordercorrecties (p_applname, p_applrun); -END; -/ - --- script om dagelijks terugkerende scripts aan te roepen. Indien er geen klantspecifieke versie is. -CREATE OR REPLACE PROCEDURE aaxx_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) -AS -BEGIN - aaxx_daily_task (p_applname, p_applrun); -END; -/ - - -CREATE OR REPLACE PROCEDURE aaxx_imp_writelog ( - p_import_key IN NUMBER, - p_severity IN VARCHAR2, - p_errormsg IN VARCHAR2, - p_errorhint IN VARCHAR2) -AS - PRAGMA AUTONOMOUS_TRANSACTION; -BEGIN - fac.imp_writelog (p_import_key, - p_severity, - p_errormsg, - p_errorhint); - COMMIT; -END; -/ - -CREATE OR REPLACE PROCEDURE aaxx_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; -/ - -CREATE OR REPLACE PROCEDURE aaxx_add_xml_element ( - p_bestand IN VARCHAR2, - p_tag IN VARCHAR2, - p_value IN VARCHAR2) -AS -BEGIN - aaxx_add_xml_row(p_bestand, - '<' || p_tag || '>' - || xml.char_to_html(p_value) - || ''); -END; -/ - -CREATE OR REPLACE FUNCTION aaxx_get_kenmerk (p_module IN VARCHAR2, - p_kenmerk_key IN NUMBER, - p_link_key IN NUMBER) - RETURN VARCHAR2 -AS - v_kenmerk_type mld_srtkenmerk.mld_srtkenmerk_kenmerktype%TYPE; - v_kenmerk_waarde mld_kenmerkmelding.mld_kenmerkmelding_waarde%TYPE; - v_kenmerkdomein_key fac_kenmerkdomein.fac_kenmerkdomein_key%TYPE; - v_kenmerk_niveau ins_kenmerk.ins_kenmerk_niveau%TYPE; -BEGIN - CASE p_module - WHEN 'MLD' - THEN - SELECT mld_srtkenmerk_kenmerktype, - sk.fac_kenmerkdomein_key, - km.mld_kenmerkmelding_waarde - INTO v_kenmerk_type, - v_kenmerkdomein_key, - v_kenmerk_waarde - FROM mld_v_aanwezigkenmerkmelding km, - mld_kenmerk k, - mld_srtkenmerk sk - WHERE km.mld_melding_key = p_link_key - AND km.mld_kenmerk_key = p_kenmerk_key - AND km.mld_kenmerk_key = k.mld_kenmerk_key - AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key; - WHEN 'CNT' - THEN - SELECT cnt_srtkenmerk_kenmerktype, - sk.fac_kenmerkdomein_key, - kc.cnt_kenmerkcontract_waarde - INTO v_kenmerk_type, - v_kenmerkdomein_key, - v_kenmerk_waarde - FROM cnt_kenmerkcontract kc, - cnt_kenmerk k, - cnt_srtkenmerk sk - WHERE kc.cnt_contract_key = p_link_key - AND kc.cnt_kenmerk_key = p_kenmerk_key - AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key - AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key; - WHEN 'ALG' - THEN - SELECT alg_kenmerk_kenmerktype, - k.fac_kenmerkdomein_key, - aogk.alg_onrgoedkenmerk_waarde - INTO v_kenmerk_type, - v_kenmerkdomein_key, - v_kenmerk_waarde - FROM alg_onrgoedkenmerk aogk, alg_kenmerk k - WHERE aogk.alg_onrgoed_key = p_link_key - AND aogk.alg_kenmerk_key = p_kenmerk_key - AND aogk.alg_kenmerk_key = k.alg_kenmerk_key; - WHEN 'INS' - THEN - SELECT k.ins_kenmerk_niveau - INTO v_kenmerk_niveau - FROM ins_kenmerk k - WHERE ins_kenmerk_key = p_kenmerk_key; - - IF v_kenmerk_niveau = 'C' THEN - SELECT sk.ins_srtkenmerk_kenmerktype, - sk.fac_kenmerkdomein_key, - ikds.ins_kmdeelsrtcontr_waarde - INTO v_kenmerk_type, - v_kenmerkdomein_key, - v_kenmerk_waarde - FROM ins_kmdeelsrtcontr ikds, ins_kenmerk k, ins_srtkenmerk sk - WHERE ikds.ins_kmdeelsrtcontr_key = p_link_key - AND ikds.ins_kmdeelsrtcontr_verwijder IS NULL - AND ikds.ins_kenmerk_key = p_kenmerk_key - AND ikds.ins_kenmerk_key = k.ins_kenmerk_key - AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key; - ELSE - SELECT sk.ins_srtkenmerk_kenmerktype, - sk.fac_kenmerkdomein_key, - ikd.ins_kenmerkdeel_waarde - INTO v_kenmerk_type, - v_kenmerkdomein_key, - v_kenmerk_waarde - FROM ins_kenmerkdeel ikd, ins_kenmerk k, ins_srtkenmerk sk - WHERE ikd.ins_deel_key = p_link_key - AND ikd.ins_kenmerkdeel_verwijder IS NULL - AND ikd.ins_kenmerk_key = p_kenmerk_key - AND ikd.ins_kenmerk_key = k.ins_kenmerk_key - AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key; - END IF; - END CASE; - - RETURN aaxx_get_kenmerkwaarde (v_kenmerk_type, - v_kenmerkdomein_key, - v_kenmerk_waarde); -END; -/ - - -CREATE OR REPLACE FUNCTION aaxx_get_kenmerkwaarde ( - p_kenmerk_type VARCHAR2, - p_kenmerkdomein_key NUMBER, - p_kenmerk_waarde VARCHAR2) - RETURN VARCHAR2 -AS - v_result VARCHAR2(4000); -BEGIN - IF p_kenmerk_type = 'R' OR p_kenmerk_type = 'S' THEN - v_result := fac.getdomeinwaarde (p_kenmerkdomein_key, - p_kenmerk_waarde); - ELSIF p_kenmerk_type = 'D' THEN - v_result := TO_CHAR (fac.safe_to_date (p_kenmerk_waarde, 'dd-mm-yyyy'), 'yyyy-mm-dd'); - ELSE - v_result := p_kenmerk_waarde; - END IF; - return v_result; -END aaxx_get_kenmerkwaarde; -/ - -CREATE OR REPLACE PROCEDURE aaxx_set_kenmerk(p_module IN VARCHAR2, - p_kenmerk_key IN NUMBER, - p_link_key IN NUMBER, - p_kenmerk_waarde IN VARCHAR2, - p_history IN NUMBER) -AS - v_count NUMBER; - v_niveau VARCHAR2 (1); -BEGIN - CASE p_module - WHEN 'PRS' - THEN - -- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt - -- opgeslagen (da's dus redundant..?) - SELECT prs_kenmerk_niveau - INTO v_niveau - FROM prs_kenmerk - WHERE prs_kenmerk_key = p_kenmerk_key; - - SELECT COUNT ( * ) - INTO v_count - FROM prs_kenmerklink - WHERE prs_link_key = p_link_key - AND prs_kenmerk_key = p_kenmerk_key - AND prs_kenmerklink_verwijder IS NULL; - - IF v_count = 1 - THEN - IF p_kenmerk_waarde IS NULL - THEN - DELETE prs_kenmerklink - WHERE prs_link_key = p_link_key - AND prs_kenmerk_key = p_kenmerk_key - AND prs_kenmerklink_verwijder IS NULL; - ELSE - UPDATE prs_kenmerklink - SET prs_kenmerklink_waarde = p_kenmerk_waarde - WHERE prs_link_key = p_link_key - AND prs_kenmerk_key = p_kenmerk_key - AND prs_kenmerklink_verwijder IS NULL; - END IF; - ELSE - IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL - THEN - INSERT INTO prs_kenmerklink (prs_kenmerk_key, - prs_link_key, - prs_kenmerklink_niveau, - prs_kenmerklink_waarde) - VALUES (p_kenmerk_key, - p_link_key, - v_niveau, - p_kenmerk_waarde); - END IF; - END IF; - - WHEN 'ALG' - THEN - -- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt - -- opgeslagen (da's dus redundant..?) - SELECT alg_kenmerk_niveau - INTO v_niveau - FROM alg_kenmerk - WHERE alg_kenmerk_key = p_kenmerk_key; - - SELECT COUNT ( * ) - INTO v_count - FROM alg_onrgoedkenmerk - WHERE alg_onrgoed_key = p_link_key - AND alg_kenmerk_key = p_kenmerk_key - AND alg_onrgoedkenmerk_verwijder IS NULL; - - IF v_count = 1 - THEN - IF p_kenmerk_waarde IS NULL - THEN - DELETE alg_onrgoedkenmerk - WHERE alg_onrgoed_key = p_link_key - AND alg_kenmerk_key = p_kenmerk_key - AND alg_onrgoedkenmerk_verwijder IS NULL; - ELSE - UPDATE alg_onrgoedkenmerk - SET alg_onrgoedkenmerk_waarde = p_kenmerk_waarde - WHERE alg_onrgoed_key = p_link_key - AND alg_kenmerk_key = p_kenmerk_key - AND alg_onrgoedkenmerk_verwijder IS NULL; - END IF; - ELSE - IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL - THEN - INSERT INTO alg_onrgoedkenmerk (alg_kenmerk_key, - alg_onrgoed_key, - alg_onrgoed_niveau, - alg_onrgoedkenmerk_waarde) - VALUES (p_kenmerk_key, - p_link_key, - v_niveau, - p_kenmerk_waarde); - END IF; - END IF; - - WHEN 'MLD' - THEN - -- melding- of opdrachtkenmerk? - SELECT mld_kenmerk_niveau - INTO v_niveau - FROM mld_kenmerk - WHERE mld_kenmerk_key = p_kenmerk_key; - - CASE v_niveau - WHEN 'O' - THEN - SELECT COUNT ( * ) - INTO v_count - FROM mld_kenmerkopdr - WHERE mld_opdr_key = p_link_key - AND mld_kenmerk_key = p_kenmerk_key - AND mld_kenmerkopdr_verwijder IS NULL; - - IF v_count = 1 - THEN - IF p_kenmerk_waarde IS NULL - THEN - DELETE mld_kenmerkopdr - WHERE mld_opdr_key = p_link_key - AND mld_kenmerk_key = p_kenmerk_key - AND mld_kenmerkopdr_verwijder IS NULL; - ELSE - UPDATE mld_kenmerkopdr - SET mld_kenmerkopdr_waarde = p_kenmerk_waarde - WHERE mld_opdr_key = p_link_key - AND mld_kenmerk_key = p_kenmerk_key - AND mld_kenmerkopdr_verwijder IS NULL; - END IF; - ELSE - IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL - THEN - INSERT INTO mld_kenmerkopdr (mld_kenmerk_key, - mld_opdr_key, - mld_kenmerkopdr_waarde) - VALUES (p_kenmerk_key, - p_link_key, - p_kenmerk_waarde); - END IF; - END IF; - WHEN 'S' - THEN - SELECT COUNT ( * ) - INTO v_count - FROM mld_kenmerkmelding - WHERE mld_melding_key = p_link_key - AND mld_kenmerk_key = p_kenmerk_key - AND mld_kenmerkmelding_verwijder IS NULL; - - IF v_count = 1 - THEN - IF p_kenmerk_waarde IS NULL - THEN - DELETE mld_kenmerkmelding - WHERE mld_melding_key = p_link_key - AND mld_kenmerk_key = p_kenmerk_key - AND mld_kenmerkmelding_verwijder IS NULL; - ELSE - UPDATE mld_kenmerkmelding - SET mld_kenmerkmelding_waarde = p_kenmerk_waarde - WHERE mld_melding_key = p_link_key - AND mld_kenmerk_key = p_kenmerk_key - AND mld_kenmerkmelding_verwijder IS NULL; - END IF; - ELSE - IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL - THEN - INSERT INTO mld_kenmerkmelding (mld_kenmerk_key, - mld_melding_key, - mld_kenmerkmelding_waarde) - VALUES (p_kenmerk_key, - p_link_key, - p_kenmerk_waarde); - END IF; - END IF; - END CASE; - END CASE; -END; -/ - - -CREATE OR REPLACE FUNCTION aaxx_get_cnt_cont_plaats_index (p_contract_plaats_key number -) - RETURN NUMBER -AS - CURSOR c (c_cnt_contract_key number) - IS - SELECT cnt_contract_plaats_key - FROM cnt_contract_plaats - WHERE cnt_contract_key = c_cnt_contract_key - ORDER BY cnt_contract_plaats_key; - - v_contract_key NUMBER (10); - v_index NUMBER (10); -BEGIN - v_index := 1; - - SELECT cnt_contract_key - INTO v_contract_key - FROM cnt_contract_plaats - WHERE cnt_contract_plaats_key = p_contract_plaats_key; - - FOR rec IN c(v_contract_key) - LOOP - IF rec.cnt_contract_plaats_key = p_contract_plaats_key - THEN - RETURN (v_index); - END IF; - - v_index := v_index + 1; - END LOOP; -END; -/ - -CREATE OR REPLACE FUNCTION aaxx_get_dep_code (p_prs_kostenplaats_nr VARCHAR2) RETURN VARCHAR2 -AS - v_result VARCHAR2(100); -BEGIN - v_result := 'Onbekend - ' || p_prs_kostenplaats_nr; - BEGIN - SELECT prs_afdeling_upper - INTO v_result - FROM prs_v_aanwezigafdeling a, prs_kostenplaats k - WHERE niveau = 1 - AND a.prs_kostenplaats_key = k.prs_kostenplaats_key - AND k.prs_kostenplaats_nr = p_prs_kostenplaats_nr; - RETURN v_result; - EXCEPTION WHEN NO_DATA_FOUND - THEN - BEGIN - SELECT prs_afdeling_upper - INTO v_result - FROM prs_v_aanwezigafdeling a, prs_kostenplaats k - WHERE niveau = 2 - AND a.prs_kostenplaats_key = k.prs_kostenplaats_key - AND k.prs_kostenplaats_nr = p_prs_kostenplaats_nr; - RETURN v_result; - EXCEPTION WHEN OTHERS - THEN - RETURN v_result; - END; - END; -END aaxx_get_dep_code; -/ - --- zoek naar de afdelingscode van het hoogste niveau afdeling -CREATE OR REPLACE FUNCTION aaxx_get_top_dep_code (p_prs_kostenplaats_nr VARCHAR2) RETURN VARCHAR2 -AS - CURSOR c IS - SELECT ta.prs_afdeling_naam - FROM prs_kostenplaats kp, - prs_afdeling a, - prs_v_afdeling_boom ab, - prs_afdeling ta - WHERE kp.prs_kostenplaats_key = a.prs_kostenplaats_key - AND a.prs_afdeling_key = ab.prs_afdeling_key - AND ab.prs_afdeling_key1 = ta.prs_afdeling_key - AND kp.prs_kostenplaats_nr = p_prs_kostenplaats_nr - ORDER BY COALESCE(a.prs_afdeling_verwijder, sysdate) DESC; - v_result VARCHAR2(100); - -BEGIN - v_result := 'Onbekend - ' || p_prs_kostenplaats_nr; - BEGIN - FOR rec IN C - LOOP - BEGIN - RETURN rec.prs_afdeling_naam; - END; - END LOOP; - RETURN v_result; - EXCEPTION WHEN OTHERS THEN - RETURN v_result; - END; -END aaxx_get_top_dep_code; -/ - --- zoek naar de afdelingscode van het één na hoogste niveau afdeling -CREATE OR REPLACE FUNCTION aaxx_get_lev2_dep_code (p_prs_kostenplaats_nr VARCHAR2) RETURN VARCHAR2 -AS - v_result VARCHAR2(100); -BEGIN - v_result := 'Onbekend - ' || p_prs_kostenplaats_nr; - BEGIN - SELECT ta.prs_afdeling_naam - INTO v_result - FROM prs_kostenplaats kp, - prs_afdeling a, - prs_v_afdeling_boom ab, - prs_afdeling ta - WHERE kp.prs_kostenplaats_key = a.prs_kostenplaats_key - AND a.prs_afdeling_key = ab.prs_afdeling_key - AND ab.prs_afdeling_key2 = ta.prs_afdeling_key - AND kp.prs_kostenplaats_nr = p_prs_kostenplaats_nr; - RETURN v_result; - EXCEPTION WHEN OTHERS THEN - RETURN v_result; - END; -END aaxx_get_lev2_dep_code; -/ - -CREATE OR REPLACE FUNCTION aaxx_bestelling_items (bes_key IN NUMBER) - RETURN VARCHAR2 -IS - lret VARCHAR2 (512); - lfirst NUMBER; - llast NUMBER; - - CURSOR items - IS - SELECT TO_CHAR (bi.bes_bestelling_item_aantal) - || 'x ' - || s.bes_srtdeel_omschrijving /* lcl.x()?*/ - || ' (' - || s.bes_srtdeel_eenheid - || ') ' besitemdsc - FROM bes_bestelling_item bi, bes_srtdeel s - WHERE bi.bes_srtdeel_key = s.bes_srtdeel_key - AND bi.bes_bestelling_key = bes_key; -BEGIN - lret := NULL; - lfirst := 0; - llast := 0; - - FOR besitem_rec IN items - LOOP - IF lfirst = 0 - THEN - BEGIN - lret := besitem_rec.besitemdsc; - lfirst := 1; - END; - ELSE - IF llast = 0 - THEN - IF LENGTH (lret) + LENGTH (besitem_rec.besitemdsc) < (512 - 5) - THEN - lret := lret || CHR (10) || besitem_rec.besitemdsc; - ELSE - lret := lret || CHR (10) || '...'; - llast := 1; - END IF; - END IF; - END IF; - END LOOP; - - RETURN lret; -END; -/ - -CREATE OR REPLACE PROCEDURE aaxx_delete_non_active_users (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) -AS -BEGIN - UPDATE prs_perslid p - SET prs_perslid_oslogin = NULL, - prs_perslid_oslogin2 = NULL - WHERE prs_perslid_verwijder IS NULL - AND (prs_perslid_oslogin IS NOT NULL OR prs_perslid_oslogin2 IS NOT NULL) - AND ( SYSDATE - prs_perslid_aanmaak > 90 - AND ( prs_perslid_login IS NULL - OR SYSDATE - prs_perslid_login > 90 - ) - ) - AND NOT EXISTS - ( SELECT fac_tracking_refkey - FROM fac_tracking t, fac_srtnotificatie sn - WHERE fac_tracking_refkey = p.prs_perslid_key - AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key - AND sn.fac_srtnotificatie_code = 'PRSUPD' - AND SYSDATE - t.fac_tracking_datum < 90) - AND NOT EXISTS - ( SELECT prs_afdeling_key - FROM prs_afdeling a - WHERE a.prs_afdeling_key = p.prs_afdeling_key - AND a.prs_afdeling_omschrijving = 'AAFM') - AND SUBSTR(COALESCE(prs_perslid_oslogin, 'Q'), 1, 1) <> '_'; -END; -/ - -CREATE OR REPLACE PROCEDURE aaxx_delete_non_active_key (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) -AS -BEGIN - UPDATE prs_perslid p - SET prs_perslid_oslogin = NULL, - prs_perslid_oslogin2 = NULL - WHERE prs_perslid_verwijder IS NULL - AND (prs_perslid_oslogin IS NOT NULL OR prs_perslid_oslogin2 IS NOT NULL) - AND ( SYSDATE - prs_perslid_aanmaak > 30 - AND ( prs_perslid_login IS NULL - OR SYSDATE - prs_perslid_login > 30 - ) - ) - AND EXISTS - ( SELECT gg.fac_groep_key - FROM fac_gebruikersgroep gg, fac_groeprechten gr, fac_functie f - WHERE f.fac_functie_key = gr.fac_functie_key - AND f.fac_functie_code = 'WEB_ORDBO2' - AND gr.fac_groep_key = gg.fac_groep_key - AND gg.prs_perslid_key = p.prs_perslid_key) - AND NOT EXISTS - ( SELECT fac_tracking_refkey - FROM fac_tracking t, fac_srtnotificatie sn - WHERE fac_tracking_refkey = p.prs_perslid_key - AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key - AND sn.fac_srtnotificatie_code = 'PRSUPD' - AND SYSDATE - t.fac_tracking_datum < 30) - AND NOT EXISTS - ( SELECT prs_afdeling_key - FROM prs_afdeling a - WHERE a.prs_afdeling_key = p.prs_afdeling_key - AND a.prs_afdeling_omschrijving = 'AAFM') - AND SUBSTR(COALESCE(prs_perslid_oslogin, 'Q'), 1, 1) <> '_'; -END; -/ - -CREATE OR REPLACE VIEW aaxx_v_noti_non_active_users -( - sender, - receiver, - text, - code, - fac_srtnotificatie_key, - key, - xkey, - xemail, - xmobile -) -AS - SELECT NULL sender, - prs_perslid_key receiver, - 'Uw account voor FACILITOR is bijna verlopen. ' text, - 'CUST05' code, - NULL fac_srtnotificatie_key, - p.prs_perslid_key key, - NULL xkey, - NULL xemail, - NULL xmobile - FROM prs_perslid p - WHERE p.prs_perslid_email IS NOT NULL - AND p.prs_perslid_verwijder IS NULL - AND TRUNC (p.prs_perslid_login) = TRUNC (SYSDATE - 90 + 7) - AND NOT EXISTS - (SELECT prs_afdeling_key - FROM prs_afdeling a - WHERE a.prs_afdeling_key = p.prs_afdeling_key - AND a.prs_afdeling_omschrijving = 'AAFM') - AND SUBSTR (prs_perslid_oslogin, 1, 1) <> '_'; - -CREATE OR REPLACE PROCEDURE aaxx_export_login ( - p_applname IN VARCHAR2, - p_applrun IN VARCHAR2 -) -AS -BEGIN - - INSERT INTO aaxx_perslid_login - (prs_perslid_key, login_datum) - (SELECT prs_perslid_key, prs_perslid_login - FROM prs_perslid - WHERE TRUNC (prs_perslid_login) = TRUNC (SYSDATE)); - -END; -/ - --- Job om meldingen onder de vakgroeptype AA Complimenten binnen de SLA automatisch af te melden --- Hierbij wordt in de afhandeling de afmeldtekst gebruikt die standaard geconfigureerd staat. -CREATE OR REPLACE PROCEDURE aaxx_afmelden_complimenten ( - p_applname IN VARCHAR2, - p_applrun IN VARCHAR2 -) -AS - CURSOR c - IS - SELECT m.*, a.mld_afmeldtekst_omschrijving - FROM mld_melding m, - mld_stdmelding std, - ins_tab_discipline d, - ins_srtdiscipline sd, - mld_afmeldtekst a - WHERE m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = d.ins_discipline_key - AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key - AND sd.ins_srtdiscipline_prefix = 'AA' - AND a.mld_ins_discipline_key = std.mld_ins_discipline_key - AND a.mld_stdmelding_key IS NULL - AND m.mld_melding_status IN (2, 3, 4) - AND m.mld_melding_einddatum_std < SYSDATE + 1; -BEGIN - - FOR rec in c - LOOP - BEGIN - UPDATE mld_melding - SET mld_melding_opmerking = rec.mld_afmeldtekst_omschrijving - WHERE mld_melding_key = rec.mld_melding_key; - - -- Als status is nieuw of te accepteren dan eerst op geaccepteerd zetten. - IF rec.mld_melding_status = 2 OR rec.mld_melding_status = 3 - THEN - mld.setmeldingstatus(rec.mld_melding_key, 4, NULL); - END IF; - - -- nu de status op afgemeld zetten. - mld.setmeldingstatus(rec.mld_melding_key, 5, NULL); - END; - END LOOP; -END; -/ - - --- Correcties op meldingen/opdrachten/facturen bestaan uit aanpassingen in de kostenplaats --- of standaardmelding (kostensoort). De originele opdracht is dan al verwerkt en naar Exact --- gehaald. Daar willen we niet aan gaan zitten knutselen. --- Daarom kan aan een melding die ingelegd is op een verkeerde stdmelding of kostenplaats --- een vervolgmelding (Ordercorrectie) gekoppeld worden. Deze ordercorrectiemelding heeft --- flexvelden voor de nieuwe kostenplaats en nieuwe stdmelding. Onderstaande procedure --- maakt nu een nieuwe structuur van melding/opdrach(en)/factuur(en) aan die gelijk is aan --- de structuur van de originele melding maar met de tegenboeking (negatieve bedragen). Als --- tweede wordt dezelfde structuur nog een keer aangemaakt voor de correctiemelding. Deze --- structuur bevat de originele bedragen maar bevat de nieuwe kostenplaats en/of stdmelding. --- Correctiemeldingen worden pas uitgevoerd op het moment dat ze afgemeld zijn. Aan het --- einde van deze procedure wordt de correctiemelding op afgerond gezet zodat deze niet --- nogmaals uitgevoerd wordt. -CREATE OR REPLACE PROCEDURE aaxx_ordercorrecties ( - p_applname IN VARCHAR2, - p_applrun IN VARCHAR2 -) -AS - CURSOR c - IS - SELECT m.mld_melding_start_key, - m.mld_melding_key, - COALESCE ( - (SELECT fac.safe_to_number (km.mld_kenmerkmelding_waarde) - FROM mld_kenmerkmelding km, - mld_kenmerk k, - mld_srtkenmerk sk - WHERE km.mld_kenmerk_key = k.mld_kenmerk_key - AND km.mld_melding_key = m.mld_melding_key - AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key - AND sk.mld_srtkenmerk_upper = 'NIEUWE KOSTENPLAATS'), - m_org.prs_kostenplaats_key) - nieuwe_kostenplaats, - COALESCE ( - (SELECT fac.safe_to_number (km.mld_kenmerkmelding_waarde) - FROM mld_kenmerkmelding km, - mld_kenmerk k, - mld_srtkenmerk sk - WHERE km.mld_kenmerk_key = k.mld_kenmerk_key - AND km.mld_melding_key = m.mld_melding_key - AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key - AND sk.mld_srtkenmerk_upper = 'NIEUWE MELDING'), - m_org.prs_kostenplaats_key) - nieuwe_melding - FROM mld_melding m, mld_stdmelding std, mld_melding m_org - WHERE m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_stdmelding_omschrijving = 'Ordercorrectie' - AND m.mld_melding_start_key = m_org.mld_melding_key - AND m.mld_melding_status = 5 - AND m.mld_melding_afgerond = 0; - - CURSOR c_o (c_melding_key NUMBER) - IS - SELECT * - FROM mld_opdr - WHERE mld_melding_key = c_melding_key; - - CURSOR c_f (c_opdr_key NUMBER) - IS - SELECT * - FROM fin_factuur - WHERE mld_opdr_key = c_opdr_key AND fin_factuur_verwijder IS NULL; - - CURSOR c_fr (c_factuur_key NUMBER) - IS - SELECT * - FROM fin_factuurregel - WHERE fin_factuur_key = c_factuur_key; - - v_melding_tegenb_key NUMBER; - v_opdr_tegenb_key NUMBER; - v_factuur_tegenb_key NUMBER; - v_factuurregel_tegenb_key NUMBER; - v_melding_cor_key NUMBER; - v_opdr_cor_key NUMBER; - v_factuur_cor_key NUMBER; - v_factuurregel_cor_key NUMBER; -BEGIN - FOR rec IN c - LOOP - BEGIN - -- Maak een tegenboeking aan met dezelfde stdmelding/kostenplaats - SELECT mld_s_mld_melding_key.NEXTVAL - INTO v_melding_tegenb_key - FROM DUAL; - - INSERT INTO mld_melding (mld_melding_key, - mld_melding_module, - mld_meldbron_key, - mld_alg_locatie_key, - mld_alg_onroerendgoed_keys, - mld_melding_datum, - mld_melding_omschrijving, - mld_melding_opmerking, - mld_stdmelding_key, - mld_melding_status, - mld_kosten_klant, - mld_melding_document, - prs_kostenplaats_key, - prs_perslid_key, - mld_adres_key, - mld_melding_ordernr, - mld_melding_spoed, - mld_melding_onderwerp, - mld_melding_start_key) - SELECT v_melding_tegenb_key, - mld_melding_module, - mld_meldbron_key, - mld_alg_locatie_key, - mld_alg_onroerendgoed_keys, - mld_melding_datum, - SUBSTR ( - 'Tegenboeking' - || CHR (10) - || mld_melding_omschrijving, - 1, - 4000), - SUBSTR ( - 'Tegenboeking' - || CHR (10) - || mld_melding_opmerking, - 1, - 4000), - mld_stdmelding_key, - 2, - mld_kosten_klant, - mld_melding_document, - prs_kostenplaats_key, - prs_perslid_key, - mld_adres_key, - mld_melding_ordernr, - mld_melding_spoed, - SUBSTR ('Tegenboeking: ' || mld_melding_onderwerp, 1, 60), - mld_melding_key - FROM mld_melding - WHERE mld_melding_key = rec.mld_melding_start_key; - - fac.trackaction ('MLDNEW', - v_melding_tegenb_key, - NULL, - NULL, - NULL); - - mld.setmeldingstatus (v_melding_tegenb_key, 4, NULL); - - -- Maak een correctie melding aan met de nieuwe stdmelding en nieuwe kostenplaats - SELECT mld_s_mld_melding_key.NEXTVAL - INTO v_melding_cor_key - FROM DUAL; - - INSERT INTO mld_melding (mld_melding_key, - mld_melding_module, - mld_meldbron_key, - mld_alg_locatie_key, - mld_alg_onroerendgoed_keys, - mld_melding_datum, - mld_melding_omschrijving, - mld_melding_opmerking, - mld_stdmelding_key, - mld_melding_status, - mld_kosten_klant, - mld_melding_document, - prs_kostenplaats_key, - prs_perslid_key, - mld_adres_key, - mld_melding_ordernr, - mld_melding_spoed, - mld_melding_onderwerp, - mld_melding_start_key) - SELECT v_melding_cor_key, - mld_melding_module, - mld_meldbron_key, - mld_alg_locatie_key, - mld_alg_onroerendgoed_keys, - mld_melding_datum, - SUBSTR ( - 'Correctie melding' - || CHR (10) - || mld_melding_omschrijving, - 1, - 4000), - SUBSTR ( - 'Correctie melding' - || CHR (10) - || mld_melding_opmerking, - 1, - 4000), - rec.nieuwe_melding, - 2, - mld_kosten_klant, - mld_melding_document, - rec.nieuwe_kostenplaats, - prs_perslid_key, - mld_adres_key, - mld_melding_ordernr, - mld_melding_spoed, - SUBSTR ('Correctie: ' || mld_melding_onderwerp, 1, 60), - mld_melding_key - FROM mld_melding - WHERE mld_melding_key = rec.mld_melding_start_key; - - fac.trackaction ('MLDNEW', - v_melding_cor_key, - NULL, - NULL, - NULL); - - mld.setmeldingstatus (v_melding_cor_key, 4, NULL); - - - - DBMS_OUTPUT.put_line ( - 'Originele melding_key:' || rec.mld_melding_start_key); - - FOR rec_o IN c_o (rec.mld_melding_start_key) - LOOP - BEGIN - DBMS_OUTPUT.put_line ( - 'Originele opdracht_key:' || rec_o.mld_opdr_key); - - -- Maak voor iedere opdracht onder de originele melding een tegenboekingsopdracht aan. - SELECT mld_s_mld_opdr_key.NEXTVAL - INTO v_opdr_tegenb_key - FROM DUAL; - - DBMS_OUTPUT.put_line ( - 'Tegenboeking opdracht_key:' || v_opdr_tegenb_key); - - INSERT INTO mld_opdr (mld_opdr_key, - mld_opdr_module, - mld_melding_key, - mld_alg_locatie_key, - mld_alg_onroerendgoed_keys, - mld_uitvoerende_keys, - mld_typeopdr_key, - mld_statusopdr_key, - mld_standaardopdr_key, - mld_opdr_omschrijving, - mld_opdr_datumbegin, - mld_opdr_dagen, - mld_opdr_einddatum, - mld_opdr_werkzaamheden, - mld_opdr_uren, - mld_opdr_materiaal, - mld_opdr_kosten, - prs_kostenplaats_key, - mld_opdr_ordernr, - mld_opdr_contactpersoon, - mld_opdr_bedrijfopdr_volgnr, - mld_opdr_teverzenden, - mld_opdr_uurloon, - prs_perslid_key, - prs_contactpersoon_key, - mld_opdr_opmerking_fiat, - fac_activiteit_key, - mld_opdr_opmerking, - cnt_contract_key, - cnt_contract_dienst_key, - mld_opdr_plandatum, - mld_opdr_id) - SELECT v_opdr_tegenb_key, - mld_opdr_module, - v_melding_tegenb_key, - mld_alg_locatie_key, - mld_alg_onroerendgoed_keys, - mld_uitvoerende_keys, - mld_typeopdr_key, - 5, -- toegekend - mld_standaardopdr_key, - mld_opdr_omschrijving, - mld_opdr_datumbegin, - mld_opdr_dagen, - mld_opdr_einddatum, - mld_opdr_werkzaamheden, - 0, - 0, - -1 * mld_opdr_kosten, - prs_kostenplaats_key, - mld_opdr_ordernr, - mld_opdr_contactpersoon, - mld_opdr_bedrijfopdr_volgnr, - NULL, -- mld_opdr_teverzenden - mld_opdr_uurloon, - prs_perslid_key, - prs_contactpersoon_key, - mld_opdr_opmerking_fiat, - fac_activiteit_key, - SUBSTR ( - 'Tegenboeking' - || CHR (10) - || mld_opdr_opmerking, - 1, - 4000), - cnt_contract_key, - cnt_contract_dienst_key, - mld_opdr_plandatum, - mld_opdr_id - FROM mld_opdr - WHERE mld_opdr_key = rec_o.mld_opdr_key; - - fac.trackaction ('ORDNEW', - v_opdr_tegenb_key, - NULL, - NULL, - NULL); - - -- Maak voor iedere opdracht onder de originele melding een correctieopdracht aan. - SELECT mld_s_mld_opdr_key.NEXTVAL - INTO v_opdr_cor_key - FROM DUAL; - - DBMS_OUTPUT.put_line ( - 'Correctie opdracht_key:' || v_opdr_cor_key); - - INSERT INTO mld_opdr (mld_opdr_key, - mld_opdr_module, - mld_melding_key, - mld_alg_locatie_key, - mld_alg_onroerendgoed_keys, - mld_uitvoerende_keys, - mld_typeopdr_key, - mld_statusopdr_key, - mld_standaardopdr_key, - mld_opdr_omschrijving, - mld_opdr_datumbegin, - mld_opdr_dagen, - mld_opdr_einddatum, - mld_opdr_werkzaamheden, - mld_opdr_uren, - mld_opdr_materiaal, - mld_opdr_kosten, - prs_kostenplaats_key, - mld_opdr_ordernr, - mld_opdr_contactpersoon, - mld_opdr_bedrijfopdr_volgnr, - mld_opdr_teverzenden, - mld_opdr_uurloon, - prs_perslid_key, - prs_contactpersoon_key, - mld_opdr_opmerking_fiat, - fac_activiteit_key, - mld_opdr_opmerking, - cnt_contract_key, - cnt_contract_dienst_key, - mld_opdr_plandatum, - mld_opdr_id) - SELECT v_opdr_cor_key, - mld_opdr_module, - v_melding_cor_key, - mld_alg_locatie_key, - mld_alg_onroerendgoed_keys, - mld_uitvoerende_keys, - mld_typeopdr_key, - 5, -- toegekend - mld_standaardopdr_key, - mld_opdr_omschrijving, - mld_opdr_datumbegin, - mld_opdr_dagen, - mld_opdr_einddatum, - mld_opdr_werkzaamheden, - mld_opdr_uren, - mld_opdr_materiaal, - mld_opdr_kosten, - rec.nieuwe_kostenplaats, - mld_opdr_ordernr, - mld_opdr_contactpersoon, - mld_opdr_bedrijfopdr_volgnr, - NULL, -- mld_opdr_teverzenden - mld_opdr_uurloon, - prs_perslid_key, - prs_contactpersoon_key, - mld_opdr_opmerking_fiat, - fac_activiteit_key, - SUBSTR ( - 'Correctie' - || CHR (10) - || mld_opdr_opmerking, - 1, - 4000), - cnt_contract_key, - cnt_contract_dienst_key, - mld_opdr_plandatum, - mld_opdr_id - FROM mld_opdr - WHERE mld_opdr_key = rec_o.mld_opdr_key; - - fac.trackaction ('ORDNEW', - v_opdr_cor_key, - NULL, - NULL, - NULL); - - FOR rec_f IN c_f (rec_o.mld_opdr_key) - LOOP - BEGIN - DBMS_OUTPUT.put_line ( - 'Originele factuur_key:' || rec_f.fin_factuur_key); - - -- Maak voor iedere factuur onder de originele opdracht een tegenboekingsfactuur aan. - SELECT fin_s_fin_factuur_key.NEXTVAL - INTO v_factuur_tegenb_key - FROM DUAL; - - DBMS_OUTPUT.put_line ( - 'Tegenboekingsfactuur_key:' || v_factuur_tegenb_key); - - INSERT INTO fin_factuur (fin_factuur_key, - mld_opdr_key, - fin_factuur_nr, - fin_factuur_totaal, - fin_factuur_totaal_btw, - prs_perslid_key_user, - fin_factuur_datum, - fin_factuur_boekmaand, - fin_factuur_debiteur_nr, - prs_kostensoort_key, - fin_factuur_opmerking, - fin_factuur_statuses_key) - SELECT v_factuur_tegenb_key, - v_opdr_tegenb_key, - fin_factuur_nr, - -1 * fin_factuur_totaal, - -1 * fin_factuur_totaal_btw, - prs_perslid_key_user, - fin_factuur_datum, - fin_factuur_boekmaand, - fin_factuur_debiteur_nr, - prs_kostensoort_key, - SUBSTR ( - 'Tegenboeking' - || CHR (10) - || fin_factuur_opmerking, - 1, - 4000), - 6 -- goedgekeurd - FROM fin_factuur - WHERE fin_factuur_key = rec_f.fin_factuur_key; - - INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde) - SELECT v_factuur_tegenb_key, - fin_kenmerk_key, - fin_kenmerkfactuur_waarde - FROM fin_kenmerkfactuur - WHERE fin_factuur_key = rec_f.fin_factuur_key; - - fac.trackaction ('FINNEW', - v_factuur_tegenb_key, - NULL, - NULL, - NULL); - - -- Maak voor iedere factuur onder de originele opdracht een correctiefactuur aan. - SELECT fin_s_fin_factuur_key.NEXTVAL - INTO v_factuur_cor_key - FROM DUAL; - - DBMS_OUTPUT.put_line ( - 'Correctie factuur_key:' || v_factuur_cor_key); - - INSERT INTO fin_factuur (fin_factuur_key, - mld_opdr_key, - fin_factuur_nr, - fin_factuur_totaal, - fin_factuur_totaal_btw, - prs_perslid_key_user, - fin_factuur_datum, - fin_factuur_boekmaand, - fin_factuur_debiteur_nr, - prs_kostensoort_key, - fin_factuur_opmerking, - fin_factuur_statuses_key) - SELECT v_factuur_cor_key, - v_opdr_cor_key, - fin_factuur_nr, - fin_factuur_totaal, - fin_factuur_totaal_btw, - prs_perslid_key_user, - fin_factuur_datum, - fin_factuur_boekmaand, - fin_factuur_debiteur_nr, - (SELECT COALESCE (std.prs_kostensoort_key, - d.prs_kostensoort_key) - FROM mld_stdmelding std, - ins_tab_discipline d - WHERE std.mld_ins_discipline_key = - d.ins_discipline_key - AND std.mld_stdmelding_key = - rec.nieuwe_melding), - SUBSTR ( - 'Correctie' - || CHR (10) - || fin_factuur_opmerking, - 1, - 4000), - 6 -- goedgekeurd - FROM fin_factuur - WHERE fin_factuur_key = rec_f.fin_factuur_key; - - fac.trackaction ('FINNEW', - v_factuur_cor_key, - NULL, - NULL, - NULL); - - INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde) - SELECT v_factuur_cor_key, - fin_kenmerk_key, - fin_kenmerkfactuur_waarde - FROM fin_kenmerkfactuur - WHERE fin_factuur_key = rec_f.fin_factuur_key; - - FOR rec_fr IN c_fr (rec_f.fin_factuur_key) - LOOP - BEGIN - DBMS_OUTPUT.put_line('Originele factuurregel_key:' - || rec_fr.fin_factuurregel_key); - - -- Maak voor iedere factuurregel onder de originele factuur een tegenboekings factuurregel aan. - SELECT fin_s_fin_factuurregel_key.NEXTVAL - INTO v_factuurregel_tegenb_key - FROM DUAL; - - DBMS_OUTPUT.put_line('Tegenboekings factuurregel_key:' - || v_factuurregel_tegenb_key); - - INSERT INTO fin_factuurregel (fin_factuurregel_key, - fin_factuur_key, - fin_factuurregel_nr, - fin_factuurregel_totaal, - fin_factuurregel_btw, - fin_factuurregel_omschrijving, - fin_factuurregel_referentie, - fin_btwtabelwaarde_key, - prs_kostensoort_key) - SELECT v_factuurregel_tegenb_key, - v_factuur_tegenb_key, - fin_factuurregel_nr, - -1 * fin_factuurregel_totaal, - -1 * fin_factuurregel_btw, - fin_factuurregel_omschrijving, - fin_factuurregel_referentie, - fin_btwtabelwaarde_key, - prs_kostensoort_key - FROM fin_factuurregel - WHERE fin_factuurregel_key = - rec_fr.fin_factuurregel_key; - - - -- Maak voor iedere factuurregel onder de originele factuur een correctie factuurregel aan. - SELECT fin_s_fin_factuurregel_key.NEXTVAL - INTO v_factuurregel_cor_key - FROM DUAL; - - DBMS_OUTPUT.put_line('Correctie factuurregel_key:' - || v_factuurregel_cor_key); - - INSERT INTO fin_factuurregel (fin_factuurregel_key, - fin_factuur_key, - fin_factuurregel_nr, - fin_factuurregel_totaal, - fin_factuurregel_btw, - fin_factuurregel_omschrijving, - fin_factuurregel_referentie, - fin_btwtabelwaarde_key, - prs_kostensoort_key) - SELECT v_factuurregel_cor_key, - v_factuur_cor_key, - fin_factuurregel_nr, - fin_factuurregel_totaal, - fin_factuurregel_btw, - fin_factuurregel_omschrijving, - fin_factuurregel_referentie, - fin_btwtabelwaarde_key, - (SELECT COALESCE ( - std.prs_kostensoort_key, - d.prs_kostensoort_key) - FROM mld_stdmelding std, - ins_tab_discipline d - WHERE std.mld_ins_discipline_key = - d.ins_discipline_key - AND std.mld_stdmelding_key = - rec.nieuwe_melding) - FROM fin_factuurregel - WHERE fin_factuurregel_key = - rec_fr.fin_factuurregel_key; - END; - END LOOP; - END; - END LOOP; - - -- set opdrachtstatus op technisch gereed - mld.setopdrachtstatus (v_opdr_tegenb_key, 6, NULL); - mld.setopdrachtstatus (v_opdr_cor_key, 6, NULL); - END; - END LOOP; - -- zet meldingstatus op technisch gereed - mld.updatemeldingstatus (v_melding_tegenb_key, 1, NULL); - mld.updatemeldingstatus (v_melding_cor_key, 1, NULL); - - -- zet de status van de correctiemelding op afgerond zodat deze niet opnieuw verwerkt wordt. - UPDATE mld_melding - SET mld_melding_afgerond = 1 - WHERE mld_melding_key = rec.mld_melding_key; - END; - END LOOP; -END; -/ - --- view om stdmeldingen als suggest bij kenmerk te tonen. -CREATE OR REPLACE VIEW aaxx_v_stdmelding_gegevens -AS - SELECT sd.ins_srtdiscipline_key, - ins_srtdiscipline_prefix, - ins_srtdiscipline_omschrijving, - ins_discipline_key, - ins_discipline_omschrijving, - mld_stdmelding_key, - mld_stdmelding_omschrijving, - ins_discipline_omschrijving || '/' || mld_stdmelding_omschrijving - discstd, - mld_stdmelding_verwijder - FROM ins_tab_discipline d, ins_srtdiscipline sd, mld_stdmelding std - WHERE sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key - AND d.ins_discipline_key = std.mld_ins_discipline_key; - ---============================================================================= --- EXPORTFUNCTIES Reserveringen NoShow. --- Exportfunctie moet voor de putorders van de betreffende klant gescheduled worden. --- 10 minuten na aanvang wordt bij no_show een noshow reminder gestuurd --- 15 minuten na aanvang wordt de reservering als noshow aangemerkt en --- wordt de ruimte vrijgegeven. -------------------------------------------------------------------------------- - -CREATE OR REPLACE PROCEDURE aaxx_select_noshow_reminder ( - p_applname IN VARCHAR2, - p_applrun IN VARCHAR2) -AS - CURSOR c ( - c_srtnotificatie_key NUMBER) - IS - SELECT DISTINCT rrr.res_rsv_ruimte_host_key, - rr.res_ruimte_nr, - pf.prs_perslid_naam_full, - rrr.res_reservering_key, - rrr.res_rsv_ruimte_key - FROM cad_v_thema_srtruimtesensor s, - res_v_rsv_ruimte_2_alg_ruimte r2a, - res_rsv_ruimte rrr, - res_ruimte rr, - prs_v_perslid_fullnames pf - WHERE waarde = 'NoShow' - AND res_rsv_ruimte_host_key = pf.prs_perslid_key - AND s.alg_ruimte_key = r2a.alg_ruimte_key - AND r2a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key - AND r2a.res_ruimte_key = rr.res_ruimte_key - AND SYSDATE BETWEEN rrr.res_rsv_ruimte_van - AND rrr.res_rsv_ruimte_tot - AND rrr.res_rsv_ruimte_van < SYSDATE - 1 / (24 * 6) -- verder dan tien minuten - AND rrr.res_rsv_ruimte_van > SYSDATE - 2 / (24 * 6) -- niet verder dan twintig minuten - AND NOT EXISTS - (SELECT fac_tracking_key - FROM fac_tracking t - WHERE t.fac_srtnotificatie_key = c_srtnotificatie_key - AND fac_tracking_refkey = rrr.res_rsv_ruimte_key); - - CURSOR c2 ( - c_srtnotificatie_key NUMBER) - IS - SELECT DISTINCT r2a.res_rsv_ruimte_key - FROM cad_v_thema_srtruimtesensor s, res_v_rsv_ruimte_2_alg_ruimte r2a - WHERE waarde = 'NoShow' AND s.alg_ruimte_key = r2a.alg_ruimte_key - AND SYSDATE BETWEEN r2a.res_rsv_ruimte_van - AND r2a.res_rsv_ruimte_tot - AND r2a.res_rsv_ruimte_van < SYSDATE - 1 / (24 * 4) -- verder dan een kwartier - AND r2a.res_rsv_ruimte_van > SYSDATE - 2 / (24 * 4) -- niet verder dan een half uur - AND EXISTS - (SELECT fac_tracking_key - FROM fac_tracking t - WHERE t.fac_srtnotificatie_key = c_srtnotificatie_key - AND fac_tracking_refkey = r2a.res_rsv_ruimte_key); - - v_srtnotificatie_key NUMBER; -BEGIN - SELECT fac_srtnotificatie_key - INTO v_srtnotificatie_key - FROM fac_srtnotificatie - WHERE fac_srtnotificatie_code = 'CUST06'; -- herinnering noshow - - FOR rec IN c (v_srtnotificatie_key) - LOOP - BEGIN - fac.putnotificationsrtprio ( - NULL, - rec.res_rsv_ruimte_host_key, - 'CUST06', - rec.res_reservering_key, - 'No-show waarschuwing reservering ' || rec.res_ruimte_nr, - 2, -- mail - NULL, -- geen specifiek mail adres - NULL, -- geen specifiek mobile nummer - rec.res_rsv_ruimte_key, - 1, -- hoge prioriteit - NULL); - - fac.trackaction ( - '#CUST06', - rec.res_rsv_ruimte_key, - NULL, - NULL, - 'No-show waarschuwing verzonden naar: ' - || rec.prs_perslid_naam_full); - END; - END LOOP; - - FOR rec IN c2 (v_srtnotificatie_key) - LOOP - BEGIN - UPDATE res_rsv_ruimte - SET res_rsv_ruimte_bezoekers_shown = 0, - res_rsv_ruimte_tot = - GREATEST ( - res_rsv_ruimte_van, - LEAST (res_rsv_ruimte_tot, TRUNC (SYSDATE, 'MI'))) - WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key; - - UPDATE res_rsv_deel - SET res_rsv_deel_tot = - LEAST ( - res_rsv_deel_tot, - (SELECT res_rsv_ruimte_tot - FROM res_rsv_ruimte - WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key)) - WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key; - - fac.trackaction ('RESNOS', - rec.res_rsv_ruimte_key, - NULL, - NULL, - NULL); - END; - END LOOP; - - COMMIT; -END; -/ - ---============================================================================= --- EXPORTFUNCTIES EXACT -------------------------------------------------------------------------------- - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - Export exact -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_aanwezigfactuur -( - FIN_FACTUUR_KEY, - FIN_FACTUUR_NR, - FIN_FACTUUR_TOTAAL, - FIN_FACTUUR_TOTAAL_BTW, - MLD_OPDR_KEY, - CNT_CONTRACT_KEY, - BES_BESTELOPDR_KEY, - PRS_PERSLID_KEY_USER, - FIN_FACTUUR_DATUM, - FIN_FACTUUR_BOEKMAAND, - FIN_FACTUUR_DEBITEUR_NR, - PRS_KOSTENSOORT_KEY, - FIN_FACTUUR_OPMERKING, - FIN_FACTUUR_STATUSES_KEY, - FIN_FACTUUR_VERWIJDER -) -AS - SELECT FIN_FACTUUR_KEY, - FIN_FACTUUR_NR, - FIN_FACTUUR_TOTAAL, - FIN_FACTUUR_TOTAAL_BTW, - MLD_OPDR_KEY, - CNT_CONTRACT_KEY, - BES_BESTELOPDR_KEY, - PRS_PERSLID_KEY_USER, - FIN_FACTUUR_DATUM, - FIN_FACTUUR_BOEKMAAND, - FIN_FACTUUR_DEBITEUR_NR, - PRS_KOSTENSOORT_KEY, - FIN_FACTUUR_OPMERKING, - FIN_FACTUUR_STATUSES_KEY, - FIN_FACTUUR_VERWIJDER - FROM fin_factuur - WHERE fin_factuur_verwijder IS NULL AND fin_factuur_statuses_key > 1; - - --- fin_kenmerk_key 2 is de keuze of dit de laatste factuur van de opdracht is. -CREATE OR REPLACE VIEW aaxx_v_factuur_gegevens ( - fin_factuur_key, - opdracht_id, - fin_factuur_datum, - fin_factuur_nr, - prs_bedrijf_key, - fin_factuurregel_totaal, - fin_factuurregel_btw, - fin_btwtabelwaarde_code, - fin_btwtabelwaarde_key, - fin_factuurregel_nr, - fin_factuur_debiteur_nr, - fin_factuur_opmerking, - fin_factuur_boekmaand, - opdr_datum, - laatste_factuur, - project_nummer, - project_naam, - prs_kostensoort_oms, - prs_kostensoort_refcode, - vk_prs_kostensoort_refcode, - prs_kostensoort_key, - prs_kostenplaats_key, - mld_opdr_key, - cnt_contract_key, - bes_bestelopdr_key, - fin_factuur_statuses_key, - lev_kpn - ) -AS - SELECT f.fin_factuur_key, - DECODE (c.cnt_contract_key, null, - DECODE (bo.bes_bestelopdr_key, null, - (SELECT sd.ins_srtdiscipline_prefix - || m.mld_melding_key - || '/' - || o.mld_opdr_bedrijfopdr_volgnr - FROM mld_melding m, - mld_stdmelding std, - ins_tab_discipline d, - ins_srtdiscipline sd - WHERE m.mld_melding_key = o.mld_melding_key - AND m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = d.ins_discipline_key - AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key) - , bo.bes_bestelopdr_id) - , 'C' || TO_CHAR (cnt_contract_nummer_intern) - ) - opdracht_id, - DECODE (to_char(f.fin_factuur_datum, 'yyyy'), - '2010', to_date('20110102', 'YYYYMMDD'), - '2011', to_date('20120102', 'YYYYMMDD'), - f.fin_factuur_datum), - f.fin_factuur_nr, - COALESCE (b_c.prs_bedrijf_key, COALESCE(b_o.prs_bedrijf_key, b_b.prs_bedrijf_key)) prs_bedrijf_key, - fr.fin_factuurregel_totaal, - round(fr.fin_factuurregel_totaal* DECODE(btw.fin_btwtabelwaarde_verlegd, 1, 0, btw.fin_btwtabelwaarde_perc/100),2) fin_factuurregel_btw, - btw.fin_btwtabelwaarde_code, - btw.fin_btwtabelwaarde_key, - fr.fin_factuurregel_nr, - f.fin_factuur_debiteur_nr, - f.fin_factuur_opmerking, - f.fin_factuur_boekmaand, - coalesce (o.mld_opdr_datumbegin, coalesce(c.cnt_contract_looptijd_tot, bo.bes_bestelopdr_datum)), - COALESCE ( (SELECT fac.safe_to_number (fac_usrdata_code) - FROM fin_kenmerkfactuur fk, fac_usrdata ud - WHERE fk.fin_factuur_key = f.fin_factuur_key - AND fk.fin_kenmerk_key = 2 - AND fac.safe_to_number (fin_kenmerkfactuur_waarde) = - fac_usrdata_key), - 1 - ), - TO_CHAR (DECODE (ot.mld_typeopdr_omschrijving, - 'Projectorder', ( (SELECT sd.ins_srtdiscipline_prefix - || m.mld_melding_key - FROM mld_melding m, - mld_stdmelding std, - ins_tab_discipline d, - ins_srtdiscipline sd - WHERE m.mld_melding_key = - o.mld_melding_key - AND m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = - d.ins_discipline_key - AND d.ins_srtdiscipline_key = - sd.ins_srtdiscipline_key)), - NULL) - ) - projectnummer, - TO_CHAR ((SELECT DISTINCT COALESCE(mld_kenmerkmelding_waarde, '') - FROM mld_kenmerkmelding km, - mld_kenmerk k, - mld_srtkenmerk sk - WHERE km.mld_melding_key = o.mld_melding_key - AND k.mld_kenmerk_key = km.mld_kenmerk_key - AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key - AND sk.mld_srtkenmerk_omschrijving = 'Projectnaam') - ) - projectnaam, - prs_kostensoort_oms, - DECODE (aaxx_get_user, - 'DOW', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), coalesce(to_char(c.cnt_contract_looptijd_tot,'yyyy'), to_char(bo.bes_bestelopdr_datum, 'yyyy'))), - '2017', k.prs_kostensoort_refcode, - DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', DECODE (substr(k.prs_kostensoort_upper,1,7), 'COR VAR', '1350823', '1350822'), - 'NC', DECODE (substr(k.prs_kostensoort_upper,1,5), 'NC P ', '1350817', '1350824'), - 'Onbekend') - ), - 'ENEXIS', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), coalesce(to_char(c.cnt_contract_looptijd_tot,'yyyy'), to_char(bo.bes_bestelopdr_datum, 'yyyy'))), - '2017', k.prs_kostensoort_refcode, - DECODE (substr(k.prs_kostensoort_upper,1,3), 'CF ', '1350822', - 'CV ', '1350823', - 'CVE', '1350824', - 'NC ', '1350817', - 'Onbekend') - ), - 'EY', DECODE (fac.safe_to_number(substr(fin_factuur_boekmaand, 1,4)) - fac.safe_to_number(to_char(sysdate, 'yyyy')), - 1, '1350400', -- boekmaand ligt in de toekomst in verband met gebroken boekjaar - 0, k.prs_kostensoort_refcode, -- boekmaand ligt in huidig jaar - -- boekmaand ligt in het verleden, dus bedragen mogen naar balansrekening. - DECODE (substr(k.prs_kostensoort_upper,1,3), 'CF ', '1350822', - 'CV ', '1350823', - 'NC ', '1350824', - 'Onbekend') - ), - -- Gul kent een andere methode. Deze gaat niet mee in de jaarafsluiting. Met GULU#38855 is - -- bepaald dat de kosten vanaf 2017 op andere rekeningnummers komen dan de kosten uit voorafgaande - -- jaren. - 'GUL', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), coalesce(to_char(c.cnt_contract_looptijd_tot,'yyyy'), to_char(bo.bes_bestelopdr_datum, 'yyyy'))), - '2017', k.prs_kostensoort_refcode, - DECODE (substr(k.prs_kostensoort_upper,1,2), 'CF', '1350822', - 'CV', '1350823', - 'Onbekend') - ), - 'IT', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), coalesce(to_char(c.cnt_contract_looptijd_tot,'yyyy'), to_char(bo.bes_bestelopdr_datum, 'yyyy'))), - '2017', k.prs_kostensoort_refcode, - DECODE (substr(k.prs_kostensoort_upper,1,2), 'CF', '1350822', - 'CV', '1350823', - 'NC', DECODE (substr(k.prs_kostensoort_upper,1,7), 'NC PROJ', '1350817', '1350824'), - k.prs_kostensoort_refcode) - ), - 'LB', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), coalesce(to_char(c.cnt_contract_looptijd_tot,'yyyy'), to_char(bo.bes_bestelopdr_datum, 'yyyy'))), - '2017', k.prs_kostensoort_refcode, - DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', '1350822', -- Geen CF - 'CF', '1350822', - 'C ', '1350822', -- Geen CF - 'CV', '1350823', - 'NC', DECODE (substr(k.prs_kostensoort_upper,1,7), 'NC PROJ', '1350817', '1350824'), - 'Onbekend') - ), - 'PM', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), coalesce(to_char(c.cnt_contract_looptijd_tot,'yyyy'), to_char(bo.bes_bestelopdr_datum, 'yyyy'))), - '2017', k.prs_kostensoort_refcode, - DECODE (substr(k.prs_kostensoort_upper,1,5), 'NC PR', '1350817', -- Geen NC PROJ - 'Onbekend') - ), - 'SITECH', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), coalesce(to_char(c.cnt_contract_looptijd_tot,'yyyy'), to_char(bo.bes_bestelopdr_datum, 'yyyy'))), - '2017', k.prs_kostensoort_refcode, - DECODE (substr(k.prs_kostensoort_upper,1,3), 'ST ', '1350822', - 'STB', '1350822', - 'AS ', '1350822', - 'AE ', DECODE (substr(k.prs_kostensoort_upper,1,7), 'AE PROJ', '1350817', '1350824'), - 'Onbekend') - ), - -- standaard keuze werkt voor de meeste accounts. - DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), coalesce(to_char(c.cnt_contract_looptijd_tot,'yyyy'), to_char(bo.bes_bestelopdr_datum, 'yyyy'))), - '2017', k.prs_kostensoort_refcode, - DECODE (substr(k.prs_kostensoort_upper,1,3), 'CF ', '1350822', - 'CFE', '1350822', - 'CV ', '1350823', - 'CVE', '1350824', - 'NC ', DECODE (substr(k.prs_kostensoort_upper,1,7), 'NC PROJ', '1350817', '1350824'), - 'Onbekend') - ) - ), - '' vk_prs_kostensoort_refcode, - k.prs_kostensoort_key, - COALESCE(o.prs_kostenplaats_key, - COALESCE(c.prs_kostenplaats_key, - (SELECT DISTINCT b.prs_kostenplaats_key - FROM bes_bestelling b, - bes_bestelopdr_item boi, - bes_bestelling_item bi - WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key - AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key - AND bi.bes_bestelling_key = b.bes_bestelling_key) - ) - ), - o.mld_opdr_key, - c.cnt_contract_key, - bo.bes_bestelopdr_key, - ( -- status van de factuur is ingevoerd als er facturen van dezelfde leverancier en nummer zijn - -- met status ingevoerd, afgewezen of incompleet - SELECT DECODE(count(*), 0, f.fin_factuur_statuses_key, 2) - FROM fin_factuur f_t, cnt_contract c_t, bes_bestelopdr b_t, mld_opdr o_t - WHERE f_t.fin_factuur_verwijder is null - AND f_t.mld_opdr_key = o_t.mld_opdr_key(+) - AND f_t.cnt_contract_key = c_t.cnt_contract_key(+) - AND f_t.bes_bestelopdr_key = b_t.bes_bestelopdr_key(+) - AND COALESCE(o_t.mld_uitvoerende_keys, COALESCE(b_t.prs_bedrijf_key, c_t.cnt_prs_bedrijf_key)) - = COALESCE(o.mld_uitvoerende_keys, COALESCE(bo.prs_bedrijf_key, c.cnt_prs_bedrijf_key)) - AND f.fin_factuur_nr = f_t.fin_factuur_nr - AND f_t.fin_factuur_statuses_key in (1,2,3) - AND f.fin_factuur_statuses_key = 6) fin_factuur_statuses_key, - lk.prs_kostenplaats_nr lev_kpn - FROM fin_factuur f, - fin_factuurregel fr, - fin_btwtabelwaarde btw, - mld_opdr o, - mld_typeopdr ot, - cnt_contract c, - bes_bestelopdr bo, - prs_bedrijf b_o, - prs_bedrijf b_c, - prs_bedrijf b_b, - prs_kostensoort k, - prs_kostensoortgrp kg, - prs_kostenplaats lk - WHERE f.fin_factuur_key = fr.fin_factuur_key - AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key - AND f.mld_opdr_key = o.mld_opdr_key(+) - AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+) - AND f.cnt_contract_key = c.cnt_contract_key(+) - AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+) - AND bo.prs_bedrijf_key = b_b.prs_bedrijf_key(+) - AND o.mld_uitvoerende_keys = b_o.prs_bedrijf_key(+) - AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+) - AND f.prs_kostensoort_key = k.prs_kostensoort_key(+) - AND k.prs_kostenplaats_key = lk.prs_kostenplaats_key(+) - AND k.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+) - AND f.fin_factuur_verwijder IS NULL; - - -CREATE OR REPLACE VIEW aaxx_v_export_exact_xml ( - result, - result_order - ) -AS - SELECT fac_rapport_regel, fac_rapport_volgnr - FROM fac_rapport - WHERE fac_rapport_node = 'EXACT'; - -/* nieuwe view om oude aaxx_v_export_exact_xml view op termijn te vervangen. Door gebruik te maken - van de nieuwe view hoeft er per klant geen specifieke export in de cust.sql. De prefix in de - export tabel staat dan op AAXX */ -CREATE OR REPLACE VIEW aaxx_v_export_exact ( - result, - result_order - ) -AS - SELECT result, result_order - FROM aaxx_v_export_exact_xml; - -CREATE OR REPLACE VIEW aaxx_v_bron_export_exact_xml -( - fin_factuur_key, - oms25, - opdracht_id, - datum, - crdnr, - projectnr, - projectnaam, - bedrag_txt, - bedrag, - bedrag_incl, - betaalref, - itemcode, - reknr, - kstplcode, - kstdrcode, - btw_code, - lev_kpn -) -AS - SELECT fin_factuur_key, - opdracht_id - || ' - ' - || REPLACE (SUBSTR (fin_factuur_opmerking, 1, 30), ',', '') - oms25, - opdracht_id, - TO_CHAR (fin_factuur_datum, 'yyyy-mm-dd') datum, - (SELECT prs_leverancier_nr - FROM prs_bedrijf b - WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key) - crdnr, - project_nummer, - project_naam, - REPLACE (TO_CHAR (bedrag), ',', '.') bedrag_txt, - bedrag, - bedrag_incl, - fin_factuur_nr || '/' || fin_factuur_debiteur_nr betaalref, - prs_kostensoort_oms itemcode, - prs_kostensoort_refcode reknr, - DECODE ( - aaxx_get_user, - 'IT', DECODE (lev_kpn, - '2000700', '00100001', - (SELECT DECODE (SUBSTR (PRS_KOSTENPLAATS_NR, 1, 1), - '2', '999999', - PRS_KOSTENPLAATS_NR) - FROM prs_kostenplaats kp - WHERE kp.prs_kostenplaats_key = fg.prs_kostenplaats_key - ) - ), - 'LB', - '02610001', - 'FPC', - '00780164', - 'GUL', - (select exact_code from aaxx_v_exact_code_gebouw_fac ecgf where ecgf.fin_factuur_key = fg.fin_factuur_key), - 'ARCADIS', - DECODE (cnt_contract_key, NULL, - (select exact_code from aaxx_v_exact_code_gebouw_fac ecgf where ecgf.fin_factuur_key = fg.fin_factuur_key), - '999999'), - '999999' - ) kstplcode, - ( SELECT prs_kostenplaats_nr - FROM prs_kostenplaats kp - WHERE kp.prs_kostenplaats_key = fg.prs_kostenplaats_key ) kstdrcode, - fin_btwtabelwaarde_code btw_code, - lev_kpn - FROM ( SELECT fin_factuur_key, - opdracht_id, - project_nummer, - project_naam, - fin_factuur_datum, - fin_factuur_nr, - prs_bedrijf_key, - fin_factuur_debiteur_nr, - fin_factuur_opmerking, - SUM (fin_factuurregel_totaal) bedrag, - SUM (fin_factuurregel_totaal + fin_factuurregel_btw) bedrag_incl, - fin_btwtabelwaarde_code, - prs_kostensoort_oms, - prs_kostensoort_refcode, - mld_opdr_key, - cnt_contract_key, - prs_kostenplaats_key, - lev_kpn - FROM aaxx_v_factuur_gegevens g - WHERE fin_factuur_statuses_key = 6 - GROUP BY fin_factuur_key, - opdracht_id, - project_nummer, - project_naam, - fin_factuur_datum, - fin_factuur_nr, - prs_bedrijf_key, - fin_factuur_debiteur_nr, - fin_factuur_opmerking, - fin_btwtabelwaarde_code, - prs_kostensoort_oms, - prs_kostensoort_refcode, - mld_opdr_key, - cnt_contract_key, - prs_kostenplaats_key, - lev_kpn) fg; - --- Procedure om alle facturen te exporteren naar exact. -CREATE OR REPLACE PROCEDURE aaxx_select_exact_xml (p_applname IN VARCHAR2, - p_applrun IN VARCHAR2 -) -AS - CURSOR c - IS - SELECT fin_factuur_key, oms25, datum - FROM aaxx_v_bron_export_exact_xml - GROUP BY fin_factuur_key, oms25, datum; - - CURSOR c_sub (c_factuur_key NUMBER) - IS - SELECT * - FROM aaxx_v_bron_export_exact_xml - WHERE fin_factuur_key = c_factuur_key; - - v_order_count NUMBER; - v_amount_sum NUMBER(10,2); - v_amount_sum_incl NUMBER(10,2); - v_count NUMBER; - v_sub_count NUMBER; - v_bestand VARCHAR2(12); - v_boekstuknummer NUMBER; - -BEGIN - - v_order_count := 0; - v_amount_sum := 0; - v_amount_sum_incl := 0; - v_count := 0; - v_bestand := SUBSTR(p_applname, 1, 12); - - -- Eerst opruiming - DELETE FROM imp_log - WHERE imp_log_applicatie = p_applname; - - DELETE fac_rapport - WHERE fac_rapport_node = v_bestand; - - -- Verwijder het kenmerk boekstuknummer van de facturen die niet op verwerkt staan - -- ## AAIT#36589 - DELETE fin_kenmerkfactuur kf - WHERE fin_kenmerk_key = 3 - AND fin_factuur_key IN (SELECT fin_factuur_key - FROM fin_factuur - WHERE fin_factuur_statuses_key <> 7); - - -- Bewaar de factuur keys in een tijdelijke tabel zodat bij het verwerken (nieuwe export) - -- deze keys gebruikt kunnen worden. - DELETE aaxx_exp_factuur; - - INSERT INTO aaxx_exp_factuur (fin_factuur_key) - ( SELECT DISTINCT fin_factuur_key - FROM aaxx_v_factuur_gegevens - WHERE fin_factuur_statuses_key = 6 - AND fin_factuur_datum > SYSDATE - (5 * 365) -- Check op geldige factuurdatum: - AND fin_factuur_datum < SYSDATE + 365 -- facturen mogen niet ouder zijn dan 5 jaar of meer dan één jaar in de toekomst. - ); - - -- Bepaal het boekstuknummer (key 3) met het hoogste nummer van dit jaar - -- ## AAIT#36589 - - SELECT MAX(fin_kenmerkfactuur_waarde)+1 - INTO v_boekstuknummer - FROM fin_kenmerkfactuur - WHERE fin_kenmerk_key = 3 - AND SUBSTR(fin_kenmerkfactuur_waarde,1,2) = TO_CHAR(SYSDATE, 'YY'); - - IF v_boekstuknummer IS NULL - THEN - v_boekstuknummer := FAC.safe_to_number(TO_CHAR(SYSDATE, 'YY') || '000000'); - END IF; - - -- header - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - - FOR rec IN c - LOOP - BEGIN - -- controleer of de factuur in de aaxx_exp_tabel staat. Anders mag deze niet geexporteerd worden. - SELECT count(*) - INTO v_count - FROM aaxx_exp_factuur - WHERE fin_factuur_key = rec.fin_factuur_key; - - IF v_count <> 0 - THEN - -- Eerst maar even een kenmerk voor het boestuknummer aanmaken - INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde) - VALUES (rec.fin_factuur_key, 3, v_boekstuknummer); - - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'Description', rec.oms25); - aaxx_add_xml_element (v_bestand, 'Date', rec.datum); - aaxx_add_xml_element (v_bestand, 'DocumentDate', TO_CHAR(SYSDATE, 'YYYY-MM-DD') ); - aaxx_add_xml_row (v_bestand, ''); - v_sub_count := 1; - FOR rec1 IN c_sub (rec.fin_factuur_key) - LOOP - BEGIN - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'Date', rec1.datum); - aaxx_add_xml_row (v_bestand, ''); - -- Meldingnummer alleen vermelden voor opdrachten met type 'Projectorder' - IF (rec1.projectnr IS NOT NULL) - THEN - aaxx_add_xml_element (v_bestand, 'Description', rec.oms25); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'Description', rec1.projectnaam); - aaxx_add_xml_row (v_bestand, ''); - ELSE - aaxx_add_xml_element (v_bestand, 'Description', rec1.oms25); - END IF; - aaxx_add_xml_row (v_bestand, ''); - IF aaxx_get_user = 'IT' AND rec1.lev_kpn = '2000700' - THEN - aaxx_add_xml_row (v_bestand, ''); -- afwijkend voor AAIT facilitaire kosten AAIT#25528. - ELSIF aaxx_get_user = 'AMS' OR aaxx_get_user = 'GUL' OR aaxx_get_user = 'ZCN' OR aaxx_get_user = 'ARCADIS' - THEN - aaxx_add_xml_row (v_bestand, ''); - ELSE - aaxx_add_xml_row (v_bestand, ''); - END IF; - aaxx_add_xml_row (v_bestand, ''); - -- AAIT#23838: kostensoort niet opnemen voor inkoopfacturen IT - IF ( NOT(aaxx_get_user = 'IT' AND COALESCE(rec1.lev_kpn, 'GEEN') <> '2000700') ) - THEN - aaxx_add_xml_row (v_bestand, ''); - END IF; - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'Debit', rec1.bedrag_txt); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'Reference', rec1.betaalref); - aaxx_add_xml_element (v_bestand, 'InvoiceNumber', rec1.fin_factuur_key); -- of moet dit v_boekstuknummer worden???? - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'YourRef', rec1.betaalref); - aaxx_add_xml_element (v_bestand, 'DocumentDate', TO_CHAR(SYSDATE, 'YYYY-MM-DD') ); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, '' || rec1.opdracht_id || ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - v_sub_count := v_sub_count + 1; - v_amount_sum := v_amount_sum + rec1.bedrag; - v_amount_sum_incl := v_amount_sum_incl + rec1.bedrag_incl; - END; - END LOOP; - aaxx_add_xml_row (v_bestand, ''); - v_order_count := v_order_count + 1; - v_boekstuknummer := v_boekstuknummer + 1; - END IF; - END; - END LOOP; - - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - fac.writelog (p_applname, 'S', 'Exact export uitgevoerd. Aantal regels: ' || v_order_count || ' Totaal bedrag: ' || v_amount_sum || ' Totaal bedrag (incl): ' || v_amount_sum_incl, ''); - -END; -/ - -/* nieuwe procedure om oude aaxx_select_exact_xml procedure op termijn te vervangen. Door gebruik te maken - van de nieuwe procedure hoeft er per klant geen specifieke export in de cust.sql. De prefix in de - export tabel staat dan op AAXX */ -CREATE OR REPLACE PROCEDURE aaxx_select_exact (p_applname IN VARCHAR2, - p_applrun IN VARCHAR2 -) -AS -BEGIN - aaxx_select_exact_xml (p_applname, p_applrun); -END; -/ - --- Procedure om alle facturen te exporteren naar exact. -CREATE OR REPLACE PROCEDURE aaxx_export_exact ( - p_applname IN VARCHAR2, - p_applrun IN VARCHAR2, - p_filedir IN VARCHAR2, - p_filename IN VARCHAR2 -) -AS - v_errormsg VARCHAR (200); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); -BEGIN - -- functionaliteit verplaatst naar aaxx_select_exact_xml procedure om er zeker van te zijn dat - -- de aaxx_exp_factuur tabel eerst gevuld wordt alvorens de XML gegenereerd wordt. AAVL#27120 en AAEN#26362 - NULL; -END; -/ - - - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - Export exact verwerk -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_export_verwerk_exact ( - result, - result_order - ) -AS -SELECT REPLACE(REPLACE(f.fin_factuur_key - || ';' - || opdracht_id - || ';' - || fin_factuur_datum - || ';' - || fin_factuur_nr - || ';' - || prs_bedrijf_key - || ';' - || fin_factuurregel_totaal - || ';' - || fin_factuurregel_btw - || ';' - || fin_factuurregel_nr - || ';' - || fin_factuur_debiteur_nr - || ';' - || project_nummer - || ';' - || prs_kostensoort_refcode - || ';' - || mld_opdr_key - || ';' - || cnt_contract_key - ,CHR (13), ''), CHR (10), ''), f.fin_factuur_key - FROM aaxx_exp_factuur f, - aaxx_v_factuur_gegevens fg - WHERE f.fin_factuur_key = fg.fin_factuur_key - AND fg.fin_factuur_statuses_key = 6; - - --- Procedure om alle geexporteerde facturen naar status verwerkt te zetten. --- Gebruik verkoopfactuur: --- fin_verkoopfactuur_id datum + referentie --- fin_verkoopfactuur_xmlnode opdracht / contract / bestelopdr / opdr_uren --- fin_verkoopfactuur_refkey key naar het record --- fin_verkoopfactuur_aanmaak sysdate --- prs_kostenplaats_nr kostenplaatsnr --- prs_debiteur_naam debiteurnummer --- prs_kostensoort_oms kostensoort --- prs_kostensoort_opmerking kostensoort_opmerking wordt niet gebruikt voor verkoopfacturen --- prs_kostensoort_refcode grootboekrekening --- prs_kostensoortgrp_oms referentie --- fin_verkoopfactuur_omschr omschrijving subregel --- fin_verkoopfactuur_bedrag --- fin_btwtabelwaarde_code --- fin_verkoopfactuur_maand jaar in verband met boekingen op balansrekening als op vorige jaren --- fin_verkoopfactuur_c1 Exact code van het gebouw. Is kenmerk van gebouw --- fin_verkoopfactuur_c2 Groepering van de kopregel van de factuur. --- fin_verkoopfactuur_c3 Volgorde van de subregels van de factuur. --- fin_verkoopfactuur_c4 Kenmerk ordernummer klant (DBS special). - - - - -- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3 - -CREATE OR REPLACE PROCEDURE aaxx_export_verwerk_exact ( - p_applname IN VARCHAR2, - p_applrun IN VARCHAR2, - p_filedir IN VARCHAR2, - p_filename IN VARCHAR2 -) -AS - CURSOR c_fact - IS - SELECT f.fin_factuur_key - FROM aaxx_exp_factuur f - , aaxx_v_factuur_gegevens fg - WHERE f.fin_factuur_key = fg.fin_factuur_key - AND fg.fin_factuur_statuses_key = 6; - - CURSOR c_opdr - IS - SELECT distinct fg.mld_opdr_key, mld_statusopdr_key, m.mld_melding_status, m.mld_melding_key - FROM aaxx_exp_factuur f - , aaxx_v_factuur_gegevens fg - , mld_opdr o - , mld_melding m - WHERE f.fin_factuur_key = fg.fin_factuur_key - AND fg.mld_opdr_key = o.mld_opdr_key - AND o.mld_melding_key = m.mld_melding_key - AND laatste_factuur = 1 - AND fg.fin_factuur_statuses_key = 6; - - CURSOR c_bes - IS - SELECT bo.* - FROM aaxx_exp_factuur f - , aaxx_v_factuur_gegevens fg - , bes_bestelopdr bo - WHERE f.fin_factuur_key = fg.fin_factuur_key - AND fg.bes_bestelopdr_key = bo.bes_bestelopdr_key - AND laatste_factuur = 1 - AND fg.fin_factuur_statuses_key = 6; - -/* Wacht op release 2016.3 AAIT#37411 - -- pas de bedragen in het factuurschema aan als de laatste factuur ontvangen is. - CURSOR c_cnt - IS - SELECT DISTINCT fg.cnt_contract_key, fs.cnt_factuurschema_key - FROM aaxx_exp_factuur f, - aaxx_v_factuur_gegevens fg, - cnt_contract c, - cnt_factuurschema fs - WHERE f.fin_factuur_key = fg.fin_factuur_key - AND fg.cnt_contract_key = c.cnt_contract_key - AND c.cnt_contract_key = fs.cnt_contract_key - AND fg.fin_factuur_boekmaand = fs.cnt_factuurschema_boekmaand - AND laatste_factuur = 1 - AND fg.fin_factuur_statuses_key = 6; -*/ - - CURSOR c_sync_kostensoort - IS - SELECT COALESCE (kstd.prs_kostensoort_key, kvg.prs_kostensoort_key) - std_kostensoort_key, - f.prs_kostensoort_key fac_kostensoort_key, - f.fin_factuur_key - FROM fin_factuur f, - aaxx_exp_factuur ef, - mld_opdr o, - mld_melding m, - mld_stdmelding std, - ins_tab_discipline md, - prs_kostensoort kstd, - prs_kostensoort kvg - WHERE f.fin_factuur_key = ef.fin_factuur_key - AND f.mld_opdr_key = o.mld_opdr_key - AND m.mld_melding_key = o.mld_melding_key - AND m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = md.ins_discipline_key - AND std.prs_kostensoort_key = kstd.prs_kostensoort_key(+) - AND md.prs_kostensoort_key = kvg.prs_kostensoort_key(+); - - v_errormsg VARCHAR (200); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_aanvrager NUMBER; - v_bestelling_key NUMBER; - v_logdate DATE; -BEGIN - v_errormsg := 'Geen akties'; - --- Facilitor user - IF aaxx_get_user = 'SITECH' - THEN - v_aanvrager := 6524; - ELSE - v_aanvrager := 4; - END IF; - - -- AAIT#34097 aanpassen kostensoort bij factuur. Soms wordt de stdmelding aangepast terwijl - -- er al een factuur geboekt is. Door bij het verwerken van de factuur deze kostensoort nog - -- aan te passen wordt voorkomen dat hier verschillen gaan ontstaan. - -- AAIT#36442 AAIT niet meenemen in dit mechanisme omdat bij AAIT de kostensoort uit de opdracht - -- gehaald wordt. - IF aaxx_get_user <> 'IT' - THEN - v_errormsg := 'Aanpassen kostensoort'; - FOR reck IN c_sync_kostensoort - LOOP - BEGIN - IF reck.fac_kostensoort_key <> reck.std_kostensoort_key - THEN - UPDATE fin_factuur - SET prs_kostensoort_key = reck.std_kostensoort_key - WHERE fin_factuur_key = reck.fin_factuur_key; - - -- Pas de login aan - INSERT INTO fac_tracking (fac_tracking_refkey, fac_srtnotificatie_key, fac_tracking_oms) - SELECT reck.fin_factuur_key, fac_srtnotificatie_key, 'Kostensoort aangepast in factuur export' - FROM fac_srtnotificatie - WHERE fac_srtnotificatie_code = 'FINUPD'; - END IF; - END; - END LOOP; - END IF; - - -- Verkoopinterface - - v_logdate := SYSDATE; - -- voeg SA en ST opdrachten toe aan de fin_verkoopfacturen (vh. verkoopbuffer) - -- BTW tarief in verkoopbuffer is altijd 19 procent (AADS#18338) - INSERT INTO fin_verkoopfactuur - ( - -- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_bedrijf_key, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3, fin_verkoopfactuur_n1 - ) - SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr, 1,30 ), - 'opdracht', - o.mld_opdr_key, - v_logdate, - DECODE (aaxx_get_user, 'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - 'DBS', DECODE (ks.prs_kostensoort_upper, 'CV EIG BOUW PL', '913757', - 'CV EIG INST PL', '913757', - substr(aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr),1,6)), - 'DOW', k.prs_kostenplaats_nr, - 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520', - 'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)), - 'SITECH', aaxx_get_dep_code(k.prs_kostenplaats_nr), - 'ESSENT', '912001', - 'LB', exact_code, - 'NMM', 'MGB', - 'SABIC', DECODE (to_char(opdr_datum, 'YYYY'), '2012', k.prs_kostenplaats_nr, - '2013', k.prs_kostenplaats_nr, - aaxx_get_top_dep_code(k.prs_kostenplaats_nr)), - 'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - SUBSTR (prs_kostenplaats_nr, 1, 30)) prs_kostenplaats_nr, - DECODE (aaxx_get_user, 'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - 'DBS', DECODE (ks.prs_kostensoort_upper, 'CV EIG BOUW PL', '913757', - 'CV EIG INST PL', '913757', - substr(aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr),1,6)), - 'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6), - 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520', - 'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)), - 'SITECH', aaxx_get_dep_code(k.prs_kostenplaats_nr), - 'ESSENT', '912001', - 'LB', DECODE(g.alg_locatie_key, - 1, '911928', -- Worldwide Headquarters - 2, '911927', -- Maasvlakte - 3, '911930', -- Botlek - 4, '911929' -- Moerdijk - ), - 'NMM', DECODE(k.prs_kostenplaats_nr, - '0001', '913799', -- Heijmans - '0002', '913810', -- Vermaat - '0003', '913766', -- Defensie - '0004', '913776', -- Stichting Nationaal Militair Museum - 'Onbekend' - ), - 'RABO', aaxx_get_dep_code(k.prs_kostenplaats_nr), - 'SABIC', DECODE (to_char(opdr_datum, 'YYYY'), '2012', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - '2013', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - (SELECT distinct prs_leverancier_nr FROM prs_bedrijf b, prs_afdeling a - WHERE b.prs_bedrijf_key = a.prs_bedrijf_key - AND b.prs_bedrijf_verwijder IS NULL - AND a.prs_afdeling_verwijder IS NULL - AND a.prs_afdeling_naam = aaxx_get_top_dep_code(k.prs_kostenplaats_nr))), - 'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - 'ZCN', '913815', - 'ZKHM', '913816', - SUBSTR (prs_kostenplaats_nr, 1, 30)) debiteur, - b.prs_bedrijf_key, - ks.prs_kostensoort_oms || DECODE(TO_CHAR(opdr_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') , - ks.prs_kostensoort_opmerking, - vk_prs_kostensoort_refcode, - SUBSTR(DECODE (aaxx_get_user, - 'AH', DECODE(SUBSTR(ks.prs_kostensoort_upper,1,2), 'CV', ksg.prs_kostensoortgrp_oms, - sd.ins_srtdiscipline_prefix || m.mld_melding_key), - 'DBS', DECODE(ks.prs_kostensoortgrp_key, 3, 'Projecten', 'Core Variable'), - 'DOW', 'Service Charges', - 'RABO', 'Servicekosten ' || aaxx_get_dep_code(k.prs_kostenplaats_nr), - 'VL', 'Core Variabel', - 'ZCN', DECODE(sd.ins_srtdiscipline_prefix, 'PR', 'Projecten', - DECODE(aaxx_get_top_dep_code(prs_kostenplaats_nr), 'SN', 'Servicekosten', - 'KL', 'Klantvragen', - '')), - 'ZKHM', DECODE(sd.ins_srtdiscipline_prefix, 'PR', 'Projecten', - DECODE(aaxx_get_top_dep_code(prs_kostenplaats_nr), 'SN', 'Servicekosten', - 'KL', 'Klantvragen', - '')), - ksg.prs_kostensoortgrp_oms || DECODE (aaxx_get_user, 'LB', ' ' || Exact_code, - 'SABIC', ' ' || DECODE (to_char(opdr_datum, 'YYYY'), '2012', k.prs_kostenplaats_nr, - '2013', k.prs_kostenplaats_nr, - aaxx_get_top_dep_code(k.prs_kostenplaats_nr)), - 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ' ' || l.alg_locatie_code), - 'NMM', DECODE(k.prs_kostenplaats_nr, '0001', ' Heijmans', - '0002', ' Vermaat', - '0003', ' Defensie', - '0004', ' NMM', - ' Onbekend') - ) - ) - , 1, 60) prs_kostensoortgrp_oms, - sd.ins_srtdiscipline_prefix - || m.mld_melding_key - || '/' - || mld_opdr_bedrijfopdr_volgnr - || ' ' - || d.ins_discipline_omschrijving - || ' (' - || (SELECT MAX(mld_kenmerkmelding_waarde) - FROM mld_kenmerkmelding km, mld_kenmerk k - WHERE km.mld_kenmerk_key = k.mld_kenmerk_key - AND ( ( aaxx_get_user <> 'DBS' AND k.mld_srtkenmerk_key = 143) -- opdrachtnummer - OR ( aaxx_get_user = 'DBS' AND k.mld_srtkenmerk_key = 55) -- projectnaam - ) - AND km.mld_melding_key = m.mld_melding_key) - || ')' - omschrijving, - ROUND (fg.bedrag - * COALESCE ( (SELECT u.uplift - FROM aaxx_imp_uplift u - WHERE u.prs_leverancier_nr = b.prs_leverancier_nr - AND UPPER(soort_order) = 'WO' - AND UPPER (u.prs_kostensoort_oms) = - ks.prs_kostensoort_upper - AND fg.fin_factuur_boekmaand = - u.jaar - || '-' - || LTRIM (TO_CHAR (u.maand, '00'))), - DECODE (aaxx_get_user, 'NMM', 1.1, 1) - ), - 2 - ), - DECODE (aaxx_get_user, - 'SITECH', DECODE (fg.prs_kostensoort_refcode, '4321006', fin_btwtabelwaarde_code, 5), --AADS#21168 - fin_btwtabelwaarde_code) fin_btwtabelwaarde_code, - to_char(opdr_datum, 'YYYY'), - DECODE (aaxx_get_user, - 'LB', l.alg_locatie_code, - 'NMM', 'MGB', - COALESCE(exact_code, alg_gebouw_code)), -- C1 - SUBSTR ( - DECODE (aaxx_get_user, 'AH', DECODE(SUBSTR(ks.prs_kostensoort_upper,1,2), 'CV', ksg.prs_kostensoortgrp_oms, - sd.ins_srtdiscipline_prefix || m.mld_melding_key), - 'DBS', DECODE (ks.prs_kostensoort_upper, 'NC PROJ', '913757' || m.mld_melding_key, - 'CV EIG BOUW PL', '913757', - 'CV EIG INST PL', '913757', - 'CVE GEB NIET PLAN', aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr) || m.mld_melding_key, - 'CVE INSTAL NIET PLAN', aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr) || m.mld_melding_key, - aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr)), - 'SITECH', (SELECT fac_usrdata_omschr - FROM alg_onrgoedkenmerk, fac_usrdata ud - WHERE alg_onrgoed_key = g.alg_gebouw_key - AND alg_kenmerk_key = 1060 -- rema contract - AND ud.fac_usrdata_key = - fac.safe_to_number (alg_onrgoedkenmerk_waarde) - AND ( ks.prs_kostensoort_upper LIKE 'ST ONDH%' - OR ks.prs_kostensoort_upper LIKE 'STB ONDH%')), - 'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8) || - DECODE(substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,3), - '911', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,5), 'NC P ', 'PR', 'NC/CV'), - '912', 'CV/NC/PR', - '913', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,7), 'COR VAR', 'CV', 'NC/PR'), - 'Onbekend') || - substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8), - 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ksg.prs_kostensoortgrp_oms || ' ' || l.alg_locatie_code, - 'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)), - 'RABO', aaxx_get_dep_code(k.prs_kostenplaats_nr), - 'SABIC', DECODE (to_char(opdr_datum, 'YYYY'), '2012', '', - '2013', '', - aaxx_get_top_dep_code(k.prs_kostenplaats_nr)), - 'ZCN', DECODE(sd.ins_srtdiscipline_prefix, 'PR', to_char(m.mld_melding_key), - aaxx_get_top_dep_code(prs_kostenplaats_nr)), - 'ZKHM', DECODE(sd.ins_srtdiscipline_prefix, 'PR', to_char(m.mld_melding_key), - aaxx_get_top_dep_code(prs_kostenplaats_nr)), - '') - , 1, 12) groepering, -- C2 - DECODE (aaxx_get_user, 'LB', prs_kostensoort_oms || '1', - 'DOW', 'A' || prs_kostensoort_oms, - 'ESSENT', (SELECT uplift - FROM aaxx_imp_uplift u - WHERE u.prs_kostensoort_oms = ks.prs_kostensoort_oms), - '') subregelvolgorde, -- C3 - l.alg_locatie_key -- N1 - FROM mld_opdr o, - mld_typeopdr ot, - prs_bedrijf b, - prs_kostenplaats k, - mld_melding m, - mld_stdmelding std, - ins_tab_discipline d, - ins_srtdiscipline sd, - prs_kostensoort ks, - prs_kostensoortgrp ksg, - aaxx_exp_factuur f, - alg_gebouw g, - alg_locatie l, - alg_v_onroerendgoed og, - aaxx_v_exact_code_gebouw exact, - (SELECT fin_factuur_key, - mld_opdr_key, - SUM (fin_factuurregel_totaal) bedrag, - aaxx_get_verkoop_btw_code (fin_btwtabelwaarde_key) fin_btwtabelwaarde_code, - prs_kostenplaats_key, - prs_kostensoort_key, - prs_kostensoort_refcode, - vk_prs_kostensoort_refcode, - fin_factuur_boekmaand, - opdr_datum, - fin_factuur_datum - FROM aaxx_v_factuur_gegevens - WHERE fin_factuur_statuses_key = 6 - GROUP BY fin_factuur_key, - fin_btwtabelwaarde_key, - mld_opdr_key, - prs_kostenplaats_key, - prs_kostensoort_key, - fin_factuur_boekmaand, - opdr_datum, - fin_factuur_datum, - fin_factuurregel_btw, - fin_btwtabelwaarde_code, - vk_prs_kostensoort_refcode, - prs_kostensoort_refcode, - fin_factuurregel_totaal) fg - WHERE fg.prs_kostenplaats_key = k.prs_kostenplaats_key(+) - AND o.mld_typeopdr_key = ot.mld_typeopdr_key - AND fg.mld_opdr_key = o.mld_opdr_key - AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+) - AND og.alg_gebouw_key = g.alg_gebouw_key(+) - AND m.mld_alg_locatie_key = l.alg_locatie_key(+) - AND og.alg_gebouw_key = exact.alg_gebouw_key(+) - AND fg.fin_factuur_key = f.fin_factuur_key - AND o.mld_melding_key = m.mld_melding_key - AND o.mld_uitvoerende_keys = b.prs_bedrijf_key - AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+) - AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+) - AND m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = d.ins_discipline_key - AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key - AND (( sd.ins_srtdiscipline_prefix = 'SA' - AND aaxx_get_user <> 'VL' - AND aaxx_get_user <> 'AH' - AND aaxx_get_user <> 'DSM' - AND aaxx_get_user <> 'SABIC' - AND aaxx_get_user <> 'ZCN' - AND aaxx_get_user <> 'ZKHM' - AND aaxx_get_user <> 'DOW' - AND aaxx_get_user <> 'LB' - AND aaxx_get_user <> 'NMM' - AND aaxx_get_user <> 'RABO' - AND aaxx_get_user <> 'DBS' - AND aaxx_get_user <> 'ESSENT') - OR ( aaxx_get_user = 'SITECH' - AND ( ks.prs_kostensoort_upper LIKE 'ST ONDH%' - OR ks.prs_kostensoort_upper LIKE 'STB ONDH%') - AND ot.mld_typeopdr_omschrijving = 'Workorder' - ) - OR ( aaxx_get_user = 'AH' - AND ( ks.prs_kostensoort_upper LIKE 'CV%' - OR ks.prs_kostensoort_upper LIKE 'NC PROJ%') - ) - OR ( aaxx_get_user = 'DBS' - AND ks.prs_kostensoort_upper IN ( - 'CV AFVAL REST', - 'CV OND', - 'CV GEB NIET PLAN', - 'CV INSTAL NIET PLAN', - 'CV TERR VERHARD', - 'CV TERR NIET PL', - 'CV OND TERR', - 'CV TERR OVR', - 'CV CONS REST', - 'CV CONS SERV', - 'CV CONS OVR', - 'CV CONS AUT', - 'CV BEWAK', - 'CV PREV CAL', - 'CV BEWAK OVR', - 'CV SCH', - 'CV SCH GLAS', - 'CV SCH OVR', - 'CV VGM', - 'CV GROEN', - 'CV EIG BOUW PL', - 'CV EIG INST PL', - 'NC PROJ', - 'CVE INSTAL NIET PLAN', - 'CVE GEB NIET PLAN') - ) - OR ( aaxx_get_user = 'DOW' - AND ( ot.mld_typeopdr_omschrijving = 'Workorder' - OR ot.mld_typeopdr_omschrijving = 'Projectorder') - AND ( ks.prs_kostensoort_upper LIKE 'NC %' - OR ks.prs_kostensoort_upper LIKE 'NC P %' - OR ks.prs_kostensoort_upper = 'COR VAR MAIL SERVICES' - OR ks.prs_kostensoort_upper = 'COR VAR VENDING' - OR ks.prs_kostensoort_upper = 'COR VAR MAIN HANDYMAN' - OR ks.prs_kostensoort_upper = 'COR VAR GEN TEN SERV' - ) - ) - OR ( aaxx_get_user = 'DSM' - AND SUBSTR(ks.prs_kostensoort_upper,1,3) IN ( - 'CV ', - 'CVE') - ) - OR ( aaxx_get_user = 'ESSENT' - AND ks.prs_kostensoort_upper LIKE 'CVE%' - AND ot.mld_typeopdr_omschrijving = 'Workorder' - ) - OR ( aaxx_get_user = 'LB' - AND ks.prs_kostensoort_upper LIKE 'NC%' - AND ks.prs_kostensoort_upper <> 'NC DERDEN' - AND ks.prs_kostensoort_upper <> 'NC PROJ' - ) - OR ( aaxx_get_user = 'NMM' - AND ks.prs_kostensoort_upper LIKE 'CV%' - ) - OR ( aaxx_get_user = 'RABO' - AND ot.mld_typeopdr_omschrijving = 'Workorder' - ) - OR ( aaxx_get_user = 'SABIC' - AND ( ( o.mld_opdr_datumbegin < to_date ('20140101', 'yyyymmdd') -- Voor sabic geldt in 2014 een ander mechanisme (AASA#28673) - AND ks.prs_kostensoort_upper LIKE '%NC' - AND ot.mld_typeopdr_omschrijving = 'Workorder' - ) - OR ( o.mld_opdr_datumbegin > to_date ('20140101', 'yyyymmdd') -- Voor sabic geldt voor 2014 een ander mechanisme (AASA#28673) - AND ks.prs_kostensoort_upper LIKE 'CV %' - AND ks.prs_kostensoort_upper <> 'CV CHIP' - AND ( o.mld_opdr_datumbegin > to_date ('20150101', 'yyyymmdd') -- Voor sabic geldt voor 2015 een ander mechanisme (AASA#31618) - OR ( ks.prs_kostensoort_upper <> 'CV CONS REST' - AND ks.prs_kostensoort_upper <> 'CV CONS AUT' - AND ks.prs_kostensoort_upper <> 'CV SCH OVR' - AND ks.prs_kostensoort_upper <> 'CV DOC POST' - AND ks.prs_kostensoort_upper <> 'CV AFVAL REST' - ) - ) - AND ( ks.prs_kostensoort_upper <> 'CV EIG BOUW PL' OR ot.mld_typeopdr_omschrijving = 'Workorder') - ) - ) - ) - OR ( aaxx_get_user = 'VL' - AND ( ( o.mld_opdr_datumbegin < to_date ('20160101', 'yyyymmdd') -- Voor VL geldt in 2016 een ander mechanisme (AAVL#34856) - AND ks.prs_kostensoort_upper IN ( - 'CV OND', - 'CV TERR OVR', - 'CV BEWAK OVR', - 'CV BOUW PLAN', - 'CV CONS REST', - 'CV CONS OVR', - 'CV SCH', - 'CV WP', - 'CV GEB NIET PLAN', - 'CV CONS SERV', - 'CV SCH GLAS', - 'CV KART', - 'CV INSTAL PLAN', - 'CV BEWAK', - 'CV VERH', - 'CV GROEN', - 'CV INSTAL NIET PLAN', - 'CV PREV CAL', - 'CV DOC POST', - 'CV BEW', - 'CV TERR VERHARD', - 'CV REC', - 'CV DOC REP', - 'CV VERV PERS', - 'CV OND TERR', - 'CV ACHT OND', - 'CV EIG INST PL', - 'CV EIG BOUW PL', - 'NC ACHT OND', - 'NC INV BOUW', - 'NC INV WP', - 'NC INV INST') - ) - OR - ( o.mld_opdr_datumbegin >= to_date ('20160101', 'yyyymmdd') -- Voor VL geldt in 2016 een ander mechanisme (AAVL#34856) - AND ( ks.prs_kostensoort_upper LIKE 'CVE %' OR ks.prs_kostensoort_upper LIKE 'NC %') - ) - ) - ) - OR ( aaxx_get_user = 'ZCN' - AND ( sd.ins_srtdiscipline_prefix = 'PR' - OR aaxx_get_top_dep_code(prs_kostenplaats_nr) = 'SN' - OR aaxx_get_top_dep_code(prs_kostenplaats_nr) = 'KL' - ) - ) - OR ( aaxx_get_user = 'ZKHM' - AND ( sd.ins_srtdiscipline_prefix = 'PR' - OR aaxx_get_top_dep_code(prs_kostenplaats_nr) = 'SN' - OR aaxx_get_top_dep_code(prs_kostenplaats_nr) = 'KL' - ) - ) - ); - - - -- voeg contract orders toe aan de verkoopbuffer - -- bij SITECH wordt gegroepeerd op REMA contract - IF aaxx_get_user = 'SITECH' THEN - INSERT INTO fin_verkoopfactuur - ( - -- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3, fin_verkoopfactuur_n1 - ) - SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || 'C' || cnt_contract_nummer_intern || DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie), 1,30 ), - 'contract', - c.cnt_contract_key, - v_logdate, - aaxx_get_dep_code (k.prs_kostenplaats_nr), - aaxx_get_dep_code (k.prs_kostenplaats_nr), - ks.prs_kostensoort_oms || DECODE(TO_CHAR(opdr_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') , - ks.prs_kostensoort_opmerking, - vk_prs_kostensoort_refcode, - (SELECT prs_kostensoortgrp_oms - FROM prs_kostensoortgrp ksg - WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key), - 'C' - || cnt_contract_nummer_intern - || DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie) - omschrijving, - COALESCE((SELECT ROUND (COALESCE(cp.gewicht,1) * fg.bedrag * u.uplift, 2) - FROM aaxx_imp_uplift u - WHERE u.prs_leverancier_nr = b.prs_leverancier_nr - AND UPPER (soort_order) = 'CO' - AND UPPER (u.prs_kostensoort_oms) = ks.prs_kostensoort_upper - AND fg.fin_factuur_boekmaand = - TO_CHAR (u.jaar) || '-' || LTRIM (TO_CHAR (u.maand, '00'))), ROUND ((cp.gewicht * fg.bedrag), 2)), - 5, -- AADS#21168 , AADS#26856 - to_char(opdr_datum, 'YYYY'), - cp.alg_gebouw_code, - cp.rema, - '', - '' - FROM cnt_contract c, - prs_bedrijf b, - prs_kostenplaats k, - ins_tab_discipline d, - prs_kostensoort ks, - aaxx_exp_factuur f, - (SELECT fin_factuur_key, - cnt_contract_key, - SUM (fin_factuurregel_totaal) bedrag, - fin_factuurregel_btw btw, - aaxx_get_verkoop_btw_code (fin_btwtabelwaarde_key) fin_btwtabelwaarde_code, - prs_kostenplaats_key, - prs_kostensoort_key, - vk_prs_kostensoort_refcode, - fin_factuur_boekmaand, - opdr_datum, - fin_factuur_datum - FROM aaxx_v_factuur_gegevens - WHERE fin_factuur_statuses_key = 6 - GROUP BY fin_factuur_key, - cnt_contract_key, - prs_kostenplaats_key, - prs_kostensoort_key, - fin_factuur_boekmaand, - opdr_datum, - fin_factuur_datum, - fin_factuurregel_btw, - fin_btwtabelwaarde_key, - fin_btwtabelwaarde_code, - vk_prs_kostensoort_refcode, - fin_factuurregel_totaal) fg, - (SELECT cnt_contract_key, - alg_gebouw_code, - rema.fac_usrdata_omschr rema, - cp.cnt_contract_plaats_gewicht - / ( SELECT DECODE (SUM (cp2.cnt_contract_plaats_gewicht), - 0, 1, - SUM (cp2.cnt_contract_plaats_gewicht)) - FROM cnt_contract_plaats cp2 - WHERE cp2.cnt_contract_key = cp.cnt_contract_key - AND cp2.cnt_contract_plaats_verwijder IS NULL - GROUP BY cp.cnt_contract_key) - gewicht - FROM cnt_contract_plaats cp, - alg_gebouw g, - (SELECT k.alg_onrgoed_key, ud.fac_usrdata_omschr - FROM alg_onrgoedkenmerk k, fac_usrdata ud - WHERE k.alg_kenmerk_key = 1060 - AND fac.safe_to_number (alg_onrgoedkenmerk_waarde) = - fac_usrdata_key) rema - WHERE cp.cnt_contract_plaats_verwijder IS NULL - AND cp.cnt_alg_plaats_key = g.alg_gebouw_key - AND g.alg_gebouw_key = rema.alg_onrgoed_key(+)) cp - WHERE fg.prs_kostenplaats_key = k.prs_kostenplaats_key - AND fg.cnt_contract_key = c.cnt_contract_key - AND c.cnt_contract_key = cp.cnt_contract_key(+) - AND fg.fin_factuur_key = f.fin_factuur_key - AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key - AND c.ins_discipline_key = d.ins_discipline_key - AND fg.prs_kostensoort_key = ks.prs_kostensoort_key - AND aaxx_get_user = 'SITECH' - AND ( ks.prs_kostensoort_upper LIKE 'AE%' - OR ks.prs_kostensoort_upper LIKE 'AS ONDH%' - OR ks.prs_kostensoort_upper LIKE 'ST ONDH%' - OR ks.prs_kostensoort_upper LIKE 'STB ONDH%' - ); - ELSE - INSERT INTO fin_verkoopfactuur - ( - -- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_bedrijf_key, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3, fin_verkoopfactuur_n1 - ) - SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || 'C' || cnt_contract_nummer_intern || DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie), 1,30 ), - 'contract', - c.cnt_contract_key, - v_logdate, - DECODE (aaxx_get_user, - 'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - 'DBS', DECODE (ks.prs_kostensoort_upper, 'CV EIG BOUW PL', '913757', - 'CV EIG INST PL', '913757', - substr(aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr),1,6)), - 'LB', exact_code, - 'NMM', exact_code, - 'DOW', k.prs_kostenplaats_nr, - 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520', - 'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)), - 'NS', SUBSTR (prs_kostenplaats_nr, 1, 30), - 'SABIC', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - 'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr) - ) prs_kostenplaats_nr, - DECODE (aaxx_get_user, - 'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - 'DBS', DECODE (ks.prs_kostensoort_upper, 'CV EIG BOUW PL', '913757', - 'CV EIG INST PL', '913757', - substr(aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr),1,6)), - 'LB', DECODE(g.alg_locatie_key, - 1, '911928', -- Worldwide Headquarters - 2, '911927', -- Maasvlakte - 3, '911930', -- Botlek - 4, '911929' -- Moerdijk - ), - 'NMM', DECODE(k.prs_kostenplaats_nr, - '0001', '913799', -- Heijmans - '0002', '913810', -- Vermaat - '0003', '913766', -- Defensie - '0004', '913776', -- Stichting Nationaal Militair Museum - 'Onbekend' - ), - 'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6), - 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520', - 'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)), - 'NS', SUBSTR (prs_kostenplaats_nr, 1, 30), - 'SABIC', (SELECT distinct prs_leverancier_nr FROM prs_bedrijf b, prs_afdeling a - WHERE b.prs_bedrijf_key = a.prs_bedrijf_key - AND b.prs_bedrijf_verwijder IS NULL - AND a.prs_afdeling_verwijder IS NULL - AND a.prs_afdeling_naam = aaxx_get_top_dep_code(k.prs_kostenplaats_nr)), - 'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - 'ZCN', '913815', - 'ZCN', '913816' - ) debiteur, - b.prs_bedrijf_key, - ks.prs_kostensoort_oms || DECODE(TO_CHAR(opdr_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') , - ks.prs_kostensoort_opmerking, - vk_prs_kostensoort_refcode, - DECODE (aaxx_get_user, - 'DBS', DECODE(ks.prs_kostensoortgrp_key, 3, 'Projecten', 'Core Variable'), - 'DOW', 'Service Charges', - 'ZCN', DECODE(aaxx_get_top_dep_code(k.prs_kostenplaats_nr), 'SN', 'Servicekosten', - 'KL', 'Klantvragen', - ''), - 'ZKHM', DECODE(aaxx_get_top_dep_code(k.prs_kostenplaats_nr), 'SN', 'Servicekosten', - 'KL', 'Klantvragen', - ''), - ksg.prs_kostensoortgrp_oms || DECODE (aaxx_get_user, 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ' ' || l.alg_locatie_code), - 'LB', ' ' || exact_code, - 'SABIC', ' ' || aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - 'NMM', DECODE(k.prs_kostenplaats_nr, '0001', ' Heijmans', - '0002', ' Vermaat', - '0003', ' Defensie', - '0004', ' NMM', - ' Onbekend')) - ) prs_kostensoortgrp_oms, - 'C' - || cnt_contract_nummer_intern - || DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie) - omschrijving, - DECODE (aaxx_get_user, - 'NMM', ROUND (fg.bedrag * 1.1,2), - fg.bedrag), - fin_btwtabelwaarde_code, - to_char(opdr_datum, 'YYYY'), - DECODE (aaxx_get_user, 'LB', l.alg_locatie_code, - COALESCE(exact_code, alg_gebouw_code)) exact_code, - SUBSTR ( - DECODE (aaxx_get_user, 'AH', ksg.prs_kostensoortgrp_oms, - 'DBS', DECODE (ks.prs_kostensoort_upper, 'CV EIG BOUW PL', '913757', - 'CV EIG INST PL', '913757', - aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr)), - 'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8) || - DECODE(substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,3), - '911', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,5), 'NC P ', 'PR', 'NC/CV'), - '912', 'CV/NC/PR', - '913', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,7), 'COR VAR', 'CV', 'NC/PR'), - 'Onbekend') || - substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8), - 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ksg.prs_kostensoortgrp_oms || ' ' || l.alg_locatie_code, - 'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)), - 'SABIC', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - 'ZCN', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - 'ZKHM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - '') - ,1,12) groepering, - DECODE (aaxx_get_user, 'LB', prs_kostensoort_oms || '1', - 'DOW', 'A' || prs_kostensoort_oms, '') subregelvolgorde, - l.alg_locatie_key -- N1 - FROM cnt_contract c, - prs_bedrijf b, - prs_kostenplaats k, - ins_tab_discipline d, - prs_kostensoort ks, - prs_kostensoortgrp ksg, - aaxx_exp_factuur f, - alg_locatie l, - (SELECT cnt_contract_key, alg_gebouw_code, exact_code, ag.alg_gebouw_key, ag.alg_locatie_key - FROM - (SELECT cnt_contract_key, MIN (cp.cnt_alg_plaats_key) cnt_alg_plaats_key - FROM cnt_contract_plaats cp - WHERE cp.cnt_contract_plaats_verwijder IS NULL - AND cp.cnt_alg_plaats_code = 'G' - GROUP BY cnt_contract_key) cp, - alg_gebouw ag, - aaxx_v_exact_code_gebouw ae - WHERE cp.cnt_alg_plaats_key = ag.alg_gebouw_key - AND cp.cnt_alg_plaats_key = ae.alg_gebouw_key) g, - (SELECT fin_factuur_key, - cnt_contract_key, - SUM (fin_factuurregel_totaal) bedrag, - fin_factuurregel_btw btw, - aaxx_get_verkoop_btw_code (fin_btwtabelwaarde_key) fin_btwtabelwaarde_code, - prs_kostenplaats_key, - prs_kostensoort_key, - vk_prs_kostensoort_refcode, - fin_factuur_boekmaand, - opdr_datum, - fin_factuur_datum - FROM aaxx_v_factuur_gegevens - WHERE fin_factuur_statuses_key = 6 - GROUP BY fin_factuur_key, - cnt_contract_key, - prs_kostenplaats_key, - prs_kostensoort_key, - fin_factuur_boekmaand, - opdr_datum, - fin_factuur_datum, - fin_factuurregel_btw, - fin_btwtabelwaarde_key, - fin_btwtabelwaarde_code, - vk_prs_kostensoort_refcode, - fin_factuurregel_totaal) fg - WHERE fg.prs_kostenplaats_key = k.prs_kostenplaats_key - AND fg.cnt_contract_key = c.cnt_contract_key - AND fg.fin_factuur_key = f.fin_factuur_key - AND g.alg_locatie_key = l.alg_locatie_key - AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key - AND c.ins_discipline_key = d.ins_discipline_key - AND c.cnt_contract_key = g.cnt_contract_key(+) - AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+) - AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+) - AND ( ( aaxx_get_user = 'AH' - AND ks.prs_kostensoort_upper LIKE 'CV %' - ) - OR - ( aaxx_get_user = 'LB' - AND ks.prs_kostensoort_upper LIKE 'NC%' -- LyondellBasell - AND ks.prs_kostensoort_upper <> 'NC DERDEN' - AND ks.prs_kostensoort_upper <> 'NC PROJ' - ) - OR - ( aaxx_get_user = 'DBS' - AND ks.prs_kostensoort_upper IN ( - 'CV AFVAL REST', - 'CV OND', - 'CV GEB NIET PLAN', - 'CV INSTAL NIET PLAN', - 'CV TERR VERHARD', - 'CV TERR NIET PL', - 'CV OND TERR', - 'CV TERR OVR', - 'CV CONS REST', - 'CV CONS SERV', - 'CV CONS OVR', - 'CV CONS AUT', - 'CV BEWAK', - 'CV PREV CAL', - 'CV BEWAK OVR', - 'CV SCH', - 'CV SCH GLAS', - 'CV SCH OVR', - 'CV VGM', - 'CV GROEN', - 'CV EIG BOUW PL', - 'CV EIG INST PL', - 'NC PROJ', - 'CVE INSTAL NIET PLAN', - 'CVE GEB NIET PLAN') - ) - OR - ( aaxx_get_user = 'DOW' - AND ( ks.prs_kostensoort_upper = 'COR VAR CATE COFFE' - OR ks.prs_kostensoort_upper = 'COR VAR IND CLO' - OR ks.prs_kostensoort_upper = 'COR VAR MAIL SERVICES' - OR ks.prs_kostensoort_upper = 'COR VAR VENDING' - OR ks.prs_kostensoort_upper = 'COR VAR MAIN HANDYMAN' - OR ks.prs_kostensoort_upper = 'COR VAR GEN TEN SERV' - OR ks.prs_kostensoort_upper = 'COR VAR HVAC' - OR ks.prs_kostensoort_upper = 'COR VAR CLEA BUILDING SAN' - OR ks.prs_kostensoort_upper = 'COR VAR CLEA VSR KMS') - ) - OR - ( aaxx_get_user = 'DSM' - AND SUBSTR(ks.prs_kostensoort_upper,1,3) IN ( - 'CV ', - 'CVE') - ) - OR - ( aaxx_get_user = 'NMM' - AND ks.prs_kostensoort_upper LIKE 'CV%' - ) - OR - ( aaxx_get_user = 'SABIC' - AND c.cnt_contract_looptijd_van >= to_date ('20140101', 'yyyymmdd') -- Voor sabic geldt voor 2014 een ander mechanisme (AASA#28673) - AND ks.prs_kostensoort_upper LIKE 'CV %' - AND ks.prs_kostensoort_upper <> 'CV CHIP' - AND ( c.cnt_contract_looptijd_van >= to_date ('20150101', 'yyyymmdd') -- Voor sabic geldt voor 2015 een ander mechanisme (AASA#31618) - OR ( ks.prs_kostensoort_upper <> 'CV CONS REST' - AND ks.prs_kostensoort_upper <> 'CV CONS AUT' - AND ks.prs_kostensoort_upper <> 'CV SCH OVR' - AND ks.prs_kostensoort_upper <> 'CV DOC POST' - AND ks.prs_kostensoort_upper <> 'CV AFVAL REST' - ) - ) - ) - OR - ( aaxx_get_user = 'VL' - AND c.cnt_contract_looptijd_van < to_date ('20160101', 'yyyymmdd') -- Voor VL geldt voor 2016 een ander mechanisme (AAVL#34856) - AND ks.prs_kostensoort_upper IN ( - 'CV OND', - 'CV TERR OVR', - 'CV BEWAK OVR', - 'CV BOUW PLAN', - 'CV CONS REST', - 'CV CONS OVR', - 'CV SCH', - 'CV WP', - 'CV GEB NIET PLAN', - 'CV CONS SERV', - 'CV SCH GLAS', - 'CV KART', - 'CV INSTAL PLAN', - 'CV BEWAK', - 'CV VERH', - 'CV GROEN', - 'CV INSTAL NIET PLAN', - 'CV PREV CAL', - 'CV DOC POST', - 'CV BEW', - 'CV TERR VERHARD', - 'CV REC', - 'CV DOC REP', - 'CV VERV PERS', - 'CV OND TERR', - 'CV ACHT OND', - 'NC ACHT OND', - 'CV EIG INST PL', - 'CV EIG BOUW PL', - 'NC INV BOUW', - 'NC INV WP', - 'NC INV INST') - ) - OR - ( aaxx_get_user = 'ZCN' - AND ( aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'SN' - OR aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'KL') - ) - OR - ( aaxx_get_user = 'ZKHM' - AND ( aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'SN' - OR aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'KL') - ) - ); - END IF; - -- voeg bestelorders toe aan de verkoopbuffer - INSERT INTO fin_verkoopfactuur - ( - -- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_bedrijf_key, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3, fin_verkoopfactuur_n1 - ) - SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || bestel.bes_bestelopdr_id, 1,30 ), - 'bestelopdr', - bestel.bes_bestelopdr_key, - v_logdate, - DECODE (aaxx_get_user, - 'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - 'DOW', '911791', - 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520', - 'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)), - 'SITECH', aaxx_get_dep_code (k.prs_kostenplaats_nr), - 'LB', exact_code, - 'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - SUBSTR (prs_kostenplaats_nr, 1, 30)), - DECODE (aaxx_get_user, - 'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - 'DOW', '911791', - 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520', - 'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)), - 'SITECH', aaxx_get_dep_code (k.prs_kostenplaats_nr), - 'LB', DECODE(g.alg_locatie_key, - 1, '911928', -- Worldwide Headquarters - 2, '911927', -- Maasvlakte - 3, '911930', -- Botlek - 4, '911929' -- Moerdijk - ), - 'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - 'ZCN', '913815', - 'ZKHM', '913816', - SUBSTR (prs_kostenplaats_nr, 1, 30)), - bestel.prs_bedrijf_key, - ks.prs_kostensoort_oms - || DECODE (TO_CHAR (opdr_datum, 'YYYY'), - TO_CHAR (TO_NUMBER (TO_CHAR (SYSDATE, 'yyyy')) - 1), ' VJ', - ''), - ks.prs_kostensoort_opmerking, - vk_prs_kostensoort_refcode, - prs_kostensoortgrp_oms || DECODE (aaxx_get_user, 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ' ' || l.alg_locatie_code), - 'LB', ' ' || exact_code, - 'SABIC', ' ' || k.prs_kostenplaats_nr, - 'ZCN', DECODE(aaxx_get_top_dep_code(k.prs_kostenplaats_nr), 'SN', 'Servicekosten', - 'KL', 'Klantvragen', - ''), - 'ZKHM', DECODE(aaxx_get_top_dep_code(k.prs_kostenplaats_nr), 'SN', 'Servicekosten', - 'KL', 'Klantvragen', - '') - ), - bestel.bes_bestelopdr_id || ' ' || d.ins_discipline_omschrijving - omschrijving, - fin_factuurregel_totaal, - DECODE (aaxx_get_user, 'SITECH', 5, - fin_btwtabelwaarde_code) fin_btwtabelwaarde_code, - TO_CHAR (opdr_datum, 'YYYY'), - DECODE (aaxx_get_user, - 'LB', alg_locatie_code, - COALESCE(exact_code, alg_gebouw_code)), - DECODE (aaxx_get_user, - 'AH', ksg.prs_kostensoortgrp_oms, - 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ksg.prs_kostensoortgrp_oms || ' ' || l.alg_locatie_code, - 'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)), - 'DOW', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,5), 'NC P ', 'NCP', 'NC/CV') || - substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6), - 'ZCN', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - 'ZKHM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr), - '') groepering, -- c2 - DECODE (aaxx_get_user, 'LB', prs_kostensoort_oms || '1', '') subregelvolgorde, -- c3 - l.alg_locatie_key -- N1 - FROM ( SELECT * - FROM aaxx_v_bestelgegevens - GROUP BY bes_bestelopdr_key, - bes_bestelopdr_id, - ins_discipline_key, - mld_adres_key_lev, - bes_bestelling_leverdatum, - prs_bedrijf_key) bestel, - mld_adres ad, - prs_kostenplaats k, - ins_tab_discipline d, - prs_kostensoort ks, - prs_kostensoortgrp ksg, - aaxx_exp_factuur f, - alg_gebouw g, - alg_locatie l, - aaxx_v_exact_code_gebouw exact, - ( SELECT fin_factuur_key, - bes_bestelopdr_key, - prs_kostenplaats_key, - prs_kostensoort_key, - vk_prs_kostensoort_refcode, - fin_factuur_boekmaand, - opdr_datum, - fin_factuur_datum, - aaxx_get_verkoop_btw_code (fin_btwtabelwaarde_key) fin_btwtabelwaarde_code, - sum(fin_factuurregel_totaal) fin_factuurregel_totaal - FROM aaxx_v_factuur_gegevens - WHERE fin_factuur_statuses_key = 6 - AND bes_bestelopdr_key IS NOT NULL - GROUP BY fin_factuur_key, - bes_bestelopdr_key, - prs_kostenplaats_key, - prs_kostensoort_key, - fin_factuur_boekmaand, - fin_btwtabelwaarde_key, - opdr_datum, - fin_factuur_datum, - vk_prs_kostensoort_refcode, - fin_btwtabelwaarde_code) fg - WHERE fg.bes_bestelopdr_key = bestel.bes_bestelopdr_key - AND fg.prs_kostenplaats_key = k.prs_kostenplaats_key(+) - AND bestel.ins_discipline_key = d.ins_discipline_key - AND bestel.mld_adres_key_lev = ad.mld_adres_key(+) - AND ad.mld_adres_gebouw_ruimte = g.alg_gebouw_code(+) - AND g.alg_gebouw_key = exact.alg_gebouw_key(+) - AND g.alg_locatie_key = l.alg_locatie_key - AND fg.fin_factuur_key = f.fin_factuur_key - AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+) - AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+) - AND ( ( aaxx_get_user = 'AH' - AND ks.prs_kostensoort_upper LIKE 'CV%' - ) - OR - ( aaxx_get_user = 'SITECH' - AND ks.prs_kostensoort_upper LIKE 'AE%' -- SITECH - ) - OR - ( aaxx_get_user = 'DSM' - AND SUBSTR(ks.prs_kostensoort_upper,1,3) IN ( - 'CV ', - 'CVE') - ) - OR - ( aaxx_get_user = 'LB' - AND ks.prs_kostensoort_upper LIKE 'NC%' -- LyondellBasell - AND ks.prs_kostensoort_upper <> 'NC DERDEN' - AND ks.prs_kostensoort_upper <> 'NC PROJ' - ) - OR - ( aaxx_get_user = 'VL' - AND ( ( bes_bestelling_leverdatum < to_date('20160101', 'yyyymmdd') -- Voor VL geldt voor 2016 een ander mechanisme (AAVL#34856) - AND ks.prs_kostensoort_upper LIKE 'CV %') - OR - ( bes_bestelling_leverdatum >= to_date('20160101', 'yyyymmdd') -- Voor VL geldt voor 2016 een ander mechanisme (AAVL#34856) - AND ks.prs_kostensoort_upper LIKE 'CVE %') - ) - ) - OR - ( aaxx_get_user = 'ZCN' - AND ( aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'SN' - OR aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'KL') - ) - OR - ( aaxx_get_user = 'ZKHM' - AND ( aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'SN' - OR aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'KL') - ) - ); - - -- bereken per klant de FEE over de omzet. - IF aaxx_get_user = 'DBS' THEN - INSERT INTO fin_verkoopfactuur - ( - -- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3, fin_verkoopfactuur_c4 - ) - SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', prs_debiteur_naam, 'FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', '8110550', prs_kostensoortgrp_oms, 'FEE' , ROUND(fin_verkoopfactuur_bedrag * ma.marge, 2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X', ok.ordernummer - FROM fin_verkoopfactuur v, mld_opdr o, - (SELECT km.mld_melding_key, fac.safe_to_number (fac_usrdata_code) marge - FROM fac_usrdata ud, - mld_kenmerkmelding km, - mld_kenmerk k, - mld_srtkenmerk sk - WHERE sk.mld_srtkenmerk_omschrijving = 'Marge' - AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key - AND k.mld_kenmerk_key = km.mld_kenmerk_key - AND fac.safe_to_number (mld_kenmerkmelding_waarde) = fac_usrdata_key) ma, - (SELECT km.mld_melding_key, mld_kenmerkmelding_waarde ordernummer - FROM mld_kenmerkmelding km, - mld_kenmerk k, - mld_srtkenmerk sk - WHERE sk.mld_srtkenmerk_omschrijving = 'Ordernummer klant' - AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key - AND k.mld_kenmerk_key = km.mld_kenmerk_key) ok - WHERE fin_verkoopfactuur_aanmaak = v_logdate - AND fin_verkoopfactuur_xmlnode = 'opdracht' - AND fin_verkoopfactuur_refkey = o.mld_opdr_key - AND o.mld_melding_key = ma.mld_melding_key - AND o.mld_melding_key = ok.mld_melding_key - AND (v.prs_kostensoort_oms = 'NC PROJ' OR v.prs_kostensoort_oms LIKE 'CVE%'); - -- GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, prs_debiteur_naam || 'FEE', fin_verkoopfactuur_c2, ma.marge; - END IF; - - IF aaxx_get_user = 'DOW' THEN - INSERT INTO fin_verkoopfactuur - ( - -- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3 - ) - SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', prs_debiteur_naam, 'BASE FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033313'), prs_kostensoortgrp_oms, 'BASE FEE' , ROUND(SUM(fin_verkoopfactuur_bedrag) * 0.04, 2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X' - FROM fin_verkoopfactuur v - WHERE fin_verkoopfactuur_aanmaak = v_logdate - GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033313'); - END IF; - - IF aaxx_get_user = 'DSM' THEN - -- CVE - -- Fee: De fee over dit CVE gedeelte wordt apart doorbelast aan de klant en moet in een separate factuur worden gezet. - -- Deze factuur moet standaard naar debiteurencode 520. - -- Per factuur dient een fee berekend te worden van 0% of 3%. - -- Hierbij geldt als uitgangspunt dat voor alle MA contracten 0% geldt, en voor alle CP 3%. - -- Deze fee dient als totaalbedrag geboekt te worden op 1 regel per BTW percentage op de kostensoort FEE. - -- Extra verzoek hierover is om wel per locatie één regel te maken (dus Sittard, Urmond, Campus,etc). - -- Misschien dat we dit kunnen doen door artikelcode FEE te gebruiken, maar omschrijving Fee Sittard, Fee Urmond, etc? - INSERT INTO fin_verkoopfactuur - ( - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3 - ) - SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', '520', 'CVE FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033313'), prs_kostensoortgrp_oms, 'FEE ' || l.alg_locatie_code, SUM(ROUND(fin_verkoopfactuur_bedrag * 0.03, 2)), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', 'FEE' || '520', 'X' - FROM fin_verkoopfactuur v, prs_relatietype r, alg_locatie l, prs_bedrijf b - WHERE fin_verkoopfactuur_aanmaak = v_logdate - AND v.prs_bedrijf_key = b.prs_bedrijf_key - AND b.prs_relatietype_key = r.prs_relatietype_key - AND r.prs_relatietype_omschrijving = 'Contracting party' - AND v.fin_verkoopfactuur_n1 = l.alg_locatie_key - AND prs_kostensoort_oms LIKE 'CVE%' - GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, l.alg_locatie_code, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033313'); - - -- CV - -- Fee: Er wordt een fee van 0% of 3% berekend over deze factuur. - -- Het percentage is afhankelijk van het contracttype van de leverancier. - -- Bij alle Managing Agent (MA) geldt 0%, voor alle Contracting Party (CP) geldt 3%. - -- Deze fee dient als totaalbedrag geboekt te worden op 1 regel per BTW percentage op de kostensoort FEE. - INSERT INTO fin_verkoopfactuur - ( - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3 - ) - SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', '520', 'CV FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033313'), prs_kostensoortgrp_oms, 'FEE' , SUM(ROUND(fin_verkoopfactuur_bedrag * 0.03, 2)), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X' - FROM fin_verkoopfactuur v, prs_relatietype r, alg_locatie l, prs_bedrijf b - WHERE fin_verkoopfactuur_aanmaak = v_logdate - AND v.prs_bedrijf_key = b.prs_bedrijf_key - AND b.prs_relatietype_key = r.prs_relatietype_key - AND r.prs_relatietype_omschrijving = 'Contracting party' - AND prs_kostensoort_oms LIKE 'CV %' - GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033313'); - END IF; - - IF aaxx_get_user = 'ESSENT' THEN - INSERT INTO fin_verkoopfactuur - ( - -- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3 - ) - SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'BASE FEE ' || to_char(u.uplift) || '%' || DECODE (INSTR(v.prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033313'), prs_kostensoortgrp_oms, 'BASE FEE ' || TO_CHAR(u.uplift) || '%' , ROUND(SUM(fin_verkoopfactuur_bedrag) * (u.uplift/100),2), 5, fin_verkoopfactuur_maand, 'X', 'X', u.uplift || 'X' - FROM fin_verkoopfactuur v, aaxx_imp_uplift u - WHERE REPLACE(v.prs_kostensoort_oms, ' VJ', '') = u.prs_kostensoort_oms - AND fin_verkoopfactuur_aanmaak = v_logdate - GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, instr(v.prs_kostensoort_oms, ' VJ'), prs_kostensoortgrp_oms, uplift, fin_verkoopfactuur_maand, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033313'); - END IF; - - IF aaxx_get_user = 'LB' THEN - INSERT INTO fin_verkoopfactuur - ( - -- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3 - ) - SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'BASE FEE' || DECODE (instr(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033313'), prs_kostensoortgrp_oms, 'FEE ' || prs_kostensoort_oms, ROUND(SUM(fin_verkoopfactuur_bedrag)*0.075,2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', 'X', prs_kostensoort_oms || '2' - FROM fin_verkoopfactuur - WHERE fin_verkoopfactuur_aanmaak = v_logdate - GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033313'); - END IF; - - -- NMM - -- Pas het bedrag van de bewaking aan. Opdrachten aan stdmelding 1121 moeten een bedrag krijgen van het aantal uren uit de opdracht maal het uurtarief dat - -- In een eigentabel opgeslagen wordt. De entries in de eigen tabel kunnen verschillende tarieven met een vervaldatum bevatten. - IF aaxx_get_user = 'NMM' THEN - UPDATE fin_verkoopfactuur vk - SET fin_verkoopfactuur_bedrag = (SELECT o.mld_opdr_uren * ud.fac_usrdata_prijs - FROM mld_opdr o, fac_usrdata ud - WHERE vk.fin_verkoopfactuur_refkey = o.mld_opdr_key - AND vk.fin_verkoopfactuur_xmlnode = 'opdracht' - AND ud.fac_usrtab_key = DECODE (TO_CHAR (COALESCE(mld_opdr_plandatum, mld_opdr_datumbegin), 'D'), 1, 141, 7, 141, 122) -- Uurtarief bewaking (141 tabel weekend, 122 tabel weekdagen) - AND ud.fac_usrdata_verwijder IS NULL - AND o.mld_opdr_datumbegin < COALESCE(ud.fac_usrdata_vervaldatum, SYSDATE) - AND NOT EXISTS (SELECT ud2.fac_usrdata_key - FROM fac_usrdata ud2 - WHERE ud2.fac_usrtab_key = DECODE (TO_CHAR (COALESCE(mld_opdr_plandatum, mld_opdr_datumbegin), 'D'), 1, 141, 7, 141, 122) -- Uurtarief bewaking (141 tabel weekend, 122 tabel weekdagen) - AND o.mld_opdr_datumbegin < COALESCE(ud2.fac_usrdata_vervaldatum, SYSDATE) - AND ud2.fac_usrdata_verwijder IS NULL - AND COALESCE(ud2.fac_usrdata_vervaldatum, SYSDATE) < - COALESCE(ud.fac_usrdata_vervaldatum, SYSDATE) - ) - ) - WHERE EXISTS (SELECT mld_opdr_key - FROM mld_opdr o, mld_melding m - WHERE vk.fin_verkoopfactuur_refkey = o.mld_opdr_key - AND vk.fin_verkoopfactuur_xmlnode = 'opdracht' - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = 1121 -- Aanvraag beveiligingsdienst(en) tbv evenementen - ) - AND fin_verkoopfactuur_aanmaak = v_logdate; - END IF; - - IF aaxx_get_user = 'RABO' THEN -- RABO#37283 - INSERT INTO fin_verkoopfactuur - ( - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3 - ) - SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033313'), prs_kostensoortgrp_oms, 'FEE' , ROUND(SUM(fin_verkoopfactuur_bedrag) * DECODE(prs_kostensoort_key, 121, 7, 5.5) / 100, 2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X' - FROM fin_verkoopfactuur v, - mld_opdr o, - mld_melding m, - mld_stdmelding std - WHERE v.fin_verkoopfactuur_refkey = o.mld_opdr_key - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = std.mld_stdmelding_key - AND fin_verkoopfactuur_aanmaak = v_logdate - GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoortgrp_oms, prs_kostensoort_key, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2, 'X', decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033313'); - END IF; - - IF aaxx_get_user = 'VL' THEN - INSERT INTO fin_verkoopfactuur - ( - -- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3 - ) - SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210513', '1033313'), prs_kostensoortgrp_oms, 'FEE', ROUND(fin_verkoopfactuur_bedrag*0.025,2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', 'X', 'X' - FROM fin_verkoopfactuur - WHERE prs_kostensoort_oms = 'NC ACHT OND' - AND fin_verkoopfactuur_aanmaak = v_logdate; - END IF; - - FOR rec1 IN c_bes - LOOP - BEGIN - -- indien nog niet afgemeld, dan maar even afmelden. - IF rec1.bes_bestelopdr_status = 3 THEN -- in behandeling - UPDATE bes_bestelopdr - SET bes_bestelopdr_status = 4 - WHERE bes_bestelopdr_key= rec1.bes_bestelopdr_key - AND bes_bestelopdr_status = 3; - END IF; - - IF rec1.bes_bestelopdr_status = 5 -- bevestigd - OR rec1.bes_bestelopdr_status = 4 -- in bestelling - OR rec1.bes_bestelopdr_status = 3 THEN - - UPDATE bes_bestelopdr_item B - SET bes_bestelopdr_item_aantalontv = COALESCE(bes_bestelopdr_item_aantal, 0), - bes_bestelopdr_item_ontvangen = SYSDATE - WHERE b.bes_bestelopdr_key = rec1.bes_bestelopdr_key; - - UPDATE bes_bestelling_item bi - SET bes_bestelling_item_aantalontv = COALESCE(bes_bestelling_item_aantal, 0) - WHERE EXISTS (SELECT bes_bestelopdr_key - FROM bes_bestelopdr_item boi - WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key - AND bes_bestelopdr_key = rec1.bes_bestelopdr_key); - - SELECT distinct bes_bestelling_key - INTO v_bestelling_key - FROM bes_bestelling_item bi, bes_bestelopdr_item boi - WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key - AND bes_bestelopdr_key = rec1.bes_bestelopdr_key; - - bes.updatebestelopdrstatus(rec1.bes_bestelopdr_key, v_aanvrager); - bes.updatebestellingstatus(v_bestelling_key, v_aanvrager); - - END IF; - END; - END LOOP; - - -- set de status van de opdracht en neem de kosten over van de factuur. - FOR rec1 IN c_opdr - LOOP - BEGIN - -- indien nog niet afgemeld, dan maar even afmelden. - IF rec1.mld_statusopdr_key <> 6 AND rec1.mld_statusopdr_key <> 7 AND rec1.mld_statusopdr_key <> 9 THEN - mld.setopdrachtstatus (rec1.mld_opdr_key, 6, v_aanvrager); - mld.setopdrachtstatus (rec1.mld_opdr_key, 9, v_aanvrager); - END IF; - - UPDATE mld_opdr o - SET mld_opdr_kosten = - (SELECT SUM (fin_factuurregel_totaal) - FROM aaxx_v_aanwezigfactuur f - , fin_factuurregel fr - WHERE f.fin_factuur_key = fr.fin_factuur_key - AND f.mld_opdr_key = o.mld_opdr_key - AND f.fin_factuur_statuses_key >= 6) - WHERE o.mld_opdr_key = rec1.mld_opdr_key - AND rec1.mld_melding_status IN (4, 5, 7); -- anders faalt de trigger sowieso - - -- update meldingstatus - mld.updatemeldingstatusAV (rec1.mld_melding_key, 0, v_aanvrager, 0); - -- zet de status naar verwerkt (user is facilitor) - mld.setopdrachtstatus (rec1.mld_opdr_key, 7, v_aanvrager); - END; - END LOOP; - -/* Wacht op release 2016.3 AAIT#37411 - -- Neem de kosten van de factuur over in het termijnbedrag - FOR rec1 IN c_cnt - LOOP - BEGIN - - UPDATE cnt_factuurschema fs - SET (cnt_factuurschema_opmerking, - cnt_factuurschema_bedrag) = - (SELECT SUBSTR(DECODE(cnt_factuurschema_opmerking, NULL, '', cnt_factuurschema_opmerking || CHR(10)) || 'Bedrag na verwerken facturen ' || TO_CHAR(SYSDATE, 'DD-MM-YYYY') || ' aangepast van ' || cnt_factuurschema_bedrag || ' naar ' || SUM (fin_factuurregel_totaal),1,1,320) opmerking, - SUM (fin_factuurregel_totaal) totaal - FROM aaxx_v_aanwezigfactuur f - , fin_factuurregel fr - WHERE f.fin_factuur_key = fr.fin_factuur_key - AND f.cnt_contract_key = fs.cnt_contract_key - AND f.fin_factuur_boekmaand = fs.cnt_factuurschema_boekmaand - AND f.fin_factuur_statuses_key >= 6) - WHERE fs.cnt_factuurschema_key = rec1.cnt_factuurschema_key; - - END; - END LOOP; -*/ - - FOR rec1 IN c_fact - LOOP - BEGIN - UPDATE fin_factuur f - SET fin_factuur_statuses_key = 7 - WHERE f.fin_factuur_key = rec1.fin_factuur_key; - - fac.trackaction ('FINVER', rec1.fin_factuur_key, v_aanvrager, NULL, NULL); - END; - END LOOP; - -- verwijder de enties uit de tijdelijke tabel. (AAEY#29465) - DELETE aaxx_exp_factuur; -END; -/ - - ---============================================================================= --- EXPORTFUNCTIES VERKOOPFACTUREN - --- Uitleg van de kolommen zoals ze naar Exact gaan: --- 01 Regelnummer Vaste waarde 0 --- 02 Factuurcode Vaste waarde 3 --- 03 Debiteurnummer Kostenplaatsnummer --- 04 Referentie “Hospitality” plus de eerste drie posities van de maand voor catering en kostensoortgroep omschrijving voor opdrachten --- 05 Referentie 1 Leeg (ordernummer klant voor DBS) --- 06 Referentie 2 Leeg --- 07 Referentie 3 Leeg --- 08 Ordernummer Leeg --- 09 Orderdatum Datum van de export. --- 10 Magazijn 1 --- 11 Extra artikel omschrijving Leeg --- 12 Vertegenwoordigers Leeg --- 13 Kostenplaats Exact_code van het gebouw --- 14 Selectiecode Leeg --- 15 Bedrag in vreemde valuta Leeg --- 16 Netto prijs Leeg --- 17 Valutacode EUR --- 18 Wisselkoers Leeg --- 19 Betalingsconditie E6 --- 20 Leveringswijze 1 --- 21 Vrachtkosten Leeg --- 22 Orderkosten Leeg --- 23 Faktuurkorting Leeg --- 24 Totaal bedrag Leeg --- 25 Colli 0 --- 26 Bruto gewicht 0 --- 27 Netto gewicht 0 --- 28 Afleverdatum Leeg --- 29 - Leeg --- 30 - Leeg --- 31 Bruto/Netto Leeg --- 32 - Leeg --- 33 - Leeg --- 34 - Leeg --- 35 - Leeg --- 36 - Leeg --- 37 - Leeg --- 38 - Leeg --- 39 - Leeg --- 40 - Leeg --- 41 - Leeg --- 42 Faktuursoort V --- 43 Orderdebiteur is faktuurdebiteur Leeg --- 44 Debiteur type Leeg --- 45 Gefiatteerd N --- 46 Faktuurdebiteur Kostenplaatsnummer --- 47 - Leeg --- 48 Facktuurnummer Leeg -------------------------------------------------------------------------------- --- btw code is 19 procent als percentage is 19 of 0; -CREATE OR REPLACE VIEW aaxx_v_export_exact_verkoop_t ( - result, - opdr_jaar, - result_order - ) -AS - SELECT '0' || ',' || DECODE(aaxx_get_user, 'RABO', '2', '3') || ',' || prs_debiteur_naam - || ',' - || DECODE(aaxx_get_user, 'ENEXIS', 'Diensten derden PR', 'DSM', replace(prs_kostensoortgrp_oms, ',', '') || ' ' || to_char(SYSDATE, 'MON') , replace(prs_kostensoortgrp_oms, ',', '')) -- AAEN#26838 - || ',' - || DECODE(aaxx_get_user, 'ENEXIS', replace(prs_kostensoortgrp_oms, ',', ''), '') -- AAEN#26838 - || ',' - || MAX(fin_verkoopfactuur_c4) -- AADB#34431 - || ',' - || '' - || ',' - || '' - || ',' - || TO_CHAR (SYSDATE, 'ddmmyyyy') - || ',' - || '1' - || ',' - || '' - || ',' - || '' - || ',' - || DECODE(aaxx_get_user, 'DBS', '', 'AH', '', 'LB', '02610001', 'DOW', '02510001', 'SITECH', '02210001', 'NS',fin_verkoopfactuur_c1) -- exact code gebouw - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || 'EUR' - || ',' - || '' - || ',' - || DECODE(aaxx_get_user, 'LB', '60', 'DOW', '60', 'SITECH', 'E9', 'NS','E6') - || ',' - || '1' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || TO_CHAR (0) - || ',' - || TO_CHAR (0) - || ',' - || TO_CHAR (0) - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || 'V' - || ',' - || '' - || ',' - || '' - || ',' - || 'N' - || ',' - || prs_debiteur_naam - || ',' - || '' - || ',' - || '', - fin_verkoopfactuur_maand, - fin_verkoopfactuur_c2 || replace(prs_kostensoortgrp_oms, ',', '') || DECODE(aaxx_get_user, 'DBS', '', 'NMM', '', 'ZCN', '', 'ZKHM', '', 'DOW', '', 'DSM', '', 'RABO', '', prs_kostenplaats_nr) || '0' - FROM fin_verkoopfactuur - WHERE fin_verkoopfactuur_datum IS NULL - GROUP BY replace(prs_kostensoortgrp_oms, ',', ''), prs_debiteur_naam, DECODE(aaxx_get_user, 'DBS', '', 'NMM', '', 'ZCN', '', 'ZKHM', '', 'DOW', '', 'DSM', '', 'RABO', '', prs_kostenplaats_nr), fin_verkoopfactuur_c2, DECODE(aaxx_get_user, 'DBS', '', 'AH', '', 'LB', '02610001', 'DOW', '02510001', 'SITECH', '02210001', 'NS',fin_verkoopfactuur_c1), fin_verkoopfactuur_maand - UNION ALL --- Uitleg subregel: --- 01 Regelnummer Vaste waarde 1 --- 02 - Vaste waarde 5 --- 03 - Leeg --- 04 - Leeg --- 05 - Leeg --- 06 - Leeg --- 07 - Leeg --- 08 - Leeg --- 09 - Leeg --- 10 Magazijn 1 --- 11 - Leeg --- 12 - Leeg --- 13 - Leeg --- 14 - Leeg --- 15 - Leeg --- 16 - Leeg --- 17 - Leeg --- 18 - Leeg --- 19 - Leeg --- 20 - Leeg --- 21 - Leeg --- 22 - Leeg --- 23 - Leeg --- 24 - Leeg --- 25 - Leeg --- 26 - Leeg --- 27 - Leeg --- 28 Afleverdatum Leeg --- 29 Afleverweek Leeg --- 30 Artikelcode Kostensoortcode --- 31 Artikelsoort V --- 32 Omschrijving “Hospitality services” voor catering en “SA### vakgroep opdrachtnummer(kenmerk)” voor meerwerk --- 33 Hoeveelheid 1 --- 34 BTW code 4 --- 35 Prijslijst Leeg --- 36 Korting 0 --- 37 Prijs Bedrag --- 38 Nettoprijs Leeg --- 39 Kostenplaats Kostenplaats --- 40 Tekst voor tekstregels Leeg --- 41 Grootboek rekening V --- 42 - Leeg --- 43 - Leeg --- 44 - Leeg --- 45 - Leeg --- 46 - Leeg --- 47 Kostenplaats Exact_code van het gebouw (bij contractorders wordt het eerste gebouw uit het contract geselecteerd) . --- 48 - Leeg - SELECT '1' - || ',' - || DECODE(aaxx_get_user, 'RABO', '2', '3') - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '1' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ' ' - || prs_kostensoort_oms - || ',' - || 'V' - || ',' - || replace(fin_verkoopfactuur_omschr, ',', '') - || ',' - || '1' - || ',' - || fin_btwtabelwaarde_code - || ',' - || '' - || ',' - || '0' - || ',' - || REPLACE (TO_CHAR (sum(fin_verkoopfactuur_bedrag)), ',', '.') - || ',' - || '' - || ',' - || DECODE (aaxx_get_user, 'SITECH', substr(prs_kostensoort_oms, 1, instr(prs_kostensoort_oms, ' ')-1)||prs_kostenplaats_nr, - 'DOW', DECODE (fin_verkoopfactuur_omschr, 'BASE FEE 3%', '999999', prs_kostenplaats_nr), - prs_kostenplaats_nr) - || ',' - || '' - || ',' - || prs_kostensoort_refcode - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || '' - || ',' - || DECODE (aaxx_get_user, 'LB', '02600013', - 'ENEXIS', '02110001', - fin_verkoopfactuur_c1) -- exact code gebouw - || ',' - || '', - fin_verkoopfactuur_maand, - fin_verkoopfactuur_c2 || replace(prs_kostensoortgrp_oms, ',', '') || DECODE(aaxx_get_user, 'DBS', '', 'ZCN', '', 'ZKHM', '', 'DOW', '', 'DSM', '', prs_kostenplaats_nr)|| '1' || fin_verkoopfactuur_c3 || replace(fin_verkoopfactuur_omschr, ',', '') - FROM fin_verkoopfactuur - WHERE fin_verkoopfactuur_datum IS NULL - GROUP BY fin_verkoopfactuur_c3, replace(prs_kostensoortgrp_oms, ',', ''), fin_verkoopfactuur_omschr, replace(fin_verkoopfactuur_omschr, ',', ''), prs_kostenplaats_nr, fin_verkoopfactuur_c2, fin_verkoopfactuur_c1, prs_kostensoort_oms, fin_btwtabelwaarde_code, prs_kostensoort_refcode, fin_verkoopfactuur_maand; - -CREATE OR REPLACE VIEW aaxx_v_export_exact_verkoop ( - result, - result_order - ) -AS - SELECT result, - result_order - FROM aaxx_exp_exact_verkoop; - - - --- Voordat de verkoopfacturen naar Exact geexporteerd wordt moet de volgorde van de subregels gecorrigeerd worden -CREATE OR REPLACE PROCEDURE aaxx_select_exact_verkoop ( - p_applname IN VARCHAR2, - p_applrun IN VARCHAR2, - p_opdr_jaar IN VARCHAR2 -) -AS - CURSOR c1 IS - SELECT result, result_order - FROM aaxx_v_export_exact_verkoop_t - WHERE opdr_jaar = p_opdr_jaar - ORDER BY result_order; - v_first NUMBER; - v_count NUMBER; -BEGIN - v_count := 0; - DELETE aaxx_exp_exact_verkoop; - FOR rec IN c1 - LOOP - BEGIN - v_first := substr(rec.result, 1,1); - IF v_first = 0 THEN - v_count := 0; - ELSE - v_count := v_count + 1; - END IF; - - INSERT INTO aaxx_exp_exact_verkoop ( - result, - result_order) - VALUES ( - v_count || substr (rec.result, 2), - rec.result_order||to_char(1000+v_count)); -- forceer sortering bij count > 9 - END; - END LOOP; -END; -/ - --- Na dat de verkoopfacturen naar Exact geexporteerd zijn wordt de timestamp gezet. -CREATE OR REPLACE PROCEDURE aaxx_export_exact_verkoop ( - p_applname IN VARCHAR2, - p_applrun IN VARCHAR2, - p_filedir IN VARCHAR2, - p_filename IN VARCHAR2, - p_opdr_jaar IN VARCHAR2 -) -AS - v_timestamp DATE; - v_verkoopfactuurkop_key NUMBER(10); -BEGIN - - v_timestamp := SYSDATE; - INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id) - VALUES (p_opdr_jaar || ' - ' || TO_CHAR(v_timestamp, 'yyyy-mm-dd hh24:mi:ss')) - RETURNING fin_verkoopfactuurkop_key - INTO v_verkoopfactuurkop_key; - - UPDATE fin_verkoopfactuur - SET fin_verkoopfactuur_datum = v_timestamp - , fin_verkoopfactuurkop_key = v_verkoopfactuurkop_key - WHERE fin_verkoopfactuur_datum IS NULL - AND fin_verkoopfactuur_maand = p_opdr_jaar; - - INSERT INTO imp_schedule (imp_schedule_name) VALUES ('EXACT_VERKOOP_VJ'); -END; -/ - ---============================================================================= --- EXPORTFUNCTIES PROJECTUREN ---============================================================================= --- Basisgegevens van door te belasten opdrachturen --- (uurtarief van opdracht, anders van persoon) --- Keys: 7 (Project) uren (opdrachttype) --- 14 Type project (eigen tabel) --- 15 Rekening courant (eigen tabel) --- 55 Projectnaam (kenmerksoort) --- 186 Type project (flex opdracht) --- 187 Verrekenen met (flex opdracht) --- 188 Uurtarief (flex opdracht) --- 189 ProjectKPN uit AD (flex opdracht) --- 2 ProjectKPN uit AD (flex perslid) --- 3 AAFM Personeelsnummber (flex perslid) -CREATE OR REPLACE VIEW aaxx_v_exact_uren_gegevens -AS - SELECT m.mld_melding_key, - o.mld_opdr_key, - o.mld_opdr_bedrijfopdr_volgnr, - vt.ins_srtdiscipline_prefix, - vt.ins_srtdiscipline_prefix || m.mld_melding_key meldingnr, - vt.ins_srtdiscipline_prefix || m.mld_melding_key || '/' - || o.mld_opdr_bedrijfopdr_volgnr opdrachtnr, - pn.mld_kenmerkmelding_waarde projectnaam, - tp.fac_usrdata_code projecttype_code, - tp.fac_usrdata_omschr projecttype_omschr, - kpn.prs_kostenplaats_nr, - kpo.mld_kenmerkopdr_waarde projectkpn_opdr, - kpp.prs_kenmerklink_waarde projectkpn_perslid, - rc.fac_usrdata_code rek_courant, - o.mld_statusopdr_key, - so.mld_statusopdr_omschrijving, - ap.prs_perslid_key, - DECODE (aaxx_get_user, - 'IT', prs_perslid_nr, - pnp.prs_kenmerklink_waarde) - aafm_perslid_nr, - akpn.prs_kostenplaats_nr afdkpn, - o.mld_opdr_uren, - ou.mld_opdr_uren_key, - ou.mld_opdr_uren_datum, - ou.mld_opdr_uren_status, - lx.fac_locale_xsl_tekst uren_status_tekst, - ou.mld_opdr_uren_besteed, - ou.mld_opdr_uren_opmerking, - fac.safe_To_Number(ut.mld_kenmerkopdr_waarde) uurtarief_opdr, - ap.prs_perslid_uurloon uurtarief_perslid - FROM mld_melding m, - mld_stdmelding sm, - mld_discipline vg, - ins_srtdiscipline vt, - prs_kostenplaats kpn, - mld_opdr o, - mld_statusopdr so, - prs_perslid ap, - prs_v_aanwezigafdeling aa, - prs_kostenplaats akpn, - mld_opdr_uren ou, - (SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key IN - (SELECT mld_kenmerk_key FROM mld_kenmerk - WHERE mld_srtkenmerk_key = 55) ) pn, -- projectnaam - (SELECT * FROM mld_kenmerkopdr WHERE mld_kenmerk_key = 187) vm, -- verrekenen met - (SELECT * FROM fac_usrdata WHERE fac_usrtab_key = 15) rc, -- rekening courant - (SELECT * FROM mld_kenmerkopdr WHERE mld_kenmerk_key = 186) ep, -- type project - (SELECT * FROM fac_usrdata WHERE fac_usrtab_key = 14) tp, -- type project - (SELECT * FROM mld_kenmerkopdr WHERE mld_kenmerk_key = 189) kpo, -- projectkpn (opdr) - (SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 2) kpp, -- projectkpn (perslid) - (SELECT * FROM mld_kenmerkopdr WHERE mld_kenmerk_key = 188) ut, -- uurtarief (opdracht) - (SELECT * FROM fac_locale_xsl WHERE fac_locale_xsl_lang = 'NL') lx, -- locale-strings - (SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 3) pnp -- personeelsnummer (perslid) - WHERE o.mld_typeopdr_key = 7 - AND m.mld_melding_key = o.mld_melding_key - AND sm.mld_stdmelding_key = m.mld_stdmelding_key - AND vg.ins_discipline_key = sm.mld_ins_discipline_key - AND vt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key - AND pn.mld_melding_key(+) = m.mld_melding_key - AND so.mld_statusopdr_key = o.mld_statusopdr_key - AND kpn.prs_kostenplaats_key = o.prs_kostenplaats_key - AND vm.mld_opdr_key(+) = o.mld_opdr_key - AND rc.fac_usrdata_key(+) = fac.safe_To_Number(vm.mld_kenmerkopdr_waarde) - AND ep.mld_opdr_key(+) = o.mld_opdr_key - AND tp.fac_usrdata_key(+) = fac.safe_To_Number(ep.mld_kenmerkopdr_waarde) - AND kpo.mld_opdr_key(+) = o.mld_opdr_key - AND kpp.prs_link_key(+) = o.mld_uitvoerende_keys - AND pnp.prs_link_key(+) = o.mld_uitvoerende_keys - AND ut.mld_opdr_key(+) = o.mld_opdr_key - AND ap.prs_perslid_key = o.mld_uitvoerende_keys - AND aa.prs_afdeling_key = ap.prs_afdeling_key - AND akpn.prs_kostenplaats_key(+) = aa.prs_kostenplaats_key - AND ou.mld_opdr_key = o.mld_opdr_key - AND lx.fac_locale_xsl_label = 'lcl_mld_uren_status_'||ou.mld_opdr_uren_status; - --- Van fac_rapport naar exportbestand (XML) -CREATE OR REPLACE VIEW aaxx_v_export_exact_uren_xml ( - result, - result_order - ) -AS - SELECT fac_rapport_regel, fac_rapport_volgnr - FROM fac_rapport - WHERE fac_rapport_node = SUBSTR ('EXACT_UREN', 1, 12); - --- Exportregels (XML-structuur) in fac_rapport -CREATE OR REPLACE PROCEDURE aaxx_select_exact_uren_xml ( - p_applname IN VARCHAR2, - p_applrun IN VARCHAR2, - p_kpnprefix IN VARCHAR2 -) -AS - -- Status 3 = Goedgekeurd - CURSOR c - IS - SELECT * - FROM aaxx_v_exact_uren_gegevens - WHERE mld_opdr_uren_status = 3 - AND prs_kostenplaats_nr LIKE p_kpnprefix||'%' - AND (aaxx_get_user <> 'IT' OR ins_srtdiscipline_prefix = 'PR') - ORDER BY mld_opdr_uren_datum, opdrachtnr; - - v_order_count NUMBER; - v_amount_sum NUMBER(10,2); - v_count NUMBER; - v_bestand VARCHAR2(12); -BEGIN - - v_order_count := 0; - v_amount_sum := 0; - v_count := 0; - v_bestand := SUBSTR(p_applname, 1, 12); - - -- Eerst opruiming - DELETE FROM imp_log - WHERE imp_log_applicatie = p_applname; - - DELETE fac_rapport - WHERE fac_rapport_node = v_bestand; - - DELETE aaxx_exp_uren - WHERE COALESCE(administratie, 'GEEN') = COALESCE(p_kpnprefix, 'GEEN'); - - -- header - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - - FOR rec IN c - LOOP - BEGIN - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'Date', TO_CHAR(rec.mld_opdr_uren_datum, 'yyyy-mm-dd') ); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'Description', rec.projectnaam); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'Description', rec.projectnaam); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'Quantity', TO_CHAR(rec.mld_opdr_uren_besteed) ); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'Debit', TO_CHAR(rec.mld_opdr_uren_besteed*COALESCE(rec.uurtarief_opdr, rec.uurtarief_perslid) ) ); - aaxx_add_xml_element (v_bestand, 'Credit', '0'); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'DocumentDate', TO_CHAR(SYSDATE, 'YYYY-MM-DD') ); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - IF COALESCE(rec.uurtarief_opdr, rec.uurtarief_perslid) IS NULL - THEN - fac.writelog (p_applname, 'W', 'Geen uurtarief voor persoon nr ' || rec.aafm_perslid_nr, ''); - END IF; - v_amount_sum := v_amount_sum + rec.mld_opdr_uren_besteed*COALESCE(rec.uurtarief_opdr, COALESCE(rec.uurtarief_perslid, 0)); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'Description', rec.projectnaam); - --aaxx_add_xml_row (v_bestand, ''); -IF (SUBSTR (rec.rek_courant, 1, 1) = '2') -- Begint met '2'! -THEN - aaxx_add_xml_row (v_bestand, ''); -ELSE - aaxx_add_xml_row (v_bestand, ''); -END IF; - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'Description', rec.projectnaam); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'Quantity', '-'||TO_CHAR(rec.mld_opdr_uren_besteed) ); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'Debit', '0'); - aaxx_add_xml_element (v_bestand, 'Credit', TO_CHAR(rec.mld_opdr_uren_besteed*COALESCE(rec.uurtarief_opdr, rec.uurtarief_perslid)) ); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_element (v_bestand, 'DocumentDate', SYSDATE); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - END; - - INSERT INTO aaxx_exp_uren - (mld_opdr_uren_key, administratie) - VALUES - (rec.mld_opdr_uren_key, p_kpnprefix); - - v_order_count := v_order_count + 1; - END LOOP; - - aaxx_add_xml_row (v_bestand, ''); - aaxx_add_xml_row (v_bestand, ''); - fac.writelog (p_applname, 'S', 'Exact export uitgevoerd. Aantal regels: ' || v_order_count || ' Totaal bedrag: ' || v_amount_sum, ''); - -END; -/ - --- AAIT#22483: kenmerken van urenopdrachten vullen vanuit personeelsgegevens, --- t.b.v. DWH-views -CREATE OR REPLACE PROCEDURE aaxx_select_dwh_set_kenmerken ( - p_applname IN VARCHAR2, - p_applrun IN VARCHAR2 -) -AS - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_errormsg VARCHAR2 (200); - v_aanduiding VARCHAR2 (100); - - CURSOR c_flex - IS - SELECT 'PR'||o.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr opdrachtnr, - o.mld_opdr_key, - kpo.mld_kenmerkopdr_waarde projectkpn_opdr, - kpp.prs_kenmerklink_waarde projectkpn_perslid, - ut.mld_kenmerkopdr_waarde uurtarief_opdr, - ap.prs_perslid_uurloon uurtarief_perslid - FROM mld_opdr o, - prs_v_aanwezigperslid ap, - (SELECT * - FROM mld_kenmerkopdr - WHERE mld_kenmerk_key = 189) kpo, -- projectkpn (opdr) - (SELECT * - FROM prs_kenmerklink - WHERE prs_kenmerk_key = 2) kpp, -- projectkpn (perslid) - (SELECT * - FROM mld_kenmerkopdr - WHERE mld_kenmerk_key = 188) ut -- uurtarief (opdracht) - WHERE o.mld_typeopdr_key = 7 -- (Project) uren - AND kpo.mld_opdr_key(+) = o.mld_opdr_key - AND ut.mld_opdr_key(+) = o.mld_opdr_key - AND kpp.prs_link_key = o.mld_uitvoerende_keys - AND ap.prs_perslid_key = o.mld_uitvoerende_keys; -BEGIN - -- Project-KPN en uurtarief vastleggen - FOR rec IN c_flex - LOOP - BEGIN - v_aanduiding := rec.opdrachtnr; - - IF (rec.projectkpn_opdr IS NULL) - THEN - IF (rec.projectkpn_perslid IS NULL) - THEN - fac.writelog (p_applname, - 'W', - v_aanduiding||': Geen project-KPN bekend!', - ''); - ELSE - aaxx_set_kenmerk('MLD', 189, rec.mld_opdr_key, rec.projectkpn_perslid, 0); - END IF; - END IF; - - IF (rec.uurtarief_opdr IS NULL) - THEN - IF(rec.uurtarief_perslid IS NULL) - THEN - fac.writelog (p_applname, - 'W', - v_aanduiding||': Geen uurtarief bekend!', - ''); - ELSE - aaxx_set_kenmerk('MLD', 188, rec.mld_opdr_key, rec.uurtarief_perslid, 0); - END IF; - 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 (p_applname, - 'E', - v_aanduiding || ': ' || v_errormsg, - ''); - END; - END LOOP; -END aaxx_select_dwh_set_kenmerken; -/ - --- Geëxporteerde uren op Verwerkt zetten en uurtarief + kostenplaats vastleggen bij --- opdracht (kopiëren van perslid). --- AAIT#26399: Naast het op Verwerkt zetten van de kostenboekingen tevens voor --- AAIT#35694: ALLEEN de uren op '5130976', '5101200', '4130976', '4370901', '4370904', '0100024' en '4130990') de tegenboeking --- aanmaken/opslaan! -/* Formatted on 24-9-2013 16:42:55 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE PROCEDURE aaxx_export_verwerk_exact_uren ( - p_applname IN VARCHAR2, - p_applrun IN VARCHAR2, - p_filedir IN VARCHAR2, - p_filename IN VARCHAR2, - p_kpnprefix IN VARCHAR2 -) -AS - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_errormsg VARCHAR2 (200); - v_count NUMBER; - v_logdate DATE; -BEGIN - v_logdate := SYSDATE; - - -- Goedgekeurde en geëxporteerde urenregistraties op verwerkt zetten. - -- Status 4 = Verwerkt - UPDATE mld_opdr_uren - SET mld_opdr_uren_status = 4 - WHERE mld_opdr_uren_key IN - (SELECT mld_opdr_uren_key - FROM aaxx_exp_uren - WHERE COALESCE (administratie, 'GEEN') = - COALESCE (p_kpnprefix, 'GEEN')); - - -- Goedgekeurde improductieve uren op verwerkt zetten. - -- Status 3 = Goedgekeurd - -- Status 4 = Verwerkt - UPDATE mld_opdr_uren - SET mld_opdr_uren_status = 4 - WHERE mld_impropdr_key IS NOT NULL AND mld_opdr_uren_status = 3; - - COMMIT; - - -- AAIT#26399: Van de hierboven verwerkte/geexporteerde uren wordt voor de - -- regels op gedefinieerde projecten (hardgecodeerd!) tot slot - -- nog een dekkingsregel aangemaakt. - -- Het leverende account wordt bepaald door het gedeelte achter - -- de slash ('/') in de 'Rek. Courant'-eigen tabel! - INSERT INTO aaxx_exp_uren_dekking (aanmaak, - mld_opdr_uren_key, - mld_opdr_uren_datum, - projecttype, - rek_courant, - kostenplaats, - perslid_nr, - projectcode, - projectnaam, - uren_besteed, - uurtarief, - lev_account) - SELECT SYSDATE, - ug.mld_opdr_uren_key, - ug.mld_opdr_uren_datum, - SUBSTR (ug.projecttype_code, 1, 10), - SUBSTR (ug.rek_courant, 1, 10), - SUBSTR (COALESCE (ug.projectkpn_opdr, ug.projectkpn_perslid), 1 , 30), - SUBSTR (ug.aafm_perslid_nr, 1, 30), - SUBSTR (ug.meldingnr, 1, 20), - SUBSTR (ug.projectnaam, 1, 30), - ug.mld_opdr_uren_besteed, - COALESCE (ug.uurtarief_opdr, ug.uurtarief_perslid), - COALESCE ( - SUBSTR ( - TRIM(SUBSTR (ud.fac_usrdata_omschr, - INSTR (ud.fac_usrdata_omschr, '/') + 1)), - 1, - 30 - ), - 'XXX' - ) - FROM aaxx_exp_uren u, aaxx_v_exact_uren_gegevens ug, fac_usrdata ud - WHERE COALESCE (u.administratie, 'GEEN') = - COALESCE (p_kpnprefix, 'GEEN') - AND u.mld_opdr_uren_key = ug.mld_opdr_uren_key - AND ug.projecttype_code IN ('5130976', '5101200', '4130976', '4370901', '4370904', '0100024', '4130990') - AND TRIM (ug.rek_courant) = TRIM (ud.fac_usrdata_code) - AND ud.fac_usrtab_key = 15 -- Rek. Courant-tabel - AND SUBSTR (ud.fac_usrdata_code, 1, 1) = '2' -- Begint met '2'! - AND ud.fac_usrdata_verwijder IS NULL - AND NOT EXISTS - (SELECT 1 - FROM aaxx_exp_uren_dekking - WHERE mld_opdr_uren_key = ug.mld_opdr_uren_key); - - -- AAZC#34483 projecturen ook doorbelasten - INSERT INTO fin_verkoopfactuur - ( - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3, fin_verkoopfactuur_n1 - ) - SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr, 1,30 ), - 'uren', - ou.mld_opdr_uren_key, - v_logdate, - SUBSTR (prs_kostenplaats_nr, 1, 30) prs_kostenplaats_nr, - DECODE (aaxx_get_user, 'ZCN', '913815', - 'ZKHM', '913816', - '') debiteur, - 'UREN' || DECODE(TO_CHAR(mld_opdr_uren_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') , - SUBSTR(DECODE (aaxx_get_user, - 'ZCN', 'Projecten', - 'ZKHM', 'Projecten', - '') - , 1, 60) prs_kostensoortgrp_oms, - sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr || ' ' || d.ins_discipline_omschrijving - || ' (' - || (SELECT MAX(mld_kenmerkmelding_waarde) - FROM mld_kenmerkmelding km, mld_kenmerk k - WHERE km.mld_kenmerk_key = k.mld_kenmerk_key - AND k.mld_srtkenmerk_key = 143 -- projectnaam - AND km.mld_melding_key = m.mld_melding_key) - || ')' - omschrijving, - ROUND (ou.mld_opdr_uren_besteed * - (SELECT fac.safe_to_number(mld_kenmerkopdr_waarde) - FROM mld_kenmerkopdr ko, mld_kenmerk k - WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key - AND k.mld_srtkenmerk_key = DECODE(aaxx_get_user, 'ZCN', 53, 'ZKHM', 53) -- intern uurtarief - AND ko.mld_opdr_key = o.mld_opdr_key), 2), - (SELECT fin_btwtabelwaarde_code - FROM fin_btwtabelwaarde - WHERE fin_btwtabelwaarde_perc = 21 - AND COALESCE(fin_btwtabelwaarde_verlegd,0) = 0 - AND fin_btwtabelwaarde_verwijder IS NULL - AND mld_opdr_uren_datum BETWEEN COALESCE(fin_btwtabelwaarde_van, mld_opdr_uren_datum - 1) - AND COALESCE(fin_btwtabelwaarde_tot, mld_opdr_uren_datum + 1)) fin_btwtabelwaarde_code, - to_char(mld_opdr_uren_datum, 'YYYY'), - COALESCE(exact_code, alg_gebouw_code), -- C1 - SUBSTR ( - DECODE (aaxx_get_user, 'ZCN', m.mld_melding_key, - 'ZKHM', m.mld_melding_key, - '') - , 1, 12) groepering, -- C2 - NULL, -- C3 - l.alg_locatie_key -- N1 - FROM mld_opdr o, - mld_opdr_uren ou, - prs_perslid p, - mld_typeopdr ot, - prs_kostenplaats k, - mld_melding m, - mld_stdmelding std, - ins_tab_discipline d, - ins_srtdiscipline sd, - aaxx_exp_uren u, - alg_gebouw g, - alg_locatie l, - alg_v_onroerendgoed og, - aaxx_v_exact_code_gebouw exact - WHERE o.prs_kostenplaats_key = k.prs_kostenplaats_key(+) - AND o.mld_typeopdr_key = ot.mld_typeopdr_key - AND u.mld_opdr_uren_key = ou.mld_opdr_uren_key - AND ou.mld_opdr_key = o.mld_opdr_key - AND ou.prs_perslid_key = p.prs_perslid_key - AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+) - AND og.alg_gebouw_key = g.alg_gebouw_key(+) - AND m.mld_alg_locatie_key = l.alg_locatie_key(+) - AND og.alg_gebouw_key = exact.alg_gebouw_key(+) - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = d.ins_discipline_key - AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key - AND (( aaxx_get_user = 'ZCN' - AND ( sd.ins_srtdiscipline_prefix = 'PR') - ) - OR - ( aaxx_get_user = 'ZKHM' - AND ( sd.ins_srtdiscipline_prefix = 'PR') - ) - ); - - -- 1 regel met de fee op projecturen, deze moet als volgt worden berekend: verwerkte uren * (extern-intern - -- tarief). Deze fee moet op FEE UREN - - INSERT INTO fin_verkoopfactuur - ( - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3, fin_verkoopfactuur_n1 - ) - SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'FEE ' || prs_kostensoort_oms, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, ROUND(ut.ext_uurtarief * ou.mld_opdr_uren_besteed, 2) - fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3, fin_verkoopfactuur_n1 - FROM fin_verkoopfactuur vk, - mld_opdr_uren ou, - (SELECT ko.mld_opdr_key, fac.safe_to_number(mld_kenmerkopdr_waarde) ext_uurtarief - FROM mld_kenmerkopdr ko, mld_kenmerk k - WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key - AND k.mld_srtkenmerk_key = DECODE(aaxx_get_user, 'ZCN', 281, 'ZKHM', 281) -- extern uurtarief - ) ut - WHERE vk.fin_verkoopfactuur_refkey = ou.mld_opdr_uren_key - AND ou.mld_opdr_key = ut.mld_opdr_key - AND fin_verkoopfactuur_aanmaak = v_logdate; - - COMMIT; -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 ('UREN', - 'E', - v_errormsg, - ''); -END; -/ - ---============================================================================= --- EXPORTFUNCTIES BUNDEL_CATERING -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_export_bundel_catering ( - result, - result_order - ) -AS -SELECT REPLACE(REPLACE('RES' - || ';' - || SYSDATE - || ';' - || SUBSTR (prs_kostenplaats_nr, 1, 30) - || ';' - || SUBSTR (prs_kostenplaats_omschrijving, 1, 60) - || ';' - || SUBSTR (prs_kostensoort_oms, 1, 60) - || ';' - || rra.res_rsv_artikel_aantal || ' * ' || ra.res_artikel_omschrijving - || ';' - || to_char(rra.res_rsv_artikel_prijs) - || ';' - || to_char(ra.res_artikel_inkoopprijs) - || ';' - || rra.res_rsv_artikel_key - ,CHR (13), ''), CHR (10), ''), res_rsv_artikel_key -FROM res_rsv_ruimte rrr, - res_rsv_artikel rra, - res_artikel ra, - ins_tab_discipline d, - prs_kostensoort ks, - prs_kostenplaats k -WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key - AND rra.res_rsv_artikel_verwijder IS NULL - AND rra.res_status_bo_key = 5 - AND rra.res_artikel_key = ra.res_artikel_key - AND ra.res_discipline_key = d.ins_discipline_key - AND d.prs_kostensoort_key = ks.prs_kostensoort_key(+) - AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key - AND NVL (rra.res_rsv_artikel_levering, - TO_DATE ('20070101', 'yyyymmdd') - ) < - TO_DATE ( TO_CHAR (SYSDATE, 'yyyy') - || TO_CHAR (SYSDATE, 'mm') - || '01', - 'yyyymmdd' - ); - --- Procedure om alle geexporteerde facturen naar status verwerkt te zetten. -CREATE OR REPLACE PROCEDURE aaxx_export_bundel_catering ( - p_applname IN VARCHAR2, - p_applrun IN VARCHAR2, - p_filedir IN VARCHAR2, - p_filename IN VARCHAR2 -) -AS - c_catmld_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(2, 'D'); - v_errormsg VARCHAR (200); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_laatste_export DATE; - v_mld_melding_key NUMBER; - v_prs_bedrijf_key NUMBER; - v_prs_kostenplaats_key NUMBER; - v_mld_opdr_bedrijfopdr_volgnr NUMBER; - v_aanvrager NUMBER; - v_mld_workorder_key NUMBER; -BEGIN - - IF aaxx_get_user = 'SITECH' THEN - -- SITECH: Sodexo BV - v_prs_bedrijf_key := 10442; - -- SITECH: Servicedesk AA - v_aanvrager := 6524; - -- SITECH: Arcadis Aqumen - v_prs_kostenplaats_key := 209; - -- key van opdrachttype workorder - v_mld_workorder_key := 167; - END IF; - - IF aaxx_get_user = 'NS' THEN - -- NS: Eurest catering - v_prs_bedrijf_key := 1581; - -- NS: xxx - v_aanvrager := 4; - -- NS: xxx - v_prs_kostenplaats_key := 0; - -- key van opdrachttype workorder - v_mld_workorder_key := 121; - END IF; - - v_errormsg := 'Controle exportdatum'; - SELECT max(fin_verkoopfactuur_aanmaak) - INTO v_laatste_export - FROM fin_verkoopfactuur - WHERE fin_verkoopfactuur_xmlnode = 'reservering'; - - IF v_laatste_export IS NOT NULL AND v_laatste_export > - TO_DATE ( TO_CHAR (SYSDATE, 'yyyy') - || TO_CHAR (SYSDATE, 'mm') - || '01', - 'yyyymmdd') THEN - -- foutmelding bundeling voor deze maand heeft al plaatsgevonden op v_laatste_export - fac.writelog (p_applname, 'E', 'bundeling voor deze maand heeft al plaatsgevonden op: ' || v_laatste_export, ''); - RETURN; - END IF; - - v_errormsg := 'Aanmaken catering melding'; - BEGIN - INSERT INTO mld_melding - ( - mld_melding_omschrijving, - mld_kosten_klant, - prs_perslid_key, - prs_kostenplaats_key, - mld_stdmelding_key, - mld_alg_locatie_key, - mld_melding_einddatum, - mld_melding_datum, - mld_melding_t_uitvoertijd, - mld_meldbron_key, - mld_melding_module, - mld_melding_spoed - ) - VALUES ( - 'Hospitality maand:' || TO_CHAR (TO_DATE ( '01' - || TO_CHAR (SYSDATE, 'mm') - || TO_CHAR (SYSDATE, 'yyyy'), - 'ddmmyyyy' - ) - - 1, - 'Mon' - ), - 1, - v_aanvrager, - v_prs_kostenplaats_key, - DECODE (aaxx_get_user, 'SITECH', 603, 'NS', 641), - DECODE (aaxx_get_user, 'SITECH', 1, 'NS', 0), -- alg_locatie - sysdate + 14, - sysdate, - c_catmld_uitvoertijd, - 5, - 'MLD', - 3 - ) RETURNING mld_melding_key INTO v_mld_melding_key; - - BEGIN mld.setmeldingstatus(v_mld_melding_key, 2, v_aanvrager); END; - BEGIN mld.setmeldingstatus(v_mld_melding_key, 4, v_aanvrager); END; - UPDATE mld_melding SET mld_melding_behandelaar_key= v_aanvrager WHERE mld_melding_key = v_mld_melding_key ; - END; - - v_errormsg := 'Voeg catering to aan fin_verkoopfactuur (vh verkoopbuffer)'; - -- rra.res_status_bo_key = 5 is afgemeld - INSERT INTO fin_verkoopfactuur - ( - -- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde - fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3 - ) - SELECT substr(to_char(SYSDATE, 'dd-mm-yyyy') || ' - ' || rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr, 1,30 ), - 'reservering', - rrr.res_rsv_ruimte_key, - SYSDATE, - DECODE (aaxx_get_user, 'SITECH', aaxx_get_dep_code(k.prs_kostenplaats_nr), 'NS', SUBSTR (prs_kostenplaats_nr, 1, 30)), - DECODE (aaxx_get_user, 'SITECH', aaxx_get_dep_code(k.prs_kostenplaats_nr), 'NS', SUBSTR (prs_kostenplaats_nr, 1, 30)), - SUBSTR (prs_kostensoort_oms, 1, 60), - SUBSTR (prs_kostensoort_opmerking, 1, 255), - SUBSTR (prs_kostensoort_refcode, 1, 255), - (SELECT SUBSTR(prs_kostensoortgrp_oms,1,60) FROM prs_kostensoortgrp ksg WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key), - SUBSTR ('Hospitality' || ' ' - || TO_CHAR (TO_DATE ( '01' - || TO_CHAR (SYSDATE, 'mm') - || TO_CHAR (SYSDATE, 'yyyy'), - 'ddmmyyyy' - ) - - 1, - 'Mon' - ), - 1, - 100 - ), - SUM (rra.res_rsv_artikel_prijs), - DECODE (res_artikel_btw, 19, '4', 6, '2', 0, '4', '-1'), - to_char(add_months(sysdate, -1),'yyyy'), - COALESCE(exact_code, alg_gebouw_code), - 'X', 'X' -- groepering , subregelvolgorde - FROM res_rsv_ruimte rrr, - res_rsv_artikel rra, - alg_ruimte r, - alg_verdieping v, - alg_gebouw g, - res_artikel ra, - ins_tab_discipline d, - prs_kostensoort ks, - prs_kostenplaats k, - aaxx_v_exact_code_gebouw exact, - (SELECT COALESCE (MAX (ir2a.alg_ruimte_key), irrr.alg_ruimte_key) - alg_ruimte_key, - irrr.res_rsv_ruimte_key - FROM res_rsv_ruimte irrr, res_v_rsv_ruimte_2_alg_ruimte ir2a - WHERE irrr.res_rsv_ruimte_key = ir2a.res_rsv_ruimte_key(+) - GROUP BY irrr.res_rsv_ruimte_key, irrr.alg_ruimte_key) r2a - WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key - AND r2a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key - AND r2a.alg_ruimte_key = r.alg_ruimte_key - AND r.alg_verdieping_key = v.alg_verdieping_key - AND v.alg_gebouw_key = exact.alg_gebouw_key(+) - AND v.alg_gebouw_key = g.alg_gebouw_key - AND rra.res_rsv_artikel_verwijder IS NULL - AND rra.res_status_bo_key = 5 - AND rra.res_artikel_key = ra.res_artikel_key - AND ra.res_discipline_key = d.ins_discipline_key - AND d.prs_kostensoort_key = ks.prs_kostensoort_key(+) - AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key - AND rra.res_rsv_artikel_levering < - TO_DATE ( TO_CHAR (SYSDATE, 'yyyy') - || TO_CHAR (SYSDATE, 'mm') - || '01', - 'yyyymmdd' - ) - GROUP BY prs_kostenplaats_nr, - prs_kostenplaats_omschrijving, - k.prs_kostenplaats_key, - prs_kostensoort_oms, - prs_kostensoort_opmerking, - prs_kostensoort_refcode, - ks.prs_kostensoortgrp_key, - res_artikel_btw, - alg_gebouw_code, - exact_code; - - v_errormsg := 'Meld de catering af die zojuist in de verkoopbuffer geplaatst zijn'; - -- pas alle cateringartikelen aan die hierboven in de verkoopbuffer geplaatst zijn - -- res_status_bo_key = 6 is verwerkt - UPDATE res_rsv_artikel - SET res_rsv_artikel_verwerkt = SYSDATE, res_status_bo_key = 6 - WHERE res_rsv_artikel_key IN - (SELECT res_rsv_artikel_key - FROM res_rsv_ruimte rrr, - res_rsv_artikel rra, - res_artikel ra, - ins_tab_discipline d, - prs_kostenplaats k - WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key - AND rra.res_rsv_artikel_verwijder IS NULL - AND rra.res_status_bo_key = 5 - AND rra.res_artikel_key = ra.res_artikel_key - AND ra.res_discipline_key = d.ins_discipline_key - AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key - AND NVL (rra.res_rsv_artikel_levering, - TO_DATE ('20070101', 'yyyymmdd') - ) < - TO_DATE ( TO_CHAR (SYSDATE, 'yyyy') - || TO_CHAR (SYSDATE, 'mm') - || '01', - 'yyyymmdd' - )); - - v_errormsg := 'Zoek kostenplaats'; - SELECT prs_kostenplaats_key - INTO v_prs_kostenplaats_key - FROM mld_melding - WHERE mld_melding_key = v_mld_melding_key; - - v_mld_opdr_bedrijfopdr_volgnr := mld.BepaalOpdrMeldingVolgnr (v_mld_melding_key); - - v_errormsg := 'Maak opdracht aan om factuur van cateraar te matchen'; - -- maak opdracht aan om cateringfactuur van leverancier te matchen - -- de cateraar hoeft de opslag van 6,5% niet te ontvangen - INSERT INTO mld_opdr (mld_melding_key - , prs_kostenplaats_key - , mld_statusopdr_key - , mld_typeopdr_key - , prs_perslid_key - , mld_uitvoerende_keys - , mld_opdr_datumbegin - , mld_opdr_einddatum - , mld_opdr_module - , mld_opdr_omschrijving - , mld_opdr_materiaal - , mld_opdr_kosten - , mld_opdr_bedrijfopdr_volgnr) - ( SELECT v_mld_melding_key - , v_prs_kostenplaats_key - , 5 -- uitgegeven - , v_mld_workorder_key - , v_aanvrager - , v_prs_bedrijf_key - , sysdate - , FAC.DatumTijdPlusUitvoerTijd(sysdate, 1, 'DAGEN') - , 'MLD' - , max(fin_verkoopfactuur_omschr) - , round((sum(fin_verkoopfactuur_bedrag)/1.065),2) - , round((sum(fin_verkoopfactuur_bedrag)/1.065),2) - , v_mld_opdr_bedrijfopdr_volgnr - FROM fin_verkoopfactuur - WHERE fin_verkoopfactuur_xmlnode = 'reservering' - AND trunc(fin_verkoopfactuur_aanmaak) = trunc(sysdate)); - - v_errormsg := 'Update melding status'; - MLD.updatemeldingstatusAV (v_mld_melding_key, 0, v_aanvrager, 0); -- Facilitor - - - EXCEPTION WHEN OTHERS THEN - ROLLBACK; - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; - fac.writelog (p_applname, 'E', v_errormsg, ''); - COMMIT; -END; -/ - ---============================================================================= --- EXPORTFUNCTIES BUDGET TRACKER -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_export_budget_tracker (result, result_order) -AS -SELECT '"nummer";' || - '"datum";' || - '"status";' || - '"laatste_actie";' || - '"vakgroeptype";' || - '"vakgroep";' || - '"kostensoort_code";' || - '"kostensoort_omschrijving";' || - '"financiele_waarde";' || - '"kostensoortgroep_omschrijving";' || - '"melding";' || - '"omschrijving";' || - '"organisatie";' || - '"naam";' || - '"kostenplaats";' || - '"kostenplaats_omschrijving";' || - '"plaats";' || - '"locatie";' || - '"gebouw";' || - '"code_exact";' || - '"opdracht_status";' || - '"uitvoerende";' || - '"contactpersoon";' || - '"uren";' || - '"uurloon";' || - '"materiaal";' || - '"kosten";' || - '"gefactureerd"', 0 - FROM dual -UNION ALL -SELECT REPLACE(REPLACE( '"' - || nummer - || '";"' - || datum - || '";"' - || status - || '";"' - || laatste_actie - || '";"' - || vakgroeptype - || '";"' - || vakgroep - || '";"' - || kostensoort_code - || '";"' - || kostensoort_omschrijving - || '";"' - || financiele_waarde - || '";"' - || kostensoortgroep_omschrijving - || '";"' - || melding - || '";"' - || aaxx_exp_escape (omschrijving) - || '";"' - || organisatie - || '";"' - || naam - || '";"' - || kostenplaats - || '";"' - || kostenplaats_omschrijving - || '";"' - || plaats - || '";"' - || locatie - || '";"' - || gebouw - || '";"' - || code_exact - || '";"' - || opdracht_status - || '";"' - || uitvoerende - || '";"' - || contactpersoon - || '";"' - || uren - || '";"' - || uurloon - || '";"' - || materiaal - || '";"' - || kosten - || '";"' - || gefactureerd - || '"',CHR (13), ''), CHR (10), ''), - 1 -FROM (SELECT m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr nummer, - TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY HH24:MI') datum, - (SELECT mld_statusopdr_omschrijving - FROM mld_statusopdr s - WHERE o.mld_statusopdr_key = s.mld_statusopdr_key) - status, - TO_CHAR (mld.getopdrachtstatusdate (o.mld_opdr_key, mld_statusopdr_key) - , 'DD-MM-YYYY HH24:MI' - ) - laatste_actie, - sd.ins_srtdiscipline_prefix vakgroeptype, - md.ins_discipline_omschrijving vakgroep, - COALESCE (kstd.prs_kostensoort_oms, kvg.prs_kostensoort_oms) - kostensoort_code, - COALESCE (kstd.prs_kostensoort_opmerking, - kvg.prs_kostensoort_opmerking - ) - kostensoort_omschrijving, - COALESCE (kstd.prs_kostensoort_refcode, - kvg.prs_kostensoort_refcode - ) - financiele_waarde, - (SELECT prs_kostensoortgrp_oms FROM prs_kostensoortgrp ksg - WHERE ksg.prs_kostensoortgrp_key = COALESCE (kstd.prs_kostensoortgrp_key, kvg.prs_kostensoortgrp_key)) kostensoortgroep_omschrijving, - std.mld_stdmelding_omschrijving melding, - SUBSTR (REPLACE (mld_melding_omschrijving, - CHR (13) || CHR (10), - '' - ), - 1, - 2000 - ) - omschrijving, - (SELECT d.prs_afdeling_naam - FROM prs_v_afdeling d - WHERE p.prs_afdeling_key = d.prs_afdeling_key) - organisatie, - p.prs_perslid_naam - || DECODE (NVL (p.prs_perslid_voorletters, ''), - '', '', - ', ' || p.prs_perslid_voorletters) - || DECODE (NVL (p.prs_perslid_tussenvoegsel, ''), - '', '', - ' ' || p.prs_perslid_tussenvoegsel) - || DECODE (NVL (p.prs_perslid_voornaam, ''), - '', '', - ' (' || p.prs_perslid_voornaam || ')') - naam, - (SELECT k.prs_kostenplaats_nr - FROM prs_kostenplaats k - WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key) - kostenplaats, - (SELECT k.prs_kostenplaats_omschrijving - FROM prs_kostenplaats k - WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key) - kostenplaats_omschrijving, - (SELECT alg_locatie_code - FROM alg_locatie l - WHERE m.mld_alg_locatie_key = l.alg_locatie_key) - || (SELECT CASE COALESCE(G.alg_gebouw_code, '') - WHEN '' THEN '' ELSE '-' || G.alg_gebouw_code - END - || CASE COALESCE(G.alg_verdieping_code, '') - WHEN '' THEN '' ELSE '-' || G.alg_verdieping_code - END - || CASE COALESCE(G.alg_ruimte_nr, '') - WHEN '' THEN '' ELSE '-' || G.alg_ruimte_nr - END - FROM alg_v_allonrgoed_gegevens g - WHERE m.mld_alg_onroerendgoed_keys = g.alg_onroerendgoed_keys) plaats, - alg_locatie_code locatie, - alg_gebouw_code gebouw, - COALESCE ((SELECT exact_code - FROM aaxx_v_exact_code_gebouw ogk - WHERE ogk.alg_gebouw_key = v.alg_gebouw_key) - , v.alg_gebouw_code) - code_exact, - (SELECT mld_statusopdr_omschrijving - FROM mld_statusopdr so - WHERE o.mld_statusopdr_key = so.mld_statusopdr_key) - opdracht_status, - COALESCE ( (SELECT prs_bedrijf_naam - FROM prs_bedrijf b - WHERE o.mld_uitvoerende_keys = prs_bedrijf_key), - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all - WHERE o.mld_uitvoerende_keys = prs_perslid_key) - ) - uitvoerende, - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all pf - WHERE o.prs_perslid_key = pf.prs_perslid_key) - contactpersoon, - replace(to_char (o.mld_opdr_uren, '999999990.99'), '.', ',') uren, - replace(to_char (o.mld_opdr_uurloon, '999999990.99'), '.', ',') uurloon, - replace(to_char (o.mld_opdr_materiaal, '999999990.99'), '.', ',') materiaal, - replace(to_char (o.mld_opdr_kosten, '999999990.99'), '.', ',') kosten, - COALESCE ( (SELECT trim(to_char (SUM (f.fin_factuur_totaal), '999999990.99')) - FROM aaxx_v_aanwezigfactuur f - WHERE f.mld_opdr_key = o.mld_opdr_key), '0' - ) - gefactureerd - FROM mld_melding m, - mld_discipline md, - ins_srtdiscipline sd, - alg_v_allonrgoed_gegevens v, - alg_locatie l, - alg_district di, - prs_perslid p, - mld_opdr o, - mld_stdmelding std, - prs_kostensoort kstd, - prs_kostensoort kvg - WHERE m.mld_alg_locatie_key = l.alg_locatie_key(+) - AND l.alg_district_key = di.alg_district_key(+) - AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+) - AND m.mld_alg_onroerendgoed_keys = v.alg_onroerendgoed_keys(+) - AND m.prs_perslid_key = p.prs_perslid_key - AND m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = md.ins_discipline_key - AND m.mld_melding_key = o.mld_melding_key - AND std.prs_kostensoort_key = kstd.prs_kostensoort_key(+) - AND md.prs_kostensoort_key = kvg.prs_kostensoort_key(+) -UNION ALL -SELECT cnt_contract_nummer_intern, - TO_CHAR (c.cnt_contract_looptijd_van, 'DD-MM-YYYY HH24:MI') datum, - DECODE (SIGN (cnt_contract_looptijd_van - SYSDATE), - 1, - 'Toekomst', - -1, - DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE), - 1, - 'Actueel', - -1, - 'Verlopen' - ) - ) - status, - TO_CHAR (c.cnt_contract_looptijd_tot, 'DD-MM-YYYY HH24:MI') - laatste_actie, - 'Contract' vakgroeptype, - d.ins_discipline_omschrijving vakgroep, - k.prs_kostensoort_oms kostensoort_code, - k.prs_kostensoort_opmerking kostensoort_omschrijving, - k.prs_kostensoort_refcode financiele_waarde, - (SELECT prs_kostensoortgrp_oms FROM prs_kostensoortgrp ksg - WHERE ksg.prs_kostensoortgrp_key = k.prs_kostensoortgrp_key) kostensoortgroep_omschrijving, - c.cnt_contract_omschrijving melding, - SUBSTR (REPLACE (cnt_contract_document, CHR (13) || CHR (10), ''), - 1, - 2000 - ) - omschrijving, - prs_afdeling_naam organisatie, - p.prs_perslid_naam - || DECODE (NVL (p.prs_perslid_voorletters, ''), - '', '', - ', ' || p.prs_perslid_voorletters) - || DECODE (NVL (p.prs_perslid_tussenvoegsel, ''), - '', '', - ' ' || p.prs_perslid_tussenvoegsel) - || DECODE (NVL (p.prs_perslid_voornaam, ''), - '', '', - ' (' || p.prs_perslid_voornaam || ')') - naam, - kp.prs_kostenplaats_nr kostenplaats, - kp.prs_kostenplaats_omschrijving kostenplaats_omschrijving, - alg_locatie_code || '-' || alg_gebouw_code plaats, - alg_locatie_code locatie, - alg_gebouw_code gebouw, - COALESCE ((SELECT exact_code - FROM aaxx_v_exact_code_gebouw ogk - WHERE ogk.alg_gebouw_key = g.alg_gebouw_key) - , g.alg_gebouw_code) - code_exact, - '-' opdracht_status, - prs_bedrijf_naam uitvoerende, - '-' contactpersoon, - '0' uren, - '0' uurloon, - '0' materiaal, - COALESCE ( trim(to_char (DECODE (cnt_gew.cnt_contract_plaats_gewicht, - 0, - 1, - (cp.cnt_contract_plaats_gewicht - / cnt_gew.cnt_contract_plaats_gewicht) - * c.cnt_contract_kosten), '999999990.99')) - , - '0' - ) - kosten, - COALESCE ( trim(to_char (DECODE (cnt_gew.cnt_contract_plaats_gewicht, - 0, - 1, - (cp.cnt_contract_plaats_gewicht - / cnt_gew.cnt_contract_plaats_gewicht) - * (SELECT SUM(fin_factuur_totaal) - FROM aaxx_v_aanwezigfactuur f - WHERE f.cnt_contract_key = c.cnt_contract_key - )), '999999990.99')) - , - '0' - ) - gefactureerd -FROM cnt_contract c, - cnt_discipline d, - cnt_contract_plaats cp, - prs_bedrijf b, - prs_kostensoort k, - prs_kostenplaats kp, - prs_afdeling a, - prs_perslid p, - alg_locatie l, - alg_gebouw g, - prs_contactpersoon cop, - (SELECT cnt_contract_key, - SUM (cnt_contract_plaats_gewicht) cnt_contract_plaats_gewicht - FROM cnt_contract_plaats - GROUP BY cnt_contract_key) cnt_gew, - (SELECT cp.cnt_contract_plaats_key, alg_locatie_key, alg_gebouw_key - FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp - WHERE aog.alg_type = cp.cnt_alg_plaats_code - AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) cog -WHERE c.cnt_contract_key = cp.cnt_contract_key(+) - AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+) - AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key - AND c.ins_discipline_key = d.ins_discipline_key - AND d.prs_kostensoort_key = k.prs_kostensoort_key(+) - AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) - AND c.prs_afdeling_key_eig = a.prs_afdeling_key - AND c.prs_perslid_key_beh = p.prs_perslid_key - AND cp.cnt_contract_plaats_key = cog.cnt_contract_plaats_key(+) - AND c.prs_contactpersoon_key = cop.prs_contactpersoon_key(+) - AND cog.alg_locatie_key = l.alg_locatie_key(+) - AND cog.alg_gebouw_key = g.alg_gebouw_key(+) - AND cnt_contract_verwijder IS NULL - ); - - - ---============================================================================= --- EXPORTFUNCTIES DATAWAREHOUSE -------------------------------------------------------------------------------- - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_PRS_BEDRIJF -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_prs_bedrijf -( - prs_bedrijf_key, - prs_bedrijf_naam, - prs_bedrijf_naam_upper, - prs_bedrijf_post_adres, - prs_bedrijf_post_postcode, - prs_bedrijf_post_plaats, - prs_bedrijf_post_land, - prs_bedrijf_bezoek_adres, - prs_bedrijf_bezoek_postcode, - prs_bedrijf_bezoek_plaats, - prs_bedrijf_bezoek_land, - prs_bedrijf_telefoon, - prs_bedrijf_fax, - prs_bedrijf_telefoon2, - prs_bedrijf_contact_persoon, - prs_bedrijf_contact_telefoon, - prs_bedrijf_contact_fax, - prs_bedrijf_opmerking, - prs_bedrijf_opmerking2, - prs_bedrijf_uurloon, - prs_leverancier_nr, - prs_overeenkomst_nr, - prs_overeenkomst_datum, - prs_bedrijf_aanmaak, - prs_bedrijf_verwijder, - prs_bedrijf_leverancier, - prs_bedrijf_uitvoerende, - prs_bedrijf_contract, - prs_bedrijf_intern, - prs_bedrijf_huurder, - prs_bedrijf_email, - prs_bedrijf_ingids, - prs_relatietype -) -AS - SELECT prs_bedrijf_key, - prs_bedrijf_naam, - prs_bedrijf_naam_upper, - prs_bedrijf_post_adres, - prs_bedrijf_post_postcode, - prs_bedrijf_post_plaats, - prs_bedrijf_post_land, - prs_bedrijf_bezoek_adres, - prs_bedrijf_bezoek_postcode, - prs_bedrijf_bezoek_plaats, - prs_bedrijf_bezoek_land, - prs_bedrijf_telefoon, - prs_bedrijf_fax, - prs_bedrijf_telefoon2, - prs_bedrijf_contact_persoon, - prs_bedrijf_contact_telefoon, - prs_bedrijf_contact_fax, - prs_bedrijf_opmerking, - prs_bedrijf_opmerking2, - prs_bedrijf_uurloon, - prs_leverancier_nr, - prs_overeenkomst_nr, - prs_overeenkomst_datum, - prs_bedrijf_aanmaak, - prs_bedrijf_verwijder, - prs_bedrijf_leverancier, - prs_bedrijf_uitvoerende, - prs_bedrijf_contract, - prs_bedrijf_intern, - prs_bedrijf_huurder, - prs_bedrijf_email, - prs_bedrijf_ingids, - prs_relatietype_omschrijving - FROM prs_bedrijf b, prs_relatietype rt - WHERE prs_bedrijf_verwijder IS NULL - AND b.prs_relatietype_key = rt.prs_relatietype_key(+); - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_PRS_BEDRIJFADRES -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_prs_bedrijfadres -( - prs_bedrijf_key, - prs_bedrijfadres_type, - opdrachttype, - prs_bedrijfadres_url, - prs_bedrijfadres_ordermode, - prs_bedrijfadres_certificate, - prs_bedrijfadres_xsl, - prs_fixed_attach, - prs_send_flex -) -AS - SELECT prs_bedrijf_key, - DECODE (prs_bedrijfadres_type, - 'C', 'Contracten', - 'O', 'Opdrachten', - 'B', 'Bestellingen', - 'Anders?') - TYPE, - DECODE ( - prs_bedrijfadres_type, - 'O', - COALESCE (t.mld_typeopdr_omschrijving, - 'Geen/Overige opdrachten'), - 'N.v.t' - ) - Opdrachttype, - prs_bedrijfadres_url, - prs_bedrijfadres_ordermode, - prs_bedrijfadres_certificate, - prs_bedrijfadres_xsl, - prs_bedrijfadres_attachfile prs_fixed_attach, - DECODE ( - prs_bedrijfadres_flexfiles, - 0, - DECODE ( - (SELECT COALESCE (fac_setting_pvalue, fac_setting_default) - FROM fac_setting - WHERE LOWER (fac_setting_name) = 'puo_order_flexfiles'), - 0, - 'Nee', - 'Ja' - ), - 1, - 'Ja', - 'Nee' - ) - prs_send_flex - FROM prs_bedrijfadres ba, mld_typeopdr t - WHERE t.mld_typeopdr_key(+) = ba.mld_typeopdr_key; - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_PRS_AFDELING -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_prs_afdeling -( - prs_afdeling_parent_naam, - prs_afdeling_naam, - prs_afdeling_omschrijving, - prs_kostenplaats_nr, - prs_afdeling_verwijder, - prs_bedrijf_naam, - niveau -) -AS - SELECT ap.prs_afdeling_naam, - a.prs_afdeling_naam, - a.prs_afdeling_omschrijving, - k.prs_kostenplaats_nr, - a.prs_afdeling_verwijder, - prs_bedrijf_naam, - niveau - FROM prs_v_afdeling a, - prs_kostenplaats k, - prs_bedrijf b, - prs_afdeling ap - WHERE a.prs_kostenplaats_key = k.prs_kostenplaats_key(+) - AND a.prs_bedrijf_key = b.prs_bedrijf_key(+) - AND a.prs_afdeling_parentkey = ap.prs_afdeling_key(+); - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_PRS_PERSOON -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_prs_perslid -( - prs_perslid_key, - prs_afdeling_naam, - prs_perslid_naam, - prs_perslid_tussenvoegsel, - prs_perslid_voornaam, - prs_perslid_full, - prs_perslid_login, - prs_perslid_nr, - prs_perslid_telefoon, - prs_perslid_email, - prs_perslid_lastlogin, - prs_perslid_aanmaak, - prs_perslid_verwijder, - prs_perslid_laatstgezien, - prs_perslid_bezetdatum -) -AS - SELECT p.prs_perslid_key, - a.prs_afdeling_naam, - p.prs_perslid_naam, - p.prs_perslid_tussenvoegsel, - p.prs_perslid_voornaam, - pf.prs_perslid_naam_full, - p.prs_perslid_oslogin, - p.prs_perslid_nr, - p.prs_perslid_telefoonnr, - p.prs_perslid_email, - p.prs_perslid_login, - p.prs_perslid_aanmaak, - p.prs_perslid_verwijder, - CASE - WHEN ( p.alg_onroerendgoed_type = 'G' - OR p.alg_onroerendgoed_type = 'V' - OR p.alg_onroerendgoed_type = 'R') - THEN - (SELECT og.alg_gebouw_naam - FROM alg_v_allonrgoed_gegevens og - WHERE og.alg_onroerendgoed_keys = - p.alg_onroerendgoed_keys) - WHEN (p.alg_onroerendgoed_type = 'L') - THEN - (SELECT alg_locatie_omschrijving - FROM alg_locatie - WHERE alg_locatie_key = alg_onroerendgoed_keys) - END - laatst_gezien, - p.prs_perslid_bezetdatum - FROM prs_perslid p, prs_afdeling a, prs_v_perslid_fullnames_all pf - WHERE a.prs_afdeling_key = p.prs_afdeling_key - AND p.prs_perslid_key = pf.prs_perslid_key; - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_FAC_GROEPRECHTEN -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_fac_groeprechten -( - prs_perslid_naam, - prs_perslid_key, - prs_perslid_login, - fac_functie_code, - fac_functie_omschrijving, - fac_functie_module, - ins_discipline_omschrijving, - fac_groep_omschrijving, - orgr, - orgw, - algr, - algw -) -AS - SELECT -- GROEPEN MET DISCIPLINES - p.prs_perslid_naam, - gg.prs_perslid_key, - p.prs_perslid_oslogin, - f.fac_functie_code, - f.fac_functie_omschrijving, - f.fac_functie_module, - (CASE - WHEN ins_srtdiscipline_prefix IS NULL THEN '' - ELSE ins_srtdiscipline_prefix || '-' - END) - || ins_discipline_omschrijving - omschrijving, - gr.fac_groep_omschrijving, - g.fac_gebruiker_prs_level_read orgr, - g.fac_gebruiker_prs_level_write orgw, - g.fac_gebruiker_alg_level_read algr, - g.fac_gebruiker_alg_level_write algw - FROM fac_groeprechten g, - fac_gebruikersgroep gg, - prs_v_aanwezigperslid p, - fac_functie f, - ins_srtdiscipline isd, - ins_tab_discipline a, - fac_groep gr - WHERE g.ins_discipline_key = a.ins_discipline_key - AND g.fac_groep_key = gr.fac_groep_key - AND p.prs_perslid_key = gg.prs_perslid_key - AND gg.fac_groep_key = gr.fac_groep_key - AND isd.ins_srtdiscipline_key(+) = a.ins_srtdiscipline_key - AND f.fac_functie_key = g.fac_functie_key - AND f.fac_functie_discipline = 1 - AND ins_discipline_verwijder IS NULL - UNION ALL -- GROEPEN ZONDER DISCIPLINES - SELECT p.prs_perslid_naam, - p.prs_perslid_key, - p.prs_perslid_oslogin, - f.fac_functie_code, - f.fac_functie_omschrijving, - f.fac_functie_module, - NULL, - gr.fac_groep_omschrijving, - g.fac_gebruiker_prs_level_read orgr, - g.fac_gebruiker_prs_level_write orgw, - g.fac_gebruiker_alg_level_read algr, - g.fac_gebruiker_alg_level_write algw - FROM fac_groeprechten g, - fac_functie f, - fac_gebruikersgroep gg, - prs_v_aanwezigperslid p, - fac_groep gr - WHERE fac_functie_module <> 'LAN' - AND fac_functie_discipline = 0 - AND g.fac_functie_key = f.fac_functie_key - AND g.fac_groep_key = gg.fac_groep_key - AND gg.fac_groep_key = gr.fac_groep_key - AND p.prs_perslid_key = gg.prs_perslid_key; - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_PRS_KOSTENPLAATS -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_prs_kostenplaats -( - prs_kostenplaats_nr, - prs_kostenplaats_omschrijving, - prs_kostenplaats_budgethouder, - prs_kostenplaats_aanmaak, - prs_kostenplaats_verwijder -) -AS - SELECT k.prs_kostenplaats_nr, - k.prs_kostenplaats_omschrijving, - pf.prs_perslid_naam_full, - k.prs_kostenplaats_aanmaak, - k.prs_kostenplaats_verwijder - FROM prs_kostenplaats k, prs_v_perslid_fullnames_all pf - WHERE k.prs_perslid_key = pf.prs_perslid_key(+); - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_PRS_KOSTENSOORT -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_prs_kostensoort -( - prs_kostensoort_code, - prs_kostensoort_omschrijving, - prs_kostensoort_fin_waarde, - prs_kostensoortgroep, - prs_kostensoort_aanmaak, - prs_kostensoort_altcode -) -AS - SELECT k.prs_kostensoort_oms, - k.prs_kostensoort_opmerking, - k.prs_kostensoort_refcode, - (SELECT prs_kostensoortgrp_oms - FROM prs_kostensoortgrp ksg - WHERE ksg.prs_kostensoortgrp_key = k.prs_kostensoortgrp_key), - k.prs_kostensoort_aanmaak, - k.prs_kostensoort_altcode - FROM prs_kostensoort k; - - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_PRS_KENMERK_PRS -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_prs -( - prs_link_key, - prs_kenmerk_niveau, - prs_kenmerk_omschrijving, - prs_kenmerk_waarde -) -AS - SELECT prs_link_key, - prs_kenmerk_niveau, - prs_kenmerk_omschrijving, - aaxx_get_kenmerkwaarde (k.prs_kenmerk_kenmerktype, - k.fac_kenmerkdomein_key, - kl.prs_kenmerklink_waarde) - FROM prs_kenmerklink kl, prs_kenmerk k - WHERE kl.prs_kenmerk_key = k.prs_kenmerk_key; - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_CNT_ALGEMEEN -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_cnt_contract -( - internnr, - externnr, - mantelcontract_key, - beschrijving, - contractsoort, - typecontract, - versie, - status, - ingangsdatum, - rappeldatum, - opzegdatum, - einddatum, - aanmaakdatum, - verwijderdatum, - eigenaar, - beheerder, - uitvoerder, - kostenplaats, - termijnbedrag, - contractbedrag, - volgnummer, - locatie_code, - gebouw_code, - gebouw_kosten, - gebouw_gefactureerd, - gebouw_gefactureerd_incl, - gebouw_gefactureerdverwerkt -) -AS - SELECT cnt_contract_nummer_intern - || '.' - || COALESCE (cnt_contract_versie, '0'), - cnt_contract_nummer, - cnt_contract_mantel_key, - cnt_contract_omschrijving, - d.ins_discipline_omschrijving, - tc.cnt_typecontract_omschrijving, - COALESCE (c.cnt_contract_versie, '0'), - DECODE (c.cnt_contract_status, '1', 'Gesloten', 'Open'), - cnt_contract_looptijd_van, - cnt.cnt_getrappeldatum (c.cnt_contract_key), - cnt.cnt_getopzegdatum (c.cnt_contract_key), - c.cnt_contract_looptijd_tot, - c.cnt_contract_aanmaak, - c.cnt_contract_verwijder, - a.prs_afdeling_naam, - prs_perslid_naam_full, - prs_bedrijf_naam, - kp.prs_kostenplaats_nr, - coalesce (cnt_contract_termijnkosten, 0), - cnt_contract_kosten, - aaxx_get_cnt_cont_plaats_index (cp.cnt_contract_plaats_key), - alg_locatie_code, - g.alg_gebouw_code, - ROUND ( - DECODE ( - cnt_gew.cnt_contract_plaats_gewicht, - 0, - 0, - COALESCE ( - (cp.cnt_contract_plaats_gewicht - / cnt_gew.cnt_contract_plaats_gewicht) - * c.cnt_contract_kosten, - 0)), - 2), - ROUND ( - COALESCE ( - DECODE ( - cnt_gew.cnt_contract_plaats_gewicht, - 0, - 1, - (cp.cnt_contract_plaats_gewicht - / cnt_gew.cnt_contract_plaats_gewicht)) - * fin.fin_factuur_totaal, - 0), - 2) gg, - ROUND ( - COALESCE ( - DECODE ( - cnt_gew.cnt_contract_plaats_gewicht, - 0, - 1, - (cp.cnt_contract_plaats_gewicht - / cnt_gew.cnt_contract_plaats_gewicht)) - * (fin.fin_factuur_totaal + fin.fin_factuur_totaal_incl), - 0), - 2) ggib, - ROUND ( - COALESCE ( - DECODE ( - cnt_gew.cnt_contract_plaats_gewicht, - 0, - 1, - (cp.cnt_contract_plaats_gewicht - / cnt_gew.cnt_contract_plaats_gewicht)) - * finv.fin_factuur_totaal, - 0), - 2) - FROM cnt_contract c, - cnt_discipline d, - cnt_disc_params cd, - cnt_typecontract tc, - (SELECT cnt_contract_plaats_gewicht, - cnt_contract_plaats_key, - cnt_contract_key, - cnt_alg_plaats_key, - cnt_alg_plaats_code - FROM cnt_contract_plaats - WHERE cnt_contract_plaats_verwijder IS NULL) cp, - prs_bedrijf b, - prs_kostensoort k, - prs_kostenplaats kp, - prs_afdeling a, - prs_v_perslid_fullnames_all pf, - alg_locatie l, - alg_gebouw g, - ( SELECT cnt_contract_key, - SUM (fin_factuurregel_totaal) fin_factuur_totaal, SUM(fin_factuurregel_btw) fin_factuur_totaal_incl - FROM aaxx_v_aanwezigfactuur f, fin_factuurregel fr - WHERE f.fin_factuur_key = fr.fin_factuur_key - GROUP BY cnt_contract_key) fin, - ( SELECT cnt_contract_key, - SUM (fin_factuurregel_totaal) fin_factuur_totaal - FROM aaxx_v_aanwezigfactuur f, fin_factuurregel fr - WHERE f.fin_factuur_key = fr.fin_factuur_key - AND f.fin_factuur_statuses_key = 7 -- verwerkt - GROUP BY cnt_contract_key) finv, - ( SELECT cnt_contract_key, - SUM (cnt_contract_plaats_gewicht) - cnt_contract_plaats_gewicht - FROM cnt_contract_plaats - WHERE cnt_contract_plaats_verwijder IS NULL - GROUP BY cnt_contract_key) cnt_gew, - (SELECT cp.cnt_contract_plaats_key, alg_locatie_key, alg_gebouw_key - FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp - WHERE aog.alg_type = cp.cnt_alg_plaats_code - AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) cog - WHERE c.cnt_contract_key = cp.cnt_contract_key(+) - AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+) - AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key - AND c.ins_discipline_key = d.ins_discipline_key - AND d.ins_discipline_key = cd.cnt_ins_discipline_key - AND cd.cnt_srtcontract_type = tc.cnt_typecontract_key - AND cd.cnt_srtcontract_type <> 6 -- Mantelcontracten worden (vooralsnog) uitgesloten AALB#28095 - AND d.prs_kostensoort_key = k.prs_kostensoort_key(+) - AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) - AND c.prs_afdeling_key_eig = a.prs_afdeling_key - AND c.prs_perslid_key_beh = pf.prs_perslid_key - AND cp.cnt_contract_plaats_key = cog.cnt_contract_plaats_key(+) - AND cog.alg_locatie_key = l.alg_locatie_key(+) - AND cog.alg_gebouw_key = g.alg_gebouw_key(+) - AND c.cnt_contract_key = fin.cnt_contract_key(+) - AND c.cnt_contract_key = finv.cnt_contract_key(+); - - -CREATE OR REPLACE VIEW aaxx_v_dwh_cnt_contract_scope -( - cnt_contract_plaats_key, - cnt_contract_key, - externnr, - internnr, - fin_factuur_key, - gebouw_code, - gebouw_bedrag, - gebouw_gefactureerd_incl, - gebouw_gefactureerdverwerkt -) -AS - SELECT cp.cnt_contract_plaats_key, - c.cnt_contract_key, - cnt_contract_nummer externnr, - cnt_contract_nummer_intern || '.' || COALESCE (cnt_contract_versie, '0') internnr, - f.fin_factuur_key, - gc.alg_gebouw_code, - ROUND ( - cp.cnt_contract_plaats_gewicht - / (SELECT DECODE (SUM (cp2.cnt_contract_plaats_gewicht), - 0, 1, - SUM (cp2.cnt_contract_plaats_gewicht)) - FROM cnt_contract_plaats cp2 - WHERE cp2.cnt_contract_key = cp.cnt_contract_key) - * fin_factuurregel_totaal, - 4) - gebouw_bedrag, - ROUND ( - COALESCE ( - DECODE (cnt_gew.cnt_contract_plaats_gewicht, - 0, 1, - (cp.cnt_contract_plaats_gewicht / cnt_gew.cnt_contract_plaats_gewicht)) - * (fin.fin_factuur_totaal + fin.fin_factuur_totaal_incl), - 0), - 4) - gebouw_gefactureerd_incl, - ROUND ( - COALESCE ( - DECODE (cnt_gew.cnt_contract_plaats_gewicht, - 0, 1, - (cp.cnt_contract_plaats_gewicht / cnt_gew.cnt_contract_plaats_gewicht)) - * finv.fin_factuur_totaal, - 0), - 4) - gebouw_gefactureerdverwerkt - FROM fin_factuur f, - fin_factuurregel fr, - fin_btwtabelwaarde btw, - cnt_contract c, - (SELECT * - FROM cnt_contract_plaats - WHERE cnt_alg_plaats_code = 'G') cp, - alg_gebouw gc, - ( SELECT cnt_contract_key, SUM (cnt_contract_plaats_gewicht) cnt_contract_plaats_gewicht - FROM cnt_contract_plaats - WHERE cnt_contract_plaats_verwijder IS NULL - GROUP BY cnt_contract_key) cnt_gew, - ( SELECT cnt_contract_key, SUM (fin_factuurregel_totaal) fin_factuur_totaal - FROM aaxx_v_aanwezigfactuur f, fin_factuurregel fr - WHERE f.fin_factuur_key = fr.fin_factuur_key AND f.fin_factuur_statuses_key = 7 -- verwerkt - GROUP BY cnt_contract_key) finv, - ( SELECT cnt_contract_key, - SUM (fin_factuurregel_totaal) fin_factuur_totaal, - SUM (fin_factuurregel_btw) fin_factuur_totaal_incl - FROM aaxx_v_aanwezigfactuur f, fin_factuurregel fr - WHERE f.fin_factuur_key = fr.fin_factuur_key - GROUP BY cnt_contract_key) fin - WHERE f.fin_factuur_key = fr.fin_factuur_key - AND f.cnt_contract_key = cp.cnt_contract_key - AND f.cnt_contract_key = c.cnt_contract_key - AND cp.cnt_alg_plaats_key = gc.alg_gebouw_key(+) - AND f.cnt_contract_key = cnt_gew.cnt_contract_key - AND f.cnt_contract_key = finv.cnt_contract_key(+) - AND f.cnt_contract_key = fin.cnt_contract_key(+) - AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key(+); - - -CREATE OR REPLACE VIEW aaxx_v_dwh_cnt_contract_mantel -( - cnt_contract_key, - internnr, - externnr, - beschrijving, - contractsoort, - typecontract, - versie, - status, - ingangsdatum, - rappeldatum, - opzegdatum, - einddatum, - aanmaakdatum, - verwijderdatum, - eigenaar, - beheerder, - beheerder_key, - uitvoerder, - kostenplaats, - termijnbedrag, - contractbedrag, - soort_overeenkomst, - omvang_contractduur, - commodity, - omschrijving_optie_verlenging, - tijdstip_facturatie, - indexering_tijdens_periode, - datum_van_indexering, - kortingsafspraken, - kortingsafspraak, - opmerking_cm_bijzonderheden, - contract_met_leverancier, - contracteigenaar, - indexeringsformule_afspraak, - besparing, - betalingsafspraak, - betalingstermijn, - link_contract, - omvang_contract_pj, - max_indexering, - link_prijzenblad, - pct_besparing_pj, - rappeltermijn_indexering, - link_overig -) -AS - SELECT cnt_contract_key, - cnt_contract_nummer_intern - || '.' - || COALESCE (cnt_contract_versie, '0'), - cnt_contract_nummer, - cnt_contract_omschrijving, - d.ins_discipline_omschrijving, - tc.cnt_typecontract_omschrijving, - COALESCE (c.cnt_contract_versie, '0'), - DECODE (c.cnt_contract_status, '1', 'Gesloten', 'Open'), - cnt_contract_looptijd_van, - cnt.cnt_getrappeldatum (c.cnt_contract_key), - cnt.cnt_getopzegdatum (c.cnt_contract_key), - c.cnt_contract_looptijd_tot, - c.cnt_contract_aanmaak, - c.cnt_contract_verwijder, - a.prs_afdeling_naam, - prs_perslid_naam_full, - pf.prs_perslid_key, - prs_bedrijf_naam, - kp.prs_kostenplaats_nr, - cnt_contract_termijnkosten, - cnt_contract_kosten, - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'SOORT OVEREENKOMST'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'OMVANG CONTRACTDUUR'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'COMMODITY'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = - 'OMSCHRIJVING OPTIE CONTRACTVERLENGING'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'TIJDSTIP FACTURATIE'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = - 'INDEXERING TIJDENS CONTRACTPERIODE'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'DATUM VAN INDEXERING'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'KORTINGSAFSPRAKEN'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'KORTINGSAFSPRAAK'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'OPMERKING CM/ BIJZONDERHEDEN'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'CONTRACT MET LEVERANCIER'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'CONTRACTEIGENAAR'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = - 'INDEXERINGSFORMULE/ -AFSPRAAK'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'BESPARING'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'BETALINGSAFSPRAAK'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'BETALINGSTERMIJN'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'LINK CONTRACT'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'OMVANG CONTRACT P/J'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'MAX. INDEXERING'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'LINK PRIJZENBLAD'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = '% BESPARING P/J'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'RAPPELTERMIJN INDEXERING'), - c.cnt_contract_key), - aaxx_get_kenmerk ( - 'CNT', - (SELECT MAX (cnt_kenmerk_key) - FROM cnt_kenmerk k, cnt_srtkenmerk sk - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND sk.cnt_srtkenmerk_upper = 'LINK OVERIG'), - c.cnt_contract_key) - FROM cnt_contract c, - cnt_discipline d, - cnt_disc_params cd, - cnt_typecontract tc, - prs_bedrijf b, - prs_kostensoort k, - prs_kostenplaats kp, - prs_afdeling a, - prs_v_perslid_fullnames_all pf - WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key - AND c.ins_discipline_key = d.ins_discipline_key - AND d.ins_discipline_key = cd.cnt_ins_discipline_key - AND cd.cnt_srtcontract_type = tc.cnt_typecontract_key - AND d.prs_kostensoort_key = k.prs_kostensoort_key(+) - AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) - AND c.prs_afdeling_key_eig = a.prs_afdeling_key - AND c.prs_perslid_key_beh = pf.prs_perslid_key - AND tc.cnt_typecontract_key = 6; - -CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_contract -( - CNT_CONTRACT_KEY, - CNT_KENMERK_OMSCHRIJVING, - CNT_KENMERK_WAARDE -) -AS - SELECT cnt_contract_key, - sk.cnt_srtkenmerk_omschrijving, - aaxx_get_kenmerkwaarde (sk.cnt_srtkenmerk_kenmerktype, - sk.fac_kenmerkdomein_key, - kc.cnt_kenmerkcontract_waarde) - FROM cnt_kenmerk k, cnt_srtkenmerk sk, cnt_kenmerkcontract kc - WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key - AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key; - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_FIN_FACTUUR -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_fin_factuur -( - fin_factuur_key, - fin_factuur_nr, - fin_factuur_totaal_btw, - opdr_id, - contract_id, - bestel_id, - fin_factuur_datum, - fin_factuur_boekmaand, - fin_factuur_debiteur_nr, - kostensoort, - fin_factuur_datumfiat_ok, - fin_factuur_datumfiat_nok, - fin_factuur_fiat_user, - fin_factuur_opmerking, - fin_factuur_datum_export, - fin_factuur_status, - fin_factuur_aanmaak, - fin_factuur_verwerkt, - fin_factuur_verwijder, - fin_factuur_badgeid, - invoerder, - invoerder_key, - fin_factuurregel_nr, - fin_factuurregel_totaal, - fin_factuurregel_btw, - fin_factuurregel_btw_perc, - uplift, - incl_uplift, - fin_factuurregel_omschrijving, - fin_factuurregel_referentie, - fin_btwtabelwaarde_code, - fin_btwtabelwaarde_oms -) -AS - SELECT f.fin_factuur_key, - f.fin_factuur_nr, - f.fin_factuur_totaal_btw, - (SELECT mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr - FROM mld_opdr - WHERE mld_opdr_key = f.mld_opdr_key), - (SELECT cc.cnt_contract_nummer_intern - || '.' - || COALESCE (cc.cnt_contract_versie, '0') - FROM cnt_contract cc - WHERE cc.cnt_contract_key = f.cnt_contract_key), - (SELECT bes_bestelopdr_id - FROM bes_bestelopdr - WHERE bes_bestelopdr_key = f.bes_bestelopdr_key), - f.fin_factuur_datum, - f.fin_factuur_boekmaand, - f.fin_factuur_debiteur_nr, - (SELECT prs_kostensoort_oms - FROM prs_kostensoort - WHERE prs_kostensoort_key = f.prs_kostensoort_key), - fac.gettrackingdate ('FINFOK', f.fin_factuur_key), - fac.gettrackingdate ('FINFNO', f.fin_factuur_key), - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all pf - WHERE pf.prs_perslid_key = - fac.gettrackinguserkey ('FINFOK', f.fin_factuur_key)), - f.fin_factuur_opmerking, - fac.gettrackingdate ('FINVER', f.fin_factuur_key), - (SELECT fin_factuur_statuses_omschr - FROM fin_factuur_statuses s - WHERE s.fin_factuur_statuses_key = f.fin_factuur_statuses_key), - COALESCE (fac.gettrackingdate ('FINNEW', f.fin_factuur_key), - fin_factuur_datum), - fac.gettrackingdate ('FINVER', f.fin_factuur_key), - fin_factuur_verwijder, - TO_CHAR (fac.gettrackingdate ('FINVER', f.fin_factuur_key), - 'yyyymmdd'), - fac.gettrackinguserkey ('FINNEW', f.fin_factuur_key) invoerder, - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all pf - WHERE pf.prs_perslid_key = - fac.gettrackinguserkey ('FINNEW', f.fin_factuur_key)) - invoerder_key, - fr.fin_factuurregel_nr, - fr.fin_factuurregel_totaal, - ROUND (fr.fin_factuurregel_btw, 2), - btw.fin_btwtabelwaarde_perc, - uplift, - uplift * fr.fin_factuurregel_totaal, - fr.fin_factuurregel_omschrijving, - fr.fin_factuurregel_referentie, - btw.fin_btwtabelwaarde_code, - btw.fin_btwtabelwaarde_oms - FROM fin_factuur f, - fin_factuurregel fr, - fin_btwtabelwaarde btw, - (SELECT f2.fin_factuur_key, uplift - FROM aaxx_imp_uplift u, - prs_bedrijf b, - prs_kostensoort ks, - fin_factuur f2, - mld_opdr o, - cnt_contract c - WHERE u.prs_leverancier_nr = b.prs_leverancier_nr - AND f2.mld_opdr_key = o.mld_opdr_key(+) - AND f2.cnt_contract_key = c.cnt_contract_key(+) - AND COALESCE (o.mld_uitvoerende_keys, - c.cnt_prs_bedrijf_key) = - b.prs_bedrijf_key - AND UPPER (u.prs_kostensoort_oms) = - ks.prs_kostensoort_upper - AND f2.prs_kostensoort_key = ks.prs_kostensoort_key - AND soort_order = - DECODE (o.mld_opdr_key, NULL, 'CO', 'WO') - AND f2.fin_factuur_boekmaand = - u.jaar || '-' || LTRIM (TO_CHAR (u.maand, '00'))) - UP - WHERE f.fin_factuur_key = fr.fin_factuur_key - AND f.fin_factuur_key = UP.fin_factuur_key(+) - AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key(+); - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_MLD_ALGEMEEN -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_mld_melding -( - mld_melding_key, - meldingnummer, - meldbron, - mld_melding_start_key, - alg_district_omschrijving, - locatie, - locatie_omschrijving, - alg_locatie_key, - onrgoed_key, - gebouw, - gebouw_naam, - gebouw_key, - verdieping, - verdieping_key, - ruimtenr, - ruimte_omschrijving, - ruimte_key, - melding_ordernr, - kostensoortgroep, - kostensoort, - kostenplaats, - kostenplaats_oms, - melder, - prs_perslid_key, - afdeling, - afdeling_omschrijving, - prs_bedrijf_key, - invoerder, - invoerder_key, - behandelaar, - behandelaar_key, - soortmelding, - ins_discipline_key, - ins_srtdiscipline_prefix, - productgroep, - subproductgroep, - subproductgroepgroep, - status, - sla_werkdgn, - plan_uitvoertijd, - datum, - plan_einddatum, - prioriteit, - ingezien, - geaccepteerd, - afgemeld, - verwerkt, -- nieuw - doorlooptijd_werkdgn, - acceptoptijd, - uitvoeringoptijd_sla, - uitvoeringoptijd_afspraak, - omschrijving, - opmerking, - mld_melding_parentkey, - tevredenheid, - tevredenheid_opm, - object_omschrijving, - geplande_actie, - opdracht_key, - opdracht_volgnummer, - opdracht_type, - opdracht_status, - opdracht_duur_gepland, - opdracht_datum, - opdracht_einddatum, - opdracht_plandatum, - opdracht_verzonden, - opdracht_geaccepteerd, - opdracht_afgemeld, - opdracht_verwerkt, -- nieuw - opdracht_doorlooptijd, - opdracht_omschrijving, - opdracht_opmerking, - opdracht_uitvoerende, - opdracht_contract, - opdracht_behandelaar, - opdracht_behandelaar_key, - opdracht_uren, - opdracht_uren_besteed, - opdracht_correctie, - opdracht_materiaal, - opdracht_uurtarief, - opdracht_kosten, - opdracht_kostenplaats, - opdracht_kostenplaats_oms -) -AS - SELECT m.mld_melding_key, - TO_CHAR (m.mld_melding_key) meldingnummer, - mld_meldbron_omschrijving meldbron, - m.mld_melding_start_key, - alg_district_omschrijving, - alg_locatie_code locatie, - alg_locatie_omschrijving locatie_omschrijving, - l.alg_locatie_key, - m.mld_alg_onroerendgoed_keys, - og.alg_gebouw_code gebouw, - og.alg_gebouw_naam gebouw_naam, - og.alg_gebouw_key, - og.alg_verdieping_code verdieping, - og.alg_verdieping_key, - og.alg_ruimte_nr ruimte, - og.alg_ruimte_omschrijving ruimte_omschrijving, - og.alg_ruimte_key, - m.mld_melding_ordernr melding_ordernr, - (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 COALESCE (sm.prs_kostensoort_key, - disc.prs_kostensoort_key) - FROM mld_stdmelding sm, mld_discipline disc - WHERE sm.mld_ins_discipline_key = - disc.ins_discipline_key - AND sm.mld_stdmelding_key = - s.mld_stdmelding_key)) - kostensoortgroep, - (SELECT ks.prs_kostensoort_oms - FROM prs_kostensoort ks - WHERE ks.prs_kostensoort_key = - (SELECT COALESCE (sm.prs_kostensoort_key, - disc.prs_kostensoort_key) - FROM mld_stdmelding sm, mld_discipline disc - WHERE sm.mld_ins_discipline_key = - disc.ins_discipline_key - AND sm.mld_stdmelding_key = - s.mld_stdmelding_key)) - kostensoort, - (SELECT k.prs_kostenplaats_nr - FROM prs_kostenplaats k - WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key) - kostenplaats, - (SELECT k.prs_kostenplaats_omschrijving - FROM prs_kostenplaats k - WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key) - kostenplaats_oms, - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all pf - WHERE pf.prs_perslid_key = m.prs_perslid_key) - melder, - m.prs_perslid_key, - (SELECT prs_afdeling_naam - FROM prs_afdeling afd, prs_perslid pp - WHERE afd.prs_afdeling_key = pp.prs_afdeling_key - AND pp.prs_perslid_key = m.prs_perslid_key) - afdeling, - (SELECT prs_afdeling_omschrijving - FROM prs_afdeling afd, prs_perslid pp - WHERE afd.prs_afdeling_key = pp.prs_afdeling_key - AND pp.prs_perslid_key = m.prs_perslid_key) - afdeling_omschrijving, - (SELECT prs_bedrijf_key - FROM prs_v_afdeling pva, prs_perslid pp - WHERE pva.prs_afdeling_key = pp.prs_afdeling_key - AND pp.prs_perslid_key = m.prs_perslid_key) - prs_bedrijf_key, - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all pf - WHERE pf.prs_perslid_key = - mld.getmeldinguser (m.mld_melding_key)) - invoerder, - fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key), - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all - WHERE prs_perslid_key = m.mld_melding_behandelaar_key), - m.mld_melding_behandelaar_key, - sd.ins_srtdiscipline_omschrijving soortmelding, - md.ins_discipline_key ins_discipline_key, - ins_srtdiscipline_prefix ins_srtdiscipline_prefix, - md.ins_discipline_omschrijving productgroep, - s.mld_stdmelding_omschrijving subproductgroep, - (SELECT smg.mld_stdmeldinggroep_naam - FROM mld_stdmeldinggroep smg - WHERE smg.mld_stdmeldinggroep_key = s.mld_stdmeldinggroep_key) - subproductgroepgroep, - (SELECT DECODE ( - COALESCE (par.mld_melding_status, - m.mld_melding_status), - 4, - DECODE (o.mld_opdr_key, - NULL, mld_statuses_omschrijving, - 'Niet opgelost'), - mld_statuses_omschrijving - ) - FROM mld_statuses sta - WHERE sta.mld_statuses_key = - COALESCE (par.mld_melding_status, - m.mld_melding_status)) - status, - COALESCE ( - par.sla_werkdgn, - aaxx.count_work_days (m.mld_melding_datum, - m.mld_melding_einddatum) - ) - sla_werkdgn, - COALESCE ( - par.plan_uitvoertijd, - DECODE (m.mld_melding_t_uitvoertijd.eenheid, - 'U', TO_NUMBER (NULL), - m.mld_melding_t_uitvoertijd.tijdsduur) - ) - plan_uitvoertijd, -- Altijd in dagen; anders NULL! - COALESCE (par.mld_melding_datum, m.mld_melding_datum) datum, - COALESCE (par.mld_melding_einddatum, m.mld_melding_einddatum) - plan_einddatum, - DECODE(mld_melding_spoed, 1, 'Kritiek', 2, 'Hoog', 3, 'Normaal', 4, 'Laag', 'Onbekend') prioritieit, - mld.getmeldingstatusdate (m.mld_melding_key, 3) ingezien, - mld.getmeldingstatusdate (m.mld_melding_key, 4) geaccepteerd, - COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5), - mld.getmeldingstatusdate (m.mld_melding_key, 1)) - afgemeld, - fac.gettrackingdate ('MLDVER', m.mld_melding_key) verwerkt, - aaxx.count_work_days_incltime ( - m.mld_melding_datum, - COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5), - mld.getmeldingstatusdate (m.mld_melding_key, 1), - SYSDATE) - ) - doorlooptijd_werkdgn, - CASE - WHEN mld_melding_acceptdatum_std < - COALESCE ( - fac.gettrackingdate ('MLDREJ', m.mld_melding_key), - COALESCE ( - fac.gettrackingdate ('MLDACP', - m.mld_melding_key), - SYSDATE - ) - ) - THEN - 0 - ELSE - 1 - END - acceptoptijd, - CASE - WHEN s.mld_stdmelding_slabewaken = 0 - OR m.mld_melding_indult = 1 - THEN - NULL - WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NOT NULL - THEN - 1 - ELSE - CASE - -- vooralsnog WHEN mld.getactualuitvoer(m.mld_melding_key).tijdsduur < - -- te traag m.mld_melding_t_uitvoertijd.tijdsduur + m.mld_melding_t_respijt.tijdsduur - WHEN m.mld_melding_einddatum_std > - COALESCE ( - fac.gettrackingdate ('MLDAFM', - m.mld_melding_key), - SYSDATE - ) - THEN - 1 - ELSE - 0 - END - END - uitvoeringoptijd_sla, - CASE - WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NOT NULL - THEN - 1 - ELSE - CASE - WHEN m.mld_melding_einddatum > - COALESCE ( - fac.gettrackingdate ('MLDAFM', - m.mld_melding_key), - SYSDATE - ) - THEN - 1 - ELSE - 0 - END - END - uitvoeringoptijd_afspraak, - m.mld_melding_omschrijving omschrijving, - m.mld_melding_opmerking opmerking, - m.mld_melding_parentkey, - m.mld_melding_satisfaction, - m.mld_melding_satisfaction_op, - (SELECT MAX (ins_deel_omschrijving) - FROM ins_deel id, mld_melding_object mo - WHERE mo.mld_melding_key = m.mld_melding_key - AND mo.ins_deel_key = id.ins_deel_key) - object_omschrijving, - DECODE ( - INSTR (mld_melding_opmerking, 'Automatisch gegenereerd door'), - 1, - 'yes', - 'no') - geplande_actie, - o.mld_opdr_key, - o.mld_opdr_bedrijfopdr_volgnr opdracht_volgnummer, - (SELECT mld_typeopdr_omschrijving - FROM mld_typeopdr t - WHERE o.mld_typeopdr_key = t.mld_typeopdr_key) - opdracht_type, - (SELECT REPLACE (mld_statusopdr_omschrijving, - 'Uitgegeven', - 'Toegekend') - mld_statusopdr_omschrijving - FROM mld_statusopdr sta - WHERE sta.mld_statusopdr_key = o.mld_statusopdr_key) - opdracht_status, - aaxx.count_work_days (o.mld_opdr_datumbegin, - o.mld_opdr_einddatum) - opdracht_duur_gepland, - o.mld_opdr_datumbegin opdracht_datum, - o.mld_opdr_einddatum opdracht_einddatum, - o.mld_opdr_plandatum opdracht_plandatum, - o.mld_opdr_verzonden opdracht_verzonden, - fac.gettrackingdate ('ORDACP', o.mld_opdr_key) - opdracht_geaccepteerd, - mld.getopdrachtstatusdate (o.mld_opdr_key, 6) opdracht_afgemeld, - fac.gettrackingdate ('ORDVER', mld_opdr_key) opdracht_verwerkt, - aaxx.count_work_days ( - o.mld_opdr_datumbegin, - mld.getopdrachtstatusdate (o.mld_opdr_key, 6) - ) - opdracht_doorlooptijd, - o.mld_opdr_omschrijving opdracht_omschrijving, - o.mld_opdr_opmerking opdracht_opmerking, - (SELECT naam - FROM mld_v_uitvoerende u - WHERE u.mld_uitvoerende_key = o.mld_uitvoerende_keys) - opdracht_uitvoerende, - NULL opdracht_contract, - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all - WHERE prs_perslid_key = o.prs_perslid_key) - behandelaar, - o.prs_perslid_key opdracht_contactpersoon, - DECODE (mld_statusopdr_key, 1, 0, 2, 0, -- afgewezen, niet akkoord - o.mld_opdr_uren) - opdracht_uren, - (SELECT COUNT (mld_opdr_uren_besteed) - FROM mld_opdr_uren ou - WHERE ou.mld_opdr_key = o.mld_opdr_key - AND mld_opdr_uren_status IN (3, -- goedgekeurd - 4) -- verwerkt - ) - uren_besteed, - DECODE ( - mld_statusopdr_key, - 1, - 0, - 2, - 0, - o.mld_opdr_kosten - - o.mld_opdr_materiaal - - (o.mld_opdr_uren * o.mld_opdr_uurloon) - ) - opdracht_correctie, - DECODE (mld_statusopdr_key, 1, 0, 2, 0, o.mld_opdr_materiaal) - opdracht_materiaal, - DECODE (mld_statusopdr_key, 1, 0, 2, 0, o.mld_opdr_uurloon) - opdracht_uurtarief, - DECODE (mld_statusopdr_key, 1, 0, 2, 0, o.mld_opdr_kosten) - opdracht_kosten, - (SELECT k.prs_kostenplaats_nr - FROM prs_kostenplaats k - WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key) - opdracht_kostenplaats, - (SELECT k.prs_kostenplaats_omschrijving - FROM prs_kostenplaats k - WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key) - opdracht_kostenplaats_oms - FROM mld_melding m, - mld_meldbron mb, - mld_stdmelding s, - alg_locatie l, - alg_district d, - alg_v_allonrgoed_gegevens og, - mld_discipline md, - ins_srtdiscipline sd, - mld_opdr o, - (SELECT mld_melding_key, - mld_melding_status, - mld_melding_datum, - mld_melding_einddatum, - aaxx.count_work_days (m.mld_melding_datum, - m.mld_melding_einddatum) - sla_werkdgn, - DECODE (m.mld_melding_t_uitvoertijd.eenheid, - 'U', TO_NUMBER (NULL), - m.mld_melding_t_uitvoertijd.tijdsduur) - plan_uitvoertijd - FROM mld_melding m - WHERE mld_melding_key IN - (SELECT mld_melding_parentkey - FROM mld_melding - WHERE mld_melding_parentkey IS NOT NULL)) par - WHERE s.mld_stdmelding_key = m.mld_stdmelding_key - AND m.mld_meldbron_key = mb.mld_meldbron_key - AND m.fac_activiteit_key IS NULL - AND m.mld_alg_locatie_key = l.alg_locatie_key(+) - AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key - AND md.ins_discipline_key = s.mld_ins_discipline_key - AND l.alg_district_key = d.alg_district_key(+) - AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+) - AND m.mld_melding_key = o.mld_melding_key(+) - AND m.mld_melding_parentkey = par.mld_melding_key(+) - UNION ALL - SELECT cnt_contract_key, - cnt_contract_nummer_intern - || '.' - || COALESCE (cnt_contract_versie, '0'), - TO_CHAR (NULL), - TO_NUMBER (NULL), - TO_CHAR (NULL), - TO_CHAR (NULL), - TO_CHAR (NULL), - TO_NUMBER (NULL), - TO_NUMBER (NULL), - TO_CHAR (NULL), - TO_CHAR (NULL), - TO_NUMBER (NULL), - TO_CHAR (NULL), - TO_NUMBER (NULL), - TO_CHAR (NULL), - TO_CHAR (NULL), - TO_NUMBER (NULL), - TO_CHAR (NULL), - kg.prs_kostensoortgrp_oms, - prs_kostensoort_oms, - kp.prs_kostenplaats_nr, - prs_kostenplaats_omschrijving, - prs_perslid_naam_full, - c.prs_perslid_key_beh, - prs_afdeling_naam, - prs_afdeling_omschrijving, - a.prs_bedrijf_key, - TO_CHAR (NULL), - TO_NUMBER (NULL), - TO_CHAR (NULL), - TO_NUMBER (NULL), - 'Contract', - c.ins_discipline_key, - 'C', - d.ins_discipline_omschrijving, - TO_CHAR (NULL), - TO_CHAR (NULL), - DECODE (SIGN (cnt_contract_looptijd_van - SYSDATE), - 1, - 'Toekomst', - -1, - DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE), - 1, - 'Actueel', - -1, - 'Verlopen')), - TO_NUMBER (NULL), - TO_NUMBER (NULL), -- Altijd in dagen; anders NULL! - TO_DATE (NULL), - TO_DATE (NULL), - TO_CHAR (NULL), -- prioriteit - TO_DATE (NULL), - TO_DATE (NULL), - TO_DATE (NULL), - TO_DATE (NULL), -- datum verwerkt - TO_NUMBER (NULL), - TO_NUMBER (NULL), -- acceptoptijd - TO_NUMBER (NULL), -- uitvoeringoptijd_sla - TO_NUMBER (NULL), -- uitvoeringoptijd_afspraak - c.cnt_contract_document, - TO_CHAR (NULL), - TO_NUMBER (NULL), - TO_NUMBER (NULL), -- tevredenheid - TO_CHAR (NULL), -- Opmering bij tevredenheid - TO_CHAR (NULL), -- object omschrijving - TO_CHAR (NULL), -- geplande actie - TO_NUMBER (NULL), - 1, - 'Contract Order', - DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE), - 1, - 'Uitgegeven', - -1, - 'Afgemeld'), - TO_NUMBER (NULL), - TO_DATE (NULL), - TO_DATE (NULL), - TO_DATE (NULL), - TO_DATE (NULL), - TO_DATE (NULL), - TO_DATE (NULL), - TO_DATE (NULL), -- opdracht verwerkt - TO_NUMBER (NULL), - TO_CHAR (NULL), - TO_CHAR (NULL), - b.prs_bedrijf_naam, - TO_NUMBER (NULL), - TO_CHAR (NULL), - TO_NUMBER (NULL), - TO_NUMBER (NULL), - TO_NUMBER (NULL), - TO_NUMBER (NULL), - TO_NUMBER (NULL), - TO_NUMBER (NULL), - c.cnt_contract_kosten, - kp.prs_kostenplaats_nr, - prs_kostenplaats_omschrijving - FROM cnt_contract c, - cnt_disc_params cd, - ins_tab_discipline d, - prs_kostensoort ks, - prs_kostensoortgrp kg, - prs_kostenplaats kp, - prs_v_perslid_fullnames_all pf, - prs_v_afdeling a, - prs_bedrijf b - WHERE c.ins_discipline_key = d.ins_discipline_key - AND d.ins_discipline_key = cd.cnt_ins_discipline_key - AND cd.cnt_srtcontract_type <> 6 -- Mantelcontracten worden (vooralsnog) uitgesloten AALB#28095 - AND d.prs_kostensoort_key = ks.prs_kostensoort_key(+) - AND ks.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+) - AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) - AND c.prs_perslid_key_beh = pf.prs_perslid_key - AND c.prs_afdeling_key_eig = a.prs_afdeling_key(+) - AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key - AND c.cnt_contract_verwijder IS NULL - UNION ALL - SELECT bes_bestelling_key, - TO_CHAR (bestelaanvraagnr), - TO_CHAR (NULL), - TO_NUMBER (NULL), - alg_district_omschrijving, - alg_locatie_code, - alg_locatie_omschrijving, - alg_locatie_key, - alg_gebouw_key, - alg_gebouw_code, - alg_gebouw_naam, - alg_gebouw_key, - TO_CHAR (NULL), -- verdieping - TO_NUMBER (NULL), - TO_CHAR (NULL), -- ruimte_nr - TO_CHAR (NULL), -- ruimte_omschrijving - TO_NUMBER (NULL), - bes_bestelling_ordernr, - kostensoortgroep, - kostensoort, - kpn, - kpn_omschrijving, - besteller, - prs_perslid_key_best, - afdeling_code, - afdeling_omschrijving, - prs_bedrijf_key, - invoerder, - invoerder_key, - TO_CHAR (NULL), -- Naam van de behandelaar - TO_NUMBER (NULL), -- Key van de behandelaar - 'Bestelling', - ins_discipline_key, - 'BE', - ins_discipline_omschrijving, - TO_CHAR (NULL), -- stdmelding - kostensoortgroep, - status, - sla_tijd, - sla_tijd, -- Altijd in dagen; anders NULL! - besteldatum, - TO_DATE (NULL), - TO_CHAR (NULL), -- prioriteit - TO_DATE (NULL), -- datum ingezien - acceptatie_datum, - ontvangen_datum, - TO_DATE (NULL), -- datum verwerkt - doorlooptijd_werkdgn, - TO_NUMBER (NULL), -- acceptoptijd - TO_NUMBER (NULL), -- uitvoeringoptijd_sla - TO_NUMBER (NULL), -- uitvoeringoptijd_afspraak - omschrijving, - TO_CHAR (NULL), -- opmerking - TO_NUMBER (NULL), - bes_bestelling_satisfaction, -- tevredenheid - bes_bestelling_satisfaction_op, -- opmerking bij tevredenheid - TO_CHAR (NULL), -- object omschrijving - TO_CHAR (NULL), -- geplande actie - bes_bestelopdr_key, - opdr_volgnr, - 'Purchase Order', - opdr_status, - DECODE (opdr_volgnr, NULL, TO_NUMBER (NULL), sla_tijd), - opdr_datum, -- opdr datum - TO_DATE (NULL), -- opdr_einddatum - TO_DATE (NULL), -- opdr plandatum - verzonden_datum, - TO_DATE (NULL), -- opdr geaccepteerd - opdr_ontv_datum, - TO_DATE (NULL), -- datum opdracht verwerkt - DECODE (opdr_volgnr, - NULL, TO_NUMBER (NULL), - doorlooptijd_werkdgn), - opdr_omschrijving, - bes_bestelopdr_opmerking, - leverancier, - TO_NUMBER (NULL), -- contract - TO_CHAR (NULL), -- behandelaar - TO_NUMBER (NULL), -- behandelaar_key - TO_NUMBER (NULL), -- uren - TO_NUMBER (NULL), -- uren_besteed - TO_NUMBER (NULL), -- correctie - TO_NUMBER (NULL), -- materiaal - TO_NUMBER (NULL), -- uurtarief - -- Indien de laatste factuur ontvangen is en de status van de factuur is goedgekeurd - -- of verwerkt zal het bedrag uit de factuur gebruikt worden. - COALESCE ( - (SELECT DECODE (SUM (laatste_factuur), - 0, TO_NUMBER (NULL), - SUM (fin_factuurregel_totaal)) - FROM aaxx_v_factuur_gegevens g - WHERE g.bes_bestelopdr_key = b.bes_bestelopdr_key - AND g.fin_factuur_statuses_key >= 6), - opdr_kosten - ) - opdr_kosten, - DECODE (opdr_volgnr, NULL, TO_CHAR (NULL), kpn), - DECODE (opdr_volgnr, NULL, TO_CHAR (NULL), kpn_omschrijving) - FROM (SELECT b.bes_bestelling_key bes_bestelling_key, - b.bes_bestelling_key bestelaanvraagnr, - di.alg_district_omschrijving, - l.alg_locatie_code, - l.alg_locatie_omschrijving, - l.alg_locatie_key, - g.alg_gebouw_code, - g.alg_gebouw_naam, - g.alg_gebouw_key, - b.bes_bestelling_ordernr, - b.bes_bestelling_datum besteldatum, - b.bes_bestelling_satisfaction, - b.bes_bestelling_satisfaction_op, - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all pf - WHERE pf.prs_perslid_key = p.prs_perslid_key) - besteller, - p.prs_perslid_key prs_perslid_key_best, - (SELECT MAX (prs_perslid_naam_full) - FROM prs_v_perslid_fullnames_all pf - WHERE pf.prs_perslid_key = - COALESCE ( - fac.gettrackinguserkey ( - 'BESNEW', - b.bes_bestelling_key - ), - fac.gettrackinguserkey ( - 'BESAP2', - b.bes_bestelling_key - ) - )) - invoerder, - COALESCE ( - fac.gettrackinguserkey ('BESNEW', - b.bes_bestelling_key), - fac.gettrackinguserkey ('BESAP2', - b.bes_bestelling_key) - ) - invoerder_key, - fac.gettrackingdate ('BESACP', b.bes_bestelling_key) - acceptatie_datum, - fac.gettrackingdate ('BESOTV', b.bes_bestelling_key) - ontvangen_datum, - aaxx_bestelling_items (b.bes_bestelling_key) - omschrijving, - (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 = - d.prs_kostensoort_key) - kostensoortgroep, - (SELECT ks.prs_kostensoort_oms - FROM prs_kostensoort ks - WHERE ks.prs_kostensoort_key = - d.prs_kostensoort_key) - kostensoort, - k.prs_kostenplaats_nr kpn, - k.prs_kostenplaats_omschrijving kpn_omschrijving, - a.prs_afdeling_naam afdeling_code, - a.prs_afdeling_omschrijving afdeling_omschrijving, - d.ins_discipline_key, - d.ins_discipline_omschrijving, - b.bes_bestelling_leverdatum afleverdatum, - aaxx.count_work_days ( - b.bes_bestelling_datum, - NVL ( - fac.gettrackingdate ('BESOTV', - b.bes_bestelling_key), - SYSDATE - ) - ) - doorlooptijd_werkdgn, - NVL ( - (SELECT bdp.bes_disc_params_leverdagen - FROM bes_disc_params bdp - WHERE d.ins_discipline_key = - bdp.bes_ins_discipline_key), - 0 - ) - sla_tijd, - (SELECT bes_bestellingstatuses_omschr - FROM bes_bestellingstatuses bs - WHERE bs.bes_bestellingstatuses_key = - b.bes_bestelling_status) - status, - (SELECT b.prs_bedrijf_naam - FROM prs_bedrijf b - WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key) - leverancier, - (SELECT bes_bestelopdrstatuses_omschr - FROM bes_bestelopdrstatuses bs - WHERE bs.bes_bestelopdrstatuses_key = - bo.bes_bestelopdr_status) - opdr_status, - bo.bes_bestelopdr_key, - fac.safe_to_number(SUBSTR ( - bo.bes_bestelopdr_id, - INSTR (bo.bes_bestelopdr_id, '/') - + 1 - )) - opdr_volgnr, - bo.bes_bestelopdr_datum opdr_datum, - fac.gettrackingdate ('BES2SN', bo.bes_bestelopdr_key) - verzonden_datum, - fac.gettrackingdate ('BES2AF', bo.bes_bestelopdr_key) - opdr_ontv_datum, - bes.bestelopdr_tooltip (bo.bes_bestelopdr_key) - opdr_omschrijving, - bes_bestelopdr_opmerking, - DECODE ( - bes_bestelopdr_status, - 8, - 0, -- geannuleerd - (SELECT SUM(bes_bestelopdr_item_aantal - * COALESCE ( - bes_bestelopdr_item_inkprijs, - bes_bestelopdr_item_prijs - )) - FROM bes_bestelopdr_item boi - WHERE boi.bes_bestelopdr_key = - bo.bes_bestelopdr_key) - ) - opdr_kosten, - bo.prs_bedrijf_key - FROM bes_bestelling b, - prs_perslid p, - prs_kostenplaats k, - prs_afdeling a, - mld_adres ma, - bes_bestelopdr bo, - ins_tab_discipline d, - alg_gebouw g, - alg_locatie l, - alg_district di, - (SELECT DISTINCT - bes_bestelling_key, bes_bestelopdr_key - FROM bes_bestelling_item bi, - bes_bestelopdr_item boi - WHERE bi.bes_bestelopdr_item_key = - boi.bes_bestelopdr_item_key) bes_opdr, - (SELECT DISTINCT - bes_bestelling_key, ins_discipline_key - FROM bes_bestelling_item bi, - bes_srtdeel sd, - bes_srtgroep sg - WHERE bi.bes_srtdeel_key = sd.bes_srtdeel_key - AND sd.bes_srtgroep_key = sg.bes_srtgroep_key) - cat, - ( SELECT mld_adres_key, - MAX (alg_gebouw_key) alg_gebouw_key - FROM alg_gebouw - GROUP BY mld_adres_key) adr_geb - WHERE b.prs_perslid_key = p.prs_perslid_key - AND b.prs_kostenplaats_key = k.prs_kostenplaats_key - AND p.prs_afdeling_key = a.prs_afdeling_key - AND b.mld_adres_key_lev = ma.mld_adres_key - AND b.bes_bestelling_key = - bes_opdr.bes_bestelling_key(+) - AND bes_opdr.bes_bestelopdr_key = - bo.bes_bestelopdr_key(+) - AND ma.alg_locatie_key = l.alg_locatie_key(+) - AND l.alg_district_key = di.alg_district_key(+) - AND b.bes_bestelling_key = cat.bes_bestelling_key - AND cat.ins_discipline_key = d.ins_discipline_key - AND ma.mld_adres_key = adr_geb.mld_adres_key(+) - AND adr_geb.alg_gebouw_key = g.alg_gebouw_key(+)) b; - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_MLD_KENM_MLD -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_melding -( - mld_melding_id, - mld_kenmerk_omschrijving, - mld_kenmerk_waarde -) -AS - SELECT mld_melding_key, - sk.mld_srtkenmerk_omschrijving, - aaxx_get_kenmerkwaarde (sk.mld_srtkenmerk_kenmerktype, - sk.fac_kenmerkdomein_key, - km.mld_kenmerkmelding_waarde) - FROM mld_kenmerk k, mld_srtkenmerk sk, mld_kenmerkmelding km - WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key - AND km.mld_kenmerk_key = k.mld_kenmerk_key; - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_MLD_KENM_OPD -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_opdracht -( - mld_opdr_id, - mld_kenmerk_omschrijving, - mld_kenmerk_waarde -) -AS - SELECT mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr, - sk.mld_srtkenmerk_omschrijving, - aaxx_get_kenmerkwaarde (sk.mld_srtkenmerk_kenmerktype, - sk.fac_kenmerkdomein_key, - ko.mld_kenmerkopdr_waarde) - FROM mld_kenmerk k, - mld_srtkenmerk sk, - mld_kenmerkopdr ko, - mld_opdr o - WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key - AND ko.mld_kenmerk_key = k.mld_kenmerk_key - AND ko.mld_opdr_key = o.mld_opdr_key; - - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_RES_ALGEMEEN -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_res_reservering -( - res_reservering_key, - res_rsv_ruimte_key, - nummer, - res_omschrijving, - res_opmerking, - res_ruimte_naam, - invoerdatum, - datum, - gastheer, - gastheer_key, - contact, - contact_key, - invoerder, - invoerder_key, - kostensoortgroep, - kostensoort, - kpn, - kpn_omschrijving, - prs_bedrijf_key, - afdeling_code, - afdeling_omschrijving, - district_omschrijving, - alg_locatie_key, - locatie, - locatie_omschrijving, - gebouw, - gebouw_omschrijving, - verdieping, - ruimte, - ruimte_key, - opstelling, - no_show, - shown_bezoekers, - mandaat, - personeelsnr, - werkplek, - ins_discipline_key, - catalogus_ins_discipline_key, - catalogus, - reserveerbare_ruimte, - bezoekers, - van, - tot, - duur, - status, - activiteit, - tevredenheid, - tevredenheid_opm, - voorziening_ins_discipline_key, - voorziening_catalogus, - voorziening_product, - voorziening_totaalprijs, - voorziening_van, - voorziening_tot, - voorziening_aantal, - voorziening_prijs, - voorziening_inkoopprijs, - voorziening_btw, - voorziening_afgemeld -) -AS - SELECT res.res_reservering_key, - rrr.res_rsv_ruimte_key, - res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr, - rrr.res_rsv_ruimte_omschrijving, - rrr.res_rsv_ruimte_opmerking, - rr.res_ruimte_nr, - COALESCE (rrr.res_rsv_ruimte_aanmaak, voorz.van), - COALESCE (rrr.res_rsv_ruimte_van, voorz.van), - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all pf - WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_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), - rrr.res_rsv_ruimte_contact_key, - (SELECT prs_perslid_naam_full - FROM fac_tracking t, - fac_srtnotificatie sn, - prs_v_perslid_fullnames_all pf - WHERE sn.fac_srtnotificatie_code = 'RESNEW' - AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key - AND t.prs_perslid_key = pf.prs_perslid_key - AND fac_tracking_refkey = rrr.res_rsv_ruimte_key), - (SELECT prs_perslid_key - FROM fac_tracking t, fac_srtnotificatie sn - WHERE sn.fac_srtnotificatie_code = 'RESNEW' - AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key - AND 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, - (SELECT prs_bedrijf_key - FROM prs_v_afdeling pva - WHERE pva.prs_afdeling_key = a.prs_afdeling_key), - a.prs_afdeling_naam, - a.prs_afdeling_omschrijving, - (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_gebouw_code - 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_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), - (SELECT alg_ruimte_nr - FROM alg_ruimte r - WHERE r.alg_ruimte_key = r2a.alg_ruimte_key), - r2a.alg_ruimte_key, - r2a.opstelling, - rrr.res_rsv_ruimte_noshow, - rrr.res_rsv_ruimte_bezoekers_shown, - NVL ( (SELECT pr.fac_profiel_limiet - FROM fac_profiel pr - WHERE p.fac_profiel_key = pr.fac_profiel_key), 0), - prs_perslid_nr, - wp2.prs_werkplek_aanduiding, - 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, - NVL ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0), - (SELECT res_status_bo_omschrijving - FROM res_status_bo rs - WHERE rs.res_status_bo_key = - COALESCE (voorz.res_status_bo_key, - rrr.res_status_bo_key)), - (SELECT res_activiteit_omschrijving - FROM res_activiteit ra - WHERE ra.res_activiteit_key = rrr.res_activiteit_key), - rrr.res_rsv_ruimte_satisfaction, - rrr.res_rsv_ruimte_satisfaction_op, - voorz.ins_discipline_key, - voorz.catalogus, - voorz.product, - voorz.totaalprijs, - voorz.van, - voorz.tot, - voorz.aantal, - voorz.prijs, - voorz.inkoopprijs, - voorz.btw, - voorz.afgemeld - FROM res_v_aanwezigrsv_ruimte rrr, - res_reservering res, - prs_kostenplaats k, - prs_perslid p, - prs_afdeling a, - res_ruimte_opstelling rro, - res_ruimte rr, - ( SELECT res_rsv_ruimte_key, - MAX (o.res_opstelling_omschrijving) opstelling, - MAX (ra.alg_ruimte_key) alg_ruimte_key - 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, alg_ruimte_key - FROM res_rsv_ruimte - WHERE alg_ruimte_key IS NOT NULL) r2a, - (SELECT rrd.res_rsv_ruimte_key res_rsv_ruimte_key, - d.ins_deel_omschrijving product, - rrd.res_status_bo_key, - 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, - 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, - NULL inkoopprijs, - NULL btw, - TO_DATE (NULL) afgemeld, - c.ins_discipline_key ins_discipline_key, - c.ins_discipline_omschrijving catalogus - 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, - ra.res_artikel_omschrijving product, - rra.res_status_bo_key, - NVL (rra.res_rsv_artikel_prijs, - rra.res_rsv_artikel_aantal * res_artikel_prijs) - totaalprijs, - 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, - res_artikel_inkoopprijs inkoopprijs, - res_artikel_btw btw, - TO_DATE (NULL) afgemeld, - c.ins_discipline_key ins_discipline_key, - c.ins_discipline_omschrijving catalogus - 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, - ( SELECT pw.prs_perslid_key, - MIN (prs_werkplek_aanduiding) - || DECODE (COUNT ( * ), 1, '', '...') - prs_werkplek_aanduiding - FROM prs_v_werkplek_gegevens wp, prs_perslidwerkplek pw - WHERE wp.prs_werkplek_key = pw.prs_werkplek_key - GROUP BY pw.prs_perslid_key) wp2 - WHERE rrr.res_reservering_key = res.res_reservering_key - AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+) - AND rro.res_ruimte_key = rr.res_ruimte_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_rsv_ruimte_host_key = p.prs_perslid_key - AND p.prs_afdeling_key = a.prs_afdeling_key - AND wp2.prs_perslid_key(+) = p.prs_perslid_key - AND (rrr.res_ruimte_opstel_key IS NOT NULL - OR voorz.res_rsv_ruimte_key IS NOT NULL); - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_RES_KENMERK -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_reservering -( - nummer, - kenmerk_omschrijving, - kenmerk_waarde -) -AS - SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr, - sk.res_srtkenmerk_omschrijving, - aaxx_get_kenmerkwaarde (sk.res_srtkenmerk_kenmerktype, - sk.fac_kenmerkdomein_key, - kw.res_kenmerkreservering_waarde) - FROM res_kenmerk k, - res_srtkenmerk sk, - res_kenmerkwaarde kw, - res_v_aanwezigrsv_ruimte rrr - WHERE rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key - AND kw.res_kenmerk_key = k.res_kenmerk_key - AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key; - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_BES_ALGEMEEN -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_bes_bestelling -( - bes_bestelling_key, - bestelaanvraagnr, - besteldatum, - besteller, - invoerder, - kostensoortgroep, - kostensoort, - kpn, - kpn_omschrijving, - prs_bedrijf_key, - afdeling_code, - afdeling_omschrijving, - alg_locatie_key, - locatie_code, - district_omschijving, - afleveradres, - mandaat, - personeelsnr, - werkplek, - ins_discipline_key, - catalogus, - groep, - afleverdatum, - doorlooptijd_werkdgn, - sla_tijd, - productcode, - prijs, - inkoopprijs, - status, - gefiatteerddoor, - tevredenheid, - tevredenheid_opm, - bestelopdrachtnummer, - leverancier, - aantal, - itemprijs, - iteminkoopprijs, - productomschrijving, - itemposnr -) -AS - SELECT b.bes_bestelling_key bes_bestelling_key, - b.bes_bestelling_key bestelaanvraagnr, - b.bes_bestelling_datum besteldatum, - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all pf - WHERE pf.prs_perslid_key = p.prs_perslid_key) - besteller, - (SELECT MAX (prs_perslid_naam_full) - FROM prs_v_perslid_fullnames_all pf - WHERE pf.prs_perslid_key = - COALESCE(fac.gettrackinguserkey ('BESNEW', b.bes_bestelling_key), fac.gettrackinguserkey ('BESAP2', b.bes_bestelling_key))) - invoerder, - (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 bes_discipline disc - WHERE disc.ins_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 bes_discipline disc - WHERE disc.ins_discipline_key = d.ins_discipline_key)) - kostensoort, - k.prs_kostenplaats_nr kpn, - k.prs_kostenplaats_omschrijving kpn_omschrijving, - (SELECT prs_bedrijf_key - FROM prs_v_afdeling pva - WHERE pva.prs_afdeling_key = a.prs_afdeling_key) - prs_bedrijf_key, - a.prs_afdeling_naam afdeling_code, - a.prs_afdeling_omschrijving afdeling_omschrijving, - ma.alg_locatie_key alg_locatie_key, - (SELECT alg_locatie_code - FROM alg_locatie l - WHERE l.alg_locatie_key = ma.alg_locatie_key) - locatie_code, - (SELECT alg_district_omschrijving - FROM alg_locatie l, alg_district d - WHERE l.alg_district_key = d.alg_district_key - AND l.alg_locatie_key = ma.alg_locatie_key) - district_omschijving, - ma.mld_adres_naam afleveradres, - NVL ( (SELECT pr.fac_profiel_limiet - FROM fac_profiel pr - WHERE p.fac_profiel_key = pr.fac_profiel_key), 0) - mandaat, - prs_perslid_nr personeelsnr, - wp2.prs_werkplek_aanduiding werkplek, - d.ins_discipline_key ins_discipline_key, - d.ins_discipline_omschrijving catalogus, - sg.bes_srtgroep_omschrijving groep, - b.bes_bestelling_leverdatum afleverdatum, - TO_CHAR(aaxx.count_work_days ( - b.bes_bestelling_datum, - NVL ( - fac.gettrackingdate ('BESOTV', b.bes_bestelling_key), - SYSDATE))) - doorlooptijd_werkdgn, - NVL ( (SELECT bdp.bes_disc_params_leverdagen - FROM bes_disc_params bdp - WHERE d.ins_discipline_key = bdp.bes_ins_discipline_key), - 0) - sla_tijd, - sd.bes_srtdeel_nr productcode, - DECODE(bes_bestelling_status, - 8,0, -- geannuleerd - bi.bes_bestelling_item_prijs * bi.bes_bestelling_item_aantal) prijs, - DECODE(bes_bestelling_status, - 8,0, -- geannuleerd - NVL (bi.bes_bestelling_item_inkprijs, bi.bes_bestelling_item_prijs) - * bi.bes_bestelling_item_aantal) - inkoopprijs, - (SELECT bes_bestellingstatuses_omschr - FROM bes_bestellingstatuses bs - WHERE bs.bes_bestellingstatuses_key = b.bes_bestelling_status) - status, - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all pf - WHERE pf.prs_perslid_key = b.bes_bestelling_fiat_user) - gefiatteerddoor, - b.bes_bestelling_satisfaction, - b.bes_bestelling_satisfaction_op, - bo.bes_bestelopdr_id bestelopdrachtnummer, - (SELECT b.prs_bedrijf_naam - FROM prs_bedrijf b - WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key) - leverancier, - bi.bes_bestelling_item_aantal aantal, - DECODE (bes_bestelling_status, - 8, 0, -- geannuleerd - bi.bes_bestelling_item_prijs) itemprijs, - DECODE (bes_bestelling_status, - 8,0, -- geannuleerd - NVL (bi.bes_bestelling_item_inkprijs, bi.bes_bestelling_item_prijs)) - iteminkoopprijs, - sd.bes_srtdeel_omschrijving productomschrijving, - boi.bes_bestelopdr_item_posnr itemposnr - FROM bes_bestelling b, - prs_perslid p, - prs_kostenplaats k, - prs_afdeling a, - mld_adres ma, - ( SELECT pw.prs_perslid_key, - MIN (prs_werkplek_aanduiding) - || DECODE (COUNT ( * ), 1, '', '...') - prs_werkplek_aanduiding - FROM prs_v_werkplek_gegevens wp, prs_perslidwerkplek pw - WHERE wp.prs_werkplek_key = pw.prs_werkplek_key - GROUP BY pw.prs_perslid_key) wp2, - bes_bestelling_item bi, - bes_bestelopdr_item boi, - bes_bestelopdr bo, - bes_srtdeel sd, - bes_srtgroep sg, - ins_tab_discipline d - WHERE b.prs_perslid_key = p.prs_perslid_key - AND b.prs_kostenplaats_key = k.prs_kostenplaats_key - AND p.prs_afdeling_key = a.prs_afdeling_key - AND b.mld_adres_key_lev = ma.mld_adres_key - AND wp2.prs_perslid_key(+) = p.prs_perslid_key - AND 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 bi.bes_srtdeel_key = sd.bes_srtdeel_key - AND sd.bes_srtgroep_key = sg.bes_srtgroep_key - AND sg.ins_discipline_key = d.ins_discipline_key; - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_BES_KENMERK -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_bestelling -( - nummer, - kenmerk_omschrijving, - kenmerk_waarde -) -AS - SELECT kb.bes_bestelling_key, - sk.bes_srtkenmerk_omschrijving, - aaxx_get_kenmerkwaarde (sk.bes_srtkenmerk_kenmerktype, - sk.fac_kenmerkdomein_key, - bes_kenmerkbestell_waarde) - FROM bes_kenmerk k, - bes_srtkenmerk sk, - fac_kenmerkdomein fkd, - bes_kenmerkbestell kb - WHERE kb.bes_kenmerk_key = k.bes_kenmerk_key - AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key; - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_BEZ_BEZOEKERS -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_bez_bezoekers -( - bezoekers_key, - afspraak_begin, - afspraak_ontvangen, - ontvangen_door, - afspraak_eind, - afspraak_afgemeld, - afgemeld_door, - contactpersoon, - gastheer, - locatie, - gebouw, - verdieping, - ruimte, - actie, - opmerking, - parkeerplaats, - ingevoerd_door, - ingevoerd, - res_rsv_ruimte_key, - reservering, - bezoeker, - bedrijf -) -AS - SELECT b.bez_bezoekers_key, - a.bez_afspraak_datum, - bez_bezoekers_done, - bezdon.prs_perslid_key, - bez_afspraak_eind, - bez_bezoekers_out, - bezout.prs_perslid_key, - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all pf - WHERE pf.prs_perslid_key = a.bez_afspraak_contact_key) - contact, - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all pf - WHERE pf.prs_perslid_key = a.bez_afspraak_host_key) - HOST, - alg_locatie_code || '-' || alg_locatie_omschrijving, - (SELECT alg_gebouw_upper || '-' || alg_gebouw_naam - FROM alg_gebouw g - WHERE g.alg_gebouw_key = og.alg_gebouw_key) - gebouw, - (SELECT alg_verdieping_volgnr - FROM alg_verdieping v - WHERE v.alg_verdieping_key = og.alg_verdieping_key) - verdieping, - (SELECT alg_ruimte_nr || '-' || alg_ruimte_omschrijving - FROM alg_ruimte r - WHERE r.alg_ruimte_key = og.alg_ruimte_key) - ruimte, - (SELECT bez_actie_omschrijving - FROM bez_actie ac - WHERE ac.bez_actie_key = a.bez_actie_key) - actie, - a.bez_afspraak_opmerking opmerking, - (SELECT MAX (ins_deel_omschrijving) - FROM res_v_aanwezigrsv_deel rrd, res_deel rd, ins_deel d - WHERE rrd.bez_bezoekers_key = b.bez_bezoekers_key - AND rrd.res_deel_key = rd.res_deel_key - AND rd.res_ins_deel_key = d.ins_deel_key) - parkeer, - bezmut.prs_perslid_key, - bezmut.fac_tracking_datum, - a.res_rsv_ruimte_key res_rsv_ruimte_key, - (SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr - FROM res_rsv_ruimte rrr - WHERE rrr.res_rsv_ruimte_key = a.res_rsv_ruimte_key) - reservering_nummer, - b.bez_afspraak_naam, - b.bez_afspraak_bedrijf - FROM bez_bezoekers b, - bez_afspraak a, - alg_v_onroerendgoed og, - alg_locatie l, - (SELECT fac_tracking_refkey, prs_perslid_key - FROM fac_tracking t, fac_srtnotificatie sn - WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key - AND sn.fac_srtnotificatie_code = 'BEZDON' - AND NOT EXISTS - (SELECT fac_tracking_refkey - FROM fac_tracking t2 - WHERE t2.fac_srtnotificatie_key = - t.fac_srtnotificatie_key - AND t2.fac_tracking_refkey = t.fac_tracking_refkey - AND t2.fac_tracking_key > t.fac_tracking_key)) - bezdon, - (SELECT fac_tracking_refkey, prs_perslid_key - FROM fac_tracking t, fac_srtnotificatie sn - WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key - AND sn.fac_srtnotificatie_code = 'BEZOUT' - AND NOT EXISTS - (SELECT fac_tracking_refkey - FROM fac_tracking t2 - WHERE t2.fac_srtnotificatie_key = - t.fac_srtnotificatie_key - AND t2.fac_tracking_refkey = t.fac_tracking_refkey - AND t2.fac_tracking_key > t.fac_tracking_key)) - bezout, - (SELECT fac_tracking_refkey, prs_perslid_key, fac_tracking_datum - FROM fac_tracking t, fac_srtnotificatie sn - WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key - AND sn.fac_srtnotificatie_code = 'BEZMUT' - AND NOT EXISTS - (SELECT fac_tracking_refkey - FROM fac_tracking t2 - WHERE t2.fac_srtnotificatie_key = - t.fac_srtnotificatie_key - AND t2.fac_tracking_refkey = t.fac_tracking_refkey - AND t2.fac_tracking_key > t.fac_tracking_key)) - bezmut - WHERE b.bez_afspraak_key = a.bez_afspraak_key - AND a.alg_onrgoed_keys = og.alg_onroerendgoed_keys(+) - AND a.alg_locatie_key = l.alg_locatie_key(+) - AND b.bez_bezoekers_key = bezdon.fac_tracking_refkey(+) - AND b.bez_bezoekers_key = bezout.fac_tracking_refkey(+) - AND a.bez_afspraak_key = bezmut.fac_tracking_refkey(+); - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_ALG_ONRGOED -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_alg_onrgoed -( - alg_onroerendgoed_keys, - alg_onroerendgoed_code, - alg_onroerendgoed_omschrijving, - alg_onroerendgoed_verwijder, - alg_type, - alg_regio_key, - alg_regio_omschrijving, - alg_district_key, - alg_district_omschrijving, - alg_locatie_key, - alg_locatie_code, - alg_locatie_omschrijving, - alg_terreinsector_key, - alg_terreinsector_code, - alg_terreinsector_naam, - alg_gebouw_key, - alg_gebouw_code, - alg_gebouw_naam, - alg_gebouw_verantwoordelijke, - alg_gebouw_verantwoordelijke2, - alg_gebouw_bvo, - alg_gebouw_bez, - alg_gebouw_werkdagen, - alg_gebouw_beginuur, - alg_gebouw_einduur, - alg_gebouw_functie, - alg_gebouw_x, - alg_gebouw_y, - alg_verdieping_key, - alg_verdieping_code, - alg_verdieping_omschrijving, - alg_ruimte_key, - alg_ruimte_nr, - alg_ruimte_omschrijving, - alg_ruimte_m2, - alg_ruimte_m2_alt1, - alg_ruimte_m2_alt2 -) -as - select alg_onroerendgoed_keys, - decode (alg_type, - 'T', - alg_terreinsector_code, - 'G', - alg_gebouw_code, - 'V', - alg_verdieping_code, - 'R', - alg_ruimte_nr), - decode (alg_type, - 'T', - alg_terreinsector_naam, - 'G', - alg_gebouw_naam, - 'V', - alg_verdieping_omschrijving, - 'R', - alg_ruimte_omschrijving), - decode (alg_type, - 'T', - alg_terreinsector_verwijder, - 'G', - alg_gebouw_verwijder, - 'V', - alg_verdieping_verwijder, - 'R', - alg_ruimte_verwijder), - aog.alg_type, - r.alg_regio_key, - r.alg_regio_omschrijving, - d.alg_district_key, - d.alg_district_omschrijving, - l.alg_locatie_key, - l.alg_locatie_code, - l.alg_locatie_omschrijving, - t.alg_terreinsector_key, - t.alg_terreinsector_code, - t.alg_terreinsector_naam, - g.alg_gebouw_key, - g.alg_gebouw_code, - g.alg_gebouw_naam, - g.prs_perslid_key_verantw, - g.prs_perslid_key_verantw2, - ( SELECT SUM (alg_ruimte_bruto_vloeropp) alg_gebouw_bvo - FROM alg_ruimte r, alg_verdieping v - WHERE v.alg_verdieping_key = r.alg_verdieping_key - AND r.alg_ruimte_verwijder IS NULL - AND alg_gebouw_key = 1701) alg_gebouw_bvo, - alg_gebouw_bez, - alg_gebouw_werkdagen, - DECODE(alg_gebouw_beginuur, NULL, TO_CHAR(NULL), 0, TO_CHAR(NULL), - TO_CHAR(TRUNC(alg_gebouw_beginuur)) || ':' ||TO_CHAR(( alg_gebouw_beginuur - TRUNC(alg_gebouw_beginuur))*60, 'FM00') - ) alg_gebouw_beginuur, - DECODE(alg_gebouw_einduur, NULL, TO_CHAR(NULL), 0, TO_CHAR(NULL), - TO_CHAR(TRUNC(alg_gebouw_einduur)) || ':' ||TO_CHAR(( alg_gebouw_einduur - TRUNC(alg_gebouw_einduur))*60, 'FM00') - ) alg_gebouw_einduur, - ( SELECT alg_srtgebouw_omschrijving - FROM alg_srtgebouw sg - WHERE sg.alg_srtgebouw_key = g.alg_srtgebouw_key) alg_gebouw_functie, - alg_gebouw_x, - alg_gebouw_y, - v.alg_verdieping_key, - v.alg_verdieping_code, - v.alg_verdieping_omschrijving, - ru.alg_ruimte_key, - ru.alg_ruimte_nr, - ru.alg_ruimte_omschrijving, - ru.alg_ruimte_bruto_vloeropp, - ru.alg_ruimte_opp_alt1, - ru.alg_ruimte_opp_alt2 - from alg_v_allonroerendgoed aog, - alg_ruimte ru, - alg_verdieping v, - alg_terreinsector t, - alg_gebouw g, - alg_locatie l, - alg_district d, - alg_regio r - where aog.alg_gebouw_key = g.alg_gebouw_key(+) - and aog.alg_terreinsector_key = t.alg_terreinsector_key(+) - and aog.alg_verdieping_key = v.alg_verdieping_key(+) - and aog.alg_ruimte_key = ru.alg_ruimte_key(+) - and g.alg_locatie_key = l.alg_locatie_key - and l.alg_district_key = d.alg_district_key - and d.alg_regio_key = r.alg_regio_key - union all - select to_number (null), - alg_locatie_code, - alg_locatie_omschrijving, - l.alg_locatie_verwijder, - 'L', - r.alg_regio_key, - alg_regio_omschrijving, - d.alg_district_key, - alg_district_omschrijving, - l.alg_locatie_key, - alg_locatie_code, - alg_locatie_omschrijving, - to_number (null), - to_char (null), - to_char (null), - to_number (null), - to_char (null), - to_char (null), - to_number (null), - to_number (null), - to_number (null), -- alg_gebouw_bvo, - to_number (null), -- alg_gebouw_bez, - to_number (null), -- alg_gebouw_werkdagen, - to_char (null), -- alg_gebouw_beginuur, - to_char (null), -- alg_gebouw_einduur, - to_char (null), -- alg_gebouw_functie, - to_number (null), -- alg_gebouw_x, - to_number (null), -- alg_gebouw_y, - to_number (null), - to_char (null), - to_char (null), - to_number (null), - to_char (null), - to_char (null), - to_number (null), - to_number (null), - to_number (null) - from alg_locatie l, alg_district d, alg_regio r - where l.alg_district_key = d.alg_district_key - and d.alg_regio_key = r.alg_regio_key - union all - select to_number (null), - to_char (null), - alg_district_omschrijving, - d.alg_district_verwijder, - 'D', - r.alg_regio_key, - alg_regio_omschrijving, - d.alg_district_key, - alg_district_omschrijving, - to_number (null), - to_char (null), - to_char (null), - to_number (null), - to_char (null), - to_char (null), - to_number (null), - to_char (null), - to_char (null), - to_number (null), - to_number (null), - to_number (null), -- alg_gebouw_bvo, - to_number (null), -- alg_gebouw_bez, - to_number (null), -- alg_gebouw_werkdagen, - to_char (null), -- alg_gebouw_beginuur, - to_char (null), -- alg_gebouw_einduur, - to_char (null), -- alg_gebouw_functie, - to_number (null), -- alg_gebouw_x, - to_number (null), -- alg_gebouw_y, - to_number (null), - to_char (null), - to_char (null), - to_number (null), - to_char (null), - to_char (null), - to_number (null), - to_number (null), - to_number (null) - from alg_district d, alg_regio r - where d.alg_regio_key = r.alg_regio_key - union all - select to_number (null), - to_char (null), - alg_regio_omschrijving, - r.alg_regio_verwijder, - 'R', - r.alg_regio_key, - alg_regio_omschrijving, - to_number (null), - to_char (null), - to_number (null), - to_char (null), - to_char (null), - to_number (null), - to_char (null), - to_char (null), - to_number (null), - to_char (null), - to_char (null), - to_number (null), - to_number (null), - to_number (null), -- alg_gebouw_bvo, - to_number (null), -- alg_gebouw_bez, - to_number (null), -- alg_gebouw_werkdagen, - to_char (null), -- alg_gebouw_beginuur, - to_char (null), -- alg_gebouw_einduur, - to_char (null), -- alg_gebouw_functie, - to_number (null), -- alg_gebouw_x, - to_number (null), -- alg_gebouw_y, - to_number (null), - to_char (null), - to_char (null), - to_number (null), - to_char (null), - to_char (null), - to_number (null), - to_number (null), - to_number (null) - from alg_regio r; - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_ALG_KENMERK -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_onrgoed -( - alg_onrgoed_key, - alg_kenmerk_niveau, - alg_kenmerk_omschrijving, - alg_kenmerk_waarde -) -AS - SELECT aog.alg_onrgoed_key, - k.alg_kenmerk_niveau, - k.alg_kenmerk_omschrijving, - aaxx_get_kenmerkwaarde (k.alg_kenmerk_kenmerktype, - k.fac_kenmerkdomein_key, - aog.alg_onrgoedkenmerk_waarde) - FROM alg_kenmerk k, alg_onrgoedkenmerk aog - WHERE k.alg_kenmerk_key = aog.alg_kenmerk_key - AND aog.alg_onrgoedkenmerk_verwijder IS NULL; - - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_INS_SENSOR_STATUS -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_ins_sensor_status -( - ruimte_key, - sensor_id, - tijdstip_aan, - tijdstip_uit -) -AS - SELECT d.ins_alg_ruimte_key, - d.ins_deel_omschrijving, - h.ins_deel_statedate, - h.uit - FROM (SELECT h.*, - LEAD (ins_deel_statedate) - OVER (PARTITION BY ins_deel_key ORDER BY ins_deel_statedate) - AS uit - FROM ins_deel_state_history h) h, - ins_srtdeel sd, - ins_deel d - WHERE h.ins_deel_key = d.ins_deel_key - AND d.ins_srtdeel_key = sd.ins_srtdeel_key - AND h.ins_deel_state = '1' - ORDER BY d.ins_alg_ruimte_key, h.ins_deel_statedate; - - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_INSPECTIE -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_inspectie -( - deelsrtcontrole_key, - deel_key, - deel_omschrijving, - srtcontrole_info, - srtcontrole_niveau, - srtcontrole_omschrijving, - srtcontrole_periode, - srtcontrole_eenheid, - deelsrtcontrole_datum, - deelsrtcontrole_gepland, - deelsrtcontrole_status, - deelsrtcontrole_status_next, - controlemode_omschrijving, - controlemode_opmerking, - deelsrtcontrole_opmerking, - prs_perslid_key, - gecontroleerd_door -) -AS - SELECT dc.ins_deelsrtcontrole_key, - d.ins_deel_key, - d.ins_deel_omschrijving, - sc.ins_srtcontrole_info, - sc.ins_srtcontrole_niveau, - sc.ins_srtcontrole_omschrijving, - COALESCE ( - (SELECT ins_srtcontroledl_xcp_periode - FROM ins_srtcontroledl_xcp - WHERE d.ins_deel_key = ins_deel_key - AND ins_srtcontrole_key = sc.ins_srtcontrole_key), - sc.ins_srtcontrole_periode - ) ins_srtcontrole_periode, - DECODE ( - COALESCE ( - (SELECT ins_srtcontroledl_xcp_eenheid - FROM ins_srtcontroledl_xcp - WHERE d.ins_deel_key = ins_deel_key - AND ins_srtcontrole_key = sc.ins_srtcontrole_key), - sc.ins_srtcontrole_eenheid - ), - 0, - 'Uurlijks', - 1, - 'Dagelijks', - 2, - 'Wekelijks', - 3, - 'Maandelijks', - 4, - 'Jaarlijks', - 'Onbekend' ) ins_srtcontrole_eenheid, - ins_deelsrtcontrole_datum, - (SELECT MAX (dc2.ins_deelsrtcontrole_datum) - + sc.ins_srtcontrole_periode - FROM ins_deelsrtcontrole dc2 - WHERE dc2.ins_deelsrtcontrole_datum < - dc.ins_deelsrtcontrole_datum - AND dc2.ins_deel_key = dc.ins_deel_key - AND dc2.ins_srtcontrole_key = dc.ins_srtcontrole_key - AND dc2.ins_controlemode_key = dc.ins_controlemode_key) - ins_deelsrtcontrole_gepland, - (SELECT DECODE ( - SIGN( MAX (dc2.ins_deelsrtcontrole_datum) - + sc.ins_srtcontrole_periode - - dc.ins_deelsrtcontrole_datum), - -1, - 'Te laat', - 'Op tijd') - FROM ins_deelsrtcontrole dc2 - WHERE dc2.ins_deelsrtcontrole_datum < - dc.ins_deelsrtcontrole_datum - AND dc2.ins_deel_key = dc.ins_deel_key - AND dc2.ins_srtcontrole_key = dc.ins_srtcontrole_key - AND dc2.ins_controlemode_key = dc.ins_controlemode_key) - ins_deelsrtcontrole_status, - (SELECT DECODE ( - COUNT ( * ), - 0, - DECODE ( - SIGN( (dc.ins_deelsrtcontrole_datum - + sc.ins_srtcontrole_periode) - - SYSDATE), - -1, - 'Te laat', - '')) - status_fut - FROM ins_deelsrtcontrole dc2 - WHERE dc2.ins_deelsrtcontrole_datum > - dc.ins_deelsrtcontrole_datum - AND dc2.ins_deel_key = dc.ins_deel_key - AND dc2.ins_srtcontrole_key = dc.ins_srtcontrole_key - AND dc2.ins_controlemode_key = dc.ins_controlemode_key) - ins_deelsrtcontrole_next, - cm.ins_controlemode_oms, - cm.ins_controlemode_opmerking, - dc.ins_deelsrtcontrole_opmerking, - dc.prs_perslid_key, - pf.prs_perslid_naam_full - FROM ins_deelsrtcontrole dc, - ins_deel d, - ins_srtcontrole sc, - ins_controlemode cm, - prs_v_perslid_fullnames_all pf - WHERE dc.ins_deel_key = d.ins_deel_key - AND dc.ins_srtcontrole_key = sc.ins_srtcontrole_key - AND dc.ins_controlemode_key = cm.ins_controlemode_key - AND dc.prs_perslid_key = pf.prs_perslid_key(+); - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_INS_OBJECT -------------------------------------------------------------------------------- - -CREATE OR REPLACE VIEW aaxx_v_dwh_ins_object -( - ins_deel_key, - identificatie, - beschrijving, - discipline_omschrijving, - groep_omschrijving, - objectsoort_omschrijving, - objectsoort_code, - registratiedatum, - vervaldatum, - koppel_type, - plaats_eigenaar, - beheerder -) -AS - SELECT ins_deel_key, - ins_deel_omschrijving identificatie, - ins_deel_opmerking beschrijving, - ins_discipline_omschrijving discipline_omschrijving, - ins_srtgroep_omschrijving groep_omschrijving, - ins_srtdeel_omschrijving objectsoort_omschrijving, - ins_srtdeel_code objectsoort_code, - ins_deel_aanmaak registratiedatum, - ins_deel_vervaldatum vervaldatum, - 'Afdeling' koppel_type, - (SELECT d.prs_afdeling_omschrijving - FROM prs_v_afdeling d - WHERE prs_afdeling_key = - COALESCE (ins_alg_ruimte_key_org, ins_alg_ruimte_key)) - plaats_eigenaar, - pf1.prs_perslid_naam_full beheerder - FROM ins_v_aanwezigdeel d, - ins_v_aanwezigsrtdeel srt, - ins_v_aanwezigsrtgroep sg, - ins_v_aanwezigdiscipline disc, - prs_v_perslid_fullnames_all pf1, - prs_v_afdeling_boom pb - WHERE srt.ins_srtdeel_key = d.ins_srtdeel_key - AND sg.ins_srtgroep_key = srt.ins_srtgroep_key - AND sg.ins_discipline_key = disc.ins_discipline_key - AND prs_perslid_key_beh = pf1.prs_perslid_key(+) - AND d.ins_alg_ruimte_key = pb.prs_afdeling_key - AND d.ins_deel_module = 'INS' - AND d.ins_deel_parent_key IS NULL - AND COALESCE (ins_alg_ruimte_type_org, ins_alg_ruimte_type) = 'A' - UNION - SELECT ins_deel_key, - ins_deel_omschrijving, - ins_deel_opmerking, - ins_discipline_omschrijving, - ins_srtgroep_omschrijving, - ins_srtdeel_omschrijving, - ins_srtdeel_code, - ins_deel_aanmaak, - ins_deel_vervaldatum, - 'Persoon', - COALESCE (pf2.prs_perslid_naam_full, 'onbekend') eigenaar, - pf1.prs_perslid_naam_full - FROM ins_v_aanwezigdeel d, - ins_v_aanwezigsrtdeel srt, - ins_v_aanwezigsrtgroep sg, - ins_v_aanwezigdiscipline disc, - prs_v_perslid_fullnames_all pf1, - prs_v_perslid_fullnames_all pf2 - WHERE srt.ins_srtdeel_key = d.ins_srtdeel_key - AND sg.ins_srtgroep_key = srt.ins_srtgroep_key - AND sg.ins_discipline_key = disc.ins_discipline_key - AND prs_perslid_key_beh = pf1.prs_perslid_key(+) - AND d.ins_deel_module = 'INS' - AND d.ins_deel_parent_key IS NULL - AND COALESCE (ins_alg_ruimte_type_org, ins_alg_ruimte_type) = 'P' - AND pf2.prs_perslid_key(+) = - COALESCE (ins_alg_ruimte_key_org, ins_alg_ruimte_key) - UNION - SELECT ins_deel_key, - ins_deel_omschrijving, - ins_deel_opmerking, - ins_discipline_omschrijving, - ins_srtgroep_omschrijving, - ins_srtdeel_omschrijving, - ins_srtdeel_code, - ins_deel_aanmaak, - ins_deel_vervaldatum, - DECODE (o.alg_onroerendgoed_type, - 'R', - 'Ruimte', - 'T', - 'Terrein', - 'W', - 'Werkplek'), - o.alg_plaatsaanduiding || ' (' - || DECODE ( - o.alg_onroerendgoed_type, - 'R', - (SELECT r.alg_ruimte_omschrijving - FROM alg_ruimte r - WHERE r.alg_ruimte_key = d.ins_alg_ruimte_key), - 'T', - (SELECT t.alg_terreinsector_naam - FROM alg_terreinsector t - WHERE t.alg_terreinsector_key = d.ins_alg_ruimte_key), - 'W', - (SELECT r.alg_ruimte_omschrijving - FROM alg_ruimte r, prs_werkplek w - WHERE r.alg_ruimte_key = w.prs_alg_ruimte_key - AND w.prs_werkplek_key = d.ins_alg_ruimte_key) - ) - || ')' - eigenaar, - pf1.prs_perslid_naam_full - FROM ins_v_aanwezigdeel d, - ins_v_aanwezigsrtdeel srt, - ins_v_aanwezigsrtgroep sg, - ins_v_aanwezigdiscipline disc, - prs_v_perslid_fullnames_all pf1, - ins_v_alg_overzicht o - WHERE srt.ins_srtdeel_key = d.ins_srtdeel_key - AND sg.ins_srtgroep_key = srt.ins_srtgroep_key - AND sg.ins_discipline_key = disc.ins_discipline_key - AND prs_perslid_key_beh = pf1.prs_perslid_key(+) - AND d.ins_deel_module = 'INS' - AND d.ins_deel_parent_key IS NULL - AND COALESCE (ins_alg_ruimte_type_org, ins_alg_ruimte_type) IN - ('T', 'R', 'W') - AND o.alg_onroerendgoed_keys = - COALESCE (ins_alg_ruimte_key_org, ins_alg_ruimte_key) - AND o.alg_onroerendgoed_type = - COALESCE (ins_alg_ruimte_type_org, ins_alg_ruimte_type) - AND o.alg_locatie_key = d.ins_alg_locatie_key; - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_KENMERK_INSPECTIE -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_inspectie -( - deelsrtcontrole_key, - ins_kenmerk_omschrijving, - ins_kenmerk_waarde -) -AS - SELECT ins_deelsrtcontrole_key deelsrtcontrole_key, - srt.ins_srtkenmerk_omschrijving kenmerk_omschrijving, - aaxx_get_kenmerkwaarde (srt.ins_srtkenmerk_kenmerktype, - srt.fac_kenmerkdomein_key, - kds.ins_kmdeelsrtcontr_waarde) - kenmerk_waarde - FROM ins_kmdeelsrtcontr kds, ins_kenmerk k, ins_srtkenmerk srt - WHERE kds.ins_kenmerk_key = k.ins_kenmerk_key - AND srt.ins_srtkenmerk_key = k.ins_srtkenmerk_key - AND ins_kmdeelsrtcontr_verwijder IS NULL; - - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_UREN -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_uren -( - mld_opdr_id, - prs_perslid_key, - datum, - uren_besteed, - uren_opmerking, - uren_status -) -AS - SELECT ug.mld_melding_key || '/' || ug.mld_opdr_bedrijfopdr_volgnr, - ug.prs_perslid_key, - ug.mld_opdr_uren_datum, - ug.mld_opdr_uren_besteed, - ug.mld_opdr_uren_opmerking, - REPLACE(ug.uren_status_tekst, '&'||'nbsp;', ' ') uren_status_tekst - FROM aaxx_v_exact_uren_gegevens ug; - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_UREN_IMPROD -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_uren_improd -( - prs_perslid_key, - code_improductief, - omschr_improductief, - datum, - uren_besteed, - uren_opmerking, - uren_status -) -AS - SELECT ou.prs_perslid_key, - io.mld_impropdr_code, - io.mld_impropdr_omschrijving, - ou.mld_opdr_uren_datum, - ou.mld_opdr_uren_besteed, - ou.mld_opdr_uren_opmerking, - REPLACE(lx.fac_locale_xsl_tekst, '&'||'nbsp;', ' ') fac_locale_xsl_tekst - FROM mld_opdr_uren ou, - mld_impropdr io, - (SELECT * - FROM fac_locale_xsl - WHERE fac_locale_xsl_lang = 'NL') lx - WHERE ou.mld_impropdr_key = io.mld_impropdr_key - AND lx.fac_locale_xsl_label = - 'lcl_mld_uren_status_' || ou.mld_opdr_uren_status; - -------------------------------------------------------------------------------- --- DATAWAREHOUSE - DWH_TRACKING -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_tracking -AS - SELECT t.fac_tracking_refkey ref_key, - sn.fac_srtnotificatie_xmlnode soort, - t.fac_tracking_datum datum, - sn.fac_srtnotificatie_code actiecode, - t.fac_tracking_oms omschrijving, - t.prs_perslid_key prs_perslid_key - FROM fac_tracking t, - fac_srtnotificatie sn - WHERE sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key - AND sn.fac_srtnotificatie_xmlnode IS NOT NULL; - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_BUDGET_TRACKER -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_dwh_budget_tracker -( - nummer, - datum, - status, - laatste_actie, - vakgroeptype, - vakgroep, - kostensoort_code, - kostensoort_omschrijving, - financiele_waarde, - kostensoortgroep_omschrijving, - melding, - omschrijving, - organisatie, - naam, - kostenplaats, - kostenplaats_omschrijving, - plaats, - locatie, - gebouw, - code_exact, - opdracht_status, - uitvoerende, - contactpersoon, - uren, - uurloon, - materiaal, - kosten, - gefactureerd -) -AS - SELECT m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr nummer, - o.mld_opdr_datumbegin datum, - (SELECT mld_statusopdr_omschrijving - FROM mld_statusopdr s - WHERE o.mld_statusopdr_key = s.mld_statusopdr_key) - status, - mld.getopdrachtstatusdate (o.mld_opdr_key, mld_statusopdr_key) - laatste_actie, - sd.ins_srtdiscipline_prefix vakgroeptype, - md.ins_discipline_omschrijving vakgroep, - COALESCE (kstd.prs_kostensoort_oms, kvg.prs_kostensoort_oms) - kostensoort_code, - COALESCE (kstd.prs_kostensoort_opmerking, - kvg.prs_kostensoort_opmerking) - kostensoort_omschrijving, - COALESCE (kstd.prs_kostensoort_refcode, - kvg.prs_kostensoort_refcode) - financiele_waarde, - (SELECT prs_kostensoortgrp_oms - FROM prs_kostensoortgrp ksg - WHERE ksg.prs_kostensoortgrp_key = - COALESCE (kstd.prs_kostensoortgrp_key, - kvg.prs_kostensoortgrp_key)) - kostensoortgroep_omschrijving, - std.mld_stdmelding_omschrijving melding, - mld_melding_omschrijving omschrijving, - (SELECT d.prs_afdeling_naam - FROM prs_v_afdeling d - WHERE p.prs_afdeling_key = d.prs_afdeling_key) - organisatie, - p.prs_perslid_naam - || DECODE (NVL (p.prs_perslid_voorletters, ''), - '', '', - ', ' || p.prs_perslid_voorletters) - || DECODE (NVL (p.prs_perslid_tussenvoegsel, ''), - '', '', - ' ' || p.prs_perslid_tussenvoegsel) - || DECODE (NVL (p.prs_perslid_voornaam, ''), - '', '', - ' (' || p.prs_perslid_voornaam || ')') - naam, - (SELECT k.prs_kostenplaats_nr - FROM prs_kostenplaats k - WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key) - kostenplaats, - (SELECT k.prs_kostenplaats_omschrijving - FROM prs_kostenplaats k - WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key) - kostenplaats_omschrijving, - (SELECT alg_locatie_code - FROM alg_locatie l - WHERE m.mld_alg_locatie_key = l.alg_locatie_key) - || (SELECT CASE COALESCE (g.alg_gebouw_code, '') - WHEN '' THEN '' - ELSE '-' || g.alg_gebouw_code - END - || CASE COALESCE (g.alg_verdieping_code, '') - WHEN '' THEN '' - ELSE '-' || g.alg_verdieping_code - END - || CASE COALESCE (g.alg_ruimte_nr, '') - WHEN '' THEN '' - ELSE '-' || g.alg_ruimte_nr - END - FROM alg_v_allonrgoed_gegevens g - WHERE m.mld_alg_onroerendgoed_keys = g.alg_onroerendgoed_keys) - plaats, - alg_locatie_code locatie, - alg_gebouw_code gebouw, - COALESCE ( (SELECT exact_code - FROM aaxx_v_exact_code_gebouw ogk - WHERE ogk.alg_gebouw_key = v.alg_gebouw_key), - v.alg_gebouw_code) - code_exact, - (SELECT mld_statusopdr_omschrijving - FROM mld_statusopdr so - WHERE o.mld_statusopdr_key = so.mld_statusopdr_key) - opdracht_status, - COALESCE ( (SELECT prs_bedrijf_naam - FROM prs_bedrijf b - WHERE o.mld_uitvoerende_keys = prs_bedrijf_key), - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all - WHERE o.mld_uitvoerende_keys = prs_perslid_key)) - uitvoerende, - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all pf - WHERE o.prs_perslid_key = pf.prs_perslid_key) - contactpersoon, - o.mld_opdr_uren uren, - o.mld_opdr_uurloon uurloon, - o.mld_opdr_materiaal materiaal, - o.mld_opdr_kosten kosten, - COALESCE ( (SELECT SUM (f.fin_factuur_totaal) - FROM aaxx_v_aanwezigfactuur f - WHERE f.mld_opdr_key = o.mld_opdr_key), 0) - gefactureerd - FROM mld_melding m, - mld_discipline md, - ins_srtdiscipline sd, - alg_v_allonrgoed_gegevens v, - alg_locatie l, - alg_district di, - prs_perslid p, - mld_opdr o, - mld_stdmelding std, - prs_kostensoort kstd, - prs_kostensoort kvg - WHERE m.mld_alg_locatie_key = l.alg_locatie_key(+) - AND l.alg_district_key = di.alg_district_key(+) - AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+) - AND m.mld_alg_onroerendgoed_keys = v.alg_onroerendgoed_keys(+) - AND m.prs_perslid_key = p.prs_perslid_key - AND m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = md.ins_discipline_key - AND m.mld_melding_key = o.mld_melding_key - AND std.prs_kostensoort_key = kstd.prs_kostensoort_key(+) - AND md.prs_kostensoort_key = kvg.prs_kostensoort_key(+) - UNION ALL - SELECT cnt_contract_nummer_intern, - c.cnt_contract_looptijd_van, - DECODE ( - SIGN (cnt_contract_looptijd_van - SYSDATE), - 1, - 'Toekomst', - -1, - DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE), - 1, 'Actueel', - -1, 'Verlopen')) - status, - c.cnt_contract_looptijd_tot laatste_actie, - 'Contract' vakgroeptype, - d.ins_discipline_omschrijving vakgroep, - k.prs_kostensoort_oms kostensoort_code, - k.prs_kostensoort_opmerking kostensoort_omschrijving, - k.prs_kostensoort_refcode financiele_waarde, - (SELECT prs_kostensoortgrp_oms - FROM prs_kostensoortgrp ksg - WHERE ksg.prs_kostensoortgrp_key = k.prs_kostensoortgrp_key) - kostensoortgroep_omschrijving, - c.cnt_contract_omschrijving melding, - SUBSTR ( - REPLACE (cnt_contract_document, CHR (13) || CHR (10), ''), - 1, - 2000) - omschrijving, - prs_afdeling_naam organisatie, - p.prs_perslid_naam - || DECODE (NVL (p.prs_perslid_voorletters, ''), - '', '', - ', ' || p.prs_perslid_voorletters) - || DECODE (NVL (p.prs_perslid_tussenvoegsel, ''), - '', '', - ' ' || p.prs_perslid_tussenvoegsel) - || DECODE (NVL (p.prs_perslid_voornaam, ''), - '', '', - ' (' || p.prs_perslid_voornaam || ')') - naam, - kp.prs_kostenplaats_nr kostenplaats, - kp.prs_kostenplaats_omschrijving kostenplaats_omschrijving, - alg_locatie_code || '-' || alg_gebouw_code plaats, - alg_locatie_code locatie, - alg_gebouw_code gebouw, - COALESCE ( (SELECT exact_code - FROM aaxx_v_exact_code_gebouw ogk - WHERE ogk.alg_gebouw_key = g.alg_gebouw_key), - g.alg_gebouw_code) - code_exact, - '-' opdracht_status, - prs_bedrijf_naam uitvoerende, - '-' contactpersoon, - 0 uren, - 0 uurloon, - 0 materiaal, - COALESCE ( - DECODE ( - cnt_gew.cnt_contract_plaats_gewicht, - 0, - 1, - (cp.cnt_contract_plaats_gewicht - / cnt_gew.cnt_contract_plaats_gewicht) - * c.cnt_contract_kosten), - 0) - kosten, - COALESCE ( - DECODE ( - cnt_gew.cnt_contract_plaats_gewicht, - 0, - 1, - (cp.cnt_contract_plaats_gewicht - / cnt_gew.cnt_contract_plaats_gewicht) - * (SELECT SUM (fin_factuur_totaal) - FROM aaxx_v_aanwezigfactuur f - WHERE f.cnt_contract_key = c.cnt_contract_key)), - 0) - gefactureerd - FROM cnt_contract c, - cnt_discipline d, - cnt_contract_plaats cp, - prs_bedrijf b, - prs_kostensoort k, - prs_kostenplaats kp, - prs_afdeling a, - prs_perslid p, - alg_locatie l, - alg_gebouw g, - prs_contactpersoon cop, - ( SELECT cnt_contract_key, - SUM (cnt_contract_plaats_gewicht) - cnt_contract_plaats_gewicht - FROM cnt_contract_plaats - GROUP BY cnt_contract_key) cnt_gew, - (SELECT cp.cnt_contract_plaats_key, alg_locatie_key, alg_gebouw_key - FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp - WHERE aog.alg_type = cp.cnt_alg_plaats_code - AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) cog - WHERE c.cnt_contract_key = cp.cnt_contract_key(+) - AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+) - AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key - AND c.ins_discipline_key = d.ins_discipline_key - AND d.prs_kostensoort_key = k.prs_kostensoort_key(+) - AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) - AND c.prs_afdeling_key_eig = a.prs_afdeling_key - AND c.prs_perslid_key_beh = p.prs_perslid_key - AND cp.cnt_contract_plaats_key = cog.cnt_contract_plaats_key(+) - AND c.prs_contactpersoon_key = cop.prs_contactpersoon_key(+) - AND cog.alg_locatie_key = l.alg_locatie_key(+) - AND cog.alg_gebouw_key = g.alg_gebouw_key(+) - AND cnt_contract_verwijder IS NULL; - -------------------------------------------------------------------------------- --- EXPORTFUNCTIE - DWH_SEARCH_RESULTS -------------------------------------------------------------------------------- - -CREATE OR REPLACE VIEW aaxx_v_dwh_gui_counter -( - fac_gui_counter_key, - fac_gui_counter_group, - fac_gui_counter_info, - fac_gui_counter_refkey, - fac_gui_counter_choice, - fac_gui_counter_result, - fac_gui_counter_date, - prs_perslid_key, - prs_perslid_naam_full -) -AS - SELECT fgc.fac_gui_counter_key, - fgc.fac_gui_counter_group, - fgc.fac_gui_counter_info, - fgc.fac_gui_counter_refkey, - choice.fac_gui_counter_info fac_gui_counter_choice, - result.fac_gui_counter_info fac_gui_counter_result, - fac_gui_counter_date, - fgc.prs_perslid_key, - prs_perslid_naam_full - FROM fac_gui_counter fgc, - prs_v_perslid_fullnames pf, - (SELECT fac_gui_counter_refkey, fac_gui_counter_info - FROM fac_gui_counter fgc - WHERE fac_gui_counter_info IS NOT NULL - AND fac_gui_counter_group = 'searchchoice') choice, - (SELECT fac_gui_counter_refkey, fac_gui_counter_info - FROM fac_gui_counter fgc - WHERE fac_gui_counter_info IS NOT NULL - AND fac_gui_counter_group = 'searchresult') result - WHERE fac_gui_counter_group = 'search' - AND fgc.fac_gui_counter_info IS NOT NULL - AND fgc.prs_perslid_key = pf.prs_perslid_key - AND choice.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key - AND result.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key - UNION ALL - SELECT fgc.fac_gui_counter_key, - fgc.fac_gui_counter_group, - fac_usrrap_omschrijving, - fgc.fac_gui_counter_refkey, - NULL, - NULL, - fac_gui_counter_date, - fgc.prs_perslid_key, - prs_perslid_naam_full - FROM fac_gui_counter fgc, prs_v_perslid_fullnames pf, fac_usrrap fr - WHERE fgc.fac_gui_counter_group = 'report' - AND fgc.prs_perslid_key = pf.prs_perslid_key(+) - AND fr.fac_usrrap_key(+) = fgc.fac_gui_counter_refkey - UNION ALL - SELECT fgc.fac_gui_counter_key, - fgc.fac_gui_counter_group, - COALESCE (fac_menu_altlabel, lcl.l (fac_menuitems_label)), - fgc.fac_gui_counter_refkey, - NULL, - NULL, - fac_gui_counter_date, - fgc.prs_perslid_key, - prs_perslid_naam_full - FROM fac_gui_counter fgc, - prs_v_perslid_fullnames pf, - fac_menu m, - fac_menuitems mi - WHERE fgc.fac_gui_counter_group = 'menu' - AND fgc.prs_perslid_key = pf.prs_perslid_key(+) - AND m.fac_menu_key = fac_gui_counter_refkey - AND mi.fac_menuitems_key(+) = m.fac_menuitems_key; - -------------------------------------------------------------------------------- --- Rapportage tbv berekening aantal key users -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_lcrap_key_stats -( - PRS_PERSLID_KEY, - PRS_PERSLID_OSLOGIN, - PRS_PERSLID_OSLOGIN2, - PRS_PERSLID_NR, - PRS_PERSLID_NAAM_FULL, - PRS_AFDELING_NAAM, - LEV_WRITE_CNT, - MAX_ALG_WRITE, - MAX_PRS_WRITE, - LEV_READ_CNT, - MAX_ALG_READ, - MAX_PRS_READ, - AUT_GROEP_CNT -) -AS - SELECT x.prs_perslid_key, - x.prs_perslid_oslogin, - x.prs_perslid_oslogin2, - x.prs_perslid_nr, - x.prs_perslid_naam_full, - prs_afdeling_naam, - COALESCE (y.lev_write_cnt, 0) lev_write_cnt, - y.max_alg_write, - y.max_prs_write, - COALESCE (z.lev_read_cnt, 0) lev_read_cnt, - z.max_alg_read, - z.max_prs_read, - x.aut_groep_cnt - FROM ( SELECT fn.prs_perslid_key, - p.prs_perslid_oslogin, - p.prs_perslid_oslogin2, - kl.prs_kenmerklink_waarde prs_perslid_nr, - prs_afdeling_naam, - fn.prs_perslid_naam_full, - COUNT (DISTINCT gg.fac_groep_key) aut_groep_cnt - FROM prs_v_aanwezigperslid p, - prs_afdeling a, - prs_v_perslid_fullnames fn, - fac_gebruikersgroep gg, - (SELECT prs_kenmerklink_waarde, prs_link_key - FROM prs_kenmerklink - WHERE prs_kenmerk_key = 3) kl -- personeelsnummer AAFM - WHERE a.prs_afdeling_key = p.prs_afdeling_key - AND p.prs_perslid_oslogin IS NOT NULL - AND p.prs_perslid_key = fn.prs_perslid_key - AND p.prs_perslid_key = gg.prs_perslid_key - AND p.prs_perslid_key = kl.prs_link_key(+) - GROUP BY fn.prs_perslid_key, - fn.prs_perslid_naam_full, - prs_perslid_oslogin, - prs_perslid_oslogin2, - kl.prs_kenmerklink_waarde, - prs_afdeling_naam) x - LEFT JOIN ( SELECT gg.prs_perslid_key, - COUNT (DISTINCT gr.fac_groeprechten_key) - lev_write_cnt, - MIN (gr.fac_gebruiker_alg_level_write) - max_alg_write, - MIN (gr.fac_gebruiker_prs_level_write) - max_prs_write - FROM fac_gebruikersgroep gg, - fac_groeprechten gr, - fac_functie f - WHERE gg.fac_groep_key = gr.fac_groep_key - AND gr.fac_functie_key = f.fac_functie_key - AND fac_functie_groep IN (1, 2) - AND (gr.fac_gebruiker_alg_level_write <> 9 - OR gr.fac_gebruiker_prs_level_write <> 9) - GROUP BY gg.prs_perslid_key) y - ON x.prs_perslid_key = y.prs_perslid_key - LEFT JOIN ( SELECT gg.prs_perslid_key, - COUNT (DISTINCT gr.fac_groeprechten_key) - lev_read_cnt, - MIN (gr.fac_gebruiker_alg_level_read) - max_alg_read, - MIN (gr.fac_gebruiker_prs_level_read) - max_prs_read - FROM fac_gebruikersgroep gg, - fac_groeprechten gr, - fac_functie f - WHERE gg.fac_groep_key = gr.fac_groep_key - AND gr.fac_functie_key = f.fac_functie_key - AND fac_functie_groep IN (1, 2) - AND (gr.fac_gebruiker_alg_level_read <> 9 - OR gr.fac_gebruiker_prs_level_read <> 9) - GROUP BY gg.prs_perslid_key) z - ON x.prs_perslid_key = z.prs_perslid_key - WHERE COALESCE (y.lev_write_cnt, 0) > 0 - OR COALESCE (z.lev_read_cnt, 0) > 0; - - ---============================================================================= --- IMPORTFUNCTIES -------------------------------------------------------------------------------- - -------------------------------------------------------------------------------- --- IMPORTFUNCTIE - Import srtruimte -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_rap_srtruimte ( - key, - omschrijving, - code, - werkplek, - verhuurbaar, - huur, - sk_onderhoud, - sk_utility, - sk_overig, - prijs5 - ) -AS - SELECT alg_srtruimte_key, - alg_srtruimte_omschrijving, - alg_srtruimte_code, - prs_bevat_werkplek, - prs_verhuurbaar, - alg_srtruimte_prijs, - alg_srtruimte_prijs2, - alg_srtruimte_prijs3, - alg_srtruimte_prijs4, - alg_srtruimte_prijs5 - FROM alg_v_aanwezigsrtruimte; - -CREATE OR REPLACE PROCEDURE aaxx_import_srtruimte ( - p_import_key IN NUMBER -) -AS - CURSOR c_cursor - IS - SELECT * - FROM fac_imp_file - WHERE fac_import_key = p_import_key - ORDER BY fac_imp_file_index; - - v_newline VARCHAR2 (1000); - v_aanduiding VARCHAR2 (1000); -- Import line - v_field VARCHAR2 (100); -- Import field - v_fielddelimitor VARCHAR2 (1); -- Field seperator - v_errormsg VARCHAR (200); - v_errorhint VARCHAR (200); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_skipfield VARCHAR2 (100); - -- De importvelden - v_key VARCHAR2 (100); - v_omschrijving VARCHAR2 (100); - v_code VARCHAR2 (100); - v_werkplek VARCHAR2 (100); - v_verhuurbaar VARCHAR2 (100); - v_prijs1 VARCHAR2 (100); - v_prijs2 VARCHAR2 (100); - v_prijs3 VARCHAR2 (100); - v_prijs4 VARCHAR2 (100); - v_prijs5 VARCHAR2 (100); - header_found BOOLEAN; - -BEGIN - -- Init - header_found := FALSE; - v_fielddelimitor := ';'; - - -- Clear my previous imported rows - DELETE FROM aaxx_imp_srtruimte; - - FOR rec1 IN c_cursor - LOOP - BEGIN - v_newline := rec1.fac_imp_file_line; - v_aanduiding := v_newline; - - IF SUBSTR (v_newline, 1, 3) = '?' - THEN - -- EF BB BF aangetroffen - fac.imp_writelog (p_import_key, - 'W', - 'Byte Order Mark aangetroffen', - 'Bestand heeft onbehandeld UTF-8 formaat.' - ); - v_newline := SUBSTR (v_newline, 4); - END IF; - - fac.imp_getfield (v_newline, v_fielddelimitor, v_key); - fac.imp_getfield (v_newline, v_fielddelimitor, v_omschrijving); - fac.imp_getfield (v_newline, v_fielddelimitor, v_code); - fac.imp_getfield (v_newline, v_fielddelimitor, v_werkplek); - fac.imp_getfield (v_newline, v_fielddelimitor, v_verhuurbaar); - fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs1); - fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs2); - fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs3); - fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs4); - fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs5); - - - -- Skip until a valid header is found - IF UPPER(v_key) = 'KEY' - AND UPPER(v_code) = 'CODE' - AND UPPER(v_prijs1) = 'HUUR' - AND UPPER(v_prijs5) = 'PRIJS5' - THEN - -- Sla de kopregel over. - header_found := TRUE; - ELSIF (header_found AND v_omschrijving IS NOT NULL) - THEN - INSERT INTO aaxx_imp_srtruimte - (alg_srtruimte_key, - alg_srtruimte_omschrijving, - alg_srtruimte_code, - prs_bevat_werkplek, - prs_verhuurbaar, - alg_srtruimte_prijs, - alg_srtruimte_prijs2, - alg_srtruimte_prijs3, - alg_srtruimte_prijs4, - alg_srtruimte_prijs5 ) - VALUES (fac.safe_to_number (v_key), - SUBSTR (v_omschrijving, 1, 30), - SUBSTR (v_code, 1, 10), - fac.safe_to_number (SUBSTR(v_werkplek, 1)), - fac.safe_to_number (SUBSTR(v_verhuurbaar, 1)), - fac.safe_to_number (REPLACE(v_prijs1,',','.')), - fac.safe_to_number (REPLACE(v_prijs2,',','.')), - fac.safe_to_number (REPLACE(v_prijs3,',','.')), - fac.safe_to_number (REPLACE(v_prijs4,',','.')), - fac.safe_to_number (REPLACE(v_prijs5,',','.')) - ); - END IF; - - COMMIT; - END; - END LOOP; - - IF NOT header_found - THEN - fac.imp_writelog (p_import_key, - 'E', - 'Geen geldige header aangetroffen', - 'Bestand is geen geldig ruimtesoort importbestand.' - ); - 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.imp_writelog (p_import_key, 'E', SUBSTR (v_errormsg, 1, 1000), v_aanduiding); - -- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden. - DELETE FROM aaxx_imp_srtruimte; -END; -/ - - -CREATE OR REPLACE PROCEDURE aaxx_update_srtruimte (p_import_key IN NUMBER) -AS - CURSOR c - IS - SELECT * - FROM aaxx_imp_srtruimte - WHERE alg_srtruimte_omschrijving is not NULL; - - v_oldcount NUMBER; - v_newcount NUMBER; - v_prs_bedrijf_key NUMBER; - v_prs_dienst_key NUMBER; - v_alg_locatie_key NUMBER; - v_alg_gebouw_key NUMBER; - v_errormsg VARCHAR (1000); - v_error_hint VARCHAR (1000); - oracle_err_mes VARCHAR2 (150); - oracle_err_num VARCHAR2 (150); - currentversion fac_module.fac_module_version%TYPE; -BEGIN - - SELECT MAX (fac_module_version) - INTO currentversion - FROM fac_module; - - fac.imp_writelog (p_import_key, - 'I', - 'AAFM ruimtesoort import version ' || currentversion, - '$Revision$' - ); - - SELECT COUNT (*) - INTO v_newcount - FROM alg_v_aanwezigsrtruimte; - - IF v_newcount = 0 THEN - fac.imp_writelog (p_import_key, - 'E', - 'AAFM ruimtesoort import bevat geen records', - '$Revision$' - ); - return; - END IF; - - -- How many active records are now present? - SELECT COUNT (*) - INTO v_oldcount - FROM alg_v_aanwezigsrtruimte; - - FOR rec IN c - LOOP - BEGIN - IF rec.alg_srtruimte_key IS NULL THEN - v_errormsg := 'Toevoegen ruimtesoort [' || rec.alg_srtruimte_code || '] '; - INSERT INTO alg_srtruimte ( - alg_srtruimte_omschrijving, - alg_srtruimte_code, - prs_bevat_werkplek, - prs_verhuurbaar, - alg_srtruimte_prijs, - alg_srtruimte_prijs2, - alg_srtruimte_prijs3, - alg_srtruimte_prijs4, - alg_srtruimte_prijs5) - VALUES ( - rec.alg_srtruimte_omschrijving, - rec.alg_srtruimte_code, - rec.prs_bevat_werkplek, - rec.prs_verhuurbaar, - rec.alg_srtruimte_prijs, - rec.alg_srtruimte_prijs2, - rec.alg_srtruimte_prijs3, - rec.alg_srtruimte_prijs4, - rec.alg_srtruimte_prijs5); - ELSE - v_errormsg := 'Aanpassen ruimtesoort [' || rec.alg_srtruimte_code || '] '; - UPDATE alg_srtruimte SET - alg_srtruimte_omschrijving = rec.alg_srtruimte_omschrijving, - alg_srtruimte_code = rec.alg_srtruimte_code, - prs_bevat_werkplek = rec.prs_bevat_werkplek, - prs_verhuurbaar = rec.prs_verhuurbaar, - alg_srtruimte_prijs = rec.alg_srtruimte_prijs, - alg_srtruimte_prijs2 = rec.alg_srtruimte_prijs2, - alg_srtruimte_prijs3 = rec.alg_srtruimte_prijs3, - alg_srtruimte_prijs4 = rec.alg_srtruimte_prijs4, - alg_srtruimte_prijs5 = rec.alg_srtruimte_prijs5 - WHERE alg_srtruimte_key = rec.alg_srtruimte_key; - END IF; - - COMMIT; - EXCEPTION - WHEN OTHERS - THEN - v_error_hint := v_errormsg; - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - v_errormsg - || 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_errormsg, - v_error_hint - ); - COMMIT; -- tbv logging - END; - END LOOP; - - SELECT COUNT (*) - INTO v_newcount - FROM alg_v_aanwezigsrtruimte; - - fac.imp_writelog (p_import_key, - 'S', - 'Aantal ruimte soorten vooraf: ' || TO_CHAR (v_oldcount) || ' nu: ' || TO_CHAR (v_newcount), - '' - ); - -END; -/ - --------------------------------- --- import facturen --------------------------------- - --- rapportage factuurvoorstel inkoopfacturen. Het resultaat kan met onderstaande importroutines ingelezen worden. -CREATE OR REPLACE VIEW aaxx_v_rap_inkoopfactuur -( - fclt_x_bedrijfnaam, - fclt_x_afrond_datum, - leveranciernr, - factuurnr, - factuurdatum, - ordernr, - locatie, - afleverdatum, - omschrijving, - aantal, - kostprijs, - btwbedrag, - btw, - docid, - debiteurnummer, - opmerking, - lastinvoice, - btwverlegd, - gebouw, - orderomschrijving, - referentie, - afmelddatum, - uren, - materiaal -) -AS - SELECT prs_bedrijf_naam bedrijfsnaam, - tr2.fac_tracking_datum datum, - prs_leverancier_nr leveranciernr, - NULL factuurnr, - NULL factuurdatum, - (SELECT sd.ins_srtdiscipline_prefix - || m.mld_melding_key - || '/' - || o.mld_opdr_bedrijfopdr_volgnr - FROM mld_melding m, - mld_stdmelding std, - ins_tab_discipline d, - ins_srtdiscipline sd - WHERE o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = d.ins_discipline_key - AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key) - ordernr, - (SELECT alg_locatie_code || ' - ' || alg_locatie_omschrijving - FROM alg_locatie l - WHERE l.alg_locatie_key = m.mld_alg_locatie_key) - locatie, - TO_CHAR (mld_opdr_datumbegin, 'ddmmyyyy') afleverdatum, - NULL omschrijving, - 1 aantal, - o.mld_opdr_kosten kostprijs, - NULL btwbedrag, - 21 btw, - NULL docid, - NULL debiteurnummer, - NULL opmerking, - 'Ja' lastinvoice, - 'Nee' btwverlegd, - (SELECT og.alg_gebouw_code || ' - ' || og.alg_gebouw_naam - FROM alg_v_allonrgoed_gegevens og - WHERE m.mld_alg_onroerendgoed_keys = - og.alg_onroerendgoed_keys) - gebouw, - REPLACE (REPLACE (o.mld_opdr_omschrijving, CHR (13), ''), - CHR (10), - '') - orderomschrijving, - (SELECT mld_kenmerkopdr_waarde - FROM mld_srtkenmerk sk, mld_kenmerk k, mld_kenmerkopdr ko - WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key - AND mld_kenmerk_niveau = 'O' - AND ko.mld_kenmerk_key = k.mld_kenmerk_key - AND ko.mld_kenmerkopdr_verwijder IS NULL - AND ko.mld_opdr_key = o.mld_opdr_key - AND mld_srtkenmerk_omschrijving LIKE - 'Ref. Nr. Leverancier%') - referentie, - tr.fac_tracking_datum afmelddatum, - o.mld_opdr_uren, - o.mld_opdr_materiaal - FROM prs_bedrijf b, - mld_opdr o, - mld_melding m, - mld_typeopdr ot, - fac_tracking tr, - fac_tracking tr2, - fac_srtnotificatie str, - fac_srtnotificatie str2 - WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key - AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key - AND tr2.fac_srtnotificatie_key = str2.fac_srtnotificatie_key - AND str.fac_srtnotificatie_code = 'ORDAFM' - AND str2.fac_srtnotificatie_code = 'ORDAFR' - AND o.mld_opdr_key = tr.fac_tracking_refkey - AND o.mld_opdr_key = tr2.fac_tracking_refkey - AND o.mld_melding_key = m.mld_melding_key - AND o.mld_statusopdr_key = 9 -- Afgerond - AND o.mld_opdr_kosten <> 0 - AND o.mld_typeopdr_key = ot.mld_typeopdr_key - AND (ot.mld_typeopdr_omschrijving = 'Workorder' - OR ot.mld_typeopdr_omschrijving = 'Projectorder') - AND NOT EXISTS - (SELECT mld_kenmerkopdr_key - FROM mld_kenmerkopdr ko, mld_kenmerk k - WHERE mld_opdr_key = o.mld_opdr_key - AND ko.mld_kenmerk_key = k.mld_kenmerk_key - AND k.mld_srtkenmerk_key = - DECODE (aaxx_get_user, - 'SITECH', 321, -- Reden 0 order - 'ENEXIS', 221, - 'FPC', 1, - 'IT', 381, - 'NS', 661, - 'SABIC', 34, - 2)) - AND NOT EXISTS - (SELECT mld_kenmerkopdr_key - FROM mld_kenmerkopdr ko, - mld_kenmerk k, - mld_srtkenmerk sk - WHERE mld_opdr_key = o.mld_opdr_key - AND ko.mld_kenmerk_key = k.mld_kenmerk_key - AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key - AND UPPER (sk.mld_srtkenmerk_omschrijving) = - 'CLAUSULE' - AND UPPER(aaxx_get_kenmerkwaarde ( - sk.mld_srtkenmerk_kenmerktype, - sk.fac_kenmerkdomein_key, - ko.mld_kenmerkopdr_waarde - )) = 'BINNEN CLAUSULE'); - --- AAVL#33405 rapportage factuurvoorstel inkoopfacturen tbv bestellingen. --- Het resultaat kan met onderstaande importroutines ingelezen worden. -CREATE OR REPLACE VIEW aaxx_v_rap_bes_inkfactuur -( - FCLT_X_BEDRIJFNAAM, - FCLT_X_LEVER_DATUM, - LEVERANCIERNR, - FACTUURNR, - FACTUURDATUM, - ORDERNR, - LOCATIE, - AFLEVERDATUM, - OMSCHRIJVING, - AANTAL, - KOSTPRIJS, - BTWBEDRAG, - BTW, - DOCID, - DEBITEURNUMMER, - OPMERKING, - LASTINVOICE, - BTWVERLEGD, - GEBOUW, - ORDEROMSCHRIJVING, - REFERENTIE, - AFMELDDATUM, - UREN, - MATERIAAL -) -AS - SELECT prs_bedrijf_naam, - ft.fac_tracking_datum datum, - prs_leverancier_nr leveranciernr, - NULL factuurnr, - NULL factuurdatum, - bes_bestelopdr_id, - (SELECT alg_locatie_code || ' - ' || alg_locatie_omschrijving - FROM alg_locatie l - WHERE l.alg_locatie_key = ma.alg_locatie_key) - locatie, - TO_CHAR (ft.fac_tracking_datum, 'ddmmyyyy') afleverdatum, - NULL omschrijving, - SUM (bes_bestelopdr_item_aantalontv) aantal, - SUM (bes_bestelopdr_item_prijs * bes_bestelopdr_item_aantalontv) kostprijs, - NULL btwbedrag, - bes_srtdeel_btw BTW, - NULL docid, - NULL debiteurnummer, - NULL opmerking, - 'Ja' lastinvoice, - 'Nee' btwverlegd, - NULL gebouw, - NULL orderomschrijving, - NULL referentie, - ft.fac_tracking_datum afmelddatum, - NULL uren, - NULL materiaal - FROM bes_bestelopdr bo, - prs_bedrijf b, - mld_adres ma, - bes_bestelopdr_item bboi, - bes_bestelling_item bbi, - bes_srtdeel bsd, - fac_tracking ft, - fac_srtnotificatie srt - WHERE bes_bestelopdr_status = 6 - AND b.prs_bedrijf_key = bo.prs_bedrijf_key - AND bo.mld_adres_key_lev = ma.mld_adres_key - AND bo.bes_bestelopdr_key = bboi.bes_bestelopdr_key - AND bbi.bes_bestelopdr_item_key = bboi.bes_bestelopdr_item_key - AND bbi.bes_srtdeel_key = bsd.bes_srtdeel_key - AND ft.fac_tracking_refkey = bo.bes_bestelopdr_key - AND srt.fac_srtnotificatie_key = ft.fac_srtnotificatie_key - AND srt.fac_srtnotificatie_code = 'BES2AF' - GROUP BY prs_bedrijf_naam, - TO_CHAR (ft.fac_tracking_datum, 'yyyy-mm'), - prs_leverancier_nr, - bes_bestelopdr_id, - ma.alg_locatie_key, - ft.fac_tracking_datum, - bes_srtdeel_btw, - ft.fac_tracking_datum; - -CREATE OR REPLACE PROCEDURE aaxx_import_factuur (p_import_key IN NUMBER) -AS - - -- Standaard volgorde van de kolommen in het CSV-formaat, waarbij 3 velden VERPLICHT (minimaal door Facilitor vereist) - -- Variabelelijst - -- v_leveranciernr: 1 - -- v_factuurnr: 2 (VERPLICHT, anders zet Facilitor '-' in factuurnr, en is status van factuur "Incompleet") - -- v_factuurdatum: 3 - -- v_ordernr: 4 (VERPLICHT, anders is status van factuur "Incompleet") - -- v_locatie: 5 - -- v_afleverdatum: 6 - -- v_omschrijving: 7 - -- v_aantal: 8 - -- v_kostprijs: 9 (VERPLICHT, anders is status van factuur "Incompleet") - -- v_btw_bedrag: 10 (VERPLICHT, of anders veld 11, anders is status van factuur "Incompleet") - -- v_btw: 11 (VERPLICHT, of anders veld 10, anders is status van factuur "Incompleet") - -- v_docid: 12 - -- v_debiteur_nr: 13 - -- v_opmerking: 14 - -- v_btw_verlegd: 15 (VERPLICHT, Ja/Nee/ waarbij leeg gelijk is aan Nee. Andere waarden leidt tot "Incompleet") - -- v_kenmerk1: 16 - -- v_kenmerk2: 17 - -- v_kenmerk3: 18 - -- v_kenmerk4: 19 - -- v_kenmerk5: 20 - -- v_boekmaand: 21 (GELDIG, Indien gevuld dan moet er een geldige jaar-maand combinatie staan. Andere waarden leidt tot "Incompleet") - -- Eerst geprobeerd via nette array, geeft problemen met type buiten package, en in package lukt niet omdat - -- de import in Facilitor package-loos is (en niet 1-2-3 zo kan worden gemaakt vanwege alle bestaande klanten) - -- v_seq_of_columns ListOfInteger := (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21); - - -- Dus dan maar via een string, en ook op slimme wijze, nl alsof het een ingelezen factuur-record is met p_fielddelimitor - v_seq_of_columns VARCHAR(100); - - - -- Afwijkingen op deze volgorde zijn in eigen cust_import_factuur te regelen. - - -- Als leveranciersnr en factuurnr b.v. zijn omgedraaid in het CSV-formaat, - -- dan factuurimport ListOfInteger := (2,1,3,4,5,6,7,8,9,10,11,12); - -- v_seq_of_columns := '2;1;3;4;5;6;7;8;9;10;11;12'; - - -- Als leveranciersnr NIET in CSV staat, dan factuurimport ListOfInteger := (0,2,3,4,5,6,7,8,9,10,11,12); - -- v_seq_of_columns := '0;2;3;4;5;6;7;8;9;10;11;12'; - -- M.a.w. waar een 0 staat, wordt de variabele niet ingelezen en blift LEEG. - -BEGIN - v_seq_of_columns := '1;2;3;4;5;6;7;8;9;10;11;12;13;14;16;15;0;0;0;0;17'; - fac_import_factuur_body(p_import_key, v_seq_of_columns); -END; -/ - - - -CREATE OR REPLACE PROCEDURE aaxx_update_factuur (p_import_key IN NUMBER) -AS - v_invoerder NUMBER(10); -BEGIN - - fac_update_factuur (p_import_key); - - -- AAFM specifieke update voor kenmerken - -- ja = 1 - -- nee = 2 - -- kenmerk_key = 2 voor kenmerk laatste factuur. - INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde) - SELECT DISTINCT fin_factuur_key, fin_kenmerk_key, fac_usrdata_key - FROM fac_imp_factuur i, - fin_kenmerk k, - fac_kenmerkdomein kd, - fac_usrdata ud - WHERE UPPER (COALESCE (i.kenmerk1, 'Nee')) = UPPER (ud.fac_usrdata_omschr) - AND ud.fac_usrtab_key = kd.fac_usrtab_key - AND k.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key - AND k.fin_kenmerk_key = 2 - AND i.fin_factuur_key IS NOT NULL - AND NOT EXISTS - (SELECT fin_kenmerkfactuur_key - FROM fin_kenmerkfactuur kf - WHERE kf.fin_kenmerk_key = 2 - AND kf.fin_factuur_key = i.fin_factuur_key); - - SELECT MAX(prs_perslid_key) - INTO v_invoerder - FROM fac_import - WHERE fac_import_key = p_import_key; - - -- zet de FINNEW notificatie op de gebruiker die de import gestart heeft om te kunnen traceren hoe de facturen in het - -- systeem gekomen zijn. - UPDATE fac_tracking t - SET prs_perslid_key = v_invoerder - , fac_tracking_oms = fac_tracking_oms || ' (via Excel)' - WHERE prs_perslid_key IS NULL - AND EXISTS - (SELECT fac_tracking_key - FROM fac_imp_factuur i, fac_srtnotificatie sn - WHERE i.fin_factuur_key = t.fac_tracking_refkey - AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key - AND sn.fac_srtnotificatie_code = 'FINNEW'); - -END; -/ - --- view om aantal ingevoerde facturen terug te herleiden naar scanning en excel import. -CREATE OR REPLACE VIEW aaxx_v_rap_invoice_scan -( - hide_f_ts, - fclt_d_datum, - totaal, - scanning, - excel -) -AS - SELECT TO_CHAR (fac_tracking_datum, 'yyyymmdd'), - TO_CHAR (fac_tracking_datum, 'dd-mm-yyyy'), - SUM (aantal), - SUM (scanning), - SUM (excel) - FROM (SELECT f.fin_factuur_key, - fac_tracking_datum, - fac_tracking_key, - fac_tracking_oms, - 1 aantal, - DECODE (t.prs_perslid_key, 8, 1, 0) excel, - DECODE (t.prs_perslid_key, 9, 1, 0) scanning - FROM fin_factuur f, - (SELECT t.* - FROM fac_tracking t, fac_srtnotificatie sn - WHERE t.fac_srtnotificatie_key = - sn.fac_srtnotificatie_key - AND sn.fac_srtnotificatie_code = 'FINNEW') t - WHERE f.fin_factuur_verwijder IS NULL - AND f.fin_factuur_key = t.fac_tracking_refkey(+)) - GROUP BY TO_CHAR (fac_tracking_datum, 'dd-mm-yyyy'), - TO_CHAR (fac_tracking_datum, 'yyyymmdd'); - --------------------------------- --- import contractorders --------------------------------- -CREATE OR REPLACE PROCEDURE aaxx_import_contract ( - p_import_key IN NUMBER) -IS - c_fielddelimitor VARCHAR2 (1) := ';'; - - v_newline VARCHAR2 (4000); -- Input line - v_read VARCHAR2 (4000); - v_lastchar VARCHAR2 (1); - v_firstchar VARCHAR2 (1); - v_errormsg VARCHAR (1000); - v_hint VARCHAR (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_count NUMBER; - v_ongeldig NUMBER (1); - v_mode NUMBER (1); - v_aanduiding VARCHAR (200); - v_header_is_valid NUMBER (1); - - -- De importvelden: - v_gebouw_code VARCHAR2 (100); - v_leverancier VARCHAR2 (100); - v_beschrijving VARCHAR2 (100); - v_van VARCHAR2 (100); - v_dienst VARCHAR2 (100); - v_tot VARCHAR2 (100); - v_versie VARCHAR2 (100); - v_omschrijving VARCHAR2 (4000); - v_bedrag VARCHAR2 (100); - v_termijnbedrag VARCHAR2 (100); - v_contractsoort VARCHAR2 (100); - v_contractnummer VARCHAR2 (100); - v_volgnummer VARCHAR2 (100); - v_leveranciernummer VARCHAR2 (100); - v_contractafdeling VARCHAR2 (100); - v_gewijzigddoor VARCHAR2 (100); - v_contractmanager VARCHAR2 (100); - v_discipline_key NUMBER; - v_dummy VARCHAR2 (100); - - - - CURSOR c - IS - SELECT * - FROM fac_imp_file - WHERE fac_import_key = p_import_key - ORDER BY fac_imp_file_index; - - rec c%ROWTYPE; -BEGIN - -- Eerst opruiming - - DELETE FROM aaxx_imp_contract; - - COMMIT; - - v_header_is_valid := 0; - - OPEN c; - - IF (c%ISOPEN) - THEN - LOOP - BEGIN - v_errormsg := 'Fout FETCH te importeren rij'; - - FETCH c INTO rec; - - EXIT WHEN c%NOTFOUND; - v_read := rec.fac_imp_file_line; - v_newline := v_read; - - v_lastchar := SUBSTR (v_read, LENGTH (v_read), 1); - v_firstchar := SUBSTR (v_read, 1, 1); - - -- voeg regels samen die een cr/lf bevatten. - IF v_firstchar = '"' - THEN - WHILE v_lastchar <> '"' - LOOP - BEGIN - FETCH c INTO rec; - - EXIT WHEN c%NOTFOUND; - v_read := rec.fac_imp_file_line; - v_lastchar := SUBSTR (v_read, LENGTH (v_read), 1); - v_newline := v_newline || CHR (13) || CHR (10) || v_read; - END; - END LOOP; - END IF; - - v_errormsg := 'Fout opvragen te importeren rij:' || substr(v_newline,1,200); - v_aanduiding := ''; - v_ongeldig := 0; - - IF (UPPER(v_newline) like - 'GEBOUW;BEDRIJF;LEVNR;BESCHRIJVING;INGANGSDATUM;EINDDATUM;ORDEROMSCHRIJVING;BEDRAG;TERMIJNBEDRAG;DIENST;CONTRACTSOORT;CONTRACTNR;VERSIE;REGELNR;CONTRACTAFDELING;CONTRACTMANAGER;GEWIJZIGDDOOR%') - THEN - v_header_is_valid := 1; - ELSE - -- Lees alle veldwaarden - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_gebouw_code); - -- - v_errormsg := - 'Fout opvragen te importeren rij (leverancier)' - || v_gebouw_code; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_leverancier); - -- - v_errormsg := - 'Fout opvragen te importeren rij (leveranciernummer)' - || v_gebouw_code; - fac.imp_getfield (v_newline, - C_FIELDDELIMITOR, - v_leveranciernummer); - -- - v_errormsg := - 'Fout opvragen te importeren rij (beschrijving)' - || v_gebouw_code; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_beschrijving); - -- - v_errormsg := - 'Fout opvragen te importeren rij (van)' || v_gebouw_code; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_van); - -- - v_errormsg := - 'Fout opvragen te importeren rij (tot)' || v_gebouw_code; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_tot); - -- - v_errormsg := - 'Fout opvragen te importeren rij (omschrijving)' - || v_gebouw_code; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_omschrijving); - -- - v_errormsg := - 'Fout opvragen te importeren rij (bedrag)' || v_gebouw_code; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_bedrag); - -- - v_errormsg := - 'Fout opvragen te importeren rij (termijnbedrag)' || v_gebouw_code; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_termijnbedrag); - -- - v_errormsg := - 'Fout opvragen te importeren rij (dienst)' || v_gebouw_code; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_dienst); - -- - v_errormsg := - 'Fout opvragen te importeren rij (dienst)' || v_gebouw_code; - fac.imp_getfield (v_newline, - C_FIELDDELIMITOR, - v_contractsoort); - - -- controleeer of het contractsoort bestaat - v_errormsg := - 'Controleer of de contractsoort al bestaat: ' || v_contractsoort; - BEGIN - SELECT ins_discipline_key - INTO v_discipline_key - FROM cnt_discipline - WHERE ins_discipline_verwijder IS NULL - AND UPPER (TRIM (ins_discipline_omschrijving)) = - UPPER (TRIM (SUBSTR(v_contractsoort,1,30))); - EXCEPTION WHEN NO_DATA_FOUND - THEN - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || 'Onbekende contractsoort: ' || v_contractsoort, - 'Toelichting: ... '); - END; - -- - v_errormsg := - 'Fout opvragen te importeren rij (contractcode):' - || v_gebouw_code; - fac.imp_getfield (v_newline, - C_FIELDDELIMITOR, - v_contractnummer); - -- - v_errormsg := - 'Fout opvragen te importeren rij (versie)' || v_gebouw_code; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_versie); - -- - v_errormsg := - 'Fout opvragen te importeren rij (volgnummer)' - || v_gebouw_code; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_volgnummer); - -- - v_errormsg := - 'Fout opvragen te importeren rij (contractafdeling)' - || v_gebouw_code; - fac.imp_getfield (v_newline, - C_FIELDDELIMITOR, - v_contractafdeling); - -- - v_errormsg := - 'Fout opvragen te importeren rij (contractmanager)' - || v_gebouw_code; - fac.imp_getfield (v_newline, - C_FIELDDELIMITOR, - v_contractmanager); - -- - v_errormsg := - 'Fout opvragen te importeren rij (gewijzigddoor)' - || v_gebouw_code; - fac.imp_getfield (v_newline, - C_FIELDDELIMITOR, - v_gewijzigddoor); - - - -- Insert geformatteerde import record - - v_errormsg := - 'Fout bij toevoegen te importeren gebouw [' - || v_gebouw_code - || ']'; - - INSERT INTO AAXX_IMP_CONTRACT (gebouw, - leverancier, - leveranciernummer, - beschrijving, - van, - tot, - omschrijving, - bedrag, - termijnbedrag, - dienst, - contractsoort, - contractnummer, - versie, - volgnummer, - contractafdeling, - contractmanager, - gewijzigddoor, - volgorde) - VALUES (v_gebouw_code, - v_leverancier, - v_leveranciernummer, - v_beschrijving, - fac.safe_to_date (v_van, 'dd-mm-yy'), - fac.safe_to_date (v_tot, 'dd-mm-yy'), - v_omschrijving, - aaxx_get_imp_float (v_bedrag), - aaxx_get_imp_float (v_termijnbedrag), - v_dienst, - SUBSTR(v_contractsoort,1,30), - TRIM(v_contractnummer), - v_versie, - fac.safe_to_number ( - REPLACE (v_volgnummer, ',', '.')), - v_contractafdeling, - v_contractmanager, - v_gewijzigddoor, - rec.fac_imp_file_index); - END IF; - END; - END LOOP; - END IF; - - IF v_header_is_valid = 0 - THEN - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || 'Ongeldig importbestand', - 'Toelichting: ... '); - END IF; - - - COMMIT; -EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - v_hint := v_errormsg; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_errormsg, - v_hint); -END aaxx_import_contract; -/ - - -CREATE OR REPLACE PROCEDURE aaxx_update_contract (p_import_key IN NUMBER) -AS - CURSOR cdisc - IS - SELECT contractsoort, MIN(volgorde) volgorde - FROM aaxx_imp_contract - WHERE NOT EXISTS - (SELECT ins_discipline_key - FROM cnt_discipline - WHERE UPPER (TRIM (ins_discipline_omschrijving)) = - UPPER (TRIM (contractsoort))) - GROUP BY contractsoort; - - CURSOR c - IS - SELECT * - FROM aaxx_imp_contract - ORDER BY volgorde; - - e_bestaand_contractnr EXCEPTION; - v_aanduiding VARCHAR2 (200); - v_oldcountcnt NUMBER; - v_newcountcnt NUMBER; - v_countcnt NUMBER; - v_errormsg VARCHAR (1000); - v_error NUMBER (1); - v_error_hint VARCHAR (1000); - oracle_err_mes VARCHAR2 (150); - oracle_err_num VARCHAR2 (150); - currentversion fac_module.fac_module_version%TYPE; - v_gebouw_key NUMBER; - v_dienst_key NUMBER; - v_afdeling_key NUMBER; - v_perslid_key NUMBER; - v_perslid_man_key NUMBER; - v_discipline_key NUMBER; - v_contract_key NUMBER; - v_bedrijf_key NUMBER; - v_kostenplaats_key NUMBER; - v_count NUMBER; -BEGIN - v_error := 0; - - SELECT MAX (fac_module_version) INTO currentversion FROM fac_module; - - fac.imp_writelog ( - p_import_key, - 'I', - 'AAFM Contract import version ' || currentversion, - '$Revision$'); - - SELECT COUNT ( * ) INTO v_countcnt FROM aaxx_imp_contract; - - IF v_countcnt = 0 - THEN - fac.imp_writelog (p_import_key, - 'E', - 'AAFM Contract import bevat geen records', - '$Revision$'); - RETURN; - END IF; - - SELECT COUNT ( * ) INTO v_oldcountcnt FROM cnt_contract; - - UPDATE cnt_contract - SET cnt_contract_versie = '0' - WHERE cnt_contract_versie IS NULL; - - FOR rec IN cdisc - LOOP - BEGIN - v_aanduiding := ' regel[' || rec.volgorde || '] contractsoort: ' || rec.contractsoort; - v_error_hint := 'Toevoegen contractsoort:' || rec.contractsoort; - - INSERT INTO ins_tab_discipline (ins_discipline_module, - ins_discipline_omschrijving) - VALUES ('CNT', rec.contractsoort) - RETURNING ins_discipline_key - INTO v_discipline_key; - - INSERT INTO cnt_disc_params (cnt_ins_discipline_key, - cnt_srtcontract_type) - VALUES (v_discipline_key, 5); - END; - END LOOP; - - FOR rec IN c - LOOP - BEGIN - v_aanduiding := - 'regel[' - || rec.volgorde - || '] nummer: ' - || rec.contractnummer - || ' versie: ' - || rec.versie - || ' volgnummer: ' - || rec.volgnummer; - v_error_hint := 'Controle op bedrijf (check contract vinkje)'; - - v_perslid_man_key := NULL; - - SELECT prs_bedrijf_key - INTO v_bedrijf_key - FROM prs_v_aanwezigbedrijf - WHERE prs_bedrijf_contract = 1 - AND ( UPPER (TRIM (prs_leverancier_nr)) = UPPER (TRIM (rec.leveranciernummer)) - OR (rec.leveranciernummer IS NULL AND rec.leverancier = prs_bedrijf_naam)); - - v_error_hint := 'Controle op dienst'; - - IF rec.dienst IS NOT NULL - THEN - SELECT prs_dienst_key - INTO v_dienst_key - FROM prs_dienst - WHERE UPPER (TRIM (prs_dienst_omschrijving)) = UPPER (TRIM (rec.dienst)); - END IF; - - v_error_hint := 'Controle op contractsoort'; - - SELECT ins_discipline_key - INTO v_discipline_key - FROM cnt_discipline - WHERE ins_discipline_verwijder IS NULL - AND UPPER (TRIM (ins_discipline_omschrijving)) = - UPPER (TRIM (rec.contractsoort)); - - v_error_hint := 'Controle op contractafdeling'; - - SELECT prs_afdeling_key - INTO v_afdeling_key - FROM prs_afdeling - WHERE prs_afdeling_verwijder IS NULL - AND UPPER (TRIM (prs_afdeling_naam)) = UPPER (TRIM (rec.contractafdeling)); - - v_error_hint := 'Controle op contractmanager'; - - IF rec.contractmanager IS NOT NULL - THEN - SELECT prs_perslid_key - INTO v_perslid_man_key - FROM prs_v_aanwezigperslid - WHERE prs_perslid_oslogin = UPPER (TRIM (rec.contractmanager)) - OR prs_perslid_oslogin2 = UPPER (TRIM (rec.contractmanager)); - END IF; - - v_error_hint := 'Controle op gewijzigddoor'; - - SELECT prs_perslid_key - INTO v_perslid_key - FROM prs_v_aanwezigperslid - WHERE prs_perslid_oslogin = UPPER (TRIM (rec.gewijzigddoor)) - OR prs_perslid_oslogin2 = UPPER (TRIM (rec.gewijzigddoor)); - - IF rec.volgnummer IS NULL - THEN - -- kopregel - v_contract_key := NULL; - v_error_hint := 'Controle op kostenplaats'; - - SELECT prs_kostenplaats_key - INTO v_kostenplaats_key - FROM prs_v_aanwezigkostenplaats - WHERE UPPER (TRIM (prs_kostenplaats_nr)) = UPPER (TRIM (rec.gebouw)); - - v_error_hint := 'Controle op contractnummer'; - - IF rec.contractnummer IS NOT NULL - THEN - SELECT COUNT ( * ) - INTO v_count - FROM cnt_v_aanwezigcontract - WHERE TRIM (cnt_contract_nummer_intern) = TRIM (rec.contractnummer) - AND cnt_contract_versie = rec.versie; - - IF v_count > 0 - THEN - RAISE e_bestaand_contractnr; - END IF; - END IF; - - v_error_hint := 'Toevoegen contract'; - - INSERT INTO cnt_contract (cnt_contract_nummer, - cnt_contract_nummer_intern, - cnt_contract_omschrijving, - cnt_contract_document, - cnt_contract_looptijd_van, - cnt_contract_looptijd_tot, - cnt_contract_status, - cnt_contract_kosten, - cnt_contract_termijnkosten, - cnt_prs_bedrijf_key, - prs_afdeling_key_eig, - ins_discipline_key, - prs_perslid_key_eig, - prs_perslid_key_beh, - prs_kostenplaats_key, - cnt_contract_versie, - cnt_contract_opzegtermijn, - cnt_contract_rappeltermijn) - VALUES (rec.contractnummer, - rec.contractnummer, - SUBSTR (rec.beschrijving, 1, 50), - REPLACE (REPLACE (rec.omschrijving, '<(>', ''), - '<)>', - ''), - rec.van, - rec.tot, - 2, -- Nieuw - rec.bedrag, - rec.termijnbedrag, - v_bedrijf_key, - v_afdeling_key, - v_discipline_key, - v_perslid_man_key, - v_perslid_key, - v_kostenplaats_key, - DECODE(rec.versie, '0', NULL, rec.versie), - 1, - 1) - RETURNING cnt_contract_key - INTO v_contract_key; - - -- controle of het om bestaande contractnummers gaat. Indien het een import van nieuwe - -- contracten betreft, zal vaak het contractnummer leeg zijn. We vullen dan het contractnummer - -- met de key van het contract. - IF rec.contractnummer IS NULL - THEN - UPDATE cnt_contract - SET cnt_contract_nummer = cnt_contract_key, - cnt_contract_nummer_intern = cnt_contract_key - WHERE cnt_contract_key = v_contract_key; - END IF; - - -- als we versie 1 van een contract gaan toevoegen moeten we het initiele contract met - -- versie NULL gaan omzetten naar versie 0. - IF rec.versie = '1' - THEN - UPDATE cnt_contract - SET cnt_contract_versie = '0' - WHERE cnt_contract_nummer = rec.contractnummer - AND cnt_contract_versie IS NULL; - END IF; - ELSE - v_error_hint := 'Controle op gebouwcode'; - - SELECT alg_gebouw_key - INTO v_gebouw_key - FROM alg_v_aanweziggebouw - WHERE UPPER (alg_gebouw_code) = UPPER (rec.gebouw); - - -- als het bovenliggende contract niet aangemaakt kon worden gaan we ook geen scope invullen. - IF v_contract_key IS NOT NULL - THEN - -- Scope van het contract zetten. - INSERT INTO cnt_contract_plaats (cnt_contract_key, - cnt_alg_plaats_key, - cnt_alg_plaats_code, - cnt_contract_plaats_gewicht) - VALUES (v_contract_key, - v_gebouw_key, - 'G', - rec.bedrag); - END IF; - END IF; - EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - IF oracle_err_num = 1 THEN oracle_err_mes := 'Combinatie contractnummer/versie bestaat al.'; END IF; - IF oracle_err_num = -1422 THEN oracle_err_mes := 'Controle levert meer dan één resultaat op.'; END IF; - IF oracle_err_num = 100 THEN oracle_err_mes := 'Controle levert geen resultaat op.'; END IF; - v_errormsg := - 'OTHERS (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - aaxx_imp_writelog (p_import_key, - 'E', - v_errormsg, - v_error_hint || ' - ' || v_aanduiding); - v_error := 1; - END; - END LOOP; - - IF v_error = 0 - THEN - COMMIT; - ELSE - ROLLBACK; - END IF; - - -- How many active records are now present? - SELECT COUNT ( * ) INTO v_newcountcnt FROM cnt_contract; - - fac.imp_writelog ( - p_import_key, - 'S', - 'Aantal contracten vooraf: ' - || TO_CHAR (v_oldcountcnt) - || ' nu: ' - || TO_CHAR (v_newcountcnt), - ''); - -EXCEPTION - WHEN OTHERS - THEN - ROLLBACK; - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_errormsg, - v_error_hint || ' - ' || v_aanduiding); - COMMIT; -END; -/ - - --------------------------------- --- import ruimtegegevens --------------------------------- -CREATE OR REPLACE PROCEDURE aaxx_import_ruimte ( - p_import_key IN NUMBER) -IS - c_fielddelimitor VARCHAR2 (1) := ';'; - - v_newline VARCHAR2 (4000); -- Input line - v_read VARCHAR2 (4000); - v_lastchar VARCHAR2 (1); - v_firstchar VARCHAR2 (1); - v_errormsg VARCHAR (1000); - v_hint VARCHAR (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_count NUMBER; - v_ongeldig NUMBER (1); - v_mode NUMBER (1); - v_aanduiding VARCHAR (200); - v_header_is_valid NUMBER (1); - - -- De importvelden: - v_locatie_code VARCHAR2(100); - v_gebouw_code VARCHAR2(100); - v_verdieping_code VARCHAR2(100); - v_ruimte_key VARCHAR2(100); - v_ruimte_nr VARCHAR2(100); - v_ruimte_omschrijving VARCHAR2(100); - v_srtruimte_omschrijving VARCHAR2(100); - v_dienstniveau_omschr VARCHAR2(100); - v_ruimte_bruto_vloeropp VARCHAR2(100); - v_dummy VARCHAR2(100); - - - - CURSOR c - IS - SELECT * - FROM fac_imp_file - WHERE fac_import_key = p_import_key - ORDER BY fac_imp_file_index; - - rec c%ROWTYPE; -BEGIN - -- Eerst opruiming - - DELETE FROM aaxx_imp_ruimte; - - COMMIT; - - v_header_is_valid := 0; - - OPEN c; - - IF (c%ISOPEN) - THEN - LOOP - BEGIN - v_errormsg := 'Fout FETCH te importeren rij'; - - FETCH c INTO rec; - - EXIT WHEN c%NOTFOUND; - v_read := rec.fac_imp_file_line; - v_newline := v_read; - - v_lastchar := SUBSTR (v_read, LENGTH (v_read), 1); - v_firstchar := SUBSTR (v_read, 1, 1); - - -- voeg regels samen die een cr/lf bevatten. - IF v_firstchar = '"' - THEN - WHILE v_lastchar <> '"' - LOOP - BEGIN - FETCH c INTO rec; - - EXIT WHEN c%NOTFOUND; - v_read := rec.fac_imp_file_line; - v_lastchar := SUBSTR (v_read, LENGTH (v_read), 1); - v_newline := v_newline || CHR (13) || CHR (10) || v_read; - END; - END LOOP; - END IF; - - v_errormsg := 'Fout opvragen te importeren rij'; - v_aanduiding := ''; - v_ongeldig := 0; - - IF (v_newline like - 'LOCATIE;GEBOUW;VERDIEPING;ALG_RUIMTE_KEY;ALG_RUIMTE_NR;ALG_RUIMTE_OMSCHRIJVING;ALG_SRTRUIMTE_OMSCHRIJVING;MLD_DIENSTNIVEAU_OMSCHR;ALG_RUIMTE_BRUTO_VLOEROPP%') - THEN - v_header_is_valid := 1; - ELSE - -- Lees alle veldwaarden - v_errormsg := - 'Fout opvragen te importeren rij (alg_locatie_code) Regel [' || rec.fac_imp_file_index || ']'; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_locatie_code); - -- - v_errormsg := - 'Fout opvragen te importeren rij (alg_gebouw_code) Regel [' || rec.fac_imp_file_index || ']'; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_gebouw_code); - -- - v_errormsg := - 'Fout opvragen te importeren rij (alg_verdieping_code) Regel [' || rec.fac_imp_file_index || ']'; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_verdieping_code); - -- - v_errormsg := - 'Fout opvragen te importeren rij (alg_ruimte_key) Regel [' || rec.fac_imp_file_index || ']'; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_ruimte_key); - -- - v_errormsg := - 'Fout opvragen te importeren rij (alg_ruimte_nr) Regel [' || rec.fac_imp_file_index || ']'; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_ruimte_nr); - -- - v_errormsg := - 'Fout opvragen te importeren rij (alg_ruimte_omschrijving) Regel [' || rec.fac_imp_file_index || ']'; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_ruimte_omschrijving); - -- - v_errormsg := - 'Fout opvragen te importeren rij (alg_srtruimte_omschrijving) Regel [' || rec.fac_imp_file_index || ']'; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_srtruimte_omschrijving); - -- - v_errormsg := - 'Fout opvragen te importeren rij (mld_dienstniveau_omschr) Regel [' || rec.fac_imp_file_index || ']'; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_dienstniveau_omschr); - -- - v_errormsg := - 'Fout opvragen te importeren rij (alg_ruimte_bruto_vloeropp) Regel [' || rec.fac_imp_file_index || ']'; - fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_ruimte_bruto_vloeropp); - -- - -- Insert geformatteerde import record - IF v_ruimte_key IS NOT NULL - THEN - v_errormsg := - 'Fout bij toevoegen te importeren gebouw [' - || v_gebouw_code - || ']'; - - INSERT INTO aaxx_imp_ruimte(volgorde, - alg_locatie_code, - alg_gebouw_code, - alg_verdieping_code, - alg_ruimte_key, - alg_ruimte_nr, - alg_ruimte_omschrijving, - alg_srtruimte_omschrijving, - mld_dienstniveau_omschr, - alg_ruimte_bruto_vloeropp) - VALUES (rec.fac_imp_file_index, - SUBSTR(v_locatie_code, 1, 10), - SUBSTR(v_gebouw_code, 1, 12), - SUBSTR(v_verdieping_code, 1, 10), - v_ruimte_key, - SUBSTR(v_ruimte_nr, 1,10), - SUBSTR(v_ruimte_omschrijving, 1, 30), - SUBSTR(v_srtruimte_omschrijving, 1, 30), - SUBSTR(v_dienstniveau_omschr, 1, 60), - replace(v_ruimte_bruto_vloeropp, ',','.')); - END IF; - END IF; - END; - END LOOP; - END IF; - - IF v_header_is_valid = 0 - THEN - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || 'Ongeldig importbestand', - 'Toelichting: ... '); - END IF; - - - COMMIT; -EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - v_hint := v_errormsg; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_errormsg, - v_hint); -END aaxx_import_ruimte; -/ - - -CREATE OR REPLACE PROCEDURE aaxx_update_ruimte (p_import_key IN NUMBER) -AS - CURSOR c - IS - SELECT * - FROM aaxx_imp_ruimte - ORDER BY volgorde; - - v_aanduiding VARCHAR2 (200); - v_errormsg VARCHAR (1000); - v_error NUMBER (1); - v_error_hint VARCHAR (1000); - oracle_err_mes VARCHAR2 (150); - oracle_err_num VARCHAR2 (150); - currentversion fac_module.fac_module_version%TYPE; - v_srtruimte_key NUMBER; - v_dienstniveau_key NUMBER; -BEGIN - v_error := 0; - - SELECT MAX (fac_module_version) INTO currentversion FROM fac_module; - - fac.imp_writelog ( - p_import_key, - 'I', - 'AAFM Ruimte update version ' || currentversion, - '$Revision$'); - - FOR rec IN c - LOOP - BEGIN - v_aanduiding := - 'regel[' - || rec.volgorde - || '] plaats: ' - || rec.alg_locatie_code || '-' - || rec.alg_gebouw_code || '-' - || rec.alg_verdieping_code || '-' - || rec.alg_ruimte_nr; - - v_error_hint := 'Controle op ruimtesoort'; - - v_srtruimte_key := NULL; - IF rec.alg_srtruimte_omschrijving IS NOT NULL - THEN - SELECT alg_srtruimte_key - INTO v_srtruimte_key - FROM alg_srtruimte - WHERE alg_srtruimte_verwijder IS NULL - AND alg_srtruimte_upper = UPPER (rec.alg_srtruimte_omschrijving); - END IF; - - v_error_hint := 'Controle op dienstniveau'; - - v_dienstniveau_key := NULL; - IF rec.mld_dienstniveau_omschr IS NOT NULL - THEN - SELECT mld_dienstniveau_key - INTO v_dienstniveau_key - FROM mld_dienstniveau - WHERE UPPER (TRIM (mld_dienstniveau_omschr)) = UPPER (TRIM (rec.mld_dienstniveau_omschr)); - END IF; - - v_error_hint := 'Aanpassen ruimtegegevens.'; - UPDATE alg_ruimte SET alg_ruimte_nr = rec.alg_ruimte_nr, - alg_ruimte_omschrijving = rec.alg_ruimte_omschrijving, - alg_srtruimte_key = v_srtruimte_key, - mld_dienstniveau_key = v_dienstniveau_key, - alg_ruimte_bruto_vloeropp = rec.alg_ruimte_bruto_vloeropp - WHERE alg_ruimte_key = rec.alg_ruimte_key; - - EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - IF oracle_err_num = -1422 THEN oracle_err_mes := 'Controle levert meer dan één resultaat op.'; END IF; - IF oracle_err_num = 100 THEN oracle_err_mes := 'Controle levert geen resultaat op.'; END IF; - v_errormsg := - 'OTHERS (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - aaxx_imp_writelog (p_import_key, - 'E', - v_errormsg, - v_error_hint || ' - ' || v_aanduiding); - v_error := 1; - END; - END LOOP; - - IF v_error = 0 - THEN - COMMIT; - ELSE - ROLLBACK; - END IF; - -EXCEPTION - WHEN OTHERS - THEN - ROLLBACK; - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_errormsg, - v_error_hint || ' - ' || v_aanduiding); - COMMIT; -END; -/ - - -------------------------------------------------------------------------------- --- IMPORTFUNCTIE - Import uplift -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_rap_uplift ( - jaar, - maand, - kostensoort, - soort_order, - leverancier, - nummer, - uplift -) -AS - SELECT jaar, - maand, - prs_kostensoort_oms, - soort_order, - prs_bedrijf_naam, - prs_leverancier_nr, - uplift - FROM aaxx_imp_uplift; - -CREATE OR REPLACE PROCEDURE aaxx_import_uplift ( - p_import_key IN NUMBER -) -AS - CURSOR c_cursor - IS - SELECT * - FROM fac_imp_file - WHERE fac_import_key = p_import_key - ORDER BY fac_imp_file_index; - - v_newline VARCHAR2 (1000); - v_aanduiding VARCHAR2 (1000); -- Import line - v_field VARCHAR2 (100); -- Import field - v_fielddelimitor VARCHAR2 (1); -- Field seperator - v_errormsg VARCHAR (200); - v_errorhint VARCHAR (200); - v_count NUMBER; - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_skipfield VARCHAR2 (100); - -- De importvelden - v_jaar VARCHAR2 (100); - v_maand VARCHAR2 (100); - v_prs_kostensoort_oms VARCHAR2 (100); - v_soort_order VARCHAR2 (100); - v_prs_bedrijf_naam VARCHAR2 (100); - v_prs_leverancier_nr VARCHAR2 (100); - v_uplift VARCHAR2 (100); - header_found BOOLEAN; - -BEGIN - -- Eerst opruiming - - -- Init - header_found := FALSE; - v_fielddelimitor := ';'; - - FOR rec1 IN c_cursor - LOOP - BEGIN - v_newline := rec1.fac_imp_file_line; - v_aanduiding := v_newline; - - IF SUBSTR (v_newline, 1, 3) = '?' - THEN - -- EF BB BF aangetroffen - fac.imp_writelog (p_import_key, - 'W', - 'Byte Order Mark aangetroffen', - 'Bestand heeft onbehandeld UTF-8 formaat.' - ); - v_newline := SUBSTR (v_newline, 4); - END IF; - - fac.imp_getfield (v_newline, v_fielddelimitor, v_jaar); - fac.imp_getfield (v_newline, v_fielddelimitor, v_maand); - fac.imp_getfield (v_newline, v_fielddelimitor, v_prs_kostensoort_oms); - fac.imp_getfield (v_newline, v_fielddelimitor, v_soort_order); - fac.imp_getfield (v_newline, v_fielddelimitor, v_prs_bedrijf_naam); - fac.imp_getfield (v_newline, v_fielddelimitor, v_prs_leverancier_nr); - fac.imp_getfield (v_newline, v_fielddelimitor, v_uplift); - - -- Skip until a valid header is found - IF UPPER(v_jaar) = 'JAAR' - AND UPPER(v_maand) = 'MAAND' - AND UPPER(v_prs_kostensoort_oms) = 'KOSTENSOORT' - AND UPPER(v_prs_leverancier_nr) = 'NUMMER' - AND UPPER(v_uplift) = 'UPLIFT' - THEN - -- Sla de kopregel over. - header_found := TRUE; - ELSIF (header_found AND v_jaar IS NOT NULL) - THEN - -- voeg nieuwe records toe - -- en wijzig bestaande records - - -- ken ik de combinatie van jaar,maand, kostensoort, en leveranciernummer al? - SELECT count(*) - INTO v_count - FROM aaxx_imp_uplift - WHERE jaar = v_jaar - AND maand = v_maand - AND prs_kostensoort_oms = v_prs_kostensoort_oms - AND soort_order = v_soort_order - AND prs_leverancier_nr = v_prs_leverancier_nr; - - IF v_count > 0 THEN - -- update de bestaande record(s) - UPDATE aaxx_imp_uplift - SET uplift = fac.safe_to_number (REPLACE(v_uplift,',','.')) - WHERE jaar = v_jaar - AND maand = v_maand - AND soort_order = v_soort_order - AND prs_kostensoort_oms = v_prs_kostensoort_oms - AND prs_leverancier_nr = v_prs_leverancier_nr; - ELSE - -- voeg nieuwe records toe - INSERT INTO aaxx_imp_uplift - (jaar, - maand, - prs_kostensoort_oms, - soort_order, - prs_bedrijf_naam, - prs_leverancier_nr, - uplift) - VALUES (fac.safe_to_number (v_jaar), - fac.safe_to_number (v_maand), - v_prs_kostensoort_oms, - v_soort_order, - v_prs_bedrijf_naam, - v_prs_leverancier_nr, - fac.safe_to_number (REPLACE(v_uplift,',','.'))); - - END IF; - SELECT count(*) - INTO v_count - FROM prs_bedrijf - WHERE prs_leverancier_nr = v_prs_leverancier_nr; - IF v_count = 0 THEN - fac.imp_writelog (p_import_key, - 'W', - 'Geen leverancier met nummer ['||v_prs_leverancier_nr||'] gevonden', - '' - ); - END IF; - SELECT count(*) - INTO v_count - FROM prs_kostensoort - WHERE prs_kostensoort_upper = upper(v_prs_kostensoort_oms); - IF v_count = 0 THEN - fac.imp_writelog (p_import_key, - 'W', - 'Geen kostensoort met code ['||v_prs_kostensoort_oms ||'] gevonden', - '' - ); - END IF; - END IF; - - COMMIT; - END; - END LOOP; - - IF NOT header_found - THEN - fac.imp_writelog (p_import_key, - 'E', - 'Geen geldige header aangetroffen', - 'Bestand is geen geldig ruimtesoort importbestand.' - ); - 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.imp_writelog (p_import_key, 'E', SUBSTR (v_errormsg, 1, 1000), v_aanduiding); - -- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden. -END; -/ - - -CREATE OR REPLACE PROCEDURE aaxx_update_uplift (p_import_key IN NUMBER) -AS -BEGIN - NULL; -END; -/ - -------------------------------------------------------------------------------- --- Importfunctie om elementen op te voeren voor assetmanagement --- --- -------------------------------------------------------------------------------- -CREATE OR REPLACE PROCEDURE aaxx_import_asset (p_import_key IN NUMBER) -AS - -CURSOR c_disc -IS - SELECT DISTINCT i.ins_discipline_omschrijving - FROM fac_imp_ins i - WHERE NOT EXISTS - ( SELECT ins_discipline_key - FROM ins_discipline d - WHERE UPPER(d.ins_discipline_omschrijving) = UPPER(i.ins_discipline_omschrijving)); - -CURSOR c_srtgroep -IS - SELECT DISTINCT i.ins_discipline_omschrijving, i.ins_srtgroep_omschrijving - FROM fac_imp_ins i - WHERE NOT EXISTS - ( SELECT d.ins_discipline_key - FROM ins_discipline d, ins_srtgroep sg - WHERE sg.ins_discipline_key = d.ins_discipline_key - AND UPPER(sg.ins_srtgroep_omschrijving) = UPPER(i.ins_srtgroep_omschrijving) - AND UPPER(d.ins_discipline_omschrijving) = UPPER(i.ins_discipline_omschrijving)); - -CURSOR c_srtdeel -IS - SELECT DISTINCT i.ins_discipline_omschrijving, i.ins_srtgroep_omschrijving, i.ins_srtdeel_omschrijving, i.ins_srtdeel_code - FROM fac_imp_ins i - WHERE NOT EXISTS - ( SELECT d.ins_discipline_key - FROM ins_discipline d, ins_srtgroep sg, ins_srtdeel sd - WHERE sg.ins_discipline_key = d.ins_discipline_key - AND sd.ins_srtgroep_key = sg.ins_srtgroep_key - AND UPPER(sd.ins_srtdeel_omschrijving||'-'||sd.ins_srtdeel_code) = UPPER(i.ins_srtdeel_omschrijving || '-' || i.ins_srtdeel_code) - AND UPPER(sg.ins_srtgroep_omschrijving) = UPPER(i.ins_srtgroep_omschrijving) - AND UPPER(d.ins_discipline_omschrijving) = UPPER(i.ins_discipline_omschrijving)); - -BEGIN - fac_import_ins(p_import_key); - - -- controleer of de discipline, groep en objectsoort wel bestaan. - FOR rec IN c_disc - LOOP - fac.imp_writelog (p_import_key, 'E', 'Discipline bestaat nog niet', rec.ins_discipline_omschrijving); - END LOOP; - - FOR rec IN c_srtgroep - LOOP - fac.imp_writelog (p_import_key, 'E', 'Groep bestaat nog niet', rec.ins_discipline_omschrijving || ' / ' || rec.ins_srtgroep_omschrijving); - END LOOP; - - FOR rec IN c_srtdeel - LOOP - fac.imp_writelog (p_import_key, 'E', 'Objectsoort bestaat nog niet', rec.ins_discipline_omschrijving || ' / ' || rec.ins_srtgroep_omschrijving || ' / ' || rec.ins_srtdeel_code || ' ' || rec.ins_srtdeel_omschrijving); - END LOOP; - -END; -/ - - - -CREATE OR REPLACE PROCEDURE aaxx_update_asset (p_import_key IN NUMBER) -AS - v_count NUMBER; -BEGIN - SELECT count(*) - INTO v_count - FROM imp_log - WHERE fac_import_key = p_import_key - AND imp_log_status = 'E'; - - IF v_count = 0 - THEN - fac_update_ins(p_import_key); - ELSE - fac.imp_writelog (p_import_key, 'E', 'Verwerk actie niet uitgevoerd ivm fouten in bestand', ''); - END IF; -END; -/ - --- Overzicht met geplande en uitgevoerde inspecties. -CREATE OR REPLACE VIEW aaxx_v_rap_asset_insp -( - ins_deel_key, - ins_discipline_omschrijving, - ins_srtgroep_omschrijving, - ins_srtdeel_code, - ins_deel_omschrijving, - alg_locatie_plaats, - alg_locatie_omschrijving, - alg_gebouw_omschrijving, - alg_plaatsaanduiding, - ins_srtcontrole_omschrijving, - volgende_controle, - laatste_controle, - gepland_controle -) -AS - SELECT idg.ins_deel_key, - idg.ins_discipline_omschrijving, - idg.ins_srtgroep_omschrijving, - idg.ins_srtdeel_upper, - idg.ins_deel_omschrijving, - l.alg_locatie_plaats, - l.alg_locatie_omschrijving, - idg.alg_gebouw_omschrijving, - idg.alg_plaatsaanduiding, - idg.ins_srtcontrole_omschrijving, - idg.nextdate, - DECODE (TRUNC (idg.ins_deel_aanmaak), - TRUNC (dc.ins_deelsrtcontrole_datum), TO_DATE (NULL), - dc.ins_deelsrtcontrole_datum) - uitgevoerd_op, - dc.ins_deelsrtcontrole_plandatum - gepland_op - FROM (SELECT i.*, - sc.*, - fac.nextcyclusdatedeel (i.ins_deel_key, - sc.ins_srtcontrole_key, - 1) - nextdate, - (SELECT dsc.ins_deelsrtcontrole_key - FROM ins_deelsrtcontrole dsc - WHERE dsc.ins_deel_key = i.ins_deel_key - AND dsc.ins_srtcontrole_key = sc.ins_srtcontrole_key - AND NOT EXISTS - (SELECT dsc1.ins_deelsrtcontrole_key - FROM ins_deelsrtcontrole dsc1 - WHERE dsc.ins_deel_key = dsc1.ins_deel_key - AND dsc.ins_srtcontrole_key = - dsc1.ins_srtcontrole_key - AND dsc1.ins_deelsrtcontrole_key > - dsc.ins_deelsrtcontrole_key)) - ins_deelsrtcontrole_key1 - FROM ins_v_deel_gegevens i, - ins_srtcontrole sc, - ins_srtcontroledl_xcp xcp - WHERE i.ins_discipline_key = sc.ins_srtinstallatie_key - AND i.ins_deel_key = xcp.ins_deel_key - AND sc.ins_srtcontrole_key = xcp.ins_srtcontrole_key) idg, - ins_deelsrtcontrole dc, - alg_locatie l - WHERE idg.ins_deelsrtcontrole_key1 = dc.ins_deelsrtcontrole_key(+) - AND idg.alg_locatie_key = l.alg_locatie_key - ORDER BY fac.safe_to_number (ins_deel_omschrijving); - -------------------------------------------------------------------------------- --- Importfunctie om contactpersonen bij bedrijven toe te voegen aan FACILITOR --- --- -------------------------------------------------------------------------------- -CREATE OR REPLACE PROCEDURE aaxx_import_contactpersoon (p_import_key IN NUMBER) -AS - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_errormsg VARCHAR2 (400); - v_errorhint VARCHAR2 (400); - v_count NUMBER; -BEGIN - - v_errorhint := 'Generieke update'; - -- de sequence array staat beschreven in FAC_PACF.SRC bij de fac_import_perslid_upd_body proc - prs.import_perslid (p_import_key, - '0;0;0;0;0;0;1;2;3;5;' || - '4;0;0;0;0;7;8;9;0;11;' || - '10;12;13;6;0;0;14;15;0;0;'|| - '0;0;0;0;0;0;0;0;0;0;'|| - '0;0;0;0;0;0', - 'Afdelingscode;PersoonAchternaam;Tussenvoegsel;Voorletters;Voornaam;Titel/Aanhef;Telefoonnummer;Mobiel;Email;Functie;Personeelsnummer;Loginnaam;Password;Bedrijf;Autorisatieprofiel%' - ); - - -- Klantspecifieke aanpassingen - v_errorhint := 'Controle op Bedrijf'; - FOR rec IN (SELECT distinct prs_kenmerk1 FROM fac_imp_perslid) - LOOP - IF rec.prs_kenmerk1 IS NOT NULL - THEN - SELECT count(*) - INTO v_count - FROM prs_bedrijf - WHERE prs_bedrijf_verwijder IS NULL - AND UPPER(prs_bedrijf_naam) = upper(rec.prs_kenmerk1); - - IF v_count <> 1 - THEN - fac.imp_writelog (p_import_key, 'E', 'Bedrijf: ' || rec.prs_kenmerk1 || ' komt ' || v_count || ' keer voor in de lijst met bedrijven.', v_errorhint); - END IF; - END IF; - END LOOP; - - v_errorhint := 'Controle op Autorisatieprofiel'; - FOR rec IN (SELECT prs_kenmerk2 FROM fac_imp_perslid) - LOOP - IF rec.prs_kenmerk2 IS NOT NULL - THEN - SELECT count(*) - INTO v_count - FROM fac_groep - WHERE upper(fac_groep_omschrijving) = upper(rec.prs_kenmerk2); - - IF v_count <> 1 - THEN - fac.imp_writelog (p_import_key, 'E', 'Autorisatieprofiel: ' || rec.prs_kenmerk2 || ' komt ' || v_count || ' keer voor in de lijst met autorisatieprofielen.', v_errorhint); - END IF; - END IF; - END LOOP; - - COMMIT; -EXCEPTION - WHEN OTHERS - THEN - 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 aaxx_import_contactpersoon; -/ - - -CREATE OR REPLACE PROCEDURE aaxx_update_contactpersoon ( - p_import_key IN NUMBER) -IS - CURSOR c - IS - SELECT * FROM fac_imp_perslid; - - v_count NUMBER; - v_perslid_key NUMBER; - v_bedrijf_key NUMBER; - v_groep_key NUMBER; - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_errormsg VARCHAR2 (400); - v_errorhint VARCHAR2 (400); -BEGIN - -- generic update - prs.update_perslid (p_import_key, 'NR', 'A'); - - FOR rec IN c - LOOP - BEGIN - v_errorhint := 'Zoek aangemaakt persoon.'; - - SELECT MAX (prs_perslid_key) - INTO v_perslid_key - FROM prs_perslid p - WHERE rec.prs_perslid_naam = p.prs_perslid_naam - AND COALESCE (rec.prs_perslid_voornaam, 'Voornaam') = - COALESCE (p.prs_perslid_voornaam, 'Voornaam') - AND COALESCE (rec.prs_perslid_tussenvoegsel, 'Tussenvoegsel') = - COALESCE (p.prs_perslid_tussenvoegsel, 'Tussenvoegsel') - AND COALESCE (rec.prs_perslid_voorletters, 'Voorletters') = - COALESCE (p.prs_perslid_voorletters, 'Voorletters') - AND p.prs_perslid_aanmaak > SYSDATE - 1 - AND p.prs_perslid_verwijder IS NULL; - - IF v_perslid_key IS NULL - THEN - fac.imp_writelog ( - p_import_key, - 'E', - 'Persoon: ' - || rec.prs_perslid_naam - || '-' - || rec.prs_perslid_voornaam - || '-' - || rec.prs_perslid_voorletters - || ' kan niet gevonden worden.', - v_errorhint); - ELSE - v_errorhint := 'Zoek bedrijf.'; - - SELECT MAX (prs_bedrijf_key) - INTO v_bedrijf_key - FROM prs_bedrijf - WHERE prs_bedrijf_verwijder IS NULL - AND UPPER (prs_bedrijf_naam) = UPPER (rec.prs_kenmerk1); - - IF v_bedrijf_key IS NULL - THEN - fac.imp_writelog ( - p_import_key, - 'E', - 'Bedrijf: ' || rec.prs_kenmerk1 || ' kan niet gevonden worden.', - v_errorhint); - ELSE - INSERT INTO prs_contactpersoon (prs_contactpersoon_naam, - prs_contactpersoon_tussenv, - prs_contactpersoon_voorletters, - prs_contactpersoon_voornaam, - prs_contactpersoon_titel, - prs_contactpersoon_telefoon_1, - prs_contactpersoon_telefoon_2, - prs_contactpersoon_email, - prs_perslid_key, - prs_bedrijf_key) - VALUES (rec.prs_perslid_naam, - rec.prs_perslid_tussenvoegsel, - rec.prs_perslid_voorletters, - rec.prs_perslid_voornaam, - rec.prs_perslid_titel, - rec.prs_perslid_telefoonnr, - rec.prs_perslid_mobiel, - rec.prs_perslid_email, - v_perslid_key, - v_bedrijf_key); - - v_errorhint := 'Zoek autorisatiegroep.'; - - SELECT MAX (fac_groep_key) - INTO v_groep_key - FROM fac_groep - WHERE UPPER (rec.prs_kenmerk2) = UPPER (fac_groep_omschrijving); - - IF v_groep_key IS NULL - THEN - fac.imp_writelog ( - p_import_key, - 'E', - 'Autorisatiegroep: ' - || rec.prs_kenmerk2 - || ' kan niet gevonden worden.', - v_errorhint); - ELSE - INSERT INTO fac_gebruikersgroep (prs_perslid_key, - fac_groep_key) - VALUES (v_perslid_key, v_groep_key); - END IF; - END IF; - END IF; - END; - END LOOP; -EXCEPTION - WHEN OTHERS - THEN - 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 aaxx_update_contactpersoon; -/ - - - -------------------------------------------------------------------------------- --- Importfunctie om personen die gedefinieerd zijn in de AAIT database ook in --- de klantdatabase toe te voegen. --- kenmerk_key 4 = prs_perslid_key in AAIT database --- kenmerk_key 3 = personeelsnummer in AAIT --- kenmerk_key 2 = kostenplaats in AD -------------------------------------------------------------------------------- -CREATE OR REPLACE PROCEDURE aaxx_import_aafm_medewerkers ( - p_import_key IN NUMBER) -AS -BEGIN - NULL; -END; -/ - -CREATE OR REPLACE PROCEDURE aaxx_update_aafm_medewerkers ( - p_import_key IN NUMBER) -AS - CURSOR c - IS - SELECT afdelingscode, - persoonachternaam, - tussenvoegsel, - voorletters, - voornaam, - titel, - telefoonnummer, - mobiel, - email, - functie, - loginnaam, - personeelsnummer, - dienstverband, - uurloon, - kostenplaats, - prs_perslid_apikey, - i.prs_perslid_key prs_perslid_key_aait, - p.prs_perslid_key, - p.prs_perslid_nr - FROM aait.aait_imp_perslid i, - (SELECT prs_perslid_key, - prs_perslid_nr, - prs_kenmerklink_waarde aait_prs_perslid_key - FROM prs_perslid p, prs_kenmerklink kl - WHERE p.prs_perslid_key = kl.prs_link_key - AND kl.prs_kenmerk_key = 4 - AND p.prs_perslid_verwijder IS NULL - AND kl.prs_kenmerklink_verwijder IS NULL) p - WHERE i.prs_perslid_key = p.aait_prs_perslid_key(+) - AND i.prs_perslid_key IS NOT NULL - AND i.personeelsnummer <> 'N/A'; - - CURSOR c_del - IS - SELECT prs_perslid_key, - prs_perslid_naam, - prs_perslid_voornaam, - prs_perslid_login, - prs_afdeling_omschrijving, - klo.prs_kenmerklink_waarde nr - FROM prs_perslid p, prs_kenmerklink klo, prs_afdeling a - WHERE p.prs_perslid_key = klo.prs_link_key - AND p.prs_afdeling_key = a.prs_afdeling_key - AND prs_kenmerk_key = 3 -- personeelsnummer AAFM - AND prs_perslid_verwijder IS NULL - AND NOT EXISTS - (SELECT prs_kenmerklink_key - FROM prs_kenmerklink kl, aait.aait_imp_perslid i - WHERE kl.prs_link_key = p.prs_perslid_key AND prs_kenmerk_key = 4 -- prs_perslid_key in AAIT - AND fac.safe_to_number(kl.prs_kenmerklink_waarde) = i.prs_perslid_key); - - v_count NUMBER; - v_prs_bedrijf_key NUMBER; - v_prs_bedrijf_naam VARCHAR2 (100); - v_prs_afdeling_key NUMBER; - v_prs_srtperslid_key NUMBER; - v_prs_perslid_key NUMBER; - v_fac_groep_key NUMBER; - v_fac_default_key NUMBER; - v_errormsg VARCHAR2 (1000); - v_error_hint VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (2000); -BEGIN - - v_errormsg := 'Controle of importbestand goed gevuld is.'; - SELECT COUNT(*) - INTO v_count - FROM aait.aait_imp_perslid - WHERE prs_perslid_key IS NOT NULL; - - IF v_count < 250 THEN - fac.imp_writelog (p_import_key, 'E', 'Import bestand bevat te weinig (' || v_count || ') records.', ''); - RETURN; - END IF; - - IF aaxx_get_user = 'SITECH' - THEN - v_prs_bedrijf_naam := 'DERDEN'; - ELSE - v_prs_bedrijf_naam := 'AAFM'; - END IF; - - v_errormsg := 'Check of autorisatiegroep al bestaat'; - BEGIN - SELECT fac_groep_key - INTO v_fac_groep_key - FROM fac_groep - WHERE UPPER (fac_groep_omschrijving) = 'AAFM MEDEWERKER'; - EXCEPTION - WHEN NO_DATA_FOUND - THEN - INSERT INTO fac_groep (fac_groep_omschrijving) - VALUES ('AAFM Medewerker') - RETURNING fac_groep_key - INTO v_fac_groep_key; - END; - - v_errormsg := 'Zoek de default groep'; - BEGIN - SELECT fac_groep_key - INTO v_fac_default_key - FROM fac_groep - WHERE UPPER (fac_groep_omschrijving) = '_DEFAULT'; - EXCEPTION - WHEN NO_DATA_FOUND - THEN - fac.imp_writelog (p_import_key, - 'E', - 'Defaultgroep kan niet gevonden worden.' , - ''); - END; - - -- Check of bedrijf AAFM al bestaat - v_errormsg := 'Check of bedrijf bestaat'; - - BEGIN - SELECT prs_bedrijf_key - INTO v_prs_bedrijf_key - FROM prs_bedrijf - WHERE prs_bedrijf_naam = v_prs_bedrijf_naam - AND prs_bedrijf_intern = 1 - AND prs_bedrijf_verwijder IS NULL; - EXCEPTION - WHEN NO_DATA_FOUND - THEN - INSERT INTO prs_bedrijf (prs_bedrijf_naam, prs_bedrijf_intern) - VALUES ('AAFM', 1) - RETURNING prs_bedrijf_key - INTO v_prs_bedrijf_key; - END; - - -- Check of afdeling AAFM al bestaat - v_errormsg := 'Check of afdeling bestaat'; - - BEGIN - IF aaxx_get_user = 'SITECH' - THEN - SELECT prs_afdeling_key - INTO v_prs_afdeling_key - FROM prs_afdeling - WHERE prs_afdeling_naam = '284' - AND prs_bedrijf_key = v_prs_bedrijf_key - AND prs_afdeling_verwijder IS NULL; - ELSE - SELECT prs_afdeling_key - INTO v_prs_afdeling_key - FROM prs_afdeling - WHERE prs_afdeling_omschrijving = 'AAFM' - AND prs_bedrijf_key = v_prs_bedrijf_key - AND prs_afdeling_verwijder IS NULL; - END IF; - EXCEPTION - WHEN NO_DATA_FOUND - THEN - INSERT INTO prs_afdeling (prs_afdeling_naam, - prs_afdeling_omschrijving, - prs_bedrijf_key) - VALUES ('AAFM', 'AAFM', v_prs_bedrijf_key) - RETURNING prs_afdeling_key - INTO v_prs_afdeling_key; - END; - - v_errormsg := 'Bepaal srtperslid'; - - SELECT prs_srtperslid_key - INTO v_prs_srtperslid_key - FROM prs_srtperslid - WHERE prs_srtperslid_omschrijving = 'Onbekend'; - - FOR rec IN c - LOOP - BEGIN - -- set alvast de variable om straks de kenmerken goed te kunnen opslaan. - v_prs_perslid_key := rec.prs_perslid_key; - - -- als de persoon een personeelsnummer van de klant heeft gaan we niets aan zijn - -- gegevens aanpassen maar wordt de persoon alleen aan de autorisatiegroep toegevoegd. - IF rec.prs_perslid_nr IS NULL - THEN - IF rec.prs_perslid_key IS NULL - THEN - -- misschien kunnen we de persoon nog vinden op basis van personeelsnummer - v_errormsg := 'Zoek persoon met zelfde personeelsnummer ' || rec.personeelsnummer; - SELECT MAX(prs_perslid_key) - INTO v_prs_perslid_key - FROM prs_kenmerklink, prs_perslid - WHERE prs_kenmerk_key = 3 - AND prs_kenmerklink_verwijder IS NULL - AND prs_link_key = prs_perslid_key - AND prs_perslid_verwijder IS NULL - AND rec.personeelsnummer = prs_kenmerklink_waarde; - - -- persoon bestaat nog niet - v_errormsg := 'Controle login ' || rec.personeelsnummer; - SELECT count(prs_perslid_key) - INTO v_count - FROM prs_perslid - WHERE prs_perslid_oslogin = UPPER(rec.loginnaam); - - IF v_count = 0 AND v_prs_perslid_key IS NULL THEN - - v_errormsg := 'Toevoegen persoon ' || rec.personeelsnummer; - - INSERT INTO prs_perslid (prs_afdeling_key, - prs_perslid_naam, - prs_perslid_tussenvoegsel, - prs_perslid_voorletters, - prs_perslid_voornaam, - prs_perslid_titel, - prs_perslid_telefoonnr, - prs_perslid_mobiel, - prs_perslid_email, - prs_srtperslid_key, - prs_perslid_oslogin, - prs_perslid_apikey, - prs_perslid_ingids, - prs_perslid_dienstverband, - prs_perslid_uurloon) - VALUES (v_prs_afdeling_key, - rec.persoonachternaam, - rec.tussenvoegsel, - rec.voorletters, - rec.voornaam, - rec.titel, - SUBSTR(rec.telefoonnummer,1,15), - rec.mobiel, - rec.email, - v_prs_srtperslid_key, - rec.loginnaam, - rec.prs_perslid_apikey, - NULL, - fac.safe_to_number ( - REPLACE (rec.dienstverband, ',', '.')), - fac.safe_to_number (REPLACE (rec.uurloon, ',', '.'))) - RETURNING prs_perslid_key - INTO v_prs_perslid_key; - - ELSE - fac.imp_writelog (p_import_key, - 'E', - 'Login bestaat al bij andere persoon. (' || rec.persoonachternaam || ' - ' || rec.loginnaam || ' - ' || rec.personeelsnummer || ')' , - ''); - END IF; - - ELSE - -- persoon bestaat al - v_errormsg := 'Aanpassen persoon ' || rec.personeelsnummer; - - UPDATE prs_perslid - SET prs_afdeling_key = v_prs_afdeling_key, - prs_perslid_naam = rec.persoonachternaam, - prs_perslid_tussenvoegsel = rec.tussenvoegsel, - prs_perslid_voorletters = rec.voorletters, - prs_perslid_voornaam = rec.voornaam, - prs_perslid_titel = rec.titel, - prs_perslid_telefoonnr = SUBSTR(rec.telefoonnummer,1,15), - prs_perslid_mobiel = rec.mobiel, - prs_perslid_email = COALESCE(prs_perslid_email, rec.email), - prs_srtperslid_key = v_prs_srtperslid_key, - prs_perslid_oslogin = rec.loginnaam, - prs_perslid_apikey = rec.prs_perslid_apikey, - prs_perslid_ingids = NULL, - prs_perslid_dienstverband = - fac.safe_to_number ( - REPLACE (rec.dienstverband, ',', '.')), - prs_perslid_uurloon = - fac.safe_to_number (REPLACE (rec.uurloon, ',', '.')) - WHERE prs_perslid_key = rec.prs_perslid_key; - - - END IF; - -- verwijder de zojuist toegevoegde persoon uit de default groep. - DELETE fac_gebruikersgroep - WHERE fac_groep_key = v_fac_default_key - AND prs_perslid_key = v_prs_perslid_key; - END IF; - - IF v_prs_perslid_key IS NOT NULL - THEN - v_errormsg := 'Toevoegen key naar AAIT prs_perslid_key kenmerk ' || v_prs_perslid_key; - aaxx.set_prs_kenmerk (p_import_key, - 'P', - 4, - v_prs_perslid_key, - rec.prs_perslid_key_aait); - - v_errormsg := 'Toevoegen personeelsnummer kenmerk ' || v_prs_perslid_key; - aaxx.set_prs_kenmerk (p_import_key, - 'P', - 3, - v_prs_perslid_key, - rec.personeelsnummer); - - v_errormsg := 'Toevoegen kostenplaats kenmerk ' || v_prs_perslid_key; - aaxx.set_prs_kenmerk (p_import_key, - 'P', - 2, - v_prs_perslid_key, - rec.kostenplaats); - - IF rec.afdelingscode = 'SD' - THEN - -- Servicedesk autorisatie toevoegen. - v_errormsg := 'Toevoegen SD autorisatie ' || rec.personeelsnummer; - INSERT INTO fac_gebruikersgroep (prs_perslid_key, fac_groep_key) - (SELECT v_prs_perslid_key, fac_groep_key - FROM fac_groep g - WHERE TRIM (fac_groep_upper) = 'AAFM SERVICEDESK' - AND NOT EXISTS - (SELECT fac_gebruikersgroep_key - FROM fac_gebruikersgroep gg - WHERE gg.prs_perslid_key = v_prs_perslid_key - AND gg.fac_groep_key = g.fac_groep_key)); - - -- Servicedesk medewerkers mandateren voor alle kostenplaatsen. - v_errormsg := 'Toevoegen SD mandaat ' || rec.personeelsnummer; - DELETE prs_perslidkostenplaats - WHERE prs_perslid_key = v_prs_perslid_key - AND prs_kostenplaats_key IS NOT NULL; - - INSERT INTO prs_perslidkostenplaats (prs_perslid_key) - (SELECT v_prs_perslid_key FROM DUAL - WHERE NOT EXISTS - (SELECT prs_perslid_key - FROM prs_perslidkostenplaats pkp - WHERE pkp.prs_perslid_key = v_prs_perslid_key)); - - END IF; - - - -- voeg iedereen toe aan de gebruikersgroep AAFM Medewerker - INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) - SELECT fac_groep_key, prs_perslid_key - FROM fac_groep g, prs_perslid p - WHERE g.fac_groep_key = v_fac_groep_key - AND p.prs_perslid_key = v_prs_perslid_key - AND NOT EXISTS - (SELECT fac_gebruikersgroep_key - FROM fac_gebruikersgroep gg - WHERE gg.prs_perslid_key = p.prs_perslid_key - AND gg.fac_groep_key = g.fac_groep_key); - - END IF; - - COMMIT; - EXCEPTION - WHEN OTHERS - THEN - v_error_hint := v_errormsg; - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - v_errormsg - || 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_errormsg, - v_error_hint); - COMMIT; -- tbv logging - END; - END LOOP; - - DELETE fac_gebruikersgroep - WHERE fac_groep_key = v_fac_groep_key - AND prs_perslid_key NOT IN - (SELECT p.prs_perslid_key - FROM aait.aait_imp_perslid i, - prs_perslid p, - prs_kenmerklink kl - WHERE p.prs_perslid_key = kl.prs_link_key - AND kl.prs_kenmerk_key = 3 - AND i.personeelsnummer = kl.prs_kenmerklink_waarde); - - -- probeer personen te verwijderen die niet meer voorkomen in het importbestand - FOR rec_del IN c_del - LOOP - BEGIN - IF COALESCE(rec_del.prs_perslid_login, SYSDATE -11) > SYSDATE -10 - THEN - fac.imp_writelog (p_import_key, - 'I', - 'Persoon ' || rec_del.prs_perslid_naam || ' (' || rec_del.prs_perslid_voornaam || ') zou verwijderd moeten worden', - ''); - UPDATE prs_perslid - SET prs_perslid_oslogin = NULL, - prs_perslid_oslogin2 = NULL - WHERE prs_perslid_key = rec_del.prs_perslid_key; - ELSE - fac.imp_writelog (p_import_key, - 'I', - 'Persoon ' || rec_del.prs_perslid_naam || ' (' || rec_del.prs_perslid_voornaam || ') zou verwijderd moeten worden', - ''); - aaxx.prs_del_perslid (p_import_key, rec_del.prs_perslid_key, 0, 0); - END IF; - END; - END LOOP; -END; -/ - - --- view om ongeldige records te vinden. -CREATE OR REPLACE VIEW aaxx_rap_perslid_mismatch (hide_f_index, naam, voornaam, lastlogin, afdeling, AAFMpersoneelsnummer) -AS - SELECT sysdate - prs_perslid_login, - prs_perslid_naam, - prs_perslid_voornaam, - prs_perslid_login, - prs_afdeling_omschrijving, - klo.prs_kenmerklink_waarde nr - FROM prs_perslid p, prs_kenmerklink klo, prs_afdeling a - WHERE p.prs_perslid_key = klo.prs_link_key - AND p.prs_afdeling_key = a.prs_afdeling_key - AND prs_kenmerk_key = 3 - AND prs_perslid_verwijder IS NULL - AND prs_perslid_login IS NOT NULL - AND NOT EXISTS - (SELECT prs_kenmerklink_key - FROM prs_kenmerklink - WHERE prs_link_key = p.prs_perslid_key AND prs_kenmerk_key = 4); - - -------------------------------------------------------------------------------- --- KOPPELINGEN MET LEVERANCIERS -------------------------------------------------------------------------------- -CREATE OR REPLACE PROCEDURE aaxx_import_opdrstat_strukton ( - p_import_key IN NUMBER) -AS - c_delim VARCHAR2 (1) := ';'; - v_newline VARCHAR2 (1000); -- Input line - v_errormsg VARCHAR2 (4000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_aanduiding VARCHAR2 (1200); - v_dummy VARCHAR2 (200); - header_is_valid NUMBER := 0; - v_count NUMBER; - v_count_tot NUMBER (10) := 0; - v_count_import NUMBER (10) := 0; - v_ongeldig NUMBER (1) := 0; - -- De importvelden - v_mld_opdr_opmerking VARCHAR2 (4000); - v_mld_opdr_key NUMBER (10); - v_mld_opdr_key_tekst VARCHAR2 (100); - v_extern_nummer VARCHAR2 (100); - v_status NUMBER (10); - v_status_tekst VARCHAR2 (100); - v_status_code VARCHAR2 (100); - v_datumtijd DATE; - v_datumtijd_tekst VARCHAR2 (100); - v_opmerking VARCHAR2 (3000); - - -- Overige velden: - CURSOR c1 - IS - SELECT * - FROM fac_imp_file - WHERE fac_import_key = p_import_key - ORDER BY fac_imp_file_index; -BEGIN - -- Eerst opruiming - DELETE FROM aaxx_imp_opdrstat_strukton; - - COMMIT; - - FOR rec1 IN c1 - LOOP - BEGIN - v_newline := rec1.fac_imp_file_line; - v_errormsg := 'Fout opvragen te importeren rij'; - v_aanduiding := ''; - v_ongeldig := 0; - - fac.imp_getfield (v_newline, c_delim, v_mld_opdr_key_tekst); - fac.imp_getfield (v_newline, c_delim, v_extern_nummer); - fac.imp_getfield (v_newline, c_delim, v_status_code); -- typeID - fac.imp_getfield (v_newline, c_delim, v_datumtijd_tekst); - fac.imp_getfield (v_newline, c_delim, v_status_tekst); - fac.imp_getfield (v_newline, c_delim, v_opmerking); - v_opmerking := substr(v_opmerking, 1, 1000); - -- verwijder de markering voor cr/lf die we zelf in de stylesheet toegevoegd hebben. - v_opmerking := replace(v_opmerking, '@@',CHR (13)); - v_aanduiding := - '[' - || v_extern_nummer - || '|' - || v_mld_opdr_key_tekst - || '|' - || v_status_tekst - || '|' - || v_opmerking - || '] '; - - -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen - -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen! - -- Ik negeer alles totdat ik een geldige header ben gepasseerd. - IF (header_is_valid = 0) - THEN - IF UPPER (TRIM (v_mld_opdr_key_tekst)) = 'REFERENCEID' - AND UPPER (TRIM (v_extern_nummer)) = 'SERVICEREQUESTID' - AND UPPER (TRIM (v_status_code)) = 'TYPEID' - AND UPPER (TRIM (v_datumtijd_tekst)) = 'DATETIME' - AND UPPER (TRIM (v_opmerking)) = 'REMARKS' - THEN - header_is_valid := 1; - END IF; - ELSE - v_count_tot := v_count_tot + 1; - -- Controleer alle veldwaarden - v_errormsg := 'Fout inlezen mld_opdr_key [' || v_aanduiding || ']'; - v_mld_opdr_key := TRIM (v_mld_opdr_key); - - BEGIN - SELECT o.mld_opdr_key, o.mld_opdr_opmerking - INTO v_mld_opdr_key, v_mld_opdr_opmerking - FROM mld_opdr o, mld_melding m, ins_tab_discipline d, ins_srtdiscipline sd, mld_stdmelding std - WHERE o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = d.ins_discipline_key - AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key - AND sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr = v_mld_opdr_key_tekst; - - EXCEPTION WHEN NO_DATA_FOUND THEN - BEGIN - fac.imp_writelog (p_import_key, 'W', 'Opdracht kan niet gevonden worden. [' || v_aanduiding || ']', ''); - - -- kijk nu of de opdracht gevonden kan worden a.d.h.v het Struktonnummer - SELECT o.mld_opdr_key, o.mld_opdr_opmerking - INTO v_mld_opdr_key, v_mld_opdr_opmerking - FROM mld_opdr o, mld_kenmerkopdr ko, mld_kenmerk k - WHERE o.mld_opdr_key = ko.mld_opdr_key - AND ko.mld_kenmerk_key = k.mld_kenmerk_key - AND k.mld_srtkenmerk_key = 35 - AND ko.mld_kenmerkopdr_waarde = v_extern_nummer; - - EXCEPTION WHEN OTHERS THEN - v_ongeldig := 1; - v_errormsg := 'Opdracht kan niet gevonden worden (intern/externnr). [' || v_aanduiding || ']'; - v_mld_opdr_key := NULL; - END; - END; - - IF v_ongeldig = 0 - THEN - v_errormsg := - 'Fout bij bepalen status [' || v_aanduiding || ']'; - - CASE - WHEN v_status_code = '5' - THEN - v_status := 5; -- uitgegeven - WHEN v_status_code = '10' - THEN - v_status := 8; -- geaccepteerd - WHEN v_status_code = '20' -- monteur gereed - THEN - v_status := 6; -- afgemeld - WHEN v_status_code = '25' -- specialist gereed - THEN - v_status := 6; -- afgemeld - WHEN v_status_code = '30' -- technisch gereed - THEN - v_status := 6; -- afgemeld --- For future use --- WHEN v_status_code = '40' -- uitgeprijst --- THEN --- v_status := 6; -- afgemeld - WHEN v_status_code = '70' - THEN - v_status := 1; -- geannuleerd - WHEN v_status_code = '80' - THEN - v_status := 1; -- afgewezen - ELSE - v_status := NULL; - v_ongeldig := 1; -- nog te bezien. - END CASE; - END IF; - - -- Lees alle veldwaarden - IF v_ongeldig = 0 - THEN - v_errormsg := - 'Fout bij converteren datumtijd [' || v_aanduiding || ']'; - IF INSTR (v_datumtijd_tekst, '.') > 0 - THEN - v_datumtijd := - fac.safe_to_date ( - REPLACE ( - SUBSTR (v_datumtijd_tekst, - 1, - INSTR (v_datumtijd_tekst, '.') - 1), - 'T', - ' '), - 'yyyy-mm-dd hh24:mi:ss'); - ELSE - v_datumtijd := fac.safe_to_date(v_datumtijd_tekst, 'yyyy-mm-dd hh24:mi:ss'); - END IF; - - IF v_datumtijd = NULL - THEN - v_ongeldig := 0; - END IF; - END IF; - - IF v_ongeldig = 0 - THEN - v_errormsg := - 'Fout bij aanvullen opmerking [' || v_aanduiding || ']'; - - -- controleer of de opmerking niet leeg is en of dezelfde opmerking al bij een eerdere statusovergang - -- gemeld is. - IF v_opmerking IS NOT NULL AND INSTR(v_mld_opdr_opmerking, v_opmerking) = 0 - THEN - v_opmerking := - '[' - || v_datumtijd_tekst - || '] - ' - || v_status_tekst - || CHR (13) - || CHR (10) - || v_opmerking; - ELSE - v_opmerking := - '[' || v_datumtijd_tekst || '] - ' || v_status_tekst; - END IF; - END IF; - - -- Insert geformatteerde import record - IF (v_ongeldig = 0) - THEN - BEGIN - v_errormsg := - 'Fout toevoegen opdracht status [' - || v_aanduiding - || ']'; - - INSERT INTO aaxx_imp_opdrstat_strukton (mld_opdr_key, - extern_nummer, - status, - datumtijd, - opmerking) - VALUES (v_mld_opdr_key, - v_extern_nummer, - v_status, - v_datumtijd, - v_opmerking); - - v_count_import := v_count_import + 1; - EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 200); - v_errormsg := - v_errormsg - || ' ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog ( - p_import_key, - 'E', - v_aanduiding || v_errormsg, - 'Fout bij toevoegen regel aan importtabel aaxx_imp_opdr_status_strukton.'); - END; - ELSE - IF v_status_code <> '40' AND v_status_code <> '45' - THEN - fac.imp_writelog (p_import_key, - 'E', - v_errormsg, - ''); - END IF; - END IF; - END IF; - END; - END LOOP; - - IF (header_is_valid = 0) - THEN - fac.imp_writelog (p_import_key, - 'E', - 'Ongeldig importbestand', - 'Geen header of header niet volgens specificatie!'); - END IF; - - COMMIT; -EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 200); - v_errormsg := SUBSTR( - v_errormsg - || 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')', 1, 490); - fac.imp_writelog (p_import_key, - 'E', - SUBSTR(v_aanduiding, 1, 500) || ' - ' || v_errormsg, - 'Inleesproces opdrachtstatusberichten afgebroken!'); -END; -/ - - -CREATE OR REPLACE PROCEDURE aaxx_update_opdrstat_strukton (p_import_key IN NUMBER) -AS - -- Cursor loopt - in volgorde! - over alle ingelezen opdrachtstatusberichten. - CURSOR c1 - IS - SELECT mld_opdr_key, - extern_nummer, - datumtijd, - status, - opmerking - FROM aaxx_imp_opdrstat_strukton - ORDER BY 1, 3; - - v_errormsg VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_aanduiding VARCHAR2 (200); - v_count_tot NUMBER (10); - v_count NUMBER (10); - v_mld_key NUMBER (10) := 0; - v_opdr_key NUMBER (10) := 0; - v_opdr_status NUMBER (10) := 0; - v_user_key NUMBER (10) := 0; - v_mld_typeopdr_key NUMBER (10); - v_mld_kenmerk_key NUMBER (10); - v_mld_kenmerkopdr_key NUMBER (10); - v_mld_srtkenmerk_key NUMBER (10); -BEGIN - -- Loop door alle geimporteerde opdrachtstatusberichten en verwerk deze. - v_count_tot := 0; - - -- Stel de key in van het srtkenmerk 'Ref. Nr. Leverancier'. Hier wordt - -- het nummer dat Strukton aan de call gegeven heeft geregistreerd. - IF aaxx_get_user = 'SABIC' THEN v_mld_srtkenmerk_key := 35; END IF; - IF aaxx_get_user = 'ENEXIS' THEN v_mld_srtkenmerk_key := 381; END IF; - IF aaxx_get_user = 'ESSENT' THEN v_mld_srtkenmerk_key := 741; END IF; - IF aaxx_get_user = 'NS' THEN v_mld_srtkenmerk_key := 761; END IF; - IF aaxx_get_user = 'SITECH' THEN v_mld_srtkenmerk_key := 123; END IF; - IF aaxx_get_user = 'VL' THEN v_mld_srtkenmerk_key := 82; END IF; - IF aaxx_get_user = 'HUNTSMAN' THEN v_mld_srtkenmerk_key := 381; END IF; - IF aaxx_get_user = 'DOW' THEN v_mld_srtkenmerk_key := 81; END IF; - - v_user_key := 10; -- Strukton user - - FOR rec IN c1 - LOOP - BEGIN - v_aanduiding := - '[' - || rec.mld_opdr_key - || '|' - || SUBSTR (rec.opmerking, 1, 100) - || '] '; - v_count_tot := v_count_tot + 1; - v_count := 0; - - -- Key van melding/opdracht bepalen en externnr bij opdracht opslaan. - IF (rec.mld_opdr_key IS NOT NULL) - THEN - v_errormsg := 'Fout bij bepalen opdracht.'; - - SELECT mld_melding_key, mld_opdr_key, mld_statusopdr_key, mld_typeopdr_key - INTO v_mld_key, v_opdr_key, v_opdr_status, v_mld_typeopdr_key - FROM mld_opdr - WHERE mld_opdr_key = rec.mld_opdr_key; - - v_errormsg := 'Fout bij bepalen kenmerk extern nummer.'; - SELECT k.mld_kenmerk_key - INTO v_mld_kenmerk_key - FROM mld_kenmerk k - WHERE k.mld_srtkenmerk_key = v_mld_srtkenmerk_key - AND k.mld_typeopdr_key = v_mld_typeopdr_key; - - v_errormsg := 'Fout bij bepalen kenmerkopdracht extern nummer.'; - SELECT max(ko.mld_kenmerkopdr_key) - INTO v_mld_kenmerkopdr_key - FROM mld_kenmerkopdr ko - WHERE ko.mld_opdr_key = v_opdr_key - AND v_mld_kenmerk_key = ko.mld_kenmerk_key; - - v_errormsg := 'Fout bij aanpassen extern nummer.'; - IF v_mld_kenmerkopdr_key IS NULL THEN - -- kenmerk toevoegen - INSERT INTO mld_kenmerkopdr (mld_kenmerk_key, mld_opdr_key, mld_kenmerkopdr_waarde) - VALUES (v_mld_kenmerk_key, v_opdr_key, rec.extern_nummer); - ELSE - -- kenmerk aanpassen - UPDATE mld_kenmerkopdr SET mld_kenmerkopdr_waarde = rec.extern_nummer WHERE mld_kenmerkopdr_key = v_mld_kenmerkopdr_key; - END IF; - - v_errormsg := 'Fout bij bijwerken opdracht-opmerking.'; - - v_count := LENGTH (rec.opmerking) + 5; -- Beetje speling qua lengte! - - UPDATE mld_opdr - SET mld_opdr_opmerking = - DECODE ( - mld_opdr_opmerking, - NULL, - rec.opmerking, - rec.opmerking - || CHR (13) - || CHR (10) - || SUBSTR (mld_opdr_opmerking, 1, (4000 - v_count))) - WHERE mld_opdr_key = v_opdr_key; - - IF v_opdr_status <> rec.status - THEN - IF rec.status = 8 AND v_opdr_status = 5 - THEN - -- Accepteer opdracht als de opdracht uitgegeven was - MLD.setopdrachtstatus (v_opdr_key, 8, v_user_key); -- Facilitor - ELSIF rec.status = 6 AND v_opdr_status = 5 - THEN - -- Meld de opdracht af als deze uitgegeven was - MLD.setopdrachtstatus (v_opdr_key, 8, v_user_key); -- Facilitor, eerst accepteren - MLD.setopdrachtstatus (v_opdr_key, 6, v_user_key); -- Facilitor - ELSIF rec.status = 6 AND v_opdr_status = 8 - THEN - -- Meld de opdracht af als deze geaccepteerd was - MLD.setopdrachtstatus (v_opdr_key, 6, v_user_key); -- Facilitor - ELSIF rec.status = 1 AND v_opdr_status = 5 - THEN - -- Opdracht is afgewezen op het moment dat de opdracht nog niet geaccepteerd is. - MLD.setopdrachtstatus (v_opdr_key, 1, v_user_key); -- Facilitor - MLD.updatemeldingstatusAV (v_mld_key, 0, v_user_key, 0); - ELSIF rec.status = 1 AND v_opdr_status = 8 - THEN - -- Opdracht is afgewezen op het moment dat de opdracht al geaccepteerd is. - MLD.setopdrachtstatus (v_opdr_key, 1, v_user_key); -- Facilitor - MLD.updatemeldingstatusAV (v_mld_key, 0, v_user_key, 0); - END IF; - - IF rec.status = 6 AND v_opdr_status <> 6 - THEN - v_errormsg := 'Fout bij statusaanpassing melding.'; - -- Sinds AADO#30922 wordt de melding niet meer automatisch afgemeld. - MLD.updatemeldingstatusAV (v_mld_key, 0, v_user_key, 0); - END IF; - END IF; - END IF; - - COMMIT; - EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - v_errormsg - || ' ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || v_errormsg, - 'Fout bij verwerken opdrachtstatusbericht.'); - END; - END LOOP; - - COMMIT; -END; -/ - - -------------------------------------------------------------------------------- --- IMPORTFUNCTIE - DIENST_LOC_BLD -------------------------------------------------------------------------------- -CREATE OR REPLACE PROCEDURE aaxx_import_dienst_loc_bld ( - p_import_key IN NUMBER) -AS - CURSOR c_cursor - IS - SELECT * - FROM fac_imp_file - WHERE fac_import_key = p_import_key - ORDER BY fac_imp_file_index; - - v_newline VARCHAR2 (1000); -- Import line - v_field VARCHAR2 (100); -- Import field - v_fielddelimitor VARCHAR2 (1); -- Field seperator - v_errormsg VARCHAR (200); - v_errorhint VARCHAR (200); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_skipfield VARCHAR2 (100); - -- De importvelden - v_bedrijf_naam VARCHAR2 (100); - v_bedrijf_nr VARCHAR2 (100); - v_dienst_oms VARCHAR2 (100); - v_locatie_code VARCHAR2 (100); - v_gebouw_code VARCHAR2 (100); - header_found BOOLEAN; -BEGIN - -- Init - header_found := FALSE; - v_fielddelimitor := ';'; - - -- Clear my previous imported rows - DELETE FROM aaxx_imp_dienst_loc_bld; - - FOR rec1 IN c_cursor - LOOP - BEGIN - v_newline := rec1.fac_imp_file_line; - - IF SUBSTR (v_newline, 1, 3) = '?' - THEN - -- EF BB BF aangetroffen - fac.imp_writelog (p_import_key, - 'W', - 'Byte Order Mark aangetroffen', - 'Bestand heeft onbehandeld UTF-8 formaat.'); - v_newline := SUBSTR (v_newline, 4); - END IF; - - fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijf_naam); - fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijf_nr); - fac.imp_getfield (v_newline, v_fielddelimitor, v_dienst_oms); - fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie_code); - fac.imp_getfield (v_newline, v_fielddelimitor, v_gebouw_code); - - -- Skip until a valid header is found - IF UPPER (v_bedrijf_naam) = 'BEDRIJFNAAM' - AND UPPER (v_bedrijf_nr) = 'BEDRIJF_NR' - AND UPPER (v_dienst_oms) = 'DIENST' - AND UPPER (v_locatie_code) = 'LOCATIE_CODE' - AND UPPER (v_gebouw_code) = 'GEBOUW_CODE' - THEN - -- Sla de kopregel over. - header_found := TRUE; - ELSIF (header_found) - THEN - INSERT INTO aaxx_imp_dienst_loc_bld (prs_bedrijf_naam, - prs_bedrijf_nr, - prs_dienst_omschrijving, - alg_locatie_code, - alg_gebouw_code) - VALUES (SUBSTR (v_bedrijf_naam, 1, 60), - SUBSTR (v_bedrijf_nr, 1, 50), - SUBSTR (v_dienst_oms, 1, 60), - SUBSTR (v_locatie_code, 1, 10), - SUBSTR (v_gebouw_code, 1, 12)); - END IF; - - COMMIT; - END; - END LOOP; - - IF NOT header_found - THEN - fac.imp_writelog ( - p_import_key, - 'E', - 'Geen geldige header aangetroffen', - 'Bestand is geen geldig BedrijfDienstLocatieGebouw importbestand.'); - 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.imp_writelog (p_import_key, - 'E', - SUBSTR (v_errormsg, 1, 1000), - ''); - - -- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden. - DELETE FROM aaxx_imp_dienst_loc_bld; -END; -/ - -CREATE OR REPLACE PROCEDURE aaxx_update_dienst_loc_bld ( - p_import_key IN NUMBER) -AS - CURSOR cbdlg - IS - SELECT prs_bedrijf_naam, - prs_bedrijf_nr, - prs_dienst_omschrijving, - alg_locatie_code, - alg_gebouw_code - FROM aaxx_imp_dienst_loc_bld - WHERE prs_dienst_omschrijving IS NOT NULL; - - v_oldcountbdlg NUMBER; - v_newcountbdlg NUMBER; - v_prs_bedrijf_key NUMBER; - v_prs_dienst_key NUMBER; - v_alg_locatie_key NUMBER; - v_alg_gebouw_key NUMBER; - v_errormsg VARCHAR (1000); - v_error_hint VARCHAR (1000); - oracle_err_mes VARCHAR2 (150); - oracle_err_num VARCHAR2 (150); - currentversion fac_module.fac_module_version%TYPE; -BEGIN - SELECT MAX (fac_module_version) INTO currentversion FROM fac_module; - - fac.imp_writelog ( - p_import_key, - 'I', - 'Arcadis Aqumen BedrijfDienstLocatieGebouw import version ' - || currentversion, - '$Revision$'); - - SELECT COUNT ( * ) INTO v_oldcountbdlg FROM aaxx_imp_dienst_loc_bld; - - IF v_oldcountbdlg = 0 - THEN - fac.imp_writelog ( - p_import_key, - 'E', - 'Arcadis Aqumen BedrijfDienstLocatieGebouw import bevat geen records', - '$Revision$'); - RETURN; - END IF; - - -- How many active records are now present? - SELECT COUNT ( * ) INTO v_oldcountbdlg FROM prs_bedrijfdienstlocatie; - - -- remove the existing records - DELETE prs_bedrijfdienstlocatie; - - FOR rec IN cbdlg - LOOP - BEGIN - v_errormsg := - 'Kan dienst niet bepalen [' - || rec.prs_dienst_omschrijving - || '] '; - - SELECT prs_dienst_key - INTO v_prs_dienst_key - FROM prs_dienst - WHERE UPPER (prs_dienst_omschrijving) = - UPPER (rec.prs_dienst_omschrijving); - - v_errormsg := - 'Kan locatie niet bepalen [' || rec.alg_locatie_code || '] '; - - IF rec.alg_locatie_code IS NOT NULL - THEN - SELECT alg_locatie_key - INTO v_alg_locatie_key - FROM alg_v_aanweziglocatie - WHERE UPPER (alg_locatie_code) = UPPER (rec.alg_locatie_code); - ELSE - v_alg_locatie_key := NULL; - END IF; - - v_errormsg := - 'Kan gebouw niet bepalen [' || rec.alg_gebouw_code || '] '; - - IF rec.alg_gebouw_code IS NOT NULL - THEN - SELECT alg_gebouw_key - INTO v_alg_gebouw_key - FROM alg_v_aanweziggebouw - WHERE alg_gebouw_upper = UPPER (rec.alg_gebouw_code); - - v_alg_locatie_key := NULL; - ELSE - v_alg_gebouw_key := NULL; - END IF; - - v_errormsg := - 'Kan bedrijf niet bepalen [' - || rec.prs_bedrijf_naam - || '(' - || rec.prs_bedrijf_nr - || ')' - || '] '; - - SELECT prs_bedrijf_key - INTO v_prs_bedrijf_key - FROM prs_v_aanwezigbedrijf - WHERE UPPER (prs_bedrijf_naam) = UPPER (rec.prs_bedrijf_naam); - - v_errormsg := - 'Kan bedrijf/dienst/loc/bld niet wegschrijven [' - || rec.prs_bedrijf_naam - || '(' - || rec.prs_bedrijf_nr - || ')' - || '/' - || rec.prs_dienst_omschrijving - || '/' - || rec.alg_locatie_code - || '/' - || rec.alg_gebouw_code - || '] '; - - INSERT INTO prs_bedrijfdienstlocatie (prs_dienst_key, - prs_bedrijf_key, - alg_locatie_key, - alg_gebouw_key) - VALUES (v_prs_dienst_key, - v_prs_bedrijf_key, - v_alg_locatie_key, - v_alg_gebouw_key); - - COMMIT; - EXCEPTION - WHEN OTHERS - THEN - v_error_hint := v_errormsg; - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - v_errormsg - || 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_errormsg, - v_error_hint); - COMMIT; - END; - END LOOP; - - SELECT COUNT ( * ) INTO v_newcountbdlg FROM aaxx_imp_dienst_loc_bld; - - fac.imp_writelog ( - p_import_key, - 'S', - 'Aantal BedrijfDienstLocBld vooraf: ' - || TO_CHAR (v_oldcountbdlg) - || ' => nu: ' - || TO_CHAR (v_newcountbdlg), - ''); -END; -/ - - -------------------------------------------------------------------------------- --- RAPPORTAGES aaxx_v_rap_gebruikers_auth -------------------------------------------------------------------------------- -CREATE OR REPLACE VIEW aaxx_v_rap_gebruikers_auth ( - naam, - afdeling, - functie, - email, - login, - alt_login, - auth_groep, - last_login - ) -AS - SELECT prs_perslid_naam_full, - prs_afdeling_omschrijving, - prs_srtperslid_omschrijving, - prs_perslid_email, - prs_perslid_oslogin, - prs_perslid_oslogin2, - fac_groep_omschrijving, - prs_perslid_login - FROM prs_v_aanwezigperslid p, - prs_v_perslid_fullnames pf, - fac_gebruikersgroep gg, - prs_afdeling a, - fac_groep g, - prs_srtperslid sp - WHERE p.prs_perslid_key = pf.prs_perslid_key - AND p.prs_perslid_key = gg.prs_perslid_key(+) - AND p.prs_afdeling_key = a.prs_afdeling_key - AND p.prs_srtperslid_key = sp.prs_srtperslid_key - AND gg.fac_groep_key = g.fac_groep_key(+) - AND (p.prs_perslid_oslogin IS NOT NULL - OR p.prs_perslid_oslogin2 IS NOT NULL) - AND SUBSTR(COALESCE (p.prs_perslid_oslogin, 'QueQueLeQue'),1,1) <> '_'; - --- Geatoriseerd voor ORDBO2 maar niet gekoppeld aan een bedrijf of AAFMer -CREATE OR REPLACE VIEW aaxx_v_rap_ordbo2_no_bdr -( - prs_perslid_key, - naam, - login_naam, - email, - autorisatiegroep -) -AS - SELECT DISTINCT pf.prs_perslid_key, - prs_perslid_naam_full, - prs_perslid_oslogin, - prs_perslid_email, - fac_groep_omschrijving - FROM fac_groeprechten fgr, - fac_functie ff, - fac_gebruikersgroep fgg, - fac_groep fg, - prs_v_perslid_fullnames pf, - prs_perslid p - WHERE ff.fac_functie_key = fgr.fac_functie_key - AND UPPER (fac_functie_code) = 'WEB_ORDBO2' - AND (fac_gebruiker_prs_level_read < 9 - OR fac_gebruiker_alg_level_read < 9) - AND fgr.fac_groep_key = fgg.fac_groep_key - AND p.prs_perslid_key = fgg.prs_perslid_key - AND fg.fac_groep_key = fgg.fac_groep_key - AND p.prs_perslid_key = pf.prs_perslid_key - AND UPPER (prs_perslid_oslogin) != '_FACILITOR' - AND fgg.prs_perslid_key NOT IN - (SELECT prs_perslid_key - FROM prs_contactpersoon pc, prs_bedrijf b - WHERE prs_contactpersoon_verwijder IS NULL - AND pc.prs_bedrijf_key = b.prs_bedrijf_key - AND b.prs_bedrijf_verwijder IS NULL - AND pc.prs_perslid_key IS NOT NULL) - AND NOT EXISTS - (SELECT prs_afdeling_key - FROM prs_afdeling a - WHERE a.prs_afdeling_key = p.prs_afdeling_key - AND a.prs_afdeling_omschrijving = 'AAFM'); - - -CREATE OR REPLACE VIEW aaxx_v_rap_dienst_loc_bld (fclt_f_bedrijfnaam - , fclt_f_bedrijf_nr - , fclt_f_dienst - , fclt_f_locatie_code - , fclt_f_gebouw_code - ) -AS -SELECT prs_bedrijf_naam bedrijfnaam, - prs_leverancier_nr bedrijfnummer, - prs_dienst_omschrijving dienst, - alg_locatie_code locatie_code, - alg_gebouw_upper gebouw_code -FROM prs_v_aanwezigbedrijf b, - prs_dienst d, - alg_locatie l, - alg_gebouw g, - prs_bedrijfdienstlocatie bdl -WHERE b.prs_bedrijf_key = bdl.prs_bedrijf_key(+) - AND bdl.prs_dienst_key = d.prs_dienst_key(+) - AND bdl.alg_locatie_key = l.alg_locatie_key(+) - AND bdl.alg_gebouw_key = g.alg_gebouw_key(+) - AND COALESCE (b.prs_bedrijf_intern, 0) = 0; - - -CREATE OR REPLACE VIEW aaxx_v_rap_bdl_contract -( - fclt_f_profiel, - fclt_f_bedrijfnaam, - fclt_f_bedrijf_nr, - fclt_f_dienst, - fclt_f_locatie_code, - fclt_f_gebouw_code, - fclt_f_contract -) -AS - SELECT 'Contract', - prs_bedrijf_naam, - prs_leverancier_nr, - prs_dienst_omschrijving, - (SELECT alg_locatie_code - FROM alg_locatie l - WHERE l.alg_locatie_key = - COALESCE (cpl.alg_locatie_key, cpg.alg_locatie_key)), - (SELECT alg_gebouw_upper - FROM alg_gebouw g1 - WHERE g1.alg_gebouw_key = cpg.alg_gebouw_key), - c.cnt_contract_nummer_intern - FROM cnt_contract c, - (SELECT cnt_contract_key, cnt_alg_plaats_key alg_locatie_key - FROM cnt_contract_plaats cp - WHERE cp.cnt_contract_plaats_verwijder IS NULL - AND cp.cnt_alg_plaats_code = 'L') cpl, - (SELECT cnt_contract_key, g.alg_locatie_key, g.alg_gebouw_key - FROM cnt_contract_plaats cp, alg_gebouw g - WHERE cp.cnt_alg_plaats_code = 'G' - AND cnt_alg_plaats_key = g.alg_gebouw_key) cpg, - prs_bedrijf b, - prs_dienst d - WHERE c.cnt_contract_key = cpl.cnt_contract_key(+) - AND c.cnt_contract_key = cpg.cnt_contract_key(+) - AND c.prs_dienst_key = d.prs_dienst_key(+) - AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+) - AND c.cnt_contract_looptijd_tot > SYSDATE - UNION ALL - SELECT 'Uitvoerder', - prs_bedrijf_naam bedrijfnaam, - prs_leverancier_nr bedrijfnummer, - prs_dienst_omschrijving dienst, - alg_locatie_code locatie_code, - alg_gebouw_upper gebouw_code, - NULL - FROM prs_v_aanwezigbedrijf b, - prs_dienst d, - alg_locatie l, - alg_gebouw g, - prs_bedrijfdienstlocatie bdl - WHERE b.prs_bedrijf_key = bdl.prs_bedrijf_key(+) - AND bdl.prs_dienst_key = d.prs_dienst_key(+) - AND bdl.alg_locatie_key = l.alg_locatie_key(+) - AND bdl.alg_gebouw_key = g.alg_gebouw_key(+) - AND COALESCE (b.prs_bedrijf_intern, 0) = 0; - -CREATE OR REPLACE VIEW aaxx_v_rap_contractorders ( - contractorder, - versie, - fclt_f_gebouwcode, - fclt_f_leverancier, - fclt_f_beschrijving, - fclt_f_pakket, - ingangsdatum, - einddatum, - fclt_f_status, - kosten, - totaalkosten, - gefactureerd, - dienst, - leveranciernr - ) -AS - SELECT cnt_contract_nummer_intern contractorder, - cnt_contract_versie, - alg_gebouw_code gebouwcode, - prs_bedrijf_naam leverancier, - k.prs_kostensoort_opmerking beschrijving, - (SELECT prs_kostensoortgrp_oms - FROM prs_kostensoortgrp ksg - WHERE ksg.prs_kostensoortgrp_key = k.prs_kostensoortgrp_key) - pakket, - TO_CHAR (c.cnt_contract_looptijd_van, 'DD-MM-YYYY') ingangsdatum, - TO_CHAR (c.cnt_contract_looptijd_tot, 'DD-MM-YYYY') einddatum, - DECODE (SIGN (cnt_contract_looptijd_van - SYSDATE), - 1, - 'Toekomst', - -1, - DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE), - 1, - 'Actueel', - -1, - 'Verlopen' - ) - ) - status, - COALESCE (ROUND ( DECODE (cnt_gew.cnt_contract_plaats_gewicht, - 0, - 1, - (cp.cnt_contract_plaats_gewicht - / cnt_gew.cnt_contract_plaats_gewicht) - * c.cnt_contract_kosten), - 2 - ), - 0 - ) - kosten, - c.cnt_contract_kosten orderbedrag, - (SELECT SUM (fr.fin_factuurregel_totaal) - FROM aaxx_v_aanwezigfactuur f, fin_factuurregel fr - WHERE f.fin_factuur_key = fr.fin_factuur_key - AND f.cnt_contract_key = c.cnt_contract_key) - gefactureerd, - k.prs_kostensoort_refcode dienst, - b.prs_leverancier_nr leveranciernr - FROM cnt_contract c, - cnt_discipline d, - cnt_contract_plaats cp, - prs_bedrijf b, - prs_kostensoort k, - prs_kostenplaats kp, - prs_afdeling a, - prs_perslid p, - alg_locatie l, - alg_gebouw g, - prs_contactpersoon cop, - (SELECT cnt_contract_key, - SUM (cnt_contract_plaats_gewicht) cnt_contract_plaats_gewicht - FROM cnt_contract_plaats - GROUP BY cnt_contract_key) cnt_gew, - (SELECT cp.cnt_contract_plaats_key, alg_locatie_key, alg_gebouw_key - FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp - WHERE aog.alg_type = cp.cnt_alg_plaats_code - AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) cog - WHERE c.cnt_contract_key = cp.cnt_contract_key(+) - AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+) - AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key - AND c.ins_discipline_key = d.ins_discipline_key - AND d.prs_kostensoort_key = k.prs_kostensoort_key(+) - AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) - AND c.prs_afdeling_key_eig = a.prs_afdeling_key - AND c.prs_perslid_key_beh = p.prs_perslid_key - AND cp.cnt_contract_plaats_key = cog.cnt_contract_plaats_key(+) - AND c.prs_contactpersoon_key = cop.prs_contactpersoon_key(+) - AND cog.alg_locatie_key = l.alg_locatie_key(+) - AND cog.alg_gebouw_key = g.alg_gebouw_key(+) - AND cnt_contract_verwijder IS NULL; - --- eerst volgen de kopregels en de tweede union bevat de detailregels. -CREATE OR REPLACE VIEW aaxx_v_rap_imp_jaarcontract -( - HIDE_F_VOLGORDE, - GEBOUW, - BEDRIJF, - LEVNR, - BESCHRIJVING, - INGANGSDATUM, - EINDDATUM, - ORDEROMSCHRIJVING, - BEDRAG, - TERMIJNBEDRAG, - DIENST, - CONTRACTSOORT, - CONTRACTNR, - VERSIE, - REGELNR, - CONTRACTAFDELING, - CONTRACTMANAGER, - GEWIJZIGDDOOR, - STATUS -) -AS - SELECT COALESCE (fac.safe_to_number (cnt_contract_nummer_intern), - cs.ins_discipline_key * 1000 + b.prs_bedrijf_key) - * 100, - k.prs_kostenplaats_nr, - prs_bedrijf_naam, - prs_leverancier_nr, - cnt_contract_omschrijving, - TO_CHAR (ADD_MONTHS (cnt_contract_looptijd_van, 12), 'dd-mm-yyyy'), - TO_CHAR (ADD_MONTHS (cnt_contract_looptijd_tot, 12), 'dd-mm-yyyy'), - REPLACE (cnt_contract_document, '"', ' - '), - cnt_contract_kosten, - cnt_contract_termijnkosten, - prs_dienst_omschrijving, - cs.ins_discipline_omschrijving, - cnt_contract_nummer_intern, - COALESCE (fac.safe_to_number (cnt_contract_versie), 0) + 1, - NULL, - a.prs_afdeling_naam, - p2.prs_perslid_oslogin, - p.prs_perslid_oslogin, - DECODE (SIGN(SYSDATE - c.cnt_contract_looptijd_tot), -1, 'Actief', 'Niet Actief') status - FROM cnt_v_aanwezigcontract c, - prs_kostenplaats k, - prs_perslid p, - prs_perslid p2, - prs_afdeling a, - prs_dienst d, - prs_bedrijf b, - ins_tab_discipline cs - WHERE (SYSDATE BETWEEN c.cnt_contract_looptijd_van -- TRUNC(SYSDATE, 'YEAR') - AND c.cnt_contract_looptijd_tot - OR c.cnt_contract_looptijd_van >= TRUNC(SYSDATE, 'YEAR') ) - AND c.prs_kostenplaats_key = k.prs_kostenplaats_key(+) - AND c.prs_perslid_key_beh = p.prs_perslid_key - AND c.prs_perslid_key_eig = p2.prs_perslid_key(+) - AND c.prs_afdeling_key_eig = a.prs_afdeling_key - AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key - AND c.prs_dienst_key = d.prs_dienst_key(+) - AND c.ins_discipline_key = cs.ins_discipline_key - UNION ALL - SELECT (COALESCE (fac.safe_to_number (cnt_contract_nummer_intern), - cs.ins_discipline_key * 1000 + b.prs_bedrijf_key) - * 100) - + aaxx_get_cnt_cont_plaats_index (cp.cnt_contract_plaats_key), - alg_gebouw_code, - prs_bedrijf_naam, - prs_leverancier_nr, - cnt_contract_omschrijving, - TO_CHAR (ADD_MONTHS (cnt_contract_looptijd_van, 12), 'dd-mm-yyyy'), - TO_CHAR (ADD_MONTHS (cnt_contract_looptijd_tot, 12), 'dd-mm-yyyy'), - NULL, - DECODE ( - cnt_gew.cnt_contract_plaats_gewicht, - 0, - c.cnt_contract_kosten, - ROUND ( - (cp.cnt_contract_plaats_gewicht - / cnt_gew.cnt_contract_plaats_gewicht) - * c.cnt_contract_kosten, - 2)), - NULL, - prs_dienst_omschrijving, - cs.ins_discipline_omschrijving, - cnt_contract_nummer_intern, - COALESCE (fac.safe_to_number (cnt_contract_versie), 0) + 1, - aaxx_get_cnt_cont_plaats_index (cp.cnt_contract_plaats_key), - a.prs_afdeling_naam, - p2.prs_perslid_oslogin, - p.prs_perslid_oslogin, - DECODE (SIGN(SYSDATE - c.cnt_contract_looptijd_tot), -1, 'Actief', 'Niet Actief') status - FROM cnt_v_aanwezigcontract c, - prs_kostenplaats k, - prs_perslid p, - prs_perslid p2, - prs_afdeling a, - prs_dienst d, - prs_bedrijf b, - ins_tab_discipline cs, - cnt_contract_plaats cp, - alg_gebouw g, - ( SELECT cnt_contract_key, - SUM (cnt_contract_plaats_gewicht) - cnt_contract_plaats_gewicht - FROM cnt_contract_plaats - WHERE cnt_contract_plaats_verwijder IS NULL - GROUP BY cnt_contract_key) cnt_gew - WHERE (SYSDATE BETWEEN c.cnt_contract_looptijd_van -- TRUNC(SYSDATE, 'YEAR') - AND c.cnt_contract_looptijd_tot - OR c.cnt_contract_looptijd_van >= TRUNC(SYSDATE, 'YEAR') ) - AND c.prs_kostenplaats_key = k.prs_kostenplaats_key(+) - AND c.prs_perslid_key_beh = p.prs_perslid_key - AND c.prs_perslid_key_eig = p2.prs_perslid_key(+) - AND c.prs_afdeling_key_eig = a.prs_afdeling_key - AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key - AND c.prs_dienst_key = d.prs_dienst_key(+) - AND c.ins_discipline_key = cs.ins_discipline_key - AND c.cnt_contract_key = cp.cnt_contract_key - AND cp.cnt_alg_plaats_key = g.alg_gebouw_key - AND cp.cnt_alg_plaats_code = 'G' - AND c.cnt_contract_key = cnt_gew.cnt_contract_key; - --- rapportage om ruimteinformatie te exporteren / bewerken en importeren in Facilitor -CREATE OR REPLACE VIEW aaxx_v_rap_imp_ruimte -( - fclt_f_locatie, - fclt_f_gebouw, - fclt_f_verdieping, - alg_ruimte_key, - alg_ruimte_nr, - alg_ruimte_omschrijving, - alg_srtruimte_omschrijving, - mld_dienstniveau_omschr, - alg_ruimte_bruto_vloeropp -) -AS - SELECT alg_locatie_code, - alg_gebouw_code, - alg_verdieping_code, - alg_ruimte_key, - alg_ruimte_nr, - alg_ruimte_omschrijving, - sr.alg_srtruimte_omschrijving, - d.mld_dienstniveau_omschr, - r.alg_ruimte_bruto_vloeropp - FROM alg_ruimte r, - mld_dienstniveau d, - alg_srtruimte sr, - alg_verdieping v, - alg_gebouw g, - alg_locatie l - WHERE r.mld_dienstniveau_key = d.mld_dienstniveau_key(+) - AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+) - AND r.alg_verdieping_key = v.alg_verdieping_key - AND v.alg_gebouw_key = g.alg_gebouw_key - AND g.alg_locatie_key = l.alg_locatie_key - AND r.alg_ruimte_verwijder IS NULL; - - -CREATE OR REPLACE VIEW aaxx_v_rap_stdmelding_gegbasis -( - fclt_f_vakgroeptype, - fclt_f_vakgroep, - fclt_f_melding, - groep, - niet_zichtbaar_fe, - acceptatietijd, - uitvoertijd, - kostensoort, - kostensoort_code, - fin_waarde, - aanwijzing_nederlands, - aanwijzing_english, - aanwijzing_deutsch, - aanwijzing_francais, - dienst, - vereist_dienst, - opdrachttype, - autoorder, - alg_niveau, - vervallen -) -AS - SELECT sd.ins_srtdiscipline_omschrijving, - d.ins_discipline_omschrijving, - m.mld_stdmelding_omschrijving, - g.mld_stdmeldinggroep_naam mld_stdmelding_groep, - DECODE (m.mld_stdmelding_notfrontend, 1, 'Ja', 'Nee'), - TO_CHAR (m.mld_stdmelding_t_accepttijd.tijdsduur) - || m.mld_stdmelding_t_accepttijd.eenheid, - TO_CHAR (m.mld_stdmelding_t_uitvoertijd.tijdsduur) - || m.mld_stdmelding_t_uitvoertijd.eenheid, - COALESCE (k2.prs_kostensoort_opmerking, - k.prs_kostensoort_opmerking), - COALESCE (k2.prs_kostensoort_oms, k.prs_kostensoort_oms), - COALESCE (k2.prs_kostensoort_refcode, k.prs_kostensoort_refcode), - mld_stdmelding_hint, - len.fac_locale_tekst, - lde.fac_locale_tekst, - lfr.fac_locale_tekst, - d.prs_dienst_omschrijving, - m.mld_stdmelding_vereisdienst, - ot.mld_typeopdr_omschrijving, - m.mld_stdmelding_autoorder, - alg_onrgoed_niveau, - mld_stdmelding_vervaldatum - FROM mld_stdmelding m, - mld_stdmeldinggroep g, - mld_discipline d, - ins_srtdiscipline sd, - prs_kostensoort k, - prs_kostensoort k2, - prs_dienst d, - mld_typeopdr ot, - (SELECT fac_locale_kolomkeyval, fac_locale_tekst - FROM fac_locale - WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT' - AND fac_locale_lang = 'EN') len, - (SELECT fac_locale_kolomkeyval, fac_locale_tekst - FROM fac_locale - WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT' - AND fac_locale_lang = 'DE') lde, - (SELECT fac_locale_kolomkeyval, fac_locale_tekst - FROM fac_locale - WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT' - AND fac_locale_lang = 'FR') lfr - WHERE m.mld_stdmelding_verwijder IS NULL - AND m.mld_ins_discipline_key = d.ins_discipline_key - AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key - AND d.prs_kostensoort_key = k.prs_kostensoort_key(+) - AND m.prs_kostensoort_key = k2.prs_kostensoort_key(+) - AND m.prs_dienst_key = d.prs_dienst_key(+) - AND m.mld_typeopdr_key = ot.mld_typeopdr_key(+) - AND m.mld_stdmeldinggroep_key = g.mld_stdmeldinggroep_key(+) - AND len.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key - AND lde.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key - AND lfr.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key; - -CREATE OR REPLACE VIEW aaxx_v_rap_stdmelding_gegevens -( - fclt_f_vakgroeptype, - fclt_f_vakgroep, - fclt_f_melding, - groep, - niet_zichtbaar_fe, - acceptatietijd, - uitvoertijd, - kostensoort, - kostensoort_code, - fin_waarde, - aanwijzing_nederlands, - aanwijzing_english, - aanwijzing_deutsch, - aanwijzing_francais, - alg_niveau, - vervallen, - vereist_dienst, - opdrachttype, - autoorder, - fclt_f_dienst, - fclt_f_bedrijf, - fclt_f_locatie_code, - fclt_f_gebouw_code -) -AS - SELECT sd.ins_srtdiscipline_omschrijving, - d.ins_discipline_omschrijving, - m.mld_stdmelding_omschrijving, - g.mld_stdmeldinggroep_naam mld_stdmelding_groep, - DECODE (m.mld_stdmelding_notfrontend, 1, 'Ja', 'Nee'), - TO_CHAR (m.mld_stdmelding_t_accepttijd.tijdsduur) - || m.mld_stdmelding_t_accepttijd.eenheid, - TO_CHAR (m.mld_stdmelding_t_uitvoertijd.tijdsduur) - || m.mld_stdmelding_t_uitvoertijd.eenheid, - COALESCE (k2.prs_kostensoort_opmerking, - k.prs_kostensoort_opmerking), - COALESCE (k2.prs_kostensoort_oms, k.prs_kostensoort_oms), - COALESCE (k2.prs_kostensoort_refcode, k.prs_kostensoort_refcode), - mld_stdmelding_hint, - len.fac_locale_tekst, - lde.fac_locale_tekst, - lfr.fac_locale_tekst, - alg_onrgoed_niveau, - mld_stdmelding_vervaldatum, - m.mld_stdmelding_vereisdienst, - ot.mld_typeopdr_omschrijving, - m.mld_stdmelding_autoorder, - dl.dienst, - dl.bedrijfnaam, - dl.locatie_code, - dl.gebouw_code - FROM mld_stdmelding m, - mld_stdmeldinggroep g, - mld_discipline d, - ins_srtdiscipline sd, - prs_kostensoort k, - prs_kostensoort k2, - (SELECT d.prs_dienst_key, - prs_bedrijf_naam bedrijfnaam, - prs_dienst_omschrijving dienst, - alg_locatie_code locatie_code, - alg_gebouw_upper gebouw_code - FROM prs_v_aanwezigbedrijf b, - prs_dienst d, - alg_locatie l, - alg_gebouw g, - prs_bedrijfdienstlocatie bdl - WHERE b.prs_bedrijf_key = bdl.prs_bedrijf_key(+) - AND bdl.prs_dienst_key = d.prs_dienst_key(+) - AND bdl.alg_locatie_key = l.alg_locatie_key(+) - AND bdl.alg_gebouw_key = g.alg_gebouw_key(+) - AND COALESCE (b.prs_bedrijf_intern, 0) = 0) dl, - mld_typeopdr ot, - (SELECT fac_locale_kolomkeyval, fac_locale_tekst - FROM fac_locale - WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT' - AND fac_locale_lang = 'EN') len, - (SELECT fac_locale_kolomkeyval, fac_locale_tekst - FROM fac_locale - WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT' - AND fac_locale_lang = 'DE') lde, - (SELECT fac_locale_kolomkeyval, fac_locale_tekst - FROM fac_locale - WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT' - AND fac_locale_lang = 'FR') lfr - WHERE m.mld_stdmelding_verwijder IS NULL - AND m.mld_ins_discipline_key = d.ins_discipline_key - AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key - AND d.prs_kostensoort_key = k.prs_kostensoort_key(+) - AND m.prs_kostensoort_key = k2.prs_kostensoort_key(+) - AND m.prs_dienst_key = dl.prs_dienst_key(+) - AND m.mld_typeopdr_key = ot.mld_typeopdr_key(+) - AND m.mld_stdmeldinggroep_key = g.mld_stdmeldinggroep_key(+) - AND len.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key - AND lde.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key - AND lfr.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key; - - --- Grafische thema's en labels voor de plattegrond met reserveringsinfo -CREATE OR REPLACE VIEW aaxx_v_cad_label_res_info -( - alg_ruimte_key, - waarde -) -AS - SELECT rar.alg_ruimte_key, - max( TO_CHAR (res_rsv_ruimte_van, 'HH24:MI') - || '-' - || TO_CHAR (res_rsv_ruimte_tot, 'HH24:MI') - || '~[s60]host: ' - || prs_perslid_naam - || '~[s40][b]' - || DECODE (COALESCE (INSTR (res_rsv_ruimte_omschrijving, ' ', 15),0), - 0, res_rsv_ruimte_omschrijving, - SUBSTR (res_rsv_ruimte_omschrijving, 1, INSTR (res_rsv_ruimte_omschrijving, ' ', 15)-1) - || chr(10) - || '~[s40][b]' || SUBSTR(res_rsv_ruimte_omschrijving, INSTR(res_rsv_ruimte_omschrijving, ' ', 15)+1, 50)) - ) waarde - FROM res_v_aanwezigrsv_ruimte rrr, - res_ruimte_opstelling rro, - res_ruimte rr, - res_alg_ruimte rar, - res_opstelling ro, - prs_perslid pp - WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key - AND rro.res_ruimte_key = rr.res_ruimte_key - AND rro.res_opstelling_key = ro.res_opstelling_key - AND rar.res_ruimte_key = rr.res_ruimte_key - AND SYSDATE BETWEEN res_rsv_ruimte_van - (1 / 96) -- kwartier - AND res_rsv_ruimte_tot - AND pp.prs_perslid_key = res_rsv_ruimte_host_key - AND (res_rsv_ruimte_bezoekers_shown IS NULL - OR res_rsv_ruimte_bezoekers_shown > 0) - GROUP BY rar.alg_ruimte_key; - - -CREATE OR REPLACE VIEW aaxx_v_cad_thema_resinfo -( - alg_ruimte_key, - waarde -) -AS - SELECT rar.alg_ruimte_key alg_ruimte_key, - ROUND ( (res_rsv_ruimte_tot - SYSDATE) * 24, 2) waarde - FROM res_v_aanwezigrsv_ruimte rrr, - res_ruimte_opstelling rro, - res_ruimte rr, - res_alg_ruimte rar, - res_opstelling ro - WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key - AND rro.res_ruimte_key = rr.res_ruimte_key - AND rro.res_opstelling_key = ro.res_opstelling_key - AND rar.res_ruimte_key = rr.res_ruimte_key - AND SYSDATE BETWEEN res_rsv_ruimte_van AND res_rsv_ruimte_tot - AND (res_rsv_ruimte_bezoekers_shown IS NULL - OR res_rsv_ruimte_bezoekers_shown > 0) - UNION - -- binnenkort aanvangende reserveringen - SELECT rar.alg_ruimte_key alg_ruimte_key, - ROUND ( (SYSDATE - res_rsv_ruimte_van) * 24, 2) waarde - FROM res_v_aanwezigrsv_ruimte rrr, - res_ruimte_opstelling rro, - res_ruimte rr, - res_alg_ruimte rar, - res_opstelling ro - WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key - AND rro.res_ruimte_key = rr.res_ruimte_key - AND rro.res_opstelling_key = ro.res_opstelling_key - AND rar.res_ruimte_key = rr.res_ruimte_key - AND SYSDATE BETWEEN res_rsv_ruimte_van - (1 / 24) - AND res_rsv_ruimte_tot - AND SYSDATE < res_rsv_ruimte_van - AND (res_rsv_ruimte_bezoekers_shown IS NULL - OR res_rsv_ruimte_bezoekers_shown > 0) - UNION - -- voorlopig vrije ruimte - SELECT rar.alg_ruimte_key alg_ruimte_key, 0 waarde - FROM res_ruimte_opstelling rro, - res_ruimte rr, - res_alg_ruimte rar, - res_opstelling ro - WHERE rro.res_ruimte_key = rr.res_ruimte_key - AND rro.res_opstelling_key = ro.res_opstelling_key - AND rar.res_ruimte_key = rr.res_ruimte_key - AND NOT EXISTS - (SELECT '' - FROM res_v_aanwezigrsv_ruimte rrr - WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key - AND SYSDATE BETWEEN res_rsv_ruimte_van - (1 / 24) - AND res_rsv_ruimte_tot - AND (res_rsv_ruimte_bezoekers_shown IS NULL - OR res_rsv_ruimte_bezoekers_shown > 0)); - - - - --- view voor het exporteren van een catalogus. Deze kan later via de import ingelezen worden. -CREATE OR REPLACE VIEW aaxx_v_imp_bes_artikel_sync -( - FCLT_F_CatalogusNaam, - Leverancier, - CatDatum, - Artikelnr, - Groep, - Omschrijving, - Prijs, - Eenheid, - Picture, - Orderaantal, - Tax, - DueDate, - Inkoopprijs, - Minimum, - Staffeltabel, - Wijzigdagen, - Annuleerdagen -) -AS - SELECT td.ins_discipline_omschrijving, - b.prs_bedrijf_naam, - TO_CHAR (td.ins_discipline_aanmaak, 'yyyymmdd'), - sd.bes_srtdeel_nr, - sg.bes_srtgroep_omschrijving, - sd.bes_srtdeel_omschrijving, - TO_CHAR (bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL)), - sd.bes_srtdeel_eenheid, - sd.bes_srtdeel_image, - TO_CHAR (sd.bes_srtdeel_veelvoud), - TO_CHAR (sd.bes_srtdeel_btw), - TO_CHAR (sd.bes_srtdeel_vervaldatum, 'yyyymmdd'), - TO_CHAR (bes.getsrtdeelinkprijs (sd.bes_srtdeel_key, NULL)), - NULL, - bs.bes_staffeltabel_naam, - sd.bes_srtdeel_wijzigdagen, - sd.bes_srtdeel_annuleerdagen - FROM ins_tab_discipline td, - bes_srtgroep sg, - bes_srtdeel sd, - prs_bedrijf b, - bes_staffeltabel bs - WHERE td.ins_discipline_module = 'BES' - AND td.ins_discipline_verwijder IS NULL - AND td.ins_discipline_key = sg.ins_discipline_key - AND sg.bes_srtgroep_verwijder IS NULL - AND sg.bes_srtgroep_key = sd.bes_srtgroep_key - AND sd.bes_srtdeel_verwijder IS NULL - AND sd.prs_bedrijf_key = b.prs_bedrijf_key - AND bs.bes_staffeltabel_key(+) = sd.bes_staffeltabel_key; - -CREATE OR REPLACE VIEW aaxx_v_rap_kostenmutatie -( - opdracht, - vakgroeptype, - vakgroep, - mutatie, - fclt_d_datum, - fclt_f_leverancier, - persoon -) -AS - SELECT o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht, - (SELECT ins_srtdiscipline_omschrijving - FROM ins_srtdiscipline sd - WHERE sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key) - Vakgroeptype, - ins_discipline_omschrijving vakgroep, - SUBSTR ( - fac_tracking_oms, - INSTR (fac_tracking_oms, 'Totaal ex. BTW:'), - DECODE ( - INSTR (fac_tracking_oms, - CHR (10), - INSTR (fac_tracking_oms, 'Totaal ex. BTW:')), - 0, - 10000, - INSTR (fac_tracking_oms, - CHR (10), - INSTR (fac_tracking_oms, 'Totaal ex. BTW:'))) - - INSTR (fac_tracking_oms, 'Totaal ex. BTW:')) - oud_nieuw, - TO_CHAR (fac_tracking_datum, 'dd-mm-yyyy') datum, - prs_bedrijf_naam leverancier, - prs_perslid_naam_full persoon - FROM fac_tracking t, - mld_opdr o, - mld_melding m, - mld_stdmelding std, - ins_tab_discipline d, - prs_v_perslid_fullnames_all pf, - prs_bedrijf b - WHERE fac_tracking_oms LIKE '%Totaal ex. BTW:%' - AND t.fac_tracking_refkey = o.mld_opdr_key - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = d.ins_discipline_key - AND t.prs_perslid_key = pf.prs_perslid_key(+) - AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+) - AND t.fac_tracking_datum BETWEEN mld.getopdrachtstatusdate ( - o.mld_opdr_key, - 6) -- afgemeld - AND COALESCE ( - mld.getopdrachtstatusdate ( - o.mld_opdr_key, - 9), -- afgerond - SYSDATE); - -CREATE OR REPLACE VIEW aaxx_v_rap_bedrijf_orderadres -( - fclt_f_bedrijf, - fclt_f_plaats, - fclt_f_nummer, - fclt_f_email, - fclt_f_type, - fclt_f_orderadres, - stylesheet -) -AS - SELECT b.prs_bedrijf_naam, - b.prs_bedrijf_bezoek_plaats, - b.prs_leverancier_nr, - b.prs_bedrijf_email, - DECODE (a.prs_bedrijfadres_type, - 'C', 'Contract', - 'B', 'Bestelling', - 'Opdracht') - || ' ' - || ot.mld_typeopdr_omschrijving - TYPE, - a.prs_bedrijfadres_url, - a.prs_bedrijfadres_xsl - FROM prs_bedrijf b, prs_bedrijfadres a, mld_typeopdr ot - WHERE b.prs_bedrijf_key = a.prs_bedrijf_key - AND b.prs_bedrijf_verwijder IS NULL - AND NVL (b.prs_bedrijf_intern, 0) <> 1 - AND a.mld_typeopdr_key = ot.mld_typeopdr_key(+); - --- view om offertestatus in dashbord te tonen --- functionaliteit overgenomen uit mld.inc -CREATE OR REPLACE VIEW aaxx_v_rap_offerte_status -AS - SELECT u.*, - g.prs_perslid_key_verantw opdracht_gebouw_verantw_key, - m.kostensoort kostensoort, - subproductgroepgroep, - DECODE ( - COALESCE (na.aantal, 0), - 1, - 'Offerte geaccepteerd', - DECODE (COALESCE (nta.aantal, 0), - 0, 'Niet opgelost', - 'Offerte acceptatie')) - offerte_status - FROM mld_v_udr_opdracht u, - alg_gebouw g, - mld_v_udr_melding m, - ( SELECT o.mld_melding_key, COUNT (o.mld_statusopdr_key) aantal - FROM mld_opdr o - WHERE o.mld_statusopdr_key = 6 - AND o.mld_opdr_key > - COALESCE ( - (SELECT MAX (o1.mld_opdr_key) - FROM mld_opdr o1, mld_typeopdr mo1 - WHERE o1.mld_typeopdr_key = mo1.mld_typeopdr_key - AND mo1.mld_typeopdr_isofferte = 0 - AND o1.mld_melding_key = o.mld_melding_key), - 0) - GROUP BY o.mld_melding_key) nta, - ( SELECT o.mld_melding_key, COUNT (o.mld_statusopdr_key) aantal - FROM mld_opdr o - WHERE o.mld_statusopdr_key = 9 - AND o.mld_opdr_key > - COALESCE ( - (SELECT MAX (o1.mld_opdr_key) - FROM mld_opdr o1, mld_typeopdr mo1 - WHERE o1.mld_typeopdr_key = mo1.mld_typeopdr_key - AND mo1.mld_typeopdr_isofferte = 0 - AND o1.mld_melding_key = o.mld_melding_key), - 0) - GROUP BY o.mld_melding_key) na - WHERE u.opdracht_gebouwcode = g.alg_gebouw_code - AND u.melding_key = m.melding_key - AND u.melding_key = na.mld_melding_key(+) - AND u.melding_key = nta.mld_melding_key(+) - AND u.opdracht_type = 'RFQ'; - - -CREATE OR REPLACE VIEW aaxx_v_rap_trace_uitvoerder -( - fclt_x_fm, - fclt_x_tfm, - html_opdracht, - fclt_f_district, - fclt_f_locatie, - fclt_f_gebouw, - fclt_f_bedrijf, - opdracht_omschrijving, - einddatum, - t, - m, - e, - notitie_datum, - notitie_omschrijving -) -AS - SELECT COALESCE (p.prs_perslid_naam_full, 'Onbekend') fmer, -- verantwoordelijke FMer - COALESCE ( - (SELECT fac.getdomeinwaarde (fac_kenmerkdomein_key, - alg_onrgoedkenmerk_waarde) - FROM alg_kenmerk k, alg_onrgoedkenmerk ogk - WHERE k.alg_kenmerk_key = ogk.alg_kenmerk_key - AND ogk.alg_onrgoed_key = g.alg_gebouw_key - AND k.alg_kenmerk_key = - DECODE (aaxx_get_user, - 'SITECH', 1160, - 'SABIC', 1180, - -1)), - 'Onbekend' - ) - tfmer, -- verantwoordelijke Technisch FMer - '' - || o.mld_melding_key - || '/' - || o.mld_opdr_bedrijfopdr_volgnr - || '' - opdracht, - d.alg_district_omschrijving, - l.alg_locatie_omschrijving, - g.alg_gebouw_omschrijving, - prs_bedrijf_naam, - mld_opdr_omschrijving, - mld_opdr_einddatum, - (SELECT COUNT ( * ) - FROM mld_opdr_note n3 - WHERE n3.mld_opdr_key = o.mld_opdr_key - AND UPPER (n3.mld_opdr_note_omschrijving) LIKE '%#T%') - nt, - (SELECT COUNT ( * ) - FROM mld_opdr_note n3 - WHERE n3.mld_opdr_key = o.mld_opdr_key - AND UPPER (n3.mld_opdr_note_omschrijving) LIKE '%#M%') - nm, - (SELECT COUNT ( * ) - FROM mld_opdr_note n3 - WHERE n3.mld_opdr_key = o.mld_opdr_key - AND UPPER (n3.mld_opdr_note_omschrijving) LIKE '%#E%') - ne, - lastnote.mld_opdr_note_aanmaak, - lastnote.mld_opdr_note_omschrijving omschrijving - FROM mld_opdr o, - mld_melding m, - mld_stdmelding std, - prs_bedrijf b, - alg_v_onroerendgoed alg, - alg_gebouw g, - alg_locatie l, - alg_district d, - prs_v_perslid_fullnames_all p, - (SELECT n.mld_opdr_key, - mld_opdr_note_aanmaak, - mld_opdr_note_omschrijving - FROM mld_opdr_note n - WHERE ( UPPER (n.mld_opdr_note_omschrijving) LIKE '%#T%' - OR UPPER (n.mld_opdr_note_omschrijving) LIKE '%#M%' - OR UPPER (n.mld_opdr_note_omschrijving) LIKE '%#E%') - AND NOT EXISTS - (SELECT mld_opdr_note_key - FROM mld_opdr_note n2 - WHERE n2.mld_opdr_note_aanmaak > - n.mld_opdr_note_aanmaak - AND n2.mld_opdr_key = n.mld_opdr_key)) - note, - (SELECT n.mld_opdr_key, - mld_opdr_note_aanmaak, - mld_opdr_note_omschrijving - FROM mld_opdr_note n - WHERE NOT EXISTS - (SELECT mld_opdr_note_key - FROM mld_opdr_note n2 - WHERE n2.mld_opdr_note_aanmaak > - n.mld_opdr_note_aanmaak - AND n2.mld_opdr_key = n.mld_opdr_key)) - lastnote - WHERE o.mld_opdr_einddatum < SYSDATE - AND o.mld_opdr_key = note.mld_opdr_key(+) - AND o.fac_activiteit_key IS NULL - AND o.mld_opdr_key = lastnote.mld_opdr_key(+) - AND m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_stdmelding_slabewaken = 1 - AND o.mld_statusopdr_key IN (5, 8) -- Toegekend + Geaccepteerd - AND b.prs_bedrijf_key = o.mld_uitvoerende_keys - AND m.mld_melding_key = o.mld_melding_key - AND g.prs_perslid_key_verantw = p.prs_perslid_key(+) - AND m.mld_alg_onroerendgoed_keys = alg.alg_onroerendgoed_keys - AND alg.alg_gebouw_key = g.alg_gebouw_key - AND g.alg_locatie_key = l.alg_locatie_key - AND l.alg_district_key = d.alg_district_key - AND (note.mld_opdr_note_aanmaak IS NULL - OR note.mld_opdr_note_aanmaak < SYSDATE - 7); - - -CREATE OR REPLACE VIEW aaxx_v_rap_trace_uitv_z_tfm -( - fclt_x_fm, - html_opdracht, - fclt_f_district, - fclt_f_locatie, - fclt_f_gebouw, - fclt_f_bedrijf, - opdracht_omschrijving, - einddatum, - t, - m, - e, - notitie_datum, - notitie_omschrijving -) -AS - SELECT fclt_x_fm, - html_opdracht, - fclt_f_district, - fclt_f_locatie, - fclt_f_gebouw, - fclt_f_bedrijf, - opdracht_omschrijving, - einddatum, - t, - m, - e, - notitie_datum, - notitie_omschrijving - FROM aaxx_v_rap_trace_uitvoerder; - - -/* Formatted on 19-7-2016 18:06:24 (QP5 v5.136.908.31019) */ -CREATE OR REPLACE VIEW aaxx_v_rap_catering_export -( - reservering, - fclt_f_afdelingscode, - afdelings_omschrijving, - boekingsdatum, - afmelddatum, - fclt_f_periode, - aanvrager, - gebouw, - aantal, - artikel, - btw, - totaal -) -AS - SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr - reservering, - k.prs_kostenplaats_nr, - k.prs_kostenplaats_omschrijving, - rra.res_rsv_artikel_levering, - rra.res_rsv_artikel_afgemeld, - TO_CHAR (ADD_MONTHS (rra.res_rsv_artikel_verwerkt, -1), 'yyyy-mm') - periode, - pf.prs_perslid_naam_full, - g.alg_gebouw_code, - rra.res_rsv_artikel_aantal, - ra.res_artikel_omschrijving, - ra.res_artikel_btw, - rra.res_rsv_artikel_prijs - FROM res_rsv_artikel rra, - res_rsv_ruimte rrr, - prs_kostenplaats k, - prs_perslid p, - alg_gebouw g, - prs_afdeling a, - prs_v_perslid_fullnames_all pf, - res_artikel ra, - ( SELECT res_rsv_ruimte_key, MAX (alg_gebouw_key) alg_gebouw_key - FROM (SELECT rrr.res_rsv_ruimte_key, - (SELECT alg_gebouw_key - FROM alg_verdieping v, alg_ruimte r - WHERE v.alg_verdieping_key = r.alg_verdieping_key - AND r.alg_ruimte_key = COALESCE (r2ar.alg_ruimte_key, rrr.alg_ruimte_key)) - alg_gebouw_key - FROM res_v_rsv_ruimte_2_alg_ruimte r2ar, - res_v_aanwezigrsv_ruimte rrr - WHERE rrr.res_rsv_ruimte_key = r2ar.res_rsv_ruimte_key(+)) - GROUP BY res_rsv_ruimte_key) rg - WHERE rra.res_status_bo_key = 6 - AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key - AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) - AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key - AND p.prs_afdeling_key = a.prs_afdeling_key - AND p.prs_perslid_key = pf.prs_perslid_key - AND rra.res_artikel_key = ra.res_artikel_key - AND rrr.res_rsv_ruimte_key = rg.res_rsv_ruimte_key - AND rg.alg_gebouw_key = g.alg_gebouw_key(+); - -CREATE OR REPLACE VIEW aaxx_v_rap_login_user (hide_f_datum, fclt_d_datum, aantal) -AS - SELECT trunc(sysdate)-trunc(pl.login_datum), - TO_CHAR (pl.login_datum, 'dd-mm-yyyy'), - COUNT (prs_perslid_key) - FROM aaxx_perslid_login pl - GROUP BY trunc(sysdate)-trunc(pl.login_datum), - TO_CHAR (pl.login_datum, 'dd-mm-yyyy'); - -CREATE OR REPLACE VIEW aaxx_v_rap_errorlog -( - HIDE_F_IMP_LOG_DATUM, - FCLT_F_APPLICATIE, - FCLT_F_DATUM, - TIJDSTIP, - FCLT_F_NIVEAU, - FCLT_F_OMSCHRIJVING -) -AS - SELECT imp_log_datum hide_f_imp_log_datum, - imp_log_applicatie, - TO_CHAR (imp_log_datum, 'YYYYMMDD') fclt_f_datum, - TO_CHAR (imp_log_datum, 'HH24:MI:SS') tijdstip, - DECODE (imp_log_status, - 'F', 'Fataal', - 'E', 'Error', - 'W', 'Waarschuwing', - 'I', 'Informatief', - '-') - fclt_f_niveau, - imp_log_omschrijving fclt_f_omschrijving - FROM imp_log; - -CREATE OR REPLACE VIEW aaxx_v_rap_lang_stdmelding_oms -( - key, - vakgroeptype, - vakgroep, - melding_omschrijving, - en, - de -) -AS - SELECT mld_stdmelding_key, - ins_srtdiscipline_prefix, - ins_discipline_omschrijving, - mld_stdmelding_omschrijving, - (SELECT fac_locale_tekst - FROM fac_locale - WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_OMSCHRIJVING' - AND fac_locale_lang = 'EN' - AND fac_locale_kolomkeyval = std.mld_stdmelding_key) - EN, - (SELECT fac_locale_tekst - FROM fac_locale - WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_OMSCHRIJVING' - AND fac_locale_lang = 'DE' - AND fac_locale_kolomkeyval = std.mld_stdmelding_key) - DE - FROM ins_tab_discipline d, mld_stdmelding std, ins_srtdiscipline sd - WHERE d.ins_discipline_key = std.mld_ins_discipline_key - AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+) - AND ins_discipline_verwijder IS NULL - AND mld_stdmelding_verwijder IS NULL; - -CREATE OR REPLACE VIEW aaxx_v_rap_lang_discipline_oms -( - key, - fclt_f_module, - vakgroeptype, - vakgroep, - en, - de -) -AS - SELECT ins_discipline_key, - ins_discipline_module, - ins_srtdiscipline_prefix, - ins_discipline_omschrijving, - (SELECT fac_locale_tekst - FROM fac_locale - WHERE fac_locale_kolomnaam = 'INS_DISCIPLINE_OMSCHRIJVING' - AND fac_locale_lang = 'EN' - AND fac_locale_kolomkeyval = d.ins_discipline_key) - EN, - (SELECT fac_locale_tekst - FROM fac_locale - WHERE fac_locale_kolomnaam = 'INS_DISCIPLINE_OMSCHRIJVING' - AND fac_locale_lang = 'DE' - AND fac_locale_kolomkeyval = d.ins_discipline_key) - DE - FROM ins_tab_discipline d, ins_srtdiscipline sd - WHERE d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+) - AND ins_discipline_verwijder IS NULL; - - -------------------------------------------------------------------------------- --- IMPORTFUNCTIE - MLD_LANG -------------------------------------------------------------------------------- -CREATE OR REPLACE PROCEDURE aaxx_import_mld_lang ( - p_import_key IN NUMBER) -AS - CURSOR c_cursor - IS - SELECT * - FROM fac_imp_file - WHERE fac_import_key = p_import_key - ORDER BY fac_imp_file_index; - - v_newline VARCHAR2 (1000); -- Import line - v_field VARCHAR2 (100); -- Import field - v_fielddelimitor VARCHAR2 (1); -- Field seperator - v_errormsg VARCHAR (200); - v_errorhint VARCHAR (200); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_skipfield VARCHAR2 (100); - v_dummy VARCHAR2 (1000); - -- De importvelden - v_vakgroeptype_nl VARCHAR2 (200); - v_vakgroeptype_prefix VARCHAR2 (200); - v_vakgroep_nl VARCHAR2 (200); - v_stdmelding_nl VARCHAR2 (200); - v_stdmelding_hint_nl VARCHAR2 (4000); - v_vakgroeptype_en VARCHAR2 (200); - v_vakgroep_en VARCHAR2 (200); - v_stdmelding_en VARCHAR2 (200); - v_stdmelding_hint_en VARCHAR2 (4000); - header_found BOOLEAN; -BEGIN - -- Init - header_found := FALSE; - v_fielddelimitor := ';'; - - -- Clear my previous imported rows - DELETE FROM aaxx_imp_mld_lang; - - FOR rec1 IN c_cursor - LOOP - BEGIN - v_newline := rec1.fac_imp_file_line; - - IF SUBSTR (v_newline, 1, 3) = '?' - THEN - -- EF BB BF aangetroffen - fac.imp_writelog (p_import_key, - 'W', - 'Byte Order Mark aangetroffen', - 'Bestand heeft onbehandeld UTF-8 formaat.'); - v_newline := SUBSTR (v_newline, 4); - END IF; - --vakgroeptype NL;prefix;plaatsgegevens;objectgegevens;bestelgegevens;vakgroep NL;melding NL;aanwijzingen (NL) - fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroeptype_nl); - fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroeptype_prefix); - fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); - fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); - fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); - fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroep_nl); - fac.imp_getfield (v_newline, v_fielddelimitor, v_stdmelding_nl); - fac.imp_getfield (v_newline, v_fielddelimitor, v_stdmelding_hint_nl); - -- ;groep;kostensoort;acceptatietijd;uitvoertijd;uitvoertijd kritiek;uitvoertijd hoog;uitvoertijd laag;streeftijd;directklaar;dienst;Vakgroeptype EN;vakgroep EN;melding EN;aanwijzingen EN; - fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); - fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); - fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); - fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); - fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); - fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); - fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); - fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); - fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); - fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); - fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroeptype_en); - fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroep_en); - fac.imp_getfield (v_newline, v_fielddelimitor, v_stdmelding_en); - fac.imp_getfield (v_newline, v_fielddelimitor, v_stdmelding_hint_en); - - -- Skip until a valid header is found - IF UPPER (v_vakgroeptype_nl) = 'VAKGROEPTYPE NL' - AND UPPER (v_vakgroeptype_prefix) = 'PREFIX' - AND UPPER (v_vakgroep_nl) = 'VAKGROEP NL' - AND UPPER (v_stdmelding_nl) = 'MELDING NL' - AND UPPER (v_stdmelding_hint_nl) = 'AANWIJZINGEN (NL)' - AND UPPER (v_vakgroeptype_en) = 'VAKGROEPTYPE EN' - AND UPPER (v_vakgroep_en) = 'VAKGROEP EN' - AND UPPER (v_stdmelding_en) = 'MELDING EN' - AND UPPER (v_stdmelding_hint_en) = 'AANWIJZINGEN EN' - THEN - -- Sla de kopregel over. - header_found := TRUE; - ELSIF (header_found) - THEN - INSERT INTO aaxx_imp_mld_lang ( ins_srtdiscipline_omschrijving, - ins_srtdiscipline_prefix, - ins_discipline_omschrijving, - mld_stdmelding_omschrijving, - mld_stdmelding_hint, - ins_srtdiscipline_omschr_en, - ins_discipline_omschrijving_en, - mld_stdmelding_omschrijving_en, - mld_stdmelding_hint_en) - VALUES (SUBSTR (v_vakgroeptype_nl, 1, 30), - SUBSTR (v_vakgroeptype_prefix, 1, 3), - SUBSTR (v_vakgroep_nl, 1, 30), - SUBSTR (v_stdmelding_nl, 1, 60), - SUBSTR (v_stdmelding_hint_nl, 1, 1000), - SUBSTR (v_vakgroeptype_en, 1, 30), - SUBSTR (v_vakgroep_en, 1, 30), - SUBSTR (v_stdmelding_en, 1, 60), - SUBSTR (v_stdmelding_hint_en, 1, 1000)); - ELSE -- geen geldige header aangetroffen - IF rec1.fac_imp_file_index = 1 - THEN - fac.imp_writelog (p_import_key, - 'I', - 'Aangetroffen header', - SUBSTR( v_vakgroeptype_nl || '-1-' || - v_vakgroeptype_prefix || '-2-' || - v_vakgroep_nl || '-3-' || - v_stdmelding_nl || '-4-' || - v_stdmelding_hint_nl || '-5-' || - v_vakgroeptype_en || '-6-' || - v_vakgroep_en || '-7-' || - v_stdmelding_en || '-8-' || - v_stdmelding_hint_en,1,1000)); - END IF; - END IF; - COMMIT; - END; - END LOOP; - - IF NOT header_found - THEN - fac.imp_writelog ( - p_import_key, - 'E', - 'Geen geldige header aangetroffen', - 'Bestand is geen geldig MLD vertaling importbestand.'); - 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.imp_writelog (p_import_key, - 'E', - SUBSTR (v_errormsg, 1, 1000), - ''); - - -- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden. - DELETE FROM aaxx_imp_mld_lang; -END; -/ - -CREATE OR REPLACE PROCEDURE aaxx_update_mld_lang ( - p_import_key IN NUMBER) -AS - CURSOR c - IS - SELECT * - FROM aaxx_imp_mld_lang - WHERE ins_srtdiscipline_omschrijving IS NOT NULL; - - v_srtdiscipline_key NUMBER; - v_discipline_key NUMBER; - v_stdmelding_key NUMBER; - v_errormsg VARCHAR (1000); - v_error_hint VARCHAR (1000); - v_tekst VARCHAR (300); - oracle_err_mes VARCHAR2 (150); - oracle_err_num VARCHAR2 (150); - currentversion fac_module.fac_module_version%TYPE; - - PROCEDURE update_locale(p_kolom IN VARCHAR2, p_key IN NUMBER, p_lang IN VARCHAR, p_value IN VARCHAR) - AS - BEGIN - BEGIN - SELECT fac_locale_tekst - INTO v_tekst - FROM fac_locale - WHERE UPPER(fac_locale_kolomnaam) = UPPER(p_kolom) - AND fac_locale_kolomkeyval = p_key - AND UPPER(fac_locale_lang) = UPPER(p_lang); - EXCEPTION WHEN NO_DATA_FOUND - THEN - INSERT INTO fac_locale (fac_locale_kolomkeyval, fac_locale_kolomnaam, fac_locale_lang, fac_locale_tekst) - VALUES (p_key, UPPER(p_kolom), UPPER(p_lang), SUBSTR(p_value,1,300)); - RETURN; - END; - - UPDATE fac_locale SET fac_locale_tekst = SUBSTR(p_value,1,300) - WHERE UPPER(fac_locale_kolomnaam) = UPPER(p_kolom) - AND fac_locale_kolomkeyval = p_key - AND UPPER(fac_locale_lang) = UPPER(p_lang); - RETURN; - END; - -BEGIN - - SELECT MAX (fac_module_version) INTO currentversion FROM fac_module; - - fac.imp_writelog ( - p_import_key, - 'I', - 'AA-FM Melding vertaling import version ' - || currentversion, - '$Revision$'); - - FOR rec IN c - LOOP - BEGIN - v_errormsg := 'Kan srtdiscipline [' || rec.ins_srtdiscipline_omschrijving || '] niet vinden.'; - - SELECT ins_srtdiscipline_key - INTO v_srtdiscipline_key - FROM ins_srtdiscipline - WHERE ins_srtdiscipline_verwijder IS NULL - AND TRIM(UPPER (ins_srtdiscipline_omschrijving)) = - TRIM(UPPER (rec.ins_srtdiscipline_omschrijving)); - - v_errormsg := 'Kan discipline [' || rec.ins_srtdiscipline_omschrijving || '-' || rec.ins_discipline_omschrijving || '] niet vinden.'; - - SELECT ins_discipline_key - INTO v_discipline_key - FROM ins_tab_discipline - WHERE ins_discipline_verwijder IS NULL - AND ins_srtdiscipline_key = v_srtdiscipline_key - AND TRIM(UPPER (ins_discipline_omschrijving)) = TRIM(UPPER (rec.ins_discipline_omschrijving)); - - v_errormsg := 'Kan stdmelding [' || rec.ins_srtdiscipline_omschrijving || '-' || rec.ins_discipline_omschrijving || '-' || rec.mld_stdmelding_omschrijving || '] niet vinden.'; - - SELECT mld_stdmelding_key - INTO v_stdmelding_key - FROM mld_stdmelding - WHERE mld_stdmelding_verwijder IS NULL - AND mld_ins_discipline_key = v_discipline_key - AND TRIM(UPPER (mld_stdmelding_omschrijving)) = TRIM(UPPER (rec.mld_stdmelding_omschrijving)); - - UPDATE mld_stdmelding SET mld_stdmelding_hint = rec.mld_stdmelding_hint WHERE mld_stdmelding_key = v_stdmelding_key; - update_locale('INS_SRTDISCIPLINE_OMSCHRIJVING', v_srtdiscipline_key, 'EN', rec.ins_srtdiscipline_omschr_en); - update_locale('INS_DISCIPLINE_OMSCHRIJVING', v_discipline_key, 'EN', rec.ins_discipline_omschrijving_en); - update_locale('MLD_STDMELDING_OMSCHRIJVING', v_stdmelding_key, 'EN', rec.mld_stdmelding_omschrijving_en); - update_locale('MLD_STDMELDING_HINT', v_stdmelding_key, 'EN', rec.mld_stdmelding_hint_en); - - COMMIT; - EXCEPTION - WHEN OTHERS - THEN - v_error_hint := v_errormsg; - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_errormsg, - v_error_hint); - COMMIT; - END; - END LOOP; - -END; -/ - - -------------------------------------------------------------------------------- --- RAPPORTAGES Projecturen --- AAIT#22843 en AADS#22701 -------------------------------------------------------------------------------- --- Alle project-meldingen (srtdisc_key = 1) -CREATE OR REPLACE VIEW aaxx_v_project_boom_nodes -AS - SELECT vt.ins_srtdiscipline_prefix, - m.mld_melding_key, - m.mld_melding_start_key, - vg.ins_discipline_omschrijving, - sm.mld_stdmelding_omschrijving, - m.mld_melding_status - FROM mld_melding m, - mld_stdmelding sm, - mld_discipline vg, - ins_srtdiscipline vt - WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key - AND vg.ins_discipline_key = sm.mld_ins_discipline_key - AND vt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key - AND vt.ins_srtdiscipline_omschrijving = 'Project'; - --- Boomstructuur van projectmeldingen (vgl prs_v_afdelingsboom) -CREATE OR REPLACE VIEW aaxx_v_project_boom -( - niveau, - mld_melding_key, - mld_melding_key1, - mld_melding_key2, - mld_melding_key3, - mld_melding_key4 -) -AS - SELECT '1' Niveau, - m1.mld_melding_key, - m1.mld_melding_key, - TO_NUMBER (NULL), - TO_NUMBER (NULL), - TO_NUMBER (NULL) - FROM aaxx_v_project_boom_nodes m1 - WHERE m1.mld_melding_start_key IS NULL - AND m1.mld_melding_status IN (2, 3, 4, 7) - UNION - SELECT '2' Niveau, - m2.mld_melding_key, - m1.mld_melding_key, - m2.mld_melding_key, - TO_NUMBER (NULL), - TO_NUMBER (NULL) - FROM aaxx_v_project_boom_nodes m1, - aaxx_v_project_boom_nodes m2 - WHERE m2.mld_melding_start_key = m1.mld_melding_key - AND m1.mld_melding_start_key IS NULL - AND m2.mld_melding_status IN (2, 3, 4, 7) - UNION - SELECT '3' Niveau, - m3.mld_melding_key, - m1.mld_melding_key, - m2.mld_melding_key, - m3.mld_melding_key, - TO_NUMBER (NULL) - FROM aaxx_v_project_boom_nodes m1, - aaxx_v_project_boom_nodes m2, - aaxx_v_project_boom_nodes m3 - WHERE m3.mld_melding_start_key = m2.mld_melding_key - AND m2.mld_melding_start_key = m1.mld_melding_key - AND m1.mld_melding_start_key IS NULL - AND m3.mld_melding_status IN (2, 3, 4, 7) - UNION - SELECT '4' Niveau, - m4.mld_melding_key, - m1.mld_melding_key, - m2.mld_melding_key, - m3.mld_melding_key, - m4.mld_melding_key - FROM aaxx_v_project_boom_nodes m1, - aaxx_v_project_boom_nodes m2, - aaxx_v_project_boom_nodes m3, - aaxx_v_project_boom_nodes m4 - WHERE m4.mld_melding_start_key = m3.mld_melding_key - AND m3.mld_melding_start_key = m2.mld_melding_key - AND m2.mld_melding_start_key = m1.mld_melding_key - AND m1.mld_melding_start_key IS NULL - AND m4.mld_melding_status IN (2, 3, 4, 7); - --- Rapportageview -CREATE OR REPLACE VIEW aaxx_v_rap_projectboom -AS - SELECT pb.mld_melding_key1||pb.mld_melding_key2||pb.mld_melding_key3||pb.mld_melding_key4||'/'||o.mld_opdr_bedrijfopdr_volgnr hide_f_srt, - pbn.ins_srtdiscipline_prefix || pb.mld_melding_key1 - fclt_f_hoofdproject, - CASE - WHEN pb.mld_melding_key2 IS NULL THEN NULL - ELSE pbn.ins_srtdiscipline_prefix || pb.mld_melding_key2 - END - deelproject1, - CASE - WHEN pb.mld_melding_key3 IS NULL THEN NULL - ELSE pbn.ins_srtdiscipline_prefix || pb.mld_melding_key3 - END - deelproject2, - CASE - WHEN pb.mld_melding_key4 IS NULL THEN NULL - ELSE pbn.ins_srtdiscipline_prefix || pb.mld_melding_key4 - END - deelproject3, - m.mld_melding_key hide_f_melding_key, - km.mld_kenmerkmelding_waarde fclt_f_projectnaam, - '' - || pbn.ins_srtdiscipline_prefix || m.mld_melding_key - || '' - html_meldingnr, - pf.prs_perslid_naam_full fclt_x_projectmedewerker, - CASE - WHEN o.mld_opdr_bedrijfopdr_volgnr IS NULL - THEN - NULL - ELSE - '' - || htf.escape_sc(pf.prs_perslid_naam_full) - || '' - END - html_projectmedewerker, - so.mld_statusopdr_omschrijving statusopdr, - o.mld_opdr_uren weekplanning, - (SELECT SUM (mld_opdr_uren_besteed) - FROM mld_opdr_uren - WHERE mld_opdr_key = o.mld_opdr_key) - uren_besteed - FROM aaxx_v_project_boom pb, - aaxx_v_project_boom_nodes pbn, - mld_melding m, - (SELECT * - FROM mld_kenmerkmelding km, mld_kenmerk k - WHERE km.mld_kenmerk_key = k.mld_kenmerk_key - AND k.mld_srtkenmerk_key = 55) km, - (SELECT * - FROM mld_opdr - WHERE mld_typeopdr_key = 7) o, - mld_statusopdr so, - prs_v_perslid_fullnames_all pf - WHERE m.mld_melding_key = pb.mld_melding_key - AND pbn.mld_melding_key = pb.mld_melding_key - AND km.mld_melding_key(+) = m.mld_melding_key - AND o.mld_melding_key(+) = m.mld_melding_key - AND pf.prs_perslid_key(+) = o.mld_uitvoerende_keys - AND so.mld_statusopdr_key(+) = o.mld_statusopdr_key - AND o.mld_statusopdr_key(+) != 1; - - --- rapportage tbv SAS70. Verificatie van kosten in FACILITOR tov de BudgetTracker. -CREATE OR REPLACE PACKAGE AAXX_RAP -AS - TYPE t_cursor IS REF CURSOR; - - PROCEDURE kostenoverzicht (user_key IN NUMBER, - p_datum_van IN VARCHAR2, - p_datum_tot IN VARCHAR2, - p_cursor OUT t_cursor); -END; -/ - -CREATE OR REPLACE PACKAGE BODY AAXX_RAP -AS - -- - --Rapportages - -- - PROCEDURE kostenoverzicht (user_key IN NUMBER, - p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005' - p_datum_tot IN VARCHAR2, - p_cursor OUT t_cursor) - AS - v_datum_van DATE; - v_datum_tot DATE; - v_alg_level_read NUMBER; - BEGIN - v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy'); - v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy'); - - OPEN p_cursor FOR - SELECT soort, - (SELECT prs_kostensoort_oms - FROM prs_kostensoort ks - WHERE v.prs_kostensoort_key = ks.prs_kostensoort_key) - kostensoort, - (SELECT prs_kostenplaats_omschrijving - FROM prs_kostenplaats kp - WHERE v.prs_kostenplaats_key = kp.prs_kostenplaats_key) - kostenplaats, - (SELECT alg_gebouw_omschrijving - FROM alg_gebouw g - WHERE v.alg_gebouw_key = g.alg_gebouw_key) - gebouw, - SUM (opdr_kosten) opdr_kosten, - SUM (fin_factuur_totaal) fin_kosten - FROM (SELECT 'Opdracht' soort, - prs_kostensoort_key, - prs_kostenplaats_key, - alg_gebouw_key, - opdr_kosten, - fin_factuur_totaal - FROM ( SELECT COALESCE ( - f.prs_kostensoort_key, - COALESCE (std.prs_kostensoort_key, - d.prs_kostensoort_key)) - prs_kostensoort_key, - o.prs_kostenplaats_key, - alg_gebouw_key, - o.mld_opdr_kosten opdr_kosten, - SUM (f.fin_factuur_totaal) fin_factuur_totaal - FROM mld_opdr o, - mld_typeopdr t, - mld_melding m, - mld_stdmelding std, - ins_tab_discipline d, - aaxx_v_aanwezigfactuur f, - alg_v_onroerendgoed_gegevens og - WHERE o.mld_typeopdr_key = t.mld_typeopdr_key - AND t.mld_typeopdr_omschrijving = 'Workorder' - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = d.ins_discipline_key - AND o.mld_opdr_key = f.mld_opdr_key(+) - AND m.mld_alg_onroerendgoed_keys = - og.alg_onroerendgoed_keys(+) - AND o.mld_opdr_datumbegin BETWEEN v_datum_van - AND v_datum_tot - GROUP BY f.prs_kostensoort_key, - std.prs_kostensoort_key, - d.prs_kostensoort_key, - o.prs_kostenplaats_key, - alg_gebouw_key, - o.mld_opdr_kosten - UNION ALL - SELECT COALESCE (f.prs_kostensoort_key, - d.prs_kostensoort_key) - prs_kostensoort_key, - k.prs_kostenplaats_key, - g.alg_gebouw_key, - (SELECT SUM(bes_bestelopdr_item_aantal - * bes_bestelopdr_item_prijs) - FROM bes_bestelopdr_item boi - WHERE boi.bes_bestelopdr_key = bo.bes_bestelopdr_key) - opdr_prijs, - SUM (f.fin_factuur_totaal) - FROM bes_bestelling b, - prs_kostenplaats k, - aaxx_v_aanwezigfactuur f, - mld_adres ma, - bes_bestelopdr bo, - ins_tab_discipline d, - alg_gebouw g, - alg_locatie l, - (SELECT DISTINCT - bes_bestelling_key, bes_bestelopdr_key - FROM bes_bestelling_item bi, - bes_bestelopdr_item boi - WHERE bi.bes_bestelopdr_item_key = - boi.bes_bestelopdr_item_key) bes_opdr, - (SELECT DISTINCT - bes_bestelling_key, ins_discipline_key - FROM bes_bestelling_item bi, - bes_srtdeel sd, - bes_srtgroep sg - WHERE bi.bes_srtdeel_key = sd.bes_srtdeel_key - AND sd.bes_srtgroep_key = sg.bes_srtgroep_key) - cat, - ( SELECT mld_adres_key, - MAX (alg_gebouw_key) alg_gebouw_key - FROM alg_gebouw - GROUP BY mld_adres_key) adr_geb - WHERE b.prs_kostenplaats_key = k.prs_kostenplaats_key - AND b.mld_adres_key_lev = ma.mld_adres_key - AND b.bes_bestelling_key = - bes_opdr.bes_bestelling_key(+) - AND bes_opdr.bes_bestelopdr_key = - bo.bes_bestelopdr_key(+) - AND ma.alg_locatie_key = l.alg_locatie_key(+) - AND b.bes_bestelling_key = cat.bes_bestelling_key - AND cat.ins_discipline_key = d.ins_discipline_key - AND ma.mld_adres_key = adr_geb.mld_adres_key(+) - AND adr_geb.alg_gebouw_key = g.alg_gebouw_key(+) - AND bo.bes_bestelopdr_key = f.bes_bestelopdr_key(+) - AND bo.bes_bestelopdr_datum BETWEEN v_datum_van - AND v_datum_tot - GROUP BY f.prs_kostensoort_key, - d.prs_kostensoort_key, - k.prs_kostenplaats_key, - g.alg_gebouw_key, - bo.bes_bestelopdr_key) - UNION ALL - SELECT 'Contract', - d.prs_kostensoort_key, - c.prs_kostenplaats_key, - g.alg_gebouw_key, - DECODE ( - cnt_gew.cnt_contract_plaats_gewicht, - 0, - TO_NUMBER (NULL), - COALESCE ( - (cp.cnt_contract_plaats_gewicht - / cnt_gew.cnt_contract_plaats_gewicht) - * c.cnt_contract_kosten, - TO_NUMBER (NULL))) - opdr_kosten, - COALESCE ( - DECODE ( - cnt_gew.cnt_contract_plaats_gewicht, - 0, - 1, - (cp.cnt_contract_plaats_gewicht - / cnt_gew.cnt_contract_plaats_gewicht)) - * fin.fin_factuur_totaal, - NULL) - fin_factuur_totaal - FROM cnt_contract c, - cnt_contract_plaats cp, - ins_tab_discipline d, - alg_locatie l, - alg_gebouw g, - ( SELECT cnt_contract_key, - SUM (fin_factuur_totaal) fin_factuur_totaal - FROM aaxx_v_aanwezigfactuur f - WHERE f.fin_factuur_datum BETWEEN v_datum_van AND v_datum_tot - GROUP BY cnt_contract_key) fin, - ( SELECT cnt_contract_key, - SUM (cnt_contract_plaats_gewicht) - cnt_contract_plaats_gewicht - FROM cnt_contract_plaats - WHERE cnt_contract_plaats_verwijder IS NULL - GROUP BY cnt_contract_key) cnt_gew, - (SELECT cp.cnt_contract_plaats_key, - alg_locatie_key, - alg_gebouw_key - FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp - WHERE aog.alg_type = cp.cnt_alg_plaats_code - AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) - cog - WHERE c.ins_discipline_key = d.ins_discipline_key - AND c.cnt_contract_key = cp.cnt_contract_key(+) - AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+) - AND cp.cnt_contract_plaats_key = - cog.cnt_contract_plaats_key(+) - AND c.cnt_contract_verwijder IS NULL - AND cp.cnt_contract_plaats_verwijder IS NULL - AND cog.alg_locatie_key = l.alg_locatie_key(+) - AND cog.alg_gebouw_key = g.alg_gebouw_key(+) - AND c.cnt_contract_key = fin.cnt_contract_key(+) - AND (v_datum_van BETWEEN c.cnt_contract_looptijd_van - AND c.cnt_contract_looptijd_tot - OR v_datum_tot BETWEEN c.cnt_contract_looptijd_van - AND c.cnt_contract_looptijd_tot)) v - GROUP BY soort, - prs_kostensoort_key, - prs_kostenplaats_key, - alg_gebouw_key; - END; -END; -/ - --- VIEWS tbv RealTimeMonitor - - - -CREATE OR REPLACE VIEW aaxx_v_graph_meldingpm -( - FCLT_XAS_, - FCLT_YAS_, - VOLGORDE -) -AS - SELECT DECODE (SUBSTR (TO_CHAR (mld_melding_datum, 'yyyymm'), 5), - '01', 'Januari', - '02', 'Februari', - '03', 'Maart', - '04', 'April', - '05', 'Mei', - '06', 'Juni', - '07', 'Juli', - '08', 'Augustus', - '09', 'September', - '10', 'Oktober', - '11', 'November', - 'December'), - COUNT (d.ins_discipline_omschrijving), - TO_CHAR (mld_melding_datum, 'yyyymm') - FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d - WHERE mld_melding_datum BETWEEN ADD_MONTHS ( - TO_DATE ( - TO_CHAR (SYSDATE, 'yyyymm') || '01', - 'yyyymmdd'), - -11) - AND SYSDATE - AND m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = d.ins_discipline_key - AND (aaxx_get_user <> 'IT' OR d.ins_srtdiscipline_key = 22) -- IT helpdesk - GROUP BY TO_CHAR (mld_melding_datum, 'yyyymm'); - - -CREATE OR REPLACE VIEW aaxx_v_graph_openst_behand -( - FCLT_XAS_, - FCLT_YAS_, - FCLT_YAS2_OP_TIJD -) -AS - SELECT COALESCE (behandelaar, 'Onbekend') behandelaar, - COUNT (mld_key) - SUM (uitvoeringoptijd) totaal, - SUM (uitvoeringoptijd) op_tijd - FROM (SELECT DISTINCT - m.mld_melding_key mld_key, - CASE - WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NULL - THEN - CASE SIGN(fac.datumtijdplusuitvoertijd ( - m.mld_melding_datum, - m.mld_melding_t_uitvoertijd.tijdsduur, - m.mld_melding_t_uitvoertijd.eenheid) - - COALESCE ( - fac.gettrackingdate ('MLDREJ', m.mld_melding_key), - fac.gettrackingdate ('MLDAFM', m.mld_melding_key), - SYSDATE)) - WHEN -1 - THEN - 0 - ELSE - 1 - END - ELSE - 1 - END - uitvoeringoptijd, - DECODE ( - mld_melding_status, - 7, - (SELECT MAX (prs_bedrijf_naam) - FROM mld_opdr o, prs_bedrijf b - WHERE o.mld_melding_key = m.mld_melding_key - AND O.MLD_UITVOERENDE_KEYS = b.prs_bedrijf_key - AND O.MLD_STATUSOPDR_KEY IN (3, 4, 5, 8)), -- 3- Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd - 4, - COALESCE ( - (SELECT MAX (prs_bedrijf_naam) - FROM mld_opdr o, prs_bedrijf b - WHERE o.mld_melding_key = m.mld_melding_key - AND O.MLD_UITVOERENDE_KEYS = - b.prs_bedrijf_key - AND O.MLD_STATUSOPDR_KEY IN (3, 4, 5, 8)), -- 3- Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames pf - WHERE pf.prs_perslid_key = - M.MLD_MELDING_BEHANDELAAR_KEY)), - (SELECT prs_perslid_naam_full - FROM prs_v_perslid_fullnames pf - WHERE pf.prs_perslid_key = - M.MLD_MELDING_BEHANDELAAR_KEY)) - behandelaar - FROM mld_melding m, - mld_discipline md, - prs_perslid p, - mld_stdmelding std - WHERE m.prs_perslid_key = p.prs_perslid_key - AND md.ins_discipline_key = std.mld_ins_discipline_key - AND std.mld_stdmelding_key = m.mld_stdmelding_key - AND mld_melding_status IN (2, 3, 4, 7, 0) -- 2-ingevoerd, 3-ingezien, 4-geaccepteerd, 7-uitgegeven, 0-pending - AND (aaxx_get_user <> 'IT' OR md.ins_srtdiscipline_key = 22)) -- IT - GROUP BY behandelaar; - - -CREATE OR REPLACE VIEW aaxx_v_graph_ppi_acc (FCLT_XAS_, FCLT_YAS_) -AS - SELECT SUM (acceptoptijd) aantal, COUNT (mld_key) totaal - FROM (SELECT DISTINCT - m.mld_melding_key mld_key, - CASE SIGN(fac.datumtijdplusuitvoertijd ( - fac.gettrackingdate ('MLDNEW', - m.mld_melding_key), - std.mld_stdmelding_t_accepttijd.tijdsduur, - std.mld_stdmelding_t_accepttijd.eenheid) - - COALESCE ( - fac.gettrackingdate ('MLDREJ', - m.mld_melding_key), - fac.gettrackingdate ('MLDAFM', - m.mld_melding_key), - SYSDATE)) - WHEN -1 - THEN - 0 - ELSE - 1 - END - acceptoptijd - FROM mld_melding m, mld_discipline md, mld_stdmelding std - WHERE md.ins_discipline_key = std.mld_ins_discipline_key - AND std.mld_stdmelding_key = m.mld_stdmelding_key - AND (aaxx_get_user <> 'IT' OR md.ins_srtdiscipline_key = 22) -- IT helpdesk - AND mld_melding_status IN (2, 3) -- 2-ingevoerd, 3-ingezien - ); - -CREATE OR REPLACE VIEW aaxx_v_graph_ppi_uitv -( - FCLT_XAS_, - FCLT_YAS_ -) -AS - SELECT SUM (uitvoeringoptijd) aantal, COUNT (mld_key) totaal - FROM (SELECT DISTINCT - m.mld_melding_key mld_key, - CASE - WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NULL - THEN - CASE SIGN(fac.datumtijdplusuitvoertijd ( - m.mld_melding_datum, - m.mld_melding_t_uitvoertijd.tijdsduur, - m.mld_melding_t_uitvoertijd.eenheid) - - COALESCE ( - fac.gettrackingdate ('MLDREJ', m.mld_melding_key), - fac.gettrackingdate ('MLDAFM', m.mld_melding_key), - SYSDATE)) - WHEN -1 - THEN - 0 - ELSE - 1 - END - ELSE - 1 - END - uitvoeringoptijd - FROM mld_melding m, mld_discipline md, mld_stdmelding std - WHERE md.ins_discipline_key = std.mld_ins_discipline_key - AND std.mld_stdmelding_key = m.mld_stdmelding_key - AND (aaxx_get_user <> 'IT' OR md.ins_srtdiscipline_key = 22) -- IT helpdesk - AND mld_melding_status IN (2, 3, 4, 7, 0) -- 2-ingevoerd, 3-ingezien, 4-geaccepteerd, 7-uitgegeven, 0-pending - ); - -CREATE OR REPLACE VIEW aaxx_v_graph_vakgroep_afg -( - fclt_xas_, - fclt_yas_, - fclt_url, - fclt_3d_discipline_key -) -AS - SELECT d.ins_discipline_omschrijving, - COUNT (d.ins_discipline_omschrijving), - 'appl/mld/mld_search.asp?urole=fo&autosearch=1&disc_key_str=', - d.ins_discipline_key - FROM mld_melding m, - mld_stdmelding std, - ins_tab_discipline d, - fac_srtnotificatie sn, - fac_tracking t - WHERE m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = d.ins_discipline_key - AND (aaxx_get_user <> 'IT' OR d.ins_srtdiscipline_key = 22) -- IT helpdesk - AND t.fac_tracking_refkey = mld_melding_key - AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key - AND sn.fac_srtnotificatie_code = 'MLDAFM' - AND t.fac_tracking_datum > SYSDATE - 30 - GROUP BY d.ins_discipline_key, d.ins_discipline_omschrijving; - - -CREATE OR REPLACE VIEW aaxx_v_graph_vakgroep_open -( - FCLT_XAS_, - FCLT_YAS_, - FCLT_URL, - FCLT_3D_DISCIPLINE_KEY -) -AS - SELECT d.ins_discipline_omschrijving, - COUNT (d.ins_discipline_omschrijving), - 'appl/mld/mld_search.asp?urole=fo&autosearch=1&disc_key_str=' - || d.ins_discipline_key, - d.ins_discipline_key - FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d - WHERE m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = d.ins_discipline_key - AND mld_melding_status IN (2, 3, 4, 7, 0) -- 2-ingevoerd, 3-ingezien, 4-geaccepteerd, 7-uitgegeven, 0-pending - AND ( - (aaxx_get_user = 'GN' AND d.ins_srtdiscipline_key = 5) -- Storingen - OR - (aaxx_get_user = 'IT' AND d.ins_srtdiscipline_key = 22) -- IT helpdesk - OR - (aaxx_get_user <> 'GN' AND aaxx_get_user <> 'IT') - ) - GROUP BY d.ins_discipline_key, d.ins_discipline_omschrijving - ORDER BY COUNT (d.ins_discipline_omschrijving) DESC; - - --- --- Notificatie jobs --- --- AAES#25128: BEZMUT-notificatie ook naar bezoeker sturen. --- Wat te doen om dit aan te zetten: --- Notificatiejob AAXX_V_NOTI_BEZOEKERS --- Stylesheet aanpassen --- Key van het kenmerk email hieronder invullen -CREATE OR REPLACE VIEW aaxx_v_noti_bezoekers -( - sender, - receiver, - text, - code, - fac_srtnotificatie_key, - KEY, - xkey, - xemail, - xmobile -) -AS - SELECT NULL sender, - NULL receiver, - DECODE (aaxx_get_user, 'ESSENT', 'Essent', - 'ENEXIS', 'Enexis', - 'ARCADIS', 'Arcadis', - 'SABIC', 'Sabic', - 'AAFM') - || ' bevestigingmail afspraak ' - || TO_CHAR (bez_afspraak_datum, 'dd-mm-yyyy') text, - 'CUST03' code, - (SELECT fac_srtnotificatie_key - FROM fac_srtnotificatie - WHERE fac_srtnotificatie_code = 'CUST03') fac_srtnotificatie_key, - b.bez_afspraak_key key, - b.bez_bezoekers_key xkey, - kw.bez_kenmerkwaarde_waarde xemail, - NULL xmobile - FROM fac_tracking t, - bez_afspraak a, - bez_bezoekers b, - bez_kenmerkwaarde kw - WHERE t.fac_srtnotificatie_key = - (SELECT fac_srtnotificatie_key - FROM fac_srtnotificatie - WHERE fac_srtnotificatie_code = 'BEZMUT') - AND t.fac_tracking_datum > (SELECT fac_notificatie_job_nextrun - fac_notificatie_job_interval/24 - FROM fac_notificatie_job - WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_BEZOEKERS') - AND t.fac_tracking_datum < (SELECT fac_notificatie_job_nextrun - FROM fac_notificatie_job - WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_BEZOEKERS') - AND a.bez_afspraak_key = t.fac_tracking_refkey - AND a.bez_afspraak_datum > SYSDATE - AND b.bez_afspraak_key = t.fac_tracking_refkey - AND b.bez_bezoekers_key = kw.bez_bezoekers_key - AND kw.bez_kenmerk_key = DECODE (aaxx_get_user, 'ESSENT', 1001, - 'IT', 1022, - 'ARCADIS', 1003, - 'ENEXIS', 1023, - 'SABIC', 1000); - - --- Rapportage t.b.v. Share & Meet --- Share and Meet reserveringen zijn te herkennen aan een host die een login heeft met de volgende struktuur __ --- bijvoorbeeld _AANS_4533 -CREATE OR REPLACE VIEW aaxx_v_rap_share_meet_kosten -( - reservering, - afdelingscode, - fclt_f_afdelings_omschrijving, - verbruiksartikelen, - boekingsdatum, - afmelddatum, - fclt_f_periode, - aanvrager, - locatie, - gebouw, - ruimtenaam, - btw, - stuksprijs, - aantal, - totaal -) -AS - SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr resnr, - a.prs_afdeling_naam, - a.prs_afdeling_omschrijving, - rrp.omschrijving, - TO_CHAR (rrr.res_rsv_ruimte_van, 'dd-mm-yyyy'), - TO_CHAR (rrp.afgemeld, 'dd-mm-yyyy'), - TO_CHAR (rrp.afgemeld, 'yyyy-mm'), - pf_h.prs_perslid_naam_full pfh, - rg.alg_locatie_omschrijving, - rg.alg_gebouw_omschrijving, - rr.res_ruimte_nr, - btw, - rrp.artikel_prijs, - rrp.aantal, - rrp.prijs - FROM res_rsv_ruimte rrr, - (SELECT rrr.res_rsv_ruimte_key, - ra.res_artikel_omschrijving omschrijving, - rra.res_rsv_artikel_aantal aantal, - ROUND ( - res.getartikelprijs (rra.res_rsv_artikel_key) - / rra.res_rsv_artikel_aantal, - 2) - artikel_prijs, - rra.res_rsv_artikel_prijs prijs, - rra.res_rsv_artikel_afgemeld afgemeld, - ra.res_artikel_btw btw - FROM res_rsv_ruimte rrr, res_rsv_artikel rra, res_artikel ra - WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key - AND rra.res_artikel_key = ra.res_artikel_key - AND rra.res_rsv_artikel_verwijder IS NULL - UNION - SELECT fac_tracking_refkey res_rsv_ruimte_key, - 'Zaalhuur', - 1 aantal, - res_rsv_ruimte_prijs artikel_prijs, - res_rsv_ruimte_prijs prijs, - t.fac_tracking_datum afgemeld, - 21 btw - FROM res_rsv_ruimte rrr, fac_tracking t, fac_srtnotificatie sn - WHERE res_rsv_ruimte_prijs <> 0 - AND rrr.res_rsv_ruimte_key = t.fac_tracking_refkey - AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key - AND sn.fac_srtnotificatie_code = 'RESAFM' - AND t.fac_tracking_oms IS NULL - AND res_rsv_ruimte_verwijder IS NULL) rrp, - prs_v_perslid_fullnames_all pf_h, - res_ruimte rr, - prs_afdeling a, - prs_perslid p, - ( SELECT MAX (alg_ruimte_key) alg_ruimte_key, - res_rsv_ruimte_key, - res_ruimte_key - FROM res_v_rsv_ruimte_2_alg_ruimte - GROUP BY res_rsv_ruimte_key, res_ruimte_key) r, - alg_v_ruimte_gegevens rg - WHERE rrp.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key - AND rrr.res_rsv_ruimte_host_key = pf_h.prs_perslid_key - AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key - AND p.prs_afdeling_key = a.prs_afdeling_key - AND r.res_ruimte_key = rr.res_ruimte_key - AND rrr.res_rsv_ruimte_key = r.res_rsv_ruimte_key - AND r.alg_ruimte_key = rg.alg_ruimte_key - AND rrp.afgemeld IS NOT NULL - AND p.prs_perslid_oslogin like '/_AA__/_%' escape '/'; - - --- AAIT#28929 notificaties t.b.v Share & Meet voor beoordeling dag later -CREATE OR REPLACE VIEW aaxx_v_noti_sm_resafm_reminder -( - CODE, - SENDER, - RECEIVER, - TEXT, - KEY, - XKEY -) -AS - SELECT 'RESAFM', - NULL, - res_rsv_ruimte_contact_key, - 'Herinnering beoordeling reservering: ' - || res_reservering_key - || '/' - || res_rsv_ruimte_volgnr, - rsv.res_reservering_key, - rsv.res_rsv_ruimte_key - FROM res_rsv_ruimte rsv, - res_activiteit ra, - res_srtactiviteit rsr, - fac_tracking tr, - fac_srtnotificatie str - WHERE res_rsv_ruimte_verwijder IS NULL - AND rsv.res_activiteit_key = ra.res_activiteit_key - AND ra.res_srtactiviteit_key = rsr.res_srtactiviteit_key - AND UPPER(rsr.res_srtactiviteit_omschrijving) = 'SHARE & MEET' - AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key - AND tr.fac_tracking_refkey = res_rsv_ruimte_key - AND str.fac_srtnotificatie_xmlnode IN - ('reservering', 'xreservering') - AND fac_srtnotificatie_code = 'RESAFM' - AND fac_tracking_oms IS NULL - AND TO_DATE (fac_tracking_datum, 'DD-MM-YYYY') = - TO_DATE (SYSDATE-1, 'DD-MM-YYYY'); - --- kenmerk key 1000: afspraak is prive (dus niet op infobord) --- geld voor IT en Arcadis -CREATE OR REPLACE VIEW aaxx_v_rap_infobord -( - item_type, - item_key, - aktief, - bezoek_status, - offset, - dag, - tijd_van, - tijd_tot, - ruimte, - catalogus, - aanvrager, - gastheer, - omschrijving, - status, - bezoeker, - bedrijf, - locatie_code, - gebouw_code, - verdieping_code, - locatie_omschrijving, - gebouw_omschrijving, - verdieping_omschrijving, - alg_locatie_key, - alg_gebouw_key, - alg_verdieping_key -) -AS - SELECT 'RES', - rrr.res_rsv_ruimte_key, - (CASE - WHEN res_rsv_ruimte_van > SYSDATE THEN 'expected' - WHEN res_rsv_ruimte_tot < SYSDATE THEN 'passed' - ELSE 'active' - END) - aktief, - (CASE - WHEN b.bez_bezoekers_out IS NOT NULL THEN 'out' - WHEN b.bez_bezoekers_done IS NOT NULL THEN 'in' - ELSE 'expected' - END) - bezoek_status, - TRUNC ( (SYSDATE - res_rsv_ruimte_van) * 24 * 60) offset, - TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy') dag, - TO_CHAR (res_rsv_ruimte_van, 'hh24:mi') tijd_van, - TO_CHAR (res_rsv_ruimte_tot, 'hh24:mi') tijd_tot, - res_ruimte_nr ruimte, - ins_discipline_omschrijving catalogus, - aanvrager.prs_perslid_naam_full aanvrager, - COALESCE (gastheer.prs_perslid_naam_full, - a.bez_afspraak_gastheer) - gastheer, - res_rsv_ruimte_omschrijving omschrijving, - sf.res_status_fo_omschrijving status, - b.bez_afspraak_naam, - b.bez_afspraak_bedrijf, - alg_locatie_code locatie_code, - alg_gebouw_code gebouw_code, - alg_verdieping_code verdieping_code, - alg_locatie_omschrijving locatie_omschrijving, - alg_gebouw_omschrijving gebouw_omschrijving, - alg_verdieping_omschrijving verdieping_omschrijving, - l.alg_locatie_key, - g.alg_gebouw_key, - v.alg_verdieping_key - FROM res_v_aanwezigrsv_ruimte rrr, - res_ruimte_opstelling rro, - prs_v_perslid_fullnames aanvrager, - prs_v_perslid_fullnames gastheer, - res_v_res_ruimte_gegevens rrg, - alg_locatie l, - alg_gebouw g, - alg_verdieping v, - res_status_fo sf, - res_discipline rd, - bez_afspraak a, - bez_bezoekers b, - (SELECT * FROM bez_kenmerkwaarde - WHERE bez_kenmerk_key = 1000 - AND bez_kenmerkwaarde_verwijder IS NULL) prive - WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key - AND rro.res_ruimte_key = rrg.res_ruimte_key - AND rrr.res_rsv_ruimte_host_key = gastheer.prs_perslid_key(+) - AND rrr.res_rsv_ruimte_contact_key = aanvrager.prs_perslid_key - AND TRUNC (res_rsv_ruimte_van) = TRUNC (SYSDATE) - AND rrg.alg_locatie_key = l.alg_locatie_key - AND rrg.alg_gebouw_key = g.alg_gebouw_key - AND rrg.alg_verdieping_key = v.alg_verdieping_key - AND rrr.res_status_fo_key = sf.res_status_fo_key - AND rrg.res_discipline_key = rd.ins_discipline_key - AND rrr.res_rsv_ruimte_key = a.res_rsv_ruimte_key(+) - AND a.bez_afspraak_key = b.bez_afspraak_key(+) - AND prive.bez_bezoekers_key(+) = b.bez_bezoekers_key - AND COALESCE(prive.bez_kenmerkwaarde_waarde, '0') = '0' - UNION ALL - SELECT 'BEZ', - b.bez_afspraak_key, - (CASE - WHEN a.bez_afspraak_datum > SYSDATE THEN 'expected' - WHEN a.bez_afspraak_eind < SYSDATE THEN 'passed' - ELSE 'active' - END) - aktief, - (CASE - WHEN b.bez_bezoekers_out IS NOT NULL THEN 'out' - WHEN b.bez_bezoekers_done IS NOT NULL THEN 'in' - ELSE 'expected' - END) - bezoek_status, - TRUNC ( (SYSDATE - bez_afspraak_datum) * 24 * 60) offset, - TO_CHAR (bez_afspraak_datum, 'dd-mm-yyyy') dag, - TO_CHAR (bez_afspraak_datum, 'hh24:mi') tijd_van, - TO_CHAR (bez_afspraak_eind, 'hh24:mi') tijd_tot, - NULL ruimte, - NULL catalogus, - aanvrager.prs_perslid_naam_full aanvrager, - COALESCE (gastheer.prs_perslid_naam_full, - a.bez_afspraak_gastheer) - gastheer, - NULL omschrijving, - NULL status, - b.bez_afspraak_naam, - b.bez_afspraak_bedrijf, - alg_locatie_code locatie_code, - alg_gebouw_code gebouw_code, - NULL verdieping_code, - alg_locatie_omschrijving locatie_omschrijving, - alg_gebouw_naam gebouw_omschrijving, - alg_verdieping_omschrijving verdieping_omschrijving, - l.alg_locatie_key, - ogg.alg_gebouw_key, - ogg.alg_verdieping_key - FROM bez_afspraak a, - bez_bezoekers b, - prs_v_perslid_fullnames aanvrager, - alg_locatie l, - alg_v_allonrgoed_gegevens ogg, - prs_v_perslid_fullnames gastheer, - (SELECT * FROM bez_kenmerkwaarde - WHERE bez_kenmerk_key = 1000 - AND bez_kenmerkwaarde_verwijder IS NULL) prive - WHERE a.bez_afspraak_key = b.bez_afspraak_key - AND TRUNC(a.bez_afspraak_datum) = TRUNC(SYSDATE) - AND a.bez_afspraak_host_key = gastheer.prs_perslid_key(+) - AND a.bez_afspraak_contact_key = aanvrager.prs_perslid_key - AND a.alg_locatie_key = l.alg_locatie_key - AND a.alg_onrgoed_keys = ogg.alg_onroerendgoed_keys(+) - AND a.res_rsv_ruimte_key IS NULL - AND prive.bez_bezoekers_key(+) = b.bez_bezoekers_key - AND COALESCE(prive.bez_kenmerkwaarde_waarde, '0') = '0'; - - --- AAES#24665/AANS#27628: In eerste instantie vormgegeven tbv. meldingen op --- objecten. Later uitgebreid tbv. reserveringen. -/* Formatted on 10-10-2013 14:32:24 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE VIEW aaxx_v_rap_mld_qrc -( - fclt_3d_locatie_key, - fclt_3d_discipline_key, - fclt_f_discipline, - fclt_f_soortmelding, - fclt_f_locatie, - fclt_f_gebouw, - fclt_f_verdieping, - plaats, - ruimte_key, - ruimtefunctie, - fclt_f_objectdiscipline, - fclt_f_objectgroep, - objectsoort_key, - fclt_f_objectsoort, - objectsoort_code, - ins_deel_key, - ins_deel_omschrijving, - ins_deel_upper, - hide_f_bookmark_id, - variabele -) -AS - SELECT l.alg_locatie_key, - disc.ins_discipline_key, - disc.ins_discipline_omschrijving, - msd.mld_stdmelding_omschrijving, - l.alg_locatie_omschrijving, - o.alg_gebouw_omschrijving, - o.alg_verdieping_omschrijving, - o.alg_plaatsaanduiding plaats, - d.ins_alg_ruimte_key ruimte_key, - sr.alg_srtruimte_omschrijving, - disc.ins_discipline_omschrijving, - sg.ins_srtgroep_omschrijving, - sd.ins_srtdeel_key, - sd.ins_srtdeel_omschrijving, - sd.ins_srtdeel_code, - d.ins_deel_key, - d.ins_deel_omschrijving, - d.ins_deel_upper, - b.fac_bookmark_id, - 'INS_KEY' - FROM (SELECT DECODE ( - INSTR ( - SUBSTR ( - UPPER (fac_bookmark_query), - INSTR (UPPER (fac_bookmark_query), - 'STDM_KEY=') - ), - '&' - ), - 0, - SUBSTR ( - SUBSTR ( - UPPER (fac_bookmark_query), - INSTR (UPPER (fac_bookmark_query), - 'STDM_KEY=') - ), - 10 - ), - SUBSTR ( - SUBSTR ( - UPPER (fac_bookmark_query), - INSTR (UPPER (fac_bookmark_query), - 'STDM_KEY=') - ), - 10, - INSTR ( - SUBSTR ( - UPPER (fac_bookmark_query), - INSTR (UPPER (fac_bookmark_query), - 'STDM_KEY=') - ), - '&' - ) - - 10 - ) - ) - stdm_key, - fac_bookmark_id - FROM fac_bookmark - WHERE UPPER (fac_bookmark_path) = 'APPL/PDA/MELDING.ASP' - AND INSTR (UPPER (fac_bookmark_query), 'STDM_KEY') > 0) - b, -- stdm_key-bookmarks - (SELECT sm.mld_stdmelding_key, - sm.mld_stdmelding_omschrijving, - si.ins_srtinstallatie_key ins_srtdeel_key - FROM mld_stdmelding sm, - mld_stdmelding_srtinst si - WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key - AND sm.mld_stdmelding_verwijder IS NULL - AND si.ins_srtinstallatie_niveau = 'S' - UNION ALL - SELECT sm.mld_stdmelding_key, - sm.mld_stdmelding_omschrijving, - sd.ins_srtdeel_key - FROM mld_stdmelding sm, - mld_stdmelding_srtinst si, - ins_srtdeel sd - WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key - AND sm.mld_stdmelding_verwijder IS NULL - AND si.ins_srtinstallatie_niveau = 'G' - AND si.ins_srtinstallatie_key = sd.ins_srtgroep_key - UNION ALL - SELECT sm.mld_stdmelding_key, - sm.mld_stdmelding_omschrijving, - sd.ins_srtdeel_key - FROM mld_stdmelding sm, - mld_stdmelding_srtinst si, - ins_srtgroep sg, - ins_srtdeel sd - WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key - AND sm.mld_stdmelding_verwijder IS NULL - AND si.ins_srtinstallatie_niveau = 'D' - AND si.ins_srtinstallatie_key = sg.ins_discipline_key - AND sg.ins_srtgroep_key = sd.ins_srtgroep_key) msd, -- object-meldingen - ins_v_aanwezigdeel d, - ins_srtdeel sd, - ins_srtgroep sg, - ins_discipline disc, - ins_v_alg_overzicht o, - alg_locatie l, - alg_ruimte r, - alg_srtruimte sr - WHERE fac.safe_to_number (b.stdm_key) = msd.mld_stdmelding_key - AND msd.ins_srtdeel_key = d.ins_srtdeel_key - AND d.ins_alg_ruimte_type IN ('T', 'R', 'W') - AND d.ins_deel_parent_key IS NULL - AND d.ins_srtdeel_key = sd.ins_srtdeel_key - AND sd.ins_srtgroep_key = sg.ins_srtgroep_key - AND sg.ins_discipline_key = disc.ins_discipline_key - AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys - AND d.ins_alg_ruimte_type = o.alg_onroerendgoed_type - AND d.ins_alg_locatie_key = o.alg_locatie_key -- redundant? - AND o.alg_locatie_key = l.alg_locatie_key - AND d.ins_alg_ruimte_key = r.alg_ruimte_key - AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+) - UNION ALL - SELECT l.alg_locatie_key, - disc.ins_discipline_key, - disc.ins_discipline_omschrijving, - 'Reserveer ruimte', - l.alg_locatie_omschrijving, - o.alg_gebouw_omschrijving, - o.alg_verdieping_omschrijving, - rr.res_ruimte_nr plaats, - rar.res_ruimte_key ruimte_key, - sr.alg_srtruimte_omschrijving, - NULL ins_discipline_omschrijving, - NULL ins_srtgroep_omschrijving, - NULL ins_srtdeel_key, - NULL ins_srtdeel_omschrijving, - NULL ins_srtdeel_code, - NULL ins_deel_key, - NULL ins_deel_omschrijving, - NULL ins_deel_upper, - b.fac_bookmark_id, - 'RES_RUIMTE_KEY' - FROM fac_bookmark b, - res_ruimte rr, - res_discipline disc, - ( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key - FROM res_alg_ruimte - WHERE res_alg_ruimte_verwijder IS NULL - GROUP BY res_ruimte_key) rar, - alg_ruimte r, - alg_srtruimte sr, - ins_v_alg_overzicht o, - alg_locatie l - WHERE TRUNC (b.fac_bookmark_aanmaak) = TO_DATE ('10102013', 'ddmmyyyy') - AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/RESERVERINGEN.ASP' - AND rr.res_discipline_key = disc.ins_discipline_key - AND rr.res_ruimte_key = rar.res_ruimte_key - AND rar.alg_ruimte_key = r.alg_ruimte_key - AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+) - AND r.alg_ruimte_key = o.alg_onroerendgoed_keys - AND o.alg_onroerendgoed_type = 'R' - AND o.alg_locatie_key = l.alg_locatie_key; - --- AASA#37919 --- Rapport met opdrachtgegevens van hergoedkeuringsverzoeken incl gebouwverantwoordelijke --- Status 10 = ter goedkeuring -CREATE OR REPLACE VIEW aaxx_v_udr_hergoedkeuren -AS -SELECT mld_opdr_key, - srt.ins_srtdiscipline_prefix - || o.mld_melding_key - || '/' - || mld_opdr_bedrijfopdr_volgnr - opdrachtnr, - mu.naam uitvoerende, - ot.mld_typeopdr_omschrijving opdrachttype, - mld_opdr_omschrijving omschrijving, - k.prs_kostenplaats_nr || ' ' || prs_kostenplaats_omschrijving - kostenplaats, - mld_opdr_kosten kosten, - pf1.prs_perslid_naam_full behandelaar, - mld_opdr_opmerking afhandeling, - mld_opdr_datumbegin opdrachtdatum, - mld_opdr_einddatum einddatum, - mld_opdr_plandatum plandatum, - l.alg_locatie_code || aog.alg_plaatsaanduiding plaats, - aog.alg_gebouw_key, - aog.alg_gebouw_code gebouw_code, - g.prs_perslid_key_verantw gebouw_verwantwoordelijke_key, - pf2.prs_perslid_naam_full gebouw_verwantwoordelijke, - aog.alg_verdieping_omschrijving verdieping_omschrijving, - aog.alg_verdieping_code verdieping, - aog.alg_ruimte_nr ruimte_nr, - aog.alg_ruimte_omschrijving ruimte_omschrijving, - std.mld_stdmelding_omschrijving melding, - d.ins_discipline_omschrijving vakgroep, - srt.ins_srtdiscipline_omschrijving vakgroeptype - FROM mld_opdr o, - mld_melding m, - alg_v_allonrgoed_gegevens aog, - alg_locatie l, - alg_gebouw g, - mld_stdmelding std, - mld_discipline d, - ins_srtdiscipline srt, - mld_typeopdr ot, - prs_v_perslid_fullnames_all pf1, - prs_v_perslid_fullnames_all pf2, - mld_v_uitvoerende mu, - prs_kostenplaats k - WHERE mld_statusopdr_key = 10 - AND mld_opdr_approved_refiat IS NOT NULL - AND o.mld_melding_key = m.mld_melding_key - AND o.fac_activiteit_key IS NULL - AND aog.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys - AND aog.alg_locatie_key = l.alg_locatie_key - AND g.alg_gebouw_key = aog.alg_gebouw_key - AND m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = d.ins_discipline_key - AND srt.ins_srtdiscipline_key = d.ins_srtdiscipline_key - AND ot.mld_typeopdr_key = o.mld_typeopdr_key - AND pf1.prs_perslid_key(+) = o.prs_perslid_key - AND pf2.prs_perslid_key(+) = g.prs_perslid_key_verantw - AND mu.mld_uitvoerende_key = o.mld_uitvoerende_keys - AND o.prs_kostenplaats_key = k.prs_kostenplaats_key(+); - --- AAFM#26513 Notificatie goedgekeurde offerte naar autorisatiegroep "AAFM Servicedesk"' --- Opdracht in status 9 (na ORDOOK) --- 'opdracht bij melding wanneer automatische offerteafhandeling uitgeschakeld is' --> mld_disc_params_offerteauto = 0 --- Opdracht (RFQ) sinds de vorige check goedgekeurd (eenmalig sturen) --- Bestemming zijn de personen(0..n) in autorisatiegroep AAFM Servicedesk. -CREATE OR REPLACE VIEW aaxx_v_noti_offerte_accepted -( - sender, - receiver, - text, - code, - key, - xkey -) -AS - SELECT DISTINCT NULL sender, - gg.prs_perslid_key receiver, - (SELECT fac_version_cust FROM fac_version) - || ': Offerte ' - || m.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr - || ' is geaccepteerd' text, - 'CUST04' code, - o.mld_opdr_key key, - NULL xkey - FROM mld_opdr o, - mld_melding m, - mld_stdmelding s, - mld_discipline d, - mld_disc_params dp, - fac_srtnotificatie sn, - fac_tracking t, - fac_groep g, - fac_gebruikersgroep gg - WHERE o.mld_statusopdr_key = 9 - AND m.mld_melding_key = o.mld_melding_key - AND s.mld_stdmelding_key = m.mld_stdmelding_key - AND d.ins_discipline_key = s.mld_ins_discipline_key - AND dp.mld_ins_discipline_key = d.ins_discipline_key - AND dp.mld_disc_params_offerteauto = 0 - AND sn.fac_srtnotificatie_code = 'ORDOOK' - AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key - AND t.fac_tracking_refkey = o.mld_opdr_key - AND t.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun - fac_notificatie_job_interval/24 - FROM fac_notificatie_job - WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_OFFERTE_ACCEPTED') - AND (SELECT fac_notificatie_job_nextrun - FROM fac_notificatie_job - WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_OFFERTE_ACCEPTED') - AND g.fac_groep_upper = 'AAFM SERVICEDESK' - AND gg.fac_groep_key = g.fac_groep_key; - - --- AAHU#29410 Notificatie geregistreerde klacht naar groep "AAFM-FMer" --- prefix KL is klacht -CREATE OR REPLACE VIEW aaxx_v_noti_klacht_reminder -( - sender, - receiver, - text, - code, - key, - xkey -) -AS - SELECT NULL, - fm.prs_perslid_key, - 'Er is een klacht geregistreerd met referentienummer: ' - || m.mld_melding_key, - 'MLDNEW', - m.mld_melding_key, - NULL - FROM mld_melding m, - mld_stdmelding std, - mld_discipline d, - ins_srtdiscipline srt, - fac_tracking tr, - fac_srtnotificatie str, - (SELECT p.prs_perslid_key - FROM fac_gebruikersgroep fg, fac_groep g, prs_perslid p - WHERE g.fac_groep_key = fg.fac_groep_key - AND p.prs_perslid_key = fg.prs_perslid_key - AND UPPER (g.fac_groep_omschrijving) = 'AAFM FM-ER' - AND prs_perslid_verwijder IS NULL - AND prs_perslid_email IS NOT NULL) fm - WHERE m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = d.ins_discipline_key - AND d.ins_srtdiscipline_key = srt.ins_srtdiscipline_key - AND srt.ins_srtdiscipline_module = 'MLD' - AND srt.ins_srtdiscipline_prefix = 'KL' - AND m.fac_activiteit_key IS NULL - AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key - AND tr.fac_tracking_refkey = m.mld_melding_key - AND str.fac_srtnotificatie_code = 'MLDNEW' - AND tr.fac_tracking_datum > SYSDATE - 1 / 24; - --- AAAR#29457 notificatiejob voor nieuwe S&M-reserveringen naar receptie (groep "AAFM S&M") --- Bij nieuwe reserveringen bericht naar alle personen (0..n) in autorisatiegroep AAFM S&M. -CREATE OR REPLACE VIEW aaxx_v_noti_sm_receptie -( - code, - sender, - receiver, - text, - key, - xkey -) -AS - SELECT 'CUST06', - NULL, - fm.prs_perslid_key, - 'Let op: er is een Share & Meet reservering gemaakt met reserveringsnummer ' - || res_reservering_key - || '/' - || res_rsv_ruimte_volgnr, - res_reservering_key, - res_rsv_ruimte_key - FROM res_rsv_ruimte r, - res_activiteit a, - (SELECT p.prs_perslid_key - FROM fac_gebruikersgroep fg, fac_groep g, prs_perslid p - WHERE g.fac_groep_key = fg.fac_groep_key - AND p.prs_perslid_key = fg.prs_perslid_key - AND g.fac_groep_upper = 'AAFM S&M' - AND prs_perslid_verwijder IS NULL - AND prs_perslid_email IS NOT NULL) fm - WHERE r.res_activiteit_key = a.res_activiteit_key - AND a.res_activiteit_omschrijving LIKE 'Share%' - AND r.res_rsv_ruimte_aanmaak > - (SELECT fac_notificatie_job_nextrun - - fac_notificatie_job_interval / 24 - FROM fac_notificatie_job - WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_SM_RECEPTIE'); - --- AAFM#33840 notificatie tbv gepland bezoek -CREATE OR REPLACE VIEW aaxx_v_noti_plan_opdr -( - sender, - receiver, - text, - code, - key, - xkey, - xemail, - xmobile -) -AS - SELECT NULL sender, - NULL receiver, - 'Aankondiging werkzaamheden door ' - || b.prs_bedrijf_naam - || ' op ' - || mld_opdr_plandatum - || ' op uw locatie' - text, - 'CUST08' code, - mld_opdr_key key, - NULL xkey, - g.alg_gebouw_email xemail, - NULL xmobile - FROM mld_opdr o, - mld_melding m, - alg_v_allonrgoed_gegevens aog, - alg_gebouw g, - prs_bedrijf b - WHERE ( (TRUNC (mld_opdr_plandatum) = TRUNC (SYSDATE + 1) - AND fac.getweekdaynum (SYSDATE) != 6) - OR (TRUNC (mld_opdr_plandatum) BETWEEN TRUNC (SYSDATE + 1) - AND TRUNC (SYSDATE + 3) - AND fac.getweekdaynum (SYSDATE) = 6)) - AND mld_statusopdr_key NOT IN (1, 6, 7, 9) - AND o.mld_melding_key = m.mld_melding_key - AND aog.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys - AND o.mld_uitvoerende_keys = b.prs_bedrijf_key - AND g.alg_gebouw_key = aog.alg_gebouw_key; - --- AAIT#31201 automatische notificatie naar melder van PR meldingen sturen --- 2 weken voorafgaand aan de einddatum van een project (PR melding). -CREATE OR REPLACE VIEW aaxx_v_noti_mld_projecten -( - sender, - receiver, - text, - code, - key, - xkey -) -AS - SELECT NULL sender, - prs_perslid_key_voor, - 'Herinnering: Over 2 weken sluit projectnummer ' - || ins_srtdiscipline_prefix - || mld_melding_key - text, - 'MLDNEW' code, - mld_melding_key key, - NULL xkey - FROM mld_melding m, - mld_stdmelding std, - mld_discipline d, - ins_srtdiscipline srt - WHERE m.mld_stdmelding_key = std.mld_stdmelding_key - AND std.mld_ins_discipline_key = d.ins_discipline_key - AND d.ins_srtdiscipline_key = srt.ins_srtdiscipline_key - AND UPPER (ins_srtdiscipline_prefix) = 'PR' - AND m.mld_melding_status NOT IN (1, 5, 6) - AND m.mld_melding_einddatum BETWEEN SYSDATE + 13 AND SYSDATE + 14; - --- AAIT#32784 inzage in zoekgedrag. View te gebruiken icm 20151 rapport mogelijkheden. -CREATE OR REPLACE VIEW aaxx_v_gui_searchresults -( - Zoekterm, - Datum, - Persoon, - Keuze, - Resultaat -) -AS - SELECT fgc.fac_gui_counter_info zoekterm, - fac_gui_counter_date datum, - prs_perslid_naam_full persoon, - choice.fac_gui_counter_info keuze, - result.fac_gui_counter_info resultaat - FROM fac_gui_counter fgc, - prs_v_perslid_fullnames pf, - (SELECT fac_gui_counter_refkey, fac_gui_counter_info - FROM fac_gui_counter fgc - WHERE fac_gui_counter_info IS NOT NULL - AND fac_gui_counter_group = 'searchchoice') choice, - (SELECT fac_gui_counter_refkey, fac_gui_counter_info - FROM fac_gui_counter fgc - WHERE fac_gui_counter_info IS NOT NULL - AND fac_gui_counter_group = 'searchresult') result - WHERE fac_gui_counter_group = 'search' - AND fgc.fac_gui_counter_info IS NOT NULL - AND fgc.prs_perslid_key = pf.prs_perslid_key - AND choice.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key - AND result.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key; - --- procedure om ontvangen emails te processen. De klant specifieke eigenschappen, keys e.d. moeten --- in de aanroep meegegeven worden. -CREATE OR REPLACE PROCEDURE aaxx_processemail ( - pfrom IN VARCHAR2, - pto IN VARCHAR2, - psubject IN VARCHAR2, - pbody IN VARCHAR2, - psessionid IN VARCHAR2, - puserkey IN NUMBER DEFAULT NULL) -AS - sender_key prs_perslid.prs_perslid_key%TYPE; - melder_key prs_perslid.prs_perslid_key%TYPE; - kostenplaats_key prs_afdeling.prs_kostenplaats_key%TYPE; - mldkey mld_melding.mld_melding_key%TYPE; - opdrkey mld_opdr.mld_opdr_key%TYPE; - stdmelding mld_stdmelding.mld_stdmelding_key%TYPE; - subject_regexp fac_setting.fac_setting_default%TYPE; - kkey mld_kenmerk.mld_kenmerk_key%TYPE; - errormsg fac_result.fac_result_waarde%TYPE; - behandelaar_key mld_melding.mld_melding_behandelaar_key%TYPE; - typeopdrkey mld_typeopdr.mld_typeopdr_key%TYPE; - mldnum VARCHAR2 (4000); - opdrnum VARCHAR2 (4000); - opdrvolgnr NUMBER (10); - srtdisc VARCHAR2 (4000); - cnt NUMBER (10); - v_flag_on_fenote NUMBER (10); - v_flag_on_bonote NUMBER (10); - v_from VARCHAR2 (4000); - v_body VARCHAR2 (4000); - v_subject VARCHAR2 (1000); - v_pos NUMBER; - v_result NUMBER; - v_factuur_key fin_factuur.fin_factuur_key%TYPE; - v_kenmerk_key fin_kenmerk.fin_kenmerk_key%TYPE; -BEGIN - errormsg := '(0x143)'; - - -- de mailberichten worden doorgestuurd vanuit de AAFM exchange omgeving. Hierbij - -- is het niet mogelijk de afzender te laten staan. Daarom wordt de afzender in het subject - -- van de mail geplaatst. Scheidingsteken in de ';'. - v_from := SUBSTR (psubject, 1, INSTR (psubject, ';') - 1); - v_subject := SUBSTR (psubject, INSTR (psubject, ';') + 1); - - -- Verwijder de Bounce Address Tag Validation - IF v_from LIKE 'prvs=%' - THEN - v_from := SUBSTR (v_from, INSTR (v_from, '=', -1) + 1); - END IF; - - - v_body := - v_from || ': ' || CHR (13) || CHR (10) - || SUBSTR ( - v_subject || CHR (13) || CHR (10) - || REPLACE (SUBSTR (pbody, 1, 3900 - (LENGTH (v_subject) + 2)), - CHR (13) || CHR (10) || CHR (13) || CHR (10), - CHR (13) || CHR (10)), - 1, - 3900); -- verwijder onnodige witregels - - -- DBMS_OUTPUT.PUT_LINE('v_from: '||v_from); - - errormsg := '(0x143a)'; - -- Valideer de sender in pfrom: kennen we deze? - SELECT MIN (prs_perslid_key), MIN (d.prs_kostenplaats_key) - INTO sender_key, kostenplaats_key - FROM prs_perslid p, prs_afdeling d - WHERE p.prs_afdeling_key = d.prs_afdeling_key - AND prs_perslid_verwijder IS NULL - AND UPPER (prs_perslid_email) = UPPER (v_from); - - errormsg := '(0x143b)'; - IF sender_key IS NULL - THEN - sender_key := 11; -- prs_perslid_key onbekend mail adres. - - SELECT d.prs_kostenplaats_key - INTO kostenplaats_key - FROM prs_perslid p, prs_afdeling d - WHERE p.prs_afdeling_key = d.prs_afdeling_key - AND prs_perslid_verwijder IS NULL - AND p.prs_perslid_key = sender_key; - END IF; - - CASE - WHEN UPPER (pto) LIKE 'INVOICES@%' - THEN - errormsg := '(0x143c)'; - INSERT INTO fin_factuur (fin_factuur_statuses_key, - fin_factuur_datum, - fin_factuur_totaal_btw, - fin_factuur_nr, - fin_factuur_bron) - VALUES (3, - SYSDATE, - 0, - '#', - 2) - RETURNING fin_factuur_key - INTO v_factuur_key; - - -- Zet kenmerk laatste factuur op Ja - errormsg := '(0x143d)'; - INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde) - VALUES (v_factuur_key, 2, 1); - - -- Bepaal de key van de bijlages - errormsg := '(0x143e)'; - SELECT fin_kenmerk_key - INTO v_kenmerk_key - FROM fin_kenmerk - WHERE fin_kenmerk_verwijder IS NULL - AND UPPER(fin_kenmerk_omschrijving) = 'BIJLAGES'; - - errormsg := '(0x143f)'; - INSERT INTO fac_result (fac_result_sessionid, - fac_result_naam, - fac_result_waarde) - VALUES (psessionid, - 'kenmerkpath', - 'FIN\F' - || TO_CHAR (TRUNC (v_factuur_key / 1000), 'FM0000') - || '___\F' - || v_factuur_key - || '\' - || v_kenmerk_key - || '\'); - WHEN UPPER (pto) LIKE 'SERVICEDESK@%' - THEN - errormsg := '(0x145)'; - - -- append (as a note?) to an existing melding if #key is found in the subject - -- Alternatief was: scannen van fac_srtnotificatie_oms maar dat voelt ook niet echt lekker - -- subject_regexp := fac.getsetting ('mld_reply_subject_regexp'); -- [[:alpha:]]*[[:digit:]]{3,} - - -- hebben we een referentie naar een opdracht of naar een melding? - subject_regexp := '[[:digit:]]{3,}/[[:digit:]]*'; - opdrnum := - REGEXP_SUBSTR (v_subject, - subject_regexp, - 1, - 1, - 'i'); -- MA12345 - - DBMS_OUTPUT.put_line ('opdrnum: ' || opdrnum); - - -- Ja, nu komt het voor dat de opdracht/melding verward wordt met een - -- bestelling/opdracht. Daarom gaan we kijken of er een bestelling of - -- bestelopdracht is. Als deze er is dan kijken we naar de aanmaakdatum - -- is deze nieuwe dan de aanmaakdatum van de melding/opdracht, dan doen - -- we niets met de mail en hoort deze waarschijnlijk bij een bestelling. - -- Voor opdrachten (eerste gedeelte) en meldingen (tweede gedeelte) wordt - -- deze controle uitgevoerd zodra het melding/opdracht nummer bekend is. - IF opdrnum IS NOT NULL - THEN - opdrvolgnr := - fac.safe_to_number ( - SUBSTR (opdrnum, INSTR (opdrnum, '/') + 1)); - DBMS_OUTPUT.put_line ('opdrvolgnr: ' || opdrvolgnr); - - mldkey := - fac.safe_to_number ( - SUBSTR (opdrnum, 1, INSTR (opdrnum, '/') - 1)); - DBMS_OUTPUT.put_line ('mldkey: ' || mldkey); - - SELECT MAX (SIGN (b_o.datum - m_o.datum)) -- 1 als b_o datum > m_o datum - INTO v_result - FROM (SELECT bes_bestelopdr_datum datum - FROM bes_bestelopdr - WHERE bes_bestelopdr_id = mldkey || '/' || opdrvolgnr) b_o, - (SELECT mld_opdr_datumbegin datum - FROM mld_opdr - WHERE mld_melding_key = mldkey AND mld_opdr_bedrijfopdr_volgnr = opdrvolgnr) m_o; - - ELSE - subject_regexp := '[[:alpha:]]*[[:digit:]]{3,}'; - mldnum := - REGEXP_SUBSTR (v_subject, - subject_regexp, - 1, - 1, - 'i'); -- MA12345 - srtdisc := - REGEXP_SUBSTR (mldnum, - '[[:alpha:]]*', - 1, - 1, - 'i'); -- MA - mldkey := - fac.safe_to_number (SUBSTR (mldnum, LENGTH (srtdisc) + 1)); - - SELECT MAX (SIGN (b.datum - m.datum)) -- 1 als bes datum > mld datum - INTO v_result - FROM (SELECT bes_bestelling_datum datum - FROM bes_bestelling - WHERE bes_bestelling_key = mldkey) b, - (SELECT mld_melding_datum datum - FROM mld_melding - WHERE mld_melding_key = mldkey) m; - END IF; - - IF v_result = 1 AND v_result IS NOT NULL - THEN - -- resultaat is 1 als de datum van de bestelling/opdracht groter is dan de datum van - -- de melding/opdracht. - DBMS_OUTPUT.put_line ('v_result: ' || v_result); - RETURN; - END IF; - - DBMS_OUTPUT.put_line ('mldnum: ' || mldnum); - DBMS_OUTPUT.put_line ('srtdisc: ' || srtdisc); - DBMS_OUTPUT.put_line ('mldkey: ' || mldkey); - - -- We eisen - -- - Goed meldingnummer - -- - Goede srtdiscipline - -- - Afzender is degene voor wie de melding was - -- suggested extensions: ook collega's toestaan? - SELECT MIN (mm.mld_stdmelding_key), MIN (prs_perslid_key_voor) - INTO stdmelding, melder_key - FROM mld_melding mm, - mld_stdmelding msm, - ins_tab_discipline insd, - ins_srtdiscipline isd - WHERE mm.mld_melding_key = mldkey - AND mm.mld_stdmelding_key = msm.mld_stdmelding_key - AND msm.mld_ins_discipline_key = insd.ins_discipline_key - AND insd.ins_srtdiscipline_key = isd.ins_srtdiscipline_key; - - -- Controle op srtdisc werkt niet goed. Mails worden na binnenkomst namelijk doorgezet - -- naar de definitieve stdmelding(/discipline/srtdiscpline) en daarmee verandert de - -- prefix letter - --AND isd.ins_srtdiscipline_prefix = srtdisc - --AND mm.prs_perslid_key_voor = sender; -- Mogen anderen ook reageren? - - DBMS_OUTPUT.put_line ( - 'mld_stdmelding_key: ' || TO_CHAR (stdmelding)); - - -- kijk of de referentie naar de opdracht wel correct is: - IF opdrvolgnr IS NOT NULL - THEN - BEGIN - SELECT mld_opdr_key, mld_typeopdr_key - INTO opdrkey, typeopdrkey - FROM mld_opdr - WHERE mld_melding_key = mldkey - AND mld_opdr_bedrijfopdr_volgnr = opdrvolgnr; - EXCEPTION - WHEN OTHERS - THEN - opdrkey := NULL; - END; - END IF; - - BEGIN - IF opdrkey IS NOT NULL - THEN - SELECT o.prs_perslid_key - INTO behandelaar_key - FROM mld_opdr o, prs_perslid p - WHERE o.mld_opdr_key = opdrkey - AND o.prs_perslid_key = p.prs_perslid_key - AND p.prs_perslid_email IS NOT NULL - AND p.prs_perslid_verwijder IS NULL; - ELSE - SELECT mld_melding_behandelaar_key - INTO behandelaar_key - FROM mld_melding m, prs_perslid p - WHERE mld_melding_key = mldkey - AND mld_melding_behandelaar_key = p.prs_perslid_key - AND p.prs_perslid_email IS NOT NULL - AND p.prs_perslid_verwijder IS NULL; - END IF; - EXCEPTION - WHEN OTHERS - THEN - behandelaar_key := NULL; - END; - - IF (stdmelding IS NOT NULL) - THEN -- Bestaande opdracht. - IF opdrkey IS NOT NULL - THEN - INSERT INTO mld_opdr_note (mld_opdr_key, - mld_opdr_note_omschrijving, - prs_perslid_key) - VALUES (opdrkey, v_body, sender_key); - - fac.trackaction ('ORDUPD', - opdrkey, - sender_key, - NULL, - '#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie - DBMS_OUTPUT.put_line ('Notitie toegevoegd.'); - ELSE - INSERT INTO mld_melding_note (mld_melding_key, - mld_melding_note_omschrijving, - prs_perslid_key, - mld_melding_note_flag) - VALUES (mldkey, - v_body, - sender_key, - DECODE (sender_key, melder_key, 1, 0)); -- 1 is zichtbaar FE want zelf ingevoerd. - - fac.trackaction ('MLDNOT', - mldkey, - sender_key, - NULL, - '#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie - DBMS_OUTPUT.put_line ('Notitie toegevoegd.'); - - INSERT INTO fac_result (fac_result_sessionid, - fac_result_naam, - fac_result_waarde) - VALUES (psessionid, - 'maillog', - 'Als notitie toegevoegd aan melding ' || mldkey); - - IF behandelaar_key IS NOT NULL - THEN - -- Notificatie naar behandelaar - fac.putnotificationsrtprio ( - NULL, - behandelaar_key, - 'MLDNOB', - mldkey, - 'Melding ' || mldkey || ' is door de klant aangepast.', - 2, - NULL, - NULL, - NULL, - 2, - NULL); - END IF; - END IF; - - -- Vlaggetjes zetten zoals mld_edit_note.asp dat doet - BEGIN - v_flag_on_fenote := fac.getsetting ('mld_flag_on_fenote'); - v_flag_on_bonote := fac.getsetting ('mld_flag_on_bonote'); - - IF v_flag_on_fenote <> 0 AND v_flag_on_fenote IS NOT NULL - THEN - UPDATE mld_melding - SET mld_melding_flag = - DECODE (opdrkey, - NULL, v_flag_on_fenote, - v_flag_on_bonote) - WHERE mld_melding_key = mldkey - AND ( (mld_melding_flag = v_flag_on_bonote) - OR (mld_melding_flag = 0 OR mld_melding_flag IS NULL)); - - DBMS_OUTPUT.put_line ('Flag gezet.'); - END IF; - EXCEPTION - WHEN OTHERS - THEN - DBMS_OUTPUT.put_line( 'Niet gelukt om flag ' - || v_flag_on_fenote - || ' te zetten.'); - END; - ELSE - -- suggested extensions: - -- check for MLDUSE-write autorisations - -- parse the subject to find an appropriate stdmelding, if uniquely possible - errormsg := '(0x148)'; - - BEGIN - stdmelding := - fac.safe_to_number (fac.getsetting ('defaultstdmelding')); - - INSERT INTO mld_melding (mld_melding_module, - mld_meldbron_key, - mld_melding_datum, - mld_melding_omschrijving, - mld_melding_status, - mld_melding_t_uitvoertijd, - mld_stdmelding_key, - prs_perslid_key, - prs_perslid_key_voor, - prs_kostenplaats_key, - mld_melding_spoed) - VALUES ('MLD', - 4, -- email - SYSDATE, - v_body, - NULL, - mld_t_uitvoertijd (2, 'D'), - stdmelding, - sender_key, - sender_key, - kostenplaats_key, - 3) - RETURNING mld_melding_key - INTO mldkey; - - -- DBMS_OUTPUT.PUT_LINE('Melding toegevoegd: ' || mldkey); - errormsg := '(0x165)'; - mld.setmeldingstatus (mldkey, 2, sender_key); - - INSERT INTO fac_result (fac_result_sessionid, - fac_result_naam, - fac_result_waarde) - VALUES (psessionid, - 'maillog', - 'Geregistreerd onder melding ' || mldkey); - END; - END IF; - - IF opdrkey IS NULL - THEN - -- Zoek het laagste bijlagen kenmerk key (AAEN#34590) om de bijlagen onder te stoppen - errormsg := '(0x151)'; - - SELECT MIN (mld_kenmerk_key) - INTO kkey - FROM mld_kenmerk k, - mld_srtkenmerk sk, - mld_stdmelding std, - ins_tab_discipline d - WHERE mld_srtkenmerk_kenmerktype = 'M' - AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key - AND std.mld_stdmelding_key = stdmelding - AND std.mld_ins_discipline_key = d.ins_discipline_key - AND ( (k.mld_stdmelding_key = std.mld_stdmelding_key - AND k.mld_kenmerk_niveau = 'S') - OR (k.mld_stdmelding_key = d.ins_discipline_key - AND k.mld_kenmerk_niveau = 'D') - OR (k.mld_stdmelding_key = d.ins_srtdiscipline_key - AND k.mld_kenmerk_niveau = 'T')) - AND k.mld_kenmerk_verwijder IS NULL - AND NOT EXISTS - (SELECT mld_kenmerk_volgnummer - FROM mld_kenmerk k1, - mld_srtkenmerk sk1, - mld_stdmelding std1, - ins_tab_discipline d1 - WHERE sk1.mld_srtkenmerk_kenmerktype = 'M' - AND sk1.mld_srtkenmerk_key = k1.mld_srtkenmerk_key - AND std1.mld_stdmelding_key = stdmelding - AND std1.mld_ins_discipline_key = - d1.ins_discipline_key - AND ( (k1.mld_stdmelding_key = - std1.mld_stdmelding_key - AND k1.mld_kenmerk_niveau = 'S') - OR (k1.mld_stdmelding_key = d1.ins_discipline_key - AND k1.mld_kenmerk_niveau = 'D') - OR (k1.mld_stdmelding_key = - d1.ins_srtdiscipline_key - AND k1.mld_kenmerk_niveau = 'T')) - AND k1.mld_kenmerk_verwijder IS NULL - AND k1.mld_kenmerk_key < k.mld_kenmerk_key); - - errormsg := '(0x153)'; - - IF kkey IS NOT NULL - THEN - -- DBMS_OUTPUT.PUT_LINE('Bijlagen kenmerk: ' || kkey); - errormsg := '(0x157)'; - - INSERT INTO fac_result (fac_result_sessionid, - fac_result_naam, - fac_result_waarde) - VALUES (psessionid, - 'kenmerkpath', - 'MLD\M' - || TO_CHAR (TRUNC (mldkey / 1000), 'FM0000') - || '___\M' - || mldkey - || '\' - || kkey - || '\'); - END IF; - ELSE - -- Zoek het laagste bijlagen kenmerk om de bijlagen onder te stoppen - errormsg := '(0x152)'; - - SELECT MIN (mld_kenmerk_key) - INTO kkey - FROM mld_kenmerk k, mld_srtkenmerk sk - WHERE sk.mld_srtkenmerk_kenmerktype = 'M' - AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key - AND k.mld_typeopdr_key = typeopdrkey - AND k.mld_kenmerk_niveau = 'O' - AND k.mld_kenmerk_verwijder IS NULL - AND NOT EXISTS - (SELECT mld_kenmerk_volgnummer - FROM mld_kenmerk k1, mld_srtkenmerk sk1 - WHERE sk1.mld_srtkenmerk_kenmerktype = 'M' - AND sk1.mld_srtkenmerk_key = k1.mld_srtkenmerk_key - AND k1.mld_typeopdr_key = typeopdrkey - AND k1.mld_kenmerk_niveau = 'O' - AND k1.mld_kenmerk_verwijder IS NULL - AND k1.mld_kenmerk_volgnummer < - k.mld_kenmerk_volgnummer); - - errormsg := '(0x154)'; - - IF kkey IS NOT NULL - THEN - -- DBMS_OUTPUT.PUT_LINE('Bijlagen kenmerk: ' || kkey); - errormsg := '(0x157)'; - - INSERT INTO fac_result (fac_result_sessionid, - fac_result_naam, - fac_result_waarde) - VALUES (psessionid, - 'kenmerkpath', - 'MLD\O' - || TO_CHAR (TRUNC (opdrkey / 1000), 'FM0000') - || '___\O' - || opdrkey - || '\' - || kkey - || '\'); - END IF; - END IF; - ELSE - errormsg := '(0x188)'; - - INSERT INTO fac_result (fac_result_sessionid, - fac_result_naam, - fac_result_waarde) - VALUES (psessionid, - 'errormsg', - 'Database fout - Neem contact op met uw systeembeheerder ' - || errormsg); - END CASE; -EXCEPTION - WHEN OTHERS - THEN - -- DBMS_OUTPUT.PUT_LINE('Mail niet geaccepteerd: ' || 'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')'); - INSERT INTO fac_result (fac_result_sessionid, - fac_result_naam, - fac_result_waarde) - VALUES (psessionid, - 'errormsg', - 'Database fout - Neem contact op met uw systeembeheerder ' - || errormsg); - - fac.writelog ( - 'PROCESSEMAIL', - 'E', - 'Mail kon niet ingelezen worden afzender:' - || v_from - || '[' - || errormsg - || ']' - || psubject, - 'OTHERS (error ' - || SQLCODE - || '/' - || SUBSTR (SQLERRM, 1, 100) - || ')'); -END; -/ - - -------------------------------------------------------------------------------- --- GRANTS naar AAFM database. -------------------------------------------------------------------------------- -GRANT SELECT ON aaxx_v_dwh_prs_bedrijf TO aafm; -GRANT SELECT ON aaxx_v_dwh_prs_bedrijfadres TO aafm; -GRANT SELECT ON aaxx_v_dwh_cnt_contract TO aafm; -GRANT SELECT ON aaxx_v_dwh_cnt_contract_scope TO aafm; -GRANT SELECT ON aaxx_v_dwh_cnt_contract_mantel TO aafm; -GRANT SELECT ON aaxx_v_dwh_kenmerk_contract TO aafm; -GRANT SELECT ON aaxx_v_dwh_mld_melding TO aafm; -GRANT SELECT ON aaxx_v_dwh_res_reservering TO aafm; -GRANT SELECT ON aaxx_v_dwh_bes_bestelling TO aafm; -GRANT SELECT ON aaxx_v_dwh_bez_bezoekers TO aafm; -GRANT SELECT ON aaxx_v_dwh_kenmerk_melding TO aafm; -GRANT SELECT ON aaxx_v_dwh_kenmerk_opdracht TO aafm; -GRANT SELECT ON aaxx_v_dwh_kenmerk_reservering TO aafm; -GRANT SELECT ON aaxx_v_dwh_kenmerk_bestelling TO aafm; -GRANT SELECT ON aaxx_v_dwh_fin_factuur TO aafm; -GRANT SELECT ON aaxx_v_dwh_prs_kostenplaats TO aafm; -GRANT SELECT ON aaxx_v_dwh_prs_kostensoort TO aafm; -GRANT SELECT ON aaxx_v_dwh_prs_perslid TO aafm; -GRANT SELECT ON aaxx_v_dwh_fac_groeprechten TO aafm; -GRANT SELECT ON aaxx_v_dwh_prs_afdeling TO aafm; -GRANT SELECT ON aaxx_v_dwh_kenmerk_prs TO aafm; -GRANT SELECT ON aaxx_v_dwh_alg_onrgoed TO aafm; -GRANT SELECT ON aaxx_v_dwh_kenmerk_onrgoed TO aafm; -GRANT SELECT ON aaxx_v_dwh_ins_sensor_status TO aafm; -GRANT SELECT ON aaxx_v_dwh_inspectie TO aafm; -GRANT SELECT ON aaxx_v_dwh_ins_object TO aafm; -GRANT SELECT ON aaxx_v_dwh_kenmerk_inspectie TO aafm; -GRANT SELECT ON aaxx_v_dwh_uren TO aafm; -GRANT SELECT ON aaxx_v_dwh_uren_improd TO aafm; -GRANT SELECT ON aaxx_v_dwh_tracking TO aafm; -GRANT SELECT ON aaxx_v_dwh_budget_tracker TO aafm; -GRANT SELECT ON AAXX_V_DWH_GUI_COUNTER TO aafm; - --- views tbv user telling -GRANT SELECT ON aaxx_v_lcrap_key_stats TO aafm; -GRANT SELECT ON fac_v_lcrap_fe_vs_key TO aafm; - -GRANT SELECT ON aaxx_exp_uren_dekking TO aait; -GRANT SELECT ON aaxx_exp_uren_dekking TO aait_test; - - ------- 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 \ No newline at end of file