AAGN#81259 -- Rapportages van Rabobank toepassen op Gemeente Nijmegen - basisview

svn path=/Customer/trunk/; revision=63272
This commit is contained in:
Jos Migo
2024-01-21 14:48:48 +00:00
parent 156127eda0
commit 81fd6afc68

View File

@@ -25,35 +25,6 @@ SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE PACKAGE AAGN
AS
FUNCTION imp_getfield_nr (p_parseline IN VARCHAR2,
p_fielddelimitor IN VARCHAR2,
p_nr IN NUMBER
) RETURN VARCHAR2;
END;
/
CREATE OR REPLACE PACKAGE BODY AAGN
AS
FUNCTION imp_getfield_nr (p_parseline IN VARCHAR2,
p_fielddelimitor IN VARCHAR2,
p_nr IN NUMBER
) RETURN VARCHAR2
AS
v_return_str VARCHAR2(1000);
BEGIN
fac.imp_getfield_nr (p_parseline, p_fielddelimitor, p_nr, v_return_str);
RETURN v_return_str;
END;
END;
/
-- script om dagelijks terugkerende scripts aan te roepen.
CREATE OR REPLACE PROCEDURE aagn_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
@@ -804,7 +775,7 @@ SELECT v.mld_melding_key,
m.mld_melding_datum,
s.mld_statuses_omschrijving,
1 volgorde,
aagn.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 1) foto
aaxx.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 1) foto
FROM mld_kenmerkmelding km, mld_melding m, alg_v_onroerendgoed_gegevens aogg, mld_kenmerk k, mld_srtkenmerk sk, mld_statuses s
WHERE aogg.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
AND m.mld_melding_status = s.mld_statuses_key
@@ -819,7 +790,7 @@ SELECT v.mld_melding_key,
m.mld_melding_datum,
s.mld_statuses_omschrijving,
2,
aagn.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 2)
aaxx.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 2)
FROM mld_kenmerkmelding km, mld_melding m, alg_v_onroerendgoed_gegevens aogg, mld_kenmerk k, mld_srtkenmerk sk, mld_statuses s
WHERE aogg.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
AND m.mld_melding_status = s.mld_statuses_key
@@ -834,7 +805,7 @@ SELECT v.mld_melding_key,
m.mld_melding_datum,
s.mld_statuses_omschrijving,
3,
aagn.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 3)
aaxx.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 3)
FROM mld_kenmerkmelding km, mld_melding m, alg_v_onroerendgoed_gegevens aogg, mld_kenmerk k, mld_srtkenmerk sk, mld_statuses s
WHERE aogg.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
AND m.mld_melding_status = s.mld_statuses_key
@@ -849,7 +820,7 @@ SELECT v.mld_melding_key,
m.mld_melding_datum,
s.mld_statuses_omschrijving,
4,
aagn.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 4)
aaxx.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 4)
FROM mld_kenmerkmelding km, mld_melding m, alg_v_onroerendgoed_gegevens aogg, mld_kenmerk k, mld_srtkenmerk sk, mld_statuses s
WHERE aogg.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
AND m.mld_melding_status = s.mld_statuses_key
@@ -1208,6 +1179,341 @@ AS
AND l.alg_district_key = d.alg_district_key
AND fac_bookmark_id = 'WroKOyDAZVPtYlGF';
-- AAGN-compliance verklaring - Ticket AAGN#81259
CREATE OR REPLACE VIEW AAGN_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,
REGIO,
DISTRICT,
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 = 641 THEN TO_CHAR(sysdate,'YYYY')-1 ELSE TO_CHAR(sysdate,'YYYY')-0 END -- key 641 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 = 641 -- 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 = 642 -- 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,641,1,0)) -- 641 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,641,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 d.ins_discipline_key = 361 -- Gebouwobjecten
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 (119) -- 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 = 321 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 = 641 THEN TO_CHAR(sysdate,'YYYY')-1 ELSE TO_CHAR(sysdate,'YYYY')-0 END -- key 641 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 d.ins_discipline_key = 361 -- Gebouwobjecten
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 (119) -- 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 = 321 AND ud.fac_usrdata_verwijder IS NULL AND ud.fac_usrdata_vervaldatum IS NULL
;
------ payload end ------
SET DEFINE OFF