7735 lines
314 KiB
Plaintext
7735 lines
314 KiB
Plaintext
SET TERMOUT ON
|
||
SET FEEDBACK OFF
|
||
SET ECHO OFF
|
||
--
|
||
-- Update script van Facilitor 3.0 versie 3.11 naar 3.12
|
||
--
|
||
|
||
/*
|
||
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
|
||
* om #ifdef's te gebruiken voor de diverse modules.
|
||
*
|
||
* Gebruik daar waar in de *.SQL-variant geen commentaar-tekst moet komen de
|
||
* C-style van uitcommentarieren. Daar waar WEL tekst in de uitvoer moet komen
|
||
* moet -- gebruikt worden.
|
||
*
|
||
*
|
||
*/
|
||
|
||
#include "modules.h"
|
||
#include "comsql.h"
|
||
#include "INS\inssql.h"
|
||
|
||
/*
|
||
* Test eerst of de vorige versie van module FAC zoals genoemd in tabel
|
||
* fac_module wel het te verwachten versienummer heeft
|
||
* als dat niet zo is dient de gebruiker het script ZELF af te breken middels
|
||
* control-c.
|
||
* Als dat wel zo is vervolgt het script en zal aan het einde van het script
|
||
* het interne versienummer en de datum worden bijgewerkt.
|
||
*/
|
||
|
||
#ifdef MASTER
|
||
SPOOL OFF
|
||
set heading off
|
||
clear screen
|
||
|
||
PROMPT ***********************************************************************
|
||
PROMPT
|
||
PROMPT UPGRADE SCRIPT van Facilitor 3.0 versie 03.11 naar 03.12
|
||
PROMPT
|
||
SELECT 'De huidige versie van Facilitor zou moeten zijn 03.11 en is: '
|
||
|| fac_module_version
|
||
FROM fac_module
|
||
WHERE fac_module_name='FAC';
|
||
PROMPT
|
||
PROMPT Indien de huidige versie NIET de verwachte versie is mag dit script
|
||
PROMPT niet worden gerund! In dit geval dient het script nu middels
|
||
PROMPT CONTROL-C te worden afgebroken.
|
||
PROMPT
|
||
PROMPT Indien de versies overeenkomen dient nu ENTER te worden gedrukt...
|
||
PROMPT
|
||
PROMPT ***********************************************************************
|
||
ACCEPT nix PROMPT ''
|
||
PROMPT
|
||
PROMPT De upgrade wordt vervolgd. Even geduld a.u.b...
|
||
PROMPT
|
||
|
||
SET TERMOUT OFF
|
||
SET HEADING OFF
|
||
SET FEEDBACK OFF
|
||
SET ECHO OFF
|
||
SET VERIFY OFF
|
||
SET LINESIZE 110
|
||
SET SERVEROUTPUT ON;
|
||
|
||
SPOOL $311TO312.SQL
|
||
PROMPT SPOOL $311TO312.LST;
|
||
|
||
UPDMOD(FAC,311TO312)
|
||
UPDMOD(ALG,311TO312)
|
||
UPDMOD(INS,311TO312)
|
||
UPDMOD(PRS,311TO312)
|
||
UPDMOD(MLD,311TO312)
|
||
UPDMOD(CAD,311TO312)
|
||
UPDMOD(AKZ,311TO312)
|
||
UPDMOD(PRJ,311TO312)
|
||
UPDMOD(RES,311TO312)
|
||
UPDMOD(SCH,311TO312)
|
||
UPDMOD(SLE,311TO312)
|
||
|
||
UPDATE_VERSION('03.12');
|
||
COMMIT;
|
||
PROMPT SPOOL OFF;
|
||
SPOOL OFF
|
||
START $311TO312.SQL
|
||
#endif // MASTER
|
||
|
||
/* denk aan #ifdef constructies! */
|
||
|
||
/* PLAATS HIERONDER DE UPDATES */
|
||
|
||
/* Weer op de oude manier dus bijvoorbeeld :
|
||
|
||
#ifdef ALG
|
||
bla bla
|
||
#endif // ALG
|
||
|
||
etc.
|
||
|
||
*/
|
||
|
||
#ifdef ALG
|
||
|
||
CREATE_TRIGGER(alg_t_alg_ruimte_B_IU)
|
||
BEFORE INSERT OR UPDATE ON alg_ruimte
|
||
FOR EACH ROW
|
||
BEGIN
|
||
UPDATE_PRIMARY_KEY(alg_ruimte_key, alg_s_alg_onroerendgoed_keys);
|
||
UPDATE_UPPER(alg_ruimte_nr, alg_ruimte_upper_nr);
|
||
UPDATE_AANMAAKDATUM(alg_ruimte, alg_ruimte_aanmaak);
|
||
CHECK_CADMUTATIE(alg_ruimte_verwijder, alg_ruimte_getekend, 'alg_m245');
|
||
#ifdef PRS
|
||
/* Als de soort ruimte veranderd wordt en er zijn werkplekken in de ruimte
|
||
* dan moet het veld PRS_BEVAT_WERKPLEKKEN de waarde 1 bevatten in de
|
||
* nieuwe soort ruimte.
|
||
*/
|
||
IF :old.alg_ruimte_key IS NOT NULL
|
||
AND :new.alg_ruimte_verwijder IS NULL
|
||
AND :old.alg_srtruimte_key <> :new.alg_srtruimte_key
|
||
THEN
|
||
DECLARE
|
||
dummy CHAR;
|
||
BEGIN
|
||
SELECT 'x'
|
||
INTO dummy
|
||
FROM alg_srtruimte ALG_SR_1,
|
||
alg_srtruimte ALG_SR_2,
|
||
all_v_aanwezigwerkplek PRS_W
|
||
WHERE ALG_SR_1.alg_srtruimte_key = :old.alg_srtruimte_key
|
||
AND ALG_SR_1.prs_bevat_werkplek = 1
|
||
AND ALG_SR_2.alg_srtruimte_key = :new.alg_srtruimte_key
|
||
AND ALG_SR_2.prs_bevat_werkplek IS NULL
|
||
AND PRS_W.prs_alg_ruimte_key = :new.alg_ruimte_key;
|
||
APPLICATION_ERROR(-20000, 'prs_m034');
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN NULL;
|
||
WHEN TOO_MANY_ROWS
|
||
THEN APPLICATION_ERROR(-20000, 'prs_m034');
|
||
END;
|
||
END IF;
|
||
#endif
|
||
#ifdef INV
|
||
/* Als er een INV-deel bestaat in de te verwijderen ruimte
|
||
* dan mag de ruimte niet verwijderd worden.
|
||
*/
|
||
IF :new.alg_ruimte_verwijder IS NOT NULL
|
||
THEN
|
||
DECLARE
|
||
dummy CHAR;
|
||
BEGIN
|
||
SELECT 'x'
|
||
INTO dummy
|
||
FROM inv_v_aanwezigdeel
|
||
WHERE ins_alg_ruimte_key = :new.alg_ruimte_key
|
||
AND ins_alg_ruimte_type = 'R';
|
||
APPLICATION_ERROR(-20000, 'prs_m055');
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN NULL;
|
||
WHEN TOO_MANY_ROWS
|
||
THEN APPLICATION_ERROR(-20000, 'prs_m055');
|
||
END;
|
||
END IF;
|
||
#endif
|
||
#ifdef PRS
|
||
/* Als de ruimte verwijderd wordt, dan moeten ook de bijbehorende
|
||
* werkplekken/slaapplaatsen verwijderd worden.
|
||
*/
|
||
IF :new.alg_ruimte_verwijder IS NOT NULL OR
|
||
(:new.alg_ruimte_verwijder IS NULL AND :old.alg_ruimte_verwijder IS NOT NULL)
|
||
THEN
|
||
UPDATE prs_werkplek
|
||
SET prs_werkplek_verwijder = :new.alg_ruimte_verwijder
|
||
, prs_werkplek_getekend = :new.alg_ruimte_getekend
|
||
WHERE prs_werkplek.prs_alg_ruimte_key = :new.alg_ruimte_key
|
||
AND prs_werkplek_verwijder IS NULL;
|
||
END IF;
|
||
|
||
#endif
|
||
#ifdef INS
|
||
SET_VERWIJDER_CHILDREN_DEEL(ins_deel, alg_ruimte_key, alg_ruimte_verwijder, alg_ruimte_getekend,
|
||
ins_deel_verwijder, ins_alg_ruimte_key, ins_deel_getekend);
|
||
#endif // INS
|
||
#ifdef SCH
|
||
IF :new.alg_ruimte_verwijder IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
DELETE FROM sch_nivo_og
|
||
WHERE sch_alg_og_key = :new.alg_ruimte_key;
|
||
END;
|
||
END IF;
|
||
#endif // SCH
|
||
END;
|
||
/
|
||
|
||
#endif // ALG
|
||
|
||
#ifdef INS
|
||
|
||
DROP TRIGGER ins_t_ins_deel_S_B_IU
|
||
/
|
||
|
||
CREATE_TRIGGER(ins_t_ins_deel_S_A_IU)
|
||
AFTER UPDATE ON ins_deel
|
||
BEGIN
|
||
DECLARE
|
||
IndexNr NUMBER;
|
||
PrimaryKey NUMBER(10);
|
||
Dummy BOOLEAN;
|
||
lNested NUMBER;
|
||
lCount NUMBER;
|
||
BEGIN
|
||
-- We controleren of we zijn aangeroepen vanuit onszelf. Ook al hebben we daarbij
|
||
-- geen keys aan fac_selectie toegevoegd, die van het hoogste niveau staan er, en
|
||
-- die moeten we niet weer vanaf nummer 1 gaan behandelen, anders zitten we echt
|
||
-- in een oneindige loop.
|
||
-- We krijgen hier geen mee, omdat we geen onderdelen van onderdelen kennen.
|
||
lNested := fac_p_fac_save_restore.GetPrimaryKey('INS_TRIGGER_BUSY', 1);
|
||
IF lNested IS NULL
|
||
THEN
|
||
IndexNr := 1;
|
||
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('INS_DEEL_VERWIJDER', IndexNr);
|
||
WHILE PrimaryKey IS NOT NULL
|
||
LOOP
|
||
-- Om te voorkomen dat de BEFORE STATEMENT trigger onnodig vuurt, controleren
|
||
-- we eerst of het statement wel nodig is, d.i. of er onderdelen zijn die nog
|
||
-- verwijderd moeten worden.
|
||
-- NB: Van IEDERE discipline, want onderdelen zijn qua autorisatie ondergeschikt
|
||
-- aan delen, d.i. diegene die het deel mag verwijderen is de baas.
|
||
SELECT COUNT(*)
|
||
INTO lCount
|
||
FROM ins_deel
|
||
WHERE ins_deel.ins_deel_parent_key = PrimaryKey
|
||
AND ins_deel.ins_deel_verwijder IS NULL;
|
||
|
||
IF lCount > 0
|
||
THEN
|
||
Dummy := fac_p_fac_save_restore.SavePrimaryKey('INS_TRIGGER_BUSY', 1);
|
||
UPDATE ins_deel
|
||
SET ins_deel_verwijder = SYSDATE
|
||
WHERE ins_deel.ins_deel_parent_key = PrimaryKey
|
||
AND ins_deel.ins_deel_verwijder IS NULL;
|
||
Dummy := fac_p_fac_save_restore.ResetSelectie('INS_TRIGGER_BUSY');
|
||
END IF;
|
||
IndexNr := IndexNr + 1;
|
||
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('INS_DEEL_VERWIJDER', IndexNr);
|
||
END LOOP;
|
||
Dummy := fac_p_fac_save_restore.ResetSelectie('INS_DEEL_VERWIJDER');
|
||
|
||
IndexNr := 1;
|
||
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('INS_DEEL_CASCADE', IndexNr);
|
||
WHILE PrimaryKey IS NOT NULL
|
||
LOOP
|
||
-- Om weer te voorkomen dat de BEFORE STATEMENT trigger onnodig vuurt, controleren
|
||
-- we eerst of het statement wel nodig is, d.i. of er onderdelen zijn die nog
|
||
-- verplaatst moeten worden.
|
||
SELECT COUNT(*)
|
||
INTO lCount
|
||
FROM ins_deel
|
||
WHERE ins_deel.ins_deel_parent_key = PrimaryKey
|
||
AND ins_deel.ins_deel_verwijder IS NULL;
|
||
|
||
IF lCount > 0
|
||
THEN
|
||
Dummy := fac_p_fac_save_restore.SavePrimaryKey('INS_TRIGGER_BUSY', 1);
|
||
UPDATE ins_deel
|
||
SET (ins_alg_ruimte_key
|
||
, ins_alg_ruimte_type
|
||
, ins_alg_locatie_key) = (SELECT ins_alg_ruimte_key
|
||
, ins_alg_ruimte_type
|
||
, ins_alg_locatie_key
|
||
FROM ins_deel
|
||
WHERE ins_deel_key = PrimaryKey)
|
||
WHERE ins_deel.ins_deel_parent_key = PrimaryKey
|
||
AND ins_deel.ins_deel_verwijder IS NULL;
|
||
Dummy := fac_p_fac_save_restore.ResetSelectie('INS_TRIGGER_BUSY');
|
||
END IF;
|
||
IndexNr := IndexNr + 1;
|
||
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('INS_DEEL_CASCADE', IndexNr);
|
||
END LOOP;
|
||
Dummy := fac_p_fac_save_restore.ResetSelectie('INS_DEEL_CASCADE');
|
||
ELSE
|
||
NULL;
|
||
END IF; -- lNested
|
||
END;
|
||
-- Add statements that need execution even when nested here:
|
||
--
|
||
-- Attentie: Alle koppelingen met delen uit de selectie worden verwijderd. Doordat deze
|
||
-- selectie tijdens deze transactie groter kan worden door de bijbehorende onderdelen, wordt
|
||
-- mogelijkerwijs vaker ins_p_delete_deelkoppeling() aangeroepen dan strikt nodig is (de reeds
|
||
-- aanwezige keys blijven oon staan). Dit is niet echt een probleem in de huidige context, maar
|
||
-- kan dat worden als die functie veel tijd kost ook al is er niks te doen.
|
||
DECLARE
|
||
IndexNr NUMBER;
|
||
PrimaryKey NUMBER(10);
|
||
Dummy BOOLEAN;
|
||
BEGIN
|
||
IndexNr := 1;
|
||
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('INS_DEEL_ONTKOPPEL', IndexNr);
|
||
WHILE PrimaryKey IS NOT NULL
|
||
LOOP
|
||
Dummy := ins_p_delete_deelkoppeling(PrimaryKey);
|
||
IndexNr := IndexNr + 1;
|
||
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('INS_DEEL_ONTKOPPEL', IndexNr);
|
||
END LOOP;
|
||
Dummy := fac_p_fac_save_restore.ResetSelectie('INS_DEEL_KOPPELING');
|
||
END;
|
||
END;
|
||
/
|
||
|
||
CREATE_TRIGGER(ins_t_ins_deel_B_IU)
|
||
BEFORE INSERT OR UPDATE ON ins_deel
|
||
FOR EACH ROW
|
||
BEGIN
|
||
UPDATE_PRIMARY_KEY(ins_deel_key,ins_s_ins_inst_keys);
|
||
UPDATE_UPPER(ins_deel_omschrijving,ins_deel_upper);
|
||
-- Indien verplaatsing of verwijdering of reincarnatie dan alleen vanuit de
|
||
-- CAD-omgeving, d.i. als tegelijk ins_deel_getekend een nieuwe waarde krijgt.
|
||
-- Dus een foutmelding als dit niet zo is.
|
||
CHECK_CADMUTATIE2(ins_deel_verwijder, ins_deel_getekend, ins_alg_ruimte_key, 'ins_m187');
|
||
|
||
IF :new.ins_deel_verwijder IS NOT NULL
|
||
THEN
|
||
DECLARE
|
||
Dummy BOOLEAN;
|
||
BEGIN
|
||
-- Verwijder evt. onderliggende onderdelen alleen als dit geen onderdeel is.
|
||
IF :new.ins_deel_parent_key IS NULL
|
||
THEN
|
||
Dummy := fac_p_fac_save_restore.SavePrimaryKey('INS_DEEL_VERWIJDER', :new.ins_deel_key);
|
||
END IF;
|
||
-- Verwijder evt. koppelingen; zowel delen als onderdelen kunnen koppelingen hebben.
|
||
Dummy := fac_p_fac_save_restore.SavePrimaryKey('INS_DEEL_ONTKOPPEL', :new.ins_deel_key);
|
||
END;
|
||
END IF;
|
||
|
||
-- Vul het veld INS_DISCIPLINE van het huidige deel.
|
||
IF :old.ins_srtdeel_key IS NULL
|
||
OR :old.ins_srtdeel_key <> :new.ins_srtdeel_key
|
||
OR :old.ins_discipline_key IS NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT INS_D.ins_discipline_key
|
||
INTO :new.ins_discipline_key
|
||
FROM ins_srtdeel INS_SD
|
||
, ins_srtgroep INS_SG
|
||
, ins_tab_discipline INS_D
|
||
WHERE INS_SD.ins_srtdeel_key = :new.ins_srtdeel_key
|
||
AND INS_SD.ins_srtgroep_key = INS_SG.ins_srtgroep_key
|
||
AND INS_SG.ins_discipline_key = INS_D.ins_discipline_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN :new.ins_discipline_key := NULL;
|
||
END;
|
||
END IF;
|
||
-- Zoek de (redundante) alg_locatie_key erbij indien verplaatst.
|
||
IF :old.ins_alg_ruimte_key IS NULL
|
||
OR :old.ins_alg_ruimte_key <> :new.ins_alg_ruimte_key
|
||
OR :new.ins_alg_locatie_key IS NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT alg_locatie_key
|
||
INTO :new.ins_alg_locatie_key
|
||
FROM ins_v_alg_overzicht
|
||
WHERE alg_onroerendgoed_keys = :new.ins_alg_ruimte_key
|
||
AND alg_onroerendgoed_type = :new.ins_alg_ruimte_type;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN :new.ins_alg_locatie_key := NULL;
|
||
END;
|
||
END IF;
|
||
/* Bij INS_DEEL in INS-mode moet INS_ALG_RUIMTE_KEY ingevuld zijn
|
||
* en wel met ruimte, verdieping, gebouw of terreinsector.
|
||
* Daarvoor moet ook het INS_ALG_RUIMTE_TYPE veld goed ingevuld zijn
|
||
* (met 'R' of 'V' of 'G' of 'T').
|
||
* Dit geldt als INS_ALG_RUIMTE_KEY veranderd is of als er een
|
||
* nieuw record geinsert wordt.
|
||
*
|
||
*
|
||
* IN INV-mode hoeft INS_ALG_RUIMTE_KEY niet ingevuld te zijn, maar
|
||
* als deze ingevuld is moet INS_ALG_RUIMTE_KEY met ruimte of werkplek
|
||
* gevuld zijn, daarvoor moet het veld INS_ALG_RUITMTE_KEY goed
|
||
* ingevuld zijn (met 'R' of 'W').
|
||
*
|
||
* IN INV-mode kan het veld INS_PRS_BEZIT_KEY ook ingevuld zijn, maar
|
||
* INS_ALG_RUIMTE_KEY en INS_PRS_BEZIT_KEY kunnen niet beide ingevuld worden.
|
||
* INS_PRS_BEZIT_KEY kan de waarde perslid of afdeling bevatten en het
|
||
* veld INS_PRS_BEZIT_TYPE moet dan goed ingevuld zijn (met 'P' of 'A').
|
||
* AH 05-06-96 Nu kunnen biede velden ingevuld zijn.
|
||
*/
|
||
IF :new.ins_deel_module = 'INS'
|
||
AND (:old.ins_alg_ruimte_key <> :new.ins_alg_ruimte_key
|
||
OR :old.ins_alg_ruimte_key IS NULL)
|
||
THEN
|
||
IF :new.ins_alg_ruimte_type = 'W' /* 990218/BIV - #2251 - Deel kan ook op werkplek worden geplaatst */
|
||
THEN
|
||
CHECK_KEY_REFERENCE(prs_v_aanwezigwerkplek , prs_werkplek_key , :new.ins_alg_ruimte_key, 'ins_m174');
|
||
ELSIF :new.ins_alg_ruimte_type = 'R'
|
||
THEN
|
||
CHECK_KEY_REFERENCE(alg_v_aanwezigruimte , alg_ruimte_key , :new.ins_alg_ruimte_key, 'ins_m092');
|
||
ELSIF :new.ins_alg_ruimte_type = 'T'
|
||
THEN
|
||
CHECK_KEY_REFERENCE(alg_v_aanwezigterreinsector, alg_terreinsector_key, :new.ins_alg_ruimte_key, 'ins_m095');
|
||
ELSE
|
||
APPLICATION_ERROR(-20000, 'ins_m84');
|
||
END IF;
|
||
DECLARE
|
||
Dummy BOOLEAN;
|
||
BEGIN
|
||
-- Alleen bestaande delen hebben mogelijk te verplaatsen onderdelen.
|
||
IF :old.ins_deel_aanmaak IS NOT NULL
|
||
AND :new.ins_deel_parent_key IS NULL
|
||
THEN
|
||
Dummy := fac_p_fac_save_restore.SavePrimaryKey('INS_DEEL_CASCADE', :new.ins_deel_key);
|
||
END IF;
|
||
END;
|
||
END IF;
|
||
UPDATE_AANMAAKDATUM(ins_deel, ins_deel_aanmaak);
|
||
END;
|
||
/
|
||
|
||
#endif // INS
|
||
|
||
#ifdef CAD
|
||
|
||
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 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_SLNKSTRUCTdelete(Session_Id NUMBER, Entry IN VARCHAR2);
|
||
PROCEDURE cad_SLNKgetDrawing(Session_Id NUMBER);
|
||
PROCEDURE cad_SLNKPreDraw(Session_Id NUMBER);
|
||
PROCEDURE cad_SLNKPrePostDraw(Session_Id NUMBER);
|
||
PROCEDURE cad_SLNKDelenbijWerkplek(Session_Id NUMBER);
|
||
PROCEDURE cad_getSymboolInfo(Session_Id NUMBER, Entry VARCHAR2);
|
||
PROCEDURE cad_SLNKgetBinnenBuiten(Session_Id NUMBER, LoadDwg VARCHAR2);
|
||
PROCEDURE cad_GetSrcDwgOfEntity2(Session_Id NUMBER, LPNAliasINSO VARCHAR2, LPNKey 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 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 NUMBER, LPNAliasINSO VARCHAR2, LPNKey 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;
|
||
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;
|
||
|
||
|
||
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;
|
||
END Bepaal_locatiecode;
|
||
|
||
|
||
FUNCTION cad_getLocatieCode_Tekening(TekeningNaam IN VARCHAR2) RETURN VARCHAR2 IS
|
||
locatieCode VARCHAR2(25);
|
||
SlashPositie NUMBER(2);
|
||
BEGIN
|
||
SlashPositie := INSTR(TekeningNaam,'\');
|
||
LocatieCode := SUBSTR(TekeningNaam,1, SlashPositie-1);
|
||
RETURN LocatieCode;
|
||
END cad_getLocatieCode_Tekening;
|
||
|
||
FUNCTION cad_getTekeningNaam_LoadDwg(LoadDwg IN VARCHAR2) RETURN VARCHAR2 IS
|
||
Teller NUMBER;
|
||
OneChar VARCHAR2(1);
|
||
Tekening VARCHAR2(256);
|
||
SlashFound BOOLEAN := FALSE;
|
||
|
||
BEGIN
|
||
Teller:= LENGTH(LoadDwg);
|
||
WHILE (teller>0) LOOP
|
||
OneChar:=SUBSTR(LoadDwg,Teller,1);
|
||
IF OneChar='\' 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;
|
||
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 := 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
|
||
AND alg_verdieping_key IS NULL;
|
||
plattegrondtekening := locatie_code||'\'||tekening;
|
||
RETURN plattegrondtekening;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
RETURN NULL;
|
||
END;
|
||
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 := 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||'\'||tekening;
|
||
RETURN plattegrondtekening;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
RETURN NULL;
|
||
END;
|
||
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 := 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||'\'||tekening;
|
||
RETURN Contourtekening;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
RETURN NULL;
|
||
END;
|
||
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 := 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||'\'||tekening;
|
||
RETURN Contourtekening;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
RETURN NULL;
|
||
END;
|
||
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 := cad_getTekeningNaam_LoadDwg(LoadDwg);
|
||
LocatieCode := 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 cad_tekening_filenaam = TekeningNaam;
|
||
IF VerdiepingKey IS NOT NULL THEN
|
||
Plaats := 0;
|
||
ELSE
|
||
Plaats := 1;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
Plaats := 1;
|
||
END;
|
||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'INFOI', 1, Plaats, 1);
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END cad_SLNKgetBinnenBuiten;
|
||
|
||
|
||
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'
|
||
AND cad_slnkstruct_entry <> 'PROJECTKEY';
|
||
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'
|
||
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;
|
||
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;
|
||
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;
|
||
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;
|
||
|
||
|
||
|
||
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;
|
||
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;
|
||
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;
|
||
END cad_getLayerName;
|
||
|
||
|
||
#ifdef BIS
|
||
PROCEDURE cad_KILLtrajecten(Session_Id NUMBER, Diepte NUMBER, Datum DATE) IS
|
||
Eerste BOOLEAN;
|
||
BEGIN
|
||
DECLARE
|
||
CURSOR EindTrajectGroter IS
|
||
SELECT DISTINCT(BIS_BT1.bis_boring_key), 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
|
||
WHERE bis_boring_key = TrajectRec.bis_boring_key
|
||
AND bis_boring_verwijderdatum IS NULL;
|
||
COMMIT;
|
||
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_einddiepte < Diepte;
|
||
|
||
/* Hele traject valt binnen het ontgravingsvak */
|
||
BEGIN
|
||
FOR TrajectRec IN TrajectKleinerDiepte LOOP
|
||
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;
|
||
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
|
||
FOR TrajectRec IN TrajectOverlap LOOP
|
||
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 t.b.v. Grafische conversie BIS */
|
||
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(10);
|
||
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;
|
||
#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;
|
||
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 := INSTR(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;
|
||
*/
|
||
|
||
|
||
FUNCTION AddDeel(Session_Id IN NUMBER, SrtdeelKey IN NUMBER, LoadDwg IN VARCHAR2, LPNCondName IN VARCHAR2,
|
||
LPNCondKey IN NUMBER) RETURN NUMBER IS
|
||
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;
|
||
LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
MaxLengte NUMBER(10);
|
||
Dummy NUMBER(10);
|
||
LabelSymbool VARCHAR2(256);
|
||
LabelOK BOOLEAN;
|
||
|
||
BEGIN
|
||
LocatieCode := 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 := 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 NOT LabelOK 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 := 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;
|
||
|
||
|
||
FUNCTION cad_MaakCadTekening(LPNALIAS IN VARCHAR2, LPNKEY IN VARCHAR2, SrtTekening IN CHAR) RETURN VARCHAR2 IS
|
||
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;
|
||
TekeningNaam cad_tekening.cad_tekening_filenaam%TYPE;
|
||
TekeningKey cad_tekening.cad_tekening_key%TYPE;
|
||
PlaatsDeel ins_deel.ins_alg_ruimte_type%TYPE;
|
||
|
||
BEGIN
|
||
IF LPNALIAS = 'LPN_ALG_TERREINSECTOR' THEN
|
||
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);
|
||
/* Tekening bestaat nog NIET, dus aanmaken ...
|
||
* Naam v.d. tekening is waarde v.d. toe te voegen key v.d. tabel cad_tekening + '.DWG'
|
||
*/
|
||
SELECT cad_s_cad_tekening_key.NEXTVAL INTO TekeningKey FROM DUAL;
|
||
TekeningNaam := TO_CHAR(TekeningKey)||'.DWG';
|
||
VerdiepingKey := NULL;
|
||
DisciplineKey := NULL;
|
||
ELSIF LPNALIAS = 'LPN_ALG_GEBOUW' THEN
|
||
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);
|
||
SELECT cad_s_cad_tekening_key.NEXTVAL INTO TekeningKey FROM DUAL;
|
||
TekeningNaam := TO_CHAR(TekeningKey)||'.DWG';
|
||
VerdiepingKey := NULL;
|
||
DisciplineKey := NULL;
|
||
ELSIF LPNALIAS = 'LPN_ALG_RUIMTE' THEN
|
||
SELECT alg_locatie_key,alg_locatie_code, alg_verdieping_key INTO LocatieKey, LocatieCode, VerdiepingKey
|
||
FROM alg_v_ruimte_gegevens
|
||
WHERE alg_ruimte_key = LPNKey;
|
||
SELECT cad_s_cad_tekening_key.NEXTVAL INTO TekeningKey FROM DUAL;
|
||
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 := Bepaal_LocatieCode(LocatieKey);
|
||
IF SrtTekening = 'D' THEN
|
||
DisciplineKey := cad_f_deel_get_discipline(LPNKey);
|
||
ELSE
|
||
DisciplineKey := NULL;
|
||
END IF;
|
||
IF PlaatsDeel = 'T' THEN /* Deel bevindt zich buiten */
|
||
VerdiepingKey := NULL;
|
||
ELSE
|
||
VerdiepingKey := cad_f_deel_get_verdieping(LPNKey);
|
||
END IF;
|
||
SELECT cad_s_cad_tekening_key.NEXTVAL INTO TekeningKey FROM DUAL;
|
||
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 := Bepaal_LocatieCode(LocatieKey);
|
||
SELECT cad_s_cad_tekening_key.NEXTVAL INTO TekeningKey FROM DUAL;
|
||
TekeningNaam := TO_CHAR(TekeningKey)||'.DWG';
|
||
DisciplineKey := NULL;
|
||
END IF;
|
||
INSERT INTO cad_tekening(cad_tekening_key, alg_locatie_key, alg_verdieping_key, ins_discipline_key,
|
||
cad_tekening_filenaam, cad_tekening_type)
|
||
VALUES(TekeningKey, LocatieKey, VerdiepingKey, DisciplineKey, TekeningNaam, SrtTekening);
|
||
COMMIT;
|
||
Tekeningnaam := LocatieCode||'\'||TekeningNaam;
|
||
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_GetSrcDwgOfEntity2(Session_Id NUMBER, LPNAliasINSO VARCHAR2, LPNKey NUMBER) IS
|
||
SrcDwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
|
||
BEGIN
|
||
IF LPNAliasINSO = 'LPN_INS_DEEL' THEN
|
||
SrcDwg := cad_GetSrcDwgOfEntity(Session_Id, 'LPN_INS_DEEL', LPNKey);
|
||
ELSIF LPNAliasINSO = 'LPN_ALG_TERREINSECTOR' THEN
|
||
SrcDwg := cad_GetSrcDwgOfEntity(Session_Id, 'LPN_ALG_TERREINSECTOR', LPNKey);
|
||
ELSIF LPNAliasINSO = 'LPN_ALG_GEBOUW' THEN
|
||
SrcDwg := cad_GetSrcDwgOfEntity(Session_Id,'LPN_ALG_GEBOUW', LPNKey);
|
||
ELSIF LPNAliasINSO = 'LPN_ALG_RUIMTE' THEN
|
||
SrcDwg := cad_GetSrcDwgOfEntity(Session_Id, 'LPN_ALG_RUIMTE', LPNKey);
|
||
ELSIF LPNAliasINSO = 'LPN_PRS_WERKPLEK' THEN
|
||
SrcDwg := cad_GetSrcDwgOfEntity(Session_Id, 'LPN_PRS_WERKPLEK', LPNKey);
|
||
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);
|
||
END cad_GetSrcDwgOfEntity2;
|
||
|
||
|
||
PROCEDURE cad_SLNKPreDraw(Session_Id 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;
|
||
SrcDwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LoadDwg 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;
|
||
LayerColor ins_srtdeel.ins_srtdeel_cadlaycolor%TYPE;
|
||
LayerLineType 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);
|
||
|
||
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_INS_DEEL' THEN
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_INS_DEEL', 1);
|
||
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 */
|
||
SELECT ins_srtdeel_cadlaycolor, ins_srtdeel_cadlaylinetype,ins_srtdeel_cadlayer, ins_srtdeel_acadsymbol,
|
||
ins_srtdeel_opmaat, ins_srtdeel_dimensie
|
||
INTO LayerColor, LayerLineType, LayerNaam, Symbool, Opmaat, Dimensie
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_key = SrtdeelKey;
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'DIMENSION', SeqNr, Dimensie, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA', SeqNr, 'INS_DEEL_KEY', 1);
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'LAYERCOLOR', SeqNr, LayerColor, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERLINETYPE', SeqNr, LayerLinetype, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER', SeqNr, Layernaam, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'BLOCK', SeqNr, Symbool, 1);
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'SCALE', SeqNr, Opmaat, 1);
|
||
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 */
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_TERREINSECTOR', 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLCONDA', SeqNr, 'ALG_TERREINSECTOR_KEY', 1);
|
||
ELSE /* Ruimte of Werkplek */
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_RUIMTE', 1);
|
||
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;
|
||
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 := 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);
|
||
ELSE /* Ruimte of Werkplek */
|
||
SELECT alg_verdieping_key INTO VerdiepingKey
|
||
FROM alg_ruimte
|
||
WHERE alg_ruimte_key = LPNKeyCond;
|
||
LoadDwg := cad_getVerdiepPlgrnd_tekening(LocatieKey, Verdiepingkey);
|
||
END IF;
|
||
IF LoadDwg IS NULL THEN
|
||
LoadDwg := cad_MaakCadTekening('LPN_INS_DEEL', LPNKey, 'P');
|
||
END IF;
|
||
/* Bepaal Attachdwg's */
|
||
IF PlaatsDeel = 'T' THEN /* Terreinsector */
|
||
AttachDwg1 := cad_getContourtekening(LocatieKey); /* Contourtekening locatie */
|
||
ELSE /* Ruimte of Werkplek */
|
||
AttachDwg1 := cad_getVerdiepCntr_tekening(LocatieKey, Verdiepingkey); /* Contourtekening verdieping */
|
||
END IF;
|
||
IF AttachDwg1 IS NULL THEN
|
||
AttachDwg1 := cad_MaakCadTekening('LPN_INS_DEEL', LPNKey, 'C');
|
||
END IF;
|
||
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 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
|
||
WHERE ins_deel_key = LPNKey;
|
||
cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, Omschrijving, 1);
|
||
ELSIF LPNName = 'LPN_ALG_GEBOUW' THEN
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_ALG_GEBOUW', 1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'DIMENSION', SeqNr, 2, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA', SeqNr, 'ALG_GEBOUW_KEY', 1);
|
||
LayerColor := cad_getLayercolor('ALG_GEBOUW');
|
||
LayerLineType := cad_getLayerlinetype('ALG_GEBOUW');
|
||
LayerNaam := cad_getLayername('ALG_GEBOUW');
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'LAYERCOLOR', SeqNr, LayerColor, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERLINETYPE', SeqNr, LayerLinetype, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER', SeqNr, Layernaam, 1);
|
||
SELECT alg_locatie_key INTO Locatiekey
|
||
FROM alg_gebouw
|
||
WHERE alg_gebouw_key = LPNKey;
|
||
Locatiecode := Bepaal_locatiecode(LocatieKey);
|
||
LoadDwg := cad_getPlattegrondtekening(LocatieKey);
|
||
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);
|
||
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
|
||
cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, LocatieCode||'\'||Tekenrec.cad_tekening_filenaam, 0);
|
||
END LOOP;
|
||
END;
|
||
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;
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, gebouwcode, 1);
|
||
ELSIF LPNName = 'LPN_ALG_RUIMTE' THEN
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_ALG_RUIMTE', 1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'DIMENSION', SeqNr, 2, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA', SeqNr, 'ALG_RUIMTE_KEY', 1);
|
||
LayerColor := cad_getLayercolor('ALG_RUIMTE');
|
||
LayerLineType := cad_getLayerlinetype('ALG_RUIMTE');
|
||
LayerNaam := cad_getLayername('ALG_RUIMTE');
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'LAYERCOLOR', SeqNr, LayerColor, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERLINETYPE', SeqNr, LayerLinetype, 1);
|
||
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 := Bepaal_locatiecode(LocatieKey);
|
||
LoadDwg := cad_getVerdiepPlgrnd_tekening(Locatiekey, Verdiepingkey);
|
||
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);
|
||
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
|
||
cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, LocatieCode||'\'||Tekenrec.cad_tekening_filenaam, 0);
|
||
END LOOP;
|
||
END;
|
||
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;
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, RuimteNr, 1);
|
||
ELSIF LPNNAME = 'LPN_PRS_WERKPLEK' THEN
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_PRS_WERKPLEK', 1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'DIMENSION', SeqNr, 0, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA', SeqNr, 'PRS_WERKPLEK_KEY', 1);
|
||
LayerColor := cad_getLayercolor('PRS_WERKPLEK');
|
||
LayerLineType := cad_getLayerlinetype('PRS_WERKPLEK');
|
||
LayerNaam := cad_getLayername('PRS_WERKPLEK');
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'LAYERCOLOR', SeqNr, LayerColor, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERLINETYPE', SeqNr, LayerLinetype, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER', SeqNr, Layernaam, 1);
|
||
SELECT cad_symbool_symbool INTO symbool
|
||
FROM cad_symbool
|
||
WHERE cad_symbool_entry = 'PRS_WERKPLEK';
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'BLOCK', SeqNr, Symbool, 1);
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'SCALE', SeqNr, 1, 1);
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'INSPOINTCODE', SeqNr, 0, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_RUIMTE', 1);
|
||
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;
|
||
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 := Bepaal_locatiecode(LocatieKey);
|
||
/*
|
||
SrcDwg := cad_getVerdiepCntr_tekening(LocatieKey, Verdiepingkey); -- Contourtekening verdieping
|
||
IF SrcDwg IS NULL THEN
|
||
SrcDwg := cad_MaakCadTekening('LPN_PRS_WERKPLEK', LPNKey, 'C');
|
||
END IF;
|
||
*/
|
||
/* 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;
|
||
AttachDwg1 := SrcDwg;
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'SRCDWG', SeqNr, SrcDwg, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG', SeqNr, LoadDwg, 1);
|
||
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
|
||
cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, LocatieCode||'\'||Tekenrec.cad_tekening_filenaam, 0);
|
||
END LOOP;
|
||
END;
|
||
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;
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, WerkplekNr, 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);
|
||
#ifdef BIS
|
||
LayerNaam := 'SUBLOCATIE';
|
||
#else
|
||
LayerColor := cad_getLayercolor('ALG_TERREINSECTOR');
|
||
LayerLineType := cad_getLayerlinetype('ALG_TERREINSECTOR');
|
||
LayerNaam := cad_getLayername('ALG_TERREINSECTOR');
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'LAYERCOLOR', SeqNr, LayerColor, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERLINETYPE', SeqNr, LayerLinetype, 1);
|
||
#endif //NONBIS
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER', SeqNr, Layernaam, 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;
|
||
LocatieCode := Bepaal_locatiecode(LocatieKey);
|
||
LoadDwg := cad_getPlattegrondtekening(LocatieKey);
|
||
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);
|
||
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
|
||
cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, LocatieCode||'\'||Tekenrec.cad_tekening_filenaam, 0);
|
||
END LOOP;
|
||
END;
|
||
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;
|
||
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 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_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_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);
|
||
#endif //BIS
|
||
END IF;
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END cad_SLNKPreDraw;
|
||
|
||
FUNCTION cad_SLNKPrePostUndo(Session_id NUMBER) RETURN BOOLEAN IS
|
||
LPNAliasINSO cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNKeyINSO 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);
|
||
RetValue BOOLEAN;
|
||
BEGIN
|
||
LPNAliasINSO := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASINSO');
|
||
LPNKeyINSO := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYINSO');
|
||
IF LPNKeyINSO IS NOT NULL THEN
|
||
BEGIN
|
||
IF LPNAliasINSO = 'LPN_ALG_TERREINSECTOR' THEN
|
||
SELECT alg_locatie_key, alg_terreinsector_code INTO LocatieKey, Code
|
||
FROM alg_terreinsector
|
||
WHERE alg_terreinsector_key = LPNKeyINSO;
|
||
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 = SYSDATE /* It's CAD */
|
||
WHERE alg_terreinsector_key = LPNKeyINSO;
|
||
RetValue := TRUE;
|
||
END;
|
||
ELSIF LPNAliasINSO = 'LPN_ALG_GEBOUW' THEN
|
||
SELECT alg_locatie_key, alg_gebouw_code INTO LocatieKey, Code
|
||
FROM alg_gebouw
|
||
WHERE alg_gebouw_key = LPNKeyINSO;
|
||
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 = SYSDATE /* It's CAD */
|
||
WHERE alg_gebouw_key = LPNKeyINSO;
|
||
RetValue := TRUE;
|
||
END;
|
||
ELSIF LPNAliasINSO = 'LPN_ALG_RUIMTE' THEN
|
||
SELECT alg_verdieping_key, alg_ruimte_upper_nr INTO VerdiepingKey, Code
|
||
FROM alg_ruimte
|
||
WHERE alg_ruimte_key = LPNKeyINSO;
|
||
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 = SYSDATE /* It's CAD */
|
||
WHERE alg_ruimte_key = LPNKeyINSO;
|
||
RetValue := TRUE;
|
||
END;
|
||
ELSIF LPNAliasINSO = 'LPN_PRS_WERKPLEK' THEN
|
||
SELECT prs_alg_ruimte_key, prs_werkplek_volgnr INTO RuimteKey, Werkpleknr
|
||
FROM prs_werkplek
|
||
WHERE prs_werkplek_key = LPNKeyINSO;
|
||
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 = SYSDATE /* IT's CAD */
|
||
WHERE prs_werkplek_key = LPNKeyINSO;
|
||
RetValue := TRUE;
|
||
END;
|
||
ELSIF LPNAliasINSO = '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 = LPNKeyINSO;
|
||
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 = SYSDATE /* It's CAD */
|
||
WHERE ins_deel_key = LPNKeyINSO;
|
||
RetValue := TRUE;
|
||
END;
|
||
ELSE
|
||
RETURN FALSE;
|
||
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 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;
|
||
|
||
|
||
PROCEDURE cad_SLNKPrePostDimensie0(Session_Id 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;
|
||
LPNAliasINSO cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNKeyINSO cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
|
||
BEGIN
|
||
Dimensie := 0;
|
||
LayerNaam := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LAYER');
|
||
LPNCondName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
||
LPNCondKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYCONDO');
|
||
BlockNaam := cad_SLNKSTRUCTreadVALSTR(Session_id, 'BLOCK');
|
||
LoadDwg := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LOADDWG');
|
||
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 := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
IF NOT LPNCondKeyOK THEN
|
||
SeqNr := 2;
|
||
LOOP
|
||
LPNCondName := cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', SeqNr);
|
||
LPNCondKey := cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', SeqNr);
|
||
IF LPNCondKey IS NULL THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
EXIT WHEN LPNCondKeyOK AND LPNCondName = 'LPN_ALG_RUIMTE';
|
||
LPNCondKeyOK := FALSE;
|
||
SeqNr := SeqNr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
ELSE
|
||
LPNCondKeyOK := FALSE;
|
||
END IF;
|
||
IF LPNCondKeyOK THEN
|
||
LabelSymbool := 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 NOT LabelOK 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 */
|
||
SELECT MIN(ins_srtdeel_key) INTO SrtDeelKey
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_dimensie = Dimensie
|
||
AND UPPER(ins_srtdeel_cadlayer) = UPPER(LayerNaam)
|
||
AND UPPER(ins_srtdeel_acadsymbol) = UPPER(BlockNaam)
|
||
AND ins_srtdeel_verwijder IS NULL;
|
||
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 := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
IF NOT LPNCondKeyOK THEN
|
||
Seqnr := 2;
|
||
LOOP
|
||
LPNCondName := cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', Seqnr);
|
||
LPNCondKey := cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
||
IF LPNCondKey IS NULL THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
EXIT WHEN (LPNCondKeyOK AND LPNCondName = 'LPN_ALG_TERREINSECTOR')
|
||
OR (LPNCondKeyOK AND LPNCondName = 'LPN_ALG_RUIMTE')
|
||
OR (LPNCondKeyOK AND LPNCondName = 'LPN_PRS_WERKPLEK');
|
||
LPNCondKeyOK := FALSE;
|
||
Seqnr := Seqnr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
ELSE
|
||
LPNCondKeyOK := FALSE;
|
||
END IF;
|
||
IF LPNCondKeyOK THEN
|
||
LPNName := 'LPN_INS_DEEL';
|
||
LPNKey := AddDeel(Session_id, SrtdeelKey, LoadDwg, LPNCondName, LPNCondKey);
|
||
RecordAdded:= TRUE;
|
||
ELSE
|
||
RecordAdded:= FALSE;
|
||
END IF;
|
||
ELSE
|
||
SELECT MIN(ins_srtdeel_key) INTO SrtDeelKey
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_dimensie = Dimensie
|
||
AND UPPER(ins_srtdeel_acadsymbol) = UPPER(BlockNaam)
|
||
AND ins_srtdeel_verwijder IS NULL;
|
||
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 := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
IF NOT LPNCondKeyOK THEN
|
||
Seqnr := 2;
|
||
LOOP
|
||
LPNCondName := cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', Seqnr);
|
||
LPNCondKey := cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
||
IF LPNCondKey IS NULL THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
EXIT WHEN (LPNCondKeyOK AND LPNCondName = 'LPN_ALG_TERREINSECTOR')
|
||
OR (LPNCondKeyOK AND LPNCondName = 'LPN_ALG_RUIMTE')
|
||
OR (LPNCondKeyOK AND LPNCondName = 'LPN_PRS_WERKPLEK');
|
||
LPNCondKeyOK := FALSE;
|
||
Seqnr := Seqnr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
ELSE
|
||
LPNCondKeyOK := FALSE;
|
||
END IF;
|
||
|
||
IF LPNCondKeyOK THEN
|
||
LPNName := 'LPN_INS_DEEL';
|
||
LPNKey := AddDeel(Session_id,SrtdeelKey, LoadDwg, LPNCondName, LPNCondKey);
|
||
RecordAdded:= TRUE;
|
||
ELSE
|
||
RecordAdded:= FALSE;
|
||
END IF;
|
||
ELSE
|
||
RecordAdded:= FALSE;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
cad_SLNKSTRUCTclear(Session_Id);
|
||
IF RecordAdded THEN
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASPREDRAW', 1, LPNName, 1);
|
||
cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYPREDRAW', 1, LPNKey, 1);
|
||
cad_SLNKPreDraw(Session_Id);
|
||
ELSE
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END IF;
|
||
END cad_SLNKPrePostDimensie0;
|
||
|
||
PROCEDURE cad_SLNKPrePostDimensie1(Session_Id 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 := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
||
LPNCondKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYCONDO');
|
||
LayerNaam := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LAYER');
|
||
LoadDwg := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LOADDWG');
|
||
/* Check of het een soortdeel is... */
|
||
SELECT MIN(ins_srtdeel_key) INTO SrtDeelKey
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_dimensie = Dimensie
|
||
AND UPPER(ins_srtdeel_cadlayer) = UPPER(LayerNaam)
|
||
AND ins_srtdeel_verwijder IS NULL;
|
||
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 := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
IF NOT LPNCondKeyOK THEN
|
||
Seqnr := 2;
|
||
LOOP
|
||
LPNCondName := cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', Seqnr);
|
||
LPNCondKey := cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
||
IF LPNCondKey IS NULL THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
EXIT WHEN (LPNCondKeyOK AND LPNCondName = 'LPN_ALG_TERREINSECTOR')
|
||
OR (LPNCondKeyOK AND LPNCondName = 'LPN_ALG_RUIMTE')
|
||
OR (LPNCondKeyOK AND LPNCondName = 'LPN_PRS_WERKPLEK');
|
||
LPNCondKeyOK := FALSE;
|
||
Seqnr := Seqnr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
ELSE
|
||
LPNCondKeyOK := FALSE;
|
||
END IF;
|
||
IF LPNCondKeyOK THEN
|
||
LPNName := 'LPN_INS_DEEL';
|
||
LPNKey := AddDeel(Session_id, SrtdeelKey, LoadDwg, LPNCondName, LPNCondKey);
|
||
RecordAdded:= TRUE;
|
||
ELSE
|
||
RecordAdded:= FALSE;
|
||
END IF;
|
||
ELSE
|
||
RecordAdded:= FALSE;
|
||
END IF;
|
||
cad_SLNKSTRUCTclear(Session_Id);
|
||
IF RecordAdded THEN
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASPREDRAW', 1, LPNName, 1);
|
||
cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYPREDRAW', 1, LPNKey, 1);
|
||
cad_SLNKPreDraw(Session_Id);
|
||
ELSE
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END IF;
|
||
END cad_SLNKPrePostDimensie1;
|
||
|
||
PROCEDURE cad_SLNKPrePostDimensie2(Session_Id 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:= FALSE;
|
||
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
|
||
Dimensie := 2;
|
||
LayerNaam := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LAYER');
|
||
LoadDwg := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LOADDWG');
|
||
BlockNaam := cad_SLNKSTRUCTreadVALSTR(Session_id, 'BLOCK');
|
||
LPNCondName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
||
LPNCondKey := 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 := cad_getLocatieCode_Tekening(LoadDwg);
|
||
SELECT alg_locatie_key INTO LocatieKey
|
||
FROM alg_locatie
|
||
WHERE alg_locatie_code = LocatieCode;
|
||
LabelSymbool := 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 NOT LabelOK 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 := Bepaal_VolgnummerTxt(Omschrijving);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
SectorCode := '01';
|
||
END;
|
||
*/
|
||
SectorCode := 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 := cad_getLocatieCode_Tekening(LoadDwg);
|
||
SELECT alg_locatie_key INTO LocatieKey
|
||
FROM alg_locatie
|
||
WHERE alg_locatie_code = LocatieCode;
|
||
LabelSymbool := 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 NOT labelOK 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 := 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 := 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 := cad_getTekeningNaam_LoadDwg(LoadDwg);
|
||
BEGIN
|
||
SELECT alg_verdieping_key INTO VerdiepingKey
|
||
FROM cad_v_plattegrond
|
||
WHERE alg_locatie_key = LocatieKey
|
||
AND cad_tekening_filenaam = 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 := 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 NOT LabelOK 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 := 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 UPPER(ins_srtdeel_cadlayer) = UPPER(LayerNaam)
|
||
AND ins_srtdeel_verwijder IS NULL;
|
||
-- SM44 Fix #79 AND UPPER(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 := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
IF NOT LPNCondKeyOK THEN
|
||
Seqnr := 2;
|
||
LOOP
|
||
LPNCondName := cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', Seqnr);
|
||
LPNCondKey := cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
||
IF LPNCondKey IS NULL THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
EXIT WHEN (LPNCondKeyOK AND LPNCondName = 'LPN_ALG_TERREINSECTOR')
|
||
OR (LPNCondKeyOK AND LPNCondName = 'LPN_ALG_RUIMTE')
|
||
OR (LPNCondKeyOK AND LPNCondName = 'LPN_PRS_WERKPLEK');
|
||
LPNCondKeyOK := FALSE;
|
||
Seqnr := Seqnr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
ELSE
|
||
LPNCondKeyOK := FALSE;
|
||
END IF;
|
||
IF LPNCondKeyOK THEN
|
||
LPNName := 'LPN_INS_DEEL';
|
||
LPNKey := AddDeel(Session_id, SrtdeelKey, LoadDwg, LPNCondName, LPNCondKey);
|
||
RecordAdded:= TRUE;
|
||
ELSE
|
||
RecordAdded:= FALSE;
|
||
END IF;
|
||
ELSE
|
||
/* Het is een onbekend object... */
|
||
RecordAdded:= FALSE;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
cad_SLNKSTRUCTclear(Session_Id);
|
||
IF RecordAdded THEN
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASPREDRAW', 1, LPNName, 1);
|
||
cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYPREDRAW', 1, LPNKey, 1);
|
||
cad_SLNKPreDraw(Session_Id);
|
||
ELSE
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END IF;
|
||
END cad_SLNKPrePostDimensie2;
|
||
|
||
PROCEDURE cad_SLNKPrePostDraw(Session_Id 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
|
||
UndoOK:= cad_SLNKPrePostUndo(Session_Id);
|
||
IF NOT UndoOK THEN
|
||
Dimensie := cad_SLNKSTRUCTreadVALINT(Session_id, 'DIMENSION');
|
||
IF Dimensie = 0 THEN
|
||
cad_SLNKPrePostDimensie0(Session_Id);
|
||
ELSIF Dimensie = 1 THEN
|
||
cad_SLNKPrePostDimensie1(Session_Id);
|
||
ELSIF Dimensie = 2 THEN
|
||
cad_SLNKPrePostDimensie2(Session_Id);
|
||
ELSE
|
||
NULL;
|
||
END IF;
|
||
END IF;
|
||
END cad_SLNKPrePostDraw;
|
||
|
||
|
||
PROCEDURE cad_SLNKpostdraw(Session_Id 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);
|
||
LPNAliasLinkO cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNKeyLinkO 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;
|
||
LinkToRoom NUMBER;
|
||
LPNCondKeyOk BOOLEAN;
|
||
|
||
BEGIN
|
||
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASINSO');
|
||
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYINSO');
|
||
LPNCondName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
||
LPNCondKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYCONDO');
|
||
|
||
IF LPNNAME = 'LPN_INS_DEEL' THEN
|
||
LPNAliasLinkO := cad_SLNKSTRUCTreadVALSTR(Session_Id, 'LPNALIASLINKO');
|
||
IF LPNAliasLinkO IS NOT NULL THEN
|
||
/* Aanmaken ins_deelkoppeling record voor elke LPNKEYLINKO */
|
||
LPNKeyLinkO := 1; /* NOT NULL */
|
||
SeqNr := 1;
|
||
WHILE (LPNKeyLinkO IS NOT NULL) LOOP
|
||
LPNKeyLinkO := cad_SLNKSTRUCTreadVALINT2(Session_Id, 'LPNKEYLINKO', SeqNr);
|
||
IF LPNKeyLinkO IS NOT NULL THEN
|
||
INSERT INTO ins_deelkoppeling(ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key)
|
||
VALUES (LPNKey, LPNKeyLinkO);
|
||
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 := 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 := 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;
|
||
LinkToRoom := cad_SLNKSTRUCTreadVALINT(Session_id, 'LINKTOROOM');
|
||
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 LinkToRoom = 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 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 := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||
Omtrek := 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 := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||
Omtrek := 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 := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||
Omtrek := 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 := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
||
LPNCondKey := 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 := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
IF NOT LPNCondKeyOK THEN
|
||
Seqnr := 2;
|
||
LOOP
|
||
LPNCondKey := cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
||
IF LPNCondKey IS NULL THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
EXIT WHEN LPNCondKeyOK;
|
||
Seqnr := Seqnr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
IF LPNCondKeyOK 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 := 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;
|
||
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 */
|
||
cad_KILLtrajecten(Session_Id, Diepte, Datum);
|
||
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;
|
||
#endif //BIS
|
||
END IF;
|
||
COMMIT;
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1); /* ORACLE is klaar */
|
||
END cad_SLNKpostdraw;
|
||
|
||
|
||
PROCEDURE cad_SLNKpostErase(Session_Id 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 := 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_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 THEN
|
||
WerkPlekFound := TRUE;
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_PRS_WERKPLEK', 1);
|
||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, WerkplekRec.prs_werkplek_key, 1);
|
||
Eerste := FALSE;
|
||
ELSE
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_PRS_WERKPLEK', 0);
|
||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, WerkplekRec.prs_werkplek_key, 0);
|
||
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 AND NOT WerkPlekFound THEN
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 1);
|
||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 1);
|
||
Eerste := FALSE;
|
||
ELSE
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 0);
|
||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 0);
|
||
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 THEN
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 1);
|
||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 1);
|
||
Eerste := FALSE;
|
||
ELSE
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 0);
|
||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 0);
|
||
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 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,
|
||
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 THEN
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 1);
|
||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 1);
|
||
Eerste := FALSE;
|
||
ELSE
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 0);
|
||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 0);
|
||
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;
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END cad_SLNKpostErase;
|
||
|
||
|
||
PROCEDURE cad_SLNKpostModify(Session_Id 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:= FALSE;
|
||
RuimteType VARCHAR2(1);
|
||
LPNAliasLinkO cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNKeyLinkO 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;
|
||
LinkToRoom NUMBER;
|
||
|
||
BEGIN
|
||
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASMODO');
|
||
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYMODO');
|
||
IF LPNName = 'LPN_INS_DEEL' THEN
|
||
/* Bepaal nieuwe plek v/h deel */
|
||
LPNCondName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
||
LPNCondKey := 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 := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
IF NOT LPNCondKeyOK THEN
|
||
Seqnr := 2;
|
||
LOOP
|
||
LPNCondKey := cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
||
IF LPNCondKey IS NULL THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
EXIT WHEN LPNCondKeyOK;
|
||
Seqnr := Seqnr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
IF LPNCondKeyOK 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;
|
||
LinkToRoom := cad_SLNKSTRUCTreadVALINT(Session_id, 'LINKTOROOM');
|
||
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 LinkToRoom = 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 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;
|
||
LPNAliasLinkO := cad_SLNKSTRUCTreadVALSTR(Session_Id, 'LPNALIASLINKO');
|
||
LPNKeyLinkO := 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 LPNAliasLinkO IS NOT NULL AND LPNKeyLinkO IS NOT NULL THEN
|
||
LPNKeyLinkO := 1; /* NOT NULL */
|
||
SeqNr := 1;
|
||
WHILE (LPNKeyLinkO IS NOT NULL) LOOP
|
||
LPNKeyLinkO := cad_SLNKSTRUCTreadVALINT2(Session_Id, 'LPNKEYLINKO', SeqNr);
|
||
IF LPNKeyLinkO IS NOT NULL THEN
|
||
BEGIN
|
||
INSERT INTO ins_deelkoppeling(ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key)
|
||
VALUES (LPNKey, LPNKeyLinkO);
|
||
COMMIT;
|
||
SeqNr := SeqNr+1;
|
||
EXCEPTION
|
||
WHEN DUP_VAL_ON_INDEX THEN
|
||
SeqNr := SeqNr+1; /* Record bestaat reeds -> ga gewoon verder met volgende */
|
||
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 := 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 := 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 := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||
Omtrek := 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 := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||
Omtrek := 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 := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
||
LPNCondKey := 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 := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
IF NOT LPNCondKeyOK THEN
|
||
Seqnr := 2;
|
||
LOOP
|
||
LPNCondKey := cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
||
IF LPNCondKey IS NULL THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := CheckLPNCondKey(LPNCondName, LPNCondKey);
|
||
EXIT WHEN LPNCondKeyOK;
|
||
Seqnr := Seqnr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
IF LPNCondKeyOK THEN
|
||
BEGIN
|
||
UPDATE prs_werkplek
|
||
SET prs_alg_ruimte_key = LPNCondKey,
|
||
prs_werkplek_getekend = SYSDATE /* IT's CAD */
|
||
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,
|
||
prs_werkplek_getekend = SYSDATE /* It's CAD */
|
||
WHERE prs_werkplek_key = LPNKey;
|
||
END;
|
||
END IF;
|
||
END IF;
|
||
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR' THEN
|
||
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||
Omtrek := 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 := 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 := 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);
|
||
#endif //BIS
|
||
END IF;
|
||
COMMIT;
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END cad_SLNKpostModify;
|
||
|
||
PROCEDURE cad_SLNKDelenbijWerkplek(Session_Id NUMBER) IS
|
||
LPNKey NUMBER(10);
|
||
Eerste BOOLEAN;
|
||
BEGIN
|
||
LPNKey := 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 THEN
|
||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'INFOI', 1, DelenRec.ins_deel_key, 1);
|
||
Eerste := FALSE;
|
||
ELSE
|
||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'INFOI', 1, DelenRec.ins_deel_key, 0);
|
||
END IF;
|
||
END LOOP;
|
||
END;
|
||
END;
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END cad_SLNKDelenbijWerkplek;
|
||
|
||
PROCEDURE cad_getSymboolInfo(Session_Id NUMBER, Entry VARCHAR2) IS
|
||
LayerNaam cad_symbool.cad_symbool_layer%TYPE;
|
||
LayerColor cad_symbool.cad_symbool_kleur%TYPE;
|
||
LayerLineType 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, LayerColor, LayerLineType, Symbool
|
||
FROM cad_symbool
|
||
WHERE UPPER(cad_symbool_entry) = UPPER(Entry);
|
||
cad_SLNKstructinsertVALSTR(Session_Id,'LAYER', 1, Layernaam, 1);
|
||
cad_SLNKstructinsertVALINT(Session_Id,'LAYERCOLOR', 1, LayerColor, 1);
|
||
cad_SLNKstructinsertVALSTR(Session_Id,'LAYERLINETYPE', 1, LayerLinetype, 1);
|
||
cad_SLNKstructinsertVALSTR(Session_Id,'BLOCK', 1, Symbool, 1);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
NULL; /* Entry niet gevonden -> geef AutoCAD niets terug */
|
||
END;
|
||
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
|
||
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 := ReadKenmerkWaarde(DeelKey, KenmerkKey);
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'INFOS', 1, KenmerkWaarde, 1);
|
||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END cad_GetKenmerkWaarde;
|
||
END cad;
|
||
/
|
||
|
||
#endif // CAD
|
||
|
||
|
||
#ifdef PRJ
|
||
|
||
CREATE OR REPLACE PACKAGE prj AS
|
||
FUNCTION prj_f_fac_get_description (LPNName IN VARCHAR2
|
||
,CondKey IN NUMBER
|
||
,ProjectKey IN NUMBER
|
||
,Prefix IN VARCHAR2
|
||
,PrefixKey IN NUMBER) RETURN VARCHAR2;
|
||
FUNCTION cad_f_deel_get_locatie (p_project IN NUMBER
|
||
,p_deel IN NUMBER) RETURN NUMBER;
|
||
FUNCTION cad_f_deel_get_verdieping (p_project IN NUMBER
|
||
,p_deel IN NUMBER) RETURN NUMBER;
|
||
FUNCTION cad_f_deel_get_discipline (p_project IN NUMBER
|
||
,p_deel IN NUMBER) RETURN NUMBER;
|
||
FUNCTION cad_f_deel_get_tekeningnaam (p_project IN NUMBER
|
||
,p_deel IN NUMBER) RETURN VARCHAR2;
|
||
FUNCTION cad_f_ruimte_get_tekeningnaam (p_project IN NUMBER
|
||
,p_ruimte IN NUMBER) RETURN VARCHAR2;
|
||
PROCEDURE cad_SLNKpostDraw (Session_Id IN NUMBER);
|
||
PROCEDURE cad_SLNKpostErase (Session_Id IN NUMBER);
|
||
PROCEDURE cad_SLNKpostModify (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_SLNKgetBinnenBuiten (Session_Id NUMBER
|
||
,LoadDwg VARCHAR2);
|
||
|
||
FUNCTION cad_getDisciplinetekening (LocatieKey IN NUMBER
|
||
,ProjectKey IN NUMBER
|
||
,VerdiepingKey IN NUMBER
|
||
,DisciplineKey IN NUMBER) RETURN VARCHAR2;
|
||
FUNCTION cad_getPlattegrondtekening (LocatieKey IN NUMBER
|
||
,ProjectKey IN NUMBER) RETURN VARCHAR2;
|
||
FUNCTION cad_getContourtekening (LocatieKey IN NUMBER
|
||
,ProjectKey IN NUMBER) RETURN VARCHAR2;
|
||
FUNCTION cad_getVerdiepPlgrnd_tekening (LocatieKey IN NUMBER
|
||
,ProjectKey IN NUMBER
|
||
,VerdiepingKey IN NUMBER) RETURN VARCHAR2;
|
||
FUNCTION cad_getVerdiepCntr_tekening (LocatieKey IN NUMBER
|
||
,ProjectKey IN NUMBER
|
||
,VerdiepingKey IN NUMBER) RETURN VARCHAR2;
|
||
FUNCTION cad_getVerhuisTekening (ProjectKey IN NUMBER) RETURN VARCHAR2;
|
||
PROCEDURE cad_getVerhuisTekening2 (Session_Id IN NUMBER
|
||
,ProjectKey IN NUMBER);
|
||
FUNCTION cad_getProjectCode_Tekening (TekeningNaam IN VARCHAR2) RETURN VARCHAR2;
|
||
FUNCTION cad_GetSrcDwgOfEntity (Session_Id IN NUMBER
|
||
,LPNAlias IN VARCHAR2
|
||
,LPNKey IN NUMBER) RETURN VARCHAR2;
|
||
PROCEDURE cad_GetSrcDwgOfEntity2 (Session_Id IN NUMBER
|
||
,LPNAliasINSO IN VARCHAR2
|
||
,LPNKeyINSO IN NUMBER);
|
||
PROCEDURE verwerk_log_clear (sessionID IN NUMBER
|
||
,ProjectKey IN NUMBER);
|
||
PROCEDURE verwerk_log (logmelding IN VARCHAR
|
||
,sessionID IN NUMBER
|
||
,ProjectKey IN NUMBER);
|
||
PROCEDURE verwerk_project (sessionID IN NUMBER
|
||
,ProjectKey IN NUMBER
|
||
,MergeTekening IN BOOLEAN);
|
||
|
||
/* 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_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_getProjectCode_Tekening, WNDS, WNPS);
|
||
END prj;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY prj AS
|
||
|
||
/* prj.prj_f_fac_get_description
|
||
**
|
||
** Maak een default omschrijving voor ruimte, werkplek of deel aan de hand van prj-tabellen.
|
||
** Deze functie wordt ook gebruikt bij het verwerken van de project-gegevens. Daar moet WEL gecontroleerd worden
|
||
** of de labels en volgnummers in de gewone tabellen al bestaan.
|
||
*/
|
||
FUNCTION PRJ_F_FAC_GET_DESCRIPTION(LPNName IN VARCHAR2
|
||
,CondKey IN NUMBER
|
||
,ProjectKey IN NUMBER
|
||
,Prefix IN VARCHAR2
|
||
,PrefixKey IN NUMBER) RETURN VARCHAR2 IS
|
||
NextVolgNr VARCHAR2(30);
|
||
NextVolgNr1 VARCHAR2(10);
|
||
NextVolgNr2 VARCHAR2(10);
|
||
ReturnString VARCHAR2(30);
|
||
BEGIN
|
||
IF LPNName = 'LPN_INS_DEEL'
|
||
THEN
|
||
FOR i IN 3..10
|
||
LOOP
|
||
/* Bepaal het hoogste volgnummer voor het deel in dit project. */
|
||
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(ins_deel_omschrijving,LENGTH(ins_deel_omschrijving)-(i-1)))+1)), '***')
|
||
INTO NextVolgNr1
|
||
FROM prj_v_aanwezigdeel
|
||
WHERE LTRIM(SUBSTR(ins_deel_omschrijving, LENGTH(ins_deel_omschrijving)-(i-1)))
|
||
BETWEEN '0' AND LPAD('9',i,'9')
|
||
AND LENGTH(ins_deel_omschrijving) <= LENGTH(Prefix)+i
|
||
AND ins_alg_locatie_key = CondKey
|
||
AND prj_project_key = ProjectKey
|
||
AND ins_srtdeel_key = PrefixKey
|
||
AND ins_deel_omschrijving LIKE Prefix ||'%';
|
||
/* Bepaal het hoogste volgnummer voor deel in de gewone tekening. */
|
||
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(ins_deel_omschrijving,LENGTH(ins_deel_omschrijving)-(i-1)))+1)), '***')
|
||
INTO NextVolgNr2
|
||
FROM all_v_aanwezigdeel
|
||
WHERE LTRIM(SUBSTR(ins_deel_omschrijving, LENGTH(ins_deel_omschrijving)-(i-1)))
|
||
BETWEEN '0' AND LPAD('9',i,'9')
|
||
AND LENGTH(ins_deel_omschrijving) <= LENGTH(Prefix)+i
|
||
AND ins_alg_locatie_key = CondKey
|
||
AND ins_srtdeel_key = PrefixKey
|
||
AND ins_deel_omschrijving LIKE Prefix ||'%';
|
||
/* Neem de hoogste waarde van beide volgnummers. */
|
||
IF NextVolgNr1 = '***' AND NextVolgNr2 = '***'
|
||
THEN
|
||
NextVolgNr := '***';
|
||
ELSIF NextVolgNr1 = '***' AND NextVolgNr2 <> '***'
|
||
THEN
|
||
NextVolgNr := NextVolgNr2;
|
||
ELSIF NextVolgNr2 = '***' AND NextVolgNr1 <> '***'
|
||
THEN
|
||
NextVolgNr := NextVolgNr1;
|
||
ELSE
|
||
IF TO_NUMBER(NextVolgNr1) > TO_NUMBER(NextVolgNr2)
|
||
THEN
|
||
NextVolgNr := NextVolgNr1;
|
||
ELSE
|
||
NextVolgNr := NextVolgNr2;
|
||
END IF;
|
||
END IF;
|
||
IF NextVolgNr = '***'
|
||
THEN
|
||
IF i = 3
|
||
THEN
|
||
NextVolgNr := '001';
|
||
ELSE
|
||
NextVolgNr := POWER(10, (i-1));
|
||
END IF;
|
||
EXIT;
|
||
ELSE
|
||
IF LENGTH(NextVolgNr) <= i
|
||
THEN
|
||
NextVolgNr:= LPAD(NextVolgNr,i,'0');
|
||
EXIT;
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
ELSIF LPNName = 'LPN_INS_ONDERDEEL'
|
||
THEN
|
||
FOR i IN 3..10
|
||
LOOP
|
||
/* Bepaal het hoogste volgnummer voor het onderdeel in dit project. */
|
||
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(ins_deel_omschrijving,LENGTH(ins_deel_omschrijving)-(i-1)))+1)), '***')
|
||
INTO NextVolgNr1
|
||
FROM prj_deel
|
||
WHERE LTRIM(SUBSTR(ins_deel_omschrijving,LENGTH(ins_deel_omschrijving)-(i-1)))
|
||
BETWEEN '0' AND LPAD('9',i,'9')
|
||
AND ins_alg_locatie_key = CondKey
|
||
AND prj_project_key = ProjectKey
|
||
AND ins_srtdeel_key = PrefixKey
|
||
AND LENGTH(ins_deel_omschrijving) <= LENGTH(Prefix)+i
|
||
AND ins_deel_verwijder IS NULL
|
||
AND ins_deel_parent_key IS NOT NULL
|
||
AND ins_deel_omschrijving LIKE Prefix ||'%';
|
||
/* Bepaal het hoogste volgnummer voor deel in de gewone tekening. */
|
||
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(ins_deel_omschrijving,LENGTH(ins_deel_omschrijving)-(i-1)))+1)), '***')
|
||
INTO NextVolgNr2
|
||
FROM ins_deel
|
||
WHERE LTRIM(SUBSTR(ins_deel_omschrijving,LENGTH(ins_deel_omschrijving)-(i-1)))
|
||
BETWEEN '0' AND LPAD('9',i,'9')
|
||
AND ins_alg_locatie_key = CondKey
|
||
AND ins_srtdeel_key = PrefixKey
|
||
AND LENGTH(ins_deel_omschrijving) <= LENGTH(Prefix)+i
|
||
AND ins_deel_verwijder IS NULL
|
||
AND ins_deel_parent_key IS NOT NULL
|
||
AND ins_deel_omschrijving LIKE Prefix ||'%';
|
||
/* Neem de hoogste waarde van beide volgnummers. */
|
||
IF NextVolgNr1 = '***' AND NextVolgNr2 = '***'
|
||
THEN
|
||
NextVolgNr := '***';
|
||
ELSIF NextVolgNr1 = '***' AND NextVolgNr2 <> '***'
|
||
THEN
|
||
NextVolgNr := NextVolgNr2;
|
||
ELSIF NextVolgNr2 = '***' AND NextVolgNr1 <> '***'
|
||
THEN
|
||
NextVolgNr := NextVolgNr1;
|
||
ELSE
|
||
IF TO_NUMBER(NextVolgNr1) > TO_NUMBER(NextVolgNr2)
|
||
THEN
|
||
NextVolgNr := NextVolgNr1;
|
||
ELSE
|
||
NextVolgNr := NextVolgNr2;
|
||
END IF;
|
||
END IF;
|
||
IF NextVolgNr = '***'
|
||
THEN
|
||
IF i = 3
|
||
THEN
|
||
NextVolgNr := '001';
|
||
ELSE
|
||
NextVolgNr := POWER(10, (i-1));
|
||
END IF;
|
||
EXIT;
|
||
ELSE
|
||
IF LENGTH(NextVolgNr) <= i
|
||
THEN
|
||
NextVolgNr:= LPAD(NextVolgNr,i,'0');
|
||
EXIT;
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
ELSIF LPNName = 'LPN_ALG_RUIMTE'
|
||
THEN
|
||
FOR i IN 3..10
|
||
LOOP
|
||
/* Bepaal het hoogste volgnummer van ruimte in dit project. */
|
||
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(alg_ruimte_nr, LENGTH(alg_ruimte_nr)-(i-1)))+1)), '***')
|
||
INTO NextVolgNr1
|
||
FROM prj_v_aanwezigruimte
|
||
WHERE LTRIM(SUBSTR(alg_ruimte_nr, LENGTH(alg_ruimte_nr)-(i-1))) BETWEEN '0' AND LPAD('9',i,'9')
|
||
AND alg_verdieping_key = CondKey
|
||
AND prj_project_key = ProjectKey
|
||
AND LENGTH(alg_ruimte_nr) <= i;
|
||
/* Bepaal het hoogste volgnummer van ruimte in de gewone tekening. */
|
||
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(alg_ruimte_nr, LENGTH(alg_ruimte_nr)-(i-1)))+1)), '***')
|
||
INTO NextVolgNr2
|
||
FROM alg_v_aanwezigruimte
|
||
WHERE LTRIM(SUBSTR(alg_ruimte_nr, LENGTH(alg_ruimte_nr)-(i-1))) BETWEEN '0' AND LPAD('9',i,'9')
|
||
AND alg_verdieping_key = CondKey
|
||
AND LENGTH(alg_ruimte_nr) <= i;
|
||
/* Neem de hoogste waarde van beide volgnummers. */
|
||
IF NextVolgNr1 = '***' AND NextVolgNr2 = '***'
|
||
THEN
|
||
NextVolgNr := '***';
|
||
ELSIF NextVolgNr1 = '***' AND NextVolgNr2 <> '***'
|
||
THEN
|
||
NextVolgNr := NextVolgNr2;
|
||
ELSIF NextVolgNr2 = '***' AND NextVolgNr1 <> '***'
|
||
THEN
|
||
NextVolgNr := NextVolgNr1;
|
||
ELSE
|
||
IF TO_NUMBER(NextVolgNr1) > TO_NUMBER(NextVolgNr2)
|
||
THEN
|
||
NextVolgNr := NextVolgNr1;
|
||
ELSE
|
||
NextVolgNr := NextVolgNr2;
|
||
END IF;
|
||
END IF;
|
||
IF NextVolgNr = '***'
|
||
THEN
|
||
IF i = 3
|
||
THEN
|
||
NextVolgNr := '001';
|
||
ELSE
|
||
NextVolgNr := POWER(10, (i-1));
|
||
END IF;
|
||
EXIT;
|
||
ELSE
|
||
IF LENGTH(NextVolgNr) <= i
|
||
THEN
|
||
NextVolgNr:= LPAD(NextVolgNr,i,'0');
|
||
EXIT;
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
ELSIF LPNName = 'LPN_PRS_WERKPLEK'
|
||
THEN
|
||
/* Bepaal het volgnummer v/d toe te voegen werkplek */
|
||
BEGIN
|
||
/* Bepaal eerst het hoogste volgnummer van werkplek in dit project. */
|
||
SELECT TO_CHAR(NVL(MAX(prs_werkplek_volgnr),0) + 1)
|
||
INTO NextVolgNr1
|
||
FROM prj_werkplek
|
||
WHERE prs_alg_ruimte_key = CondKey
|
||
AND prj_project_key = ProjectKey
|
||
AND prs_werkplek_verwijder IS NULL;
|
||
NextVolgNr := NextVolgNr1;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN NextVolgNr := '1';
|
||
END;
|
||
/* Omschrijving */
|
||
BEGIN
|
||
SELECT substr(alg_ruimte_nr ||' - '|| NextVolgNr,1,30)
|
||
INTO NextVolgNr
|
||
FROM prj_ruimte
|
||
WHERE alg_ruimte_key = CondKey
|
||
AND prj_project_key = ProjectKey;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN NULL;
|
||
END;
|
||
END IF;
|
||
ReturnString := substr(Prefix || NextVolgNr,1,30);
|
||
RETURN ReturnString;
|
||
END prj_f_fac_get_description;
|
||
|
||
/* prj.cad_f_deel_get_locatie
|
||
**
|
||
** Haal de locatie key op aan de hand van de project- en object-key.
|
||
*/
|
||
FUNCTION cad_f_deel_get_locatie(p_project IN NUMBER
|
||
,p_deel IN NUMBER) RETURN NUMBER IS
|
||
locatie_key NUMBER(10);
|
||
BEGIN
|
||
BEGIN
|
||
SELECT ins_alg_locatie_key
|
||
INTO locatie_key
|
||
FROM prj_deel
|
||
WHERE ins_deel_verwijder IS NULL
|
||
AND prj_project_key = p_project
|
||
AND ins_deel_key = p_deel;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN locatie_key := NULL;
|
||
END;
|
||
RETURN locatie_key;
|
||
END cad_f_deel_get_locatie;
|
||
|
||
/* prj.cad_f_deel_get_verdieping
|
||
**
|
||
** Haal de verdieping key op aan de hand van de project- en object-key.
|
||
*/
|
||
FUNCTION cad_f_deel_get_verdieping(p_project IN NUMBER
|
||
,p_deel IN NUMBER) RETURN NUMBER IS
|
||
verdieping_key NUMBER(10);
|
||
BEGIN
|
||
BEGIN
|
||
SELECT alg_verdieping_key
|
||
INTO verdieping_key
|
||
FROM prj_ruimte
|
||
WHERE alg_ruimte_key = (SELECT R.alg_ruimte_key
|
||
FROM prj_deel D
|
||
, prj_ruimte R
|
||
WHERE D.ins_alg_ruimte_key = R.alg_ruimte_key
|
||
AND D.ins_alg_ruimte_type = 'R'
|
||
AND D.ins_deel_key = p_deel
|
||
AND D.prj_project_key = p_project
|
||
AND R.prj_project_key = p_project
|
||
AND R.alg_ruimte_verwijder IS NULL
|
||
AND D.ins_deel_verwijder IS NULL
|
||
UNION
|
||
SELECT W.prs_alg_ruimte_key
|
||
FROM prj_deel D
|
||
, prj_werkplek W
|
||
WHERE D.ins_alg_ruimte_key = W.prs_werkplek_key
|
||
AND D.ins_alg_ruimte_type = 'W'
|
||
AND D.ins_deel_key = p_deel
|
||
AND D.prj_project_key = p_project
|
||
AND W.prj_project_key = p_project
|
||
AND W.prs_werkplek_verwijder IS NULL
|
||
AND D.ins_deel_verwijder IS NULL
|
||
)
|
||
AND prj_project_key = p_project
|
||
AND alg_ruimte_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN verdieping_key := null;
|
||
END;
|
||
RETURN verdieping_key;
|
||
END cad_f_deel_get_verdieping;
|
||
|
||
/* prj.cad_f_deel_get_discipline
|
||
**
|
||
** Haal de discipline key op aan de hand van de project- en object-key.
|
||
*/
|
||
FUNCTION cad_f_deel_get_discipline(p_project IN NUMBER
|
||
,p_deel IN NUMBER) RETURN NUMBER IS
|
||
discipline_key NUMBER(10);
|
||
BEGIN
|
||
BEGIN
|
||
SELECT ins_discipline_key
|
||
INTO discipline_key
|
||
FROM prj_deel
|
||
WHERE ins_deel_verwijder IS NULL
|
||
AND prj_project_key = p_project
|
||
AND ins_deel_key = p_deel;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN discipline_key := NULL;
|
||
END;
|
||
RETURN discipline_key;
|
||
END cad_f_deel_get_discipline;
|
||
|
||
/* prj.cad_f_deel_get_tekeningnaam
|
||
**
|
||
** Haal de tekeningnaam aan de hand van project- en object-key.
|
||
*/
|
||
FUNCTION cad_f_deel_get_tekeningnaam(p_project IN NUMBER
|
||
,p_deel IN NUMBER) RETURN VARCHAR2 IS
|
||
tekeningnaam VARCHAR2(256);
|
||
locatie_key NUMBER(10);
|
||
verdieping_key NUMBER(10);
|
||
discipline_key NUMBER(10);
|
||
BEGIN
|
||
locatie_key := prj.cad_f_deel_get_locatie(p_project,p_deel);
|
||
verdieping_key := prj.cad_f_deel_get_verdieping(p_project,p_deel);
|
||
discipline_key := prj.cad_f_deel_get_discipline(p_project,p_deel);
|
||
IF (locatie_key IS NOT NULL AND
|
||
discipline_key IS NOT NULL)
|
||
THEN
|
||
IF verdieping_key IS NOT NULL
|
||
THEN
|
||
IF verdieping_key = 0
|
||
THEN
|
||
tekeningnaam := cad_getVerhuisTekening(p_project);
|
||
ELSE
|
||
BEGIN
|
||
SELECT cad_tekening_filenaam
|
||
INTO tekeningnaam
|
||
FROM cad_tekening
|
||
WHERE alg_locatie_key = locatie_key
|
||
AND alg_verdieping_key = verdieping_key
|
||
AND ins_discipline_key = discipline_key
|
||
AND prj_project_key IS NOT NULL
|
||
AND prj_project_key = p_project;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN tekeningnaam := NULL;
|
||
END;
|
||
END IF;
|
||
ELSE
|
||
BEGIN
|
||
SELECT cad_tekening_filenaam
|
||
INTO tekeningnaam
|
||
FROM cad_tekening
|
||
WHERE alg_locatie_key = locatie_key
|
||
AND alg_verdieping_key IS NULL
|
||
AND ins_discipline_key = discipline_key
|
||
AND prj_project_key IS NOT NULL
|
||
AND prj_project_key = p_project;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN tekeningnaam := NULL;
|
||
END;
|
||
END IF;
|
||
ELSE
|
||
tekeningnaam := NULL;
|
||
END IF;
|
||
RETURN tekeningnaam;
|
||
END cad_f_deel_get_tekeningnaam;
|
||
|
||
/* prj.cad_f_ruimte_get_tekeningnaam
|
||
**
|
||
** Haal de tekeningnaam aan de hand van project- en ruimte-key.
|
||
*/
|
||
FUNCTION cad_f_ruimte_get_tekeningnaam(p_project IN NUMBER
|
||
,p_ruimte IN NUMBER) RETURN VARCHAR2 IS
|
||
tekeningnaam VARCHAR2(256);
|
||
locatie_key NUMBER(10);
|
||
verdieping_key NUMBER(10);
|
||
BEGIN
|
||
BEGIN
|
||
SELECT P.prj_project_locatie_key
|
||
, R.alg_verdieping_key
|
||
INTO locatie_key
|
||
, verdieping_key
|
||
FROM prj_ruimte R
|
||
, prj_project P
|
||
WHERE R.prj_project_key = P.prj_project_key
|
||
AND R.alg_ruimte_verwijder IS NULL
|
||
AND R.alg_ruimte_key = p_ruimte
|
||
AND R.prj_project_key = p_project;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN locatie_key := NULL;
|
||
verdieping_key := NULL;
|
||
END;
|
||
|
||
IF (locatie_key IS NOT NULL AND
|
||
verdieping_key IS NOT NULL)
|
||
THEN
|
||
BEGIN
|
||
SELECT cad_tekening_filenaam
|
||
INTO tekeningnaam
|
||
FROM prj_v_contour
|
||
WHERE alg_locatie_key = locatie_key
|
||
AND alg_verdieping_key = verdieping_key
|
||
AND prj_project_key = p_project;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN tekeningnaam := NULL;
|
||
END;
|
||
ELSE
|
||
tekeningnaam := NULL;
|
||
END IF;
|
||
RETURN tekeningnaam;
|
||
END cad_f_ruimte_get_tekeningnaam;
|
||
|
||
/* prj.bepaal_projectcode
|
||
**
|
||
** Haal de projectcode op aan de hand van de project-key.
|
||
*/
|
||
FUNCTION Bepaal_projectcode(project_key IN NUMBER) RETURN VARCHAR2 IS
|
||
project_code VARCHAR2(8);
|
||
BEGIN
|
||
BEGIN
|
||
SELECT prj_project_nr
|
||
INTO project_code
|
||
FROM prj_project
|
||
WHERE prj_project_key = project_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN project_code := NULL;
|
||
END;
|
||
RETURN project_code;
|
||
END Bepaal_projectcode;
|
||
|
||
/* prj.cad_getProjectCode_Tekening
|
||
**
|
||
** Haal de projectcode op aan de hand van de tekeningnaam.
|
||
*/
|
||
FUNCTION cad_getProjectCode_Tekening(Tekeningnaam IN VARCHAR2) RETURN VARCHAR2 IS
|
||
SlashPositie NUMBER(2);
|
||
ProjectCode VARCHAR2(25);
|
||
BEGIN
|
||
SlashPositie := INSTR(TekeningNaam,'\');
|
||
ProjectCode := SUBSTR(TekeningNaam,1, SlashPositie-1);
|
||
RETURN ProjectCode;
|
||
END cad_getProjectCode_Tekening;
|
||
|
||
/* prj.cad_getDisciplinetekening
|
||
**
|
||
** Stel het pad\tekeningnaam vast van de disciplinetekening op de aangegeven afdeling.
|
||
*/
|
||
FUNCTION cad_getDisciplinetekening(Locatiekey IN NUMBER
|
||
,Projectkey IN NUMBER
|
||
,Verdiepingkey IN NUMBER
|
||
,Disciplinekey IN NUMBER) RETURN VARCHAR2 IS
|
||
project_code VARCHAR2(8);
|
||
disciplinetekening VARCHAR2(256);
|
||
BEGIN
|
||
BEGIN
|
||
project_code := prj.bepaal_projectcode(Projectkey);
|
||
SELECT substr(project_code ||'\'|| cad_tekening_filenaam,1,256)
|
||
INTO disciplinetekening
|
||
FROM prj_v_discipline
|
||
WHERE alg_locatie_key = Locatiekey
|
||
AND alg_verdieping_key = Verdiepingkey
|
||
AND ins_discipline_key = Disciplinekey
|
||
AND prj_project_key = Projectkey;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN disciplinetekening := NULL;
|
||
END;
|
||
RETURN disciplinetekening;
|
||
END cad_getDisciplinetekening;
|
||
|
||
/* prj.cad_getPlattegrondtekening
|
||
**
|
||
** Stel het pad\tekeningnaam vast van de plattegrondtekening van de terreinsector.
|
||
*/
|
||
FUNCTION cad_getPlattegrondtekening(Locatiekey IN NUMBER
|
||
,Projectkey IN NUMBER) RETURN VARCHAR2 IS
|
||
project_code VARCHAR2(8);
|
||
plattegrondtekening VARCHAR2(256);
|
||
BEGIN
|
||
BEGIN
|
||
project_code := prj.bepaal_projectcode(Projectkey);
|
||
SELECT substr(project_code ||'\'|| cad_tekening_filenaam,1,256)
|
||
INTO plattegrondtekening
|
||
FROM prj_v_plattegrond
|
||
WHERE alg_locatie_key = Locatiekey
|
||
AND prj_project_key = Projectkey
|
||
AND alg_verdieping_key IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN plattegrondtekening := NULL;
|
||
END;
|
||
RETURN plattegrondtekening;
|
||
END cad_getPlattegrondtekening;
|
||
|
||
/* prj.cad_getVerdiepPlgrnd_tekening
|
||
**
|
||
** Stel het pad\tekeningnaam vast van de plattegrondtekening van de verdieping.
|
||
*/
|
||
FUNCTION cad_getVerdiepPlgrnd_tekening(Locatiekey IN NUMBER
|
||
,Projectkey IN NUMBER
|
||
,Verdiepingkey IN NUMBER) RETURN VARCHAR2 IS
|
||
project_code VARCHAR2(8);
|
||
Plattegrondtekening VARCHAR2(256);
|
||
BEGIN
|
||
BEGIN
|
||
project_code := prj.bepaal_projectcode(Projectkey);
|
||
SELECT substr(project_code ||'\'|| cad_tekening_filenaam,1,256)
|
||
INTO plattegrondtekening
|
||
FROM prj_v_plattegrond
|
||
WHERE alg_locatie_key = LocatieKey
|
||
AND alg_verdieping_key = Verdiepingkey
|
||
AND prj_project_key = Projectkey;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN plattegrondtekening := NULL;
|
||
END;
|
||
RETURN plattegrondtekening;
|
||
END cad_getVerdiepPlgrnd_tekening;
|
||
|
||
/* prj.cad_getContourtekening
|
||
**
|
||
** Stel het pad\tekeningnaam vast van de contourtekening van de terreinsector.
|
||
*/
|
||
FUNCTION cad_getContourtekening(Locatiekey IN NUMBER
|
||
,Projectkey IN NUMBER) RETURN VARCHAR2 IS
|
||
project_code VARCHAR2(8);
|
||
contourtekening VARCHAR2(256);
|
||
BEGIN
|
||
BEGIN
|
||
project_code := prj.bepaal_projectcode(Projectkey);
|
||
SELECT substr(project_code ||'\'|| cad_tekening_filenaam,1,256)
|
||
INTO contourtekening
|
||
FROM prj_v_contour
|
||
WHERE alg_locatie_key = Locatiekey
|
||
AND prj_project_key = Projectkey
|
||
AND alg_verdieping_key IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN contourtekening := NULL;
|
||
END;
|
||
RETURN contourtekening;
|
||
END cad_getContourtekening;
|
||
|
||
/* prj.cad_getVerdiepCntr_tekening
|
||
**
|
||
** Stel het pad\tekeningnaam vast van de contourtekening van de verdieping.
|
||
*/
|
||
FUNCTION cad_getVerdiepCntr_tekening(Locatiekey IN NUMBER
|
||
,Projectkey IN NUMBER
|
||
,Verdiepingkey IN NUMBER) RETURN VARCHAR2 IS
|
||
project_code VARCHAR2(8);
|
||
contourtekening VARCHAR2(256);
|
||
BEGIN
|
||
BEGIN
|
||
project_code := prj.bepaal_projectcode(Projectkey);
|
||
SELECT substr(project_code ||'\'||cad_tekening_filenaam,1,256)
|
||
INTO contourtekening
|
||
FROM prj_v_contour
|
||
WHERE alg_locatie_key = LocatieKey
|
||
AND alg_verdieping_key = Verdiepingkey
|
||
AND prj_project_key = Projectkey;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN contourtekening := NULL;
|
||
END;
|
||
RETURN contourtekening;
|
||
END cad_getVerdiepCntr_tekening;
|
||
|
||
/* prj.cad_getverhuistekening
|
||
**
|
||
** Stel het pad\tekeningnaam vast van de verhuistekening.
|
||
*/
|
||
FUNCTION cad_getVerhuisTekening(Projectkey IN NUMBER) RETURN VARCHAR2 IS
|
||
project_code VARCHAR2(8);
|
||
verhuistekening VARCHAR2(256);
|
||
BEGIN
|
||
BEGIN
|
||
project_code := prj.bepaal_projectcode(Projectkey);
|
||
SELECT substr(project_code ||'\'|| cad_tekening_filenaam,1,256)
|
||
INTO verhuistekening
|
||
FROM prj_v_verhuis
|
||
WHERE prj_project_key = Projectkey;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN verhuistekening := NULL;
|
||
END;
|
||
RETURN verhuistekening;
|
||
END cad_getVerhuisTekening;
|
||
|
||
/* prj.cad_getverhuistekening2
|
||
**
|
||
** Aanroep van de gelijknamige functie en vervolgens het resultaat (de naam van
|
||
** de verhuistekening) in SLNKSTRUCT zet.
|
||
*/
|
||
PROCEDURE cad_GetVerhuisTekening2(Session_Id IN NUMBER
|
||
,ProjectKey IN NUMBER) IS
|
||
srcdwg VARCHAR2(256);
|
||
BEGIN
|
||
srcdwg := cad_GetVerhuisTekening(ProjectKey);
|
||
cad.cad_slnkstructinsertvalstr(Session_Id, 'INFOS', 1, srcdwg , 1);
|
||
cad.cad_slnkstructinsertvalstr(Session_Id, 'SYNC' , 1, 'AUTOCAD', 1);
|
||
END cad_GetVerhuisTekening2;
|
||
|
||
/* prj.cad_SLNKgetBinnenBuiten
|
||
**
|
||
** Geef aan CAD_SLNK door of het een plattegrondtekening voor
|
||
** terreinsector of een verdieping betreft, aan de hand van de LoadDwg.
|
||
*/
|
||
PROCEDURE cad_SLNKgetBinnenBuiten(Session_Id IN NUMBER
|
||
,LoadDwg IN VARCHAR2) IS
|
||
TekeningNaam VARCHAR2(256);
|
||
LocatieCode VARCHAR2(5);
|
||
ProjectCode VARCHAR2(8);
|
||
LocatieKey NUMBER(10);
|
||
ProjectKey NUMBER(10);
|
||
VerdiepingKey NUMBER(10);
|
||
Plaats NUMBER(1);
|
||
BEGIN
|
||
TekeningNaam := cad.cad_getTekeningNaam_LoadDwg(LoadDwg);
|
||
ProjectCode := prj.cad_getProjectCode_Tekening(LoadDwg);
|
||
SELECT prj_project_key
|
||
, prj_project_locatie_key
|
||
INTO ProjectKey
|
||
, LocatieKey
|
||
FROM prj_project
|
||
WHERE prj_project_nr = ProjectCode;
|
||
BEGIN
|
||
SELECT alg_verdieping_key
|
||
INTO VerdiepingKey
|
||
FROM prj_v_plattegrond
|
||
WHERE alg_locatie_key = LocatieKey
|
||
AND prj_project_key = ProjectKey
|
||
AND cad_tekening_filenaam = TekeningNaam;
|
||
IF VerdiepingKey IS NOT NULL
|
||
THEN
|
||
Plaats := 0;
|
||
ELSE
|
||
Plaats := 1;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
Plaats := 1;
|
||
END;
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id, 'INFOI', 1, Plaats , 1);
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC' , 1, 'AUTOCAD', 1);
|
||
END cad_SLNKgetBinnenBuiten;
|
||
|
||
/* prj.CheckLPNCondKey
|
||
**
|
||
** Kijk of de key voor terreinsector, ruimte of werkplek bestaat in de
|
||
** werkomgeving of projectomgeving.
|
||
*/
|
||
FUNCTION CheckLPNCondKey(LPNCondName IN VARCHAR2
|
||
,LPNCondKey IN NUMBER
|
||
,LPNCondProj IN NUMBER) RETURN BOOLEAN IS
|
||
Dummy NUMBER(10);
|
||
ReturnVal BOOLEAN;
|
||
BEGIN
|
||
IF LPNCondName = 'LPN_ALG_TERREINSECTOR'
|
||
THEN
|
||
BEGIN
|
||
SELECT alg_terreinsector_key
|
||
INTO Dummy
|
||
FROM alg_v_aanwezigterreinsector
|
||
WHERE alg_terreinsector_key = LPNCondKey;
|
||
ReturnVal := TRUE;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN ReturnVal := FALSE;
|
||
END;
|
||
ELSIF LPNCondName = 'LPN_ALG_RUIMTE'
|
||
THEN
|
||
BEGIN
|
||
SELECT alg_ruimte_key
|
||
INTO Dummy
|
||
FROM alg_v_aanwezigruimte
|
||
WHERE alg_ruimte_key = LPNCondKey;
|
||
ReturnVal := TRUE;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
BEGIN
|
||
SELECT alg_ruimte_key
|
||
INTO Dummy
|
||
FROM prj_v_aanwezigruimte
|
||
WHERE alg_ruimte_key = LPNCondKey
|
||
AND prj_project_key = LPNCondProj;
|
||
ReturnVal := TRUE;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN ReturnVal := FALSE;
|
||
END;
|
||
END;
|
||
ELSIF LPNCondName = 'LPN_PRS_WERKPLEK'
|
||
THEN
|
||
BEGIN
|
||
SELECT prs_werkplek_key
|
||
INTO Dummy
|
||
FROM prs_v_aanwezigwerkplek
|
||
WHERE prs_werkplek_key = LPNCondKey;
|
||
ReturnVal := TRUE;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
BEGIN
|
||
SELECT prs_werkplek_key
|
||
INTO Dummy
|
||
FROM prj_v_aanwezigwerkplek
|
||
WHERE prs_werkplek_key = LPNCondKey
|
||
AND prj_project_key = LPNCondProj;
|
||
ReturnVal := TRUE;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN ReturnVal := FALSE;
|
||
END;
|
||
END;
|
||
ELSE
|
||
ReturnVal := FALSE;
|
||
END IF;
|
||
RETURN ReturnVal;
|
||
END CheckLPNCondKey;
|
||
|
||
/* prj.adddeel
|
||
**
|
||
** Voeg een object in de projectomgeving toe.
|
||
*/
|
||
FUNCTION AddDeel(Session_Id IN NUMBER
|
||
,SrtdeelKey IN NUMBER
|
||
,LPNCondName IN VARCHAR2
|
||
,LPNCondKey IN NUMBER
|
||
,LPNProjectKey IN NUMBER) RETURN NUMBER IS
|
||
Plaatsdeel ins_deel.ins_alg_ruimte_type%TYPE;
|
||
ProjectCode prj_project.prj_project_nr%TYPE;
|
||
LocatieKey alg_locatie.alg_locatie_key%TYPE;
|
||
DisciplineKey ins_discipline.ins_discipline_key%TYPE;
|
||
SrtDeelCode ins_srtdeel.ins_srtdeel_code%TYPE;
|
||
Omschrijving VARCHAR2(30);
|
||
LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
Dummy NUMBER(10);
|
||
LabelSymbool VARCHAR2(256);
|
||
LabelOK BOOLEAN;
|
||
BEGIN
|
||
BEGIN
|
||
SELECT prj_project_locatie_key
|
||
, prj_project_nr
|
||
INTO LocatieKey
|
||
, ProjectCode
|
||
FROM prj_project
|
||
WHERE prj_project_key = LPNProjectKey;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN LocatieKey := NULL;
|
||
ProjectCode := NULL;
|
||
END;
|
||
BEGIN
|
||
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);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN DisciplineKey := NULL;
|
||
END;
|
||
|
||
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;
|
||
|
||
/* Lees de in de tekening opgegeven label in en kijk of deze al bestaat. */
|
||
LabelSymbool := 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 prj_deel
|
||
WHERE upper(ins_deel_omschrijving) = LabelSymbool
|
||
AND ins_deel_verwijder IS NULL
|
||
AND prj_project_key = LPNProjectKey;
|
||
LabelOK := FALSE;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN LabelOK := TRUE;
|
||
Omschrijving := LabelSymbool;
|
||
END;
|
||
ELSE
|
||
LabelOK := FALSE;
|
||
END IF;
|
||
|
||
IF NOT LabelOK
|
||
THEN
|
||
/* De opgegeven label bestaat al. Bepaal daarom een nieuwe label. */
|
||
SELECT RTRIM(ins_srtdeel_code_upper)
|
||
INTO SrtDeelCode
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_key = SrtdeelKey;
|
||
Omschrijving := prj.prj_f_fac_get_description('LPN_INS_DEEL', LocatieKey, LPNProjectKey, SrtDeelCode, SrtdeelKey);
|
||
END IF;
|
||
/* Voeg het nieuwe deel toe. */
|
||
INSERT INTO prj_deel
|
||
( prj_project_key
|
||
, ins_srtdeel_key
|
||
, ins_alg_ruimte_key
|
||
, ins_alg_ruimte_type
|
||
, ins_alg_locatie_key
|
||
, ins_discipline_key
|
||
, ins_deel_omschrijving)
|
||
VALUES(LPNProjectKey
|
||
, SrtdeelKey
|
||
, LPNCondKey
|
||
, PlaatsDeel
|
||
, LocatieKey
|
||
, DisciplineKey
|
||
, Omschrijving);
|
||
COMMIT;
|
||
/* Haal de zojuist gegenereerde key voor prj_deel op. */
|
||
BEGIN
|
||
SELECT ins_deel_key
|
||
INTO LPNKey
|
||
FROM prj_deel
|
||
WHERE ins_srtdeel_key = SrtdeelKey
|
||
AND ins_deel_omschrijving = omschrijving
|
||
AND ins_alg_ruimte_key = LPNCondKey
|
||
AND ins_alg_ruimte_type = PlaatsDeel
|
||
AND ins_deel_verwijder IS NULL
|
||
AND prj_project_key = LPNProjectKey;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN LPNKey := NULL;
|
||
END;
|
||
RETURN LPNKey;
|
||
END AddDeel;
|
||
|
||
/* prj.cad_GetSrcDwgOfEntity
|
||
**
|
||
** Bepaal de pad\tekeningnaam die behoort bij object, werkplek, ruimte,
|
||
** gebouw of terreinsector
|
||
*/
|
||
FUNCTION cad_GetSrcDwgOfEntity(Session_Id IN NUMBER
|
||
,LPNAlias IN VARCHAR2
|
||
,LPNKey IN NUMBER) RETURN VARCHAR2 IS
|
||
LPNAliasCond cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNKEYCond cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
ProjectKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
SrcDwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LocatieKey alg_locatie.alg_locatie_key%TYPE;
|
||
ProjectCode prj_project.prj_project_nr%TYPE;
|
||
VerdiepingKey alg_verdieping.alg_verdieping_key%TYPE;
|
||
RuimteKey alg_ruimte.alg_ruimte_key%TYPE;
|
||
BEGIN
|
||
LPNAliasCond := cad.cad_SLNKSTRUCTreadVALSTR(Session_Id,'LPNALIASCONDO');
|
||
LPNKeyCond := cad.cad_SLNKSTRUCTreadVALINT(session_id,'LPNKEYCONDO');
|
||
ProjectKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id,'PROJECTKEY');
|
||
IF ((LPNAliasCond = 'LPN_ALG_RUIMTE') AND (LPNKeyCond = 0))
|
||
THEN
|
||
SrcDwg := prj.cad_getVerhuisTekening(ProjectKey);
|
||
ELSE
|
||
SELECT prj_project_locatie_key
|
||
, prj_project_nr
|
||
INTO LocatieKey
|
||
, ProjectCode
|
||
FROM prj_project
|
||
WHERE prj_project_key = ProjectKey;
|
||
IF LPNAlias = 'LPN_INS_DEEL'
|
||
THEN
|
||
BEGIN
|
||
SELECT ins_alg_ruimte_key
|
||
INTO RuimteKey
|
||
FROM prj_deel
|
||
WHERE ins_deel_key = LPNKey
|
||
AND prj_project_key = ProjectKey;
|
||
IF RuimteKey = 0
|
||
THEN
|
||
SrcDwg := prj.cad_getVerhuisTekening(ProjectKey);
|
||
ELSE
|
||
/* Bepaal Disciplinetekening */
|
||
SrcDwg := substr(ProjectCode ||'\'|| prj.cad_f_deel_get_tekeningnaam(ProjectKey,LPNKey),1,256);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN SrcDwg := NULL;
|
||
END;
|
||
ELSIF LPNAlias = 'LPN_ALG_RUIMTE'
|
||
THEN
|
||
BEGIN
|
||
SELECT alg_verdieping_key
|
||
INTO VerdiepingKey
|
||
FROM prj_ruimte
|
||
WHERE alg_ruimte_verwijder IS NULL
|
||
AND prj_project_key = ProjectKey
|
||
AND alg_ruimte_key = LPNKey;
|
||
IF VerdiepingKey IS NULL
|
||
THEN
|
||
SrcDwg := prj.cad_getVerhuisTekening(ProjectKey);
|
||
ELSE
|
||
SrcDwg := prj.cad_getVerdiepCntr_tekening(Locatiekey,ProjectKey,Verdiepingkey);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN SrcDwg := NULL;
|
||
END;
|
||
ELSIF LPNAlias = 'LPN_PRS_WERKPLEK'
|
||
THEN
|
||
/* Contourtekening verdieping */
|
||
BEGIN
|
||
SELECT alg_verdieping_key
|
||
INTO VerdiepingKey
|
||
FROM prj_ruimte
|
||
WHERE alg_ruimte_verwijder IS NULL
|
||
AND prj_project_key = ProjectKey
|
||
AND alg_ruimte_key = (SELECT prs_alg_ruimte_key
|
||
FROM prj_werkplek
|
||
WHERE prs_werkplek_key = LPNKey
|
||
AND prj_project_key = ProjectKey);
|
||
IF VerdiepingKey IS NULL
|
||
THEN
|
||
SrcDwg := prj.cad_getVerhuisTekening(ProjectKey);
|
||
ELSE
|
||
SrcDwg := prj.cad_getVerdiepCntr_tekening(LocatieKey,ProjectKey,VerdiepingKey);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN SrcDwg := NULL;
|
||
END;
|
||
ELSE
|
||
/* Komt hier in de toekomst een ERROR-melding ? */
|
||
SrcDwg := NULL;
|
||
END IF;
|
||
END IF;
|
||
RETURN SrcDwg;
|
||
END cad_GetSrcDwgOfEntity;
|
||
|
||
/* prj.cad_GetSrcDwgOfEntity2
|
||
**
|
||
** Roep de functie cad_GetSrcDwgOfEntity aan voor LNP_INS_DEEL, LPN_ALG_TERREINSECTOR, LPN_ALG_GEBOUW,
|
||
** LPN_ALG_RUIMTE of LPN_PRS_WERKPLEK.
|
||
** Hiermee kan de functionaliteit met zowel een functie als een procedure gebruikt worden.
|
||
*/
|
||
PROCEDURE cad_GetSrcDwgOfEntity2(Session_Id IN NUMBER
|
||
,LPNAliasINSO IN VARCHAR2
|
||
,LPNKeyINSO IN NUMBER) IS
|
||
SrcDwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
BEGIN
|
||
SrcDwg := prj.cad_GetSrcDwgOfEntity(Session_Id,LPNAliasINSO,LPNKeyINSO);
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'INFOS', 1, srcdwg , 1);
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC' , 1, 'AUTOCAD', 1);
|
||
END cad_GetSrcDwgOfEntity2;
|
||
|
||
/* prj.cad_SLNKPreDraw
|
||
**
|
||
*/
|
||
PROCEDURE cad_SLNKPreDraw(Session_Id NUMBER) IS
|
||
LPNName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNKeyCond cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNProjectKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
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;
|
||
projectcode prj_project.prj_project_nr%TYPE;
|
||
Subloc_Code alg_terreinsector.alg_terreinsector_code%TYPE;
|
||
RuimteNr prj_ruimte.alg_ruimte_nr%TYPE;
|
||
WerkplekNr prj_werkplek.prs_werkplek_volgnr%TYPE;
|
||
gebouwcode alg_gebouw.alg_gebouw_code%TYPE;
|
||
SrcDwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LoadDwg 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;
|
||
LayerColor ins_srtdeel.ins_srtdeel_cadlaycolor%TYPE;
|
||
LayerLineType 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 prj_deel.ins_alg_ruimte_type%TYPE;
|
||
KeyDeel prj_deel.ins_alg_ruimte_key%TYPE;
|
||
Omschrijving VARCHAR2(30);
|
||
SrtTekening VARCHAR2(20);
|
||
BEGIN
|
||
LPNName := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASPREDRAW');
|
||
LPNKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYPREDRAW');
|
||
SeqNr := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'SEQNR');
|
||
LPNProjectKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'PROJECTKEY');
|
||
IF SeqNr IS NULL
|
||
THEN
|
||
SeqNr := 1;
|
||
END IF;
|
||
IF LPNName = 'LPN_INS_DEEL'
|
||
THEN
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_INS_DEEL', 1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA' , SeqNr, LPNKey , 1);
|
||
/* Bepaal soortdeelkey */
|
||
SELECT ins_srtdeel_key
|
||
INTO SrtdeelKey
|
||
FROM prj_deel
|
||
WHERE ins_deel_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
/* Lees de grafische gegevens uit tabel ins_srtdeel */
|
||
SELECT ins_srtdeel_cadlaycolor
|
||
, ins_srtdeel_cadlaylinetype
|
||
, ins_srtdeel_cadlayer
|
||
, ins_srtdeel_acadsymbol
|
||
, ins_srtdeel_opmaat
|
||
, ins_srtdeel_dimensie
|
||
INTO LayerColor
|
||
, LayerLineType
|
||
, LayerNaam
|
||
, Symbool
|
||
, Opmaat
|
||
, Dimensie
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_key = SrtdeelKey;
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'DIMENSION' , SeqNr, Dimensie , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA' , SeqNr, 'INS_DEEL_KEY', 1);
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'LAYERCOLOR' , SeqNr, LayerColor , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERLINETYPE', SeqNr, LayerLinetype , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER' , SeqNr, Layernaam , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'BLOCK' , SeqNr, Symbool , 1);
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'SCALE' , SeqNr, Opmaat , 1);
|
||
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
|
||
, ins_alg_ruimte_key
|
||
INTO PlaatsDeel
|
||
, KeyDeel
|
||
FROM prj_deel
|
||
WHERE ins_deel_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
IF PlaatsDeel = 'T'
|
||
THEN /* Terreinsector */
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_TERREINSECTOR', 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLCONDA' , SeqNr, 'ALG_TERREINSECTOR_KEY', 1);
|
||
ELSE /* Ruimte of Werkplek */
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_RUIMTE', 1);
|
||
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 prj_werkplek
|
||
WHERE prs_werkplek_key = KeyDeel
|
||
AND prj_project_key = LPNProjectKey;
|
||
ELSE
|
||
LPNKeyCond := KeyDeel;
|
||
END IF;
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'LPNKEYCONDA', SeqNr, LPNKeyCond, 1);
|
||
SELECT ins_alg_locatie_key
|
||
INTO LocatieKey
|
||
FROM prj_deel
|
||
WHERE ins_deel_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
Locatiecode := cad.bepaal_locatiecode(LocatieKey);
|
||
ProjectCode := prj.bepaal_projectcode(LPNProjectKey);
|
||
SrcDwg := prj.cad_GetSrcDwgOfEntity(Session_Id, 'LPN_INS_DEEL', LPNKey);
|
||
/* Bepaal LoadDwg */
|
||
IF PlaatsDeel = 'T'
|
||
THEN /* Terreinsector */
|
||
LoadDwg := prj.cad_getPlattegrondtekening(Locatiekey,LPNProjectKey);
|
||
ELSE /* Ruimte of Werkplek */
|
||
SELECT alg_verdieping_key
|
||
INTO VerdiepingKey
|
||
FROM prj_ruimte
|
||
WHERE alg_ruimte_key = LPNKeyCond
|
||
AND prj_project_key = LPNProjectKey;
|
||
LoadDwg := prj.cad_getVerdiepPlgrnd_tekening(LocatieKey, LPNProjectKey, Verdiepingkey);
|
||
END IF;
|
||
/* Bepaal Attachdwg's */
|
||
IF PlaatsDeel = 'T'
|
||
THEN /* Terreinsector */
|
||
/* Contourtekening locatie */
|
||
AttachDwg1 := prj.cad_getContourtekening(LocatieKey, LPNProjectKey);
|
||
ELSE /* Ruimte of Werkplek */
|
||
/* Contourtekening verdieping */
|
||
AttachDwg1 := prj.cad_getVerdiepCntr_tekening(LocatieKey, LPNProjectKey,Verdiepingkey);
|
||
END IF;
|
||
AttachDwg2 := SrcDwg;
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'SRCDWG' , SeqNr, SrcDwg , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG' , SeqNr, LoadDwg , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, AttachDwg1, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, Attachdwg2, 0);
|
||
IF PlaatsDeel = 'T'
|
||
THEN
|
||
DECLARE
|
||
CURSOR D_tekeningen IS
|
||
SELECT cad_tekening_filenaam
|
||
FROM prj_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.cad_SLNKstructinsertVALSTR(Session_Id
|
||
,'ATTACHDWG'
|
||
,SeqNr
|
||
,substr(ProjectCode ||'\'|| Tekenrec.cad_tekening_filenaam,1,256)
|
||
,0);
|
||
END LOOP;
|
||
END;
|
||
ELSE
|
||
DECLARE
|
||
CURSOR D_tekeningen IS
|
||
SELECT cad_tekening_filenaam
|
||
FROM prj_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.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG'
|
||
,SeqNr
|
||
,substr(ProjectCode ||'\'|| Tekenrec.cad_tekening_filenaam,1,256)
|
||
,0);
|
||
END LOOP;
|
||
END;
|
||
END IF;
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABELCOL', SeqNr, 'INS_DEEL_CADLABEL', 1);
|
||
SELECT ins_deel_omschrijving
|
||
INTO Omschrijving
|
||
FROM prj_deel
|
||
WHERE ins_deel_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, Omschrijving, 1);
|
||
ELSIF LPNName = 'LPN_ALG_GEBOUW'
|
||
THEN
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_ALG_GEBOUW', 1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA' , SeqNr, LPNKey , 1);
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'DIMENSION' , SeqNr, 2 , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA' , SeqNr, 'ALG_GEBOUW_KEY', 1);
|
||
LayerColor := cad.cad_getLayercolor('ALG_GEBOUW');
|
||
LayerLineType := cad.cad_getLayerlinetype('ALG_GEBOUW');
|
||
LayerNaam := cad.cad_getLayername('ALG_GEBOUW');
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'LAYERCOLOR' , SeqNr, LayerColor , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERLINETYPE', SeqNr, LayerLinetype, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER' , SeqNr, Layernaam , 1);
|
||
SELECT alg_locatie_key
|
||
INTO Locatiekey
|
||
FROM alg_gebouw
|
||
WHERE alg_gebouw_key = LPNKey;
|
||
Locatiecode := cad.bepaal_locatiecode(LocatieKey);
|
||
ProjectCode := prj.bepaal_projectcode(LPNProjectKey);
|
||
LoadDwg := prj.cad_getPlattegrondtekening(LocatieKey,LPNProjectKey);
|
||
/* Schrijf SrcDwg weg in cad_slnkstruct */
|
||
SrcDwg := prj.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);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', 1, AttachDwg1, 1);
|
||
DECLARE
|
||
CURSOR D_tekeningen IS
|
||
SELECT cad_tekening_filenaam
|
||
FROM prj_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.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG'
|
||
,SeqNr
|
||
,substr(ProjectCode ||'\'|| Tekenrec.cad_tekening_filenaam,1,256)
|
||
,0);
|
||
END LOOP;
|
||
END;
|
||
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;
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, gebouwcode, 1);
|
||
ELSIF LPNName = 'LPN_ALG_RUIMTE'
|
||
THEN
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_ALG_RUIMTE', 1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA' , SeqNr, LPNKey , 1);
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'DIMENSION' , SeqNr, 2 , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA' , SeqNr, 'ALG_RUIMTE_KEY', 1);
|
||
LayerColor := cad.cad_getLayercolor('ALG_RUIMTE');
|
||
LayerLineType := cad.cad_getLayerlinetype('ALG_RUIMTE');
|
||
LayerNaam := cad.cad_getLayername('ALG_RUIMTE');
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'LAYERCOLOR' , SeqNr, LayerColor , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERLINETYPE', SeqNr, LayerLinetype, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER' , SeqNr, Layernaam , 1);
|
||
SELECT prj_project_locatie_key
|
||
INTO locatiekey
|
||
FROM prj_project
|
||
WHERE prj_project_key = LPNProjectKey;
|
||
SELECT alg_verdieping_key
|
||
INTO verdiepingkey
|
||
FROM prj_ruimte
|
||
WHERE alg_ruimte_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey
|
||
AND alg_ruimte_verwijder IS NULL;
|
||
LoadDwg := prj.cad_getVerdiepPlgrnd_tekening(Locatiekey, LPNProjectKey, Verdiepingkey);
|
||
/* Schrijf SrcDwg weg in cad_slnkstruct */
|
||
SrcDwg := prj.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);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, AttachDwg1, 1);
|
||
DECLARE
|
||
CURSOR D_tekeningen IS
|
||
SELECT cad_tekening_filenaam
|
||
FROM prj_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.cad_SLNKstructinsertVALSTR(Session_Id
|
||
,'ATTACHDWG'
|
||
,SeqNr
|
||
,substr(ProjectCode ||'\'|| Tekenrec.cad_tekening_filenaam,1,256)
|
||
,0);
|
||
END LOOP;
|
||
END;
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABELCOL', SeqNr, 'ALG_RUIMTE_CADLABEL', 1);
|
||
SELECT alg_ruimte_nr
|
||
INTO RuimteNr
|
||
FROM prj_ruimte
|
||
WHERE alg_ruimte_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, RuimteNr, 1);
|
||
ELSIF LPNNAME = 'LPN_PRS_WERKPLEK'
|
||
THEN
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_PRS_WERKPLEK', 1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA' , SeqNr, LPNKey , 1);
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'DIMENSION' , SeqNr, 0 , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA' , SeqNr, 'PRS_WERKPLEK_KEY', 1);
|
||
LayerColor := cad.cad_getLayercolor('PRS_WERKPLEK');
|
||
LayerLineType := cad.cad_getLayerlinetype('PRS_WERKPLEK');
|
||
LayerNaam := cad.cad_getLayername('PRS_WERKPLEK');
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'LAYERCOLOR' , SeqNr, LayerColor , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERLINETYPE', SeqNr, LayerLinetype, 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER' , SeqNr, Layernaam , 1);
|
||
SELECT cad_symbool_symbool
|
||
INTO symbool
|
||
FROM cad_symbool
|
||
WHERE cad_symbool_entry = 'PRS_WERKPLEK';
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'BLOCK' , SeqNr, Symbool , 1);
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'INSPOINTCODE' , SeqNr, 0 , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_RUIMTE', 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLCONDA' , SeqNr, 'ALG_RUIMTE_KEY', 1);
|
||
SELECT prs_alg_ruimte_key
|
||
INTO LPNKeyCond
|
||
FROM prj_werkplek
|
||
WHERE prs_werkplek_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'LPNKEYCONDA', SeqNr, LPNKeyCond, 1);
|
||
/* Bepaal de bijbehorende tekeningen */
|
||
SELECT prj_project_locatie_key
|
||
INTO locatiekey
|
||
FROM prj_project
|
||
WHERE prj_project_key = LPNProjectKey;
|
||
SELECT alg_verdieping_key
|
||
INTO verdiepingkey
|
||
FROM prj_ruimte
|
||
WHERE alg_ruimte_key = (SELECT prs_alg_ruimte_key
|
||
FROM prj_werkplek
|
||
WHERE prs_werkplek_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey)
|
||
AND prj_project_key = LPNProjectKey
|
||
AND alg_ruimte_verwijder IS NULL;
|
||
LocatieCode := cad.bepaal_locatiecode(LocatieKey);
|
||
ProjectCode := prj.bepaal_projectcode(LPNProjectKey);
|
||
/* Schrijf SrcDwg weg in cad_slnkstruct */
|
||
SrcDwg := prj.cad_GetSrcDwgOfEntity(Session_Id, 'LPN_PRS_WERKPLEK', LPNKey);
|
||
LoadDwg := prj.cad_getVerdiepPlgrnd_tekening(LocatieKey, LPNProjectKey, Verdiepingkey);
|
||
AttachDwg1 := SrcDwg;
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'SRCDWG' , SeqNr, SrcDwg , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG' , SeqNr, LoadDwg , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, AttachDwg1, 1);
|
||
DECLARE
|
||
CURSOR D_tekeningen IS
|
||
SELECT cad_tekening_filenaam
|
||
FROM prj_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.cad_SLNKstructinsertVALSTR(Session_Id
|
||
,'ATTACHDWG'
|
||
,SeqNr
|
||
,substr(ProjectCode ||'\'|| Tekenrec.cad_tekening_filenaam,1,256)
|
||
,0);
|
||
END LOOP;
|
||
END;
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABELCOL',SeqNr, 'PRS_WERKPLEK_CADLABEL', 1);
|
||
SELECT prs_werkplek_volgnr
|
||
INTO WerkplekNr
|
||
FROM prj_werkplek
|
||
WHERE prs_werkplek_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, WerkplekNr, 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);
|
||
LayerColor := cad.cad_getLayercolor('ALG_TERREINSECTOR');
|
||
LayerLineType := cad.cad_getLayerlinetype('ALG_TERREINSECTOR');
|
||
LayerNaam := cad.cad_getLayername('ALG_TERREINSECTOR');
|
||
cad.cad_SLNKstructinsertVALINT(Session_Id,'LAYERCOLOR' , SeqNr, LayerColor , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERLINETYPE', SeqNr, LayerLinetype , 1);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER' , SeqNr, Layernaam , 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;
|
||
LocatieCode := cad.bepaal_locatiecode(LocatieKey);
|
||
ProjectCode := prj.bepaal_projectcode(LPNProjectKey);
|
||
LoadDwg := prj.cad_getPlattegrondtekening(LocatieKey,LPNProjectKey);
|
||
/* Schrijf SrcDwg weg in cad_slnkstruct */
|
||
SrcDwg := prj.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);
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', 1, AttachDwg1, 1);
|
||
DECLARE
|
||
CURSOR D_tekeningen IS
|
||
SELECT cad_tekening_filenaam
|
||
FROM prj_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.cad_SLNKstructinsertVALSTR(Session_Id
|
||
,'ATTACHDWG'
|
||
,SeqNr
|
||
,substr(ProjectCode ||'\'|| Tekenrec.cad_tekening_filenaam,1,256)
|
||
,0);
|
||
END LOOP;
|
||
END;
|
||
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;
|
||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, Subloc_code, 1);
|
||
END IF;
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END cad_SLNKPreDraw;
|
||
|
||
/* prj.cad_SLNKPrePostUndo
|
||
**
|
||
*/
|
||
FUNCTION cad_SLNKPrePostUndo(Session_id IN NUMBER
|
||
,ProjectKey IN NUMBER) RETURN BOOLEAN IS
|
||
LPNAliasINSO cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNKeyINSO cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNAliasDELO cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNKeyDELO cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNAliasMODO cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNKeyMODO cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNProjectKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LocatieCode alg_locatie.alg_locatie_code%TYPE;
|
||
ProjectCode prj_project.prj_project_nr%TYPE;
|
||
RuimteKey prj_ruimte.alg_ruimte_key%TYPE;
|
||
RuimteNr prj_ruimte.alg_ruimte_nr%TYPE;
|
||
WerkplekNr prj_werkplek.prs_werkplek_volgnr%TYPE;
|
||
VerdiepingKey prj_ruimte.alg_verdieping_key%TYPE;
|
||
LocatieKey alg_locatie.alg_locatie_key%TYPE;
|
||
SrtdeelKey ins_srtdeel.ins_srtdeel_key%TYPE;
|
||
Omschrijving prj_deel.ins_deel_omschrijving%TYPE;
|
||
Dummy NUMBER(10);
|
||
RetValue BOOLEAN;
|
||
BEGIN
|
||
LPNAliasINSO := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASINSO');
|
||
LPNKeyINSO := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYINSO');
|
||
IF LPNKeyINSO IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
IF LPNAliasINSO = 'LPN_ALG_TERREINSECTOR'
|
||
THEN
|
||
SELECT alg_locatie_key
|
||
, alg_terreinsector_code
|
||
INTO LocatieKey
|
||
, LocatieCode
|
||
FROM alg_terreinsector
|
||
WHERE alg_terreinsector_key = LPNKeyINSO;
|
||
BEGIN
|
||
SELECT alg_terreinsector_key
|
||
INTO Dummy
|
||
FROM alg_v_aanwezigterreinsector
|
||
WHERE alg_locatie_key = LocatieKey
|
||
AND alg_terreinsector_code = LocatieCode;
|
||
RetValue := FALSE;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN /* Verwijderdatum wordt NULL */
|
||
UPDATE alg_terreinsector
|
||
SET alg_terreinsector_verwijder = NULL
|
||
, alg_terreinsector_getekend = SYSDATE /* It's CAD */
|
||
WHERE alg_terreinsector_key = LPNKeyINSO;
|
||
RetValue := TRUE;
|
||
END;
|
||
ELSIF LPNAliasINSO = 'LPN_ALG_GEBOUW'
|
||
THEN
|
||
SELECT alg_locatie_key
|
||
, alg_gebouw_code
|
||
INTO LocatieKey
|
||
, LocatieCode
|
||
FROM alg_gebouw
|
||
WHERE alg_gebouw_key = LPNKeyINSO;
|
||
BEGIN
|
||
SELECT alg_gebouw_key
|
||
INTO Dummy
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE alg_locatie_key = LocatieKey
|
||
AND alg_gebouw_code = LocatieCode;
|
||
RetValue := FALSE;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN /* Verwijderdatum wordt NULL */
|
||
UPDATE alg_gebouw
|
||
SET alg_gebouw_verwijder = NULL
|
||
, alg_gebouw_getekend = SYSDATE /* It's CAD */
|
||
WHERE alg_gebouw_key = LPNKeyINSO;
|
||
RetValue := TRUE;
|
||
END;
|
||
ELSIF LPNAliasINSO = 'LPN_ALG_RUIMTE'
|
||
THEN
|
||
SELECT alg_verdieping_key
|
||
, upper(alg_ruimte_nr)
|
||
INTO VerdiepingKey
|
||
, RuimteNr
|
||
FROM prj_ruimte
|
||
WHERE alg_ruimte_key = LPNKeyINSO
|
||
AND prj_project_key = ProjectKey;
|
||
BEGIN
|
||
SELECT alg_ruimte_key
|
||
INTO Dummy
|
||
FROM prj_ruimte
|
||
WHERE alg_verdieping_key = VerdiepingKey
|
||
AND upper(alg_ruimte_nr) = RuimteNr
|
||
AND alg_ruimte_verwijder IS NULL
|
||
AND prj_project_key = ProjectKey;
|
||
RetValue := FALSE;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN /* Verwijderdatum wordt NULL */
|
||
UPDATE prj_ruimte
|
||
SET alg_ruimte_verwijder = NULL
|
||
, alg_ruimte_getekend = SYSDATE /* It's CAD */
|
||
WHERE alg_ruimte_key = LPNKeyINSO
|
||
AND prj_project_key = ProjectKey;
|
||
RetValue := TRUE;
|
||
END;
|
||
ELSIF LPNAliasINSO = 'LPN_PRS_WERKPLEK'
|
||
THEN
|
||
SELECT prs_alg_ruimte_key
|
||
, prs_werkplek_volgnr
|
||
INTO RuimteKey
|
||
, Werkpleknr
|
||
FROM prj_werkplek
|
||
WHERE prs_werkplek_key = LPNKeyINSO
|
||
AND prj_project_key = ProjectKey;
|
||
BEGIN
|
||
SELECT prs_werkplek_key
|
||
INTO Dummy
|
||
FROM prj_werkplek
|
||
WHERE prs_alg_ruimte_key = RuimteKey
|
||
AND prs_werkplek_volgnr = WerkplekNr
|
||
AND prs_werkplek_verwijder IS NULL
|
||
AND prj_project_key = ProjectKey;
|
||
RetValue := FALSE;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN /* Verwijderdatum wordt NULL */
|
||
UPDATE prj_werkplek
|
||
SET prs_werkplek_verwijder = NULL
|
||
, prs_werkplek_getekend = SYSDATE /* IT's CAD */
|
||
WHERE prs_werkplek_key = LPNKeyINSO
|
||
AND prj_project_key = ProjectKey;
|
||
RetValue := TRUE;
|
||
END;
|
||
ELSIF LPNAliasINSO = 'LPN_INS_DEEL'
|
||
THEN
|
||
BEGIN
|
||
SELECT ins_alg_locatie_key
|
||
, ins_srtdeel_key
|
||
, upper(ins_deel_omschrijving)
|
||
INTO LocatieKey
|
||
, SrtdeelKey
|
||
, Omschrijving
|
||
FROM prj_deel
|
||
WHERE ins_deel_key = LPNKeyINSO
|
||
AND prj_project_key = ProjectKey;
|
||
BEGIN
|
||
SELECT ins_deel_key
|
||
INTO dummy
|
||
FROM prj_deel
|
||
WHERE ins_alg_locatie_key = LocatieKey
|
||
AND ins_srtdeel_key = SrtDeelKey
|
||
AND ins_deel_parent_key IS NULL
|
||
AND ins_deel_verwijder IS NULL
|
||
AND upper(ins_deel_omschrijving) = Omschrijving
|
||
AND prj_project_key = ProjectKey;
|
||
RetValue := FALSE;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
BEGIN
|
||
UPDATE prj_deel
|
||
SET ins_deel_verwijder = NULL
|
||
, ins_deel_getekend = SYSDATE /* It's CAD */
|
||
WHERE ins_deel_key = LPNKeyINSO
|
||
AND prj_project_key = ProjectKey;
|
||
RetValue := TRUE;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN NULL;
|
||
END;
|
||
END;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN NULL;
|
||
END;
|
||
ELSE
|
||
RETURN FALSE;
|
||
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
|
||
THEN
|
||
cad.cad_SLNKSTRUCTclear(Session_Id);
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASPREDRAW', 1, LPNAliasINSO , 1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYPREDRAW' , 1, LPNKeyINSO , 1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'PROJECTKEY' , 1, ProjectKey , 1);
|
||
prj.cad_SLNKPreDraw(Session_Id);
|
||
END IF;
|
||
RETURN RetValue;
|
||
END cad_SLNKPrePostUndo;
|
||
|
||
/* prj_disciplinetekening_bestaat
|
||
**
|
||
** Kijk of het geselecteerde object wel op een bijpassende
|
||
** discipline-tekening kan worden gezet. Zo niet dan mag het
|
||
** object niet toegevoegd worden.
|
||
*/
|
||
FUNCTION prj_disciplinetekening_bestaat(p_SrtDeelKey IN NUMBER
|
||
,p_ProjectKey IN NUMBER) RETURN BOOLEAN IS
|
||
dummy VARCHAR2(1);
|
||
aanwezig BOOLEAN;
|
||
BEGIN
|
||
BEGIN
|
||
SELECT 'X'
|
||
INTO dummy
|
||
FROM cad_tekening T
|
||
, ins_srtdeel D
|
||
, ins_srtgroep G
|
||
WHERE D.ins_srtgroep_key = G.ins_srtgroep_key
|
||
AND G.ins_discipline_key = T.ins_discipline_key
|
||
AND D.ins_srtdeel_key = p_SrtDeelKey
|
||
AND T.prj_project_key = p_ProjectKey;
|
||
aanwezig := TRUE; /* Discipline-tekening bestaat in het project. */
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN aanwezig := FALSE; /* Geen geldige discipline voor dit project. */
|
||
WHEN TOO_MANY_ROWS
|
||
THEN aanwezig := TRUE; /* Er bestaan meerdere discipline-tekeningen. */
|
||
END;
|
||
RETURN aanwezig;
|
||
END;
|
||
|
||
/* prj.cad_SLNKPrePostDimensie0
|
||
**
|
||
*/
|
||
PROCEDURE cad_SLNKPrePostDimensie0(Session_Id 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 prj_ruimte.alg_ruimte_nr%TYPE;
|
||
RuimteKey prj_ruimte.alg_ruimte_key%TYPE;
|
||
WerkplekNr prj_werkplek.prs_werkplek_volgnr%TYPE;
|
||
LoadDwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
SeqNr cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
Omschrijving prs_werkplek.prs_werkplek_omschrijving%TYPE;
|
||
Dummy NUMBER(10);
|
||
LabelOK BOOLEAN;
|
||
LPNAliasINSO cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNKeyINSO cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNProjectKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
DisciplineKey ins_srtgroep.ins_discipline_key%TYPE;
|
||
BEGIN
|
||
Dimensie := 0;
|
||
LayerNaam := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LAYER');
|
||
LPNCondName := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
||
LPNCondKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYCONDO');
|
||
BlockNaam := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'BLOCK');
|
||
LoadDwg := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LOADDWG');
|
||
LPNProjectKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'PROJECTKEY');
|
||
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 := prj.CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
IF NOT LPNCondKeyOK
|
||
THEN
|
||
SeqNr := 2;
|
||
LOOP
|
||
LPNCondName := cad.cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', SeqNr);
|
||
LPNCondKey := cad.cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO' , SeqNr);
|
||
IF LPNCondKey IS NULL
|
||
THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := prj.CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
EXIT WHEN LPNCondKeyOK AND LPNCondName = 'LPN_ALG_RUIMTE';
|
||
LPNCondKeyOK := FALSE;
|
||
SeqNr := SeqNr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
ELSE
|
||
LPNCondKeyOK := FALSE;
|
||
END IF;
|
||
--
|
||
IF LPNCondKeyOK
|
||
THEN
|
||
LabelSymbool := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LABELO');
|
||
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 prj_werkplek
|
||
WHERE prs_alg_ruimte_key = LPNCondKey
|
||
AND prj_project_key = LPNProjectKey
|
||
AND prs_werkplek_verwijder IS NULL
|
||
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 NOT LabelOK
|
||
THEN
|
||
/* Bepaal het volgnummer v/d toe te voegen werkplek */
|
||
Omschrijving := prj.prj_f_fac_get_description('LPN_PRS_WERKPLEK', LPNCondKey, LPNProjectKey, NULL, NULL);
|
||
WerkplekNr := to_number(substr(Omschrijving,instr(Omschrijving,'-',1)+1));
|
||
END IF;
|
||
INSERT INTO prj_werkplek
|
||
( prs_werkplek_volgnr
|
||
, prs_werkplek_omschrijving
|
||
, prs_alg_ruimte_key
|
||
, prs_werkplek_getekend
|
||
, prj_project_key)
|
||
VALUES(WerkplekNr
|
||
, Omschrijving
|
||
, LPNCondKey
|
||
, SYSDATE
|
||
, LPNProjectKey);
|
||
COMMIT;
|
||
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 prj_werkplek
|
||
WHERE prs_alg_ruimte_key = LPNCondKey
|
||
AND prs_werkplek_volgnr = WerkplekNr
|
||
AND prj_project_key = LPNProjectKey
|
||
AND prs_werkplek_verwijder IS NULL;
|
||
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.
|
||
*/
|
||
BEGIN
|
||
SELECT MIN(ins_srtdeel_key)
|
||
INTO SrtDeelKey
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_dimensie = Dimensie
|
||
AND UPPER(ins_srtdeel_cadlayer) = UPPER(LayerNaam)
|
||
AND UPPER(ins_srtdeel_acadsymbol) = UPPER(BlockNaam)
|
||
AND ins_srtdeel_verwijder IS NULL;
|
||
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 IN ('LPN_ALG_TERREINSECTOR','LPN_ALG_RUIMTE','LPN_PRS_WERKPLEK')
|
||
THEN
|
||
LPNCondKeyOK := prj.CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
IF NOT LPNCondKeyOK
|
||
THEN
|
||
Seqnr := 2;
|
||
LOOP
|
||
LPNCondName := cad.cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', Seqnr);
|
||
LPNCondKey := cad.cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO' , Seqnr);
|
||
IF LPNCondKey IS NULL
|
||
THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := prj.CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
EXIT WHEN (LPNCondKeyOK AND LPNCondName = 'LPN_ALG_TERREINSECTOR')
|
||
OR (LPNCondKeyOK AND LPNCondName = 'LPN_ALG_RUIMTE')
|
||
OR (LPNCondKeyOK AND LPNCondName = 'LPN_PRS_WERKPLEK');
|
||
LPNCondKeyOK := FALSE;
|
||
Seqnr := Seqnr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
ELSE
|
||
LPNCondKeyOK := FALSE;
|
||
END IF;
|
||
IF LPNCondKeyOK
|
||
THEN
|
||
LPNName := 'LPN_INS_DEEL';
|
||
LPNKey := prj.AddDeel(Session_id, SrtdeelKey, LPNCondName, LPNCondKey, LPNProjectKey);
|
||
RecordAdded:= TRUE;
|
||
ELSE
|
||
RecordAdded:= FALSE;
|
||
END IF;
|
||
ELSE
|
||
SELECT MIN(ins_srtdeel_key)
|
||
INTO SrtDeelKey
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_dimensie = Dimensie
|
||
AND UPPER(ins_srtdeel_acadsymbol) = UPPER(BlockNaam)
|
||
AND ins_srtdeel_verwijder IS NULL;
|
||
IF SrtDeelKey IS NOT NULL
|
||
THEN
|
||
IF LPNCondName IN ('LPN_ALG_TERREINSECTOR','LPN_ALG_RUIMTE','LPN_PRS_WERKPLEK')
|
||
THEN
|
||
LPNCondKeyOK := prj.CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
IF NOT LPNCondKeyOK
|
||
THEN
|
||
Seqnr := 2;
|
||
LOOP
|
||
LPNCondName := cad.cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', Seqnr);
|
||
LPNCondKey := cad.cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO' , Seqnr);
|
||
IF LPNCondKey IS NULL
|
||
THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := prj.CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
EXIT WHEN (LPNCondKeyOK AND LPNCondName IN ('LPN_ALG_TERREINSECTOR'
|
||
,'LPN_ALG_RUIMTE'
|
||
,'LPN_PRS_WERKPLEK'));
|
||
LPNCondKeyOK := FALSE;
|
||
Seqnr := Seqnr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
ELSE
|
||
LPNCondKeyOK := FALSE;
|
||
END IF;
|
||
--
|
||
IF LPNCondKeyOK
|
||
THEN
|
||
LPNName := 'LPN_INS_DEEL';
|
||
IF prj_disciplinetekening_bestaat(SrtDeelKey,LPNProjectKey)
|
||
THEN
|
||
LPNKey := prj.AddDeel(Session_id,SrtdeelKey, LPNCondName, LPNCondKey, LPNProjectKey);
|
||
RecordAdded := TRUE;
|
||
ELSE
|
||
RecordAdded := FALSE;
|
||
END IF;
|
||
ELSE
|
||
RecordAdded := FALSE;
|
||
END IF;
|
||
ELSE
|
||
RecordAdded := FALSE;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
ELSE
|
||
NULL;
|
||
END IF;
|
||
cad.cad_SLNKSTRUCTclear(Session_Id);
|
||
IF RecordAdded
|
||
THEN
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASPREDRAW', 1, LPNName , 1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYPREDRAW' , 1, LPNKey , 1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'PROJECTKEY' , 1, LPNProjectKey, 1);
|
||
prj.cad_SLNKPreDraw(Session_Id);
|
||
ELSE
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END IF;
|
||
END cad_SLNKPrePostDimensie0;
|
||
|
||
/* prj.cad_SLNKPrePostDimensie1
|
||
**
|
||
*/
|
||
PROCEDURE cad_SLNKPrePostDimensie1(Session_Id 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;
|
||
LPNProjectKey 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;
|
||
BEGIN
|
||
Dimensie := 1;
|
||
LPNCondName := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
||
LPNCondKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYCONDO');
|
||
LPNProjectKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'PROJECTKEY');
|
||
LayerNaam := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LAYER');
|
||
LoadDwg := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LOADDWG');
|
||
/*
|
||
** Check of het een soortdeel is...
|
||
*/
|
||
SELECT MIN(ins_srtdeel_key)
|
||
INTO SrtDeelKey
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_dimensie = Dimensie
|
||
AND UPPER(ins_srtdeel_cadlayer) = UPPER(LayerNaam)
|
||
AND ins_srtdeel_verwijder IS NULL;
|
||
--
|
||
IF SrtDeelKey IS NOT NULL
|
||
THEN
|
||
/* Het is een srtdeel */
|
||
IF LPNCondName IN ('LPN_ALG_TERREINSECTOR','LPN_ALG_RUIMTE','LPN_PRS_WERKPLEK')
|
||
THEN
|
||
LPNCondKeyOK := prj.CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
IF NOT LPNCondKeyOK
|
||
THEN
|
||
Seqnr := 2;
|
||
LOOP
|
||
LPNCondName := cad.cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', Seqnr);
|
||
LPNCondKey := cad.cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO' , Seqnr);
|
||
IF LPNCondKey IS NULL
|
||
THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := prj.CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
EXIT WHEN (LPNCondKeyOK AND LPNCondName IN ('LPN_ALG_TERREINSECTOR'
|
||
,'LPN_ALG_RUIMTE'
|
||
,'LPN_PRS_WERKPLEK'));
|
||
LPNCondKeyOK := FALSE;
|
||
Seqnr := Seqnr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
ELSE
|
||
LPNCondKeyOK := FALSE;
|
||
END IF;
|
||
--
|
||
IF LPNCondKeyOK
|
||
THEN
|
||
LPNName := 'LPN_INS_DEEL';
|
||
IF prj_disciplinetekening_bestaat(SrtDeelKey,LPNProjectKey)
|
||
THEN
|
||
LPNKey := prj.AddDeel(Session_id, SrtdeelKey, LPNCondName, LPNCondKey, LPNProjectKey);
|
||
RecordAdded := TRUE;
|
||
ELSE
|
||
RecordAdded := FALSE;
|
||
END IF;
|
||
ELSE
|
||
RecordAdded:= FALSE;
|
||
END IF;
|
||
ELSE
|
||
RecordAdded:= FALSE;
|
||
END IF;
|
||
--
|
||
cad.cad_SLNKSTRUCTclear(Session_Id);
|
||
IF RecordAdded
|
||
THEN
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASPREDRAW', 1, LPNName , 1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYPREDRAW' , 1, LPNKey , 1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'PROJECTKEY' , 1, LPNProjectKey, 1);
|
||
prj.cad_SLNKPreDraw(Session_Id);
|
||
ELSE
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END IF;
|
||
END cad_SLNKPrePostDimensie1;
|
||
|
||
/* prj.cad_SLNKPrePostDimensie2
|
||
**
|
||
*/
|
||
PROCEDURE cad_SLNKPrePostDimensie2(Session_Id NUMBER) IS
|
||
LocatieKey alg_locatie.alg_locatie_key%TYPE;
|
||
locatiecode alg_locatie.alg_locatie_code%TYPE;
|
||
VerdiepingKey alg_verdieping.alg_verdieping_key%TYPE;
|
||
VerdiepingNr alg_verdieping.alg_verdieping_volgnr%TYPE;
|
||
DisciplineKey ins_discipline.ins_discipline_key%TYPE;
|
||
Sectorcode alg_terreinsector.alg_terreinsector_code%TYPE;
|
||
Gebouwcode alg_gebouw.alg_gebouw_code%TYPE;
|
||
RuimteNr prj_ruimte.alg_ruimte_nr%TYPE;
|
||
ProjectCode prj_project.prj_project_nr%TYPE;
|
||
TekeningNaam cad_tekening.cad_tekening_filenaam%TYPE;
|
||
Symbool ins_srtdeel.ins_srtdeel_acadsymbol%TYPE;
|
||
BlockNaam ins_srtdeel.ins_srtdeel_acadsymbol%TYPE;
|
||
Dimensie ins_srtdeel.ins_srtdeel_dimensie%TYPE;
|
||
LayerNaam ins_srtdeel.ins_srtdeel_cadlayer%TYPE;
|
||
SymboolLayer ins_srtdeel.ins_srtdeel_cadlayer%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;
|
||
LPNProjectKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LoadDwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
SeqNr cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNCondKeyOK BOOLEAN;
|
||
RecordAdded BOOLEAN:= FALSE;
|
||
Omschrijving VARCHAR2(30);
|
||
VolgnrTxt VARCHAR2(3);
|
||
ZoekString VARCHAR2(20);
|
||
StreepPos NUMBER(2);
|
||
MaxLengte NUMBER(10);
|
||
Dummy NUMBER(10);
|
||
LabelSymbool VARCHAR2(256);
|
||
LabelOK BOOLEAN;
|
||
BEGIN
|
||
Dimensie := 2;
|
||
LayerNaam := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LAYER');
|
||
LoadDwg := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LOADDWG');
|
||
BlockNaam := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'BLOCK');
|
||
LPNCondName := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
||
LPNCondKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYCONDO');
|
||
LPNProjectKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'PROJECTKEY');
|
||
SELECT cad_symbool_layer
|
||
INTO SymboolLayer
|
||
FROM cad_symbool
|
||
WHERE cad_symbool_entry = 'ALG_TERREINSECTOR';
|
||
IF LayerNaam = SymboolLayer
|
||
THEN
|
||
/*
|
||
** Het is een terrein ...
|
||
*/
|
||
ProjectCode := prj.cad_getProjectCode_Tekening(LoadDwg);
|
||
SELECT prj_project_locatie_key
|
||
INTO LocatieKey
|
||
FROM prj_project
|
||
WHERE prj_project_nr = ProjectCode;
|
||
LabelSymbool := 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 NOT LabelOK
|
||
THEN
|
||
SectorCode := 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 ...
|
||
*/
|
||
ProjectCode := prj.cad_getProjectCode_Tekening(LoadDwg);
|
||
SELECT prj_project_locatie_key
|
||
INTO LocatieKey
|
||
FROM prj_project
|
||
WHERE prj_project_nr = ProjectCode;
|
||
LabelSymbool := 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 NOT labelOK
|
||
THEN
|
||
GebouwCode := 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 ...
|
||
*/
|
||
ProjectCode := prj.cad_getProjectCode_Tekening(LoadDwg);
|
||
SELECT prj_project_locatie_key
|
||
INTO LocatieKey
|
||
FROM prj_project
|
||
WHERE prj_project_nr = ProjectCode;
|
||
/* Bepaal verdieping -> bepaal eerst tekeningnaam zonder toevoeging Locatiecode... */
|
||
TekeningNaam := cad.cad_getTekeningNaam_LoadDwg(LoadDwg);
|
||
BEGIN
|
||
SELECT alg_verdieping_key
|
||
INTO VerdiepingKey
|
||
FROM prj_v_plattegrond
|
||
WHERE alg_locatie_key = LocatieKey
|
||
AND cad_tekening_filenaam = 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 := 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 prj_ruimte
|
||
WHERE alg_verdieping_key = VerdiepingKey
|
||
AND UPPER(alg_ruimte_nr) = UPPER(LabelSymbool)
|
||
AND prj_project_key = LPNProjectKey
|
||
AND alg_ruimte_verwijder IS NULL;
|
||
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 NOT LabelOK
|
||
THEN
|
||
RuimteNr := prj.prj_f_fac_get_description('LPN_ALG_RUIMTE', VerdiepingKey, LPNProjectKey, NULL, NULL);
|
||
END IF;
|
||
--
|
||
INSERT INTO prj_ruimte
|
||
( prj_project_key
|
||
, alg_verdieping_key
|
||
, alg_ruimte_nr)
|
||
VALUES(LPNProjectKey
|
||
, VerdiepingKey
|
||
, substr(RuimteNr,1,10));
|
||
COMMIT;
|
||
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 prj_ruimte
|
||
WHERE alg_verdieping_key = VerdiepingKey
|
||
AND alg_ruimte_nr = RuimteNr
|
||
AND alg_ruimte_verwijder IS NULL
|
||
AND prj_project_key = LPNProjectKey;
|
||
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 UPPER(ins_srtdeel_cadlayer) = UPPER(LayerNaam)
|
||
AND ins_srtdeel_verwijder IS NULL;
|
||
IF SrtDeelKey IS NOT NULL
|
||
THEN
|
||
/*
|
||
** Het is een srtdeel...
|
||
*/
|
||
IF LPNCondName IN ('LPN_ALG_TERREINSECTOR','LPN_ALG_RUIMTE','LPN_PRS_WERKPLEK')
|
||
THEN
|
||
LPNCondKeyOK := prj.CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
IF NOT LPNCondKeyOK
|
||
THEN
|
||
Seqnr := 2;
|
||
LOOP
|
||
LPNCondName := cad.cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNALIASCONDO', Seqnr);
|
||
LPNCondKey := cad.cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO' , Seqnr);
|
||
IF LPNCondKey IS NULL
|
||
THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := prj.CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
EXIT WHEN (LPNCondKeyOK AND LPNCondName IN ('LPN_ALG_TERREINSECTOR'
|
||
,'LPN_ALG_RUIMTE'
|
||
,'LPN_PRS_WERKPLEK'));
|
||
LPNCondKeyOK := FALSE;
|
||
Seqnr := Seqnr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
ELSE
|
||
LPNCondKeyOK := FALSE;
|
||
END IF;
|
||
--
|
||
IF LPNCondKeyOK
|
||
THEN
|
||
LPNName := 'LPN_INS_DEEL';
|
||
IF prj_disciplinetekening_bestaat(SrtDeelKey,LPNProjectKey)
|
||
THEN
|
||
LPNKey := prj.AddDeel(Session_id, SrtdeelKey, LPNCondName, LPNCondKey, LPNProjectKey);
|
||
RecordAdded := TRUE;
|
||
ELSE
|
||
RecordAdded := FALSE;
|
||
END IF;
|
||
ELSE
|
||
RecordAdded:= FALSE;
|
||
END IF;
|
||
ELSE
|
||
/*
|
||
** Het is een onbekend object...
|
||
*/
|
||
RecordAdded:= FALSE;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
cad.cad_SLNKSTRUCTclear(Session_Id);
|
||
IF RecordAdded
|
||
THEN
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASPREDRAW', 1, LPNName , 1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYPREDRAW' , 1, LPNKey , 1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'PROJECTKEY' , 1, LPNProjectKey, 1);
|
||
prj.cad_SLNKPreDraw(Session_Id);
|
||
ELSE
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END IF;
|
||
END cad_SLNKPrePostDimensie2;
|
||
|
||
/* prj.cad_slnkprepostdraw
|
||
**
|
||
*/
|
||
PROCEDURE cad_SLNKPrePostDraw(Session_Id IN NUMBER) IS
|
||
Dimensie ins_srtdeel.ins_srtdeel_dimensie%TYPE;
|
||
Project_Key cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
UndoOK BOOLEAN;
|
||
BEGIN
|
||
Project_Key := cad.cad_SLNKSTRUCTreadVALINT(Session_id,'PROJECTKEY');
|
||
UndoOK:= cad_SLNKPrePostUndo(Session_Id,Project_Key);
|
||
IF NOT UndoOK
|
||
THEN
|
||
Dimensie := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'DIMENSION');
|
||
IF Dimensie = 0
|
||
THEN
|
||
cad_SLNKPrePostDimensie0(Session_Id);
|
||
ELSIF Dimensie = 1
|
||
THEN
|
||
cad_SLNKPrePostDimensie1(Session_Id);
|
||
ELSIF Dimensie = 2
|
||
THEN
|
||
cad_SLNKPrePostDimensie2(Session_Id);
|
||
ELSE
|
||
NULL;
|
||
END IF;
|
||
ELSE
|
||
NULL;
|
||
END IF;
|
||
END cad_SLNKPrePostDraw;
|
||
|
||
/* prj.cad_slnkpostdraw
|
||
**
|
||
*/
|
||
PROCEDURE cad_SLNKpostdraw(Session_Id IN NUMBER) IS
|
||
LPNAliasLinkO cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNKeyLinkO cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNCondName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNProjectKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNCondKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
SeqNr cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
Dimensie ins_srtdeel.ins_srtdeel_dimensie%TYPE;
|
||
RuimteKey prj_werkplek.prs_alg_ruimte_key%TYPE;
|
||
PlaatsDeel prj_deel.ins_alg_ruimte_type%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);
|
||
PlaatsKey NUMBER(10);
|
||
RuimteType VARCHAR2(1);
|
||
DoDeelUpdate BOOLEAN;
|
||
LinkToRoom NUMBER;
|
||
LPNCondKeyOK BOOLEAN;
|
||
|
||
BEGIN
|
||
LPNName := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASINSO');
|
||
LPNKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYINSO');
|
||
LPNCondName := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
||
LPNCondKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYCONDO');
|
||
LPNProjectKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'PROJECTKEY');
|
||
|
||
IF LPNNAME = 'LPN_INS_DEEL'
|
||
THEN
|
||
LPNAliasLinkO := cad.cad_SLNKSTRUCTreadVALSTR(Session_Id, 'LPNALIASLINKO');
|
||
IF LPNAliasLinkO IS NOT NULL
|
||
THEN
|
||
/* Aanmaken ins_deelkoppeling record voor elke LPNKEYLINKO */
|
||
LPNKeyLinkO := 1; /* NOT NULL */
|
||
SeqNr := 1;
|
||
WHILE (LPNKeyLinkO IS NOT NULL)
|
||
LOOP
|
||
LPNKeyLinkO := cad.cad_SLNKSTRUCTreadVALINT2(Session_Id, 'LPNKEYLINKO', SeqNr);
|
||
IF LPNKeyLinkO IS NOT NULL
|
||
THEN
|
||
INSERT INTO ins_deelkoppeling
|
||
( ins_deelkoppeling_van_key
|
||
, ins_deelkoppeling_naar_key)
|
||
VALUES(LPNKey
|
||
, LPNKeyLinkO);
|
||
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 prj_deel
|
||
WHERE ins_deel_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN Dimensie := NULL; /* Dimensie niet gevonden -> doe verder niets */
|
||
END;
|
||
Omtrek := cad.cad_SLNKSTRUCTreadVALREAL(Session_id, 'LENGTH');
|
||
IF Omtrek IS NOT NULL AND Dimensie <> 0
|
||
THEN
|
||
UPDATE prj_deel
|
||
SET ins_deel_omtrek = Omtrek
|
||
WHERE ins_deel_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
END IF;
|
||
Oppervlak := cad.cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||
IF Oppervlak IS NOT NULL AND Dimensie = 2
|
||
THEN
|
||
UPDATE prj_deel
|
||
SET ins_deel_oppervlak = Oppervlak
|
||
WHERE ins_deel_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
END IF;
|
||
SELECT ins_alg_ruimte_type
|
||
, ins_alg_ruimte_key
|
||
INTO PlaatsDeel
|
||
, PlaatsKey
|
||
FROM prj_deel
|
||
WHERE ins_deel_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey
|
||
AND ins_deel_verwijder IS NULL;
|
||
LinkToRoom := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'LINKTOROOM');
|
||
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 LinkToRoom = 1
|
||
THEN
|
||
DoDeelUpdate := TRUE;
|
||
ELSE
|
||
SELECT prs_alg_ruimte_key
|
||
INTO RuimteKey
|
||
FROM prj_werkplek
|
||
WHERE prs_werkplek_key = PlaatsKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
IF Ruimtekey = LPNCondKey
|
||
THEN
|
||
DoDeelUpdate := FALSE;
|
||
ELSE
|
||
DoDeelUpdate := TRUE;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
IF DODeelUpdate
|
||
THEN
|
||
UPDATE prj_deel
|
||
SET ins_alg_ruimte_key = LPNCondKey
|
||
, ins_alg_ruimte_type = Plaatsdeel
|
||
, ins_deel_getekend = SYSDATE /* It's CAD */
|
||
WHERE ins_deel_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
END IF;
|
||
ELSIF LPNNAME = 'LPN_ALG_GEBOUW'
|
||
THEN
|
||
Oppervlak := cad.cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||
Omtrek := 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 := cad.cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||
Omtrek := cad.cad_SLNKSTRUCTreadVALREAL(Session_id, 'LENGTH');
|
||
UPDATE prj_ruimte
|
||
SET alg_ruimte_bruto_vloeropp = Oppervlak
|
||
, alg_ruimte_omtrek = Omtrek
|
||
, alg_ruimte_getekend = SYSDATE
|
||
WHERE alg_ruimte_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR' THEN
|
||
Oppervlak := cad.cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||
Omtrek := 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 := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
||
LPNCondKey := 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 := CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
IF NOT LPNCondKeyOK
|
||
THEN
|
||
Seqnr := 2;
|
||
LOOP
|
||
LPNCondKey := cad.cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
||
IF LPNCondKey IS NULL
|
||
THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
EXIT WHEN LPNCondKeyOK;
|
||
Seqnr := Seqnr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
IF LPNCondKeyOK
|
||
THEN
|
||
UPDATE prj_werkplek
|
||
SET prs_werkplek_getekend = SYSDATE /* IT's CAD */
|
||
WHERE prs_werkplek_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
COMMIT;
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1); /* ORACLE is klaar */
|
||
END cad_SLNKpostdraw;
|
||
|
||
/* prj.cad_slnkpostErase
|
||
**
|
||
*/
|
||
PROCEDURE cad_SLNKpostErase(Session_Id IN NUMBER) IS
|
||
LPNName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNProjectKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
SeqNr cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
CheckDatum VARCHAR2(10);
|
||
Datum DATE;
|
||
Eerste BOOLEAN;
|
||
WerkPlekFound BOOLEAN;
|
||
BEGIN
|
||
CheckDatum := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'DATE');
|
||
Datum := TO_DATE(CheckDatum, 'DD-MM-YYYY');
|
||
LPNName := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASDELO');
|
||
LPNKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYDELO');
|
||
LPNProjectKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'PROJECTKEY');
|
||
IF LPNName = 'LPN_INS_DEEL'
|
||
THEN
|
||
UPDATE prj_deel
|
||
SET ins_deel_verwijder = SYSDATE
|
||
, ins_deel_getekend = NULL /* It's CAD */
|
||
WHERE ins_deel_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
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 prj_v_aanwezigwerkplek
|
||
WHERE prs_alg_ruimte_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
BEGIN
|
||
Eerste := TRUE;
|
||
WerkPlekFound := FALSE;
|
||
FOR WerkplekRec IN RuimteWerkplek
|
||
LOOP
|
||
IF Eerste
|
||
THEN
|
||
WerkPlekFound := TRUE;
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASDELA',1,'LPN_PRS_WERKPLEK' ,1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYDELA' ,1,WerkplekRec.prs_werkplek_key,1);
|
||
Eerste := FALSE;
|
||
ELSE
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASDELA',1,'LPN_PRS_WERKPLEK' ,0);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYDELA' ,1,WerkplekRec.prs_werkplek_key,0);
|
||
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 prj_deel
|
||
WHERE ins_alg_ruimte_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey
|
||
AND ins_deel_verwijder IS NULL
|
||
AND ins_alg_ruimte_type = 'R'
|
||
OR ( ins_alg_ruimte_type = 'W'
|
||
AND ins_alg_ruimte_key IN (SELECT prs_werkplek_key
|
||
FROM prj_werkplek
|
||
WHERE prs_alg_ruimte_key = LPNKey
|
||
AND prs_werkplek_verwijder IS NULL
|
||
AND prj_project_key = LPNProjectKey));
|
||
BEGIN
|
||
Eerste := TRUE;
|
||
FOR DeelRec IN RuimteDeel
|
||
LOOP
|
||
IF Eerste AND NOT WerkPlekFound
|
||
THEN
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASDELA',1,'LPN_INS_DEEL' ,1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYDELA' ,1,DeelRec.ins_deel_key,1);
|
||
Eerste := FALSE;
|
||
ELSE
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASDELA',1,'LPN_INS_DEEL' ,0);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYDELA' ,1,DeelRec.ins_deel_key,0);
|
||
END IF;
|
||
END LOOP;
|
||
END;
|
||
END;
|
||
UPDATE prj_ruimte
|
||
SET alg_ruimte_verwijder = SYSDATE
|
||
, alg_ruimte_getekend = NULL /* It's CAD */
|
||
WHERE alg_ruimte_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
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 prj_deel
|
||
WHERE ins_alg_ruimte_type = 'W'
|
||
AND ins_deel_verwijder IS NULL
|
||
AND ins_alg_ruimte_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
BEGIN
|
||
Eerste := TRUE;
|
||
FOR DeelRec IN WerkplekDeel
|
||
LOOP
|
||
IF Eerste
|
||
THEN
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASDELA',1,'LPN_INS_DEEL' ,1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYDELA' ,1,DeelRec.ins_deel_key,1);
|
||
Eerste := FALSE;
|
||
ELSE
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASDELA',1,'LPN_INS_DEEL' ,0);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYDELA' ,1,DeelRec.ins_deel_key,0);
|
||
END IF;
|
||
END LOOP;
|
||
END;
|
||
END;
|
||
UPDATE prj_werkplek
|
||
SET prs_werkplek_verwijder = SYSDATE
|
||
, prs_werkplek_getekend = NULL /* It's CAD */
|
||
WHERE prs_werkplek_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
COMMIT;
|
||
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR'
|
||
THEN
|
||
DECLARE
|
||
CURSOR TerreinDeel IS
|
||
SELECT ins_deel_key
|
||
FROM prj_deel
|
||
WHERE ins_alg_ruimte_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey
|
||
AND ins_alg_ruimte_type = 'T'
|
||
AND ins_deel_verwijder IS NULL;
|
||
BEGIN
|
||
Eerste := TRUE;
|
||
FOR DeelRec IN TerreinDeel
|
||
LOOP
|
||
IF Eerste
|
||
THEN
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASDELA',1,'LPN_INS_DEEL' ,1);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYDELA' ,1,DeelRec.ins_deel_key,1);
|
||
Eerste := FALSE;
|
||
ELSE
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASDELA',1,'LPN_INS_DEEL' ,0);
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYDELA' ,1,DeelRec.ins_deel_key,0);
|
||
END IF;
|
||
END LOOP;
|
||
END;
|
||
UPDATE alg_terreinsector
|
||
SET alg_terreinsector_verwijder = SYSDATE
|
||
, alg_terreinsector_getekend = NULL /* It's CAD */
|
||
WHERE alg_terreinsector_key = LPNKey;
|
||
COMMIT;
|
||
END IF;
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END cad_SLNKpostErase;
|
||
|
||
/* prj.cad_slnkpostmodify
|
||
**
|
||
*/
|
||
PROCEDURE cad_SLNKpostModify(Session_Id IN NUMBER) IS
|
||
LPNCondName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNName cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNAliasLinkO cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNKeyLinkO cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNAliasMODO cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
LPNKeyMODO cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNCondKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNProjectKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
Seqnr cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
SrcDwg cad_slnkstruct.cad_slnkstruct_valstr%TYPE;
|
||
Dimensie ins_srtdeel.ins_srtdeel_dimensie%TYPE;
|
||
WerkplekNr prj_werkplek.prs_werkplek_volgnr%TYPE;
|
||
Omschrijving prj_werkplek.prs_werkplek_omschrijving%TYPE;
|
||
RuimteKey prj_werkplek.prs_alg_ruimte_key%TYPE;
|
||
PlaatsDeel prj_deel.ins_alg_ruimte_type%TYPE;
|
||
RuimteType VARCHAR2(1);
|
||
Oppervlak NUMBER(13,3);
|
||
Omtrek NUMBER(13,3);
|
||
Volume NUMBER(12,4);
|
||
Diepte NUMBER(8,2);
|
||
VeldKey NUMBER(10);
|
||
PlaatsKey NUMBER(10);
|
||
LinkToRoom NUMBER;
|
||
Datum DATE;
|
||
LPNCondKeyOK BOOLEAN:= FALSE;
|
||
DoDeelUpdate BOOLEAN;
|
||
BEGIN
|
||
LPNName := cad.cad_SLNKSTRUCTreadVALSTR(Session_id,'LPNALIASMODO');
|
||
LPNKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id,'LPNKEYMODO');
|
||
LPNProjectKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id,'PROJECTKEY');
|
||
LPNAliasMODO := cad.cad_SLNKSTRUCTreadVALSTR(Session_id,'LPNALIASMODO');
|
||
LPNKeyMODO := cad.cad_SLNKSTRUCTreadVALINT(Session_id,'LPNKEYMODO');
|
||
IF LPNName = 'LPN_INS_DEEL'
|
||
THEN
|
||
/* Bepaal nieuwe plek v/h deel */
|
||
LPNCondName := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
||
LPNCondKey := 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 := CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
IF NOT LPNCondKeyOK
|
||
THEN
|
||
Seqnr := 2;
|
||
LOOP
|
||
LPNCondKey := cad.cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
||
IF LPNCondKey IS NULL
|
||
THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
EXIT WHEN LPNCondKeyOK;
|
||
Seqnr := Seqnr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
IF LPNCondKeyOK
|
||
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 prj_deel
|
||
WHERE ins_deel_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey
|
||
AND ins_deel_verwijder IS NULL;
|
||
LinkToRoom := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'LINKTOROOM');
|
||
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 LinkToRoom = 1
|
||
THEN
|
||
DoDeelUpdate := TRUE;
|
||
ELSE
|
||
SELECT prs_alg_ruimte_key
|
||
INTO RuimteKey
|
||
FROM prj_werkplek
|
||
WHERE prs_werkplek_key = PlaatsKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
IF Ruimtekey = LPNCondKey
|
||
THEN
|
||
DoDeelUpdate := FALSE;
|
||
ELSE
|
||
DoDeelUpdate := TRUE;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
IF DODeelUpdate
|
||
THEN
|
||
UPDATE prj_deel
|
||
SET ins_alg_ruimte_key = LPNCondKey
|
||
, ins_alg_ruimte_type = RuimteType
|
||
, ins_deel_getekend = SYSDATE /* It's CAD */
|
||
WHERE ins_deel_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
LPNAliasLinkO := cad.cad_SLNKSTRUCTreadVALSTR(Session_Id, 'LPNALIASLINKO');
|
||
LPNKeyLinkO := 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 LPNAliasLinkO IS NOT NULL AND LPNKeyLinkO IS NOT NULL
|
||
THEN
|
||
LPNKeyLinkO := 1; /* NOT NULL */
|
||
SeqNr := 1;
|
||
WHILE (LPNKeyLinkO IS NOT NULL)
|
||
LOOP
|
||
LPNKeyLinkO := cad.cad_SLNKSTRUCTreadVALINT2(Session_Id, 'LPNKEYLINKO', SeqNr);
|
||
IF LPNKeyLinkO IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
INSERT INTO ins_deelkoppeling
|
||
( ins_deelkoppeling_van_key
|
||
, ins_deelkoppeling_naar_key)
|
||
VALUES(LPNKey
|
||
, LPNKeyLinkO);
|
||
COMMIT;
|
||
SeqNr := SeqNr+1;
|
||
EXCEPTION
|
||
WHEN DUP_VAL_ON_INDEX
|
||
THEN SeqNr := SeqNr+1; /* Record bestaat reeds -> ga gewoon verder met volgende */
|
||
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 := cad.cad_SLNKSTRUCTreadVALREAL(Session_id, 'LENGTH');
|
||
IF Omtrek IS NOT NULL AND Dimensie = 1
|
||
THEN
|
||
UPDATE prj_deel
|
||
SET ins_deel_omtrek = Omtrek
|
||
WHERE ins_deel_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
END IF;
|
||
/* Oppervlak bijwerken */
|
||
Oppervlak := cad.cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||
IF Oppervlak IS NOT NULL AND Dimensie = 2
|
||
THEN
|
||
UPDATE prj_deel
|
||
SET ins_deel_oppervlak = Oppervlak
|
||
WHERE ins_deel_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
END IF;
|
||
ELSIF LPNName = 'LPN_ALG_GEBOUW'
|
||
THEN
|
||
Oppervlak := cad.cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||
Omtrek := cad.cad_SLNKSTRUCTreadVALREAL(Session_id, 'LENGTH');
|
||
UPDATE alg_gebouw
|
||
SET alg_gebouw_bruto_vloeropp = Oppervlak
|
||
, alg_gebouw_omtrek = Omtrek
|
||
WHERE alg_gebouw_key = LPNKey;
|
||
ELSIF LPNName = 'LPN_ALG_RUIMTE'
|
||
THEN
|
||
Oppervlak := cad.cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||
Omtrek := cad.cad_SLNKSTRUCTreadVALREAL(Session_id, 'LENGTH');
|
||
UPDATE prj_ruimte
|
||
SET alg_ruimte_bruto_vloeropp = Oppervlak
|
||
, alg_ruimte_omtrek = Omtrek
|
||
WHERE alg_ruimte_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
ELSIF LPNName = 'LPN_PRS_WERKPLEK'
|
||
THEN
|
||
/* Bepaal de nieuwe ruimte v/d werkplek */
|
||
LPNCondName := cad.cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
||
LPNCondKey := 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 := CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
IF NOT LPNCondKeyOK
|
||
THEN
|
||
Seqnr := 2;
|
||
LOOP
|
||
LPNCondKey := cad.cad_SLNKSTRUCTreadVALINT2(Session_id, 'LPNKEYCONDO', Seqnr);
|
||
IF LPNCondKey IS NULL
|
||
THEN
|
||
EXIT;
|
||
END IF;
|
||
LPNCondKeyOK := CheckLPNCondKey(LPNCondName, LPNCondKey, LPNProjectKey);
|
||
EXIT WHEN LPNCondKeyOK;
|
||
Seqnr := Seqnr + 1;
|
||
END LOOP;
|
||
END IF;
|
||
IF LPNCondKeyOK
|
||
THEN
|
||
Omschrijving := prj.prj_f_fac_get_description('LPN_PRS_WERKPLEK', LPNCondKey, LPNProjectKey, NULL, NULL);
|
||
WerkplekNr := to_number(substr(Omschrijving,instr(Omschrijving,'-',1)+1));
|
||
BEGIN
|
||
UPDATE prj_werkplek
|
||
SET prs_alg_ruimte_key = LPNCondKey
|
||
, prs_werkplek_volgnr = WerkplekNr
|
||
, prs_werkplek_omschrijving = Omschrijving
|
||
, prs_werkplek_getekend = SYSDATE /* IT's CAD */
|
||
WHERE prs_werkplek_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
EXCEPTION
|
||
WHEN DUP_VAL_ON_INDEX
|
||
THEN
|
||
Omschrijving := prj.prj_f_fac_get_description('LPN_PRS_WERKPLEK', LPNCondKey, LPNProjectKey, NULL, NULL);
|
||
WerkplekNr := to_number(substr(Omschrijving,instr(Omschrijving,'-',1)+1));
|
||
UPDATE prj_werkplek
|
||
SET prs_werkplek_volgnr = WerkplekNr
|
||
, prs_werkplek_omschrijving = Omschrijving
|
||
, prs_alg_ruimte_key = LPNCondKey
|
||
, prs_werkplek_getekend = SYSDATE /* It's CAD */
|
||
WHERE prs_werkplek_key = LPNKey
|
||
AND prj_project_key = LPNProjectKey;
|
||
END;
|
||
END IF;
|
||
END IF;
|
||
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR'
|
||
THEN
|
||
Oppervlak := cad.cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||
Omtrek := cad.cad_SLNKSTRUCTreadVALREAL(Session_id, 'LENGTH');
|
||
UPDATE alg_terreinsector
|
||
SET alg_terreinsector_oppervlak = Oppervlak
|
||
, alg_terreinsector_omtrek = Omtrek
|
||
WHERE alg_terreinsector_key = LPNKey;
|
||
END IF;
|
||
COMMIT;
|
||
srcdwg := prj.cad_GetSrcDwgOfEntity(Session_Id,LPNAliasMODO,LPNKeyMODO);
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SRCDWG', 1, srcdwg , 1);
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END cad_SLNKpostModify;
|
||
|
||
/* prj.cad_SLNKDelenbijWerkplek
|
||
**
|
||
** Voeg delen toe aan CAD_SLNKSTRUCT.
|
||
*/
|
||
PROCEDURE cad_SLNKDelenbijWerkplek(Session_Id IN NUMBER) IS
|
||
LPNKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
LPNProjectKey cad_slnkstruct.cad_slnkstruct_valint%TYPE;
|
||
Eerste BOOLEAN;
|
||
CURSOR c_werkplekdelen IS
|
||
SELECT ins_deel_key
|
||
FROM prj_deel
|
||
WHERE ins_alg_ruimte_key = LPNKey
|
||
AND ins_alg_ruimte_type = 'W'
|
||
AND prj_project_key = LPNProjectKey
|
||
AND ins_deel_verwijder IS NULL;
|
||
BEGIN
|
||
LPNKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'INFOI');
|
||
LPNProjectKey := cad.cad_SLNKSTRUCTreadVALINT(Session_id, 'PROJECTKEY');
|
||
BEGIN
|
||
DECLARE
|
||
BEGIN
|
||
Eerste := TRUE;
|
||
FOR DelenRec IN c_werkplekdelen
|
||
LOOP
|
||
IF Eerste
|
||
THEN
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id, 'INFOI', 1, DelenRec.ins_deel_key, 1);
|
||
Eerste := FALSE;
|
||
ELSE
|
||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id, 'INFOI', 1, DelenRec.ins_deel_key, 0);
|
||
END IF;
|
||
END LOOP;
|
||
END;
|
||
END;
|
||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'AUTOCAD', 1);
|
||
END cad_SLNKDelenbijWerkplek;
|
||
|
||
/* prj.verwerk_log_clear
|
||
**
|
||
** Maak de tabel voor verwerkings log leeg.
|
||
*/
|
||
PROCEDURE verwerk_log_clear(sessionID IN NUMBER
|
||
,projectKEY IN NUMBER) IS
|
||
BEGIN
|
||
BEGIN
|
||
DELETE
|
||
FROM prj_verwerk_log
|
||
WHERE prj_project_key = projectKEY
|
||
AND prj_session_id = sessionID;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
NULL;
|
||
END;
|
||
COMMIT;
|
||
END verwerk_log_clear;
|
||
|
||
/* prj.verwerk_log
|
||
**
|
||
** Schrijf een logmelding in de verwerkings tabel.
|
||
*/
|
||
PROCEDURE verwerk_log(logmelding IN VARCHAR
|
||
,sessionID IN NUMBER
|
||
,projectKEY IN NUMBER) IS
|
||
BEGIN
|
||
BEGIN
|
||
INSERT INTO prj_verwerk_log
|
||
( prj_project_key
|
||
, prj_log
|
||
, prj_session_id)
|
||
VALUES(projectKEY
|
||
, substr(logmelding,1,128)
|
||
, sessionID);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
NULL;
|
||
END;
|
||
COMMIT;
|
||
END verwerk_log;
|
||
|
||
/* prj.verwerk_project_description
|
||
**
|
||
** Bepaal een nieuwe omschrijving of volgnummer van een element als die in de projectsituatie
|
||
** al voorkomt in de werkelijke situatie.
|
||
*/
|
||
FUNCTION verwerk_project_description(element_type IN VARCHAR2
|
||
,element_key IN NUMBER
|
||
,element_omschrijving IN VARCHAR2
|
||
,project_key IN NUMBER
|
||
,prefix_key IN NUMBER
|
||
,session_id IN NUMBER
|
||
) RETURN VARCHAR2 IS
|
||
omschrijving VARCHAR2(30);
|
||
SrtDeelCode VARCHAR2(30);
|
||
dummy VARCHAR2(1);
|
||
ruimte_code VARCHAR2(20);
|
||
ruimte_nr VARCHAR2(10);
|
||
melding prj_verwerk_log.prj_log%TYPE;
|
||
BEGIN
|
||
IF element_type = 'RUIMTE'
|
||
THEN
|
||
/* Zoek op de geselecteerde verdieping of het huidige ruimtenummer al voor komt. */
|
||
BEGIN
|
||
SELECT G.alg_gebouw_code ||' - '|| to_char(V.alg_verdieping_volgnr) ||' - '
|
||
INTO ruimte_code
|
||
FROM alg_gebouw G
|
||
, alg_verdieping V
|
||
, alg_ruimte R
|
||
WHERE G.alg_gebouw_key = V.alg_gebouw_key
|
||
AND V.alg_verdieping_key = R.alg_verdieping_key
|
||
AND R.alg_verdieping_key = element_key
|
||
AND R.alg_ruimte_nr = element_omschrijving
|
||
AND R.alg_ruimte_verwijder IS NULL;
|
||
/* Deze ruimtenummer komt al voor, dus een nieuw nummer bepalen. */
|
||
omschrijving := fac_f_fac_get_description('LPN_ALG_RUIMTE'
|
||
,element_key
|
||
,NULL
|
||
,NULL);
|
||
SELECT SUBSTR(REPLACE(REPLACE(fac_message_text,'%1%',ruimte_code || element_omschrijving)
|
||
,'%2%',ruimte_code || omschrijving),1,128)
|
||
INTO melding
|
||
FROM fac_message
|
||
WHERE fac_message_code='PRJ_M063';
|
||
prj.verwerk_log(melding,session_id,project_key);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN /* Ruimtenummer komt nog niet voor in de echte situatie. */
|
||
omschrijving := element_omschrijving;
|
||
END;
|
||
ELSIF element_type = 'WERKPLEK'
|
||
THEN
|
||
/* Zoek in de geselecteerde ruimte of het huidige werkpleknummer al voor komt. */
|
||
SELECT alg_ruimte_nr
|
||
INTO ruimte_nr
|
||
FROM alg_ruimte
|
||
WHERE alg_ruimte_key = element_key;
|
||
BEGIN
|
||
SELECT G.alg_gebouw_code ||' - '|| to_char(V.alg_verdieping_volgnr) ||' - '
|
||
INTO ruimte_code
|
||
FROM prs_werkplek W
|
||
, alg_ruimte R
|
||
, alg_verdieping V
|
||
, alg_gebouw G
|
||
WHERE W.prs_alg_ruimte_key = R.alg_ruimte_key
|
||
AND R.alg_verdieping_key = V.alg_verdieping_key
|
||
AND V.alg_gebouw_key = G.alg_gebouw_key
|
||
AND W.prs_werkplek_volgnr = element_omschrijving
|
||
AND W.prs_alg_ruimte_key = element_key
|
||
AND W.prs_werkplek_verwijder IS NULL;
|
||
/* Deze werkpleknummer komt al voor, dus een nieuw nummer bepalen. */
|
||
omschrijving := fac_f_fac_get_description('LPN_PRS_WERKPLEK'
|
||
,element_key
|
||
,NULL
|
||
,NULL);
|
||
SELECT SUBSTR(REPLACE(REPLACE(fac_message_text,'%1%',ruimte_code || ruimte_nr ||' - '|| element_omschrijving)
|
||
,'%2%',ruimte_code || omschrijving),1,128)
|
||
INTO melding
|
||
FROM fac_message
|
||
WHERE fac_message_code='PRJ_M064';
|
||
prj.verwerk_log(melding,session_id,project_key);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN /* Werkpleknummer komt nog niet voor in de echte situatie. */
|
||
omschrijving := substr(ruimte_nr ||' - '|| element_omschrijving,1,30);
|
||
END;
|
||
ELSIF element_type = 'DEEL'
|
||
THEN
|
||
/* Zoek of de omschrijving van het huidige object al voor komt. */
|
||
BEGIN
|
||
SELECT 'x'
|
||
INTO dummy
|
||
FROM ins_deel
|
||
WHERE ins_deel_omschrijving = element_omschrijving
|
||
AND ins_alg_locatie_key = element_key
|
||
AND ins_srtdeel_key = prefix_key
|
||
AND ins_deel_verwijder IS NULL;
|
||
/* Deze omschrijving komt al voor, dus een nieuw nummer bepalen. */
|
||
BEGIN
|
||
SELECT RTRIM(ins_srtdeel_code_upper)
|
||
INTO SrtDeelCode
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_key = prefix_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN SrtDeelCode := null;
|
||
END;
|
||
omschrijving := fac_f_fac_get_description('LPN_INS_DEEL'
|
||
,element_key
|
||
,SrtDeelCode
|
||
,prefix_key);
|
||
SELECT REPLACE(REPLACE(fac_message_text,'%1%',element_omschrijving)
|
||
,'%2%',omschrijving)
|
||
INTO melding
|
||
FROM fac_message
|
||
WHERE fac_message_code='PRJ_M065';
|
||
prj.verwerk_log(melding,session_id,project_key);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN /* Omschrijving komt nog niet voor in de echte situatie. */
|
||
omschrijving := element_omschrijving;
|
||
END;
|
||
END IF;
|
||
RETURN omschrijving;
|
||
END verwerk_project_description;
|
||
|
||
/* prj.verwerk_project_hersteld
|
||
**
|
||
** Maak de verwijdering van een element in de werkelijke situatie weer ongedaan als deze in de
|
||
** projectsituatie niet is verwijderd. Hoewel er fysiek een nieuw element zal zijn geplaatst, is
|
||
** deze ter vervanging van een bestaande gekomen.
|
||
** Doe dit in de volgorde object, werkplek, ruimte.
|
||
*/
|
||
PROCEDURE verwerk_project_hersteld(p_session IN NUMBER
|
||
,p_projectkey IN NUMBER) IS
|
||
CURSOR c_ruimte(p_project IN NUMBER) IS
|
||
SELECT p.alg_ruimte_key
|
||
, p.alg_ruimte_nr
|
||
, p.alg_verdieping_key
|
||
, p.alg_ruimte_bruto_vloeropp
|
||
, p.alg_ruimte_omtrek
|
||
, p.alg_ruimte_getekend
|
||
, p.alg_ruimte_verwijder
|
||
FROM prj_v_prj_ruimte_herstel c
|
||
, prj_ruimte p
|
||
WHERE c.alg_ruimte_key = p.alg_ruimte_key
|
||
AND c.prj_project_key = p.prj_project_key
|
||
AND p.prj_project_key = p_project
|
||
AND p.alg_ruimte_key <> 0; /* virtueel magazijn */
|
||
CURSOR c_werkplek(p_project IN NUMBER) IS
|
||
SELECT p.prs_werkplek_key
|
||
, p.prs_alg_ruimte_key
|
||
, p.prs_werkplek_volgnr
|
||
, p.prs_werkplek_getekend
|
||
, p.prs_werkplek_verwijder
|
||
, p.prs_werkplek_omschrijving
|
||
FROM prj_v_prj_werkplek_herstel c
|
||
, prj_werkplek p
|
||
WHERE c.prs_werkplek_key = p.prs_werkplek_key
|
||
AND c.prj_project_key = p.prj_project_key
|
||
AND p.prj_project_key = p_project
|
||
AND p.prs_alg_ruimte_key <> 0; /* virtueel magazijn */
|
||
CURSOR c_object(p_project IN NUMBER) IS
|
||
SELECT p.ins_deel_key
|
||
, p.ins_srtdeel_key
|
||
, p.ins_alg_ruimte_key
|
||
, p.ins_alg_ruimte_type
|
||
, p.ins_alg_locatie_key
|
||
, p.ins_discipline_key
|
||
, p.ins_deel_omschrijving
|
||
, p.ins_deel_parent_key
|
||
, p.ins_deel_oppervlak
|
||
, p.ins_deel_omtrek
|
||
, p.ins_deel_getekend
|
||
, p.ins_deel_verwijder
|
||
FROM prj_v_prj_deel_herstel c
|
||
, prj_deel p
|
||
WHERE c.ins_deel_key = p.ins_deel_key
|
||
AND c.prj_project_key = p.prj_project_key
|
||
AND p.prj_project_key = p_project
|
||
AND EXISTS (SELECT ''
|
||
FROM prj_werkplek
|
||
WHERE prs_alg_ruimte_key <> 0
|
||
AND prs_werkplek_key = p.ins_alg_ruimte_key
|
||
AND p.ins_alg_ruimte_type = 'W'
|
||
UNION
|
||
SELECT ''
|
||
FROM prj_ruimte
|
||
WHERE alg_ruimte_key <> 0
|
||
AND alg_ruimte_key = p.ins_alg_ruimte_key
|
||
AND p.ins_alg_ruimte_type = 'R'); /* virtueel magazijn */
|
||
dummy VARCHAR2(1);
|
||
alg_verwijder DATE;
|
||
prj_verwijder DATE;
|
||
omschrijving VARCHAR2(30);
|
||
ruimtenr alg_ruimte.alg_ruimte_nr%TYPE;
|
||
werkpleknr prs_werkplek.prs_werkplek_volgnr%TYPE;
|
||
SrtDeelCode ins_srtdeel.ins_srtdeel_code%TYPE;
|
||
aantal_hersteld NUMBER(10);
|
||
BEGIN
|
||
/*
|
||
** OBJECTEN
|
||
*/
|
||
aantal_hersteld := 0;
|
||
FOR v_object IN c_object(p_projectkey)
|
||
LOOP
|
||
omschrijving := verwerk_project_description('DEEL'
|
||
,v_object.ins_alg_locatie_key
|
||
,v_object.ins_deel_omschrijving
|
||
,p_projectkey
|
||
,v_object.ins_srtdeel_key
|
||
,p_session);
|
||
UPDATE ins_deel
|
||
SET ins_srtdeel_key = v_object.ins_srtdeel_key
|
||
, ins_alg_ruimte_key = v_object.ins_alg_ruimte_key
|
||
, ins_alg_ruimte_type = v_object.ins_alg_ruimte_type
|
||
, ins_alg_locatie_key = v_object.ins_alg_locatie_key
|
||
, ins_discipline_key = v_object.ins_discipline_key
|
||
, ins_deel_omschrijving = omschrijving
|
||
, ins_deel_parent_key = v_object.ins_deel_parent_key
|
||
, ins_deel_oppervlak = v_object.ins_deel_oppervlak
|
||
, ins_deel_omtrek = v_object.ins_deel_omtrek
|
||
, ins_deel_getekend = v_object.ins_deel_getekend
|
||
, ins_deel_verwijder = v_object.ins_deel_verwijder
|
||
WHERE ins_deel_key = v_object.ins_deel_key;
|
||
aantal_hersteld := aantal_hersteld + 1;
|
||
END LOOP;
|
||
COMMIT;
|
||
/*
|
||
** WERKPLEKKEN
|
||
*/
|
||
aantal_hersteld := 0;
|
||
FOR v_werkplek IN c_werkplek(p_projectkey)
|
||
LOOP
|
||
omschrijving := verwerk_project_description('WERKPLEK'
|
||
,v_werkplek.prs_alg_ruimte_key
|
||
,v_werkplek.prs_werkplek_volgnr
|
||
,p_projectkey
|
||
,NULL
|
||
,p_session);
|
||
werkpleknr := to_number(substr(Omschrijving,instr(Omschrijving,'-',1)+1));
|
||
UPDATE prs_werkplek
|
||
SET prs_alg_ruimte_key = v_werkplek.prs_alg_ruimte_key
|
||
, prs_werkplek_volgnr = werkpleknr
|
||
, prs_werkplek_omschrijving = omschrijving
|
||
, prs_werkplek_getekend = v_werkplek.prs_werkplek_getekend
|
||
, prs_werkplek_verwijder = v_werkplek.prs_werkplek_verwijder
|
||
WHERE prs_werkplek_key = v_werkplek.prs_werkplek_key;
|
||
aantal_hersteld := aantal_hersteld + 1;
|
||
END LOOP;
|
||
COMMIT;
|
||
/*
|
||
** RUIMTEN
|
||
*/
|
||
aantal_hersteld := 0;
|
||
FOR v_ruimte IN c_ruimte(p_projectkey)
|
||
LOOP
|
||
omschrijving := verwerk_project_description('RUIMTE'
|
||
,v_ruimte.alg_verdieping_key
|
||
,v_ruimte.alg_ruimte_nr
|
||
,p_projectkey
|
||
,NULL
|
||
,p_session);
|
||
UPDATE alg_ruimte
|
||
SET alg_ruimte_nr = omschrijving
|
||
, alg_verdieping_key = v_ruimte.alg_verdieping_key
|
||
, alg_ruimte_bruto_vloeropp = v_ruimte.alg_ruimte_bruto_vloeropp
|
||
, alg_ruimte_omtrek = v_ruimte.alg_ruimte_omtrek
|
||
, alg_ruimte_getekend = v_ruimte.alg_ruimte_getekend
|
||
, alg_ruimte_verwijder = v_ruimte.alg_ruimte_verwijder
|
||
WHERE alg_ruimte_key = v_ruimte.alg_ruimte_key;
|
||
aantal_hersteld := aantal_hersteld + 1;
|
||
END LOOP;
|
||
COMMIT;
|
||
END verwerk_project_hersteld;
|
||
|
||
/* prj.verwerk_project_nieuw
|
||
**
|
||
** Verwerk van het opgegeven projectnummer alle nieuwe elementen in de bestaande situatie.
|
||
** Doe dit in de volgorde ruimte, werkplek, object zodat eventuele koppelingen al kunnen
|
||
** worden gelegd.
|
||
*/
|
||
PROCEDURE verwerk_project_nieuw(p_session IN NUMBER
|
||
,p_projectkey IN NUMBER) IS
|
||
CURSOR c_ruimte(p_project IN NUMBER) IS
|
||
SELECT p.alg_ruimte_key
|
||
, p.alg_ruimte_nr
|
||
, p.alg_verdieping_key
|
||
, p.alg_ruimte_bruto_vloeropp
|
||
, p.alg_ruimte_omtrek
|
||
, p.alg_ruimte_getekend
|
||
, p.alg_ruimte_verwijder
|
||
FROM prj_v_prj_ruimte_nieuw c
|
||
, prj_ruimte p
|
||
WHERE c.alg_ruimte_key = p.alg_ruimte_key
|
||
AND c.prj_project_key = p.prj_project_key
|
||
AND p.prj_project_key = p_project
|
||
AND p.alg_ruimte_key <> 0; /* virtueel magazijn */
|
||
CURSOR c_werkplek(p_project IN NUMBER) IS
|
||
SELECT p.prs_werkplek_key
|
||
, p.prs_alg_ruimte_key
|
||
, p.prs_werkplek_volgnr
|
||
, p.prs_werkplek_getekend
|
||
, p.prs_werkplek_verwijder
|
||
, p.prs_werkplek_omschrijving
|
||
FROM prj_v_prj_werkplek_nieuw c
|
||
, prj_werkplek p
|
||
WHERE c.prs_werkplek_key = p.prs_werkplek_key
|
||
AND c.prj_project_key = p.prj_project_key
|
||
AND p.prj_project_key = p_project
|
||
AND p.prs_alg_ruimte_key <> 0; /* virtueel magazijn */
|
||
CURSOR c_object(p_project IN NUMBER) IS
|
||
SELECT p.ins_deel_key
|
||
, p.ins_srtdeel_key
|
||
, p.ins_alg_ruimte_key
|
||
, p.ins_alg_ruimte_type
|
||
, p.ins_alg_locatie_key
|
||
, p.ins_discipline_key
|
||
, p.ins_deel_omschrijving
|
||
, p.ins_deel_parent_key
|
||
, p.ins_deel_oppervlak
|
||
, p.ins_deel_omtrek
|
||
, p.ins_deel_getekend
|
||
, p.ins_deel_verwijder
|
||
FROM prj_v_prj_deel_nieuw c
|
||
, prj_deel p
|
||
WHERE c.ins_deel_key = p.ins_deel_key
|
||
AND c.prj_project_key = p.prj_project_key
|
||
AND p.prj_project_key = p_project
|
||
AND EXISTS (SELECT ''
|
||
FROM prj_werkplek
|
||
WHERE prs_alg_ruimte_key <> 0
|
||
AND prs_werkplek_key = p.ins_alg_ruimte_key
|
||
AND p.ins_alg_ruimte_type = 'W'
|
||
UNION
|
||
SELECT ''
|
||
FROM prj_ruimte
|
||
WHERE alg_ruimte_key <> 0
|
||
AND alg_ruimte_key = p.ins_alg_ruimte_key
|
||
AND p.ins_alg_ruimte_type = 'R'); /* virtueel magazijn */
|
||
omschrijving VARCHAR2(30);
|
||
werkpleknr prs_werkplek.prs_werkplek_volgnr%TYPE;
|
||
ruimtenr alg_ruimte.alg_ruimte_nr%TYPE;
|
||
aantal_toegevoegd NUMBER(10);
|
||
BEGIN
|
||
/*
|
||
** RUIMTEN
|
||
*/
|
||
aantal_toegevoegd := 0;
|
||
FOR v_ruimte IN c_ruimte(p_projectkey)
|
||
LOOP
|
||
omschrijving := verwerk_project_description('RUIMTE'
|
||
,v_ruimte.alg_verdieping_key
|
||
,v_ruimte.alg_ruimte_nr
|
||
,p_projectkey
|
||
,NULL
|
||
,p_session);
|
||
INSERT INTO alg_ruimte
|
||
( alg_ruimte_key
|
||
, alg_ruimte_nr
|
||
, alg_verdieping_key
|
||
, alg_ruimte_bruto_vloeropp
|
||
, alg_ruimte_omtrek
|
||
, alg_ruimte_getekend
|
||
, alg_ruimte_verwijder)
|
||
VALUES(v_ruimte.alg_ruimte_key
|
||
, omschrijving
|
||
, v_ruimte.alg_verdieping_key
|
||
, v_ruimte.alg_ruimte_bruto_vloeropp
|
||
, v_ruimte.alg_ruimte_omtrek
|
||
, v_ruimte.alg_ruimte_getekend
|
||
, v_ruimte.alg_ruimte_verwijder);
|
||
aantal_toegevoegd := aantal_toegevoegd + 1;
|
||
END LOOP;
|
||
COMMIT;
|
||
/*
|
||
** WERKPLEKKEN
|
||
*/
|
||
aantal_toegevoegd := 0;
|
||
FOR v_werkplek IN c_werkplek(p_projectkey)
|
||
LOOP
|
||
omschrijving := verwerk_project_description('WERKPLEK'
|
||
,v_werkplek.prs_alg_ruimte_key
|
||
,v_werkplek.prs_werkplek_volgnr
|
||
,p_projectkey
|
||
,NULL
|
||
,p_session);
|
||
werkpleknr := to_number(substr(Omschrijving,instr(Omschrijving,'-',1)+1));
|
||
INSERT INTO prs_werkplek
|
||
( prs_werkplek_key
|
||
, prs_werkplek_module
|
||
, prs_alg_ruimte_key
|
||
, prs_werkplek_volgnr
|
||
, prs_werkplek_getekend
|
||
, prs_werkplek_verwijder
|
||
, prs_werkplek_omschrijving
|
||
, prs_werkplek_aanmaak)
|
||
VALUES(v_werkplek.prs_werkplek_key
|
||
, 'PRR'
|
||
, v_werkplek.prs_alg_ruimte_key
|
||
, werkpleknr
|
||
, v_werkplek.prs_werkplek_getekend
|
||
, v_werkplek.prs_werkplek_verwijder
|
||
, omschrijving
|
||
, v_werkplek.prs_werkplek_getekend);
|
||
aantal_toegevoegd := aantal_toegevoegd + 1;
|
||
END LOOP;
|
||
COMMIT;
|
||
/*
|
||
** OBJECTEN
|
||
*/
|
||
aantal_toegevoegd := 0;
|
||
FOR v_object IN c_object(p_projectkey)
|
||
LOOP
|
||
omschrijving := verwerk_project_description('DEEL'
|
||
,v_object.ins_alg_locatie_key
|
||
,v_object.ins_deel_omschrijving
|
||
,p_projectkey
|
||
,v_object.ins_srtdeel_key
|
||
,p_session);
|
||
INSERT INTO ins_deel
|
||
( ins_deel_key
|
||
, ins_srtdeel_key
|
||
, ins_alg_ruimte_key
|
||
, ins_alg_ruimte_type
|
||
, ins_alg_locatie_key
|
||
, ins_discipline_key
|
||
, ins_deel_omschrijving
|
||
, ins_deel_parent_key
|
||
, ins_deel_oppervlak
|
||
, ins_deel_omtrek
|
||
, ins_deel_getekend
|
||
, ins_deel_verwijder)
|
||
VALUES(v_object.ins_deel_key
|
||
, v_object.ins_srtdeel_key
|
||
, v_object.ins_alg_ruimte_key
|
||
, v_object.ins_alg_ruimte_type
|
||
, v_object.ins_alg_locatie_key
|
||
, v_object.ins_discipline_key
|
||
, omschrijving
|
||
, v_object.ins_deel_parent_key
|
||
, v_object.ins_deel_oppervlak
|
||
, v_object.ins_deel_omtrek
|
||
, v_object.ins_deel_getekend
|
||
, v_object.ins_deel_verwijder);
|
||
aantal_toegevoegd := aantal_toegevoegd + 1;
|
||
END LOOP;
|
||
COMMIT;
|
||
END verwerk_project_nieuw;
|
||
|
||
/* prj.verwerk_project_gewijzigd
|
||
**
|
||
** Verwerk de wijzigingen van bestaande elementen in de huidige situatie.
|
||
** Doe dit in de volgorde object, werkplek, ruimte.
|
||
*/
|
||
PROCEDURE verwerk_project_gewijzigd(p_session IN NUMBER
|
||
,p_projectkey IN NUMBER) IS
|
||
CURSOR c_ruimte(p_project IN NUMBER) IS
|
||
SELECT p.alg_ruimte_key
|
||
, p.alg_ruimte_nr
|
||
, p.alg_verdieping_key
|
||
, p.alg_ruimte_bruto_vloeropp
|
||
, p.alg_ruimte_omtrek
|
||
, p.alg_ruimte_getekend
|
||
, p.alg_ruimte_verwijder
|
||
FROM prj_v_ruimte_gewijzigd c
|
||
, prj_ruimte p
|
||
WHERE c.alg_ruimte_key = p.alg_ruimte_key
|
||
AND c.prj_project_key = p.prj_project_key
|
||
AND p.prj_project_key = p_project
|
||
AND p.alg_ruimte_key <> 0; /* virtueel magazijn */
|
||
CURSOR c_werkplek(p_project IN NUMBER) IS
|
||
SELECT p.prs_werkplek_key
|
||
, p.prs_alg_ruimte_key
|
||
, p.prs_werkplek_volgnr
|
||
, p.prs_werkplek_getekend
|
||
, p.prs_werkplek_verwijder
|
||
, p.prs_werkplek_omschrijving
|
||
FROM prj_v_werkplek_verplaatst c
|
||
, prj_werkplek p
|
||
WHERE c.prs_werkplek_key = p.prs_werkplek_key
|
||
AND c.prj_project_key = p.prj_project_key
|
||
AND p.prj_project_key = p_project
|
||
AND p.prs_alg_ruimte_key <> 0; /* virtueel magazijn */
|
||
CURSOR c_object(p_project IN NUMBER) IS
|
||
SELECT p.ins_deel_key
|
||
, p.ins_srtdeel_key
|
||
, p.ins_alg_ruimte_key
|
||
, p.ins_alg_ruimte_type
|
||
, p.ins_alg_locatie_key
|
||
, p.ins_discipline_key
|
||
, p.ins_deel_omschrijving
|
||
, p.ins_deel_parent_key
|
||
, p.ins_deel_oppervlak
|
||
, p.ins_deel_omtrek
|
||
, p.ins_deel_getekend
|
||
, p.ins_deel_verwijder
|
||
FROM prj_v_deel_verplaatst c
|
||
, prj_deel p
|
||
WHERE c.ins_deel_key = p.ins_deel_key
|
||
AND c.prj_project_key = p.prj_project_key
|
||
AND p.prj_project_key = p_project
|
||
AND EXISTS (SELECT ''
|
||
FROM prj_werkplek
|
||
WHERE prs_alg_ruimte_key <> 0
|
||
AND prs_werkplek_key = p.ins_alg_ruimte_key
|
||
AND p.ins_alg_ruimte_type = 'W'
|
||
UNION
|
||
SELECT ''
|
||
FROM prj_ruimte
|
||
WHERE alg_ruimte_key <> 0
|
||
AND alg_ruimte_key = p.ins_alg_ruimte_key
|
||
AND p.ins_alg_ruimte_type = 'R'); /* virtueel magazijn */
|
||
dummy VARCHAR2(1);
|
||
omschrijving VARCHAR2(30);
|
||
ruimtenr alg_ruimte.alg_ruimte_nr%TYPE;
|
||
werkpleknr prs_werkplek.prs_werkplek_volgnr%TYPE;
|
||
SrtDeelCode ins_srtdeel.ins_srtdeel_code%TYPE;
|
||
aantal_gewijzigd NUMBER(10);
|
||
BEGIN
|
||
/*
|
||
** De OBJECTEN bestaat na uitvoering van het project nog steeds, maar de
|
||
** gegevens kunnen gewijzigd zijn.
|
||
*/
|
||
aantal_gewijzigd := 0;
|
||
FOR v_object IN c_object(p_projectkey)
|
||
LOOP
|
||
UPDATE ins_deel
|
||
SET ins_srtdeel_key = v_object.ins_srtdeel_key
|
||
, ins_alg_ruimte_key = v_object.ins_alg_ruimte_key
|
||
, ins_alg_ruimte_type = v_object.ins_alg_ruimte_type
|
||
, ins_alg_locatie_key = v_object.ins_alg_locatie_key
|
||
, ins_discipline_key = v_object.ins_discipline_key
|
||
, ins_deel_omschrijving = v_object.ins_deel_omschrijving
|
||
, ins_deel_parent_key = v_object.ins_deel_parent_key
|
||
, ins_deel_oppervlak = v_object.ins_deel_oppervlak
|
||
, ins_deel_omtrek = v_object.ins_deel_omtrek
|
||
, ins_deel_getekend = v_object.ins_deel_getekend
|
||
WHERE ins_deel_key = v_object.ins_deel_key;
|
||
aantal_gewijzigd := aantal_gewijzigd + 1;
|
||
END LOOP;
|
||
COMMIT;
|
||
/*
|
||
** De WERKPLEKKEN bestaat na uitvoering van het project nog steeds, maar de
|
||
** gegevens kunnen gewijzigd zijn.
|
||
*/
|
||
aantal_gewijzigd := 0;
|
||
FOR v_werkplek IN c_werkplek(p_projectkey)
|
||
LOOP
|
||
omschrijving := verwerk_project_description('WERKPLEK'
|
||
,v_werkplek.prs_alg_ruimte_key
|
||
,v_werkplek.prs_werkplek_volgnr
|
||
,p_projectkey
|
||
,NULL
|
||
,p_session);
|
||
werkpleknr := to_number(substr(Omschrijving,instr(Omschrijving,'-',1)+1));
|
||
UPDATE prs_werkplek
|
||
SET prs_alg_ruimte_key = v_werkplek.prs_alg_ruimte_key
|
||
, prs_werkplek_volgnr = werkpleknr
|
||
, prs_werkplek_omschrijving = omschrijving
|
||
, prs_werkplek_getekend = v_werkplek.prs_werkplek_getekend
|
||
WHERE prs_werkplek_key = v_werkplek.prs_werkplek_key;
|
||
aantal_gewijzigd := aantal_gewijzigd + 1;
|
||
END LOOP;
|
||
COMMIT;
|
||
/*
|
||
** De RUIMTEN bestaat na uitvoering van het project nog steeds, maar de
|
||
** gegevens kunnen gewijzigd zijn.
|
||
*/
|
||
aantal_gewijzigd := 0;
|
||
FOR v_ruimte IN c_ruimte(p_projectkey)
|
||
LOOP
|
||
UPDATE alg_ruimte
|
||
SET alg_ruimte_nr = v_ruimte.alg_ruimte_nr
|
||
, alg_verdieping_key = v_ruimte.alg_verdieping_key
|
||
, alg_ruimte_bruto_vloeropp = v_ruimte.alg_ruimte_bruto_vloeropp
|
||
, alg_ruimte_omtrek = v_ruimte.alg_ruimte_omtrek
|
||
, alg_ruimte_getekend = v_ruimte.alg_ruimte_getekend
|
||
WHERE alg_ruimte_key = v_ruimte.alg_ruimte_key;
|
||
aantal_gewijzigd := aantal_gewijzigd + 1;
|
||
END LOOP;
|
||
COMMIT;
|
||
END verwerk_project_gewijzigd;
|
||
|
||
/* prj.verwerk_project_verwijderd
|
||
**
|
||
** In de projectsituatie zijn er elementen verwijderd. Zet deze elementen in de huidige situatie op verwijderd.
|
||
** Doe dit in de volgorde object, werkplek, ruimte.
|
||
*/
|
||
PROCEDURE verwerk_project_verwijderd(p_session IN NUMBER
|
||
,p_projectkey IN NUMBER
|
||
,p_merge_tekening IN BOOLEAN) IS
|
||
CURSOR c_ruimte(p_project IN NUMBER) IS
|
||
SELECT p.alg_ruimte_key
|
||
, p.alg_ruimte_getekend
|
||
, p.alg_ruimte_verwijder
|
||
FROM prj_v_ruimte_verwijderd c
|
||
, prj_ruimte p
|
||
WHERE c.alg_ruimte_key = p.alg_ruimte_key
|
||
AND c.prj_project_key = p.prj_project_key
|
||
AND p.prj_project_key = p_project
|
||
AND p.alg_ruimte_key <> 0; /* virtueel magazijn */
|
||
CURSOR c_ruimte_nieuw(p_project IN NUMBER) IS
|
||
SELECT r.alg_ruimte_key
|
||
, r.alg_ruimte_getekend
|
||
, r.alg_ruimte_verwijder
|
||
FROM prj_v_alg_ruimte_nieuw p
|
||
, alg_ruimte r
|
||
WHERE p.alg_ruimte_key = r.alg_ruimte_key
|
||
AND p.prj_project_key = p_project;
|
||
CURSOR c_werkplek(p_project IN NUMBER) IS
|
||
SELECT p.prs_werkplek_key
|
||
, p.prs_werkplek_getekend
|
||
, p.prs_werkplek_verwijder
|
||
FROM prj_v_werkplek_verwijderd_all c
|
||
, prj_werkplek p
|
||
WHERE c.prs_werkplek_key = p.prs_werkplek_key
|
||
AND c.prj_project_key = p.prj_project_key
|
||
AND p.prj_project_key = p_project;
|
||
CURSOR c_werkplek_nieuw(p_project IN NUMBER) IS
|
||
SELECT w.prs_werkplek_key
|
||
, w.prs_werkplek_getekend
|
||
, w.prs_werkplek_verwijder
|
||
FROM prj_v_prs_werkplek_nieuw p
|
||
, prs_werkplek w
|
||
WHERE p.prs_werkplek_key = w.prs_werkplek_key
|
||
AND p.prj_project_key = p_project;
|
||
CURSOR c_object(p_project IN NUMBER) IS
|
||
SELECT p.ins_deel_key
|
||
, p.ins_deel_getekend
|
||
, p.ins_deel_verwijder
|
||
, p.ins_discipline_key
|
||
FROM prj_v_deel_verwijderd_all c
|
||
, prj_deel p
|
||
WHERE c.ins_deel_key = p.ins_deel_key
|
||
AND c.prj_project_key = p.prj_project_key
|
||
AND p.prj_project_key = p_project
|
||
AND EXISTS (SELECT ''
|
||
FROM prj_werkplek
|
||
WHERE prs_werkplek_key = p.ins_alg_ruimte_key
|
||
AND p.ins_alg_ruimte_type = 'W'
|
||
UNION
|
||
SELECT ''
|
||
FROM prj_ruimte
|
||
WHERE alg_ruimte_key = p.ins_alg_ruimte_key
|
||
AND p.ins_alg_ruimte_type = 'R');
|
||
CURSOR c_object_nieuw(p_project IN NUMBER) IS
|
||
SELECT d.ins_deel_key
|
||
, d.ins_deel_getekend
|
||
, d.ins_deel_verwijder
|
||
, d.ins_discipline_key
|
||
FROM prj_v_ins_deel_nieuw p
|
||
, ins_deel d
|
||
WHERE p.ins_deel_key = d.ins_deel_key
|
||
AND p.prj_project_key = p_project
|
||
AND EXISTS (SELECT ''
|
||
FROM ins_v_deel_plaatsaanduiding
|
||
WHERE ins_deel_key = d.ins_deel_key
|
||
AND prs_werkplek_verwijder IS NULL);
|
||
aantal_verwijderd NUMBER(10);
|
||
dummy VARCHAR2(1);
|
||
BEGIN
|
||
--prj_err.err(' > verwerk_project_verwijderd');
|
||
/*
|
||
** In de projectsituatie zijn deze OBJECTEN verwijderd.
|
||
*/
|
||
aantal_verwijderd := 0;
|
||
--prj_err.err(' : oude objecten '||to_char(sysdate,'dd-mm-yyyy hh24:mi:ss'));
|
||
FOR v_object IN c_object(p_projectkey)
|
||
LOOP
|
||
BEGIN
|
||
--prj_err.err(' : oud object nr '||to_char(aantal_verwijderd)||' met key '||to_char(v_object.ins_deel_key)||' op '||to_char(sysdate,'dd-mm-yyyy hh24:mi:ss'));
|
||
SELECT ''
|
||
INTO dummy
|
||
FROM cad_tekening
|
||
WHERE ins_discipline_key = v_object.ins_discipline_key
|
||
AND alg_verdieping_key = (SELECT alg_verdieping_key
|
||
FROM ins_v_deel_plaatsaanduiding
|
||
WHERE ins_deel_key = v_object.ins_deel_key)
|
||
AND prj_project_key = p_projectkey
|
||
AND rownum = 1;
|
||
--
|
||
-- Discipline komt in project voor.
|
||
--
|
||
UPDATE ins_deel
|
||
SET ins_deel_getekend = v_object.ins_deel_getekend
|
||
, ins_deel_verwijder = NVL(v_object.ins_deel_verwijder,sysdate)
|
||
WHERE ins_deel_key = v_object.ins_deel_key;
|
||
aantal_verwijderd := aantal_verwijderd + 1;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN NULL; -- Discipline komt niet in project voor.
|
||
END;
|
||
END LOOP;
|
||
IF NOT p_merge_tekening
|
||
THEN
|
||
--prj_err.err(' : nieuwe objecten '||to_char(sysdate,'dd-mm-yyyy hh24:mi:ss'));
|
||
FOR v_object IN c_object_nieuw(p_projectkey)
|
||
LOOP
|
||
BEGIN
|
||
--prj_err.err(' : nieuw object nr '||to_char(aantal_verwijderd)||' met key '||to_char(v_object.ins_deel_key)||' op '||to_char(sysdate,'dd-mm-yyyy hh24:mi:ss'));
|
||
SELECT ''
|
||
INTO dummy
|
||
FROM cad_tekening
|
||
WHERE ins_discipline_key = v_object.ins_discipline_key
|
||
AND alg_verdieping_key = (SELECT alg_verdieping_key
|
||
FROM ins_v_deel_plaatsaanduiding
|
||
WHERE ins_deel_key = v_object.ins_deel_key)
|
||
AND prj_project_key = p_projectkey
|
||
AND rownum = 1;
|
||
--
|
||
-- Discipline komt in project voor.
|
||
--
|
||
-- prj.verwerk_log('Object verwijderd: <20> '||to_char(v_object.ins_deel_key),p_session,p_projectkey);
|
||
UPDATE ins_deel
|
||
SET ins_deel_getekend = NULL
|
||
, ins_deel_verwijder = NVL(v_object.ins_deel_verwijder,sysdate)
|
||
WHERE ins_deel_key = v_object.ins_deel_key;
|
||
aantal_verwijderd := aantal_verwijderd + 1;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN NULL; -- Discipline komt niet in project voor.
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
--prj_err.err(' : '||to_char(aantal_verwijderd)||' objecten verwijderd');
|
||
COMMIT;
|
||
/*
|
||
** In de projectsituatie zijn deze WERKPLEKKEN verwijderd. Daarmee zijn ook de
|
||
** objecten die nog aan deze werkplekken verbonden zijn verwijderd.
|
||
*/
|
||
--prj_err.err(' : oude werkplekken');
|
||
aantal_verwijderd := 0;
|
||
FOR v_werkplek IN c_werkplek(p_projectkey)
|
||
LOOP
|
||
UPDATE prs_werkplek
|
||
SET prs_werkplek_getekend = v_werkplek.prs_werkplek_getekend
|
||
, prs_werkplek_verwijder = NVL(v_werkplek.prs_werkplek_verwijder,sysdate)
|
||
WHERE prs_werkplek_key = v_werkplek.prs_werkplek_key;
|
||
aantal_verwijderd := aantal_verwijderd + 1;
|
||
END LOOP;
|
||
IF NOT p_merge_tekening
|
||
THEN
|
||
--prj_err.err(' : nieuwe werkplekken');
|
||
FOR v_werkplek IN c_werkplek_nieuw(p_projectkey)
|
||
LOOP
|
||
--prj.verwerk_log('Werkplek verwijderd: <20> '||to_char(v_werkplek.prs_werkplek_key),p_session,p_projectkey);
|
||
UPDATE prs_werkplek
|
||
SET prs_werkplek_getekend = NULL
|
||
, prs_werkplek_verwijder = NVL(v_werkplek.prs_werkplek_verwijder,sysdate)
|
||
WHERE prs_werkplek_key = v_werkplek.prs_werkplek_key;
|
||
aantal_verwijderd := aantal_verwijderd + 1;
|
||
END LOOP;
|
||
END IF;
|
||
--prj_err.err(' : '||to_char(aantal_verwijderd)||' werkplekken verwijderd');
|
||
COMMIT;
|
||
/*
|
||
** In de projectsituatie zijn deze RUIMTEN verwijderd. Daarmee zijn ook de
|
||
** werkplekken en objecten die zich nog in deze ruimten bevonden verwijderd.
|
||
*/
|
||
--prj_err.err(' : oude ruimten');
|
||
aantal_verwijderd := 0;
|
||
FOR v_ruimte IN c_ruimte(p_projectkey)
|
||
LOOP
|
||
UPDATE alg_ruimte
|
||
SET alg_ruimte_getekend = v_ruimte.alg_ruimte_getekend
|
||
, alg_ruimte_verwijder = NVL(v_ruimte.alg_ruimte_verwijder,sysdate)
|
||
WHERE alg_ruimte_key = v_ruimte.alg_ruimte_key;
|
||
aantal_verwijderd := aantal_verwijderd + 1;
|
||
END LOOP;
|
||
IF NOT p_merge_tekening
|
||
THEN
|
||
--prj_err.err(' : nieuwe ruimte');
|
||
FOR v_ruimte IN c_ruimte_nieuw(p_projectkey)
|
||
LOOP
|
||
--prj.verwerk_log('Ruimte verwijderd: <20> '||to_char(v_ruimte.alg_ruimte_key),p_session,p_projectkey);
|
||
UPDATE alg_ruimte
|
||
SET alg_ruimte_getekend = NULL
|
||
, alg_ruimte_verwijder = NVL(v_ruimte.alg_ruimte_verwijder,sysdate)
|
||
WHERE alg_ruimte_key = v_ruimte.alg_ruimte_key;
|
||
aantal_verwijderd := aantal_verwijderd + 1;
|
||
END LOOP;
|
||
END IF;
|
||
--prj_err.err(' : '||to_char(aantal_verwijderd)||' ruimten verwijderd');
|
||
COMMIT;
|
||
--prj_err.err(' > verwerk_project_verwijderd');
|
||
END verwerk_project_verwijderd;
|
||
|
||
/* prj.verwerk_project
|
||
**
|
||
** Verwerk de mutaties van de projectsituatie in de echte situatie.
|
||
*/
|
||
PROCEDURE verwerk_project(SessionId IN NUMBER
|
||
,ProjectKey IN NUMBER
|
||
,MergeTekening IN BOOLEAN) IS
|
||
BEGIN
|
||
--prj_err.err('> verwerk_project');
|
||
verwerk_project_hersteld (SessionId,ProjectKey);
|
||
verwerk_project_nieuw (SessionId,ProjectKey);
|
||
verwerk_project_gewijzigd (SessionId,ProjectKey);
|
||
verwerk_project_verwijderd(SessionId,ProjectKey,MergeTekening);
|
||
|
||
--prj_err.err(': modules doorlopen');
|
||
UPDATE prj_project
|
||
SET prj_project_eindreal = sysdate
|
||
WHERE prj_project_key = ProjectKey;
|
||
COMMIT;
|
||
/*
|
||
** Het project is nu doorgevoerd, dus alle prj-records van dit project
|
||
** kunnen nu verwijderd worden.
|
||
*/
|
||
DELETE
|
||
FROM prj_deel
|
||
WHERE prj_project_key = ProjectKey;
|
||
DELETE
|
||
FROM prj_werkplek
|
||
WHERE prj_project_key = ProjectKey;
|
||
DELETE
|
||
FROM prj_ruimte
|
||
WHERE prj_project_key = ProjectKey;
|
||
DELETE
|
||
FROM cad_tekening
|
||
WHERE prj_project_key = ProjectKey;
|
||
--prj_err.err('< verwerk_project');
|
||
END;
|
||
|
||
END prj;
|
||
/
|
||
|
||
#endif // PRJ
|
||
|
||
#ifdef RES
|
||
|
||
/* Nieuwe entities i.v.m. de nieuwe reserverings-module */
|
||
|
||
DEF_FAC_ENTITY ('MENU_RES_RESERVERING' , 'R'||CHR(38)||'eserveringen', null, null);
|
||
DEF_FAC_ENTITY ('MENU_RES_OPSTELLING' , 'Opstelling', null, null);
|
||
DEF_FAC_ENTITY ('MENU_RES_RUIMTE' , 'Ruimten', null, null);
|
||
|
||
DEF_FAC_ENTITY ('RES_RESERVERING' , 'Reservering', 'Reserveringen', null);
|
||
DEF_FAC_ENTITY ('RES_RESERVERINGNUMMER' , 'Reserveringnr.', null, null);
|
||
DEF_FAC_ENTITY ('RES_RESERVERINGRUIMTE' , 'Reserv. ruimten', null, null);
|
||
DEF_FAC_ENTITY ('RES_RESERVERINGNAAM' , 'Naam', null, null);
|
||
DEF_FAC_ENTITY ('RES_RESERVERINGVAN' , 'Van', null, null);
|
||
DEF_FAC_ENTITY ('RES_RESERVERINGTOT' , 'Tot', null, null);
|
||
DEF_FAC_ENTITY ('RES_RESERVERINGSTATUS' , 'Status', null, null);
|
||
DEF_FAC_ENTITY ('RES_RESERVERINGNR' , 'Nr.', null, null);
|
||
DEF_FAC_ENTITY ('RES_RESERVERINGPLAATS' , 'Plaats', null, null);
|
||
DEF_FAC_ENTITY ('RES_STATUS' , 'Status', null, null);
|
||
DEF_FAC_ENTITY ('RES_OPDRACHT' , 'Opdracht', null, null);
|
||
DEF_FAC_ENTITY ('RES_PRINT' , 'Printen', null, null);
|
||
DEF_FAC_ENTITY ('RES_EXPORT' , 'Exporteren', null, null);
|
||
DEF_FAC_ENTITY ('RES_OPSTELLING' , 'Opstelling', 'Opstellingen', null);
|
||
DEF_FAC_ENTITY ('RES_OMSCHRIJVING' , 'Omschrijving', null, null);
|
||
DEF_FAC_ENTITY ('RES_RUIMTE' , 'Ruimte', null, null);
|
||
DEF_FAC_ENTITY ('RES_PRIJS' , 'Prijs', null, null);
|
||
DEF_FAC_ENTITY ('RES_PRIJS2' , '(per uur)', null, null);
|
||
DEF_FAC_ENTITY ('RES_ALTERNATRUIMTE' , 'Altern. ruimte', null, null);
|
||
DEF_FAC_ENTITY ('RES_CATERING' , 'Catering', null, null);
|
||
DEF_FAC_ENTITY ('RES_DATUMVAN' , 'Van ', null, null);
|
||
DEF_FAC_ENTITY ('RES_DATUMTOT' , 'Tot ', null, null);
|
||
DEF_FAC_ENTITY ('RES_DATUM' , 'Datum', null, null);
|
||
DEF_FAC_ENTITY ('RES_TIJD' , 'Tijd', null, null);
|
||
DEF_FAC_ENTITY ('RES_UREN' , 'Aantal uren', null, null);
|
||
DEF_FAC_ENTITY ('RES_AANVRAGER' , 'Aanvrager', null, null);
|
||
DEF_FAC_ENTITY ('RES_FREQUENTIE' , 'Frequentie', null, null);
|
||
|
||
|
||
DEF_FAC_MESSAGE ('RES_M001','Voorlopig');
|
||
DEF_FAC_MESSAGE ('RES_M002','Definitief');
|
||
DEF_FAC_MESSAGE ('RES_M003','Verwijderen opstelling ');
|
||
DEF_FAC_MESSAGE ('RES_M004','Verwijderen reserveerbare ruimte ');
|
||
DEF_FAC_MESSAGE ('RES_M005','Er zijn geen ruimten geselecteerd.');
|
||
DEF_FAC_MESSAGE ('RES_M006','Reserveerbare ruimten');
|
||
DEF_FAC_MESSAGE ('RES_M007','Aantal bezoekers');
|
||
DEF_FAC_MESSAGE ('RES_M008','Norm bezoekers');
|
||
DEF_FAC_MESSAGE ('RES_M009','Koppeling reserv. ruimte en opstelling');
|
||
DEF_FAC_MESSAGE ('RES_M010','Verwijderen reservering ');
|
||
|
||
|
||
DEF_FAC_MESSAGE ('res_c_res_ruimte_nr' , 'De naam van de reserveerbare ruimte is niet ingevuld.');
|
||
DEF_FAC_MESSAGE ('res_c_res_ruimte_upper' , 'De naam van de reserveerbare ruimte is niet ingevuld.');
|
||
DEF_FAC_MESSAGE ('res_u_res_ruimte_upper' , 'De naam van de reserveerbare ruimte is niet uniek.');
|
||
|
||
DEF_FAC_MESSAGE ('res_c_res_reservering_van' , 'Begindatum/Tijd van de reservering is niet ingevuld.');
|
||
DEF_FAC_MESSAGE ('res_c_res_reservering_tot' , 'Einddatum/Tijd van de reservering is niet ingevuld.');
|
||
DEF_FAC_MESSAGE ('res_c_res_reservering_datum' , 'Einddatum/Tijd moet later zijn dan Begindatum/Tijd.');
|
||
|
||
DEF_FAC_MESSAGE ('res_c_res_opstelling_omschr' , 'De omschrijving van de opstelling is niet ingevuld.');
|
||
DEF_FAC_MESSAGE ('res_c_res_opstelling_upper' , 'De omschrijving van de opstelling is niet ingevuld.');
|
||
DEF_FAC_MESSAGE ('res_u_res_opstelling_upper' , 'De omschrijving van de opstelling is niet uniek.');
|
||
|
||
|
||
#endif // RES
|