KFST#55698 -- Verbeteren proces rondom facturatie.

svn path=/Customer/trunk/; revision=40298
This commit is contained in:
Arthur Egberink
2018-12-19 16:41:56 +00:00
parent 9546b14c81
commit df8191ac54

View File

@@ -467,9 +467,6 @@ AS
v_oldcount NUMBER;
v_newcount NUMBER;
v_hoofdstuk_key NUMBER;
v_account_key NUMBER;
v_grootboek_key NUMBER;
v_kostensoort_key NUMBER;
v_kostensoortgrp_key NUMBER;
v_errormsg VARCHAR (1000);
@@ -494,75 +491,11 @@ BEGIN
-- How many active records are now present?
SELECT COUNT (*)
INTO v_oldcount
FROM fac_usrdata
WHERE fac_usrtab_key = 107; -- grootboekrecords
FROM prs_kostensoort; -- grootboekrecords
FOR rec IN c
LOOP
BEGIN
BEGIN
-- Bestaat het hoofstuk al
SELECT fac_usrdata_key
INTO v_hoofdstuk_key
FROM fac_usrdata
WHERE fac_usrtab_key = 181 -- hoofdstuk
AND fac_usrdata_code = rec.HoofdstukNummer;
-- Zo ja, dan is misschien de omschrijving aangepast.
UPDATE fac_usrdata
SET fac_usrdata_omschr = rec.HoofdstukNummer || ' ' || rec.HoofdstukOms,
fac_usrdata_vervaldatum = NULL
WHERE fac_usrdata_key = v_hoofdstuk_key;
EXCEPTION WHEN NO_DATA_FOUND
THEN
INSERT INTO fac_usrdata (fac_usrdata_code, fac_usrdata_omschr, fac_usrtab_key)
VALUES (rec.HoofdstukNummer, rec.HoofdstukNummer || ' ' || rec.HoofdstukOms, 181)
RETURNING fac_usrdata_key INTO v_hoofdstuk_key;
END;
BEGIN
-- Bestaat het account al
SELECT fac_usrdata_key
INTO v_account_key
FROM fac_usrdata
WHERE fac_usrtab_key = 182 -- account
AND fac_usrdata_code = rec.AccountNummer;
-- Zo ja, dan is misschien de omschrijving aangepast.
UPDATE fac_usrdata
SET fac_usrdata_omschr = rec.AccountNummer || ' ' || rec.AccountOms,
fac_usrdata_parentkey = v_hoofdstuk_key,
fac_usrdata_vervaldatum = NULL
WHERE fac_usrdata_key = v_account_key;
EXCEPTION WHEN NO_DATA_FOUND
THEN
INSERT INTO fac_usrdata (fac_usrdata_code, fac_usrdata_omschr, fac_usrtab_key, fac_usrdata_parentkey)
VALUES (rec.AccountNummer, rec.AccountNummer || ' ' || rec.AccountOms, 182, v_hoofdstuk_key)
RETURNING fac_usrdata_key INTO v_account_key;
END;
BEGIN
-- Bestaat het grootboek al
SELECT fac_usrdata_key
INTO v_grootboek_key
FROM fac_usrdata
WHERE fac_usrtab_key = 107 -- grootboek
AND fac_usrdata_code = rec.GrootboekNummer;
-- Zo ja, dan is misschien de omschrijving aangepast.
UPDATE fac_usrdata
SET fac_usrdata_omschr = rec.GrootboekNummer || ' ' || rec.GrootboekOms,
fac_usrdata_parentkey = v_account_key,
fac_usrdata_vervaldatum = NULL
WHERE fac_usrdata_key = v_GrootBoek_key;
EXCEPTION WHEN NO_DATA_FOUND
THEN
INSERT INTO fac_usrdata (fac_usrdata_code, fac_usrdata_omschr, fac_usrtab_key, fac_usrdata_parentkey)
VALUES (rec.GrootboekNummer, rec.GrootboekNummer || ' ' || rec.GrootboekOms, 107, v_account_key)
RETURNING fac_usrdata_key INTO v_grootboek_key;
END;
BEGIN
-- Bestaat het account al in de kostensoortgrp tabel
SELECT prs_kostensoortgrp_key
@@ -590,13 +523,14 @@ BEGIN
-- Zo ja, dan is misschien de omschrijving aangepast.
UPDATE prs_kostensoort
SET prs_kostensoort_oms = rec.GrootboekNummer || ' ' || rec.GrootboekOms,
SET prs_kostensoort_oms = rec.GrootboekNummer,
prs_kostensoort_opmerking = rec.GrootboekOms || ' H' || SUBSTR(rec.hoofdstuknummer, 1,1),
prs_kostensoortgrp_key = v_kostensoortgrp_key
WHERE prs_kostensoort_key = v_kostensoort_key;
EXCEPTION WHEN NO_DATA_FOUND
THEN
INSERT INTO prs_kostensoort (prs_kostensoort_refcode, prs_kostensoort_oms, prs_kostensoortgrp_key)
VALUES (rec.GrootboekNummer, rec.GrootboekNummer || ' ' || rec.GrootboekOms, v_kostensoortgrp_key)
INSERT INTO prs_kostensoort (prs_kostensoort_refcode, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_key)
VALUES (rec.GrootboekNummer, rec.GrootboekNummer, rec.GrootboekOms || ' H' || SUBSTR(rec.hoofdstuknummer, 1,1), v_kostensoortgrp_key)
RETURNING prs_kostensoort_key INTO v_kostensoort_key;
END;
@@ -624,39 +558,13 @@ BEGIN
END;
END LOOP;
-- Verwijder vervallen grootboekrekeningen
UPDATE fac_usrdata ud
SET fac_usrdata_vervaldatum = SYSDATE
WHERE fac_usrtab_key = 107
AND NOT EXISTS (SELECT GrootboekNummer
FROM kfst_imp_kostenstructuur k
WHERE k.GrootboekNummer = ud.fac_usrdata_code);
-- Verwijder vervallen accounts
UPDATE fac_usrdata ud
SET fac_usrdata_vervaldatum = SYSDATE
WHERE fac_usrtab_key = 182
AND NOT EXISTS (SELECT AccountNummer
FROM kfst_imp_kostenstructuur k
WHERE k.AccountNummer = ud.fac_usrdata_code);
-- Verwijder vervallen hoofdstukken
UPDATE fac_usrdata ud
SET fac_usrdata_vervaldatum = SYSDATE
WHERE fac_usrtab_key = 181
AND NOT EXISTS (SELECT HoofdstukNummer
FROM kfst_imp_kostenstructuur k
WHERE k.HoofdstukNummer = ud.fac_usrdata_code);
SELECT COUNT (*)
INTO v_newcount
FROM fac_usrdata
WHERE fac_usrtab_key = 107; -- grootboekrecords
FROM prs_kostensoort; -- grootboekrecords
fac.imp_writelog (p_import_key,
'S',
'Aantal ruimte soorten vooraf: ' || TO_CHAR (v_oldcount) || ' nu: ' || TO_CHAR (v_newcount),
'Aantal kostensoorten vooraf: ' || TO_CHAR (v_oldcount) || ' nu: ' || TO_CHAR (v_newcount),
''
);
@@ -806,19 +714,16 @@ AS
lk.prs_kostenplaats_nr
lev_kpn,
(SELECT alg_gebouw_code
FROM alg_v_allonrgoed_gegevens g, mld_melding m
WHERE o.mld_melding_key = m.mld_melding_key
AND m.mld_alg_onroerendgoed_keys =
g.alg_onroerendgoed_keys),
FROM alg_gebouw g
WHERE g.alg_gebouw_key = COALESCE(og.alg_gebouw_key, cp.alg_gebouw_key)),
(SELECT alg_gebouw_code
FROM alg_v_allonrgoed_gegevens g, mld_melding m
WHERE o.mld_melding_key = m.mld_melding_key
AND m.mld_alg_onroerendgoed_keys =
g.alg_onroerendgoed_keys)
FROM alg_gebouw g
WHERE g.alg_gebouw_key = COALESCE(og.alg_gebouw_key, cp.alg_gebouw_key))
FROM fin_factuur f,
fin_factuurregel fr,
fin_btwtabelwaarde btw,
mld_opdr o,
mld_melding m,
mld_typeopdr ot,
cnt_contract c,
bes_bestelopdr bo,
@@ -827,19 +732,27 @@ AS
prs_bedrijf b_b,
prs_kostensoort k,
prs_kostensoortgrp kg,
prs_kostenplaats lk
prs_kostenplaats lk,
alg_v_allonrgoed_gegevens og,
(SELECT cnt_contract_key, MIN(cnt_alg_plaats_key) alg_gebouw_key
FROM cnt_contract_plaats
WHERE cnt_alg_plaats_code = 'G'
GROUP BY cnt_contract_key) cp
WHERE f.fin_factuur_key = fr.fin_factuur_key
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
AND f.mld_opdr_key = o.mld_opdr_key(+)
AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+)
AND o.mld_melding_key = m.mld_melding_key(+)
AND f.cnt_contract_key = c.cnt_contract_key(+)
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
AND bo.prs_bedrijf_key = b_b.prs_bedrijf_key(+)
AND o.mld_uitvoerende_keys = b_o.prs_bedrijf_key(+)
AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+)
AND f.prs_kostensoort_key = k.prs_kostensoort_key
AND k.prs_kostensoort_key = COALESCE(fr.prs_kostensoort_key, f.prs_kostensoort_key)
AND k.prs_kostenplaats_key = lk.prs_kostenplaats_key(+)
AND k.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)
AND c.cnt_contract_key = cp.cnt_contract_key(+)
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
AND f.fin_factuur_verwijder IS NULL;