DHLD#84268 Implementatie gemeente Den Helder, Mail2Melding - ook reply's op opdrachten

svn path=/Customer/trunk/; revision=67032
This commit is contained in:
Sander Schepers
2024-11-14 10:07:46 +00:00
parent 7674f74d33
commit 32880bde6c

View File

@@ -174,7 +174,6 @@ AS
v_stduitvoer mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE;
v_errormsg fac_result.fac_result_waarde%TYPE;
v_from VARCHAR2 (4000);
-- v_fromaddr VARCHAR2 (4000);
v_body VARCHAR2 (4000);
m_body VARCHAR2 (4000);
v_mldkey mld_melding.mld_melding_key%TYPE;
@@ -188,12 +187,13 @@ AS
v_typeopdr_key NUMBER (10);
v_count NUMBER (10);
c_onbekend_key NUMBER (10) := 3; -- Facilitor
v_van_email VARCHAR2 (255) := '';
-- v_van_email VARCHAR2 (255) := '';
BEGIN
v_sender := 3; --Standaard de persoon Facilitor
v_stdmelding := fac.safe_to_number (fac.getsetting ('defaultstdmelding'));
v_mailorigin := 261; --Kenmerk_key oorspronkelijke mail
v_mailorigin := 362; --Kenmerk_key oorspronkelijke mail
v_mailattach := 1; --Kenmerk_key bijlagen
v_typeopdr_key := 5; --Opdrachttype Standaard
-- Bepalen Stroming: Facilitair of ICT (of anders)
CASE
@@ -231,7 +231,8 @@ BEGIN
-- Valideer de sender in pfrom: kennen we deze?
v_errormsg := 'Valideren afzender';
SELECT MIN (p.prs_perslid_key), MIN (d.prs_kostenplaats_key)
SELECT COALESCE (MIN (p.prs_perslid_key), c_onbekend_key),
MIN (d.prs_kostenplaats_key)
INTO v_sender, v_kostenplaats
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
@@ -364,44 +365,7 @@ BEGIN
END IF;
WHEN v_stroming = 'opdracht'
THEN
-- Probeer noteur te bepalen op basis van e-mail adres tussen '<>' na eerste voorkomen 'Van:'!
v_errormsg := 'Fout bepalen noteur';
-- Valideer de sender in v_from: kennen we deze?
SELECT MIN (prs_perslid_key),
MIN (d.prs_kostenplaats_key),
p.prs_perslid_email
INTO v_sender, v_kostenplaats, v_van_email
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND prs_perslid_verwijder IS NULL
AND UPPER (p.prs_perslid_email) = UPPER (v_from);
SELECT COUNT (*)
INTO v_count
FROM prs_contactpersoon
WHERE prs_contactpersoon_email IS NULL
AND prs_perslid_key IS NOT NULL
AND UPPER (prs_contactpersoon_email) LIKE
UPPER (v_van_email) || '%';
IF v_count = 1
THEN
SELECT prs_perslid_key
INTO v_perslid_key
FROM prs_contactpersoon
WHERE prs_contactpersoon_email IS NULL
AND prs_perslid_key IS NOT NULL
AND UPPER (prs_contactpersoon_email) LIKE
UPPER (v_van_email) || '%';
ELSE -- Noteur kan niet 1-duidig worden bepaald, dus Onbekend!
SELECT prs_perslid_key
INTO v_perslid_key
FROM prs_v_aanwezigperslid
WHERE prs_perslid_key = c_onbekend_key;
END IF;
v_errormsg := 'Fout bepalen opdracht';
v_errormsg := 'Fout: de opdracht id kon niet worden bepaald';
v_opdracht_id := psubject;
IF REGEXP_INSTR (v_opdracht_id, '\d') > 0
@@ -416,7 +380,9 @@ BEGIN
REGEXP_INSTR (v_opdracht_id, '\s') - 1); -- Gedeelte tot eerste white space in v_exist_ticket!
END IF;
v_errormsg := 'Fout bepalen opdracht ' || v_opdracht_id;
v_errormsg :=
'Fout: het opdrachtnummer kon niet worden bepaald'
|| v_opdracht_id;
SELECT mld_opdr_key, mld_typeopdr_key
INTO v_opdracht_key, v_typeopdr_key
@@ -426,8 +392,6 @@ BEGIN
|| TO_CHAR (mld_opdr_bedrijfopdr_volgnr) =
SUBSTR (v_opdracht_id, REGEXP_INSTR (v_opdracht_id, '\d'));
v_errormsg := 'Fout toevoegen opdracht-notitie';
INSERT INTO mld_opdr_note (mld_opdr_key,
@@ -435,20 +399,28 @@ BEGIN
mld_opdr_note_omschrijving)
VALUES (
v_opdracht_key,
v_perslid_key,
pfrom
|| CHR (13)
|| CHR (10)
|| psubject
|| CHR (13)
|| CHR (10)
|| SUBSTR (v_body, 1, 2000));
v_errormsg := 'Fout bijwerken opdracht-kleurbolletje';
UPDATE mld_opdr
SET mld_opdr_flag = 1 -- Zwart
WHERE mld_opdr_key = v_opdracht_key;
v_sender,
SUBSTR (
REPLACE (
SUBSTR (
'Mail van: '
|| v_from
|| ':'
|| CHR (13)
|| CHR (10)
|| psubject
|| CHR (13)
|| CHR (10)
|| v_body,
1,
4000),
CHR (13)
|| CHR (10)
|| CHR (13)
|| CHR (10),
CHR (13) || CHR (10)),
1,
4000)); -- verwijder onnodige witregels
-- Find the lowest volgnummer of the Folder-flexfield.
v_errormsg := 'Fout toevoegen opdracht-bijlage';
@@ -518,6 +490,7 @@ EXCEPTION
END;
/
------ payload end ------
SET DEFINE OFF