KFSG#57062 -- Klachtenrapportage uitbreiden met 3 kolommen.

svn path=/Customer/trunk/; revision=41787
This commit is contained in:
Arthur Egberink
2019-03-26 08:16:36 +00:00
parent 0467f8676b
commit 1137cda680

View File

@@ -18,35 +18,163 @@ SET DEFINE OFF
CREATE OR REPLACE PACKAGE KFSG
AS
PROCEDURE set_werkplek;
PROCEDURE set_werkplek;
FUNCTION get_kenmerk (p_module IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_link_key IN NUMBER)
RETURN VARCHAR2;
FUNCTION get_kenmerkwaarde (p_kenmerk_type VARCHAR2,
p_kenmerkdomein_key NUMBER,
p_kenmerk_waarde VARCHAR2)
RETURN VARCHAR2;
END;
/
CREATE OR REPLACE PACKAGE BODY KFSG
AS
-- Geef alle mensen een werkplek in het Schiphol gebouw (key
PROCEDURE set_werkplek
AS
-- Geef alle mensen een werkplek in het Schiphol gebouw (key
PROCEDURE set_werkplek
AS
CURSOR c
IS
SELECT *
FROM prs_perslid p
WHERE NOT EXISTS
(SELECT prs_perslidwerkplek_key
FROM prs_perslidwerkplek pwp
WHERE pwp.prs_perslid_key = p.prs_perslid_key)
AND SUBSTR (prs_perslid_oslogin, 1, 1) <> '_';
BEGIN
FOR rec IN c
LOOP
PRS.movetoruimte (rec.prs_perslid_key,
4963,
'R',
0);
END LOOP;
CURSOR c
IS
SELECT *
FROM prs_perslid p
WHERE NOT EXISTS
(SELECT prs_perslidwerkplek_key
FROM prs_perslidwerkplek pwp
WHERE pwp.prs_perslid_key = p.prs_perslid_key)
AND SUBSTR (prs_perslid_oslogin, 1, 1) <> '_';
COMMIT;
END;
BEGIN
FUNCTION get_kenmerk (p_module IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_link_key IN NUMBER)
RETURN VARCHAR2
AS
v_kenmerk_type mld_srtkenmerk.mld_srtkenmerk_kenmerktype%TYPE;
v_kenmerk_waarde mld_kenmerkmelding.mld_kenmerkmelding_waarde%TYPE;
v_kenmerkdomein_key fac_kenmerkdomein.fac_kenmerkdomein_key%TYPE;
v_kenmerk_niveau ins_kenmerk.ins_kenmerk_niveau%TYPE;
BEGIN
CASE p_module
WHEN 'MLD'
THEN
SELECT mld_srtkenmerk_kenmerktype,
sk.fac_kenmerkdomein_key,
km.mld_kenmerkmelding_waarde
INTO v_kenmerk_type, v_kenmerkdomein_key, v_kenmerk_waarde
FROM mld_v_aanwezigkenmerkmelding km,
mld_kenmerk k,
mld_srtkenmerk sk
WHERE km.mld_melding_key = p_link_key
AND km.mld_kenmerk_key = p_kenmerk_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
WHEN 'CNT'
THEN
SELECT cnt_srtkenmerk_kenmerktype,
sk.fac_kenmerkdomein_key,
kc.cnt_kenmerkcontract_waarde
INTO v_kenmerk_type, v_kenmerkdomein_key, v_kenmerk_waarde
FROM cnt_kenmerkcontract kc,
cnt_kenmerk k,
cnt_srtkenmerk sk
WHERE kc.cnt_contract_key = p_link_key
AND kc.cnt_kenmerk_key = p_kenmerk_key
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key;
WHEN 'ALG'
THEN
SELECT alg_kenmerk_kenmerktype,
k.fac_kenmerkdomein_key,
aogk.alg_onrgoedkenmerk_waarde
INTO v_kenmerk_type, v_kenmerkdomein_key, v_kenmerk_waarde
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
WHERE aogk.alg_onrgoed_key = p_link_key
AND aogk.alg_kenmerk_key = p_kenmerk_key
AND aogk.alg_kenmerk_key = k.alg_kenmerk_key;
WHEN 'INS'
THEN
SELECT k.ins_kenmerk_niveau
INTO v_kenmerk_niveau
FROM ins_kenmerk k
WHERE ins_kenmerk_key = p_kenmerk_key;
FOR rec IN c
LOOP
PRS.movetoruimte (rec.prs_perslid_key, 4963, 'R', 0);
END LOOP;
IF v_kenmerk_niveau = 'C'
THEN
SELECT sk.ins_srtkenmerk_kenmerktype,
sk.fac_kenmerkdomein_key,
ikds.ins_kmdeelsrtcontr_waarde
INTO v_kenmerk_type,
v_kenmerkdomein_key,
v_kenmerk_waarde
FROM ins_kmdeelsrtcontr ikds,
ins_kenmerk k,
ins_srtkenmerk sk
WHERE ikds.ins_kmdeelsrtcontr_key = p_link_key
AND ikds.ins_kmdeelsrtcontr_verwijder IS NULL
AND ikds.ins_kenmerk_key = p_kenmerk_key
AND ikds.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
ELSE
SELECT sk.ins_srtkenmerk_kenmerktype,
sk.fac_kenmerkdomein_key,
ikd.ins_kenmerkdeel_waarde
INTO v_kenmerk_type,
v_kenmerkdomein_key,
v_kenmerk_waarde
FROM ins_kenmerkdeel ikd,
ins_kenmerk k,
ins_srtkenmerk sk
WHERE ikd.ins_deel_key = p_link_key
AND ikd.ins_kenmerkdeel_verwijder IS NULL
AND ikd.ins_kenmerk_key = p_kenmerk_key
AND ikd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
END IF;
END CASE;
COMMIT;
END;
RETURN kfsg.get_kenmerkwaarde (v_kenmerk_type,
v_kenmerkdomein_key,
v_kenmerk_waarde);
END;
FUNCTION get_kenmerkwaarde (p_kenmerk_type VARCHAR2,
p_kenmerkdomein_key NUMBER,
p_kenmerk_waarde VARCHAR2)
RETURN VARCHAR2
AS
v_result VARCHAR2 (4000);
BEGIN
IF p_kenmerk_type = 'R' OR p_kenmerk_type = 'S'
THEN
v_result :=
fac.getdomeinwaarde (p_kenmerkdomein_key, p_kenmerk_waarde);
ELSIF p_kenmerk_type = 'D'
THEN
v_result :=
TO_CHAR (fac.safe_to_date (p_kenmerk_waarde, 'dd-mm-yyyy'),
'yyyy-mm-dd');
ELSE
v_result := p_kenmerk_waarde;
END IF;
RETURN v_result;
END;
END;
/
@@ -451,6 +579,32 @@ AS
AND a.prs_kostenplaats_key = ka.prs_kostenplaats_key
AND geg.datum < SYSDATE;
-- KFSG#57062: Klachtenrapportage
CREATE OR REPLACE VIEW kfsg_v_rap_klachten
AS
SELECT d.ins_discipline_omschrijving,
m.mld_melding_onderwerp,
aogk.alg_gebouw_naam,
pf.prs_perslid_naam_full,
m.mld_melding_datum,
fac.gettrackingdate ('MLDAFM', m.mld_melding_key)
melding_afgemeld,
s.mld_statuses_omschrijving,
m.mld_melding_opmerking
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
alg_v_allonrgoed_gegevens aogk,
mld_statuses s,
mld_stdmelding std,
ins_tab_discipline d
WHERE m.mld_melding_status = mld_statuses_key
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_alg_onroerendgoed_keys = aogk.alg_onroerendgoed_keys
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key -- klacht
AND d.ins_srtdiscipline_key = 23;
-- KFSG#51990: Facturatieproces (reverse billing zoals bij NS)!
CREATE OR REPLACE VIEW kfsg_v_rap_actual_cost_tot
(