YASK#64970 -- Afronding financiele koppeling Levanto

svn path=/Customer/trunk/; revision=51024
This commit is contained in:
Arthur Egberink
2021-04-22 13:44:08 +00:00
parent 976af21c42
commit da41e20f95

View File

@@ -1475,8 +1475,9 @@ END;
-- Een nieuwe import voegt regels toe als de combinatie van velden niet gevonden kan worden. -- Een nieuwe import voegt regels toe als de combinatie van velden niet gevonden kan worden.
-- De enige uitzondering is een regel waarvan nu de einddatum gezet is en die in de tabel -- De enige uitzondering is een regel waarvan nu de einddatum gezet is en die in de tabel
-- nog zonder einddatum staat. -- nog zonder einddatum staat.
-- Regels verwijderen uit de import tabel kan door alle velden gelijk te hebben en de opslag -- Regels verwijderen uit de import tabel kan door ze niet meer op te nemen in de sheet. De
-- op null (leeg) te zetten. -- tabel wordt altijd eerst geleegd door alles op verwijderd te zetten. Hiermee kun je altijd nog een
-- oude versie terugvinden.
CREATE OR REPLACE PROCEDURE yask_import_opslag (p_import_key IN NUMBER) CREATE OR REPLACE PROCEDURE yask_import_opslag (p_import_key IN NUMBER)
AS AS
@@ -1556,6 +1557,9 @@ BEGIN
THEN THEN
-- Sla de kopregel over. -- Sla de kopregel over.
header_found := TRUE; header_found := TRUE;
UPDATE yask_imp_opslag
SET imp_opslag_verwijder = SYSDATE
WHERE imp_opslag_verwijder IS NULL;
ELSIF (header_found) ELSIF (header_found)
THEN THEN
-- voeg nieuwe records toe -- voeg nieuwe records toe
@@ -1639,107 +1643,25 @@ BEGIN
v_errorhint := 'Controleer vervaldatum'; v_errorhint := 'Controleer vervaldatum';
v_eind := TO_DATE (v_eind_txt, 'dd-mm-yyyy'); v_eind := TO_DATE (v_eind_txt, 'dd-mm-yyyy');
v_null_date := TO_DATE ('1900-01-01', 'yyyy-mm-dd'); INSERT INTO yask_imp_opslag (
imp_opslag_key,
-- ken ik de combinatie van locatie, vakgroeptype, vakgroep, nen code, ingangsdatum en vervaldatum al? alg_locatie_key,
BEGIN ins_srtdiscipline_key,
v_errorhint := 'Zoek record op zelfde einddatum'; ins_discipline_key,
prs_kostensoort_key,
SELECT imp_opslag_key opslag,
INTO v_imp_opslag_key ingangsdatum,
FROM yask_imp_opslag einddatum,
WHERE alg_locatie_key = v_locatie_key imp_opslag_aanmaak)
AND COALESCE (ins_srtdiscipline_key, -1) = VALUES (v_imp_opslag_key + 1,
COALESCE (v_srtdiscipline_key, -1) v_locatie_key,
AND COALESCE (ins_discipline_key, -1) = v_srtdiscipline_key,
COALESCE (v_discipline_key, -1) v_discipline_key,
AND COALESCE (prs_kostensoort_key, -1) = v_kostensoort_key,
COALESCE (v_kostensoort_key, -1) v_opslag,
AND COALESCE (ingangsdatum, v_null_date) = v_begin,
COALESCE (v_begin, v_null_date) v_eind,
AND COALESCE (einddatum, v_null_date) = SYSDATE);
COALESCE (v_eind, v_null_date)
AND imp_opslag_verwijder IS NOT NULL;
-- Ik heb een exacte match gevonden. Als de nieuwe opslag null is dan verwijderen we het record
-- In de andere gevallen passen we de opslag aan.
IF v_opslag IS NULL
THEN
UPDATE yask_imp_opslag
SET imp_opslag_verwijder = SYSDATE
WHERE imp_opslag_key = v_imp_opslag_key;
ELSE
UPDATE yask_imp_opslag
SET opslag = v_opslag
WHERE imp_opslag_key = v_imp_opslag_key;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
BEGIN
-- Nu gaan we kijken of er een record is die volledig matcht maar
-- geen einddatum heeft. Hierbij gaan we dan de einddatum zetten.
v_errorhint :=
'Zoek record op volledige match zonder einddatum';
SELECT imp_opslag_key
INTO v_imp_opslag_key
FROM yask_imp_opslag
WHERE alg_locatie_key = v_locatie_key
AND COALESCE (ins_srtdiscipline_key, -1) =
COALESCE (v_srtdiscipline_key, -1)
AND COALESCE (ins_discipline_key, -1) =
COALESCE (v_discipline_key, -1)
AND COALESCE (prs_kostensoort_key, -1) =
COALESCE (v_kostensoort_key, -1)
AND COALESCE (opslag, -1) =
COALESCE (v_opslag, -1)
AND COALESCE (ingangsdatum, v_null_date) =
COALESCE (v_begin, v_null_date)
AND einddatum IS NULL
AND v_eind IS NOT NULL
AND imp_opslag_verwijder IS NOT NULL;
UPDATE yask_imp_opslag
SET einddatum = v_eind
WHERE imp_opslag_key = v_imp_opslag_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
BEGIN
-- Nu gaan we een nieuw record toevoegen
v_errorhint :=
'Zoek de hoogste key in de importtabel';
SELECT COALESCE (MAX (imp_opslag_key), 0)
INTO v_imp_opslag_key
FROM yask_imp_opslag;
v_errorhint :=
'Voeg een regel toe aan de opslag tabel';
INSERT INTO yask_imp_opslag (
imp_opslag_key,
alg_locatie_key,
ins_srtdiscipline_key,
ins_discipline_key,
prs_kostensoort_key,
opslag,
ingangsdatum,
einddatum,
imp_opslag_aanmaak)
VALUES (v_imp_opslag_key + 1,
v_locatie_key,
v_srtdiscipline_key,
v_discipline_key,
v_kostensoort_key,
v_opslag,
v_begin,
v_eind,
SYSDATE);
END;
END;
END;
END IF; END IF;
COMMIT; COMMIT;
@@ -1752,7 +1674,7 @@ BEGIN
p_import_key, p_import_key,
'E', 'E',
'Geen geldige header aangetroffen', 'Geen geldige header aangetroffen',
'Bestand is geen geldig ruimtesoort importbestand.'); 'Bestand is geen geldig opslag importbestand.');
END IF; END IF;
EXCEPTION EXCEPTION
WHEN OTHERS WHEN OTHERS
@@ -2219,9 +2141,8 @@ BEGIN
yask.add_xml_row (v_bestand, '<FinEntryLine number="' || v_sub_count || '" subtype="T" type="N">'); yask.add_xml_row (v_bestand, '<FinEntryLine number="' || v_sub_count || '" subtype="T" type="N">');
yask.add_xml_element (v_bestand, 'Date', rec1.datum); yask.add_xml_element (v_bestand, 'Date', rec1.datum);
yask.add_xml_row (v_bestand, '<FinPeriod>'); yask.add_xml_element (v_bestand, 'FinYear', TO_CHAR(v_boekmaand, 'YYYY') );
yask.add_xml_element (v_bestand, 'DateStart', TO_CHAR(v_boekmaand, 'YYYY-MM-DD') ); yask.add_xml_element (v_bestand, 'FinPeriod', TO_CHAR(v_boekmaand, 'MM') );
yask.add_xml_row (v_bestand, '</FinPeriod>');
yask.add_xml_row (v_bestand, '<GLAccount code="' || xml.char_to_html(rec1.reknr) || '"/>'); yask.add_xml_row (v_bestand, '<GLAccount code="' || xml.char_to_html(rec1.reknr) || '"/>');
yask.add_xml_element (v_bestand, 'Description', rec1.oms_regel); yask.add_xml_element (v_bestand, 'Description', rec1.oms_regel);
yask.add_xml_row (v_bestand, '<Costcenter code="' || xml.char_to_html(rec1.kstplcode) || '"/>'); yask.add_xml_row (v_bestand, '<Costcenter code="' || xml.char_to_html(rec1.kstplcode) || '"/>');
@@ -2426,6 +2347,45 @@ END;
/ /
CREATE OR REPLACE VIEW yask_v_rap_levanto_fact_spec
AS
SELECT fin_factuur_nr,
f.fin_factuur_key,
f.fin_factuur_boekmaand,
m.mld_melding_externnr,
FLX.getflex ('MLD',
227,
m.mld_melding_key,
'M') td_cat,
FLX.getflex ('MLD',
228,
m.mld_melding_key,
'M') td_subcat,
FLX.getflex ('MLD',
229,
m.mld_melding_key,
'M') kostenplaats,
g.alg_gebouw_upper gebouwcode,
fr.fin_factuurregel_totaal,
fr.fin_factuurregel_btw,
b.fin_btwtabelwaarde_perc,
fs.fin_factuur_statuses_omschr
FROM fin_factuur f,
fin_factuurregel fr,
mld_opdr o,
mld_melding m,
fin_btwtabelwaarde b,
alg_v_allonroerendgoed aog,
alg_gebouw g,
fin_factuur_statuses fs
WHERE f.fin_factuur_key = fr.fin_factuur_key
AND f.mld_opdr_key = o.mld_opdr_key
AND o.mld_melding_key = m.mld_melding_key
AND fr.fin_btwtabelwaarde_key = b.fin_btwtabelwaarde_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
AND aog.alg_gebouw_key = g.alg_gebouw_key
AND f.fin_factuur_statuses_key = fs.fin_factuur_statuses_key;
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
-- Importfunctie om contactpersonen bij bedrijven toe te voegen aan FACILITOR -- Importfunctie om contactpersonen bij bedrijven toe te voegen aan FACILITOR
-- --
@@ -2626,6 +2586,7 @@ END yask_update_contactpersoon;
/ /
------ payload end ------ ------ payload end ------
SET DEFINE OFF SET DEFINE OFF