Diverse aanpassingen grafisch gedeelte.

svn path=/Database/trunk/; revision=6559
This commit is contained in:
Bert in het Veld
1999-03-08 10:39:12 +00:00
parent d7825829d6
commit 34dd835725

View File

@@ -3,10 +3,13 @@
/* REVISIONS:
*
* --- 01.43 ---
* 08-03-1999 BIV #2278 - Entry PERIMETER toegevoegd voor update van Omtrek in terreinsector,gebouw en ruimte.
* 03-03-1999 BIV #2278 - Procedures cad_slnkPredraw,cad_SLNKModify,cad_SLNKPostErase, cad_SLNKPostDraw uitgebreid
* i.v.m. LPN_INS_DEEL t.b.v. Facilitor 3.
* 01-03-1999 BIV #2278 - Functies cad_getVerdiepPlgrnd_tekening en cad_getVerdiepCntr_tekening toegevoegd
* t.b.v. Facilitor 3, het grafisch plaatsen van een ruimte.
* 26-02-1999 BIV #2278 - Procedures cad_slnkPredraw,cad_SLNKModify,cad_SLNKPostErase, cad_SLNKPostDraw aangepast
* t.b.v. Facilitor 3.
* i.v.m. LPN_ALG_TERREINSECTOR en LPN_ALG_RUIMTE t.b.v. Facilitor 3.
* --- 01.42 ---
* --- 01.41 ---
* 09-12-1998 BIV Functies cad_getDisciplinetekening, cad_getPlattegrondtekening, cad_getContourtekening toegevoegd.
@@ -104,17 +107,43 @@ CREATE OR REPLACE PACKAGE BODY cad AS
END cad_f_deel_get_locatie;
FUNCTION cad_f_deel_get_verdieping(Key IN NUMBER) RETURN NUMBER IS
verdieping_key NUMBER(10);
verdieping_key NUMBER(10);
PlaatsDeel VARCHAR2(1);
WerkplekKey NUMBER(10);
BEGIN
SELECT ALG_G.alg_verdieping_key
INTO verdieping_key
FROM alg_ruimte ALG_G, ins_deel INS_D /* de tabel! */
WHERE INS_D.ins_deel_key = Key
AND INS_D.ins_alg_ruimte_key = ALG_G.alg_ruimte_key;
RETURN verdieping_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN NULL;
/* Functie aangepast t.b.v. Facilitor 3 i.v.m. mogelijkheid deel te plaatsen op een werkplek */
SELECT ins_alg_ruimte_type INTO PlaatsDeel
FROM ins_deel
WHERE ins_deel_key = Key;
IF PlaatsDeel = 'W' THEN
SELECT ins_alg_ruimte_key INTO WerkplekKey
FROM ins_deel
WHERE ins_deel_key = Key;
/* Bepaal ruimte waarin werkplek zich bevindt en vervolgens de verdieping */
BEGIN
SELECT alg_verdieping_key INTO verdieping_key
FROM alg_ruimte
WHERE alg_ruimte_key =
(SELECT prs_alg_ruimte_key FROM prs_werkplek
WHERE prs_werkplek_key = WerkplekKey);
RETURN verdieping_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN NULL;
END;
ELSE
BEGIN
SELECT ALG_G.alg_verdieping_key
INTO verdieping_key
FROM alg_ruimte ALG_G, ins_deel INS_D /* de tabel! */
WHERE INS_D.ins_deel_key = Key
AND INS_D.ins_alg_ruimte_key = ALG_G.alg_ruimte_key;
RETURN verdieping_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN NULL;
END;
END IF;
END cad_f_deel_get_verdieping;
FUNCTION cad_f_deel_get_discipline(Key IN NUMBER) RETURN NUMBER IS
@@ -256,6 +285,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
END;
END cad_getDisciplinetekening;
FUNCTION cad_getPlattegrondtekening(Locatie_key IN NUMBER)RETURN VARCHAR2 IS
locatie_code VARCHAR2(5);
tekening VARCHAR2(256);
@@ -781,7 +811,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
Return SymboolNaam;
END cad_GETBoringSymbolName;
/* Eenmalige procedure - kan na conversie verwijderd worden */
/* Eenmalige procedure t.b.v. Grafische conversie BIS */
PROCEDURE cad_SLNKConvPreDraw(Session_Id NUMBER, loc_x_coord NUMBER, loc_y_coord NUMBER) IS
LPNName VARCHAR2(128);
LPNKey NUMBER(10);
@@ -840,26 +870,68 @@ CREATE OR REPLACE PACKAGE BODY cad AS
END cad_SLNKConvPreDraw;
#endif // BIS
FUNCTION CheckLPNKey(LPNCondName IN VARCHAR2, LPNCondKey IN NUMBER) RETURN BOOLEAN IS
Dummy NUMBER(10);
BEGIN
IF LPNCondName = 'LPN_ALG_TERREINSECTOR' THEN
BEGIN
SELECT alg_terreinsector_key INTO Dummy
FROM alg_terreinsector
WHERE alg_terreinsector_key = LPNCondKey;
RETURN TRUE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN FALSE;
END;
ELSIF LPNCondName = 'LPN_ALG_RUIMTE' THEN
BEGIN
SELECT alg_ruimte_key INTO Dummy
FROM alg_ruimte
WHERE alg_ruimte_key = LPNCondKey;
RETURN TRUE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN FALSE;
END;
ELSIF LPNCondName = 'LPN_ALG_WERKPLEK' THEN
BEGIN
SELECT prs_werkplek_key INTO Dummy
FROM prs_werkplek
WHERE prs_werkplek_key = LPNCondKey;
RETURN TRUE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN FALSE;
END;
ELSE
raise_application_error(-20000, 'alg_m239');
END IF;
END CheckLPNKey;
PROCEDURE cad_SLNKPreDraw(Session_Id NUMBER) IS
LPNName VARCHAR2(128);
LPNKey NUMBER(10);
LPNKeyCond NUMBER(10);
#ifdef BIS
Diepte NUMBER(8,2);
Veld_Key NUMBER(10);
Boring_nummer VARCHAR2(5);
Projectnr VARCHAR2(8);
Ontgraafvak_Naam VARCHAR2(32);
Punt_boring BOOLEAN;
Boring_Symbol VARCHAR2(128);
#endif //BIS
LocatieKey NUMBER(10);
VerdiepingKey NUMBER(10);
DisciplineKey NUMBER(10);
locatiecode VARCHAR2(5);
Subloc_Code VARCHAR2(5);
Boring_nummer VARCHAR2(5);
Projectnr VARCHAR2(8);
RuimteNr VARCHAR2(10);
Ontgraafvak_Naam VARCHAR2(32);
gebouwcode VARCHAR2(10);
SrcDwg VARCHAR2(128);
LoadDwg VARCHAR2(128);
AttachDwg1 VARCHAR2(128);
AttachDwg2 VARCHAR2(128);
Punt_boring BOOLEAN;
Boring_Symbol VARCHAR2(128);
Valint NUMBER;
SeqNr NUMBER(10);
Datum DATE;
@@ -867,6 +939,11 @@ CREATE OR REPLACE PACKAGE BODY cad AS
LayerNaam VARCHAR2(256);
LayerColor VARCHAR2(256);
LayerLineType VARCHAR2(256);
Symbool VARCHAR2(256);
SrtdeelKey NUMBER(10);
Dimensie NUMBER;
PlaatsDeel VARCHAR2(1);
Omschrijving VARCHAR2(30);
BEGIN
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASPREDRAW');
@@ -875,7 +952,112 @@ CREATE OR REPLACE PACKAGE BODY cad AS
IF SeqNr IS NULL THEN
SeqNr := 1;
END IF;
IF LPNNAME = 'LPN_ALG_RUIMTE' THEN
IF LPNName = 'LPN_INS_DEEL' THEN
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_INS_DEEL', 1);
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
/* Bepaal soortdeelkey */
SELECT ins_srtdeel_key INTO SrtdeelKey
FROM ins_deel
WHERE ins_deel_key = LPNKey;
SELECT ins_srtdeel_dimensie INTO Dimensie
FROM ins_srtdeel
WHERE ins_srtdeel_key = SrtdeelKey;
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'DIMENSION', SeqNr, Dimensie, 1);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA', SeqNr, 'INS_DEEL_KEY', 1);
/* Lees de grafische gegevens uit tabel ins_srtdeel */
SELECT ins_srtdeel_cadlaycolor, ins_srtdeel_cadlaylinetype,ins_srtdeel_cadlayer, ins_srtdeel_acadsymbol
INTO LayerColor, LayerLineType, LayerNaam, Symbool
FROM ins_srtdeel
WHERE ins_srtdeel_key = SrtdeelKey;
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERCOLOR', SeqNr, LayerColor, 1);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERLINETYPE', SeqNr, LayerLinetype, 1);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER', SeqNr, Layernaam, 1);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'BLOCK', SeqNr, Symbool, 1);
cad.cad_SLNKstructinsertVALINT(Session_Id,'INSPOINTCODE', SeqNr, 0, 1);
/* Bepaal of een deel geplaatst is op een T(erreinsector) of in een R(uimte)/W(erkplek)... */
SELECT ins_alg_ruimte_type INTO PlaatsDeel
FROM ins_deel
WHERE ins_deel_key = LPNKey;
IF PlaatsDeel = 'T' THEN /* Terreinsector */
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_TERREINSECTOR', 1);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLCONDA', SeqNr, 'ALG_TERREINSECTOR_KEY', 1);
ELSE /* Ruimte of Werkplek */
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_RUIMTE', 1);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLCONDA', SeqNr, 'ALG_RUIMTE_KEY', 1);
END IF;
IF PlaatsDeel = 'W' THEN /* Bepaal ruimte waarin werkplek zich bevindt en geef ruimtekey ervan door */
SELECT prs_alg_ruimte_key INTO LPNKeyCond
FROM prs_werkplek
WHERE prs_werkplek_key =
(SELECT ins_alg_ruimte_key FROM ins_deel
WHERE ins_deel_key = LPNKey);
ELSE
SELECT ins_alg_ruimte_key INTO LPNKeyCond
FROM ins_deel
WHERE ins_deel_key = LPNKey;
END IF;
cad.cad_SLNKstructinsertVALINT(Session_Id,'LPNKEYCONDA', SeqNr, LPNKeyCond, 1);
/* Bepaal Disciplinetekening */
SrcDwg := cad_f_deel_get_tekeningnaam(LPNKey);
IF SrcDwg IS NOT NULL THEN
SELECT ins_alg_locatie_key INTO LocatieKey
FROM ins_deel
WHERE ins_deel_key = LPNKey;
Locatiecode := Bepaal_locatiecode(LocatieKey);
SrcDwg := Locatiecode||'\'||SrcDwg;
END IF;
/* Bepaal LoadDwg */
IF PlaatsDeel = 'T' THEN /* Terreinsector */
LoadDwg := cad_getPlattegrondtekening(Locatiekey);
ELSE /* Ruimte of Werkplek */
SELECT alg_verdieping_key INTO VerdiepingKey
FROM alg_ruimte
WHERE alg_ruimte_key = LPNKeyCond;
LoadDwg := cad_getVerdiepPlgrnd_tekening(LocatieKey, Verdiepingkey);
END IF;
LoadDwg := LoadDwg;
/* Bepaal Attachdwg's */
IF PlaatsDeel = 'T' THEN /* Terreinsector */
AttachDwg1 := cad_getContourtekening(LocatieKey); /* Contourtekening locatie */
ELSE /* Ruimte of Werkplek */
AttachDwg1 := cad_getVerdiepCntr_tekening(LocatieKey, Verdiepingkey); /* Contourtekening verdieping */
END IF;
AttachDwg2 := SrcDwg;
cad_SLNKstructinsertVALSTR(Session_Id,'SRCDWG', SeqNr, SrcDwg, 1);
cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG', SeqNr, LoadDwg, 1);
cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, AttachDwg1, 1);
cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, Attachdwg2, 0);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABELCOL', SeqNr, 'INS_DEEL_OMSCHRIJVING', 1);
SELECT ins_deel_omschrijving INTO Omschrijving
FROM ins_deel
WHERE ins_deel_key = LPNKey;
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, Omschrijving, 1);
ELSIF LPNName = 'LPN_ALG_GEBOUW' THEN
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_ALG_GEBOUW', 1);
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
cad.cad_SLNKstructinsertVALINT(Session_Id,'DIMENSION', SeqNr, 2, 1);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA', SeqNr, 'ALG_GEBOUW_KEY', 1);
LayerColor := cad_getLayercolor('ALG_GEBOUW');
LayerLineType := cad_getLayerlinetype('ALG_GEBOUW');
LayerNaam := cad_getLayername('ALG_GEBOUW');
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERCOLOR', SeqNr, LayerColor, 1);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERLINETYPE', SeqNr, LayerLinetype, 1);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER', SeqNr, Layernaam, 1);
SELECT alg_locatie_key INTO Locatiekey
FROM alg_gebouw
WHERE alg_gebouw_key = LPNKey;
SrcDwg := cad_getContourtekening(LocatieKey);
LoadDwg := cad_getPlattegrondtekening(LocatieKey);
AttachDwg1 := SrcDwg;
cad.cad_SLNKstructinsertVALSTR(Session_Id,'SRCDWG', 1, SrcDwg, 1);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG', 1, LoadDwg, 1);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', 1, AttachDwg1, 1);
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABELCOL',SeqNr, 'ALG_GEBOUW_CODE', 1);
SELECT alg_gebouw_code INTO gebouwcode
FROM alg_v_aanweziggebouw
WHERE alg_gebouw_key = LPNKey;
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, gebouwcode, 1);
ELSIF LPNName = 'LPN_ALG_RUIMTE' THEN
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_ALG_RUIMTE', 1);
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
cad.cad_SLNKstructinsertVALINT(Session_Id,'DIMENSION', SeqNr, 2, 1);
@@ -1062,6 +1244,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
LPNKey NUMBER(10);
VeldKey NUMBER(10);
Oppervlak NUMBER(13,3);
Omtrek NUMBER(13,3);
Diepte NUMBER(8,2);
Volume NUMBER(12,4);
Datum DATE;
@@ -1069,15 +1252,26 @@ CREATE OR REPLACE PACKAGE BODY cad AS
BEGIN
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASINSO');
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYINSO');
IF LPNNAME = 'LPN_ALG_RUIMTE' THEN
IF LPNNAME = 'LPN_ALG_GEBOUW' THEN
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
Omtrek := cad_SLNKSTRUCTreadVALREAL(Session_id, 'PERIMETER');
UPDATE alg_gebouw
SET alg_gebouw_bruto_vloeropp = Oppervlak,
alg_gebouw_omtrek = Omtrek
WHERE alg_gebouw_key = LPNKey;
ELSIF LPNNAME = 'LPN_ALG_RUIMTE' THEN
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
Omtrek := cad_SLNKSTRUCTreadVALREAL(Session_id, 'PERIMETER');
UPDATE alg_ruimte
SET alg_ruimte_bruto_vloeropp = Oppervlak
SET alg_ruimte_bruto_vloeropp = Oppervlak,
alg_ruimte_omtrek = Omtrek
WHERE alg_ruimte_key = LPNKey;
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR' THEN
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
Omtrek := cad_SLNKSTRUCTreadVALREAL(Session_id, 'PERIMETER');
UPDATE alg_terreinsector
SET alg_terreinsector_oppervlak = Oppervlak
SET alg_terreinsector_oppervlak = Oppervlak,
alg_terreinsector_omtrek = Omtrek
WHERE alg_terreinsector_key = LPNKey;
#ifdef BIS
ELSIF LPNName = 'LPN_BIS_BORING' THEN
@@ -1139,7 +1333,64 @@ CREATE OR REPLACE PACKAGE BODY cad AS
Datum := TO_DATE(CheckDatum, 'DD-MM-YYYY');
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASDELO');
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYDELO');
IF LPNName = 'LPN_ALG_RUIMTE' THEN
IF LPNName = 'LPN_INS_DEEL' THEN
DELETE FROM ins_deel
WHERE ins_deel_key = LPNKey;
COMMIT;
ELSIF LPNName = 'LPN_ALG_GEBOUW' THEN
DELETE FROM alg_gebouw
WHERE alg_gebouw_key = LPNKey;
COMMIT;
ELSIF LPNName = 'LPN_ALG_RUIMTE' THEN
/* Geef aan AutoCAD de sleutels door van de werkplekken die zich in de te verwijderen ruimte bevinden */
BEGIN
DECLARE
Cursor RuimteWerkplek IS
SELECT prs_werkplek_key
FROM prs_werkplek
WHERE prs_alg_ruimte_key = LPNKey;
BEGIN
Eerste := TRUE;
FOR WerkplekRec IN RuimteWerkplek LOOP
IF Eerste THEN
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_ALG_WERKPLEK', 1);
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, WerkplekRec.prs_werkplek_key, 1);
Eerste := FALSE;
ELSE
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_ALG_WERKPLEK', 0);
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, WerkplekRec.prs_werkplek_key, 0);
END IF;
END LOOP;
END;
END;
/* Geef aan AutoCAD de sleutels door van de delen die zich in de te verwijderen ruimte bevinden EN
* de delen die zich op werkplekken bevinden binnen de te verwijderen ruimte...
*/
BEGIN
DECLARE
Cursor RuimteDeel IS
SELECT ins_deel_key
FROM ins_v_aanwezigdeel
WHERE ins_alg_ruimte_key = LPNKey
AND ins_alg_ruimte_type = 'R'
OR (ins_alg_ruimte_type = 'W' AND
ins_alg_ruimte_key IN
(SELECT prs_werkplek_key from prs_v_aanwezigwerkplek
WHERE prs_alg_ruimte_key = LPNKey));
BEGIN
Eerste := TRUE;
FOR DeelRec IN RuimteDeel LOOP
IF Eerste THEN
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 1);
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 1);
Eerste := FALSE;
ELSE
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 0);
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 0);
END IF;
END LOOP;
END;
END;
DELETE FROM alg_ruimte
WHERE alg_ruimte_key = LPNKey;
COMMIT;
@@ -1175,6 +1426,27 @@ CREATE OR REPLACE PACKAGE BODY cad AS
WHERE alg_terreinsector_key = LPNKey;
COMMIT;
#else
BEGIN
DECLARE
CURSOR TerreinDeel IS
SELECT ins_deel_key
FROM ins_v_aanwezigdeel
WHERE ins_alg_ruimte_key = LPNKey
AND ins_alg_ruimte_type = 'T';
BEGIN
Eerste := TRUE;
FOR DeelRec IN TerreinDeel LOOP
IF Eerste THEN
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 1);
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 1);
Eerste := FALSE;
ELSE
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 0);
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 0);
END IF;
END LOOP;
END;
END;
DELETE FROM alg_terreinsector
WHERE alg_terreinsector_key = LPNKey;
COMMIT;
@@ -1217,23 +1489,74 @@ CREATE OR REPLACE PACKAGE BODY cad AS
LPNName VARCHAR2(128);
LPNKey NUMBER(10);
LPNCondName VARCHAR2(128);
LPNCondKey NUMBER(10);
VeldKey NUMBER(10);
Oppervlak NUMBER(13,3);
Diepte NUMBER(8,2);
Omtrek NUMBER(13,3);
Volume NUMBER(12,4);
Datum DATE;
Seqnr NUMBER(10);
LPNKeyOK BOOLEAN:= FALSE;
RuimteType VARCHAR2(1);
BEGIN
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASMODO');
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYMODO');
IF LPNName = 'LPN_ALG_RUIMTE' THEN
IF LPNName = 'LPN_INS_DEEL' THEN
/* Bepaal nieuwe plek v/h deel */
LPNCondName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
LPNCondKey := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNKEYCONDO');
IF LPNCondKey IS NOT NULL THEN
/* Check of key wel bestaat - kan zijn dat tekening niet helemaal up-to-date is */
LPNKeyOk := CheckLPNKey(LPNCondName, LPNKey);
IF NOT LPNKeyOK THEN
Seqnr := 2;
LOOP
LPNCondKey := cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNKEYCONDO', Seqnr);
IF LPNCondKey IS NULL THEN
EXIT;
END IF;
LPNKeyOK := CheckLPNKey(LPNCondName, LPNKey);
EXIT WHEN LPNKeyOK;
Seqnr := Seqnr + 1;
END LOOP;
END IF;
IF LPNKeyOK THEN
IF LPNCondName = 'LPN_ALG_TERREINSECTOR' THEN
RuimteType := 'T';
ELSIF LPNCondName = 'LPN_ALG_RUIMTE' THEN
RuimteType := 'R';
ELSIF LPNCondName = 'LPN_ALG_WERKPLEK' THEN
RuimteType := 'W';
END IF;
UPDATE ins_deel
SET ins_alg_ruimte_key = LPNCondKey,
ins_alg_ruimte_type = RuimteType
WHERE ins_deel_key = LPNKey;
END IF;
END IF;
ELSIF LPNName = 'LPN_ALG_GEBOUW' THEN
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
Omtrek := cad_SLNKSTRUCTreadVALREAL(Session_id, 'PERIMETER');
UPDATE alg_gebouw
SET alg_gebouw_bruto_vloeropp = Oppervlak,
alg_gebouw_omtrek = Omtrek
WHERE alg_gebouw_key = LPNKey;
ELSIF LPNName = 'LPN_ALG_RUIMTE' THEN
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
Omtrek := cad_SLNKSTRUCTreadVALREAL(Session_id, 'PERIMETER');
UPDATE alg_ruimte
SET alg_ruimte_bruto_vloeropp = Oppervlak
SET alg_ruimte_bruto_vloeropp = Oppervlak,
alg_ruimte_omtrek = Omtrek
WHERE alg_ruimte_key = LPNKey;
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR' THEN
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
Omtrek := cad_SLNKSTRUCTreadVALREAL(Session_id, 'PERIMETER');
UPDATE alg_terreinsector
SET alg_terreinsector_oppervlak = Oppervlak
SET alg_terreinsector_oppervlak = Oppervlak,
alg_terreinsector_omtrek = Omtrek
WHERE alg_terreinsector_key = LPNKey;
#ifdef BIS
ELSIF LPNName = 'LPN_BIS_BORING' THEN
@@ -1271,3 +1594,4 @@ END cad;
/
#endif // CAD