First version (snapshot)

svn path=/Database/trunk/; revision=9215
This commit is contained in:
Peter Feij
2006-05-01 09:13:42 +00:00
parent 9a8044c699
commit 673be9696c
7 changed files with 1896 additions and 5014 deletions

View File

@@ -1,11 +1,9 @@
#ifdef PRJ
/*
** Revisie
**
** 30-09-1999 EGR Indexen op project, ruimte, werkplek en deel gedefinieerd in prj zoals bij ins/alg/prs.
** 20-04-1999 ABO Aangemaakt.
*/
/* PRJ_IND.SRC
*
* $Revision: 4 $
* $Modtime: 22-03-06 10:26 $
*/
create index prj_i_prj_project1 on prj_project(prj_project_nr);
create index prj_i_prj_ruimte1 on prj_ruimte(prj_project_key,alg_verdieping_key);
@@ -20,6 +18,5 @@ create index prj_i_prj_deel3 on prj_deel(prj_project_key,ins_discipline_key);
create index prj_i_prj_deel4 on prj_deel(prj_project_key,ins_alg_locatie_key);
create index prj_i_prj_deel5 on prj_deel(prj_project_key,ins_alg_locatie_key,ins_srtdeel_key);
create index prj_i_cad_tekening1 on cad_tekening(prj_project_key);
#endif // PRJ

View File

