9707 lines
398 KiB
SQL
9707 lines
398 KiB
SQL
-- Script containing customer generic configuration sql statements for AAFM
|
||
-- (c) 2009 SG|facilitor
|
||
-- $Revision$
|
||
-- $Id$
|
||
--
|
||
-- Support: +31 53 4800710
|
||
|
||
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 = 'AAAR' THEN RETURN 'ARCADIS'; END IF;
|
||
IF v_user = 'AABT' THEN RETURN 'BT'; END IF;
|
||
IF v_user = 'AACE' THEN RETURN 'CE'; END IF;
|
||
IF v_user = 'AADO' THEN RETURN 'DOW'; 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 = 'AAFP' THEN RETURN 'FPC'; END IF;
|
||
IF v_user = 'AAHU' THEN RETURN 'HUNTSMAN'; END IF;
|
||
IF v_user = 'AAIT' THEN RETURN 'IT'; END IF;
|
||
IF v_user = 'AALB' THEN RETURN 'LB'; END IF;
|
||
IF v_user = 'AAME' THEN RETURN 'MEDIQ'; END IF;
|
||
IF v_user = 'AANS' THEN RETURN 'NS'; END IF;
|
||
IF v_user = 'AANX' THEN RETURN 'NXP'; 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 = 'AAVL' THEN RETURN 'VL'; END IF;
|
||
IF v_user = 'AAZC' THEN RETURN 'ZCN'; END IF;
|
||
IF v_user = 'ASMS' THEN RETURN 'AMS'; END IF;
|
||
RETURN '';
|
||
END aaxx_get_user;
|
||
/
|
||
|
||
-- 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,
|
||
'VL', 1020,
|
||
'LB', 1020,
|
||
'SABIC', 1120,
|
||
'ESSENT', 1020,
|
||
'DOW', 1020,
|
||
'RWS', 1020,
|
||
'NXP', 1000,
|
||
1009);
|
||
|
||
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
|
||
BEGIN
|
||
SELECT fin_btwtabelwaarde_code
|
||
INTO v_code
|
||
FROM fin_btwtabelwaarde
|
||
WHERE fin_btwtabel_key = v_btwtabel_key
|
||
AND fin_btwtabelwaarde_perc = v_perc
|
||
AND COALESCE(fin_btwtabelwaarde_verlegd, 0) = 0;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
NULL; -- als we geen code kunnen vinden waarbij het percentage gelijk is maar die
|
||
-- niet verlegd is, dan geven we maar de originele code terug.
|
||
END;
|
||
END IF;
|
||
RETURN v_code;
|
||
END aaxx_get_verkoop_btw_code;
|
||
/
|
||
|
||
|
||
-- script om dagelijks terugkerende scripts aan te roepen.
|
||
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' 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, AANX, AAVL, AAZC
|
||
IF -- aaxx_get_user = 'ARCADIS' AAAR#26433
|
||
-- OR
|
||
aaxx_get_user = 'BT'
|
||
OR aaxx_get_user = 'CE'
|
||
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 = 'MEDIQ'
|
||
-- OR aaxx_get_user = 'NS' AANS#25534
|
||
OR aaxx_get_user = 'SABIC'
|
||
OR aaxx_get_user = 'AMS'
|
||
THEN
|
||
aaxx_delete_non_active_users (p_applname, p_applrun);
|
||
END IF;
|
||
|
||
-- job om bij to houden welke gebruikers vandaag ingelogd zijn geweest.
|
||
aaxx_export_login (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_kenmerkwaarde (
|
||
p_kenmerk_type VARCHAR2,
|
||
p_ref_objectnaam VARCHAR2,
|
||
p_ref_kolomnaam VARCHAR2,
|
||
p_ref_kolomtxt VARCHAR2,
|
||
p_fac_usrtab_key NUMBER,
|
||
p_kenmerk_waarde VARCHAR2)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_result VARCHAR2(2000);
|
||
sql_stmt VARCHAR2(2000);
|
||
BEGIN
|
||
IF p_kenmerk_type = 'R' OR p_kenmerk_type = 'S' THEN
|
||
sql_stmt :='SELECT MIN('
|
||
|| p_ref_kolomtxt
|
||
|| ')'
|
||
|| ' FROM '
|
||
|| p_ref_objectnaam
|
||
|| ' WHERE '
|
||
|| p_ref_kolomnaam
|
||
|| ' = '
|
||
|| p_kenmerk_waarde;
|
||
|
||
EXECUTE IMMEDIATE sql_stmt INTO v_result;
|
||
|
||
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
|
||
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_key1 = 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_top_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 ( SYSDATE - prs_perslid_aanmaak > 90
|
||
AND ( prs_perslid_login IS NULL
|
||
OR SYSDATE - prs_perslid_login > 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(prs_perslid_oslogin, 1, 1) <> '_';
|
||
END;
|
||
/
|
||
|
||
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;
|
||
/
|
||
|
||
--=============================================================================
|
||
-- 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 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,
|
||
'ARCADIS', 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'))),
|
||
'2012', DECODE ( substr(prs_kostensoort_upper, 1, 2),'CF', '1350803',
|
||
'CV', '1350804',
|
||
'Onbekend'),
|
||
k.prs_kostensoort_refcode),
|
||
'BT', 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'))),
|
||
'2010', DECODE ( substr(prs_kostensoort_upper, instr(prs_kostensoort_upper, ' ')+1),
|
||
'C', '1350822',
|
||
'NC', '1350823',
|
||
'P', '1350823',
|
||
'Onbekend'),
|
||
'2011', DECODE ( substr(prs_kostensoort_upper, instr(prs_kostensoort_upper, ' ')+1),
|
||
'C', '1350827',
|
||
'NC', '1350828',
|
||
'P', '1350817',
|
||
'Onbekend'),
|
||
'2012', DECODE ( substr(prs_kostensoort_upper, instr(prs_kostensoort_upper, ' ')+1),
|
||
'C', '1350803',
|
||
'NC', '1350805',
|
||
'P', '1350817',
|
||
'Onbekend'),
|
||
k.prs_kostensoort_refcode),
|
||
'CE', 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'))),
|
||
'2010', DECODE (substr(k.prs_kostensoort_upper,1,2), 'VA', '1350822' ,
|
||
'GM', '1350822' ,
|
||
'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1350817',
|
||
'Workorder', '1350823',
|
||
'Onbekend'),
|
||
'Onbekend'),
|
||
'2011', DECODE (substr(k.prs_kostensoort_upper,1,2), 'VA', '1350830' ,
|
||
'GM', '1350827' ,
|
||
'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1350817',
|
||
'Workorder', '1350828',
|
||
'1350828'), -- contractorder
|
||
'Onbekend'),
|
||
'2012', DECODE (substr(k.prs_kostensoort_upper,1,2), 'VA', '1350804' ,
|
||
'GM', '1350803' ,
|
||
'PR', '1350817' ,
|
||
'NC', '1350805' ,
|
||
'Onbekend'),
|
||
k.prs_kostensoort_refcode),
|
||
'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'))),
|
||
'2010', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', '1350822' ,
|
||
'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1350817',
|
||
'Workorder', '1350823',
|
||
'Onbekend'),
|
||
'Onbekend'),
|
||
'2011', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', '1350827' ,
|
||
'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1350817',
|
||
'Workorder', '1350828',
|
||
'1350828'),
|
||
'Onbekend'),
|
||
'2012', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', DECODE (substr(k.prs_kostensoort_upper,1,7), 'COR VAR', '1350803', '1350803'),
|
||
'NC', DECODE (substr(k.prs_kostensoort_upper,1,5), 'NC P ', '1350817', '1350805'),
|
||
'Onbekend'),
|
||
k.prs_kostensoort_refcode),
|
||
'DSM', 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'))),
|
||
'2010', DECODE (substr(k.prs_kostensoort_upper,1,3), 'ST ', '1350822' ,
|
||
'STB', '1350822' ,
|
||
'AS ', '1350822' ,
|
||
'AE ', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1350817',
|
||
'Workorder', '1350823',
|
||
'Onbekend'),
|
||
'Onbekend'),
|
||
'2011', DECODE (substr(k.prs_kostensoort_upper,1,3), 'ST ', '1350827' ,
|
||
'STB', '1350827' ,
|
||
'AS ', '1350827' ,
|
||
'AE ', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1350817',
|
||
'Workorder', '1350828',
|
||
'1350828'),
|
||
'Onbekend'),
|
||
'2012', DECODE (substr(k.prs_kostensoort_upper,1,3), 'ST ', '1350803' ,
|
||
'STB', '1350803' ,
|
||
'AS ', '1350803' ,
|
||
'AE ', DECODE (substr(k.prs_kostensoort_upper,1,7), 'AE PROJ', '1350817', '1350805'),
|
||
'Onbekend'),
|
||
k.prs_kostensoort_refcode),
|
||
'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'))),
|
||
'2011', DECODE (substr(k.prs_kostensoort_upper,1,2), 'C ', '1350827' ,
|
||
'CC', '1350827' ,
|
||
'NC', DECODE (substr(k.prs_kostensoort_upper,1,5), 'NC P ', '1350817', '1350828'),
|
||
'Onbekend'),
|
||
'2012', DECODE (substr(k.prs_kostensoort_upper,1,2), 'C ', '1350803' ,
|
||
'CC', '1350803' ,
|
||
'NC', DECODE (substr(k.prs_kostensoort_upper,1,5), 'NC P ', '1350817', '1350805'),
|
||
'Onbekend'),
|
||
k.prs_kostensoort_refcode),
|
||
'ESSENT', 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'))),
|
||
'2012', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CF', '1350803' ,
|
||
'CV', '1350804' ,
|
||
'NC', '1350817' ,
|
||
'Onbekend'),
|
||
k.prs_kostensoort_refcode),
|
||
'FPC', 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'))),
|
||
'2011', DECODE (kg.prs_kostensoortgrp_oms, 'Core', '1350827' ,
|
||
'Non Core', '1350830' ,
|
||
'Core Contingency','1350828' ,
|
||
'Onbekend'),
|
||
'2012', DECODE (kg.prs_kostensoortgrp_oms, 'Core', '1350803' ,
|
||
'Non Core', '1350805' ,
|
||
'Core Contingency','1350804' ,
|
||
'Onbekend'),
|
||
k.prs_kostensoort_refcode),
|
||
'HUNTSMAN', 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'))),
|
||
'2011', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CF', '1350827' ,
|
||
'CV', '1350830' ,
|
||
'NC', '1350828' ,
|
||
'Onbekend'),
|
||
'2012', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CF', '1350803' ,
|
||
'CV', '1350804' ,
|
||
'NC', '1350805' ,
|
||
'Onbekend'),
|
||
k.prs_kostensoort_refcode),
|
||
'IT', k.prs_kostensoort_refcode, -- geen jaarafsluiting
|
||
'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'))),
|
||
'2010', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', '1350822' ,
|
||
'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1350817',
|
||
'Workorder', '1350823',
|
||
'1350823'),
|
||
'Onbekend'),
|
||
'2011', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', '1350827' ,
|
||
'CV', '1350827' ,
|
||
'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1350817',
|
||
'Workorder', '1350828',
|
||
'1350828'),
|
||
'Onbekend'),
|
||
'2012', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', '1350803' ,
|
||
'CF', '1350803' ,
|
||
'CV', '1350804' ,
|
||
'NC', '1350805' ,
|
||
'Onbekend'),
|
||
k.prs_kostensoort_refcode),
|
||
'MEDIQ', 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'))),
|
||
'2011', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CF', '1350827' ,
|
||
'CV', '1350830' ,
|
||
'NC', '1350828' ,
|
||
'Onbekend'),
|
||
'2012', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CF', '1350803' ,
|
||
'CV', '1350804' ,
|
||
'Onbekend'),
|
||
k.prs_kostensoort_refcode),
|
||
'NS', 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'))),
|
||
'2009', DECODE (substr(k.prs_kostensoort_upper,1,2), 'PR', '1350819' , '1350818'),
|
||
'2010', DECODE (substr(k.prs_kostensoort_upper,1,2), 'PR', '1350817' ,
|
||
'MW', '1350823' ,
|
||
'1350822'),
|
||
'2011', DECODE (substr(k.prs_kostensoort_upper,1,2), 'PR', '1350817' ,
|
||
'MW', '1350828' ,
|
||
'1350827'),
|
||
'2012', DECODE (substr(k.prs_kostensoort_upper,1,2), 'PR', '1350817' ,
|
||
'MW', '1350804' ,
|
||
'1350803'),
|
||
k.prs_kostensoort_refcode),
|
||
'NXP', 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'))),
|
||
'2011', DECODE (substr(k.prs_kostensoort_upper,1,2), 'C ', '1350827' ,
|
||
'NC', '1350828' ,
|
||
'Onbekend'),
|
||
'2012', DECODE (substr(k.prs_kostensoort_upper,1,2), 'C ', '1350803' ,
|
||
'NC', '1350805' ,
|
||
'Onbekend'),
|
||
k.prs_kostensoort_refcode),
|
||
'SABIC', 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'))),
|
||
'2011', DECODE (kg.prs_kostensoortgrp_oms, 'Non Core', '1350828' ,
|
||
'Core', '1350827' ,
|
||
'Projecten','1350817' ,
|
||
'Onbekend'),
|
||
'2012', DECODE (kg.prs_kostensoortgrp_oms, 'Non Core', '1350805' ,
|
||
'Core', '1350803' ,
|
||
'Projecten','1350817' ,
|
||
'Onbekend'),
|
||
k.prs_kostensoort_refcode),
|
||
'VL', 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'))),
|
||
'2012', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CF', '1350803' ,
|
||
'CV', '1350804' ,
|
||
'NC', DECODE (substr(k.prs_kostensoort_upper,1,7), 'NC PROJ', '1350817', '1350805'),
|
||
'Onbekend'),
|
||
k.prs_kostensoort_refcode),
|
||
'AMS', 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'))),
|
||
'2011', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CF', '1350827' ,
|
||
'CV', '1350830' ,
|
||
'Onbekend'),
|
||
k.prs_kostensoort_refcode),
|
||
k.prs_kostensoort_refcode),
|
||
DECODE (aaxx_get_user,
|
||
'CE', 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'))),
|
||
'2013', DECODE (substr(k.prs_kostensoort_upper,1,2), 'VA', '8210531' ,
|
||
'GM', 'nvt' ,
|
||
'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '8110555',
|
||
'Workorder', '8210532',
|
||
'8210532'),
|
||
'Onbekend'),
|
||
DECODE (substr(k.prs_kostensoort_upper,1,2), 'VA', '1033306' ,
|
||
'GM', '1033303' ,
|
||
'PR', '1033302' ,
|
||
'NC', '1033304' ,
|
||
'Onbekend')),
|
||
'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'))),
|
||
'2013', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', '8210530' ,
|
||
'NC', DECODE (substr(k.prs_kostensoort_upper,1,4), 'NC P', '8110555', '8210532'),
|
||
'Onbekend'),
|
||
DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', DECODE (substr(k.prs_kostensoort_upper,1,7), 'COR VAR', '1033306', '1033303'),
|
||
'NC', DECODE (substr(k.prs_kostensoort_upper,1,5), 'NC P ', '1033302', '1033304'),
|
||
'Onbekend')),
|
||
'DSM', 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'))),
|
||
'2013', '8' || substr(prs_kostensoort_refcode,2,10),
|
||
DECODE (substr(k.prs_kostensoort_upper,1,3), 'ST ', '1033303' ,
|
||
'STB', '1033303' ,
|
||
'AS ', '1033303' ,
|
||
'AE ', DECODE (substr(k.prs_kostensoort_upper,1,7), 'AE PROJ', '1033302', '1033304'),
|
||
'Onbekend')),
|
||
'ENEXIS', '8110556',
|
||
'ESSENT', 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'))),
|
||
'2013', '8210532'),
|
||
'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'))),
|
||
'2013' , DECODE (substr(k.prs_kostensoort_upper,1,2), 'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '8110555',
|
||
'Workorder', '8210532',
|
||
'8210532'),
|
||
'Onbekend'),
|
||
DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', '1033303' ,
|
||
'CF', '1033303' ,
|
||
'CV', '1033306' ,
|
||
'NC', '1033304' ,
|
||
'Onbekend')),
|
||
'NXP', 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'))),
|
||
'2013' , DECODE (substr(k.prs_kostensoort_upper,1,2), 'NC', '8210532',
|
||
'Onbekend')
|
||
),
|
||
'SABIC', 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'))),
|
||
'2013', DECODE (k.prs_kostensoort_upper, 'HNM-NC', '8110566',
|
||
'MCI-NC', '8110566',
|
||
'MEW-NC', '8110566',
|
||
'RAS-NC', '8210561',
|
||
'TAS-NC', '8210561',
|
||
'HOS-NC', '8210562',
|
||
'RES-NC', '8210563',
|
||
'Onbekend'),
|
||
DECODE (kg.prs_kostensoortgrp_oms, 'Non Core', '1033304' ,
|
||
'Core', '1033303' ,
|
||
'Projecten','1033302' ,
|
||
'Onbekend')),
|
||
'VL', 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'))),
|
||
'2013', DECODE (substr(k.prs_kostensoort_upper,1,2), 'NC', '8210532',
|
||
'CV', '8210531',
|
||
'Onbekend'),
|
||
DECODE (substr(k.prs_kostensoort_upper,1,2), 'CF', '1033303' ,
|
||
'CV', '1033306' ,
|
||
'NC', DECODE (substr(k.prs_kostensoort_upper,1,7), 'NC PROJ', '1033302', '1033304'),
|
||
'Onbekend')),
|
||
'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';
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_bron_export_exact_xml
|
||
(
|
||
bkstnr,
|
||
oms25,
|
||
datum,
|
||
crdnr,
|
||
projectnr,
|
||
projectnaam,
|
||
bedrag_txt,
|
||
bedrag,
|
||
bedrag_incl,
|
||
betaalref,
|
||
itemcode,
|
||
reknr,
|
||
kstplcode,
|
||
kstdrcode,
|
||
btw_code,
|
||
lev_kpn
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (fin_factuur_key) bkstnr,
|
||
opdracht_id
|
||
|| ' - '
|
||
|| REPLACE (SUBSTR (fin_factuur_opmerking, 1, 30), ',', '')
|
||
oms25,
|
||
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', '00100002',
|
||
(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
|
||
)
|
||
),
|
||
'CE',
|
||
'02410001',
|
||
'LB',
|
||
'02610001',
|
||
'FPC',
|
||
'00780164',
|
||
'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,
|
||
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,
|
||
prs_kostenplaats_key,
|
||
lev_kpn) fg;
|
||
|
||
-- Procedure om alle facturen te exporteren naar exact.
|
||
-- Administratie geeft aan dat de export voor twee of meerdere gescheiden
|
||
-- administraties zal plaatsvinden.
|
||
CREATE OR REPLACE PROCEDURE aaxx_select_exact_xml_adm (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_administratie IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT bkstnr, oms25, datum
|
||
FROM aaxx_v_bron_export_exact_xml
|
||
WHERE (p_administratie = 'FAC' AND lev_kpn = '2000700')
|
||
OR (p_administratie = 'IT' AND COALESCE(lev_kpn, 'GEEN') <> '2000700')
|
||
OR p_administratie IS NULL
|
||
GROUP BY bkstnr, oms25, datum;
|
||
|
||
CURSOR c_sub (c_bkstnr VARCHAR2)
|
||
IS
|
||
SELECT *
|
||
FROM aaxx_v_bron_export_exact_xml
|
||
WHERE bkstnr = c_bkstnr;
|
||
|
||
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);
|
||
|
||
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;
|
||
|
||
|
||
|
||
-- header
|
||
aaxx_add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
|
||
aaxx_add_xml_row (v_bestand, '<eExact>');
|
||
aaxx_add_xml_row (v_bestand, '<GLEntries>');
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
aaxx_add_xml_row (v_bestand, '<GLEntry status="E" entry="' || xml.char_to_html(rec.bkstnr) || '">');
|
||
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, '<Journal type="I" code="42"/>');
|
||
v_sub_count := 1;
|
||
FOR rec1 IN c_sub (rec.bkstnr)
|
||
LOOP
|
||
BEGIN
|
||
aaxx_add_xml_row (v_bestand, '<FinEntryLine number="' || v_sub_count || '" subtype="T" type="N">');
|
||
aaxx_add_xml_element (v_bestand, 'Date', rec1.datum);
|
||
aaxx_add_xml_row (v_bestand, '<GLAccount code="' || xml.char_to_html(rec1.reknr) || '"/>');
|
||
-- Meldingnummer alleen vermelden voor opdrachten met type 'Projectorder'
|
||
IF (rec1.projectnr IS NOT NULL)
|
||
THEN
|
||
aaxx_add_xml_row (v_bestand, '<Project code="' || rec1.projectnr || '" type="I" status="A">');
|
||
aaxx_add_xml_element (v_bestand, 'Description', rec1.projectnaam);
|
||
aaxx_add_xml_row (v_bestand, '</Project>');
|
||
ELSE
|
||
aaxx_add_xml_element (v_bestand, 'Description', rec1.oms25);
|
||
END IF;
|
||
aaxx_add_xml_row (v_bestand, '<Costcenter code="' || xml.char_to_html(rec1.kstplcode) || '"/>');
|
||
IF aaxx_get_user = 'IT' AND p_administratie = 'FAC'
|
||
THEN
|
||
aaxx_add_xml_row (v_bestand, '<Costunit code="C0000014"/>'); -- afwijkend voor AAIT facilitaire kosten AAIT#25528.
|
||
ELSIF aaxx_get_user = 'AMS' OR aaxx_get_user = 'ZCN'
|
||
THEN
|
||
aaxx_add_xml_row (v_bestand, '<Costunit code="' || xml.char_to_html(rec1.kstdrcode) || '"/>');
|
||
ELSE
|
||
aaxx_add_xml_row (v_bestand, '<Costunit code="KD999999"/>');
|
||
END IF;
|
||
aaxx_add_xml_row (v_bestand, '<Creditor number="' || xml.char_to_html(rec1.crdnr) || '"/>');
|
||
-- AAIT#23838: kostensoort niet opnemen voor inkoopfacturen IT
|
||
IF ( NOT(aaxx_get_user = 'IT' AND p_administratie = 'IT' AND p_administratie IS NOT NULL) )
|
||
THEN
|
||
aaxx_add_xml_row (v_bestand, '<Item code="' || xml.char_to_html(rec1.itemcode) || '"/>');
|
||
END IF;
|
||
aaxx_add_xml_row (v_bestand, '<Amount>');
|
||
aaxx_add_xml_element (v_bestand, 'Debit', rec1.bedrag_txt);
|
||
aaxx_add_xml_row (v_bestand, '<VAT code="' || xml.char_to_html(rec1.btw_code) || '"/>');
|
||
aaxx_add_xml_row (v_bestand, '</Amount>');
|
||
aaxx_add_xml_row (v_bestand, '<Payment>');
|
||
aaxx_add_xml_element (v_bestand, 'Reference', rec1.betaalref);
|
||
aaxx_add_xml_element (v_bestand, 'InvoiceNumber', rec1.bkstnr);
|
||
aaxx_add_xml_row (v_bestand, '</Payment>');
|
||
aaxx_add_xml_row (v_bestand, '<FinReferences>');
|
||
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, '</FinReferences>');
|
||
aaxx_add_xml_row (v_bestand, '</FinEntryLine>');
|
||
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, '</GLEntry>');
|
||
END;
|
||
v_order_count := v_order_count + 1;
|
||
END LOOP;
|
||
|
||
aaxx_add_xml_row (v_bestand, '</GLEntries>');
|
||
aaxx_add_xml_row (v_bestand, '</eExact>');
|
||
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;
|
||
/
|
||
|
||
-- voor niet AAIT klanten die niet van de administratie gebruik maken
|
||
-- zij kunnen deze procedure aanroepen.
|
||
CREATE OR REPLACE PROCEDURE aaxx_select_exact_xml (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_select_exact_xml_adm (p_applname, p_applrun, null);
|
||
END;
|
||
/
|
||
|
||
|
||
-- Procedure om alle facturen te exporteren naar exact.
|
||
-- Administratie geeft aan dat de export voor twee of meerdere gescheiden
|
||
-- administraties zal plaatsvinden.
|
||
CREATE OR REPLACE PROCEDURE aaxx_export_exact_adm (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2,
|
||
p_administratie IN VARCHAR2
|
||
)
|
||
AS
|
||
v_errormsg VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
-- Bewaar de factuur keys in een tijdelijke tabel zodat bij het verwerken (nieuwe export)
|
||
-- deze keys gebruikt kunnen worden.
|
||
DELETE aaxx_exp_factuur WHERE COALESCE(p_administratie, 'GEEN') = COALESCE(administratie,'GEEN');
|
||
|
||
INSERT INTO aaxx_exp_factuur (fin_factuur_key, administratie)
|
||
( SELECT DISTINCT fin_factuur_key, p_administratie
|
||
FROM aaxx_v_factuur_gegevens
|
||
WHERE fin_factuur_statuses_key = 6
|
||
AND ( p_administratie IS NULL
|
||
OR
|
||
(p_administratie = 'FAC' AND lev_kpn = '2000700')
|
||
OR
|
||
(p_administratie = 'IT' AND COALESCE (lev_kpn, 'GEEN') <> '2000700')
|
||
)
|
||
);
|
||
END;
|
||
/
|
||
|
||
-- voor de niet AAIT accounts is de administratie niet belangrijk. Zij kunnen deze
|
||
-- procedure blijven aanroepen.
|
||
CREATE OR REPLACE PROCEDURE aaxx_export_exact (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_exact_adm (p_applname, p_applrun, p_filedir, p_filename, 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), '<ret>'), 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.
|
||
CREATE OR REPLACE PROCEDURE aaxx_export_verwerk_exact_adm (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2,
|
||
p_administratie 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
|
||
AND COALESCE(f.administratie, 'GEEN') = COALESCE(p_administratie,'GEEN');
|
||
|
||
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
|
||
AND COALESCE(f.administratie, 'GEEN') = COALESCE(p_administratie,'GEEN');
|
||
|
||
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
|
||
AND COALESCE(f.administratie, 'GEEN') = COALESCE(p_administratie,'GEEN');
|
||
|
||
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 = 'DSM' THEN v_aanvrager := 6524; END IF;
|
||
IF aaxx_get_user = 'NS' THEN v_aanvrager := 4; END IF;
|
||
IF aaxx_get_user = 'ENEXIS' THEN v_aanvrager := 4; END IF;
|
||
IF aaxx_get_user = 'IT' THEN v_aanvrager := 4; END IF;
|
||
|
||
v_logdate := SYSDATE;
|
||
-- voeg SA en ST opdrachten toe aan de verkoopbuffer
|
||
-- BTW tarief in verkoopbuffer is altijd 19 procent (AADS#18338)
|
||
INSERT INTO aaxx_verkoopbuffer
|
||
(
|
||
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
|
||
)
|
||
SELECT 'MLD',
|
||
v_logdate,
|
||
DECODE (aaxx_get_user, 'DOW', k.prs_kostenplaats_nr,
|
||
'DSM', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'ESSENT', '912001',
|
||
'CE', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'LB', exact_code,
|
||
'NXP', DECODE(g.alg_locatie_key, 21, '0000004', '0000003'), -- locatie 21 = eindhoven
|
||
'SABIC', 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, 'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6),
|
||
'DSM', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'ESSENT', '912001',
|
||
'CE', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'LB', exact_code,
|
||
'NXP', 2,
|
||
'SABIC', 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)) debiteur,
|
||
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,
|
||
'DOW', 'Service Charges',
|
||
'VL', 'Core Variabel',
|
||
'NXP', 'NC ' || DECODE (g.alg_locatie_key, 21, 'Eindhoven', 'Nijmegen'),
|
||
(SELECT prs_kostensoortgrp_oms || DECODE (aaxx_get_user, 'LB', ' ' || exact_code, 'SABIC', ' ' || k.prs_kostenplaats_nr)
|
||
FROM prs_kostensoortgrp ksg
|
||
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key)
|
||
) 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 -- opdrachtnummer
|
||
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, 'NS', 1.065, 1)
|
||
),
|
||
2
|
||
),
|
||
0 btw, -- deprecated
|
||
DECODE (aaxx_get_user,
|
||
'SABIC', DECODE (ks.prs_kostensoort_oms, 'RAS-NC', 2, 5),
|
||
'DSM', DECODE (fg.prs_kostensoort_refcode, '4321006', fin_btwtabelwaarde_code, 5), --AADS#21168
|
||
fin_btwtabelwaarde_code) fin_btwtabelwaarde_code,
|
||
to_char(opdr_datum, 'YYYY'),
|
||
COALESCE(exact_code, alg_gebouw_code),
|
||
DECODE (aaxx_get_user, 'DSM', (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_oms LIKE 'ST ONDH%'
|
||
OR ks.prs_kostensoort_oms LIKE 'STB ONDH%')),
|
||
'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6),
|
||
'') groepering,
|
||
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
|
||
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,
|
||
aaxx_exp_factuur f,
|
||
alg_gebouw g,
|
||
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 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 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 <> 'SABIC'
|
||
AND aaxx_get_user <> 'NXP'
|
||
AND aaxx_get_user <> 'DOW'
|
||
AND aaxx_get_user <> 'ESSENT')
|
||
OR ( aaxx_get_user = 'DSM'
|
||
AND ks.prs_kostensoort_upper LIKE 'ST ONDH%'
|
||
AND ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
)
|
||
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 ( aaxx_get_user = 'ESSENT'
|
||
AND ks.prs_kostensoort_upper LIKE 'CVE%'
|
||
AND ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
)
|
||
OR ( aaxx_get_user = 'NXP'
|
||
AND ks.prs_kostensoort_upper LIKE 'NC%'
|
||
)
|
||
OR ( aaxx_get_user = 'LB'
|
||
AND ks.prs_kostensoort_upper LIKE 'NC%'
|
||
)
|
||
OR ( aaxx_get_user = 'SABIC'
|
||
AND ks.prs_kostensoort_upper LIKE '%NC'
|
||
AND ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
)
|
||
OR ( aaxx_get_user = 'CE'
|
||
AND ( ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
OR ot.mld_typeopdr_omschrijving = 'Projectorder')
|
||
AND ( ks.prs_kostensoort_upper LIKE 'NC%'
|
||
OR ( to_char(opdr_datum, 'YYYY') = '2011'
|
||
AND ks.prs_kostensoort_upper LIKE 'VAR%')
|
||
)
|
||
)
|
||
OR ( aaxx_get_user = 'VL'
|
||
AND ks.prs_kostensoort_upper IN (
|
||
'CV OND',
|
||
'CV TERR OVR',
|
||
'CV BEWAK OVR',
|
||
'CV ARCH',
|
||
'CV BOUW PLAN',
|
||
'CV CONS REST',
|
||
'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')
|
||
)
|
||
)
|
||
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND COALESCE(f.administratie, 'GEEN') = COALESCE(p_administratie,'GEEN');
|
||
|
||
-- voeg contract orders toe aan de verkoopbuffer
|
||
-- bij DSM wordt gegroepeerd op REMA contract
|
||
IF aaxx_get_user = 'DSM' THEN
|
||
INSERT INTO aaxx_verkoopbuffer
|
||
(
|
||
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
|
||
)
|
||
SELECT 'CNT',
|
||
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)),
|
||
0 btw, -- deprecated
|
||
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 = 'DSM'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'AE%'
|
||
OR ks.prs_kostensoort_upper LIKE 'AS ONDH%'
|
||
OR ks.prs_kostensoort_upper LIKE 'ST ONDH%'
|
||
)
|
||
AND COALESCE(f.administratie, 'GEEN') = COALESCE(p_administratie,'GEEN');
|
||
ELSE
|
||
INSERT INTO aaxx_verkoopbuffer
|
||
(
|
||
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
|
||
)
|
||
SELECT 'CNT',
|
||
v_logdate,
|
||
DECODE (aaxx_get_user,
|
||
'LB', exact_code,
|
||
'DOW', k.prs_kostenplaats_nr,
|
||
'CE', aaxx_get_dep_code (k.prs_kostenplaats_nr),
|
||
'NS', SUBSTR (prs_kostenplaats_nr, 1, 30),
|
||
'NXP', DECODE(g.alg_locatie_key, 21, '0000004', '0000003'), -- locatie 21 = eindhoven
|
||
'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)
|
||
),
|
||
DECODE (aaxx_get_user,
|
||
'LB', exact_code,
|
||
'DOW', 'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6),
|
||
'CE', aaxx_get_dep_code (k.prs_kostenplaats_nr),
|
||
'NS', SUBSTR (prs_kostenplaats_nr, 1, 30),
|
||
'NXP', 2,
|
||
'VL', aaxx_get_top_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,
|
||
DECODE (aaxx_get_user,
|
||
'DOW', 'Service Charges',
|
||
'NXP', 'NC ' || DECODE (g.alg_locatie_key, 21, 'Eindhoven', 'Nijmegen'),
|
||
(SELECT prs_kostensoortgrp_oms || DECODE (aaxx_get_user, 'LB', ' ' || exact_code, 'SABIC', ' ' || k.prs_kostenplaats_nr)
|
||
FROM prs_kostensoortgrp ksg
|
||
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key)
|
||
) prs_kostensoortgrp_oms,
|
||
'C'
|
||
|| cnt_contract_nummer_intern
|
||
|| DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie)
|
||
omschrijving,
|
||
DECODE (aaxx_get_user,
|
||
'NS', ROUND (fg.bedrag * 1.065,2),
|
||
fg.bedrag),
|
||
0 btw, -- deprecated
|
||
fin_btwtabelwaarde_code, -- AADS#21168
|
||
to_char(opdr_datum, 'YYYY'),
|
||
DECODE (aaxx_get_user, 'LB', exact_code,
|
||
'VL', exact_code,
|
||
'NXP', exact_code,
|
||
'DOW', '',
|
||
alg_gebouw_code) exact_code,
|
||
DECODE (aaxx_get_user, 'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6),
|
||
'') groepering,
|
||
DECODE (aaxx_get_user, 'LB', prs_kostensoort_oms || '1',
|
||
'DOW', 'A' || prs_kostensoort_oms, '') subregelvolgorde
|
||
FROM cnt_contract c,
|
||
prs_bedrijf b,
|
||
prs_kostenplaats k,
|
||
ins_tab_discipline d,
|
||
prs_kostensoort ks,
|
||
aaxx_exp_factuur f,
|
||
(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 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 ( ( aaxx_get_user = 'CE' AND ( ks.prs_kostensoort_upper LIKE 'NC%'
|
||
OR ( to_char(opdr_datum, 'YYYY') = '2011'
|
||
AND ks.prs_kostensoort_upper LIKE 'VAR%'
|
||
)
|
||
)
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'NXP' AND ks.prs_kostensoort_upper LIKE 'NC%'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'LB' AND ks.prs_kostensoort_upper LIKE 'NC%'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'DOW'
|
||
AND ks.prs_kostensoort_upper = 'COR VAR CATE COFFE'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'VL'
|
||
AND ks.prs_kostensoort_upper IN (
|
||
'CV OND',
|
||
'CV TERR OVR',
|
||
'CV BEWAK OVR',
|
||
'CV ARCH',
|
||
'CV BOUW PLAN',
|
||
'CV CONS REST',
|
||
'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')
|
||
)
|
||
)
|
||
AND COALESCE(f.administratie, 'GEEN') = COALESCE(p_administratie,'GEEN');
|
||
END IF;
|
||
-- voeg bestelorders toe aan de verkoopbuffer
|
||
INSERT INTO aaxx_verkoopbuffer
|
||
(
|
||
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, subregelvolgorde
|
||
)
|
||
SELECT 'BES',
|
||
v_logdate,
|
||
DECODE (aaxx_get_user,
|
||
'DOW', '911791',
|
||
'DSM', aaxx_get_dep_code (k.prs_kostenplaats_nr),
|
||
'CE', 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,
|
||
'DOW', '911791',
|
||
'DSM', aaxx_get_dep_code (k.prs_kostenplaats_nr),
|
||
'CE', 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)),
|
||
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 || DECODE (aaxx_get_user, 'LB', ' ' || exact_code, 'SABIC', ' ' || k.prs_kostenplaats_nr)
|
||
FROM prs_kostensoortgrp ksg
|
||
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key),
|
||
bestel.bes_bestelopdr_id || ' ' || d.ins_discipline_omschrijving
|
||
omschrijving,
|
||
fin_factuurregel_totaal,
|
||
TO_NUMBER(NULL) btw, -- deprecated
|
||
DECODE (aaxx_get_user, 'DSM', 5, fin_btwtabelwaarde_code) fin_btwtabelwaarde_code,
|
||
TO_CHAR (opdr_datum, 'YYYY'),
|
||
COALESCE (exact_code, alg_gebouw_code),
|
||
DECODE (aaxx_get_user, 'LB', prs_kostensoort_oms || '1', '')
|
||
FROM ( SELECT boi.bes_bestelopdr_key,
|
||
bes_bestelopdr_id,
|
||
sg.ins_discipline_key,
|
||
be.mld_adres_key_lev
|
||
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
|
||
GROUP BY boi.bes_bestelopdr_key,
|
||
bes_bestelopdr_id,
|
||
sg.ins_discipline_key,
|
||
be.mld_adres_key_lev) bestel,
|
||
mld_adres ad,
|
||
prs_kostenplaats k,
|
||
ins_tab_discipline d,
|
||
prs_kostensoort ks,
|
||
aaxx_exp_factuur f,
|
||
alg_gebouw g,
|
||
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 fg.fin_factuur_key = f.fin_factuur_key
|
||
AND ( ( aaxx_get_user = 'DSM'
|
||
AND ks.prs_kostensoort_upper LIKE 'AE%' -- DSM
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'LB'
|
||
AND ks.prs_kostensoort_upper LIKE 'NC%' -- LyondellBasell
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'VL'
|
||
AND ks.prs_kostensoort_upper IN (
|
||
'CV OND',
|
||
'CV TERR OVR',
|
||
'CV BEWAK OVR',
|
||
'CV ARCH',
|
||
'CV BOUW PLAN',
|
||
'CV CONS REST',
|
||
'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',
|
||
'NC INV BOUW',
|
||
'NC INV WP',
|
||
'NC INV INST')
|
||
)
|
||
)
|
||
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND COALESCE(f.administratie, 'GEEN') = COALESCE(p_administratie,'GEEN');
|
||
|
||
-- bereken per klant de FEE over de omzet.
|
||
IF aaxx_get_user = 'CE' THEN
|
||
INSERT INTO aaxx_verkoopbuffer
|
||
(
|
||
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
|
||
)
|
||
SELECT module, export_datum, prs_kostenplaats_nr, debiteur, 'BASE FEE' || DECODE (instr(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033305'), prs_kostensoortgrp_oms, 'BASE FEE 6.75%', round(bedrag*0.0675,2), btw, fin_btwtabelwaarde_code, opdr_jaar, 'X'
|
||
FROM aaxx_verkoopbuffer
|
||
WHERE export_datum = v_logdate;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'DOW' THEN
|
||
INSERT INTO aaxx_verkoopbuffer
|
||
(
|
||
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, subregelvolgorde
|
||
)
|
||
SELECT module, export_datum, '', debiteur, 'BASE FEE' || DECODE (instr(v.prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', '8210511', prs_kostensoortgrp_oms, 'BASE FEE' , round(sum(bedrag) * 0.04, 2), 0, fin_btwtabelwaarde_code, opdr_jaar, 'X', 'X'
|
||
FROM aaxx_verkoopbuffer v
|
||
WHERE export_datum = v_logdate
|
||
GROUP BY module, export_datum, debiteur, DECODE (instr(v.prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, opdr_jaar;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'ESSENT' THEN
|
||
INSERT INTO aaxx_verkoopbuffer
|
||
(
|
||
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, subregelvolgorde
|
||
)
|
||
SELECT module, export_datum, prs_kostenplaats_nr, debiteur, 'BASE FEE ' || to_char(u.uplift) || '%' || DECODE (instr(v.prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', '8210511', prs_kostensoortgrp_oms, 'BASE FEE ' || to_char(u.uplift) || '%' , round(sum(bedrag) * (u.uplift/100),2), btw, 5, opdr_jaar, 'X', u.uplift || 'X'
|
||
FROM aaxx_verkoopbuffer v, aaxx_imp_uplift u
|
||
WHERE REPLACE(v.prs_kostensoort_oms, ' VJ', '') = u.prs_kostensoort_oms
|
||
AND export_datum = v_logdate
|
||
GROUP BY module, export_datum, prs_kostenplaats_nr, debiteur, instr(v.prs_kostensoort_oms, ' VJ'), prs_kostensoortgrp_oms, uplift, btw, opdr_jaar;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'LB' THEN
|
||
INSERT INTO aaxx_verkoopbuffer
|
||
(
|
||
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, subregelvolgorde
|
||
)
|
||
SELECT module, export_datum, prs_kostenplaats_nr, debiteur, 'BASE FEE' || DECODE (instr(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033305'), prs_kostensoortgrp_oms, 'FEE ' || prs_kostensoort_oms, round(sum(bedrag)*0.075,2), null, fin_btwtabelwaarde_code, opdr_jaar, 'X', prs_kostensoort_oms || '2'
|
||
FROM aaxx_verkoopbuffer
|
||
WHERE export_datum = v_logdate
|
||
GROUP BY module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, opdr_jaar, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033305');
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'VL' THEN
|
||
INSERT INTO aaxx_verkoopbuffer
|
||
(
|
||
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
|
||
)
|
||
SELECT module, export_datum, prs_kostenplaats_nr, debiteur, 'FEE' || DECODE (instr(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, '8210513', prs_kostensoortgrp_oms, 'FEE', round(bedrag*0.025,2), btw, fin_btwtabelwaarde_code, opdr_jaar, 'X'
|
||
FROM aaxx_verkoopbuffer
|
||
WHERE prs_kostensoort_oms = 'NC ACHT OND'
|
||
AND export_datum = 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;
|
||
|
||
|
||
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;
|
||
|
||
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;
|
||
END;
|
||
/
|
||
|
||
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
|
||
BEGIN
|
||
aaxx_export_verwerk_exact_adm (p_applname, p_applrun, p_filedir, p_filename, null);
|
||
END;
|
||
/
|
||
|
||
|
||
--=============================================================================
|
||
-- EXPORTFUNCTIES VERKOOPFACTUREN
|
||
-------------------------------------------------------------------------------
|
||
-- 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' || ',' || '3' || ',' || debiteur
|
||
|| ','
|
||
|| DECODE(aaxx_get_user, 'ENEXIS', 'Diensten derden PR', replace(prs_kostensoortgrp_oms, ',', '')) -- AAEN#26838
|
||
|| ','
|
||
|| DECODE(aaxx_get_user, 'ENEXIS', replace(prs_kostensoortgrp_oms, ',', ''), '') -- AAEN#26838
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| TO_CHAR (SYSDATE, 'ddmmyyyy')
|
||
|| ','
|
||
|| '1'
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| DECODE(aaxx_get_user, 'LB', '02610001', 'DOW', '02510001', 'DSM', '02210001', 'CE', '02410001', 'NS',exact_code_gebouw)
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| 'EUR'
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| DECODE(aaxx_get_user, 'LB', '60', 'DOW', '60', 'DSM', 'E9', 'NS','E6', 'CE', '45')
|
||
|| ','
|
||
|| '1'
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| TO_CHAR (0)
|
||
|| ','
|
||
|| TO_CHAR (0)
|
||
|| ','
|
||
|| TO_CHAR (0)
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| 'V'
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| 'N'
|
||
|| ','
|
||
|| debiteur
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| '',
|
||
opdr_jaar,
|
||
replace(prs_kostensoortgrp_oms, ',', '') || DECODE(aaxx_get_user, 'DOW', '', prs_kostenplaats_nr) || groepering || '0'
|
||
FROM aaxx_verkoopbuffer
|
||
WHERE naar_exact IS NULL
|
||
GROUP BY replace(prs_kostensoortgrp_oms, ',', ''), debiteur, DECODE(aaxx_get_user, 'DOW', '', prs_kostenplaats_nr), groepering, DECODE(aaxx_get_user, 'LB', '02610001', 'DOW', '02510001', 'DSM', '02210001','CE', '02410001', 'NS',exact_code_gebouw), opdr_jaar
|
||
UNION ALL
|
||
SELECT '1'
|
||
|| ','
|
||
|| '3'
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| '1'
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ' '
|
||
|| prs_kostensoort_oms
|
||
|| ','
|
||
|| 'V'
|
||
|| ','
|
||
|| replace(omschrijving, ',', '')
|
||
|| ','
|
||
|| '1'
|
||
|| ','
|
||
|| fin_btwtabelwaarde_code
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| '0'
|
||
|| ','
|
||
|| REPLACE (TO_CHAR (sum(bedrag)), ',', '.')
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| DECODE (aaxx_get_user, 'DSM', substr(prs_kostensoort_oms, 1, instr(prs_kostensoort_oms, ' ')-1)||prs_kostenplaats_nr,
|
||
'CE', DECODE (omschrijving, 'BASE FEE 2%', '999999', prs_kostenplaats_nr),
|
||
'DOW', DECODE (omschrijving, 'BASE FEE 3%', '999999', prs_kostenplaats_nr),
|
||
prs_kostenplaats_nr)
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| prs_kostensoort_refcode
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| DECODE (aaxx_get_user, 'LB', '02600013',
|
||
'CE', DECODE (omschrijving, 'BASE FEE 2%', '999999', prs_kostenplaats_nr),
|
||
'ENEXIS', '02100004',
|
||
exact_code_gebouw)
|
||
|| ','
|
||
|| '',
|
||
opdr_jaar,
|
||
replace(prs_kostensoortgrp_oms, ',', '') || DECODE(aaxx_get_user, 'DOW', '', prs_kostenplaats_nr)|| groepering || '1' || subregelvolgorde || replace(omschrijving, ',', '')
|
||
FROM aaxx_verkoopbuffer
|
||
WHERE naar_exact IS NULL
|
||
GROUP BY subregelvolgorde, replace(prs_kostensoortgrp_oms, ',', ''), omschrijving, replace(omschrijving, ',', ''), prs_kostenplaats_nr, groepering, exact_code_gebouw, prs_kostensoort_oms, fin_btwtabelwaarde_code, prs_kostensoort_refcode, opdr_jaar;
|
||
|
||
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||v_count);
|
||
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
|
||
BEGIN
|
||
UPDATE aaxx_verkoopbuffer
|
||
SET naar_exact = sysdate
|
||
WHERE naar_exact IS NULL
|
||
AND opdr_jaar = 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,
|
||
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_v_aanwezigperslid 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, '<?xml version="1.0" encoding="windows-1252"?>');
|
||
aaxx_add_xml_row (v_bestand, '<eExact>');
|
||
aaxx_add_xml_row (v_bestand, '<GLEntries>');
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
aaxx_add_xml_row (v_bestand, '<GLEntry entry="' || rec.mld_opdr_uren_key || '">');
|
||
aaxx_add_xml_row (v_bestand, '<Journal code="24" type="M"/>');
|
||
aaxx_add_xml_row (v_bestand, '<FinEntryLine>');
|
||
aaxx_add_xml_element (v_bestand, 'Date', TO_CHAR(rec.mld_opdr_uren_datum, 'yyyy-mm-dd') );
|
||
aaxx_add_xml_row (v_bestand, '<GLAccount code="' || rec.projecttype_code || '"/>');
|
||
aaxx_add_xml_element (v_bestand, 'Description', rec.projectnaam);
|
||
aaxx_add_xml_row (v_bestand, '<Costcenter code="' || rec.prs_kostenplaats_nr || '"/>');
|
||
aaxx_add_xml_row (v_bestand, '<Resource number="'|| rec.aafm_perslid_nr ||'"/>');
|
||
aaxx_add_xml_row (v_bestand, '<Project code="' || rec.meldingnr || '" type="I" status="A">');
|
||
aaxx_add_xml_element (v_bestand, 'Description', rec.projectnaam);
|
||
aaxx_add_xml_row (v_bestand, '</Project>');
|
||
aaxx_add_xml_element (v_bestand, 'Quantity', TO_CHAR(rec.mld_opdr_uren_besteed) );
|
||
aaxx_add_xml_row (v_bestand, '<Amount>');
|
||
aaxx_add_xml_row (v_bestand, '<Currency code="EUR"/>');
|
||
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, '</Amount>');
|
||
aaxx_add_xml_row (v_bestand, '<FinReferences>');
|
||
aaxx_add_xml_element (v_bestand, 'DocumentDate', TO_CHAR(SYSDATE, 'YYYY-MM-DD') );
|
||
aaxx_add_xml_row (v_bestand, '</FinReferences>');
|
||
aaxx_add_xml_row (v_bestand, '</FinEntryLine>');
|
||
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, '<FinEntryLine>');
|
||
aaxx_add_xml_row (v_bestand, '<GLAccount code="'||rec.rek_courant||'"/>');
|
||
aaxx_add_xml_element (v_bestand, 'Description', rec.projectnaam);
|
||
aaxx_add_xml_row (v_bestand, '<Costcenter code="' || coalesce(rec.projectkpn_opdr, rec.projectkpn_perslid) || '"/>');
|
||
aaxx_add_xml_row (v_bestand, '<Resource number="'|| rec.aafm_perslid_nr ||'"/>');
|
||
aaxx_add_xml_element (v_bestand, 'Quantity', '-'||TO_CHAR(rec.mld_opdr_uren_besteed) );
|
||
aaxx_add_xml_row (v_bestand, '<Amount>');
|
||
aaxx_add_xml_row (v_bestand, '<Currency code="EUR"/>');
|
||
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, '</Amount>');
|
||
aaxx_add_xml_row (v_bestand, '<FinReferences>');
|
||
aaxx_add_xml_element (v_bestand, 'DocumentDate', SYSDATE);
|
||
aaxx_add_xml_row (v_bestand, '</FinReferences>');
|
||
aaxx_add_xml_row (v_bestand, '</FinEntryLine>');
|
||
aaxx_add_xml_row (v_bestand, '</GLEntry>');
|
||
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, '</GLEntries>');
|
||
aaxx_add_xml_row (v_bestand, '</eExact>');
|
||
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<47>xporteerde uren op Verwerkt zetten en uurtarief + kostenplaats vastleggen bij
|
||
-- opdracht (kopi<70>ren van perslid).
|
||
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;
|
||
|
||
BEGIN
|
||
-- Goedgekeurde en ge<67>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;
|
||
|
||
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), '<ret>'), 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
|
||
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 = 'DSM' THEN
|
||
-- DSM: Sodexo BV
|
||
v_prs_bedrijf_key := 10442;
|
||
-- DSM: Servicedesk AA
|
||
v_aanvrager := 6524;
|
||
-- DSM: 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(export_datum)
|
||
INTO v_laatste_export
|
||
FROM aaxx_verkoopbuffer
|
||
WHERE module = 'RES';
|
||
|
||
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_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, 'DSM', 603, 'NS', 641),
|
||
DECODE (aaxx_get_user, 'DSM', 1, 'NS', 0), -- alg_locatie
|
||
sysdate + 14,
|
||
sysdate,
|
||
2,
|
||
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 verkoopbuffer';
|
||
-- rra.res_status_bo_key = 5 is afgemeld
|
||
INSERT INTO aaxx_verkoopbuffer
|
||
(
|
||
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
|
||
)
|
||
SELECT 'RES',
|
||
SYSDATE,
|
||
DECODE (aaxx_get_user, 'DSM', aaxx_get_dep_code(k.prs_kostenplaats_nr), 'NS', SUBSTR (prs_kostenplaats_nr, 1, 30)),
|
||
DECODE (aaxx_get_user, 'DSM', 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),
|
||
0, -- deprecated
|
||
DECODE (res_artikel_btw, 19, '4', 6, '2', 0, '4', '-1'),
|
||
to_char(add_months(sysdate, -1),'yyyy'),
|
||
COALESCE(exact_code, alg_gebouw_code)
|
||
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(omschrijving)
|
||
, round((sum(bedrag)/1.065),2)
|
||
, round((sum(bedrag)/1.065),2)
|
||
, v_mld_opdr_bedrijfopdr_volgnr
|
||
FROM aaxx_verkoopbuffer
|
||
WHERE module = 'RES'
|
||
AND trunc(export_datum) = 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), '<ret>'),
|
||
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),
|
||
'<ret>'
|
||
),
|
||
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), '<ret>'),
|
||
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
|
||
)
|
||
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
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_verwijder IS NULL;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- 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_bedrijf_naam,
|
||
niveau
|
||
)
|
||
AS
|
||
SELECT ap.prs_afdeling_naam,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving,
|
||
k.prs_kostenplaats_nr,
|
||
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
|
||
)
|
||
AS
|
||
SELECT p.prs_perslid_key,
|
||
DECODE (aaxx_get_user,
|
||
'CE', a.prs_afdeling_omschrijving,
|
||
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
|
||
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_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
|
||
)
|
||
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
|
||
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,
|
||
DECODE (
|
||
k.prs_kenmerk_kenmerktype,
|
||
'R',
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
fac.safe_to_number (prs_kenmerklink_waarde)),
|
||
'S',
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
fac.safe_to_number (prs_kenmerklink_waarde)),
|
||
'D',
|
||
TO_CHAR (
|
||
fac.safe_to_date (prs_kenmerklink_waarde, 'dd-mm-yyyy'),
|
||
'yyyy-mm-dd'),
|
||
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,
|
||
beschrijving,
|
||
contractsoort,
|
||
typecontract,
|
||
versie,
|
||
status,
|
||
ingangsdatum,
|
||
rappeldatum,
|
||
opzegdatum,
|
||
einddatum,
|
||
eigenaar,
|
||
beheerder,
|
||
uitvoerder,
|
||
kostenplaats,
|
||
termijnbedrag,
|
||
contractbedrag,
|
||
volgnummer,
|
||
locatie_code,
|
||
gebouw_code,
|
||
gebouw_kosten,
|
||
gebouw_gefactureerd
|
||
)
|
||
AS
|
||
SELECT 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,
|
||
a.prs_afdeling_naam,
|
||
prs_perslid_naam_full,
|
||
prs_bedrijf_naam,
|
||
kp.prs_kostenplaats_nr,
|
||
cnt_contract_termijnkosten,
|
||
cnt_contract_kosten,
|
||
aaxx_get_cnt_cont_plaats_index (cp.cnt_contract_plaats_key),
|
||
alg_locatie_code,
|
||
COALESCE (
|
||
(SELECT exact_code
|
||
FROM aaxx_v_exact_code_gebouw ogk
|
||
WHERE ogk.alg_gebouw_key = g.alg_gebouw_key),
|
||
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)
|
||
FROM cnt_contract c,
|
||
cnt_discipline d,
|
||
cnt_disc_params cd,
|
||
cnt_typecontract tc,
|
||
cnt_contract_plaats 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
|
||
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 (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 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 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 cnt_contract_verwijder IS NULL;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- 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,
|
||
fin_factuurregel_nr,
|
||
fin_factuurregel_totaal,
|
||
fin_factuurregel_btw,
|
||
uplift,
|
||
incl_uplift,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuurregel_referentie
|
||
)
|
||
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'),
|
||
fr.fin_factuurregel_nr,
|
||
fr.fin_factuurregel_totaal,
|
||
ROUND (fr.fin_factuurregel_btw, 2),
|
||
uplift,
|
||
uplift * fr.fin_factuurregel_totaal,
|
||
fr.fin_factuurregel_omschrijving,
|
||
fr.fin_factuurregel_referentie
|
||
FROM fin_factuur f,
|
||
fin_factuurregel fr,
|
||
(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(+);
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_MLD_ALGEMEEN
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_mld_melding
|
||
(
|
||
mld_melding_key,
|
||
meldingnummer,
|
||
mld_melding_start_key,
|
||
alg_district_omschrijving,
|
||
locatie,
|
||
locatie_omschrijving,
|
||
alg_locatie_key,
|
||
gebouw,
|
||
gebouw_naam,
|
||
verdieping,
|
||
ruimtenr,
|
||
ruimte_omschrijving,
|
||
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,
|
||
ingezien,
|
||
geaccepteerd,
|
||
afgemeld,
|
||
doorlooptijd_werkdgn,
|
||
omschrijving,
|
||
opmerking,
|
||
object_omschrijving,
|
||
opdracht_key,
|
||
opdracht_volgnummer,
|
||
opdracht_type,
|
||
opdracht_status,
|
||
opdracht_duur_gepland,
|
||
opdracht_datum,
|
||
opdracht_verzonden,
|
||
opdracht_geaccepteerd,
|
||
opdracht_afgemeld,
|
||
opdracht_doorlooptijd,
|
||
opdracht_omschrijving,
|
||
opdracht_opmerking,
|
||
opdracht_uitvoerende,
|
||
opdracht_contract,
|
||
opdracht_behandelaar,
|
||
opdracht_behandelaar_key,
|
||
opdracht_uren,
|
||
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,
|
||
m.mld_melding_start_key,
|
||
alg_district_omschrijving,
|
||
alg_locatie_code locatie,
|
||
alg_locatie_omschrijving locatie_omschrijving,
|
||
l.alg_locatie_key,
|
||
og.alg_gebouw_code gebouw,
|
||
og.alg_gebouw_naam gebouw_naam,
|
||
og.alg_verdieping_code verdieping,
|
||
og.alg_ruimte_nr ruimte,
|
||
og.alg_ruimte_omschrijving ruimte_omschrijving,
|
||
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 (
|
||
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 = m.mld_melding_status)
|
||
status,
|
||
aaxx.count_work_days (m.mld_melding_datum, mld_melding_einddatum)
|
||
sla_werkdgn,
|
||
m.mld_melding_uitvoertijd plan_uitvoertijd,
|
||
m.mld_melding_datum datum,
|
||
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,
|
||
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,
|
||
m.mld_melding_omschrijving omschrijving,
|
||
m.mld_melding_opmerking opmerking,
|
||
(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,
|
||
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_verzonden opdracht_verzonden,
|
||
fac.gettrackingdate ('ORDACP', o.mld_opdr_key)
|
||
opdracht_geaccepteerd,
|
||
mld.getopdrachtstatusdate (o.mld_opdr_key, 6) opdracht_afgemeld,
|
||
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,
|
||
o.mld_opdr_uren opdracht_uren,
|
||
o.mld_opdr_kosten
|
||
- o.mld_opdr_materiaal
|
||
- (o.mld_opdr_uren * o.mld_opdr_uurloon)
|
||
opdracht_correctie,
|
||
o.mld_opdr_materiaal opdracht_materiaal,
|
||
o.mld_opdr_uurloon opdracht_uurtarief,
|
||
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_stdmelding s,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_v_allonrgoed_gegevens og,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
mld_opdr o
|
||
WHERE s.mld_stdmelding_key = m.mld_stdmelding_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(+)
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
cnt_contract_nummer_intern
|
||
|| '.'
|
||
|| COALESCE (cnt_contract_versie, '0'),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (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),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_NUMBER (NULL),
|
||
c.cnt_contract_document,
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL), -- object omschrijving
|
||
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_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),
|
||
c.cnt_contract_kosten,
|
||
kp.prs_kostenplaats_nr,
|
||
prs_kostenplaats_omschrijving
|
||
FROM cnt_contract c,
|
||
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.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_NUMBER (NULL),
|
||
alg_district_omschrijving,
|
||
alg_locatie_code,
|
||
alg_locatie_omschrijving,
|
||
alg_locatie_key,
|
||
alg_gebouw_code,
|
||
alg_gebouw_naam,
|
||
TO_CHAR (NULL), -- verdieping
|
||
TO_CHAR (NULL), -- ruimte_nr
|
||
TO_CHAR (NULL), -- ruimte_omschrijving
|
||
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,
|
||
besteldatum,
|
||
TO_DATE (NULL), -- datum ingezien
|
||
acceptatie_datum,
|
||
ontvangen_datum,
|
||
doorlooptijd_werkdgn,
|
||
omschrijving,
|
||
TO_CHAR (NULL), -- opmerking
|
||
TO_CHAR (NULL), -- object omschrijving
|
||
bes_bestelopdr_key,
|
||
opdr_volgnr,
|
||
'Purchase Order',
|
||
opdr_status,
|
||
DECODE (opdr_volgnr, NULL, TO_NUMBER (NULL), sla_tijd),
|
||
opdr_datum,
|
||
TO_DATE (NULL), -- opdr geaccepteerd
|
||
verzonden_datum,
|
||
opdr_ontv_datum,
|
||
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), -- 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,
|
||
b.bes_bestelling_ordernr,
|
||
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,
|
||
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 =
|
||
fac.gettrackinguserkey ('BESAP2',
|
||
b.bes_bestelling_key))
|
||
invoerder,
|
||
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,
|
||
(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,
|
||
DECODE (
|
||
sk.mld_srtkenmerk_kenmerktype,
|
||
'R',
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key = mld_kenmerkmelding_waarde),
|
||
'S',
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key = mld_kenmerkmelding_waarde),
|
||
'D',
|
||
TO_CHAR (
|
||
fac.safe_to_date (mld_kenmerkmelding_waarde,
|
||
'dd-mm-yyyy'),
|
||
'yyyy-mm-dd'),
|
||
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,
|
||
DECODE (sk.mld_srtkenmerk_kenmerktype,
|
||
'R',
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key = mld_kenmerkopdr_waarde),
|
||
'S',
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key = mld_kenmerkopdr_waarde),
|
||
'D',
|
||
TO_CHAR (
|
||
fac.safe_to_date (mld_kenmerkopdr_waarde,
|
||
'dd-mm-yyyy'),
|
||
'yyyy-mm-dd'),
|
||
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,
|
||
nummer,
|
||
res_omschrijving,
|
||
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,
|
||
verdieping,
|
||
ruimte,
|
||
opstelling,
|
||
no_show,
|
||
mandaat,
|
||
personeelsnr,
|
||
werkplek,
|
||
ins_discipline_key,
|
||
catalogus_ins_discipline_key,
|
||
catalogus,
|
||
reserveerbare_ruimte,
|
||
bezoekers,
|
||
van,
|
||
tot,
|
||
duur,
|
||
status,
|
||
activiteit,
|
||
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,
|
||
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
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_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.opstelling,
|
||
rrr.res_rsv_ruimte_noshow,
|
||
NVL ( (SELECT pr.fac_profiel_limiet
|
||
FROM fac_profiel pr
|
||
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0),
|
||
prs_perslid_nr,
|
||
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),
|
||
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,
|
||
( 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_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,
|
||
DECODE (
|
||
sk.res_srtkenmerk_kenmerktype,
|
||
'R',
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key = res_kenmerkreservering_waarde),
|
||
'S',
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key = res_kenmerkreservering_waarde),
|
||
'D',
|
||
TO_CHAR (
|
||
fac.safe_to_date (res_kenmerkreservering_waarde,
|
||
'dd-mm-yyyy'),
|
||
'yyyy-mm-dd'),
|
||
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,
|
||
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 =
|
||
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,
|
||
bi.bes_bestelling_item_prijs * bi.bes_bestelling_item_aantal prijs,
|
||
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,
|
||
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,
|
||
bi.bes_bestelling_item_prijs itemprijs,
|
||
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,
|
||
fkd.fac_kenmerkdomein_objectnaam,
|
||
fkd.fac_kenmerkdomein_kolomnaam,
|
||
fkd.fac_kenmerkdomein_kolomtxt,
|
||
fkd.fac_usrtab_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
|
||
AND sk.fac_kenmerkdomein_key = fkd.fac_kenmerkdomein_key(+);
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- 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_verdieping_key,
|
||
alg_verdieping_code,
|
||
alg_verdieping_omschrijving,
|
||
alg_ruimte_key,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving
|
||
)
|
||
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,
|
||
v.alg_verdieping_key,
|
||
v.alg_verdieping_code,
|
||
v.alg_verdieping_omschrijving,
|
||
ru.alg_ruimte_key,
|
||
ru.alg_ruimte_nr,
|
||
ru.alg_ruimte_omschrijving
|
||
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_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (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_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (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_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (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,
|
||
DECODE (
|
||
k.alg_kenmerk_kenmerktype,
|
||
'R',
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
fac.safe_to_number (alg_onrgoedkenmerk_waarde)),
|
||
'S',
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
fac.safe_to_number (alg_onrgoedkenmerk_waarde)),
|
||
'D',
|
||
TO_CHAR (
|
||
fac.safe_to_date (alg_onrgoedkenmerk_waarde, 'dd-mm-yyyy'),
|
||
'yyyy-mm-dd'),
|
||
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_UREN
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_uren
|
||
(
|
||
mld_opdr_id,
|
||
prs_perslid_key,
|
||
datum,
|
||
uren_besteed,
|
||
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,
|
||
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_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,
|
||
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;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- 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;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- GRANTS naar AAFM database.
|
||
-------------------------------------------------------------------------------
|
||
GRANT SELECT ON aaxx_v_dwh_prs_bedrijf TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_cnt_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_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_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_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_lcrap_key_stats TO aafm;
|
||
|
||
|
||
|
||
|
||
--=============================================================================
|
||
-- 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,
|
||
leveranciernr,
|
||
factuurnr,
|
||
factuurdatum,
|
||
ordernr,
|
||
locatie,
|
||
afleverdatum,
|
||
omschrijving,
|
||
aantal,
|
||
kostprijs,
|
||
btwbedrag,
|
||
btw,
|
||
docid,
|
||
debiteurnummer,
|
||
opmerking,
|
||
lastinvoice,
|
||
btwverlegd,
|
||
gebouw,
|
||
orderomschrijving
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_naam bedrijfsnaam,
|
||
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),
|
||
'<ret>')
|
||
orderomschrijving
|
||
FROM prs_bedrijf b,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
mld_typeopdr ot
|
||
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_statusopdr_key = 9 -- Afgerond
|
||
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, 'DSM', 321, -- Reden 0 order
|
||
'ENEXIS', 221,
|
||
'FPC', 1,
|
||
'IT', 381,
|
||
'NS', 661,
|
||
'SABIC', 34,
|
||
2
|
||
)
|
||
);
|
||
|
||
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_empty);
|
||
-- 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/<leeg> waarbij leeg gelijk is aan Nee. Andere waarden leidt tot "Incompleet")
|
||
-- v_kenmerk1: 16
|
||
-- v_kenmerk1: 17
|
||
-- v_kenmerk1: 18
|
||
-- v_kenmerk1: 19
|
||
-- v_kenmerk1: 20
|
||
-- 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);
|
||
|
||
-- 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';
|
||
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
|
||
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);
|
||
|
||
END;
|
||
/
|
||
|
||
--------------------------------
|
||
-- 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_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';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
|
||
IF (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);
|
||
--
|
||
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
|
||
IF v_gebouw_code IS NOT NULL
|
||
THEN
|
||
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,
|
||
fac.safe_to_number (
|
||
REPLACE (v_bedrag, ',', '.')),
|
||
fac.safe_to_number (
|
||
REPLACE (v_termijnbedrag, ',', '.')),
|
||
v_dienst,
|
||
SUBSTR(v_contractsoort,1,30),
|
||
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 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 DISTINCT contractsoort
|
||
FROM aaxx_imp_contract
|
||
WHERE NOT EXISTS
|
||
(SELECT ins_discipline_key
|
||
FROM cnt_discipline
|
||
WHERE UPPER (TRIM (ins_discipline_omschrijving)) =
|
||
UPPER (TRIM (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 := ' 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_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,
|
||
rec.bedrag,
|
||
rec.termijnbedrag,
|
||
v_bedrijf_key,
|
||
v_afdeling_key,
|
||
v_discipline_key,
|
||
v_perslid_man_key,
|
||
v_perslid_key,
|
||
v_kostenplaats_key,
|
||
rec.versie,
|
||
1,
|
||
1)
|
||
RETURNING cnt_contract_key
|
||
INTO v_contract_key;
|
||
|
||
IF rec.contractnummer IS NULL
|
||
THEN
|
||
UPDATE cnt_contract
|
||
SET cnt_contract_nummer = cnt_contract_key,
|
||
cnt_contract_nummer_intern = cnt_contract_key,
|
||
cnt_contract_versie = '0'
|
||
WHERE cnt_contract_key = v_contract_key;
|
||
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 <20><>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 <20><>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 personen die gedefinieerd zijn in de AAIT database ook in
|
||
-- de klantdatabase toe te voegen.
|
||
-- 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 i.*, p.prs_perslid_key, p.prs_perslid_nr
|
||
FROM aait.aait_imp_perslid i,
|
||
(SELECT prs_perslid_key, prs_perslid_nr, prs_kenmerklink_waarde aafm_prs_perslid_nr
|
||
FROM prs_perslid p, prs_kenmerklink kl
|
||
WHERE p.prs_perslid_key = kl.prs_link_key
|
||
AND kl.prs_kenmerk_key = 3) p
|
||
WHERE i.personeelsnummer = p.aafm_prs_perslid_nr(+)
|
||
AND i.personeelsnummer <> 'N/A';
|
||
|
||
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_errormsg VARCHAR2 (1000);
|
||
v_error_hint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (2000);
|
||
BEGIN
|
||
v_errormsg := 'Check of autorisatiegroep al bestaat';
|
||
|
||
IF aaxx_get_user = 'DSM'
|
||
THEN
|
||
v_prs_bedrijf_naam := 'DERDEN';
|
||
ELSE
|
||
v_prs_bedrijf_naam := 'AAFM';
|
||
END IF;
|
||
|
||
BEGIN
|
||
SELECT fac_groep_key
|
||
INTO v_fac_groep_key
|
||
FROM fac_groep
|
||
WHERE UPPER (fac_groep_omschrijving) = 'AAFM PROJECTUREN';
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO fac_groep (fac_groep_omschrijving)
|
||
VALUES ('AAFM Projecturen')
|
||
RETURNING fac_groep_key
|
||
INTO v_fac_groep_key;
|
||
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 = 'DSM'
|
||
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
|
||
-- 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 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_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,
|
||
NULL,
|
||
fac.safe_to_number (
|
||
REPLACE (rec.dienstverband, ',', '.')),
|
||
fac.safe_to_number (REPLACE (rec.uurloon, ',', '.')))
|
||
RETURNING prs_perslid_key
|
||
INTO v_prs_perslid_key;
|
||
|
||
-- aangezien het personeelsnummer de key is naar de importtabel mag
|
||
-- deze alleen aangemaakt worden als een nieuw perslidrecord wordt
|
||
-- toegevoegd.
|
||
v_errormsg :=
|
||
'Toevoegen persoonsnummer kenmerk ' || v_prs_perslid_key;
|
||
aaxx.set_prs_kenmerk (p_import_key,
|
||
'P',
|
||
3,
|
||
v_prs_perslid_key,
|
||
rec.personeelsnummer);
|
||
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_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 (key = 1).
|
||
DELETE fac_gebruikersgroep
|
||
WHERE fac_groep_key = 1
|
||
AND prs_perslid_key = v_prs_perslid_key;
|
||
END IF;
|
||
|
||
-- voeg iedereen toe aan de gebruikersgroep AAFM projecturen
|
||
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);
|
||
|
||
v_errormsg := 'Toevoegen kostenplaats kenmerk ' || v_prs_perslid_key;
|
||
IF v_prs_perslid_key IS NOT NULL THEN
|
||
aaxx.set_prs_kenmerk (p_import_key,
|
||
'P',
|
||
2,
|
||
v_prs_perslid_key,
|
||
rec.kostenplaats);
|
||
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);
|
||
END;
|
||
/
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- 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 (1000);
|
||
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);
|
||
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 NO_DATA_FOUND 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
|
||
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 || ']';
|
||
v_datumtijd :=
|
||
fac.safe_to_date (
|
||
REPLACE (
|
||
SUBSTR (v_datumtijd_tekst,
|
||
1,
|
||
INSTR (v_datumtijd_tekst, '.') - 1),
|
||
'T',
|
||
' '),
|
||
'yyyy-mm-dd hh24:mi:ss');
|
||
|
||
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,
|
||
replace(v_opmerking, '@@',CHR (13)));
|
||
|
||
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
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
'');
|
||
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 :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || 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;
|
||
|
||
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 = 'DSM' THEN v_mld_srtkenmerk_key := 123; END IF;
|
||
|
||
IF aaxx_get_user = 'DSM'
|
||
THEN
|
||
v_user_key := 6524;
|
||
ELSE
|
||
v_user_key := 4;
|
||
END IF;
|
||
|
||
|
||
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
|
||
UPDATE mld_melding
|
||
SET mld_melding_opmerking =
|
||
DECODE (
|
||
mld_melding_opmerking,
|
||
NULL,
|
||
rec.opmerking,
|
||
rec.opmerking || CHR (13) || CHR (10)
|
||
|| SUBSTR (mld_melding_opmerking,
|
||
1,
|
||
(4000 - v_count)))
|
||
WHERE mld_melding_key = v_mld_key
|
||
AND mld_melding_status IN (v_user_key, 7);
|
||
|
||
|
||
v_errormsg := 'Fout bij sluiten melding.';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM (SELECT m.mld_melding_key,
|
||
(SELECT COUNT ( * )
|
||
FROM mld_opdr o
|
||
WHERE mld_melding_key = m.mld_melding_key)
|
||
aanw_opdr,
|
||
(SELECT COUNT ( * )
|
||
FROM mld_opdr o
|
||
WHERE mld_melding_key = m.mld_melding_key
|
||
AND o.mld_statusopdr_key NOT IN
|
||
(1, 2, 6, 7, 9))
|
||
open_opdr
|
||
FROM mld_melding m
|
||
WHERE m.mld_melding_key = v_mld_key
|
||
AND m.mld_melding_status IN (v_user_key, 7))
|
||
niet_opgelost
|
||
WHERE aanw_opdr > 0 AND open_opdr = 0;
|
||
|
||
IF (v_count = 1)
|
||
THEN
|
||
MLD.setmeldingstatus (v_mld_key, 5, v_user_key); -- Facilitor
|
||
MLD.mld_nextworkflowstep (v_mld_key, 1); -- Succes
|
||
ELSE
|
||
BEGIN
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, v_user_key, 0);
|
||
END;
|
||
END IF;
|
||
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;
|
||
/
|
||
|
||
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- 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 nvl (p.prs_perslid_oslogin, 'QueQueLeQue') NOT LIKE '\_%' ESCAPE '\';
|
||
|
||
|
||
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_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;
|
||
|
||
|
||
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
|
||
)
|
||
AS
|
||
SELECT cnt_contract_nummer_intern * 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
|
||
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
|
||
AND c.cnt_contract_looptijd_tot
|
||
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 (cnt_contract_nummer_intern * 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
|
||
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
|
||
AND c.cnt_contract_looptijd_tot
|
||
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_gegevens (
|
||
vakgroeptype,
|
||
vakgroep,
|
||
melding,
|
||
groep,
|
||
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,
|
||
m.mld_stdmelding_urgentie,
|
||
m.mld_stdmelding_uitvoertijd,
|
||
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;
|
||
|
||
|
||
-- 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_orderadres,
|
||
stylesheet
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_naam,
|
||
prs_bedrijf_bezoek_plaats,
|
||
prs_leverancier_nr,
|
||
prs_bedrijf_email,
|
||
prs_bedrijf_mldorder_adres,
|
||
prs_bedrijf_xsl
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_verwijder IS NULL AND NVL (prs_bedrijf_intern, 0) <> 1;
|
||
|
||
|
||
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 (
|
||
(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 ( ( aaxx_get_user = 'ENEXIS' AND ogk.alg_onrgoed_key = g.alg_locatie_key)
|
||
OR ( aaxx_get_user <> 'ENEXIS' AND ogk.alg_onrgoed_key = g.alg_gebouw_key)
|
||
)
|
||
AND k.alg_kenmerk_key =
|
||
DECODE (aaxx_get_user, 'BT', 1020,
|
||
'CE', 1040,
|
||
'DSM', 1180,
|
||
'ENEXIS', 1140, -- locatie niveau
|
||
'ESSENT', 1040,
|
||
'FPC', 1020,
|
||
'IT', 1060,
|
||
'NS', 1160,
|
||
'NXP', 1020,
|
||
'SABIC', 1040,
|
||
1000)),
|
||
'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, 'DSM', 1160, -1)),
|
||
'Onbekend')
|
||
tfmer, -- verantwoordelijke Technisch FMer
|
||
'<a onclick=''FcltMgr.openDetail("Appl/MLD/mld_opdr.asp?urole=bo&'
|
||
|| 'opdr_key='
|
||
|| o.mld_opdr_key
|
||
|| ' ", "Opdracht '
|
||
|| o.mld_melding_key
|
||
|| '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
|| '")''>'
|
||
|| o.mld_melding_key
|
||
|| '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
|| '</a>'
|
||
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,
|
||
prs_bedrijf b,
|
||
alg_v_onroerendgoed alg,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
(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 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 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;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_catering_export
|
||
(
|
||
RESERVERING,
|
||
FCLT_F_AFDELINGSCODE,
|
||
AFDELINGS_OMSCHRIJVING,
|
||
BOEKINGSDATUM,
|
||
AFMELDDATUM,
|
||
FCLT_F_PERIODE,
|
||
AANVRAGER,
|
||
GEBOUW,
|
||
BTW,
|
||
TOTAAL
|
||
)
|
||
AS
|
||
SELECT reservering,
|
||
kostenplaats_nr,
|
||
kostenplaats,
|
||
boekingsdatum,
|
||
afmelddatum,
|
||
periode,
|
||
aanvrager,
|
||
gebouw,
|
||
TO_CHAR (btw),
|
||
SUM (totaalprijs)
|
||
FROM (SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
||
reservering,
|
||
k.prs_kostenplaats_nr kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving kostenplaats,
|
||
res_rsv_artikel_levering boekingsdatum,
|
||
res_rsv_artikel_afgemeld afmelddatum,
|
||
TO_CHAR (ADD_MONTHS (rra.res_rsv_artikel_verwerkt, -1),
|
||
'yyyy-mm')
|
||
periode,
|
||
pf.prs_perslid_naam_full aanvrager,
|
||
g.alg_gebouw_code gebouw,
|
||
ra.res_artikel_btw btw,
|
||
rra.res_rsv_artikel_prijs totaalprijs
|
||
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 DISTINCT
|
||
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(+))
|
||
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(+))
|
||
GROUP BY reservering,
|
||
kostenplaats_nr,
|
||
kostenplaats,
|
||
boekingsdatum,
|
||
afmelddatum,
|
||
periode,
|
||
aanvrager,
|
||
gebouw,
|
||
btw;
|
||
|
||
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;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- 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,
|
||
'<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'
|
||
|| 'mld_key='
|
||
|| m.mld_melding_key
|
||
|| '")''>'
|
||
|| pbn.ins_srtdiscipline_prefix || m.mld_melding_key
|
||
|| '</a>'
|
||
html_meldingnr,
|
||
pf.prs_perslid_naam_full fclt_x_projectmedewerker,
|
||
CASE
|
||
WHEN o.mld_opdr_bedrijfopdr_volgnr IS NULL
|
||
THEN
|
||
NULL
|
||
ELSE
|
||
'<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_opdr.asp?urole=bo&'
|
||
|| 'opdr_key='
|
||
|| o.mld_opdr_key
|
||
|| '")''>'
|
||
|| pf.prs_perslid_naam_full
|
||
|| '</a>'
|
||
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 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_uitvoertijd,
|
||
'DAGEN')
|
||
- COALESCE (
|
||
fac.gettrackingdate (
|
||
'MLDREJ',
|
||
m.mld_melding_key),
|
||
COALESCE (
|
||
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_urgentie,
|
||
'UREN')
|
||
- COALESCE (
|
||
fac.gettrackingdate ('MLDREJ',
|
||
m.mld_melding_key),
|
||
COALESCE (
|
||
fac.gettrackingdate ('MLDACP',
|
||
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_uitvoertijd,
|
||
'DAGEN')
|
||
- COALESCE (
|
||
fac.gettrackingdate (
|
||
'MLDREJ',
|
||
m.mld_melding_key),
|
||
COALESCE (
|
||
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 <> 'IT' OR d.ins_srtdiscipline_key = 22) -- IT helpdesk
|
||
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',
|
||
'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);
|
||
|
||
-- 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,
|
||
gastheer.prs_perslid_naam_full 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,
|
||
gastheer.prs_perslid_naam_full 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';
|
||
|
||
|
||
/* Formatted on 9-11-2012 12:12:12 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_mld_qrc
|
||
(
|
||
fclt_3d_locatie_key,
|
||
fclt_3d_discipline_key,
|
||
fclt_f_soortmelding,
|
||
fclt_f_locatie,
|
||
fclt_f_gebouw,
|
||
fclt_f_verdieping,
|
||
plaats,
|
||
ruimtefunctie,
|
||
fclt_f_objectdiscipline,
|
||
fclt_f_objectgroep,
|
||
objectsoort_key,
|
||
fclt_f_objectsoort,
|
||
objectsoort_code,
|
||
ins_deel_key,
|
||
ins_deel_omschrijving,
|
||
ins_deel_upper,
|
||
--ins_alg_ruimte_key,
|
||
--ins_alg_ruimte_type,
|
||
hide_f_bookmark_id
|
||
)
|
||
AS
|
||
SELECT l.alg_locatie_key,
|
||
disc.ins_discipline_key,
|
||
msd.mld_stdmelding_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
o.alg_plaatsaanduiding plaats,
|
||
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,
|
||
--d.ins_alg_ruimte_key,
|
||
--d.ins_alg_ruimte_type,
|
||
b.fac_bookmark_id
|
||
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,
|
||
sm.ins_srtinst_key ins_srtdeel_key
|
||
FROM mld_stdmelding sm
|
||
WHERE sm.mld_stdmelding_verwijder IS NULL
|
||
AND sm.ins_srtinst_niveau = 'S'
|
||
UNION ALL
|
||
SELECT sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
sd.ins_srtdeel_key
|
||
FROM mld_stdmelding sm, ins_srtdeel sd
|
||
WHERE sm.mld_stdmelding_verwijder IS NULL
|
||
AND sm.ins_srtinst_niveau = 'G'
|
||
AND sm.ins_srtinst_key = sd.ins_srtgroep_key
|
||
UNION ALL
|
||
SELECT sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
sd.ins_srtdeel_key
|
||
FROM mld_stdmelding sm, ins_srtgroep sg, ins_srtdeel sd
|
||
WHERE sm.mld_stdmelding_verwijder IS NULL
|
||
AND sm.ins_srtinst_niveau = 'D'
|
||
AND sm.ins_srtinst_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;
|
||
|
||
-- 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_functie f,
|
||
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;
|
||
|
||
|
||
BEGIN adm.systrackscript('$Workfile: aaxx.sql $', '$Revision$', 0); END;
|
||
/
|
||
COMMIT;
|