KFST#52897 -- Koppeling met Exact
svn path=/Customer/trunk/; revision=38317
This commit is contained in:
125
KFST/kfst.sql
125
KFST/kfst.sql
@@ -1121,6 +1121,10 @@ AS
|
||||
FROM fac_rapport
|
||||
WHERE fac_rapport_node = 'EXACT';
|
||||
|
||||
--
|
||||
-- Oude procedure om XML formaat te gebruiken. Tegenwoordig werkt men met csv bestanden.
|
||||
--
|
||||
/*
|
||||
CREATE OR REPLACE PROCEDURE kfst_select_exact (p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2
|
||||
)
|
||||
@@ -1270,9 +1274,128 @@ BEGIN
|
||||
|
||||
END;
|
||||
/
|
||||
*/
|
||||
CREATE OR REPLACE PROCEDURE kfst_select_exact (p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
|
||||
CURSOR c
|
||||
IS
|
||||
SELECT crdnr, factuur_nr, MAX(datum) datum
|
||||
FROM kfst_v_bron_export_exact_xml
|
||||
GROUP BY crdnr, factuur_nr;
|
||||
|
||||
CREATE OR REPLACE VIEW ykpn_v_export_verwerk_exact (
|
||||
CURSOR c_sub (c_crdnr VARCHAR2, c_factuur_nr VARCHAR2)
|
||||
IS
|
||||
SELECT *
|
||||
FROM kfst_v_bron_export_exact_xml
|
||||
WHERE COALESCE(crdnr, 'CrdNr') = COALESCE(c_crdnr, 'CrdNr')
|
||||
AND factuur_nr = c_factuur_nr;
|
||||
|
||||
CURSOR cv IS
|
||||
SELECT result, result_order
|
||||
FROM kfst_v_export_exact_t
|
||||
ORDER BY result_order;
|
||||
|
||||
v_first NUMBER;
|
||||
v_count NUMBER;
|
||||
v_bestand VARCHAR2(12);
|
||||
v_boekstuknummer NUMBER;
|
||||
v_crdnr PRS_BEDRIJF.PRS_LEVERANCIER_NR%TYPE;
|
||||
v_factuur_nr FIN_FACTUUR.FIN_FACTUUR_NR%TYPE;
|
||||
|
||||
BEGIN
|
||||
v_count := 0;
|
||||
v_bestand := SUBSTR(p_applname, 1, 12);
|
||||
v_crdnr := 'Q';
|
||||
v_factuur_nr := 'Q';
|
||||
|
||||
-- Eerst opruiming
|
||||
DELETE FROM imp_log
|
||||
WHERE imp_log_applicatie = p_applname;
|
||||
|
||||
DELETE fac_rapport
|
||||
WHERE fac_rapport_node = v_bestand;
|
||||
|
||||
DELETE fin_kenmerkfactuur kf
|
||||
WHERE fin_kenmerk_key = 1
|
||||
AND fin_factuur_key IN (SELECT fin_factuur_key
|
||||
FROM fin_factuur
|
||||
WHERE fin_factuur_statuses_key <> 7);
|
||||
|
||||
-- Bewaar de factuur keys in een tijdelijke tabel zodat bij het verwerken (nieuwe export)
|
||||
-- deze keys gebruikt kunnen worden.
|
||||
DELETE kfst_exp_factuur;
|
||||
|
||||
INSERT INTO kfst_exp_factuur (fin_factuur_key)
|
||||
( SELECT DISTINCT fin_factuur_key
|
||||
FROM kfst_v_factuur_gegevens
|
||||
WHERE fin_factuur_statuses_key = 6
|
||||
AND fin_factuur_datum > SYSDATE - (5 * 365) -- Check op geldige factuurdatum:
|
||||
AND fin_factuur_datum < SYSDATE + 365 -- facturen mogen niet ouder zijn dan 5 jaar of meer dan <20><>n jaar in de toekomst.
|
||||
);
|
||||
|
||||
-- Bepaal het boekstuknummer (key 1) met het hoogste nummer van dit jaar
|
||||
|
||||
SELECT MAX(fin_kenmerkfactuur_waarde)
|
||||
INTO v_boekstuknummer
|
||||
FROM fin_kenmerkfactuur
|
||||
WHERE fin_kenmerk_key = 1
|
||||
AND SUBSTR(fin_kenmerkfactuur_waarde,1,2) = TO_CHAR(SYSDATE, 'YY');
|
||||
|
||||
IF v_boekstuknummer IS NULL
|
||||
THEN
|
||||
v_boekstuknummer := FAC.safe_to_number(TO_CHAR(SYSDATE, 'YY') || '600000');
|
||||
END IF;
|
||||
|
||||
-- nu gaan we de boekstuknummer invullen
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
BEGIN
|
||||
-- Als we een nieuwe leverancier/factuurnummer tegenkomen gaan we het boekstuknummer ophogen.
|
||||
IF rec.crdnr <> v_crdnr OR rec.factuur_nr <> v_factuur_nr
|
||||
THEN
|
||||
v_boekstuknummer := v_boekstuknummer + 1;
|
||||
v_crdnr := rec.crdnr;
|
||||
v_factuur_nr := rec.factuur_nr;
|
||||
END IF;
|
||||
|
||||
FOR rec1 IN c_sub (v_crdnr, v_factuur_nr)
|
||||
LOOP
|
||||
BEGIN
|
||||
-- Boekstuknummer aanmaken
|
||||
kfst.set_kenmerk('FIN', 1, rec1.fin_factuur_key, v_boekstuknummer, 0);
|
||||
END;
|
||||
END LOOP;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
-- De view bevat voor alle subregels volgnummer 1. Deze gaan we nu omzetten naar echte volgnummers.
|
||||
FOR rec IN cv
|
||||
LOOP
|
||||
BEGIN
|
||||
v_first := substr(rec.result, 1,1);
|
||||
IF v_first = 0 THEN
|
||||
v_count := 0;
|
||||
ELSE
|
||||
v_count := v_count + 1;
|
||||
END IF;
|
||||
|
||||
INSERT INTO fac_rapport (
|
||||
fac_rapport_regel,
|
||||
fac_rapport_volgnr,
|
||||
fac_rapport_node)
|
||||
VALUES (
|
||||
v_count || substr (rec.result, 2),
|
||||
SUBSTR(rec.result_order, 1,2) || SUBSTR(rec.result_order, 5,4) || to_char(1000+v_count), -- forceer sortering bij count > 9, alleen jaar en volgnummer van het boekstuknummer zijn interessant.
|
||||
v_bestand);
|
||||
END;
|
||||
END LOOP;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE VIEW kfst_v_export_verwerk_exact (
|
||||
result,
|
||||
result_order
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user