prj_t_prj_ruimte_b_iu werkend gemaakt voor gecascadeerd verwijderen van ruimte, werkplek, object.

svn path=/Database/trunk/; revision=7031
This commit is contained in:
Erik Groener
1999-08-27 07:31:58 +00:00
parent 8035b8f645
commit 94c657c2bd
2 changed files with 384 additions and 34 deletions

View File

@@ -4,8 +4,10 @@
**
** REVISIONS:
**
** 26-07-1999 EGR Procedures verwerk_log en verwerk_log_clear toegevoegd om met een logbestand te kunnen werken.
** 26-07-1999 EGR Procedure cad_GetSrcDwgOfEntity2 toegevoegd die de functie cad_GetSrcDwgOfEntity aanroept.
** 26-07-1999 EGR Omschrijving van object, ruimte en werkplek bepalen uit prj-tabellen.
** In cad_getsrcdwgofentity parameter projectkey niet gebruiken, maar hier zelf bebalen.
** In cad_getsrcdwgofentity parameter projectkey niet gebruiken, maar hier zelf bepalen.
** Functie prj_f_fac_get_description toegevoegd, waarin op dezelfde wijze als fac_f_fac_get_description
** de default volgnummer wordt gemaakt, alleen nu aan de hand van de prj-tabellen.
** 19-07-1999 EGR CAD-views vervangen door PRJ-views.
@@ -58,15 +60,23 @@ CREATE OR REPLACE PACKAGE prj AS
FUNCTION cad_GetSrcDwgOfEntity (Session_Id IN NUMBER
,LPNAliasINSO IN VARCHAR2
,LPNKey IN NUMBER) RETURN VARCHAR2;
PROCEDURE cad_GetSrcDwgOfEntity2 (Session_Id IN NUMBER
,LPNAliasINSO IN VARCHAR2
,LPNKey IN NUMBER);
PROCEDURE verwerk_log_clear (sessionID IN NUMBER
,projectKEY IN NUMBER);
PROCEDURE verwerk_log (logmelding IN VARCHAR
,sessionID IN NUMBER
,projectKEY IN NUMBER);
/* garandeer dat de functies de database-state en package-state niet beinvloeden
* (anders kunnen ze niet zondermeer in een view worden gebruikt)
*/
PRAGMA RESTRICT_REFERENCES (cad_f_deel_get_locatie, WNDS, WNPS);
PRAGMA RESTRICT_REFERENCES (cad_f_deel_get_verdieping, WNDS, WNPS);
PRAGMA RESTRICT_REFERENCES (cad_f_deel_get_discipline, WNDS, WNPS);
PRAGMA RESTRICT_REFERENCES (cad_f_deel_get_tekeningnaam, WNDS, WNPS);
-- PRAGMA RESTRICT_REFERENCES (cad_f_deel_get_locatie, WNDS, WNPS);
-- PRAGMA RESTRICT_REFERENCES (cad_f_deel_get_verdieping, WNDS, WNPS);
-- PRAGMA RESTRICT_REFERENCES (cad_f_deel_get_discipline, WNDS, WNPS);
-- PRAGMA RESTRICT_REFERENCES (cad_f_deel_get_tekeningnaam, WNDS, WNPS);
PRAGMA RESTRICT_REFERENCES (cad_f_ruimte_get_tekeningnaam, WNDS, WNPS);
PRAGMA RESTRICT_REFERENCES (cad_getDisciplinetekening, WNDS, WNPS);
PRAGMA RESTRICT_REFERENCES (cad_getPlattegrondtekening, WNDS, WNPS);
@@ -89,14 +99,17 @@ CREATE OR REPLACE PACKAGE BODY prj AS
,Prefix IN VARCHAR2
,PrefixKey IN NUMBER) RETURN VARCHAR2 IS
NextVolgNr VARCHAR2(10);
NextVolgNr1 VARCHAR2(10);
NextVolgNr2 VARCHAR2(10);
ReturnString VARCHAR2(30);
BEGIN
IF LPNName = 'LPN_INS_DEEL'
THEN
FOR i IN 3..10
LOOP
/* Bepaal het hoogste volgnummer voor het deel in dit project. */
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(ins_deel_omschrijving,LENGTH(ins_deel_omschrijving)-(i-1)))+1)), '***')
INTO NextVolgNr
INTO NextVolgNr1
FROM prj_v_aanwezigdeel
WHERE LTRIM(SUBSTR(ins_deel_omschrijving, LENGTH(ins_deel_omschrijving)-(i-1)))
BETWEEN '0' AND LPAD('9',i,'9')
@@ -104,7 +117,35 @@ CREATE OR REPLACE PACKAGE BODY prj AS
AND ins_alg_locatie_key = CondKey
AND prj_project_key = ProjectKey
AND ins_srtdeel_key = PrefixKey
AND ins_deel_omschrijving LIKE Prefix ||'%' ;
AND ins_deel_omschrijving LIKE Prefix ||'%';
/* 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
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
AND ins_alg_locatie_key = CondKey
AND ins_srtdeel_key = PrefixKey
AND ins_deel_omschrijving LIKE Prefix ||'%';
/* Neem de hoogste waarde van beide volgnummers. */
IF NextVolgNr1 = '***' AND NextVolgNr2 = '***'
THEN
NextVolgNr := '***';
ELSIF NextVolgNr1 = '***' AND NextVolgNr2 <> '***'
THEN
NextVolgNr := NextVolgNr2;
ELSIF NextVolgNr2 = '***' AND NextVolgNr1 <> '***'
THEN
NextVolgNr := NextVolgNr1;
ELSE
IF TO_NUMBER(NextVolgNr1) > TO_NUMBER(NextVolgNr2)
THEN
NextVolgNr := NextVolgNr1;
ELSE
NextVolgNr := NextVolgNr2;
END IF;
END IF;
IF NextVolgNr = '***'
THEN
IF i = 3
@@ -126,8 +167,9 @@ CREATE OR REPLACE PACKAGE BODY prj AS
THEN
FOR i IN 3..10
LOOP
/* Bepaal het hoogste volgnummer voor het onderdeel in dit project. */
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(ins_deel_omschrijving,LENGTH(ins_deel_omschrijving)-(i-1)))+1)), '***')
INTO NextVolgNr
INTO NextVolgNr1
FROM prj_deel
WHERE LTRIM(SUBSTR(ins_deel_omschrijving,LENGTH(ins_deel_omschrijving)-(i-1)))
BETWEEN '0' AND LPAD('9',i,'9')
@@ -138,6 +180,36 @@ CREATE OR REPLACE PACKAGE BODY prj AS
AND ins_deel_verwijder IS NULL
AND ins_deel_parent_key IS NOT NULL
AND ins_deel_omschrijving LIKE Prefix ||'%';
/* 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_deel
WHERE LTRIM(SUBSTR(ins_deel_omschrijving,LENGTH(ins_deel_omschrijving)-(i-1)))
BETWEEN '0' AND LPAD('9',i,'9')
AND ins_alg_locatie_key = CondKey
AND ins_srtdeel_key = PrefixKey
AND LENGTH(ins_deel_omschrijving) <= LENGTH(Prefix)+i
AND ins_deel_verwijder IS NULL
AND ins_deel_parent_key IS NOT NULL
AND ins_deel_omschrijving LIKE Prefix ||'%';
/* Neem de hoogste waarde van beide volgnummers. */
IF NextVolgNr1 = '***' AND NextVolgNr2 = '***'
THEN
NextVolgNr := '***';
ELSIF NextVolgNr1 = '***' AND NextVolgNr2 <> '***'
THEN
NextVolgNr := NextVolgNr2;
ELSIF NextVolgNr2 = '***' AND NextVolgNr1 <> '***'
THEN
NextVolgNr := NextVolgNr1;
ELSE
IF TO_NUMBER(NextVolgNr1) > TO_NUMBER(NextVolgNr2)
THEN
NextVolgNr := NextVolgNr1;
ELSE
NextVolgNr := NextVolgNr2;
END IF;
END IF;
IF NextVolgNr = '***'
THEN
IF i = 3
@@ -159,13 +231,39 @@ CREATE OR REPLACE PACKAGE BODY prj AS
THEN
FOR i IN 3..10
LOOP
/* Bepaal het hoogste volgnummer van ruimte in dit project. */
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(alg_ruimte_nr, LENGTH(alg_ruimte_nr)-(i-1)))+1)), '***')
INTO NextVolgNr
INTO NextVolgNr1
FROM prj_v_aanwezigruimte
WHERE LTRIM(SUBSTR(alg_ruimte_nr, LENGTH(alg_ruimte_nr)-(i-1))) BETWEEN '0' AND LPAD('9',i,'9')
AND alg_verdieping_key = CondKey
AND prj_project_key = ProjectKey
AND LENGTH(alg_ruimte_nr) <= i;
/* Bepaal het hoogste volgnummer van ruimte in de gewone tekening. */
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(alg_ruimte_nr, LENGTH(alg_ruimte_nr)-(i-1)))+1)), '***')
INTO NextVolgNr2
FROM alg_v_aanwezigruimte
WHERE LTRIM(SUBSTR(alg_ruimte_nr, LENGTH(alg_ruimte_nr)-(i-1))) BETWEEN '0' AND LPAD('9',i,'9')
AND alg_verdieping_key = CondKey
AND LENGTH(alg_ruimte_nr) <= i;
/* Neem de hoogste waarde van beide volgnummers. */
IF NextVolgNr1 = '***' AND NextVolgNr2 = '***'
THEN
NextVolgNr := '***';
ELSIF NextVolgNr1 = '***' AND NextVolgNr2 <> '***'
THEN
NextVolgNr := NextVolgNr2;
ELSIF NextVolgNr2 = '***' AND NextVolgNr1 <> '***'
THEN
NextVolgNr := NextVolgNr1;
ELSE
IF TO_NUMBER(NextVolgNr1) > TO_NUMBER(NextVolgNr2)
THEN
NextVolgNr := NextVolgNr1;
ELSE
NextVolgNr := NextVolgNr2;
END IF;
END IF;
IF NextVolgNr = '***'
THEN
IF i = 3
@@ -187,15 +285,36 @@ CREATE OR REPLACE PACKAGE BODY prj AS
THEN
/* Bepaal het volgnummer v/d toe te voegen werkplek */
BEGIN
/* Bepaal eerst het hoogste volgnummer van werkplek in dit project. */
SELECT TO_CHAR(MAX(prs_werkplek_volgnr) + 1)
INTO NextVolgNr
INTO NextVolgNr1
FROM prj_werkplek
WHERE prs_alg_ruimte_key = CondKey
AND prj_project_key = ProjectKey
AND prs_werkplek_verwijder IS NULL;
IF NextVolgNr IS NULL
/* Kijk of in de gewone tekening een werkplek voorkomt met een hoger nummer. */
SELECT TO_CHAR(MAX(prs_werkplek_volgnr) +1)
INTO NextVolgNr2
FROM prs_werkplek
WHERE prs_alg_ruimte_key = CondKey
AND prs_werkplek_verwijder IS NULL;
/* Neem de hoogste waarde van beide volgnummers. */
IF ((NextVolgNr1 IS NULL) AND (NextVolgNr2 IS NULL))
THEN
NextVolgNr := '1';
ELSIF ((NextVolgNr1 IS NULL) AND (NextVolgNr2 IS NOT NULL))
THEN
NextVolgNr := NextVolgNr2;
ELSIF ((NextVolgNr2 IS NULL) AND (NextVolgNr1 IS NOT NULL))
THEN
NextVolgNr := NextVolgNr1;
ELSE
IF TO_NUMBER(NextVolgNr1) > TO_NUMBER(NextVolgNr2)
THEN
NextVolgNr := NextVolgNr1;
ELSE
NextVolgNr := NextVolgNr2;
END IF;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
@@ -310,44 +429,63 @@ CREATE OR REPLACE PACKAGE BODY prj AS
verdieping_key NUMBER(10);
discipline_key NUMBER(10);
BEGIN
locatie_key := cad_f_deel_get_locatie(p_project,p_deel);
verdieping_key := cad_f_deel_get_verdieping(p_project,p_deel);
discipline_key := cad_f_deel_get_discipline(p_project,p_deel);
prj_err.err('> cad_f_deel_get_tekeningnaam');
locatie_key := prj.cad_f_deel_get_locatie(p_project,p_deel);
verdieping_key := prj.cad_f_deel_get_verdieping(p_project,p_deel);
discipline_key := prj.cad_f_deel_get_discipline(p_project,p_deel);
prj_err.err('project_key ='||to_char(p_project));
prj_err.err('deel_key ='||to_char(p_deel));
prj_err.err('locatie_key ='||to_char(locatie_key));
prj_err.err('verdieping_key='||to_char(verdieping_key));
prj_err.err('discipline_key='||to_char(discipline_key));
IF (locatie_key IS NOT NULL AND
discipline_key IS NOT NULL)
THEN
prj_err.err('Locatiekey en disciplinekey bestaan');
IF verdieping_key IS NOT NULL
THEN
prj_err.err('verdiepingkey bestaat');
BEGIN
SELECT cad_tekening_filenaam
INTO tekeningnaam
FROM prj_v_cad_tekening
-- FROM prj_v_cad_tekening
FROM cad_tekening
WHERE alg_locatie_key = locatie_key
AND alg_verdieping_key = verdieping_key
AND ins_discipline_key = discipline_key
AND prj_project_key IS NOT NULL
AND prj_project_key = p_project;
prj_err.err('goed');
EXCEPTION
WHEN NO_DATA_FOUND
THEN tekeningnaam := NULL;
prj_err.err('fout');
END;
ELSE
prj_err.err('verdiepingkey bestaat niet');
BEGIN
SELECT cad_tekening_filenaam
INTO tekeningnaam
FROM prj_v_cad_tekening
-- FROM prj_v_cad_tekening
FROM cad_tekening
WHERE alg_locatie_key = locatie_key
AND alg_verdieping_key IS NULL
AND ins_discipline_key = discipline_key
AND prj_project_key IS NOT NULL
AND prj_project_key = p_project;
prj_err.err('goed');
EXCEPTION
WHEN NO_DATA_FOUND
THEN tekeningnaam := NULL;
prj_err.err('fout');
END;
END IF;
ELSE
prj_err.err('locatiekey of disciplinekey bestaat niet.');
tekeningnaam := NULL;
END IF;
prj_err.err('tekeningnaam='||tekeningnaam);
prj_err.err('< cad_f_deel_get_tekeningnaam');
RETURN tekeningnaam;
END cad_f_deel_get_tekeningnaam;
@@ -646,6 +784,7 @@ CREATE OR REPLACE PACKAGE BODY prj AS
Dummy NUMBER(10);
ReturnVal BOOLEAN;
BEGIN
prj_err.err('> CheckLPNCondKey');
IF LPNCondName = 'LPN_ALG_TERREINSECTOR'
THEN
BEGIN
@@ -707,6 +846,7 @@ CREATE OR REPLACE PACKAGE BODY prj AS
ELSE
ReturnVal := FALSE;
END IF;
prj_err.err('< CheckLPNCondKey');
RETURN ReturnVal;
END CheckLPNCondKey;
@@ -730,6 +870,7 @@ CREATE OR REPLACE PACKAGE BODY prj AS
LabelSymbool VARCHAR2(256);
LabelOK BOOLEAN;
BEGIN
prj_err.err('> AddDeel');
BEGIN
SELECT prj_project_locatie_key
, prj_project_nr
@@ -825,6 +966,7 @@ CREATE OR REPLACE PACKAGE BODY prj AS
WHEN NO_DATA_FOUND
THEN LPNKey := NULL;
END;
prj_err.err('< AddDeel');
RETURN LPNKey;
END AddDeel;
@@ -846,8 +988,10 @@ CREATE OR REPLACE PACKAGE BODY prj AS
TekeningKey cad_tekening.cad_tekening_key%TYPE;
PlaatsDeel prj_deel.ins_alg_ruimte_type%TYPE;
BEGIN
prj_err.err('> cad_MaakCadTekening');
IF LPNALIAS = 'LPN_ALG_TERREINSECTOR'
THEN
prj_err.err('LPN_ALG_TERREINSECTOR');
SELECT alg_locatie_key
, alg_locatie_code
INTO LocatieKey
@@ -860,6 +1004,7 @@ CREATE OR REPLACE PACKAGE BODY prj AS
DisciplineKey := NULL;
ELSIF LPNALIAS = 'LPN_ALG_GEBOUW'
THEN
prj_err.err('LPN_ALG_GEBOUW');
SELECT alg_locatie_key
, alg_locatie_code
INTO LocatieKey
@@ -872,6 +1017,7 @@ CREATE OR REPLACE PACKAGE BODY prj AS
DisciplineKey := NULL;
ELSIF LPNALIAS = 'LPN_ALG_RUIMTE'
THEN
prj_err.err('LPN_ALG_RUIMTE');
SELECT G.alg_locatie_key
, V.alg_verdieping_key
INTO LocatieKey
@@ -888,6 +1034,7 @@ CREATE OR REPLACE PACKAGE BODY prj AS
DisciplineKey := NULL;
ELSIF LPNALIAS = 'LPN_INS_DEEL'
THEN
prj_err.err('LPN_INS_DEEL');
SELECT ins_alg_locatie_key
, ins_alg_ruimte_type
INTO LocatieKey
@@ -911,6 +1058,7 @@ CREATE OR REPLACE PACKAGE BODY prj AS
END IF;
ELSIF LPNALIAS = 'LPN_PRS_WERKPLEK'
THEN
prj_err.err('LPN_PRS_WERKPLEK');
SELECT alg_verdieping_key
INTO VerdiepingKey
FROM prj_ruimte R
@@ -927,11 +1075,18 @@ CREATE OR REPLACE PACKAGE BODY prj AS
LocatieCode := cad.Bepaal_LocatieCode(LocatieKey);
DisciplineKey := NULL;
END IF;
prj_err.err('Voor insert in cad_tekening');
SELECT cad_s_cad_tekening_key.NEXTVAL
INTO TekeningKey
FROM DUAL;
TekeningNaam := TO_CHAR(TekeningKey)||'.DWG';
prj_err.err('TekeningKey ='||to_char(TekeningKey ));
prj_err.err('LocatieKey ='||to_char(LocatieKey ));
prj_err.err('VerdiepingKey='||to_char(VerdiepingKey));
prj_err.err('DisciplineKey='||to_char(DisciplineKey));
prj_err.err('TekeningNaam ='||TekeningNaam );
prj_err.err('SrtTekening ='||SrtTekening );
prj_err.err('LPNProjectKey='||to_char(LPNProjectKey));
INSERT INTO cad_tekening
( cad_tekening_key
, alg_locatie_key
@@ -947,17 +1102,22 @@ CREATE OR REPLACE PACKAGE BODY prj AS
, TekeningNaam
, SrtTekening
, LPNProjectKey);
prj_err.err('Voor commit');
COMMIT;
prj_err.err('Na commit');
SELECT prj_project_nr
INTO ProjectCode
FROM prj_project
WHERE prj_project_key = LPNProjectKey;
prj_err.err('Projectcode='||projectcode);
Tekeningnaam := ProjectCode ||'\'|| TekeningNaam;
prj_err.err('Tekeningnaam='||ProjectCode ||'\'|| TekeningNaam);
prj_err.err('< cad_MaakCadTekening');
RETURN TekeningNaam;
END cad_MaakCadTekening;
/* cad_GetSrcDwgOfEntity
/* prj.cad_GetSrcDwgOfEntity
**
** Bepaal de pad\tekeningnaam die behoort bij object, werkplek, ruimte,
** gebouw of terreinsector
@@ -972,6 +1132,7 @@ CREATE OR REPLACE PACKAGE BODY prj AS
ProjectKey prj_project.prj_project_key%TYPE;
VerdiepingKey alg_verdieping.alg_verdieping_key%TYPE;
BEGIN
prj_err.err('> cad_GetSrcDwgOfEntity');
ProjectKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'PROJECTKEY');
SELECT prj_project_locatie_key
, prj_project_nr
@@ -982,43 +1143,65 @@ CREATE OR REPLACE PACKAGE BODY prj AS
IF LPNAliasINSO = 'LPN_INS_DEEL'
THEN
prj_err.err('LPN_INS_DEEL');
/* Bepaal Disciplinetekening */
SrcDwg := cad_f_deel_get_tekeningnaam(LPNKey,ProjectKey);
SrcDwg := cad_f_deel_get_tekeningnaam(ProjectKey,LPNKey);
IF SrcDwg IS NULL
THEN
prj_err.err('1a');
SrcDwg := cad_MaakCadTekening('LPN_INS_DEEL', LPNKey, 'D',ProjectKey);
prj_err.err('1b');
ELSE
prj_err.err('2');
SrcDwg := ProjectCode ||'\'|| SrcDwg;
END IF;
prj_err.err('- '||srcdwg);
ELSIF LPNAliasINSO = 'LPN_ALG_TERREINSECTOR'
THEN
prj_err.err('LPN_ALG_TERREINSECTOR');
SrcDwg := cad_getContourtekening(LocatieKey,ProjectKey);
prj_err.err('a');
IF SrcDwg IS NULL
THEN
prj_err.err('1');
SrcDwg := cad_MaakCadTekening('LPN_ALG_TERREINSECTOR', LPNKey, 'C',ProjectKey);
prj_err.err('1a');
END IF;
prj_err.err('- '||srcdwg);
ELSIF LPNAliasINSO = 'LPN_ALG_GEBOUW'
THEN
prj_err.err('LPN_ALG_GEBOUW');
SrcDwg := cad_getContourtekening(LocatieKey,ProjectKey);
prj_err.err('a');
IF SrcDwg IS NULL
THEN
prj_err.err('1');
SrcDwg := cad_MaakCadTekening('LPN_ALG_GEBOUW', LPNKey, 'C',ProjectKey);
prj_err.err('1a');
END IF;
prj_err.err('- '||srcdwg);
ELSIF LPNAliasINSO = 'LPN_ALG_RUIMTE'
THEN
prj_err.err('LPN_ALG_RUIMTE');
SELECT alg_verdieping_key
INTO VerdiepingKey
FROM prj_ruimte
WHERE alg_ruimte_verwijder IS NULL
AND prj_project_key = ProjectKey
AND alg_ruimte_key = LPNKey;
prj_err.err('a');
SrcDwg := cad_getVerdiepCntr_tekening(Locatiekey,ProjectKey,Verdiepingkey);
prj_err.err('b');
IF SrcDwg IS NULL
THEN
prj_err.err('1a');
SrcDwg := cad_MaakCadTekening('LPN_ALG_RUIMTE', LPNKey, 'C',ProjectKey);
prj_err.err('1b');
END IF;
prj_err.err('- '||srcdwg);
ELSIF LPNAliasINSO = 'LPN_PRS_WERKPLEK'
THEN
prj_err.err('LPN_PRS_WERKPLEK');
/* Contourtekening verdieping */
SELECT alg_verdieping_key
INTO VerdiepingKey
@@ -1029,21 +1212,71 @@ CREATE OR REPLACE PACKAGE BODY prj AS
FROM prj_werkplek
WHERE prs_werkplek_key = LPNKey
AND prj_project_key = ProjectKey);
prj_err.err('a');
SrcDwg := cad_getVerdiepCntr_tekening(LocatieKey,ProjectKey,VerdiepingKey);
prj_err.err('b');
IF SrcDwg IS NULL
THEN
prj_err.err('1a');
SrcDwg := cad_MaakCadTekening('LPN_PRS_WERKPLEK', LPNKey, 'C',Projectkey);
prj_err.err('1b');
END IF;
prj_err.err('- '||srcdwg);
ELSE
/* Komt hier in de toekomst een ERROR-melding ? */
prj_err.err('lpnaliasINSO niet in deel, terrein, ruimte, werkplek');
NULL;
END IF;
prj_err.err('variabelen voor terugkeren naar lisp');
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'INFOS', 1, SrcDwg , 1);
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC' , 1, 'AUTOCAD', 1);
prj_err.err('< cad_GetSrcDwgOfEntity');
RETURN SrcDwg;
END cad_GetSrcDwgOfEntity;
/* prj.cad_GetSrcDwgOfEntity2
**
** Roep de functie cad_GetSrcDwgOfEntity aan voor LNP_INS_DEEL, LPN_ALG_TERREINSECTOR, LPN_ALG_GEBOUW,
** LPN_ALG_RUIMTE of LPN_PRS_WERKPLEK. In elk geval wordt INFOS en SYNC weer in de struct gezet.
** Hiermee kan de functionaliteit met zowel een functie als een procedure gebruikt worden.
*/
PROCEDURE cad_GetSrcDwgOfEntity2(Session_Id IN NUMBER
,LPNAliasINSO IN VARCHAR2
,LPNKey IN NUMBER) IS
SrcDwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
BEGIN
prj_err.err('> cad_GetSrcDwgOfEntity2');
IF LPNAliasINSO = 'LPN_INS_DEEL'
THEN
prj_err.err(' LPNAliasINSO = LPN_INS_DEEL');
SrcDwg := prj.cad_GetSrcDwgOfEntity(Session_Id, 'LPN_INS_DEEL', LPNKey);
ELSIF LPNAliasINSO = 'LPN_ALG_TERREINSECTOR'
THEN
prj_err.err(' LPNAliasINSO = LPN_ALG_TERREINSECTOR');
SrcDwg := prj.cad_GetSrcDwgOfEntity(Session_Id, 'LPN_ALG_TERREINSECTOR', LPNKey);
ELSIF LPNAliasINSO = 'LPN_ALG_GEBOUW'
THEN
prj_err.err(' LPNAliasINSO = LPN_ALG_GEBOUW');
SrcDwg := prj.cad_GetSrcDwgOfEntity(Session_Id,'LPN_ALG_GEBOUW', LPNKey);
ELSIF LPNAliasINSO = 'LPN_ALG_RUIMTE'
THEN
prj_err.err(' LPNAliasINSO = LPN_ALG_RUIMTE');
SrcDwg := prj.cad_GetSrcDwgOfEntity(Session_Id, 'LPN_ALG_RUIMTE', LPNKey);
ELSIF LPNAliasINSO = 'LPN_PRS_WERKPLEK'
THEN
prj_err.err(' LPNAliasINSO = LPN_PRS_WERKPLEK');
SrcDwg := prj.cad_GetSrcDwgOfEntity(Session_Id, 'LPN_PRS_WERKPLEK', LPNKey);
ELSE
prj_err.err(' LPNAliasINSO = niet goed gedefinieerd: '|| LPNAliasINSO);
NULL;
END IF;
prj_err.err('voorbereiden op terugkeer naar lisp.');
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'INFOS', 1, srcdwg , 1);
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC' , 1, 'AUTOCAD', 1);
prj_err.err('< cad_GetSrcDwgOfEntity2');
END cad_GetSrcDwgOfEntity2;
/* cad_SLNKPreDraw
/* prj.cad_SLNKPreDraw
**
*/
PROCEDURE cad_SLNKPreDraw(Session_Id NUMBER) IS
@@ -1091,14 +1324,17 @@ prj_err.err('> cad_SLNKPreDraw');
END IF;
IF LPNName = 'LPN_INS_DEEL'
THEN
prj_err.err('LPN_INS_DEEL');
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_INS_DEEL', 1);
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA' , SeqNr, LPNKey , 1);
prj_err.err('Bepaal soortdeelkey');
/* Bepaal soortdeelkey */
SELECT ins_srtdeel_key
INTO SrtdeelKey
FROM prj_deel
WHERE ins_deel_key = LPNKey
AND prj_project_key = LPNProjectKey;
prj_err.err('Lees de grafische gegevens');
/* Lees de grafische gegevens uit tabel ins_srtdeel */
SELECT ins_srtdeel_cadlaycolor
, ins_srtdeel_cadlaylinetype
@@ -1114,6 +1350,7 @@ prj_err.err('> cad_SLNKPreDraw');
, Dimensie
FROM ins_srtdeel
WHERE ins_srtdeel_key = SrtdeelKey;
prj_err.err('schrijf de grafische gegevens');
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'DIMENSION' , SeqNr, Dimensie , 1);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA' , SeqNr, 'INS_DEEL_KEY', 1);
cad.cad_SLNKstructinsertVALINT(Session_Id,'LAYERCOLOR' , SeqNr, LayerColor , 1);
@@ -1129,7 +1366,8 @@ prj_err.err('> cad_SLNKPreDraw');
, KeyDeel
FROM prj_deel
WHERE ins_deel_key = LPNKey
AND prj_project_key = LPNProjectKey;
AND prj_project_key = LPNProjectKey;
prj_err.err('Plaatsdeel, keydeel='|| plaatsdeel ||','|| to_char(keydeel));
IF PlaatsDeel = 'T'
THEN /* Terreinsector */
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_TERREINSECTOR', 1);
@@ -1148,6 +1386,7 @@ prj_err.err('> cad_SLNKPreDraw');
ELSE
LPNKeyCond := KeyDeel;
END IF;
prj_err.err('lpnkeycond='||to_char(keydeel));
cad.cad_SLNKstructinsertVALINT(Session_Id,'LPNKEYCONDA', SeqNr, LPNKeyCond, 1);
SELECT ins_alg_locatie_key
INTO LocatieKey
@@ -1156,7 +1395,9 @@ prj_err.err('> cad_SLNKPreDraw');
AND prj_project_key = LPNProjectKey;
Locatiecode := cad.bepaal_locatiecode(LocatieKey);
ProjectCode := prj.bepaal_projectcode(LPNProjectKey);
prj_err.err('code locatie,project:'||locatiecode||projectcode);
SrcDwg := prj.cad_GetSrcDwgOfEntity(Session_Id, 'LPN_INS_DEEL', LPNKey);
prj_err.err('srcdwg='||srcdwg);
/* Bepaal LoadDwg */
IF PlaatsDeel = 'T'
THEN /* Terreinsector */
@@ -1169,6 +1410,7 @@ prj_err.err('> cad_SLNKPreDraw');
AND prj_project_key = LPNProjectKey;
LoadDwg := prj.cad_getVerdiepPlgrnd_tekening(LocatieKey, LPNProjectKey, Verdiepingkey);
END IF;
prj_err.err('loaddwg='||loaddwg);
IF LoadDwg IS NULL
THEN
LoadDwg := cad_MaakCadTekening('LPN_INS_DEEL', LPNKey, 'P', LPNProjectKey);
@@ -1182,6 +1424,7 @@ prj_err.err('> cad_SLNKPreDraw');
/* Contourtekening verdieping */
AttachDwg1 := prj.cad_getVerdiepCntr_tekening(LocatieKey, LPNProjectKey,Verdiepingkey);
END IF;
prj_err.err('attatchdwg='||attachdwg1);
IF AttachDwg1 IS NULL
THEN
AttachDwg1 := cad_MaakCadTekening('LPN_INS_DEEL', LPNKey, 'C', LPNProjectKey);
@@ -1191,8 +1434,10 @@ prj_err.err('> cad_SLNKPreDraw');
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG' , SeqNr, LoadDwg , 1);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, AttachDwg1, 1);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, Attachdwg2, 0);
prj_err.err('voor plaatsdee=T');
IF PlaatsDeel = 'T'
THEN
prj_err.err('Voeg tekeningen zonder verdieping in struct toe.');
DECLARE
CURSOR D_tekeningen IS
SELECT cad_tekening_filenaam
@@ -1204,6 +1449,7 @@ prj_err.err('> cad_SLNKPreDraw');
BEGIN
FOR TekenRec IN D_tekeningen
LOOP
prj_err.err('- '||ProjectCode ||'\'|| Tekenrec.cad_tekening_filenaam);
cad.cad_SLNKstructinsertVALSTR(Session_Id
,'ATTACHDWG'
,SeqNr
@@ -1212,6 +1458,7 @@ prj_err.err('> cad_SLNKPreDraw');
END LOOP;
END;
ELSE
prj_err.err('Voeg tekeningen met verdieping in struct toe.');
DECLARE
CURSOR D_tekeningen IS
SELECT cad_tekening_filenaam
@@ -1223,6 +1470,7 @@ prj_err.err('> cad_SLNKPreDraw');
BEGIN
FOR TekenRec IN D_tekeningen
LOOP
prj_err.err('- '||ProjectCode ||'\'|| Tekenrec.cad_tekening_filenaam);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG'
,SeqNr
,ProjectCode ||'\'|| Tekenrec.cad_tekening_filenaam
@@ -1230,13 +1478,16 @@ prj_err.err('> cad_SLNKPreDraw');
END LOOP;
END;
END IF;
prj_err.err('Na plaatsdeel=T');
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABELCOL', SeqNr, 'INS_DEEL_CADLABEL', 1);
SELECT ins_deel_omschrijving
INTO Omschrijving
FROM prj_deel
WHERE ins_deel_key = LPNKey
AND prj_project_key = LPNProjectKey;
prj_err.err('omschrijving='||omschrijving);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, Omschrijving, 1);
prj_err.err('einde lpn_ins_deel');
ELSIF LPNName = 'LPN_ALG_GEBOUW'
THEN
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_ALG_GEBOUW', 1);
@@ -1735,6 +1986,7 @@ prj_err.err('> cad_SLNKPrePostDimensie0');
LPNProjectKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'PROJECTKEY');
IF LPNCondKey IS NOT NULL
THEN
prj_err.err('lpncondkey is not null');
SELECT cad_symbool_symbool
, cad_symbool_layer
INTO Symbool
@@ -1743,12 +1995,15 @@ prj_err.err('> cad_SLNKPrePostDimensie0');
WHERE cad_symbool_entry = 'PRS_WERKPLEK';
IF BlockNaam = Symbool -- i.o.v. mb AND LayerNaam = SymboolLayer
THEN
prj_err.err('Is werkplek');
/* Het is een werkplek - Check eerst of LPNCondkey wel ruimtekey is */
IF LPNCondName = 'LPN_ALG_RUIMTE'
THEN
prj_err.err('lpncondname=LPN_ALG_RUIMTE');
LPNCondKeyOK := CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
IF NOT LPNCondKeyOK
THEN
prj_err.err('lpncondkey 1');
SeqNr := 2;
LOOP
LPNCondName := cad.cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', SeqNr);
@@ -1764,11 +2019,14 @@ prj_err.err('> cad_SLNKPrePostDimensie0');
END LOOP;
END IF;
ELSE
prj_err.err('lpncondkey 2');
LPNCondKeyOK := FALSE;
END IF;
IF LPNCondKeyOK
THEN
prj_err.err('lpncondkey OK');
LabelSymbool := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LABELO');
prj_err.err('LabelSymbool='||LabelSymbool);
LabelOK := FALSE;
IF LabelSymbool IS NOT NULL
THEN
@@ -1783,21 +2041,31 @@ prj_err.err('> cad_SLNKPrePostDimensie0');
AND prs_werkplek_verwijder IS NULL
AND prs_werkplek_volgnr = TO_NUMBER(LabelSymbool);
LabelOK := FALSE;
prj_err.err('Labelsymbool bestaat al');
EXCEPTION
WHEN NO_DATA_FOUND
THEN /* Label bestaat nog niet */
LabelOK := TRUE;
WerkplekNr := TO_NUMBER(LabelSymbool);
Omschrijving := LabelSymbool;
prj_err.err('LabelSymbool is nieuw');
END;
ELSE
LabelOK := FALSE;
END IF;
IF NOT LabelOK
THEN
prj_err.err('label NOT OK');
/* Bepaal het volgnummer v/d toe te voegen werkplek */
Omschrijving := prj.prj_f_fac_get_description('LPN_PRS_WERKPLEK', LPNCondKey, LPNProjectKey, NULL, NULL);
WerkplekNr := to_number(substr(Omschrijving,instr(Omschrijving,'-',1)+1));
prj_err.err('label wordt '||omschrijving);
END IF;
prj_err.err('insert');
prj_err.err('volgnr '|| to_char(WerkplekNr));
prj_err.err('omschr '|| Omschrijving);
prj_err.err('ruimte '|| to_char(lpncondkey));
prj_err.err('project '|| to_char(lpnprojectkey));
INSERT INTO prj_werkplek
( prs_werkplek_volgnr
, prs_werkplek_omschrijving
@@ -1809,6 +2077,8 @@ prj_err.err('> cad_SLNKPrePostDimensie0');
, LPNCondKey
, SYSDATE
, LPNProjectKey);
prj_err.err('commit');
COMMIT;
RecordAdded := TRUE;
/* Bepaal sleutel van zojuist toegevoegde werkplek i.v.m. aanroep Predraw */
LPNName := 'LPN_PRS_WERKPLEK';
@@ -1824,11 +2094,14 @@ prj_err.err('> cad_SLNKPrePostDimensie0');
WHEN NO_DATA_FOUND
THEN LPNKey := NULL;
END;
prj_err.err('Key bij werkplek:'||to_char(lpnkey));
ELSE
RecordAdded := FALSE;
prj_err.err('Geen werkplek toegevoegd');
END IF;
ELSE
/* Het is geen WERKPLEK - check of het een srtdeel is */
prj_err.err('Het is geen werkplek');
SELECT MIN(ins_srtdeel_key)
INTO SrtDeelKey
FROM ins_srtdeel
@@ -1837,9 +2110,11 @@ prj_err.err('> cad_SLNKPrePostDimensie0');
AND UPPER(ins_srtdeel_acadsymbol) = UPPER(BlockNaam);
IF SrtDeelKey IS NOT NULL
THEN
prj_err.err('Het is een srtdeel, dus voeg een deel toe');
/* Het is een srtdeel, dus voeg een deel toe */
IF LPNCondName IN ('LPN_ALG_TERREINSECTOR','LPN_ALG_RUIMTE','LPN_PRS_WERKPLEK')
THEN
prj_err.err('lpncondname in terrein, ruimte, werkplek');
LPNCondKeyOK := CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
IF NOT LPNCondKeyOK
THEN
@@ -1860,6 +2135,7 @@ prj_err.err('> cad_SLNKPrePostDimensie0');
END LOOP;
END IF;
ELSE
prj_err.err('lpncondname niet terrein, ruimte, werkplek');
LPNCondKeyOK := FALSE;
END IF;
IF LPNCondKeyOK
@@ -1871,6 +2147,7 @@ prj_err.err('> cad_SLNKPrePostDimensie0');
RecordAdded:= FALSE;
END IF;
ELSE
prj_err.err('Het is geen srtdeel, dus voeg een deel toe');
SELECT MIN(ins_srtdeel_key)
INTO SrtDeelKey
FROM ins_srtdeel
@@ -1878,12 +2155,15 @@ prj_err.err('> cad_SLNKPrePostDimensie0');
AND UPPER(ins_srtdeel_acadsymbol) = UPPER(BlockNaam);
IF SrtDeelKey IS NOT NULL
THEN
prj_err.err('Het is een srtdeel');
/* Het is een srtdeel */
IF LPNCondName IN ('LPN_ALG_TERREINSECTOR','LPN_ALG_RUIMTE','LPN_PRS_WERKPLEK')
THEN
prj_err.err('lpncondname in terrein, ruimte, werkplek');
LPNCondKeyOK := CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
IF NOT LPNCondKeyOK
THEN
prj_err.err('lpncondkey false 1');
Seqnr := 2;
LOOP
LPNCondName := cad.cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', Seqnr);
@@ -1901,31 +2181,39 @@ prj_err.err('> cad_SLNKPrePostDimensie0');
END LOOP;
END IF;
ELSE
prj_err.err('lpncondkey false 2');
LPNCondKeyOK := FALSE;
END IF;
IF LPNCondKeyOK
THEN
prj_err.err('lpncondkeyOK TRUE');
LPNName := 'LPN_INS_DEEL';
LPNKey := AddDeel(Session_id,SrtdeelKey, LPNCondName, LPNCondKey, LPNProjectKey);
RecordAdded:= TRUE;
ELSE
prj_err.err('lpncondkeyOK FALSE');
RecordAdded:= FALSE;
END IF;
ELSE
prj_err.err('Het is geen srtdeel');
RecordAdded:= FALSE;
END IF;
END IF;
END IF;
else
prj_err.err('lpncondkey is null');
END IF;
cad.cad_SLNKSTRUCTclear(Session_Id);
IF RecordAdded
THEN
prj_err.err('toevoegen aan struct');
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASPREDRAW', 1, LPNName , 1);
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYPREDRAW' , 1, LPNKey , 1);
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'PROJECTKEY' , 1, LPNProjectKey, 1);
prj.cad_SLNKPreDraw(Session_Id);
ELSE
prj_err.err('doorgaan');
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
END IF;
prj_err.err('< cad_SLNKPrePostDimensie0');
@@ -2315,7 +2603,8 @@ prj_err.err('25: '|| to_char(lpnprojectkey)||'-'||to_char(verdiepingkey)||'-'||r
, alg_ruimte_nr)
VALUES(LPNProjectKey
, VerdiepingKey
, RuimteNr);
, RuimteNr);
COMMIT;
RecordAdded := TRUE;
/* Bepaal sleutel van zojuist toegevoegde ruimte i.v.m. aanroep Predraw */
LPNName := 'LPN_ALG_RUIMTE';
@@ -2472,6 +2761,7 @@ prj_err.err('< cad_SLNKPrePostDraw');
DoDeelUpdate BOOLEAN;
LinkToRoom NUMBER;
BEGIN
prj_err.err('> cad_SLNKPostDraw');
LPNName := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASINSO');
LPNKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYINSO');
LPNCondName := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
@@ -2604,6 +2894,7 @@ prj_err.err('< cad_SLNKPrePostDraw');
END IF;
COMMIT;
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1); /* ORACLE is klaar */
prj_err.err('< cad_SLNKPostDraw');
END cad_SLNKpostdraw;
/* prj.cad_slnkpostErase
@@ -2619,6 +2910,7 @@ prj_err.err('< cad_SLNKPrePostDraw');
Eerste BOOLEAN;
WerkPlekFound BOOLEAN;
BEGIN
prj_err.err('> cad_SLNKPostErase');
CheckDatum := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'DATE');
Datum := TO_DATE(CheckDatum, 'DD-MM-YYYY');
LPNName := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASDELO');
@@ -2626,6 +2918,7 @@ prj_err.err('< cad_SLNKPrePostDraw');
LPNProjectKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'PROJECTKEY');
IF LPNName = 'LPN_INS_DEEL'
THEN
prj_err.err('verwijder LPN_INS_DEEL');
UPDATE prj_deel
SET ins_deel_verwijder = SYSDATE
, ins_deel_getekend = NULL /* It's CAD */
@@ -2638,6 +2931,7 @@ prj_err.err('< cad_SLNKPrePostDraw');
COMMIT;
ELSIF LPNName = 'LPN_ALG_GEBOUW'
THEN
prj_err.err('verwijder LPN_ALG_GEBOUW');
UPDATE alg_gebouw
SET alg_gebouw_verwijder = SYSDATE
, alg_gebouw_getekend = NULL /* It's CAD */
@@ -2645,10 +2939,12 @@ prj_err.err('< cad_SLNKPrePostDraw');
COMMIT;
ELSIF LPNName = 'LPN_ALG_RUIMTE'
THEN
prj_err.err('verwijder LPN_ALG_RUIMTE');
/* Geef aan AutoCAD de sleutels door van de werkplekken die zich in de
** te verwijderen ruimte bevinden.
*/
BEGIN
prj_err.err('zoek werkplekken');
DECLARE
CURSOR RuimteWerkplek IS
SELECT prs_werkplek_key
@@ -2677,6 +2973,7 @@ prj_err.err('< cad_SLNKPrePostDraw');
** de delen die zich op werkplekken bevinden binnen de te verwijderen ruimte...
*/
BEGIN
prj_err.err('zoek objecten');
DECLARE
CURSOR RuimteDeel IS
SELECT ins_deel_key
@@ -2707,14 +3004,18 @@ prj_err.err('< cad_SLNKPrePostDraw');
END LOOP;
END;
END;
prj_err.err('zet verwijderdatum ruimte, project:'||to_char(lpnkey)||'-'||to_char(lpnprojectkey));
UPDATE prj_ruimte
SET alg_ruimte_verwijder = SYSDATE
, alg_ruimte_getekend = NULL /* It's CAD */
WHERE alg_ruimte_key = LPNKey
AND prj_project_key = LPNProjectKey;
prj_err.err('voor commit');
COMMIT;
prj_err.err('na commit');
ELSIF LPNName = 'LPN_PRS_WERKPLEK'
THEN
prj_err.err('verwijder LPN_PRS_WERKPLEK');
/* Geef aan AutoCAD de sleutels door van de delen die zich op
** de te verwijderen werkplek bevinden...
*/
@@ -2751,6 +3052,7 @@ prj_err.err('< cad_SLNKPrePostDraw');
COMMIT;
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR'
THEN
prj_err.err('verwijder LPN_ALG_TERREINSECTOR');
DECLARE
CURSOR TerreinDeel IS
SELECT ins_deel_key
@@ -2780,6 +3082,7 @@ prj_err.err('< cad_SLNKPrePostDraw');
WHERE alg_terreinsector_key = LPNKey;
COMMIT;
END IF;
prj_err.err('< cad_SLNKPostErase');
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
END cad_SLNKpostErase;
@@ -2811,6 +3114,7 @@ prj_err.err('< cad_SLNKPrePostDraw');
LPNCondKeyOK BOOLEAN:= FALSE;
DoDeelUpdate BOOLEAN;
BEGIN
prj_err.err('> cad_SLNKPostModify');
LPNName := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASMODO');
LPNKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYMODO');
LPNProjectKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'PROJECTKEY');
@@ -3033,6 +3337,7 @@ prj_err.err('< cad_SLNKPrePostDraw');
END IF;
COMMIT;
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
prj_err.err('< cad_SLNKPostModify');
END cad_SLNKpostModify;
/* prj.cad_SLNKDelenbijWerkplek
@@ -3051,6 +3356,7 @@ prj_err.err('< cad_SLNKPrePostDraw');
AND prj_project_key = LPNProjectKey
AND ins_deel_verwijder IS NULL;
BEGIN
prj_err.err('> cad_SLNKDelenBijWerkplek');
LPNKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'INFOI');
LPNProjectKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'PROJECTKEY');
BEGIN
@@ -3070,8 +3376,54 @@ prj_err.err('< cad_SLNKPrePostDraw');
END;
END;
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
prj_err.err('< cad_SLNKDelenBijWerkplek');
END cad_SLNKDelenbijWerkplek;
/* prj.verwerk_log_clear
**
** Maak de tabel voor verwerkings log leeg.
*/
PROCEDURE verwerk_log_clear(sessionID IN NUMBER
,projectKEY IN NUMBER) IS
BEGIN
BEGIN
DELETE
FROM prj_verwerk_log
WHERE prj_project_key = projectKEY
AND prj_session_id = sessionID;
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;
COMMIT;
END;
/* prj.verwerk_log
**
** Schrijf een logmelding in de verwerkings tabel.
*/
PROCEDURE verwerk_log(logmelding IN VARCHAR
,sessionID IN NUMBER
,projectKEY IN NUMBER) IS
BEGIN
BEGIN
INSERT INTO prj_verwerk_log
( prj_project_key
, prj_log
, prj_session_id)
VALUES(projectKEY
, logmelding
, sessionID);
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;
COMMIT;
END;
END prj;
/

