BRCF#73270 -- Toekennen van melder en locatie via kostenplaats M2M

svn path=/Customer/trunk/; revision=56592
This commit is contained in:
Robin Stoker
2022-07-15 13:55:07 +00:00
parent f92c5562a7
commit c9205cecf3

View File

@@ -264,6 +264,10 @@ AS
v_automailkey NUMBER (10);
v_email prs_perslid.prs_perslid_email%TYPE;
v_negeer NUMBER (10);
v_kostenplaats VARCHAR2 (4000);
v_kp_key NUMBER (10);
v_locatie_key NUMBER (10);
v_afdeling_key NUMBER (10);
BEGIN
-- Niet alle mails komen van te herleiden personen, dus als sender leeg is dan gebruiken we het generieke account.
@@ -285,17 +289,6 @@ BEGIN
WHERE UPPER (p.prs_perslid_email) = UPPER (pfrom)
AND p.prs_perslid_verwijder IS NULL)) x;
IF sender IS NULL
THEN
SELECT prs_perslid_key, d.prs_kostenplaats_key
INTO sender, kostenplaats
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND prs_perslid_oslogin = '_HMAIL';
END IF;
-- Geautomatiseerde mails hebben altijd hetzelfde onderwerp, zo kan via een eigen tabel de melding achterhaald worden.
SELECT fac.safe_to_number (MIN(fac_usrdata_prijs))
INTO v_automailkey
@@ -339,6 +332,8 @@ END IF;
1,
1,
'i'); -- 1234, of 12345, of 12, of 1 etc.
v_kostenplaats := REGEXP_SUBSTR(psubject, '\d+$'); -- Laatste getal in het onderwerp is de kostenplaats.
-- v_srtdisc :=
-- REGEXP_SUBSTR (v_mldnum,
@@ -350,6 +345,44 @@ END IF;
-- v_mldkey := fac.safe_to_number (SUBSTR (v_mldnum, LENGTH (v_srtdisc) + 1)); -- 123, of 12345, of 12, of 1
v_mldkey := fac.safe_to_number (v_mldnum);
SELECT MAX (prs_kostenplaats_key)
INTO v_kp_key
FROM prs_kostenplaats
WHERE prs_kostenplaats_upper = UPPER (v_kostenplaats)
AND prs_kostenplaats_verwijder IS NULL;
IF v_kp_key IS NOT NULL
THEN
SELECT g.alg_locatie_key
INTO v_locatie_key
FROM alg_gebouw g, prs_afdeling p
WHERE p.prs_afdeling_upper = 'CC-'||g.alg_gebouw_upper
AND p.prs_kostenplaats_key = v_kp_key
AND p.prs_afdeling_verwijder IS NULL;
SELECT MAX (p.prs_afdeling_key)
INTO v_afdeling_key
FROM alg_gebouw g, prs_afdeling p
WHERE p.prs_kostenplaats_key = v_kp_key
AND p.prs_afdeling_verwijder IS NULL;
SELECT MAX (prs_perslid_key)
INTO sender
FROM prs_perslid
WHERE prs_afdeling_key = v_afdeling_key
AND prs_perslid_verwijder IS NULL;
END IF;
IF sender IS NULL
THEN
SELECT prs_perslid_key, d.prs_kostenplaats_key
INTO sender, kostenplaats
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND prs_perslid_oslogin = '_HMAIL';
END IF;
-- Uit onderwerp is de vermoedelijke juiste v_mldkey geparsed.
-- Final check: is de afzender van de mail dezelfde als die van v_mldkey, deze afzender (mailadres) staat in flexprop (zie verderop hieronder in gedeelte bij insert melding).
@@ -489,12 +522,12 @@ END IF;
VALUES ('MLD',
4, -- email
SYSDATE,
361, -- Maarssen Hoofdkantoor
COALESCE (v_locatie_key, 361), -- Maarssen Hoofdkantoor wanneer locatie zelf leeg is
SUBSTR (psubject, 1, 75), -- onderwerp is max 80 posities
CASE
WHEN LENGTH (psubject) > 75
THEN
'Volledig onderwerp: ' || psubject -- wanneeer het onderwerp is afgekapt plakken we het volledige onderwerp in de omschrijving
'Volledig onderwerp: ' || psubject -- wanneer het onderwerp is afgekapt plakken we het volledige onderwerp in de omschrijving
ELSE
NULL
END