PCHX#63945 Import xml-factuur uit Scansys (xml ipv csv), BTW codes omzetten voor PCHY & BTW bedrag 1 op 1 overnemen

svn path=/Customer/trunk/; revision=50665
This commit is contained in:
Sander Schepers
2021-04-06 20:04:42 +00:00
parent 4318f8f84e
commit f0fb03a377

View File

@@ -4558,12 +4558,10 @@ AS
f.fin_factuur_key,
f.fin_factuurregel_key,
f.btw,
btw.fin_btwtabelwaarde_key,
btw.fin_btwtabelwaarde_code,
btw.fin_btwtabelwaarde_perc
FROM fac_imp_factuur f, fin_btwtabelwaarde btw
WHERE f.btw = btw.fin_btwtabelwaarde_code
AND f.fac_import_key = p_import_key;
f.kenmerk11,
f.btw_bedrag
FROM fac_imp_factuur f
WHERE f.fac_import_key = p_import_key;
v_factuur_key NUMBER (10);
v_errormsg VARCHAR (200);
@@ -4576,15 +4574,22 @@ AS
v_kostenplaats NUMBER;
v_opmerking VARCHAR2 (3000);
v_omschrijving VARCHAR2 (3000);
v_afw_boekdatum VARCHAR2(200);
v_afw_boekdatum VARCHAR2 (200);
BEGIN
-- In PCHY zijn er meerdere BTW codes met 21%, hier zetten we deze goed.
v_errorhint := 'BTW code goedzetten';
FOR rec IN btw
LOOP
BEGIN
UPDATE fin_factuurregel
SET fin_btwtabelwaarde_key = rec.fin_btwtabelwaarde_key
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
CASE
WHEN pchx.get_user = 'PCHY'
THEN
UPDATE fin_factuurregel
SET fin_btwtabelwaarde_key = 24 -- BTW key voor code 23 - Hoog-21% - inclusief vrijgesteld
WHERE fin_factuurregel_key = rec.fin_factuurregel_key
AND rec.kenmerk11 = '23';
END CASE;
END;
END LOOP;
@@ -4666,6 +4671,8 @@ BEGIN
THEN
v_errorhint := 'Geen grootboekrekening';
ELSE
v_errorhint := 'Fout bij inlezen grootboekrekening';
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
fin_kenmerk_key,
fin_kenmerkfactuur_waarde)
@@ -4687,13 +4694,18 @@ BEGIN
FOR rec IN km_factuurregels
LOOP
BEGIN
v_errorhint := 'Update factuurregels';
v_kostenplaats := NULL;
v_omschrijving := SUBSTR (rec.omschrijving, 1, 250);
-- verwijder de markering voor cr/lf die we zelf in de stylesheet toegevoegd hebben.
v_omschrijving := REPLACE (v_omschrijving, '@@', CHR (13));
v_afw_boekdatum :=
TO_CHAR (fac.safe_to_date (SUBSTR(rec.kenmerk13,0,10), 'yyyy-mm-dd'), 'dd-mm-yyyy');
TO_CHAR (
fac.safe_to_date (SUBSTR (rec.kenmerk13, 0, 10), 'yyyy-mm-dd'),
'dd-mm-yyyy');
v_errorhint := 'Update factuurregels, kostenplaats';
SELECT MAX (prs_kostenplaats_key)
INTO v_kostenplaats
@@ -4701,11 +4713,22 @@ BEGIN
WHERE prs_kostenplaats_upper = UPPER (rec.kenmerk10)
AND prs_kostenplaats_verwijder IS NULL;
v_errorhint := 'Update factuurregels, omschrijving';
UPDATE fin_factuurregel
SET fin_factuurregel_omschrijving = v_omschrijving
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
--Afwijkende grootboekrekening (factuurregel)
v_errorhint := 'Geen afw. grootboekrekening factuurregel';
--Het BTW bedrag moet 1 op 1 worden overgenomen vanuit Scansys, om geen afrondingsverschillen te krijgen
v_errorhint := 'BTW bedrag overnemen';
UPDATE fin_factuurregel
SET fin_factuurregel_btw = rec.btw_bedrag -- BTW key voor code 23 - Hoog-21% - inclusief vrijgesteld
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
IF rec.kenmerk8 IS NULL
THEN
v_errorhint := 'Geen afw. grootboekrekening factuurregel';
@@ -4728,6 +4751,8 @@ BEGIN
END IF;
--Projectcode (factuurregel)
v_errorhint := 'Geen projectcode factuurregel';
IF rec.kenmerk7 IS NULL
THEN
v_errorhint := 'Geen projectcode factuurregel';
@@ -4747,6 +4772,8 @@ BEGIN
AND ud.fac_usrdata_code = rec.kenmerk7));
END IF;
v_errorhint := 'Geen afw. kostendrager factuurregel';
--Afw. Kostendrager (factuurregel)
IF rec.kenmerk3 IS NULL
THEN
@@ -4767,6 +4794,8 @@ BEGIN
AND ud.fac_usrdata_code = rec.kenmerk3));
END IF;
v_errorhint := 'Geen afw. kostenplaats factuurregel';
--Afw. kostenplaats (factuurregel)
IF v_kostenplaats IS NULL
THEN
@@ -4783,6 +4812,8 @@ BEGIN
v_kostenplaats);
END IF;
v_errorhint := 'Geen kostensoort factuurregel';
--Kostensoort (factuurregel)
IF rec.kenmerk2 IS NULL
THEN
@@ -4796,6 +4827,9 @@ BEGIN
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
END IF;
v_errorhint := 'Geen regelnummer factuurregel';
--Regelnummer (factuurregel)
IF rec.kenmerk9 IS NULL
THEN
@@ -4805,7 +4839,9 @@ BEGIN
SET fin_factuurregel_nr = rec.kenmerk9
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
END IF;
v_errorhint := 'Geen afw. boekdatum factuurregel';
--Afw. boekdatum (factuurregel)
IF rec.kenmerk13 IS NULL
THEN
@@ -4823,6 +4859,23 @@ BEGIN
END IF;
END;
END LOOP;
COMMIT;
--Het BTW bedrag moet 1 op 1 worden overgenomen vanuit Scansys, om geen afrondingsverschillen te krijgen
FOR rec IN km_facturen
LOOP
v_errorhint := 'BTW bedrag factuur herrekenen';
BEGIN
UPDATE fin_factuur
SET fin_factuur_totaal_btw =
(SELECT SUM (fin_factuurregel_btw)
FROM fin_factuurregel
WHERE fin_factuur_key = rec.fin_factuur_key)
WHERE fin_factuur_key = rec.fin_factuur_key;
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
@@ -4841,12 +4894,21 @@ CREATE OR REPLACE PROCEDURE pchx_update_fin_scansys_xml (
p_import_key IN NUMBER)
AS
BEGIN
CASE
WHEN pchx.get_user = 'PCHY'
THEN
UPDATE fac_imp_factuur
SET btw = '0'
WHERE fac_import_key = p_import_key AND btw = '23';
END CASE;
COMMIT;
-- Standaard FCLT verwerk import facturen
fac_update_factuur (p_import_key);
-- CUST: post processing van:
-- 1) Kenmerken vullen bij factuur.
-- 2) Btw code goed zetten.
-- CUST: post processing van:
-- 1) Kenmerken vullen bij factuur.
-- 2) Btw code goed zetten.
pchx_post_upd_fin_scansys_xml (p_import_key);
END;
/