View File

@@ -4,6 +4,7 @@
/* Revisie:
**
** 27-08-1999 EGR prj_t_prj_ruimte_b_iu werkend gemaakt voor gecascadeerd verwijderen van ruimte, werkplek, object.
** 25-08-1999 RD Trigger <prj_t_prj_verwerk_log_B_IU> toegevoegd.
** 23-07-1999 EGR LOG verwijderd en ins_deel. gewijzigd in prj_deel. .
** 22-07-1999 EGR prj_t_prj_ruimte_B_IU, prj_t_prj_deel_b_iu, prj_t_prj_deel_s_b_iu,
@@ -42,28 +43,24 @@ BEGIN
CHECK_CADMUTATIE(alg_ruimte_verwijder
,alg_ruimte_getekend
,'alg_m245');
/*
** Als er een INV-deel bestaat in de te verwijderen ruimte
** dan mag de ruimte niet verwijderd worden.
*/
IF :new.alg_ruimte_verwijder IS NOT NULL
IF :old.alg_ruimte_key IS NOT NULL
AND :new.alg_ruimte_verwijder IS NULL
THEN
DECLARE
dummy CHAR;
BEGIN
SELECT 'x'
INTO dummy
FROM prj_deel
WHERE ins_alg_ruimte_key = :new.alg_ruimte_key
FROM prj_werkplek
WHERE prs_alg_ruimte_key = :new.alg_ruimte_key
AND prj_project_key = :new.prj_project_key
AND ins_alg_ruimte_type = 'R'
AND ins_deel_verwijder IS NULL;
APPLICATION_ERROR(-20000, 'prs_m055');
AND prs_werkplek_verwijder IS NULL;
APPLICATION_ERROR(-20000, 'prs_m034');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20000, 'prs_m055');
THEN APPLICATION_ERROR(-20000, 'prs_m034');
END;
END IF;
/*
@@ -76,6 +73,7 @@ BEGIN
THEN
UPDATE prj_werkplek
SET prs_werkplek_verwijder = :new.alg_ruimte_verwijder
, prs_werkplek_getekend = :new.alg_ruimte_getekend
WHERE prj_werkplek.prs_alg_ruimte_key = :new.alg_ruimte_key
AND prj_werkplek.prj_project_key = :new.prj_project_key;
END IF;