CSUN#40729 -- Automatisering Facilitor koppelingen (ABN AMRO e.v.a.)

svn path=/Customer/trunk/; revision=36029
This commit is contained in:
Arthur Egberink
2017-11-16 16:27:10 +00:00
parent 481095edf0
commit b29771c606

View File

@@ -676,6 +676,10 @@ AS
OR v_client = 241 -- Arcadis
OR v_client = 801 -- PostNL Pakket
OR v_client = 344 -- ABN Amro
OR v_client = 381 -- Mayfield
OR v_client = 301 -- Humanitas
OR v_client = 382 -- KPN Retail
OR v_client = 321 -- Tennet
THEN
SELECT alg_locatie_key
INTO v_locatie_key
@@ -697,6 +701,7 @@ AS
AND aogkc.alg_kenmerk_key = 1000; -- Client
ELSIF v_client = 621 -- DB Schenker
OR v_client = 641 -- Alliance
OR v_client = 841 -- KPN (Yask)
THEN
SELECT alg_locatie_key
INTO v_locatie_key
@@ -828,10 +833,12 @@ AS
v_flag_on_bonote NUMBER (10);
v_from VARCHAR2 (4000);
v_body VARCHAR2 (4000);
m_body VARCHAR2 (4000);
v_locatie_code VARCHAR2 (1000); -- om te voorkomen dat we foutmeldingen krijgen als de locatie niet bepaald kan worden.
v_pos NUMBER;
v_externnr VARCHAR2 (1000);
v_omschrijving_ruimte VARCHAR2(1000);
v_client NUMBER;
BEGIN
errormsg := '(0x143)';
v_externnr := NULL;
@@ -845,6 +852,7 @@ BEGIN
END IF;
v_body := pbody;
m_body := pbody;
-- DBMS_OUTPUT.PUT_LINE('v_from: '||v_from);
@@ -862,6 +870,17 @@ BEGIN
AND prs_link_key = p.prs_perslid_key
AND UPPER (kl.prs_kenmerklink_waarde) = UPPER (v_from)));
BEGIN
SELECT fac.safe_to_number (prs_kenmerklink_waarde)
INTO v_client
FROM prs_kenmerklink
WHERE prs_kenmerk_key = 1080 AND prs_link_key = sender;
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_client := NULL;
END;
CASE
WHEN UPPER (pto) LIKE 'SERVICEDESK@%' OR UPPER (pto) LIKE 'DJI@%'
THEN
@@ -887,6 +906,8 @@ BEGIN
v_body := REPLACE(v_body, ',', ','); -- komma
v_body := REPLACE(v_body, '-', '-'); -- min teken
v_body := REPLACE(v_body, '.', '.'); -- punt
v_body := REPLACE(v_body, '/', '/');
v_body := REPLACE(v_body, ':', ':'); -- dubbele punt
v_body := REPLACE(v_body, ' ' || CHR (10) || CHR (13), CHR (10) || CHR (13)); -- soms komt er ineens een een spatie achter de tag.
-- gaat het om een normale werkbon, dan is v_pos > 0; anders gaat het om een klacht.
v_pos := INSTR (v_body, '--> Werkbon');
@@ -905,7 +926,7 @@ BEGIN
v_externnr := csun_get_html_valuepair (v_body,
'Aanvraagnr.',
'Omschrijving aanvraag');
v_body :=
m_body :=
csun_get_html_valuepair (v_body,
'Naam',
'Telefoonnr.')
@@ -954,8 +975,63 @@ BEGIN
-- zoek de locatie
v_locatie_code := csun_get_html_valuepair (v_body, 'Object', 'Postcode');
v_locatie_code := SUBSTR(v_locatie_code, 8, INSTR(v_locatie_code, ' '));
v_locatie_code := SUBSTR(v_locatie_code, 9, INSTR(v_locatie_code, ' ',1,2)-9);
END IF;
-- Humanitas heeft de locatiecode in het onderwerp staan
IF v_client = 301
THEN
BEGIN
SELECT lc.alg_onrgoedkenmerk_waarde
INTO v_locatie_code
FROM alg_onrgoedkenmerk lc,
alg_onrgoedkenmerk cl
WHERE lc.alg_onrgoed_key = cl.alg_onrgoed_key
AND lc.alg_kenmerk_key = 1203 -- Klant locatiecode
AND fac.safe_to_number (cl.alg_onrgoedkenmerk_waarde) = v_client
AND cl.alg_kenmerk_key = 1000 -- Client
AND psubject LIKE '%' || lc.alg_onrgoedkenmerk_waarde || '%';
EXCEPTION WHEN OTHERS
THEN
v_locatie_code := NULL;
END;
END IF;
-- Mayfield bericht bevat een regel als: Betreft locatie : Apeldoorn, Wapenrustlaan 11-31 (NLV03001)
IF v_client = 381 -- Mayfield
THEN
-- eerst de regel vinden
v_locatie_code := SUBSTR(v_body, INSTR(v_body, 'Betreft locatie'), -- start vd regel
INSTR(v_body, CHR(13), -- op zoek naar het einde vd regel
INSTR(v_body, 'Betreft locatie') -- waarbij we beginnen te zoeken aan het begin vd regel
)-
INSTR(v_body, 'Betreft locatie')); -- verminderd met het begin vd regel omdat we alleen het verschil mee moeten geven.
-- nu de locatiecode
v_locatie_code := SUBSTR(v_locatie_code, INSTR(v_locatie_code, '(')+1, INSTR(v_locatie_code, ')')-1 - (INSTR(v_locatie_code, '(')+1));
END IF;
-- KPN Retail geeft de locatie aan op de regel: Filiaalnummer: 702
IF v_client = 382 -- KPN Retail
THEN
-- eerst de regel vinden
v_locatie_code := SUBSTR(v_body, INSTR(v_body, 'Filiaalnummer: ') + LENGTH ('Filiaalnummer: '), -- start vd regel
INSTR(v_body, CHR(13), -- op zoek naar het einde vd regel
INSTR(v_body, 'Filiaalnummer:') -- waarbij we beginnen te zoeken aan het begin vd regel
)-
(INSTR(v_body, 'Filiaalnummer: ') + LENGTH ('Filiaalnummer: '))); -- verminderd met het begin vd regel omdat we alleen het verschil mee moeten geven.
END IF;
-- Tennet
-- Afleveradres: TenneT TSO B.V.
-- Frankeneng 116
-- 6716 AA EDE
IF v_client = 321 -- Tennet
THEN
v_pos := INSTR(v_body, 'Afleveradres: TenneT TSO B.V.'); -- We zoeken de postcode onder het afleveradres
v_pos := INSTR(v_body, CHR(10), v_pos, 2); -- Vervolgens zoeken we de tweede line feed vanaf het afleveradres
v_locatie_code := UPPER(SUBSTR(v_body, v_pos +1, 7));
END IF;
EXCEPTION
WHEN OTHERS
THEN
@@ -1142,6 +1218,7 @@ BEGIN
mld_melding_status,
mld_melding_t_uitvoertijd,
mld_stdmelding_key,
mld_alg_locatie_key,
mld_melding_externnr,
prs_perslid_key,
prs_perslid_key_voor,
@@ -1153,7 +1230,7 @@ BEGIN
SUBSTR (
psubject || CHR (13)
|| REPLACE (
SUBSTR (v_body,
SUBSTR (m_body,
1,
4000 - (LENGTH (psubject) + 1)),
CHR (13)
@@ -1166,6 +1243,7 @@ BEGIN
NULL,
MLD_T_UITVOERTIJD (2, 'D'),
stdmelding,
28581, -- Locatie onbekend.
SUBSTR(v_externnr,1,30),
sender,
sender,
@@ -1263,7 +1341,7 @@ BEGIN
IF v_locatie_code IS NOT NULL
THEN
csun_set_kenmerk('MLD',181, mldkey, v_locatie_code, 0); -- locatie_code klant kenmerk
csun_set_kenmerk('MLD',281, mldkey, v_locatie_code, 0); -- locatie_code klant kenmerk
CSUN.mld_after_insert (mldkey);
END IF;
-- Log het binnenkomende bericht als dat nodig is.
@@ -1759,8 +1837,7 @@ BEGIN
p_kenmerk_waarde);
END IF;
END IF;
WHEN 'S'
THEN
ELSE
SELECT COUNT ( * )
INTO v_count
FROM mld_kenmerkmelding