Files
Customer/KFNS/kfns.sql
Arthur Egberink c82bbb9585 KFNS#38373 -- Kostenmatrix in FACILITOR
svn path=/Customer/trunk/; revision=32151
2016-12-23 14:42:56 +00:00

9143 lines
468 KiB
SQL
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific db-configuration for KFNS.
DEFINE thisfile = 'KFNS.SQL'
DEFINE dbuser = '^KFNS'
DEFINE custid = '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);
-- Import vanuit Strukton
/* Formatted on 22-5-2015 11:52:44 (QP5 v5.136.908.31019) */
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_mld_opdr_key NUMBER (10);
v_mld_opdr_opmerking VARCHAR2 (4000);
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);
-- Overige velden:
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
-- Eerst opruiming
DELETE FROM 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);
fac.imp_getfield (v_newline, c_delim, v_extern_nummer);
fac.imp_getfield (v_newline, c_delim, v_status_code); -- typeID
fac.imp_getfield (v_newline, c_delim, v_datumtijd_tekst);
fac.imp_getfield (v_newline, c_delim, v_status_tekst);
fac.imp_getfield (v_newline, c_delim, v_opmerking);
v_opmerking := SUBSTR (v_opmerking, 1, 1000);
-- Verwijder de markering voor cr/lf die 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'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errormsg := 'Fout bepalen opdracht';
v_mld_opdr_key := TRIM (v_mld_opdr_key);
BEGIN
SELECT o.mld_opdr_key, o.mld_opdr_opmerking
INTO v_mld_opdr_key, v_mld_opdr_opmerking
FROM mld_opdr o,
mld_melding m,
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, '');
END;
IF v_ongeldig = 0
THEN
v_errormsg := 'Fout bepalen status';
CASE
WHEN v_status_code = '5'
THEN
v_status := 5; -- uitgegeven
WHEN v_status_code = '10'
THEN
v_status := 8; -- geaccepteerd
WHEN v_status_code = '20' -- monteur gereed
THEN
v_status := 6; -- afgemeld
WHEN v_status_code = '25' -- specialist gereed
THEN
v_status := 6; -- afgemeld
WHEN v_status_code = '30' -- technisch gereed
THEN
v_status := 6; -- afgemeld
-- For future use
--WHEN v_status_code = '40' -- uitgeprijst
--THEN
-- v_status := 6; -- afgemeld
WHEN v_status_code = '70'
THEN
v_status := 1; -- geannuleerd
WHEN v_status_code = '80'
THEN
v_status := 1; -- afgewezen
ELSE
v_status := NULL;
v_ongeldig := 1; -- nog te bezien
END CASE;
END IF;
IF v_ongeldig = 0
THEN
v_errormsg := 'Fout converteren datumtijd';
IF INSTR (v_datumtijd_tekst, '.') > 0
THEN
v_datumtijd :=
fac.safe_to_date (
REPLACE (
SUBSTR (v_datumtijd_tekst,
1,
INSTR (v_datumtijd_tekst, '.') - 1),
'T',
' '),
'yyyy-mm-dd hh24:mi:ss');
ELSE
v_datumtijd :=
fac.safe_to_date (v_datumtijd_tekst,
'yyyy-mm-dd hh24:mi:ss');
END IF;
END IF;
IF v_ongeldig = 0
THEN
v_errormsg := 'Fout aanvullen opmerking';
-- controleer of de opmerking niet leeg is en of dezelfde opmerking al bij een eerdere statusovergang
-- gemeld is.
IF v_opmerking IS NOT NULL
AND INSTR (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)
VALUES (v_mld_opdr_key,
v_extern_nummer,
v_status,
v_datumtijd,
v_opmerking);
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
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 - in volgorde! - over alle ingelezen statusberichten.
CURSOR c1
IS
SELECT mld_opdr_key, extern_nummer, datumtijd, status, opmerking
FROM kfns_imp_opdrstat_strukton
ORDER BY 1, 3;
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) := 0;
v_opdr_key NUMBER (10) := 0;
v_opdr_status NUMBER (10) := 0;
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 opdracht als de opdracht 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
MLD.setopdrachtstatus (v_opdr_key, 8, c_user_key); -- Strukton, eerst accepteren
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);
END IF;
IF rec.status = 6 AND v_opdr_status <> 6
THEN
-- KFNS#37965: Niet meer melding bijwerken (en afmelden was ook al niet meer)!
/*
v_errormsg := 'Fout bijwerken Opmerking (melding).';
UPDATE mld_melding m
SET mld_melding_opmerking =
DECODE (
mld_melding_opmerking,
NULL,
rec.opmerking,
rec.opmerking || CHR (13) || CHR (10)
|| SUBSTR (mld_melding_opmerking,
1,
(4000 - v_count)))
WHERE mld_melding_key = v_mld_key
AND mld_melding_status IN (4, 7)
AND NOT EXISTS
( -- Afhandeling in melding niet aanpassen voor projecten
SELECT sm.mld_stdmelding_key
FROM mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd
WHERE sm.mld_stdmelding_key = m.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 = 'QQQ');
v_errormsg := 'Fout sluiten melding.';
SELECT COUNT ( * )
INTO v_count
FROM (SELECT m.mld_melding_key,
(SELECT COUNT ( * )
FROM mld_opdr o
WHERE mld_melding_key = m.mld_melding_key)
aanw_opdr,
(SELECT COUNT ( * )
FROM mld_opdr o
WHERE mld_melding_key = m.mld_melding_key
AND o.mld_statusopdr_key NOT IN (1, 2, 6, 7, 9))
open_opdr
FROM mld_melding m
WHERE m.mld_melding_key = v_mld_key
AND m.mld_melding_status IN (4, 7))
niet_opgelost
WHERE aanw_opdr > 0 AND open_opdr = 0;
*/
-- Sinds AADO#30922 wordt de melding niet meer automatisch afgemeld.
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;
COMMIT;
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 BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -12)
AND TRUNC (SYSDATE, 'Q') - 1)
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
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 = 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 BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -12)
AND TRUNC (SYSDATE, 'Q') - 1)
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
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 = 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 BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -12)
AND TRUNC (SYSDATE, 'Q') - 1)
bedrag
FROM alg_gebouw g, prs_kostensoortgrp kg
WHERE alg_gebouw_verwijder IS NULL;
CREATE OR REPLACE VIEW kfns_v_rap_kosten_monitor
AS
SELECT alg_gebouw_code,
prs_kostensoort_oms,
prs_kostensoortgrp_oms,
volgorde,
bedrag
FROM 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,
'SUB-' || kg.prs_kostensoortgrp_oms,
kg.prs_kostensoortgrp_oms,
kg.prs_kostensoortgrp_altcode volgorde,
SUM (bedrag)
FROM 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,
'TOTAAL',
' Totaal',
'999' volgorde,
SUM (bedrag)
FROM kfns_v_rap_kosten_monitor_i
WHERE alg_gebouw_code <> 'A_HEADER'
GROUP BY alg_gebouw_code
UNION ALL
SELECT g.alg_gebouw_code,
'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,
'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;
-- 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
OR o.cnt_contract_key = v_contract_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, -6), '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, 'yyyy-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, 'yyyy') || '-Q' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, '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
(
fclt_f_periode,
fclt_x_leverancier,
kpi_code,
kpi_oms,
definitie,
melding,
totaal,
score1,
score2,
score3,
score4,
score5,
score6,
ongenormaliseerd,
genormaliseerd
)
AS
SELECT 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;
------ 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