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

svn path=/Customer/trunk/; revision=36068
This commit is contained in:
Arthur Egberink
2017-11-21 14:34:58 +00:00
parent 0c1b732e74
commit aa63dd2d58

View File

@@ -680,6 +680,9 @@ AS
OR v_client = 301 -- Humanitas
OR v_client = 382 -- KPN Retail
OR v_client = 321 -- Tennet
OR v_client = 602 -- KPMG Meijburg
OR v_client = 601 -- KPMG
OR v_client = 701 -- Sanquin
THEN
SELECT alg_locatie_key
INTO v_locatie_key
@@ -984,8 +987,8 @@ BEGIN
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
-- Humanitas / KPMG Meijburg heeft de locatiecode ergens in het onderwerp staan
IF v_client = 301 OR v_client = 602
THEN
BEGIN
SELECT lc.alg_onrgoedkenmerk_waarde
@@ -996,7 +999,7 @@ BEGIN
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 || '%';
AND UPPER(psubject) LIKE '%' || UPPER(lc.alg_onrgoedkenmerk_waarde) || '%';
EXCEPTION WHEN OTHERS
THEN
v_locatie_code := NULL;
@@ -1016,28 +1019,60 @@ BEGIN
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.
IF v_client = 601 -- KPMG
THEN
-- eerst de regel vinden
v_locatie_code := SUBSTR(v_body, INSTR(v_body, 'Locatie: '), -- start vd regel
INSTR(v_body, CHR(13), -- op zoek naar het einde vd regel
INSTR(v_body, 'Locatie: ') -- waarbij we beginnen te zoeken aan het begin vd regel
)-
INSTR(v_body, 'Locatie: ')); -- verminderd met het begin vd regel omdat we alleen het verschil mee moeten geven.
-- nu de locatiecode
v_locatie_code := TRIM(SUBSTR(v_locatie_code, 9));
END IF;
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;
-- Bij Sanquin komt de locatie ergens achter de tekst Locatie: te staan
IF v_client = 701 -- Sanquin
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 UPPER(v_body) LIKE '%LOCATIE: ' || UPPER(lc.alg_onrgoedkenmerk_waarde) || '%';
EXCEPTION WHEN OTHERS
THEN
v_locatie_code := NULL;
END;
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
@@ -1350,11 +1385,11 @@ BEGIN
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.
-- IF sender = 23 THEN -- ABNAMRO
-- insert into fac_rapport (fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel, fac_rapport_soort)
-- values ('MELDING', mldkey, SUBSTR(pbody, 1, 1900), 1);
-- END IF;
-- Log het binnenkomende bericht als dat nodig is.
-- IF sender = 23 THEN -- ABNAMRO
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel, fac_rapport_soort)
VALUES (SUBSTR('MELDING_' || v_client, 1, 12), mldkey, SUBSTR(pbody, 1, 1990), 1);
-- END IF;
EXCEPTION
WHEN OTHERS
THEN