FCLT#62265 -- Opruimen FTP 'Imports' - opruimen fin_factuur_delixl

svn path=/Customer/trunk/; revision=50863
This commit is contained in:
Jos Migo
2021-04-15 12:46:59 +00:00
parent 294f437cba
commit abff5cf984

View File

@@ -2037,176 +2037,6 @@ SELECT (CASE
AND rrg.res_discipline_key = rd.ins_discipline_key;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- DELIXL E-INVOICING -- DELIXL E-INVOICING -- DELIXL E-INVOICING -- DELIXL E-INVOICING -- DELIXL E-INVOICING -- DELIXL E-INVOICING -- DELIXL E-INVOICING --
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE vgld_post_fin_factuur_delixl (p_import_key IN NUMBER)
AS
mb VARCHAR(50);
BEGIN
mb := 'Dit is een dummy';
END;
/
CREATE OR REPLACE PROCEDURE vgld_import_fin_factuur_delixl (p_import_key IN NUMBER)
AS
v_seq_of_columns VARCHAR(50);
BEGIN
--In de XSL: factuurnr(1);factuurdatum(2);opdrachtnr(3);omschrijving(4);bedrag(5);btwperc(6);btwbedrag(7);document(8);debiteurnr(9);opmerking(10);btw_verlegd(11);betaalkenmerk(12)
--hulp voor pos : '1;2;3;4;5;6;7;8;9;0;1;2;3;14;15;16;7;8;9;0'
v_seq_of_columns := '0;1;2;3;0;0;4;0;5;7;6;8;0;0;0;9;0;0;0;0';
-- Variabelelijst
-- v_leveranciernr: 1
-- v_factuurnr: 2 (VERPLICHT, anders zet Facilitor '-' in factuurnr, en is status van factuur "Incompleet")
-- v_factuurdatum: 3
-- v_ordernr: 4 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_locatie: 5
-- v_afleverdatum: 6
-- v_omschrijving: 7
-- v_aantal: 8
-- v_kostprijs: 9 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_btw_bedrag: 10 (VERPLICHT, of anders veld 11, anders is status van factuur "Incompleet")
-- v_btw: 11 (VERPLICHT, of anders veld 10, anders is status van factuur "Incompleet")
-- v_docid: 12
-- v_debiteur_nr: 13
-- v_opmerking: 14
-- v_btw_verlegd: 15 (VERPLICHT, Ja/Nee/<leeg> waarbij leeg gelijk is aan Nee. Andere waarden leidt tot "Incompleet")
-- v_kenmerk1: 16
-- v_kenmerk1: 17
-- v_kenmerk1: 18
-- v_kenmerk1: 19
-- v_kenmerk1: 20
-- v_boekmaand: 21
fac_import_factuur_body(p_import_key, v_seq_of_columns);
vgld_post_fin_factuur_delixl (p_import_key);
END;
/
--
-- CUST: post processing van:
-- 1) Factuurregelnummers conform de bestelopdracht-regelnummers (want die krijgen we van DeliXML weer mee terug, en da's handig om te vergelijken indien dat nodig mocht zijn)
-- Deze had wat mij betreft ook in standaard fac_update_factuur gemogen, echter daar ontbreekt de sortering daarop, en is de sortering DESC (had ASC gemogen).
-- 2) voor verwerking van kenmerk 'kostensoort' (grootboekrekening)
CREATE OR REPLACE PROCEDURE vgld_post_update_factuur_deli (p_import_key IN NUMBER)
AS
v_fac_usrtab_key fac_usrtab.fac_usrtab_key%TYPE;
v_fac_usrdata_omschr fac_usrdata.fac_usrdata_omschr%TYPE;
v_prs_kostensoort_key prs_kostensoort.prs_kostensoort_key%TYPE;
v_fin_kostensoort_key prs_kostensoort.prs_kostensoort_key%TYPE;
CURSOR cfactuurregel_kostensoort
IS
SELECT DISTINCT fin_factuur_key, factuurnr, fin_factuurregel_key, kenmerk1, fac_imp_file_index
FROM fac_imp_factuur
WHERE fac_import_key = p_import_key;
BEGIN
-- In productie is de key van eigen tabel '$DeliXL' 101
v_fac_usrtab_key := 101;
-- De betaalreferentie wordt in kenmerk 1 van fac_imp_factuur gezet, dus alle fac_imp_factuur langsgaan en verwerken
FOR rc IN cfactuurregel_kostensoort
LOOP
BEGIN
UPDATE fin_factuurregel
SET fin_factuurregel_nr = rc.fac_imp_file_index
WHERE fin_factuurregel_key = rc.fin_factuurregel_key;
-- Kostensoorten van DeliXL (KS-D) als volgt omgezet naar kostensoort van Vogellanden (KS-V):
-- Stap a) uit VGLD#28993, via eigen tabel $DeliXL
SELECT MAX(ud.fac_usrdata_omschr)
INTO v_fac_usrdata_omschr
FROM fac_usrdata ud
WHERE fac_usrtab_key = v_fac_usrtab_key
AND ud.fac_usrdata_verwijder IS NULL
AND rc.kenmerk1 LIKE ud.fac_usrdata_code;
IF v_fac_usrdata_omschr IS NULL
THEN
-- We hebben nog GEEN match gevonden in de eigen tabel '$DeliXL', verder op zoek naar de kostensoort:
-- Stap b) uit VGLD#28993, voorloopnul van KS-D erachter gezet (b.v. 0123 wordt 1230)
IF SUBSTR(rc.kenmerk1,1,1) = '0'
THEN
-- 1e cijfer van kostensoort Deli is een 0, dus voorloopnul erachter zetten.
v_fac_usrdata_omschr := SUBSTR(rc.kenmerk1,2) || SUBSTR(rc.kenmerk1,1,1);
END IF;
END IF;
IF v_fac_usrdata_omschr IS NOT NULL
THEN
-- Dan gaan we op zoek of de kostensoort volgens stap a) of stap b) wel bestaat.
SELECT MAX(prs_kostensoort_key)
INTO v_prs_kostensoort_key
FROM prs_kostensoort
WHERE prs_kostensoort_upper = UPPER(v_fac_usrdata_omschr);
IF v_prs_kostensoort_key IS NOT NULL
THEN
-- We hebben een geldige vertaling van kostensoort van Deli -> kostensoort Vogellanden.
-- Nu nog ff checken of deze kostensoort al bij factuur staat, want dan hoeven we dit op factuurregel niet te zetten (dan neemt die de kostensoort van factuur 'over')
SELECT COALESCE(f.prs_kostensoort_key,-1)
INTO v_fin_kostensoort_key
FROM fin_factuur f, fin_factuurregel fr
WHERE f.fin_factuur_key = fr.fin_factuur_key
AND fr.fin_factuurregel_key = rc.fin_factuurregel_key;
IF v_fin_kostensoort_key <> v_prs_kostensoort_key
THEN
-- De kostensoort is NIET dezelfde als bij factuur, dus we gaan hem op factuurregel nivo zetten.
UPDATE fin_factuurregel
SET prs_kostensoort_key = v_prs_kostensoort_key
WHERE fin_factuurregel_key = rc.fin_factuurregel_key;
END IF;
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (p_import_key,
'W',
'Van factuur met key ' || rc.fin_factuur_key || ' is de kostensoort niet verwerkt (regel ' || rc.fac_imp_file_index || ')',
'Factuurnr:' || rc.factuurnr || ' / Kostensoort: ' || rc.kenmerk1
);
END;
END LOOP;
END;
/
CREATE OR REPLACE PROCEDURE vgld_update_fin_factuur_delixl (p_import_key IN NUMBER)
AS
BEGIN
-- Standaard FCLT verwerk import facturen
fac_update_factuur (p_import_key);
-- CUST: post processing van:
-- 1) Factuurregelnummers conform de bestelopdracht-regelnummers (want die krijgen we van DeliXML weer mee terug, en da's handig om te vergelijken indien dat nodig mocht zijn)
-- 2) voor verwerking van kenmerk 'kostensoort' (grootboekrekening)
vgld_post_update_factuur_deli(p_import_key);
END;
/
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------