251 lines
7.7 KiB
SQL
251 lines
7.7 KiB
SQL
-- Script containing customer specific configuration sql statements for RABO: Rabobank
|
|
-- $Revision$
|
|
-- $Id$
|
|
--
|
|
-- Support: +31 53 4800700
|
|
|
|
@aaxx.sql;
|
|
|
|
SPOOL xrabo.lst
|
|
SET ECHO ON
|
|
|
|
-- export overrules
|
|
-- exact
|
|
-- Leverancier overrulles
|
|
|
|
|
|
-- exact verkoop
|
|
CREATE OR REPLACE VIEW rabo_v_export_exact_verkoop (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
|
|
CREATE OR REPLACE PROCEDURE rabo_select_exact_verkoop (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(sysdate, 'yyyy'));
|
|
END;
|
|
/
|
|
CREATE OR REPLACE PROCEDURE rabo_export_exact_verkoop (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'));
|
|
END;
|
|
/
|
|
|
|
-- exact verkoop over het vorige jaar
|
|
CREATE OR REPLACE VIEW rabo_v_export_exact_verkoop_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
|
|
CREATE OR REPLACE PROCEDURE rabo_select_exact_verkoop_vj (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1));
|
|
END;
|
|
/
|
|
CREATE OR REPLACE PROCEDURE rabo_export_exact_verkoop_vj (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(to_number(to_char(sysdate, 'yyyy'))-1));
|
|
END;
|
|
/
|
|
|
|
-- exact projecturen (XML)
|
|
CREATE OR REPLACE VIEW rabo_v_export_exact_uren (result, result_order)
|
|
AS SELECT result, result_order FROM aaxx_v_export_exact_uren_xml;
|
|
CREATE OR REPLACE PROCEDURE rabo_select_exact_uren (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
aaxx_select_exact_uren_xml(p_applname, p_applrun, '');
|
|
END;
|
|
/
|
|
|
|
-- verwerk exact projecturen (XML)
|
|
CREATE OR REPLACE PROCEDURE rabo_export_verwerk_exact_uren (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
aaxx_export_verwerk_exact_uren(p_applname, p_applrun, p_filedir, p_filename, '');
|
|
END;
|
|
/
|
|
|
|
|
|
-- bundel catering
|
|
CREATE OR REPLACE VIEW rabo_v_export_bundel_catering (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_bundel_catering;
|
|
CREATE OR REPLACE PROCEDURE rabo_export_bundel_catering (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
aaxx_export_bundel_catering(p_applname, p_applrun, p_filedir, p_filename);
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE VIEW rabo_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 rabo_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 (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
|
|
aaxx_add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
|
|
aaxx_add_xml_row (v_bestand, '<facilitor>');
|
|
aaxx_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;
|
|
aaxx_add_xml_row (v_bestand, '<meldingstatus key="' || rec.mld_melding_externnr || '">');
|
|
aaxx_add_xml_element (v_bestand,
|
|
'timestamp',
|
|
TO_CHAR (rec.fac_tracking_datum, 'dd-mm-yyyy hh24:mi'));
|
|
aaxx_add_xml_element (v_bestand, 'status', rec.status);
|
|
aaxx_add_xml_element (v_bestand, 'afhandeling', rec.mld_melding_opmerking);
|
|
aaxx_add_xml_element (v_bestand,
|
|
'oplosdatum',
|
|
TO_CHAR (rec.mld_melding_einddatum, 'dd-mm-yyyy hh24:mi'));
|
|
aaxx_add_xml_row (v_bestand, '</meldingstatus>');
|
|
END IF;
|
|
END LOOP;
|
|
|
|
aaxx_add_xml_row (v_bestand, '</meldingstatusses>');
|
|
aaxx_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;
|
|
/
|
|
|
|
|
|
BEGIN fac.registercustversion('RABO', 2); END;
|
|
/
|
|
|
|
BEGIN adm.systrackscriptId('$Id$', 0); END;
|
|
/
|
|
|
|
show errors;
|
|
|
|
|
|
commit;
|
|
|
|
|
|
spool off; |