CSUN#39050 -- Reminders filteren bij mailontvangst

CSUN#38640 -- Koppeling CSU met PostNL

svn path=/Customer/trunk/; revision=32640
This commit is contained in:
Arthur Egberink
2017-01-31 16:37:54 +00:00
parent cffb722b43
commit 61364e5ee7

View File

@@ -1,12 +1,22 @@
-- Script containing customer specific configuration sql statements for CSUN: CSU National Accounts
-- (c) 2011 SG|facilitor
-- $Revision$
--
-- $Id$
--
-- Support: +31 53 4800710
SPOOL xCSUN.LST
-- Script containing customer specific configuration sql statements for CSUN: CSU National Accounts
DEFINE thisfile = 'CSUN.SQL'
DEFINE dbuser = '^CSUN'
SET ECHO ON
--------------
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE PROCEDURE csun_imp_writelog (
p_import_key IN NUMBER,
p_severity IN VARCHAR2,
@@ -53,6 +63,40 @@ AS
AND i.fac_import_app_key = a.fac_import_app_key(+)
AND l.imp_log_datum > sysdate -10;
CREATE OR REPLACE PROCEDURE csun_add_xml_row (
p_bestand IN VARCHAR2,
p_regel IN VARCHAR2)
AS
v_index NUMBER;
BEGIN
SELECT COALESCE( MAX(fac_rapport_volgnr), 0) + 1
INTO v_index
FROM fac_rapport
WHERE fac_rapport_node = p_bestand;
INSERT INTO fac_rapport (
fac_rapport_node,
fac_rapport_volgnr,
fac_rapport_regel)
VALUES (p_bestand,
v_index,
p_regel);
END;
/
CREATE OR REPLACE PROCEDURE csun_add_xml_element (
p_bestand IN VARCHAR2,
p_tag IN VARCHAR2,
p_value IN VARCHAR2)
AS
BEGIN
csun_add_xml_row(p_bestand,
'<' || p_tag || '>'
|| xml.char_to_html(p_value)
|| '</' || p_tag || '>');
END;
/
CREATE OR REPLACE PACKAGE CSUN_RAP
AS
-- PACKAGES voor de CSUN specifieke rapportages
@@ -812,6 +856,29 @@ BEGIN
-- DBMS_OUTPUT.PUT_LINE('mld_stdmelding_key: ' || TO_CHAR(stdmelding));
IF mldkey IS NULL
THEN
BEGIN
-- controleren of we deze melding al eerder ontvangen hebben en dit een update / reminder betreft.
SELECT mld_melding_key, mld_stdmelding_key
INTO mldkey, stdmelding
FROM mld_melding m
WHERE m.prs_perslid_key = sender
AND ( (psubject LIKE '%' || m.mld_melding_externnr || '%'
AND m.mld_melding_externnr IS NOT NULL)
OR (EXISTS
(SELECT mld_kenmerkmelding_key
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE km.mld_melding_key = m.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 2
AND psubject LIKE '%' || km.mld_kenmerkmelding_waarde || '%')));
EXCEPTION WHEN OTHERS
THEN
mldkey := NULL;
stdmelding := NULL;
END;
END IF;
BEGIN
SELECT mld_melding_behandelaar_key
INTO behandelaar_key
@@ -2325,6 +2392,143 @@ INSERT INTO prs_perslidwerkplek (prs_perslid_key, prs_perslidwerkplek_bezetting,
END;
/
-- Statusberichten die voor de koppeling met Axxerion op de SFTP server geplaatst worden.
-- Is copy van RABO
CREATE OR REPLACE VIEW csun_v_export_status_axxerion (
result,
result_order
)
AS
SELECT fac_rapport_regel, fac_rapport_volgnr
FROM fac_rapport
WHERE fac_rapport_node = SUBSTR ('STATUS_AXXERION', 1, 12);
CREATE OR REPLACE PROCEDURE csun_select_status_axxerion (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR c (
p_from DATE,
p_to DATE)
IS
SELECT mld_melding_externnr,
fac_tracking_datum,
DECODE (sn.fac_srtnotificatie_code,
'MLDACP', 'ACCEPT',
'MLDREJ', 'REJECT',
'MLDAFM', 'CLOSE',
'MLDAFR', 'FINCLOSE',
'MLDUPD', 'UPDATE',
'Invalid')
status,
mld_melding_einddatum,
mld_melding_opmerking,
DECODE (fac_srtnotificatie_code, 'MLDUPD', 1, 0) volgorde
FROM fac_tracking t, fac_srtnotificatie sn, mld_melding m
WHERE fac_tracking_datum BETWEEN p_from AND p_to
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_melding_externnr IS NOT NULL
AND m.prs_perslid_key = 8902 -- melding is geinitieerd via de PostNL koppeling.
AND (sn.fac_srtnotificatie_code = 'MLDACP'
OR sn.fac_srtnotificatie_code = 'MLDREJ'
OR sn.fac_srtnotificatie_code = 'MLDAFM'
OR sn.fac_srtnotificatie_code = 'MLDAFR'
OR sn.fac_srtnotificatie_code = 'MLDUPD')
ORDER BY mld_melding_externnr, volgorde, fac_tracking_datum;
v_from DATE;
v_to DATE;
v_count NUMBER;
v_externnr VARCHAR2 (10);
v_bestand VARCHAR2 (100);
v_empty NUMBER;
BEGIN
v_count := 0;
v_empty := 1;
v_externnr := '9999';
v_bestand := SUBSTR (p_applname, 1, 12);
-- de laatste synchronisatietijd wordt opgeslagen in fac_rapport met een speciale node naam eindigend op een 1.
-- mocht deze niet gevuld zijn (initieel) dan gebruiken we het huidige uur.
BEGIN
SELECT fac.safe_to_date (fac_rapport_regel, 'yyyy-mm-dd hh24:mi')
INTO v_from
FROM fac_rapport
WHERE SUBSTR (v_bestand, 1, 11) || '1' = fac_rapport_node;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_from := TRUNC (SYSDATE, 'HH24');
END;
-- het einde van de periode mag niet verder liggen dan de huidige tijd
v_to := v_from + 1 / (24 * 4);
IF v_to > SYSDATE
THEN
v_to := v_from;
END IF;
-- Eerst opruiming
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname;
DELETE fac_rapport
WHERE fac_rapport_node = v_bestand;
-- als de export een tijdje niet gedraaid is dan halen we dit weer in door de periode groter te maken.
WHILE v_to + 1 / (24 * 4) < SYSDATE AND v_count < 10
LOOP
v_to := v_to + 1 / (24 * 4);
v_count := v_count + 1;
END LOOP;
-- header
csun_add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
csun_add_xml_row (v_bestand, '<facilitor>');
csun_add_xml_row (v_bestand, '<meldingstatusses>');
FOR rec IN c (v_from, v_to)
LOOP
v_empty := 0;
IF NOT (rec.mld_melding_externnr = v_externnr AND rec.status = 'UPDATE')
THEN
v_externnr := rec.mld_melding_externnr;
csun_add_xml_row (v_bestand, '<meldingstatus key="' || rec.mld_melding_externnr || '">');
csun_add_xml_element (v_bestand,
'timestamp',
TO_CHAR (rec.fac_tracking_datum, 'dd-mm-yyyy hh24:mi'));
csun_add_xml_element (v_bestand, 'status', rec.status);
csun_add_xml_element (v_bestand, 'afhandeling', rec.mld_melding_opmerking);
csun_add_xml_element (v_bestand,
'oplosdatum',
TO_CHAR (rec.mld_melding_einddatum, 'dd-mm-yyyy hh24:mi'));
csun_add_xml_row (v_bestand, '</meldingstatus>');
END IF;
END LOOP;
csun_add_xml_row (v_bestand, '</meldingstatusses>');
csun_add_xml_row (v_bestand, '</facilitor>');
-- Als er niet geexporteerd is dan gaan we alle regels verwijderen
-- zodat er niet een leeg xml bestand komt te staan met alleen de facilitor tags.
IF v_empty = 1
THEN
DELETE fac_rapport
WHERE fac_rapport_node = v_bestand;
END IF;
DELETE fac_rapport
WHERE fac_rapport_node = SUBSTR (v_bestand, 1, 11) || '1';
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel)
VALUES (SUBSTR (v_bestand, 1, 11) || '1', TO_CHAR (v_to, 'yyyy-mm-dd hh24:mi'));
END;
/
---- CSUN#25915: Portaal specials...
---- Drie Grafieken, scope op afdelingnivo1 (BU):
-- 1. openstaande meldingen per vakgroep.
@@ -2429,9 +2633,15 @@ AS
BEGIN adm.systrackscriptId('$Id$', 0); END;
/
BEGIN fac.registercustversion('CSUN', 20); END;
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/
COMMIT;
spool off
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile