676 lines
32 KiB
MySQL
676 lines
32 KiB
MySQL
--
|
|
-- $Id$
|
|
--
|
|
|
|
DEFINE thisfile = 'bvb1.SQL'
|
|
DEFINE dbuser = 'BVB1'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
|
SPOOL &fcltlogfile
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
---------------------------------------
|
|
PROMPT &fcltcusttxt
|
|
---------------------------------------
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
CREATE OR REPLACE PACKAGE BVB1
|
|
AS
|
|
PROCEDURE melding_after_save (p_melding_key IN NUMBER);
|
|
|
|
PROCEDURE processemail (pfrom IN VARCHAR2,
|
|
pto IN VARCHAR2,
|
|
psubject IN VARCHAR2,
|
|
pbody IN VARCHAR2,
|
|
psessionid IN VARCHAR2,
|
|
pemailkey IN NUMBER);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY BVB1
|
|
AS
|
|
PROCEDURE melding_after_save (p_melding_key IN NUMBER)
|
|
AS
|
|
|
|
CURSOR c IS
|
|
SELECT mld_melding_key
|
|
FROM mld_melding m, mld_stdmelding std, mld_discipline d
|
|
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
|
AND d.ins_srtdiscipline_key IN (2,3) -- Storingen en interne actielijst
|
|
AND BITAND(std.mld_stdmelding_planbaar,4) = 4
|
|
AND m.mld_melding_status = 4
|
|
AND mld_melding_actiedatum IS NULL AND 1=0;
|
|
|
|
v_tijdsduur NUMBER;
|
|
v_eenheid VARCHAR2(1);
|
|
v_actiedatum DATE;
|
|
v_status MLD_MELDING.MLD_MELDING_STATUS%TYPE;
|
|
BEGIN
|
|
-- meldingen die binnen een dag afgehandeld moeten worden krijgen
|
|
-- direct een actiedatum. Hierdoor komen ze in het planbord te staan.
|
|
SELECT std.mld_stdmelding_t_uitvoertijd.tijdsduur tijdsduur,
|
|
std.mld_stdmelding_t_uitvoertijd.eenheid eenheid,
|
|
m.mld_melding_actiedatum,
|
|
m.mld_melding_status
|
|
INTO v_tijdsduur, v_eenheid, v_actiedatum, v_status
|
|
FROM mld_stdmelding std, mld_melding m
|
|
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND m.mld_melding_key = p_melding_key;
|
|
|
|
IF v_actiedatum IS NULL
|
|
AND ( v_eenheid = 'D' AND v_tijdsduur = 1
|
|
OR v_eenheid = 'U' AND v_tijdsduur <= 8)
|
|
THEN
|
|
UPDATE mld_melding
|
|
SET mld_melding_actiedatum = mld_melding_datum
|
|
WHERE mld_melding_key = p_melding_key;
|
|
END IF;
|
|
|
|
-- Als de melding geaccepteerd wordt en de actiedatum is nog leeg dan gaan we de actiedatum
|
|
-- vullen met de dag van vandaag zodat de melding ook op de kalender (rapportage) verschijnt.
|
|
FOR rec IN c
|
|
LOOP
|
|
UPDATE mld_melding
|
|
SET mld_melding_actiedatum = SYSDATE
|
|
WHERE mld_melding_key = rec.mld_melding_key;
|
|
END LOOP;
|
|
|
|
END;
|
|
|
|
PROCEDURE processemail (pfrom IN VARCHAR2,
|
|
pto IN VARCHAR2,
|
|
psubject IN VARCHAR2,
|
|
pbody IN VARCHAR2,
|
|
psessionid IN VARCHAR2,
|
|
pemailkey IN NUMBER
|
|
)
|
|
AS
|
|
sender prs_perslid.prs_perslid_key%TYPE;
|
|
newkey mld_melding.mld_melding_key%TYPE;
|
|
defaultstdmelding fac_setting.fac_setting_default%TYPE;
|
|
kkey_att mld_kenmerk.mld_kenmerk_key%TYPE;
|
|
kkey_mail mld_kenmerk.mld_kenmerk_key%TYPE;
|
|
errormsg fac_result.fac_result_waarde%TYPE;
|
|
BEGIN
|
|
BEGIN
|
|
-- Valideer de sender in pfrom: kennen we deze?
|
|
SELECT prs_perslid_key
|
|
INTO sender
|
|
FROM prs_perslid p, prs_afdeling d
|
|
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
|
AND UPPER (prs_perslid_email) = UPPER (pfrom);
|
|
EXCEPTION WHEN NO_DATA_FOUND
|
|
THEN
|
|
sender := 4801;
|
|
END;
|
|
|
|
CASE
|
|
WHEN UPPER (pto) LIKE 'HUURDER@%'
|
|
THEN
|
|
defaultstdmelding := 1861;
|
|
kkey_att := 1;
|
|
kkey_mail := 4661;
|
|
|
|
-- suggested extensions:
|
|
-- check for MLDUSE-write autorisations
|
|
-- parse the subject to find an appropriate stdmelding, if uniquely possible
|
|
-- append (as a note?) to an existing melding if #key is found in the subject
|
|
BEGIN
|
|
INSERT INTO mld_melding (mld_melding_module,
|
|
mld_meldbron_key,
|
|
mld_melding_datum,
|
|
mld_melding_onderwerp,
|
|
mld_melding_omschrijving,
|
|
mld_melding_status,
|
|
mld_stdmelding_key,
|
|
mld_melding_email_ext,
|
|
prs_perslid_key,
|
|
prs_perslid_key_voor,
|
|
prs_kostenplaats_key,
|
|
mld_melding_spoed)
|
|
VALUES ('MLD',
|
|
4, -- email
|
|
SYSDATE,
|
|
SUBSTR (psubject, 1, 80),
|
|
SUBSTR (REPLACE (SUBSTR (pbody, 1, 4000),
|
|
CHR (13) || CHR (10) || CHR (13) || CHR (10),
|
|
CHR (13) || CHR (10)),
|
|
1,
|
|
4000), -- verwijder onnodige witregels
|
|
NULL,
|
|
defaultstdmelding,
|
|
pfrom,
|
|
sender,
|
|
sender,
|
|
NULL,
|
|
3)
|
|
RETURNING mld_melding_key
|
|
INTO newkey;
|
|
|
|
|
|
INSERT INTO fac_result (fac_result_sessionid,
|
|
fac_result_naam,
|
|
fac_result_waarde)
|
|
VALUES (psessionid,
|
|
'kenmerkpath',
|
|
'MLD\M' || to_char( TRUNC(newkey/1000), 'FM0000') || '___\M' || newkey || '\' || kkey_att || '\');
|
|
|
|
INSERT INTO fac_result (fac_result_sessionid,
|
|
fac_result_naam,
|
|
fac_result_waarde)
|
|
VALUES (psessionid,
|
|
'kenmerkorgmailpath',
|
|
'MLD\M' || TO_CHAR (TRUNC (newkey / 1000), 'FM0000') || '___\M' || newkey || '\' || kkey_mail || '\');
|
|
|
|
mld.setmeldingstatus (newkey, 2, sender);
|
|
END;
|
|
ELSE
|
|
NULL;
|
|
END CASE;
|
|
|
|
IF errormsg IS NOT NULL
|
|
THEN
|
|
INSERT INTO fac_result (fac_result_sessionid,
|
|
fac_result_naam,
|
|
fac_result_waarde)
|
|
VALUES (psessionid, 'errormsg', errormsg);
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.writelog (
|
|
'PROCESSEMAIL',
|
|
'W',
|
|
'Mail kon niet verwerkt worden afzender: '
|
|
|| pfrom
|
|
|| '['
|
|
|| errormsg
|
|
|| ']',
|
|
'OTHERS (error '
|
|
|| SQLCODE
|
|
|| '/'
|
|
|| SUBSTR (SQLERRM, 1, 100)
|
|
|| ')');
|
|
INSERT INTO fac_result (fac_result_sessionid,
|
|
fac_result_naam,
|
|
fac_result_waarde)
|
|
VALUES (psessionid,
|
|
'errormsg',
|
|
'Database fout - Neem contact op met uw systeembeheerder');
|
|
END;
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
-- view om overzicht van de geplande acties te krijgen.
|
|
CREATE OR REPLACE VIEW bvb1_v_rap_gepl_acties
|
|
AS
|
|
SELECT o.mld_opdr_key,
|
|
pf.prs_perslid_naam_full,
|
|
o.mld_melding_key,
|
|
fac_activiteit_omschrijving,
|
|
fac_activiteit_periode,
|
|
DECODE (fac_activiteit_eenheid,
|
|
4, 'jaarlijks',
|
|
3, 'maandelijks',
|
|
2, 'wekelijks',
|
|
1, 'dagelijks') fac_activiteit_eenheid,
|
|
o.mld_opdr_datumbegin,
|
|
mld.getopdrachtstatusdate (o.mld_opdr_key, 6) mld_opdr_afgemeld
|
|
FROM fac_activiteit a,
|
|
mld_opdr ao,
|
|
mld_melding m,
|
|
mld_opdr o,
|
|
prs_v_perslid_fullnames_all pf
|
|
WHERE a.fac_activiteit_key = ao.fac_activiteit_key
|
|
AND ao.mld_melding_key = m.mld_melding_key
|
|
AND m.mld_melding_key = o.mld_melding_key
|
|
AND o.mld_uitvoerende_keys = pf.prs_perslid_key;
|
|
|
|
-- rapport om de opmerkingen van de inspecteur te zien
|
|
CREATE OR REPLACE VIEW bvb1_v_rap_deel_notities
|
|
AS
|
|
SELECT n.ins_deel_note_aanmaak,
|
|
n.ins_deel_note_omschrijving,
|
|
pf.prs_perslid_naam_full,
|
|
dg.ins_discipline_omschrijving,
|
|
dg.ins_srtgroep_omschrijving,
|
|
dg.ins_srtdeel_omschrijving,
|
|
dg.ins_srtdeel_upper,
|
|
dg.alg_gebouw_omschrijving,
|
|
dg.alg_gebouw_upper,
|
|
dg.alg_verdieping_omschrijving,
|
|
dg.alg_verdieping_code,
|
|
dg.alg_ruimte_nr,
|
|
dg.ins_deel_omschrijving,
|
|
dg.ins_deel_aantal,
|
|
dg.ins_deel_opmerking,
|
|
dg.ins_deel_vervaldatum
|
|
FROM ins_deel_note n,
|
|
ins_v_deel_gegevens dg,
|
|
prs_v_perslid_fullnames_all pf
|
|
WHERE n.ins_deel_key = dg.ins_deel_key
|
|
AND n.prs_perslid_key = pf.prs_perslid_key;
|
|
|
|
CREATE OR REPLACE VIEW bvb1_v_rap_conditiemetingen
|
|
AS
|
|
SELECT m.mld_melding_key,
|
|
l.alg_locatie_code complexnummer,
|
|
l.alg_locatie_omschrijving complexnaam,
|
|
aog.alg_gebouw_code clusternummer,
|
|
aog.alg_gebouw_naam clusternaam,
|
|
aog.alg_gebouw_groep gebouwgroep,
|
|
id.ins_discipline_omschrijving hoofdrecept,
|
|
isg.ins_srtgroep_omschrijving groeprecept,
|
|
isd.ins_srtdeel_omschrijving || ' (' || isd.ins_srtdeel_code || ')' subrecept,
|
|
d.ins_deel_omschrijving identificatie,
|
|
m.mld_melding_key gebreknummer,
|
|
m.mld_melding_datum datum_tijd,
|
|
TO_CHAR(m.MLD_MELDING_ACTIEDATUM, 'YYYY') uitvoerjaar,
|
|
TO_CHAR (mld_melding_datum, 'DD-MM-YYYY') datum,
|
|
pf.prs_perslid_naam_full inspecteur,
|
|
s.mld_statuses_omschrijving status,
|
|
std.mld_stdmelding_omschrijving gebrek,
|
|
m.mld_melding_omschrijving omschrijving,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mk,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrtab ut,
|
|
fac_usrdata ud
|
|
WHERE sk.mld_srtkenmerk_code = 'ERNST'
|
|
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
|
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
|
|
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
|
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
|
|
AND mk.mld_melding_key = m.mld_melding_key) ernst,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mk,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrtab ut,
|
|
fac_usrdata ud
|
|
WHERE sk.mld_srtkenmerk_code = 'OMVANG'
|
|
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
|
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
|
|
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
|
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
|
|
AND mk.mld_melding_key = m.mld_melding_key) omvang,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mk,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrtab ut,
|
|
fac_usrdata ud
|
|
WHERE sk.mld_srtkenmerk_code = 'INTENSITEIT'
|
|
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
|
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
|
|
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
|
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
|
|
AND mk.mld_melding_key = m.mld_melding_key) intensiteit,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mk,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrtab ut,
|
|
fac_usrdata ud
|
|
WHERE sk.mld_srtkenmerk_code = 'ASPECT1'
|
|
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
|
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
|
|
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
|
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
|
|
AND mk.mld_melding_key = m.mld_melding_key) veiligheid_gezondheid,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mk,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrtab ut,
|
|
fac_usrdata ud
|
|
WHERE sk.mld_srtkenmerk_code = 'ASPECT2'
|
|
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
|
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
|
|
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
|
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
|
|
AND mk.mld_melding_key = m.mld_melding_key) cultuurhistorische_waarde,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mk,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrtab ut,
|
|
fac_usrdata ud
|
|
WHERE sk.mld_srtkenmerk_code = 'ASPECT3'
|
|
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
|
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
|
|
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
|
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
|
|
AND mk.mld_melding_key = m.mld_melding_key) gebruik_en_bedrijfsproces,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mk,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrtab ut,
|
|
fac_usrdata ud
|
|
WHERE sk.mld_srtkenmerk_code = 'ASPECT4'
|
|
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
|
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
|
|
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
|
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
|
|
AND mk.mld_melding_key = m.mld_melding_key) technische_vervolgschade,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mk,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrtab ut,
|
|
fac_usrdata ud
|
|
WHERE sk.mld_srtkenmerk_code = 'ASPECT5'
|
|
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
|
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
|
|
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
|
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
|
|
AND mk.mld_melding_key = m.mld_melding_key) toename_klachtenonderhoud,
|
|
(SELECT fac_usrdata_omschr
|
|
FROM mld_kenmerkmelding mk,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk,
|
|
fac_kenmerkdomein kd,
|
|
fac_usrtab ut,
|
|
fac_usrdata ud
|
|
WHERE sk.mld_srtkenmerk_code = 'ASPECT6'
|
|
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
|
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
|
|
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
|
AND ut.fac_usrtab_key = kd.fac_usrtab_key
|
|
AND ud.fac_usrtab_key = ut.fac_usrtab_key
|
|
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
|
|
AND mk.mld_melding_key = m.mld_melding_key) beleving_esthetica,
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mk,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk
|
|
WHERE sk.mld_srtkenmerk_code = 'KOSTEN'
|
|
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
|
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
|
|
AND mk.mld_melding_key = m.mld_melding_key) kosten,
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mk,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk
|
|
WHERE sk.mld_srtkenmerk_code = 'EENHEID'
|
|
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
|
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
|
|
AND mk.mld_melding_key = m.mld_melding_key) eenheid,
|
|
(SELECT mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mk,
|
|
mld_kenmerk k,
|
|
mld_srtkenmerk sk
|
|
WHERE sk.mld_srtkenmerk_code = 'TAAKGROEP'
|
|
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
|
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
|
|
AND mk.mld_melding_key = m.mld_melding_key) taakgroep,
|
|
(SELECT k.mld_kenmerk_key
|
|
FROM mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE sk.mld_srtkenmerk_code = 'FOTO' AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key) foto
|
|
FROM mld_melding m,
|
|
mld_melding_object mo,
|
|
ins_deel d,
|
|
ins_srtdeel isd,
|
|
ins_srtgroep isg,
|
|
ins_discipline id,
|
|
alg_v_allonrgoed_gegevens aog,
|
|
alg_locatie l,
|
|
mld_statuses s,
|
|
prs_v_perslid_fullnames_all pf,
|
|
mld_stdmelding std,
|
|
mld_discipline md
|
|
WHERE m.mld_melding_key = mo.mld_melding_key
|
|
AND d.ins_deel_key = mo.ins_deel_key
|
|
AND d.ins_srtdeel_key = isd.ins_srtdeel_key
|
|
AND isd.ins_srtgroep_key = isg.ins_srtgroep_key
|
|
AND isg.ins_discipline_key = id.ins_discipline_key
|
|
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
|
|
AND l.alg_locatie_key = aog.alg_locatie_key
|
|
AND s.mld_statuses_key = m.mld_melding_status
|
|
AND m.prs_perslid_key = pf.prs_perslid_key
|
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND FAC.getsetting('cnd_gebreken_srtdisc_key') = md.ins_srtdiscipline_key;
|
|
|
|
-- RTM views
|
|
-- RTM voor openstaande meldingen.
|
|
CREATE OR REPLACE VIEW bvb1_v_rtm_meldingen
|
|
AS
|
|
WITH
|
|
datums
|
|
AS
|
|
( SELECT TRUNC (SYSDATE) - LEVEL + 1 datum
|
|
FROM DUAL
|
|
CONNECT BY LEVEL <= 30)
|
|
SELECT datum
|
|
fclt_f_datum,
|
|
mld_melding_key,
|
|
mld_stdmelding_omschrijving,
|
|
ins_discipline_omschrijving,
|
|
ins_discipline_key fclt_3d_discipline_key,
|
|
ins_srtdiscipline_omschrijving
|
|
FROM (SELECT datums.datum,
|
|
m.mld_melding_key,
|
|
std.mld_stdmelding_omschrijving,
|
|
d.ins_discipline_omschrijving,
|
|
d.ins_discipline_key,
|
|
ins_srtdiscipline_omschrijving
|
|
FROM mld_melding m, datums, mld_stdmelding std, ins_tab_discipline d, ins_srtdiscipline sd
|
|
WHERE 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 m.mld_melding_status NOT IN (1) -- Afgewezen
|
|
AND datums.datum BETWEEN mld_melding_datum AND COALESCE(MLD.getmeldingstatusdate(m.mld_melding_key, 5), SYSDATE +1));
|
|
|
|
-- KPI views voor meldingen
|
|
CREATE OR REPLACE VIEW bvb1_v_rap_meldingen_per_maand
|
|
AS
|
|
WITH
|
|
mld_melding_freezes
|
|
AS
|
|
(SELECT mld_melding_key,
|
|
mld_melding_datum,
|
|
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5), COALESCE(mld.getmeldingstatusdate (m.mld_melding_key, 1), SYSDATE + 600)) mld_melding_afgemeld,
|
|
mld_melding_einddatum_std,
|
|
ins_srtdiscipline_omschrijving
|
|
FROM mld_melding m,
|
|
mld_stdmelding std,
|
|
mld_discipline d,
|
|
ins_srtdiscipline sd
|
|
WHERE 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 m.fac_activiteit_key IS NULL),
|
|
maanden
|
|
AS
|
|
( SELECT LEVEL lvl
|
|
FROM DUAL
|
|
CONNECT BY LEVEL <= 12),
|
|
startdatum AS (SELECT ADD_MONTHS (TRUNC (SYSDATE, 'MM'), -12) datum FROM DUAL)
|
|
SELECT ADD_MONTHS (sd.datum, maanden.lvl - 1) maand,
|
|
'aangemaakt' status,
|
|
ins_srtdiscipline_omschrijving soortdisc,
|
|
m.mld_melding_key
|
|
FROM mld_melding_freezes m, maanden, startdatum sd
|
|
WHERE mld_melding_datum BETWEEN ADD_MONTHS (sd.datum, maanden.lvl - 1) AND ADD_MONTHS (sd.datum, maanden.lvl)
|
|
UNION ALL
|
|
SELECT ADD_MONTHS (sd.datum, maanden.lvl - 1) maand,
|
|
'afgemeld op tijd',
|
|
ins_srtdiscipline_omschrijving soortdisc,
|
|
m.mld_melding_key
|
|
FROM mld_melding_freezes m, maanden, startdatum sd
|
|
WHERE m.mld_melding_afgemeld BETWEEN ADD_MONTHS (sd.datum, maanden.lvl - 1)
|
|
AND ADD_MONTHS (sd.datum, maanden.lvl)
|
|
AND mld_melding_afgemeld < mld_melding_einddatum_std
|
|
UNION ALL
|
|
SELECT ADD_MONTHS (sd.datum, maanden.lvl - 1) maand,
|
|
'afgemeld te laat',
|
|
ins_srtdiscipline_omschrijving soortdisc,
|
|
m.mld_melding_key
|
|
FROM mld_melding_freezes m, maanden, startdatum sd
|
|
WHERE m.mld_melding_afgemeld BETWEEN ADD_MONTHS (sd.datum, maanden.lvl - 1)
|
|
AND ADD_MONTHS (sd.datum, maanden.lvl)
|
|
AND mld_melding_afgemeld > mld_melding_einddatum_std
|
|
UNION ALL
|
|
SELECT ADD_MONTHS (sd.datum, maanden.lvl - 1) maand,
|
|
'afgemeld',
|
|
ins_srtdiscipline_omschrijving soortdisc,
|
|
m.mld_melding_key
|
|
FROM mld_melding_freezes m, maanden, startdatum sd
|
|
WHERE m.mld_melding_afgemeld BETWEEN ADD_MONTHS (sd.datum, maanden.lvl - 1) AND ADD_MONTHS (sd.datum, maanden.lvl)
|
|
UNION ALL
|
|
SELECT ADD_MONTHS (sd.datum, maanden.lvl - 1) maand,
|
|
'open',
|
|
ins_srtdiscipline_omschrijving soortdisc,
|
|
m.mld_melding_key
|
|
FROM mld_melding_freezes m, maanden, startdatum sd
|
|
WHERE m.mld_melding_datum < ADD_MONTHS (sd.datum, maanden.lvl)
|
|
AND m.mld_melding_afgemeld > ADD_MONTHS (sd.datum, maanden.lvl);
|
|
|
|
-- View om QR-codes bij objecten te tonen.
|
|
CREATE OR REPLACE VIEW bvb1_v_rap_qr_deel
|
|
AS
|
|
SELECT fac_bookmark_naam,
|
|
fac_bookmark_id,
|
|
ins_discipline_omschrijving,
|
|
ins_srtgroep_omschrijving,
|
|
ins_srtdeel_omschrijving,
|
|
ins_deel_omschrijving,
|
|
alg_locatie_key,
|
|
alg_gebouw_omschrijving,
|
|
ins_deel_aanmaak,
|
|
ins_deel_key
|
|
FROM fac_bookmark b, ins_v_deel_gegevens d
|
|
WHERE fac_bookmark_expire IS NULL
|
|
AND fac_bookmark_id = '5XaFlgljfYX2_ta-';
|
|
|
|
CREATE OR REPLACE VIEW bvb1_rap_cal_planning
|
|
AS
|
|
SELECT m.mld_melding_behandelaar_key xuser_key,
|
|
pf.prs_perslid_naam_full behandelaar,
|
|
m.mld_melding_key || ' ' ||
|
|
SUBSTR(p.prs_perslid_voornaam, 1,1) ||
|
|
SUBSTR(p.prs_perslid_naam, 1,1) || ' ' ||
|
|
mld_melding_onderwerp title,
|
|
mld_melding_actiedatum tot,
|
|
mld_melding_actiedatum van,
|
|
m.mld_melding_key item_key,
|
|
SUBSTR (FLX.getflex ('PRS', 1000, m.mld_melding_behandelaar_key, 'P'), 1, 7) color,
|
|
SUBSTR (FLX.getflex ('PRS', 1000, m.mld_melding_behandelaar_key, 'P'), 9, 7) textcolor,
|
|
'?u=melding' || CHR (38) || 'k=' || m.mld_melding_key url
|
|
FROM mld_melding m, prs_v_perslid_fullnames_all pf, prs_perslid p
|
|
WHERE mld_melding_actiedatum IS NOT NULL
|
|
AND m.mld_melding_behandelaar_key = p.prs_perslid_key
|
|
AND m.mld_melding_behandelaar_key = pf.prs_perslid_key
|
|
AND mld_melding_status not in (1, 5, 6) -- Afgewezen, afgemeld, historie
|
|
UNION ALL
|
|
SELECT NULL xuser_key,
|
|
'<geen behandelaar>' behandelaar,
|
|
m.mld_melding_key || ' ' || mld_melding_onderwerp title,
|
|
mld_melding_actiedatum tot,
|
|
mld_melding_actiedatum van,
|
|
m.mld_melding_key item_key,
|
|
'#FF0000',
|
|
'#FFFFFF',
|
|
'?u=melding' || CHR (38) || 'k=' || m.mld_melding_key url
|
|
FROM mld_melding m
|
|
WHERE mld_melding_actiedatum IS NOT NULL
|
|
AND mld_melding_status not in (1, 5, 6) -- Afgewezen, afgemeld, historie
|
|
AND m.mld_melding_behandelaar_key IS NULL;
|
|
|
|
-- View om de relatie tussen standaardmeldingen en objectstructuur aan te geven.
|
|
CREATE OR REPLACE VIEW bvb1_v_rap_stdmelding_srtinst
|
|
AS
|
|
SELECT mss.mld_stdmelding_srtinst_key,
|
|
sd.ins_srtdiscipline_omschrijving,
|
|
md.ins_discipline_omschrijving vakgroep,
|
|
std.mld_stdmelding_omschrijving,
|
|
mss.ins_srtinstallatie_niveau,
|
|
isd.ins_srtdeel_omschrijving,
|
|
isg.ins_srtgroep_omschrijving,
|
|
id.ins_discipline_omschrijving
|
|
FROM mld_stdmelding_srtinst mss,
|
|
ins_srtgroep isg,
|
|
ins_srtdeel isd,
|
|
mld_stdmelding std,
|
|
ins_discipline id,
|
|
mld_discipline md,
|
|
ins_srtdiscipline sd
|
|
WHERE isg.ins_srtgroep_key = isd.ins_srtgroep_key
|
|
AND isg.ins_discipline_key = id.ins_discipline_key
|
|
AND mss.mld_stdmelding_key = std.mld_stdmelding_key
|
|
AND std.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND ( mss.ins_srtinstallatie_niveau = 'S' AND mss.ins_srtinstallatie_key = isd.ins_srtdeel_key
|
|
OR mss.ins_srtinstallatie_niveau = 'G' AND mss.ins_srtinstallatie_key = isg.ins_srtgroep_key
|
|
OR mss.ins_srtinstallatie_niveau = 'D' AND mss.ins_srtinstallatie_key = isg.ins_discipline_key);
|
|
|
|
CREATE OR REPLACE PROCEDURE bvb1_daily
|
|
AS
|
|
-- accepteer de meldingen die aangemaakt zijn met de geplande acties. Anders komen ze niet in de kalender te staan.
|
|
CURSOR c IS
|
|
SELECT mld_melding_key
|
|
FROM mld_melding
|
|
WHERE mld_melding_opmerking LIKE 'Automatisch gegenereerd door activiteit%' AND mld_melding_status = 2;
|
|
|
|
BEGIN
|
|
FOR rec IN c
|
|
LOOP
|
|
MLD.setmeldingstatus (rec.mld_melding_key, 4, NULL);
|
|
UPDATE mld_melding
|
|
SET mld_melding_actiedatum = SYSDATE
|
|
WHERE mld_melding_key = rec.mld_melding_key;
|
|
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
------ 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
|