@@ -1,124 +1,34 @@
#ifdef PRJ // 22-05-1998 ABO
#ifdef PRJ
/* $Revision: 8 $
* $Modtime: 24-10-05 13:42 $
/* $Revision: 9 $
* $Modtime: 21-04-06 17:40 $
*/
#include "comsql.h"
/*
** Bij installatie van modules moet de tabel FAC_MODULE gevuld of ge-update worden.
*/
_FAC_MODULE('PRJ','Projecten')
/*
** De ENTITY_NAMES van de PRJ module.
*/
DEF_FAC_ENTITY ('MENU_PRJ_PROJECT', 'Pro'||CHR(38)||'jecten', null, null, '');
DEF_FAC_ENTITY ('GRAFISCH', 'Grafisch', null, null, '');
DEF_FAC_ENTITY ('PRJ_OMSCHRIJVING', 'Omschrijving', 'Omschrijvingen', 'de', '');
DEF_FAC_ENTITY ('PRJ_VERDIEPING', 'Verdieping', 'Verdiepingen', 'de', '');
DEF_FAC_ENTITY ('PRJ_DATA', 'Projectplanning', null, 'de', '');
DEF_FAC_ENTITY ('PRJ_PROJECT_NR', 'Projectnr', 'Projectnr''s', 'het', '');
DEF_FAC_ENTITY ('PRJ_DEFINITIE', 'Definitie', 'Definities', 'de', '');
DEF_FAC_ENTITY ('PRJ_VERWERKEN', 'Verwerken', null, 'het', '');
DEF_FAC_ENTITY ('PRJ_PROJECT_OPMERKING', 'Opmerkingen', null, 'de', '');
DEF_FAC_ENTITY ('PRJ_PROJECT_NAAM', 'Naam', 'Namen', 'de', '');
DEF_FAC_ENTITY ('PRJ_GEBOUW', 'Gebouw', 'Gebouwen', 'het', '');
DEF_FAC_ENTITY ('PRJ_KAMER_NR', 'Kamernummer', 'Kamernummers', 'het', '');
DEF_FAC_ENTITY ('PRJ_AFDELING', 'Afdeling', 'Afdelingen', 'de', '');
DEF_FAC_ENTITY ('PRJ_OPDRGEVER', 'Opdrachtgever', 'Opdrachtgevers', 'de', '');
DEF_FAC_ENTITY ('PRJ_TELEFOON', 'Telefoon', null, 'de', '');
DEF_FAC_ENTITY ('PRJ_KOSTENPLAATS', 'Kostenplaats', 'Kostenplaatsen', 'de', '');
DEF_FAC_ENTITY ('PRJ_REALISATIE', 'Realisatie', 'Realisaties', 'de', '');
DEF_FAC_ENTITY ('PRJ_PROJECT_BEGIN', 'Begin', null, 'het', '');
DEF_FAC_ENTITY ('PRJ_PROJECT_EIND', 'Eind', null, 'het', '');
DEF_FAC_ENTITY ('PRJ_VOORBEREIDING', 'Voorbereiding', 'Voorbereidingen', 'de', '');
DEF_FAC_ENTITY ('PRJ_PROJECT', 'project', 'projecten', 'het', '');
DEF_FAC_ENTITY ('PRJ_DISCIPLINE', 'Discipline', 'Disciplines', 'de', '');
/*
** De MESSAGES van de PRJ module.
*/
DEF_FAC_MESSAGE ('PRJ_M001','Verwijderen project','undefined');
DEF_FAC_MESSAGE ('PRJ_M002a','Verwijderen van discipline %1%','undefined');
DEF_FAC_MESSAGE ('PRJ_M002b',' op bouwlaag %1% ','undefined');
DEF_FAC_MESSAGE ('PRJ_M002c',' van gebouw %1%?','undefined');
DEF_FAC_MESSAGE ('PRJ_M003','Verwijderen verdieping/discipline','undefined');
DEF_FAC_MESSAGE ('PRJ_M004','Geen locatie gekozen!','undefined');
DEF_FAC_MESSAGE ('PRJ_M005','Projectdefinitie','undefined');
DEF_FAC_MESSAGE ('PRJ_M006','Toevoegen verdiepingen aan project ','undefined');
DEF_FAC_MESSAGE ('PRJ_M007','Projectomschrijving','undefined');
DEF_FAC_MESSAGE ('PRJ_M008','Lopende projecten','undefined');
DEF_FAC_MESSAGE ('PRJ_M009','Projecten','undefined');
DEF_FAC_MESSAGE ('PRJ_M010','Niet alle informatie gevonden','undefined');
DEF_FAC_MESSAGE ('PRJ_M011','project','undefined');
DEF_FAC_MESSAGE ('PRJ_M012','Voortgangsrapportage projectcontrole ','undefined');
DEF_FAC_MESSAGE ('PRJ_M013','Projectrapportage','undefined');
DEF_FAC_MESSAGE ('PRJ_M014','Verwerken','undefined');
DEF_FAC_MESSAGE ('PRJ_M015','Controleren','undefined');
DEF_FAC_MESSAGE ('PRJ_M016','Accoord','undefined');
DEF_FAC_MESSAGE ('PRJ_M017','Voortgangsmeldingen','undefined');
DEF_FAC_MESSAGE ('PRJ_M018','Kopie plattegrondtekening ','undefined');
DEF_FAC_MESSAGE ('PRJ_M019','*Fout: ','undefined');
DEF_FAC_MESSAGE ('PRJ_M020',' ','undefined');
DEF_FAC_MESSAGE ('PRJ_M021','Voortgangsrapportage projectverwerking ','undefined');
DEF_FAC_MESSAGE ('PRJ_M022','Het virtuele magazijn is niet leeg, de inhoud ervan wordt verwijderd','undefined');
DEF_FAC_MESSAGE ('PRJ_M023','Verplaatsingen Van/Naar','undefined');
DEF_FAC_MESSAGE ('PRJ_M024','Verplaatsingen Naar/Van','undefined');
DEF_FAC_MESSAGE ('PRJ_M025','Werkinstructies','undefined');
DEF_FAC_MESSAGE ('PRJ_M026','Overzicht verplaatsbewegingen','undefined');
DEF_FAC_MESSAGE ('PRJ_M027','Overzicht werkinstructies','undefined');
DEF_FAC_MESSAGE ('PRJ_M028','Het virtuele magazijn is NIET leeg','undefined');
DEF_FAC_MESSAGE ('PRJ_M029','Het virtuele magazijn is leeg.','undefined');
DEF_FAC_MESSAGE ('PRJ_M030','Verwijderde ruimten ...','undefined');
DEF_FAC_MESSAGE ('PRJ_M031','Er zijn geen verwijderde ruimten','undefined');
DEF_FAC_MESSAGE ('PRJ_M032','Gewijzigde ruimten (ruimte/oude oppervlakte/nieuwe oppervlakte) ...','undefined');
DEF_FAC_MESSAGE ('PRJ_M033','Er zijn geen gewijzigde ruimten','undefined');
DEF_FAC_MESSAGE ('PRJ_M034','Nieuwe ruimten (ruimte/oppervlakte) ...','undefined');
DEF_FAC_MESSAGE ('PRJ_M035','Er zijn geen nieuwe ruimten','undefined');
DEF_FAC_MESSAGE ('PRJ_M036','Fout opgetreden bij controle van het project, voer evt. controle nogmaals uit.','undefined');
DEF_FAC_MESSAGE ('PRJ_M037','>Begin van verwerking','undefined');
DEF_FAC_MESSAGE ('PRJ_M038','<Eind van verwerking','undefined');
DEF_FAC_MESSAGE ('PRJ_M039','Controleer de nieuwe voortgangsmeldingen','undefined');
DEF_FAC_MESSAGE ('PRJ_M040','LET OP! ','undefined');
DEF_FAC_MESSAGE ('PRJ_M041','Kan plattegrondtekening niet vinden: ','undefined');
DEF_FAC_MESSAGE ('PRJ_M042','Er is een fout opgetreden bij het verwerken van het project','undefined');
DEF_FAC_MESSAGE ('PRJ_M043','Plattegrondtekening gevonden: ','undefined');
DEF_FAC_MESSAGE ('PRJ_M044','Er is %1% verdieping/discipline aan het project toegevoegd','undefined');
DEF_FAC_MESSAGE ('PRJ_M045','Er zijn %1% verdiepingen/disciplines aan het project toegevoegd','undefined');
DEF_FAC_MESSAGE ('PRJ_M046','Het bestand %1% is niet aanwezig','undefined');
DEF_FAC_MESSAGE ('PRJ_M047','>Begin van controle','undefined');
DEF_FAC_MESSAGE ('PRJ_M048','<Eind van controle','undefined');
DEF_FAC_MESSAGE ('PRJ_M049','Doorvoeren','undefined');
DEF_FAC_MESSAGE ('PRJ_M050','Rapport','undefined');
DEF_FAC_MESSAGE ('PRJ_M051','Doorvoeren project','undefined');
DEF_FAC_MESSAGE ('PRJ_M052','Project','undefined');
DEF_FAC_MESSAGE ('PRJ_M053','Omschrijving','undefined');
DEF_FAC_MESSAGE ('PRJ_M054','Werkelijk doorvoeren project?','undefined');
DEF_FAC_MESSAGE ('PRJ_M055','Project %1% eerst defini<6E>ren, daarna kan het doorgevoerd worden','undefined');
DEF_FAC_MESSAGE ('PRJ_M056','Deze discipline/verdieping wordt ook in een ander project gebruikt!','undefined');
DEF_FAC_MESSAGE ('PRJ_M057','Deze discipline/verdieping wordt ook in andere projecten gebruikt!','undefined');
DEF_FAC_MESSAGE ('PRJ_M058','Rapport werkplekverplaatsingen','undefined');
DEF_FAC_MESSAGE ('PRJ_M059','Er is geen enkele plattegrondtekening gevonden','undefined');
DEF_FAC_MESSAGE ('PRJ_M060','Fout opgetreden bij het bepalen van object- en/of ruimtetekeningen','undefined');
DEF_FAC_MESSAGE ('PRJ_M061','Kan volgende bestand niet vinden: ','undefined');
DEF_FAC_MESSAGE ('PRJ_M062','Er is geen enkele objecttekening en ruimtetekening gevonden','undefined');
DEF_FAC_MESSAGE ('PRJ_M063','Ruimtenummer %1% bestaat al: gewijzigd in %2%','undefined');
DEF_FAC_MESSAGE ('PRJ_M064','Werkpleknummer %1% bestaat al: gewijzigd in %2%','undefined');
DEF_FAC_MESSAGE ('PRJ_M065','Objectomschrijving %1% bestaat al: gewijzigd in 2%','undefined');
DEF_FAC_MESSAGE ('PRJ_M066','Projectrapportage kan niet meer worden aangeroepen nadat het project is verwerkt','undefined');
DEF_FAC_MESSAGE ('PRJ_M067','Sluit eerst AutoCAD, daarna kan het project doorgevoerd worden','undefined');
DEF_FAC_MESSAGE ('PRJ_M068','<27> ','undefined'); /* = [alt 168] */
DEF_FAC_MESSAGE ('PRJ_M069','Object dat buiten het project om is toegevoegd: ','undefined');
DEF_FAC_MESSAGE ('PRJ_M070','Werkplek dat buiten het project om is toegevoegd: ','undefined');
DEF_FAC_MESSAGE ('PRJ_M071','Vraag projectleiding.','undefined');
DEF_FAC_MESSAGE ('PRJ_RAP001', 'Project','undefined');
DEF_FAC_MESSAGE ('PRJ_RAP002', 'Omschrijving','undefined');
DEF_FAC_MESSAGE ('PRJ_RAP003', 'Opdrachtgever','undefined');
DEF_FAC_MESSAGE ('PRJ_RAP004', 'Verwijderde objecten','undefined');
DEF_FAC_MESSAGE ('PRJ_RAP005', 'Verplaatste objecten','undefined');
DEF_FAC_MESSAGE ('PRJ_RAP006', 'Nieuwe objecten','undefined');
DEF_FAC_MESSAGE ('PRJ_RAP007', 'Verwijderde werkplekken','undefined');
DEF_FAC_MESSAGE ('PRJ_RAP008', 'Verplaatste werkplekken','undefined');
DEF_FAC_MESSAGE ('PRJ_RAP009', 'Nieuwe werkplekken','undefined');
--TODO: WELKE LEGENDA NEMEN WE?
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type)
VALUES ('Bezetting: Aantal werkplekken', 2, 'prj_v_cad_thema_aantalwp', '5');
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type)
VALUES ('Gebruik: Ruimtefunctie', 2, 'prj_v_cad_thema_srtruimte', '5');
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type)
VALUES ('Bezetting: Afdeling', 2, 'prj_v_cad_thema_afdeling', '5');
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type)
VALUES ('Oppervlakte: Gemiddeld/werkplek', 2, 'prj_v_cad_thema_wpopp', '5');
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type)
VALUES ('Oppervlakte: Restoppervlak', 2, 'prj_v_cad_thema_restopp', '5');
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type)
VALUES ('Onderhanden', 2, 'prj_v_cad_thema_onderhanden', '5');
INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, cad_label_size)
VALUES ('Werkplekken', 'prj_v_cad_label_werkplekken', '5', 420);
INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, cad_label_size)
VALUES ('Bewoners', 'prj_v_cad_label_bewoner', '5', 400);
INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, cad_label_size)
VALUES ('Bewoners/werkplekken', 'prj_v_cad_label_bewonerwp', '5', 380);
#endif // PRJ

