PCHD#56409 Export verplichtingen en facturen scansys

svn path=/Customer/trunk/; revision=41998
This commit is contained in:
Sander Schepers
2019-04-08 12:39:05 +00:00
parent 02d8b03cc6
commit c62951aeca

View File

@@ -847,16 +847,16 @@ CREATE OR REPLACE VIEW pchx_v_bron_export_exact_xml
kstplcode,
btw_code,
lev_kpn,
administratie
administratie,
fin_factuur_key
)
AS
SELECT (SELECT fin_kenmerkfactuur_waarde kf
FROM fin_kenmerkfactuur kf
WHERE kf.fin_factuur_key = fg.fin_factuur_key
AND kf.fin_kenmerk_key = 3) -- boekstuknummer
AND kf.fin_kenmerk_key = 3) -- boekstuknummer
bkstnr,
REPLACE (fin_factuur_opmerking, ',', '')
fact_oms25,
REPLACE (fin_factuur_opmerking, ',', '') fact_oms25,
opdracht_id
|| ' - '
|| REPLACE (fin_factuurregel_omschrijving, ',', '')
@@ -868,7 +868,7 @@ AS
'yyyy-mm-dd')
FROM fin_kenmerkfactregel kfr
WHERE kfr.fin_factuurregel_key = fg.fin_factuurregel_key
AND kfr.fin_kenmerk_key = 23) -- afw boekdatum
AND kfr.fin_kenmerk_key = 23) -- afw boekdatum
afw_datum,
(SELECT prs_leverancier_nr
FROM prs_bedrijf b
@@ -889,12 +889,14 @@ AS
kstplcode,
fin_btwtabelwaarde_code btw_code,
lev_kpn,
administratie
administratie,
fin_factuur_key
FROM pchx_v_factuur_gegevens fg
WHERE fin_factuur_statuses_key = 6;
-- Procedure om alle facturen te exporteren naar exact voor de geselecteerde administratie.
CREATE OR REPLACE PROCEDURE pchx_select_exact_adm (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
@@ -1674,20 +1676,6 @@ AS
-- EXPORTFUNCTIE - Export VERPLICHTINGEN EN SCANSYS
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW pchx_v_export_scansys
(
result,
result_order,
boekstuknummer
)
AS;
SELECT SUBSTR (fac_rapport_regel, INSTR (fac_rapport_regel, '##') + 2),
fac_rapport_volgnr,
SUBSTR (fac_rapport_regel, 1, INSTR (fac_rapport_regel, '##') - 1)
FROM fac_rapport
WHERE fac_rapport_node = 'SCANSYS'
order by SUBSTR (fac_rapport_regel, 1, INSTR (fac_rapport_regel, '##') - 1), fac_rapport_volgnr;
CREATE OR REPLACE PROCEDURE pchx_select_scansys_adm (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
@@ -1695,13 +1683,19 @@ CREATE OR REPLACE PROCEDURE pchx_select_scansys_adm (
AS
CURSOR c
IS
SELECT bkstnr,
datum,
MAX (fact_oms25) fact_oms25,
administratie
FROM pchx_v_bron_export_exact_xml
WHERE administratie = p_administratie
GROUP BY bkstnr, datum, administratie;
SELECT bkstnr,
datum,
MAX (fact_oms25) fact_oms25,
administratie
FROM pchx_v_bron_export_exact_xml f
WHERE administratie = 650
AND fin_factuur_key NOT IN
(SELECT fac_tracking_refkey
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_code = 'CUST10'
AND t.fac_tracking_refkey = fin_factuur_key)
GROUP BY bkstnr, datum, administratie;
CURSOR c_sub (c_bkstnr VARCHAR2)
IS
@@ -1925,7 +1919,6 @@ BEGIN
END;
/
CREATE OR REPLACE VIEW pchx_v_bron_verplichtingen_xml
(
bkstnr,
@@ -1946,7 +1939,9 @@ CREATE OR REPLACE VIEW pchx_v_bron_verplichtingen_xml
kstplcode,
btw_code,
lev_kpn,
administratie
administratie,
fin_factuur_key,
track_verpl
)
AS
SELECT (SELECT fin_kenmerkfactuur_waarde kf
@@ -1987,9 +1982,16 @@ AS
kstplcode,
fin_btwtabelwaarde_code btw_code,
lev_kpn,
administratie
administratie,
fin_factuur_key,
(SELECT fac_tracking_datum
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_tracking_refkey = fin_factuur_key
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_code = 'CUST10')
track_verpl
FROM pchx_v_factuur_gegevens fg
WHERE fin_factuur_statuses_key = 2;
WHERE fin_factuur_statuses_key between 1 and 6;
CREATE OR REPLACE VIEW pchx_v_export_verpl
@@ -2016,16 +2018,21 @@ AS
SELECT bkstnr,
datum,
MAX (fact_oms25) fact_oms25,
administratie
administratie,
crdnr
FROM pchx_v_bron_verplichtingen_xml
WHERE administratie = p_administratie
GROUP BY bkstnr, datum, administratie;
WHERE administratie = 650 AND track_verpl IS NULL
GROUP BY bkstnr,
datum,
administratie,
crdnr;
CURSOR c_sub (c_bkstnr VARCHAR2)
IS
SELECT *
FROM pchx_v_bron_verplichtingen_xml
WHERE administratie = p_administratie AND bkstnr = c_bkstnr;
WHERE administratie = p_administratie --AND bkstnr = c_bkstnr
AND track_verpl IS NULL;
v_order_count NUMBER;
v_amount_sum NUMBER (10, 2);
@@ -2042,21 +2049,6 @@ BEGIN
v_count := 0;
v_bestand := SUBSTR (p_applname, 1, 12);
-- Voeg de factuur keys van vorig uur in een tijdelijke tabel zodat bij het verwerken (nieuwe export)
-- deze keys gebruikt kunnen worden.
-- Bij het verwerken na de export, worden de factuur keys weer opgeruimd, mocht de procedure zover komen.
INSERT INTO pchx_exp_verpl (fin_factuur_key, administratie, boekstuknummer)
(SELECT DISTINCT
fin_factuur_key,
p_administratie,
p_administratie || boekstuknummer
FROM pchx_v_factuur_gegevens
WHERE fin_factuur_statuses_key = 2
AND administratie = p_administratie
AND fin_factuur_key NOT IN (SELECT fin_factuur_key
FROM pchx_exp_verpl
WHERE verwerkt = 'J'));
FOR rec IN c
LOOP
BEGIN
@@ -2091,116 +2083,127 @@ BEGIN
v_bestand,
'<Journal type="I" code="' || v_dagboeknr || '"/>');
v_sub_count := 1;
pchx.add_xml_row (
v_bestand,
'<Creditor number="' || xml.char_to_html (rec.crdnr) || '"/>');
FOR rec1 IN c_sub (rec.bkstnr)
LOOP
BEGIN
pchx.add_xml_row (
v_bestand,
'<FinEntryLine number="'
|| v_sub_count
|| '" subtype="T" type="N">');
pchx.add_xml_element (
v_bestand,
'Date',
COALESCE (rec1.afw_datum, rec1.datum));
pchx.add_xml_row (
v_bestand,
'<GLAccount code="'
|| xml.char_to_html (rec1.reknr)
|| '"/>');
IF pchx.get_user = 'PCHD'
THEN
IF rec1.bkstnr = 1
THEN
BEGIN
pchx.add_xml_row (
v_bestand,
'<Project code="'
|| rec1.projectnr
|| '" type="I" status="A">');
'<FinEntryLine number="'
|| v_sub_count
|| '" subtype="T" type="N">');
pchx.add_xml_element (
v_bestand,
'Date',
COALESCE (rec1.afw_datum, rec1.datum));
pchx.add_xml_row (
v_bestand,
'<GLAccount code="'
|| xml.char_to_html (rec1.reknr)
|| '"/>');
IF pchx.get_user = 'PCHD'
THEN
pchx.add_xml_row (
v_bestand,
'<Project code="'
|| rec1.projectnr
|| '" type="I" status="A">');
pchx.add_xml_element (v_bestand,
'Description',
rec1.projectnaam);
pchx.add_xml_row (v_bestand, '</Project>');
END IF;
pchx.add_xml_element (v_bestand,
'Description',
rec1.projectnaam);
pchx.add_xml_row (v_bestand, '</Project>');
END IF;
rec1.regel_oms25);
pchx.add_xml_element (v_bestand,
'Description',
rec1.regel_oms25);
IF pchx.get_user = 'PCHD'
OR pchx.get_user = 'PCHS'
OR pchx.get_user = 'PCHP'
OR pchx.get_user = 'PCHY'
THEN
pchx.add_xml_row (
v_bestand,
'<Costcenter code="'
|| xml.char_to_html (rec1.kstplcode)
|| '"/>');
END IF;
IF pchx.get_user = 'PCHD'
OR pchx.get_user = 'PCHS'
OR pchx.get_user = 'PCHP'
OR pchx.get_user = 'PCHY'
THEN
-- LET OP: PCHA en PCHW gebruiken het projectcode veld om de kostenplaats te vullen in Exact
-- De Facilitor kostenplaats wordt bij deze accounts al gebruikt voor de klantkostenplaats.
IF pchx.get_user = 'PCHA' OR pchx.get_user = 'PCHW'
THEN
pchx.add_xml_row (
v_bestand,
'<Costcenter code="'
|| xml.char_to_html (rec1.projectnr)
|| '"/>');
END IF;
IF pchx.get_user = 'PCHD'
THEN
pchx.add_xml_row (
v_bestand,
'<Costunit code="'
|| xml.char_to_html (rec1.kstdrcode)
|| '"/>');
END IF;
IF pchx.get_user = 'PCHD'
THEN
pchx.add_xml_row (
v_bestand,
'<Item code="'
|| xml.char_to_html (rec1.itemcode)
|| '"/>');
END IF;
pchx.add_xml_row (v_bestand, '<Amount>');
pchx.add_xml_element (v_bestand,
'Debit',
rec1.bedrag_txt);
pchx.add_xml_row (
v_bestand,
'<Costcenter code="'
|| xml.char_to_html (rec1.kstplcode)
'<VAT code="'
|| xml.char_to_html (rec1.btw_code)
|| '"/>');
END IF;
pchx.add_xml_row (v_bestand, '</Amount>');
pchx.add_xml_row (v_bestand, '<Payment>');
pchx.add_xml_element (v_bestand,
'Reference',
rec1.betaalref);
pchx.add_xml_element (v_bestand,
'InvoiceNumber',
rec1.bkstnr);
pchx.add_xml_row (v_bestand, '</Payment>');
pchx.add_xml_row (v_bestand, '<FinReferences>');
pchx.add_xml_element (v_bestand,
'YourRef',
rec1.betaalref);
pchx.add_xml_element (v_bestand,
'DocumentDate',
TO_CHAR (SYSDATE, 'YYYY-MM-DD'));
pchx.add_xml_row (v_bestand, '</FinReferences>');
pchx.add_xml_row (v_bestand, '</FinEntryLine>');
v_sub_count := v_sub_count + 1;
v_amount_sum := v_amount_sum + rec1.bedrag;
v_amount_sum_incl := v_amount_sum_incl + rec1.bedrag_incl;
END;
-- LET OP: PCHA en PCHW gebruiken het projectcode veld om de kostenplaats te vullen in Exact
-- De Facilitor kostenplaats wordt bij deze accounts al gebruikt voor de klantkostenplaats.
IF pchx.get_user = 'PCHA' OR pchx.get_user = 'PCHW'
THEN
pchx.add_xml_row (
v_bestand,
'<Costcenter code="'
|| xml.char_to_html (rec1.projectnr)
|| '"/>');
END IF;
IF pchx.get_user = 'PCHD'
THEN
pchx.add_xml_row (
v_bestand,
'<Costunit code="'
|| xml.char_to_html (rec1.kstdrcode)
|| '"/>');
END IF;
pchx.add_xml_row (
v_bestand,
'<Creditor number="'
|| xml.char_to_html (rec1.crdnr)
|| '"/>');
IF pchx.get_user = 'PCHD'
THEN
pchx.add_xml_row (
v_bestand,
'<Item code="'
|| xml.char_to_html (rec1.itemcode)
|| '"/>');
END IF;
pchx.add_xml_row (v_bestand, '<Amount>');
pchx.add_xml_element (v_bestand, 'Debit', rec1.bedrag_txt);
pchx.add_xml_row (
v_bestand,
'<VAT code="'
|| xml.char_to_html (rec1.btw_code)
|| '"/>');
pchx.add_xml_row (v_bestand, '</Amount>');
pchx.add_xml_row (v_bestand, '<Payment>');
pchx.add_xml_element (v_bestand,
'Reference',
rec1.betaalref);
pchx.add_xml_element (v_bestand,
'InvoiceNumber',
rec1.bkstnr);
pchx.add_xml_row (v_bestand, '</Payment>');
pchx.add_xml_row (v_bestand, '<FinReferences>');
pchx.add_xml_element (v_bestand, 'YourRef', rec1.betaalref);
pchx.add_xml_element (v_bestand,
'DocumentDate',
TO_CHAR (SYSDATE, 'YYYY-MM-DD'));
pchx.add_xml_row (v_bestand, '</FinReferences>');
pchx.add_xml_row (v_bestand, '</FinEntryLine>');
v_sub_count := v_sub_count + 1;
v_amount_sum := v_amount_sum + rec1.bedrag;
v_amount_sum_incl := v_amount_sum_incl + rec1.bedrag_incl;
END;
INSERT INTO fac_tracking (fac_tracking_refkey, fac_srtnotificatie_key, fac_tracking_oms)
SELECT rec1.fin_factuur_key,
fac_srtnotificatie_key,
'Verplichting verzonden naar Scansys'
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CUST10';
END IF;
END LOOP;
pchx.add_xml_row (v_bestand, '</GLEntry>');
@@ -2212,7 +2215,6 @@ BEGIN
v_order_count := v_order_count + 1;
END LOOP;
fac.writelog (
p_applname,
'S',
@@ -2224,7 +2226,7 @@ BEGIN
|| v_amount_sum_incl,
'');
END;
/
/
CREATE OR REPLACE PROCEDURE pchx_select_verpl (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
@@ -2243,25 +2245,12 @@ AS
BEGIN
v_bestand := SUBSTR (p_applname, 1, 12);
--Daadwerkelijke uitvoer van de export
pchx_export_verpl (p_applname,
p_applrun,
p_filedir,
p_filename);
--Hiermee zorgen dat de verplichtingen niet in een volgende export komen
--In pchx_exp_verpl staan dan alle boekstuknummers die al eens als verplichting geexporteerd zijn.
UPDATE pchx_exp_verpl
SET verwerkt = 'J'
WHERE boekstuknummer IN (SELECT boekstuknummer
FROM fac_rapport
WHERE fac_rapport_node = v_bestand);
--Hiermee zorgen dat de verplichtingen niet in een volgende export komen
DELETE fac_rapport
WHERE fac_rapport_node = v_bestand;
END;
/
/
--------------------------------------------------------------------------------------