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)
- || '' || p_tag || '>');
-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