File diff suppressed because it is too large Load Diff

View File

@@ -1,13 +1,17 @@
#ifdef PRJ
/* REVISIONS:
/* PRJ_SEQ.SRC
*
* 11-10-1999 RD Aanmaken <prj_s_prj_project_key> met NOCACHE (key wordt gebruikt
* als projectnummer en moet dus niet te snel oplopen).
* 25-08-1999 RD Toegevoegd sequence <prj_s_prj_verwerk_log_key>.
* 21-03-1996 ABO Creation
* $Revision: 4 $
* $Modtime: 6-04-06 17:13 $
*/
CREATE SEQUENCE prj_s_prj_project_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE prj_s_prj_verwerk_log_key MINVALUE 1;
CREATE SEQUENCE prj_s_prj_scenario_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE prj_s_prj_scenario_note_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE prj_s_prj_ruimte_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE prj_s_prj_werkplek_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE prj_s_prj_perslidwerkplek_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE prj_s_prj_deel_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE prj_s_prj_log_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE prj_s_prj_selectie_key MINVALUE 1;
#endif // PRJ

View File

@@ -1,180 +1,290 @@
#ifdef PRJ
/* Revisie:
**
** 03-04-2000 BIV Velden prj_ruimte.alg_ruimte_bruto_vloeropp en ...omtrek van NUMBER(x,2) naar NUMBER(12,2)
** 28-09-1999 EGR aan prj_ruimte veld alg_srtruimte_key toegevoegd.
** 14-09-1999 EGR constraints op prj_ruimte.alg_verdieping_key verwijderd. Anders kan er geen verhuisomgeving worden aangemaakt.
** 06-09-1999 BIV / toegevoegd na CREATE_TABLE prj_verwerk_log, anders foutmelding
** 25-08-1999 RD Tabel toegevoegd <prj_verwerk_log>.
** 26-07-1999 EGR toevoegen veld prs_werkplek_omschrijving aan prj_werkplek.
** 15-07-1999 EGR toevoegen tabellen prj_ruimte, prj_werkplek en prj_deel.
** 20-04-1999 ABO aangemaakt.
*/
/* PRJ_TAB.SRC
*
* $Revision: 15 $
* $Modtime: 1-05-06 11:09 $
*/
#include "comsql.h"
CREATE_TABLE(prj_project,PRJ_NORMAAL_PRIVILEGE)
/* Om een naam te kunnen geven aan een scenario en deze later weer op te kunnen roepen */
CREATE_TABLE(prj_scenario, 0)
(
prj_project_key
prj_scenario_key
NUMBER(10) _IDENTITY(10000000,1)
CONSTRAINT prj_k_prj_scenario_key PRIMARY KEY,
prj_scenario_omschrijving
VARCHAR2(30),
NOT_NULL(prj_scenario_omschrijving, prj_r_prj_scenario_omschr),
mld_melding_key
NUMBER(10)
CONSTRAINT prj_k_prj_project_key PRIMARY KEY,
prj_project_nr
VARCHAR2(8),
prj_project_omschrijving
VARCHAR2(32),
prj_project_opmerking
VARCHAR2(1024),
prj_project_beginvoorb
DATE,
prj_project_eindvoorb
DATE,
prj_project_beginreal
DATE,
prj_project_eindreal
CONSTRAINT prj_r_mld_melding_key1 REFERENCES mld_melding ON DELETE CASCADE,
prj_scenario_status
VARCHAR2(30),
prj_scenario_opmerking
VARCHAR2(2000),
prj_scenario_datum
DATE,
prj_scenario_raming
NUMBER(10),
prs_perslid_key
NUMBER(10)
CONSTRAINT prj_r_prs_perslid_key REFERENCES prs_perslid(prs_perslid_key),
prj_project_kstplaats
VARCHAR2(10),
prj_project_locatie_key
NUMBER(10,0),
prj_project_verwijder
CONSTRAINT prj_r_prs_perslid_key0 REFERENCES prs_perslid(prs_perslid_key),
prj_scenario_aanmaak
DATE
DEFAULT SYSDATE,
prj_scenario_verwerkt
DATE
);
ALTER TABLE cad_tekening
ADD
CREATE_TABLE(prj_scenario_note, 0)
(
prj_project_key
prj_scenario_note_key
NUMBER(10) _IDENTITY(10000000,1)
CONSTRAINT prj_k_prj_scenario_reamrk_key PRIMARY KEY,
prj_scenario_key
NUMBER(10)
CONSTRAINT cad_r_prj_project_key REFERENCES prj_project(prj_project_key)
)
/
NOT_NULL(prj_scenario_key, prj_c_prj_scenario_key6)
CONSTRAINT prj_r_prj_scenario_key6 REFERENCES prj_scenario(prj_scenario_key) ON DELETE CASCADE,
prj_scenario_note_nr
NUMBER(3),
prj_scenario_note_DWGX
NUMBER(10),
prj_scenario_note_DWGY
NUMBER(10),
prj_scenario_note_omschrijving
VARCHAR2(2000),
prj_ruimte_key
NUMBER(10)
CONSTRAINT prj_r_prj_ruimte_key3 REFERENCES prj_ruimte(prj_ruimte_key),
alg_verdieping_key
NUMBER(10)
CONSTRAINT prj_r_alg_verdieping_key3 REFERENCES alg_verdieping(alg_verdieping_key),
prs_perslid_key
NUMBER(10)
CONSTRAINT prj_r_prs_perslid_key6 REFERENCES prs_perslid(prs_perslid_key),
prj_scenario_note_aanmaak
DATE
DEFAULT SYSDATE
);
ALTER TABLE cad_tekening DROP CONSTRAINT CAD_U_CAD_TEKENING
/
ALTER TABLE cad_tekening DROP CONSTRAINT CAD_C_CAD_TEKENING_TYPE2
/
ALTER TABLE cad_tekening ADD CONSTRAINT CAD_U_CAD_TEKENING
UNIQUE (ALG_LOCATIE_KEY
, ALG_VERDIEPING_KEY
, CAD_TEKENING_TYPE
, INS_DISCIPLINE_KEY
, PRJ_PROJECT_KEY)
/
ALTER TABLE cad_tekening ADD CONSTRAINT CAD_C_CAD_TEKENING_TYPE2
CHECK (cad_tekening_type IN ('P','C','D','V'))
/
CREATE_TABLE(prj_ruimte,PRJ_NORMAAL_PRIVILEGE)
( prj_project_key
NUMBER(10)
NOT NULL
, alg_ruimte_key
NUMBER(10)
NOT NULL
, alg_verdieping_key
NUMBER(10)
, alg_srtruimte_key
NUMBER(10)
CONSTRAINT prj_r_alg_srtruimte_key REFERENCES alg_srtruimte(alg_srtruimte_key)
, alg_ruimte_nr
VARCHAR2(10)
CONSTRAINT prj_c_alg_ruimte_nr CHECK(alg_ruimte_nr IS NOT NULL)
, alg_ruimte_bruto_vloeropp
NUMBER(8,2)
CONSTRAINT prj_c_alg_ruimte_vloeropp CHECK(alg_ruimte_bruto_vloeropp >= 0)
, alg_ruimte_omtrek
NUMBER(8,2)
CONSTRAINT prj_c_alg_ruimte_omtrek CHECK(alg_ruimte_omtrek >= 0)
, alg_ruimte_getekend
DATE
DEFAULT NULL
, alg_ruimte_verwijder
DATE
DEFAULT NULL
, CONSTRAINT prj_k_prj_ruimte PRIMARY KEY(prj_project_key,alg_ruimte_key)
)
/
CREATE_TABLE(prj_deel,PRJ_NORMAAL_PRIVILEGE)
( prj_project_key
NUMBER(10)
NOT NULL
/* Om afwijkende oppervlaktes en nieuwe ruimtes te ondersteunen; een ruimte zou ook nog kunnen
vervallen in dit scenario, dus dat moet ook kunnen. Een andere ruimtefunctie: idem. Kunnen we
ook een ander ruimtenummer aan? */
CREATE_TABLE(prj_ruimte, 0)
(
prj_ruimte_key
NUMBER(10) _IDENTITY(10000000,1)
CONSTRAINT prj_k_prj_ruimte_key PRIMARY KEY,
prj_scenario_key
NUMBER(10)
NOT_NULL(prj_scenario_key, prj_c_prj_scenario_key1)
CONSTRAINT prj_r_prj_scenario_key1 REFERENCES prj_scenario(prj_scenario_key) ON DELETE CASCADE,
alg_ruimte_key
NUMBER(10)
CONSTRAINT prj_r_alg_ruimte_key2 REFERENCES alg_ruimte(alg_ruimte_key),
alg_verdieping_key
NUMBER(10)
CONSTRAINT prj_r_alg_verdieping_key2 REFERENCES alg_verdieping(alg_verdieping_key),
alg_srtruimte_key
NUMBER(10)
CONSTRAINT prj_r_alg_srtruimte_key REFERENCES alg_srtruimte(alg_srtruimte_key),
prj_ruimte_nr
VARCHAR2(10)
NOT_NULL(prj_ruimte_nr, prj_c_alg_ruimte_nr),
prj_ruimte_upper_nr
VARCHAR2(10)
#ifndef MS_SQL
NOT_NULL(prj_ruimte_upper_nr, prj_c_alg_ruimte_upper_nr)
#endif
,
prj_ruimte_omschrijving
VARCHAR2(30),
prj_ruimte_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(prj_ruimte_aanmaak, prj_c_prj_ruimte_aanmaak),
prj_ruimte_verwijder
DATE
DEFAULT NULLDATUM,
prj_ruimte_bruto_vloeropp
NUMBER(8,2)
CONSTRAINT prj_c_prj_ruimte_vloeropp CHECK(prj_ruimte_bruto_vloeropp >= 0),
prj_ruimte_omtrek
NUMBER(8,2),
CONSTRAINT prj_c_prj_ruimte_omtrek CHECK(prj_ruimte_omtrek >= 0),
prj_ruimte_inhoud
NUMBER(12,2)
CONSTRAINT prj_c_prj_ruimte_inhoud CHECK(prj_ruimte_inhoud >= 0),
prj_ruimte_opmerking
VARCHAR2(50),
CONSTRAINT prj_u_prj_ruimte_upper_nr UNIQUE(prj_scenario_key, alg_verdieping_key, prj_ruimte_upper_nr, prj_ruimte_verwijder)
);
/* Nieuwe werkplekken? Alle werkplekken van een verdieping in scenario? */
CREATE_TABLE(prj_werkplek, 0)
(
prj_werkplek_key
NUMBER(10)
CONSTRAINT prj_k_prj_werkplek_key PRIMARY KEY,
prs_werkplek_key
NUMBER(10)
CONSTRAINT prj_r_prs_werkplek_key REFERENCES prs_werkplek(prs_werkplek_key),
prj_werkplek_volgnr
NUMBER(3)
NOT_NULL(prj_werkplek_volgnr, prj_c_prj_werkplek_volgnr),
prj_werkplek_omschrijving
VARCHAR2(30),
prj_werkplek_vastopp
NUMBER(1)
CONSTRAINT prj_c_prj_werkplek_vastopp CHECK(prj_werkplek_vastopp IS NULL
OR prj_werkplek_vastopp = 1),
prj_werkplek_opp
NUMBER(8,2)
CONSTRAINT prj_c_prs_werkplek_opp CHECK(prj_werkplek_opp >= 0
OR prj_werkplek_opp IS NULL),
prj_ruimte_key
NUMBER(10)
NOT_NULL(prj_ruimte_key, prj_r_prs_prj_ruimte_key1)
CONSTRAINT prs_r_prs_prj_ruimte_key2 REFERENCES prj_ruimte(prj_ruimte_key) ON DELETE CASCADE,
prj_werkplek_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(prj_werkplek_aanmaak, prj_c_prj_werkplek_aanmaak),
prj_werkplek_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT prj_u_prj_werkplek_volgnr UNIQUE(prj_ruimte_key, prj_werkplek_volgnr, prj_werkplek_verwijder)
);
CREATE_TABLE(prj_perslidwerkplek, 0)
(
prj_perslidwerkplek_key
NUMBER(10)
CONSTRAINT prj_k_prj_perslidwerkplek_key PRIMARY KEY,
prs_perslidwerkplek_key
NUMBER(10)
CONSTRAINT prj_r_prs_perslidwp_key REFERENCES prs_perslidwerkplek(prs_perslidwerkplek_key),
prs_perslid_key
NUMBER(10)
CONSTRAINT prj_r_prs_perslid_key REFERENCES prs_perslid(prs_perslid_key) ON DELETE CASCADE,
prs_afdeling_key
NUMBER(10)
CONSTRAINT prj_r_prs_pw_afdeling_key REFERENCES prs_afdeling(prs_afdeling_key),
prj_werkplek_key
NUMBER(10)
// niet: NOT_NULL(prj_werkplek_key, prj_c_prj_perslidwp_key)
CONSTRAINT prj_r_prj_werkplek_key REFERENCES prj_werkplek(prj_werkplek_key) ON DELETE CASCADE,
prj_perslidwerkplek_bezetting
NUMBER(3)
DEFAULT 100
CONSTRAINT prj_c_prj_perslidwp_bezetting2 CHECK
(prj_perslidwerkplek_bezetting is not null and prj_perslidwerkplek_bezetting BETWEEN 0 AND 100),
prj_perslidwerkplek_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(prj_perslidwerkplek_aanmaak, prj_c_prj_perslidwp_aanmaak),
prj_perslidwerkplek_verwijder
DATE
DEFAULT NULLDATUM,
-- CONSTRAINT prj_c_prj_perslidwp_koppeling CHECK(
/* PF: ik wil juist wel de afdeling altijd, evt redundant, gevuld is */
-- (prs_perslid_key IS NULL AND prs_afdeling_key IS NOT NULL) OR
-- (prs_afdeling_key IS NULL AND prs_perslid_key IS NOT NULL)
-- ),
CONSTRAINT prj_u_perslidwerkplek UNIQUE(prs_perslid_key, prs_afdeling_key, prj_werkplek_key,prj_perslidwerkplek_verwijder)
);
/* Noot: waar in de real world met een gecombineerde key+type wordt gewerkt, hebben we hier twee aparte verwijzingen
* waarbij de ruimte_key verplicht is en de werkplek_key optioneel
*/
CREATE_TABLE(prj_deel, 0)
(
prj_deel_key
NUMBER(10)
CONSTRAINT prj_k_prj_deel_key PRIMARY KEY
, ins_deel_key
NUMBER(10)
NOT NULL
CONSTRAINT prj_r_prj_deel_key REFERENCES ins_deel(ins_deel_key)
, ins_srtdeel_key
NUMBER(10)
CONSTRAINT prj_c_deel_srtdeel_key CHECK(ins_srtdeel_key IS NOT NULL)
CONSTRAINT prj_r_deel_srtdeel_key REFERENCES ins_srtdeel
, ins_alg_ruimte_key
NUMBER(10)
, ins_alg_ruimte_type
VARCHAR2(1)
, ins_alg_locatie_key
NUMBER(10)
CONSTRAINT prj_c_ins_deel_locatie CHECK(ins_alg_locatie_key IS NOT NULL)
CONSTRAINT prj_r_ins_deel_locatie REFERENCES alg_locatie(alg_locatie_key)
, ins_discipline_key
NUMBER(10)
CONSTRAINT prj_r_ins_deel_discipline REFERENCES ins_tab_discipline(ins_discipline_key)
, ins_deel_omschrijving
NOT_NULL(ins_srtdeel_key, prj_r_deel_srtdeel_key1)
CONSTRAINT prj_r_deel_srtdeel_key2 REFERENCES ins_srtdeel
, prj_ruimte_key
NUMBER(10)
NOT_NULL(prj_ruimte_key, prj_r_prs_prj_ruimte_key2)
CONSTRAINT prs_r_prs_prj_ruimte_key3 REFERENCES prj_ruimte(prj_ruimte_key) ON DELETE CASCADE
, prj_werkplek_key
NUMBER(10)
CONSTRAINT prj_r_prj_werkplek_key2 REFERENCES prj_werkplek(prj_werkplek_key) ON DELETE CASCADE
, prj_deel_omschrijving
VARCHAR2(30)
CONSTRAINT prj_c_ins_deel_omschrijving CHECK(ins_deel_omschrijving IS NOT NULL)
, ins_deel_parent_key
NUMBER(10)
, ins_deel_oppervlak
NUMBER(8,2)
, ins_deel_omtrek
NUMBER(8,2)
, ins_deel_getekend
CONSTRAINT prj_c_ins_deel_omschrijving CHECK(prj_deel_omschrijving IS NOT NULL)
, prj_deel_aanmaak
DATE
DEFAULT SYSDATE
, prj_deel_verwijder
DATE
DEFAULT NULL
, ins_deel_verwijder
DATE
DEFAULT NULL
, CONSTRAINT prj_k_prj_deel PRIMARY KEY(prj_project_key,ins_deel_key)
)
/
CREATE_TABLE(prj_werkplek,PRJ_NORMAAL_PRIVILEGE)
( prj_project_key
NUMBER(10)
NOT NULL
, prs_werkplek_key
NUMBER(10)
NOT NULL
, prs_alg_ruimte_key
NUMBER(10)
CONSTRAINT prj_c_prs_alg_ruimte_key CHECK(prs_alg_ruimte_key IS NOT NULL)
, prs_werkplek_volgnr
NUMBER(3)
CONSTRAINT prj_c_prs_werkplek_volgnr CHECK(prs_werkplek_volgnr IS NOT NULL)
, prs_werkplek_omschrijving
VARCHAR2(30)
, prs_werkplek_getekend
DATE
DEFAULT NULL
, prs_werkplek_verwijder
DATE
DEFAULT NULL
, CONSTRAINT prj_k_prj_werkplek PRIMARY KEY(prj_project_key,prs_werkplek_key)
, CONSTRAINT prj_r_prs_alg_ruimte_key FOREIGN KEY (prj_project_key,prs_alg_ruimte_key)
REFERENCES prj_ruimte(prj_project_key,alg_ruimte_key)
)
/
CREATE_TABLE(prj_verwerk_log,PRJ_NORMAAL_PRIVILEGE)
( prj_verwerk_log_key
);
CREATE_TABLE(prj_log, 0)
( prj_log_key
NUMBER(10) PRIMARY KEY
, prj_project_key
NUMBER(10)
CONSTRAINT prj_c_prj_project_key REFERENCES prj_project(prj_project_key)
, prj_session_id
, prj_scenario_key
NUMBER(10)
NOT_NULL(prj_scenario_key, prj_c_prj_scenario_key5)
CONSTRAINT prj_r_prj_scenario_key5 REFERENCES prj_scenario(prj_scenario_key)
, prj_log_datum
DATE
DEFAULT SYSDATE
, prj_log_code
VARCHAR(12) NOT NULL
, prj_log
VARCHAR(128)
)
/
, prj_log_omschrijving
VARCHAR(250)
);
CREATE_TABLE(prj_selectie, 0)
(
prj_selectie_key
NUMBER(10) _IDENTITY(10000000,1)
CONSTRAINT prj_k_prj_selectie_key PRIMARY KEY,
prj_scenario_key
NUMBER(10)
NOT_NULL(prj_scenario_key, prj_c_prj_scenario_key2)
CONSTRAINT prj_r_prj_scenario_key2 REFERENCES prj_scenario(prj_scenario_key) ON DELETE CASCADE,
prs_perslid_key
NUMBER(10)
CONSTRAINT prj_r_prs_perslid_key2 REFERENCES prs_perslid(prs_perslid_key) ON DELETE CASCADE,
prj_selectie_tabelnaam
VARCHAR2(32)
CONSTRAINT prj_c_prj_selectie_tabelnaam CHECK(prj_selectie_tabelnaam IN ('PRJ_WERKPLEK', 'PRJ_PERSLIDWERKPLEK', 'PRJ_DEEL', 'PRS_PERSLID', 'PRS_AFDELING'))
NOT_NULL(prj_selectie_tabelnaam, prj_c_prj_selectie_tabelnaam),
prj_selectie_tabelkey
NUMBER(10),
NOT_NULL(prj_selectie_tabelkey, prj_c_prj_selectie_tabelkey),
prj_selectie_aanmaak
DATE
DEFAULT SYSDATE
);
CREATE TABLE prj_scenario_xml
(
prj_scenario_key
NUMBER(10)
CONSTRAINT prj_r_scenario_xml_key REFERENCES prj_scenario (prj_scenario_key) ON DELETE CASCADE,
prj_scenario_xml
LONG,
prj_scenario_xml_datum
DATE
DEFAULT SYSDATE
NOT_NULL(prj_scenario_xml_datum,prj_c_prj_scenario_xml_datum),
prj_scenario_xml_volgnr
NUMBER
);
// Subject to discussion:
ALTER TABLE cad_imp_contour ADD prj_scenario_key NUMBER(10) REFERENCES prj_scenario(prj_scenario_key);
#endif // PRJ

