SKAF#18869: XML-Export naar Exact incl PDF-verwijzing

svn path=/Customer/trunk/; revision=14578
This commit is contained in:
Marcel Bourseau
2011-01-05 13:01:22 +00:00
parent 25c7efb43a
commit 06927ee86b

View File

@@ -1,7 +1,7 @@
-- Script containing customer specific configuration sql statements for SKAF
-- (c) 2009 SG|facilitor bv
-- $Revision: 7 $
-- $Modtime: 2-12-10 17:14 $
-- $Revision: 8 $
-- $Modtime: 4-01-11 16:47 $
--
-- Support: +31 53 4800710
@@ -1509,6 +1509,13 @@ AS
AND f.fin_factuur_key = fb.fin_factuur_key(+);
CREATE OR REPLACE VIEW skaf_v_factuur_geg
AS
SELECT * from skaf_v_factuur_mldcnt_gegevens
UNION
SELECT * from skaf_v_factuur_bes_gegevens;
CREATE OR REPLACE VIEW skaf_v_factuur_geg_akkoord
AS
SELECT * from skaf_v_factuur_mldcnt_gegevens
@@ -1519,8 +1526,7 @@ WHERE fin_factuur_statuses_key = 6;
-- De rapportage van het exportbestand die voor Exact zou worden gegenereerd.
-- De OUDE ascii-rapportage van het exportbestand die voor Exact zou worden gegenereerd.
CREATE OR REPLACE VIEW skaf_v_rap_exact
(regelnummer,dagb_type, dagbknr, periode, bkjcode, bkstnr, oms25, datum, empty9, debnr,
crdnr, empty12, bedrag, drbk_in_val, valcode, koers, kredbep, bdrkredbep, vervdatfak, vervdatkrd,
@@ -1647,242 +1653,6 @@ AS
CREATE OR REPLACE VIEW skaf_v_export_exact (
result,
result_order
)
AS
SELECT REPLACE(REPLACE( regelnummer
|| ','
|| dagb_type
|| ','
|| dagbknr
|| ','
|| periode
|| ','
|| bkjcode
|| ','
|| bkstnr
|| ','
|| oms25
|| ','
|| datum
|| ','
|| empty9
|| ','
|| debnr
|| ','
|| crdnr
|| ','
|| empty12
|| ','
|| bedrag
|| ','
|| drbk_in_val
|| ','
|| valcode
|| ','
|| koers
|| ','
|| kredbep
|| ','
|| bdrkredbep
|| ','
|| vervdatfak
|| ','
|| vervdatkrd
|| ','
|| empty21
|| ','
|| empty22
|| ','
|| weeknummer
|| ','
|| betaalref
|| ','
|| betwijze
|| ','
|| grek_bdr
|| ','
|| empty27
|| ','
|| empty28
|| ','
|| empty29
|| ','
|| empty30
|| ','
|| empty31
|| ','
|| transsubtype
|| ','
|| empty33
|| ','
|| empty34
|| ','
|| empty35
|| ','
|| empty36
|| ','
|| empty37
|| ','
|| empty38
|| ','
|| projectnr
|| ','
|| empty40,CHR (13), ''), CHR (10), '<ret>'),
(10000000 + bkstnr) * 100 + regelnummer
FROM (SELECT 0 regelnummer,
'I' dagb_type,
'42' dagbknr,
'' periode,
'' bkjcode,
TO_CHAR (fin_factuur_key) bkstnr,
opdracht_id oms25,
TO_CHAR (fin_factuur_datum, 'ddmmyyyy') datum,
'' empty9,
'' debnr,
(SELECT prs_leverancier_nr
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
crdnr,
'' empty12,
REPLACE (TO_CHAR (bedrag), ',', '.') bedrag,
'' drbk_in_val,
'' valcode,
'' koers,
'' kredbep,
'' bdrkredbep,
'' vervdatfak,
'' vervdatkrd,
'' empty21,
'' empty22,
'' weeknummer,
fin_factuur_nr || '/' || fin_factuur_debiteur_nr betaalref,
'' betwijze,
'' grek_bdr,
'' empty27,
'' empty28,
'' empty29,
'' empty30,
'' empty31,
'' transsubtype,
'' empty33,
'' empty34,
'' empty35,
'' empty36,
'' empty37,
'' empty38,
'' projectnr,
'!' empty40
FROM (SELECT fin_factuur_key,
opdracht_id,
fin_factuur_datum,
fin_factuur_nr,
prs_bedrijf_key,
fin_factuur_debiteur_nr,
SUM (fin_factuurregel_totaal + fin_factuurregel_btw)
bedrag
FROM skaf_v_factuur_geg_akkoord
GROUP BY fin_factuur_key,
opdracht_id,
fin_factuur_datum,
fin_factuur_nr,
prs_bedrijf_key,
fin_factuur_debiteur_nr) fg
UNION ALL
SELECT fin_factuurregel_nr regelnummer,
'I' dagb_type,
'42' dagbknr,
'' periode,
'' bkjcode,
TO_CHAR (fin_factuur_key) boekstuknummer,
fin_factuur_nr || '/' || fin_factuur_debiteur_nr oms25,
TO_CHAR (fin_factuur_datum, 'ddmmyyyy') datum,
prs_kostensoort_refcode reknr,
'' debnr,
(SELECT prs_leverancier_nr
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
crdnr,
'' empty12,
REPLACE (TO_CHAR (fin_factuurregel_totaal), ',', '.') bedrag,
'' drbk_in_val,
'' val_code,
'' koers,
'' kredbep,
'' bdrkredbep,
'' vervdatfak,
'' vervdatkrd,
DECODE (ROUND( (fin_factuurregel_btw / decode(fin_factuurregel_totaal,0,0.000000001,fin_factuurregel_totaal))
* 100),
19,
'4',
6,
'2',
0,
'0',
'-1'
)
btw_code,
REPLACE (TO_CHAR (fin_factuurregel_btw), ',', '.') btw_bdr,
'' weeknummer,
'' empty24,
'' empty25,
'' empty26,
prs_kostenplaats_nr kstplcode,
'' kstdrcode,
'' empty29,
'' empty30,
'' empty31,
'' transsubtype,
'' empty33,
'' empty34,
'' emtpy35,
'' empty36,
'' empty37,
'' empty38,
project_nummer projectnr,
'!' empty40
FROM skaf_v_factuur_geg_akkoord fg
ORDER BY bkstnr, regelnummer);
CREATE OR REPLACE PROCEDURE skaf_select_exact (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
v_errormsg VARCHAR (200);
BEGIN
v_errormsg := 'Geen akties';
END;
/
-- Procedure om alle facturen te exporteren naar exact.
CREATE OR REPLACE PROCEDURE skaf_export_exact (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
v_errormsg VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
-- Bewaar de factuur keys in een tijdelijke tabel zodat bij het verwerken (nieuwe export)
-- deze keys gebruikt kunnen worden.
DELETE skaf_EXP_FACTUUR;
INSERT INTO skaf_EXP_FACTUUR (FIN_FACTUUR_KEY)
( SELECT DISTINCT FIN_FACTUUR_KEY FROM skaf_v_factuur_geg_akkoord );
END;
/
--- Facilitor Graphics / CAD ---
@@ -2026,24 +1796,24 @@ CREATE OR REPLACE VIEW skaf_v_fclt_factuur_body (
)
AS
SELECT DECODE(regelnummer,0,'<fin_factuur>','<fin_factuurregel>')
|| '<fin_factuur_key>' || fin_factuur_key || '</fin_factuur_key>'
|| '<fin_factuur_nr>' || fin_factuur_nr || '</fin_factuur_nr>'
|| '<fin_factuur_bestand>' || fin_factuur_bestand || '</fin_factuur_bestand>'
|| '<fin_factuur_debiteur_nr>' || fin_factuur_debiteur_nr || '</fin_factuur_debiteur_nr>'
|| '<bes_mld_cnt_opdracht_id>' || bes_mld_cnt_opdracht_id || '</bes_mld_cnt_opdracht_id>'
|| '<fin_factuur_datum>' || datum || '</fin_factuur_datum>'
|| '<fin_factuur_boekmaand>' || fin_factuur_boekmaand || '</fin_factuur_boekmaand>'
|| '<prs_kostensoort_refcode>' || grootboekrekening || '</prs_kostensoort_refcode>'
|| '<prs_leverancier_nr>' || crediteur_nr || '</prs_leverancier_nr>'
|| '<prs_bedrijf_naam>' || crediteur_naam || '</prs_bedrijf_naam>'
|| '<fin_factuur_totaal_exbtw>' || fin_factuur_totaal_exbtw || '</fin_factuur_totaal_exbtw>'
|| '<fin_factuur_totaal_incbtw>' || fin_factuur_totaal_incbtw || '</fin_factuur_totaal_incbtw>'
|| '<fin_factuurregel_omschrijving>' || fin_factuurregel_omschrijving || '</fin_factuurregel_omschrijving>'
|| '<fin_factuurregel_totaal>' || fin_factuurregel_totaal || '</fin_factuurregel_totaal>'
|| '<fin_factuurregel_btw_perc>' || btw_percentage || '</fin_factuurregel_btw_perc>'
|| '<fin_factuurregel_btw_bedrag>' || btw_bedrag || '</fin_factuurregel_btw_bedrag>'
|| '<prs_kostenplaats_nr>' || prs_kostenplaats_nr || '</prs_kostenplaats_nr>'
|| DECODE(regelnummer, 0, '', DECODE(aant_factuur_regels - regelnummer,0,'</fin_factuurregel></fin_factuur>','</fin_factuurregel>'))
|| '<fin_factuur_key>' || fin_factuur_key || '</fin_factuur_key>'
|| '<fin_factuur_nr>' || xml.char_to_html(fin_factuur_nr) || '</fin_factuur_nr>'
|| '<fin_factuur_bestand>' || xml.char_to_html(fin_factuur_bestand) || '</fin_factuur_bestand>'
|| '<fin_factuur_debiteur_nr>' || xml.char_to_html(fin_factuur_debiteur_nr) || '</fin_factuur_debiteur_nr>'
|| '<bes_mld_cnt_opdracht_id>' || xml.char_to_html(bes_mld_cnt_opdracht_id) || '</bes_mld_cnt_opdracht_id>'
|| '<fin_factuur_datum>' || datum || '</fin_factuur_datum>'
|| '<fin_factuur_boekmaand>' || fin_factuur_boekmaand || '</fin_factuur_boekmaand>'
|| '<prs_kostensoort_refcode>' || xml.char_to_html(grootboekrekening) || '</prs_kostensoort_refcode>'
|| '<prs_leverancier_nr>' || xml.char_to_html(crediteur_nr) || '</prs_leverancier_nr>'
|| '<prs_bedrijf_naam>' || xml.char_to_html(crediteur_naam) || '</prs_bedrijf_naam>'
|| '<fin_factuur_totaal_exbtw>' || fin_factuur_totaal_exbtw || '</fin_factuur_totaal_exbtw>'
|| '<fin_factuur_totaal_incbtw>' || fin_factuur_totaal_incbtw || '</fin_factuur_totaal_incbtw>'
|| '<fin_factuurregel_omschrijving>' || xml.char_to_html(fin_factuurregel_omschrijving) || '</fin_factuurregel_omschrijving>'
|| '<fin_factuurregel_totaal>' || fin_factuurregel_totaal || '</fin_factuurregel_totaal>'
|| '<fin_factuurregel_btw_perc>' || btw_percentage || '</fin_factuurregel_btw_perc>'
|| '<fin_factuurregel_btw_bedrag>' || btw_bedrag || '</fin_factuurregel_btw_bedrag>'
|| '<prs_kostenplaats_nr>' || xml.char_to_html(prs_kostenplaats_nr) || '</prs_kostenplaats_nr>'
|| DECODE(regelnummer, 0, '', DECODE(aant_factuur_regels - regelnummer,0,'</fin_factuurregel></fin_factuur>','</fin_factuurregel>'))
,
(10000000 + fin_factuur_key) * 100 + regelnummer
FROM (SELECT 0 regelnummer,
@@ -2158,45 +1928,13 @@ AS
FROM skaf_v_factuur_geg_akkoord
GROUP BY fin_factuur_key;
v_errormsg VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
c_datum DATE;
BEGIN
-- DE EXPORT IS OP BASIS VAN EEN VIEW GEREALISEERD, WAARNA NU ALS LAATSTE STAP NOG WAT ADMINISTRATIE VOLGT...
-- Bewaar de factuur keys in een tijdelijke tabel zodat bij een UNDO-actie (!!)
-- deze keys gebruikt kunnen worden om de status 'Admin. verwerkt' (=7) terug te kunnen zetten naar 'Akkoord' (=6)
DELETE skaf_EXP_FACTUUR;
INSERT INTO skaf_EXP_FACTUUR (FIN_FACTUUR_KEY, SKAF_EXPORT_DATUM)
( SELECT DISTINCT FIN_FACTUUR_KEY, SYSDATE FROM skaf_v_factuur_geg_akkoord );
-- En nu alle facturen die ge-exporteerd zijn, naar de status 'Admin. verwerkt' (=7) zetten,
-- maar niet zonder eerst in de tracking op te slaan...
-- c_datum := SYSDATE;
FOR cfact IN cfactuur
LOOP
-- Eerst de factuur in tracking zetten...
-- Zowel de factuur in tracking zetten als de status op verwerkt (=7) zetten
fin.setfactuurstatus (cfact.fin_factuur_key, 7, NULL);
--fac.trackaction ('FINVER', cfact.fin_factuur_key, NULL, c_datum, 'Factuur geexporteerd en gearchiveerd');
--UPDATE fin_factuur
--SET fin_factuur_statuses_key = 7
--WHERE fin_factuur_key = cfact.fin_factuur_key;
END LOOP;
--UPDATE fin_factuur
--SET fin_factuur_statuses_key = 7
--WHERE fin_factuur_key in
--(SELECT f.fin_factuur_key
-- FROM skaf_exp_factuur f, skaf_v_factuur_geg_akkoord fg
-- WHERE f.fin_factuur_key = fg.fin_factuur_key);
END;
/
@@ -2235,11 +1973,16 @@ SELECT REPLACE(REPLACE(f.fin_factuur_key
|| ';'
|| cnt_contract_key
,CHR (13), ''), CHR (10), '<ret>'), f.fin_factuur_key
FROM skaf_exp_factuur f,
skaf_v_factuur_geg_akkoord fg
WHERE f.fin_factuur_key = fg.fin_factuur_key;
FROM skaf_v_factuur_geg f, fac_tracking t, fac_srtnotificatie sn
WHERE sn.fac_srtnotificatie_code ='FINVER'
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
AND t.fac_tracking_datum >= (SELECT MAX(t1.fac_tracking_datum) - (1 / (24*60))
FROM fac_tracking t1
WHERE t1.fac_srtnotificatie_key = t.fac_srtnotificatie_key)
AND f.fin_factuur_key = t.fac_tracking_refkey
AND f.fin_factuur_statuses_key = 7;
CREATE OR REPLACE PROCEDURE skaf_select_undo_exact (
p_applname IN VARCHAR2,
@@ -2324,7 +2067,7 @@ END;
BEGIN adm.systrackscript('$Workfile: skaf.sql $', '$Revision: 7 $', 0); END;
BEGIN adm.systrackscript('$Workfile: skaf.sql $', '$Revision: 8 $', 0); END;
/