2860 lines
117 KiB
SQL
2860 lines
117 KiB
SQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific configuration sql statements for RABO: Rabobank
|
||
|
||
DEFINE thisfile = 'RABO.SQL'
|
||
DEFINE dbuser = '^RABO'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
||
SPOOL &fcltlogfile
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
---------------------------------------
|
||
PROMPT &fcltcusttxt
|
||
---------------------------------------
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
-- export overrules
|
||
-- exact
|
||
-- Leverancier overrulles
|
||
|
||
-- exact verkoop voor Vast/Variabele opdrachten (ticket 65680)
|
||
CREATE OR REPLACE VIEW rabo_v_export_exact_vastvar_b
|
||
AS
|
||
SELECT TO_CHAR (o.mld_opdr_datumbegin, 'YYYY') opdr_jaar,
|
||
o.mld_opdr_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
o.mld_melding_key,
|
||
o.mld_statusopdr_key,
|
||
o.mld_opdr_kosten,
|
||
o.prs_kostenplaats_key,
|
||
kp.prs_kostenplaats_nr,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| TO_CHAR (o.mld_melding_key)
|
||
|| '/'
|
||
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
||
|| ' '
|
||
|| md.ins_discipline_omschrijving
|
||
|| ' ('
|
||
|| (SELECT MAX (mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 55 -- projectnaam
|
||
AND km.mld_melding_key = m.mld_melding_key)
|
||
|| ')'
|
||
fin_verkoopfactuur_oms,
|
||
COALESCE (ks2.prs_kostensoort_upper, ks1.prs_kostensoort_upper)
|
||
prs_kostensoort_oms,
|
||
COALESCE (ks2.prs_kostensoort_opmerking,
|
||
ks1.prs_kostensoort_opmerking)
|
||
prs_kostensoort_opmerking,
|
||
b.prs_bedrijf_key,
|
||
aaxx_get_dep_code (kp.prs_kostenplaats_nr)
|
||
prs_debiteur_naam,
|
||
DECODE(sd.ins_srtdiscipline_prefix, 'PR', 'Projecten', 'Servicekosten ' || aaxx_get_dep_code(kp.prs_kostenplaats_nr))
|
||
prs_kostensoortgrp_oms,
|
||
'5'
|
||
fin_btwtabelwaarde_code,
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'YYYY')
|
||
fin_verkoopfactuur_maand,
|
||
m.mld_alg_locatie_key
|
||
fin_verkoopfactuur_n1, -- volgnr
|
||
aaxx_get_top_bedrijf_key (kp.prs_kostenplaats_nr)
|
||
fin_verkoopfactuur_n2, -- N2 bedrijfskey van de hoogste afdeling
|
||
COALESCE (exact.exact_code, g.alg_gebouw_code)
|
||
fin_verkoopfactuur_c1,
|
||
aaxx_get_dep_code (kp.prs_kostenplaats_nr)
|
||
|| DECODE (
|
||
COALESCE (ks2.prs_kostensoort_upper,
|
||
ks1.prs_kostensoort_upper),
|
||
'NC PROJ', m.mld_melding_key)
|
||
fin_verkoopfactuur_c2,
|
||
(SELECT MAX (f.fin_verkoopfactuur_datum)
|
||
FROM fin_verkoopfactuur f
|
||
WHERE f.fin_verkoopfactuur_refkey = o.mld_opdr_key
|
||
AND f.fin_verkoopfactuur_datum IS NOT NULL)
|
||
verwerkt_exact
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
prs_kostenplaats kp,
|
||
prs_kostensoort ks2,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
prs_kostensoort ks1,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
prs_bedrijf b,
|
||
alg_v_onroerendgoed og,
|
||
alg_gebouw g,
|
||
aaxx_v_exact_code_gebouw exact
|
||
WHERE o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_upper = 'VAST/VARIABEL'
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
||
AND og.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND og.alg_gebouw_key = exact.alg_gebouw_key(+)
|
||
AND o.prs_kostensoort_key = ks2.prs_kostensoort_key(+)
|
||
AND sm.prs_kostensoort_key = ks1.prs_kostensoort_key(+) ;
|
||
|
||
CREATE OR REPLACE PROCEDURE rabo_select_exact_vastvar (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_opdr_jaar IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM rabo_v_export_exact_vastvar_b
|
||
WHERE mld_statusopdr_key = 9 AND mld_opdr_kosten > 0 AND opdr_jaar = p_opdr_jaar AND verwerkt_exact IS NULL ;
|
||
|
||
v_order_count NUMBER;
|
||
v_amount_sum NUMBER(10,2);
|
||
v_count NUMBER;
|
||
v_logdate DATE;
|
||
|
||
BEGIN
|
||
|
||
-- Eerst opruiming
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
-- verwijder niet verwerkte regels uit de verkoopfactuur tabel
|
||
DELETE fin_verkoopfactuur
|
||
WHERE fin_verkoopfactuur_c4 = 'Verkoopfactuur_VASTVAR'
|
||
AND fin_verkoopfactuur_datum IS NULL;
|
||
|
||
v_order_count := 0;
|
||
v_amount_sum := 0;
|
||
v_logdate := SYSDATE;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
|
||
-- Vul de verkoopfactuurtabel met de nieuwe records
|
||
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuur_id,
|
||
fin_verkoopfactuur_aanmaak,
|
||
fin_verkoopfactuur_omschr,
|
||
fin_verkoopfactuur_xmlnode,
|
||
fin_verkoopfactuur_refkey,
|
||
prs_kostenplaats_nr,
|
||
prs_kostensoort_oms,
|
||
prs_kostensoort_opmerking,
|
||
prs_bedrijf_key,
|
||
prs_debiteur_naam,
|
||
prs_kostensoortgrp_oms,
|
||
fin_verkoopfactuur_bedrag,
|
||
fin_verkoopfactuur_btw,
|
||
fin_btwtabelwaarde_code,
|
||
fin_btwtabelwaarde_perc,
|
||
fin_verkoopfactuur_maand,
|
||
fin_verkoopfactuur_n1,
|
||
fin_verkoopfactuur_n2,
|
||
fin_verkoopfactuur_c1,
|
||
fin_verkoopfactuur_c2,
|
||
fin_verkoopfactuur_c4)
|
||
VALUES (
|
||
TO_CHAR (SYSDATE, 'dd-mm-yyyy') || ' O' || rec.mld_melding_key || '/' || rec.mld_opdr_bedrijfopdr_volgnr,
|
||
v_logdate,
|
||
rec.fin_verkoopfactuur_oms, -- vb SA124461/2 Gebouwonderhoud (loodgieter) (projectnaam)
|
||
'opdracht',
|
||
rec.mld_opdr_key,
|
||
rec.prs_kostenplaats_nr, -- kostenplaatsnr...
|
||
'VAST VARIABEL UREN', -- oms_exact = kostensoort_code maar voor VAST_VAR moet dit vast code zijn
|
||
rec.prs_kostensoort_opmerking, -- code_exact = kostensoort_omschrijving
|
||
rec.prs_bedrijf_key,
|
||
rec.prs_debiteur_naam,
|
||
rec.prs_kostensoortgrp_oms,
|
||
rec.mld_opdr_kosten, -- Geen "aaxx_imp_uplift"
|
||
NULL, -- Geen ROUND (bedrag * (fin_btwtabelwaarde_perc / 100), 2),
|
||
rec.fin_btwtabelwaarde_code,
|
||
NULL, -- Geen fin_btwtabelwaarde_perc,
|
||
rec.fin_verkoopfactuur_maand, -- Voor OPDR is dit JAAR opdrachtdatum
|
||
rec.fin_verkoopfactuur_n1, -- volgorde
|
||
rec.fin_verkoopfactuur_n2, -- bedrijfskey van de hoogste afdeling
|
||
rec.fin_verkoopfactuur_c1,
|
||
rec.fin_verkoopfactuur_c2,
|
||
'Verkoopfactuur_VASTVAR' -- C4
|
||
);
|
||
|
||
v_order_count := v_order_count + 1 ;
|
||
v_amount_sum := v_amount_sum + rec.mld_opdr_kosten;
|
||
|
||
-- Door Facilitor (4)
|
||
-- tracking toevoegen aan Opdracht
|
||
fac.trackaction ('#ORDUPD', rec.mld_opdr_key, 4, NULL, 'Verkoopfactuur ingeboekt');
|
||
|
||
-- status opdracht aanpassen naar vewerkt
|
||
mld.setopdrachtstatus(rec.mld_opdr_key, 7, 4);
|
||
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
fac.writelog (p_applname, 'S', 'Exact export Opdrachten Vast/Variabel ten behoeve van verkoopinterface. Aantal facturen: ' || v_order_count || ' Totaal bedrag: ' || v_amount_sum, '');
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
-- exact verkoop
|
||
CREATE OR REPLACE VIEW rabo_v_export_exact_verkoop (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
|
||
CREATE OR REPLACE PROCEDURE rabo_select_exact_verkoop (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
rabo_select_exact_vastvar(p_applname, p_applrun, to_char(sysdate, 'yyyy'));
|
||
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(sysdate, 'yyyy'));
|
||
END;
|
||
/
|
||
CREATE OR REPLACE PROCEDURE rabo_export_exact_verkoop (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'));
|
||
END;
|
||
/
|
||
|
||
-- exact verkoop over het vorige jaar
|
||
CREATE OR REPLACE VIEW rabo_v_export_exact_verkoop_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
|
||
CREATE OR REPLACE PROCEDURE rabo_select_exact_verkoop_vj (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
rabo_select_exact_vastvar(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1));
|
||
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1));
|
||
END;
|
||
/
|
||
CREATE OR REPLACE PROCEDURE rabo_export_exact_verkoop_vj (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(to_number(to_char(sysdate, 'yyyy'))-1));
|
||
END;
|
||
/
|
||
|
||
-- exact projecturen (XML)
|
||
CREATE OR REPLACE VIEW rabo_v_export_exact_uren (result, result_order)
|
||
AS SELECT result, result_order FROM aaxx_v_export_exact_uren_xml;
|
||
CREATE OR REPLACE PROCEDURE rabo_select_exact_uren (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_select_exact_uren_xml(p_applname, p_applrun, '');
|
||
END;
|
||
/
|
||
|
||
-- verwerk exact projecturen (XML)
|
||
CREATE OR REPLACE PROCEDURE rabo_export_verwerk_exact_uren (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_verwerk_exact_uren(p_applname, p_applrun, p_filedir, p_filename, '');
|
||
END;
|
||
/
|
||
|
||
|
||
-- bundel catering
|
||
CREATE OR REPLACE VIEW rabo_v_export_bundel_catering (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_bundel_catering;
|
||
CREATE OR REPLACE PROCEDURE rabo_export_bundel_catering (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_bundel_catering(p_applname, p_applrun, p_filedir, p_filename);
|
||
END;
|
||
/
|
||
|
||
|
||
-- script om dagelijks terugkerende scripts aan te roepen.
|
||
CREATE OR REPLACE PROCEDURE rabo_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT ins_deel_omschrijving,
|
||
ins_deel_mjb_score1,
|
||
ins_deel_mjb_score2,
|
||
ins_srtcontroledl_xcp_key,
|
||
(SELECT ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE kd.ins_deel_key = d.ins_deel_key
|
||
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.ins_srtkenmerk_omschrijving = 'Kritische asset')
|
||
kritisch,
|
||
(SELECT TO_CHAR (ins_deelsrtcontrole_datum_org, 'YYYY')
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE dsc.ins_deel_key = d.ins_deel_key
|
||
AND dsc.ins_srtcontrole_key = x.ins_srtcontrole_key
|
||
AND dsc.ins_deelsrtcontrole_status = 0)
|
||
orgdatum,
|
||
COALESCE (fac.nextcyclusdate (
|
||
COALESCE (
|
||
(SELECT MAX (ins_deelsrtcontrole_datum)
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE ins_deelsrtcontrole_status <> 0
|
||
AND dsc.ins_deel_key =
|
||
d.ins_deel_key
|
||
AND dsc.ins_srtcontrole_key =
|
||
x.ins_srtcontrole_key),
|
||
DECODE (x.ins_srtcontroledl_xcp_startdat,
|
||
NULL, d.ins_deel_aanmaak,
|
||
TO_DATE (NULL))),
|
||
1, -- interval
|
||
ins_srtcontroledl_xcp_eenheid,
|
||
ins_srtcontroledl_xcp_periode,
|
||
ins_srtcontroledl_xcp_bits,
|
||
1,
|
||
1),
|
||
ins_srtcontroledl_xcp_startdat) volgende
|
||
FROM ins_deel d,
|
||
ins_srtcontroledl_xcp x,
|
||
ins_srtcontrole sc,
|
||
ctr_disc_params dp
|
||
WHERE d.ins_deel_key = x.ins_deel_key
|
||
AND x.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND sc.ctr_discipline_key = dp.ctr_ins_discipline_key
|
||
AND dp.ctr_disc_params_ismjob = 1;
|
||
|
||
v_prio NUMBER;
|
||
v_freeze VARCHAR2 (4);
|
||
|
||
BEGIN
|
||
|
||
-- Conditiescores worden vanaf 2020.1 in het proces berekend, per melding en ook direct naar het object.
|
||
-- Deze object-scores worden moeten vervolgens geagregeerd worden naar gebouw en locatieniveau. Doen we dagelijks dmv onderstaande procedure:
|
||
---- Call this procedure to update aggregate scores (for a location/building)
|
||
---- PROCEDURE update_aggr_scores (p_locatie_key IN NUMBER DEFAULT NULL, p_gebouw_key IN NUMBER DEFAULT NULL);
|
||
cnd.update_aggr_scores (NULL, NULL);
|
||
|
||
|
||
-- pas de urgentie bij de taken aan
|
||
SELECT fac.getSetting ('mjb_feeze_year')
|
||
INTO v_freeze
|
||
FROM DUAL;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
-- kritische installatie en planning dit jaar of vorig jaar niet uitgevoerd.
|
||
IF rec.kritisch = 1
|
||
AND (TO_CHAR (rec.volgende, 'yyyy') = v_freeze OR rec.orgdatum <= v_freeze)
|
||
THEN
|
||
v_prio := 3;
|
||
-- planning vorig jaar + storingshistorie
|
||
ELSIF rec.orgdatum < v_freeze
|
||
THEN
|
||
v_prio := 3;
|
||
--prioriteit < 4
|
||
ELSIF rec.ins_deel_mjb_score2 < 4 OR rec.ins_deel_mjb_score1 >= 4
|
||
THEN
|
||
v_prio := 3;
|
||
ELSIF rec.ins_deel_mjb_score2 < 7
|
||
THEN
|
||
v_prio := 2;
|
||
ELSE
|
||
v_prio := 1;
|
||
END IF;
|
||
|
||
UPDATE ins_srtcontroledl_xcp x
|
||
SET ins_srtcontroledl_xcp_prio = v_prio
|
||
WHERE x.ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
||
END LOOP;
|
||
|
||
aaxx_daily_task (p_applname, p_applrun);
|
||
END;
|
||
/
|
||
|
||
-- Bronview voor procedure rabo_select_status_axxerion
|
||
CREATE OR REPLACE VIEW rabo_v_status_axxerion
|
||
(
|
||
MLD_MELDING_KEY,
|
||
MLD_MELDING_EXTERNNR,
|
||
DATUM,
|
||
STATUS,
|
||
MLD_MELDING_EINDDATUM,
|
||
MLD_MELDING_OPMERKING,
|
||
MLD_MELDING_NOTITIE,
|
||
KOSTEN,
|
||
FIATTEUR,
|
||
DATUMFIAT,
|
||
VOLGORDE
|
||
)
|
||
AS
|
||
SELECT m.mld_melding_key,
|
||
m.mld_melding_externnr,
|
||
mn.mld_melding_note_aanmaak as datum,
|
||
'NOTE' status,
|
||
mld_melding_einddatum,
|
||
'' opmerking,
|
||
mn.mld_melding_note_omschrijving,
|
||
'' kosten,
|
||
'' fiatteur,
|
||
'' datumfiat,
|
||
2 volgorde
|
||
FROM mld_melding m, mld_melding_note mn
|
||
WHERE m.mld_melding_key = mn.mld_melding_key
|
||
AND mn.mld_melding_note_flag = 1 -- Alle notities zichtbaar voor aanvrager
|
||
AND m.mld_melding_externnr IS NOT NULL
|
||
UNION ALL
|
||
SELECT m.mld_melding_key,
|
||
mld_melding_externnr,
|
||
fac_tracking_datum
|
||
AS datum,
|
||
DECODE (sn.fac_srtnotificatie_code,
|
||
'MLDACP', 'ACCEPT',
|
||
'MLDREJ', 'REJECT',
|
||
'MLDAFM', 'CLOSE',
|
||
'MLDAFR', 'FINCLOSE',
|
||
'MLDUPD', 'UPDATE',
|
||
'Invalid')
|
||
status,
|
||
mld_melding_einddatum,
|
||
mld_melding_opmerking,
|
||
'' notitie,
|
||
DECODE (fac_srtnotificatie_code, 'MLDAFR', COALESCE(TO_CHAR(k.kosten), '0'),'') kosten,
|
||
DECODE (fac_srtnotificatie_code, 'MLDAFR', COALESCE(f.fiatteur,'geen fiattering'),'') fiatteur,
|
||
DECODE (fac_srtnotificatie_code, 'MLDAFR', COALESCE(TO_CHAR(f.datumfiat,'yyyy-mm-dd hh24:mi'),''),'') datumfiat,
|
||
DECODE (fac_srtnotificatie_code, 'MLDUPD', 1, 0)
|
||
volgorde
|
||
FROM fac_tracking t, fac_srtnotificatie sn, mld_melding m,
|
||
(SELECT mld_melding_key, SUM (mld_opdr_kosten) kosten
|
||
FROM mld_opdr o, mld_typeopdr ot
|
||
WHERE o.mld_typeopdr_key = ot.mld_typeopdr_key AND ot.mld_typeopdr_isofferte = 0
|
||
GROUP BY mld_melding_key) k,
|
||
(SELECT mld_melding_key, MAX (ft.fac_tracking_datum) AS datumfiat,MAX (prs_perslid_naam || '(' || prs_perslid_voornaam || ')') AS fiatteur
|
||
FROM mld_opdr o,
|
||
fac_tracking ft,
|
||
fac_srtnotificatie sn,
|
||
prs_perslid p
|
||
WHERE o.mld_opdr_key = ft.fac_tracking_refkey
|
||
AND ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND ft.prs_perslid_key = p.prs_perslid_key
|
||
AND sn.fac_srtnotificatie_code = 'ORDFOK'
|
||
GROUP BY mld_melding_key) f
|
||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND t.fac_tracking_refkey = m.mld_melding_key
|
||
AND m.mld_melding_key = k.mld_melding_key (+)
|
||
AND m.mld_melding_key = f.mld_melding_key (+)
|
||
AND m.mld_melding_externnr IS NOT NULL
|
||
AND ( sn.fac_srtnotificatie_code = 'MLDACP'
|
||
OR sn.fac_srtnotificatie_code = 'MLDREJ'
|
||
OR sn.fac_srtnotificatie_code = 'MLDAFM'
|
||
OR sn.fac_srtnotificatie_code = 'MLDAFR'
|
||
OR sn.fac_srtnotificatie_code = 'MLDUPD') ;
|
||
|
||
CREATE OR REPLACE VIEW rabo_v_export_status_axxerion (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = SUBSTR ('STATUS_AXXERION', 1, 12);
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE rabo_select_status_axxerion (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
CURSOR c (
|
||
p_from DATE,
|
||
p_to DATE)
|
||
IS
|
||
SELECT *
|
||
FROM rabo_v_status_axxerion
|
||
WHERE datum BETWEEN p_from AND p_to
|
||
ORDER BY mld_melding_externnr, volgorde, datum;
|
||
|
||
v_from DATE;
|
||
v_to DATE;
|
||
v_count NUMBER;
|
||
v_externnr VARCHAR2 (10);
|
||
v_bestand VARCHAR2 (100);
|
||
v_empty NUMBER;
|
||
v_mld_melding_key NUMBER (10);
|
||
|
||
|
||
BEGIN
|
||
v_count := 0;
|
||
v_empty := 1;
|
||
v_externnr := '9999';
|
||
v_bestand := SUBSTR (p_applname, 1, 12);
|
||
|
||
-- de laatste synchronisatietijd wordt opgeslagen in fac_rapport met een speciale node naam eindigend op een 1.
|
||
-- mocht deze niet gevuld zijn (initieel) dan gebruiken we het huidige uur.
|
||
BEGIN
|
||
SELECT fac.safe_to_date (fac_rapport_regel, 'yyyy-mm-dd hh24:mi')
|
||
INTO v_from
|
||
FROM fac_rapport
|
||
WHERE SUBSTR (v_bestand, 1, 11) || '1' = fac_rapport_node;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_from := TRUNC (SYSDATE, 'HH24');
|
||
END;
|
||
|
||
-- het einde van de periode mag niet verder liggen dan de huidige tijd
|
||
v_to := v_from + 1 / (24 * 4);
|
||
|
||
IF v_to > SYSDATE
|
||
THEN
|
||
v_to := v_from;
|
||
END IF;
|
||
|
||
-- Eerst opruiming
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
|
||
-- als de export een tijdje niet gedraaid is dan halen we dit weer in door de periode groter te maken.
|
||
WHILE v_to + 1 / (24 * 4) < SYSDATE AND v_count < 10
|
||
LOOP
|
||
v_to := v_to + 1 / (24 * 4);
|
||
v_count := v_count + 1;
|
||
END LOOP;
|
||
|
||
-- header
|
||
aaxx_add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
|
||
aaxx_add_xml_row (v_bestand, '<facilitor>');
|
||
aaxx_add_xml_row (v_bestand, '<meldingstatusses>');
|
||
|
||
FOR rec IN c (v_from, v_to)
|
||
LOOP
|
||
v_empty := 0;
|
||
v_mld_melding_key := rec.mld_melding_key;
|
||
|
||
IF NOT (rec.mld_melding_externnr = v_externnr AND rec.status = 'UPDATE')
|
||
THEN
|
||
v_externnr := rec.mld_melding_externnr;
|
||
aaxx_add_xml_row (v_bestand, '<meldingstatus key="' || rec.mld_melding_externnr || '">');
|
||
aaxx_add_xml_element (v_bestand,
|
||
'timestamp',
|
||
TO_CHAR (rec.datum, 'dd-mm-yyyy hh24:mi'));
|
||
aaxx_add_xml_element (v_bestand, 'status', rec.status);
|
||
aaxx_add_xml_element (v_bestand, 'afhandeling', SUBSTR(rec.mld_melding_opmerking,1,1900));
|
||
aaxx_add_xml_element (v_bestand, 'notitie', SUBSTR(rec.mld_melding_notitie,1,1900));
|
||
aaxx_add_xml_element (v_bestand,
|
||
'oplosdatum',
|
||
TO_CHAR (rec.mld_melding_einddatum, 'dd-mm-yyyy hh24:mi'));
|
||
|
||
IF rec.status = 'FINCLOSE' THEN
|
||
aaxx_add_xml_element (v_bestand, 'kosten', rec.kosten);
|
||
aaxx_add_xml_element (v_bestand, 'fiatteur', rec.fiatteur);
|
||
aaxx_add_xml_element (v_bestand, 'datumfiat', TO_CHAR (rec.datumfiat, 'dd-mm-yyyy hh24:mi'));
|
||
|
||
-- tracking toevoegen aan melding
|
||
fac.trackaction ('#MLDINF', v_mld_melding_key, 4, NULL, 'Kosten naar Axxerion: ' || rec.kosten || ' euro');
|
||
|
||
END IF;
|
||
|
||
aaxx_add_xml_row (v_bestand, '</meldingstatus>');
|
||
END IF;
|
||
|
||
END LOOP;
|
||
|
||
aaxx_add_xml_row (v_bestand, '</meldingstatusses>');
|
||
aaxx_add_xml_row (v_bestand, '</facilitor>');
|
||
|
||
-- Als er niet geexporteerd is dan gaan we alle regels verwijderen
|
||
-- zodat er niet een leeg xml bestand komt te staan met alleen de facilitor tags.
|
||
IF v_empty = 1
|
||
THEN
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
END IF;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = SUBSTR (v_bestand, 1, 11) || '1';
|
||
|
||
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel)
|
||
VALUES (SUBSTR (v_bestand, 1, 11) || '1', TO_CHAR (v_to, 'yyyy-mm-dd hh24:mi'));
|
||
END;
|
||
/
|
||
|
||
-- Bronview voor exportfunctie MELDING AXXERION - zie ticket 62723
|
||
-- 1. De SA- en ST-meldingen
|
||
---- Moeten bij aanmaken in Facilitor doorgestuurd worden naar Axxerion +
|
||
---- Krijgen terugkoppeling met Axxerion-nr omdat ze verder in status-updates (vanuit facilitor => axxerion) moeten meelopen
|
||
-- 2. De MJOB-meldingen
|
||
---- Moeten pas doorgezet worden als op MJP-meldingsniveau de Motivatie met gunningsbrief is ingevuld/gekoppeld.
|
||
---- Een MJOB-melding kan meerdere keren naar Axxerion doorgestuurd worden (meerdere gunningsaanvragen)
|
||
CREATE OR REPLACE VIEW rabo_v_melding_axxerion
|
||
(
|
||
MLD_MELDING_KEY,
|
||
REF_KEY, -- Externe nummer - ref_key axxerion
|
||
STDMELDING2, -- mld_stdmelding_omschrijving
|
||
VAKGROEP, -- vakgroep DISCIPLINE_OMSCHRIJVING
|
||
KWIS, -- Vakgroeptype INS_SRTDISCIPLINE_OMSCHRIJVING
|
||
OPMERKING, -- Afhandelingstekst -- De korte omschrijving - Deze wordt vaak niet gevuld bij RABO (is uitgezet..._
|
||
OMSCHRIJVING,
|
||
DATUM,
|
||
EINDDATUM,
|
||
LOCATIE_CODE,
|
||
LOCATIE,
|
||
MELDING, -- Voor prefix-xml
|
||
HOOFDMELDING,
|
||
ORDERNR_KLANT, -- Komt WBS-code
|
||
KOSTENSOORT_KLANT, -- Alternatieve kostensoort_code
|
||
RFQ_AANTAL, -- Aantal rfq's uitgezet, zodat je weet hoeveel bijlagen je moet ontvangen....
|
||
RFQ_MOTIVATIE,
|
||
RFQ_BEGELEIDING_KOSTEN,-- Begeleidingskosten HEYDAY (excl. Btw)
|
||
RFQ_LEVERANCIER_KOSTEN,
|
||
RFQ_FASE, -- Hoeveelste vergunningsaanvraag die is ingediend? (1,2 of 3)
|
||
DATUM_NAAR_AXXERION
|
||
)
|
||
AS
|
||
SELECT m.mld_melding_key,
|
||
m.mld_melding_externnr,
|
||
v.mld_stdmelding_omschrijving,
|
||
v.ins_discipline_omschrijving,
|
||
v.ins_srtdiscipline_omschrijving,
|
||
m.mld_melding_opmerking,
|
||
m.mld_melding_omschrijving,
|
||
m.mld_melding_datum,
|
||
m.mld_melding_einddatum,
|
||
'PR' || l.alg_locatie_code,
|
||
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving,
|
||
'MELDINGEN_' || sd.ins_srtdiscipline_prefix || '_'
|
||
melding,
|
||
m.mld_melding_mldgroup_key,
|
||
aaxx_get_kenmerk (
|
||
'MLD',
|
||
(SELECT k.mld_kenmerk_key
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE km.mld_melding_key = m.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_key = 481 -- ordernr_klant
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_verwijder IS NULL),
|
||
m.mld_melding_key) ordernr_klant,
|
||
ks.prs_kostensoort_altcode kostensoort_klant,
|
||
NULL rfq_aantal,
|
||
NULL rfq_motivatie,
|
||
NULL rfq_begeleiding_kosten,
|
||
NULL rfq_leverancier_kosten,
|
||
NULL rfq_fase,
|
||
(SELECT fac.safe_to_date(km.mld_kenmerkmelding_waarde,'DD-MM-YYYY')
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 522 -- Datum melding naar Axxerion
|
||
) datum_naar_axxerion
|
||
FROM mld_melding m, alg_locatie l, aaxx_v_dwh_mld_stdmelding v, mld_stdmelding sm, mld_discipline d, ins_srtdiscipline sd, prs_kostensoort ks
|
||
WHERE
|
||
m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND v.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND v.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key in (4,5) -- ST en SA
|
||
AND sm.prs_kostensoort_key = ks.prs_kostensoort_key (+)
|
||
AND TRUNC(m.mld_melding_datum) >= TO_DATE('18-06-2021','dd-mm-yyyy') -- Datum uitrol ST/SA is 18-6-2021
|
||
AND m.mld_melding_externnr IS NULL
|
||
AND m.mld_melding_status NOT IN (1) -- Afgewezen meldingen niet meenemen naar Axxerion
|
||
AND NOT EXISTS (SELECT km.mld_kenmerkmelding_key FROM mld_melding mm, mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE mm.mld_melding_key = m.mld_melding_key
|
||
AND mm.mld_melding_key = km.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 522) -- Datum melding naar Axxerion
|
||
UNION
|
||
SELECT m.mld_melding_key,
|
||
m.mld_melding_externnr,
|
||
v.mld_stdmelding_omschrijving,
|
||
v.ins_discipline_omschrijving,
|
||
v.ins_srtdiscipline_omschrijving,
|
||
m.mld_melding_opmerking,
|
||
m.mld_melding_omschrijving,
|
||
rfq.datum_motivatie,
|
||
m.mld_melding_einddatum,
|
||
'PR' || l.alg_locatie_code,
|
||
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving,
|
||
'MELDINGEN_' || sd.ins_srtdiscipline_prefix || '_'
|
||
melding,
|
||
m.mld_melding_mldgroup_key,
|
||
aaxx_get_kenmerk (
|
||
'MLD',
|
||
(SELECT k.mld_kenmerk_key
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE km.mld_melding_key = m.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_key = 481 -- ordernr_klant
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_verwijder IS NULL),
|
||
m.mld_melding_key) ordernr_klant,
|
||
ks.prs_kostensoort_altcode kostensoort_klant,
|
||
(SELECT COUNT (*)
|
||
FROM mld_opdr o, mld_typeopdr ot
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND o.mld_statusopdr_key not in (1,2) -- Afgekeurde en Afgewezen offertes hoeven niet naar Axxerion
|
||
AND ot.mld_typeopdr_isofferte = 1)
|
||
rfq_aantal,
|
||
rfq.motivatie
|
||
rfq_motivatie,
|
||
fac.safe_to_number(rfq.begeleiding_kosten)
|
||
rfq_begeleiding_kosten,
|
||
fac.safe_to_number(rfq.leverancier_kosten)
|
||
rfq_leverancier_kosten,
|
||
rfq.fase
|
||
rfq_fase,
|
||
rfq.datum_axxerion
|
||
datum_naar_axxerion
|
||
FROM mld_melding m, alg_locatie l, aaxx_v_dwh_mld_stdmelding v, mld_stdmelding sm, mld_discipline d, ins_srtdiscipline sd, prs_kostensoort ks,
|
||
(SELECT mm.mld_melding_key,
|
||
km.mld_kenmerkmelding_aanmaak
|
||
datum_motivatie,
|
||
SUBSTR(k.mld_kenmerk_omschrijving, LENGTH(k.mld_kenmerk_omschrijving),1)
|
||
fase,
|
||
(SELECT max(km.mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = k_mot.mld_melding_key
|
||
AND km.mld_kenmerkmelding_key = k_mot.mld_kenmerkmelding_key
|
||
) motivatie,
|
||
(SELECT max(km.mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = k_kost.mld_melding_key
|
||
AND km.mld_kenmerkmelding_key = k_kost.mld_kenmerkmelding_key
|
||
) begeleiding_kosten,
|
||
(SELECT max(km.mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = k_kost.mld_melding_key
|
||
AND km.mld_kenmerkmelding_key = k_lev.mld_kenmerkmelding_key
|
||
) leverancier_kosten,
|
||
(SELECT fac.safe_to_date(km.mld_kenmerkmelding_waarde,'DD-MM-YYYY')
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k
|
||
WHERE km.mld_melding_key = mm.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 522 -- Datum melding naar Axxerion
|
||
) datum_axxerion
|
||
FROM mld_melding mm, mld_kenmerkmelding km, mld_kenmerk k,
|
||
(SELECT mld_melding_key, max(km.mld_kenmerkmelding_key) mld_kenmerkmelding_key
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 524 -- Motivatie naar Axxerion
|
||
GROUP BY mld_melding_key) k_mot,
|
||
(SELECT mld_melding_key, max(km.mld_kenmerkmelding_key) mld_kenmerkmelding_key
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 525 -- Kostenraming naar Axxerion
|
||
GROUP BY mld_melding_key) k_kost,
|
||
(SELECT mld_melding_key, max(km.mld_kenmerkmelding_key) mld_kenmerkmelding_key
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 541 -- Kostenraming Leverancierskosten naar Axxerion
|
||
GROUP BY mld_melding_key) k_lev
|
||
WHERE
|
||
mm.mld_melding_key = km.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 523 -- Checkbox MJOP-melding doorzetten naar Axxerion
|
||
AND mm.mld_melding_key = k_mot.mld_melding_key
|
||
AND mm.mld_melding_key = k_kost.mld_melding_key
|
||
AND mm.mld_melding_key = k_lev.mld_melding_key
|
||
ORDER BY mm.mld_melding_key, km.mld_kenmerkmelding_aanmaak) rfq
|
||
WHERE
|
||
m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND v.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND v.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key in (61) -- MJOP
|
||
AND sm.prs_kostensoort_key = ks.prs_kostensoort_key (+)
|
||
AND m.mld_melding_key = rfq.mld_melding_key
|
||
AND (trunc(rfq.datum_motivatie) > rfq.datum_axxerion OR rfq.datum_axxerion IS NULL)
|
||
;
|
||
|
||
CREATE OR REPLACE VIEW rabo_v_export_melding_axxerion (
|
||
result,
|
||
result_order,
|
||
melding
|
||
)
|
||
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 = SUBSTR ('MELDING_AXXERION', 1, 12) -- MELDING_AXXE (12 posities is max voor fac_rappor_node)
|
||
;
|
||
|
||
CREATE OR REPLACE PROCEDURE rabo_select_melding_axxerion (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
CURSOR c (
|
||
p_from DATE,
|
||
p_to DATE)
|
||
IS
|
||
SELECT melding
|
||
FROM rabo_v_melding_axxerion
|
||
WHERE datum BETWEEN p_from AND p_to
|
||
GROUP BY melding;
|
||
|
||
CURSOR c_mld (
|
||
p_from DATE,
|
||
p_to DATE,
|
||
p_melding VARCHAR2)
|
||
IS
|
||
SELECT *
|
||
FROM rabo_v_melding_axxerion
|
||
WHERE datum BETWEEN p_from AND p_to
|
||
AND melding = p_melding
|
||
ORDER BY mld_melding_key;
|
||
|
||
v_from DATE;
|
||
v_to DATE;
|
||
v_melding VARCHAR2 (20);
|
||
v_count NUMBER;
|
||
v_externnr VARCHAR2 (10);
|
||
v_bestand VARCHAR2 (100);
|
||
v_empty NUMBER;
|
||
v_mld_melding_key NUMBER (10);
|
||
v_prefix VARCHAR2(20);
|
||
v_datum_axxerion VARCHAR2 (10) ;
|
||
|
||
|
||
BEGIN
|
||
v_count := 0;
|
||
v_empty := 1;
|
||
v_bestand := SUBSTR (p_applname, 1, 12); -- MELDING_AXXE
|
||
|
||
|
||
-- de laatste synchronisatietijd wordt opgeslagen in fac_rapport met een speciale node naam eindigend op een 1.
|
||
-- mocht deze niet gevuld zijn (initieel) dan gebruiken we het huidige uur.
|
||
BEGIN
|
||
SELECT fac.safe_to_date (fac_rapport_regel, 'yyyy-mm-dd hh24:mi')
|
||
INTO v_from
|
||
FROM fac_rapport
|
||
WHERE SUBSTR (v_bestand, 1, 11) || '1' = fac_rapport_node; -- MELDING_AXX1
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_from := TRUNC (SYSDATE, 'HH24');
|
||
END;
|
||
|
||
-- het einde van de periode mag niet verder liggen dan de huidige tijd
|
||
v_to := v_from + 1 / (24 * 4);
|
||
|
||
IF v_to > SYSDATE
|
||
THEN
|
||
v_to := v_from;
|
||
END IF;
|
||
|
||
-- Eerst opruiming
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
|
||
-- als de export een tijdje niet gedraaid is dan halen we dit weer in door de periode groter te maken.
|
||
WHILE v_to + 1 / (24 * 4) < SYSDATE AND v_count < 10
|
||
LOOP
|
||
v_to := v_to + 1 / (24 * 4);
|
||
v_count := v_count + 1;
|
||
END LOOP;
|
||
|
||
|
||
FOR rec IN c (v_from, v_to)
|
||
LOOP
|
||
v_empty := 0;
|
||
v_datum_axxerion := TO_CHAR(TRUNC(sysdate),'DD-MM-YYYY');
|
||
v_prefix := rec.melding || '##' ;
|
||
v_melding := rec.melding ;
|
||
|
||
-- 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, '<facilitor>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<meldingennieuw>');
|
||
|
||
FOR rec IN c_mld (v_from, v_to, v_melding)
|
||
LOOP
|
||
v_mld_melding_key := rec.mld_melding_key;
|
||
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<melding key="' || rec.mld_melding_key || '">');
|
||
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'ref_key', rec.ref_key);
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix,'timestamp', TO_CHAR (rec.datum, 'dd-mm-yyyy hh24:mi'));
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'stdmelding2', rec.stdmelding2);
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'kwis', rec.kwis);
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'vakgroep', rec.vakgroep);
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'opmerking', SUBSTR(rec.opmerking,1,1900));
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'omschrijving', SUBSTR(rec.omschrijving,1,1900));
|
||
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'locatie_code', rec.locatie_code);
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'locatie', rec.locatie);
|
||
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix,'datum', TO_CHAR (rec.datum, 'dd-mm-yyyy hh24:mi'));
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'sla_datum', TO_CHAR (rec.einddatum, 'dd-mm-yyyy hh24:mi'));
|
||
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'ordernr_klant', rec.ordernr_klant);
|
||
|
||
IF rec.kwis = 'MJOP' OR rec.kwis = 'Service Aanvraag' THEN
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'kostensoort_klant', rec.kostensoort_klant);
|
||
END IF;
|
||
|
||
IF rec.kwis = 'MJOP' THEN
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'aantal_rfqs', rec.rfq_aantal);
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'motivatie', REPLACE(rec.rfq_motivatie, CHR(128), 'euro ')); -- Axxerion lijkt probleem te hebben met verwerkingen euro-teken, daarom hier maar vervangactie..
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'kosten_begeleiding', rec.rfq_begeleiding_kosten); -- RABO#68697 Kosten gesplitst in Begeleidingskosten HEYDAY (was Geplande_kosten)
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'kosten_leverancier', rec.rfq_leverancier_kosten); --- en Leverancierskosten (excl. Btw)
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'fase', rec.rfq_fase);
|
||
|
||
-- tracking toevoegen aan melding en opdracht
|
||
fac.trackaction ('#MLDINF', v_mld_melding_key, 4, NULL, 'Motivatie offerte-selectie naar Axxerion doorgezet voor akkoord');
|
||
|
||
-- Ook nog datum-kenmerkveld vullen, ter info voor gebruikers + voor sturing BIJLAGE_AXXERION (bij avondrun)
|
||
|
||
mld.upsertmeldingkenmerk (4814 , -- v_kenmerk_key
|
||
v_mld_melding_key,
|
||
v_datum_axxerion);
|
||
|
||
-- En nog filterbolletjes omzetten naar mld_melding_flag dat melding bij axxerion ligt ter beoordeling
|
||
UPDATE mld_melding
|
||
SET mld_melding_flag = 1
|
||
WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
END IF;
|
||
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</melding>');
|
||
|
||
-- Op ST/SA-melding: Tracking toevoegen + Filterstatus zetten (on hold = 3) + Kenmerk-datumveld vullen
|
||
IF rec.kwis != 'MJOP' THEN
|
||
fac.trackaction ('#MLDINF', v_mld_melding_key, 4, NULL, 'Melding XML naar Axxerion verzonden');
|
||
|
||
UPDATE mld_melding SET mld_melding_flag = 3 WHERE mld_melding_key = v_mld_melding_key ;
|
||
|
||
IF rec.kwis = 'Storing' THEN
|
||
mld.upsertmeldingkenmerk (4901 , -- v_kenmerk_key
|
||
v_mld_melding_key,
|
||
v_datum_axxerion);
|
||
END IF;
|
||
|
||
IF rec.kwis = 'Service Aanvraag' THEN
|
||
mld.upsertmeldingkenmerk (4902 , -- v_kenmerk_key
|
||
v_mld_melding_key,
|
||
v_datum_axxerion);
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
|
||
END LOOP;
|
||
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</meldingennieuw>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</facilitor>');
|
||
|
||
END LOOP;
|
||
|
||
|
||
-- Als er niet geexporteerd is dan gaan we alle regels verwijderen
|
||
-- zodat er niet een leeg xml bestand komt te staan met alleen de facilitor tags.
|
||
IF v_empty = 1
|
||
THEN
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
END IF;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = SUBSTR (v_bestand, 1, 11) || '1';
|
||
|
||
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel)
|
||
VALUES (SUBSTR (v_bestand, 1, 11) || '1', TO_CHAR (v_to, 'yyyy-mm-dd hh24:mi'));
|
||
END;
|
||
/
|
||
|
||
-- Voor export dagelijks van de bijlagen van de MJOP-RFQ's die voor akkoord naar Axxerion gaan/moeten
|
||
--- Zie ticket 62723
|
||
--- De M-melding (MJOP melding) wordt in de dag naar Axxerion verstuurd via exportfunctie MELDING_AXXERION
|
||
--- De bijlagen 'getekende offertes' uit Opdracht-folder 'Offerte_ondertekend' en de Gunningsbrief HeyDay op M-meldingsniveau moeten ook door naar Axxerion en onder die M-melding komen.
|
||
--- OPZET: 1. Een batfile maken om fysiek alle bestanden op de SFTP te krijgen.
|
||
---- 2. Een procedure die de bijbehorende XML ook op die SFTP map zet.
|
||
--- LET OP!
|
||
---- Volgorde uitvoer van 1 en 2 is belangrijk omdat bij stap 2, in de procedure, een datum gezet wordt.
|
||
---- Door deze datum worden dezelfde bijlagen niet meerdere keren verstuurd wanneer voor eenzelfde M-melding meerdere keren een gunning wordt aangevraagd.
|
||
|
||
-- Bronview
|
||
CREATE OR REPLACE VIEW rabo_v_bijlage_axxerion
|
||
(
|
||
MLD_MELDING_KEY,
|
||
FILENAME,
|
||
DATUM_EXPORT,
|
||
BIJLAGE, -- Voor prefix XML
|
||
DISK_DIRECTORY,
|
||
BIJLAGE_KEY,
|
||
BIJLAGE_AANMAAK,
|
||
DATUM_EXPORT_VORIGE
|
||
)
|
||
AS
|
||
SELECT
|
||
m.mld_melding_key,
|
||
b.fac_bijlagen_filename,
|
||
v.datum_export,
|
||
'BIJLAGEN_' || sd.ins_srtdiscipline_prefix || '_'
|
||
bijlage,
|
||
b.fac_bijlagen_disk_directory,
|
||
b.fac_bijlagen_key,
|
||
b.fac_bijlagen_aanmaak,
|
||
t.datum_export_vorige
|
||
FROM fac_v_bijlagen b,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
mld_opdr o,
|
||
mld_statusopdr so,
|
||
mld_kenmerk k,
|
||
(SELECT km.mld_melding_key, fac.safe_to_date(km.mld_kenmerkmelding_waarde,'dd-mm-yyyy') datum_export
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 522 -- RABO-A 482 -- Datum melding naar Axxerion
|
||
) v,
|
||
(SELECT fac_tracking_refkey, MAX (fac_tracking_datum) datum_export_vorige
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key = 31 -- MLDINF
|
||
AND fac_tracking_oms = 'Bijlagen uit offerte-folders naar Axxerion doorgezet'
|
||
GROUP BY fac_tracking_refkey
|
||
) t
|
||
WHERE
|
||
m.mld_melding_key = v.mld_melding_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_melding_key = t.fac_tracking_refkey(+)
|
||
AND o.mld_statusopdr_key = so.mld_statusopdr_key
|
||
AND o.mld_opdr_key = b.fac_bijlagen_refkey
|
||
AND b.fac_bijlagen_module = 'MLD'
|
||
AND b.fac_bijlagen_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 521 -- Alle bijlagen MJOP_NaarAxxerion
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key in (61) -- MJOP
|
||
AND o.mld_statusopdr_key not in (1,2) -- Voor Afgewezen en Afgekeurde offertes worden geen bijlagen verstuurd.
|
||
AND
|
||
( t.datum_export_vorige IS NULL
|
||
OR
|
||
b.fac_bijlagen_aanmaak > t.datum_export_vorige
|
||
)
|
||
UNION
|
||
SELECT
|
||
m.mld_melding_key,
|
||
b.fac_bijlagen_filename,
|
||
v.datum_export,
|
||
'BIJLAGEN_' || sd.ins_srtdiscipline_prefix || '_'
|
||
bijlage,
|
||
b.fac_bijlagen_disk_directory,
|
||
b.fac_bijlagen_key,
|
||
b.fac_bijlagen_aanmaak,
|
||
t.datum_export_vorige
|
||
FROM fac_v_bijlagen b,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
mld_kenmerk k,
|
||
(SELECT km.mld_melding_key, fac.safe_to_date(km.mld_kenmerkmelding_waarde,'dd-mm-yyyy') datum_export
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 522 -- Datum melding naar Axxerion
|
||
) v,
|
||
(SELECT fac_tracking_refkey, MAX (fac_tracking_datum) datum_export_vorige
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key = 31 -- MLDINF
|
||
AND fac_tracking_oms = 'Bijlagen uit offerte-folders naar Axxerion doorgezet'
|
||
GROUP BY fac_tracking_refkey
|
||
) t
|
||
WHERE
|
||
m.mld_melding_key = v.mld_melding_key
|
||
AND m.mld_melding_key = b.fac_bijlagen_refkey
|
||
AND m.mld_melding_key = t.fac_tracking_refkey(+)
|
||
AND b.fac_bijlagen_module = 'MLD'
|
||
AND b.fac_bijlagen_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 521 -- Alle bijlagen MJOP_NaarAxxerion
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key in (61) -- MJOP
|
||
AND
|
||
( t.datum_export_vorige IS NULL
|
||
OR
|
||
b.fac_bijlagen_aanmaak > t.datum_export_vorige
|
||
)
|
||
;
|
||
|
||
-- View om fysiek alle bestanden op de SFTP te krijgen.
|
||
---- Ps2. Het chcp statement (= change code page) aan begin batfile opnemen zodat de bestandsnamen met diacritic characters niet ge-encodeerd worden.
|
||
---- Ps2. Ik gebruik hieronder voor '\' de ASCII-code (=92) om in ultra-edit syntax-interpretatie goed te krijgen.
|
||
CREATE OR REPLACE VIEW rabo_v_export_bijlage_axx_pdf
|
||
(
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT
|
||
'chcp 1252>nul' result,
|
||
0 result_order
|
||
FROM DUAL
|
||
UNION
|
||
SELECT DISTINCT
|
||
'xcopy /y /S "'
|
||
|| 'd:\Apps\Facilitor\AAFM_DATA\RABO'
|
||
|| CHR(92)
|
||
|| v.disk_directory
|
||
|| CHR(92)
|
||
|| v.filename
|
||
|| '" "d:\Apps\Facilitor\ftp_sites\RABO\bijlagen_naar_axxerion'
|
||
|| '\"',
|
||
v.bijlage_key result_order
|
||
FROM rabo_v_bijlage_axxerion v
|
||
WHERE v.datum_export = trunc(sysdate)
|
||
ORDER BY result_order;
|
||
|
||
CREATE OR REPLACE VIEW rabo_v_export_bijlage_axxerion (
|
||
result,
|
||
result_order,
|
||
bijlage
|
||
)
|
||
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 = SUBSTR ('BIJLAGE_AXXERION', 1, 12) -- BIJLAGE_AXXE (12 posities is max voor fac_rappor_node)
|
||
;
|
||
|
||
CREATE OR REPLACE PROCEDURE rabo_select_bijlage_axxerion (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
CURSOR c (
|
||
p_from DATE,
|
||
p_to DATE)
|
||
IS
|
||
SELECT bijlage
|
||
FROM rabo_v_bijlage_axxerion
|
||
WHERE datum_export BETWEEN p_from AND p_to
|
||
GROUP BY bijlage ;
|
||
|
||
CURSOR c_mld (
|
||
p_from DATE,
|
||
p_to DATE,
|
||
p_bijlage VARCHAR2)
|
||
IS
|
||
SELECT mld_melding_key, datum_export
|
||
FROM rabo_v_bijlage_axxerion
|
||
WHERE datum_export BETWEEN p_from AND p_to
|
||
AND bijlage = p_bijlage
|
||
GROUP BY mld_melding_key, datum_export ;
|
||
|
||
CURSOR c_bijlage (
|
||
p_from DATE,
|
||
p_to DATE,
|
||
p_mld_melding_key NUMBER)
|
||
IS
|
||
SELECT filename
|
||
FROM rabo_v_bijlage_axxerion
|
||
WHERE datum_export BETWEEN p_from AND p_to
|
||
AND mld_melding_key = p_mld_melding_key ;
|
||
|
||
v_from DATE;
|
||
v_to DATE;
|
||
v_count NUMBER;
|
||
v_externnr VARCHAR2 (10);
|
||
v_bestand VARCHAR2 (100);
|
||
v_empty NUMBER;
|
||
v_mld_melding_key NUMBER (10);
|
||
v_prefix VARCHAR2(20);
|
||
v_bijlage VARCHAR2(20) ;
|
||
|
||
BEGIN
|
||
v_count := 0;
|
||
v_empty := 1;
|
||
v_bestand := SUBSTR (p_applname, 1, 12); -- BIJLAGE_AXXE
|
||
|
||
|
||
-- de laatste synchronisatietijd wordt opgeslagen in fac_rapport met een speciale node naam eindigend op een 1.
|
||
-- mocht deze niet gevuld zijn (initieel) dan gebruiken we het huidige uur.
|
||
BEGIN
|
||
SELECT fac.safe_to_date (fac_rapport_regel, 'yyyy-mm-dd') + 1 -- Volgende dag gaan we pakken
|
||
INTO v_from
|
||
FROM fac_rapport
|
||
WHERE SUBSTR (v_bestand, 1, 11) || '1' = fac_rapport_node; -- BIJLAGE_AXX1
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_from := TRUNC (SYSDATE);
|
||
END;
|
||
|
||
-- We exporteren in principe 1 maal per dag, alles van die dag (avondrun)
|
||
v_to := v_from;
|
||
|
||
-- Eerst opruiming
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
|
||
-- als de export een tijdje niet gedraaid is dan halen we dit weer in door de periode groter te maken.
|
||
WHILE v_to < TRUNC(SYSDATE) AND v_count < 10
|
||
LOOP
|
||
v_to := v_to + 1;
|
||
v_count := v_count + 1;
|
||
END LOOP;
|
||
|
||
FOR rec IN c (v_from, v_to)
|
||
LOOP
|
||
v_empty := 0;
|
||
v_prefix := rec.bijlage || '##' ;
|
||
v_bijlage := rec.bijlage ;
|
||
|
||
-- 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, '<facilitor>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<bijlagen>');
|
||
|
||
|
||
FOR rec IN c_mld (v_from, v_to, v_bijlage)
|
||
LOOP
|
||
v_mld_melding_key := rec.mld_melding_key;
|
||
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '<melding key="' || rec.mld_melding_key || '">');
|
||
|
||
FOR rec IN c_bijlage (v_from, v_to, v_mld_melding_key)
|
||
LOOP
|
||
|
||
aaxx_add_xml_element_p (v_bestand, v_prefix, 'filename', rec.filename);
|
||
|
||
END LOOP;
|
||
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</melding>');
|
||
|
||
-- tracking toevoegen aan melding
|
||
fac.trackaction ('#MLDINF', v_mld_melding_key, 4, NULL, 'Bijlagen uit offerte-folders naar Axxerion doorgezet');
|
||
|
||
END LOOP;
|
||
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</bijlagen>');
|
||
aaxx_add_xml_row_p (v_bestand, v_prefix, '</facilitor>');
|
||
|
||
END LOOP;
|
||
|
||
-- Als er niet geexporteerd is dan gaan we alle regels verwijderen
|
||
-- zodat er niet een leeg xml bestand komt te staan met alleen de facilitor tags.
|
||
IF v_empty = 1
|
||
THEN
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
END IF;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = SUBSTR (v_bestand, 1, 11) || '1';
|
||
|
||
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel)
|
||
VALUES (SUBSTR (v_bestand, 1, 11) || '1', TO_CHAR (v_to, 'yyyy-mm-dd'));
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE rabo_import_axx_refkey (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);
|
||
v_index NUMBER;
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
-- De importvelden
|
||
v_referentie VARCHAR2 (200);
|
||
v_mld_melding_key VARCHAR2 (200);
|
||
|
||
header_found BOOLEAN;
|
||
v_impfile_id VARCHAR2 (20);
|
||
BEGIN
|
||
-- Init
|
||
header_found := FALSE;
|
||
v_fielddelimitor := ';';
|
||
v_index := 0;
|
||
|
||
|
||
FOR rec IN c_cursor
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec.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;
|
||
|
||
v_errorhint := 'Velden inlezen';
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_referentie);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_mld_melding_key);
|
||
|
||
v_referentie := SUBSTR (v_referentie, INSTR(v_referentie, '-') + 1);
|
||
|
||
-- Skip until a valid header is found
|
||
IF UPPER (rec.fac_imp_file_line) LIKE
|
||
'REFERENTIE;MELDING_FACILITOR%'
|
||
THEN
|
||
-- Sla de kopregel over.
|
||
header_found := TRUE;
|
||
ELSIF (header_found)
|
||
THEN
|
||
|
||
v_index := rec.fac_imp_file_index;
|
||
|
||
-- Dan slaan we eerst de ontvangen gegevens op
|
||
INSERT INTO rabo_imp_axx_refkey (fac_imp_file_index,
|
||
mld_melding_key,
|
||
referentie_axx
|
||
)
|
||
VALUES (
|
||
v_index,
|
||
v_mld_melding_key,
|
||
v_referentie
|
||
);
|
||
ELSE -- geen geldige header aangetroffen
|
||
IF rec.fac_imp_file_index = 1
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Aangetroffen header',
|
||
rec.fac_imp_file_line);
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
DELETE fac_imp_file
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
IF NOT header_found
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Geen geldige header aangetroffen',
|
||
'Bestand is geen geldig bijlagen bestand.');
|
||
END IF;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE rabo_update_axx_refkey (p_import_key IN NUMBER)
|
||
IS
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT fac_imp_file_index, mld_melding_key, referentie_axx
|
||
FROM rabo_imp_axx_refkey
|
||
ORDER BY fac_imp_file_index ;
|
||
|
||
v_count NUMBER;
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
v_aanduiding VARCHAR2 (400);
|
||
v_melding_key NUMBER(10);
|
||
v_ins_srtdiscipline_key NUMBER(10);
|
||
|
||
BEGIN
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
|
||
v_aanduiding := 'Toevoegen ref_key ' || rec.referentie_axx || ' (Axxerion) aan Facilitor-melding ' || rec.mld_melding_key ;
|
||
v_errorhint := 'update mld_melding_externnr' ;
|
||
v_count := 0 ;
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = rec.mld_melding_key;
|
||
|
||
IF v_count = 1 AND fac.safe_to_number(rec.mld_melding_key) IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE mld_melding
|
||
SET mld_melding_externnr = rec.referentie_axx
|
||
WHERE mld_melding_key = rec.mld_melding_key ;
|
||
|
||
-- tracking toevoegen aan melding
|
||
fac.trackaction ('#MLDINF', rec.mld_melding_key, 4, NULL, v_aanduiding);
|
||
|
||
-- status ST/SA-melding weer van OnHold afhalen
|
||
SELECT vak.ins_srtdiscipline_key
|
||
INTO v_ins_srtdiscipline_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
mld_discipline vak
|
||
WHERE m.mld_melding_key = rec.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = vak.ins_discipline_key ;
|
||
|
||
IF v_ins_srtdiscipline_key in (4,5)
|
||
THEN
|
||
|
||
UPDATE mld_melding
|
||
SET mld_melding_flag = NULL
|
||
WHERE mld_melding_key = rec.mld_melding_key ;
|
||
|
||
END IF;
|
||
|
||
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
v_errorhint || ' - Regel wordt overgeslagen');
|
||
|
||
END IF;
|
||
|
||
|
||
END LOOP;
|
||
|
||
-- Tussen-tabel leeggooien
|
||
DELETE FROM rabo_imp_axx_refkey ;
|
||
|
||
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;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE rabo_import_bijlagen (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);
|
||
v_index NUMBER;
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
-- De importvelden
|
||
v_referentie VARCHAR2 (200);
|
||
v_documentname VARCHAR2 (200);
|
||
v_extensie VARCHAR2 (200);
|
||
v_filename VARCHAR2 (200);
|
||
|
||
header_found BOOLEAN;
|
||
v_impfile_id VARCHAR2 (20);
|
||
BEGIN
|
||
-- Init
|
||
header_found := FALSE;
|
||
v_fielddelimitor := ';';
|
||
v_index := 0;
|
||
|
||
-- de tijdelijke tabel bevat bijlagen die door de batch file geimporteerd moeten worden.
|
||
-- doordat de bijlagen vaak eerder komen dan de melding slaan we de bijlagen op en
|
||
-- verwachten dan dat er binnen een dag een melding bij is.
|
||
-- Let op: Als er meerdere xml bestanden ingelezen worden dan komen deze onder dezelfde
|
||
-- import_key te staan. De combinatie import_key en line_index is dan niet uniek. Vandaar
|
||
-- dat hier een nieuwe index wordt ge<67>ntroduceerd. Ook is het belangrijk dat aan het einde
|
||
-- de fac_imp_file leeg gemaakt wordt omdat ander de resultaten van volgende bestanden er aan
|
||
-- toe gevoegd worden.
|
||
DELETE rabo_imp_bijlagen
|
||
WHERE verwerkt < SYSDATE - 2 OR aanmaak < SYSDATE - 2;
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_index
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
SELECT MAX (SUBSTR (impfile_id, INSTR (impfile_id, '-') + 1, 100))
|
||
INTO v_index
|
||
FROM rabo_imp_bijlagen
|
||
WHERE SUBSTR (impfile_id, 1, INSTR (impfile_id, '-') - 1) = p_import_key;
|
||
|
||
IF v_index IS NULL
|
||
THEN
|
||
v_index := 0;
|
||
END IF;
|
||
|
||
FOR rec IN c_cursor
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec.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;
|
||
|
||
v_errorhint := 'Velden inlezen';
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_documentname);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_extensie);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_referentie);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_filename);
|
||
|
||
v_referentie := REPLACE (v_referentie, 'REQ-');
|
||
|
||
-- Skip until a valid header is found
|
||
IF UPPER (rec.fac_imp_file_line) LIKE
|
||
'DOCUMENTNAME;EXTENSIE;REFERENTIE;FILENAME%'
|
||
THEN
|
||
-- Sla de kopregel over.
|
||
header_found := TRUE;
|
||
ELSIF (header_found)
|
||
THEN
|
||
-- Bestandsnaam groter dan 100 is te groot voor import-tabel, dus aanpassen
|
||
IF LENGTH (v_filename) > 100
|
||
THEN
|
||
v_filename :=
|
||
'ORIGINEEL_TE_GROOT_'
|
||
|| SUBSTR (v_filename,
|
||
1,
|
||
(100 - (20 + LENGTH (v_extensie))))
|
||
|| '.'
|
||
|| v_extensie;
|
||
v_documentname :=
|
||
'ORIGINEEL_TE_GROOT_'
|
||
|| 'bijlage wordt niet ingelezen';
|
||
END IF;
|
||
|
||
v_index := v_index + 1;
|
||
|
||
-- Dan slaan we eerst de ontvangen gegevens op
|
||
INSERT INTO rabo_imp_bijlagen (impfile_id,
|
||
referentie,
|
||
filenaam,
|
||
filenaam_org,
|
||
aanmaak)
|
||
VALUES (
|
||
rec.fac_import_key || '-' || v_index,
|
||
v_referentie,
|
||
v_filename,
|
||
REPLACE (v_documentname || '.' || v_extensie,
|
||
' '),
|
||
SYSDATE);
|
||
ELSE -- geen geldige header aangetroffen
|
||
IF rec.fac_imp_file_index = 1
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Aangetroffen header',
|
||
rec.fac_imp_file_line);
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
DELETE fac_imp_file
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
IF NOT header_found
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Geen geldige header aangetroffen',
|
||
'Bestand is geen geldig bijlagen bestand.');
|
||
END IF;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE rabo_update_bijlagen (p_import_key NUMBER)
|
||
AS
|
||
BEGIN
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE rabo_export_bijlagen (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c_tabel
|
||
IS
|
||
SELECT *
|
||
FROM rabo_imp_bijlagen
|
||
WHERE verwerkt IS NULL;
|
||
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
v_index NUMBER;
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
-- De importvelden
|
||
v_melding_key mld_melding.mld_melding_key%TYPE;
|
||
v_stdmelding_key mld_stdmelding.mld_stdmelding_key%TYPE;
|
||
v_discpline_key ins_tab_discipline.ins_discipline_key%TYPE;
|
||
v_srtdiscipline_key ins_srtdiscipline.ins_srtdiscipline_key%TYPE;
|
||
v_kenmerk_key ins_kenmerk.ins_kenmerk_key%TYPE;
|
||
|
||
v_impfile_id VARCHAR2(20);
|
||
BEGIN
|
||
|
||
FOR rec1 IN c_tabel
|
||
LOOP
|
||
BEGIN
|
||
|
||
v_impfile_id := rec1.impfile_id; --
|
||
-- zoek de juiste melding erbij
|
||
v_errorhint := 'Geen geldige melding kunnen vinden ref:' || rec1.referentie;
|
||
|
||
SELECT m.mld_melding_key,
|
||
std.mld_stdmelding_key,
|
||
d.ins_discipline_key,
|
||
sd.ins_srtdiscipline_key
|
||
INTO v_melding_key,
|
||
v_stdmelding_key,
|
||
v_discpline_key,
|
||
v_srtdiscipline_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE m.mld_melding_externnr = rec1.referentie
|
||
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;
|
||
|
||
-- En het juist kenmerk erbij zoeken.
|
||
v_errorhint := 'Geen geldig kenmerk kunnen vinden ref:' || rec1.referentie;
|
||
|
||
SELECT mld_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 1 -- Bijlagen
|
||
AND ( (mld_kenmerk_niveau = 'T' AND mld_stdmelding_key = v_srtdiscipline_key)
|
||
OR (mld_kenmerk_niveau = 'D' AND mld_stdmelding_key = v_discpline_key)
|
||
OR (mld_kenmerk_niveau = 'S' AND mld_stdmelding_key = v_stdmelding_key));
|
||
|
||
UPDATE rabo_imp_bijlagen
|
||
SET melding_key = v_melding_key
|
||
, kenmerk_key = v_kenmerk_key
|
||
WHERE impfile_id = v_impfile_id; --- HIER GAAT DIE FOUT! and m.mld_melding_externnr = rec1.referentie
|
||
|
||
v_index := v_index + 1; --- WAT DOET DEZE PRECIES? NIETS
|
||
|
||
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 (p_applname,
|
||
'E',
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
v_errorhint);
|
||
UPDATE rabo_imp_bijlagen
|
||
SET logline = SUBSTR (v_errorhint || ' - ' || v_errormsg, 1, 1000)
|
||
WHERE impfile_id = v_impfile_id;
|
||
-- DEZE KLOPT NIET. Zou moeten zijn: where iimpfile_id = v_impfile_id and m.mld_melding_externnr = rec1.referentie
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
-- Rapportviews
|
||
|
||
-- Rapporten voor EXPORT van bijlagen naar zip-file (zie ticket 64348)
|
||
--- In rapport opgenomen fac_bijlagen_key en fac_bijlagen_zippath voor download-optie vanuit rapport-wizard
|
||
--- Exportdefinities voor: 1. TAKEN 2. ASSETS 3. CONTRACTEN 4. MELDINGEN/OPDRACHTEN
|
||
|
||
CREATE OR REPLACE VIEW rabo_v_export_taken_udr
|
||
(
|
||
ins_discpline_omschrijving,
|
||
alg_regio_omschrijving,
|
||
alg_district_omschrijving,
|
||
alg_locatie_omschrijving,
|
||
alg_gebouw_naam,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
fac_bijlagen_aanmaak,
|
||
fac_bijlagen_key,
|
||
fac_bijlagen_zippath,
|
||
check_lengte
|
||
)
|
||
AS
|
||
SELECT sd.ins_discipline_omschrijving,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')',
|
||
g.alg_gebouw_naam || ' (' || g.alg_gebouw_code || ')',
|
||
d.ins_srtgroep_omschrijving,
|
||
srtd.ins_srtdeel_code,
|
||
b.fac_bijlagen_aanmaak,
|
||
b.fac_bijlagen_key,
|
||
alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_discipline_omschrijving
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| REGEXP_REPLACE(d.ins_srtgroep_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', '')
|
||
|| CHR(92)
|
||
|| srtd.ins_srtdeel_code
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
|
||
LENGTH (
|
||
alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_discipline_omschrijving
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| REGEXP_REPLACE(d.ins_srtgroep_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', '')
|
||
|| CHR(92)
|
||
|| srtd.ins_srtdeel_code
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
) check_lengte
|
||
FROM fac_v_bijlagen b,
|
||
ins_deelsrtcontrole c,
|
||
ins_srtcontrole sc,
|
||
ins_tab_discipline sd,
|
||
ctr_disc_params sdp,
|
||
ins_v_deel_gegevens d,
|
||
ins_srtdeel srtd,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio r,
|
||
ins_kenmerk k
|
||
WHERE b.fac_bijlagen_refkey = c.ins_deelsrtcontrole_key
|
||
AND b.fac_bijlagen_module = 'INS'
|
||
AND c.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND sc.ctr_discipline_key = sd.ins_discipline_key
|
||
AND sd.ins_discipline_module = 'CTR'
|
||
AND sd.ins_discipline_key = sdp.ctr_ins_discipline_key
|
||
-- AND sd.ins_discipline_key in (821, 624) -- Verplichtingen en Preventief onderhoud
|
||
AND c.ins_deel_key = d.ins_deel_key
|
||
AND d.ins_srtdeel_key = srtd.ins_srtdeel_key
|
||
AND d.alg_locatie_key = l.alg_locatie_key
|
||
AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND b.fac_bijlagen_verwijder IS NULL
|
||
AND k.ins_kenmerk_key = b.fac_bijlagen_kenmerk_key
|
||
AND k.ins_kenmerk_niveau = 'C'
|
||
AND c.ins_srtcontrole_key = k.ins_srtinstallatie_key
|
||
ORDER BY fac_bijlagen_zippath
|
||
;
|
||
|
||
CREATE OR REPLACE VIEW rabo_v_export_assets_udr
|
||
(
|
||
ins_discpline_omschrijving,
|
||
alg_regio_omschrijving,
|
||
alg_district_omschrijving,
|
||
alg_locatie_omschrijving,
|
||
alg_gebouw_naam,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
fac_bijlagen_aanmaak,
|
||
fac_bijlagen_key,
|
||
fac_bijlagen_zippath,
|
||
check_lengte
|
||
)
|
||
AS
|
||
SELECT sd.ins_discipline_omschrijving,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')',
|
||
g.alg_gebouw_naam || ' (' || g.alg_gebouw_code || ')',
|
||
d.ins_srtgroep_omschrijving,
|
||
srtd.ins_srtdeel_code,
|
||
b.fac_bijlagen_aanmaak,
|
||
b.fac_bijlagen_key,
|
||
alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| REGEXP_REPLACE(d.ins_srtgroep_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', '')
|
||
|| CHR(92)
|
||
|| srtd.ins_srtdeel_code
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
|
||
LENGTH(
|
||
alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| REGEXP_REPLACE(d.ins_srtgroep_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', '')
|
||
|| CHR(92)
|
||
|| srtd.ins_srtdeel_code
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
) check_lengte
|
||
FROM fac_v_bijlagen b,
|
||
ins_tab_discipline sd,
|
||
ins_v_deel_gegevens d,
|
||
ins_srtdeel srtd,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio r
|
||
WHERE b.fac_bijlagen_refkey = d.ins_deel_key
|
||
AND b.fac_bijlagen_module = 'INS'
|
||
AND d.ins_discipline_key = sd.ins_discipline_key
|
||
AND sd.ins_discipline_module = 'INS'
|
||
AND d.ins_srtdeel_key = srtd.ins_srtdeel_key
|
||
AND d.alg_locatie_key = l.alg_locatie_key
|
||
AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND b.fac_bijlagen_verwijder IS NULL
|
||
ORDER BY fac_bijlagen_zippath
|
||
;
|
||
|
||
CREATE OR REPLACE VIEW rabo_v_export_contracten_udr
|
||
(
|
||
ins_discpline_omschrijving,
|
||
alg_regio_omschrijving,
|
||
alg_district_omschrijving,
|
||
alg_locatie_omschrijving,
|
||
alg_gebouw_naam,
|
||
fac_bijlagen_aanmaak,
|
||
fac_bijlagen_key,
|
||
fac_bijlagen_zippath,
|
||
check_lengte
|
||
)
|
||
AS
|
||
SELECT d.ins_discipline_omschrijving,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')',
|
||
cp.cnt_alg_gebouw_code,
|
||
b.fac_bijlagen_aanmaak,
|
||
b.fac_bijlagen_key,
|
||
r.alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(cp.cnt_alg_gebouw_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| d.ins_discipline_omschrijving
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| cnt_contract_nummer_intern || '.' || COALESCE (cnt_contract_versie, '0')
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
|
||
LENGTH(
|
||
r.alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(cp.cnt_alg_gebouw_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| d.ins_discipline_omschrijving
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| cnt_contract_nummer_intern || '.' || COALESCE (cnt_contract_versie, '0')
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
) check_lengte
|
||
FROM fac_v_bijlagen b,
|
||
cnt_contract c,
|
||
cnt_discipline d,
|
||
(SELECT v.cnt_contract_key,
|
||
CASE WHEN v.cnt_alg_plaats_code = 'L' THEN NULL ELSE v.cnt_alg_plaats_key END
|
||
cnt_alg_onroerendgoed_keys,
|
||
CASE WHEN v.cnt_alg_plaats_code = 'L' THEN 'Alle' ELSE
|
||
(SELECT og.alg_gebouw_code FROM alg_v_onroerendgoed_gegevens og WHERE og.alg_onroerendgoed_keys = v.cnt_alg_plaats_key)
|
||
END
|
||
cnt_alg_gebouw_code,
|
||
CASE WHEN v.cnt_alg_plaats_code = 'L' THEN v.cnt_alg_plaats_key ELSE
|
||
(SELECT og.alg_locatie_key FROM alg_v_onroerendgoed_gegevens og WHERE og.alg_onroerendgoed_keys = v.cnt_alg_plaats_key)
|
||
END
|
||
cnt_alg_locatie_key
|
||
FROM cnt_v_aanwezigcontract_plaats v
|
||
WHERE v.cnt_contract_plaats_verwijder IS NULL ) cp,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio r
|
||
WHERE b.fac_bijlagen_refkey = c.cnt_contract_key
|
||
AND b.fac_bijlagen_module = 'CNT'
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'CNT'
|
||
AND c.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp.cnt_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND b.fac_bijlagen_verwijder IS NULL
|
||
;
|
||
|
||
CREATE OR REPLACE VIEW rabo_v_export_meldingen_udr
|
||
(
|
||
ins_discpline_omschrijving,
|
||
alg_regio_omschrijving,
|
||
alg_district_omschrijving,
|
||
alg_locatie_omschrijving,
|
||
alg_gebouw_naam,
|
||
fac_bijlagen_aanmaak,
|
||
fac_bijlagen_key,
|
||
fac_bijlagen_zippath,
|
||
check_lengte
|
||
)
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_omschrijving,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')',
|
||
g.alg_gebouw_code,
|
||
b.fac_bijlagen_aanmaak,
|
||
b.fac_bijlagen_key,
|
||
r.alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_srtdiscipline_omschrijving
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| m.mld_melding_key
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
|
||
LENGTH(
|
||
r.alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_srtdiscipline_omschrijving
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| m.mld_melding_key
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
) check_lengte
|
||
FROM fac_v_bijlagen b,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
(SELECT m.mld_melding_key,
|
||
COALESCE (og.alg_gebouw_code, 'Geen gebouw') alg_gebouw_code
|
||
FROM mld_melding m,
|
||
alg_v_onroerendgoed_gegevens og
|
||
WHERE m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+) ) g,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio r
|
||
WHERE b.fac_bijlagen_refkey = m.mld_melding_key
|
||
AND b.fac_bijlagen_module = 'MLD'
|
||
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_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_melding_key = g.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND b.fac_bijlagen_verwijder IS NULL
|
||
UNION
|
||
SELECT sd.ins_srtdiscipline_omschrijving,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')',
|
||
g.alg_gebouw_code,
|
||
b.fac_bijlagen_aanmaak,
|
||
b.fac_bijlagen_key,
|
||
r.alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_srtdiscipline_omschrijving
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| m.mld_melding_key
|
||
|| CHR(92)
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
|
||
LENGTH(
|
||
r.alg_regio_omschrijving
|
||
|| CHR(92)
|
||
|| di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_srtdiscipline_omschrijving
|
||
|| CHR(92)
|
||
|| TO_CHAR (b.fac_bijlagen_aanmaak, 'YYYY-MM')
|
||
|| CHR(92)
|
||
|| m.mld_melding_key
|
||
|| CHR(92)
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
) check_lengte
|
||
FROM fac_v_bijlagen b,
|
||
mld_melding m,
|
||
mld_opdr o,
|
||
mld_stdmelding sm,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
(SELECT m.mld_melding_key,
|
||
COALESCE (og.alg_gebouw_code, 'Geen gebouw') alg_gebouw_code
|
||
FROM mld_melding m,
|
||
alg_v_onroerendgoed_gegevens og
|
||
WHERE m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+) ) g,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio r,
|
||
mld_kenmerk km
|
||
WHERE b.fac_bijlagen_refkey = o.mld_opdr_key
|
||
AND b.fac_bijlagen_module = 'MLD'
|
||
AND o.mld_melding_key = m.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_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_melding_key = g.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND b.fac_bijlagen_verwijder IS NULL
|
||
AND b.fac_bijlagen_kenmerk_key = km.mld_kenmerk_key AND km.mld_kenmerk_niveau = 'O'
|
||
;
|
||
|
||
|
||
-- Ticket 63704 - Layout Bijlage MJOP-RFQ
|
||
-- M-melding is Hoofdmelding. De O-melding is Onderliggende melding
|
||
CREATE OR REPLACE VIEW rabo_v_rap_mjop_offerte
|
||
(
|
||
SOORT, -- H = hoofdmelding O = onderliggende/gekoppelde meldingen
|
||
HOOFDMELDING_KEY,
|
||
MELDING_KEY,
|
||
MELDING_STATUS,
|
||
REFERENTIE,
|
||
ONDERWERP, -- korte omschrijving - wordt vaak niet gevuld bij RABO / uitgezet...
|
||
OMSCHRIJVING,
|
||
DATUM,
|
||
EINDDATUM,
|
||
PROJECTLEIDER, -- verantwoordelijke HeyDay
|
||
LOCATIE_CODE,
|
||
LOCATIE_OMSCHRIJVING,
|
||
LOCATIE_ADRES, -- Bezoekadres, postcode, plaats
|
||
OBJECT_IDENTIFICATIE,
|
||
OBJECT_OMSCHRIJVING,
|
||
OBJECT_AANTAL,
|
||
OBJECT_EENHEID,
|
||
OBJECT_BOUWJAAR,
|
||
OBJECT_CAPACITEIT,
|
||
OBJECT_FABRICAAT,
|
||
OBJECT_REF_LEVERANCIER,
|
||
OBJECT_TYPE,
|
||
TAAK_OMSCHRIJVING,
|
||
TAAK_OPMERKING_OT, -- Opmerking bij Objecttaak
|
||
TAAK_OPMERKING_GT, -- Opmerking bij Geplande/Gestarte taak
|
||
TAAK_KOSTEN,
|
||
------- OVERIGE -----
|
||
FILTER_1, -- Snelle filter voor mld - taken
|
||
FILTER_2, -- Snelle filter voor plaats - taken
|
||
FILTER_3, -- Snelle filter voor plaats
|
||
OFFERTES,
|
||
OPDRACHTEN
|
||
)
|
||
AS
|
||
SELECT CASE WHEN m.mld_melding_mldgroup_key IS NULL THEN 'H' ELSE 'O' END
|
||
soort,
|
||
COALESCE (m.mld_melding_mldgroup_key, m.mld_melding_key)
|
||
mld_hoofd_melding_key,
|
||
m.mld_melding_key,
|
||
v.mld_statuses_omschrijving,
|
||
sd.ins_srtdiscipline_prefix || TO_CHAR(m.mld_melding_key)
|
||
referentie,
|
||
m.mld_melding_onderwerp,
|
||
m.mld_melding_omschrijving,
|
||
m.mld_melding_datum,
|
||
m.mld_melding_einddatum,
|
||
(SELECT p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ')'
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k, prs_perslid p
|
||
WHERE km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_kenmerk_key = 4761
|
||
AND fac.safe_to_number(km.mld_kenmerkmelding_waarde) = p.prs_perslid_key
|
||
) projectleider,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_adres || ', ' || l.alg_locatie_postcode || ', ' || l.alg_locatie_plaats
|
||
adres,
|
||
object.ins_deel_omschrijving
|
||
object_identificatie,
|
||
object.ins_deel_opmerking
|
||
object_omschrijving,
|
||
object.ins_deel_aantal
|
||
object_aantal,
|
||
object.eenheid,
|
||
object.bouwjaar,
|
||
object.capaciteit,
|
||
object.fabricaat,
|
||
object.ref_leverancier,
|
||
object.type_obj,
|
||
taak.ins_srtcontrole_omschrijving -- taak.srtcontrole_omschrijving
|
||
taak,
|
||
taak.ins_srtcontroledl_xcp_opmerk -- opmerking bij objecttaak (xcp record)
|
||
taak_opmerking_ot,
|
||
taak.ins_deelsrtcontrole_opmerking -- opmerking bij gestarte taak
|
||
taak_opmerking_gt,
|
||
taak.ins_deelsrtcontrole_freezecost
|
||
taak_kosten,
|
||
TO_CHAR(m.mld_melding_key) || ' - ' || m.mld_melding_onderwerp || ' - ' || taak.ins_srtcontrole_omschrijving
|
||
filter_1,
|
||
l.alg_locatie_plaats || ' - ' || TO_CHAR(m.mld_melding_key) || ' (' || taak.ins_srtcontrole_omschrijving || ')'
|
||
filter_2,
|
||
l.alg_locatie_plaats
|
||
filter_3,
|
||
(SELECT count(*)
|
||
FROM mld_opdr o, mld_typeopdr ot
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_isofferte = 1
|
||
-- AND o.mld_statusopdr_key not in (1,2)
|
||
) offertes,
|
||
(SELECT count(*)
|
||
FROM mld_opdr o, mld_typeopdr ot
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_isofferte = 0
|
||
) opdrachten
|
||
FROM mld_melding m, alg_locatie l,mld_stdmelding sm, mld_discipline d, ins_srtdiscipline sd, mld_statuses v,
|
||
(SELECT mo.mld_melding_key, d.ins_deel_omschrijving, d.ins_deel_opmerking, d.ins_deel_aantal,
|
||
(select ins_kenmerkdeel_waarde
|
||
from ins_kenmerkdeel kd, ins_kenmerk k
|
||
where kd.ins_deel_key = d.ins_deel_key
|
||
and kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
and k.ins_kenmerk_key = 41) -- eenheid
|
||
eenheid,
|
||
(select ins_kenmerkdeel_waarde
|
||
from ins_kenmerkdeel kd, ins_kenmerk k
|
||
where kd.ins_deel_key = d.ins_deel_key
|
||
and kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
and k.ins_kenmerk_key = 42) -- Bouwjaar
|
||
bouwjaar,
|
||
(select ins_kenmerkdeel_waarde
|
||
from ins_kenmerkdeel kd, ins_kenmerk k
|
||
where kd.ins_deel_key = d.ins_deel_key
|
||
and kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
and k.ins_kenmerk_key = 44) -- Type
|
||
type_obj,
|
||
(select ins_kenmerkdeel_waarde
|
||
from ins_kenmerkdeel kd, ins_kenmerk k
|
||
where kd.ins_deel_key = d.ins_deel_key
|
||
and kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
and k.ins_kenmerk_key = 51) -- Referentienummer leverancier
|
||
ref_leverancier,
|
||
(select ins_kenmerkdeel_waarde
|
||
from ins_kenmerkdeel kd, ins_kenmerk k
|
||
where kd.ins_deel_key = d.ins_deel_key
|
||
and kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
and k.ins_kenmerk_key = 45) -- Capaciteit
|
||
capaciteit,
|
||
(select ins_kenmerkdeel_waarde
|
||
from ins_kenmerkdeel kd, ins_kenmerk k
|
||
where kd.ins_deel_key = d.ins_deel_key
|
||
and kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
and k.ins_kenmerk_key = 43) -- Fabricaat
|
||
fabricaat
|
||
FROM
|
||
mld_melding_object mo,
|
||
ins_deel d
|
||
WHERE mo.ins_deel_key = d.ins_deel_key
|
||
AND d.ins_deel_verwijder IS NULL
|
||
) object,
|
||
(SELECT dc.ins_deelsrtcontrole_key, dc.ins_deel_key, dc.ins_srtcontrole_key,
|
||
dc.ins_deelsrtcontrole_opmerking,
|
||
dc.ins_deelsrtcontrole_freezecost,
|
||
v.ins_srtcontrole_omschrijving,
|
||
v.ins_srtcontroledl_xcp_opmerk,
|
||
v.ins_srtcontrole_eenheid,
|
||
v.ins_srtcontrole_periode,
|
||
v.ins_srtcontroledl_xcp_eenheid,
|
||
v.ins_srtcontroledl_xcp_periode
|
||
FROM ins_deelsrtcontrole dc, ins_v_defined_inspect_xcp v
|
||
WHERE dc.ins_deelsrtcontrole_status in (0,2) -- ingepland of in behandeling OF ALLES TONEN ???
|
||
AND dc.ins_srtcontrole_key = v.ins_srtcontrole_key
|
||
AND dc.ins_deel_key = v.ins_deel_key
|
||
AND v.ins_scenario_key = 1
|
||
) taak
|
||
WHERE
|
||
m.mld_alg_locatie_key = l.alg_locatie_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 = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key in (61) -- MJOP
|
||
AND m.mld_melding_key = object.mld_melding_key
|
||
AND m.mld_melding_kto_key = taak.ins_deelsrtcontrole_key
|
||
AND m.mld_melding_status = v.mld_statuses_key
|
||
ORDER BY COALESCE (m.mld_melding_mldgroup_key, m.mld_melding_key), m.mld_melding_mldgroup_key DESC
|
||
;
|
||
|
||
|
||
-- RABO-compliance verklaring - Ticket 64875
|
||
---- Aanvulling: Compliance voor meerdere doeleinden te gebruiken - Ticket 66307
|
||
CREATE OR REPLACE VIEW RABO_V_RAP_TAKEN_COMPLIANCE
|
||
(
|
||
TOEPASSING, -- Compliance_toepassing - keuzelijst eigen tabel
|
||
UITGEVOERD,
|
||
JAAR, -- Jaar laatste uitvoer
|
||
DATUM, -- Laatste uitvoerdatum OF datum waarop het uitgevoerd had moeten worden
|
||
JAAR_NEXTCYCLUS,
|
||
DATUM_NEXTCYCLUS,
|
||
JAAR_COMPLIANCE, -- SYSDATE - 1
|
||
CATEGORIE,
|
||
TAAKSOORT,
|
||
SRTCONTROLE__KEY,
|
||
BASISTAAK_INFO, -- Hierin opgenomen of klant RABO taak in compliance meegenomen wil hebben
|
||
DEELSOORTCONTROLE_KEY, -- Laatste uitvoer_key
|
||
STATUS,
|
||
INS_DEEL_KEY,
|
||
LOCATIE_PLAATS,
|
||
KRING,
|
||
BANK,
|
||
LOCATIE,
|
||
LOCATIE_CODE,
|
||
GEBOUWFUNCTIE,
|
||
VERVALDATUM_GEBOUW,
|
||
OMSCHRIJVING,
|
||
OBJECTIDENTIFICATIE,
|
||
VERVALDATUM_OBJECT,
|
||
OBJECT_VERVAL_FILTER,
|
||
TAAKOMSCHRIJVING,
|
||
FREQUENCY,
|
||
PERIODE,
|
||
AANTAL_X_UITGEVOERD, -- In Compliancejaar (sysdate-jaar minus 1)
|
||
AANTAL_X_UITGEVOERD_TOT, -- In totaal
|
||
ACTIE, -- 1, 0.5, 0 of -1 (1 = voltooid 0.5 = afgemeld 0 = ingepland, -1 is nog niet gestart/uitgevoerd in geselecteerde jaar
|
||
DEMARCATIE,
|
||
OPMERKING_UITVOER,
|
||
OPMERKING_OBJECTTAAK
|
||
)
|
||
AS -- Uitgevoerd t/m datum van uitdraai...
|
||
SELECT ud.fac_usrdata_upper,
|
||
'ja' uitgevoerd,
|
||
TO_CHAR (dc.ins_deelsrtcontrole_datum, 'YYYY')
|
||
jaar,
|
||
dc.ins_deelsrtcontrole_datum
|
||
datum, -- datum laatste uitvoering
|
||
TO_CHAR(fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1),'YYYY')
|
||
jaar_nextcyclus,
|
||
fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1)
|
||
datum_nextcyclus,
|
||
CASE WHEN ud.fac_usrdata_key = 821 THEN TO_CHAR(sysdate,'YYYY')-1 ELSE TO_CHAR(sysdate,'YYYY')-0 END -- key 821 is compliance voorgaand jaar
|
||
jaar_compliance,
|
||
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,
|
||
t.ins_srtcontrole_key,
|
||
sc.ins_srtcontrole_info,
|
||
t.laatste_uitvoer_key,
|
||
DECODE (dc.ins_deelsrtcontrole_status,
|
||
0, 'Ingepland',
|
||
2, 'In behandeling',
|
||
5, 'Afgemeld',
|
||
6, 'Voltooid')
|
||
status,
|
||
d.ins_deel_key,
|
||
l.alg_locatie_plaats || ' ' || l.alg_locatie_adres,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_code,
|
||
sg.alg_srtgebouw_omschrijving
|
||
gebouwfunctie,
|
||
TO_CHAR(g.alg_gebouw_vervaldatum,'dd-mm-yyyy'),
|
||
d.ins_deel_opmerking,
|
||
d.ins_deel_omschrijving,
|
||
TO_CHAR(d.ins_deel_vervaldatum, 'dd-mm-yyyy'),
|
||
CASE WHEN d.ins_deel_vervaldatum IS NULL THEN 'actueel'
|
||
WHEN d.ins_deel_vervaldatum IS NOT NULL AND d.ins_deel_vervaldatum <= sysdate THEN 'vervallen'
|
||
WHEN d.ins_deel_vervaldatum IS NOT NULL AND d.ins_deel_vervaldatum > sysdate THEN 'vervallen - toekomst'
|
||
ELSE '<?>'
|
||
END
|
||
object_verval_filter,
|
||
sc.ins_srtcontrole_omschrijving,
|
||
DECODE (
|
||
COALESCE (x.ins_srtcontroledl_xcp_eenheid,
|
||
sc.ins_srtcontrole_eenheid),
|
||
0, 'Uurlijks',
|
||
1, 'Dagelijks',
|
||
2, 'Wekelijks',
|
||
3, 'Maandelijks',
|
||
4, 'Jaarlijks',
|
||
'Onbekend')
|
||
frequentie,
|
||
COALESCE (x.ins_srtcontroledl_xcp_periode,
|
||
sc.ins_srtcontrole_periode)
|
||
periode,
|
||
(SELECT count(*)
|
||
FROM ins_deelsrtcontrole dc
|
||
WHERE dc.ins_deel_key = d.ins_deel_key
|
||
AND dc.ins_srtcontrole_key = t.ins_srtcontrole_key
|
||
AND TO_CHAR(dc.ins_deelsrtcontrole_datum,'yyyy') = to_char(sysdate,'yyyy') - DECODE(ud.fac_usrdata_key,821,1,0)
|
||
) aantal_x_uitgevoerd_c, -- in compliance-jaar uitgevoerd
|
||
t.aantal_x_uitgevoerd
|
||
aantal_x_uitgevoerd_tot,
|
||
CASE
|
||
WHEN
|
||
INSTR (LOWER (x.ins_srtcontroledl_xcp_groep), 'nee') > 0 AND ud.fac_usrdata_key = 821 -- compliance voorgaand jaar
|
||
AND (
|
||
LOWER (dc.ins_deelsrtcontrole_status) NOT IN (6) -- uitleg: Als demarcatie is nee (geen taak HEYDAY) en laatste taak is niet of niet succesvol uitgevoerd, dan op verklaring altijd nvt vermelden
|
||
OR
|
||
(LOWER (dc.ins_deelsrtcontrole_status) IN (6) -- uitleg: Ook als laatste uitvoerdatum nog voor compliance jaar ligt en voltooid was en de nextcycli_datum is in compliance-jaar (of ervoor) ligt, dan wordt status op nvt gezet
|
||
AND TO_NUMBER(TO_CHAR(dc.ins_deelsrtcontrole_datum, 'YYYY')) < TO_NUMBER(TO_CHAR(sysdate,'YYYY')-1)
|
||
AND TO_NUMBER(TO_CHAR(fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1),'YYYY')) <= TO_NUMBER(TO_CHAR(sysdate,'YYYY')-1)
|
||
)
|
||
)
|
||
THEN
|
||
'nvt'
|
||
WHEN -- uitleg: Als demarcatie is nee (geen taak HEYDAY) en laatste uitvoerdatum nog voor compliance jaar ligt en nextcycli_datum is in compliance-jaar (of ervoor) en is kleiner dan datum uitdraai, dan status nvt (= nog uitvoeren)
|
||
INSTR (LOWER (x.ins_srtcontroledl_xcp_groep), 'nee') > 0 AND ud.fac_usrdata_key = 822 -- compliance lopend jaar
|
||
AND TO_NUMBER(TO_CHAR(dc.ins_deelsrtcontrole_datum, 'YYYY')) < TO_NUMBER(TO_CHAR(sysdate,'YYYY'))
|
||
AND TO_NUMBER(TO_CHAR(fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1),'YYYY')) <= TO_NUMBER(TO_CHAR(sysdate,'YYYY'))
|
||
AND TRUNC(fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1)) <= TRUNC(SYSDATE)
|
||
THEN
|
||
'nvt'
|
||
WHEN -- uitleg: Als demarcatie is ja (is taak HEYDAY) en laatste uitvoerdatum nog voor compliance jaar ligt en nextcycli_datum is in compliance-jaar (of ervoor) en is kleiner dan datum uitdraai, dan status -1 (= nog uitvoeren)
|
||
INSTR (LOWER (COALESCE(x.ins_srtcontroledl_xcp_groep,'leeg')), 'nee') = 0
|
||
AND TO_NUMBER(TO_CHAR(dc.ins_deelsrtcontrole_datum, 'YYYY')) < TO_NUMBER(TO_CHAR(sysdate,'YYYY')-DECODE(ud.fac_usrdata_key,821,1,0)) -- 821 is compliance voorgaand jaar
|
||
AND TO_NUMBER(TO_CHAR(fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1),'YYYY')) <= TO_NUMBER(TO_CHAR(sysdate,'YYYY')-DECODE(ud.fac_usrdata_key,821,1,0))
|
||
AND TRUNC(fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1)) <= TRUNC(SYSDATE)
|
||
THEN '-1'
|
||
ELSE
|
||
DECODE (dc.ins_deelsrtcontrole_status,
|
||
6, '1', -- Voltooid
|
||
5, '0.5', -- Afgemeld
|
||
2, '0', -- In behandeling
|
||
0, '0', -- Ingepland
|
||
'-1')
|
||
END
|
||
actie,
|
||
x.ins_srtcontroledl_xcp_groep
|
||
demarcatie,
|
||
dc.ins_deelsrtcontrole_opmerking
|
||
opmerking_uitvoer, -- opmerking bij laatste uitvoering
|
||
x.ins_srtcontroledl_xcp_opmerk
|
||
opmerking_basistaak
|
||
FROM ins_v_deel_gegevens d,
|
||
ins_srtcontrole sc,
|
||
ins_srtcontroledl_xcp x,
|
||
ins_srtdeel ds,
|
||
ins_srtgroep dg,
|
||
ctr_discipline cd,
|
||
ctr_disc_params cdp,
|
||
( SELECT dc.ins_deel_key,
|
||
dc.ins_srtcontrole_key,
|
||
MAX (ins_deelsrtcontrole_key)
|
||
laatste_uitvoer_key,
|
||
COUNT (ins_deelsrtcontrole_key)
|
||
aantal_x_uitgevoerd
|
||
FROM ins_deelsrtcontrole dc, ins_deel d
|
||
WHERE d.ins_deel_key = dc.ins_deel_key
|
||
AND d.ins_deel_verwijder IS NULL
|
||
GROUP BY dc.ins_deel_key,
|
||
dc.ins_srtcontrole_key
|
||
) t,
|
||
ins_deelsrtcontrole dc,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio r,
|
||
alg_srtgebouw sg,
|
||
fac_usrdata ud
|
||
WHERE t.ins_deel_key = d.ins_deel_key
|
||
AND t.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND sc.ctr_discipline_key = cd.ins_discipline_key
|
||
AND cdp.ctr_disc_params_controle_type = 3 -- Taaksoort Certificering
|
||
AND cd.ins_discipline_key = cdp.ctr_ins_discipline_key
|
||
AND t.ins_deel_key = x.ins_deel_key
|
||
AND t.ins_srtcontrole_key = x.ins_srtcontrole_key
|
||
AND x.ins_scenario_key = 1
|
||
AND t.laatste_uitvoer_key = dc.ins_deelsrtcontrole_key
|
||
AND sc.ins_srtinstallatie_key = ds.ins_srtdeel_key
|
||
AND sc.ins_srtcontrole_niveau = 'S'
|
||
AND ds.ins_srtgroep_key = dg.ins_srtgroep_key
|
||
AND dg.ins_srtgroep_key NOT IN (161) -- Groep 01 Algemeen uitsluiten
|
||
AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key
|
||
AND ud.fac_usrtab_key = 281 AND ud.fac_usrdata_verwijder IS NULL AND ud.fac_usrdata_vervaldatum IS NULL
|
||
UNION -- Nog niet uitgevoerd in geselecteerde jaar
|
||
SELECT ud.fac_usrdata_upper,
|
||
CASE WHEN TO_NUMBER(TO_CHAR(t.deelsrtcontrole_datum, 'yyyy')) < TO_NUMBER (TO_CHAR (SYSDATE, 'yyyy')) THEN 'nee - verleden'
|
||
WHEN TO_NUMBER(TO_CHAR(t.deelsrtcontrole_datum, 'yyyy')) = TO_NUMBER (TO_CHAR (SYSDATE, 'yyyy')) THEN 'nee - lopend jaar'
|
||
WHEN TO_NUMBER(TO_CHAR(t.deelsrtcontrole_datum, 'yyyy')) > TO_NUMBER (TO_CHAR (SYSDATE, 'yyyy')) THEN 'nee - toekomst'
|
||
ELSE '<?>'
|
||
END
|
||
uitgevoerd,
|
||
t.jaar,
|
||
t.deelsrtcontrole_datum
|
||
datum, -- datum waarop het uitgevoerd had moeten worden..
|
||
TO_CHAR(fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1),'YYYY')
|
||
jaar_nextcyclus,
|
||
fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key,1)
|
||
datum_nextcyclus,
|
||
CASE WHEN ud.fac_usrdata_key = 821 THEN TO_CHAR(sysdate,'YYYY')-1 ELSE TO_CHAR(sysdate,'YYYY')-0 END -- key 821 is compliance voorgaand jaar
|
||
jaar_compliance,
|
||
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,
|
||
t.ins_srtcontrole_key,
|
||
sc.ins_srtcontrole_info,
|
||
NULL
|
||
deelsrtcontrole_key,
|
||
NULL
|
||
status,
|
||
d.ins_deel_key,
|
||
l.alg_locatie_plaats || ' ' || l.alg_locatie_adres,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_code,
|
||
sg.alg_srtgebouw_omschrijving gebouwfunctie,
|
||
TO_CHAR(g.alg_gebouw_vervaldatum,'dd-mm-yyyy'),
|
||
d.ins_deel_opmerking,
|
||
d.ins_deel_omschrijving,
|
||
TO_CHAR(d.ins_deel_vervaldatum, 'dd-mm-yyyy'),
|
||
CASE WHEN d.ins_deel_vervaldatum IS NULL THEN 'actueel'
|
||
WHEN d.ins_deel_vervaldatum IS NOT NULL AND d.ins_deel_vervaldatum <= sysdate THEN 'vervallen'
|
||
WHEN d.ins_deel_vervaldatum IS NOT NULL AND d.ins_deel_vervaldatum > sysdate THEN 'vervallen - toekomst'
|
||
ELSE '<?>'
|
||
END
|
||
object_verval_filter,
|
||
sc.ins_srtcontrole_omschrijving,
|
||
DECODE (
|
||
COALESCE (x.ins_srtcontroledl_xcp_eenheid,
|
||
sc.ins_srtcontrole_eenheid),
|
||
0, 'Uurlijks',
|
||
1, 'Dagelijks',
|
||
2, 'Wekelijks',
|
||
3, 'Maandelijks',
|
||
4, 'Jaarlijks',
|
||
'Onbekend')
|
||
frequentie,
|
||
COALESCE (x.ins_srtcontroledl_xcp_periode,
|
||
sc.ins_srtcontrole_periode)
|
||
periode,
|
||
0 aantal_x_uitgevoerd,
|
||
0 aantal_x_uitgevoerd_c,
|
||
CASE
|
||
WHEN INSTR (LOWER (x.ins_srtcontroledl_xcp_groep), 'nee') > 0
|
||
THEN 'nvt'
|
||
WHEN INSTR (LOWER (COALESCE(x.ins_srtcontroledl_xcp_groep,'leeg')), 'nee') = 0
|
||
AND TRUNC(t.deelsrtcontrole_datum) > TRUNC(SYSDATE) -- taak voor toekomst
|
||
THEN '-0.5'
|
||
ELSE '-1'
|
||
END
|
||
actie,
|
||
x.ins_srtcontroledl_xcp_groep demarcatie,
|
||
NULL
|
||
opmerking_uitvoer,
|
||
x.ins_srtcontroledl_xcp_opmerk
|
||
opmerking_basistaak
|
||
FROM ins_v_deel_gegevens d,
|
||
ins_srtcontrole sc,
|
||
ins_srtcontroledl_xcp x,
|
||
ins_srtdeel ds,
|
||
ins_srtgroep dg,
|
||
ctr_discipline cd,
|
||
ctr_disc_params cdp,
|
||
( SELECT v.deel_key,
|
||
v.srtcontrole_key
|
||
ins_srtcontrole_key,
|
||
MAX(TO_CHAR (v.deelsrtcontrole_datum, 'YYYY'))
|
||
jaar,
|
||
MAX (v.deelsrtcontrole_datum)
|
||
deelsrtcontrole_datum
|
||
FROM aaxx_v_dwh_inspectie_2 v
|
||
WHERE v.deelsrtcontrole_key IS NULL -- Of wel de basistaak uit deze view
|
||
AND v.taaksoort = 'Certificering'
|
||
AND NOT EXISTS
|
||
(SELECT dc.ins_deelsrtcontrole_key FROM ins_deelsrtcontrole dc
|
||
WHERE dc.ins_deel_key = v.deel_key
|
||
AND dc.ins_srtcontrole_key = v.srtcontrole_key)
|
||
GROUP BY v.deel_key,
|
||
v.srtcontrole_key
|
||
) t,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio r,
|
||
alg_srtgebouw sg,
|
||
fac_usrdata ud
|
||
WHERE t.deel_key = d.ins_deel_key
|
||
AND t.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND t.deel_key = x.ins_deel_key
|
||
AND t.ins_srtcontrole_key = x.ins_srtcontrole_key
|
||
AND x.ins_scenario_key = 1
|
||
AND sc.ctr_discipline_key = cd.ins_discipline_key
|
||
AND cdp.ctr_disc_params_controle_type = 3 -- Taaksoort Certificering
|
||
AND cd.ins_discipline_key = cdp.ctr_ins_discipline_key
|
||
AND sc.ins_srtinstallatie_key = ds.ins_srtdeel_key
|
||
AND sc.ins_srtcontrole_niveau = 'S'
|
||
AND ds.ins_srtgroep_key = dg.ins_srtgroep_key
|
||
AND dg.ins_srtgroep_key NOT IN (161) -- Groep 01 Algemeen uitsluiten
|
||
AND d.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key
|
||
AND ud.fac_usrtab_key = 281 AND ud.fac_usrdata_verwijder IS NULL AND ud.fac_usrdata_vervaldatum IS NULL
|
||
;
|
||
|
||
-- Rapport - voor dashboard - zie ticket 63002
|
||
CREATE OR REPLACE VIEW RABO_V_OPDR_GEBOUWVERANTW
|
||
(
|
||
VERANTW1_KEY,
|
||
NAAM_VERANTWOORDELIJK,
|
||
VERANTW2_KEY,
|
||
NAAM_VERANTWOORDELIJK2,
|
||
PLAATSAANDUIDING,
|
||
MLD_OPDR_KEY,
|
||
OPDRACHTNUMMER,
|
||
TYPE_OPDRACHT,
|
||
OPDRACHTOMSCHRIJVING,
|
||
OPDRACHT_BEDRAG,
|
||
KOSTENPLAATS_OPDR,
|
||
BUDGETHOUDER_KP,
|
||
OPDRACHT_AANMAAKDATUM,
|
||
OPDRACHT_EINDDATUM,
|
||
OPDRACHT_PLANDATUM,
|
||
HUIDIGE_STATUS,
|
||
GOEDGEKEURD_BO_1E,
|
||
GOEDGEKEURD_1E_DOOR,
|
||
GOEDGEKEURD_AANTAL,
|
||
GOEDGEKEURD_BO_MAX,
|
||
GOEDGEKEURD_MAX_DOOR,
|
||
GEFIATTERD_1E,
|
||
FIATTEUR,
|
||
LEVERANCIERSNAAM,
|
||
OPDRACHT_VERZONDEN,
|
||
OPDRACHT_ACCEPT,
|
||
DATUM_GEREED,
|
||
GEBOUWCODE -- Voor filtering - Beter: Via kenmerkveld te laten lopen
|
||
)
|
||
AS
|
||
SELECT sub.prs_perslid_key_verantw,
|
||
sub.Naam_Verantwoordelijk,
|
||
sub.prs_perslid_key_verantw2,
|
||
sub.Naam_Verantwoordelijk2,
|
||
l.alg_locatie_code
|
||
|| ' - '
|
||
|| (SELECT g.alg_gebouw_naam || ' (' || og.alg_plaatsaanduiding || '}'
|
||
FROM alg_v_allonrgoed_gegevens og, alg_gebouw g
|
||
WHERE og.alg_gebouw_key = g.alg_gebouw_key
|
||
AND og.alg_onroerendgoed_keys =
|
||
m.mld_alg_onroerendgoed_keys
|
||
AND og.alg_locatie_key = m.mld_alg_locatie_key)
|
||
AS Locatie_Plaatsaanduiding,
|
||
o.mld_opdr_key,
|
||
ins_srtdiscipline_prefix
|
||
|| TO_CHAR (m.mld_melding_key)
|
||
|| '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
AS OPDR_NR,
|
||
top.mld_typeopdr_omschrijving,
|
||
o.mld_opdr_omschrijving,
|
||
o.mld_opdr_kosten,
|
||
kp.prs_kostenplaats_nr || ' ' || kp.prs_kostenplaats_omschrijving kostenplaats_opdr,
|
||
p.prs_perslid_naam || '(' || p.prs_perslid_voornaam || ')' budgethouder_kp,
|
||
o.mld_opdr_datumbegin,
|
||
o.mld_opdr_einddatum,
|
||
o.mld_opdr_plandatum,
|
||
(SELECT st.mld_statusopdr_omschrijving
|
||
FROM mld_statusopdr st
|
||
WHERE st.mld_statusopdr_key = o.mld_statusopdr_key)
|
||
AS HuidigeStatus,
|
||
(SELECT MIN (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft
|
||
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND SUBSTR (ft.fac_tracking_oms, 1, 28) =
|
||
'Opdracht is goedgekeurd door')
|
||
AS Goedgekeurd_BO_1e,
|
||
(SELECT p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
|
||
FROM prs_perslid p, fac_tracking ft
|
||
WHERE p.prs_perslid_key = ft.prs_perslid_key
|
||
AND ft.fac_tracking_key =
|
||
(SELECT MIN (ft.fac_tracking_key)
|
||
FROM fac_tracking ft
|
||
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND SUBSTR (ft.fac_tracking_oms, 1, 28) =
|
||
'Opdracht is goedgekeurd door'))
|
||
AS Goedgekeurd_BO_1e_Door,
|
||
bo.teller_BO,
|
||
(CASE
|
||
WHEN bo.teller_bo > 1
|
||
THEN
|
||
((SELECT p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
|
||
FROM prs_perslid p, fac_tracking ft
|
||
WHERE p.prs_perslid_key = ft.prs_perslid_key
|
||
AND ft.fac_tracking_key =
|
||
(SELECT MAX (ft.fac_tracking_key)
|
||
FROM fac_tracking ft
|
||
WHERE ft.fac_tracking_refkey =
|
||
o.mld_opdr_key
|
||
AND SUBSTR (ft.fac_tracking_oms, 1, 28) =
|
||
'Opdracht is goedgekeurd door')))
|
||
ELSE
|
||
''
|
||
END)
|
||
AS Goedkeuring_BO_Door_max,
|
||
bo.datum_max,
|
||
(SELECT MIN (ft.fac_tracking_datum)
|
||
FROM fac_tracking ft
|
||
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_srtnotificatie_key = 48)
|
||
AS Gefiatteerd_1e,
|
||
(SELECT p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
|
||
FROM prs_perslid p, fac_tracking ft
|
||
WHERE p.prs_perslid_key = ft.prs_perslid_key
|
||
AND ft.fac_tracking_key =
|
||
(SELECT MIN (ft.fac_tracking_key)
|
||
FROM fac_tracking ft
|
||
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND ft.fac_srtnotificatie_key = 48))
|
||
AS Fiatteur,
|
||
(SELECT naam
|
||
FROM mld_v_uitvoerende u
|
||
WHERE u.mld_uitvoerende_key = o.mld_uitvoerende_keys)
|
||
opdracht_uitvoerende,
|
||
o.mld_opdr_verzonden
|
||
AS Opdracht_VerzondenLeverancier,
|
||
mld.getopdrachtstatusdate (o.mld_opdr_key, 8)
|
||
AS Opdracht_Accept,
|
||
mld.getopdrachtstatusdate (o.mld_opdr_key, 6)
|
||
AS DatumAfgemeld,
|
||
(SELECT g.alg_gebouw_code
|
||
FROM alg_v_allonrgoed_gegevens og, alg_gebouw g
|
||
WHERE og.alg_gebouw_key = g.alg_gebouw_key
|
||
AND og.alg_onroerendgoed_keys =
|
||
m.mld_alg_onroerendgoed_keys
|
||
AND og.alg_locatie_key = m.mld_alg_locatie_key)
|
||
AS gebouw_code
|
||
FROM alg_locatie l,
|
||
mld_opdr o,
|
||
prs_kostenplaats kp,
|
||
prs_perslid p,
|
||
mld_typeopdr top,
|
||
mld_melding m,
|
||
mld_stdmelding stdm,
|
||
ins_tab_discipline di,
|
||
ins_srtdiscipline sdi,
|
||
(SELECT mm.mld_melding_key,
|
||
og.alg_onroerendgoed_keys,
|
||
og.alg_locatie_key,
|
||
g.prs_perslid_key_verantw,
|
||
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
|
||
AS Naam_Verantwoordelijk,
|
||
g.prs_perslid_key_verantw2,
|
||
p2.prs_perslid_voornaam || ' ' || p2.prs_perslid_naam
|
||
AS Naam_Verantwoordelijk2,
|
||
g.alg_gebouw_naam,
|
||
g.alg_gebouw_code
|
||
FROM mld_melding mm,
|
||
alg_v_allonrgoed_gegevens og,
|
||
alg_gebouw g,
|
||
prs_perslid p,
|
||
prs_perslid p2
|
||
WHERE mm.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
AND og.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.prs_perslid_key_verantw = p.prs_perslid_key
|
||
AND g.prs_perslid_key_verantw2 = p2.prs_perslid_key (+)) sub,
|
||
(SELECT *
|
||
FROM (SELECT v.mld_opdr_key, v.teller_bo, v.datum_max
|
||
FROM ( SELECT mo.mld_opdr_key,
|
||
COUNT (*) AS teller_bo,
|
||
MAX (fac_tracking_datum) AS Datum_max
|
||
FROM fac_tracking ft, mld_opdr mo
|
||
WHERE mo.mld_opdr_key = ft.fac_tracking_refkey
|
||
AND SUBSTR (ft.fac_tracking_oms, 1, 28) =
|
||
'Opdracht is goedgekeurd door'
|
||
GROUP BY mo.mld_opdr_key) v) vv
|
||
WHERE vv.Teller_BO > 1) bo
|
||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND m.mld_melding_key = sub.mld_melding_key
|
||
AND o.mld_opdr_key = bo.mld_opdr_key(+)
|
||
AND m.mld_stdmelding_key = stdm.mld_stdmelding_key
|
||
AND stdm.mld_ins_discipline_key = di.ins_discipline_key
|
||
AND di.ins_srtdiscipline_key = sdi.ins_srtdiscipline_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_typeopdr_key = top.mld_typeopdr_key(+)
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND kp.prs_perslid_key = p.prs_perslid_key ;
|
||
|
||
-- Graphics
|
||
|
||
CREATE OR REPLACE VIEW rabo_v_label_ruimte_nr
|
||
(
|
||
ALG_RUIMTE_KEY,
|
||
WAARDE
|
||
)
|
||
AS
|
||
SELECT alg_ruimte_key, alg_ruimte_nr FROM alg_ruimte;
|
||
|
||
-- thema op kenmerk 1240 ruimtefunctie. De normale ruimtefunctie is al in gebruik.
|
||
CREATE OR REPLACE VIEW rabo_v_thema_ruimtefunctie
|
||
(
|
||
alg_ruimte_key,
|
||
waarde
|
||
)
|
||
AS
|
||
SELECT alg_onrgoed_key alg_ruimte_key, fac_usrdata_omschr
|
||
FROM alg_onrgoedkenmerk aog, fac_usrdata ud
|
||
WHERE fac.safe_to_number (aog.alg_onrgoedkenmerk_waarde) =
|
||
fac_usrdata_key
|
||
AND alg_kenmerk_key = 1240;
|
||
|
||
------ 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 |