TWYN#53134 conversie oude data
svn path=/Customer/trunk/; revision=37893
This commit is contained in:
619
TWYN/twyn_def_prj.sql
Normal file
619
TWYN/twyn_def_prj.sql
Normal file
@@ -0,0 +1,619 @@
|
|||||||
|
--
|
||||||
|
-- $Id$
|
||||||
|
--
|
||||||
|
-- Script containing customer specific sql statements for creating default projects in the FACILITOR database
|
||||||
|
|
||||||
|
DEFINE thisfile = 'TWYN_DEF_PRJ.SQL'
|
||||||
|
DEFINE dbuser = '^TWYN'
|
||||||
|
DEFINE custid = 'TWYN'
|
||||||
|
|
||||||
|
SET ECHO ON
|
||||||
|
SET DEFINE ON
|
||||||
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||||||
|
WHENEVER SQLERROR EXIT;
|
||||||
|
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||||||
|
WHENEVER SQLERROR CONTINUE;
|
||||||
|
SPOOL &fcltlogfile
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
------ payload begin ------
|
||||||
|
|
||||||
|
CREATE OR REPLACE PROCEDURE twyn_import_projectcsv (p_import_key IN NUMBER)
|
||||||
|
AS
|
||||||
|
c_delim VARCHAR2 (1) := ';';
|
||||||
|
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line
|
||||||
|
v_searchline fac_imp_file.fac_imp_file_line%TYPE; -- Input line voor zoeken op kolomnummer
|
||||||
|
v_errormsg VARCHAR2 (1000);
|
||||||
|
v_errorhint VARCHAR2 (1000);
|
||||||
|
oracle_err_num NUMBER;
|
||||||
|
oracle_err_mes VARCHAR2 (200);
|
||||||
|
v_aanduiding VARCHAR2 (200);
|
||||||
|
header_is_valid NUMBER (1) := 0;
|
||||||
|
v_ongeldig NUMBER (1) := 0;
|
||||||
|
v_imp_count NUMBER (5) := 0;
|
||||||
|
|
||||||
|
-- Importvelden staan in de procedures.
|
||||||
|
-- Overige velden:
|
||||||
|
-- Keys
|
||||||
|
k_project_code VARCHAR2(20) := NULL;
|
||||||
|
k_subproject_code VARCHAR2(20) := NULL;
|
||||||
|
k_rubriek_code VARCHAR2(20) := NULL;
|
||||||
|
k_groep_code VARCHAR2(60) := NULL;
|
||||||
|
k_soort_code VARCHAR2(5) := NULL;
|
||||||
|
|
||||||
|
CURSOR c1
|
||||||
|
IS
|
||||||
|
SELECT fac_imp_file_line
|
||||||
|
, LENGTH (TRIM (REPLACE (fac_imp_file_line, c_delim, ''))) regellengte
|
||||||
|
FROM FAC_IMP_FILE
|
||||||
|
WHERE fac_import_key = p_import_key
|
||||||
|
ORDER BY fac_imp_file_index;
|
||||||
|
|
||||||
|
FUNCTION isNumeric(p_number IN VARCHAR2) RETURN NUMBER IS
|
||||||
|
v_number NUMBER := 0;
|
||||||
|
BEGIN
|
||||||
|
IF (LENGTH(TRIM(TRANSLATE(p_number, ' +-.0123456789', ' '))) IS NULL) THEN
|
||||||
|
v_number := 1;
|
||||||
|
END IF;
|
||||||
|
RETURN v_number;
|
||||||
|
END; --isNumeric
|
||||||
|
|
||||||
|
PROCEDURE imp_header( p_line IN OUT VARCHAR2
|
||||||
|
, p_valid OUT NUMBER)
|
||||||
|
IS
|
||||||
|
v_rubriek_code VARCHAR2 (256); --001 RUBRIEK_CODE
|
||||||
|
v_rubriek_omschr VARCHAR2 (256); --002 RUBRIEK_OMSCHRIJVING
|
||||||
|
v_groep_code VARCHAR2 (256); --003 GROEP_CODE
|
||||||
|
v_groep_omschr VARCHAR2 (256); --004 GROEP_OMSCHRIJVING
|
||||||
|
v_soort_code VARCHAR2 (256); --005 SOORT_CODE
|
||||||
|
v_soort_omschr VARCHAR2 (256); --006 SOORT_OMSCHRIJVING
|
||||||
|
v_soort_btw_perc VARCHAR2 (256); --007 BTW_PERCENTAGE
|
||||||
|
v_soort_btw_oms VARCHAR2 (256); --008 BTW_OMSCHRIJVING
|
||||||
|
s_valid_header NUMBER(1);
|
||||||
|
BEGIN
|
||||||
|
s_valid_header := 0;
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_rubriek_code);
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_rubriek_omschr);
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_groep_code);
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_groep_omschr);
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_soort_code);
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_soort_omschr);
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_soort_btw_perc);
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_soort_btw_oms);
|
||||||
|
--
|
||||||
|
v_rubriek_code := TRIM(UPPER(v_rubriek_code));
|
||||||
|
v_rubriek_omschr := TRIM(UPPER(v_rubriek_omschr));
|
||||||
|
v_groep_code := TRIM(UPPER(v_groep_code));
|
||||||
|
v_groep_omschr := TRIM(UPPER(v_groep_omschr));
|
||||||
|
v_soort_code := TRIM(UPPER(v_soort_code));
|
||||||
|
v_soort_omschr := TRIM(UPPER(v_soort_omschr));
|
||||||
|
v_soort_btw_perc := TRIM(UPPER(v_soort_btw_perc));
|
||||||
|
v_soort_btw_oms := TRIM(UPPER(v_soort_btw_oms));
|
||||||
|
--
|
||||||
|
IF ( v_rubriek_code = 'RUBRIEK_CODE'
|
||||||
|
AND v_rubriek_omschr = 'RUBRIEK_OMSCHRIJVING'
|
||||||
|
AND v_groep_code = 'GROEP_CODE'
|
||||||
|
AND v_groep_omschr = 'GROEP_OMSCHRIJVING'
|
||||||
|
AND v_soort_code = 'SOORT_CODE'
|
||||||
|
AND v_soort_omschr = 'SOORT_OMSCHRIJVING'
|
||||||
|
AND v_soort_btw_perc = 'BTW_PERCENTAGE'
|
||||||
|
AND v_soort_btw_oms = 'BTW_OMSCHRIJVING'
|
||||||
|
)
|
||||||
|
THEN
|
||||||
|
s_valid_header := 1;
|
||||||
|
END IF;
|
||||||
|
p_valid := s_valid_header;
|
||||||
|
END; --imp_header
|
||||||
|
|
||||||
|
PROCEDURE imp_rubriek( p_line IN OUT VARCHAR2
|
||||||
|
, p_rubriek_code OUT VARCHAR2)
|
||||||
|
IS
|
||||||
|
v_rubriek_code VARCHAR2 (256); --001 RUBRIEK_CODE
|
||||||
|
v_rubriek_omschr VARCHAR2 (256); --002 RUBRIEK_OMSCHRIJVING
|
||||||
|
s_project_nummer VARCHAR2 (256); --:projectnummer (discipline)
|
||||||
|
s_subproject_code VARCHAR2 (256); --:deelprojectnummer (project)
|
||||||
|
v_count_rubriek NUMBER (3);
|
||||||
|
BEGIN
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_rubriek_code);
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_rubriek_omschr);
|
||||||
|
--
|
||||||
|
p_rubriek_code := NULL;
|
||||||
|
v_rubriek_code := TRIM(v_rubriek_code);
|
||||||
|
IF (v_rubriek_code IS NOT NULL) THEN
|
||||||
|
s_project_nummer := '0';
|
||||||
|
s_subproject_code := '0';
|
||||||
|
--
|
||||||
|
SELECT COUNT(*)
|
||||||
|
INTO v_count_rubriek
|
||||||
|
FROM twyn_imp_kostenrubriek
|
||||||
|
WHERE bgt_project_code = s_subproject_code
|
||||||
|
AND bgt_kostenrubriek_code = v_rubriek_code;
|
||||||
|
--
|
||||||
|
IF (v_count_rubriek = 0) THEN
|
||||||
|
INSERT INTO twyn_imp_kostenrubriek
|
||||||
|
( bgt_project_discipline
|
||||||
|
, bgt_project_code
|
||||||
|
, bgt_kostenrubriek_code
|
||||||
|
, bgt_kostenrubriek_oms
|
||||||
|
)
|
||||||
|
VALUES
|
||||||
|
( s_project_nummer
|
||||||
|
, s_subproject_code
|
||||||
|
, v_rubriek_code
|
||||||
|
, TRIM(v_rubriek_omschr)
|
||||||
|
);
|
||||||
|
p_rubriek_code := v_rubriek_code;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
END; --imp_rubriek
|
||||||
|
|
||||||
|
PROCEDURE imp_groep( p_line IN OUT VARCHAR2
|
||||||
|
, p_groep_code OUT VARCHAR2)
|
||||||
|
IS
|
||||||
|
v_groep_code VARCHAR2 (256); --003 GROEP_CODE
|
||||||
|
v_groep_omschr VARCHAR2 (256); --004 GROEP_OMSCHRIJVING
|
||||||
|
s_project_nummer VARCHAR2 (256); --:projectnummer (discipline)
|
||||||
|
s_subproject_code VARCHAR2 (256); --:deelprojectnummer (project)
|
||||||
|
s_rubriek_code VARCHAR2 (256); --001 RUBRIEK_CODE
|
||||||
|
v_count_groep NUMBER (3);
|
||||||
|
BEGIN
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_groep_code);
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_groep_omschr);
|
||||||
|
--
|
||||||
|
p_groep_code := NULL;
|
||||||
|
v_groep_code := TRIM(v_groep_code);
|
||||||
|
IF (v_groep_code IS NOT NULL) THEN
|
||||||
|
s_project_nummer := '0';
|
||||||
|
s_subproject_code := '0';
|
||||||
|
fac.imp_getfield_nr(v_searchline, c_delim, 1, s_rubriek_code);
|
||||||
|
--
|
||||||
|
SELECT COUNT(*)
|
||||||
|
INTO v_count_groep
|
||||||
|
FROM twyn_imp_kostensoortgrp
|
||||||
|
WHERE bgt_project_code = s_subproject_code
|
||||||
|
AND bgt_kostenrubriek_code = TRIM(s_rubriek_code)
|
||||||
|
AND prs_kostensoortgrp_altcode = v_groep_code;
|
||||||
|
--
|
||||||
|
IF (v_count_groep = 0) THEN
|
||||||
|
INSERT INTO twyn_imp_kostensoortgrp
|
||||||
|
( bgt_project_discipline
|
||||||
|
, bgt_project_code
|
||||||
|
, bgt_kostenrubriek_code
|
||||||
|
, prs_kostensoortgrp_altcode
|
||||||
|
, prs_kostensoortgrp_oms
|
||||||
|
)
|
||||||
|
VALUES
|
||||||
|
( s_project_nummer
|
||||||
|
, s_subproject_code
|
||||||
|
, TRIM(s_rubriek_code)
|
||||||
|
, v_groep_code
|
||||||
|
, TRIM(v_groep_omschr)
|
||||||
|
);
|
||||||
|
p_groep_code := v_groep_code;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
END; -- imp_groep
|
||||||
|
|
||||||
|
PROCEDURE imp_soort( p_line IN OUT VARCHAR2
|
||||||
|
, p_soort_code OUT VARCHAR2)
|
||||||
|
IS
|
||||||
|
v_soort_code VARCHAR2 (256); --005 SOORT_CODE
|
||||||
|
v_soort_omschr VARCHAR2 (256); --006 SOORT_OMSCHRIJVING
|
||||||
|
v_soort_perc VARCHAR2 (256); --007 BTW_PERCENTAGE
|
||||||
|
v_soort_perc_oms VARCHAR2 (256); --008 BTW_OMSCHRIJVING
|
||||||
|
s_project_nummer VARCHAR2 (256); --:projectnummer (discipline)
|
||||||
|
s_subproject_code VARCHAR2 (256); --:code subproject (project)
|
||||||
|
s_rubriek_code VARCHAR2 (256); --001 RUBRIEK_CODE
|
||||||
|
s_groep_code VARCHAR2 (256); --003 GROEP_CODE
|
||||||
|
v_count_soort NUMBER (3);
|
||||||
|
BEGIN
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_soort_code);
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_soort_omschr);
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_soort_perc);
|
||||||
|
fac.imp_getfield (p_line, c_delim, v_soort_perc_oms);
|
||||||
|
--
|
||||||
|
p_soort_code := NULL;
|
||||||
|
v_soort_code := TRIM(v_soort_code);
|
||||||
|
IF (v_soort_code IS NOT NULL) THEN
|
||||||
|
s_project_nummer := '0';
|
||||||
|
s_subproject_code := '0';
|
||||||
|
fac.imp_getfield_nr(v_searchline, c_delim, 1, s_rubriek_code);
|
||||||
|
fac.imp_getfield_nr(v_searchline, c_delim, 3, s_groep_code);
|
||||||
|
--
|
||||||
|
SELECT COUNT(*)
|
||||||
|
INTO v_count_soort
|
||||||
|
FROM twyn_imp_kostensoort
|
||||||
|
WHERE bgt_project_code = s_subproject_code
|
||||||
|
AND bgt_kostenrubriek_code = TRIM(s_rubriek_code)
|
||||||
|
AND prs_kostensoortgrp_altcode = TRIM(s_groep_code)
|
||||||
|
AND prs_kostensoort_oms = v_soort_code;
|
||||||
|
--
|
||||||
|
IF (v_count_soort = 0) THEN
|
||||||
|
INSERT INTO twyn_imp_kostensoort
|
||||||
|
( bgt_project_discipline
|
||||||
|
, bgt_project_code
|
||||||
|
, bgt_kostenrubriek_code
|
||||||
|
, prs_kostensoortgrp_altcode
|
||||||
|
, prs_kostensoort_oms
|
||||||
|
, prs_kostensoort_opmerking
|
||||||
|
, bgt_btw_code
|
||||||
|
, bgt_btw_waarde
|
||||||
|
)
|
||||||
|
VALUES
|
||||||
|
( s_project_nummer
|
||||||
|
, s_subproject_code
|
||||||
|
, TRIM(s_rubriek_code)
|
||||||
|
, TRIM(s_groep_code)
|
||||||
|
, v_soort_code
|
||||||
|
, TRIM(v_soort_omschr)
|
||||||
|
, TRIM(v_soort_perc_oms)
|
||||||
|
, fac.safe_To_Integer(v_soort_perc)
|
||||||
|
);
|
||||||
|
END IF;
|
||||||
|
p_soort_code := v_soort_code;
|
||||||
|
END IF;
|
||||||
|
END; --imp_soort
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
-- Eerst opruiming
|
||||||
|
DELETE FROM twyn_imp_kostenrubriek;
|
||||||
|
DELETE FROM twyn_imp_kostensoortgrp;
|
||||||
|
DELETE FROM twyn_imp_kostensoort;
|
||||||
|
--
|
||||||
|
FOR rec IN c1
|
||||||
|
LOOP
|
||||||
|
BEGIN
|
||||||
|
v_aanduiding := NULL;
|
||||||
|
v_errorhint := 'Fout inlezen importregel';
|
||||||
|
v_newline := rec.fac_imp_file_line;
|
||||||
|
v_ongeldig := 0;
|
||||||
|
v_imp_count := v_imp_count + 1;
|
||||||
|
|
||||||
|
IF (header_is_valid = 0)
|
||||||
|
THEN
|
||||||
|
-- Controleren of het een geldige header is.
|
||||||
|
-- Ge hiermee door totdat er een geldige header gevonden is, of het einde van het bestand bereikt is.
|
||||||
|
v_searchline := v_newline;
|
||||||
|
imp_header(v_newline, header_is_valid);
|
||||||
|
ELSIF rec.regellengte > 1 -- Lege regels overslaan!
|
||||||
|
THEN
|
||||||
|
-- Lees alle veldwaarden
|
||||||
|
v_searchline := v_newline; -- bewaar de oorspronkelijke regel om in te kunnen zoeken.
|
||||||
|
--
|
||||||
|
v_aanduiding := 'RUBRIEK';
|
||||||
|
imp_rubriek(v_newline, k_rubriek_code);
|
||||||
|
--
|
||||||
|
v_aanduiding := 'GROEP';
|
||||||
|
imp_groep(v_newline, k_groep_code);
|
||||||
|
--
|
||||||
|
v_aanduiding := 'SOORT';
|
||||||
|
imp_soort(v_newline, k_soort_code);
|
||||||
|
END IF;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS
|
||||||
|
THEN
|
||||||
|
oracle_err_num := SQLCODE;
|
||||||
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||||
|
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ' r.'|| v_imp_count || ')';
|
||||||
|
fac.imp_writelog (p_import_key,
|
||||||
|
'W',
|
||||||
|
v_aanduiding || v_errormsg,
|
||||||
|
v_errorhint);
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
--
|
||||||
|
IF (header_is_valid = 0) THEN
|
||||||
|
fac.imp_writelog (p_import_key,
|
||||||
|
'E',
|
||||||
|
'Importbestand {0} bevat geen geldige header',
|
||||||
|
'Inlezen default projectinrichting niet gelukt!');
|
||||||
|
END IF;
|
||||||
|
--
|
||||||
|
COMMIT;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS
|
||||||
|
THEN
|
||||||
|
oracle_err_num := SQLCODE;
|
||||||
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||||
|
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ' r.'|| v_imp_count || ')';
|
||||||
|
fac.imp_writelog (p_import_key,
|
||||||
|
'E',
|
||||||
|
v_aanduiding || v_errormsg,
|
||||||
|
'Inlezen default projectinrichting afgebroken!');
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
CREATE OR REPLACE PROCEDURE twyn_update_projectcsv ( p_import_key IN NUMBER
|
||||||
|
, p_project_key IN NUMBER)
|
||||||
|
IS
|
||||||
|
g_errormsg VARCHAR2 (1000);
|
||||||
|
g_errorhint VARCHAR2 (1000);
|
||||||
|
oracle_err_num NUMBER;
|
||||||
|
oracle_err_mes VARCHAR2 (200);
|
||||||
|
g_aanduiding VARCHAR2 (200);
|
||||||
|
|
||||||
|
FUNCTION get_btw_key( p_code IN VARCHAR2
|
||||||
|
, p_perc IN NUMBER
|
||||||
|
) RETURN NUMBER
|
||||||
|
IS
|
||||||
|
a_btw_key fin_btwtabelwaarde.fin_btwtabelwaarde_key%TYPE;
|
||||||
|
BEGIN
|
||||||
|
BEGIN
|
||||||
|
SELECT fin_btwtabelwaarde_key
|
||||||
|
INTO a_btw_key
|
||||||
|
FROM fin_btwtabelwaarde
|
||||||
|
WHERE fin_btwtabelwaarde_perc = p_perc;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN NO_DATA_FOUND THEN
|
||||||
|
INSERT INTO fin_btwtabelwaarde
|
||||||
|
( fin_btwtabelwaarde_code
|
||||||
|
, fin_btwtabelwaarde_oms
|
||||||
|
, fin_btwtabelwaarde_perc
|
||||||
|
, fin_btwtabel_key
|
||||||
|
)
|
||||||
|
VALUES
|
||||||
|
( SUBSTR(p_code,1,1) || TO_CHAR(p_perc)
|
||||||
|
, p_code
|
||||||
|
, p_perc
|
||||||
|
, (SELECT MAX(fin_btwtabel_key) FROM fin_btwtabel)
|
||||||
|
)
|
||||||
|
RETURNING fin_btwtabelwaarde_key INTO a_btw_key;
|
||||||
|
END;
|
||||||
|
RETURN a_btw_key;
|
||||||
|
END; -- get_btw_key
|
||||||
|
|
||||||
|
PROCEDURE update_rubriek( p_import_key IN NUMBER
|
||||||
|
, p_project_key IN NUMBER)
|
||||||
|
AS
|
||||||
|
CURSOR c_rubriek
|
||||||
|
IS
|
||||||
|
SELECT bgt_project_discipline
|
||||||
|
, bgt_project_code
|
||||||
|
, bgt_kostenrubriek_code
|
||||||
|
, bgt_kostenrubriek_oms
|
||||||
|
FROM twyn_imp_kostenrubriek
|
||||||
|
ORDER BY bgt_kostenrubriek_code;
|
||||||
|
|
||||||
|
l_count_i NUMBER(3) := 0;
|
||||||
|
l_rubriek_key NUMBER(10);
|
||||||
|
BEGIN
|
||||||
|
g_errormsg := NULL;
|
||||||
|
FOR l_rec IN c_rubriek
|
||||||
|
LOOP
|
||||||
|
g_errormsg := 'Fout bij toevoegen rubriek ' || l_rec.bgt_kostenrubriek_code;
|
||||||
|
BEGIN
|
||||||
|
SELECT r.bgt_kostenrubriek_key
|
||||||
|
INTO l_rubriek_key
|
||||||
|
FROM bgt_kostenrubriek r
|
||||||
|
WHERE r.bgt_kostenrubriek_code = l_rec.bgt_kostenrubriek_code
|
||||||
|
AND r.bgt_project_key = p_project_key;
|
||||||
|
--
|
||||||
|
fac.imp_writelog ( p_import_key
|
||||||
|
, 'W'
|
||||||
|
, 'Rubriek [' || l_rec.bgt_kostenrubriek_code || '] bestaat al'
|
||||||
|
, NULL
|
||||||
|
);
|
||||||
|
EXCEPTION
|
||||||
|
WHEN NO_DATA_FOUND THEN
|
||||||
|
g_errorhint := 'Toevoegen rubriek';
|
||||||
|
INSERT INTO bgt_kostenrubriek
|
||||||
|
( bgt_project_key
|
||||||
|
, bgt_kostenrubriek_code
|
||||||
|
, bgt_kostenrubriek_oms
|
||||||
|
)
|
||||||
|
VALUES
|
||||||
|
( p_project_key
|
||||||
|
, l_rec.bgt_kostenrubriek_code
|
||||||
|
, l_rec.bgt_kostenrubriek_oms
|
||||||
|
)
|
||||||
|
RETURNING bgt_kostenrubriek_key INTO l_rubriek_key;
|
||||||
|
--
|
||||||
|
fac.imp_writelog ( p_import_key
|
||||||
|
, 'I'
|
||||||
|
, 'Rubriek [' || l_rec.bgt_kostenrubriek_code || '] toegevoegd'
|
||||||
|
, NULL
|
||||||
|
);
|
||||||
|
l_count_i:= l_count_i + 1;
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
fac.imp_writelog ( p_import_key, 'S', 'Rubriek: aantal regels toegevoegd: ' || TO_CHAR(l_count_i), NULL);
|
||||||
|
COMMIT;
|
||||||
|
END; -- update_rubriek
|
||||||
|
|
||||||
|
PROCEDURE update_groep( p_import_key IN NUMBER
|
||||||
|
, p_project_key IN NUMBER)
|
||||||
|
AS
|
||||||
|
CURSOR c_groep
|
||||||
|
IS
|
||||||
|
SELECT bgt_project_discipline
|
||||||
|
, bgt_project_code
|
||||||
|
, bgt_kostenrubriek_code
|
||||||
|
, prs_kostensoortgrp_altcode
|
||||||
|
, prs_kostensoortgrp_oms
|
||||||
|
FROM twyn_imp_kostensoortgrp
|
||||||
|
ORDER BY prs_kostensoortgrp_altcode;
|
||||||
|
l_rubriek_key bgt_kostenrubriek.bgt_kostenrubriek_key%TYPE;
|
||||||
|
l_groep_key prs_kostensoortgrp.prs_kostensoortgrp_key%TYPE;
|
||||||
|
l_rubriek_code bgt_kostenrubriek.bgt_kostenrubriek_code%TYPE;
|
||||||
|
l_groep_code prs_kostensoortgrp.prs_kostensoortgrp_altcode%TYPE;
|
||||||
|
l_count NUMBER(3) := 0;
|
||||||
|
BEGIN
|
||||||
|
g_errormsg := NULL;
|
||||||
|
FOR l_rec IN c_groep
|
||||||
|
LOOP
|
||||||
|
BEGIN
|
||||||
|
l_rubriek_code := l_rec.bgt_kostenrubriek_code;
|
||||||
|
g_errormsg := 'Fout bij opvragen rubriek ' || l_rubriek_code;
|
||||||
|
SELECT bgt_kostenrubriek_key
|
||||||
|
INTO l_rubriek_key
|
||||||
|
FROM bgt_kostenrubriek r
|
||||||
|
WHERE r.bgt_kostenrubriek_code = l_rubriek_code
|
||||||
|
AND r.bgt_project_key = p_project_key;
|
||||||
|
--
|
||||||
|
l_groep_code := l_rec.prs_kostensoortgrp_altcode;
|
||||||
|
g_errormsg := 'Fout bij toevoegen groep ' || l_groep_code;
|
||||||
|
BEGIN
|
||||||
|
SELECT prs_kostensoortgrp_key
|
||||||
|
INTO l_groep_key
|
||||||
|
FROM prs_kostensoortgrp
|
||||||
|
WHERE bgt_kostenrubriek_key = l_rubriek_key
|
||||||
|
AND prs_kostensoortgrp_altcode = l_groep_code;
|
||||||
|
--
|
||||||
|
fac.imp_writelog ( p_import_key
|
||||||
|
, 'W'
|
||||||
|
, 'Groep [' || l_groep_code || '] bestaat al'
|
||||||
|
, NULL
|
||||||
|
);
|
||||||
|
EXCEPTION
|
||||||
|
WHEN NO_DATA_FOUND THEN
|
||||||
|
g_errorhint := 'Toevoegen groep';
|
||||||
|
INSERT INTO prs_kostensoortgrp
|
||||||
|
( prs_kostensoortgrp_oms
|
||||||
|
, prs_kostensoortgrp_altcode
|
||||||
|
, bgt_kostenrubriek_key
|
||||||
|
)
|
||||||
|
VALUES
|
||||||
|
( l_rec.prs_kostensoortgrp_oms
|
||||||
|
, l_groep_code
|
||||||
|
, l_rubriek_key
|
||||||
|
)
|
||||||
|
RETURNING prs_kostensoortgrp_key INTO l_groep_key;
|
||||||
|
--
|
||||||
|
fac.imp_writelog ( p_import_key
|
||||||
|
, 'I'
|
||||||
|
, 'Groep [' || l_groep_code || ': ' || l_rec.prs_kostensoortgrp_oms || '] toegevoegd'
|
||||||
|
, NULL
|
||||||
|
);
|
||||||
|
l_count := l_count + 1;
|
||||||
|
END;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN NO_DATA_FOUND THEN
|
||||||
|
fac.imp_writelog ( p_import_key, 'W', 'Onbekende rubriek [' || l_rec.bgt_kostenrubriek_code || ']', NULL);
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
fac.imp_writelog ( p_import_key, 'S', 'Groep: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL);
|
||||||
|
COMMIT;
|
||||||
|
END; --update_groep
|
||||||
|
|
||||||
|
PROCEDURE update_soort( p_import_key IN NUMBER
|
||||||
|
, p_project_key IN NUMBER)
|
||||||
|
AS
|
||||||
|
CURSOR c_soort
|
||||||
|
IS
|
||||||
|
SELECT bgt_project_discipline
|
||||||
|
, bgt_project_code
|
||||||
|
, bgt_kostenrubriek_code
|
||||||
|
, prs_kostensoortgrp_altcode
|
||||||
|
, prs_kostensoort_oms
|
||||||
|
, prs_kostensoort_opmerking
|
||||||
|
, bgt_btw_code
|
||||||
|
, bgt_btw_waarde
|
||||||
|
FROM twyn_imp_kostensoort
|
||||||
|
ORDER BY prs_kostensoort_oms;
|
||||||
|
l_groep_key prs_kostensoortgrp.prs_kostensoortgrp_key%TYPE;
|
||||||
|
l_soort_key prs_kostensoort.prs_kostensoort_key%TYPE;
|
||||||
|
l_groep_code prs_kostensoortgrp.prs_kostensoortgrp_altcode%TYPE;
|
||||||
|
l_soort_code prs_kostensoort.prs_kostensoort_oms%TYPE;
|
||||||
|
l_btw_key fin_btwtabelwaarde.fin_btwtabelwaarde_key%TYPE;
|
||||||
|
l_count NUMBER(3) := 0;
|
||||||
|
BEGIN
|
||||||
|
g_errormsg := NULL;
|
||||||
|
FOR l_rec IN c_soort
|
||||||
|
LOOP
|
||||||
|
BEGIN
|
||||||
|
l_groep_code := l_rec.prs_kostensoortgrp_altcode;
|
||||||
|
g_errormsg := 'Fout bij opvragen groep ' || l_groep_code;
|
||||||
|
SELECT prs_kostensoortgrp_key
|
||||||
|
INTO l_groep_key
|
||||||
|
FROM bgt_kostenrubriek r
|
||||||
|
, prs_kostensoortgrp g
|
||||||
|
WHERE r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key
|
||||||
|
AND r.bgt_kostenrubriek_code = l_rec.bgt_kostenrubriek_code
|
||||||
|
AND g.prs_kostensoortgrp_altcode = l_groep_code
|
||||||
|
AND r.bgt_project_key = p_project_key;
|
||||||
|
--
|
||||||
|
l_soort_code := l_rec.prs_kostensoort_oms;
|
||||||
|
g_errormsg := 'Fout bij toevoegen soort ' || l_soort_code;
|
||||||
|
BEGIN
|
||||||
|
SELECT prs_kostensoort_key
|
||||||
|
INTO l_soort_key
|
||||||
|
FROM prs_kostensoort
|
||||||
|
WHERE prs_kostensoortgrp_key = l_groep_key
|
||||||
|
AND prs_kostensoort_altcode = l_soort_code;
|
||||||
|
--
|
||||||
|
fac.imp_writelog ( p_import_key
|
||||||
|
, 'W'
|
||||||
|
, 'Soort [' || l_soort_code || '] bestaat al'
|
||||||
|
, NULL
|
||||||
|
);
|
||||||
|
EXCEPTION
|
||||||
|
WHEN NO_DATA_FOUND THEN
|
||||||
|
g_errorhint := 'Toevoegen soort';
|
||||||
|
l_btw_key := get_btw_key(l_rec.bgt_btw_code, l_rec.bgt_btw_waarde);
|
||||||
|
INSERT INTO prs_kostensoort
|
||||||
|
( prs_kostensoort_oms
|
||||||
|
, prs_kostensoort_altcode
|
||||||
|
, prs_kostensoort_opmerking
|
||||||
|
, prs_kostensoortgrp_key
|
||||||
|
, fin_btwtabelwaarde_key
|
||||||
|
)
|
||||||
|
VALUES
|
||||||
|
( l_rec.prs_kostensoort_opmerking
|
||||||
|
, l_soort_code
|
||||||
|
, l_soort_code
|
||||||
|
, l_groep_key
|
||||||
|
, l_btw_key
|
||||||
|
)
|
||||||
|
RETURNING prs_kostensoort_key INTO l_soort_key;
|
||||||
|
--
|
||||||
|
fac.imp_writelog ( p_import_key
|
||||||
|
, 'I'
|
||||||
|
, 'Soort [' || l_soort_code || ': ' || l_rec.prs_kostensoort_opmerking || '] toegevoegd'
|
||||||
|
, NULL
|
||||||
|
);
|
||||||
|
l_count := l_count + 1;
|
||||||
|
END;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN NO_DATA_FOUND THEN
|
||||||
|
fac.imp_writelog ( p_import_key, 'W', 'Onbekende groep [' || l_groep_code || ']', NULL);
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
fac.imp_writelog ( p_import_key, 'S', 'Soort: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL);
|
||||||
|
COMMIT;
|
||||||
|
END; --update_soort
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
update_rubriek(p_import_key, p_project_key);
|
||||||
|
update_groep(p_import_key, p_project_key);
|
||||||
|
update_soort(p_import_key, p_project_key);
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS
|
||||||
|
THEN
|
||||||
|
oracle_err_num := SQLCODE;
|
||||||
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||||
|
g_errormsg :=
|
||||||
|
g_errormsg
|
||||||
|
|| ' ORACLE (error '
|
||||||
|
|| oracle_err_num
|
||||||
|
|| '/'
|
||||||
|
|| oracle_err_mes
|
||||||
|
|| ')';
|
||||||
|
fac.imp_writelog (p_import_key,
|
||||||
|
'E',
|
||||||
|
g_aanduiding || g_errormsg,
|
||||||
|
'Verwerken default projectinrichting {0} afgebroken!');
|
||||||
|
COMMIT;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
------ payload end ------
|
||||||
|
|
||||||
|
SET DEFINE OFF
|
||||||
|
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
||||||
|
/
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
SET ECHO OFF
|
||||||
|
SPOOL OFF
|
||||||
|
SET DEFINE ON
|
||||||
|
PROMPT Logfile of this upgrade is: &fcltlogfile
|
||||||
563
TWYN/twyn_pac.sql
Normal file
563
TWYN/twyn_pac.sql
Normal file
@@ -0,0 +1,563 @@
|
|||||||
|
--
|
||||||
|
-- $Id$
|
||||||
|
--
|
||||||
|
-- Script containing customer specific sql statements for the FACILITOR database
|
||||||
|
|
||||||
|
DEFINE thisfile = 'TWYN_PAC.SQL'
|
||||||
|
DEFINE dbuser = '^TWYN'
|
||||||
|
DEFINE custid = 'TWYN'
|
||||||
|
|
||||||
|
SET ECHO ON
|
||||||
|
SET DEFINE ON
|
||||||
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||||||
|
WHENEVER SQLERROR EXIT;
|
||||||
|
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||||||
|
WHENEVER SQLERROR CONTINUE;
|
||||||
|
SPOOL &fcltlogfile
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
------ payload begin ------
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Eigen logfile voor BGT
|
||||||
|
--
|
||||||
|
CREATE OR REPLACE PROCEDURE twyn_log ( p_actie IN VARCHAR2
|
||||||
|
, p_level IN VARCHAR2
|
||||||
|
, p_msg IN VARCHAR2
|
||||||
|
, p_disc_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_prj_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_rub_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_grp_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_srt_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_bgt_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_mut_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_opdr_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_fact_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_bedr_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_kpls_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_kgrp_key IN NUMBER DEFAULT NULL
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
v_volgnr NUMBER(10);
|
||||||
|
BEGIN
|
||||||
|
SELECT COALESCE(MAX(volgnr), 0) + 1
|
||||||
|
INTO v_volgnr
|
||||||
|
FROM twyn_bgtlog;
|
||||||
|
--
|
||||||
|
INSERT INTO twyn_bgtlog VALUES
|
||||||
|
( v_volgnr
|
||||||
|
, p_actie
|
||||||
|
, p_level
|
||||||
|
, SYSDATE
|
||||||
|
, p_msg
|
||||||
|
, p_disc_key, p_prj_key, p_rub_key, p_grp_key, p_srt_key
|
||||||
|
, p_bgt_key, p_mut_key
|
||||||
|
, p_opdr_key, p_fact_key, p_bedr_key
|
||||||
|
, p_kpls_key, p_kgrp_key
|
||||||
|
);
|
||||||
|
-- COMMIT;
|
||||||
|
END twyn_log;
|
||||||
|
/
|
||||||
|
|
||||||
|
--
|
||||||
|
--
|
||||||
|
--
|
||||||
|
CREATE OR REPLACE PROCEDURE twyn_delete_deelproject ( p_deelproject_key IN NUMBER
|
||||||
|
, p_alleen_fin IN BOOLEAN DEFAULT FALSE
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
-- Verwijder het deelproject met bgt_project_key = n.
|
||||||
|
-- Met parameter p_alleen_fin worden alleen de budget- en contractgegevens verwijderd.
|
||||||
|
-- Default is het hele deelproject verwijderen, dus ook koststenplaatsen, kosten- rubriek, soortgrp en soort.
|
||||||
|
v_delete_str VARCHAR2 (100) := 'DELETE prj=' || TO_CHAR(p_deelproject_key);
|
||||||
|
v_err_count NUMBER;
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE log_info( p_code IN VARCHAR2 DEFAULT NULL
|
||||||
|
, p_msg IN VARCHAR2 DEFAULT NULL
|
||||||
|
, p_prj_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_rub_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_grp_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_srt_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_bgt_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_mut_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_opdr_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_fact_key IN NUMBER DEFAULT NULL
|
||||||
|
, p_bedr_key IN NUMBER DEFAULT NULL
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
v_ora_err_num NUMBER;
|
||||||
|
v_ora_err_msg VARCHAR2(200);
|
||||||
|
v_err_msg VARCHAR2(1000);
|
||||||
|
v_msg VARCHAR2(2000);
|
||||||
|
BEGIN
|
||||||
|
IF (p_code IN ('W', 'E')) THEN
|
||||||
|
v_ora_err_num := SQLCODE;
|
||||||
|
v_ora_err_msg := SUBSTR (SQLERRM, 1, 200);
|
||||||
|
v_msg := 'ORACLE (error ' || v_ora_err_num || '/' || v_ora_err_msg || ')';
|
||||||
|
IF (p_msg IS NOT NULL) THEN
|
||||||
|
v_msg := v_msg || ': ' || p_msg;
|
||||||
|
END IF;
|
||||||
|
ELSE
|
||||||
|
v_msg := p_msg;
|
||||||
|
END IF;
|
||||||
|
twyn_log (v_delete_str, p_code, v_msg, NULL, p_prj_key, p_rub_key, p_grp_key, p_srt_key, p_bgt_key, p_mut_key, p_opdr_key, p_fact_key, p_bedr_key);
|
||||||
|
END;
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE delete_contracten(p_bgt_project_key IN NUMBER)
|
||||||
|
AS
|
||||||
|
CURSOR c_project_opdr
|
||||||
|
IS
|
||||||
|
SELECT s.prs_kostensoort_key
|
||||||
|
FROM bgt_project p
|
||||||
|
, bgt_kostenrubriek r
|
||||||
|
, prs_kostensoortgrp g
|
||||||
|
, prs_kostensoort s
|
||||||
|
WHERE p.bgt_project_key = r.bgt_project_key
|
||||||
|
AND r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key
|
||||||
|
AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key
|
||||||
|
AND p.bgt_project_key = p_bgt_project_key;
|
||||||
|
|
||||||
|
CURSOR c_opdracht(p_kostensoort_key IN NUMBER)
|
||||||
|
IS
|
||||||
|
SELECT o.mld_uitvoerende_keys
|
||||||
|
, o.mld_opdr_key
|
||||||
|
FROM mld_opdr o
|
||||||
|
WHERE o.prs_kostensoort_key = p_kostensoort_key;
|
||||||
|
|
||||||
|
iprj NUMBER;
|
||||||
|
iopd NUMBER;
|
||||||
|
ibdr NUMBER;
|
||||||
|
|
||||||
|
PROCEDURE delete_prs_bedrijf( p_project_key IN NUMBER
|
||||||
|
, p_mld_opdr_key IN NUMBER
|
||||||
|
, p_bedrijf_key IN NUMBER
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
i NUMBER;
|
||||||
|
xprj NUMBER;
|
||||||
|
opdr NUMBER;
|
||||||
|
bedr NUMBER;
|
||||||
|
v_aantal_projecten NUMBER;
|
||||||
|
v_aantal_opdrachten NUMBER;
|
||||||
|
BEGIN
|
||||||
|
xprj := p_project_key;
|
||||||
|
opdr := p_mld_opdr_key;
|
||||||
|
bedr := p_bedrijf_key;
|
||||||
|
SELECT COUNT(DISTINCT p.bgt_project_key) aantal_projecten
|
||||||
|
, COUNT(o.mld_opdr_key) aantal_opdrachten
|
||||||
|
INTO v_aantal_projecten
|
||||||
|
, v_aantal_opdrachten
|
||||||
|
FROM bgt_project p
|
||||||
|
, bgt_kostenrubriek r
|
||||||
|
, prs_kostensoortgrp g
|
||||||
|
, prs_kostensoort s
|
||||||
|
, mld_opdr o
|
||||||
|
WHERE p.bgt_project_key = r.bgt_project_key
|
||||||
|
AND r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key
|
||||||
|
AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key
|
||||||
|
AND s.prs_kostensoort_key = o.prs_kostensoort_key
|
||||||
|
AND o.mld_uitvoerende_keys = p_bedrijf_key;
|
||||||
|
--
|
||||||
|
-- Om een bedrijf die alleen in het project gebruikt wordt te kunnen verwijderen
|
||||||
|
-- mogen er geen referenties meer bestaan.
|
||||||
|
BEGIN
|
||||||
|
--
|
||||||
|
IF (v_aantal_projecten = 1 AND v_aantal_opdrachten = 1) THEN
|
||||||
|
-- bedrijf wordt alleen in het huidige project
|
||||||
|
-- en in de huidige contract gebruikt, dus kan verwijderd worden.
|
||||||
|
DELETE
|
||||||
|
FROM prs_bedrijf
|
||||||
|
WHERE prs_bedrijf_key = p_bedrijf_key;
|
||||||
|
--
|
||||||
|
log_info('I', 'Bedrijf verwijderd'
|
||||||
|
, xprj, NULL, NULL, NULL, NULL, NULL, opdr, NULL, bedr
|
||||||
|
);
|
||||||
|
--
|
||||||
|
END IF;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN log_info('W', NULL, xprj, NULL, NULL, NULL, NULL, NULL, opdr, NULL, bedr);
|
||||||
|
-- xmsg, xprj, xrub, xgrp, xsrt, xbgt, xmut, opdr, fact, bedr
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
|
||||||
|
PROCEDURE delete_fin_factuur( p_project_key IN NUMBER
|
||||||
|
, p_mld_opdr_key IN NUMBER)
|
||||||
|
AS
|
||||||
|
i NUMBER;
|
||||||
|
xprj NUMBER;
|
||||||
|
opdr NUMBER;
|
||||||
|
BEGIN
|
||||||
|
xprj := p_project_key;
|
||||||
|
opdr := p_mld_opdr_key;
|
||||||
|
BEGIN
|
||||||
|
DELETE
|
||||||
|
FROM fin_factuur
|
||||||
|
WHERE mld_opdr_key = p_mld_opdr_key;
|
||||||
|
--
|
||||||
|
i := sql%rowcount;
|
||||||
|
log_info( 'I', 'Aantal facturen verwijderd: ' || TO_CHAR(i)
|
||||||
|
, xprj, NULL, NULL, NULL, NULL, NULL, opdr
|
||||||
|
);
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN log_info('W', NULL, xprj, NULL, NULL, NULL, NULL, NULL, opdr);
|
||||||
|
-- xmsg, xprj, xrub, xgrp, xsrt, xbgt, xmut, opdr, fact, bedr
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
|
||||||
|
PROCEDURE delete_fin_factuur_onbekend(p_project_key IN NUMBER)
|
||||||
|
AS
|
||||||
|
i NUMBER;
|
||||||
|
BEGIN
|
||||||
|
-- Factuur verwijst naar een kostensoort binnen het te verwijderen project,
|
||||||
|
-- maar is niet via de mld_opdr verwijderd.
|
||||||
|
DELETE
|
||||||
|
FROM fin_factuur
|
||||||
|
WHERE prs_kostensoort_key IN
|
||||||
|
(SELECT s.prs_kostensoort_key
|
||||||
|
FROM prs_kostensoort s
|
||||||
|
, prs_kostensoortgrp g
|
||||||
|
, bgt_kostenrubriek r
|
||||||
|
WHERE s.prs_kostensoortgrp_key = g.prs_kostensoortgrp_key
|
||||||
|
AND g.bgt_kostenrubriek_key = r.bgt_kostenrubriek_key
|
||||||
|
AND r.bgt_project_key = p_project_key
|
||||||
|
);
|
||||||
|
--
|
||||||
|
i := sql%rowcount;
|
||||||
|
log_info( 'I', 'Aantal facturen alleen aan kostensoort gebonden verwijderd: ' || TO_CHAR(i)
|
||||||
|
, p_project_key
|
||||||
|
);
|
||||||
|
END;
|
||||||
|
|
||||||
|
PROCEDURE delete_mld_opdr( p_project_key IN NUMBER
|
||||||
|
, p_mld_opdr_key IN NUMBER)
|
||||||
|
AS
|
||||||
|
xprj NUMBER;
|
||||||
|
opdr NUMBER;
|
||||||
|
BEGIN
|
||||||
|
xprj := p_project_key;
|
||||||
|
opdr := p_mld_opdr_key;
|
||||||
|
BEGIN
|
||||||
|
DELETE
|
||||||
|
FROM mld_opdr
|
||||||
|
WHERE mld_opdr_key = p_mld_opdr_key;
|
||||||
|
--
|
||||||
|
log_info('I', 'Opdracht verwijderd'
|
||||||
|
, xprj, NULL, NULL, NULL, NULL, NULL, opdr
|
||||||
|
);
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN log_info('W', NULL, xprj, NULL, NULL, NULL, NULL, NULL, opdr);
|
||||||
|
-- xmsg, xprj, xrub, xgrp, xsrt, xbgt, xmut, opdr, fact, bedr
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
|
||||||
|
BEGIN -- delete_contracten
|
||||||
|
iprj := p_bgt_project_key;
|
||||||
|
log_info('I', 'Bedrijven, facturen en contracten:');
|
||||||
|
BEGIN
|
||||||
|
FOR l_prj IN c_project_opdr
|
||||||
|
LOOP
|
||||||
|
FOR l_opdr IN c_opdracht(l_prj.prs_kostensoort_key)
|
||||||
|
LOOP
|
||||||
|
iopd := l_opdr.mld_opdr_key;
|
||||||
|
ibdr := l_opdr.mld_uitvoerende_keys;
|
||||||
|
delete_prs_bedrijf (p_bgt_project_key, l_opdr.mld_opdr_key, l_opdr.mld_uitvoerende_keys);
|
||||||
|
delete_fin_factuur (p_bgt_project_key, l_opdr.mld_opdr_key);
|
||||||
|
delete_mld_opdr (p_bgt_project_key, l_opdr.mld_opdr_key);
|
||||||
|
END LOOP;
|
||||||
|
END LOOP;
|
||||||
|
delete_fin_factuur_onbekend(p_bgt_project_key);
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN log_info('W', NULL, iprj, NULL, NULL, NULL, NULL, NULL, iopd, NULL, ibdr);
|
||||||
|
-- xmsg, iprj, irub, igrp, isrt, ibgt, imut, iopd, ifac, ibdr
|
||||||
|
END;
|
||||||
|
END; -- delete_contracten
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE delete_budgetten(p_bgt_project_key IN NUMBER)
|
||||||
|
AS
|
||||||
|
CURSOR c_project_bud
|
||||||
|
IS
|
||||||
|
SELECT b.bgt_budget_key
|
||||||
|
, b.bgt_kostenrubriek_key
|
||||||
|
, b.prs_kostensoortgrp_key
|
||||||
|
, b.prs_kostensoort_key
|
||||||
|
FROM bgt_budget b
|
||||||
|
WHERE b.bgt_project_key = p_bgt_project_key;
|
||||||
|
|
||||||
|
ibgt NUMBER;
|
||||||
|
iprj NUMBER;
|
||||||
|
irub NUMBER;
|
||||||
|
igrp NUMBER;
|
||||||
|
isrt NUMBER;
|
||||||
|
v_budget_key NUMBER;
|
||||||
|
i NUMBER;
|
||||||
|
|
||||||
|
PROCEDURE delete_mutaties( p_project_key IN NUMBER
|
||||||
|
, p_budget_key IN NUMBER
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
i NUMBER;
|
||||||
|
xprj NUMBER;
|
||||||
|
xbgt NUMBER;
|
||||||
|
BEGIN
|
||||||
|
xprj := p_project_key;
|
||||||
|
xbgt := p_budget_key;
|
||||||
|
BEGIN
|
||||||
|
DELETE
|
||||||
|
FROM bgt_budgetmutatie
|
||||||
|
WHERE bgt_budget_key_van = p_budget_key
|
||||||
|
OR bgt_budget_key_naar = p_budget_key;
|
||||||
|
--
|
||||||
|
i := sql%rowcount;
|
||||||
|
log_info('I', 'Aantal budgetmutaties verwijderd: ' || TO_CHAR(i)
|
||||||
|
, xprj, NULL, NULL, NULL, xbgt
|
||||||
|
);
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN log_info('W', NULL, xprj, NULL, NULL, NULL, xbgt);
|
||||||
|
-- xmsg, xprj, xrub, xgrp, xsrt, xbgt, xmut, opdr, fact, bedr
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
|
||||||
|
PROCEDURE delete_budget( p_project_key IN NUMBER
|
||||||
|
, p_budget_key IN NUMBER
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
xprj NUMBER;
|
||||||
|
xbgt NUMBER;
|
||||||
|
BEGIN
|
||||||
|
xprj := p_project_key;
|
||||||
|
xbgt := p_budget_key;
|
||||||
|
BEGIN
|
||||||
|
DELETE
|
||||||
|
FROM bgt_budget
|
||||||
|
WHERE bgt_budget_key = p_budget_key;
|
||||||
|
--
|
||||||
|
log_info('I', 'Budget verwijderd'
|
||||||
|
, xprj, NULL, NULL, NULL, xbgt
|
||||||
|
);
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN log_info('W', NULL, xprj, NULL, NULL, NULL, xbgt);
|
||||||
|
-- xmsg, xprj, xrub, xgrp, xsrt, xbgt, xmut, opdr, fact, bedr
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
|
||||||
|
BEGIN -- delete_budgetten
|
||||||
|
-- Ongeldige budgetten verwijderen.
|
||||||
|
BEGIN
|
||||||
|
DELETE
|
||||||
|
FROM bgt_budgetmutatie
|
||||||
|
WHERE bgt_budget_key_van IN (SELECT bgt_budget_key FROM bgt_budget WHERE bgt_kostenrubriek_key IS NULL)
|
||||||
|
OR bgt_budget_key_naar IN (SELECT bgt_budget_key FROM bgt_budget WHERE bgt_kostenrubriek_key IS NULL);
|
||||||
|
--
|
||||||
|
DELETE
|
||||||
|
FROM bgt_budget
|
||||||
|
WHERE bgt_kostenrubriek_key IS NULL;
|
||||||
|
i := sql%rowcount;
|
||||||
|
log_info('I', 'Aantal ongeldige budgetten verwijderd: ' || TO_CHAR(i));
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN log_info('W', 'Ongeldige budgetten');
|
||||||
|
END;
|
||||||
|
--
|
||||||
|
log_info('I', 'Budgetmutaties en budgetten:');
|
||||||
|
FOR l_prj IN c_project_bud
|
||||||
|
LOOP
|
||||||
|
iprj := p_bgt_project_key;
|
||||||
|
irub := l_prj.bgt_kostenrubriek_key;
|
||||||
|
igrp := l_prj.prs_kostensoortgrp_key;
|
||||||
|
isrt := l_prj.prs_kostensoort_key;
|
||||||
|
ibgt := l_prj.bgt_budget_key;
|
||||||
|
BEGIN
|
||||||
|
delete_mutaties(iprj, ibgt);
|
||||||
|
delete_budget (iprj, ibgt);
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN log_info('W', NULL, iprj, irub, igrp, isrt, ibgt);
|
||||||
|
-- xmsg, iprj, irub, igrp, isrt, ibgt, imut, iopd, ifac, ibdr
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
END; -- delete_budgetten
|
||||||
|
|
||||||
|
PROCEDURE delete_kostenplaatsen(p_bgt_project_key IN NUMBER)
|
||||||
|
AS
|
||||||
|
CURSOR c_kostenplaats(p_kpgrp_key In NUMBER)
|
||||||
|
IS
|
||||||
|
SELECT prs_kostenplaats_key
|
||||||
|
FROM prs_kostenplaats
|
||||||
|
WHERE prs_kostenplaatsgrp_key = p_kpgrp_key;
|
||||||
|
|
||||||
|
iprj NUMBER;
|
||||||
|
iopd NUMBER;
|
||||||
|
ibdr NUMBER;
|
||||||
|
v_kpgrp_key NUMBER;
|
||||||
|
i NUMBER;
|
||||||
|
BEGIN -- delete_kostenplaatsen
|
||||||
|
iprj := p_bgt_project_key;
|
||||||
|
log_info('I', 'Kostenplaatsen en kostenplaatsgroep:');
|
||||||
|
-- Eerst even wat referenties verwijderen.
|
||||||
|
log_info('I', 'referenties vanuit bgt_project wissen..');
|
||||||
|
--
|
||||||
|
UPDATE bgt_project
|
||||||
|
SET prs_kostenplaats_key = NULL
|
||||||
|
WHERE bgt_project_key = p_bgt_project_key;
|
||||||
|
--
|
||||||
|
log_info('I', 'Referenties vanuit kostensoort wissen..');
|
||||||
|
--
|
||||||
|
UPDATE prs_kostensoort
|
||||||
|
SET prs_kostenplaats_key = NULL
|
||||||
|
WHERE prs_kostensoort_key IN
|
||||||
|
(SELECT s.prs_kostensoort_key
|
||||||
|
FROM prs_kostensoort s
|
||||||
|
, prs_kostensoortgrp g
|
||||||
|
, bgt_kostenrubriek r
|
||||||
|
WHERE s.prs_kostensoortgrp_key = g.prs_kostensoortgrp_key
|
||||||
|
AND g.bgt_kostenrubriek_key = r.bgt_kostenrubriek_key
|
||||||
|
AND r.bgt_project_key = p_bgt_project_key
|
||||||
|
);
|
||||||
|
--
|
||||||
|
BEGIN
|
||||||
|
SELECT g.prs_kostenplaatsgrp_key
|
||||||
|
INTO v_kpgrp_key
|
||||||
|
FROM prs_kostenplaatsgrp g
|
||||||
|
WHERE g.bgt_project_key = p_bgt_project_key;
|
||||||
|
--
|
||||||
|
-- Foutieve verwijzingen verwijderen.
|
||||||
|
-- (vanuit een ander deelproject wordt naar een kostenplaats verwezen die hier verwijderd wordt.)
|
||||||
|
log_info('I', 'Referenties vanuit ander project wissen..');
|
||||||
|
--
|
||||||
|
UPDATE bgt_project
|
||||||
|
SET prs_kostenplaats_key = NULL
|
||||||
|
WHERE prs_kostenplaats_key IN
|
||||||
|
(SELECT prs_kostenplaats_key
|
||||||
|
FROM prs_kostenplaats
|
||||||
|
WHERE prs_kostenplaatsgrp_key = v_kpgrp_key
|
||||||
|
);
|
||||||
|
--
|
||||||
|
log_info('I', 'Referenties vanuit andere kostensoort wissen..');
|
||||||
|
--
|
||||||
|
UPDATE prs_kostensoort
|
||||||
|
SET prs_kostenplaats_key = NULL
|
||||||
|
WHERE prs_kostenplaats_key IN
|
||||||
|
(SELECT prs_kostenplaats_key
|
||||||
|
FROM prs_kostenplaats
|
||||||
|
WHERE prs_kostenplaatsgrp_key = v_kpgrp_key
|
||||||
|
);
|
||||||
|
--
|
||||||
|
log_info('I', 'Referenties vanuit opdracht wissen..');
|
||||||
|
--
|
||||||
|
UPDATE mld_opdr
|
||||||
|
SET prs_kostenplaats_key = NULL
|
||||||
|
WHERE prs_kostenplaats_key IN
|
||||||
|
(SELECT kp.prs_kostenplaats_key
|
||||||
|
FROM prs_kostenplaats kp
|
||||||
|
WHERE kp.prs_kostenplaatsgrp_key = v_kpgrp_key
|
||||||
|
);
|
||||||
|
--
|
||||||
|
log_info('I', 'Referenties vanuit budget wissen..');
|
||||||
|
UPDATE bgt_budget
|
||||||
|
SET prs_kostenplaats_key = NULL
|
||||||
|
WHERE prs_kostenplaats_key IN
|
||||||
|
(SELECT kp.prs_kostenplaats_key
|
||||||
|
FROM prs_kostenplaats kp
|
||||||
|
WHERE kp.prs_kostenplaatsgrp_key = v_kpgrp_key
|
||||||
|
);
|
||||||
|
--
|
||||||
|
-- kostenplaatsen van dit project verwijderen
|
||||||
|
DELETE
|
||||||
|
FROM prs_kostenplaats
|
||||||
|
WHERE prs_kostenplaatsgrp_key = v_kpgrp_key;
|
||||||
|
--
|
||||||
|
i := sql%rowcount;
|
||||||
|
log_info('I', 'Aantal kostenplaatsen verwijderd: ' || TO_CHAR(i)
|
||||||
|
, iprj
|
||||||
|
);
|
||||||
|
-- kostenplaatsgroep van dit project verwijderen
|
||||||
|
DELETE
|
||||||
|
FROM prs_kostenplaatsgrp
|
||||||
|
WHERE prs_kostenplaatsgrp_key = v_kpgrp_key;
|
||||||
|
log_info('I', 'Kostenplaatsgroep verwijderd: ' || TO_CHAR(v_kpgrp_key)
|
||||||
|
, iprj
|
||||||
|
);
|
||||||
|
EXCEPTION
|
||||||
|
WHEN NO_DATA_FOUND THEN log_info('I', 'Geen kostenplaatsgroep aanwezig.');
|
||||||
|
WHEN OTHERS THEN log_info('W', NULL, iprj, NULL, NULL, NULL, NULL);
|
||||||
|
-- xmsg, iprj, irub, igrp, isrt, ibgt, imut, iopd, ifac, ibdr
|
||||||
|
|
||||||
|
END;
|
||||||
|
END; -- delete_kostenplaatsen
|
||||||
|
|
||||||
|
PROCEDURE delete_deelproject(p_bgt_project_key IN NUMBER)
|
||||||
|
AS
|
||||||
|
i NUMBER;
|
||||||
|
BEGIN -- delete_deelproject
|
||||||
|
log_info('I', 'Kostensoort, kostensoortgroep, kostenrubriek en project:');
|
||||||
|
BEGIN
|
||||||
|
DELETE
|
||||||
|
FROM prs_kostensoort
|
||||||
|
WHERE prs_kostensoortgrp_key IN
|
||||||
|
(SELECT g.prs_kostensoortgrp_key
|
||||||
|
FROM bgt_kostenrubriek r
|
||||||
|
, prs_kostensoortgrp g
|
||||||
|
WHERE g.bgt_kostenrubriek_key = r.bgt_kostenrubriek_key
|
||||||
|
AND r.bgt_project_key = p_bgt_project_key
|
||||||
|
);
|
||||||
|
i := sql%rowcount;
|
||||||
|
log_info('I', 'Aantal kostensoorten verwijderd: ' || TO_CHAR(i));
|
||||||
|
--
|
||||||
|
DELETE
|
||||||
|
FROM prs_kostensoortgrp
|
||||||
|
WHERE bgt_kostenrubriek_key IN
|
||||||
|
(SELECT r.bgt_kostenrubriek_key
|
||||||
|
FROM bgt_kostenrubriek r
|
||||||
|
WHERE r.bgt_project_key = p_bgt_project_key
|
||||||
|
);
|
||||||
|
i := sql%rowcount;
|
||||||
|
log_info('I', 'Aantal kostensoortgroepen verwijderd: ' || TO_CHAR(i));
|
||||||
|
--
|
||||||
|
DELETE
|
||||||
|
FROM bgt_kostenrubriek
|
||||||
|
WHERE bgt_project_key = p_bgt_project_key;
|
||||||
|
i := sql%rowcount;
|
||||||
|
log_info('I', 'Aantal kostenrubrieken verwijderd: ' || TO_CHAR(i));
|
||||||
|
--
|
||||||
|
DELETE
|
||||||
|
FROM bgt_project
|
||||||
|
WHERE bgt_project_key = p_bgt_project_key;
|
||||||
|
--
|
||||||
|
log_info('I', 'Deelproject verwijderd', p_bgt_project_key);
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN log_info('W', NULL, p_bgt_project_key);
|
||||||
|
END;
|
||||||
|
END; -- delete_deelproject
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
log_info('I', 'START');
|
||||||
|
delete_contracten(p_deelproject_key);
|
||||||
|
delete_budgetten(p_deelproject_key);
|
||||||
|
IF (NOT p_alleen_fin) THEN
|
||||||
|
delete_kostenplaatsen(p_deelproject_key);
|
||||||
|
delete_deelproject(p_deelproject_key);
|
||||||
|
END IF;
|
||||||
|
log_info('I', 'EINDE');
|
||||||
|
SELECT COUNT(*)
|
||||||
|
INTO v_err_count
|
||||||
|
FROM twyn_bgtlog
|
||||||
|
WHERE loglevel IN ('W','E')
|
||||||
|
AND actie = 'DELETE prj=' || TO_CHAR(p_deelproject_key);
|
||||||
|
log_info('I', 'Aantal fouten: '|| TO_CHAR(v_err_count) );
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
--
|
||||||
|
--
|
||||||
|
--
|
||||||
|
------ payload end ------
|
||||||
|
|
||||||
|
SET DEFINE OFF
|
||||||
|
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
||||||
|
/
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
SET ECHO OFF
|
||||||
|
SPOOL OFF
|
||||||
|
SET DEFINE ON
|
||||||
|
PROMPT Logfile of this upgrade is: &fcltlogfile
|
||||||
Reference in New Issue
Block a user