TWYN#53134 conversie oude data
svn path=/Customer/trunk/; revision=37998
This commit is contained in:
159
TWYN/twyn.sql
159
TWYN/twyn.sql
@@ -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(*)
|
||||
|
||||
Reference in New Issue
Block a user