23978 lines
1.0 MiB
23978 lines
1.0 MiB
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer generic configuration sql statements for HEYDAY
|
||
|
||
DEFINE thisfile = 'AAXX.SQL'
|
||
DEFINE dbuser = 'AAXX'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SPOOL &fcltlogfile
|
||
SET DEFINE OFF
|
||
|
||
@@aa_prs_pack.sql;
|
||
|
||
--=============================================================================
|
||
-- EXPORTFUNCTIES GENERIEK
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE FUNCTION aaxx_exp_escape (a VARCHAR2) RETURN VARCHAR2
|
||
AS
|
||
BEGIN
|
||
RETURN replace(a, '"', '''');
|
||
END aaxx_exp_escape;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION aaxx_get_user
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_user VARCHAR2 (20);
|
||
BEGIN
|
||
v_user := SUBSTR (USER, 1, 4);
|
||
|
||
-- DWH views komen binnen onder user AAFM. Dan werkt get user niet meer. In dat geval
|
||
-- halen we nu de informatie uit de fac_version tabel
|
||
IF v_user = 'AAFM' THEN
|
||
SELECT UPPER(fac_version_cust)
|
||
INTO v_user
|
||
FROM fac_version;
|
||
END IF;
|
||
IF v_user = 'AAAH' THEN RETURN 'AH'; END IF;
|
||
IF v_user = 'AAAR' THEN RETURN 'ARCADIS'; END IF;
|
||
IF v_user = 'AADO' THEN RETURN 'DOW'; END IF;
|
||
IF v_user = 'AADS' THEN RETURN 'DSM'; END IF;
|
||
IF v_user = 'AAES' THEN RETURN 'ESSENT'; END IF;
|
||
IF v_user = 'AAGN' THEN RETURN 'GN'; END IF;
|
||
IF v_user = 'AAIT' THEN RETURN 'IT'; END IF;
|
||
IF v_user = 'AASA' THEN RETURN 'SABIC'; END IF;
|
||
IF v_user = 'AAVG' THEN RETURN 'VG'; END IF;
|
||
IF v_user = 'CVGZ' THEN RETURN 'VGZ'; END IF;
|
||
IF v_user = 'GULU' THEN RETURN 'GUL'; END IF;
|
||
IF v_user = 'INLO' THEN RETURN 'INLO'; END IF;
|
||
IF v_user = 'NMMS' THEN RETURN 'NMM'; END IF;
|
||
IF v_user = 'RABO' THEN RETURN 'RABO'; END IF;
|
||
IF v_user = 'SMKA' THEN RETURN 'SMKA'; END IF;
|
||
RETURN v_user;
|
||
END aaxx_get_user;
|
||
/
|
||
|
||
-- functie om geimporteerde bedragen te converteren naar getallen.
|
||
CREATE OR REPLACE FUNCTION aaxx_get_imp_float (f_float VARCHAR2)
|
||
RETURN NUMBER
|
||
AS
|
||
v_komma_pos NUMBER;
|
||
v_punt_pos NUMBER;
|
||
v_float_text VARCHAR2 (100);
|
||
BEGIN
|
||
v_punt_pos := INSTR (f_float, '.');
|
||
v_komma_pos := INSTR (f_float, ',');
|
||
|
||
IF v_punt_pos <> 0 AND v_komma_pos <> 0
|
||
THEN
|
||
IF v_punt_pos > v_komma_pos
|
||
THEN
|
||
v_float_text := REPLACE (f_float, ',', '');
|
||
ELSE
|
||
v_float_text := REPLACE (f_float, '.', '');
|
||
END IF;
|
||
ELSE
|
||
v_float_text := f_float;
|
||
END IF;
|
||
|
||
RETURN fac.safe_to_number (REPLACE (v_float_text, ',', '.'));
|
||
END;
|
||
/
|
||
|
||
|
||
-- view met gegevens over een bestelling en bestelopdracht
|
||
CREATE OR REPLACE VIEW aaxx_v_bestelgegevens
|
||
AS
|
||
SELECT boi.bes_bestelopdr_key,
|
||
bes_bestelopdr_id,
|
||
sg.ins_discipline_key,
|
||
be.mld_adres_key_lev,
|
||
be.bes_bestelling_leverdatum,
|
||
bo.prs_bedrijf_key
|
||
FROM bes_bestelling be,
|
||
bes_bestelling_item bi,
|
||
bes_bestelopdr bo,
|
||
bes_bestelopdr_item boi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg
|
||
WHERE be.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key;
|
||
|
||
|
||
-- View om de exact code van een gebouw te bepalen.
|
||
-- Dit kenmerk heeft voor de verschillende klanten een andere key.
|
||
CREATE OR REPLACE VIEW aaxx_v_exact_code_gebouw (
|
||
alg_gebouw_key,
|
||
exact_code)
|
||
AS
|
||
SELECT alg_onrgoed_key alg_gebouw_key,
|
||
alg_onrgoedkenmerk_waarde exact_code
|
||
FROM alg_onrgoedkenmerk
|
||
WHERE alg_onrgoed_niveau = 'G'
|
||
AND alg_kenmerk_key = DECODE(aaxx_get_user,
|
||
'IT', 1021,
|
||
'SABIC', 1120,
|
||
1020);
|
||
|
||
-- View om de exact code van een district te bepalen.
|
||
-- Dit kenmerk heeft potentieel voor verschillende klanten een andere key. Voor DSM en voor SMKA (zie ticket 57789)
|
||
CREATE OR REPLACE VIEW aaxx_v_exact_code_district
|
||
(
|
||
alg_district_key,
|
||
exact_code
|
||
)
|
||
AS
|
||
SELECT alg_onrgoed_key alg_district_key,
|
||
alg_onrgoedkenmerk_waarde exact_code
|
||
FROM alg_onrgoedkenmerk
|
||
WHERE alg_onrgoed_niveau = 'D'
|
||
AND alg_kenmerk_key = DECODE (aaxx_get_user, 'DSM', 1100,
|
||
'SMKA',1080,
|
||
1100);
|
||
|
||
-- View om de klantcode van een gebouw te bepalen.
|
||
-- Vooralsnog specifieke inrichting voor INLO (ticket 57359)
|
||
CREATE OR REPLACE VIEW aaxx_v_klantcode_gebouw
|
||
(
|
||
alg_gebouw_key,
|
||
klantcode
|
||
)
|
||
AS
|
||
SELECT g.alg_gebouw_key, fud.fac_usrdata_upper
|
||
FROM alg_gebouw g, alg_onrgoedkenmerk k, fac_usrdata fud
|
||
WHERE g.alg_gebouw_key = k.alg_onrgoed_key
|
||
AND k.alg_onrgoed_niveau = 'G'
|
||
AND alg_kenmerk_key = DECODE (aaxx_get_user, 'INLO', 1100, 1100)
|
||
AND fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = fud.fac_usrdata_key;
|
||
|
||
-- View om de exact code van een gebouw te bepalen op basis van een factuurkey
|
||
-- Op dit moment ondersteunen we dit alleen bij opdrachten en contracten
|
||
CREATE OR REPLACE VIEW aaxx_v_exact_code_gebouw_fac
|
||
(
|
||
fin_factuur_key,
|
||
exact_code
|
||
)
|
||
AS
|
||
SELECT fin_factuur_key, exact_code
|
||
FROM fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_v_onroerendgoed og,
|
||
aaxx_v_exact_code_gebouw eg
|
||
WHERE f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
AND og.alg_gebouw_key = eg.alg_gebouw_key
|
||
UNION ALL
|
||
SELECT fin_factuur_key, exact_code
|
||
FROM fin_factuur f, cnt_contract_plaats cp, aaxx_v_exact_code_gebouw eg
|
||
WHERE f.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp.cnt_alg_plaats_key = eg.alg_gebouw_key
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
UNION ALL
|
||
SELECT DISTINCT fin_factuur_key, exact_code
|
||
FROM fin_factuur f,
|
||
aaxx_v_bestelgegevens bg,
|
||
mld_adres ma,
|
||
aaxx_v_exact_code_gebouw eg,
|
||
alg_gebouw g
|
||
WHERE f.bes_bestelopdr_key = bg.bes_bestelopdr_key
|
||
AND bg.mld_adres_key_lev = ma.mld_adres_key(+)
|
||
AND ma.mld_adres_gebouw_ruimte = g.alg_gebouw_code(+)
|
||
AND g.alg_gebouw_key = eg.alg_gebouw_key(+);
|
||
|
||
-- View om de exact code van een district te bepalen op basis van een factuurkey
|
||
-- Op dit moment alleen nog voor DSM
|
||
CREATE OR REPLACE VIEW aaxx_v_exact_code_district_fac
|
||
(
|
||
fin_factuur_key,
|
||
exact_code
|
||
)
|
||
AS
|
||
SELECT fin_factuur_key, exact_code
|
||
FROM fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_v_allonrgoed_gegevens og,
|
||
alg_locatie l,
|
||
aaxx_v_exact_code_district aed
|
||
WHERE f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
AND og.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = aed.alg_district_key
|
||
UNION ALL
|
||
SELECT fin_factuur_key, exact_code
|
||
FROM fin_factuur f,
|
||
cnt_contract_plaats cp,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
aaxx_v_exact_code_district aed
|
||
WHERE f.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = aed.alg_district_key
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
GROUP BY fin_factuur_key, exact_code
|
||
UNION ALL
|
||
SELECT fin_factuur_key, exact_code
|
||
FROM fin_factuur f,
|
||
cnt_contract_plaats cp,
|
||
alg_locatie l,
|
||
aaxx_v_exact_code_district aed
|
||
WHERE f.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp.cnt_alg_plaats_key = l.alg_locatie_key
|
||
AND l.alg_district_key = aed.alg_district_key
|
||
AND cp.cnt_alg_plaats_code = 'L'
|
||
GROUP BY fin_factuur_key, exact_code
|
||
UNION ALL
|
||
SELECT DISTINCT fin_factuur_key, exact_code
|
||
FROM fin_factuur f,
|
||
aaxx_v_bestelgegevens bg,
|
||
mld_adres ma,
|
||
aaxx_v_exact_code_district aed,
|
||
(SELECT g.alg_gebouw_key, g.alg_gebouw_code, l.alg_district_key
|
||
FROM alg_gebouw g, alg_locatie l
|
||
WHERE g.alg_locatie_key = l.alg_locatie_key) vg
|
||
WHERE f.bes_bestelopdr_key = bg.bes_bestelopdr_key
|
||
AND bg.mld_adres_key_lev = ma.mld_adres_key(+)
|
||
AND ma.mld_adres_gebouw_ruimte = vg.alg_gebouw_code(+)
|
||
AND vg.alg_district_key = aed.alg_district_key(+);
|
||
|
||
-- View om de klantcode van een gebouw te bepalen op basis van een factuurkey
|
||
-- Vooralsnog specifieke inrichting voor INLO (ticket 57359)
|
||
CREATE OR REPLACE VIEW aaxx_v_klantcode_gebouw_fac
|
||
(
|
||
fin_factuur_key,
|
||
klantcode
|
||
)
|
||
AS
|
||
SELECT fin_factuur_key, klantcode
|
||
FROM fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_v_onroerendgoed og,
|
||
aaxx_v_klantcode_gebouw kg
|
||
WHERE f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
AND og.alg_gebouw_key = kg.alg_gebouw_key
|
||
UNION ALL
|
||
SELECT fin_factuur_key, klantcode
|
||
FROM fin_factuur f, cnt_contract_plaats cp, aaxx_v_klantcode_gebouw kg
|
||
WHERE f.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp.cnt_alg_plaats_key = kg.alg_gebouw_key
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
UNION ALL
|
||
SELECT DISTINCT fin_factuur_key, klantcode
|
||
FROM fin_factuur f,
|
||
aaxx_v_bestelgegevens bg,
|
||
mld_adres ma,
|
||
aaxx_v_klantcode_gebouw kg,
|
||
alg_gebouw g
|
||
WHERE f.bes_bestelopdr_key = bg.bes_bestelopdr_key
|
||
AND bg.mld_adres_key_lev = ma.mld_adres_key(+)
|
||
AND ma.mld_adres_gebouw_ruimte = g.alg_gebouw_code(+)
|
||
AND g.alg_gebouw_key = kg.alg_gebouw_key(+);
|
||
|
||
|
||
|
||
|
||
-- Functie om bij facturen met een btw tarief dat verlegd is, voor de verkoopfactuur toch een geldige
|
||
-- btw code te genereren. De klant moet namelijk wel BTW betalen.
|
||
CREATE OR REPLACE FUNCTION aaxx_get_verkoop_btw_code (p_btwtabelwaarde_key IN NUMBER) RETURN VARCHAR2
|
||
AS
|
||
v_verlegd NUMBER;
|
||
v_perc NUMBER(5,3);
|
||
v_code VARCHAR2(10);
|
||
v_btwtabel_key NUMBER;
|
||
|
||
BEGIN
|
||
SELECT COALESCE(fin_btwtabelwaarde_verlegd,0),
|
||
fin_btwtabelwaarde_perc,
|
||
fin_btwtabelwaarde_code,
|
||
fin_btwtabel_key
|
||
INTO v_verlegd,
|
||
v_perc,
|
||
v_code,
|
||
v_btwtabel_key
|
||
FROM fin_btwtabelwaarde
|
||
WHERE fin_btwtabelwaarde_key = p_btwtabelwaarde_key;
|
||
|
||
IF v_verlegd = 1 THEN
|
||
IF v_perc = 21 THEN v_code := 5; END IF; -- Bij 21 procent staandaard code 5 teruggeven
|
||
IF v_perc = 6 THEN v_code := 2; END IF; -- Bij 6 procent staandaard code 2 teruggeven
|
||
END IF;
|
||
|
||
IF v_verlegd = 0 AND v_code = 40 THEN v_code := 5; -- Ticket INLO#66863 (code 40 intercompany voor verkoopinterface standaard op 21%)
|
||
END IF;
|
||
|
||
RETURN v_code;
|
||
END aaxx_get_verkoop_btw_code;
|
||
/
|
||
|
||
|
||
-- script om uurlijks terugkerende scripts aan te roepen. Kan aangeroepen worden vanuit de klantomgeving
|
||
-- indien er voor die klant ook specifieke zaken dagelijks geregeld moeten worden.
|
||
CREATE OR REPLACE PROCEDURE aaxx_hourly_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
-- vul bij de opdrachten het kenmerk relatietype in voor opdrachten
|
||
-- die vandaag aangemaakt zijn. Dit doen we door naar de eerste datum in
|
||
-- de tracking te kijken.
|
||
-- het kenmerk mag niet al aanwezig zijn.
|
||
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key, mld_opdr_key, mld_kenmerkopdr_waarde)
|
||
SELECT k.mld_kenmerk_key, o.mld_opdr_key, b.prs_relatietype_key
|
||
FROM mld_opdr o,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
prs_bedrijf b
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_omschrijving = 'Relatietype'
|
||
AND o.mld_typeopdr_key = k.mld_typeopdr_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND (SELECT TRUNC (MIN (fac_tracking_datum))
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
AND fac_tracking_refkey = o.mld_opdr_key) = TRUNC (SYSDATE)
|
||
AND NOT EXISTS
|
||
(SELECT mld_kenmerkopdr_key
|
||
FROM mld_kenmerkopdr ko
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key AND ko.mld_kenmerk_key = k.mld_kenmerk_key);
|
||
|
||
-- dit zelfde gaan we nu ook bij contracten doen waar het kenmerk nog niet aanwezig is.
|
||
INSERT INTO fac_kenmerkdomein (fac_kenmerkdomein_module,
|
||
fac_kenmerkdomein_omschrijving,
|
||
fac_kenmerkdomein_objectnaam,
|
||
fac_kenmerkdomein_kolomnaam,
|
||
fac_kenmerkdomein_kolomtxt,
|
||
fac_kenmerkdomein_verval)
|
||
SELECT 'CNT',
|
||
'PRS_RELATIETYPE',
|
||
'PRS_RELATIETYPE',
|
||
'PRS_RELATIETYPE_KEY',
|
||
'PRS_RELATIETYPE_OMSCHRIJVING',
|
||
'PRS_RELATIETYPE_VERWIJDER'
|
||
FROM DUAL
|
||
WHERE NOT EXISTS
|
||
(SELECT fac_kenmerkdomein_key
|
||
FROM fac_kenmerkdomein
|
||
WHERE fac_kenmerkdomein_module = 'CNT'
|
||
AND fac_kenmerkdomein_objectnaam = 'PRS_RELATIETYPE');
|
||
|
||
INSERT INTO cnt_srtkenmerk (cnt_srtkenmerk_omschrijving, cnt_srtkenmerk_kenmerktype, fac_kenmerkdomein_key)
|
||
SELECT 'Relatietype', 'R', fac_kenmerkdomein_key
|
||
FROM fac_kenmerkdomein
|
||
WHERE fac_kenmerkdomein_module = 'CNT'
|
||
AND fac_kenmerkdomein_objectnaam = 'PRS_RELATIETYPE'
|
||
AND NOT EXISTS (SELECT cnt_srtkenmerk_key
|
||
FROM cnt_srtkenmerk
|
||
WHERE cnt_srtkenmerk_omschrijving = 'Relatietype');
|
||
|
||
INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key,
|
||
cnt_srtcontract_key,
|
||
cnt_kenmerk_niveau,
|
||
cnt_kenmerk_toonbaar,
|
||
cnt_kenmerk_volgnummer)
|
||
SELECT cnt_srtkenmerk_key,
|
||
ins_discipline_key,
|
||
'S',
|
||
1,
|
||
100
|
||
FROM cnt_srtkenmerk sk, cnt_discipline d
|
||
WHERE cnt_srtkenmerk_omschrijving = 'Relatietype'
|
||
AND NOT EXISTS
|
||
(SELECT cnt_kenmerk_key
|
||
FROM cnt_kenmerk k
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND k.cnt_srtcontract_key = d.ins_discipline_key);
|
||
|
||
INSERT INTO cnt_kenmerkcontract (cnt_kenmerk_key, cnt_contract_key, cnt_kenmerkcontract_waarde)
|
||
SELECT k.cnt_kenmerk_key, c.cnt_contract_key, b.prs_relatietype_key
|
||
FROM cnt_contract c,
|
||
cnt_kenmerk k,
|
||
cnt_srtkenmerk sk,
|
||
prs_bedrijf b
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_omschrijving = 'Relatietype'
|
||
AND c.ins_discipline_key = k.cnt_srtcontract_key
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_relatietype_key IS NOT NULL
|
||
AND NOT EXISTS
|
||
(SELECT cnt_kenmerkcontract_key
|
||
FROM cnt_kenmerkcontract kc
|
||
WHERE kc.cnt_contract_key = c.cnt_contract_key
|
||
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key);
|
||
|
||
-- dit zelfde gaan we nu ook bij bestellingen doen waar het kenmerk nog niet aanwezig is.
|
||
INSERT INTO fac_kenmerkdomein (fac_kenmerkdomein_module,
|
||
fac_kenmerkdomein_omschrijving,
|
||
fac_kenmerkdomein_objectnaam,
|
||
fac_kenmerkdomein_kolomnaam,
|
||
fac_kenmerkdomein_kolomtxt,
|
||
fac_kenmerkdomein_verval)
|
||
SELECT 'BES',
|
||
'PRS_RELATIETYPE',
|
||
'PRS_RELATIETYPE',
|
||
'PRS_RELATIETYPE_KEY',
|
||
'PRS_RELATIETYPE_OMSCHRIJVING',
|
||
'PRS_RELATIETYPE_VERWIJDER'
|
||
FROM DUAL
|
||
WHERE NOT EXISTS
|
||
(SELECT fac_kenmerkdomein_key
|
||
FROM fac_kenmerkdomein
|
||
WHERE fac_kenmerkdomein_module = 'BES'
|
||
AND fac_kenmerkdomein_objectnaam = 'PRS_RELATIETYPE');
|
||
|
||
INSERT INTO bes_srtkenmerk (bes_srtkenmerk_omschrijving, bes_srtkenmerk_kenmerktype, fac_kenmerkdomein_key)
|
||
SELECT 'Relatietype', 'R', fac_kenmerkdomein_key
|
||
FROM fac_kenmerkdomein
|
||
WHERE fac_kenmerkdomein_module = 'BES'
|
||
AND fac_kenmerkdomein_objectnaam = 'PRS_RELATIETYPE'
|
||
AND NOT EXISTS (SELECT bes_srtkenmerk_key
|
||
FROM bes_srtkenmerk
|
||
WHERE bes_srtkenmerk_omschrijving = 'Relatietype');
|
||
|
||
INSERT INTO bes_kenmerk (bes_srtkenmerk_key,
|
||
bes_srtinstallatie_key,
|
||
bes_kenmerk_type,
|
||
bes_kenmerk_niveau,
|
||
bes_kenmerk_toonbaar,
|
||
bes_kenmerk_volgnummer)
|
||
SELECT bes_srtkenmerk_key,
|
||
ins_discipline_key,
|
||
'B',
|
||
'D',
|
||
1,
|
||
100
|
||
FROM bes_srtkenmerk sk, bes_discipline d
|
||
WHERE bes_srtkenmerk_omschrijving = 'Relatietype'
|
||
AND NOT EXISTS
|
||
(SELECT bes_kenmerk_key
|
||
FROM bes_kenmerk k
|
||
WHERE k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
|
||
AND k.bes_srtinstallatie_key = d.ins_discipline_key);
|
||
|
||
INSERT INTO bes_kenmerkbestell (bes_kenmerk_key, bes_bestelling_key, bes_kenmerkbestell_waarde)
|
||
SELECT k.bes_kenmerk_key, bi.bes_bestelling_key, bd.prs_relatietype_key
|
||
FROM bes_bestelling_item bi,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelopdr bo,
|
||
bes_kenmerk k,
|
||
bes_srtkenmerk sk,
|
||
prs_bedrijf bd,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg
|
||
WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND bo.prs_bedrijf_key = bd.prs_bedrijf_key
|
||
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
|
||
AND sk.bes_srtkenmerk_omschrijving = 'Relatietype'
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = k.bes_srtinstallatie_key
|
||
AND bd.prs_relatietype_key IS NOT NULL
|
||
AND NOT EXISTS
|
||
(SELECT bes_kenmerkbestell_key
|
||
FROM bes_kenmerkbestell kb
|
||
WHERE kb.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND kb.bes_kenmerk_key = k.bes_kenmerk_key)
|
||
GROUP BY k.bes_kenmerk_key, bi.bes_bestelling_key, bd.prs_relatietype_key;
|
||
|
||
END;
|
||
/
|
||
|
||
-- script om dagelijks terugkerende scripts aan te roepen. Indien er geen klantspecifieke versie is.
|
||
CREATE OR REPLACE PROCEDURE aaxx_select_hourly_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
aaxx_hourly_task (p_applname, p_applrun);
|
||
END;
|
||
/
|
||
|
||
-- script om dagelijks terugkerende scripts aan te roepen. Kan aangeroepen worden vanuit de klantomgeving
|
||
-- indien er voor die klant ook specifieke zaken dagelijks geregeld moeten worden.
|
||
CREATE OR REPLACE PROCEDURE aaxx_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
-- job om flexkenmerken bij projectorders in te vullen
|
||
IF aaxx_get_user <> 'GUL' THEN
|
||
aaxx_select_dwh_set_kenmerken (p_applname, p_applrun);
|
||
END IF;
|
||
|
||
-- job om gebruikers die recentelijk niet ingelogd zijn de rechten te ontnemen.
|
||
IF aaxx_get_user = 'ARCADIS' -- AAAR#26433 / weer aangezet AAAR#60481
|
||
OR aaxx_get_user = 'DOW'
|
||
OR aaxx_get_user = 'DSM'
|
||
OR aaxx_get_user = 'SABIC'
|
||
OR aaxx_get_user = 'GUL'
|
||
OR aaxx_get_user = 'ESSENT' -- AAES#65629
|
||
THEN
|
||
aaxx_delete_non_active_users (p_applname, p_applrun);
|
||
END IF;
|
||
|
||
-- verwijder key users met ORDBO2 rechten
|
||
IF -- aaxx_get_user = 'ARCADIS' AAAR#26433
|
||
-- OR
|
||
aaxx_get_user = 'AH'
|
||
OR aaxx_get_user = 'DOW'
|
||
OR aaxx_get_user = 'DSM'
|
||
OR aaxx_get_user = 'SABIC'
|
||
OR aaxx_get_user = 'VG'
|
||
OR aaxx_get_user = 'GUL'
|
||
OR aaxx_get_user = 'NMM'
|
||
OR aaxx_get_user = 'RABO'
|
||
THEN
|
||
aaxx_delete_non_active_key (p_applname, p_applrun);
|
||
END IF;
|
||
|
||
-- Haal de mensen die we zojuist de login hebben ontnomen ook uit de autorisatiegroepen.
|
||
DELETE fac_gebruikersgroep gg
|
||
WHERE EXISTS
|
||
(SELECT p.prs_perslid_key
|
||
FROM prs_perslid p
|
||
WHERE prs_perslid_oslogin IS NULL
|
||
AND prs_perslid_oslogin2 IS NULL
|
||
AND p.prs_perslid_key = gg.prs_perslid_key);
|
||
|
||
-- job om bij to houden welke gebruikers vandaag ingelogd zijn geweest.
|
||
aaxx_export_login (p_applname, p_applrun);
|
||
|
||
-- job om complimenten af te melden.
|
||
aaxx_afmelden_complimenten (p_applname, p_applrun);
|
||
|
||
-- job om ordercorrecties door te voeren.
|
||
aaxx_ordercorrecties (p_applname, p_applrun);
|
||
END;
|
||
/
|
||
|
||
-- script om dagelijks terugkerende scripts aan te roepen. Indien er geen klantspecifieke versie is.
|
||
CREATE OR REPLACE PROCEDURE aaxx_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
aaxx_daily_task (p_applname, p_applrun);
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_imp_writelog (
|
||
p_import_key IN NUMBER,
|
||
p_severity IN VARCHAR2,
|
||
p_errormsg IN VARCHAR2,
|
||
p_errorhint IN VARCHAR2)
|
||
AS
|
||
PRAGMA AUTONOMOUS_TRANSACTION;
|
||
BEGIN
|
||
fac.imp_writelog (p_import_key,
|
||
p_severity,
|
||
SUBSTR(p_errormsg,1,1000),
|
||
SUBSTR(p_errorhint,1,1000));
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_add_xml_row_p (
|
||
p_bestand IN VARCHAR2,
|
||
p_prefix 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_prefix || p_regel);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_add_xml_element_p (
|
||
p_bestand IN VARCHAR2,
|
||
p_prefix IN VARCHAR2,
|
||
p_tag IN VARCHAR2,
|
||
p_value IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
aaxx_add_xml_row_p(p_bestand,
|
||
p_prefix,
|
||
'<' || p_tag || '>'
|
||
|| xml.char_to_html(p_value)
|
||
|| '</' || p_tag || '>');
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_add_xml_row (
|
||
p_bestand IN VARCHAR2,
|
||
p_regel IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
aaxx_add_xml_row_p (p_bestand, NULL, 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_element_p (p_bestand, NULL, p_tag, p_value);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION aaxx_get_kenmerk (p_module IN VARCHAR2,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_link_key IN NUMBER)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_kenmerk_type mld_srtkenmerk.mld_srtkenmerk_kenmerktype%TYPE;
|
||
v_kenmerk_waarde mld_kenmerkmelding.mld_kenmerkmelding_waarde%TYPE;
|
||
v_kenmerkdomein_key fac_kenmerkdomein.fac_kenmerkdomein_key%TYPE;
|
||
v_kenmerk_niveau ins_kenmerk.ins_kenmerk_niveau%TYPE;
|
||
BEGIN
|
||
CASE p_module
|
||
WHEN 'MLD'
|
||
THEN
|
||
SELECT mld_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
km.mld_kenmerkmelding_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM mld_v_aanwezigkenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE km.mld_melding_key = p_link_key
|
||
AND km.mld_kenmerk_key = p_kenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||
WHEN 'CNT'
|
||
THEN
|
||
SELECT cnt_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
kc.cnt_kenmerkcontract_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM cnt_kenmerkcontract kc,
|
||
cnt_kenmerk k,
|
||
cnt_srtkenmerk sk
|
||
WHERE kc.cnt_contract_key = p_link_key
|
||
AND kc.cnt_kenmerk_key = p_kenmerk_key
|
||
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
||
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key;
|
||
WHEN 'ALG'
|
||
THEN
|
||
SELECT alg_kenmerk_kenmerktype,
|
||
k.fac_kenmerkdomein_key,
|
||
aogk.alg_onrgoedkenmerk_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
|
||
WHERE aogk.alg_onrgoed_key = p_link_key
|
||
AND aogk.alg_kenmerk_key = p_kenmerk_key
|
||
AND aogk.alg_kenmerk_key = k.alg_kenmerk_key;
|
||
WHEN 'INS'
|
||
THEN
|
||
SELECT k.ins_kenmerk_niveau
|
||
INTO v_kenmerk_niveau
|
||
FROM ins_kenmerk k
|
||
WHERE ins_kenmerk_key = p_kenmerk_key;
|
||
|
||
IF v_kenmerk_niveau = 'C' THEN
|
||
SELECT sk.ins_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
ikds.ins_kmdeelsrtcontr_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM ins_kmdeelsrtcontr ikds, ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE ikds.ins_deelsrtcontrole_key = p_link_key
|
||
AND ikds.ins_kmdeelsrtcontr_verwijder IS NULL
|
||
AND ikds.ins_kenmerk_key = p_kenmerk_key
|
||
AND ikds.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
|
||
ELSE
|
||
SELECT sk.ins_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
ikd.ins_kenmerkdeel_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM ins_kenmerkdeel ikd, ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE ikd.ins_deel_key = p_link_key
|
||
AND ikd.ins_kenmerkdeel_verwijder IS NULL
|
||
AND ikd.ins_kenmerk_key = p_kenmerk_key
|
||
AND ikd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
|
||
END IF;
|
||
END CASE;
|
||
|
||
RETURN aaxx_get_kenmerkwaarde (v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde);
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE FUNCTION aaxx_get_kenmerkwaarde (
|
||
p_kenmerk_type VARCHAR2,
|
||
p_kenmerkdomein_key NUMBER,
|
||
p_kenmerk_waarde VARCHAR2)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_result VARCHAR2(4000);
|
||
BEGIN
|
||
IF p_kenmerk_type = 'R' OR p_kenmerk_type = 'S' THEN
|
||
v_result := fac.getdomeinwaarde (p_kenmerkdomein_key,
|
||
p_kenmerk_waarde);
|
||
ELSIF p_kenmerk_type = 'D' THEN
|
||
v_result := TO_CHAR (fac.safe_to_date (p_kenmerk_waarde, 'dd-mm-yyyy'), 'yyyy-mm-dd');
|
||
ELSE
|
||
v_result := p_kenmerk_waarde;
|
||
END IF;
|
||
return v_result;
|
||
END aaxx_get_kenmerkwaarde;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_set_kenmerk(p_module IN VARCHAR2,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_link_key IN NUMBER,
|
||
p_kenmerk_waarde IN VARCHAR2,
|
||
p_history IN NUMBER)
|
||
AS
|
||
v_count NUMBER;
|
||
v_niveau VARCHAR2 (1);
|
||
BEGIN
|
||
CASE p_module
|
||
WHEN 'PRS'
|
||
THEN
|
||
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
|
||
-- opgeslagen (da's dus redundant..?)
|
||
SELECT prs_kenmerk_niveau
|
||
INTO v_niveau
|
||
FROM prs_kenmerk
|
||
WHERE prs_kenmerk_key = p_kenmerk_key;
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM prs_kenmerklink
|
||
WHERE prs_link_key = p_link_key
|
||
AND prs_kenmerk_key = p_kenmerk_key
|
||
AND prs_kenmerklink_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE prs_kenmerklink
|
||
WHERE prs_link_key = p_link_key
|
||
AND prs_kenmerk_key = p_kenmerk_key
|
||
AND prs_kenmerklink_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE prs_kenmerklink
|
||
SET prs_kenmerklink_waarde = p_kenmerk_waarde
|
||
WHERE prs_link_key = p_link_key
|
||
AND prs_kenmerk_key = p_kenmerk_key
|
||
AND prs_kenmerklink_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO prs_kenmerklink (prs_kenmerk_key,
|
||
prs_link_key,
|
||
prs_kenmerklink_niveau,
|
||
prs_kenmerklink_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
v_niveau,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
|
||
WHEN 'ALG'
|
||
THEN
|
||
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
|
||
-- opgeslagen (da's dus redundant..?)
|
||
SELECT alg_kenmerk_niveau
|
||
INTO v_niveau
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_key = p_kenmerk_key;
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM alg_onrgoedkenmerk
|
||
WHERE alg_onrgoed_key = p_link_key
|
||
AND alg_kenmerk_key = p_kenmerk_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE alg_onrgoedkenmerk
|
||
WHERE alg_onrgoed_key = p_link_key
|
||
AND alg_kenmerk_key = p_kenmerk_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE alg_onrgoedkenmerk
|
||
SET alg_onrgoedkenmerk_waarde = p_kenmerk_waarde
|
||
WHERE alg_onrgoed_key = p_link_key
|
||
AND alg_kenmerk_key = p_kenmerk_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO alg_onrgoedkenmerk (alg_kenmerk_key,
|
||
alg_onrgoed_key,
|
||
alg_onrgoed_niveau,
|
||
alg_onrgoedkenmerk_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
v_niveau,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
|
||
WHEN 'MLD'
|
||
THEN
|
||
-- melding- of opdrachtkenmerk?
|
||
SELECT mld_kenmerk_niveau
|
||
INTO v_niveau
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = p_kenmerk_key;
|
||
|
||
CASE v_niveau
|
||
WHEN 'O'
|
||
THEN
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM mld_kenmerkopdr
|
||
WHERE mld_opdr_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkopdr_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE mld_kenmerkopdr
|
||
WHERE mld_opdr_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkopdr_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE mld_kenmerkopdr
|
||
SET mld_kenmerkopdr_waarde = p_kenmerk_waarde
|
||
WHERE mld_opdr_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkopdr_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key,
|
||
mld_opdr_key,
|
||
mld_kenmerkopdr_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
WHEN 'S'
|
||
THEN
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM mld_kenmerkmelding
|
||
WHERE mld_melding_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE mld_kenmerkmelding
|
||
WHERE mld_melding_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE mld_kenmerkmelding
|
||
SET mld_kenmerkmelding_waarde = p_kenmerk_waarde
|
||
WHERE mld_melding_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO mld_kenmerkmelding (mld_kenmerk_key,
|
||
mld_melding_key,
|
||
mld_kenmerkmelding_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
END CASE;
|
||
WHEN 'RES'
|
||
THEN
|
||
-- melding- of opdrachtkenmerk?
|
||
SELECT res_kenmerk_niveau
|
||
INTO v_niveau
|
||
FROM res_kenmerk
|
||
WHERE res_kenmerk_key = p_kenmerk_key;
|
||
|
||
CASE v_niveau
|
||
WHEN 'A'
|
||
THEN
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM res_kenmerkwaarde
|
||
WHERE res_rsv_ruimte_key = p_link_key
|
||
AND res_kenmerk_key = p_kenmerk_key
|
||
AND res_kenmerkwaarde_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE res_kenmerkwaarde
|
||
WHERE res_rsv_ruimte_key = p_link_key
|
||
AND res_kenmerk_key = p_kenmerk_key
|
||
AND res_kenmerkwaarde_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE res_kenmerkwaarde
|
||
SET res_kenmerkreservering_waarde = p_kenmerk_waarde
|
||
WHERE res_rsv_ruimte_key = p_link_key
|
||
AND res_kenmerk_key = p_kenmerk_key
|
||
AND res_kenmerkwaarde_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO res_kenmerkwaarde (res_kenmerk_key,
|
||
res_rsv_ruimte_key,
|
||
res_kenmerkreservering_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
-- Voorlopig alleen op ruimte niveau.
|
||
END CASE;
|
||
WHEN 'FIN'
|
||
THEN
|
||
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
|
||
-- opgeslagen (da's dus redundant..?)
|
||
SELECT fin_kenmerk_type
|
||
INTO v_niveau
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_key = p_kenmerk_key;
|
||
|
||
|
||
IF v_niveau = 'F'
|
||
THEN
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_factuur_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactuur_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE fin_kenmerkfactuur
|
||
WHERE fin_factuur_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactuur_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE fin_kenmerkfactuur
|
||
SET fin_kenmerkfactuur_waarde = p_kenmerk_waarde
|
||
WHERE fin_factuur_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactuur_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO fin_kenmerkfactuur (fin_kenmerk_key,
|
||
fin_factuur_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
ELSE
|
||
-- Kenmerk bij factuurregel
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM fin_kenmerkfactregel
|
||
WHERE fin_factuurregel_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactregel_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE fin_kenmerkfactregel
|
||
WHERE fin_factuurregel_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactregel_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE fin_kenmerkfactregel
|
||
SET fin_kenmerkfactregel_waarde = p_kenmerk_waarde
|
||
WHERE fin_factuurregel_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactregel_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO fin_kenmerkfactregel (fin_kenmerk_key,
|
||
fin_factuurregel_key,
|
||
fin_kenmerkfactregel_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
|
||
END IF;
|
||
END CASE;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION aaxx_get_NEN2767_kenmerkwaarde (p_melding_key IN NUMBER, p_srtkenmerk_code IN VARCHAR2)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_kenmerkwaarde MLD_KENMERKMELDING.MLD_KENMERKMELDING_WAARDE%TYPE;
|
||
BEGIN
|
||
SELECT mld_kenmerkmelding_waarde
|
||
INTO v_kenmerkwaarde
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_code = p_srtkenmerk_code
|
||
AND km.mld_melding_key = p_melding_key;
|
||
RETURN v_kenmerkwaarde;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
RETURN NULL;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION aaxx_get_NEN2767_instelling (p_instelling IN VARCHAR2)
|
||
RETURN NUMBER
|
||
AS
|
||
v_usrdata_prijs NUMBER;
|
||
BEGIN
|
||
SELECT ud.fac_usrdata_prijs
|
||
INTO v_usrdata_prijs
|
||
FROM fac_usrdata ud, fac_usrtab ut
|
||
WHERE ud.fac_usrtab_key = ut.fac_usrtab_key
|
||
AND ut.fac_usrtab_naam = '$PlatoNEN2727'
|
||
AND ud.fac_usrdata_code = p_instelling
|
||
AND ud.fac_usrdata_verwijder IS NULL;
|
||
|
||
RETURN v_usrdata_prijs;
|
||
END;
|
||
/
|
||
CREATE OR REPLACE FUNCTION aaxx_get_cnt_cont_plaats_index (p_contract_plaats_key number
|
||
)
|
||
RETURN NUMBER
|
||
AS
|
||
CURSOR c (c_cnt_contract_key number)
|
||
IS
|
||
SELECT cnt_contract_plaats_key
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_key = c_cnt_contract_key
|
||
ORDER BY cnt_contract_plaats_key;
|
||
|
||
v_contract_key NUMBER (10);
|
||
v_index NUMBER (10);
|
||
BEGIN
|
||
v_index := 1;
|
||
|
||
SELECT cnt_contract_key
|
||
INTO v_contract_key
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_plaats_key = p_contract_plaats_key;
|
||
|
||
FOR rec IN c(v_contract_key)
|
||
LOOP
|
||
IF rec.cnt_contract_plaats_key = p_contract_plaats_key
|
||
THEN
|
||
RETURN (v_index);
|
||
END IF;
|
||
|
||
v_index := v_index + 1;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION aaxx_get_dep_code (p_prs_kostenplaats_nr VARCHAR2) RETURN VARCHAR2
|
||
AS
|
||
v_result VARCHAR2(100);
|
||
BEGIN
|
||
v_result := 'Onbekend - ' || p_prs_kostenplaats_nr;
|
||
BEGIN
|
||
SELECT prs_afdeling_upper
|
||
INTO v_result
|
||
FROM prs_v_aanwezigafdeling a, prs_kostenplaats k
|
||
WHERE niveau = 1
|
||
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND k.prs_kostenplaats_nr = p_prs_kostenplaats_nr;
|
||
RETURN v_result;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
BEGIN
|
||
SELECT prs_afdeling_upper
|
||
INTO v_result
|
||
FROM prs_v_aanwezigafdeling a, prs_kostenplaats k
|
||
WHERE niveau = 2
|
||
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND k.prs_kostenplaats_nr = p_prs_kostenplaats_nr;
|
||
RETURN v_result;
|
||
EXCEPTION WHEN OTHERS
|
||
THEN
|
||
RETURN v_result;
|
||
END;
|
||
END;
|
||
END aaxx_get_dep_code;
|
||
/
|
||
|
||
-- zoek naar de afdelingscode van het hoogste niveau afdeling
|
||
CREATE OR REPLACE FUNCTION aaxx_get_top_dep_code (p_prs_kostenplaats_nr VARCHAR2) RETURN VARCHAR2
|
||
AS
|
||
CURSOR c IS
|
||
SELECT ta.prs_afdeling_naam
|
||
FROM prs_kostenplaats kp,
|
||
prs_afdeling a,
|
||
prs_v_afdeling_boom ab,
|
||
prs_afdeling ta
|
||
WHERE kp.prs_kostenplaats_key = a.prs_kostenplaats_key
|
||
AND a.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key1 = ta.prs_afdeling_key
|
||
AND kp.prs_kostenplaats_nr = p_prs_kostenplaats_nr
|
||
ORDER BY COALESCE(a.prs_afdeling_verwijder, sysdate) DESC;
|
||
v_result VARCHAR2(100);
|
||
|
||
BEGIN
|
||
v_result := 'Onbekend - ' || p_prs_kostenplaats_nr;
|
||
BEGIN
|
||
FOR rec IN C
|
||
LOOP
|
||
BEGIN
|
||
RETURN rec.prs_afdeling_naam;
|
||
END;
|
||
END LOOP;
|
||
RETURN v_result;
|
||
EXCEPTION WHEN OTHERS THEN
|
||
RETURN v_result;
|
||
END;
|
||
END aaxx_get_top_dep_code;
|
||
/
|
||
|
||
|
||
-- zoek naar de bedrijf_key van het hoogste niveau afdeling
|
||
CREATE OR REPLACE FUNCTION aaxx_get_top_bedrijf_key (p_prs_kostenplaats_nr VARCHAR2) RETURN NUMBER
|
||
AS
|
||
CURSOR c IS
|
||
SELECT ta.prs_afdeling_naam, ta.prs_bedrijf_key
|
||
FROM prs_kostenplaats kp,
|
||
prs_afdeling a,
|
||
prs_v_afdeling_boom ab,
|
||
prs_afdeling ta
|
||
WHERE kp.prs_kostenplaats_key = a.prs_kostenplaats_key
|
||
AND a.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key1 = ta.prs_afdeling_key
|
||
AND kp.prs_kostenplaats_nr = p_prs_kostenplaats_nr
|
||
ORDER BY COALESCE(a.prs_afdeling_verwijder, sysdate) DESC;
|
||
v_result NUMBER;
|
||
|
||
BEGIN
|
||
v_result := NULL;
|
||
BEGIN
|
||
FOR rec IN C
|
||
LOOP
|
||
BEGIN
|
||
RETURN rec.prs_bedrijf_key;
|
||
END;
|
||
END LOOP;
|
||
RETURN v_result;
|
||
EXCEPTION WHEN OTHERS THEN
|
||
RETURN v_result;
|
||
END;
|
||
END aaxx_get_top_bedrijf_key;
|
||
/
|
||
|
||
-- zoek naar de kostenplaats_key van het hoogste niveau afdeling
|
||
CREATE OR REPLACE FUNCTION aaxx_get_top_kpn_key (p_prs_kostenplaats_key NUMBER) RETURN VARCHAR2
|
||
AS
|
||
CURSOR c IS
|
||
SELECT ta.prs_kostenplaats_key
|
||
FROM prs_afdeling a,
|
||
prs_v_afdeling_boom ab,
|
||
prs_afdeling ta
|
||
WHERE p_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
|
||
ORDER BY COALESCE(a.prs_afdeling_verwijder, sysdate) DESC;
|
||
v_result NUMBER;
|
||
|
||
BEGIN
|
||
v_result := NULL;
|
||
BEGIN
|
||
FOR rec IN C
|
||
LOOP
|
||
BEGIN
|
||
RETURN rec.prs_kostenplaats_key;
|
||
END;
|
||
END LOOP;
|
||
RETURN v_result;
|
||
EXCEPTION WHEN OTHERS THEN
|
||
RETURN v_result;
|
||
END;
|
||
END aaxx_get_top_kpn_key;
|
||
/
|
||
|
||
-- Zoek bovenliggende afdelingsniveau 1 en de daarbij vastgelegde kostenplaats bij kenmerkwaarde-veld 'Kostenplaats'
|
||
-- Nieuwe structuur voor interface voor bepaling DEBITEUR voor SMKA (zie ticket 57797)
|
||
CREATE OR REPLACE FUNCTION aaxx_get_top_afdeling_kpkenm (p_prs_kostenplaats_key VARCHAR2) RETURN VARCHAR2
|
||
AS
|
||
CURSOR c IS
|
||
SELECT kp.prs_kostenplaats_nr
|
||
FROM prs_kenmerklink km,
|
||
prs_kostenplaats kp,
|
||
(SELECT kp.prs_kostenplaats_key,
|
||
a.prs_afdeling_key,
|
||
ab.prs_afdeling_key1
|
||
FROM prs_afdeling a, prs_v_afdeling_boom ab, prs_kostenplaats kp
|
||
WHERE a.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND a.prs_kostenplaats_key = p_prs_kostenplaats_key
|
||
AND prs_afdeling_verwijder IS NULL) v
|
||
WHERE km.prs_link_key = v.prs_afdeling_key1
|
||
AND km.prs_kenmerklink_niveau = 'A'
|
||
AND km.prs_kenmerklink_waarde = kp.prs_kostenplaats_key
|
||
AND km.prs_kenmerk_key = 1000 ;
|
||
v_result VARCHAR2(100);
|
||
|
||
BEGIN
|
||
v_result := '';
|
||
BEGIN
|
||
FOR rec IN C
|
||
LOOP
|
||
BEGIN
|
||
RETURN rec.prs_kostenplaats_nr;
|
||
END;
|
||
END LOOP;
|
||
RETURN v_result;
|
||
EXCEPTION WHEN OTHERS THEN
|
||
RETURN v_result;
|
||
END;
|
||
END aaxx_get_top_afdeling_kpkenm;
|
||
/
|
||
|
||
|
||
-- zoek naar de afdelingscode van het <20><>n na hoogste niveau afdeling
|
||
CREATE OR REPLACE FUNCTION aaxx_get_lev2_dep_code (p_prs_kostenplaats_nr VARCHAR2) RETURN VARCHAR2
|
||
AS
|
||
v_result VARCHAR2(100);
|
||
BEGIN
|
||
v_result := 'Onbekend - ' || p_prs_kostenplaats_nr;
|
||
BEGIN
|
||
SELECT ta.prs_afdeling_naam
|
||
INTO v_result
|
||
FROM prs_kostenplaats kp,
|
||
prs_afdeling a,
|
||
prs_v_afdeling_boom ab,
|
||
prs_afdeling ta
|
||
WHERE kp.prs_kostenplaats_key = a.prs_kostenplaats_key
|
||
AND a.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key2 = ta.prs_afdeling_key
|
||
AND kp.prs_kostenplaats_nr = p_prs_kostenplaats_nr;
|
||
RETURN v_result;
|
||
EXCEPTION WHEN OTHERS THEN
|
||
RETURN v_result;
|
||
END;
|
||
END aaxx_get_lev2_dep_code;
|
||
/
|
||
|
||
CREATE OR REPLACE FUNCTION aaxx_bestelling_items (bes_key IN NUMBER)
|
||
RETURN VARCHAR2
|
||
IS
|
||
lret VARCHAR2 (512);
|
||
lfirst NUMBER;
|
||
llast NUMBER;
|
||
|
||
CURSOR items
|
||
IS
|
||
SELECT TO_CHAR (bi.bes_bestelling_item_aantal)
|
||
|| 'x '
|
||
|| s.bes_srtdeel_omschrijving /* lcl.x()?*/
|
||
|| ' ('
|
||
|| s.bes_srtdeel_eenheid
|
||
|| ') ' besitemdsc
|
||
FROM bes_bestelling_item bi, bes_srtdeel s
|
||
WHERE bi.bes_srtdeel_key = s.bes_srtdeel_key
|
||
AND bi.bes_bestelling_key = bes_key;
|
||
BEGIN
|
||
lret := NULL;
|
||
lfirst := 0;
|
||
llast := 0;
|
||
|
||
FOR besitem_rec IN items
|
||
LOOP
|
||
IF lfirst = 0
|
||
THEN
|
||
BEGIN
|
||
lret := besitem_rec.besitemdsc;
|
||
lfirst := 1;
|
||
END;
|
||
ELSE
|
||
IF llast = 0
|
||
THEN
|
||
IF LENGTH (lret) + LENGTH (besitem_rec.besitemdsc) < (512 - 5)
|
||
THEN
|
||
lret := lret || CHR (10) || besitem_rec.besitemdsc;
|
||
ELSE
|
||
lret := lret || CHR (10) || '...';
|
||
llast := 1;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
RETURN lret;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_delete_non_active_users (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
UPDATE prs_perslid p
|
||
SET prs_perslid_oslogin = NULL,
|
||
prs_perslid_oslogin2 = NULL
|
||
WHERE prs_perslid_verwijder IS NULL
|
||
AND (prs_perslid_oslogin IS NOT NULL OR prs_perslid_oslogin2 IS NOT NULL)
|
||
AND ( SYSDATE - prs_perslid_aanmaak > 90
|
||
AND ( prs_perslid_login IS NULL
|
||
OR SYSDATE - prs_perslid_login > 90
|
||
)
|
||
)
|
||
AND NOT EXISTS
|
||
(SELECT fac_groep_omschrijving
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE p.prs_perslid_key = gg.prs_perslid_key
|
||
AND gg.fac_groep_key = g.fac_groep_key
|
||
AND UPPER(g.fac_groep_omschrijving) LIKE '%EXTENDED LOGIN%'
|
||
AND SYSDATE - prs_perslid_login < 276)
|
||
AND NOT EXISTS
|
||
( SELECT fac_tracking_refkey
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE fac_tracking_refkey = p.prs_perslid_key
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'PRSUPD'
|
||
AND SYSDATE - t.fac_tracking_datum < 90)
|
||
AND NOT EXISTS
|
||
( SELECT prs_afdeling_key
|
||
FROM prs_afdeling a
|
||
WHERE a.prs_afdeling_key = p.prs_afdeling_key
|
||
AND (a.prs_afdeling_omschrijving = 'AAFM' OR a.prs_afdeling_naam = 'HEYDAY'))
|
||
AND SUBSTR(COALESCE(prs_perslid_oslogin, 'Q'), 1, 1) <> '_'
|
||
AND NOT EXISTS
|
||
( SELECT prs_srtperslid_key
|
||
FROM prs_srtperslid ps
|
||
WHERE ps.prs_srtperslid_key = p.prs_srtperslid_key
|
||
AND prs_srtperslid_verwijder IS NULL
|
||
AND UPPER (ps.prs_srtperslid_omschrijving) = 'LEV AFMELDSCHERM');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_delete_non_active_key (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
UPDATE prs_perslid p
|
||
SET prs_perslid_oslogin = NULL,
|
||
prs_perslid_oslogin2 = NULL
|
||
WHERE prs_perslid_verwijder IS NULL
|
||
AND (prs_perslid_oslogin IS NOT NULL OR prs_perslid_oslogin2 IS NOT NULL)
|
||
AND ( SYSDATE - prs_perslid_aanmaak > 30
|
||
AND ( prs_perslid_login IS NULL
|
||
OR SYSDATE - prs_perslid_login > 30
|
||
)
|
||
)
|
||
AND EXISTS
|
||
( SELECT gg.fac_groep_key
|
||
FROM fac_gebruikersgroep gg, fac_groeprechten gr, fac_functie f
|
||
WHERE f.fac_functie_key = gr.fac_functie_key
|
||
AND f.fac_functie_code = 'WEB_EXTORD'
|
||
AND gr.fac_groep_key = gg.fac_groep_key
|
||
AND gg.prs_perslid_key = p.prs_perslid_key)
|
||
AND NOT EXISTS
|
||
( SELECT fac_tracking_refkey
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE fac_tracking_refkey = p.prs_perslid_key
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'PRSUPD'
|
||
AND SYSDATE - t.fac_tracking_datum < 30)
|
||
AND NOT EXISTS
|
||
( SELECT prs_afdeling_key
|
||
FROM prs_afdeling a
|
||
WHERE a.prs_afdeling_key = p.prs_afdeling_key
|
||
AND (a.prs_afdeling_omschrijving = 'AAFM' OR a.prs_afdeling_naam = 'HEYDAY'))
|
||
AND SUBSTR(COALESCE(prs_perslid_oslogin, 'Q'), 1, 1) <> '_'
|
||
AND NOT EXISTS
|
||
( SELECT prs_srtperslid_key
|
||
FROM prs_srtperslid ps
|
||
WHERE ps.prs_srtperslid_key = p.prs_srtperslid_key
|
||
AND prs_srtperslid_verwijder IS NULL
|
||
AND UPPER (ps.prs_srtperslid_omschrijving) = 'LEV AFMELDSCHERM');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_non_active_users
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
fac_srtnotificatie_key,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT NULL sender,
|
||
prs_perslid_key receiver,
|
||
'Uw account voor FACILITOR is bijna verlopen. ' text,
|
||
'CUST05' code,
|
||
NULL fac_srtnotificatie_key,
|
||
p.prs_perslid_key key,
|
||
NULL xkey,
|
||
NULL xemail,
|
||
NULL xmobile
|
||
FROM prs_perslid p
|
||
WHERE p.prs_perslid_email IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND TRUNC (p.prs_perslid_login) = TRUNC (SYSDATE - 90 + 7)
|
||
AND NOT EXISTS
|
||
(SELECT prs_afdeling_key
|
||
FROM prs_afdeling a
|
||
WHERE a.prs_afdeling_key = p.prs_afdeling_key
|
||
AND (a.prs_afdeling_omschrijving = 'AAFM' OR a.prs_afdeling_naam = 'HEYDAY'))
|
||
AND SUBSTR (prs_perslid_oslogin, 1, 1) <> '_'
|
||
AND NOT EXISTS
|
||
( SELECT prs_srtperslid_key
|
||
FROM prs_srtperslid ps
|
||
WHERE ps.prs_srtperslid_key = p.prs_srtperslid_key
|
||
AND prs_srtperslid_verwijder IS NULL
|
||
AND UPPER (ps.prs_srtperslid_omschrijving) = 'LEV AFMELDSCHERM');
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_export_login (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
|
||
INSERT INTO aaxx_perslid_login
|
||
(prs_perslid_key, login_datum)
|
||
(SELECT prs_perslid_key, prs_perslid_login
|
||
FROM prs_perslid
|
||
WHERE TRUNC (prs_perslid_login) = TRUNC (SYSDATE));
|
||
|
||
END;
|
||
/
|
||
|
||
-- Job om meldingen onder de vakgroeptype AA Complimenten binnen de SLA automatisch af te melden
|
||
-- Hierbij wordt in de afhandeling de afmeldtekst gebruikt die standaard geconfigureerd staat.
|
||
CREATE OR REPLACE PROCEDURE aaxx_afmelden_complimenten (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT m.*, a.mld_afmeldtekst_omschrijving
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd,
|
||
mld_afmeldtekst a
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_prefix = 'AA'
|
||
AND a.mld_ins_discipline_key = std.mld_ins_discipline_key
|
||
AND a.mld_stdmelding_key IS NULL
|
||
AND m.mld_melding_status IN (2, 3, 4)
|
||
AND m.mld_melding_einddatum_std < SYSDATE + 1;
|
||
BEGIN
|
||
|
||
FOR rec in c
|
||
LOOP
|
||
BEGIN
|
||
UPDATE mld_melding
|
||
SET mld_melding_opmerking = rec.mld_afmeldtekst_omschrijving
|
||
WHERE mld_melding_key = rec.mld_melding_key;
|
||
|
||
-- Als status is nieuw of te accepteren dan eerst op geaccepteerd zetten.
|
||
IF rec.mld_melding_status = 2 OR rec.mld_melding_status = 3
|
||
THEN
|
||
mld.setmeldingstatus(rec.mld_melding_key, 4, NULL);
|
||
END IF;
|
||
|
||
-- nu de status op afgemeld zetten.
|
||
mld.setmeldingstatus(rec.mld_melding_key, 5, NULL);
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
|
||
-- Correcties op meldingen/opdrachten/facturen bestaan uit aanpassingen in de kostenplaats
|
||
-- of standaardmelding (kostensoort). De originele opdracht is dan al verwerkt en naar Exact
|
||
-- gehaald. Daar willen we niet aan gaan zitten knutselen.
|
||
-- Daarom kan aan een melding die ingelegd is op een verkeerde stdmelding of kostenplaats
|
||
-- een vervolgmelding (Ordercorrectie) gekoppeld worden. Deze ordercorrectiemelding heeft
|
||
-- flexvelden voor de nieuwe kostenplaats en nieuwe stdmelding. Onderstaande procedure
|
||
-- maakt nu een nieuwe structuur van melding/opdrach(en)/factuur(en) aan die gelijk is aan
|
||
-- de structuur van de originele melding maar met de tegenboeking (negatieve bedragen). Als
|
||
-- tweede wordt dezelfde structuur nog een keer aangemaakt voor de correctiemelding. Deze
|
||
-- structuur bevat de originele bedragen maar bevat de nieuwe kostenplaats en/of stdmelding.
|
||
-- Correctiemeldingen worden pas uitgevoerd op het moment dat ze afgemeld zijn. Aan het
|
||
-- einde van deze procedure wordt de correctiemelding op afgerond gezet zodat deze niet
|
||
-- nogmaals uitgevoerd wordt.
|
||
CREATE OR REPLACE PROCEDURE aaxx_ordercorrecties (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT m.mld_melding_start_key,
|
||
m.mld_melding_key,
|
||
COALESCE (
|
||
(SELECT fac.safe_to_number (km.mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_upper = 'NIEUWE KOSTENPLAATS'),
|
||
m_org.prs_kostenplaats_key)
|
||
nieuwe_kostenplaats,
|
||
COALESCE (
|
||
(SELECT fac.safe_to_number (km.mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_upper = 'NIEUWE MELDING'),
|
||
m_org.prs_kostenplaats_key)
|
||
nieuwe_melding
|
||
FROM mld_melding m, mld_stdmelding std, mld_melding m_org
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_stdmelding_omschrijving = 'Ordercorrecties'
|
||
AND m.mld_melding_start_key = m_org.mld_melding_key
|
||
AND m.mld_melding_status = 5
|
||
AND m.mld_melding_afgerond = 0;
|
||
|
||
CURSOR c_o (c_melding_key NUMBER)
|
||
IS
|
||
SELECT *
|
||
FROM mld_opdr
|
||
WHERE mld_melding_key = c_melding_key;
|
||
|
||
CURSOR c_f (c_opdr_key NUMBER)
|
||
IS
|
||
SELECT *
|
||
FROM fin_factuur
|
||
WHERE mld_opdr_key = c_opdr_key AND fin_factuur_verwijder IS NULL;
|
||
|
||
CURSOR c_fr (c_factuur_key NUMBER)
|
||
IS
|
||
SELECT *
|
||
FROM fin_factuurregel
|
||
WHERE fin_factuur_key = c_factuur_key;
|
||
|
||
v_melding_tegenb_key NUMBER;
|
||
v_opdr_tegenb_key NUMBER;
|
||
v_factuur_tegenb_key NUMBER;
|
||
v_factuurregel_tegenb_key NUMBER;
|
||
v_melding_cor_key NUMBER;
|
||
v_opdr_cor_key NUMBER;
|
||
v_factuur_cor_key NUMBER;
|
||
v_factuurregel_cor_key NUMBER;
|
||
BEGIN
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
-- Maak een tegenboeking aan met dezelfde stdmelding/kostenplaats
|
||
SELECT mld_s_mld_melding_key.NEXTVAL
|
||
INTO v_melding_tegenb_key
|
||
FROM DUAL;
|
||
|
||
INSERT INTO mld_melding (mld_melding_key,
|
||
mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
mld_melding_opmerking,
|
||
mld_stdmelding_key,
|
||
mld_melding_status,
|
||
mld_kosten_klant,
|
||
mld_melding_document,
|
||
prs_kostenplaats_key,
|
||
prs_perslid_key,
|
||
mld_adres_key,
|
||
mld_melding_ordernr,
|
||
mld_melding_spoed,
|
||
mld_melding_onderwerp,
|
||
mld_melding_start_key)
|
||
SELECT v_melding_tegenb_key,
|
||
mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
SUBSTR (
|
||
'Tegenboeking'
|
||
|| CHR (10)
|
||
|| mld_melding_omschrijving,
|
||
1,
|
||
4000),
|
||
SUBSTR (
|
||
'Tegenboeking'
|
||
|| CHR (10)
|
||
|| mld_melding_opmerking,
|
||
1,
|
||
4000),
|
||
mld_stdmelding_key,
|
||
2,
|
||
mld_kosten_klant,
|
||
mld_melding_document,
|
||
prs_kostenplaats_key,
|
||
prs_perslid_key,
|
||
mld_adres_key,
|
||
mld_melding_ordernr,
|
||
mld_melding_spoed,
|
||
SUBSTR ('Tegenboeking: ' || mld_melding_onderwerp, 1, 60),
|
||
mld_melding_key
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = rec.mld_melding_start_key;
|
||
|
||
fac.trackaction ('MLDNEW',
|
||
v_melding_tegenb_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
|
||
mld.setmeldingstatus (v_melding_tegenb_key, 4, NULL);
|
||
|
||
-- Maak een correctie melding aan met de nieuwe stdmelding en nieuwe kostenplaats
|
||
SELECT mld_s_mld_melding_key.NEXTVAL
|
||
INTO v_melding_cor_key
|
||
FROM DUAL;
|
||
|
||
INSERT INTO mld_melding (mld_melding_key,
|
||
mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
mld_melding_opmerking,
|
||
mld_stdmelding_key,
|
||
mld_melding_status,
|
||
mld_kosten_klant,
|
||
mld_melding_document,
|
||
prs_kostenplaats_key,
|
||
prs_perslid_key,
|
||
mld_adres_key,
|
||
mld_melding_ordernr,
|
||
mld_melding_spoed,
|
||
mld_melding_onderwerp,
|
||
mld_melding_start_key)
|
||
SELECT v_melding_cor_key,
|
||
mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
SUBSTR (
|
||
'Correctie melding'
|
||
|| CHR (10)
|
||
|| mld_melding_omschrijving,
|
||
1,
|
||
4000),
|
||
SUBSTR (
|
||
'Correctie melding'
|
||
|| CHR (10)
|
||
|| mld_melding_opmerking,
|
||
1,
|
||
4000),
|
||
rec.nieuwe_melding,
|
||
2,
|
||
mld_kosten_klant,
|
||
mld_melding_document,
|
||
rec.nieuwe_kostenplaats,
|
||
prs_perslid_key,
|
||
mld_adres_key,
|
||
mld_melding_ordernr,
|
||
mld_melding_spoed,
|
||
SUBSTR ('Correctie: ' || mld_melding_onderwerp, 1, 60),
|
||
mld_melding_key
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = rec.mld_melding_start_key;
|
||
|
||
fac.trackaction ('MLDNEW',
|
||
v_melding_cor_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
|
||
mld.setmeldingstatus (v_melding_cor_key, 4, NULL);
|
||
|
||
|
||
|
||
DBMS_OUTPUT.put_line (
|
||
'Originele melding_key:' || rec.mld_melding_start_key);
|
||
|
||
FOR rec_o IN c_o (rec.mld_melding_start_key)
|
||
LOOP
|
||
BEGIN
|
||
DBMS_OUTPUT.put_line (
|
||
'Originele opdracht_key:' || rec_o.mld_opdr_key);
|
||
|
||
-- Maak voor iedere opdracht onder de originele melding een tegenboekingsopdracht aan.
|
||
SELECT mld_s_mld_opdr_key.NEXTVAL
|
||
INTO v_opdr_tegenb_key
|
||
FROM DUAL;
|
||
|
||
DBMS_OUTPUT.put_line (
|
||
'Tegenboeking opdracht_key:' || v_opdr_tegenb_key);
|
||
|
||
INSERT INTO mld_opdr (mld_opdr_key,
|
||
mld_opdr_module,
|
||
mld_melding_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_uitvoerende_keys,
|
||
mld_typeopdr_key,
|
||
mld_statusopdr_key,
|
||
mld_standaardopdr_key,
|
||
mld_opdr_omschrijving,
|
||
mld_opdr_datumbegin,
|
||
mld_opdr_dagen,
|
||
mld_opdr_einddatum,
|
||
mld_opdr_werkzaamheden,
|
||
mld_opdr_uren,
|
||
mld_opdr_materiaal,
|
||
mld_opdr_kosten,
|
||
prs_kostenplaats_key,
|
||
mld_opdr_ordernr,
|
||
mld_opdr_contactpersoon,
|
||
mld_opdr_bedrijfopdr_volgnr,
|
||
mld_opdr_teverzenden,
|
||
mld_opdr_uurloon,
|
||
prs_perslid_key,
|
||
prs_contactpersoon_key,
|
||
mld_opdr_opmerking_fiat,
|
||
fac_activiteit_key,
|
||
mld_opdr_opmerking,
|
||
cnt_contract_key,
|
||
cnt_contract_dienst_key,
|
||
mld_opdr_plandatum,
|
||
mld_opdr_id)
|
||
SELECT v_opdr_tegenb_key,
|
||
mld_opdr_module,
|
||
v_melding_tegenb_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_uitvoerende_keys,
|
||
mld_typeopdr_key,
|
||
5, -- toegekend
|
||
mld_standaardopdr_key,
|
||
mld_opdr_omschrijving,
|
||
mld_opdr_datumbegin,
|
||
mld_opdr_dagen,
|
||
mld_opdr_einddatum,
|
||
mld_opdr_werkzaamheden,
|
||
0,
|
||
0,
|
||
-1 * mld_opdr_kosten,
|
||
prs_kostenplaats_key,
|
||
mld_opdr_ordernr,
|
||
mld_opdr_contactpersoon,
|
||
mld_opdr_bedrijfopdr_volgnr,
|
||
NULL, -- mld_opdr_teverzenden
|
||
mld_opdr_uurloon,
|
||
prs_perslid_key,
|
||
prs_contactpersoon_key,
|
||
mld_opdr_opmerking_fiat,
|
||
fac_activiteit_key,
|
||
SUBSTR (
|
||
'Tegenboeking'
|
||
|| CHR (10)
|
||
|| mld_opdr_opmerking,
|
||
1,
|
||
4000),
|
||
cnt_contract_key,
|
||
cnt_contract_dienst_key,
|
||
mld_opdr_plandatum,
|
||
mld_opdr_id
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = rec_o.mld_opdr_key;
|
||
|
||
fac.trackaction ('ORDNEW',
|
||
v_opdr_tegenb_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
|
||
-- Maak voor iedere opdracht onder de originele melding een correctieopdracht aan.
|
||
SELECT mld_s_mld_opdr_key.NEXTVAL
|
||
INTO v_opdr_cor_key
|
||
FROM DUAL;
|
||
|
||
DBMS_OUTPUT.put_line (
|
||
'Correctie opdracht_key:' || v_opdr_cor_key);
|
||
|
||
INSERT INTO mld_opdr (mld_opdr_key,
|
||
mld_opdr_module,
|
||
mld_melding_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_uitvoerende_keys,
|
||
mld_typeopdr_key,
|
||
mld_statusopdr_key,
|
||
mld_standaardopdr_key,
|
||
mld_opdr_omschrijving,
|
||
mld_opdr_datumbegin,
|
||
mld_opdr_dagen,
|
||
mld_opdr_einddatum,
|
||
mld_opdr_werkzaamheden,
|
||
mld_opdr_uren,
|
||
mld_opdr_materiaal,
|
||
mld_opdr_kosten,
|
||
prs_kostenplaats_key,
|
||
mld_opdr_ordernr,
|
||
mld_opdr_contactpersoon,
|
||
mld_opdr_bedrijfopdr_volgnr,
|
||
mld_opdr_teverzenden,
|
||
mld_opdr_uurloon,
|
||
prs_perslid_key,
|
||
prs_contactpersoon_key,
|
||
mld_opdr_opmerking_fiat,
|
||
fac_activiteit_key,
|
||
mld_opdr_opmerking,
|
||
cnt_contract_key,
|
||
cnt_contract_dienst_key,
|
||
mld_opdr_plandatum,
|
||
mld_opdr_id)
|
||
SELECT v_opdr_cor_key,
|
||
mld_opdr_module,
|
||
v_melding_cor_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_uitvoerende_keys,
|
||
mld_typeopdr_key,
|
||
5, -- toegekend
|
||
mld_standaardopdr_key,
|
||
mld_opdr_omschrijving,
|
||
mld_opdr_datumbegin,
|
||
mld_opdr_dagen,
|
||
mld_opdr_einddatum,
|
||
mld_opdr_werkzaamheden,
|
||
mld_opdr_uren,
|
||
mld_opdr_materiaal,
|
||
mld_opdr_kosten,
|
||
rec.nieuwe_kostenplaats,
|
||
mld_opdr_ordernr,
|
||
mld_opdr_contactpersoon,
|
||
mld_opdr_bedrijfopdr_volgnr,
|
||
NULL, -- mld_opdr_teverzenden
|
||
mld_opdr_uurloon,
|
||
prs_perslid_key,
|
||
prs_contactpersoon_key,
|
||
mld_opdr_opmerking_fiat,
|
||
fac_activiteit_key,
|
||
SUBSTR (
|
||
'Correctie'
|
||
|| CHR (10)
|
||
|| mld_opdr_opmerking,
|
||
1,
|
||
4000),
|
||
cnt_contract_key,
|
||
cnt_contract_dienst_key,
|
||
mld_opdr_plandatum,
|
||
mld_opdr_id
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = rec_o.mld_opdr_key;
|
||
|
||
fac.trackaction ('ORDNEW',
|
||
v_opdr_cor_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
|
||
FOR rec_f IN c_f (rec_o.mld_opdr_key)
|
||
LOOP
|
||
BEGIN
|
||
DBMS_OUTPUT.put_line (
|
||
'Originele factuur_key:' || rec_f.fin_factuur_key);
|
||
|
||
-- Maak voor iedere factuur onder de originele opdracht een tegenboekingsfactuur aan.
|
||
SELECT fin_s_fin_factuur_key.NEXTVAL
|
||
INTO v_factuur_tegenb_key
|
||
FROM DUAL;
|
||
|
||
DBMS_OUTPUT.put_line (
|
||
'Tegenboekingsfactuur_key:' || v_factuur_tegenb_key);
|
||
|
||
INSERT INTO fin_factuur (fin_factuur_key,
|
||
mld_opdr_key,
|
||
fin_factuur_nr,
|
||
fin_factuur_totaal,
|
||
fin_factuur_totaal_btw,
|
||
prs_perslid_key_user,
|
||
fin_factuur_datum,
|
||
fin_factuur_boekmaand,
|
||
fin_factuur_debiteur_nr,
|
||
prs_kostensoort_key,
|
||
fin_factuur_opmerking,
|
||
fin_factuur_statuses_key)
|
||
SELECT v_factuur_tegenb_key,
|
||
v_opdr_tegenb_key,
|
||
fin_factuur_nr,
|
||
-1 * fin_factuur_totaal,
|
||
-1 * fin_factuur_totaal_btw,
|
||
prs_perslid_key_user,
|
||
fin_factuur_datum,
|
||
fin_factuur_boekmaand,
|
||
fin_factuur_debiteur_nr,
|
||
prs_kostensoort_key,
|
||
SUBSTR (
|
||
'Tegenboeking'
|
||
|| CHR (10)
|
||
|| fin_factuur_opmerking,
|
||
1,
|
||
4000),
|
||
6 -- goedgekeurd
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_key = rec_f.fin_factuur_key;
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
SELECT v_factuur_tegenb_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_factuur_key = rec_f.fin_factuur_key;
|
||
|
||
fac.trackaction ('FINNEW',
|
||
v_factuur_tegenb_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
|
||
-- Maak voor iedere factuur onder de originele opdracht een correctiefactuur aan.
|
||
SELECT fin_s_fin_factuur_key.NEXTVAL
|
||
INTO v_factuur_cor_key
|
||
FROM DUAL;
|
||
|
||
DBMS_OUTPUT.put_line (
|
||
'Correctie factuur_key:' || v_factuur_cor_key);
|
||
|
||
INSERT INTO fin_factuur (fin_factuur_key,
|
||
mld_opdr_key,
|
||
fin_factuur_nr,
|
||
fin_factuur_totaal,
|
||
fin_factuur_totaal_btw,
|
||
prs_perslid_key_user,
|
||
fin_factuur_datum,
|
||
fin_factuur_boekmaand,
|
||
fin_factuur_debiteur_nr,
|
||
prs_kostensoort_key,
|
||
fin_factuur_opmerking,
|
||
fin_factuur_statuses_key)
|
||
SELECT v_factuur_cor_key,
|
||
v_opdr_cor_key,
|
||
fin_factuur_nr,
|
||
fin_factuur_totaal,
|
||
fin_factuur_totaal_btw,
|
||
prs_perslid_key_user,
|
||
fin_factuur_datum,
|
||
fin_factuur_boekmaand,
|
||
fin_factuur_debiteur_nr,
|
||
(SELECT COALESCE (std.prs_kostensoort_key,
|
||
d.prs_kostensoort_key)
|
||
FROM mld_stdmelding std,
|
||
ins_tab_discipline d
|
||
WHERE std.mld_ins_discipline_key =
|
||
d.ins_discipline_key
|
||
AND std.mld_stdmelding_key =
|
||
rec.nieuwe_melding),
|
||
SUBSTR (
|
||
'Correctie'
|
||
|| CHR (10)
|
||
|| fin_factuur_opmerking,
|
||
1,
|
||
4000),
|
||
6 -- goedgekeurd
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_key = rec_f.fin_factuur_key;
|
||
|
||
fac.trackaction ('FINNEW',
|
||
v_factuur_cor_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
SELECT v_factuur_cor_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_factuur_key = rec_f.fin_factuur_key;
|
||
|
||
FOR rec_fr IN c_fr (rec_f.fin_factuur_key)
|
||
LOOP
|
||
BEGIN
|
||
DBMS_OUTPUT.put_line('Originele factuurregel_key:'
|
||
|| rec_fr.fin_factuurregel_key);
|
||
|
||
-- Maak voor iedere factuurregel onder de originele factuur een tegenboekings factuurregel aan.
|
||
SELECT fin_s_fin_factuurregel_key.NEXTVAL
|
||
INTO v_factuurregel_tegenb_key
|
||
FROM DUAL;
|
||
|
||
DBMS_OUTPUT.put_line('Tegenboekings factuurregel_key:'
|
||
|| v_factuurregel_tegenb_key);
|
||
|
||
INSERT INTO fin_factuurregel (fin_factuurregel_key,
|
||
fin_factuur_key,
|
||
fin_factuurregel_nr,
|
||
fin_factuurregel_totaal,
|
||
fin_factuurregel_btw,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuurregel_referentie,
|
||
fin_btwtabelwaarde_key,
|
||
prs_kostensoort_key)
|
||
SELECT v_factuurregel_tegenb_key,
|
||
v_factuur_tegenb_key,
|
||
fin_factuurregel_nr,
|
||
-1 * fin_factuurregel_totaal,
|
||
-1 * fin_factuurregel_btw,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuurregel_referentie,
|
||
fin_btwtabelwaarde_key,
|
||
prs_kostensoort_key
|
||
FROM fin_factuurregel
|
||
WHERE fin_factuurregel_key =
|
||
rec_fr.fin_factuurregel_key;
|
||
|
||
|
||
-- Maak voor iedere factuurregel onder de originele factuur een correctie factuurregel aan.
|
||
SELECT fin_s_fin_factuurregel_key.NEXTVAL
|
||
INTO v_factuurregel_cor_key
|
||
FROM DUAL;
|
||
|
||
DBMS_OUTPUT.put_line('Correctie factuurregel_key:'
|
||
|| v_factuurregel_cor_key);
|
||
|
||
INSERT INTO fin_factuurregel (fin_factuurregel_key,
|
||
fin_factuur_key,
|
||
fin_factuurregel_nr,
|
||
fin_factuurregel_totaal,
|
||
fin_factuurregel_btw,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuurregel_referentie,
|
||
fin_btwtabelwaarde_key,
|
||
prs_kostensoort_key)
|
||
SELECT v_factuurregel_cor_key,
|
||
v_factuur_cor_key,
|
||
fin_factuurregel_nr,
|
||
fin_factuurregel_totaal,
|
||
fin_factuurregel_btw,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuurregel_referentie,
|
||
fin_btwtabelwaarde_key,
|
||
(SELECT COALESCE (
|
||
std.prs_kostensoort_key,
|
||
d.prs_kostensoort_key)
|
||
FROM mld_stdmelding std,
|
||
ins_tab_discipline d
|
||
WHERE std.mld_ins_discipline_key =
|
||
d.ins_discipline_key
|
||
AND std.mld_stdmelding_key =
|
||
rec.nieuwe_melding)
|
||
FROM fin_factuurregel
|
||
WHERE fin_factuurregel_key =
|
||
rec_fr.fin_factuurregel_key;
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
END LOOP;
|
||
|
||
-- set opdrachtstatus op technisch gereed
|
||
mld.setopdrachtstatus (v_opdr_tegenb_key, 6, NULL);
|
||
mld.setopdrachtstatus (v_opdr_cor_key, 6, NULL);
|
||
END;
|
||
END LOOP;
|
||
-- zet meldingstatus op technisch gereed
|
||
mld.updatemeldingstatus (v_melding_tegenb_key, 1, NULL);
|
||
mld.updatemeldingstatus (v_melding_cor_key, 1, NULL);
|
||
|
||
-- zet de status van de correctiemelding op afgerond zodat deze niet opnieuw verwerkt wordt.
|
||
UPDATE mld_melding
|
||
SET mld_melding_afgerond = 1
|
||
WHERE mld_melding_key = rec.mld_melding_key;
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
-- view om stdmeldingen als suggest bij kenmerk te tonen.
|
||
CREATE OR REPLACE VIEW aaxx_v_stdmelding_gegevens
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_key,
|
||
ins_srtdiscipline_prefix,
|
||
ins_srtdiscipline_omschrijving,
|
||
ins_discipline_key,
|
||
ins_discipline_omschrijving,
|
||
mld_stdmelding_key,
|
||
mld_stdmelding_omschrijving,
|
||
ins_discipline_omschrijving || '/' || mld_stdmelding_omschrijving
|
||
discstd,
|
||
mld_stdmelding_verwijder
|
||
FROM ins_tab_discipline d, ins_srtdiscipline sd, mld_stdmelding std
|
||
WHERE sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key
|
||
AND d.ins_discipline_key = std.mld_ins_discipline_key;
|
||
|
||
--=============================================================================
|
||
-- EXPORTFUNCTIES Reserveringen NoShow.
|
||
-- Exportfunctie moet voor de putorders van de betreffende klant gescheduled worden.
|
||
-- 10 minuten na aanvang wordt bij no_show een noshow reminder gestuurd
|
||
-- 15 minuten na aanvang wordt de reservering als noshow aangemerkt en
|
||
-- wordt de ruimte vrijgegeven.
|
||
-------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_select_noshow_reminder (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
CURSOR c (
|
||
c_srtnotificatie_key NUMBER)
|
||
IS
|
||
SELECT DISTINCT rrr.res_rsv_ruimte_host_key,
|
||
rr.res_ruimte_nr,
|
||
pf.prs_perslid_naam_full,
|
||
rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_key
|
||
FROM cad_v_thema_srtruimtesensor s,
|
||
res_v_rsv_ruimte_2_alg_ruimte r2a,
|
||
res_rsv_ruimte rrr,
|
||
res_ruimte rr,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE waarde = 'NoShow'
|
||
AND res_rsv_ruimte_host_key = pf.prs_perslid_key
|
||
AND s.alg_ruimte_key = r2a.alg_ruimte_key
|
||
AND r2a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND r2a.res_ruimte_key = rr.res_ruimte_key
|
||
AND SYSDATE BETWEEN rrr.res_rsv_ruimte_van
|
||
AND rrr.res_rsv_ruimte_tot
|
||
AND rrr.res_rsv_ruimte_van < SYSDATE - 1 / (24 * 6) -- verder dan tien minuten
|
||
AND rrr.res_rsv_ruimte_van > SYSDATE - 2 / (24 * 6) -- niet verder dan twintig minuten
|
||
AND NOT EXISTS
|
||
(SELECT fac_tracking_key
|
||
FROM fac_tracking t
|
||
WHERE t.fac_srtnotificatie_key = c_srtnotificatie_key
|
||
AND fac_tracking_refkey = rrr.res_rsv_ruimte_key);
|
||
|
||
CURSOR c2 (
|
||
c_srtnotificatie_key NUMBER)
|
||
IS
|
||
SELECT DISTINCT r2a.res_rsv_ruimte_key
|
||
FROM cad_v_thema_srtruimtesensor s, res_v_rsv_ruimte_2_alg_ruimte r2a
|
||
WHERE waarde = 'NoShow' AND s.alg_ruimte_key = r2a.alg_ruimte_key
|
||
AND SYSDATE BETWEEN r2a.res_rsv_ruimte_van
|
||
AND r2a.res_rsv_ruimte_tot
|
||
AND r2a.res_rsv_ruimte_van < SYSDATE - 1 / (24 * 4) -- verder dan een kwartier
|
||
AND r2a.res_rsv_ruimte_van > SYSDATE - 2 / (24 * 4) -- niet verder dan een half uur
|
||
AND EXISTS
|
||
(SELECT fac_tracking_key
|
||
FROM fac_tracking t
|
||
WHERE t.fac_srtnotificatie_key = c_srtnotificatie_key
|
||
AND fac_tracking_refkey = r2a.res_rsv_ruimte_key);
|
||
|
||
v_srtnotificatie_key NUMBER;
|
||
BEGIN
|
||
SELECT fac_srtnotificatie_key
|
||
INTO v_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST06'; -- herinnering noshow
|
||
|
||
FOR rec IN c (v_srtnotificatie_key)
|
||
LOOP
|
||
BEGIN
|
||
fac.putnotificationsrtprio (
|
||
NULL,
|
||
rec.res_rsv_ruimte_host_key,
|
||
'CUST06',
|
||
rec.res_reservering_key,
|
||
'No-show waarschuwing reservering ' || rec.res_ruimte_nr,
|
||
2, -- mail
|
||
NULL, -- geen specifiek mail adres
|
||
NULL, -- geen specifiek mobile nummer
|
||
rec.res_rsv_ruimte_key,
|
||
1, -- hoge prioriteit
|
||
NULL);
|
||
|
||
fac.trackaction (
|
||
'#CUST06',
|
||
rec.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
'No-show waarschuwing verzonden naar: '
|
||
|| rec.prs_perslid_naam_full);
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN c2 (v_srtnotificatie_key)
|
||
LOOP
|
||
BEGIN
|
||
UPDATE res_rsv_ruimte
|
||
SET res_rsv_ruimte_bezoekers_shown = 0,
|
||
res_rsv_ruimte_tot =
|
||
GREATEST (
|
||
res_rsv_ruimte_van,
|
||
LEAST (res_rsv_ruimte_tot, TRUNC (SYSDATE, 'MI')))
|
||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||
|
||
UPDATE res_rsv_deel
|
||
SET res_rsv_deel_tot =
|
||
LEAST (
|
||
res_rsv_deel_tot,
|
||
(SELECT res_rsv_ruimte_tot
|
||
FROM res_rsv_ruimte
|
||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key))
|
||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||
|
||
fac.trackaction ('RESNOS',
|
||
rec.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
--=============================================================================
|
||
-- EXPORTFUNCTIES EXACT - Inkoopinterface
|
||
-------------------------------------------------------------------------------
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- 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,
|
||
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)
|
||
|| DECODE (cnt_contract_versie, NULL, NULL, '.' || cnt_contract_versie)
|
||
)
|
||
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(DECODE(aaxx_get_user, 'INLO', DECODE (aaxx_get_top_bedrijf_key ((SELECT prs_kostenplaats_nr from prs_kostenplaats where prs_kostenplaats_key = c.prs_kostenplaats_key)), 2082,TO_DATE(fin_factuur_boekmaand, 'yyyy-mm'), -- VEH
|
||
c.cnt_contract_looptijd_tot),
|
||
c.cnt_contract_looptijd_tot),
|
||
bo.bes_bestelopdr_datum)) opdr_datum,
|
||
COALESCE ( (SELECT fac.safe_to_number (fac_usrdata_code)
|
||
FROM fin_kenmerkfactuur fk, fac_usrdata ud
|
||
WHERE fk.fin_factuur_key = f.fin_factuur_key
|
||
AND fk.fin_kenmerk_key = 2
|
||
AND fac.safe_to_number (fin_kenmerkfactuur_waarde) =
|
||
fac_usrdata_key),
|
||
1
|
||
),
|
||
TO_CHAR (DECODE (ot.mld_typeopdr_omschrijving,
|
||
'Projectorder', ( (SELECT sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE m.mld_melding_key =
|
||
o.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key =
|
||
d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key =
|
||
sd.ins_srtdiscipline_key)),
|
||
NULL)
|
||
)
|
||
projectnummer,
|
||
TO_CHAR ((SELECT DISTINCT COALESCE(mld_kenmerkmelding_waarde, '')
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE km.mld_melding_key = o.mld_melding_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerkmelding_verwijder is null
|
||
AND k.mld_kenmerk_verwijder is null
|
||
AND sk.mld_srtkenmerk_omschrijving = 'Projectnaam')
|
||
)
|
||
projectnaam,
|
||
prs_kostensoort_oms,
|
||
DECODE (
|
||
aaxx_get_user,
|
||
'DOW', DECODE (
|
||
COALESCE (
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'yyyy'),
|
||
COALESCE (
|
||
TO_CHAR (c.cnt_contract_looptijd_tot,
|
||
'yyyy'),
|
||
TO_CHAR (bo.bes_bestelopdr_datum, 'yyyy'))),
|
||
'2021', k.prs_kostensoort_refcode,
|
||
DECODE (
|
||
SUBSTR (k.prs_kostensoort_upper, 1, 2),
|
||
'CO', DECODE (
|
||
SUBSTR (k.prs_kostensoort_upper,
|
||
1,
|
||
7),
|
||
'COR VAR', '1350819',
|
||
'1350818'),
|
||
'NC', DECODE (
|
||
SUBSTR (k.prs_kostensoort_upper,
|
||
1,
|
||
5),
|
||
'NC P ', '1350817',
|
||
'1350820'),
|
||
'Onbekend')),
|
||
-- Gul is uitgeschakeld (Sander Vogels dec-2019). Is dus ook niet meegenomen bij aanpassing interface 2020 ivm balansrekeningen voorgaande boekjaar (AAX#60595)
|
||
-- Gul kent een andere methode. Deze gaat niet mee in de jaarafsluiting. Met GULU#38855 is
|
||
-- bepaald dat de kosten vanaf 2017 op andere rekeningnummers komen dan de kosten uit voorafgaande
|
||
-- jaren.
|
||
'GUL', DECODE (
|
||
COALESCE (
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'yyyy'),
|
||
COALESCE (
|
||
TO_CHAR (c.cnt_contract_looptijd_tot,
|
||
'yyyy'),
|
||
TO_CHAR (bo.bes_bestelopdr_datum, 'yyyy'))),
|
||
'2019', k.prs_kostensoort_refcode,
|
||
'2018', DECODE (
|
||
SUBSTR (k.prs_kostensoort_upper, 1, 2),
|
||
'CF', '1350830',
|
||
'CV', '1350831',
|
||
'Onbekend'),
|
||
'2017', DECODE (
|
||
SUBSTR (k.prs_kostensoort_upper, 1, 2),
|
||
'CF', '1350801',
|
||
'CV', '1350802',
|
||
'Onbekend'),
|
||
DECODE (SUBSTR (k.prs_kostensoort_upper, 1, 2),
|
||
'CF', '1350803',
|
||
'CV', '1350804',
|
||
'Onbekend')),
|
||
-- INLO uit standaard overgenomen. Zie ticket 57775.
|
||
'INLO', DECODE (
|
||
COALESCE (
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'yyyy'),
|
||
COALESCE (
|
||
TO_CHAR (
|
||
DECODE (
|
||
aaxx_get_top_bedrijf_key (
|
||
(SELECT prs_kostenplaats_nr
|
||
FROM prs_kostenplaats
|
||
WHERE prs_kostenplaats_key =
|
||
c.prs_kostenplaats_key)),
|
||
2082, TO_DATE (
|
||
fin_factuur_boekmaand,
|
||
'yyyy-mm'),
|
||
c.cnt_contract_looptijd_tot),
|
||
'yyyy'),
|
||
TO_CHAR (bo.bes_bestelopdr_datum, 'yyyy'))),
|
||
'2021', k.prs_kostensoort_refcode,
|
||
DECODE (
|
||
SUBSTR (k.prs_kostensoort_upper, 1, 3),
|
||
'CF ', '1350818',
|
||
'CFE', '1350818',
|
||
'CV ', '1350819',
|
||
'CVE', '1350820',
|
||
'NC ', DECODE (
|
||
SUBSTR (k.prs_kostensoort_upper,
|
||
1,
|
||
7),
|
||
'NC PROJ', '1350817',
|
||
'1350820'),
|
||
'Onbekend')),
|
||
'IT', DECODE (
|
||
COALESCE (
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'yyyy'),
|
||
COALESCE (
|
||
TO_CHAR (c.cnt_contract_looptijd_tot,
|
||
'yyyy'),
|
||
TO_CHAR (bo.bes_bestelopdr_datum, 'yyyy'))),
|
||
'2021', k.prs_kostensoort_refcode,
|
||
'2020', k.prs_kostensoort_refcode,
|
||
DECODE (
|
||
SUBSTR (k.prs_kostensoort_upper, 1, 2),
|
||
'CF', '1350822',
|
||
'CV', '1350823',
|
||
'NC', DECODE (
|
||
SUBSTR (k.prs_kostensoort_upper, 1, 7),
|
||
'NC PROJ', '1350817',
|
||
'1350824'),
|
||
k.prs_kostensoort_refcode)),
|
||
--NIEUW DSM ivm gebruik L-code #56150
|
||
'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'))),
|
||
'2021', k.prs_kostensoort_refcode,
|
||
DECODE (
|
||
SUBSTR (k.prs_kostensoort_upper, 1, 2),
|
||
'L ', DECODE (
|
||
SUBSTR (k.prs_kostensoort_upper,
|
||
1,
|
||
5),
|
||
'L CF ', '1350818',
|
||
'L CFE', '1350818',
|
||
'L CV ', '1350819',
|
||
'L CVE', '1350820',
|
||
'L NC ', DECODE (
|
||
SUBSTR (
|
||
k.prs_kostensoort_upper,
|
||
1,
|
||
9),
|
||
'L NC PROJ', '1350817',
|
||
'1350820'),
|
||
'Onbekend'),
|
||
DECODE (
|
||
SUBSTR (k.prs_kostensoort_upper, 1, 3),
|
||
'CF ', '1350818',
|
||
'CFE', '1350818',
|
||
'CV ', '1350819',
|
||
'CVE', '1350820',
|
||
'NC ', DECODE (
|
||
SUBSTR (k.prs_kostensoort_upper,
|
||
1,
|
||
7),
|
||
'NC PROJ', '1350817',
|
||
'1350820'),
|
||
'Onbekend'))),
|
||
-- standaard keuze werkt voor de meeste accounts.
|
||
DECODE (
|
||
COALESCE (
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'yyyy'),
|
||
COALESCE (
|
||
TO_CHAR (c.cnt_contract_looptijd_tot, 'yyyy'),
|
||
TO_CHAR (bo.bes_bestelopdr_datum, 'yyyy'))),
|
||
'2021', k.prs_kostensoort_refcode,
|
||
DECODE (
|
||
SUBSTR (k.prs_kostensoort_upper, 1, 3),
|
||
'CF ', '1350818',
|
||
'CFE', '1350818',
|
||
'CV ', '1350819',
|
||
'CVE', '1350820',
|
||
'NC ', DECODE (SUBSTR (k.prs_kostensoort_upper, 1, 7),
|
||
'NC PROJ', '1350817',
|
||
'1350820'),
|
||
'Onbekend'))),
|
||
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;
|
||
|
||
-- De exact export kan voor AAIT meerdere administraties bevatten. In dat geval wordt de
|
||
-- regel opgeslagen met een prefix van het administratienummer met een ##
|
||
-- Hier splitsen we deze weer naar losse velden in de view. De kolom adm_exact is de bestandsnaam
|
||
-- zoals deze in de importdefinitie bepaald is.
|
||
CREATE OR REPLACE VIEW aaxx_v_export_exact_xml (
|
||
result,
|
||
result_order,
|
||
adm_exact
|
||
)
|
||
AS
|
||
SELECT SUBSTR (fac_rapport_regel, INSTR (fac_rapport_regel, '##') + 2),
|
||
fac_rapport_volgnr,
|
||
SUBSTR (fac_rapport_regel, 1, INSTR (fac_rapport_regel, '##') - 1)
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = 'EXACT' AND INSTR (fac_rapport_regel, '##') <> 0
|
||
UNION ALL
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr, NULL
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = 'EXACT' AND INSTR (fac_rapport_regel, '##') = 0;
|
||
|
||
/* nieuwe view om oude aaxx_v_export_exact_xml view op termijn te vervangen. Door gebruik te maken
|
||
van de nieuwe view hoeft er per klant geen specifieke export in de cust.sql. De prefix in de
|
||
export tabel staat dan op AAXX */
|
||
CREATE OR REPLACE VIEW aaxx_v_export_exact (
|
||
result,
|
||
result_order,
|
||
adm_exact
|
||
)
|
||
AS
|
||
SELECT result, result_order, adm_exact
|
||
FROM aaxx_v_export_exact_xml;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_bron_export_exact_xml
|
||
(
|
||
fin_factuur_key,
|
||
oms25,
|
||
opdracht_id,
|
||
factuur_nr,
|
||
datum,
|
||
crdnr,
|
||
projectnr,
|
||
projectnaam,
|
||
bedrag_txt,
|
||
bedrag,
|
||
bedrag_incl,
|
||
betaalref,
|
||
itemcode,
|
||
reknr,
|
||
kstplcode,
|
||
kstdrcode,
|
||
btw_code,
|
||
lev_kpn,
|
||
administratie
|
||
)
|
||
AS
|
||
SELECT fin_factuur_key,
|
||
fin_factuur_nr
|
||
|| ' - '
|
||
|| REPLACE (SUBSTR (fin_factuur_opmerking, 1, 30), ',', '')
|
||
oms25,
|
||
opdracht_id,
|
||
fin_factuur_nr,
|
||
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', (SELECT DECODE (INSTR(prs_kostenplaats_nr, '/'), 0, prs_kostenplaats_nr, SUBSTR(prs_kostenplaats_nr, 1, INSTR(prs_kostenplaats_nr, '/')-1))
|
||
FROM prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaats_key = fg.prs_kostenplaats_key),
|
||
'GUL',
|
||
(select exact_code from aaxx_v_exact_code_gebouw_fac ecgf where ecgf.fin_factuur_key = fg.fin_factuur_key),
|
||
'INLO',
|
||
(select klantcode from aaxx_v_klantcode_gebouw_fac kcgf where kcgf.fin_factuur_key = fg.fin_factuur_key),
|
||
'ARCADIS',
|
||
DECODE (cnt_contract_key, NULL,
|
||
(select exact_code from aaxx_v_exact_code_gebouw_fac ecgf where ecgf.fin_factuur_key = fg.fin_factuur_key),
|
||
'999999'),
|
||
'DSM',
|
||
(select exact_code from aaxx_v_exact_code_district_fac ecgf where ecgf.fin_factuur_key = fg.fin_factuur_key),
|
||
'EXPO',
|
||
DECODE (
|
||
(SELECT MAX(l.alg_district_key)
|
||
FROM (SELECT l.alg_locatie_key
|
||
FROM alg_locatie l, mld_melding m, mld_opdr o
|
||
WHERE l.alg_locatie_key = m.mld_alg_locatie_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND o.mld_opdr_key = fg.mld_opdr_key
|
||
UNION
|
||
SELECT cnt_alg_plaats_key
|
||
FROM cnt_contract_plaats cp
|
||
WHERE cp.cnt_contract_key = fg.cnt_contract_key
|
||
AND cnt_alg_plaats_code = 'L'
|
||
UNION
|
||
SELECT g.alg_locatie_key
|
||
FROM cnt_contract_plaats cp, alg_gebouw g
|
||
WHERE cp.cnt_contract_key = fg.cnt_contract_key
|
||
AND cnt_alg_plaats_code = 'G'
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key) lg,
|
||
alg_locatie l
|
||
WHERE l.alg_locatie_key = lg.alg_locatie_key),
|
||
61, '03701000', -- 03701000 Nationale Nederlanden
|
||
62, '03700000', -- 4001 Handel Amsterdam
|
||
'Onbekend'),
|
||
'SABIC',
|
||
DECODE (
|
||
(SELECT MAX(alg_locatie_key)
|
||
FROM (SELECT l.alg_locatie_key
|
||
FROM alg_locatie l, mld_melding m, mld_opdr o
|
||
WHERE l.alg_locatie_key = m.mld_alg_locatie_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND o.mld_opdr_key = fg.mld_opdr_key
|
||
UNION
|
||
SELECT cnt_alg_plaats_key
|
||
FROM cnt_contract_plaats cp
|
||
WHERE cp.cnt_contract_key = fg.cnt_contract_key
|
||
AND cnt_alg_plaats_code = 'L'
|
||
UNION
|
||
SELECT g.alg_locatie_key
|
||
FROM cnt_contract_plaats cp, alg_gebouw g
|
||
WHERE cp.cnt_contract_key = fg.cnt_contract_key
|
||
AND cnt_alg_plaats_code = 'G'
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
UNION -- Ticket 57282 - Aanvulling interface met Bestelopdr
|
||
SELECT ma.alg_locatie_key
|
||
FROM bes_bestelopdr bo, mld_adres ma
|
||
WHERE bo.bes_bestelopdr_key = fg.bes_bestelopdr_key
|
||
AND bo.mld_adres_key_lev = ma.mld_adres_key )),
|
||
101, -- Bergen op Zoom BOZ
|
||
'00601000',
|
||
102, -- Raamsdonksveer RDV
|
||
'00601000',
|
||
121, -- Genk AASA#66258
|
||
'00602000',
|
||
'00600000'), -- AASA#51917
|
||
'SMKA',
|
||
(select exact_code from aaxx_v_exact_code_district_fac ecgf where ecgf.fin_factuur_key = fg.fin_factuur_key),
|
||
'999999'
|
||
) kstplcode,
|
||
DECODE (
|
||
aaxx_get_user,
|
||
'IT', (SELECT DECODE (kp.prs_kostenplaats_nr, '00100001', (SELECT exact_code FROM aaxx_v_exact_code_gebouw_fac ecgf WHERE ecgf.fin_factuur_key = fg.fin_factuur_key),
|
||
DECODE (INSTR(prs_kostenplaats_nr, '/'), 0, '99999999',
|
||
SUBSTR(prs_kostenplaats_nr, INSTR(prs_kostenplaats_nr, '/')+1)))
|
||
FROM prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaats_key = fg.prs_kostenplaats_key),
|
||
'KD999999') kstdrcode,
|
||
fin_btwtabelwaarde_code btw_code,
|
||
lev_kpn,
|
||
administratie
|
||
FROM ( SELECT g.fin_factuur_key,
|
||
opdracht_id,
|
||
project_nummer,
|
||
project_naam,
|
||
fin_factuur_datum,
|
||
fin_factuur_nr,
|
||
prs_bedrijf_key,
|
||
fin_factuur_debiteur_nr,
|
||
fin_factuur_opmerking,
|
||
SUM (fin_factuurregel_totaal) bedrag,
|
||
SUM (fin_factuurregel_totaal + fin_factuurregel_btw) bedrag_incl,
|
||
fin_btwtabelwaarde_code,
|
||
prs_kostensoort_oms,
|
||
prs_kostensoort_refcode,
|
||
mld_opdr_key,
|
||
cnt_contract_key,
|
||
bes_bestelopdr_key,
|
||
prs_kostenplaats_key,
|
||
lev_kpn,
|
||
administratie
|
||
FROM aaxx_v_factuur_gegevens g, aaxx_exp_factuur e
|
||
WHERE fin_factuur_statuses_key = 6
|
||
AND g.fin_factuur_key = e.fin_factuur_key
|
||
GROUP BY g.fin_factuur_key,
|
||
opdracht_id,
|
||
project_nummer,
|
||
project_naam,
|
||
fin_factuur_datum,
|
||
fin_factuur_nr,
|
||
prs_bedrijf_key,
|
||
fin_factuur_debiteur_nr,
|
||
fin_factuur_opmerking,
|
||
fin_btwtabelwaarde_code,
|
||
prs_kostensoort_oms,
|
||
prs_kostensoort_refcode,
|
||
mld_opdr_key,
|
||
cnt_contract_key,
|
||
bes_bestelopdr_key,
|
||
prs_kostenplaats_key,
|
||
lev_kpn,
|
||
administratie) fg;
|
||
|
||
-- View om te bepalen welke administatie we moeten gebruiken. AAIT heeft drie administraties.
|
||
-- De andere accounts vooralsnog <20><>n
|
||
CREATE OR REPLACE VIEW aaxx_v_administratie
|
||
AS
|
||
SELECT '001' administratie
|
||
FROM DUAL
|
||
WHERE aaxx_get_user = 'IT'
|
||
UNION ALL
|
||
SELECT '012'
|
||
FROM DUAL
|
||
WHERE aaxx_get_user = 'IT'
|
||
UNION ALL
|
||
SELECT '013'
|
||
FROM DUAL
|
||
WHERE aaxx_get_user = 'IT'
|
||
UNION ALL
|
||
SELECT NULL
|
||
FROM DUAL
|
||
WHERE aaxx_get_user <> 'IT';
|
||
|
||
-- Procedure om alle facturen te exporteren naar exact.
|
||
CREATE OR REPLACE PROCEDURE aaxx_select_exact_xml (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c (c_administratie VARCHAR2)
|
||
IS
|
||
SELECT crdnr, factuur_nr, MAX(datum) datum
|
||
FROM aaxx_v_bron_export_exact_xml
|
||
WHERE COALESCE(administratie, 'LEEG') = COALESCE(c_administratie, 'LEEG')
|
||
GROUP BY crdnr, factuur_nr;
|
||
|
||
CURSOR c_sub (c_administratie VARCHAR2, c_crdnr VARCHAR2, c_factuur_nr VARCHAR2)
|
||
IS
|
||
SELECT *
|
||
FROM aaxx_v_bron_export_exact_xml
|
||
WHERE COALESCE(crdnr, 'CrdNr') = COALESCE(c_crdnr, 'CrdNr')
|
||
AND factuur_nr = c_factuur_nr
|
||
AND COALESCE(administratie, 'LEEG') = COALESCE(c_administratie, 'LEEG');
|
||
|
||
CURSOR c_adm
|
||
IS
|
||
SELECT * FROM aaxx_v_administratie;
|
||
|
||
v_order_count NUMBER;
|
||
v_amount_sum NUMBER(10,2);
|
||
v_amount_sum_incl NUMBER(10,2);
|
||
v_count NUMBER;
|
||
v_sub_count NUMBER;
|
||
v_bestand VARCHAR2(12);
|
||
v_boekstuknummer NUMBER;
|
||
v_crdnr PRS_BEDRIJF.PRS_LEVERANCIER_NR%TYPE;
|
||
v_factuur_nr FIN_FACTUUR.FIN_FACTUUR_NR%TYPE;
|
||
v_prefix VARCHAR2(10);
|
||
|
||
BEGIN
|
||
|
||
v_order_count := 0;
|
||
v_amount_sum := 0;
|
||
v_amount_sum_incl := 0;
|
||
v_bestand := SUBSTR(p_applname, 1, 12);
|
||
v_crdnr := 'Q';
|
||
v_factuur_nr := 'Q';
|
||
|
||
-- Eerst opruiming
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
|
||
-- Verwijder het kenmerk boekstuknummer van de facturen die niet op verwerkt staan
|
||
-- ## AAIT#36589
|
||
DELETE fin_kenmerkfactuur kf
|
||
WHERE fin_kenmerk_key = 3
|
||
AND fin_factuur_key IN (SELECT fin_factuur_key
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_statuses_key <> 7);
|
||
|
||
-- Bewaar de factuur keys in een tijdelijke tabel zodat bij het verwerken (nieuwe export)
|
||
-- deze keys gebruikt kunnen worden.
|
||
DELETE aaxx_exp_factuur;
|
||
|
||
INSERT INTO aaxx_exp_factuur (fin_factuur_key, administratie)
|
||
( SELECT DISTINCT fin_factuur_key, DECODE(aaxx_get_user, 'IT', prs_kostenplaatsgrp_nr, NULL)
|
||
FROM aaxx_v_factuur_gegevens fg, prs_kostenplaats kp, prs_kostenplaatsgrp kpg
|
||
WHERE fg.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
|
||
AND fg.fin_factuur_statuses_key = 6
|
||
AND fg.fin_factuur_datum > SYSDATE - (5 * 365) -- Check op geldige factuurdatum:
|
||
AND fg.fin_factuur_datum < SYSDATE + 365 -- facturen mogen niet ouder zijn dan 5 jaar of meer dan <20><>n jaar in de toekomst.
|
||
);
|
||
|
||
-- Bepaal het boekstuknummer (key 3) met het hoogste nummer van dit jaar
|
||
-- ## AAIT#36589
|
||
|
||
SELECT MAX(fin_kenmerkfactuur_waarde)
|
||
INTO v_boekstuknummer
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerk_key = 3
|
||
AND SUBSTR(fin_kenmerkfactuur_waarde,1,2) = TO_CHAR(SYSDATE, 'YY');
|
||
|
||
IF v_boekstuknummer IS NULL
|
||
THEN
|
||
v_boekstuknummer := FAC.safe_to_number(TO_CHAR(SYSDATE, 'YY') || '000000');
|
||
END IF;
|
||
|
||
FOR rec_adm IN c_adm
|
||
LOOP
|
||
BEGIN
|
||
v_order_count := 0;
|
||
v_amount_sum := 0;
|
||
v_amount_sum_incl := 0;
|
||
IF rec_adm.administratie IS NULL
|
||
THEN
|
||
v_prefix := NULL;
|
||
ELSE
|
||
v_prefix := rec_adm.administratie || '##';
|
||
END IF;
|
||
-- header
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<?xml version="1.0" encoding="windows-1252"?>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<eExact>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<GLEntries>');
|
||
|
||
FOR rec IN c(rec_adm.administratie)
|
||
LOOP
|
||
BEGIN
|
||
-- Als we een nieuwe leverancier/factuurnummer tegenkomen gaan we het boekstuknummer ophogen.
|
||
IF rec.crdnr <> v_crdnr OR rec.factuur_nr <> v_factuur_nr
|
||
THEN
|
||
v_boekstuknummer := v_boekstuknummer + 1;
|
||
v_crdnr := rec.crdnr;
|
||
v_factuur_nr := rec.factuur_nr;
|
||
END IF;
|
||
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<GLEntry status="E" entry="' || xml.char_to_html(v_boekstuknummer) || '">');
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'Description', rec.factuur_nr);
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'Date', rec.datum);
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'DocumentDate', TO_CHAR(SYSDATE, 'YYYY-MM-DD') );
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Journal type="I" code="42"/>');
|
||
v_sub_count := 1;
|
||
FOR rec1 IN c_sub (rec_adm.administratie, v_crdnr, v_factuur_nr)
|
||
LOOP
|
||
BEGIN
|
||
-- Eerst maar even een kenmerk voor het boestuknummer aanmaken
|
||
aaxx_set_kenmerk('FIN', 3, rec1.fin_factuur_key, v_boekstuknummer, 0);
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<FinEntryLine number="' || v_sub_count || '" subtype="T" type="N">');
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'Date', rec1.datum);
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<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_element_p (v_bestand, v_prefix, 'Description', rec1.oms25);
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Project code="' || rec1.projectnr || '" type="I" status="A">');
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'Description', rec1.projectnaam);
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</Project>');
|
||
ELSE
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'Description', rec1.oms25);
|
||
END IF;
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Costcenter code="' || xml.char_to_html(rec1.kstplcode) || '"/>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Costunit code="' || xml.char_to_html(rec1.kstdrcode) || '"/>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Creditor number="' || xml.char_to_html(rec1.crdnr) || '"/>');
|
||
-- AAIT#23838: kostensoort niet opnemen voor inkoopfacturen IT
|
||
IF ( NOT(aaxx_get_user = 'IT' AND COALESCE(rec1.lev_kpn, 'GEEN') <> '2000700') )
|
||
THEN
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Item code="' || xml.char_to_html(rec1.itemcode) || '"/>');
|
||
END IF;
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Amount>');
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'Debit', rec1.bedrag_txt);
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<VAT code="' || xml.char_to_html(rec1.btw_code) || '"/>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</Amount>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Payment>');
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'Reference', rec1.betaalref);
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'InvoiceNumber', rec1.fin_factuur_key); -- of moet dit v_boekstuknummer worden????
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</Payment>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<FinReferences>');
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'YourRef', rec1.betaalref);
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'DocumentDate', TO_CHAR(SYSDATE, 'YYYY-MM-DD') );
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</FinReferences>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<FreeFields>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<FreeTexts>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<FreeText number="3">' || rec1.opdracht_id || '</FreeText>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</FreeTexts>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</FreeFields>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</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;
|
||
IF v_sub_count = 1
|
||
THEN
|
||
fac.writelog (p_applname, 'E', 'Fout tijdens Exact export. Factuurnummer: ' || v_factuur_nr || ' Crdnr: ' || v_crdnr,'');
|
||
END IF;
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</GLEntry>');
|
||
v_order_count := v_order_count + 1;
|
||
END;
|
||
END LOOP;
|
||
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</GLEntries>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</eExact>');
|
||
|
||
fac.writelog (p_applname, 'S', 'Exact export uitgevoerd (' || rec_adm.administratie || '). Aantal regels: ' || v_order_count || ' Totaal bedrag: ' || v_amount_sum || ' Totaal bedrag (incl): ' || v_amount_sum_incl, '');
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
END;
|
||
/
|
||
|
||
/* nieuwe procedure om oude aaxx_select_exact_xml procedure op termijn te vervangen. Door gebruik te maken
|
||
van de nieuwe procedure hoeft er per klant geen specifieke export in de cust.sql. De prefix in de
|
||
export tabel staat dan op AAXX */
|
||
CREATE OR REPLACE PROCEDURE aaxx_select_exact (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_select_exact_xml (p_applname, p_applrun);
|
||
END;
|
||
/
|
||
|
||
-- Procedure om alle facturen te exporteren naar exact.
|
||
CREATE OR REPLACE PROCEDURE aaxx_export_exact (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
v_errormsg VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
-- functionaliteit verplaatst naar aaxx_select_exact_xml procedure om er zeker van te zijn dat
|
||
-- de aaxx_exp_factuur tabel eerst gevuld wordt alvorens de XML gegenereerd wordt. AAVL#27120 en AAEN#26362
|
||
|
||
-- AAFM#40866
|
||
-- Verwerk actie direct starten na de EXPORT_EXACT
|
||
INSERT INTO imp_schedule (imp_schedule_name) VALUES ('VERWERK_EXACT');
|
||
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.
|
||
-- Gebruik verkoopfactuur:
|
||
-- fin_verkoopfactuur_id datum + referentie
|
||
-- fin_verkoopfactuur_xmlnode opdracht / contract / bestelopdr / opdr_uren
|
||
-- fin_verkoopfactuur_refkey key naar het record
|
||
-- fin_verkoopfactuur_aanmaak sysdate
|
||
-- prs_kostenplaats_nr kostenplaatsnr
|
||
-- prs_debiteur_naam debiteurnummer
|
||
-- prs_kostensoort_oms kostensoort
|
||
-- prs_kostensoort_opmerking kostensoort_opmerking wordt niet gebruikt voor verkoopfacturen
|
||
-- prs_kostensoort_refcode grootboekrekening
|
||
-- prs_kostensoortgrp_oms referentie, omschrijving van de factuur (kolom 4 vd hoofdregel)
|
||
-- fin_verkoopfactuur_omschr omschrijving subregel
|
||
-- fin_verkoopfactuur_bedrag
|
||
-- fin_btwtabelwaarde_code
|
||
-- fin_verkoopfactuur_maand jaar in verband met boekingen op balansrekening als op vorige jaren
|
||
-- fin_verkoopfactuur_c1 Exact code van het gebouw. Is kenmerk van gebouw
|
||
-- fin_verkoopfactuur_c2 Groepering van de kopregel van de factuur.
|
||
-- fin_verkoopfactuur_c3 Volgorde van de subregels van de factuur.
|
||
-- fin_verkoopfactuur_c4 Alleen bij RABO gevuld voor EXACT_VASTVAR (verkoopinterface voor interne opdrachttype 'Vast/Variabel')
|
||
|
||
|
||
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
-- fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_export_verwerk_exact (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c_fact
|
||
IS
|
||
SELECT DISTINCT f.fin_factuur_key
|
||
FROM aaxx_exp_factuur f
|
||
, aaxx_v_factuur_gegevens fg
|
||
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
||
AND fg.fin_factuur_statuses_key = 6;
|
||
|
||
CURSOR c_opdr
|
||
IS
|
||
SELECT distinct fg.mld_opdr_key, mld_statusopdr_key, m.mld_melding_status, m.mld_melding_key
|
||
FROM aaxx_exp_factuur f
|
||
, aaxx_v_factuur_gegevens fg
|
||
, mld_opdr o
|
||
, mld_melding m
|
||
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
||
AND fg.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND laatste_factuur = 1
|
||
AND fg.fin_factuur_statuses_key = 6;
|
||
|
||
CURSOR c_bes
|
||
IS
|
||
SELECT bo.*
|
||
FROM aaxx_exp_factuur f
|
||
, aaxx_v_factuur_gegevens fg
|
||
, bes_bestelopdr bo
|
||
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
||
AND fg.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND laatste_factuur = 1
|
||
AND fg.fin_factuur_statuses_key = 6;
|
||
|
||
-- pas de bedragen in het factuurschema aan als de laatste factuur ontvangen is.
|
||
CURSOR c_cnt
|
||
IS
|
||
SELECT DISTINCT fg.cnt_contract_key, fs.cnt_factuurschema_key
|
||
FROM aaxx_exp_factuur f,
|
||
aaxx_v_factuur_gegevens fg,
|
||
cnt_contract c,
|
||
cnt_factuurschema fs
|
||
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
||
AND fg.cnt_contract_key = c.cnt_contract_key
|
||
AND c.cnt_contract_key = fs.cnt_contract_key
|
||
AND fg.fin_factuur_boekmaand = fs.cnt_factuurschema_boekmaand
|
||
AND laatste_factuur = 1
|
||
AND fg.fin_factuur_statuses_key = 6;
|
||
|
||
CURSOR c_sync_kostensoort
|
||
IS
|
||
SELECT COALESCE (kstd.prs_kostensoort_key, kvg.prs_kostensoort_key)
|
||
std_kostensoort_key,
|
||
f.prs_kostensoort_key fac_kostensoort_key,
|
||
f.fin_factuur_key
|
||
FROM fin_factuur f,
|
||
aaxx_exp_factuur ef,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline md,
|
||
prs_kostensoort kstd,
|
||
prs_kostensoort kvg
|
||
WHERE f.fin_factuur_key = ef.fin_factuur_key
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND std.prs_kostensoort_key = kstd.prs_kostensoort_key(+)
|
||
AND md.prs_kostensoort_key = kvg.prs_kostensoort_key(+);
|
||
|
||
v_errormsg VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanvrager NUMBER;
|
||
v_bestelling_key NUMBER;
|
||
v_logdate DATE;
|
||
BEGIN
|
||
v_errormsg := 'Geen akties';
|
||
|
||
-- Facilitor user
|
||
v_aanvrager := 4;
|
||
|
||
-- AAIT#34097 aanpassen kostensoort bij factuur. Soms wordt de stdmelding aangepast terwijl
|
||
-- er al een factuur geboekt is. Door bij het verwerken van de factuur deze kostensoort nog
|
||
-- aan te passen wordt voorkomen dat hier verschillen gaan ontstaan.
|
||
-- AAIT#36442 AAIT niet meenemen in dit mechanisme omdat bij AAIT de kostensoort uit de opdracht
|
||
-- gehaald wordt.
|
||
IF aaxx_get_user <> 'IT'
|
||
THEN
|
||
v_errormsg := 'Aanpassen kostensoort';
|
||
FOR reck IN c_sync_kostensoort
|
||
LOOP
|
||
BEGIN
|
||
IF reck.fac_kostensoort_key <> reck.std_kostensoort_key
|
||
THEN
|
||
UPDATE fin_factuur
|
||
SET prs_kostensoort_key = reck.std_kostensoort_key
|
||
WHERE fin_factuur_key = reck.fin_factuur_key;
|
||
|
||
-- Pas de login aan
|
||
INSERT INTO fac_tracking (fac_tracking_refkey, fac_srtnotificatie_key, fac_tracking_oms)
|
||
SELECT reck.fin_factuur_key, fac_srtnotificatie_key, 'Kostensoort aangepast in factuur export'
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'FINUPD';
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
|
||
-- Verkoopinterface
|
||
|
||
v_logdate := SYSDATE;
|
||
-- voeg SA en ST opdrachten toe aan de fin_verkoopfacturen (vh. verkoopbuffer)
|
||
-- BTW tarief in verkoopbuffer is altijd 19 procent (AADS#18338)
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_bedrijf_key, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3, fin_verkoopfactuur_n1, fin_verkoopfactuur_n2
|
||
)
|
||
SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr, 1,30 ),
|
||
'opdracht',
|
||
o.mld_opdr_key,
|
||
v_logdate,
|
||
DECODE (aaxx_get_user, 'AH', k.prs_kostenplaats_nr,
|
||
'DOW', k.prs_kostenplaats_nr,
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520'),
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'L C', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,5), 'L CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520'),
|
||
'L CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr))),
|
||
'EXPO', DECODE(aaxx_get_top_dep_code(k.prs_kostenplaats_nr), '913918', '03701000',
|
||
'4001', '03700000',
|
||
'Onbekend'),
|
||
'ESSENT', '912001',
|
||
'INLO', k.prs_kostenplaats_nr, -- Wordt niet gebruikt
|
||
'NMM', 'MGB',
|
||
'SABIC', DECODE (to_char(opdr_datum, 'YYYY'), '2012', k.prs_kostenplaats_nr,
|
||
'2013', k.prs_kostenplaats_nr,
|
||
aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
SUBSTR (prs_kostenplaats_nr, 1, 30)) prs_kostenplaats_nr,
|
||
DECODE (aaxx_get_user, 'AH', DECODE(aaxx_get_top_bedrijf_key(k.prs_kostenplaats_nr), 13383, k.prs_kostenplaats_nr, aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6),
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520'),
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'L C', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,5), 'L CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520'),
|
||
'L CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr))),
|
||
'EXPO', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'INLO', (SELECT kp.prs_kostenplaats_nr FROM prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaats_key = aaxx_get_top_kpn_key (k.prs_kostenplaats_key)),
|
||
'ESSENT', '912001',
|
||
'NMM', DECODE(k.prs_kostenplaats_nr,
|
||
'0001', '913799', -- Heijmans
|
||
'0002', '913810', -- Vermaat
|
||
'0003', '913766', -- Defensie
|
||
'0004', '913776', -- Stichting Nationaal Militair Museum
|
||
'Onbekend'
|
||
),
|
||
'RABO', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'SABIC', DECODE (to_char(opdr_datum, 'YYYY'), '2012', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'2013', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
(SELECT distinct prs_leverancier_nr FROM prs_bedrijf b, prs_afdeling a
|
||
WHERE b.prs_bedrijf_key = a.prs_bedrijf_key
|
||
AND b.prs_bedrijf_verwijder IS NULL
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_afdeling_naam = aaxx_get_top_dep_code(k.prs_kostenplaats_nr))),
|
||
'SMKA', COALESCE(aaxx_get_top_afdeling_kpkenm(k.prs_kostenplaats_key), TO_CHAR(k.prs_kostenplaats_nr)),
|
||
SUBSTR (prs_kostenplaats_nr, 1, 30)) debiteur,
|
||
b.prs_bedrijf_key,
|
||
ks.prs_kostensoort_oms || DECODE(TO_CHAR(opdr_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') ,
|
||
ks.prs_kostensoort_opmerking,
|
||
SUBSTR(DECODE (aaxx_get_user,
|
||
'AH', DECODE(SUBSTR(ks.prs_kostensoort_upper,1,2), 'CV', ksg.prs_kostensoortgrp_oms || DECODE(aaxx_get_top_bedrijf_key(k.prs_kostenplaats_nr), 13383, k.prs_kostenplaats_nr, aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
sd.ins_srtdiscipline_prefix || m.mld_melding_key),
|
||
'DOW', 'Service Charges',
|
||
'EXPO', DECODE(ks.prs_kostensoort_upper, 'NC PROJ', 'Projecten',
|
||
'Servicekosten Core Variabel'),
|
||
'INLO', DECODE(ks.prs_kostensoort_upper, 'NC PROJ', 'Projecten', 'Servicekosten Core Variabel'),
|
||
'RABO', DECODE(sd.ins_srtdiscipline_prefix, 'PR', 'Projecten',
|
||
'Servicekosten ' || aaxx_get_dep_code(k.prs_kostenplaats_nr)),
|
||
'SABIC', DECODE (l.alg_locatie_code, 'BOZ', 'Core Variabel ' || to_char(sysdate, 'Month'),
|
||
'RDV', 'Core Variabel ' || to_char(sysdate, 'Month'),
|
||
ksg.prs_kostensoortgrp_oms || ' ' || aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SMKA', DECODE(ks.prs_kostensoort_upper, 'NC PROJ', 'Projecten', 'Servicekosten Core Variabel'),
|
||
ksg.prs_kostensoortgrp_oms || DECODE (aaxx_get_user, 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ' ' || l.alg_locatie_code,
|
||
DECODE (SUBSTR(ks.prs_kostensoort_upper,1,5) , 'L CV ', ' ' || l.alg_locatie_code)),
|
||
'NMM', DECODE(k.prs_kostenplaats_nr, '0001', ' Heijmans',
|
||
'0002', ' Vermaat',
|
||
'0003', ' Defensie',
|
||
'0004', ' NMM',
|
||
' Onbekend')
|
||
)
|
||
)
|
||
, 1, 60) prs_kostensoortgrp_oms,
|
||
DECODE(aaxx_get_user, 'SABIC', ks.prs_kostensoort_altcode || ' ' || fin_btwtabelwaarde_code,
|
||
'EXPO', DECODE (prs_kostensoort_oms, 'NC PROJ', 'Project ' || m.mld_melding_onderwerp,
|
||
sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr || ' ' || d.ins_discipline_omschrijving),
|
||
'INLO', DECODE (prs_kostensoort_oms, 'NC PROJ', 'Project ' || m.mld_melding_onderwerp,
|
||
sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr || ' ' || d.ins_discipline_omschrijving),
|
||
'SMKA', DECODE (prs_kostensoort_oms, 'NC PROJ', 'Project ' || m.mld_melding_onderwerp,
|
||
sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr || ' ' || d.ins_discipline_omschrijving),
|
||
sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr || ' ' || d.ins_discipline_omschrijving
|
||
|| ' ('
|
||
|| (SELECT MAX(mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND aaxx_get_user = 'RABO'
|
||
AND k.mld_srtkenmerk_key = 55 -- projectnaam
|
||
AND km.mld_melding_key = m.mld_melding_key)
|
||
|| ')')
|
||
omschrijving,
|
||
ROUND (fg.bedrag
|
||
* COALESCE ( (SELECT u.uplift
|
||
FROM aaxx_imp_uplift u
|
||
WHERE u.prs_leverancier_nr = b.prs_leverancier_nr
|
||
AND UPPER(soort_order) = 'WO'
|
||
AND UPPER (u.prs_kostensoort_oms) =
|
||
ks.prs_kostensoort_upper
|
||
AND fg.fin_factuur_boekmaand =
|
||
u.jaar
|
||
|| '-'
|
||
|| LTRIM (TO_CHAR (u.maand, '00'))),
|
||
DECODE (aaxx_get_user, 'NMM', 1.1, 1)
|
||
),
|
||
2
|
||
),
|
||
DECODE (aaxx_get_user,
|
||
'EXPO' , DECODE (ks.prs_kostensoort_upper, 'CV CONS AUT', 2, fin_btwtabelwaarde_code), -- code 2 is 6 procent
|
||
fin_btwtabelwaarde_code) fin_btwtabelwaarde_code,
|
||
to_char(opdr_datum, 'YYYY'),
|
||
DECODE (aaxx_get_user,
|
||
'NMM', 'MGB',
|
||
'INLO', DECODE(aaxx_get_top_bedrijf_key (k.prs_kostenplaats_nr), 2081, '03603000', -- Henkel
|
||
2082, '03602000', -- VEH
|
||
2083, '03604000', -- Zwaansvliet
|
||
'onbekend'),
|
||
'SABIC', DECODE (l.alg_locatie_code, 'BOZ', '00601000',
|
||
'RDV', '00601000',
|
||
'00600000'),
|
||
'SMKA', COALESCE(exact2.exact_code,'onbekend'),
|
||
COALESCE(exact.exact_code, alg_gebouw_code)), -- C1
|
||
SUBSTR (
|
||
DECODE (aaxx_get_user, 'AH', DECODE (ks.prs_kostensoort_upper, 'NC PROJ', TO_CHAR(m.mld_melding_key)),
|
||
'EXPO', DECODE (prs_kostensoort_oms, 'NC PROJ', m.mld_melding_key || '-') || alg_locatie_code,
|
||
'INLO', DECODE (prs_kostensoort_oms, 'NC PROJ', m.mld_melding_key || '-',
|
||
(SELECT kp.prs_kostenplaats_nr FROM prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaats_key = aaxx_get_top_kpn_key (k.prs_kostenplaats_key))),
|
||
'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8) ||
|
||
DECODE(substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,3),
|
||
'911', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,5), 'NC P ', 'PR', 'NC/CV'),
|
||
'912', 'CV/NC/PR',
|
||
'913', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,7), 'COR VAR', 'CV', 'NC/PR'),
|
||
'Onbekend') ||
|
||
substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8),
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520') || l.alg_locatie_code,
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'L C', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,5), 'L CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520') || l.alg_locatie_code,
|
||
'L CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr))),
|
||
'RABO', aaxx_get_dep_code(k.prs_kostenplaats_nr) || DECODE (prs_kostensoort_oms, 'NC PROJ', m.mld_melding_key),
|
||
'SABIC',DECODE (l.alg_locatie_code, 'BOZ', to_char(sysdate, 'Month'),
|
||
'RDV', to_char(sysdate, 'Month'),
|
||
aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SMKA', DECODE (prs_kostensoort_oms, 'NC PROJ', 'NC- ' || m.mld_melding_key,
|
||
DECODE (ksg.prs_kostensoortgrp_oms, 'Core Variable', 'CV',
|
||
'Core Variable Enduser', 'CVE',
|
||
'onbekend') || '-' || COALESCE(aaxx_get_top_afdeling_kpkenm(k.prs_kostenplaats_key), TO_CHAR(k.prs_kostenplaats_nr))),
|
||
'')
|
||
, 1, 12) groepering, -- C2
|
||
DECODE (aaxx_get_user, 'DOW', 'A' || prs_kostensoort_oms,
|
||
'ESSENT', (SELECT uplift
|
||
FROM aaxx_imp_uplift u
|
||
WHERE u.prs_kostensoort_oms = ks.prs_kostensoort_oms),
|
||
'') subregelvolgorde, -- C3
|
||
l.alg_locatie_key, -- N1
|
||
aaxx_get_top_bedrijf_key(k.prs_kostenplaats_nr) -- N2 bedrijfskey van de hoogste afdeling
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
prs_bedrijf b,
|
||
prs_kostenplaats k,
|
||
mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp ksg,
|
||
aaxx_exp_factuur f,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_v_onroerendgoed og,
|
||
aaxx_v_exact_code_gebouw exact,
|
||
aaxx_v_exact_code_district exact2,
|
||
(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,
|
||
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,
|
||
prs_kostensoort_refcode,
|
||
fin_factuurregel_totaal) fg
|
||
WHERE fg.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND fg.mld_opdr_key = o.mld_opdr_key
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
||
AND og.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key =exact2.alg_district_key (+)
|
||
AND og.alg_gebouw_key = exact.alg_gebouw_key(+)
|
||
AND fg.fin_factuur_key = f.fin_factuur_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND (( sd.ins_srtdiscipline_prefix = 'SA'
|
||
AND aaxx_get_user <> 'AH'
|
||
AND aaxx_get_user <> 'DSM'
|
||
AND aaxx_get_user <> 'SABIC'
|
||
AND aaxx_get_user <> 'INLO'
|
||
AND aaxx_get_user <> 'DOW'
|
||
AND aaxx_get_user <> 'NMM'
|
||
AND aaxx_get_user <> 'RABO'
|
||
AND aaxx_get_user <> 'ESSENT'
|
||
AND aaxx_get_user <> 'EXPO'
|
||
AND aaxx_get_user <> 'SMKA')
|
||
OR ( aaxx_get_user = 'AH'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||
OR ks.prs_kostensoort_upper LIKE 'NC PROJ%')
|
||
)
|
||
OR ( aaxx_get_user = 'DOW'
|
||
AND ( ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
OR ot.mld_typeopdr_omschrijving = 'Projectorder')
|
||
AND ( ks.prs_kostensoort_upper LIKE 'NC %'
|
||
OR ks.prs_kostensoort_upper LIKE 'NC P %'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR MAIL SERVICES'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR VENDING'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR MAIN HANDYMAN'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR GEN TEN SERV'
|
||
)
|
||
)
|
||
OR ( aaxx_get_user = 'DSM'
|
||
AND ( ( SUBSTR(ks.prs_kostensoort_upper,1,3) = 'CV '
|
||
OR SUBSTR(ks.prs_kostensoort_upper,1,5) = 'L CV ')
|
||
AND g.alg_gebouw_code NOT IN ('122-170', '122-200', '122-094', '122-092')
|
||
AND l.alg_locatie_key NOT IN ('23', '41')) -- Waalwijk en de Beitel
|
||
OR SUBSTR(ks.prs_kostensoort_upper,1,3) = 'CVE'
|
||
OR SUBSTR(ks.prs_kostensoort_upper,1,5) = 'L CVE'
|
||
)
|
||
OR ( aaxx_get_user = 'ESSENT'
|
||
AND ks.prs_kostensoort_upper LIKE 'CVE%'
|
||
AND ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
)
|
||
OR ( aaxx_get_user = 'EXPO'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||
OR ks.prs_kostensoort_upper LIKE 'CVE %'
|
||
OR ks.prs_kostensoort_upper LIKE 'NC PROJ%')
|
||
)
|
||
OR ( aaxx_get_user = 'INLO'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||
OR ks.prs_kostensoort_upper LIKE 'CVE %'
|
||
OR ks.prs_kostensoort_upper LIKE 'NC PROJ')
|
||
AND NOT EXISTS (SELECT ao.alg_onrgoed_key
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_onrgoed_key = g.alg_gebouw_key
|
||
AND ao.alg_onrgoed_niveau='G'
|
||
AND ao.alg_kenmerk_key = 1100 -- kenmerkveld klant
|
||
AND ao.alg_onrgoedkenmerk_waarde= '264') -- waarde Greenport Venlo - Alleen alle andere locaties meenemen (VEH, Henkel,Zwaansvliet)
|
||
)
|
||
OR ( aaxx_get_user = 'NMM'
|
||
AND ks.prs_kostensoort_upper LIKE 'CVE%'
|
||
)
|
||
OR ( aaxx_get_user = 'RABO'
|
||
AND ( ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||
AND ks.prs_kostensoort_upper <> 'CV DOC POST'
|
||
AND ot.mld_typeopdr_omschrijving = 'Workorder')
|
||
OR ot.mld_typeopdr_omschrijving = 'Projectorder'
|
||
)
|
||
)
|
||
OR ( aaxx_get_user = 'SABIC'
|
||
AND ( ( o.mld_opdr_datumbegin < to_date ('20180101', 'yyyymmdd') -- Voor sabic geldt in 2018 een ander mechanisme (AASA#28673)
|
||
AND ks.prs_kostensoort_upper LIKE 'CV %'
|
||
AND ks.prs_kostensoort_upper <> 'CV CHIP'
|
||
AND ( o.mld_opdr_datumbegin > to_date ('20150101', 'yyyymmdd') -- Voor sabic geldt voor 2015 een ander mechanisme (AASA#31618)
|
||
OR ( ks.prs_kostensoort_upper <> 'CV CONS REST'
|
||
AND ks.prs_kostensoort_upper <> 'CV CONS AUT'
|
||
AND ks.prs_kostensoort_upper <> 'CV SCH OVR'
|
||
AND ks.prs_kostensoort_upper <> 'CV DOC POST'
|
||
AND ks.prs_kostensoort_upper <> 'CV AFVAL REST'
|
||
)
|
||
)
|
||
AND ( ks.prs_kostensoort_upper <> 'CV EIG BOUW PL' OR ot.mld_typeopdr_omschrijving = 'Workorder')
|
||
)
|
||
OR ( o.mld_opdr_datumbegin > to_date ('20180101', 'yyyymmdd') -- Voor sabic geldt voor 2018 een ander mechanisme (AASA#28673)
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||
OR ks.prs_kostensoort_upper LIKE 'CVE%')
|
||
)
|
||
)
|
||
)
|
||
OR ( aaxx_get_user = 'SMKA'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||
OR ks.prs_kostensoort_upper LIKE 'CVE %'
|
||
OR ks.prs_kostensoort_upper LIKE 'NC PROJ')
|
||
)
|
||
);
|
||
|
||
|
||
|
||
-- Voeg contracten toe aan de verkoopinterface
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_bedrijf_key, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3, fin_verkoopfactuur_n1, fin_verkoopfactuur_n2
|
||
)
|
||
SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || 'C' || cnt_contract_nummer_intern || DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie), 1,30 ),
|
||
'contract',
|
||
c.cnt_contract_key,
|
||
v_logdate,
|
||
DECODE (aaxx_get_user,
|
||
'AH', k.prs_kostenplaats_nr,
|
||
'EXPO', DECODE(aaxx_get_top_dep_code(k.prs_kostenplaats_nr), '913918', '03701000',
|
||
'4001', '03700000',
|
||
'Onbekend'),
|
||
'NMM', g.exact_code,
|
||
'DOW', k.prs_kostenplaats_nr,
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520'),
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'L C', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,5), 'L CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520'),
|
||
'L CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr))),
|
||
'INLO', k.prs_kostenplaats_nr, -- Wordt niet gebruikt.
|
||
'SMKA', k.prs_kostenplaats_nr, -- Wordt niet gebruikt.
|
||
'RABO', g.exact_code,
|
||
'SABIC', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)
|
||
) prs_kostenplaats_nr,
|
||
DECODE (aaxx_get_user,
|
||
'AH', DECODE(aaxx_get_top_bedrijf_key(k.prs_kostenplaats_nr), 13383, k.prs_kostenplaats_nr, aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'EXPO', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'NMM', DECODE(k.prs_kostenplaats_nr,
|
||
'0001', '913799', -- Heijmans
|
||
'0002', '913810', -- Vermaat
|
||
'0003', '913766', -- Defensie
|
||
'0004', '913776', -- Stichting Nationaal Militair Museum
|
||
'Onbekend'
|
||
),
|
||
'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6),
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520'),
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'L C', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,5), 'L CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520'),
|
||
'L CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr))),
|
||
'INLO', (SELECT kp.prs_kostenplaats_nr FROM prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaats_key = aaxx_get_top_kpn_key (k.prs_kostenplaats_key)),
|
||
'RABO', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'SABIC', (SELECT distinct prs_leverancier_nr FROM prs_bedrijf b, prs_afdeling a
|
||
WHERE b.prs_bedrijf_key = a.prs_bedrijf_key
|
||
AND b.prs_bedrijf_verwijder IS NULL
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_afdeling_naam = aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SMKA', COALESCE(aaxx_get_top_afdeling_kpkenm(k.prs_kostenplaats_key), TO_CHAR(k.prs_kostenplaats_nr))
|
||
) debiteur,
|
||
b.prs_bedrijf_key,
|
||
ks.prs_kostensoort_oms || DECODE(TO_CHAR(opdr_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') ,
|
||
ks.prs_kostensoort_opmerking,
|
||
DECODE (aaxx_get_user,
|
||
'AH', ksg.prs_kostensoortgrp_oms || DECODE(aaxx_get_top_bedrijf_key(k.prs_kostenplaats_nr), 13383, k.prs_kostenplaats_nr, aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'DOW', 'Service Charges',
|
||
'EXPO', 'Servicekosten Core Variabel',
|
||
'INLO', 'Servicekosten Core Variabel',
|
||
'RABO', 'Servicekosten ' || aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'SABIC', DECODE (l.alg_locatie_code, 'BOZ', 'Core Variabel ' || to_char(sysdate, 'Month'),
|
||
'RDV', 'Core Variabel ' || to_char(sysdate, 'Month'),
|
||
ksg.prs_kostensoortgrp_oms || ' ' || aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SMKA', 'Servicekosten Core Variabel',
|
||
ksg.prs_kostensoortgrp_oms || DECODE (aaxx_get_user, 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ' ' || l.alg_locatie_code,
|
||
DECODE (SUBSTR(ks.prs_kostensoort_upper,1,5) , 'L CV ', ' ' || l.alg_locatie_code)),
|
||
'NMM', DECODE(k.prs_kostenplaats_nr, '0001', ' Heijmans',
|
||
'0002', ' Vermaat',
|
||
'0003', ' Defensie',
|
||
'0004', ' NMM',
|
||
' Onbekend'))
|
||
) prs_kostensoortgrp_oms,
|
||
DECODE(aaxx_get_user, 'SABIC', ks.prs_kostensoort_altcode || ' ' || fin_btwtabelwaarde_code,
|
||
'C' || cnt_contract_nummer_intern
|
||
|| DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie))
|
||
omschrijving,
|
||
DECODE (aaxx_get_user,
|
||
'NMM', ROUND (fg.bedrag * 1.1,2),
|
||
fg.bedrag),
|
||
DECODE (aaxx_get_user,
|
||
'EXPO' , DECODE (ks.prs_kostensoort_upper, 'CV CONS AUT', 2, fin_btwtabelwaarde_code), -- code 2 is 6 procent
|
||
fin_btwtabelwaarde_code) fin_btwtabelwaarde_code,
|
||
to_char(opdr_datum, 'YYYY'),
|
||
DECODE(aaxx_get_user, 'SABIC', DECODE (l.alg_locatie_code, 'BOZ', '00601000',
|
||
'RDV', '00601000',
|
||
'00600000'),
|
||
'INLO', DECODE(aaxx_get_top_bedrijf_key (k.prs_kostenplaats_nr), 2081, '03603000', -- Henkel
|
||
2082, '03602000', -- VEH
|
||
2083, '03604000', -- Zwaansvliet
|
||
'onbekend'),
|
||
'SMKA', COALESCE(exact2.exact_code,'onbekend'),
|
||
COALESCE(g.exact_code, alg_gebouw_code)) exact_code, -- C1
|
||
SUBSTR (
|
||
DECODE (aaxx_get_user, 'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8) ||
|
||
DECODE(substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,3),
|
||
'911', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,5), 'NC P ', 'PR', 'NC/CV'),
|
||
'912', 'CV/NC/PR',
|
||
'913', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,7), 'COR VAR', 'CV', 'NC/PR'),
|
||
'Onbekend') ||
|
||
substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8),
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520') || l.alg_locatie_code,
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'L C', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,5), 'L CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520') || l.alg_locatie_code,
|
||
'L CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr))),
|
||
'EXPO', l.alg_locatie_code,
|
||
'INLO', (SELECT kp.prs_kostenplaats_nr FROM prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaats_key = aaxx_get_top_kpn_key (k.prs_kostenplaats_key)),
|
||
'RABO', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'SABIC',DECODE (l.alg_locatie_code, 'BOZ', to_char(sysdate, 'Month'),
|
||
'RDV', to_char(sysdate, 'Month'),
|
||
aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SMKA', DECODE (ksg.prs_kostensoortgrp_oms, 'Core Variable', 'CV',
|
||
'Core Variable Enduser', 'CVE',
|
||
'onbekend') || '-' || COALESCE(aaxx_get_top_afdeling_kpkenm(k.prs_kostenplaats_key), TO_CHAR(k.prs_kostenplaats_nr)),
|
||
'')
|
||
,1,12) groepering, -- C2
|
||
DECODE (aaxx_get_user, 'DOW', 'A' || prs_kostensoort_oms, '') subregelvolgorde,
|
||
l.alg_locatie_key, -- N1
|
||
aaxx_get_top_bedrijf_key(k.prs_kostenplaats_nr) -- N2 bedrijfskey van de hoogste afdeling
|
||
FROM cnt_contract c,
|
||
prs_bedrijf b,
|
||
prs_kostenplaats k,
|
||
ins_tab_discipline d,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp ksg,
|
||
aaxx_exp_factuur f,
|
||
alg_locatie l,
|
||
(SELECT cnt_contract_key, alg_gebouw_code, exact_code, ag.alg_gebouw_key, ag.alg_locatie_key
|
||
FROM
|
||
(SELECT cnt_contract_key, MIN (cp.cnt_alg_plaats_key) cnt_alg_plaats_key
|
||
FROM cnt_contract_plaats cp
|
||
WHERE cp.cnt_contract_plaats_verwijder IS NULL
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
GROUP BY cnt_contract_key) cp,
|
||
alg_gebouw ag,
|
||
aaxx_v_exact_code_gebouw ae
|
||
WHERE cp.cnt_alg_plaats_key = ag.alg_gebouw_key
|
||
AND cp.cnt_alg_plaats_key = ae.alg_gebouw_key) g,
|
||
aaxx_v_exact_code_district exact2,
|
||
(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,
|
||
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,
|
||
fin_factuurregel_totaal) fg
|
||
WHERE fg.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND fg.cnt_contract_key = c.cnt_contract_key
|
||
AND fg.fin_factuur_key = f.fin_factuur_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key =exact2.alg_district_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND c.cnt_contract_key = g.cnt_contract_key(+)
|
||
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
|
||
AND ( ( aaxx_get_user = 'AH'
|
||
AND ks.prs_kostensoort_upper LIKE 'CV %'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'DOW'
|
||
AND ( ks.prs_kostensoort_upper = 'COR VAR CATE COFFE'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR IND CLO'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR MAIL SERVICES'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR VENDING'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR MAIN HANDYMAN'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR GEN TEN SERV'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR HVAC'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR CLEA BUILDING SAN'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR CLEA VSR KMS')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'DSM'
|
||
AND ( ( SUBSTR(ks.prs_kostensoort_upper,1,3) = 'CV '
|
||
OR SUBSTR(ks.prs_kostensoort_upper,1,5) = 'L CV ')
|
||
AND g.alg_gebouw_code NOT IN ('122-170', '122-200', '122-094', '122-092')
|
||
AND l.alg_locatie_key NOT IN ('23', '41')) -- Waalwijk en de Beitel
|
||
OR SUBSTR(ks.prs_kostensoort_upper,1,3) = 'CVE'
|
||
OR SUBSTR(ks.prs_kostensoort_upper,1,5) = 'L CVE'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'EXPO'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||
OR ks.prs_kostensoort_upper LIKE 'CVE %'
|
||
OR ks.prs_kostensoort_upper = 'NC PROJ')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'INLO'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||
OR ks.prs_kostensoort_upper LIKE 'CVE %'
|
||
)
|
||
AND NOT EXISTS (SELECT ao.alg_onrgoed_key
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_onrgoed_key = g.alg_gebouw_key
|
||
AND ao.alg_onrgoed_niveau='G'
|
||
AND ao.alg_kenmerk_key = 1100 -- kenmerkveld klant
|
||
AND ao.alg_onrgoedkenmerk_waarde= '264') -- waarde Greenport Venlo - Alleen alle andere locaties meenemen (VEH, Henkel,Zwaansvliet)
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'NMM'
|
||
AND ks.prs_kostensoort_upper LIKE 'CV%'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'RABO'
|
||
AND ks.prs_kostensoort_upper LIKE 'CV %'
|
||
AND ks.prs_kostensoort_upper <> 'CV DOC POST'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'SABIC'
|
||
AND ( ( c.cnt_contract_looptijd_van < to_date ('20180101', 'yyyymmdd') -- Voor sabic geldt in 2018 een ander mechanisme (AASA#28673)
|
||
AND ks.prs_kostensoort_upper LIKE 'CV %'
|
||
AND ks.prs_kostensoort_upper <> 'CV CHIP'
|
||
AND ( c.cnt_contract_looptijd_van > to_date ('20150101', 'yyyymmdd') -- Voor sabic geldt voor 2015 een ander mechanisme (AASA#31618)
|
||
OR ( ks.prs_kostensoort_upper <> 'CV CONS REST'
|
||
AND ks.prs_kostensoort_upper <> 'CV CONS AUT'
|
||
AND ks.prs_kostensoort_upper <> 'CV SCH OVR'
|
||
AND ks.prs_kostensoort_upper <> 'CV DOC POST'
|
||
AND ks.prs_kostensoort_upper <> 'CV AFVAL REST'
|
||
)
|
||
)
|
||
)
|
||
OR (
|
||
(c.cnt_contract_looptijd_van >= to_date ('20180101', 'yyyymmdd') AND c.cnt_contract_looptijd_van < to_date ('20190101', 'yyyymmdd') ) -- Voor Sabic geldt voor 2018 een ander mechanisme (AASA#28673)
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||
OR ks.prs_kostensoort_upper LIKE 'CVE%')
|
||
)
|
||
OR (c.cnt_contract_looptijd_van >= to_date ('20190101', 'yyyymmdd') -- Voor Sabic IP geldt voor 2019 mechanisme gelijk aan 2018 (AASA#56477)
|
||
AND l.alg_locatie_code in ('BOZ','RDV')
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||
OR ks.prs_kostensoort_upper LIKE 'CVE%')
|
||
)
|
||
OR (
|
||
c.cnt_contract_looptijd_van >= to_date ('20190101', 'yyyymmdd') -- Voor Sabic Geleen geldt voor 2019 een ander mechanisme (AASA#56477)
|
||
AND l.alg_locatie_code not in ('BOZ','RDV')
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV TRA'
|
||
OR ks.prs_kostensoort_upper LIKE 'CVE%')
|
||
)
|
||
)
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'SMKA'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||
OR ks.prs_kostensoort_upper LIKE 'CVE %'
|
||
)
|
||
)
|
||
);
|
||
|
||
-- voeg bestelorders toe aan de verkoopbuffer
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_bedrijf_key, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3, fin_verkoopfactuur_n1, fin_verkoopfactuur_n2
|
||
)
|
||
SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || bestel.bes_bestelopdr_id, 1,30 ),
|
||
'bestelopdr',
|
||
bestel.bes_bestelopdr_key,
|
||
v_logdate,
|
||
DECODE (aaxx_get_user,
|
||
'AH', k.prs_kostenplaats_nr,
|
||
'DOW', '911791',
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520'),
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'L C', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,5), 'L CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520'),
|
||
'L CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr))),
|
||
'EXPO', DECODE(aaxx_get_top_dep_code(k.prs_kostenplaats_nr), '913918', '03701000',
|
||
'4001', '03700000',
|
||
'Onbekend'),
|
||
'SABIC', aaxx_get_top_dep_code (k.prs_kostenplaats_nr),
|
||
SUBSTR (prs_kostenplaats_nr, 1, 30)) prs_kostenplaats_nr, -- Wordt niet gebruikt.
|
||
DECODE (aaxx_get_user,
|
||
'AH', DECODE(aaxx_get_top_bedrijf_key(k.prs_kostenplaats_nr), 13383, k.prs_kostenplaats_nr, aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'DOW', '911791',
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520'),
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'L C', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,5), 'L CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520'),
|
||
'L CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr))),
|
||
'EXPO', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'INLO', (SELECT kp.prs_kostenplaats_nr FROM prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaats_key = aaxx_get_top_kpn_key (k.prs_kostenplaats_key)),
|
||
'SABIC', (SELECT distinct prs_leverancier_nr FROM prs_bedrijf b, prs_afdeling a
|
||
WHERE b.prs_bedrijf_key = a.prs_bedrijf_key
|
||
AND b.prs_bedrijf_verwijder IS NULL
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_afdeling_naam = aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SMKA', COALESCE(aaxx_get_top_afdeling_kpkenm(k.prs_kostenplaats_key), TO_CHAR(k.prs_kostenplaats_nr)),
|
||
SUBSTR (prs_kostenplaats_nr, 1, 30)) debiteur, -- prs_debiteur_naam
|
||
bestel.prs_bedrijf_key,
|
||
ks.prs_kostensoort_oms
|
||
|| DECODE (TO_CHAR (opdr_datum, 'YYYY'),
|
||
TO_CHAR (TO_NUMBER (TO_CHAR (SYSDATE, 'yyyy')) - 1), ' VJ',
|
||
''),
|
||
ks.prs_kostensoort_opmerking,
|
||
DECODE (aaxx_get_user, 'AH', prs_kostensoortgrp_oms || DECODE(aaxx_get_top_bedrijf_key(k.prs_kostenplaats_nr), 13383, k.prs_kostenplaats_nr, aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'DSM', prs_kostensoortgrp_oms || DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ' ' || l.alg_locatie_code,
|
||
DECODE (SUBSTR(ks.prs_kostensoort_upper,1,5) , 'L CV ', ' ' || l.alg_locatie_code)),
|
||
'EXPO', 'Servicekosten Core Variabel',
|
||
'INLO', 'Servicekosten Core Variabel',
|
||
'SABIC', DECODE (l.alg_locatie_code, 'BOZ', 'Core Variabel ' || to_char(sysdate, 'Month'),
|
||
'RDV', 'Core Variabel ' || to_char(sysdate, 'Month'),
|
||
ksg.prs_kostensoortgrp_oms || ' ' || aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SMKA', 'Servicekosten Core Variabel'
|
||
) prs_kostensoortgrp_oms,
|
||
DECODE (aaxx_get_user, 'SABIC', ks.prs_kostensoort_altcode || ' ' || fin_btwtabelwaarde_code,
|
||
bestel.bes_bestelopdr_id || ' ' || d.ins_discipline_omschrijving) omschrijving,
|
||
fin_factuurregel_totaal,
|
||
DECODE (aaxx_get_user, 'EXPO' , DECODE (ks.prs_kostensoort_upper, 'CV CONS AUT', 2, fin_btwtabelwaarde_code), -- code 2 is 6 procent
|
||
fin_btwtabelwaarde_code) fin_btwtabelwaarde_code,
|
||
TO_CHAR (opdr_datum, 'YYYY'),
|
||
DECODE(aaxx_get_user,'INLO', DECODE(aaxx_get_top_bedrijf_key (k.prs_kostenplaats_nr),2081,'03603000', -- Henkel
|
||
2082,'03602000', -- VEH
|
||
2083,'03604000', -- Zwaansvliet
|
||
'onbekend'),
|
||
'SABIC', DECODE (l.alg_locatie_code, 'BOZ', '00601000',
|
||
'RDV', '00601000',
|
||
'00600000'),
|
||
'SMKA', COALESCE(exact2.exact_code,'onbekend'),
|
||
COALESCE(exact.exact_code, alg_gebouw_code)) exact_code, -- C1
|
||
DECODE (aaxx_get_user,
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520') || l.alg_locatie_code,
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'L C', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,5), 'L CV ', DECODE (l.alg_locatie_code, 'ZWO', '913848',
|
||
'EMM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DLF', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'520') || l.alg_locatie_code,
|
||
'L CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr))),
|
||
'DOW', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,5), 'NC P ', 'NCP', 'NC/CV') ||
|
||
substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6),
|
||
'EXPO', alg_locatie_code,
|
||
'INLO', (SELECT kp.prs_kostenplaats_nr FROM prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaats_key = aaxx_get_top_kpn_key (k.prs_kostenplaats_key)),
|
||
'SABIC',DECODE (l.alg_locatie_code, 'BOZ', to_char(sysdate, 'Month'),
|
||
'RDV', to_char(sysdate, 'Month'),
|
||
aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SMKA', DECODE (ksg.prs_kostensoortgrp_oms, 'Core Variable', 'CV',
|
||
'Core Variable Enduser', 'CVE',
|
||
'onbekend') || '-' || COALESCE(aaxx_get_top_afdeling_kpkenm(k.prs_kostenplaats_key), TO_CHAR(k.prs_kostenplaats_nr)),
|
||
'') groepering, -- c2
|
||
'' subregelvolgorde, -- c3
|
||
l.alg_locatie_key, -- N1
|
||
aaxx_get_top_bedrijf_key(k.prs_kostenplaats_nr) -- N2 bedrijfskey van de hoogste afdeling
|
||
FROM ( SELECT *
|
||
FROM aaxx_v_bestelgegevens
|
||
GROUP BY bes_bestelopdr_key,
|
||
bes_bestelopdr_id,
|
||
ins_discipline_key,
|
||
mld_adres_key_lev,
|
||
bes_bestelling_leverdatum,
|
||
prs_bedrijf_key) bestel,
|
||
mld_adres ad,
|
||
prs_kostenplaats k,
|
||
ins_tab_discipline d,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp ksg,
|
||
aaxx_exp_factuur f,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
aaxx_v_exact_code_gebouw exact,
|
||
aaxx_v_exact_code_district exact2,
|
||
( SELECT fin_factuur_key,
|
||
bes_bestelopdr_key,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
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,
|
||
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 l.alg_district_key =exact2.alg_district_key(+)
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND fg.fin_factuur_key = f.fin_factuur_key
|
||
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
|
||
AND ( ( aaxx_get_user = 'AH'
|
||
AND ks.prs_kostensoort_upper LIKE 'CV %'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'DSM'
|
||
AND ( ( SUBSTR(ks.prs_kostensoort_upper,1,3) = 'CV '
|
||
OR SUBSTR(ks.prs_kostensoort_upper,1,5) = 'L CV ')
|
||
AND g.alg_gebouw_code NOT IN ('122-170', '122-200', '122-094', '122-092')
|
||
AND l.alg_locatie_key NOT IN ('23', '41')) -- Waalwijk en de Beitel
|
||
OR SUBSTR(ks.prs_kostensoort_upper,1,3) = 'CVE'
|
||
OR SUBSTR(ks.prs_kostensoort_upper,1,5) = 'L CVE'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'EXPO'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||
OR ks.prs_kostensoort_upper LIKE 'CVE %'
|
||
OR ks.prs_kostensoort_upper = 'NC PROJ')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'INLO'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||
OR ks.prs_kostensoort_upper LIKE 'CVE %'
|
||
)
|
||
AND NOT EXISTS (SELECT ao.alg_onrgoed_key
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_onrgoed_key = g.alg_gebouw_key
|
||
AND ao.alg_onrgoed_niveau='G'
|
||
AND ao.alg_kenmerk_key = 1100 -- kenmerkveld klant
|
||
AND ao.alg_onrgoedkenmerk_waarde= '264') -- waarde Greenport Venlo - Alleen alle andere locaties meenemen (VEH, Henkel,Zwaansvliet)
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'SABIC'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||
OR ks.prs_kostensoort_upper LIKE 'CVE %')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'SMKA'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||
OR ks.prs_kostensoort_upper LIKE 'CVE %'
|
||
)
|
||
)
|
||
);
|
||
|
||
-- bereken per klant de FEE over de omzet.
|
||
IF aaxx_get_user = 'AH' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'CV FM', prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, SUM(ROUND(fin_verkoopfactuur_bedrag * 0.25, 2)), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand
|
||
FROM fin_verkoopfactuur v
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND fin_verkoopfactuur_n2 = '13383'
|
||
AND prs_kostensoort_oms LIKE 'CV %'
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand;
|
||
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'CV FEE', prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr , SUM(ROUND(fin_verkoopfactuur_bedrag * 0.065, 2)), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand
|
||
FROM fin_verkoopfactuur v, prs_bedrijf b
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND v.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND fin_verkoopfactuur_n2 = '13383'
|
||
AND prs_kostensoort_oms LIKE 'CV %'
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'DOW' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', prs_debiteur_naam, 'BASE FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', prs_kostensoortgrp_oms, 'BASE FEE' , ROUND(SUM(fin_verkoopfactuur_bedrag) * 0.04, 2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X'
|
||
FROM fin_verkoopfactuur v
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'DSM' THEN
|
||
-- CVE
|
||
-- Fee: De fee over dit CVE gedeelte wordt apart doorbelast aan de klant en moet in een separate factuur worden gezet.
|
||
-- Deze factuur moet standaard naar debiteurencode 520.
|
||
-- Per factuur dient een fee berekend te worden van 0% of 3%.
|
||
-- Hierbij geldt als uitgangspunt dat voor alle MA contracten 0% geldt, en voor alle CP 3%.
|
||
-- Deze fee dient als totaalbedrag geboekt te worden op 1 regel per BTW percentage op de kostensoort FEE.
|
||
-- Extra verzoek hierover is om wel per locatie <20><>n regel te maken (dus Sittard, Urmond, Campus,etc).
|
||
-- Misschien dat we dit kunnen doen door artikelcode FEE te gebruiken, maar omschrijving Fee Sittard, Fee Urmond, etc?
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', DECODE (l.alg_locatie_code, 'EMM', prs_debiteur_naam, 'ZWO', prs_debiteur_naam, 'WAA', prs_debiteur_naam, 'DLF', prs_debiteur_naam, '520'), 'CVE FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', prs_kostensoortgrp_oms, 'FEE ' || l.alg_locatie_code, SUM(ROUND(fin_verkoopfactuur_bedrag * 0.03, 2)), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', 'FEE' || fin_verkoopfactuur_c2, 'X'
|
||
FROM fin_verkoopfactuur v, prs_relatietype r, alg_locatie l, prs_bedrijf b
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND v.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_relatietype_key = r.prs_relatietype_key
|
||
AND r.prs_relatietype_omschrijving = 'Contracting party'
|
||
AND v.fin_verkoopfactuur_n1 = l.alg_locatie_key
|
||
AND prs_kostensoort_oms LIKE 'CVE%'
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, l.alg_locatie_code, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2;
|
||
|
||
-- CV
|
||
-- Fee: Er wordt een fee van 0% of 3% berekend over deze factuur.
|
||
-- Het percentage is afhankelijk van het contracttype van de leverancier.
|
||
-- Bij alle Managing Agent (MA) geldt 0%, voor alle Contracting Party (CP) geldt 3%.
|
||
-- Deze fee dient als totaalbedrag geboekt te worden op 1 regel per BTW percentage op de kostensoort FEE.
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', DECODE (l.alg_locatie_code, 'EMM', prs_debiteur_naam, 'DLF', prs_debiteur_naam, '520'), 'CV FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', prs_kostensoortgrp_oms, 'FEE' , SUM(ROUND(fin_verkoopfactuur_bedrag * 0.03, 2)), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X'
|
||
FROM fin_verkoopfactuur v, prs_relatietype r, prs_bedrijf b, alg_locatie l
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND v.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_relatietype_key = r.prs_relatietype_key
|
||
AND r.prs_relatietype_omschrijving = 'Contracting party'
|
||
AND v.fin_verkoopfactuur_n1 = l.alg_locatie_key
|
||
AND prs_kostensoort_oms LIKE 'CV %'
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, l.alg_locatie_code, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'ESSENT' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'BASE FEE ' || to_char(u.uplift) || '%' || DECODE (INSTR(v.prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', prs_kostensoortgrp_oms, 'BASE FEE ' || TO_CHAR(u.uplift) || '%' , ROUND(SUM(fin_verkoopfactuur_bedrag) * (u.uplift/100),2), 5, fin_verkoopfactuur_maand, 'X', 'X', u.uplift || 'X'
|
||
FROM fin_verkoopfactuur v, aaxx_imp_uplift u
|
||
WHERE REPLACE(v.prs_kostensoort_oms, ' VJ', '') = u.prs_kostensoort_oms
|
||
AND fin_verkoopfactuur_aanmaak = v_logdate
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, instr(v.prs_kostensoort_oms, ' VJ'), prs_kostensoortgrp_oms, uplift, fin_verkoopfactuur_maand;
|
||
END IF;
|
||
|
||
-- EXPO NC PROJ
|
||
-- Er wordt een FEE berekend van 5% over NC PROJ
|
||
IF aaxx_get_user = 'EXPO' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, prs_debiteur_naam, 'FEE PROJECTEN' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', prs_kostensoortgrp_oms, 'Fee projecten' , SUM(ROUND(fin_verkoopfactuur_bedrag * 0.05, 2)), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X'
|
||
FROM fin_verkoopfactuur v
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND prs_kostensoort_oms = 'NC PROJ'
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2;
|
||
END IF;
|
||
|
||
-- INLO
|
||
-- Voor Henkel: 5% over alle facturen van CV. Voor alle opdrachttype. Voor NC PROJ wordt GEEN fee berekend.
|
||
-- Voor Zwaansvliet: 18,5% over de facturen van CV (=fee organisatiekosten), boeken op 8210520. Daarna nog Fee van 6,5%, boeken op 8210511 . Voor NC PROJ wordt geen fee berekend..
|
||
-- Voor VEH wordt geen FEE berekend
|
||
-- BTW over FEE: Overal 21% (dus ongeacht inkoopfactuur_btw) - #57775
|
||
IF aaxx_get_user = 'INLO' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, prs_debiteur_naam, 'CV FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', prs_kostensoortgrp_oms, 'Fee Core Variabel' , SUM(ROUND(fin_verkoopfactuur_bedrag * 0.05, 2)), 5, fin_verkoopfactuur_maand, '03603000', fin_verkoopfactuur_c2, 'X'
|
||
FROM fin_verkoopfactuur v
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND prs_kostensoort_oms LIKE 'CV %'
|
||
AND v.fin_verkoopfactuur_c1 = '03603000' -- Henkel
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2;
|
||
|
||
INSERT INTO fin_verkoopfactuur -- Zwaansvliet 18,5%
|
||
(
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, prs_debiteur_naam, 'FEE ORG' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', prs_kostensoortgrp_oms, 'Fee Organisatie' , SUM(ROUND(fin_verkoopfactuur_bedrag * 0.185, 2)), 5, fin_verkoopfactuur_maand, '03604000', fin_verkoopfactuur_c2, 'X'
|
||
FROM fin_verkoopfactuur v
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND prs_kostensoort_oms LIKE 'CV %'
|
||
AND v.fin_verkoopfactuur_c1 = '03604000' -- Zwaansvliet
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2;
|
||
|
||
INSERT INTO fin_verkoopfactuur -- 6,5%
|
||
(
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, prs_debiteur_naam, 'CV FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', prs_kostensoortgrp_oms, 'Fee Core Variabel' , SUM(ROUND(fin_verkoopfactuur_bedrag * 0.065, 2)), 5, fin_verkoopfactuur_maand, '03604000', fin_verkoopfactuur_c2, 'X'
|
||
FROM fin_verkoopfactuur v
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND prs_kostensoort_oms LIKE 'CV %'
|
||
AND v.fin_verkoopfactuur_c1 = '03604000' -- Zwaansvliet
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2;
|
||
|
||
END IF;
|
||
|
||
-- NMM
|
||
-- Pas het bedrag van de bewaking aan. Opdrachten aan stdmelding 1121 moeten een bedrag krijgen van het aantal uren uit de opdracht maal het uurtarief dat
|
||
-- In een eigentabel opgeslagen wordt. De entries in de eigen tabel kunnen verschillende tarieven met een vervaldatum bevatten.
|
||
-- stdmelding 1248 bevat meldingen schoonmaak die ook voorzien moeten worden van een uurtarief. Maar dan wel uit een andere eigen tabel.
|
||
IF aaxx_get_user = 'NMM' THEN
|
||
UPDATE fin_verkoopfactuur vk
|
||
SET fin_verkoopfactuur_bedrag = (SELECT o.mld_opdr_uren * ud.fac_usrdata_prijs
|
||
FROM mld_opdr o, mld_melding m, fac_usrdata ud
|
||
WHERE vk.fin_verkoopfactuur_refkey = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND vk.fin_verkoopfactuur_xmlnode = 'opdracht'
|
||
AND ud.fac_usrtab_key = DECODE(m.mld_stdmelding_key, 1121, DECODE (TO_CHAR (COALESCE(mld_opdr_plandatum, mld_opdr_datumbegin), 'D'), 1, 141, 7, 141, 122) -- Uurtarief bewaking (141 tabel weekend, 122 tabel weekdagen)
|
||
, 1248, DECODE (TO_CHAR (COALESCE(mld_opdr_plandatum, mld_opdr_datumbegin), 'D'), 1, 162, 7, 162, 161) -- Uurtarief bewaking (162 tabel weekend, 161 tabel weekdagen)
|
||
)
|
||
AND ud.fac_usrdata_verwijder IS NULL
|
||
AND o.mld_opdr_datumbegin < COALESCE(ud.fac_usrdata_vervaldatum, SYSDATE)
|
||
AND NOT EXISTS (SELECT ud2.fac_usrdata_key
|
||
FROM fac_usrdata ud2
|
||
WHERE ud2.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND o.mld_opdr_datumbegin < COALESCE(ud2.fac_usrdata_vervaldatum, SYSDATE)
|
||
AND ud2.fac_usrdata_verwijder IS NULL
|
||
AND COALESCE(ud2.fac_usrdata_vervaldatum, SYSDATE) <
|
||
COALESCE(ud.fac_usrdata_vervaldatum, SYSDATE)
|
||
)
|
||
)
|
||
WHERE EXISTS (SELECT mld_opdr_key
|
||
FROM mld_opdr o, mld_melding m
|
||
WHERE vk.fin_verkoopfactuur_refkey = o.mld_opdr_key
|
||
AND vk.fin_verkoopfactuur_xmlnode = 'opdracht'
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key IN (1121, 1248) -- Aanvraag beveiligingsdienst(en) tbv evenementen / Aanvraag extra schoonmaak tbv evenementen
|
||
)
|
||
AND fin_verkoopfactuur_aanmaak = v_logdate;
|
||
|
||
-- Voor de overige meldingen gaan we een uplift van 10% hanteren
|
||
UPDATE fin_verkoopfactuur vk
|
||
SET fin_verkoopfactuur_bedrag = ROUND(fin_verkoopfactuur_bedrag * 1.1,2)
|
||
WHERE EXISTS (SELECT mld_opdr_key
|
||
FROM mld_opdr o, mld_melding m
|
||
WHERE vk.fin_verkoopfactuur_refkey = o.mld_opdr_key
|
||
AND vk.fin_verkoopfactuur_xmlnode = 'opdracht'
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key NOT IN (1121, 1248) -- Aanvraag beveiligingsdienst(en) tbv evenementen / Aanvraag extra schoonmaak tbv evenementen
|
||
)
|
||
AND fin_verkoopfactuur_aanmaak = v_logdate;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'RABO' THEN -- RABO#37283 RABO#39639 RABO#56840 RABO#57776
|
||
INSERT INTO fin_verkoopfactuur -- Voor kostenplaatsen standaard 5,5% fee (m.u.v. Optitrade en Eigen Steen)
|
||
(
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, DECODE (prs_kostensoort_oms, 'NC PROJ', 'FEE', 'Fee Core Variabel') || DECODE (INSTR (prs_kostensoort_oms, ' VJ'), 0, '', ' VJ'), '', prs_kostensoortgrp_oms, 'FEE' , ROUND(SUM(fin_verkoopfactuur_bedrag) * 5.5 / 100, 2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X'
|
||
FROM fin_verkoopfactuur v,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding std
|
||
WHERE v.fin_verkoopfactuur_refkey = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND v.prs_kostenplaats_nr not in ('0000003','0000004')
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoortgrp_oms, std.prs_kostensoort_key, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2, 'X';
|
||
|
||
INSERT INTO fin_verkoopfactuur -- Voor kostenplaatsen Optitrade en Eigen Steen 15% fee.
|
||
(
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, DECODE (prs_kostensoort_oms, 'NC PROJ', 'FEE', 'Fee Core Variabel') || DECODE (INSTR (prs_kostensoort_oms, ' VJ'), 0, '', ' VJ'), '', prs_kostensoortgrp_oms, 'FEE' , ROUND(SUM(fin_verkoopfactuur_bedrag) * 15.0 / 100, 2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X'
|
||
FROM fin_verkoopfactuur v,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding std
|
||
WHERE v.fin_verkoopfactuur_refkey = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND v.prs_kostenplaats_nr in ('0000003','0000004')
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoortgrp_oms, std.prs_kostensoort_key, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2, 'X';
|
||
|
||
END IF;
|
||
|
||
|
||
FOR rec1 IN c_bes
|
||
LOOP
|
||
BEGIN
|
||
-- indien nog niet afgemeld, dan maar even afmelden.
|
||
IF rec1.bes_bestelopdr_status = 3 THEN -- in behandeling
|
||
UPDATE bes_bestelopdr
|
||
SET bes_bestelopdr_status = 4
|
||
WHERE bes_bestelopdr_key= rec1.bes_bestelopdr_key
|
||
AND bes_bestelopdr_status = 3;
|
||
END IF;
|
||
|
||
IF rec1.bes_bestelopdr_status = 5 -- bevestigd
|
||
OR rec1.bes_bestelopdr_status = 4 -- in bestelling
|
||
OR rec1.bes_bestelopdr_status = 3 THEN
|
||
|
||
UPDATE bes_bestelopdr_item B
|
||
SET bes_bestelopdr_item_aantalontv = COALESCE(bes_bestelopdr_item_aantal, 0),
|
||
bes_bestelopdr_item_ontvangen = SYSDATE
|
||
WHERE b.bes_bestelopdr_key = rec1.bes_bestelopdr_key;
|
||
|
||
UPDATE bes_bestelling_item bi
|
||
SET bes_bestelling_item_aantalontv = COALESCE(bes_bestelling_item_aantal, 0)
|
||
WHERE EXISTS (SELECT bes_bestelopdr_key
|
||
FROM bes_bestelopdr_item boi
|
||
WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND bes_bestelopdr_key = rec1.bes_bestelopdr_key);
|
||
|
||
SELECT distinct bes_bestelling_key
|
||
INTO v_bestelling_key
|
||
FROM bes_bestelling_item bi, bes_bestelopdr_item boi
|
||
WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND bes_bestelopdr_key = rec1.bes_bestelopdr_key;
|
||
|
||
bes.updatebestelopdrstatus(rec1.bes_bestelopdr_key, v_aanvrager);
|
||
bes.updatebestellingstatus(v_bestelling_key, v_aanvrager);
|
||
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
-- set de status van de opdracht en neem de kosten over van de factuur.
|
||
FOR rec1 IN c_opdr
|
||
LOOP
|
||
BEGIN
|
||
-- indien nog niet afgemeld, dan maar even afmelden.
|
||
IF rec1.mld_statusopdr_key <> 6 AND rec1.mld_statusopdr_key <> 7 AND rec1.mld_statusopdr_key <> 9 THEN
|
||
mld.setopdrachtstatus (rec1.mld_opdr_key, 6, v_aanvrager);
|
||
mld.setopdrachtstatus (rec1.mld_opdr_key, 9, v_aanvrager);
|
||
END IF;
|
||
|
||
UPDATE mld_opdr o
|
||
SET mld_opdr_kosten =
|
||
(SELECT SUM (fin_factuurregel_totaal)
|
||
FROM aaxx_v_aanwezigfactuur f
|
||
, fin_factuurregel fr
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND f.fin_factuur_statuses_key >= 6)
|
||
WHERE o.mld_opdr_key = rec1.mld_opdr_key
|
||
AND rec1.mld_melding_status IN (4, 5, 7); -- anders faalt de trigger sowieso
|
||
|
||
-- update meldingstatus
|
||
mld.updatemeldingstatusAV (rec1.mld_melding_key, 0, v_aanvrager, 0);
|
||
-- zet de status naar verwerkt (user is facilitor)
|
||
mld.setopdrachtstatus (rec1.mld_opdr_key, 7, v_aanvrager);
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Neem de kosten van de factuur over in het termijnbedrag
|
||
FOR rec1 IN c_cnt
|
||
LOOP
|
||
BEGIN
|
||
|
||
UPDATE cnt_factuurschema fs
|
||
SET (cnt_factuurschema_opmerking,
|
||
cnt_factuurschema_bedrag) =
|
||
(SELECT SUBSTR(DECODE(cnt_factuurschema_opmerking, NULL, '', cnt_factuurschema_opmerking || CHR(10)) || 'Bedrag na verwerken facturen ' || TO_CHAR(SYSDATE, 'DD-MM-YYYY') || ' aangepast van ' || cnt_factuurschema_bedrag || ' naar ' || SUM (fin_factuurregel_totaal),1,320) opmerking,
|
||
SUM (fin_factuurregel_totaal) totaal
|
||
FROM aaxx_v_aanwezigfactuur f
|
||
, fin_factuurregel fr
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.cnt_contract_key = fs.cnt_contract_key
|
||
AND f.fin_factuur_boekmaand = fs.cnt_factuurschema_boekmaand
|
||
AND f.fin_factuur_statuses_key >= 6)
|
||
WHERE fs.cnt_factuurschema_key = rec1.cnt_factuurschema_key;
|
||
|
||
UPDATE cnt_contract c
|
||
SET c. cnt_contract_kosten = (SELECT SUM(cnt_factuurschema_bedrag)
|
||
FROM cnt_factuurschema fs
|
||
WHERE fs.cnt_contract_key = rec1.cnt_contract_key)
|
||
WHERE c.cnt_contract_key = rec1.cnt_contract_key;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
FOR rec1 IN c_fact
|
||
LOOP
|
||
BEGIN
|
||
UPDATE fin_factuur f
|
||
SET fin_factuur_statuses_key = 7
|
||
WHERE f.fin_factuur_key = rec1.fin_factuur_key;
|
||
|
||
fac.trackaction ('FINVER', rec1.fin_factuur_key, v_aanvrager, NULL, NULL);
|
||
END;
|
||
END LOOP;
|
||
-- verwijder de enties uit de tijdelijke tabel. (AAEY#29465)
|
||
DELETE aaxx_exp_factuur;
|
||
END;
|
||
/
|
||
|
||
|
||
--=============================================================================
|
||
-- EXPORTFUNCTIES VERKOOPFACTUREN - verkoopinterface
|
||
|
||
-- Uitleg van de kolommen zoals ze naar Exact gaan:
|
||
-- 01 Regelnummer Vaste waarde 0
|
||
-- 02 Factuurcode Vaste waarde 3
|
||
-- 03 Debiteurnummer Kostenplaatsnummer
|
||
-- 04 Referentie "Hospitality" plus de eerste drie posities van de maand voor catering en kostensoortgroep omschrijving voor opdrachten
|
||
-- 05 Referentie 1 Leeg (ordernummer klant voor DBS)
|
||
-- 06 Referentie 2 Leeg
|
||
-- 07 Referentie 3 Leeg
|
||
-- 08 Ordernummer Leeg
|
||
-- 09 Orderdatum Datum van de export.
|
||
-- 10 Magazijn 1
|
||
-- 11 Extra artikel omschrijving Leeg
|
||
-- 12 Vertegenwoordigers Leeg
|
||
-- 13 Kostenplaats Exact_code van het gebouw
|
||
-- 14 Selectiecode Leeg
|
||
-- 15 Bedrag in vreemde valuta Leeg
|
||
-- 16 Netto prijs Leeg
|
||
-- 17 Valutacode EUR
|
||
-- 18 Wisselkoers Leeg
|
||
-- 19 Betalingsconditie E6
|
||
-- 20 Leveringswijze 1
|
||
-- 21 Vrachtkosten Leeg
|
||
-- 22 Orderkosten Leeg
|
||
-- 23 Faktuurkorting Leeg
|
||
-- 24 Totaal bedrag Leeg
|
||
-- 25 Colli 0
|
||
-- 26 Bruto gewicht 0
|
||
-- 27 Netto gewicht 0
|
||
-- 28 Afleverdatum Leeg
|
||
-- 29 - Leeg
|
||
-- 30 - Leeg
|
||
-- 31 Bruto/Netto Leeg
|
||
-- 32 - Leeg
|
||
-- 33 - Leeg
|
||
-- 34 - Leeg
|
||
-- 35 - Leeg
|
||
-- 36 - Leeg
|
||
-- 37 - Leeg
|
||
-- 38 - Leeg
|
||
-- 39 - Leeg
|
||
-- 40 - Leeg
|
||
-- 41 - Leeg
|
||
-- 42 Faktuursoort V
|
||
-- 43 Orderdebiteur is faktuurdebiteur Leeg
|
||
-- 44 Debiteur type Leeg
|
||
-- 45 Gefiatteerd N
|
||
-- 46 Faktuurdebiteur Kostenplaatsnummer
|
||
-- 47 - Leeg
|
||
-- 48 Facktuurnummer Leeg
|
||
-------------------------------------------------------------------------------
|
||
-- btw code is 19 procent als percentage is 19 of 0;
|
||
CREATE OR REPLACE VIEW aaxx_v_export_exact_verkoop_t (
|
||
result,
|
||
opdr_jaar,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT '0' || ',' || DECODE(aaxx_get_user, 'RABO', '2', '3') || ',' || prs_debiteur_naam
|
||
|| ','
|
||
|| DECODE(aaxx_get_user, 'DSM', replace(prs_kostensoortgrp_oms, ',', '') || ' ' || to_char(SYSDATE, 'MON') , replace(prs_kostensoortgrp_oms, ',', ''))
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| TO_CHAR (SYSDATE, 'ddmmyyyy')
|
||
|| ','
|
||
|| '1'
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| DECODE(aaxx_get_user, 'AH', '', 'DOW', '02510001') -- exact code gebouw
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| 'EUR'
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| DECODE(aaxx_get_user, 'DOW', '60')
|
||
|| ','
|
||
|| '1'
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| TO_CHAR (0)
|
||
|| ','
|
||
|| TO_CHAR (0)
|
||
|| ','
|
||
|| TO_CHAR (0)
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| 'V'
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| 'N'
|
||
|| ','
|
||
|| prs_debiteur_naam
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| '',
|
||
fin_verkoopfactuur_maand,
|
||
fin_verkoopfactuur_c2 || replace(prs_kostensoortgrp_oms, ',', '') || DECODE(aaxx_get_user, 'NMM', '', 'DOW', '', 'DSM', '', 'RABO', '', 'EXPO', '', 'INLO', '', 'SMKA', '', prs_kostenplaats_nr) || '0'
|
||
FROM fin_verkoopfactuur
|
||
WHERE fin_verkoopfactuur_datum IS NULL
|
||
GROUP BY replace(prs_kostensoortgrp_oms, ',', ''), prs_debiteur_naam, DECODE(aaxx_get_user, 'NMM', '', 'DOW', '', 'DSM', '', 'RABO', '', 'EXPO', '', 'INLO', '', 'SMKA', '', prs_kostenplaats_nr), fin_verkoopfactuur_c2, DECODE(aaxx_get_user, 'AH', '', 'DOW', '02510001'), fin_verkoopfactuur_maand
|
||
UNION ALL
|
||
-- Uitleg subregel:
|
||
-- 01 Regelnummer Vaste waarde 1
|
||
-- 02 - Vaste waarde 5
|
||
-- 03 - Leeg
|
||
-- 04 - Leeg
|
||
-- 05 - Leeg
|
||
-- 06 - Leeg
|
||
-- 07 - Leeg
|
||
-- 08 - Leeg
|
||
-- 09 - Leeg
|
||
-- 10 Magazijn 1
|
||
-- 11 - Leeg
|
||
-- 12 - Leeg
|
||
-- 13 - Leeg
|
||
-- 14 - Leeg
|
||
-- 15 - Leeg
|
||
-- 16 - Leeg
|
||
-- 17 - Leeg
|
||
-- 18 - Leeg
|
||
-- 19 - Leeg
|
||
-- 20 - Leeg
|
||
-- 21 - Leeg
|
||
-- 22 - Leeg
|
||
-- 23 - Leeg
|
||
-- 24 - Leeg
|
||
-- 25 - Leeg
|
||
-- 26 - Leeg
|
||
-- 27 - Leeg
|
||
-- 28 Afleverdatum Leeg
|
||
-- 29 Afleverweek Leeg
|
||
-- 30 Artikelcode Kostensoortcode
|
||
-- 31 Artikelsoort V
|
||
-- 32 Omschrijving "Hospitality services" voor catering en "SA### vakgroep opdrachtnummer(kenmerk)" voor meerwerk
|
||
-- 33 Hoeveelheid 1
|
||
-- 34 BTW code 4
|
||
-- 35 Prijslijst Leeg
|
||
-- 36 Korting 0
|
||
-- 37 Prijs Bedrag
|
||
-- 38 Nettoprijs Leeg
|
||
-- 39 Kostenplaats Kostenplaats
|
||
-- 40 Tekst voor tekstregels Leeg
|
||
-- 41 Omzetrekening Leeg (bij het inlezen in Exact wordt deze code erbij gezocht op basis van de artikelcode (kostensoort)
|
||
-- 42 - Leeg
|
||
-- 43 - Leeg
|
||
-- 44 - Leeg
|
||
-- 45 - Leeg
|
||
-- 46 - Leeg
|
||
-- 47 Kostenplaats Exact_code van het gebouw (bij contractorders wordt het eerste gebouw uit het contract geselecteerd) .
|
||
-- 48 - Leeg
|
||
SELECT '1'
|
||
|| ','
|
||
|| DECODE(aaxx_get_user, 'RABO', '2', '3')
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| '1'
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ' '
|
||
|| prs_kostensoort_oms
|
||
|| ','
|
||
|| 'V'
|
||
|| ','
|
||
|| replace(fin_verkoopfactuur_omschr, ',', '')
|
||
|| ','
|
||
|| '1'
|
||
|| ','
|
||
|| fin_btwtabelwaarde_code
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| '0'
|
||
|| ','
|
||
|| REPLACE (TO_CHAR (sum(fin_verkoopfactuur_bedrag)), ',', '.')
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| DECODE (aaxx_get_user, 'DOW', DECODE (fin_verkoopfactuur_omschr, 'BASE FEE 3%', '999999', prs_kostenplaats_nr),
|
||
prs_kostenplaats_nr)
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| ''
|
||
|| ','
|
||
|| fin_verkoopfactuur_c1 -- exact code gebouw
|
||
|| ','
|
||
|| '',
|
||
fin_verkoopfactuur_maand,
|
||
fin_verkoopfactuur_c2 || replace(prs_kostensoortgrp_oms, ',', '') || DECODE(aaxx_get_user, 'DOW', '', 'DSM', '', prs_kostenplaats_nr)|| '1' || fin_verkoopfactuur_c3 || replace(fin_verkoopfactuur_omschr, ',', '')
|
||
FROM fin_verkoopfactuur
|
||
WHERE fin_verkoopfactuur_datum IS NULL
|
||
GROUP BY fin_verkoopfactuur_c3, replace(prs_kostensoortgrp_oms, ',', ''), fin_verkoopfactuur_omschr, replace(fin_verkoopfactuur_omschr, ',', ''), prs_kostenplaats_nr, fin_verkoopfactuur_c2, fin_verkoopfactuur_c1, prs_kostensoort_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_export_exact_verkoop (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT result,
|
||
result_order
|
||
FROM aaxx_exp_exact_verkoop;
|
||
|
||
|
||
|
||
-- Voordat de verkoopfacturen naar Exact geexporteerd wordt moet de volgorde van de subregels gecorrigeerd worden
|
||
CREATE OR REPLACE PROCEDURE aaxx_select_exact_verkoop (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_opdr_jaar IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c1 IS
|
||
SELECT result, result_order
|
||
FROM aaxx_v_export_exact_verkoop_t
|
||
WHERE opdr_jaar = p_opdr_jaar
|
||
ORDER BY result_order;
|
||
v_first NUMBER;
|
||
v_count NUMBER;
|
||
BEGIN
|
||
v_count := 0;
|
||
DELETE aaxx_exp_exact_verkoop;
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_first := substr(rec.result, 1,1);
|
||
IF v_first = 0 THEN
|
||
v_count := 0;
|
||
ELSE
|
||
v_count := v_count + 1;
|
||
END IF;
|
||
|
||
INSERT INTO aaxx_exp_exact_verkoop (
|
||
result,
|
||
result_order)
|
||
VALUES (
|
||
v_count || substr (rec.result, 2),
|
||
rec.result_order|| TO_CHAR(v_count, 'FM0000')); -- voorkom dat de sortering door beinvloed wordt door de 1000.
|
||
-- TO_CHAR(1000+v_count)); -- forceer sortering bij count > 9
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
-- Na dat de verkoopfacturen naar Exact geexporteerd zijn wordt de timestamp gezet.
|
||
CREATE OR REPLACE PROCEDURE aaxx_export_exact_verkoop (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2,
|
||
p_opdr_jaar IN VARCHAR2
|
||
)
|
||
AS
|
||
v_timestamp DATE;
|
||
v_verkoopfactuurkop_key NUMBER(10);
|
||
BEGIN
|
||
|
||
v_timestamp := SYSDATE;
|
||
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
|
||
VALUES (p_opdr_jaar || ' - ' || TO_CHAR(v_timestamp, 'yyyy-mm-dd hh24:mi:ss'))
|
||
RETURNING fin_verkoopfactuurkop_key
|
||
INTO v_verkoopfactuurkop_key;
|
||
|
||
UPDATE fin_verkoopfactuur
|
||
SET fin_verkoopfactuur_datum = v_timestamp
|
||
, fin_verkoopfactuurkop_key = v_verkoopfactuurkop_key
|
||
WHERE fin_verkoopfactuur_datum IS NULL
|
||
AND fin_verkoopfactuur_maand = p_opdr_jaar;
|
||
|
||
INSERT INTO imp_schedule (imp_schedule_name) VALUES ('EXACT_VERKOOP_VJ');
|
||
END;
|
||
/
|
||
|
||
--=============================================================================
|
||
-- EXPORTFUNCTIES PROJECTUREN
|
||
--=============================================================================
|
||
-- Basisgegevens van door te belasten opdrachturen
|
||
-- (uurtarief van opdracht, anders van persoon)
|
||
-- Keys: 7 (Project) uren (opdrachttype)
|
||
-- 14 Type project (eigen tabel)
|
||
-- 15 Rekening courant (eigen tabel)
|
||
-- 55 Projectnaam (kenmerksoort)
|
||
-- 186 Type project (flex opdracht)
|
||
-- 187 Verrekenen met (flex opdracht)
|
||
-- 188 Uurtarief (flex opdracht)
|
||
-- 189 ProjectKPN uit AD (flex opdracht)
|
||
-- 2 ProjectKPN uit AD (flex perslid)
|
||
-- 3 AAFM Personeelsnummber (flex perslid)
|
||
-- 6 Uurtarief intern (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,
|
||
DECODE (aaxx_get_user,
|
||
'SABIC', DECODE (
|
||
(SELECT l.alg_locatie_key
|
||
FROM alg_locatie l
|
||
WHERE l.alg_locatie_key = m.mld_alg_locatie_key
|
||
AND m.mld_melding_key = o.mld_melding_key),
|
||
101, -- Bergen op Zoom BOZ
|
||
'00601000',
|
||
102, -- Raamsdonksveer RDV
|
||
'00601000',
|
||
121, -- Genk AASA#66258
|
||
'00602000',
|
||
'00600000'),
|
||
kpn.prs_kostenplaats_nr)
|
||
prs_kostenplaats_nr,
|
||
kpo.mld_kenmerkopdr_waarde projectkpn_opdr,
|
||
kpp.prs_kenmerklink_waarde projectkpn_perslid,
|
||
rc.fac_usrdata_code rek_courant,
|
||
o.mld_statusopdr_key,
|
||
so.mld_statusopdr_omschrijving,
|
||
ap.prs_perslid_key,
|
||
DECODE (aaxx_get_user,
|
||
'IT', prs_perslid_nr,
|
||
pnp.prs_kenmerklink_waarde)
|
||
aafm_perslid_nr,
|
||
akpn.prs_kostenplaats_nr afdkpn,
|
||
o.mld_opdr_uren,
|
||
ou.mld_opdr_uren_key,
|
||
ou.mld_opdr_uren_datum,
|
||
ou.mld_opdr_uren_status,
|
||
lx.fac_locale_xsl_tekst uren_status_tekst,
|
||
ou.mld_opdr_uren_besteed,
|
||
ou.mld_opdr_uren_opmerking,
|
||
fac.safe_To_Number(ut.mld_kenmerkopdr_waarde) uurtarief_opdr,
|
||
DECODE (UPPER(tp.fac_usrdata_omschr), 'INTERN INTERIM MANAGEMENT PROJECT DIRECT - DIRECT', fac.safe_to_number(uti.prs_kenmerklink_waarde),
|
||
ap.prs_perslid_uurloon) uurtarief_perslid
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline vg,
|
||
ins_srtdiscipline vt,
|
||
prs_kostenplaats kpn,
|
||
mld_opdr o,
|
||
mld_statusopdr so,
|
||
prs_perslid ap,
|
||
prs_v_aanwezigafdeling aa,
|
||
prs_kostenplaats akpn,
|
||
mld_opdr_uren ou,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key IN
|
||
(SELECT mld_kenmerk_key FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 55
|
||
AND mld_kenmerk_verwijder IS NULL) ) 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 prs_kenmerklink WHERE prs_kenmerk_key = 6) uti, -- uurtarief intern (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 uti.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>');
|
||
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) || '"/>');
|
||
IF (SUBSTR (rec.rek_courant, 1, 1) = '2' OR aaxx_get_user = 'SABIC') -- Begint met '2'!
|
||
THEN
|
||
aaxx_add_xml_row (v_bestand, '<Costcenter code="' || rec.prs_kostenplaats_nr || '"/>');
|
||
ELSE
|
||
aaxx_add_xml_row (v_bestand, '<Costcenter code="' || coalesce(rec.projectkpn_opdr, rec.projectkpn_perslid) || '"/>');
|
||
END IF;
|
||
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', '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,
|
||
DECODE (UPPER(tp.fac_usrdata_omschr),
|
||
'INTERN INTERIM MANAGEMENT PROJECT DIRECT - DIRECT', fac.safe_to_number(uti.prs_kenmerklink_waarde),
|
||
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)
|
||
(SELECT mld_opdr_key, fac_usrdata_omschr
|
||
FROM fac_usrdata ud, mld_kenmerkopdr ko
|
||
WHERE ud.fac_usrtab_key = 14
|
||
AND ko.mld_kenmerk_key = 186
|
||
AND ud.fac_usrdata_key = fac.safe_To_Number(ko.mld_kenmerkopdr_waarde)
|
||
) tp, -- type project
|
||
(SELECT prs_link_key prs_perslid_key, prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 6) uti -- uurtarief intern (perslid)
|
||
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 tp.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
|
||
AND ap.prs_perslid_key = uti.prs_perslid_key(+);
|
||
|
||
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).
|
||
-- AAIT#26399: Naast het op Verwerkt zetten van de kostenboekingen tevens voor
|
||
-- AAIT#35694: ALLEEN de uren op '5130976', '5101200', '4130976', '4370901', '4370904', '0100024' en '4130990') de tegenboeking
|
||
-- aanmaken/opslaan!
|
||
/* Formatted on 24-9-2013 16:42:55 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE PROCEDURE aaxx_export_verwerk_exact_uren (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2,
|
||
p_kpnprefix IN VARCHAR2
|
||
)
|
||
AS
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (200);
|
||
v_count NUMBER;
|
||
v_logdate DATE;
|
||
BEGIN
|
||
v_logdate := SYSDATE;
|
||
|
||
-- Goedgekeurde en ge<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;
|
||
|
||
COMMIT;
|
||
|
||
-- AAIT#26399: Van de hierboven verwerkte/geexporteerde uren wordt voor de
|
||
-- regels op gedefinieerde projecten (hardgecodeerd!) tot slot
|
||
-- nog een dekkingsregel aangemaakt.
|
||
-- Het leverende account wordt bepaald door het gedeelte achter
|
||
-- de slash ('/') in de 'Rek. Courant'-eigen tabel!
|
||
INSERT INTO aaxx_exp_uren_dekking (aanmaak,
|
||
mld_opdr_uren_key,
|
||
mld_opdr_uren_datum,
|
||
projecttype,
|
||
rek_courant,
|
||
kostenplaats,
|
||
perslid_nr,
|
||
projectcode,
|
||
projectnaam,
|
||
uren_besteed,
|
||
uurtarief,
|
||
lev_account)
|
||
SELECT SYSDATE,
|
||
ug.mld_opdr_uren_key,
|
||
ug.mld_opdr_uren_datum,
|
||
SUBSTR (ug.projecttype_code, 1, 10),
|
||
SUBSTR (ug.rek_courant, 1, 10),
|
||
SUBSTR (COALESCE (ug.projectkpn_opdr, ug.projectkpn_perslid), 1 , 30),
|
||
SUBSTR (ug.aafm_perslid_nr, 1, 30),
|
||
SUBSTR (ug.meldingnr, 1, 20),
|
||
SUBSTR (ug.projectnaam, 1, 30),
|
||
ug.mld_opdr_uren_besteed,
|
||
COALESCE (ug.uurtarief_opdr, ug.uurtarief_perslid),
|
||
COALESCE (
|
||
SUBSTR (
|
||
TRIM(SUBSTR (ud.fac_usrdata_omschr,
|
||
INSTR (ud.fac_usrdata_omschr, '/') + 1)),
|
||
1,
|
||
30
|
||
),
|
||
'XXX'
|
||
)
|
||
FROM aaxx_exp_uren u, aaxx_v_exact_uren_gegevens ug, fac_usrdata ud
|
||
WHERE COALESCE (u.administratie, 'GEEN') =
|
||
COALESCE (p_kpnprefix, 'GEEN')
|
||
AND u.mld_opdr_uren_key = ug.mld_opdr_uren_key
|
||
AND ug.projecttype_code IN ('5130976', '5101200', '4130976', '4370901', '4370904', '0100024', '4130990')
|
||
AND TRIM (ug.rek_courant) = TRIM (ud.fac_usrdata_code)
|
||
AND ud.fac_usrtab_key = 15 -- Rek. Courant-tabel
|
||
AND SUBSTR (ud.fac_usrdata_code, 1, 1) = '2' -- Begint met '2'!
|
||
AND ud.fac_usrdata_verwijder IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM aaxx_exp_uren_dekking
|
||
WHERE mld_opdr_uren_key = ug.mld_opdr_uren_key);
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('UREN',
|
||
'E',
|
||
v_errormsg,
|
||
'');
|
||
END;
|
||
/
|
||
|
||
--=============================================================================
|
||
-- EXPORTFUNCTIES BUNDEL_CATERING
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_export_bundel_catering (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT REPLACE(REPLACE('RES'
|
||
|| ';'
|
||
|| SYSDATE
|
||
|| ';'
|
||
|| SUBSTR (prs_kostenplaats_nr, 1, 30)
|
||
|| ';'
|
||
|| SUBSTR (prs_kostenplaats_omschrijving, 1, 60)
|
||
|| ';'
|
||
|| SUBSTR (prs_kostensoort_oms, 1, 60)
|
||
|| ';'
|
||
|| rra.res_rsv_artikel_aantal || ' * ' || ra.res_artikel_omschrijving
|
||
|| ';'
|
||
|| to_char(rra.res_rsv_artikel_prijs)
|
||
|| ';'
|
||
|| to_char(ra.res_artikel_inkoopprijs)
|
||
|| ';'
|
||
|| rra.res_rsv_artikel_key
|
||
,CHR (13), ''), CHR (10), '<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
|
||
c_catmld_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(2, 'D');
|
||
v_errormsg VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_laatste_export DATE;
|
||
v_mld_melding_key NUMBER;
|
||
v_prs_bedrijf_key NUMBER;
|
||
v_prs_kostenplaats_key NUMBER;
|
||
v_mld_opdr_bedrijfopdr_volgnr NUMBER;
|
||
v_aanvrager NUMBER;
|
||
v_mld_workorder_key NUMBER;
|
||
BEGIN
|
||
|
||
-- Volgens mij (AEG) wordt deze niet meer gebruikt
|
||
|
||
|
||
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 MJB
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_mjb_assets
|
||
AS
|
||
SELECT ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
l.alg_locatie_code,
|
||
d.alg_gebouw_upper,
|
||
d.alg_verdieping_code,
|
||
d.alg_ruimte_nr,
|
||
d.ins_deel_aantal,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Plaats'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
plaats,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Bouwjaar'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
bouwjaar,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Capaciteit'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
capaciteit,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING =
|
||
'Datum laatste asset survey'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
laatste_survey,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Fabricaat'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
fabricaat,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Gewenste Conditie'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
gewenste_conditie,
|
||
id.ins_deel_mjb_score1
|
||
huidige_conditie,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Kritische asset'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
kritische_asset,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING =
|
||
'Referentienummer leverancier'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
referentie_leverancier,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Type'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
type_asset,
|
||
aaxx_get_kenmerk (
|
||
'INS',
|
||
(SELECT ins_kenmerk_key
|
||
FROM ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.INS_SRTKENMERK_OMSCHRIJVING = 'Eenheid'
|
||
AND k.INS_SRTINSTALLATIE_KEY = d.ins_discipline_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_verwijder IS NULL),
|
||
d.ins_deel_key)
|
||
eenheid,
|
||
COALESCE(g.alg_gebouw_vervaldatum, d.ins_deel_vervaldatum) vervaldatum,
|
||
g.alg_gebouw_vervaldatum vervaldatum_gebouw,
|
||
d.ins_deel_vervaldatum vervaldatum_object,
|
||
d.ins_deel_key
|
||
FROM ins_v_deel_gegevens d,
|
||
ins_srtdeel sd,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
ins_deel id
|
||
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND d.alg_locatie_key = l.alg_locatie_key
|
||
AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND d.ins_deel_key = id.ins_deel_key
|
||
AND id.ins_deel_verwijder IS NULL
|
||
AND UPPER(d.ins_discipline_omschrijving) = 'GEBOUWOBJECTEN';
|
||
|
||
CREATE OR REPLACE VIEW AAXX_V_MJB_TAKEN
|
||
(
|
||
INS_SRTCONTROLE_KEY,
|
||
INS_DEEL_KEY,
|
||
OBJECTIDENTIFICATIE,
|
||
OMSCHRIJVING,
|
||
CATEGORIE,
|
||
TAAKOMSCHRIJVING,
|
||
GROEP,
|
||
PRIORITEIT,
|
||
PERCENTAGE,
|
||
TAAKOPMERKING_X,
|
||
KOSTEN_MATERIAAL,
|
||
DIENST,
|
||
BEDRIJF,
|
||
PERIODE_EENHEID,
|
||
PERIODE_FREQUENCY,
|
||
CYCLUS_STARTDATUM,
|
||
TAAK_KERENGERUND,
|
||
STATUS_LAATST_GERUNDE_TAAK,
|
||
PLANDATUM,
|
||
MJOB_DOORGESCHOVEN,
|
||
GEPLAND_OP,
|
||
GEPLAND_DOOR,
|
||
INBEHANDELING,
|
||
INBEHANDELING_DOOR,
|
||
BEHANDELAAR_OPTAAK,
|
||
GEREEDDATUM,
|
||
ACTIE_VEREIST,
|
||
TAAKAFHANDELING,
|
||
AFGEMELD,
|
||
AFGEMELD_DOOR,
|
||
VERWERKT,
|
||
VERWERKT_DOOR,
|
||
UITVOERDATUM_ORIGINEEL,
|
||
TELAAT,
|
||
KOSTEN_MATERIAAL_FREEZE,
|
||
OPMERKING,
|
||
FILTERDATUM_GEREED,
|
||
CYLCUS_VOLGENDE_DATUM,
|
||
CYCLUS_EINDDATUM,
|
||
EINDATUM_GEBOUW,
|
||
EINDDATUM_OBJECT,
|
||
EINDDATUM_OBJECTTAAK,
|
||
EINDDATUM_BASISTAAK,
|
||
LOCATIE,
|
||
GEBOUW
|
||
)
|
||
AS
|
||
SELECT x.ins_srtcontrole_key,
|
||
x.ins_deel_key,
|
||
d.ins_deel_omschrijving
|
||
objectidentificatie,
|
||
d.ins_deel_opmerking
|
||
omschrijving,
|
||
di.ins_discipline_omschrijving
|
||
categorie,
|
||
sc.ins_srtcontrole_omschrijving
|
||
taakomschrijving,
|
||
COALESCE (ins_srtcontroledl_xcp_groep, sc.ins_srtcontrole_groep)
|
||
groep,
|
||
sc.ins_srtcontrole_level
|
||
prioriteit,
|
||
COALESCE(ins_srtcontroledl_xcp_perc, sc.ins_srtcontrole_percentage)
|
||
percentage,
|
||
x.ins_srtcontroledl_xcp_opmerk
|
||
taakopmerking_X,
|
||
COALESCE (ins_srtcontroledl_xcp_materia, sc.ins_srtcontrole_materiaal)
|
||
kosten_materiaal,
|
||
prs_dienst_omschrijving
|
||
Dienst,
|
||
(SELECT LISTAGG (b.prs_bedrijf_naam, ',')
|
||
WITHIN GROUP (ORDER BY b.prs_bedrijf_naam)
|
||
AS bedrijf
|
||
FROM prs_bedrijf b, prs_bedrijfdienstlocatie bdl
|
||
WHERE pd.prs_dienst_key = bdl.prs_dienst_key
|
||
AND bdl.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND ( bdl.alg_gebouw_key = d.alg_gebouw_key
|
||
OR bdl.alg_locatie_key = d.alg_locatie_key))
|
||
Bedrijf,
|
||
DECODE (COALESCE (ins_srtcontroledl_xcp_eenheid, sc.ins_srtcontrole_eenheid),
|
||
4, 'J',
|
||
3, 'M',
|
||
2, 'W',
|
||
1, 'D')
|
||
periode_eenheid,
|
||
COALESCE(ins_srtcontroledl_xcp_periode, sc.ins_srtcontrole_periode)
|
||
periode_frequency,
|
||
ins_srtcontroledl_xcp_startdat
|
||
AS cyclus_startdatum,
|
||
(SELECT COUNT (dc.ins_deelsrtcontrole_key)
|
||
FROM ins_deelsrtcontrole dc
|
||
WHERE dc.ins_deel_key = d.ins_deel_key
|
||
AND dc.ins_srtcontrole_key = x.ins_srtcontrole_key)
|
||
taak_kerengerund,
|
||
v.status_laatst_gerunde_taak,
|
||
v.plandatum,
|
||
CASE WHEN v.mjob_doorgeschoven IS NOT NULL THEN TO_CHAR(v.ins_deelsrtcontrole_freezedate,'yyyy') ELSE NULL END mjob_doorgeschoven,
|
||
v.gepland_op,
|
||
v.gepland_door,
|
||
v.inbehandeling,
|
||
v.inbehandeling_door,
|
||
v.behandelaar_optaak,
|
||
v.gereeddatum,
|
||
v.actie_vereist,
|
||
v.taakafhandeling,
|
||
v.afgemeld,
|
||
v.afgemeld_door,
|
||
v.verwerkt,
|
||
v.verwerkt_door,
|
||
v.uitvoerdatum_origineel,
|
||
v.telaat,
|
||
v.kosten_materiaal_freeze,
|
||
v.opmerking,
|
||
v.filterdatum_gereed,
|
||
fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1)
|
||
cylcus_volgende_datum,
|
||
COALESCE(g.alg_gebouw_vervaldatum, d.ins_deel_vervaldatum, x.ins_srtcontroledl_xcp_eind, sc.ins_srtcontrole_eind)
|
||
AS cyclus_einddatum,
|
||
g.alg_gebouw_vervaldatum,
|
||
d.ins_deel_vervaldatum,
|
||
x.ins_srtcontroledl_xcp_eind,
|
||
sc.ins_srtcontrole_eind,
|
||
l.alg_locatie_omschrijving,
|
||
g.alg_gebouw_omschrijving
|
||
FROM ins_srtcontrole sc,
|
||
ins_srtcontroledl_xcp x,
|
||
ins_v_deel_gegevens d,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
ins_tab_discipline di,
|
||
prs_dienst pd,
|
||
( SELECT dc.ins_deelsrtcontrole_key,
|
||
dc.ins_deel_key,
|
||
dc.ins_srtcontrole_key,
|
||
DECODE (dc.ins_deelsrtcontrole_status,
|
||
0, 'Ingepland',
|
||
2, 'In behandeling',
|
||
5, 'Afgemeld',
|
||
6, 'Voltooid')
|
||
status_laatst_gerunde_taak,
|
||
dc.ins_deelsrtcontrole_plandatum
|
||
plandatum,
|
||
'<geen tracking van..>'
|
||
gepland_op,
|
||
'<geen tracking van..>'
|
||
gepland_door,
|
||
(SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCBE'
|
||
AND fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
inbehandeling,
|
||
(SELECT p.prs_perslid_voornaam
|
||
|| ' '
|
||
|| p.prs_perslid_naam
|
||
FROM fac_srtnotificatie sn,
|
||
fac_tracking ft,
|
||
prs_perslid p
|
||
WHERE ft.prs_perslid_key = p.prs_perslid_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCBE'
|
||
AND ft.fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
inbehandeling_door,
|
||
(SELECT p.prs_perslid_voornaam
|
||
|| ' '
|
||
|| p.prs_perslid_naam
|
||
FROM prs_perslid p
|
||
WHERE prs_perslid_key = dc.prs_perslid_key)
|
||
behandelaar_optaak,
|
||
dc.ins_deelsrtcontrole_datum
|
||
gereeddatum,
|
||
CASE
|
||
WHEN dc.ins_deelsrtcontrole_status = 5 THEN 'Ja'
|
||
WHEN dc.ins_deelsrtcontrole_status = 6 THEN 'Nee'
|
||
ELSE ''
|
||
END
|
||
actie_vereist,
|
||
(SELECT CASE
|
||
WHEN cm.ins_controlemode_success = 1
|
||
THEN
|
||
ins_controlemode_oms || ' - Succes'
|
||
ELSE
|
||
ins_controlemode_oms || ' - Geen succes'
|
||
END
|
||
FROM ins_controlemode cm
|
||
WHERE cm.ins_controlemode_key = dc.ins_controlemode_key)
|
||
taakafhandeling,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCAF'
|
||
AND ft.fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
afgemeld,
|
||
(SELECT p.prs_perslid_voornaam
|
||
|| ' '
|
||
|| p.prs_perslid_naam
|
||
FROM fac_srtnotificatie sn,
|
||
fac_tracking ft,
|
||
prs_perslid p
|
||
WHERE ft.prs_perslid_key = p.prs_perslid_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCAF'
|
||
AND fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
afgemeld_door,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCVE'
|
||
AND ft.fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
verwerkt,
|
||
(SELECT p.prs_perslid_voornaam
|
||
|| ' '
|
||
|| p.prs_perslid_naam
|
||
FROM fac_srtnotificatie sn,
|
||
fac_tracking ft,
|
||
prs_perslid p
|
||
WHERE ft.prs_perslid_key = p.prs_perslid_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCVE'
|
||
AND fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
verwerkt_door,
|
||
dc.ins_deelsrtcontrole_datum_org
|
||
uitvoerdatum_origineel,
|
||
CASE
|
||
WHEN dc.ins_deelsrtcontrole_status in (5,6)
|
||
AND COALESCE(dc.ins_deelsrtcontrole_plandatum, dc.ins_deelsrtcontrole_datum_org) < dc.ins_deelsrtcontrole_datum THEN 'Ja'
|
||
WHEN dc.ins_deelsrtcontrole_status in (5,6)
|
||
AND COALESCE(dc.ins_deelsrtcontrole_plandatum, dc.ins_deelsrtcontrole_datum_org) >= dc.ins_deelsrtcontrole_datum THEN 'Nee'
|
||
ELSE ''
|
||
END telaat,
|
||
dc.ins_deelsrtcontrole_freezecost
|
||
kosten_materiaal_freeze,
|
||
dc.ins_deelsrtcontrole_opmerking
|
||
opmerking,
|
||
CASE
|
||
WHEN dc.ins_deelsrtcontrole_status = 5
|
||
THEN
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCAF'
|
||
AND ft.fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
WHEN dc.ins_deelsrtcontrole_status = 6
|
||
THEN
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCVE'
|
||
AND ft.fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
ELSE
|
||
NULL
|
||
END
|
||
filterdatum_gereed,
|
||
(SELECT max(ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCUP'
|
||
AND instr(lower(ft.fac_tracking_oms),'freeze datum:')>0
|
||
AND ft.fac_tracking_refkey =
|
||
dc.ins_deelsrtcontrole_key)
|
||
mjob_doorgeschoven,
|
||
dc.ins_deelsrtcontrole_freezedate
|
||
FROM ins_deelsrtcontrole dc
|
||
WHERE dc.ins_deelsrtcontrole_key =
|
||
(SELECT MAX (dc2.ins_deelsrtcontrole_key)
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deel_key = dc.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key =
|
||
dc.ins_srtcontrole_key)
|
||
ORDER BY dc.ins_deel_key, dc.ins_srtcontrole_key) v
|
||
WHERE sc.ins_srtcontrole_key = x.ins_srtcontrole_key
|
||
AND x.ins_deel_key = d.ins_deel_key
|
||
AND sc.ctr_discipline_key = di.ins_discipline_key
|
||
AND sc.prs_dienst_key = pd.prs_dienst_key(+)
|
||
AND UPPER (d.ins_discipline_omschrijving) = 'GEBOUWOBJECTEN'
|
||
AND x.ins_deel_key = v.ins_deel_key(+)
|
||
AND x.ins_srtcontrole_key = v.ins_srtcontrole_key(+)
|
||
AND d.alg_locatie_key = l.alg_locatie_key
|
||
AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND sc.ins_srtcontrole_key IN (SELECT i.ins_srtcontrole_key FROM ins_v_defined_inspect i WHERE i.ins_deel_key = d.ins_deel_key)
|
||
ORDER BY d.ins_deel_omschrijving ;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_mjb_gebreken
|
||
AS
|
||
SELECT d.ins_deel_omschrijving objectomschrijving,
|
||
sd.ins_srtdeel_omschrijving objectsoortomschrijving,
|
||
mld_melding_datum datum,
|
||
disc.ins_discipline_omschrijving vakgroep,
|
||
sm.mld_stdmelding_omschrijving stdmeldingomschrijving,
|
||
(SELECT DECODE(substr(ud.fac_usrdata_code,1,1), 'G', 1, 'S', 2, 'E', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ERNST'))) ernst,
|
||
(SELECT SUBSTR(ud.fac_usrdata_code,1,1) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'INTENSITEIT'))) intensiteit,
|
||
(SELECT SUBSTR(ud.fac_usrdata_volgnr,1,1) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'OMVANG'))) omvang,
|
||
(SELECT DECODE(ud.fac_usrdata_code,'NVT', NULL, 'Gering', 1, 'Matig', 2, 'Sterk', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ASPECT1'))) aspectwaardeVG,
|
||
(SELECT DECODE(ud.fac_usrdata_code,'NVT', NULL, 'Gering', 1, 'Matig', 2, 'Sterk', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ASPECT2'))) aspectwaardeCH,
|
||
(SELECT DECODE(ud.fac_usrdata_code,'NVT', NULL, 'Gering', 1, 'Matig', 2, 'Sterk', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ASPECT3'))) aspectwaardeGB,
|
||
(SELECT DECODE(ud.fac_usrdata_code,'NVT', NULL, 'Gering', 1, 'Matig', 2, 'Sterk', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ASPECT4'))) aspectwaardeTV,
|
||
(SELECT DECODE(ud.fac_usrdata_code,'NVT', NULL, 'Gering', 1, 'Matig', 2, 'Sterk', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ASPECT5'))) aspectwaardeTK,
|
||
(SELECT DECODE(ud.fac_usrdata_code,'NVT', NULL, 'Gering', 1, 'Matig', 2, 'Sterk', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ASPECT6'))) aspectwaardeBE,
|
||
(SELECT DECODE(ud.fac_usrdata_code,'NVT', NULL, 'Gering', 1, 'Matig', 2, 'Sterk', 3) FROM fac_usrdata ud WHERE fac_usrdata_key = FAC.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'ASPECT7'))) aspectwaardeEN,
|
||
mld_melding_omschrijving opmerking,
|
||
aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'CONDITIESCORE') cond,
|
||
aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'PRIORITEITSCORE') prio,
|
||
p.prs_perslid_email inspecteur,
|
||
aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'FOTONAAM') fotonaam,
|
||
fac.safe_to_number(aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'KOSTEN')) kosten,
|
||
NULL vervaldatum,
|
||
m.mld_melding_einddatum datum_gepland,
|
||
(select mld_kenmerk_waarde from aaxx_v_dwh_kenmerk_melding where mld_melding_id = m.mld_melding_key and mld_kenmerk_omschrijving = 'Dienst') dienst,
|
||
(select mld_kenmerk_waarde from aaxx_v_dwh_kenmerk_melding where mld_melding_id = m.mld_melding_key and mld_kenmerk_omschrijving = 'Taakgroep') taakgroep,
|
||
aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'GEADVISEERDSTARTJAAR') geadviseerd_startjaar,
|
||
aaxx_get_NEN2767_kenmerkwaarde(m.mld_melding_key, 'DATUMGEREEDINSPECTEUR') datum_gereed_inspecteur,
|
||
m.mld_melding_key,
|
||
s.mld_statuses_omschrijving status,
|
||
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ')' aanvrager,
|
||
CASE WHEN m.mld_melding_behandelaar_key IS NOT NULL THEN bh.prs_perslid_naam || ' (' || bh.prs_perslid_voornaam || ')' ELSE ''
|
||
END behandelaar
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline disc,
|
||
mld_melding_object mo,
|
||
ins_deel d,
|
||
ins_srtdeel sd,
|
||
prs_perslid p,
|
||
mld_statuses s,
|
||
prs_perslid bh
|
||
WHERE disc.ins_srtdiscipline_key = FAC.getSetting('cnd_gebreken_srtdisc_key')
|
||
AND sm.mld_stdmelding_code <> 'GEEN'
|
||
AND disc.ins_discipline_verwijder IS NULL
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND mo.mld_melding_key = m.mld_melding_key
|
||
AND mo.mld_melding_object_verwijder IS NULL
|
||
AND d.ins_deel_key = mo.ins_deel_key
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND m.mld_melding_behandelaar_key = bh.prs_perslid_key (+)
|
||
AND m.mld_melding_key >=
|
||
COALESCE (
|
||
(SELECT MAX (gg.mld_melding_key)
|
||
FROM (SELECT gg2.ins_deel_key,
|
||
gg2.mld_melding_key,
|
||
m.mld_melding_status
|
||
FROM (SELECT d.ins_deel_key,
|
||
MAX (m.mld_melding_key) mld_melding_key
|
||
FROM mld_melding m,
|
||
mld_melding_object mo,
|
||
ins_deel d,
|
||
mld_stdmelding std
|
||
WHERE m.mld_stdmelding_key =
|
||
std.mld_stdmelding_key
|
||
AND std.mld_stdmelding_code = 'GEEN'
|
||
AND mo.mld_melding_key =
|
||
m.mld_melding_key
|
||
AND mo.mld_melding_object_verwijder
|
||
IS NULL
|
||
AND d.ins_deel_key = mo.ins_deel_key
|
||
GROUP BY d.ins_deel_key)
|
||
gg2,
|
||
mld_melding m
|
||
WHERE m.mld_melding_key = gg2.mld_melding_key) gg
|
||
WHERE gg.ins_deel_key = d.ins_deel_key),
|
||
m.mld_melding_key)
|
||
AND m.mld_melding_status = s.mld_statuses_key
|
||
AND m.mld_melding_status in (0,2,3,4,7,99) -- Alleen lopende zaken
|
||
;
|
||
|
||
CREATE OR REPLACE VIEW AAXX_V_MJB_PRIJSLIJST
|
||
(
|
||
INS_DEEL_KEY,
|
||
OBJECTIDENTIFICATIE,
|
||
INS_DEEL_AANTAL,
|
||
EENHEID,
|
||
OMSCHRIJVING,
|
||
FABRICAAT,
|
||
TYPE_ASSET,
|
||
CAPACITEIT,
|
||
BOUWJAAR,
|
||
PLAATS,
|
||
CATEGORIE,
|
||
TAAKOMSCHRIJVING,
|
||
GROEP,
|
||
PRIORITEIT,
|
||
PERCENTAGE,
|
||
TAAKOPMERKING_X,
|
||
DIENST,
|
||
BEDRIJF,
|
||
PERIODE_EENHEID,
|
||
PERIODE_FREQUENCY,
|
||
CYCLUS_STARTDATUM,
|
||
CYLCUS_VOLGENDE_DATUM,
|
||
LOCATIE,
|
||
KOSTEN_PERUITVOER,
|
||
KOSTEN_PERJAAR
|
||
)
|
||
AS
|
||
SELECT v1.ins_deel_key,
|
||
v1.objectidentificatie,
|
||
v2.ins_deel_aantal,
|
||
v2.eenheid,
|
||
v1.omschrijving,
|
||
v2.fabricaat,
|
||
v2.type_asset,
|
||
v2.capaciteit,
|
||
v2.bouwjaar,
|
||
v2.plaats,
|
||
v1.categorie,
|
||
v1.taakomschrijving,
|
||
v1.groep,
|
||
v1.prioriteit,
|
||
v1.percentage,
|
||
v1.taakopmerking_x,
|
||
v1.dienst,
|
||
v1.bedrijf,
|
||
v1.periode_eenheid,
|
||
v1.periode_frequency,
|
||
v1.cyclus_startdatum,
|
||
v1.cylcus_volgende_datum,
|
||
v1.locatie,
|
||
v1.kosten_materiaal
|
||
* v2.ins_deel_aantal
|
||
* (COALESCE (v1.percentage, 100) / 100)
|
||
kosten_peruitvoer,
|
||
CASE
|
||
WHEN v1.periode_eenheid = 'J'
|
||
THEN
|
||
(1 / v1.periode_frequency)
|
||
* v1.kosten_materiaal
|
||
* v2.ins_deel_aantal
|
||
* (COALESCE (v1.percentage, 100) / 100)
|
||
WHEN v1.periode_eenheid = 'M'
|
||
THEN
|
||
(12 / v1.periode_frequency)
|
||
* v1.kosten_materiaal
|
||
* v2.ins_deel_aantal
|
||
* (COALESCE (v1.percentage, 100) / 100)
|
||
WHEN v1.periode_eenheid = 'W'
|
||
THEN
|
||
(52 / v1.periode_frequency)
|
||
* v1.kosten_materiaal
|
||
* v2.ins_deel_aantal
|
||
* (COALESCE (v1.percentage, 100) / 100)
|
||
WHEN v1.periode_eenheid = 'D'
|
||
THEN
|
||
(365 / v1.periode_frequency)
|
||
* v1.kosten_materiaal
|
||
* v2.ins_deel_aantal
|
||
* (COALESCE (v1.percentage, 100) / 100)
|
||
ELSE
|
||
v1.kosten_materiaal
|
||
* v2.ins_deel_aantal
|
||
* (COALESCE (v1.percentage, 100) / 100)
|
||
END
|
||
kosten_perjaar
|
||
FROM aaxx_v_mjb_taken v1, aaxx_v_mjb_assets v2
|
||
WHERE v1.ins_deel_key = v2.ins_deel_key
|
||
AND (v2.vervaldatum IS NULL OR TRUNC(SYSDATE) < TRUNC(v2.vervaldatum) ) ;
|
||
|
||
--=============================================================================
|
||
-- EXPORTFUNCTIES DATAWAREHOUSE
|
||
-------------------------------------------------------------------------------
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_PRS_BEDRIJF
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_prs_bedrijf
|
||
(
|
||
prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
prs_bedrijf_naam_upper,
|
||
prs_bedrijf_post_adres,
|
||
prs_bedrijf_post_postcode,
|
||
prs_bedrijf_post_plaats,
|
||
prs_bedrijf_post_land,
|
||
prs_bedrijf_bezoek_adres,
|
||
prs_bedrijf_bezoek_postcode,
|
||
prs_bedrijf_bezoek_plaats,
|
||
prs_bedrijf_bezoek_land,
|
||
prs_bedrijf_telefoon,
|
||
prs_bedrijf_fax,
|
||
prs_bedrijf_telefoon2,
|
||
prs_bedrijf_contact_persoon,
|
||
prs_bedrijf_contact_telefoon,
|
||
prs_bedrijf_contact_fax,
|
||
prs_bedrijf_opmerking,
|
||
prs_bedrijf_opmerking2,
|
||
prs_bedrijf_uurloon,
|
||
prs_leverancier_nr,
|
||
prs_overeenkomst_nr,
|
||
prs_overeenkomst_datum,
|
||
prs_bedrijf_aanmaak,
|
||
prs_bedrijf_verwijder,
|
||
prs_bedrijf_leverancier,
|
||
prs_bedrijf_uitvoerende,
|
||
prs_bedrijf_contract,
|
||
prs_bedrijf_intern,
|
||
prs_bedrijf_huurder,
|
||
prs_bedrijf_email,
|
||
prs_bedrijf_ingids,
|
||
prs_relatietype
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
prs_bedrijf_naam_upper,
|
||
prs_bedrijf_post_adres,
|
||
prs_bedrijf_post_postcode,
|
||
prs_bedrijf_post_plaats,
|
||
prs_bedrijf_post_land,
|
||
prs_bedrijf_bezoek_adres,
|
||
prs_bedrijf_bezoek_postcode,
|
||
prs_bedrijf_bezoek_plaats,
|
||
prs_bedrijf_bezoek_land,
|
||
prs_bedrijf_telefoon,
|
||
prs_bedrijf_fax,
|
||
prs_bedrijf_telefoon2,
|
||
prs_bedrijf_contact_persoon,
|
||
prs_bedrijf_contact_telefoon,
|
||
prs_bedrijf_contact_fax,
|
||
prs_bedrijf_opmerking,
|
||
prs_bedrijf_opmerking2,
|
||
prs_bedrijf_uurloon,
|
||
prs_leverancier_nr,
|
||
prs_overeenkomst_nr,
|
||
prs_overeenkomst_datum,
|
||
prs_bedrijf_aanmaak,
|
||
prs_bedrijf_verwijder,
|
||
prs_bedrijf_leverancier,
|
||
prs_bedrijf_uitvoerende,
|
||
prs_bedrijf_contract,
|
||
prs_bedrijf_intern,
|
||
prs_bedrijf_huurder,
|
||
prs_bedrijf_email,
|
||
prs_bedrijf_ingids,
|
||
prs_relatietype_omschrijving
|
||
FROM prs_bedrijf b, prs_relatietype rt
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND b.prs_relatietype_key = rt.prs_relatietype_key(+);
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_PRS_BEDRIJFADRES
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_prs_bedrijfadres
|
||
(
|
||
prs_bedrijf_key,
|
||
prs_bedrijfadres_type,
|
||
opdrachttype,
|
||
prs_bedrijfadres_url,
|
||
prs_bedrijfadres_ordermode,
|
||
prs_bedrijfadres_certificate,
|
||
prs_bedrijfadres_xsl,
|
||
prs_fixed_attach,
|
||
prs_send_flex,
|
||
alg_district_omschrijving,
|
||
alg_locatie_code,
|
||
prs_perslid_naam,
|
||
prs_perslid_key,
|
||
prs_bedrijfadres_expire
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_key,
|
||
DECODE (prs_bedrijfadres_type,
|
||
'C', 'Contracten',
|
||
'O', 'Opdrachten',
|
||
'B', 'Bestellingen',
|
||
'Anders?')
|
||
TYPE,
|
||
DECODE (
|
||
prs_bedrijfadres_type,
|
||
'O',
|
||
COALESCE (t.mld_typeopdr_omschrijving,
|
||
'Geen/Overige opdrachten'),
|
||
'N.v.t'
|
||
)
|
||
Opdrachttype,
|
||
prs_bedrijfadres_url,
|
||
prs_bedrijfadres_ordermode,
|
||
prs_bedrijfadres_certificate,
|
||
prs_bedrijfadres_xsl,
|
||
prs_bedrijfadres_attachfile prs_fixed_attach,
|
||
DECODE (
|
||
prs_bedrijfadres_flexfiles,
|
||
0,
|
||
DECODE (
|
||
(SELECT COALESCE (fac_setting_pvalue, fac_setting_default)
|
||
FROM fac_setting
|
||
WHERE LOWER (fac_setting_name) = 'puo_order_flexfiles'),
|
||
0,
|
||
'Nee',
|
||
'Ja'
|
||
),
|
||
1,
|
||
'Ja',
|
||
'Nee'
|
||
)
|
||
prs_send_flex,
|
||
d.alg_district_omschrijving,
|
||
l.alg_locatie_code,
|
||
pf.prs_perslid_naam_full,
|
||
pf.prs_perslid_key,
|
||
ba.prs_bedrijfadres_lockexpire
|
||
FROM prs_bedrijfadres ba, mld_typeopdr t, alg_locatie l, alg_district d, prs_v_perslid_fullnames_all pf
|
||
WHERE ba.mld_typeopdr_key = t.mld_typeopdr_key(+)
|
||
AND ba.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND ba.alg_district_key = d.alg_district_key(+)
|
||
AND ba.prs_bedrijfadres_lockuser_key = prs_perslid_key(+);
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_PRS_AFDELING
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_prs_afdeling
|
||
(
|
||
prs_afdeling_parent_naam,
|
||
prs_afdeling_naam,
|
||
prs_afdeling_omschrijving,
|
||
prs_afdeling_code,
|
||
prs_kostenplaats_nr,
|
||
prs_afdeling_verwijder,
|
||
prs_bedrijf_naam,
|
||
niveau
|
||
)
|
||
AS
|
||
SELECT ap.prs_afdeling_naam,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving,
|
||
a1.prs_afdeling_naam afdeling_code,
|
||
k.prs_kostenplaats_nr,
|
||
a.prs_afdeling_verwijder,
|
||
prs_bedrijf_naam,
|
||
niveau
|
||
FROM prs_v_afdeling a,
|
||
prs_kostenplaats k,
|
||
prs_bedrijf b,
|
||
prs_afdeling ap,
|
||
prs_afdeling a1
|
||
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(+)
|
||
AND a.prs_afdeling_key = a1.prs_afdeling_key
|
||
AND ap.prs_afdeling_verwijder IS NULL;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_PRS_PERSOON
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_prs_perslid
|
||
(
|
||
prs_perslid_key,
|
||
prs_afdeling_naam,
|
||
prs_perslid_naam,
|
||
prs_perslid_tussenvoegsel,
|
||
prs_perslid_voornaam,
|
||
prs_perslid_full,
|
||
prs_perslid_login,
|
||
prs_perslid_nr,
|
||
prs_perslid_telefoon,
|
||
prs_perslid_email,
|
||
prs_perslid_lastlogin,
|
||
prs_perslid_aanmaak,
|
||
prs_perslid_verwijder,
|
||
prs_perslid_laatstgezien,
|
||
prs_perslid_bezetdatum
|
||
)
|
||
AS
|
||
SELECT p.prs_perslid_key,
|
||
a.prs_afdeling_naam,
|
||
p.prs_perslid_naam,
|
||
p.prs_perslid_tussenvoegsel,
|
||
p.prs_perslid_voornaam,
|
||
pf.prs_perslid_naam_full,
|
||
p.prs_perslid_oslogin,
|
||
p.prs_perslid_nr,
|
||
p.prs_perslid_telefoonnr,
|
||
p.prs_perslid_email,
|
||
p.prs_perslid_login,
|
||
p.prs_perslid_aanmaak,
|
||
p.prs_perslid_verwijder,
|
||
CASE
|
||
WHEN ( p.alg_onroerendgoed_type = 'G'
|
||
OR p.alg_onroerendgoed_type = 'V'
|
||
OR p.alg_onroerendgoed_type = 'R')
|
||
THEN
|
||
(SELECT og.alg_gebouw_naam
|
||
FROM alg_v_allonrgoed_gegevens og
|
||
WHERE og.alg_onroerendgoed_keys =
|
||
p.alg_onroerendgoed_keys)
|
||
WHEN (p.alg_onroerendgoed_type = 'L')
|
||
THEN
|
||
(SELECT alg_locatie_omschrijving
|
||
FROM alg_locatie
|
||
WHERE alg_locatie_key = alg_onroerendgoed_keys)
|
||
END
|
||
laatst_gezien,
|
||
p.prs_perslid_bezetdatum
|
||
FROM prs_perslid p, prs_afdeling a, prs_v_perslid_fullnames_all pf
|
||
WHERE a.prs_afdeling_key = p.prs_afdeling_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_FAC_GROEPRECHTEN
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_fac_groeprechten
|
||
(
|
||
prs_perslid_naam,
|
||
prs_perslid_key,
|
||
prs_perslid_login,
|
||
fac_functie_code,
|
||
fac_functie_omschrijving,
|
||
fac_functie_module,
|
||
ins_discipline_omschrijving,
|
||
fac_groep_omschrijving,
|
||
orgr,
|
||
orgw,
|
||
algr,
|
||
algw
|
||
)
|
||
AS
|
||
SELECT -- GROEPEN MET DISCIPLINES
|
||
p.prs_perslid_naam,
|
||
gg.prs_perslid_key,
|
||
p.prs_perslid_oslogin,
|
||
f.fac_functie_code,
|
||
f.fac_functie_omschrijving,
|
||
f.fac_functie_module,
|
||
(CASE
|
||
WHEN ins_srtdiscipline_prefix IS NULL THEN ''
|
||
ELSE ins_srtdiscipline_prefix || '-'
|
||
END)
|
||
|| ins_discipline_omschrijving
|
||
omschrijving,
|
||
gr.fac_groep_omschrijving,
|
||
g.fac_gebruiker_prs_level_read orgr,
|
||
g.fac_gebruiker_prs_level_write orgw,
|
||
g.fac_gebruiker_alg_level_read algr,
|
||
g.fac_gebruiker_alg_level_write algw
|
||
FROM fac_groeprechten g,
|
||
fac_gebruikersgroep gg,
|
||
prs_v_aanwezigperslid p,
|
||
fac_functie f,
|
||
ins_srtdiscipline isd,
|
||
ins_tab_discipline a,
|
||
fac_groep gr
|
||
WHERE g.ins_discipline_key = a.ins_discipline_key
|
||
AND g.fac_groep_key = gr.fac_groep_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key
|
||
AND gg.fac_groep_key = gr.fac_groep_key
|
||
AND isd.ins_srtdiscipline_key(+) = a.ins_srtdiscipline_key
|
||
AND f.fac_functie_key = g.fac_functie_key
|
||
AND f.fac_functie_discipline = 1
|
||
AND ins_discipline_verwijder IS NULL
|
||
UNION ALL -- GROEPEN ZONDER DISCIPLINES
|
||
SELECT p.prs_perslid_naam,
|
||
p.prs_perslid_key,
|
||
p.prs_perslid_oslogin,
|
||
f.fac_functie_code,
|
||
f.fac_functie_omschrijving,
|
||
f.fac_functie_module,
|
||
NULL,
|
||
gr.fac_groep_omschrijving,
|
||
g.fac_gebruiker_prs_level_read orgr,
|
||
g.fac_gebruiker_prs_level_write orgw,
|
||
g.fac_gebruiker_alg_level_read algr,
|
||
g.fac_gebruiker_alg_level_write algw
|
||
FROM fac_groeprechten g,
|
||
fac_functie f,
|
||
fac_gebruikersgroep gg,
|
||
prs_v_aanwezigperslid p,
|
||
fac_groep gr
|
||
WHERE fac_functie_module <> 'LAN'
|
||
AND fac_functie_discipline = 0
|
||
AND g.fac_functie_key = f.fac_functie_key
|
||
AND g.fac_groep_key = gg.fac_groep_key
|
||
AND gg.fac_groep_key = gr.fac_groep_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_PRS_KOSTENPLAATS
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_prs_kostenplaats
|
||
(
|
||
prs_kostenplaats_nr,
|
||
prs_kostenplaats_omschrijving,
|
||
prs_kostenplaats_budgethouder,
|
||
prs_kostenplaats_extern,
|
||
prs_kostenplaatsgrp_oms,
|
||
prs_kostenplaats_aanmaak,
|
||
prs_kostenplaats_verwijder
|
||
)
|
||
AS
|
||
SELECT k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving,
|
||
pf.prs_perslid_naam_full,
|
||
k.prs_kostenplaats_extern,
|
||
kg.prs_kostenplaatsgrp_oms,
|
||
k.prs_kostenplaats_aanmaak,
|
||
k.prs_kostenplaats_verwijder
|
||
FROM prs_kostenplaats k, prs_v_perslid_fullnames_all pf, prs_kostenplaatsgrp kg
|
||
WHERE k.prs_perslid_key = pf.prs_perslid_key(+)
|
||
AND k.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key(+);
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_PRS_KOSTENSOORT
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_prs_kostensoort
|
||
(
|
||
prs_kostensoort_code,
|
||
prs_kostensoort_omschrijving,
|
||
prs_kostensoort_fin_waarde,
|
||
prs_kostensoortgroep,
|
||
prs_kostensoort_aanmaak,
|
||
prs_kostensoort_altcode
|
||
)
|
||
AS
|
||
SELECT k.prs_kostensoort_oms,
|
||
k.prs_kostensoort_opmerking,
|
||
k.prs_kostensoort_refcode,
|
||
(SELECT prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg
|
||
WHERE ksg.prs_kostensoortgrp_key = k.prs_kostensoortgrp_key),
|
||
k.prs_kostensoort_aanmaak,
|
||
k.prs_kostensoort_altcode
|
||
FROM prs_kostensoort k;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_PRS_KENMERK_PRS
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_prs
|
||
(
|
||
prs_link_key,
|
||
prs_kenmerk_niveau,
|
||
prs_kenmerk_omschrijving,
|
||
prs_kenmerk_waarde
|
||
)
|
||
AS
|
||
SELECT prs_link_key,
|
||
prs_kenmerk_niveau,
|
||
prs_kenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (k.prs_kenmerk_kenmerktype,
|
||
k.fac_kenmerkdomein_key,
|
||
kl.prs_kenmerklink_waarde)
|
||
FROM prs_kenmerklink kl, prs_kenmerk k
|
||
WHERE kl.prs_kenmerk_key = k.prs_kenmerk_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_CNT_ALGEMEEN
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_cnt_contract
|
||
(
|
||
contract_key,
|
||
internnr,
|
||
externnr,
|
||
mantelcontract_key,
|
||
beschrijving,
|
||
contractsoort,
|
||
typecontract,
|
||
versie,
|
||
status,
|
||
ingangsdatum,
|
||
rappeldatum,
|
||
opzegdatum,
|
||
einddatum,
|
||
aanmaakdatum,
|
||
verwijderdatum,
|
||
eigenaar,
|
||
verantwoordelijk_manager,
|
||
beheerder,
|
||
uitvoerder,
|
||
kostenplaats,
|
||
termijnbedrag,
|
||
contractbedrag,
|
||
volgnummer,
|
||
locatie_code,
|
||
gebouw_code,
|
||
gebouw_kosten,
|
||
gebouw_gefactureerd,
|
||
gebouw_gefactureerd_incl,
|
||
gebouw_gefactureerdverwerkt
|
||
)
|
||
AS
|
||
SELECT c.cnt_contract_key,
|
||
cnt_contract_nummer_intern
|
||
|| '.'
|
||
|| COALESCE (cnt_contract_versie, '0'),
|
||
cnt_contract_nummer,
|
||
cnt_contract_mantel_key,
|
||
cnt_contract_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
tc.cnt_typecontract_omschrijving,
|
||
COALESCE (c.cnt_contract_versie, '0'),
|
||
DECODE (c.cnt_contract_status, '1', 'Gesloten', 'Open'),
|
||
cnt_contract_looptijd_van,
|
||
cnt.cnt_getrappeldatum (c.cnt_contract_key),
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
c.cnt_contract_looptijd_tot,
|
||
c.cnt_contract_aanmaak,
|
||
c.cnt_contract_verwijder,
|
||
a.prs_afdeling_naam,
|
||
pf2.prs_perslid_naam_full,
|
||
pf.prs_perslid_naam_full,
|
||
prs_bedrijf_naam,
|
||
kp.prs_kostenplaats_nr,
|
||
coalesce (cnt_contract_termijnkosten, 0),
|
||
cnt_contract_kosten,
|
||
aaxx_get_cnt_cont_plaats_index (cp.cnt_contract_plaats_key),
|
||
alg_locatie_code,
|
||
g.alg_gebouw_code,
|
||
ROUND (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
0,
|
||
COALESCE (
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* c.cnt_contract_kosten,
|
||
0)),
|
||
2),
|
||
ROUND (
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht))
|
||
* fin.fin_factuur_totaal,
|
||
0),
|
||
2) gg,
|
||
ROUND (
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht))
|
||
* (fin.fin_factuur_totaal + fin.fin_factuur_totaal_incl),
|
||
0),
|
||
2) ggib,
|
||
ROUND (
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht))
|
||
* finv.fin_factuur_totaal,
|
||
0),
|
||
2)
|
||
FROM cnt_contract c,
|
||
cnt_discipline d,
|
||
cnt_disc_params cd,
|
||
cnt_typecontract tc,
|
||
(SELECT cnt_contract_plaats_gewicht,
|
||
cnt_contract_plaats_key,
|
||
cnt_contract_key,
|
||
cnt_alg_plaats_key,
|
||
cnt_alg_plaats_code
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_plaats_verwijder IS NULL) cp,
|
||
prs_bedrijf b,
|
||
prs_kostensoort k,
|
||
prs_kostenplaats kp,
|
||
prs_afdeling a,
|
||
prs_v_perslid_fullnames_all pf2,
|
||
prs_v_perslid_fullnames_all pf,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
( SELECT cnt_contract_key,
|
||
SUM (fin_factuurregel_totaal) fin_factuur_totaal, SUM(fin_factuurregel_btw) fin_factuur_totaal_incl
|
||
FROM aaxx_v_aanwezigfactuur f, fin_factuurregel fr
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
GROUP BY cnt_contract_key) fin,
|
||
( SELECT cnt_contract_key,
|
||
SUM (fin_factuurregel_totaal) fin_factuur_totaal
|
||
FROM aaxx_v_aanwezigfactuur f, fin_factuurregel fr
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.fin_factuur_statuses_key = 7 -- verwerkt
|
||
GROUP BY cnt_contract_key) finv,
|
||
( SELECT cnt_contract_key,
|
||
SUM (cnt_contract_plaats_gewicht)
|
||
cnt_contract_plaats_gewicht
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_plaats_verwijder IS NULL
|
||
GROUP BY cnt_contract_key) cnt_gew,
|
||
(SELECT cp.cnt_contract_plaats_key, alg_locatie_key, alg_gebouw_key
|
||
FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp
|
||
WHERE aog.alg_type = cp.cnt_alg_plaats_code
|
||
AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) cog
|
||
WHERE c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_key = cd.cnt_ins_discipline_key
|
||
AND cd.cnt_srtcontract_type = tc.cnt_typecontract_key
|
||
AND cd.cnt_srtcontract_type <> 6 -- Mantelcontracten worden (vooralsnog) uitgesloten AALB#28095
|
||
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
|
||
AND c.prs_perslid_key_beh = pf.prs_perslid_key
|
||
AND c.prs_perslid_key_eig = pf2.prs_perslid_key(+)
|
||
AND cp.cnt_contract_plaats_key = cog.cnt_contract_plaats_key(+)
|
||
AND cog.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND cog.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND c.cnt_contract_key = fin.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = finv.cnt_contract_key(+);
|
||
|
||
|
||
CREATE OR REPLACE VIEW AAXX_V_DWH_CNT_CONTRACT_SCOPE
|
||
(
|
||
CNT_CONTRACT_PLAATS_KEY,
|
||
CNT_CONTRACT_KEY,
|
||
EXTERNNR,
|
||
INTERNNR,
|
||
FIN_FACTUUR_KEY,
|
||
FACTUUR_BOEKMAAND,
|
||
GEBOUW_CODE,
|
||
GEBOUW_BEDRAG,
|
||
GEBOUW_GEFACTUREERD_INCL,
|
||
GEBOUW_GEFACTUREERDVERWERKT,
|
||
FACTUURSCHEMA_BOEKMAAND,
|
||
GEBOUW_GEFACTUREERD_SCHEMA
|
||
)
|
||
AS
|
||
SELECT cp.cnt_contract_plaats_key,
|
||
c.cnt_contract_key,
|
||
cnt_contract_nummer externnr,
|
||
cnt_contract_nummer_intern
|
||
|| '.'
|
||
|| COALESCE (cnt_contract_versie, '0')
|
||
internnr,
|
||
f.fin_factuur_key,
|
||
f.fin_factuur_boekmaand factuur_boekmaand,
|
||
gc.alg_gebouw_code gebouw_code,
|
||
ROUND (
|
||
cp.cnt_contract_plaats_gewicht
|
||
/ (SELECT DECODE (SUM (cp2.cnt_contract_plaats_gewicht),
|
||
0, 1,
|
||
SUM (cp2.cnt_contract_plaats_gewicht))
|
||
FROM cnt_contract_plaats cp2
|
||
WHERE cp2.cnt_contract_key = cp.cnt_contract_key)
|
||
* fin_factuurregel_totaal,
|
||
4)
|
||
gebouw_bedrag,
|
||
ROUND (
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht))
|
||
* (fin.fin_factuur_totaal + fin.fin_factuur_totaal_incl),
|
||
0),
|
||
4)
|
||
gebouw_gefactureerd_incl,
|
||
ROUND (
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht))
|
||
* finv.fin_factuur_totaal,
|
||
0),
|
||
4)
|
||
gebouw_gefactureerdverwerkt,
|
||
cfs.cnt_factuurschema_boekmaand,
|
||
ROUND (
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht))
|
||
* (cfs.fin_factuur_totaal),
|
||
NULL),
|
||
4)
|
||
gebouw_gefcatureerd_schema
|
||
FROM fin_factuur f,
|
||
fin_factuurregel fr,
|
||
fin_btwtabelwaarde btw,
|
||
cnt_contract c,
|
||
(SELECT c.cnt_contract_key,
|
||
cnt_factuurschema_boekmaand,
|
||
fin_factuur_totaal
|
||
FROM ( SELECT SUM (fin_factuur_totaal) fin_factuur_totaal,
|
||
SUM (fin_factuurregel_btw) fin_factuur_totaal_incl,
|
||
cfs.cnt_factuurschema_boekmaand,
|
||
cfs.cnt_contract_key
|
||
FROM aaxx_v_aanwezigfactuur f,
|
||
fin_factuurregel fr,
|
||
cnt_factuurschema cfs
|
||
WHERE f.fin_factuur_boekmaand =
|
||
cfs.cnt_factuurschema_boekmaand
|
||
AND f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.cnt_contract_key = cfs.cnt_contract_key
|
||
AND f.fin_factuur_verwijder IS NULL
|
||
GROUP BY cfs.cnt_factuurschema_boekmaand,
|
||
cfs.cnt_contract_key) cs1,
|
||
cnt_contract c
|
||
WHERE c.cnt_contract_key = cs1.cnt_contract_key(+)) cfs,
|
||
(SELECT *
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_alg_plaats_code = 'G') cp,
|
||
alg_gebouw gc,
|
||
( SELECT cnt_contract_key,
|
||
SUM (cnt_contract_plaats_gewicht)
|
||
cnt_contract_plaats_gewicht
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_plaats_verwijder IS NULL
|
||
GROUP BY cnt_contract_key) cnt_gew,
|
||
( SELECT cnt_contract_key,
|
||
SUM (fin_factuurregel_totaal) fin_factuur_totaal
|
||
FROM aaxx_v_aanwezigfactuur f, fin_factuurregel fr
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.fin_factuur_statuses_key = 7 -- verwerkt
|
||
GROUP BY cnt_contract_key) finv,
|
||
( SELECT cnt_contract_key,
|
||
SUM (fin_factuurregel_totaal) fin_factuur_totaal,
|
||
SUM (fin_factuurregel_btw) fin_factuur_totaal_incl
|
||
FROM aaxx_v_aanwezigfactuur f, fin_factuurregel fr
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
GROUP BY cnt_contract_key) fin
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.cnt_contract_key = cp.cnt_contract_key
|
||
AND f.cnt_contract_key = c.cnt_contract_key
|
||
AND cp.cnt_alg_plaats_key = gc.alg_gebouw_key(+)
|
||
AND f.cnt_contract_key = cnt_gew.cnt_contract_key
|
||
AND f.cnt_contract_key = finv.cnt_contract_key(+)
|
||
AND f.cnt_contract_key = fin.cnt_contract_key(+)
|
||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key(+)
|
||
AND c.cnt_contract_key = cfs.cnt_contract_key
|
||
AND (f.fin_factuur_boekmaand = cfs.cnt_factuurschema_boekmaand
|
||
OR cfs.cnt_factuurschema_boekmaand IS NULL);
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_cnt_contract_mantel
|
||
(
|
||
cnt_contract_key,
|
||
internnr,
|
||
externnr,
|
||
beschrijving,
|
||
contractsoort,
|
||
typecontract,
|
||
versie,
|
||
status,
|
||
ingangsdatum,
|
||
rappeldatum,
|
||
opzegdatum,
|
||
einddatum,
|
||
aanmaakdatum,
|
||
verwijderdatum,
|
||
eigenaar,
|
||
beheerder,
|
||
beheerder_key,
|
||
uitvoerder,
|
||
kostenplaats,
|
||
termijnbedrag,
|
||
contractbedrag,
|
||
soort_overeenkomst,
|
||
omvang_contractduur,
|
||
commodity,
|
||
omschrijving_optie_verlenging,
|
||
tijdstip_facturatie,
|
||
indexering_tijdens_periode,
|
||
datum_van_indexering,
|
||
kortingsafspraken,
|
||
kortingsafspraak,
|
||
opmerking_cm_bijzonderheden,
|
||
contract_met_leverancier,
|
||
contracteigenaar,
|
||
indexeringsformule_afspraak,
|
||
besparing,
|
||
betalingsafspraak,
|
||
betalingstermijn,
|
||
link_contract,
|
||
omvang_contract_pj,
|
||
max_indexering,
|
||
link_prijzenblad,
|
||
pct_besparing_pj,
|
||
rappeltermijn_indexering,
|
||
link_overig
|
||
)
|
||
AS
|
||
SELECT cnt_contract_key,
|
||
cnt_contract_nummer_intern
|
||
|| '.'
|
||
|| COALESCE (cnt_contract_versie, '0'),
|
||
cnt_contract_nummer,
|
||
cnt_contract_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
tc.cnt_typecontract_omschrijving,
|
||
COALESCE (c.cnt_contract_versie, '0'),
|
||
DECODE (c.cnt_contract_status, '1', 'Gesloten', 'Open'),
|
||
cnt_contract_looptijd_van,
|
||
cnt.cnt_getrappeldatum (c.cnt_contract_key),
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
c.cnt_contract_looptijd_tot,
|
||
c.cnt_contract_aanmaak,
|
||
c.cnt_contract_verwijder,
|
||
a.prs_afdeling_naam,
|
||
prs_perslid_naam_full,
|
||
pf.prs_perslid_key,
|
||
prs_bedrijf_naam,
|
||
kp.prs_kostenplaats_nr,
|
||
cnt_contract_termijnkosten,
|
||
cnt_contract_kosten,
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'SOORT OVEREENKOMST'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'OMVANG CONTRACTDUUR'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'COMMODITY'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper =
|
||
'OMSCHRIJVING OPTIE CONTRACTVERLENGING'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'TIJDSTIP FACTURATIE'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper =
|
||
'INDEXERING TIJDENS CONTRACTPERIODE'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'DATUM VAN INDEXERING'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'KORTINGSAFSPRAKEN'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'KORTINGSAFSPRAAK'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'OPMERKING CM/ BIJZONDERHEDEN'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'CONTRACT MET LEVERANCIER'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'CONTRACTEIGENAAR'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper =
|
||
'INDEXERINGSFORMULE/ -AFSPRAAK'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'BESPARING'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'BETALINGSAFSPRAAK'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'BETALINGSTERMIJN'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'LINK CONTRACT'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'OMVANG CONTRACT P/J'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'MAX. INDEXERING'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'LINK PRIJZENBLAD'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = '% BESPARING P/J'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'RAPPELTERMIJN INDEXERING'),
|
||
c.cnt_contract_key),
|
||
aaxx_get_kenmerk (
|
||
'CNT',
|
||
(SELECT MAX (cnt_kenmerk_key)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND sk.cnt_srtkenmerk_upper = 'LINK OVERIG'),
|
||
c.cnt_contract_key)
|
||
FROM cnt_contract c,
|
||
cnt_discipline d,
|
||
cnt_disc_params cd,
|
||
cnt_typecontract tc,
|
||
prs_bedrijf b,
|
||
prs_kostensoort k,
|
||
prs_kostenplaats kp,
|
||
prs_afdeling a,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_key = cd.cnt_ins_discipline_key
|
||
AND cd.cnt_srtcontract_type = tc.cnt_typecontract_key
|
||
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
|
||
AND c.prs_perslid_key_beh = pf.prs_perslid_key
|
||
AND tc.cnt_typecontract_key = 6;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_cnt_factuurschema
|
||
(
|
||
internnr,
|
||
externnr,
|
||
contractsoort,
|
||
kostenplaats,
|
||
volgnummer,
|
||
locatie_code,
|
||
gebouw_code,
|
||
verdeelperiode,
|
||
termijnbedrag,
|
||
gebouwkosten
|
||
)
|
||
AS
|
||
SELECT cnt_contract_nummer_intern
|
||
|| '.'
|
||
|| COALESCE (cnt_contract_versie, '0')
|
||
internnr,
|
||
cnt_contract_nummer externnr,
|
||
cd.ins_discipline_omschrijving contractsoort,
|
||
kp.prs_kostenplaats_nr kostenplaats,
|
||
aaxx_get_cnt_cont_plaats_index (cp.cnt_contract_plaats_key)
|
||
volgnummer,
|
||
alg_locatie_code locatie_code,
|
||
g.alg_gebouw_code gebouw_code,
|
||
cf.cnt_factuurschema_boekmaand verdeelperiode,
|
||
cf.cnt_factuurschema_bedrag termijnbedrag,
|
||
ROUND (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
0,
|
||
COALESCE (
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* cf.cnt_factuurschema_bedrag,
|
||
0)),
|
||
2)
|
||
gebouwkosten
|
||
FROM cnt_contract c,
|
||
cnt_discipline cd,
|
||
cnt_factuurschema cf,
|
||
prs_kostenplaats kp,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
(SELECT cnt_contract_plaats_gewicht,
|
||
cnt_contract_plaats_key,
|
||
cnt_contract_key,
|
||
cnt_alg_plaats_key,
|
||
cnt_alg_plaats_code
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_plaats_verwijder IS NULL) cp,
|
||
( 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 = cd.ins_discipline_key
|
||
AND c.cnt_contract_verwijder IS NULL
|
||
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 cog.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND cog.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND cf.cnt_contract_key = c.cnt_contract_key
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+);
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_contract
|
||
(
|
||
CNT_CONTRACT_KEY,
|
||
CNT_KENMERK_OMSCHRIJVING,
|
||
CNT_KENMERK_WAARDE
|
||
)
|
||
AS
|
||
SELECT cnt_contract_key,
|
||
sk.cnt_srtkenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (sk.cnt_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
kc.cnt_kenmerkcontract_waarde)
|
||
FROM cnt_kenmerk k, cnt_srtkenmerk sk, cnt_kenmerkcontract kc
|
||
WHERE k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
|
||
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_FIN_FACTUUR
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_fin_factuur
|
||
(
|
||
fin_factuur_key,
|
||
fin_factuur_nr,
|
||
fin_factuur_totaal_btw,
|
||
opdr_id,
|
||
contract_id,
|
||
bestel_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_boekmaand,
|
||
fin_factuur_debiteur_nr,
|
||
kostensoort,
|
||
fin_factuur_datumfiat_ok,
|
||
fin_factuur_datumfiat_nok,
|
||
fin_factuur_fiat_user,
|
||
fin_factuur_opmerking,
|
||
fin_factuur_datum_export,
|
||
fin_factuur_status,
|
||
fin_factuur_aanmaak,
|
||
fin_factuur_verwerkt,
|
||
fin_factuur_verwijder,
|
||
fin_factuur_badgeid,
|
||
invoerder,
|
||
invoerder_key,
|
||
fin_factuurregel_nr,
|
||
fin_factuurregel_totaal,
|
||
fin_factuurregel_btw,
|
||
fin_factuurregel_btw_perc,
|
||
uplift,
|
||
incl_uplift,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuurregel_referentie,
|
||
fin_btwtabelwaarde_code,
|
||
fin_btwtabelwaarde_oms,
|
||
fin_factuur_bron,
|
||
fin_factuur_boekstuknr
|
||
)
|
||
AS
|
||
SELECT f.fin_factuur_key,
|
||
f.fin_factuur_nr,
|
||
f.fin_factuur_totaal_btw,
|
||
(SELECT mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = f.mld_opdr_key),
|
||
(SELECT cc.cnt_contract_nummer_intern
|
||
|| '.'
|
||
|| COALESCE (cc.cnt_contract_versie, '0')
|
||
FROM cnt_contract cc
|
||
WHERE cc.cnt_contract_key = f.cnt_contract_key),
|
||
(SELECT bes_bestelopdr_id
|
||
FROM bes_bestelopdr
|
||
WHERE bes_bestelopdr_key = f.bes_bestelopdr_key),
|
||
f.fin_factuur_datum,
|
||
f.fin_factuur_boekmaand,
|
||
f.fin_factuur_debiteur_nr,
|
||
(SELECT prs_kostensoort_oms
|
||
FROM prs_kostensoort
|
||
WHERE prs_kostensoort_key = f.prs_kostensoort_key),
|
||
fac.gettrackingdate ('FINFOK', f.fin_factuur_key),
|
||
fac.gettrackingdate ('FINFNO', f.fin_factuur_key),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key =
|
||
fac.gettrackinguserkey ('FINFOK', f.fin_factuur_key)),
|
||
f.fin_factuur_opmerking,
|
||
fac.gettrackingdate ('FINVER', f.fin_factuur_key),
|
||
(SELECT fin_factuur_statuses_omschr
|
||
FROM fin_factuur_statuses s
|
||
WHERE s.fin_factuur_statuses_key = f.fin_factuur_statuses_key),
|
||
COALESCE (fac.gettrackingdate ('FINNEW', f.fin_factuur_key),
|
||
fin_factuur_datum),
|
||
fac.gettrackingdate ('FINVER', f.fin_factuur_key),
|
||
fin_factuur_verwijder,
|
||
TO_CHAR (fac.gettrackingdate ('FINVER', f.fin_factuur_key),
|
||
'yyyymmdd'),
|
||
fac.gettrackinguserkey ('FINNEW', f.fin_factuur_key) invoerder,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key =
|
||
fac.gettrackinguserkey ('FINNEW', f.fin_factuur_key))
|
||
invoerder_key,
|
||
fr.fin_factuurregel_nr,
|
||
fr.fin_factuurregel_totaal,
|
||
ROUND (fr.fin_factuurregel_btw, 2),
|
||
btw.fin_btwtabelwaarde_perc,
|
||
uplift,
|
||
uplift * fr.fin_factuurregel_totaal,
|
||
fr.fin_factuurregel_omschrijving,
|
||
fr.fin_factuurregel_referentie,
|
||
btw.fin_btwtabelwaarde_code,
|
||
btw.fin_btwtabelwaarde_oms,
|
||
DECODE (f.fin_factuur_bron,
|
||
0, lcl.l ('lcl_fin_source_manual'),
|
||
1, lcl.l ('lcl_fin_source_excel'),
|
||
2, lcl.l ('lcl_fin_source_mail'),
|
||
'Onbekend') factuurbron,
|
||
(SELECT fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur fk, fin_kenmerk k
|
||
WHERE fk.fin_kenmerk_key = k.fin_kenmerk_key
|
||
AND k.fin_kenmerk_verwijder IS NULL
|
||
AND UPPER (fin_kenmerk_omschrijving) = 'BOEKSTUKNUMMER'
|
||
AND fk.fin_factuur_key = f.fin_factuur_key) fin_factuur_boekstuknr
|
||
FROM fin_factuur f,
|
||
fin_factuurregel fr,
|
||
fin_btwtabelwaarde btw,
|
||
(SELECT f2.fin_factuur_key, uplift
|
||
FROM aaxx_imp_uplift u,
|
||
prs_bedrijf b,
|
||
prs_kostensoort ks,
|
||
fin_factuur f2,
|
||
mld_opdr o,
|
||
cnt_contract c
|
||
WHERE u.prs_leverancier_nr = b.prs_leverancier_nr
|
||
AND f2.mld_opdr_key = o.mld_opdr_key(+)
|
||
AND f2.cnt_contract_key = c.cnt_contract_key(+)
|
||
AND COALESCE (o.mld_uitvoerende_keys,
|
||
c.cnt_prs_bedrijf_key) =
|
||
b.prs_bedrijf_key
|
||
AND UPPER (u.prs_kostensoort_oms) =
|
||
ks.prs_kostensoort_upper
|
||
AND f2.prs_kostensoort_key = ks.prs_kostensoort_key
|
||
AND soort_order =
|
||
DECODE (o.mld_opdr_key, NULL, 'CO', 'WO')
|
||
AND f2.fin_factuur_boekmaand =
|
||
u.jaar || '-' || LTRIM (TO_CHAR (u.maand, '00')))
|
||
UP
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.fin_factuur_key = UP.fin_factuur_key(+)
|
||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key(+);
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_MLD_STDMELDING
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_mld_stdmelding
|
||
AS
|
||
SELECT mld_stdmelding_key,
|
||
'https://' || (SELECT LOWER(fac_version_cust) FROM fac_version) || '.facilitor.nl/appl/mld/mld_melding.asp?mld_defaultstdmelding=' || mld_stdmelding_key || CHR(38) || 'role=fe' || CHR(38) || 'sso=HEYDAY' link,
|
||
(SELECT fac_version_cust FROM fac_version)
|
||
account,
|
||
ins_srtdiscipline_omschrijving,
|
||
vak.ins_discipline_omschrijving,
|
||
mld_stdmelding_omschrijving,
|
||
std.mld_stdmelding_t_uitvoertijd.tijdsduur
|
||
|| DECODE (std.mld_stdmelding_t_uitvoertijd.eenheid,
|
||
'U', ' Uren',
|
||
'D', ' Dagen',
|
||
'')
|
||
mld_stdmelding_t_uitvoertijd,
|
||
mld_stdmeldinggroep_naam,
|
||
pks.prs_kostensoort_oms,
|
||
mld_stdmelding_vervaldatum,
|
||
DECODE (mld_stdmelding_notfrontend, 1, 'ja', 'nee')
|
||
mld_stdmelding_notfrontend,
|
||
mld_stdmelding_kanverwijzen,
|
||
DECODE (alg_onrgoed_niveau,
|
||
'R', 'ruimte',
|
||
'V', 'verdieping',
|
||
'G', 'gebouw',
|
||
'L', 'locatie')
|
||
alg_onrgoed_niveau,
|
||
DECODE (mld_disc_params_notify,
|
||
0, 'Nooit',
|
||
1, 'Altijd',
|
||
2, 'Afhankelijk van melding',
|
||
'Onbekend')
|
||
mld_disc_params_notify,
|
||
DECODE (mld_stdmelding_planbaar, 1, 'ja', 'nee')
|
||
mld_stdmelding_planbaar,
|
||
DECODE (mld_stdmelding_freetext,
|
||
0, 'onzichtbaar',
|
||
2, 'verplicht',
|
||
'optioneel')
|
||
mld_stdmelding_freetext,
|
||
NULL
|
||
ins_srtinst_verplicht,
|
||
mld_stdmelding_hint,
|
||
DECODE (mld_stdmelding_autoorder, 1, 'ja', 'nee')
|
||
mld_stdmelding_autoorder,
|
||
DECODE (mld_stdmelding_vereisdienst, 1, 'ja', 'nee')
|
||
mld_stdmelding_vereisdienst,
|
||
ot.mld_typeopdr_omschrijving
|
||
standaard_opdrachttype,
|
||
mld_stdmelding_opdrtypevast,
|
||
std.mld_stdmelding_t_accepttijd.tijdsduur
|
||
|| DECODE (std.mld_stdmelding_t_accepttijd.eenheid,
|
||
'U', ' Uren',
|
||
'D', ' Dagen',
|
||
'')
|
||
mld_stdmelding_t_accepttijd,
|
||
std.mld_stdmelding_t_uitvtijd_pr1.tijdsduur
|
||
|| DECODE (std.mld_stdmelding_t_uitvtijd_pr1.eenheid,
|
||
'U', ' Uren',
|
||
'D', ' Dagen',
|
||
'')
|
||
mld_stdmelding_t_uitvtijd_pr1,
|
||
std.mld_stdmelding_t_uitvtijd_pr2.tijdsduur
|
||
|| DECODE (std.mld_stdmelding_t_uitvtijd_pr2.eenheid,
|
||
'U', ' Uren',
|
||
'D', ' Dagen',
|
||
'')
|
||
mld_stdmelding_t_uitvtijd_pr2,
|
||
std.mld_stdmelding_t_uitvtijd_pr4.tijdsduur
|
||
|| DECODE (std.mld_stdmelding_t_uitvtijd_pr4.eenheid,
|
||
'U', ' Uren',
|
||
'D', ' Dagen',
|
||
'')
|
||
mld_stdmelding_t_uitvtijd_pr4
|
||
FROM mld_stdmelding std,
|
||
mld_stdmeldinggroep smg,
|
||
mld_discipline vak,
|
||
ins_srtdiscipline srt,
|
||
prs_kostensoort pks,
|
||
prs_dienst d,
|
||
mld_disc_params dp,
|
||
mld_typeopdr ot,
|
||
bes_discipline bd
|
||
WHERE std.mld_stdmelding_verwijder IS NULL
|
||
AND std.mld_ins_discipline_key = vak.ins_discipline_key
|
||
AND vak.ins_discipline_verwijder IS NULL
|
||
AND vak.ins_srtdiscipline_key = srt.ins_srtdiscipline_key
|
||
AND srt.ins_srtdiscipline_verwijder IS NULL
|
||
AND std.prs_kostensoort_key = pks.prs_kostensoort_key(+)
|
||
AND std.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND std.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||
AND std.mld_stdmeldinggroep_key = smg.mld_stdmeldinggroep_key(+)
|
||
AND bd.ins_discipline_key(+) = std.bes_ins_discipline_key
|
||
AND vak.ins_discipline_key = dp.mld_ins_discipline_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_MLD_ALGEMEEN
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_mld_melding
|
||
(
|
||
mld_melding_key,
|
||
meldingnummer,
|
||
extern_nr,
|
||
meldbron,
|
||
mld_melding_start_key,
|
||
alg_district_omschrijving,
|
||
locatie,
|
||
locatie_omschrijving,
|
||
alg_locatie_key,
|
||
onrgoed_key,
|
||
gebouw,
|
||
gebouw_naam,
|
||
gebouw_key,
|
||
verdieping,
|
||
verdieping_key,
|
||
ruimtenr,
|
||
ruimte_omschrijving,
|
||
ruimte_key,
|
||
melding_ordernr,
|
||
kostensoortgroep,
|
||
kostensoort,
|
||
kostenplaats,
|
||
kostenplaats_oms,
|
||
melder,
|
||
prs_perslid_key,
|
||
afdeling,
|
||
afdeling_omschrijving,
|
||
prs_bedrijf_key,
|
||
invoerder,
|
||
invoerder_key,
|
||
behandelaar,
|
||
behandelaar_key,
|
||
soortmelding,
|
||
ins_discipline_key,
|
||
ins_srtdiscipline_prefix,
|
||
productgroep,
|
||
subproductgroep,
|
||
subproductgroepgroep,
|
||
status,
|
||
sla_werkdgn,
|
||
plan_uitvoertijd,
|
||
datum,
|
||
datumfilter,
|
||
plan_einddatum,
|
||
prioriteit,
|
||
ingezien,
|
||
geaccepteerd,
|
||
afgemeld,
|
||
verwerkt, -- nieuw
|
||
doorlooptijd_werkdgn,
|
||
acceptoptijd,
|
||
uitvoeringoptijd_sla,
|
||
uitvoeringoptijd_afspraak,
|
||
onderwerp,
|
||
omschrijving,
|
||
opmerking,
|
||
mld_melding_parentkey,
|
||
tevredenheid,
|
||
tevredenheid_opm,
|
||
object_omschrijving,
|
||
geplande_actie,
|
||
opdracht_key,
|
||
opdracht_volgnummer,
|
||
opdracht_type,
|
||
opdracht_status,
|
||
opdracht_duur_gepland,
|
||
opdracht_datum,
|
||
opdracht_einddatum,
|
||
opdracht_plandatum,
|
||
opdracht_verzonden,
|
||
opdracht_geaccepteerd,
|
||
opdracht_afgemeld,
|
||
opdracht_verwerkt, -- nieuw
|
||
opdracht_doorlooptijd,
|
||
opdracht_omschrijving,
|
||
opdracht_opmerking,
|
||
opdracht_uitvoerende,
|
||
opdracht_contract,
|
||
opdracht_behandelaar,
|
||
opdracht_behandelaar_key,
|
||
opdracht_uren,
|
||
opdracht_uren_besteed,
|
||
opdracht_correctie,
|
||
opdracht_materiaal,
|
||
opdracht_uurtarief,
|
||
opdracht_kosten,
|
||
opdracht_kostenplaats,
|
||
opdracht_kostenplaats_oms,
|
||
deelsrtcontrole_key
|
||
)
|
||
AS
|
||
SELECT m.mld_melding_key,
|
||
TO_CHAR (m.mld_melding_key) meldingnummer,
|
||
m.mld_melding_externnr,
|
||
mld_meldbron_omschrijving meldbron,
|
||
m.mld_melding_start_key,
|
||
alg_district_omschrijving,
|
||
alg_locatie_code locatie,
|
||
alg_locatie_omschrijving locatie_omschrijving,
|
||
l.alg_locatie_key,
|
||
m.mld_alg_onroerendgoed_keys,
|
||
og.alg_gebouw_code gebouw,
|
||
og.alg_gebouw_naam gebouw_naam,
|
||
og.alg_gebouw_key,
|
||
og.alg_verdieping_code verdieping,
|
||
og.alg_verdieping_key,
|
||
og.alg_ruimte_nr ruimte,
|
||
og.alg_ruimte_omschrijving ruimte_omschrijving,
|
||
og.alg_ruimte_key,
|
||
m.mld_melding_ordernr melding_ordernr,
|
||
(SELECT ksg.prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
|
||
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
|
||
AND ks.prs_kostensoort_key =
|
||
(SELECT COALESCE (sm.prs_kostensoort_key,
|
||
disc.prs_kostensoort_key)
|
||
FROM mld_stdmelding sm, mld_discipline disc
|
||
WHERE sm.mld_ins_discipline_key =
|
||
disc.ins_discipline_key
|
||
AND sm.mld_stdmelding_key =
|
||
s.mld_stdmelding_key))
|
||
kostensoortgroep,
|
||
(SELECT ks.prs_kostensoort_oms
|
||
FROM prs_kostensoort ks
|
||
WHERE ks.prs_kostensoort_key =
|
||
(SELECT COALESCE (sm.prs_kostensoort_key,
|
||
disc.prs_kostensoort_key)
|
||
FROM mld_stdmelding sm, mld_discipline disc
|
||
WHERE sm.mld_ins_discipline_key =
|
||
disc.ins_discipline_key
|
||
AND sm.mld_stdmelding_key =
|
||
s.mld_stdmelding_key))
|
||
kostensoort,
|
||
(SELECT k.prs_kostenplaats_nr
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key)
|
||
kostenplaats,
|
||
(SELECT k.prs_kostenplaats_omschrijving
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key)
|
||
kostenplaats_oms,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = m.prs_perslid_key)
|
||
melder,
|
||
m.prs_perslid_key,
|
||
(SELECT prs_afdeling_naam
|
||
FROM prs_afdeling afd, prs_perslid pp
|
||
WHERE afd.prs_afdeling_key = pp.prs_afdeling_key
|
||
AND pp.prs_perslid_key = m.prs_perslid_key)
|
||
afdeling,
|
||
(SELECT prs_afdeling_omschrijving
|
||
FROM prs_afdeling afd, prs_perslid pp
|
||
WHERE afd.prs_afdeling_key = pp.prs_afdeling_key
|
||
AND pp.prs_perslid_key = m.prs_perslid_key)
|
||
afdeling_omschrijving,
|
||
(SELECT prs_bedrijf_key
|
||
FROM prs_v_afdeling pva, prs_perslid pp
|
||
WHERE pva.prs_afdeling_key = pp.prs_afdeling_key
|
||
AND pp.prs_perslid_key = m.prs_perslid_key)
|
||
prs_bedrijf_key,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key =
|
||
mld.getmeldinguser (m.mld_melding_key))
|
||
invoerder,
|
||
fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all
|
||
WHERE prs_perslid_key = m.mld_melding_behandelaar_key),
|
||
m.mld_melding_behandelaar_key,
|
||
sd.ins_srtdiscipline_omschrijving soortmelding,
|
||
md.ins_discipline_key ins_discipline_key,
|
||
ins_srtdiscipline_prefix ins_srtdiscipline_prefix,
|
||
md.ins_discipline_omschrijving productgroep,
|
||
s.mld_stdmelding_omschrijving subproductgroep,
|
||
(SELECT smg.mld_stdmeldinggroep_naam
|
||
FROM mld_stdmeldinggroep smg
|
||
WHERE smg.mld_stdmeldinggroep_key = s.mld_stdmeldinggroep_key)
|
||
subproductgroepgroep,
|
||
(SELECT DECODE (
|
||
COALESCE (par.mld_melding_status,
|
||
m.mld_melding_status),
|
||
4,
|
||
DECODE (o.mld_opdr_key,
|
||
NULL, mld_statuses_omschrijving,
|
||
'Niet opgelost'),
|
||
mld_statuses_omschrijving
|
||
)
|
||
FROM mld_statuses sta
|
||
WHERE sta.mld_statuses_key =
|
||
COALESCE (par.mld_melding_status,
|
||
m.mld_melding_status))
|
||
status,
|
||
COALESCE (
|
||
par.sla_werkdgn,
|
||
aaxx.count_work_days (m.mld_melding_datum,
|
||
m.mld_melding_einddatum)
|
||
)
|
||
sla_werkdgn,
|
||
COALESCE (
|
||
par.plan_uitvoertijd,
|
||
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
||
'U', TO_NUMBER (NULL),
|
||
m.mld_melding_t_uitvoertijd.tijdsduur)
|
||
)
|
||
plan_uitvoertijd, -- Altijd in dagen; anders NULL!
|
||
COALESCE (par.mld_melding_datum, m.mld_melding_datum) datum,
|
||
m.mld_melding_datum datumfilter,
|
||
COALESCE (par.mld_melding_einddatum, m.mld_melding_einddatum)
|
||
plan_einddatum,
|
||
DECODE(mld_melding_spoed, 1, 'Kritiek', 2, 'Hoog', 3, 'Normaal', 4, 'Laag', 'Onbekend') prioritieit,
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 3) ingezien,
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 4) geaccepteerd,
|
||
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1))
|
||
afgemeld,
|
||
fac.gettrackingdate ('MLDVER', m.mld_melding_key) verwerkt,
|
||
aaxx.count_work_days_incltime (
|
||
m.mld_melding_datum,
|
||
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1),
|
||
SYSDATE)
|
||
)
|
||
doorlooptijd_werkdgn,
|
||
CASE
|
||
WHEN mld_melding_acceptdatum_std <
|
||
COALESCE (
|
||
fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
COALESCE (
|
||
fac.gettrackingdate ('MLDACP',
|
||
m.mld_melding_key),
|
||
SYSDATE
|
||
)
|
||
)
|
||
THEN
|
||
0
|
||
ELSE
|
||
1
|
||
END
|
||
acceptoptijd,
|
||
CASE
|
||
WHEN s.mld_stdmelding_slabewaken = 0
|
||
OR m.mld_melding_indult = 1
|
||
THEN
|
||
NULL
|
||
WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NOT NULL
|
||
THEN
|
||
1
|
||
ELSE
|
||
CASE
|
||
-- vooralsnog WHEN mld.getactualuitvoer(m.mld_melding_key).tijdsduur <
|
||
-- te traag m.mld_melding_t_uitvoertijd.tijdsduur + m.mld_melding_t_respijt.tijdsduur
|
||
WHEN m.mld_melding_einddatum_std >
|
||
COALESCE (
|
||
fac.gettrackingdate ('MLDAFM',
|
||
m.mld_melding_key),
|
||
SYSDATE
|
||
)
|
||
THEN
|
||
1
|
||
ELSE
|
||
0
|
||
END
|
||
END
|
||
uitvoeringoptijd_sla,
|
||
CASE
|
||
WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NOT NULL
|
||
THEN
|
||
1
|
||
ELSE
|
||
CASE
|
||
WHEN m.mld_melding_einddatum >
|
||
COALESCE (
|
||
fac.gettrackingdate ('MLDAFM',
|
||
m.mld_melding_key),
|
||
SYSDATE
|
||
)
|
||
THEN
|
||
1
|
||
ELSE
|
||
0
|
||
END
|
||
END
|
||
uitvoeringoptijd_afspraak,
|
||
m.mld_melding_onderwerp,
|
||
m.mld_melding_omschrijving omschrijving,
|
||
m.mld_melding_opmerking opmerking,
|
||
m.mld_melding_parentkey,
|
||
m.mld_melding_satisfaction,
|
||
m.mld_melding_satisfaction_op,
|
||
(SELECT MAX (ins_deel_omschrijving)
|
||
FROM ins_deel id, mld_melding_object mo
|
||
WHERE mo.mld_melding_key = m.mld_melding_key
|
||
AND mo.ins_deel_key = id.ins_deel_key)
|
||
object_omschrijving,
|
||
DECODE (
|
||
INSTR (mld_melding_opmerking, 'Automatisch gegenereerd door'),
|
||
1,
|
||
'yes',
|
||
'no')
|
||
geplande_actie,
|
||
o.mld_opdr_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr opdracht_volgnummer,
|
||
(SELECT mld_typeopdr_omschrijving
|
||
FROM mld_typeopdr t
|
||
WHERE o.mld_typeopdr_key = t.mld_typeopdr_key)
|
||
opdracht_type,
|
||
(SELECT REPLACE (mld_statusopdr_omschrijving,
|
||
'Uitgegeven',
|
||
'Toegekend')
|
||
mld_statusopdr_omschrijving
|
||
FROM mld_statusopdr sta
|
||
WHERE sta.mld_statusopdr_key = o.mld_statusopdr_key)
|
||
opdracht_status,
|
||
aaxx.count_work_days (o.mld_opdr_datumbegin,
|
||
o.mld_opdr_einddatum)
|
||
opdracht_duur_gepland,
|
||
o.mld_opdr_datumbegin opdracht_datum,
|
||
o.mld_opdr_einddatum opdracht_einddatum,
|
||
o.mld_opdr_plandatum opdracht_plandatum,
|
||
o.mld_opdr_verzonden opdracht_verzonden,
|
||
fac.gettrackingdate ('ORDACP', o.mld_opdr_key)
|
||
opdracht_geaccepteerd,
|
||
mld.getopdrachtstatusdate (o.mld_opdr_key, 6) opdracht_afgemeld,
|
||
fac.gettrackingdate ('ORDVER', mld_opdr_key) opdracht_verwerkt,
|
||
aaxx.count_work_days (
|
||
o.mld_opdr_datumbegin,
|
||
mld.getopdrachtstatusdate (o.mld_opdr_key, 6)
|
||
)
|
||
opdracht_doorlooptijd,
|
||
o.mld_opdr_omschrijving opdracht_omschrijving,
|
||
o.mld_opdr_opmerking opdracht_opmerking,
|
||
(SELECT naam
|
||
FROM mld_v_uitvoerende u
|
||
WHERE u.mld_uitvoerende_key = o.mld_uitvoerende_keys)
|
||
opdracht_uitvoerende,
|
||
NULL opdracht_contract,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all
|
||
WHERE prs_perslid_key = o.prs_perslid_key)
|
||
behandelaar,
|
||
o.prs_perslid_key opdracht_contactpersoon,
|
||
DECODE (mld_statusopdr_key, 1, 0, 2, 0, -- afgewezen, niet akkoord
|
||
o.mld_opdr_uren)
|
||
opdracht_uren,
|
||
(SELECT COUNT (mld_opdr_uren_besteed)
|
||
FROM mld_opdr_uren ou
|
||
WHERE ou.mld_opdr_key = o.mld_opdr_key
|
||
AND mld_opdr_uren_status IN (3, -- goedgekeurd
|
||
4) -- verwerkt
|
||
)
|
||
uren_besteed,
|
||
DECODE (
|
||
mld_statusopdr_key,
|
||
1,
|
||
0,
|
||
2,
|
||
0,
|
||
o.mld_opdr_kosten
|
||
- o.mld_opdr_materiaal
|
||
- (o.mld_opdr_uren * o.mld_opdr_uurloon)
|
||
)
|
||
opdracht_correctie,
|
||
DECODE (mld_statusopdr_key, 1, 0, 2, 0, o.mld_opdr_materiaal)
|
||
opdracht_materiaal,
|
||
DECODE (mld_statusopdr_key, 1, 0, 2, 0, o.mld_opdr_uurloon)
|
||
opdracht_uurtarief,
|
||
DECODE (mld_statusopdr_key, 1, 0, 2, 0, o.mld_opdr_kosten)
|
||
opdracht_kosten,
|
||
(SELECT k.prs_kostenplaats_nr
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key)
|
||
opdracht_kostenplaats,
|
||
(SELECT k.prs_kostenplaats_omschrijving
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key)
|
||
opdracht_kostenplaats_oms,
|
||
DECODE(m.mld_melding_kto_type, 'T', m.mld_melding_kto_key, NULL)
|
||
deelsrtcontrole_key
|
||
FROM mld_melding m,
|
||
mld_meldbron mb,
|
||
mld_stdmelding s,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_v_allonrgoed_gegevens og,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
mld_opdr o,
|
||
(SELECT mld_melding_key,
|
||
mld_melding_status,
|
||
mld_melding_datum,
|
||
mld_melding_einddatum,
|
||
aaxx.count_work_days (m.mld_melding_datum,
|
||
m.mld_melding_einddatum)
|
||
sla_werkdgn,
|
||
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
||
'U', TO_NUMBER (NULL),
|
||
m.mld_melding_t_uitvoertijd.tijdsduur)
|
||
plan_uitvoertijd
|
||
FROM mld_melding m
|
||
WHERE mld_melding_key IN
|
||
(SELECT mld_melding_parentkey
|
||
FROM mld_melding
|
||
WHERE mld_melding_parentkey IS NOT NULL)) par
|
||
WHERE s.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_meldbron_key = mb.mld_meldbron_key
|
||
AND m.fac_activiteit_key IS NULL
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND md.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND l.alg_district_key = d.alg_district_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
||
AND m.mld_melding_key = o.mld_melding_key(+)
|
||
AND m.mld_melding_parentkey = par.mld_melding_key(+)
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
cnt_contract_nummer_intern
|
||
|| '.'
|
||
|| COALESCE (cnt_contract_versie, '0'),
|
||
TO_CHAR(NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
kg.prs_kostensoortgrp_oms,
|
||
prs_kostensoort_oms,
|
||
kp.prs_kostenplaats_nr,
|
||
prs_kostenplaats_omschrijving,
|
||
prs_perslid_naam_full,
|
||
c.prs_perslid_key_beh,
|
||
prs_afdeling_naam,
|
||
prs_afdeling_omschrijving,
|
||
a.prs_bedrijf_key,
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
'Contract',
|
||
c.ins_discipline_key,
|
||
'C',
|
||
d.ins_discipline_omschrijving,
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
DECODE (SIGN (cnt_contract_looptijd_van - SYSDATE),
|
||
1,
|
||
'Toekomst',
|
||
-1,
|
||
DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE),
|
||
1,
|
||
'Actueel',
|
||
-1,
|
||
'Verlopen')),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL), -- Altijd in dagen; anders NULL!
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_CHAR (NULL), -- prioriteit
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL), -- datum verwerkt
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL), -- acceptoptijd
|
||
TO_NUMBER (NULL), -- uitvoeringoptijd_sla
|
||
TO_NUMBER (NULL), -- uitvoeringoptijd_afspraak
|
||
TO_CHAR (NULL), -- Onderwerp
|
||
c.cnt_contract_document,
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL), -- tevredenheid
|
||
TO_CHAR (NULL), -- Opmering bij tevredenheid
|
||
TO_CHAR (NULL), -- object omschrijving
|
||
TO_CHAR (NULL), -- geplande actie
|
||
TO_NUMBER (NULL),
|
||
1,
|
||
'Contract Order',
|
||
DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE),
|
||
1,
|
||
'Uitgegeven',
|
||
-1,
|
||
'Afgemeld'),
|
||
TO_NUMBER (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL),
|
||
TO_DATE (NULL), -- opdracht verwerkt
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
b.prs_bedrijf_naam,
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
c.cnt_contract_kosten,
|
||
kp.prs_kostenplaats_nr,
|
||
prs_kostenplaats_omschrijving,
|
||
NULL deelsrtcontrole_key
|
||
FROM cnt_contract c,
|
||
cnt_disc_params cd,
|
||
ins_tab_discipline d,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp kg,
|
||
prs_kostenplaats kp,
|
||
prs_v_perslid_fullnames_all pf,
|
||
prs_v_afdeling a,
|
||
prs_bedrijf b
|
||
WHERE c.ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_key = cd.cnt_ins_discipline_key
|
||
AND cd.cnt_srtcontract_type <> 6 -- Mantelcontracten worden (vooralsnog) uitgesloten AALB#28095
|
||
AND d.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND ks.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.prs_perslid_key_beh = pf.prs_perslid_key
|
||
AND c.prs_afdeling_key_eig = a.prs_afdeling_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT bes_bestelling_key,
|
||
TO_CHAR (bestelaanvraagnr),
|
||
TO_CHAR(NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
alg_district_omschrijving,
|
||
alg_locatie_code,
|
||
alg_locatie_omschrijving,
|
||
alg_locatie_key,
|
||
alg_gebouw_key,
|
||
alg_gebouw_code,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_key,
|
||
TO_CHAR (NULL), -- verdieping
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL), -- ruimte_nr
|
||
TO_CHAR (NULL), -- ruimte_omschrijving
|
||
TO_NUMBER (NULL),
|
||
bes_bestelling_ordernr,
|
||
kostensoortgroep,
|
||
kostensoort,
|
||
kpn,
|
||
kpn_omschrijving,
|
||
besteller,
|
||
prs_perslid_key_best,
|
||
afdeling_code,
|
||
afdeling_omschrijving,
|
||
prs_bedrijf_key,
|
||
invoerder,
|
||
invoerder_key,
|
||
TO_CHAR (NULL), -- Naam van de behandelaar
|
||
TO_NUMBER (NULL), -- Key van de behandelaar
|
||
'Bestelling',
|
||
ins_discipline_key,
|
||
'BE',
|
||
ins_discipline_omschrijving,
|
||
TO_CHAR (NULL), -- stdmelding
|
||
kostensoortgroep,
|
||
status,
|
||
sla_tijd,
|
||
sla_tijd, -- Altijd in dagen; anders NULL!
|
||
besteldatum,
|
||
besteldatum,
|
||
TO_DATE (NULL),
|
||
TO_CHAR (NULL), -- prioriteit
|
||
TO_DATE (NULL), -- datum ingezien
|
||
acceptatie_datum,
|
||
ontvangen_datum,
|
||
TO_DATE (NULL), -- datum verwerkt
|
||
doorlooptijd_werkdgn,
|
||
TO_NUMBER (NULL), -- acceptoptijd
|
||
TO_NUMBER (NULL), -- uitvoeringoptijd_sla
|
||
TO_NUMBER (NULL), -- uitvoeringoptijd_afspraak
|
||
TO_CHAR (NULL), -- onderwerp
|
||
omschrijving,
|
||
TO_CHAR (NULL), -- opmerking
|
||
TO_NUMBER (NULL),
|
||
bes_bestelling_satisfaction, -- tevredenheid
|
||
bes_bestelling_satisfaction_op, -- opmerking bij tevredenheid
|
||
TO_CHAR (NULL), -- object omschrijving
|
||
TO_CHAR (NULL), -- geplande actie
|
||
bes_bestelopdr_key,
|
||
opdr_volgnr,
|
||
'Purchase Order',
|
||
opdr_status,
|
||
DECODE (opdr_volgnr, NULL, TO_NUMBER (NULL), sla_tijd),
|
||
opdr_datum, -- opdr datum
|
||
TO_DATE (NULL), -- opdr_einddatum
|
||
TO_DATE (NULL), -- opdr plandatum
|
||
verzonden_datum,
|
||
TO_DATE (NULL), -- opdr geaccepteerd
|
||
opdr_ontv_datum,
|
||
TO_DATE (NULL), -- datum opdracht verwerkt
|
||
DECODE (opdr_volgnr,
|
||
NULL, TO_NUMBER (NULL),
|
||
doorlooptijd_werkdgn),
|
||
opdr_omschrijving,
|
||
bes_bestelopdr_opmerking,
|
||
leverancier,
|
||
TO_NUMBER (NULL), -- contract
|
||
TO_CHAR (NULL), -- behandelaar
|
||
TO_NUMBER (NULL), -- behandelaar_key
|
||
TO_NUMBER (NULL), -- uren
|
||
TO_NUMBER (NULL), -- uren_besteed
|
||
TO_NUMBER (NULL), -- correctie
|
||
TO_NUMBER (NULL), -- materiaal
|
||
TO_NUMBER (NULL), -- uurtarief
|
||
-- Indien de laatste factuur ontvangen is en de status van de factuur is goedgekeurd
|
||
-- of verwerkt zal het bedrag uit de factuur gebruikt worden.
|
||
COALESCE (
|
||
(SELECT DECODE (SUM (laatste_factuur),
|
||
0, TO_NUMBER (NULL),
|
||
SUM (fin_factuurregel_totaal))
|
||
FROM aaxx_v_factuur_gegevens g
|
||
WHERE g.bes_bestelopdr_key = b.bes_bestelopdr_key
|
||
AND g.fin_factuur_statuses_key >= 6),
|
||
opdr_kosten
|
||
)
|
||
opdr_kosten,
|
||
DECODE (opdr_volgnr, NULL, TO_CHAR (NULL), kpn),
|
||
DECODE (opdr_volgnr, NULL, TO_CHAR (NULL), kpn_omschrijving),
|
||
NULL deelsrtcontrole_key
|
||
FROM (SELECT b.bes_bestelling_key bes_bestelling_key,
|
||
b.bes_bestelling_key bestelaanvraagnr,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_key,
|
||
g.alg_gebouw_code,
|
||
g.alg_gebouw_naam,
|
||
g.alg_gebouw_key,
|
||
b.bes_bestelling_ordernr,
|
||
b.bes_bestelling_datum besteldatum,
|
||
b.bes_bestelling_satisfaction,
|
||
b.bes_bestelling_satisfaction_op,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = p.prs_perslid_key)
|
||
besteller,
|
||
p.prs_perslid_key prs_perslid_key_best,
|
||
(SELECT MAX (prs_perslid_naam_full)
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key =
|
||
COALESCE (
|
||
fac.gettrackinguserkey (
|
||
'BESNEW',
|
||
b.bes_bestelling_key
|
||
),
|
||
fac.gettrackinguserkey (
|
||
'BESAP2',
|
||
b.bes_bestelling_key
|
||
)
|
||
))
|
||
invoerder,
|
||
COALESCE (
|
||
fac.gettrackinguserkey ('BESNEW',
|
||
b.bes_bestelling_key),
|
||
fac.gettrackinguserkey ('BESAP2',
|
||
b.bes_bestelling_key)
|
||
)
|
||
invoerder_key,
|
||
fac.gettrackingdate ('BESACP', b.bes_bestelling_key)
|
||
acceptatie_datum,
|
||
fac.gettrackingdate ('BESOTV', b.bes_bestelling_key)
|
||
ontvangen_datum,
|
||
aaxx_bestelling_items (b.bes_bestelling_key)
|
||
omschrijving,
|
||
(SELECT ksg.prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
|
||
WHERE ksg.prs_kostensoortgrp_key =
|
||
ks.prs_kostensoortgrp_key
|
||
AND ks.prs_kostensoort_key =
|
||
d.prs_kostensoort_key)
|
||
kostensoortgroep,
|
||
(SELECT ks.prs_kostensoort_oms
|
||
FROM prs_kostensoort ks
|
||
WHERE ks.prs_kostensoort_key =
|
||
d.prs_kostensoort_key)
|
||
kostensoort,
|
||
k.prs_kostenplaats_nr kpn,
|
||
k.prs_kostenplaats_omschrijving kpn_omschrijving,
|
||
a.prs_afdeling_naam afdeling_code,
|
||
a.prs_afdeling_omschrijving afdeling_omschrijving,
|
||
d.ins_discipline_key,
|
||
d.ins_discipline_omschrijving,
|
||
b.bes_bestelling_leverdatum afleverdatum,
|
||
aaxx.count_work_days (
|
||
b.bes_bestelling_datum,
|
||
NVL (
|
||
fac.gettrackingdate ('BESOTV',
|
||
b.bes_bestelling_key),
|
||
SYSDATE
|
||
)
|
||
)
|
||
doorlooptijd_werkdgn,
|
||
NVL (
|
||
(SELECT bdp.bes_disc_params_leverdagen
|
||
FROM bes_disc_params bdp
|
||
WHERE d.ins_discipline_key =
|
||
bdp.bes_ins_discipline_key),
|
||
0
|
||
)
|
||
sla_tijd,
|
||
(SELECT bes_bestellingstatuses_omschr
|
||
FROM bes_bestellingstatuses bs
|
||
WHERE bs.bes_bestellingstatuses_key =
|
||
b.bes_bestelling_status)
|
||
status,
|
||
(SELECT b.prs_bedrijf_naam
|
||
FROM prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key)
|
||
leverancier,
|
||
(SELECT bes_bestelopdrstatuses_omschr
|
||
FROM bes_bestelopdrstatuses bs
|
||
WHERE bs.bes_bestelopdrstatuses_key =
|
||
bo.bes_bestelopdr_status)
|
||
opdr_status,
|
||
bo.bes_bestelopdr_key,
|
||
fac.safe_to_number(SUBSTR (
|
||
bo.bes_bestelopdr_id,
|
||
INSTR (bo.bes_bestelopdr_id, '/')
|
||
+ 1
|
||
))
|
||
opdr_volgnr,
|
||
bo.bes_bestelopdr_datum opdr_datum,
|
||
fac.gettrackingdate ('BES2SN', bo.bes_bestelopdr_key)
|
||
verzonden_datum,
|
||
fac.gettrackingdate ('BES2AF', bo.bes_bestelopdr_key)
|
||
opdr_ontv_datum,
|
||
bes.bestelopdr_tooltip (bo.bes_bestelopdr_key)
|
||
opdr_omschrijving,
|
||
bes_bestelopdr_opmerking,
|
||
DECODE (
|
||
bes_bestelopdr_status,
|
||
8,
|
||
0, -- geannuleerd
|
||
(SELECT SUM(bes_bestelopdr_item_aantal
|
||
* COALESCE (
|
||
bes_bestelopdr_item_inkprijs,
|
||
bes_bestelopdr_item_prijs
|
||
))
|
||
FROM bes_bestelopdr_item boi
|
||
WHERE boi.bes_bestelopdr_key =
|
||
bo.bes_bestelopdr_key)
|
||
)
|
||
opdr_kosten,
|
||
bo.prs_bedrijf_key
|
||
FROM bes_bestelling b,
|
||
prs_perslid p,
|
||
prs_kostenplaats k,
|
||
prs_afdeling a,
|
||
mld_adres ma,
|
||
bes_bestelopdr bo,
|
||
ins_tab_discipline d,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
(SELECT DISTINCT
|
||
bes_bestelling_key, bes_bestelopdr_key
|
||
FROM bes_bestelling_item bi,
|
||
bes_bestelopdr_item boi
|
||
WHERE bi.bes_bestelopdr_item_key =
|
||
boi.bes_bestelopdr_item_key) bes_opdr,
|
||
(SELECT DISTINCT
|
||
bes_bestelling_key, ins_discipline_key
|
||
FROM bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg
|
||
WHERE bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key)
|
||
cat,
|
||
( SELECT mld_adres_key, MAX (alg_gebouw_key) alg_gebouw_key
|
||
FROM (SELECT ma.mld_adres_key,
|
||
DECODE (
|
||
aaxx_get_user,
|
||
'AH',
|
||
DECODE (ma.mld_adres_key,
|
||
101, 280,
|
||
alg_gebouw_key),
|
||
alg_gebouw_key)
|
||
alg_gebouw_key
|
||
FROM alg_gebouw g FULL OUTER JOIN mld_adres ma
|
||
ON g.mld_adres_key = ma.mld_adres_key)
|
||
WHERE alg_gebouw_key IS NOT NULL
|
||
GROUP BY mld_adres_key) adr_geb
|
||
WHERE b.prs_perslid_key = p.prs_perslid_key
|
||
AND b.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND b.mld_adres_key_lev = ma.mld_adres_key
|
||
AND b.bes_bestelling_key =
|
||
bes_opdr.bes_bestelling_key(+)
|
||
AND bes_opdr.bes_bestelopdr_key =
|
||
bo.bes_bestelopdr_key(+)
|
||
AND ma.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = di.alg_district_key(+)
|
||
AND b.bes_bestelling_key = cat.bes_bestelling_key
|
||
AND cat.ins_discipline_key = d.ins_discipline_key
|
||
AND ma.mld_adres_key = adr_geb.mld_adres_key(+)
|
||
AND adr_geb.alg_gebouw_key = g.alg_gebouw_key(+)) b;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_MLD_KENM_MLD
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_melding
|
||
(
|
||
mld_melding_id,
|
||
mld_kenmerk_omschrijving,
|
||
mld_kenmerk_waarde
|
||
)
|
||
AS
|
||
SELECT mld_melding_key,
|
||
sk.mld_srtkenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (sk.mld_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
km.mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerk k, mld_srtkenmerk sk, mld_kenmerkmelding km
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_MLD_KENM_OPD
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_opdracht
|
||
(
|
||
mld_opdr_id,
|
||
mld_kenmerk_omschrijving,
|
||
mld_kenmerk_waarde
|
||
)
|
||
AS
|
||
SELECT mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr,
|
||
sk.mld_srtkenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (sk.mld_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
ko.mld_kenmerkopdr_waarde)
|
||
FROM mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
mld_kenmerkopdr ko,
|
||
mld_opdr o
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND ko.mld_opdr_key = o.mld_opdr_key;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_RES_ALGEMEEN
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_res_reservering
|
||
(
|
||
res_reservering_key,
|
||
res_rsv_ruimte_key,
|
||
nummer,
|
||
res_omschrijving,
|
||
res_opmerking,
|
||
res_ruimte_naam,
|
||
invoerdatum,
|
||
datum,
|
||
gastheer,
|
||
gastheer_key,
|
||
contact,
|
||
contact_key,
|
||
invoerder,
|
||
invoerder_key,
|
||
kostensoortgroep,
|
||
kostensoort,
|
||
kpn,
|
||
kpn_omschrijving,
|
||
prs_bedrijf_key,
|
||
afdeling_code,
|
||
afdeling_omschrijving,
|
||
district_omschrijving,
|
||
alg_locatie_key,
|
||
locatie,
|
||
locatie_omschrijving,
|
||
gebouw,
|
||
gebouw_omschrijving,
|
||
verdieping,
|
||
ruimte,
|
||
ruimte_key,
|
||
opstelling,
|
||
no_show,
|
||
shown_bezoekers,
|
||
mandaat,
|
||
personeelsnr,
|
||
werkplek,
|
||
ins_discipline_key,
|
||
catalogus_ins_discipline_key,
|
||
catalogus,
|
||
reserveerbare_ruimte,
|
||
bezoekers,
|
||
van,
|
||
tot,
|
||
duur,
|
||
status,
|
||
status_fo,
|
||
activiteit,
|
||
kosten_ruimte,
|
||
tevredenheid,
|
||
tevredenheid_opm,
|
||
voorziening_ins_discipline_key,
|
||
voorziening_catalogus,
|
||
voorziening_product,
|
||
voorziening_totaalprijs,
|
||
voorziening_van,
|
||
voorziening_tot,
|
||
voorziening_aantal,
|
||
voorziening_prijs,
|
||
voorziening_inkoopprijs,
|
||
voorziening_btw,
|
||
voorziening_afgemeld,
|
||
mld_opdr_key,
|
||
mld_opdr_id,
|
||
reservering_verwijder
|
||
)
|
||
AS
|
||
SELECT res.res_reservering_key,
|
||
rrr.res_rsv_ruimte_key,
|
||
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
rrr.res_rsv_ruimte_opmerking,
|
||
rr.res_ruimte_nr,
|
||
COALESCE (rrr.res_rsv_ruimte_aanmaak, voorz.van),
|
||
COALESCE (rrr.res_rsv_ruimte_van, voorz.van),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
|
||
rrr.res_rsv_ruimte_host_key,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
|
||
rrr.res_rsv_ruimte_contact_key,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM fac_tracking t,
|
||
fac_srtnotificatie sn,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE sn.fac_srtnotificatie_code = 'RESNEW'
|
||
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||
AND t.prs_perslid_key = pf.prs_perslid_key
|
||
AND fac_tracking_refkey = rrr.res_rsv_ruimte_key),
|
||
(SELECT prs_perslid_key
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE sn.fac_srtnotificatie_code = 'RESNEW'
|
||
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||
AND fac_tracking_refkey = rrr.res_rsv_ruimte_key),
|
||
(SELECT ksg.prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
|
||
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
|
||
AND ks.prs_kostensoort_key =
|
||
(SELECT disc.prs_kostensoort_key
|
||
FROM res_discipline disc
|
||
WHERE disc.ins_discipline_key =
|
||
COALESCE (
|
||
voorz.ins_discipline_key,
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key =
|
||
ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key =
|
||
rr.res_ruimte_key
|
||
AND rr.res_discipline_key =
|
||
d.ins_discipline_key))))
|
||
kostensoortgroep,
|
||
(SELECT ks.prs_kostensoort_oms
|
||
FROM prs_kostensoort ks
|
||
WHERE ks.prs_kostensoort_key =
|
||
(SELECT disc.prs_kostensoort_key
|
||
FROM res_discipline disc
|
||
WHERE disc.ins_discipline_key =
|
||
COALESCE (
|
||
voorz.ins_discipline_key,
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key =
|
||
ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key =
|
||
rr.res_ruimte_key
|
||
AND rr.res_discipline_key =
|
||
d.ins_discipline_key))))
|
||
kostensoort,
|
||
k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving,
|
||
(SELECT prs_bedrijf_key
|
||
FROM prs_v_afdeling pva
|
||
WHERE pva.prs_afdeling_key = a.prs_afdeling_key),
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving,
|
||
(SELECT d.alg_district_omschrijving
|
||
FROM alg_district d,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE d.alg_district_key = l.alg_district_key
|
||
AND l.alg_locatie_key = g.alg_locatie_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT l.alg_locatie_key
|
||
FROM alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE l.alg_locatie_key = g.alg_locatie_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT alg_locatie_code
|
||
FROM alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE l.alg_locatie_key = g.alg_locatie_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT alg_locatie_omschrijving
|
||
FROM alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE l.alg_locatie_key = g.alg_locatie_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT alg_gebouw_code
|
||
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
|
||
WHERE g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT alg_gebouw_naam
|
||
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
|
||
WHERE g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT alg_verdieping_code
|
||
FROM alg_verdieping v, alg_ruimte r
|
||
WHERE v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT alg_ruimte_nr
|
||
FROM alg_ruimte r
|
||
WHERE r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
r2a.alg_ruimte_key,
|
||
r2a.opstelling,
|
||
rrr.res_rsv_ruimte_noshow,
|
||
rrr.res_rsv_ruimte_bezoekers_shown,
|
||
NVL ( (SELECT pr.fac_profiel_limiet
|
||
FROM fac_profiel pr
|
||
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0),
|
||
prs_perslid_nr,
|
||
wp2.prs_werkplek_aanduiding,
|
||
COALESCE (
|
||
voorz.ins_discipline_key,
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key)),
|
||
(SELECT ins_discipline_key
|
||
FROM ins_tab_discipline d,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key),
|
||
(SELECT ins_discipline_omschrijving
|
||
FROM ins_tab_discipline d,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_discipline_key = d.ins_discipline_key),
|
||
DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
|
||
rrr.res_rsv_ruimte_bezoekers,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
NVL ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
|
||
(SELECT res_status_bo_omschrijving
|
||
FROM res_status_bo rs
|
||
WHERE rs.res_status_bo_key =
|
||
COALESCE (voorz.res_status_bo_key,
|
||
rrr.res_status_bo_key)),
|
||
(SELECT res_status_fo_omschrijving
|
||
FROM res_status_fo rs2
|
||
WHERE rs2.res_status_fo_key = rrr.res_status_fo_key
|
||
),
|
||
(SELECT res_activiteit_omschrijving
|
||
FROM res_activiteit ra
|
||
WHERE ra.res_activiteit_key = rrr.res_activiteit_key),
|
||
(SELECT res.getruimteprijs(rrr.res_rsv_ruimte_key) from dual),
|
||
rrr.res_rsv_ruimte_satisfaction,
|
||
rrr.res_rsv_ruimte_satisfaction_op,
|
||
voorz.ins_discipline_key,
|
||
voorz.catalogus,
|
||
voorz.product,
|
||
voorz.totaalprijs,
|
||
voorz.van,
|
||
voorz.tot,
|
||
voorz.aantal,
|
||
voorz.prijs,
|
||
voorz.inkoopprijs,
|
||
voorz.btw,
|
||
voorz.afgemeld,
|
||
o.mld_opdr_key,
|
||
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr,
|
||
res_rsv_ruimte_verwijder
|
||
FROM res_rsv_ruimte rrr,
|
||
res_reservering res,
|
||
prs_kostenplaats k,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
mld_opdr o,
|
||
( 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_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
|
||
AND res_alg_ruimte_verwijder IS NULL
|
||
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,
|
||
res_rsv_deel_afgemeld afgemeld,
|
||
c.ins_discipline_key ins_discipline_key,
|
||
c.ins_discipline_omschrijving catalogus,
|
||
TO_NUMBER(NULL) mld_opdr_key
|
||
FROM res_rsv_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,
|
||
res_rsv_artikel_afgemeld afgemeld,
|
||
c.ins_discipline_key ins_discipline_key,
|
||
c.ins_discipline_omschrijving catalogus,
|
||
bc.mld_opdr_key
|
||
FROM res_rsv_artikel rra,
|
||
res_artikel ra,
|
||
ins_tab_discipline c,
|
||
aaxx_bundel_catering_ref bc
|
||
WHERE rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key = c.ins_discipline_key
|
||
AND rra.res_rsv_artikel_key = bc.res_rsv_artikel_key(+)) voorz,
|
||
( SELECT pw.prs_perslid_key,
|
||
MIN (prs_werkplek_aanduiding)
|
||
|| DECODE (COUNT ( * ), 1, '', '...')
|
||
prs_werkplek_aanduiding
|
||
FROM prs_v_werkplek_gegevens wp, prs_perslidwerkplek pw
|
||
WHERE wp.prs_werkplek_key = pw.prs_werkplek_key
|
||
GROUP BY pw.prs_perslid_key) wp2
|
||
WHERE rrr.res_reservering_key = res.res_reservering_key
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
|
||
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
|
||
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
|
||
AND voorz.mld_opdr_key = o.mld_opdr_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,
|
||
reservering_verwijder
|
||
)
|
||
AS
|
||
SELECT
|
||
dwhres.nummer,
|
||
sk.res_srtkenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (sk.res_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
kw.res_kenmerkreservering_waarde),
|
||
dwhres.reservering_verwijder
|
||
FROM res_kenmerk k,
|
||
res_srtkenmerk sk,
|
||
res_kenmerkwaarde kw,
|
||
aaxx_v_dwh_res_reservering dwhres
|
||
WHERE dwhres.res_rsv_ruimte_key = kw.res_rsv_ruimte_key
|
||
AND kw.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key ;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_BES_ALGEMEEN
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_bes_bestelling
|
||
(
|
||
bes_bestelling_key,
|
||
bestelaanvraagnr,
|
||
besteldatum,
|
||
besteller,
|
||
invoerder,
|
||
kostensoortgroep,
|
||
kostensoort,
|
||
kpn,
|
||
kpn_omschrijving,
|
||
prs_bedrijf_key,
|
||
afdeling_code,
|
||
afdeling_omschrijving,
|
||
alg_locatie_key,
|
||
locatie_code,
|
||
district_omschijving,
|
||
afleveradres,
|
||
mandaat,
|
||
personeelsnr,
|
||
werkplek,
|
||
ins_discipline_key,
|
||
catalogus,
|
||
groep,
|
||
afleverdatum,
|
||
doorlooptijd_werkdgn,
|
||
sla_tijd,
|
||
productcode,
|
||
prijs,
|
||
inkoopprijs,
|
||
status,
|
||
gefiatteerddoor,
|
||
tevredenheid,
|
||
tevredenheid_opm,
|
||
bestelopdrachtnummer,
|
||
leverancier,
|
||
aantal,
|
||
itemprijs,
|
||
iteminkoopprijs,
|
||
productomschrijving,
|
||
itemposnr
|
||
)
|
||
AS
|
||
SELECT b.bes_bestelling_key bes_bestelling_key,
|
||
b.bes_bestelling_key bestelaanvraagnr,
|
||
b.bes_bestelling_datum besteldatum,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = p.prs_perslid_key)
|
||
besteller,
|
||
(SELECT MAX (prs_perslid_naam_full)
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key =
|
||
COALESCE(fac.gettrackinguserkey ('BESNEW', b.bes_bestelling_key), fac.gettrackinguserkey ('BESAP2', b.bes_bestelling_key)))
|
||
invoerder,
|
||
(SELECT ksg.prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
|
||
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
|
||
AND ks.prs_kostensoort_key =
|
||
(SELECT disc.prs_kostensoort_key
|
||
FROM bes_discipline disc
|
||
WHERE disc.ins_discipline_key = d.ins_discipline_key))
|
||
kostensoortgroep,
|
||
(SELECT ks.prs_kostensoort_oms
|
||
FROM prs_kostensoort ks
|
||
WHERE ks.prs_kostensoort_key =
|
||
(SELECT disc.prs_kostensoort_key
|
||
FROM bes_discipline disc
|
||
WHERE disc.ins_discipline_key = d.ins_discipline_key))
|
||
kostensoort,
|
||
k.prs_kostenplaats_nr kpn,
|
||
k.prs_kostenplaats_omschrijving kpn_omschrijving,
|
||
(SELECT prs_bedrijf_key
|
||
FROM prs_v_afdeling pva
|
||
WHERE pva.prs_afdeling_key = a.prs_afdeling_key)
|
||
prs_bedrijf_key,
|
||
a.prs_afdeling_naam afdeling_code,
|
||
a.prs_afdeling_omschrijving afdeling_omschrijving,
|
||
ma.alg_locatie_key alg_locatie_key,
|
||
(SELECT alg_locatie_code
|
||
FROM alg_locatie l
|
||
WHERE l.alg_locatie_key = ma.alg_locatie_key)
|
||
locatie_code,
|
||
(SELECT alg_district_omschrijving
|
||
FROM alg_locatie l, alg_district d
|
||
WHERE l.alg_district_key = d.alg_district_key
|
||
AND l.alg_locatie_key = ma.alg_locatie_key)
|
||
district_omschijving,
|
||
ma.mld_adres_naam afleveradres,
|
||
NVL ( (SELECT pr.fac_profiel_limiet
|
||
FROM fac_profiel pr
|
||
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0)
|
||
mandaat,
|
||
prs_perslid_nr personeelsnr,
|
||
wp2.prs_werkplek_aanduiding werkplek,
|
||
d.ins_discipline_key ins_discipline_key,
|
||
d.ins_discipline_omschrijving catalogus,
|
||
sg.bes_srtgroep_omschrijving groep,
|
||
b.bes_bestelling_leverdatum afleverdatum,
|
||
TO_CHAR(aaxx.count_work_days (
|
||
b.bes_bestelling_datum,
|
||
NVL (
|
||
fac.gettrackingdate ('BESOTV', b.bes_bestelling_key),
|
||
SYSDATE)))
|
||
doorlooptijd_werkdgn,
|
||
NVL ( (SELECT bdp.bes_disc_params_leverdagen
|
||
FROM bes_disc_params bdp
|
||
WHERE d.ins_discipline_key = bdp.bes_ins_discipline_key),
|
||
0)
|
||
sla_tijd,
|
||
sd.bes_srtdeel_nr productcode,
|
||
DECODE(bes_bestelling_status,
|
||
8,0, -- geannuleerd
|
||
bi.bes_bestelling_item_prijs * bi.bes_bestelling_item_aantal) prijs,
|
||
DECODE(bes_bestelling_status,
|
||
8,0, -- geannuleerd
|
||
NVL (bi.bes_bestelling_item_inkprijs, bi.bes_bestelling_item_prijs)
|
||
* bi.bes_bestelling_item_aantal)
|
||
inkoopprijs,
|
||
(SELECT bes_bestellingstatuses_omschr
|
||
FROM bes_bestellingstatuses bs
|
||
WHERE bs.bes_bestellingstatuses_key = b.bes_bestelling_status)
|
||
status,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = b.bes_bestelling_fiat_user)
|
||
gefiatteerddoor,
|
||
b.bes_bestelling_satisfaction,
|
||
b.bes_bestelling_satisfaction_op,
|
||
bo.bes_bestelopdr_id bestelopdrachtnummer,
|
||
(SELECT b.prs_bedrijf_naam
|
||
FROM prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key)
|
||
leverancier,
|
||
bi.bes_bestelling_item_aantal aantal,
|
||
DECODE (bes_bestelling_status,
|
||
8, 0, -- geannuleerd
|
||
bi.bes_bestelling_item_prijs) itemprijs,
|
||
DECODE (bes_bestelling_status,
|
||
8,0, -- geannuleerd
|
||
NVL (bi.bes_bestelling_item_inkprijs, bi.bes_bestelling_item_prijs))
|
||
iteminkoopprijs,
|
||
sd.bes_srtdeel_omschrijving productomschrijving,
|
||
boi.bes_bestelopdr_item_posnr itemposnr
|
||
FROM bes_bestelling b,
|
||
prs_perslid p,
|
||
prs_kostenplaats k,
|
||
prs_afdeling a,
|
||
mld_adres ma,
|
||
( SELECT pw.prs_perslid_key,
|
||
MIN (prs_werkplek_aanduiding)
|
||
|| DECODE (COUNT ( * ), 1, '', '...')
|
||
prs_werkplek_aanduiding
|
||
FROM prs_v_werkplek_gegevens wp, prs_perslidwerkplek pw
|
||
WHERE wp.prs_werkplek_key = pw.prs_werkplek_key
|
||
GROUP BY pw.prs_perslid_key) wp2,
|
||
bes_bestelling_item bi,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelopdr bo,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
ins_tab_discipline d
|
||
WHERE b.prs_perslid_key = p.prs_perslid_key
|
||
AND b.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND b.mld_adres_key_lev = ma.mld_adres_key
|
||
AND wp2.prs_perslid_key(+) = p.prs_perslid_key
|
||
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key(+)
|
||
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = d.ins_discipline_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_BES_KENMERK
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_bestelling
|
||
(
|
||
nummer,
|
||
kenmerk_omschrijving,
|
||
kenmerk_waarde
|
||
)
|
||
AS
|
||
SELECT kb.bes_bestelling_key,
|
||
sk.bes_srtkenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (sk.bes_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
bes_kenmerkbestell_waarde)
|
||
FROM bes_kenmerk k,
|
||
bes_srtkenmerk sk,
|
||
fac_kenmerkdomein fkd,
|
||
bes_kenmerkbestell kb
|
||
WHERE kb.bes_kenmerk_key = k.bes_kenmerk_key
|
||
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_BEZ_BEZOEKERS
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_bez_bezoekers
|
||
(
|
||
bezoekers_key,
|
||
afspraak_begin,
|
||
afspraak_ontvangen,
|
||
ontvangen_door,
|
||
afspraak_eind,
|
||
afspraak_afgemeld,
|
||
afgemeld_door,
|
||
contactpersoon,
|
||
gastheer,
|
||
locatie,
|
||
gebouw,
|
||
verdieping,
|
||
ruimte,
|
||
actie,
|
||
opmerking,
|
||
parkeerplaats,
|
||
ingevoerd_door,
|
||
ingevoerd,
|
||
res_rsv_ruimte_key,
|
||
reservering,
|
||
bezoeker,
|
||
bedrijf
|
||
)
|
||
AS
|
||
SELECT b.bez_bezoekers_key,
|
||
a.bez_afspraak_datum,
|
||
bez_bezoekers_done,
|
||
bezdon.prs_perslid_key,
|
||
bez_afspraak_eind,
|
||
bez_bezoekers_out,
|
||
bezout.prs_perslid_key,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = a.bez_afspraak_contact_key)
|
||
contact,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = a.bez_afspraak_host_key)
|
||
HOST,
|
||
alg_locatie_code || '-' || alg_locatie_omschrijving,
|
||
(SELECT alg_gebouw_upper || '-' || alg_gebouw_naam
|
||
FROM alg_gebouw g
|
||
WHERE g.alg_gebouw_key = og.alg_gebouw_key)
|
||
gebouw,
|
||
(SELECT alg_verdieping_volgnr
|
||
FROM alg_verdieping v
|
||
WHERE v.alg_verdieping_key = og.alg_verdieping_key)
|
||
verdieping,
|
||
(SELECT alg_ruimte_nr || '-' || alg_ruimte_omschrijving
|
||
FROM alg_ruimte r
|
||
WHERE r.alg_ruimte_key = og.alg_ruimte_key)
|
||
ruimte,
|
||
(SELECT bez_actie_omschrijving
|
||
FROM bez_actie ac
|
||
WHERE ac.bez_actie_key = a.bez_actie_key)
|
||
actie,
|
||
a.bez_afspraak_opmerking opmerking,
|
||
(SELECT MAX (ins_deel_omschrijving)
|
||
FROM res_v_aanwezigrsv_deel rrd, res_deel rd, ins_deel d
|
||
WHERE rrd.bez_bezoekers_key = b.bez_bezoekers_key
|
||
AND rrd.res_deel_key = rd.res_deel_key
|
||
AND rd.res_ins_deel_key = d.ins_deel_key)
|
||
parkeer,
|
||
bezmut.prs_perslid_key,
|
||
bezmut.fac_tracking_datum,
|
||
a.res_rsv_ruimte_key res_rsv_ruimte_key,
|
||
(SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
||
FROM res_rsv_ruimte rrr
|
||
WHERE rrr.res_rsv_ruimte_key = a.res_rsv_ruimte_key)
|
||
reservering_nummer,
|
||
b.bez_afspraak_naam,
|
||
b.bez_afspraak_bedrijf
|
||
FROM bez_bezoekers b,
|
||
bez_afspraak a,
|
||
alg_v_onroerendgoed og,
|
||
alg_locatie l,
|
||
(SELECT fac_tracking_refkey, prs_perslid_key
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'BEZDON'
|
||
AND NOT EXISTS
|
||
(SELECT fac_tracking_refkey
|
||
FROM fac_tracking t2
|
||
WHERE t2.fac_srtnotificatie_key =
|
||
t.fac_srtnotificatie_key
|
||
AND t2.fac_tracking_refkey = t.fac_tracking_refkey
|
||
AND t2.fac_tracking_key > t.fac_tracking_key))
|
||
bezdon,
|
||
(SELECT fac_tracking_refkey, prs_perslid_key
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'BEZOUT'
|
||
AND NOT EXISTS
|
||
(SELECT fac_tracking_refkey
|
||
FROM fac_tracking t2
|
||
WHERE t2.fac_srtnotificatie_key =
|
||
t.fac_srtnotificatie_key
|
||
AND t2.fac_tracking_refkey = t.fac_tracking_refkey
|
||
AND t2.fac_tracking_key > t.fac_tracking_key))
|
||
bezout,
|
||
(SELECT fac_tracking_refkey, prs_perslid_key, fac_tracking_datum
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'BEZMUT'
|
||
AND NOT EXISTS
|
||
(SELECT fac_tracking_refkey
|
||
FROM fac_tracking t2
|
||
WHERE t2.fac_srtnotificatie_key =
|
||
t.fac_srtnotificatie_key
|
||
AND t2.fac_tracking_refkey = t.fac_tracking_refkey
|
||
AND t2.fac_tracking_key > t.fac_tracking_key))
|
||
bezmut
|
||
WHERE b.bez_afspraak_key = a.bez_afspraak_key
|
||
AND a.alg_onrgoed_keys = og.alg_onroerendgoed_keys(+)
|
||
AND a.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND b.bez_bezoekers_key = bezdon.fac_tracking_refkey(+)
|
||
AND b.bez_bezoekers_key = bezout.fac_tracking_refkey(+)
|
||
AND a.bez_afspraak_key = bezmut.fac_tracking_refkey(+);
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_ALG_ONRGOED
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_alg_onrgoed
|
||
(
|
||
alg_onroerendgoed_keys,
|
||
alg_onroerendgoed_code,
|
||
alg_onroerendgoed_omschrijving,
|
||
alg_onroerendgoed_aanmaak,
|
||
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_locatie_bezoek_adres,
|
||
alg_locatie_bezoek_postcode,
|
||
alg_locatie_bezoek_plaats,
|
||
alg_terreinsector_key,
|
||
alg_terreinsector_code,
|
||
alg_terreinsector_naam,
|
||
alg_gebouw_key,
|
||
alg_gebouw_code,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_verantwoordelijke,
|
||
alg_gebouw_verantwoordelijke2,
|
||
alg_gebouw_mjb_score1,
|
||
alg_gebouw_bvo,
|
||
alg_gebouw_bez,
|
||
alg_gebouw_werkdagen,
|
||
alg_gebouw_beginuur,
|
||
alg_gebouw_einduur,
|
||
alg_gebouw_functie,
|
||
alg_gebouw_x,
|
||
alg_gebouw_y,
|
||
alg_verdieping_key,
|
||
alg_verdieping_code,
|
||
alg_verdieping_omschrijving,
|
||
alg_ruimte_key,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
alg_ruimte_m2,
|
||
alg_ruimte_m2_alt1,
|
||
alg_ruimte_m2_alt2,
|
||
dienstniveau_niveau,
|
||
dienstniveau,
|
||
alg_srtruimte_omschrijving,
|
||
prs_afdeling_upper
|
||
)
|
||
AS
|
||
SELECT alg_onroerendgoed_keys,
|
||
DECODE (alg_type,
|
||
'T', alg_terreinsector_code,
|
||
'G', alg_gebouw_code,
|
||
'V', alg_verdieping_code,
|
||
'R', alg_ruimte_nr)
|
||
code,
|
||
DECODE (alg_type,
|
||
'T', alg_terreinsector_naam,
|
||
'G', alg_gebouw_naam,
|
||
'V', alg_verdieping_omschrijving,
|
||
'R', alg_ruimte_omschrijving)
|
||
omschrijving,
|
||
DECODE (alg_type,
|
||
'T', alg_terreinsector_aanmaak,
|
||
'G', alg_gebouw_aanmaak,
|
||
'V', alg_verdieping_aanmaak,
|
||
'R', alg_ruimte_aanmaak)
|
||
aanmaak,
|
||
DECODE (alg_type,
|
||
'T', alg_terreinsector_verwijder,
|
||
'G', alg_gebouw_verwijder,
|
||
'V', COALESCE(alg_verdieping_verwijder, alg_gebouw_verwijder),
|
||
'R', COALESCE(alg_ruimte_verwijder, alg_verdieping_verwijder, alg_gebouw_verwijder)
|
||
)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,
|
||
l.alg_locatie_adres,
|
||
l.alg_locatie_postcode,
|
||
l.alg_locatie_plaats,
|
||
t.alg_terreinsector_key,
|
||
t.alg_terreinsector_code,
|
||
t.alg_terreinsector_naam,
|
||
g.alg_gebouw_key,
|
||
g.alg_gebouw_code,
|
||
g.alg_gebouw_naam,
|
||
g.prs_perslid_key_verantw,
|
||
g.prs_perslid_key_verantw2,
|
||
g.alg_gebouw_mjb_score1,
|
||
(SELECT SUM (alg_ruimte_bruto_vloeropp) alg_gebouw_bvo
|
||
FROM alg_ruimte r, alg_verdieping v
|
||
WHERE v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_verwijder IS NULL
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key)
|
||
alg_gebouw_bvo,
|
||
alg_gebouw_bez,
|
||
alg_gebouw_werkdagen,
|
||
DECODE (
|
||
alg_gebouw_beginuur,
|
||
NULL,
|
||
TO_CHAR (NULL),
|
||
0,
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (TRUNC (alg_gebouw_beginuur)) || ':'
|
||
|| TO_CHAR (
|
||
(alg_gebouw_beginuur - TRUNC (alg_gebouw_beginuur)) * 60,
|
||
'FM00'))
|
||
alg_gebouw_beginuur,
|
||
DECODE (
|
||
alg_gebouw_einduur,
|
||
NULL,
|
||
TO_CHAR (NULL),
|
||
0,
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (TRUNC (alg_gebouw_einduur)) || ':'
|
||
|| TO_CHAR (
|
||
(alg_gebouw_einduur - TRUNC (alg_gebouw_einduur)) * 60,
|
||
'FM00'))
|
||
alg_gebouw_einduur,
|
||
(SELECT alg_srtgebouw_omschrijving
|
||
FROM alg_srtgebouw sg
|
||
WHERE sg.alg_srtgebouw_key = g.alg_srtgebouw_key)
|
||
alg_gebouw_functie,
|
||
alg_gebouw_x,
|
||
alg_gebouw_y,
|
||
v.alg_verdieping_key,
|
||
v.alg_verdieping_code,
|
||
v.alg_verdieping_omschrijving,
|
||
ru.alg_ruimte_key,
|
||
ru.alg_ruimte_nr,
|
||
ru.alg_ruimte_omschrijving,
|
||
ru.alg_ruimte_bruto_vloeropp,
|
||
ru.alg_ruimte_opp_alt1,
|
||
ru.alg_ruimte_opp_alt2,
|
||
CASE
|
||
WHEN mdr.mld_dienstniveau_omschr IS NOT NULL THEN 'R'
|
||
WHEN mdv.mld_dienstniveau_omschr IS NOT NULL THEN 'V'
|
||
WHEN mdg.mld_dienstniveau_omschr IS NOT NULL THEN 'G'
|
||
WHEN mdl.mld_dienstniveau_omschr IS NOT NULL THEN 'L'
|
||
END
|
||
dienstniveau_gevuld,
|
||
COALESCE (mdr.mld_dienstniveau_omschr,
|
||
mdv.mld_dienstniveau_omschr,
|
||
mdg.mld_dienstniveau_omschr,
|
||
mdl.mld_dienstniveau_omschr)
|
||
dienstniveau,
|
||
sru.alg_srtruimte_omschrijving,
|
||
afd.prs_afdeling_upper
|
||
FROM alg_v_allonroerendgoed aog,
|
||
mld_dienstniveau mdr,
|
||
mld_dienstniveau mdv,
|
||
mld_dienstniveau mdg,
|
||
mld_dienstniveau mdl,
|
||
alg_ruimte ru,
|
||
alg_verdieping v,
|
||
alg_terreinsector t,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_regio r,
|
||
alg_srtruimte sru,
|
||
(SELECT ra.alg_ruimte_key, a.prs_afdeling_upper
|
||
FROM prs_ruimteafdeling ra, prs_v_afdeling a
|
||
WHERE ra.prs_afdeling_key = a.prs_afdeling_key) afd
|
||
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
|
||
AND ru.mld_dienstniveau_key = mdr.mld_dienstniveau_key(+)
|
||
AND v.mld_dienstniveau_key = mdv.mld_dienstniveau_key(+)
|
||
AND g.mld_dienstniveau_key = mdg.mld_dienstniveau_key(+)
|
||
AND l.mld_dienstniveau_key = mdl.mld_dienstniveau_key(+)
|
||
AND ru.alg_srtruimte_key = sru.alg_srtruimte_key (+)
|
||
AND ru.alg_ruimte_key = afd.alg_ruimte_key (+)
|
||
UNION ALL
|
||
SELECT TO_NUMBER (NULL),
|
||
alg_locatie_code,
|
||
alg_locatie_omschrijving,
|
||
l.alg_locatie_aanmaak,
|
||
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,
|
||
alg_locatie_adres,
|
||
alg_locatie_postcode,
|
||
alg_locatie_plaats,
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL), -- alg_gebouw_bvo,
|
||
TO_NUMBER (NULL), -- alg_gebouw_bez,
|
||
TO_NUMBER (NULL), -- alg_gebouw_werkdagen,
|
||
TO_CHAR (NULL), -- alg_gebouw_beginuur,
|
||
TO_CHAR (NULL), -- alg_gebouw_einduur,
|
||
TO_CHAR (NULL), -- alg_gebouw_functie,
|
||
TO_NUMBER (NULL), -- alg_gebouw_x,
|
||
TO_NUMBER (NULL), -- alg_gebouw_y,
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
'L',
|
||
md.mld_dienstniveau_omschr,
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL)
|
||
FROM alg_locatie l,
|
||
alg_district d,
|
||
alg_regio r,
|
||
mld_dienstniveau md
|
||
WHERE l.alg_district_key = d.alg_district_key
|
||
AND d.alg_regio_key = r.alg_regio_key
|
||
AND l.mld_dienstniveau_key = md.mld_dienstniveau_key(+)
|
||
UNION ALL
|
||
SELECT TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
alg_district_omschrijving,
|
||
d.alg_district_aanmaak,
|
||
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_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL), -- alg_gebouw_bvo,
|
||
TO_NUMBER (NULL), -- alg_gebouw_bez,
|
||
TO_NUMBER (NULL), -- alg_gebouw_werkdagen,
|
||
TO_CHAR (NULL), -- alg_gebouw_beginuur,
|
||
TO_CHAR (NULL), -- alg_gebouw_einduur,
|
||
TO_CHAR (NULL), -- alg_gebouw_functie,
|
||
TO_NUMBER (NULL), -- alg_gebouw_x,
|
||
TO_NUMBER (NULL), -- alg_gebouw_y,
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (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_aanmaak,
|
||
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_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL), -- alg_gebouw_bvo,
|
||
TO_NUMBER (NULL), -- alg_gebouw_bez,
|
||
TO_NUMBER (NULL), -- alg_gebouw_werkdagen,
|
||
TO_CHAR (NULL), -- alg_gebouw_beginuur,
|
||
TO_CHAR (NULL), -- alg_gebouw_einduur,
|
||
TO_CHAR (NULL), -- alg_gebouw_functie,
|
||
TO_NUMBER (NULL), -- alg_gebouw_x,
|
||
TO_NUMBER (NULL), -- alg_gebouw_y,
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_CHAR (NULL),
|
||
TO_CHAR (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,
|
||
aaxx_get_kenmerkwaarde (k.alg_kenmerk_kenmerktype,
|
||
k.fac_kenmerkdomein_key,
|
||
aog.alg_onrgoedkenmerk_waarde)
|
||
FROM alg_kenmerk k, alg_onrgoedkenmerk aog
|
||
WHERE k.alg_kenmerk_key = aog.alg_kenmerk_key
|
||
AND aog.alg_onrgoedkenmerk_verwijder IS NULL;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_INS_SENSOR_STATUS
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_ins_sensor_status
|
||
(
|
||
ruimte_key,
|
||
sensor_id,
|
||
tijdstip_aan,
|
||
tijdstip_uit
|
||
)
|
||
AS
|
||
SELECT d.ins_alg_ruimte_key,
|
||
d.ins_deel_omschrijving,
|
||
h.ins_deel_statedate,
|
||
h.uit
|
||
FROM (SELECT h.*,
|
||
LEAD (ins_deel_statedate)
|
||
OVER (PARTITION BY ins_deel_key ORDER BY ins_deel_statedate)
|
||
AS uit
|
||
FROM ins_deel_state_history h) h,
|
||
ins_srtdeel sd,
|
||
ins_deel d
|
||
WHERE h.ins_deel_key = d.ins_deel_key
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND h.ins_deel_state = '1'
|
||
ORDER BY d.ins_alg_ruimte_key, h.ins_deel_statedate;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_INSPECTIE
|
||
-------------------------------------------------------------------------------
|
||
|
||
-- Zie ticket 63820. Betreft DWH-view_2.0. Dit is afgeleide van de AAXX_V_DWH_INSPECTIE.
|
||
-- Bedoeling:
|
||
---- Deze view hanteert men nu eerst voor Gemeente Nijmegen om o.a. de gewenste Dashboards mee te realiseren.
|
||
---- Indien dit gereed is dan zou de oude AAXX-view vervangen moeten gaan worden door deze.
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_inspectie_2
|
||
(
|
||
taakcategorie,
|
||
taaksoort,
|
||
taakmodus,
|
||
ismjob,
|
||
taakopties,
|
||
uitvoer_aantal,
|
||
deelsrtcontrole_key,
|
||
deelsrtcontrole_key_vorig,
|
||
deel_key,
|
||
deel_omschrijving,
|
||
srtcontrole_key,
|
||
srtcontrole_info,
|
||
srtcontrole_niveau,
|
||
srtcontrole_omschrijving,
|
||
srtcontrole_opmerking,
|
||
srtcontrole_periode,
|
||
srtcontrole_eenheid, -- Eenheid (jaar, maand, week, dag) op basistaak
|
||
srtcontrole_level, -- prioriteit basistaak
|
||
srtcontrole_percentage,
|
||
srtcontrole_start,
|
||
srtcontrole_eind,
|
||
srtcontrole_groep,
|
||
uitvoer_x, -- De x-ste uitvoer
|
||
status, -- Is status van de uitvoerende taak (ingepland, in behandeling, afgemeld, voltooid)
|
||
deelsrtcontrole_datum, -- Voor Uitvoertaak de coalesce(Uitvoerdatum, Plandatum of Startdatum)
|
||
-- Voor Basistaak indien geen geschiedenis, StartdatumTaak (of indien leeg ins_deel_datum)
|
||
----- en indien wel geschiedenis dan NextCyclus op basis van (uitvoerdatum, plandatum, FreezeDate ivm MJOB) laatste/hudige taak.
|
||
mjob_doorgeschoven,
|
||
uitvoerdatum_gepland,
|
||
uitvoerdatum_inbehandeling,
|
||
uitvoerdatum_gereed,
|
||
succes,
|
||
actie_vereist,
|
||
afmeld_datum, -- Afgemeld op (= gereed/voltooid met vervolgactie..)
|
||
verwerk_datum, -- Verwerkt op (= voltooid zonder vervolgactie / vervolgactie voltooid)
|
||
uitvoerdatum_origineel, -- Datum waarop uitvoertaak uitgevoerd zou moeten worden
|
||
respijt,
|
||
deelsrtcontrole_status, -- Voor uitvoertaak, de beoordeling Te laat of op Tijd (op basis coalesce(plandatum, originele uitvoerdatum)
|
||
-- Voor basistaak indicatie of de nog te starten taak al opgestart had moeten worden
|
||
cycli_dagen, -- VorigeUitvoerdatum MINUS deze uitvoerdatum
|
||
srtcontrole_materiaal,
|
||
controlemode_omschrijving,
|
||
controlemode_opmerking,
|
||
deelsrtcontrole_opmerking,
|
||
prs_perslid_key,
|
||
gecontroleerd_door,
|
||
taak_categorie,
|
||
dienst,
|
||
prs_bedrijf_key
|
||
)
|
||
AS
|
||
SELECT
|
||
cd.ins_discipline_omschrijving,
|
||
CASE
|
||
WHEN cdp.ctr_disc_params_controle_type = 1
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_insp')
|
||
WHEN cdp.ctr_disc_params_controle_type = 2
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_repl')
|
||
WHEN cdp.ctr_disc_params_controle_type = 3
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_cert')
|
||
END
|
||
taaksoort,
|
||
CASE
|
||
WHEN sc.ins_srtcontrole_mode = 0
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_moment')
|
||
ELSE
|
||
lcl.l ('lcl_ins_srtcontrole_interval')
|
||
END
|
||
taak_modus,
|
||
cdp.ctr_disc_params_ismjob ismjob,
|
||
sc.ins_srtcontrole_options taakopties,
|
||
(SELECT COUNT (dc2.ins_deelsrtcontrole_key)
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deel_key = d.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = x.ins_srtcontrole_key)
|
||
uitvoer_aantal,
|
||
dc.ins_deelsrtcontrole_key,
|
||
dcp.ins_deelsrtcontrole_key_vorige deelsrtcontrole_key_vorig,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
sc.ins_srtcontrole_key,
|
||
sc.ins_srtcontrole_info,
|
||
sc.ins_srtcontrole_niveau,
|
||
sc.ins_srtcontrole_omschrijving,
|
||
COALESCE (x.ins_srtcontroledl_xcp_opmerk, sc.ins_srtcontrole_opmerking) ins_srtcontrole_opmerking,
|
||
COALESCE (x.ins_srtcontroledl_xcp_periode, sc.ins_srtcontrole_periode) ins_srtcontrole_periode,
|
||
DECODE (
|
||
COALESCE (x.ins_srtcontroledl_xcp_eenheid, sc.ins_srtcontrole_eenheid),
|
||
0,
|
||
'Uurlijks',
|
||
1,
|
||
'Dagelijks',
|
||
2,
|
||
'Wekelijks',
|
||
3,
|
||
'Maandelijks',
|
||
4,
|
||
'Jaarlijks',
|
||
'Onbekend')
|
||
ins_srtcontrole_eenheid,
|
||
sc.ins_srtcontrole_level, -- prioriteit
|
||
COALESCE (x.ins_srtcontroledl_xcp_perc, sc.ins_srtcontrole_percentage) ins_srtcontrole_percentage,
|
||
x.ins_srtcontroledl_xcp_startdat,
|
||
COALESCE (x.ins_srtcontroledl_xcp_eind, ins_srtcontrole_eind) ins_srtcontrole_eind,
|
||
COALESCE (x.ins_srtcontroledl_xcp_groep, ins_srtcontrole_groep) ins_srtcontrole_groep,
|
||
(SELECT count(*)+1
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deelsrtcontrole_key < dc.ins_deelsrtcontrole_key
|
||
AND dc2.ins_deel_key = dc.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = dc.ins_srtcontrole_key
|
||
AND dc2.ins_scenario_key = dc.ins_scenario_key) uitvoer_x,
|
||
DECODE (dc.ins_deelsrtcontrole_status,
|
||
0, 'Ingepland',
|
||
2, 'In behandeling',
|
||
5, 'Afgemeld',
|
||
6, 'Voltooid') status,
|
||
COALESCE(dc.ins_deelsrtcontrole_datum, dc.ins_deelsrtcontrole_plandatum, tr.datum_inbehandeling) ins_deelsrtcontrole_datum,
|
||
CASE
|
||
WHEN tr.mjob_doorgeschoven IS NOT NULL
|
||
THEN
|
||
TO_CHAR (dc.ins_deelsrtcontrole_freezedate, 'yyyy')
|
||
ELSE
|
||
NULL
|
||
END mjob_doorgeschoven,
|
||
dc.ins_deelsrtcontrole_plandatum
|
||
uitvoerdatum_gepland,
|
||
tr.datum_inbehandeling
|
||
uitvoerdatum_inbehandeling,
|
||
dc.ins_deelsrtcontrole_datum
|
||
uitvoerdatum_gereed,
|
||
(SELECT CASE
|
||
WHEN cm.ins_controlemode_success = 1 THEN 'ja' ELSE 'nee'
|
||
END
|
||
FROM ins_controlemode cm
|
||
WHERE cm.ins_controlemode_key = dc.ins_controlemode_key)
|
||
succes,
|
||
CASE
|
||
WHEN dc.ins_deelsrtcontrole_status = 5 THEN 'ja'
|
||
WHEN dc.ins_deelsrtcontrole_status = 6 THEN 'nee'
|
||
ELSE ''
|
||
END
|
||
actie_vereist,
|
||
tr.datum_afgemeld
|
||
afmeld_datum, -- Afgemeld op (= gereed/voltooid met vervolgactie..)
|
||
tr.datum_verwerkt
|
||
verwerk_datum, -- Verwerkt op (= voltooid zonder vervolgactie / vervolgactie voltooid)
|
||
dc.ins_deelsrtcontrole_datum_org
|
||
uitvoerdatum_origineel,
|
||
CASE
|
||
WHEN dc.ins_deelsrtcontrole_plandatum IS NOT NULL
|
||
AND dc.ins_deelsrtcontrole_plandatum > dc.ins_deelsrtcontrole_datum_org THEN 'respijt'
|
||
ELSE ''
|
||
END NN_respijt,
|
||
CASE
|
||
WHEN dc.ins_deelsrtcontrole_status in (5,6)
|
||
AND COALESCE(dc.ins_deelsrtcontrole_plandatum, dc.ins_deelsrtcontrole_datum_org) < dc.ins_deelsrtcontrole_datum THEN 'Te laat'
|
||
WHEN dc.ins_deelsrtcontrole_status in (5,6)
|
||
AND COALESCE(dc.ins_deelsrtcontrole_plandatum, dc.ins_deelsrtcontrole_datum_org) >= dc.ins_deelsrtcontrole_datum THEN 'Op tijd'
|
||
ELSE ''
|
||
END NN_ins_deelsrtcontrole_status,
|
||
CASE
|
||
WHEN dc.ins_deelsrtcontrole_status in (5,6) THEN
|
||
dc.ins_deelsrtcontrole_datum - COALESCE(dcp.ins_deelsrtcontrole_datum, x.ins_srtcontroledl_xcp_startdat, d.ins_deel_aanmaak)
|
||
ELSE NULL
|
||
END NN_cycli_dagen,
|
||
COALESCE (COALESCE(ins_deelsrtcontrole_freezecost, ins_srtcontroledl_xcp_materia), sc.ins_srtcontrole_materiaal) srtcontrole_materiaal,
|
||
cm.ins_controlemode_oms,
|
||
cm.ins_controlemode_opmerking,
|
||
dc.ins_deelsrtcontrole_opmerking,
|
||
dc.prs_perslid_key,
|
||
pf.prs_perslid_naam_full,
|
||
cd.ins_discipline_omschrijving,
|
||
pd.prs_dienst_omschrijving,
|
||
(SELECT max(b.prs_bedrijf_key)
|
||
FROM prs_bedrijf b, prs_bedrijfdienstlocatie bdl
|
||
WHERE pd.prs_dienst_key = bdl.prs_dienst_key
|
||
AND bdl.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND ( bdl.alg_gebouw_key = d.alg_gebouw_key
|
||
OR bdl.alg_locatie_key = d.alg_locatie_key)) prs_bedrijf_key
|
||
FROM ins_deelsrtcontrole dc,
|
||
ins_v_deel_gegevens d,
|
||
ins_srtcontrole sc,
|
||
prs_dienst pd,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
ins_controlemode cm,
|
||
ins_srtcontroledl_xcp x,
|
||
prs_v_perslid_fullnames_all pf,
|
||
ctr_discipline cd,
|
||
ctr_disc_params cdp,
|
||
(SELECT
|
||
v.ins_deelsrtcontrole_key,
|
||
v.ins_deelsrtcontrole_key_vorige,
|
||
dcv.ins_deelsrtcontrole_datum,
|
||
dcv.ins_controlemode_key,
|
||
dcv.ins_deelsrtcontrole_status
|
||
FROM (SELECT dc.ins_deelsrtcontrole_key,
|
||
dc.ins_deel_key,
|
||
dc.ins_srtcontrole_key,
|
||
(SELECT MAX (dc2.ins_deelsrtcontrole_key)
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deelsrtcontrole_key < dc.ins_deelsrtcontrole_key
|
||
AND dc2.ins_deel_key = dc.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = dc.ins_srtcontrole_key
|
||
AND dc2.ins_scenario_key = dc.ins_scenario_key)
|
||
AS ins_deelsrtcontrole_key_vorige
|
||
FROM ins_deelsrtcontrole dc,
|
||
ins_srtcontroledl_xcp x,
|
||
ins_srtcontrole sc
|
||
WHERE dc.ins_deel_key = x.ins_deel_key
|
||
AND dc.ins_srtcontrole_key = x.ins_srtcontrole_key
|
||
AND x.ins_srtcontrole_key = sc.ins_srtcontrole_key) v,
|
||
ins_deelsrtcontrole dcv
|
||
WHERE v.ins_deelsrtcontrole_key_vorige = dcv.ins_deelsrtcontrole_key) dcp, -- dc_previous
|
||
(SELECT dc.ins_deelsrtcontrole_key,
|
||
(SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCBE'
|
||
AND fac_tracking_refkey = dc.ins_deelsrtcontrole_key) datum_inbehandeling,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCAF'
|
||
AND ft.fac_tracking_refkey = dc.ins_deelsrtcontrole_key) datum_afgemeld,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCVE'
|
||
AND ft.fac_tracking_refkey =dc.ins_deelsrtcontrole_key) datum_verwerkt,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCUP'
|
||
AND instr(lower(ft.fac_tracking_oms),'freeze datum:')>0
|
||
AND ft.fac_tracking_refkey =dc.ins_deelsrtcontrole_key) mjob_doorgeschoven
|
||
FROM ins_deelsrtcontrole dc ) tr
|
||
WHERE dc.ins_deel_key = d.ins_deel_key
|
||
AND dc.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND dc.ins_controlemode_key = cm.ins_controlemode_key(+)
|
||
AND dc.prs_perslid_key = pf.prs_perslid_key(+)
|
||
AND sc.ctr_discipline_key = cd.ins_discipline_key
|
||
AND cd.ins_discipline_key = cdp.ctr_ins_discipline_key
|
||
AND x.ins_srtcontrole_key = sc.ins_srtcontrole_key(+)
|
||
AND x.ins_deel_key = d.ins_deel_key(+)
|
||
AND sc.prs_dienst_key = pd.prs_dienst_key(+)
|
||
AND d.alg_locatie_key = l.alg_locatie_key AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND dc.ins_deelsrtcontrole_key = dcp.ins_deelsrtcontrole_key (+)
|
||
AND dc.ins_deelsrtcontrole_key = tr.ins_deelsrtcontrole_key (+)
|
||
UNION ALL
|
||
-- Controledefinities ook opmenen. Dus zonder dat er een resultaat record is.
|
||
-- Controles met een periode van 0 worden uitgesloten omdat dit geen daadwerkelijk ingeplande of in te plannen controles zijn.
|
||
SELECT
|
||
cd.ins_discipline_omschrijving,
|
||
CASE
|
||
WHEN cdp.ctr_disc_params_controle_type = 1
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_insp')
|
||
WHEN cdp.ctr_disc_params_controle_type = 2
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_repl')
|
||
WHEN cdp.ctr_disc_params_controle_type = 3
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_cert')
|
||
END
|
||
taaksoort,
|
||
CASE
|
||
WHEN sc.ins_srtcontrole_mode = 0
|
||
THEN
|
||
lcl.l ('lcl_ins_srtcontrole_moment')
|
||
ELSE
|
||
lcl.l ('lcl_ins_srtcontrole_interval')
|
||
END
|
||
taak_modus,
|
||
cdp.ctr_disc_params_ismjob ismjob,
|
||
sc.ins_srtcontrole_options taakopties,
|
||
(SELECT COUNT (dc2.ins_deelsrtcontrole_key)
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deel_key = xcp.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = xcp.ins_srtcontrole_key)
|
||
uitvoer_aantal,
|
||
NULL ins_deelsrtcontrole_key,
|
||
(SELECT MAX (dc2.ins_deelsrtcontrole_key)
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deel_key = xcp.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = xcp.ins_srtcontrole_key
|
||
)
|
||
deelsrtcontrole_key_vorig,
|
||
xcp.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
sc.ins_srtcontrole_key,
|
||
xcp.ins_srtcontrole_info,
|
||
ins_srtcontrole_niveau,
|
||
xcp.ins_srtcontrole_omschrijving,
|
||
xcp.ins_srtcontrole_opmerking,
|
||
xcp.ins_srtcontrole_periode,
|
||
DECODE (xcp.ins_srtcontrole_eenheid,
|
||
0, 'Uurlijks',
|
||
1, 'Dagelijks',
|
||
2, 'Wekelijks',
|
||
3, 'Maandelijks',
|
||
4, 'Jaarlijks',
|
||
'Onbekend')
|
||
ins_srtcontrole_eenheid,
|
||
xcp.ins_srtcontrole_level, -- prioriteit
|
||
xcp.ins_srtcontroledl_xcp_perc,
|
||
xcp.ins_srtcontroledl_xcp_startdat,
|
||
xcp.ins_srtcontroledl_xcp_eind,
|
||
xcp.ins_srtcontroledl_xcp_groep,
|
||
0 uitvoer_x,
|
||
NULL status,
|
||
CASE WHEN v.ins_deelsrtcontrole_key IS NULL THEN
|
||
COALESCE (
|
||
ins_srtcontroledl_xcp_startdat,
|
||
fac.nextcyclusdatedeel (xcp.ins_deel_key,
|
||
xcp.ins_srtcontrole_key,
|
||
1))
|
||
WHEN v.ins_deelsrtcontrole_key IS NOT NULL AND v.ins_controlemode_success = 0 AND cdp.ctr_disc_params_ismjob = 1 THEN
|
||
-- Als mjob taak afhandeling niet succesvol heeft (= niet uitgevoerd), dan wordt deze in Facilitor voor nieuwe freeze-jaar opgenomen/voorgesteld. Nemen we ook zo op in deze dwh-view
|
||
(SELECT TO_DATE ('01-01-' || fac_setting_pvalue, 'dd-MM-yyyy') FROM fac_setting WHERE fac_setting_name = 'mjb_freeze_year')
|
||
ELSE
|
||
fac.nextcyclusdate (v.datum_uitvoer, xcp.ins_srtcontrole_mode, xcp.ins_srtcontrole_eenheid, xcp.ins_srtcontrole_periode, xcp.ins_srtcontrole_bits,1,cdp.ctr_disc_params_ismjob)
|
||
END ins_deelsrtcontrole_datum,
|
||
NULL
|
||
mjob_doorgeschoven,
|
||
NULL
|
||
uitvoerdatum_gepland,
|
||
NULL
|
||
uitvoerdatum_inbehandeling,
|
||
NULL
|
||
uitvoerdatum_gereed,
|
||
NULL
|
||
succes,
|
||
NULL
|
||
actie_vereist,
|
||
NULL
|
||
afmeld_datum,
|
||
NULL
|
||
verwerk_datum,
|
||
NULL
|
||
uitvoerdatum_origineel,
|
||
NULL
|
||
respijt,
|
||
CASE WHEN v.ins_deelsrtcontrole_key IS NULL THEN
|
||
DECODE (
|
||
SIGN(
|
||
COALESCE (ins_srtcontroledl_xcp_startdat, fac.nextcyclusdatedeel (xcp.ins_deel_key, xcp.ins_srtcontrole_key, 1))
|
||
- SYSDATE),
|
||
-1,
|
||
'Te laat',
|
||
'')
|
||
WHEN v.ins_deelsrtcontrole_key IS NOT NULL AND v.ins_controlemode_success = 0 AND cdp.ctr_disc_params_ismjob = 1 THEN
|
||
DECODE (
|
||
SIGN(
|
||
(SELECT TO_DATE ('01-01-' || fac_setting_pvalue, 'dd-MM-yyyy') FROM fac_setting WHERE fac_setting_name = 'mjb_freeze_year')
|
||
- SYSDATE),
|
||
-1,
|
||
'Te laat',
|
||
'')
|
||
ELSE
|
||
DECODE (
|
||
SIGN( (fac.nextcyclusdate (v.datum_uitvoer, xcp.ins_srtcontrole_mode, xcp.ins_srtcontrole_eenheid, xcp.ins_srtcontrole_periode, xcp.ins_srtcontrole_bits,1,cdp.ctr_disc_params_ismjob))
|
||
- SYSDATE),
|
||
-1,
|
||
'Te laat',
|
||
'')
|
||
END ins_deelsrtcontrole_status,
|
||
NULL cycli_dagen,
|
||
xcp.ins_srtcontrole_materiaal,
|
||
NULL ins_controlemode_oms,
|
||
NULL ins_controlemode_opmerking,
|
||
NULL ins_deelsrtcontrole_opmerking,
|
||
NULL prs_perslid_key,
|
||
NULL prs_perslid_naam_full,
|
||
cd.ins_discipline_omschrijving,
|
||
pd.prs_dienst_omschrijving,
|
||
(SELECT max(b.prs_bedrijf_key)
|
||
FROM prs_bedrijf b, prs_bedrijfdienstlocatie bdl
|
||
WHERE pd.prs_dienst_key = bdl.prs_dienst_key
|
||
AND bdl.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND ( bdl.alg_gebouw_key = d.alg_gebouw_key
|
||
OR bdl.alg_locatie_key = d.alg_locatie_key)) prs_bedrijf_key
|
||
FROM ins_v_defined_inspect_xcp xcp,
|
||
ins_v_deel_gegevens d,
|
||
ins_srtcontrole sc,
|
||
prs_dienst pd,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
ctr_discipline cd,
|
||
ctr_disc_params cdp,
|
||
(SELECT dc.ins_deelsrtcontrole_key,
|
||
dc.ins_deel_key,
|
||
dc.ins_srtcontrole_key,
|
||
dc.ins_controlemode_key,
|
||
cm.ins_controlemode_success,
|
||
dc.ins_deelsrtcontrole_freezedate,
|
||
COALESCE(dc.ins_deelsrtcontrole_datum,
|
||
DECODE(xcp.ctr_ismjob, 1, COALESCE(dc.ins_deelsrtcontrole_freezedate, dc.ins_deelsrtcontrole_plandatum),
|
||
COALESCE(dc.ins_deelsrtcontrole_plandatum, tr.datum_inbehandeling)
|
||
)) datum_uitvoer
|
||
FROM ins_deelsrtcontrole dc, ins_v_defined_inspect_xcp xcp, ins_controlemode cm,
|
||
(SELECT dc.ins_deelsrtcontrole_key,
|
||
(SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSCBE'
|
||
AND fac_tracking_refkey = dc.ins_deelsrtcontrole_key) datum_inbehandeling
|
||
FROM ins_deelsrtcontrole dc ) tr
|
||
WHERE dc.ins_deelsrtcontrole_key = (SELECT max(ins_deelsrtcontrole_key)
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deel_key = dc.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = dc.ins_srtcontrole_key)
|
||
AND dc.ins_srtcontrole_key = xcp.ins_srtcontrole_key AND dc.ins_deel_key = xcp.ins_deel_key
|
||
AND dc.ins_deelsrtcontrole_key = tr.ins_deelsrtcontrole_key
|
||
AND dc.ins_controlemode_key = cm.ins_controlemode_key(+)
|
||
) v
|
||
WHERE xcp.ins_deel_key = d.ins_deel_key
|
||
AND xcp.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND xcp.ins_srtcontrole_periode <> 0
|
||
AND sc.ctr_discipline_key = cd.ins_discipline_key
|
||
AND cd.ins_discipline_key = cdp.ctr_ins_discipline_key
|
||
AND sc.prs_dienst_key = pd.prs_dienst_key(+)
|
||
AND d.alg_locatie_key = l.alg_locatie_key AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND xcp.ins_deel_key = v.ins_deel_key (+) AND xcp.ins_srtcontrole_key = v.ins_srtcontrole_key (+) ;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_inspectie
|
||
(
|
||
deelsrtcontrole_key,
|
||
deel_key,
|
||
deel_omschrijving,
|
||
srtcontrole_info,
|
||
srtcontrole_niveau,
|
||
srtcontrole_omschrijving,
|
||
srtcontrole_opmerking,
|
||
srtcontrole_periode,
|
||
srtcontrole_eenheid,
|
||
srtcontrole_level, -- prioriteit
|
||
srtcontrole_percentage,
|
||
srtcontrole_start,
|
||
srtcontrole_eind,
|
||
srtcontrole_groep,
|
||
deelsrtcontrole_datum,
|
||
deelsrtcontrole_gepland,
|
||
deelsrtcontrole_status,
|
||
deelsrtcontrole_status_next,
|
||
srtcontrole_materiaal,
|
||
controlemode_omschrijving,
|
||
controlemode_opmerking,
|
||
deelsrtcontrole_opmerking,
|
||
prs_perslid_key,
|
||
gecontroleerd_door,
|
||
taak_categorie,
|
||
dienst,
|
||
prs_bedrijf_key,
|
||
status,
|
||
uitvoerdatum
|
||
)
|
||
AS
|
||
SELECT dc.ins_deelsrtcontrole_key,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
sc.ins_srtcontrole_info,
|
||
sc.ins_srtcontrole_niveau,
|
||
sc.ins_srtcontrole_omschrijving,
|
||
COALESCE (x.ins_srtcontroledl_xcp_opmerk, sc.ins_srtcontrole_opmerking) ins_srtcontrole_opmerking,
|
||
COALESCE (x.ins_srtcontroledl_xcp_periode, sc.ins_srtcontrole_periode) ins_srtcontrole_periode,
|
||
DECODE (
|
||
COALESCE (x.ins_srtcontroledl_xcp_eenheid, sc.ins_srtcontrole_eenheid),
|
||
0,
|
||
'Uurlijks',
|
||
1,
|
||
'Dagelijks',
|
||
2,
|
||
'Wekelijks',
|
||
3,
|
||
'Maandelijks',
|
||
4,
|
||
'Jaarlijks',
|
||
'Onbekend')
|
||
ins_srtcontrole_eenheid,
|
||
sc.ins_srtcontrole_level, -- prioriteit
|
||
COALESCE (x.ins_srtcontroledl_xcp_perc, sc.ins_srtcontrole_percentage) ins_srtcontrole_percentage,
|
||
x.ins_srtcontroledl_xcp_startdat,
|
||
COALESCE (x.ins_srtcontroledl_xcp_eind, ins_srtcontrole_eind) ins_srtcontrole_eind,
|
||
COALESCE (x.ins_srtcontroledl_xcp_groep, ins_srtcontrole_groep) ins_srtcontrole_groep,
|
||
ins_deelsrtcontrole_datum,
|
||
(SELECT MAX (dc2.ins_deelsrtcontrole_datum)
|
||
+ sc.ins_srtcontrole_periode
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deelsrtcontrole_datum <
|
||
dc.ins_deelsrtcontrole_datum
|
||
AND dc2.ins_deel_key = dc.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = dc.ins_srtcontrole_key
|
||
AND dc2.ins_controlemode_key = dc.ins_controlemode_key)
|
||
ins_deelsrtcontrole_gepland,
|
||
(SELECT DECODE (
|
||
SIGN( MAX (dc2.ins_deelsrtcontrole_datum)
|
||
+ sc.ins_srtcontrole_periode
|
||
- dc.ins_deelsrtcontrole_datum),
|
||
-1,
|
||
'Te laat',
|
||
'Op tijd')
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deelsrtcontrole_datum <
|
||
dc.ins_deelsrtcontrole_datum
|
||
AND dc2.ins_deel_key = dc.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = dc.ins_srtcontrole_key
|
||
AND dc2.ins_controlemode_key = dc.ins_controlemode_key)
|
||
ins_deelsrtcontrole_status,
|
||
(SELECT DECODE (
|
||
COUNT ( * ),
|
||
0,
|
||
DECODE (
|
||
SIGN( (dc.ins_deelsrtcontrole_datum
|
||
+ sc.ins_srtcontrole_periode)
|
||
- SYSDATE),
|
||
-1,
|
||
'Te laat',
|
||
''))
|
||
status_fut
|
||
FROM ins_deelsrtcontrole dc2
|
||
WHERE dc2.ins_deelsrtcontrole_datum >
|
||
dc.ins_deelsrtcontrole_datum
|
||
AND dc2.ins_deel_key = dc.ins_deel_key
|
||
AND dc2.ins_srtcontrole_key = dc.ins_srtcontrole_key
|
||
AND dc2.ins_controlemode_key = dc.ins_controlemode_key)
|
||
ins_deelsrtcontrole_next,
|
||
COALESCE (COALESCE(ins_deelsrtcontrole_freezecost, ins_srtcontroledl_xcp_materia), sc.ins_srtcontrole_materiaal) srtcontrole_materiaal,
|
||
cm.ins_controlemode_oms,
|
||
cm.ins_controlemode_opmerking,
|
||
dc.ins_deelsrtcontrole_opmerking,
|
||
dc.prs_perslid_key,
|
||
pf.prs_perslid_naam_full,
|
||
cd.ins_discipline_omschrijving,
|
||
pd.prs_dienst_omschrijving,
|
||
(SELECT max(b.prs_bedrijf_key)
|
||
FROM prs_bedrijf b, prs_bedrijfdienstlocatie bdl
|
||
WHERE pd.prs_dienst_key = bdl.prs_dienst_key
|
||
AND bdl.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND ( bdl.alg_gebouw_key = d.alg_gebouw_key
|
||
OR bdl.alg_locatie_key = d.alg_locatie_key)) prs_bedrijf_key,
|
||
DECODE (dc.ins_deelsrtcontrole_status,
|
||
0, 'Ingepland',
|
||
2, 'In behandeling',
|
||
5, 'Afgemeld',
|
||
6, 'Voltooid') status,
|
||
dc.ins_deelsrtcontrole_datum
|
||
FROM ins_deelsrtcontrole dc,
|
||
ins_v_deel_gegevens d,
|
||
ins_srtcontrole sc,
|
||
prs_dienst pd,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
ins_controlemode cm,
|
||
ins_srtcontroledl_xcp x,
|
||
prs_v_perslid_fullnames_all pf,
|
||
ctr_discipline cd
|
||
WHERE dc.ins_deel_key = d.ins_deel_key
|
||
AND dc.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND dc.ins_controlemode_key = cm.ins_controlemode_key(+)
|
||
AND dc.prs_perslid_key = pf.prs_perslid_key(+)
|
||
AND sc.ctr_discipline_key = cd.ins_discipline_key
|
||
AND x.ins_srtcontrole_key = sc.ins_srtcontrole_key(+)
|
||
AND x.ins_deel_key = d.ins_deel_key(+)
|
||
AND sc.prs_dienst_key = pd.prs_dienst_key(+)
|
||
AND d.alg_locatie_key = l.alg_locatie_key AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
UNION ALL
|
||
-- Controledefinities ook opmenen. Dus zonder dat er een resultaat record is.
|
||
-- Controles met een periode van 0 worden uitgesloten omdat dit geen daadwerkelijk ingeplande of in te plannen controles zijn.
|
||
SELECT NULL ins_deelsrtcontrole_key,
|
||
xcp.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
xcp.ins_srtcontrole_info,
|
||
ins_srtcontrole_niveau,
|
||
xcp.ins_srtcontrole_omschrijving,
|
||
xcp.ins_srtcontrole_opmerking,
|
||
xcp.ins_srtcontrole_periode,
|
||
DECODE (xcp.ins_srtcontrole_eenheid,
|
||
0, 'Uurlijks',
|
||
1, 'Dagelijks',
|
||
2, 'Wekelijks',
|
||
3, 'Maandelijks',
|
||
4, 'Jaarlijks',
|
||
'Onbekend')
|
||
ins_srtcontrole_eenheid,
|
||
xcp.ins_srtcontrole_level, -- prioriteit
|
||
xcp.ins_srtcontroledl_xcp_perc,
|
||
xcp.ins_srtcontroledl_xcp_startdat,
|
||
xcp.ins_srtcontroledl_xcp_eind,
|
||
xcp.ins_srtcontroledl_xcp_groep,
|
||
DECODE (
|
||
(SELECT COUNT ( * )
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE dsc.ins_deel_key = d.ins_deel_key
|
||
AND dsc.ins_srtcontrole_key = xcp.ins_srtcontrole_key),
|
||
0,
|
||
COALESCE (
|
||
ins_srtcontroledl_xcp_startdat,
|
||
fac.nextcyclusdatedeel (xcp.ins_deel_key,
|
||
xcp.ins_srtcontrole_key,
|
||
1)),
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
xcp.ins_srtcontrole_key,
|
||
1))
|
||
ins_deelsrtcontrole_datum,
|
||
NULL ins_deelsrtcontrole_gepland,
|
||
DECODE (
|
||
SIGN(DECODE (
|
||
(SELECT COUNT ( * )
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE dsc.ins_deel_key = d.ins_deel_key
|
||
AND dsc.ins_srtcontrole_key =
|
||
xcp.ins_srtcontrole_key),
|
||
0,
|
||
COALESCE (
|
||
ins_srtcontroledl_xcp_startdat,
|
||
fac.nextcyclusdatedeel (xcp.ins_deel_key,
|
||
xcp.ins_srtcontrole_key,
|
||
1)),
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
xcp.ins_srtcontrole_key,
|
||
1))
|
||
- SYSDATE),
|
||
-1,
|
||
'Te laat',
|
||
'Op tijd')
|
||
ins_deelsrtcontrole_status,
|
||
NULL ins_deelsrtcontrole_next,
|
||
xcp.ins_srtcontrole_materiaal,
|
||
NULL ins_controlemode_oms,
|
||
NULL ins_controlemode_opmerking,
|
||
NULL ins_deelsrtcontrole_opmerking,
|
||
NULL prs_perslid_key,
|
||
NULL prs_perslid_naam_full,
|
||
cd.ins_discipline_omschrijving,
|
||
pd.prs_dienst_omschrijving,
|
||
(SELECT max(b.prs_bedrijf_key)
|
||
FROM prs_bedrijf b, prs_bedrijfdienstlocatie bdl
|
||
WHERE pd.prs_dienst_key = bdl.prs_dienst_key
|
||
AND bdl.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND ( bdl.alg_gebouw_key = d.alg_gebouw_key
|
||
OR bdl.alg_locatie_key = d.alg_locatie_key)) prs_bedrijf_key,
|
||
NULL status,
|
||
NULL ins_deelsrtcontrole_datum
|
||
FROM ins_v_defined_inspect_xcp xcp,
|
||
ins_v_deel_gegevens d,
|
||
ins_srtcontrole sc,
|
||
prs_dienst pd,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
ctr_discipline cd
|
||
WHERE xcp.ins_deel_key = d.ins_deel_key
|
||
AND xcp.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND xcp.ins_srtcontrole_periode <> 0
|
||
AND sc.ctr_discipline_key = cd.ins_discipline_key
|
||
AND sc.prs_dienst_key = pd.prs_dienst_key(+)
|
||
AND d.alg_locatie_key = l.alg_locatie_key AND d.alg_gebouw_key = g.alg_gebouw_key ;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_INS_OBJECT
|
||
-------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_ins_object
|
||
(
|
||
ins_deel_key,
|
||
identificatie,
|
||
beschrijving,
|
||
discipline_omschrijving,
|
||
groep_omschrijving,
|
||
objectsoort_omschrijving,
|
||
objectsoort_code,
|
||
registratiedatum,
|
||
vervaldatum,
|
||
koppel_type,
|
||
plaats_eigenaar,
|
||
regio_key,
|
||
district_key,
|
||
locatie_key,
|
||
gebouw_key,
|
||
terreinsector_key,
|
||
verdieping_key,
|
||
ruimte_key,
|
||
werkplek_key,
|
||
afdeling_key,
|
||
perslid_key,
|
||
beheerder,
|
||
actief,
|
||
hoeveelheid,
|
||
conditie,
|
||
prioriteit
|
||
)
|
||
AS
|
||
SELECT ins_deel_key,
|
||
ins_deel_omschrijving identificatie,
|
||
ins_deel_opmerking beschrijving,
|
||
ins_discipline_omschrijving discipline_omschrijving,
|
||
ins_srtgroep_omschrijving groep_omschrijving,
|
||
ins_srtdeel_omschrijving objectsoort_omschrijving,
|
||
ins_srtdeel_code objectsoort_code,
|
||
ins_deel_aanmaak registratiedatum,
|
||
ins_deel_vervaldatum vervaldatum,
|
||
'Afdeling' koppel_type,
|
||
(SELECT d.prs_afdeling_omschrijving
|
||
FROM prs_v_afdeling d
|
||
WHERE prs_afdeling_key =
|
||
COALESCE (ins_alg_ruimte_key_org, ins_alg_ruimte_key))
|
||
plaats_eigenaar,
|
||
NULL alg_regio_key,
|
||
NULL alg_district_key,
|
||
NULL alg_locatie_key,
|
||
NULL alg_gebouw_key,
|
||
NULL terreinsector_key,
|
||
NULL alg_verdieping_key,
|
||
NULL alg_ruimte_key,
|
||
NULL prs_werkplek_key,
|
||
COALESCE (ins_alg_ruimte_key_org, ins_alg_ruimte_key) prs_afdeling_key,
|
||
NULL prs_perslid_key,
|
||
pf1.prs_perslid_naam_full beheerder,
|
||
ins_deel_actief,
|
||
ins_deel_aantal,
|
||
ins_deel_mjb_score1,
|
||
ins_deel_mjb_score2
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_v_aanwezigsrtdeel srt,
|
||
ins_v_aanwezigsrtgroep sg,
|
||
ins_v_aanwezigdiscipline disc,
|
||
prs_v_perslid_fullnames_all pf1,
|
||
prs_v_afdeling_boom pb
|
||
WHERE srt.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sg.ins_srtgroep_key = srt.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = disc.ins_discipline_key
|
||
AND prs_perslid_key_beh = pf1.prs_perslid_key(+)
|
||
AND d.ins_alg_ruimte_key = pb.prs_afdeling_key
|
||
AND d.ins_deel_module = 'INS'
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND COALESCE (ins_alg_ruimte_type_org, ins_alg_ruimte_type) = 'A'
|
||
UNION
|
||
SELECT ins_deel_key,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_deel_aanmaak,
|
||
ins_deel_vervaldatum,
|
||
'Persoon',
|
||
COALESCE (pf2.prs_perslid_naam_full, 'onbekend') eigenaar,
|
||
NULL alg_regio_key,
|
||
NULL alg_district_key,
|
||
NULL alg_locatie_key,
|
||
NULL alg_gebouw_key,
|
||
NULL terreinsector_key,
|
||
NULL alg_verdieping_key,
|
||
NULL alg_ruimte_key,
|
||
NULL prs_werkplek_key,
|
||
NULL prs_afdeling_key,
|
||
COALESCE (ins_alg_ruimte_key_org, ins_alg_ruimte_key) prs_perslid_key,
|
||
pf1.prs_perslid_naam_full,
|
||
ins_deel_actief,
|
||
ins_deel_aantal,
|
||
ins_deel_mjb_score1,
|
||
ins_deel_mjb_score2
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_v_aanwezigsrtdeel srt,
|
||
ins_v_aanwezigsrtgroep sg,
|
||
ins_v_aanwezigdiscipline disc,
|
||
prs_v_perslid_fullnames_all pf1,
|
||
prs_v_perslid_fullnames_all pf2
|
||
WHERE srt.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sg.ins_srtgroep_key = srt.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = disc.ins_discipline_key
|
||
AND prs_perslid_key_beh = pf1.prs_perslid_key(+)
|
||
AND d.ins_deel_module = 'INS'
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND COALESCE (ins_alg_ruimte_type_org, ins_alg_ruimte_type) = 'P'
|
||
AND pf2.prs_perslid_key(+) =
|
||
COALESCE (ins_alg_ruimte_key_org, ins_alg_ruimte_key)
|
||
UNION
|
||
SELECT ins_deel_key,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_deel_aanmaak,
|
||
ins_deel_vervaldatum,
|
||
DECODE (o.alg_onroerendgoed_type,
|
||
'R',
|
||
'Ruimte',
|
||
'T',
|
||
'Terrein',
|
||
'W',
|
||
'Werkplek'),
|
||
o.alg_plaatsaanduiding || ' ('
|
||
|| DECODE (
|
||
o.alg_onroerendgoed_type,
|
||
'R',
|
||
(SELECT r.alg_ruimte_omschrijving
|
||
FROM alg_ruimte r
|
||
WHERE r.alg_ruimte_key = d.ins_alg_ruimte_key),
|
||
'T',
|
||
(SELECT t.alg_terreinsector_naam
|
||
FROM alg_terreinsector t
|
||
WHERE t.alg_terreinsector_key = d.ins_alg_ruimte_key),
|
||
'W',
|
||
(SELECT r.alg_ruimte_omschrijving
|
||
FROM alg_ruimte r, prs_werkplek w
|
||
WHERE r.alg_ruimte_key = w.prs_alg_ruimte_key
|
||
AND w.prs_werkplek_key = d.ins_alg_ruimte_key)
|
||
)
|
||
|| ')'
|
||
eigenaar,
|
||
di.alg_regio_key alg_regio_key,
|
||
l.alg_district_key alg_district_key,
|
||
o.alg_locatie_key alg_locatie_key,
|
||
o.alg_gebouw_key alg_gebouw_key,
|
||
o.alg_terreinsector_key terreinsector_key,
|
||
o.alg_verdieping_key alg_verdieping_key,
|
||
o.alg_ruimte_key alg_ruimte_key,
|
||
o.prs_werkplek_key alg_werkplek_key,
|
||
NULL prs_afdeling_key,
|
||
NULL prs_perslid_key,
|
||
pf1.prs_perslid_naam_full,
|
||
ins_deel_actief,
|
||
ins_deel_aantal,
|
||
ins_deel_mjb_score1,
|
||
ins_deel_mjb_score2
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_v_aanwezigsrtdeel srt,
|
||
ins_v_aanwezigsrtgroep sg,
|
||
ins_v_aanwezigdiscipline disc,
|
||
prs_v_perslid_fullnames_all pf1,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l,
|
||
alg_district di
|
||
WHERE srt.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sg.ins_srtgroep_key = srt.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = disc.ins_discipline_key
|
||
AND prs_perslid_key_beh = pf1.prs_perslid_key(+)
|
||
AND d.ins_deel_module = 'INS'
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND COALESCE (ins_alg_ruimte_type_org, ins_alg_ruimte_type) IN
|
||
('T', 'R', 'W')
|
||
AND o.alg_onroerendgoed_keys =
|
||
COALESCE (ins_alg_ruimte_key_org, ins_alg_ruimte_key)
|
||
AND o.alg_onroerendgoed_type =
|
||
COALESCE (ins_alg_ruimte_type_org, ins_alg_ruimte_type)
|
||
AND o.alg_locatie_key = d.ins_alg_locatie_key
|
||
AND o.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_INS_KENMERK_OBJECT
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_object
|
||
(
|
||
deel_key,
|
||
ins_kenmerk_omschrijving,
|
||
ins_kenmerk_waarde
|
||
)
|
||
AS
|
||
SELECT ins_deel_key deel_key,
|
||
srt.ins_srtkenmerk_omschrijving kenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (srt.ins_srtkenmerk_kenmerktype,
|
||
srt.fac_kenmerkdomein_key,
|
||
kd.ins_kenmerkdeel_waarde)
|
||
kenmerk_waarde
|
||
FROM ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk srt
|
||
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND srt.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND ins_kenmerkdeel_verwijder IS NULL;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_KENMERK_INSPECTIE
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_kenmerk_inspectie
|
||
(
|
||
deelsrtcontrole_key,
|
||
ins_kenmerk_omschrijving,
|
||
ins_kenmerk_waarde
|
||
)
|
||
AS
|
||
SELECT ins_deelsrtcontrole_key deelsrtcontrole_key,
|
||
srt.ins_srtkenmerk_omschrijving kenmerk_omschrijving,
|
||
aaxx_get_kenmerkwaarde (srt.ins_srtkenmerk_kenmerktype,
|
||
srt.fac_kenmerkdomein_key,
|
||
kds.ins_kmdeelsrtcontr_waarde)
|
||
kenmerk_waarde
|
||
FROM ins_kmdeelsrtcontr kds, ins_kenmerk k, ins_srtkenmerk srt
|
||
WHERE kds.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND srt.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND ins_kmdeelsrtcontr_verwijder IS NULL;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_UREN
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_uren
|
||
(
|
||
mld_opdr_id,
|
||
prs_perslid_key,
|
||
datum,
|
||
uren_besteed,
|
||
uren_opmerking,
|
||
uren_status
|
||
)
|
||
AS
|
||
SELECT ug.mld_melding_key || '/' || ug.mld_opdr_bedrijfopdr_volgnr,
|
||
ug.prs_perslid_key,
|
||
ug.mld_opdr_uren_datum,
|
||
ug.mld_opdr_uren_besteed,
|
||
ug.mld_opdr_uren_opmerking,
|
||
REPLACE(ug.uren_status_tekst, '&'||'nbsp;', ' ') uren_status_tekst
|
||
FROM aaxx_v_exact_uren_gegevens ug;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_UREN_IMPROD
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_uren_improd
|
||
(
|
||
prs_perslid_key,
|
||
code_improductief,
|
||
omschr_improductief,
|
||
datum,
|
||
uren_besteed,
|
||
uren_opmerking,
|
||
uren_status
|
||
)
|
||
AS
|
||
SELECT ou.prs_perslid_key,
|
||
io.mld_impropdr_code,
|
||
io.mld_impropdr_omschrijving,
|
||
ou.mld_opdr_uren_datum,
|
||
ou.mld_opdr_uren_besteed,
|
||
ou.mld_opdr_uren_opmerking,
|
||
REPLACE(lx.fac_locale_xsl_tekst, '&'||'nbsp;', ' ') fac_locale_xsl_tekst
|
||
FROM mld_opdr_uren ou,
|
||
mld_impropdr io,
|
||
(SELECT *
|
||
FROM fac_locale_xsl
|
||
WHERE fac_locale_xsl_lang = 'NL') lx
|
||
WHERE ou.mld_impropdr_key = io.mld_impropdr_key
|
||
AND lx.fac_locale_xsl_label =
|
||
'lcl_mld_uren_status_' || ou.mld_opdr_uren_status;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- DATAWAREHOUSE - DWH_TRACKING
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_tracking
|
||
AS
|
||
SELECT t.fac_tracking_refkey ref_key,
|
||
sn.fac_srtnotificatie_xmlnode soort,
|
||
t.fac_tracking_datum datum,
|
||
sn.fac_srtnotificatie_code actiecode,
|
||
t.fac_tracking_oms omschrijving,
|
||
t.prs_perslid_key prs_perslid_key
|
||
FROM fac_tracking t,
|
||
fac_srtnotificatie sn
|
||
WHERE sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode IS NOT NULL;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- DATAWAREHOUSE - DWH_FAQ
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_faq
|
||
AS
|
||
SELECT f.fac_faq_key,
|
||
(SELECT fac_version_cust FROM fac_version)
|
||
fac_version_cust,
|
||
'https://' || LOWER( (SELECT fac_version_cust FROM fac_version)) || '.facilitor.nl/appl/mld/mld_melding.asp?mld_defaultstdmelding=' || std.mld_stdmelding_key ||chr(38) || 'role=fe' ||chr(38) || 'sso=HEYDAY' link,
|
||
'https://' || LOWER( (SELECT fac_version_cust FROM fac_version)) || '.facilitor.nl/appl/fac/fac_faq.asp?faq_key=' || f.fac_faq_key ||chr(38) || 'role=bo' ||chr(38) || 'sso=HEYDAY' faq_link,
|
||
fac_faq_question,
|
||
fac_faq_answer,
|
||
f.fac_faq_source,
|
||
f.fac_faq_datum,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| '-'
|
||
|| d.ins_discipline_omschrijving
|
||
ins_discipline_omschrijving,
|
||
std.mld_stdmelding_key,
|
||
std.mld_stdmelding_omschrijving,
|
||
DECODE (alg_type, NULL, 'Locatie', 'G', 'Gebouw', '')
|
||
alg_scope,
|
||
aogg.alg_onroerendgoed_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_code,
|
||
COALESCE (aogg.alg_gebouw_naam, aogg.alg_terreinsector_naam)
|
||
alg_gebouwterrein_naam,
|
||
COALESCE (aogg.alg_gebouw_code, aogg.alg_terreinsector_code)
|
||
alg_gebouwterrein_code,
|
||
aogg.alg_verdieping_code,
|
||
aogg.alg_ruimte_nr,
|
||
DECODE (f.fac_faq_level,
|
||
1, 'Zelfservice',
|
||
2, 'Professionals',
|
||
3, 'Zelfservice en Professionals')
|
||
fac_faq_level,
|
||
fac_faq_hint,
|
||
fac_faq_url,
|
||
pf.prs_perslid_naam_full
|
||
prs_perslid_key_mut
|
||
FROM fac_faq f,
|
||
mld_stdmeldingfaq s,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd,
|
||
alg_algfaq a,
|
||
alg_v_onroerendgoed_gegevens aogg,
|
||
alg_locatie l,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE f.fac_faq_key = s.fac_faq_key
|
||
AND s.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 a.fac_faq_key = f.fac_faq_key
|
||
AND a.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND a.alg_onroerendgoed_keys = aogg.alg_onroerendgoed_keys(+)
|
||
AND f.prs_perslid_key = pf.prs_perslid_key(+);
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- DATAWAREHOUSE - DWH_FAQ2 Kennisbankitems per vakgroepen en locaties
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW AAXX_V_DWH_FAQ2
|
||
(
|
||
KENNISBANKSLEUTEL,
|
||
VRAAG,
|
||
ANTWOORD,
|
||
BRON,
|
||
DATUM,
|
||
URL,
|
||
LAATS_GEWIJZIGD,
|
||
LOCATIE_SCOPE,
|
||
ONTROERENDGOED_OMSCHR,
|
||
LOCATIE,
|
||
LOCATIE_CODE,
|
||
GEBOUW_NAAM,
|
||
TERREIN_CODE,
|
||
VEDRIEPING_CODE,
|
||
RUIMTE_NR,
|
||
KENNISBANK_NIVEAU,
|
||
KENNISBANK_HINT,
|
||
KENNISBANK_URL,
|
||
VAKGROEP
|
||
)
|
||
AS
|
||
SELECT f.fac_faq_key,
|
||
f.fac_faq_question,
|
||
f.fac_faq_answer,
|
||
f.fac_faq_source,
|
||
f.fac_faq_datum,
|
||
'https://'
|
||
|| LOWER ((SELECT fac_version_cust FROM fac_version))
|
||
|| '.facilitor.nl/appl/fac/fac_faq.asp?faq_key='
|
||
|| f.fac_faq_key
|
||
|| CHR (38)
|
||
|| 'role=bo'
|
||
|| CHR (38)
|
||
|| 'sso=1',
|
||
pf.PRS_PERSLID_NAAM_FULL,
|
||
DECODE (alg_type, NULL, 'Locatie', 'G', 'Gebouw', '')
|
||
alg_scope,
|
||
aogg.alg_onroerendgoed_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_code,
|
||
COALESCE (aogg.alg_gebouw_naam, aogg.alg_terreinsector_naam)
|
||
alg_gebouwterrein_naam,
|
||
COALESCE (aogg.alg_gebouw_code, aogg.alg_terreinsector_code)
|
||
alg_gebouwterrein_code,
|
||
aogg.alg_verdieping_code,
|
||
aogg.alg_ruimte_nr,
|
||
DECODE (f.fac_faq_level,
|
||
1, 'Zelfservice',
|
||
2, 'Professionals',
|
||
3, 'Zelfservice en Professionals')
|
||
fac_faq_level,
|
||
fac_faq_hint,
|
||
fac_faq_url,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| '-'
|
||
|| d.ins_discipline_omschrijving
|
||
ins_discipline_omschrijving
|
||
FROM fac_faq f,
|
||
prs_v_perslid_fullnames_all pf,
|
||
alg_algfaq a,
|
||
alg_v_onroerendgoed_gegevens aogg,
|
||
alg_locatie l,
|
||
mld_stdmeldingfaq s,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE f.fac_faq_key = s.fac_faq_key (+)
|
||
AND s.ins_discipline_key = d.ins_discipline_key (+)
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key (+)
|
||
AND f.fac_faq_key = a.fac_faq_key (+)
|
||
AND a.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND a.alg_onroerendgoed_keys = aogg.alg_onroerendgoed_keys(+)
|
||
AND f.prs_perslid_key = pf.prs_perslid_key(+)
|
||
ORDER BY f.fac_faq_key;
|
||
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_BUDGET_TRACKER
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_budget_tracker
|
||
(
|
||
nummer,
|
||
datum,
|
||
status,
|
||
laatste_actie,
|
||
vakgroeptype,
|
||
vakgroep,
|
||
kostensoort_code,
|
||
kostensoort_omschrijving,
|
||
financiele_waarde,
|
||
kostensoortgroep_omschrijving,
|
||
melding,
|
||
omschrijving,
|
||
organisatie,
|
||
naam,
|
||
kostenplaats,
|
||
kostenplaats_omschrijving,
|
||
plaats,
|
||
locatie,
|
||
gebouw,
|
||
code_exact,
|
||
opdracht_status,
|
||
uitvoerende,
|
||
contactpersoon,
|
||
uren,
|
||
uurloon,
|
||
materiaal,
|
||
kosten,
|
||
gefactureerd
|
||
)
|
||
AS
|
||
SELECT m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr nummer,
|
||
o.mld_opdr_datumbegin datum,
|
||
(SELECT mld_statusopdr_omschrijving
|
||
FROM mld_statusopdr s
|
||
WHERE o.mld_statusopdr_key = s.mld_statusopdr_key)
|
||
status,
|
||
mld.getopdrachtstatusdate (o.mld_opdr_key, mld_statusopdr_key)
|
||
laatste_actie,
|
||
sd.ins_srtdiscipline_prefix vakgroeptype,
|
||
md.ins_discipline_omschrijving vakgroep,
|
||
COALESCE (kstd.prs_kostensoort_oms, kvg.prs_kostensoort_oms)
|
||
kostensoort_code,
|
||
COALESCE (kstd.prs_kostensoort_opmerking,
|
||
kvg.prs_kostensoort_opmerking)
|
||
kostensoort_omschrijving,
|
||
COALESCE (kstd.prs_kostensoort_refcode,
|
||
kvg.prs_kostensoort_refcode)
|
||
financiele_waarde,
|
||
(SELECT prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg
|
||
WHERE ksg.prs_kostensoortgrp_key =
|
||
COALESCE (kstd.prs_kostensoortgrp_key,
|
||
kvg.prs_kostensoortgrp_key))
|
||
kostensoortgroep_omschrijving,
|
||
std.mld_stdmelding_omschrijving melding,
|
||
mld_melding_omschrijving omschrijving,
|
||
(SELECT d.prs_afdeling_naam
|
||
FROM prs_v_afdeling d
|
||
WHERE p.prs_afdeling_key = d.prs_afdeling_key)
|
||
organisatie,
|
||
p.prs_perslid_naam
|
||
|| DECODE (NVL (p.prs_perslid_voorletters, ''),
|
||
'', '',
|
||
', ' || p.prs_perslid_voorletters)
|
||
|| DECODE (NVL (p.prs_perslid_tussenvoegsel, ''),
|
||
'', '',
|
||
' ' || p.prs_perslid_tussenvoegsel)
|
||
|| DECODE (NVL (p.prs_perslid_voornaam, ''),
|
||
'', '',
|
||
' (' || p.prs_perslid_voornaam || ')')
|
||
naam,
|
||
(SELECT k.prs_kostenplaats_nr
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key)
|
||
kostenplaats,
|
||
(SELECT k.prs_kostenplaats_omschrijving
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key)
|
||
kostenplaats_omschrijving,
|
||
(SELECT alg_locatie_code
|
||
FROM alg_locatie l
|
||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key)
|
||
|| (SELECT CASE COALESCE (g.alg_gebouw_code, '')
|
||
WHEN '' THEN ''
|
||
ELSE '-' || g.alg_gebouw_code
|
||
END
|
||
|| CASE COALESCE (g.alg_verdieping_code, '')
|
||
WHEN '' THEN ''
|
||
ELSE '-' || g.alg_verdieping_code
|
||
END
|
||
|| CASE COALESCE (g.alg_ruimte_nr, '')
|
||
WHEN '' THEN ''
|
||
ELSE '-' || g.alg_ruimte_nr
|
||
END
|
||
FROM alg_v_allonrgoed_gegevens g
|
||
WHERE m.mld_alg_onroerendgoed_keys = g.alg_onroerendgoed_keys)
|
||
plaats,
|
||
alg_locatie_code locatie,
|
||
alg_gebouw_code gebouw,
|
||
COALESCE ( (SELECT exact_code
|
||
FROM aaxx_v_exact_code_gebouw ogk
|
||
WHERE ogk.alg_gebouw_key = v.alg_gebouw_key),
|
||
v.alg_gebouw_code)
|
||
code_exact,
|
||
(SELECT mld_statusopdr_omschrijving
|
||
FROM mld_statusopdr so
|
||
WHERE o.mld_statusopdr_key = so.mld_statusopdr_key)
|
||
opdracht_status,
|
||
COALESCE ( (SELECT prs_bedrijf_naam
|
||
FROM prs_bedrijf b
|
||
WHERE o.mld_uitvoerende_keys = prs_bedrijf_key),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all
|
||
WHERE o.mld_uitvoerende_keys = prs_perslid_key))
|
||
uitvoerende,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE o.prs_perslid_key = pf.prs_perslid_key)
|
||
contactpersoon,
|
||
o.mld_opdr_uren uren,
|
||
o.mld_opdr_uurloon uurloon,
|
||
o.mld_opdr_materiaal materiaal,
|
||
o.mld_opdr_kosten kosten,
|
||
COALESCE ( (SELECT SUM (f.fin_factuur_totaal)
|
||
FROM aaxx_v_aanwezigfactuur f
|
||
WHERE f.mld_opdr_key = o.mld_opdr_key), 0)
|
||
gefactureerd
|
||
FROM mld_melding m,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
alg_v_allonrgoed_gegevens v,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
prs_perslid p,
|
||
mld_opdr o,
|
||
mld_stdmelding std,
|
||
prs_kostensoort kstd,
|
||
prs_kostensoort kvg
|
||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = di.alg_district_key(+)
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys = v.alg_onroerendgoed_keys(+)
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND std.prs_kostensoort_key = kstd.prs_kostensoort_key(+)
|
||
AND md.prs_kostensoort_key = kvg.prs_kostensoort_key(+)
|
||
UNION ALL
|
||
SELECT cnt_contract_nummer_intern,
|
||
c.cnt_contract_looptijd_van,
|
||
DECODE (
|
||
SIGN (cnt_contract_looptijd_van - SYSDATE),
|
||
1,
|
||
'Toekomst',
|
||
-1,
|
||
DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE),
|
||
1, 'Actueel',
|
||
-1, 'Verlopen'))
|
||
status,
|
||
c.cnt_contract_looptijd_tot laatste_actie,
|
||
'Contract' vakgroeptype,
|
||
d.ins_discipline_omschrijving vakgroep,
|
||
k.prs_kostensoort_oms kostensoort_code,
|
||
k.prs_kostensoort_opmerking kostensoort_omschrijving,
|
||
k.prs_kostensoort_refcode financiele_waarde,
|
||
(SELECT prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg
|
||
WHERE ksg.prs_kostensoortgrp_key = k.prs_kostensoortgrp_key)
|
||
kostensoortgroep_omschrijving,
|
||
c.cnt_contract_omschrijving melding,
|
||
SUBSTR (
|
||
REPLACE (cnt_contract_document, CHR (13) || CHR (10), '<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 (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* c.cnt_contract_kosten),
|
||
0)
|
||
kosten,
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* (SELECT SUM (fin_factuur_totaal)
|
||
FROM aaxx_v_aanwezigfactuur f
|
||
WHERE f.cnt_contract_key = c.cnt_contract_key)),
|
||
0)
|
||
gefactureerd
|
||
FROM cnt_contract c,
|
||
cnt_discipline d,
|
||
cnt_contract_plaats cp,
|
||
prs_bedrijf b,
|
||
prs_kostensoort k,
|
||
prs_kostenplaats kp,
|
||
prs_afdeling a,
|
||
prs_perslid p,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
prs_contactpersoon cop,
|
||
( SELECT cnt_contract_key,
|
||
SUM (cnt_contract_plaats_gewicht)
|
||
cnt_contract_plaats_gewicht
|
||
FROM cnt_contract_plaats
|
||
GROUP BY cnt_contract_key) cnt_gew,
|
||
(SELECT cp.cnt_contract_plaats_key, alg_locatie_key, alg_gebouw_key
|
||
FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp
|
||
WHERE aog.alg_type = cp.cnt_alg_plaats_code
|
||
AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) cog
|
||
WHERE c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
|
||
AND c.prs_perslid_key_beh = p.prs_perslid_key
|
||
AND cp.cnt_contract_plaats_key = cog.cnt_contract_plaats_key(+)
|
||
AND c.prs_contactpersoon_key = cop.prs_contactpersoon_key(+)
|
||
AND cog.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND cog.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND cnt_contract_verwijder IS NULL;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - DWH_SEARCH_RESULTS
|
||
-------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_dwh_gui_counter
|
||
(
|
||
fac_gui_counter_key,
|
||
fac_gui_counter_group,
|
||
fac_gui_counter_info,
|
||
fac_gui_counter_refkey,
|
||
fac_gui_counter_choice,
|
||
fac_gui_counter_result,
|
||
fac_gui_counter_date,
|
||
prs_perslid_key,
|
||
prs_perslid_naam_full
|
||
)
|
||
AS
|
||
SELECT fgc.fac_gui_counter_key,
|
||
fgc.fac_gui_counter_group,
|
||
fgc.fac_gui_counter_info,
|
||
fgc.fac_gui_counter_refkey,
|
||
choice.fac_gui_counter_info fac_gui_counter_choice,
|
||
result.fac_gui_counter_info fac_gui_counter_result,
|
||
fac_gui_counter_date,
|
||
fgc.prs_perslid_key,
|
||
prs_perslid_naam_full
|
||
FROM fac_gui_counter fgc,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT fac_gui_counter_refkey, fac_gui_counter_info
|
||
FROM fac_gui_counter fgc
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice') choice,
|
||
(SELECT fac_gui_counter_refkey, fac_gui_counter_info
|
||
FROM fac_gui_counter fgc
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchresult') result
|
||
WHERE fac_gui_counter_group = 'search'
|
||
AND fgc.fac_gui_counter_info IS NOT NULL
|
||
AND fgc.prs_perslid_key = pf.prs_perslid_key
|
||
AND choice.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key
|
||
AND result.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key
|
||
UNION ALL
|
||
SELECT fgc.fac_gui_counter_key,
|
||
fgc.fac_gui_counter_group,
|
||
fac_usrrap_omschrijving,
|
||
fgc.fac_gui_counter_refkey,
|
||
NULL,
|
||
NULL,
|
||
fac_gui_counter_date,
|
||
fgc.prs_perslid_key,
|
||
prs_perslid_naam_full
|
||
FROM fac_gui_counter fgc, prs_v_perslid_fullnames pf, fac_usrrap fr
|
||
WHERE fgc.fac_gui_counter_group = 'report'
|
||
AND fgc.prs_perslid_key = pf.prs_perslid_key(+)
|
||
AND fr.fac_usrrap_key(+) = fgc.fac_gui_counter_refkey
|
||
UNION ALL
|
||
SELECT fgc.fac_gui_counter_key,
|
||
fgc.fac_gui_counter_group,
|
||
COALESCE (fac_menu_altlabel, lcl.l (fac_menuitems_label)),
|
||
fgc.fac_gui_counter_refkey,
|
||
NULL,
|
||
NULL,
|
||
fac_gui_counter_date,
|
||
fgc.prs_perslid_key,
|
||
prs_perslid_naam_full
|
||
FROM fac_gui_counter fgc,
|
||
prs_v_perslid_fullnames pf,
|
||
fac_menu m,
|
||
fac_menuitems mi
|
||
WHERE fgc.fac_gui_counter_group = 'menu'
|
||
AND fgc.prs_perslid_key = pf.prs_perslid_key(+)
|
||
AND m.fac_menu_key = fac_gui_counter_refkey
|
||
AND mi.fac_menuitems_key(+) = m.fac_menuitems_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- Rapportage tbv berekening aantal key users
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_lcrap_key_stats
|
||
(
|
||
PRS_PERSLID_KEY,
|
||
PRS_PERSLID_OSLOGIN,
|
||
PRS_PERSLID_OSLOGIN2,
|
||
PRS_PERSLID_NR,
|
||
PRS_PERSLID_NAAM_FULL,
|
||
PRS_AFDELING_NAAM,
|
||
LEV_WRITE_CNT,
|
||
MAX_ALG_WRITE,
|
||
MAX_PRS_WRITE,
|
||
LEV_READ_CNT,
|
||
MAX_ALG_READ,
|
||
MAX_PRS_READ,
|
||
AUT_GROEP_CNT
|
||
)
|
||
AS
|
||
SELECT x.prs_perslid_key,
|
||
x.prs_perslid_oslogin,
|
||
x.prs_perslid_oslogin2,
|
||
x.prs_perslid_nr,
|
||
x.prs_perslid_naam_full,
|
||
prs_afdeling_naam,
|
||
COALESCE (y.lev_write_cnt, 0) lev_write_cnt,
|
||
y.max_alg_write,
|
||
y.max_prs_write,
|
||
COALESCE (z.lev_read_cnt, 0) lev_read_cnt,
|
||
z.max_alg_read,
|
||
z.max_prs_read,
|
||
x.aut_groep_cnt
|
||
FROM ( SELECT fn.prs_perslid_key,
|
||
p.prs_perslid_oslogin,
|
||
p.prs_perslid_oslogin2,
|
||
kl.prs_kenmerklink_waarde prs_perslid_nr,
|
||
prs_afdeling_naam,
|
||
fn.prs_perslid_naam_full,
|
||
COUNT (DISTINCT gg.fac_groep_key) aut_groep_cnt
|
||
FROM prs_v_aanwezigperslid p,
|
||
prs_afdeling a,
|
||
prs_v_perslid_fullnames fn,
|
||
fac_gebruikersgroep gg,
|
||
(SELECT prs_kenmerklink_waarde, prs_link_key
|
||
FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 3) kl -- personeelsnummer AAFM
|
||
WHERE a.prs_afdeling_key = p.prs_afdeling_key
|
||
AND p.prs_perslid_oslogin IS NOT NULL
|
||
AND p.prs_perslid_key = fn.prs_perslid_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key
|
||
AND p.prs_perslid_key = kl.prs_link_key(+)
|
||
GROUP BY fn.prs_perslid_key,
|
||
fn.prs_perslid_naam_full,
|
||
prs_perslid_oslogin,
|
||
prs_perslid_oslogin2,
|
||
kl.prs_kenmerklink_waarde,
|
||
prs_afdeling_naam) x
|
||
LEFT JOIN ( SELECT gg.prs_perslid_key,
|
||
COUNT (DISTINCT gr.fac_groeprechten_key)
|
||
lev_write_cnt,
|
||
MIN (gr.fac_gebruiker_alg_level_write)
|
||
max_alg_write,
|
||
MIN (gr.fac_gebruiker_prs_level_write)
|
||
max_prs_write
|
||
FROM fac_gebruikersgroep gg,
|
||
fac_groeprechten gr,
|
||
fac_functie f
|
||
WHERE gg.fac_groep_key = gr.fac_groep_key
|
||
AND gr.fac_functie_key = f.fac_functie_key
|
||
AND fac_functie_groep IN (1, 2)
|
||
AND (gr.fac_gebruiker_alg_level_write <> 9
|
||
OR gr.fac_gebruiker_prs_level_write <> 9)
|
||
GROUP BY gg.prs_perslid_key) y
|
||
ON x.prs_perslid_key = y.prs_perslid_key
|
||
LEFT JOIN ( SELECT gg.prs_perslid_key,
|
||
COUNT (DISTINCT gr.fac_groeprechten_key)
|
||
lev_read_cnt,
|
||
MIN (gr.fac_gebruiker_alg_level_read)
|
||
max_alg_read,
|
||
MIN (gr.fac_gebruiker_prs_level_read)
|
||
max_prs_read
|
||
FROM fac_gebruikersgroep gg,
|
||
fac_groeprechten gr,
|
||
fac_functie f
|
||
WHERE gg.fac_groep_key = gr.fac_groep_key
|
||
AND gr.fac_functie_key = f.fac_functie_key
|
||
AND fac_functie_groep IN (1, 2)
|
||
AND (gr.fac_gebruiker_alg_level_read <> 9
|
||
OR gr.fac_gebruiker_prs_level_read <> 9)
|
||
GROUP BY gg.prs_perslid_key) z
|
||
ON x.prs_perslid_key = z.prs_perslid_key
|
||
WHERE COALESCE (y.lev_write_cnt, 0) > 0
|
||
OR COALESCE (z.lev_read_cnt, 0) > 0;
|
||
|
||
|
||
--=============================================================================
|
||
-- IMPORTFUNCTIES
|
||
-------------------------------------------------------------------------------
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- IMPORTFUNCTIE - Import srtruimte
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_srtruimte (
|
||
key,
|
||
omschrijving,
|
||
code,
|
||
werkplek,
|
||
verhuurbaar,
|
||
huur,
|
||
sk_onderhoud,
|
||
sk_utility,
|
||
sk_overig,
|
||
prijs5
|
||
)
|
||
AS
|
||
SELECT alg_srtruimte_key,
|
||
alg_srtruimte_omschrijving,
|
||
alg_srtruimte_code,
|
||
prs_bevat_werkplek,
|
||
prs_verhuurbaar,
|
||
alg_srtruimte_prijs,
|
||
alg_srtruimte_prijs2,
|
||
alg_srtruimte_prijs3,
|
||
alg_srtruimte_prijs4,
|
||
alg_srtruimte_prijs5
|
||
FROM alg_v_aanwezigsrtruimte;
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_srtruimte (
|
||
p_import_key IN NUMBER
|
||
)
|
||
AS
|
||
CURSOR c_cursor
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
v_newline VARCHAR2 (1000);
|
||
v_aanduiding VARCHAR2 (1000); -- Import line
|
||
v_field VARCHAR2 (100); -- Import field
|
||
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_skipfield VARCHAR2 (100);
|
||
-- De importvelden
|
||
v_key VARCHAR2 (100);
|
||
v_omschrijving VARCHAR2 (100);
|
||
v_code VARCHAR2 (100);
|
||
v_werkplek VARCHAR2 (100);
|
||
v_verhuurbaar VARCHAR2 (100);
|
||
v_prijs1 VARCHAR2 (100);
|
||
v_prijs2 VARCHAR2 (100);
|
||
v_prijs3 VARCHAR2 (100);
|
||
v_prijs4 VARCHAR2 (100);
|
||
v_prijs5 VARCHAR2 (100);
|
||
header_found BOOLEAN;
|
||
|
||
BEGIN
|
||
-- Init
|
||
header_found := FALSE;
|
||
v_fielddelimitor := ';';
|
||
|
||
-- Clear my previous imported rows
|
||
DELETE FROM aaxx_imp_srtruimte;
|
||
|
||
FOR rec1 IN c_cursor
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_aanduiding := v_newline;
|
||
|
||
IF SUBSTR (v_newline, 1, 3) = '?'
|
||
THEN
|
||
-- EF BB BF aangetroffen
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Byte Order Mark aangetroffen',
|
||
'Bestand heeft onbehandeld UTF-8 formaat.'
|
||
);
|
||
v_newline := SUBSTR (v_newline, 4);
|
||
END IF;
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_key);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_omschrijving);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_code);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_werkplek);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_verhuurbaar);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs1);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs2);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs3);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs4);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs5);
|
||
|
||
|
||
-- Skip until a valid header is found
|
||
IF UPPER(v_key) = 'KEY'
|
||
AND UPPER(v_code) = 'CODE'
|
||
AND UPPER(v_prijs1) = 'HUUR'
|
||
AND UPPER(v_prijs5) = 'PRIJS5'
|
||
THEN
|
||
-- Sla de kopregel over.
|
||
header_found := TRUE;
|
||
ELSIF (header_found AND v_omschrijving IS NOT NULL)
|
||
THEN
|
||
INSERT INTO aaxx_imp_srtruimte
|
||
(alg_srtruimte_key,
|
||
alg_srtruimte_omschrijving,
|
||
alg_srtruimte_code,
|
||
prs_bevat_werkplek,
|
||
prs_verhuurbaar,
|
||
alg_srtruimte_prijs,
|
||
alg_srtruimte_prijs2,
|
||
alg_srtruimte_prijs3,
|
||
alg_srtruimte_prijs4,
|
||
alg_srtruimte_prijs5 )
|
||
VALUES (fac.safe_to_number (v_key),
|
||
SUBSTR (v_omschrijving, 1, 30),
|
||
SUBSTR (v_code, 1, 10),
|
||
fac.safe_to_number (SUBSTR(v_werkplek, 1)),
|
||
fac.safe_to_number (SUBSTR(v_verhuurbaar, 1)),
|
||
fac.safe_to_number (REPLACE(v_prijs1,',','.')),
|
||
fac.safe_to_number (REPLACE(v_prijs2,',','.')),
|
||
fac.safe_to_number (REPLACE(v_prijs3,',','.')),
|
||
fac.safe_to_number (REPLACE(v_prijs4,',','.')),
|
||
fac.safe_to_number (REPLACE(v_prijs5,',','.'))
|
||
);
|
||
END IF;
|
||
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF NOT header_found
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Geen geldige header aangetroffen',
|
||
'Bestand is geen geldig ruimtesoort importbestand.'
|
||
);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', SUBSTR (v_errormsg, 1, 1000), v_aanduiding);
|
||
-- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden.
|
||
DELETE FROM aaxx_imp_srtruimte;
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_srtruimte (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM aaxx_imp_srtruimte
|
||
WHERE alg_srtruimte_omschrijving is not NULL;
|
||
|
||
v_oldcount NUMBER;
|
||
v_newcount NUMBER;
|
||
v_prs_bedrijf_key NUMBER;
|
||
v_prs_dienst_key NUMBER;
|
||
v_alg_locatie_key NUMBER;
|
||
v_alg_gebouw_key NUMBER;
|
||
v_errormsg VARCHAR (1000);
|
||
v_error_hint VARCHAR (1000);
|
||
oracle_err_mes VARCHAR2 (150);
|
||
oracle_err_num VARCHAR2 (150);
|
||
currentversion fac_module.fac_module_version%TYPE;
|
||
BEGIN
|
||
|
||
SELECT MAX (fac_module_version)
|
||
INTO currentversion
|
||
FROM fac_module;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'AAFM ruimtesoort import version ' || currentversion,
|
||
'$Revision$'
|
||
);
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_newcount
|
||
FROM alg_v_aanwezigsrtruimte;
|
||
|
||
IF v_newcount = 0 THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'AAFM ruimtesoort import bevat geen records',
|
||
'$Revision$'
|
||
);
|
||
return;
|
||
END IF;
|
||
|
||
-- How many active records are now present?
|
||
SELECT COUNT (*)
|
||
INTO v_oldcount
|
||
FROM alg_v_aanwezigsrtruimte;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
IF rec.alg_srtruimte_key IS NULL THEN
|
||
v_errormsg := 'Toevoegen ruimtesoort [' || rec.alg_srtruimte_code || '] ';
|
||
INSERT INTO alg_srtruimte (
|
||
alg_srtruimte_omschrijving,
|
||
alg_srtruimte_code,
|
||
prs_bevat_werkplek,
|
||
prs_verhuurbaar,
|
||
alg_srtruimte_prijs,
|
||
alg_srtruimte_prijs2,
|
||
alg_srtruimte_prijs3,
|
||
alg_srtruimte_prijs4,
|
||
alg_srtruimte_prijs5)
|
||
VALUES (
|
||
rec.alg_srtruimte_omschrijving,
|
||
rec.alg_srtruimte_code,
|
||
rec.prs_bevat_werkplek,
|
||
rec.prs_verhuurbaar,
|
||
rec.alg_srtruimte_prijs,
|
||
rec.alg_srtruimte_prijs2,
|
||
rec.alg_srtruimte_prijs3,
|
||
rec.alg_srtruimte_prijs4,
|
||
rec.alg_srtruimte_prijs5);
|
||
ELSE
|
||
v_errormsg := 'Aanpassen ruimtesoort [' || rec.alg_srtruimte_code || '] ';
|
||
UPDATE alg_srtruimte SET
|
||
alg_srtruimte_omschrijving = rec.alg_srtruimte_omschrijving,
|
||
alg_srtruimte_code = rec.alg_srtruimte_code,
|
||
prs_bevat_werkplek = rec.prs_bevat_werkplek,
|
||
prs_verhuurbaar = rec.prs_verhuurbaar,
|
||
alg_srtruimte_prijs = rec.alg_srtruimte_prijs,
|
||
alg_srtruimte_prijs2 = rec.alg_srtruimte_prijs2,
|
||
alg_srtruimte_prijs3 = rec.alg_srtruimte_prijs3,
|
||
alg_srtruimte_prijs4 = rec.alg_srtruimte_prijs4,
|
||
alg_srtruimte_prijs5 = rec.alg_srtruimte_prijs5
|
||
WHERE alg_srtruimte_key = rec.alg_srtruimte_key;
|
||
END IF;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_hint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint
|
||
);
|
||
COMMIT; -- tbv logging
|
||
END;
|
||
END LOOP;
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_newcount
|
||
FROM alg_v_aanwezigsrtruimte;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Aantal ruimte soorten vooraf: ' || TO_CHAR (v_oldcount) || ' nu: ' || TO_CHAR (v_newcount),
|
||
''
|
||
);
|
||
|
||
END;
|
||
/
|
||
|
||
--------------------------------
|
||
-- import facturen
|
||
--------------------------------
|
||
|
||
-- rapportage factuurvoorstel inkoopfacturen. Het resultaat kan met onderstaande importroutines ingelezen worden.
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_inkoopfactuur
|
||
(
|
||
fclt_x_bedrijfnaam,
|
||
fclt_x_afrond_datum,
|
||
leveranciernr,
|
||
factuurnr,
|
||
factuurdatum,
|
||
ordernr,
|
||
locatie,
|
||
afleverdatum,
|
||
omschrijving,
|
||
aantal,
|
||
kostprijs,
|
||
btwbedrag,
|
||
btw,
|
||
docid,
|
||
debiteurnummer,
|
||
opmerking,
|
||
lastinvoice,
|
||
btwverlegd,
|
||
gebouw,
|
||
orderomschrijving,
|
||
referentie,
|
||
afmelddatum,
|
||
uren,
|
||
materiaal,
|
||
opdracht_type
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_naam bedrijfsnaam,
|
||
tr2.fac_tracking_datum datum,
|
||
prs_leverancier_nr leveranciernr,
|
||
NULL factuurnr,
|
||
NULL factuurdatum,
|
||
(SELECT sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key)
|
||
ordernr,
|
||
(SELECT alg_locatie_code || ' - ' || alg_locatie_omschrijving
|
||
FROM alg_locatie l
|
||
WHERE l.alg_locatie_key = m.mld_alg_locatie_key)
|
||
locatie,
|
||
TO_CHAR (mld_opdr_datumbegin, 'ddmmyyyy') afleverdatum,
|
||
NULL omschrijving,
|
||
1 aantal,
|
||
o.mld_opdr_kosten kostprijs,
|
||
NULL btwbedrag,
|
||
21 btw,
|
||
NULL docid,
|
||
NULL debiteurnummer,
|
||
NULL opmerking,
|
||
'Ja' lastinvoice,
|
||
'Nee' btwverlegd,
|
||
(SELECT og.alg_gebouw_code || ' - ' || og.alg_gebouw_naam
|
||
FROM alg_v_allonrgoed_gegevens og
|
||
WHERE m.mld_alg_onroerendgoed_keys =
|
||
og.alg_onroerendgoed_keys)
|
||
gebouw,
|
||
REPLACE (REPLACE (o.mld_opdr_omschrijving, CHR (13), ''),
|
||
CHR (10),
|
||
'<ret>')
|
||
orderomschrijving,
|
||
(SELECT mld_kenmerkopdr_waarde
|
||
FROM mld_srtkenmerk sk, mld_kenmerk k, mld_kenmerkopdr ko
|
||
WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND mld_kenmerk_niveau = 'O'
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND ko.mld_kenmerkopdr_verwijder IS NULL
|
||
AND ko.mld_opdr_key = o.mld_opdr_key
|
||
AND mld_srtkenmerk_omschrijving LIKE
|
||
'Ref. Nr. Leverancier%')
|
||
referentie,
|
||
tr.fac_tracking_datum afmelddatum,
|
||
o.mld_opdr_uren,
|
||
o.mld_opdr_materiaal,
|
||
mt.mld_typeopdr_omschrijving
|
||
FROM prs_bedrijf b,
|
||
mld_opdr o,
|
||
mld_typeopdr mt,
|
||
mld_melding m,
|
||
mld_typeopdr ot,
|
||
fac_tracking tr,
|
||
fac_tracking tr2,
|
||
fac_srtnotificatie str,
|
||
fac_srtnotificatie str2
|
||
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND o.mld_typeopdr_key = mt.mld_typeopdr_key
|
||
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
||
AND tr2.fac_srtnotificatie_key = str2.fac_srtnotificatie_key
|
||
AND str.fac_srtnotificatie_code = 'ORDAFM'
|
||
AND str2.fac_srtnotificatie_code = 'ORDAFR'
|
||
AND o.mld_opdr_key = tr.fac_tracking_refkey
|
||
AND o.mld_opdr_key = tr2.fac_tracking_refkey
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_statusopdr_key = 9 -- Afgerond
|
||
AND o.mld_opdr_kosten <> 0
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND (ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
OR ot.mld_typeopdr_omschrijving = 'Projectorder'
|
||
OR ot.mld_typeopdr_omschrijving = 'Vast variabel'
|
||
OR ot.mld_typeopdr_omschrijving = 'Opdracht'
|
||
)
|
||
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,
|
||
'IT', 381,
|
||
'SABIC', 34,
|
||
2))
|
||
AND NOT EXISTS
|
||
(SELECT mld_kenmerkopdr_key
|
||
FROM mld_kenmerkopdr ko,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND UPPER (sk.mld_srtkenmerk_omschrijving) =
|
||
'CLAUSULE'
|
||
AND UPPER(aaxx_get_kenmerkwaarde (
|
||
sk.mld_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
ko.mld_kenmerkopdr_waarde
|
||
)) = 'BINNEN CLAUSULE');
|
||
|
||
-- AAVL#33405 rapportage factuurvoorstel inkoopfacturen tbv bestellingen.
|
||
-- Het resultaat kan met onderstaande importroutines ingelezen worden.
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_bes_inkfactuur
|
||
(
|
||
FCLT_X_BEDRIJFNAAM,
|
||
FCLT_X_LEVER_DATUM,
|
||
LEVERANCIERNR,
|
||
FACTUURNR,
|
||
FACTUURDATUM,
|
||
ORDERNR,
|
||
LOCATIE,
|
||
AFLEVERDATUM,
|
||
OMSCHRIJVING,
|
||
AANTAL,
|
||
KOSTPRIJS,
|
||
BTWBEDRAG,
|
||
BTW,
|
||
DOCID,
|
||
DEBITEURNUMMER,
|
||
OPMERKING,
|
||
LASTINVOICE,
|
||
BTWVERLEGD,
|
||
GEBOUW,
|
||
ORDEROMSCHRIJVING,
|
||
REFERENTIE,
|
||
AFMELDDATUM,
|
||
UREN,
|
||
MATERIAAL
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_naam,
|
||
ft.fac_tracking_datum datum,
|
||
prs_leverancier_nr leveranciernr,
|
||
NULL factuurnr,
|
||
NULL factuurdatum,
|
||
bes_bestelopdr_id,
|
||
(SELECT alg_locatie_code || ' - ' || alg_locatie_omschrijving
|
||
FROM alg_locatie l
|
||
WHERE l.alg_locatie_key = ma.alg_locatie_key)
|
||
locatie,
|
||
TO_CHAR (ft.fac_tracking_datum, 'ddmmyyyy') afleverdatum,
|
||
NULL omschrijving,
|
||
SUM (bes_bestelopdr_item_aantalontv) aantal,
|
||
SUM (bes_bestelopdr_item_prijs * bes_bestelopdr_item_aantalontv) kostprijs,
|
||
NULL btwbedrag,
|
||
bes_srtdeel_btw BTW,
|
||
NULL docid,
|
||
NULL debiteurnummer,
|
||
NULL opmerking,
|
||
'Ja' lastinvoice,
|
||
'Nee' btwverlegd,
|
||
NULL gebouw,
|
||
NULL orderomschrijving,
|
||
NULL referentie,
|
||
ft.fac_tracking_datum afmelddatum,
|
||
NULL uren,
|
||
NULL materiaal
|
||
FROM bes_bestelopdr bo,
|
||
prs_bedrijf b,
|
||
mld_adres ma,
|
||
bes_bestelopdr_item bboi,
|
||
bes_bestelling_item bbi,
|
||
bes_srtdeel bsd,
|
||
fac_tracking ft,
|
||
fac_srtnotificatie srt
|
||
WHERE bes_bestelopdr_status = 6
|
||
AND b.prs_bedrijf_key = bo.prs_bedrijf_key
|
||
AND bo.mld_adres_key_lev = ma.mld_adres_key
|
||
AND bo.bes_bestelopdr_key = bboi.bes_bestelopdr_key
|
||
AND bbi.bes_bestelopdr_item_key = bboi.bes_bestelopdr_item_key
|
||
AND bbi.bes_srtdeel_key = bsd.bes_srtdeel_key
|
||
AND ft.fac_tracking_refkey = bo.bes_bestelopdr_key
|
||
AND srt.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
|
||
AND srt.fac_srtnotificatie_code = 'BES2AF'
|
||
GROUP BY prs_bedrijf_naam,
|
||
TO_CHAR (ft.fac_tracking_datum, 'yyyy-mm'),
|
||
prs_leverancier_nr,
|
||
bes_bestelopdr_id,
|
||
ma.alg_locatie_key,
|
||
ft.fac_tracking_datum,
|
||
bes_srtdeel_btw,
|
||
ft.fac_tracking_datum;
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_factuur (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
-- Standaard volgorde van de kolommen in het CSV-formaat, waarbij 3 velden VERPLICHT (minimaal door Facilitor vereist)
|
||
-- Variabelelijst
|
||
-- v_leveranciernr: 1
|
||
-- v_factuurnr: 2 (VERPLICHT, anders zet Facilitor '-' in factuurnr, en is status van factuur "Incompleet")
|
||
-- v_factuurdatum: 3
|
||
-- v_ordernr: 4 (VERPLICHT, anders is status van factuur "Incompleet")
|
||
-- v_locatie: 5
|
||
-- v_afleverdatum: 6
|
||
-- v_omschrijving: 7
|
||
-- v_aantal: 8
|
||
-- v_kostprijs: 9 (VERPLICHT, anders is status van factuur "Incompleet")
|
||
-- v_btw_bedrag: 10 (VERPLICHT, of anders veld 11, anders is status van factuur "Incompleet")
|
||
-- v_btw: 11 (VERPLICHT, of anders veld 10, anders is status van factuur "Incompleet")
|
||
-- v_docid: 12
|
||
-- v_debiteur_nr: 13
|
||
-- v_opmerking: 14
|
||
-- v_btw_verlegd: 15 (VERPLICHT, Ja/Nee/<leeg> waarbij leeg gelijk is aan Nee. Andere waarden leidt tot "Incompleet")
|
||
-- v_kenmerk1: 16
|
||
-- v_kenmerk2: 17
|
||
-- v_kenmerk3: 18
|
||
-- v_kenmerk4: 19
|
||
-- v_kenmerk5: 20
|
||
-- v_boekmaand: 21 (GELDIG, Indien gevuld dan moet er een geldige jaar-maand combinatie staan. Andere waarden leidt tot "Incompleet")
|
||
-- Eerst geprobeerd via nette array, geeft problemen met type buiten package, en in package lukt niet omdat
|
||
-- de import in Facilitor package-loos is (en niet 1-2-3 zo kan worden gemaakt vanwege alle bestaande klanten)
|
||
-- v_seq_of_columns ListOfInteger := (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21);
|
||
|
||
-- Dus dan maar via een string, en ook op slimme wijze, nl alsof het een ingelezen factuur-record is met p_fielddelimitor
|
||
v_seq_of_columns VARCHAR(100);
|
||
|
||
|
||
-- Afwijkingen op deze volgorde zijn in eigen cust_import_factuur te regelen.
|
||
|
||
-- Als leveranciersnr en factuurnr b.v. zijn omgedraaid in het CSV-formaat,
|
||
-- dan factuurimport ListOfInteger := (2,1,3,4,5,6,7,8,9,10,11,12);
|
||
-- v_seq_of_columns := '2;1;3;4;5;6;7;8;9;10;11;12';
|
||
|
||
-- Als leveranciersnr NIET in CSV staat, dan factuurimport ListOfInteger := (0,2,3,4,5,6,7,8,9,10,11,12);
|
||
-- v_seq_of_columns := '0;2;3;4;5;6;7;8;9;10;11;12';
|
||
-- M.a.w. waar een 0 staat, wordt de variabele niet ingelezen en blift LEEG.
|
||
|
||
BEGIN
|
||
v_seq_of_columns := '1;2;3;4;5;6;7;8;9;10;11;12;13;14;16;15;0;0;0;0;17';
|
||
fac_import_factuur_body(p_import_key, v_seq_of_columns);
|
||
|
||
-- voeg een voorloopnul toe aan de boekmaanden op positie 6
|
||
-- 2017-9 wordt dan 2017-09
|
||
|
||
UPDATE fac_imp_factuur
|
||
SET boekmaand = SUBSTR (boekmaand, 1, 5) || 0 || SUBSTR (boekmaand, 6, 1)
|
||
WHERE SUBSTR (boekmaand, 1, 4) IS NOT NULL
|
||
AND SUBSTR (boekmaand, 5, 1) = '-'
|
||
AND SUBSTR (boekmaand, 6, 1) IS NOT NULL
|
||
AND SUBSTR (boekmaand, 7, 1) IS NULL
|
||
AND fac_import_key = p_import_key;
|
||
|
||
COMMIT;
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_factuur (p_import_key IN NUMBER)
|
||
AS
|
||
v_invoerder NUMBER(10);
|
||
BEGIN
|
||
|
||
fac_update_factuur (p_import_key);
|
||
|
||
-- AAFM specifieke update voor kenmerken
|
||
-- ja = 1
|
||
-- nee = 2
|
||
-- kenmerk_key = 2 voor kenmerk laatste factuur.
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
SELECT DISTINCT fin_factuur_key, fin_kenmerk_key, fac_usrdata_key
|
||
FROM fac_imp_factuur i,
|
||
fin_kenmerk k,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrdata ud
|
||
WHERE UPPER (COALESCE (i.kenmerk1, 'Nee')) = UPPER (ud.fac_usrdata_omschr)
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND k.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
||
AND k.fin_kenmerk_key = 2
|
||
AND i.fin_factuur_key IS NOT NULL
|
||
AND NOT EXISTS
|
||
(SELECT fin_kenmerkfactuur_key
|
||
FROM fin_kenmerkfactuur kf
|
||
WHERE kf.fin_kenmerk_key = 2
|
||
AND kf.fin_factuur_key = i.fin_factuur_key);
|
||
|
||
SELECT MAX(prs_perslid_key)
|
||
INTO v_invoerder
|
||
FROM fac_import
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
-- zet de FINNEW notificatie op de gebruiker die de import gestart heeft om te kunnen traceren hoe de facturen in het
|
||
-- systeem gekomen zijn.
|
||
UPDATE fac_tracking t
|
||
SET prs_perslid_key = v_invoerder
|
||
, fac_tracking_oms = fac_tracking_oms || ' (via Excel)'
|
||
WHERE prs_perslid_key IS NULL
|
||
AND EXISTS
|
||
(SELECT fac_tracking_key
|
||
FROM fac_imp_factuur i, fac_srtnotificatie sn
|
||
WHERE i.fin_factuur_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'FINNEW');
|
||
|
||
END;
|
||
/
|
||
|
||
-- view om aantal ingevoerde facturen terug te herleiden naar scanning en excel import.
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_invoice_scan
|
||
(
|
||
hide_f_ts,
|
||
fclt_d_datum,
|
||
totaal,
|
||
scanning,
|
||
excel
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (fac_tracking_datum, 'yyyymmdd'),
|
||
TO_CHAR (fac_tracking_datum, 'dd-mm-yyyy'),
|
||
SUM (aantal),
|
||
SUM (scanning),
|
||
SUM (excel)
|
||
FROM (SELECT f.fin_factuur_key,
|
||
fac_tracking_datum,
|
||
fac_tracking_key,
|
||
fac_tracking_oms,
|
||
1 aantal,
|
||
DECODE (t.prs_perslid_key, 8, 1, 0) excel,
|
||
DECODE (t.prs_perslid_key, 9, 1, 0) scanning
|
||
FROM fin_factuur f,
|
||
(SELECT t.*
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'FINNEW') t
|
||
WHERE f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_key = t.fac_tracking_refkey(+))
|
||
GROUP BY TO_CHAR (fac_tracking_datum, 'dd-mm-yyyy'),
|
||
TO_CHAR (fac_tracking_datum, 'yyyymmdd');
|
||
|
||
--------------------------------
|
||
-- import contractorders
|
||
--------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_contract (
|
||
p_import_key IN NUMBER)
|
||
IS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_read VARCHAR2 (4000);
|
||
v_lastchar VARCHAR2 (1);
|
||
v_firstchar VARCHAR2 (1);
|
||
v_errormsg VARCHAR (1000);
|
||
v_hint VARCHAR (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER;
|
||
v_ongeldig NUMBER (1);
|
||
v_mode NUMBER (1);
|
||
v_aanduiding VARCHAR (200);
|
||
v_header_is_valid NUMBER (1);
|
||
|
||
-- De importvelden:
|
||
v_gebouw_code VARCHAR2 (100);
|
||
v_leverancier VARCHAR2 (100);
|
||
v_beschrijving VARCHAR2 (100);
|
||
v_van VARCHAR2 (100);
|
||
v_dienst VARCHAR2 (100);
|
||
v_tot VARCHAR2 (100);
|
||
v_versie VARCHAR2 (100);
|
||
v_omschrijving VARCHAR2 (4000);
|
||
v_bedrag VARCHAR2 (100);
|
||
v_termijnbedrag VARCHAR2 (100);
|
||
v_contractsoort VARCHAR2 (100);
|
||
v_contractnummer VARCHAR2 (100);
|
||
v_volgnummer VARCHAR2 (100);
|
||
v_leveranciernummer VARCHAR2 (100);
|
||
v_contractafdeling VARCHAR2 (100);
|
||
v_gewijzigddoor VARCHAR2 (100);
|
||
v_contractmanager VARCHAR2 (100);
|
||
v_discipline_key NUMBER;
|
||
v_dummy VARCHAR2 (100);
|
||
|
||
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
rec c%ROWTYPE;
|
||
BEGIN
|
||
-- Eerst opruiming
|
||
|
||
DELETE FROM aaxx_imp_contract;
|
||
|
||
COMMIT;
|
||
|
||
v_header_is_valid := 0;
|
||
|
||
OPEN c;
|
||
|
||
IF (c%ISOPEN)
|
||
THEN
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
|
||
FETCH c INTO rec;
|
||
|
||
EXIT WHEN c%NOTFOUND;
|
||
v_read := rec.fac_imp_file_line;
|
||
v_newline := v_read;
|
||
|
||
v_lastchar := SUBSTR (v_read, LENGTH (v_read), 1);
|
||
v_firstchar := SUBSTR (v_read, 1, 1);
|
||
|
||
-- voeg regels samen die een cr/lf bevatten.
|
||
IF v_firstchar = '"'
|
||
THEN
|
||
WHILE v_lastchar <> '"'
|
||
LOOP
|
||
BEGIN
|
||
FETCH c INTO rec;
|
||
|
||
EXIT WHEN c%NOTFOUND;
|
||
v_read := rec.fac_imp_file_line;
|
||
v_lastchar := SUBSTR (v_read, LENGTH (v_read), 1);
|
||
v_newline := v_newline || CHR (13) || CHR (10) || v_read;
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij:' || substr(v_newline,1,200);
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
|
||
IF (UPPER(v_newline) like
|
||
'GEBOUW;BEDRIJF;LEVNR;BESCHRIJVING;INGANGSDATUM;EINDDATUM;ORDEROMSCHRIJVING;BEDRAG;TERMIJNBEDRAG;DIENST;CONTRACTSOORT;CONTRACTNR;VERSIE;REGELNR;CONTRACTAFDELING;CONTRACTMANAGER;GEWIJZIGDDOOR%')
|
||
THEN
|
||
v_header_is_valid := 1;
|
||
ELSE
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_gebouw_code);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (leverancier)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_leverancier);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (leveranciernummer)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_leveranciernummer);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (beschrijving)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_beschrijving);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (van)' || v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_van);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (tot)' || v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_tot);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (omschrijving)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_omschrijving);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (bedrag)' || v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_bedrag);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (termijnbedrag)' || v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_termijnbedrag);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (dienst)' || v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_dienst);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (dienst)' || v_gebouw_code;
|
||
fac.imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_contractsoort);
|
||
|
||
-- controleeer of het contractsoort bestaat
|
||
v_errormsg :=
|
||
'Controleer of de contractsoort al bestaat: ' || v_contractsoort;
|
||
BEGIN
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM cnt_discipline
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND UPPER (TRIM (ins_discipline_omschrijving)) =
|
||
UPPER (TRIM (SUBSTR(v_contractsoort,1,30)));
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || 'Onbekende contractsoort: ' || v_contractsoort,
|
||
'Toelichting: ... ');
|
||
END;
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (contractcode):'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_contractnummer);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (versie)' || v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_versie);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (volgnummer)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline, C_FIELDDELIMITOR, v_volgnummer);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (contractafdeling)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_contractafdeling);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (contractmanager)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_contractmanager);
|
||
--
|
||
v_errormsg :=
|
||
'Fout opvragen te importeren rij (gewijzigddoor)'
|
||
|| v_gebouw_code;
|
||
fac.imp_getfield (v_newline,
|
||
C_FIELDDELIMITOR,
|
||
v_gewijzigddoor);
|
||
|
||
|
||
-- Insert geformatteerde import record
|
||
|
||
v_errormsg :=
|
||
'Fout bij toevoegen te importeren gebouw ['
|
||
|| v_gebouw_code
|
||
|| ']';
|
||
|
||
INSERT INTO AAXX_IMP_CONTRACT (gebouw,
|
||
leverancier,
|
||
leveranciernummer,
|
||
beschrijving,
|
||
van,
|
||
tot,
|
||
omschrijving,
|
||
bedrag,
|
||
termijnbedrag,
|
||
dienst,
|
||
contractsoort,
|
||
contractnummer,
|
||
versie,
|
||
volgnummer,
|
||
contractafdeling,
|
||
contractmanager,
|
||
gewijzigddoor,
|
||
volgorde)
|
||
VALUES (v_gebouw_code,
|
||
v_leverancier,
|
||
v_leveranciernummer,
|
||
v_beschrijving,
|
||
fac.safe_to_date (v_van, 'dd-mm-yy'),
|
||
fac.safe_to_date (v_tot, 'dd-mm-yy'),
|
||
v_omschrijving,
|
||
aaxx_get_imp_float (v_bedrag),
|
||
aaxx_get_imp_float (v_termijnbedrag),
|
||
v_dienst,
|
||
SUBSTR(v_contractsoort,1,30),
|
||
TRIM(v_contractnummer),
|
||
v_versie,
|
||
fac.safe_to_number (
|
||
REPLACE (v_volgnummer, ',', '.')),
|
||
v_contractafdeling,
|
||
v_contractmanager,
|
||
v_gewijzigddoor,
|
||
rec.fac_imp_file_index);
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
|
||
IF v_header_is_valid = 0
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || 'Ongeldig importbestand',
|
||
'Toelichting: ... ');
|
||
END IF;
|
||
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
v_hint := v_errormsg;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_hint);
|
||
END aaxx_import_contract;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_contract (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR cdisc
|
||
IS
|
||
SELECT contractsoort, MIN(volgorde) volgorde
|
||
FROM aaxx_imp_contract
|
||
WHERE NOT EXISTS
|
||
(SELECT ins_discipline_key
|
||
FROM cnt_discipline
|
||
WHERE UPPER (TRIM (ins_discipline_omschrijving)) =
|
||
UPPER (TRIM (contractsoort)))
|
||
GROUP BY contractsoort;
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM aaxx_imp_contract
|
||
ORDER BY volgorde;
|
||
|
||
e_bestaand_contractnr EXCEPTION;
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_oldcountcnt NUMBER;
|
||
v_newcountcnt NUMBER;
|
||
v_countcnt NUMBER;
|
||
v_errormsg VARCHAR (1000);
|
||
v_error NUMBER (1);
|
||
v_error_hint VARCHAR (1000);
|
||
oracle_err_mes VARCHAR2 (150);
|
||
oracle_err_num VARCHAR2 (150);
|
||
currentversion fac_module.fac_module_version%TYPE;
|
||
v_gebouw_key NUMBER;
|
||
v_dienst_key NUMBER;
|
||
v_afdeling_key NUMBER;
|
||
v_perslid_key NUMBER;
|
||
v_perslid_man_key NUMBER;
|
||
v_discipline_key NUMBER;
|
||
v_contract_key NUMBER;
|
||
v_bedrijf_key NUMBER;
|
||
v_kostenplaats_key NUMBER;
|
||
v_count NUMBER;
|
||
BEGIN
|
||
v_error := 0;
|
||
|
||
SELECT MAX (fac_module_version) INTO currentversion FROM fac_module;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'AAFM Contract import version ' || currentversion,
|
||
'$Revision$');
|
||
|
||
SELECT COUNT ( * ) INTO v_countcnt FROM aaxx_imp_contract;
|
||
|
||
IF v_countcnt = 0
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'AAFM Contract import bevat geen records',
|
||
'$Revision$');
|
||
RETURN;
|
||
END IF;
|
||
|
||
SELECT COUNT ( * ) INTO v_oldcountcnt FROM cnt_contract;
|
||
|
||
UPDATE cnt_contract
|
||
SET cnt_contract_versie = '0'
|
||
WHERE cnt_contract_versie IS NULL;
|
||
|
||
FOR rec IN cdisc
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := ' regel[' || rec.volgorde || '] contractsoort: ' || rec.contractsoort;
|
||
v_error_hint := 'Toevoegen contractsoort:' || rec.contractsoort;
|
||
|
||
INSERT INTO ins_tab_discipline (ins_discipline_module,
|
||
ins_discipline_omschrijving)
|
||
VALUES ('CNT', rec.contractsoort)
|
||
RETURNING ins_discipline_key
|
||
INTO v_discipline_key;
|
||
|
||
INSERT INTO cnt_disc_params (cnt_ins_discipline_key,
|
||
cnt_srtcontract_type)
|
||
VALUES (v_discipline_key, 5);
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding :=
|
||
'regel['
|
||
|| rec.volgorde
|
||
|| '] nummer: '
|
||
|| rec.contractnummer
|
||
|| ' versie: '
|
||
|| rec.versie
|
||
|| ' volgnummer: '
|
||
|| rec.volgnummer;
|
||
v_error_hint := 'Controle op bedrijf (check contract vinkje)';
|
||
|
||
v_perslid_man_key := NULL;
|
||
|
||
SELECT prs_bedrijf_key
|
||
INTO v_bedrijf_key
|
||
FROM prs_v_aanwezigbedrijf
|
||
WHERE prs_bedrijf_contract = 1
|
||
AND ( UPPER (TRIM (prs_leverancier_nr)) = UPPER (TRIM (rec.leveranciernummer))
|
||
OR (rec.leveranciernummer IS NULL AND rec.leverancier = prs_bedrijf_naam));
|
||
|
||
v_error_hint := 'Controle op dienst';
|
||
|
||
IF rec.dienst IS NOT NULL
|
||
THEN
|
||
SELECT prs_dienst_key
|
||
INTO v_dienst_key
|
||
FROM prs_dienst
|
||
WHERE UPPER (TRIM (prs_dienst_omschrijving)) = UPPER (TRIM (rec.dienst));
|
||
END IF;
|
||
|
||
v_error_hint := 'Controle op contractsoort';
|
||
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM cnt_discipline
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND UPPER (TRIM (ins_discipline_omschrijving)) =
|
||
UPPER (TRIM (rec.contractsoort));
|
||
|
||
v_error_hint := 'Controle op contractafdeling';
|
||
|
||
SELECT prs_afdeling_key
|
||
INTO v_afdeling_key
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_verwijder IS NULL
|
||
AND UPPER (TRIM (prs_afdeling_naam)) = UPPER (TRIM (rec.contractafdeling));
|
||
|
||
v_error_hint := 'Controle op contractmanager';
|
||
|
||
IF rec.contractmanager IS NOT NULL
|
||
THEN
|
||
SELECT prs_perslid_key
|
||
INTO v_perslid_man_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_oslogin = UPPER (TRIM (rec.contractmanager))
|
||
OR prs_perslid_oslogin2 = UPPER (TRIM (rec.contractmanager));
|
||
END IF;
|
||
|
||
v_error_hint := 'Controle op gewijzigddoor';
|
||
|
||
SELECT prs_perslid_key
|
||
INTO v_perslid_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_oslogin = UPPER (TRIM (rec.gewijzigddoor))
|
||
OR prs_perslid_oslogin2 = UPPER (TRIM (rec.gewijzigddoor));
|
||
|
||
IF rec.volgnummer IS NULL
|
||
THEN
|
||
-- kopregel
|
||
v_contract_key := NULL;
|
||
v_error_hint := 'Controle op kostenplaats';
|
||
|
||
SELECT prs_kostenplaats_key
|
||
INTO v_kostenplaats_key
|
||
FROM prs_v_aanwezigkostenplaats
|
||
WHERE UPPER (TRIM (prs_kostenplaats_nr)) = UPPER (TRIM (rec.gebouw));
|
||
|
||
v_error_hint := 'Controle op contractnummer';
|
||
|
||
IF rec.contractnummer IS NOT NULL
|
||
THEN
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM cnt_v_aanwezigcontract
|
||
WHERE TRIM (cnt_contract_nummer_intern) = TRIM (rec.contractnummer)
|
||
AND cnt_contract_versie = rec.versie;
|
||
|
||
IF v_count > 0
|
||
THEN
|
||
RAISE e_bestaand_contractnr;
|
||
END IF;
|
||
END IF;
|
||
|
||
v_error_hint := 'Toevoegen contract';
|
||
|
||
INSERT INTO cnt_contract (cnt_contract_nummer,
|
||
cnt_contract_nummer_intern,
|
||
cnt_contract_omschrijving,
|
||
cnt_contract_document,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
cnt_contract_status,
|
||
cnt_contract_kosten,
|
||
cnt_contract_termijnkosten,
|
||
cnt_prs_bedrijf_key,
|
||
prs_afdeling_key_eig,
|
||
ins_discipline_key,
|
||
prs_perslid_key_eig,
|
||
prs_perslid_key_beh,
|
||
prs_kostenplaats_key,
|
||
cnt_contract_versie,
|
||
cnt_contract_opzegtermijn,
|
||
cnt_contract_rappeltermijn)
|
||
VALUES (rec.contractnummer,
|
||
rec.contractnummer,
|
||
SUBSTR (rec.beschrijving, 1, 50),
|
||
REPLACE (REPLACE (rec.omschrijving, '<(>', ''),
|
||
'<)>',
|
||
''),
|
||
rec.van,
|
||
rec.tot,
|
||
2, -- Nieuw
|
||
rec.bedrag,
|
||
rec.termijnbedrag,
|
||
v_bedrijf_key,
|
||
v_afdeling_key,
|
||
v_discipline_key,
|
||
v_perslid_man_key,
|
||
v_perslid_key,
|
||
v_kostenplaats_key,
|
||
DECODE(rec.versie, '0', NULL, rec.versie),
|
||
1,
|
||
1)
|
||
RETURNING cnt_contract_key
|
||
INTO v_contract_key;
|
||
|
||
-- controle of het om bestaande contractnummers gaat. Indien het een import van nieuwe
|
||
-- contracten betreft, zal vaak het contractnummer leeg zijn. We vullen dan het contractnummer
|
||
-- met de key van het contract.
|
||
IF rec.contractnummer IS NULL
|
||
THEN
|
||
UPDATE cnt_contract
|
||
SET cnt_contract_nummer = cnt_contract_key,
|
||
cnt_contract_nummer_intern = cnt_contract_key
|
||
WHERE cnt_contract_key = v_contract_key;
|
||
END IF;
|
||
|
||
-- als we versie 1 van een contract gaan toevoegen moeten we het initiele contract met
|
||
-- versie NULL gaan omzetten naar versie 0.
|
||
IF rec.versie = '1'
|
||
THEN
|
||
UPDATE cnt_contract
|
||
SET cnt_contract_versie = '0'
|
||
WHERE cnt_contract_nummer = rec.contractnummer
|
||
AND cnt_contract_versie IS NULL;
|
||
END IF;
|
||
ELSE
|
||
v_error_hint := 'Controle op gebouwcode';
|
||
|
||
SELECT alg_gebouw_key
|
||
INTO v_gebouw_key
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) = UPPER (rec.gebouw);
|
||
|
||
-- als het bovenliggende contract niet aangemaakt kon worden gaan we ook geen scope invullen.
|
||
IF v_contract_key IS NOT NULL
|
||
THEN
|
||
-- Scope van het contract zetten.
|
||
INSERT INTO cnt_contract_plaats (cnt_contract_key,
|
||
cnt_alg_plaats_key,
|
||
cnt_alg_plaats_code,
|
||
cnt_contract_plaats_gewicht)
|
||
VALUES (v_contract_key,
|
||
v_gebouw_key,
|
||
'G',
|
||
rec.bedrag);
|
||
END IF;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
IF oracle_err_num = 1 THEN oracle_err_mes := 'Combinatie contractnummer/versie bestaat al.'; END IF;
|
||
IF oracle_err_num = -1422 THEN oracle_err_mes := 'Controle levert meer dan <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 inspecties / MJOB
|
||
-------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_insp_mjob (p_import_key IN NUMBER)
|
||
IS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR (1000);
|
||
v_hint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_ongeldig NUMBER (1);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_header_is_valid NUMBER (1);
|
||
v_dummy VARCHAR2 (1000);
|
||
v_count NUMBER;
|
||
v_count_rec NUMBER := 0 ; -- totaal aantal record in csv
|
||
v_count_verwerk NUMBER ; -- aantal te verwerken regels
|
||
v_count_n_taak NUMBER ; -- aantal nieuw aan te maken basistaken
|
||
v_count_n_taakobject NUMBER ; -- aantal nieuw aan te maken objecttaken
|
||
v_count_w_taak NUMBER ; -- aantal bestaande taken te wijzigen
|
||
|
||
-- De importvelden:
|
||
v_locatiecode VARCHAR2(1000);
|
||
v_objectomschrijving VARCHAR2(1000);
|
||
v_taakcategorie VARCHAR2(1000);
|
||
v_taakomschrijving VARCHAR2(1000);
|
||
v_taakomschrijving_nieuw VARCHAR2(1000); -- Vullen we in kolom extra_veld5
|
||
v_taakopmerking VARCHAR2(1000);
|
||
v_taakgroep VARCHAR2(1000);
|
||
v_taakprioriteit VARCHAR2(1000);
|
||
v_taakobjectpercentage VARCHAR2(1000);
|
||
v_taakobjectopmerking VARCHAR2(1000);
|
||
v_taakobjectperiode VARCHAR2(1000);
|
||
v_taakobjectstartjaar VARCHAR2(1000); -- Startjaar uit CSV
|
||
v_taakobjectstartjaar_d DATE;
|
||
v_object_aanmaak DATE; -- Datum aanmaak van Object
|
||
|
||
v_taakobjecteindjaar VARCHAR2(1000);
|
||
v_taakobjecteindjaar_d DATE;
|
||
v_taakobjectmateriaal VARCHAR2(1000);
|
||
v_taakobjectkosten VARCHAR2(1000);
|
||
v_taakobjecteenheid VARCHAR2(1000);
|
||
v_taakdienst VARCHAR2(1000);
|
||
v_deel_key NUMBER(10);
|
||
v_discipline_key NUMBER(10);
|
||
v_ismjob NUMBER;
|
||
v_taak_geschiedenis NUMBER (10); -- Vullen we in kolom extra_veld4
|
||
|
||
v_srtcontrole_key NUMBER(10);
|
||
v_srtcontrole_teller NUMBER(10);
|
||
v_ins_srtdeel_key NUMBER(10);
|
||
v_ins_srtdeel_code VARCHAR2(10);
|
||
v_ins_srtcontroledl_xcp_key NUMBER(10);
|
||
v_taakobject_startjaar_d DATE; -- Startjaar van de reeds in Facilitor gekoppelde objecttaak
|
||
|
||
CURSOR c
|
||
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_insp_mjob;
|
||
|
||
COMMIT;
|
||
|
||
v_header_is_valid := 0;
|
||
v_ongeldig := 0;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
|
||
BEGIN
|
||
v_ongeldig := 0;
|
||
v_taak_geschiedenis := NULL ;
|
||
v_deel_key := NULL ;
|
||
v_ins_srtdeel_key := NULL ;
|
||
v_ins_srtdeel_code := NULL ;
|
||
v_srtcontrole_key := NULL ;
|
||
v_ins_srtcontroledl_xcp_key := NULL;
|
||
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
v_newline := rec.fac_imp_file_line;
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij:' || SUBSTR (v_newline, 1, 200);
|
||
v_aanduiding := '';
|
||
|
||
-- OUD: 'OBJECTOMSCHRIJVING;TAAKCATEGORIE;TAAKOMSCHRIJVING;TAAKOPMERKING;TAAKGROEP;TAAKPRIORITEIT;TAAKBTW;TAAKKOSTENPLAATSNR;TAAKKOSTENPLAATSOMSCHRIJVING;TAAKOBJECTPERCENTAGE;TAAKOBJECTOPMERKING;TAAKOBJECTEENHEID;TAAKOBJECTPERIODE;TAAKOBJECTSTARTJAAR;TAAKOBJECTEINDJAAR;TAAKOBJECTKOSTEN%
|
||
-- NIEUW (vanaf 2020-6): OBJECTIDENTIFICATIE;TAAKCATEGORIE;TAAKOMSCHRIJVING;TAAKOPMERKING;TAAKGROEP;TAAKPRIORITEIT;TAAKOBJECTPERCENTAGE;TAAKOBJECTOPMERKING;TAAKOBJECTEENHEID;TAAKOBJECTPERIODE;TAAKOBJECTSTARTJAAR;TAAKOBJECTEINDJAAR;TAAKOBJECTKOSTEN;DIENST;TAAKOMSCHRIJVINGNIEUW;
|
||
|
||
IF (REPLACE(UPPER (v_newline), ' ') LIKE 'OBJECTIDENTIFICATIE;TAAKCATEGORIE;TAAKOMSCHRIJVING;TAAKOPMERKING;TAAKGROEP;TAAKPRIORITEIT;TAAKOBJECTPERCENTAGE;TAAKOBJECTOPMERKING;TAAKOBJECTEENHEID;TAAKOBJECTPERIODE;TAAKOBJECTSTARTJAAR;TAAKOBJECTEINDJAAR;TAAKOBJECTKOSTEN;DIENST;TAAKOMSCHRIJVINGNIEUW%')
|
||
THEN
|
||
v_header_is_valid := 1;
|
||
ELSE
|
||
-- Lees alle veldwaarden
|
||
v_count_rec := v_count_rec + 1 ;
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (object)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_objectomschrijving);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (discipline)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakcategorie);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (taakomschrijving)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakomschrijving);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (taakopmerking)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakopmerking);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (taakgroep)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakgroep);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (prioriteit)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakprioriteit);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (percentage)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectpercentage);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (opmerking)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectopmerking);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (eenheid)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjecteenheid);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (periode)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectperiode);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (startjaar)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectstartjaar);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (eindjaar)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjecteindjaar);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (materiaal)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectmateriaal);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (dienst)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakdienst);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (taakomschrijvingnieuw)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakomschrijving_nieuw);
|
||
|
||
|
||
IF v_header_is_valid = 1 THEN -- Als geldige header gepasseerd en csv-recordvelden gevuld dan gaan we eerst checken of data klopt
|
||
|
||
-- Controleer of het object bestaat
|
||
-- Controleer of object er meerdere keren in staat (valt terug naar OTHERS, regel 300)
|
||
BEGIN
|
||
v_errormsg :=
|
||
'Fout bij opzoeken object: ' || v_objectomschrijving ||' komt vaker dan 1 keer voor';
|
||
|
||
SELECT ins_deel_key
|
||
INTO v_deel_key
|
||
FROM ins_deel
|
||
WHERE ins_deel_omschrijving = v_objectomschrijving
|
||
AND ins_deel_verwijder IS NULL;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Object bestaat niet - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving);
|
||
v_ongeldig := 1;
|
||
END;
|
||
|
||
-- Controleer de taakcategorie
|
||
v_errormsg :=
|
||
'Fout bij controleren taakcategorie ' ;
|
||
BEGIN
|
||
SELECT ins_discipline_key, ctr_disc_params_ismjob
|
||
INTO v_discipline_key, v_ismjob
|
||
FROM ins_tab_discipline d, ctr_disc_params dp
|
||
WHERE dp.ctr_ins_discipline_key = d.ins_discipline_key
|
||
AND UPPER (d.ins_discipline_omschrijving) = TRIM(UPPER(v_taakcategorie));
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Inspectie discipline niet gevonden - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_taakcategorie);
|
||
v_ongeldig := 1;
|
||
END;
|
||
|
||
-- Controleer de eenheid
|
||
IF v_ismjob = 1
|
||
THEN
|
||
v_taakobjecteenheid := '4'; -- jaar
|
||
END IF;
|
||
|
||
IF v_taakobjecteenheid IS NOT NULL AND v_taakobjecteenheid NOT IN ('1', '2', '3', '4')
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Eenheid is niet correct gevuld (of leeg of 1,2,3,4) - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjecteenheid);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Controleer dienst
|
||
v_errormsg :=
|
||
'Fout controleren dienst ';
|
||
|
||
IF v_taakdienst IS NOT NULL
|
||
THEN
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM prs_dienst
|
||
WHERE UPPER(prs_dienst_omschrijving) = UPPER(v_taakdienst);
|
||
|
||
IF v_count = 0
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'W', 'Dienst onbekend - zal bij verwerken aangemaakt worden.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakdienst);
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Controleer de kosten - leeg of numeriek
|
||
v_errormsg :=
|
||
'Fout controleren kosten ';
|
||
|
||
IF v_taakobjectmateriaal IS NOT NULL AND fac.safe_to_number (REPLACE (v_taakobjectmateriaal, ',', '.')) IS NULL
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Kosten taakobject niet goed ingevuld - Regel wordt niet verwerkt.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || 'Kosten csv: ' || v_taakobjectmateriaal);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Controleer de taakperiode - Leeg of numeriek
|
||
v_errormsg :=
|
||
'Fout controleren taakperiode ';
|
||
|
||
IF v_taakobjectperiode IS NOT NULL AND fac.safe_to_number (v_taakobjectperiode) IS NULL
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Ongeldige taakobjectperiode - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjectperiode);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Controleer de taakprioriteit - Leeg of numeriek
|
||
v_errormsg :=
|
||
'Fout controleren taakprioriteit ';
|
||
|
||
IF v_taakprioriteit IS NOT NULL AND fac.safe_to_number (v_taakprioriteit) IS NULL
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Prioriteit taak niet goed ingevuld - Regel wordt niet verwerkt.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || 'Kosten csv: ' || v_taakprioriteit);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Controleer de startdatum
|
||
v_errormsg :=
|
||
'Fout bij controle startdatum ';
|
||
|
||
-- In geval jaar-invoer op datum zetten..
|
||
IF LENGTH (v_taakobjectstartjaar) = 4
|
||
THEN
|
||
v_taakobjectstartjaar := '01-01-' || v_taakobjectstartjaar;
|
||
END IF;
|
||
|
||
IF v_taakobjectstartjaar IS NOT NULL AND fac.safe_to_date (v_taakobjectstartjaar, 'dd-mm-yyyy') IS NULL
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Startdatum ongeldige invoer - Regel wordt niet verwerkt.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - Datum csv: ' || v_taakobjectstartjaar);
|
||
v_ongeldig := 1;
|
||
ELSE
|
||
v_taakobjectstartjaar_d := fac.safe_to_date(v_taakobjectstartjaar, 'dd-mm-yyyy') ;
|
||
END IF;
|
||
|
||
-- Hier controleren of de startdatum voor de Objectregisratiedatum ligt
|
||
v_errormsg :=
|
||
'Fout bij controle start- en objectregistratiedatum ';
|
||
|
||
IF v_deel_key IS NOT NULL AND v_ongeldig = 0
|
||
THEN
|
||
|
||
SELECT ins_deel_aanmaak
|
||
INTO v_object_aanmaak
|
||
FROM ins_deel
|
||
WHERE ins_deel_key = v_deel_key ;
|
||
|
||
IF v_taakobjectstartjaar_d < v_object_aanmaak
|
||
THEN
|
||
v_taakobjectstartjaar_d := v_object_aanmaak;
|
||
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'W', 'Startdatum objecttaak ligt voor Objectregistratiedatum - Startdatum zal bij verwerken gelijkgezet worden aan de Objectregistratiedatum.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - Datum csv: ' || v_taakobjectstartjaar || ' wordt ' || v_object_aanmaak);
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Controleer de einddatum
|
||
v_errormsg :=
|
||
'Fout bij controle einddatum ';
|
||
|
||
-- In geval jaar-invoer op datum zetten..
|
||
IF LENGTH (v_taakobjecteindjaar) = 4
|
||
THEN
|
||
v_taakobjecteindjaar := '31-12-' || v_taakobjecteindjaar;
|
||
END IF;
|
||
|
||
IF v_taakobjecteindjaar IS NOT NULL AND fac.safe_to_date (v_taakobjecteindjaar, 'dd-mm-yyyy') IS NULL
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Einddatum ongeldige invoer - Regel wordt niet verwerkt.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - Datum csv: ' || v_taakobjecteindjaar);
|
||
v_ongeldig := 1;
|
||
ELSE
|
||
v_taakobjecteindjaar_d := fac.safe_to_date(v_taakobjecteindjaar, 'dd-mm-yyyy') ;
|
||
END IF;
|
||
|
||
-- Hier controleren of de taak al bestaat...
|
||
v_errormsg :=
|
||
'Fout controleren nieuwe of bestaande taak ' || rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving ;
|
||
|
||
IF v_deel_key IS NOT NULL AND v_ongeldig = 0
|
||
THEN
|
||
|
||
-- Eerst ins_srtdeel_code bepalen
|
||
SELECT d.ins_srtdeel_key, sd.ins_srtdeel_code
|
||
INTO v_ins_srtdeel_key, v_ins_srtdeel_code
|
||
FROM ins_deel d, ins_srtdeel sd
|
||
WHERE d.ins_deel_key = v_deel_key
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND ins_deel_verwijder IS NULL;
|
||
|
||
-- Vervolgens kijken of er al een taak op aangemaakt is
|
||
|
||
SELECT count(*)
|
||
INTO v_srtcontrole_teller
|
||
FROM ins_srtcontrole
|
||
WHERE LOWER(ins_srtcontrole_omschrijving) =
|
||
SUBSTR (
|
||
TRIM (
|
||
v_ins_srtdeel_code
|
||
|| ' - '
|
||
|| LOWER(v_taakomschrijving)),
|
||
1,
|
||
60);
|
||
|
||
-- Zo ja, dan gaan we de srt_controle_key vullen
|
||
--- Ps. Komt soms bij heyday voor dat eenzelfde basistaak er meer dan 1 keer in staat (per ongeluk) en daarom pakken we hier dan de max(key).
|
||
IF v_srtcontrole_teller >0 THEN
|
||
|
||
SELECT max(ins_srtcontrole_key)
|
||
INTO v_srtcontrole_key
|
||
FROM ins_srtcontrole
|
||
WHERE LOWER(ins_srtcontrole_omschrijving) =
|
||
SUBSTR (
|
||
TRIM (
|
||
v_ins_srtdeel_code
|
||
|| ' - '
|
||
|| LOWER(v_taakomschrijving)),
|
||
1,
|
||
60) ;
|
||
|
||
ELSE -- Zo niet, dan is het dus geen bestaande standaard taak en gaan we straks in de update NIEUWE taak aanmaken
|
||
|
||
-- En passen dan ook maar gelijk taakomschrijving goed aan
|
||
v_errormsg := 'Fout bij aanpassen taakomschrijving ';
|
||
|
||
IF (LENGTH (TRIM(v_ins_srtdeel_code)) + 3 + LENGTH(TRIM(v_taakomschrijving))) > 60
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'W', 'Nieuwe taak - Aangepast ivm lengte groter dan 60 ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving || ' wordt: ' || SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || v_taakomschrijving), 1, 60) );
|
||
END IF;
|
||
|
||
v_taakomschrijving := SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || v_taakomschrijving), 1, 60) ;
|
||
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Hier controleren of voor de bestaande taak ook de objecttaak al bestaat...
|
||
v_errormsg :=
|
||
'Fout controleren nieuwe of bestaande objecttaak ' || rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving ;
|
||
|
||
IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_srtcontrole_key IS NOT NULL THEN
|
||
|
||
SELECT max(t.ins_srtcontroledl_xcp_key), max(t.ins_srtcontroledl_xcp_startdat)
|
||
INTO v_ins_srtcontroledl_xcp_key, v_taakobject_startjaar_d
|
||
FROM ins_srtcontroledl_xcp t
|
||
WHERE t.ins_srtcontrole_key = v_srtcontrole_key AND t.ins_deel_key = v_deel_key ;
|
||
|
||
END IF;
|
||
|
||
-- Hier controleren of alle verplichte velden voor de nieuwe objecttaak correct zijn gevuld
|
||
---- Dit zijn: Startdatum + Eenheid + Periode + Taakgroep(?) + Percentage (?) + Kosten (?)
|
||
v_errormsg := 'Fout controleren verplichte velden bij nieuwe objecttaak ';
|
||
|
||
IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_ins_srtcontroledl_xcp_key IS NULL THEN
|
||
|
||
IF v_taakobjectstartjaar IS NULL THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Startdatum niet ingevuld - Regel wordt niet verwerkt.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
IF v_taakobjecteenheid IS NULL or v_taakobjecteenheid NOT IN ('1', '2', '3', '4') THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Geen of ongeldige eenheid gevonden - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjecteenheid);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
IF (v_taakobjectperiode IS NULL) OR (v_taakobjectperiode IS NOT NULL AND fac.safe_to_number (v_taakobjectperiode) IS NULL) THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Geen of ongeldige taakobjectperiode - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjectperiode);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
-- Hier controleren of er al geschiedenis op de objecttaak zit en de startdatum afwijkt van degene meegegeven in csv
|
||
v_errormsg :=
|
||
'Fout controleren geschiedenis op objecttaak ';
|
||
|
||
IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_srtcontrole_key IS NOT NULL AND v_ins_srtcontroledl_xcp_key IS NOT NULL THEN
|
||
|
||
v_taak_geschiedenis := 0;
|
||
|
||
SELECT count(*)
|
||
INTO v_taak_geschiedenis
|
||
FROM ins_deelsrtcontrole
|
||
WHERE ins_deel_key = v_deel_key and ins_srtcontrole_key = v_srtcontrole_key ;
|
||
|
||
IF v_taak_geschiedenis > 0 AND v_taakobjectstartjaar IS NOT NULL AND v_taakobjectstartjaar_d <> v_taakobject_startjaar_d
|
||
THEN
|
||
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'W', 'Op deze objecttaak zit al geschiedenis - afwijkende startdatum zal niet aangepast worden.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving || ' - ' || v_taakobjectstartjaar_d || ' vs. ' || v_taakobject_startjaar_d) ;
|
||
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Nu kunnen we de tussentabel vullen
|
||
v_errormsg :=
|
||
'Fout bij toevoegen regel aan tabel '
|
||
|| v_objectomschrijving;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
|
||
INSERT INTO aaxx_imp_insp_mjob (locatiecode,
|
||
objectomschrijving ,
|
||
taakcategorie,
|
||
taakomschrijving,
|
||
taakopmerking,
|
||
taakgroep,
|
||
taakprioriteit,
|
||
taakobjectpercentage,
|
||
taakobjectopmerking,
|
||
taakobjectperiode,
|
||
taakobjectstartjaar,
|
||
taakobjecteindjaar,
|
||
taakobjectmateriaal,
|
||
taakobjecteenheid,
|
||
taakdienst,
|
||
extra_veld4, -- Gebruiken voor taakgeschiedenis
|
||
extra_veld5, -- Gebruiken voor taakomschrijving_nieuw
|
||
deel_key,
|
||
discipline_key,
|
||
ismjob,
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_key,
|
||
ins_srtdeel_key)
|
||
VALUES (v_locatiecode,
|
||
v_objectomschrijving,
|
||
v_taakcategorie,
|
||
v_taakomschrijving,
|
||
v_taakopmerking,
|
||
v_taakgroep,
|
||
v_taakprioriteit,
|
||
v_taakobjectpercentage,
|
||
v_taakobjectopmerking,
|
||
v_taakobjectperiode,
|
||
v_taakobjectstartjaar_d,
|
||
v_taakobjecteindjaar_d,
|
||
v_taakobjectmateriaal,
|
||
v_taakobjecteenheid,
|
||
v_taakdienst,
|
||
v_taak_geschiedenis,
|
||
v_taakomschrijving_nieuw,
|
||
v_deel_key,
|
||
v_discipline_key,
|
||
v_ismjob,
|
||
v_srtcontrole_key,
|
||
v_ins_srtcontroledl_xcp_key,
|
||
v_ins_srtdeel_key);
|
||
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
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;
|
||
END LOOP;
|
||
|
||
-- Aantallen tellen voor logging
|
||
v_errormsg := 'Fout bij tellen aantallen voor logging ' ;
|
||
|
||
v_count_verwerk := 0 ; -- aantal te verwerken regels
|
||
v_count_n_taak := 0 ; -- aantal nieuw aan te maken basistaken
|
||
v_count_n_taakobject := 0 ; -- aantal nieuw aan te maken objecttaken
|
||
v_count_w_taak := 0 ; -- aantal bestaande (object)taken te wijzigen
|
||
|
||
SELECT count(*) INTO v_count_verwerk FROM aaxx_imp_insp_mjob ;
|
||
SELECT count(*) INTO v_count_n_taak FROM (SELECT DISTINCT(taakomschrijving) FROM aaxx_imp_insp_mjob WHERE ins_srtcontrole_key IS NULL) v ;
|
||
SELECT count(*) INTO v_count_n_taakobject FROM aaxx_imp_insp_mjob WHERE ins_srtcontroledl_xcp_key IS NULL ;
|
||
SELECT count(*) INTO v_count_w_taak FROM aaxx_imp_insp_mjob WHERE ins_srtcontrole_key IS NOT NULL AND ins_srtcontroledl_xcp_key IS NOT NULL ;
|
||
|
||
|
||
IF v_header_is_valid = 0
|
||
THEN
|
||
ROLLBACK;
|
||
aaxx_imp_writelog (p_import_key, 'E', v_aanduiding || 'Ongeldig importbestand', 'Toelichting: Verkeerde header. Niet conform specs. ');
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'IMPORT TAKEN: aantal te verwerken regels: ' || TO_CHAR (v_count_verwerk) || ' (van de ' || TO_CHAR (v_count_rec) || ' records in csv)'
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal nieuwe taken: ' || TO_CHAR (v_count_n_taak)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal nieuwe objecttaken: ' || TO_CHAR (v_count_n_taakobject)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal bestaande, te wijzigen (object)taken: ' || TO_CHAR (v_count_w_taak),
|
||
'');
|
||
END IF;
|
||
COMMIT;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
ROLLBACK;
|
||
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_insp_mjob;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_insp_mjob (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c_n -- nieuwe taken en objecttaken aanmaken..
|
||
IS
|
||
SELECT i.*
|
||
FROM aaxx_imp_insp_mjob i
|
||
WHERE i.ins_srtcontrole_key IS NULL;
|
||
|
||
CURSOR c_no -- nieuwe objecttaken aanmaken..
|
||
IS
|
||
SELECT i.*
|
||
FROM aaxx_imp_insp_mjob i
|
||
WHERE i.ins_srtcontrole_key IS NOT NULL AND i.ins_srtcontroledl_xcp_key IS NULL;
|
||
|
||
CURSOR c_m -- bestaande taak en/of objecttaak wijzigen
|
||
IS
|
||
SELECT i.*
|
||
FROM aaxx_imp_insp_mjob i
|
||
WHERE i.ins_srtcontrole_key IS NOT NULL AND i.ins_srtcontroledl_xcp_key IS NOT NULL;
|
||
|
||
v_errormsg VARCHAR2 (4000);
|
||
v_error_hint VARCHAR2 (4000);
|
||
oracle_err_mes VARCHAR2 (4000);
|
||
oracle_err_num VARCHAR2 (4000);
|
||
v_aanduiding VARCHAR2 (1000);
|
||
v_aanduiding_objecttaak VARCHAR2 (1000);
|
||
v_ongeldig NUMBER (1);
|
||
v_ins_srtcontrole_key NUMBER (10);
|
||
v_dienst_key NUMBER (10);
|
||
v_taak_al_aangemaakt NUMBER(10);
|
||
|
||
v_count_verwerk NUMBER := 0 ; -- aantal verwerkte records
|
||
v_count_n_taak NUMBER := 0 ; -- aantal nieuw aangemaakte basistaken
|
||
v_count_n_taakobject NUMBER := 0 ; -- aantal nieuw aangemaakte objecttaken
|
||
v_count_w_taak NUMBER := 0 ; -- aantal bestaande basistaken gewijzigd
|
||
v_count_w_taakobject NUMBER := 0 ; -- aantal bestaande object-taken gewijzigd
|
||
v_count_taak NUMBER := 0 ;
|
||
v_count_taakobject NUMBER := 0 ;
|
||
|
||
|
||
-- Velden
|
||
v_taakomschrijving VARCHAR2(1000);
|
||
v_ins_srtdeel_code VARCHAR2(10);
|
||
v_taakomschrijving_nieuw VARCHAR2(1000);
|
||
v_taakopmerking VARCHAR2(1000);
|
||
v_taakgroep VARCHAR2(1000);
|
||
v_taakdienst_key NUMBER(10);
|
||
v_taakdienst VARCHAR2(1000);
|
||
v_taakprioriteit NUMBER(3);
|
||
v_percentage NUMBER(3);
|
||
v_objecttaakopmerking VARCHAR2(1000);
|
||
v_eenheid NUMBER(3);
|
||
v_periode NUMBER(3);
|
||
v_startjaar DATE;
|
||
v_eindjaar DATE;
|
||
v_materiaalkosten NUMBER(10);
|
||
|
||
BEGIN
|
||
v_ongeldig := 0;
|
||
|
||
FOR rec IN c_n
|
||
LOOP
|
||
|
||
BEGIN
|
||
v_aanduiding :=
|
||
rec.objectomschrijving
|
||
|| ' / '
|
||
|| rec.taakcategorie
|
||
|| ' - '
|
||
|| rec.taakomschrijving;
|
||
|
||
-- Eenzelfde basistaak kan meerdere keren in CSV zitten.
|
||
-- Daarom gaan we in deze cursor eerst kijken of de basistaak er in deze LOOP al ingezet is.
|
||
-- Zo ja, dan kunnen we door naar de Objecttaak. Zo niet, dan gaan we eerst de basis
|
||
v_errormsg := 'Opzoeken basistaak ' || v_aanduiding;
|
||
v_taak_al_aangemaakt:=0;
|
||
|
||
SELECT count(*)
|
||
INTO v_taak_al_aangemaakt
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtcontrole_omschrijving = rec.taakomschrijving;
|
||
|
||
-- Als basistaak al in loop was aangemaakt nog even de key erbij zoeken
|
||
IF v_taak_al_aangemaakt >0
|
||
THEN
|
||
|
||
SELECT max(ins_srtcontrole_key)
|
||
INTO v_ins_srtcontrole_key
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtcontrole_omschrijving = rec.taakomschrijving;
|
||
|
||
END IF;
|
||
|
||
-- Basistaak aanmaken
|
||
IF v_taak_al_aangemaakt = 0
|
||
THEN
|
||
|
||
-- We gaan we eerst op zoek naar de dienst.
|
||
v_errormsg := 'Aanmaken/opzoeken dienst ' || v_aanduiding;
|
||
v_dienst_key := NULL;
|
||
IF rec.taakdienst IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT prs_dienst_key
|
||
INTO v_dienst_key
|
||
FROM prs_dienst
|
||
WHERE UPPER(prs_dienst_omschrijving) = UPPER(SUBSTR(rec.taakdienst, 1,60));
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO prs_dienst (prs_dienst_omschrijving)
|
||
VALUES (SUBSTR(rec.taakdienst,1,60))
|
||
RETURNING prs_dienst_key INTO v_dienst_key;
|
||
END;
|
||
END IF;
|
||
|
||
v_count_verwerk := v_count_verwerk + 1 ;
|
||
v_count_n_taak := v_count_n_taak +1 ;
|
||
|
||
v_errormsg := 'Aanmaken taak ' || v_aanduiding;
|
||
INSERT INTO ins_srtcontrole (
|
||
ins_srtinstallatie_key,
|
||
ins_srtcontrole_niveau,
|
||
ins_srtcontrole_omschrijving,
|
||
ctr_discipline_key,
|
||
ins_srtcontrole_info,
|
||
ins_srtcontrole_periode,
|
||
ins_srtcontrole_eenheid,
|
||
ins_srtcontrole_mode,
|
||
ins_srtcontrole_level,
|
||
ins_srtcontrole_opmerking,
|
||
prs_dienst_key)
|
||
VALUES (
|
||
rec.ins_srtdeel_key,
|
||
'S',
|
||
rec.taakomschrijving,
|
||
rec.discipline_key,
|
||
NULL,
|
||
0,
|
||
rec.taakobjecteenheid,
|
||
1,
|
||
COALESCE (rec.taakprioriteit, '0'),
|
||
rec.taakopmerking,
|
||
v_dienst_key)
|
||
RETURNING ins_srtcontrole_key
|
||
INTO v_ins_srtcontrole_key;
|
||
|
||
fac.trackaction('CTRSUP', v_ins_srtcontrole_key, 4, NULL, 'Periodieke taak toegevoegd - Via taakimport ');
|
||
|
||
END IF;
|
||
|
||
-- Nu kunnen we de objectaak aanmaken
|
||
v_count_n_taakobject := v_count_n_taakobject +1 ;
|
||
|
||
v_errormsg := 'Aanmaken taak object ' || v_aanduiding || ' ['
|
||
|| rec.deel_key || '|'
|
||
|| v_ins_srtcontrole_key || '|'
|
||
|| rec.taakobjectperiode || '|'
|
||
|| rec.taakobjecteenheid || '|'
|
||
|| fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) || '|'
|
||
|| ROUND(fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.'))) || '|'
|
||
|| rec.taakgroep || '|'
|
||
|| rec.taakobjectopmerking || '|'
|
||
|| rec.taakobjectstartjaar || ']';
|
||
|
||
INSERT INTO ins_srtcontroledl_xcp (
|
||
ins_deel_key,
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_periode,
|
||
ins_srtcontroledl_xcp_eenheid,
|
||
ins_srtcontroledl_xcp_materia,
|
||
ins_srtcontroledl_xcp_perc,
|
||
ins_srtcontroledl_xcp_groep,
|
||
ins_srtcontroledl_xcp_opmerk,
|
||
ins_srtcontroledl_xcp_startdat)
|
||
VALUES (
|
||
rec.deel_key,
|
||
v_ins_srtcontrole_key,
|
||
rec.taakobjectperiode,
|
||
rec.taakobjecteenheid,
|
||
fac.safe_to_number (
|
||
REPLACE (rec.taakobjectmateriaal, ',', '.')),
|
||
ROUND(fac.safe_to_number (
|
||
REPLACE (rec.taakobjectpercentage, ',', '.'))),
|
||
rec.taakgroep,
|
||
rec.taakobjectopmerking,
|
||
rec.taakobjectstartjaar
|
||
);
|
||
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
|
||
|| ')';
|
||
aaxx_imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
v_ongeldig := 1;
|
||
END;
|
||
v_aanduiding := 'Einde loop ' || v_aanduiding;
|
||
END LOOP;
|
||
|
||
FOR rec IN c_no
|
||
LOOP
|
||
BEGIN
|
||
|
||
v_aanduiding :=
|
||
rec.objectomschrijving
|
||
|| ' / '
|
||
|| rec.taakcategorie
|
||
|| ' - '
|
||
|| rec.taakomschrijving;
|
||
|
||
-- We kunnen direct objectaak aanmaken
|
||
v_count_verwerk := v_count_verwerk + 1 ;
|
||
v_count_n_taakobject := v_count_n_taakobject +1 ;
|
||
|
||
v_errormsg := 'Aanmaken taak object ' || v_aanduiding || ' ['
|
||
|| rec.deel_key || '|'
|
||
|| rec.ins_srtcontrole_key || '|'
|
||
|| rec.taakobjectperiode || '|'
|
||
|| rec.taakobjecteenheid || '|'
|
||
|| fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) || '|'
|
||
|| ROUND(fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.'))) || '|'
|
||
|| rec.taakgroep || '|'
|
||
|| rec.taakobjectopmerking || '|'
|
||
|| rec.taakobjectstartjaar || ']';
|
||
INSERT INTO ins_srtcontroledl_xcp (
|
||
ins_deel_key,
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_periode,
|
||
ins_srtcontroledl_xcp_eenheid,
|
||
ins_srtcontroledl_xcp_materia,
|
||
ins_srtcontroledl_xcp_perc,
|
||
ins_srtcontroledl_xcp_groep,
|
||
ins_srtcontroledl_xcp_opmerk,
|
||
ins_srtcontroledl_xcp_startdat)
|
||
VALUES (
|
||
rec.deel_key,
|
||
rec.ins_srtcontrole_key,
|
||
rec.taakobjectperiode,
|
||
rec.taakobjecteenheid,
|
||
fac.safe_to_number (
|
||
REPLACE (rec.taakobjectmateriaal, ',', '.')),
|
||
ROUND(fac.safe_to_number (
|
||
REPLACE (rec.taakobjectpercentage, ',', '.'))),
|
||
rec.taakgroep,
|
||
rec.taakobjectopmerking,
|
||
rec.taakobjectstartjaar);
|
||
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
|
||
|| ')';
|
||
aaxx_imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
v_ongeldig := 1;
|
||
END;
|
||
v_aanduiding := 'Einde loop ' || v_aanduiding;
|
||
END LOOP;
|
||
|
||
FOR rec IN c_m
|
||
LOOP
|
||
BEGIN
|
||
v_count_verwerk := v_count_verwerk + 1 ;
|
||
|
||
v_aanduiding :=
|
||
rec.objectomschrijving
|
||
|| ' / '
|
||
|| rec.taakcategorie
|
||
|| ' - '
|
||
|| rec.taakomschrijving;
|
||
|
||
-- Basis-taak - Taakomschrijving
|
||
v_errormsg := 'Fout taakomschrijving wijzigen ';
|
||
v_taakomschrijving := '' ; -- huidige taakomschrijving
|
||
v_taakomschrijving_nieuw := '' ;
|
||
|
||
IF rec.extra_veld5 IS NOT NULL
|
||
THEN
|
||
|
||
-- Eerst de objectsrt-code ophalen en nieuwe taakomschrijving bepalen
|
||
SELECT ins_srtdeel_code_upper
|
||
INTO v_ins_srtdeel_code
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_key = rec.ins_srtdeel_key ;
|
||
|
||
v_taakomschrijving_nieuw := SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || rec.extra_veld5), 1, 60) ;
|
||
|
||
-- Huidige omschrijving ophalen
|
||
SELECT ins_srtcontrole_omschrijving
|
||
INTO v_taakomschrijving
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
|
||
IF v_taakomschrijving <> v_taakomschrijving_nieuw
|
||
THEN
|
||
|
||
UPDATE ins_srtcontrole
|
||
SET ins_srtcontrole_omschrijving = v_taakomschrijving_nieuw
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
v_count_taak:= 1 ;
|
||
|
||
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd Taakomschrijving: ' || v_taakomschrijving || '-->' || v_taakomschrijving_nieuw);
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
-- Basis-taak - Taakopmerking
|
||
v_errormsg := 'Fout taakopmerking wijzigen ';
|
||
|
||
SELECT ins_srtcontrole_opmerking
|
||
INTO v_taakopmerking
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
|
||
IF v_taakopmerking IS NULL THEN v_taakopmerking := '<leeg>' ;
|
||
END IF;
|
||
|
||
IF v_taakopmerking <> rec.taakopmerking AND rec.taakopmerking IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE ins_srtcontrole
|
||
SET ins_srtcontrole_opmerking = rec.taakopmerking
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
v_count_taak:= 1 ;
|
||
|
||
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd Taakopmerking: ' || v_taakopmerking || '-->' || rec.taakopmerking);
|
||
|
||
END IF;
|
||
|
||
-- Basis-taak - Taakprioriteit
|
||
v_errormsg := 'Fout prioriteit wijzigen ';
|
||
|
||
SELECT ins_srtcontrole_level
|
||
INTO v_taakprioriteit
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
|
||
IF rec.taakprioriteit IS NOT NULL AND v_taakprioriteit <> fac.safe_to_number(rec.taakprioriteit)
|
||
THEN
|
||
|
||
UPDATE ins_srtcontrole
|
||
SET ins_srtcontrole_level = fac.safe_to_number(rec.taakprioriteit)
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
v_count_taak:= 1 ;
|
||
|
||
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd Prioriteit: ' || v_taakprioriteit || '-->' || rec.taakprioriteit);
|
||
|
||
END IF;
|
||
|
||
-- Basis-taak - Dienst
|
||
v_errormsg := 'Fout dienst wijzigen ' || v_aanduiding;
|
||
v_taakdienst_key := NULL ;
|
||
v_taakdienst := '<leeg>' ;
|
||
|
||
-- Eerst huidige dienstkey en omschrijving ophalen
|
||
BEGIN
|
||
|
||
SELECT max(t.prs_dienst_key), max(d.prs_dienst_omschrijving)
|
||
INTO v_taakdienst_key, v_taakdienst
|
||
FROM ins_srtcontrole t, prs_dienst d
|
||
WHERE t.ins_srtcontrole_key = rec.ins_srtcontrole_key AND t.prs_dienst_key = d.prs_dienst_key AND t.prs_dienst_key IS NOT NULL ;
|
||
|
||
IF v_taakdienst IS NULL THEN v_taakdienst := '<leeg>' ; END IF;
|
||
IF v_taakdienst_key IS NULL THEN v_taakdienst_key := -1 ; END IF;
|
||
|
||
END;
|
||
|
||
-- Dan gaan we kijken of de dienst meegegeven in csv al bestaat
|
||
v_errormsg := 'Aanmaken/opzoeken dienst ' || v_aanduiding;
|
||
v_dienst_key := NULL;
|
||
IF rec.taakdienst IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT prs_dienst_key
|
||
INTO v_dienst_key
|
||
FROM prs_dienst
|
||
WHERE UPPER(prs_dienst_omschrijving) = UPPER(SUBSTR(rec.taakdienst, 1,60));
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO prs_dienst (prs_dienst_omschrijving)
|
||
VALUES (SUBSTR(rec.taakdienst,1,60))
|
||
RETURNING prs_dienst_key INTO v_dienst_key;
|
||
END;
|
||
END IF;
|
||
|
||
IF v_taakdienst_key <> v_dienst_key AND rec.taakdienst IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE ins_srtcontrole
|
||
SET prs_dienst_key = v_dienst_key
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
v_count_taak:= 1 ;
|
||
|
||
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd taakdienst: ' || v_taakdienst || '-->' || rec.taakdienst);
|
||
|
||
END IF;
|
||
|
||
IF v_count_taak = 1 THEN
|
||
v_count_w_taak := v_count_w_taak +1 ;
|
||
END IF;
|
||
|
||
-- Gaan nu de object-taken aanpassen
|
||
v_aanduiding_objecttaak := rec.taakcategorie || ' - ' || v_ins_srtdeel_code || rec.taakomschrijving || CHR(13) || CHR(10) ;
|
||
|
||
-- Object-taak - Percentage
|
||
v_errormsg := 'Fout percentage wijzigen ';
|
||
|
||
SELECT COALESCE(ins_srtcontroledl_xcp_perc, 0)
|
||
INTO v_percentage
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF rec.taakobjectpercentage IS NOT NULL AND v_percentage <> rec.taakobjectpercentage
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_perc = ROUND(fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.')))
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Percentage: (' || v_percentage || ') --> ' || rec.taakobjectpercentage );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Opmerking
|
||
v_errormsg := 'Fout opmerking objecttaak wijzigen ';
|
||
|
||
SELECT ins_srtcontroledl_xcp_opmerk
|
||
INTO v_objecttaakopmerking
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF v_objecttaakopmerking IS NULL THEN v_objecttaakopmerking := '<leeg>' ;
|
||
END IF;
|
||
|
||
IF rec.taakobjectopmerking IS NOT NULL AND v_objecttaakopmerking <> rec.taakobjectopmerking
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_opmerk = rec.taakobjectopmerking
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Taakopmerking: (' || v_objecttaakopmerking || ') --> ' || rec.taakobjectopmerking );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Eenheid
|
||
v_errormsg := 'Fout eenheid wijzigen ';
|
||
|
||
SELECT COALESCE(ins_srtcontroledl_xcp_eenheid,0)
|
||
INTO v_eenheid
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF rec.taakobjecteenheid IS NOT NULL AND fac.safe_to_number(rec.taakobjecteenheid) <> v_eenheid AND rec.ismjob = 0
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_eenheid = fac.safe_to_number(rec.taakobjecteenheid)
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Eenheid: (' || v_eenheid || ') --> ' || rec.taakobjecteenheid );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Periode
|
||
v_errormsg := 'Fout periode wijzigen ';
|
||
|
||
SELECT COALESCE(ins_srtcontroledl_xcp_periode,0)
|
||
INTO v_periode
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF rec.taakobjectperiode IS NOT NULL AND fac.safe_to_number(rec.taakobjectperiode) <> v_periode
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_periode = fac.safe_to_number(rec.taakobjectperiode)
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Periode: (' || v_periode || ') --> ' || rec.taakobjectperiode );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Taakgroep
|
||
v_errormsg := 'Fout taakgroep wijzigen ';
|
||
|
||
SELECT ins_srtcontroledl_xcp_groep
|
||
INTO v_taakgroep
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF v_taakgroep IS NULL THEN v_taakgroep := '<leeg>' ;
|
||
END IF;
|
||
|
||
IF v_taakgroep <> rec.taakgroep AND rec.taakgroep IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_groep = rec.taakgroep
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Taakgroep: (' || v_taakgroep || ') --> ' || rec.taakgroep );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Startjaar
|
||
v_errormsg := 'Fout startjaar wijzigen ';
|
||
|
||
SELECT ins_srtcontroledl_xcp_startdat
|
||
INTO v_startjaar
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF rec.taakobjectstartjaar IS NOT NULL AND COALESCE(v_startjaar, TO_DATE('01-01-1900','dd-MM-yyyy')) <> rec.taakobjectstartjaar
|
||
AND (rec.extra_veld4 = 0 OR (rec.extra_veld4 > 0 AND v_startjaar IS NULL))
|
||
-- extra_veld4 is wel/geen geschiedenis op taak. Als er geschiedenis op zit taak startdatum niet aan te passen.
|
||
-- Uitzondering als in xcp startdaum op NULL is gekomen (zie bug/ticket 64450)
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_startdat = rec.taakobjectstartjaar
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Startjaar: (' || v_startjaar || ') --> ' || rec.taakobjectstartjaar );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Eindjaar
|
||
v_errormsg := 'Fout eindjaar wijzigen ';
|
||
|
||
SELECT ins_srtcontroledl_xcp_eind
|
||
INTO v_eindjaar
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
-- IF v_eindjaar IS NULL THEN v_eindjaar := TO_DATE(01-01-1900, 'DD-MM-YYYY'); END IF;
|
||
|
||
IF (v_eindjaar IS NULL and rec.taakobjecteindjaar IS NOT NULL) OR (v_eindjaar IS NOT NULL AND rec.taakobjecteindjaar IS NOT NULL AND v_eindjaar <> rec.taakobjecteindjaar)
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_eind = rec.taakobjecteindjaar
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Eindjaar: (' || v_eindjaar || ') --> ' || rec.taakobjecteindjaar );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Kosten
|
||
v_errormsg := 'Fout kosten wijzigen ';
|
||
|
||
SELECT COALESCE(max(ins_srtcontroledl_xcp_materia),0)
|
||
INTO v_materiaalkosten
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF v_materiaalkosten <> fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) AND rec.taakobjectmateriaal IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_materia = fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.'))
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Kosten: (' || v_materiaalkosten || ') --> ' || rec.taakobjectmateriaal );
|
||
|
||
END IF;
|
||
|
||
IF v_count_taakobject = 1 THEN
|
||
v_count_w_taakobject := v_count_w_taakobject + 1 ;
|
||
END IF;
|
||
|
||
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
|
||
|| ')';
|
||
aaxx_imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
v_ongeldig := 1;
|
||
END;
|
||
v_aanduiding := 'Einde loop ' || v_aanduiding;
|
||
END LOOP;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
COMMIT;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'IMPORT TAKEN: aantal verwerkte regels: ' || TO_CHAR (v_count_verwerk)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal nieuwe taken ingelezen: ' || TO_CHAR (v_count_n_taak)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal nieuwe objecttaken ingelezen: ' || TO_CHAR (v_count_n_taakobject)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal bestaande basistaken gewijzigd: ' || TO_CHAR (v_count_w_taak)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal bestaande objecttaken gewijzigd: ' || TO_CHAR (v_count_w_taakobject),
|
||
'');
|
||
|
||
ELSE
|
||
ROLLBACK;
|
||
|
||
END IF;
|
||
|
||
END;
|
||
/
|
||
|
||
-------------------------------------------
|
||
-- Import contracttermijnen / Factuurschema
|
||
-------------------------------------------
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_factuurschema (p_import_key IN NUMBER)
|
||
IS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR (1000);
|
||
v_hint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_ongeldig NUMBER (1);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_header_is_valid NUMBER (1);
|
||
v_dummy VARCHAR2 (1000);
|
||
-- De importvelden:
|
||
v_bedrijf_naam prs_bedrijf.prs_bedrijf_naam%TYPE;
|
||
v_contract_nr VARCHAR2 (100);
|
||
v_contract_key cnt_contract.cnt_contract_key%TYPE;
|
||
v_contract_nummer cnt_contract.cnt_contract_nummer%TYPE;
|
||
v_contract_versie cnt_contract.cnt_contract_versie%TYPE;
|
||
v_boekmaand cnt_factuurschema.cnt_factuurschema_boekmaand%TYPE;
|
||
v_bedrag cnt_factuurschema.cnt_factuurschema_bedrag%TYPE;
|
||
v_opmerking cnt_factuurschema.cnt_factuurschema_opmerking%TYPE;
|
||
|
||
|
||
CURSOR c
|
||
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_factuurschema;
|
||
|
||
COMMIT;
|
||
|
||
v_header_is_valid := 0;
|
||
v_ongeldig := 0;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_bedrijf_naam := NULL;
|
||
v_contract_nr := NULL;
|
||
v_contract_key := NULL;
|
||
v_contract_nummer := NULL;
|
||
v_contract_versie := NULL;
|
||
v_boekmaand := NULL;
|
||
v_bedrag := NULL;
|
||
v_opmerking := NULL;
|
||
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
v_newline := rec.fac_imp_file_line;
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij:' || SUBSTR (v_newline, 1, 200);
|
||
v_aanduiding := '';
|
||
|
||
IF (UPPER (v_newline) LIKE 'BEDRIJF;CONTRACTNR;VERSIE;BOEKMAAND;BEDRAG;OPMERKING%')
|
||
THEN
|
||
v_header_is_valid := 1;
|
||
ELSE
|
||
-- Lees alle veldwaarden
|
||
v_errormsg := 'Fout opvragen te importeren rij (bedrijf)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||
v_bedrijf_naam := SUBSTR (v_dummy, 1, 60);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (contract_nr) ' || v_bedrijf_naam;
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||
v_contract_nummer := fac.safe_to_number (v_dummy);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (contract_versie) ' || v_bedrijf_naam;
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||
v_contract_versie := fac.safe_to_number (v_dummy);
|
||
|
||
--
|
||
BEGIN
|
||
SELECT cnt_contract_key
|
||
INTO v_contract_key
|
||
FROM cnt_v_aanwezigcontract
|
||
WHERE TRIM (cnt_contract_nummer_intern) = TRIM (v_contract_nummer)
|
||
AND COALESCE(cnt_contract_versie,'0') = v_contract_versie;
|
||
v_contract_nr := v_contract_nummer || '.' || v_contract_versie;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Contract kan niet gevonden worden', v_bedrijf_naam || ' / ' || v_contract_nummer || '.' || v_contract_versie);
|
||
v_ongeldig := 1;
|
||
END;
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (boekmaand) ' || v_bedrijf_naam || ' / ' || v_contract_nummer || '.' || v_contract_versie;
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||
|
||
IF fac.safe_to_number (SUBSTR (v_dummy, 1, 4)) IS NOT NULL
|
||
AND SUBSTR (v_dummy, 5, 1) = '-'
|
||
AND fac.safe_to_number (SUBSTR (v_dummy, 6, 2)) IS NOT NULL
|
||
THEN
|
||
v_boekmaand := SUBSTR (v_dummy, 1, 7);
|
||
ELSE
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Ongeldige boekmaand',
|
||
v_bedrijf_naam|| ' / ' || v_contract_nummer || '.' || v_contract_versie || ' - ' || v_dummy);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (bedrag)' || v_bedrijf_naam || ' / ' || v_contract_nummer || '.' || v_contract_versie;
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||
|
||
v_dummy := REPLACE(v_dummy, ',', '.');
|
||
IF fac.safe_to_number (v_dummy) IS NOT NULL
|
||
THEN
|
||
v_bedrag := fac.safe_to_number (v_dummy);
|
||
ELSE
|
||
aaxx_imp_writelog (
|
||
p_import_key, 'E', 'Ongeldige bedrag',
|
||
v_bedrijf_naam || ' / ' || v_contract_nummer || '.' || v_contract_versie || ' - ' || v_boekmaand);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout opvragen te importeren rij (opmerking) ' || v_bedrijf_naam || ' / ' || v_contract_nummer || '.' || v_contract_versie;
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||
v_opmerking := SUBSTR (v_dummy, 1, 320);
|
||
|
||
v_errormsg :=
|
||
'Fout bij toevoegen regel aan tabel '
|
||
|| v_bedrijf_naam
|
||
|| ' / '
|
||
|| v_contract_nummer
|
||
|| '.'
|
||
|| v_contract_versie
|
||
|| ' - '
|
||
|| v_boekmaand;
|
||
|
||
INSERT INTO aaxx_imp_factuurschema (cnt_contract_key,
|
||
cnt_factuurschema_bedrag,
|
||
cnt_factuurschema_boekmaand,
|
||
cnt_factuurschema_opmerking,
|
||
cnt_contract_nr,
|
||
prs_bedrijf_naam)
|
||
VALUES (v_contract_key,
|
||
v_bedrag,
|
||
v_boekmaand,
|
||
v_opmerking,
|
||
v_contract_nr,
|
||
v_bedrijf_naam);
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
IF v_header_is_valid = 0
|
||
THEN
|
||
aaxx_imp_writelog (p_import_key, 'E', v_aanduiding || 'Ongeldig importbestand', 'Toelichting: ... ');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
COMMIT;
|
||
ELSE
|
||
ROLLBACK;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
ROLLBACK;
|
||
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_factuurschema;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_factuurschema (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM aaxx_imp_factuurschema;
|
||
|
||
v_errormsg VARCHAR2(1000);
|
||
v_error_hint VARCHAR2(1000);
|
||
oracle_err_mes VARCHAR2(150);
|
||
oracle_err_num VARCHAR2(150);
|
||
v_aanduiding VARCHAR2(200);
|
||
v_ongeldig NUMBER(1);
|
||
v_van DATE;
|
||
v_tot DATE;
|
||
v_bm_start DATE;
|
||
v_bm_eind DATE;
|
||
v_som NUMBER(11,2);
|
||
v_contract_bedrag NUMBER(11,2);
|
||
v_factuurschema_key NUMBER(10);
|
||
v_disc_params_factuurschema NUMBER(1);
|
||
BEGIN
|
||
v_ongeldig := 0;
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := rec.prs_bedrijf_naam || ' / ' || rec.cnt_contract_nr || ' - ' || rec.cnt_factuurschema_boekmaand;
|
||
v_errormsg := 'Bepaling contract termijn ' || v_aanduiding;
|
||
|
||
SELECT cnt_disc_params_factuurschema dp, cnt_contract_looptijd_van, cnt_contract_looptijd_tot, cnt_contract_kosten
|
||
INTO v_disc_params_factuurschema, v_van, v_tot, v_contract_bedrag
|
||
FROM cnt_disc_params dp, cnt_contract c
|
||
WHERE c.ins_discipline_key = dp.cnt_ins_discipline_key
|
||
AND c.cnt_contract_key = rec.cnt_contract_key;
|
||
|
||
v_errormsg := 'Controleer of de boekmaand in de contracttermijn valt ' || v_aanduiding;
|
||
v_bm_start := TO_DATE(rec.cnt_factuurschema_boekmaand || '-01', 'yyyy-mm-dd');
|
||
v_bm_eind := ADD_MONTHS(v_bm_start, 1)-1;
|
||
IF NOT(v_van BETWEEN v_bm_start AND v_bm_eind OR
|
||
v_tot BETWEEN v_bm_start AND v_bm_eind OR
|
||
v_bm_start BETWEEN v_van AND v_tot)
|
||
THEN
|
||
-- ongeldige boekmaand
|
||
aaxx_imp_writelog (p_import_key, 'E', 'Boekmaand ligt niet binnen de contracttermijn ', v_aanduiding);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Controleer of het contract wel geconfigueerd is voor factuurschemas ' || v_aanduiding;
|
||
IF COALESCE(v_disc_params_factuurschema,0) <> 1
|
||
THEN
|
||
-- contracttype ondersteund geen factuurschema
|
||
aaxx_imp_writelog (p_import_key, 'E', 'Contracttype ondersteund geen factuurschema ', v_aanduiding);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Controleer of het totaal van het schema past bij het contract ' || v_aanduiding;
|
||
SELECT SUM(cnt_factuurschema_bedrag)
|
||
INTO v_som
|
||
FROM aaxx_imp_factuurschema
|
||
WHERE cnt_contract_key = rec.cnt_contract_key;
|
||
|
||
IF v_som <> v_contract_bedrag
|
||
THEN
|
||
-- Totaalbedrag schema wijkt af van contract bedrag
|
||
aaxx_imp_writelog (p_import_key, 'E', 'Totaalbedrag schema wijkt af van contract bedrag ', v_aanduiding || ' [' || v_contract_bedrag || ' vs ' || v_som || ']');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Controleer of de boekmaand al bestaat bij dit contract ' || v_aanduiding;
|
||
BEGIN
|
||
SELECT cnt_factuurschema_key
|
||
INTO v_factuurschema_key
|
||
FROM cnt_factuurschema
|
||
WHERE cnt_factuurschema_boekmaand = rec.cnt_factuurschema_boekmaand
|
||
AND cnt_contract_key = rec.cnt_contract_key;
|
||
|
||
UPDATE cnt_factuurschema
|
||
SET cnt_factuurschema_bedrag = rec.cnt_factuurschema_bedrag,
|
||
cnt_factuurschema_opmerking = cnt_factuurschema_opmerking
|
||
WHERE cnt_factuurschema_key = v_factuurschema_key;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
-- Boekmaand bestaat nog niet in het schema
|
||
v_errormsg := 'Aanmaken van nieuw factuurschemaregel ' || v_aanduiding;
|
||
INSERT INTO cnt_factuurschema (cnt_contract_key, cnt_factuurschema_bedrag, cnt_factuurschema_boekmaand, cnt_factuurschema_opmerking)
|
||
VALUES (rec.cnt_contract_key, rec.cnt_factuurschema_bedrag, rec.cnt_factuurschema_boekmaand, rec.cnt_factuurschema_opmerking);
|
||
END;
|
||
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);
|
||
v_ongeldig := 1;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
COMMIT;
|
||
ELSE
|
||
ROLLBACK;
|
||
END IF;
|
||
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 elementen op te voeren voor assetmanagement
|
||
--
|
||
--
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_asset (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
CURSOR c_disc
|
||
IS
|
||
SELECT DISTINCT i.ins_discipline_omschrijving
|
||
FROM fac_imp_ins i
|
||
WHERE NOT EXISTS
|
||
( SELECT ins_discipline_key
|
||
FROM ins_discipline d
|
||
WHERE UPPER(d.ins_discipline_omschrijving) = UPPER(i.ins_discipline_omschrijving));
|
||
|
||
CURSOR c_srtgroep
|
||
IS
|
||
SELECT DISTINCT i.ins_discipline_omschrijving, i.ins_srtgroep_omschrijving
|
||
FROM fac_imp_ins i
|
||
WHERE NOT EXISTS
|
||
( SELECT d.ins_discipline_key
|
||
FROM ins_discipline d, ins_srtgroep sg
|
||
WHERE sg.ins_discipline_key = d.ins_discipline_key
|
||
AND UPPER(sg.ins_srtgroep_omschrijving) = UPPER(i.ins_srtgroep_omschrijving)
|
||
AND UPPER(d.ins_discipline_omschrijving) = UPPER(i.ins_discipline_omschrijving));
|
||
|
||
CURSOR c_srtdeel
|
||
IS
|
||
SELECT DISTINCT i.ins_discipline_omschrijving, i.ins_srtgroep_omschrijving, i.ins_srtdeel_omschrijving, i.ins_srtdeel_code
|
||
FROM fac_imp_ins i
|
||
WHERE NOT EXISTS
|
||
( SELECT d.ins_discipline_key
|
||
FROM ins_discipline d, ins_srtgroep sg, ins_srtdeel sd
|
||
WHERE sg.ins_discipline_key = d.ins_discipline_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND UPPER(sd.ins_srtdeel_omschrijving||'-'||sd.ins_srtdeel_code) = UPPER(i.ins_srtdeel_omschrijving || '-' || i.ins_srtdeel_code)
|
||
AND UPPER(sg.ins_srtgroep_omschrijving) = UPPER(i.ins_srtgroep_omschrijving)
|
||
AND UPPER(d.ins_discipline_omschrijving) = UPPER(i.ins_discipline_omschrijving));
|
||
|
||
BEGIN
|
||
fac_import_ins(p_import_key);
|
||
|
||
-- controleer of de discipline, groep en objectsoort wel bestaan.
|
||
FOR rec IN c_disc
|
||
LOOP
|
||
fac.imp_writelog (p_import_key, 'E', 'Discipline bestaat nog niet', rec.ins_discipline_omschrijving);
|
||
END LOOP;
|
||
|
||
FOR rec IN c_srtgroep
|
||
LOOP
|
||
fac.imp_writelog (p_import_key, 'E', 'Groep bestaat nog niet', rec.ins_discipline_omschrijving || ' / ' || rec.ins_srtgroep_omschrijving);
|
||
END LOOP;
|
||
|
||
FOR rec IN c_srtdeel
|
||
LOOP
|
||
fac.imp_writelog (p_import_key, 'E', 'Objectsoort bestaat nog niet', rec.ins_discipline_omschrijving || ' / ' || rec.ins_srtgroep_omschrijving || ' / ' || rec.ins_srtdeel_code || ' ' || rec.ins_srtdeel_omschrijving);
|
||
END LOOP;
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_asset (p_import_key IN NUMBER)
|
||
AS
|
||
v_count NUMBER;
|
||
BEGIN
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM imp_log
|
||
WHERE fac_import_key = p_import_key
|
||
AND imp_log_status = 'E';
|
||
|
||
IF v_count = 0
|
||
THEN
|
||
fac_update_ins(p_import_key);
|
||
ELSE
|
||
fac.imp_writelog (p_import_key, 'E', 'Verwerk actie niet uitgevoerd ivm fouten in bestand', '');
|
||
END IF;
|
||
END;
|
||
/
|
||
|
||
-- Overzicht met geplande en uitgevoerde inspecties.
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_asset_insp
|
||
(
|
||
ins_deel_key,
|
||
ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_deel_omschrijving,
|
||
alg_locatie_plaats,
|
||
alg_locatie_omschrijving,
|
||
alg_gebouw_omschrijving,
|
||
alg_plaatsaanduiding,
|
||
ins_srtcontrole_omschrijving,
|
||
volgende_controle,
|
||
laatste_controle,
|
||
gepland_controle
|
||
)
|
||
AS
|
||
SELECT idg.ins_deel_key,
|
||
idg.ins_discipline_omschrijving,
|
||
idg.ins_srtgroep_omschrijving,
|
||
idg.ins_srtdeel_upper,
|
||
idg.ins_deel_omschrijving,
|
||
l.alg_locatie_plaats,
|
||
l.alg_locatie_omschrijving,
|
||
idg.alg_gebouw_omschrijving,
|
||
idg.alg_plaatsaanduiding,
|
||
idg.ins_srtcontrole_omschrijving,
|
||
idg.nextdate,
|
||
DECODE (TRUNC (idg.ins_deel_aanmaak),
|
||
TRUNC (dc.ins_deelsrtcontrole_datum), TO_DATE (NULL),
|
||
dc.ins_deelsrtcontrole_datum)
|
||
uitgevoerd_op,
|
||
dc.ins_deelsrtcontrole_plandatum
|
||
gepland_op
|
||
FROM (SELECT i.*,
|
||
sc.*,
|
||
fac.nextcyclusdatedeel (i.ins_deel_key,
|
||
sc.ins_srtcontrole_key,
|
||
1)
|
||
nextdate,
|
||
(SELECT dsc.ins_deelsrtcontrole_key
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE dsc.ins_deel_key = i.ins_deel_key
|
||
AND dsc.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND NOT EXISTS
|
||
(SELECT dsc1.ins_deelsrtcontrole_key
|
||
FROM ins_deelsrtcontrole dsc1
|
||
WHERE dsc.ins_deel_key = dsc1.ins_deel_key
|
||
AND dsc.ins_srtcontrole_key =
|
||
dsc1.ins_srtcontrole_key
|
||
AND dsc1.ins_deelsrtcontrole_key >
|
||
dsc.ins_deelsrtcontrole_key))
|
||
ins_deelsrtcontrole_key1
|
||
FROM ins_v_deel_gegevens i,
|
||
ins_srtcontrole sc,
|
||
ins_srtcontroledl_xcp xcp
|
||
WHERE i.ins_discipline_key = sc.ins_srtinstallatie_key
|
||
AND i.ins_deel_key = xcp.ins_deel_key
|
||
AND sc.ins_srtcontrole_key = xcp.ins_srtcontrole_key) idg,
|
||
ins_deelsrtcontrole dc,
|
||
alg_locatie l
|
||
WHERE idg.ins_deelsrtcontrole_key1 = dc.ins_deelsrtcontrole_key(+)
|
||
AND idg.alg_locatie_key = l.alg_locatie_key
|
||
ORDER BY fac.safe_to_number (ins_deel_omschrijving);
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- Importfunctie om contactpersonen bij bedrijven toe te voegen aan FACILITOR
|
||
--
|
||
--
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_contactpersoon (p_import_key IN NUMBER)
|
||
AS
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
v_count NUMBER;
|
||
BEGIN
|
||
|
||
v_errorhint := 'Generieke update';
|
||
-- de sequence array staat beschreven in FAC_PACF.SRC bij de fac_import_perslid_upd_body proc
|
||
prs.import_perslid (p_import_key,
|
||
'0;0;0;0;0;0;1;2;3;5;' ||
|
||
'4;0;0;0;0;7;8;9;0;11;' ||
|
||
'10;12;13;6;0;0;14;15;0;0;'||
|
||
'0;0;0;0;0;0;0;0;0;0;'||
|
||
'0;0;0;0;0;0',
|
||
'Afdelingscode;PersoonAchternaam;Tussenvoegsel;Voorletters;Voornaam;Titel/Aanhef;Telefoonnummer;Mobiel;Email;Functie;Personeelsnummer;Loginnaam;Password;Bedrijf;Autorisatieprofiel%'
|
||
);
|
||
|
||
-- Klantspecifieke aanpassingen
|
||
v_errorhint := 'Controle op Bedrijf';
|
||
FOR rec IN (SELECT distinct prs_kenmerk1 FROM fac_imp_perslid)
|
||
LOOP
|
||
IF rec.prs_kenmerk1 IS NOT NULL
|
||
THEN
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND UPPER(prs_bedrijf_naam) = upper(rec.prs_kenmerk1);
|
||
|
||
IF v_count <> 1
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Bedrijf: ' || rec.prs_kenmerk1 || ' komt ' || v_count || ' keer voor in de lijst met bedrijven.', v_errorhint);
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
v_errorhint := 'Controle op Autorisatieprofiel';
|
||
FOR rec IN (SELECT prs_kenmerk2 FROM fac_imp_perslid)
|
||
LOOP
|
||
IF rec.prs_kenmerk2 IS NOT NULL
|
||
THEN
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM fac_groep
|
||
WHERE upper(fac_groep_omschrijving) = upper(rec.prs_kenmerk2);
|
||
|
||
IF v_count <> 1
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Autorisatieprofiel: ' || rec.prs_kenmerk2 || ' komt ' || v_count || ' keer voor in de lijst met autorisatieprofielen.', v_errorhint);
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||
END aaxx_import_contactpersoon;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_contactpersoon (
|
||
p_import_key IN NUMBER)
|
||
IS
|
||
CURSOR c
|
||
IS
|
||
SELECT * FROM fac_imp_perslid;
|
||
|
||
v_count NUMBER;
|
||
v_perslid_key NUMBER;
|
||
v_bedrijf_key NUMBER;
|
||
v_groep_key NUMBER;
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
BEGIN
|
||
-- generic update
|
||
prs.update_perslid (p_import_key, 'NR', 'A');
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_errorhint := 'Zoek aangemaakt persoon.';
|
||
|
||
SELECT MAX (prs_perslid_key)
|
||
INTO v_perslid_key
|
||
FROM prs_perslid p
|
||
WHERE rec.prs_perslid_naam = p.prs_perslid_naam
|
||
AND COALESCE (rec.prs_perslid_voornaam, 'Voornaam') =
|
||
COALESCE (p.prs_perslid_voornaam, 'Voornaam')
|
||
AND COALESCE (rec.prs_perslid_tussenvoegsel, 'Tussenvoegsel') =
|
||
COALESCE (p.prs_perslid_tussenvoegsel, 'Tussenvoegsel')
|
||
AND COALESCE (rec.prs_perslid_voorletters, 'Voorletters') =
|
||
COALESCE (p.prs_perslid_voorletters, 'Voorletters')
|
||
AND p.prs_perslid_aanmaak > SYSDATE - 1
|
||
AND p.prs_perslid_verwijder IS NULL;
|
||
|
||
IF v_perslid_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Persoon: '
|
||
|| rec.prs_perslid_naam
|
||
|| '-'
|
||
|| rec.prs_perslid_voornaam
|
||
|| '-'
|
||
|| rec.prs_perslid_voorletters
|
||
|| ' kan niet gevonden worden.',
|
||
v_errorhint);
|
||
ELSE
|
||
v_errorhint := 'Zoek bedrijf.';
|
||
|
||
SELECT MAX (prs_bedrijf_key)
|
||
INTO v_bedrijf_key
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND UPPER (prs_bedrijf_naam) = UPPER (rec.prs_kenmerk1);
|
||
|
||
IF v_bedrijf_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Bedrijf: ' || rec.prs_kenmerk1 || ' kan niet gevonden worden.',
|
||
v_errorhint);
|
||
ELSE
|
||
INSERT INTO prs_contactpersoon (prs_contactpersoon_naam,
|
||
prs_contactpersoon_tussenv,
|
||
prs_contactpersoon_voorletters,
|
||
prs_contactpersoon_voornaam,
|
||
prs_contactpersoon_titel,
|
||
prs_contactpersoon_telefoon_1,
|
||
prs_contactpersoon_telefoon_2,
|
||
prs_contactpersoon_email,
|
||
prs_perslid_key,
|
||
prs_bedrijf_key)
|
||
VALUES (rec.prs_perslid_naam,
|
||
rec.prs_perslid_tussenvoegsel,
|
||
rec.prs_perslid_voorletters,
|
||
rec.prs_perslid_voornaam,
|
||
rec.prs_perslid_titel,
|
||
rec.prs_perslid_telefoonnr,
|
||
rec.prs_perslid_mobiel,
|
||
rec.prs_perslid_email,
|
||
v_perslid_key,
|
||
v_bedrijf_key);
|
||
|
||
v_errorhint := 'Zoek autorisatiegroep.';
|
||
|
||
SELECT MAX (fac_groep_key)
|
||
INTO v_groep_key
|
||
FROM fac_groep
|
||
WHERE UPPER (rec.prs_kenmerk2) = UPPER (fac_groep_omschrijving);
|
||
|
||
IF v_groep_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Autorisatiegroep: '
|
||
|| rec.prs_kenmerk2
|
||
|| ' kan niet gevonden worden.',
|
||
v_errorhint);
|
||
ELSE
|
||
INSERT INTO fac_gebruikersgroep (prs_perslid_key,
|
||
fac_groep_key)
|
||
VALUES (v_perslid_key, v_groep_key);
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END aaxx_update_contactpersoon;
|
||
/
|
||
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- Importfunctie om personen die gedefinieerd zijn in de AAIT database ook in
|
||
-- de klantdatabase toe te voegen.
|
||
-- kenmerk_key 4 = prs_perslid_key in AAIT database
|
||
-- kenmerk_key 3 = personeelsnummer in AAIT
|
||
-- kenmerk_key 2 = kostenplaats in AD
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_aafm_medewerkers (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_aafm_medewerkers (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT afdelingscode,
|
||
persoonachternaam,
|
||
tussenvoegsel,
|
||
voorletters,
|
||
voornaam,
|
||
titel,
|
||
telefoonnummer,
|
||
mobiel,
|
||
email,
|
||
functie,
|
||
loginnaam,
|
||
personeelsnummer,
|
||
dienstverband,
|
||
uurloon,
|
||
uurloon_intern,
|
||
kostenplaats,
|
||
prs_perslid_apikey,
|
||
i.prs_perslid_key prs_perslid_key_aait,
|
||
p.prs_perslid_key,
|
||
p.prs_perslid_nr
|
||
FROM aait.aait_imp_perslid i,
|
||
(SELECT prs_perslid_key,
|
||
prs_perslid_nr,
|
||
prs_kenmerklink_waarde aait_prs_perslid_key
|
||
FROM prs_perslid p, prs_kenmerklink kl
|
||
WHERE p.prs_perslid_key = kl.prs_link_key
|
||
AND kl.prs_kenmerk_key = 4
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND kl.prs_kenmerklink_verwijder IS NULL) p
|
||
WHERE i.prs_perslid_key = p.aait_prs_perslid_key(+)
|
||
AND i.prs_perslid_key IS NOT NULL
|
||
AND ( INSTR(UPPER(i.distributie), SUBSTR (USER, 1, 4)) > 0 -- persoon moet gedistribueerd worden over deze Heyday omgeving
|
||
OR INSTR(i.distributie, '*') > 0) -- persoon moet gedistribueerd worden over alle Heyday omgevingen
|
||
AND i.personeelsnummer <> 'N/A';
|
||
|
||
CURSOR c_del
|
||
IS
|
||
SELECT prs_perslid_key,
|
||
prs_perslid_naam,
|
||
prs_perslid_voornaam,
|
||
prs_perslid_login,
|
||
prs_afdeling_omschrijving,
|
||
klo.prs_kenmerklink_waarde nr
|
||
FROM prs_perslid p, prs_kenmerklink klo, prs_afdeling a
|
||
WHERE p.prs_perslid_key = klo.prs_link_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND prs_kenmerk_key = 3 -- personeelsnummer AAFM
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT prs_kenmerklink_key
|
||
FROM prs_kenmerklink kl, aait.aait_imp_perslid i
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND prs_kenmerk_key = 4 -- prs_perslid_key in AAIT
|
||
AND ( INSTR(UPPER(i.distributie), SUBSTR (USER, 1, 4)) > 0 -- persoon moet gedistribueerd worden over deze Heyday omgeving
|
||
OR INSTR(i.distributie, '*') > 0) -- persoon moet gedistribueerd worden over alle Heyday omgevingen
|
||
AND fac.safe_to_number(kl.prs_kenmerklink_waarde) = i.prs_perslid_key);
|
||
|
||
v_count NUMBER;
|
||
v_prs_bedrijf_key NUMBER;
|
||
v_prs_bedrijf_naam VARCHAR2 (100);
|
||
v_prs_afdeling_key NUMBER;
|
||
v_prs_srtperslid_key NUMBER;
|
||
v_prs_perslid_key NUMBER;
|
||
v_fac_groep_key NUMBER;
|
||
v_fac_default_key NUMBER;
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_error_hint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (2000);
|
||
BEGIN
|
||
|
||
v_errormsg := 'Controle of importbestand goed gevuld is.';
|
||
SELECT COUNT(*)
|
||
INTO v_count
|
||
FROM aait.aait_imp_perslid
|
||
WHERE prs_perslid_key IS NOT NULL;
|
||
|
||
IF v_count < 200 THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Import bestand bevat te weinig (' || v_count || ') records.', '');
|
||
RETURN;
|
||
END IF;
|
||
|
||
v_prs_bedrijf_naam := 'HEYDAY Facility Management';
|
||
|
||
v_errormsg := 'Check of autorisatiegroep al bestaat';
|
||
BEGIN
|
||
SELECT fac_groep_key
|
||
INTO v_fac_groep_key
|
||
FROM fac_groep
|
||
WHERE UPPER (fac_groep_omschrijving) = 'HEYDAY MEDEWERKER';
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO fac_groep (fac_groep_omschrijving)
|
||
VALUES ('HEYDAY Medewerker')
|
||
RETURNING fac_groep_key
|
||
INTO v_fac_groep_key;
|
||
END;
|
||
|
||
v_errormsg := 'Zoek de default groep';
|
||
BEGIN
|
||
SELECT fac_groep_key
|
||
INTO v_fac_default_key
|
||
FROM fac_groep
|
||
WHERE UPPER (fac_groep_omschrijving) = '_DEFAULT';
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Defaultgroep kan niet gevonden worden.' ,
|
||
'');
|
||
END;
|
||
|
||
-- Check of bedrijf HEYDAY Facility Management 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_upper = UPPER(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 (v_prs_bedrijf_naam, 1)
|
||
RETURNING prs_bedrijf_key
|
||
INTO v_prs_bedrijf_key;
|
||
END;
|
||
|
||
-- Check of afdeling HEYDAY al bestaat
|
||
v_errormsg := 'Check of afdeling bestaat';
|
||
|
||
BEGIN
|
||
SELECT prs_afdeling_key
|
||
INTO v_prs_afdeling_key
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_upper = 'HEYDAY'
|
||
AND prs_bedrijf_key = v_prs_bedrijf_key
|
||
AND prs_afdeling_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO prs_afdeling (prs_afdeling_naam,
|
||
prs_afdeling_omschrijving,
|
||
prs_bedrijf_key)
|
||
VALUES ('HEYDAY', 'HEYDAY Facility Management', v_prs_bedrijf_key)
|
||
RETURNING prs_afdeling_key
|
||
INTO v_prs_afdeling_key;
|
||
END;
|
||
|
||
v_errormsg := 'Bepaal srtperslid';
|
||
|
||
SELECT prs_srtperslid_key
|
||
INTO v_prs_srtperslid_key
|
||
FROM prs_srtperslid
|
||
WHERE prs_srtperslid_omschrijving = 'Onbekend';
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
-- set alvast de variable om straks de kenmerken goed te kunnen opslaan.
|
||
v_prs_perslid_key := rec.prs_perslid_key;
|
||
|
||
-- als de persoon een personeelsnummer van de klant heeft gaan we niets aan zijn
|
||
-- gegevens aanpassen maar wordt de persoon alleen aan de autorisatiegroep toegevoegd.
|
||
IF rec.prs_perslid_nr IS NULL
|
||
THEN
|
||
IF rec.prs_perslid_key IS NULL
|
||
THEN
|
||
-- misschien kunnen we de persoon nog vinden op basis van personeelsnummer
|
||
v_errormsg := 'Zoek persoon met zelfde personeelsnummer ' || rec.personeelsnummer;
|
||
SELECT MAX(prs_perslid_key)
|
||
INTO v_prs_perslid_key
|
||
FROM prs_kenmerklink, prs_perslid
|
||
WHERE prs_kenmerk_key = 3
|
||
AND prs_kenmerklink_verwijder IS NULL
|
||
AND prs_link_key = prs_perslid_key
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND rec.personeelsnummer = prs_kenmerklink_waarde;
|
||
|
||
-- persoon bestaat nog niet
|
||
v_errormsg := 'Controle login ' || rec.personeelsnummer;
|
||
SELECT count(prs_perslid_key)
|
||
INTO v_count
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_oslogin = UPPER(rec.loginnaam);
|
||
|
||
IF v_count = 0 AND v_prs_perslid_key IS NULL THEN
|
||
|
||
v_errormsg := 'Toevoegen persoon ' || rec.personeelsnummer;
|
||
|
||
INSERT INTO prs_perslid (prs_afdeling_key,
|
||
prs_perslid_naam,
|
||
prs_perslid_tussenvoegsel,
|
||
prs_perslid_voorletters,
|
||
prs_perslid_voornaam,
|
||
prs_perslid_titel,
|
||
prs_perslid_telefoonnr,
|
||
prs_perslid_mobiel,
|
||
prs_perslid_email,
|
||
prs_srtperslid_key,
|
||
prs_perslid_oslogin,
|
||
prs_perslid_apikey,
|
||
prs_perslid_ingids,
|
||
prs_perslid_dienstverband,
|
||
prs_perslid_uurloon)
|
||
VALUES (v_prs_afdeling_key,
|
||
rec.persoonachternaam,
|
||
rec.tussenvoegsel,
|
||
rec.voorletters,
|
||
rec.voornaam,
|
||
rec.titel,
|
||
SUBSTR(rec.telefoonnummer,1,15),
|
||
rec.mobiel,
|
||
rec.email,
|
||
v_prs_srtperslid_key,
|
||
rec.loginnaam,
|
||
rec.prs_perslid_apikey,
|
||
NULL,
|
||
fac.safe_to_number (
|
||
REPLACE (rec.dienstverband, ',', '.')),
|
||
fac.safe_to_number (REPLACE (rec.uurloon, ',', '.')))
|
||
RETURNING prs_perslid_key
|
||
INTO v_prs_perslid_key;
|
||
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Login bestaat al bij andere persoon. (' || rec.persoonachternaam || ' - ' || rec.loginnaam || ' - ' || rec.personeelsnummer || ')' ,
|
||
'');
|
||
END IF;
|
||
|
||
ELSE
|
||
-- persoon bestaat al
|
||
v_errormsg := 'Aanpassen persoon ' || rec.personeelsnummer;
|
||
|
||
UPDATE prs_perslid
|
||
SET prs_afdeling_key = v_prs_afdeling_key,
|
||
prs_perslid_naam = rec.persoonachternaam,
|
||
prs_perslid_tussenvoegsel = rec.tussenvoegsel,
|
||
prs_perslid_voorletters = rec.voorletters,
|
||
prs_perslid_voornaam = rec.voornaam,
|
||
prs_perslid_titel = rec.titel,
|
||
prs_perslid_telefoonnr = COALESCE(prs_perslid_telefoonnr, SUBSTR(rec.telefoonnummer,1,15)),
|
||
prs_perslid_mobiel = COALESCE(prs_perslid_mobiel, rec.mobiel),
|
||
prs_perslid_email = COALESCE(prs_perslid_email, rec.email),
|
||
prs_srtperslid_key = v_prs_srtperslid_key,
|
||
prs_perslid_oslogin = rec.loginnaam,
|
||
prs_perslid_apikey = rec.prs_perslid_apikey,
|
||
prs_perslid_ingids = NULL,
|
||
prs_perslid_dienstverband =
|
||
fac.safe_to_number (
|
||
REPLACE (rec.dienstverband, ',', '.')),
|
||
prs_perslid_uurloon =
|
||
fac.safe_to_number (REPLACE (rec.uurloon, ',', '.'))
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
|
||
END IF;
|
||
-- verwijder de zojuist toegevoegde persoon uit de default groep.
|
||
DELETE fac_gebruikersgroep
|
||
WHERE fac_groep_key = v_fac_default_key
|
||
AND prs_perslid_key = v_prs_perslid_key;
|
||
END IF;
|
||
|
||
IF v_prs_perslid_key IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Toevoegen key naar AAIT prs_perslid_key kenmerk ' || v_prs_perslid_key;
|
||
aaxx.set_prs_kenmerk (p_import_key,
|
||
'P',
|
||
4,
|
||
v_prs_perslid_key,
|
||
rec.prs_perslid_key_aait);
|
||
|
||
v_errormsg := 'Toevoegen personeelsnummer kenmerk ' || v_prs_perslid_key;
|
||
aaxx.set_prs_kenmerk (p_import_key,
|
||
'P',
|
||
3,
|
||
v_prs_perslid_key,
|
||
rec.personeelsnummer);
|
||
|
||
v_errormsg := 'Toevoegen kostenplaats kenmerk ' || v_prs_perslid_key;
|
||
aaxx.set_prs_kenmerk (p_import_key,
|
||
'P',
|
||
2,
|
||
v_prs_perslid_key,
|
||
rec.kostenplaats);
|
||
|
||
v_errormsg := 'Toevoegen uurloon intern kenmerk ' || v_prs_perslid_key;
|
||
aaxx.set_prs_kenmerk (p_import_key,
|
||
'P',
|
||
6,
|
||
v_prs_perslid_key,
|
||
rec.uurloon_intern);
|
||
IF rec.afdelingscode = 'SD'
|
||
THEN
|
||
-- Servicedesk autorisatie toevoegen.
|
||
v_errormsg := 'Toevoegen SD autorisatie ' || rec.personeelsnummer;
|
||
INSERT INTO fac_gebruikersgroep (prs_perslid_key, fac_groep_key)
|
||
(SELECT v_prs_perslid_key, fac_groep_key
|
||
FROM fac_groep g
|
||
WHERE TRIM (fac_groep_upper) = 'HEYDAY SERVICEDESK'
|
||
AND NOT EXISTS
|
||
(SELECT fac_gebruikersgroep_key
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE gg.prs_perslid_key = v_prs_perslid_key
|
||
AND gg.fac_groep_key = g.fac_groep_key));
|
||
|
||
-- Servicedesk medewerkers mandateren voor alle kostenplaatsen.
|
||
v_errormsg := 'Toevoegen SD mandaat ' || rec.personeelsnummer;
|
||
DELETE prs_perslidkostenplaats
|
||
WHERE prs_perslid_key = v_prs_perslid_key
|
||
AND prs_kostenplaats_key IS NOT NULL;
|
||
|
||
INSERT INTO prs_perslidkostenplaats (prs_perslid_key)
|
||
(SELECT v_prs_perslid_key FROM DUAL
|
||
WHERE NOT EXISTS
|
||
(SELECT prs_perslid_key
|
||
FROM prs_perslidkostenplaats pkp
|
||
WHERE pkp.prs_perslid_key = v_prs_perslid_key));
|
||
|
||
END IF;
|
||
|
||
|
||
-- voeg iedereen toe aan de gebruikersgroep HEYDAY Medewerker
|
||
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
||
SELECT fac_groep_key, prs_perslid_key
|
||
FROM fac_groep g, prs_perslid p
|
||
WHERE g.fac_groep_key = v_fac_groep_key
|
||
AND p.prs_perslid_key = v_prs_perslid_key
|
||
AND NOT EXISTS
|
||
(SELECT fac_gebruikersgroep_key
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE gg.prs_perslid_key = p.prs_perslid_key
|
||
AND gg.fac_groep_key = g.fac_groep_key);
|
||
|
||
END IF;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_hint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
COMMIT; -- tbv logging
|
||
END;
|
||
END LOOP;
|
||
|
||
DELETE fac_gebruikersgroep
|
||
WHERE fac_groep_key = v_fac_groep_key
|
||
AND prs_perslid_key NOT IN
|
||
(SELECT p.prs_perslid_key
|
||
FROM aait.aait_imp_perslid i,
|
||
prs_perslid p,
|
||
prs_kenmerklink kl
|
||
WHERE p.prs_perslid_key = kl.prs_link_key
|
||
AND kl.prs_kenmerk_key = 3
|
||
AND i.personeelsnummer = kl.prs_kenmerklink_waarde);
|
||
|
||
-- probeer personen te verwijderen die niet meer voorkomen in het importbestand
|
||
FOR rec_del IN c_del
|
||
LOOP
|
||
BEGIN
|
||
IF COALESCE(rec_del.prs_perslid_login, SYSDATE -11) > SYSDATE -10
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Persoon ' || rec_del.prs_perslid_naam || ' (' || rec_del.prs_perslid_voornaam || ') zou verwijderd moeten worden',
|
||
'');
|
||
UPDATE prs_perslid
|
||
SET prs_perslid_oslogin = NULL,
|
||
prs_perslid_oslogin2 = NULL
|
||
WHERE prs_perslid_key = rec_del.prs_perslid_key;
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Persoon ' || rec_del.prs_perslid_naam || ' (' || rec_del.prs_perslid_voornaam || ') zou verwijderd moeten worden',
|
||
'');
|
||
aaxx.prs_del_perslid (p_import_key, rec_del.prs_perslid_key, 0, 0);
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
|
||
-- view om ongeldige records te vinden.
|
||
CREATE OR REPLACE VIEW aaxx_rap_perslid_mismatch (hide_f_index, naam, voornaam, lastlogin, afdeling, AAFMpersoneelsnummer)
|
||
AS
|
||
SELECT sysdate - prs_perslid_login,
|
||
prs_perslid_naam,
|
||
prs_perslid_voornaam,
|
||
prs_perslid_login,
|
||
prs_afdeling_omschrijving,
|
||
klo.prs_kenmerklink_waarde nr
|
||
FROM prs_perslid p, prs_kenmerklink klo, prs_afdeling a
|
||
WHERE p.prs_perslid_key = klo.prs_link_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND prs_kenmerk_key = 3
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND prs_perslid_login IS NOT NULL
|
||
AND NOT EXISTS
|
||
(SELECT prs_kenmerklink_key
|
||
FROM prs_kenmerklink
|
||
WHERE prs_link_key = p.prs_perslid_key AND prs_kenmerk_key = 4);
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- KOPPELINGEN MET LEVERANCIERS
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_opdrstat_strukton (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
c_delim VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (1000); -- Input line
|
||
v_errormsg VARCHAR2 (4000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (1200);
|
||
v_dummy VARCHAR2 (200);
|
||
header_is_valid NUMBER := 0;
|
||
v_count NUMBER;
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_import NUMBER (10) := 0;
|
||
v_ongeldig NUMBER (1) := 0;
|
||
-- De importvelden
|
||
v_mld_opdr_opmerking VARCHAR2 (4000);
|
||
v_mld_opdr_key NUMBER (10);
|
||
v_mld_opdr_key_tekst VARCHAR2 (100);
|
||
v_extern_nummer VARCHAR2 (100);
|
||
v_status NUMBER (10);
|
||
v_status_tekst VARCHAR2 (100);
|
||
v_status_code VARCHAR2 (100);
|
||
v_datumtijd DATE;
|
||
v_datumtijd_tekst VARCHAR2 (100);
|
||
v_opmerking VARCHAR2 (3000);
|
||
|
||
-- Overige velden:
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
-- Eerst opruiming
|
||
DELETE FROM aaxx_imp_opdrstat_strukton;
|
||
|
||
COMMIT;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen te importeren rij';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
|
||
fac.imp_getfield (v_newline, c_delim, v_mld_opdr_key_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_extern_nummer);
|
||
fac.imp_getfield (v_newline, c_delim, v_status_code); -- typeID
|
||
fac.imp_getfield (v_newline, c_delim, v_datumtijd_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_status_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_opmerking);
|
||
v_opmerking := substr(v_opmerking, 1, 1000);
|
||
-- verwijder de markering voor cr/lf die we zelf in de stylesheet toegevoegd hebben.
|
||
v_opmerking := replace(v_opmerking, '@@',CHR (13));
|
||
v_aanduiding :=
|
||
'['
|
||
|| v_extern_nummer
|
||
|| '|'
|
||
|| v_mld_opdr_key_tekst
|
||
|| '|'
|
||
|| v_status_tekst
|
||
|| '|'
|
||
|| v_opmerking
|
||
|| '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (TRIM (v_mld_opdr_key_tekst)) = 'REFERENCEID'
|
||
AND UPPER (TRIM (v_extern_nummer)) = 'SERVICEREQUESTID'
|
||
AND UPPER (TRIM (v_status_code)) = 'TYPEID'
|
||
AND UPPER (TRIM (v_datumtijd_tekst)) = 'DATETIME'
|
||
AND UPPER (TRIM (v_opmerking)) = 'REMARKS'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
-- Controleer alle veldwaarden
|
||
v_errormsg := 'Fout inlezen mld_opdr_key [' || v_aanduiding || ']';
|
||
v_mld_opdr_key := TRIM (v_mld_opdr_key);
|
||
|
||
BEGIN
|
||
SELECT o.mld_opdr_key, o.mld_opdr_opmerking
|
||
INTO v_mld_opdr_key, v_mld_opdr_opmerking
|
||
FROM mld_opdr o, mld_melding m, ins_tab_discipline d, ins_srtdiscipline sd, mld_stdmelding std
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr = v_mld_opdr_key_tekst;
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND THEN
|
||
BEGIN
|
||
fac.imp_writelog (p_import_key, 'W', 'Opdracht kan niet gevonden worden. [' || v_aanduiding || ']', '');
|
||
|
||
-- kijk nu of de opdracht gevonden kan worden a.d.h.v het Struktonnummer
|
||
SELECT o.mld_opdr_key, o.mld_opdr_opmerking
|
||
INTO v_mld_opdr_key, v_mld_opdr_opmerking
|
||
FROM mld_opdr o, mld_kenmerkopdr ko, mld_kenmerk k
|
||
WHERE o.mld_opdr_key = ko.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 35
|
||
AND ko.mld_kenmerkopdr_waarde = v_extern_nummer;
|
||
|
||
EXCEPTION WHEN OTHERS THEN
|
||
v_ongeldig := 1;
|
||
v_errormsg := 'Opdracht kan niet gevonden worden (intern/externnr). [' || v_aanduiding || ']';
|
||
v_mld_opdr_key := NULL;
|
||
END;
|
||
END;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg :=
|
||
'Fout bij bepalen status [' || v_aanduiding || ']';
|
||
|
||
CASE
|
||
WHEN v_status_code = '5'
|
||
THEN
|
||
v_status := 5; -- uitgegeven
|
||
WHEN v_status_code = '10'
|
||
THEN
|
||
v_status := 8; -- geaccepteerd
|
||
WHEN v_status_code = '20' -- monteur gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
WHEN v_status_code = '25' -- specialist gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
WHEN v_status_code = '30' -- technisch gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
-- For future use
|
||
-- WHEN v_status_code = '40' -- uitgeprijst
|
||
-- THEN
|
||
-- v_status := 6; -- afgemeld
|
||
WHEN v_status_code = '70'
|
||
THEN
|
||
v_status := 1; -- geannuleerd
|
||
WHEN v_status_code = '80'
|
||
THEN
|
||
v_status := 1; -- afgewezen
|
||
ELSE
|
||
v_status := NULL;
|
||
v_ongeldig := 1; -- nog te bezien.
|
||
END CASE;
|
||
END IF;
|
||
|
||
-- Lees alle veldwaarden
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg :=
|
||
'Fout bij converteren datumtijd [' || v_aanduiding || ']';
|
||
IF INSTR (v_datumtijd_tekst, '.') > 0
|
||
THEN
|
||
v_datumtijd :=
|
||
fac.safe_to_date (
|
||
REPLACE (
|
||
SUBSTR (v_datumtijd_tekst,
|
||
1,
|
||
INSTR (v_datumtijd_tekst, '.') - 1),
|
||
'T',
|
||
' '),
|
||
'yyyy-mm-dd hh24:mi:ss');
|
||
ELSE
|
||
v_datumtijd := fac.safe_to_date(v_datumtijd_tekst, 'yyyy-mm-dd hh24:mi:ss');
|
||
END IF;
|
||
|
||
IF v_datumtijd = NULL
|
||
THEN
|
||
v_ongeldig := 0;
|
||
END IF;
|
||
END IF;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg :=
|
||
'Fout bij aanvullen opmerking [' || v_aanduiding || ']';
|
||
|
||
-- controleer of de opmerking niet leeg is en of dezelfde opmerking al bij een eerdere statusovergang
|
||
-- gemeld is.
|
||
IF v_opmerking IS NOT NULL AND INSTR(COALESCE(v_mld_opdr_opmerking, 'QueQuLeQue'), v_opmerking) = 0
|
||
THEN
|
||
v_opmerking :=
|
||
'['
|
||
|| v_datumtijd_tekst
|
||
|| '] - '
|
||
|| v_status_tekst
|
||
|| CHR (13)
|
||
|| CHR (10)
|
||
|| v_opmerking;
|
||
ELSE
|
||
v_opmerking :=
|
||
'[' || v_datumtijd_tekst || '] - ' || v_status_tekst;
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record
|
||
IF (v_ongeldig = 0)
|
||
THEN
|
||
BEGIN
|
||
v_errormsg :=
|
||
'Fout toevoegen opdracht status ['
|
||
|| v_aanduiding
|
||
|| ']';
|
||
|
||
INSERT INTO aaxx_imp_opdrstat_strukton (mld_opdr_key,
|
||
extern_nummer,
|
||
status,
|
||
datumtijd,
|
||
opmerking)
|
||
VALUES (v_mld_opdr_key,
|
||
v_extern_nummer,
|
||
v_status,
|
||
v_datumtijd,
|
||
v_opmerking);
|
||
|
||
v_count_import := v_count_import + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Fout bij toevoegen regel aan importtabel aaxx_imp_opdr_status_strukton.');
|
||
END;
|
||
ELSE
|
||
IF v_status_code <> '40' AND v_status_code <> '45'
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
'');
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Ongeldig importbestand',
|
||
'Geen header of header niet volgens specificatie!');
|
||
END IF;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := SUBSTR(
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')', 1, 490);
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR(v_aanduiding, 1, 500) || ' - ' || v_errormsg,
|
||
'Inleesproces opdrachtstatusberichten afgebroken!');
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_opdrstat_strukton (p_import_key IN NUMBER)
|
||
AS
|
||
-- Cursor loopt - in volgorde! - over alle ingelezen opdrachtstatusberichten.
|
||
CURSOR c1
|
||
IS
|
||
SELECT mld_opdr_key,
|
||
extern_nummer,
|
||
datumtijd,
|
||
status,
|
||
opmerking
|
||
FROM aaxx_imp_opdrstat_strukton
|
||
ORDER BY 1, 3;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_count_tot NUMBER (10);
|
||
v_count NUMBER (10);
|
||
v_mld_key NUMBER (10) := 0;
|
||
v_opdr_key NUMBER (10) := 0;
|
||
v_opdr_status NUMBER (10) := 0;
|
||
v_user_key NUMBER (10) := 0;
|
||
v_mld_typeopdr_key NUMBER (10);
|
||
v_mld_kenmerk_key NUMBER (10);
|
||
v_mld_kenmerkopdr_key NUMBER (10);
|
||
v_mld_srtkenmerk_key NUMBER (10);
|
||
BEGIN
|
||
-- Loop door alle geimporteerde opdrachtstatusberichten en verwerk deze.
|
||
v_count_tot := 0;
|
||
|
||
-- Stel de key in van het srtkenmerk 'Ref. Nr. Leverancier'. Hier wordt
|
||
-- het nummer dat Strukton aan de call gegeven heeft geregistreerd.
|
||
IF aaxx_get_user = 'SABIC' THEN v_mld_srtkenmerk_key := 35; END IF;
|
||
IF aaxx_get_user = 'ESSENT' THEN v_mld_srtkenmerk_key := 741; END IF;
|
||
IF aaxx_get_user = 'DOW' THEN v_mld_srtkenmerk_key := 81; END IF;
|
||
|
||
v_user_key := 10; -- Strukton user
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding :=
|
||
'['
|
||
|| rec.mld_opdr_key
|
||
|| '|'
|
||
|| SUBSTR (rec.opmerking, 1, 100)
|
||
|| '] ';
|
||
v_count_tot := v_count_tot + 1;
|
||
v_count := 0;
|
||
|
||
-- Key van melding/opdracht bepalen en externnr bij opdracht opslaan.
|
||
IF (rec.mld_opdr_key IS NOT NULL)
|
||
THEN
|
||
v_errormsg := 'Fout bij bepalen opdracht.';
|
||
|
||
SELECT mld_melding_key, mld_opdr_key, mld_statusopdr_key, mld_typeopdr_key
|
||
INTO v_mld_key, v_opdr_key, v_opdr_status, v_mld_typeopdr_key
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = rec.mld_opdr_key;
|
||
|
||
v_errormsg := 'Fout bij bepalen kenmerk extern nummer.';
|
||
SELECT k.mld_kenmerk_key
|
||
INTO v_mld_kenmerk_key
|
||
FROM mld_kenmerk k
|
||
WHERE k.mld_srtkenmerk_key = v_mld_srtkenmerk_key
|
||
AND k.mld_typeopdr_key = v_mld_typeopdr_key;
|
||
|
||
v_errormsg := 'Fout bij bepalen kenmerkopdracht extern nummer.';
|
||
SELECT max(ko.mld_kenmerkopdr_key)
|
||
INTO v_mld_kenmerkopdr_key
|
||
FROM mld_kenmerkopdr ko
|
||
WHERE ko.mld_opdr_key = v_opdr_key
|
||
AND v_mld_kenmerk_key = ko.mld_kenmerk_key;
|
||
|
||
v_errormsg := 'Fout bij aanpassen extern nummer.';
|
||
IF v_mld_kenmerkopdr_key IS NULL THEN
|
||
-- kenmerk toevoegen
|
||
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key, mld_opdr_key, mld_kenmerkopdr_waarde)
|
||
VALUES (v_mld_kenmerk_key, v_opdr_key, rec.extern_nummer);
|
||
ELSE
|
||
-- kenmerk aanpassen
|
||
UPDATE mld_kenmerkopdr SET mld_kenmerkopdr_waarde = rec.extern_nummer WHERE mld_kenmerkopdr_key = v_mld_kenmerkopdr_key;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij bijwerken opdracht-opmerking.';
|
||
|
||
v_count := LENGTH (rec.opmerking) + 5; -- Beetje speling qua lengte!
|
||
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_opmerking =
|
||
DECODE (
|
||
mld_opdr_opmerking,
|
||
NULL,
|
||
rec.opmerking,
|
||
rec.opmerking
|
||
|| CHR (13)
|
||
|| CHR (10)
|
||
|| SUBSTR (mld_opdr_opmerking, 1, (4000 - v_count)))
|
||
WHERE mld_opdr_key = v_opdr_key;
|
||
|
||
IF v_opdr_status <> rec.status
|
||
THEN
|
||
IF rec.status = 8 AND v_opdr_status = 5
|
||
THEN
|
||
-- Accepteer opdracht als de opdracht uitgegeven was
|
||
MLD.setopdrachtstatus (v_opdr_key, 8, v_user_key); -- Facilitor
|
||
ELSIF rec.status = 6 AND v_opdr_status = 5
|
||
THEN
|
||
-- Meld de opdracht af als deze uitgegeven was
|
||
MLD.setopdrachtstatus (v_opdr_key, 8, v_user_key); -- Facilitor, eerst accepteren
|
||
MLD.setopdrachtstatus (v_opdr_key, 6, v_user_key); -- Facilitor
|
||
ELSIF rec.status = 6 AND v_opdr_status = 8
|
||
THEN
|
||
-- Meld de opdracht af als deze geaccepteerd was
|
||
MLD.setopdrachtstatus (v_opdr_key, 6, v_user_key); -- Facilitor
|
||
ELSIF rec.status = 1 AND v_opdr_status = 5
|
||
THEN
|
||
-- Opdracht is afgewezen op het moment dat de opdracht nog niet geaccepteerd is.
|
||
MLD.setopdrachtstatus (v_opdr_key, 1, v_user_key); -- Facilitor
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, v_user_key, 0);
|
||
ELSIF rec.status = 1 AND v_opdr_status = 8
|
||
THEN
|
||
-- Opdracht is afgewezen op het moment dat de opdracht al geaccepteerd is.
|
||
MLD.setopdrachtstatus (v_opdr_key, 1, v_user_key); -- Facilitor
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, v_user_key, 0);
|
||
END IF;
|
||
|
||
IF rec.status = 6 AND v_opdr_status <> 6
|
||
THEN
|
||
v_errormsg := 'Fout bij statusaanpassing melding.';
|
||
-- Sinds AADO#30922 wordt de melding niet meer automatisch afgemeld.
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, v_user_key, 0);
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Fout bij verwerken opdrachtstatusbericht.');
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- IMPORTFUNCTIE - DIENST_LOC_BLD
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_dienst_loc_bld (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c_cursor
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
v_newline VARCHAR2 (1000); -- Import line
|
||
v_field VARCHAR2 (100); -- Import field
|
||
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_skipfield VARCHAR2 (100);
|
||
-- De importvelden
|
||
v_bedrijf_naam VARCHAR2 (100);
|
||
v_bedrijf_nr VARCHAR2 (100);
|
||
v_dienst_oms VARCHAR2 (100);
|
||
v_locatie_code VARCHAR2 (100);
|
||
v_gebouw_code VARCHAR2 (100);
|
||
header_found BOOLEAN;
|
||
BEGIN
|
||
-- Init
|
||
header_found := FALSE;
|
||
v_fielddelimitor := ';';
|
||
|
||
-- Clear my previous imported rows
|
||
DELETE FROM aaxx_imp_dienst_loc_bld;
|
||
|
||
FOR rec1 IN c_cursor
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
|
||
IF SUBSTR (v_newline, 1, 3) = '?'
|
||
THEN
|
||
-- EF BB BF aangetroffen
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Byte Order Mark aangetroffen',
|
||
'Bestand heeft onbehandeld UTF-8 formaat.');
|
||
v_newline := SUBSTR (v_newline, 4);
|
||
END IF;
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijf_naam);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijf_nr);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dienst_oms);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie_code);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_gebouw_code);
|
||
|
||
-- Skip until a valid header is found
|
||
IF UPPER (v_bedrijf_naam) = 'BEDRIJFNAAM'
|
||
AND UPPER (v_bedrijf_nr) = 'BEDRIJF_NR'
|
||
AND UPPER (v_dienst_oms) = 'DIENST'
|
||
AND UPPER (v_locatie_code) = 'LOCATIE_CODE'
|
||
AND UPPER (v_gebouw_code) = 'GEBOUW_CODE'
|
||
THEN
|
||
-- Sla de kopregel over.
|
||
header_found := TRUE;
|
||
ELSIF (header_found)
|
||
THEN
|
||
INSERT INTO aaxx_imp_dienst_loc_bld (prs_bedrijf_naam,
|
||
prs_bedrijf_nr,
|
||
prs_dienst_omschrijving,
|
||
alg_locatie_code,
|
||
alg_gebouw_code)
|
||
VALUES (SUBSTR (v_bedrijf_naam, 1, 60),
|
||
SUBSTR (v_bedrijf_nr, 1, 50),
|
||
SUBSTR (v_dienst_oms, 1, 60),
|
||
SUBSTR (v_locatie_code, 1, 10),
|
||
SUBSTR (v_gebouw_code, 1, 12));
|
||
END IF;
|
||
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF NOT header_found
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Geen geldige header aangetroffen',
|
||
'Bestand is geen geldig BedrijfDienstLocatieGebouw importbestand.');
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
'');
|
||
|
||
-- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden.
|
||
DELETE FROM aaxx_imp_dienst_loc_bld;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_dienst_loc_bld (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR cbdlg
|
||
IS
|
||
SELECT prs_bedrijf_naam,
|
||
prs_bedrijf_nr,
|
||
prs_dienst_omschrijving,
|
||
alg_locatie_code,
|
||
alg_gebouw_code
|
||
FROM aaxx_imp_dienst_loc_bld
|
||
WHERE prs_dienst_omschrijving IS NOT NULL;
|
||
|
||
v_oldcountbdlg NUMBER;
|
||
v_newcountbdlg NUMBER;
|
||
v_prs_bedrijf_key NUMBER;
|
||
v_prs_dienst_key NUMBER;
|
||
v_alg_locatie_key NUMBER;
|
||
v_alg_gebouw_key NUMBER;
|
||
v_errormsg VARCHAR (1000);
|
||
v_error_hint VARCHAR (1000);
|
||
oracle_err_mes VARCHAR2 (150);
|
||
oracle_err_num VARCHAR2 (150);
|
||
currentversion fac_module.fac_module_version%TYPE;
|
||
BEGIN
|
||
SELECT MAX (fac_module_version) INTO currentversion FROM fac_module;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'Arcadis Aqumen BedrijfDienstLocatieGebouw import version '
|
||
|| currentversion,
|
||
'$Revision$');
|
||
|
||
SELECT COUNT ( * ) INTO v_oldcountbdlg FROM aaxx_imp_dienst_loc_bld;
|
||
|
||
IF v_oldcountbdlg = 0
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Arcadis Aqumen BedrijfDienstLocatieGebouw import bevat geen records',
|
||
'$Revision$');
|
||
RETURN;
|
||
END IF;
|
||
|
||
-- How many active records are now present?
|
||
SELECT COUNT ( * ) INTO v_oldcountbdlg FROM prs_bedrijfdienstlocatie;
|
||
|
||
-- remove the existing records
|
||
DELETE prs_bedrijfdienstlocatie;
|
||
|
||
FOR rec IN cbdlg
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg :=
|
||
'Kan dienst niet bepalen ['
|
||
|| rec.prs_dienst_omschrijving
|
||
|| '] ';
|
||
|
||
SELECT prs_dienst_key
|
||
INTO v_prs_dienst_key
|
||
FROM prs_dienst
|
||
WHERE UPPER (prs_dienst_omschrijving) =
|
||
UPPER (rec.prs_dienst_omschrijving);
|
||
|
||
v_errormsg :=
|
||
'Kan locatie niet bepalen [' || rec.alg_locatie_code || '] ';
|
||
|
||
IF rec.alg_locatie_code IS NOT NULL
|
||
THEN
|
||
SELECT alg_locatie_key
|
||
INTO v_alg_locatie_key
|
||
FROM alg_v_aanweziglocatie
|
||
WHERE UPPER (alg_locatie_code) = UPPER (rec.alg_locatie_code);
|
||
ELSE
|
||
v_alg_locatie_key := NULL;
|
||
END IF;
|
||
|
||
v_errormsg :=
|
||
'Kan gebouw niet bepalen [' || rec.alg_gebouw_code || '] ';
|
||
|
||
IF rec.alg_gebouw_code IS NOT NULL
|
||
THEN
|
||
SELECT alg_gebouw_key
|
||
INTO v_alg_gebouw_key
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE alg_gebouw_upper = UPPER (rec.alg_gebouw_code);
|
||
|
||
v_alg_locatie_key := NULL;
|
||
ELSE
|
||
v_alg_gebouw_key := NULL;
|
||
END IF;
|
||
|
||
v_errormsg :=
|
||
'Kan bedrijf niet bepalen ['
|
||
|| rec.prs_bedrijf_naam
|
||
|| '('
|
||
|| rec.prs_bedrijf_nr
|
||
|| ')'
|
||
|| '] ';
|
||
|
||
SELECT prs_bedrijf_key
|
||
INTO v_prs_bedrijf_key
|
||
FROM prs_v_aanwezigbedrijf
|
||
WHERE UPPER (prs_bedrijf_naam) = UPPER (rec.prs_bedrijf_naam);
|
||
|
||
v_errormsg :=
|
||
'Kan bedrijf/dienst/loc/bld niet wegschrijven ['
|
||
|| rec.prs_bedrijf_naam
|
||
|| '('
|
||
|| rec.prs_bedrijf_nr
|
||
|| ')'
|
||
|| '/'
|
||
|| rec.prs_dienst_omschrijving
|
||
|| '/'
|
||
|| rec.alg_locatie_code
|
||
|| '/'
|
||
|| rec.alg_gebouw_code
|
||
|| '] ';
|
||
|
||
INSERT INTO prs_bedrijfdienstlocatie (prs_dienst_key,
|
||
prs_bedrijf_key,
|
||
alg_locatie_key,
|
||
alg_gebouw_key)
|
||
VALUES (v_prs_dienst_key,
|
||
v_prs_bedrijf_key,
|
||
v_alg_locatie_key,
|
||
v_alg_gebouw_key);
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_hint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
SELECT COUNT ( * ) INTO v_newcountbdlg FROM aaxx_imp_dienst_loc_bld;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'Aantal BedrijfDienstLocBld vooraf: '
|
||
|| TO_CHAR (v_oldcountbdlg)
|
||
|| ' => nu: '
|
||
|| TO_CHAR (v_newcountbdlg),
|
||
'');
|
||
END;
|
||
/
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- RAPPORTAGES aaxx_v_rap_gebruikers_auth
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_gebruikers_auth (
|
||
naam,
|
||
afdeling,
|
||
functie,
|
||
email,
|
||
login,
|
||
alt_login,
|
||
auth_groep,
|
||
last_login
|
||
)
|
||
AS
|
||
SELECT prs_perslid_naam_full,
|
||
prs_afdeling_omschrijving,
|
||
prs_srtperslid_omschrijving,
|
||
prs_perslid_email,
|
||
prs_perslid_oslogin,
|
||
prs_perslid_oslogin2,
|
||
fac_groep_omschrijving,
|
||
prs_perslid_login
|
||
FROM prs_v_aanwezigperslid p,
|
||
prs_v_perslid_fullnames pf,
|
||
fac_gebruikersgroep gg,
|
||
prs_afdeling a,
|
||
fac_groep g,
|
||
prs_srtperslid sp
|
||
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key(+)
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||
AND gg.fac_groep_key = g.fac_groep_key(+)
|
||
AND (p.prs_perslid_oslogin IS NOT NULL
|
||
OR p.prs_perslid_oslogin2 IS NOT NULL)
|
||
AND SUBSTR(COALESCE (p.prs_perslid_oslogin, 'QueQueLeQue'),1,1) <> '_';
|
||
|
||
-- Geatoriseerd voor ORDBO2 maar niet gekoppeld aan een bedrijf of AAFMer
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_ordbo2_no_bdr
|
||
(
|
||
prs_perslid_key,
|
||
naam,
|
||
login_naam,
|
||
email,
|
||
autorisatiegroep
|
||
)
|
||
AS
|
||
SELECT DISTINCT pf.prs_perslid_key,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_oslogin,
|
||
prs_perslid_email,
|
||
fac_groep_omschrijving
|
||
FROM fac_groeprechten fgr,
|
||
fac_functie ff,
|
||
fac_gebruikersgroep fgg,
|
||
fac_groep fg,
|
||
prs_v_perslid_fullnames pf,
|
||
prs_perslid p
|
||
WHERE ff.fac_functie_key = fgr.fac_functie_key
|
||
AND UPPER (fac_functie_code) = 'WEB_ORDBO2'
|
||
AND (fac_gebruiker_prs_level_read < 9
|
||
OR fac_gebruiker_alg_level_read < 9)
|
||
AND fgr.fac_groep_key = fgg.fac_groep_key
|
||
AND p.prs_perslid_key = fgg.prs_perslid_key
|
||
AND fg.fac_groep_key = fgg.fac_groep_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND UPPER (prs_perslid_oslogin) != '_FACILITOR'
|
||
AND fgg.prs_perslid_key NOT IN
|
||
(SELECT prs_perslid_key
|
||
FROM prs_contactpersoon pc, prs_bedrijf b
|
||
WHERE prs_contactpersoon_verwijder IS NULL
|
||
AND pc.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_bedrijf_verwijder IS NULL
|
||
AND pc.prs_perslid_key IS NOT NULL)
|
||
AND NOT EXISTS
|
||
(SELECT prs_afdeling_key
|
||
FROM prs_afdeling a
|
||
WHERE a.prs_afdeling_key = p.prs_afdeling_key
|
||
AND (a.prs_afdeling_omschrijving = 'AAFM' OR a.prs_afdeling_upper = 'HEYDAY'));
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_dienst_loc_bld (fclt_f_bedrijfnaam
|
||
, fclt_f_bedrijf_nr
|
||
, fclt_f_dienst
|
||
, fclt_f_locatie_code
|
||
, fclt_f_gebouw_code
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_naam bedrijfnaam,
|
||
prs_leverancier_nr bedrijfnummer,
|
||
prs_dienst_omschrijving dienst,
|
||
alg_locatie_code locatie_code,
|
||
alg_gebouw_upper gebouw_code
|
||
FROM prs_v_aanwezigbedrijf b,
|
||
prs_dienst d,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
prs_bedrijfdienstlocatie bdl
|
||
WHERE b.prs_bedrijf_key = bdl.prs_bedrijf_key(+)
|
||
AND bdl.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND bdl.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND bdl.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND COALESCE (b.prs_bedrijf_intern, 0) = 0;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_bdl_contract
|
||
(
|
||
fclt_f_profiel,
|
||
fclt_f_bedrijfnaam,
|
||
fclt_f_bedrijf_nr,
|
||
fclt_f_dienst,
|
||
fclt_f_locatie_code,
|
||
fclt_f_gebouw_code,
|
||
fclt_f_contract
|
||
)
|
||
AS
|
||
SELECT 'Contract',
|
||
prs_bedrijf_naam,
|
||
prs_leverancier_nr,
|
||
prs_dienst_omschrijving,
|
||
(SELECT alg_locatie_code
|
||
FROM alg_locatie l
|
||
WHERE l.alg_locatie_key =
|
||
COALESCE (cpl.alg_locatie_key, cpg.alg_locatie_key)),
|
||
(SELECT alg_gebouw_upper
|
||
FROM alg_gebouw g1
|
||
WHERE g1.alg_gebouw_key = cpg.alg_gebouw_key),
|
||
c.cnt_contract_nummer_intern
|
||
FROM cnt_contract c,
|
||
(SELECT cnt_contract_key, cnt_alg_plaats_key alg_locatie_key
|
||
FROM cnt_contract_plaats cp
|
||
WHERE cp.cnt_contract_plaats_verwijder IS NULL
|
||
AND cp.cnt_alg_plaats_code = 'L') cpl,
|
||
(SELECT cnt_contract_key, g.alg_locatie_key, g.alg_gebouw_key
|
||
FROM cnt_contract_plaats cp, alg_gebouw g
|
||
WHERE cp.cnt_alg_plaats_code = 'G'
|
||
AND cnt_alg_plaats_key = g.alg_gebouw_key) cpg,
|
||
prs_bedrijf b,
|
||
prs_dienst d
|
||
WHERE c.cnt_contract_key = cpl.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = cpg.cnt_contract_key(+)
|
||
AND c.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
|
||
AND c.cnt_contract_looptijd_tot > SYSDATE
|
||
UNION ALL
|
||
SELECT 'Uitvoerder',
|
||
prs_bedrijf_naam bedrijfnaam,
|
||
prs_leverancier_nr bedrijfnummer,
|
||
prs_dienst_omschrijving dienst,
|
||
alg_locatie_code locatie_code,
|
||
alg_gebouw_upper gebouw_code,
|
||
NULL
|
||
FROM prs_v_aanwezigbedrijf b,
|
||
prs_dienst d,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
prs_bedrijfdienstlocatie bdl
|
||
WHERE b.prs_bedrijf_key = bdl.prs_bedrijf_key(+)
|
||
AND bdl.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND bdl.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND bdl.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND COALESCE (b.prs_bedrijf_intern, 0) = 0;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_contractorders (
|
||
contractorder,
|
||
versie,
|
||
fclt_f_gebouwcode,
|
||
fclt_f_leverancier,
|
||
fclt_f_beschrijving,
|
||
fclt_f_pakket,
|
||
ingangsdatum,
|
||
einddatum,
|
||
fclt_f_status,
|
||
kosten,
|
||
totaalkosten,
|
||
gefactureerd,
|
||
dienst,
|
||
leveranciernr
|
||
)
|
||
AS
|
||
SELECT cnt_contract_nummer_intern contractorder,
|
||
cnt_contract_versie,
|
||
alg_gebouw_code gebouwcode,
|
||
prs_bedrijf_naam leverancier,
|
||
k.prs_kostensoort_opmerking beschrijving,
|
||
(SELECT prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg
|
||
WHERE ksg.prs_kostensoortgrp_key = k.prs_kostensoortgrp_key)
|
||
pakket,
|
||
TO_CHAR (c.cnt_contract_looptijd_van, 'DD-MM-YYYY') ingangsdatum,
|
||
TO_CHAR (c.cnt_contract_looptijd_tot, 'DD-MM-YYYY') einddatum,
|
||
DECODE (SIGN (cnt_contract_looptijd_van - SYSDATE),
|
||
1,
|
||
'Toekomst',
|
||
-1,
|
||
DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE),
|
||
1,
|
||
'Actueel',
|
||
-1,
|
||
'Verlopen'
|
||
)
|
||
)
|
||
status,
|
||
COALESCE (ROUND ( DECODE (cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* c.cnt_contract_kosten),
|
||
2
|
||
),
|
||
0
|
||
)
|
||
kosten,
|
||
c.cnt_contract_kosten orderbedrag,
|
||
(SELECT SUM (fr.fin_factuurregel_totaal)
|
||
FROM aaxx_v_aanwezigfactuur f, fin_factuurregel fr
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.cnt_contract_key = c.cnt_contract_key)
|
||
gefactureerd,
|
||
k.prs_kostensoort_refcode dienst,
|
||
b.prs_leverancier_nr leveranciernr
|
||
FROM cnt_contract c,
|
||
cnt_discipline d,
|
||
cnt_contract_plaats cp,
|
||
prs_bedrijf b,
|
||
prs_kostensoort k,
|
||
prs_kostenplaats kp,
|
||
prs_afdeling a,
|
||
prs_perslid p,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
prs_contactpersoon cop,
|
||
(SELECT cnt_contract_key,
|
||
SUM (cnt_contract_plaats_gewicht) cnt_contract_plaats_gewicht
|
||
FROM cnt_contract_plaats
|
||
GROUP BY cnt_contract_key) cnt_gew,
|
||
(SELECT cp.cnt_contract_plaats_key, alg_locatie_key, alg_gebouw_key
|
||
FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp
|
||
WHERE aog.alg_type = cp.cnt_alg_plaats_code
|
||
AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) cog
|
||
WHERE c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
|
||
AND c.prs_perslid_key_beh = p.prs_perslid_key
|
||
AND cp.cnt_contract_plaats_key = cog.cnt_contract_plaats_key(+)
|
||
AND c.prs_contactpersoon_key = cop.prs_contactpersoon_key(+)
|
||
AND cog.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND cog.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND cnt_contract_verwijder IS NULL;
|
||
|
||
-- eerst volgen de kopregels en de tweede union bevat de detailregels.
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_imp_jaarcontract
|
||
(
|
||
HIDE_F_VOLGORDE,
|
||
GEBOUW,
|
||
BEDRIJF,
|
||
LEVNR,
|
||
BESCHRIJVING,
|
||
INGANGSDATUM,
|
||
EINDDATUM,
|
||
ORDEROMSCHRIJVING,
|
||
BEDRAG,
|
||
TERMIJNBEDRAG,
|
||
DIENST,
|
||
CONTRACTSOORT,
|
||
CONTRACTNR,
|
||
VERSIE,
|
||
REGELNR,
|
||
CONTRACTAFDELING,
|
||
CONTRACTMANAGER,
|
||
GEWIJZIGDDOOR,
|
||
STATUS
|
||
)
|
||
AS
|
||
SELECT COALESCE (fac.safe_to_number (cnt_contract_nummer_intern),
|
||
cs.ins_discipline_key * 1000 + b.prs_bedrijf_key)
|
||
* 100,
|
||
k.prs_kostenplaats_nr,
|
||
prs_bedrijf_naam,
|
||
prs_leverancier_nr,
|
||
cnt_contract_omschrijving,
|
||
TO_CHAR (ADD_MONTHS (cnt_contract_looptijd_van, 12), 'dd-mm-yyyy'),
|
||
TO_CHAR (ADD_MONTHS (cnt_contract_looptijd_tot, 12), 'dd-mm-yyyy'),
|
||
REPLACE (cnt_contract_document, '"', ' - '),
|
||
cnt_contract_kosten,
|
||
cnt_contract_termijnkosten,
|
||
prs_dienst_omschrijving,
|
||
cs.ins_discipline_omschrijving,
|
||
cnt_contract_nummer_intern,
|
||
COALESCE (fac.safe_to_number (cnt_contract_versie), 0) + 1,
|
||
NULL,
|
||
a.prs_afdeling_naam,
|
||
p2.prs_perslid_oslogin,
|
||
p.prs_perslid_oslogin,
|
||
DECODE (SIGN(SYSDATE - c.cnt_contract_looptijd_tot), -1, 'Actief', 'Niet Actief') status
|
||
FROM cnt_v_aanwezigcontract c,
|
||
prs_kostenplaats k,
|
||
prs_perslid p,
|
||
prs_perslid p2,
|
||
prs_afdeling a,
|
||
prs_dienst d,
|
||
prs_bedrijf b,
|
||
ins_tab_discipline cs
|
||
WHERE (SYSDATE BETWEEN c.cnt_contract_looptijd_van -- TRUNC(SYSDATE, 'YEAR')
|
||
AND c.cnt_contract_looptijd_tot
|
||
OR c.cnt_contract_looptijd_van >= TRUNC(SYSDATE, 'YEAR')
|
||
OR c.cnt_contract_looptijd_tot >= SYSDATE - 150 )
|
||
AND c.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND c.prs_perslid_key_beh = p.prs_perslid_key
|
||
AND c.prs_perslid_key_eig = p2.prs_perslid_key(+)
|
||
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND c.ins_discipline_key = cs.ins_discipline_key
|
||
UNION ALL
|
||
SELECT (COALESCE (fac.safe_to_number (cnt_contract_nummer_intern),
|
||
cs.ins_discipline_key * 1000 + b.prs_bedrijf_key)
|
||
* 100)
|
||
+ aaxx_get_cnt_cont_plaats_index (cp.cnt_contract_plaats_key),
|
||
alg_gebouw_code,
|
||
prs_bedrijf_naam,
|
||
prs_leverancier_nr,
|
||
cnt_contract_omschrijving,
|
||
TO_CHAR (ADD_MONTHS (cnt_contract_looptijd_van, 12), 'dd-mm-yyyy'),
|
||
TO_CHAR (ADD_MONTHS (cnt_contract_looptijd_tot, 12), 'dd-mm-yyyy'),
|
||
NULL,
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
c.cnt_contract_kosten,
|
||
ROUND (
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* c.cnt_contract_kosten,
|
||
2)),
|
||
NULL,
|
||
prs_dienst_omschrijving,
|
||
cs.ins_discipline_omschrijving,
|
||
cnt_contract_nummer_intern,
|
||
COALESCE (fac.safe_to_number (cnt_contract_versie), 0) + 1,
|
||
aaxx_get_cnt_cont_plaats_index (cp.cnt_contract_plaats_key),
|
||
a.prs_afdeling_naam,
|
||
p2.prs_perslid_oslogin,
|
||
p.prs_perslid_oslogin,
|
||
DECODE (SIGN(SYSDATE - c.cnt_contract_looptijd_tot), -1, 'Actief', 'Niet Actief') status
|
||
FROM cnt_v_aanwezigcontract c,
|
||
prs_kostenplaats k,
|
||
prs_perslid p,
|
||
prs_perslid p2,
|
||
prs_afdeling a,
|
||
prs_dienst d,
|
||
prs_bedrijf b,
|
||
ins_tab_discipline cs,
|
||
cnt_contract_plaats cp,
|
||
alg_gebouw g,
|
||
( SELECT cnt_contract_key,
|
||
SUM (cnt_contract_plaats_gewicht)
|
||
cnt_contract_plaats_gewicht
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_plaats_verwijder IS NULL
|
||
GROUP BY cnt_contract_key) cnt_gew
|
||
WHERE (SYSDATE BETWEEN c.cnt_contract_looptijd_van -- TRUNC(SYSDATE, 'YEAR')
|
||
AND c.cnt_contract_looptijd_tot
|
||
OR c.cnt_contract_looptijd_van >= TRUNC(SYSDATE, 'YEAR')
|
||
OR c.cnt_contract_looptijd_tot >= SYSDATE - 150 )
|
||
AND c.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND c.prs_perslid_key_beh = p.prs_perslid_key
|
||
AND c.prs_perslid_key_eig = p2.prs_perslid_key(+)
|
||
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND c.ins_discipline_key = cs.ins_discipline_key
|
||
AND c.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND c.cnt_contract_key = cnt_gew.cnt_contract_key;
|
||
|
||
-- rapportage om ruimteinformatie te exporteren / bewerken en importeren in Facilitor
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_imp_ruimte
|
||
(
|
||
fclt_f_locatie,
|
||
fclt_f_gebouw,
|
||
fclt_f_verdieping,
|
||
alg_ruimte_key,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
alg_srtruimte_omschrijving,
|
||
mld_dienstniveau_omschr,
|
||
alg_ruimte_bruto_vloeropp
|
||
)
|
||
AS
|
||
SELECT alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_code,
|
||
alg_ruimte_key,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
sr.alg_srtruimte_omschrijving,
|
||
d.mld_dienstniveau_omschr,
|
||
r.alg_ruimte_bruto_vloeropp
|
||
FROM alg_ruimte r,
|
||
mld_dienstniveau d,
|
||
alg_srtruimte sr,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
alg_locatie l
|
||
WHERE r.mld_dienstniveau_key = d.mld_dienstniveau_key(+)
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND r.alg_ruimte_verwijder IS NULL;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_stdmelding_gegbasis
|
||
(
|
||
fclt_f_vakgroeptype,
|
||
fclt_f_vakgroep,
|
||
fclt_f_melding,
|
||
groep,
|
||
niet_zichtbaar_fe,
|
||
acceptatietijd,
|
||
uitvoertijd,
|
||
kostensoort,
|
||
kostensoort_code,
|
||
fin_waarde,
|
||
aanwijzing_nederlands,
|
||
aanwijzing_english,
|
||
aanwijzing_deutsch,
|
||
aanwijzing_francais,
|
||
dienst,
|
||
vereist_dienst,
|
||
opdrachttype,
|
||
autoorder,
|
||
alg_niveau,
|
||
vervallen
|
||
)
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
m.mld_stdmelding_omschrijving,
|
||
g.mld_stdmeldinggroep_naam mld_stdmelding_groep,
|
||
DECODE (m.mld_stdmelding_notfrontend, 1, 'Ja', 'Nee'),
|
||
TO_CHAR (m.mld_stdmelding_t_accepttijd.tijdsduur)
|
||
|| m.mld_stdmelding_t_accepttijd.eenheid,
|
||
TO_CHAR (m.mld_stdmelding_t_uitvoertijd.tijdsduur)
|
||
|| m.mld_stdmelding_t_uitvoertijd.eenheid,
|
||
COALESCE (k2.prs_kostensoort_opmerking,
|
||
k.prs_kostensoort_opmerking),
|
||
COALESCE (k2.prs_kostensoort_oms, k.prs_kostensoort_oms),
|
||
COALESCE (k2.prs_kostensoort_refcode, k.prs_kostensoort_refcode),
|
||
mld_stdmelding_hint,
|
||
len.fac_locale_tekst,
|
||
lde.fac_locale_tekst,
|
||
lfr.fac_locale_tekst,
|
||
d.prs_dienst_omschrijving,
|
||
m.mld_stdmelding_vereisdienst,
|
||
ot.mld_typeopdr_omschrijving,
|
||
m.mld_stdmelding_autoorder,
|
||
alg_onrgoed_niveau,
|
||
mld_stdmelding_vervaldatum
|
||
FROM mld_stdmelding m,
|
||
mld_stdmeldinggroep g,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
prs_kostensoort k,
|
||
prs_kostensoort k2,
|
||
prs_dienst d,
|
||
mld_typeopdr ot,
|
||
(SELECT fac_locale_kolomkeyval, fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT'
|
||
AND fac_locale_lang = 'EN') len,
|
||
(SELECT fac_locale_kolomkeyval, fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT'
|
||
AND fac_locale_lang = 'DE') lde,
|
||
(SELECT fac_locale_kolomkeyval, fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT'
|
||
AND fac_locale_lang = 'FR') lfr
|
||
WHERE m.mld_stdmelding_verwijder IS NULL
|
||
AND m.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND m.prs_kostensoort_key = k2.prs_kostensoort_key(+)
|
||
AND m.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND m.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||
AND m.mld_stdmeldinggroep_key = g.mld_stdmeldinggroep_key(+)
|
||
AND len.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key
|
||
AND lde.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key
|
||
AND lfr.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_stdmelding_gegevens
|
||
(
|
||
fclt_f_vakgroeptype,
|
||
fclt_f_vakgroep,
|
||
fclt_f_melding,
|
||
groep,
|
||
niet_zichtbaar_fe,
|
||
acceptatietijd,
|
||
uitvoertijd,
|
||
kostensoort,
|
||
kostensoort_code,
|
||
fin_waarde,
|
||
aanwijzing_nederlands,
|
||
aanwijzing_english,
|
||
aanwijzing_deutsch,
|
||
aanwijzing_francais,
|
||
alg_niveau,
|
||
vervallen,
|
||
vereist_dienst,
|
||
opdrachttype,
|
||
autoorder,
|
||
fclt_f_dienst,
|
||
fclt_f_bedrijf,
|
||
fclt_f_locatie_code,
|
||
fclt_f_gebouw_code
|
||
)
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
m.mld_stdmelding_omschrijving,
|
||
g.mld_stdmeldinggroep_naam mld_stdmelding_groep,
|
||
DECODE (m.mld_stdmelding_notfrontend, 1, 'Ja', 'Nee'),
|
||
TO_CHAR (m.mld_stdmelding_t_accepttijd.tijdsduur)
|
||
|| m.mld_stdmelding_t_accepttijd.eenheid,
|
||
TO_CHAR (m.mld_stdmelding_t_uitvoertijd.tijdsduur)
|
||
|| m.mld_stdmelding_t_uitvoertijd.eenheid,
|
||
COALESCE (k2.prs_kostensoort_opmerking,
|
||
k.prs_kostensoort_opmerking),
|
||
COALESCE (k2.prs_kostensoort_oms, k.prs_kostensoort_oms),
|
||
COALESCE (k2.prs_kostensoort_refcode, k.prs_kostensoort_refcode),
|
||
mld_stdmelding_hint,
|
||
len.fac_locale_tekst,
|
||
lde.fac_locale_tekst,
|
||
lfr.fac_locale_tekst,
|
||
alg_onrgoed_niveau,
|
||
mld_stdmelding_vervaldatum,
|
||
m.mld_stdmelding_vereisdienst,
|
||
ot.mld_typeopdr_omschrijving,
|
||
m.mld_stdmelding_autoorder,
|
||
dl.dienst,
|
||
dl.bedrijfnaam,
|
||
dl.locatie_code,
|
||
dl.gebouw_code
|
||
FROM mld_stdmelding m,
|
||
mld_stdmeldinggroep g,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
prs_kostensoort k,
|
||
prs_kostensoort k2,
|
||
(SELECT d.prs_dienst_key,
|
||
prs_bedrijf_naam bedrijfnaam,
|
||
prs_dienst_omschrijving dienst,
|
||
alg_locatie_code locatie_code,
|
||
alg_gebouw_upper gebouw_code
|
||
FROM prs_v_aanwezigbedrijf b,
|
||
prs_dienst d,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
prs_bedrijfdienstlocatie bdl
|
||
WHERE b.prs_bedrijf_key = bdl.prs_bedrijf_key(+)
|
||
AND bdl.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND bdl.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND bdl.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND COALESCE (b.prs_bedrijf_intern, 0) = 0) dl,
|
||
mld_typeopdr ot,
|
||
(SELECT fac_locale_kolomkeyval, fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT'
|
||
AND fac_locale_lang = 'EN') len,
|
||
(SELECT fac_locale_kolomkeyval, fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT'
|
||
AND fac_locale_lang = 'DE') lde,
|
||
(SELECT fac_locale_kolomkeyval, fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_HINT'
|
||
AND fac_locale_lang = 'FR') lfr
|
||
WHERE m.mld_stdmelding_verwijder IS NULL
|
||
AND m.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND m.prs_kostensoort_key = k2.prs_kostensoort_key(+)
|
||
AND m.prs_dienst_key = dl.prs_dienst_key(+)
|
||
AND m.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||
AND m.mld_stdmeldinggroep_key = g.mld_stdmeldinggroep_key(+)
|
||
AND len.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key
|
||
AND lde.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key
|
||
AND lfr.fac_locale_kolomkeyval(+) = m.mld_stdmelding_key;
|
||
|
||
-- Ticket RABO#66623 - Bewaking afmelding bij vervolgmeldingen (toepassing o.a. bij N-meldingen binnen Assetmanagement)
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_bewaking_vervolgmld
|
||
(
|
||
VAKGROEPTYPE,
|
||
VAKGROEP,
|
||
HOOFD_MELDING_NR,
|
||
AANVRAGER,
|
||
GEKOPPELD,
|
||
HOOFD_MELDING_DATUM,
|
||
HOOFD_MELDING_STATUS,
|
||
VERVOLGMELDINGEN_AANTAL,
|
||
VERVOLGMELDINGEN,
|
||
VERVOLGMELDING_AFGEHANDELD,
|
||
OP_CONTROLELIJST
|
||
)
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_omschrijving,
|
||
md.ins_discipline_omschrijving,
|
||
m.mld_melding_key,
|
||
p.prs_perslid_naam,
|
||
CASE WHEN m.mld_melding_parentkey IS NULL THEN 'nee' ELSE 'ja, via ' || TO_CHAR(m.mld_melding_key) END
|
||
gekoppeld,
|
||
m.mld_melding_datum,
|
||
s.mld_statuses_omschrijving,
|
||
v1.aantal,
|
||
v1.vervolgmeldingen,
|
||
COALESCE(v2.aantal_afgehandeld,0)
|
||
vervolgmeldingen_afgehandeld,
|
||
CASE WHEN mld_melding_status NOT IN (1,5,6)
|
||
AND COALESCE(v2.aantal_afgehandeld,0) = v1.aantal
|
||
THEN 'ja'
|
||
ELSE 'nee'
|
||
END op_controlelijst
|
||
FROM mld_melding m, mld_statuses s, prs_perslid p, mld_stdmelding sm, mld_discipline md, ins_srtdiscipline sd,
|
||
(SELECT m.mld_melding_start_key, count(*) aantal,
|
||
LISTAGG ( TO_CHAR (m.mld_melding_key)
|
||
|| ' (' || s.mld_statuses_omschrijving || ')',
|
||
chr(13) || chr(10))
|
||
WITHIN GROUP (ORDER BY m.mld_melding_key)
|
||
AS vervolgmeldingen
|
||
FROM mld_melding m, mld_statuses s
|
||
WHERE m.mld_melding_start_key IS NOT NULL
|
||
AND mld_workflowstep_key IS NULL
|
||
AND m.mld_melding_status = s.mld_statuses_key
|
||
GROUP BY m.mld_melding_start_key ) v1,
|
||
(SELECT m.mld_melding_start_key, count(*) aantal_afgehandeld
|
||
FROM mld_melding m
|
||
WHERE m.mld_melding_start_key IS NOT NULL
|
||
AND mld_workflowstep_key IS NULL
|
||
AND mld_melding_status IN (1,5,6)
|
||
GROUP BY m.mld_melding_start_key ) v2
|
||
WHERE m.mld_melding_status = s.mld_statuses_key
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND m.mld_melding_key = v1.mld_melding_start_key
|
||
AND m.mld_melding_key = v2.mld_melding_start_key (+)
|
||
;
|
||
|
||
|
||
-- Grafische thema's en labels voor de plattegrond met reserveringsinfo
|
||
CREATE OR REPLACE VIEW aaxx_v_cad_label_res_info
|
||
(
|
||
alg_ruimte_key,
|
||
waarde
|
||
)
|
||
AS
|
||
SELECT rar.alg_ruimte_key,
|
||
max( TO_CHAR (res_rsv_ruimte_van, 'HH24:MI')
|
||
|| '-'
|
||
|| TO_CHAR (res_rsv_ruimte_tot, 'HH24:MI')
|
||
|| '~[s60]host: '
|
||
|| prs_perslid_naam
|
||
|| '~[s40][b]'
|
||
|| DECODE (COALESCE (INSTR (res_rsv_ruimte_omschrijving, ' ', 15),0),
|
||
0, res_rsv_ruimte_omschrijving,
|
||
SUBSTR (res_rsv_ruimte_omschrijving, 1, INSTR (res_rsv_ruimte_omschrijving, ' ', 15)-1)
|
||
|| chr(10)
|
||
|| '~[s40][b]' || SUBSTR(res_rsv_ruimte_omschrijving, INSTR(res_rsv_ruimte_omschrijving, ' ', 15)+1, 50))
|
||
) waarde
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
res_alg_ruimte rar,
|
||
res_opstelling ro,
|
||
prs_perslid pp
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key
|
||
AND rar.res_ruimte_key = rr.res_ruimte_key
|
||
AND SYSDATE BETWEEN res_rsv_ruimte_van - (1 / 96) -- kwartier
|
||
AND res_rsv_ruimte_tot
|
||
AND pp.prs_perslid_key = res_rsv_ruimte_host_key
|
||
AND (res_rsv_ruimte_bezoekers_shown IS NULL
|
||
OR res_rsv_ruimte_bezoekers_shown > 0)
|
||
GROUP BY rar.alg_ruimte_key;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_cad_thema_resinfo
|
||
(
|
||
alg_ruimte_key,
|
||
waarde
|
||
)
|
||
AS
|
||
SELECT rar.alg_ruimte_key alg_ruimte_key,
|
||
ROUND ( (res_rsv_ruimte_tot - SYSDATE) * 24, 2) waarde
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
res_alg_ruimte rar,
|
||
res_opstelling ro
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key
|
||
AND rar.res_ruimte_key = rr.res_ruimte_key
|
||
AND SYSDATE BETWEEN res_rsv_ruimte_van AND res_rsv_ruimte_tot
|
||
AND (res_rsv_ruimte_bezoekers_shown IS NULL
|
||
OR res_rsv_ruimte_bezoekers_shown > 0)
|
||
UNION
|
||
-- binnenkort aanvangende reserveringen
|
||
SELECT rar.alg_ruimte_key alg_ruimte_key,
|
||
ROUND ( (SYSDATE - res_rsv_ruimte_van) * 24, 2) waarde
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
res_alg_ruimte rar,
|
||
res_opstelling ro
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key
|
||
AND rar.res_ruimte_key = rr.res_ruimte_key
|
||
AND SYSDATE BETWEEN res_rsv_ruimte_van - (1 / 24)
|
||
AND res_rsv_ruimte_tot
|
||
AND SYSDATE < res_rsv_ruimte_van
|
||
AND (res_rsv_ruimte_bezoekers_shown IS NULL
|
||
OR res_rsv_ruimte_bezoekers_shown > 0)
|
||
UNION
|
||
-- voorlopig vrije ruimte
|
||
SELECT rar.alg_ruimte_key alg_ruimte_key, 0 waarde
|
||
FROM res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
res_alg_ruimte rar,
|
||
res_opstelling ro
|
||
WHERE rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key
|
||
AND rar.res_ruimte_key = rr.res_ruimte_key
|
||
AND NOT EXISTS
|
||
(SELECT ''
|
||
FROM res_v_aanwezigrsv_ruimte rrr
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND SYSDATE BETWEEN res_rsv_ruimte_van - (1 / 24)
|
||
AND res_rsv_ruimte_tot
|
||
AND (res_rsv_ruimte_bezoekers_shown IS NULL
|
||
OR res_rsv_ruimte_bezoekers_shown > 0));
|
||
|
||
|
||
|
||
|
||
-- view voor het exporteren van een catalogus. Deze kan later via de import ingelezen worden.
|
||
CREATE OR REPLACE VIEW aaxx_v_imp_bes_artikel_sync
|
||
(
|
||
FCLT_F_CatalogusNaam,
|
||
Leverancier,
|
||
CatDatum,
|
||
Artikelnr,
|
||
Groep,
|
||
Omschrijving,
|
||
Prijs,
|
||
Eenheid,
|
||
Picture,
|
||
Orderaantal,
|
||
Tax,
|
||
DueDate,
|
||
Inkoopprijs,
|
||
Minimum,
|
||
Staffeltabel,
|
||
Wijzigdagen,
|
||
Annuleerdagen
|
||
)
|
||
AS
|
||
SELECT td.ins_discipline_omschrijving,
|
||
b.prs_bedrijf_naam,
|
||
TO_CHAR (td.ins_discipline_aanmaak, 'yyyymmdd'),
|
||
sd.bes_srtdeel_nr,
|
||
sg.bes_srtgroep_omschrijving,
|
||
sd.bes_srtdeel_omschrijving,
|
||
TO_CHAR (bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL)),
|
||
sd.bes_srtdeel_eenheid,
|
||
sd.bes_srtdeel_image,
|
||
TO_CHAR (sd.bes_srtdeel_veelvoud),
|
||
TO_CHAR (sd.bes_srtdeel_btw),
|
||
TO_CHAR (sd.bes_srtdeel_vervaldatum, 'yyyymmdd'),
|
||
TO_CHAR (bes.getsrtdeelinkprijs (sd.bes_srtdeel_key, NULL)),
|
||
NULL,
|
||
bs.bes_staffeltabel_naam,
|
||
sd.bes_srtdeel_wijzigdagen,
|
||
sd.bes_srtdeel_annuleerdagen
|
||
FROM ins_tab_discipline td,
|
||
bes_srtgroep sg,
|
||
bes_srtdeel sd,
|
||
prs_bedrijf b,
|
||
bes_staffeltabel bs
|
||
WHERE td.ins_discipline_module = 'BES'
|
||
AND td.ins_discipline_verwijder IS NULL
|
||
AND td.ins_discipline_key = sg.ins_discipline_key
|
||
AND sg.bes_srtgroep_verwijder IS NULL
|
||
AND sg.bes_srtgroep_key = sd.bes_srtgroep_key
|
||
AND sd.bes_srtdeel_verwijder IS NULL
|
||
AND sd.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND bs.bes_staffeltabel_key(+) = sd.bes_staffeltabel_key;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_kostenmutatie
|
||
(
|
||
opdracht,
|
||
vakgroeptype,
|
||
vakgroep,
|
||
mutatie,
|
||
fclt_d_datum,
|
||
fclt_f_leverancier,
|
||
persoon
|
||
)
|
||
AS
|
||
SELECT o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht,
|
||
(SELECT ins_srtdiscipline_omschrijving
|
||
FROM ins_srtdiscipline sd
|
||
WHERE sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key)
|
||
Vakgroeptype,
|
||
ins_discipline_omschrijving vakgroep,
|
||
SUBSTR (
|
||
fac_tracking_oms,
|
||
INSTR (fac_tracking_oms, 'Totaal ex. BTW:'),
|
||
DECODE (
|
||
INSTR (fac_tracking_oms,
|
||
CHR (10),
|
||
INSTR (fac_tracking_oms, 'Totaal ex. BTW:')),
|
||
0,
|
||
10000,
|
||
INSTR (fac_tracking_oms,
|
||
CHR (10),
|
||
INSTR (fac_tracking_oms, 'Totaal ex. BTW:')))
|
||
- INSTR (fac_tracking_oms, 'Totaal ex. BTW:'))
|
||
oud_nieuw,
|
||
TO_CHAR (fac_tracking_datum, 'dd-mm-yyyy') datum,
|
||
prs_bedrijf_naam leverancier,
|
||
prs_perslid_naam_full persoon
|
||
FROM fac_tracking t,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
prs_v_perslid_fullnames_all pf,
|
||
prs_bedrijf b
|
||
WHERE fac_tracking_oms LIKE '%Totaal ex. BTW:%'
|
||
AND t.fac_tracking_refkey = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND t.prs_perslid_key = pf.prs_perslid_key(+)
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
|
||
AND t.fac_tracking_datum BETWEEN mld.getopdrachtstatusdate (
|
||
o.mld_opdr_key,
|
||
6) -- afgemeld
|
||
AND COALESCE (
|
||
mld.getopdrachtstatusdate (
|
||
o.mld_opdr_key,
|
||
9), -- afgerond
|
||
SYSDATE);
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_bedrijf_orderadres
|
||
(
|
||
fclt_f_bedrijf,
|
||
fclt_f_plaats,
|
||
fclt_f_nummer,
|
||
fclt_f_email,
|
||
fclt_f_type,
|
||
fclt_f_orderadres,
|
||
stylesheet
|
||
)
|
||
AS
|
||
SELECT b.prs_bedrijf_naam,
|
||
b.prs_bedrijf_bezoek_plaats,
|
||
b.prs_leverancier_nr,
|
||
b.prs_bedrijf_email,
|
||
DECODE (a.prs_bedrijfadres_type,
|
||
'C', 'Contract',
|
||
'B', 'Bestelling',
|
||
'Opdracht')
|
||
|| ' '
|
||
|| ot.mld_typeopdr_omschrijving
|
||
TYPE,
|
||
a.prs_bedrijfadres_url,
|
||
a.prs_bedrijfadres_xsl
|
||
FROM prs_bedrijf b, prs_bedrijfadres a, mld_typeopdr ot
|
||
WHERE b.prs_bedrijf_key = a.prs_bedrijf_key
|
||
AND b.prs_bedrijf_verwijder IS NULL
|
||
AND NVL (b.prs_bedrijf_intern, 0) <> 1
|
||
AND a.mld_typeopdr_key = ot.mld_typeopdr_key(+);
|
||
|
||
-- view om offertestatus in dashbord te tonen
|
||
-- functionaliteit overgenomen uit mld.inc
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_offerte_status
|
||
AS
|
||
SELECT m.melder_key,
|
||
m.melder,
|
||
u.*,
|
||
g.prs_perslid_key_verantw opdracht_gebouw_verantw_key,
|
||
m.kostensoort kostensoort,
|
||
subproductgroepgroep,
|
||
DECODE (
|
||
COALESCE (na.aantal, 0),
|
||
1,
|
||
'Offerte geaccepteerd',
|
||
DECODE (COALESCE (nta.aantal, 0),
|
||
0, 'Niet opgelost',
|
||
'Offerte acceptatie'))
|
||
offerte_status,
|
||
(CASE
|
||
WHEN mo.mld_opdr_flag>0 THEN Lcl.L('lcl_opdr_flag' || mo.mld_opdr_flag)
|
||
ELSE ''
|
||
END) vlag,
|
||
(SELECT ok.waarde_n
|
||
FROM mld_v_udr_opdrachtkenmerk_cnd ok
|
||
WHERE ok.opdracht_key = u.opdracht_key AND ok.kenmerk = 'Offerte bedrag'
|
||
) Offertebedrag,-- Op naam 'Offerte bedrag' ipv Key ivm gebruik afwijkende keys in de diverse HeyDayomgevingen
|
||
(SELECT fac.safe_to_number(kw.mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding kw, mld_kenmerk km, mld_srtkenmerk sk
|
||
WHERE kw.mld_melding_key = m.melding_key AND kw.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_upper = 'PROJECT LEIDER'
|
||
AND sk.mld_srtkenmerk_kenmerktype = 'S') projectleider_key,
|
||
(SELECT p.prs_perslid_naam
|
||
FROM mld_kenmerkmelding kw, mld_kenmerk km, mld_srtkenmerk sk, prs_perslid p
|
||
WHERE kw.mld_melding_key = m.melding_key AND kw.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_upper = 'PROJECT LEIDER'
|
||
AND sk.mld_srtkenmerk_kenmerktype = 'S'
|
||
AND fac.safe_to_number (kw.mld_kenmerkmelding_waarde) = p.prs_perslid_key) projectleider
|
||
FROM mld_v_udr_opdracht u,
|
||
mld_opdr mo,
|
||
alg_gebouw g,
|
||
mld_v_udr_melding m,
|
||
ins_tab_discipline d,
|
||
( SELECT o.mld_melding_key, COUNT (o.mld_statusopdr_key) aantal
|
||
FROM mld_opdr o
|
||
WHERE o.mld_statusopdr_key = 6
|
||
AND o.mld_opdr_key >
|
||
COALESCE (
|
||
(SELECT MAX (o1.mld_opdr_key)
|
||
FROM mld_opdr o1, mld_typeopdr mo1
|
||
WHERE o1.mld_typeopdr_key =
|
||
mo1.mld_typeopdr_key
|
||
AND mo1.mld_typeopdr_isofferte = 0
|
||
AND o1.mld_melding_key = o.mld_melding_key),
|
||
0)
|
||
GROUP BY o.mld_melding_key) nta,
|
||
( SELECT o.mld_melding_key, COUNT (o.mld_statusopdr_key) aantal
|
||
FROM mld_opdr o
|
||
WHERE o.mld_statusopdr_key = 9
|
||
AND o.mld_opdr_key >
|
||
COALESCE (
|
||
(SELECT MAX (o1.mld_opdr_key)
|
||
FROM mld_opdr o1, mld_typeopdr mo1
|
||
WHERE o1.mld_typeopdr_key =
|
||
mo1.mld_typeopdr_key
|
||
AND mo1.mld_typeopdr_isofferte = 0
|
||
AND o1.mld_melding_key = o.mld_melding_key),
|
||
0)
|
||
GROUP BY o.mld_melding_key) na
|
||
WHERE u.opdracht_gebouwcode = g.alg_gebouw_code
|
||
AND u.melding_key = m.melding_key
|
||
AND u.opdracht_key = mo.mld_opdr_key
|
||
AND m.fclt_3d_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_verwijder IS NULL
|
||
AND u.melding_key = na.mld_melding_key(+)
|
||
AND u.melding_key = nta.mld_melding_key(+)
|
||
AND (u.opdracht_type = 'RFQ' OR u.opdracht_type = 'Project RFQ') ;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_trace_uitvoerder
|
||
(
|
||
fclt_x_fm,
|
||
fclt_x_tfm,
|
||
html_opdracht,
|
||
fclt_f_district,
|
||
fclt_f_locatie,
|
||
fclt_f_gebouw,
|
||
fclt_f_bedrijf,
|
||
opdracht_omschrijving,
|
||
einddatum,
|
||
t,
|
||
m,
|
||
e,
|
||
notitie_datum,
|
||
notitie_omschrijving
|
||
)
|
||
AS
|
||
SELECT COALESCE (p.prs_perslid_naam_full, 'Onbekend') fmer, -- verantwoordelijke FMer
|
||
COALESCE (
|
||
(SELECT fac.getdomeinwaarde (fac_kenmerkdomein_key,
|
||
alg_onrgoedkenmerk_waarde)
|
||
FROM alg_kenmerk k, alg_onrgoedkenmerk ogk
|
||
WHERE k.alg_kenmerk_key = ogk.alg_kenmerk_key
|
||
AND ogk.alg_onrgoed_key = g.alg_gebouw_key
|
||
AND k.alg_kenmerk_key =
|
||
DECODE (aaxx_get_user,
|
||
'SABIC', 1180,
|
||
-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,
|
||
mld_stdmelding std,
|
||
prs_bedrijf b,
|
||
alg_v_onroerendgoed alg,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
prs_v_perslid_fullnames_all p,
|
||
(SELECT n.mld_opdr_key,
|
||
mld_opdr_note_aanmaak,
|
||
mld_opdr_note_omschrijving
|
||
FROM mld_opdr_note n
|
||
WHERE ( UPPER (n.mld_opdr_note_omschrijving) LIKE '%#T%'
|
||
OR UPPER (n.mld_opdr_note_omschrijving) LIKE '%#M%'
|
||
OR UPPER (n.mld_opdr_note_omschrijving) LIKE '%#E%')
|
||
AND NOT EXISTS
|
||
(SELECT mld_opdr_note_key
|
||
FROM mld_opdr_note n2
|
||
WHERE n2.mld_opdr_note_aanmaak >
|
||
n.mld_opdr_note_aanmaak
|
||
AND n2.mld_opdr_key = n.mld_opdr_key))
|
||
note,
|
||
(SELECT n.mld_opdr_key,
|
||
mld_opdr_note_aanmaak,
|
||
mld_opdr_note_omschrijving
|
||
FROM mld_opdr_note n
|
||
WHERE NOT EXISTS
|
||
(SELECT mld_opdr_note_key
|
||
FROM mld_opdr_note n2
|
||
WHERE n2.mld_opdr_note_aanmaak >
|
||
n.mld_opdr_note_aanmaak
|
||
AND n2.mld_opdr_key = n.mld_opdr_key))
|
||
lastnote
|
||
WHERE o.mld_opdr_einddatum < SYSDATE
|
||
AND o.mld_opdr_key = note.mld_opdr_key(+)
|
||
AND o.fac_activiteit_key IS NULL
|
||
AND o.mld_opdr_key = lastnote.mld_opdr_key(+)
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_stdmelding_slabewaken = 1
|
||
AND o.mld_statusopdr_key IN (5, 8) -- Toegekend + Geaccepteerd
|
||
AND b.prs_bedrijf_key = o.mld_uitvoerende_keys
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND g.prs_perslid_key_verantw = p.prs_perslid_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys = alg.alg_onroerendgoed_keys
|
||
AND alg.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND (note.mld_opdr_note_aanmaak IS NULL
|
||
OR note.mld_opdr_note_aanmaak < SYSDATE - 7);
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_trace_uitv_z_tfm
|
||
(
|
||
fclt_x_fm,
|
||
html_opdracht,
|
||
fclt_f_district,
|
||
fclt_f_locatie,
|
||
fclt_f_gebouw,
|
||
fclt_f_bedrijf,
|
||
opdracht_omschrijving,
|
||
einddatum,
|
||
t,
|
||
m,
|
||
e,
|
||
notitie_datum,
|
||
notitie_omschrijving
|
||
)
|
||
AS
|
||
SELECT fclt_x_fm,
|
||
html_opdracht,
|
||
fclt_f_district,
|
||
fclt_f_locatie,
|
||
fclt_f_gebouw,
|
||
fclt_f_bedrijf,
|
||
opdracht_omschrijving,
|
||
einddatum,
|
||
t,
|
||
m,
|
||
e,
|
||
notitie_datum,
|
||
notitie_omschrijving
|
||
FROM aaxx_v_rap_trace_uitvoerder;
|
||
|
||
|
||
/* Formatted on 19-7-2016 18:06:24 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_catering_export
|
||
(
|
||
reservering,
|
||
fclt_f_afdelingscode,
|
||
afdelings_omschrijving,
|
||
boekingsdatum,
|
||
afmelddatum,
|
||
fclt_f_periode,
|
||
aanvrager,
|
||
gebouw,
|
||
aantal,
|
||
artikel,
|
||
btw,
|
||
totaal
|
||
)
|
||
AS
|
||
SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
||
reservering,
|
||
k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving,
|
||
rra.res_rsv_artikel_levering,
|
||
rra.res_rsv_artikel_afgemeld,
|
||
TO_CHAR (ADD_MONTHS (rra.res_rsv_artikel_verwerkt, -1), 'yyyy-mm')
|
||
periode,
|
||
pf.prs_perslid_naam_full,
|
||
g.alg_gebouw_code,
|
||
rra.res_rsv_artikel_aantal,
|
||
ra.res_artikel_omschrijving,
|
||
ra.res_artikel_btw,
|
||
rra.res_rsv_artikel_prijs
|
||
FROM res_rsv_artikel rra,
|
||
res_rsv_ruimte rrr,
|
||
prs_kostenplaats k,
|
||
prs_perslid p,
|
||
alg_gebouw g,
|
||
prs_afdeling a,
|
||
prs_v_perslid_fullnames_all pf,
|
||
res_artikel ra,
|
||
( SELECT res_rsv_ruimte_key, MAX (alg_gebouw_key) alg_gebouw_key
|
||
FROM (SELECT rrr.res_rsv_ruimte_key,
|
||
(SELECT alg_gebouw_key
|
||
FROM alg_verdieping v, alg_ruimte r
|
||
WHERE v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = COALESCE (r2ar.alg_ruimte_key, rrr.alg_ruimte_key))
|
||
alg_gebouw_key
|
||
FROM res_v_rsv_ruimte_2_alg_ruimte r2ar,
|
||
res_v_aanwezigrsv_ruimte rrr
|
||
WHERE rrr.res_rsv_ruimte_key = r2ar.res_rsv_ruimte_key(+))
|
||
GROUP BY res_rsv_ruimte_key) rg
|
||
WHERE rra.res_status_bo_key = 6
|
||
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND rrr.res_rsv_ruimte_key = rg.res_rsv_ruimte_key
|
||
AND rg.alg_gebouw_key = g.alg_gebouw_key(+);
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_login_user (hide_f_datum, fclt_d_datum, aantal)
|
||
AS
|
||
SELECT trunc(sysdate)-trunc(pl.login_datum),
|
||
TO_CHAR (pl.login_datum, 'dd-mm-yyyy'),
|
||
COUNT (prs_perslid_key)
|
||
FROM aaxx_perslid_login pl
|
||
GROUP BY trunc(sysdate)-trunc(pl.login_datum),
|
||
TO_CHAR (pl.login_datum, 'dd-mm-yyyy');
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_errorlog
|
||
(
|
||
HIDE_F_IMP_LOG_DATUM,
|
||
FCLT_F_APPLICATIE,
|
||
FCLT_F_DATUM,
|
||
TIJDSTIP,
|
||
FCLT_F_NIVEAU,
|
||
FCLT_F_OMSCHRIJVING
|
||
)
|
||
AS
|
||
SELECT imp_log_datum hide_f_imp_log_datum,
|
||
imp_log_applicatie,
|
||
TO_CHAR (imp_log_datum, 'YYYYMMDD') fclt_f_datum,
|
||
TO_CHAR (imp_log_datum, 'HH24:MI:SS') tijdstip,
|
||
DECODE (imp_log_status,
|
||
'F', 'Fataal',
|
||
'E', 'Error',
|
||
'W', 'Waarschuwing',
|
||
'I', 'Informatief',
|
||
'-')
|
||
fclt_f_niveau,
|
||
imp_log_omschrijving fclt_f_omschrijving
|
||
FROM imp_log;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_lang_stdmelding_oms
|
||
(
|
||
key,
|
||
vakgroeptype,
|
||
vakgroep,
|
||
melding_omschrijving,
|
||
en,
|
||
de
|
||
)
|
||
AS
|
||
SELECT mld_stdmelding_key,
|
||
ins_srtdiscipline_prefix,
|
||
ins_discipline_omschrijving,
|
||
mld_stdmelding_omschrijving,
|
||
(SELECT fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_OMSCHRIJVING'
|
||
AND fac_locale_lang = 'EN'
|
||
AND fac_locale_kolomkeyval = std.mld_stdmelding_key)
|
||
EN,
|
||
(SELECT fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'MLD_STDMELDING_OMSCHRIJVING'
|
||
AND fac_locale_lang = 'DE'
|
||
AND fac_locale_kolomkeyval = std.mld_stdmelding_key)
|
||
DE
|
||
FROM ins_tab_discipline d, mld_stdmelding std, ins_srtdiscipline sd
|
||
WHERE d.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
|
||
AND ins_discipline_verwijder IS NULL
|
||
AND mld_stdmelding_verwijder IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_lang_discipline_oms
|
||
(
|
||
key,
|
||
fclt_f_module,
|
||
vakgroeptype,
|
||
vakgroep,
|
||
en,
|
||
de
|
||
)
|
||
AS
|
||
SELECT ins_discipline_key,
|
||
ins_discipline_module,
|
||
ins_srtdiscipline_prefix,
|
||
ins_discipline_omschrijving,
|
||
(SELECT fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'INS_DISCIPLINE_OMSCHRIJVING'
|
||
AND fac_locale_lang = 'EN'
|
||
AND fac_locale_kolomkeyval = d.ins_discipline_key)
|
||
EN,
|
||
(SELECT fac_locale_tekst
|
||
FROM fac_locale
|
||
WHERE fac_locale_kolomnaam = 'INS_DISCIPLINE_OMSCHRIJVING'
|
||
AND fac_locale_lang = 'DE'
|
||
AND fac_locale_kolomkeyval = d.ins_discipline_key)
|
||
DE
|
||
FROM ins_tab_discipline d, ins_srtdiscipline sd
|
||
WHERE d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
|
||
AND ins_discipline_verwijder IS NULL;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- IMPORTFUNCTIE - MLD_LANG
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_mld_lang (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c_cursor
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
v_newline VARCHAR2 (1000); -- Import line
|
||
v_field VARCHAR2 (100); -- Import field
|
||
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_skipfield VARCHAR2 (100);
|
||
v_dummy VARCHAR2 (1000);
|
||
-- De importvelden
|
||
v_vakgroeptype_nl VARCHAR2 (200);
|
||
v_vakgroeptype_prefix VARCHAR2 (200);
|
||
v_vakgroep_nl VARCHAR2 (200);
|
||
v_stdmelding_nl VARCHAR2 (200);
|
||
v_stdmelding_hint_nl VARCHAR2 (4000);
|
||
v_vakgroeptype_en VARCHAR2 (200);
|
||
v_vakgroep_en VARCHAR2 (200);
|
||
v_stdmelding_en VARCHAR2 (200);
|
||
v_stdmelding_hint_en VARCHAR2 (4000);
|
||
header_found BOOLEAN;
|
||
BEGIN
|
||
-- Init
|
||
header_found := FALSE;
|
||
v_fielddelimitor := ';';
|
||
|
||
-- Clear my previous imported rows
|
||
DELETE FROM aaxx_imp_mld_lang;
|
||
|
||
FOR rec1 IN c_cursor
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
|
||
IF SUBSTR (v_newline, 1, 3) = '?'
|
||
THEN
|
||
-- EF BB BF aangetroffen
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Byte Order Mark aangetroffen',
|
||
'Bestand heeft onbehandeld UTF-8 formaat.');
|
||
v_newline := SUBSTR (v_newline, 4);
|
||
END IF;
|
||
--vakgroeptype NL;prefix;plaatsgegevens;objectgegevens;bestelgegevens;vakgroep NL;melding NL;aanwijzingen (NL)
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroeptype_nl);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroeptype_prefix);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroep_nl);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_stdmelding_nl);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_stdmelding_hint_nl);
|
||
-- ;groep;kostensoort;acceptatietijd;uitvoertijd;uitvoertijd kritiek;uitvoertijd hoog;uitvoertijd laag;streeftijd;directklaar;dienst;Vakgroeptype EN;vakgroep EN;melding EN;aanwijzingen EN;
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroeptype_en);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_vakgroep_en);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_stdmelding_en);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_stdmelding_hint_en);
|
||
|
||
-- Skip until a valid header is found
|
||
IF UPPER (v_vakgroeptype_nl) = 'VAKGROEPTYPE NL'
|
||
AND UPPER (v_vakgroeptype_prefix) = 'PREFIX'
|
||
AND UPPER (v_vakgroep_nl) = 'VAKGROEP NL'
|
||
AND UPPER (v_stdmelding_nl) = 'MELDING NL'
|
||
AND UPPER (v_stdmelding_hint_nl) = 'AANWIJZINGEN (NL)'
|
||
AND UPPER (v_vakgroeptype_en) = 'VAKGROEPTYPE EN'
|
||
AND UPPER (v_vakgroep_en) = 'VAKGROEP EN'
|
||
AND UPPER (v_stdmelding_en) = 'MELDING EN'
|
||
AND UPPER (v_stdmelding_hint_en) = 'AANWIJZINGEN EN'
|
||
THEN
|
||
-- Sla de kopregel over.
|
||
header_found := TRUE;
|
||
ELSIF (header_found)
|
||
THEN
|
||
INSERT INTO aaxx_imp_mld_lang ( ins_srtdiscipline_omschrijving,
|
||
ins_srtdiscipline_prefix,
|
||
ins_discipline_omschrijving,
|
||
mld_stdmelding_omschrijving,
|
||
mld_stdmelding_hint,
|
||
ins_srtdiscipline_omschr_en,
|
||
ins_discipline_omschrijving_en,
|
||
mld_stdmelding_omschrijving_en,
|
||
mld_stdmelding_hint_en)
|
||
VALUES (SUBSTR (v_vakgroeptype_nl, 1, 30),
|
||
SUBSTR (v_vakgroeptype_prefix, 1, 3),
|
||
SUBSTR (v_vakgroep_nl, 1, 30),
|
||
SUBSTR (v_stdmelding_nl, 1, 60),
|
||
SUBSTR (v_stdmelding_hint_nl, 1, 1000),
|
||
SUBSTR (v_vakgroeptype_en, 1, 30),
|
||
SUBSTR (v_vakgroep_en, 1, 30),
|
||
SUBSTR (v_stdmelding_en, 1, 60),
|
||
SUBSTR (v_stdmelding_hint_en, 1, 1000));
|
||
ELSE -- geen geldige header aangetroffen
|
||
IF rec1.fac_imp_file_index = 1
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Aangetroffen header',
|
||
SUBSTR( v_vakgroeptype_nl || '-1-' ||
|
||
v_vakgroeptype_prefix || '-2-' ||
|
||
v_vakgroep_nl || '-3-' ||
|
||
v_stdmelding_nl || '-4-' ||
|
||
v_stdmelding_hint_nl || '-5-' ||
|
||
v_vakgroeptype_en || '-6-' ||
|
||
v_vakgroep_en || '-7-' ||
|
||
v_stdmelding_en || '-8-' ||
|
||
v_stdmelding_hint_en,1,1000));
|
||
END IF;
|
||
END IF;
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF NOT header_found
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Geen geldige header aangetroffen',
|
||
'Bestand is geen geldig MLD vertaling importbestand.');
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
'');
|
||
|
||
-- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden.
|
||
DELETE FROM aaxx_imp_mld_lang;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_mld_lang (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM aaxx_imp_mld_lang
|
||
WHERE ins_srtdiscipline_omschrijving IS NOT NULL;
|
||
|
||
v_srtdiscipline_key NUMBER;
|
||
v_discipline_key NUMBER;
|
||
v_stdmelding_key NUMBER;
|
||
v_errormsg VARCHAR (1000);
|
||
v_error_hint VARCHAR (1000);
|
||
v_tekst VARCHAR (300);
|
||
oracle_err_mes VARCHAR2 (150);
|
||
oracle_err_num VARCHAR2 (150);
|
||
currentversion fac_module.fac_module_version%TYPE;
|
||
|
||
PROCEDURE update_locale(p_kolom IN VARCHAR2, p_key IN NUMBER, p_lang IN VARCHAR, p_value IN VARCHAR)
|
||
AS
|
||
BEGIN
|
||
BEGIN
|
||
SELECT fac_locale_tekst
|
||
INTO v_tekst
|
||
FROM fac_locale
|
||
WHERE UPPER(fac_locale_kolomnaam) = UPPER(p_kolom)
|
||
AND fac_locale_kolomkeyval = p_key
|
||
AND UPPER(fac_locale_lang) = UPPER(p_lang);
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO fac_locale (fac_locale_kolomkeyval, fac_locale_kolomnaam, fac_locale_lang, fac_locale_tekst)
|
||
VALUES (p_key, UPPER(p_kolom), UPPER(p_lang), SUBSTR(p_value,1,300));
|
||
RETURN;
|
||
END;
|
||
|
||
UPDATE fac_locale SET fac_locale_tekst = SUBSTR(p_value,1,300)
|
||
WHERE UPPER(fac_locale_kolomnaam) = UPPER(p_kolom)
|
||
AND fac_locale_kolomkeyval = p_key
|
||
AND UPPER(fac_locale_lang) = UPPER(p_lang);
|
||
RETURN;
|
||
END;
|
||
|
||
BEGIN
|
||
|
||
SELECT MAX (fac_module_version) INTO currentversion FROM fac_module;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'AA-FM Melding vertaling import version '
|
||
|| currentversion,
|
||
'$Revision$');
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Kan srtdiscipline [' || rec.ins_srtdiscipline_omschrijving || '] niet vinden.';
|
||
|
||
SELECT ins_srtdiscipline_key
|
||
INTO v_srtdiscipline_key
|
||
FROM ins_srtdiscipline
|
||
WHERE ins_srtdiscipline_verwijder IS NULL
|
||
AND TRIM(UPPER (ins_srtdiscipline_omschrijving)) =
|
||
TRIM(UPPER (rec.ins_srtdiscipline_omschrijving));
|
||
|
||
v_errormsg := 'Kan discipline [' || rec.ins_srtdiscipline_omschrijving || '-' || rec.ins_discipline_omschrijving || '] niet vinden.';
|
||
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM ins_tab_discipline
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND ins_srtdiscipline_key = v_srtdiscipline_key
|
||
AND TRIM(UPPER (ins_discipline_omschrijving)) = TRIM(UPPER (rec.ins_discipline_omschrijving));
|
||
|
||
v_errormsg := 'Kan stdmelding [' || rec.ins_srtdiscipline_omschrijving || '-' || rec.ins_discipline_omschrijving || '-' || rec.mld_stdmelding_omschrijving || '] niet vinden.';
|
||
|
||
SELECT mld_stdmelding_key
|
||
INTO v_stdmelding_key
|
||
FROM mld_stdmelding
|
||
WHERE mld_stdmelding_verwijder IS NULL
|
||
AND mld_ins_discipline_key = v_discipline_key
|
||
AND TRIM(UPPER (mld_stdmelding_omschrijving)) = TRIM(UPPER (rec.mld_stdmelding_omschrijving));
|
||
|
||
UPDATE mld_stdmelding SET mld_stdmelding_hint = rec.mld_stdmelding_hint WHERE mld_stdmelding_key = v_stdmelding_key;
|
||
update_locale('INS_SRTDISCIPLINE_OMSCHRIJVING', v_srtdiscipline_key, 'EN', rec.ins_srtdiscipline_omschr_en);
|
||
update_locale('INS_DISCIPLINE_OMSCHRIJVING', v_discipline_key, 'EN', rec.ins_discipline_omschrijving_en);
|
||
update_locale('MLD_STDMELDING_OMSCHRIJVING', v_stdmelding_key, 'EN', rec.mld_stdmelding_omschrijving_en);
|
||
update_locale('MLD_STDMELDING_HINT', v_stdmelding_key, 'EN', rec.mld_stdmelding_hint_en);
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_hint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- RAPPORTAGES Projecturen
|
||
-- AAIT#22843 en AADS#22701
|
||
-------------------------------------------------------------------------------
|
||
-- Alle project-meldingen (srtdisc_key = 1)
|
||
CREATE OR REPLACE VIEW aaxx_v_project_boom_nodes
|
||
AS
|
||
SELECT vt.ins_srtdiscipline_prefix,
|
||
m.mld_melding_key,
|
||
m.mld_melding_start_key,
|
||
vg.ins_discipline_omschrijving,
|
||
sm.mld_stdmelding_omschrijving,
|
||
m.mld_melding_status
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline vg,
|
||
ins_srtdiscipline vt
|
||
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND vt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
|
||
AND vt.ins_srtdiscipline_omschrijving = 'Project';
|
||
|
||
-- Boomstructuur van projectmeldingen (vgl prs_v_afdelingsboom)
|
||
CREATE OR REPLACE VIEW aaxx_v_project_boom
|
||
(
|
||
niveau,
|
||
mld_melding_key,
|
||
mld_melding_key1,
|
||
mld_melding_key2,
|
||
mld_melding_key3,
|
||
mld_melding_key4
|
||
)
|
||
AS
|
||
SELECT '1' Niveau,
|
||
m1.mld_melding_key,
|
||
m1.mld_melding_key,
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL)
|
||
FROM aaxx_v_project_boom_nodes m1
|
||
WHERE m1.mld_melding_start_key IS NULL
|
||
AND m1.mld_melding_status IN (2, 3, 4, 7)
|
||
UNION
|
||
SELECT '2' Niveau,
|
||
m2.mld_melding_key,
|
||
m1.mld_melding_key,
|
||
m2.mld_melding_key,
|
||
TO_NUMBER (NULL),
|
||
TO_NUMBER (NULL)
|
||
FROM aaxx_v_project_boom_nodes m1,
|
||
aaxx_v_project_boom_nodes m2
|
||
WHERE m2.mld_melding_start_key = m1.mld_melding_key
|
||
AND m1.mld_melding_start_key IS NULL
|
||
AND m2.mld_melding_status IN (2, 3, 4, 7)
|
||
UNION
|
||
SELECT '3' Niveau,
|
||
m3.mld_melding_key,
|
||
m1.mld_melding_key,
|
||
m2.mld_melding_key,
|
||
m3.mld_melding_key,
|
||
TO_NUMBER (NULL)
|
||
FROM aaxx_v_project_boom_nodes m1,
|
||
aaxx_v_project_boom_nodes m2,
|
||
aaxx_v_project_boom_nodes m3
|
||
WHERE m3.mld_melding_start_key = m2.mld_melding_key
|
||
AND m2.mld_melding_start_key = m1.mld_melding_key
|
||
AND m1.mld_melding_start_key IS NULL
|
||
AND m3.mld_melding_status IN (2, 3, 4, 7)
|
||
UNION
|
||
SELECT '4' Niveau,
|
||
m4.mld_melding_key,
|
||
m1.mld_melding_key,
|
||
m2.mld_melding_key,
|
||
m3.mld_melding_key,
|
||
m4.mld_melding_key
|
||
FROM aaxx_v_project_boom_nodes m1,
|
||
aaxx_v_project_boom_nodes m2,
|
||
aaxx_v_project_boom_nodes m3,
|
||
aaxx_v_project_boom_nodes m4
|
||
WHERE m4.mld_melding_start_key = m3.mld_melding_key
|
||
AND m3.mld_melding_start_key = m2.mld_melding_key
|
||
AND m2.mld_melding_start_key = m1.mld_melding_key
|
||
AND m1.mld_melding_start_key IS NULL
|
||
AND m4.mld_melding_status IN (2, 3, 4, 7);
|
||
|
||
-- Rapportageview
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_projectboom
|
||
AS
|
||
SELECT pb.mld_melding_key1||pb.mld_melding_key2||pb.mld_melding_key3||pb.mld_melding_key4||'/'||o.mld_opdr_bedrijfopdr_volgnr hide_f_srt,
|
||
pbn.ins_srtdiscipline_prefix || pb.mld_melding_key1
|
||
fclt_f_hoofdproject,
|
||
CASE
|
||
WHEN pb.mld_melding_key2 IS NULL THEN NULL
|
||
ELSE pbn.ins_srtdiscipline_prefix || pb.mld_melding_key2
|
||
END
|
||
deelproject1,
|
||
CASE
|
||
WHEN pb.mld_melding_key3 IS NULL THEN NULL
|
||
ELSE pbn.ins_srtdiscipline_prefix || pb.mld_melding_key3
|
||
END
|
||
deelproject2,
|
||
CASE
|
||
WHEN pb.mld_melding_key4 IS NULL THEN NULL
|
||
ELSE pbn.ins_srtdiscipline_prefix || pb.mld_melding_key4
|
||
END
|
||
deelproject3,
|
||
m.mld_melding_key hide_f_melding_key,
|
||
km.mld_kenmerkmelding_waarde fclt_f_projectnaam,
|
||
'<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
|
||
|| '")''>'
|
||
|| htf.escape_sc(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_all pf
|
||
WHERE m.mld_melding_key = pb.mld_melding_key
|
||
AND pbn.mld_melding_key = pb.mld_melding_key
|
||
AND km.mld_melding_key(+) = m.mld_melding_key
|
||
AND o.mld_melding_key(+) = m.mld_melding_key
|
||
AND pf.prs_perslid_key(+) = o.mld_uitvoerende_keys
|
||
AND so.mld_statusopdr_key(+) = o.mld_statusopdr_key
|
||
AND o.mld_statusopdr_key(+) != 1;
|
||
|
||
|
||
-- rapportage tbv SAS70. Verificatie van kosten in FACILITOR tov de BudgetTracker.
|
||
CREATE OR REPLACE PACKAGE AAXX_RAP
|
||
AS
|
||
TYPE t_cursor IS REF CURSOR;
|
||
|
||
PROCEDURE kostenoverzicht (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2,
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY AAXX_RAP
|
||
AS
|
||
--
|
||
--Rapportages
|
||
--
|
||
PROCEDURE kostenoverzicht (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor)
|
||
AS
|
||
v_datum_van DATE;
|
||
v_datum_tot DATE;
|
||
v_alg_level_read NUMBER;
|
||
BEGIN
|
||
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
|
||
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy');
|
||
|
||
OPEN p_cursor FOR
|
||
SELECT soort,
|
||
(SELECT prs_kostensoort_oms
|
||
FROM prs_kostensoort ks
|
||
WHERE v.prs_kostensoort_key = ks.prs_kostensoort_key)
|
||
kostensoort,
|
||
(SELECT prs_kostenplaats_omschrijving
|
||
FROM prs_kostenplaats kp
|
||
WHERE v.prs_kostenplaats_key = kp.prs_kostenplaats_key)
|
||
kostenplaats,
|
||
(SELECT alg_gebouw_omschrijving
|
||
FROM alg_gebouw g
|
||
WHERE v.alg_gebouw_key = g.alg_gebouw_key)
|
||
gebouw,
|
||
SUM (opdr_kosten) opdr_kosten,
|
||
SUM (fin_factuur_totaal) fin_kosten
|
||
FROM (SELECT 'Opdracht' soort,
|
||
prs_kostensoort_key,
|
||
prs_kostenplaats_key,
|
||
alg_gebouw_key,
|
||
opdr_kosten,
|
||
fin_factuur_totaal
|
||
FROM ( SELECT COALESCE (
|
||
f.prs_kostensoort_key,
|
||
COALESCE (std.prs_kostensoort_key,
|
||
d.prs_kostensoort_key))
|
||
prs_kostensoort_key,
|
||
o.prs_kostenplaats_key,
|
||
alg_gebouw_key,
|
||
o.mld_opdr_kosten opdr_kosten,
|
||
SUM (f.fin_factuur_totaal) fin_factuur_totaal
|
||
FROM mld_opdr o,
|
||
mld_typeopdr t,
|
||
mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
aaxx_v_aanwezigfactuur f,
|
||
alg_v_onroerendgoed_gegevens og
|
||
WHERE o.mld_typeopdr_key = t.mld_typeopdr_key
|
||
AND t.mld_typeopdr_omschrijving = 'Workorder'
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND o.mld_opdr_key = f.mld_opdr_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys =
|
||
og.alg_onroerendgoed_keys(+)
|
||
AND o.mld_opdr_datumbegin BETWEEN v_datum_van
|
||
AND v_datum_tot
|
||
GROUP BY f.prs_kostensoort_key,
|
||
std.prs_kostensoort_key,
|
||
d.prs_kostensoort_key,
|
||
o.prs_kostenplaats_key,
|
||
alg_gebouw_key,
|
||
o.mld_opdr_kosten
|
||
UNION ALL
|
||
SELECT COALESCE (f.prs_kostensoort_key,
|
||
d.prs_kostensoort_key)
|
||
prs_kostensoort_key,
|
||
k.prs_kostenplaats_key,
|
||
g.alg_gebouw_key,
|
||
(SELECT SUM(bes_bestelopdr_item_aantal
|
||
* bes_bestelopdr_item_prijs)
|
||
FROM bes_bestelopdr_item boi
|
||
WHERE boi.bes_bestelopdr_key = bo.bes_bestelopdr_key)
|
||
opdr_prijs,
|
||
SUM (f.fin_factuur_totaal)
|
||
FROM bes_bestelling b,
|
||
prs_kostenplaats k,
|
||
aaxx_v_aanwezigfactuur f,
|
||
mld_adres ma,
|
||
bes_bestelopdr bo,
|
||
ins_tab_discipline d,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
(SELECT DISTINCT
|
||
bes_bestelling_key, bes_bestelopdr_key
|
||
FROM bes_bestelling_item bi,
|
||
bes_bestelopdr_item boi
|
||
WHERE bi.bes_bestelopdr_item_key =
|
||
boi.bes_bestelopdr_item_key) bes_opdr,
|
||
(SELECT DISTINCT
|
||
bes_bestelling_key, ins_discipline_key
|
||
FROM bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg
|
||
WHERE bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key)
|
||
cat,
|
||
( SELECT mld_adres_key, MAX (alg_gebouw_key) alg_gebouw_key
|
||
FROM (SELECT ma.mld_adres_key,
|
||
DECODE (
|
||
aaxx_get_user,
|
||
'AH',
|
||
DECODE (ma.mld_adres_key,
|
||
101, 280,
|
||
alg_gebouw_key),
|
||
alg_gebouw_key)
|
||
alg_gebouw_key
|
||
FROM alg_gebouw g FULL OUTER JOIN mld_adres ma
|
||
ON g.mld_adres_key = ma.mld_adres_key)
|
||
WHERE alg_gebouw_key IS NOT NULL
|
||
GROUP BY mld_adres_key) adr_geb
|
||
WHERE b.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND b.mld_adres_key_lev = ma.mld_adres_key
|
||
AND b.bes_bestelling_key =
|
||
bes_opdr.bes_bestelling_key(+)
|
||
AND bes_opdr.bes_bestelopdr_key =
|
||
bo.bes_bestelopdr_key(+)
|
||
AND ma.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND b.bes_bestelling_key = cat.bes_bestelling_key
|
||
AND cat.ins_discipline_key = d.ins_discipline_key
|
||
AND ma.mld_adres_key = adr_geb.mld_adres_key(+)
|
||
AND adr_geb.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND bo.bes_bestelopdr_key = f.bes_bestelopdr_key(+)
|
||
AND bo.bes_bestelopdr_datum BETWEEN v_datum_van
|
||
AND v_datum_tot
|
||
GROUP BY f.prs_kostensoort_key,
|
||
d.prs_kostensoort_key,
|
||
k.prs_kostenplaats_key,
|
||
g.alg_gebouw_key,
|
||
bo.bes_bestelopdr_key)
|
||
UNION ALL
|
||
SELECT 'Contract',
|
||
d.prs_kostensoort_key,
|
||
c.prs_kostenplaats_key,
|
||
g.alg_gebouw_key,
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
TO_NUMBER (NULL),
|
||
COALESCE (
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht)
|
||
* c.cnt_contract_kosten,
|
||
TO_NUMBER (NULL)))
|
||
opdr_kosten,
|
||
COALESCE (
|
||
DECODE (
|
||
cnt_gew.cnt_contract_plaats_gewicht,
|
||
0,
|
||
1,
|
||
(cp.cnt_contract_plaats_gewicht
|
||
/ cnt_gew.cnt_contract_plaats_gewicht))
|
||
* fin.fin_factuur_totaal,
|
||
NULL)
|
||
fin_factuur_totaal
|
||
FROM cnt_contract c,
|
||
cnt_contract_plaats cp,
|
||
ins_tab_discipline d,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
( SELECT cnt_contract_key,
|
||
SUM (fin_factuur_totaal) fin_factuur_totaal
|
||
FROM aaxx_v_aanwezigfactuur f
|
||
WHERE f.fin_factuur_datum BETWEEN v_datum_van AND v_datum_tot
|
||
GROUP BY cnt_contract_key) fin,
|
||
( SELECT cnt_contract_key,
|
||
SUM (cnt_contract_plaats_gewicht)
|
||
cnt_contract_plaats_gewicht
|
||
FROM cnt_contract_plaats
|
||
WHERE cnt_contract_plaats_verwijder IS NULL
|
||
GROUP BY cnt_contract_key) cnt_gew,
|
||
(SELECT cp.cnt_contract_plaats_key,
|
||
alg_locatie_key,
|
||
alg_gebouw_key
|
||
FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp
|
||
WHERE aog.alg_type = cp.cnt_alg_plaats_code
|
||
AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key)
|
||
cog
|
||
WHERE c.ins_discipline_key = d.ins_discipline_key
|
||
AND c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+)
|
||
AND cp.cnt_contract_plaats_key =
|
||
cog.cnt_contract_plaats_key(+)
|
||
AND c.cnt_contract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL
|
||
AND cog.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND cog.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND c.cnt_contract_key = fin.cnt_contract_key(+)
|
||
AND (v_datum_van BETWEEN c.cnt_contract_looptijd_van
|
||
AND c.cnt_contract_looptijd_tot
|
||
OR v_datum_tot BETWEEN c.cnt_contract_looptijd_van
|
||
AND c.cnt_contract_looptijd_tot)) v
|
||
GROUP BY soort,
|
||
prs_kostensoort_key,
|
||
prs_kostenplaats_key,
|
||
alg_gebouw_key;
|
||
END;
|
||
END;
|
||
/
|
||
|
||
-- VIEWS tbv RealTimeMonitor
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_graph_meldingpm
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_,
|
||
VOLGORDE
|
||
)
|
||
AS
|
||
SELECT DECODE (SUBSTR (TO_CHAR (mld_melding_datum, 'yyyymm'), 5),
|
||
'01', 'Januari',
|
||
'02', 'Februari',
|
||
'03', 'Maart',
|
||
'04', 'April',
|
||
'05', 'Mei',
|
||
'06', 'Juni',
|
||
'07', 'Juli',
|
||
'08', 'Augustus',
|
||
'09', 'September',
|
||
'10', 'Oktober',
|
||
'11', 'November',
|
||
'December'),
|
||
COUNT (d.ins_discipline_omschrijving),
|
||
TO_CHAR (mld_melding_datum, 'yyyymm')
|
||
FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d
|
||
WHERE mld_melding_datum BETWEEN ADD_MONTHS (
|
||
TO_DATE (
|
||
TO_CHAR (SYSDATE, 'yyyymm') || '01',
|
||
'yyyymmdd'),
|
||
-11)
|
||
AND SYSDATE
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND (aaxx_get_user <> 'IT' OR d.ins_srtdiscipline_key = 22) -- IT helpdesk
|
||
GROUP BY TO_CHAR (mld_melding_datum, 'yyyymm');
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_graph_openst_behand
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_,
|
||
FCLT_YAS2_OP_TIJD
|
||
)
|
||
AS
|
||
SELECT COALESCE (behandelaar, 'Onbekend') behandelaar,
|
||
COUNT (mld_key) - SUM (uitvoeringoptijd) totaal,
|
||
SUM (uitvoeringoptijd) op_tijd
|
||
FROM (SELECT DISTINCT
|
||
m.mld_melding_key mld_key,
|
||
CASE
|
||
WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NULL
|
||
THEN
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
m.mld_melding_datum,
|
||
m.mld_melding_t_uitvoertijd.tijdsduur,
|
||
m.mld_melding_t_uitvoertijd.eenheid)
|
||
- COALESCE (
|
||
fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1
|
||
THEN
|
||
0
|
||
ELSE
|
||
1
|
||
END
|
||
ELSE
|
||
1
|
||
END
|
||
uitvoeringoptijd,
|
||
DECODE (
|
||
mld_melding_status,
|
||
7,
|
||
(SELECT MAX (prs_bedrijf_naam)
|
||
FROM mld_opdr o, prs_bedrijf b
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND O.MLD_UITVOERENDE_KEYS = b.prs_bedrijf_key
|
||
AND O.MLD_STATUSOPDR_KEY IN (3, 4, 5, 8)), -- 3- Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd
|
||
4,
|
||
COALESCE (
|
||
(SELECT MAX (prs_bedrijf_naam)
|
||
FROM mld_opdr o, prs_bedrijf b
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND O.MLD_UITVOERENDE_KEYS =
|
||
b.prs_bedrijf_key
|
||
AND O.MLD_STATUSOPDR_KEY IN (3, 4, 5, 8)), -- 3- Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames pf
|
||
WHERE pf.prs_perslid_key =
|
||
M.MLD_MELDING_BEHANDELAAR_KEY)),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames pf
|
||
WHERE pf.prs_perslid_key =
|
||
M.MLD_MELDING_BEHANDELAAR_KEY))
|
||
behandelaar
|
||
FROM mld_melding m,
|
||
mld_discipline md,
|
||
prs_perslid p,
|
||
mld_stdmelding std
|
||
WHERE m.prs_perslid_key = p.prs_perslid_key
|
||
AND md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND std.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND mld_melding_status IN (2, 3, 4, 7, 0) -- 2-ingevoerd, 3-ingezien, 4-geaccepteerd, 7-uitgegeven, 0-pending
|
||
AND (aaxx_get_user <> 'IT' OR md.ins_srtdiscipline_key = 22)) -- IT
|
||
GROUP BY behandelaar;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_graph_ppi_acc (FCLT_XAS_, FCLT_YAS_)
|
||
AS
|
||
SELECT SUM (acceptoptijd) aantal, COUNT (mld_key) totaal
|
||
FROM (SELECT DISTINCT
|
||
m.mld_melding_key mld_key,
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
fac.gettrackingdate ('MLDNEW',
|
||
m.mld_melding_key),
|
||
std.mld_stdmelding_t_accepttijd.tijdsduur,
|
||
std.mld_stdmelding_t_accepttijd.eenheid)
|
||
- COALESCE (
|
||
fac.gettrackingdate ('MLDREJ',
|
||
m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDAFM',
|
||
m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1
|
||
THEN
|
||
0
|
||
ELSE
|
||
1
|
||
END
|
||
acceptoptijd
|
||
FROM mld_melding m, mld_discipline md, mld_stdmelding std
|
||
WHERE md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND std.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND (aaxx_get_user <> 'IT' OR md.ins_srtdiscipline_key = 22) -- IT helpdesk
|
||
AND mld_melding_status IN (2, 3) -- 2-ingevoerd, 3-ingezien
|
||
);
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_graph_ppi_uitv
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_
|
||
)
|
||
AS
|
||
SELECT SUM (uitvoeringoptijd) aantal, COUNT (mld_key) totaal
|
||
FROM (SELECT DISTINCT
|
||
m.mld_melding_key mld_key,
|
||
CASE
|
||
WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NULL
|
||
THEN
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
m.mld_melding_datum,
|
||
m.mld_melding_t_uitvoertijd.tijdsduur,
|
||
m.mld_melding_t_uitvoertijd.eenheid)
|
||
- COALESCE (
|
||
fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1
|
||
THEN
|
||
0
|
||
ELSE
|
||
1
|
||
END
|
||
ELSE
|
||
1
|
||
END
|
||
uitvoeringoptijd
|
||
FROM mld_melding m, mld_discipline md, mld_stdmelding std
|
||
WHERE md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND std.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND (aaxx_get_user <> 'IT' OR md.ins_srtdiscipline_key = 22) -- IT helpdesk
|
||
AND mld_melding_status IN (2, 3, 4, 7, 0) -- 2-ingevoerd, 3-ingezien, 4-geaccepteerd, 7-uitgegeven, 0-pending
|
||
);
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_graph_vakgroep_afg
|
||
(
|
||
fclt_xas_,
|
||
fclt_yas_,
|
||
fclt_url,
|
||
fclt_3d_discipline_key
|
||
)
|
||
AS
|
||
SELECT d.ins_discipline_omschrijving,
|
||
COUNT (d.ins_discipline_omschrijving),
|
||
'appl/mld/mld_search.asp?urole=fo&autosearch=1&disc_key_str=',
|
||
d.ins_discipline_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
fac_srtnotificatie sn,
|
||
fac_tracking t
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND (aaxx_get_user <> 'IT' OR d.ins_srtdiscipline_key = 22) -- IT helpdesk
|
||
AND t.fac_tracking_refkey = mld_melding_key
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'MLDAFM'
|
||
AND t.fac_tracking_datum > SYSDATE - 30
|
||
GROUP BY d.ins_discipline_key, d.ins_discipline_omschrijving;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_graph_vakgroep_open
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_,
|
||
FCLT_URL,
|
||
FCLT_3D_DISCIPLINE_KEY
|
||
)
|
||
AS
|
||
SELECT d.ins_discipline_omschrijving,
|
||
COUNT (d.ins_discipline_omschrijving),
|
||
'appl/mld/mld_search.asp?urole=fo&autosearch=1&disc_key_str='
|
||
|| d.ins_discipline_key,
|
||
d.ins_discipline_key
|
||
FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND mld_melding_status IN (2, 3, 4, 7, 0) -- 2-ingevoerd, 3-ingezien, 4-geaccepteerd, 7-uitgegeven, 0-pending
|
||
AND (
|
||
(aaxx_get_user = 'GN' AND d.ins_srtdiscipline_key = 5) -- Storingen
|
||
OR
|
||
(aaxx_get_user = 'IT' AND d.ins_srtdiscipline_key = 22) -- IT helpdesk
|
||
OR
|
||
(aaxx_get_user <> 'GN' AND aaxx_get_user <> 'IT')
|
||
)
|
||
GROUP BY d.ins_discipline_key, d.ins_discipline_omschrijving
|
||
ORDER BY COUNT (d.ins_discipline_omschrijving) DESC;
|
||
|
||
|
||
--
|
||
-- Notificatie jobs
|
||
--
|
||
-- AAES#25128: BEZMUT-notificatie ook naar bezoeker sturen.
|
||
-- Wat te doen om dit aan te zetten:
|
||
-- Notificatiejob AAXX_V_NOTI_BEZOEKERS
|
||
-- Stylesheet aanpassen
|
||
-- Key van het kenmerk email hieronder invullen
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_bezoekers
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
fac_srtnotificatie_key,
|
||
KEY,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT NULL sender,
|
||
NULL receiver,
|
||
DECODE (aaxx_get_user, 'ESSENT', 'Essent',
|
||
'ARCADIS', 'Arcadis',
|
||
'SABIC', 'Sabic',
|
||
'VGZ', 'VGZ',
|
||
'AAFM')
|
||
|| ' bevestigingmail afspraak '
|
||
|| TO_CHAR (a.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,
|
||
COALESCE(v.email,v.email_kenmerk)
|
||
xemail,
|
||
NULL xmobile
|
||
FROM fac_tracking t,
|
||
bez_afspraak a,
|
||
bez_bezoekers b,
|
||
(SELECT b1.bez_afspraak_key,
|
||
b1.bez_bezoekers_key,
|
||
b1.bez_bezoekers_email
|
||
AS email,
|
||
(SELECT kw.bez_kenmerkwaarde_waarde
|
||
FROM bez_kenmerkwaarde kw
|
||
WHERE kw.bez_bezoekers_key = b1.bez_bezoekers_key
|
||
AND kw.bez_kenmerk_key =
|
||
DECODE (aaxx_get_user,
|
||
'ESSENT', 1001,
|
||
'IT', 1022,
|
||
'ARCADIS', 1003,
|
||
'SABIC', 1000)) -- Zie ticket 60226 - 'SABIC' kan in principe weg..
|
||
AS email_kenmerk
|
||
FROM bez_bezoekers b1, bez_afspraak a1
|
||
WHERE b1.bez_afspraak_key = a1.bez_afspraak_key
|
||
AND a1.bez_afspraak_datum > SYSDATE) v
|
||
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 = v.bez_bezoekers_key ;
|
||
|
||
|
||
-- Rapportage t.b.v. Share & Meet
|
||
-- Share and Meet reserveringen zijn te herkennen aan een host die een login heeft met de volgende struktuur _<account>_<remote_prs_perslid_key>
|
||
-- bijvoorbeeld _AANS_4533
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_share_meet_kosten
|
||
(
|
||
reservering,
|
||
afdelingscode,
|
||
fclt_f_afdelings_omschrijving,
|
||
verbruiksartikelen,
|
||
boekingsdatum,
|
||
afmelddatum,
|
||
fclt_f_periode,
|
||
aanvrager,
|
||
locatie,
|
||
gebouw,
|
||
ruimtenaam,
|
||
btw,
|
||
stuksprijs,
|
||
aantal,
|
||
totaal
|
||
)
|
||
AS
|
||
SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr resnr,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving,
|
||
rrp.omschrijving,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'dd-mm-yyyy'),
|
||
TO_CHAR (rrp.afgemeld, 'dd-mm-yyyy'),
|
||
TO_CHAR (rrp.afgemeld, 'yyyy-mm'),
|
||
pf_h.prs_perslid_naam_full pfh,
|
||
rg.alg_locatie_omschrijving,
|
||
rg.alg_gebouw_omschrijving,
|
||
rr.res_ruimte_nr,
|
||
btw,
|
||
rrp.artikel_prijs,
|
||
rrp.aantal,
|
||
rrp.prijs
|
||
FROM res_rsv_ruimte rrr,
|
||
(SELECT rrr.res_rsv_ruimte_key,
|
||
ra.res_artikel_omschrijving omschrijving,
|
||
rra.res_rsv_artikel_aantal aantal,
|
||
ROUND (
|
||
res.getartikelprijs (rra.res_rsv_artikel_key)
|
||
/ rra.res_rsv_artikel_aantal,
|
||
2)
|
||
artikel_prijs,
|
||
rra.res_rsv_artikel_prijs prijs,
|
||
rra.res_rsv_artikel_afgemeld afgemeld,
|
||
ra.res_artikel_btw btw
|
||
FROM res_rsv_ruimte rrr, res_rsv_artikel rra, res_artikel ra
|
||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND rra.res_rsv_artikel_verwijder IS NULL
|
||
UNION
|
||
SELECT fac_tracking_refkey res_rsv_ruimte_key,
|
||
'Zaalhuur',
|
||
1 aantal,
|
||
res_rsv_ruimte_prijs artikel_prijs,
|
||
res_rsv_ruimte_prijs prijs,
|
||
t.fac_tracking_datum afgemeld,
|
||
21 btw
|
||
FROM res_rsv_ruimte rrr, fac_tracking t, fac_srtnotificatie sn
|
||
WHERE res_rsv_ruimte_prijs <> 0
|
||
AND rrr.res_rsv_ruimte_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'RESAFM'
|
||
AND t.fac_tracking_oms IS NULL
|
||
AND res_rsv_ruimte_verwijder IS NULL) rrp,
|
||
prs_v_perslid_fullnames_all pf_h,
|
||
res_ruimte rr,
|
||
prs_afdeling a,
|
||
prs_perslid p,
|
||
( SELECT MAX (alg_ruimte_key) alg_ruimte_key,
|
||
res_rsv_ruimte_key,
|
||
res_ruimte_key
|
||
FROM res_v_rsv_ruimte_2_alg_ruimte
|
||
GROUP BY res_rsv_ruimte_key, res_ruimte_key) r,
|
||
alg_v_ruimte_gegevens rg
|
||
WHERE rrp.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_rsv_ruimte_host_key = pf_h.prs_perslid_key
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND r.res_ruimte_key = rr.res_ruimte_key
|
||
AND rrr.res_rsv_ruimte_key = r.res_rsv_ruimte_key
|
||
AND r.alg_ruimte_key = rg.alg_ruimte_key
|
||
AND rrp.afgemeld IS NOT NULL
|
||
AND p.prs_perslid_oslogin like '/_AA__/_%' escape '/';
|
||
|
||
-- AAAR#52939 notificatiejobs voor AAAR werken niet meer
|
||
-- MOET DEZE VIEW NIET VERWIJDERD WORDEN ??
|
||
-- AAIT#28929 notificaties t.b.v Share & Meet voor beoordeling dag later
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_sm_resafm_reminder
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY
|
||
)
|
||
AS
|
||
SELECT 'RESAFM',
|
||
NULL,
|
||
res_rsv_ruimte_contact_key,
|
||
'Herinnering beoordeling reservering: '
|
||
|| res_reservering_key
|
||
|| '/'
|
||
|| res_rsv_ruimte_volgnr,
|
||
rsv.res_reservering_key,
|
||
rsv.res_rsv_ruimte_key
|
||
FROM res_rsv_ruimte rsv,
|
||
res_activiteit ra,
|
||
res_srtactiviteit rsr,
|
||
fac_tracking tr,
|
||
fac_srtnotificatie str
|
||
WHERE res_rsv_ruimte_verwijder IS NULL
|
||
AND rsv.res_activiteit_key = ra.res_activiteit_key
|
||
AND ra.res_srtactiviteit_key = rsr.res_srtactiviteit_key
|
||
AND UPPER(rsr.res_srtactiviteit_omschrijving) = 'SHARE & MEET'
|
||
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
||
AND tr.fac_tracking_refkey = res_rsv_ruimte_key
|
||
AND str.fac_srtnotificatie_xmlnode IN
|
||
('reservering', 'xreservering')
|
||
AND fac_srtnotificatie_code = 'RESAFM'
|
||
AND fac_tracking_oms IS NULL
|
||
AND TO_DATE (fac_tracking_datum, 'DD-MM-YYYY') =
|
||
TO_DATE (SYSDATE-1, 'DD-MM-YYYY');
|
||
|
||
-- kenmerk key 1000: afspraak is prive (dus niet op infobord)
|
||
-- geld voor IT en Arcadis
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_infobord
|
||
(
|
||
item_type,
|
||
item_key,
|
||
aktief,
|
||
bezoek_status,
|
||
offset,
|
||
dag,
|
||
tijd_van,
|
||
tijd_tot,
|
||
ruimte,
|
||
catalogus,
|
||
aanvrager,
|
||
gastheer,
|
||
omschrijving,
|
||
status,
|
||
bezoeker,
|
||
bedrijf,
|
||
locatie_code,
|
||
gebouw_code,
|
||
verdieping_code,
|
||
locatie_omschrijving,
|
||
gebouw_omschrijving,
|
||
verdieping_omschrijving,
|
||
alg_locatie_key,
|
||
alg_gebouw_key,
|
||
alg_verdieping_key
|
||
)
|
||
AS
|
||
SELECT 'RES',
|
||
rrr.res_rsv_ruimte_key,
|
||
(CASE
|
||
WHEN res_rsv_ruimte_van > SYSDATE THEN 'expected'
|
||
WHEN res_rsv_ruimte_tot < SYSDATE THEN 'passed'
|
||
ELSE 'active'
|
||
END)
|
||
aktief,
|
||
(CASE
|
||
WHEN b.bez_bezoekers_out IS NOT NULL THEN 'out'
|
||
WHEN b.bez_bezoekers_done IS NOT NULL THEN 'in'
|
||
ELSE 'expected'
|
||
END)
|
||
bezoek_status,
|
||
TRUNC ( (SYSDATE - res_rsv_ruimte_van) * 24 * 60) offset,
|
||
TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy') dag,
|
||
TO_CHAR (res_rsv_ruimte_van, 'hh24:mi') tijd_van,
|
||
TO_CHAR (res_rsv_ruimte_tot, 'hh24:mi') tijd_tot,
|
||
res_ruimte_nr ruimte,
|
||
ins_discipline_omschrijving catalogus,
|
||
aanvrager.prs_perslid_naam_full aanvrager,
|
||
COALESCE (gastheer.prs_perslid_naam_full,
|
||
a.bez_afspraak_gastheer)
|
||
gastheer,
|
||
res_rsv_ruimte_omschrijving omschrijving,
|
||
sf.res_status_fo_omschrijving status,
|
||
b.bez_afspraak_naam,
|
||
b.bez_afspraak_bedrijf,
|
||
alg_locatie_code locatie_code,
|
||
alg_gebouw_code gebouw_code,
|
||
alg_verdieping_code verdieping_code,
|
||
alg_locatie_omschrijving locatie_omschrijving,
|
||
alg_gebouw_omschrijving gebouw_omschrijving,
|
||
alg_verdieping_omschrijving verdieping_omschrijving,
|
||
l.alg_locatie_key,
|
||
g.alg_gebouw_key,
|
||
v.alg_verdieping_key
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
prs_v_perslid_fullnames aanvrager,
|
||
prs_v_perslid_fullnames gastheer,
|
||
res_v_res_ruimte_gegevens rrg,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
res_status_fo sf,
|
||
res_discipline rd,
|
||
bez_afspraak a,
|
||
bez_bezoekers b,
|
||
(SELECT * FROM bez_kenmerkwaarde
|
||
WHERE bez_kenmerk_key = 1000
|
||
AND bez_kenmerkwaarde_verwijder IS NULL) prive
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rrg.res_ruimte_key
|
||
AND rrr.res_rsv_ruimte_host_key = gastheer.prs_perslid_key(+)
|
||
AND rrr.res_rsv_ruimte_contact_key = aanvrager.prs_perslid_key
|
||
AND TRUNC (res_rsv_ruimte_van) = TRUNC (SYSDATE)
|
||
AND rrg.alg_locatie_key = l.alg_locatie_key
|
||
AND rrg.alg_gebouw_key = g.alg_gebouw_key
|
||
AND rrg.alg_verdieping_key = v.alg_verdieping_key
|
||
AND rrr.res_status_fo_key = sf.res_status_fo_key
|
||
AND rrg.res_discipline_key = rd.ins_discipline_key
|
||
AND rrr.res_rsv_ruimte_key = a.res_rsv_ruimte_key(+)
|
||
AND a.bez_afspraak_key = b.bez_afspraak_key(+)
|
||
AND prive.bez_bezoekers_key(+) = b.bez_bezoekers_key
|
||
AND COALESCE(prive.bez_kenmerkwaarde_waarde, '0') = '0'
|
||
UNION ALL
|
||
SELECT 'BEZ',
|
||
b.bez_afspraak_key,
|
||
(CASE
|
||
WHEN a.bez_afspraak_datum > SYSDATE THEN 'expected'
|
||
WHEN a.bez_afspraak_eind < SYSDATE THEN 'passed'
|
||
ELSE 'active'
|
||
END)
|
||
aktief,
|
||
(CASE
|
||
WHEN b.bez_bezoekers_out IS NOT NULL THEN 'out'
|
||
WHEN b.bez_bezoekers_done IS NOT NULL THEN 'in'
|
||
ELSE 'expected'
|
||
END)
|
||
bezoek_status,
|
||
TRUNC ( (SYSDATE - bez_afspraak_datum) * 24 * 60) offset,
|
||
TO_CHAR (bez_afspraak_datum, 'dd-mm-yyyy') dag,
|
||
TO_CHAR (bez_afspraak_datum, 'hh24:mi') tijd_van,
|
||
TO_CHAR (bez_afspraak_eind, 'hh24:mi') tijd_tot,
|
||
NULL ruimte,
|
||
NULL catalogus,
|
||
aanvrager.prs_perslid_naam_full aanvrager,
|
||
COALESCE (gastheer.prs_perslid_naam_full,
|
||
a.bez_afspraak_gastheer)
|
||
gastheer,
|
||
NULL omschrijving,
|
||
NULL status,
|
||
b.bez_afspraak_naam,
|
||
b.bez_afspraak_bedrijf,
|
||
alg_locatie_code locatie_code,
|
||
alg_gebouw_code gebouw_code,
|
||
NULL verdieping_code,
|
||
alg_locatie_omschrijving locatie_omschrijving,
|
||
alg_gebouw_naam gebouw_omschrijving,
|
||
alg_verdieping_omschrijving verdieping_omschrijving,
|
||
l.alg_locatie_key,
|
||
ogg.alg_gebouw_key,
|
||
ogg.alg_verdieping_key
|
||
FROM bez_afspraak a,
|
||
bez_bezoekers b,
|
||
prs_v_perslid_fullnames aanvrager,
|
||
alg_locatie l,
|
||
alg_v_allonrgoed_gegevens ogg,
|
||
prs_v_perslid_fullnames gastheer,
|
||
(SELECT * FROM bez_kenmerkwaarde
|
||
WHERE bez_kenmerk_key = 1000
|
||
AND bez_kenmerkwaarde_verwijder IS NULL) prive
|
||
WHERE a.bez_afspraak_key = b.bez_afspraak_key
|
||
AND TRUNC(a.bez_afspraak_datum) = TRUNC(SYSDATE)
|
||
AND a.bez_afspraak_host_key = gastheer.prs_perslid_key(+)
|
||
AND a.bez_afspraak_contact_key = aanvrager.prs_perslid_key
|
||
AND a.alg_locatie_key = l.alg_locatie_key
|
||
AND a.alg_onrgoed_keys = ogg.alg_onroerendgoed_keys(+)
|
||
AND a.res_rsv_ruimte_key IS NULL
|
||
AND prive.bez_bezoekers_key(+) = b.bez_bezoekers_key
|
||
AND COALESCE(prive.bez_kenmerkwaarde_waarde, '0') = '0';
|
||
|
||
|
||
-- AAES#24665/AANS#27628: In eerste instantie vormgegeven tbv. meldingen op
|
||
-- objecten. Later uitgebreid tbv. reserveringen.
|
||
/* Formatted on 10-10-2013 14:32:24 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_mld_qrc
|
||
(
|
||
fclt_3d_locatie_key,
|
||
fclt_3d_discipline_key,
|
||
fclt_f_discipline,
|
||
fclt_f_soortmelding,
|
||
fclt_f_locatie,
|
||
fclt_f_gebouw,
|
||
fclt_f_verdieping,
|
||
plaats,
|
||
ruimte_key,
|
||
ruimtefunctie,
|
||
fclt_f_objectdiscipline,
|
||
fclt_f_objectgroep,
|
||
objectsoort_key,
|
||
fclt_f_objectsoort,
|
||
objectsoort_code,
|
||
ins_deel_key,
|
||
ins_deel_omschrijving,
|
||
ins_deel_upper,
|
||
hide_f_bookmark_id,
|
||
variabele
|
||
)
|
||
AS
|
||
SELECT l.alg_locatie_key,
|
||
disc.ins_discipline_key,
|
||
disc.ins_discipline_omschrijving,
|
||
msd.mld_stdmelding_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
o.alg_plaatsaanduiding plaats,
|
||
d.ins_alg_ruimte_key ruimte_key,
|
||
sr.alg_srtruimte_omschrijving,
|
||
disc.ins_discipline_omschrijving,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_key,
|
||
sd.ins_srtdeel_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_upper,
|
||
b.fac_bookmark_id,
|
||
'INS_KEY'
|
||
FROM (SELECT DECODE (
|
||
INSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query),
|
||
'STDM_KEY=')
|
||
),
|
||
'&'
|
||
),
|
||
0,
|
||
SUBSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query),
|
||
'STDM_KEY=')
|
||
),
|
||
10
|
||
),
|
||
SUBSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query),
|
||
'STDM_KEY=')
|
||
),
|
||
10,
|
||
INSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query),
|
||
'STDM_KEY=')
|
||
),
|
||
'&'
|
||
)
|
||
- 10
|
||
)
|
||
)
|
||
stdm_key,
|
||
fac_bookmark_id
|
||
FROM fac_bookmark
|
||
WHERE UPPER (fac_bookmark_path) = 'APPL/PDA/MELDING.ASP'
|
||
AND INSTR (UPPER (fac_bookmark_query), 'STDM_KEY') > 0)
|
||
b, -- stdm_key-bookmarks
|
||
(SELECT sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
si.ins_srtinstallatie_key ins_srtdeel_key
|
||
FROM mld_stdmelding sm,
|
||
mld_stdmelding_srtinst si
|
||
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_verwijder IS NULL
|
||
AND si.ins_srtinstallatie_niveau = 'S'
|
||
UNION ALL
|
||
SELECT sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
sd.ins_srtdeel_key
|
||
FROM mld_stdmelding sm,
|
||
mld_stdmelding_srtinst si,
|
||
ins_srtdeel sd
|
||
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_verwijder IS NULL
|
||
AND si.ins_srtinstallatie_niveau = 'G'
|
||
AND si.ins_srtinstallatie_key = sd.ins_srtgroep_key
|
||
UNION ALL
|
||
SELECT sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
sd.ins_srtdeel_key
|
||
FROM mld_stdmelding sm,
|
||
mld_stdmelding_srtinst si,
|
||
ins_srtgroep sg,
|
||
ins_srtdeel sd
|
||
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_verwijder IS NULL
|
||
AND si.ins_srtinstallatie_niveau = 'D'
|
||
AND si.ins_srtinstallatie_key = sg.ins_discipline_key
|
||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key) msd, -- object-meldingen
|
||
ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_discipline disc,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l,
|
||
alg_ruimte r,
|
||
alg_srtruimte sr
|
||
WHERE fac.safe_to_number (b.stdm_key) = msd.mld_stdmelding_key
|
||
AND msd.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND d.ins_alg_ruimte_type IN ('T', 'R', 'W')
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = disc.ins_discipline_key
|
||
AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND d.ins_alg_ruimte_type = o.alg_onroerendgoed_type
|
||
AND d.ins_alg_locatie_key = o.alg_locatie_key -- redundant?
|
||
AND o.alg_locatie_key = l.alg_locatie_key
|
||
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
UNION ALL
|
||
SELECT l.alg_locatie_key,
|
||
disc.ins_discipline_key,
|
||
disc.ins_discipline_omschrijving,
|
||
'Reserveer ruimte',
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
rr.res_ruimte_nr plaats,
|
||
rar.res_ruimte_key ruimte_key,
|
||
sr.alg_srtruimte_omschrijving,
|
||
NULL ins_discipline_omschrijving,
|
||
NULL ins_srtgroep_omschrijving,
|
||
NULL ins_srtdeel_key,
|
||
NULL ins_srtdeel_omschrijving,
|
||
NULL ins_srtdeel_code,
|
||
NULL ins_deel_key,
|
||
NULL ins_deel_omschrijving,
|
||
NULL ins_deel_upper,
|
||
b.fac_bookmark_id,
|
||
'RES_RUIMTE_KEY'
|
||
FROM fac_bookmark b,
|
||
res_ruimte rr,
|
||
res_discipline disc,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar,
|
||
alg_ruimte r,
|
||
alg_srtruimte sr,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l
|
||
WHERE TRUNC (b.fac_bookmark_aanmaak) = TO_DATE ('10102013', 'ddmmyyyy')
|
||
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/RESERVERINGEN.ASP'
|
||
AND rr.res_discipline_key = disc.ins_discipline_key
|
||
AND rr.res_ruimte_key = rar.res_ruimte_key
|
||
AND rar.alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
AND r.alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND o.alg_onroerendgoed_type = 'R'
|
||
AND o.alg_locatie_key = l.alg_locatie_key;
|
||
|
||
-- AASA#37919
|
||
-- Rapport met opdrachtgegevens van hergoedkeuringsverzoeken incl gebouwverantwoordelijke
|
||
-- Status 10 = ter goedkeuring
|
||
CREATE OR REPLACE VIEW aaxx_v_udr_hergoedkeuren
|
||
AS
|
||
SELECT mld_opdr_key,
|
||
srt.ins_srtdiscipline_prefix
|
||
|| o.mld_melding_key
|
||
|| '/'
|
||
|| mld_opdr_bedrijfopdr_volgnr
|
||
opdrachtnr,
|
||
mu.naam uitvoerende,
|
||
ot.mld_typeopdr_omschrijving opdrachttype,
|
||
mld_opdr_omschrijving omschrijving,
|
||
k.prs_kostenplaats_nr || ' ' || prs_kostenplaats_omschrijving
|
||
kostenplaats,
|
||
mld_opdr_kosten kosten,
|
||
pf1.prs_perslid_naam_full behandelaar,
|
||
mld_opdr_opmerking afhandeling,
|
||
mld_opdr_datumbegin opdrachtdatum,
|
||
mld_opdr_einddatum einddatum,
|
||
mld_opdr_plandatum plandatum,
|
||
l.alg_locatie_code || aog.alg_plaatsaanduiding plaats,
|
||
aog.alg_gebouw_key,
|
||
aog.alg_gebouw_code gebouw_code,
|
||
g.prs_perslid_key_verantw gebouw_verwantwoordelijke_key,
|
||
pf2.prs_perslid_naam_full gebouw_verwantwoordelijke,
|
||
aog.alg_verdieping_omschrijving verdieping_omschrijving,
|
||
aog.alg_verdieping_code verdieping,
|
||
aog.alg_ruimte_nr ruimte_nr,
|
||
aog.alg_ruimte_omschrijving ruimte_omschrijving,
|
||
std.mld_stdmelding_omschrijving melding,
|
||
d.ins_discipline_omschrijving vakgroep,
|
||
srt.ins_srtdiscipline_omschrijving vakgroeptype
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
alg_v_allonrgoed_gegevens aog,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
mld_stdmelding std,
|
||
mld_discipline d,
|
||
ins_srtdiscipline srt,
|
||
mld_typeopdr ot,
|
||
prs_v_perslid_fullnames_all pf1,
|
||
prs_v_perslid_fullnames_all pf2,
|
||
mld_v_uitvoerende mu,
|
||
prs_kostenplaats k
|
||
WHERE mld_statusopdr_key = 10
|
||
AND mld_opdr_approved_refiat IS NOT NULL
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND o.fac_activiteit_key IS NULL
|
||
AND aog.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
|
||
AND aog.alg_locatie_key = l.alg_locatie_key
|
||
AND g.alg_gebouw_key = aog.alg_gebouw_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND srt.ins_srtdiscipline_key = d.ins_srtdiscipline_key
|
||
AND ot.mld_typeopdr_key = o.mld_typeopdr_key
|
||
AND pf1.prs_perslid_key(+) = o.prs_perslid_key
|
||
AND pf2.prs_perslid_key(+) = g.prs_perslid_key_verantw
|
||
AND mu.mld_uitvoerende_key = o.mld_uitvoerende_keys
|
||
AND o.prs_kostenplaats_key = k.prs_kostenplaats_key(+);
|
||
|
||
-- specifieke versie van mld_v_udr_meldingopdracht vanwege performance problemen met de core versie.
|
||
CREATE OR REPLACE VIEW aaxx_v_udr_meldingopdracht
|
||
AS
|
||
SELECT m.mld_melding_key meldingnummer,
|
||
l.alg_locatie_omschrijving melding_locatie,
|
||
aog.alg_gebouw_naam melding_gebouw,
|
||
d.ins_discipline_omschrijving productgroep,
|
||
mld_statuses_omschrijving melding_status,
|
||
mld_melding_datum melding_datum,
|
||
mld_melding_einddatum melding_einddatum,
|
||
mld_melding_omschrijving vomschrijving,
|
||
mld_statusopdr_omschrijving opdracht_status,
|
||
o.mld_opdr_key opdracht_key,
|
||
d.ins_discipline_key fclt_3d_discipline_key
|
||
FROM mld_melding m,
|
||
mld_statuses ms,
|
||
mld_opdr o,
|
||
mld_statusopdr so,
|
||
alg_v_onroerendgoed_gegevens aog,
|
||
alg_locatie l,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d
|
||
WHERE m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_melding_status = ms.mld_statuses_key
|
||
AND o.mld_statusopdr_key = so.mld_statusopdr_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key;
|
||
|
||
|
||
-- AAFM#26513 Notificatie goedgekeurde offerte naar autorisatiegroep "HEYDAY 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) - 2 views voor beschikbaar. Notificatie naar Gebouwbeheerder + naar ORDOAP-rechthebbenden
|
||
-- Bestemming zijn de personen(0..n) in autorisatiegroep HEYDAY Servicedesk.
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_offerte_accepted
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT DISTINCT NULL sender,
|
||
gg.prs_perslid_key receiver,
|
||
(SELECT fac_version_cust FROM fac_version)
|
||
|| ': Offerte '
|
||
|| m.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr
|
||
|| ' is geaccepteerd' text,
|
||
'CUST04' code,
|
||
o.mld_opdr_key key,
|
||
NULL xkey
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding s,
|
||
mld_discipline d,
|
||
mld_disc_params dp,
|
||
fac_srtnotificatie sn,
|
||
fac_tracking t,
|
||
fac_groep g,
|
||
fac_gebruikersgroep gg
|
||
WHERE o.mld_statusopdr_key = 9
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND s.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND d.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND dp.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND dp.mld_disc_params_offerteauto = 0
|
||
AND sn.fac_srtnotificatie_code = 'ORDOOK'
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND t.fac_tracking_refkey = o.mld_opdr_key
|
||
AND t.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun - fac_notificatie_job_interval/24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_OFFERTE_ACCEPTED')
|
||
AND (SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_OFFERTE_ACCEPTED')
|
||
AND g.fac_groep_upper = 'HEYDAY SERVICEDESK'
|
||
AND gg.fac_groep_key = g.fac_groep_key;
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_offerte_goedkeuren
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT NULL,
|
||
gv.prs_perslid_key,
|
||
'Offerte '
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| mld_opdr_bedrijfopdr_volgnr
|
||
|| ' is afgemeld en dient beoordeeld te worden',
|
||
'ORDMAI',
|
||
o.mld_opdr_key,
|
||
NULL
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
alg_v_allonroerendgoed aor,
|
||
(SELECT alg_gebouw_key, g.prs_perslid_key_verantw prs_perslid_key
|
||
FROM alg_gebouw g
|
||
WHERE prs_perslid_key_verantw IS NOT NULL
|
||
UNION ALL
|
||
SELECT alg_gebouw_key, g.prs_perslid_key_verantw2 prs_perslid_key
|
||
FROM alg_gebouw g
|
||
WHERE g.prs_perslid_key_verantw2 IS NOT NULL) gv,
|
||
prs_perslid p,
|
||
( SELECT fac_tracking_refkey,
|
||
MAX (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking ft, fac_srtnotificatie fsn
|
||
WHERE fsn.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
|
||
AND fac_srtnotificatie_code = 'ORDAFM'
|
||
GROUP BY fac_tracking_refkey) ft
|
||
WHERE mld_statusopdr_key = 6
|
||
AND ot.mld_typeopdr_key = o.mld_typeopdr_key
|
||
AND mld_typeopdr_isofferte = 1
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_alg_onroerendgoed_keys = aor.alg_onroerendgoed_keys
|
||
AND gv.alg_gebouw_key = aor.alg_gebouw_key
|
||
AND gv.prs_perslid_key = p.prs_perslid_key
|
||
AND ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_tracking_datum >=
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_OFFERTE_GOEDKEUREN' );
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_offerte_goedk_2
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT NULL,
|
||
oap.prs_perslid_key,
|
||
'Offerte '
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| mld_opdr_bedrijfopdr_volgnr
|
||
|| ' is afgemeld en dient beoordeeld te worden',
|
||
'CUST12',
|
||
o.mld_opdr_key,
|
||
NULL
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_functie f,
|
||
fac_groeprechten gr,
|
||
fac_groep g,
|
||
fac_gebruikersgroep gg
|
||
WHERE f.fac_functie_code = 'WEB_ORDOAP'
|
||
AND f.fac_functie_key = gr.fac_functie_key
|
||
AND gr.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_key = gg.fac_groep_key) oap,
|
||
( SELECT fac_tracking_refkey,
|
||
MAX (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking ft, fac_srtnotificatie fsn
|
||
WHERE fsn.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
|
||
AND fac_srtnotificatie_code = 'ORDAFM'
|
||
GROUP BY fac_tracking_refkey) ft
|
||
WHERE mld_statusopdr_key = 6
|
||
AND ot.mld_typeopdr_key = o.mld_typeopdr_key
|
||
AND mld_typeopdr_isofferte = 1
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_tracking_datum >=
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTI_OFFERTE_GOEDK_2' );
|
||
|
||
-- AAHU#29410 Notificatie geregistreerde klacht naar groep "HEYDAY-FMer"
|
||
-- prefix KL is klacht
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_klacht_reminder
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT NULL,
|
||
fm.prs_perslid_key,
|
||
'Er is een klacht geregistreerd met referentienummer: '
|
||
|| m.mld_melding_key,
|
||
'MLDNEW',
|
||
m.mld_melding_key,
|
||
NULL
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
mld_discipline d,
|
||
ins_srtdiscipline srt,
|
||
fac_tracking tr,
|
||
fac_srtnotificatie str,
|
||
(SELECT p.prs_perslid_key
|
||
FROM fac_gebruikersgroep fg, fac_groep g, prs_perslid p
|
||
WHERE g.fac_groep_key = fg.fac_groep_key
|
||
AND p.prs_perslid_key = fg.prs_perslid_key
|
||
AND UPPER (g.fac_groep_omschrijving) = 'HEYDAY FM-ER'
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND prs_perslid_email IS NOT NULL) fm
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = srt.ins_srtdiscipline_key
|
||
AND srt.ins_srtdiscipline_module = 'MLD'
|
||
AND srt.ins_srtdiscipline_prefix = 'KL'
|
||
AND m.fac_activiteit_key IS NULL
|
||
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
||
AND tr.fac_tracking_refkey = m.mld_melding_key
|
||
AND str.fac_srtnotificatie_code = 'MLDNEW'
|
||
AND tr.fac_tracking_datum > SYSDATE - 1 / 24;
|
||
|
||
|
||
-- AAFM#33840 notificatie tbv gepland bezoek
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_plan_opdr
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT NULL sender,
|
||
NULL receiver,
|
||
'Aankondiging werkzaamheden door '
|
||
|| b.prs_bedrijf_naam
|
||
|| ' op '
|
||
|| mld_opdr_plandatum
|
||
|| ' op uw locatie'
|
||
text,
|
||
'CUST08' code,
|
||
mld_opdr_key key,
|
||
NULL xkey,
|
||
g.alg_gebouw_email xemail,
|
||
NULL xmobile
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
alg_v_allonrgoed_gegevens aog,
|
||
alg_gebouw g,
|
||
prs_bedrijf b
|
||
WHERE ( (TRUNC (mld_opdr_plandatum) = TRUNC (SYSDATE + 1)
|
||
AND fac.getweekdaynum (SYSDATE) != 6)
|
||
OR (TRUNC (mld_opdr_plandatum) BETWEEN TRUNC (SYSDATE + 1)
|
||
AND TRUNC (SYSDATE + 3)
|
||
AND fac.getweekdaynum (SYSDATE) = 6))
|
||
AND mld_statusopdr_key NOT IN (1, 6, 7, 9)
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND aog.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND g.alg_gebouw_key = aog.alg_gebouw_key;
|
||
|
||
-- AAIT#31201 automatische notificatie naar melder van PR meldingen sturen
|
||
-- 2 weken voorafgaand aan de einddatum van een project (PR melding).
|
||
CREATE OR REPLACE VIEW aaxx_v_noti_mld_projecten
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT NULL sender,
|
||
prs_perslid_key_voor,
|
||
'Herinnering: Over 2 weken sluit projectnummer '
|
||
|| ins_srtdiscipline_prefix
|
||
|| mld_melding_key
|
||
text,
|
||
'MLDNEW' code,
|
||
mld_melding_key key,
|
||
NULL xkey
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
mld_discipline d,
|
||
ins_srtdiscipline srt
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = srt.ins_srtdiscipline_key
|
||
AND UPPER (ins_srtdiscipline_prefix) = 'PR'
|
||
AND m.mld_melding_status NOT IN (1, 5, 6)
|
||
AND m.mld_melding_einddatum BETWEEN SYSDATE + 13 AND SYSDATE + 14;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aaxx_v_kostensoort
|
||
(
|
||
prs_kostensoort_key,
|
||
prs_kostensoort_omschrijving
|
||
)
|
||
AS
|
||
SELECT prs_kostensoort_key,
|
||
prs_kostensoort_oms || '-' || prs_kostensoort_opmerking
|
||
FROM prs_kostensoort;
|
||
|
||
-- AAIT#32784 inzage in zoekgedrag. View te gebruiken icm 20151 rapport mogelijkheden.
|
||
CREATE OR REPLACE VIEW aaxx_v_gui_searchresults
|
||
(
|
||
Zoekterm,
|
||
Datum,
|
||
Persoon,
|
||
Keuze,
|
||
Resultaat
|
||
)
|
||
AS
|
||
SELECT fgc.fac_gui_counter_info zoekterm,
|
||
fac_gui_counter_date datum,
|
||
prs_perslid_naam_full persoon,
|
||
choice.fac_gui_counter_info keuze,
|
||
result.fac_gui_counter_info resultaat
|
||
FROM fac_gui_counter fgc,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT fac_gui_counter_refkey, fac_gui_counter_info
|
||
FROM fac_gui_counter fgc
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice') choice,
|
||
(SELECT fac_gui_counter_refkey, fac_gui_counter_info
|
||
FROM fac_gui_counter fgc
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchresult') result
|
||
WHERE fac_gui_counter_group = 'search'
|
||
AND fgc.fac_gui_counter_info IS NOT NULL
|
||
AND fgc.prs_perslid_key = pf.prs_perslid_key
|
||
AND choice.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key
|
||
AND result.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key;
|
||
|
||
-- procedure om ontvangen emails te processen. De klant specifieke eigenschappen, keys e.d. moeten
|
||
-- in de aanroep meegegeven worden.
|
||
CREATE OR REPLACE PROCEDURE aaxx_processemail (
|
||
pfrom IN VARCHAR2,
|
||
pto IN VARCHAR2,
|
||
psubject IN VARCHAR2,
|
||
pbody IN VARCHAR2,
|
||
psessionid IN VARCHAR2,
|
||
pemailkey IN NUMBER)
|
||
AS
|
||
sender_key prs_perslid.prs_perslid_key%TYPE;
|
||
melder_key prs_perslid.prs_perslid_key%TYPE;
|
||
kostenplaats_key prs_afdeling.prs_kostenplaats_key%TYPE;
|
||
mldkey mld_melding.mld_melding_key%TYPE;
|
||
opdrkey mld_opdr.mld_opdr_key%TYPE;
|
||
stdmelding mld_stdmelding.mld_stdmelding_key%TYPE;
|
||
subject_regexp fac_setting.fac_setting_default%TYPE;
|
||
kkey mld_kenmerk.mld_kenmerk_key%TYPE;
|
||
errormsg fac_result.fac_result_waarde%TYPE;
|
||
behandelaar_key mld_melding.mld_melding_behandelaar_key%TYPE;
|
||
typeopdrkey mld_typeopdr.mld_typeopdr_key%TYPE;
|
||
mldnum VARCHAR2 (4000);
|
||
opdrnum VARCHAR2 (4000);
|
||
opdrvolgnr NUMBER (10);
|
||
srtdisc VARCHAR2 (4000);
|
||
cnt NUMBER (10);
|
||
v_flag_on_fenote NUMBER (10);
|
||
v_flag_on_bonote NUMBER (10);
|
||
v_from VARCHAR2 (4000);
|
||
v_body VARCHAR2 (4000);
|
||
v_subject VARCHAR2 (1000);
|
||
v_pos NUMBER;
|
||
v_result NUMBER;
|
||
v_factuur_key fin_factuur.fin_factuur_key%TYPE;
|
||
v_kenmerk_key fin_kenmerk.fin_kenmerk_key%TYPE;
|
||
BEGIN
|
||
errormsg := '(0x143)';
|
||
|
||
-- de mailberichten worden doorgestuurd vanuit de AAFM exchange omgeving. Hierbij
|
||
-- is het niet mogelijk de afzender te laten staan. Daarom wordt de afzender in het subject
|
||
-- van de mail geplaatst. Scheidingsteken in de ';'.
|
||
v_from := SUBSTR (psubject, 1, INSTR (psubject, ';') - 1);
|
||
v_subject := SUBSTR (psubject, INSTR (psubject, ';') + 1);
|
||
|
||
-- Verwijder de Bounce Address Tag Validation
|
||
IF v_from LIKE 'prvs=%'
|
||
THEN
|
||
v_from := SUBSTR (v_from, INSTR (v_from, '=', -1) + 1);
|
||
END IF;
|
||
|
||
|
||
v_body :=
|
||
v_from || ': ' || CHR (13) || CHR (10)
|
||
|| SUBSTR (
|
||
v_subject || CHR (13) || CHR (10)
|
||
|| REPLACE (SUBSTR (pbody, 1, 3900 - (LENGTH (v_subject) + 2)),
|
||
CHR (13) || CHR (10) || CHR (13) || CHR (10),
|
||
CHR (13) || CHR (10)),
|
||
1,
|
||
3900); -- verwijder onnodige witregels
|
||
|
||
-- DBMS_OUTPUT.PUT_LINE('v_from: '||v_from);
|
||
|
||
errormsg := '(0x143a)';
|
||
-- Valideer de sender in pfrom: kennen we deze?
|
||
SELECT MIN (prs_perslid_key), MIN (d.prs_kostenplaats_key)
|
||
INTO sender_key, kostenplaats_key
|
||
FROM prs_perslid p, prs_afdeling d
|
||
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND UPPER (prs_perslid_email) = UPPER (v_from);
|
||
|
||
errormsg := '(0x143b)';
|
||
IF sender_key IS NULL
|
||
THEN
|
||
sender_key := 11; -- prs_perslid_key onbekend mail adres.
|
||
|
||
SELECT d.prs_kostenplaats_key
|
||
INTO kostenplaats_key
|
||
FROM prs_perslid p, prs_afdeling d
|
||
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND p.prs_perslid_key = sender_key;
|
||
END IF;
|
||
|
||
CASE
|
||
WHEN UPPER (pto) LIKE 'INVOICES@%'
|
||
THEN
|
||
errormsg := '(0x143c)';
|
||
INSERT INTO fin_factuur (fin_factuur_statuses_key,
|
||
fin_factuur_datum,
|
||
fin_factuur_totaal_btw,
|
||
fin_factuur_nr,
|
||
fin_factuur_bron)
|
||
VALUES (3,
|
||
SYSDATE,
|
||
0,
|
||
'#',
|
||
2)
|
||
RETURNING fin_factuur_key
|
||
INTO v_factuur_key;
|
||
|
||
-- Zet kenmerk laatste factuur op Ja
|
||
errormsg := '(0x143d)';
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (v_factuur_key, 2, DECODE(aaxx_get_user, 'SABIC', 24, 1));
|
||
|
||
-- Bepaal de key van de bijlages
|
||
errormsg := '(0x143e)';
|
||
SELECT fin_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_verwijder IS NULL
|
||
AND UPPER(fin_kenmerk_omschrijving) = 'BIJLAGES';
|
||
|
||
errormsg := '(0x143f)';
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'kenmerkpath',
|
||
'FIN\F'
|
||
|| TO_CHAR (TRUNC (v_factuur_key / 1000), 'FM0000')
|
||
|| '___\F'
|
||
|| v_factuur_key
|
||
|| '\'
|
||
|| v_kenmerk_key
|
||
|| '\');
|
||
WHEN UPPER (pto) LIKE 'SERVICEDESK@%'
|
||
THEN
|
||
errormsg := '(0x145)';
|
||
|
||
-- append (as a note?) to an existing melding if #key is found in the subject
|
||
-- Alternatief was: scannen van fac_srtnotificatie_oms maar dat voelt ook niet echt lekker
|
||
-- subject_regexp := fac.getsetting ('mld_reply_subject_regexp'); -- [[:alpha:]]*[[:digit:]]{3,}
|
||
|
||
-- hebben we een referentie naar een opdracht of naar een melding?
|
||
subject_regexp := '[[:digit:]]{3,}/[[:digit:]]*';
|
||
opdrnum :=
|
||
REGEXP_SUBSTR (v_subject,
|
||
subject_regexp,
|
||
1,
|
||
1,
|
||
'i'); -- MA12345
|
||
|
||
DBMS_OUTPUT.put_line ('opdrnum: ' || opdrnum);
|
||
|
||
-- Ja, nu komt het voor dat de opdracht/melding verward wordt met een
|
||
-- bestelling/opdracht. Daarom gaan we kijken of er een bestelling of
|
||
-- bestelopdracht is. Als deze er is dan kijken we naar de aanmaakdatum
|
||
-- is deze nieuwe dan de aanmaakdatum van de melding/opdracht, dan doen
|
||
-- we niets met de mail en hoort deze waarschijnlijk bij een bestelling.
|
||
-- Voor opdrachten (eerste gedeelte) en meldingen (tweede gedeelte) wordt
|
||
-- deze controle uitgevoerd zodra het melding/opdracht nummer bekend is.
|
||
IF opdrnum IS NOT NULL
|
||
THEN
|
||
opdrvolgnr :=
|
||
fac.safe_to_number (
|
||
SUBSTR (opdrnum, INSTR (opdrnum, '/') + 1));
|
||
DBMS_OUTPUT.put_line ('opdrvolgnr: ' || opdrvolgnr);
|
||
|
||
mldkey :=
|
||
fac.safe_to_number (
|
||
SUBSTR (opdrnum, 1, INSTR (opdrnum, '/') - 1));
|
||
DBMS_OUTPUT.put_line ('mldkey: ' || mldkey);
|
||
|
||
SELECT MAX (SIGN (b_o.datum - m_o.datum)) -- 1 als b_o datum > m_o datum
|
||
INTO v_result
|
||
FROM (SELECT bes_bestelopdr_datum datum
|
||
FROM bes_bestelopdr
|
||
WHERE bes_bestelopdr_id = mldkey || '/' || opdrvolgnr) b_o,
|
||
(SELECT mld_opdr_datumbegin datum
|
||
FROM mld_opdr
|
||
WHERE mld_melding_key = mldkey AND mld_opdr_bedrijfopdr_volgnr = opdrvolgnr) m_o;
|
||
|
||
ELSE
|
||
subject_regexp := '[[:alpha:]]*[[:digit:]]{3,}';
|
||
mldnum :=
|
||
REGEXP_SUBSTR (v_subject,
|
||
subject_regexp,
|
||
1,
|
||
1,
|
||
'i'); -- MA12345
|
||
srtdisc :=
|
||
REGEXP_SUBSTR (mldnum,
|
||
'[[:alpha:]]*',
|
||
1,
|
||
1,
|
||
'i'); -- MA
|
||
mldkey :=
|
||
fac.safe_to_number (SUBSTR (mldnum, LENGTH (srtdisc) + 1));
|
||
|
||
SELECT MAX (SIGN (b.datum - m.datum)) -- 1 als bes datum > mld datum
|
||
INTO v_result
|
||
FROM (SELECT bes_bestelling_datum datum
|
||
FROM bes_bestelling
|
||
WHERE bes_bestelling_key = mldkey) b,
|
||
(SELECT mld_melding_datum datum
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = mldkey) m;
|
||
END IF;
|
||
|
||
IF v_result = 1 AND v_result IS NOT NULL
|
||
THEN
|
||
-- resultaat is 1 als de datum van de bestelling/opdracht groter is dan de datum van
|
||
-- de melding/opdracht.
|
||
DBMS_OUTPUT.put_line ('v_result: ' || v_result);
|
||
RETURN;
|
||
END IF;
|
||
|
||
DBMS_OUTPUT.put_line ('mldnum: ' || mldnum);
|
||
DBMS_OUTPUT.put_line ('srtdisc: ' || srtdisc);
|
||
DBMS_OUTPUT.put_line ('mldkey: ' || mldkey);
|
||
|
||
-- We eisen
|
||
-- - Goed meldingnummer
|
||
-- - Goede srtdiscipline
|
||
-- - Afzender is degene voor wie de melding was
|
||
-- suggested extensions: ook collega's toestaan?
|
||
SELECT MIN (mm.mld_stdmelding_key), MIN (prs_perslid_key_voor)
|
||
INTO stdmelding, melder_key
|
||
FROM mld_melding mm,
|
||
mld_stdmelding msm,
|
||
ins_tab_discipline insd,
|
||
ins_srtdiscipline isd
|
||
WHERE mm.mld_melding_key = mldkey
|
||
AND mm.mld_stdmelding_key = msm.mld_stdmelding_key
|
||
AND msm.mld_ins_discipline_key = insd.ins_discipline_key
|
||
AND insd.ins_srtdiscipline_key = isd.ins_srtdiscipline_key;
|
||
|
||
-- Controle op srtdisc werkt niet goed. Mails worden na binnenkomst namelijk doorgezet
|
||
-- naar de definitieve stdmelding(/discipline/srtdiscpline) en daarmee verandert de
|
||
-- prefix letter
|
||
--AND isd.ins_srtdiscipline_prefix = srtdisc
|
||
--AND mm.prs_perslid_key_voor = sender; -- Mogen anderen ook reageren?
|
||
|
||
DBMS_OUTPUT.put_line (
|
||
'mld_stdmelding_key: ' || TO_CHAR (stdmelding));
|
||
|
||
-- kijk of de referentie naar de opdracht wel correct is:
|
||
IF opdrvolgnr IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT mld_opdr_key, mld_typeopdr_key
|
||
INTO opdrkey, typeopdrkey
|
||
FROM mld_opdr
|
||
WHERE mld_melding_key = mldkey
|
||
AND mld_opdr_bedrijfopdr_volgnr = opdrvolgnr;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
opdrkey := NULL;
|
||
END;
|
||
END IF;
|
||
|
||
BEGIN
|
||
IF opdrkey IS NOT NULL
|
||
THEN
|
||
SELECT o.prs_perslid_key
|
||
INTO behandelaar_key
|
||
FROM mld_opdr o, prs_perslid p
|
||
WHERE o.mld_opdr_key = opdrkey
|
||
AND o.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_email IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL;
|
||
ELSE
|
||
SELECT mld_melding_behandelaar_key
|
||
INTO behandelaar_key
|
||
FROM mld_melding m, prs_perslid p
|
||
WHERE mld_melding_key = mldkey
|
||
AND mld_melding_behandelaar_key = p.prs_perslid_key
|
||
AND p.prs_perslid_email IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
behandelaar_key := NULL;
|
||
END;
|
||
|
||
IF (stdmelding IS NOT NULL)
|
||
THEN -- Bestaande opdracht.
|
||
IF opdrkey IS NOT NULL
|
||
THEN
|
||
INSERT INTO mld_opdr_note (mld_opdr_key,
|
||
mld_opdr_note_omschrijving,
|
||
prs_perslid_key)
|
||
VALUES (opdrkey, v_body, sender_key);
|
||
|
||
fac.trackaction ('ORDUPD',
|
||
opdrkey,
|
||
sender_key,
|
||
NULL,
|
||
'#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
|
||
DBMS_OUTPUT.put_line ('Notitie toegevoegd.');
|
||
ELSE
|
||
INSERT INTO mld_melding_note (mld_melding_key,
|
||
mld_melding_note_omschrijving,
|
||
prs_perslid_key,
|
||
mld_melding_note_flag)
|
||
VALUES (mldkey,
|
||
v_body,
|
||
sender_key,
|
||
DECODE (sender_key, melder_key, 1, 0)); -- 1 is zichtbaar FE want zelf ingevoerd.
|
||
|
||
fac.trackaction ('MLDNOT',
|
||
mldkey,
|
||
sender_key,
|
||
NULL,
|
||
'#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
|
||
DBMS_OUTPUT.put_line ('Notitie toegevoegd.');
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'maillog',
|
||
'Als notitie toegevoegd aan melding ' || mldkey);
|
||
|
||
IF behandelaar_key IS NOT NULL
|
||
THEN
|
||
-- Notificatie naar behandelaar
|
||
fac.putnotificationsrtprio (
|
||
NULL,
|
||
behandelaar_key,
|
||
'MLDNOB',
|
||
mldkey,
|
||
'Melding ' || mldkey || ' is door de klant aangepast.',
|
||
2,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
2,
|
||
NULL);
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet
|
||
BEGIN
|
||
IF fac.getsetting('mld_melding_actiecode') = 1
|
||
THEN
|
||
UPDATE mld_melding
|
||
SET mld_melding_actiecode = 1+128 -- Backoffice + Attentie
|
||
WHERE mld_melding_key = mldkey;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
DBMS_OUTPUT.put_line( 'Niet gelukt om flag '
|
||
|| v_flag_on_fenote
|
||
|| ' te zetten.');
|
||
END;
|
||
ELSE
|
||
-- suggested extensions:
|
||
-- check for MLDUSE-write autorisations
|
||
-- parse the subject to find an appropriate stdmelding, if uniquely possible
|
||
errormsg := '(0x148)';
|
||
|
||
BEGIN
|
||
stdmelding :=
|
||
fac.safe_to_number (fac.getsetting ('defaultstdmelding'));
|
||
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
mld_melding_status,
|
||
mld_melding_t_uitvoertijd,
|
||
mld_stdmelding_key,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
prs_kostenplaats_key,
|
||
mld_melding_spoed)
|
||
VALUES ('MLD',
|
||
4, -- email
|
||
SYSDATE,
|
||
v_body,
|
||
NULL,
|
||
mld_t_uitvoertijd (2, 'D'),
|
||
stdmelding,
|
||
sender_key,
|
||
sender_key,
|
||
kostenplaats_key,
|
||
3)
|
||
RETURNING mld_melding_key
|
||
INTO mldkey;
|
||
|
||
-- DBMS_OUTPUT.PUT_LINE('Melding toegevoegd: ' || mldkey);
|
||
errormsg := '(0x165)';
|
||
mld.setmeldingstatus (mldkey, 2, sender_key);
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'maillog',
|
||
'Geregistreerd onder melding ' || mldkey);
|
||
END;
|
||
END IF;
|
||
|
||
IF opdrkey IS NULL
|
||
THEN
|
||
-- Zoek het laagste bijlagen kenmerk key (AAEN#34590) om de bijlagen onder te stoppen
|
||
errormsg := '(0x151)';
|
||
|
||
SELECT MIN (mld_kenmerk_key)
|
||
INTO kkey
|
||
FROM mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d
|
||
WHERE mld_srtkenmerk_kenmerktype = 'M'
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND std.mld_stdmelding_key = stdmelding
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND ( (k.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND k.mld_kenmerk_niveau = 'S')
|
||
OR (k.mld_stdmelding_key = d.ins_discipline_key
|
||
AND k.mld_kenmerk_niveau = 'D')
|
||
OR (k.mld_stdmelding_key = d.ins_srtdiscipline_key
|
||
AND k.mld_kenmerk_niveau = 'T'))
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT mld_kenmerk_volgnummer
|
||
FROM mld_kenmerk k1,
|
||
mld_srtkenmerk sk1,
|
||
mld_stdmelding std1,
|
||
ins_tab_discipline d1
|
||
WHERE sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND sk1.mld_srtkenmerk_key = k1.mld_srtkenmerk_key
|
||
AND std1.mld_stdmelding_key = stdmelding
|
||
AND std1.mld_ins_discipline_key =
|
||
d1.ins_discipline_key
|
||
AND ( (k1.mld_stdmelding_key =
|
||
std1.mld_stdmelding_key
|
||
AND k1.mld_kenmerk_niveau = 'S')
|
||
OR (k1.mld_stdmelding_key = d1.ins_discipline_key
|
||
AND k1.mld_kenmerk_niveau = 'D')
|
||
OR (k1.mld_stdmelding_key =
|
||
d1.ins_srtdiscipline_key
|
||
AND k1.mld_kenmerk_niveau = 'T'))
|
||
AND k1.mld_kenmerk_verwijder IS NULL
|
||
AND k1.mld_kenmerk_key < k.mld_kenmerk_key);
|
||
|
||
errormsg := '(0x153)';
|
||
|
||
IF kkey IS NOT NULL
|
||
THEN
|
||
-- DBMS_OUTPUT.PUT_LINE('Bijlagen kenmerk: ' || kkey);
|
||
errormsg := '(0x157)';
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'kenmerkpath',
|
||
'MLD\M'
|
||
|| TO_CHAR (TRUNC (mldkey / 1000), 'FM0000')
|
||
|| '___\M'
|
||
|| mldkey
|
||
|| '\'
|
||
|| kkey
|
||
|| '\');
|
||
END IF;
|
||
ELSE
|
||
-- Zoek het laagste bijlagen kenmerk om de bijlagen onder te stoppen
|
||
errormsg := '(0x152)';
|
||
|
||
SELECT MIN (mld_kenmerk_key)
|
||
INTO kkey
|
||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE sk.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND k.mld_typeopdr_key = typeopdrkey
|
||
AND k.mld_kenmerk_niveau = 'O'
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT mld_kenmerk_volgnummer
|
||
FROM mld_kenmerk k1, mld_srtkenmerk sk1
|
||
WHERE sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND sk1.mld_srtkenmerk_key = k1.mld_srtkenmerk_key
|
||
AND k1.mld_typeopdr_key = typeopdrkey
|
||
AND k1.mld_kenmerk_niveau = 'O'
|
||
AND k1.mld_kenmerk_verwijder IS NULL
|
||
AND k1.mld_kenmerk_volgnummer <
|
||
k.mld_kenmerk_volgnummer);
|
||
|
||
errormsg := '(0x154)';
|
||
|
||
IF kkey IS NOT NULL
|
||
THEN
|
||
-- DBMS_OUTPUT.PUT_LINE('Bijlagen kenmerk: ' || kkey);
|
||
errormsg := '(0x157)';
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'kenmerkpath',
|
||
'MLD\O'
|
||
|| TO_CHAR (TRUNC (opdrkey / 1000), 'FM0000')
|
||
|| '___\O'
|
||
|| opdrkey
|
||
|| '\'
|
||
|| kkey
|
||
|| '\');
|
||
END IF;
|
||
END IF;
|
||
ELSE
|
||
errormsg := '(0x188)';
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'errormsg',
|
||
'Database fout - Neem contact op met uw systeembeheerder '
|
||
|| errormsg);
|
||
END CASE;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
-- DBMS_OUTPUT.PUT_LINE('Mail niet geaccepteerd: ' || 'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')');
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'errormsg',
|
||
'Database fout - Neem contact op met uw systeembeheerder '
|
||
|| errormsg);
|
||
|
||
fac.writelog (
|
||
'PROCESSEMAIL',
|
||
'E',
|
||
'Mail kon niet ingelezen worden afzender:'
|
||
|| v_from
|
||
|| '['
|
||
|| errormsg
|
||
|| ']'
|
||
|| psubject,
|
||
'OTHERS (error '
|
||
|| SQLCODE
|
||
|| '/'
|
||
|| SUBSTR (SQLERRM, 1, 100)
|
||
|| ')');
|
||
END;
|
||
/
|
||
|
||
-- View tbv notificatiejob - Notities meldingen naar backoffice ipv behandelaar (ipv MLDNOB)
|
||
-- Notificatie gaat naar emailadres Servicedesk Heyday (= vakgroep email-adres) (ticket 60002 en 60269)
|
||
CREATE OR REPLACE VIEW AAXX_V_NOTIFY_BACKOFFICE_NOB
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT (SELECT prs_perslid_key
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_upper = 'FACILITOR')
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
'Er is/zijn '
|
||
|| TO_CHAR (v.aantalopmerkingen)
|
||
|| ' nieuwe opmerking(en) geplaatst bij melding '
|
||
|| v.mld_melding_key
|
||
|| ' ('
|
||
|| v.mld_stdmelding_omschrijving
|
||
|| ' / '
|
||
|| v.ins_discipline_omschrijving
|
||
|| ')'
|
||
text,
|
||
'CUST10'
|
||
code,
|
||
(SELECT fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST10')
|
||
fac_srtnotificatie_key,
|
||
v.mld_melding_key
|
||
key,
|
||
NULL
|
||
xkey,
|
||
v.vakgroep_email
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM (SELECT m.mld_melding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
dp.mld_disc_params_emailnw3
|
||
AS vakgroep_email,
|
||
COALESCE (
|
||
( SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE INSTR (fac_tracking_oms, 'CUST10') > 0),
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_NOB' )
|
||
)
|
||
datum_vanaf,
|
||
(SELECT COUNT (*)
|
||
FROM mld_melding_note mn2
|
||
WHERE mn2.mld_melding_key = m.mld_melding_key
|
||
AND mn.prs_perslid_key NOT IN -- Alleen notities van mensen die niet bij Servicedesk zitten
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_upper = 'HEYDAY SERVICEDESK')
|
||
AND mn2.mld_melding_note_aanmaak >=
|
||
COALESCE (
|
||
( SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE INSTR (fac_tracking_oms,
|
||
'CUST10') >
|
||
0),
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_NOB' )
|
||
)
|
||
)
|
||
AS aantalopmerkingen
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline d,
|
||
mld_disc_params dp,
|
||
mld_melding_note mn,
|
||
prs_perslid p
|
||
WHERE m.mld_melding_key = mn.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND (m.mld_melding_behandelaar_key <> mn.prs_perslid_key or m.mld_melding_behandelaar_key is null)
|
||
AND mn.prs_perslid_key = p.prs_perslid_key AND p.prs_perslid_verwijder is null
|
||
AND mn.mld_melding_note_aanmaak >=
|
||
COALESCE (
|
||
( SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE INSTR (fac_tracking_oms, 'CUST10') > 0),
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_NOB' )
|
||
)
|
||
AND mn.mld_melding_note_aanmaak >= sysdate - 3 -- Max langer dan 3 dagen terugkijken is voldoende
|
||
AND dp.mld_disc_params_emailnw3 IS NOT NULL
|
||
AND mn.prs_perslid_key NOT IN -- Alleen notities van mensen die niet bij Servicedesk zitten
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_upper = 'HEYDAY SERVICEDESK')
|
||
) v
|
||
;
|
||
|
||
-- View tbv notificatiejob - Notities op opdrachten naar backoffice (zie ticket 62800)
|
||
---- indien de notities door iemand anders dan de servicedesk gedaan zijn, dan een groepsnotificatie naar emailadres Servicedesk Heyday (= vakgroep email-adres)
|
||
CREATE OR REPLACE VIEW AAXX_V_NOTIFY_BACKOFFICE_ORD
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT (SELECT prs_perslid_key
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_upper = 'FACILITOR')
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
'Er is/zijn '
|
||
|| TO_CHAR (v.aantalopmerkingen)
|
||
|| ' notities geplaatst bij opdrachtnr '
|
||
|| v.mld_melding_key || '/' || v.mld_opdr_bedrijfopdr_volgnr
|
||
|| ' ('
|
||
|| v.mld_stdmelding_omschrijving
|
||
|| ' / '
|
||
|| v.ins_discipline_omschrijving
|
||
|| ')'
|
||
text,
|
||
'CUST11'
|
||
code,
|
||
(SELECT fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST11')
|
||
fac_srtnotificatie_key,
|
||
v.mld_opdr_key
|
||
key,
|
||
NULL
|
||
xkey,
|
||
v.vakgroep_email
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
o.prs_perslid_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
dp.mld_disc_params_emailnw3
|
||
AS vakgroep_email,
|
||
COALESCE (
|
||
( SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE INSTR (fac_tracking_oms, 'CUST11') > 0),
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_ORD' )
|
||
)
|
||
datum_vanaf, -- Laatste keer job gerund of Ne...
|
||
on1.mld_opdr_note_aanmaak,
|
||
(SELECT COUNT (*)
|
||
FROM mld_opdr_note on2
|
||
WHERE on2.mld_opdr_key = o.mld_opdr_key
|
||
AND on2.prs_perslid_key NOT IN
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_upper = 'HEYDAY SERVICEDESK')
|
||
AND on2.mld_opdr_note_aanmaak >=
|
||
COALESCE (
|
||
( SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE INSTR (fac_tracking_oms,
|
||
'CUST11') > 0),
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_ORD' )
|
||
))
|
||
AS aantalopmerkingen
|
||
FROM mld_melding m,
|
||
mld_opdr o,
|
||
mld_opdr_note on1,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline d,
|
||
mld_disc_params dp,
|
||
prs_perslid p
|
||
WHERE o.mld_opdr_key = on1.mld_opdr_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND on1.prs_perslid_key NOT IN
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_upper = 'HEYDAY SERVICEDESK')
|
||
AND on1.prs_perslid_key = p.prs_perslid_key AND p.prs_perslid_verwijder is null
|
||
AND on1.mld_opdr_note_aanmaak >=
|
||
COALESCE (
|
||
( SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE INSTR (fac_tracking_oms, 'CUST11') > 0
|
||
AND fac_tracking_datum >= SYSDATE - 30),
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_ORD' )
|
||
)
|
||
AND on1.mld_opdr_note_aanmaak >= sysdate - 3 -- Max langer dan 3 dagen terugkijken is voldoende
|
||
AND dp.mld_disc_params_emailnw3 IS NOT NULL
|
||
) v
|
||
;
|
||
|
||
-- Job voor de ordertrackinglijst te versturen. Betreft rapport met alle statusupdates en notities
|
||
CREATE OR REPLACE VIEW AAXX_V_NOTIFY_BACKOFFICE_OT -- OT = Ordertrackinglijst
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT (SELECT prs_perslid_key
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_upper = 'FACILITOR')
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
'Ordertrackinglijst klant ' || acc.fac_version_cust
|
||
text,
|
||
'CUST16'
|
||
code,
|
||
(SELECT fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST16')
|
||
fac_srtnotificatie_key,
|
||
DECODE (acc.fac_version_cust, 'RABO', 1321,
|
||
'INLO', 1041,
|
||
'CVGZ', 681,
|
||
'NMMS', 1001,
|
||
'AAAH', 1261,
|
||
'AAAR', 1101,
|
||
'AADO', 1001,
|
||
'AADS', 2001,
|
||
'AAES', 901,
|
||
'AAGN', 1441,
|
||
'AAIT', 1863,
|
||
'AASA', 1422,
|
||
'AAVG', 661,
|
||
'AQQA', 861,
|
||
'EXPO', 521,
|
||
'SMKA', 941,
|
||
9999)
|
||
key,
|
||
NULL
|
||
xkey,
|
||
v.vakgroep_email
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM (select UPPER(fac_version_cust) fac_version_cust from fac_version) acc,
|
||
(SELECT dp.mld_disc_params_emailnw3
|
||
AS vakgroep_email
|
||
FROM mld_melding m,
|
||
mld_opdr o,
|
||
mld_opdr_note on1,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline d,
|
||
mld_disc_params dp,
|
||
prs_perslid p
|
||
WHERE o.mld_opdr_key = on1.mld_opdr_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND on1.prs_perslid_key NOT IN
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_upper = 'HEYDAY SERVICEDESK')
|
||
AND on1.prs_perslid_key = p.prs_perslid_key AND p.prs_perslid_verwijder is null
|
||
AND on1.mld_opdr_note_aanmaak >=
|
||
COALESCE (
|
||
( SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'rapport'
|
||
AND sn.fac_srtnotificatie_code = 'CUST16'),
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_OT' )
|
||
)
|
||
AND on1.mld_opdr_note_aanmaak <= SYSDATE
|
||
AND on1.mld_opdr_note_aanmaak >= SYSDATE - 3 -- Max langer dan 3 dagen terugkijken is voldoende
|
||
AND dp.mld_disc_params_emailnw3 IS NOT NULL
|
||
GROUP BY dp.mld_disc_params_emailnw3
|
||
UNION
|
||
SELECT dp.mld_disc_params_emailnw3
|
||
AS vakgroep_email
|
||
FROM mld_melding m,
|
||
mld_opdr o,
|
||
aaxx_v_dwh_tracking t,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline d,
|
||
mld_disc_params dp,
|
||
prs_perslid p
|
||
WHERE o.mld_opdr_key = t.ref_key
|
||
AND t.soort = 'opdracht'
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND t.prs_perslid_key NOT IN
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_upper = 'HEYDAY SERVICEDESK')
|
||
AND t.prs_perslid_key = p.prs_perslid_key AND p.prs_perslid_verwijder is null
|
||
AND t.datum >=
|
||
COALESCE (
|
||
( SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'rapport'
|
||
AND sn.fac_srtnotificatie_code = 'CUST16'),
|
||
SYSDATE -
|
||
(SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AAXX_V_NOTIFY_BACKOFFICE_OT' )
|
||
)
|
||
AND t.datum <= SYSDATE
|
||
AND t.datum >= SYSDATE - 3 -- Max langer dan 3 dagen terugkijken is voldoende
|
||
AND dp.mld_disc_params_emailnw3 IS NOT NULL
|
||
GROUP BY dp.mld_disc_params_emailnw3) v
|
||
;
|
||
|
||
-- Rapportview behorende bij job AAXX_V_NOTIFY_BACKOFFICE_OT
|
||
CREATE OR REPLACE VIEW aaxx_v_rap_ordertrackinglijst
|
||
(
|
||
account,
|
||
subaccount, -- in geval INLO - Op gebouwniveau een kenmerk...!
|
||
regio, -- in geval dsm en rabo
|
||
vakgroep_email,
|
||
extra_key, -- vanuit job extra filter_key
|
||
opdrachtnr,
|
||
mld_opdr_key,
|
||
uitvoerder,
|
||
behandelaar,
|
||
opdracht_type,
|
||
soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijziging
|
||
datum,
|
||
actie_door,
|
||
actie_omschrijving,
|
||
actie_details,
|
||
run_deze,
|
||
run_vorige
|
||
)
|
||
AS
|
||
SELECT -- Voor notities
|
||
fac_version_cust account,
|
||
CASE WHEN acc.fac_version_cust in ('INLO') THEN v.klant
|
||
ELSE NULL
|
||
END subaccount, -- in geval INLO
|
||
CASE WHEN acc.fac_version_cust in ('RABO') THEN og.alg_regio_omschrijving
|
||
WHEN acc.fac_version_cust in ('AADS') THEN og.alg_district_omschrijving
|
||
ELSE NULL
|
||
END regio, -- in geval dsm en rabo
|
||
dp.mld_disc_params_emailnw3 vakgroep_email,
|
||
NULL extra_key, -- vanuit job extra filter_key - niet nodig in deze..
|
||
m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdrachtnr,
|
||
o.mld_opdr_key,
|
||
u.naam uitvoerder,
|
||
po.prs_perslid_naam || ' (' || po.prs_perslid_voornaam || ')' behandelaar,
|
||
ot.mld_typeopdr_omschrijving opdracht_type,
|
||
'Notitie' soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijzigign
|
||
TO_CHAR(mld_opdr_note_aanmaak,'dd-mm-yyyy hh24:mm:ss') datum,
|
||
pn.prs_perslid_naam || ' (' || pn.prs_perslid_voornaam || ')' actie_door,
|
||
'Notitie' actie_omschrijving, -- Subsoort voor status
|
||
mld_opdr_note_omschrijving actie_details,
|
||
TO_CHAR(d1.fac_tracking_datum, 'dd-mm-yyyy hh24:mm:ss'), -- Deze_run
|
||
TO_CHAR(d2.fac_tracking_datum, 'dd-mm-yyyy hh24:mm:ss') -- Vorige_run
|
||
FROM mld_melding m,
|
||
mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_v_uitvoerende u,
|
||
mld_opdr_note note,
|
||
prs_perslid pn,
|
||
prs_perslid po,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline d,
|
||
mld_disc_params dp,
|
||
aaxx_v_dwh_alg_onrgoed og,
|
||
(
|
||
SELECT m.mld_melding_key, og.alg_gebouw_key, fud.fac_usrdata_omschr klant
|
||
FROM mld_melding m,
|
||
aaxx_v_dwh_alg_onrgoed og,
|
||
alg_onrgoedkenmerk k,
|
||
fac_usrdata fud
|
||
WHERE m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
AND og.alg_gebouw_key = k.alg_onrgoed_key
|
||
AND alg_kenmerk_key = DECODE (aaxx_get_user, 'INLO', 1100, 1100)
|
||
AND fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = fud.fac_usrdata_key ) v,
|
||
(SELECT fac_version_cust FROM fac_version) acc,
|
||
(SELECT COALESCE(max(TO_DATE(v.fac_tracking_datum,'YYYY-MM-DD HH24:MI:SS')), SYSDATE - 1/24) fac_tracking_datum
|
||
FROM
|
||
(SELECT rownum volgnr, vv.fac_tracking_datum
|
||
FROM
|
||
(SELECT TO_CHAR (ft.fac_tracking_datum, 'YYYY-MM-DD HH24:MI') fac_tracking_datum
|
||
FROM (SELECT fac_tracking_key, fac_srtnotificatie_key, fac_tracking_datum FROM fac_tracking ORDER BY fac_tracking_datum DESC) ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'rapport'
|
||
AND sn.fac_srtnotificatie_code = 'CUST16'
|
||
GROUP BY ft.fac_tracking_datum) vv
|
||
WHERE rownum <=2 ) v
|
||
WHERE v.volgnr = 1) d1,
|
||
(SELECT COALESCE(max(TO_DATE(v.fac_tracking_datum,'YYYY-MM-DD HH24:MI:SS')), SYSDATE - 1/24) fac_tracking_datum
|
||
FROM
|
||
(SELECT rownum volgnr, vv.fac_tracking_datum
|
||
FROM
|
||
(SELECT TO_CHAR (ft.fac_tracking_datum, 'YYYY-MM-DD HH24:MI') fac_tracking_datum
|
||
FROM (SELECT fac_tracking_key, fac_srtnotificatie_key, fac_tracking_datum FROM fac_tracking ORDER BY fac_tracking_datum DESC) ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'rapport'
|
||
AND sn.fac_srtnotificatie_code = 'CUST16'
|
||
GROUP BY ft.fac_tracking_datum) vv
|
||
WHERE rownum <=2 ) v
|
||
WHERE v.volgnr = 2) d2
|
||
WHERE o.mld_opdr_key = note.mld_opdr_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND note.prs_perslid_key = pn.prs_perslid_key
|
||
AND pn.prs_perslid_verwijder IS NULL
|
||
AND o.mld_uitvoerende_keys = u.mld_uitvoerende_key
|
||
AND o.prs_perslid_key = po.prs_perslid_key (+)
|
||
AND m.mld_alg_locatie_key = og.alg_locatie_key AND og.alg_type = 'L'
|
||
AND o.mld_melding_key = v.mld_melding_key (+)
|
||
AND note.prs_perslid_key NOT IN
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_upper = 'HEYDAY SERVICEDESK')
|
||
AND note.mld_opdr_note_aanmaak >= d2.fac_tracking_datum
|
||
AND note.mld_opdr_note_aanmaak < d1.fac_tracking_datum
|
||
UNION
|
||
SELECT -- Voor status
|
||
acc.fac_version_cust account,
|
||
CASE WHEN acc.fac_version_cust in ('INLO') THEN v.klant
|
||
ELSE NULL
|
||
END subaccount, -- in geval INLO
|
||
CASE WHEN acc.fac_version_cust in ('RABO') THEN og.alg_regio_omschrijving
|
||
WHEN acc.fac_version_cust in ('AADS') THEN og.alg_district_omschrijving
|
||
ELSE NULL
|
||
END regio, -- in geval dsm en rabo
|
||
dp.mld_disc_params_emailnw3 vakgroep_email,
|
||
NULL extra_key, -- vanuit job extra filter_key - niet nodig in deze
|
||
m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdrachtnr,
|
||
o.mld_opdr_key,
|
||
u.naam uitvoerder,
|
||
po.prs_perslid_naam || ' (' || po.prs_perslid_voornaam || ')' behandelaar,
|
||
ot.mld_typeopdr_omschrijving opdracht_type,
|
||
'Status' soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijzigign
|
||
TO_CHAR(t.datum,'dd-mm-yyyy hh24:mm:ss') datum,
|
||
pt.prs_perslid_naam || ' (' || pt.prs_perslid_voornaam || ')' actie_door,
|
||
COALESCE(vert.actiecode_tekst,t.actiecode) actie_omschrijving,
|
||
t.omschrijving actie_details,
|
||
TO_CHAR(d1.fac_tracking_datum, 'dd-mm-yyyy hh24:mm:ss'), -- Deze_run
|
||
TO_CHAR(d2.fac_tracking_datum, 'dd-mm-yyyy hh24:mm:ss') -- Vorige_run
|
||
FROM mld_melding m,
|
||
mld_opdr o,
|
||
mld_typeopdr ot,
|
||
aaxx_v_dwh_tracking t,
|
||
( SELECT UPPER (SUBSTR (fac_locale_xsl_label, 12)) as actiecode, fac_locale_xsl_tekst as actiecode_tekst
|
||
FROM fac_locale_xsl
|
||
WHERE INSTR (fac_locale_xsl_label, 'lcl_ord_is_') > 0
|
||
AND fac_locale_xsl_lang = 'NL') vert,
|
||
mld_v_uitvoerende u,
|
||
prs_perslid pt,
|
||
prs_perslid po,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline d,
|
||
mld_disc_params dp,
|
||
aaxx_v_dwh_alg_onrgoed og,
|
||
(
|
||
SELECT m.mld_melding_key, og.alg_gebouw_key, fud.fac_usrdata_omschr klant
|
||
FROM mld_melding m,
|
||
aaxx_v_dwh_alg_onrgoed og,
|
||
alg_onrgoedkenmerk k,
|
||
fac_usrdata fud
|
||
WHERE m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
AND og.alg_gebouw_key = k.alg_onrgoed_key
|
||
AND alg_kenmerk_key = DECODE (aaxx_get_user, 'INLO', 1100, 1100)
|
||
AND fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = fud.fac_usrdata_key ) v,
|
||
(SELECT fac_version_cust FROM fac_version) acc,
|
||
(SELECT COALESCE(max(TO_DATE(v.fac_tracking_datum,'YYYY-MM-DD HH24:MI:SS')), SYSDATE - 1/24) fac_tracking_datum
|
||
FROM
|
||
(SELECT rownum volgnr, vv.fac_tracking_datum
|
||
FROM
|
||
(SELECT TO_CHAR (ft.fac_tracking_datum, 'YYYY-MM-DD HH24:MI') fac_tracking_datum
|
||
FROM (SELECT fac_tracking_key, fac_srtnotificatie_key, fac_tracking_datum FROM fac_tracking ORDER BY fac_tracking_datum DESC) ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'rapport'
|
||
AND sn.fac_srtnotificatie_code = 'CUST16'
|
||
GROUP BY ft.fac_tracking_datum) vv
|
||
WHERE rownum <=2 ) v
|
||
WHERE v.volgnr = 1) d1,
|
||
(SELECT COALESCE(max(TO_DATE(v.fac_tracking_datum,'YYYY-MM-DD HH24:MI:SS')), SYSDATE - 1/24) fac_tracking_datum
|
||
FROM
|
||
(SELECT rownum volgnr, vv.fac_tracking_datum
|
||
FROM
|
||
(SELECT TO_CHAR (ft.fac_tracking_datum, 'YYYY-MM-DD HH24:MI') fac_tracking_datum
|
||
FROM (SELECT fac_tracking_key, fac_srtnotificatie_key, fac_tracking_datum FROM fac_tracking ORDER BY fac_tracking_datum DESC) ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'rapport'
|
||
AND sn.fac_srtnotificatie_code = 'CUST16'
|
||
GROUP BY ft.fac_tracking_datum) vv
|
||
WHERE rownum <=2 ) v
|
||
WHERE v.volgnr = 2) d2
|
||
WHERE o.mld_opdr_key = t.ref_key
|
||
AND t.soort = 'opdracht'
|
||
AND t.actiecode = vert.actiecode (+)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND t.prs_perslid_key = pt.prs_perslid_key
|
||
AND pt.prs_perslid_verwijder IS NULL
|
||
AND o.mld_uitvoerende_keys = u.mld_uitvoerende_key
|
||
AND o.prs_perslid_key = po.prs_perslid_key (+)
|
||
AND m.mld_alg_locatie_key = og.alg_locatie_key AND og.alg_type = 'L'
|
||
AND o.mld_melding_key = v.mld_melding_key (+)
|
||
AND t.prs_perslid_key NOT IN
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND g.fac_groep_upper = 'HEYDAY SERVICEDESK')
|
||
AND t.datum >= d2.fac_tracking_datum
|
||
AND t.datum < d1.fac_tracking_datum
|
||
;
|
||
|
||
-- Notificatiejob voor notificeren uitvoerder bij goedkeuring en/of afkeuring van de kosten (ticket 62830)
|
||
---- CUST13 voor goedkeuring
|
||
---- CUST14 voor afkeuring
|
||
CREATE OR REPLACE VIEW AAXX_V_NOTI_UITVOERDER_KOSTEN
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT (SELECT prs_perslid_key
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_upper = 'FACILITOR')
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
CASE
|
||
WHEN w.akkoord = 'ja'
|
||
THEN
|
||
'Notificatie ivm goedkeuring opdracht ' || w.opdrachtnr
|
||
ELSE
|
||
'Notificatie ivm afkeuring opdracht ' || w.opdrachtnr
|
||
END
|
||
text,
|
||
CASE
|
||
WHEN w.akkoord = 'ja'
|
||
THEN
|
||
'CUST13'
|
||
ELSE
|
||
'CUST14'
|
||
END
|
||
code,
|
||
CASE
|
||
WHEN w.akkoord = 'ja'
|
||
THEN
|
||
(SELECT fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST13')
|
||
ELSE
|
||
(SELECT fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST14')
|
||
END
|
||
fac_srtnotificatie_key,
|
||
w.mld_opdr_key
|
||
key,
|
||
NULL
|
||
xkey,
|
||
w.email
|
||
AS x_email,
|
||
NULL
|
||
xmobile
|
||
FROM
|
||
mld_opdr o,
|
||
(SELECT v.mld_typeopdr_omschrijving,
|
||
v.mld_melding_key,
|
||
v.opdrachtnr,
|
||
v.mld_opdr_key,
|
||
v.mld_statusopdr_key,
|
||
v.status_nu,
|
||
v.status,
|
||
CASE
|
||
WHEN COALESCE (v.datum_goedgekeurd,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy')) >
|
||
COALESCE (v.datum_afgekeurd,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy'))
|
||
THEN
|
||
'ja'
|
||
WHEN COALESCE (v.datum_goedgekeurd,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy')) <
|
||
COALESCE (v.datum_afgekeurd,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy'))
|
||
THEN
|
||
'nee'
|
||
ELSE
|
||
'nvt'
|
||
END
|
||
AS akkoord,
|
||
CASE
|
||
WHEN COALESCE (v.datum_goedgekeurd,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy')) >
|
||
COALESCE (v.datum_cust13,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy'))
|
||
AND COALESCE(v.datum_ORDSNT, sysdate) < v.datum_goedgekeurd
|
||
AND TRUNC(v.datum_goedgekeurd) >= TRUNC(sysdate-3) -- Peildatum, 3 dagen na goedkeuring zodat bij aanzetten job de mailing niet te gedateerd is en alleen actuele goedkeuringen gemaild worden
|
||
THEN
|
||
'ja' -- ja, opnieuw te notificeren
|
||
ELSE
|
||
'nee'
|
||
END
|
||
AS te_notificeren_cust13,
|
||
CASE
|
||
WHEN COALESCE (v.datum_afgekeurd,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy')) >
|
||
COALESCE (v.datum_cust14,
|
||
TO_DATE ('01-01-1900', 'dd-mm-yyyy'))
|
||
AND TRUNC(v.datum_afgekeurd) = TRUNC(sysdate) -- Binnen zelfde dag vanuit SD actie om na te bellen
|
||
THEN
|
||
'ja' -- ja, opnieuw te notificeren
|
||
ELSE
|
||
'nee'
|
||
END
|
||
AS te_notificeren_cust14,
|
||
v.mld_statusopdr_key_refiat,
|
||
v.mld_opdr_kosten,
|
||
v.mld_opdr_kosten_refiat,
|
||
v.mld_opdr_approved,
|
||
v.mld_opdr_teverzenden,
|
||
v.mld_opdr_verzonden,
|
||
v.datum_ORDSNT,
|
||
v.mld_opdr_teverzenden_datum,
|
||
v.datum_goedgekeurd,
|
||
v.datum_cust13,
|
||
v.datum_afgekeurd,
|
||
v.datum_cust14,
|
||
COALESCE (v.email_contactpers, v.email_relatie, v.email_servicedesk)
|
||
AS email
|
||
FROM (SELECT ot.mld_typeopdr_omschrijving,
|
||
o.mld_melding_key,
|
||
o.mld_melding_key
|
||
|| '/'
|
||
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
||
AS opdrachtnr,
|
||
o.mld_opdr_key,
|
||
o.mld_statusopdr_key,
|
||
os.mld_statusopdr_omschrijving
|
||
AS status_nu,
|
||
(CASE
|
||
WHEN o.mld_statusopdr_key IN (5, 8) THEN 'lopend' -- alle lopende statussen die voor deze job relevant zijn (toegekend, geaccepteerd)
|
||
WHEN o.mld_statusopdr_key IN (6) THEN 'uitgevoerd' -- alle uitgevoerde statussen die voor deze job relenvant zijn (afgemeld)
|
||
ELSE 'intern' -- opdracht ligt INTERN ter controle, ter fiattering, afgekeurd, afgewezen, financieel voltooid, verwerkt
|
||
END)
|
||
status,
|
||
o.mld_statusopdr_key_refiat,
|
||
o.mld_opdr_kosten,
|
||
o.mld_opdr_kosten_refiat,
|
||
o.mld_opdr_approved,
|
||
o.mld_opdr_teverzenden,
|
||
o.mld_opdr_verzonden,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
AND sn.fac_srtnotificatie_code = 'ORDSNT')
|
||
AS datum_ORDSNT,
|
||
o.mld_opdr_teverzenden_datum,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
AND (
|
||
(sn.fac_srtnotificatie_code = 'ORDUPD' AND INSTR (LOWER (ft.fac_tracking_oms), 'opdracht is goedgekeurd') > 0)
|
||
OR
|
||
(sn.fac_srtnotificatie_code='ORDFOK')
|
||
)
|
||
)
|
||
AS datum_goedgekeurd,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
AND sn.fac_srtnotificatie_code = 'CUST13')
|
||
AS datum_cust13, -- Datum genotificeerd door noti-job
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
AND ( sn.fac_srtnotificatie_code = 'ORDGNO'
|
||
OR sn.fac_srtnotificatie_code = 'ORDFNO'))
|
||
AS datum_afgekeurd,
|
||
(SELECT MAX (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
AND sn.fac_srtnotificatie_code = 'CUST14')
|
||
AS datum_cust14, -- Datum genotificeerd door noti-job
|
||
(SELECT prs_contactpersoon_email
|
||
FROM prs_contactpersoon
|
||
WHERE prs_contactpersoon_key = o.prs_contactpersoon_key)
|
||
AS email_contactpers,
|
||
(SELECT prs_bedrijf_email
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_key = o.mld_uitvoerende_keys)
|
||
AS email_relatie,
|
||
(SELECT dp.mld_disc_params_emailnw3
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline d,
|
||
mld_disc_params dp
|
||
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND m.mld_melding_key = o.mld_melding_key)
|
||
AS email_servicedesk -- uit vakgroep
|
||
FROM mld_opdr o, mld_statusopdr os, mld_typeopdr ot
|
||
WHERE o.mld_statusopdr_key = os.mld_statusopdr_key
|
||
AND o.mld_statusopdr_key NOT IN (7) -- Sowieso uitgesloten: Verwerkte opdrachten
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_isofferte = 0
|
||
) v
|
||
) w
|
||
WHERE
|
||
o.mld_opdr_key = w.mld_opdr_key
|
||
AND (w.status = 'lopend' OR w.status = 'uitgevoerd')
|
||
AND (
|
||
(w.akkoord = 'ja' and w.te_notificeren_cust13 = 'ja')
|
||
OR
|
||
(w.akkoord = 'nee' and w.te_notificeren_cust14 = 'ja')
|
||
) ;
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_ins_assetman (p_import_key IN NUMBER)
|
||
IS
|
||
c_delim VARCHAR2 (1) := ';';
|
||
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
v_ongeldig NUMBER (1);
|
||
v_aanduiding VARCHAR (400);
|
||
v_ins_kenmerk_key1 VARCHAR2 (255);
|
||
v_ins_kenmerk_key2 VARCHAR2 (255);
|
||
v_ins_kenmerk_key3 VARCHAR2 (255);
|
||
v_ins_kenmerk_key4 VARCHAR2 (255);
|
||
v_ins_kenmerk_key5 VARCHAR2 (255);
|
||
v_ins_kenmerk_key6 VARCHAR2 (255);
|
||
v_ins_kenmerk_key7 VARCHAR2 (255);
|
||
v_ins_kenmerk_key8 VARCHAR2 (255);
|
||
v_ins_kenmerk_key9 VARCHAR2 (255);
|
||
v_ins_kenmerk_key10 VARCHAR2 (255);
|
||
v_ins_kenmerk_key11 VARCHAR2 (255);
|
||
v_ins_kenmerk_key12 VARCHAR2 (255);
|
||
v_ins_kenmerk_key13 VARCHAR2 (255);
|
||
v_ins_kenmerk_key14 VARCHAR2 (255);
|
||
v_ins_kenmerk_key15 VARCHAR2 (255);
|
||
v_ins_kenmerk_key16 VARCHAR2 (255);
|
||
v_ins_kenmerk_key17 VARCHAR2 (255);
|
||
v_ins_kenmerk_key18 VARCHAR2 (255);
|
||
v_ins_kenmerk_key19 VARCHAR2 (255);
|
||
v_ins_kenmerk_key20 VARCHAR2 (255);
|
||
-- De importvelden
|
||
v_ins_discipline_omschrijving VARCHAR2 (255); -- C60
|
||
v_ins_discipline_kostensoort VARCHAR2 (255); --C60
|
||
v_ins_srtgroep_omschrijving VARCHAR2 (255); -- C60
|
||
v_ins_srtdeel_code VARCHAR2 (255); -- C10
|
||
v_ins_srtdeel_omschrijving VARCHAR2 (255); -- C100
|
||
v_ins_deel_omschrijving VARCHAR2 (255); -- C60
|
||
v_ins_deel_opmerking VARCHAR2 (1000); -- C320
|
||
v_alg_locatie_code VARCHAR2 (255); -- C10
|
||
v_alg_gebouw_code VARCHAR2 (255); -- C12
|
||
v_alg_verdieping_volgnr VARCHAR2 (255); -- N3
|
||
v_alg_verdieping_volgnr_n NUMBER (3); -- N3
|
||
v_alg_ruimte_nr VARCHAR2 (255); -- C10
|
||
v_ins_kenmerkwaarde1 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde2 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde3 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde4 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde5 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde6 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde7 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde8 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde9 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde10 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde11 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde12 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde13 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde14 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde15 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde16 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde17 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde18 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde19 VARCHAR2 (4000);
|
||
v_ins_kenmerkwaarde20 VARCHAR2 (4000);
|
||
v_ins_deel_aanmaak VARCHAR2 (255); -- DATE
|
||
v_ins_deel_aanmaak_d DATE;
|
||
v_ins_deel_vervaldatum VARCHAR2 (255); -- DATE
|
||
v_ins_deel_vervaldatum_d DATE;
|
||
v_ins_deel_aantal VARCHAR2 (255); -- N8,2
|
||
v_ins_deel_aantal_n NUMBER(8, 2);
|
||
v_file_index NUMBER;
|
||
v_bestaande_objectketen NUMBER (10);
|
||
v_bestaande_objectcode NUMBER (10);
|
||
|
||
|
||
-- Overige velden:
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
-- LET OP!!! Dit is/was in DB39 op srtkenmerk_key. Is voor DB40 omgezet naar kenmerk_key. Zie ook in FAC_PACF.SRC (fac_import_ins)
|
||
---- DE AAXX met de hieronder aangepast procedure kan/moet dus pas vanaf 2021.1 meegeleverd worden!!!
|
||
--
|
||
-- Controleer tijdens import-fase alleen op het bestaan van een kenmerk met de meegegeven omschrijving of kenmerk key.
|
||
-- De omschrijving (header van kolom) kan de omschrijving zijn van het kenmerksoort of het kenmerk.
|
||
-- De omschrijving van het kenmerksoort kan namelijk overruled worden door de omschrijving van het kenmerk.
|
||
-- Daarnaast kan hetzelfde kenmerk vaker voorkomen voor verschillende groepen.
|
||
-- Of het kenmerksoort/kenmerk wel is gedefinieerd voor de betreffende
|
||
-- object-discipline/groep/soort, volgt pas tijdens de update-fase)!
|
||
--
|
||
-- p_kw is bijvoorbeeld 'Parkeercode', 'Parkeercode|3', 234 of 234|3 waarbij de tweede en laatste in groep 3 zitten
|
||
-- het resultaat is NULL (als niet gevonden) of Parkeercode|3 of 234|3 voor kenmer_key 234 in groep 3
|
||
-- Als geen groep is meegegeven dan wordt 'Parkeercode|0' opgeleverd (de default groep)
|
||
FUNCTION bepaal_kenmerk (p_kw IN VARCHAR)
|
||
RETURN VARCHAR
|
||
IS
|
||
v_kenmerk_key NUMBER;
|
||
v_kenmerk_groep NUMBER;
|
||
v_kw VARCHAR(250);
|
||
BEGIN
|
||
v_kenmerk_groep := 0;
|
||
v_kw := p_kw;
|
||
IF INSTR (v_kw, '|') > 1
|
||
THEN
|
||
v_kenmerk_groep := SUBSTR (v_kw, INSTR (v_kw, '|') + 1);
|
||
v_kw := SUBSTR (v_kw, 1, INSTR (v_kw, '|') - 1);
|
||
END IF;
|
||
|
||
IF fac.safe_to_number (v_kw) IS NULL
|
||
THEN -- kenmerkwaarde is alfanumeriek (dus omschrijving)!
|
||
SELECT MIN(k.ins_kenmerk_key)
|
||
INTO v_kenmerk_key
|
||
FROM ins_v_aanwezigkenmerk k,
|
||
ins_v_aanwezigsrtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_groep = v_kenmerk_groep
|
||
AND COALESCE(UPPER(k.ins_kenmerk_omschrijving), sk.ins_srtkenmerk_upper) = UPPER(v_kw)
|
||
AND sk.ins_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V');
|
||
ELSE -- kenmerkwaarde is numeriek (dus key)!
|
||
SELECT k.ins_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM ins_v_aanwezigkenmerk k,
|
||
ins_v_aanwezigsrtkenmerk sk
|
||
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND k.ins_kenmerk_groep = v_kenmerk_groep
|
||
AND k.ins_kenmerk_key = fac.safe_to_number (v_kw)
|
||
AND sk.ins_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V');
|
||
END IF;
|
||
|
||
IF v_kenmerk_key IS NULL
|
||
THEN
|
||
RETURN NULL;
|
||
ELSE
|
||
-- Er is een kenmerksoort of kenmerk aanwezig met de omschrijving/kenmerk_key (v_kw)
|
||
RETURN v_kw || '|' || TO_CHAR(v_kenmerk_groep);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
IF p_kw IS NULL OR UPPER (p_kw) LIKE 'KENMERK%'
|
||
THEN
|
||
RETURN NULL;
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Fout bij bepalen kenmerk [' || p_kw || ']',
|
||
'Bestaat niet of type ongeldig');
|
||
COMMIT;
|
||
RETURN NULL;
|
||
END IF;
|
||
END;
|
||
|
||
BEGIN
|
||
-- Eerst opruiming
|
||
DELETE FROM fac_imp_ins;
|
||
|
||
COMMIT;
|
||
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
header_is_valid := 0;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_file_index := rec1.fac_imp_file_index;
|
||
v_errormsg := 'Fout bij opvragen importregel';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_discipline_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtgroep_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_code);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_opmerking);
|
||
fac.imp_getfield (v_newline, c_delim, v_alg_locatie_code);
|
||
fac.imp_getfield (v_newline, c_delim, v_alg_gebouw_code);
|
||
fac.imp_getfield (v_newline, c_delim, v_alg_verdieping_volgnr);
|
||
fac.imp_getfield (v_newline, c_delim, v_alg_ruimte_nr);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_aanmaak);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_vervaldatum);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_aantal);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde1);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde2);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde3);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde4);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde5);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde6);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde7);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde8);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde9);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde10);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde11);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde12);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde13);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde14);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde15);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde16);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde17);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde18);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde19);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_kenmerkwaarde20);
|
||
|
||
v_aanduiding :=
|
||
'['
|
||
|| v_ins_discipline_omschrijving
|
||
|| '|'
|
||
|| v_ins_srtgroep_omschrijving
|
||
|| '|'
|
||
|| v_ins_srtdeel_code
|
||
|| '|'
|
||
|| v_ins_srtdeel_omschrijving
|
||
|| '|'
|
||
|| v_ins_deel_omschrijving
|
||
|| '] ';
|
||
|
||
|
||
-- HEADER NIEUW HEYDAY
|
||
---- disciplineomschrijving;groepsoortomschrijving;objectsoortcode;objectsoortomschrijving;objectidentificatie;objectopmerking;locatiecode;gebouwcode;bouwlaagvolgnummer;ruimtenummer;
|
||
----- ingangsdatum;Vervaldatum;Aantal;Plaats;Aantal v2;Bouwjaar;Capaciteit;Datum laatste asset survey;Fabricaat;Gewenste Conditie;Conditie nulmeting;Kritische asset;Referentienummer leverancier;Type;Eenheid;Garantie tot datum;Garantiepartij;kenmerk15;kenmerk16;kenmerk17;kenmerk18;kenmerk19;kenmerk20
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||
-- de juiste kolomkop. Ik controleer daarbij alle NIET-kenmerk kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (v_ins_discipline_omschrijving) = 'DISCIPLINEOMSCHRIJVING'
|
||
AND UPPER (v_ins_srtgroep_omschrijving) = 'GROEPSOORTOMSCHRIJVING'
|
||
AND UPPER (v_ins_srtdeel_code) = 'OBJECTSOORTCODE'
|
||
AND UPPER (v_ins_srtdeel_omschrijving) = 'OBJECTSOORTOMSCHRIJVING'
|
||
AND UPPER (v_ins_deel_omschrijving) = 'OBJECTIDENTIFICATIE'
|
||
AND UPPER (v_ins_deel_opmerking) = 'OBJECTOPMERKING'
|
||
AND UPPER (v_alg_locatie_code) = 'LOCATIECODE'
|
||
AND UPPER (v_alg_gebouw_code) = 'GEBOUWCODE'
|
||
AND UPPER (v_alg_verdieping_volgnr) = 'BOUWLAAGVOLGNUMMER'
|
||
AND UPPER (v_alg_ruimte_nr) = 'RUIMTENUMMER'
|
||
AND UPPER (v_ins_deel_aanmaak) = 'INGANGSDATUM'
|
||
AND UPPER (v_ins_deel_vervaldatum) = 'VERVALDATUM'
|
||
AND UPPER (v_ins_deel_aantal) = 'AANTAL'
|
||
THEN
|
||
v_ins_kenmerk_key1 := bepaal_kenmerk (v_ins_kenmerkwaarde1);
|
||
v_ins_kenmerk_key2 := bepaal_kenmerk (v_ins_kenmerkwaarde2);
|
||
v_ins_kenmerk_key3 := bepaal_kenmerk (v_ins_kenmerkwaarde3);
|
||
v_ins_kenmerk_key4 := bepaal_kenmerk (v_ins_kenmerkwaarde4);
|
||
v_ins_kenmerk_key5 := bepaal_kenmerk (v_ins_kenmerkwaarde5);
|
||
v_ins_kenmerk_key6 := bepaal_kenmerk (v_ins_kenmerkwaarde6);
|
||
v_ins_kenmerk_key7 := bepaal_kenmerk (v_ins_kenmerkwaarde7);
|
||
v_ins_kenmerk_key8 := bepaal_kenmerk (v_ins_kenmerkwaarde8);
|
||
v_ins_kenmerk_key9 := bepaal_kenmerk (v_ins_kenmerkwaarde9);
|
||
v_ins_kenmerk_key10 := bepaal_kenmerk (v_ins_kenmerkwaarde10);
|
||
v_ins_kenmerk_key11 := bepaal_kenmerk (v_ins_kenmerkwaarde11);
|
||
v_ins_kenmerk_key12 := bepaal_kenmerk (v_ins_kenmerkwaarde12);
|
||
v_ins_kenmerk_key13 := bepaal_kenmerk (v_ins_kenmerkwaarde13);
|
||
v_ins_kenmerk_key14 := bepaal_kenmerk (v_ins_kenmerkwaarde14);
|
||
v_ins_kenmerk_key15 := bepaal_kenmerk (v_ins_kenmerkwaarde15);
|
||
v_ins_kenmerk_key16 := bepaal_kenmerk (v_ins_kenmerkwaarde16);
|
||
v_ins_kenmerk_key17 := bepaal_kenmerk (v_ins_kenmerkwaarde17);
|
||
v_ins_kenmerk_key18 := bepaal_kenmerk (v_ins_kenmerkwaarde18);
|
||
v_ins_kenmerk_key19 := bepaal_kenmerk (v_ins_kenmerkwaarde19);
|
||
v_ins_kenmerk_key20 := bepaal_kenmerk (v_ins_kenmerkwaarde20);
|
||
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
-- Controleer alle veldwaarden
|
||
v_errormsg := 'Disciplineomschrijving ongeldig';
|
||
v_ins_discipline_omschrijving :=
|
||
TRIM (v_ins_discipline_omschrijving);
|
||
|
||
IF v_ins_discipline_omschrijving IS NULL
|
||
OR LENGTH (v_ins_discipline_omschrijving) > 60
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Groepsoortomschrijving ongeldig';
|
||
v_ins_srtgroep_omschrijving := TRIM (v_ins_srtgroep_omschrijving);
|
||
|
||
IF v_ins_srtgroep_omschrijving IS NULL
|
||
OR LENGTH (v_ins_srtgroep_omschrijving) > 60
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Objectsoortcode ongeldig';
|
||
v_ins_srtdeel_code := TRIM (v_ins_srtdeel_code);
|
||
|
||
IF v_ins_srtdeel_code IS NULL OR LENGTH (v_ins_srtdeel_code) > 10
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Objectsoortomschrijving ongeldig';
|
||
v_ins_srtdeel_omschrijving := TRIM (v_ins_srtdeel_omschrijving);
|
||
|
||
IF v_ins_srtdeel_omschrijving IS NULL
|
||
OR LENGTH (v_ins_srtdeel_omschrijving) > 100
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Objectomschrijving ongeldig';
|
||
v_ins_deel_omschrijving := TRIM (v_ins_deel_omschrijving);
|
||
|
||
IF v_ins_deel_omschrijving IS NULL
|
||
OR LENGTH (v_ins_deel_omschrijving) > 60
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Objectopmerking ongeldig';
|
||
v_ins_deel_opmerking := TRIM (v_ins_deel_opmerking);
|
||
|
||
IF LENGTH (v_ins_deel_opmerking) > 320
|
||
THEN
|
||
v_ins_deel_opmerking := SUBSTR (v_ins_deel_opmerking, 1, 320);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Objectopmerking wordt afgebroken tot ['
|
||
|| v_ins_deel_opmerking
|
||
|| ']'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Locatiecode ongeldig';
|
||
v_alg_locatie_code := TRIM (v_alg_locatie_code);
|
||
|
||
IF LENGTH (v_alg_locatie_code) > 10
|
||
THEN
|
||
v_alg_locatie_code := SUBSTR (v_alg_locatie_code, 1, 10);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Locatiecode wordt afgebroken tot ['
|
||
|| v_alg_locatie_code
|
||
|| ']'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Gebouwcode ongeldig';
|
||
v_alg_gebouw_code := TRIM (v_alg_gebouw_code);
|
||
|
||
IF LENGTH (v_alg_gebouw_code) > 12
|
||
THEN
|
||
v_alg_gebouw_code := SUBSTR (v_alg_gebouw_code, 1, 12);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Gebouwcode wordt afgebroken tot ['
|
||
|| v_alg_gebouw_code
|
||
|| ']'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Bouwlaagvolgnummer ongeldig';
|
||
v_alg_verdieping_volgnr := TRIM (v_alg_verdieping_volgnr);
|
||
v_alg_verdieping_volgnr_n := NULL;
|
||
|
||
IF (v_alg_verdieping_volgnr IS NOT NULL)
|
||
THEN
|
||
v_alg_verdieping_volgnr_n :=
|
||
ROUND (fac.safe_to_number (v_alg_verdieping_volgnr));
|
||
|
||
IF v_alg_verdieping_volgnr_n NOT BETWEEN -999 AND 999
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen!');
|
||
ELSE
|
||
v_alg_verdieping_volgnr_n :=
|
||
fac.safe_to_number (v_alg_verdieping_volgnr);
|
||
END IF;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Ruimtenummer ongeldig';
|
||
v_alg_ruimte_nr := TRIM (v_alg_ruimte_nr);
|
||
|
||
IF LENGTH (v_alg_ruimte_nr) > 10
|
||
THEN
|
||
v_alg_ruimte_nr := SUBSTR (v_alg_ruimte_nr, 1, 10);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Ruimtenummer wordt afgebroken tot ['
|
||
|| v_alg_ruimte_nr
|
||
|| ']'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Aantal ongeldig; maximale grootte 999999.99';
|
||
v_ins_deel_aantal := TRIM (v_ins_deel_aantal);
|
||
v_ins_deel_aantal := REPLACE (v_ins_deel_aantal, ',', '.');
|
||
v_ins_deel_aantal_n := NULL;
|
||
|
||
IF (v_ins_deel_aantal IS NOT NULL AND fac.getSetting('ins_explode_objects') = 0)
|
||
THEN
|
||
IF (fac.safe_to_number (v_ins_deel_aantal) IS NULL)
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen!');
|
||
ELSE
|
||
v_ins_deel_aantal_n := fac.safe_to_number (v_ins_deel_aantal);
|
||
END IF;
|
||
ELSE
|
||
v_ins_deel_aantal_n := 0 ; -- Als de aantal-waarde in kolom leeg wordt gelaten dan vullen we deze met 0. Bij update gaan we dit conform afspraak vullen met juiste aantal-waarde.
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Aanmaakdatum ongeldig';
|
||
IF v_ins_deel_aanmaak IS NOT NULL
|
||
THEN
|
||
v_ins_deel_aanmaak_d :=
|
||
TO_DATE (v_ins_deel_aanmaak, 'dd-mm-yyyy');
|
||
|
||
IF fac.safe_to_number(to_char(v_ins_deel_aanmaak_d, 'yyyy'))<1900 THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Let op, verkeerde datumnotatie!');
|
||
END IF;
|
||
|
||
ELSE
|
||
v_ins_deel_aanmaak_d := NULL;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Vervaldatum ongeldig';
|
||
IF v_ins_deel_vervaldatum IS NOT NULL
|
||
THEN
|
||
v_ins_deel_vervaldatum_d :=
|
||
TO_DATE (v_ins_deel_vervaldatum, 'dd-mm-yyyy');
|
||
|
||
IF fac.safe_to_number(to_char(v_ins_deel_vervaldatum_d, 'yyyy'))<1900 THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Let op, verkeerde datumnotatie!');
|
||
END IF;
|
||
|
||
ELSE
|
||
v_ins_deel_vervaldatum_d := NULL;
|
||
END IF;
|
||
|
||
-- De rest alleen ff trimmen.
|
||
v_ins_kenmerkwaarde1 := TRIM (v_ins_kenmerkwaarde1);
|
||
v_ins_kenmerkwaarde2 := TRIM (v_ins_kenmerkwaarde2);
|
||
v_ins_kenmerkwaarde3 := TRIM (v_ins_kenmerkwaarde3);
|
||
v_ins_kenmerkwaarde4 := TRIM (v_ins_kenmerkwaarde4);
|
||
v_ins_kenmerkwaarde5 := TRIM (v_ins_kenmerkwaarde5);
|
||
v_ins_kenmerkwaarde6 := TRIM (v_ins_kenmerkwaarde6);
|
||
v_ins_kenmerkwaarde7 := TRIM (v_ins_kenmerkwaarde7);
|
||
v_ins_kenmerkwaarde8 := TRIM (v_ins_kenmerkwaarde8);
|
||
v_ins_kenmerkwaarde9 := TRIM (v_ins_kenmerkwaarde9);
|
||
v_ins_kenmerkwaarde10 := TRIM (v_ins_kenmerkwaarde10);
|
||
v_ins_kenmerkwaarde11 := TRIM (v_ins_kenmerkwaarde11);
|
||
v_ins_kenmerkwaarde12 := TRIM (v_ins_kenmerkwaarde12);
|
||
v_ins_kenmerkwaarde13 := TRIM (v_ins_kenmerkwaarde13);
|
||
v_ins_kenmerkwaarde14 := TRIM (v_ins_kenmerkwaarde14);
|
||
v_ins_kenmerkwaarde15 := TRIM (v_ins_kenmerkwaarde15);
|
||
v_ins_kenmerkwaarde16 := TRIM (v_ins_kenmerkwaarde16);
|
||
v_ins_kenmerkwaarde17 := TRIM (v_ins_kenmerkwaarde17);
|
||
v_ins_kenmerkwaarde18 := TRIM (v_ins_kenmerkwaarde18);
|
||
v_ins_kenmerkwaarde19 := TRIM (v_ins_kenmerkwaarde19);
|
||
v_ins_kenmerkwaarde20 := TRIM (v_ins_kenmerkwaarde20);
|
||
|
||
|
||
-- Controle nieuwe objectcode en keten
|
||
v_errormsg := 'Controle Objectidentificatie en keten';
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_bestaande_objectketen := 0;
|
||
v_bestaande_objectcode := 0 ;
|
||
|
||
SELECT count(*)
|
||
INTO v_bestaande_objectketen
|
||
FROM aaxx_v_dwh_ins_object v, ins_deel d
|
||
WHERE UPPER (v_ins_discipline_omschrijving) =
|
||
UPPER (v.discipline_omschrijving)
|
||
AND UPPER (v_ins_srtgroep_omschrijving) =
|
||
UPPER (v.groep_omschrijving)
|
||
AND UPPER (v_ins_srtdeel_omschrijving) =
|
||
UPPER (v.objectsoort_omschrijving)
|
||
AND UPPER (v_ins_srtdeel_code) =
|
||
UPPER (v.objectsoort_code)
|
||
AND UPPER (v_ins_deel_omschrijving) =
|
||
UPPER (v.identificatie)
|
||
AND v.koppel_type = 'Ruimte'
|
||
AND v.ins_deel_key = d.ins_deel_key
|
||
AND v.ruimte_key = d.ins_alg_ruimte_key
|
||
AND d.ins_deel_verwijder IS NULL ;
|
||
|
||
SELECT count(*)
|
||
INTO v_bestaande_objectcode
|
||
FROM aaxx_v_dwh_ins_object v
|
||
WHERE UPPER (v_ins_deel_omschrijving) =
|
||
UPPER (v.identificatie) ;
|
||
|
||
IF v_bestaande_objectketen=0 AND v_bestaande_objectcode > 0 THEN -- Nieuwe objectketen ECHTER de objectcode bestaat al. Klopt niet, dus we gaan waarschuwen en NIET inlezen..
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Nieuwe objectketen in CSV aangeboden, ECHTER de objectidentificatie bestaat al in Facilitor onder andere keten!. Record wordt niet ingelezen');
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout bij wegschrijven importregel';
|
||
|
||
-- Als uit kenmerkheader een geldige kenmerksoort-key volgt,
|
||
-- dan is kenmerkwaarde<n> gevuld met <key>=<waarde>; zoniet,
|
||
-- dan is kenmerkwaarde<n> gevuld met <waarde>!
|
||
-- NB. Een NULL-waarde resulteert NIET in het wissen van een
|
||
-- kenmerkveld (bijwerken kan wel, maar wissen dus niet)!
|
||
INSERT INTO fac_imp_ins (
|
||
ins_discipline_omschrijving,
|
||
-- ins_discipline_kostensoort,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
reserveerbaar,
|
||
alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_volgnr,
|
||
alg_ruimte_nr,
|
||
res_deel_alg_level,
|
||
ins_kenmerkwaarde1,
|
||
ins_kenmerkwaarde2,
|
||
ins_kenmerkwaarde3,
|
||
ins_kenmerkwaarde4,
|
||
ins_kenmerkwaarde5,
|
||
ins_kenmerkwaarde6,
|
||
ins_kenmerkwaarde7,
|
||
ins_kenmerkwaarde8,
|
||
ins_kenmerkwaarde9,
|
||
ins_kenmerkwaarde10,
|
||
ins_kenmerkwaarde11,
|
||
ins_kenmerkwaarde12,
|
||
ins_kenmerkwaarde13,
|
||
ins_kenmerkwaarde14,
|
||
ins_kenmerkwaarde15,
|
||
ins_kenmerkwaarde16,
|
||
ins_kenmerkwaarde17,
|
||
ins_kenmerkwaarde18,
|
||
ins_kenmerkwaarde19,
|
||
ins_kenmerkwaarde20,
|
||
ins_deel_aanmaak,
|
||
ins_deel_vervaldatum,
|
||
ins_deel_aantal
|
||
)
|
||
VALUES (
|
||
v_ins_discipline_omschrijving,
|
||
v_ins_srtgroep_omschrijving,
|
||
v_ins_srtdeel_code,
|
||
v_ins_srtdeel_omschrijving,
|
||
v_ins_deel_omschrijving,
|
||
v_ins_deel_opmerking,
|
||
0, -- v_reserveerbaar_n, --
|
||
v_alg_locatie_code,
|
||
v_alg_gebouw_code,
|
||
v_alg_verdieping_volgnr_n,
|
||
v_alg_ruimte_nr,
|
||
-1, -- v_res_deel_alg_level_n,
|
||
DECODE (v_ins_kenmerk_key1, NULL, v_ins_kenmerkwaarde1, TO_CHAR (v_ins_kenmerk_key1) || '=' || SUBSTR (v_ins_kenmerkwaarde1, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key2, NULL, v_ins_kenmerkwaarde2, TO_CHAR (v_ins_kenmerk_key2) || '=' || SUBSTR (v_ins_kenmerkwaarde2, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key3, NULL, v_ins_kenmerkwaarde3, TO_CHAR (v_ins_kenmerk_key3) || '=' || SUBSTR (v_ins_kenmerkwaarde3, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key4, NULL, v_ins_kenmerkwaarde4, TO_CHAR (v_ins_kenmerk_key4) || '=' || SUBSTR (v_ins_kenmerkwaarde4, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key5, NULL, v_ins_kenmerkwaarde5, TO_CHAR (v_ins_kenmerk_key5) || '=' || SUBSTR (v_ins_kenmerkwaarde5, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key6, NULL, v_ins_kenmerkwaarde6, TO_CHAR (v_ins_kenmerk_key6) || '=' || SUBSTR (v_ins_kenmerkwaarde6, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key7, NULL, v_ins_kenmerkwaarde7, TO_CHAR (v_ins_kenmerk_key7) || '=' || SUBSTR (v_ins_kenmerkwaarde7, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key8, NULL, v_ins_kenmerkwaarde8, TO_CHAR (v_ins_kenmerk_key8) || '=' || SUBSTR (v_ins_kenmerkwaarde8, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key9, NULL, v_ins_kenmerkwaarde9, TO_CHAR (v_ins_kenmerk_key9) || '=' || SUBSTR (v_ins_kenmerkwaarde9, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key10, NULL, v_ins_kenmerkwaarde10, TO_CHAR (v_ins_kenmerk_key10) || '=' || SUBSTR (v_ins_kenmerkwaarde10, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key11, NULL, v_ins_kenmerkwaarde11, TO_CHAR (v_ins_kenmerk_key11) || '=' || SUBSTR (v_ins_kenmerkwaarde11, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key12, NULL, v_ins_kenmerkwaarde12, TO_CHAR (v_ins_kenmerk_key12) || '=' || SUBSTR (v_ins_kenmerkwaarde12, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key13, NULL, v_ins_kenmerkwaarde13, TO_CHAR (v_ins_kenmerk_key13) || '=' || SUBSTR (v_ins_kenmerkwaarde13, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key14, NULL, v_ins_kenmerkwaarde14, TO_CHAR (v_ins_kenmerk_key14) || '=' || SUBSTR (v_ins_kenmerkwaarde14, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key15, NULL, v_ins_kenmerkwaarde15, TO_CHAR (v_ins_kenmerk_key15) || '=' || SUBSTR (v_ins_kenmerkwaarde15, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key16, NULL, v_ins_kenmerkwaarde16, TO_CHAR (v_ins_kenmerk_key16) || '=' || SUBSTR (v_ins_kenmerkwaarde16, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key17, NULL, v_ins_kenmerkwaarde17, TO_CHAR (v_ins_kenmerk_key17) || '=' || SUBSTR (v_ins_kenmerkwaarde17, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key18, NULL, v_ins_kenmerkwaarde18, TO_CHAR (v_ins_kenmerk_key18) || '=' || SUBSTR (v_ins_kenmerkwaarde18, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key19, NULL, v_ins_kenmerkwaarde19, TO_CHAR (v_ins_kenmerk_key19) || '=' || SUBSTR (v_ins_kenmerkwaarde19, 1, 3900)),
|
||
DECODE (v_ins_kenmerk_key20, NULL, v_ins_kenmerkwaarde20, TO_CHAR (v_ins_kenmerk_key20) || '=' || SUBSTR (v_ins_kenmerkwaarde20, 1, 3900)),
|
||
v_ins_deel_aanmaak_d,
|
||
v_ins_deel_vervaldatum_d,
|
||
v_ins_deel_aantal_n
|
||
);
|
||
|
||
COMMIT;
|
||
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,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'');
|
||
COMMIT;
|
||
END;
|
||
END IF;
|
||
END IF;
|
||
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_ongeldig := 1;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errorhint
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Regel wordt overgeslagen!'
|
||
);
|
||
COMMIT;
|
||
|
||
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!');
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'Objecten/aantal ingelezen importregels: ' || TO_CHAR (v_count_tot),
|
||
''
|
||
);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'Objecten/aantal ongeldige niet ingelezen importregels: '
|
||
|| TO_CHAR (v_count_tot - v_count_import),
|
||
''
|
||
);
|
||
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 objecten afgebroken! regel:' || v_file_index);
|
||
END aaxx_import_ins_assetman;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_ins_assetman (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
CURSOR c_bestaand -- Aantal op huidige aantal ins_deel_key zetten
|
||
IS
|
||
SELECT DISTINCT d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
i.ins_deel_aantal aantal_imp,
|
||
d.ins_deel_aantal aantal_ins
|
||
FROM fac_imp_ins i, aaxx_v_dwh_ins_object v, ins_deel d
|
||
WHERE UPPER (i.ins_discipline_omschrijving) =
|
||
UPPER (v.discipline_omschrijving)
|
||
AND UPPER (i.ins_srtgroep_omschrijving) = UPPER (v.groep_omschrijving)
|
||
AND UPPER (i.ins_srtdeel_omschrijving) =
|
||
UPPER (v.objectsoort_omschrijving)
|
||
AND UPPER (i.ins_srtdeel_code) = UPPER (v.objectsoort_code)
|
||
AND UPPER (i.ins_deel_omschrijving) = UPPER (v.identificatie)
|
||
AND v.koppel_type = 'Ruimte'
|
||
AND v.ins_deel_key = d.ins_deel_key
|
||
AND v.ruimte_key = d.ins_alg_ruimte_key
|
||
AND d.ins_deel_verwijder IS NULL
|
||
AND i.ins_deel_aantal = 0;
|
||
|
||
CURSOR c_nieuw -- aantal op 1
|
||
IS
|
||
SELECT i.ins_deel_omschrijving, i.ins_deel_aantal aantal_imp
|
||
FROM fac_imp_ins i
|
||
WHERE i.ins_deel_aantal = 0
|
||
AND i.ins_deel_omschrijving NOT IN
|
||
(SELECT DISTINCT d.ins_deel_omschrijving
|
||
FROM fac_imp_ins i, aaxx_v_dwh_ins_object v, ins_deel d
|
||
WHERE UPPER (i.ins_discipline_omschrijving) =
|
||
UPPER (v.discipline_omschrijving)
|
||
AND UPPER (i.ins_srtgroep_omschrijving) =
|
||
UPPER (v.groep_omschrijving)
|
||
AND UPPER (i.ins_srtdeel_omschrijving) =
|
||
UPPER (v.objectsoort_omschrijving)
|
||
AND UPPER (i.ins_srtdeel_code) =
|
||
UPPER (v.objectsoort_code)
|
||
AND UPPER (i.ins_deel_omschrijving) =
|
||
UPPER (v.identificatie)
|
||
AND v.koppel_type = 'Ruimte'
|
||
AND v.ins_deel_key = d.ins_deel_key
|
||
AND v.ruimte_key = d.ins_alg_ruimte_key
|
||
AND d.ins_deel_verwijder IS NULL
|
||
AND i.ins_deel_aantal = 0);
|
||
|
||
-- Alle niet gevulde kenmerken echt leegmaken, want anders worden ze met standaard update namelijk verwijderd.
|
||
-- p_srtkenmerkgroepwaarde = '234|1=37-ZB-DR' is gevuld..... -- p_srtkenmerkgroepwaarde = '234|1=' is LEEG maar moet ook echt op NULL
|
||
-- Voor HeyDay-upload geldt namelijk dat als het niet gevuld is, dan wordt er ook niets gewijzigd.
|
||
CURSOR c_del
|
||
IS
|
||
SELECT ins_deel_omschrijving, ins_kenmerkwaarde1, ins_kenmerkwaarde2, ins_kenmerkwaarde3, ins_kenmerkwaarde4, ins_kenmerkwaarde5, ins_kenmerkwaarde6, ins_kenmerkwaarde7, ins_kenmerkwaarde8, ins_kenmerkwaarde9, ins_kenmerkwaarde10,
|
||
ins_kenmerkwaarde11, ins_kenmerkwaarde12, ins_kenmerkwaarde13, ins_kenmerkwaarde14, ins_kenmerkwaarde15, ins_kenmerkwaarde16, ins_kenmerkwaarde17, ins_kenmerkwaarde18, ins_kenmerkwaarde19, ins_kenmerkwaarde20
|
||
FROM fac_imp_ins i ;
|
||
|
||
BEGIN
|
||
-- Starten met correctie op het aantal-veld.
|
||
--- Alle 0-waarden terugzetten naar ins_deel_aantal indien het bestaande objecten zijn..
|
||
FOR rec IN c_bestaand
|
||
LOOP
|
||
BEGIN
|
||
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_deel_aantal = rec.aantal_ins
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN c_nieuw
|
||
LOOP
|
||
BEGIN
|
||
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_deel_aantal = 1
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN c_del
|
||
LOOP
|
||
BEGIN
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde1, INSTR (rec.ins_kenmerkwaarde1, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde1 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde2, INSTR (rec.ins_kenmerkwaarde2, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde2 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde3, INSTR (rec.ins_kenmerkwaarde3, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde3 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde4, INSTR (rec.ins_kenmerkwaarde4, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde4 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde5, INSTR (rec.ins_kenmerkwaarde5, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde5 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde6, INSTR (rec.ins_kenmerkwaarde6, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde6 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde7, INSTR (rec.ins_kenmerkwaarde7, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde7 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde8, INSTR (rec.ins_kenmerkwaarde8, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde8 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde9, INSTR (rec.ins_kenmerkwaarde9, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde9 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde10, INSTR (rec.ins_kenmerkwaarde10, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde10 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde11, INSTR (rec.ins_kenmerkwaarde11, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde11 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde12, INSTR (rec.ins_kenmerkwaarde12, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde12 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde13, INSTR (rec.ins_kenmerkwaarde13, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde13 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde14, INSTR (rec.ins_kenmerkwaarde14, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde14 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde15, INSTR (rec.ins_kenmerkwaarde15, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde15 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde16, INSTR (rec.ins_kenmerkwaarde16, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde16 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde17, INSTR (rec.ins_kenmerkwaarde17, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde17 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde18, INSTR (rec.ins_kenmerkwaarde18, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde18 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde19, INSTR (rec.ins_kenmerkwaarde19, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde19 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
IF SUBSTR (rec.ins_kenmerkwaarde20, INSTR (rec.ins_kenmerkwaarde20, '=') + 1) IS NULL THEN
|
||
UPDATE fac_imp_ins i
|
||
SET i.ins_kenmerkwaarde20 = ''
|
||
WHERE i.ins_deel_omschrijving = rec.ins_deel_omschrijving ;
|
||
END IF;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Nu staat alles in fac_imp_ins goed en kunnen we gaan updaten via de standaard procedure
|
||
fac_update_ins (p_import_key);
|
||
|
||
-- De gewijzigde standaard objectvelden die niet in standaard update worden meegenomen, gaan we via post_update regelen.
|
||
aaxx_post_update_ins_assetman (p_import_key);
|
||
|
||
END aaxx_update_ins_assetman;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_post_update_ins_assetman (p_import_key IN NUMBER)
|
||
AS
|
||
v_aanduiding VARCHAR (400);
|
||
|
||
-- Bestaande Objecten aanpassen: Datum aanmaak, Datum vervallen, Opmerking en Aantal
|
||
---- Werkwijze: Als gevuld en afwijkend huidige ins_waarde dan aanpassen. Als niet gevuld in importsheet, dan asset intact laten.
|
||
CURSOR c_update
|
||
IS
|
||
SELECT DISTINCT d.ins_deel_key,
|
||
i.ins_deel_omschrijving,
|
||
i.ins_deel_aanmaak aanmaak_imp,
|
||
d.ins_deel_aanmaak aanmaak_ins,
|
||
i.ins_deel_vervaldatum vervaldatum_imp,
|
||
d.ins_deel_vervaldatum vervaldatum_ins,
|
||
i.ins_deel_opmerking opmerking_imp,
|
||
d.ins_deel_opmerking opmerking_ins,
|
||
i.ins_deel_aantal aantal_imp,
|
||
d.ins_deel_aantal aantal_ins
|
||
FROM fac_imp_ins i, aaxx_v_dwh_ins_object v, ins_deel d
|
||
WHERE UPPER (i.ins_discipline_omschrijving) =
|
||
UPPER (v.discipline_omschrijving)
|
||
AND UPPER (i.ins_srtgroep_omschrijving) = UPPER (v.groep_omschrijving)
|
||
AND UPPER (i.ins_srtdeel_omschrijving) =
|
||
UPPER (v.objectsoort_omschrijving)
|
||
AND UPPER (i.ins_srtdeel_code) = UPPER (v.objectsoort_code)
|
||
AND UPPER (i.ins_deel_omschrijving) = UPPER (v.identificatie)
|
||
AND v.koppel_type = 'Ruimte'
|
||
AND v.ins_deel_key = d.ins_deel_key
|
||
AND v.ruimte_key = d.ins_alg_ruimte_key
|
||
AND d.ins_deel_verwijder IS NULL ;
|
||
|
||
BEGIN
|
||
FOR rec IN c_update
|
||
LOOP
|
||
BEGIN
|
||
|
||
v_aanduiding := 'Gewijzigd aanmaakdatum van ' || TO_CHAR(rec.aanmaak_ins, 'dd-mm-yyyy') || ' naar ' || TO_CHAR(rec.aanmaak_imp, 'dd-mm-yyyy') ;
|
||
|
||
IF rec.aanmaak_imp is not null and rec.aanmaak_imp <> rec.aanmaak_ins THEN
|
||
UPDATE ins_deel d
|
||
SET d.ins_deel_aanmaak = rec.aanmaak_imp
|
||
WHERE d.ins_deel_key = rec.ins_deel_key ;
|
||
|
||
fac.trackaction ('INSUPD', rec.ins_deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
|
||
END IF;
|
||
|
||
v_aanduiding := 'Gewijzigd vervaldatum ' || TO_CHAR(rec.vervaldatum_ins, 'dd-mm-yyyy') || ' naar ' || TO_CHAR(rec.vervaldatum_imp, 'dd-mm-yyyy') ;
|
||
|
||
IF rec.vervaldatum_imp is not null and (rec.vervaldatum_imp <> rec.vervaldatum_ins or rec.vervaldatum_ins is null) THEN
|
||
UPDATE ins_deel d
|
||
SET d.ins_deel_vervaldatum = rec.vervaldatum_imp
|
||
WHERE d.ins_deel_key = rec.ins_deel_key ;
|
||
|
||
fac.trackaction ('INSUPD', rec.ins_deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
|
||
END IF;
|
||
|
||
v_aanduiding := 'Gewijzigd omschrijving ' || rec.opmerking_ins || ' naar ' || rec.opmerking_imp ;
|
||
|
||
IF rec.opmerking_imp is not null and (rec.opmerking_imp <> rec.opmerking_ins or rec.opmerking_ins is null) THEN
|
||
UPDATE ins_deel d
|
||
SET d.ins_deel_opmerking = rec.opmerking_imp
|
||
WHERE d.ins_deel_key = rec.ins_deel_key ;
|
||
|
||
fac.trackaction ('INSUPD', rec.ins_deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
|
||
END IF;
|
||
|
||
v_aanduiding := 'Gewijzigd aantal ' || rec.aantal_ins || ' naar ' || rec.aantal_imp ;
|
||
|
||
IF rec.aantal_imp is not null and rec.aantal_imp <> rec.aantal_ins THEN
|
||
UPDATE ins_deel d
|
||
SET d.ins_deel_aantal = rec.aantal_imp
|
||
WHERE d.ins_deel_key = rec.ins_deel_key ;
|
||
|
||
fac.trackaction ('INSUPD', rec.ins_deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
|
||
END IF;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
END;
|
||
/
|
||
|
||
-- Nieuwe upload GEBREKEN
|
||
CREATE OR REPLACE PROCEDURE aaxx_import_nen2767_assetman (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (1000); -- Input line
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER := 0;
|
||
v_ongeldig NUMBER (1);
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
v_count_import_n NUMBER (10);
|
||
v_count NUMBER;
|
||
v_mld_stdmelding_key NUMBER (10);
|
||
v_regel NUMBER;
|
||
v_mld_srtkenmerk_key1 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key2 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key3 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key4 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key5 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key6 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key7 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key8 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key9 VARCHAR2 (255);
|
||
v_mld_srtkenmerk_key10 VARCHAR2 (255);
|
||
|
||
v_alg_gebouw_code VARCHAR2 (1000) :=NULL; -- Zie 02 - !!
|
||
v_ins_deel_omschrijving VARCHAR2 (1000);
|
||
v_ins_deel NUMBER (10);
|
||
v_mld_melding_datum VARCHAR2 (1000);
|
||
v_mld_melding_omschrijving VARCHAR2 (1000);
|
||
v_prs_perslid_email VARCHAR2 (1000); -- inspecteur
|
||
v_behandelaar_email VARCHAR2 (1000); -- behandelaar
|
||
v_gebrekcode VARCHAR2 (1000);
|
||
-- v_ernst VARCHAR2 (1000);
|
||
v_omvang VARCHAR2 (1000);
|
||
v_intensiteit VARCHAR2 (1000);
|
||
v_aspect1 VARCHAR2 (1000);
|
||
v_aspect2 VARCHAR2 (1000);
|
||
v_aspect3 VARCHAR2 (1000);
|
||
v_aspect4 VARCHAR2 (1000);
|
||
v_aspect5 VARCHAR2 (1000);
|
||
v_aspect6 VARCHAR2 (1000);
|
||
v_aspect7 VARCHAR2 (1000);
|
||
v_foto VARCHAR2 (1000);
|
||
v_kosten VARCHAR2 (1000);
|
||
v_plandatum VARCHAR2 (1000);
|
||
v_meldingnr VARCHAR2 (1000);
|
||
v_ongeldig_object NUMBER (1) :=0;
|
||
v_ongeldig_gebrek NUMBER (1) :=0;
|
||
v_melding_GV_aantal NUMBER (10);
|
||
v_melding_GV VARCHAR2 (1000);
|
||
|
||
v_mld_kenmerkwaarde1 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde2 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde3 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde4 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde5 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde6 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde7 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde8 VARCHAR2 (4000);
|
||
v_mld_kenmerkwaarde9 VARCHAR2 (4000); -- Voor vullen van de behandelaar
|
||
v_mld_kenmerkwaarde10 VARCHAR2 (4000); -- Voor vullen van de lopende gebreksmelding
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
|
||
-- Controleer tijdens import-fase alleen op bestaan van kenmerksoort (of
|
||
-- deze - via een kenmerk - wel is gedefinieerd voor de betreffende melding -
|
||
-- discipline/vakgroep/st-melding, volgt pas tijdens de update-fase)!
|
||
--
|
||
-- kw is bijvoorbeeld 'Parkeercode' of 'Parkeercode|3' waarbij de laatste in groep 3 zit
|
||
-- het resultaat is NULL (als niet gevonden) of 234|3 voor strkenmer_key 234 in groep 3
|
||
-- Als geen groep is meegegeven wordt 234|0 opgeleverd (de default groep)
|
||
FUNCTION bepaal_srtkenmerk_key (p_kw IN VARCHAR)
|
||
RETURN VARCHAR
|
||
IS
|
||
v_srtkenmerk_key NUMBER;
|
||
v_kenmerk_groep NUMBER;
|
||
v_kw VARCHAR(250);
|
||
BEGIN
|
||
v_kenmerk_groep := 0;
|
||
v_kw := p_kw;
|
||
IF INSTR (v_kw, '|') > 1
|
||
THEN
|
||
v_kenmerk_groep := SUBSTR (v_kw, INSTR (v_kw, '|') + 1);
|
||
v_kw := SUBSTR (v_kw, 1, INSTR (v_kw, '|') - 1);
|
||
END IF;
|
||
|
||
IF fac.safe_to_number (v_kw) IS NULL
|
||
THEN -- kenmerkwaarde is alfanumeriek (dus omschrijving)!
|
||
SELECT mld_srtkenmerk_key
|
||
INTO v_srtkenmerk_key
|
||
FROM mld_srtkenmerk -- ins_v_aanwezigsrtkenmerk
|
||
WHERE mld_srtkenmerk_upper = UPPER (v_kw)
|
||
AND mld_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V');
|
||
ELSE -- kenmerkwaarde is numeriek (dus key)!
|
||
SELECT mld_srtkenmerk_key
|
||
INTO v_srtkenmerk_key
|
||
FROM mld_srtkenmerk -- ins_v_aanwezigsrtkenmerk
|
||
WHERE mld_srtkenmerk_key = fac.safe_to_number (v_kw)
|
||
AND mld_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V');
|
||
END IF;
|
||
|
||
RETURN TO_CHAR(v_srtkenmerk_key) || '|' || TO_CHAR(v_kenmerk_groep);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
IF p_kw IS NULL OR UPPER (p_kw) LIKE 'KENMERK%'
|
||
THEN
|
||
RETURN NULL;
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Fout bij bepalen kenmerksoort [' || p_kw || ']',
|
||
'Bestaat niet of type ongeldig');
|
||
COMMIT;
|
||
RETURN NULL;
|
||
END IF;
|
||
END;
|
||
|
||
FUNCTION get_aspect_value (p_aspect IN VARCHAR2)
|
||
RETURN VARCHAR2
|
||
IS
|
||
v_result VARCHAR2 (100);
|
||
BEGIN
|
||
v_result := p_aspect;
|
||
|
||
IF p_aspect IS NULL
|
||
THEN
|
||
v_result := 'NVT';
|
||
END IF;
|
||
|
||
IF p_aspect = '0' -- Nodig om bij aanvullen lopende gebreksmeldingen de aspectwaarde weer op NVT te krijgen
|
||
THEN
|
||
v_result := '0 - NVT';
|
||
END IF;
|
||
|
||
IF p_aspect = '1'
|
||
THEN
|
||
v_result := 'Gering';
|
||
END IF;
|
||
|
||
IF p_aspect = '2'
|
||
THEN
|
||
v_result := 'Matig';
|
||
END IF;
|
||
|
||
IF p_aspect = '3'
|
||
THEN
|
||
v_result := 'Sterk';
|
||
END IF;
|
||
|
||
RETURN v_result;
|
||
END;
|
||
BEGIN
|
||
v_errorhint := 'cnd_import_nen2767_results';
|
||
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_regel := rec1.fac_imp_file_index;
|
||
v_aanduiding := '';
|
||
v_errorhint := 'Fout bij opvragen te importeren rij';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden
|
||
|
||
-- 01
|
||
v_aanduiding := 'Probleem bij v_ins_deel_omschrijving: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
1,
|
||
v_ins_deel_omschrijving);
|
||
v_ins_deel_omschrijving := TRIM (v_ins_deel_omschrijving);
|
||
|
||
-- 02
|
||
v_aanduiding := 'Probleem bij v_mld_melding_datum: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
2,
|
||
v_mld_melding_datum);
|
||
v_mld_melding_datum := TRIM (v_mld_melding_datum);
|
||
|
||
|
||
-- 03
|
||
v_aanduiding := 'Probleem bij v_gebrekcode: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
3,
|
||
v_gebrekcode);
|
||
v_gebrekcode := TRIM (v_gebrekcode);
|
||
|
||
-- 05
|
||
v_aanduiding := 'Probleem bij v_omvang: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
5,
|
||
v_omvang);
|
||
v_omvang := TRIM (v_omvang);
|
||
|
||
-- 06
|
||
v_aanduiding := 'Probleem bij v_intensiteit: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
6,
|
||
v_intensiteit);
|
||
v_intensiteit := TRIM (v_intensiteit);
|
||
|
||
-- 07
|
||
v_aanduiding := 'Probleem bij v_aspect1: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
7,
|
||
v_aspect1);
|
||
v_aspect1 := TRIM (v_aspect1);
|
||
|
||
-- 08
|
||
v_aanduiding := 'Probleem bij v_aspect2: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
8,
|
||
v_aspect2);
|
||
v_aspect2 := TRIM (v_aspect2);
|
||
|
||
-- 09
|
||
v_aanduiding := 'Probleem bij v_aspect3: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
9,
|
||
v_aspect3);
|
||
v_aspect3 := TRIM (v_aspect3);
|
||
|
||
-- 10
|
||
v_aanduiding := 'Probleem bij v_aspect4: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
10,
|
||
v_aspect4);
|
||
v_aspect4 := TRIM (v_aspect4);
|
||
|
||
-- 11
|
||
v_aanduiding := 'Probleem bij v_aspect5: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
11,
|
||
v_aspect5);
|
||
v_aspect5 := TRIM (v_aspect5);
|
||
|
||
-- 12
|
||
v_aanduiding := 'Probleem bij v_aspect6: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
12,
|
||
v_aspect6);
|
||
v_aspect6 := TRIM (v_aspect6);
|
||
|
||
-- 13
|
||
v_aanduiding := 'Probleem bij v_aspect7: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
13,
|
||
v_aspect7);
|
||
v_aspect7 := TRIM (v_aspect7);
|
||
|
||
-- 14
|
||
v_aanduiding := 'Probleem bij v_mld_melding_omschrijving: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
14,
|
||
v_mld_melding_omschrijving);
|
||
v_mld_melding_omschrijving := TRIM (v_mld_melding_omschrijving);
|
||
|
||
-- 15
|
||
v_aanduiding := 'Probleem bij v_prs_perslid_email: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
15,
|
||
v_prs_perslid_email);
|
||
v_prs_perslid_email := TRIM (v_prs_perslid_email);
|
||
|
||
|
||
-- 16
|
||
v_aanduiding := 'Probleem bij v_behandelaar_email: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
16,
|
||
v_behandelaar_email);
|
||
v_behandelaar_email := TRIM (v_behandelaar_email);
|
||
|
||
|
||
-- 17
|
||
v_aanduiding := 'Probleem bij v_foto: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
17,
|
||
v_foto);
|
||
v_foto := TRIM (v_foto);
|
||
|
||
-- 18
|
||
v_aanduiding := 'Probleem bij v_kosten: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
18,
|
||
v_kosten);
|
||
v_kosten := TRIM (v_kosten);
|
||
|
||
-- 19
|
||
v_aanduiding := 'Probleem bij v_plandatum: ';
|
||
fac.imp_getfield_nr (v_newline,
|
||
c_fielddelimitor,
|
||
19,
|
||
v_plandatum);
|
||
v_plandatum := TRIM (v_plandatum);
|
||
|
||
-- 19 t/m 28
|
||
v_aanduiding := 'Probleem bij vullen v_mld_kenmerkwaarde 1 t/m 10: ';
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,20, v_mld_kenmerkwaarde1);
|
||
v_mld_kenmerkwaarde1 := TRIM (v_mld_kenmerkwaarde1);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,21, v_mld_kenmerkwaarde2);
|
||
v_mld_kenmerkwaarde2 := TRIM (v_mld_kenmerkwaarde2);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,22, v_mld_kenmerkwaarde3);
|
||
v_mld_kenmerkwaarde3 := TRIM (v_mld_kenmerkwaarde3);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,23, v_mld_kenmerkwaarde4);
|
||
v_mld_kenmerkwaarde4 := TRIM (v_mld_kenmerkwaarde4);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,24, v_mld_kenmerkwaarde5);
|
||
v_mld_kenmerkwaarde5 := TRIM (v_mld_kenmerkwaarde5);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,25, v_mld_kenmerkwaarde6);
|
||
v_mld_kenmerkwaarde6 := TRIM (v_mld_kenmerkwaarde6);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,26, v_mld_kenmerkwaarde7);
|
||
v_mld_kenmerkwaarde7 := TRIM (v_mld_kenmerkwaarde7);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,27, v_mld_kenmerkwaarde8);
|
||
v_mld_kenmerkwaarde8 := TRIM (v_mld_kenmerkwaarde8);
|
||
/* fac.imp_getfield_nr (v_newline,c_fielddelimitor,28, v_mld_kenmerkwaarde9);
|
||
v_mld_kenmerkwaarde9 := TRIM (v_mld_kenmerkwaarde9);
|
||
fac.imp_getfield_nr (v_newline,c_fielddelimitor,28, v_mld_kenmerkwaarde10);
|
||
v_mld_kenmerkwaarde10 := TRIM (v_mld_kenmerkwaarde10);
|
||
*/
|
||
v_aanduiding :=
|
||
'['
|
||
|| v_alg_gebouw_code
|
||
|| '-'
|
||
|| v_ins_deel_omschrijving
|
||
|| '-'
|
||
|| v_gebrekcode
|
||
|| '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||
-- de juiste kolomkop. Ik controleer daarbij de volgende kolommen:
|
||
|
||
-- 1. Objectidentificatie
|
||
-- 2. Datum
|
||
-- 3. stdmelding
|
||
-- 5. omvang
|
||
-- 9. intensiteit
|
||
-- 10. Aspectwaarde1
|
||
-- 11. Aspectwaarde2
|
||
-- 12. Aspectwaarde3
|
||
-- 13. Aspectwaarde4
|
||
-- 14. Aspectwaarde5
|
||
-- 15. Aspectwaarde6
|
||
-- 16. Aspectwaarde7
|
||
-- 17. Opmerking
|
||
-- 18. Inspecteur
|
||
-- 19. Behandelaar
|
||
-- 20. Foto
|
||
-- 21. Kosten
|
||
-- 22. Datum gepland
|
||
-- 23. Dienst
|
||
-- 24. Taakgroep
|
||
-- 25. Datum Gereed (inspecteur)
|
||
-- 26. geadviseerd startjaar
|
||
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
-- De tweede waarde is de waarde uit de plato import. Als er geen tweede waarde is dan zijn ze gelijk.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF
|
||
UPPER (v_ins_deel_omschrijving) = 'OBJECTIDENTIFICATIE'
|
||
AND UPPER (v_mld_melding_datum) = 'DATUM'
|
||
AND (UPPER (v_gebrekcode) = 'STDMELDING' OR UPPER (v_gebrekcode) = 'GEBREKCODE')
|
||
AND UPPER (v_omvang) = 'OMVANG'
|
||
AND UPPER (v_intensiteit) = 'INTENSITEIT'
|
||
AND UPPER (v_aspect1) = 'ASPECTWAARDE1'
|
||
AND UPPER (v_aspect2) = 'ASPECTWAARDE2'
|
||
AND UPPER (v_aspect3) = 'ASPECTWAARDE3'
|
||
AND UPPER (v_aspect4) = 'ASPECTWAARDE4'
|
||
AND UPPER (v_aspect5) = 'ASPECTWAARDE5'
|
||
AND UPPER (v_aspect6) = 'ASPECTWAARDE6'
|
||
AND UPPER (v_aspect7) = 'ASPECTWAARDE7'
|
||
AND UPPER (v_mld_melding_omschrijving) = 'OPMERKING'
|
||
AND UPPER (v_prs_perslid_email) = 'INSPECTEUR'
|
||
AND UPPER (v_behandelaar_email) = 'BEHANDELAAR'
|
||
AND UPPER (v_foto) = 'FOTO'
|
||
AND UPPER (v_kosten) = 'KOSTEN'
|
||
AND UPPER (v_plandatum) = 'DATUM GEPLAND'
|
||
AND UPPER (v_mld_kenmerkwaarde1) = 'DIENST'
|
||
AND UPPER (v_mld_kenmerkwaarde2) = 'TAAKGROEP'
|
||
AND UPPER (v_mld_kenmerkwaarde3) = 'DATUM GEREED (INSPECTEUR)'
|
||
AND UPPER (v_mld_kenmerkwaarde4) = 'GEADVISEERD STARTJAAR'
|
||
|
||
THEN
|
||
v_mld_srtkenmerk_key1 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde1);
|
||
v_mld_srtkenmerk_key2 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde2);
|
||
v_mld_srtkenmerk_key3 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde3);
|
||
v_mld_srtkenmerk_key4 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde4);
|
||
v_mld_srtkenmerk_key5 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde5);
|
||
v_mld_srtkenmerk_key6 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde6);
|
||
v_mld_srtkenmerk_key7 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde7);
|
||
v_mld_srtkenmerk_key8 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde8);
|
||
-- v_mld_srtkenmerk_key9 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde9);
|
||
-- v_mld_srtkenmerk_key10 := bepaal_srtkenmerk_key (v_mld_kenmerkwaarde10);
|
||
|
||
header_is_valid := 1;
|
||
ELSE
|
||
IF rec1.fac_imp_file_index = 1
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'I',
|
||
'Header ongeldig: '
|
||
|| UPPER (v_ins_deel_omschrijving) || '-' || UPPER (v_mld_melding_datum) || '-'
|
||
|| UPPER (v_gebrekcode) || '-' || UPPER (v_omvang) || '-' || UPPER (v_intensiteit) || '-' || UPPER (v_aspect1) || '-'
|
||
|| UPPER (v_aspect2) || '-' || UPPER (v_aspect3) || '-' || UPPER (v_aspect4) || '-' || UPPER (v_aspect5) || '-' || UPPER (v_aspect6) || '-' || UPPER (v_aspect7) || '-'
|
||
|| UPPER (v_mld_melding_omschrijving) || '-' || UPPER (v_prs_perslid_email) || '-' || UPPER (v_behandelaar_email) || '-' || UPPER (v_foto) || '-' || UPPER (v_kosten) || '-' || UPPER (v_plandatum) || '-'
|
||
|| UPPER (v_mld_kenmerkwaarde1) || '-' || UPPER (v_mld_kenmerkwaarde2) || '-' || UPPER (v_mld_kenmerkwaarde3) || '-' || UPPER (v_mld_kenmerkwaarde4),
|
||
'');
|
||
END IF;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldige kolom OBJECTIDENTIFICATIE (moet gevuld en maximaal 60 tekens zijn) [' || v_ins_deel_omschrijving || ']';
|
||
v_ongeldig_object := 0;
|
||
|
||
IF (v_ins_deel_omschrijving IS NULL)
|
||
OR (LENGTH (v_ins_deel_omschrijving) > 60)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
v_ongeldig_object := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldige kolom OBJECTIDENTIFICATIE (object is onbekend) [' || v_ins_deel_omschrijving || ']';
|
||
|
||
IF v_ongeldig_object=0
|
||
THEN
|
||
|
||
SELECT count(*)
|
||
INTO v_ins_deel
|
||
FROM ins_v_aanwezigdeel
|
||
WHERE ins_deel_upper = UPPER (v_ins_deel_omschrijving) ;
|
||
|
||
IF v_ins_deel = 0
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
v_ongeldig_object := 1;
|
||
END IF;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldige kolom DATUM (indien gevuld dan met geldige datum in formaat dd-mm-jjjj zijn) [' || v_mld_melding_datum || ']';
|
||
|
||
IF v_mld_melding_datum IS NOT NULL AND fac.safe_to_date (v_mld_melding_datum, 'dd-mm-yyyy') IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom STDMELDING (moet gevuld en maximaal 20 tekens zijn) [' || v_gebrekcode || ']';
|
||
v_ongeldig_gebrek := 0;
|
||
|
||
IF (v_gebrekcode IS NULL) OR (LENGTH (v_gebrekcode) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
v_ongeldig_gebrek := 1;
|
||
END IF;
|
||
|
||
-- Bepaal of gebrek uberhaupt wel in gebrekenlijst voorkomt
|
||
v_errorhint :=
|
||
'Gebrek (melding) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT max(sm.mld_stdmelding_key)
|
||
INTO v_mld_stdmelding_key
|
||
FROM mld_stdmelding sm
|
||
WHERE UPPER(mld_stdmelding_code) = UPPER (v_gebrekcode);
|
||
|
||
IF v_mld_stdmelding_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
v_ongeldig_gebrek := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom OMVANG - indien gevuld moet 1,2,3,4 of 5 zijn [' || v_omvang || ']';
|
||
|
||
-- Als de codering ingevuld is dan gaan we zelf op zoek naar de omschrijving.
|
||
IF v_omvang IS NOT NULL
|
||
THEN
|
||
IF fac.safe_to_number(v_omvang) IN (1,
|
||
2,
|
||
3,
|
||
4,
|
||
5)
|
||
THEN
|
||
CASE v_omvang
|
||
WHEN 1
|
||
THEN
|
||
v_omvang := '< 2% Incidenteel';
|
||
WHEN 2
|
||
THEN
|
||
v_omvang := '2% tot 10% Plaatselijk';
|
||
WHEN 3
|
||
THEN
|
||
v_omvang := '10% tot 30% Regelmatig';
|
||
WHEN 4
|
||
THEN
|
||
v_omvang := '30% tot 70% Aanzienlijk';
|
||
WHEN 5
|
||
THEN
|
||
v_omvang := '> 70% Algemeen';
|
||
END CASE;
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom INTENSITEIT - indien gevuld moet 1,2 of 3 zijn: [' || v_intensiteit || ']'
|
||
|| v_intensiteit;
|
||
|
||
-- Als de codering ingevuld is dan gaan we zelf op zoek naar de omschrijving.
|
||
IF v_intensiteit IS NOT NULL
|
||
THEN
|
||
IF fac.safe_to_number(v_intensiteit) IN (1, 2, 3)
|
||
THEN
|
||
CASE v_intensiteit
|
||
WHEN 1
|
||
THEN
|
||
v_intensiteit := '1 - Beginstadium';
|
||
WHEN 2
|
||
THEN
|
||
v_intensiteit := '2 - Gevorderd stadium';
|
||
WHEN 3
|
||
THEN
|
||
v_intensiteit := '3 - Eindstadium';
|
||
END CASE;
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom ASPECT1 (moet gevuld en maximaal 20 tekens zijn)';
|
||
v_aspect1 := get_aspect_value (v_aspect1);
|
||
|
||
IF (v_aspect1 IS NULL) OR (LENGTH (v_aspect1) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom ASPECT2 (moet gevuld en maximaal 20 tekens zijn)';
|
||
v_aspect2 := get_aspect_value (v_aspect2);
|
||
|
||
IF (v_aspect2 IS NULL) OR (LENGTH (v_aspect2) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom ASPECT3 (moet gevuld en maximaal 20 tekens zijn)';
|
||
v_aspect3 := get_aspect_value (v_aspect3);
|
||
|
||
IF (v_aspect3 IS NULL) OR (LENGTH (v_aspect3) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom ASPECT4 (moet gevuld en maximaal 20 tekens zijn)';
|
||
v_aspect4 := get_aspect_value (v_aspect4);
|
||
|
||
IF (v_aspect4 IS NULL) OR (LENGTH (v_aspect4) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom ASPECT5 (moet gevuld en maximaal 20 tekens zijn)';
|
||
v_aspect5 := get_aspect_value (v_aspect5);
|
||
|
||
IF (v_aspect5 IS NULL) OR (LENGTH (v_aspect5) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom ASPECT6 (moet gevuld en maximaal 20 tekens zijn)';
|
||
v_aspect6 := get_aspect_value (v_aspect6);
|
||
|
||
IF (v_aspect6 IS NULL) OR (LENGTH (v_aspect6) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom ASPECT7 (moet gevuld en maximaal 20 tekens zijn)';
|
||
v_aspect7 := get_aspect_value (v_aspect7);
|
||
|
||
IF (v_aspect7 IS NULL) OR (LENGTH (v_aspect7) > 20)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom OPMERKING (mag maximaal 2000 tekens zijn)';
|
||
|
||
IF (LENGTH (v_mld_melding_omschrijving) > 2000)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint
|
||
|| ' - Opmerking wordt afgekapt op 2000 tekens');
|
||
v_mld_melding_omschrijving :=
|
||
SUBSTR (v_mld_melding_omschrijving, 1, 2000);
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom INSPECTEUR (moet ingevuld en mag maximaal 200 tekens zijn) [' || v_prs_perslid_email || ']';
|
||
|
||
IF (v_prs_perslid_email IS NULL)
|
||
OR (LENGTH (v_prs_perslid_email) > 200)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom BEHANDELAAR (indien ingevuld mag het maximaal 200 tekens zijn) [' || v_behandelaar_email || ']';
|
||
|
||
IF LENGTH (v_behandelaar_email) > 200
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
|
||
--
|
||
v_errorhint :=
|
||
'Ongeldig kolom FOTO (mag maximaal 50 tekens zijn) [' || v_foto || ']';
|
||
|
||
IF (LENGTH (v_foto) > 50)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Foto wordt overgeslagen');
|
||
v_foto := NULL;
|
||
END IF;
|
||
|
||
|
||
--
|
||
v_kosten := REPLACE (v_kosten, ',', '.');
|
||
v_errorhint :=
|
||
'Ongeldig kolom KOSTEN (indien gevuld dan een cijfer met max 2 decimalen)';
|
||
|
||
IF (v_kosten IS NOT NULL)
|
||
AND (fac.safe_to_number (v_kosten) IS NULL)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errorhint := 'Ongeldig kolom DATUM GEPLAND (indien gevuld dan met geldige datum in formaat dd-mm-jjjj zijn) [' || v_plandatum || ']';
|
||
|
||
IF v_plandatum IS NOT NULL AND fac.safe_to_date (v_plandatum, 'dd-mm-yyyy') IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Onderstaande doen we in UPDATE...
|
||
v_errorhint := 'Bepaal of er al een lopende gebreks-melding is';
|
||
v_meldingnr := NULL ;
|
||
|
||
IF v_ongeldig_object = 0 AND v_ongeldig_gebrek = 0 AND v_ongeldig = 0
|
||
THEN
|
||
|
||
SELECT MAX (m.mld_melding_key)
|
||
INTO v_meldingnr
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_melding_object mo,
|
||
ins_deel d
|
||
WHERE m.mld_melding_key = mo.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND UPPER (sm.mld_stdmelding_code) = UPPER (v_gebrekcode)
|
||
AND mo.ins_deel_key = d.ins_deel_key
|
||
AND UPPER (d.ins_deel_omschrijving) = UPPER (v_ins_deel_omschrijving)
|
||
AND m.mld_melding_status IN (0,2,3,4,7,99) ; -- Lopend
|
||
|
||
END IF;
|
||
|
||
-- Als het GEEN bestaande melding is, dan zijn intensiteit en omvang verplicht en plandatum en meldingsdatum
|
||
IF v_meldingnr IS NULL AND v_ongeldig = 0
|
||
THEN
|
||
|
||
v_errorhint :=
|
||
'Betreft nieuwe melding - Kolom OMVANG is leeg en moet gevuld zijn (met 1,2,3,4 of 5 zijn)';
|
||
IF v_omvang IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Betreft nieuwe melding - Kolom INTENSITEIT is leeg en moet gevuld zijn (met 1,2,3 zijn)';
|
||
IF v_intensiteit IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Betreft nieuwe melding - Kolom DATUM is leeg en moet gevuld zijn met datum';
|
||
IF v_mld_melding_datum IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Betreft nieuwe melding - Kolom DATUM GEPLAND is leeg en moet gevuld zijn met datum';
|
||
IF v_plandatum IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
|
||
END IF;
|
||
|
||
|
||
-- Geen fouten, we gaan tussentabel vullen
|
||
IF (v_ongeldig = 0)
|
||
THEN
|
||
BEGIN
|
||
v_errorhint :=
|
||
'Fout bij toevoegen regel aan importtabel cnd_imp_nen2767_results';
|
||
|
||
INSERT INTO cnd_imp_nen2767_results (
|
||
fac_import_key,
|
||
-- alg_gebouw_code,
|
||
ins_deel_omschrijving,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
prs_perslid_email,
|
||
gebrekcode,
|
||
-- ernst,
|
||
omvang,
|
||
intensiteit,
|
||
aspect1,
|
||
aspect2,
|
||
aspect3,
|
||
aspect4,
|
||
aspect5,
|
||
aspect6,
|
||
aspect7,
|
||
kosten,
|
||
plandatum,
|
||
foto,
|
||
-- condscore,
|
||
-- prioscore,
|
||
flex1,
|
||
flex2,
|
||
flex3,
|
||
flex4,
|
||
flex5,
|
||
flex6,
|
||
flex7,
|
||
flex8,
|
||
flex9,
|
||
flex10)
|
||
VALUES (p_import_key,
|
||
v_ins_deel_omschrijving,
|
||
v_mld_melding_datum,
|
||
v_mld_melding_omschrijving,
|
||
v_prs_perslid_email,
|
||
v_gebrekcode,
|
||
v_omvang,
|
||
v_intensiteit,
|
||
DECODE(v_meldingnr, NULL, DECODE(v_aspect1,'0 - NVT','NVT',v_aspect1),v_aspect1), -- Correctie aspectwaarde: Voor de nieuwe meldingen die gevuld zijn met waarde 0 moeten ook netjes op NVT komen
|
||
DECODE(v_meldingnr, NULL, DECODE(v_aspect2,'0 - NVT','NVT',v_aspect2),v_aspect2),
|
||
DECODE(v_meldingnr, NULL, DECODE(v_aspect3,'0 - NVT','NVT',v_aspect3),v_aspect3),
|
||
DECODE(v_meldingnr, NULL, DECODE(v_aspect4,'0 - NVT','NVT',v_aspect4),v_aspect4),
|
||
DECODE(v_meldingnr, NULL, DECODE(v_aspect5,'0 - NVT','NVT',v_aspect5),v_aspect5),
|
||
DECODE(v_meldingnr, NULL, DECODE(v_aspect6,'0 - NVT','NVT',v_aspect6),v_aspect6),
|
||
DECODE(v_meldingnr, NULL, DECODE(v_aspect7,'0 - NVT','NVT',v_aspect7),v_aspect7),
|
||
v_kosten,
|
||
fac.safe_to_date (v_plandatum, 'dd-mm-yyyy'),
|
||
v_foto,
|
||
DECODE (v_mld_srtkenmerk_key1,
|
||
NULL, v_mld_kenmerkwaarde1,
|
||
TO_CHAR (v_mld_srtkenmerk_key1)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde1, 1, 3900)
|
||
),
|
||
DECODE (v_mld_srtkenmerk_key2,
|
||
NULL, v_mld_kenmerkwaarde2,
|
||
TO_CHAR (v_mld_srtkenmerk_key2)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde2, 1, 3900)
|
||
),
|
||
DECODE (v_mld_srtkenmerk_key3,
|
||
NULL, v_mld_kenmerkwaarde3,
|
||
TO_CHAR (v_mld_srtkenmerk_key3)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde3, 1, 3900)
|
||
),
|
||
DECODE (v_mld_srtkenmerk_key4,
|
||
NULL, v_mld_kenmerkwaarde4,
|
||
TO_CHAR (v_mld_srtkenmerk_key4)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde4, 1, 3900)
|
||
),
|
||
DECODE (v_mld_srtkenmerk_key5,
|
||
NULL, v_mld_kenmerkwaarde5,
|
||
TO_CHAR (v_mld_srtkenmerk_key5)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde5, 1, 3900)
|
||
),
|
||
DECODE (v_mld_srtkenmerk_key6,
|
||
NULL, v_mld_kenmerkwaarde6,
|
||
TO_CHAR (v_mld_srtkenmerk_key6)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde6, 1, 3900)
|
||
),
|
||
DECODE (v_mld_srtkenmerk_key7,
|
||
NULL, v_mld_kenmerkwaarde7,
|
||
TO_CHAR (v_mld_srtkenmerk_key7)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde7, 1, 3900)
|
||
),
|
||
DECODE (v_mld_srtkenmerk_key8,
|
||
NULL, v_mld_kenmerkwaarde8,
|
||
TO_CHAR (v_mld_srtkenmerk_key8)
|
||
|| '='
|
||
|| SUBSTR (v_mld_kenmerkwaarde8, 1, 3900)
|
||
),
|
||
v_behandelaar_email,
|
||
v_meldingnr
|
||
);
|
||
|
||
v_count_import := v_count_import + 1;
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errorhint
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Ingelezen regel kan niet worden weggeschreven!');
|
||
COMMIT;
|
||
END;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Aantal nieuwe meldingen
|
||
SELECT count(*)
|
||
INTO v_count_import_n
|
||
FROM cnd_imp_nen2767_results
|
||
WHERE fac_import_key = p_import_key AND flex10 IS NULL ;
|
||
|
||
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Ongeldig importbestand',
|
||
'Geen header of header niet volgens specificatie: <zie specs-documentatie>');
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'IMPORT NEN2767 RESULTS: aantal ingelezen regels: '
|
||
|| TO_CHAR (v_count_tot)
|
||
|| ' / aantal geldige regels: '
|
||
|| TO_CHAR (v_count_import)
|
||
|| ' / waarvan nieuwe melding(en): '
|
||
|| TO_CHAR (v_count_import_n),
|
||
'');
|
||
END IF;
|
||
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint || ' regel[' || v_regel || ']');
|
||
END aaxx_import_nen2767_assetman;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_update_nen2767_assetman (
|
||
p_import_key IN NUMBER)
|
||
IS
|
||
CURSOR c_nieuw
|
||
IS
|
||
SELECT *
|
||
FROM cnd_imp_nen2767_results
|
||
WHERE fac_import_key = p_import_key AND flex10 IS NULL ;
|
||
|
||
CURSOR c_bestaand
|
||
IS
|
||
SELECT *
|
||
FROM cnd_imp_nen2767_results
|
||
WHERE fac_import_key = p_import_key AND flex10 IS NOT NULL ;
|
||
|
||
|
||
v_aanduiding VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_tot NUMBER (10);
|
||
v_count_tot_n NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
|
||
v_mld_melding_key NUMBER (10);
|
||
|
||
v_alg_gebouw_key NUMBER (10);
|
||
v_ins_deel_key NUMBER (10);
|
||
v_alg_ruimte_key NUMBER (10);
|
||
v_prs_perslid_key NUMBER (10);
|
||
v_prs_behandelaar_key NUMBER (10);
|
||
v_mld_stdmelding_key NUMBER (10);
|
||
|
||
v_ernst_kenmerk_key NUMBER (10);
|
||
v_ernst_key NUMBER (10);
|
||
v_omvang_kenmerk_key NUMBER (10);
|
||
v_omvang_key NUMBER (10);
|
||
v_intensiteit_kenmerk_key NUMBER (10);
|
||
v_intensiteit_key NUMBER (10);
|
||
|
||
v_foto_kenmerk_key NUMBER (10);
|
||
v_kosten_kenmerk_key NUMBER (10) := NULL;
|
||
v_kosten_srtkenmerk_key NUMBER (10);
|
||
|
||
v_ernst_srtkenmerk_key NUMBER (10);
|
||
v_omvang_srtkenmerk_key NUMBER (10);
|
||
v_intensiteit_srtkenmerk_key NUMBER (10);
|
||
|
||
v_mld_melding_omschrijving VARCHAR2 (4000);
|
||
v_omvang VARCHAR2 (1000);
|
||
v_intensiteit VARCHAR2 (1000);
|
||
v_aspect1 VARCHAR2 (1000);
|
||
v_aspect2 VARCHAR2 (1000);
|
||
v_aspect3 VARCHAR2 (1000);
|
||
v_aspect4 VARCHAR2 (1000);
|
||
v_aspect5 VARCHAR2 (1000);
|
||
v_aspect6 VARCHAR2 (1000);
|
||
v_aspect7 VARCHAR2 (1000);
|
||
v_inspecteur VARCHAR2 (1000);
|
||
v_behandelaar VARCHAR2 (1000);
|
||
v_foto VARCHAR2 (1000);
|
||
v_kosten VARCHAR2 (1000);
|
||
v_plandatum_date DATE;
|
||
v_dienst VARCHAR2 (1000);
|
||
v_taakgroep VARCHAR2 (1000);
|
||
v_datumgereedinspecteur VARCHAR2 (1000);
|
||
v_geadviseerdstartjaar VARCHAR2 (1000);
|
||
v_flex1_kenmerk_key NUMBER (10);
|
||
v_flex2_kenmerk_key NUMBER (10);
|
||
v_flex3_kenmerk_key NUMBER (10);
|
||
v_flex4_kenmerk_key NUMBER (10);
|
||
v_flex5_kenmerk_key NUMBER (10);
|
||
v_flex6_kenmerk_key NUMBER (10);
|
||
v_flex7_kenmerk_key NUMBER (10);
|
||
v_flex8_kenmerk_key NUMBER (10);
|
||
|
||
v_flex1_waarde VARCHAR2 (1000);
|
||
v_flex1_waarde_key NUMBER (10);
|
||
v_flex2_waarde VARCHAR2 (1000);
|
||
v_flex2_waarde_key NUMBER (10);
|
||
v_flex3_waarde VARCHAR2 (1000);
|
||
v_flex4_waarde VARCHAR2 (1000);
|
||
|
||
v_conditiescore NUMBER (10) ;
|
||
v_prioscore NUMBER (10) ;
|
||
v_herberekenen NUMBER (1) :=0;
|
||
|
||
v_melding_GV_aantal NUMBER(10);
|
||
v_melding_GV VARCHAR2 (1000);
|
||
v_mld_melding_status NUMBER(10);
|
||
|
||
|
||
|
||
PROCEDURE set_aspect (p_aspect IN VARCHAR2,
|
||
p_aspect_waarde IN VARCHAR2,
|
||
p_mld_melding_key IN NUMBER)
|
||
IS
|
||
v_key NUMBER (10);
|
||
v_kenmerk_key NUMBER (10);
|
||
v_srtkenmerk_key NUMBER (10);
|
||
BEGIN
|
||
SELECT MAX (mld_srtkenmerk_key)
|
||
INTO v_srtkenmerk_key
|
||
FROM mld_srtkenmerk
|
||
WHERE mld_srtkenmerk_code = p_aspect;
|
||
|
||
IF v_srtkenmerk_key IS NOT NULL
|
||
THEN
|
||
v_errorhint :=
|
||
p_aspect
|
||
|| ' (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT ud.fac_usrdata_key, k.mld_kenmerk_key
|
||
INTO v_key, v_kenmerk_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k
|
||
WHERE sk.mld_srtkenmerk_key = v_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_upper = UPPER (p_aspect_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||
|
||
mld.upsertmeldingkenmerk (v_kenmerk_key,
|
||
p_mld_melding_key,
|
||
v_key);
|
||
END IF;
|
||
END;
|
||
|
||
-- SUBPROC
|
||
-- Voor vullen van de optionele kenmerkvelden 1 t/m 10
|
||
-- p_srtkenmerkgroepwaarde = '234|1=37-ZB-DR'. Ofwel: srtkenmerk_key|groep=waarde
|
||
PROCEDURE insert_mldkenmerk (p_mld_melding_key IN NUMBER,
|
||
p_srtkenmerkgroepwaarde IN VARCHAR2)
|
||
AS
|
||
v_kenmerk_key NUMBER;
|
||
v_srtkenmerk_key NUMBER;
|
||
v_groep NUMBER;
|
||
v_waarde VARCHAR(4000);
|
||
v_srtkenmerk_type VARCHAR2 (1);
|
||
ccount NUMBER;
|
||
v_objectnaam VARCHAR2 (30);
|
||
v_kolomnaam VARCHAR2 (30);
|
||
v_kolomtxt VARCHAR2 (30);
|
||
sql_stmt VARCHAR2 (1000);
|
||
v_kenmerkdeel_key NUMBER;
|
||
l_cursor_1 INTEGER;
|
||
l_rowsprocessed NUMBER DEFAULT 0;
|
||
BEGIN
|
||
IF p_srtkenmerkgroepwaarde IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout bij bepalen kenmerk van soort [' || p_srtkenmerkgroepwaarde || ']';
|
||
|
||
v_srtkenmerk_key := fac.safe_to_number (
|
||
SUBSTR (p_srtkenmerkgroepwaarde, 1, INSTR (p_srtkenmerkgroepwaarde, '|') - 1));
|
||
v_groep := fac.safe_to_number (
|
||
SUBSTR (p_srtkenmerkgroepwaarde,
|
||
INSTR (p_srtkenmerkgroepwaarde, '|') + 1,
|
||
INSTR (p_srtkenmerkgroepwaarde, '=') - 1 - INSTR (p_srtkenmerkgroepwaarde, '|')));
|
||
v_waarde := SUBSTR (p_srtkenmerkgroepwaarde, INSTR (p_srtkenmerkgroepwaarde, '=') + 1);
|
||
|
||
|
||
-- Niveau en mld_kenmerk_key bepalen vanuit de ingelezen gebreksmelding
|
||
SELECT mk.mld_kenmerk_key, msk.mld_srtkenmerk_kenmerktype
|
||
INTO v_kenmerk_key, v_srtkenmerk_type
|
||
FROM mld_kenmerk mk, mld_srtkenmerk msk, mld_melding m, mld_stdmelding sm, mld_discipline d, ins_srtdiscipline t
|
||
WHERE mk.mld_srtkenmerk_key = v_srtkenmerk_key
|
||
AND mk.mld_kenmerk_groep = v_groep
|
||
AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
|
||
AND m.mld_melding_key = p_mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = t.ins_srtdiscipline_key AND t.ins_srtdiscipline_module = 'MLD'
|
||
AND (
|
||
(mk.mld_stdmelding_key = sm.mld_stdmelding_key and mk.mld_kenmerk_niveau = 'S')
|
||
OR
|
||
(mk.mld_stdmelding_key = d.ins_discipline_key and mk.mld_kenmerk_niveau = 'D')
|
||
OR
|
||
(mk.mld_stdmelding_key = t.ins_srtdiscipline_key and mk.mld_kenmerk_niveau = 'T')
|
||
) ;
|
||
|
||
IF v_waarde IS NOT NULL
|
||
THEN
|
||
IF v_srtkenmerk_type IN ('R', 'S')
|
||
THEN
|
||
v_errormsg := 'Fout bij bepalen eigen tabel';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO ccount
|
||
FROM mld_srtkenmerk sk, fac_kenmerkdomein d
|
||
WHERE sk.mld_srtkenmerk_key = v_srtkenmerk_key
|
||
AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
|
||
AND d.fac_usrtab_key IS NOT NULL;
|
||
|
||
v_errormsg := 'Fout bij bepalen nieuwe waarde [' || v_waarde || ']';
|
||
|
||
IF ccount = 1
|
||
THEN -- Eigen tabel
|
||
SELECT TO_CHAR (ud.fac_usrdata_key)
|
||
INTO v_waarde
|
||
FROM mld_srtkenmerk sk, fac_kenmerkdomein d, fac_v_aanwezigusrdata ud
|
||
WHERE sk.mld_srtkenmerk_key = v_srtkenmerk_key
|
||
AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
|
||
AND d.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND UPPER (TRIM (ud.fac_usrdata_omschr)) = UPPER (v_waarde);
|
||
ELSE -- FACILITOR view/tabel
|
||
SELECT d.fac_kenmerkdomein_objectnaam,
|
||
d.fac_kenmerkdomein_kolomnaam,
|
||
d.fac_kenmerkdomein_kolomtxt
|
||
INTO v_objectnaam, v_kolomnaam, v_kolomtxt
|
||
FROM mld_srtkenmerk sk, fac_kenmerkdomein d
|
||
WHERE sk.mld_srtkenmerk_key = v_srtkenmerk_key
|
||
AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
|
||
AND d.fac_usrtab_key IS NULL;
|
||
|
||
sql_stmt :=
|
||
'SELECT MAX ('
|
||
|| v_kolomnaam
|
||
|| ') FROM '
|
||
|| v_objectnaam
|
||
|| ' WHERE UPPER (TRIM ('
|
||
|| v_kolomtxt
|
||
|| ')) = UPPER (:pwaarde)';
|
||
l_cursor_1 := DBMS_SQL.open_cursor;
|
||
DBMS_SQL.parse (l_cursor_1, sql_stmt, DBMS_SQL.native);
|
||
DBMS_SQL.BIND_VARIABLE(l_cursor_1,':pwaarde', v_waarde);
|
||
DBMS_SQL.define_column(l_cursor_1, 1, v_waarde, 255);
|
||
l_rowsprocessed := DBMS_SQL.execute_and_fetch (l_cursor_1);
|
||
DBMS_SQL.column_value (l_cursor_1, 1, v_waarde);
|
||
DBMS_SQL.close_cursor(l_cursor_1);
|
||
END IF;
|
||
ELSE -- C(Karakter)/D(Datum)/N(Numeriek)/X(Bestandsnaam)
|
||
NULL; -- v_waarde := p_waarde;
|
||
END IF;
|
||
|
||
IF v_srtkenmerk_type = 'N' -- Alleen voor numerieke waarden de decimale komma vervangen door punt.
|
||
THEN
|
||
v_waarde := REPLACE (v_waarde, ',', '.');
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij toevoegen waarde [' || v_waarde || ']';
|
||
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (p_mld_melding_key, v_kenmerk_key, v_waarde);
|
||
ELSE
|
||
NULL;
|
||
|
||
END IF;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg || ' (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'insert_mldkenmerk');
|
||
END;
|
||
|
||
|
||
BEGIN
|
||
v_count_tot := 0;
|
||
v_count_tot_n := 0;
|
||
v_count_import := 0;
|
||
|
||
v_errorhint :=
|
||
'Ernst kenmerk bij gebreken niet gevonden (bestaat niet), import wordt niet uitgevoerd';
|
||
|
||
SELECT mld_srtkenmerk_key
|
||
INTO v_ernst_srtkenmerk_key
|
||
FROM mld_srtkenmerk
|
||
WHERE mld_srtkenmerk_code = 'ERNST';
|
||
|
||
v_errorhint :=
|
||
'Omvang kenmerk bij gebreken niet gevonden (bestaat niet), import wordt niet uitgevoerd';
|
||
|
||
SELECT mld_srtkenmerk_key
|
||
INTO v_omvang_srtkenmerk_key
|
||
FROM mld_srtkenmerk
|
||
WHERE mld_srtkenmerk_code = 'OMVANG';
|
||
|
||
v_errorhint :=
|
||
'Intensiteit kenmerk bij gebreken niet gevonden (bestaat niet), import wordt niet uitgevoerd';
|
||
|
||
SELECT mld_srtkenmerk_key
|
||
INTO v_intensiteit_srtkenmerk_key
|
||
FROM mld_srtkenmerk
|
||
WHERE mld_srtkenmerk_code = 'INTENSITEIT';
|
||
|
||
v_errorhint :=
|
||
'Fout bij bepalen kenmerk foto-bestand';
|
||
|
||
SELECT max(k.mld_kenmerk_key)
|
||
INTO v_foto_kenmerk_key
|
||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_niveau = 'T'
|
||
AND k.mld_stdmelding_key = fac.getsetting ('cnd_gebreken_srtdisc_key')
|
||
AND sk.mld_srtkenmerk_upper = 'FOTONAAM' ;
|
||
|
||
v_errorhint :=
|
||
'Kosten kenmerk bij gebreken niet gevonden (bestaat niet), import wordt niet uitgevoerd';
|
||
|
||
SELECT MAX (mld_srtkenmerk_key)
|
||
INTO v_kosten_srtkenmerk_key
|
||
FROM mld_srtkenmerk
|
||
WHERE mld_srtkenmerk_code = 'KOSTEN';
|
||
|
||
IF v_kosten_srtkenmerk_key IS NOT NULL
|
||
THEN
|
||
SELECT mld_kenmerk_key
|
||
INTO v_kosten_kenmerk_key
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = v_kosten_srtkenmerk_key;
|
||
END IF;
|
||
|
||
FOR rec IN c_nieuw
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding :=
|
||
'['
|
||
|| rec.alg_gebouw_code
|
||
|| '-'
|
||
|| rec.ins_deel_omschrijving
|
||
|| '-'
|
||
|| rec.gebrekcode
|
||
|| '] ';
|
||
|
||
v_errorhint :=
|
||
'Gebouwcode niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
v_alg_gebouw_key := -1;
|
||
|
||
IF rec.alg_gebouw_code IS NOT NULL
|
||
THEN
|
||
SELECT alg_gebouw_key
|
||
INTO v_alg_gebouw_key
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE alg_gebouw_upper = UPPER (rec.alg_gebouw_code);
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Element (object) niet gevonden (bestaat niet bij gebouw), regel wordt overgeslagen';
|
||
|
||
-- Uitgangspunt hierbij is dat objectnaam uniek is per gebouw, op zich mag in Facilitor de objectnaam per objectsoort per locatie uniek zijn.
|
||
SELECT ins_deel_key, r.alg_ruimte_key
|
||
INTO v_ins_deel_key, v_alg_ruimte_key
|
||
FROM ins_v_aanwezigdeel, alg_ruimte r, alg_verdieping v
|
||
WHERE ins_deel_upper = UPPER (rec.ins_deel_omschrijving)
|
||
AND ins_alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND ( v_alg_gebouw_key = -1
|
||
OR v.alg_gebouw_key = v_alg_gebouw_key)
|
||
AND ins_alg_ruimte_type = 'R';
|
||
|
||
v_errorhint :=
|
||
'Mailadres van inspecteur (persoon) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT prs_perslid_key
|
||
INTO v_prs_perslid_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE UPPER (prs_perslid_email) = UPPER (rec.prs_perslid_email);
|
||
|
||
v_errorhint :=
|
||
'Mailadres van behandelaar (persoon) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
IF rec.flex9 IS NOT NULL
|
||
THEN
|
||
|
||
SELECT prs_perslid_key
|
||
INTO v_prs_behandelaar_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE UPPER (prs_perslid_email) = UPPER (rec.flex9);
|
||
|
||
ELSE
|
||
v_prs_behandelaar_key := NULL ;
|
||
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Gebrek (melding) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT sm.mld_stdmelding_key
|
||
INTO v_mld_stdmelding_key
|
||
FROM mld_stdmelding sm
|
||
WHERE UPPER(mld_stdmelding_code) = UPPER (rec.gebrekcode);
|
||
|
||
IF UPPER(rec.gebrekcode) = 'GEEN'
|
||
THEN
|
||
v_errorhint :=
|
||
'Geen Gebrek melding. Ernst, Omvang en Intensiteit worden overgeslagen';
|
||
ELSE
|
||
|
||
v_errorhint :=
|
||
'Ernst (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
-- We vullen de ERNST altijd met de default-waarde bij kenmerk_key
|
||
SELECT ud.fac_usrdata_key, k.mld_kenmerk_key
|
||
INTO v_ernst_key, v_ernst_kenmerk_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k
|
||
WHERE sk.mld_srtkenmerk_key = v_ernst_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = k.mld_kenmerk_default
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_stdmelding_key = v_mld_stdmelding_key
|
||
AND k.mld_kenmerk_niveau = 'S';
|
||
|
||
v_errorhint :=
|
||
'Omvang (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT ud.fac_usrdata_key, k.mld_kenmerk_key
|
||
INTO v_omvang_key, v_omvang_kenmerk_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k
|
||
WHERE sk.mld_srtkenmerk_key = v_omvang_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_upper = UPPER (rec.omvang)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_stdmelding_key = v_mld_stdmelding_key
|
||
AND k.mld_kenmerk_niveau = 'S';
|
||
|
||
v_errorhint :=
|
||
'Intensiteit (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT ud.fac_usrdata_key, k.mld_kenmerk_key
|
||
INTO v_intensiteit_key, v_intensiteit_kenmerk_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k
|
||
WHERE sk.mld_srtkenmerk_key = v_intensiteit_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_upper = UPPER (rec.intensiteit)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_stdmelding_key = v_mld_stdmelding_key
|
||
AND k.mld_kenmerk_niveau = 'S';
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Check of er voor GV-gebrek al een soortgelijk gebrek loopt';
|
||
v_melding_GV_aantal:=0;
|
||
|
||
IF INSTR (rec.gebrekcode, 'GV') > 0
|
||
THEN
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_melding_GV_aantal
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_melding_object mo,
|
||
ins_deel d
|
||
WHERE m.mld_melding_key = mo.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND mo.ins_deel_key = d.ins_deel_key
|
||
-- AND UPPER (d.ins_deel_omschrijving) = UPPER (v_ins_deel_omschrijving) -- '0247.43-0016'
|
||
AND d.ins_deel_key = v_ins_deel_key
|
||
AND m.mld_melding_status IN (0,2,3,4,7,99)
|
||
AND INSTR (rec.gebrekcode, 'GV') > 0
|
||
AND UPPER (SUBSTR (sm.mld_stdmelding_code,1,INSTR (sm.mld_stdmelding_code, 'GV') + 1)) = UPPER (SUBSTR (rec.gebrekcode, 1, INSTR (rec.gebrekcode, 'GV') + 1))
|
||
AND sm.mld_stdmelding_code <> rec.gebrekcode;
|
||
|
||
IF v_melding_GV_aantal > 0
|
||
THEN
|
||
v_melding_GV := 'Bij invoer is/zijn er nog ' || TO_CHAR(v_melding_GV_aantal) || ' melding(en) op code ' || SUBSTR (rec.gebrekcode, 1, INSTR (rec.gebrekcode, 'GV') + 1) ;
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Toevoegen melding';
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
mld_stdmelding_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_einddatum,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
-- mld_melding_behandelaar_key,
|
||
mld_melding_status,
|
||
mld_melding_spoed)
|
||
VALUES (
|
||
'MLD',
|
||
6,
|
||
fac.safe_to_date (rec.mld_melding_datum, 'dd-mm-yyyy'),
|
||
CASE
|
||
WHEN v_melding_GV_aantal >0 THEN rec.mld_melding_omschrijving || CHR (13) || CHR (10) || 'LET OP!: ' || v_melding_GV
|
||
ELSE rec.mld_melding_omschrijving END,
|
||
v_mld_stdmelding_key,
|
||
v_alg_ruimte_key,
|
||
rec.plandatum,
|
||
v_prs_perslid_key,
|
||
v_prs_perslid_key,
|
||
-- v_prs_behandelaar_key,
|
||
NULL,
|
||
3)
|
||
RETURNING mld_melding_key
|
||
INTO v_mld_melding_key;
|
||
|
||
mld.setmeldingstatus(v_mld_melding_key, 2, v_prs_perslid_key, 0);
|
||
|
||
v_errorhint := 'Koppelen object';
|
||
INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key)
|
||
VALUES (v_mld_melding_key, v_ins_deel_key);
|
||
|
||
v_errorhint := 'Toevoegen Ernst kenmerk';
|
||
mld.upsertmeldingkenmerk (v_ernst_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_ernst_key);
|
||
|
||
v_errorhint := 'Toevoegen Omvang kenmerk';
|
||
mld.upsertmeldingkenmerk (v_omvang_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_omvang_key);
|
||
v_errorhint := 'Toevoegen Intensiteit kenmerk';
|
||
mld.upsertmeldingkenmerk (v_intensiteit_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_intensiteit_key);
|
||
set_aspect ('ASPECT1', rec.aspect1, v_mld_melding_key);
|
||
set_aspect ('ASPECT2', rec.aspect2, v_mld_melding_key);
|
||
set_aspect ('ASPECT3', rec.aspect3, v_mld_melding_key);
|
||
set_aspect ('ASPECT4', rec.aspect4, v_mld_melding_key);
|
||
set_aspect ('ASPECT5', rec.aspect5, v_mld_melding_key);
|
||
set_aspect ('ASPECT6', rec.aspect6, v_mld_melding_key);
|
||
set_aspect ('ASPECT7', rec.aspect7, v_mld_melding_key);
|
||
|
||
v_errorhint := 'Toevoegen Foto kenmerk';
|
||
IF rec.foto IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_foto_kenmerk_key,
|
||
v_mld_melding_key,
|
||
rec.foto);
|
||
END IF;
|
||
|
||
v_errorhint := 'Toevoegen Kosten kenmerk';
|
||
IF rec.kosten IS NOT NULL AND v_kosten_kenmerk_key IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_kosten_kenmerk_key,
|
||
v_mld_melding_key,
|
||
TO_CHAR(rec.kosten));
|
||
END IF;
|
||
|
||
-- Hier toevoegen insert_meldingskenmerken 1 t/m 10..
|
||
v_errorhint := 'Toevoegen kenmerk-velden ';
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex1);
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex2);
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex3);
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex4);
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex5);
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex6);
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex7);
|
||
insert_mldkenmerk (v_mld_melding_key, rec.flex8);
|
||
-- insert_mldkenmerk (v_mld_melding_key, rec.flex9);
|
||
-- insert_mldkenmerk (v_mld_melding_key, rec.flex10);
|
||
|
||
-- Bij direct accepteren moet ook de CND-berekening uitgevoerd worden
|
||
---- En indien meegegeven wordt ook de behandelaar op melding gezet.
|
||
v_errorhint := 'Meldingen direct accepteren ';
|
||
IF fac.getsetting('cnd_autoaccept') = 1
|
||
THEN
|
||
mld.setmeldingstatus(v_mld_melding_key, 4, v_prs_perslid_key, 0);
|
||
|
||
BEGIN
|
||
cnd.process_mjb_score_effects (v_mld_melding_key);
|
||
END;
|
||
COMMIT;
|
||
|
||
IF v_prs_behandelaar_key IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE mld_melding
|
||
SET mld_melding_behandelaar_key = v_prs_behandelaar_key
|
||
WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
/* -- Notificatie naar behandelaar
|
||
fac.putnotificationsrtprio (
|
||
NULL,
|
||
v_behandelaar_key,
|
||
'MLDBE2',
|
||
v_mld_melding_key,
|
||
'Melding '
|
||
|| N
|
||
|| v_mld_melding_key
|
||
|| ' is door de klant aangepast.',
|
||
2,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
2,
|
||
NULL); */
|
||
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
v_count_import := v_count_import + 1;
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
FOR rec IN c_bestaand
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_count_tot_n := v_count_tot_n + 1;
|
||
|
||
v_aanduiding :=
|
||
'['
|
||
|| rec.alg_gebouw_code
|
||
|| '-'
|
||
|| rec.ins_deel_omschrijving
|
||
|| '-'
|
||
|| rec.gebrekcode
|
||
|| '- lopende melding '
|
||
|| rec.flex10
|
||
|| '] ';
|
||
|
||
v_mld_melding_key := fac.safe_to_number(rec.flex10) ;
|
||
|
||
-- Gaan eerst alle waarden vullen uit de lopende melding
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde OPMERKING van lopende melding';
|
||
v_mld_melding_omschrijving := '';
|
||
|
||
SELECT max(mld_melding_omschrijving)
|
||
INTO v_mld_melding_omschrijving
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde OMVANG van lopende melding';
|
||
v_omvang := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr, k.mld_kenmerk_key
|
||
INTO v_omvang, v_omvang_kenmerk_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_key = v_omvang_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'S';
|
||
|
||
v_errorhint :=
|
||
'Omvang (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT ud.fac_usrdata_key
|
||
INTO v_omvang_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_key = v_omvang_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_upper = UPPER (v_omvang)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'S';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde INTENSITEIT van lopende melding';
|
||
v_intensiteit := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr, k.mld_kenmerk_key
|
||
INTO v_intensiteit, v_intensiteit_kenmerk_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_key = v_intensiteit_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'S';
|
||
|
||
v_errorhint := 'Intensiteit (eigen tabel) niet gevonden (bestaat niet), regel wordt overgeslagen';
|
||
|
||
SELECT ud.fac_usrdata_key
|
||
INTO v_intensiteit_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_key = v_intensiteit_srtkenmerk_key
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_upper = UPPER (v_intensiteit)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'S';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde ASPECT1 van lopende melding';
|
||
v_aspect1 := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr
|
||
INTO v_aspect1
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'ASPECT1'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde ASPECT2 van lopende melding';
|
||
v_aspect2 := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr
|
||
INTO v_aspect2
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'ASPECT2'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde ASPECT3 van lopende melding';
|
||
v_aspect3 := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr
|
||
INTO v_aspect3
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'ASPECT3'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde ASPECT4 van lopende melding';
|
||
v_aspect4 := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr
|
||
INTO v_aspect4
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'ASPECT4'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde ASPECT5 van lopende melding';
|
||
v_aspect5 := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr
|
||
INTO v_aspect5
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'ASPECT5'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde ASPECT6 van lopende melding';
|
||
v_aspect6 := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr
|
||
INTO v_aspect6
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'ASPECT6'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde ASPECT7 van lopende melding';
|
||
v_aspect7 := '';
|
||
|
||
SELECT ud.fac_usrdata_omschr
|
||
INTO v_aspect7
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'ASPECT7'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde FOTO van lopende melding';
|
||
v_foto := '';
|
||
-- v_foto_kenmerk_key;
|
||
|
||
SELECT max(km.mld_kenmerkmelding_waarde)
|
||
INTO v_foto
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = v_mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'FOTONAAM');
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde KOSTEN van lopende melding';
|
||
v_kosten := '';
|
||
|
||
SELECT max(km.mld_kenmerkmelding_waarde)
|
||
INTO v_kosten
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = v_mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'KOSTEN');
|
||
|
||
--
|
||
v_errorhint := 'Vullen huidige waarde PLANDATUM van lopende melding';
|
||
|
||
SELECT max(mld_melding_einddatum)
|
||
INTO v_plandatum_date
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
-- flex1
|
||
v_errorhint := 'Vullen huidige waarde DIENST van lopende melding';
|
||
v_dienst := '';
|
||
|
||
SELECT max(d.prs_dienst_omschrijving)
|
||
INTO v_dienst
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk, fac_kenmerkdomein kd, prs_dienst d
|
||
WHERE km.mld_melding_key = v_mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_code = 'DIENST'
|
||
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
||
AND kd.fac_kenmerkdomein_objectnaam = 'PRS_DIENST'
|
||
AND d.prs_dienst_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_kenmerk_niveau = 'T' ;
|
||
|
||
SELECT max(k.mld_kenmerk_key)
|
||
INTO v_flex1_kenmerk_key
|
||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_niveau = 'T'
|
||
AND k.mld_stdmelding_key = fac.getsetting ('cnd_gebreken_srtdisc_key')
|
||
AND sk.mld_srtkenmerk_code = 'DIENST' ;
|
||
|
||
-- flex2
|
||
v_errorhint := 'Vullen huidige waarde TAAKGROEP van lopende melding';
|
||
v_taakgroep := '';
|
||
|
||
SELECT max(ud.fac_usrdata_omschr)
|
||
INTO v_taakgroep
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km
|
||
WHERE sk.mld_srtkenmerk_code = 'TAAKGROEP'
|
||
-- sk.mld_srtkenmerk_key = (DISTINCT(select fac.safe_to_number(substr(flex2, 1, INSTR(flex2,'|')-1))) -- DIT EVT NOG INPASSEN voor de FLEX5 t/m 9
|
||
-- from cnd_imp_nen2767_results where fac_import_key = p_import_key)
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_melding_key = v_mld_melding_key
|
||
AND k.mld_kenmerk_niveau = 'T';
|
||
|
||
SELECT max(k.mld_kenmerk_key)
|
||
INTO v_flex2_kenmerk_key
|
||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_niveau = 'T'
|
||
AND k.mld_stdmelding_key = fac.getsetting ('cnd_gebreken_srtdisc_key')
|
||
AND sk.mld_srtkenmerk_code = 'TAAKGROEP' ;
|
||
|
||
-- flex3
|
||
v_errorhint := 'Vullen huidige waarde DATUMGEREEDINSPECTEUR van lopende melding';
|
||
v_datumgereedinspecteur := '';
|
||
|
||
SELECT max(km.mld_kenmerkmelding_waarde)
|
||
INTO v_datumgereedinspecteur
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = v_mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'DATUMGEREEDINSPECTEUR');
|
||
|
||
SELECT max(k.mld_kenmerk_key)
|
||
INTO v_flex3_kenmerk_key
|
||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_niveau = 'T'
|
||
AND k.mld_stdmelding_key = fac.getsetting ('cnd_gebreken_srtdisc_key')
|
||
AND sk.mld_srtkenmerk_code = 'DATUMGEREEDINSPECTEUR' ;
|
||
|
||
-- flex4
|
||
v_errorhint := 'Vullen huidige waarde GEADVISEERDSTARTJAAR van lopende melding';
|
||
v_geadviseerdstartjaar := '';
|
||
|
||
SELECT max(km.mld_kenmerkmelding_waarde)
|
||
INTO v_geadviseerdstartjaar
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = v_mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'GEADVISEERDSTARTJAAR');
|
||
|
||
SELECT max(k.mld_kenmerk_key)
|
||
INTO v_flex4_kenmerk_key
|
||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_niveau = 'T'
|
||
AND k.mld_stdmelding_key = fac.getsetting ('cnd_gebreken_srtdisc_key')
|
||
AND sk.mld_srtkenmerk_code = 'GEADVISEERDSTARTJAAR' ;
|
||
|
||
-- Conditiescore
|
||
v_errorhint := 'Vullen huidige waarde CONDITIESCORE van lopende melding';
|
||
v_conditiescore := '';
|
||
|
||
SELECT max(km.mld_kenmerkmelding_waarde)
|
||
INTO v_conditiescore
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = v_mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'CONDITIESCORE');
|
||
|
||
-- Prioriteitsscore
|
||
v_errorhint := 'Vullen huidige waarde PRIORITEITS-SCORE van lopende melding';
|
||
v_prioscore := '';
|
||
|
||
SELECT max(km.mld_kenmerkmelding_waarde)
|
||
INTO v_prioscore
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = v_mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = (SELECT MAX (mld_srtkenmerk_key) FROM mld_srtkenmerk WHERE mld_srtkenmerk_code = 'PRIORITEITSCORE');
|
||
|
||
--
|
||
v_errorhint := 'Bepalen STATUS van lopende melding';
|
||
v_mld_melding_status := '';
|
||
|
||
SELECT max(mld_melding_status)
|
||
INTO v_mld_melding_status
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
--
|
||
v_errorhint := 'Bepalen INSPECTEUR / AANVRAGER van lopende melding';
|
||
v_inspecteur := '';
|
||
|
||
SELECT p.prs_perslid_email
|
||
INTO v_inspecteur
|
||
FROM mld_melding m, prs_perslid p
|
||
WHERE m.prs_perslid_key = p.prs_perslid_key
|
||
AND mld_melding_key = v_mld_melding_key ;
|
||
|
||
--
|
||
v_errorhint := 'Bepalen BEHANDELAAR van lopende melding';
|
||
v_behandelaar := '';
|
||
|
||
SELECT max(p.prs_perslid_email)
|
||
INTO v_behandelaar
|
||
FROM mld_melding m, prs_perslid p
|
||
WHERE m.mld_melding_behandelaar_key = p.prs_perslid_key
|
||
AND mld_melding_key = v_mld_melding_key ;
|
||
|
||
|
||
-- Alles gevuld. Nu alle meldingsvelden updaten als REC-waarde gevuld is en als deze afwijkt van de huidige waarde
|
||
v_herberekenen:=0;
|
||
|
||
-- Omschrijving melding - Opmerking melding
|
||
v_errorhint := 'Aanpassen opmerking bij melding';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Omschrijving aangevuld met: ' || rec.mld_melding_omschrijving ;
|
||
|
||
IF v_mld_melding_omschrijving <> rec.mld_melding_omschrijving AND rec.mld_melding_omschrijving IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE mld_melding
|
||
SET mld_melding_omschrijving = v_mld_melding_omschrijving || CHR (13) || CHR(13) || CHR (10) || to_char(sysdate,'DD-MM-YYYY') || ':' || CHR(13) || CHR (10) || rec.mld_melding_omschrijving
|
||
WHERE mld_melding_key = v_mld_melding_key;
|
||
|
||
END IF;
|
||
|
||
-- Omvang
|
||
v_errorhint := 'Aanpassen Omvang kenmerk';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Omvang: (' || v_omvang || ') --> ' || rec.omvang ;
|
||
|
||
IF rec.omvang IS NOT NULL AND v_omvang <> rec.omvang
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_omvang_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_omvang_key);
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
v_errorhint := 'Aanpassen Intensiteit kenmerk';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Intensiteit: (' || v_intensiteit || ') --> ' || rec.intensiteit ;
|
||
|
||
IF rec.intensiteit IS NOT NULL AND v_intensiteit <> rec.intensiteit
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_intensiteit_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_intensiteit_key);
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Aspect 1
|
||
v_errorhint := 'Aanpassen aspectwaarde 1';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect1: (' || v_aspect1 || ') --> ' || rec.aspect1 ;
|
||
|
||
IF NOT(rec.aspect1 = 'NVT') AND v_aspect1 <> rec.aspect1 AND NOT(INSTR(v_aspect1,'NVT')>0 AND INSTR(rec.aspect1,'NVT')>0)
|
||
THEN
|
||
IF rec.aspect1 = '0 - NVT' THEN
|
||
set_aspect ('ASPECT1', 'NVT', v_mld_melding_key);
|
||
ELSE
|
||
set_aspect ('ASPECT1', rec.aspect1, v_mld_melding_key);
|
||
END IF;
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Aspect 2
|
||
v_errorhint := 'Aanpassen aspectwaarde 2';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect2: (' || v_aspect2 || ') --> ' || rec.aspect2 ;
|
||
|
||
IF NOT(rec.aspect2 = 'NVT') AND v_aspect2 <> rec.aspect2 AND NOT(INSTR(v_aspect2,'NVT')>0 AND INSTR(rec.aspect2,'NVT')>0)
|
||
THEN
|
||
IF rec.aspect2 = '0 - NVT' THEN
|
||
set_aspect ('ASPECT2', 'NVT', v_mld_melding_key);
|
||
ELSE
|
||
set_aspect ('ASPECT2', rec.aspect2, v_mld_melding_key);
|
||
END IF;
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Aspect 3
|
||
v_errorhint := 'Aanpassen aspectwaarde 3';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect3: (' || v_aspect3 || ') --> ' || rec.aspect3 ;
|
||
|
||
IF NOT(rec.aspect3 = 'NVT') AND v_aspect3 <> rec.aspect3 AND NOT(INSTR(v_aspect3,'NVT')>0 AND INSTR(rec.aspect3,'NVT')>0)
|
||
THEN
|
||
IF rec.aspect3 = '0 - NVT' THEN
|
||
set_aspect ('ASPECT3', 'NVT', v_mld_melding_key);
|
||
ELSE
|
||
set_aspect ('ASPECT3', rec.aspect3, v_mld_melding_key);
|
||
END IF;
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Aspect 4
|
||
v_errorhint := 'Aanpassen aspectwaarde 4';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect4: (' || v_aspect4 || ') --> ' || rec.aspect4 ;
|
||
|
||
IF NOT(rec.aspect4 = 'NVT') AND v_aspect4 <> rec.aspect4 AND NOT(INSTR(v_aspect4,'NVT')>0 AND INSTR(rec.aspect4,'NVT')>0)
|
||
THEN
|
||
IF rec.aspect4 = '0 - NVT' THEN
|
||
set_aspect ('ASPECT4', 'NVT', v_mld_melding_key);
|
||
ELSE
|
||
set_aspect ('ASPECT4', rec.aspect4, v_mld_melding_key);
|
||
END IF;
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Aspect 5
|
||
v_errorhint := 'Aanpassen aspectwaarde 5';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect5: (' || v_aspect5 || ') --> ' || rec.aspect5 ;
|
||
|
||
IF NOT(rec.aspect5 = 'NVT') AND v_aspect5 <> rec.aspect5 AND NOT(INSTR(v_aspect5,'NVT')>0 AND INSTR(rec.aspect5,'NVT')>0)
|
||
THEN
|
||
IF rec.aspect5 = '0 - NVT' THEN
|
||
set_aspect ('ASPECT5', 'NVT', v_mld_melding_key);
|
||
ELSE
|
||
set_aspect ('ASPECT5', rec.aspect5, v_mld_melding_key);
|
||
END IF;
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Aspect 6
|
||
v_errorhint := 'Aanpassen aspectwaarde 6';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect6: (' || v_aspect6 || ') --> ' || rec.aspect6 ;
|
||
|
||
IF NOT(rec.aspect6 = 'NVT') AND v_aspect6 <> rec.aspect6 AND NOT(INSTR(v_aspect6,'NVT')>0 AND INSTR(rec.aspect6,'NVT')>0)
|
||
THEN
|
||
IF rec.aspect6 = '0 - NVT' THEN
|
||
set_aspect ('ASPECT6', 'NVT', v_mld_melding_key);
|
||
ELSE
|
||
set_aspect ('ASPECT6', rec.aspect6, v_mld_melding_key);
|
||
END IF;
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Aspect 7
|
||
v_errorhint := 'Aanpassen aspectwaarde 7';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Aspect7: (' || v_aspect7 || ') --> ' || rec.aspect7 ;
|
||
|
||
IF NOT(rec.aspect7 = 'NVT') AND v_aspect7 <> rec.aspect7 AND NOT(INSTR(v_aspect7,'NVT')>0 AND INSTR(rec.aspect7,'NVT')>0)
|
||
THEN
|
||
IF rec.aspect7 = '0 - NVT' THEN
|
||
set_aspect ('ASPECT7', 'NVT', v_mld_melding_key);
|
||
ELSE
|
||
set_aspect ('ASPECT7', rec.aspect7, v_mld_melding_key);
|
||
END IF;
|
||
|
||
v_herberekenen:=1;
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint := 'Aanpassen Foto kenmerk';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Fotonaam: (' || v_foto || ') --> ' || rec.foto ;
|
||
|
||
IF rec.foto IS NOT NULL AND COALESCE(v_foto, '<leeg>') <> rec.foto AND v_foto_kenmerk_key IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_foto_kenmerk_key,
|
||
v_mld_melding_key,
|
||
rec.foto);
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint := 'Aanpassen Kosten kenmerk';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Kosten: (' || v_kosten || ') --> ' || rec.kosten ;
|
||
|
||
IF rec.kosten IS NOT NULL AND COALESCE(fac.safe_to_number(v_kosten), -1) <> rec.kosten AND v_kosten_kenmerk_key IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_kosten_kenmerk_key,
|
||
v_mld_melding_key,
|
||
TO_CHAR(rec.kosten));
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Plandatum
|
||
v_errorhint := 'Aanpassen Plandatum';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Plandatum: (' || TO_CHAR(v_plandatum_date) || ') --> ' || TO_CHAR(rec.plandatum) ;
|
||
|
||
IF rec.plandatum IS NOT NULL AND v_plandatum_date <> rec.plandatum
|
||
THEN
|
||
UPDATE mld_melding
|
||
SET mld_melding_einddatum = rec.plandatum
|
||
WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- flex1
|
||
v_errorhint := 'Aanpassen Dienst (Flex1)';
|
||
v_flex1_waarde := substr(rec.flex1,instr(rec.flex1,'=')+1,length(rec.flex1)-instr(rec.flex1,'='));
|
||
v_flex1_waarde_key := NULL;
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Dienst: (' || v_dienst || ') --> ' || v_flex1_waarde ;
|
||
|
||
IF v_flex1_waarde IS NOT NULL AND COALESCE(v_dienst,'<leeg>') <> v_flex1_waarde AND v_flex1_kenmerk_key IS NOT NULL
|
||
THEN
|
||
SELECT max(prs_dienst_key)
|
||
INTO v_flex1_waarde_key
|
||
FROM prs_dienst
|
||
WHERE UPPER(prs_dienst_omschrijving) = UPPER(v_flex1_waarde);
|
||
|
||
IF v_flex1_waarde_key IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_flex1_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_flex1_waarde_key);
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
END IF;
|
||
|
||
-- flex2
|
||
v_errorhint := 'Aanpassen Taakgroep (Flex2)';
|
||
v_flex2_waarde := substr(rec.flex2,instr(rec.flex2,'=')+1,length(rec.flex2)-instr(rec.flex2,'='));
|
||
v_flex2_waarde_key := NULL;
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Taakgroep: (' || v_taakgroep || ') --> ' || v_flex2_waarde ;
|
||
|
||
IF v_flex2_waarde IS NOT NULL AND COALESCE(v_taakgroep,'<leeg>') <> v_flex2_waarde AND v_flex2_kenmerk_key IS NOT NULL
|
||
THEN
|
||
SELECT ud.fac_usrdata_key
|
||
INTO v_flex2_waarde_key
|
||
FROM mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud,
|
||
mld_kenmerk k
|
||
WHERE sk.mld_srtkenmerk_code = 'TAAKGROEP'
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_niveau = 'T'
|
||
AND ud.fac_usrdata_upper = UPPER(v_flex2_waarde);
|
||
|
||
IF v_flex2_waarde_key IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_flex2_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_flex2_waarde_key);
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
END IF;
|
||
|
||
-- flex3
|
||
v_errorhint := 'Aanpassen DatumGereedInspecteur (Flex3)';
|
||
v_flex3_waarde := substr(rec.flex3,instr(rec.flex3,'=')+1,length(rec.flex3)-instr(rec.flex3,'='));
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Datum gereed (inspecteur): (' || v_datumgereedinspecteur || ') --> ' || v_flex3_waarde ;
|
||
|
||
IF v_flex3_waarde IS NOT NULL AND (fac.safe_to_date (v_flex3_waarde, 'dd-mm-yyyy') IS NOT NULL) AND (COALESCE(v_datumgereedinspecteur,'<leeg>') <> v_flex3_waarde) AND v_flex3_kenmerk_key IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_flex3_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_flex3_waarde);
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- flex4
|
||
v_errorhint := 'Aanpassen Geadviseerd Startjaar (Flex4)';
|
||
v_flex4_waarde := substr(rec.flex4,instr(rec.flex4,'=')+1,length(rec.flex4)-instr(rec.flex4,'='));
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Startjaar: (' || v_geadviseerdstartjaar || ') --> ' || v_flex4_waarde ;
|
||
|
||
IF v_flex4_waarde IS NOT NULL AND COALESCE(v_geadviseerdstartjaar,'<leeg>') <> v_flex4_waarde AND v_flex4_kenmerk_key IS NOT NULL
|
||
THEN
|
||
mld.upsertmeldingkenmerk (v_flex4_kenmerk_key,
|
||
v_mld_melding_key,
|
||
v_flex4_waarde);
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
-- Inspecteur
|
||
v_errorhint := 'Aanpassen Inspecteur / Aanvrager';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Inspecteur: (' || v_inspecteur || ') --> ' || rec.prs_perslid_email ;
|
||
|
||
IF (rec.prs_perslid_email IS NOT NULL OR LENGTH (rec.prs_perslid_email) > 200) AND COALESCE(v_inspecteur, '<leeg>') <> rec.prs_perslid_email
|
||
THEN
|
||
|
||
SELECT prs_perslid_key
|
||
INTO v_prs_perslid_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE UPPER (prs_perslid_email) = UPPER (rec.prs_perslid_email);
|
||
|
||
IF v_prs_perslid_key IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE mld_melding
|
||
SET prs_perslid_key = v_prs_perslid_key, prs_perslid_key_voor = v_prs_perslid_key
|
||
WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Behandelaar
|
||
v_errorhint := 'Aanpassen Behandelaar';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is gewijzigd via upload gebreken:' || CHR(13) || CHR(10) || 'Behandelaar: (' || v_behandelaar || ') --> ' || rec.flex9 ;
|
||
|
||
IF rec.flex9 IS NOT NULL AND COALESCE(v_behandelaar, '<leeg>') <> rec.flex9
|
||
THEN
|
||
|
||
SELECT max(prs_perslid_key)
|
||
INTO v_prs_behandelaar_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE UPPER (prs_perslid_email) = UPPER (rec.flex9);
|
||
|
||
IF v_prs_behandelaar_key IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE mld_melding
|
||
SET mld_melding_behandelaar_key = v_prs_behandelaar_key
|
||
WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
END IF;
|
||
|
||
|
||
-- Her-berekenen van de Conditie- en Prioriteitscore
|
||
---- Alleen als de melding status lopend heeft..
|
||
---- Alleen als de omvang, intensiteit of 1 vd aspectwaarden is veranderd..
|
||
v_errorhint := 'Herberekenen conditie- en prio-score';
|
||
v_aanduiding := 'Melding N' || TO_CHAR(v_mld_melding_key) || ' is herberekend via upload gebreken:' || CHR(13) || CHR(10) || 'Oorspronkelijke conditiescore: ' || TO_CHAR(v_conditiescore) || CHR(13) || CHR(10) || 'Oorspronkelijke prioriteitscore: ' || TO_CHAR(v_prioscore) ;
|
||
|
||
IF v_mld_melding_status IN (0,4,7,99) AND v_herberekenen=1
|
||
THEN
|
||
|
||
BEGIN
|
||
cnd.process_mjb_score_effects (v_mld_melding_key);
|
||
END;
|
||
COMMIT;
|
||
|
||
fac.trackaction ('MLDUPD', v_mld_melding_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding);
|
||
END IF;
|
||
|
||
v_count_import := v_count_import + 1;
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'UPDATE NEN2767_RESULTS: aantal regels te verwerken: '
|
||
|| TO_CHAR (v_count_tot)
|
||
|| ' / aantal geldige regels: '
|
||
|| TO_CHAR (v_count_import)
|
||
|| ' / aantal BIJGEWERKTE, BESTAANDE gebreken: '
|
||
|| TO_CHAR (v_count_tot_n)
|
||
,
|
||
'');
|
||
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',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END aaxx_update_nen2767_assetman;
|
||
/
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- GRANTS naar AAFM database.
|
||
-------------------------------------------------------------------------------
|
||
GRANT SELECT ON aaxx_v_dwh_prs_bedrijf TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_prs_bedrijfadres TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_cnt_contract TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_cnt_contract_scope TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_cnt_contract_mantel TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_cnt_factuurschema TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_contract TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_mld_stdmelding TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_mld_melding TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_res_reservering TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_bes_bestelling TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_bez_bezoekers TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_melding TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_opdracht TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_reservering TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_bestelling TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_fin_factuur TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_prs_kostenplaats TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_prs_kostensoort TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_prs_perslid TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_fac_groeprechten TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_prs_afdeling TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_prs TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_alg_onrgoed TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_onrgoed TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_ins_sensor_status TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_inspectie TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_inspectie_2 TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_ins_object TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_object TO AAFM;
|
||
GRANT SELECT ON aaxx_v_dwh_kenmerk_inspectie TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_uren TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_uren_improd TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_tracking TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_faq TO aafm;
|
||
GRANT SELECT ON aaxx_v_dwh_budget_tracker TO aafm;
|
||
GRANT SELECT ON AAXX_V_DWH_GUI_COUNTER TO aafm;
|
||
GRANT SELECT ON AAXX_V_DWH_FAQ2 TO aafm;
|
||
|
||
-- views tbv user telling
|
||
GRANT SELECT ON aaxx_v_lcrap_key_stats TO aafm;
|
||
GRANT SELECT ON fac_v_lcrap_fe_vs_key TO aafm;
|
||
|
||
GRANT SELECT ON aaxx_exp_uren_dekking TO aait;
|
||
|
||
|
||
------ payload end ------
|
||
|
||
SET DEFINE OFF
|
||
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
||
/
|
||
|
||
COMMIT;
|
||
SET ECHO OFF
|
||
SPOOL OFF
|
||
SET DEFINE ON
|
||
PROMPT Logfile of this upgrade is: &fcltlogfile |