10852 lines
546 KiB
SQL
10852 lines
546 KiB
SQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific db-configuration for KFNS.
|
||
|
||
DEFINE thisfile = 'KFNS.SQL'
|
||
DEFINE dbuser = '^KFNS'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SPOOL &fcltlogfile
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_rap_import_log
|
||
(
|
||
fclt_f_applicatie,
|
||
datum,
|
||
fclt_f_status,
|
||
omschrijving,
|
||
hint
|
||
)
|
||
AS
|
||
SELECT COALESCE (fac_import_app_code, imp_log_applicatie),
|
||
TO_CHAR (imp_log_datum, 'dd-mm-yyyy hh24:mi'),
|
||
imp_log_status,
|
||
imp_log_omschrijving,
|
||
imp_log_hint
|
||
FROM imp_log il1, fac_import fi1, fac_import_app fia1
|
||
WHERE il1.fac_import_key = fi1.fac_import_key(+)
|
||
AND fi1.fac_import_app_key = fia1.fac_import_app_key(+)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM imp_log il2, fac_import fi2
|
||
WHERE il2.fac_import_key = fi2.fac_import_key
|
||
AND fi2.fac_import_app_key = fi1.fac_import_app_key
|
||
AND il2.fac_import_key > il1.fac_import_key);
|
||
|
||
CREATE OR REPLACE VIEW KFNS_V_RAP_GEBOUWOVERZICHT
|
||
(
|
||
DISTRICT,
|
||
LOCATIE,
|
||
GEBOUW,
|
||
GEBOUW_NAAM,
|
||
ADRES_BEZOEK,
|
||
POSTCODE_BEZOEK,
|
||
PLAATS_BEZOEK,
|
||
VERANTWOORDELIJK_PERS,
|
||
ADRES,
|
||
POSTCODE,
|
||
PLAATS
|
||
)
|
||
AS
|
||
SELECT ad.alg_district_omschrijving,
|
||
al.alg_locatie_omschrijving,
|
||
ag.alg_gebouw_code,
|
||
ag.alg_gebouw_naam,
|
||
ml.mld_adres_bezoek_adres,
|
||
ml.mld_adres_bezoek_postcode,
|
||
ml.mld_adres_bezoek_plaats,
|
||
p.prs_perslid_naam_full,
|
||
al.alg_locatie_adres,
|
||
al.alg_locatie_postcode,
|
||
al.alg_locatie_plaats
|
||
FROM alg_district ad,
|
||
alg_gebouw ag,
|
||
alg_locatie al,
|
||
prs_v_perslid_fullnames_all p,
|
||
mld_adres ml
|
||
WHERE al.alg_district_key = ad.alg_district_key
|
||
AND ag.alg_locatie_key = al.alg_locatie_key
|
||
AND ag.alg_gebouw_verwijder IS NULL
|
||
AND al.alg_locatie_verwijder IS NULL
|
||
AND ad.alg_district_verwijder IS NULL
|
||
AND ag.prs_perslid_key_verantw = p.prs_perslid_key(+)
|
||
AND ag.mld_adres_key = ml.mld_adres_key(+);
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_rap_gebouwpaspoort
|
||
(
|
||
GEBOUWKEY,
|
||
DISTRICT,
|
||
LOCATIE,
|
||
CODE,
|
||
GEBOUWNAAM,
|
||
GEBOUWFUNCTIE,
|
||
BEBOUWDOPPM2,
|
||
VERVALDATUM,
|
||
GEBOUW_OPMERKING,
|
||
OMTREK,
|
||
INHOUD,
|
||
X_COORDINAAT,
|
||
Y_COORDINAAT,
|
||
CONTRACTPARTIJ,
|
||
EIGENAAR_VAN_OBJECT,
|
||
STRUKTON_GEBOUWCODE,
|
||
VERANT_FM,
|
||
VERANT_FC,
|
||
LEVERAN_INFO,
|
||
GEBOUW_FACT_NIETVERHUUR,
|
||
KADASTRAAL,
|
||
BOUWJAAR,
|
||
EIGENAAR,
|
||
ENERGIELABEL,
|
||
WETTELIJKE_VERPLICHTINGEN,
|
||
GEBRUIKSMELDING,
|
||
KEURING_LIFTEN,
|
||
KEURING_BMI,
|
||
BHV_PLAN,
|
||
KEURING_OAI,
|
||
ONTRUIMINGSPLAN,
|
||
KEURING_SPRINKLERINSTALLATIE,
|
||
KEURING_GASBLUSINSTALLATIE,
|
||
KEURING_INBRAAKINSTALLATIE,
|
||
KEURING_KOELINSTALLATIE,
|
||
KEURING_STOOKINSTALLATIE,
|
||
KEURING_WKO,
|
||
KEURING_EINSTALLATIES,
|
||
KEURING_NOODVERLICHTING,
|
||
KEURING_KEERKLEPPEN_DRWTR,
|
||
KEURING_DROGE_BLUSLEIDING,
|
||
KEURING_GASDETECTIE,
|
||
KEURING_NSA,
|
||
LEGIONELLABEHEERSPLAN,
|
||
RI_E
|
||
)
|
||
AS
|
||
SELECT ag.alg_gebouw_key,
|
||
ad.alg_district_omschrijving,
|
||
al.alg_locatie_omschrijving,
|
||
ag.alg_gebouw_upper,
|
||
ag.alg_gebouw_naam,
|
||
asg.alg_srtgebouw_omschrijving,
|
||
ag.alg_gebouw_bruto_vloeropp,
|
||
ag.alg_gebouw_vervaldatum,
|
||
ag.alg_gebouw_opmerking,
|
||
ag.alg_gebouw_omtrek,
|
||
ag.alg_gebouw_inhoud,
|
||
ag.alg_gebouw_x,
|
||
ag.alg_gebouw_y,
|
||
(SELECT ao.alg_onrgoedkenmerk_waarde km
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1000
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL)
|
||
contractpartij,
|
||
(SELECT ao.alg_onrgoedkenmerk_waarde km
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1002
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL)
|
||
eigenaarobj,
|
||
(SELECT ao.alg_onrgoedkenmerk_waarde km
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1003
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL)
|
||
struktoncode,
|
||
(SELECT ao.alg_onrgoedkenmerk_waarde km
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1004
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL)
|
||
verantw_fm,
|
||
(SELECT ao.alg_onrgoedkenmerk_waarde km
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1005
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL)
|
||
verantw_fc,
|
||
(SELECT ao.alg_onrgoedkenmerk_waarde km
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1083
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL)
|
||
leveranciersinfo,
|
||
(SELECT ao.alg_onrgoedkenmerk_waarde km
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1006
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL)
|
||
geb_fact_n_v,
|
||
(SELECT ao.alg_onrgoedkenmerk_waarde km
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1260
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL)
|
||
kadastraal,
|
||
(SELECT ao.alg_onrgoedkenmerk_waarde km
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1221
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL)
|
||
bouwjaar,
|
||
(SELECT ao.alg_onrgoedkenmerk_waarde km
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1001
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL)
|
||
eigenaar,
|
||
(SELECT ao.alg_onrgoedkenmerk_waarde km
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1240
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL)
|
||
energielabel,
|
||
(SELECT ao.alg_onrgoedkenmerk_waarde km
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1340
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL)
|
||
wet_verpl,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1281
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
gebruiksmelding,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1300
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
k_liften,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1302
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
k_bmi,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1428
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
bhv_plan,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1304
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
k_oai,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1426
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
ont_plan,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1320
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
k_sprinkler,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1322
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
k_gasblus,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1324
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
k_inbraak,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1360
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
k_koel,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1362
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
k_stook,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1380
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
k_wko,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1382
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
k_einstall,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1384
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
k_noodverl,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1400
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
k_keerklep,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1402
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
k_d_busl,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1404
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
k_gasd,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1420
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
k_nsa,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1422
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
legio_beheer,
|
||
DECODE ((SELECT CASE
|
||
WHEN FAC.SAFE_TO_DATE (ao.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY') BETWEEN SYSDATE AND TO_DATE ('01-01-2099', 'DD-MM-YYYY') THEN 'V'
|
||
ELSE
|
||
'X' END
|
||
FROM alg_onrgoedkenmerk ao
|
||
WHERE ao.alg_kenmerk_key = 1424
|
||
AND ao.alg_onrgoed_niveau = 'G'
|
||
AND ao.alg_onrgoed_key = ag.alg_gebouw_key
|
||
AND ao.alg_onrgoedkenmerk_verwijder IS NULL),
|
||
'X', 'X', NULL, '-', 'V', 'V')
|
||
ri_e
|
||
FROM alg_locatie al, alg_gebouw ag, alg_srtgebouw asg, alg_district ad
|
||
WHERE al.alg_locatie_key = ag.alg_locatie_key
|
||
AND ad.alg_district_key = al.alg_district_key
|
||
AND asg.alg_srtgebouw_key = ag.alg_srtgebouw_key
|
||
AND ag.alg_gebouw_verwijder IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_rap_gebpaspoort
|
||
(
|
||
GEBOUWKEY,
|
||
DISTRICT,
|
||
LOCATIE,
|
||
CODE,
|
||
GEBOUWNAAM,
|
||
GEBOUWFUNCTIE,
|
||
BEBOUWDOPPM2,
|
||
VERVALDATUM,
|
||
GEBOUW_OPMERKING,
|
||
OMTREK,
|
||
INHOUD,
|
||
X_COORDINAAT,
|
||
Y_COORDINAAT,
|
||
CONTRACTPARTIJ,
|
||
EIGENAAR_VAN_OBJECT,
|
||
STRUKTON_GEBOUWCODE,
|
||
VERANT_FM,
|
||
VERANT_FC,
|
||
LEVERAN_INFO,
|
||
GEBOUW_FACT_NIETVERHUUR,
|
||
KADASTRAAL,
|
||
BOUWJAAR,
|
||
EIGENAAR,
|
||
ENERGIELABEL,
|
||
WETTELIJKE_VERPLICHTINGEN,
|
||
GEBRUIKSMELDING,
|
||
KEURING_LIFTEN,
|
||
KEURING_BMI,
|
||
BHV_PLAN,
|
||
KEURING_OAI,
|
||
ONTRUIMINGSPLAN,
|
||
KEURING_SPRINKLERINSTALLATIE,
|
||
KEURING_GASBLUSINSTALLATIE,
|
||
KEURING_INBRAAKINSTALLATIE,
|
||
KEURING_KOELINSTALLATIE,
|
||
KEURING_STOOKINSTALLATIE,
|
||
KEURING_WKO,
|
||
KEURING_EINSTALLATIES,
|
||
KEURING_NOODVERLICHTING,
|
||
KEURING_KEERKLEPPEN_DRWTR,
|
||
KEURING_DROGE_BLUSLEIDING,
|
||
KEURING_GASDETECTIE,
|
||
KEURING_NSA,
|
||
LEGIONELLABEHEERSPLAN,
|
||
RI_E
|
||
)
|
||
AS
|
||
SELECT GEBOUWKEY,
|
||
DISTRICT,
|
||
LOCATIE,
|
||
CODE,
|
||
GEBOUWNAAM,
|
||
GEBOUWFUNCTIE,
|
||
BEBOUWDOPPM2,
|
||
VERVALDATUM,
|
||
GEBOUW_OPMERKING,
|
||
OMTREK,
|
||
INHOUD,
|
||
X_COORDINAAT,
|
||
Y_COORDINAAT,
|
||
CONTRACTPARTIJ,
|
||
EIGENAAR_VAN_OBJECT,
|
||
STRUKTON_GEBOUWCODE,
|
||
VERANT_FM,
|
||
VERANT_FC,
|
||
LEVERAN_INFO,
|
||
GEBOUW_FACT_NIETVERHUUR,
|
||
KADASTRAAL,
|
||
BOUWJAAR,
|
||
EIGENAAR,
|
||
ENERGIELABEL,
|
||
ROUND( ( DECODE (GEBRUIKSMELDING, 'V', 1, 0)
|
||
+ DECODE (KEURING_LIFTEN, 'V', 1, 0)
|
||
+ DECODE (KEURING_BMI, 'V', 1, 0)
|
||
+ DECODE (BHV_PLAN, 'V', 1, 0)
|
||
+ DECODE (KEURING_OAI, 'V', 1, 0)
|
||
+ DECODE (ONTRUIMINGSPLAN, 'V', 1, 0)
|
||
+ DECODE (KEURING_SPRINKLERINSTALLATIE, 'V', 1, 0)
|
||
+ DECODE (KEURING_GASBLUSINSTALLATIE, 'V', 1, 0)
|
||
+ DECODE (KEURING_INBRAAKINSTALLATIE, 'V', 1, 0)
|
||
+ DECODE (KEURING_KOELINSTALLATIE, 'V', 1, 0)
|
||
+ DECODE (KEURING_STOOKINSTALLATIE, 'V', 1, 0)
|
||
+ DECODE (KEURING_WKO, 'V', 1, 0)
|
||
+ DECODE (KEURING_EINSTALLATIES, 'V', 1, 0)
|
||
+ DECODE (KEURING_NOODVERLICHTING, 'V', 1, 0)
|
||
+ DECODE (KEURING_KEERKLEPPEN_DRWTR, 'V', 1, 0)
|
||
+ DECODE (KEURING_DROGE_BLUSLEIDING, 'V', 1, 0)
|
||
+ DECODE (KEURING_GASDETECTIE, 'V', 1, 0)
|
||
+ DECODE (KEURING_NSA, 'V', 1, 0)
|
||
+ DECODE (LEGIONELLABEHEERSPLAN, 'V', 1, 0)
|
||
+ DECODE (RI_E, 'V', 1, 0))
|
||
/ ( DECODE (GEBRUIKSMELDING, 'V', 1, 'X', 1, 0.00000001)
|
||
+ DECODE (KEURING_LIFTEN, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (KEURING_BMI, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (BHV_PLAN, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (KEURING_OAI, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (ONTRUIMINGSPLAN, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (KEURING_SPRINKLERINSTALLATIE, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (KEURING_GASBLUSINSTALLATIE, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (KEURING_INBRAAKINSTALLATIE, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (KEURING_KOELINSTALLATIE, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (KEURING_STOOKINSTALLATIE, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (KEURING_WKO, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (KEURING_EINSTALLATIES, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (KEURING_NOODVERLICHTING, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (KEURING_KEERKLEPPEN_DRWTR, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (KEURING_DROGE_BLUSLEIDING, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (KEURING_GASDETECTIE, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (KEURING_NSA, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (LEGIONELLABEHEERSPLAN, 'V', 1, 'X', 1, 0)
|
||
+ DECODE (RI_E, 'V', 1, 'X', 1, 0))
|
||
* 100) berek,
|
||
GEBRUIKSMELDING,
|
||
KEURING_LIFTEN,
|
||
KEURING_BMI,
|
||
BHV_PLAN,
|
||
KEURING_OAI,
|
||
ONTRUIMINGSPLAN,
|
||
KEURING_SPRINKLERINSTALLATIE,
|
||
KEURING_GASBLUSINSTALLATIE,
|
||
KEURING_INBRAAKINSTALLATIE,
|
||
KEURING_KOELINSTALLATIE,
|
||
KEURING_STOOKINSTALLATIE,
|
||
KEURING_WKO,
|
||
KEURING_EINSTALLATIES,
|
||
KEURING_NOODVERLICHTING,
|
||
KEURING_KEERKLEPPEN_DRWTR,
|
||
KEURING_DROGE_BLUSLEIDING,
|
||
KEURING_GASDETECTIE,
|
||
KEURING_NSA,
|
||
LEGIONELLABEHEERSPLAN,
|
||
RI_E
|
||
FROM kfns_v_rap_gebouwpaspoort;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_rap_km_freeze
|
||
(
|
||
weeknummer,
|
||
alg_gebouw_code,
|
||
alg_gebouw_omschrijving,
|
||
prs_kostensoort_oms,
|
||
prs_kostensoortgrp_oms,
|
||
volgorde,
|
||
bedrag
|
||
)
|
||
AS
|
||
SELECT weeknummer,
|
||
alg_gebouw_code,
|
||
alg_gebouw_omschrijving,
|
||
prs_kostensoort_oms,
|
||
prs_kostensoortgrp_oms,
|
||
volgorde,
|
||
bedrag
|
||
FROM kfns_km_freeze;
|
||
|
||
CREATE OR REPLACE PROCEDURE KFNS_EXPORT_KM_FREEZE (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
V_WEEKNUMMER VARCHAR2 (10);
|
||
BEGIN
|
||
IF TRUNC (SYSDATE, 'Q') = TRUNC (SYSDATE)
|
||
THEN
|
||
V_WEEKNUMMER :=
|
||
TO_CHAR (SYSDATE, 'yyyy')
|
||
|| '-'
|
||
|| FAC.SAFE_TO_NUMBER (TO_CHAR ( (SYSDATE), 'WW'));
|
||
|
||
INSERT INTO KFNS_KM_FREEZE (WEEKNUMMER,
|
||
ALG_GEBOUW_CODE,
|
||
ALG_GEBOUW_OMSCHRIJVING,
|
||
PRS_KOSTENSOORT_OMS,
|
||
PRS_KOSTENSOORTGRP_OMS,
|
||
VOLGORDE,
|
||
BEDRAG)
|
||
SELECT
|
||
V_WEEKNUMMER,
|
||
ALG_GEBOUW_CODE,
|
||
ALG_GEBOUW_OMSCHRIJVING,
|
||
PRS_KOSTENSOORT_OMS,
|
||
PRS_KOSTENSOORTGRP_OMS,
|
||
VOLGORDE,
|
||
BEDRAG
|
||
FROM KFNS_V_RAP_KOSTEN_MONITOR;
|
||
END IF;
|
||
END;
|
||
/
|
||
|
||
|
||
-- Import vanuit Strukton
|
||
CREATE OR REPLACE PROCEDURE kfns_import_opdrstat_strukton (p_import_key IN NUMBER)
|
||
AS
|
||
c_delim VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (1000) := '';
|
||
header_is_valid NUMBER := 0;
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_imp NUMBER (10) := 0;
|
||
v_ongeldig NUMBER (1) := 0;
|
||
-- De importvelden
|
||
v_mld_opdr_key_tekst VARCHAR2 (100);
|
||
v_extern_nummer VARCHAR2 (100);
|
||
v_status_code VARCHAR2 (100);
|
||
v_status NUMBER (10);
|
||
v_datumtijd_tekst VARCHAR2 (100);
|
||
v_datumtijd DATE;
|
||
v_status_tekst VARCHAR2 (100);
|
||
v_opmerking VARCHAR2 (4000);
|
||
v_totaal_tekst VARCHAR2 (100);
|
||
v_totaal NUMBER (8,2);
|
||
-- Overige velden
|
||
v_mld_opdr_key NUMBER (10);
|
||
v_mld_opdr_opmerking VARCHAR2 (4000);
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
DELETE FROM kfns_imp_opdrstat_strukton;
|
||
COMMIT;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen importregel';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden.
|
||
fac.imp_getfield (v_newline, c_delim, v_mld_opdr_key_tekst);
|
||
v_mld_opdr_key_tekst := TRIM (v_mld_opdr_key_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_extern_nummer);
|
||
v_extern_nummer := TRIM (v_extern_nummer);
|
||
fac.imp_getfield (v_newline, c_delim, v_status_code); -- typeID
|
||
v_status_code := TRIM (v_status_code);
|
||
fac.imp_getfield (v_newline, c_delim, v_datumtijd_tekst);
|
||
v_datumtijd_tekst := TRIM (v_datumtijd_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_status_tekst);
|
||
v_status_tekst := TRIM (v_status_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_opmerking);
|
||
v_opmerking := SUBSTR (TRIM (v_opmerking), 1, 1000);
|
||
fac.imp_getfield (v_newline, c_delim, v_totaal_tekst);
|
||
v_totaal := fac.safe_to_number (v_totaal_tekst);
|
||
-- Verwijder de markering voor cr/lf die in stylesheet is toegevoegd.
|
||
v_opmerking := REPLACE (v_opmerking, '@@', CHR (13));
|
||
v_aanduiding := '[' || v_mld_opdr_key_tekst || '|' || v_extern_nummer || '|' || v_status_code || '|' || v_datumtijd_tekst || '|' || v_status_tekst || '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (TRIM (v_mld_opdr_key_tekst)) = 'REFERENCEID'
|
||
AND UPPER (TRIM (v_extern_nummer)) = 'SERVICEREQUESTID'
|
||
AND UPPER (TRIM (v_status_code)) = 'TYPEID'
|
||
AND UPPER (TRIM (v_datumtijd_tekst)) = 'DATETIME'
|
||
AND UPPER (TRIM (v_opmerking)) = 'REMARKS'
|
||
AND UPPER (TRIM (v_totaal_tekst)) = 'TOTAL'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Controleer alle veldwaarden.
|
||
v_errormsg := 'Fout bepalen opdracht';
|
||
|
||
BEGIN
|
||
SELECT o.mld_opdr_key, o.mld_opdr_opmerking
|
||
INTO v_mld_opdr_key, v_mld_opdr_opmerking
|
||
FROM mld_opdr o, mld_melding m, mld_stdmelding sm, ins_tab_discipline td, ins_srtdiscipline sd
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr = v_mld_opdr_key_tekst;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_ongeldig := 1;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Status ongedefinieerd';
|
||
|
||
CASE
|
||
WHEN v_status_code = '5'
|
||
THEN
|
||
v_status := 5; -- uitgegeven
|
||
WHEN v_status_code = '10'
|
||
THEN
|
||
v_status := 8; -- geaccepteerd
|
||
WHEN v_status_code = '20' -- monteur gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
WHEN v_status_code = '25' -- specialist gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
WHEN v_status_code = '30' -- technisch gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
-- KFNS#52066: Uitprijs/fiatteer-functionaliteit!
|
||
--WHEN v_status_code = '40' -- uitgeprijst (fiattering aan FACILITOR-kant)
|
||
--THEN
|
||
-- v_status := 9; -- afgerond
|
||
WHEN v_status_code = '45' -- gefiatteerd (fiattering aan Strukton-kant)
|
||
THEN
|
||
v_status := 9; -- afgerond
|
||
WHEN v_status_code = '70'
|
||
THEN
|
||
v_status := 1; -- geannuleerd
|
||
WHEN v_status_code = '80'
|
||
THEN
|
||
v_status := 1; -- afgewezen
|
||
ELSE
|
||
v_status := NULL;
|
||
v_ongeldig := 1; -- nog te bezien
|
||
END CASE;
|
||
END IF;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Datumtijd ongeldig';
|
||
|
||
IF INSTR (v_datumtijd_tekst, '.') > 0
|
||
THEN
|
||
v_datumtijd := fac.safe_to_date (REPLACE (SUBSTR (v_datumtijd_tekst, 1, INSTR (v_datumtijd_tekst, '.') - 1), 'T', ' '), 'yyyy-mm-dd hh24:mi:ss');
|
||
ELSE
|
||
v_datumtijd := fac.safe_to_date (REPLACE (v_datumtijd_tekst, 'T', ' '), 'yyyy-mm-dd hh24:mi:ss');
|
||
END IF;
|
||
END IF;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Opmerking ongeldig';
|
||
|
||
-- Controleer of de opmerking niet leeg is en of dezelfde opmerking al bij een eerdere statusovergang is gemeld.
|
||
IF v_opmerking IS NOT NULL AND INSTR (v_mld_opdr_opmerking, v_opmerking) = 0
|
||
THEN
|
||
v_opmerking := '[' || v_datumtijd_tekst || '] - ' || v_status_tekst || CHR (13) || CHR (10) || v_opmerking;
|
||
ELSE
|
||
v_opmerking := '[' || v_datumtijd_tekst || '] - ' || v_status_tekst;
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record.
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout wegschrijven statusbericht';
|
||
|
||
INSERT INTO kfns_imp_opdrstat_strukton (mld_opdr_key,
|
||
extern_nummer,
|
||
status,
|
||
datumtijd,
|
||
opmerking,
|
||
totaal)
|
||
VALUES (v_mld_opdr_key,
|
||
v_extern_nummer,
|
||
v_status,
|
||
v_datumtijd,
|
||
v_opmerking,
|
||
v_totaal);
|
||
|
||
v_count_imp := v_count_imp + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, '');
|
||
END;
|
||
ELSE
|
||
-- Foutmeldingen onderdrukken als uitprijzen/fiatteren niet is aangeschakeld.
|
||
IF v_status_code <> '40' AND v_status_code <> '45'
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, '');
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF header_is_valid = 0
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!');
|
||
ELSE
|
||
fac.imp_writelog (p_import_key, 'S', 'Inleesproces/#ingelezen statusberichten: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'Inleesproces/#ongeldige niet ingelezen statusberichten: ' || TO_CHAR (v_count_tot - v_count_imp), '');
|
||
END IF;
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces statusberichten afgebroken!');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE kfns_update_opdrstat_strukton (p_import_key IN NUMBER)
|
||
AS
|
||
-- Cursor loopt - per opdracht in volgorde! - over alle ingelezen statusberichten.
|
||
CURSOR c1
|
||
IS
|
||
SELECT mld_opdr_key, extern_nummer, status, datumtijd, opmerking, totaal
|
||
FROM kfns_imp_opdrstat_strukton
|
||
ORDER BY 1, 4;
|
||
|
||
c_user_key NUMBER (10) := 5; -- _STRUKTON-user
|
||
c_refnr_srtkkey NUMBER (10) := 41; -- Refnr. Leverancier
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count NUMBER (10) := 0;
|
||
v_mld_key NUMBER (10);
|
||
v_opdr_key NUMBER (10);
|
||
v_opdr_status NUMBER (10);
|
||
v_mld_typeopdr_key NUMBER (10);
|
||
v_mld_kenmerk_key NUMBER (10);
|
||
v_mld_kenmerkopdr_key NUMBER (10);
|
||
BEGIN
|
||
-- Loop over alle ingelezen Strukton-statusberichten.
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := '[' || rec.mld_opdr_key || '|' || SUBSTR (rec.opmerking, 1, 100) || '] ';
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Key van melding/opdracht bepalen en Refnr. bij opdracht opslaan.
|
||
IF rec.mld_opdr_key IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout bepalen opdracht.';
|
||
|
||
SELECT mld_melding_key, mld_opdr_key, mld_statusopdr_key, mld_typeopdr_key
|
||
INTO v_mld_key, v_opdr_key, v_opdr_status, v_mld_typeopdr_key
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = rec.mld_opdr_key;
|
||
|
||
v_errormsg := 'Fout bepalen Refnr-kenmerk.';
|
||
|
||
SELECT k.mld_kenmerk_key
|
||
INTO v_mld_kenmerk_key
|
||
FROM mld_kenmerk k
|
||
WHERE k.mld_srtkenmerk_key = c_refnr_srtkkey AND k.mld_typeopdr_key = v_mld_typeopdr_key;
|
||
|
||
v_errormsg := 'Fout bepalen Refnr-kenmerkopdracht.';
|
||
|
||
SELECT MAX (ko.mld_kenmerkopdr_key)
|
||
INTO v_mld_kenmerkopdr_key
|
||
FROM mld_kenmerkopdr ko
|
||
WHERE ko.mld_opdr_key = v_opdr_key AND v_mld_kenmerk_key = ko.mld_kenmerk_key;
|
||
|
||
IF v_mld_kenmerkopdr_key IS NULL
|
||
THEN
|
||
-- Kenmerk toevoegen
|
||
v_errormsg := 'Fout toevoegen Refnr-kenmerkopdracht.';
|
||
|
||
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key, mld_opdr_key, mld_kenmerkopdr_waarde)
|
||
VALUES (v_mld_kenmerk_key, v_opdr_key, rec.extern_nummer);
|
||
ELSE
|
||
-- Kenmerk bijwerken
|
||
v_errormsg := 'Fout bijwerken Refnr-kenmerkopdracht.';
|
||
|
||
UPDATE mld_kenmerkopdr
|
||
SET mld_kenmerkopdr_waarde = rec.extern_nummer
|
||
WHERE mld_kenmerkopdr_key = v_mld_kenmerkopdr_key;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bijwerken Opmerking (opdracht).';
|
||
|
||
v_count := LENGTH (rec.opmerking) + 5; -- Beetje speling qua lengte!
|
||
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_opmerking =
|
||
DECODE (mld_opdr_opmerking,
|
||
NULL, rec.opmerking,
|
||
rec.opmerking || CHR (13) || CHR (10) || SUBSTR (mld_opdr_opmerking, 1, (4000 - v_count)))
|
||
WHERE mld_opdr_key = v_opdr_key;
|
||
|
||
v_errormsg := 'Fout bijwerken Status.';
|
||
|
||
IF v_opdr_status <> rec.status
|
||
THEN
|
||
IF rec.status = 8 AND v_opdr_status = 5
|
||
THEN
|
||
-- Accepteer de opdracht als deze uitgegeven was
|
||
MLD.setopdrachtstatus (v_opdr_key, 8, c_user_key); -- Strukton
|
||
ELSIF rec.status = 6 AND v_opdr_status = 5
|
||
THEN
|
||
-- Meld de opdracht af als deze uitgegeven was (na eerst accepteren)
|
||
MLD.setopdrachtstatus (v_opdr_key, 8, c_user_key); -- Strukton
|
||
MLD.setopdrachtstatus (v_opdr_key, 6, c_user_key); -- Strukton
|
||
ELSIF rec.status = 6 AND v_opdr_status = 8
|
||
THEN
|
||
-- Meld de opdracht af als deze geaccepteerd was
|
||
MLD.setopdrachtstatus (v_opdr_key, 6, c_user_key); -- Strukton
|
||
ELSIF rec.status = 1 AND v_opdr_status IN (5, 8)
|
||
THEN
|
||
-- Wijs de opdracht af als deze niet/wel geaccepteerd was
|
||
MLD.setopdrachtstatus (v_opdr_key, 1, c_user_key); -- Strukton
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, c_user_key, 0);
|
||
ELSIF rec.status = 9 AND v_opdr_status = 6 -- Per KFNS#52066
|
||
THEN
|
||
-- Neem ontvangen totaal over (als kosten=0, dus niet voor offerteopdrachten)
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_materiaal = rec.totaal,
|
||
mld_opdr_kosten = rec.totaal
|
||
WHERE mld_opdr_key = v_opdr_key AND COALESCE (mld_opdr_kosten, 0) = 0;
|
||
|
||
-- Rond de opdracht af als deze afgemeld was
|
||
MLD.setopdrachtstatus (v_opdr_key, 9, c_user_key); -- Strukton
|
||
END IF;
|
||
|
||
IF rec.status = 6 AND v_opdr_status <> 6
|
||
THEN
|
||
-- AADO#30922: Melding niet meer automatisch afmelden.
|
||
-- KFNS#37965: Opmerking-veld bij melding niet meer bijwerken.
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, c_user_key, 0);
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Statusbericht-loop');
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
|
||
/* Formatted on 10-6-2015 15:16:44 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW kfns_v_export_res_ruimte_xml (result, result_order)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = SUBSTR ('RES_RUIMTE_XML', 1, 12);
|
||
|
||
/* Formatted on 10-6-2015 15:18:42 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE kfns_select_res_ruimte_xml (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
CURSOR c_res
|
||
IS
|
||
SELECT TRIM(SUBSTR (
|
||
rr.res_ruimte_nr,
|
||
DECODE (INSTR (rr.res_ruimte_nr, 'etage -'),
|
||
0, 0,
|
||
INSTR (rr.res_ruimte_nr, 'etage -') + 7)))
|
||
res_ruimte_nr,
|
||
rg.alg_locatie_code,
|
||
rg.alg_locatie_omschrijving,
|
||
rg.alg_gebouw_upper,
|
||
rg.alg_gebouw_omschrijving,
|
||
rg.alg_verdieping_code,
|
||
rg.alg_verdieping_omschrijving,
|
||
rr.res_ruimte_key,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24:mi') van,
|
||
TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24:mi') tot,
|
||
rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
ph.prs_perslid_naam_full host,
|
||
pc.prs_perslid_naam_full contact,
|
||
rrr.res_rsv_ruimte_host_key,
|
||
rrr.res_rsv_ruimte_bezoekers,
|
||
DECODE (
|
||
(SELECT COUNT ( * )
|
||
FROM bez_bezoekers b, bez_afspraak a
|
||
WHERE a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND a.bez_afspraak_key = b.bez_afspraak_key),
|
||
0,
|
||
'nee',
|
||
'ja')
|
||
bez_aangemeld,
|
||
rd.res_disc_params_preposttime schoonmaak
|
||
FROM res_rsv_ruimte rrr,
|
||
( SELECT res_rsv_ruimte_key,
|
||
res_ruimte_key,
|
||
MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_v_rsv_ruimte_2_alg_ruimte
|
||
GROUP BY res_rsv_ruimte_key, res_ruimte_key) rarg,
|
||
res_ruimte rr,
|
||
alg_v_ruimte_gegevens rg,
|
||
prs_v_perslid_fullnames pc,
|
||
prs_v_perslid_fullnames ph,
|
||
res_disc_params rd
|
||
WHERE rarg.res_ruimte_key IS NOT NULL
|
||
AND rarg.res_ruimte_key = rr.res_ruimte_key
|
||
AND rarg.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND TRUNC (rrr.res_rsv_ruimte_van) = TRUNC (SYSDATE)
|
||
AND rarg.alg_ruimte_key = rg.alg_ruimte_key
|
||
AND rg.alg_gebouw_key IN (50, 110) -- ZL0000-901/Meander + UT0000-901/KTT
|
||
AND rrr.res_rsv_ruimte_host_key = ph.prs_perslid_key
|
||
AND rrr.res_rsv_ruimte_contact_key = pc.prs_perslid_key
|
||
AND rr.res_discipline_key = rd.res_ins_discipline_key;
|
||
|
||
v_first NUMBER;
|
||
v_count NUMBER;
|
||
|
||
PROCEDURE add_row (p_regel IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
INSERT INTO fac_rapport (fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel)
|
||
VALUES (SUBSTR (p_applname, 1, 12), v_count, p_regel);
|
||
|
||
v_count := v_count + 1;
|
||
END;
|
||
|
||
PROCEDURE add_element (p_tag IN VARCHAR2, p_value IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
add_row( '<'
|
||
|| p_tag
|
||
|| '>'
|
||
|| xml.char_to_html (p_value)
|
||
|| '</'
|
||
|| p_tag
|
||
|| '>');
|
||
END;
|
||
BEGIN
|
||
v_count := 0;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = SUBSTR (p_applname, 1, 12);
|
||
|
||
-- header
|
||
add_row ('<?xml version="1.0" encoding="windows-1252" standalone="yes" ?>');
|
||
add_row ('<FACILITOR>');
|
||
add_row ('<RESERVERING>');
|
||
|
||
FOR rec IN c_res
|
||
LOOP
|
||
BEGIN
|
||
add_row ('<ROW>');
|
||
add_element ('RUIMTE_NAAM', rec.res_ruimte_nr);
|
||
add_element ('LOCATIE_CODE', rec.alg_locatie_code);
|
||
add_element ('LOCATIE_NAAM', rec.alg_locatie_omschrijving);
|
||
add_element ('GEBOUW_CODE', rec.alg_gebouw_upper);
|
||
add_element ('GEBOUW_NAAM', rec.alg_gebouw_omschrijving);
|
||
add_element ('VERDIEPING_CODE', rec.alg_verdieping_code);
|
||
add_element ('VERDIEPING_NAAM', rec.alg_verdieping_omschrijving);
|
||
add_element ('RUIMTE_KEY', rec.res_ruimte_key);
|
||
add_element ('VAN', rec.van);
|
||
add_element ('TOT', rec.tot);
|
||
add_element ('GASTHEER_NAAM', rec.HOST);
|
||
add_element ('CONTACT_NAAM', rec.contact);
|
||
add_element ('OMSCHRIJVING', rec.res_rsv_ruimte_omschrijving);
|
||
add_element ('BEZOEKERS_AANGEMELD', rec.bez_aangemeld);
|
||
add_element ('SCHOONMAAKTIJD', rec.schoonmaak);
|
||
add_row ('</ROW>');
|
||
END;
|
||
END LOOP;
|
||
|
||
add_row ('</RESERVERING>');
|
||
add_row ('</FACILITOR>');
|
||
END;
|
||
/
|
||
|
||
|
||
/* Formatted on 7-10-2015 15:42:24 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW kfns_v_rap_actual_cost_tot
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
maand,
|
||
--prs_bedrijf_key,
|
||
fclt_f_leverancier,
|
||
--cp_perslid_key,
|
||
--cp_aanhef,
|
||
--cp_naam,
|
||
--cp_email,
|
||
--cnt_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
aantal,
|
||
kosten
|
||
)
|
||
AS -- Vaste contractkosten over de ACTUAL termijn
|
||
SELECT c.cp_afdeling_key,
|
||
TO_CHAR (SYSDATE, 'yyyy-mm'), -- Deze maand volgende maand factureren (achteraf)
|
||
--c.prs_bedrijf_key,
|
||
c.prs_bedrijf_naam bedrijf,
|
||
--c.cp_perslid_key,
|
||
--c.cp_aanhef,
|
||
--c.cp_naam,
|
||
--c.cp_email,
|
||
--c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
--kc.cnt_kenmerkcontract_waarde,
|
||
c.cnt_contract_nummer, -- Uit deze maand lopend contract, anders geen vaste kosten
|
||
--NULL mld_opdr_key,
|
||
--NULL opdr_id,
|
||
0 aantal,
|
||
ROUND (
|
||
DECODE (COALESCE (c.cnt_contract_termijnkosten, 0),
|
||
0, c.cnt_contract_kosten / 12,
|
||
c.cnt_contract_termijnkosten),
|
||
2)
|
||
+ fac.safe_to_number (COALESCE (ce.cnt_kenmerkcontract_waarde, '0'))
|
||
+ fac.safe_to_number (COALESCE (bm.cnt_kenmerkcontract_waarde, '0'))
|
||
kosten -- Wat als looptijd < jaar?
|
||
FROM (SELECT b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_afdeling_key cp_afdeling_key,
|
||
pcp.prs_perslid_key cp_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
'')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL,
|
||
NULL,
|
||
COALESCE (
|
||
pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email cp_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
c.cnt_contract_kosten,
|
||
c.cnt_contract_termijnkosten
|
||
FROM cnt_v_aanwezigcontract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm
|
||
WHERE c.ins_discipline_key = 141 -- Vaste contracten
|
||
--AND c.cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (LAST_DAY (SYSDATE))
|
||
AND c.cnt_contract_looptijd_tot >= TRUNC (LAST_DAY (SYSDATE))
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key) c
|
||
LEFT JOIN cnt_kenmerkcontract kc
|
||
ON kc.cnt_kenmerk_key = 4 -- Inkoopordernummer NS
|
||
AND c.cnt_contract_key = kc.cnt_contract_key
|
||
LEFT JOIN cnt_kenmerkcontract ce
|
||
ON ce.cnt_kenmerk_key = 102 -- Credit/extra kosten
|
||
AND c.cnt_contract_key = ce.cnt_contract_key
|
||
LEFT JOIN cnt_kenmerkcontract bm
|
||
ON bm.cnt_kenmerk_key = 122 -- Bonus/malus
|
||
AND c.cnt_contract_key = bm.cnt_contract_key
|
||
UNION ALL -- Variabele kosten uit ACTUAL opdrachten op variabele contracten
|
||
SELECT pcp.prs_afdeling_key,
|
||
TO_CHAR (SYSDATE, 'yyyy-mm'), -- Deze maand ORDAFR, volgende maand factureren (achteraf)
|
||
--b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
--pcp.prs_perslid_key cp_perslid_key,
|
||
--DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
-- cp_aanhef,
|
||
--DECODE (
|
||
-- COALESCE (pcp.prs_perslid_voorletters,
|
||
-- SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
-- NULL,
|
||
-- NULL,
|
||
-- COALESCE (pcp.prs_perslid_voorletters,
|
||
-- SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
-- || ' ')
|
||
--|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
-- NULL, NULL,
|
||
-- pcp.prs_perslid_tussenvoegsel || ' ')
|
||
--|| pcp.prs_perslid_naam
|
||
-- cp_naam,
|
||
--pcp.prs_perslid_email cp_email,
|
||
--c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
--kc.cnt_kenmerkcontract_waarde,
|
||
c.cnt_contract_nummer,
|
||
--o.mld_opdr_key,
|
||
-- TO_CHAR (o.mld_melding_key)
|
||
--|| '/'
|
||
--|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
||
-- opdr_id,
|
||
COUNT ( * ) aantal,
|
||
SUM (o.mld_opdr_kosten) kosten
|
||
FROM mld_opdr o,
|
||
fac_tracking t,
|
||
cnt_contract c,
|
||
--cnt_contract c2,
|
||
--mld_melding m,
|
||
--prs_v_perslid_fullnames_all pf,
|
||
--alg_v_allonrgoed_gegevens og,
|
||
--mld_stdmelding sm,
|
||
--ins_tab_discipline td,
|
||
--ins_srtdiscipline sd,
|
||
--prs_kostensoort ksm,
|
||
--prs_kostensoort ksv,
|
||
--prs_kostenplaats kp
|
||
cnt_contract mc,
|
||
prs_bedrijf b,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm
|
||
WHERE o.mld_statusopdr_key = 9
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 70 -- ORDAFR
|
||
AND t.fac_tracking_datum > TRUNC (SYSDATE, 'mm')
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 101 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND o.cnt_contract_key = c.cnt_contract_key
|
||
AND c.ins_discipline_key = 143 -- Variabele contracten
|
||
--AND c1.cnt_contract_nummer_intern = c2.cnt_contract_nummer_intern
|
||
--AND (t.fac_tracking_datum BETWEEN c2.cnt_contract_looptijd_van
|
||
-- AND c2.cnt_contract_looptijd_tot
|
||
-- OR NOT EXISTS
|
||
-- (SELECT 1
|
||
-- FROM cnt_contract
|
||
-- WHERE t.fac_tracking_datum BETWEEN cnt_contract_looptijd_van
|
||
-- AND cnt_contract_looptijd_tot
|
||
-- AND cnt_contract_nummer_intern = c2.cnt_contract_nummer_intern))
|
||
--AND o.mld_melding_key = m.mld_melding_key
|
||
--AND m.prs_perslid_key = pf.prs_perslid_key
|
||
--AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
--AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
--AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
--AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
--AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
--AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
|
||
--AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
--AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
|
||
GROUP BY pcp.prs_afdeling_key,
|
||
TO_CHAR (SYSDATE, 'yyyy-mm'),
|
||
--b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
--c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer;
|
||
|
||
-- Actual regels en basis voor oa. te exporteren/bevriezen regels op de 10e van
|
||
-- de maand; voor de output geldt:
|
||
-- Dat deze de actual vaste contractkosten toont (over afgelopen maand).
|
||
-- Dat deze de actual variabele opdrachten toont (voor 1e ORDAFR).
|
||
-- Dat deze tot de 10e van de huidige maand alleen nog door Kien wijzigbaar is.
|
||
/* Formatted on 7-10-2015 15:44:16 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW kfns_v_actual_fact -- Tbv. FACT_EXPORT!
|
||
(
|
||
prs_afdeling_key,
|
||
maand,
|
||
prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
cp_perslid_key,
|
||
cp_aanhef,
|
||
cp_naam,
|
||
cp_email,
|
||
cnt_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
cm_aanhef,
|
||
cm_naam,
|
||
mld_opdr_key,
|
||
opdr_id,
|
||
aantal,
|
||
kosten
|
||
)
|
||
AS
|
||
SELECT c.cp_afdeling_key, -- Vaste contractkosten over de ACTUAL termijn
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'), -- Afgelopen maand deze maand factureren (achteraf)
|
||
c.prs_bedrijf_key,
|
||
c.prs_bedrijf_naam,
|
||
c.cp_perslid_key,
|
||
c.cp_aanhef,
|
||
c.cp_naam,
|
||
c.cp_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
--kc.cnt_kenmerkcontract_waarde,
|
||
c.cnt_contract_nummer, -- Uit afgelopen maand lopend contract, anders geen vaste kosten
|
||
c.cm_aanhef,
|
||
c.cm_naam,
|
||
NULL mld_opdr_key,
|
||
NULL opdr_id,
|
||
0 aantal,
|
||
ROUND (
|
||
DECODE (COALESCE (c.cnt_contract_termijnkosten, 0),
|
||
0, c.cnt_contract_kosten / 12,
|
||
c.cnt_contract_termijnkosten),
|
||
2)
|
||
+ fac.safe_to_number (COALESCE (ce.cnt_kenmerkcontract_waarde, '0'))
|
||
+ fac.safe_to_number (COALESCE (bm.cnt_kenmerkcontract_waarde, '0'))
|
||
kosten -- Wat als looptijd < jaar?
|
||
FROM (SELECT b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_afdeling_key cp_afdeling_key,
|
||
pcp.prs_perslid_key cp_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
'')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email cp_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
c.cnt_contract_kosten,
|
||
c.cnt_contract_termijnkosten,
|
||
DECODE (pcm.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
'')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam
|
||
FROM cnt_v_aanwezigcontract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm
|
||
WHERE c.ins_discipline_key = 141 -- Vaste contracten
|
||
--AND c.cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
|
||
AND c.cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
|
||
--AND TO_CHAR (SYSDATE, 'dd') < '10' -- Geen goede conditie
|
||
AND NOT EXISTS -- Nog geen entry in eigen tabel
|
||
(SELECT 1
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = 21 -- VasteKostenMnd
|
||
AND fac_usrdata_code =
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
|
||
|| '/'
|
||
|| c.cnt_contract_key)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key) c
|
||
LEFT JOIN cnt_kenmerkcontract kc
|
||
ON kc.cnt_kenmerk_key = 4 -- Inkoopordernummer NS
|
||
AND c.cnt_contract_key = kc.cnt_contract_key
|
||
LEFT JOIN cnt_kenmerkcontract ce
|
||
ON ce.cnt_kenmerk_key = 102 -- Credit/extra kosten
|
||
AND c.cnt_contract_key = ce.cnt_contract_key
|
||
LEFT JOIN cnt_kenmerkcontract bm
|
||
ON bm.cnt_kenmerk_key = 122 -- Bonus/malus
|
||
AND c.cnt_contract_key = bm.cnt_contract_key
|
||
UNION ALL -- Variabele kosten uit ACTUAL opdrachten op variabele contracten
|
||
SELECT pcp.prs_afdeling_key,
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'), -- Voor 1e ORDAFR, deze maand factureren (achteraf)
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_perslid_key cp_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email cp_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
--kc.cnt_kenmerkcontract_waarde,
|
||
c.cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam,
|
||
o.mld_opdr_key,
|
||
TO_CHAR (o.mld_melding_key)
|
||
|| '/'
|
||
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
||
opdr_id,
|
||
1 aantal,
|
||
o.mld_opdr_kosten kosten
|
||
FROM mld_opdr o,
|
||
fac_tracking t,
|
||
cnt_contract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm
|
||
WHERE o.mld_statusopdr_key = 9
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 70 -- ORDAFR
|
||
AND t.fac_tracking_datum < TRUNC (SYSDATE, 'mm')
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 101 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND o.cnt_contract_key = c.cnt_contract_key
|
||
AND c.ins_discipline_key = 143 -- Variabele contracten
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key;
|
||
|
||
-- Te exporteren/bevriezen totalen over voorgaande maand (vast en variabel).
|
||
CREATE OR REPLACE VIEW kfns_v_rap_actual_fact_tot
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
maand,
|
||
--hide_f_bedrijf_key,
|
||
fclt_f_leverancier,
|
||
--hide_f_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
aantal,
|
||
kosten
|
||
)
|
||
AS
|
||
SELECT prs_afdeling_key,
|
||
maand,
|
||
--prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
--cnt_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
SUM (aantal),
|
||
SUM (kosten)
|
||
FROM kfns_v_actual_fact
|
||
GROUP BY prs_afdeling_key,
|
||
maand,
|
||
--prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
--cnt_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr;
|
||
|
||
-- Te exporteren/bevriezen variabele kosten over voorgaande maand (details).
|
||
CREATE OR REPLACE VIEW kfns_v_rap_actual_fact_var
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
maand,
|
||
prio,
|
||
prefix,
|
||
mld_melding_key,
|
||
volgnr,
|
||
mld_opdr_key,
|
||
opdrachttype,
|
||
plaats,
|
||
alg_ruimte_omschrijving,
|
||
mld_stdmelding_oms,
|
||
omschrijving,
|
||
begindatum,
|
||
--begintijd,
|
||
meldingstatus,
|
||
opdrachtstatus,
|
||
einddatum,
|
||
--eindtijd,
|
||
fclt_f_leverancier,
|
||
afhandeling,
|
||
kosten,
|
||
fclt_f_inkoopordernr,
|
||
fclt_x_district
|
||
)
|
||
AS
|
||
SELECT v.prs_afdeling_key,
|
||
v.maand,
|
||
TO_CHAR (m.mld_melding_spoed),
|
||
sd.ins_srtdiscipline_prefix,
|
||
TO_CHAR (m.mld_melding_key),
|
||
TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr),
|
||
TO_CHAR (o.mld_opdr_key),
|
||
ot.mld_typeopdr_omschrijving,
|
||
DECODE (
|
||
og.alg_type,
|
||
'R', og.alg_gebouw_code,
|
||
'V', og.alg_gebouw_code,
|
||
'G', og.alg_gebouw_code,
|
||
'T', og.alg_terreinsector_code,
|
||
l.alg_locatie_code)
|
||
plaatsaanduiding,
|
||
DECODE (og.alg_type, 'R', og.alg_ruimte_omschrijving, NULL)
|
||
alg_ruimte_omschrijving,
|
||
sm.mld_stdmelding_omschrijving,
|
||
o.mld_opdr_omschrijving,
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'dd-mm-yyyy') datum,
|
||
--TO_CHAR (o.mld_opdr_datumbegin, 'hh24:mi') tijd,
|
||
ms.mld_statuses_omschrijving,
|
||
os.mld_statusopdr_omschrijving,
|
||
--TO_CHAR (o.mld_opdr_einddatum, 'dd-mm-yyyy') einddatum,
|
||
TO_CHAR (fac.gettrackingdate ('ORDAFM', o.mld_opdr_key), 'dd-mm-yyyy') einddatum,
|
||
--TO_CHAR (o.mld_opdr_einddatum, 'hh24:mi') eindtijd,
|
||
--COALESCE (b.prs_bedrijf_naam, puv.prs_perslid_naam_full)
|
||
-- uitvoerende,
|
||
v.prs_bedrijf_naam,
|
||
o.mld_opdr_opmerking,
|
||
o.mld_opdr_kosten,
|
||
v.inkoopordernr,
|
||
d.alg_district_omschrijving
|
||
FROM kfns_v_actual_fact v,
|
||
mld_opdr o,
|
||
mld_statusopdr os,
|
||
mld_typeopdr ot,
|
||
--prs_bedrijf b, -- Externe leverancier
|
||
--prs_v_perslid_fullnames_all puv, -- Interne uitvoerende
|
||
mld_melding m,
|
||
mld_statuses ms,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_v_onroerendgoed_gegevens og
|
||
WHERE v.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
--AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
|
||
--AND o.mld_uitvoerende_keys = puv.prs_perslid_key(+)
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_melding_status = ms.mld_statuses_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 m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = d.alg_district_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+);
|
||
|
||
-- Frozen regels en basis voor oa. de notificatie op de 11e van de maand; voor
|
||
-- de output geldt:
|
||
-- Dat deze de frozen vaste contractkosten toont.
|
||
-- Dat deze de frozen variabele opdrachten toont.
|
||
-- Dat de laatst bevroren maand per bedrijf op de 11e wordt genotificeerd (via
|
||
-- extra_key-principe) met daarin de bedragen gegroepeerd per inkoopordernr.
|
||
/* Formatted on 6-8-2015 10:25:35 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW kfns_v_frozen_fact
|
||
(
|
||
prs_afdeling_key,
|
||
maand,
|
||
--prs_bedrijf_key,
|
||
extra_key, -- Moet zo heten!
|
||
prs_bedrijf_naam,
|
||
cp_perslid_key,
|
||
cp_aanhef,
|
||
cp_naam,
|
||
cp_email,
|
||
cnt_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
cm_aanhef,
|
||
cm_naam,
|
||
mld_opdr_key,
|
||
opdr_id,
|
||
aantal,
|
||
kosten
|
||
)
|
||
AS
|
||
SELECT pcp.prs_afdeling_key, -- Vaste contractkosten over de FROZEN termijnen
|
||
SUBSTR (ud.fac_usrdata_code, 1, 7) maand, -- yyyy-mm
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam,
|
||
NULL mld_opdr_key,
|
||
NULL opdr_id,
|
||
0 aantal,
|
||
ud.fac_usrdata_prijs kosten
|
||
FROM fac_usrdata ud,
|
||
cnt_contract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm
|
||
WHERE ud.fac_usrtab_key = 21 -- VasteKostenMnd
|
||
AND SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, '/') + 1) =
|
||
TO_CHAR (c.cnt_contract_key)
|
||
--AND SUBSTR (ud.fac_usrdata_omschr, 1, INSTR (ud.fac_usrdata_omschr, '/') - 1) =
|
||
-- TO_CHAR (b.prs_bedrijf_key)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
|
||
UNION ALL -- Variabele kosten uit FROZEN opdrachten op variabele contracten
|
||
SELECT pcp.prs_afdeling_key,
|
||
o.mld_opdr_ordernr maand,
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL,
|
||
NULL,
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam,
|
||
o.mld_opdr_key,
|
||
TO_CHAR (o.mld_melding_key)
|
||
|| '/'
|
||
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
||
opdr_id,
|
||
1 aantal,
|
||
o.mld_opdr_kosten kosten
|
||
FROM mld_opdr o,
|
||
cnt_contract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm
|
||
WHERE o.mld_statusopdr_key = 7
|
||
AND o.mld_opdr_ordernr IS NOT NULL
|
||
AND o.cnt_contract_key = c.cnt_contract_key
|
||
AND c.ins_discipline_key = 143 -- Variabele contracten (kan niet anders)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key;
|
||
|
||
-- Was 'kfns_v_rap_cost_frozen', die dus droppen!
|
||
-- Geexporteerde/bevroren totalen over voorgaande maanden (vast en variabel).
|
||
CREATE OR REPLACE VIEW kfns_v_rap_frozen_fact_tot
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
fclt_f_maand,
|
||
--hide_f_bedrijf_key,
|
||
fclt_f_leverancier,
|
||
--hide_f_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
aantal,
|
||
kosten
|
||
)
|
||
AS -- Vaste contractkosten over de FROZEN termijnen
|
||
SELECT prs_afdeling_key,
|
||
maand,
|
||
--prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
--cnt_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
SUM (aantal),
|
||
SUM (kosten)
|
||
FROM kfns_v_frozen_fact
|
||
GROUP BY prs_afdeling_key,
|
||
maand,
|
||
--prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
--cnt_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr;
|
||
|
||
-- Geexporteerde/bevroren variabele kosten over voorgaande maanden (details).
|
||
CREATE OR REPLACE VIEW kfns_v_rap_frozen_fact_var
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
fclt_f_maand,
|
||
prio,
|
||
prefix,
|
||
mld_melding_key,
|
||
volgnr,
|
||
mld_opdr_key,
|
||
opdrachttype,
|
||
plaats,
|
||
alg_ruimte_omschrijving,
|
||
mld_stdmelding_oms,
|
||
omschrijving,
|
||
begindatum,
|
||
--begintijd,
|
||
meldingstatus,
|
||
opdrachtstatus,
|
||
einddatum,
|
||
--eindtijd,
|
||
fclt_f_leverancier,
|
||
afhandeling,
|
||
kosten,
|
||
fclt_f_inkoopordernr,
|
||
fclt_x_district
|
||
)
|
||
AS
|
||
SELECT v.prs_afdeling_key,
|
||
v.maand,
|
||
TO_CHAR (m.mld_melding_spoed),
|
||
sd.ins_srtdiscipline_prefix,
|
||
TO_CHAR (m.mld_melding_key),
|
||
TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr),
|
||
TO_CHAR (o.mld_opdr_key),
|
||
ot.mld_typeopdr_omschrijving,
|
||
DECODE (
|
||
og.alg_type,
|
||
'R', og.alg_gebouw_code,
|
||
'V', og.alg_gebouw_code,
|
||
'G', og.alg_gebouw_code,
|
||
'T', og.alg_terreinsector_code,
|
||
l.alg_locatie_code)
|
||
plaatsaanduiding,
|
||
DECODE (og.alg_type, 'R', og.alg_ruimte_omschrijving, NULL)
|
||
alg_ruimte_omschrijving,
|
||
sm.mld_stdmelding_omschrijving,
|
||
o.mld_opdr_omschrijving,
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'dd-mm-yyyy') datum,
|
||
--TO_CHAR (o.mld_opdr_datumbegin, 'hh24:mi') tijd,
|
||
ms.mld_statuses_omschrijving,
|
||
os.mld_statusopdr_omschrijving,
|
||
--TO_CHAR (o.mld_opdr_einddatum, 'dd-mm-yyyy') einddatum,
|
||
TO_CHAR (fac.gettrackingdate ('ORDAFM', o.mld_opdr_key), 'dd-mm-yyyy') einddatum,
|
||
--TO_CHAR (o.mld_opdr_einddatum, 'hh24:mi') eindtijd,
|
||
--COALESCE (b.prs_bedrijf_naam, puv.prs_perslid_naam_full)
|
||
-- uitvoerende,
|
||
v.prs_bedrijf_naam,
|
||
o.mld_opdr_opmerking,
|
||
o.mld_opdr_kosten,
|
||
v.inkoopordernr,
|
||
d.alg_district_omschrijving
|
||
FROM kfns_v_frozen_fact v,
|
||
mld_opdr o,
|
||
mld_statusopdr os,
|
||
mld_typeopdr ot,
|
||
--prs_bedrijf b, -- Externe leverancier
|
||
--prs_v_perslid_fullnames_all puv, -- Interne uitvoerende
|
||
mld_melding m,
|
||
mld_statuses ms,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_v_onroerendgoed_gegevens og
|
||
WHERE v.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
--AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
|
||
--AND o.mld_uitvoerende_keys = puv.prs_perslid_key(+)
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_melding_status = ms.mld_statuses_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 m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = d.alg_district_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+);
|
||
|
||
-- Vaste kosten hebben een kostensoort gekoppeld aan de stdmelding
|
||
-- en hebben GEEN link naar een contract in de opdracht.
|
||
-- Variabele kosten hebben optioneel een kostensoort gekoppeld aan
|
||
-- de stdmelding maar hebben altijd een link naar een contract van het
|
||
-- type variabele kosten.
|
||
CREATE OR REPLACE VIEW kfns_v_rap_kosten_monitor_i
|
||
AS
|
||
SELECT alg_gebouw_code,
|
||
'VAST-' || prs_kostensoort_oms prs_kostensoort_oms,
|
||
prs_kostensoortgrp_key,
|
||
prs_kostensoort_altcode volgorde,
|
||
(SELECT SUM (mld_opdr_kosten)
|
||
FROM mld_opdr o, mld_melding m, mld_stdmelding std
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND o.cnt_contract_key IS NULL
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.prs_kostensoort_key = k.prs_kostensoort_key
|
||
AND m.mld_alg_onroerendgoed_keys = g.alg_gebouw_key
|
||
AND mld_opdr_datumbegin = add_months (TRUNC (SYSDATE, 'Q'), -3))
|
||
bedrag
|
||
FROM alg_gebouw g, prs_kostensoort k
|
||
WHERE alg_gebouw_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT alg_gebouw_code,
|
||
'VAR-' || prs_kostensoortgrp_oms,
|
||
prs_kostensoortgrp_key,
|
||
LPAD (prs_kostensoortgrp_altcode - 2, 3, '0') volgorde,
|
||
(SELECT SUM (mld_opdr_kosten)
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
cnt_contract c,
|
||
prs_kostensoort ks,
|
||
mld_typeopdr ot,
|
||
alg_v_allonroerendgoed aog
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 1
|
||
AND o.cnt_contract_key = c.cnt_contract_key
|
||
AND c.prs_kostensoort_key = ks.prs_kostensoort_key
|
||
AND c.ins_discipline_key = 143 -- variabel
|
||
AND ks.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key
|
||
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
|
||
AND aog.alg_gebouw_key = g.alg_gebouw_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key <> 1 -- project
|
||
AND mld_opdr_datumbegin = add_months (TRUNC (SYSDATE, 'Q'), -3))
|
||
bedrag
|
||
FROM alg_gebouw g, prs_kostensoortgrp kg
|
||
WHERE alg_gebouw_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT alg_gebouw_code,
|
||
'PRJ-' || prs_kostensoortgrp_oms,
|
||
prs_kostensoortgrp_key,
|
||
LPAD (prs_kostensoortgrp_altcode - 1, 3, '0') volgorde,
|
||
(SELECT SUM (mld_opdr_kosten)
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
cnt_contract c,
|
||
prs_kostensoort ks,
|
||
mld_typeopdr ot,
|
||
alg_v_allonroerendgoed aog
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 1
|
||
AND o.cnt_contract_key = c.cnt_contract_key
|
||
AND c.prs_kostensoort_key = ks.prs_kostensoort_key
|
||
AND c.ins_discipline_key = 143 -- variabel
|
||
AND ks.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key
|
||
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
|
||
AND aog.alg_gebouw_key = g.alg_gebouw_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = 1 -- project
|
||
AND mld_opdr_datumbegin = add_months (TRUNC (SYSDATE, 'Q'), -3))
|
||
bedrag
|
||
FROM alg_gebouw g, prs_kostensoortgrp kg
|
||
WHERE alg_gebouw_verwijder IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_rap_kosten_monitor
|
||
(
|
||
ALG_GEBOUW_CODE,
|
||
ALG_GEBOUW_OMSCHRIJVING,
|
||
PRS_KOSTENSOORT_OMS,
|
||
PRS_KOSTENSOORTGRP_OMS,
|
||
VOLGORDE,
|
||
BEDRAG
|
||
)
|
||
AS
|
||
SELECT alg_gebouw_code,
|
||
TO_CHAR (NULL) alg_gebouw_omschrijving,
|
||
prs_kostensoort_oms,
|
||
prs_kostensoortgrp_oms,
|
||
volgorde,
|
||
bedrag
|
||
FROM t_kfns_v_rap_kosten_monitor_i i, prs_kostensoortgrp kg
|
||
WHERE i.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key
|
||
UNION ALL
|
||
SELECT alg_gebouw_code,
|
||
TO_CHAR (NULL) alg_gebouw_omschrijving,
|
||
'SUB-' || kg.prs_kostensoortgrp_oms,
|
||
kg.prs_kostensoortgrp_oms,
|
||
kg.prs_kostensoortgrp_altcode volgorde,
|
||
SUM (bedrag)
|
||
FROM t_kfns_v_rap_kosten_monitor_i i, prs_kostensoortgrp kg
|
||
WHERE i.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key
|
||
AND alg_gebouw_code <> 'A_HEADER'
|
||
GROUP BY kg.prs_kostensoortgrp_oms,
|
||
alg_gebouw_code,
|
||
prs_kostensoortgrp_altcode
|
||
UNION ALL
|
||
SELECT alg_gebouw_code,
|
||
TO_CHAR (NULL) alg_gebouw_omschrijving,
|
||
'TOTAAL',
|
||
' Totaal',
|
||
'999' volgorde,
|
||
SUM (bedrag)
|
||
FROM t_kfns_v_rap_kosten_monitor_i
|
||
WHERE alg_gebouw_code <> 'A_HEADER'
|
||
GROUP BY alg_gebouw_code
|
||
UNION ALL
|
||
SELECT g.alg_gebouw_code,
|
||
TO_CHAR (NULL) alg_gebouw_omschrijving,
|
||
'M2 in beheer',
|
||
' M2',
|
||
'002',
|
||
opp
|
||
FROM ( SELECT alg_gebouw_key,
|
||
alg_gebouw_upper alg_gebouw_code,
|
||
SUM (alg_ruimte_bruto_vloeropp) opp
|
||
FROM alg_v_ruimte_gegevens rg, alg_onrgoedkenmerk aogk
|
||
WHERE aogk.alg_kenmerk_key = 1040
|
||
AND fac.safe_to_number (alg_onrgoedkenmerk_waarde) = 1
|
||
AND rg.alg_ruimte_key = aogk.alg_onrgoed_key
|
||
GROUP BY alg_gebouw_upper, alg_gebouw_key) rg,
|
||
alg_gebouw g
|
||
WHERE g.alg_gebouw_key = rg.alg_gebouw_key(+)
|
||
AND g.alg_gebouw_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT alg_gebouw_code,
|
||
TO_CHAR (NULL) alg_gebouw_omschrijving,
|
||
'M2 Totaal',
|
||
' M2',
|
||
'001',
|
||
SUM (alg_ruimte_bruto_vloeropp)
|
||
FROM alg_v_ruimte_gegevens rg, alg_gebouw g
|
||
WHERE g.alg_gebouw_key = rg.alg_gebouw_key(+)
|
||
AND g.alg_gebouw_verwijder IS NULL
|
||
GROUP BY alg_gebouw_code
|
||
UNION ALL
|
||
SELECT alg_gebouw_code,
|
||
TO_CHAR (NULL) alg_gebouw_omschrijving,
|
||
'Huurkosten Tarief 1',
|
||
' Huur Tarief',
|
||
'003',
|
||
bedrag
|
||
FROM ( SELECT SUM( (subq1.waarde1 * subq2.waarde2)
|
||
- DECODE (subq3.waarde3, NULL, '0', subq3.waarde3))
|
||
bedrag,
|
||
subq1.cnt_alg_plaats_key
|
||
FROM (SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde)
|
||
waarde1,
|
||
ck.cnt_contract_key ky,
|
||
cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 245
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq1,
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde)
|
||
waarde2,
|
||
ck.cnt_contract_key ky,
|
||
cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 181
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq2,
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde)
|
||
waarde3,
|
||
ck.cnt_contract_key ky
|
||
FROM (SELECT subq5.ky
|
||
FROM (SELECT ck.cnt_kenmerkcontract_waarde,
|
||
ck.cnt_contract_key ky
|
||
FROM cnt_kenmerkcontract ck
|
||
WHERE ck.cnt_kenmerk_key = 262
|
||
AND TO_DATE (
|
||
ck.cnt_kenmerkcontract_waarde,
|
||
'DD-MM-YYYY') <= SYSDATE) subq4,
|
||
(SELECT ck.cnt_kenmerkcontract_waarde,
|
||
ck.cnt_contract_key ky
|
||
FROM cnt_kenmerkcontract ck
|
||
WHERE ck.cnt_kenmerk_key = 263
|
||
AND TO_DATE (
|
||
ck.cnt_kenmerkcontract_waarde,
|
||
'DD-MM-YYYY') >= SYSDATE) subq5
|
||
WHERE subq4.ky = subq5.ky) datum,
|
||
cnt_kenmerkcontract ck
|
||
WHERE ck.cnt_kenmerk_key = 264
|
||
AND ck.cnt_contract_key = datum.ky) subq3
|
||
WHERE subq1.ky = subq2.ky(+)
|
||
AND subq1.ky = subq3.ky(+)
|
||
AND subq1.cnt_alg_plaats_key = subq2.cnt_alg_plaats_key
|
||
GROUP BY subq1.cnt_alg_plaats_key) scope,
|
||
alg_gebouw g
|
||
WHERE g.alg_gebouw_key = scope.cnt_alg_plaats_key(+)
|
||
AND g.alg_gebouw_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT alg_gebouw_code,
|
||
TO_CHAR (NULL) alg_gebouw_omschrijving,
|
||
'Huurkosten Tarief 2',
|
||
' Huur Tarief',
|
||
'004',
|
||
bedrag
|
||
FROM ( SELECT SUM( (subq1.waarde1 * subq2.waarde2)
|
||
- DECODE (subq3.waarde3, NULL, '0', subq3.waarde3))
|
||
bedrag,
|
||
subq1.cnt_alg_plaats_key
|
||
FROM (SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde)
|
||
waarde1,
|
||
ck.cnt_contract_key ky,
|
||
cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 321
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq1,
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde)
|
||
waarde2,
|
||
ck.cnt_contract_key ky,
|
||
cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 341
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq2,
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde)
|
||
waarde3,
|
||
ck.cnt_contract_key ky
|
||
FROM (SELECT subq5.ky
|
||
FROM (SELECT ck.cnt_kenmerkcontract_waarde,
|
||
ck.cnt_contract_key ky
|
||
FROM cnt_kenmerkcontract ck
|
||
WHERE ck.cnt_kenmerk_key = 262
|
||
AND TO_DATE (
|
||
ck.cnt_kenmerkcontract_waarde,
|
||
'DD-MM-YYYY') <= SYSDATE) subq4,
|
||
(SELECT ck.cnt_kenmerkcontract_waarde,
|
||
ck.cnt_contract_key ky
|
||
FROM cnt_kenmerkcontract ck
|
||
WHERE ck.cnt_kenmerk_key = 263
|
||
AND TO_DATE (
|
||
ck.cnt_kenmerkcontract_waarde,
|
||
'DD-MM-YYYY') >= SYSDATE) subq5
|
||
WHERE subq4.ky = subq5.ky) datum,
|
||
cnt_kenmerkcontract ck
|
||
WHERE ck.cnt_kenmerk_key = 264
|
||
AND ck.cnt_contract_key = datum.ky) subq3
|
||
WHERE subq1.ky = subq2.ky(+)
|
||
AND subq1.ky = subq3.ky(+)
|
||
AND subq1.cnt_alg_plaats_key = subq2.cnt_alg_plaats_key
|
||
GROUP BY subq1.cnt_alg_plaats_key) scope,
|
||
alg_gebouw g
|
||
WHERE g.alg_gebouw_key = scope.cnt_alg_plaats_key(+)
|
||
AND g.alg_gebouw_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT alg_gebouw_code,
|
||
TO_CHAR (NULL) alg_gebouw_omschrijving,
|
||
'Huur Terrein',
|
||
' Huur Terrein',
|
||
'005',
|
||
bedrag
|
||
FROM
|
||
(SELECT
|
||
SUM ( subq1.waarde1 * subq2.waarde2) bedrag,
|
||
subq1.cnt_alg_plaats_key
|
||
FROM
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde) waarde1,
|
||
ck.cnt_contract_key ky, cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 242
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq1,
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde) waarde2,
|
||
ck.cnt_contract_key ky, cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 185
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq2
|
||
WHERE subq1.ky = subq2.ky(+)
|
||
AND subq1.cnt_alg_plaats_key = subq2.cnt_alg_plaats_key
|
||
GROUP BY subq1.cnt_alg_plaats_key) scope,
|
||
alg_gebouw g
|
||
WHERE
|
||
g.alg_gebouw_key = scope.cnt_alg_plaats_key(+)
|
||
AND g.alg_gebouw_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT alg_gebouw_code,
|
||
TO_CHAR (NULL) alg_gebouw_omschrijving,
|
||
'Huur Stalling',
|
||
' Huur Stalling',
|
||
'006',
|
||
bedrag
|
||
FROM
|
||
(SELECT
|
||
SUM ( subq1.waarde1 * subq2.waarde2) bedrag,
|
||
subq1.cnt_alg_plaats_key
|
||
FROM
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde) waarde1,
|
||
ck.cnt_contract_key ky, cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 243
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq1,
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde) waarde2,
|
||
ck.cnt_contract_key ky, cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 241
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq2
|
||
WHERE subq1.ky = subq2.ky(+)
|
||
AND subq1.cnt_alg_plaats_key = subq2.cnt_alg_plaats_key
|
||
GROUP BY subq1.cnt_alg_plaats_key) scope,
|
||
alg_gebouw g
|
||
WHERE
|
||
g.alg_gebouw_key = scope.cnt_alg_plaats_key(+)
|
||
AND g.alg_gebouw_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT alg_gebouw_code,
|
||
TO_CHAR (NULL) alg_gebouw_omschrijving,
|
||
'Huur Parkeren',
|
||
' Huur Parkeren',
|
||
'007',
|
||
bedrag
|
||
FROM
|
||
(SELECT
|
||
SUM ( subq1.waarde1 * subq2.waarde2) bedrag,
|
||
subq1.cnt_alg_plaats_key
|
||
FROM
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde) waarde1,
|
||
ck.cnt_contract_key ky, cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 244
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq1,
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde) waarde2,
|
||
ck.cnt_contract_key ky, cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 186
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq2
|
||
WHERE subq1.ky = subq2.ky(+)
|
||
AND subq1.cnt_alg_plaats_key = subq2.cnt_alg_plaats_key
|
||
GROUP BY subq1.cnt_alg_plaats_key) scope,
|
||
alg_gebouw g
|
||
WHERE
|
||
g.alg_gebouw_key = scope.cnt_alg_plaats_key(+)
|
||
AND g.alg_gebouw_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT alg_gebouw_code,
|
||
TO_CHAR (NULL) alg_gebouw_omschrijving,
|
||
'VSK',
|
||
' VSK',
|
||
'008',
|
||
bedrag
|
||
FROM (SELECT SUM ((subq1.waarde1
|
||
+ DECODE (subq2.waarde2, NULL, '0', subq2.waarde2))
|
||
* subq3.waarde3)
|
||
bedrag,
|
||
subq1.cnt_alg_plaats_key plaatskey
|
||
FROM (SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde)
|
||
waarde1,
|
||
ck.cnt_contract_key ky,
|
||
cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 181
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq1,
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde)
|
||
waarde2,
|
||
ck.cnt_contract_key ky,
|
||
cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 341
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq2,
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde)
|
||
waarde3,
|
||
ck.cnt_contract_key ky,
|
||
cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 187
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq3
|
||
WHERE subq1.ky = subq2.ky(+)
|
||
AND subq3.ky = subq1.ky(+)
|
||
AND subq3.cnt_alg_plaats_key = subq1.cnt_alg_plaats_key
|
||
GROUP BY subq1.cnt_alg_plaats_key) scope,
|
||
alg_gebouw g
|
||
WHERE g.alg_gebouw_key = scope.plaatskey(+)
|
||
AND g.alg_gebouw_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT alg_gebouw_code,
|
||
TO_CHAR (NULL) alg_gebouw_omschrijving,
|
||
'GWE',
|
||
' GWE',
|
||
'009',
|
||
bedrag
|
||
FROM (SELECT SUM ((subq1.waarde1
|
||
+ DECODE (subq2.waarde2, NULL, '0', subq2.waarde2))
|
||
* subq3.waarde3)
|
||
bedrag,
|
||
subq1.cnt_alg_plaats_key plaatskey
|
||
FROM (SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde)
|
||
waarde1,
|
||
ck.cnt_contract_key ky,
|
||
cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 181
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq1,
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde)
|
||
waarde2,
|
||
ck.cnt_contract_key ky,
|
||
cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 341
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq2,
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde)
|
||
waarde3,
|
||
ck.cnt_contract_key ky,
|
||
cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 401
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq3
|
||
WHERE subq1.ky = subq2.ky(+)
|
||
AND subq3.ky = subq1.ky(+)
|
||
AND subq3.cnt_alg_plaats_key = subq1.cnt_alg_plaats_key
|
||
GROUP BY subq1.cnt_alg_plaats_key) scope,
|
||
alg_gebouw g
|
||
WHERE g.alg_gebouw_key = scope.plaatskey(+)
|
||
AND g.alg_gebouw_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT alg_gebouw_code,
|
||
TO_CHAR (NULL) alg_gebouw_omschrijving,
|
||
'ZL',
|
||
' ZL',
|
||
'0091',
|
||
bedrag
|
||
FROM (SELECT SUM ((subq1.waarde1
|
||
+ DECODE (subq2.waarde2, NULL, '0', subq2.waarde2))
|
||
* subq3.waarde3)
|
||
bedrag,
|
||
subq1.cnt_alg_plaats_key plaatskey
|
||
FROM (SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde)
|
||
waarde1,
|
||
ck.cnt_contract_key ky,
|
||
cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 181
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq1,
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde)
|
||
waarde2,
|
||
ck.cnt_contract_key ky,
|
||
cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 341
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq2,
|
||
(SELECT fac.safe_to_number (ck.cnt_kenmerkcontract_waarde)
|
||
waarde3,
|
||
ck.cnt_contract_key ky,
|
||
cp.cnt_alg_plaats_key
|
||
FROM cnt_kenmerkcontract ck, cnt_contract_plaats cp
|
||
WHERE ck.cnt_kenmerk_key = 402
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND ck.cnt_contract_key = cp.cnt_contract_key
|
||
AND ck.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL) subq3
|
||
WHERE subq1.ky = subq2.ky(+)
|
||
AND subq3.ky = subq1.ky(+)
|
||
AND subq3.cnt_alg_plaats_key = subq1.cnt_alg_plaats_key
|
||
GROUP BY subq1.cnt_alg_plaats_key) scope,
|
||
alg_gebouw g
|
||
WHERE g.alg_gebouw_key = scope.plaatskey(+)
|
||
AND g.alg_gebouw_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT alg_gebouw_code,
|
||
alg_gebouw_omschrijving,
|
||
'Omschrijving',
|
||
' Omschrijving',
|
||
'000',
|
||
0
|
||
FROM alg_gebouw g
|
||
WHERE g.alg_gebouw_verwijder IS NULL;
|
||
|
||
-- import tbv kostenmonitor
|
||
CREATE OR REPLACE PROCEDURE kfns_import_vaste_kosten (p_import_key IN NUMBER)
|
||
AS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (1000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2(1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_count NUMBER;
|
||
v_ongeldig NUMBER (1);
|
||
v_mode NUMBER (1);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_all_null BOOLEAN;
|
||
v_count_error NUMBER (10);
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
c_mld_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE
|
||
:= mld_t_uitvoertijd (2, 'D');
|
||
-- De importvelden:
|
||
v_periode VARCHAR2 (255);
|
||
v_gebouw_code VARCHAR2 (255);
|
||
v_gebouw_omschrijving VARCHAR(255);
|
||
v_kostensoort_oms VARCHAR2 (255);
|
||
v_bedrijf_naam VARCHAR2 (255);
|
||
v_opdr_kosten VARCHAR2 (255);
|
||
v_contract_nr VARCHAR2 (255);
|
||
|
||
v_gebouw_key alg_gebouw.alg_gebouw_key%TYPE;
|
||
v_locatie_key alg_locatie.alg_locatie_key%TYPE;
|
||
v_stdmelding_key mld_stdmelding.mld_stdmelding_key%TYPE;
|
||
v_bedrijf_key prs_bedrijf.prs_bedrijf_key%TYPE;
|
||
v_mld_opdr_bedrijfopdr_volgnr mld_opdr.mld_opdr_bedrijfopdr_volgnr%TYPE;
|
||
v_melding_key mld_melding.mld_melding_key%TYPE;
|
||
v_opdr_key mld_opdr.mld_opdr_key%TYPE;
|
||
v_contract_key cnt_contract.cnt_contract_key%TYPE;
|
||
v_startdate DATE;
|
||
v_periodestart DATE;
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
-- Bepaal het begin van het vorige Kwartaal
|
||
v_startdate := add_months (TRUNC (SYSDATE, 'Q'), -3);
|
||
|
||
v_count_error := 0;
|
||
header_is_valid := 0;
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
|
||
v_newline := rec.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen te importeren rij';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_periode);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_gebouw_omschrijving);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_gebouw_code);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_kostensoort_oms);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_contract_nr);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_bedrijf_naam);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_opdr_kosten);
|
||
|
||
v_aanduiding := v_gebouw_code || '|' || v_kostensoort_oms;
|
||
v_opdr_kosten := REPLACE(v_opdr_kosten, ',', '.');
|
||
dbms_output.put_line('aanduiding: ' || v_aanduiding);
|
||
IF v_periode IS NOT NULL AND (fac.safe_to_number(v_opdr_kosten) <> 0 OR header_is_valid = 0)
|
||
THEN
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (v_periode) = 'PERIODE'
|
||
AND UPPER (v_kostensoort_oms) = 'KOSTENSOORT'
|
||
AND UPPER (v_opdr_kosten) = 'BEDRAG'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
dbms_output.put_line('header is valid: ' || v_aanduiding);
|
||
v_count_tot := v_count_tot + 1;
|
||
v_periodestart :=
|
||
fac.safe_to_date (
|
||
SUBSTR (v_periode, 1, 4) || LPAD ( ( (SUBSTR(v_periode,6,1) - 1) * 3) + 1, 2, '0') || '01',
|
||
'yyyymmdd');
|
||
|
||
IF v_periodestart = v_startdate
|
||
THEN
|
||
v_errorhint := 'Vind stdmelding';
|
||
|
||
SELECT mld_stdmelding_key
|
||
INTO v_stdmelding_key
|
||
FROM mld_stdmelding std, prs_kostensoort ks
|
||
WHERE std.prs_kostensoort_key = ks.prs_kostensoort_key
|
||
AND ks.prs_kostensoort_oms = v_kostensoort_oms;
|
||
|
||
v_errorhint := 'Vind gebouw';
|
||
|
||
SELECT alg_gebouw_key, alg_locatie_key
|
||
INTO v_gebouw_key, v_locatie_key
|
||
FROM alg_gebouw
|
||
WHERE alg_gebouw_verwijder IS NULL AND alg_gebouw_code = v_gebouw_code;
|
||
|
||
v_errorhint := 'Vind uitvoerende';
|
||
|
||
SELECT prs_bedrijf_key
|
||
INTO v_bedrijf_key
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND prs_bedrijf_uitvoerende = 1
|
||
AND prs_bedrijf_naam = v_bedrijf_naam;
|
||
|
||
v_errorhint := 'Kijk of melding bestaat';
|
||
|
||
BEGIN
|
||
SELECT mld_melding_key
|
||
INTO v_melding_key
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = v_stdmelding_key
|
||
AND mld_alg_onroerendgoed_keys = v_gebouw_key
|
||
AND v_startdate BETWEEN mld_melding_datum AND mld_melding_einddatum;
|
||
dbms_output.put_line('melding bestaat: ' || v_aanduiding);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO mld_melding (mld_melding_omschrijving,
|
||
mld_melding_onderwerp,
|
||
mld_kosten_klant,
|
||
prs_perslid_key,
|
||
prs_kostenplaats_key,
|
||
mld_stdmelding_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_einddatum,
|
||
mld_melding_datum,
|
||
mld_melding_t_uitvoertijd,
|
||
mld_meldbron_key,
|
||
mld_melding_module,
|
||
mld_melding_spoed)
|
||
VALUES ('Vaste kosten:' || v_periode,
|
||
'Vaste kosten:' || v_periode,
|
||
1,
|
||
4, -- FACILITOR
|
||
52, -- KIEN
|
||
v_stdmelding_key,
|
||
v_locatie_key,
|
||
v_gebouw_key,
|
||
ADD_MONTHS (TRUNC (v_startdate, 'Y'), 12) - 1,
|
||
TRUNC (v_startdate, 'Y'),
|
||
c_mld_uitvoertijd,
|
||
5,
|
||
'MLD',
|
||
3)
|
||
RETURNING mld_melding_key
|
||
INTO v_melding_key;
|
||
dbms_output.put_line('melding is toegevoegd: ' || v_aanduiding);
|
||
|
||
mld.setmeldingstatus (v_melding_key, 2, NULL);
|
||
mld.setmeldingstatus (v_melding_key, 4, NULL);
|
||
END;
|
||
|
||
IF v_contract_nr IS NOT NULL
|
||
THEN
|
||
v_errorhint := 'Zoek het contract';
|
||
|
||
SELECT cnt_contract_key
|
||
INTO v_contract_key
|
||
FROM cnt_contract c
|
||
WHERE cnt_contract_verwijder IS NULL
|
||
AND c.cnt_prs_bedrijf_key = v_bedrijf_key
|
||
AND c.ins_discipline_key = 143 -- variabel
|
||
AND 'C' || cnt_contract_nummer_intern || '.' || cnt_contract_versie = v_contract_nr;
|
||
END IF;
|
||
|
||
v_errorhint := 'Kijk of opdracht bestaat';
|
||
|
||
BEGIN
|
||
dbms_output.put_line('bestaat de opdracht: ' || v_aanduiding);
|
||
SELECT mld_opdr_key
|
||
INTO v_opdr_key
|
||
FROM mld_opdr o
|
||
WHERE o.mld_melding_key = v_melding_key
|
||
AND v_startdate BETWEEN mld_opdr_datumbegin AND mld_opdr_einddatum
|
||
AND ( ( v_contract_key IS NULL AND o.cnt_contract_key IS NULL)
|
||
OR o.cnt_contract_key = v_contract_key)
|
||
AND o.mld_uitvoerende_keys = v_bedrijf_key;
|
||
|
||
dbms_output.put_line('opdracht bestaat: ' || v_aanduiding);
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_kosten = ROUND (v_opdr_kosten, 2),
|
||
mld_opdr_materiaal = ROUND (v_opdr_kosten, 2)
|
||
WHERE mld_opdr_key = v_opdr_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
dbms_output.put_line('bepaal opdr volgnr: ' || v_aanduiding);
|
||
v_mld_opdr_bedrijfopdr_volgnr :=
|
||
mld.bepaalopdrmeldingvolgnr (v_melding_key);
|
||
|
||
dbms_output.put_line('toevoegen opdracht: ' || v_aanduiding);
|
||
INSERT INTO mld_opdr (mld_melding_key,
|
||
prs_kostenplaats_key,
|
||
mld_statusopdr_key,
|
||
mld_typeopdr_key,
|
||
prs_perslid_key,
|
||
mld_uitvoerende_keys,
|
||
mld_opdr_datumbegin,
|
||
mld_opdr_einddatum,
|
||
mld_opdr_module,
|
||
mld_opdr_omschrijving,
|
||
mld_opdr_materiaal,
|
||
mld_opdr_kosten,
|
||
mld_opdr_bedrijfopdr_volgnr,
|
||
cnt_contract_key)
|
||
VALUES( v_melding_key,
|
||
52, -- KIEN
|
||
5, -- uitgegeven
|
||
481, -- administratieve opdracht
|
||
4, -- facilitor
|
||
v_bedrijf_key,
|
||
v_periodestart,
|
||
ADD_MONTHS (v_periodestart, 3) - 1,
|
||
'MLD',
|
||
'Vaste kosten:' || v_periode,
|
||
ROUND (v_opdr_kosten, 2),
|
||
ROUND (v_opdr_kosten, 2),
|
||
v_mld_opdr_bedrijfopdr_volgnr,
|
||
v_contract_key);
|
||
END;
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Ongeldige periode opgegeven ' || v_periode || '-' || v_periodestart || ' - STRING:' ||SUBSTR (v_periode, 1, 4) || LPAD ( ( (SUBSTR(v_periode,6,1) - 1) * 3) + 1, 2, '0') || '01',
|
||
'');
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
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_aanduiding || ' | ' || v_errorhint);
|
||
END;
|
||
END loop;
|
||
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || 'Ongeldig importbestand',
|
||
'Geen geldige headerregel aanwezig');
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'Import vast kosten: aantal ingelezen regels: ' || TO_CHAR (v_count_tot),
|
||
'');
|
||
END IF;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_aanduiding || ' | ' || v_errorhint);
|
||
END kfns_import_vaste_kosten;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE kfns_update_vaste_kosten (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
NULL;
|
||
END kfns_update_vaste_kosten;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE kfns_select_fact (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
-- Bevries vaste contractkosten in eigen tabel (TODO/incl. malus?).
|
||
CURSOR c1
|
||
IS
|
||
SELECT maand, prs_bedrijf_key, cnt_contract_key, inkoopordernr, kosten
|
||
FROM kfns_v_actual_fact
|
||
WHERE mld_opdr_key IS NULL;
|
||
|
||
-- Zet "variabele" opdrachten die voor de 1e zijn afgerond op AV.
|
||
-- Alleen op variabele contracten.
|
||
CURSOR c2
|
||
IS
|
||
SELECT mld_opdr_key
|
||
FROM kfns_v_actual_fact
|
||
WHERE mld_opdr_key IS NOT NULL;
|
||
|
||
-- Zet "inclusief" opdrachten die voor de 1e zijn gesloten op AV.
|
||
-- Afgerond/kosten meerekenen op vaste contracten en geen dispuut
|
||
-- Afgemeld/kosten niet meerekenen, geen offerteaanvraag en geen dispuut
|
||
-- Afgerond/kosten niet meerekenen en geen dispuut (= geaccepteerde offerteaanvragen)
|
||
CURSOR c3
|
||
IS
|
||
SELECT mld_opdr_key
|
||
FROM mld_opdr o, cnt_contract c, mld_typeopdr ot
|
||
WHERE o.mld_statusopdr_key = 9 -- KV
|
||
AND o.cnt_contract_key = c.cnt_contract_key
|
||
AND c.ins_discipline_key = 141 -- Vaste contracten
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 1 -- Kosten meerekenen=Ja
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 101 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
|
||
UNION ALL
|
||
SELECT mld_opdr_key
|
||
FROM mld_opdr o, mld_typeopdr ot
|
||
WHERE o.mld_statusopdr_key = 6 -- TV
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 0 -- Kosten meerekenen=Nee
|
||
AND ot.mld_typeopdr_key != 283 -- Offerteaanvraag
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 101 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
|
||
UNION ALL
|
||
SELECT mld_opdr_key
|
||
FROM mld_opdr o, mld_typeopdr ot
|
||
WHERE o.mld_statusopdr_key = 9 -- KV (ooit met kosten en Offerteaanvragen)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 0 -- Kosten meerekenen=Nee
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 101 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND (fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
|
||
OR fac.gettrackingdate ('ORDOOK', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm'));
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER (10);
|
||
BEGIN
|
||
-- Op 10e dag van de maand (via scheduled task):
|
||
-- 1. Bevries vaste contractkosten in eigen tabel (incl. malus?).
|
||
-- 2. Zet "variabele" opdrachten die voor de 1e zijn afgerond op AV.
|
||
-- 3. Zet "inclusief" opdrachten die voor de 1e zijn gesloten op AV.
|
||
-- x. Doe niets met afgewezen/geannuleerde opdrachten?
|
||
|
||
v_count := 0;
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
v_errormsg := 'Fout toevoegen vaste contractkosten';
|
||
|
||
INSERT INTO fac_usrdata (fac_usrtab_key,
|
||
fac_usrdata_code,
|
||
fac_usrdata_omschr,
|
||
fac_usrdata_aanmaak,
|
||
fac_usrdata_vervaldatum,
|
||
fac_usrdata_prijs)
|
||
VALUES (21, -- VasteKostenMnd
|
||
rec.maand || '/' || TO_CHAR (rec.cnt_contract_key),
|
||
TO_CHAR (rec.prs_bedrijf_key) || '/' || rec.inkoopordernr, -- TODO: Of weg?
|
||
SYSDATE,
|
||
NULL,
|
||
rec.kosten);
|
||
|
||
v_count := v_count + 1;
|
||
|
||
COMMIT;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S',
|
||
'#Vaste contractkosten bevroren: ' || TO_CHAR (v_count), '');
|
||
COMMIT;
|
||
|
||
v_count := 0;
|
||
|
||
FOR rec IN c2
|
||
LOOP
|
||
v_errormsg := 'Fout bijwerken ordernummer (variabele opdrachten).';
|
||
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_ordernr = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
|
||
WHERE mld_opdr_key = rec.mld_opdr_key;
|
||
|
||
v_errormsg := 'Fout bijwerken status (variabele opdrachten).';
|
||
|
||
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 4);
|
||
|
||
v_count := v_count + 1;
|
||
|
||
COMMIT;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S',
|
||
'#Variabele opdrachten bevroren: ' || TO_CHAR (v_count), '');
|
||
COMMIT;
|
||
|
||
v_count := 0;
|
||
|
||
FOR rec IN c3
|
||
LOOP
|
||
v_errormsg := 'Fout bijwerken status (inclusief opdrachten).';
|
||
|
||
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 4);
|
||
|
||
v_count := v_count + 1;
|
||
|
||
COMMIT;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S',
|
||
'#Inclusief opdrachten bevroren: ' || TO_CHAR (v_count), '');
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.writelog (p_applname, 'E', v_errormsg,
|
||
'Proces FACT_EXPORT afgebroken!');
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
|
||
-- Dummy export AUTOCLOSE (elk kwartier zoals voor OPDRSTAT_STRUKTON-import en
|
||
-- RES_RUIMTE_XML-export)!
|
||
-- KFNS#34395: En toekennen/afpakken fac_groep_key=122 (aan @nedtrain-ers).
|
||
-- KFNS#34522: En toekennen/afpakken fac_groep_key=681 (aan niet-@nsstation-ers).
|
||
-- KFNS#34268: En verwijderen inactieve accounts (180 dagen niet ingelogd).
|
||
/* Formatted on 30-11-2015 22:22:22 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE kfns_select_autoclose (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
-- Cursor loopt over alle bestelopdracht-items met status 'In bestelling';
|
||
-- deze worden verondersteld te zijn geleverd!
|
||
CURSOR cboi
|
||
IS
|
||
SELECT DISTINCT boi.bes_bestelopdr_key, bo.bes_bestelopdr_status
|
||
FROM bes_bestelopdr bo,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg
|
||
WHERE bo.bes_bestelopdr_status IN (3, 4) -- In behandeling/bestelling
|
||
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key IN (401, 402); -- Ontvangst/Uitgifte
|
||
|
||
-- Cursor loopt over alle bestelling-items met status 'Besteld' waarvan
|
||
-- de bijbehorende bestelopdracht-items zijn geleverd; deze worden dan ook
|
||
-- gesloten!
|
||
CURSOR cbi
|
||
IS
|
||
SELECT DISTINCT bi.bes_bestelling_key
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
bes_bestelopdr_item boi
|
||
WHERE b.bes_bestelling_status = 5 -- Besteld
|
||
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
||
--AND bi.bes_bestelling_item_aantal != COALESCE (bi.bes_bestelling_item_aantalontv, 0)
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key IN (401, 402) -- Ontvangst/Uitgifte
|
||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND boi.bes_bestelopdr_item_aantal = boi.bes_bestelopdr_item_aantalontv;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER;
|
||
BEGIN
|
||
v_errormsg := 'Fout leveren bestelopdracht';
|
||
|
||
FOR rec IN cboi
|
||
LOOP
|
||
IF rec.bes_bestelopdr_status = 3 -- In behandeling
|
||
THEN
|
||
UPDATE bes_bestelopdr
|
||
SET bes_bestelopdr_status = 4 -- In bestelling
|
||
WHERE bes_bestelopdr_key = rec.bes_bestelopdr_key;
|
||
END IF;
|
||
|
||
-- Zeg dat alles geleverd is wat besteld is.
|
||
UPDATE bes_bestelopdr_item
|
||
SET bes_bestelopdr_item_aantalontv = bes_bestelopdr_item_aantal
|
||
WHERE bes_bestelopdr_key = rec.bes_bestelopdr_key;
|
||
|
||
bes.updatebestelopdrstatus (rec.bes_bestelopdr_key, NULL);
|
||
END LOOP;
|
||
|
||
v_errormsg := 'Fout sluiten bestelaanvraag';
|
||
|
||
FOR rec IN cbi
|
||
LOOP
|
||
-- Sluit alle aanvraagregels die nu compleet geleverd zijn.
|
||
UPDATE bes_bestelling_item
|
||
SET bes_bestelling_item_aantalontv = bes_bestelling_item_aantal
|
||
WHERE bes_bestelling_key = rec.bes_bestelling_key;
|
||
|
||
bes.updatebestellingstatus (rec.bes_bestelling_key, NULL);
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
|
||
v_errormsg := 'Fout toekennen @nedtrain.nl-rol';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM prs_perslid p
|
||
WHERE UPPER (p.prs_perslid_email) LIKE '%@NEDTRAIN.NL%'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE gg.fac_groep_key = 122
|
||
AND gg.prs_perslid_key = p.prs_perslid_key);
|
||
|
||
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
||
SELECT 122, prs_perslid_key
|
||
FROM prs_perslid p
|
||
WHERE UPPER (p.prs_perslid_email) LIKE '%@NEDTRAIN.NL%'
|
||
AND NOT EXISTS -- Nog niet in autorisatiegroep 122!
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE gg.fac_groep_key = 122
|
||
AND gg.prs_perslid_key = p.prs_perslid_key);
|
||
|
||
COMMIT;
|
||
/*
|
||
v_errormsg := 'Fout afpakken @nedtrain.nl-rol';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE gg.fac_groep_key = 122
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_perslid p
|
||
WHERE UPPER (p.prs_perslid_email) LIKE '%@NEDTRAIN.NL%'
|
||
AND p.prs_perslid_key = gg.prs_perslid_key);
|
||
|
||
DELETE FROM fac_gebruikersgroep gg
|
||
WHERE gg.fac_groep_key = 122
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_perslid p
|
||
WHERE UPPER (p.prs_perslid_email) LIKE '%@NEDTRAIN.NL%'
|
||
AND p.prs_perslid_key = gg.prs_perslid_key);
|
||
|
||
COMMIT;
|
||
*/
|
||
v_errormsg := 'Fout toekennen niet-@nsstations.nl-rol';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM prs_perslid p
|
||
WHERE UPPER (p.prs_perslid_email) NOT LIKE '%@NSSTATIONS.NL%'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE gg.fac_groep_key = 681
|
||
AND gg.prs_perslid_key = p.prs_perslid_key);
|
||
|
||
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
||
SELECT 681, prs_perslid_key
|
||
FROM prs_perslid p
|
||
WHERE UPPER (p.prs_perslid_email) NOT LIKE '%@NSSTATIONS.NL%'
|
||
AND NOT EXISTS -- Nog niet in autorisatiegroep 681!
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE gg.fac_groep_key = 681
|
||
AND gg.prs_perslid_key = p.prs_perslid_key);
|
||
|
||
COMMIT;
|
||
/*
|
||
v_errormsg := 'Fout afpakken niet-@nsstations.nl-rol';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE gg.fac_groep_key = 681
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_perslid p
|
||
WHERE UPPER (p.prs_perslid_email) LIKE '%@NSSTATIONS.NL%'
|
||
AND p.prs_perslid_key = gg.prs_perslid_key);
|
||
|
||
DELETE FROM fac_gebruikersgroep gg
|
||
WHERE gg.fac_groep_key = 681
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_perslid p
|
||
WHERE UPPER (p.prs_perslid_email) LIKE '%@NSSTATIONS.NL%'
|
||
AND p.prs_perslid_key = gg.prs_perslid_key);
|
||
|
||
COMMIT;
|
||
*/
|
||
v_errormsg := 'Fout inactiveren persoon';
|
||
v_count := 0;
|
||
|
||
FOR rec
|
||
IN ( SELECT p.prs_perslid_key, p.prs_perslid_oslogin, COUNT (vp.prs_perslid_key) aant
|
||
FROM prs_v_aanwezigperslid p, prs_v_verplichting_keys vp
|
||
WHERE TO_CHAR (SYSDATE, 'dd') = '01' -- Op 1e van de maand >180d niet ingelogd
|
||
AND p.prs_perslid_login < TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm')
|
||
AND p.prs_perslid_key = vp.prs_perslid_key(+) -- Actuele verplichtingen?
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_v_afdeling_boom ab
|
||
WHERE ab.prs_bedrijf_key = 22 -- NS
|
||
AND ab.prs_afdeling_key = p.prs_afdeling_key)
|
||
GROUP BY p.prs_perslid_key, p.prs_perslid_oslogin)
|
||
LOOP
|
||
BEGIN
|
||
IF rec.aant = 0
|
||
THEN
|
||
UPDATE prs_perslid
|
||
SET prs_perslid_verwijder = SYSDATE
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
v_count := v_count + 1;
|
||
ELSE
|
||
fac.writelog (
|
||
p_applname, 'I',
|
||
'[' || rec.prs_perslid_oslogin || ']/#Verplichtingen: ' || TO_CHAR (rec.aant),
|
||
'Persoon niet geinactiveerd');
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN -- Kennelijk heeft persoon toch nog ernstige verplichtingen!
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (
|
||
p_applname, 'E',
|
||
'[' || rec.prs_perslid_oslogin || ']/' || v_errormsg,
|
||
'Fout inactiveren persoon');
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', '#Personen geinactiveerd:' || TO_CHAR (v_count), '');
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.writelog (p_applname, 'E', v_errormsg,
|
||
'Proces AUTOCLOSE afgebroken!');
|
||
END kfns_select_autoclose;
|
||
/
|
||
|
||
|
||
/* Formatted on 12-9-2014 17:42:24 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW kfns_v_imp_bes_artikel_sync
|
||
(
|
||
fclt_f_catalogusnaam,
|
||
leverancier,
|
||
catdatum,
|
||
artikelnr,
|
||
groep,
|
||
omschrijving,
|
||
prijs,
|
||
eenheid,
|
||
picture,
|
||
orderaantal,
|
||
tax,
|
||
duedate,
|
||
inkoopprijs,
|
||
minimum,
|
||
staffeltabel,
|
||
wijzigdagen,
|
||
annuleerdagen,
|
||
opmerking
|
||
)
|
||
AS
|
||
SELECT td.ins_discipline_omschrijving,
|
||
b.prs_bedrijf_naam,
|
||
TO_CHAR (td.ins_discipline_aanmaak, 'yyyymmdd'),
|
||
sd.bes_srtdeel_nr,
|
||
sg.bes_srtgroep_omschrijving,
|
||
sd.bes_srtdeel_omschrijving,
|
||
TO_CHAR (bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL)),
|
||
sd.bes_srtdeel_eenheid,
|
||
sd.bes_srtdeel_image,
|
||
TO_CHAR (sd.bes_srtdeel_veelvoud),
|
||
TO_CHAR (sd.bes_srtdeel_btw),
|
||
TO_CHAR (sd.bes_srtdeel_vervaldatum, 'yyyymmdd'),
|
||
TO_CHAR (bes.getsrtdeelinkprijs (sd.bes_srtdeel_key, NULL)),
|
||
NULL,
|
||
bs.bes_staffeltabel_naam,
|
||
TO_CHAR (sd.bes_srtdeel_wijzigdagen),
|
||
TO_CHAR (sd.bes_srtdeel_annuleerdagen),
|
||
sd.bes_srtdeel_opmerking
|
||
FROM ins_tab_discipline td, bes_srtgroep sg,
|
||
bes_srtdeel sd,
|
||
prs_bedrijf b,
|
||
bes_staffeltabel bs
|
||
WHERE td.ins_discipline_module = 'BES'
|
||
AND td.ins_discipline_verwijder IS NULL
|
||
AND td.ins_discipline_key = sg.ins_discipline_key
|
||
AND sg.bes_srtgroep_verwijder IS NULL
|
||
AND sg.bes_srtgroep_key = sd.bes_srtgroep_key
|
||
AND sd.bes_srtdeel_verwijder IS NULL
|
||
AND sd.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND bs.bes_staffeltabel_key(+) = sd.bes_staffeltabel_key;
|
||
|
||
/* Formatted on 30-1-2014 9:56:26 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW kfns_v_rap_mldinsres_qrc
|
||
(
|
||
fclt_f_soortmelding,
|
||
fclt_f_locatie,
|
||
fclt_f_gebouw,
|
||
fclt_f_verdieping,
|
||
plaats,
|
||
ruimte_key,
|
||
ruimtefunctie,
|
||
fclt_f_objectdiscipline,
|
||
fclt_f_objectgroep,
|
||
objectsoort_key,
|
||
fclt_f_objectsoort,
|
||
objectsoort_code,
|
||
deel_key,
|
||
deel_omschrijving,
|
||
deel_upper,
|
||
hide_f_bookmark_id,
|
||
variabele
|
||
)
|
||
AS
|
||
SELECT 'Melding op object',
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
o.alg_plaatsaanduiding plaats,
|
||
NULL ruimte_key,
|
||
sr.alg_srtruimte_omschrijving,
|
||
disc.ins_discipline_omschrijving,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_key,
|
||
sd.ins_srtdeel_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_upper,
|
||
b.fac_bookmark_id,
|
||
'INS_KEY'
|
||
FROM fac_bookmark b,
|
||
ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_discipline disc,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l,
|
||
alg_ruimte r,
|
||
alg_srtruimte sr
|
||
WHERE UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
|
||
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/INS_DEEL.ASP'
|
||
--AND TRUNC (b.fac_bookmark_aanmaak) = TO_DATE ('xx062015', 'ddmmyyyy')
|
||
AND d.ins_alg_ruimte_type IN ('T', 'R', 'W')
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = disc.ins_discipline_key
|
||
AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND d.ins_alg_ruimte_type = o.alg_onroerendgoed_type
|
||
AND d.ins_alg_locatie_key = o.alg_locatie_key -- redundant?
|
||
AND o.alg_locatie_key = l.alg_locatie_key
|
||
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
UNION ALL
|
||
SELECT 'Melding op ruimte',
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
o.alg_plaatsaanduiding plaats,
|
||
r.alg_ruimte_key ruimte_key,
|
||
sr.alg_srtruimte_omschrijving,
|
||
NULL ins_discipline_omschrijving,
|
||
NULL ins_srtgroep_omschrijving,
|
||
NULL ins_srtdeel_key,
|
||
NULL ins_srtdeel_omschrijving,
|
||
NULL ins_srtdeel_code,
|
||
NULL ins_deel_key,
|
||
NULL ins_deel_omschrijving,
|
||
NULL ins_deel_upper,
|
||
b.fac_bookmark_id,
|
||
'RUIMTE_KEY'
|
||
FROM fac_bookmark b,
|
||
alg_v_aanwezigruimte r,
|
||
alg_srtruimte sr,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l
|
||
WHERE UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
|
||
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/MELDING.ASP'
|
||
AND INSTR (UPPER (fac_bookmark_query), 'STDM_KEY') = 0
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
AND r.alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND o.alg_onroerendgoed_type = 'R'
|
||
AND o.alg_locatie_key = l.alg_locatie_key
|
||
UNION ALL
|
||
SELECT 'Melding op gebouw',
|
||
l.alg_locatie_omschrijving,
|
||
g.alg_gebouw_omschrijving,
|
||
NULL alg_verdieping_omschrijving,
|
||
l.alg_locatie_code || '-' || g.alg_gebouw_code plaats,
|
||
g.alg_gebouw_key ruimte_key,
|
||
sg.alg_srtgebouw_omschrijving,
|
||
NULL ins_discipline_omschrijving,
|
||
NULL ins_srtgroep_omschrijving,
|
||
NULL ins_srtdeel_key,
|
||
NULL ins_srtdeel_omschrijving,
|
||
NULL ins_srtdeel_code,
|
||
NULL ins_deel_key,
|
||
NULL ins_deel_omschrijving,
|
||
NULL ins_deel_upper,
|
||
b.fac_bookmark_id,
|
||
'GEBOUW_KEY'
|
||
FROM fac_bookmark b,
|
||
alg_v_aanweziggebouw g,
|
||
alg_v_aanwezigsrtgebouw sg,
|
||
alg_locatie l
|
||
WHERE UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
|
||
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/MELDING.ASP'
|
||
AND INSTR (UPPER (fac_bookmark_query), 'STDM_KEY') = 0
|
||
AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key(+)
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
UNION ALL
|
||
SELECT 'Reserveer ruimte',
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
rr.res_ruimte_nr plaats,
|
||
rar.res_ruimte_key ruimte_key,
|
||
sr.alg_srtruimte_omschrijving,
|
||
NULL ins_discipline_omschrijving,
|
||
NULL ins_srtgroep_omschrijving,
|
||
NULL ins_srtdeel_key,
|
||
NULL ins_srtdeel_omschrijving,
|
||
NULL ins_srtdeel_code,
|
||
NULL ins_deel_key,
|
||
NULL ins_deel_omschrijving,
|
||
NULL ins_deel_upper,
|
||
b.fac_bookmark_id,
|
||
'RES_RUIMTE_KEY'
|
||
FROM fac_bookmark b,
|
||
res_ruimte rr,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar,
|
||
alg_ruimte r,
|
||
alg_srtruimte sr,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l
|
||
WHERE UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
|
||
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/RESERVERINGEN.ASP'
|
||
--AND rr.res_discipline_key = -1
|
||
AND rr.res_ruimte_key = rar.res_ruimte_key
|
||
AND rar.alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||
AND r.alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND o.alg_onroerendgoed_type = 'R'
|
||
AND o.alg_locatie_key = l.alg_locatie_key;
|
||
|
||
-- Vastgoed views themas en labels
|
||
/*
|
||
CREATE OR REPLACE VIEW kfns_v_thema_basispakket
|
||
(
|
||
alg_ruimte_key,
|
||
waarde,
|
||
waarde_key
|
||
)
|
||
AS
|
||
SELECT r.alg_ruimte_key,
|
||
dn.mld_dienstniveau_omschr
|
||
|| ' ('
|
||
|| mld_dienstniveau_opmerking
|
||
|| ')',
|
||
r.mld_dienstniveau_key
|
||
FROM alg_v_aanwezigruimte r, mld_dienstniveau dn
|
||
WHERE r.mld_dienstniveau_key = dn.mld_dienstniveau_key;
|
||
*/
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_thema_vloerafwerking
|
||
(
|
||
alg_ruimte_key,
|
||
waarde
|
||
)
|
||
AS
|
||
SELECT rr.alg_ruimte_key, ud.fac_usrdata_omschr
|
||
FROM alg_kenmerk k,
|
||
fac_kenmerkdomein rk,
|
||
fac_usrdata ud,
|
||
alg_onrgoedkenmerk ok,
|
||
alg_v_aanwezigruimte rr
|
||
WHERE k.alg_kenmerk_key = 1011
|
||
AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key
|
||
AND rk.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND TO_CHAR (ud.fac_usrdata_key) = ok.alg_onrgoedkenmerk_waarde
|
||
AND rr.alg_ruimte_key = ok.alg_onrgoed_key;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_thema_leegstand
|
||
(
|
||
alg_ruimte_key,
|
||
waarde,
|
||
waarde_key
|
||
)
|
||
AS
|
||
SELECT ogk.alg_onrgoed_key, ud.fac_usrdata_omschr, ud.fac_usrdata_key
|
||
FROM alg_onrgoedkenmerk ogk, fac_usrdata ud
|
||
WHERE ogk.alg_kenmerk_key = 1010 -- Leegstand
|
||
AND ogk.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key);
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_thema_wpopp
|
||
(
|
||
alg_ruimte_key,
|
||
waarde
|
||
)
|
||
AS
|
||
SELECT r.alg_ruimte_key,
|
||
ROUND (
|
||
(r.alg_ruimte_bruto_vloeropp
|
||
+ r.alg_ruimte_bruto_vloeropp
|
||
* COALESCE (
|
||
fac.safe_to_number (ogkg.alg_onrgoedkenmerk_waarde),
|
||
0)
|
||
+ r.alg_ruimte_bruto_vloeropp
|
||
* COALESCE (
|
||
fac.safe_to_number (ogkv.alg_onrgoedkenmerk_waarde),
|
||
0))
|
||
/ SUM (fac.safe_to_number (ogkr.alg_onrgoedkenmerk_waarde)),
|
||
2)
|
||
FROM alg_v_aanwezigruimte r,
|
||
alg_onrgoedkenmerk ogkr,
|
||
alg_verdieping v,
|
||
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
|
||
FROM alg_onrgoedkenmerk ogk
|
||
WHERE alg_kenmerk_key = 1020) ogkv, -- Factor niet verhuurbaar op verdieping
|
||
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
|
||
FROM alg_onrgoedkenmerk ogk
|
||
WHERE alg_kenmerk_key = 1006) ogkg -- Factor niet verhuurbaar op gebouw
|
||
WHERE r.alg_ruimte_key = ogkr.alg_onrgoed_key
|
||
AND ogkr.alg_kenmerk_key IN (1012, 1013, 1014, 1015) -- WPs van verschillende types
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_verdieping_key = ogkv.alg_onrgoed_key(+)
|
||
AND v.alg_gebouw_key = ogkg.alg_onrgoed_key(+)
|
||
GROUP BY r.alg_ruimte_key,
|
||
r.alg_ruimte_bruto_vloeropp,
|
||
ogkg.alg_onrgoedkenmerk_waarde,
|
||
ogkv.alg_onrgoedkenmerk_waarde;
|
||
|
||
-- UNUSED???
|
||
CREATE OR REPLACE VIEW kfns_v_thema_wptype
|
||
(
|
||
alg_ruimte_key,
|
||
waarde,
|
||
waarde_key
|
||
)
|
||
AS
|
||
SELECT r.alg_ruimte_key,
|
||
DECODE (ogk.aantal, 1, ogk.omschrijving, 'meerdere...'),
|
||
DECODE (ogk.aantal, 1, ogk.alg_kenmerk_key, '1')
|
||
FROM alg_v_aanwezigruimte r,
|
||
( SELECT MIN (k.alg_kenmerk_key) alg_kenmerk_key,
|
||
COUNT (k.alg_kenmerk_key) aantal,
|
||
REPLACE (MIN (k.alg_kenmerk_omschrijving), 'Aantal ', '') omschrijving,
|
||
alg_onrgoed_key
|
||
FROM alg_onrgoedkenmerk ogk, alg_kenmerk k
|
||
WHERE ogk.alg_kenmerk_key = k.alg_kenmerk_key
|
||
AND k.alg_kenmerk_key IN (1012, 1013, 1014, 1015) -- WPs van verschillende types
|
||
GROUP BY alg_onrgoed_key) ogk
|
||
WHERE r.alg_ruimte_key = ogk.alg_onrgoed_key;
|
||
|
||
/* Formatted on 25-2-2016 9:48:12 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW kfns_v_thema_serviceniveau
|
||
(
|
||
alg_ruimte_key,
|
||
waarde
|
||
)
|
||
AS
|
||
SELECT rr.alg_ruimte_key, ud.fac_usrdata_omschr
|
||
FROM alg_kenmerk k,
|
||
fac_kenmerkdomein rk,
|
||
fac_usrdata ud,
|
||
alg_onrgoedkenmerk ok,
|
||
alg_v_aanwezigruimte rr
|
||
WHERE k.alg_kenmerk_key = 1041 -- Serviceniveau schoonmaak
|
||
AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key
|
||
AND rk.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND TO_CHAR (ud.fac_usrdata_key) = ok.alg_onrgoedkenmerk_waarde
|
||
AND ok.alg_onrgoed_key = rr.alg_ruimte_key;
|
||
|
||
/* Formatted on 4-8-2015 13:25:05 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW kfns_v_noti_te_factureren
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
WITH cp
|
||
AS (SELECT cp1.prs_bedrijf_key, p1.prs_perslid_key
|
||
FROM prs_v_aanwezigkenmerklink kl1,
|
||
prs_contactpersoon cp1,
|
||
prs_v_aanwezigperslid p1
|
||
WHERE kl1.prs_kenmerk_key = 1040
|
||
AND kl1.prs_link_key = cp1.prs_contactpersoon_key
|
||
AND cp1.prs_contactpersoon_verwijder IS NULL
|
||
AND cp1.prs_perslid_key = p1.prs_perslid_key)
|
||
SELECT DISTINCT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
cp.prs_perslid_key, -- Leverancier-contactpersonen (met noti-vinkje)
|
||
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##LEV##', v.prs_bedrijf_naam), '##MND##', v.maand),
|
||
r.fac_usrrap_key,
|
||
v.extra_key
|
||
FROM kfns_v_frozen_fact v,
|
||
cp cp,
|
||
fac_usrrap r,
|
||
fac_srtnotificatie sn
|
||
WHERE TO_CHAR (SYSDATE, 'dd') = '11' -- Alleen de 11e van de maand
|
||
AND v.maand = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
|
||
AND v.extra_key = cp.prs_bedrijf_key
|
||
AND UPPER (r.fac_usrrap_view_name) = 'KFNS_V_FROZEN_FACT'
|
||
AND sn.fac_srtnotificatie_code = 'CUST01'
|
||
UNION ALL
|
||
SELECT DISTINCT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
gg.prs_perslid_key, -- NS-contactpersonen
|
||
REPLACE (sn.fac_srtnotificatie_oms, '##MND##', v.maand),
|
||
r.fac_usrrap_key,
|
||
NULL -- Geen extra_key, dus de hele rapportage!
|
||
FROM kfns_v_frozen_fact v,
|
||
fac_gebruikersgroep gg,
|
||
fac_usrrap r,
|
||
fac_srtnotificatie sn
|
||
WHERE TO_CHAR (SYSDATE, 'dd') = '11' -- Alleen de 11e van de maand
|
||
AND v.maand = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
|
||
AND gg.fac_groep_key = 381 -- NS Finance/Control
|
||
AND UPPER (r.fac_usrrap_view_name) = 'KFNS_V_FROZEN_FACT'
|
||
AND sn.fac_srtnotificatie_code = 'CUST02';
|
||
|
||
|
||
-- Basis voor notificaties naar artikeleigenaren elke maandag (voorraad) en 1e
|
||
-- dag van elk kwartaal (verbruik); voor de output geldt:
|
||
-- Dat deze resp. actuele voorraad in magazijn en verbruik/uitgifte in periode
|
||
-- toont.
|
||
-- Dat de data per artikelgroep(/eigenaar) wordt genotificeerd (via extra_key-
|
||
-- principe).
|
||
/* Formatted on 15-1-2016 13:58:02 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW kfns_v_mag_voorraad
|
||
(
|
||
extra_key, -- fac_usrdata_key in ET-Artikeleigenaren (per Artikelgroep)
|
||
artikelgroep,
|
||
artikeleigenaar,
|
||
--afleveradres,
|
||
artikelnummer,
|
||
artikelomschrijving,
|
||
voorraad,
|
||
eenheid,
|
||
min_voorraad,
|
||
artikelprijs,
|
||
voorraadexcl,
|
||
voorraadincl
|
||
)
|
||
AS
|
||
SELECT ud.fac_usrdata_key,
|
||
--TRIM (ud.fac_usrdata_code),
|
||
sg.bes_srtgroep_omschrijving,
|
||
--TRIM (ud.fac_usrdata_omschr),
|
||
sd.bes_srtdeel_opmerking,
|
||
--'DD-Daalsedijk 14',
|
||
sd.bes_srtdeel_nr,
|
||
sd.bes_srtdeel_omschrijving,
|
||
--x.extern_geleverd
|
||
--- COALESCE (
|
||
-- CEIL (x.intern_besteld / sd.bes_srtdeel_voorraadfactor),
|
||
-- 0),
|
||
x.extern_geleverd
|
||
- CEIL(x.intern_besteld
|
||
/ DECODE (sd.bes_srtdeel_voorraadfactor,
|
||
NULL, 1,
|
||
0, 1,
|
||
sd.bes_srtdeel_voorraadfactor)),
|
||
sd.bes_srtdeel_eenheid,
|
||
sd.bes_srtdeel_voorraadmin,
|
||
bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL),
|
||
(x.extern_geleverd
|
||
- CEIL(x.intern_besteld
|
||
/ DECODE (sd.bes_srtdeel_voorraadfactor,
|
||
NULL, 1,
|
||
0, 1,
|
||
sd.bes_srtdeel_voorraadfactor)))
|
||
* bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL),
|
||
(x.extern_geleverd
|
||
- CEIL(x.intern_besteld
|
||
/ DECODE (sd.bes_srtdeel_voorraadfactor,
|
||
NULL, 1,
|
||
0, 1,
|
||
sd.bes_srtdeel_voorraadfactor)))
|
||
* bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL)
|
||
* ( (100 + sd.bes_srtdeel_btw) / 100) -- Afronding?
|
||
FROM bes_srtgroep sg,
|
||
bes_srtdeel sd,
|
||
( SELECT inkoop_disc_key,
|
||
bes_srtdeel_nr,
|
||
SUM (intern_besteld) intern_besteld,
|
||
SUM (extern_besteld) extern_besteld,
|
||
SUM (extern_geleverd) extern_geleverd
|
||
FROM ( -- Intern besteld
|
||
SELECT dp.bes_ins_discipline_key_inkoop inkoop_disc_key,
|
||
sd.bes_srtdeel_nr,
|
||
SUM (bi.bes_bestelling_item_aantal) intern_besteld,
|
||
0 extern_besteld,
|
||
0 extern_geleverd
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
bes_discipline bd,
|
||
bes_disc_params dp
|
||
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtdeel_verwijder IS NULL
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = bd.ins_discipline_key
|
||
AND bd.ins_discipline_key = dp.bes_ins_discipline_key
|
||
AND dp.bes_ins_discipline_key_inkoop IS NOT NULL
|
||
GROUP BY sd.bes_srtdeel_nr,
|
||
dp.bes_ins_discipline_key_inkoop
|
||
UNION ALL -- Extern besteld
|
||
SELECT bd.ins_discipline_key inkoop_disc_key,
|
||
sd.bes_srtdeel_nr,
|
||
0 intern_besteld,
|
||
SUM (bi.bes_bestelling_item_aantal) extern_besteld,
|
||
0 extern_geleverd
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
bes_discipline bd,
|
||
bes_disc_params dp
|
||
WHERE b.bes_bestelling_status IN (2, 3, 4, 5)
|
||
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtdeel_verwijder IS NULL
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = bd.ins_discipline_key
|
||
AND bd.ins_discipline_key = dp.bes_ins_discipline_key
|
||
AND dp.bes_ins_discipline_key_inkoop IS NULL
|
||
AND dp.bes_ins_discipline_key IN
|
||
(SELECT bes_ins_discipline_key_inkoop
|
||
FROM bes_disc_params
|
||
WHERE bes_ins_discipline_key_inkoop IS NOT NULL)
|
||
GROUP BY bes_srtdeel_nr, bd.ins_discipline_key
|
||
UNION ALL -- Extern geleverd
|
||
SELECT bd.ins_discipline_key inkoop_disc_key,
|
||
sd.bes_srtdeel_nr,
|
||
0 intern_besteld,
|
||
0 extern_besteld,
|
||
SUM (bi.bes_bestelling_item_aantal) extern_geleverd
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
bes_discipline bd,
|
||
bes_disc_params dp
|
||
WHERE b.bes_bestelling_status IN (6, 7)
|
||
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtdeel_verwijder IS NULL
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = bd.ins_discipline_key
|
||
AND bd.ins_discipline_key = dp.bes_ins_discipline_key
|
||
AND dp.bes_ins_discipline_key_inkoop IS NULL
|
||
AND dp.bes_ins_discipline_key IN
|
||
(SELECT bes_ins_discipline_key_inkoop
|
||
FROM bes_disc_params
|
||
WHERE bes_ins_discipline_key_inkoop IS NOT NULL)
|
||
GROUP BY bes_srtdeel_nr, bd.ins_discipline_key)
|
||
GROUP BY inkoop_disc_key, bes_srtdeel_nr) x,
|
||
( SELECT TRIM (fac_usrdata_upper) fac_usrdata_upper,
|
||
MIN (fac_usrdata_key) fac_usrdata_key
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 42
|
||
GROUP BY TRIM (fac_usrdata_upper)) ud -- Artikeleigenaren
|
||
WHERE sg.ins_discipline_key = 402 -- Beperken tot Magazijn-Ontvangst?
|
||
AND sg.bes_srtgroep_key = sd.bes_srtgroep_key
|
||
AND COALESCE (sd.bes_srtdeel_vervaldatum, SYSDATE) > TRUNC(SYSDATE)
|
||
AND sd.bes_srtdeel_nr = x.bes_srtdeel_nr(+)
|
||
AND UPPER (TRIM (sg.bes_srtgroep_omschrijving)) = ud.fac_usrdata_upper(+);
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_rap_mag_voorraad
|
||
(
|
||
fclt_f_artikelgroep,
|
||
fclt_f_eigenaar,
|
||
--afleveradres,
|
||
artikelnummer,
|
||
artikelomschrijving,
|
||
voorraad,
|
||
eenheid,
|
||
min_voorraad,
|
||
artikelprijs,
|
||
voorraadexcl,
|
||
voorraadincl
|
||
)
|
||
AS
|
||
SELECT artikelgroep,
|
||
artikeleigenaar,
|
||
--afleveradres,
|
||
artikelnummer,
|
||
artikelomschrijving,
|
||
voorraad,
|
||
eenheid,
|
||
min_voorraad,
|
||
artikelprijs,
|
||
voorraadexcl,
|
||
voorraadincl
|
||
FROM kfns_v_mag_voorraad;
|
||
|
||
-- Alle verbruik door opdrachtgevers behalve 173=Distributiecentrum NS (alleen tbv. voorraadmutatie!)
|
||
/* Formatted on 8-10-2015 16:30:30 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW kfns_v_mag_verbruik -- Intern besteld
|
||
(
|
||
kwartaal,
|
||
extra_key, -- fac_usrdata_key in ET-Artikeleigenaren (per Artikelgroep)
|
||
artikelgroep,
|
||
artikeleigenaar,
|
||
bestelnr,
|
||
besteldatum,
|
||
besteller,
|
||
artikelnummer,
|
||
artikelomschrijving,
|
||
eenheid,
|
||
aantal
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (x.bes_bestelling_datum, 'yyyy') || '-Q' || TO_CHAR (x.bes_bestelling_datum, 'q'),
|
||
x.fac_usrdata_key,
|
||
--TRIM (ud.fac_usrdata_code),
|
||
x.bes_srtgroep_omschrijving,
|
||
--TRIM (ud.fac_usrdata_omschr),
|
||
x.bes_srtdeel_opmerking,
|
||
TO_CHAR (x.bes_bestelling_key),
|
||
x.bes_bestelling_datum,
|
||
og.opdrachtgever,
|
||
x.bes_srtdeel_nr,
|
||
x.bes_srtdeel_omschrijving,
|
||
x.bes_srtdeel_eenheid,
|
||
x.bes_bestelling_item_aantal
|
||
FROM (SELECT b.bes_bestelling_key,
|
||
b.bes_bestelling_datum,
|
||
ud.fac_usrdata_key,
|
||
sg.bes_srtgroep_omschrijving,
|
||
sd.bes_srtdeel_opmerking,
|
||
sd.bes_srtdeel_nr,
|
||
sd.bes_srtdeel_omschrijving,
|
||
sd.bes_srtdeel_eenheid,
|
||
bi.bes_bestelling_item_aantal
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
bes_discipline bd,
|
||
bes_disc_params dp,
|
||
( SELECT TRIM (fac_usrdata_upper) fac_usrdata_upper,
|
||
MIN (fac_usrdata_key) fac_usrdata_key
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 42
|
||
GROUP BY TRIM (fac_usrdata_upper)) ud -- Artikeleigenaren
|
||
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtdeel_verwijder IS NULL
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = bd.ins_discipline_key
|
||
AND bd.ins_discipline_key = dp.bes_ins_discipline_key
|
||
--AND dp.bes_ins_discipline_key_inkoop IS NOT NULL
|
||
AND dp.bes_ins_discipline_key_inkoop = 402 -- Magazijn-Ontvangst?
|
||
AND UPPER (TRIM (sg.bes_srtgroep_omschrijving)) = ud.fac_usrdata_upper(+)) x
|
||
LEFT JOIN
|
||
(SELECT kb.bes_bestelling_key,
|
||
ud.fac_usrdata_key opdrachtgever_key,
|
||
ud.fac_usrdata_omschr opdrachtgever
|
||
FROM bes_kenmerkbestell kb, fac_usrdata ud
|
||
WHERE kb.bes_kenmerk_key = 2 -- Opdrachtgever
|
||
AND fac.safe_to_number (kb.bes_kenmerkbestell_waarde) = ud.fac_usrdata_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM bes_kenmerkbestell
|
||
WHERE bes_kenmerk_key = 2
|
||
AND bes_kenmerkbestell_verwijder IS NULL
|
||
AND bes_bestelling_key = kb.bes_bestelling_key
|
||
AND bes_kenmerkbestell_key != kb.bes_kenmerkbestell_key)) og
|
||
ON x.bes_bestelling_key = og.bes_bestelling_key
|
||
WHERE COALESCE (og.opdrachtgever_key, -1) != 173;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_rap_mag_verbruik -- Intern besteld
|
||
(
|
||
fclt_f_kwartaal,
|
||
fclt_f_artikelgroep,
|
||
fclt_f_bestelnr,
|
||
besteldatum,
|
||
fclt_f_besteller,
|
||
artikelnummer,
|
||
artikelomschrijving,
|
||
eenheid,
|
||
aantal
|
||
)
|
||
AS
|
||
SELECT kwartaal,
|
||
artikelgroep,
|
||
bestelnr,
|
||
besteldatum,
|
||
besteller,
|
||
artikelnummer,
|
||
artikelomschrijving,
|
||
eenheid,
|
||
aantal
|
||
FROM kfns_v_mag_verbruik;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_rap_mag_doorbelasting
|
||
(
|
||
hide_f_sortering,
|
||
fclt_x_kwartaal,
|
||
fclt_f_artikelgroep,
|
||
fclt_f_eigenaar,
|
||
fclt_f_bestelnr,
|
||
besteldatum,
|
||
aantalregels,
|
||
artikelnummer,
|
||
artikelomschrijving,
|
||
--eenheid,
|
||
aantal,
|
||
fclt_f_besteller,
|
||
verdeling,
|
||
orderbedrag,
|
||
orderregel,
|
||
sbe,
|
||
verpakking,
|
||
totaal
|
||
)
|
||
AS
|
||
SELECT x.bes_srtgroep_omschrijving || TO_CHAR (x.bes_bestelling_datum, 'yymmddhh24miss') || x.bes_srtdeel_nr,
|
||
TO_CHAR (x.bes_bestelling_datum, 'yyyy') || '-Q' || TO_CHAR (x.bes_bestelling_datum, 'q'),
|
||
x.bes_srtgroep_omschrijving,
|
||
x.bes_srtdeel_opmerking,
|
||
TO_CHAR (x.bes_bestelling_key),
|
||
x.bes_bestelling_datum,
|
||
'1',
|
||
x.bes_srtdeel_nr,
|
||
x.bes_srtdeel_omschrijving,
|
||
--x.bes_srtdeel_eenheid,
|
||
TO_CHAR (x.bes_bestelling_item_aantal),
|
||
og.opdrachtgever,
|
||
--REPLACE (TO_CHAR (ROUND (1 / br.verdeling, 5)), '.', ',') verdeling,
|
||
REPLACE (TO_CHAR (1 / br.verdeling, '0D99999'), '.', ',') verdeling,
|
||
--ROUND (9.69 / br.verdeling, 2) orderbedrag,
|
||
ROUND (x.orderbedrag / br.verdeling, 2) orderbedrag,
|
||
--1.61 orderregel,
|
||
x.orderregel,
|
||
--x.bes_bestelling_item_aantal * 0.69 sbe,
|
||
x.bes_bestelling_item_aantal * x.sbe,
|
||
--ROUND (0.97 / br.verdeling, 2) verpakking,
|
||
ROUND (x.verpakking / br.verdeling, 2) verpakking,
|
||
ROUND (x.orderbedrag / br.verdeling, 2)
|
||
+ x.orderregel
|
||
+ (x.bes_bestelling_item_aantal * x.sbe)
|
||
+ ROUND (x.verpakking / br.verdeling, 2)
|
||
totaal
|
||
FROM (SELECT sg.bes_srtgroep_omschrijving,
|
||
sd.bes_srtdeel_opmerking,
|
||
b.bes_bestelling_key,
|
||
b.bes_bestelling_datum,
|
||
sd.bes_srtdeel_nr,
|
||
sd.bes_srtdeel_omschrijving,
|
||
--sd.bes_srtdeel_eenheid,
|
||
bi.bes_bestelling_item_aantal,
|
||
(SELECT MAX (ud1.fac_usrdata_prijs)
|
||
FROM fac_usrdata ud1
|
||
WHERE COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
||
AND ud1.fac_usrdata_upper = 'ORDERBEDRAG'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_usrdata ud2
|
||
WHERE COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
||
AND ud2.fac_usrdata_upper = 'ORDERBEDRAG'
|
||
AND COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) <
|
||
COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999)))
|
||
orderbedrag,
|
||
(SELECT MAX (ud1.fac_usrdata_prijs)
|
||
FROM fac_usrdata ud1
|
||
WHERE COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
||
AND ud1.fac_usrdata_upper = 'ORDERREGEL'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_usrdata ud2
|
||
WHERE COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
||
AND ud2.fac_usrdata_upper = 'ORDERREGEL'
|
||
AND COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) <
|
||
COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999)))
|
||
orderregel,
|
||
(SELECT MAX (ud1.fac_usrdata_prijs)
|
||
FROM fac_usrdata ud1
|
||
WHERE COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
||
AND ud1.fac_usrdata_upper = 'SBE'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_usrdata ud2
|
||
WHERE COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
||
AND ud2.fac_usrdata_upper = 'SBE'
|
||
AND COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) <
|
||
COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999)))
|
||
sbe,
|
||
(SELECT MAX (ud1.fac_usrdata_prijs)
|
||
FROM fac_usrdata ud1
|
||
WHERE COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
||
AND ud1.fac_usrdata_upper = 'VERPAKKING'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_usrdata ud2
|
||
WHERE COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
||
AND ud2.fac_usrdata_upper = 'VERPAKKING'
|
||
AND COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) <
|
||
COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999)))
|
||
verpakking
|
||
FROM bes_bestelling b, bes_bestelling_item bi, bes_srtdeel sd, bes_srtgroep sg
|
||
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
--AND sd.bes_srtdeel_verwijder IS NULL
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = 401) x -- Magazijn-Uitgifte
|
||
LEFT JOIN ( SELECT bi.bes_bestelling_key, COUNT ( * ) verdeling
|
||
FROM bes_bestelling_item bi, bes_srtdeel sd, bes_srtgroep sg
|
||
WHERE bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
--AND sd.bes_srtdeel_verwijder IS NULL
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = 401 -- Magazijn-Uitgifte
|
||
GROUP BY bi.bes_bestelling_key) br
|
||
ON x.bes_bestelling_key = br.bes_bestelling_key
|
||
LEFT JOIN (SELECT kb.bes_bestelling_key, ud.fac_usrdata_omschr opdrachtgever
|
||
FROM bes_kenmerkbestell kb, fac_usrdata ud
|
||
WHERE kb.bes_kenmerk_key = 2 -- Opdrachtgever
|
||
AND fac.safe_to_number (kb.bes_kenmerkbestell_waarde) = ud.fac_usrdata_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM bes_kenmerkbestell
|
||
WHERE bes_kenmerk_key = 2
|
||
AND bes_kenmerkbestell_verwijder IS NULL
|
||
AND bes_bestelling_key = kb.bes_bestelling_key
|
||
AND bes_kenmerkbestell_key != kb.bes_kenmerkbestell_key)) og
|
||
ON x.bes_bestelling_key = og.bes_bestelling_key;
|
||
/*
|
||
UNION ALL
|
||
SELECT x.bes_srtgroep_omschrijving || '1',
|
||
TO_CHAR (x.bes_bestelling_datum, 'yyyy')
|
||
|| '-Q'
|
||
|| TO_CHAR (x.bes_bestelling_datum, 'q'),
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
--NULL,
|
||
NULL,
|
||
NULL,
|
||
NULL verdeling,
|
||
NULL orderbedrag,
|
||
NULL orderregel,
|
||
NULL sbe,
|
||
NULL verpakking,
|
||
--SUM( ROUND (9.69 / br.verdeling, 2)
|
||
-- + 1.61
|
||
-- + (x.bes_bestelling_item_aantal * 0.69)
|
||
-- + ROUND (0.97 / br.verdeling, 2))
|
||
-- totaal
|
||
SUM( ROUND (x.orderbedrag / br.verdeling, 2)
|
||
+ x.orderregel
|
||
+ (x.bes_bestelling_item_aantal * x.sbe)
|
||
+ ROUND (x.verpakking / br.verdeling, 2))
|
||
totaal
|
||
FROM (SELECT sg.bes_srtgroep_omschrijving,
|
||
bi.bes_bestelling_key,
|
||
b.bes_bestelling_datum,
|
||
bi.bes_bestelling_item_aantal,
|
||
(SELECT MAX (ud1.fac_usrdata_prijs)
|
||
FROM fac_usrdata ud1
|
||
WHERE COALESCE (ud1.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999) >
|
||
b.bes_bestelling_datum
|
||
AND ud1.fac_usrdata_upper = 'ORDERBEDRAG'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_usrdata ud2
|
||
WHERE COALESCE (
|
||
ud2.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999) >
|
||
b.bes_bestelling_datum
|
||
AND ud2.fac_usrdata_upper =
|
||
'ORDERBEDRAG'
|
||
AND COALESCE (
|
||
ud2.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999) <
|
||
COALESCE (
|
||
ud1.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999)))
|
||
orderbedrag,
|
||
(SELECT MAX (ud1.fac_usrdata_prijs)
|
||
FROM fac_usrdata ud1
|
||
WHERE COALESCE (ud1.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999) >
|
||
b.bes_bestelling_datum
|
||
AND ud1.fac_usrdata_upper = 'ORDERREGEL'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_usrdata ud2
|
||
WHERE COALESCE (
|
||
ud2.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999) >
|
||
b.bes_bestelling_datum
|
||
AND ud2.fac_usrdata_upper =
|
||
'ORDERREGEL'
|
||
AND COALESCE (
|
||
ud2.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999) <
|
||
COALESCE (
|
||
ud1.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999)))
|
||
orderregel,
|
||
(SELECT MAX (ud1.fac_usrdata_prijs)
|
||
FROM fac_usrdata ud1
|
||
WHERE COALESCE (ud1.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999) >
|
||
b.bes_bestelling_datum
|
||
AND ud1.fac_usrdata_upper = 'SBE'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_usrdata ud2
|
||
WHERE COALESCE (
|
||
ud2.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999) >
|
||
b.bes_bestelling_datum
|
||
AND ud2.fac_usrdata_upper = 'SBE'
|
||
AND COALESCE (
|
||
ud2.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999) <
|
||
COALESCE (
|
||
ud1.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999)))
|
||
sbe,
|
||
(SELECT MAX (ud1.fac_usrdata_prijs)
|
||
FROM fac_usrdata ud1
|
||
WHERE COALESCE (ud1.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999) >
|
||
b.bes_bestelling_datum
|
||
AND ud1.fac_usrdata_upper = 'VERPAKKING'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_usrdata ud2
|
||
WHERE COALESCE (
|
||
ud2.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999) >
|
||
b.bes_bestelling_datum
|
||
AND ud2.fac_usrdata_upper =
|
||
'VERPAKKING'
|
||
AND COALESCE (
|
||
ud2.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999) <
|
||
COALESCE (
|
||
ud1.fac_usrdata_vervaldatum,
|
||
SYSDATE + 999)))
|
||
verpakking
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg
|
||
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtdeel_verwijder IS NULL
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = 401) x -- Magazijn-Uitgifte
|
||
LEFT JOIN
|
||
( SELECT bi.bes_bestelling_key, COUNT ( * ) verdeling
|
||
FROM bes_bestelling_item bi, bes_srtdeel sd, bes_srtgroep sg
|
||
WHERE bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtdeel_verwijder IS NULL
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = 401 -- Magazijn-Uitgifte
|
||
GROUP BY bi.bes_bestelling_key) br
|
||
ON x.bes_bestelling_key = br.bes_bestelling_key
|
||
GROUP BY x.bes_srtgroep_omschrijving || '1',
|
||
TO_CHAR (x.bes_bestelling_datum, 'yyyy')
|
||
|| '-Q'
|
||
|| TO_CHAR (x.bes_bestelling_datum, 'q');
|
||
*/
|
||
|
||
/* Formatted on 7-10-2015 17:05:25 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW kfns_v_noti_voorraadbeheer
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (sn.fac_srtnotificatie_oms, '##WK##', TO_CHAR (SYSDATE, 'iyyy-iw')),
|
||
r.fac_usrrap_key,
|
||
v.extra_key,
|
||
ud.fac_usrdata_omschr,
|
||
NULL
|
||
FROM kfns_v_mag_voorraad v, fac_v_aanwezigusrdata ud, fac_usrrap r, fac_srtnotificatie sn
|
||
WHERE TO_CHAR (SYSDATE, 'd') = '2' -- Elke maandag!
|
||
AND v.extra_key = ud.fac_usrdata_key
|
||
AND UPPER (r.fac_usrrap_view_name) = 'KFNS_V_MAG_VOORRAAD'
|
||
AND sn.fac_srtnotificatie_code = 'CUST03'
|
||
UNION ALL
|
||
SELECT DISTINCT
|
||
sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (sn.fac_srtnotificatie_oms, '##KW##', TO_CHAR (SYSDATE - 1, 'yyyy') || '-Q' || TO_CHAR (TRUNC (SYSDATE - 1, 'mm'), 'q')),
|
||
r.fac_usrrap_key,
|
||
v.extra_key,
|
||
ud.fac_usrdata_omschr,
|
||
NULL
|
||
FROM kfns_v_mag_verbruik v, fac_v_aanwezigusrdata ud, fac_usrrap r, fac_srtnotificatie sn
|
||
WHERE TO_CHAR (SYSDATE, 'dd') = '01' -- Elke 1e dag van het..
|
||
AND TO_CHAR (SYSDATE, 'mm') IN ('01','04','07','10') -- ..kwartaal!
|
||
AND v.extra_key = ud.fac_usrdata_key
|
||
AND UPPER (r.fac_usrrap_view_name) = 'KFNS_V_MAG_VERBRUIK'
|
||
AND sn.fac_srtnotificatie_code = 'CUST04';
|
||
|
||
-- view tbv zoekresultaten rapport
|
||
CREATE OR REPLACE VIEW kfns_v_rap_searchresult
|
||
(
|
||
fclt_f_datum,
|
||
fclt_f_persoon,
|
||
fclt_f_zoekterm,
|
||
resultaat,
|
||
fclt_f_keuze_type,
|
||
keuze_url,
|
||
keuze_omschrijving
|
||
)
|
||
AS
|
||
SELECT fac_gui_counter_date datum,
|
||
prs_perslid_naam_full persoon,
|
||
fgc.fac_gui_counter_info zoekterm,
|
||
COALESCE (result.result, 'Geen') resultaat,
|
||
COALESCE (choice.TYPE, 'Geen') keuze_type,
|
||
choice.url keuze_url,
|
||
choice.oms keuze_omschrijving
|
||
FROM fac_gui_counter fgc,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT fac_gui_counter_refkey,
|
||
fac_gui_counter_info url,
|
||
'Reserveerbaar artikel' TYPE,
|
||
res_artikel_omschrijving oms
|
||
FROM fac_gui_counter fgc, res_artikel ra
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice'
|
||
AND fac_gui_counter_info LIKE '%res_artikel%'
|
||
AND ra.res_artikel_key(+) =
|
||
fac.safe_to_number(SUBSTR (
|
||
fac_gui_counter_info,
|
||
(INSTR (fac_gui_counter_info,
|
||
'key=')
|
||
+ 4)
|
||
))
|
||
UNION
|
||
SELECT fac_gui_counter_refkey,
|
||
fac_gui_counter_info,
|
||
'Reserveerbaar object',
|
||
res_deel_omschrijving
|
||
FROM fac_gui_counter fgc, res_deel rd
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice'
|
||
AND fac_gui_counter_info LIKE '%res_deel%'
|
||
AND rd.res_deel_key(+) =
|
||
fac.safe_to_number(SUBSTR (
|
||
fac_gui_counter_info,
|
||
(INSTR (fac_gui_counter_info,
|
||
'key=')
|
||
+ 4)
|
||
))
|
||
UNION
|
||
SELECT fac_gui_counter_refkey,
|
||
fac_gui_counter_info,
|
||
'Melding',
|
||
std.mld_stdmelding_omschrijving oms
|
||
FROM fac_gui_counter fgc, mld_stdmelding std
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice'
|
||
AND fac_gui_counter_info LIKE '%stdm%'
|
||
AND std.mld_stdmelding_key(+) =
|
||
fac.safe_to_number(SUBSTR (
|
||
fac_gui_counter_info,
|
||
(INSTR (fac_gui_counter_info, '=')
|
||
+ 1)
|
||
))
|
||
UNION
|
||
SELECT fac_gui_counter_refkey,
|
||
fac_gui_counter_info,
|
||
'Kennisbank',
|
||
fac_faq_question oms
|
||
FROM fac_gui_counter fgc, fac_faq faq
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice'
|
||
AND fac_gui_counter_info LIKE '%faq%'
|
||
AND fac_faq_key(+) =
|
||
fac.safe_to_number(SUBSTR (
|
||
fac_gui_counter_info,
|
||
(INSTR (fac_gui_counter_info, '=')
|
||
+ 1)
|
||
))
|
||
UNION
|
||
SELECT fac_gui_counter_refkey,
|
||
fac_gui_counter_info,
|
||
'Reserveerbare ruimte',
|
||
res_ruimte_nr oms
|
||
FROM fac_gui_counter fgc, res_ruimte
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice'
|
||
AND fac_gui_counter_info LIKE '%res_ruimte%'
|
||
AND res_ruimte_key(+) =
|
||
fac.safe_to_number(SUBSTR (
|
||
fac_gui_counter_info,
|
||
(INSTR (fac_gui_counter_info, '=')
|
||
+ 1)
|
||
))
|
||
UNION
|
||
SELECT fac_gui_counter_refkey,
|
||
fac_gui_counter_info,
|
||
'Bestelling',
|
||
ins_discipline_omschrijving
|
||
FROM fac_gui_counter fgc, bes_discipline
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice'
|
||
AND fac_gui_counter_info LIKE '%bes%'
|
||
AND ins_discipline_key(+) =
|
||
fac.safe_to_number(SUBSTR (
|
||
fac_gui_counter_info,
|
||
(INSTR (fac_gui_counter_info,
|
||
'dis_key=')
|
||
+ 8)
|
||
))
|
||
UNION
|
||
SELECT fac_gui_counter_refkey,
|
||
fac_gui_counter_info,
|
||
'Telefoonboek',
|
||
prs_perslid_naam_full
|
||
FROM fac_gui_counter fgc, prs_v_perslid_fullnames pf
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice'
|
||
AND fac_gui_counter_info LIKE '%phone%'
|
||
AND pf.prs_perslid_key(+) =
|
||
fac.safe_to_number(SUBSTR (
|
||
fac_gui_counter_info,
|
||
(INSTR (fac_gui_counter_info, '=')
|
||
+ 1)
|
||
))) choice,
|
||
(SELECT fac_gui_counter_refkey,
|
||
REPLACE (REPLACE (fac_gui_counter_info, '{', ''), '}', '')
|
||
result
|
||
FROM fac_gui_counter fgc
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchresult') result
|
||
WHERE fac_gui_counter_group = 'search'
|
||
AND fgc.fac_gui_counter_info IS NOT NULL
|
||
AND fgc.prs_perslid_key = pf.prs_perslid_key
|
||
AND choice.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key
|
||
AND result.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key;
|
||
|
||
-- KPI-module!
|
||
-- Views voor berekening van (genormeerde) KPI-scores obv. handmatig/automatisch
|
||
-- ingevulde KPI-meldingen (een view per melding).
|
||
/* Formatted on 21-6-2016 16:30:30 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PACKAGE kfns
|
||
AS
|
||
PROCEDURE refreshscore (pUserKey IN NUMBER);
|
||
END;
|
||
/
|
||
|
||
/* Formatted on 23-8-2016 10:55:05 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PACKAGE BODY kfns
|
||
AS
|
||
PROCEDURE refreshscore (pUserKey IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
-- Alle scores verwijderen, behalve van enkele cumulatieve KPIs.
|
||
--DELETE kpi_score
|
||
-- WHERE (kpi_definitie_key, kpi_score_datum, alg_locatie_key) IN
|
||
-- (SELECT x.kpi_definitie_key, x.kpi_score_datum, x.alg_locatie_key
|
||
-- FROM kfns_v_kpi_all x, kpi_definitie d
|
||
-- WHERE 1=1 --x.kpi_score_datum > TRUNC (SYSDATE, 'yyyy')
|
||
-- AND x.kpi_definitie_key = d.kpi_definitie_key
|
||
-- AND d.kpi_definitie_code NOT IN
|
||
-- ('EW23',
|
||
-- 'GISPEN22',
|
||
-- 'MAAS22',
|
||
-- 'SWS23',
|
||
-- 'UTS22',
|
||
-- 'TRIGIONB22',
|
||
-- 'TRIGIONBT22'));
|
||
DELETE kpi_score s
|
||
WHERE NOT EXISTS
|
||
(SELECT 1
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_key = s.kpi_definitie_key
|
||
AND kpi_definitie_code IN
|
||
('EW23',
|
||
'GISPEN22',
|
||
'MAAS22',
|
||
'SWS23',
|
||
'UTS22',
|
||
'TRIGIONB22',
|
||
'TRIGIONBT22'));
|
||
|
||
-- Opnieuw toevoegen scores (geen enkele score zou reeds mogen bestaan).
|
||
INSERT INTO kpi_score (kpi_definitie_key,
|
||
kpi_score_datum,
|
||
alg_locatie_key,
|
||
kpi_score_xmlnode,
|
||
kpi_score_refkey,
|
||
kpi_score_score,
|
||
kpi_score_norm_score,
|
||
kpi_score_drempels)
|
||
SELECT kpi_definitie_key,
|
||
kpi_score_datum,
|
||
alg_locatie_key,
|
||
kpi_score_xmlnode,
|
||
kpi_score_refkey,
|
||
kpi_score_score,
|
||
kpi_score_norm_score,
|
||
kpi_score_drempels
|
||
FROM kfns_v_kpi_all x
|
||
WHERE NOT EXISTS
|
||
(SELECT 1
|
||
FROM kpi_score
|
||
WHERE kpi_definitie_key = x.kpi_definitie_key
|
||
AND kpi_score_datum = x.kpi_score_datum
|
||
AND alg_locatie_key = x.alg_locatie_key);
|
||
END;
|
||
END;
|
||
/
|
||
|
||
-- *** EW/Kosten ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew11
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW11'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--o.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM(DECODE (
|
||
SIGN(TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 2), 'mm') - ordafr.fac_tracking_datum),
|
||
-1, 0,
|
||
1))
|
||
optijd
|
||
FROM (SELECT o.mld_opdr_key, l.alg_locatie_key
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l
|
||
WHERE o.mld_uitvoerende_keys = 2503 -- EW
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key IN (281, 284) -- Mandaatopdracht/Offerteopdracht
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordafr
|
||
ON ordafr.fac_srtnotificatie_key = 70 -- ORDAFR
|
||
AND o.mld_opdr_key = ordafr.fac_tracking_refkey
|
||
WHERE TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afrond-kwartaal niet meetellen!
|
||
GROUP BY TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1) --, o.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.optijd score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.optijd / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.optijd / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew12
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW12'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k1.mld_kenmerkmelding_waarde) tot,
|
||
fac.safe_to_number (k2.mld_kenmerkmelding_waarde) sub,
|
||
DECODE (
|
||
k1.mld_kenmerkmelding_waarde,
|
||
NULL, 1,
|
||
0, 1,
|
||
COALESCE (fac.safe_to_number (k2.mld_kenmerkmelding_waarde), 0)
|
||
/ fac.safe_to_number (k1.mld_kenmerkmelding_waarde))
|
||
perc_match
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 669 -- Finance-EW
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 669
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 543 -- Aantal factuurnoti
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 544 -- Factuurnoti correct
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
WHERE k1.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.tot score1,
|
||
s.sub score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc_match, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc_match), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew13
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW13'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k1.mld_kenmerkmelding_waarde) tot,
|
||
fac.safe_to_number (k2.mld_kenmerkmelding_waarde) sub,
|
||
DECODE (
|
||
k1.mld_kenmerkmelding_waarde,
|
||
NULL, 1,
|
||
0, 1,
|
||
COALESCE (fac.safe_to_number (k2.mld_kenmerkmelding_waarde), 0)
|
||
/ fac.safe_to_number (k1.mld_kenmerkmelding_waarde))
|
||
perc_match
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 661 -- Contractmanagement-EW
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 661
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 541 -- Aantal variaties
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 542 -- Variaties correct
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
WHERE k1.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.tot score1,
|
||
s.sub score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc_match, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc_match), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** EW/Kwaliteit ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew21
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW21'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k1.mld_kenmerkmelding_waarde) tot,
|
||
fac.safe_to_number (k2.mld_kenmerkmelding_waarde) sub,
|
||
DECODE (
|
||
k1.mld_kenmerkmelding_waarde,
|
||
NULL, 1,
|
||
0, 1,
|
||
COALESCE (fac.safe_to_number (k2.mld_kenmerkmelding_waarde), 0)
|
||
/ fac.safe_to_number (k1.mld_kenmerkmelding_waarde))
|
||
perc_match
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 661 -- Contractmanagement-EW
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 661
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 652 -- Aantal VSR controles
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 654 -- VSR controles goedgekeurd
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
WHERE k1.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.tot score1,
|
||
s.sub score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc_match, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc_match), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew22
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW22'),
|
||
scores
|
||
AS ( SELECT x.periode, --x.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM(DECODE (SIGN (x.normsla - x.uitvtijd.tijdsduur),
|
||
-1, 0,
|
||
1))
|
||
optijd
|
||
FROM (SELECT TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 3), 'q') - 1
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
o.alg_locatie_key,
|
||
MLD.getactualuitvoer (
|
||
ordsnt.fac_tracking_datum,
|
||
ordafm.fac_tracking_datum,
|
||
o.mld_stdmelding_key,
|
||
o.mld_melding_spoed,
|
||
NULL,
|
||
NULL,
|
||
o.eenheid)
|
||
uitvtijd,
|
||
o.normsla
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr,
|
||
m.mld_stdmelding_key, m.mld_melding_spoed,
|
||
DECODE (
|
||
m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.eenheid,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.eenheid,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.eenheid,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.eenheid)
|
||
eenheid,
|
||
DECODE (
|
||
m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.tijdsduur,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.tijdsduur,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.tijdsduur,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.tijdsduur)
|
||
normsla,
|
||
l.alg_locatie_key
|
||
FROM mld_opdr o, mld_melding m, mld_stdmelding sm, alg_locatie l
|
||
WHERE o.mld_uitvoerende_keys = 2503 -- EW
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordsnt
|
||
ON ordsnt.fac_srtnotificatie_key = 67 -- ORDSNT
|
||
AND o.mld_opdr_key = ordsnt.fac_tracking_refkey
|
||
WHERE TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 3), 'q') < SYSDATE) x -- Lopende afmeld-kwartaal niet meetellen!
|
||
GROUP BY x.periode) --, x.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.optijd score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.optijd / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.optijd / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
--WHERE s.tot > 0;
|
||
|
||
-- TODO: Voor deze KPI oude scores nooit verwijderen!
|
||
-- TODO: Opdrachten of meldingen tellen???
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew23
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW23'),
|
||
scores
|
||
AS ( SELECT TRUNC (SYSDATE, 'q') - 1 periode, -- Cumulatief per kwartaal! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
SUM(DECODE (TRUNC (t.fac_tracking_datum, 'yyyy'), -- Of m.mld_melding_datum???
|
||
TRUNC (ADD_MONTHS (SYSDATE, -15), 'yyyy'), 1,
|
||
0))
|
||
tot_prevy,
|
||
SUM(DECODE (TRUNC (t.fac_tracking_datum, 'yyyy'), -- Of m.mld_melding_datum???
|
||
TRUNC (ADD_MONTHS (SYSDATE, -3), 'yyyy'), 1,
|
||
0))
|
||
tot_thisy
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 2503 -- EW
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
--AND m.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -15), 'yyyy') -- Alleen in Q1 vorig en jaar daarvoor; anders dit en vorig jaar!
|
||
--AND TO_CHAR (m.mld_melding_datum, 'q') <= TO_CHAR (ADD_MONTHS (SYSDATE, -3), 'q') -- Dezelfde kwartalen over beide jaren vergelijken!
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -15), 'yyyy') -- Alleen in Q1 vorig en jaar daarvoor; anders dit en vorig jaar!
|
||
AND TO_CHAR (t.fac_tracking_datum, 'q') <= TO_CHAR (ADD_MONTHS (SYSDATE, -3), 'q') -- Dezelfde kwartalen over beide jaren vergelijken!
|
||
GROUP BY TRUNC (SYSDATE, 'q') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot_thisy totaal,
|
||
s.tot_prevy score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.tot_thisy / s.tot_prevy, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.tot_thisy / s.tot_prevy), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s
|
||
WHERE s.tot_prevy > 0;
|
||
|
||
-- TODO: Opdrachten of meldingen tellen???
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew24
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW24'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1 -- Of m.mld_melding_datum???
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM (DECODE (m.mld_stdmelding_key, 139, 1, 0)) sanmid -- Sanitaire accessoires
|
||
FROM mld_opdr o, mld_melding m, mld_stdmelding sm, mld_discipline md, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 2503 -- EW
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
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 IN (2, 3) -- Storing/Klacht
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
--AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 3), 'q') < SYSDATE -- Lopende aanmaak-kwartaal niet meetellen!
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afmeld-kwartaal niet meetellen!
|
||
--GROUP BY TRUNC (ADD_MONTHS (m.mld_melding_datum, 3), 'q') - 1, l.alg_locatie_key)
|
||
GROUP BY TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.sanmid score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (1 - (s.sanmid / s.tot), n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (1 - (s.sanmid / s.tot)), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew25
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW25'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k1.mld_kenmerkmelding_waarde) tot,
|
||
fac.safe_to_number (k2.mld_kenmerkmelding_waarde) sub,
|
||
DECODE (
|
||
k1.mld_kenmerkmelding_waarde,
|
||
NULL, 1,
|
||
0, 1,
|
||
COALESCE (fac.safe_to_number (k2.mld_kenmerkmelding_waarde), 0)
|
||
/ fac.safe_to_number (k1.mld_kenmerkmelding_waarde))
|
||
perc_match
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 661 -- Contractmanagement-EW
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 661
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 655 -- Aantal audits
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 656 -- Audits goedgekeurd
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
WHERE k1.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.tot score1,
|
||
s.sub score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc_match, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc_match), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** EW/Tevredenheid ***
|
||
-- TODO: Opdrachten of meldingen tellen???
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew31
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW31'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1 -- Of m.mld_melding_datum???
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM (DECODE (o.mld_typeopdr_key, 285, 1, 0)) klachten -- Klacht; CHECK???
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 2503 -- EW
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
--AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 3), 'q') < SYSDATE -- Lopende aanmaak-kwartaal niet meetellen!
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afmeld-kwartaal niet meetellen!
|
||
--GROUP BY TRUNC (ADD_MONTHS (m.mld_melding_datum, 3), 'q') - 1, l.alg_locatie_key)
|
||
GROUP BY TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.klachten score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.klachten / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.klachten / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew32
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW32'),
|
||
scores
|
||
AS (SELECT TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1
|
||
periode, -- Per jaar! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 661 -- Contractmanagement-EW
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 661
|
||
AND TRUNC (ADD_MONTHS (mld_melding_datum, 9), 'yyyy') = TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy')
|
||
AND mld_melding_key > m.mld_melding_key)
|
||
AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') < SYSDATE) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = -1 -- CHECK???
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew33
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW33'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) * 10 perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 661 -- Contractmanagement-EW
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 661
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 657 -- Cijfer KTO
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew34
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW34'),
|
||
scores
|
||
AS (SELECT TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1
|
||
periode, -- Per jaar! Via eigen tabel?
|
||
SUM (DECODE (k.mld_kenmerkmelding_waarde, '1', 1, 0)) ja
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 661 -- Contractmanagement-EW
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') < SYSDATE) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 658 -- Voorstel gastvrijheidsmaatregelen ingediend
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL
|
||
GROUP BY TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
NULL kpi_score_refkey,
|
||
NULL totaal,
|
||
DECODE (s.ja, 0, 0, 1) score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (DECODE (s.ja, 0, 0, 1), n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (DECODE (s.ja, 0, 0, 1), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** EW/Personeel ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew41
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW41'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 661 -- Contractmanagement-EW
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 661
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 659 -- Opleidingen medewerkers
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew42
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW42'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 661 -- Contractmanagement-EW
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 661
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 660 -- Verloop
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew43
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW43'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 661 -- Contractmanagement-EW
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 661
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 661 -- Ziekteverzuim
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew44
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW44'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 661 -- Contractmanagement-EW
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 661
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 662 -- Competenties medewerkers
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** EW/Proces ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew51
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW51'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
DECODE (k.mld_kenmerkmelding_waarde, '1601', 100, '1602', 80, '1603', 80, 0) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 661 -- Contractmanagement-EW
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 661
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN
|
||
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde, ud.fac_usrdata_prijs -- CHECK???
|
||
FROM mld_v_aanwezigkenmerkmelding k, fac_usrdata ud
|
||
WHERE k.mld_kenmerk_key = 663 -- Managementrapportage
|
||
AND k.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)) k
|
||
ON m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_ew52
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'EW52'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k1.mld_kenmerkmelding_waarde) score1,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k2.mld_kenmerkmelding_waarde) score2,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k3.mld_kenmerkmelding_waarde) score3,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k4.mld_kenmerkmelding_waarde) score4,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k5.mld_kenmerkmelding_waarde) score5,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k6.mld_kenmerkmelding_waarde) score6,
|
||
km.totaal / km.aantal score
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 661 -- Contractmanagement-EW
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 661
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 664 -- Ketenoverleg M
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 665 -- Ketenoverleg NO
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k3
|
||
ON k3.mld_kenmerk_key = 666 -- Ketenoverleg NW
|
||
AND m.mld_melding_key = k3.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k4
|
||
ON k4.mld_kenmerk_key = 667 -- Ketenoverleg U
|
||
AND m.mld_melding_key = k4.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k5
|
||
ON k5.mld_kenmerk_key = 668 -- Ketenoverleg ZO
|
||
AND m.mld_melding_key = k5.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k6
|
||
ON k6.mld_kenmerk_key = 669 -- Ketenoverleg ZW
|
||
AND m.mld_melding_key = k6.mld_melding_key
|
||
LEFT JOIN ( SELECT km.mld_melding_key,
|
||
COUNT ( * ) aantal,
|
||
SUM(fac.safe_to_number (ud.fac_usrdata_code)) totaal
|
||
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
|
||
WHERE km.mld_kenmerk_key BETWEEN 664 AND 669 -- Ketenoverleg M/NO/NW/U/ZO/ZW
|
||
AND km.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)
|
||
AND ud.fac_usrdata_code IN ('1', '2', '3')
|
||
GROUP BY km.mld_melding_key) km
|
||
ON m.mld_melding_key = km.mld_melding_key
|
||
WHERE km.aantal > 0)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.score1,
|
||
s.score2,
|
||
s.score3,
|
||
s.score4,
|
||
s.score5,
|
||
s.score6,
|
||
kpi.getNormScore (s.score, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.score), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Gispen/Kosten ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_gispen11
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'GISPEN11'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--o.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM(DECODE (
|
||
SIGN(TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 2), 'mm') - ordafr.fac_tracking_datum),
|
||
-1, 0,
|
||
1))
|
||
optijd
|
||
FROM (SELECT o.mld_opdr_key, l.alg_locatie_key
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l
|
||
WHERE o.mld_uitvoerende_keys = 2501 -- Gispen
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key IN (281, 284) -- Mandaatopdracht/Offerteopdracht
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordafr
|
||
ON ordafr.fac_srtnotificatie_key = 70 -- ORDAFR
|
||
AND o.mld_opdr_key = ordafr.fac_tracking_refkey
|
||
WHERE TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afrond-kwartaal niet meetellen!
|
||
GROUP BY TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1) --, o.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.optijd score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.optijd / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.optijd / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_gispen12
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'GISPEN12'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k1.mld_kenmerkmelding_waarde) tot,
|
||
fac.safe_to_number (k2.mld_kenmerkmelding_waarde) sub,
|
||
DECODE (
|
||
k1.mld_kenmerkmelding_waarde,
|
||
NULL, 1,
|
||
0, 1,
|
||
COALESCE (fac.safe_to_number (k2.mld_kenmerkmelding_waarde), 0)
|
||
/ fac.safe_to_number (k1.mld_kenmerkmelding_waarde))
|
||
perc_match
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 742 -- Finance-Gispen
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 742
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 623 -- Aantal factuurnoti
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 624 -- Factuurnoti correct
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
WHERE k1.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.tot score1,
|
||
s.sub score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc_match, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc_match), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Gispen/Kwaliteit ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_gispen21
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'GISPEN21'),
|
||
scores
|
||
AS ( SELECT x.periode, --x.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM(DECODE (SIGN (x.normsla - x.uitvtijd.tijdsduur),
|
||
-1, 0,
|
||
1))
|
||
optijd
|
||
FROM (SELECT TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 3), 'q') - 1
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
o.alg_locatie_key,
|
||
MLD.getactualuitvoer (
|
||
ordsnt.fac_tracking_datum,
|
||
ordafm.fac_tracking_datum,
|
||
o.mld_stdmelding_key,
|
||
o.mld_melding_spoed,
|
||
NULL,
|
||
NULL,
|
||
o.eenheid)
|
||
uitvtijd,
|
||
o.normsla
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr,
|
||
m.mld_stdmelding_key, m.mld_melding_spoed,
|
||
DECODE (
|
||
m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.eenheid,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.eenheid,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.eenheid,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.eenheid)
|
||
eenheid,
|
||
DECODE (
|
||
m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.tijdsduur,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.tijdsduur,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.tijdsduur,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.tijdsduur)
|
||
normsla,
|
||
l.alg_locatie_key
|
||
FROM mld_opdr o, mld_melding m, mld_stdmelding sm, alg_locatie l
|
||
WHERE o.mld_uitvoerende_keys = 2501 -- Gispen
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordsnt
|
||
ON ordsnt.fac_srtnotificatie_key = 67 -- ORDSNT
|
||
AND o.mld_opdr_key = ordsnt.fac_tracking_refkey
|
||
WHERE TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 3), 'q') < SYSDATE) x -- Lopende afmeld-kwartaal niet meetellen!
|
||
GROUP BY x.periode) --, x.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.optijd score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.optijd / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.optijd / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
--WHERE s.tot > 0;
|
||
|
||
-- TODO: Voor deze KPI oude scores nooit verwijderen!
|
||
-- TODO: Opdrachten of meldingen tellen???
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_gispen22
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'GISPEN22'),
|
||
scores
|
||
AS ( SELECT TRUNC (SYSDATE, 'q') - 1 periode, -- Cumulatief per kwartaal! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
SUM(DECODE (TRUNC (t.fac_tracking_datum, 'yyyy'), -- Of m.mld_melding_datum???
|
||
TRUNC (ADD_MONTHS (SYSDATE, -15), 'yyyy'), 1,
|
||
0))
|
||
tot_prevy,
|
||
SUM(DECODE (TRUNC (t.fac_tracking_datum, 'yyyy'), -- Of m.mld_melding_datum???
|
||
TRUNC (ADD_MONTHS (SYSDATE, -3), 'yyyy'), 1,
|
||
0))
|
||
tot_thisy
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 2501 -- Gispen
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -15), 'yyyy') -- Alleen in Q1 vorig en jaar daarvoor; anders dit en vorig jaar!
|
||
AND TO_CHAR (t.fac_tracking_datum, 'q') <= TO_CHAR (ADD_MONTHS (SYSDATE, -3), 'q') -- Dezelfde kwartalen over beide jaren vergelijken!
|
||
GROUP BY TRUNC (SYSDATE, 'q') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot_thisy totaal,
|
||
s.tot_prevy score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.tot_thisy / s.tot_prevy, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.tot_thisy / s.tot_prevy), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s
|
||
WHERE s.tot_prevy > 0;
|
||
|
||
-- *** Gispen/Tevredenheid ***
|
||
-- TODO: Opdrachten of meldingen tellen???
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_gispen31
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'GISPEN31'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1 -- Of m.mld_melding_datum???
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM (DECODE (o.mld_typeopdr_key, 285, 1, 0)) klachten -- Klacht; CHECK???
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 2501 -- Gispen
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afmeld-kwartaal niet meetellen!
|
||
GROUP BY TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.klachten score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.klachten / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.klachten / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_gispen32
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'GISPEN32'),
|
||
scores
|
||
AS (SELECT TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1
|
||
periode, -- Per jaar! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 664 -- Contractmanagement-Gispen
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 664
|
||
AND TRUNC (ADD_MONTHS (mld_melding_datum, 9), 'yyyy') = TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy')
|
||
AND mld_melding_key > m.mld_melding_key)
|
||
AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') < SYSDATE) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = -1 -- CHECK???
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_gispen33
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'GISPEN33'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) * 10 perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 664 -- Contractmanagement-Gispen
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 664
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 545 -- Cijfer KTO
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_gispen34
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'GISPEN34'),
|
||
scores
|
||
AS (SELECT TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1
|
||
periode, -- Per jaar! Via eigen tabel?
|
||
SUM (DECODE (k.mld_kenmerkmelding_waarde, '1', 1, 0)) ja
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 664 -- Contractmanagement-Gispen
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') < SYSDATE) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 801 -- Voorstel gastvrijheidsmaatregelen ingediend
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL
|
||
GROUP BY TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
NULL kpi_score_refkey,
|
||
NULL totaal,
|
||
DECODE (s.ja, 0, 0, 1) score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (DECODE (s.ja, 0, 0, 1), n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (DECODE (s.ja, 0, 0, 1), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Gispen/Personeel ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_gispen41
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'GISPEN41'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 664 -- Contractmanagement-Gispen
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 664
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 802 -- Competenties medewerkers
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Gispen/Proces ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_gispen51
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'GISPEN51'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
DECODE (k.mld_kenmerkmelding_waarde, '1601', 100, '1602', 80, '1603', 80, 0) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 664 -- Contractmanagement-Gispen
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 664
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN
|
||
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde, ud.fac_usrdata_prijs -- CHECK???
|
||
FROM mld_v_aanwezigkenmerkmelding k, fac_usrdata ud
|
||
WHERE k.mld_kenmerk_key = 803 -- Managementrapportage
|
||
AND k.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)) k
|
||
ON m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_gispen52
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'GISPEN52'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k1.mld_kenmerkmelding_waarde) score1,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k2.mld_kenmerkmelding_waarde) score2,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k3.mld_kenmerkmelding_waarde) score3,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k4.mld_kenmerkmelding_waarde) score4,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k5.mld_kenmerkmelding_waarde) score5,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k6.mld_kenmerkmelding_waarde) score6,
|
||
km.totaal / km.aantal score
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 664 -- Contractmanagement-Gispen
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 664
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 804 -- Ketenoverleg M
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 805 -- Ketenoverleg NO
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k3
|
||
ON k3.mld_kenmerk_key = 806 -- Ketenoverleg NW
|
||
AND m.mld_melding_key = k3.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k4
|
||
ON k4.mld_kenmerk_key = 807 -- Ketenoverleg U
|
||
AND m.mld_melding_key = k4.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k5
|
||
ON k5.mld_kenmerk_key = 808 -- Ketenoverleg ZO
|
||
AND m.mld_melding_key = k5.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k6
|
||
ON k6.mld_kenmerk_key = 809 -- Ketenoverleg ZW
|
||
AND m.mld_melding_key = k6.mld_melding_key
|
||
LEFT JOIN ( SELECT km.mld_melding_key,
|
||
COUNT ( * ) aantal,
|
||
SUM(fac.safe_to_number (ud.fac_usrdata_code)) totaal
|
||
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
|
||
WHERE km.mld_kenmerk_key BETWEEN 804 AND 809 -- Ketenoverleg M/NO/NW/U/ZO/ZW
|
||
AND km.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)
|
||
AND ud.fac_usrdata_code IN ('1', '2', '3')
|
||
GROUP BY km.mld_melding_key) km
|
||
ON m.mld_melding_key = km.mld_melding_key
|
||
WHERE km.aantal > 0)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.score1,
|
||
s.score2,
|
||
s.score3,
|
||
s.score4,
|
||
s.score5,
|
||
s.score6,
|
||
kpi.getNormScore (s.score, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.score), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Gispen/Duurzaamheid ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_gispen61
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'GISPEN61'),
|
||
scores
|
||
AS (SELECT TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1
|
||
periode, -- Per jaar! Via eigen tabel?
|
||
SUM (DECODE (k.mld_kenmerkmelding_waarde, '1', 1, 0)) ja
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 664 -- Contractmanagement-Gispen
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') < SYSDATE) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 810 -- Voorstel duurzaamheidsmaatregelen ingediend
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL
|
||
GROUP BY TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
NULL kpi_score_refkey,
|
||
NULL totaal,
|
||
DECODE (s.ja, 0, 0, 1) score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (DECODE (s.ja, 0, 0, 1), n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (DECODE (s.ja, 0, 0, 1), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Maas/Kosten ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_maas11
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'MAAS11'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--o.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM(DECODE (
|
||
SIGN(TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 2), 'mm') - ordafr.fac_tracking_datum),
|
||
-1, 0,
|
||
1))
|
||
optijd
|
||
FROM (SELECT o.mld_opdr_key, l.alg_locatie_key
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l
|
||
WHERE o.mld_uitvoerende_keys = 2623 -- Maas
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key IN (281, 284) -- Mandaatopdracht/Offerteopdracht
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordafr
|
||
ON ordafr.fac_srtnotificatie_key = 70 -- ORDAFR
|
||
AND o.mld_opdr_key = ordafr.fac_tracking_refkey
|
||
WHERE TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afrond-kwartaal niet meetellen!
|
||
GROUP BY TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1) --, o.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.optijd score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.optijd / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.optijd / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_maas12
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'MAAS12'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k1.mld_kenmerkmelding_waarde) tot,
|
||
fac.safe_to_number (k2.mld_kenmerkmelding_waarde) sub,
|
||
DECODE (
|
||
k1.mld_kenmerkmelding_waarde,
|
||
NULL, 1,
|
||
0, 1,
|
||
COALESCE (fac.safe_to_number (k2.mld_kenmerkmelding_waarde), 0)
|
||
/ fac.safe_to_number (k1.mld_kenmerkmelding_waarde))
|
||
perc_match
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 744 -- Finance-Maas
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 742
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 641 -- Aantal factuurnoti
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 642 -- Factuurnoti correct
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
WHERE k1.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.tot score1,
|
||
s.sub score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc_match, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc_match), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Maas/Kwaliteit ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_maas21
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'MAAS21'),
|
||
scores
|
||
AS ( SELECT x.periode, --x.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM(DECODE (SIGN (x.normsla - x.uitvtijd.tijdsduur),
|
||
-1, 0,
|
||
1))
|
||
optijd
|
||
FROM (SELECT TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 3), 'q') - 1
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
o.alg_locatie_key,
|
||
MLD.getactualuitvoer (
|
||
ordsnt.fac_tracking_datum,
|
||
ordafm.fac_tracking_datum,
|
||
o.mld_stdmelding_key,
|
||
o.mld_melding_spoed,
|
||
NULL,
|
||
NULL,
|
||
o.eenheid)
|
||
uitvtijd,
|
||
o.normsla
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr,
|
||
m.mld_stdmelding_key, m.mld_melding_spoed,
|
||
DECODE (
|
||
m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.eenheid,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.eenheid,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.eenheid,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.eenheid)
|
||
eenheid,
|
||
DECODE (
|
||
m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.tijdsduur,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.tijdsduur,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.tijdsduur,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.tijdsduur)
|
||
normsla,
|
||
l.alg_locatie_key
|
||
FROM mld_opdr o, mld_melding m, mld_stdmelding sm, alg_locatie l
|
||
WHERE o.mld_uitvoerende_keys = 2623 -- Maas
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordsnt
|
||
ON ordsnt.fac_srtnotificatie_key = 67 -- ORDSNT
|
||
AND o.mld_opdr_key = ordsnt.fac_tracking_refkey
|
||
WHERE TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 3), 'q') < SYSDATE) x -- Lopende afmeld-kwartaal niet meetellen!
|
||
GROUP BY x.periode) --, x.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.optijd score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.optijd / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.optijd / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
--WHERE s.tot > 0;
|
||
|
||
-- TODO: Voor deze KPI oude scores nooit verwijderen!
|
||
-- TODO: Opdrachten of meldingen tellen???
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_maas22
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'MAAS22'),
|
||
scores
|
||
AS ( SELECT TRUNC (SYSDATE, 'q') - 1 periode, -- Cumulatief per kwartaal! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
SUM(DECODE (TRUNC (t.fac_tracking_datum, 'yyyy'), -- Of m.mld_melding_datum???
|
||
TRUNC (ADD_MONTHS (SYSDATE, -15), 'yyyy'), 1,
|
||
0))
|
||
tot_prevy,
|
||
SUM(DECODE (TRUNC (t.fac_tracking_datum, 'yyyy'), -- Of m.mld_melding_datum???
|
||
TRUNC (ADD_MONTHS (SYSDATE, -3), 'yyyy'), 1,
|
||
0))
|
||
tot_thisy
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 2623 -- Maas
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -15), 'yyyy') -- Alleen in Q1 vorig en jaar daarvoor; anders dit en vorig jaar!
|
||
AND TO_CHAR (t.fac_tracking_datum, 'q') <= TO_CHAR (ADD_MONTHS (SYSDATE, -3), 'q') -- Dezelfde kwartalen over beide jaren vergelijken!
|
||
GROUP BY TRUNC (SYSDATE, 'q') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot_thisy totaal,
|
||
s.tot_prevy score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.tot_thisy / s.tot_prevy, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.tot_thisy / s.tot_prevy), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s
|
||
WHERE s.tot_prevy > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_maas23
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'MAAS23'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 662 -- Contractmanagement-Maas
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 662
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 561 -- Beschikbaarheid koffieautomaten
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Maas/Tevredenheid ***
|
||
-- TODO: Opdrachten of meldingen tellen???
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_maas31
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'MAAS31'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1 -- Of m.mld_melding_datum???
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM (DECODE (o.mld_typeopdr_key, 285, 1, 0)) klachten -- Klacht; CHECK???
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 2623 -- Maas
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afmeld-kwartaal niet meetellen!
|
||
GROUP BY TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.klachten score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.klachten / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.klachten / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_maas32
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'MAAS32'),
|
||
scores
|
||
AS (SELECT TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1
|
||
periode, -- Per jaar! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 662 -- Contractmanagement-Maas
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 662
|
||
AND TRUNC (ADD_MONTHS (mld_melding_datum, 9), 'yyyy') = TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy')
|
||
AND mld_melding_key > m.mld_melding_key)
|
||
AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') < SYSDATE) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = -1 -- CHECK???
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_maas33
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'MAAS33'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) * 10 perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 662 -- Contractmanagement-Maas
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 662
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 721 -- Cijfer KTO
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Maas/Personeel ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_maas41
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'MAAS41'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 664 -- Contractmanagement-Maas
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 664
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 722 -- Competenties medewerkers
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Maas/Proces ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_maas51
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'MAAS51'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
DECODE (k.mld_kenmerkmelding_waarde, '1601', 100, '1602', 80, '1603', 80, 0) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 662 -- Contractmanagement-Maas
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 662
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN
|
||
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde, ud.fac_usrdata_prijs -- CHECK???
|
||
FROM mld_v_aanwezigkenmerkmelding k, fac_usrdata ud
|
||
WHERE k.mld_kenmerk_key = 723 -- Managementrapportage
|
||
AND k.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)) k
|
||
ON m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_maas52
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'MAAS52'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k1.mld_kenmerkmelding_waarde) score1,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k2.mld_kenmerkmelding_waarde) score2,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k3.mld_kenmerkmelding_waarde) score3,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k4.mld_kenmerkmelding_waarde) score4,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k5.mld_kenmerkmelding_waarde) score5,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k6.mld_kenmerkmelding_waarde) score6,
|
||
km.totaal / km.aantal score
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 662 -- Contractmanagement-Maas
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 662
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 726 -- Ketenoverleg M
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 727 -- Ketenoverleg NO
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k3
|
||
ON k3.mld_kenmerk_key = 728 -- Ketenoverleg NW
|
||
AND m.mld_melding_key = k3.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k4
|
||
ON k4.mld_kenmerk_key = 729 -- Ketenoverleg U
|
||
AND m.mld_melding_key = k4.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k5
|
||
ON k5.mld_kenmerk_key = 730 -- Ketenoverleg ZO
|
||
AND m.mld_melding_key = k5.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k6
|
||
ON k6.mld_kenmerk_key = 732 -- Ketenoverleg ZW
|
||
AND m.mld_melding_key = k6.mld_melding_key
|
||
LEFT JOIN ( SELECT km.mld_melding_key,
|
||
COUNT ( * ) aantal,
|
||
SUM(fac.safe_to_number (ud.fac_usrdata_code)) totaal
|
||
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
|
||
WHERE km.mld_kenmerk_key BETWEEN 726 AND 732 -- Ketenoverleg M/NO/NW/U/ZO/ZW
|
||
AND km.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)
|
||
AND ud.fac_usrdata_code IN ('1', '2', '3')
|
||
GROUP BY km.mld_melding_key) km
|
||
ON m.mld_melding_key = km.mld_melding_key
|
||
WHERE km.aantal > 0)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.score1,
|
||
s.score2,
|
||
s.score3,
|
||
s.score4,
|
||
s.score5,
|
||
s.score6,
|
||
kpi.getNormScore (s.score, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.score), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Receptel/Kosten ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_receptel11
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'RECEPTEL11'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--o.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM(DECODE (
|
||
SIGN(TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 2), 'mm') - ordafr.fac_tracking_datum),
|
||
-1, 0,
|
||
1))
|
||
optijd
|
||
FROM (SELECT o.mld_opdr_key, l.alg_locatie_key
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l
|
||
WHERE o.mld_uitvoerende_keys = 2502 -- Receptel
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key IN (281, 284) -- Mandaatopdracht/Offerteopdracht
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordafr
|
||
ON ordafr.fac_srtnotificatie_key = 70 -- ORDAFR
|
||
AND o.mld_opdr_key = ordafr.fac_tracking_refkey
|
||
WHERE TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afrond-kwartaal niet meetellen!
|
||
GROUP BY TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1) --, o.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.optijd score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.optijd / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.optijd / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_receptel12
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'RECEPTEL12'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k1.mld_kenmerkmelding_waarde) tot,
|
||
fac.safe_to_number (k2.mld_kenmerkmelding_waarde) sub,
|
||
DECODE (
|
||
k1.mld_kenmerkmelding_waarde,
|
||
NULL, 1,
|
||
0, 1,
|
||
COALESCE (fac.safe_to_number (k2.mld_kenmerkmelding_waarde), 0)
|
||
/ fac.safe_to_number (k1.mld_kenmerkmelding_waarde))
|
||
perc_match
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 745 -- Finance-Receptel
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 745
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 643 -- Aantal factuurnoti
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 644 -- Factuurnoti correct
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
WHERE k1.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.tot score1,
|
||
s.sub score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc_match, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc_match), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Receptel/Kwaliteit ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_receptel21
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'RECEPTEL21'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) * 10 perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 665 -- Contractmanagement-Receptel
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 665
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 581 -- Kwaliteitsaudit
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_receptel22
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'RECEPTEL22'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) * 10 perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 665 -- Contractmanagement-Receptel
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 665
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 748 -- Visuele inspectie
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_receptel23
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'RECEPTEL23'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 665 -- Contractmanagement-Receptel
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 665
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 749 -- Bezetting
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Receptel/Tevredenheid ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_receptel31
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'RECEPTEL31'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (t.fac_tracking_datum, 12), 'yyyy') - 1
|
||
periode, -- Per jaar! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM (DECODE (o.mld_typeopdr_key, 285, 1, 0)) klachten -- Klacht; CHECK???
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 2502 -- Receptel
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND TRUNC (ADD_MONTHS (t.fac_tracking_datum, 12), 'yyyy') < SYSDATE -- Lopende afmeld-jaar niet meetellen!
|
||
GROUP BY TRUNC (ADD_MONTHS (t.fac_tracking_datum, 12), 'yyyy') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.klachten score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.klachten / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.klachten / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_receptel32
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'RECEPTEL32'),
|
||
scores
|
||
AS (SELECT TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1
|
||
periode, -- Per jaar! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 665 -- Contractmanagement-Receptel
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 665
|
||
AND TRUNC (ADD_MONTHS (mld_melding_datum, 9), 'yyyy') = TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy')
|
||
AND mld_melding_key > m.mld_melding_key)
|
||
AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') < SYSDATE) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = -1 -- CHECK???
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_receptel33
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'RECEPTEL33'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) * 10 perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 665 -- Contractmanagement-Receptel
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 665
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 750 -- Cijfer KTO
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Receptel/Personeel ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_receptel41
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'RECEPTEL41'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 665 -- Contractmanagement-Receptel
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 665
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 753 -- Ziekteverzuim
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_receptel42
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'RECEPTEL42'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 665 -- Contractmanagement-Receptel
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 665
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 751 -- Verloop
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_receptel43
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'RECEPTEL43'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 665 -- Contractmanagement-Receptel
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 665
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 752 -- Competenties medewerkers
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** EW/Proces ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_receptel51
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'RECEPTEL51'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
DECODE (k.mld_kenmerkmelding_waarde, '1601', 100, '1602', 80, '1603', 80, 0) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 665 -- Contractmanagement-Receptel
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 665
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN
|
||
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde, ud.fac_usrdata_prijs -- CHECK???
|
||
FROM mld_v_aanwezigkenmerkmelding k, fac_usrdata ud
|
||
WHERE k.mld_kenmerk_key = 754 -- Managementrapportage
|
||
AND k.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)) k
|
||
ON m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_receptel52
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'RECEPTEL52'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (km.fac_usrdata_code) score
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 665 -- Contractmanagement-Receptel
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 665
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN
|
||
(SELECT km.mld_melding_key, ud.fac_usrdata_code
|
||
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
|
||
WHERE km.mld_kenmerk_key = 758 -- Ketenoverleg Utrecht
|
||
AND km.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)) km
|
||
ON m.mld_melding_key = km.mld_melding_key
|
||
WHERE km.fac_usrdata_code IN ('1', '2', '3'))
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.score score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.score, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.score), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** SWS/Kosten ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws11
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS11'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--o.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM(DECODE (
|
||
SIGN(TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 2), 'mm') - ordafr.fac_tracking_datum),
|
||
-1, 0,
|
||
1))
|
||
optijd
|
||
FROM (SELECT o.mld_opdr_key, l.alg_locatie_key
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l
|
||
WHERE o.mld_uitvoerende_keys = 2504 -- SWS
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key IN (281, 284) -- Mandaatopdracht/Offerteopdracht
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordafr
|
||
ON ordafr.fac_srtnotificatie_key = 70 -- ORDAFR
|
||
AND o.mld_opdr_key = ordafr.fac_tracking_refkey
|
||
WHERE TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afrond-kwartaal niet meetellen!
|
||
GROUP BY TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1) --, o.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.optijd score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.optijd / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.optijd / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws12
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS12'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k1.mld_kenmerkmelding_waarde) tot,
|
||
fac.safe_to_number (k2.mld_kenmerkmelding_waarde) sub,
|
||
DECODE (
|
||
k1.mld_kenmerkmelding_waarde,
|
||
NULL, 1,
|
||
0, 1,
|
||
COALESCE (fac.safe_to_number (k2.mld_kenmerkmelding_waarde), 0)
|
||
/ fac.safe_to_number (k1.mld_kenmerkmelding_waarde))
|
||
perc_match
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 741 -- Finance-SWS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 741
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 621 -- Aantal factuurnoti
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 622 -- Factuurnoti correct
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
WHERE k1.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.tot score1,
|
||
s.sub score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc_match, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc_match), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws13
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS13'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k1.mld_kenmerkmelding_waarde) tot,
|
||
fac.safe_to_number (k2.mld_kenmerkmelding_waarde) sub,
|
||
DECODE (
|
||
k1.mld_kenmerkmelding_waarde,
|
||
NULL, 1,
|
||
0, 1,
|
||
COALESCE (fac.safe_to_number (k2.mld_kenmerkmelding_waarde), 0)
|
||
/ fac.safe_to_number (k1.mld_kenmerkmelding_waarde))
|
||
perc_match
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 663 -- Contractmanagement-SWS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 663
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 582 -- Aantal variaties
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 583 -- Variaties correct
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
WHERE k1.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.tot score1,
|
||
s.sub score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc_match, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc_match), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws14
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS14'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k1.mld_kenmerkmelding_waarde) tot,
|
||
fac.safe_to_number (k2.mld_kenmerkmelding_waarde) sub,
|
||
DECODE (
|
||
k1.mld_kenmerkmelding_waarde,
|
||
NULL, 1,
|
||
0, 1,
|
||
COALESCE (fac.safe_to_number (k2.mld_kenmerkmelding_waarde), 0)
|
||
/ fac.safe_to_number (k1.mld_kenmerkmelding_waarde))
|
||
perc_match
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 663 -- Contractmanagement-SWS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 663
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 670 -- Aantal offertes
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 671 -- Offertes correct
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
WHERE k1.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.tot score1,
|
||
s.sub score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc_match, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc_match), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** SWS/Kwaliteit ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws21
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS21'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 663 -- Contractmanagement-SWS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 663
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 672 -- Uptime installaties
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws22
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS22'),
|
||
scores
|
||
AS ( SELECT x.periode, --x.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM(DECODE (SIGN (x.normsla - x.uitvtijd.tijdsduur),
|
||
-1, 0,
|
||
1))
|
||
optijd
|
||
FROM (SELECT TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 3), 'q') - 1
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
o.alg_locatie_key,
|
||
MLD.getactualuitvoer (
|
||
ordsnt.fac_tracking_datum,
|
||
ordafm.fac_tracking_datum,
|
||
o.mld_stdmelding_key,
|
||
o.mld_melding_spoed,
|
||
NULL,
|
||
NULL,
|
||
o.eenheid)
|
||
uitvtijd,
|
||
o.normsla
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr,
|
||
m.mld_stdmelding_key, m.mld_melding_spoed,
|
||
DECODE (
|
||
m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.eenheid,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.eenheid,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.eenheid,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.eenheid)
|
||
eenheid,
|
||
DECODE (
|
||
m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.tijdsduur,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.tijdsduur,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.tijdsduur,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.tijdsduur)
|
||
normsla,
|
||
l.alg_locatie_key
|
||
FROM mld_opdr o, mld_melding m, mld_stdmelding sm, alg_locatie l
|
||
WHERE o.mld_uitvoerende_keys = 2504 -- SWS
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordsnt
|
||
ON ordsnt.fac_srtnotificatie_key = 67 -- ORDSNT
|
||
AND o.mld_opdr_key = ordsnt.fac_tracking_refkey
|
||
WHERE TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 3), 'q') < SYSDATE) x -- Lopende afmeld-kwartaal niet meetellen!
|
||
GROUP BY x.periode) --, x.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.optijd score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.optijd / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.optijd / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
--WHERE s.tot > 0;
|
||
|
||
-- TODO: Voor deze KPI oude scores nooit verwijderen!
|
||
-- TODO: Opdrachten of meldingen tellen???
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws23
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS23'),
|
||
scores
|
||
AS ( SELECT TRUNC (SYSDATE, 'q') - 1 periode, -- Cumulatief per kwartaal! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
SUM(DECODE (TRUNC (t.fac_tracking_datum, 'yyyy'), -- Of m.mld_melding_datum???
|
||
TRUNC (ADD_MONTHS (SYSDATE, -15), 'yyyy'), 1,
|
||
0))
|
||
tot_prevy,
|
||
SUM(DECODE (TRUNC (t.fac_tracking_datum, 'yyyy'), -- Of m.mld_melding_datum???
|
||
TRUNC (ADD_MONTHS (SYSDATE, -3), 'yyyy'), 1,
|
||
0))
|
||
tot_thisy
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 2504 -- SWS
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -15), 'yyyy') -- Alleen in Q1 vorig en jaar daarvoor; anders dit en vorig jaar!
|
||
AND TO_CHAR (t.fac_tracking_datum, 'q') <= TO_CHAR (ADD_MONTHS (SYSDATE, -3), 'q') -- Dezelfde kwartalen over beide jaren vergelijken!
|
||
GROUP BY TRUNC (SYSDATE, 'q') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot_thisy totaal,
|
||
s.tot_prevy score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.tot_thisy / s.tot_prevy, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.tot_thisy / s.tot_prevy), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s
|
||
WHERE s.tot_prevy > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws24
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS24'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 663 -- Contractmanagement-SWS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 663
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 781 -- Verstoringen
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws25
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS25'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k1.mld_kenmerkmelding_waarde) tot,
|
||
fac.safe_to_number (k2.mld_kenmerkmelding_waarde) sub,
|
||
DECODE (
|
||
k1.mld_kenmerkmelding_waarde,
|
||
NULL, 1,
|
||
0, 1,
|
||
COALESCE (fac.safe_to_number (k2.mld_kenmerkmelding_waarde), 0)
|
||
/ fac.safe_to_number (k1.mld_kenmerkmelding_waarde))
|
||
perc_match
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 663 -- Contractmanagement-SWS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 663
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 674 -- Aantal audits
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 675 -- Audits goedgekeurd
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
WHERE k1.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.tot score1,
|
||
s.sub score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc_match, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc_match), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** SWS/Tevredenheid ***
|
||
-- TODO: Opdrachten of meldingen tellen???
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws31
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS31'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1 -- Of m.mld_melding_datum???
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM (DECODE (o.mld_typeopdr_key, 285, 1, 0)) klachten -- Klacht; CHECK???
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 2504 -- SWS
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afmeld-kwartaal niet meetellen!
|
||
GROUP BY TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.klachten score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.klachten / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.klachten / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws32
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS32'),
|
||
scores
|
||
AS (SELECT TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1
|
||
periode, -- Per jaar! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 663 -- Contractmanagement-SWS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 663
|
||
AND TRUNC (ADD_MONTHS (mld_melding_datum, 9), 'yyyy') = TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy')
|
||
AND mld_melding_key > m.mld_melding_key)
|
||
AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') < SYSDATE) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = -1 -- CHECK???
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws33
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS33'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) * 10 perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 663 -- Contractmanagement-SWS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 663
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 676 -- Cijfer KTO
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws34
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS34'),
|
||
scores
|
||
AS (SELECT TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1
|
||
periode, -- Per jaar! Via eigen tabel?
|
||
SUM (DECODE (k.mld_kenmerkmelding_waarde, '1', 1, 0)) ja
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 663 -- Contractmanagement-SWS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') < SYSDATE) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 677 -- Voorstel gastvrijheidsmaatregelen ingediend
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL
|
||
GROUP BY TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
NULL kpi_score_refkey,
|
||
NULL totaal,
|
||
DECODE (s.ja, 0, 0, 1) score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (DECODE (s.ja, 0, 0, 1), n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (DECODE (s.ja, 0, 0, 1), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** SWS/Personeel ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws41
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS41'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 663 -- Contractmanagement-SWS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 663
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 678 -- Opleidingen medewerkers
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws42
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS42'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 663 -- Contractmanagement-SWS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 663
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 701 -- Verloop
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws43
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS43'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 663 -- Contractmanagement-SWS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 663
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 702 -- Competenties medewerkers
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** SWS/Proces ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws51
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS51'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
DECODE (k.mld_kenmerkmelding_waarde, '1601', 100, '1602', 80, '1603', 80, 0) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 663 -- Contractmanagement-SWS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 663
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN
|
||
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde, ud.fac_usrdata_prijs -- CHECK???
|
||
FROM mld_v_aanwezigkenmerkmelding k, fac_usrdata ud
|
||
WHERE k.mld_kenmerk_key = 703 -- Managementrapportage
|
||
AND k.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)) k
|
||
ON m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_sws52
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'SWS52'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k1.mld_kenmerkmelding_waarde) score1,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k2.mld_kenmerkmelding_waarde) score2,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k3.mld_kenmerkmelding_waarde) score3,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k4.mld_kenmerkmelding_waarde) score4,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k5.mld_kenmerkmelding_waarde) score5,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k6.mld_kenmerkmelding_waarde) score6,
|
||
km.totaal / km.aantal score
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 663 -- Contractmanagement-SWS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 663
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 704 -- Ketenoverleg M
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 705 -- Ketenoverleg NO
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k3
|
||
ON k3.mld_kenmerk_key = 707 -- Ketenoverleg NW
|
||
AND m.mld_melding_key = k3.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k4
|
||
ON k4.mld_kenmerk_key = 708 -- Ketenoverleg U
|
||
AND m.mld_melding_key = k4.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k5
|
||
ON k5.mld_kenmerk_key = 709 -- Ketenoverleg ZO
|
||
AND m.mld_melding_key = k5.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k6
|
||
ON k6.mld_kenmerk_key = 710 -- Ketenoverleg ZW
|
||
AND m.mld_melding_key = k6.mld_melding_key
|
||
LEFT JOIN ( SELECT km.mld_melding_key,
|
||
COUNT ( * ) aantal,
|
||
SUM(fac.safe_to_number (ud.fac_usrdata_code)) totaal
|
||
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
|
||
WHERE km.mld_kenmerk_key BETWEEN 704 AND 710 -- Ketenoverleg M/NO/NW/U/ZO/ZW
|
||
AND km.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)
|
||
AND ud.fac_usrdata_code IN ('1', '2', '3')
|
||
GROUP BY km.mld_melding_key) km
|
||
ON m.mld_melding_key = km.mld_melding_key
|
||
WHERE km.aantal > 0)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.score1,
|
||
s.score2,
|
||
s.score3,
|
||
s.score4,
|
||
s.score5,
|
||
s.score6,
|
||
kpi.getNormScore (s.score, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.score), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** UTS/Kosten ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_uts11
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'UTS11'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--o.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM(DECODE (
|
||
SIGN(TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 2), 'mm') - ordafr.fac_tracking_datum),
|
||
-1, 0,
|
||
1))
|
||
optijd
|
||
FROM (SELECT o.mld_opdr_key, l.alg_locatie_key
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l
|
||
WHERE o.mld_uitvoerende_keys = 2505 -- UTS
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key IN (281, 284) -- Mandaatopdracht/Offerteopdracht
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordafr
|
||
ON ordafr.fac_srtnotificatie_key = 70 -- ORDAFR
|
||
AND o.mld_opdr_key = ordafr.fac_tracking_refkey
|
||
WHERE TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afrond-kwartaal niet meetellen!
|
||
GROUP BY TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1) --, o.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.optijd score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.optijd / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.optijd / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_uts12
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'UTS12'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k1.mld_kenmerkmelding_waarde) tot,
|
||
fac.safe_to_number (k2.mld_kenmerkmelding_waarde) sub,
|
||
DECODE (
|
||
k1.mld_kenmerkmelding_waarde,
|
||
NULL, 1,
|
||
0, 1,
|
||
COALESCE (fac.safe_to_number (k2.mld_kenmerkmelding_waarde), 0)
|
||
/ fac.safe_to_number (k1.mld_kenmerkmelding_waarde))
|
||
perc_match
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 743 -- Finance-UTS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 743
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 625 -- Aantal factuurnoti
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 626 -- Factuurnoti correct
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
WHERE k1.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.tot score1,
|
||
s.sub score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc_match, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc_match), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_uts13
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'UTS13'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k1.mld_kenmerkmelding_waarde) tot,
|
||
fac.safe_to_number (k2.mld_kenmerkmelding_waarde) sub,
|
||
DECODE (
|
||
k1.mld_kenmerkmelding_waarde,
|
||
NULL, 1,
|
||
0, 1,
|
||
COALESCE (fac.safe_to_number (k2.mld_kenmerkmelding_waarde), 0)
|
||
/ fac.safe_to_number (k1.mld_kenmerkmelding_waarde))
|
||
perc_match
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 666 -- Contractmanagement-UTS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 666
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 601 -- Aantal offertes
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 602 -- Offertes correct
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
WHERE k1.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.tot score1,
|
||
s.sub score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc_match, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc_match), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** UTS/Kwaliteit ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_uts21
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'UTS21'),
|
||
scores
|
||
AS ( SELECT x.periode, --x.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM(DECODE (SIGN (x.normsla - x.uitvtijd.tijdsduur),
|
||
-1, 0,
|
||
1))
|
||
optijd
|
||
FROM (SELECT TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 3), 'q') - 1
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
o.alg_locatie_key,
|
||
MLD.getactualuitvoer (
|
||
ordsnt.fac_tracking_datum,
|
||
ordafm.fac_tracking_datum,
|
||
o.mld_stdmelding_key,
|
||
o.mld_melding_spoed,
|
||
NULL,
|
||
NULL,
|
||
o.eenheid)
|
||
uitvtijd,
|
||
o.normsla
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr,
|
||
m.mld_stdmelding_key, m.mld_melding_spoed,
|
||
DECODE (
|
||
m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.eenheid,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.eenheid,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.eenheid,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.eenheid)
|
||
eenheid,
|
||
DECODE (
|
||
m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.tijdsduur,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.tijdsduur,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.tijdsduur,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.tijdsduur)
|
||
normsla,
|
||
l.alg_locatie_key
|
||
FROM mld_opdr o, mld_melding m, mld_stdmelding sm, alg_locatie l
|
||
WHERE o.mld_uitvoerende_keys = 2505 -- UTS
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordsnt
|
||
ON ordsnt.fac_srtnotificatie_key = 67 -- ORDSNT
|
||
AND o.mld_opdr_key = ordsnt.fac_tracking_refkey
|
||
WHERE TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 3), 'q') < SYSDATE) x -- Lopende afmeld-kwartaal niet meetellen!
|
||
GROUP BY x.periode) --, x.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.optijd score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.optijd / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.optijd / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
--WHERE s.tot > 0;
|
||
|
||
-- TODO: Voor deze KPI oude scores nooit verwijderen!
|
||
-- TODO: Opdrachten of meldingen tellen???
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_uts22
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'UTS22'),
|
||
scores
|
||
AS ( SELECT TRUNC (SYSDATE, 'q') - 1 periode, -- Cumulatief per kwartaal! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
SUM(DECODE (TRUNC (t.fac_tracking_datum, 'yyyy'), -- Of m.mld_melding_datum???
|
||
TRUNC (ADD_MONTHS (SYSDATE, -15), 'yyyy'), 1,
|
||
0))
|
||
tot_prevy,
|
||
SUM(DECODE (TRUNC (t.fac_tracking_datum, 'yyyy'), -- Of m.mld_melding_datum???
|
||
TRUNC (ADD_MONTHS (SYSDATE, -3), 'yyyy'), 1,
|
||
0))
|
||
tot_thisy
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 2505 -- UTS
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -15), 'yyyy') -- Alleen in Q1 vorig en jaar daarvoor; anders dit en vorig jaar!
|
||
AND TO_CHAR (t.fac_tracking_datum, 'q') <= TO_CHAR (ADD_MONTHS (SYSDATE, -3), 'q') -- Dezelfde kwartalen over beide jaren vergelijken!
|
||
GROUP BY TRUNC (SYSDATE, 'q') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot_thisy totaal,
|
||
s.tot_prevy score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.tot_thisy / s.tot_prevy, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.tot_thisy / s.tot_prevy), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s
|
||
WHERE s.tot_prevy > 0;
|
||
|
||
-- *** UTS/Tevredenheid ***
|
||
-- TODO: Opdrachten of meldingen tellen???
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_uts31
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'UTS31'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1 -- Of m.mld_melding_datum???
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM (DECODE (o.mld_typeopdr_key, 285, 1, 0)) klachten -- Klacht; CHECK???
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 2505 -- UTS
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afmeld-kwartaal niet meetellen!
|
||
GROUP BY TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.klachten score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.klachten / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.klachten / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_uts32
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'UTS32'),
|
||
scores
|
||
AS (SELECT TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1
|
||
periode, -- Per jaar! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 666 -- Contractmanagement-UTS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 666
|
||
AND TRUNC (ADD_MONTHS (mld_melding_datum, 9), 'yyyy') = TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy')
|
||
AND mld_melding_key > m.mld_melding_key)
|
||
AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') < SYSDATE) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = -1 -- CHECK???
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_uts33
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'UTS33'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) * 10 perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 666 -- Contractmanagement-UTS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 666
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 761 -- Cijfer KTO
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_uts34
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'UTS34'),
|
||
scores
|
||
AS (SELECT TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1
|
||
periode, -- Per jaar! Via eigen tabel?
|
||
SUM (DECODE (k.mld_kenmerkmelding_waarde, '1', 1, 0)) ja
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 666 -- Contractmanagement-UTS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') < SYSDATE) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 762 -- Voorstel gastvrijheidsmaatregelen ingediend
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL
|
||
GROUP BY TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
NULL kpi_score_refkey,
|
||
NULL totaal,
|
||
DECODE (s.ja, 0, 0, 1) score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (DECODE (s.ja, 0, 0, 1), n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (DECODE (s.ja, 0, 0, 1), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** UTS/Personeel ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_uts41
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'UTS41'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 666 -- Contractmanagement-UTS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 666
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 763 -- Competenties medewerkers
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** UTS/Proces ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_uts51
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'UTS51'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
DECODE (k.mld_kenmerkmelding_waarde, '1601', 100, '1602', 80, '1603', 80, 0) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 666 -- Contractmanagement-UTS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 666
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN
|
||
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde, ud.fac_usrdata_prijs -- CHECK???
|
||
FROM mld_v_aanwezigkenmerkmelding k, fac_usrdata ud
|
||
WHERE k.mld_kenmerk_key = 764 -- Managementrapportage
|
||
AND k.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)) k
|
||
ON m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_uts52
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'UTS52'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k1.mld_kenmerkmelding_waarde) score1,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k2.mld_kenmerkmelding_waarde) score2,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k3.mld_kenmerkmelding_waarde) score3,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k4.mld_kenmerkmelding_waarde) score4,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k5.mld_kenmerkmelding_waarde) score5,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k6.mld_kenmerkmelding_waarde) score6,
|
||
km.totaal / km.aantal score
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 666 -- Contractmanagement-UTS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 666
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 765 -- Ketenoverleg M
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 766 -- Ketenoverleg NO
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k3
|
||
ON k3.mld_kenmerk_key = 767 -- Ketenoverleg NW
|
||
AND m.mld_melding_key = k3.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k4
|
||
ON k4.mld_kenmerk_key = 768 -- Ketenoverleg U
|
||
AND m.mld_melding_key = k4.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k5
|
||
ON k5.mld_kenmerk_key = 769 -- Ketenoverleg ZO
|
||
AND m.mld_melding_key = k5.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k6
|
||
ON k6.mld_kenmerk_key = 770 -- Ketenoverleg ZW
|
||
AND m.mld_melding_key = k6.mld_melding_key
|
||
LEFT JOIN ( SELECT km.mld_melding_key,
|
||
COUNT ( * ) aantal,
|
||
SUM(fac.safe_to_number (ud.fac_usrdata_code)) totaal
|
||
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
|
||
WHERE km.mld_kenmerk_key BETWEEN 765 AND 770 -- Ketenoverleg M/NO/NW/U/ZO/ZW
|
||
AND km.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)
|
||
AND ud.fac_usrdata_code IN ('1', '2', '3')
|
||
GROUP BY km.mld_melding_key) km
|
||
ON m.mld_melding_key = km.mld_melding_key
|
||
WHERE km.aantal > 0)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.score1,
|
||
s.score2,
|
||
s.score3,
|
||
s.score4,
|
||
s.score5,
|
||
s.score6,
|
||
kpi.getNormScore (s.score, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.score), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** UTS/Duurzaamheid ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_uts61
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'UTS61'),
|
||
scores
|
||
AS (SELECT TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1
|
||
periode, -- Per jaar! Via eigen tabel?
|
||
SUM (DECODE (k.mld_kenmerkmelding_waarde, '1', 1, 0)) ja
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 666 -- Contractmanagement-UTS
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') < SYSDATE) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 821 -- Voorstel duurzaamheidsmaatregelen ingediend
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL
|
||
GROUP BY TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
NULL kpi_score_refkey,
|
||
NULL totaal,
|
||
DECODE (s.ja, 0, 0, 1) score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (DECODE (s.ja, 0, 0, 1), n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (DECODE (s.ja, 0, 0, 1), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Trigion Beveiliging/Kosten ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionb11
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONB11'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--o.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM(DECODE (
|
||
SIGN(TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 2), 'mm') - ordafr.fac_tracking_datum),
|
||
-1, 0,
|
||
1))
|
||
optijd
|
||
FROM (SELECT o.mld_opdr_key, l.alg_locatie_key
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l
|
||
WHERE o.mld_uitvoerende_keys = 2506 -- Trigion Beveiliging
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key IN (281, 284) -- Mandaatopdracht/Offerteopdracht
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordafr
|
||
ON ordafr.fac_srtnotificatie_key = 70 -- ORDAFR
|
||
AND o.mld_opdr_key = ordafr.fac_tracking_refkey
|
||
WHERE TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afrond-kwartaal niet meetellen!
|
||
GROUP BY TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1) --, o.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.optijd score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.optijd / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.optijd / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionb12
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONB12'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k1.mld_kenmerkmelding_waarde) tot,
|
||
fac.safe_to_number (k2.mld_kenmerkmelding_waarde) sub,
|
||
DECODE (
|
||
k1.mld_kenmerkmelding_waarde,
|
||
NULL, 1,
|
||
0, 1,
|
||
COALESCE (fac.safe_to_number (k2.mld_kenmerkmelding_waarde), 0)
|
||
/ fac.safe_to_number (k1.mld_kenmerkmelding_waarde))
|
||
perc_match
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 746 -- Finance-Trigion Beveiliging
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 746
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 645 -- Aantal factuurnoti
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 646 -- Factuurnoti correct
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
WHERE k1.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.tot score1,
|
||
s.sub score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc_match, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc_match), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Trigion Beveiliging/Kwaliteit ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionb21
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONB21'),
|
||
scores
|
||
AS ( SELECT x.periode, --x.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM(DECODE (SIGN (x.normsla - x.uitvtijd.tijdsduur),
|
||
-1, 0,
|
||
1))
|
||
optijd
|
||
FROM (SELECT TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 3), 'q') - 1
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
o.alg_locatie_key,
|
||
MLD.getactualuitvoer (
|
||
ordsnt.fac_tracking_datum,
|
||
ordafm.fac_tracking_datum,
|
||
o.mld_stdmelding_key,
|
||
o.mld_melding_spoed,
|
||
NULL,
|
||
NULL,
|
||
o.eenheid)
|
||
uitvtijd,
|
||
o.normsla
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr,
|
||
m.mld_stdmelding_key, m.mld_melding_spoed,
|
||
DECODE (
|
||
m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.eenheid,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.eenheid,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.eenheid,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.eenheid)
|
||
eenheid,
|
||
DECODE (
|
||
m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.tijdsduur,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.tijdsduur,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.tijdsduur,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.tijdsduur)
|
||
normsla,
|
||
l.alg_locatie_key
|
||
FROM mld_opdr o, mld_melding m, mld_stdmelding sm, alg_locatie l
|
||
WHERE o.mld_uitvoerende_keys = 2506 -- Trigion Beveiliging
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordsnt
|
||
ON ordsnt.fac_srtnotificatie_key = 67 -- ORDSNT
|
||
AND o.mld_opdr_key = ordsnt.fac_tracking_refkey
|
||
WHERE TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 3), 'q') < SYSDATE) x -- Lopende afmeld-kwartaal niet meetellen!
|
||
GROUP BY x.periode) --, x.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.optijd score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.optijd / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.optijd / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
--WHERE s.tot > 0;
|
||
|
||
-- TODO: Voor deze KPI oude scores nooit verwijderen!
|
||
-- TODO: Opdrachten of meldingen tellen???
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionb22
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONB22'),
|
||
scores
|
||
AS ( SELECT TRUNC (SYSDATE, 'q') - 1 periode, -- Cumulatief per kwartaal! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
SUM(DECODE (TRUNC (t.fac_tracking_datum, 'yyyy'), -- Of m.mld_melding_datum???
|
||
TRUNC (ADD_MONTHS (SYSDATE, -15), 'yyyy'), 1,
|
||
0))
|
||
tot_prevy,
|
||
SUM(DECODE (TRUNC (t.fac_tracking_datum, 'yyyy'), -- Of m.mld_melding_datum???
|
||
TRUNC (ADD_MONTHS (SYSDATE, -3), 'yyyy'), 1,
|
||
0))
|
||
tot_thisy
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 2506 -- Trigion Beveiliging
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -15), 'yyyy') -- Alleen in Q1 vorig en jaar daarvoor; anders dit en vorig jaar!
|
||
AND TO_CHAR (t.fac_tracking_datum, 'q') <= TO_CHAR (ADD_MONTHS (SYSDATE, -3), 'q') -- Dezelfde kwartalen over beide jaren vergelijken!
|
||
GROUP BY TRUNC (SYSDATE, 'q') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot_thisy totaal,
|
||
s.tot_prevy score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.tot_thisy / s.tot_prevy, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.tot_thisy / s.tot_prevy), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s
|
||
WHERE s.tot_prevy > 0;
|
||
|
||
-- *** Trigion Beveiliging/Tevredenheid ***
|
||
-- TODO: Opdrachten of meldingen tellen???
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionb31
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONB31'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1 -- Of m.mld_melding_datum???
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM (DECODE (o.mld_typeopdr_key, 285, 1, 0)) klachten -- Klacht; CHECK???
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 2506 -- Trigion Beveiliging
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afmeld-kwartaal niet meetellen!
|
||
GROUP BY TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.klachten score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.klachten / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.klachten / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionb32
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONB32'),
|
||
scores
|
||
AS (SELECT TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1
|
||
periode, -- Per jaar! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 667 -- Contractmanagement-Trigion Beveiliging
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 667
|
||
AND TRUNC (ADD_MONTHS (mld_melding_datum, 9), 'yyyy') = TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy')
|
||
AND mld_melding_key > m.mld_melding_key)
|
||
AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') < SYSDATE) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = -1 -- CHECK???
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionb33
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONB33'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) * 10 perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 667 -- Contractmanagement-Trigion Beveiliging
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 667
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 603 -- Cijfer KTO
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Trigion Beveiliging/Personeel ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionb41
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONB41'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 667 -- Contractmanagement-Trigion Beveiliging
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 667
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 741 -- Competenties medewerkers
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Trigion Beveiliging/Proces ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionb51
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONB51'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k1.mld_kenmerkmelding_waarde) score1,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k2.mld_kenmerkmelding_waarde) score2,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k3.mld_kenmerkmelding_waarde) score3,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k4.mld_kenmerkmelding_waarde) score4,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k5.mld_kenmerkmelding_waarde) score5,
|
||
(SELECT fac.safe_to_number (fac_usrdata_code) FROM fac_usrdata WHERE TO_CHAR (fac_usrdata_key) = k6.mld_kenmerkmelding_waarde) score6,
|
||
km.totaal / km.aantal score
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 667 -- Contractmanagement-Trigion Beveiliging
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 667
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 742 -- Ketenoverleg M
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 743 -- Ketenoverleg NO
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k3
|
||
ON k3.mld_kenmerk_key = 744 -- Ketenoverleg NW
|
||
AND m.mld_melding_key = k3.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k4
|
||
ON k4.mld_kenmerk_key = 745 -- Ketenoverleg U
|
||
AND m.mld_melding_key = k4.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k5
|
||
ON k5.mld_kenmerk_key = 746 -- Ketenoverleg ZO
|
||
AND m.mld_melding_key = k5.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k6
|
||
ON k6.mld_kenmerk_key = 747 -- Ketenoverleg ZW
|
||
AND m.mld_melding_key = k6.mld_melding_key
|
||
LEFT JOIN ( SELECT km.mld_melding_key,
|
||
COUNT ( * ) aantal,
|
||
SUM(fac.safe_to_number (ud.fac_usrdata_code)) totaal
|
||
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
|
||
WHERE km.mld_kenmerk_key BETWEEN 742 AND 747 -- Ketenoverleg M/NO/NW/U/ZO/ZW
|
||
AND km.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)
|
||
AND ud.fac_usrdata_code IN ('1', '2', '3')
|
||
GROUP BY km.mld_melding_key) km
|
||
ON m.mld_melding_key = km.mld_melding_key
|
||
WHERE km.aantal > 0)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.score1,
|
||
s.score2,
|
||
s.score3,
|
||
s.score4,
|
||
s.score5,
|
||
s.score6,
|
||
kpi.getNormScore (s.score, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.score), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Trigion Beveiligingstechniek/Kosten ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionbt11
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONBT11'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--o.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM(DECODE (
|
||
SIGN(TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 2), 'mm') - ordafr.fac_tracking_datum),
|
||
-1, 0,
|
||
1))
|
||
optijd
|
||
FROM (SELECT o.mld_opdr_key, l.alg_locatie_key
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l
|
||
WHERE o.mld_uitvoerende_keys = 3961 -- Trigion Beveiligingstechniek
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key IN (281, 284) -- Mandaatopdracht/Offerteopdracht
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordafr
|
||
ON ordafr.fac_srtnotificatie_key = 70 -- ORDAFR
|
||
AND o.mld_opdr_key = ordafr.fac_tracking_refkey
|
||
WHERE TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afrond-kwartaal niet meetellen!
|
||
GROUP BY TRUNC (ADD_MONTHS (ordafr.fac_tracking_datum, 3), 'q') - 1) --, o.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.optijd score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.optijd / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.optijd / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionbt12
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONBT12'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k1.mld_kenmerkmelding_waarde) tot,
|
||
fac.safe_to_number (k2.mld_kenmerkmelding_waarde) sub,
|
||
DECODE (
|
||
k1.mld_kenmerkmelding_waarde,
|
||
NULL, 1,
|
||
0, 1,
|
||
COALESCE (fac.safe_to_number (k2.mld_kenmerkmelding_waarde), 0)
|
||
/ fac.safe_to_number (k1.mld_kenmerkmelding_waarde))
|
||
perc_match
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 747 -- Finance-Trigion Beveiligingstechniek
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 747
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k1
|
||
ON k1.mld_kenmerk_key = 647 -- Aantal factuurnoti
|
||
AND m.mld_melding_key = k1.mld_melding_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k2
|
||
ON k2.mld_kenmerk_key = 648 -- Factuurnoti correct
|
||
AND m.mld_melding_key = k2.mld_melding_key
|
||
WHERE k1.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.tot score1,
|
||
s.sub score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc_match, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc_match), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
-- *** Trigion Beveiligingstechniek/Kwaliteit ***
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionbt21
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONBT21'),
|
||
scores
|
||
AS ( SELECT x.periode, --x.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM(DECODE (SIGN (x.normsla - x.uitvtijd.tijdsduur),
|
||
-1, 0,
|
||
1))
|
||
optijd
|
||
FROM (SELECT TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 3), 'q') - 1
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
o.alg_locatie_key,
|
||
MLD.getactualuitvoer (
|
||
ordsnt.fac_tracking_datum,
|
||
ordafm.fac_tracking_datum,
|
||
o.mld_stdmelding_key,
|
||
o.mld_melding_spoed,
|
||
NULL,
|
||
NULL,
|
||
o.eenheid)
|
||
uitvtijd,
|
||
o.normsla
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr,
|
||
m.mld_stdmelding_key, m.mld_melding_spoed,
|
||
DECODE (
|
||
m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.eenheid,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.eenheid,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.eenheid,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.eenheid)
|
||
eenheid,
|
||
DECODE (
|
||
m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.tijdsduur,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.tijdsduur,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.tijdsduur,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.tijdsduur)
|
||
normsla,
|
||
l.alg_locatie_key
|
||
FROM mld_opdr o, mld_melding m, mld_stdmelding sm, alg_locatie l
|
||
WHERE o.mld_uitvoerende_keys = 3961 -- Trigion Beveiligingstechniek
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordsnt
|
||
ON ordsnt.fac_srtnotificatie_key = 67 -- ORDSNT
|
||
AND o.mld_opdr_key = ordsnt.fac_tracking_refkey
|
||
WHERE TRUNC (ADD_MONTHS (ordafm.fac_tracking_datum, 3), 'q') < SYSDATE) x -- Lopende afmeld-kwartaal niet meetellen!
|
||
GROUP BY x.periode) --, x.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.optijd score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.optijd / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.optijd / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
--WHERE s.tot > 0;
|
||
|
||
-- TODO: Voor deze KPI oude scores nooit verwijderen!
|
||
-- TODO: Opdrachten of meldingen tellen???
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionbt22
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONBT22'),
|
||
scores
|
||
AS ( SELECT TRUNC (SYSDATE, 'q') - 1 periode, -- Cumulatief per kwartaal! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
SUM(DECODE (TRUNC (t.fac_tracking_datum, 'yyyy'), -- Of m.mld_melding_datum???
|
||
TRUNC (ADD_MONTHS (SYSDATE, -15), 'yyyy'), 1,
|
||
0))
|
||
tot_prevy,
|
||
SUM(DECODE (TRUNC (t.fac_tracking_datum, 'yyyy'), -- Of m.mld_melding_datum???
|
||
TRUNC (ADD_MONTHS (SYSDATE, -3), 'yyyy'), 1,
|
||
0))
|
||
tot_thisy
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 3961 -- Trigion Beveiligingstechniek
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -15), 'yyyy') -- Alleen in Q1 vorig en jaar daarvoor; anders dit en vorig jaar!
|
||
AND TO_CHAR (t.fac_tracking_datum, 'q') <= TO_CHAR (ADD_MONTHS (SYSDATE, -3), 'q') -- Dezelfde kwartalen over beide jaren vergelijken!
|
||
GROUP BY TRUNC (SYSDATE, 'q') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot_thisy totaal,
|
||
s.tot_prevy score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.tot_thisy / s.tot_prevy, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.tot_thisy / s.tot_prevy), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s
|
||
WHERE s.tot_prevy > 0;
|
||
|
||
-- *** Trigion Beveiligingstechniek/Tevredenheid ***
|
||
-- TODO: Opdrachten of meldingen tellen???
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionbt31
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONBT31'),
|
||
scores
|
||
AS ( SELECT TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1 -- Of m.mld_melding_datum???
|
||
periode, -- Per kwartaal! Via eigen tabel?
|
||
--l.alg_locatie_key,
|
||
COUNT ( * ) tot,
|
||
SUM (DECODE (o.mld_typeopdr_key, 285, 1, 0)) klachten -- Klacht; CHECK???
|
||
FROM mld_opdr o, mld_melding m, alg_locatie l, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 3961 -- Trigion Beveiligingstechniek
|
||
AND o.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.; CHECK???
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') < SYSDATE -- Lopende afmeld-kwartaal niet meetellen!
|
||
GROUP BY TRUNC (ADD_MONTHS (t.fac_tracking_datum, 3), 'q') - 1) --, l.alg_locatie_key)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
--s.alg_locatie_key,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode, -- Alles moet op melding!?
|
||
NULL kpi_score_refkey,
|
||
s.tot totaal,
|
||
s.klachten score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.klachten / s.tot, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.klachten / s.tot), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
-- WHERE s.tot > 0;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionbt32
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONBT32'),
|
||
scores
|
||
AS (SELECT TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') - 1
|
||
periode, -- Per jaar! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 668 -- Contractmanagement-Trigion Beveiligingstechniek
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 668
|
||
AND TRUNC (ADD_MONTHS (mld_melding_datum, 9), 'yyyy') = TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy')
|
||
AND mld_melding_key > m.mld_melding_key)
|
||
AND TRUNC (ADD_MONTHS (m.mld_melding_datum, 9), 'yyyy') < SYSDATE) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = -1 -- CHECK???
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_trigionbt33
|
||
AS
|
||
WITH normen
|
||
AS (SELECT kpi_definitie_key, kpi_definitie_code kpi_code, kpi_definitie_drempels normscores,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 1)) n000,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 2)) n070,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 3)) n090,
|
||
fac.safe_to_number (REGEXP_SUBSTR (kpi_definitie_drempels, '[^|]+', 1, 4)) n100
|
||
FROM kpi_definitie
|
||
WHERE kpi_definitie_code = 'TRIGIONBT33'),
|
||
scores
|
||
AS (SELECT TRUNC (m.mld_melding_datum, 'q') - 1 periode, -- Per kwartaal! Via eigen tabel?
|
||
m.mld_melding_key,
|
||
fac.safe_to_number (k.mld_kenmerkmelding_waarde) * 10 perc
|
||
FROM (SELECT m.mld_melding_key, m.mld_melding_datum
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 668 -- Contractmanagement-Trigion Beveiligingstechniek
|
||
AND m.mld_melding_status IN (5, 6)
|
||
AND NOT EXISTS -- Meest recente bij gelijke melding over dezelfde periode!
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_stdmelding_key = 668
|
||
AND TRUNC (mld_melding_datum, 'q') = TRUNC (m.mld_melding_datum, 'q')
|
||
AND mld_melding_key > m.mld_melding_key)) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding k
|
||
ON k.mld_kenmerk_key = 604 -- Cijfer KTO
|
||
AND m.mld_melding_key = k.mld_melding_key
|
||
WHERE k.mld_kenmerkmelding_waarde IS NOT NULL)
|
||
SELECT n.kpi_definitie_key,
|
||
s.periode kpi_score_datum,
|
||
121 alg_locatie_key, -- Landelijk (LAND)
|
||
'melding' kpi_score_xmlnode,
|
||
s.mld_melding_key kpi_score_refkey,
|
||
NULL totaal,
|
||
s.perc / 100 score1,
|
||
NULL score2,
|
||
NULL score3,
|
||
NULL score4,
|
||
NULL score5,
|
||
NULL score6,
|
||
kpi.getNormScore (s.perc / 100, n000, n070, n090, n100) kpi_score_score,
|
||
n.normscores kpi_score_norm_score,
|
||
SUBSTR (TO_CHAR (s.perc / 100), 1, 20) kpi_score_drempels
|
||
FROM normen n, scores s;
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_kpi_all
|
||
AS
|
||
SELECT * FROM kfns_v_kpi_ew11
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew12
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew13
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew21
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew22
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew23
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew24
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew25
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew31
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew32
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew33
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew34
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew41
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew42
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew43
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew44
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew51
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_ew52
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_gispen11
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_gispen12
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_gispen21
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_gispen22
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_gispen31
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_gispen32
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_gispen33
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_gispen34
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_gispen41
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_gispen51
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_gispen52
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_gispen61
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_maas11
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_maas12
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_maas21
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_maas22
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_maas23
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_maas31
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_maas32
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_maas33
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_maas41
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_maas51
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_maas52
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_receptel11
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_receptel12
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_receptel21
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_receptel22
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_receptel23
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_receptel31
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_receptel32
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_receptel33
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_receptel41
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_receptel42
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_receptel43
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_receptel51
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_receptel52
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws11
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws12
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws13
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws14
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws21
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws22
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws23
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws24
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws25
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws31
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws32
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws33
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws34
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws41
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws42
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws43
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws51
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_sws52
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_uts11
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_uts12
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_uts13
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_uts21
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_uts22
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_uts31
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_uts32
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_uts33
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_uts34
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_uts41
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_uts51
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_uts52
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_uts61
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionb11
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionb12
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionb21
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionb22
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionb31
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionb32
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionb33
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionb41
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionb51
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionbt11
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionbt12
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionbt21
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionbt22
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionbt31
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionbt32
|
||
UNION ALL
|
||
SELECT * FROM kfns_v_kpi_trigionbt33;
|
||
|
||
-- G<><47>n locatie-dimensie, dus 1 score per KPI!
|
||
/* Formatted on 25-8-2016 15:28:32 (QP5 v5.136.908.31019) */
|
||
/*
|
||
CREATE OR REPLACE VIEW kfns_v_rap_kpi_details
|
||
AS
|
||
SELECT s.kpi_score_datum periode,
|
||
d.kpi_definitie_code kpi_code,
|
||
d.kpi_definitie_omschrijving kpi_oms,
|
||
d.kpi_definitie_drempels definitie,
|
||
s.kpi_score_refkey melding,
|
||
--s.totaal,
|
||
--s.score1,
|
||
--s.score2,
|
||
--s.score3,
|
||
--s.score4,
|
||
--s.score5,
|
||
--s.score6,
|
||
--s.locaties, -- Aantal locaties in (on)genormeerde gemiddelde!
|
||
s.ongenormeerd,
|
||
s.genormeerd
|
||
FROM kpi_definitie d
|
||
LEFT JOIN
|
||
( SELECT kpi_definitie_key,
|
||
kpi_score_datum,
|
||
kpi_score_refkey,
|
||
--SUM (totaal) totaal,
|
||
--SUM (score1) score1,
|
||
--SUM (score2) score2,
|
||
--SUM (score3) score3,
|
||
--SUM (score4) score4,
|
||
--SUM (score5) score5,
|
||
--SUM (score6) score6,
|
||
COUNT ( * ) locaties,
|
||
SUM (kpi_score_drempels) / COUNT ( * ) ongenormeerd,
|
||
SUM (kpi_score_score) / COUNT ( * ) genormeerd
|
||
FROM kfns_v_kpi_all
|
||
GROUP BY kpi_definitie_key, kpi_score_datum, kpi_score_refkey) s
|
||
ON d.kpi_definitie_key = s.kpi_definitie_key
|
||
ORDER BY 2, 1;
|
||
*/
|
||
CREATE OR REPLACE VIEW kfns_v_rap_kpi_details
|
||
(
|
||
mld_melding_key,
|
||
fclt_f_periode,
|
||
fclt_x_leverancier,
|
||
kpi_code,
|
||
kpi_oms,
|
||
definitie,
|
||
melding,
|
||
totaal,
|
||
score1,
|
||
score2,
|
||
score3,
|
||
score4,
|
||
score5,
|
||
score6,
|
||
ongenormaliseerd,
|
||
genormaliseerd
|
||
)
|
||
AS
|
||
SELECT s.kpi_score_refkey mld_melding_key,
|
||
TO_CHAR (s.kpi_score_datum, 'yyyy') || '-K' || TO_CHAR (s.kpi_score_datum, 'q')
|
||
periode,
|
||
d.kpi_definitie_categorie1 leverancier,
|
||
SUBSTR (d.kpi_definitie_code, 1, LENGTH (d.kpi_definitie_code) - 1) || '.' || SUBSTR (d.kpi_definitie_code, -1)
|
||
kpi_code,
|
||
d.kpi_definitie_omschrijving kpi_oms,
|
||
d.kpi_definitie_drempels definitie,
|
||
TO_CHAR (s.kpi_score_refkey) melding,
|
||
TO_CHAR (s.totaal) totaal,
|
||
TO_CHAR (s.score1) score1,
|
||
TO_CHAR (s.score2) score2,
|
||
TO_CHAR (s.score3) score3,
|
||
TO_CHAR (s.score4) score4,
|
||
TO_CHAR (s.score5) score5,
|
||
TO_CHAR (s.score6) score6,
|
||
TO_CHAR (s.kpi_score_drempels * 100, '990D9') || '%' ongenormaliseerd,
|
||
TO_CHAR (s.kpi_score_score, '990D9') || '%' genormaliseerd
|
||
FROM kpi_definitie d, kfns_v_kpi_all s
|
||
WHERE d.kpi_definitie_key = s.kpi_definitie_key
|
||
ORDER BY 2, 1;
|
||
|
||
-- KFNS#41223: Doorloop van gesloten opdrachten per kwartaal (zoals bij KPIs).
|
||
/* Formatted on 18-8-2017 12:08:16 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW kfns_v_rap_opdr_doorloop
|
||
(
|
||
mld_opdr_key,
|
||
fclt_f_periode,
|
||
opdracht,
|
||
fclt_3d_afdeling_key,
|
||
opdrachttype,
|
||
status,
|
||
fclt_f_leverancier,
|
||
locatie,
|
||
vakgroeptype,
|
||
vakgroep,
|
||
soortmelding,
|
||
omschrijving,
|
||
verstrekt,
|
||
afgemeld,
|
||
afgerond,
|
||
doorlooptijd,
|
||
sla,
|
||
optijd
|
||
)
|
||
AS
|
||
SELECT o.mld_opdr_key,
|
||
TO_CHAR (o.ordafm, 'yyyy') || '-K' || TO_CHAR (o.ordafm, 'q')
|
||
periode,
|
||
o.ins_srtdiscipline_prefix || o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr,
|
||
o.prs_afdeling_key,
|
||
o.mld_typeopdr_omschrijving,
|
||
o.mld_statusopdr_omschrijving,
|
||
o.prs_bedrijf_naam,
|
||
o.alg_locatie_code,
|
||
o.ins_srtdiscipline_omschrijving,
|
||
o.ins_discipline_omschrijving,
|
||
o.mld_stdmelding_omschrijving,
|
||
o.mld_opdr_omschrijving,
|
||
o.ordsnt,
|
||
o.ordafm,
|
||
o.ordafr,
|
||
TO_CHAR (o.uitvtijd.tijdsduur, 'FM999990.00') || o.uitvtijd.eenheid,
|
||
TO_CHAR (o.normsla) || o.uitvtijd.eenheid,
|
||
DECODE (SIGN (o.normsla - o.uitvtijd.tijdsduur), -1, 'Nee', 'Ja') optijd
|
||
FROM (SELECT o.mld_opdr_key,
|
||
o.ins_srtdiscipline_prefix,
|
||
prs_afdeling_key,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
o.mld_typeopdr_omschrijving,
|
||
o.mld_statusopdr_omschrijving,
|
||
o.prs_bedrijf_naam,
|
||
o.alg_locatie_code,
|
||
o.ins_srtdiscipline_omschrijving,
|
||
o.ins_discipline_omschrijving,
|
||
o.mld_stdmelding_omschrijving,
|
||
o.mld_opdr_omschrijving,
|
||
ordsnt.fac_tracking_datum ordsnt,
|
||
ordafm.fac_tracking_datum ordafm,
|
||
ordafr.fac_tracking_datum ordafr,
|
||
MLD.getactualuitvoer (ordsnt.fac_tracking_datum,
|
||
ordafm.fac_tracking_datum,
|
||
o.mld_stdmelding_key,
|
||
o.mld_melding_spoed,
|
||
NULL,
|
||
NULL,
|
||
o.eenheid)
|
||
uitvtijd,
|
||
o.normsla
|
||
FROM (SELECT o.mld_opdr_key,
|
||
sd.ins_srtdiscipline_prefix,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
ot.mld_typeopdr_omschrijving,
|
||
os.mld_statusopdr_omschrijving,
|
||
b.prs_bedrijf_naam,
|
||
l.alg_locatie_code,
|
||
sd.ins_srtdiscipline_omschrijving,
|
||
md.ins_discipline_omschrijving,
|
||
(SELECT MAX (a.prs_afdeling_key)
|
||
FROM prs_contactpersoon cp,
|
||
prs_v_aanwezigperslid p,
|
||
prs_afdeling a
|
||
WHERE cp.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND p.prs_perslid_key = cp.prs_perslid_key
|
||
AND prs_contactpersoon_verwijder IS NULL
|
||
AND a.prs_afdeling_key = p.prs_afdeling_key
|
||
AND a.prs_bedrijf_key = 23)
|
||
prs_afdeling_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
o.mld_opdr_omschrijving,
|
||
m.mld_stdmelding_key,
|
||
m.mld_melding_spoed,
|
||
DECODE (m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.eenheid,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.eenheid,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.eenheid,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.eenheid)
|
||
eenheid,
|
||
DECODE (m.mld_melding_spoed,
|
||
1, sm.mld_stdmelding_t_uitvtijd_pr1.tijdsduur,
|
||
2, sm.mld_stdmelding_t_uitvtijd_pr2.tijdsduur,
|
||
3, sm.mld_stdmelding_t_uitvoertijd.tijdsduur,
|
||
sm.mld_stdmelding_t_uitvtijd_pr4.tijdsduur)
|
||
normsla
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_statusopdr os,
|
||
prs_bedrijf b,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
alg_locatie l
|
||
WHERE o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_key NOT IN (283, 301, 302, 481, 601) -- Offerteaanvr./Beheerdersopdr./Interne opdr./Admin. opdr./Variatie opdr.
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key
|
||
AND os.mld_statusopdr_key IN (6, 9, 7) -- AFM/AFR/VER
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_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 m.mld_alg_locatie_key = l.alg_locatie_key(+)) o
|
||
LEFT JOIN fac_tracking ordsnt
|
||
ON ordsnt.fac_srtnotificatie_key = 67 -- ORDSNT
|
||
AND o.mld_opdr_key = ordsnt.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordafm
|
||
ON ordafm.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND o.mld_opdr_key = ordafm.fac_tracking_refkey
|
||
LEFT JOIN fac_tracking ordafr
|
||
ON ordafr.fac_srtnotificatie_key = 70 -- ORDAFR (geen herfiattering, dus max. <20><>n keer afronding!)
|
||
AND o.mld_opdr_key = ordafr.fac_tracking_refkey) o;
|
||
|
||
|
||
-- KFNS#40008: Rapport om status van reserveringen op te laten halen door SmartSigns.
|
||
/* Formatted on 31-3-2017 16:24:42 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW kfns_v_api_reserveringen
|
||
(
|
||
van,
|
||
tot,
|
||
key,
|
||
resid,
|
||
locatiecode,
|
||
gebouwcode,
|
||
fclt_3d_gebouw_key,
|
||
verdiepingcode,
|
||
ruimtecode,
|
||
ruimtenaam,
|
||
rvck_vnr,
|
||
voorziening,
|
||
aantal,
|
||
prijs,
|
||
btw,
|
||
act_oms,
|
||
srtact_oms,
|
||
bezoekers,
|
||
fo_status_key,
|
||
fo_status,
|
||
bo_status_key,
|
||
bo_status,
|
||
contact,
|
||
host,
|
||
kostenplaats,
|
||
resruimtekey,
|
||
algruimtekey,
|
||
algruimtenr,
|
||
omschrijving,
|
||
opmerking,
|
||
dagstaat
|
||
)
|
||
AS
|
||
SELECT x.van van_datumtijd,
|
||
x.tot tot_datumtijd,
|
||
x.res_rsv_ruimte_key res_key,
|
||
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) res_id,
|
||
rvck.loc_code,
|
||
rvck.geb_code,
|
||
rvck.geb_key,
|
||
rvck.ver_code,
|
||
rvck.ruimtenr,
|
||
rvck.ruimtenaam,
|
||
rvck.vnr,
|
||
rvck.voorziening,
|
||
rvck.aantal,
|
||
ROUND (COALESCE (rvck.res_rsv_prijs, rvck.aantal * rvck.ps), 2) prijs,
|
||
rvck.btw,
|
||
x.res_activiteit_omschrijving,
|
||
x.res_srtactiviteit_omschrijving,
|
||
x.res_rsv_ruimte_bezoekers bezoekers,
|
||
x.fo_status_key,
|
||
DECODE (x.fo_status_key, 1, 'RESOPT', 2, 'RESDEF', 3, 'RESBLK', 'RESDEL') fo_status,
|
||
x.bo_status_key,
|
||
x.bo_status_oms,
|
||
x.contact_naam,
|
||
x.host_naam,
|
||
x.kp_nr,
|
||
rvck.res_ruimte_key,
|
||
rvck.alg_ruimte_key,
|
||
rvck.alg_ruimte_nr,
|
||
x.res_rsv_ruimte_omschrijving oms,
|
||
x.res_rsv_ruimte_opmerking opm,
|
||
DECODE (
|
||
x.contact_key,
|
||
58901, 'Ja',
|
||
DECODE (
|
||
COALESCE (
|
||
(SELECT res_kenmerkreservering_waarde
|
||
FROM res_kenmerkwaarde kw, res_kenmerk k
|
||
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 1
|
||
AND kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key),
|
||
'1'),
|
||
'1', 'Nee',
|
||
'Ja'))
|
||
dagstaat
|
||
FROM (SELECT rr.res_rsv_ruimte_key,
|
||
rr.res_reservering_key,
|
||
rr.res_rsv_ruimte_volgnr,
|
||
a.res_activiteit_key,
|
||
a.res_activiteit_omschrijving,
|
||
sa.res_srtactiviteit_key,
|
||
sa.res_srtactiviteit_omschrijving,
|
||
rr.res_rsv_ruimte_van van,
|
||
rr.res_rsv_ruimte_tot tot,
|
||
rr.res_rsv_ruimte_bezoekers,
|
||
fs.res_status_fo_key fo_status_key,
|
||
fs.res_status_fo_omschrijving fo_status_oms,
|
||
bs.res_status_bo_key bo_status_key,
|
||
bs.res_status_bo_omschrijving bo_status_oms,
|
||
pfc.prs_perslid_key contact_key,
|
||
pfc.prs_perslid_naam_full contact_naam,
|
||
pfh.prs_perslid_key host_key,
|
||
pfh.prs_perslid_naam_full host_naam,
|
||
k.prs_kostenplaats_nr kp_nr,
|
||
k.prs_kostenplaats_omschrijving kp_oms,
|
||
rr.res_rsv_ruimte_omschrijving,
|
||
rr.res_rsv_ruimte_opmerking
|
||
FROM res_v_aanwezigrsv_ruimte rr, -- Alleen actieve!
|
||
res_activiteit a,
|
||
res_srtactiviteit sa,
|
||
res_status_fo fs,
|
||
res_status_bo bs,
|
||
prs_v_perslid_fullnames_all pfc,
|
||
prs_v_perslid_fullnames_all pfh,
|
||
prs_kostenplaats k
|
||
WHERE rr.res_rsv_ruimte_tot > TRUNC (SYSDATE, 'IW') - 7
|
||
AND rr.res_ruimte_opstel_key IS NOT NULL -- Alleen ruimtereserveringen!
|
||
AND rr.res_activiteit_key = a.res_activiteit_key
|
||
AND a.res_activiteit_verwijder IS NULL
|
||
AND a.res_srtactiviteit_key = sa.res_srtactiviteit_key
|
||
AND sa.res_srtactiviteit_verwijder IS NULL
|
||
AND rr.res_status_fo_key = fs.res_status_fo_key
|
||
AND rr.res_status_bo_key = bs.res_status_bo_key
|
||
AND rr.res_rsv_ruimte_dirtlevel = 0
|
||
AND rr.res_rsv_ruimte_contact_key = pfc.prs_perslid_key
|
||
AND rr.res_rsv_ruimte_host_key = pfh.prs_perslid_key
|
||
AND rr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)) x
|
||
LEFT JOIN
|
||
(SELECT rrr.res_rsv_ruimte_key,
|
||
l.alg_locatie_code loc_code,
|
||
g.alg_gebouw_code geb_code,
|
||
g.alg_gebouw_key geb_key,
|
||
v.alg_verdieping_code ver_code,
|
||
r.alg_ruimte_nr ruimtenr,
|
||
r.alg_ruimte_key alg_ruimte_key,
|
||
rr.res_ruimte_key res_ruimte_key,
|
||
r.alg_ruimte_nr,
|
||
rr.res_ruimte_nr ruimtenaam,
|
||
TO_NUMBER (NULL) vnr,
|
||
ro.res_opstelling_omschrijving voorziening,
|
||
ROUND ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 2)
|
||
aantal, -- Duur in uren
|
||
rrr.res_rsv_ruimte_prijs res_rsv_prijs,
|
||
rr.res_ruimte_prijs ps, -- Uur-tarief
|
||
rr.res_ruimte_prijs_ochtend po,
|
||
rr.res_ruimte_prijs_middag pm,
|
||
rr.res_ruimte_prijs_avond pa,
|
||
NULL btw,
|
||
TO_NUMBER (NULL) k_key,
|
||
NULL k_naam,
|
||
NULL k_type,
|
||
NULL k_waarde
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
res_opstelling ro,
|
||
( SELECT res_ruimte_key,
|
||
MAX (alg_ruimte_key) alg_ruimte_key, COUNT ( * ) aantal
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
alg_locatie l
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key
|
||
AND rr.res_ruimte_key = rar.res_ruimte_key(+)
|
||
AND rar.alg_ruimte_key = r.alg_ruimte_key(+)
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key(+)
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND g.alg_locatie_key = l.alg_locatie_key(+)) rvck
|
||
ON x.res_rsv_ruimte_key = rvck.res_rsv_ruimte_key;
|
||
|
||
CREATE OR REPLACE VIEW KFNS_V_NOTI_BEZOEKERS
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
NULL,
|
||
9941,
|
||
'Bezoek '
|
||
|| b.bez_afspraak_naam
|
||
|| ' op '
|
||
|| TRUNC (a.bez_afspraak_datum)
|
||
|| ' in een NS kantoor'
|
||
text,
|
||
'CUST05' code,
|
||
(SELECT fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST05')
|
||
fac_srtnotificatie_key,
|
||
b.bez_bezoekers_key key,
|
||
NULL xkey,
|
||
NULL xemail,
|
||
NULL xmobile
|
||
FROM bez_afspraak a,
|
||
bez_bezoekers b,
|
||
fac_tracking ft,
|
||
bez_kenmerkwaarde bkw
|
||
WHERE a.bez_afspraak_key = b.bez_afspraak_key
|
||
AND ft.fac_tracking_refkey = a.bez_afspraak_key
|
||
AND b.bez_bezoekers_key = bkw.bez_bezoekers_key
|
||
AND TRUNC (a.bez_afspraak_datum) >= TRUNC (SYSDATE)
|
||
AND a.bez_afspraak_eind > SYSDATE
|
||
AND bkw.bez_kenmerk_key = 1001
|
||
AND bkw.bez_kenmerkwaarde_verwijder IS NULL
|
||
AND bkw.bez_kenmerkwaarde_waarde LIKE '%@%'
|
||
AND ( (fac_tracking_oms LIKE '%Bezoeker toegevoegd:%'
|
||
AND fac_srtnotificatie_key = 27)
|
||
OR fac_srtnotificatie_key = 26)
|
||
AND ft.fac_tracking_datum >
|
||
(SELECT fac_notificatie_job_nextrun
|
||
- fac_notificatie_job_interval / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'KFNS_V_NOTI_BEZOEKERS')
|
||
AND ft.fac_tracking_datum <
|
||
(SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'KFNS_V_NOTI_BEZOEKERS');
|
||
|
||
CREATE OR REPLACE VIEW KFNS_V_NOTI_CNTREMINDERESC (CODE, SENDER, RECEIVER, TEXT, KEY, PAR1, PAR2, XKEY)
|
||
AS
|
||
SELECT '', '', fac.safe_to_number(kc.cnt_kenmerkcontract_waarde),
|
||
(SELECT REPLACE (REPLACE (fac_srtnotificatie_oms, '##contractnr##',c.cnt_contract_key), '##hrdr##', b.prs_bedrijf_naam)
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST06')
|
||
text,
|
||
c.cnt_contract_key, c.cnt_contract_nummer_intern, cnt.cnt_getopzegdatum (c.cnt_contract_key), NULL
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b, cnt_kenmerkcontract kc
|
||
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND cnt_contract_verwijder IS NULL
|
||
AND c.ins_discipline_key = 901
|
||
AND cnt_contract_status = 0
|
||
--AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)AND cnt.cnt_getopzegdatum (c.cnt_contract_key))
|
||
AND (cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (sysdate)
|
||
OR cnt.cnt_getrappeldatum (c.cnt_contract_key) +7 = TRUNC (sysdate))
|
||
AND c.cnt_contract_key = kc.cnt_contract_key
|
||
AND cnt_kenmerkcontract_verwijder IS NULL
|
||
AND kc.cnt_kenmerk_key = 381
|
||
union all
|
||
SELECT '', '', fac.safe_to_number(kc.cnt_kenmerkcontract_waarde),
|
||
(SELECT REPLACE (REPLACE (fac_srtnotificatie_oms, '##contractnr##',c.cnt_contract_key), '##hrdr##', b.prs_bedrijf_naam)
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST07')
|
||
text,
|
||
c.cnt_contract_key, c.cnt_contract_nummer_intern, cnt.cnt_getopzegdatum (c.cnt_contract_key), NULL
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b, cnt_kenmerkcontract kc
|
||
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND cnt_contract_verwijder IS NULL
|
||
AND c.ins_discipline_key = 901
|
||
AND cnt_contract_status = 0
|
||
--AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key) AND cnt.cnt_getopzegdatum (c.cnt_contract_key))
|
||
--AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = sysdate
|
||
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) +30 = TRUNC (sysdate)
|
||
AND c.cnt_contract_key = kc.cnt_contract_key
|
||
AND cnt_kenmerkcontract_verwijder IS NULL
|
||
AND kc.cnt_kenmerk_key = 382;
|
||
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_noti_resreminder
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT 'RESINF',
|
||
NULL,
|
||
rsvr.res_rsv_ruimte_host_key,
|
||
'Reservering '
|
||
|| res.res_reservering_key
|
||
|| ': U heeft op '
|
||
|| TO_CHAR (rsvr.res_rsv_ruimte_van, 'DD-MM')
|
||
|| ' van '
|
||
|| TO_CHAR (rsvr.res_rsv_ruimte_van, 'HH24:MI')
|
||
|| ' tot '
|
||
|| TO_CHAR (rsvr.res_rsv_ruimte_tot, 'HH24:MI')
|
||
|| ' ruimte '
|
||
|| r.res_ruimte_nr
|
||
|| ' gereserveerd.',
|
||
res.res_reservering_key,
|
||
rsvr.res_rsv_ruimte_key
|
||
FROM res_v_aanwezigreservering res,
|
||
res_v_aanwezigrsv_ruimte rsvr,
|
||
res_ruimte_opstelling opst,
|
||
res_disc_params rdp,
|
||
res_ruimte r
|
||
WHERE r.res_discipline_key = rdp.res_ins_discipline_key
|
||
AND rdp.res_disc_params_noti_dagen IS NOT NULL
|
||
AND res.res_reservering_key = rsvr.res_reservering_key
|
||
AND opst.res_ruimte_opstel_key = rsvr.res_ruimte_opstel_key
|
||
AND opst.res_ruimte_key = r.res_ruimte_key
|
||
AND rsvr.res_status_fo_key <= 5
|
||
AND rsvr.res_rsv_ruimte_van BETWEEN fac.datumtijdplusuitvoertijd (
|
||
SYSDATE,
|
||
res_disc_params_noti_dagen,
|
||
'DAGEN')
|
||
AND fac.datumtijdplusuitvoertijd (
|
||
SYSDATE,
|
||
res_disc_params_noti_dagen
|
||
+ 1,
|
||
'DAGEN')
|
||
AND fac.getweekdaynum (SYSDATE) NOT IN (1, 7)
|
||
AND rsvr.res_rsv_ruimte_van >= SYSDATE
|
||
UNION ALL
|
||
SELECT 'RESINF',
|
||
NULL,
|
||
res_rsv_ruimte_host_key,
|
||
'Reservering '
|
||
|| res_reservering_key
|
||
|| ': U heeft op '
|
||
|| TO_CHAR (MIN (van), 'dd-mm')
|
||
|| DECODE (
|
||
MIN (van),
|
||
MAX (tot),
|
||
' om ' || TO_CHAR (MIN (van), 'hh24:mi'),
|
||
' van '
|
||
|| TO_CHAR (MIN (van), 'hh24:mi')
|
||
|| ' tot '
|
||
|| TO_CHAR (MAX (tot), 'hh24:mi'))
|
||
|| ' in ruimte ('
|
||
|| (SELECT alg_gebouw_code
|
||
|| '-'
|
||
|| alg_verdieping_code
|
||
|| '-'
|
||
|| alg_ruimte_nr
|
||
FROM alg_v_onroerendgoed_gegevens arg
|
||
WHERE arg.alg_ruimte_key = ruimte_key)
|
||
|| ') '
|
||
|| COUNT (res_reservering_key)
|
||
|| ' voorziening(en) gereserveerd.',
|
||
res_reservering_key,
|
||
res_rsv_ruimte_key
|
||
FROM (SELECT rsvr.res_rsv_ruimte_host_key,
|
||
res.res_reservering_key,
|
||
rsvd.res_rsv_deel_van van,
|
||
rsvd.res_rsv_deel_tot tot,
|
||
rsvr.res_rsv_ruimte_key,
|
||
rsvr.alg_ruimte_key ruimte_key
|
||
FROM res_v_aanwezigreservering res,
|
||
res_v_aanwezigrsv_ruimte rsvr,
|
||
res_disc_params rdp,
|
||
res_rsv_deel rsvd,
|
||
res_deel rd
|
||
WHERE rsvd.res_rsv_ruimte_key = rsvr.res_rsv_ruimte_key
|
||
AND rd.res_deel_key = rsvd.res_deel_key
|
||
AND rd.res_discipline_key = rdp.res_ins_discipline_key
|
||
AND rdp.res_disc_params_noti_dagen IS NOT NULL
|
||
AND res.res_reservering_key = rsvr.res_reservering_key
|
||
AND rsvr.res_ruimte_opstel_key IS NULL
|
||
AND rsvr.res_status_fo_key <= 5
|
||
AND rsvd.res_rsv_deel_verwijder IS NULL
|
||
AND rsvd.res_rsv_deel_van BETWEEN fac.datumtijdplusuitvoertijd (
|
||
SYSDATE,
|
||
res_disc_params_noti_dagen,
|
||
'DAGEN')
|
||
AND fac.datumtijdplusuitvoertijd (
|
||
SYSDATE,
|
||
res_disc_params_noti_dagen
|
||
+ 1,
|
||
'DAGEN')
|
||
AND fac.getweekdaynum (SYSDATE) NOT IN (1, 7)
|
||
AND rsvd.res_rsv_deel_van >= SYSDATE
|
||
UNION ALL
|
||
SELECT rsvr.res_rsv_ruimte_host_key,
|
||
res.res_reservering_key,
|
||
rsva.res_rsv_artikel_levering van,
|
||
rsva.res_rsv_artikel_levering tot,
|
||
rsvr.res_rsv_ruimte_key,
|
||
rsvr.alg_ruimte_key ruimte_key
|
||
FROM res_v_aanwezigreservering res,
|
||
res_v_aanwezigrsv_ruimte rsvr,
|
||
res_disc_params rdp,
|
||
res_rsv_artikel rsva,
|
||
res_artikel ra
|
||
WHERE rsva.res_rsv_ruimte_key = rsvr.res_rsv_ruimte_key
|
||
AND ra.res_discipline_key = rdp.res_ins_discipline_key
|
||
AND rsva.res_artikel_key = ra.res_artikel_key
|
||
AND rdp.res_disc_params_noti_dagen IS NOT NULL
|
||
AND res.res_reservering_key = rsvr.res_reservering_key
|
||
AND rsvr.res_ruimte_opstel_key IS NULL
|
||
AND rsvr.res_status_fo_key <= 5
|
||
AND rsva.res_rsv_artikel_verwijder IS NULL
|
||
AND rsva.res_rsv_artikel_levering BETWEEN fac.datumtijdplusuitvoertijd (
|
||
SYSDATE,
|
||
res_disc_params_noti_dagen,
|
||
'DAGEN')
|
||
AND fac.datumtijdplusuitvoertijd (
|
||
SYSDATE,
|
||
res_disc_params_noti_dagen
|
||
+ 1,
|
||
'DAGEN')
|
||
AND fac.getweekdaynum (SYSDATE) NOT IN (1, 7)
|
||
AND rsva.res_rsv_artikel_levering >= SYSDATE)
|
||
GROUP BY res_rsv_ruimte_host_key,
|
||
res_reservering_key,
|
||
res_rsv_ruimte_key,
|
||
ruimte_key;
|
||
|
||
|
||
-- KFNS#51944: Rapportage in FIP:2-formaat om nieuwe ruimtekenmerken te kunnen
|
||
-- importeren (reeds bestaande kenmerken niet in deze rapportage).
|
||
CREATE OR REPLACE VIEW kfns_v_rap_ruimten_csv
|
||
(
|
||
locatiecode,
|
||
gebouwcode,
|
||
bouwlaagvolgnummer,
|
||
ruimtefunctie,
|
||
ruimtenummer,
|
||
ruimteomschrijving,
|
||
vloeroppervlak,
|
||
afdelingscode,
|
||
bezetting,
|
||
reserveerbareruimte,
|
||
categorie,
|
||
expiredagen,
|
||
prijs,
|
||
opstelling,
|
||
aantalbezoekers,
|
||
naam,
|
||
omschrijving
|
||
)
|
||
AS
|
||
SELECT x.alg_locatie_code,
|
||
x.alg_gebouw_code,
|
||
--x.alg_verdieping_code,
|
||
x.alg_verdieping_volgnr,
|
||
x.alg_srtruimte_omschrijving,
|
||
x.alg_ruimte_nr,
|
||
x.alg_ruimte_omschrijving,
|
||
x.alg_ruimte_bruto_vloeropp,
|
||
NULL afdelingscode,
|
||
NULL bezetting,
|
||
rr.reserveerbaar,
|
||
rr.catalogus,
|
||
rr.expire_dagen,
|
||
rr.prijs,
|
||
ro.opstelling,
|
||
ro.aantalbezoekers,
|
||
rr.res_ruimte_nr,
|
||
rr.res_ruimte_omschrijving
|
||
FROM (SELECT r.alg_ruimte_key,
|
||
l.alg_locatie_code,
|
||
g.alg_gebouw_code,
|
||
v.alg_verdieping_code,
|
||
v.alg_verdieping_volgnr,
|
||
sr.alg_srtruimte_omschrijving,
|
||
r.alg_ruimte_nr,
|
||
r.alg_ruimte_omschrijving,
|
||
r.alg_ruimte_bruto_vloeropp
|
||
FROM alg_v_aanwezigruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, alg_srtruimte sr
|
||
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)) x
|
||
LEFT JOIN ( SELECT COUNT ( * ) aantal,
|
||
MIN (alg_ruimte_key) alg_ruimte_key,
|
||
res_ruimte_key
|
||
FROM res_v_aanwezigalg_ruimte
|
||
GROUP BY res_ruimte_key) rar
|
||
ON x.alg_ruimte_key = rar.alg_ruimte_key AND rar.aantal = 1 -- Toon niet de koppelzalen
|
||
LEFT JOIN (SELECT rr.res_ruimte_key,
|
||
'J' reserveerbaar,
|
||
d.ins_discipline_omschrijving catalogus,
|
||
dp.res_disc_params_expire_dagen expire_dagen,
|
||
rr.res_ruimte_prijs prijs,
|
||
rr.res_ruimte_nr,
|
||
rr.res_ruimte_omschrijving
|
||
FROM res_v_aanwezigruimte rr, res_discipline d, res_disc_params dp
|
||
WHERE rr.res_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_key = dp.res_ins_discipline_key) rr
|
||
ON rar.res_ruimte_key = rr.res_ruimte_key
|
||
LEFT JOIN (SELECT ro.res_ruimte_key,
|
||
o.res_opstelling_omschrijving opstelling,
|
||
ro.res_ruimte_opstel_bezoekers aantalbezoekers
|
||
FROM res_ruimte_opstelling ro, res_opstelling o
|
||
WHERE ro.res_ruimte_opstel_verwijder IS NULL
|
||
AND ro.res_opstelling_key = o.res_opstelling_key
|
||
AND NOT EXISTS -- Toon alleen de "oudste" opstelling (= met laagste key)
|
||
(SELECT 1
|
||
FROM res_ruimte_opstelling
|
||
WHERE res_ruimte_opstel_verwijder IS NULL
|
||
AND res_ruimte_key = ro.res_ruimte_key
|
||
AND res_ruimte_opstel_key < ro.res_ruimte_opstel_key)) ro
|
||
ON rar.res_ruimte_key = ro.res_ruimte_key;
|
||
|
||
|
||
-- KFNS#52311: Rapportage gebouwinspecties (20-03-2018).
|
||
CREATE OR REPLACE FORCE VIEW KFNS_V_INS_INSPECTIE
|
||
(
|
||
NR,
|
||
PLANDATUM,
|
||
UITVOERDATUM,
|
||
INSPECTIE,
|
||
JAAR,
|
||
KWARTAAL,
|
||
MAAND,
|
||
JAAR_MAAND,
|
||
OMSCHRIJVINGINSPECTIE,
|
||
DISTRICT_OMSCHRIJVING,
|
||
LOCATIE_CODE,
|
||
LOCATIE_OMSCHRIJVING,
|
||
GEBOUW_NAAM,
|
||
GEBOUW_CODE,
|
||
GEBOUW_OMSCHRIJVING,
|
||
VERDIEPING_OMSCHRIJVING,
|
||
RUIMTE_NR,
|
||
RUIMTE_OMSCHRIJVING,
|
||
VOLGNR,
|
||
SOORT_ONDERDEEL,
|
||
ONDERDEEL,
|
||
SCORE
|
||
)
|
||
AS
|
||
SELECT c.ins_deelsrtcontrole_key AS nr,
|
||
c.ins_deelsrtcontrole_datum_org AS plandatum,
|
||
c.ins_deelsrtcontrole_datum AS uitvoerdatum,
|
||
TO_CHAR (c.ins_deelsrtcontrole_datum, 'YY')
|
||
|| '-'
|
||
|| TO_CHAR (c.ins_deelsrtcontrole_datum, 'MM')
|
||
|| '-'
|
||
|| gi.ins_srtcontrole_opmerking
|
||
AS inspectie,
|
||
TO_CHAR (c.ins_deelsrtcontrole_datum, 'YY') AS jaar,
|
||
TO_CHAR (c.ins_deelsrtcontrole_datum, 'Q') AS kwartaal,
|
||
TO_CHAR (c.ins_deelsrtcontrole_datum, 'Month') AS maand,
|
||
TO_CHAR (c.ins_deelsrtcontrole_datum, 'YY-MM') AS jaar_maand,
|
||
gi.ins_srtcontrole_info AS omschrijvinginspectie,
|
||
dis.alg_district_omschrijving AS district_omschrijving,
|
||
l.alg_locatie_code AS locatie_code,
|
||
l.alg_locatie_omschrijving AS locatie_omschrijving,
|
||
g.alg_gebouw_naam AS gebouw_naam,
|
||
g.alg_gebouw_code AS gebouw_code,
|
||
g.alg_gebouw_omschrijving AS gebouw_omschrijving,
|
||
v.alg_verdieping_omschrijving AS verdieping_omschrijving,
|
||
r.alg_ruimte_nr AS ruimte_nr,
|
||
r.alg_ruimte_omschrijving AS ruimte_omschrijving,
|
||
km.ins_kenmerk_volgnummer AS volgnr,
|
||
km.ins_kenmerk_hint AS soort_onderdeel,
|
||
skm.ins_srtkenmerk_omschrijving AS onderdeel,
|
||
TO_NUMBER (fud.fac_usrdata_code) AS score
|
||
FROM ins_deelsrtcontrole c,
|
||
ins_srtcontrole gi,
|
||
ins_srtdeel os,
|
||
ins_srtgroep og,
|
||
ins_kmdeelsrtcontr ckm,
|
||
ins_kenmerk km,
|
||
ins_srtkenmerk skm,
|
||
fac_kenmerkdomein fkm,
|
||
fac_usrtab fut,
|
||
fac_usrdata fud,
|
||
ins_deel d,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_district dis
|
||
WHERE c.ins_srtcontrole_key = gi.ins_srtcontrole_key
|
||
AND gi.ins_srtinstallatie_key = os.ins_srtdeel_key
|
||
AND os.ins_srtgroep_key = og.ins_srtgroep_key
|
||
AND og.ins_srtgroep_key = 181 -- Dit is de key voor de objectgroep "Inspectieronde"
|
||
AND d.ins_deel_key = c.ins_deel_key
|
||
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = dis.alg_district_key
|
||
AND skm.ins_srtkenmerk_key = km.ins_srtkenmerk_key
|
||
AND ckm.ins_kenmerk_key = km.ins_kenmerk_key
|
||
AND ckm.ins_deelsrtcontrole_key = c.ins_deelsrtcontrole_key
|
||
AND fkm.fac_kenmerkdomein_key = skm.fac_kenmerkdomein_key
|
||
AND fkm.fac_usrtab_key = fut.fac_usrtab_key
|
||
AND fut.fac_usrtab_key = fud.fac_usrtab_key
|
||
AND fud.fac_usrdata_key = FAC.SAFE_TO_NUMBER(ckm.ins_kmdeelsrtcontr_waarde)
|
||
ORDER BY nr ASC, km.ins_kenmerk_volgnummer ASC;
|
||
|
||
|
||
-- KFNS#56620: Basis voor dagelijkse notificaties naar WMT contactpersonen;
|
||
-- voor de output geldt:
|
||
-- Dat deze de lopende NT-opdrachten toont.
|
||
-- Dat de data per WMT contactpersoon/gebouw wordt genotificeerd
|
||
-- (via extra_key-principe).
|
||
CREATE OR REPLACE VIEW kfns_v_rap_lopende_opdr_nt
|
||
(
|
||
mld_opdr_key,
|
||
opdrachtid,
|
||
melddatum,
|
||
melder,
|
||
melding_onderwerp,
|
||
vakgroep,
|
||
soortmelding,
|
||
extra_key, -- Moet zo heten!
|
||
gebouw,
|
||
wmt_contact,
|
||
melding_opmerking,
|
||
status,
|
||
behandelaar,
|
||
uitvoerende,
|
||
plan_of_einddatum
|
||
)
|
||
AS
|
||
SELECT o.mld_opdr_key,
|
||
COALESCE (sd.ins_srtdiscipline_prefix, '') || TO_CHAR (m.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
||
opdrid,
|
||
m.mld_melding_datum, -- o.mld_opdr_datumbegin?
|
||
pm.prs_perslid_naam_full,
|
||
m.mld_melding_onderwerp,
|
||
md.ins_discipline_omschrijving,
|
||
sm.mld_stdmelding_omschrijving,
|
||
g.alg_gebouw_key extra_key,
|
||
g.alg_gebouw_code,
|
||
ok.alg_onrgoedkenmerk_waarde wmt_contact,
|
||
m.mld_melding_opmerking, -- o.mld_opdr_omschrijving/opmerking?
|
||
os.mld_statusopdr_omschrijving status, -- ms.mld_statuses_omschrijving?
|
||
pb.prs_perslid_naam_full behandelaar,
|
||
COALESCE (b.prs_bedrijf_naam, 'Intern') uitvoerende,
|
||
COALESCE (o.mld_opdr_plandatum, o.mld_opdr_einddatum) plan_of_einddatum
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
prs_v_perslid_fullnames_all pm,
|
||
--mld_statuses ms,
|
||
alg_v_allonroerendgoed aog,
|
||
alg_gebouw g,
|
||
alg_v_aanwezigonrgoedkenmerk ok,
|
||
mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_statusopdr os,
|
||
prs_v_perslid_fullnames_all pb,
|
||
prs_bedrijf b
|
||
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_discipline_key IN (45, 53) -- Gebouw- & installatieonderhoud (S+A)
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.prs_perslid_key_voor = pm.prs_perslid_key
|
||
--AND m.mld_melding_status = ms.mld_statuses_key
|
||
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
|
||
AND aog.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_gebouw_key = ok.alg_onrgoed_key
|
||
AND ok.alg_kenmerk_key = 1580 -- WMT contactpersoon
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_key IN (281, 282, 284, 302) -- Mandaatopdracht/Contractopdracht/Offerteopdracht/Interne opdracht
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key
|
||
AND os.mld_statusopdr_key IN (3, 4, 5, 8, 10)
|
||
AND o.prs_perslid_key = pb.prs_perslid_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+);
|
||
|
||
CREATE OR REPLACE VIEW kfns_v_noti_opdr_nt
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (sn.fac_srtnotificatie_oms, '##GEB##', v.gebouw),
|
||
r.fac_usrrap_key,
|
||
v.extra_key, -- Extra_key, dus in dit geval filteren per gebouw!
|
||
v.wmt_contact,
|
||
NULL
|
||
FROM kfns_v_rap_lopende_opdr_nt v,
|
||
fac_usrrap r,
|
||
fac_srtnotificatie sn
|
||
WHERE UPPER (r.fac_usrrap_view_name) = 'KFNS_V_RAP_LOPENDE_OPDR_NT'
|
||
AND sn.fac_srtnotificatie_code = 'CUST08';
|
||
|
||
------ 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
|