KMMO#74134 -- Klachtenafhandeling in Facilitor
svn path=/Customer/trunk/; revision=57186
This commit is contained in:
134
KMMO/kmmo.sql
134
KMMO/kmmo.sql
@@ -27,6 +27,14 @@ CREATE OR REPLACE PACKAGE KMMO AS
|
||||
-- PACKAGES voor de KMMO specifieke rapportages
|
||||
TYPE t_cursor IS REF CURSOR;
|
||||
PROCEDURE rap_bezetting_rondleider (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor);
|
||||
|
||||
PROCEDURE processemail (pfrom IN VARCHAR2,
|
||||
pto IN VARCHAR2,
|
||||
psubject IN VARCHAR2,
|
||||
pbody IN VARCHAR2,
|
||||
psessionid IN VARCHAR2,
|
||||
pemailkey IN NUMBER);
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -108,6 +116,125 @@ CREATE OR REPLACE PACKAGE BODY KMMO AS
|
||||
ORDER BY sp.prs_srtperslid_omschrijving;
|
||||
|
||||
END rap_bezetting_rondleider;
|
||||
|
||||
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;
|
||||
kostenplaats prs_afdeling.prs_kostenplaats_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
|
||||
|
||||
CASE
|
||||
WHEN UPPER (pto) LIKE 'FEEDBACK@%'
|
||||
THEN
|
||||
defaultstdmelding := 441;
|
||||
kkey_att := 1;
|
||||
kkey_mail := 541;
|
||||
sender := 1841; -- Ontvangen feedback
|
||||
|
||||
-- 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,
|
||||
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,
|
||||
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);
|
||||
|
||||
INSERT INTO fac_result (fac_result_sessionid,
|
||||
fac_result_naam,
|
||||
fac_result_waarde)
|
||||
VALUES (psessionid,
|
||||
'maillog',
|
||||
'Geregistreerd onder melding ' || newkey);
|
||||
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;
|
||||
/
|
||||
|
||||
@@ -1107,7 +1234,7 @@ AS
|
||||
o.mld_melding_key
|
||||
|| '/'
|
||||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||||
|| ' ('
|
||||
|| ' ' || DECODE(SUBSTR(rog.res_ruimte_nr, 1,1), 'V', 'VC', 'BT') || ' ('
|
||||
|| so.mld_statusopdr_omschrijving
|
||||
|| DECODE(r.prs_perslid_key, o.mld_uitvoerende_keys, '', ' - ' || p.prs_perslid_voornaam)
|
||||
|| ')' title,
|
||||
@@ -1130,9 +1257,12 @@ AS
|
||||
|| CHR (38)
|
||||
|| 'k='
|
||||
|| o.mld_opdr_key) url
|
||||
FROM mld_opdr o, mld_statusopdr so, prs_perslid p,
|
||||
FROM mld_opdr o, mld_melding m, res_rsv_ruimte rrr, res_v_ruimte_opstel_gegevens rog, mld_statusopdr so, prs_perslid p,
|
||||
(SELECT prs_perslid_key FROM fac_gebruikersgroep WHERE fac_groep_key = 321) r -- rondleiders
|
||||
WHERE mld_typeopdr_key = 241 -- rondleidingen
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
AND m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||||
AND rrr.res_ruimte_opstel_key = rog.res_ruimte_opstel_key
|
||||
AND o.mld_statusopdr_key = so.mld_statusopdr_key
|
||||
AND o.mld_uitvoerende_keys = p.prs_perslid_key
|
||||
AND o.mld_opdr_einddatum > ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -3)
|
||||
|
||||
Reference in New Issue
Block a user