PGHE#68684 -- Monitoring dashbord
svn path=/Customer/trunk/; revision=54099
This commit is contained in:
926
PGHE/pghe.sql
926
PGHE/pghe.sql
@@ -26,21 +26,6 @@ SET DEFINE OFF
|
|||||||
|
|
||||||
CREATE OR REPLACE PACKAGE PGHE
|
CREATE OR REPLACE PACKAGE PGHE
|
||||||
AS
|
AS
|
||||||
-- PPS functies voor PCHA en PCHW
|
|
||||||
FUNCTION get_first_melding (p_melding_key IN NUMBER, p_index IN NUMBER)
|
|
||||||
RETURN NUMBER;
|
|
||||||
|
|
||||||
FUNCTION get_regime (p_stdm_key IN NUMBER,
|
|
||||||
p_alg_key IN NUMBER, -- Altijd gebouw of hoger, locatie niet ondersteund
|
|
||||||
p_ins_key IN NUMBER)
|
|
||||||
RETURN NUMBER;
|
|
||||||
|
|
||||||
FUNCTION klant_melding (p_melding_key IN NUMBER)
|
|
||||||
RETURN NUMBER;
|
|
||||||
|
|
||||||
FUNCTION get_weging (p_startdatum IN DATE, p_stdmeldinggroep_naam IN VARCHAR2)
|
|
||||||
RETURN NUMBER;
|
|
||||||
|
|
||||||
PROCEDURE mail_gbs_melding(pfrom IN VARCHAR2,
|
PROCEDURE mail_gbs_melding(pfrom IN VARCHAR2,
|
||||||
pto IN VARCHAR2,
|
pto IN VARCHAR2,
|
||||||
psubject IN VARCHAR2,
|
psubject IN VARCHAR2,
|
||||||
@@ -54,214 +39,6 @@ END;
|
|||||||
CREATE OR REPLACE PACKAGE BODY PGHE
|
CREATE OR REPLACE PACKAGE BODY PGHE
|
||||||
AS
|
AS
|
||||||
|
|
||||||
FUNCTION get_first_melding (p_melding_key IN NUMBER,
|
|
||||||
p_index IN NUMBER)
|
|
||||||
RETURN NUMBER
|
|
||||||
AS
|
|
||||||
|
|
||||||
CURSOR c
|
|
||||||
IS
|
|
||||||
SELECT m2.mld_melding_datum van, m2.mld_melding_key
|
|
||||||
FROM mld_melding m1,
|
|
||||||
mld_stdmelding std1,
|
|
||||||
(select mld_melding_key, mld_kenmerkmelding_waarde from mld_kenmerkmelding
|
|
||||||
where mld_kenmerk_key = 121) km1, -- Niet overlappen
|
|
||||||
mld_melding m2,
|
|
||||||
mld_stdmelding std2,
|
|
||||||
(select mld_melding_key, mld_kenmerkmelding_waarde from mld_kenmerkmelding
|
|
||||||
where mld_kenmerk_key = 121) km2
|
|
||||||
WHERE m1.mld_melding_key = p_melding_key
|
|
||||||
AND m1.mld_stdmelding_key = std1.mld_stdmelding_key
|
|
||||||
AND m1.mld_melding_key = km1.mld_melding_key(+)
|
|
||||||
AND km1.mld_kenmerkmelding_waarde IS NULL
|
|
||||||
AND m2.mld_melding_key = km2.mld_melding_key(+)
|
|
||||||
AND km2.mld_kenmerkmelding_waarde IS NULL
|
|
||||||
AND m2.mld_melding_parentkey IS NULL
|
|
||||||
AND NOT EXISTS (SELECT 1
|
|
||||||
FROM pchx_monitoring
|
|
||||||
WHERE melding_key = m2.mld_melding_key)
|
|
||||||
AND m2.mld_stdmelding_key = std2.mld_stdmelding_key
|
|
||||||
AND std2.mld_stdmelding_slabewaken <> 0 -- alleen meldingen waarvoor een malus geldt
|
|
||||||
AND std1.mld_Stdmeldinggroep_key = std2.mld_stdmeldinggroep_key -- voor stdmeldinggroep
|
|
||||||
AND (
|
|
||||||
( std1.mld_stdmeldinggroep_key = 1 -- Prestatiekortingen
|
|
||||||
AND std1.mld_stdmelding_key = std2.mld_stdmelding_key)
|
|
||||||
OR
|
|
||||||
( std1.mld_stdmeldinggroep_key <> 1 -- Prestatiekortingen
|
|
||||||
AND std1.mld_Stdmeldinggroep_key <> 8 -- Losse voorzieningen worden niet samengenomen
|
|
||||||
AND m1.mld_alg_onroerendgoed_keys = m2.mld_alg_onroerendgoed_keys) -- op dezelfde ruimte
|
|
||||||
)
|
|
||||||
AND m1.mld_melding_key <> m2.mld_melding_key
|
|
||||||
AND m2.mld_melding_indult <> 1
|
|
||||||
AND m1.mld_melding_indult <> 1
|
|
||||||
AND m2.mld_melding_status <> 1 -- Afgewezen
|
|
||||||
AND m1.mld_melding_datum BETWEEN m2.mld_melding_datum
|
|
||||||
AND COALESCE(fac.gettrackingdate ('MLDAFM', m2.mld_melding_key), SYSDATE)
|
|
||||||
ORDER BY m2.mld_melding_datum;
|
|
||||||
|
|
||||||
v_melding_key NUMBER;
|
|
||||||
l_melding_key NUMBER;
|
|
||||||
v_datum_begin DATE;
|
|
||||||
l_datum_begin DATE;
|
|
||||||
v_loop_index NUMBER;
|
|
||||||
|
|
||||||
BEGIN
|
|
||||||
v_melding_key := p_melding_key;
|
|
||||||
|
|
||||||
IF PGHE.klant_melding (p_melding_key) = 0 THEN
|
|
||||||
RETURN p_melding_key;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
SELECT mld_melding_datum
|
|
||||||
INTO v_datum_begin
|
|
||||||
FROM mld_melding
|
|
||||||
WHERE mld_melding_key = p_melding_key;
|
|
||||||
|
|
||||||
v_loop_index := 1;
|
|
||||||
|
|
||||||
FOR rec IN c
|
|
||||||
LOOP
|
|
||||||
|
|
||||||
-- door de sortering op de cursor hoeven we alleen het eerste record te gebruiken tenzij deze niet door de klant is ingediend.
|
|
||||||
IF p_index < 10 AND v_loop_index = 1
|
|
||||||
|
|
||||||
THEN
|
|
||||||
-- DBMS_OUTPUT.put_line(p_melding_key || '-' || rec.mld_melding_key || '-' || p_index);
|
|
||||||
-- DBMS_OUTPUT.put_line('Klant melding: ' || '-' || PGHE.klant_melding (rec.mld_melding_key));
|
|
||||||
IF PGHE.klant_melding (rec.mld_melding_key) = 1
|
|
||||||
THEN
|
|
||||||
BEGIN
|
|
||||||
l_melding_key :=
|
|
||||||
PGHE.get_first_melding (rec.mld_melding_key, p_index + 1);
|
|
||||||
END;
|
|
||||||
--- DBMS_OUTPUT.put_line('Resultaat: ' || rec.mld_melding_key || '-' || l_melding_key);
|
|
||||||
|
|
||||||
SELECT mld_melding_datum
|
|
||||||
INTO l_datum_begin
|
|
||||||
FROM mld_melding
|
|
||||||
WHERE mld_melding_key = l_melding_key;
|
|
||||||
|
|
||||||
IF l_datum_begin < v_datum_begin
|
|
||||||
THEN
|
|
||||||
v_datum_begin := l_datum_begin;
|
|
||||||
v_melding_key := l_melding_key;
|
|
||||||
END IF;
|
|
||||||
v_loop_index := v_loop_index + 1;
|
|
||||||
END IF;
|
|
||||||
END IF;
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
IF PGHE.klant_melding (v_melding_key) = 1
|
|
||||||
THEN
|
|
||||||
RETURN v_melding_key;
|
|
||||||
ELSE
|
|
||||||
RETURN p_melding_key;
|
|
||||||
END IF;
|
|
||||||
END;
|
|
||||||
|
|
||||||
|
|
||||||
FUNCTION get_regime (p_stdm_key IN NUMBER,
|
|
||||||
p_alg_key IN NUMBER, -- Altijd gebouw of hoger, locatie niet ondersteund
|
|
||||||
p_ins_key IN NUMBER)
|
|
||||||
RETURN NUMBER
|
|
||||||
AS
|
|
||||||
v_mld_stdmelding_regime NUMBER;
|
|
||||||
v_norm_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL);
|
|
||||||
v_beginuur NUMBER;
|
|
||||||
v_einduur NUMBER;
|
|
||||||
v_werkdagen NUMBER;
|
|
||||||
BEGIN
|
|
||||||
mld.getslaparams (p_stdm_key,
|
|
||||||
3, -- prio
|
|
||||||
p_alg_key,
|
|
||||||
NULL, -- ins key
|
|
||||||
v_mld_stdmelding_regime,
|
|
||||||
v_norm_uitvoertijd,
|
|
||||||
v_beginuur,
|
|
||||||
v_einduur,
|
|
||||||
v_werkdagen);
|
|
||||||
|
|
||||||
-- kantoortijden of openingstijden waarbij de tijd niet gevuld is.
|
|
||||||
IF v_mld_stdmelding_regime = 1 OR (v_mld_stdmelding_regime = 2 AND (v_beginuur = -1 OR v_einduur = -1))
|
|
||||||
THEN
|
|
||||||
RETURN fac.safe_to_number (fac.getsetting ('fac_t_endofworkday'))
|
|
||||||
- fac.safe_to_number (fac.getsetting ('fac_t_startofworkday'));
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF v_mld_stdmelding_regime = 2 -- openingstijden
|
|
||||||
THEN
|
|
||||||
RETURN v_einduur - v_beginuur;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF v_mld_stdmelding_regime = 3 -- 24/7
|
|
||||||
THEN
|
|
||||||
RETURN 24;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
RETURN NULL;
|
|
||||||
END;
|
|
||||||
|
|
||||||
FUNCTION klant_melding (p_melding_key IN NUMBER)
|
|
||||||
RETURN NUMBER
|
|
||||||
AS
|
|
||||||
v_klant_melding NUMBER;
|
|
||||||
v_stdmeldinggroep_key NUMBER;
|
|
||||||
BEGIN
|
|
||||||
SELECT DECODE (a.prs_bedrijf_key, 1021, 1, 0) klant_melding -- bedrijfskey van Gemeente Heerlen
|
|
||||||
INTO v_klant_melding
|
|
||||||
FROM mld_melding m,
|
|
||||||
prs_perslid p,
|
|
||||||
prs_v_afdeling a
|
|
||||||
WHERE m.prs_perslid_key = p.prs_perslid_key
|
|
||||||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
||||||
AND m.mld_melding_key = p_melding_key;
|
|
||||||
|
|
||||||
-- Prestatiekortingen worden altijd berekend ook als ze door RHHR zelf gemeld zijn.
|
|
||||||
IF v_klant_melding = 0 THEN
|
|
||||||
SELECT mld_stdmeldinggroep_key
|
|
||||||
INTO v_stdmeldinggroep_key
|
|
||||||
FROM mld_melding m, mld_stdmelding std
|
|
||||||
WHERE std.mld_stdmelding_key = m.mld_stdmelding_key
|
|
||||||
AND m.mld_melding_key = p_melding_key;
|
|
||||||
|
|
||||||
IF v_stdmeldinggroep_key = 1 THEN --- ToDo: Alle vakgroeptypen toevoegen.
|
|
||||||
RETURN 1;
|
|
||||||
END IF;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
RETURN v_klant_melding;
|
|
||||||
EXCEPTION WHEN NO_DATA_FOUND
|
|
||||||
THEN
|
|
||||||
RETURN 0;
|
|
||||||
END;
|
|
||||||
|
|
||||||
FUNCTION get_weging (p_startdatum IN DATE, p_stdmeldinggroep_naam IN VARCHAR2)
|
|
||||||
RETURN NUMBER
|
|
||||||
AS
|
|
||||||
v_mld_stdmelding_regime NUMBER;
|
|
||||||
v_norm_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL);
|
|
||||||
v_beginuur NUMBER;
|
|
||||||
v_einduur NUMBER;
|
|
||||||
v_werkdagen NUMBER;
|
|
||||||
BEGIN
|
|
||||||
IF SUBSTR(p_stdmeldinggroep_naam,1,15) = 'Beschikbaarheid' -- TODO conditie metingen toevoegen
|
|
||||||
OR p_stdmeldinggroep_naam = 'Functionaliteit voorziening'
|
|
||||||
THEN
|
|
||||||
CASE WHEN p_startdatum BETWEEN TO_DATE('20210101', 'yyyymmdd') AND TO_DATE('20270101', 'yyyymmdd')
|
|
||||||
THEN RETURN 1;
|
|
||||||
WHEN p_startdatum BETWEEN TO_DATE('20270101', 'yyyymmdd') AND TO_DATE('20320101', 'yyyymmdd')
|
|
||||||
THEN RETURN 0.85;
|
|
||||||
WHEN p_startdatum BETWEEN TO_DATE('20320101', 'yyyymmdd') AND TO_DATE('20370101', 'yyyymmdd')
|
|
||||||
THEN RETURN 0.7;
|
|
||||||
ELSE
|
|
||||||
RETURN 0;
|
|
||||||
END CASE;
|
|
||||||
ELSE
|
|
||||||
RETURN 1;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
END;
|
|
||||||
|
|
||||||
PROCEDURE mail_gbs_melding(pfrom IN VARCHAR2,
|
PROCEDURE mail_gbs_melding(pfrom IN VARCHAR2,
|
||||||
pto IN VARCHAR2,
|
pto IN VARCHAR2,
|
||||||
psubject IN VARCHAR2,
|
psubject IN VARCHAR2,
|
||||||
@@ -271,7 +48,35 @@ AS
|
|||||||
|
|
||||||
AS
|
AS
|
||||||
|
|
||||||
v_errormsg VARCHAR2 (1000);
|
CURSOR c IS
|
||||||
|
SELECT *
|
||||||
|
FROM mld_melding m
|
||||||
|
WHERE mld_meldbron_key = 6 -- System GBS
|
||||||
|
AND mld_melding_status IN (0, 2, 3, 4, 7, 99); -- alles behalve 1=Afgewezen, 5= afgemeld, 6= historie
|
||||||
|
|
||||||
|
v_sender prs_perslid.prs_perslid_key%TYPE;
|
||||||
|
v_melding_key mld_melding.mld_melding_key%TYPE;
|
||||||
|
v_stdmelding_key mld_stdmelding.mld_stdmelding_key%TYPE;
|
||||||
|
v_errormsg fac_result.fac_result_waarde%TYPE;
|
||||||
|
v_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE;
|
||||||
|
v_onderwerp mld_melding.mld_melding_onderwerp%TYPE;
|
||||||
|
v_omschrijving mld_melding.mld_melding_omschrijving%TYPE;
|
||||||
|
v_melding_status mld_melding.mld_melding_status%TYPE;
|
||||||
|
v_srtruimte_key alg_srtruimte.alg_srtruimte_key%TYPE;
|
||||||
|
v_ruimte_nr alg_ruimte.alg_ruimte_nr%TYPE;
|
||||||
|
v_std_ruimte_nr alg_ruimte.alg_ruimte_nr%TYPE;
|
||||||
|
v_ruimte_key alg_ruimte.alg_ruimte_key%TYPE;
|
||||||
|
v_locatie_key alg_locatie.alg_locatie_key%TYPE;
|
||||||
|
v_tijdstip VARCHAR2 (100);
|
||||||
|
v_date DATE;
|
||||||
|
v_gbs_melding VARCHAR2 (1000);
|
||||||
|
v_count NUMBER;
|
||||||
|
v_error NUMBER;
|
||||||
|
v_newline VARCHAR2 (4000);
|
||||||
|
v_tag VARCHAR2 (4000);
|
||||||
|
v_from VARCHAR2 (4000);
|
||||||
|
v_body VARCHAR2 (4000);
|
||||||
|
|
||||||
v_errorhint VARCHAR2 (1000);
|
v_errorhint VARCHAR2 (1000);
|
||||||
oracle_err_num NUMBER;
|
oracle_err_num NUMBER;
|
||||||
oracle_err_mes VARCHAR2 (200);
|
oracle_err_mes VARCHAR2 (200);
|
||||||
@@ -279,6 +84,15 @@ AS
|
|||||||
v_volgnr NUMBER;
|
v_volgnr NUMBER;
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
|
-- Verwijder de Bounce Address Tag Validation
|
||||||
|
IF pfrom LIKE 'prvs=%'
|
||||||
|
THEN
|
||||||
|
v_from := SUBSTR (pfrom, INSTR (pfrom, '=', -1) + 1);
|
||||||
|
ELSE
|
||||||
|
v_from := pfrom;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
|
||||||
IF psubject = 'Watchdog Alarm'
|
IF psubject = 'Watchdog Alarm'
|
||||||
THEN
|
THEN
|
||||||
UPDATE fac_usrdata
|
UPDATE fac_usrdata
|
||||||
@@ -289,6 +103,18 @@ AS
|
|||||||
SET fac_usrdata_vervaldatum = SYSDATE
|
SET fac_usrdata_vervaldatum = SYSDATE
|
||||||
WHERE fac_usrdata_key = 60; -- Laatst ontvangen bericht
|
WHERE fac_usrdata_key = 60; -- Laatst ontvangen bericht
|
||||||
|
|
||||||
|
-- filter nu de essentiele velden uit de mailbody
|
||||||
|
-- vervang cr door lf
|
||||||
|
-- TO DO: MOETEN WE EEN FALLBACK STDMELDING KEY DEFINIEREN??????????????????????
|
||||||
|
v_stdmelding_key := fac.safe_to_number (fac.getsetting ('defaultstdmelding'));
|
||||||
|
|
||||||
|
v_body := pbody;
|
||||||
|
v_body := REPLACE (v_body, CHR (13), CHR (10));
|
||||||
|
-- verwijder dubbele lf's
|
||||||
|
v_body := REPLACE (v_body, CHR (10) || CHR (10), CHR (10));
|
||||||
|
v_omschrijving := v_body;
|
||||||
|
v_onderwerp := psubject;
|
||||||
|
|
||||||
v_errorhint := 'Bepaal volgnummer';
|
v_errorhint := 'Bepaal volgnummer';
|
||||||
SELECT MAX(fac_rapport_volgnr)
|
SELECT MAX(fac_rapport_volgnr)
|
||||||
INTO v_volgnr
|
INTO v_volgnr
|
||||||
@@ -297,7 +123,212 @@ AS
|
|||||||
|
|
||||||
v_errorhint := 'Bewaar mail ' || v_volgnr;
|
v_errorhint := 'Bewaar mail ' || v_volgnr;
|
||||||
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel)
|
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel)
|
||||||
VALUES ('GBS_MELDING', v_volgnr + 1, pfrom || CHR (10) || psubject || CHR (10) || pbody);
|
VALUES ('GBS_MELDING', v_volgnr + 1, pfrom || CHR (10) || psubject || CHR (10) || v_omschrijving);
|
||||||
|
|
||||||
|
-- afzender van een gbs bericht is altijd 1881 (Key van gebruiker Gebouwbeheersysteem GBS)
|
||||||
|
v_sender := 1761; --1881 prod
|
||||||
|
|
||||||
|
-- Eerste 5 regels bevatten geen relevante informatie
|
||||||
|
fac.imp_getfield (v_body, CHR (10), v_newline);
|
||||||
|
v_errorhint := 'Ophalen 1e regel: ' || v_newline;
|
||||||
|
fac.imp_getfield (v_body, CHR (10), v_newline);
|
||||||
|
v_errorhint := 'Ophalen 2e regel: ' || v_newline;
|
||||||
|
fac.imp_getfield (v_body, CHR (10), v_newline);
|
||||||
|
v_errorhint := 'Ophalen 3e regel: ' || v_newline;
|
||||||
|
fac.imp_getfield (v_body, CHR (10), v_newline);
|
||||||
|
v_errorhint := 'Ophalen 4e regel: ' || v_newline;
|
||||||
|
fac.imp_getfield (v_body, CHR (10), v_newline);
|
||||||
|
v_errorhint := 'Ophalen 5e regel: ' || v_newline;
|
||||||
|
fac.imp_getfield (v_body, CHR (10), v_newline);
|
||||||
|
v_errorhint := 'Ophalen 6e regel: ' || v_newline;
|
||||||
|
|
||||||
|
-- De zesde regel moet allemaal sterren bevatten. Laten we dit maar even checken
|
||||||
|
IF v_newline = '********************************'
|
||||||
|
THEN
|
||||||
|
fac.imp_getfield (v_body, CHR (10), v_gbs_melding);
|
||||||
|
v_errorhint := 'Ophalen GBS melding: ' || v_gbs_melding;
|
||||||
|
fac.imp_getfield (v_body, CHR (10), v_tijdstip);
|
||||||
|
v_errorhint := 'Ophalen tijdstip: ' || v_tijdstip;
|
||||||
|
v_date := TO_DATE(v_tijdstip, 'dd-mm-yyyy hh24:mi:ss');
|
||||||
|
v_errorhint := 'Tijdstip: ' || v_date;
|
||||||
|
|
||||||
|
v_ruimte_nr := SUBSTR(v_gbs_melding, 2, INSTR(v_gbs_melding, ']')-2);
|
||||||
|
v_errorhint := 'Ruimte: ' || v_ruimte_nr;
|
||||||
|
v_tag := SUBSTR(v_gbs_melding, INSTR(v_gbs_melding, ']')+2, 100);
|
||||||
|
|
||||||
|
v_errorhint := 'Tag: ' || v_tag;
|
||||||
|
IF v_tag = 'GbsMeldingUit'
|
||||||
|
THEN
|
||||||
|
-- dan gaan we alle GBS meldingen afmelden
|
||||||
|
FOR rec IN c
|
||||||
|
LOOP
|
||||||
|
v_errorhint := 'Opzoeken status';
|
||||||
|
SELECT mld_melding_status
|
||||||
|
INTO v_melding_status
|
||||||
|
FROM mld_melding
|
||||||
|
WHERE mld_melding_key = rec.mld_melding_key;
|
||||||
|
|
||||||
|
-- Als status is nieuw of te accepteren dan eerst op geaccepteerd zetten.
|
||||||
|
IF v_melding_status = 2 OR v_melding_status = 3
|
||||||
|
THEN
|
||||||
|
v_errorhint := 'Accepteren melding';
|
||||||
|
-- melding op geaccepteerd zetten.
|
||||||
|
mld.setmeldingstatus (rec.mld_melding_key, 4, v_sender);
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- nu de status op afgemeld zetten.
|
||||||
|
v_errorhint := 'Afmelden melding';
|
||||||
|
mld.setmeldingstatus (rec.mld_melding_key, 5, v_sender);
|
||||||
|
|
||||||
|
v_errorhint := 'Einddatum aanpassen';
|
||||||
|
fac.backtrackaction ('MLDAFM',
|
||||||
|
rec.mld_melding_key,
|
||||||
|
v_sender,
|
||||||
|
v_date);
|
||||||
|
|
||||||
|
-- Vul het kenmerk Bedrijf (malus) met de waarde van Homij uit de eigen tabel
|
||||||
|
-- mld.upsertmeldingkenmerk (61, v_melding_key, 182);
|
||||||
|
|
||||||
|
INSERT INTO fac_result (fac_result_sessionid,
|
||||||
|
fac_result_naam,
|
||||||
|
fac_result_waarde)
|
||||||
|
VALUES (psessionid,
|
||||||
|
'maillog',
|
||||||
|
'Melding '
|
||||||
|
|| v_melding_key
|
||||||
|
|| ' is afgemeld, aantal gevonden '
|
||||||
|
|| v_count
|
||||||
|
|| ' Details: '
|
||||||
|
|| v_melding_status
|
||||||
|
|| ';'
|
||||||
|
|| v_onderwerp);
|
||||||
|
END LOOP;
|
||||||
|
|
||||||
|
ELSE
|
||||||
|
SELECT fac_usrdata_prijs, fac_usrdata_omschr
|
||||||
|
INTO v_stdmelding_key, v_std_ruimte_nr
|
||||||
|
FROM fac_usrdata ud
|
||||||
|
WHERE fac_usrtab_key = 20
|
||||||
|
AND fac_usrdata_code = v_tag;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
-- Zoek het ruimtenummer dat we ontvangen hebben. Als het Algemeen is gaan we dat natuurlijk niet vinden.
|
||||||
|
SELECT alg_ruimte_key, alg_locatie_key, alg_srtruimte_key
|
||||||
|
INTO v_ruimte_key, v_locatie_key, v_srtruimte_key
|
||||||
|
FROM alg_v_ruimte_gegevens
|
||||||
|
WHERE alg_ruimte_nr = v_ruimte_nr;
|
||||||
|
EXCEPTION WHEN NO_DATA_FOUND
|
||||||
|
THEN
|
||||||
|
-- Zoek het ruimtenummer nav het nummer dat in de eigentabel staat.
|
||||||
|
SELECT alg_ruimte_key, alg_locatie_key, alg_srtruimte_key
|
||||||
|
INTO v_ruimte_key, v_locatie_key, v_srtruimte_key
|
||||||
|
FROM alg_v_ruimte_gegevens
|
||||||
|
WHERE alg_ruimte_nr = v_std_ruimte_nr;
|
||||||
|
END;
|
||||||
|
|
||||||
|
-- Kijk of er al een melding actief is met dezelfde stdmelding_key en meldbron 6 (System)
|
||||||
|
SELECT MIN (m.mld_melding_key), COUNT (m.mld_melding_key)
|
||||||
|
INTO v_melding_key, v_count
|
||||||
|
FROM mld_melding m
|
||||||
|
WHERE mld_stdmelding_key = v_stdmelding_key
|
||||||
|
AND mld_alg_onroerendgoed_keys = v_ruimte_key
|
||||||
|
AND mld_melding_status IN (0, 2, 3, 4, 7, 99); -- alles behalve 1=Afgewezen, 5= afgemeld, 6= historie
|
||||||
|
|
||||||
|
IF v_count = 0
|
||||||
|
THEN
|
||||||
|
|
||||||
|
-- nu gaan we de hersteltijd bepalen
|
||||||
|
v_errormsg := '(0x147)';
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
-- vind de uitvoertijd bij de ruimte specifieke sla
|
||||||
|
SELECT mld_stdmsrtruimte_t_uitvtijd
|
||||||
|
INTO v_uitvoertijd
|
||||||
|
FROM mld_stdmsrtruimte
|
||||||
|
WHERE alg_srtruimte_key = v_srtruimte_key
|
||||||
|
AND mld_stdmelding_key = v_stdmelding_key;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN NO_DATA_FOUND
|
||||||
|
THEN
|
||||||
|
-- vind de uitvoertijd bij de stdmelding
|
||||||
|
SELECT mld_stdmelding_t_uitvoertijd
|
||||||
|
INTO v_uitvoertijd
|
||||||
|
FROM mld_stdmelding
|
||||||
|
WHERE mld_stdmelding_key = v_stdmelding_key;
|
||||||
|
END;
|
||||||
|
|
||||||
|
v_errormsg := 'Melding kan niet aangemaakt worden (0x1481)';
|
||||||
|
|
||||||
|
INSERT INTO mld_melding (mld_melding_module,
|
||||||
|
mld_meldbron_key,
|
||||||
|
mld_melding_datum,
|
||||||
|
mld_melding_onderwerp,
|
||||||
|
mld_melding_omschrijving,
|
||||||
|
mld_melding_status,
|
||||||
|
mld_melding_t_uitvoertijd,
|
||||||
|
mld_stdmelding_key,
|
||||||
|
prs_perslid_key,
|
||||||
|
prs_perslid_key_voor,
|
||||||
|
prs_kostenplaats_key,
|
||||||
|
mld_melding_spoed,
|
||||||
|
mld_alg_locatie_key,
|
||||||
|
mld_alg_onroerendgoed_keys)
|
||||||
|
VALUES ('MLD',
|
||||||
|
6, -- system
|
||||||
|
v_date,
|
||||||
|
v_onderwerp,
|
||||||
|
v_omschrijving,
|
||||||
|
NULL,
|
||||||
|
v_uitvoertijd,
|
||||||
|
v_stdmelding_key,
|
||||||
|
v_sender,
|
||||||
|
v_sender,
|
||||||
|
NULL,
|
||||||
|
3,
|
||||||
|
v_locatie_key,
|
||||||
|
v_ruimte_key)
|
||||||
|
RETURNING mld_melding_key
|
||||||
|
INTO v_melding_key;
|
||||||
|
|
||||||
|
v_errormsg := '(0x165)';
|
||||||
|
mld.setmeldingstatus (v_melding_key, 2, v_sender);
|
||||||
|
|
||||||
|
INSERT INTO fac_result (fac_result_sessionid,
|
||||||
|
fac_result_naam,
|
||||||
|
fac_result_waarde)
|
||||||
|
VALUES (psessionid,
|
||||||
|
'maillog',
|
||||||
|
'Geregistreerd onder melding ' || v_melding_key);
|
||||||
|
ELSE
|
||||||
|
INSERT INTO fac_result (fac_result_sessionid,
|
||||||
|
fac_result_naam,
|
||||||
|
fac_result_waarde)
|
||||||
|
VALUES (psessionid,
|
||||||
|
'maillog',
|
||||||
|
'Melding bestaat al ' || v_melding_key);
|
||||||
|
|
||||||
|
v_error := 1;
|
||||||
|
v_errormsg := 'Melding bestaat al ' || v_melding_key;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
ELSE
|
||||||
|
INSERT INTO fac_result (fac_result_sessionid,
|
||||||
|
fac_result_naam,
|
||||||
|
fac_result_waarde)
|
||||||
|
VALUES (psessionid,
|
||||||
|
'errormsg',
|
||||||
|
'Berichtopbouw verkeerd gevonden regel: ' || v_newline);
|
||||||
|
-- 'Fout bij verwerken GBS bericht: ' || psubject);
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF v_error = 1
|
||||||
|
THEN
|
||||||
|
-- foutafhandeling
|
||||||
|
fac.writelog ('PROCESSEMAIL',
|
||||||
|
'E',
|
||||||
|
v_errormsg,
|
||||||
|
SUBSTR (pbody, 1, 1000));
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
EXCEPTION WHEN OTHERS
|
EXCEPTION WHEN OTHERS
|
||||||
@@ -318,387 +349,6 @@ AS
|
|||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW pghe_v_startmelding_geg
|
|
||||||
(
|
|
||||||
m_start,
|
|
||||||
mld_alg_onroerendgoed_keys,
|
|
||||||
mld_melding_status,
|
|
||||||
mld_melding_afgerond,
|
|
||||||
aantal,
|
|
||||||
overlappend,
|
|
||||||
t_van,
|
|
||||||
gereed,
|
|
||||||
mld_melding_spoed,
|
|
||||||
mld_stdmelding_key,
|
|
||||||
prs_kostenplaats_key,
|
|
||||||
max_t_actual,
|
|
||||||
min_t_sla,
|
|
||||||
max_t_respijt,
|
|
||||||
min_tht_einddatum_start,
|
|
||||||
mld_melding_indult,
|
|
||||||
mld_melding_einddatum_std,
|
|
||||||
mld_melding_einddatum,
|
|
||||||
mld_melding_omschrijving,
|
|
||||||
mld_melding_opmerking,
|
|
||||||
klant_melding,
|
|
||||||
prs_bedrijf_key
|
|
||||||
)
|
|
||||||
AS
|
|
||||||
SELECT m.m_start,
|
|
||||||
x.mld_alg_onroerendgoed_keys,
|
|
||||||
-- als <20><>n van de onderliggende meldingen "open", dan moet ook M_START status Uitgegeven krijgen
|
|
||||||
DECODE (m.open, 0, x.mld_melding_status, 4) mld_melding_status, --- 4 = Geaccepteerd???
|
|
||||||
x.mld_melding_afgerond, -- mld_melding_afgerond van alleen M_START
|
|
||||||
m.aantal,
|
|
||||||
m.overlappend,
|
|
||||||
m.t_van, -- min_melding_datum
|
|
||||||
DECODE(m.gereed, TO_DATE('20991231', 'YYYYMMDD'), TO_DATE(NULL), m.gereed), -- max_actual_einddatum
|
|
||||||
x.mld_melding_spoed, -- mld_melding_spoed van alleen M_START
|
|
||||||
x.mld_stdmelding_key, -- mld_stdmelding_key van alleen M_START
|
|
||||||
x.prs_kostenplaats_key, -- prs_kostenplaats_key van alleen M_START
|
|
||||||
mld.getactualuitvoer ( -- verschil tussen t_van en gereed/SYSDATE is de maximale - actuele - doorlooptijd!
|
|
||||||
m.t_van,
|
|
||||||
DECODE (m.gereed, TO_DATE('20991231', 'YYYYMMDD'), SYSDATE, m.gereed),
|
|
||||||
x.mld_stdmelding_key,
|
|
||||||
x.mld_melding_spoed,
|
|
||||||
x.mld_alg_onroerendgoed_keys,
|
|
||||||
NULL)
|
|
||||||
max_t_actual,
|
|
||||||
mld_t_uitvoertijd (m.min_uitvoertijd, m.min_uitvoertijd_eenheid)
|
|
||||||
min_t_sla,
|
|
||||||
mld_t_uitvoertijd (COALESCE (m.max_respijt, 0),
|
|
||||||
m.max_respijt_eenheid)
|
|
||||||
max_t_respijt, -- altijd dezelfde eenheid als uitvoertijd???
|
|
||||||
mld.geteinddatum (
|
|
||||||
m.m_start,
|
|
||||||
mld_t_uitvoertijd (m.min_uitvoertijd + m.max_respijt,
|
|
||||||
m.min_uitvoertijd_eenheid),
|
|
||||||
m.t_van)
|
|
||||||
min_tht_einddatum_start, -- meest nabije tht-einddatum van overlappende meldingen (t_van + MIN SLA + MAX respijt)
|
|
||||||
m.mld_melding_indult, -- max_melding_indult
|
|
||||||
m.mld_melding_einddatum_std, -- min_melding_einddatum_std of min_tht_einddatum_start???
|
|
||||||
m.mld_melding_einddatum, -- max_melding_einddatum
|
|
||||||
x.mld_melding_omschrijving, -- mld_melding_oms. van alleen M_START
|
|
||||||
x.mld_melding_opmerking, -- mld_melding_opm. van alleen M_START
|
|
||||||
m.klant_melding, -- melding gemeld door medewerker klant
|
|
||||||
m.prs_bedrijf_key -- bedrijf key van de melder
|
|
||||||
FROM ( SELECT m.m_start,
|
|
||||||
SUM (m.open) open,
|
|
||||||
COUNT (m.mld_melding_key) aantal,
|
|
||||||
listagg (m.mld_melding_key, ',')
|
|
||||||
WITHIN GROUP (ORDER BY m.mld_melding_key)
|
|
||||||
AS overlappend,
|
|
||||||
MIN (m.mld_melding_datum) t_van, -- min_melding_datum
|
|
||||||
MAX (m.gereed) gereed, -- max_actual_einddatum
|
|
||||||
MIN (m.mld_melding_t_uitvoertijd.tijdsduur) min_uitvoertijd,
|
|
||||||
MIN (m.mld_melding_t_uitvoertijd.eenheid)
|
|
||||||
min_uitvoertijd_eenheid,
|
|
||||||
MAX (m.mld_melding_t_respijt.tijdsduur) max_respijt,
|
|
||||||
MAX (m.mld_melding_t_respijt.eenheid) max_respijt_eenheid, -- altijd dezelfde eenheid als uitvoertijd???
|
|
||||||
MAX (m.mld_melding_indult) mld_melding_indult,
|
|
||||||
MIN (m.mld_melding_einddatum_std) mld_melding_einddatum_std, -- min_melding_einddatum_std of min_thtsla_einddatum_start???
|
|
||||||
MAX (m.mld_melding_einddatum) mld_melding_einddatum,
|
|
||||||
MAX (m.klant_melding) klant_melding,
|
|
||||||
MAX (m.prs_bedrijf_key) prs_bedrijf_key
|
|
||||||
FROM (SELECT PGHE.get_first_melding (m.mld_melding_key, 1)
|
|
||||||
m_start,
|
|
||||||
m.mld_melding_key,
|
|
||||||
DECODE (m.mld_melding_status, 4, 1, 0) open, -- open = Geaccepteerd???
|
|
||||||
m.mld_melding_datum,
|
|
||||||
COALESCE(fac.gettrackingdate ('MLDAFM', m.mld_melding_key), TO_DATE('20991231', 'YYYYMMDD')) gereed,
|
|
||||||
m.mld_melding_t_uitvoertijd,
|
|
||||||
m.mld_melding_t_respijt,
|
|
||||||
m.mld_melding_indult,
|
|
||||||
m.mld_melding_einddatum_std,
|
|
||||||
m.mld_melding_einddatum,
|
|
||||||
a.prs_bedrijf_key,
|
|
||||||
PGHE.klant_melding(m.mld_melding_key) klant_melding
|
|
||||||
FROM mld_melding m,
|
|
||||||
mld_stdmelding std,
|
|
||||||
prs_perslid p,
|
|
||||||
prs_v_afdeling a
|
|
||||||
WHERE m.mld_melding_parentkey IS NULL
|
|
||||||
AND m.prs_perslid_key = p.prs_perslid_key
|
|
||||||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
||||||
-- meldingen die al geexporteerd zijn (en in de tabel nmms_monitoring staan) komen niet meer in deze view
|
|
||||||
AND NOT EXISTS
|
|
||||||
(SELECT 1
|
|
||||||
FROM pchx_monitoring
|
|
||||||
WHERE melding_key = m.mld_melding_key)
|
|
||||||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
||||||
AND std.mld_stdmelding_slabewaken = 1 -- alleen meldingen waarvoor een malus geldt
|
|
||||||
) m
|
|
||||||
GROUP BY m.m_start) m,
|
|
||||||
mld_melding x -- gedefinieerde set gegevens bij M_START als referentie
|
|
||||||
WHERE m.m_start = x.mld_melding_key;
|
|
||||||
|
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW pghe_v_monitoring
|
|
||||||
(
|
|
||||||
melding_key,
|
|
||||||
afw,
|
|
||||||
indult,
|
|
||||||
respijt,
|
|
||||||
kostenplaats,
|
|
||||||
locatie,
|
|
||||||
gebouw,
|
|
||||||
verdieping,
|
|
||||||
ruimte,
|
|
||||||
omschrijving,
|
|
||||||
begin,
|
|
||||||
gereed,
|
|
||||||
thtijdstip,
|
|
||||||
verwerkt,
|
|
||||||
eenheid,
|
|
||||||
tht,
|
|
||||||
wht,
|
|
||||||
regime,
|
|
||||||
groep,
|
|
||||||
basiskorting,
|
|
||||||
variabelekorting,
|
|
||||||
wht_tht,
|
|
||||||
totaal,
|
|
||||||
totaal_z_respijt,
|
|
||||||
totaal_weging,
|
|
||||||
status,
|
|
||||||
afgerond,
|
|
||||||
dienst,
|
|
||||||
stdmelding_key,
|
|
||||||
discipline_key,
|
|
||||||
overlappend,
|
|
||||||
gekoppeld,
|
|
||||||
wegingsfactor,
|
|
||||||
melding_omschrijving,
|
|
||||||
melding_opmerking,
|
|
||||||
klant_melding,
|
|
||||||
bedrijf_naam,
|
|
||||||
og,
|
|
||||||
bedrijf_malus,
|
|
||||||
prefix,
|
|
||||||
kenmerken,
|
|
||||||
note
|
|
||||||
)
|
|
||||||
AS
|
|
||||||
SELECT m_start melding_key, --mld_melding_key,
|
|
||||||
DECODE (antedateren, 0, '', 'T') -- de begintijd of eindtijd van de melding is aangepast
|
|
||||||
|| DECODE (g.respijt.tijdsduur, 0, '', 'R') -- er is een respijt ingevuld
|
|
||||||
|| DECODE (mld_melding_indult, 1, 'I', '') -- indult is aangevinkt dus melding doet niet mee
|
|
||||||
|| DECODE (niet_overlappen, 1, 'O', '') -- melding is gemarkeerd als zijnde niet te overlappen met een andere melding
|
|
||||||
|| DECODE (aantal_beschikb, 0, '', 'B') afw, -- binnen de looptijd van de melding is er ook een beschikbaarheidsmelding in dezelfde ruimte
|
|
||||||
DECODE (COALESCE (mld_melding_indult, 0), 0, 'Nee', 'Ja') indult,
|
|
||||||
DECODE (g.respijt.tijdsduur,
|
|
||||||
0, NULL,
|
|
||||||
TO_CHAR (ROUND (g.respijt.tijdsduur, 2)))
|
|
||||||
respijt,
|
|
||||||
prs_kostenplaats_nr kostenplaats,
|
|
||||||
alg_locatie_code locatie,
|
|
||||||
alg_gebouw_upper gebouw,
|
|
||||||
alg_verdieping_volgnr verdieping,
|
|
||||||
ruimte,
|
|
||||||
mld_stdmelding_omschrijving omschrijving,
|
|
||||||
t_van begin,
|
|
||||||
gereed,
|
|
||||||
thtijdstip thtijdstip,
|
|
||||||
(SELECT MAX(fac_tracking_datum)
|
|
||||||
FROM fac_tracking
|
|
||||||
WHERE fac_tracking_refkey = m_start --mld_melding_key
|
|
||||||
AND fac_srtnotificatie_key = 56)
|
|
||||||
verwerkt,
|
|
||||||
eenheid,
|
|
||||||
ROUND (g.tht.tijdsduur, 2) tht,
|
|
||||||
ROUND (g.actual.tijdsduur, 2) wht,
|
|
||||||
regime,
|
|
||||||
mld_stdmeldinggroep_naam groep,
|
|
||||||
bk basiskorting,
|
|
||||||
vk variabelekorting,
|
|
||||||
DECODE (telaat, 1, ROUND (g.uitloop.tijdsduur, 2)) wht_tht,
|
|
||||||
DECODE (
|
|
||||||
telaat,
|
|
||||||
1, -- Gemeente Heerlen rond de breuk naar beneden af op gehele getallen.
|
|
||||||
coalesce(bk,0) + DECODE(vk, null, 0, (TRUNC (g.uitloop.tijdsduur/DECODE(g.thtsla.tijdsduur, 0, 0.1, g.thtsla.tijdsduur)) * vk)), -- Alleen als dagen x24!
|
|
||||||
NULL)
|
|
||||||
totaal,
|
|
||||||
DECODE (
|
|
||||||
telaat_z_respijt,
|
|
||||||
1, -- Gemeente Heerlen rond de breuk naar beneden af op gehele getallen.
|
|
||||||
coalesce(bk,0) + DECODE(vk, null, 0, (TRUNC (g.uitloop_z_respijt.tijdsduur/DECODE(g.thtsla.tijdsduur, 0, 0.1, g.thtsla.tijdsduur)) * vk)), -- Alleen als dagen x24!
|
|
||||||
NULL)
|
|
||||||
totaal_z_respijt,
|
|
||||||
DECODE (
|
|
||||||
telaat,
|
|
||||||
1,
|
|
||||||
(coalesce(bk,0) + DECODE(vk, null, 0, (TRUNC (g.uitloop.tijdsduur/DECODE(g.thtsla.tijdsduur, 0, 0.1, g.thtsla.tijdsduur)) * vk))) * -- Alleen als dagen x24!
|
|
||||||
wegingsfactor,
|
|
||||||
NULL)
|
|
||||||
totaal_weging,
|
|
||||||
(SELECT mld_statuses_omschrijving
|
|
||||||
FROM mld_statuses
|
|
||||||
WHERE mld_statuses_key = mld_melding_status) status,
|
|
||||||
DECODE (mld_melding_afgerond, 1, 'x') afgerond,
|
|
||||||
(SELECT prs_dienst_omschrijving
|
|
||||||
FROM prs_dienst
|
|
||||||
WHERE prs_dienst_key = g.prs_dienst_key) dienst,
|
|
||||||
mld_stdmelding_key,
|
|
||||||
mld_ins_discipline_key,
|
|
||||||
overlappend,
|
|
||||||
(SELECT listagg (m2.mld_melding_key, ',') WITHIN GROUP (ORDER BY m2.mld_melding_key)
|
|
||||||
AS gekoppeld
|
|
||||||
FROM mld_melding m2
|
|
||||||
WHERE COALESCE(m2.mld_melding_parentkey, -1) = m_start
|
|
||||||
GROUP BY m2.mld_melding_parentkey) gekoppeld,
|
|
||||||
wegingsfactor,
|
|
||||||
mld_melding_omschrijving melding_omschrijving,
|
|
||||||
mld_melding_opmerking melding_opmerking,
|
|
||||||
klant_melding,
|
|
||||||
(SELECT prs_bedrijf_naam
|
|
||||||
FROM prs_bedrijf b
|
|
||||||
WHERE b.prs_bedrijf_key = g.prs_bedrijf_key)
|
|
||||||
bedrijf_naam,
|
|
||||||
DECODE (antedateren + g.respijt.tijdsduur + mld_melding_indult + mld_melding_afgerond, 0, 0, 1) og,
|
|
||||||
PCHX.get_kenmerk('MLD', 102, m_start) bedrijf_malus, -- bedrijf die de malus moet betalen
|
|
||||||
ins_srtdiscipline_prefix prefix,
|
|
||||||
(SELECT listagg (mld_srtkenmerk_omschrijving || ': ' || PCHX.get_kenmerk ('MLD',k.mld_kenmerk_key, m_start), chr(10)) WITHIN GROUP (ORDER BY k.mld_kenmerk_volgnummer)
|
|
||||||
AS kenmerken
|
|
||||||
FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
|
|
||||||
WHERE km.mld_melding_key = m_start
|
|
||||||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
||||||
and k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
||||||
AND km.mld_kenmerkmelding_verwijder IS NULL
|
|
||||||
AND k.mld_kenmerk_verwijder IS NULL
|
|
||||||
and sk.mld_srtkenmerk_verwijder IS NULL
|
|
||||||
GROUP BY mld_melding_key) kenmerken,
|
|
||||||
(SELECT mld_melding_note_omschrijving FROM mld_melding_note n
|
|
||||||
WHERE n.mld_melding_key = m_start
|
|
||||||
AND NOT EXISTS (SELECT mld_melding_note_key FROM mld_melding_note n2
|
|
||||||
WHERE n2.mld_melding_key = n.mld_melding_key
|
|
||||||
AND n2.mld_melding_note_key > n.mld_melding_note_key)) note
|
|
||||||
FROM (SELECT m.m_start,
|
|
||||||
m.aantal,
|
|
||||||
DECODE (m.aantal, 1, NULL, m.overlappend) overlappend,
|
|
||||||
( SELECT count(*)
|
|
||||||
FROM mld_kenmerkmelding km
|
|
||||||
WHERE mld_kenmerk_key = 121
|
|
||||||
AND km.mld_melding_key = m_start) niet_overlappen,
|
|
||||||
m.mld_melding_status,
|
|
||||||
m.mld_melding_afgerond,
|
|
||||||
m.mld_melding_indult,
|
|
||||||
m.mld_melding_omschrijving,
|
|
||||||
m.mld_melding_opmerking,
|
|
||||||
std.prs_dienst_key,
|
|
||||||
std.mld_stdmelding_key,
|
|
||||||
std.mld_ins_discipline_key,
|
|
||||||
std.mld_stdmelding_omschrijving,
|
|
||||||
std.mld_stdmelding_malus,
|
|
||||||
m.t_van,
|
|
||||||
m.gereed,
|
|
||||||
m.mld_melding_einddatum_std thtijdstip,
|
|
||||||
stdg.mld_stdmeldinggroep_naam,
|
|
||||||
PGHE.get_regime (std.mld_stdmelding_key,
|
|
||||||
m.mld_alg_onroerendgoed_keys,
|
|
||||||
NULL)
|
|
||||||
regime, -- aantal werkuren per dag
|
|
||||||
UPPER (SUBSTR (stdg.mld_stdmeldinggroep_naam, 1, 1))
|
|
||||||
kortingtype, -- de meldingsgroep bevat het type storing
|
|
||||||
kp.prs_kostenplaats_nr,
|
|
||||||
rg.alg_locatie_code,
|
|
||||||
rg.alg_gebouw_upper,
|
|
||||||
rg.alg_verdieping_volgnr,
|
|
||||||
rg.alg_ruimte_nr || '-' || rg.alg_ruimte_omschrijving
|
|
||||||
ruimte,
|
|
||||||
COALESCE ((SELECT stsr.mld_stdmsrtruimte_malusbasis
|
|
||||||
FROM mld_stdmsrtruimte stsr
|
|
||||||
WHERE stsr.mld_stdmelding_key = std.mld_stdmelding_key
|
|
||||||
AND stsr.alg_srtruimte_key = rg.alg_srtruimte_key), std.mld_stdmelding_malusbasis)
|
|
||||||
bk,
|
|
||||||
COALESCE ((SELECT stsr.mld_stdmsrtruimte_malus
|
|
||||||
FROM mld_stdmsrtruimte stsr
|
|
||||||
WHERE stsr.mld_stdmelding_key = std.mld_stdmelding_key
|
|
||||||
AND stsr.alg_srtruimte_key = rg.alg_srtruimte_key), std.mld_stdmelding_malus) vk,
|
|
||||||
(SELECT COUNT (mb.mld_melding_key) aantal -- kijk of er op het moment van de melding er een beschikbaarheidsstoring was
|
|
||||||
FROM mld_melding mb, mld_stdmelding std_b
|
|
||||||
WHERE (mb.mld_melding_datum BETWEEN m.t_van
|
|
||||||
AND COALESCE (m.gereed,
|
|
||||||
SYSDATE)
|
|
||||||
OR fac.gettrackingdate ('MLDAFM', mb.mld_melding_key) BETWEEN m.t_van
|
|
||||||
AND COALESCE (
|
|
||||||
m.gereed,
|
|
||||||
SYSDATE))
|
|
||||||
AND mb.mld_alg_onroerendgoed_keys =
|
|
||||||
m.mld_alg_onroerendgoed_keys
|
|
||||||
AND mb.mld_stdmelding_key = std_b.mld_stdmelding_key
|
|
||||||
AND std_b.mld_stdmeldinggroep_key = 63 -- beschikbaarheid
|
|
||||||
AND std.mld_stdmeldinggroep_key <> 63)
|
|
||||||
aantal_beschikb, -- beschikbaarheid
|
|
||||||
-- vervolgmelding op een inspectie zijn per definitie te laat
|
|
||||||
-- inspecties zelf zijn te laat als de geplande einddatum verstreken is.
|
|
||||||
-- anders geldt de normale formule
|
|
||||||
SIGN( m.max_t_actual.tijdsduur
|
|
||||||
- m.min_t_sla.tijdsduur
|
|
||||||
- m.max_t_respijt.tijdsduur) -- positief, dan te laat
|
|
||||||
telaat,
|
|
||||||
SIGN( m.max_t_actual.tijdsduur
|
|
||||||
- m.min_t_sla.tijdsduur) -- positief, dan te laat
|
|
||||||
telaat_z_respijt,
|
|
||||||
m.max_t_actual actual, -- MAX actuele doorlooptijd
|
|
||||||
m.min_t_sla thtsla, -- MIN SLA
|
|
||||||
m.min_t_sla.eenheid eenheid,
|
|
||||||
m.max_t_respijt respijt, -- MAX respijt
|
|
||||||
mld_t_uitvoertijd (
|
|
||||||
m.min_t_sla.tijdsduur
|
|
||||||
+ m.max_t_respijt.tijdsduur,
|
|
||||||
m.min_t_sla.eenheid)
|
|
||||||
tht, -- MIN SLA + MAX respijt
|
|
||||||
mld_t_uitvoertijd (
|
|
||||||
m.max_t_actual.tijdsduur
|
|
||||||
- m.min_t_sla.tijdsduur
|
|
||||||
- m.max_t_respijt.tijdsduur,
|
|
||||||
m.max_t_actual.eenheid)
|
|
||||||
uitloop, -- hoeveel te laat
|
|
||||||
mld_t_uitvoertijd (
|
|
||||||
m.max_t_actual.tijdsduur
|
|
||||||
- m.min_t_sla.tijdsduur,
|
|
||||||
m.max_t_actual.eenheid)
|
|
||||||
uitloop_z_respijt, -- hoeveel te laat
|
|
||||||
pghe.get_weging(m.t_van, stdg.mld_stdmeldinggroep_naam) wegingsfactor, -- Afhankelijk van de stdmeldinggroep en de periode
|
|
||||||
-- is de tijd van de melding aangepast?
|
|
||||||
(SELECT COUNT ( * )
|
|
||||||
FROM fac_tracking t, fac_srtnotificatie sn
|
|
||||||
WHERE t.fac_tracking_refkey = m.m_start -- mld_melding_key VAN MELDING MET LAAGSTE KEY???
|
|
||||||
AND t.fac_srtnotificatie_key =
|
|
||||||
sn.fac_srtnotificatie_key
|
|
||||||
AND sn.fac_srtnotificatie_code = 'MLDUPD'
|
|
||||||
AND (t.fac_tracking_oms LIKE '%Start :%'
|
|
||||||
OR t.fac_tracking_oms LIKE '%Afgemeld:%'))
|
|
||||||
antedateren,
|
|
||||||
klant_melding,
|
|
||||||
prs_bedrijf_key,
|
|
||||||
ins_srtdiscipline_prefix
|
|
||||||
FROM PGHE_v_startmelding_geg m,
|
|
||||||
mld_stdmelding std,
|
|
||||||
ins_tab_discipline d,
|
|
||||||
ins_srtdiscipline sd,
|
|
||||||
mld_stdmeldinggroep stdg,
|
|
||||||
prs_kostenplaats kp,
|
|
||||||
alg_v_ruimte_gegevens rg,
|
|
||||||
alg_srtruimte sr
|
|
||||||
WHERE m.mld_melding_status IN (0, 2, 3, 4, 5, 6, 7, 99) -- alles behalve 1=Afgewezen
|
|
||||||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
||||||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
|
||||||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
||||||
AND std.mld_stdmeldinggroep_key =
|
|
||||||
stdg.mld_stdmeldinggroep_key(+)
|
|
||||||
AND m.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
|
||||||
AND m.mld_alg_onroerendgoed_keys = rg.alg_ruimte_key(+)
|
|
||||||
AND rg.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
|
||||||
AND ( UPPER (SUBSTR (stdg.mld_stdmeldinggroep_naam, 1, 1)) =
|
|
||||||
'P' -- Prestatiemelding
|
|
||||||
OR d.ins_discipline_key IN (86, 90) -- V en G, W en R
|
|
||||||
OR klant_melding = 1)
|
|
||||||
-- meldingen op inspecties worden altijd getoond (Kq)
|
|
||||||
-- anders alleen storingen ingelegd door klant medewerkers
|
|
||||||
-- alleen meldingen waarvoor een malus geldt
|
|
||||||
AND (std.mld_stdmelding_malus IS NOT NULL OR EXISTS (SELECT mld_stdmsrtruimte_key FROM mld_stdmsrtruimte stdsr WHERE stdsr.mld_stdmelding_key = std.mld_stdmelding_key))) g;
|
|
||||||
|
|
||||||
CREATE OR REPLACE PROCEDURE pghe_import_mld (p_import_key IN NUMBER)
|
CREATE OR REPLACE PROCEDURE pghe_import_mld (p_import_key IN NUMBER)
|
||||||
AS
|
AS
|
||||||
BEGIN
|
BEGIN
|
||||||
@@ -1620,6 +1270,32 @@ END;
|
|||||||
/
|
/
|
||||||
|
|
||||||
|
|
||||||
|
-- Rapportage om de releatie tussen het bericht uit het GBS en de standaardmelding
|
||||||
|
-- in Facilitor zichtbaar te maken.
|
||||||
|
CREATE OR REPLACE VIEW pghe_v_rap_gbs_storing_def
|
||||||
|
(
|
||||||
|
gbs_melding,
|
||||||
|
standaard_ruimte,
|
||||||
|
vakgroeptype,
|
||||||
|
vakgroep,
|
||||||
|
melding
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
SELECT fac_usrdata_code,
|
||||||
|
fac_usrdata_omschr,
|
||||||
|
sd.ins_srtdiscipline_omschrijving,
|
||||||
|
d.ins_discipline_omschrijving,
|
||||||
|
mld_stdmelding_omschrijving
|
||||||
|
FROM fac_usrdata ud,
|
||||||
|
mld_stdmelding std,
|
||||||
|
mld_discipline d,
|
||||||
|
ins_srtdiscipline sd
|
||||||
|
WHERE ud.fac_usrdata_verwijder IS NULL
|
||||||
|
AND ud.fac_usrtab_key = 20
|
||||||
|
AND TRUNC (ud.fac_usrdata_prijs) = std.mld_stdmelding_key
|
||||||
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||||||
|
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key;
|
||||||
|
|
||||||
-- Rapport om de sychronisatie status van de koppeling op de portal te tonen.
|
-- Rapport om de sychronisatie status van de koppeling op de portal te tonen.
|
||||||
CREATE OR REPLACE VIEW pghe_v_rap_gbs_status_info
|
CREATE OR REPLACE VIEW pghe_v_rap_gbs_status_info
|
||||||
(
|
(
|
||||||
@@ -1632,6 +1308,44 @@ AS
|
|||||||
FROM fac_usrdata
|
FROM fac_usrdata
|
||||||
WHERE fac_usrtab_key = 60;
|
WHERE fac_usrtab_key = 60;
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW pghe_melding_optijd
|
||||||
|
AS
|
||||||
|
SELECT gereed,
|
||||||
|
gbs,
|
||||||
|
DECODE (SIGN (mld_melding_einddatum_std - gereed), -1, 0, 100)
|
||||||
|
optijd
|
||||||
|
FROM (SELECT m.*,
|
||||||
|
DECODE (prs_perslid_key, 1881, 1, 0) gbs,
|
||||||
|
fac.gettrackingdate ('MLDAFM', m.mld_melding_key) gereed
|
||||||
|
FROM mld_melding m)
|
||||||
|
WHERE gereed IS NOT NULL
|
||||||
|
AND ADD_MONTHS(TRUNC(gereed, 'MONTH'),6) > SYSDATE;
|
||||||
|
|
||||||
|
-- Dashboard rapport voor nieuwe meldingen.
|
||||||
|
CREATE OR REPLACE VIEW pghe_v_dashboard_new
|
||||||
|
AS
|
||||||
|
SELECT m.mld_melding_key,
|
||||||
|
pf.prs_perslid_naam_full,
|
||||||
|
mld_melding_datum,
|
||||||
|
std.mld_stdmelding_omschrijving,
|
||||||
|
d.ins_discipline_omschrijving
|
||||||
|
FROM mld_melding m,
|
||||||
|
prs_perslid p,
|
||||||
|
prs_v_perslid_fullnames pf,
|
||||||
|
prs_afdeling a,
|
||||||
|
mld_stdmelding std,
|
||||||
|
ins_tab_discipline d
|
||||||
|
WHERE m.prs_perslid_key = p.prs_perslid_key
|
||||||
|
AND p.prs_perslid_naam <> 'Gebouwbeheersysteem GBS'
|
||||||
|
AND p.prs_perslid_key = pf.prs_perslid_key
|
||||||
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||||||
|
AND prs_afdeling_naam = 'RHHR'
|
||||||
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||||||
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||||||
|
AND d.ins_srtdiscipline_key = 4 -- Storing
|
||||||
|
AND mld_melding_status IN (2, 3);
|
||||||
|
|
||||||
|
|
||||||
------ payload end ------
|
------ payload end ------
|
||||||
|
|
||||||
SET DEFINE OFF
|
SET DEFINE OFF
|
||||||
|
|||||||
Reference in New Issue
Block a user