CSUN#30374 -- Koppeling AS400-FACILITOR (restpunten)
CSUN#30375 -- E-mail import ABN AMRO svn path=/Customer/trunk/; revision=22568
This commit is contained in:
560
CSUN/CSUN.sql
560
CSUN/CSUN.sql
@@ -318,78 +318,193 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE CSUN_processemail (pfrom IN VARCHAR2,
|
||||
|
||||
CREATE OR REPLACE FUNCTION csun_get_html_valuepair (
|
||||
p_text IN VARCHAR2,
|
||||
p_start IN VARCHAR2,
|
||||
p_eind IN VARCHAR2)
|
||||
RETURN VARCHAR2
|
||||
AS
|
||||
BEGIN
|
||||
RETURN p_start || ': '
|
||||
|| SUBSTR (
|
||||
p_text,
|
||||
INSTR (
|
||||
p_text,
|
||||
CHR (10) || CHR (13) || p_start || CHR (10) || CHR (13))
|
||||
+ LENGTH (p_start)
|
||||
+ 4,
|
||||
INSTR (
|
||||
p_text,
|
||||
CHR (10) || CHR (13) || p_eind || CHR (10) || CHR (13))
|
||||
- (INSTR (
|
||||
p_text,
|
||||
CHR (10) || CHR (13) || p_start || CHR (10) || CHR (13))
|
||||
+ LENGTH (p_start)
|
||||
+ 4));
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE csun_processemail (pfrom IN VARCHAR2,
|
||||
pto IN VARCHAR2,
|
||||
psubject IN VARCHAR2,
|
||||
pbody IN VARCHAR2,
|
||||
pextra IN VARCHAR2)
|
||||
AS
|
||||
sender prs_perslid.prs_perslid_key%TYPE;
|
||||
kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
|
||||
mldkey mld_melding.mld_melding_key%TYPE;
|
||||
stdmelding mld_stdmelding.mld_stdmelding_key%TYPE;
|
||||
subject_regexp fac_setting.fac_setting_default%TYPE;
|
||||
kkey mld_kenmerk.mld_kenmerk_key%TYPE;
|
||||
errormsg fac_result.fac_result_waarde%TYPE;
|
||||
behandelaar_key mld_melding.mld_melding_behandelaar_key%TYPE;
|
||||
mldnum VARCHAR2(4000);
|
||||
srtdisc VARCHAR2(4000);
|
||||
cnt NUMBER(10);
|
||||
v_flag_on_fenote NUMBER(10);
|
||||
v_flag_on_bonote NUMBER(10);
|
||||
v_from VARCHAR2(4000);
|
||||
|
||||
sender prs_perslid.prs_perslid_key%TYPE;
|
||||
kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
|
||||
mldkey mld_melding.mld_melding_key%TYPE;
|
||||
stdmelding mld_stdmelding.mld_stdmelding_key%TYPE;
|
||||
subject_regexp fac_setting.fac_setting_default%TYPE;
|
||||
kkey mld_kenmerk.mld_kenmerk_key%TYPE;
|
||||
errormsg fac_result.fac_result_waarde%TYPE;
|
||||
behandelaar_key mld_melding.mld_melding_behandelaar_key%TYPE;
|
||||
mldnum VARCHAR2 (4000);
|
||||
srtdisc VARCHAR2 (4000);
|
||||
cnt NUMBER (10);
|
||||
v_flag_on_fenote NUMBER (10);
|
||||
v_flag_on_bonote NUMBER (10);
|
||||
v_from VARCHAR2 (4000);
|
||||
v_body VARCHAR2 (4000);
|
||||
v_pos NUMBER;
|
||||
BEGIN
|
||||
errormsg := '(0x143)';
|
||||
|
||||
-- Verwijder de Bounce Address Tag Validation
|
||||
IF pfrom LIKE 'prvs=%'
|
||||
THEN
|
||||
v_from := SUBSTR(pfrom, INSTR(pfrom, '=', -1)+1);
|
||||
v_from := SUBSTR (pfrom, INSTR (pfrom, '=', -1) + 1);
|
||||
ELSE
|
||||
v_from := pfrom;
|
||||
END IF;
|
||||
|
||||
-- DBMS_OUTPUT.PUT_LINE('v_from: '||v_from);
|
||||
v_body := pbody;
|
||||
|
||||
-- DBMS_OUTPUT.PUT_LINE('v_from: '||v_from);
|
||||
|
||||
-- Valideer de sender in pfrom: kennen we deze?
|
||||
SELECT MIN (prs_perslid_key), MIN (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_verwijder IS NULL
|
||||
AND (UPPER (prs_perslid_email) = UPPER(v_from)
|
||||
OR EXISTS
|
||||
(SELECT *
|
||||
FROM prs_kenmerklink kl
|
||||
WHERE prs_kenmerk_key = 1020
|
||||
AND prs_link_key = p.prs_perslid_key
|
||||
AND UPPER (kl.prs_kenmerklink_waarde) =
|
||||
UPPER (v_from)));
|
||||
AND prs_perslid_verwijder IS NULL
|
||||
AND (UPPER (prs_perslid_email) = UPPER (v_from)
|
||||
OR EXISTS
|
||||
(SELECT *
|
||||
FROM prs_kenmerklink kl
|
||||
WHERE prs_kenmerk_key = 1020
|
||||
AND prs_link_key = p.prs_perslid_key
|
||||
AND UPPER (kl.prs_kenmerklink_waarde) = UPPER (v_from)));
|
||||
|
||||
CASE
|
||||
WHEN UPPER (pto) LIKE 'SERVICEDESK@%' OR UPPER (pto) LIKE 'DJI@%'
|
||||
THEN
|
||||
errormsg := '(0x145)';
|
||||
|
||||
-- bij abnamro gaan we de html body nog even opschonen
|
||||
IF sender = 23
|
||||
THEN
|
||||
-- pas de omschrijving van de melding aan. Verwijder onnodige html ballast.
|
||||
v_pos := INSTR (pbody, '--> Werkbon');
|
||||
|
||||
IF v_pos > 0
|
||||
THEN
|
||||
v_body :=
|
||||
csun_get_html_valuepair (pbody,
|
||||
'Planonnr.',
|
||||
'Omschrijving')
|
||||
|| CHR (10)
|
||||
|| csun_get_html_valuepair (pbody,
|
||||
'Omschrijving',
|
||||
'Toelichting')
|
||||
|| CHR (10)
|
||||
|| csun_get_html_valuepair (pbody,
|
||||
'Toelichting',
|
||||
'Apparaatnummer')
|
||||
|| CHR (10)
|
||||
|| csun_get_html_valuepair (pbody,
|
||||
'Apparaatnummer',
|
||||
'Locatie')
|
||||
|| CHR (10)
|
||||
|| csun_get_html_valuepair (pbody, 'Gebouw', 'Adres')
|
||||
|| CHR (10)
|
||||
|| csun_get_html_valuepair (
|
||||
pbody,
|
||||
'Adres',
|
||||
'Postcode ' || CHR (38) || 'amp; plaats')
|
||||
|| CHR (10)
|
||||
|| csun_get_html_valuepair (
|
||||
pbody,
|
||||
'Postcode ' || CHR (38) || 'amp; plaats',
|
||||
'Ruimte')
|
||||
|| CHR (10)
|
||||
|| csun_get_html_valuepair (pbody, 'Ruimte', 'Melder')
|
||||
|| CHR (10)
|
||||
|| REPLACE (
|
||||
csun_get_html_valuepair (pbody,
|
||||
'Melder',
|
||||
'Contactgegevens'),
|
||||
'Melder' || CHR (10) || CHR (13))
|
||||
|| CHR (10)
|
||||
|| REPLACE (
|
||||
csun_get_html_valuepair (pbody,
|
||||
'Contactgegevens',
|
||||
'Telefoonnummer extern'),
|
||||
CHR (10) || CHR (13))
|
||||
|| CHR (10)
|
||||
|| REPLACE (
|
||||
csun_get_html_valuepair (pbody,
|
||||
'Telefoonnummer extern',
|
||||
'E-mail'),
|
||||
CHR (10) || CHR (13))
|
||||
|| CHR (10)
|
||||
|| csun_get_html_valuepair (pbody, 'E-mail', 'Melddatum')
|
||||
|| CHR (10)
|
||||
|| csun_get_html_valuepair (pbody, 'Melddatum', 'Urgentie')
|
||||
|| CHR (10)
|
||||
|| csun_get_html_valuepair (
|
||||
pbody,
|
||||
'Urgentie',
|
||||
'ABN AMRO Bank N.V.Facility Desk020 - 6288060facility.desk@nl.abnamro.com')
|
||||
|| CHR (10)
|
||||
|| 'Origineel voor testdoeleinden:' || CHR(10)
|
||||
|| pbody;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- append (as a note?) to an existing melding if #key is found in the subject
|
||||
-- Alternatief was: scannen van fac_srtnotificatie_oms maar dat voelt ook niet echt lekker
|
||||
-- subject_regexp := fac.getsetting ('mld_reply_subject_regexp'); -- [[:alpha:]]*[[:digit:]]{3,}
|
||||
subject_regexp := '[[:alpha:]]*[[:digit:]]{3,}';
|
||||
mldnum := REGEXP_SUBSTR(psubject, subject_regexp, 1, 1, 'i'); -- MA12345
|
||||
srtdisc := REGEXP_SUBSTR(mldnum, '[[:alpha:]]', 1, 1, 'i'); -- MA
|
||||
mldkey := fac.safe_to_number(substr(mldnum, length(srtdisc) + 1));
|
||||
-- DBMS_OUTPUT.PUT_LINE('mldnum: ' || mldnum);
|
||||
-- DBMS_OUTPUT.PUT_LINE('srtdisc: ' || srtdisc);
|
||||
-- DBMS_OUTPUT.PUT_LINE('mldkey: ' || mldkey);
|
||||
mldnum :=
|
||||
REGEXP_SUBSTR (psubject,
|
||||
subject_regexp,
|
||||
1,
|
||||
1,
|
||||
'i'); -- MA12345
|
||||
srtdisc :=
|
||||
REGEXP_SUBSTR (mldnum,
|
||||
'[[:alpha:]]',
|
||||
1,
|
||||
1,
|
||||
'i'); -- MA
|
||||
mldkey := fac.safe_to_number (SUBSTR (mldnum, LENGTH (srtdisc) + 1));
|
||||
|
||||
-- DBMS_OUTPUT.PUT_LINE('mldnum: ' || mldnum);
|
||||
-- DBMS_OUTPUT.PUT_LINE('srtdisc: ' || srtdisc);
|
||||
-- DBMS_OUTPUT.PUT_LINE('mldkey: ' || mldkey);
|
||||
-- We eisen
|
||||
-- - Goed meldingnummer
|
||||
-- - Goede srtdiscipline
|
||||
-- - Afzender is degene voor wie de melding was
|
||||
-- suggested extensions: ook collega's toestaan?
|
||||
SELECT MIN(mm.mld_stdmelding_key)
|
||||
SELECT MIN (mm.mld_stdmelding_key)
|
||||
INTO stdmelding
|
||||
FROM mld_melding mm, mld_stdmelding msm, ins_tab_discipline insd, ins_srtdiscipline isd
|
||||
FROM mld_melding mm,
|
||||
mld_stdmelding msm,
|
||||
ins_tab_discipline insd,
|
||||
ins_srtdiscipline isd
|
||||
WHERE mm.mld_melding_key = mldkey
|
||||
AND mm.mld_stdmelding_key = msm.mld_stdmelding_key
|
||||
AND msm.mld_ins_discipline_key = insd.ins_discipline_key
|
||||
@@ -399,7 +514,8 @@ BEGIN
|
||||
-- prefix letter
|
||||
--AND isd.ins_srtdiscipline_prefix = srtdisc
|
||||
AND mm.prs_perslid_key_voor = sender;
|
||||
-- DBMS_OUTPUT.PUT_LINE('mld_stdmelding_key: ' || TO_CHAR(stdmelding));
|
||||
|
||||
-- DBMS_OUTPUT.PUT_LINE('mld_stdmelding_key: ' || TO_CHAR(stdmelding));
|
||||
|
||||
BEGIN
|
||||
SELECT mld_melding_behandelaar_key
|
||||
@@ -409,188 +525,234 @@ BEGIN
|
||||
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 WHEN OTHERS
|
||||
THEN
|
||||
behandelaar_key := NULL;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
behandelaar_key := NULL;
|
||||
END;
|
||||
|
||||
IF (stdmelding IS NOT NULL) AND behandelaar_key IS NOT NULL THEN -- Bestaande melding en behandelaar is bekend.
|
||||
IF (stdmelding IS NOT NULL) AND behandelaar_key IS NOT NULL
|
||||
THEN -- Bestaande melding en behandelaar is bekend.
|
||||
INSERT INTO mld_melding_note (mld_melding_key,
|
||||
mld_melding_note_omschrijving,
|
||||
prs_perslid_key,
|
||||
mld_melding_note_flag)
|
||||
VALUES (mldkey,
|
||||
SUBSTR (
|
||||
psubject || CHR (13) || CHR (10)
|
||||
|| 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
|
||||
sender,
|
||||
1); -- 1 is zichtbaar FE want zelf ingevoerd.
|
||||
VALUES (mldkey,
|
||||
SUBSTR (
|
||||
psubject || CHR (13) || CHR (10)
|
||||
|| REPLACE (
|
||||
SUBSTR (v_body,
|
||||
1,
|
||||
4000 - (LENGTH (psubject) + 2)),
|
||||
CHR (13) || CHR (10) || CHR (13) || CHR (10),
|
||||
CHR (13) || CHR (10)),
|
||||
1,
|
||||
4000), -- verwijder onnodige witregels
|
||||
sender,
|
||||
1); -- 1 is zichtbaar FE want zelf ingevoerd.
|
||||
|
||||
-- Default tracking is even goed genoeg
|
||||
fac.trackaction('MLDNOT', mldkey, sender, NULL, '#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
|
||||
-- DBMS_OUTPUT.PUT_LINE('Notitie toegevoegd.');
|
||||
fac.trackaction ('MLDNOT',
|
||||
mldkey,
|
||||
sender,
|
||||
NULL,
|
||||
'#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
|
||||
-- DBMS_OUTPUT.PUT_LINE('Notitie toegevoegd.');
|
||||
|
||||
-- Notificatie naar behandelaar
|
||||
fac.putnotificationsrtprio(null, behandelaar_key, 'MLDMAI', mldkey, 'Melding ' || mldkey || ' is door de klant aangepast.', 2, null, null, null, 2, null);
|
||||
fac.putnotificationsrtprio (
|
||||
NULL,
|
||||
behandelaar_key,
|
||||
'MLDMAI',
|
||||
mldkey,
|
||||
'Melding ' || mldkey || ' is door de klant aangepast.',
|
||||
2,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
2,
|
||||
NULL);
|
||||
|
||||
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet
|
||||
BEGIN
|
||||
SELECT fac_setting_pvalue
|
||||
INTO v_flag_on_fenote
|
||||
FROM fac_setting
|
||||
WHERE fac_setting_name = 'mld_flag_on_fenote';
|
||||
|
||||
SELECT fac_setting_pvalue
|
||||
INTO v_flag_on_fenote
|
||||
FROM fac_setting
|
||||
WHERE fac_setting_name = 'mld_flag_on_fenote';
|
||||
SELECT fac_setting_pvalue
|
||||
INTO v_flag_on_bonote
|
||||
FROM fac_setting
|
||||
WHERE fac_setting_name = 'mld_flag_on_bonote';
|
||||
|
||||
SELECT fac_setting_pvalue
|
||||
INTO v_flag_on_bonote
|
||||
FROM fac_setting
|
||||
WHERE fac_setting_name = 'mld_flag_on_bonote';
|
||||
|
||||
IF v_flag_on_fenote <> 0 AND v_flag_on_fenote IS NOT NULL
|
||||
THEN
|
||||
UPDATE mld_melding
|
||||
SET mld_melding_flag = v_flag_on_fenote
|
||||
WHERE mld_melding_key = mldkey
|
||||
AND( (mld_melding_flag = v_flag_on_bonote)
|
||||
OR (mld_melding_flag = 0 OR mld_melding_flag IS NULL)
|
||||
);
|
||||
-- DBMS_OUTPUT.PUT_LINE('Flag: ' || v_flag_on_fenote || ' gezet.');
|
||||
END IF;
|
||||
EXCEPTION WHEN OTHERS
|
||||
THEN
|
||||
DBMS_OUTPUT.PUT_LINE('Niet gelukt om flag ' || v_flag_on_fenote || ' te zetten.');
|
||||
IF v_flag_on_fenote <> 0 AND v_flag_on_fenote IS NOT NULL
|
||||
THEN
|
||||
UPDATE mld_melding
|
||||
SET mld_melding_flag = v_flag_on_fenote
|
||||
WHERE mld_melding_key = mldkey
|
||||
AND ( (mld_melding_flag = v_flag_on_bonote)
|
||||
OR (mld_melding_flag = 0 OR mld_melding_flag IS NULL));
|
||||
-- DBMS_OUTPUT.PUT_LINE('Flag: ' || v_flag_on_fenote || ' gezet.');
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
DBMS_OUTPUT.put_line( 'Niet gelukt om flag '
|
||||
|| v_flag_on_fenote
|
||||
|| ' te zetten.');
|
||||
END;
|
||||
|
||||
|
||||
ELSE
|
||||
-- suggested extensions:
|
||||
-- check for MLDUSE-write autorisations
|
||||
-- parse the subject to find an appropriate stdmelding, if uniquely possible
|
||||
errormsg := '(0x148)';
|
||||
BEGIN
|
||||
stdmelding := fac.safe_to_number(fac.getsetting ('defaultstdmelding'));
|
||||
INSERT INTO mld_melding (mld_melding_module,
|
||||
mld_meldbron_key,
|
||||
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
|
||||
SYSDATE,
|
||||
SUBSTR (
|
||||
psubject || CHR (13)
|
||||
|| REPLACE (
|
||||
SUBSTR(pbody, 1, 4000 - (LENGTH(psubject)+1)),
|
||||
CHR (13) || CHR (10) || CHR (13) || CHR (10),
|
||||
CHR (13) || CHR (10)),
|
||||
1,
|
||||
4000), -- verwijder onnodige witregels
|
||||
NULL,
|
||||
2,
|
||||
stdmelding,
|
||||
sender,
|
||||
sender,
|
||||
kostenplaats,
|
||||
3)
|
||||
RETURNING mld_melding_key
|
||||
INTO mldkey;
|
||||
-- DBMS_OUTPUT.PUT_LINE('Melding toegevoegd: ' || mldkey);
|
||||
errormsg := '(0x165)';
|
||||
mld.setmeldingstatus (mldkey, 2, sender);
|
||||
END;
|
||||
-- suggested extensions:
|
||||
-- check for MLDUSE-write autorisations
|
||||
-- parse the subject to find an appropriate stdmelding, if uniquely possible
|
||||
errormsg := '(0x148)';
|
||||
|
||||
BEGIN
|
||||
stdmelding :=
|
||||
fac.safe_to_number (fac.getsetting ('defaultstdmelding'));
|
||||
|
||||
INSERT INTO mld_melding (mld_melding_module,
|
||||
mld_meldbron_key,
|
||||
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
|
||||
SYSDATE,
|
||||
SUBSTR (
|
||||
psubject || CHR (13)
|
||||
|| REPLACE (
|
||||
SUBSTR (v_body,
|
||||
1,
|
||||
4000 - (LENGTH (psubject) + 1)),
|
||||
CHR (13)
|
||||
|| CHR (10)
|
||||
|| CHR (13)
|
||||
|| CHR (10),
|
||||
CHR (13) || CHR (10)),
|
||||
1,
|
||||
4000), -- verwijder onnodige witregels
|
||||
NULL,
|
||||
2,
|
||||
stdmelding,
|
||||
sender,
|
||||
sender,
|
||||
kostenplaats,
|
||||
3)
|
||||
RETURNING mld_melding_key
|
||||
INTO mldkey;
|
||||
|
||||
-- DBMS_OUTPUT.PUT_LINE('Melding toegevoegd: ' || mldkey);
|
||||
errormsg := '(0x165)';
|
||||
mld.setmeldingstatus (mldkey, 2, sender);
|
||||
END;
|
||||
|
||||
-- Zoek het laagste bijlagen kenmerk om de bijlagen onder te stoppen
|
||||
errormsg := '(0x151)';
|
||||
|
||||
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 = stdmelding
|
||||
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 =
|
||||
stdmelding
|
||||
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);
|
||||
WHERE mld_srtkenmerk_kenmerktype = 'M'
|
||||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||||
AND std.mld_stdmelding_key = stdmelding
|
||||
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 = stdmelding
|
||||
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);
|
||||
|
||||
errormsg := '(0x153)';
|
||||
|
||||
IF kkey IS NOT NULL
|
||||
THEN
|
||||
-- DBMS_OUTPUT.PUT_LINE('Bijlagen kenmerk: ' || kkey);
|
||||
-- DBMS_OUTPUT.PUT_LINE('Bijlagen kenmerk: ' || kkey);
|
||||
errormsg := '(0x157)';
|
||||
|
||||
INSERT INTO fac_result (fac_result_sessionid,
|
||||
fac_result_naam,
|
||||
fac_result_waarde)
|
||||
VALUES ('hMailServer',
|
||||
'kenmerkpath',
|
||||
'MLD\M' || to_char(TRUNC(mldkey/1000), 'FM0000') || '___\M' || mldkey || '\' || kkey || '\');
|
||||
'MLD\M'
|
||||
|| TO_CHAR (TRUNC (mldkey / 1000), 'FM0000')
|
||||
|| '___\M'
|
||||
|| mldkey
|
||||
|| '\'
|
||||
|| kkey
|
||||
|| '\');
|
||||
END IF;
|
||||
END IF;
|
||||
ELSE
|
||||
errormsg := '(0x187)';
|
||||
|
||||
INSERT INTO fac_result (fac_result_sessionid,
|
||||
fac_result_naam,
|
||||
fac_result_waarde)
|
||||
VALUES ('hMailServer', 'errormsg', 'Database fout - Neem contact op met uw systeembeheerder ' || errormsg);
|
||||
VALUES ('hMailServer',
|
||||
'errormsg',
|
||||
'Database fout - Neem contact op met uw systeembeheerder '
|
||||
|| errormsg);
|
||||
END CASE;
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
-- DBMS_OUTPUT.PUT_LINE('Mail niet geaccepteerd: ' || 'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')');
|
||||
-- DBMS_OUTPUT.PUT_LINE('Mail niet geaccepteerd: ' || 'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')');
|
||||
INSERT INTO fac_result (fac_result_sessionid,
|
||||
fac_result_naam,
|
||||
fac_result_waarde)
|
||||
VALUES ('hMailServer',
|
||||
'errormsg',
|
||||
'Database fout - Neem contact op met uw systeembeheerder ' || errormsg);
|
||||
'Database fout - Neem contact op met uw systeembeheerder '
|
||||
|| errormsg);
|
||||
|
||||
fac.writelog ('PROCESSEMAIL',
|
||||
'E',
|
||||
'Mail kon niet ingelezen worden afzender:' || pfrom || '[' || errormsg || ']',
|
||||
'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')');
|
||||
fac.writelog (
|
||||
'PROCESSEMAIL',
|
||||
'E',
|
||||
'Mail kon niet ingelezen worden afzender:'
|
||||
|| pfrom
|
||||
|| '['
|
||||
|| errormsg
|
||||
|| ']',
|
||||
'OTHERS (error '
|
||||
|| SQLCODE
|
||||
|| '/'
|
||||
|| SUBSTR (SQLERRM, 1, 100)
|
||||
|| ')');
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -1233,7 +1395,6 @@ END csun_import_project;
|
||||
/
|
||||
|
||||
|
||||
/* Formatted on 1/28/2013 4:46:45 PM (QP5 v5.136.908.31019) */
|
||||
CREATE OR REPLACE PROCEDURE csun_update_project (p_import_key IN NUMBER)
|
||||
IS
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
@@ -1273,6 +1434,39 @@ IS
|
||||
AND dm = c_dm
|
||||
AND COALESCE(UPPER(vervallen), 'N') <> 'J';
|
||||
|
||||
CURSOR c_verv (c_accountcode IN VARCHAR2)
|
||||
IS
|
||||
SELECT alg_locatie_key, fac_usrdata_code
|
||||
FROM alg_locatie l,
|
||||
alg_onrgoedkenmerk aogka,
|
||||
alg_onrgoedkenmerk aogkp,
|
||||
fac_usrdata u
|
||||
WHERE aogka.alg_kenmerk_key = 1000 -- client
|
||||
AND l.alg_locatie_key = aogka.alg_onrgoed_key
|
||||
AND fac.safe_to_number (aogka.alg_onrgoedkenmerk_waarde) =
|
||||
u.fac_usrdata_key
|
||||
AND aogkp.alg_kenmerk_key = 1040 -- projectnummer
|
||||
AND l.alg_locatie_key = aogkp.alg_onrgoed_key
|
||||
AND NOT EXISTS
|
||||
(SELECT project
|
||||
FROM csun_imp_project
|
||||
WHERE project = aogkp.alg_onrgoedkenmerk_waarde
|
||||
AND COALESCE (UPPER (vervallen), 'N') = 'N')
|
||||
AND NOT EXISTS
|
||||
(SELECT alg_onrgoedkenmerk_waarde
|
||||
FROM alg_onrgoedkenmerk aogkv
|
||||
WHERE aogkv.alg_kenmerk_key = 1160 -- vervaldatum
|
||||
AND l.alg_locatie_key = aogkv.alg_onrgoed_key);
|
||||
|
||||
CURSOR c_del
|
||||
IS
|
||||
SELECT alg_locatie_key, alg_locatie_code
|
||||
FROM alg_locatie l, alg_onrgoedkenmerk aogk
|
||||
WHERE alg_locatie_verwijder IS NULL
|
||||
AND aogk.alg_kenmerk_key = 1160 -- vervaldatum
|
||||
AND l.alg_locatie_key = aogk.alg_onrgoed_key
|
||||
AND fac.safe_to_date(aogk.alg_onrgoedkenmerk_waarde, 'dd-mm-yyyy') < SYSDATE - 182;
|
||||
|
||||
FUNCTION get_alg_kenmerk (p_kenmerk_key IN NUMBER, p_onrgoed_key IN NUMBER) RETURN VARCHAR2
|
||||
AS
|
||||
v_waarde VARCHAR2(255);
|
||||
@@ -1401,6 +1595,8 @@ BEGIN
|
||||
csun_set_kenmerk ('ALG', 1006, v_locatie_key, v_bud_key, 0);
|
||||
csun_set_kenmerk ('ALG', 1000, v_locatie_key, v_account_key, 0);
|
||||
csun_set_kenmerk ('ALG', 1040, v_locatie_key, rec.project, 0);
|
||||
-- reanimeer verwijderde locaties
|
||||
csun_set_kenmerk ('ALG', 1160, v_locatie_key, NULL, 0);
|
||||
END IF;
|
||||
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
@@ -1427,6 +1623,14 @@ BEGIN
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR rec_verv IN c_verv(rec_a.accountcode)
|
||||
LOOP
|
||||
BEGIN
|
||||
-- zet de vervaldatum bij de locatie zodat deze na 6 maanden verwijderd kan worden.
|
||||
csun_set_kenmerk ('ALG', 1160, rec_verv.alg_locatie_key, TO_CHAR(SYSDATE, 'dd-mm-yyyy'), 0);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||||
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
|
||||
@@ -1441,7 +1645,25 @@ BEGIN
|
||||
|
||||
csun_export_set_werkplek (p_import_key);
|
||||
|
||||
-- to do : locatie verwijderen.
|
||||
FOR rec_del IN c_del
|
||||
LOOP
|
||||
BEGIN
|
||||
v_error_hint := 'Verwijderen gebouwen - Locatie_code: ' || rec_del.alg_locatie_code;
|
||||
UPDATE alg_gebouw SET alg_gebouw_verwijder = SYSDATE WHERE alg_locatie_key = rec_del.alg_locatie_key;
|
||||
|
||||
v_error_hint := 'Verwijderen locatie - Locatie_code: ' || rec_del.alg_locatie_code;
|
||||
UPDATE alg_locatie SET alg_locatie_verwijder = SYSDATE WHERE alg_locatie_key = rec_del.alg_locatie_key;
|
||||
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||||
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'E',
|
||||
'Verwijderen locaties:' || v_errormsg,
|
||||
v_error_hint);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
@@ -1823,7 +2045,7 @@ AS
|
||||
|
||||
BEGIN adm.systrackscriptId('$Id$', 0); END;
|
||||
/
|
||||
BEGIN fac.registercustversion('CSUN', 12); END;
|
||||
BEGIN fac.registercustversion('CSUN', 13); END;
|
||||
/
|
||||
COMMIT;
|
||||
spool off
|
||||
|
||||
Reference in New Issue
Block a user