3751 lines
156 KiB
Plaintext
3751 lines
156 KiB
Plaintext
#ifdef CAD // 22-05-1998 KTH
|
|
#ifdef RETAIN_OBSOLETE_PARTS
|
|
/* REVISIONS:
|
|
*
|
|
* 17-03-2003 RL "DISTINCT" syntax changed in cad_KILLtrajecten, EindTrajectGroter cursor
|
|
*
|
|
* 15-03-2000 BIV UPPER() verwijderd overal waar Upper(ins_srtdeel_cadlayer) en UPPER((ins_srtdeel_acadsymbol) i.v.m. performance.
|
|
* 23-11-1999 RD cad_SLNKPostErase: bij verwijderen van een ruimte alleen die werkplekken verwijderen
|
|
* met verwijderdatum NOT NULL, dus niet verwijderen in prs_werkplek maar van prs_v_aanwezigwerkplek.
|
|
* 23-11-1999 BIV PRS_WERKPLEK toegevoegd aan cad_SLNKpostdraw.
|
|
* 14-10-1999 RD Procedure <cad_SLNKpostModify> aangepast. Getekend veld wordt gezet
|
|
* van alg_gebouw en alg_ruimte bij update omtrek/oppervlakte.
|
|
* 07-10-1999 BIV Functie AddDeel gewijzigd. Bij insert in ins_deel ook Locatiekey en Disciplinekey meegeven.
|
|
* 27-09-1999 EGR cad_slnkPrePostDimensie0, 1 en 2: Bij selecteren van ins_srtdeel_key met behulp
|
|
* van layer en symbol ook controleren of objectsoort niet verwijderd is.
|
|
* 27-08-1999 EGR cad_SLNKSTRUCTshift aangepast zodat PROJECTKEY met seqnr=1 tijdens shift niet wordt verwijderd.
|
|
* 25-08-1999 EGR Functies Bepaal_locatiecode,cad_getLayerColor,cad_getLayerLinetype,cad_getLayerName,cad_SLNKSTRUCTreadVALSTR2
|
|
* ,cad_SLNKSTRUCTreadVALINT2 en pragma voor Bepaal_locatiecode toegevoegd zodat deze functies ook in de PRJ_PAC
|
|
* gebruikt kunnen worden.
|
|
* In cad_SLNKSTRUCTclear worden ook entries voor PROJECTKEY niet meer gewist.
|
|
* 16-08-1999 BIV Procedures cad_SetKenmerkWaarde en cad_GetKenmerkWaarde toegevoegd om de kenmerken vanuit AutoCAD te kunnen zetten
|
|
* 05-08-1999 BIV Procedure cad_GetSrcDwgOfEntity2 toegevoegd aangezien de functie cad_GetSrcDwgOfEntity vanuit
|
|
* AutoCAD niet goed gaat (TIMEOUT).
|
|
* 02-06-1999 BIV Aantal argumenten functie fac_f_fac_get_description is gewijzigd de div. aanroepen ook aangepast.
|
|
* 20-05-1999 BIV Procedure cad_GetSrcDwgOfEntity toegevoegd die source_dwg in cad_slnkstruct zet.
|
|
* 19-05-1999 BIV Bepaal_VolgnummerTxt niet meer gebruiken. Hier nu functie fac_f_fac_get_description voor.
|
|
* 10-05-1999 BIV Procedure cad_SLNKSTRUCTdelete aangepast zodat deze ook van buiten de package kan worden aangeroepen.
|
|
* 05-05-1999 BIV update van de _getekend-velden toegevoegd in cad_SLNKPostDraw.
|
|
* 28-04-1999 PF update van de _getekend-velden toegevoegd. De database weet hierdoor dat de
|
|
* betreffende update hiervandaan komt, en staat het dan toe (#2376).
|
|
* 28-04-1999 PF Procedure cad_p_ruimte_update_opp verwijderd (obsolete)
|
|
* 27-04-1999 BIV Zelfde al vorige regel, maar dan voor terreinsectoren.
|
|
* --- 01.44 ---
|
|
* 22-04-1999 BIV Procedure cad_slnkPredraw zodanig aangepast dat bij een deel ALLE discipline-tekeningen die de
|
|
* gebruiker mag zien(disciplines) worden weggeschreven in cad_slnkstruct.
|
|
* --- 01.43 ---
|
|
* 14-04-1999 BIV Functie cad_MaakCadTekening toegevoegd. Deze functie maakt een tekening aan in cad_tekening en
|
|
* en geeft de naam van die tekening terug.
|
|
* 12-04-1999 BIV Procedure cad_SLNKgetBinnenBuiten toegevoegd. Deze bepaalt a.h.v. LoadDwg of binnen of buiten.
|
|
* 30-03-1999 BIV Procedure cad_SLNKDelenbijWerkplek.
|
|
* 18-03-1999 BIV #2278 - cad_SLNKPostDraw aangepast i.v.m. ins_deelkoppeling.
|
|
* 12-03-1999 BIV #2278 - Procedure cad_SLNKPrePostDraw toegevoegd t.b.v. tekenen "vanuit" AutoCAD.
|
|
* 11-03-1999 BIV #2278 - Procedures cad_slnkPredraw,cad_SLNKModify,cad_SLNKPostErase, cad_SLNKPostDraw uitgebreid
|
|
* i.v.m. LPN_PRS_WERKPLEK t.b.v. Facilitor 3.
|
|
* 09-03-1999 BIV I.o.v. MB PERIMETER vervangen door LENGTH.
|
|
* 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
|
|
* 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.
|
|
* 09-12-1998 BIV Procedure cad_SLNKPreDraw toegevoegd.
|
|
* 03-12-1998 BIV Procedure cad_SLNKgetDrawing toegevoegd.
|
|
* 20-11-1998 BIV Procedure cad_SLNKSTRUCTclearAll toegevoegd (wist alles van de opgegeven sessie).
|
|
* 12-11-1998 BIV Procedure cad_SLNKModify toegevoegd.
|
|
* 09-11-1998 BIV Procedure cad_SLNKPostErase toegevoegd.
|
|
* 06-11-1998 BIV Procedure cad_SLNKPostDraw toegevoegd.
|
|
* 05-11-1998 BIV Procedure cad_SLNKSTRUCTshift toegevoegd(wist 1ste entry van opgegeven sessie schuift
|
|
* alle andere entries 1 pos. door (dus 4->3, 3->2 en 2->1)).
|
|
* 05-11-1998 BIV Procedure cad_SLNKSTRUCTclear toegevoegd (wist alles van de opgegeven sessie, behalve de
|
|
* entry FAC_MODULE).
|
|
* 02-11-1998 BIV Procedures cad_SLNKSTRUCTinsertVALINT,...VALSTR, ....VALREAL en ....VALDATE toegevoegd.
|
|
* 06-10-1998 PF #2060 get_tekeningnaam werkt nu ook voor terreinen
|
|
* --- 01.40 ---
|
|
* --- 01.39 ---
|
|
* 22-07-1998 KTH - diverse -- vervangen door slash-sterretje/sterretje-slash
|
|
* - diverse kleine aanpassingen
|
|
* 21-07-1998 BIV Procedure cad_p_ruimte_update_opp toegevoegd
|
|
* 21-07-1998 BIV Functie cad_f_ruimte_get_tekeningnaam() toegevoegd.
|
|
* 09-07-1998 PF Geen exception meer, en PRAGMA WNPS toegevoegd
|
|
* 08-07-1998 PF Functies gebruiken TABLE ins_deel ipv VIEW ins_v_aanwezigdeel, vanwege autorisatie.
|
|
* De functie wordt ook door andere users (FCLTCAD) gebruikt, en die ziet niets
|
|
* in de autorisatie views
|
|
* 07-07-1998 BIV Functies cad_f_deel_get_locatie_key, ..._get_verdieping_key, ..._get_discipline_key,
|
|
* ..._get_tekeningnaam toegevoegd.
|
|
* --- 01.38 ---
|
|
* --- 01.37 ---
|
|
* 22-05-1998 KTH Aangemaakt
|
|
*/
|
|
|
|
|
|
CREATE OR REPLACE PACKAGE cad AS
|
|
FUNCTION cad_f_deel_get_locatie(key IN NUMBER) RETURN NUMBER;
|
|
FUNCTION cad_f_deel_get_verdieping(key IN NUMBER) RETURN NUMBER;
|
|
FUNCTION cad_f_deel_get_discipline(key IN NUMBER) RETURN NUMBER;
|
|
FUNCTION cad_f_deel_get_tekeningnaam(key IN NUMBER) RETURN VARCHAR2;
|
|
FUNCTION cad_f_ruimte_get_tekeningnaam(key IN NUMBER) RETURN VARCHAR2;
|
|
PROCEDURE cad_SLNKSTRUCTinsertVALINT(Session_Id IN NUMBER, entry IN VARCHAR2, seqnr IN NUMBER, value IN NUMBER, ClrEntry IN NUMBER);
|
|
PROCEDURE cad_SLNKSTRUCTinsertVALSTR(Session_Id IN NUMBER, entry IN VARCHAR2, seqnr IN NUMBER, value VARCHAR2, ClrEntry IN NUMBER);
|
|
PROCEDURE cad_SLNKSTRUCTinsertVALREAL(Session_Id IN NUMBER, entry IN VARCHAR2, seqnr IN NUMBER, value IN NUMBER, ClrEntry IN NUMBER);
|
|
PROCEDURE cad_SLNKSTRUCTinsertVALDATE(Session_Id IN NUMBER, entry IN VARCHAR2, seqnr IN NUMBER, value IN DATE, ClrEntry IN NUMBER);
|
|
FUNCTION cad_SLNKSTRUCTreadVALINT(Session_Id IN NUMBER, Entry IN VARCHAR2) RETURN NUMBER;
|
|
FUNCTION cad_SLNKSTRUCTreadVALSTR(Session_Id IN NUMBER, Entry IN VARCHAR2) RETURN VARCHAR2;
|
|
FUNCTION cad_SLNKSTRUCTreadVALREAL(Session_Id IN NUMBER, Entry IN VARCHAR2) RETURN NUMBER;
|
|
FUNCTION cad_SLNKSTRUCTreadVALDATE(Session_Id IN NUMBER, Entry IN VARCHAR2) RETURN DATE;
|
|
PROCEDURE cad_SLNKSTRUCTclear(Session_Id IN NUMBER);
|
|
PROCEDURE cad_SLNKSTRUCTshift(Session_Id IN NUMBER);
|
|
PROCEDURE cad_SLNKpostDraw(Session_Id IN NUMBER);
|
|
PROCEDURE cad_SLNKpostErase(Session_Id IN NUMBER);
|
|
PROCEDURE cad_SLNKpostModify(Session_Id IN NUMBER);
|
|
PROCEDURE cad_SLNKSTRUCTclearAll(Session_Id IN NUMBER);
|
|
PROCEDURE cad_SLNKSTRUCTdelete(Session_Id IN NUMBER, Entry IN VARCHAR2);
|
|
PROCEDURE cad_SLNKgetDrawing(Session_Id IN NUMBER);
|
|
PROCEDURE cad_SLNKPreDraw(Session_Id IN NUMBER);
|
|
PROCEDURE cad_SLNKPrePostDraw(Session_Id IN NUMBER);
|
|
PROCEDURE cad_SLNKDelenbijWerkplek(Session_Id IN NUMBER);
|
|
PROCEDURE cad_getSymboolInfo(Session_Id IN NUMBER, Entry IN VARCHAR2);
|
|
PROCEDURE cad_SLNKgetBinnenBuiten(Session_Id IN NUMBER, LoadDwg IN VARCHAR2);
|
|
PROCEDURE cad_GetSrcDwgOfEntity2(Session_Id IN NUMBER, LPNAliasINSO IN VARCHAR2, LPNKey IN NUMBER);
|
|
PROCEDURE cad_SetKenmerkWaarde(DeelKey IN NUMBER, KenmerkKey IN NUMBER, KenmerkWaarde IN VARCHAR2);
|
|
PROCEDURE cad_GetKenmerkWaarde(Session_Id IN NUMBER, DeelKey IN NUMBER, KenmerkKey IN NUMBER);
|
|
|
|
/* Deze procedure is slechts eenmaal gebruikt t.b.v. grafische conversie BIS ...
|
|
* PROCEDURE cad_SLNKConvPreDraw(Session_Id IN NUMBER, LOC_X_COORD NUMBER, LOC_Y_COORD NUMBER);
|
|
*/
|
|
FUNCTION cad_getDisciplinetekening(Locatie_key IN NUMBER, Discipline_key IN NUMBER) RETURN VARCHAR2;
|
|
FUNCTION cad_getPlattegrondtekening(Locatie_key IN NUMBER)RETURN VARCHAR2;
|
|
FUNCTION cad_getContourtekening(Locatie_key IN NUMBER)RETURN VARCHAR2;
|
|
FUNCTION cad_getVerdiepPlgrnd_tekening(Locatiekey IN NUMBER, Verdiepingkey IN NUMBER) RETURN VARCHAR2;
|
|
FUNCTION cad_getVerdiepCntr_tekening(Locatiekey IN NUMBER, Verdiepingkey IN NUMBER) RETURN VARCHAR2;
|
|
FUNCTION cad_getLocatieCode_Tekening(TekeningNaam IN VARCHAR2) RETURN VARCHAR2;
|
|
FUNCTION cad_getTekeningNaam_LoadDwg(LoadDwg IN VARCHAR2) RETURN VARCHAR2;
|
|
FUNCTION cad_GetSrcDwgOfEntity(Session_Id IN NUMBER, LPNAliasINSO IN VARCHAR2, LPNKey IN NUMBER) RETURN VARCHAR2;
|
|
FUNCTION Bepaal_locatiecode(locatie_key IN NUMBER) RETURN VARCHAR2;
|
|
FUNCTION cad_getLayerColor(Entry IN VARCHAR2) RETURN NUMBER;
|
|
FUNCTION cad_getLayerLinetype(Entry IN VARCHAR2) RETURN VARCHAR2;
|
|
FUNCTION cad_getLayerName(Entry IN VARCHAR2) RETURN VARCHAR2;
|
|
FUNCTION cad_SLNKSTRUCTreadVALSTR2(Session_Id IN NUMBER, Entry IN VARCHAR2, SeqNr IN NUMBER) RETURN VARCHAR2;
|
|
FUNCTION cad_SLNKSTRUCTreadVALINT2(Session_Id IN NUMBER, Entry IN VARCHAR2, SeqNr IN NUMBER) RETURN 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_ruimte_get_tekeningnaam, WNDS, WNPS);
|
|
PRAGMA RESTRICT_REFERENCES (cad_getDisciplinetekening, WNDS, WNPS);
|
|
PRAGMA RESTRICT_REFERENCES (cad_getPlattegrondtekening, WNDS, WNPS);
|
|
PRAGMA RESTRICT_REFERENCES (cad_getContourtekening, WNDS, WNPS);
|
|
PRAGMA RESTRICT_REFERENCES (cad_getVerdiepPlgrnd_tekening, WNDS, WNPS);
|
|
PRAGMA RESTRICT_REFERENCES (cad_getVerdiepCntr_tekening, WNDS, WNPS);
|
|
PRAGMA RESTRICT_REFERENCES (cad_getLocatieCode_Tekening, WNDS, WNPS);
|
|
PRAGMA RESTRICT_REFERENCES (cad_getTekeningNaam_LoadDwg, WNDS, WNPS);
|
|
PRAGMA RESTRICT_REFERENCES (Bepaal_locatiecode, WNDS, WNPS);
|
|
END cad;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY cad AS
|
|
|
|
FUNCTION cad_f_deel_get_locatie(Key IN NUMBER) RETURN NUMBER IS
|
|
locatie_key NUMBER(10);
|
|
BEGIN
|
|
SELECT ins_alg_locatie_key
|
|
INTO locatie_key
|
|
FROM all_v_aanwezigdeel
|
|
/* FROM ins_deel -- de tabel i.o.m. PF view gebruiken */
|
|
WHERE ins_deel_key = Key;
|
|
RETURN locatie_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END cad_f_deel_get_locatie;
|
|
|
|
FUNCTION cad_f_deel_get_verdieping(Key IN NUMBER) RETURN NUMBER IS
|
|
verdieping_key NUMBER(10);
|
|
PlaatsDeel VARCHAR2(1);
|
|
WerkplekKey NUMBER(10);
|
|
BEGIN
|
|
/* 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;
|
|
RETURN NULL;
|
|
END cad_f_deel_get_verdieping;
|
|
|
|
FUNCTION cad_f_deel_get_discipline(Key IN NUMBER) RETURN NUMBER IS
|
|
discipline_key NUMBER(10);
|
|
BEGIN
|
|
SELECT ins_discipline_key
|
|
INTO discipline_key
|
|
FROM all_v_aanwezigdeel
|
|
/* FROM ins_deel -- de tabel! */
|
|
WHERE ins_deel_key = Key;
|
|
RETURN discipline_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END cad_f_deel_get_discipline;
|
|
|
|
|
|
FUNCTION cad_f_deel_get_tekeningnaam(Key IN NUMBER) RETURN VARCHAR2 IS
|
|
tekeningnaam VARCHAR2(256);
|
|
locatie_key NUMBER(10);
|
|
verdieping_key NUMBER(10);
|
|
discipline_key NUMBER(10);
|
|
BEGIN
|
|
locatie_key := _MSSQL(cad.)cad_f_deel_get_locatie(Key);
|
|
verdieping_key := _MSSQL(cad.)cad_f_deel_get_verdieping(Key);
|
|
discipline_key := _MSSQL(cad.)cad_f_deel_get_discipline(Key);
|
|
|
|
IF (locatie_key IS NOT NULL AND
|
|
verdieping_key IS NOT NULL AND
|
|
discipline_key IS NOT NULL) THEN
|
|
BEGIN
|
|
SELECT cad_tekening_filenaam
|
|
INTO tekeningnaam
|
|
FROM cad_v_cad_tekening
|
|
WHERE alg_locatie_key = locatie_key
|
|
AND alg_verdieping_key = verdieping_key
|
|
AND ins_discipline_key = discipline_key;
|
|
RETURN tekeningnaam;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
ELSIF (locatie_key IS NOT NULL AND
|
|
verdieping_key IS NULL AND
|
|
discipline_key IS NOT NULL) THEN
|
|
BEGIN
|
|
SELECT cad_tekening_filenaam
|
|
INTO tekeningnaam
|
|
FROM cad_v_cad_tekening
|
|
WHERE alg_locatie_key = locatie_key
|
|
AND alg_verdieping_key IS NULL
|
|
AND ins_discipline_key = discipline_key;
|
|
RETURN tekeningnaam;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
END IF;
|
|
RETURN NULL;
|
|
END cad_f_deel_get_tekeningnaam;
|
|
|
|
|
|
FUNCTION cad_f_ruimte_get_tekeningnaam(Key IN NUMBER) RETURN VARCHAR2 IS
|
|
tekeningnaam VARCHAR2(256);
|
|
locatie_key NUMBER(10);
|
|
verdieping_key NUMBER(10);
|
|
BEGIN
|
|
SELECT alg_locatie_key, alg_verdieping_key
|
|
INTO locatie_key, verdieping_key
|
|
FROM alg_v_ruimte_gegevens
|
|
WHERE alg_ruimte_key = Key;
|
|
|
|
IF (locatie_key IS NOT NULL AND
|
|
verdieping_key IS NOT NULL) THEN
|
|
BEGIN
|
|
SELECT cad_tekening_filenaam
|
|
INTO tekeningnaam
|
|
FROM cad_v_cad_tekening /* ja deze! */
|
|
WHERE alg_locatie_key = locatie_key
|
|
AND alg_verdieping_key = verdieping_key
|
|
AND cad_tekening_type = 'C';
|
|
RETURN tekeningnaam;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
/* raise_application_error(-20000, 'ins_m166'); */
|
|
RETURN NULL;
|
|
END;
|
|
END IF;
|
|
|
|
RETURN NULL;
|
|
END cad_f_ruimte_get_tekeningnaam;
|
|
|
|
|
|
FUNCTION Bepaal_locatiecode(locatie_key IN NUMBER) RETURN VARCHAR2 IS
|
|
locatie_code VARCHAR2(5);
|
|
BEGIN
|
|
BEGIN
|
|
SELECT alg_locatie_code INTO locatie_code
|
|
FROM alg_locatie
|
|
WHERE alg_locatie_key = Locatie_key;
|
|
RETURN locatie_code;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
RETURN NULL;
|
|
END Bepaal_locatiecode;
|
|
|
|
|
|
FUNCTION cad_getLocatieCode_Tekening(TekeningNaam IN VARCHAR2) RETURN VARCHAR2 IS
|
|
locatieCode VARCHAR2(25);
|
|
#ifndef MS_SQL
|
|
SlashPositie NUMBER(2);
|
|
#else
|
|
SlashPositie INT;
|
|
#endif
|
|
BEGIN
|
|
SlashPositie := INSTR2(TekeningNaam,CHR(92));
|
|
LocatieCode := SUBSTR(TekeningNaam,1, SlashPositie-1);
|
|
RETURN LocatieCode;
|
|
END cad_getLocatieCode_Tekening;
|
|
|
|
FUNCTION cad_getTekeningNaam_LoadDwg(LoadDwg IN VARCHAR2) RETURN VARCHAR2 IS
|
|
Teller int;
|
|
OneChar VARCHAR2(1);
|
|
Tekening VARCHAR2(256);
|
|
SlashFound BOOLEAN;
|
|
|
|
BEGIN
|
|
SlashFound := FALSE;
|
|
Teller:= LENGTH(LoadDwg);
|
|
#ifndef MS_SQL
|
|
WHILE (teller>0) LOOP
|
|
#else
|
|
WHILE (teller>0)
|
|
BEGIN
|
|
#endif
|
|
OneChar:=SUBSTR(LoadDwg,Teller,1);
|
|
IF OneChar= CHR(92) THEN
|
|
EXIT;
|
|
END IF;
|
|
teller :=teller-1;
|
|
END LOOP;
|
|
IF teller = 0 THEN
|
|
/* geen '\' gevonden */
|
|
RETURN LoadDwg;
|
|
ELSE
|
|
/* return tekeningnaam zonder pad terug */
|
|
RETURN SUBSTR(LoadDwg,teller+1,LENGTH(LoadDwg)-teller);
|
|
END IF;
|
|
RETURN NULL;
|
|
END cad_getTekeningNaam_LoadDwg;
|
|
|
|
FUNCTION cad_getDisciplinetekening(Locatie_key IN NUMBER, Discipline_key IN NUMBER)RETURN VARCHAR2 IS
|
|
locatie_code VARCHAR2(5);
|
|
tekening VARCHAR2(256);
|
|
Disciplinetekening VARCHAR2(256);
|
|
BEGIN
|
|
BEGIN
|
|
locatie_code := _MSSQL(cad.)bepaal_locatiecode(Locatie_key);
|
|
SELECT cad_tekening_filenaam INTO tekening
|
|
FROM cad_v_discipline
|
|
WHERE alg_locatie_key = Locatie_key
|
|
AND ins_discipline_key = Discipline_key;
|
|
Disciplinetekening := locatie_code||CHR(92)||tekening;
|
|
RETURN Disciplinetekening;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
RETURN NULL;
|
|
END cad_getDisciplinetekening;
|
|
|
|
|
|
FUNCTION cad_getPlattegrondtekening(Locatie_key IN NUMBER)RETURN VARCHAR2 IS
|
|
locatie_code VARCHAR2(5);
|
|
tekening VARCHAR2(256);
|
|
Plattegrondtekening VARCHAR2(256);
|
|
BEGIN
|
|
BEGIN
|
|
locatie_code := _MSSQL(cad.)bepaal_locatiecode(Locatie_key);
|
|
SELECT cad_tekening_filenaam INTO tekening
|
|
FROM cad_v_plattegrond
|
|
WHERE alg_locatie_key = Locatie_key
|
|
AND alg_verdieping_key IS NULL;
|
|
plattegrondtekening := locatie_code||CHR(92)||tekening;
|
|
RETURN plattegrondtekening;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
RETURN NULL;
|
|
END cad_getPlattegrondtekening;
|
|
|
|
FUNCTION cad_getVerdiepPlgrnd_tekening(Locatiekey IN NUMBER, Verdiepingkey IN NUMBER) RETURN VARCHAR2 IS
|
|
locatie_code VARCHAR2(5);
|
|
tekening VARCHAR2(256);
|
|
Plattegrondtekening VARCHAR2(256);
|
|
BEGIN
|
|
BEGIN
|
|
locatie_code := _MSSQL(cad.)bepaal_locatiecode(Locatiekey);
|
|
SELECT cad_tekening_filenaam INTO tekening
|
|
FROM cad_v_plattegrond
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND alg_verdieping_key = Verdiepingkey;
|
|
plattegrondtekening := locatie_code||CHR(92)||tekening;
|
|
RETURN plattegrondtekening;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
RETURN NULL;
|
|
END cad_getVerdiepPlgrnd_tekening;
|
|
|
|
FUNCTION cad_getContourtekening(Locatie_key IN NUMBER)RETURN VARCHAR2 IS
|
|
locatie_code VARCHAR2(5);
|
|
tekening VARCHAR2(256);
|
|
Contourtekening VARCHAR2(256);
|
|
BEGIN
|
|
locatie_code := _MSSQL(cad.)bepaal_locatiecode(Locatie_key);
|
|
BEGIN
|
|
SELECT cad_tekening_filenaam INTO tekening
|
|
FROM cad_v_contour
|
|
WHERE alg_locatie_key = Locatie_key
|
|
AND alg_verdieping_key IS NULL;
|
|
Contourtekening := locatie_code||CHR(92)||tekening;
|
|
RETURN Contourtekening;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
RETURN NULL;
|
|
END cad_getContourtekening;
|
|
|
|
FUNCTION cad_getVerdiepCntr_tekening(Locatiekey IN NUMBER, Verdiepingkey IN NUMBER) RETURN VARCHAR2 IS
|
|
locatie_code VARCHAR2(5);
|
|
tekening VARCHAR2(256);
|
|
Contourtekening VARCHAR2(256);
|
|
BEGIN
|
|
locatie_code := _MSSQL(cad.)bepaal_locatiecode(LocatieKey);
|
|
BEGIN
|
|
SELECT cad_tekening_filenaam INTO tekening
|
|
FROM cad_v_contour
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND alg_verdieping_key = Verdiepingkey;
|
|
Contourtekening := locatie_code||CHR(92)||tekening;
|
|
RETURN Contourtekening;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
RETURN NULL;
|
|
END cad_getVerdiepCntr_tekening;
|
|
|
|
PROCEDURE cad_SLNKgetBinnenBuiten(Session_Id IN NUMBER, LoadDwg IN VARCHAR2) IS
|
|
/* Bepaal a.h.v. de LoadDwg of het hier gaat om een buitentekening(terreinsector) of binnentekening */
|
|
TekeningNaam VARCHAR2(256);
|
|
LocatieCode VARCHAR2(5);
|
|
LocatieKey NUMBER(10);
|
|
VerdiepingKey NUMBER(10);
|
|
Plaats NUMBER;
|
|
|
|
BEGIN
|
|
TekeningNaam := _MSSQL(cad.)cad_getTekeningNaam_LoadDwg(LoadDwg);
|
|
LocatieCode := _MSSQL(cad.)cad_getLocatieCode_Tekening(LoadDwg);
|
|
SELECT alg_locatie_key INTO LocatieKey
|
|
FROM alg_locatie
|
|
WHERE UPPER(alg_locatie_code) = UPPER(LocatieCode);
|
|
BEGIN
|
|
SELECT alg_verdieping_key INTO VerdiepingKey
|
|
FROM cad_v_plattegrond
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND UPPER(cad_tekening_filenaam) = UPPER(TekeningNaam);
|
|
IF VerdiepingKey IS NOT NULL THEN
|
|
Plaats := 0;
|
|
ELSE
|
|
Plaats := 1;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
Plaats := 1;
|
|
END;
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'INFOI', 1, Plaats, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END cad_SLNKgetBinnenBuiten;
|
|
|
|
|
|
PROCEDURE cad_SLNKSTRUCTdelete(Session_Id IN NUMBER, Entry IN VARCHAR2) IS
|
|
BEGIN
|
|
BEGIN
|
|
DELETE FROM cad_slnkstruct
|
|
WHERE cad_slnkstruct_sessionid = Session_Id
|
|
AND cad_slnkstruct_entry = entry;
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
NULL;
|
|
END;
|
|
END cad_SLNKSTRUCTdelete;
|
|
|
|
|
|
PROCEDURE cad_SLNKSTRUCTinsertVALINT(Session_Id IN NUMBER, entry IN VARCHAR2, seqnr IN NUMBER, value IN NUMBER, ClrEntry IN NUMBER) IS
|
|
BEGIN
|
|
IF ClrEntry = 1 AND seqnr = 1 THEN
|
|
_EXEC2(_MSSQL(cad.)cad_SLNKSTRUCTdelete,Session_Id, Entry);
|
|
END IF;
|
|
BEGIN
|
|
INSERT INTO cad_slnkstruct(cad_slnkstruct_sessionId, cad_slnkstruct_entry, cad_slnkstruct_seqnr, cad_slnkstruct_valint)
|
|
VALUES(Session_Id, entry, seqnr, value);
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
NULL;
|
|
END;
|
|
END cad_SLNKSTRUCTinsertVALINT;
|
|
|
|
|
|
PROCEDURE cad_SLNKSTRUCTinsertVALSTR(Session_Id IN NUMBER, entry IN VARCHAR2, seqnr IN NUMBER, value IN VARCHAR2, ClrEntry IN NUMBER) IS
|
|
BEGIN
|
|
IF ClrEntry = 1 AND seqnr = 1 THEN
|
|
_EXEC2(_MSSQL(cad.)cad_SLNKSTRUCTdelete,Session_Id, Entry);
|
|
END IF;
|
|
BEGIN
|
|
INSERT INTO cad_slnkstruct(cad_slnkstruct_sessionId, cad_slnkstruct_entry, cad_slnkstruct_seqnr, cad_slnkstruct_valstr)
|
|
VALUES(Session_Id, entry, seqnr, value);
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
NULL;
|
|
END;
|
|
END cad_SLNKSTRUCTinsertVALSTR;
|
|
|
|
|
|
PROCEDURE cad_SLNKSTRUCTinsertVALREAL(Session_Id IN NUMBER, entry IN VARCHAR2, seqnr IN NUMBER, value IN NUMBER, ClrEntry IN NUMBER) IS
|
|
BEGIN
|
|
IF ClrEntry = 1 AND seqnr = 1 THEN
|
|
_EXEC2(_MSSQL(cad.)cad_SLNKSTRUCTdelete,Session_Id, Entry);
|
|
END IF;
|
|
BEGIN
|
|
INSERT INTO cad_slnkstruct(cad_slnkstruct_sessionId, cad_slnkstruct_entry, cad_slnkstruct_seqnr, cad_slnkstruct_valreal)
|
|
VALUES(Session_Id, entry, seqnr, value);
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
NULL;
|
|
END;
|
|
END cad_SLNKSTRUCTinsertVALREAL;
|
|
|
|
|
|
PROCEDURE cad_SLNKSTRUCTinsertVALDATE(Session_Id IN NUMBER, entry IN VARCHAR2, seqnr IN NUMBER, value IN DATE, ClrEntry IN NUMBER) IS
|
|
BEGIN
|
|
IF ClrEntry = 1 AND seqnr = 1 THEN
|
|
_EXEC2(_MSSQL(cad.)cad_SLNKSTRUCTdelete,Session_Id, Entry);
|
|
END IF;
|
|
BEGIN
|
|
INSERT INTO cad_slnkstruct(cad_slnkstruct_sessionId, cad_slnkstruct_entry, cad_slnkstruct_seqnr, cad_slnkstruct_valdate)
|
|
VALUES(Session_Id, entry, seqnr, value);
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
NULL;
|
|
END;
|
|
END cad_SLNKSTRUCTinsertVALDATE;
|
|
|
|
|
|
PROCEDURE cad_SLNKSTRUCTclear(Session_Id IN NUMBER) IS
|
|
BEGIN
|
|
BEGIN
|
|
DELETE FROM cad_slnkstruct
|
|
WHERE cad_slnkstruct_sessionid = Session_Id
|
|
AND cad_slnkstruct_entry <> 'FAC_MODULE'
|
|
AND cad_slnkstruct_entry <> 'SYNC'
|
|
AND cad_slnkstruct_entry <> 'PROJECTKEY';
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
NULL;
|
|
END;
|
|
END cad_SLNKSTRUCTclear;
|
|
|
|
PROCEDURE cad_SLNKSTRUCTclearAll(Session_Id IN NUMBER) IS
|
|
BEGIN
|
|
BEGIN
|
|
DELETE FROM cad_slnkstruct
|
|
WHERE cad_slnkstruct_sessionid = Session_Id;
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
NULL;
|
|
END;
|
|
END cad_SLNKSTRUCTclearAll;
|
|
|
|
|
|
PROCEDURE cad_SLNKSTRUCTshift(Session_Id IN NUMBER) IS
|
|
aantal NUMBER(10);
|
|
BEGIN
|
|
BEGIN
|
|
SELECT max(cad_slnkstruct_seqnr)
|
|
INTO aantal
|
|
FROM cad_slnkstruct
|
|
WHERE cad_slnkstruct_sessionid = Session_Id
|
|
AND cad_slnkstruct_entry <> 'FAC_MODULE'
|
|
AND cad_slnkstruct_entry <> 'SYNC';
|
|
IF aantal > 1
|
|
THEN
|
|
DELETE
|
|
FROM cad_slnkstruct
|
|
WHERE cad_slnkstruct_seqnr = 1
|
|
AND cad_slnkstruct_sessionid = Session_Id
|
|
AND cad_slnkstruct_entry <> 'FAC_MODULE'
|
|
AND cad_slnkstruct_entry <> 'SYNC'
|
|
AND cad_slnkstruct_entry <> 'PROJECTKEY';
|
|
COMMIT;
|
|
UPDATE cad_slnkstruct
|
|
SET cad_slnkstruct_seqnr = cad_slnkstruct_seqnr - 1
|
|
WHERE cad_slnkstruct_sessionid = Session_Id
|
|
AND cad_slnkstruct_seqnr > 1
|
|
AND cad_slnkstruct_entry <> 'FAC_MODULE'
|
|
AND cad_slnkstruct_entry <> 'SYNC'
|
|
AND cad_slnkstruct_entry <> 'PROJECTKEY';
|
|
COMMIT;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
NULL;
|
|
END;
|
|
END cad_SLNKSTRUCTshift;
|
|
|
|
|
|
FUNCTION cad_SLNKSTRUCTreadVALINT(Session_Id IN NUMBER, Entry IN VARCHAR2) RETURN NUMBER IS
|
|
Value NUMBER;
|
|
BEGIN
|
|
BEGIN
|
|
SELECT cad_slnkstruct_valint INTO Value
|
|
FROM cad_slnkstruct
|
|
WHERE cad_slnkstruct_sessionid = Session_Id
|
|
AND cad_slnkstruct_entry = Entry
|
|
AND cad_slnkstruct_seqnr = 1;
|
|
RETURN Value;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
RETURN NULL;
|
|
END cad_SLNKSTRUCTreadVALINT;
|
|
|
|
|
|
FUNCTION cad_SLNKSTRUCTreadVALINT2(Session_Id IN NUMBER, Entry IN VARCHAR2, SeqNr IN NUMBER) RETURN NUMBER IS
|
|
Value NUMBER;
|
|
BEGIN
|
|
BEGIN
|
|
SELECT cad_slnkstruct_valint INTO Value
|
|
FROM cad_slnkstruct
|
|
WHERE cad_slnkstruct_sessionid = Session_Id
|
|
AND cad_slnkstruct_entry = Entry
|
|
AND cad_slnkstruct_seqnr = SeqNr;
|
|
RETURN Value;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
RETURN NULL;
|
|
END cad_SLNKSTRUCTreadVALINT2;
|
|
|
|
|
|
FUNCTION cad_SLNKSTRUCTreadVALSTR(Session_Id IN NUMBER, Entry IN VARCHAR2) RETURN VARCHAR2 IS
|
|
Value VARCHAR2(128);
|
|
BEGIN
|
|
BEGIN
|
|
SELECT cad_slnkstruct_valstr INTO Value
|
|
FROM cad_slnkstruct
|
|
WHERE cad_slnkstruct_sessionid = Session_Id
|
|
AND cad_slnkstruct_entry = Entry
|
|
AND cad_slnkstruct_seqnr = 1;
|
|
RETURN Value;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
RETURN NULL;
|
|
END cad_SLNKSTRUCTreadVALSTR;
|
|
|
|
|
|
FUNCTION cad_SLNKSTRUCTreadVALSTR2(Session_Id IN NUMBER, Entry IN VARCHAR2, SeqNr IN NUMBER) RETURN VARCHAR2 IS
|
|
Value VARCHAR2(128);
|
|
BEGIN
|
|
BEGIN
|
|
SELECT cad_slnkstruct_valstr INTO Value
|
|
FROM cad_slnkstruct
|
|
WHERE cad_slnkstruct_sessionid = Session_Id
|
|
AND cad_slnkstruct_entry = Entry
|
|
AND cad_slnkstruct_seqnr = SeqNr;
|
|
RETURN Value;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
RETURN NULL;
|
|
END cad_SLNKSTRUCTreadVALSTR2;
|
|
|
|
|
|
FUNCTION cad_SLNKSTRUCTreadVALREAL(Session_Id IN NUMBER, Entry IN VARCHAR2) RETURN NUMBER IS
|
|
Value NUMBER;
|
|
BEGIN
|
|
BEGIN
|
|
SELECT cad_slnkstruct_valreal INTO Value
|
|
FROM cad_slnkstruct
|
|
WHERE cad_slnkstruct_sessionid = Session_Id
|
|
AND cad_slnkstruct_entry = Entry
|
|
AND cad_slnkstruct_seqnr = 1;
|
|
RETURN Value;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
RETURN NULL;
|
|
END cad_SLNKSTRUCTreadVALREAL;
|
|
|
|
|
|
FUNCTION cad_SLNKSTRUCTreadVALDATE(Session_Id IN NUMBER, Entry IN VARCHAR2) RETURN DATE IS
|
|
Value DATE;
|
|
BEGIN
|
|
BEGIN
|
|
SELECT cad_slnkstruct_valdate INTO Value
|
|
FROM cad_slnkstruct
|
|
WHERE cad_slnkstruct_sessionid = Session_Id
|
|
AND cad_slnkstruct_entry = Entry
|
|
AND cad_slnkstruct_seqnr = 1;
|
|
RETURN Value;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
RETURN NULL;
|
|
END cad_SLNKSTRUCTreadVALDATE;
|
|
|
|
|
|
PROCEDURE cad_SLNKgetDrawing(Session_Id IN NUMBER) IS
|
|
LPNName VARCHAR2(128);
|
|
tekeningnaam VARCHAR2(256);
|
|
locatie_key NUMBER(10);
|
|
locCode VARCHAR2(5);
|
|
DwgString VARCHAR2(261);
|
|
|
|
BEGIN
|
|
LocCode := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR2(Session_id, 'INFOS', 1);
|
|
LPNName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR2(Session_id, 'INFOS', 2);
|
|
SELECT alg_locatie_key INTO locatie_key
|
|
FROM alg_v_aanweziglocatie
|
|
WHERE alg_locatie_code = LocCode;
|
|
IF LPNName = 'LPN_BIS_BORING' THEN
|
|
BEGIN
|
|
SELECT cad_tekening_filenaam
|
|
INTO tekeningnaam
|
|
FROM cad_v_cad_tekening
|
|
WHERE alg_locatie_key = locatie_key
|
|
AND cad_tekening_type = 'D'
|
|
AND ins_discipline_key =
|
|
(SELECT ins_discipline_key
|
|
FROM ins_tab_discipline
|
|
WHERE UPPER(ins_discipline_omschrijving) = 'MILIEU');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
tekeningnaam := NULL;
|
|
END;
|
|
ELSE
|
|
/* Later misschien verder uitwerken voor LPN_ALG_TERREINSECTOR, LPN_BIS_PROJECT en LPN_BIS_ONTGRAVINGSVAK.
|
|
* Voorlopig voor al deze LPN's dezelfde acties.
|
|
*/
|
|
BEGIN
|
|
SELECT cad_tekening_filenaam
|
|
INTO tekeningnaam
|
|
FROM cad_v_cad_tekening
|
|
WHERE alg_locatie_key = locatie_key
|
|
AND cad_tekening_type = 'C';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
tekeningnaam := NULL;
|
|
END;
|
|
END IF;
|
|
DwgString := LocCode||CHR(92)||tekeningnaam;
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'SRCDWG', 1, DwgString, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END cad_SLNKgetDrawing;
|
|
|
|
|
|
|
|
FUNCTION cad_getLayerColor(Entry IN VARCHAR2) RETURN NUMBER IS
|
|
LayerColor NUMBER(3);
|
|
BEGIN
|
|
BEGIN
|
|
SELECT cad_symbool_kleur INTO LayerColor
|
|
FROM cad_symbool
|
|
WHERE cad_symbool_entry = Entry;
|
|
RETURN LayerColor;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
RETURN NULL;
|
|
END cad_getLayerColor;
|
|
|
|
FUNCTION cad_getLayerLinetype(Entry IN VARCHAR2) RETURN VARCHAR2 IS
|
|
LayerLinetype VARCHAR2(256);
|
|
BEGIN
|
|
BEGIN
|
|
SELECT cad_symbool_linetype INTO LayerLinetype
|
|
FROM cad_symbool
|
|
WHERE cad_symbool_entry = Entry;
|
|
RETURN LayerLinetype;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
RETURN NULL;
|
|
END cad_getLayerLinetype;
|
|
|
|
FUNCTION cad_getLayerName(Entry IN VARCHAR2) RETURN VARCHAR2 IS
|
|
LayerName VARCHAR2(256);
|
|
BEGIN
|
|
BEGIN
|
|
SELECT cad_symbool_layer INTO LayerName
|
|
FROM cad_symbool
|
|
WHERE cad_symbool_entry = Entry;
|
|
RETURN LayerName;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
RETURN NULL;
|
|
END cad_getLayerName;
|
|
|
|
|
|
#ifdef BIS
|
|
PROCEDURE cad_KILLtrajecten(Session_Id IN NUMBER, Diepte IN NUMBER, Datum IN DATE) IS
|
|
Eerste BOOLEAN;
|
|
BEGIN
|
|
DECLARE
|
|
varTemp NUMBER(10, 0);
|
|
TrajectRec_bis_traject_key NUMBER(10, 0);
|
|
CURSOR EindTrajectGroter IS
|
|
SELECT DISTINCT BIS_BT1.bis_boring_key
|
|
FROM cad_slnkstruct CAD_S, bis_v_boring_trajecten BIS_BT1
|
|
WHERE CAD_S.cad_slnkstruct_sessionid = 114866
|
|
AND CAD_S.cad_slnkstruct_entry = 'LPNKEYDELO'
|
|
AND CAD_S.cad_slnkstruct_valint = BIS_BT1.bis_boring_key
|
|
AND Diepte >=
|
|
(SELECT MAX(BIS_BT2.bis_traject_einddiepte)
|
|
FROM bis_v_boring_trajecten BIS_BT2
|
|
WHERE BIS_BT2.bis_boring_key = BIS_BT1.bis_boring_key);
|
|
|
|
|
|
/* Als Diepte > einddiepte laatste traject v/e boring -> verwijder hele boring */
|
|
BEGIN
|
|
Eerste := TRUE;
|
|
FOR TrajectRec IN EindTrajectGroter LOOP
|
|
UPDATE bis_boring
|
|
SET bis_boring_verwijderdatum = Datum
|
|
#ifndef MS_SQL
|
|
WHERE bis_boring_key = TrajectRec.bis_boring_key
|
|
#else
|
|
WHERE bis_boring_key = TO_NUMBER(TrajectRec)
|
|
#endif
|
|
AND bis_boring_verwijderdatum IS NULL;
|
|
COMMIT;
|
|
IF Eerste=TRUE THEN
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'LPNALIASDELA', 1,'LPN_BIS_BORING', 1);
|
|
#ifndef MS_SQL
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, TrajectRec.bis_boring_key, 1);
|
|
#else
|
|
varTemp := TO_NUMBER(TrajectRec);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, varTemp, 1);
|
|
#endif
|
|
Eerste := FALSE;
|
|
ELSE
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'LPNALIASDELA', 1,'LPN_BIS_BORING', 0);
|
|
#ifndef MS_SQL
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, TrajectRec.bis_boring_key, 0);
|
|
#else
|
|
varTemp := TO_NUMBER(TrajectRec);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, varTemp, 0);
|
|
#endif
|
|
END IF;
|
|
END LOOP;
|
|
END;
|
|
DECLARE
|
|
CURSOR TrajectKleinerDiepte IS
|
|
SELECT CAD_S.cad_slnkstruct_valint, bis_traject_key
|
|
FROM cad_slnkstruct CAD_S, bis_v_boring_trajecten BIS_BT
|
|
WHERE CAD_S.cad_slnkstruct_sessionid = Session_Id
|
|
AND CAD_S.cad_slnkstruct_entry = 'LPNKEYDELO'
|
|
AND CAD_S.cad_slnkstruct_valint = BIS_BT.bis_boring_key
|
|
AND BIS_BT.bis_traject_einddiepte < Diepte;
|
|
|
|
/* Hele traject valt binnen het ontgravingsvak */
|
|
BEGIN
|
|
#ifndef MS_SQL
|
|
FOR TrajectRec IN TrajectKleinerDiepte LOOP
|
|
#else
|
|
LOOP
|
|
FETCH NEXT FROM TrajectKleinerDiepte INTO varTemp, TrajectRec_bis_traject_key;
|
|
IF @@FETCH_STATUS = -1 THEN
|
|
CLOSE TrajectKleinerDiepte;
|
|
DEALLOCATE TrajectKleinerDiepte;
|
|
EXIT;
|
|
END IF;
|
|
#endif
|
|
UPDATE bis_traject
|
|
SET bis_traject_einddatum = Datum
|
|
WHERE bis_traject_key = TrajectRec.bis_traject_key
|
|
AND bis_traject_einddatum IS NULL;
|
|
/* Als een traject wordt verwijderd dan moet het ook uit het mengmonster verwijderd worden */
|
|
DELETE FROM bis_traject_mengmonster
|
|
WHERE bis_traject_mengmonster_key = TrajectRec.bis_traject_key;
|
|
COMMIT;
|
|
#ifndef MS_SQL
|
|
END LOOP;
|
|
#else
|
|
END LOOP;
|
|
#endif
|
|
END;
|
|
|
|
DECLARE
|
|
CURSOR TrajectOverlap IS
|
|
SELECT CAD_S.cad_slnkstruct_valint, BIS_BT.bis_traject_key
|
|
FROM cad_slnkstruct CAD_S, bis_v_boring_trajecten BIS_BT
|
|
WHERE CAD_S.cad_slnkstruct_sessionid = Session_Id
|
|
AND CAD_S.cad_slnkstruct_entry = 'LPNKEYDELO'
|
|
AND CAD_S.cad_slnkstruct_valint = BIS_BT.bis_boring_key
|
|
AND BIS_BT.bis_traject_begindiepte < Diepte
|
|
AND BIS_BT.bis_traject_einddiepte > Diepte;
|
|
|
|
/* Het traject valt gedeeltelijk binnen het ontgravingsvak */
|
|
BEGIN
|
|
#ifndef MS_SQL
|
|
FOR TrajectRec IN TrajectOverlap LOOP
|
|
#else
|
|
LOOP
|
|
FETCH NEXT FROM TrajectOverlap INTO varTemp, TrajectRec_bis_traject_key;
|
|
IF @@FETCH_STATUS = -1 THEN
|
|
CLOSE TrajectOverlap;
|
|
DEALLOCATE TrajectOverlap;
|
|
EXIT;
|
|
END IF;
|
|
#endif
|
|
UPDATE bis_traject
|
|
SET bis_traject_begindiepte = Diepte
|
|
WHERE bis_traject_key = TrajectRec.bis_traject_key;
|
|
COMMIT;
|
|
#ifndef MS_SQL
|
|
END LOOP;
|
|
#else
|
|
END LOOP;
|
|
#endif
|
|
END;
|
|
END cad_KILLtrajecten;
|
|
|
|
|
|
FUNCTION cad_GETBoringSymbolName(Boring_key IN NUMBER) RETURN VARCHAR2 IS
|
|
SymboolNaam VARCHAR2(128);
|
|
GrondBoring VARCHAR2(1);
|
|
GrondwaterBoring VARCHAR2(1);
|
|
AantalPeilbuizen VARCHAR2(1);
|
|
Sondering VARCHAR2(1);
|
|
BoringRec_bis_boring_key NUMBER(10, 0);
|
|
BoringRec_bis_grond_key NUMBER(10, 0);
|
|
BoringRec_bis_grondwater_key NUMBER(10, 0);
|
|
BoringRec_bis_sondering_key NUMBER(10, 0);
|
|
|
|
Cursor BoringCursor IS
|
|
SELECT bis_boring_key, bis_grond_key, bis_grondwater_key, bis_sondering_key
|
|
FROM bis_v_aanwezigbor_boringtype
|
|
WHERE bis_boring_key = Boring_Key;
|
|
|
|
BEGIN
|
|
#ifndef MS_SQL
|
|
GrondBoring := '0';
|
|
GrondwaterBoring := '0';
|
|
AantalPeilbuizen := '0';
|
|
Sondering := '0';
|
|
#else
|
|
[skip]
|
|
set @GrondBoring = '0';
|
|
set @GrondwaterBoring = '0';
|
|
set @AantalPeilbuizen = '0';
|
|
set @Sondering = '0';
|
|
[/skip]
|
|
#endif
|
|
|
|
SELECT count(*) INTO AantalPeilbuizen
|
|
FROM bis_v_aanwezigbor_boringtype
|
|
WHERE bis_boring_key = Boring_Key
|
|
AND bis_grondwater_key IS NOT NULL;
|
|
|
|
#ifndef MS_SQL
|
|
FOR BoringRec IN BoringCursor LOOP
|
|
#else
|
|
LOOP
|
|
FETCH NEXT FROM BoringCursor INTO BoringRec_bis_boring_key,
|
|
BoringRec_bis_grond_key, BoringRec_bis_grondwater_key, BoringRec_bis_sondering_key ;
|
|
IF @@FETCH_STATUS = -1 THEN
|
|
CLOSE BoringCursor;
|
|
DEALLOCATE BoringCursor;
|
|
EXIT;
|
|
END IF;
|
|
#endif
|
|
IF BoringRec.bis_sondering_key IS NOT NULL AND Sondering = 0 THEN
|
|
Sondering := 1;
|
|
END IF;
|
|
IF BoringRec.bis_grond_key IS NOT NULL AND Grondboring = 0 THEN
|
|
Grondboring := 1;
|
|
END IF;
|
|
IF BoringRec.bis_grondwater_key IS NOT NULL AND Grondwaterboring = 0 THEN
|
|
Grondwaterboring := 1;
|
|
END IF;
|
|
#ifndef MS_SQL
|
|
END LOOP;
|
|
#else
|
|
END LOOP;
|
|
#endif
|
|
|
|
IF Grondboring = 1 AND Grondwaterboring = 1 AND Sondering = 0 AND AantalPeilbuizen = 0 THEN
|
|
Grondboring := 0;
|
|
ELSIF Grondwaterboring = 1 AND Sondering = 1 THEN
|
|
AantalPeilbuizen := 1;
|
|
Grondboring := 0;
|
|
ELSIF Grondwaterboring = 1 AND AantalPeilbuizen > 1 THEN
|
|
AantalPeilbuizen := 2;
|
|
Grondboring := 0;
|
|
Sondering := 0;
|
|
ELSIF Grondwaterboring = 1 AND AantalPeilbuizen = 1 THEN
|
|
Grondboring := 0;
|
|
ELSE
|
|
Grondboring := 1;
|
|
Grondwaterboring := 0;
|
|
Sondering := 0;
|
|
END IF;
|
|
BEGIN
|
|
SELECT bis_boringblk_symbool INTO SymboolNaam
|
|
FROM bis_boringblk
|
|
WHERE bis_boringblk_grond = GrondBoring AND bis_boringblk_grondwater = GrondwaterBoring
|
|
AND bis_boringblk_aantalpb = Aantalpeilbuizen AND bis_boringblk_sondering = Sondering;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
SymboolNaam := NULL;
|
|
END;
|
|
Return SymboolNaam;
|
|
END cad_GETBoringSymbolName;
|
|
|
|
/* Eenmalige procedure t.b.v. Grafische conversie BIS */
|
|
PROCEDURE cad_SLNKConvPreDraw(Session_Id IN NUMBER, loc_x_coord IN NUMBER, loc_y_coord IN NUMBER) IS
|
|
LPNName VARCHAR2(128);
|
|
LPNKey NUMBER(10);
|
|
LPNKeyCond NUMBER(10);
|
|
Diepte NUMBER(8,2);
|
|
Veld_Key NUMBER(10);
|
|
Subloc_Code VARCHAR2(10);
|
|
Boring_nummer VARCHAR2(5);
|
|
Punt_boring BOOLEAN;
|
|
Boring_Symbol VARCHAR2(128);
|
|
Valint NUMBER;
|
|
SeqNr NUMBER(10);
|
|
Datum DATE;
|
|
|
|
BEGIN
|
|
LPNName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASPREDRAW');
|
|
LPNKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYPREDRAW');
|
|
SeqNr := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'SEQ'||'NR');
|
|
IF SeqNr IS NULL THEN
|
|
SeqNr := 1;
|
|
END IF;
|
|
/* Bepaal of er sprake is van een veld(contour) of van een puntboring */
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALSTR,Session_Id,'LPNALIASINSA', SeqNr, 'LPN_BIS_BORING', 1);
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALINT,Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
|
SELECT bis_veld_key, bis_boring_nummer INTO veld_key, boring_nummer
|
|
FROM bis_v_aanwezigboring
|
|
WHERE bis_boring_key = LPNKey;
|
|
IF veld_key IS NULL THEN
|
|
Valint := 0;
|
|
Punt_boring := TRUE; /* Er moet een boring getekend worden */
|
|
ELSE
|
|
Valint := 2; /* Er moet een contour getekend worden */
|
|
Punt_boring := FALSE;
|
|
END IF;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'DIMENSION', SeqNr, Valint, 1);
|
|
IF Punt_boring=TRUE THEN
|
|
/* Zoek juiste boringsymbool bij Boringnummer */
|
|
Boring_Symbol := _MSSQL(cad.)cad_GETBoringSymbolName(LPNKey);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'BLOCK', SeqNr, Boring_Symbol, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LAYER', SeqNr, 'BORING', 1);
|
|
END IF;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNCOLINSA', SeqNr, 'BIS_BORING_KEY', 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_TERREINSECTOR', 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNCOLCONDA', SeqNr, 'ALG_TERREINSECTOR_KEY', 1);
|
|
SELECT alg_terreinsector_key INTO LPNKeyCond
|
|
FROM bis_v_aanwezigboring
|
|
WHERE bis_boring_key = LPNKey;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'LPNKEYCONDA', SeqNr, LPNKeyCond, 1);
|
|
IF Punt_boring=TRUE THEN
|
|
_EXEC5(cad.cad_SLNKstructinsertVALREAL,Session_Id,'INSPOINTX', SeqNr, loc_x_coord, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALREAL,Session_Id,'INSPOINTY', SeqNr, loc_y_coord, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'INSPOINTCODE', SeqNr, 1, 1);
|
|
END IF;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABELCOL',SeqNr, 'BIS_BORING_NUMMER', 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABEL',SeqNr, boring_nummer, 1);
|
|
END cad_SLNKConvPreDraw;
|
|
#endif // BIS
|
|
|
|
FUNCTION CheckLPNCondKey(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_PRS_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
|
|
RETURN FALSE;
|
|
END IF;
|
|
RETURN FALSE;
|
|
END CheckLPNCondKey;
|
|
|
|
|
|
/*
|
|
FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS
|
|
VolgnrTxt VARCHAR2(10);
|
|
Volgnummer NUMBER(3);
|
|
Numeriek BOOLEAN := TRUE;
|
|
SeqNr NUMBER(10);
|
|
StreepPos NUMBER(2);
|
|
VoorDeStreep VARCHAR2(20);
|
|
ReturnString VARCHAR2(30);
|
|
|
|
BEGIN
|
|
|
|
IF Omschrijving IS NULL THEN
|
|
ReturnString := '01';
|
|
RETURN ReturnString;
|
|
ELSE
|
|
StreepPos := INSTR2(Omschrijving, '-');
|
|
IF StreepPos = 0 THEN
|
|
VolgnrTxt := Omschrijving;
|
|
ELSE
|
|
VoorDeStreep := SUBSTR(Omschrijving,1, StreepPos-1);
|
|
VolgnrTxt := SUBSTR(Omschrijving, StreepPos+1, LENGTH(omschrijving)-StreepPos);
|
|
END IF;
|
|
|
|
FOR i IN 1.. LENGTH(VolgnrTxt) LOOP
|
|
IF SUBSTR(VolgnrTxt,i,1) BETWEEN '0' AND '9' OR SUBSTR(VolgnrTxt,i,1) = ' ' THEN
|
|
Numeriek := TRUE;
|
|
ELSE
|
|
Numeriek := FALSE;
|
|
EXIT;
|
|
END IF;
|
|
END LOOP;
|
|
IF Numeriek THEN
|
|
Volgnummer := TO_NUMBER(VolgnrTxt);
|
|
Volgnummer := Volgnummer + 1;
|
|
VolgnrTxt := TO_CHAR(Volgnummer);
|
|
IF StreepPos <> 0 THEN
|
|
VolgnrTxt := '- 0'||VolgnrTxt;
|
|
ELSE
|
|
VolgnrTxt := '0'||VolgnrTxt;
|
|
END IF;
|
|
ELSE
|
|
Volgnummer := 1;
|
|
VolgnrTxt := VolgnrTxt||'- 01';
|
|
END IF;
|
|
|
|
IF VoorDeStreep IS NOT NULL THEN
|
|
ReturnString := VoorDeStreep||VolgnrTxt;
|
|
ELSE
|
|
ReturnString := VolgnrTxt;
|
|
END IF;
|
|
RETURN ReturnString;
|
|
END IF;
|
|
END Bepaal_VolgnummerTxt;
|
|
*/
|
|
|
|
|
|
#ifdef MS_SQL
|
|
PROCEDURE AddDeel(Session_Id IN NUMBER, SrtdeelKey IN NUMBER, LoadDwg IN VARCHAR2, LPNCondName IN VARCHAR2,
|
|
LPNCondKey IN NUMBER, LPNKey OUT NUMBER ) IS
|
|
#else
|
|
FUNCTION AddDeel(Session_Id IN NUMBER, SrtdeelKey IN NUMBER, LoadDwg IN VARCHAR2, LPNCondName IN VARCHAR2,
|
|
LPNCondKey IN NUMBER) RETURN NUMBER IS
|
|
#endif
|
|
Plaatsdeel ins_deel.ins_alg_ruimte_type%TYPE;
|
|
LocatieCode alg_locatie.alg_locatie_code%TYPE;
|
|
LocatieKey alg_locatie.alg_locatie_key%TYPE;
|
|
DisciplineKey ins_discipline.ins_discipline_key%TYPE;
|
|
Volgnummer NUMBER(3);
|
|
SrtgroepKey ins_srtgroep.ins_srtgroep_key%TYPE;
|
|
SrtDeelCode ins_srtdeel.ins_srtdeel_code%TYPE;
|
|
Omschrijving VARCHAR2(30);
|
|
ZoekString VARCHAR2(20);
|
|
AntiString VARCHAR2(20);
|
|
VolgNrTxt VARCHAR2(30);
|
|
SeqNr cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
#ifndef MS_SQL
|
|
LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
#endif
|
|
MaxLengte NUMBER(10);
|
|
Dummy NUMBER(10);
|
|
LabelSymbool VARCHAR2(256);
|
|
LabelOK BOOLEAN;
|
|
|
|
BEGIN
|
|
LocatieCode := _MSSQL(cad.)cad_getLocatieCode_Tekening(LoadDwg);
|
|
BEGIN
|
|
SELECT alg_locatie_key INTO LocatieKey
|
|
FROM alg_locatie
|
|
WHERE UPPER(alg_locatie_code) = UPPER(LocatieCode);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
LocatieKey := NULL;
|
|
END;
|
|
SELECT ins_discipline_key INTO DisciplineKey
|
|
FROM ins_srtgroep
|
|
WHERE ins_srtgroep_key =
|
|
(SELECT ins_srtgroep_key FROM ins_srtdeel
|
|
WHERE ins_srtdeel_key = SrtDeelKey);
|
|
|
|
IF LPNCondName = 'LPN_ALG_TERREINSECTOR' THEN
|
|
PlaatsDeel := 'T';
|
|
ELSIF LPNCondName = 'LPN_ALG_RUIMTE' THEN
|
|
PlaatsDeel := 'R';
|
|
ELSIF LPNCondName = 'LPN_PRS_WERKPLEK' THEN
|
|
PlaatsDeel := 'W';
|
|
END IF;
|
|
LabelSymbool := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LABELO');
|
|
LabelOK := FALSE;
|
|
IF LabelSymbool IS NOT NULL THEN
|
|
LabelSymbool := SUBSTR(LabelSymbool,1,10);
|
|
BEGIN
|
|
SELECT ins_deel_key INTO Dummy
|
|
FROM all_v_aanwezigdeel
|
|
WHERE ins_deel_upper = LabelSymbool;
|
|
LabelOK := FALSE;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
LabelOK := TRUE;
|
|
Omschrijving := LabelSymbool;
|
|
END;
|
|
ELSE
|
|
LabelOK := FALSE;
|
|
END IF;
|
|
IF LabelOK=FALSE THEN
|
|
SELECT RTRIM(ins_srtdeel_code_upper) INTO SrtDeelCode
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_key = SrtdeelKey;
|
|
/* vervangen door nieuwe functie in FAC_PAC.SRC
|
|
Zoekstring := RTRIM(SrtDeelCode)||' - 0%';
|
|
Antistring := RTRIM(SrtDeelCode)||' - 00%';
|
|
BEGIN
|
|
SELECT MAX(LENGTH(ins_deel_omschrijving)) INTO MaxLengte
|
|
FROM all_v_aanwezigdeel
|
|
WHERE ins_srtdeel_key = SrtdeelKey
|
|
AND ins_alg_locatie_key = LocatieKey
|
|
AND ins_deel_parent_key IS NULL
|
|
AND ins_deel_omschrijving LIKE Zoekstring
|
|
AND ins_deel_omschrijving NOT LIKE AntiString;
|
|
|
|
SELECT max(ins_deel_omschrijving) INTO Omschrijving
|
|
FROM all_v_aanwezigdeel
|
|
WHERE ins_srtdeel_key = SrtdeelKey
|
|
AND ins_alg_locatie_key = LocatieKey
|
|
AND ins_deel_parent_key IS NULL
|
|
AND ins_deel_omschrijving LIKE Zoekstring
|
|
AND ins_deel_omschrijving NOT LIKE AntiString
|
|
AND LENGTH(ins_deel_omschrijving) = MaxLengte;
|
|
|
|
IF Omschrijving IS NOT NULL THEN
|
|
VolgnrTxt := Bepaal_VolgnummerTxt(Omschrijving);
|
|
ELSE
|
|
VolgnrTxt := RTRIM(SrtdeelCode)||' - 01';
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
VolgnrTxt := RTRIM(SrtdeelCode)||' - 01';
|
|
END;
|
|
Omschrijving := VolgnrTxt;
|
|
*/
|
|
|
|
Omschrijving := _MSSQL(WEB.)FAC_F_FAC_GET_DESCRIPTION('LPN_INS_DEEL', LocatieKey, SrtDeelCode, SrtdeelKey);
|
|
END IF;
|
|
|
|
INSERT INTO ins_deel(ins_srtdeel_key, ins_alg_ruimte_key, ins_alg_ruimte_type, ins_deel_aantal,
|
|
ins_deel_omschrijving, ins_alg_locatie_key, ins_discipline_key)
|
|
VALUES(SrtdeelKey, LPNCondKey, PlaatsDeel, 1, Omschrijving, LocatieKey, DisciplineKey);
|
|
COMMIT;
|
|
BEGIN
|
|
SELECT ins_deel_key INTO LPNKey
|
|
FROM all_v_aanwezigdeel
|
|
WHERE ins_srtdeel_key = SrtdeelKey
|
|
AND ins_deel_omschrijving = omschrijving
|
|
AND ins_alg_ruimte_key = LPNCondKey
|
|
AND ins_alg_ruimte_type = PlaatsDeel;
|
|
RETURN LPNKey;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
NULL;
|
|
END;
|
|
END AddDeel;
|
|
|
|
|
|
#ifndef MS_SQL
|
|
FUNCTION cad_MaakCadTekening(LPNALIAS IN VARCHAR2, LPNKEY IN VARCHAR2, SrtTekening IN CHAR) RETURN VARCHAR2 IS
|
|
#else
|
|
PROCEDURE cad_MaakCadTekening(LPNALIAS IN VARCHAR2, LPNKEY IN VARCHAR2, SrtTekening IN CHAR, TekeningNaam OUT VARCHAR2) IS
|
|
#endif
|
|
LocatieKey alg_locatie.alg_locatie_key%TYPE;
|
|
LocatieCode alg_locatie.alg_locatie_code%TYPE;
|
|
VerdiepingKey alg_ruimte.alg_verdieping_key%TYPE;
|
|
DisciplineKey ins_discipline.ins_discipline_key%TYPE;
|
|
#ifndef MS_SQL
|
|
TekeningNaam cad_tekening.cad_tekening_filenaam%TYPE;
|
|
#endif
|
|
TekeningKey cad_tekening.cad_tekening_key%TYPE;
|
|
PlaatsDeel ins_deel.ins_alg_ruimte_type%TYPE;
|
|
|
|
BEGIN
|
|
IF LPNALIAS = 'LPN_ALG_TERREINSECTOR' THEN
|
|
#ifndef MS_SQL
|
|
SELECT alg_locatie_key,alg_locatie_code INTO LocatieKey, LocatieCode
|
|
FROM alg_locatie
|
|
WHERE alg_locatie_key =
|
|
(SELECT alg_locatie_key FROM alg_terreinsector
|
|
WHERE alg_terreinsector_key = LPNKey);
|
|
#else
|
|
SELECT LocatieKey=alg_locatie_key,LocatieCode=alg_locatie_code
|
|
FROM alg_locatie
|
|
WHERE alg_locatie_key =
|
|
(SELECT alg_locatie_key FROM alg_terreinsector
|
|
WHERE alg_terreinsector_key = LPNKey);
|
|
#endif
|
|
|
|
/* Tekening bestaat nog NIET, dus aanmaken ...
|
|
* Naam v.d. tekening is waarde v.d. toe te voegen key v.d. tabel cad_tekening + '.DWG'
|
|
*/
|
|
#ifndef MS_SQL
|
|
SELECT cad_s_cad_tekening_key.NEXTVAL INTO TekeningKey FROM DUAL;
|
|
#endif
|
|
TekeningNaam := TO_CHAR(TekeningKey)||'.DWG';
|
|
VerdiepingKey := NULL;
|
|
DisciplineKey := NULL;
|
|
ELSIF LPNALIAS = 'LPN_ALG_GEBOUW' THEN
|
|
#ifndef MS_SQL
|
|
SELECT alg_locatie_key,alg_locatie_code INTO LocatieKey, LocatieCode
|
|
FROM alg_locatie
|
|
WHERE alg_locatie_key =
|
|
(SELECT alg_locatie_key FROM alg_gebouw
|
|
WHERE alg_gebouw_key = LPNKey);
|
|
#else
|
|
SELECT LocatieKey=alg_locatie_key,LocatieCode=alg_locatie_code
|
|
FROM alg_locatie
|
|
WHERE alg_locatie_key =
|
|
(SELECT alg_locatie_key FROM alg_gebouw
|
|
WHERE alg_gebouw_key = LPNKey);
|
|
#endif
|
|
|
|
#ifndef MS_SQL
|
|
SELECT cad_s_cad_tekening_key.NEXTVAL INTO TekeningKey FROM DUAL;
|
|
#endif
|
|
TekeningNaam := TO_CHAR(TekeningKey)||'.DWG';
|
|
VerdiepingKey := NULL;
|
|
DisciplineKey := NULL;
|
|
ELSIF LPNALIAS = 'LPN_ALG_RUIMTE' THEN
|
|
#ifndef MS_SQL
|
|
SELECT alg_locatie_key,alg_locatie_code, alg_verdieping_key INTO LocatieKey, LocatieCode, VerdiepingKey
|
|
FROM alg_v_ruimte_gegevens
|
|
WHERE alg_ruimte_key = LPNKey;
|
|
#else
|
|
SELECT LocatieKey=alg_locatie_key,LocatieCode=alg_locatie_code, VerdiepingKey=alg_verdieping_key
|
|
FROM alg_v_ruimte_gegevens
|
|
WHERE alg_ruimte_key = LPNKey;
|
|
#endif
|
|
#ifndef MS_SQL
|
|
SELECT cad_s_cad_tekening_key.NEXTVAL INTO TekeningKey FROM DUAL;
|
|
#endif
|
|
TekeningNaam := TO_CHAR(TekeningKey)||'.DWG';
|
|
DisciplineKey := NULL;
|
|
ELSIF LPNALIAS = 'LPN_INS_DEEL' THEN
|
|
SELECT ins_alg_locatie_key, ins_alg_ruimte_type INTO LocatieKey, PlaatsDeel
|
|
FROM ins_deel
|
|
WHERE ins_deel_key = LPNKey;
|
|
|
|
LocatieCode := _MSSQL(cad.)Bepaal_LocatieCode(LocatieKey);
|
|
IF SrtTekening = 'D' THEN
|
|
DisciplineKey := _MSSQL(cad.)cad_f_deel_get_discipline(LPNKey);
|
|
ELSE
|
|
DisciplineKey := NULL;
|
|
END IF;
|
|
IF PlaatsDeel = 'T' THEN /* Deel bevindt zich buiten */
|
|
VerdiepingKey := NULL;
|
|
ELSE
|
|
VerdiepingKey := _MSSQL(cad.)cad_f_deel_get_verdieping(LPNKey);
|
|
END IF;
|
|
#ifndef MS_SQL
|
|
SELECT cad_s_cad_tekening_key.NEXTVAL INTO TekeningKey FROM DUAL;
|
|
#endif
|
|
TekeningNaam := TO_CHAR(TekeningKey)||'.DWG';
|
|
ELSIF LPNALIAS = 'LPN_PRS_WERKPLEK' THEN
|
|
SELECT alg_locatie_key, alg_verdieping_key INTO LocatieKey, VerdiepingKey
|
|
FROM prs_v_werkplek_gegevens
|
|
WHERE prs_werkplek_key = LPNKey;
|
|
LocatieCode := _MSSQL(cad.)Bepaal_LocatieCode(LocatieKey);
|
|
#ifndef MS_SQL
|
|
SELECT cad_s_cad_tekening_key.NEXTVAL INTO TekeningKey FROM DUAL;
|
|
#endif
|
|
TekeningNaam := TO_CHAR(TekeningKey)||'.DWG';
|
|
DisciplineKey := NULL;
|
|
END IF;
|
|
INSERT INTO cad_tekening(
|
|
#ifndef MS_SQL
|
|
cad_tekening_key,
|
|
#endif
|
|
alg_locatie_key, alg_verdieping_key, ins_discipline_key,
|
|
cad_tekening_filenaam, cad_tekening_type)
|
|
VALUES(
|
|
#ifndef MS_SQL
|
|
TekeningKey,
|
|
#endif
|
|
LocatieKey, VerdiepingKey, DisciplineKey, TekeningNaam, SrtTekening);
|
|
COMMIT;
|
|
Tekeningnaam := LocatieCode||CHR(92)||TekeningNaam;
|
|
RETURN TekeningNaam;
|
|
END cad_MaakCadTekening;
|
|
|
|
|
|
FUNCTION cad_GetSrcDwgOfEntity(Session_Id IN NUMBER, LPNAliasINSO IN VARCHAR2, LPNKey IN NUMBER) RETURN VARCHAR2 IS
|
|
SrcDwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
LocatieCode alg_locatie.alg_locatie_code%TYPE;
|
|
LocatieKey alg_locatie.alg_locatie_key%TYPE;
|
|
VerdiepingKey alg_verdieping.alg_verdieping_key%TYPE;
|
|
|
|
BEGIN
|
|
IF LPNAliasINSO = 'LPN_INS_DEEL' THEN
|
|
/* Bepaal Disciplinetekening */
|
|
SrcDwg := _MSSQL(cad.)cad_f_deel_get_tekeningnaam(LPNKey);
|
|
SELECT ins_alg_locatie_key INTO LocatieKey
|
|
FROM ins_deel
|
|
WHERE ins_deel_key = LPNKey;
|
|
Locatiecode := _MSSQL(cad.)Bepaal_locatiecode(LocatieKey);
|
|
IF SrcDwg IS NOT NULL THEN
|
|
SrcDwg := Locatiecode||CHR(92)||SrcDwg;
|
|
ELSE
|
|
SrcDwg := _MSSQL(cad.)cad_MaakCadTekening('LPN_INS_DEEL', LPNKey, 'D');
|
|
END IF;
|
|
ELSIF LPNAliasINSO = 'LPN_ALG_TERREINSECTOR' THEN
|
|
SELECT alg_locatie_key INTO Locatiekey
|
|
FROM alg_terreinsector
|
|
WHERE alg_terreinsector_key = LPNKey;
|
|
SrcDwg := _MSSQL(cad.)cad_getContourtekening(LocatieKey);
|
|
IF SrcDwg IS NULL THEN
|
|
SrcDwg := _MSSQL(cad.)cad_MaakCadTekening('LPN_ALG_TERREINSECTOR', LPNKey, 'C');
|
|
END IF;
|
|
ELSIF LPNAliasINSO = 'LPN_ALG_GEBOUW' THEN
|
|
SELECT alg_locatie_key INTO Locatiekey
|
|
FROM alg_gebouw
|
|
WHERE alg_gebouw_key = LPNKey;
|
|
SrcDwg := _MSSQL(cad.)cad_getContourtekening(LocatieKey);
|
|
IF SrcDwg IS NULL THEN
|
|
SrcDwg := _MSSQL(cad.)cad_MaakCadTekening('LPN_ALG_GEBOUW', LPNKey, 'C');
|
|
END IF;
|
|
ELSIF LPNAliasINSO = 'LPN_ALG_RUIMTE' THEN
|
|
SELECT alg_locatie_key, alg_verdieping_key
|
|
INTO locatiekey, verdiepingkey
|
|
FROM alg_v_ruimte_gegevens
|
|
WHERE alg_ruimte_key = LPNKey;
|
|
SrcDwg := _MSSQL(cad.)cad_getVerdiepCntr_tekening(Locatiekey, Verdiepingkey);
|
|
IF SrcDwg IS NULL THEN
|
|
SrcDwg := _MSSQL(cad.)cad_MaakCadTekening('LPN_ALG_RUIMTE', LPNKey, 'C');
|
|
END IF;
|
|
ELSIF LPNAliasINSO = 'LPN_PRS_WERKPLEK' THEN
|
|
SELECT alg_locatie_key, alg_verdieping_key
|
|
INTO Locatiekey, Verdiepingkey
|
|
FROM alg_v_ruimte_gegevens
|
|
WHERE alg_ruimte_key =
|
|
(SELECT prs_alg_ruimte_key FROM prs_werkplek
|
|
WHERE prs_werkplek_key = LPNKey);
|
|
SrcDwg := _MSSQL(cad.)cad_getVerdiepCntr_tekening(LocatieKey, Verdiepingkey); /* Contourtekening verdieping */
|
|
IF SrcDwg IS NULL THEN
|
|
SrcDwg := _MSSQL(cad.)cad_MaakCadTekening('LPN_PRS_WERKPLEK', LPNKey, 'C');
|
|
END IF;
|
|
-- ELSE
|
|
/* Komt hier in de toekomst een ERROR-melding ? */
|
|
-- NULL;
|
|
END IF;
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'INFOS', 1, srcdwg, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
RETURN SrcDwg;
|
|
END cad_GetSrcDwgOfEntity;
|
|
|
|
PROCEDURE cad_GetSrcDwgOfEntity2(Session_Id IN NUMBER, LPNAliasINSO IN VARCHAR2, LPNKey IN NUMBER) IS
|
|
SrcDwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
|
|
BEGIN
|
|
IF LPNAliasINSO = 'LPN_INS_DEEL' THEN
|
|
SrcDwg := _MSSQL(cad.)cad_GetSrcDwgOfEntity(Session_Id, 'LPN_INS_DEEL', LPNKey);
|
|
ELSIF LPNAliasINSO = 'LPN_ALG_TERREINSECTOR' THEN
|
|
SrcDwg := _MSSQL(cad.)cad_GetSrcDwgOfEntity(Session_Id, 'LPN_ALG_TERREINSECTOR', LPNKey);
|
|
ELSIF LPNAliasINSO = 'LPN_ALG_GEBOUW' THEN
|
|
SrcDwg := _MSSQL(cad.)cad_GetSrcDwgOfEntity(Session_Id,'LPN_ALG_GEBOUW', LPNKey);
|
|
ELSIF LPNAliasINSO = 'LPN_ALG_RUIMTE' THEN
|
|
SrcDwg := _MSSQL(cad.)cad_GetSrcDwgOfEntity(Session_Id, 'LPN_ALG_RUIMTE', LPNKey);
|
|
ELSIF LPNAliasINSO = 'LPN_PRS_WERKPLEK' THEN
|
|
SrcDwg := _MSSQL(cad.)cad_GetSrcDwgOfEntity(Session_Id, 'LPN_PRS_WERKPLEK', LPNKey);
|
|
-- ELSE
|
|
/* Komt hier in de toekomst een ERROR-melding ? */
|
|
-- NULL;
|
|
END IF;
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'INFOS', 1, srcdwg, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END cad_GetSrcDwgOfEntity2;
|
|
|
|
|
|
PROCEDURE cad_SLNKPreDraw(Session_Id IN NUMBER) IS
|
|
LPNName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
LPNKeyCond cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
#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 alg_locatie.alg_locatie_key%TYPE;
|
|
VerdiepingKey alg_verdieping.alg_verdieping_key%TYPE;
|
|
DisciplineKey ins_discipline.ins_discipline_key%TYPE;
|
|
locatiecode alg_locatie.alg_locatie_code%TYPE;
|
|
Subloc_Code alg_terreinsector.alg_terreinsector_code%TYPE;
|
|
RuimteNr alg_ruimte.alg_ruimte_nr%TYPE;
|
|
WerkplekNr prs_werkplek.prs_werkplek_volgnr%TYPE;
|
|
gebouwcode alg_gebouw.alg_gebouw_code%TYPE;
|
|
Src_Dwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
Load_Dwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
AttachDwg1 cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
AttachDwg2 cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
Valint cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
SeqNr cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
Datum DATE;
|
|
Eerste BOOLEAN;
|
|
LayerNaam ins_srtdeel.ins_srtdeel_cadlayer%TYPE;
|
|
varLayerColor ins_srtdeel.ins_srtdeel_cadlaycolor%TYPE;
|
|
varLayerLineType ins_srtdeel.ins_srtdeel_cadlaylinetype%TYPE;
|
|
Symbool ins_srtdeel.ins_srtdeel_acadsymbol%TYPE;
|
|
Opmaat ins_srtdeel.ins_srtdeel_opmaat%TYPE;
|
|
SrtdeelKey ins_srtdeel.ins_srtdeel_key%TYPE;
|
|
Dimensie ins_srtdeel.ins_srtdeel_dimensie%TYPE;
|
|
PlaatsDeel ins_deel.ins_alg_ruimte_type%TYPE;
|
|
Omschrijving VARCHAR2(30);
|
|
SrtTekening VARCHAR2(20);
|
|
varTemp VARCHAR2(100);
|
|
BEGIN
|
|
LPNName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASPREDRAW');
|
|
LPNKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYPREDRAW');
|
|
varTemp := 'SEQ' || 'NR';
|
|
SeqNr := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, varTemp);
|
|
IF SeqNr IS NULL THEN
|
|
SeqNr := 1;
|
|
END IF;
|
|
IF LPNName = 'LPN_INS_DEEL' THEN
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALSTR,Session_Id,'LPNALIASINSA', SeqNr, 'LPN_INS_DEEL', 1);
|
|
_EXEC5(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;
|
|
/* Lees de grafische gegevens uit tabel ins_srtdeel */
|
|
#ifndef MS_SQL
|
|
SELECT ins_srtdeel_cadlaycolor, ins_srtdeel_cadlaylinetype,ins_srtdeel_cadlayer, ins_srtdeel_acadsymbol,
|
|
ins_srtdeel_opmaat, ins_srtdeel_dimensie
|
|
INTO varLayerColor, varLayerLineType, LayerNaam, Symbool, Opmaat, Dimensie
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_key = SrtdeelKey;
|
|
#else
|
|
SELECT varLayerColor=ins_srtdeel_cadlaycolor,
|
|
varLayerLineType=ins_srtdeel_cadlaylinetype,
|
|
LayerNaam=ins_srtdeel_cadlayer, Symbool=ins_srtdeel_acadsymbol,
|
|
Opmaat=ins_srtdeel_opmaat, Dimensie=ins_srtdeel_dimensie
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_key = SrtdeelKey;
|
|
#endif
|
|
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALINT,Session_Id,'DIMENSION', SeqNr, Dimensie, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNCOLINSA', SeqNr, 'INS_DEEL_KEY', 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'LAYERCOLOR', SeqNr, varLayerColor, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LAYERLINETYPE', SeqNr, varLayerLinetype, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LAYER', SeqNr, Layernaam, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'BLOCK', SeqNr, Symbool, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'SCALE', SeqNr, Opmaat, 1);
|
|
_EXEC5(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 */
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_TERREINSECTOR', 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNCOLCONDA', SeqNr, 'ALG_TERREINSECTOR_KEY', 1);
|
|
ELSE /* Ruimte of Werkplek */
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_RUIMTE', 1);
|
|
_EXEC5(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;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'LPNKEYCONDA', SeqNr, LPNKeyCond, 1);
|
|
SELECT ins_alg_locatie_key INTO LocatieKey
|
|
FROM ins_deel
|
|
WHERE ins_deel_key = LPNKey;
|
|
Locatiecode := _MSSQL(cad.)Bepaal_locatiecode(LocatieKey);
|
|
/*
|
|
Src_Dwg := _MSSQL(cad.)cad_f_deel_get_tekeningnaam(LPNKey);
|
|
IF Src_Dwg IS NOT NULL THEN
|
|
Src_Dwg := Locatiecode||CHR(92)||Src_Dwg;
|
|
ELSE
|
|
Src_Dwg := _MSSQL(cad.)cad_MaakCadTekening('LPN_INS_DEEL', LPNKey, 'D');
|
|
END IF;
|
|
*/
|
|
|
|
Src_Dwg := _MSSQL(cad.)cad_GetSrcDwgOfEntity(Session_Id, 'LPN_INS_DEEL', LPNKey);
|
|
/* Bepaal Load_Dwg */
|
|
IF PlaatsDeel = 'T' THEN /* Terreinsector */
|
|
Load_Dwg := _MSSQL(cad.)cad_getPlattegrondtekening(Locatiekey);
|
|
ELSE /* Ruimte of Werkplek */
|
|
SELECT alg_verdieping_key INTO VerdiepingKey
|
|
FROM alg_ruimte
|
|
WHERE alg_ruimte_key = LPNKeyCond;
|
|
Load_Dwg := _MSSQL(cad.)cad_getVerdiepPlgrnd_tekening(LocatieKey, Verdiepingkey);
|
|
END IF;
|
|
IF Load_Dwg IS NULL THEN
|
|
Load_Dwg := _MSSQL(cad.)cad_MaakCadTekening('LPN_INS_DEEL', LPNKey, 'P');
|
|
END IF;
|
|
/* Bepaal Attachdwg's */
|
|
IF PlaatsDeel = 'T' THEN /* Terreinsector */
|
|
AttachDwg1 := _MSSQL(cad.)cad_getContourtekening(LocatieKey); /* Contourtekening locatie */
|
|
ELSE /* Ruimte of Werkplek */
|
|
AttachDwg1 := _MSSQL(cad.)cad_getVerdiepCntr_tekening(LocatieKey, Verdiepingkey); /* Contourtekening verdieping */
|
|
END IF;
|
|
IF AttachDwg1 IS NULL THEN
|
|
AttachDwg1 := _MSSQL(cad.)cad_MaakCadTekening('LPN_INS_DEEL', LPNKey, 'C');
|
|
END IF;
|
|
AttachDwg2 := Src_Dwg;
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'SRCDWG', SeqNr, Src_Dwg, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'LOADDWG', SeqNr, Load_Dwg, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', SeqNr, AttachDwg1, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', SeqNr, Attachdwg2, 0);
|
|
IF PlaatsDeel = 'T' THEN
|
|
DECLARE Cursor D_tekeningen IS
|
|
SELECT cad_tekening_filenaam
|
|
FROM cad_v_discipline
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND alg_verdieping_key IS NULL
|
|
AND ins_discipline_key IN
|
|
(SELECT ins_discipline_key
|
|
FROM INS_v_aanwezigdiscipline);
|
|
BEGIN
|
|
FOR TekenRec IN D_tekeningen LOOP
|
|
#ifndef MS_SQL
|
|
varTemp := LocatieCode||CHR(92)||Tekenrec.cad_tekening_filenaam;
|
|
#else
|
|
varTemp := LocatieCode||CHR(92)||Tekenrec;
|
|
#endif
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', SeqNr, varTemp, 0);
|
|
END LOOP;
|
|
END;
|
|
ELSE
|
|
DECLARE Cursor D_tekeningen IS
|
|
SELECT cad_tekening_filenaam
|
|
FROM cad_v_discipline
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND alg_verdieping_key = VerdiepingKey
|
|
AND ins_discipline_key IN
|
|
(SELECT ins_discipline_key
|
|
FROM INS_v_aanwezigdiscipline);
|
|
BEGIN
|
|
FOR TekenRec IN D_tekeningen LOOP
|
|
#ifndef MS_SQL
|
|
varTemp := LocatieCode||CHR(92)||Tekenrec.cad_tekening_filenaam;
|
|
#else
|
|
varTemp := LocatieCode||CHR(92)||Tekenrec;
|
|
#endif
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', SeqNr, varTemp, 0);
|
|
END LOOP;
|
|
END;
|
|
END IF;
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'LABELCOL', SeqNr, 'INS_DEEL_CADLABEL', 1);
|
|
SELECT ins_deel_omschrijving INTO Omschrijving
|
|
FROM ins_deel
|
|
WHERE ins_deel_key = LPNKey;
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'LABEL',SeqNr, Omschrijving, 1);
|
|
ELSIF LPNName = 'LPN_ALG_GEBOUW' THEN
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALSTR,Session_Id,'LPNALIASINSA', SeqNr, 'LPN_ALG_GEBOUW', 1);
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALINT,Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'DIMENSION', SeqNr, 2, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNCOLINSA', SeqNr, 'ALG_GEBOUW_KEY', 1);
|
|
varLayerColor := _MSSQL(cad.)cad_getLayercolor('ALG_GEBOUW');
|
|
varLayerLineType := _MSSQL(cad.)cad_getLayerlinetype('ALG_GEBOUW');
|
|
LayerNaam := _MSSQL(cad.)cad_getLayername('ALG_GEBOUW');
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'LAYERCOLOR', SeqNr, varLayerColor, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LAYERLINETYPE', SeqNr, varLayerLinetype, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LAYER', SeqNr, Layernaam, 1);
|
|
SELECT alg_locatie_key INTO Locatiekey
|
|
FROM alg_gebouw
|
|
WHERE alg_gebouw_key = LPNKey;
|
|
Locatiecode := _MSSQL(cad.)Bepaal_locatiecode(LocatieKey);
|
|
Load_Dwg := _MSSQL(cad.)cad_getPlattegrondtekening(LocatieKey);
|
|
IF Load_Dwg IS NULL THEN
|
|
Load_Dwg := _MSSQL(cad.)cad_MaakCadTekening('LPN_ALG_GEBOUW', LPNKey, 'P');
|
|
END IF;
|
|
/*
|
|
Src_Dwg := _MSSQL(cad.)cad_getContourtekening(LocatieKey);
|
|
IF Src_Dwg IS NULL THEN
|
|
Src_Dwg := _MSSQL(cad.)cad_MaakCadTekening('LPN_ALG_GEBOUW', LPNKey, 'C');
|
|
END IF;
|
|
*/
|
|
/* Schrijf Src_Dwg weg in cad_slnkstruct */
|
|
Src_Dwg := _MSSQL(cad.)cad_GetSrcDwgOfEntity(Session_Id, 'LPN_ALG_GEBOUW', LPNKey);
|
|
AttachDwg1 := Src_Dwg;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'SRCDWG', 1, Src_Dwg, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LOADDWG', 1, Load_Dwg, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', 1, AttachDwg1, 1);
|
|
DECLARE Cursor D_tekeningen IS
|
|
SELECT cad_tekening_filenaam
|
|
FROM cad_v_discipline
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND alg_verdieping_key IS NULL
|
|
AND ins_discipline_key IN
|
|
(SELECT ins_discipline_key
|
|
FROM INS_v_aanwezigdiscipline);
|
|
BEGIN
|
|
FOR TekenRec IN D_tekeningen LOOP
|
|
#ifndef MS_SQL
|
|
varTemp := LocatieCode||CHR(92)||Tekenrec.cad_tekening_filenaam;
|
|
#else
|
|
varTemp := LocatieCode||CHR(92)||Tekenrec;
|
|
#endif
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', SeqNr, varTemp, 0);
|
|
END LOOP;
|
|
END;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABELCOL',SeqNr, 'ALG_GEBOUW_CADLABEL', 1);
|
|
SELECT alg_gebouw_code INTO gebouwcode
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE alg_gebouw_key = LPNKey;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABEL',SeqNr, gebouwcode, 1);
|
|
ELSIF LPNName = 'LPN_ALG_RUIMTE' THEN
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALSTR,Session_Id,'LPNALIASINSA', SeqNr, 'LPN_ALG_RUIMTE', 1);
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALINT,Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'DIMENSION', SeqNr, 2, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNCOLINSA', SeqNr, 'ALG_RUIMTE_KEY', 1);
|
|
varLayerColor := _MSSQL(cad.)cad_getLayercolor('ALG_RUIMTE');
|
|
varLayerLineType := _MSSQL(cad.)cad_getLayerlinetype('ALG_RUIMTE');
|
|
LayerNaam := _MSSQL(cad.)cad_getLayername('ALG_RUIMTE');
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'LAYERCOLOR', SeqNr, varLayerColor, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LAYERLINETYPE', SeqNr, varLayerLinetype, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LAYER', SeqNr, Layernaam, 1);
|
|
SELECT alg_locatie_key, alg_verdieping_key
|
|
INTO locatiekey, verdiepingkey
|
|
FROM alg_v_ruimte_gegevens
|
|
WHERE alg_ruimte_key = LPNKey;
|
|
LocatieCode := _MSSQL(cad.)Bepaal_locatiecode(LocatieKey);
|
|
Load_Dwg := _MSSQL(cad.)cad_getVerdiepPlgrnd_tekening(Locatiekey, Verdiepingkey);
|
|
IF Load_Dwg IS NULL THEN
|
|
Load_Dwg := _MSSQL(cad.)cad_MaakCadTekening('LPN_ALG_RUIMTE', LPNKey, 'P');
|
|
END IF;
|
|
/*
|
|
Src_Dwg := _MSSQL(cad.)cad_getVerdiepCntr_tekening(Locatiekey, Verdiepingkey);
|
|
IF Src_Dwg IS NULL THEN
|
|
Src_Dwg := _MSSQL(cad.)cad_MaakCadTekening('LPN_ALG_RUIMTE', LPNKey, 'C');
|
|
END IF;
|
|
*/
|
|
/* Schrijf Src_Dwg weg in cad_slnkstruct */
|
|
Src_Dwg := _MSSQL(cad.)cad_GetSrcDwgOfEntity(Session_Id, 'LPN_ALG_RUIMTE', LPNKey);
|
|
AttachDwg1 := Src_Dwg;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'SRCDWG', SeqNr, Src_Dwg, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LOADDWG', SeqNr, Load_Dwg, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', SeqNr, AttachDwg1, 1);
|
|
DECLARE Cursor D_tekeningen IS
|
|
SELECT cad_tekening_filenaam
|
|
FROM cad_v_discipline
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND alg_verdieping_key = VerdiepingKey
|
|
AND ins_discipline_key IN
|
|
(SELECT ins_discipline_key
|
|
FROM INS_v_aanwezigdiscipline);
|
|
BEGIN
|
|
FOR TekenRec IN D_tekeningen LOOP
|
|
#ifndef MS_SQL
|
|
varTemp := LocatieCode||CHR(92)||Tekenrec.cad_tekening_filenaam;
|
|
#else
|
|
varTemp := LocatieCode||CHR(92)||Tekenrec;
|
|
#endif
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', SeqNr, varTemp, 0);
|
|
END LOOP;
|
|
END;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABELCOL', SeqNr, 'ALG_RUIMTE_CADLABEL', 1);
|
|
SELECT alg_ruimte_nr INTO RuimteNr
|
|
FROM alg_ruimte
|
|
WHERE alg_ruimte_key = LPNKey;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABEL',SeqNr, RuimteNr, 1);
|
|
ELSIF LPNNAME = 'LPN_PRS_WERKPLEK' THEN
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALSTR,Session_Id,'LPNALIASINSA', SeqNr, 'LPN_PRS_WERKPLEK', 1);
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALINT,Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'DIMENSION', SeqNr, 0, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNCOLINSA', SeqNr, 'PRS_WERKPLEK_KEY', 1);
|
|
varLayerColor := _MSSQL(cad.)cad_getLayercolor('PRS_WERKPLEK');
|
|
varLayerLineType := _MSSQL(cad.)cad_getLayerlinetype('PRS_WERKPLEK');
|
|
LayerNaam := _MSSQL(cad.)cad_getLayername('PRS_WERKPLEK');
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'LAYERCOLOR', SeqNr, varLayerColor, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LAYERLINETYPE', SeqNr, varLayerLinetype, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LAYER', SeqNr, Layernaam, 1);
|
|
SELECT cad_symbool_symbool INTO symbool
|
|
FROM cad_symbool
|
|
WHERE cad_symbool_entry = 'PRS_WERKPLEK';
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'BLOCK', SeqNr, Symbool, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'SCALE', SeqNr, 1, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'INSPOINTCODE', SeqNr, 0, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_RUIMTE', 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNCOLCONDA', SeqNr, 'ALG_RUIMTE_KEY', 1);
|
|
SELECT prs_alg_ruimte_key INTO LPNKeyCond
|
|
FROM prs_werkplek
|
|
WHERE prs_werkplek_key = LPNKey;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'LPNKEYCONDA', SeqNr, LPNKeyCond, 1);
|
|
/* Bepaal de bijbehorende tekeningen */
|
|
SELECT alg_locatie_key, alg_verdieping_key
|
|
INTO locatiekey, verdiepingkey
|
|
FROM alg_v_ruimte_gegevens
|
|
WHERE alg_ruimte_key =
|
|
(SELECT prs_alg_ruimte_key FROM prs_werkplek
|
|
WHERE prs_werkplek_key = LPNKey);
|
|
LocatieCode := _MSSQL(cad.)Bepaal_locatiecode(LocatieKey);
|
|
/*
|
|
Src_Dwg := _MSSQL(cad.)cad_getVerdiepCntr_tekening(LocatieKey, Verdiepingkey); -- Contourtekening verdieping
|
|
IF Src_Dwg IS NULL THEN
|
|
Src_Dwg := _MSSQL(cad.)cad_MaakCadTekening('LPN_PRS_WERKPLEK', LPNKey, 'C');
|
|
END IF;
|
|
*/
|
|
/* Schrijf Src_Dwg weg in cad_slnkstruct */
|
|
Src_Dwg := _MSSQL(cad.)cad_GetSrcDwgOfEntity(Session_Id, 'LPN_PRS_WERKPLEK', LPNKey);
|
|
Load_Dwg := _MSSQL(cad.)cad_getVerdiepPlgrnd_tekening(LocatieKey, Verdiepingkey); -- Plattegrondtekening verdieping
|
|
IF Load_Dwg IS NULL THEN
|
|
Load_Dwg := _MSSQL(cad.)cad_MaakCadTekening('LPN_PRS_WERKPLEK', LPNKey, 'P');
|
|
END IF;
|
|
AttachDwg1 := Src_Dwg;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'SRCDWG', SeqNr, Src_Dwg, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LOADDWG', SeqNr, Load_Dwg, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', SeqNr, AttachDwg1, 1);
|
|
DECLARE Cursor D_tekeningen IS
|
|
SELECT cad_tekening_filenaam
|
|
FROM cad_v_discipline
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND alg_verdieping_key = VerdiepingKey
|
|
AND ins_discipline_key IN
|
|
(SELECT ins_discipline_key
|
|
FROM INS_v_aanwezigdiscipline);
|
|
BEGIN
|
|
FOR TekenRec IN D_tekeningen LOOP
|
|
#ifndef MS_SQL
|
|
varTemp := LocatieCode||CHR(92)||Tekenrec.cad_tekening_filenaam;
|
|
#else
|
|
varTemp := LocatieCode||CHR(92)||Tekenrec;
|
|
#endif
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', SeqNr, varTemp, 0);
|
|
END LOOP;
|
|
END;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABELCOL',SeqNr, 'PRS_WERKPLEK_CADLABEL', 1);
|
|
SELECT prs_werkplek_volgnr INTO WerkplekNr
|
|
FROM prs_werkplek
|
|
WHERE prs_werkplek_key = LPNKey;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABEL',SeqNr, WerkplekNr, 1);
|
|
ELSIF LPNNAME = 'LPN_ALG_TERREINSECTOR' THEN
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALSTR,Session_Id,'LPNALIASINSA', SeqNr, 'LPN_ALG_TERREINSECTOR', 1);
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALINT,Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'DIMENSION', SeqNr, 2, 1);
|
|
#ifdef BIS
|
|
LayerNaam := 'SUBLOCATIE';
|
|
#else
|
|
varLayerColor := _MSSQL(cad.)cad_getLayercolor('ALG_TERREINSECTOR');
|
|
varLayerLineType := _MSSQL(cad.)cad_getLayerlinetype('ALG_TERREINSECTOR');
|
|
LayerNaam := _MSSQL(cad.)cad_getLayername('ALG_TERREINSECTOR');
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'LAYERCOLOR', SeqNr, varLayerColor, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LAYERLINETYPE', SeqNr, varLayerLinetype, 1);
|
|
#endif //NONBIS
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LAYER', SeqNr, Layernaam, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNCOLINSA', SeqNr, 'ALG_TERREINSECTOR_KEY', 1);
|
|
SELECT alg_locatie_key INTO Locatiekey
|
|
FROM alg_terreinsector
|
|
WHERE alg_terreinsector_key = LPNKey;
|
|
LocatieCode := _MSSQL(cad.)Bepaal_locatiecode(LocatieKey);
|
|
Load_Dwg := _MSSQL(cad.)cad_getPlattegrondtekening(LocatieKey);
|
|
IF Load_Dwg IS NULL THEN
|
|
Load_Dwg := _MSSQL(cad.)cad_MaakCadTekening('LPN_ALG_TERREINSECTOR', LPNKey, 'P');
|
|
END IF;
|
|
/*
|
|
Src_Dwg := _MSSQL(cad.)cad_getContourtekening(LocatieKey);
|
|
IF Src_Dwg IS NULL THEN
|
|
Src_Dwg := _MSSQL(cad.)cad_MaakCadTekening('LPN_ALG_TERREINSECTOR', LPNKey, 'C');
|
|
END IF;
|
|
*/
|
|
/* Schrijf Src_Dwg weg in cad_slnkstruct */
|
|
Src_Dwg := _MSSQL(cad.)cad_GetSrcDwgOfEntity(Session_Id, 'LPN_ALG_TERREINSECTOR', LPNKey);
|
|
AttachDwg1 := Src_Dwg;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'SRCDWG', 1, Src_Dwg, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LOADDWG', 1, Load_Dwg, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', 1, AttachDwg1, 1);
|
|
DECLARE Cursor D_tekeningen IS
|
|
SELECT cad_tekening_filenaam
|
|
FROM cad_v_discipline
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND alg_verdieping_key IS NULL
|
|
AND ins_discipline_key IN
|
|
(SELECT ins_discipline_key
|
|
FROM INS_v_aanwezigdiscipline);
|
|
BEGIN
|
|
FOR TekenRec IN D_tekeningen LOOP
|
|
#ifndef MS_SQL
|
|
varTemp := LocatieCode||CHR(92)||Tekenrec.cad_tekening_filenaam;
|
|
#else
|
|
varTemp := LocatieCode||CHR(92)||Tekenrec;
|
|
#endif
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', SeqNr, varTemp, 0);
|
|
END LOOP;
|
|
END;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABELCOL',SeqNr, 'ALG_TERREINSECTOR_CADLABEL', 1);
|
|
SELECT alg_terreinsector_code INTO Subloc_code
|
|
FROM alg_v_aanwezigterreinsector
|
|
WHERE alg_terreinsector_key = LPNKey;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABEL',SeqNr, Subloc_code, 1);
|
|
#ifdef BIS
|
|
/* Zet alle boringen die binnen deze sublocatie vallen in de tabel cad_slnkstruct */
|
|
DECLARE
|
|
CURSOR Sectorboring IS
|
|
SELECT bis_boring_key
|
|
FROM bis_v_aanwezigboring
|
|
WHERE alg_terreinsector_key = LPNKey;
|
|
BEGIN
|
|
Eerste := TRUE;
|
|
FOR BoringRec IN Sectorboring LOOP
|
|
IF Eerste=TRUE THEN
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'LPNALIASCONDAOUTER', 1,'LPN_BIS_BORING', 1);
|
|
#ifndef MS_SQL
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYCONDAOUTER', 1, BoringRec.bis_boring_key, 1);
|
|
#else
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYCONDAOUTER', 1, BoringRec, 1);
|
|
#endif
|
|
Eerste := FALSE;
|
|
ELSE
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'LPNALIASCONDAOUTER', 1,'LPN_BIS_BORING', 0);
|
|
#ifndef MS_SQL
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYCONDAOUTER', 1, BoringRec.bis_boring_key, 0);
|
|
#else
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYCONDAOUTER', 1, BoringRec, 0);
|
|
#endif
|
|
END IF;
|
|
END LOOP;
|
|
END;
|
|
ELSIF LPNNAME = 'LPN_BIS_BORING' THEN
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALSTR,Session_Id,'LPNALIASINSA', SeqNr, 'LPN_BIS_BORING', 1);
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALINT,Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
|
/* Bepaal of er sprake is van een veld(contour) of van een puntboring */
|
|
SELECT bis_veld_key, bis_boring_nummer INTO veld_key, boring_nummer
|
|
FROM bis_v_aanwezigboring
|
|
WHERE bis_boring_key = LPNKey;
|
|
IF veld_key IS NULL THEN
|
|
Valint := 0;
|
|
Punt_boring := TRUE; /* Er moet een boring getekend worden */
|
|
ELSE
|
|
Valint := 2; /* Er moet een contour getekend worden */
|
|
Punt_boring := FALSE;
|
|
END IF;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'DIMENSION', SeqNr, Valint, 1);
|
|
/* Zoek de juiste tekeningen bij de boring */
|
|
BEGIN
|
|
SELECT ins_discipline_key INTO DisciplineKey
|
|
FROM ins_discipline
|
|
WHERE ins_discipline_omschrijving = 'Milieu';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
DisciplineKey := NULL;
|
|
END;
|
|
Locatiekey := bis.bis_boring_get_locatie(LPNKey);
|
|
Src_Dwg := _MSSQL(cad.)cad_getDisciplinetekening(LocatieKey, DisciplineKey);
|
|
Load_Dwg := _MSSQL(cad.)cad_getPlattegrondtekening(LocatieKey);
|
|
AttachDwg1 := _MSSQL(cad.)cad_getContourtekening(LocatieKey);
|
|
AttachDwg2 := Src_Dwg;
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'SRCDWG', SeqNr, Src_Dwg, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'LOADDWG', SeqNr, Load_Dwg, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', SeqNr, AttachDwg1, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', SeqNr, Attachdwg2, 0);
|
|
IF Punt_boring=TRUE THEN
|
|
/* Zoek juiste boringsymbool bij Boringnummer */
|
|
Boring_Symbol := _MSSQL(cad.)cad_GETBoringSymbolName(LPNKey);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'BLOCK', SeqNr, Boring_Symbol, 1);
|
|
END IF;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LAYER', SeqNr, 'BORING', 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNCOLINSA', SeqNr, 'BIS_BORING_KEY', 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_TERREINSECTOR', 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNCOLCONDA', SeqNr, 'ALG_TERREINSECTOR_KEY', 1);
|
|
SELECT alg_terreinsector_key INTO LPNKeyCond
|
|
FROM bis_v_aanwezigboring
|
|
WHERE bis_boring_key = LPNKey;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'LPNKEYCONDA', SeqNr, LPNKeyCond, 1);
|
|
IF Punt_boring=TRUE THEN
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'INSPOINTCODE', SeqNr, 0, 1);
|
|
END IF;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABELCOL',SeqNr, 'BIS_BORING_NUMMER', 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABEL',SeqNr, boring_nummer, 1);
|
|
ELSIF LPNNAME = 'LPN_BIS_PROJECT' THEN
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALSTR,Session_Id,'LPNALIASINSA', SeqNr, 'LPN_BIS_PROJECT', 1);
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALINT,Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'DIMENSION', SeqNr, 2, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LAYER', SeqNr, 'PROJECT', 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNCOLINSA', SeqNr, 'BIS_PROJECT_KEY', 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABELCOL',SeqNr, 'BIS_PROJECT_NR', 1);
|
|
SELECT alg_locatie_key INTO Locatiekey
|
|
FROM bis_project
|
|
WHERE bis_project_key = LPNKey;
|
|
Src_Dwg := _MSSQL(cad.)cad_getContourtekening(LocatieKey);
|
|
Load_Dwg := _MSSQL(cad.)cad_getPlattegrondtekening(LocatieKey);
|
|
AttachDwg1 := Src_Dwg;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'SRCDWG', 1, Src_Dwg, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LOADDWG', 1, Load_Dwg, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', 1, AttachDwg1, 1);
|
|
SELECT bis_project_nr INTO ProjectNr
|
|
FROM bis_v_aanwezigproject
|
|
WHERE bis_project_key = LPNKey;
|
|
ProjectNr := SUBSTR(ProjectNr,1,2)||'-'||SUBSTR(ProjectNr,3,6);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABEL',SeqNr, ProjectNr, 1);
|
|
ELSIF LPNName = 'LPN_BIS_ONTGRAVINGSVAK' THEN
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALSTR,Session_Id,'LPNALIASINSA', SeqNr, 'LPN_BIS_ONTGRAVINGSVAK', 1);
|
|
_EXEC5(cad.cad_SLNKSTRUCTinsertVALINT,Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALINT,Session_Id,'DIMENSION', SeqNr, 2, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LAYER', SeqNr, 'ONTGRAVINSVAK', 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LPNCOLINSA', SeqNr, 'BIS_ONTGRAVINGSVAK_KEY', 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABELCOL',SeqNr, 'BIS_ONTGRAVINGSVAK_NAAM', 1);
|
|
SELECT bis_ontgravingsvak_naam INTO Ontgraafvak_naam
|
|
FROM bis_ontgravingsvak
|
|
WHERE bis_ontgravingsvak_key = LPNKey;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LABEL',SeqNr, Ontgraafvak_naam, 1);
|
|
SELECT alg_locatie_key INTO LocatieKey
|
|
FROM bis_ontgravingsvak
|
|
WHERE bis_ontgravingsvak_key = LPNKey;
|
|
Src_Dwg := _MSSQL(cad.)cad_getContourtekening(LocatieKey);
|
|
Load_Dwg := _MSSQL(cad.)cad_getPlattegrondtekening(LocatieKey);
|
|
AttachDwg1 := Src_Dwg;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'SRCDWG', 1, Src_Dwg, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'LOADDWG', 1, Load_Dwg, 1);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'ATTACHDWG', 1, AttachDwg1, 1);
|
|
SELECT bis_ontgravingsvak_diepte INTO Diepte
|
|
FROM bis_ontgravingsvak
|
|
WHERE bis_ontgravingsvak_key = LPNKey;
|
|
_EXEC5(cad.cad_SLNKstructinsertVALREAL,Session_Id,'DEPTH', SeqNr, Diepte, 1);
|
|
SELECT bis_ontgravingsvak_aanmaak INTO Datum
|
|
FROM bis_ontgravingsvak
|
|
WHERE bis_ontgravingsvak_key = LPNKey;
|
|
|
|
varTemp := TO_CHAR(Datum);
|
|
_EXEC5(cad.cad_SLNKstructinsertVALSTR,Session_Id,'DATE', SeqNr, varTemp, 1);
|
|
#endif //BIS
|
|
END IF;
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END cad_SLNKPreDraw;
|
|
|
|
PROCEDURE cad_SLNKPrePostUndo(Session_id IN NUMBER, RetValue OUT BOOLEAN
|
|
) IS
|
|
varLPNAliasINSO cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
varLPNKeyINSO cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
Code VARCHAR2(10);
|
|
RuimteKey alg_ruimte.alg_ruimte_key%TYPE;
|
|
WerkplekNr prs_werkplek.prs_werkplek_volgnr%TYPE;
|
|
VerdiepingKey alg_ruimte.alg_verdieping_key%TYPE;
|
|
LocatieKey alg_locatie.alg_locatie_key%TYPE;
|
|
SrtdeelKey ins_srtdeel.ins_srtdeel_key%TYPE;
|
|
Omschrijving VARCHAR2(30);
|
|
Dummy NUMBER(10);
|
|
varNow DATE;
|
|
BEGIN
|
|
#ifndef MS_SQL
|
|
varNow := SYSDATE;
|
|
#else
|
|
SELECT myGetDate INTO varNow FROM vwGetDate;
|
|
#endif
|
|
|
|
varLPNAliasINSO := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASINSO');
|
|
varLPNKeyINSO := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYINSO');
|
|
IF varLPNKeyINSO IS NOT NULL THEN
|
|
BEGIN
|
|
IF varLPNAliasINSO = 'LPN_ALG_TERREINSECTOR' THEN
|
|
SELECT alg_locatie_key, alg_terreinsector_code INTO LocatieKey, Code
|
|
FROM alg_terreinsector
|
|
WHERE alg_terreinsector_key = varLPNKeyINSO;
|
|
BEGIN
|
|
SELECT alg_terreinsector_key INTO Dummy
|
|
FROM alg_v_aanwezigterreinsector
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND alg_terreinsector_code = Code;
|
|
RetValue := FALSE;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
/* Verwijderdatum wordt NULL */
|
|
UPDATE alg_terreinsector
|
|
SET alg_terreinsector_verwijder = NULL,
|
|
alg_terreinsector_getekend = varNow /* It's CAD */
|
|
WHERE alg_terreinsector_key = varLPNKeyINSO;
|
|
RetValue := TRUE;
|
|
END;
|
|
ELSIF varLPNAliasINSO = 'LPN_ALG_GEBOUW' THEN
|
|
SELECT alg_locatie_key, alg_gebouw_code INTO LocatieKey, Code
|
|
FROM alg_gebouw
|
|
WHERE alg_gebouw_key = varLPNKeyINSO;
|
|
BEGIN
|
|
SELECT alg_gebouw_key INTO Dummy
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND alg_gebouw_code = Code;
|
|
RetValue := FALSE;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
/* Verwijderdatum wordt NULL */
|
|
UPDATE alg_gebouw
|
|
SET alg_gebouw_verwijder = NULL,
|
|
alg_gebouw_getekend = varNow /* It's CAD */
|
|
WHERE alg_gebouw_key = varLPNKeyINSO;
|
|
RetValue := TRUE;
|
|
END;
|
|
ELSIF varLPNAliasINSO = 'LPN_ALG_RUIMTE' THEN
|
|
SELECT alg_verdieping_key, alg_ruimte_upper_nr INTO VerdiepingKey, Code
|
|
FROM alg_ruimte
|
|
WHERE alg_ruimte_key = varLPNKeyINSO;
|
|
BEGIN
|
|
SELECT alg_ruimte_key INTO Dummy
|
|
FROM alg_v_aanwezigruimte
|
|
WHERE alg_verdieping_key = VerdiepingKey
|
|
AND alg_ruimte_upper_nr = Code;
|
|
RetValue := FALSE;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
/* Verwijderdatum wordt NULL */
|
|
UPDATE alg_ruimte
|
|
SET alg_ruimte_verwijder = NULL,
|
|
alg_ruimte_getekend = varNow /* It's CAD */
|
|
WHERE alg_ruimte_key = varLPNKeyINSO;
|
|
RetValue := TRUE;
|
|
END;
|
|
ELSIF varLPNAliasINSO = 'LPN_PRS_WERKPLEK' THEN
|
|
SELECT prs_alg_ruimte_key, prs_werkplek_volgnr INTO RuimteKey, Werkpleknr
|
|
FROM prs_werkplek
|
|
WHERE prs_werkplek_key = varLPNKeyINSO;
|
|
BEGIN
|
|
SELECT prs_werkplek_key INTO Dummy
|
|
FROM prs_v_aanwezigwerkplek
|
|
WHERE prs_alg_ruimte_key = RuimteKey
|
|
AND prs_werkplek_volgnr = WerkplekNr;
|
|
RetValue := FALSE;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
/* Verwijderdatum wordt NULL */
|
|
UPDATE prs_werkplek
|
|
SET prs_werkplek_verwijder = NULL,
|
|
prs_werkplek_getekend = varNow /* IT's CAD */
|
|
WHERE prs_werkplek_key = varLPNKeyINSO;
|
|
RetValue := TRUE;
|
|
END;
|
|
ELSIF varLPNAliasINSO = 'LPN_INS_DEEL' THEN
|
|
SELECT ins_alg_locatie_key, ins_srtdeel_key, ins_deel_upper INTO LocatieKey, SrtdeelKey, Omschrijving
|
|
FROM ins_deel
|
|
WHERE ins_deel_key = varLPNKeyINSO;
|
|
BEGIN
|
|
SELECT ins_deel_key INTO dummy
|
|
FROM all_v_aanwezigdeel
|
|
WHERE ins_alg_locatie_key = LocatieKey
|
|
AND ins_srtdeel_key = SrtDeelKey
|
|
AND ins_deel_parent_key IS NULL
|
|
AND ins_deel_upper = Omschrijving;
|
|
RetValue := FALSE;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
UPDATE ins_deel
|
|
SET ins_deel_verwijder = NULL,
|
|
ins_deel_getekend = varNow /* It's CAD */
|
|
WHERE ins_deel_key = varLPNKeyINSO;
|
|
RetValue := TRUE;
|
|
END;
|
|
ELSE
|
|
RetValue := FALSE;
|
|
RETURN;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RetValue := FALSE;
|
|
END;
|
|
ELSE
|
|
RetValue := FALSE; /* Geen undo gegevens vanuit AutoCAD - gewoon toevoegen via PrePostDraw */
|
|
END IF;
|
|
IF RetValue=TRUE THEN
|
|
_EXEC1(_MSSQL(cad.)cad_SLNKSTRUCTclear,Session_Id);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id,'LPNALIASPREDRAW', 1, varLPNAliasINSO, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id,'LPNKEYPREDRAW', 1, varLPNKeyINSO, 1);
|
|
_EXEC1(_MSSQL(cad.)cad_SLNKPreDraw,Session_Id);
|
|
END IF;
|
|
END cad_SLNKPrePostUndo;
|
|
|
|
|
|
PROCEDURE cad_SLNKPrePostDimensie0(Session_Id IN NUMBER) IS
|
|
Dimensie ins_srtdeel.ins_srtdeel_dimensie%TYPE;
|
|
LayerNaam ins_srtdeel.ins_srtdeel_cadlayer%TYPE;
|
|
Symbool ins_srtdeel.ins_srtdeel_acadsymbol%TYPE;
|
|
SymboolLayer ins_srtdeel.ins_srtdeel_cadlayer%TYPE;
|
|
LabelSymbool VARCHAR2(256);
|
|
SrtdeelKey ins_srtdeel.ins_srtdeel_key%TYPE;
|
|
LPNName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
LPNCondName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
LPNCondKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
BlockNaam ins_srtdeel.ins_srtdeel_acadsymbol%TYPE;
|
|
LPNCondKeyOK BOOLEAN;
|
|
RecordAdded BOOLEAN;
|
|
RuimteNr alg_ruimte.alg_ruimte_nr%TYPE;
|
|
RuimteKey alg_ruimte.alg_ruimte_key%TYPE;
|
|
WerkplekNr prs_werkplek.prs_werkplek_volgnr%TYPE;
|
|
LoadDwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
SeqNr cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
Omschrijving VARCHAR2(30);
|
|
Dummy NUMBER(10);
|
|
LabelOK BOOLEAN;
|
|
varLPNAliasINSO cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
varLPNKeyINSO cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
|
|
BEGIN
|
|
Dimensie := 0;
|
|
LayerNaam := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LAYER');
|
|
LPNCondName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
|
LPNCondKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYCONDO');
|
|
BlockNaam := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'BLOCK');
|
|
LoadDwg := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LOA'||'DDWG');
|
|
IF LPNCondKey IS NOT NULL THEN
|
|
SELECT cad_symbool_symbool, cad_symbool_layer INTO Symbool, SymboolLayer
|
|
FROM cad_symbool
|
|
WHERE cad_symbool_entry = 'PRS_WERKPLEK';
|
|
IF BlockNaam = Symbool -- i.o.v. mb AND LayerNaam = SymboolLayer
|
|
THEN
|
|
/* Het is een werkplek - Check eerst of LPNCondkey wel ruimtekey is */
|
|
IF LPNCondName = 'LPN_ALG_RUIMTE' THEN
|
|
LPNCondKeyOK := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF LPNCondKeyOK=FALSE THEN
|
|
SeqNr := 2;
|
|
LOOP
|
|
LPNCondName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', SeqNr);
|
|
LPNCondKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', SeqNr);
|
|
IF LPNCondKey IS NULL THEN
|
|
EXIT;
|
|
END IF;
|
|
LPNCondKeyOK := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF LPNCondKeyOK=TRUE AND LPNCondName = 'LPN_ALG_RUIMTE' THEN
|
|
EXIT;
|
|
END IF;
|
|
LPNCondKeyOK := FALSE;
|
|
SeqNr := SeqNr + 1;
|
|
END LOOP;
|
|
END IF;
|
|
ELSE
|
|
LPNCondKeyOK := FALSE;
|
|
END IF;
|
|
IF LPNCondKeyOK=TRUE THEN
|
|
LabelSymbool := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LABELO');
|
|
LabelOK := FALSE;
|
|
IF LabelSymbool IS NOT NULL THEN
|
|
LabelSymbool := SUBSTR(LabelSymbool,1,3);
|
|
/* Vanuit AutoCAD voorstel voor een label binnengekregen */
|
|
BEGIN
|
|
SELECT prs_werkplek_key INTO Dummy
|
|
FROM all_v_aanwezigwerkplek
|
|
WHERE prs_alg_ruimte_key = LPNCondKey
|
|
AND prs_werkplek_volgnr = TO_NUMBER(LabelSymbool);
|
|
LabelOK := FALSE;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
/* Label bestaat nog niet */
|
|
LabelOK := TRUE;
|
|
WerkplekNr := TO_NUMBER(LabelSymbool);
|
|
Omschrijving := LabelSymbool;
|
|
END;
|
|
ELSE
|
|
LabelOK := FALSE;
|
|
END IF;
|
|
IF LabelOK=FALSE THEN
|
|
/* Bepaal het volgnummer v/d toe te voegen werkplek */
|
|
BEGIN
|
|
SELECT MAX(prs_werkplek_volgnr) + 1
|
|
INTO WerkplekNr
|
|
FROM all_v_aanwezigwerkplek
|
|
WHERE prs_alg_ruimte_key = LPNCondKey
|
|
AND prs_werkplek_module = 'PRR';
|
|
IF WerkplekNr IS NULL THEN
|
|
WerkplekNr := 1;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
werkplekNr := 1;
|
|
END;
|
|
|
|
/* Omschrijving */
|
|
SELECT alg_ruimte_nr INTO RuimteNr
|
|
FROM alg_ruimte
|
|
WHERE alg_ruimte_key = LPNCondKey;
|
|
Omschrijving := RuimteNr||' - '||TO_CHAR(WerkplekNr);
|
|
END IF;
|
|
|
|
INSERT INTO prs_werkplek(prs_werkplek_module, prs_werkplek_volgnr, prs_werkplek_omschrijving,
|
|
prs_alg_ruimte_key, prs_werkplek_getekend)
|
|
VALUES ('PRR', WerkplekNr, Omschrijving, LPNCondKey, SYSDATE);
|
|
RecordAdded := TRUE;
|
|
/* Bepaal sleutel van zojuist toegevoegde werkplek i.v.m. aanroep Predraw */
|
|
LPNName := 'LPN_PRS_WERKPLEK';
|
|
BEGIN
|
|
SELECT prs_werkplek_key INTO LPNKey
|
|
FROM prs_v_aanwezigwerkplek
|
|
WHERE prs_alg_ruimte_key = LPNCondKey
|
|
AND prs_werkplek_volgnr = WerkplekNr;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
LPNKey := NULL;
|
|
END;
|
|
ELSE
|
|
RecordAdded := FALSE;
|
|
END IF;
|
|
ELSE
|
|
/* Het is geen WERKPLEK - check of het een srtdeel is */
|
|
|
|
/* gebruik in dit geval geen MIN() ....
|
|
SELECT MIN(ins_srtdeel_key) INTO SrtDeelKey
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_dimensie = Dimensie
|
|
AND ins_srtdeel_cadlayer = UPPER(LayerNaam)
|
|
AND ins_srtdeel_acadsymbol = UPPER(BlockNaam)
|
|
AND ins_srtdeel_verwijder IS NULL;
|
|
|
|
... maar gebruik hiervoor in de plaats rownum = 1 */
|
|
BEGIN
|
|
SELECT _MSSQL(top 1) ins_srtdeel_key INTO SrtDeelKey
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_dimensie = Dimensie
|
|
AND ins_srtdeel_cadlayer = UPPER(LayerNaam)
|
|
AND ins_srtdeel_acadsymbol = UPPER(BlockNaam)
|
|
AND ins_srtdeel_verwijder IS NULL
|
|
_ORACLE(AND rownum = 1);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
SrtDeelKey := NULL;
|
|
END;
|
|
|
|
IF SrtDeelKey IS NOT NULL THEN
|
|
/* Het is een srtdeel, dus voeg een deel toe */
|
|
IF LPNCondName = 'LPN_ALG_TERREINSECTOR' OR LPNCondName = 'LPN_ALG_RUIMTE' OR
|
|
LPNCondName = 'LPN_PRS_WERKPLEK'
|
|
THEN
|
|
LPNCondKeyOK := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF LPNCondKeyOK=FALSE THEN
|
|
Seqnr := 2;
|
|
LOOP
|
|
LPNCondName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', Seqnr);
|
|
LPNCondKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
|
IF LPNCondKey IS NULL THEN
|
|
EXIT;
|
|
END IF;
|
|
LPNCondKeyOK := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF (LPNCondKeyOK=TRUE AND LPNCondName = 'LPN_ALG_TERREINSECTOR')
|
|
OR (LPNCondKeyOK=TRUE AND LPNCondName = 'LPN_ALG_RUIMTE')
|
|
OR (LPNCondKeyOK=TRUE AND LPNCondName = 'LPN_PRS_WERKPLEK') THEN
|
|
EXIT;
|
|
END IF;
|
|
LPNCondKeyOK := FALSE;
|
|
Seqnr := Seqnr + 1;
|
|
END LOOP;
|
|
END IF;
|
|
ELSE
|
|
LPNCondKeyOK := FALSE;
|
|
END IF;
|
|
IF LPNCondKeyOK=TRUE THEN
|
|
LPNName := 'LPN_INS_DEEL';
|
|
#ifndef MS_SQL
|
|
LPNKey := _MSSQL(cad.)AddDeel(Session_id, SrtdeelKey, LoadDwg, LPNCondName, LPNCondKey);
|
|
#else
|
|
_EXEC6(_MSSQL(cad.)AddDeel,Session_id, SrtdeelKey, LoadDwg, LPNCondName, LPNCondKey, LPNKey);
|
|
#endif
|
|
RecordAdded:= TRUE;
|
|
ELSE
|
|
RecordAdded:= FALSE;
|
|
END IF;
|
|
ELSE
|
|
/*
|
|
SELECT MIN(ins_srtdeel_key) INTO SrtDeelKey
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_dimensie = Dimensie
|
|
AND ins_srtdeel_acadsymbol = UPPER(BlockNaam)
|
|
AND ins_srtdeel_verwijder IS NULL;
|
|
*/
|
|
BEGIN
|
|
SELECT _MSSQL(top 1) ins_srtdeel_key INTO SrtDeelKey
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_dimensie = Dimensie
|
|
AND ins_srtdeel_acadsymbol = UPPER(BlockNaam)
|
|
AND ins_srtdeel_verwijder IS NULL
|
|
_ORACLE(AND rownum = 1);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
SrtDeelKey := NULL;
|
|
END;
|
|
|
|
IF SrtDeelKey IS NOT NULL THEN
|
|
/* Het is een srtdeel */
|
|
IF LPNCondName = 'LPN_ALG_TERREINSECTOR' OR LPNCondName = 'LPN_ALG_RUIMTE' OR
|
|
LPNCondName = 'LPN_PRS_WERKPLEK'
|
|
THEN
|
|
LPNCondKeyOK := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF LPNCondKeyOK=FALSE THEN
|
|
Seqnr := 2;
|
|
LOOP
|
|
LPNCondName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', Seqnr);
|
|
LPNCondKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
|
IF LPNCondKey IS NULL THEN
|
|
EXIT;
|
|
END IF;
|
|
LPNCondKeyOK := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF (LPNCondKeyOK=TRUE AND LPNCondName = 'LPN_ALG_TERREINSECTOR')
|
|
OR (LPNCondKeyOK=TRUE AND LPNCondName = 'LPN_ALG_RUIMTE')
|
|
OR (LPNCondKeyOK=TRUE AND LPNCondName = 'LPN_PRS_WERKPLEK') THEN
|
|
EXIT;
|
|
END IF;
|
|
LPNCondKeyOK := FALSE;
|
|
Seqnr := Seqnr + 1;
|
|
END LOOP;
|
|
END IF;
|
|
ELSE
|
|
LPNCondKeyOK := FALSE;
|
|
END IF;
|
|
|
|
IF LPNCondKeyOK=TRUE THEN
|
|
LPNName := 'LPN_INS_DEEL';
|
|
#ifndef MS_SQL
|
|
LPNKey := _MSSQL(cad.)AddDeel(Session_id,SrtdeelKey, LoadDwg, LPNCondName, LPNCondKey);
|
|
#else
|
|
_EXEC6(_MSSQL(cad.)AddDeel,Session_id,SrtdeelKey, LoadDwg, LPNCondName, LPNCondKey, LPNKey);
|
|
#endif
|
|
RecordAdded:= TRUE;
|
|
ELSE
|
|
RecordAdded:= FALSE;
|
|
END IF;
|
|
ELSE
|
|
RecordAdded:= FALSE;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
_EXEC1(_MSSQL(cad.)cad_SLNKSTRUCTclear,Session_Id);
|
|
IF RecordAdded=TRUE THEN
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id,'LPNALIASPREDRAW', 1, LPNName, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id,'LPNKEYPREDRAW', 1, LPNKey, 1);
|
|
_EXEC1(_MSSQL(cad.)cad_SLNKPreDraw,Session_Id);
|
|
ELSE
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END IF;
|
|
END cad_SLNKPrePostDimensie0;
|
|
|
|
PROCEDURE cad_SLNKPrePostDimensie1(Session_Id IN NUMBER) IS
|
|
Dimensie ins_srtdeel.ins_srtdeel_dimensie%TYPE;
|
|
LayerNaam ins_srtdeel.ins_srtdeel_cadlayer%TYPE;
|
|
Symbool ins_srtdeel.ins_srtdeel_acadsymbol%TYPE;
|
|
SrtdeelKey ins_srtdeel.ins_srtdeel_key%TYPE;
|
|
LPNName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
LPNCondName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
LPNCondKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
BlockNaam ins_srtdeel.ins_srtdeel_acadsymbol%TYPE;
|
|
LPNCondKeyOK BOOLEAN;
|
|
RecordAdded BOOLEAN;
|
|
LoadDwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
SeqNr cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
Omschrijving VARCHAR2(30);
|
|
|
|
BEGIN
|
|
Dimensie := 1;
|
|
LPNCondName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
|
LPNCondKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYCONDO');
|
|
LayerNaam := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LAYER');
|
|
LoadDwg := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LOA'||'DDWG');
|
|
/* Check of het een soortdeel is... */
|
|
/*
|
|
SELECT MIN(ins_srtdeel_key) INTO SrtDeelKey
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_dimensie = Dimensie
|
|
AND ins_srtdeel_cadlayer = UPPER(LayerNaam)
|
|
AND ins_srtdeel_verwijder IS NULL;
|
|
*/
|
|
BEGIN
|
|
SELECT _MSSQL(top 1) ins_srtdeel_key INTO SrtDeelKey
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_dimensie = Dimensie
|
|
AND ins_srtdeel_cadlayer = UPPER(LayerNaam)
|
|
AND ins_srtdeel_verwijder IS NULL
|
|
_ORACLE(AND rownum = 1);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
SrtDeelKey := NULL;
|
|
END;
|
|
|
|
IF SrtDeelKey IS NOT NULL THEN
|
|
/* Het is een srtdeel */
|
|
IF LPNCondName = 'LPN_ALG_TERREINSECTOR' OR LPNCondName = 'LPN_ALG_RUIMTE' OR
|
|
LPNCondName = 'LPN_PRS_WERKPLEK'
|
|
THEN
|
|
LPNCondKeyOK := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF LPNCondKeyOK=FALSE THEN
|
|
Seqnr := 2;
|
|
LOOP
|
|
LPNCondName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', Seqnr);
|
|
LPNCondKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
|
IF LPNCondKey IS NULL THEN
|
|
EXIT;
|
|
END IF;
|
|
LPNCondKeyOK := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF (LPNCondKeyOK=TRUE AND LPNCondName = 'LPN_ALG_TERREINSECTOR')
|
|
OR (LPNCondKeyOK=TRUE AND LPNCondName = 'LPN_ALG_RUIMTE')
|
|
OR (LPNCondKeyOK=TRUE AND LPNCondName = 'LPN_PRS_WERKPLEK') THEN
|
|
EXIT;
|
|
END IF;
|
|
LPNCondKeyOK := FALSE;
|
|
Seqnr := Seqnr + 1;
|
|
END LOOP;
|
|
END IF;
|
|
ELSE
|
|
LPNCondKeyOK := FALSE;
|
|
END IF;
|
|
IF LPNCondKeyOK=TRUE THEN
|
|
LPNName := 'LPN_INS_DEEL';
|
|
#ifndef MS_SQL
|
|
LPNKey := _MSSQL(cad.)AddDeel(Session_id, SrtdeelKey, LoadDwg, LPNCondName, LPNCondKey);
|
|
#else
|
|
_EXEC6(_MSSQL(cad.)AddDeel,Session_id, SrtdeelKey, LoadDwg, LPNCondName, LPNCondKey, LPNKey);
|
|
#endif
|
|
RecordAdded:= TRUE;
|
|
ELSE
|
|
RecordAdded:= FALSE;
|
|
END IF;
|
|
ELSE
|
|
RecordAdded:= FALSE;
|
|
END IF;
|
|
_EXEC1(_MSSQL(cad.)cad_SLNKSTRUCTclear,Session_Id);
|
|
IF RecordAdded=TRUE THEN
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id,'LPNALIASPREDRAW', 1, LPNName, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id,'LPNKEYPREDRAW', 1, LPNKey, 1);
|
|
_EXEC1(_MSSQL(cad.)cad_SLNKPreDraw,Session_Id);
|
|
ELSE
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END IF;
|
|
END cad_SLNKPrePostDimensie1;
|
|
|
|
PROCEDURE cad_SLNKPrePostDimensie2(Session_Id IN NUMBER) IS
|
|
Dimensie ins_srtdeel.ins_srtdeel_dimensie%TYPE;
|
|
LayerNaam ins_srtdeel.ins_srtdeel_cadlayer%TYPE;
|
|
LocatieKey alg_locatie.alg_locatie_key%TYPE;
|
|
VerdiepingKey alg_verdieping.alg_verdieping_key%TYPE;
|
|
VerdiepingNr alg_verdieping.alg_verdieping_volgnr%TYPE;
|
|
DisciplineKey ins_discipline.ins_discipline_key%TYPE;
|
|
locatiecode alg_locatie.alg_locatie_code%TYPE;
|
|
Sectorcode alg_terreinsector.alg_terreinsector_code%TYPE;
|
|
Gebouwcode alg_gebouw.alg_gebouw_code%TYPE;
|
|
RuimteNr alg_ruimte.alg_ruimte_nr%TYPE;
|
|
Symbool ins_srtdeel.ins_srtdeel_acadsymbol%TYPE;
|
|
SymboolLayer ins_srtdeel.ins_srtdeel_cadlayer%TYPE;
|
|
TekeningNaam cad_tekening.cad_tekening_filenaam%TYPE;
|
|
SrtdeelKey ins_srtdeel.ins_srtdeel_key%TYPE;
|
|
LPNName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
LPNCondName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
LPNCondKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
BlockNaam ins_srtdeel.ins_srtdeel_acadsymbol%TYPE;
|
|
LPNCondKeyOK BOOLEAN;
|
|
RecordAdded BOOLEAN;
|
|
LoadDwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
SeqNr cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
Omschrijving VARCHAR2(30);
|
|
VolgnrTxt VARCHAR2(3);
|
|
ZoekString VARCHAR2(20);
|
|
StreepPos NUMBER(2);
|
|
MaxLengte NUMBER(10);
|
|
Dummy NUMBER(10);
|
|
LabelSymbool VARCHAR2(256);
|
|
LabelOK BOOLEAN;
|
|
|
|
BEGIN
|
|
RecordAdded := FALSE;
|
|
Dimensie := 2;
|
|
LayerNaam := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LAYER');
|
|
LoadDwg := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LOA'||'DDWG');
|
|
BlockNaam := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'BLOCK');
|
|
LPNCondName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
|
LPNCondKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYCONDO');
|
|
|
|
SELECT cad_symbool_layer INTO SymboolLayer
|
|
FROM cad_symbool
|
|
WHERE cad_symbool_entry = 'ALG_TERREINSECTOR';
|
|
IF LayerNaam = SymboolLayer THEN
|
|
/* Het is een terrein ... */
|
|
LocatieCode := _MSSQL(cad.)cad_getLocatieCode_Tekening(LoadDwg);
|
|
SELECT alg_locatie_key INTO LocatieKey
|
|
FROM alg_locatie
|
|
WHERE alg_locatie_code = LocatieCode;
|
|
LabelSymbool := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LABELO');
|
|
LabelOK := FALSE;
|
|
IF LabelSymbool IS NOT NULL THEN
|
|
LabelSymbool := SUBSTR(LabelSymbool,1,10);
|
|
BEGIN
|
|
/* Check of label reeds bestaat */
|
|
SELECT alg_terreinsector_key INTO Dummy
|
|
FROM alg_v_aanwezigterreinsector
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND UPPER(alg_terreinsector_code) = LabelSymbool;
|
|
LabelOK := FALSE;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
LabelOK := TRUE;
|
|
SectorCode := LabelSymbool;
|
|
END;
|
|
ELSE
|
|
LabelOK:= FALSE;
|
|
END IF;
|
|
IF LabelOK=FALSE THEN
|
|
/* De terreinsectorcode = locatiecode + volgnummer */
|
|
/* BEGIN
|
|
SELECT MAX(LENGTH(alg_terreinsector_code)) INTO MaxLengte
|
|
FROM alg_v_aanwezigterreinsector
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND alg_terreinsector_code BETWEEN '0' AND '9999999999'
|
|
AND alg_terreinsector_code like '0%'
|
|
AND alg_terreinsector_code NOT LIKE '00%';
|
|
|
|
SELECT max(alg_terreinsector_code) INTO Omschrijving
|
|
FROM alg_v_aanwezigterreinsector
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND alg_terreinsector_code BETWEEN '0' AND '9999999999'
|
|
AND alg_terreinsector_code like '0%'
|
|
AND alg_terreinsector_code NOT LIKE '00%'
|
|
AND LENGTH(alg_terreinsector_code) = MaxLengte;
|
|
SectorCode := _MSSQL(cad.)Bepaal_VolgnummerTxt(Omschrijving);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
SectorCode := '01';
|
|
END;
|
|
*/
|
|
SectorCode := _MSSQL(WEB.)FAC_F_FAC_GET_DESCRIPTION('LPN_ALG_TERREINSECTOR', LocatieKey, NULL, NULL);
|
|
END IF;
|
|
INSERT INTO alg_terreinsector(alg_locatie_key, alg_terreinsector_code, alg_terreinsector_naam)
|
|
VALUES (LocatieKey, SectorCode, SectorCode);
|
|
RecordAdded := TRUE;
|
|
COMMIT;
|
|
/* Bepaal sleutel van zojuist toegevoegde terreinsector i.v.m. aanroep Predraw */
|
|
LPNName := 'LPN_ALG_TERREINSECTOR';
|
|
BEGIN
|
|
SELECT alg_terreinsector_key INTO LPNKey
|
|
FROM alg_v_aanwezigterreinsector
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND alg_terreinsector_code = SectorCode;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
LPNKey := NULL;
|
|
END;
|
|
ELSE
|
|
/* Het is geen terreinsector, is het een gebouw ? */
|
|
SELECT cad_symbool_Layer INTO SymboolLayer
|
|
FROM cad_symbool
|
|
WHERE cad_symbool_entry = 'ALG_GEBOUW';
|
|
IF LayerNaam = SymboolLayer THEN
|
|
/* Het is een gebouw ... */
|
|
LocatieCode := _MSSQL(cad.)cad_getLocatieCode_Tekening(LoadDwg);
|
|
SELECT alg_locatie_key INTO LocatieKey
|
|
FROM alg_locatie
|
|
WHERE alg_locatie_code = LocatieCode;
|
|
LabelSymbool := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LABELO');
|
|
LabelOK := FALSE;
|
|
IF LabelSymbool IS NOT NULL THEN
|
|
LabelSymbool := SUBSTR(LabelSymbool,1,10);
|
|
BEGIN
|
|
SELECT alg_gebouw_key INTO Dummy
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND UPPER(alg_gebouw_code) = UPPER(LabelSymbool);
|
|
LabelOK := FALSE;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
LabelOK := TRUE;
|
|
GebouwCode := LabelSymbool;
|
|
END;
|
|
ELSE
|
|
LabelOK := FALSE;
|
|
END IF;
|
|
IF labelOK=FALSE THEN
|
|
/*
|
|
BEGIN
|
|
SELECT MAX(LENGTH(alg_gebouw_code)) INTO MaxLengte
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND alg_gebouw_code BETWEEN '0' AND '9999999999'
|
|
AND alg_gebouw_code like '0%'
|
|
AND alg_gebouw_code NOT LIKE '00%';
|
|
|
|
SELECT MAX(alg_gebouw_code) INTO omschrijving
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND alg_gebouw_code BETWEEN '0' AND '9999999999'
|
|
AND alg_gebouw_code like '0%'
|
|
AND alg_gebouw_code NOT LIKE '00%'
|
|
AND LENGTH(alg_gebouw_code) = MaxLengte;
|
|
GebouwCode := Bepaal_VolgnummerTxt(Omschrijving);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
GebouwCode := '01';
|
|
END;
|
|
*/
|
|
GebouwCode := _MSSQL(WEB.)FAC_F_FAC_GET_DESCRIPTION('LPN_ALG_GEBOUW', LocatieKey, NULL, NULL);
|
|
|
|
END IF;
|
|
INSERT INTO alg_gebouw(alg_locatie_key,alg_srtgebouw_key,alg_gebouw_code,alg_gebouw_naam,
|
|
alg_gebouw_omschrijving) VALUES(LocatieKey, NULL, GebouwCode, GebouwCode, GebouwCode);
|
|
COMMIT;
|
|
RecordAdded := TRUE;
|
|
/* Bepaal sleutel van zojuist toegevoegde gebouw i.v.m. aanroep Predraw... */
|
|
LPNName := 'LPN_ALG_GEBOUW';
|
|
BEGIN
|
|
SELECT alg_gebouw_key INTO LPNKey
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND UPPER(alg_gebouw_code) = UPPER(GebouwCode);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
LPNKey := NULL;
|
|
END;
|
|
ELSE
|
|
/* Het is geen gebouw, is het dan een ruimte ??? */
|
|
SELECT cad_symbool_layer INTO SymboolLayer
|
|
FROM cad_symbool
|
|
WHERE cad_symbool_entry = 'ALG_RUIMTE';
|
|
IF LayerNaam = SymboolLayer THEN
|
|
/* Het is een ruimte ... */
|
|
LocatieCode := _MSSQL(cad.)cad_getLocatieCode_Tekening(LoadDwg);
|
|
SELECT alg_locatie_key INTO LocatieKey
|
|
FROM alg_locatie
|
|
WHERE alg_locatie_code = LocatieCode;
|
|
/* Bepaal verdieping -> bepaal eerst tekeningnaam zonder toevoeging Locatiecode... */
|
|
TekeningNaam := _MSSQL(cad.)cad_getTekeningNaam_LoadDwg(LoadDwg);
|
|
BEGIN
|
|
SELECT alg_verdieping_key INTO VerdiepingKey
|
|
FROM cad_v_plattegrond
|
|
WHERE alg_locatie_key = LocatieKey
|
|
AND UPPER(cad_tekening_filenaam) = UPPER(TekeningNaam)
|
|
AND alg_verdieping_key IS NOT NULL;
|
|
SELECT alg_verdieping_volgNr INTO VerdiepingNr
|
|
FROM alg_verdieping
|
|
WHERE alg_verdieping_key = VerdiepingKey;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
VerdiepingNr := NULL;
|
|
END;
|
|
LabelSymbool := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LABELO');
|
|
LabelOK := FALSE;
|
|
IF LabelSymbool IS NOT NULL THEN
|
|
LabelSymbool := SUBSTR(LabelSymbool,1,10);
|
|
BEGIN
|
|
SELECT alg_ruimte_key INTO Dummy
|
|
FROM alg_v_aanwezigruimte
|
|
WHERE alg_verdieping_key = VerdiepingKey
|
|
AND alg_ruimte_upper_nr = UPPER(LabelSymbool);
|
|
LabelOK := FALSE;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
LabelOK := TRUE;
|
|
RuimteNr := LabelSymbool;
|
|
END;
|
|
ELSE
|
|
LabelOK := FALSE;
|
|
END IF;
|
|
IF VerdiepingNr IS NOT NULL THEN
|
|
IF LabelOK=FALSE THEN
|
|
/*
|
|
BEGIN
|
|
SELECT MAX(LENGTH(alg_ruimte_nr)) INTO MaxLengte
|
|
FROM alg_v_aanwezigruimte
|
|
WHERE alg_verdieping_Key = VerdiepingKey
|
|
AND alg_ruimte_nr BETWEEN '0' AND '9999999999'
|
|
AND alg_ruimte_nr like '0%'
|
|
AND alg_ruimte_nr NOT LIKE '00%';
|
|
|
|
SELECT MAX(alg_ruimte_nr) INTO Omschrijving
|
|
FROM alg_v_aanwezigruimte
|
|
WHERE alg_verdieping_Key = VerdiepingKey
|
|
AND alg_ruimte_nr BETWEEN '0' AND '9999999999'
|
|
AND alg_ruimte_nr like '0%'
|
|
AND alg_ruimte_nr NOT LIKE '00%'
|
|
AND LENGTH(alg_ruimte_nr) = MaxLengte;
|
|
RuimteNr := Bepaal_VolgnummerTxt(Omschrijving);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RuimteNr := '01';
|
|
END;
|
|
*/
|
|
RuimteNr := _MSSQL(WEB.)FAC_F_FAC_GET_DESCRIPTION('LPN_ALG_RUIMTE', VerdiepingKey, NULL, NULL);
|
|
END IF;
|
|
|
|
INSERT INTO alg_ruimte(alg_verdieping_key, alg_srtruimte_key, alg_ruimte_nr)
|
|
VALUES (VerdiepingKey, NULL, RuimteNr);
|
|
RecordAdded := TRUE;
|
|
/* Bepaal sleutel van zojuist toegevoegde ruimte i.v.m. aanroep Predraw */
|
|
LPNName := 'LPN_ALG_RUIMTE';
|
|
BEGIN
|
|
SELECT alg_ruimte_key INTO LPNKey
|
|
FROM alg_v_aanwezigruimte
|
|
WHERE alg_verdieping_key = VerdiepingKey
|
|
AND alg_ruimte_nr = RuimteNr;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
LPNKey := NULL;
|
|
END;
|
|
END IF;
|
|
ELSE
|
|
/* Het is ook geen ruimte, check of het dan een srtdeel is...*/
|
|
/*
|
|
SELECT MIN(ins_srtdeel_key) INTO SrtDeelKey
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_dimensie = Dimensie
|
|
AND ins_srtdeel_cadlayer = UPPER(LayerNaam)
|
|
AND ins_srtdeel_verwijder IS NULL;
|
|
*/
|
|
|
|
BEGIN
|
|
SELECT _MSSQL(top 1) ins_srtdeel_key INTO SrtDeelKey
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_dimensie = Dimensie
|
|
AND ins_srtdeel_cadlayer = UPPER(LayerNaam)
|
|
AND ins_srtdeel_verwijder IS NULL
|
|
_ORACLE(AND rownum = 1);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
SrtDeelKey := NULL;
|
|
END;
|
|
|
|
-- SM44 Fix #79 AND ins_srtdeel_acadsymbol = UPPER(BlockNaam);
|
|
IF SrtDeelKey IS NOT NULL THEN
|
|
/* Het is een srtdeel... */
|
|
IF LPNCondName = 'LPN_ALG_TERREINSECTOR' OR LPNCondName = 'LPN_ALG_RUIMTE' OR
|
|
LPNCondName = 'LPN_PRS_WERKPLEK'
|
|
THEN
|
|
LPNCondKeyOK := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF LPNCondKeyOK=FALSE THEN
|
|
Seqnr := 2;
|
|
LOOP
|
|
LPNCondName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', Seqnr);
|
|
LPNCondKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
|
IF LPNCondKey IS NULL THEN
|
|
EXIT;
|
|
END IF;
|
|
LPNCondKeyOK := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF (LPNCondKeyOK=TRUE AND LPNCondName = 'LPN_ALG_TERREINSECTOR')
|
|
OR (LPNCondKeyOK=TRUE AND LPNCondName = 'LPN_ALG_RUIMTE')
|
|
OR (LPNCondKeyOK=TRUE AND LPNCondName = 'LPN_PRS_WERKPLEK') THEN
|
|
EXIT;
|
|
END IF;
|
|
LPNCondKeyOK := FALSE;
|
|
Seqnr := Seqnr + 1;
|
|
END LOOP;
|
|
END IF;
|
|
ELSE
|
|
LPNCondKeyOK := FALSE;
|
|
END IF;
|
|
IF LPNCondKeyOK=TRUE THEN
|
|
LPNName := 'LPN_INS_DEEL';
|
|
#ifndef MS_SQL
|
|
LPNKey := _MSSQL(cad.)AddDeel(Session_id, SrtdeelKey, LoadDwg, LPNCondName, LPNCondKey);
|
|
#else
|
|
_EXEC6(_MSSQL(cad.)AddDeel,Session_id, SrtdeelKey, LoadDwg, LPNCondName, LPNCondKey, LPNKey);
|
|
#endif
|
|
RecordAdded:= TRUE;
|
|
ELSE
|
|
RecordAdded:= FALSE;
|
|
END IF;
|
|
ELSE
|
|
/* Het is een onbekend object... */
|
|
RecordAdded:= FALSE;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
_EXEC1(_MSSQL(cad.)cad_SLNKSTRUCTclear,Session_Id);
|
|
IF RecordAdded=TRUE THEN
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id,'LPNALIASPREDRAW', 1, LPNName, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id,'LPNKEYPREDRAW', 1, LPNKey, 1);
|
|
_EXEC1(_MSSQL(cad.)cad_SLNKPreDraw,Session_Id);
|
|
ELSE
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END IF;
|
|
END cad_SLNKPrePostDimensie2;
|
|
|
|
PROCEDURE cad_SLNKPrePostDraw(Session_Id IN NUMBER) IS
|
|
Symbool ins_srtdeel.ins_srtdeel_acadsymbol%TYPE;
|
|
SymboolLayer ins_srtdeel.ins_srtdeel_cadlayer%TYPE;
|
|
SrtdeelKey ins_srtdeel.ins_srtdeel_key%TYPE;
|
|
Dimensie ins_srtdeel.ins_srtdeel_dimensie%TYPE;
|
|
PlaatsDeel ins_deel.ins_alg_ruimte_type%TYPE;
|
|
Omschrijving VARCHAR2(30);
|
|
UndoOK BOOLEAN;
|
|
BEGIN
|
|
_EXEC2(_MSSQL(cad.)cad_SLNKPrePostUndo,Session_Id, UndoOK);
|
|
IF UndoOK=FALSE THEN
|
|
Dimensie := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'DIMENSION');
|
|
IF Dimensie = 0 THEN
|
|
_EXEC1(_MSSQL(cad.)cad_SLNKPrePostDimensie0,Session_Id);
|
|
ELSIF Dimensie = 1 THEN
|
|
_EXEC1(_MSSQL(cad.)cad_SLNKPrePostDimensie1,Session_Id);
|
|
ELSIF Dimensie = 2 THEN
|
|
_EXEC1(_MSSQL(cad.)cad_SLNKPrePostDimensie2,Session_Id);
|
|
-- ELSE
|
|
-- NULL;
|
|
END IF;
|
|
END IF;
|
|
END cad_SLNKPrePostDraw;
|
|
|
|
|
|
PROCEDURE cad_SLNKpostdraw(Session_Id IN NUMBER) IS
|
|
LPNName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
VeldKey NUMBER(10);
|
|
Oppervlak NUMBER(13,3);
|
|
Omtrek NUMBER(13,3);
|
|
Diepte NUMBER(8,2);
|
|
Volume NUMBER(12,4);
|
|
Datum DATE;
|
|
CheckDatum VARCHAR2(11);
|
|
varLPNAliasLinkO cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
varLPNKeyLinkO cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
LPNCondName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
LPNCondKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
SeqNr cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
Dimensie ins_srtdeel.ins_srtdeel_dimensie%TYPE;
|
|
PlaatsDeel ins_deel.ins_alg_ruimte_type%TYPE;
|
|
PlaatsKey NUMBER(10);
|
|
RuimteKey prs_werkplek.prs_alg_ruimte_key%TYPE;
|
|
RuimteType VARCHAR2(1);
|
|
DoDeelUpdate BOOLEAN;
|
|
varLinkToRoom NUMBER;
|
|
LPNCondKeyOk BOOLEAN;
|
|
|
|
BEGIN
|
|
LPNName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASINSO');
|
|
LPNKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYINSO');
|
|
LPNCondName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
|
LPNCondKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYCONDO');
|
|
|
|
IF LPNNAME = 'LPN_INS_DEEL' THEN
|
|
varLPNAliasLinkO := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_Id, 'LPNALIASLINKO');
|
|
IF varLPNAliasLinkO IS NOT NULL THEN
|
|
/* Aanmaken ins_deelkoppeling record voor elke LPNKEYLINKO */
|
|
varLPNKeyLinkO := 1; /* NOT NULL */
|
|
SeqNr := 1;
|
|
#ifndef MS_SQL
|
|
WHILE (varLPNKeyLinkO IS NOT NULL) LOOP
|
|
#else
|
|
WHILE (varLPNKeyLinkO IS NOT NULL)
|
|
BEGIN
|
|
#endif
|
|
varLPNKeyLinkO := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT2(Session_Id, 'LPNKEYLINKO', SeqNr);
|
|
IF varLPNKeyLinkO IS NOT NULL THEN
|
|
INSERT INTO ins_deelkoppeling(ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key)
|
|
VALUES (LPNKey, varLPNKeyLinkO);
|
|
COMMIT;
|
|
SeqNr := SeqNr+1;
|
|
END IF;
|
|
END LOOP;
|
|
END IF;
|
|
BEGIN
|
|
SELECT ins_srtdeel_dimensie INTO Dimensie
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_key =
|
|
(SELECT ins_srtdeel_key FROM ins_deel
|
|
WHERE ins_deel_key = LPNKey);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
Dimensie := NULL; /* Dimensie niet gevonden -> doe verder niets */
|
|
END;
|
|
Omtrek := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'LENGTH');
|
|
IF Omtrek IS NOT NULL AND Dimensie <> 0 THEN
|
|
UPDATE ins_deel
|
|
SET ins_deel_omtrek = Omtrek
|
|
WHERE ins_deel_key = LPNKey;
|
|
END IF;
|
|
Oppervlak := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
IF Oppervlak IS NOT NULL AND Dimensie = 2 THEN
|
|
UPDATE ins_deel
|
|
SET ins_deel_oppervlak = Oppervlak
|
|
WHERE ins_deel_key = LPNKey;
|
|
END IF;
|
|
SELECT ins_alg_ruimte_type, ins_alg_ruimte_key INTO PlaatsDeel, PlaatsKey
|
|
FROM all_v_aanwezigdeel
|
|
WHERE ins_deel_key = LPNKey;
|
|
varLinkToRoom := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'LINKTOROOM');
|
|
_EXEC2(_MSSQL(cad.)cad_slnkstructdelete,Session_id, 'LINKTOROOM');
|
|
DoDeelUpdate := TRUE;
|
|
IF LPNCondName = 'LPN_ALG_RUIMTE' THEN
|
|
/* Bij LPN_ALG_RUIMTE checken - of deel gekoppeld is aan een werkplek die zich in dezelfde
|
|
ruimte bevindt dan de opgegeven ruimte, zo ja dan GEEN update van de plaats v/h deel */
|
|
IF PlaatsDeel = 'W' THEN
|
|
IF varLinkToRoom = 1 THEN
|
|
DoDeelUpdate := TRUE;
|
|
ELSE
|
|
SELECT prs_alg_ruimte_key INTO RuimteKey
|
|
FROM prs_werkplek
|
|
WHERE prs_werkplek_key = PlaatsKey;
|
|
IF Ruimtekey = LPNCondKey THEN
|
|
DoDeelUpdate := FALSE;
|
|
ELSE
|
|
DoDeelUpdate := TRUE;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
IF DODeelUpdate=TRUE THEN
|
|
UPDATE ins_deel
|
|
SET ins_alg_ruimte_key = LPNCondKey,
|
|
ins_alg_ruimte_type = Plaatsdeel,
|
|
ins_deel_getekend = SYSDATE /* It's CAD */
|
|
WHERE ins_deel_key = LPNKey;
|
|
END IF;
|
|
ELSIF LPNNAME = 'LPN_ALG_GEBOUW' THEN
|
|
Oppervlak := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
Omtrek := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'LENGTH');
|
|
UPDATE alg_gebouw
|
|
SET alg_gebouw_bruto_vloeropp = Oppervlak,
|
|
alg_gebouw_omtrek = Omtrek,
|
|
alg_gebouw_getekend = SYSDATE
|
|
WHERE alg_gebouw_key = LPNKey;
|
|
ELSIF LPNNAME = 'LPN_ALG_RUIMTE' THEN
|
|
Oppervlak := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
Omtrek := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'LENGTH');
|
|
UPDATE alg_ruimte
|
|
SET alg_ruimte_bruto_vloeropp = Oppervlak,
|
|
alg_ruimte_omtrek = Omtrek,
|
|
alg_ruimte_getekend = SYSDATE
|
|
WHERE alg_ruimte_key = LPNKey;
|
|
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR' THEN
|
|
Oppervlak := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
Omtrek := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'LENGTH');
|
|
UPDATE alg_terreinsector
|
|
SET alg_terreinsector_oppervlak = Oppervlak,
|
|
alg_terreinsector_omtrek = Omtrek,
|
|
alg_terreinsector_getekend = SYSDATE
|
|
WHERE alg_terreinsector_key = LPNKey;
|
|
ELSIF LPNName = 'LPN_PRS_WERKPLEK' THEN
|
|
/* Bepaal de nieuwe ruimte v/d werkplek */
|
|
LPNCondName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
|
LPNCondKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYCONDO');
|
|
IF LPNCondKey IS NOT NULL THEN
|
|
/* Check of key wel bestaat - kan zijn dat tekening niet helemaal up-to-date is */
|
|
LPNCondKeyOk := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF LPNCondKeyOK=FALSE THEN
|
|
Seqnr := 2;
|
|
LOOP
|
|
LPNCondKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
|
IF LPNCondKey IS NULL THEN
|
|
EXIT;
|
|
END IF;
|
|
LPNCondKeyOK := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF LPNCondKeyOK=TRUE THEN
|
|
EXIT;
|
|
END IF;
|
|
Seqnr := Seqnr + 1;
|
|
END LOOP;
|
|
END IF;
|
|
IF LPNCondKeyOK=TRUE THEN
|
|
UPDATE prs_werkplek
|
|
SET prs_werkplek_getekend = SYSDATE /* IT's CAD */
|
|
WHERE prs_werkplek_key = LPNKey;
|
|
END IF;
|
|
END IF;
|
|
#ifdef BIS
|
|
ELSIF LPNName = 'LPN_BIS_BORING' THEN
|
|
UPDATE bis_boring
|
|
SET bis_boring_getekend = 'TRUE'
|
|
WHERE bis_boring_key = LPNKey;
|
|
/* als het een veld betreft dan oppervlakte aanpassen in tabel bis_veld */
|
|
SELECT bis_veld_key INTO VeldKey
|
|
FROM bis_boring
|
|
WHERE bis_boring_key = LPNKey;
|
|
IF VeldKey IS NOT NULL THEN
|
|
/* lees oppervlakte uit */
|
|
Oppervlak := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
UPDATE bis_veld
|
|
SET bis_veld_oppervlakte = Oppervlak
|
|
WHERE bis_veld_key = Veldkey;
|
|
END IF;
|
|
ELSIF LPNName = 'LPN_BIS_ONTGRAVINGSVAK' THEN
|
|
Oppervlak := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
Diepte:= _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'DEPTH');
|
|
Volume := Oppervlak * Diepte;
|
|
BEGIN
|
|
SELECT bis_ontgravingsvak_aanmaak INTO Datum
|
|
FROM bis_ontgravingsvak
|
|
WHERE bis_ontgravingsvak_key = LPNKey;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
Datum := SYSDATE;
|
|
END;
|
|
|
|
UPDATE bis_ontgravingsvak
|
|
SET bis_ontgravingsvak_volume = Volume,
|
|
bis_ontgravingsvak_diepte = Diepte
|
|
WHERE bis_ontgravingsvak_key = LPNKey;
|
|
|
|
/* "Onthoofden" van trajecten */
|
|
_EXEC3(_MSSQL(cad.)cad_KILLtrajecten,Session_Id, Diepte, Datum);
|
|
ELSIF LPNName = 'LPN_BIS_PROJECT' THEN
|
|
Oppervlak := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
UPDATE bis_project
|
|
SET bis_project_oppervlakte = Oppervlak
|
|
WHERE bis_project_key = LPNKey;
|
|
#endif //BIS
|
|
END IF;
|
|
COMMIT;
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'SYNC', 1, 'AUTOCAD', 1); /* ORACLE is klaar */
|
|
END cad_SLNKpostdraw;
|
|
|
|
|
|
PROCEDURE cad_SLNKpostErase(Session_Id IN NUMBER) IS
|
|
LPNName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
SeqNr cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
CheckDatum VARCHAR2(10);
|
|
Datum DATE;
|
|
Eerste BOOLEAN;
|
|
WerkPlekFound BOOLEAN;
|
|
|
|
BEGIN
|
|
CheckDatum := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'DATE');
|
|
Datum := _TO_DATE2(CheckDatum, 'DD-MM-YYYY');
|
|
LPNName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASDELO');
|
|
LPNKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYDELO');
|
|
IF LPNName = 'LPN_INS_DEEL' THEN
|
|
UPDATE ins_deel
|
|
SET ins_deel_verwijder = SYSDATE,
|
|
ins_deel_getekend = NULL /* It's CAD */
|
|
WHERE ins_deel_key = LPNKey;
|
|
DELETE FROM ins_deelkoppeling
|
|
WHERE ins_deelkoppeling_van_key = LPNKEY
|
|
OR ins_deelkoppeling_naar_key = LPNKEY;
|
|
COMMIT;
|
|
ELSIF LPNName = 'LPN_ALG_GEBOUW' THEN
|
|
UPDATE alg_gebouw
|
|
SET alg_gebouw_verwijder = SYSDATE,
|
|
alg_gebouw_getekend = NULL /* It's CAD */
|
|
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_v_aanwezigwerkplek
|
|
WHERE prs_alg_ruimte_key = LPNKey;
|
|
BEGIN
|
|
Eerste := TRUE;
|
|
WerkPlekFound := FALSE;
|
|
FOR WerkplekRec IN RuimteWerkplek LOOP
|
|
IF Eerste=TRUE THEN
|
|
WerkPlekFound := TRUE;
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'LPNALIASDELA', 1,'LPN_PRS_WERKPLEK', 1);
|
|
#ifndef MS_SQL
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, WerkplekRec.prs_werkplek_key, 1);
|
|
#else
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, WerkplekRec, 1);
|
|
#endif
|
|
Eerste := FALSE;
|
|
ELSE
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'LPNALIASDELA', 1,'LPN_PRS_WERKPLEK', 0);
|
|
#ifndef MS_SQL
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, WerkplekRec.prs_werkplek_key, 0);
|
|
#else
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, WerkplekRec, 0);
|
|
#endif
|
|
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 all_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=TRUE AND WerkPlekFound=FALSE THEN
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 1);
|
|
#ifndef MS_SQL
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 1);
|
|
#else
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, DeelRec, 1);
|
|
#endif
|
|
Eerste := FALSE;
|
|
ELSE
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 0);
|
|
#ifndef MS_SQL
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 0);
|
|
#else
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, DeelRec, 0);
|
|
#endif
|
|
END IF;
|
|
END LOOP;
|
|
END;
|
|
END;
|
|
UPDATE alg_ruimte
|
|
SET alg_ruimte_verwijder = SYSDATE,
|
|
alg_ruimte_getekend = NULL /* It's CAD */
|
|
WHERE alg_ruimte_key = LPNKey;
|
|
COMMIT;
|
|
ELSIF LPNName = 'LPN_PRS_WERKPLEK' THEN
|
|
/* Geef aan AutoCAD de sleutels door van de delen die zich op de te verwijderen werkplek bevinden... */
|
|
BEGIN
|
|
DECLARE
|
|
Cursor WerkplekDeel IS
|
|
SELECT ins_deel_key
|
|
FROM all_v_aanwezigdeel
|
|
WHERE ins_alg_ruimte_type = 'W'
|
|
AND ins_alg_ruimte_key = LPNKey;
|
|
BEGIN
|
|
Eerste := TRUE;
|
|
FOR DeelRec IN WerkplekDeel LOOP
|
|
IF Eerste=TRUE THEN
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 1);
|
|
#ifndef MS_SQL
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 1);
|
|
#else
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, DeelRec, 1);
|
|
#endif
|
|
Eerste := FALSE;
|
|
ELSE
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 0);
|
|
#ifndef MS_SQL
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 0);
|
|
#else
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, DeelRec, 0);
|
|
#endif
|
|
END IF;
|
|
END LOOP;
|
|
END;
|
|
END;
|
|
UPDATE prs_werkplek
|
|
SET prs_werkplek_verwijder = SYSDATE,
|
|
prs_werkplek_getekend = NULL /* It's CAD */
|
|
WHERE prs_werkplek_key = LPNKey;
|
|
COMMIT;
|
|
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR' THEN
|
|
#ifdef BIS
|
|
BEGIN
|
|
DECLARE
|
|
CURSOR Sectorboring IS
|
|
SELECT bis_boring_key, alg_terreinsector_key
|
|
FROM bis_v_aanwezigboring
|
|
WHERE alg_terreinsector_key = LPNKey;
|
|
BEGIN
|
|
Eerste := TRUE;
|
|
FOR BoringRec IN Sectorboring LOOP
|
|
IF Eerste=TRUE THEN
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'LPNALIASDELA', 1,'LPN_BIS_BORING', 1);
|
|
#ifndef MS_SQL
|
|
_EXEC5(cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, BoringRec.bis_boring_key, 1);
|
|
#else
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, BoringRec, 1);
|
|
#endif
|
|
Eerste := FALSE;
|
|
ELSE
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'LPNALIASDELA', 1,'LPN_BIS_BORING', 0);
|
|
#ifndef MS_SQL
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, BoringRec.bis_boring_key, 0);
|
|
#else
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, BoringRec, 0);
|
|
#endif
|
|
END IF;
|
|
/* Sublocatie grafisch verwijderd zet getekend veld van de boring op 'FALSE' */
|
|
UPDATE bis_boring
|
|
SET bis_boring_getekend = 'FALSE'
|
|
#ifndef MS_SQL
|
|
WHERE bis_boring_key = BoringRec.bis_boring_key;
|
|
#else
|
|
WHERE bis_boring_key = BoringRec;
|
|
#endif
|
|
COMMIT;
|
|
END LOOP;
|
|
END;
|
|
END;
|
|
UPDATE alg_terreinsector
|
|
SET alg_terreinsector_verwijder = Datum,
|
|
alg_terreinsector_getekend = NULL /* It's CAD */
|
|
WHERE alg_terreinsector_key = LPNKey;
|
|
COMMIT;
|
|
#else
|
|
BEGIN
|
|
DECLARE
|
|
CURSOR TerreinDeel IS
|
|
SELECT ins_deel_key
|
|
FROM all_v_aanwezigdeel
|
|
WHERE ins_alg_ruimte_key = LPNKey
|
|
AND ins_alg_ruimte_type = 'T';
|
|
BEGIN
|
|
Eerste := TRUE;
|
|
FOR DeelRec IN TerreinDeel LOOP
|
|
IF Eerste=TRUE THEN
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 1);
|
|
#ifndef MS_SQL
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 1);
|
|
#else
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, DeelRec, 1);
|
|
#endif
|
|
Eerste := FALSE;
|
|
ELSE
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 0);
|
|
#ifndef MS_SQL
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 0);
|
|
#else
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'LPNKEYDELA', 1, DeelRec, 0);
|
|
#endif
|
|
END IF;
|
|
END LOOP;
|
|
END;
|
|
END;
|
|
UPDATE alg_terreinsector
|
|
SET alg_terreinsector_verwijder = SYSDATE,
|
|
alg_terreinsector_getekend = NULL /* It's CAD */
|
|
WHERE alg_terreinsector_key = LPNKey;
|
|
COMMIT;
|
|
#endif //NONBIS
|
|
#ifdef BIS
|
|
ELSIF LPNName = 'LPN_BIS_BORING' THEN
|
|
IF CheckDatum IS NOT NULL THEN
|
|
UPDATE bis_boring
|
|
SET bis_boring_verwijderdatum = Datum
|
|
WHERE bis_boring_key = LPNKey;
|
|
ELSE
|
|
UPDATE bis_boring
|
|
SET bis_boring_getekend = 'FALSE'
|
|
WHERE bis_boring_key = LPNKey;
|
|
|
|
UPDATE bis_veld
|
|
SET bis_veld_oppervlakte = NULL
|
|
WHERE bis_veld_key IN
|
|
(SELECT bis_veld_key FROM bis_boring
|
|
WHERE bis_boring_key = LPNKey);
|
|
END IF;
|
|
ELSIF LPNName = 'LPN_BIS_PROJECT' THEN
|
|
UPDATE bis_project
|
|
SET bis_project_einddatum = Datum
|
|
WHERE bis_project_key = LPNKey;
|
|
COMMIT;
|
|
ELSIF LPNName = 'LPN_BIS_ONTGRAVINGSVAK' THEN
|
|
UPDATE bis_ontgravingsvak
|
|
SET bis_ontgravingsvak_verwijder = Datum
|
|
WHERE bis_ontgravingsvak_key = LPNKey;
|
|
COMMIT;
|
|
#endif //BIS
|
|
END IF;
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END cad_SLNKpostErase;
|
|
|
|
|
|
PROCEDURE cad_SLNKpostModify(Session_Id IN NUMBER) IS
|
|
|
|
LPNName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
LPNCondName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
LPNCondKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
VeldKey NUMBER(10);
|
|
Oppervlak NUMBER(13,3);
|
|
Diepte NUMBER(8,2);
|
|
Omtrek NUMBER(13,3);
|
|
Volume NUMBER(12,4);
|
|
Datum DATE;
|
|
Seqnr cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
LPNCondKeyOK BOOLEAN;
|
|
RuimteType VARCHAR2(1);
|
|
varLPNAliasLinkO cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
|
varLPNKeyLinkO cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
|
Dimensie ins_srtdeel.ins_srtdeel_dimensie%TYPE;
|
|
PlaatsDeel ins_deel.ins_alg_ruimte_type%TYPE;
|
|
PlaatsKey NUMBER(10);
|
|
RuimteKey prs_werkplek.prs_alg_ruimte_key%TYPE;
|
|
WerkplekNr prs_werkplek.prs_werkplek_volgnr%TYPE;
|
|
DoDeelUpdate BOOLEAN;
|
|
varLinkToRoom NUMBER;
|
|
|
|
BEGIN
|
|
LPNCondKeyOK := FALSE;
|
|
LPNName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASMODO');
|
|
LPNKey :=_MSSQL(cad.) cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYMODO');
|
|
IF LPNName = 'LPN_INS_DEEL' THEN
|
|
/* Bepaal nieuwe plek v/h deel */
|
|
LPNCondName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
|
LPNCondKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYCONDO');
|
|
IF LPNCondKey IS NOT NULL THEN
|
|
/* Check of key wel bestaat - kan zijn dat tekening niet helemaal up-to-date is */
|
|
LPNCondKeyOk := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF LPNCondKeyOK=FALSE THEN
|
|
Seqnr := 2;
|
|
LOOP
|
|
LPNCondKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
|
IF LPNCondKey IS NULL THEN
|
|
EXIT;
|
|
END IF;
|
|
LPNCondKeyOK := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF LPNCondKeyOK=TRUE THEN
|
|
EXIT;
|
|
END IF;
|
|
Seqnr := Seqnr + 1;
|
|
END LOOP;
|
|
END IF;
|
|
IF LPNCondKeyOK=TRUE THEN
|
|
IF LPNCondName = 'LPN_ALG_TERREINSECTOR' THEN
|
|
RuimteType := 'T';
|
|
ELSIF LPNCondName = 'LPN_ALG_RUIMTE' THEN
|
|
RuimteType := 'R';
|
|
ELSIF LPNCondName = 'LPN_PRS_WERKPLEK' THEN
|
|
RuimteType := 'W';
|
|
END IF;
|
|
SELECT ins_alg_ruimte_type, ins_alg_ruimte_key INTO PlaatsDeel, PlaatsKey
|
|
FROM all_v_aanwezigdeel
|
|
WHERE ins_deel_key = LPNKey;
|
|
varLinkToRoom := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'LINKTOROOM');
|
|
_EXEC2(_MSSQL(cad.)cad_slnkstructdelete,Session_id, 'LINKTOROOM');
|
|
DoDeelUpdate := TRUE;
|
|
IF LPNCondName = 'LPN_ALG_RUIMTE' THEN
|
|
/* Bij LPN_ALG_RUIMTE checken - of deel gekoppeld is aan een werkplek die zich in dezelfde
|
|
ruimte bevindt dan de opgegeven ruimte, zo ja dan GEEN update van de plaats v/h deel */
|
|
IF PlaatsDeel = 'W' THEN
|
|
IF varLinkToRoom = 1 THEN
|
|
DoDeelUpdate := TRUE;
|
|
ELSE
|
|
SELECT prs_alg_ruimte_key INTO RuimteKey
|
|
FROM prs_werkplek
|
|
WHERE prs_werkplek_key = PlaatsKey;
|
|
IF Ruimtekey = LPNCondKey THEN
|
|
DoDeelUpdate := FALSE;
|
|
ELSE
|
|
DoDeelUpdate := TRUE;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
IF DODeelUpdate=TRUE THEN
|
|
UPDATE ins_deel
|
|
SET ins_alg_ruimte_key = LPNCondKey,
|
|
ins_alg_ruimte_type = RuimteType,
|
|
ins_deel_getekend = SYSDATE /* It's CAD */
|
|
WHERE ins_deel_key = LPNKey;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
varLPNAliasLinkO := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_Id, 'LPNALIASLINKO');
|
|
varLPNKeyLinkO := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_Id, 'LPNKEYLINKO');
|
|
/* Deelgegevens gewijzigd - deelkoppeling records aanpassen */
|
|
DELETE ins_deelkoppeling
|
|
WHERE ins_deelkoppeling_van_key = LPNKey
|
|
OR ins_deelkoppeling_naar_key = LPNKey;
|
|
COMMIT;
|
|
IF varLPNAliasLinkO IS NOT NULL AND varLPNKeyLinkO IS NOT NULL THEN
|
|
varLPNKeyLinkO := 1; /* NOT NULL */
|
|
SeqNr := 1;
|
|
#ifndef MS_SQL
|
|
WHILE (varLPNKeyLinkO IS NOT NULL) LOOP
|
|
#else
|
|
WHILE (varLPNKeyLinkO IS NOT NULL)
|
|
BEGIN
|
|
#endif
|
|
varLPNKeyLinkO := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT2(Session_Id, 'LPNKEYLINKO', SeqNr);
|
|
IF varLPNKeyLinkO IS NOT NULL THEN
|
|
BEGIN
|
|
INSERT INTO ins_deelkoppeling(ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key)
|
|
VALUES (LPNKey, varLPNKeyLinkO);
|
|
COMMIT;
|
|
SeqNr := SeqNr+1;
|
|
#ifndef MS_SQL
|
|
EXCEPTION
|
|
WHEN DUP_VAL_ON_INDEX THEN
|
|
SeqNr := SeqNr+1; /* Record bestaat reeds -> ga gewoon verder met volgende */
|
|
#endif
|
|
END;
|
|
END IF;
|
|
END LOOP;
|
|
END IF;
|
|
/* Zoek Dimensie van deel op */
|
|
BEGIN
|
|
SELECT ins_srtdeel_dimensie INTO Dimensie
|
|
FROM ins_srtdeel
|
|
WHERE ins_srtdeel_key =
|
|
(SELECT ins_srtdeel_key FROM ins_deel
|
|
WHERE ins_deel_key = LPNKey);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
Dimensie := NULL; /* Dimensie niet gevonden -> doe verder niets */
|
|
END;
|
|
/* Omtrek bijwerken ? */
|
|
Omtrek := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'LENGTH');
|
|
IF Omtrek IS NOT NULL AND Dimensie = 1 THEN
|
|
UPDATE ins_deel
|
|
SET ins_deel_omtrek = Omtrek
|
|
WHERE ins_deel_key = LPNKey;
|
|
END IF;
|
|
/* Oppervlak bijwerken */
|
|
Oppervlak := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
IF Oppervlak IS NOT NULL AND Dimensie = 2 THEN
|
|
UPDATE ins_deel
|
|
SET ins_deel_oppervlak = Oppervlak
|
|
WHERE ins_deel_key = LPNKey;
|
|
END IF;
|
|
ELSIF LPNName = 'LPN_ALG_GEBOUW' THEN
|
|
Oppervlak := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
Omtrek := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'LENGTH');
|
|
UPDATE alg_gebouw
|
|
SET alg_gebouw_bruto_vloeropp = Oppervlak,
|
|
alg_gebouw_omtrek = Omtrek,
|
|
alg_gebouw_getekend = SYSDATE
|
|
WHERE alg_gebouw_key = LPNKey;
|
|
ELSIF LPNName = 'LPN_ALG_RUIMTE' THEN
|
|
Oppervlak := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
Omtrek := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'LENGTH');
|
|
UPDATE alg_ruimte
|
|
SET alg_ruimte_bruto_vloeropp = Oppervlak,
|
|
alg_ruimte_omtrek = Omtrek,
|
|
alg_ruimte_getekend = SYSDATE
|
|
WHERE alg_ruimte_key = LPNKey;
|
|
ELSIF LPNName = 'LPN_PRS_WERKPLEK' THEN
|
|
/* Bepaal de nieuwe ruimte v/d werkplek */
|
|
LPNCondName := _MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
|
LPNCondKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYCONDO');
|
|
IF LPNCondKey IS NOT NULL THEN
|
|
/* Check of key wel bestaat - kan zijn dat tekening niet helemaal up-to-date is */
|
|
LPNCondKeyOk := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF LPNCondKeyOK=FALSE THEN
|
|
Seqnr := 2;
|
|
LOOP
|
|
LPNCondKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
|
IF LPNCondKey IS NULL THEN
|
|
EXIT;
|
|
END IF;
|
|
LPNCondKeyOK := _MSSQL(cad.)CheckLPNCondKey(LPNCondName, LPNCondKey);
|
|
IF LPNCondKeyOK=TRUE THEN
|
|
EXIT;
|
|
END IF;
|
|
Seqnr := Seqnr + 1;
|
|
END LOOP;
|
|
END IF;
|
|
IF LPNCondKeyOK=TRUE THEN
|
|
BEGIN
|
|
UPDATE prs_werkplek
|
|
SET prs_alg_ruimte_key = LPNCondKey,
|
|
prs_werkplek_getekend = SYSDATE /* IT's CAD */
|
|
WHERE prs_werkplek_key = LPNKey;
|
|
#ifndef MS_SQL
|
|
EXCEPTION
|
|
WHEN DUP_VAL_ON_INDEX THEN
|
|
SELECT MAX(prs_werkplek_volgnr) + 1
|
|
INTO WerkplekNr
|
|
FROM all_v_aanwezigwerkplek
|
|
WHERE prs_alg_ruimte_key = LPNCondKey;
|
|
UPDATE prs_werkplek
|
|
SET prs_werkplek_volgnr = WerkplekNr,
|
|
prs_alg_ruimte_key = LPNCondKey,
|
|
prs_werkplek_getekend = SYSDATE /* It's CAD */
|
|
WHERE prs_werkplek_key = LPNKey;
|
|
#endif
|
|
END;
|
|
END IF;
|
|
END IF;
|
|
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR' THEN
|
|
Oppervlak := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
Omtrek := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'LENGTH');
|
|
UPDATE alg_terreinsector
|
|
SET alg_terreinsector_oppervlak = Oppervlak,
|
|
alg_terreinsector_omtrek = Omtrek
|
|
WHERE alg_terreinsector_key = LPNKey;
|
|
#ifdef BIS
|
|
ELSIF LPNName = 'LPN_BIS_BORING' THEN
|
|
/* als het een veld betreft dan oppervlakte aanpassen in tabel bis_veld */
|
|
SELECT bis_veld_key INTO VeldKey
|
|
FROM bis_boring
|
|
WHERE bis_boring_key = LPNKey;
|
|
IF VeldKey IS NOT NULL THEN
|
|
Oppervlak := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
UPDATE bis_veld
|
|
SET bis_veld_oppervlakte = Oppervlak
|
|
WHERE bis_veld_key = Veldkey;
|
|
END IF;
|
|
ELSIF LPNName = 'LPN_BIS_PROJECT' THEN
|
|
Oppervlak := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
UPDATE bis_project
|
|
SET bis_project_oppervlakte = Oppervlak
|
|
WHERE bis_project_key = LPNKey;
|
|
ELSIF LPNName = 'LPN_BIS_ONTGRAVINGSVAK' THEN
|
|
Oppervlak := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
Diepte := _MSSQL(cad.)cad_SLNKSTRUCTreadVALREAL(Session_id, 'DEPTH');
|
|
Volume := Oppervlak * Diepte;
|
|
UPDATE bis_ontgravingsvak
|
|
SET bis_ontgravingsvak_diepte = Diepte,
|
|
bis_ontgravingsvak_volume = Volume
|
|
WHERE bis_ontgravingsvak_key = LPNKey;
|
|
/* "Onthoofden" van trajecten */
|
|
Datum := _TO_DATE2(_MSSQL(cad.)cad_SLNKSTRUCTreadVALSTR(Session_id, 'DATE'), 'DD-MM-YYYY');
|
|
_EXEC3(_MSSQL(cad.)cad_KILLtrajecten,Session_Id, Diepte, Datum);
|
|
#endif //BIS
|
|
END IF;
|
|
COMMIT;
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END cad_SLNKpostModify;
|
|
|
|
PROCEDURE cad_SLNKDelenbijWerkplek(Session_Id IN NUMBER) IS
|
|
LPNKey NUMBER(10);
|
|
Eerste BOOLEAN;
|
|
BEGIN
|
|
LPNKey := _MSSQL(cad.)cad_SLNKSTRUCTreadVALINT(Session_id, 'INFOI');
|
|
BEGIN
|
|
DECLARE
|
|
Cursor WerkplekDelen IS
|
|
SELECT ins_deel_key
|
|
FROM all_v_aanwezigdeel
|
|
WHERE ins_alg_ruimte_key = LPNKey
|
|
AND ins_alg_ruimte_type = 'W';
|
|
BEGIN
|
|
Eerste := TRUE;
|
|
FOR DelenRec IN WerkplekDelen LOOP
|
|
IF Eerste=TRUE THEN
|
|
#ifndef MS_SQL
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'INFOI', 1, DelenRec.ins_deel_key, 1);
|
|
#else
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'INFOI', 1, DelenRec, 1);
|
|
#endif
|
|
Eerste := FALSE;
|
|
ELSE
|
|
#ifndef MS_SQL
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'INFOI', 1, DelenRec.ins_deel_key, 0);
|
|
#else
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALINT,Session_Id, 'INFOI', 1, DelenRec, 0);
|
|
#endif
|
|
END IF;
|
|
END LOOP;
|
|
END;
|
|
END;
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END cad_SLNKDelenbijWerkplek;
|
|
|
|
PROCEDURE cad_getSymboolInfo(Session_Id IN NUMBER, Entry IN VARCHAR2) IS
|
|
LayerNaam cad_symbool.cad_symbool_layer%TYPE;
|
|
varLayerColor cad_symbool.cad_symbool_kleur%TYPE;
|
|
varLayerLineType cad_symbool.cad_symbool_linetype%TYPE;
|
|
Symbool cad_symbool.cad_symbool_symbool%TYPE;
|
|
BEGIN
|
|
BEGIN
|
|
SELECT cad_symbool_layer, cad_symbool_kleur, cad_symbool_linetype, cad_symbool_symbool
|
|
INTO LayerNaam, varLayerColor, varLayerLineType, Symbool
|
|
FROM cad_symbool
|
|
WHERE UPPER(cad_symbool_entry) = UPPER(Entry);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'LAYER', 1, Layernaam, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALINT,Session_Id,'LAYERCOLOR', 1, varLayerColor, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'LAYERLINETYPE', 1, varLayerLinetype, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKstructinsertVALSTR,Session_Id,'BLOCK', 1, Symbool, 1);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
NULL; /* Entry niet gevonden -> geef AutoCAD niets terug */
|
|
END;
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END cad_getSymboolInfo;
|
|
|
|
|
|
PROCEDURE cad_SetKenmerkWaarde(DeelKey IN NUMBER, KenmerkKey IN NUMBER, KenmerkWaarde IN VARCHAR2) IS
|
|
BEGIN
|
|
_EXEC3(_MSSQL(WEB.)WriteKenmerkWaarde,DeelKey, KenmerkKey, KenmerkWaarde);
|
|
END cad_SetKenmerkWaarde;
|
|
|
|
|
|
PROCEDURE Cad_GetKenmerkWaarde(Session_Id IN NUMBER, DeelKey IN NUMBER, KenmerkKey IN NUMBER) IS
|
|
KenmerkWaarde ins_kenmerkdeel.ins_kenmerkdeel_waarde%TYPE;
|
|
BEGIN
|
|
KenmerkWaarde := _MSSQL(cad.)ReadKenmerkWaarde(DeelKey, KenmerkKey);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'INFOS', 1, KenmerkWaarde, 1);
|
|
_EXEC5(_MSSQL(cad.)cad_SLNKSTRUCTinsertVALSTR,Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END cad_GetKenmerkWaarde;
|
|
END cad;
|
|
/
|
|
#endif // RETAIN_OBSOLETE_PARTS
|
|
#endif // CAD
|
|
|