1122 lines
45 KiB
Plaintext
1122 lines
45 KiB
Plaintext
#ifdef CAD // 22-05-1998 KTH
|
|
|
|
/* REVISIONS:
|
|
*
|
|
*
|
|
* --- 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_p_ruimte_update_opp(key IN NUMBER, VloerOpp IN NUMBER);
|
|
PROCEDURE cad_SLNKSTRUCTinsertVALINT(Session_Id NUMBER, entry VARCHAR2, seqnr NUMBER, value NUMBER, ClrEntry NUMBER);
|
|
PROCEDURE cad_SLNKSTRUCTinsertVALSTR(Session_Id NUMBER, entry VARCHAR2, seqnr NUMBER, value VARCHAR2, ClrEntry NUMBER);
|
|
PROCEDURE cad_SLNKSTRUCTinsertVALREAL(Session_Id NUMBER, entry VARCHAR2, seqnr NUMBER, value NUMBER, ClrEntry NUMBER);
|
|
PROCEDURE cad_SLNKSTRUCTinsertVALDATE(Session_Id NUMBER, entry VARCHAR2, seqnr NUMBER, value DATE, ClrEntry 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 NUMBER);
|
|
PROCEDURE cad_SLNKSTRUCTshift(Session_Id NUMBER);
|
|
PROCEDURE cad_SLNKpostDraw(Session_Id NUMBER);
|
|
PROCEDURE cad_SLNKpostErase(Session_Id NUMBER);
|
|
PROCEDURE cad_SLNKpostModify(Session_Id NUMBER);
|
|
PROCEDURE cad_SLNKSTRUCTclearAll(Session_Id NUMBER);
|
|
PROCEDURE cad_SLNKgetDrawing(Session_Id NUMBER);
|
|
PROCEDURE cad_SLNKPreDraw(Session_Id NUMBER);
|
|
PROCEDURE cad_SLNKConvPreDraw(Session_Id 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;
|
|
|
|
|
|
/* 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);
|
|
|
|
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);
|
|
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 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 := cad_f_deel_get_locatie(Key);
|
|
verdieping_key := cad_f_deel_get_verdieping(Key);
|
|
discipline_key := 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;
|
|
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;
|
|
ELSE
|
|
RETURN NULL;
|
|
END IF;
|
|
END cad_f_ruimte_get_tekeningnaam;
|
|
|
|
|
|
/*
|
|
* CAD_P_RUIMTE_UPDATE_OPP wordt aangeroepen vanuit AutoCAD
|
|
* en wijzigt de vloeroppervlakte van een opgegeven ruimte
|
|
*
|
|
* Merk op dat een eventuele EXCEPTION hier niet expliciet wordt afgevangen!
|
|
*/
|
|
PROCEDURE cad_p_ruimte_update_opp(Key IN NUMBER, VloerOpp IN NUMBER) IS
|
|
BEGIN
|
|
/* alleen indien het een logisch aanwezige ruimte betreft passen we de opp aan */
|
|
UPDATE alg_v_aanwezigruimte
|
|
SET alg_ruimte_bruto_vloeropp = VloerOpp
|
|
WHERE alg_ruimte_key = Key;
|
|
COMMIT;
|
|
END cad_p_ruimte_update_opp;
|
|
|
|
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_v_aanweziglocatie
|
|
WHERE alg_locatie_key = Locatie_key;
|
|
RETURN locatie_code;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
END Bepaal_locatiecode;
|
|
|
|
|
|
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 := 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||'\'||tekening;
|
|
RETURN Disciplinetekening;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
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 := bepaal_locatiecode(Locatie_key);
|
|
SELECT cad_tekening_filenaam INTO tekening
|
|
FROM cad_v_plattegrond
|
|
WHERE alg_locatie_key = Locatie_key;
|
|
plattegrondtekening := locatie_code||'\'||tekening;
|
|
RETURN plattegrondtekening;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
END cad_getPlattegrondtekening;
|
|
|
|
|
|
FUNCTION cad_getContourtekening(Locatie_key IN NUMBER)RETURN VARCHAR2 IS
|
|
locatie_code VARCHAR2(5);
|
|
tekening VARCHAR2(256);
|
|
Contourtekening VARCHAR2(256);
|
|
BEGIN
|
|
BEGIN
|
|
locatie_code := bepaal_locatiecode(Locatie_key);
|
|
SELECT cad_tekening_filenaam INTO tekening
|
|
FROM cad_v_contour
|
|
WHERE alg_locatie_key = Locatie_key;
|
|
Contourtekening := locatie_code||'\'||tekening;
|
|
RETURN Contourtekening;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN NULL;
|
|
END;
|
|
END cad_getContourtekening;
|
|
|
|
|
|
PROCEDURE cad_SLNKSTRUCTdelete(Session_Id NUMBER, Entry 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 NUMBER, entry VARCHAR2, seqnr NUMBER, value NUMBER, ClrEntry NUMBER) IS
|
|
BEGIN
|
|
IF ClrEntry = 1 AND seqnr = 1 THEN
|
|
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 NUMBER, entry VARCHAR2, seqnr NUMBER, value VARCHAR2, ClrEntry NUMBER) IS
|
|
BEGIN
|
|
IF ClrEntry = 1 AND seqnr = 1 THEN
|
|
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 NUMBER, entry VARCHAR2, seqnr NUMBER, value NUMBER, ClrEntry NUMBER) IS
|
|
BEGIN
|
|
IF ClrEntry = 1 AND seqnr = 1 THEN
|
|
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 NUMBER, entry VARCHAR2, seqnr NUMBER, value DATE, ClrEntry NUMBER) IS
|
|
BEGIN
|
|
IF ClrEntry = 1 AND seqnr = 1 THEN
|
|
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 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';
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
NULL;
|
|
END;
|
|
END cad_SLNKSTRUCTclear;
|
|
|
|
|
|
PROCEDURE cad_SLNKSTRUCTclearAll(Session_Id 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 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';
|
|
COMMIT;
|
|
UPDATE cad_slnkstruct
|
|
SET cad_slnkstruct_seqnr = cad_slnkstruct_seqnr - 1
|
|
WHERE cad_slnkstruct_sessionid = Session_Id
|
|
AND cad_slnkstruct_entry <> 'FAC_MODULE'
|
|
AND cad_slnkstruct_entry <> 'SYNC';
|
|
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;
|
|
END cad_SLNKSTRUCTreadVALINT;
|
|
|
|
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
END cad_SLNKSTRUCTreadVALDATE;
|
|
|
|
|
|
PROCEDURE cad_SLNKgetDrawing(Session_Id NUMBER) IS
|
|
LPNName VARCHAR2(128);
|
|
tekeningnaam VARCHAR2(256);
|
|
locatie_key NUMBER(10);
|
|
locCode VARCHAR2(5);
|
|
DwgString VARCHAR2(261);
|
|
|
|
BEGIN
|
|
LocCode := cad_SLNKSTRUCTreadVALSTR2(Session_id, 'INFOS', 1);
|
|
LPNName := 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||'\'||tekeningnaam;
|
|
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SRCDWG', 1, DwgString, 1);
|
|
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END cad_SLNKgetDrawing;
|
|
|
|
|
|
#ifdef BIS
|
|
PROCEDURE cad_KILLtrajecten(Session_Id NUMBER, Diepte NUMBER, Datum DATE) IS
|
|
Eerste BOOLEAN;
|
|
BEGIN
|
|
DECLARE
|
|
CURSOR EindTrajectGroter IS
|
|
SELECT BIS_BT1.bis_boring_key, BIS_BT1.bis_traject_key
|
|
FROM cad_slnkstruct CAD_S, bis_v_boring_trajecten BIS_BT1
|
|
WHERE CAD_S.cad_slnkstruct_sessionid = Session_Id
|
|
AND CAD_S.cad_slnkstruct_entry = 'LPNKEYDELO'
|
|
AND CAD_S.cad_slnkstruct_valint = BIS_BT1.bis_boring_key
|
|
AND (BIS_BT1.bis_boring_key, BIS_BT1.bis_traject_einddiepte) IN
|
|
(SELECT MAX(BIS_BT2.bis_boring_key), MAX(BIS_BT2.bis_traject_einddiepte)
|
|
FROM bis_v_boring_trajecten BIS_BT2
|
|
WHERE BIS_BT2.bis_boring_key = BIS_BT1.bis_boring_key
|
|
AND BIS_BT2.bis_traject_einddiepte <= Diepte);
|
|
|
|
/* Als Diepte > einddiepte laatste traject v/e boring -> verwijder hele boring */
|
|
BEGIN
|
|
Eerste := TRUE;
|
|
INSERT INTO llog(log_omschrijving) values ('Als Diepte > einddiepte laatste traject v/e boring -> verwijder hele boring.');
|
|
FOR TrajectRec IN EindTrajectGroter LOOP
|
|
INSERT INTO llog(log_omschrijving) values('Boringkey : '||TO_CHAR(TrajectRec.bis_boring_key));
|
|
UPDATE bis_boring
|
|
SET bis_boring_verwijderdatum = Datum
|
|
WHERE bis_boring_key = TrajectRec.bis_boring_key
|
|
AND bis_boring_verwijderdatum IS NULL;
|
|
IF Eerste THEN
|
|
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_BIS_BORING', 1);
|
|
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, TrajectRec.bis_boring_key, 1);
|
|
Eerste := FALSE;
|
|
ELSE
|
|
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_BIS_BORING', 0);
|
|
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, TrajectRec.bis_boring_key, 0);
|
|
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_begindiepte < Diepte;
|
|
|
|
/* Hele traject valt binnen het ontgravingsvak */
|
|
BEGIN
|
|
INSERT INTO llog(log_omschrijving) values ('Hele traject valt binnen het ontgravingsvak.');
|
|
FOR TrajectRec IN TrajectKleinerDiepte LOOP
|
|
INSERT INTO llog(log_omschrijving) values('Trajectkey : '||TO_CHAR(TrajectRec.bis_traject_key));
|
|
UPDATE bis_traject
|
|
SET bis_traject_einddatum = Datum
|
|
WHERE bis_traject_key = TrajectRec.bis_traject_key;
|
|
END LOOP;
|
|
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
|
|
INSERT INTO llog(log_omschrijving) values ('Het traject valt gedeeltelijk binnen het ontgravingsvak');
|
|
FOR TrajectRec IN TrajectOverlap LOOP
|
|
INSERT INTO llog(log_omschrijving) values ('Trajectkey : '||TO_CHAR(TrajectRec.bis_traject_key);
|
|
UPDATE bis_traject
|
|
SET bis_traject_begindiepte = Diepte
|
|
WHERE bis_traject_key = TrajectRec.bis_traject_key;
|
|
COMMIT;
|
|
END LOOP;
|
|
END;
|
|
END cad_KILLtrajecten;
|
|
|
|
|
|
FUNCTION cad_GETBoringSymbolName(Boring_key IN NUMBER) RETURN VARCHAR2 IS
|
|
SymboolNaam VARCHAR2(128);
|
|
GrondBoring VARCHAR2(1) := 0;
|
|
GrondwaterBoring VARCHAR2(1) := 0;
|
|
AantalPeilbuizen VARCHAR2(1) := 0;
|
|
Sondering VARCHAR2(1) := 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
|
|
SELECT count(*) INTO AantalPeilbuizen
|
|
FROM bis_v_aanwezigbor_boringtype
|
|
WHERE bis_boring_key = Boring_Key
|
|
AND bis_grondwater_key IS NOT NULL;
|
|
|
|
FOR BoringRec IN BoringCursor LOOP
|
|
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;
|
|
END LOOP;
|
|
|
|
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 - kan na conversie verwijderd worden */
|
|
PROCEDURE cad_SLNKConvPreDraw(Session_Id NUMBER, loc_x_coord NUMBER, loc_y_coord NUMBER) IS
|
|
LPNName VARCHAR2(128);
|
|
LPNKey NUMBER(10);
|
|
LPNKeyCond NUMBER(10);
|
|
Diepte NUMBER(8,2);
|
|
Veld_Key NUMBER(10);
|
|
Subloc_Code VARCHAR2(5);
|
|
Boring_nummer VARCHAR2(5);
|
|
Punt_boring BOOLEAN;
|
|
Boring_Symbol VARCHAR2(128);
|
|
Valint NUMBER;
|
|
SeqNr NUMBER(10);
|
|
Datum DATE;
|
|
|
|
BEGIN
|
|
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASPREDRAW');
|
|
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYPREDRAW');
|
|
SeqNr := cad_SLNKSTRUCTreadVALINT(Session_id, 'SEQNR');
|
|
IF SeqNr IS NULL THEN
|
|
SeqNr := 1;
|
|
END IF;
|
|
/* Bepaal of er sprake is van een veld(contour) of van een puntboring */
|
|
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_BIS_BORING', 1);
|
|
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;
|
|
cad.cad_SLNKstructinsertVALINT(Session_Id,'DIMENSION', SeqNr, Valint, 1);
|
|
IF Punt_boring THEN
|
|
/* Zoek juiste boringsymbool bij Boringnummer */
|
|
Boring_Symbol := cad_GETBoringSymbolName(LPNKey);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'BLOCK', SeqNr, Boring_Symbol, 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER', SeqNr, 'BORING', 1);
|
|
END IF;
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA', SeqNr, 'BIS_BORING_KEY', 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_TERREINSECTOR', 1);
|
|
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;
|
|
cad.cad_SLNKstructinsertVALINT(Session_Id,'LPNKEYCONDA', SeqNr, LPNKeyCond, 1);
|
|
IF Punt_boring THEN
|
|
cad.cad_SLNKstructinsertVALREAL(Session_Id,'INSPOINTX', SeqNr, loc_x_coord, 1);
|
|
cad.cad_SLNKstructinsertVALREAL(Session_Id,'INSPOINTY', SeqNr, loc_y_coord, 1);
|
|
cad.cad_SLNKstructinsertVALINT(Session_Id,'INSPOINTCODE', SeqNr, 1, 1);
|
|
END IF;
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABELCOL',SeqNr, 'BIS_BORING_NUMMER', 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, boring_nummer, 1);
|
|
END cad_SLNKConvPreDraw;
|
|
|
|
|
|
PROCEDURE cad_SLNKPreDraw(Session_Id NUMBER) IS
|
|
LPNName VARCHAR2(128);
|
|
LPNKey NUMBER(10);
|
|
LPNKeyCond NUMBER(10);
|
|
Diepte NUMBER(8,2);
|
|
Veld_Key NUMBER(10);
|
|
LocatieKey NUMBER(10);
|
|
DisciplineKey NUMBER(10);
|
|
Subloc_Code VARCHAR2(5);
|
|
Boring_nummer VARCHAR2(5);
|
|
Projectnr VARCHAR2(8);
|
|
Ontgraafvak_Naam VARCHAR2(32);
|
|
SrcDwg VARCHAR2(128);
|
|
LoadDwg VARCHAR2(128);
|
|
AttachDwg1 VARCHAR2(128);
|
|
AttachDwg2 VARCHAR2(128);
|
|
Punt_boring BOOLEAN;
|
|
Boring_Symbol VARCHAR2(128);
|
|
Valint NUMBER;
|
|
SeqNr NUMBER(10);
|
|
Datum DATE;
|
|
Eerste BOOLEAN;
|
|
BEGIN
|
|
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASPREDRAW');
|
|
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYPREDRAW');
|
|
SeqNr := cad_SLNKSTRUCTreadVALINT(Session_id, 'SEQNR');
|
|
IF SeqNr IS NULL THEN
|
|
SeqNr := 1;
|
|
END IF;
|
|
IF LPNNAME = 'LPN_BIS_BORING' THEN
|
|
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_BIS_BORING', 1);
|
|
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;
|
|
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);
|
|
SrcDwg := cad_getDisciplinetekening(LocatieKey, DisciplineKey);
|
|
LoadDwg := cad_getPlattegrondtekening(LocatieKey);
|
|
AttachDwg1 := cad_getContourtekening(LocatieKey);
|
|
AttachDwg2 := SrcDwg;
|
|
cad_SLNKstructinsertVALSTR(Session_Id,'SRCDWG', SeqNr, SrcDwg, 1);
|
|
cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG', SeqNr, LoadDwg, 1);
|
|
cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, AttachDwg1, 1);
|
|
cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, Attachdwg2, 0);
|
|
IF Punt_boring THEN
|
|
/* Zoek juiste boringsymbool bij Boringnummer */
|
|
Boring_Symbol := cad_GETBoringSymbolName(LPNKey);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'BLOCK', SeqNr, Boring_Symbol, 1);
|
|
END IF;
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER', SeqNr, 'BORING', 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA', SeqNr, 'BIS_BORING_KEY', 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_TERREINSECTOR', 1);
|
|
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;
|
|
cad.cad_SLNKstructinsertVALINT(Session_Id,'LPNKEYCONDA', SeqNr, LPNKeyCond, 1);
|
|
IF Punt_boring THEN
|
|
cad.cad_SLNKstructinsertVALINT(Session_Id,'INSPOINTCODE', SeqNr, 0, 1);
|
|
END IF;
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABELCOL',SeqNr, 'BIS_BORING_NUMMER', 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, boring_nummer, 1);
|
|
ELSIF LPNNAME = 'LPN_ALG_TERREINSECTOR' THEN
|
|
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_ALG_TERREINSECTOR', 1);
|
|
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
|
cad.cad_SLNKstructinsertVALINT(Session_Id,'DIMENSION', SeqNr, 2, 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER', SeqNr, 'SUBLOCATIE', 1);
|
|
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;
|
|
SrcDwg := cad_getContourtekening(LocatieKey);
|
|
LoadDwg := cad_getPlattegrondtekening(LocatieKey);
|
|
AttachDwg1 := SrcDwg;
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'SRCDWG', 1, SrcDwg, 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG', 1, LoadDwg, 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', 1, AttachDwg1, 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABELCOL',SeqNr, 'ALG_TERREINSECTOR_CODE', 1);
|
|
SELECT alg_terreinsector_code INTO Subloc_code
|
|
FROM alg_v_aanwezigterreinsector
|
|
WHERE alg_terreinsector_key = LPNKey;
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, Subloc_code, 1);
|
|
/* 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 THEN
|
|
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASCONDAOUTER', 1,'LPN_BIS_BORING', 1);
|
|
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYCONDAOUTER', 1, BoringRec.bis_boring_key, 1);
|
|
Eerste := FALSE;
|
|
ELSE
|
|
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASCONDAOUTER', 1,'LPN_BIS_BORING', 0);
|
|
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYCONDAOUTER', 1, BoringRec.bis_boring_key, 0);
|
|
END IF;
|
|
END LOOP;
|
|
END;
|
|
ELSIF LPNNAME = 'LPN_BIS_PROJECT' THEN
|
|
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_BIS_PROJECT', 1);
|
|
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
|
cad.cad_SLNKstructinsertVALINT(Session_Id,'DIMENSION', SeqNr, 2, 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER', SeqNr, 'PROJECT', 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA', SeqNr, 'BIS_PROJECT_KEY', 1);
|
|
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;
|
|
SrcDwg := cad_getContourtekening(LocatieKey);
|
|
LoadDwg := cad_getPlattegrondtekening(LocatieKey);
|
|
AttachDwg1 := SrcDwg;
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'SRCDWG', 1, SrcDwg, 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG', 1, LoadDwg, 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', 1, AttachDwg1, 1);
|
|
SELECT bis_project_nr INTO ProjectNr
|
|
FROM bis_v_aanwezigproject
|
|
WHERE bis_project_key = LPNKey;
|
|
ProjectNr := SUBSTR(ProjectNr,1,2)||'-'||SUBSTR(ProjectNr,3,6);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, ProjectNr, 1);
|
|
ELSIF LPNName = 'LPN_BIS_ONTGRAVINGSVAK' THEN
|
|
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_BIS_ONTGRAVINGSVAK', 1);
|
|
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
|
cad.cad_SLNKstructinsertVALINT(Session_Id,'DIMENSION', SeqNr, 2, 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER', SeqNr, 'ONTGRAVINSVAK', 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA', SeqNr, 'BIS_ONTGRAVINGSVAK_KEY', 1);
|
|
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;
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, Ontgraafvak_naam, 1);
|
|
SELECT alg_locatie_key INTO LocatieKey
|
|
FROM bis_ontgravingsvak
|
|
WHERE bis_ontgravingsvak_key = LPNKey;
|
|
SrcDwg := cad_getContourtekening(LocatieKey);
|
|
LoadDwg := cad_getPlattegrondtekening(LocatieKey);
|
|
AttachDwg1 := SrcDwg;
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'SRCDWG', 1, SrcDwg, 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG', 1, LoadDwg, 1);
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', 1, AttachDwg1, 1);
|
|
SELECT bis_ontgravingsvak_diepte INTO Diepte
|
|
FROM bis_ontgravingsvak
|
|
WHERE bis_ontgravingsvak_key = LPNKey;
|
|
cad.cad_SLNKstructinsertVALREAL(Session_Id,'DEPTH', SeqNr, Diepte, 1);
|
|
SELECT bis_ontgravingsvak_aanmaak INTO Datum
|
|
FROM bis_ontgravingsvak
|
|
WHERE bis_ontgravingsvak_key = LPNKey;
|
|
cad.cad_SLNKstructinsertVALSTR(Session_Id,'DATE', SeqNr, TO_CHAR(Datum), 1);
|
|
END IF;
|
|
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END cad_SLNKPreDraw;
|
|
|
|
|
|
PROCEDURE cad_SLNKpostdraw(Session_Id NUMBER) IS
|
|
LPNName VARCHAR2(128);
|
|
LPNKey NUMBER(10);
|
|
VeldKey NUMBER(10);
|
|
Oppervlak NUMBER(13,3);
|
|
Diepte NUMBER(8,2);
|
|
Volume NUMBER(12,4);
|
|
Datum DATE;
|
|
BEGIN
|
|
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASINSO');
|
|
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYINSO');
|
|
INSERT INTO LLOG(log_omschrijving) VALUES (LPNName);
|
|
COMMIT;
|
|
IF 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 := 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 := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
Diepte:= cad_SLNKSTRUCTreadVALREAL(Session_id, 'DEPTH');
|
|
Volume := Oppervlak * Diepte;
|
|
Datum := TO_DATE(cad_SLNKSTRUCTreadVALSTR(Session_id, 'DATE'), 'DD-MM-YYYY');
|
|
INSERT INTO llog(log_omschrijving) VALUES ('LPNKey : '||TO_CHAR(LPNKey));
|
|
INSERT INTO llog(log_omschrijving) VALUES ('Oppervlak : '||TO_CHAR(Oppervlak));
|
|
INSERT INTO llog(log_omschrijving) VALUES ('Diepte : '||TO_CHAR(Diepte));
|
|
INSERT INTO llog(log_omschrijving) VALUES ('Volume : '||TO_CHAR(Volume));
|
|
INSERT INTO llog(log_omschrijving) VALUES ('Datum : '||TO_CHAR(Datum));
|
|
COMMIT;
|
|
UPDATE bis_ontgravingsvak
|
|
SET bis_ontgravingsvak_volume = Volume,
|
|
bis_ontgravingsvak_diepte = Diepte
|
|
WHERE bis_ontgravingsvak_key = LPNKey;
|
|
/* "Onthoofden" van trajecten */
|
|
cad_KILLtrajecten(Session_Id, Diepte, Datum);
|
|
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR' THEN
|
|
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
UPDATE alg_terreinsector
|
|
SET alg_terreinsector_oppervlak = Oppervlak
|
|
WHERE alg_terreinsector_key = LPNKey;
|
|
INSERT INTO LLOG(log_omschrijving) VALUES ('LPN_ALG_TERREINSECTOR');
|
|
COMMIT;
|
|
ELSIF LPNName = 'LPN_BIS_PROJECT' THEN
|
|
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
UPDATE bis_project
|
|
SET bis_project_oppervlakte = Oppervlak
|
|
WHERE bis_project_key = LPNKey;
|
|
|
|
END IF;
|
|
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1); /* ORACLE is klaar */
|
|
END cad_SLNKpostdraw;
|
|
|
|
|
|
PROCEDURE cad_SLNKpostErase(Session_Id NUMBER) IS
|
|
LPNName VARCHAR2(128);
|
|
LPNKey NUMBER(10);
|
|
SeqNr NUMBER(10);
|
|
CheckDatum VARCHAR2(10);
|
|
Datum DATE;
|
|
Eerste BOOLEAN;
|
|
BEGIN
|
|
CheckDatum := cad_SLNKSTRUCTreadVALSTR(Session_id, 'DATE');
|
|
Datum := TO_DATE(CheckDatum, 'DD-MM-YYYY');
|
|
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASDELO');
|
|
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYDELO');
|
|
|
|
IF 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;
|
|
COMMIT;
|
|
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR' THEN
|
|
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 THEN
|
|
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_BIS_BORING', 1);
|
|
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, BoringRec.bis_boring_key, 1);
|
|
Eerste := FALSE;
|
|
ELSE
|
|
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_BIS_BORING', 0);
|
|
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, BoringRec.bis_boring_key, 0);
|
|
END IF;
|
|
/* Sublocatie grafisch verwijderd zet getekend veld van de boring op 'FALSE' */
|
|
UPDATE bis_boring
|
|
SET bis_boring_getekend = 'FALSE'
|
|
WHERE bis_boring_key = BoringRec.bis_boring_key;
|
|
COMMIT;
|
|
END LOOP;
|
|
END;
|
|
END;
|
|
UPDATE alg_terreinsector
|
|
SET alg_terreinsector_verwijder = Datum
|
|
WHERE alg_terreinsector_key = LPNKey;
|
|
COMMIT;
|
|
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;
|
|
END IF;
|
|
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END cad_SLNKpostErase;
|
|
|
|
|
|
PROCEDURE cad_SLNKpostModify(Session_Id NUMBER) IS
|
|
|
|
LPNName VARCHAR2(128);
|
|
LPNKey NUMBER(10);
|
|
VeldKey NUMBER(10);
|
|
Oppervlak NUMBER(13,3);
|
|
Diepte NUMBER(8,2);
|
|
Volume NUMBER(12,4);
|
|
Datum DATE;
|
|
BEGIN
|
|
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASMODO');
|
|
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYMODO');
|
|
IF 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 := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
UPDATE bis_veld
|
|
SET bis_veld_oppervlakte = Oppervlak
|
|
WHERE bis_veld_key = Veldkey;
|
|
END IF;
|
|
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR' THEN
|
|
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
UPDATE alg_terreinsector
|
|
SET alg_terreinsector_oppervlak = Oppervlak
|
|
WHERE alg_terreinsector_key = LPNKey;
|
|
COMMIT;
|
|
ELSIF LPNName = 'LPN_BIS_PROJECT' THEN
|
|
Oppervlak := 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 := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
|
Diepte := 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_DATE(cad_SLNKSTRUCTreadVALSTR(Session_id, 'DATE'), 'DD-MM-YYYY');
|
|
cad_KILLtrajecten(Session_Id, Diepte, Datum);
|
|
END IF;
|
|
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
|
END cad_SLNKpostModify;
|
|
#endif // BIS
|
|
|
|
END cad;
|
|
/
|
|
|
|
#endif // CAD
|