KFST#55698 -- Verbeteren proces rondom facturatie.
svn path=/Customer/trunk/; revision=40298
This commit is contained in:
131
KFST/kfst.sql
131
KFST/kfst.sql
@@ -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;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user