HOUT#25319 MF-mail naar melding

svn path=/Customer/trunk/; revision=16565
This commit is contained in:
Maarten van der Heide
2013-01-17 16:50:31 +00:00
parent 9727bbb3dc
commit 493bb6b01f

View File

@@ -3271,7 +3271,166 @@ AS
AND o.mld_uitvoerende_keys = pf.prs_perslid_key) ou
ON TO_CHAR (wk.dag, 'YYYY-IW') = ou.wk;
BEGIN fac.registercustversion('HOUT', 26); END;
/* Formatted on 17-1-2013 17:04:16 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE HOUT_processemail (pfrom IN VARCHAR2,
pto IN VARCHAR2,
psubject IN VARCHAR2,
pbody IN VARCHAR2,
pextra IN VARCHAR2)
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_perslid_key NUMBER (10);
v_kostenplaats_key NUMBER (10);
v_stdmelding_key NUMBER (10);
v_stdmelding_uvt NUMBER (8, 5);
v_deel_key NUMBER (10);
v_onrgoed_keys NUMBER (10);
v_locatie_key NUMBER (10);
v_melding_key NUMBER (10);
BEGIN
CASE
WHEN UPPER (pto) LIKE 'PRINTERS@%'
THEN
v_errormsg := 'Fout bij bepalen printer-melder';
-- Valideer bestaan van persoon met key=10081 (Externe partij/leverancier)?
SELECT p.prs_perslid_key, a.prs_kostenplaats_key
INTO v_perslid_key, v_kostenplaats_key
FROM prs_v_aanwezigperslid p, prs_afdeling a
WHERE p.prs_perslid_key = 10081
AND p.prs_afdeling_key = a.prs_afdeling_key;
v_errormsg := 'Fout bij bepalen printer-melding';
-- Valideer bestaan van stdmelding met key=2481 (MF Ricoh automatische melding)?
SELECT sm.mld_stdmelding_key, sm.mld_stdmelding_uitvoertijd
INTO v_stdmelding_key, v_stdmelding_uvt
FROM mld_stdmelding sm
WHERE sm.mld_stdmelding_key = 2481
AND sm.mld_stdmelding_verwijder IS NULL;
v_errormsg :=
'Fout bij bepalen printer-object: '
|| SUBSTR (pfrom, 1, INSTR (pfrom, '@') - 1);
-- Valideer de sender in pfrom: kennen we deze als object in de groep met
-- key=21 (Multifunctionals)?
SELECT d.ins_deel_key, og.alg_onrgoed_keys, og.alg_locatie_key
INTO v_deel_key, v_onrgoed_keys, v_locatie_key
FROM ins_v_aanwezigdeel d,
ins_v_aanwezigsrtdeel sd,
ins_v_alg_onroerendgoed og
WHERE UPPER (d.ins_deel_omschrijving) LIKE
UPPER (SUBSTR (pfrom, 1, INSTR (pfrom, '@') - 1)) || '%'
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = 21
AND d.ins_alg_ruimte_key = og.alg_onrgoed_keys;
-- suggested extensions:
-- check for MLDUSE-write autorisations
-- parse the subject to find the appropriate stdmelding, if uniquely possible
-- append (as a note?) to an existing melding if #key is found in the subject
v_errormsg := 'Fout bij toevoegen melding';
INSERT INTO mld_melding (mld_melding_module,
mld_meldbron_key,
mld_alg_locatie_key,
mld_alg_onroerendgoed_keys,
mld_melding_datum,
mld_melding_omschrijving,
mld_melding_status,
mld_melding_uitvoertijd,
mld_stdmelding_key,
prs_perslid_key,
prs_perslid_key_voor,
prs_kostenplaats_key,
mld_melding_spoed)
VALUES ('MLD',
4, -- email
v_locatie_key,
v_onrgoed_keys,
SYSDATE,
SUBSTR (psubject, 1, 4000),
NULL,
v_stdmelding_uvt,
v_stdmelding_key,
v_perslid_key,
v_perslid_key,
v_kostenplaats_key,
3) -- prio normaal
RETURNING mld_melding_key INTO v_melding_key;
v_errormsg := 'Fout bij toevoegen melding-object';
INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key)
VALUES (v_melding_key, v_deel_key);
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
ELSE
INSERT INTO fac_result (
fac_result_sessionid,
fac_result_naam,
fac_result_waarde
)
VALUES (
'hMailServer',
'errormsg',
'Onvanger ongeldig - Neem contact op met uw systeembeheerder '
);
END CASE;
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 ('PROCESSEMAIL',
'E',
'HOUT_processemail afgebroken!',
'[' || pfrom || '] ' || v_errormsg);
INSERT INTO fac_result (
fac_result_sessionid,
fac_result_naam,
fac_result_waarde
)
VALUES (
'hMailServer',
'errormsg',
'Database fout - Neem contact op met uw systeembeheerder '
);
COMMIT;
END;
/
/* Formatted on 14-1-2013 14:52:58 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW hout_v_rap_mail_error
(
hide_f_offset,
datum,
hint,
error
)
AS
SELECT SYSDATE - imp_log_datum,
imp_log_datum,
imp_log_hint,
imp_log_omschrijving
FROM imp_log
WHERE imp_log_applicatie = 'PROCESSEMAIL'
AND imp_log_datum > SYSDATE - 30;
BEGIN fac.registercustversion('HOUT', 27); END;
/
BEGIN adm.systrackscript('$Workfile: hout.sql $', '$Revision$', 0); END;
/