RWSN#83086 M2M-LEF+RWSN#86617 IDM_PRS-import/Toekennen WP+RWSN#87760 M2M/Afzender-controle
svn path=/Customer/trunk/; revision=68777
This commit is contained in:
808
RWSN/rwsn.sql
808
RWSN/rwsn.sql
@@ -1200,17 +1200,17 @@ AS
|
||||
- worden vervallen personen verwijderd
|
||||
*/
|
||||
-- Constanten
|
||||
c_verdieping_omschr_default VARCHAR2 (16) := 'Begane grond';
|
||||
c_srtruimte_default INTEGER := 1;
|
||||
c_ruimte_code VARCHAR2 (3) := '001';
|
||||
c_ruimte_omschr_default VARCHAR2 (16) := 'Onbekend';
|
||||
c_werkplek_volgnr_default INTEGER := 1;
|
||||
c_prs_werkplek_omschrijving VARCHAR2 (16) := '1';
|
||||
c_default_profiel_key NUMBER (10) := 1;
|
||||
c_rin_kkey NUMBER (10) := 1160;
|
||||
c_commitbuffer NUMBER := 1000;
|
||||
c_verdieping_omschr_default VARCHAR2 (16) := 'Begane grond';
|
||||
c_srtruimte_default INTEGER := 1;
|
||||
c_ruimte_code VARCHAR2 (3) := '001';
|
||||
c_ruimte_omschr_default VARCHAR2 (16) := 'Onbekend';
|
||||
c_werkplek_volgnr_default INTEGER := 1; -- Altijd werkplek met deze notatie!
|
||||
c_prs_werkplek_omschrijving VARCHAR2 (16) := '1'; -- Altijd werkplek met deze notatie!
|
||||
c_default_profiel_key NUMBER (10) := 1;
|
||||
c_rin_kkey NUMBER (10) := 1160;
|
||||
c_commitbuffer NUMBER := 1000;
|
||||
-- om de zoveel committen
|
||||
v_buffercount NUMBER := 0;
|
||||
v_buffercount NUMBER := 0;
|
||||
|
||||
-- Personen die moeten vervallen zijn personen die:
|
||||
-- - volgens de importregels zijn ingevoerd (ignore handmatige)
|
||||
@@ -1442,8 +1442,8 @@ AS
|
||||
RETURN rstr;
|
||||
END;
|
||||
|
||||
-- Procedure die alles regelt voor de locatie van een persoon, varierend van
|
||||
-- NIKS: als plaats ongeldig is of de huidige situatie al goed is
|
||||
-- Procedure die alles regelt voor de locatie van persoon, varierend van:
|
||||
-- NIKS (als plaats ongeldig is of huidige situatie al goed is)
|
||||
-- ZETTEN OP EEN BESTAANDE WERKPLEK
|
||||
-- VERDIEPING/RUIMTE/WERKPLEK AANMAKEN EN TOEKENNEN
|
||||
PROCEDURE handle_location (pkey IN NUMBER, pgebouwkey IN VARCHAR2, prin IN VARCHAR2)
|
||||
@@ -1451,13 +1451,11 @@ AS
|
||||
lv_errormsg VARCHAR2 (1000);
|
||||
lv_errorhint VARCHAR2 (1000);
|
||||
lv_nr_werkplek NUMBER;
|
||||
lv_current_gebouw_key NUMBER;
|
||||
lv_verdieping_key NUMBER (10);
|
||||
lv_ruimte_key NUMBER (10);
|
||||
lv_werkplek_key NUMBER (10);
|
||||
BEGIN
|
||||
lv_errormsg := 'Toekennen van een plaats';
|
||||
|
||||
IF pgebouwkey = -1
|
||||
THEN
|
||||
lv_errorhint := 'Onbekend gebouw voor persoon/RIN: ' || prin;
|
||||
@@ -1465,50 +1463,49 @@ AS
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
-- komt de nieuwe werkplek al voor bij een van de bestaande werkplekken?
|
||||
SELECT COUNT (*)
|
||||
INTO lv_nr_werkplek
|
||||
FROM prs_perslidwerkplek pw, prs_werkplek w, alg_ruimte r, alg_verdieping v
|
||||
WHERE pw.prs_werkplek_key = w.prs_werkplek_key
|
||||
AND nvl(w.prs_werkplek_virtueel, 0) <> 1
|
||||
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
|
||||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND prs_perslid_key = pkey
|
||||
AND v.alg_gebouw_key = pgebouwkey;
|
||||
-- komt nieuwe werkplek al voor bij bestaande werkplekken (virtueel of niet)?
|
||||
-- heeft persoon al bestaande werkplek in gebouw (virtueel of niet)?
|
||||
SELECT COUNT (*)
|
||||
INTO lv_nr_werkplek
|
||||
FROM prs_perslidwerkplek pw, prs_werkplek w, alg_ruimte r, alg_verdieping v
|
||||
WHERE pw.prs_perslid_key = pkey
|
||||
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
||||
--RWSN#8617:AND COALESCE (w.prs_werkplek_virtueel, 0) <> 1
|
||||
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
|
||||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND v.alg_gebouw_key = pgebouwkey;
|
||||
|
||||
IF lv_nr_werkplek > 0
|
||||
THEN
|
||||
-- nieuwe werkplek bestaat al als een van de werkplekken.
|
||||
-- persoon heeft bestaande werkplek in gebouw (virtueel of niet)!
|
||||
lv_errorhint := 'Ongewijzigd gebouw voor persoon/RIN: ' || prin;
|
||||
fac.imp_writelog (p_import_key, 'I', lv_errormsg, lv_errorhint);
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
-- verwijder de bestaande werkplekken.
|
||||
-- HdZ (6-8-2009: werkplekken mogen nog niet verwijderd worden via de koppeling.
|
||||
-- verwijder bestaande werkplekken.
|
||||
-- HdZ (6-8-2009: werkplekken mogen niet worden verwijderd via koppeling.
|
||||
-- werkplekken worden nog vaak handmatig aangemaakt.
|
||||
--DELETE prs_perslidwerkplek WHERE prs_perslid_key = pkey;
|
||||
|
||||
-- Er moet wat gebeuren, plaatsen of verplaatsen
|
||||
-- Vooralsnog even (bij)plaatsen
|
||||
-- De gebouwkey is bekend, dus het gebouw ook.
|
||||
-- Dan zoeken we naar de laagste verdieping en laagste ruimtenr
|
||||
-- en dan maken we daarvoor een werkplek aan
|
||||
-- Er moet wat gebeuren, plaatsen of verplaatsen.
|
||||
-- Vooralsnog even (bij)plaatsen.
|
||||
-- De gebouwkey is bekend, dus gebouw ook.
|
||||
-- Dan zoeken we naar laagste verdieping en laagste ruimtenr.
|
||||
-- En dan maken we daar werkplek aan.
|
||||
IF lv_nr_werkplek = 0
|
||||
THEN
|
||||
-- persoon heeft geen werkplek(ken)
|
||||
-- persoon heeft nog geen werkplek
|
||||
BEGIN
|
||||
lv_errormsg := 'Bepalen verdieping';
|
||||
|
||||
SELECT alg_verdieping_key
|
||||
INTO lv_verdieping_key
|
||||
FROM alg_verdieping
|
||||
WHERE alg_gebouw_key = pgebouwkey AND alg_verdieping_verwijder IS NULL AND alg_verdieping_upper like '%BEGANE GROND%';
|
||||
FROM alg_v_aanwezigverdieping
|
||||
WHERE alg_gebouw_key = pgebouwkey AND alg_verdieping_upper like '%BEGANE GROND%';
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_errorhint := 'Begane grond toevoegen voor persoon/RIN: ' || prin;
|
||||
|
||||
INSERT INTO alg_verdieping
|
||||
(alg_gebouw_key, alg_verdieping_omschrijving, alg_verdieping_volgnr, alg_verdieping_code)
|
||||
VALUES (pgebouwkey, c_verdieping_omschr_default, 0, '0')
|
||||
@@ -1518,21 +1515,19 @@ AS
|
||||
|
||||
-- lv_verdieping_key bekend
|
||||
BEGIN
|
||||
-- zoek de laagste ruimte op deze verdieping
|
||||
-- zoek laagste=alfabetisch eerste ruimte op verdieping
|
||||
SELECT alg_ruimte_key
|
||||
INTO lv_ruimte_key
|
||||
FROM alg_ruimte
|
||||
FROM alg_v_aanwezigruimte
|
||||
WHERE alg_verdieping_key = lv_verdieping_key
|
||||
AND alg_ruimte_verwijder IS NULL
|
||||
AND alg_ruimte_nr = (SELECT MIN (alg_ruimte_nr)
|
||||
FROM alg_ruimte
|
||||
WHERE alg_verdieping_key = lv_verdieping_key AND alg_ruimte_verwijder IS NULL);
|
||||
AND alg_ruimte_nr = (SELECT MIN (alg_ruimte_nr)
|
||||
FROM alg_v_aanwezigruimte
|
||||
WHERE alg_verdieping_key = lv_verdieping_key);
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_errorhint := 'Ruimte toevoegen voor persoon/RIN: ' || prin;
|
||||
|
||||
-- Noot: de srtruimte 1 moet bestaan
|
||||
-- AANNAME: srtruimte 1 moet bestaan
|
||||
INSERT INTO alg_ruimte
|
||||
(alg_verdieping_key, alg_srtruimte_key, alg_ruimte_nr, alg_ruimte_omschrijving)
|
||||
VALUES (lv_verdieping_key, c_srtruimte_default, c_ruimte_code, c_ruimte_omschr_default)
|
||||
@@ -1546,24 +1541,19 @@ AS
|
||||
INTO lv_werkplek_key
|
||||
FROM prs_werkplek
|
||||
WHERE prs_alg_ruimte_key = lv_ruimte_key
|
||||
AND prs_werkplek_volgnr = c_werkplek_volgnr_default;
|
||||
-- Altijd werkplek met deze notatie!
|
||||
AND prs_werkplek_volgnr = c_werkplek_volgnr_default;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_errorhint := 'Werkplek toevoegen voor persoon/RIN: ' || prin;
|
||||
|
||||
-- WEL/NIET VIRTUEEL?
|
||||
INSERT INTO prs_werkplek
|
||||
(prs_werkplek_volgnr, prs_werkplek_omschrijving, prs_alg_ruimte_key, prs_werkplek_virtueel)
|
||||
VALUES (c_werkplek_volgnr_default, c_prs_werkplek_omschrijving, lv_ruimte_key, 0)
|
||||
RETURNING prs_werkplek_key
|
||||
INTO lv_werkplek_key;
|
||||
-- Altijd werkplek met deze notatie!
|
||||
END;
|
||||
|
||||
-- lv_werkplek_key bekend
|
||||
-- 11-12-2009/MvdH - Unique constraint exception igv. virtuele werkplek? Volgens mij wel, maar niet opgelost!
|
||||
INSERT INTO prs_perslidwerkplek
|
||||
(prs_perslid_key, prs_werkplek_key, prs_perslidwerkplek_bezetting)
|
||||
VALUES (pkey, lv_werkplek_key, 0);
|
||||
@@ -20046,7 +20036,7 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
-- Verder geen foutdetectie; kan dus stricter?
|
||||
SELECT DECODE (SUBSTR (TRIM (UPPER (v_reserveerbaar)), 1, 1),
|
||||
SELECT DECODE (SUBSTR (UPPER (TRIM (v_reserveerbaar)), 1, 1),
|
||||
'J', 1,
|
||||
0)
|
||||
INTO v_reserveerbaar_n
|
||||
@@ -28418,7 +28408,9 @@ AS
|
||||
LEFT JOIN mld_v_aanwezigkenmerkmelding km20
|
||||
ON x.mld_melding_key = km20.mld_melding_key AND km20.mld_kenmerk_key = 29374;
|
||||
|
||||
-- RWSN#30975: Afhandelen printer-meldingen!
|
||||
-- RWSN#30975: Printer-mails!
|
||||
-- RWSN#83086: LEF-mails!
|
||||
-- RWSN#87760: Afzender-controle via Eigen tabel met key=2502!
|
||||
CREATE OR REPLACE PROCEDURE RWSN_processemail (
|
||||
pfrom IN VARCHAR2,
|
||||
pto IN VARCHAR2,
|
||||
@@ -28427,82 +28419,95 @@ CREATE OR REPLACE PROCEDURE RWSN_processemail (
|
||||
psessionid IN VARCHAR2,
|
||||
pemailkey IN NUMBER)
|
||||
AS
|
||||
c_ext_melder_key NUMBER (10) := 13760; -- EXTERN Overig
|
||||
c_fd_stdmld_key NUMBER (10) := 11961; -- Soortmelding=11961=E-mail Algemeen onder Vakgroep=681=MP-FI KCC onder Vakgroeptype=3=KCC [TODO:11761 in T-omgeving]!
|
||||
c_esize_stdmld_key NUMBER (10) := 11962; -- Soortmelding=11962=E-mail Algemeen onder Vakgroep=941=MP-EBF Workforce onder Vakgroeptype=3=KCC!
|
||||
c_digin_stdmld_key NUMBER (10) := 11963; -- Soortmelding=11963=E-mail Algemeen onder Vakgroep=3221=MP-EBF DigiInkoop onder Vakgroeptype=3=KCC!
|
||||
-- Printer-Soortmelding=8357 onder Vakgroep=274 onder Vakgroeptype=1!
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_ci VARCHAR2 (255) := '';
|
||||
v_perslid_key NUMBER (10) := NULL;
|
||||
v_kostenplaats_key NUMBER (10) := NULL;
|
||||
v_onderwerp VARCHAR2 (255) := '';
|
||||
v_discipline_key NUMBER (10) := NULL;
|
||||
v_stdmelding_key NUMBER (10) := NULL;
|
||||
--v_stdmelding_uvt mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD (NULL, NULL); -- constructor initialisatie
|
||||
v_deel_key NUMBER (10) := NULL;
|
||||
v_onrgoed_keys NUMBER (10) := NULL;
|
||||
v_locatie_key NUMBER (10) := NULL;
|
||||
v_melding_key NUMBER (10) := NULL;
|
||||
v_email VARCHAR2 (255) := '';
|
||||
v_bodypart VARCHAR2 (4000) := '';
|
||||
v_email_kkey NUMBER (10) := NULL;
|
||||
v_folder_kkey NUMBER (10) := NULL;
|
||||
v_count NUMBER (10) := NULL;
|
||||
c_fd_stdmld_key NUMBER (10) := 11961; -- Soortmelding=11961=E-mail Algemeen onder Vakgroep=681=MP-FI KCC onder Vakgroeptype=3=KCC!
|
||||
c_esize_stdmld_key NUMBER (10) := 11962; -- Soortmelding=11962=E-mail Algemeen onder Vakgroep=941=MP-EBF Workforce onder Vakgroeptype=3=KCC!
|
||||
c_digin_stdmld_key NUMBER (10) := 11963; -- Soortmelding=11963=E-mail Algemeen onder Vakgroep=3221=MP-EBF DigiInkoop onder Vakgroeptype=3=KCC!
|
||||
c_lef_stdmld_key NUMBER (10) := 16861; -- Soortmelding=11963=E-mail Algemeen onder Vakgroep=3221=MP-EBF DigiInkoop onder Vakgroeptype=3=KCC!
|
||||
c_ext_melder_key NUMBER (10) := 13760; -- EXTERN Overig
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_ci VARCHAR2 (255) := '';
|
||||
v_perslid_key NUMBER (10) := NULL;
|
||||
v_kostenplaats_key NUMBER (10) := NULL;
|
||||
v_onderwerp VARCHAR2 (255) := '';
|
||||
v_discipline_key NUMBER (10) := NULL;
|
||||
v_stdmelding_key NUMBER (10) := NULL;
|
||||
--v_stdmelding_uvt mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD (NULL, NULL); -- constructor initialisatie
|
||||
v_deel_key NUMBER (10) := NULL;
|
||||
v_onrgoed_keys NUMBER (10) := NULL;
|
||||
v_locatie_key NUMBER (10) := NULL;
|
||||
v_melding_key NUMBER (10) := NULL;
|
||||
v_email VARCHAR2 (255) := '';
|
||||
v_bodypart VARCHAR2 (4000) := '';
|
||||
v_email_kkey NUMBER (10) := NULL;
|
||||
v_folder_kkey NUMBER (10) := NULL;
|
||||
v_startnext VARCHAR2 (4000) := '';
|
||||
v_nextpos NUMBER (10) := NULL;
|
||||
v_aanvrager VARCHAR2 (4000) := '';
|
||||
v_opdrachtgever VARCHAR2 (4000) := '';
|
||||
v_organisatie VARCHAR2 (4000) := '';
|
||||
v_email1 VARCHAR2 (4000) := '';
|
||||
v_email2 VARCHAR2 (4000) := '';
|
||||
v_telefoonnr VARCHAR2 (4000) := '';
|
||||
v_vraagstuk VARCHAR2 (4000) := '';
|
||||
v_doelstelling VARCHAR2 (4000) := '';
|
||||
v_aantal VARCHAR2 (4000) := '';
|
||||
v_datum VARCHAR2 (4000) := '';
|
||||
v_srtkenmerk_type VARCHAR2 (255) := '';
|
||||
v_srtkenmerk_lengte NUMBER (10) := NULL;
|
||||
v_count NUMBER (10) := NULL;
|
||||
BEGIN
|
||||
CASE
|
||||
WHEN UPPER (pto) LIKE 'PRINTER.FACILITOR@%'
|
||||
THEN
|
||||
v_errormsg := 'Fout bepalen printer';
|
||||
v_ci := SUBSTR (psubject, INSTR (UPPER (psubject), 'EX')) || '#';
|
||||
IF SUBSTR (UPPER (v_ci), 1, 2) = 'EX'
|
||||
THEN
|
||||
v_ci := SUBSTR (v_ci, 1, REGEXP_INSTR (SUBSTR (v_ci, 3), '\D') + 1); -- Gedeelte tot eerste niet-cijfer na 'EX'!
|
||||
ELSE
|
||||
v_ci := '';
|
||||
END IF;
|
||||
|
||||
-- Bepaal persoon met loginnaam _HMAIL.
|
||||
v_errormsg := 'Fout bepalen Printer-melder';
|
||||
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_oslogin = '_HMAIL'
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_key;
|
||||
|
||||
v_errormsg := 'Fout bepalen Printer-onderwerp';
|
||||
v_onderwerp := psubject;
|
||||
|
||||
-- Bepaal de afgesproken soortmelding met key=5462 (was 8357).
|
||||
v_errormsg := 'Fout bepalen Printer-soortmelding';
|
||||
SELECT mld_ins_discipline_key, mld_stdmelding_key
|
||||
INTO v_discipline_key, v_stdmelding_key
|
||||
FROM mld_discipline md, mld_stdmelding sm
|
||||
WHERE sm.mld_stdmelding_key = 5462 -- Bijvullen kopiëren/printen
|
||||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||||
--AND md.ins_srtdiscipline_key = 1 -- Facilitair
|
||||
AND md.ins_discipline_verwijder IS NULL;
|
||||
|
||||
-- Bepaal evt. object met omschrijving zoals in pbody achter EX!
|
||||
-- Alleen objecten onder disciplines met keys -1 t/m -1 worden beschouwd!
|
||||
v_errormsg := 'Fout bepalen Printer-object ' || v_ci;
|
||||
-- Afzender-controle obv. configuratie in Eigen tabel (met key=2502)!
|
||||
v_errormsg := 'Fout bepalen afzender';
|
||||
SELECT COUNT (*)
|
||||
INTO v_count
|
||||
FROM ins_v_aanwezigdeel d, ins_v_aanwezigsrtdeel sd, ins_v_aanwezigsrtgroep sg, ins_v_alg_onroerendgoed og
|
||||
WHERE d.ins_deel_upper = UPPER (v_ci)
|
||||
AND d.ins_deel_vervaldatum IS NULL
|
||||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||||
--AND sg.ins_discipline_key IN (-1)
|
||||
AND d.ins_alg_ruimte_type = 'R'
|
||||
AND d.ins_alg_ruimte_key = og.alg_onrgoed_keys;
|
||||
FROM fac_usrdata
|
||||
WHERE fac_usrtab_key = 2502
|
||||
AND UPPER (TRIM (fac_usrdata_omschr)) = UPPER (SUBSTR (pto, 1, INSTR (pto, '@') - 1))
|
||||
AND (fac_usrdata_omschr2 IS NULL OR UPPER (TRIM (fac_usrdata_omschr2)) = UPPER (pfrom));
|
||||
|
||||
IF v_count = 1
|
||||
THEN
|
||||
SELECT d.ins_deel_key, og.alg_onrgoed_keys, og.alg_locatie_key
|
||||
INTO v_deel_key, v_onrgoed_keys, v_locatie_key
|
||||
v_errormsg := 'Fout bepalen printer';
|
||||
v_ci := SUBSTR (psubject, INSTR (UPPER (psubject), 'EX')) || '#';
|
||||
IF SUBSTR (UPPER (v_ci), 1, 2) = 'EX'
|
||||
THEN
|
||||
v_ci := SUBSTR (v_ci, 1, REGEXP_INSTR (SUBSTR (v_ci, 3), '\D') + 1); -- Gedeelte tot eerste niet-cijfer na 'EX'!
|
||||
ELSE
|
||||
v_ci := '';
|
||||
END IF;
|
||||
|
||||
-- Bepaal persoon met loginnaam _HMAIL.
|
||||
v_errormsg := 'Fout bepalen Printer-melder';
|
||||
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_oslogin = '_HMAIL'
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_key;
|
||||
|
||||
v_errormsg := 'Fout bepalen Printer-onderwerp';
|
||||
v_onderwerp := psubject;
|
||||
|
||||
-- Bepaal de afgesproken soortmelding met key=5462 (was 8357).
|
||||
v_errormsg := 'Fout bepalen Printer-soortmelding';
|
||||
SELECT mld_ins_discipline_key, mld_stdmelding_key
|
||||
INTO v_discipline_key, v_stdmelding_key
|
||||
FROM mld_discipline md, mld_stdmelding sm
|
||||
WHERE sm.mld_stdmelding_key = 5462 -- Bijvullen kopi<70>ren/printen
|
||||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||||
--AND md.ins_srtdiscipline_key = 1 -- Facilitair
|
||||
AND md.ins_discipline_verwijder IS NULL;
|
||||
|
||||
-- Bepaal evt. object met omschrijving zoals in pbody achter EX!
|
||||
-- Alleen objecten onder disciplines met keys -1 t/m -1 worden beschouwd!
|
||||
v_errormsg := 'Fout bepalen Printer-object ' || v_ci;
|
||||
SELECT COUNT (*)
|
||||
INTO v_count
|
||||
FROM ins_v_aanwezigdeel d, ins_v_aanwezigsrtdeel sd, ins_v_aanwezigsrtgroep sg, ins_v_alg_onroerendgoed og
|
||||
WHERE d.ins_deel_upper = UPPER (v_ci)
|
||||
AND d.ins_deel_vervaldatum IS NULL
|
||||
@@ -28511,64 +28516,91 @@ BEGIN
|
||||
--AND sg.ins_discipline_key IN (-1)
|
||||
AND d.ins_alg_ruimte_type = 'R'
|
||||
AND d.ins_alg_ruimte_key = og.alg_onrgoed_keys;
|
||||
ELSIF v_ci IS NOT NULL
|
||||
THEN
|
||||
fac.writelog ('PROCESSEMAIL', 'W', v_errormsg, '');
|
||||
|
||||
IF v_count = 1
|
||||
THEN
|
||||
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_aanwezigsrtgroep sg, ins_v_alg_onroerendgoed og
|
||||
WHERE d.ins_deel_upper = UPPER (v_ci)
|
||||
AND d.ins_deel_vervaldatum IS NULL
|
||||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||||
--AND sg.ins_discipline_key IN (-1)
|
||||
AND d.ins_alg_ruimte_type = 'R'
|
||||
AND d.ins_alg_ruimte_key = og.alg_onrgoed_keys;
|
||||
ELSIF v_ci IS NOT NULL
|
||||
THEN
|
||||
fac.writelog ('PROCESSEMAIL', 'W', v_errormsg, '');
|
||||
END IF;
|
||||
|
||||
-- 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 toevoegen Printer-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, -- TODO:TO_CLOB???
|
||||
mld_stdmelding_key,
|
||||
mld_melding_t_uitvoertijd,
|
||||
prs_kostenplaats_key,
|
||||
prs_perslid_key,
|
||||
prs_perslid_key_voor,
|
||||
mld_melding_status,
|
||||
mld_melding_spoed,
|
||||
mld_melding_onderwerp)
|
||||
VALUES ('MLD',
|
||||
4, -- email
|
||||
DECODE (v_count, 1, v_locatie_key, 82), -- TODO:Westraven als printer niet kan worden bepaald?
|
||||
DECODE (v_count, 1, v_onrgoed_keys, NULL),
|
||||
SYSDATE,
|
||||
SUBSTR (pfrom || CHR (13) || CHR (10) || pbody, 1, 4000),
|
||||
v_stdmelding_key,
|
||||
NULL, --v_stdmelding_uvt,
|
||||
v_kostenplaats_key,
|
||||
v_perslid_key,
|
||||
v_perslid_key,
|
||||
NULL,
|
||||
3, -- prio normaal
|
||||
SUBSTR (v_onderwerp, 1, 80))
|
||||
RETURNING mld_melding_key
|
||||
INTO v_melding_key;
|
||||
|
||||
IF v_deel_key IS NOT NULL
|
||||
THEN
|
||||
v_errormsg := 'Fout toevoegen Printer-object';
|
||||
INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key)
|
||||
VALUES (v_melding_key, v_deel_key);
|
||||
END IF;
|
||||
|
||||
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
|
||||
|
||||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||||
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_melding_key);
|
||||
ELSE
|
||||
-- Ignore afzender.
|
||||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||||
VALUES (psessionid, 'errormsg', 'Afzender [' || pfrom || '] ongeldig - Neem contact op met uw systeembeheerder');
|
||||
END IF;
|
||||
|
||||
-- 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 toevoegen Printer-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, -- TODO:TO_CLOB???
|
||||
mld_stdmelding_key,
|
||||
mld_melding_t_uitvoertijd,
|
||||
prs_kostenplaats_key,
|
||||
prs_perslid_key,
|
||||
prs_perslid_key_voor,
|
||||
mld_melding_status,
|
||||
mld_melding_spoed,
|
||||
mld_melding_onderwerp)
|
||||
VALUES ('MLD',
|
||||
4, -- email
|
||||
DECODE (v_count, 1, v_locatie_key, 82), -- TODO:Westraven als printer niet kan worden bepaald?
|
||||
DECODE (v_count, 1, v_onrgoed_keys, NULL),
|
||||
SYSDATE,
|
||||
SUBSTR (pfrom || CHR (13) || CHR (10) || pbody, 1, 4000),
|
||||
v_stdmelding_key,
|
||||
NULL, --v_stdmelding_uvt,
|
||||
v_kostenplaats_key,
|
||||
v_perslid_key,
|
||||
v_perslid_key,
|
||||
NULL,
|
||||
3, -- prio normaal
|
||||
SUBSTR (v_onderwerp, 1, 80))
|
||||
RETURNING mld_melding_key
|
||||
INTO v_melding_key;
|
||||
|
||||
IF v_deel_key IS NOT NULL
|
||||
THEN
|
||||
v_errormsg := 'Fout toevoegen Printer-object';
|
||||
INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key)
|
||||
VALUES (v_melding_key, v_deel_key);
|
||||
END IF;
|
||||
|
||||
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
|
||||
|
||||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||||
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_melding_key);
|
||||
WHEN UPPER (pto) LIKE ('FD.FACILITOR@%') -- RWSN#55808/RWSN#62233: Eerst EBD, daarna FD
|
||||
OR UPPER (pto) LIKE ('ESIZE.FACILITOR@%')
|
||||
OR UPPER (pto) LIKE ('DIGIINKOOP.FACILITOR@%')
|
||||
THEN
|
||||
-- Negeer mails anders dan vanaf 'KCC@RWS.NL' (was 'MAILS.FD.EBFD@RWS.NL')!
|
||||
IF INSTR (UPPER (pfrom), 'KCC@RWS.NL') > 0
|
||||
-- VERVALLEN: Negeer mails anders dan vanaf 'KCC@RWS.NL' (was 'MAILS.FD.EBFD@RWS.NL')!
|
||||
-- Afzender-controle obv. configuratie in Eigen tabel (met key=2502)!
|
||||
v_errormsg := 'Fout bepalen afzender';
|
||||
SELECT COUNT (*)
|
||||
INTO v_count
|
||||
FROM fac_usrdata
|
||||
WHERE fac_usrtab_key = 2502
|
||||
AND UPPER (TRIM (fac_usrdata_omschr)) = UPPER (SUBSTR (pto, 1, INSTR (pto, '@') - 1))
|
||||
AND (fac_usrdata_omschr2 IS NULL OR UPPER (TRIM (fac_usrdata_omschr2)) = UPPER (pfrom));
|
||||
|
||||
IF v_count = 1
|
||||
THEN
|
||||
IF UPPER (pto) LIKE ('FD.FACILITOR@%')
|
||||
THEN
|
||||
@@ -28733,11 +28765,437 @@ BEGIN
|
||||
ELSE
|
||||
-- Ignore afzender.
|
||||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||||
VALUES (psessionid, 'errormsg', 'Afzender ongeldig - Neem contact op met uw systeembeheerder ');
|
||||
VALUES (psessionid, 'errormsg', 'Afzender [' || pfrom || '] ongeldig - Neem contact op met uw systeembeheerder');
|
||||
END IF;
|
||||
WHEN UPPER (pto) LIKE 'LEF@%'
|
||||
THEN
|
||||
-- Afzender-controle obv. configuratie in Eigen tabel (met key=2502)!
|
||||
v_errormsg := 'Fout bepalen afzender';
|
||||
SELECT COUNT (*)
|
||||
INTO v_count
|
||||
FROM fac_usrdata
|
||||
WHERE fac_usrtab_key = 2502
|
||||
AND UPPER (TRIM (fac_usrdata_omschr)) = UPPER (SUBSTR (pto, 1, INSTR (pto, '@') - 1))
|
||||
AND (fac_usrdata_omschr2 IS NULL OR UPPER (TRIM (fac_usrdata_omschr2)) = UPPER (pfrom));
|
||||
|
||||
IF v_count = 1
|
||||
THEN
|
||||
-- Bepaal persoon met loginnaam _HMAIL_LEF.
|
||||
v_errormsg := 'Fout bepalen LEF-melder';
|
||||
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_oslogin = '_HMAIL LEF'
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_key;
|
||||
|
||||
v_errormsg := 'Fout bepalen LEF-onderwerp';
|
||||
v_onderwerp := psubject;
|
||||
|
||||
-- Bepaal de afgesproken soortmelding voor deze stroom.
|
||||
v_errormsg := 'Fout bepalen LEF-soortmelding';
|
||||
v_stdmelding_key := c_lef_stdmld_key;
|
||||
SELECT mld_ins_discipline_key
|
||||
INTO v_discipline_key
|
||||
FROM mld_stdmelding
|
||||
WHERE mld_stdmelding_key = v_stdmelding_key;
|
||||
/*
|
||||
Formuliervelden (letterlijk):
|
||||
64608=Naam aanvrager
|
||||
64609=Naam opdrachtgever
|
||||
64628=Bedrijf/organisatie
|
||||
64648=E-mail
|
||||
64649=E-mail (opnieuw invullen)
|
||||
64650=Telefoonnummer
|
||||
64651=Vraagstuk
|
||||
64652=Doelstelling (wat wil je bereiken)
|
||||
64653=Aantal deelnemers (geschat)
|
||||
64654=Gewenste datum voor de sessie (dd-mm-jjjj)
|
||||
*/
|
||||
v_startnext := REGEXP_REPLACE (pbody, '\s', ' ');
|
||||
|
||||
-- Bepaal 'Naam aanvrager' uit body ter vulling van kenmerk met key=64608!
|
||||
v_errormsg := 'Fout bepalen Naam aanvrager';
|
||||
IF INSTR (UPPER (v_startnext), 'NAAM AANVRAGER') = 0
|
||||
OR INSTR (UPPER (v_startnext), 'NAAM OPDRACHTGEVER') = 0
|
||||
OR INSTR (UPPER (v_startnext), 'NAAM OPDRACHTGEVER') < INSTR (UPPER (v_startnext), 'NAAM AANVRAGER')
|
||||
THEN
|
||||
RETURN;
|
||||
ELSE
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, INSTR (UPPER (v_startnext), 'NAAM AANVRAGER') + 14));
|
||||
v_aanvrager := TRIM (SUBSTR (v_startnext, 1, INSTR (UPPER (v_startnext), 'NAAM OPDRACHTGEVER') - 1));
|
||||
END IF;
|
||||
|
||||
-- Bepaal 'Naam opdrachtgever' uit body ter vulling van kenmerk met key=64609!
|
||||
v_errormsg := 'Fout bepalen Naam opdrachtgever';
|
||||
IF INSTR (UPPER (v_startnext), 'NAAM OPDRACHTGEVER') = 0
|
||||
OR INSTR (UPPER (v_startnext), 'BEDRIJF/ORGANISATIE') = 0
|
||||
OR INSTR (UPPER (v_startnext), 'BEDRIJF/ORGANISATIE') < INSTR (UPPER (v_startnext), 'NAAM OPDRACHTGEVER')
|
||||
THEN
|
||||
RETURN;
|
||||
ELSE
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, INSTR (UPPER (v_startnext), 'NAAM OPDRACHTGEVER') + 18));
|
||||
v_opdrachtgever := TRIM (SUBSTR (v_startnext, 1, INSTR (UPPER (v_startnext), 'BEDRIJF/ORGANISATIE') - 1));
|
||||
END IF;
|
||||
|
||||
-- Bepaal 'Bedrijf/organisatie' uit body ter vulling van kenmerk met key=64628!
|
||||
v_errormsg := 'Fout bepalen Bedrijf/organisatie';
|
||||
IF INSTR (UPPER (v_startnext), 'BEDRIJF/ORGANISATIE') = 0
|
||||
OR INSTR (UPPER (v_startnext), 'E-MAIL') = 0
|
||||
OR INSTR (UPPER (v_startnext), 'E-MAIL') < INSTR (UPPER (v_startnext), 'BEDRIJF/ORGANISATIE')
|
||||
THEN
|
||||
RETURN;
|
||||
ELSE
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, INSTR (UPPER (v_startnext), 'BEDRIJF/ORGANISATIE') + 19));
|
||||
v_organisatie := TRIM (SUBSTR (v_startnext, 1, INSTR (UPPER (v_startnext), 'E-MAIL') - 1));
|
||||
END IF;
|
||||
|
||||
-- Bepaal 'E-mail' uit body ter vulling van kenmerk met key=64648!
|
||||
v_errormsg := 'Fout bepalen E-mail';
|
||||
IF INSTR (UPPER (v_startnext), 'E-MAIL') = 0
|
||||
OR INSTR (UPPER (v_startnext), 'E-MAIL (OPNIEUW INVULLEN)') = 0
|
||||
OR INSTR (UPPER (v_startnext), 'E-MAIL (OPNIEUW INVULLEN)') < INSTR (UPPER (v_startnext), 'E-MAIL')
|
||||
THEN
|
||||
RETURN;
|
||||
ELSE
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, INSTR (UPPER (v_startnext), 'E-MAIL') + 6));
|
||||
v_email1 := TRIM (SUBSTR (v_startnext, 1, INSTR (UPPER (v_startnext), 'E-MAIL (OPNIEUW INVULLEN)') - 1));
|
||||
END IF;
|
||||
|
||||
-- Bepaal 'E-mail (opnieuw invullen)' uit body ter vulling van kenmerk met key=64649!
|
||||
v_errormsg := 'Fout bepalen E-mail (opnieuw invullen)';
|
||||
IF INSTR (UPPER (v_startnext), 'E-MAIL (OPNIEUW INVULLEN)') = 0
|
||||
OR INSTR (UPPER (v_startnext), 'TELEFOONNUMMER') = 0
|
||||
OR INSTR (UPPER (v_startnext), 'TELEFOONNUMMER') < INSTR (UPPER (v_startnext), 'E-MAIL (OPNIEUW INVULLEN)')
|
||||
THEN
|
||||
RETURN;
|
||||
ELSE
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, INSTR (UPPER (v_startnext), 'E-MAIL (OPNIEUW INVULLEN)') + 25));
|
||||
v_email2 := TRIM (SUBSTR (v_startnext, 1, INSTR (UPPER (v_startnext), 'TELEFOONNUMMER') - 1));
|
||||
END IF;
|
||||
|
||||
-- Bepaal 'Telefoonnummer' uit body ter vulling van kenmerk met key=64650!
|
||||
v_errormsg := 'Fout bepalen Telefoonnummer';
|
||||
IF INSTR (UPPER (v_startnext), 'TELEFOONNUMMER') = 0
|
||||
OR INSTR (UPPER (v_startnext), 'VRAAGSTUK') = 0
|
||||
OR INSTR (UPPER (v_startnext), 'VRAAGSTUK') < INSTR (UPPER (v_startnext), 'TELEFOONNUMMER')
|
||||
THEN
|
||||
RETURN;
|
||||
ELSE
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, INSTR (UPPER (v_startnext), 'TELEFOONNUMMER') + 14));
|
||||
v_telefoonnr := TRIM (SUBSTR (v_startnext, 1, INSTR (UPPER (v_startnext), 'VRAAGSTUK') - 1));
|
||||
END IF;
|
||||
|
||||
-- Bepaal 'Vraagstuk' uit body ter vulling van kenmerk met key=64651!
|
||||
v_errormsg := 'Fout bepalen Vraagstuk';
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, INSTR (UPPER (v_startnext), 'VRAAGSTUK') + 9));
|
||||
v_nextpos := LEAST (INSTR (UPPER (v_startnext), 'DOELSTELLING (WAT WIL JE BEREIKEN)'),
|
||||
INSTR (UPPER (v_startnext), 'AANTAL DEELNEMERS (GESCHAT)'),
|
||||
INSTR (UPPER (v_startnext), 'GEWENSTE DATUM VOOR DE SESSIE (DD-MM-JJJJ)'));
|
||||
IF v_nextpos = 0
|
||||
THEN
|
||||
v_vraagstuk := TRIM (SUBSTR (v_startnext, 1));
|
||||
ELSE -- v_nextpos > 0
|
||||
v_vraagstuk := TRIM (SUBSTR (v_startnext, 1, v_nextpos - 1));
|
||||
END IF;
|
||||
|
||||
-- Bepaal 'Optioneel1' uit body ter vulling van kenmerk met key=64652, 64653 of 64654!
|
||||
v_errormsg := 'Fout bepalen Optioneel1';
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, v_nextpos));
|
||||
IF UPPER (v_startnext) LIKE 'DOELSTELLING (WAT WIL JE BEREIKEN)%'
|
||||
THEN
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, 34 + 1));
|
||||
v_nextpos := LEAST (INSTR (UPPER (v_startnext), 'AANTAL DEELNEMERS (GESCHAT)'),
|
||||
INSTR (UPPER (v_startnext), 'GEWENSTE DATUM VOOR DE SESSIE (DD-MM-JJJJ)'));
|
||||
IF v_nextpos = 0
|
||||
THEN
|
||||
v_doelstelling := TRIM (SUBSTR (v_startnext, 1));
|
||||
ELSE -- v_nextpos > 0
|
||||
v_doelstelling := TRIM (SUBSTR (v_startnext, 1, v_nextpos - 1));
|
||||
END IF;
|
||||
ELSIF UPPER (v_startnext) LIKE 'AANTAL DEELNEMERS (GESCHAT)%'
|
||||
THEN
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, 27 + 1));
|
||||
v_nextpos := INSTR (UPPER (v_startnext), 'GEWENSTE DATUM VOOR DE SESSIE (DD-MM-JJJJ)');
|
||||
IF v_nextpos = 0
|
||||
THEN
|
||||
v_aantal := TRIM (SUBSTR (v_startnext, 1));
|
||||
ELSE -- v_nextpos > 0
|
||||
v_aantal := TRIM (SUBSTR (v_startnext, 1, v_nextpos - 1));
|
||||
END IF;
|
||||
ELSIF UPPER (v_startnext) LIKE 'GEWENSTE DATUM VOOR DE SESSIE (DD-MM-JJJJ)%'
|
||||
THEN
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, 42 + 1));
|
||||
v_nextpos := 0;
|
||||
v_datum := TRIM (SUBSTR (v_startnext, 1));
|
||||
END IF;
|
||||
|
||||
-- Bepaal 'Optioneel2' uit body ter vulling van kenmerk met key=64653 of 64654!
|
||||
v_errormsg := 'Fout bepalen Optioneel2';
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, v_nextpos));
|
||||
IF UPPER (v_startnext) LIKE 'AANTAL DEELNEMERS (GESCHAT)%'
|
||||
THEN
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, 27 + 1));
|
||||
v_nextpos := INSTR (UPPER (v_startnext), 'GEWENSTE DATUM VOOR DE SESSIE (DD-MM-JJJJ)');
|
||||
IF v_nextpos = 0
|
||||
THEN
|
||||
v_aantal := TRIM (SUBSTR (v_startnext, 1));
|
||||
ELSE -- v_nextpos > 0
|
||||
v_aantal := TRIM (SUBSTR (v_startnext, 1, v_nextpos - 1));
|
||||
END IF;
|
||||
ELSIF UPPER (v_startnext) LIKE 'GEWENSTE DATUM VOOR DE SESSIE (DD-MM-JJJJ)%'
|
||||
THEN
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, 42 + 1));
|
||||
v_nextpos := 0;
|
||||
v_datum := TRIM (SUBSTR (v_startnext, 1));
|
||||
END IF;
|
||||
|
||||
-- Bepaal 'Optioneel3' uit body ter vulling van kenmerk met key=64654!
|
||||
v_errormsg := 'Fout bepalen Optioneel3';
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, v_nextpos));
|
||||
IF UPPER (v_startnext) LIKE 'GEWENSTE DATUM VOOR DE SESSIE (DD-MM-JJJJ)%'
|
||||
THEN
|
||||
v_startnext := TRIM (SUBSTR (v_startnext, 42 + 1));
|
||||
v_nextpos := 0;
|
||||
v_datum := TRIM (SUBSTR (v_startnext, 1));
|
||||
END IF;
|
||||
|
||||
-- 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 toevoegen LEF-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, -- TODO:TO_CLOB???
|
||||
mld_stdmelding_key,
|
||||
mld_melding_t_uitvoertijd,
|
||||
prs_kostenplaats_key,
|
||||
prs_perslid_key,
|
||||
prs_perslid_key_voor,
|
||||
mld_melding_status,
|
||||
mld_melding_spoed,
|
||||
mld_melding_onderwerp)
|
||||
VALUES ('MLD',
|
||||
4, -- email
|
||||
NULL, -- TODO:Geen locatie?
|
||||
NULL,
|
||||
SYSDATE,
|
||||
--SUBSTR (pfrom || CHR (13) || CHR (10) || pbody, 1, 4000),
|
||||
SUBSTR (v_aanvrager
|
||||
|| CHR (13) || CHR (10) || v_opdrachtgever
|
||||
|| CHR (13) || CHR (10) || v_organisatie
|
||||
|| CHR (13) || CHR (10) || v_email1
|
||||
|| CHR (13) || CHR (10) || v_email2
|
||||
|| CHR (13) || CHR (10) || v_telefoonnr
|
||||
|| CHR (13) || CHR (10) || v_vraagstuk
|
||||
|| CHR (13) || CHR (10) || v_doelstelling
|
||||
|| CHR (13) || CHR (10) || v_aantal
|
||||
|| CHR (13) || CHR (10) || v_datum,
|
||||
1, 4000),
|
||||
v_stdmelding_key,
|
||||
NULL, --v_stdmelding_uvt,
|
||||
v_kostenplaats_key,
|
||||
v_perslid_key,
|
||||
v_perslid_key,
|
||||
NULL,
|
||||
3, -- prio normaal
|
||||
SUBSTR (v_onderwerp, 1, 80))
|
||||
RETURNING mld_melding_key
|
||||
INTO v_melding_key;
|
||||
/*
|
||||
Formuliervelden (letterlijk):
|
||||
64608=Naam aanvrager
|
||||
64609=Naam opdrachtgever
|
||||
64628=Bedrijf/organisatie
|
||||
64648=E-mail
|
||||
64649=E-mail (opnieuw invullen)
|
||||
64650=Telefoonnummer
|
||||
64651=Vraagstuk
|
||||
64652=Doelstelling (wat wil je bereiken)
|
||||
64653=Aantal deelnemers (geschat)
|
||||
64654=Gewenste datum voor de sessie (dd-mm-jjjj)
|
||||
*/
|
||||
-- Aanname dat kenmerken bestaan en verplichte waarden zijn bepaald!
|
||||
v_errormsg := 'Fout toevoegen kenmerk Naam aanvrager';
|
||||
SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte)
|
||||
INTO v_srtkenmerk_type, v_srtkenmerk_lengte
|
||||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||||
WHERE k.mld_kenmerk_verwijder IS NULL
|
||||
AND k.mld_kenmerk_key = 64608
|
||||
AND k.mld_stdmelding_key = v_stdmelding_key
|
||||
AND k.mld_kenmerk_niveau = 'S'
|
||||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||||
IF v_srtkenmerk_type = 'C' AND v_aanvrager IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||||
VALUES (v_melding_key, 64608, SUBSTR (v_aanvrager, 1, v_srtkenmerk_lengte));
|
||||
END IF;
|
||||
|
||||
v_errormsg := 'Fout toevoegen kenmerk Naam opdrachtgever';
|
||||
SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte)
|
||||
INTO v_srtkenmerk_type, v_srtkenmerk_lengte
|
||||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||||
WHERE k.mld_kenmerk_verwijder IS NULL
|
||||
AND k.mld_kenmerk_key = 64609
|
||||
AND k.mld_stdmelding_key = v_stdmelding_key
|
||||
AND k.mld_kenmerk_niveau = 'S'
|
||||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||||
IF v_srtkenmerk_type = 'C' AND v_opdrachtgever IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||||
VALUES (v_melding_key, 64609, SUBSTR (v_opdrachtgever, 1, v_srtkenmerk_lengte));
|
||||
END IF;
|
||||
|
||||
v_errormsg := 'Fout toevoegen kenmerk Bedrijf/organisatie';
|
||||
SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte)
|
||||
INTO v_srtkenmerk_type, v_srtkenmerk_lengte
|
||||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||||
WHERE k.mld_kenmerk_verwijder IS NULL
|
||||
AND k.mld_kenmerk_key = 64628
|
||||
AND k.mld_stdmelding_key = v_stdmelding_key
|
||||
AND k.mld_kenmerk_niveau = 'S'
|
||||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||||
IF v_srtkenmerk_type = 'C' AND v_organisatie IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||||
VALUES (v_melding_key, 64628, SUBSTR (v_organisatie, 1, v_srtkenmerk_lengte));
|
||||
END IF;
|
||||
|
||||
v_errormsg := 'Fout toevoegen kenmerk E-mail';
|
||||
SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte)
|
||||
INTO v_srtkenmerk_type, v_srtkenmerk_lengte
|
||||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||||
WHERE k.mld_kenmerk_verwijder IS NULL
|
||||
AND k.mld_kenmerk_key = 64648
|
||||
AND k.mld_stdmelding_key = v_stdmelding_key
|
||||
AND k.mld_kenmerk_niveau = 'S'
|
||||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||||
IF v_srtkenmerk_type = 'C' AND v_email1 IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||||
VALUES (v_melding_key, 64648, SUBSTR (v_email1, 1, v_srtkenmerk_lengte));
|
||||
END IF;
|
||||
|
||||
v_errormsg := 'Fout toevoegen kenmerk E-mail (opnieuw invullen)';
|
||||
SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte)
|
||||
INTO v_srtkenmerk_type, v_srtkenmerk_lengte
|
||||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||||
WHERE k.mld_kenmerk_verwijder IS NULL
|
||||
AND k.mld_kenmerk_key = 64649
|
||||
AND k.mld_stdmelding_key = v_stdmelding_key
|
||||
AND k.mld_kenmerk_niveau = 'S'
|
||||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||||
IF v_srtkenmerk_type = 'C' AND v_email2 IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||||
VALUES (v_melding_key, 64649, SUBSTR (v_email2, 1, v_srtkenmerk_lengte));
|
||||
END IF;
|
||||
|
||||
v_errormsg := 'Fout toevoegen kenmerk Telefoonnummer';
|
||||
SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte)
|
||||
INTO v_srtkenmerk_type, v_srtkenmerk_lengte
|
||||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||||
WHERE k.mld_kenmerk_verwijder IS NULL
|
||||
AND k.mld_kenmerk_key = 64650
|
||||
AND k.mld_stdmelding_key = v_stdmelding_key
|
||||
AND k.mld_kenmerk_niveau = 'S'
|
||||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||||
IF v_srtkenmerk_type = 'C' AND v_telefoonnr IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||||
VALUES (v_melding_key, 64650, SUBSTR (v_telefoonnr, 1, v_srtkenmerk_lengte));
|
||||
END IF;
|
||||
|
||||
v_errormsg := 'Fout toevoegen kenmerk Vraagstuk';
|
||||
SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte)
|
||||
INTO v_srtkenmerk_type, v_srtkenmerk_lengte
|
||||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||||
WHERE k.mld_kenmerk_verwijder IS NULL
|
||||
AND k.mld_kenmerk_key = 64651
|
||||
AND k.mld_stdmelding_key = v_stdmelding_key
|
||||
AND k.mld_kenmerk_niveau = 'S'
|
||||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||||
IF v_srtkenmerk_type = 'C' AND v_vraagstuk IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||||
VALUES (v_melding_key, 64651, SUBSTR (v_vraagstuk, 1, v_srtkenmerk_lengte));
|
||||
END IF;
|
||||
|
||||
v_errormsg := 'Fout toevoegen kenmerk Doelstelling (wat wil je bereiken)';
|
||||
SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte)
|
||||
INTO v_srtkenmerk_type, v_srtkenmerk_lengte
|
||||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||||
WHERE k.mld_kenmerk_verwijder IS NULL
|
||||
AND k.mld_kenmerk_key = 64652
|
||||
AND k.mld_stdmelding_key = v_stdmelding_key
|
||||
AND k.mld_kenmerk_niveau = 'S'
|
||||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||||
IF v_srtkenmerk_type = 'C' AND v_doelstelling IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||||
VALUES (v_melding_key, 64652, SUBSTR (v_doelstelling, 1, v_srtkenmerk_lengte));
|
||||
END IF;
|
||||
|
||||
v_errormsg := 'Fout toevoegen kenmerk Aantal deelnemers (geschat)';
|
||||
SELECT MIN (sk.mld_srtkenmerk_kenmerktype)
|
||||
INTO v_srtkenmerk_type
|
||||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||||
WHERE k.mld_kenmerk_verwijder IS NULL
|
||||
AND k.mld_kenmerk_key = 64653
|
||||
AND k.mld_stdmelding_key = v_stdmelding_key
|
||||
AND k.mld_kenmerk_niveau = 'S'
|
||||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||||
IF v_srtkenmerk_type = 'N' AND fac.safe_to_number (v_aantal) IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||||
VALUES (v_melding_key, 64653, v_aantal);
|
||||
END IF;
|
||||
|
||||
v_errormsg := 'Fout toevoegen kenmerk Gewenste datum voor de sessie (dd-mm-jjjj)';
|
||||
SELECT MIN (sk.mld_srtkenmerk_kenmerktype), MIN (sk.mld_srtkenmerk_lengte)
|
||||
INTO v_srtkenmerk_type, v_srtkenmerk_lengte
|
||||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||||
WHERE k.mld_kenmerk_verwijder IS NULL
|
||||
AND k.mld_kenmerk_key = 64654
|
||||
AND k.mld_stdmelding_key = v_stdmelding_key
|
||||
AND k.mld_kenmerk_niveau = 'S'
|
||||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||||
IF v_srtkenmerk_type = 'C' AND v_datum IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||||
VALUES (v_melding_key, 64654, SUBSTR (v_datum, 1, v_srtkenmerk_lengte));
|
||||
END IF;
|
||||
|
||||
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
|
||||
|
||||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||||
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_melding_key);
|
||||
|
||||
v_errormsg := 'Fout toevoegen originele mail';
|
||||
SELECT MIN (sk.mld_srtkenmerk_kenmerktype)
|
||||
INTO v_srtkenmerk_type
|
||||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||||
WHERE k.mld_kenmerk_verwijder IS NULL
|
||||
AND k.mld_kenmerk_key = -1
|
||||
AND k.mld_stdmelding_key = v_stdmelding_key
|
||||
AND k.mld_kenmerk_niveau = 'S'
|
||||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||||
IF v_srtkenmerk_type = 'M'
|
||||
THEN
|
||||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||||
VALUES (psessionid, 'kenmerkorgmailpath', 'MLD\M' || TO_CHAR (TRUNC (v_melding_key / 1000), 'FM0000') || '___\M' || v_melding_key || '\' || 999 || '\');
|
||||
END IF;
|
||||
ELSE
|
||||
-- Ignore afzender.
|
||||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||||
VALUES (psessionid, 'errormsg', 'Afzender [' || pfrom || '] ongeldig - Neem contact op met uw systeembeheerder');
|
||||
END IF;
|
||||
ELSE
|
||||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||||
VALUES (psessionid, 'errormsg', 'Ontvanger ongeldig - Neem contact op met uw systeembeheerder ');
|
||||
VALUES (psessionid, 'errormsg', 'Ontvanger [' || pto || '] ongeldig - Neem contact op met uw systeembeheerder');
|
||||
END CASE;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
@@ -28747,7 +29205,7 @@ EXCEPTION
|
||||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.writelog ('PROCESSEMAIL', 'E', 'RWSN_processemail afgebroken!', '[' || pfrom || '] ' || v_errormsg);
|
||||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||||
VALUES (psessionid, 'errormsg', 'Database fout - Neem contact op met uw systeembeheerder ');
|
||||
VALUES (psessionid, 'errormsg', 'Database fout - Neem contact op met uw systeembeheerder');
|
||||
COMMIT;
|
||||
END;
|
||||
/
|
||||
|
||||
Reference in New Issue
Block a user