svn path=/Database/trunk/; revision=9220
This commit is contained in:
Peter Feij
2006-05-12 14:34:30 +00:00
parent c4a6865e99
commit 9980977ee7
3 changed files with 143 additions and 52 deletions

View File

@@ -1,8 +1,8 @@
#ifdef PRJ
/* PRJ_PAC.SRC
*
* $Revision: 44 $
* $Modtime: 26-04-06 18:05 $
* $Revision: 45 $
* $Modtime: 12-05-06 16:02 $
*/
#ifndef MS_SQL
@@ -10,11 +10,13 @@ CREATE OR REPLACE PACKAGE prj
AS
PROCEDURE prj_initiate_scenario (pscenariokey IN NUMBER, pverdiepingkey IN NUMBER);
PROCEDURE prj_copy_scenario (pscenariokey_from IN NUMBER, pscenariokey_to IN NUMBER);
PROCEDURE prj_reinitiate_scenario (pscenariokey IN NUMBER, pverdiepingkey IN NUMBER);
PROCEDURE prj_cancel_scenario (pscenariokey IN NUMBER, pverdiepingkey IN NUMBER);
PROCEDURE prj_commit_scenario (pscenariokey IN NUMBER, pverdiepingkey IN NUMBER);
PROCEDURE prj_commit_scenario (pscenariokey IN NUMBER);
PROCEDURE prj_move_werkplek (pwerkplekkey IN NUMBER, pruimtekey IN NUMBER);
@@ -22,7 +24,6 @@ AS
PROCEDURE prj_move_perslid (pperslidkey IN NUMBER, pruimtekey IN NUMBER, pwerkplekkey IN NUMBER);
-- PROCEDURE prj_add_werkplek (pscenariokey IN NUMBER, pprjruimtekey2 IN NUMBER);
FUNCTION forceuniqueness (element_type IN VARCHAR2, parent_key IN NUMBER, element_omschrijving IN VARCHAR2)
RETURN VARCHAR2;
END prj;
@@ -360,6 +361,95 @@ AS
COMMIT;
END prj_initiate_scenario;
PROCEDURE prj_copy_scenario (
pscenariokey_from IN NUMBER,
pscenariokey_to IN NUMBER
)
IS
dummy VARCHAR2 (1);
BEGIN
checkscenario (pscenariokey_from);
checkscenario (pscenariokey_to);
BEGIN
SELECT 'x'
INTO dummy
FROM prj_ruimte rx
WHERE rx.prj_scenario_key = pscenariokey_to;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
WHEN OTHERS
THEN
-- Bestaat al; niks doen en gewoon terugkeren
NULL;
RETURN;
END;
raise_application_error
(-20002,
'prj package: copy not yet supported'
);
RETURN;
-- ** Parameters are proven valid
-- Kopieer de ruimtes
INSERT INTO prj_ruimte
(prj_ruimte_key, prj_scenario_key, alg_ruimte_key,
alg_verdieping_key, alg_srtruimte_key, prj_ruimte_nr,
prj_ruimte_omschrijving, prj_ruimte_bruto_vloeropp,
prj_ruimte_omtrek, prj_ruimte_inhoud)
SELECT NULL, pscenariokey_to, alg_ruimte_key, alg_verdieping_key,
alg_srtruimte_key, prj_ruimte_nr, prj_ruimte_omschrijving,
prj_ruimte_bruto_vloeropp, prj_ruimte_omtrek,
prj_ruimte_inhoud
FROM prj_ruimte rx
WHERE prj_scenario_key = pscenariokey_from;
/* vergt nog wat uitwerking: de parent key van de zojuist aangemaakte ruimte etc gebruiken
-- Kopieer de werkplekken
INSERT INTO prj_werkplek
(prj_werkplek_key, prs_werkplek_key, prj_werkplek_volgnr,
prj_werkplek_omschrijving, prj_werkplek_vastopp,
prj_ruimte_key)
SELECT NULL, wx.prs_werkplek_key, wx.prj_werkplek_volgnr,
wx.prj_werkplek_omschrijving, wx.prj_werkplek_vastopp,
wx.prj_ruimte_key
FROM prj_werkplek wx, prj_ruimte rx, prj_ruimte rxx
WHERE wx.prj_ruimte_key = rx.prj_ruimte_key
AND rx.prj_ruimte_nr=wxx.prj_ruimte_nr
AND rx.alg_verdieping_key=rxx.alg_verdieping_key
AND rx.prj_scenario_key = pscenariokey_from;
-- Kopieer de werkplekbezettingen
INSERT INTO prj_perslidwerkplek
(prj_perslidwerkplek_key, prs_perslidwerkplek_key,
prs_perslid_key, prs_afdeling_key, prj_werkplek_key,
prj_perslidwerkplek_bezetting)
SELECT NULL, pwx.prs_perslidwerkplek_key, pwx.prs_perslid_key,
pwx.prs_afdeling_key, pwx.prj_werkplek_key,
pwx.prj_perslidwerkplek_bezetting
FROM prj_perslidwerkplek pwx,
prj_werkplek wx,
prj_ruimte rx
WHERE pwx.prj_werkplek_key = wx.prj_werkplek_key
AND rx.prj_scenario_key = pscenariokey_from
AND wx.prj_ruimte_key = rx.prj_ruimte_key;
*/
-- Kopieer de objecten
INSERT INTO prj_deel
(prj_deel_key, ins_deel_key, prj_ruimte_key,
prj_deel_omschrijving, ins_srtdeel_key)
SELECT NULL, dx.ins_deel_key, dx.prj_ruimte_key, dx.prj_deel_omschrijving,
dx.ins_srtdeel_key
FROM prj_deel dx, prj_ruimte rx
WHERE dx.prj_ruimte_key = rx.prj_ruimte_key
AND rx.prj_scenario_key = pscenariokey_from;
COMMIT;
END prj_copy_scenario;
PROCEDURE prj_reinitiate_scenario (
pscenariokey IN NUMBER,
pverdiepingkey IN NUMBER

View File

@@ -1,8 +1,8 @@
#ifdef PRJ
/* PRJ_TAB.SRC
*
* $Revision: 15 $
* $Modtime: 1-05-06 11:09 $
* $Revision: 16 $
* $Modtime: 12-05-06 10:10 $
*/
#include "comsql.h"
@@ -37,36 +37,6 @@ CREATE_TABLE(prj_scenario, 0)
DATE
);
CREATE_TABLE(prj_scenario_note, 0)
(
prj_scenario_note_key
NUMBER(10) _IDENTITY(10000000,1)
CONSTRAINT prj_k_prj_scenario_reamrk_key PRIMARY KEY,
prj_scenario_key
NUMBER(10)
NOT_NULL(prj_scenario_key, prj_c_prj_scenario_key6)
CONSTRAINT prj_r_prj_scenario_key6 REFERENCES prj_scenario(prj_scenario_key) ON DELETE CASCADE,
prj_scenario_note_nr
NUMBER(3),
prj_scenario_note_DWGX
NUMBER(10),
prj_scenario_note_DWGY
NUMBER(10),
prj_scenario_note_omschrijving
VARCHAR2(2000),
prj_ruimte_key
NUMBER(10)
CONSTRAINT prj_r_prj_ruimte_key3 REFERENCES prj_ruimte(prj_ruimte_key),
alg_verdieping_key
NUMBER(10)
CONSTRAINT prj_r_alg_verdieping_key3 REFERENCES alg_verdieping(alg_verdieping_key),
prs_perslid_key
NUMBER(10)
CONSTRAINT prj_r_prs_perslid_key6 REFERENCES prs_perslid(prs_perslid_key),
prj_scenario_note_aanmaak
DATE
DEFAULT SYSDATE
);
/* Om afwijkende oppervlaktes en nieuwe ruimtes te ondersteunen; een ruimte zou ook nog kunnen
vervallen in dit scenario, dus dat moet ook kunnen. Een andere ruimtefunctie: idem. Kunnen we
@@ -258,8 +228,8 @@ CREATE_TABLE(prj_selectie, 0)
CONSTRAINT prj_r_prs_perslid_key2 REFERENCES prs_perslid(prs_perslid_key) ON DELETE CASCADE,
prj_selectie_tabelnaam
VARCHAR2(32)
CONSTRAINT prj_c_prj_selectie_tabelnaam CHECK(prj_selectie_tabelnaam IN ('PRJ_WERKPLEK', 'PRJ_PERSLIDWERKPLEK', 'PRJ_DEEL', 'PRS_PERSLID', 'PRS_AFDELING'))
NOT_NULL(prj_selectie_tabelnaam, prj_c_prj_selectie_tabelnaam),
CONSTRAINT prj_c_prj_selectie_tabelnaam CHECK(prj_selectie_tabelnaam1 IN ('PRJ_WERKPLEK', 'PRJ_PERSLIDWERKPLEK', 'PRJ_DEEL', 'PRS_PERSLID', 'PRS_AFDELING'))
NOT_NULL(prj_selectie_tabelnaam2, prj_c_prj_selectie_tabelnaam),
prj_selectie_tabelkey
NUMBER(10),
NOT_NULL(prj_selectie_tabelkey, prj_c_prj_selectie_tabelkey),
@@ -268,6 +238,37 @@ CREATE_TABLE(prj_selectie, 0)
DEFAULT SYSDATE
);
CREATE_TABLE(prj_scenario_note, 0)
(
prj_scenario_note_key
NUMBER(10) _IDENTITY(10000000,1)
CONSTRAINT prj_k_prj_scenario_reamrk_key PRIMARY KEY,
prj_scenario_key
NUMBER(10)
NOT_NULL(prj_scenario_key, prj_c_prj_scenario_key6)
CONSTRAINT prj_r_prj_scenario_key6 REFERENCES prj_scenario(prj_scenario_key) ON DELETE CASCADE,
prj_scenario_note_nr
NUMBER(3),
prj_scenario_note_DWGX
NUMBER(10),
prj_scenario_note_DWGY
NUMBER(10),
prj_scenario_note_omschrijving
VARCHAR2(2000),
prj_ruimte_key
NUMBER(10)
CONSTRAINT prj_r_prj_ruimte_key3 REFERENCES prj_ruimte(prj_ruimte_key),
alg_verdieping_key
NUMBER(10)
CONSTRAINT prj_r_alg_verdieping_key3 REFERENCES alg_verdieping(alg_verdieping_key),
prs_perslid_key
NUMBER(10)
CONSTRAINT prj_r_prs_perslid_key6 REFERENCES prs_perslid(prs_perslid_key),
prj_scenario_note_aanmaak
DATE
DEFAULT SYSDATE
);
CREATE TABLE prj_scenario_xml
(
prj_scenario_key

View File

@@ -1,8 +1,8 @@
#ifdef PRJ
/* PRJ_TRI.SRC
/* PRJ_VIE.SRC
*
* $Revision: 54 $
* $Modtime: 26-04-06 14:53 $
* $Revision: 55 $
* $Modtime: 12-05-06 10:21 $
*/
/*
@@ -494,17 +494,8 @@ AS
AND wp.prj_werkplek_vastopp IS NOT NULL
GROUP BY wp.prj_ruimte_key;
// Boolean view die aangeeft waar iets gewijzigd is, de 1 en 2 maken het verschil tussen van en naar..
CREATE OR REPLACE VIEW prj_v_cad_thema_onderhanden (prj_ruimte_key, waarde)
AS
SELECT prj_ruimte_key1, '1'
FROM prj_v_cad_thema_onderhanden0
UNION ALL
SELECT prj_ruimte_key2, '2'
FROM prj_v_cad_thema_onderhanden0;
CREATE OR REPLACE VIEW prj_v_cad_thema_onderhanden0 (prj_ruimte_key1, prj_ruimte_key2)
// Hulpview voor de daaropvolgende
CREATE_VIEW prj_v_cad_thema_onderhanden0, 0) (prj_ruimte_key1, prj_ruimte_key2)
AS
SELECT prj_rkey1, prj_rkey2
FROM (SELECT algprs.prs_werkplek_key oud_wpkey, prj_w.prs_werkplek_key new_wpkey, algprs.alg_ruimte_key oud_rkey,
@@ -541,6 +532,15 @@ AS
AND algprs.alg_ruimte_key = prj_zoek.alg_ruimte_key)
WHERE oud_wpkey <> new_wpkey OR oud_rkey <> new_rkey;
// Boolean view die aangeeft waar iets gewijzigd is, de 1 en 2 maken het verschil tussen van en naar..
CREATE_VIEW (prj_v_cad_thema_onderhanden,0) (prj_ruimte_key, waarde)
AS
SELECT prj_ruimte_key1, '1'
FROM prj_v_cad_thema_onderhanden0
UNION ALL
SELECT prj_ruimte_key2, '2'
FROM prj_v_cad_thema_onderhanden0;
-- GRAFISCHE LABELS
-- GRAFISCHE LABELS
-- GRAFISCHE LABELS