TWYN#53134 conversie oude data

svn path=/Customer/trunk/; revision=37998
This commit is contained in:
Erik Groener
2018-05-30 11:21:42 +00:00
parent f534294639
commit 8233d0bf6d

View File

@@ -387,6 +387,18 @@ AS
);
END IF;
p_onderdeel_nr := v_onderdeel_nr;
--
IF (s_btw_code IS NOT NULL) THEN
UPDATE twyn_imp_kostensoort
SET bgt_btw_code = s_btw_code
, bgt_btw_waarde = fac.safe_To_Integer(s_btw_waarde)
WHERE bgt_btw_code IS NULL
AND bgt_project_discipline = s_project_nummer
AND bgt_project_code = s_subproject_code
AND bgt_kostenrubriek_code = s_rubriek_nr
AND prs_kostensoortgrp_altcode = s_groep_nr
AND prs_kostensoort_oms = v_onderdeel_nr;
END IF;
END IF;
END; --imp_onderdeel
@@ -457,7 +469,7 @@ AS
fac.imp_getfield_nr(v_searchline, c_delim, 34, s_rubriek_nr);
fac.imp_getfield_nr(v_searchline, c_delim, 36, s_groep_nr);
fac.imp_getfield_nr(v_searchline, c_delim, 38, s_onderdeel_nr);
IF (v_budget_type IN ('N','R','B')) THEN
IF (v_budget_type IN ('N','R','P','B')) THEN
INSERT INTO twyn_imp_budget
( bgt_nr
, bgt_oms
@@ -590,7 +602,7 @@ AS
p_contract_volgnr := fac.safe_To_Integer(v_contract_volgnr);
IF ( fac.safe_To_Integer(v_is_contract) = 1
AND p_contract_nr > 0
AND fac.safe_To_Integer(s_grootboek_nr) IS NULL
AND fac.safe_To_Integer(s_grootboek_nr) > 0
AND fac.safe_To_Integer(s_factuur_nr) = 0
) THEN
fac.imp_getfield_nr(v_searchline, c_delim, 3, s_project_nummer);
@@ -862,6 +874,7 @@ AS
, bedr_mut_excl
, bedr_init_btw
, bedr_mut_btw
, type
FROM twyn_imp_budget
WHERE type IN ('N','R');
@@ -873,6 +886,7 @@ AS
v_datum twyn_imp_budget.bgt_datum%TYPE;
v_init_excl twyn_imp_budget.bedr_init_excl%TYPE;
v_mut_excl twyn_imp_budget.bedr_mut_excl%TYPE;
v_type twyn_imp_budget.type%TYPE;
BEGIN
fac.imp_writelog (p_import_key, 'I', 'Nabewerken budget', NULL);
v_errormsg := 'Fout bij nabewerken budget ';
@@ -903,6 +917,20 @@ AS
)
WHERE type IN ('N','R');
--
-- verrekenen btw van reserve en prijsstijging die samen zijn genomen.
UPDATE twyn_imp_budget
SET bedr_init_btw = (bedr_init_excl * (SELECT SUM(COALESCE(b.bedr_init_btw, 0)) / SUM(COALESCE(b.bedr_init_excl, 0))
FROM twyn_imp_budget b
WHERE b.type in ('R','P')
AND b.bedr_init_excl > 0
)
)
WHERE type in ('R','P')
AND bedr_init_excl > 0;
--
-- De P-regels mogen er nu uit.
DELETE FROM twyn_imp_budget WHERE type = 'P';
--
DELETE FROM twyn_imp_budget WHERE type = 'B';
UPDATE twyn_imp_budget SET key = ROWNUM;
COMMIT;
@@ -1019,6 +1047,20 @@ AS
g_aanduiding VARCHAR2 (200);
g_perslid_key NUMBER (10);
TYPE budget_rec IS RECORD
(
bgt_discipline twyn_imp_budget.bgt_discipline%TYPE,
bgt_project twyn_imp_budget.bgt_project%TYPE,
bgt_kostenrubriek twyn_imp_budget.bgt_kostenrubriek%TYPE,
bgt_kostensoortgrp twyn_imp_budget.bgt_kostensoortgrp%TYPE,
bgt_kostensoort twyn_imp_budget.bgt_kostensoort%TYPE,
type VARCHAR2(1),
bgt_datum twyn_imp_budget.bgt_datum%TYPE,
bedr_init_excl twyn_imp_budget.bedr_init_excl%TYPE,
bedr_init_btw twyn_imp_budget.bedr_init_btw%TYPE,
key NUMBER(10)
);
TYPE kosten_keys IS RECORD
(
bgt_discipline_key bgt_disc_params.bgt_ins_discipline_key%TYPE,
@@ -1027,7 +1069,8 @@ AS
prs_kostensoortgrp_key prs_kostensoortgrp.prs_kostensoortgrp_key%TYPE,
prs_kostensoort_key prs_kostensoort.prs_kostensoort_key%TYPE,
is_reserve NUMBER(1),
status NUMBER(1)
status NUMBER(1),
type VARCHAR2(1)
);
FUNCTION get_kosten_keys( p_import_key IN NUMBER
@@ -1037,6 +1080,7 @@ AS
, p_rubriek IN VARCHAR2
, p_groep IN VARCHAR2
, p_soort IN VARCHAR2
, p_type IN VARCHAR2 DEFAULT NULL
) RETURN kosten_keys
IS
a_rubriek_code bgt_kostenrubriek.bgt_kostenrubriek_code%TYPE;
@@ -1050,6 +1094,7 @@ AS
||'.'|| NVL(p_rubriek, 'k')
||'.'|| NVL(p_groep, 'k')
||'.'|| NVL(p_soort, 'k')
||'.'|| NVL(p_type, 'k')
||']';
BEGIN
IF (p_rubriek IS NULL) THEN
@@ -1058,11 +1103,13 @@ AS
, r.bgt_kostenrubriek_key
, NULL
, NULL
, p_type
INTO a_kosten_keys.bgt_discipline_key
, a_kosten_keys.bgt_project_key
, a_kosten_keys.bgt_kostenrubriek_key
, a_kosten_keys.prs_kostensoortgrp_key
, a_kosten_keys.prs_kostensoort_key
, a_kosten_keys.type
FROM bgt_disc_params d
, bgt_project p
, bgt_kostenrubriek r
@@ -1388,6 +1435,7 @@ AS
g_errormsg := 'Fout bij toevoegen rubriek ' || l_rec.bgt_kostenrubriek_code;
BEGIN
IF (l_count = 0) THEN
-- Discipline/project bevat geen enkele rubriek. Maak eerst rubriek Reserve aan.
BEGIN
SELECT bgt_kostenrubriek_key
INTO l_rubriek_key
@@ -1723,6 +1771,7 @@ AS
, t.bedr_init_excl
, t.bedr_init_btw
, t.bgt_datum
, t.type
, min(x.bedrag) bedrag_min
, max(x.bedrag) bedrag_max
, min(t.bedr_mut_btw) bedrag_btw
@@ -1750,6 +1799,7 @@ AS
, t.bedr_init_excl
, t.bedr_init_btw
, t.bgt_datum
, t.type
ORDER BY t.bgt_nr;
CURSOR c_reserve
@@ -1770,6 +1820,32 @@ AS
FROM twyn_imp_budget
);
CURSOR c_contract
IS
SELECT DISTINCT
bgt_discipline_code bgt_discipline
, bgt_project_code bgt_project
, bgt_kostenrubriek_code bgt_kostenrubriek
, prs_kostensoortgrp_code bgt_kostensoortgrp
, prs_kostensoort_code bgt_kostensoort
, (SELECT MIN(bgt_datum) FROM twyn_imp_budget) bgt_datum
, 0 bedr_init_excl
, 0 bedr_init_btw
, 0 is_reserve
, 'C' type
, NULL key
FROM twyn_imp_contract c
WHERE NOT EXISTS
(SELECT 1
FROM twyn_imp_budget b
WHERE b.bgt_discipline = c.bgt_discipline_code
AND b.bgt_project = c.bgt_project_code
AND b.bgt_kostenrubriek = c.bgt_kostenrubriek_code
AND b.bgt_kostensoortgrp = c.prs_kostensoortgrp_code
AND b.bgt_kostensoort = c.prs_kostensoort_code
)
ORDER BY 1,2,3,4,5;
l_disc_key bgt_disc_params.bgt_ins_discipline_key%TYPE;
l_project_key bgt_project.bgt_project_key%TYPE;
l_rubriek_key bgt_kostenrubriek.bgt_kostenrubriek_key%TYPE;
@@ -1790,10 +1866,46 @@ AS
l_aantal NUMBER(3);
l_mut_volgnr VARCHAR2(10);
l_mut_code VARCHAR2(1);
t_rec BUDGET_REC;
FUNCTION get_budgetrec_1( b_rec IN c_budget%ROWTYPE
, c_rec IN c_contract%ROWTYPE
) RETURN budget_rec
IS
a_budget_rec BUDGET_REC;
BEGIN
IF (b_rec.bgt_discipline IS NOT NULL) THEN
a_budget_rec.bgt_discipline := b_rec.bgt_discipline;
a_budget_rec.bgt_project := b_rec.bgt_project;
a_budget_rec.bgt_kostenrubriek := b_rec.bgt_kostenrubriek;
a_budget_rec.bgt_kostensoortgrp := b_rec.bgt_kostensoortgrp;
a_budget_rec.bgt_kostensoort := b_rec.bgt_kostensoort;
a_budget_rec.bgt_datum := b_rec.bgt_datum;
a_budget_rec.type := b_rec.type;
a_budget_rec.bedr_init_excl := b_rec.bedr_init_excl;
a_budget_rec.bedr_init_btw := b_rec.bedr_init_btw;
a_budget_rec.key := b_rec.key;
END IF;
--
IF (c_rec.bgt_discipline IS NOT NULL) THEN
a_budget_rec.bgt_discipline := c_rec.bgt_discipline;
a_budget_rec.bgt_project := c_rec.bgt_project;
a_budget_rec.bgt_kostenrubriek := c_rec.bgt_kostenrubriek;
a_budget_rec.bgt_kostensoortgrp := c_rec.bgt_kostensoortgrp;
a_budget_rec.bgt_kostensoort := c_rec.bgt_kostensoort;
a_budget_rec.bgt_datum := c_rec.bgt_datum;
a_budget_rec.type := c_rec.type;
a_budget_rec.bedr_init_excl := c_rec.bedr_init_excl;
a_budget_rec.bedr_init_btw := c_rec.bedr_init_btw;
a_budget_rec.key := c_rec.key;
END IF;
--
RETURN a_budget_rec;
END; -- get_budgetrec_1
PROCEDURE add_budget( p_import_key IN NUMBER
, p_mode IN VARCHAR2
, p_rec IN c_budget%ROWTYPE)
, p_rec IN BUDGET_REC)
AS
a_budget_key bgt_budget.bgt_budget_key%TYPE;
a_kosten_keys KOSTEN_KEYS;
@@ -1804,7 +1916,8 @@ AS
, p_rec.bgt_project
, p_rec.bgt_kostenrubriek
, p_rec.bgt_kostensoortgrp
, p_rec.bgt_kostensoort);
, p_rec.bgt_kostensoort
, p_rec.type);
--
g_errormsg := 'Fout bij toevoegen ' || p_mode ||' '
||'[('|| NVL(TO_CHAR(a_kosten_keys.bgt_discipline_key), 'x') ||'='|| NVL(p_rec.bgt_discipline,'-') ||')'
@@ -1812,6 +1925,7 @@ AS
||'.('|| NVL(TO_CHAR(a_kosten_keys.bgt_kostenrubriek_key), 'x') ||'='|| NVL(p_rec.bgt_kostenrubriek,'-') ||')'
||'.('|| NVL(TO_CHAR(a_kosten_keys.prs_kostensoortgrp_key), 'x') ||'='|| NVL(p_rec.bgt_kostensoortgrp,'-') ||')'
||'.('|| NVL(TO_CHAR(a_kosten_keys.prs_kostensoort_key), 'x') ||'='|| NVL(p_rec.bgt_kostensoort,'-') ||')'
||'.('|| NVL(a_kosten_keys.type, 'x') ||'='|| NVL(p_rec.type,'-') ||')'
||']';
BEGIN
SELECT bgt_budget_key
@@ -1819,9 +1933,9 @@ AS
FROM bgt_budget
WHERE ins_discipline_key = a_kosten_keys.bgt_discipline_key
AND bgt_project_key = a_kosten_keys.bgt_project_key
AND (bgt_kostenrubriek_key = NVL(a_kosten_keys.bgt_kostenrubriek_key,-1) OR (NVL(a_kosten_keys.bgt_kostenrubriek_key,-1) < 0 AND bgt_kostenrubriek_key IS NULL))
AND (bgt_kostenrubriek_key = NVL(a_kosten_keys.bgt_kostenrubriek_key,-1) OR (NVL(a_kosten_keys.bgt_kostenrubriek_key,-1) < 0 AND bgt_kostenrubriek_key IS NULL))
AND (prs_kostensoortgrp_key = NVL(a_kosten_keys.prs_kostensoortgrp_key,-1) OR (NVL(a_kosten_keys.prs_kostensoortgrp_key,-1) < 0 AND prs_kostensoortgrp_key IS NULL))
AND (prs_kostensoort_key = NVL(a_kosten_keys.prs_kostensoort_key,-1) OR (NVL(a_kosten_keys.prs_kostensoort_key,-1) < 0 AND prs_kostensoort_key IS NULL));
AND (prs_kostensoort_key = NVL(a_kosten_keys.prs_kostensoort_key,-1) OR (NVL(a_kosten_keys.prs_kostensoort_key,-1) < 0 AND prs_kostensoort_key IS NULL));
EXCEPTION
WHEN TOO_MANY_ROWS THEN
fac.imp_writelog ( p_import_key, 'W'
@@ -1834,11 +1948,13 @@ AS
);
WHEN NO_DATA_FOUND THEN
l_budget_gegevens := p_rec.bgt_discipline
||':'|| p_rec.bgt_project
||':'|| p_rec.bgt_kostenrubriek
||':'|| p_rec.bgt_kostensoortgrp
||':'|| p_rec.bgt_kostensoort
||' E='|| NVL(p_rec.bedr_init_excl, 0);
||':'|| p_rec.bgt_project
||':'|| p_rec.bgt_kostenrubriek
||':'|| p_rec.bgt_kostensoortgrp
||':'|| p_rec.bgt_kostensoort
||':'|| p_rec.type
||' R='|| a_kosten_keys.is_reserve
||' E='|| NVL(p_rec.bedr_init_excl, 0);
g_errorhint := 'Toevoegen budget';
INSERT INTO bgt_budget
( ins_discipline_key
@@ -1886,7 +2002,8 @@ AS
FOR l_rec IN c_budget(0)
LOOP
-- Keys ophalen
add_budget(p_import_key, 'budget', l_rec);
t_rec := get_budgetrec_1(l_rec, NULL);
add_budget(p_import_key, 'budget', t_rec);
l_count := l_count + 1;
END LOOP;
fac.imp_writelog ( p_import_key, 'S', 'Budget: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL);
@@ -1949,16 +2066,27 @@ AS
END LOOP;
fac.imp_writelog ( p_import_key, 'S', 'Rubriekbudget: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL);
--
-- Overige budgetposten: niet geinitialiseerd, maar wel gebruikt in contracten.
l_count := 0;
FOR l_rec in c_contract
LOOP
t_rec := get_budgetrec_1(NULL, l_rec);
add_budget(p_import_key, 'budgetpost contracten', t_rec);
l_count := l_count + 1;
END LOOP;
fac.imp_writelog ( p_import_key, 'S', 'Budgetposten: aantal regels toegevoegd tgv contracten: ' || TO_CHAR(l_count), NULL);
--
-- Overige budgetposten: niet geinitialiseerd, maar wel gebruikt in mutaties.
l_count := 0;
FOR l_rec in c_budget(1)
LOOP
IF (l_rec.bgt_budget_key IS NULL) THEN
add_budget(p_import_key, 'budgetpost', l_rec);
t_rec := get_budgetrec_1(l_rec, NULL);
add_budget(p_import_key, 'budgetpost mutaties', t_rec);
l_count := l_count + 1;
END IF;
END LOOP;
fac.imp_writelog ( p_import_key, 'S', 'Budgetposten: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL);
fac.imp_writelog ( p_import_key, 'S', 'Budgetposten: aantal regels toegevoegd tgv mutaties: ' || TO_CHAR(l_count), NULL);
--
-- De mutaties
l_count := 0;
@@ -1969,6 +2097,7 @@ AS
|| '.'|| NVL(l_rec.bgt_kostenrubriek, 'x')
|| '.'|| NVL(l_rec.bgt_kostensoortgrp, 'x')
|| '.'|| NVL(l_rec.bgt_kostensoort, 'x')
|| '.'|| NVL(l_rec.type, 'x')
|| ']';
BEGIN
SELECT count(*)