diff --git a/CAD/CAD_PAC.SRC b/CAD/CAD_PAC.SRC index 78ffec10..2b056bf2 100644 --- a/CAD/CAD_PAC.SRC +++ b/CAD/CAD_PAC.SRC @@ -90,7 +90,6 @@ CREATE OR REPLACE PACKAGE cad AS PROCEDURE cad_SLNKDelenbijWerkplek(Session_Id NUMBER); PROCEDURE cad_getSymboolInfo(Session_Id NUMBER, Entry VARCHAR2); PROCEDURE cad_SLNKgetBinnenBuiten(Session_Id NUMBER, LoadDwg VARCHAR2); - PROCEDURE cad_GetSrcDwgOfEntity(Session_Id NUMBER, LPNAliasINSO VARCHAR2, LPNKey NUMBER); /* Deze procedure is slechts eenmaal gebruikt t.b.v. grafische conversie BIS ... * PROCEDURE cad_SLNKConvPreDraw(Session_Id NUMBER, LOC_X_COORD NUMBER, LOC_Y_COORD NUMBER); @@ -102,6 +101,8 @@ CREATE OR REPLACE PACKAGE cad AS 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 NUMBER, LPNAliasINSO VARCHAR2, LPNKey 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) @@ -118,7 +119,7 @@ CREATE OR REPLACE PACKAGE cad AS PRAGMA RESTRICT_REFERENCES (cad_getVerdiepCntr_tekening, WNDS, WNPS); PRAGMA RESTRICT_REFERENCES (cad_getLocatieCode_Tekening, WNDS, WNPS); PRAGMA RESTRICT_REFERENCES (cad_getTekeningNaam_LoadDwg, WNDS, WNPS); -END cad; + END cad; / CREATE OR REPLACE PACKAGE BODY cad AS @@ -1259,6 +1260,72 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS RETURN TekeningNaam; END cad_MaakCadTekening; + + FUNCTION cad_GetSrcDwgOfEntity(Session_Id NUMBER, LPNAliasINSO VARCHAR2, LPNKey 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 := cad_f_deel_get_tekeningnaam(LPNKey); + SELECT ins_alg_locatie_key INTO LocatieKey + FROM ins_deel + WHERE ins_deel_key = LPNKey; + Locatiecode := Bepaal_locatiecode(LocatieKey); + IF SrcDwg IS NOT NULL THEN + SrcDwg := Locatiecode||'\'||SrcDwg; + ELSE + SrcDwg := 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 := cad_getContourtekening(LocatieKey); + IF SrcDwg IS NULL THEN + SrcDwg := 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 := cad_getContourtekening(LocatieKey); + IF SrcDwg IS NULL THEN + SrcDwg := 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 := cad_getVerdiepCntr_tekening(Locatiekey, Verdiepingkey); + IF SrcDwg IS NULL THEN + SrcDwg := 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 := cad_getVerdiepCntr_tekening(LocatieKey, Verdiepingkey); /* Contourtekening verdieping */ + IF SrcDwg IS NULL THEN + SrcDwg := cad_MaakCadTekening('LPN_PRS_WERKPLEK', LPNKey, 'C'); + END IF; + ELSE + /* Komt hier in de toekomst een ERROR-melding ? */ + NULL; + END IF; + cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'INFOS', 1, srcdwg, 1); + cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1); + RETURN SrcDwg; + END cad_GetSrcDwgOfEntity; + + PROCEDURE cad_SLNKPreDraw(Session_Id NUMBER) IS LPNName cad_slnkstruct.cad_slnkstruct_valstr%TYPE; LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE; @@ -1350,17 +1417,20 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS WHERE ins_deel_key = LPNKey; END IF; cad.cad_SLNKstructinsertVALINT(Session_Id,'LPNKEYCONDA', SeqNr, LPNKeyCond, 1); - /* Bepaal Disciplinetekening */ - SrcDwg := cad_f_deel_get_tekeningnaam(LPNKey); SELECT ins_alg_locatie_key INTO LocatieKey FROM ins_deel WHERE ins_deel_key = LPNKey; Locatiecode := Bepaal_locatiecode(LocatieKey); +/* + SrcDwg := cad_f_deel_get_tekeningnaam(LPNKey); IF SrcDwg IS NOT NULL THEN SrcDwg := Locatiecode||'\'||SrcDwg; ELSE SrcDwg := cad_MaakCadTekening('LPN_INS_DEEL', LPNKey, 'D'); END IF; + */ + + SrcDwg := cad_GetSrcDwgOfEntity(Session_Id, 'LPN_INS_DEEL', LPNKey); /* Bepaal LoadDwg */ IF PlaatsDeel = 'T' THEN /* Terreinsector */ LoadDwg := cad_getPlattegrondtekening(Locatiekey); @@ -1440,10 +1510,14 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS IF LoadDwg IS NULL THEN LoadDwg := cad_MaakCadTekening('LPN_ALG_GEBOUW', LPNKey, 'P'); END IF; +/* SrcDwg := cad_getContourtekening(LocatieKey); IF SrcDwg IS NULL THEN SrcDwg := cad_MaakCadTekening('LPN_ALG_GEBOUW', LPNKey, 'C'); END IF; + */ + /* Schrijf SrcDwg weg in cad_slnkstruct */ + SrcDwg := cad_GetSrcDwgOfEntity(Session_Id, 'LPN_ALG_GEBOUW', LPNKey); AttachDwg1 := SrcDwg; cad.cad_SLNKstructinsertVALSTR(Session_Id,'SRCDWG', 1, SrcDwg, 1); cad.cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG', 1, LoadDwg, 1); @@ -1486,10 +1560,14 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS IF LoadDwg IS NULL THEN LoadDwg := cad_MaakCadTekening('LPN_ALG_RUIMTE', LPNKey, 'P'); END IF; +/* SrcDwg := cad_getVerdiepCntr_tekening(Locatiekey, Verdiepingkey); IF SrcDwg IS NULL THEN SrcDwg := cad_MaakCadTekening('LPN_ALG_RUIMTE', LPNKey, 'C'); END IF; + */ + /* Schrijf SrcDwg weg in cad_slnkstruct */ + SrcDwg := cad_GetSrcDwgOfEntity(Session_Id, 'LPN_ALG_RUIMTE', LPNKey); AttachDwg1 := SrcDwg; cad.cad_SLNKstructinsertVALSTR(Session_Id,'SRCDWG', SeqNr, SrcDwg, 1); cad.cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG', SeqNr, LoadDwg, 1); @@ -1542,11 +1620,15 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS (SELECT prs_alg_ruimte_key FROM prs_werkplek WHERE prs_werkplek_key = LPNKey); LocatieCode := Bepaal_locatiecode(LocatieKey); - SrcDwg := cad_getVerdiepCntr_tekening(LocatieKey, Verdiepingkey); /* Contourtekening verdieping */ +/* + SrcDwg := cad_getVerdiepCntr_tekening(LocatieKey, Verdiepingkey); -- Contourtekening verdieping IF SrcDwg IS NULL THEN SrcDwg := cad_MaakCadTekening('LPN_PRS_WERKPLEK', LPNKey, 'C'); END IF; - LoadDwg := cad_getVerdiepPlgrnd_tekening(LocatieKey, Verdiepingkey); /* Plattegrondtekening verdieping */ + */ + /* Schrijf SrcDwg weg in cad_slnkstruct */ + SrcDwg := cad_GetSrcDwgOfEntity(Session_Id, 'LPN_PRS_WERKPLEK', LPNKey); + LoadDwg := cad_getVerdiepPlgrnd_tekening(LocatieKey, Verdiepingkey); -- Plattegrondtekening verdieping IF LoadDwg IS NULL THEN LoadDwg := cad_MaakCadTekening('LPN_PRS_WERKPLEK', LPNKey, 'P'); END IF; @@ -1595,10 +1677,14 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS IF LoadDwg IS NULL THEN LoadDwg := cad_MaakCadTekening('LPN_ALG_TERREINSECTOR', LPNKey, 'P'); END IF; +/* SrcDwg := cad_getContourtekening(LocatieKey); IF SrcDwg IS NULL THEN SrcDwg := cad_MaakCadTekening('LPN_ALG_TERREINSECTOR', LPNKey, 'C'); END IF; + */ + /* Schrijf SrcDwg weg in cad_slnkstruct */ + SrcDwg := cad_GetSrcDwgOfEntity(Session_Id, 'LPN_ALG_TERREINSECTOR', LPNKey); AttachDwg1 := SrcDwg; cad.cad_SLNKstructinsertVALSTR(Session_Id,'SRCDWG', 1, SrcDwg, 1); cad.cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG', 1, LoadDwg, 1); @@ -3168,70 +3254,6 @@ FUNCTION Bepaal_VolgnummerTxt(Omschrijving IN VARCHAR2) RETURN VARCHAR2 IS END; cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1); END cad_getSymboolInfo; - - - PROCEDURE cad_GetSrcDwgOfEntity(Session_Id NUMBER, LPNAliasINSO VARCHAR2, LPNKey NUMBER) 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 := cad_f_deel_get_tekeningnaam(LPNKey); - SELECT ins_alg_locatie_key INTO LocatieKey - FROM ins_deel - WHERE ins_deel_key = LPNKey; - Locatiecode := Bepaal_locatiecode(LocatieKey); - IF SrcDwg IS NOT NULL THEN - SrcDwg := Locatiecode||'\'||SrcDwg; - ELSE - SrcDwg := 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 := cad_getContourtekening(LocatieKey); - IF SrcDwg IS NULL THEN - SrcDwg := 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 := cad_getContourtekening(LocatieKey); - IF SrcDwg IS NULL THEN - SrcDwg := 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 := cad_getVerdiepCntr_tekening(Locatiekey, Verdiepingkey); - IF SrcDwg IS NULL THEN - SrcDwg := 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 := cad_getVerdiepCntr_tekening(LocatieKey, Verdiepingkey); /* Contourtekening verdieping */ - IF SrcDwg IS NULL THEN - SrcDwg := cad_MaakCadTekening('LPN_PRS_WERKPLEK', LPNKey, 'C'); - END IF; - ELSE - /* Komt hier in de toekomst een ERROR-melding ? */ - NULL; - END IF; - cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SRCDWG', 1, srcdwg, 1); - cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1); - END cad_GetSrcDwgOfEntity; END cad; /