VRTW#75011 -- Bijlage kenmerk mail2melding aangepast
svn path=/Customer/trunk/; revision=57776
This commit is contained in:
497
VRTW/vrtw.sql
497
VRTW/vrtw.sql
@@ -3,20 +3,22 @@
|
||||
--
|
||||
-- Script containing customer specific sql statements for the VRTW database
|
||||
|
||||
DEFINE thisfile = 'vrtw.sql'
|
||||
DEFINE dbuser = '^VRTW'
|
||||
DEFINE thisfile = 'VRTW.SQL'
|
||||
DEFINE dbuser = 'VRTW'
|
||||
|
||||
SET ECHO ON
|
||||
SET DEFINE ON
|
||||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||||
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
|
||||
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
||||
WHENEVER SQLERROR CONTINUE;
|
||||
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
||||
SPOOL &fcltlogfile
|
||||
WHENEVER SQLERROR EXIT;
|
||||
SELECT adm.checkscriptcust('&dbuser') AS fcltcusterr FROM DUAL;
|
||||
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
||||
WHENEVER SQLERROR CONTINUE;
|
||||
PROMPT &fcltcusterr
|
||||
---------------------------------------
|
||||
PROMPT &fcltcusttxt
|
||||
---------------------------------------
|
||||
SET DEFINE OFF
|
||||
|
||||
------ payload begin ------
|
||||
@@ -183,6 +185,7 @@ END vrtw_update_prs;
|
||||
-- Rapport voor de brandmeester van dienst om zo makkelijk in te zien wat er speelt op een locatie (beperkt tot Almelo, Hengelo, Enschede)
|
||||
CREATE OR REPLACE VIEW vrtw_v_rap_bmvd
|
||||
(
|
||||
melding_datum,
|
||||
locatie,
|
||||
type_melding,
|
||||
vakgroep,
|
||||
@@ -194,7 +197,8 @@ CREATE OR REPLACE VIEW vrtw_v_rap_bmvd
|
||||
status
|
||||
)
|
||||
AS
|
||||
SELECT l.alg_locatie_omschrijving,
|
||||
SELECT m.mld_melding_datum,
|
||||
l.alg_locatie_omschrijving,
|
||||
sd.ins_srtdiscipline_omschrijving,
|
||||
md.ins_discipline_omschrijving,
|
||||
std.mld_stdmelding_omschrijving,
|
||||
@@ -217,11 +221,128 @@ AS
|
||||
AND std.mld_ins_discipline_key IN (52, 70, 60) -- Gebouwgerelateerd, Voertuigen, Operationeel
|
||||
AND std.mld_ins_discipline_key = md.ins_discipline_key
|
||||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||||
AND m.prs_perslid_key = pf.prs_perslid_key;
|
||||
|
||||
AND m.prs_perslid_key = pf.prs_perslid_key
|
||||
AND NOT EXISTS
|
||||
(SELECT 'X'
|
||||
FROM fac_tracking f
|
||||
WHERE fac_srtnotificatie_key = 47 -- MLDAFM
|
||||
AND fac_tracking_refkey = m.mld_melding_key
|
||||
AND f.fac_tracking_datum < SYSDATE - 10);
|
||||
|
||||
-- Rapport tbv QR codes
|
||||
CREATE OR REPLACE VIEW vrtw_v_ins_qrc_mld
|
||||
AS
|
||||
SELECT i.ins_deel_omschrijving hide_f_sort,
|
||||
l.alg_locatie_code || ' ' || l.alg_locatie_omschrijving
|
||||
fclt_f_locatie,
|
||||
o.alg_gebouw_omschrijving fclt_f_gebouw,
|
||||
o.alg_plaatsaanduiding fclt_f_plaats,
|
||||
d.ins_discipline_omschrijving fclt_f_discipline,
|
||||
g.ins_srtgroep_omschrijving fclt_f_objectgroep,
|
||||
s.ins_srtdeel_omschrijving fclt_f_objectsoort,
|
||||
i.ins_deel_omschrijving fclt_f_identificatie,
|
||||
i.ins_deel_key,
|
||||
s.ins_srtdeel_key,
|
||||
o.alg_gebouw_code,
|
||||
o.alg_verdieping_code,
|
||||
i.ins_discipline_key fclt_3d_discipline_key,
|
||||
l.alg_locatie_key fclt_3d_locatie_key,
|
||||
i.ins_alg_ruimte_type,
|
||||
i.ins_alg_ruimte_key,
|
||||
CASE
|
||||
WHEN d.ins_discipline_key = 81 -- ICT
|
||||
THEN
|
||||
(SELECT k.ins_kenmerkdeel_waarde
|
||||
FROM ins_kenmerkdeel k
|
||||
WHERE k.ins_deel_key = i.ins_deel_key
|
||||
AND k.ins_kenmerk_key = 1)
|
||||
ELSE
|
||||
NULL
|
||||
END
|
||||
serienummer,
|
||||
CASE
|
||||
WHEN d.ins_discipline_key = 81 -- ICT
|
||||
THEN
|
||||
(SELECT k.ins_kenmerkdeel_waarde
|
||||
FROM ins_kenmerkdeel k
|
||||
WHERE k.ins_deel_key = i.ins_deel_key
|
||||
AND k.ins_kenmerk_key = 2)
|
||||
ELSE
|
||||
NULL
|
||||
END
|
||||
model,
|
||||
b.fac_bookmark_id hide_f_bookmark_id
|
||||
FROM ins_deel i,
|
||||
ins_v_alg_overzicht o,
|
||||
ins_srtdeel s,
|
||||
ins_srtgroep g,
|
||||
ins_discipline d,
|
||||
alg_locatie l,
|
||||
fac_bookmark b
|
||||
WHERE b.fac_bookmark_naam = 'QRC_MELDING'
|
||||
AND (b.fac_bookmark_expire IS NULL
|
||||
OR b.fac_bookmark_expire > SYSDATE)
|
||||
AND ins_deel_verwijder IS NULL
|
||||
AND i.ins_deel_module = 'INS'
|
||||
AND i.ins_deel_parent_key IS NULL
|
||||
AND s.ins_srtdeel_key = i.ins_srtdeel_key
|
||||
AND g.ins_srtgroep_key = s.ins_srtgroep_key
|
||||
AND d.ins_discipline_key = g.ins_discipline_key
|
||||
AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key
|
||||
AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type
|
||||
AND i.ins_alg_ruimte_type IN ('T', 'R', 'W')
|
||||
AND o.alg_locatie_key = i.ins_alg_locatie_key
|
||||
AND i.ins_alg_locatie_key = l.alg_locatie_key;
|
||||
|
||||
CREATE OR REPLACE VIEW vrtw_v_noti_mailer
|
||||
(
|
||||
sender,
|
||||
receiver,
|
||||
text,
|
||||
code,
|
||||
key,
|
||||
xkey,
|
||||
xemail,
|
||||
xmobile,
|
||||
fac_srtnotificatie_key,
|
||||
attachments,
|
||||
xsender
|
||||
)
|
||||
AS
|
||||
SELECT NULL,
|
||||
NULL,
|
||||
'Uw melding met nummer '
|
||||
|| m.mld_melding_key
|
||||
|| ' is geregistreerd.',
|
||||
'CUST01' code,
|
||||
m.mld_melding_key,
|
||||
NULL,
|
||||
(SELECT mld_kenmerkmelding_waarde
|
||||
FROM mld_kenmerkmelding km
|
||||
WHERE km.mld_melding_key = m.mld_melding_key
|
||||
AND mld_kenmerk_key = 9
|
||||
AND UPPER (mld_kenmerkmelding_waarde) NOT LIKE '%BOUNCE%')
|
||||
xemail,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
FROM mld_melding m, fac_tracking f
|
||||
WHERE m.mld_melding_key = f.fac_tracking_refkey
|
||||
AND f.fac_srtnotificatie_key = 52 -- MLDNEW
|
||||
AND f.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun
|
||||
- fac_notificatie_job_interval
|
||||
/ 24
|
||||
FROM fac_notificatie_job
|
||||
WHERE UPPER(fac_notificatie_job_view) =
|
||||
'VRTW_V_NOTI_MAILER')
|
||||
AND (SELECT fac_notificatie_job_nextrun
|
||||
FROM fac_notificatie_job
|
||||
WHERE UPPER(fac_notificatie_job_view) =
|
||||
'VRTW_V_NOTI_MAILER');
|
||||
|
||||
CREATE OR REPLACE PROCEDURE vrtw_processemail
|
||||
(pfrom IN VARCHAR2,
|
||||
(pfrom IN VARCHAR2,
|
||||
pto IN VARCHAR2,
|
||||
psubject IN VARCHAR2,
|
||||
pbody IN VARCHAR2,
|
||||
@@ -229,44 +350,57 @@ CREATE OR REPLACE PROCEDURE vrtw_processemail
|
||||
puserkey IN NUMBER DEFAULT NULL
|
||||
)
|
||||
AS
|
||||
-- puserkey is alvast een nieuwe parameter die per release 2015.2 er gaat komen (FSN#33503), als gevuld, dan deze als aanvrager van melding gebruiken.
|
||||
sender prs_perslid.prs_perslid_key%TYPE;
|
||||
kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
|
||||
v_mldkey mld_melding.mld_melding_key%TYPE;
|
||||
defaultstdmelding fac_setting.fac_setting_default%TYPE;
|
||||
kkey mld_kenmerk.mld_kenmerk_key%TYPE;
|
||||
errormsg fac_result.fac_result_waarde%TYPE;
|
||||
v_mailadres_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
|
||||
v_flexprop_mail VARCHAR2(1000);
|
||||
v_from VARCHAR2 (1000);
|
||||
|
||||
subject_regexp fac_setting.fac_setting_default%TYPE;
|
||||
v_behandelaar_key mld_melding.mld_melding_behandelaar_key%TYPE;
|
||||
v_mldnum VARCHAR2 (4000);
|
||||
v_srtdisc VARCHAR2 (4000);
|
||||
v_flag_on_fenote NUMBER (10);
|
||||
v_flag_on_bonote NUMBER (10);
|
||||
v_automailkey NUMBER (10);
|
||||
-- puserkey is alvast een nieuwe parameter die per release 2015.2 er gaat komen (FSN#33503), als gevuld, dan deze als aanvrager van melding gebruiken.
|
||||
sender prs_perslid.prs_perslid_key%TYPE;
|
||||
kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
|
||||
v_mldkey mld_melding.mld_melding_key%TYPE;
|
||||
defaultstdmelding fac_setting.fac_setting_default%TYPE;
|
||||
kkey mld_kenmerk.mld_kenmerk_key%TYPE;
|
||||
errormsg fac_result.fac_result_waarde%TYPE;
|
||||
v_mailadres_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
|
||||
v_flexprop_mail VARCHAR2(1000);
|
||||
v_from VARCHAR2 (1000);
|
||||
|
||||
subject_regexp fac_setting.fac_setting_default%TYPE;
|
||||
v_behandelaar_key mld_melding.mld_melding_behandelaar_key%TYPE;
|
||||
v_mldnum VARCHAR2 (4000);
|
||||
v_srtdisc VARCHAR2 (4000);
|
||||
v_flag_on_fenote NUMBER (10);
|
||||
v_flag_on_bonote NUMBER (10);
|
||||
v_automailkey NUMBER (10);
|
||||
v_email prs_perslid.prs_perslid_email%TYPE;
|
||||
v_negeer NUMBER (10);
|
||||
|
||||
BEGIN
|
||||
-- Niet alle mails komen van te herleiden personen, dus als sender leeg is dan gebruiken we het generieke account.
|
||||
|
||||
SELECT p.prs_perslid_key
|
||||
SELECT x.prs_perslid_key
|
||||
INTO sender
|
||||
FROM
|
||||
(SELECT p.prs_perslid_key
|
||||
FROM prs_perslid p
|
||||
WHERE UPPER (p.prs_perslid_email) = UPPER (pfrom)
|
||||
AND p.prs_perslid_verwijder IS NULL;
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
UNION ALL
|
||||
SELECT prs_perslid_key
|
||||
FROM prs_perslid p, prs_afdeling d
|
||||
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
||||
AND prs_perslid_oslogin = '_HMAIL'
|
||||
AND NOT EXISTS (SELECT p.prs_perslid_key
|
||||
FROM prs_perslid p
|
||||
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;
|
||||
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))
|
||||
@@ -274,18 +408,27 @@ END IF;
|
||||
FROM fac_usrdata
|
||||
WHERE UPPER (psubject) LIKE '%'||UPPER (fac_usrdata_omschr)||'%'
|
||||
AND fac_usrtab_key = 5;
|
||||
|
||||
|
||||
IF v_automailkey IS NOT NULL
|
||||
THEN
|
||||
defaultstdmelding := v_automailkey;
|
||||
v_mailadres_kenmerk_key := 9;
|
||||
END IF;
|
||||
|
||||
|
||||
IF defaultstdmelding IS NULL
|
||||
THEN
|
||||
defaultstdmelding := fac.getsetting ('defaultstdmelding');
|
||||
v_mailadres_kenmerk_key := 9;
|
||||
END IF;
|
||||
|
||||
|
||||
IF UPPER (psubject) LIKE '%AUTOMATISCH ANTWOORD%'
|
||||
THEN
|
||||
v_negeer := 1;
|
||||
ELSE
|
||||
v_negeer := 0;
|
||||
END IF;
|
||||
-------------------------------------------------
|
||||
|
||||
-- Check of de afzender pfrom een reply op een bestaande melding doet, in dat geval wordt dat in notities genoteerd.
|
||||
@@ -294,45 +437,50 @@ END IF;
|
||||
-- 2) Het 1e nummer dat in het onderwerp staat wordt gezien als meldingnummer, eventuele andere nummers later in het onderwerp worden genegeerd.
|
||||
-- 3) Het mailadres van de afzender is dezelfde als die van dat gevonden meldingnummer '1234' in het onderwerp, deze afzender (mailadres) staat in flexprop (zie verderop hieronder)
|
||||
|
||||
-- vrtw heeft een vakgroeptype-prefix, dus [alpha] is van toepassing
|
||||
subject_regexp := '[[:alpha:]]*[[:digit:]]{1,}';
|
||||
subject_regexp := '[[:digit:]]{1,}';
|
||||
v_mldnum :=
|
||||
REGEXP_SUBSTR (psubject,
|
||||
subject_regexp,
|
||||
1,
|
||||
1,
|
||||
'i'); -- 1234, of 12345, of 12, of 1 etc.
|
||||
|
||||
|
||||
v_srtdisc :=
|
||||
REGEXP_SUBSTR (v_mldnum,
|
||||
'[[:alpha:]]',
|
||||
1,
|
||||
1,
|
||||
'i'); -- M
|
||||
v_mldkey := fac.safe_to_number (SUBSTR (v_mldnum, LENGTH (v_srtdisc) + 1)); -- 123, of 12345, of 12, of 1
|
||||
-- v_srtdisc :=
|
||||
-- REGEXP_SUBSTR (v_mldnum,
|
||||
-- '[[:alpha:]]',
|
||||
-- 1,
|
||||
-- 1,
|
||||
-- 'i'); -- M
|
||||
|
||||
-- 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);
|
||||
|
||||
v_mldkey := fac.safe_to_number (v_mldnum);
|
||||
-- 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).
|
||||
|
||||
-- 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).
|
||||
SELECT MAX(SUBSTR(TRIM(km.mld_kenmerkmelding_waarde),1,50))
|
||||
INTO v_flexprop_mail
|
||||
FROM mld_kenmerkmelding km
|
||||
WHERE mld_melding_key = v_mldkey
|
||||
AND mld_kenmerk_key = v_mailadres_kenmerk_key
|
||||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||||
|
||||
SELECT MAX (p.prs_perslid_email)
|
||||
INTO v_email
|
||||
FROM prs_perslid p, mld_melding m
|
||||
WHERE m.mld_melding_key = v_mldkey
|
||||
AND m.prs_perslid_key = p.prs_perslid_key;
|
||||
|
||||
SELECT MAX(SUBSTR(TRIM(km.mld_kenmerkmelding_waarde),1,50))
|
||||
INTO v_flexprop_mail
|
||||
FROM mld_kenmerkmelding km
|
||||
WHERE mld_melding_key = v_mldkey
|
||||
AND mld_kenmerk_key = v_mailadres_kenmerk_key
|
||||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||||
v_from := SUBSTR(TRIM(pfrom),1,50);
|
||||
|
||||
v_from := SUBSTR(TRIM(pfrom),1,50);
|
||||
IF v_flexprop_mail = v_from OR v_email = v_from
|
||||
THEN
|
||||
|
||||
IF v_flexprop_mail = v_from
|
||||
THEN
|
||||
-- Gotcha: bestaande melding gevonden
|
||||
-- Van deze afzender is een eerdere melding geregistreerd, die we plakken de subject en body nu als notitie toe (als perslid system-api user).
|
||||
|
||||
-- Gotcha: bestaande melding gevonden
|
||||
-- Van deze afzender is een eerdere melding geregistreerd, die we plakken de subject en body nu als notitie toe (als perslid system-api user).
|
||||
|
||||
INSERT INTO mld_melding_note (mld_melding_key,
|
||||
INSERT INTO mld_melding_note (mld_melding_key,
|
||||
mld_melding_note_omschrijving,
|
||||
prs_perslid_key,
|
||||
mld_melding_note_flag)
|
||||
@@ -350,32 +498,32 @@ END IF;
|
||||
sender,
|
||||
0); -- 0 is NIET zichtbaar FE (want is system-user, zinloos).
|
||||
|
||||
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet
|
||||
IF 1=0 -- vrtw heeft geen melding valggetjes, dus onderstaande kan voor nu weg.
|
||||
THEN
|
||||
BEGIN
|
||||
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet
|
||||
IF 1=0 -- vrtw heeft geen melding valggetjes, dus onderstaande kan voor nu weg.
|
||||
THEN
|
||||
BEGIN
|
||||
v_flag_on_fenote := fac.getsetting('mld_flag_on_fenote');
|
||||
v_flag_on_bonote := fac.getsetting('mld_flag_on_bonote');
|
||||
|
||||
IF v_flag_on_bonote <> 0 AND v_flag_on_bonote IS NOT NULL
|
||||
THEN
|
||||
UPDATE mld_melding
|
||||
SET mld_melding_flag = v_flag_on_bonote
|
||||
WHERE mld_melding_key = v_mldkey
|
||||
AND ( (mld_melding_flag = v_flag_on_fenote)
|
||||
OR (mld_melding_flag = 0 OR mld_melding_flag IS NULL));
|
||||
IF v_flag_on_bonote <> 0 AND v_flag_on_bonote IS NOT NULL
|
||||
THEN
|
||||
UPDATE mld_melding
|
||||
SET mld_melding_flag = v_flag_on_bonote
|
||||
WHERE mld_melding_key = v_mldkey
|
||||
AND ( (mld_melding_flag = v_flag_on_fenote)
|
||||
OR (mld_melding_flag = 0 OR mld_melding_flag IS NULL));
|
||||
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
DBMS_OUTPUT.put_line( 'Niet gelukt om flag '
|
||||
|| v_flag_on_bonote
|
||||
|| ' te zetten.');
|
||||
END;
|
||||
END IF; -- vrtw heef geen vlaggetjes
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
DBMS_OUTPUT.put_line( 'Niet gelukt om flag '
|
||||
|| v_flag_on_bonote
|
||||
|| ' te zetten.');
|
||||
END;
|
||||
END IF; -- vrtw heef geen vlaggetjes
|
||||
|
||||
-- Default tracking is even goed genoeg
|
||||
-- Default tracking is even goed genoeg
|
||||
fac.trackaction ('MLDNOT',
|
||||
v_mldkey,
|
||||
sender,
|
||||
@@ -387,8 +535,8 @@ END IF;
|
||||
fac_result_waarde)
|
||||
VALUES (psessionid, 'maillog', 'Als notitie toegevoegd aan melding ' || v_mldkey);
|
||||
|
||||
-- Bepalen van de behandelaar van deze melding
|
||||
BEGIN
|
||||
-- Bepalen van de behandelaar van deze melding
|
||||
BEGIN
|
||||
SELECT mld_melding_behandelaar_key
|
||||
INTO v_behandelaar_key
|
||||
FROM mld_melding m, prs_perslid p
|
||||
@@ -396,15 +544,15 @@ END IF;
|
||||
AND mld_melding_behandelaar_key = p.prs_perslid_key
|
||||
AND p.prs_perslid_email IS NOT NULL
|
||||
AND p.prs_perslid_verwijder IS NULL;
|
||||
EXCEPTION
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
v_behandelaar_key := NULL;
|
||||
END;
|
||||
END;
|
||||
|
||||
IF v_behandelaar_key IS NOT NULL
|
||||
THEN
|
||||
-- Bestaande melding en behandelaar is bekend.
|
||||
IF v_behandelaar_key IS NOT NULL
|
||||
THEN
|
||||
-- Bestaande melding en behandelaar is bekend.
|
||||
|
||||
-- Notificatie naar behandelaar
|
||||
fac.putnotificationsrtprio (
|
||||
@@ -412,137 +560,101 @@ END IF;
|
||||
v_behandelaar_key,
|
||||
'MLDNOB',
|
||||
v_mldkey,
|
||||
'Melding ' || v_mldkey || ' is door de klant aangepast.',
|
||||
'Melding ' || v_mldkey || ' is door de melder aangepast.',
|
||||
2,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
2,
|
||||
NULL);
|
||||
END IF; -- Bestaande melding en behandelaar is bekend.
|
||||
END IF; -- Bestaande melding en behandelaar is bekend.
|
||||
ELSE
|
||||
-- GEEN bestaande melding gevonden, we gaan een nieuwe mnelding toevoegen....
|
||||
-- GEEN bestaande melding gevonden, we gaan een nieuwe mnelding toevoegen....
|
||||
|
||||
IF defaultstdmelding IS NOT NULL
|
||||
THEN
|
||||
IF defaultstdmelding IS NOT NULL AND v_negeer = 0
|
||||
THEN
|
||||
|
||||
-- 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_alg_locatie_key,
|
||||
-- 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_alg_locatie_key,
|
||||
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,
|
||||
55, -- spaansland
|
||||
psubject,
|
||||
SUBSTR ( REPLACE (
|
||||
SUBSTR (pbody,
|
||||
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,
|
||||
55, -- spaansland
|
||||
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
|
||||
ELSE
|
||||
NULL
|
||||
END
|
||||
|| CHR (10) || CHR (13) ||
|
||||
SUBSTR ( REPLACE (
|
||||
SUBSTR (pbody,
|
||||
1,
|
||||
4000 - (LENGTH (psubject) + 2)),
|
||||
CHR (13) || CHR (10) || CHR (13) || CHR (10),
|
||||
CHR (13) || CHR (10)),
|
||||
1,
|
||||
4000), -- verwijder onnodige witregels
|
||||
NULL,
|
||||
defaultstdmelding,
|
||||
sender,
|
||||
sender,
|
||||
kostenplaats,
|
||||
3)
|
||||
RETURNING mld_melding_key
|
||||
INTO v_mldkey;
|
||||
CHR (13) || CHR (10) || CHR (13) || CHR (10),
|
||||
CHR (13) || CHR (10)),
|
||||
1,
|
||||
4000), -- verwijder onnodige witregels
|
||||
NULL,
|
||||
defaultstdmelding,
|
||||
sender,
|
||||
sender,
|
||||
kostenplaats,
|
||||
3)
|
||||
RETURNING mld_melding_key
|
||||
INTO v_mldkey;
|
||||
|
||||
-- Vullen van kenmerkwaarde "e-mail adres"
|
||||
IF pfrom IS NOT NULL AND v_mailadres_kenmerk_key IS NOT NULL
|
||||
THEN
|
||||
-- Kenmerk mailadres heeft max. 50 tekens, afkappen dus...
|
||||
-- Vullen van kenmerkwaarde "e-mail adres"
|
||||
IF pfrom IS NOT NULL AND v_mailadres_kenmerk_key IS NOT NULL
|
||||
THEN
|
||||
-- Kenmerk mailadres heeft max. 50 tekens, afkappen dus...
|
||||
|
||||
|
||||
-- zet v_from met maximaal 50 tekens als kenmerk bij de zojuist aangemaakte melding.
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||||
VALUES (v_mldkey, v_mailadres_kenmerk_key, v_from);
|
||||
END IF;
|
||||
-- zet v_from met maximaal 50 tekens als kenmerk bij de zojuist aangemaakte melding.
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||||
VALUES (v_mldkey, v_mailadres_kenmerk_key, v_from);
|
||||
END IF;
|
||||
|
||||
mld.setmeldingstatus (v_mldkey, 2, sender);
|
||||
mld.setmeldingstatus (v_mldkey, 2, sender);
|
||||
INSERT INTO fac_result (fac_result_sessionid,
|
||||
fac_result_naam,
|
||||
fac_result_waarde)
|
||||
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_mldkey);
|
||||
|
||||
END;
|
||||
END IF; -- defaultstdmelding IS NOT NULL
|
||||
END IF; -- v_flexprop_mail = v_from
|
||||
END;
|
||||
END IF; -- defaultstdmelding IS NOT NULL
|
||||
END IF; -- v_flexprop_mail = v_from
|
||||
|
||||
-- Bijlagen gaan we proberen toe te voegen, zowel bij een nieuwe als een bestaande melding....
|
||||
-- Dat doen we bij een flexprop van het type 'M' (=folder met bestanden), door het laagste volgnummer te vinden
|
||||
-- find the lowest volgnummer of the flexfield of type folder.
|
||||
SELECT MIN (mld_kenmerk_key)
|
||||
INTO kkey
|
||||
FROM mld_kenmerk k,
|
||||
mld_srtkenmerk sk,
|
||||
mld_stdmelding std,
|
||||
ins_tab_discipline d
|
||||
WHERE mld_srtkenmerk_kenmerktype = 'M'
|
||||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||||
AND std.mld_stdmelding_key = defaultstdmelding
|
||||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||||
AND ( (k.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
AND k.mld_kenmerk_niveau = 'S')
|
||||
OR (k.mld_stdmelding_key = d.ins_discipline_key
|
||||
AND k.mld_kenmerk_niveau = 'D')
|
||||
OR (k.mld_stdmelding_key = d.ins_srtdiscipline_key
|
||||
AND k.mld_kenmerk_niveau = 'T'))
|
||||
AND k.mld_kenmerk_verwijder IS NULL
|
||||
AND NOT EXISTS
|
||||
(SELECT mld_kenmerk_volgnummer
|
||||
FROM mld_kenmerk k1,
|
||||
mld_srtkenmerk sk1,
|
||||
mld_stdmelding std1,
|
||||
ins_tab_discipline d1
|
||||
WHERE sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||||
AND sk1.mld_srtkenmerk_key =
|
||||
k1.mld_srtkenmerk_key
|
||||
AND std1.mld_stdmelding_key =
|
||||
defaultstdmelding
|
||||
AND std1.mld_ins_discipline_key =
|
||||
d1.ins_discipline_key
|
||||
AND ( (k1.mld_stdmelding_key =
|
||||
std1.mld_stdmelding_key
|
||||
AND k1.mld_kenmerk_niveau = 'S')
|
||||
OR (k1.mld_stdmelding_key =
|
||||
d1.ins_discipline_key
|
||||
AND k1.mld_kenmerk_niveau = 'D')
|
||||
OR (k1.mld_stdmelding_key =
|
||||
d1.ins_srtdiscipline_key
|
||||
AND k1.mld_kenmerk_niveau = 'T'))
|
||||
AND k1.mld_kenmerk_verwijder IS NULL
|
||||
AND k1.mld_kenmerk_volgnummer <
|
||||
k.mld_kenmerk_volgnummer);
|
||||
-- Bijlage toevoegen, aangezien VRTW hetzelfde bijlage kenmerk gebruikt over alle vakgroeptypen kan de key gewoon hard worden meegegeven.
|
||||
|
||||
kkey := 1041;
|
||||
|
||||
IF kkey IS NOT NULL
|
||||
THEN
|
||||
IF kkey IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO fac_result (fac_result_sessionid,
|
||||
fac_result_naam,
|
||||
fac_result_waarde)
|
||||
VALUES (psessionid,
|
||||
'kenmerkpath',
|
||||
'MLD\M' || to_char( TRUNC(v_mldkey/1000), 'FM0000') || '___\M' || v_mldkey || '\' || kkey || '\');
|
||||
END IF;
|
||||
|
||||
|
||||
END IF;
|
||||
|
||||
IF errormsg IS NOT NULL
|
||||
THEN
|
||||
@@ -579,10 +691,9 @@ END;
|
||||
------ payload end ------
|
||||
|
||||
SET DEFINE OFF
|
||||
BEGIN adm.systrackscriptId ('$Id$', 1); END;
|
||||
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
||||
/
|
||||
|
||||
|
||||
COMMIT;
|
||||
SET ECHO OFF
|
||||
SPOOL OFF
|
||||
|
||||
Reference in New Issue
Block a user