PCHD#56409 Export verplichtingen en facturen scansys
svn path=/Customer/trunk/; revision=41998
This commit is contained in:
317
PCHX/pchx.sql
317
PCHX/pchx.sql
@@ -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;
|
||||
/
|
||||
/
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user