TWYN#87300 Projectsplitsing Vredespaleis: Kopiëren budgetten en contracten mogelijk?
svn path=/Customer/; revision=67841
This commit is contained in:
@@ -18,36 +18,82 @@ SET DEFINE OFF
|
||||
------ payload begin ------
|
||||
|
||||
DECLARE
|
||||
-- Maak in de GUI eerst een nieuw project aan.
|
||||
-- Vul hieronder de namen van het bestaande project/deelproject in dat afgescheiden moet worden.
|
||||
-- Vul ook de naam van het nieuwe project in waar het deelproject naar toe moet.
|
||||
-- Vergeet niet de autorisatie op het nieuwe project te zetten.
|
||||
oud_project_naam VARCHAR2(100) := 'Vredespaleis Den Haag Onderhoud';
|
||||
oud_deelproject_naam VARCHAR2(100) := '521960 Achterstallig onderhoud';
|
||||
deelproject_key NUMBER(10);
|
||||
nieuw_project_naam VARCHAR2(100) := 'Vredespaleis A';
|
||||
oud_deelproject_a_naam VARCHAR2(100) := '521950- deelproject A asbest';
|
||||
oud_deelproject_b_naam VARCHAR2(100) := '521950 deelproject B asbest';
|
||||
oud_deelproject_a_key NUMBER(10);
|
||||
oud_deelproject_b_key NUMBER(10);
|
||||
nieuw_project_naam VARCHAR2(100) := 'Vredespaleis Den Haag Asbest';
|
||||
nieuw_project_key NUMBER(10);
|
||||
BEGIN
|
||||
SELECT bgt_project_key
|
||||
INTO deelproject_key
|
||||
FROM bgt_project p
|
||||
, ins_tab_discipline d
|
||||
WHERE d.ins_discipline_key = p.ins_discipline_key
|
||||
AND d.ins_discipline_omschrijving = oud_project_naam
|
||||
AND p.bgt_project_omschrijving = oud_deelproject_naam;
|
||||
|
||||
SELECT ins_discipline_key
|
||||
INTO nieuw_project_key
|
||||
FROM ins_tab_discipline
|
||||
WHERE ins_discipline_omschrijving = nieuw_project_naam;
|
||||
|
||||
UPDATE bgt_project
|
||||
SET ins_discipline_key = nieuw_project_key
|
||||
WHERE bgt_project_key = deelproject_key;
|
||||
FUNCTION getProject(p_project_naam IN VARCHAR2) RETURN NUMBER
|
||||
AS
|
||||
project_key NUMBER(10);
|
||||
BEGIN
|
||||
BEGIN
|
||||
SELECT ins_discipline_key
|
||||
INTO project_key
|
||||
FROM ins_tab_discipline
|
||||
WHERE ins_discipline_omschrijving = p_project_naam;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
INSERT INTO ins_tab_discipline
|
||||
( ins_discipline_module
|
||||
, ins_discipline_omschrijving
|
||||
, ins_discipline_btw
|
||||
, ins_discipline_volgnr
|
||||
, ins_discipline_image
|
||||
, ins_discipline_externnr
|
||||
)
|
||||
VALUES
|
||||
('BGT', p_project_naam, 1, 1, 'fa-eur', '521950')
|
||||
RETURNING ins_discipline_key
|
||||
INTO project_key;
|
||||
END;
|
||||
RETURN project_key;
|
||||
END;
|
||||
|
||||
FUNCTION getDeelproject( p_oud_project_naam IN VARCHAR2
|
||||
, p_oud_deelproject_naam IN VARCHAR2
|
||||
) RETURN NUMBER
|
||||
AS
|
||||
deelproject_key NUMBER(10);
|
||||
BEGIN
|
||||
SELECT bgt_project_key
|
||||
INTO deelproject_key
|
||||
FROM bgt_project p
|
||||
, ins_tab_discipline d
|
||||
WHERE d.ins_discipline_key = p.ins_discipline_key
|
||||
AND d.ins_discipline_omschrijving = p_oud_project_naam
|
||||
AND p.bgt_project_omschrijving = p_oud_deelproject_naam;
|
||||
RETURN deelproject_key;
|
||||
END;
|
||||
|
||||
PROCEDURE splitsProject( p_nieuw_project_key IN NUMBER
|
||||
, p_deelproject_key IN NUMBER
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
UPDATE bgt_project
|
||||
SET ins_discipline_key = p_nieuw_project_key
|
||||
WHERE bgt_project_key = p_deelproject_key;
|
||||
|
||||
UPDATE bgt_budget
|
||||
SET ins_discipline_key = nieuw_project_key
|
||||
WHERE bgt_project_key = deelproject_key;
|
||||
UPDATE bgt_budget
|
||||
SET ins_discipline_key = p_nieuw_project_key
|
||||
WHERE bgt_project_key = p_deelproject_key;
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
nieuw_project_key := getProject(nieuw_project_naam);
|
||||
|
||||
oud_deelproject_a_key := getDeelproject(oud_project_naam, oud_deelproject_a_naam);
|
||||
splitsProject(nieuw_project_key, oud_deelproject_a_key);
|
||||
|
||||
oud_deelproject_b_key := getDeelproject(oud_project_naam, oud_deelproject_b_naam);
|
||||
splitsProject(nieuw_project_key, oud_deelproject_b_key);
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user