Kleine aanpassing in cad_SLNKPrePostUndo i.v.m. aanroep cad_slnkPreDraw.

svn path=/Database/trunk/; revision=6733
This commit is contained in:
Bert in het Veld
1999-04-28 16:00:48 +00:00
parent 564afe5e68
commit 43175be787

View File

@@ -2,6 +2,10 @@
/* REVISIONS:
*
* 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.
@@ -64,7 +68,7 @@ CREATE OR REPLACE PACKAGE cad AS
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_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);
@@ -1384,19 +1388,35 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS
cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG', SeqNr, LoadDwg, 1);
cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, AttachDwg1, 1);
cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, Attachdwg2, 0);
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
cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, LocatieCode||'\'||Tekenrec.cad_tekening_filenaam, 0);
END LOOP;
END;
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
cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, LocatieCode||'\'||Tekenrec.cad_tekening_filenaam, 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
cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, LocatieCode||'\'||Tekenrec.cad_tekening_filenaam, 0);
END LOOP;
END;
END IF;
cad_SLNKstructinsertVALSTR(Session_Id,'LABELCOL', SeqNr, 'INS_DEEL_CADLABEL', 1);
SELECT ins_deel_omschrijving INTO Omschrijving
FROM ins_deel
@@ -1738,6 +1758,7 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS
SrtdeelKey ins_srtdeel.ins_srtdeel_key%TYPE;
Omschrijving VARCHAR2(30);
Dummy NUMBER(10);
RetValue BOOLEAN;
BEGIN
LPNAliasINSO := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASINSO');
LPNKeyINSO := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYINSO');
@@ -1752,14 +1773,14 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS
FROM alg_v_aanwezigterreinsector
WHERE alg_locatie_key = LocatieKey
AND alg_terreinsector_code = Code;
RETURN FALSE;
RetValue := FALSE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
/* Verwijderdatum wordt NULL */
UPDATE alg_terreinsector
SET alg_terreinsector_verwijder = NULL
WHERE alg_terreinsector_key = LPNKeyINSO;
RETURN TRUE;
RetValue := TRUE;
END;
ELSIF LPNAliasINSO = 'LPN_ALG_GEBOUW' THEN
SELECT alg_locatie_key, alg_gebouw_code INTO LocatieKey, Code
@@ -1770,14 +1791,14 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS
FROM alg_v_aanweziggebouw
WHERE alg_locatie_key = LocatieKey
AND alg_gebouw_code = Code;
RETURN FALSE;
RetValue := FALSE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
/* Verwijderdatum wordt NULL */
UPDATE alg_gebouw
SET alg_gebouw_verwijder = NULL
WHERE alg_gebouw_key = LPNKeyINSO;
RETURN TRUE;
RetValue := TRUE;
END;
ELSIF LPNAliasINSO = 'LPN_ALG_RUIMTE' THEN
SELECT alg_verdieping_key, alg_ruimte_upper_nr INTO VerdiepingKey, Code
@@ -1788,14 +1809,14 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS
FROM alg_v_aanwezigruimte
WHERE alg_verdieping_key = VerdiepingKey
AND alg_ruimte_upper_nr = Code;
RETURN FALSE;
RetValue := FALSE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
/* Verwijderdatum wordt NULL */
UPDATE alg_ruimte
SET alg_ruimte_verwijder = NULL
WHERE alg_ruimte_key = LPNKeyINSO;
RETURN TRUE;
RetValue := TRUE;
END;
ELSIF LPNAliasINSO = 'LPN_PRS_WERKPLEK' THEN
SELECT prs_alg_ruimte_key, prs_werkplek_volgnr INTO RuimteKey, Werkpleknr
@@ -1806,14 +1827,14 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS
FROM prs_v_aanwezigwerkplek
WHERE prs_alg_ruimte_key = RuimteKey
AND prs_werkplek_volgnr = WerkplekNr;
RETURN FALSE;
RetValue := FALSE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
/* Verwijderdatum wordt NULL */
UPDATE prs_werkplek
SET prs_werkplek_verwijder = NULL
WHERE prs_werkplek_key = LPNKeyINSO;
RETURN TRUE;
RetValue := TRUE;
END;
ELSIF LPNAliasINSO = 'LPN_INS_DEEL' THEN
SELECT ins_alg_locatie_key, ins_srtdeel_key, ins_deel_upper INTO LocatieKey, SrtdeelKey, Omschrijving
@@ -1826,24 +1847,31 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS
AND ins_srtdeel_key = SrtDeelKey
AND ins_deel_parent_key IS NULL
AND ins_deel_upper = Omschrijving;
RETURN FALSE;
RetValue := FALSE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
UPDATE ins_deel
SET ins_deel_verwijder = NULL
WHERE ins_deel_key = LPNKeyINSO;
RETURN TRUE;
RetValue := TRUE;
END;
ELSE
RETURN FALSE;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN FALSE;
RetValue := FALSE;
END;
ELSE
RETURN FALSE; /* Geen undo gegevens vanuit AutoCAD - gewoon toevoegen via PrePostDraw */
RetValue := FALSE; /* Geen undo gegevens vanuit AutoCAD - gewoon toevoegen via PrePostDraw */
END IF;
IF RetValue THEN
cad_SLNKSTRUCTclear(Session_Id);
cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASPREDRAW', 1, LPNAliasINSO, 1);
cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYPREDRAW', 1, LPNKeyINSO, 1);
cad_SLNKPreDraw(Session_Id);
END IF;
RETURN RetValue;
END cad_SLNKPrePostUndo;
@@ -2465,10 +2493,6 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS
NULL;
END IF;
END IF;
IF UndoOK THEN
cad_SLNKSTRUCTclear(session_Id);
cad_SLNKPreDraw(Session_Id);
END IF;
END cad_SLNKPrePostDraw;
@@ -2497,6 +2521,9 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS
BEGIN
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASINSO');
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYINSO');
LPNCondName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
LPNCondKey := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNKEYCONDO');
IF LPNNAME = 'LPN_INS_DEEL' THEN
LPNAliasLinkO := cad_SLNKSTRUCTreadVALSTR(Session_Id, 'LPNALIASLINKO');
IF LPNAliasLinkO IS NOT NULL THEN
@@ -2848,6 +2875,7 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS
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;
BEGIN
@@ -2988,9 +3016,21 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS
END LOOP;
END IF;
IF LPNCondKeyOK THEN
UPDATE prs_werkplek
SET prs_alg_ruimte_key = LPNCondKey
WHERE prs_werkplek_key = LPNKey;
BEGIN
UPDATE prs_werkplek
SET prs_alg_ruimte_key = LPNCondKey
WHERE prs_werkplek_key = LPNKey;
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
WHERE prs_werkplek_key = LPNKey;
END;
END IF;
END IF;
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR' THEN