Files
Customer/AA/RABO/rabo.sql
Jos Migo c7776058e7 nieuw format
svn path=/Customer/trunk/; revision=57123
2022-09-06 07:17:58 +00:00

2860 lines
117 KiB
SQL
Raw Blame History

--
-- $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