ifdef BIS toegevoegd.

svn path=/Database/trunk/; revision=6395
This commit is contained in:
Bert in het Veld
1998-12-04 09:27:54 +00:00
parent 5e4bfcd155
commit dc8e0487b1

View File

@@ -5,6 +5,8 @@
*
* --- 01.41 ---
*
* 04-12-1998 BIV Functie cad_GETSonderingGrafiek 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_SLNKSTRUCTmodify toegevoegd.
* 09-11-1998 BIV Procedure cad_SLNKSTRUCTposterase toegevoegd.
@@ -53,6 +55,7 @@ CREATE OR REPLACE PACKAGE cad AS
PROCEDURE cad_SLNKpostErase(Session_Id NUMBER);
PROCEDURE cad_SLNKpostModify(Session_Id NUMBER);
PROCEDURE cad_SLNKSTRUCTclearAll(Session_Id NUMBER);
PROCEDURE cad_SLNKgetDrawing(Session_Id NUMBER);
/* garandeer dat de functies de database-state en package-state niet beinvloeden
* (anders kunnen ze niet zondermeer in een view worden gebruikt)
@@ -109,6 +112,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
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);
@@ -152,6 +156,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
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);
@@ -182,6 +187,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
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
@@ -228,6 +234,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
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
@@ -243,6 +250,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
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
@@ -258,6 +266,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
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
@@ -273,6 +282,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
END;
END cad_SLNKSTRUCTinsertVALDATE;
PROCEDURE cad_SLNKSTRUCTclear(Session_Id NUMBER) IS
BEGIN
BEGIN
@@ -302,7 +312,6 @@ CREATE OR REPLACE PACKAGE BODY cad AS
PROCEDURE cad_SLNKSTRUCTshift(Session_Id NUMBER) IS
aantal NUMBER(10);
BEGIN
BEGIN
@@ -333,9 +342,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
FUNCTION cad_SLNKSTRUCTreadVALINT(Session_Id IN NUMBER, Entry IN VARCHAR2) RETURN NUMBER IS
Value NUMBER;
BEGIN
BEGIN
SELECT cad_slnkstruct_valint INTO Value
@@ -352,9 +359,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
FUNCTION cad_SLNKSTRUCTreadVALSTR(Session_Id IN NUMBER, Entry IN VARCHAR2) RETURN VARCHAR2 IS
Value VARCHAR2(128);
BEGIN
BEGIN
SELECT cad_slnkstruct_valstr INTO Value
@@ -370,10 +375,25 @@ CREATE OR REPLACE PACKAGE BODY cad AS
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
@@ -390,9 +410,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
FUNCTION cad_SLNKSTRUCTreadVALDATE(Session_Id IN NUMBER, Entry IN VARCHAR2) RETURN DATE IS
Value DATE;
BEGIN
BEGIN
SELECT cad_slnkstruct_valdate INTO Value
@@ -407,11 +425,93 @@ CREATE OR REPLACE PACKAGE BODY cad AS
END;
END cad_SLNKSTRUCTreadVALDATE;
PROCEDURE cad_KILLtrajecten(Session_Id NUMBER, Diepte NUMBER, Datum DATE) IS
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 = 'LPNKEYMODO'
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;
FOR TrajectRec IN EindTrajectGroter LOOP
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
@@ -420,7 +520,8 @@ CREATE OR REPLACE PACKAGE BODY cad AS
AND CAD_S.cad_slnkstruct_entry = 'LPNKEYMODO'
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
FOR TrajectRec IN TrajectKleinerDiepte LOOP
UPDATE bis_traject
@@ -438,6 +539,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
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
FOR TrajectRec IN TrajectOverlap LOOP
UPDATE bis_traject
@@ -450,7 +552,6 @@ CREATE OR REPLACE PACKAGE BODY cad AS
PROCEDURE cad_SLNKpostdraw(Session_Id NUMBER) IS
LPNName VARCHAR2(128);
LPNKey NUMBER(10);
VeldKey NUMBER(10);
@@ -458,7 +559,6 @@ CREATE OR REPLACE PACKAGE BODY cad AS
Diepte NUMBER(8,2);
Volume NUMBER(8,2);
Datum DATE;
BEGIN
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASINSO');
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYINSO');
@@ -489,8 +589,9 @@ CREATE OR REPLACE PACKAGE BODY cad AS
SET bis_project_oppervlakte = Oppervlak
WHERE bis_project_key = LPNKey;
ELSIF LPNName = 'LPN_BIS_ONTGRAVINGSVAK' THEN
Volume := cad_SLNKSTRUCTreadVALREAL(Session_id, 'VOLUME');
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');
UPDATE bis_ontgravingsvak
SET bis_ontgravingsvak_volume = Volume,
@@ -510,7 +611,6 @@ CREATE OR REPLACE PACKAGE BODY cad AS
CheckDatum VARCHAR2(10);
Datum DATE;
Eerste BOOLEAN;
BEGIN
CheckDatum := cad_SLNKSTRUCTreadVALSTR(Session_id, 'DATE');
Datum := TO_DATE(CheckDatum, 'DD-MM-YYYY');
@@ -581,8 +681,8 @@ CREATE OR REPLACE PACKAGE BODY cad AS
VeldKey NUMBER(10);
Oppervlak NUMBER(13,3);
Diepte NUMBER(8,2);
Volume NUMBER(8,2);
Datum DATE;
BEGIN
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASMODO');
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYMODO');
@@ -609,9 +709,12 @@ CREATE OR REPLACE PACKAGE BODY cad AS
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
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');
@@ -619,6 +722,8 @@ CREATE OR REPLACE PACKAGE BODY cad AS
END IF;
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
END cad_SLNKpostModify;
#endif // BIS
END cad;
/