prj_f_fac_get_description moet voor objecten gegevens uit all_v_aanwezigdeel halen ivm autorisatie van fcltcad.

svn path=/Database/trunk/; revision=7148
This commit is contained in:
Erik Groener
1999-10-04 14:26:00 +00:00
parent eed7c2802c
commit d851525a71

View File

@@ -4,6 +4,10 @@
**
** REVISIONS:
**
** 11-11-1999 RD Nieuwe bugs toegevoegd.
** 04-10-1999 EGR Voor verwerk_project_... de cursors aangepast voor objecten. Deze mogen niets selecteren als ruimtekey=0
** of een werkplek met ruimtekey=0.
** prj_f_fac_get_description moet voor realworld gegevens uit all_v_aanwezigdeel halen ivm autorisatie fcltcad.
** 29-09-1999 EGR Functie prj_disciplinetekening_bestaat toegevoegd. Deze wordt in cad_slnkPrePostDimensie0, 1, 2 gebruikt
** om te kijken of een geselecteerd object wel op een tekening kan worden toegevoegd.
** cad_getsrcdwgofentity levert nu de magazijntekening als een object of werkplek zich in ruimte 0 bevindt.
@@ -138,7 +142,7 @@ CREATE OR REPLACE PACKAGE BODY prj AS
/* Bepaal het hoogste volgnummer voor deel in de gewone tekening. */
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(ins_deel_omschrijving,LENGTH(ins_deel_omschrijving)-(i-1)))+1)), '***')
INTO NextVolgNr2
FROM ins_v_aanwezigdeel
FROM all_v_aanwezigdeel
WHERE LTRIM(SUBSTR(ins_deel_omschrijving, LENGTH(ins_deel_omschrijving)-(i-1)))
BETWEEN '0' AND LPAD('9',i,'9')
AND LENGTH(ins_deel_omschrijving) <= LENGTH(Prefix)+i
@@ -3297,6 +3301,7 @@ CREATE OR REPLACE PACKAGE BODY prj AS
omschrijving VARCHAR2(30);
SrtDeelCode VARCHAR2(30);
dummy VARCHAR2(1);
ruimte_nr VARCHAR2(10);
BEGIN
IF element_type = 'RUIMTE'
THEN
@@ -3326,19 +3331,21 @@ CREATE OR REPLACE PACKAGE BODY prj AS
THEN
/* Zoek in de geselecteerde ruimte of het huidige werkpleknummer al voor komt. */
BEGIN
SELECT 'x'
INTO dummy
FROM prs_werkplek
WHERE prs_werkplek_volgnr = element_omschrijving
AND prs_alg_ruimte_key = element_key
AND prs_werkplek_verwijder IS NULL;
SELECT alg_ruimte_nr
INTO ruimte_nr
FROM prs_werkplek W
, alg_ruimte R
WHERE W.prs_alg_ruimte_key = R.alg_ruimte_key
AND W.prs_werkplek_volgnr = element_omschrijving
AND W.prs_alg_ruimte_key = element_key
AND W.prs_werkplek_verwijder IS NULL;
/* Deze werkpleknummer komt al voor, dus een nieuw nummer bepalen. */
omschrijving := fac_f_fac_get_description('LPN_PRS_WERKPLEK'
,element_key
,NULL
,NULL);
prj.verwerk_log('Werkpleknummer <'|| element_omschrijving
||'> bestaat al; gewijzigd in <'|| omschrijving ||'>.'
prj.verwerk_log('Werkpleknummer <'|| ruimte_nr ||'/'|| element_omschrijving
||'> bestaat al; gewijzigd in <'|| ruimte_nr ||'/'|| omschrijving ||'>.'
,session_id
,project_key);
EXCEPTION
@@ -3438,18 +3445,30 @@ CREATE OR REPLACE PACKAGE BODY prj AS
WHERE c.ins_deel_key = p.ins_deel_key
AND c.prj_project_key = p.prj_project_key
AND p.prj_project_key = p_project
AND p.ins_alg_ruimte_key <> 0; /* virtueel magazijn */
dummy VARCHAR2(1);
alg_verwijder DATE;
prj_verwijder DATE;
omschrijving VARCHAR2(30);
ruimtenr alg_ruimte.alg_ruimte_nr%TYPE;
werkpleknr prs_werkplek.prs_werkplek_volgnr%TYPE;
SrtDeelCode ins_srtdeel.ins_srtdeel_code%TYPE;
AND EXISTS (SELECT ''
FROM prj_werkplek
WHERE prs_alg_ruimte_key <> 0
AND prs_werkplek_key = p.ins_alg_ruimte_key
AND p.ins_alg_ruimte_type = 'W'
UNION
SELECT ''
FROM prj_ruimte
WHERE alg_ruimte_key <> 0
AND alg_ruimte_key = p.ins_alg_ruimte_key
AND p.ins_alg_ruimte_type = 'R'); /* virtueel magazijn */
dummy VARCHAR2(1);
alg_verwijder DATE;
prj_verwijder DATE;
omschrijving VARCHAR2(30);
ruimtenr alg_ruimte.alg_ruimte_nr%TYPE;
werkpleknr prs_werkplek.prs_werkplek_volgnr%TYPE;
SrtDeelCode ins_srtdeel.ins_srtdeel_code%TYPE;
aantal_hersteld NUMBER(10);
BEGIN
/*
** OBJECTEN
*/
aantal_hersteld := 0;
FOR v_object IN c_object(p_projectkey)
LOOP
omschrijving := verwerk_project_description('DEEL'
@@ -3471,11 +3490,16 @@ CREATE OR REPLACE PACKAGE BODY prj AS
, ins_deel_getekend = v_object.ins_deel_getekend
, ins_deel_verwijder = v_object.ins_deel_verwijder
WHERE ins_deel_key = v_object.ins_deel_key;
aantal_hersteld := aantal_hersteld + 1;
END LOOP;
COMMIT;
prj.verwerk_log(to_char(aantal_hersteld)||' objecten vervangen.'
,p_session
,p_projectkey);
/*
** WERKPLEKKEN
*/
aantal_hersteld := 0;
FOR v_werkplek IN c_werkplek(p_projectkey)
LOOP
omschrijving := verwerk_project_description('WERKPLEK'
@@ -3492,11 +3516,16 @@ CREATE OR REPLACE PACKAGE BODY prj AS
, prs_werkplek_getekend = v_werkplek.prs_werkplek_getekend
, prs_werkplek_verwijder = v_werkplek.prs_werkplek_verwijder
WHERE prs_werkplek_key = v_werkplek.prs_werkplek_key;
aantal_hersteld := aantal_hersteld + 1;
END LOOP;
COMMIT;
prj.verwerk_log(to_char(aantal_hersteld)||' werkplekken vervangen.'
,p_session
,p_projectkey);
/*
** RUIMTEN
*/
aantal_hersteld := 0;
FOR v_ruimte IN c_ruimte(p_projectkey)
LOOP
omschrijving := verwerk_project_description('RUIMTE'
@@ -3513,8 +3542,12 @@ CREATE OR REPLACE PACKAGE BODY prj AS
, alg_ruimte_getekend = v_ruimte.alg_ruimte_getekend
, alg_ruimte_verwijder = v_ruimte.alg_ruimte_verwijder
WHERE alg_ruimte_key = v_ruimte.alg_ruimte_key;
aantal_hersteld := aantal_hersteld + 1;
END LOOP;
COMMIT;
prj.verwerk_log(to_char(aantal_hersteld)||' ruimten vervangen.'
,p_session
,p_projectkey);
END verwerk_project_hersteld;
/* prj.verwerk_project_nieuw
@@ -3570,14 +3603,26 @@ CREATE OR REPLACE PACKAGE BODY prj AS
WHERE c.ins_deel_key = p.ins_deel_key
AND c.prj_project_key = p.prj_project_key
AND p.prj_project_key = p_project
AND p.ins_alg_ruimte_key <> 0; /* virtueel magazijn */
omschrijving VARCHAR2(30);
werkpleknr prs_werkplek.prs_werkplek_volgnr%TYPE;
ruimtenr alg_ruimte.alg_ruimte_nr%TYPE;
AND EXISTS (SELECT ''
FROM prj_werkplek
WHERE prs_alg_ruimte_key <> 0
AND prs_werkplek_key = p.ins_alg_ruimte_key
AND p.ins_alg_ruimte_type = 'W'
UNION
SELECT ''
FROM prj_ruimte
WHERE alg_ruimte_key <> 0
AND alg_ruimte_key = p.ins_alg_ruimte_key
AND p.ins_alg_ruimte_type = 'R'); /* virtueel magazijn */
omschrijving VARCHAR2(30);
werkpleknr prs_werkplek.prs_werkplek_volgnr%TYPE;
ruimtenr alg_ruimte.alg_ruimte_nr%TYPE;
aantal_toegevoegd NUMBER(10);
BEGIN
/*
** RUIMTEN
*/
aantal_toegevoegd := 0;
FOR v_ruimte IN c_ruimte(p_projectkey)
LOOP
omschrijving := verwerk_project_description('RUIMTE'
@@ -3601,11 +3646,16 @@ CREATE OR REPLACE PACKAGE BODY prj AS
, v_ruimte.alg_ruimte_omtrek
, v_ruimte.alg_ruimte_getekend
, v_ruimte.alg_ruimte_verwijder);
aantal_toegevoegd := aantal_toegevoegd + 1;
END LOOP;
COMMIT;
prj.verwerk_log(to_char(aantal_toegevoegd)||' nieuwe ruimten toegevoegd.'
,p_session
,p_projectkey);
/*
** WERKPLEKKEN
*/
aantal_toegevoegd := 0;
FOR v_werkplek IN c_werkplek(p_projectkey)
LOOP
omschrijving := verwerk_project_description('WERKPLEK'
@@ -3632,11 +3682,16 @@ CREATE OR REPLACE PACKAGE BODY prj AS
, v_werkplek.prs_werkplek_verwijder
, omschrijving
, v_werkplek.prs_werkplek_getekend);
aantal_toegevoegd := aantal_toegevoegd + 1;
END LOOP;
COMMIT;
prj.verwerk_log(to_char(aantal_toegevoegd)||' nieuwe werkplekken toegevoegd.'
,p_session
,p_projectkey);
/*
** OBJECTEN
*/
aantal_toegevoegd := 0;
FOR v_object IN c_object(p_projectkey)
LOOP
omschrijving := verwerk_project_description('DEEL'
@@ -3670,8 +3725,12 @@ CREATE OR REPLACE PACKAGE BODY prj AS
, v_object.ins_deel_omtrek
, v_object.ins_deel_getekend
, v_object.ins_deel_verwijder);
aantal_toegevoegd := aantal_toegevoegd + 1;
END LOOP;
COMMIT;
prj.verwerk_log(to_char(aantal_toegevoegd)||' nieuwe objecten toegevoegd.'
,p_session
,p_projectkey);
END verwerk_project_nieuw;
/* prj.verwerk_project_gewijzigd
@@ -3726,17 +3785,29 @@ CREATE OR REPLACE PACKAGE BODY prj AS
WHERE c.ins_deel_key = p.ins_deel_key
AND c.prj_project_key = p.prj_project_key
AND p.prj_project_key = p_project
AND p.ins_alg_ruimte_key <> 0; /* virtueel magazijn */
dummy VARCHAR2(1);
omschrijving VARCHAR2(30);
ruimtenr alg_ruimte.alg_ruimte_nr%TYPE;
werkpleknr prs_werkplek.prs_werkplek_volgnr%TYPE;
SrtDeelCode ins_srtdeel.ins_srtdeel_code%TYPE;
AND EXISTS (SELECT ''
FROM prj_werkplek
WHERE prs_alg_ruimte_key <> 0
AND prs_werkplek_key = p.ins_alg_ruimte_key
AND p.ins_alg_ruimte_type = 'W'
UNION
SELECT ''
FROM prj_ruimte
WHERE alg_ruimte_key <> 0
AND alg_ruimte_key = p.ins_alg_ruimte_key
AND p.ins_alg_ruimte_type = 'R'); /* virtueel magazijn */
dummy VARCHAR2(1);
omschrijving VARCHAR2(30);
ruimtenr alg_ruimte.alg_ruimte_nr%TYPE;
werkpleknr prs_werkplek.prs_werkplek_volgnr%TYPE;
SrtDeelCode ins_srtdeel.ins_srtdeel_code%TYPE;
aantal_gewijzigd NUMBER(10);
BEGIN
/*
** De OBJECTEN bestaat na uitvoering van het project nog steeds, maar de
** gegevens kunnen gewijzigd zijn.
*/
aantal_gewijzigd := 0;
FOR v_object IN c_object(p_projectkey)
LOOP
omschrijving := verwerk_project_description('DEEL'
@@ -3757,12 +3828,17 @@ CREATE OR REPLACE PACKAGE BODY prj AS
, ins_deel_omtrek = v_object.ins_deel_omtrek
, ins_deel_getekend = v_object.ins_deel_getekend
WHERE ins_deel_key = v_object.ins_deel_key;
aantal_gewijzigd := aantal_gewijzigd + 1;
END LOOP;
COMMIT;
prj.verwerk_log(to_char(aantal_gewijzigd)||' objecten gewijzigd.'
,p_session
,p_projectkey);
/*
** De WERKPLEKKEN bestaat na uitvoering van het project nog steeds, maar de
** gegevens kunnen gewijzigd zijn.
*/
aantal_gewijzigd := 0;
FOR v_werkplek IN c_werkplek(p_projectkey)
LOOP
omschrijving := verwerk_project_description('WERKPLEK'
@@ -3778,12 +3854,17 @@ CREATE OR REPLACE PACKAGE BODY prj AS
, prs_werkplek_omschrijving = omschrijving
, prs_werkplek_getekend = v_werkplek.prs_werkplek_getekend
WHERE prs_werkplek_key = v_werkplek.prs_werkplek_key;
aantal_gewijzigd := aantal_gewijzigd + 1;
END LOOP;
COMMIT;
prj.verwerk_log(to_char(aantal_gewijzigd)||' werkplekken gewijzigd.'
,p_session
,p_projectkey);
/*
** De RUIMTEN bestaat na uitvoering van het project nog steeds, maar de
** gegevens kunnen gewijzigd zijn.
*/
aantal_gewijzigd := 0;
FOR v_ruimte IN c_ruimte(p_projectkey)
LOOP
omschrijving := verwerk_project_description('RUIMTE'
@@ -3799,9 +3880,13 @@ CREATE OR REPLACE PACKAGE BODY prj AS
, alg_ruimte_omtrek = v_ruimte.alg_ruimte_omtrek
, alg_ruimte_getekend = v_ruimte.alg_ruimte_getekend
WHERE alg_ruimte_key = v_ruimte.alg_ruimte_key;
aantal_gewijzigd := aantal_gewijzigd + 1;
END LOOP;
COMMIT;
END;
prj.verwerk_log(to_char(aantal_gewijzigd)||' ruimten gewijzigd.'
,p_session
,p_projectkey);
END verwerk_project_gewijzigd;
/* prj.verwerk_project_verwijderd
**
@@ -3839,43 +3924,69 @@ CREATE OR REPLACE PACKAGE BODY prj AS
WHERE c.ins_deel_key = p.ins_deel_key
AND c.prj_project_key = p.prj_project_key
AND p.prj_project_key = p_project
AND p.ins_alg_ruimte_key <> 0; /* virtueel magazijn */
AND EXISTS (SELECT ''
FROM prj_werkplek
WHERE prs_alg_ruimte_key <> 0
AND prs_werkplek_key = p.ins_alg_ruimte_key
AND p.ins_alg_ruimte_type = 'W'
UNION
SELECT ''
FROM prj_ruimte
WHERE alg_ruimte_key <> 0
AND alg_ruimte_key = p.ins_alg_ruimte_key
AND p.ins_alg_ruimte_type = 'R'); /* virtueel magazijn */
aantal_verwijderd NUMBER(10);
BEGIN
/*
** In de projectsituatie zijn deze OBJECTEN verwijderd.
*/
aantal_verwijderd := 0;
FOR v_object IN c_object(p_projectkey)
LOOP
UPDATE ins_deel
SET ins_deel_getekend = v_object.ins_deel_getekend
, ins_deel_verwijder = v_object.ins_deel_verwijder
WHERE ins_deel_key = v_object.ins_deel_key;
aantal_verwijderd := aantal_verwijderd + 1;
END LOOP;
COMMIT;
prj.verwerk_log(to_char(aantal_verwijderd)||' objecten uit project verwijderd.'
,p_session
,p_projectkey);
/*
** In de projectsituatie zijn deze WERKPLEKKEN verwijderd. Daarmee zijn ook de
** objecten die nog aan deze werkplekken verbonden zijn verwijderd.
*/
aantal_verwijderd := 0;
FOR v_werkplek IN c_werkplek(p_projectkey)
LOOP
UPDATE prs_werkplek
SET prs_werkplek_getekend = v_werkplek.prs_werkplek_getekend
, prs_werkplek_verwijder = v_werkplek.prs_werkplek_verwijder
WHERE prs_werkplek_key = v_werkplek.prs_werkplek_key;
aantal_verwijderd := aantal_verwijderd + 1;
END LOOP;
COMMIT;
prj.verwerk_log(to_char(aantal_verwijderd)||' werkplekken uit project verwijderd.'
,p_session
,p_projectkey);
/*
** In de projectsituatie zijn deze RUIMTEN verwijderd. Daarmee zijn ook de
** werkplekken en objecten die zich nog in deze ruimten bevonden verwijderd.
*/
aantal_verwijderd := 0;
FOR v_ruimte IN c_ruimte(p_projectkey)
LOOP
UPDATE alg_ruimte
SET alg_ruimte_getekend = v_ruimte.alg_ruimte_getekend
, alg_ruimte_verwijder = v_ruimte.alg_ruimte_verwijder
WHERE alg_ruimte_key = v_ruimte.alg_ruimte_key;
aantal_verwijderd := aantal_verwijderd + 1;
END LOOP;
COMMIT;
prj.verwerk_log(to_char(aantal_verwijderd)||' ruimten uit project verwijderd.'
,p_session
,p_projectkey);
END verwerk_project_verwijderd;
/* prj.verwerk_project