PCHA#64425 Aanpassing GBS import (meldingen zonder korting)

svn path=/Customer/trunk/; revision=49238
This commit is contained in:
Sander Schepers
2020-12-18 07:16:09 +00:00
parent 47515304d5
commit edb63e1508

View File

@@ -1463,7 +1463,7 @@ AS
v_date DATE;
v_sync_bericht6 NUMBER;
v_sync_bericht8 NUMBER;
v_korting NUMBER;
v_korting NUMBER;
v_count NUMBER;
v_error NUMBER;
v_errormsg VARCHAR2 (100);
@@ -1480,7 +1480,7 @@ BEGIN
v_errormsg := '';
v_sync_bericht6 := 0;
v_sync_bericht8 := 0;
v_korting := 0;
v_korting := 1;
-- Verwijder de Bounce Address Tag Validation
IF pfrom LIKE 'prvs=%'
@@ -1506,7 +1506,8 @@ BEGIN
-- filter nu de essentiele velden uit de mailbody
-- vervang cr door lf
-- MOETEN WE EEN FALLBACK STDMELDING KEY DEFINIEREN??????????????????????
v_stdmelding_key := fac.safe_to_number (fac.getsetting ('defaultstdmelding'));
v_stdmelding_key :=
fac.safe_to_number (fac.getsetting ('defaultstdmelding'));
v_body := REPLACE (v_body, CHR (13), CHR (10));
-- verwijder dubbele lf's
@@ -1528,22 +1529,18 @@ BEGIN
-- NULL);
errormsg := '(0x1452)';
-- PCHA#64425: Bepalen welke vakgroeptype de melding in moet gaan (wel of niet korting)
CASE v_tag
WHEN 'MELDINGSGROEP'
THEN
CASE TRIM (UPPER (v_value))
WHEN 'FMIS FTRC (F)'
THEN
v_korting := 1;
WHEN 'FMIS V&G (V)'
THEN
v_korting := 1;
EXIT;
WHEN 'FMIS COMFORT'
THEN
v_korting := 0;
END CASE;
END CASE;
CASE v_tag
WHEN 'MELDINGSTEKST'
THEN
v_onderwerp := SUBSTR (v_value, 1, 60);
@@ -1566,6 +1563,7 @@ BEGIN
END CASE;
errormsg := '(0x1454)';
BEGIN
-- Zoek omschrijving op in eigen tabel met key 221 (met korting) of 501 (zonder korting)
CASE v_korting
@@ -1588,8 +1586,7 @@ BEGIN
TRIM (UPPER (v_value))
AND fac_usrtab_key = 221; -- Hier staat de verwijzing naar de Stdmeldingen met korting
END CASE;
EXCEPTION
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_error := 1;
@@ -1603,11 +1600,16 @@ BEGIN
WHEN 'INSTALLATIEDEEL'
THEN
-- plak er ' x' achter om er zeker van te zijn dat er een spatie in staat.
v_ruimte := UPPER(SUBSTR(TRIM (v_value), 1, INSTR(TRIM(v_value || ' x'), ' ')-1));
v_ruimte :=
UPPER(SUBSTR (TRIM (v_value),
1,
INSTR (TRIM (v_value || ' x'), ' ') - 1));
errormsg := '(0x1455)';
BEGIN
SELECT alg_ruimte_key, alg_locatie_key, alg_srtruimte_key
SELECT alg_ruimte_key,
alg_locatie_key,
alg_srtruimte_key
INTO v_ruimte_key, v_locatie_key, v_srtruimte_key
FROM alg_v_ruimte_gegevens
WHERE UPPER (alg_ruimte_nr) = v_ruimte;
@@ -1615,7 +1617,8 @@ BEGIN
WHEN OTHERS
THEN
v_error := 1;
v_errormsg := 'Ruimte kan niet gevonden worden: ' || v_ruimte;
v_errormsg :=
'Ruimte kan niet gevonden worden: ' || v_ruimte;
END;
WHEN 'INSTALLATIECODE'
THEN
@@ -1628,7 +1631,7 @@ BEGIN
v_datum := TRIM (v_value);
WHEN 'ONDERSTATION TIJD'
THEN
v_tijdstip := TRIM(v_value);
v_tijdstip := TRIM (v_value);
ELSE
NULL;
END CASE;
@@ -1637,12 +1640,15 @@ BEGIN
IF v_error = 0 AND v_sync_bericht6 = 0 AND v_sync_bericht8 = 0
THEN
-- bepalen van de timestamp uit het emailbericht
v_date := fac.safe_to_date(v_datum || ' ' || v_tijdstip, 'dd-mm-yyyy hh24:mi.ss');
v_date :=
fac.safe_to_date (v_datum || ' ' || v_tijdstip,
'dd-mm-yyyy hh24:mi.ss');
IF v_date IS NULL
THEN
v_date := SYSDATE;
END IF;
-- nu gaan we de hersteltijd bepalen
errormsg := '(0x147)';
@@ -1651,7 +1657,8 @@ BEGIN
SELECT mld_stdmsrtruimte_t_uitvtijd
INTO v_uitvoertijd
FROM mld_stdmsrtruimte
WHERE alg_srtruimte_key = v_srtruimte_key AND mld_stdmelding_key = v_stdmelding_key;
WHERE alg_srtruimte_key = v_srtruimte_key
AND mld_stdmelding_key = v_stdmelding_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
@@ -1670,12 +1677,17 @@ BEGIN
SELECT MIN (m.mld_melding_key), COUNT (m.mld_melding_key)
INTO v_melding_key, v_count
FROM mld_melding m, mld_kenmerkmelding km
WHERE mld_stdmelding_key = v_stdmelding_key
AND mld_alg_onroerendgoed_keys = v_ruimte_key
AND mld_melding_status IN (0, 2, 3, 4, 7, 99) -- alles behalve 1=Afgewezen, 5= afgemeld, 6= historie
AND km.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_key = 181
AND km.mld_kenmerkmelding_waarde = v_installatiecode || ';' || v_status || ';' || v_onderwerp;
WHERE mld_stdmelding_key = v_stdmelding_key
AND mld_alg_onroerendgoed_keys = v_ruimte_key
AND mld_melding_status IN (0, 2, 3, 4, 7, 99) -- alles behalve 1=Afgewezen, 5= afgemeld, 6= historie
AND km.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_key = 181
AND km.mld_kenmerkmelding_waarde =
v_installatiecode
|| ';'
|| v_status
|| ';'
|| v_onderwerp;
IF UPPER (v_inuit) = 'IN'
THEN
@@ -1698,7 +1710,7 @@ BEGIN
mld_alg_locatie_key,
mld_alg_onroerendgoed_keys)
VALUES ('MLD',
4, -- email
4, -- email
v_date,
v_onderwerp,
v_omschrijving,
@@ -1717,16 +1729,30 @@ BEGIN
errormsg := '(0x165)';
mld.setmeldingstatus (v_melding_key, 2, v_sender);
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 181, v_installatiecode || ';' || v_status || ';' || v_onderwerp);
INSERT INTO mld_kenmerkmelding (mld_melding_key,
mld_kenmerk_key,
mld_kenmerkmelding_waarde)
VALUES (v_melding_key,
181,
v_installatiecode
|| ';'
|| v_status
|| ';'
|| v_onderwerp);
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'maillog',
'Geregistreerd onder melding ' || v_melding_key);
ELSE
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (psessionid, 'maillog', 'Melding bestaat al ' || v_melding_key);
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'maillog',
'Melding bestaat al ' || v_melding_key);
v_error := 1;
v_errormsg := 'Melding bestaat al ' || v_melding_key;
@@ -1751,24 +1777,54 @@ BEGIN
-- nu de status op afgemeld zetten.
mld.setmeldingstatus (v_melding_key, 5, v_sender);
fac.backtrackaction('MLDAFM', v_melding_key , v_sender, v_date);
fac.backtrackaction ('MLDAFM',
v_melding_key,
v_sender,
v_date);
-- Vul het kenmerk Bedrijf (malus) met de waarde van Homij uit de eigen tabel
mld.upsertmeldingkenmerk (61, v_melding_key, 182);
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'maillog',
'Melding ' || v_melding_key || ' is afgemeld, aantal gevonden ' || v_count || ' Details: ' || v_installatiecode || ';' || v_status || ';' || v_onderwerp);
'Melding '
|| v_melding_key
|| ' is afgemeld, aantal gevonden '
|| v_count
|| ' Details: '
|| v_installatiecode
|| ';'
|| v_status
|| ';'
|| v_onderwerp);
ELSE
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'maillog',
'Melding niet uniek gevonden, aantal gevonden ' || v_count || ' Details: ' || v_installatiecode || ';' || v_status || ';' || v_onderwerp);
'Melding niet uniek gevonden, aantal gevonden '
|| v_count
|| ' Details: '
|| v_installatiecode
|| ';'
|| v_status
|| ';'
|| v_onderwerp);
v_error := 1;
v_errormsg := 'Melding niet uniek gevonden, aantal gevonden ' || v_count || ' Details: ' || v_installatiecode || ';' || v_status || ';' || v_onderwerp;
v_errormsg :=
'Melding niet uniek gevonden, aantal gevonden '
|| v_count
|| ' Details: '
|| v_installatiecode
|| ';'
|| v_status
|| ';'
|| v_onderwerp;
END IF;
END IF;
END IF;
@@ -1802,20 +1858,31 @@ EXCEPTION
WHEN OTHERS
THEN
-- 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)
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'maillog',
'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;
/
--Klant specifieke view voor het tonen van het totaal korting per kwartaal per onderwerp
CREATE OR REPLACE VIEW pcha_v_totaal_korting_ond
(