View File

@@ -1,340 +1,73 @@
#ifdef PRJ
/* PRJ_TRI.SRC
*
* $Revision: 13 $
* $Modtime: 6-04-06 17:13 $
*/
#include "comsql.h"
/* Revisie:
**
** 28-09-1999 EGR prj_t_prj_ruimte_b_iu moet gebruik maken van alg_srtruimte_key bij controle van werkplekken.
** 27-08-1999 EGR prj_t_prj_ruimte_b_iu werkend gemaakt voor gecascadeerd verwijderen van ruimte, werkplek, object.
** 25-08-1999 RD Trigger <prj_t_prj_verwerk_log_B_IU> toegevoegd.
** 23-07-1999 EGR LOG verwijderd en ins_deel. gewijzigd in prj_deel. .
** 22-07-1999 EGR prj_t_prj_ruimte_B_IU, prj_t_prj_deel_b_iu, prj_t_prj_deel_s_b_iu,
** prj_t_prj_deel_s_a_iu, prj_t_prj_werkplek_b_iu aangemaakt.
** 20-04-1999 ABO Aangemaakt
*/
CREATE_TRIGGER(prj_t_prj_project_b_iu)
BEFORE INSERT OR UPDATE ON prj_project
CREATE_TRIGGER(prj_t_prj_scenario_b_iu)
BEFORE INSERT OR UPDATE ON prj_scenario
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prj_project_key
,prj_s_prj_project_key);
UPDATE_PRIMARY_KEY(prj_scenario_key, prj_s_prj_scenario_key);
END;
/
CREATE_TRIGGER(cad_t_cad_tekening_B_IU)
BEFORE INSERT OR UPDATE ON cad_tekening
CREATE_TRIGGER(prj_t_prj_scenario_note_b_iu)
BEFORE INSERT OR UPDATE ON prj_scenario_note
FOR EACH ROW
BEGIN
-- Deze trigger is ook gedefinieerd in CAD !!
UPDATE_PRIMARY_KEY(cad_tekening_key
,cad_s_cad_tekening_key);
UPDATE_AANMAAKDATUM(cad_tekening
,cad_tekening_aanmaak);
IF :new.cad_tekening_type IN ('P', 'C') AND
:new.ins_discipline_key IS NOT NULL
THEN
RAISE_APPLICATION_ERROR(-20000, 'CAD_M010');
END IF;
IF :new.prj_project_key IS NOT NULL
THEN
:new.cad_tekening_filenaam := :new.cad_tekening_key ||'.DWG';
END IF;
UPDATE_PRIMARY_KEY(prj_scenario_note_key, prj_s_prj_scenario_note_key);
END;
/
CREATE_TRIGGER(prj_t_prj_ruimte_B_IU)
CREATE_TRIGGER(prj_t_prj_ruimte_b_iu)
BEFORE INSERT OR UPDATE ON prj_ruimte
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_ruimte_key
,alg_s_alg_onroerendgoed_keys);
CHECK_CADMUTATIE(alg_ruimte_verwijder
,alg_ruimte_getekend
,'alg_m245');
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 prj_werkplek PRS_W
, alg_srtruimte SR_1
, alg_srtruimte SR_2
WHERE SR_1.alg_srtruimte_key = :old.alg_srtruimte_key
AND SR_2.alg_srtruimte_key = :new.alg_srtruimte_key
AND SR_1.prs_bevat_werkplek = 1
AND SR_2.prs_bevat_werkplek IS NULL
AND prs_werkplek_verwijder IS NULL
AND prs_alg_ruimte_key = :new.alg_ruimte_key
AND prj_project_key = :new.prj_project_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;
/*
** Als de ruimte verwijderd wordt, dan moeten ook de bijbehorende
** werkplekken verwijderd worden.
*/
BEGIN
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 prj_werkplek
SET prs_werkplek_verwijder = :new.alg_ruimte_verwijder
, prs_werkplek_getekend = :new.alg_ruimte_getekend
WHERE prj_werkplek.prs_alg_ruimte_key = :new.alg_ruimte_key
AND prj_werkplek.prj_project_key = :new.prj_project_key;
END IF;
END;
/*
** Als de ruimte verwijderd wordt, dan moeten ook de bijbehorende
** objecten verwijderd wordne.
*/
BEGIN
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 prj_deel
SET ins_deel_verwijder = :new.alg_ruimte_verwijder
, ins_deel_getekend = :new.alg_ruimte_getekend
WHERE prj_deel.ins_alg_ruimte_key = :new.alg_ruimte_key
AND prj_deel.prj_project_key = :new.prj_project_key
AND ins_alg_ruimte_type <> 'W';
END IF;
END;
UPDATE_PRIMARY_KEY(prj_ruimte_key, prj_s_prj_ruimte_key);
:new.prj_ruimte_upper_nr := UPPER(:new.prj_ruimte_nr);
END;
/
CREATE_TRIGGER(prj_t_prj_deel_S_B_IU)
BEFORE INSERT OR UPDATE ON prj_deel
DECLARE
Dummy BOOLEAN;
BEGIN
Dummy := fac_p_fac_save_restore.ResetSelectie('PRJ_DEEL');
Dummy := fac_p_fac_save_restore.ResetSelectie('PRJ_DEEL_VERWIJDER');
Dummy := fac_p_fac_save_restore.ResetSelectie('PRJ_DEEL_CASCADE');
Dummy := fac_p_fac_save_restore.ResetSelectie('PRJ_DEEL_PROJECT');
END;
/
CREATE_TRIGGER(prj_t_prj_deel_B_IU)
BEFORE INSERT OR UPDATE ON prj_deel
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(ins_deel_key
,ins_s_ins_inst_keys);
CHECK_CADMUTATIE2(ins_deel_verwijder
,ins_deel_getekend
,ins_alg_ruimte_key
,'ins_m187');
/*
** Het zetten van de verwijderingsdatum gebeurt via FAC_P_FAC_SAVE_RESTORE-package. De key
** voor het verwijderen wordt vastgelegd als tabelnaam PRJ_DEEL_VERWIJDER.
** Verwijderen van INS_DEELKOPPELING-records gebeurt via FAC_P_FAC_SAVE_RESTORE-package.
** Hier hoeft alleen de PRJ_DEEL_KEY onthouden te worden.
** anders krijg je ORA-4094: Mutating-trigger-bla.
*/
IF :new.ins_deel_verwijder IS NOT NULL
THEN
DECLARE
Dummy BOOLEAN;
BEGIN
Dummy := fac_p_fac_save_restore.SavePrimaryKey('PRJ_DEEL' , :new.ins_deel_key);
Dummy := fac_p_fac_save_restore.SavePrimaryKey('PRJ_DEEL_VERWIJDER', :new.ins_deel_key);
Dummy := fac_p_fac_save_restore.SavePrimaryKey('PRJ_DEEL_PROJECT' , :new.prj_project_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;
/*
** Vul het veld INS_ALG_LOCATIE_KEY van het huidige deel
*/
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 prj_project_locatie_key
INTO :new.ins_alg_locatie_key
FROM prj_project
WHERE prj_project_key = :new.prj_project_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN :new.ins_alg_locatie_key := NULL;
END;
END IF;
/*
** Bij INS_DEEL moet INS_ALG_RUIMTE_KEY ingevuld zijn
** en wel met ruimte, werkplek of terreinsector.
** Daarvoor moet ook het INS_ALG_RUIMTE_TYPE veld goed ingevuld zijn
** (met 'R' of 'W' of 'T').
** Dit geldt als INS_ALG_RUIMTE_KEY veranderd is of als er een
** nieuw record geinsert wordt.
*/
IF (: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'
THEN
DECLARE
dummy NUMBER(10);
BEGIN
SELECT prs_werkplek_key
INTO dummy
FROM prj_v_aanwezigwerkplek
WHERE prs_werkplek_key = :new.ins_alg_ruimte_key
AND prj_project_key = :new.prj_project_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN APPLICATION_ERROR(-20000,'ins_m174');
END;
ELSIF :new.ins_alg_ruimte_type = 'R'
THEN
DECLARE
dummy NUMBER(10);
BEGIN
SELECT alg_ruimte_key
INTO dummy
FROM prj_v_aanwezigruimte
WHERE alg_ruimte_key = :new.ins_alg_ruimte_key
AND prj_project_key = :new.prj_project_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN APPLICATION_ERROR(-20000,'ins_m092');
END;
ELSIF :new.ins_alg_ruimte_type = 'T'
THEN
null;
/* terreinsector wordt nog niet gebuikt in project.
DECLARE
dummy NUMBER(10);
BEGIN
SELECT alg_terreinsector_key
INTO dummy
FROM prj_v_aanwezigterreinsector
WHERE alg_terreinsector_key = :new.ins_alg_ruimte_key
AND prj_project_key = :new.prj_project_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN APPLICATION_ERROR(-20000,'ins_m095');
END;
*/
ELSE
APPLICATION_ERROR(-20000, 'ins_m84');
END IF;
DECLARE
Dummy BOOLEAN;
BEGIN
Dummy := fac_p_fac_save_restore.SavePrimaryKey('PRJ_DEEL_CASCADE', :new.ins_deel_key);
END;
END IF;
END;
/
CREATE_TRIGGER(prj_t_prj_deel_S_A_IU)
AFTER INSERT OR UPDATE ON prj_deel
BEGIN
DECLARE
IndexNr NUMBER;
PrimaryKey NUMBER(10);
ProjectKey NUMBER(10);
Dummy BOOLEAN;
BEGIN
/* Zet de verwijderdatum voor PRJ_DEEL. */
IndexNr := 1;
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('PRJ_DEEL', IndexNr);
ProjectKey := fac_p_fac_save_restore.GetPrimaryKey('PRJ_DEEL_PROJECT',1);
WHILE PrimaryKey IS NOT NULL
LOOP
UPDATE prj_deel
SET ins_deel_verwijder = SYSDATE
WHERE prj_deel.ins_deel_parent_key = PrimaryKey
AND prj_project_key = ProjectKey
AND ins_deel_verwijder IS NULL;
IndexNr := IndexNr + 1;
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('PRJ_DEEL_VERWIJDER', IndexNr);
END LOOP;
Dummy := fac_p_fac_save_restore.ResetSelectie('PRJ_DEEL_VERWIJDER');
/*
** (onder)deel is verplaatst; dus ook de children naar die plaats.
*/
IndexNr := 1;
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('PRJ_DEEL_CASCADE', IndexNr);
WHILE PrimaryKey IS NOT NULL
LOOP
UPDATE prj_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 prj_deel
WHERE ins_deel_key = PrimaryKey
AND prj_project_key = ProjectKey)
WHERE prj_deel.ins_deel_parent_key = PrimaryKey
AND prj_project_key = ProjectKey;
IndexNr := IndexNr + 1;
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('PRJ_DEEL_CASCADE', IndexNr);
END LOOP;
Dummy := fac_p_fac_save_restore.ResetSelectie('PRJ_DEEL_CASCADE');
Dummy := fac_p_fac_save_restore.ResetSelectie('PRJ_DEEL_PROJECT');
END;
END;
/
CREATE_TRIGGER(prj_t_prj_werkplek_B_IU)
CREATE_TRIGGER(prj_t_prj_werkplek_b_iu)
BEFORE INSERT OR UPDATE ON prj_werkplek
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_werkplek_key
,prs_s_prs_werkplek_key);
CHECK_CADMUTATIE2(prs_werkplek_verwijder
,prs_werkplek_getekend
,prs_alg_ruimte_key
,'prs_m161');
BEGIN
IF :new.prs_werkplek_verwijder IS NOT NULL
OR (:new.prs_werkplek_verwijder IS NULL AND :old.prs_werkplek_verwijder IS NOT NULL)
THEN
UPDATE prj_deel
SET ins_deel_verwijder = :new.prs_werkplek_verwijder
, ins_deel_getekend = :new.prs_werkplek_getekend
WHERE prj_deel.ins_alg_ruimte_key = :new.prs_werkplek_key
AND prj_deel.prj_project_key = :new.prj_project_key
AND ins_alg_ruimte_type = 'W';
END IF;
END;
UPDATE_PRIMARY_KEY(prj_werkplek_key, prj_s_prj_werkplek_key);
END;
/
CREATE_TRIGGER(prj_t_prj_verwerk_log_B_IU)
BEFORE INSERT OR UPDATE ON prj_verwerk_log
CREATE_TRIGGER(prj_t_prj_perslidwerkplek_b_iu)
BEFORE INSERT OR UPDATE ON prj_perslidwerkplek
FOR EACH ROW
BEGIN
IF :new.prj_verwerk_log_key IS NULL THEN SELECT prj_s_prj_verwerk_log_key.nextval INTO :new.prj_verwerk_log_key FROM DUAL; END IF;
UPDATE_PRIMARY_KEY(prj_perslidwerkplek_key, prj_s_prj_perslidwerkplek_key);
END;
/
CREATE_TRIGGER(prj_t_prj_deel_b_iu)
BEFORE INSERT OR UPDATE ON prj_deel
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prj_deel_key, prj_s_prj_deel_key);
END;
/
CREATE_TRIGGER(prj_t_prj_log_b_iu)
BEFORE INSERT OR UPDATE ON prj_log
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prj_log_key, prj_s_prj_log_key);
END;
/
CREATE_TRIGGER(prj_t_prj_selectie_b_iu)
BEFORE INSERT OR UPDATE ON prj_selectie
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prj_selectie_key, prj_s_prj_selectie_key);
END;
/
#endif // PRJ

File diff suppressed because it is too large Load Diff