svn path=/Database/trunk/; revision=6324

This commit is contained in:
Peter Feij
1998-09-23 08:56:36 +00:00
parent ea4e3c818f
commit 617225ec60
86 changed files with 36834 additions and 0 deletions

0
ALG/.gitignore vendored
View File

61
ALG/ALGSQL.H Normal file
View File

@@ -0,0 +1,61 @@
/* SET_DWGUPTODATE: set de dwg_uptodate-velden op SYSDATE van de records die
* nog niet een waarde hebben.
* TRICKY: er wordt ipv. '=' 'IN' gebruikt, omdat reference_key meestal
* een SELECT-statement is en IN gelijk is aan = voor een keiharde waarde.
*
* History:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* 12-07-96 EH Een varariant van SET_VERWIJDER_CHILDREN toegevoegd t.b.v.
* ins_deel.
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* 01-05-96 Created
*/
#define SET_DWGUPTODATE(table, primary_key, reference_key, dwg_uptodate) \
BEGIN \
UPDATE table \
SET dwg_uptodate = SYSDATE \
WHERE dwg_uptodate IS NULL \
AND primary_key IN reference_key; \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
END
#define SET_VERWIJDER_CHILDREN_DEEL(child_table, parent_key, parent_verwijder, \
child_verwijder, child_key) \
BEGIN \
IF :new.parent_verwijder IS NOT NULL \
THEN \
UPDATE child_table \
SET child_verwijder = SYSDATE \
WHERE \
child_table.child_key = :new.parent_key AND \
child_verwijder IS NULL; \
END IF; \
END

65
ALG/ALG_IND.SRC Normal file
View File

@@ -0,0 +1,65 @@
#ifdef ALG // 13-03-96 AH
/*
* Revisie:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* 26-06-1998 BIV - LOG#1906 Indexen voor Alg_ruimte toegevoegd.
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* 07-10-96 AH Indexen voor Objectdeel, Systeemcluster, Bouwdeel enz.
* toegevoegd
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 22-01-96 AH Index ALG_I_ALG_TERREINSECTOR1 toegevoegd.
* 18-01-96 RW remake
*/
create index alg_i_alg_district1 on alg_district(alg_regio_key);
create index alg_i_alg_locatie1 on alg_locatie(alg_district_key);
CREATE INDEX alg_i_alg_terreinsector1 ON alg_terreinsector(alg_locatie_key);
create index alg_i_alg_gebouw1 on alg_gebouw(alg_locatie_key);
create index alg_i_alg_gebouw2 on alg_gebouw(alg_srtgebouw_key);
create index alg_i_alg_verdieping1 on alg_verdieping(alg_gebouw_key);
create index alg_i_alg_ruimte1 on alg_ruimte(alg_verdieping_key);
create index alg_i_alg_ruimte2 on alg_ruimte(alg_srtruimte_key);
create index alg_i_alg_ruimte3 on alg_ruimte(alg_ruimte_key, alg_ruimte_nr);
CREATE INDEX alg_i_alg_objectdeel1 ON alg_objectdeel(alg_locatie_key);
CREATE INDEX alg_i_alg_systeemcluster1 ON alg_systeemcluster(alg_objectdeel_key);
CREATE INDEX alg_i_alg_gebouw3 ON alg_gebouw(alg_systeemcluster_key);
CREATE INDEX alg_i_alg_terreinsector2 ON alg_terreinsector(alg_systeemcluster_key);
CREATE INDEX alg_i_alg_bouwdeel1 ON alg_bouwdeel(alg_gebouw_key);
CREATE INDEX alg_i_alg_verdieping2 ON alg_verdieping(alg_bouwdeel_key);
#endif // ALG

153
ALG/ALG_INI.SRC Normal file
View File

@@ -0,0 +1,153 @@
#ifdef ALG // 13-03-96 AH
/*
* ALG tables for Facilitor: installation time population
*/
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* 20-05-98 KTH Gebruik macro om FAC_MODULE te vullen
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* 20-08-97 KTH LOG#1434: #ifdef IBG de Ruimtesoorten voordefinieren
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* 29-07-96 KTH De default data voor ALG_SRTGEBOUW verwijderd omdat dat
* toch overal verschilt. Liever in apart data-script.
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* --- 01.14 ---
* 16-04-96 KTH #ifdef DATA om default vulling gezet
* --- 01.13 ---
* --- 01.12 ---
* 03-04-96 PF Initiele vulling toegevoegd
* 01-04-96 KTH 02.04
* 19-03-96 KTH 02.03
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 04-03-96 PF 02.02
* 14-02-96 PF 02.01: unique constraints ipv triggers
* 05-02-96 KTH Spool toegevoegd
* 03-01-96 PF Gebruik sysdate
* 13-10-95 PF Creation
*/
_FAC_MODULE('ALG','Onroerend goed')
#ifdef DATA
#ifdef IBG
/* 20-08-97/KTH LOG#1434: Voor IBG de Ruimtesoorten voordefinieren */
DELETE FROM alg_srtruimte;
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Accuruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Aircoruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Archiefruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Berging');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Berging rijwielen/bromfietsen');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Bibliotheek');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Brandslanghaspelkast');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Buffet');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('BZB-ruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('CV-ruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Computerruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Concierge');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Containerruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Couverteerruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Doucheruimte dames');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Doucheruimte heren');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Doucheruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Filterruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Gang');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Gang/portaal');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Garderobe');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Hal');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Hydrofoorruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Input');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Installatieruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Instructieruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Kantine');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Kantoorruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Kast');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Ketelhuis');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Keuken');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Kleedruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Kleedruimte dames');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Kleedruimte heren');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Kluis');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Koekoek');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Koelmachineruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Koeltoren');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Laagspanningsruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Leidingen');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Lift');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Liftmachinekamer');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Lorrie');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Luchtbehandelingsruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Magazijn');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Meterkast');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Meterkast elektra');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Meterkast gas');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Meterkast ptt');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Noodstroomaggregaat');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Onbekend');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Onderhoud');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Onderzoekruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Operatorruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Opslagruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Output');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Patio');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Pauzeruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Portaal');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Portier');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Postkamer');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Printerruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Provisieruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Rekencentrum');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Reproruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Schacht');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Schakelruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Snijkamer');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Spoelkeuken');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Spreekkamer');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Tekenruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Technischeruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Toilet');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Toilet dames');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Toilet heren');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Toilet invaliden');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Urinoir');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Toiletvoorruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Toiletvoorruimte dames');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Toiletvoorruimte heren');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Traforuimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Trappenhuis');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Uitgifte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Ventilatorruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Vergaderruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Verkeersruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Vouwruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Wachtruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Werkkast');
COMMIT;
#endif // IBG
#endif // DATA
#endif // ALG

61
ALG/ALG_SEQ.SRC Normal file
View File

@@ -0,0 +1,61 @@
#ifdef ALG // 13-03-96 AH
/*
* Revisie:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* 20-05-98 BIV ALG_S_ALG_SRTVLOER_KEY toegevoegd
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* 29-11-96 AH ALG_S_ALG_SRTVERDIEPING_KEY toegevoegd
* 28-11-96 AH ALG_S_ALG_SRTTERREIN_KEY toegevoegd
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* 07-10-96 AH Nieuwe sequences voor Objectdeel, Systeemcluster, Bouwdeel
* toegevoegd
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* 22-05-96 AH ALG_KOSTENPOST toegevoegd
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 13-03-96 AH NIEUWE OPZET SRC-files.
*
*/
CREATE SEQUENCE alg_s_alg_import_key MINVALUE 1;
CREATE SEQUENCE alg_s_alg_regio_key MINVALUE 1;
CREATE SEQUENCE alg_s_alg_district_key MINVALUE 1;
CREATE SEQUENCE alg_s_alg_locatie_key MINVALUE 1;
CREATE SEQUENCE alg_s_alg_onroerendgoed_keys MINVALUE 1;
CREATE SEQUENCE alg_s_alg_srtgebouw_key MINVALUE 1;
CREATE SEQUENCE alg_s_alg_srtruimte_key MINVALUE 1;
CREATE SEQUENCE alg_s_alg_kostenpost_key MINVALUE 1;
CREATE SEQUENCE alg_s_alg_objectdeel_key MINVALUE 1;
CREATE SEQUENCE alg_s_alg_systeemcluster_key MINVALUE 1;
CREATE SEQUENCE alg_s_alg_bouwdeel_key MINVALUE 1;
CREATE SEQUENCE alg_s_alg_srtterrein_key MINVALUE 1;
CREATE SEQUENCE alg_s_alg_srtverdieping_key MINVALUE 1;
CREATE SEQUENCE alg_s_alg_srtvloer_key MINVALUE 1;
#endif // ALG

892
ALG/ALG_TAB.SRC Normal file
View File

@@ -0,0 +1,892 @@
#ifdef ALG // 13-03-96 AH
/* ALG\CREA_TAB
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* 22-05-1998 KTH Foutieve komma achter ALTER TABLE bij ALG_RUIMTE_OMTREK verwijderd
* 11/05/1998 BIV Tabel ALG_SRTVLOER toegevoegd.
* --- 01.36 ---
* --- 01.35 ---
* 16/04/1998 AH Controle op vulling AKZ-velden nu in de schermen ALG114 en ALG119
* 09/04/1998 AH Extra AKZ-velden in ALG_GEBOUW, ALG_TERREINSECTOR
* --- 01.34 ---
* 03/02/1998 AH ALG_VERDIEPING_IN_BEWERKING toegevoegd.
* 14/01/1998 AH Reference-controle op ALG_SRTRUIMTE in ALG_RUIMTE aangepast
* 13/11/1997 AH #1473, Constraintnamen toegevoegd
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* 29-07-97 AH LOG#1400, ALG_IMPORT_RUIMTENR nu 10 ipv 6
* 28-07-97 AH IMPORT_SRTVLOER: In ALG_IMPORT-table moet ALG_IMPORT_VLOER-kolom toegevoegd
* worden
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* 16-04-97 AH 3 CREATE TABLE's gewijzigd in CREATE_TABLE() tbv CREA_BBS
* --- 01.26 ---
* --- 01.25 ---
* 31-01-97 AH DOOS_IMP: DOOS_-tabellen aangemaakt voor import.
* --- 01.24 ---
* 28-11-96 AH Voor uitbrieding op datamodel voor BEBIS extra velden in
* ALG-tabellen toegevoegd.
* ACADKEY's uitgebreid naar 10 chars
* --- 01.23 ---
* --- 01.22 ---
* 07-11-96 AH LOG#976: ALG_RUIMTE-velden toevoegd voor SCH-module
* --- 01.21 ---
* 07-10-96 AH ALG_OBJECTDEEL, ALG_SYSTEEMCLUSTER, ALG_BOUWDEEL toegevoegd
* ALG_REGIO, ALG_DISTRICT, ALG_LOCATIE, ALG_GEBOUW,
* ALG_TERREINSECTOR, ALG_VERDIEPING aangepast.
* --- 01.20 ---
* 18-09-96 KTH ALG_KOSTENPOST moet een NORMAAL_PRIVILEGE hebben omdat die
* wordt aangepast bij het verwerken van een opdracht
* --- 01.19 ---
* 18-07-96 RW ALG_TERREINSECTOR_CODE/NAAM toegevoegd
* 17-07-96 RW ALG_GEBOUW_CODE/NAAM toegevoegd.
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* 22-05-96 AH ALG_KOSTENPOST toegevoegd.
* 15-05-96 EH Velden alg_locatie_verantw en alg_locatie_verantw_tel
* toegevoegd aan alg_locatie.
* 01-05-96 AH ..\COMSQL.H aangepast.
* 29-04-96 RW Privileges aangepast
* 22-04-96 AH Typeveld van ALG_VERDIEPING_KEY in ruimte aangemaakt, deze
* ontbrak. (#535)
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 01-04-96 KTH Gebuik CREATE_TABLE()
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 13-02-96 PF UNIQUE constraint toegevoegd ipv de triggers
* NB: hierdoor klein functionaliteitsverschil als
* LOCATIE_CODE_BINNEN_REGIO is vervallen: dit is nu
* 'LOCATIE_CODE_BINNEN_world'. locatie_code was al uniek;
* het onderscheid werd gemaakt op de omschrijving.
* Analoog: RUIMTE_NUMMER_BINNEN_GEBOUW: binnen verdieping
* is ContourA-eis, dus deze (uniek binnen verdieping) is
* gekozen.
* Ook optie DISTRICT_BINNEN_REGIO is vervallen. Dit is nu
* altijd zo.
* 19-01-96 AH ALG_TERREINSECTOR toegevoegd.
* 17-01-96 AH De UNIQUE uit alg_locatie bij alg_locatie_code gehaald.
* Deze UNIQUE moet alleen op aanwezige locaties komen,
* als trigger.
* 12-01-96 PF default datum veranderd
* 12-01-96 KTH alg_import toegevoegd
* 21-12-95 AH alg_ruimte_omschrijving mag NULL zijn.
* 28-11-95 PF alg_verdieping_tekening toegevoegd
* 30-11-95 KTH alg_locatie_tekening toegevoegd
* 01-12-95 KTH alg_gebouw_acadkey en alg_ruimte_acadkey toegevoegd
* 05-12-95 EH alle #bco verwijderd.
*
*/
#include "comsql.h"
CREATE_TABLE(alg_regio,NORMAAL_PRIVILEGE)
(
alg_regio_key
NUMBER(10)
CONSTRAINT alg_k_alg_regio_key PRIMARY KEY,
alg_regio_omschrijving
VARCHAR2(30)
NOT_NULL(alg_regio_omschrijving, alg_c_alg_regio_omschrijving),
alg_regio_upper
VARCHAR2(30)
NOT_NULL(alg_regio_upper, alg_c_alg_regio_upper),
alg_regio_aanmaak
DATE
DEFAULT SYSDATE
CONSTRAINT alg_c_alg_regio_aanmaak NOT NULL,
alg_regio_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT alg_u_alg_regio_upper UNIQUE(alg_regio_upper, alg_regio_verwijder)
);
CREATE_TABLE(alg_district,NORMAAL_PRIVILEGE)
(
alg_district_key
NUMBER(10)
CONSTRAINT alg_k_alg_district_key PRIMARY KEY,
alg_regio_key
NUMBER(10)
CONSTRAINT alg_r_alg_regio_key REFERENCES alg_regio(alg_regio_key),
alg_district_omschrijving
VARCHAR2(30)
NOT_NULL(alg_district_omschrijving, alg_c_alg_district_omschr),
alg_district_upper
VARCHAR2(30)
NOT_NULL(alg_district_upper, alg_c_alg_district_upper),
alg_district_aanmaak
DATE
DEFAULT SYSDATE
CONSTRAINT alg_c_alg_district_aanmaak NOT NULL,
alg_district_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT alg_u_alg_district_upper UNIQUE(alg_regio_key, alg_district_upper,alg_district_verwijder)
);
CREATE_TABLE(alg_locatie,NORMAAL_PRIVILEGE)
(
alg_locatie_key
NUMBER(10)
CONSTRAINT alg_k_alg_locatie_key PRIMARY KEY,
alg_district_key
NUMBER(10)
CONSTRAINT alg_r_alg_district_key REFERENCES alg_district(alg_district_key),
alg_locatie_code
VARCHAR2(5)
NOT_NULL(alg_locatie_code, alg_c_alg_locatie_code),
alg_locatie_omschrijving
VARCHAR2(30)
NOT_NULL(alg_locatie_omschrijving, alg_c_alg_locatie_omschrijving),
alg_locatie_upper
VARCHAR2(30)
NOT_NULL(alg_locatie_upper, alg_c_alg_locatie_upper),
alg_locatie_aanmaak
DATE
DEFAULT SYSDATE
CONSTRAINT alg_c_alg_locatie_aanmaak NOT NULL,
alg_locatie_verwijder
DATE
DEFAULT NULLDATUM,
alg_locatie_adres
VARCHAR2(35),
alg_locatie_postcode
VARCHAR2(12),
alg_locatie_plaats
VARCHAR2(30),
alg_locatie_land
VARCHAR2(30),
alg_locatie_post_adres
VARCHAR2(35),
alg_locatie_post_postcode
VARCHAR2(12),
alg_locatie_post_plaats
VARCHAR2(30),
alg_locatie_post_land
VARCHAR2(30),
alg_locatie_tekening /* references the drawingfile */
VARCHAR2(32),
alg_locatie_verantw
VARCHAR2(30),
alg_locatie_verantw_tel
VARCHAR2(15),
CONSTRAINT alg_u_alg_locatie_code UNIQUE(alg_locatie_code, alg_locatie_verwijder),
CONSTRAINT alg_u_alg_locatie_upper UNIQUE(alg_district_key, alg_locatie_upper, alg_locatie_verwijder)
);
CREATE_TABLE(alg_terreinsector,NORMAAL_PRIVILEGE)
(
alg_terreinsector_key
NUMBER(10)
CONSTRAINT alg_k_alg_terreinsector_key PRIMARY KEY,
alg_locatie_key
NUMBER(10)
NOT_NULL(alg_locatie_key, alg_r_alg_locatie_key1)
CONSTRAINT alg_r_alg_locatie_key2 REFERENCES alg_locatie(alg_locatie_key),
alg_terreinsector_omschrijving
VARCHAR2(30)
NOT_NULL(alg_terreinsector_omschrijving, alg_c_alg_terreinsector_omschr),
alg_terreinsector_code
VARCHAR2(10)
NOT_NULL(alg_terreinsector_code, alg_c_alg_terreinsector_code),
alg_terreinsector_naam
VARCHAR2(30)
NOT_NULL(alg_terreinsector_naam, alg_c_alg_terreinsector_naam),
alg_terreinsector_upper
VARCHAR2(30)
NOT_NULL(alg_terreinsector_upper, alg_c_alg_terreinsector_upper),
alg_terreinsector_aanmaak
DATE
DEFAULT SYSDATE
CONSTRAINT alg_c_alg_terreinsector_aanm NOT NULL,
alg_terreinsector_verwijder
DATE
DEFAULT NULLDATUM,
#ifdef AKZ
akz_internalordernr
VARCHAR2(6)
// NOT_NULL(akz_internalordernr, akz_c_terrein_internalordernr)
,
CONSTRAINT akz_u_terrein_internalordernr UNIQUE(akz_internalordernr, alg_terreinsector_verwijder),
#endif
CONSTRAINT alg_u_alg_terreinsector_upper UNIQUE(alg_locatie_key, alg_terreinsector_upper, alg_terreinsector_verwijder)
);
CREATE_TABLE(alg_srtgebouw,BIBLIOTHEEK_PRIVILEGE)
(
alg_srtgebouw_key
NUMBER(10)
CONSTRAINT alg_k_alg_srtgebouw_key PRIMARY KEY,
alg_srtgebouw_omschrijving
VARCHAR2(30)
NOT_NULL(alg_srtgebouw_omschrijving, alg_c_alg_srtgebouw_omschr),
alg_srtgebouw_upper
VARCHAR2(30)
NOT_NULL(alg_srtgebouw_upper, alg_c_alg_srtgebouw_upper),
alg_srtgebouw_aanmaak
DATE
DEFAULT SYSDATE
CONSTRAINT alg_c_alg_srtgebouw_aanmaak NOT NULL,
alg_srtgebouw_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT alg_u_alg_srtgebouw_upper UNIQUE(alg_srtgebouw_upper, alg_srtgebouw_verwijder)
);
CREATE_TABLE(alg_gebouw,NORMAAL_PRIVILEGE)
(
alg_gebouw_key
NUMBER(10)
CONSTRAINT alg_k_alg_gebouw_key PRIMARY KEY,
alg_locatie_key
NUMBER(10)
NOT_NULL(alg_locatie_key, alg_r_gebouw_loc_key1)
CONSTRAINT alg_r_gebouw_loc_key2 REFERENCES alg_locatie(alg_locatie_key),
alg_srtgebouw_key
NUMBER(10)
CONSTRAINT alg_r_alg_srtgebouw_key REFERENCES alg_srtgebouw(alg_srtgebouw_key),
alg_gebouw_acadkey
VARCHAR2(10),
alg_gebouw_naam
VARCHAR2(30)
NOT_NULL(alg_gebouw_naam, alg_c_alg_gebouw_naam),
alg_gebouw_code
VARCHAR2(10)
NOT_NULL(alg_gebouw_code, alg_c_alg_gebouw_code),
alg_gebouw_omschrijving
VARCHAR2(30)
NOT_NULL(alg_gebouw_omschrijving, alg_c_alg_gebouw_omschrijving),
alg_gebouw_upper
VARCHAR2(30)
NOT_NULL(alg_gebouw_upper, alg_c_alg_gebouw_upper),
alg_gebouw_aanmaak
DATE
DEFAULT SYSDATE
CONSTRAINT alg_c_alg_gebouw_aanmaak NOT NULL,
alg_gebouw_verwijder
DATE
DEFAULT NULLDATUM,
alg_gebouw_bruto_vloeropp
NUMBER(9,2)
CONSTRAINT alg_c_alg_gebouw_vloeropp CHECK(alg_gebouw_bruto_vloeropp >= 0),
alg_gebouw_inhoud
NUMBER(10),
CONSTRAINT alg_c_alg_gebouw_inhoud CHECK(alg_gebouw_inhoud >= 0),
alg_gebouw_opmerking
VARCHAR2(50),
#ifdef AKZ
akz_internalordernr
VARCHAR2(6)
// NOT_NULL(akz_internalordernr, akz_c_gebouw_internalordernr)
,
CONSTRAINT akz_u_gebouw_internalordernr UNIQUE(akz_internalordernr, alg_gebouw_verwijder),
#endif
CONSTRAINT alg_u_alg_gebouw_upper UNIQUE(alg_locatie_key, alg_gebouw_upper, alg_gebouw_verwijder)
);
CREATE_TABLE(alg_verdieping,NORMAAL_PRIVILEGE)
(
alg_verdieping_key
NUMBER(10)
CONSTRAINT alg_k_alg_verdieping_key PRIMARY KEY,
alg_gebouw_key
NUMBER(10)
NOT_NULL(alg_gebouw_key, alg_r_alg_gebouw_key1)
CONSTRAINT alg_r_alg_gebouw_key2 REFERENCES alg_gebouw(alg_gebouw_key),
alg_verdieping_omschrijving
VARCHAR2(30)
NOT_NULL(alg_verdieping_omschrijving, alg_c_alg_verdieping_omschr),
alg_verdieping_upper
VARCHAR2(30)
NOT_NULL(alg_verdieping_upper, alg_c_alg_verdieping_upper),
alg_verdieping_aanmaak
DATE
DEFAULT SYSDATE
CONSTRAINT alg_c_alg_verdieping_aanmaak NOT NULL,
alg_verdieping_verwijder
DATE
DEFAULT NULLDATUM,
alg_verdieping_volgnr
NUMBER(3)
NOT_NULL(alg_verdieping_volgnr, alg_c_alg_verdieping_volgnr),
alg_verdieping_tekening /* references the drawingfile */
VARCHAR2(32),
alg_verdieping_in_bewerking
NUMBER(1)
CONSTRAINT alg_c_alg_verdieping_in_bewerk CHECK(alg_verdieping_in_bewerking IS NULL
OR alg_verdieping_in_bewerking = 1),
CONSTRAINT alg_u_alg_verdieping_upper UNIQUE(alg_gebouw_key, alg_verdieping_upper, alg_verdieping_verwijder),
CONSTRAINT alg_u_alg_verdieping_volgnr UNIQUE(alg_gebouw_key, alg_verdieping_volgnr, alg_verdieping_verwijder)
);
CREATE_TABLE(alg_srtruimte,BIBLIOTHEEK_PRIVILEGE)
(
alg_srtruimte_key
NUMBER(10)
CONSTRAINT alg_k_alg_srtruimte_key PRIMARY KEY,
alg_srtruimte_omschrijving
VARCHAR2(30)
NOT_NULL(alg_srtruimte_omschrijving, alg_c_alg_srtruimte_omschr),
alg_srtruimte_upper
VARCHAR2(30)
NOT_NULL(alg_srtruimte_upper, alg_c_alg_srtruimte_upper),
alg_srtruimte_aanmaak
DATE
DEFAULT SYSDATE
CONSTRAINT alg_c_alg_srtruimte_aanmaak NOT NULL,
alg_srtruimte_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT alg_u_alg_srtruimte_upper UNIQUE(alg_srtruimte_upper, alg_srtruimte_verwijder)
);
CREATE_TABLE(alg_srtvloer,BIBLIOTHEEK_PRIVILEGE)
(
alg_srtvloer_key
NUMBER(10)
CONSTRAINT alg_k_alg_srtvloer_key PRIMARY KEY,
alg_srtvloer_omschrijving
VARCHAR2(30)
NOT_NULL(alg_srtvloer_omschrijving, alg_c_alg_srtvloer_omschr),
alg_srtvloer_upper
VARCHAR2(30)
NOT_NULL(alg_srtvloer_upper, alg_c_alg_srtvloer_upper),
alg_srtvloer_aanmaak
DATE
DEFAULT SYSDATE,
alg_srtvloer_verwijder
DATE
DEFAULT NULL,
CONSTRAINT alg_u_alg_srtvloer_upper UNIQUE(alg_srtvloer_upper, alg_srtvloer_verwijder)
);
CREATE_TABLE(alg_ruimte,NORMAAL_PRIVILEGE)
(
alg_ruimte_key
NUMBER(10)
CONSTRAINT alg_k_alg_ruimte_key PRIMARY KEY,
alg_verdieping_key
NUMBER(10)
NOT_NULL(alg_verdieping_key, alg_r_alg_verdieping_key1)
CONSTRAINT alg_r_alg_verdieping_key2 REFERENCES alg_verdieping(alg_verdieping_key),
alg_srtruimte_key
NUMBER(10)
CONSTRAINT alg_r_alg_srtruimte_key REFERENCES alg_srtruimte(alg_srtruimte_key),
alg_ruimte_nr
VARCHAR2(10)
NOT_NULL(alg_ruimte_nr, alg_c_alg_ruimte_nr),
alg_ruimte_upper_nr /* references into the drawing */
VARCHAR2(10)
NOT_NULL(alg_ruimte_upper_nr, alg_c_alg_ruimte_upper_nr),
alg_ruimte_acadkey
VARCHAR2(10),
alg_ruimte_omschrijving
VARCHAR2(30),
alg_ruimte_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(alg_ruimte_aanmaak, alg_c_alg_ruimte_aanmaak),
alg_ruimte_verwijder
DATE
DEFAULT NULLDATUM,
alg_ruimte_bruto_vloeropp
NUMBER(8,2)
CONSTRAINT alg_c_alg_ruimte_vloeropp CHECK(alg_ruimte_bruto_vloeropp >= 0),
alg_ruimte_inhoud
NUMBER(10)
CONSTRAINT alg_c_alg_ruimte_inhoud CHECK(alg_ruimte_inhoud >= 0),
alg_ruimte_opmerking
VARCHAR2(50),
alg_ruimte_vloer_omschrijving
VARCHAR2(15),
alg_ruimte_opp_gevelglas
NUMBER(8,2),
alg_ruimte_opp_separatieglas
NUMBER(8,2),
alg_ruimte_opp_gevelbekleding
NUMBER(8,2),
alg_srtvloer_key
NUMBER(10)
CONSTRAINT alg_r_alg_srtvloer_key REFERENCES alg_srtvloer(alg_srtvloer_key),
CONSTRAINT alg_u_alg_ruimte_upper_nr UNIQUE(alg_verdieping_key, alg_ruimte_upper_nr, alg_ruimte_verwijder)
);
CREATE_TABLE(alg_import,BASIS_PRIVILEGE)
(
alg_import_key
NUMBER(10)
CONSTRAINT alg_k_alg_import_key PRIMARY KEY,
alg_import_ruimtenr
VARCHAR2(10)
NOT_NULL(alg_import_ruimtenr, alg_c_alg_import_ruimtenr),
alg_import_omschr
VARCHAR2(30),
alg_import_opp
VARCHAR2(10),
alg_import_vloer
VARCHAR2(30)
);
/* ALG_KOSTENPOST heeft aanmaak- en verwijder-velden, omdat een kostenpost
* niet verwijderd kan worden door referencie naar MLD_OPDR of naar
* LEV_BESTELLING.
*
* 18-09-96/KTH
* NORMAAL_PRIVILEGE (ipv. BIBLIOTHEEK_PRIVILEGE) omdat bij het verwerken van
* een opdracht (waarvoor een NORMAAL_PRIVILEGE nodig is) de ALG_KOSTENPOST
* wordt geupdate
*/
CREATE_TABLE(alg_kostenpost,NORMAAL_PRIVILEGE)
(
alg_kostenpost_key
NUMBER(10)
CONSTRAINT alg_k_alg_kostenpost_key PRIMARY KEY,
alg_kostenpost_omschrijving
VARCHAR2(30),
alg_kostenpost_upper
VARCHAR2(30),
alg_kostenpost_budget
NUMBER(12,2)
NOT_NULL(alg_kostenpost_budget, alg_c_alg_kostenpost_budget1)
CONSTRAINT alg_c_alg_kostenpost_budget2 CHECK(alg_kostenpost_budget >= 0),
alg_kostenpost_besteed
NUMBER(12,2),
alg_kostenpost_datum /* Datum toekenning budget */
DATE,
alg_kostenpost_jaar /* Jaar waarin het budget geldig is */
NUMBER(4),
alg_kostenpost_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(alg_kostenpost_aanmaak, alg_c_alg_kostenpost_aanmaak),
alg_kostenpost_verwijder
DATE
DEFAULT NULLDATUM
);
ALTER TABLE alg_regio
ADD
(
alg_regio_module
VARCHAR2(3),
alg_regio_land
VARCHAR2(15),
alg_regio_tekening
VARCHAR2(32)
);
ALTER TABLE alg_regio
DROP UNIQUE(alg_regio_upper, alg_regio_verwijder);
ALTER TABLE alg_regio
ADD CONSTRAINT alg_u_alg_regio_upper UNIQUE(alg_regio_upper, alg_regio_module, alg_regio_verwijder);
ALTER TABLE alg_district
ADD
(
alg_district_module
VARCHAR2(3),
alg_district_code
VARCHAR2(1)
#ifdef BEB
NOT_NULL(alg_district_code, alg_c_alg_district_code)
#endif
,
alg_district_acadkey
VARCHAR2(10)
);
ALTER TABLE alg_district
DROP UNIQUE(alg_regio_key, alg_district_upper,alg_district_verwijder);
ALTER TABLE alg_district
ADD CONSTRAINT alg_u_alg_district_upper UNIQUE(alg_regio_key, alg_district_upper, alg_district_module, alg_district_verwijder);
ALTER TABLE alg_locatie
ADD
(
alg_district_key_2
NUMBER(10)
CONSTRAINT alg_r_alg_district_key_2 REFERENCES alg_district(alg_district_key),
alg_locatie_gemeente
VARCHAR2(30),
alg_locatie_provincie
VARCHAR2(15),
alg_locatie_oppervlak
NUMBER(10,2),
alg_locatie_omtrek
NUMBER(8,2)
);
CREATE_TABLE(alg_objectdeel, NORMAAL_PRIVILEGE)
(
alg_objectdeel_key
NUMBER(10)
CONSTRAINT alg_k_alg_objectdeel_key PRIMARY KEY,
alg_locatie_key
NUMBER(10)
CONSTRAINT alg_r_alg_locatie_key REFERENCES alg_locatie(alg_locatie_key),
alg_objectdeel_code
VARCHAR2(5)
NOT_NULL(alg_objectdeel_code, alg_c_alg_objectdeel_code),
alg_objectdeel_omschrijving
VARCHAR2(30)
NOT_NULL(alg_objectdeel_omschrijving, alg_c_alg_objectdeel_omschr),
alg_objectdeel_upper
VARCHAR2(30)
NOT_NULL(alg_objectdeel_upper, alg_c_alg_objectdeel_upper),
alg_objectdeel_acadkey
VARCHAR2(10),
alg_objectdeel_oppervlak
NUMBER(10,2),
alg_objectdeel_omtrek
NUMBER(8,2),
alg_objectdeel_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(alg_objectdeel_aanmaak, alg_c_alg_objectdeel_aanmaak),
alg_objectdeel_verwijder
DATE
DEFAULT NULL,
CONSTRAINT alg_u_alg_objectdeel_upper UNIQUE(alg_locatie_key, alg_objectdeel_upper, alg_objectdeel_verwijder)
);
CREATE_TABLE(alg_systeemcluster, NORMAAL_PRIVILEGE)
(
alg_systeemcluster_key
NUMBER(10)
CONSTRAINT alg_k_alg_systeemcluster_key PRIMARY KEY,
alg_objectdeel_key
NUMBER(10)
CONSTRAINT alg_r_alg_objectdeel_key REFERENCES alg_objectdeel(alg_objectdeel_key),
alg_systeemcluster_code
VARCHAR2(5)
NOT_NULL(alg_systeemcluster_code, alg_c_alg_systeemcluster_code),
alg_systeemclust_omschrijving
VARCHAR2(30)
NOT_NULL(alg_systeemclust_omschrijving, alg_c_alg_systeemclust_omschr),
alg_systeemcluster_upper
VARCHAR2(30)
NOT_NULL(alg_systeemcluster_upper, alg_c_alg_systeemcluster_upper),
alg_systeemcluster_acadkey
VARCHAR2(10),
alg_systeemcluster_oppervlak
NUMBER(10,2),
alg_systeemcluster_omtrek
NUMBER(8,2),
alg_systeemcluster_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(alg_systeemcluster_aanmaak, alg_c_alg_systeemcluster_aanm),
alg_systeemcluster_verwijder
DATE
DEFAULT NULL,
CONSTRAINT alg_u_alg_systeemcluster_upper UNIQUE(alg_objectdeel_key, alg_systeemcluster_upper, alg_systeemcluster_verwijder)
);
ALTER TABLE alg_gebouw
ADD
(
alg_systeemcluster_key
NUMBER(10)
CONSTRAINT alg_r_alg_systeemcluster_key REFERENCES alg_systeemcluster(alg_systeemcluster_key),
alg_gebouw_omtrek
NUMBER(8,2)
);
CREATE_TABLE(alg_srtterrein,NORMAAL_PRIVILEGE)
(
alg_srtterrein_key
NUMBER(10)
CONSTRAINT alg_k_alg_srtterrein_key PRIMARY KEY,
alg_srtterrein_omschrijving
VARCHAR2(30)
NOT_NULL(alg_srtterrein_omschrijving, alg_c_alg_srtterrein_omschr),
alg_srtterrein_upper
VARCHAR2(30)
NOT_NULL(alg_srtterrein_upper, alg_c_alg_srtterrein_upper),
alg_srtterrein_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(alg_srtterrein_aanmaak, alg_c_alg_srtterrein_aanmaak),
alg_srtterrein_verwijder
DATE
DEFAULT NULL,
CONSTRAINT alg_u_alg_srtterrein_upper UNIQUE(alg_srtterrein_upper, alg_srtterrein_verwijder)
);
ALTER TABLE alg_terreinsector
ADD
(
alg_systeemcluster_key
NUMBER(10)
CONSTRAINT alg_r_alg_terreins_systcl_key REFERENCES alg_systeemcluster(alg_systeemcluster_key),
alg_srtterrein_key
NUMBER(10)
CONSTRAINT alg_r_alg_srtterrein_key REFERENCES alg_srtterrein(alg_srtterrein_key),
alg_terreinsector_acadkey
VARCHAR2(10),
alg_terreinsector_oppervlak
NUMBER(10,2),
alg_terreinsector_omtrek
NUMBER(8,2),
alg_terreinsector_opmerking
VARCHAR2(50)
);
CREATE_TABLE(alg_bouwdeel, NORMAAL_PRIVILEGE)
(
alg_bouwdeel_key
NUMBER(10)
CONSTRAINT alg_k_alg_bouwdeel_key PRIMARY KEY,
alg_gebouw_key
NUMBER(10)
CONSTRAINT alg_r_alg_gebouw_key REFERENCES alg_gebouw(alg_gebouw_key),
alg_bouwdeel_code
VARCHAR2(2)
NOT_NULL(alg_bouwdeel_code, alg_c_alg_bouwdeel_code),
alg_bouwdeel_omschrijving
VARCHAR2(30)
NOT_NULL(alg_bouwdeel_omschrijving, alg_c_alg_bouwdeel_omschr),
alg_bouwdeel_upper
VARCHAR2(30)
NOT_NULL(alg_bouwdeel_upper, alg_c_alg_bouwdeel_upper),
alg_bouwdeel_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(alg_bouwdeel_aanmaak, alg_c_alg_bouwdeel_aanmaak),
alg_bouwdeel_verwijder
DATE
DEFAULT NULL,
CONSTRAINT alg_u_alg_bouw_upper UNIQUE(alg_gebouw_key, alg_bouwdeel_upper, alg_bouwdeel_verwijder)
);
CREATE_TABLE(alg_srtverdieping,NORMAAL_PRIVILEGE)
(
alg_srtverdieping_key
NUMBER(10)
CONSTRAINT alg_k_alg_srtverdieping_key PRIMARY KEY,
alg_srtverdieping_omschrijving
VARCHAR2(30)
NOT_NULL(alg_srtverdieping_omschrijving, alg_c_alg_srtverdieping_omschr),
alg_srtverdieping_upper
VARCHAR2(30)
NOT_NULL(alg_srtverdieping_upper, alg_c_alg_srtverdieping_upper),
alg_srtverdieping_volgnr
NUMBER(3)
NOT_NULL(alg_srtverdieping_volgnr, alg_c_alg_srtverdieping_volgnr),
alg_srtverdieping_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(alg_srtverdieping_aanmaak, alg_c_alg_srtverdieping_aanm),
alg_srtverdieping_verwijder
DATE
DEFAULT NULL,
CONSTRAINT alg_u_alg_srtverdieping_volgnr UNIQUE(alg_srtverdieping_volgnr, alg_srtverdieping_verwijder)
);
ALTER TABLE alg_verdieping
ADD
(
alg_bouwdeel_key
NUMBER(10)
CONSTRAINT alg_r_alg_bouwdeel_key REFERENCES alg_bouwdeel(alg_bouwdeel_key),
alg_srtverdieping_key
NUMBER(10)
CONSTRAINT alg_r_alg_srtverdieping_key1 REFERENCES alg_srtverdieping(alg_srtverdieping_key)
#ifdef BEB
NOT_NULL(alg_srtverdieping_key, alg_r_alg_srtverdieping_key2)
#endif
);
ALTER TABLE alg_ruimte
ADD
(
alg_ruimte_omtrek
NUMBER(8,2)
);
CREATE_TABLE(DOOS_alt_object_1, BASIS_PRIVILEGE)
(
CODE
VARCHAR2(10),
OMSCHRIJVING
VARCHAR2(108)
);
CREATE_TABLE(DOOS_alt_object_2, BASIS_PRIVILEGE)
(
CODE
VARCHAR2(10),
OMSCHRIJVING
VARCHAR2(108)
);
CREATE_TABLE(DOOS_alt_object_3, BASIS_PRIVILEGE)
(
CODE
VARCHAR2(10),
OMSCHRIJVING
VARCHAR2(108),
alg_srtgebouw_key
NUMBER(10)
);
CREATE_TABLE(DOOS_adressen, BASIS_PRIVILEGE)
(
ADRESCODE
VARCHAR2(10),
NAAM
VARCHAR2(50),
ADRES
VARCHAR2(25),
POSTCODE
VARCHAR2(8),
PLAATS
VARCHAR2(20),
P_ADRES
VARCHAR2(25),
P_POSTCODE
VARCHAR2(8),
P_PLAATS
VARCHAR2(20)
);
CREATE_TABLE(DOOS_inventarisatie, BASIS_PRIVILEGE)
(
OBJECT
VARCHAR2(12),
ONDERDEEL
VARCHAR2(8),
LOCATIE
VARCHAR2(6),
LOCATIE_NUMMER
VARCHAR2(5),
HOEVEELHEID
NUMBER(10),
EENHEID
VARCHAR2(2),
LOCATIE_verdieping
VARCHAR2(3),
LOCATIE_srtruimte
VARCHAR2(3),
alg_gebouw_key
NUMBER(10),
alg_verdieping_key
NUMBER(10),
alg_srtruimte_key
NUMBER(10)
);
CREATE_TABLE(DOOS_locaties, BASIS_PRIVILEGE)
(
OBJECT
VARCHAR2(12),
CODE
VARCHAR2(6),
NIVEAU
NUMBER(1),
OMSCHRIJVING
VARCHAR2(108),
VORIGE_CODE
VARCHAR2(6),
LAATSTE_CODE
VARCHAR2(6),
alg_verdieping_key
NUMBER(10),
alg_srtruimte_key
NUMBER(10)
);
CREATE_TABLE(DOOS_objecten, BASIS_PRIVILEGE)
(
CODE
VARCHAR2(12),
NIVEAU
NUMBER(1),
OMSCHRIJVING
VARCHAR2(108),
VORIGE_CODE
VARCHAR2(12),
LAATSTE_CODE
VARCHAR2(12),
AANTAL_2
NUMBER,
ALT_OBJECT_3
VARCHAR2(10),
alg_district_key
NUMBER(10),
alg_locatie_key
NUMBER(10),
alg_gebouw_key
NUMBER(10)
);
CREATE INDEX DOOS_i_alt_object_3_1 ON DOOS_alt_object_3(CODE);
CREATE INDEX DOOS_i_alt_object_3_2 ON DOOS_alt_object_3(alg_srtgebouw_key);
CREATE INDEX DOOS_i_adressen_1 ON DOOS_adressen(ADRESCODE);
CREATE INDEX DOOS_i_inventarisatie_1 ON DOOS_inventarisatie(OBJECT);
CREATE INDEX DOOS_i_inventarisatie_2 ON DOOS_inventarisatie(LOCATIE);
CREATE INDEX DOOS_i_inventarisatie_3 ON DOOS_inventarisatie(alg_gebouw_key);
CREATE INDEX DOOS_i_inventarisatie_4 ON DOOS_inventarisatie(alg_verdieping_key);
CREATE INDEX DOOS_i_inventarisatie_5 ON DOOS_inventarisatie(alg_srtruimte_key);
CREATE INDEX DOOS_i_inventarisatie_6 ON DOOS_inventarisatie(LOCATIE_verdieping);
CREATE INDEX DOOS_i_inventarisatie_7 ON DOOS_inventarisatie(LOCATIE_srtruimte);
CREATE INDEX DOOS_i_locaties_1 ON DOOS_locaties(CODE);
CREATE INDEX DOOS_i_locaties_2 ON DOOS_locaties(alg_verdieping_key);
CREATE INDEX DOOS_i_locaties_3 ON DOOS_locaties(alg_srtruimte_key);
CREATE INDEX DOOS_i_objecten_1 ON DOOS_objecten(CODE);
CREATE INDEX DOOS_i_objecten_2 ON DOOS_objecten(NIVEAU);
CREATE INDEX DOOS_i_objecten_3 ON DOOS_objecten(alg_district_key);
CREATE INDEX DOOS_i_objecten_4 ON DOOS_objecten(alg_locatie_key);
CREATE INDEX DOOS_i_objecten_5 ON DOOS_objecten(alg_gebouw_key);
CREATE INDEX DOOS_i_objecten_6 ON DOOS_objecten(ALT_OBJECT_3);
CREATE OR REPLACE FUNCTION DOOS_BepaalVerdiepingVolgnr( code IN VARCHAR2 ) RETURN NUMBER IS
Volgnr alg_verdieping.alg_verdieping_volgnr%TYPE;
BEGIN
VolgNr := NULL;
IF UPPER(SUBSTR(code, 2, 2)) = 'ZL'
THEN
VolgNr := 98;
ELSIF UPPER(SUBSTR(code, 2, 2)) = 'DB'
THEN
VolgNr := 99;
ELSIF UPPER(SUBSTR(code, 2, 1)) = 'K'
THEN
VolgNr := 0 - TO_NUMBER(SUBSTR(code, 3, 1));
ELSE
VolgNr := TO_NUMBER(SUBSTR(code, 2, 2));
END IF;
RETURN Volgnr;
END;
/
CREATE_VIEW(DOOS_v_VerdiepingVolgnr, BASIS_PRIVILEGE)
(CODE,
alg_verdieping_volgnr) AS
SELECT D_L.CODE,
DOOS_BepaalVerdiepingVolgnr(D_L.CODE)
FROM DOOS_Locaties D_L
WHERE D_L.VORIGE_CODE = '4';
#endif // ALG

603
ALG/ALG_TRI.SRC Normal file
View File

@@ -0,0 +1,603 @@
#ifdef ALG // 13-03-96 AH
/* Triggers voor ALG-module
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* 20-05-98 BIV ALG_T_ALG_SRTVLOER_B_IU toegevoegd
* --- 01.36 ---
* --- 01.35 ---
* 09/04/1998 AH Extra AKZ-velden in ALG_GEBOUW, ALG_TERREINSECTOR
* --- 01.34 ---
* 13/11/1997 AH #1473, Create trigger vervangen door CREATE_TRIGGER()
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* 10-07-97 AH #1367, Restricted verwijderen op Regio/District en Locatie. In triggers
* ALG_T_ALG_REGIO_B_IU, ALG_T_ALG_DISTRICT_B_IU en ALG_T_ALG_LOCATIE_B_IU
* 6/26/97 AH #1326, CASCADE-delete op SCH_NIVO_OG in Gebouw, Verdieping en Ruimte toegevoegd
* RESTRICTED-verwijderen op ALG_SRTRUIMTE -> SCH_WERKZAAMHEDEN.
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* 17-12-96 AH ALG_T_ALG_GEBOUW_B_IU, ALG_T_ALG_RUIMTE_B_IU
* aangepast MRA_ONRGOEDVOORSCHR-records worden bij wijzigen van
* ALG_SRT... niet meer verwijderd.
* --- 01.24 ---
* 29-11-96 AH ALG_T_ALG_SRTVERDIEPING_B_IU toegevoegd. Het volgnr van
* srtverdieping wordt bij wijzigen gekopieerd naar volgnr
* van de verdiepingen.
* ALG_T_ALG_VERDIEPING_B_IU aangepast. Als srtverdieping
* wijzigd, dan wordt het volgnr van de nieuwe srtverdieping
* gekopieerd in volgnr van verdieping
* 28-11-96 AH ALG_T_ALG_SRTTERREIN_B_IU toegevoegd + Alle code-velden worden
* UPPER in triggers
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* 21-10-96 AH LOG#842:
* Object restricted verwijder op Objectdeel
* Objectdeel cascade verwijder op Systeemcluster
* Systeemcluster restricted leegmaken bij verwijder op Gebouw/Terrein
* Gebouw restricted verwijder op bouwdeel
* Bouwdeel restricted leegmaken op verdieping
* 07-10-96 AH Triggers voor Objectdeel, Systeemcluster, Bouwdeel toegevoegd
* --- 01.20 ---
* --- 01.19 ---
* 18-07-96 RW alg_terreinsector.alg_terreinsector_omschrijving wordt auto-
* matisch gevuld met _code ||' - '|| _naam.
* alg_terreinsector_upper wordt UPPER(_code)
* 17-07-96 RW alg_gebouw.alg_gebouw_omschrijving wordt automatisch gevuld met
* alg_gebouw_code || '-' || alg_gebouw_naam.
* alg_gebouw.alg_gebouw_upper = UPPER(_code)
* 12-07-96 EH SET_VERWIJDER_CHILDREN toegevoegd voor alg_gebouw, alg_ruimte,
* alg_verdieping en alg_terreinsector. Deze verwijderd alle
* delen die bij het desbetreffende onrgoed-ding horen.
* 27-06-96 AH ALG_T_ALG_RUIMTE_B_IU aangepast. Als er artikelen in de
* ruimte geplaatst zijn dan mag de ruimte niet verwijderd worden.
* Verwijder ook de werkplekken/slaapplaatsen van de ruimte.
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* 22-05-96 AH ALG_KOSTENPOST toegevoegd.
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 03-04-96 AH ALG_RUIMTE weggooien -> INV_DELEN ontkoppelen.
* 22-03-96 AH Nieuwe include COMSQL.H, zonder '..\'
* 14-03-96 AH Triggers ALG_T_ALG_RUIMTE_B_IU en ALG_T_ALG_SRTRUIMTE_KEY
* aangepast. Voor PRS mag
* ALG_SRTRUIMTE_KEY niet veranderd worden zonder werkplekken als
* er nog aanwezige werkplekken zijn.
* 13-03-96 AH NIEUWE OPZET SRC-files.
*
* 04-03-96 PF SET_VERWIJDER_CHILDREN toegevoegd voor district en regio
* 13-02-96 PF De volgende triggers verwijderd. Deze worden nu via de UNIQUE
* constraint op de tabellen gerealiseerd:
* alg_t_alg_regio_A_IU
* alg_t_alg_district_A_IU
* alg_t_alg_locatie_A_IU
* alg_t_alg_terreinsector_A_IU
* alg_t_alg_srtgebouw_A_IU
* alg_t_alg_gebouw_A_IU
* alg_t_alg_verdieping_A_IU
* alg_t_alg_srtruimte_A_IU
* alg_t_alg_ruimte_A_IU
* PF: functionaliteit gewijzigd!!!
* vwb de aanwezig-views!
* 30-01-96 AH Locatiecode/Aanwezig is uniek binnen het systeem, de omschrijving
* is uniek voor district of regio.
* 19-01-96 AH Triggers voor ALG_TERREINSECTOR toegevoegd.
* 17-01-96 AH ALG_T_ALG_LOCATIE_A_IU is veranderd. De LOCATIE_CODE wordt nu
* Door deze trigger getest ne niet via UNIQUE in tabel.
* Zie CREA_TAB.SRC
*
*/
#include "comsql.h"
#include "ALG\algsql.h"
CREATE_TRIGGER(alg_t_alg_import_B_IU)
BEFORE INSERT OR UPDATE ON alg_import
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_import_key, alg_s_alg_import_key);
END;
/
CREATE_TRIGGER(alg_t_alg_regio_B_IU)
BEFORE INSERT OR UPDATE ON alg_regio
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_regio_key, alg_s_alg_regio_key);
UPDATE_UPPER(alg_regio_omschrijving, alg_regio_upper);
// 10-07-97 AH #1367, Restricted verwijderen op district
//SET_VERWIJDER_CHILDREN(alg_district, alg_regio_key, alg_regio_verwijder, alg_district_verwijder);
CHECK_NOG_REFERENCES(alg_regio, alg_regio_verwijder, alg_v_aanwezigdistrict,
alg_regio_key, 'alg_m211');
END;
/
CREATE_TRIGGER(alg_t_alg_district_B_IU)
BEFORE INSERT OR UPDATE ON alg_district
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_district_key, alg_s_alg_district_key);
UPDATE_UPPER(alg_district_code, alg_district_code);
UPDATE_UPPER(alg_district_omschrijving, alg_district_upper);
// 10-07-97 AH #1367, Restricted verwijderen op locatie
//SET_VERWIJDER_CHILDREN(alg_locatie, alg_district_key, alg_district_verwijder, alg_locatie_verwijder);
CHECK_NOG_REFERENCES(alg_district, alg_district_verwijder, alg_v_aanweziglocatie,
alg_district_key, 'alg_m212');
END;
/
CREATE_TRIGGER(alg_t_alg_locatie_B_IU)
BEFORE INSERT OR UPDATE ON alg_locatie
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_locatie_key, alg_s_alg_locatie_key);
UPDATE_UPPER(alg_locatie_code, alg_locatie_code);
UPDATE_UPPER(alg_locatie_omschrijving, alg_locatie_upper);
// 10-07-97 AH #1367, Restricted verwijderen op Gebouw en Terreinsector
CHECK_NOG_REFERENCES(alg_locatie, alg_locatie_verwijder, alg_v_aanweziggebouw,
alg_locatie_key, 'alg_m213');
CHECK_NOG_REFERENCES(alg_locatie, alg_locatie_verwijder, alg_v_aanwezigterreinsector,
alg_locatie_key, 'alg_m214');
CHECK_NOG_REFERENCES(alg_locatie, alg_locatie_verwijder, alg_v_aanwezigobjectdeel,
alg_locatie_key, 'alg_m185');
END;
/
CREATE_TRIGGER(alg_t_alg_terreinsector_B_IU)
BEFORE INSERT OR UPDATE ON alg_terreinsector
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_terreinsector_key, alg_s_alg_onroerendgoed_keys);
:new.alg_terreinsector_omschrijving := SUBSTRB(:new.alg_terreinsector_code ||' - '|| :new.alg_terreinsector_naam,1,30);
UPDATE_UPPER(alg_terreinsector_code,alg_terreinsector_upper);
#ifdef MRA
IF :new.alg_terreinsector_verwijder IS NOT NULL
THEN
DELETE FROM mra_onrgoedvoorschr
WHERE mra_onroerendgoed_keys = :old.alg_terreinsector_key;
DELETE FROM mra_onrgoedbestemming
WHERE mra_onroerendgoed_keys = :old.alg_terreinsector_key;
END IF;
#endif // MRA
#ifdef INS
SET_VERWIJDER_CHILDREN_DEEL(ins_deel, alg_terreinsector_key,
alg_terreinsector_verwijder, ins_deel_verwijder, ins_alg_ruimte_key);
#endif // INS
#ifdef AKZ
/* De uniciteit van AKZ_INTERNALORDERNR moet voor ALG_GEBOUW en ALG_TERREINSECTOR
* gelden. ALG_TERREINSECTOR wordt via UNIQUE-constraint geregeld, hier moet de uniciteit
* op ALG_GEBOUW gecontroleerd worden.
*/
IF :new.akz_internalordernr IS NOT NULL
AND (:old.akz_internalordernr IS NULL
OR :old.akz_internalordernr <> :new.akz_internalordernr)
THEN
DECLARE
Dummy CHAR;
BEGIN
SELECT 'X'
INTO Dummy
FROM alg_v_aanweziggebouw
WHERE akz_internalordernr = :new.akz_internalordernr;
APPLICATION_ERROR(-20000, 'AKZ_U_GEBOUW_TERREIN_ORDERNR');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20000, 'AKZ_U_GEBOUW_TERREIN_ORDERNR');
END;
END IF;
#endif // AKZ
END;
/
CREATE_TRIGGER(alg_t_alg_srtgebouw_B_IU)
BEFORE INSERT OR UPDATE ON alg_srtgebouw
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_srtgebouw_key, alg_s_alg_srtgebouw_key);
UPDATE_UPPER(alg_srtgebouw_omschrijving, alg_srtgebouw_upper);
CHECK_NOG_REFERENCES(alg_srtgebouw, alg_srtgebouw_verwijder,
alg_v_aanweziggebouw, alg_srtgebouw_key, 'alg_m022');
END;
/
CREATE_TRIGGER(alg_t_alg_gebouw_B_IU)
BEFORE INSERT OR UPDATE ON alg_gebouw
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_gebouw_key, alg_s_alg_onroerendgoed_keys);
UPDATE_UPPER(alg_gebouw_code, alg_gebouw_upper);
:new.alg_gebouw_omschrijving := SUBSTRB(:new.alg_gebouw_code ||' - '|| :new.alg_gebouw_naam,1,30);
CHECK_NOG_REFERENCES(alg_gebouw, alg_gebouw_verwijder, alg_v_aanwezigbouwdeel,
alg_gebouw_key, 'alg_m184');
LAAT_VERDIEPING_VERVALLEN_VOOR_GEBOUW('alg_m54');
#ifdef MRA
IF :new.alg_gebouw_verwijder IS NOT NULL
THEN
DELETE FROM mra_onrgoedvoorschr
WHERE mra_onroerendgoed_keys = :old.alg_gebouw_key;
DELETE FROM mra_onrgoedbestemming
WHERE mra_onroerendgoed_keys = :old.alg_gebouw_key;
END IF;
#if 0 // Verwijderen van MRA_ONRGOEDVOORSCHR-records gebeurt niet meer in trigger.
IF :new.alg_srtgebouw_key <> :old.alg_srtgebouw_key
THEN
DELETE FROM mra_onrgoedvoorschr
WHERE mra_onroerendgoed_keys = :old.alg_gebouw_key AND
mra_voorschrift_key IN (SELECT mra_voorschrift_key
FROM mra_srtgebouwvoorschr
WHERE mra_srtgebouw_key = :old.alg_srtgebouw_key)
AND mra_onrgoedvoorschr_type = 'G';
END IF;
#endif
#endif // MRA
#ifdef INS
SET_VERWIJDER_CHILDREN_DEEL(ins_deel, alg_gebouw_key,
alg_gebouw_verwijder, ins_deel_verwijder, ins_alg_ruimte_key);
#endif // INS
#ifdef SCH
IF :new.alg_gebouw_verwijder IS NOT NULL
THEN
BEGIN
DELETE FROM sch_nivo_og
WHERE sch_alg_og_key = :new.alg_gebouw_key;
END;
END IF;
#endif // SCH
#ifdef AKZ
/* De uniciteit van AKZ_INTERNALORDERNR moet voor ALG_GEBOUW en ALG_TERREINSECTOR
* gelden. ALG_GEBOUW wordt via UNIQUE-constraint geregeld, hier moet de uniciteit
* op ALG_TERREINSECTOR gecontroleerd worden.
*/
IF :new.akz_internalordernr IS NOT NULL
AND (:old.akz_internalordernr IS NULL
OR :old.akz_internalordernr <> :new.akz_internalordernr)
THEN
DECLARE
Dummy CHAR;
BEGIN
SELECT 'X'
INTO Dummy
FROM alg_v_aanwezigterreinsector
WHERE akz_internalordernr = :new.akz_internalordernr;
APPLICATION_ERROR(-20000, 'AKZ_U_GEBOUW_TERREIN_ORDERNR');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20000, 'AKZ_U_GEBOUW_TERREIN_ORDERNR');
END;
END IF;
#endif // AKZ
END;
/
CREATE_TRIGGER(alg_t_alg_verdieping_B_IU)
BEFORE INSERT OR UPDATE ON alg_verdieping
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_verdieping_key, alg_s_alg_onroerendgoed_keys);
UPDATE_UPPER(alg_verdieping_omschrijving, alg_verdieping_upper);
LAAT_RUIMTE_VERVALLEN_VOOR_VERDIEPING('alg_m55');
#ifdef INS
SET_VERWIJDER_CHILDREN_DEEL(ins_deel, alg_verdieping_key,
alg_verdieping_verwijder, ins_deel_verwijder, ins_alg_ruimte_key);
#endif // INS
/* Voor BEB: ALG_VERDIEPING_Volgnr = ALG_SRTVERDIEPING_VOLGNR */
IF NOT :new.alg_srtverdieping_key IS NULL
THEN
SELECT alg_srtverdieping_volgnr
INTO :new.alg_verdieping_volgnr
FROM alg_srtverdieping
WHERE alg_srtverdieping_key = :new.alg_srtverdieping_key;
END IF;
#ifdef SCH
IF :new.alg_verdieping_verwijder IS NOT NULL
THEN
BEGIN
DELETE FROM sch_nivo_og
WHERE sch_alg_og_key = :new.alg_verdieping_key;
END;
END IF;
#endif // SCH
END;
/
CREATE_TRIGGER(alg_t_alg_srtruimte_B_IU)
BEFORE INSERT OR UPDATE ON alg_srtruimte
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_srtruimte_key, alg_s_alg_srtruimte_key);
UPDATE_UPPER(alg_srtruimte_omschrijving, alg_srtruimte_upper);
CHECK_NOG_REFERENCES(alg_srtruimte, alg_srtruimte_verwijder,
alg_v_aanwezigruimte, alg_srtruimte_key, 'alg_m041');
#ifdef PRS
IF :old.alg_srtruimte_key IS NOT NULL
AND :old.prs_bevat_werkplek = 1 AND :new.prs_bevat_werkplek IS NULL
THEN
DECLARE
dummy NUMBER;
BEGIN
SELECT COUNT(PRS_W.prs_werkplek_key)
INTO dummy
FROM alg_v_aanwezigruimte ALG_R, prs_v_aanwezigwerkplek PRS_W
WHERE ALG_R.alg_srtruimte_key = :old.alg_srtruimte_key
AND PRS_W.prs_alg_ruimte_key = ALG_R.alg_ruimte_key;
IF dummy > 0
THEN
APPLICATION_ERROR(-20000, 'prs_m035');
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
END;
END IF;
#endif
#ifdef SCH
DECLARE
dummy CHAR;
BEGIN
IF :new.alg_srtruimte_verwijder IS NOT NULLDATUM
THEN
SELECT 'x' INTO dummy
FROM sch_werkzaamheden
WHERE sch_werkzaamheden.sch_alg_srtruimte_key = :old.alg_srtruimte_key;
APPLICATION_ERROR(-20000,'sch_m028');
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN TOO_MANY_ROWS THEN
APPLICATION_ERROR(-20000,'sch_m028');
END;
#endif // SCH
END;
/
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);
#ifdef MRA
/* Delete CASCADE op MRA_ONRGOEDVOORSCHR en MRA_ONRGOEDBESTEMMING
*/
IF :new.alg_ruimte_verwijder IS NOT NULL
THEN
DELETE FROM mra_onrgoedvoorschr
WHERE mra_onroerendgoed_keys = :old.alg_ruimte_key;
DELETE FROM mra_onrgoedbestemming
WHERE mra_onroerendgoed_keys = :old.alg_ruimte_key;
END IF;
#if 0 // MRA_ONRGOEDVOORSCHR-records worden niet meer verwijderd in de trigger.
IF :new.alg_srtruimte_key <> :old.alg_srtruimte_key
THEN
DELETE FROM mra_onrgoedvoorschr
WHERE mra_onroerendgoed_keys = :old.alg_ruimte_key AND
mra_voorschrift_key IN (SELECT mra_voorschrift_key
FROM mra_srtruimtevoorschr
WHERE mra_srtruimte_key = :old.alg_srtruimte_key)
AND mra_onrgoedvoorschr_type = 'R';
END IF;
#endif
#endif // MRA
#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
THEN
UPDATE prs_werkplek
SET prs_werkplek_verwijder = SYSDATE
WHERE 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, ins_deel_verwijder, ins_alg_ruimte_key);
#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;
/
CREATE_TRIGGER(alg_t_alg_kostenpost_B_IU)
BEFORE INSERT OR UPDATE ON alg_kostenpost
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_kostenpost_key,alg_s_alg_kostenpost_key);
UPDATE_UPPER(alg_kostenpost_omschrijving,alg_kostenpost_upper);
#ifdef MLD
IF :new.alg_kostenpost_verwijder IS NOT NULL
THEN
DECLARE
dummy NUMBER;
BEGIN
SELECT COUNT(*)
INTO dummy
FROM mld_opdr MLD_O, mld_statusopdr MLD_S
WHERE MLD_O.mld_alg_kostenpost_key = :old.alg_kostenpost_key
AND MLD_O.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND MLD_S.mld_statusopdr_omschrijving = 'Uitgegeven';
IF dummy > 0
THEN
APPLICATION_ERROR(-20000, 'mld_m152');
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
END;
END IF;
#endif
#ifdef LEV
IF :new.alg_kostenpost_verwijder IS NOT NULL
THEN
DECLARE
dummy NUMBER;
BEGIN
SELECT COUNT(*)
INTO dummy
FROM lev_bestelling LEV_B
WHERE LEV_B.lev_alg_kostenpost_key = :old.alg_kostenpost_key;
IF dummy > 0
THEN
APPLICATION_ERROR(-20000, 'lev_m049');
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
END;
END IF;
#endif
END;
/
CREATE_TRIGGER(alg_t_alg_objectdeel_B_IU)
BEFORE INSERT OR UPDATE ON alg_objectdeel
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_objectdeel_key, alg_s_alg_objectdeel_key);
UPDATE_UPPER(alg_objectdeel_code, alg_objectdeel_code);
UPDATE_UPPER(alg_objectdeel_omschrijving, alg_objectdeel_upper);
SET_VERWIJDER_CHILDREN(alg_systeemcluster, alg_objectdeel_key, alg_objectdeel_verwijder,
alg_systeemcluster_verwijder);
END;
/
CREATE_TRIGGER(alg_t_alg_systeemcluster_B_IU)
BEFORE INSERT OR UPDATE ON alg_systeemcluster
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_systeemcluster_key, alg_s_alg_systeemcluster_key);
UPDATE_UPPER(alg_systeemcluster_code, alg_systeemcluster_code);
UPDATE_UPPER(alg_systeemclust_omschrijving, alg_systeemcluster_upper);
CHECK_NOG_REFERENCES(alg_systeemcluster, alg_systeemcluster_verwijder,
alg_v_aanweziggebouw, alg_systeemcluster_key, 'alg_m182');
END;
/
CREATE_TRIGGER(alg_t_alg_bouwdeel_B_IU)
BEFORE INSERT OR UPDATE ON alg_bouwdeel
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_bouwdeel_key, alg_s_alg_bouwdeel_key);
UPDATE_UPPER(alg_bouwdeel_code, alg_bouwdeel_code);
UPDATE_UPPER(alg_bouwdeel_omschrijving, alg_bouwdeel_upper);
CHECK_NOG_REFERENCES(alg_bouwdeel, alg_bouwdeel_verwijder,
alg_v_aanwezigverdieping, alg_bouwdeel_key, 'alg_m183');
END;
/
CREATE_TRIGGER(alg_t_alg_srtterrein_B_IU)
BEFORE INSERT OR UPDATE ON alg_srtterrein
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_srtterrein_key, alg_s_alg_srtterrein_key);
UPDATE_UPPER(alg_srtterrein_omschrijving, alg_srtterrein_upper);
CHECK_NOG_REFERENCES(alg_srtterrein, alg_srtterrein_verwijder,
alg_v_aanwezigterreinsector, alg_srtterrein_key, 'alg_m196');
END;
/
CREATE_TRIGGER(alg_t_alg_srtverdieping_B_IU)
BEFORE INSERT OR UPDATE ON alg_srtverdieping
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_srtverdieping_key, alg_s_alg_srtverdieping_key);
UPDATE_UPPER(alg_srtverdieping_omschrijving, alg_srtverdieping_upper);
CHECK_NOG_REFERENCES(alg_srtverdieping, alg_srtverdieping_verwijder,
alg_v_aanwezigverdieping, alg_srtverdieping_key, 'alg_m204');
END;
/
CREATE_TRIGGER(alg_t_alg_srtvloer_B_IU)
BEFORE INSERT OR UPDATE ON alg_srtvloer
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_srtvloer_key, alg_s_alg_srtvloer_key);
UPDATE_UPPER(alg_srtvloer_omschrijving, alg_srtvloer_upper);
CHECK_NOG_REFERENCES(alg_srtvloer, alg_srtvloer_verwijder, alg_v_aanwezigruimte,
alg_srtvloer_key, 'alg_m220');
END;
/
#endif // ALG

695
ALG/ALG_VIE.SRC Normal file
View File

@@ -0,0 +1,695 @@
#ifdef ALG // 13-03-96 AH
/*
* Revisie:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* 30-06-1998 BIV LOG# 1904 - View ALG_V_RUIMTE_GEGEVENS aangepast.
* --- 01.37 ---
* 13/05/1998 BIV View ALG_V_AANWEZIGSRTVLOER.
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* 11/03/1998 AH View ALG_V_ONROERENDGOED_GEGEVENS aangemaakt voor omschrijving, code, enz
* van de verschillende onroerendgoed-zaken.
* 10/03/1998 BIV #1513: ALG_V_RUIMTE_GEGEVENS uitgebreid met SCH_SRTVLOER_KEY (#ifdef SCH)
* 05/02/1998 AH ALG_V_VERDIEPING_GEGEVENS extra veld alg_verdieping_in_bewerking
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* 10-07-97 AH #1367, Aanwezig-views van ALG_GEBOUW, ALG_TERREINSECTOR, ALG_VERDIEPING en ALG_RUIMTE
* veranderd, deze hoeven niet meer te controleren of de locatie aanwezig is.
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* 29-11-96 AH ALG_V_AANWEZIGSRTVERDIEPING toegevoegd
* 28-11-96 AH ALG_V_AANWEZIGSRTTERREIN toegevoegd
* --- 01.23 ---
* 18-11-96 AH LOG#985: ALG_V_RUIMTE_GEGEVENS uitgebreidt voor HUI216-rapport
* 15-11-96 AH LOG#985: ALG_V_RUIMTE_GEGEVENS uitgebreidt voor HUI215-rapport
* --- 01.22 ---
* --- 01.21 ---
* 30-10-96 AH LOG#927: De view ALG_V_LOCATIE_GEGEVENS_2 voor ALG026 toond ook
* niet gekoppelde locaties.
* 08-10-96 AH ALG_V_LOCATIE_GEGEVENS_2 toegevoegd voor gebruikt van
* ALG_DISTRICT_KEY_2
* 08-10-96 AH District-views uitgebreid met ALG_DISTRICT_MODULE
* 07-10-96 AH Aanwezigviews voor Objectdeel, Systeemcluster en Bouwdeel
* toegevoegd.
* --- 01.20 ---
* 17-09-96 AH ALG_V_ALLONROERENDGOED toegevoegd, maakt gebruik van de tabellen
* ipv. de aanwezigview.
* --- 01.19 ---
* 29-07-96 AH MLD_BEDRIJF -> PRS_BEDRIJF
* 18-07-96 RW alg_gebouw_naam bij alg_v_gebouw_gegevens toegevoegd
* --- 01.18 ---
* --- 01.17 ---
* 20-06-96 AH HUI_BEHEERDER in alg_v_ruimte_gegevens aangepast naar
* PRS_HUISMEESTER_KEY
* 06-06-96 AH View ALG_V_RUIMTE_GEGEVENS aangepast voor gebruik HUI-module
* en aangepast zonder overmatig gebruik van AANWEZIG-views.
* Ook de view ALG_V_DISTRICT_GEGEVENS, ALG_V_LOCATIE_GEGEVENS
* ALG_V_GEBOUW_GEGEVENS, ALG_V_VERDIEPING_GEGEVENS, ALG_V_ONROERENDGOED
* aangepast ivm gebruik AANWEZIG-views.
* --- 01.16 ---
* --- 01.15 ---
* 23-05-96 AH ALG_V_ALG_KOSTENPOST_GEGEVENS toegevoegd. Voor berekening
* Geraamd en Restant.
* 22-05-96 AH ALG_KOSTENPOST toegevoegd.
* 29-04-96 RW Privileges aangepast
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 01-04-96 Gebruik CREATE_VIEW()
* 22-03-96 AH Nieuwe include COMSQL.H, zonder '..\'.
* 21-03-96 AH ALG_TEREINSECTOR/GEBOUW/VERDIEPING/RUIMTE
* -AANWEZIG_VIEWS gewijzigd,
* Nieuwe syntax.
* 13-03-96 AH NIEUWE OPZET SRC-files.
*
* 01-03-96 EH Aanwezigview voor Terreinsector aangepast.
* 05-02-96 EH Aangepaste aanwezigviews gemaakt voor Gebouw,
* Ruimte en Verdieping.
* LET OP DE UITZONDERINGSPOSITIE VOOR GEBOUW/VERDIEPING/RUIMTE
* 19-01-96 AH De view voor ALG_TERREINSECTOR toegevoegd.
* 12-01-96 PF DEFINIEER_VIEW_AANWEZIG
* 09-01-96 KTH alg_v_gebouw_gegevens en alg_v_ruimte_gegevens staan nu ook
* NULL toe voor srtgebouw resp. srtruimte: '(+)' toegevoegd
* 30-11-95 KTH alg_v_locatie_gegevens en alg_v_gebouw_gegevens uitgebreid
* met alg_locatie_tekening, conform wijziging in CREA_TAB, en
* alg_v_verdieping_gegevens en alg_v_ruimte_gegevens uitgebreid
* met alg_verdieping_tekening, conform wijziging in CREA_TAB
* 01-12-95 KTH alg_v_gebouwgegevens uitgebreid met alg_gebouw_acadkey, en
* alg_v_ruimtegegevens uitgebreid met alg_ruimte_acadkey
*/
#include "comsql.h"
DEFINIEER_VIEW_AANWEZIG(alg_regio, alg_regio_verwijder,
alg_v_aanwezigregio,NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_district, alg_district_verwijder,
alg_v_aanwezigdistrict,NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_locatie, alg_locatie_verwijder,
alg_v_aanweziglocatie,NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_srtgebouw, alg_srtgebouw_verwijder,
alg_v_aanwezigsrtgebouw,BIBLIOTHEEK_PRIVILEGE);
// 10-07-97 AH #1367, Geen controle op aanwezigheid Locatie
DEFINIEER_VIEW_AANWEZIG(alg_gebouw, alg_gebouw_verwijder,
alg_v_aanweziggebouw,NORMAAL_PRIVILEGE);
// AND
// alg_locatie_key IN (SELECT alg_locatie_key
// FROM alg_v_aanweziglocatie);
// 10-07-97 AH #1367, Geen controle op aanwezigheid Gebouw
DEFINIEER_VIEW_AANWEZIG(alg_verdieping, alg_verdieping_verwijder,
alg_v_aanwezigverdieping,NORMAAL_PRIVILEGE);
// AND
// alg_gebouw_key IN (SELECT alg_gebouw_key
// FROM alg_v_aanweziggebouw);
DEFINIEER_VIEW_AANWEZIG(alg_srtruimte, alg_srtruimte_verwijder,
alg_v_aanwezigsrtruimte,BIBLIOTHEEK_PRIVILEGE);
// 10-07-97 AH #1367, Geen controle op aanwezigheid Verdieping
DEFINIEER_VIEW_AANWEZIG(alg_ruimte, alg_ruimte_verwijder,
alg_v_aanwezigruimte,NORMAAL_PRIVILEGE);
// AND
// alg_verdieping_key IN (SELECT alg_verdieping_key
// FROM alg_v_aanwezigverdieping);
// 10-07-97 AH #1367, Geen controle op aanwezigheid Locatie
DEFINIEER_VIEW_AANWEZIG(alg_terreinsector, alg_terreinsector_verwijder,
alg_v_aanwezigterreinsector,NORMAAL_PRIVILEGE);
// AND
// alg_locatie_key IN (SELECT alg_locatie_key
// FROM alg_v_aanweziglocatie);
DEFINIEER_VIEW_AANWEZIG(alg_kostenpost,
alg_kostenpost_verwijder,
alg_v_aanwezigkostenpost,
NORMAAL_PRIVILEGE);
CREATE_VIEW(alg_v_district_gegevens,NORMAAL_PRIVILEGE) AS
SELECT ALG_R.alg_regio_key, ALG_R.alg_regio_omschrijving,
ALG_R.alg_regio_upper, ALG_D.alg_district_key,
ALG_D.alg_district_module,
ALG_D.alg_district_omschrijving, ALG_D.alg_district_upper
FROM alg_regio ALG_R, alg_v_aanwezigdistrict ALG_D
WHERE ALG_R.alg_regio_key = ALG_D.alg_regio_key;
CREATE_VIEW(alg_v_locatie_gegevens,NORMAAL_PRIVILEGE)
(alg_regio_key,
alg_regio_omschrijving,
alg_regio_upper,
alg_district_key,
alg_district_omschrijving,
alg_district_upper,
alg_locatie_key,
alg_locatie_omschrijving,
alg_locatie_code,
alg_locatie_upper,
alg_locatie_tekening) AS
SELECT ALG_R.alg_regio_key,
ALG_R.alg_regio_omschrijving,
ALG_R.alg_regio_upper,
ALG_D.alg_district_key,
ALG_D.alg_district_omschrijving,
ALG_D.alg_district_upper,
ALG_L.alg_locatie_key,
ALG_L.alg_locatie_omschrijving,
ALG_L.alg_locatie_code,
ALG_L.alg_locatie_upper,
ALG_L.alg_locatie_tekening
FROM alg_regio ALG_R, alg_district ALG_D,
alg_v_aanweziglocatie ALG_L
WHERE ALG_D.alg_district_key = ALG_L.alg_district_key AND
ALG_D.alg_district_module IS NULL AND
ALG_R.alg_regio_key = ALG_D.alg_regio_key;
CREATE_VIEW(alg_v_locatie_gegevens_2,NORMAAL_PRIVILEGE)
(alg_regio_key_2,
alg_regio_omschrijving,
alg_regio_upper,
alg_district_key_2,
alg_district_omschrijving,
alg_district_upper,
alg_locatie_key,
alg_locatie_omschrijving,
alg_locatie_code,
alg_locatie_upper,
alg_locatie_tekening) AS
SELECT ALG_R.alg_regio_key,
ALG_R.alg_regio_omschrijving,
ALG_R.alg_regio_upper,
ALG_L.alg_district_key_2,
ALG_D.alg_district_omschrijving,
ALG_D.alg_district_upper,
ALG_L.alg_locatie_key,
ALG_L.alg_locatie_omschrijving,
ALG_L.alg_locatie_code,
ALG_L.alg_locatie_upper,
ALG_L.alg_locatie_tekening
FROM alg_regio ALG_R, alg_district ALG_D,
alg_v_aanweziglocatie ALG_L
WHERE ALG_D.alg_district_key = ALG_L.alg_district_key_2 AND
ALG_D.alg_district_module IS NOT NULL AND
ALG_R.alg_regio_key = ALG_D.alg_regio_key
UNION
SELECT TO_NUMBER(NULL),
NULL,
NULL,
TO_NUMBER(NULL),
NULL,
NULL,
ALG_L.alg_locatie_key,
ALG_L.alg_locatie_omschrijving,
ALG_L.alg_locatie_code,
ALG_L.alg_locatie_upper,
ALG_L.alg_locatie_tekening
FROM alg_v_aanweziglocatie ALG_L
WHERE ALG_L.alg_district_key_2 IS NULL;
CREATE_VIEW(alg_v_gebouw_gegevens,NORMAAL_PRIVILEGE) AS
SELECT ALG_L.alg_locatie_key, ALG_L.alg_locatie_omschrijving,
ALG_L.alg_locatie_code, ALG_L.alg_locatie_upper,
ALG_L.alg_locatie_tekening,
ALG_G.alg_gebouw_key, ALG_G.alg_gebouw_omschrijving,
ALG_G.alg_gebouw_code, ALG_G.alg_gebouw_naam,
ALG_G.alg_gebouw_acadkey,
ALG_G.alg_gebouw_upper, ALG_S.alg_srtgebouw_key,
ALG_S.alg_srtgebouw_omschrijving
FROM alg_locatie ALG_L, alg_v_aanweziggebouw ALG_G,
alg_v_aanwezigsrtgebouw ALG_S
WHERE ALG_L.alg_locatie_key = ALG_G.alg_locatie_key AND
ALG_G.alg_srtgebouw_key = ALG_S.alg_srtgebouw_key (+);
CREATE_VIEW(alg_v_verdieping_gegevens,NORMAAL_PRIVILEGE) AS
SELECT ALG_L.alg_locatie_key, ALG_L.alg_district_key,
ALG_L.alg_locatie_omschrijving, ALG_L.alg_locatie_code,
ALG_L.alg_locatie_upper, ALG_G.alg_gebouw_key,
ALG_G.alg_srtgebouw_key, ALG_G.alg_gebouw_omschrijving,
ALG_G.alg_gebouw_upper, ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving, ALG_V.alg_verdieping_upper,
ALG_V.alg_verdieping_volgnr, ALG_V.alg_verdieping_tekening,
ALG_V.alg_verdieping_in_bewerking
FROM alg_locatie ALG_L, alg_gebouw ALG_G,
alg_v_aanwezigverdieping ALG_V
WHERE
ALG_G.alg_gebouw_key = ALG_V.alg_gebouw_key AND
ALG_L.alg_locatie_key = ALG_G.alg_locatie_key;
CREATE_VIEW(alg_v_ruimte_gegevens,NORMAAL_PRIVILEGE) AS
SELECT ALG_L.alg_locatie_key, ALG_L.alg_district_key,
ALG_L.alg_locatie_omschrijving, ALG_L.alg_locatie_code,
ALG_L.alg_locatie_upper,
ALG_G.alg_gebouw_key, ALG_G.alg_srtgebouw_key,
ALG_G.alg_gebouw_omschrijving, ALG_G.alg_gebouw_upper,
ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving, ALG_V.alg_verdieping_upper,
ALG_V.alg_verdieping_volgnr,
ALG_V.alg_verdieping_tekening, ALG_R.alg_ruimte_key,
ALG_S.alg_srtruimte_key, ALG_R.alg_ruimte_nr,
ALG_R.alg_ruimte_acadkey,
ALG_R.alg_ruimte_omschrijving, ALG_R.alg_ruimte_upper_nr,
ALG_S.alg_srtruimte_omschrijving,
ALG_R.alg_ruimte_vloer_omschrijving,
ALG_R.alg_ruimte_bruto_vloeropp,
ALG_R.alg_ruimte_opp_gevelglas,
ALG_R.alg_ruimte_opp_separatieglas,
ALG_R.alg_ruimte_opp_gevelbekleding
#ifdef HUI
, ALG_R.prs_huismeester_key
#endif
#ifdef SCH
, ALG_R.sch_srtvloer_key
#endif
#ifdef AKZ
, ALG_R.alg_srtvloer_key
#endif
FROM alg_locatie ALG_L, alg_gebouw ALG_G,
alg_verdieping ALG_V, alg_v_aanwezigruimte ALG_R,
alg_v_aanwezigsrtruimte ALG_S
WHERE
ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key AND
ALG_G.alg_gebouw_key = ALG_V.alg_gebouw_key AND
ALG_L.alg_locatie_key = ALG_G.alg_locatie_key AND
ALG_R.alg_srtruimte_key = ALG_S.alg_srtruimte_key (+);
/*
* View met alle sleutels van de gemeenschappelijke sequence
* alg_s_alg_onroerendgoed_keys, nl. alg_gebouw, alg_verdieping, alg_ruimte en
* alg_terreinsector.
*/
CREATE_VIEW(alg_v_onroerendgoed,NORMAAL_PRIVILEGE) (alg_onroerendgoed_keys,
alg_ruimte_key,
alg_verdieping_key,
alg_gebouw_key,
alg_terreinsector_key,
alg_type) AS
SELECT ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_key,
ALG_R.alg_verdieping_key,
ALG_V.alg_gebouw_key,
to_number(NULL),
'R'
FROM alg_v_aanwezigruimte ALG_R, alg_verdieping ALG_V
WHERE ALG_R.alg_verdieping_key =
ALG_V.alg_verdieping_key
UNION
SELECT ALG_V.alg_verdieping_key,
to_number(NULL),
ALG_V.alg_verdieping_key,
ALG_V.alg_gebouw_key,
to_number(NULL),
'V'
FROM alg_v_aanwezigverdieping ALG_V
UNION
SELECT ALG_G.alg_gebouw_key,
to_number(NULL),
to_number(NULL),
ALG_G.alg_gebouw_key,
to_number(NULL),
'G'
FROM alg_v_aanweziggebouw ALG_G
UNION
SELECT ALG_T.alg_terreinsector_key,
to_number(NULL),
to_number(NULL),
to_number(NULL),
ALG_T.alg_terreinsector_key,
'T'
FROM alg_v_aanwezigterreinsector ALG_T;
CREATE_VIEW(alg_v_allonroerendgoed,NORMAAL_PRIVILEGE) (alg_onroerendgoed_keys,
alg_ruimte_key,
alg_verdieping_key,
alg_gebouw_key,
alg_terreinsector_key,
alg_type) AS
SELECT ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_key,
ALG_R.alg_verdieping_key,
ALG_V.alg_gebouw_key,
to_number(NULL),
'R'
FROM alg_ruimte ALG_R, alg_verdieping ALG_V
WHERE ALG_R.alg_verdieping_key =
ALG_V.alg_verdieping_key
UNION
SELECT ALG_V.alg_verdieping_key,
to_number(NULL),
ALG_V.alg_verdieping_key,
ALG_V.alg_gebouw_key,
to_number(NULL),
'V'
FROM alg_verdieping ALG_V
UNION
SELECT ALG_G.alg_gebouw_key,
to_number(NULL),
to_number(NULL),
ALG_G.alg_gebouw_key,
to_number(NULL),
'G'
FROM alg_gebouw ALG_G
UNION
SELECT ALG_T.alg_terreinsector_key,
to_number(NULL),
to_number(NULL),
to_number(NULL),
ALG_T.alg_terreinsector_key,
'T'
FROM alg_terreinsector ALG_T;
CREATE_VIEW(alg_v_onroerendgoed_gegevens,NORMAAL_PRIVILEGE)
(alg_onroerendgoed_keys,
alg_onroerendgoed_code,
alg_onroerendgoed_omschrijving,
alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_omschrijving,
alg_verdieping_key,
alg_verdieping_volgnr,
alg_verdieping_omschrijving,
alg_gebouw_key,
alg_gebouw_code,
alg_gebouw_naam,
alg_terreinsector_key,
alg_terreinsector_code,
alg_terreinsector_naam,
alg_type) AS
SELECT ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_nr,
ALG_R.alg_ruimte_omschrijving,
ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_nr,
ALG_R.alg_ruimte_omschrijving,
ALG_R.alg_verdieping_key,
ALG_V.alg_verdieping_volgnr,
ALG_V.alg_verdieping_omschrijving,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_code,
ALG_G.alg_gebouw_naam,
to_number(NULL),
NULL,
NULL,
'R'
FROM alg_v_aanwezigruimte ALG_R, alg_verdieping ALG_V, alg_gebouw ALG_G
WHERE ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
UNION
SELECT ALG_V.alg_verdieping_key,
TO_CHAR(ALG_V.alg_verdieping_volgnr),
ALG_V.alg_verdieping_omschrijving,
to_number(NULL),
NULL,
NULL,
ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_volgnr,
ALG_V.alg_verdieping_omschrijving,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_code,
ALG_G.alg_gebouw_naam,
to_number(NULL),
NULL,
NULL,
'V'
FROM alg_v_aanwezigverdieping ALG_V, alg_gebouw ALG_G
WHERE ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
UNION
SELECT ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_code,
ALG_G.alg_gebouw_naam,
to_number(NULL),
NULL,
NULL,
to_number(NULL),
to_number(NULL),
NULL,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_code,
ALG_G.alg_gebouw_naam,
to_number(NULL),
NULL,
NULL,
'G'
FROM alg_v_aanweziggebouw ALG_G
UNION
SELECT ALG_T.alg_terreinsector_key,
ALG_T.alg_terreinsector_code,
ALG_T.alg_terreinsector_naam,
to_number(NULL),
NULL,
NULL,
to_number(NULL),
to_number(NULL),
NULL,
to_number(NULL),
NULL,
NULL,
ALG_T.alg_terreinsector_key,
ALG_T.alg_terreinsector_code,
ALG_T.alg_terreinsector_naam,
'T'
FROM alg_v_aanwezigterreinsector ALG_T;
#ifdef MLD
/* View om de geraamde kosten te bepalen voor personeelsleden met
* openstaande opdrachten per kostenpost.
* Geraamde kosten zijn het uurloon en materiaalkosten van nog
* uitgegeven of afgemelde opdrachten.
*/
CREATE_VIEW(alg_v_mld_kostenpost_perslid, NORMAAL_PRIVILEGE)
(alg_kostenpost_key,
alg_kostenpost_geraamd) AS
SELECT MLD_O.mld_alg_kostenpost_key,
SUM(NVL(MLD_O.mld_opdr_uren,0)*NVL(PRS_P.prs_perslid_uurloon,0)) +
SUM(NVL(MLD_O.mld_opdr_materiaal,0))
FROM mld_opdr MLD_O, mld_statusopdr MLD_S,
prs_perslid PRS_P
WHERE MLD_O.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND (MLD_S.mld_statusopdr_omschrijving = 'Uitgegeven'
OR MLD_S.mld_statusopdr_omschrijving = 'Afgemeld')
AND MLD_O.mld_uitvoerende_keys = PRS_P.prs_perslid_key
GROUP BY MLD_O.mld_alg_kostenpost_key;
/* View om de geraamde kosten te bepalen voor bedrijven met
* openstaande opdachten per kostenpost.
* Geraamde kosten zijn het uurloon en materiaalkosten van nog
* uitgegeven of afgemelde opdrachten.
*/
CREATE_VIEW(alg_v_mld_kostenpost_bedrijf, NORMAAL_PRIVILEGE)
(alg_kostenpost_key,
alg_kostenpost_geraamd) AS
SELECT MLD_O.mld_alg_kostenpost_key,
SUM(NVL(MLD_O.mld_opdr_uren,0)*NVL(PRS_B.prs_bedrijf_uurloon,0)) +
SUM(NVL(MLD_O.mld_opdr_materiaal,0))
FROM mld_opdr MLD_O, mld_statusopdr MLD_S,
prs_bedrijf PRS_B
WHERE MLD_O.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND (MLD_S.mld_statusopdr_omschrijving = 'Uitgegeven'
OR MLD_S.mld_statusopdr_omschrijving = 'Afgemeld')
AND MLD_O.mld_uitvoerende_keys = PRS_B.prs_bedrijf_key
GROUP BY MLD_O.mld_alg_kostenpost_key;
/* View om de geraamde kosten te bepalen van openstaande opdrachten
* per kostenpost.
* Geraamde kosten zijn het uurloon en materiaalkosten van nog
* uitgegeven of afgemelde opdrachten.
*/
CREATE_VIEW(alg_v_mld_kostenpost_geraamd, NORMAAL_PRIVILEGE)
(alg_kostenpost_key,
alg_kostenpost_geraamd) AS
SELECT MLD_P.alg_kostenpost_key,
NVL(MLD_P.alg_kostenpost_geraamd, 0) +
NVL(MLD_B.alg_kostenpost_geraamd, 0)
FROM alg_v_mld_kostenpost_perslid MLD_P,
alg_v_mld_kostenpost_bedrijf MLD_B
WHERE MLD_P.alg_kostenpost_key = MLD_B.alg_kostenpost_key;
#endif
#ifdef LEV
/* View om de geraamde kosten te bepalen van bestellingen
* per kostenpost.
* Geraamde kosten zijn de prijs van de nog niet
* werkelijk geleverde ins_srtdelen van de bestellingen.
*/
CREATE_VIEW(alg_v_lev_kostenpost_geraamd, NORMAAL_PRIVILEGE)
(alg_kostenpost_key,
alg_kostenpost_geraamd) AS
SELECT LEV_B.lev_alg_kostenpost_key,
SUM((NVL(LEV_BR.lev_bestelregel_aantal, 0) -
NVL(LEV_BR.lev_bestelregel_geleverd, 0)) *
NVL(INV_SD.inv_srtdeel_prijs, 0))
FROM lev_bestelling LEV_B, lev_bestelregel LEV_BR, ins_srtdeel INV_SD
WHERE LEV_BR.lev_ins_srtdeel_key = INV_SD.ins_srtdeel_key
AND LEV_BR.lev_bestelregel_aantal > 0
AND LEV_BR.lev_bestelling_key = LEV_B.lev_bestelling_key
AND LEV_B.lev_bestelstatus <> 'V'
GROUP BY LEV_B.lev_alg_kostenpost_key;
#endif
/* View voor een overzicht van de aanwezige kostenposten
* incl. de geraamde en bestede bedragen.
*/
CREATE_VIEW(alg_v_alg_kostenpost_gegevens, NORMAAL_PRIVILEGE)
(alg_kostenpost_key,
alg_kostenpost_omschrijving,
alg_kostenpost_upper,
alg_kostenpost_budget,
alg_kostenpost_besteed,
alg_kostenpost_datum,
alg_kostenpost_jaar,
alg_kostenpost_geraamd) AS
SELECT ALG_K.alg_kostenpost_key,
ALG_K.alg_kostenpost_omschrijving,
ALG_K.alg_kostenpost_upper,
ALG_K.alg_kostenpost_budget,
NVL(ALG_K.alg_kostenpost_besteed, 0),
ALG_K.alg_kostenpost_datum,
ALG_K.alg_kostenpost_jaar,
SUM(
#ifdef MLD
NVL(MLD_K.alg_kostenpost_geraamd, 0)
#else
0
#endif
+
#ifdef LEV
NVL(LEV_K.alg_kostenpost_geraamd, 0)
#else
0
#endif
)
FROM alg_v_aanwezigkostenpost ALG_K
#ifdef MLD
, alg_v_mld_kostenpost_geraamd MLD_K
#endif
#ifdef LEV
, alg_v_lev_kostenpost_geraamd LEV_K
#endif
WHERE ALG_K.alg_kostenpost_key IS NOT NULL
#ifdef MLD
AND MLD_K.alg_kostenpost_key (+) = ALG_K.alg_kostenpost_key
#endif
#ifdef LEV
AND LEV_K.alg_kostenpost_key (+) = ALG_K.alg_kostenpost_key
#endif
GROUP BY ALG_K.alg_kostenpost_key,
ALG_K.alg_kostenpost_omschrijving,
ALG_K.alg_kostenpost_upper,
ALG_K.alg_kostenpost_budget,
ALG_K.alg_kostenpost_besteed,
ALG_K.alg_kostenpost_datum,
ALG_K.alg_kostenpost_jaar;
DEFINIEER_VIEW_AANWEZIG(alg_objectdeel, alg_objectdeel_verwijder,
alg_v_aanwezigobjectdeel,NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_systeemcluster, alg_systeemcluster_verwijder,
alg_v_aanwezigsysteemcluster,NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_bouwdeel, alg_bouwdeel_verwijder,
alg_v_aanwezigbouwdeel,NORMAAL_PRIVILEGE);
CREATE_VIEW(alg_v_systeemcluster_gegevens, NORMAAL_PRIVILEGE) AS
SELECT ALG_O.alg_locatie_key,
ALG_O.alg_objectdeel_key,
ALG_O.alg_objectdeel_omschrijving,
ALG_O.alg_objectdeel_upper,
ALG_S.alg_systeemcluster_key,
ALG_S.alg_systeemclust_omschrijving,
ALG_S.alg_systeemcluster_upper
FROM alg_v_aanwezigsysteemcluster ALG_S, alg_objectdeel ALG_O
WHERE ALG_S.alg_objectdeel_key = ALG_O.alg_objectdeel_key;
CREATE_VIEW(alg_v_systeemcluster_onrgoed, NORMAAL_PRIVILEGE)
(alg_locatie_key,
alg_objectdeel_key,
alg_objectdeel_omschrijving,
alg_objectdeel_upper,
alg_systeemcluster_key,
alg_systeemclust_omschrijving,
alg_systeemcluster_upper,
alg_onroerendgoed_keys,
alg_onroerendgoed_type,
alg_onroerendgoed_omschrijving,
alg_onroerendgoed_upper) AS
SELECT ALG_O.alg_locatie_key,
ALG_O.alg_objectdeel_key,
ALG_O.alg_objectdeel_omschrijving,
ALG_O.alg_objectdeel_upper,
ALG_S.alg_systeemcluster_key,
ALG_S.alg_systeemclust_omschrijving,
ALG_S.alg_systeemcluster_upper,
ALG_G.alg_gebouw_key,
'G',
ALG_G.alg_gebouw_omschrijving,
ALG_G.alg_gebouw_upper
FROM alg_v_aanwezigsysteemcluster ALG_S, alg_objectdeel ALG_O,
alg_v_aanweziggebouw ALG_G
WHERE ALG_S.alg_objectdeel_key = ALG_O.alg_objectdeel_key
AND ALG_G.alg_systeemcluster_key = ALG_S.alg_systeemcluster_key
UNION
SELECT ALG_O.alg_locatie_key,
ALG_O.alg_objectdeel_key,
ALG_O.alg_objectdeel_omschrijving,
ALG_O.alg_objectdeel_upper,
ALG_S.alg_systeemcluster_key,
ALG_S.alg_systeemclust_omschrijving,
ALG_S.alg_systeemcluster_upper,
ALG_T.alg_terreinsector_key,
'T',
ALG_T.alg_terreinsector_omschrijving,
ALG_T.alg_terreinsector_upper
FROM alg_v_aanwezigsysteemcluster ALG_S, alg_objectdeel ALG_O,
alg_v_aanwezigterreinsector ALG_T
WHERE ALG_S.alg_objectdeel_key = ALG_O.alg_objectdeel_key
AND ALG_T.alg_systeemcluster_key = ALG_S.alg_systeemcluster_key;
CREATE_VIEW(alg_v_bouwdeel_gegevens, NORMAAL_PRIVILEGE) AS
SELECT ALG_G.alg_locatie_key,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_omschrijving,
ALG_G.alg_gebouw_upper,
ALG_B.alg_bouwdeel_key,
ALG_B.alg_bouwdeel_omschrijving,
ALG_B.alg_bouwdeel_upper
FROM alg_v_aanwezigbouwdeel ALG_B, alg_gebouw ALG_G
WHERE ALG_B.alg_gebouw_key = ALG_G.alg_gebouw_key;
CREATE_VIEW(alg_v_bouwdeel_verdieping, NORMAAL_PRIVILEGE)
AS
SELECT ALG_G.alg_locatie_key,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_omschrijving,
ALG_G.alg_gebouw_upper,
ALG_B.alg_bouwdeel_key,
ALG_B.alg_bouwdeel_omschrijving,
ALG_B.alg_bouwdeel_upper,
ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving,
ALG_V.alg_verdieping_volgnr
FROM alg_v_aanwezigbouwdeel ALG_B, alg_gebouw ALG_G,
alg_v_aanwezigverdieping ALG_V
WHERE ALG_B.alg_gebouw_key = ALG_G.alg_gebouw_key
AND ALG_B.alg_bouwdeel_key = ALG_V.alg_bouwdeel_key;
DEFINIEER_VIEW_AANWEZIG(alg_srtterrein, alg_srtterrein_verwijder,
alg_v_aanwezigsrtterrein,NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_srtverdieping, alg_srtverdieping_verwijder,
alg_v_aanwezigsrtverdieping,NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_srtvloer, alg_srtvloer_verwijder,
alg_v_aanwezigsrtvloer,NORMAAL_PRIVILEGE);
#endif // ALG

0
CAD/.gitignore vendored
View File

17
CAD/CAD_IND.SRC Normal file
View File

@@ -0,0 +1,17 @@
#ifdef CAD // 22-05-1998 KTH
/*
* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* 22-05-1998 KTH LOG#1821: Wijzigingen tbv tabel CAD_TEKENING geintroduceerd
*/
CREATE INDEX cad_i_cad_tekening1 ON cad_tekening(ins_discipline_key);
CREATE INDEX cad_i_cad_tekening2 ON cad_tekening(alg_locatie_key);
CREATE INDEX cad_i_cad_tekening3 ON cad_tekening(alg_verdieping_key);
#endif // CAD

14
CAD/CAD_INI.SRC Normal file
View File

@@ -0,0 +1,14 @@
#ifdef CAD // 22-05-1998 KTH
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* 22-05-1998 KTH Aangemaakt
*/
_FAC_MODULE('CAD','AutoCAD Map koppeling')
#endif // CAD

164
CAD/CAD_PAC.SRC Normal file
View File

@@ -0,0 +1,164 @@
#ifdef CAD // 22-05-1998 KTH
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* 22-07-1998 KTH - diverse -- vervangen door slash-sterretje/sterretje-slash
* - diverse kleine aanpassingen
* 21-07-1998 BIV Procedure cad_p_ruimte_update_opp toegevoegd
* 21-07-1998 BIV Functie cad_f_ruimte_get_tekeningnaam() toegevoegd.
* 09-07-1998 PF Geen exception meer, en PRAGMA WNPS toegevoegd
* 08-07-1998 PF Functies gebruiken TABLE ins_deel ipv VIEW ins_v_aanwezigdeel, vanwege autorisatie.
* De functie wordt ook door andere users (FCLTCAD) gebruikt, en die ziet niets
* in de autorisatie views
* 07-07-1998 BIV Functies cad_f_deel_get_locatie_key, ..._get_verdieping_key, ..._get_discipline_key,
* ..._get_tekeningnaam toegevoegd.
* --- 01.38 ---
* --- 01.37 ---
* 22-05-1998 KTH Aangemaakt
*/
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_p_ruimte_update_opp(key IN NUMBER, VloerOpp IN 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);
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);
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 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 /* ja deze! */
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
/* raise_application_error(-20000, 'ins_m166'); */
RETURN NULL;
END;
ELSE
RETURN NULL;
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;
/*
* CAD_P_RUIMTE_UPDATE_OPP wordt aangeroepen vanuit AutoCAD
* en wijzigt de vloeroppervlakte van een opgegeven ruimte
*
* Merk op dat een eventuele EXCEPTION hier niet expliciet wordt afgevangen!
*/
PROCEDURE cad_p_ruimte_update_opp(Key IN NUMBER, VloerOpp IN NUMBER) IS
BEGIN
/* alleen indien het een logisch aanwezige ruimte betreft passen we de opp aan */
UPDATE alg_v_aanwezigruimte
SET alg_ruimte_bruto_vloeropp = VloerOpp
WHERE alg_ruimte_key = Key;
COMMIT;
END cad_p_ruimte_update_opp;
END cad;
/
#endif // CAD

14
CAD/CAD_SEQ.SRC Normal file
View File

@@ -0,0 +1,14 @@
#ifdef CAD // 22-05-1998 KTH
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* 22-05-1998 KTH LOG#1821: Wijzigingen tbv tabel CAD_TEKENING geintroduceerd
*/
CREATE SEQUENCE cad_s_cad_tekening_key MINVALUE 1;
#endif // CAD

45
CAD/CAD_TAB.SRC Normal file
View File

@@ -0,0 +1,45 @@
#ifdef CAD // 22-05-1998 KTH
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* 30-06-1998 BIV LOG#1902: NOT NULL van CAD_TEKENING.INS_DISCIPLINE_KEY eraf
* --- 01.37 ---
* 22-05-1998 KTH LOG#1821: Wijzigingen tbv tabel CAD_TEKENING geintroduceerd
*/
#include "comsql.h"
CREATE_TABLE(cad_tekening, NORMAAL_PRIVILEGE)
(
cad_tekening_key
NUMBER(10)
CONSTRAINT cad_k_cad_tekening_key PRIMARY KEY,
ins_discipline_key /* als deze leeg is geeft betreft het de Contour-tekening */
NUMBER(10)
--#1902 NOT_NULL(ins_discipline_key, cad_c_ins_discipline_key)
CONSTRAINT cad_r_ins_discipline_key REFERENCES ins_tab_discipline(ins_discipline_key),
alg_locatie_key
NUMBER(10)
NOT_NULL(alg_locatie_key, cad_c_alg_locatie_key)
CONSTRAINT cad_r_alg_locatie_key REFERENCES alg_locatie(alg_locatie_key),
alg_verdieping_key /* is optioneel NULL */
NUMBER(10)
CONSTRAINT cad_r_alg_verdieping_key REFERENCES alg_verdieping(alg_verdieping_key),
cad_tekening_filenaam /* excl. leading PATH (komt uit INI-file), incl. extension */
VARCHAR2(256)
NOT_NULL(cad_tekening_filenaam, cad_c_cad_tekening_filenaam),
cad_tekening_type
VARCHAR2(3)
NOT_NULL (cad_tekening_type, cad_c_cad_tekening_type)
CONSTRAINT cad_c_cad_tekening_type2 CHECK(cad_tekening_type = 'P' OR cad_tekening_type = 'C'
OR cad_tekening_type = 'D'),
cad_tekening_geimporteerd /* geeft aan of de tekening al is geimporteerd: */
DATE /* NULL indien niet, anders datum van importeren */
DEFAULT NULLDATUM,
CONSTRAINT cad_u_cad_tekening UNIQUE(ins_discipline_key,alg_locatie_key,alg_verdieping_key)
);
#endif // CAD

22
CAD/CAD_TRI.SRC Normal file
View File

@@ -0,0 +1,22 @@
#ifdef CAD // 22-05-1998 KTH
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* 22-05-1998 KTH LOG#1821: Wijzigingen tbv tabel CAD_TEKENING geintroduceerd
*/
#include "comsql.h"
CREATE_TRIGGER(cad_t_cad_tekening_B_IU)
BEFORE INSERT OR UPDATE ON cad_tekening
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(cad_tekening_key, cad_s_cad_tekening_key);
END;
/
#endif // CAD

135
CAD/CAD_VIE.SRC Normal file
View File

@@ -0,0 +1,135 @@
#ifdef CAD // 22-05-1998 KTH
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* 23-07-1998 KTH LOG#1938: cad_vie.src opgesplitst in cad_vie1.src en cad_vie2.src
* 21-07-1998 BIV View cad_v_alg_ruimte_tekening toegevoegd.
* 21-07-1998 BIV View cad_v_cad_tekening uitgebreidt met CAD_TEKENING_TYPE.
* 16-07-1998 BIV View toegevoegd voor Plattegrond-, Contour- en Disciplinetekeningen.
* 09-07-1998 KTH Dubbel stukje cad_v_ins_deel_tekening verwijderd
* 09-07-1998 PF View cad_v_ins_deel_tekening toegevoegd
* 08-07-1998 PF View cad_v_cad_tekening toegevoegd (voor raadplegen vanuit FCLTCAD)
* --- 01.38 ---
* 01-07-1998 KTH - CAD_V_ALG_GEBOUW toegevoegd (voor PF)
* - CAD_V_ALG_RUIMTE.ALG_VERDIEPING_KEY toegevoegd (voor PF)
* 29-06-1998 KTH LOG#1905: CAD_V_ALG_RUIMTE en CAD_V_INS_DEEL toegevoegd
* --- 01.37 ---
* 08-06-1998 BIV LOG#1824: CAD_V_CAD_TEKENING_GEGEVENS toegevoegd t.b.v. overzichtscherm CAD011.
* 22-05-1998 KTH LOG#1821: Wijzigingen tbv tabel CAD_TEKENING geintroduceerd
*/
#include "comsql.h"
CREATE_VIEW(cad_v_cad_aanwezigtekening, NORMAAL_PRIVILEGE) AS
SELECT * FROM cad_tekening C_T
WHERE C_T.ins_discipline_key IN (SELECT ins_discipline_key
FROM ins_discipline)
OR C_T.ins_discipline_key IS NULL;
CREATE_VIEW(cad_v_cad_tekening_gegevens, NORMAAL_PRIVILEGE)
(cad_tekening_key,
alg_locatie_key,
alg_locatie_code,
alg_gebouw_key,
alg_gebouw_code,
alg_verdieping_key,
alg_verdieping_omschrijving,
ins_discipline_key,
ins_discipline_omschrijving) AS
SELECT C_T.cad_tekening_key,
C_T.alg_locatie_key,
ALG_L.alg_locatie_code,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_code,
C_T.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving,
C_T.ins_discipline_key,
INS_D.ins_discipline_omschrijving
FROM alg_locatie ALG_L,
alg_verdieping ALG_V,
alg_gebouw ALG_G,
ins_discipline INS_D,
cad_v_cad_aanwezigtekening C_T
WHERE C_T.alg_locatie_key = ALG_L.alg_locatie_key
AND C_T.alg_verdieping_key = ALG_V.alg_verdieping_key (+)
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key (+)
AND C_T.ins_discipline_key = INS_D.ins_discipline_key (+);
CREATE_VIEW(cad_v_plattegrond, CAD_PRIVILEGE) AS
SELECT * FROM cad_tekening
WHERE UPPER(cad_tekening_type) = 'P';
CREATE_VIEW(cad_v_contour, CAD_PRIVILEGE) AS
SELECT * FROM cad_tekening
WHERE UPPER(cad_tekening_type) = 'C';
CREATE_VIEW(cad_v_discipline, CAD_PRIVILEGE) AS
SELECT * FROM cad_tekening
WHERE UPPER(cad_tekening_type) = 'D';
/* 29-06-1998 KTH LOG#1905
* Views die door de AutoCAD Map-user FCLTCAD worden geraadpleegd.
* Bij die user heet de SYNONYM ernaar toe wellicht anders.
*/
CREATE_VIEW(cad_v_alg_gebouw, CAD_PRIVILEGE)
(alg_gebouw_key,
alg_gebouw_cadlabel,
alg_gebouw_code) AS
SELECT alg_gebouw_key,
alg_gebouw_code,
alg_gebouw_code
FROM alg_v_aanweziggebouw;
CREATE_VIEW(cad_v_alg_ruimte, CAD_PRIVILEGE)
(alg_ruimte_key,
alg_ruimte_cadlabel,
alg_ruimte_nr,
alg_verdieping_key) AS
SELECT alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_nr,
alg_verdieping_key
FROM alg_v_aanwezigruimte;
/* View met ALLE tekeningen, ongeacht de autorisatie; minimale kolommen, gebruikt in CAD_PAC.SRC */
CREATE_VIEW(cad_v_cad_tekening, CAD_PRIVILEGE) AS
SELECT ins_discipline_key,
alg_locatie_key,
alg_verdieping_key,
cad_tekening_type,
cad_tekening_filenaam
FROM cad_tekening C_T;
#ifdef INS
/* 29-06-1998 KTH LOG#1905
* View CAD_V_INS_DEEL wordt door de AutoCAD Map-user FCLTCAD geraadpleegd.
* Bij die user heet de SYNONYM ernaar toe wellicht anders.
*/
#ifdef AKZ
/* voor AKZ wordt alleen het laatste stuk van de omschrijving gebruikt */
CREATE_VIEW(cad_v_ins_deel, CAD_PRIVILEGE)
(ins_deel_key,
ins_deel_cadlabel,
ins_deel_upper) AS
SELECT ins_deel_key,
SUBSTR(ins_deel_upper, LENGTH(ins_deel_upper)-5), /* laatste 5 karakters */
ins_deel_upper
FROM ins_deel
WHERE ins_deel_verwijder IS NULL; /* alleen de logisch aanwezige delen */
#else
CREATE_VIEW(cad_v_ins_deel, CAD_PRIVILEGE)
(ins_deel_key,
ins_deel_cadlabel,
ins_deel_upper) AS
SELECT ins_deel_key,
ins_deel_upper,
ins_deel_upper
FROM ins_deel
WHERE D.ins_deel_verwijder IS NULL; /* alleen de logisch aanwezige delen */
#endif // AKZ
#endif // INS
#endif // CAD

489
COMSQL.H Normal file
View File

@@ -0,0 +1,489 @@
#ifndef _COMSQL_H
#define _COMSQL_H
/*
* Opmerkingen:
* - gebruik ~ waar een \n gewenst is (zie bv. CREATE_TABLE())
*
* Functies aanwezig:
*
* _FAC_MODULE
* CREATE_TABLE()
* CREATE_VIEW()
* CREATE_TRIGGER()
* CREATE_VOLGNR()
* UPDATE_PRIMARY_KEY()
* UPDATE_VOLGNR()
* UPDATE_UPPER()
* DEFINIEER_VIEW_AANWEZIG()
* CHECK_UNIQUE_OMSCHRIJVING
* CHECK_UNIQUE_KEY_OMSCHRIJVING
* CHECK_UNIQUE_DEEL_KEY_OMSCHRIJVING
* LAAT_VERDIEPING_VERVALLEN_VOOR_GEBOUW()
* LAAT_RUIMTE_VERVALLEN_VOOR_VERDIEPING()
* CHECK_NOG_REFERENCES()
* CHECK_SRT_REFERENCE()
* CHECK_REFERENCE_INST()
* CHECK_REFERENCE_SRTINST()
* CHECK_REFERENCE_ONROERENDGOED()
* CHECK_REFERENCE_UITVOERENDE()
* CHECK_REFERENCE_DEFAULTUITV()
* UPDATE_WEEKINGAVE
* SET_VERWIJDER_CHILDREN
* SET_VERWIJDER_CHILDREN2
* DELETE_CHILDREN
* DEF_FAC_ENTITY
* DEF_FAC_MESSAGE
* DEF_FAC_FORM()
* NOT_NULL()
* FAC_P_FAC_SAVE_RESTORE_UPDATE()
*
* History:
*
* --- 01.40 ---
* 28-08-98 KTH _FAC_MODULE komt op '01.40'
* --- 01.39 ---
* --- 01.38 ---
* 29-06-98 KTH LOG#1905: CAD_PRIVILEGE toegevoegd tbv AutoCAD Map (CAD_VIE.SRC)
* --- 01.37 ---
* 20-05-98 KTH Macro _FAC_MODULE gedefinieerd welke door xxx_INI.SRC kan worden gebruikt
* --- 01.36 ---
* --- 01.35 ---
* 17/04/1998 AH Aan het einde van FAC_P_FAC_SAVE_RESTORE_UPDATE() mogen de onthouden Keys verwijderd
* worden.
* 01/04/1998 AH #1540, FAC_P_FAC_SAVE_RESTORE_UPDATE() toegevoegd.
* --- 01.34 ---
* 17/02/1998 AH SET_VERWIJDER_CHILDREN2() toegevoegd.
* 29/01/1998 AH HIDDEN_PRIVILEGE toegevoegd voor INS_TAB_DISCIPLINE, er wordt geen SYNONYM aangemaakt
* in de afgeleide gebruikers.
* 12/11/1997 AH Macro NOT_NULL() toegevoegd, controleerd op NOT NULL van een column
* De melding kan niet via de column-contraint NOT NULL gegeven worden, maar wel
* via CHECK(.. IS NOT NULL) .
* CREATE_TRIGGER() toegevoegd
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* 19-09-96 AH UPDATE_UPPER() aangepast, kan gewoon toekenning worden
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* 12-06-96 KTH Macro DEF_FAC_FORM() toegevoegd
* 07-06-96 KTH Insert into fac_privilege moet UPPER gebruiken (2x) ivm.
* kunnen vergelijken van de grants in grants.sql.
* --- 01.16 ---
* --- 01.15 ---
* 17-05-96 PF CREATE VIEW vervangen door CREATE OR REPLACE VIEW in CREATE_VIEW
* 14-05-96 EH #define TRUE en FALSE verwijderd.
* 03-05-96 AH define UPDATE_VOLGNR() en CREATE_VOLGNR() toegevoegd.
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 01-04-96 KTH CREATE_TABLE en CREATE_VIEW toegevoegd voor roles en
* DEFINIEER_VIEW_AANWEZIG daarvoor aangepast
* 26-02-96 EH SET_VERWIJDER_CHILDREN aangepast.
* 16-02-96 PF NOT xx IS NULL vervangen door xx IS NOT NULL
* 16-02-96 PF SET_VERWIJDER_CHILDREN en DELETE_CHILDREN uit INSSQL.H
* toegevoegd
* 13-02-96 PF CHECK_SRT_REFERENCE aangepast (log 330); extra parameter
* 25-01-96 AH [#119] MLD_T_MLD_MELDING_B_IU houdt geen rekening met
* ALG_TERREINSECTOR. In CHECK_REFERENCE_ONROERENDGOED()
* 22-01-96 KTH [#280] NULLDATUM teruggezet naar NULL (en '= NULLDATUM' wordt
* 'IS NULLDATUM', '<> NULLDATUM' wordt 'IS NOT NULLDATUM')
* 12-01-96 PF LEEG DATUMVELD is niet NULL, maar 29-FEB-1604'
* 20-12-95 PF macros voor entitynames en messages toegevoegd
* 06-12-95 EH 'ins_m..' verwijderd; inhoudsopgave bijgewerkt.
* --ER STAAN NOG QUOOTJES IN TRIGGER CHECK_REF_ONR !!--
* 04-12-95 AH Trigger CHECK_REFERENCE_UITVOERENDE houdt geen rekening met
* NULL waarde van key.
*/
#define _FAC_MODULE(module,omschrijving) \
INSERT INTO fac_module VALUES (module,'01.40',TO_CHAR(SYSDATE,'YYYYMMDD'),omschrijving);
#define APPLICATION_ERROR raise_application_error
/*#define NULLDATUM TO_DATE('29-FEB-1604','DD-MON-YYYY')*/
#define NULLDATUM NULL
/*
* In principe moeten alle tabellen en views aangemaakt worden met
* CREATE_TABLE() resp. CREATE_VIEW() om ook het toekennen van geschikte
* roles af te dwingen (uitzondering is table fac_privilege)
*
* (S)elect, (I)nsert, (D)elete, (U)pdate
*
* level small full archive
* ----- ----- ---- -------
* 1 SIDU SIDU SIDU ; bv. tijdelijke tabellen
* 2 S SIDU SIDU ; normale tabellen
* 3 S S SIDU ; bibliotheek tabellen
* 4 - - - ; tabellen die niet mogen worden ingezien
*/
#define BASIS_PRIVILEGE 1
#define NORMAAL_PRIVILEGE 2
#define BIBLIOTHEEK_PRIVILEGE 3
#define HIDDEN_PRIVILEGE 4
/* voor de FCLT_CAD_ROLE (tbv AutoCAD Map user) */
#define CAD_PRIVILEGE 5
#define CREATE_TABLE(table_name, level) \
INSERT INTO fac_privilege VALUES (UPPER(#@table_name), level);~CREATE TABLE table_name
#define CREATE_VIEW(view_name, level) \
INSERT INTO fac_privilege VALUES (UPPER(#@view_name), level);~CREATE OR REPLACE VIEW view_name
#define CREATE_TRIGGER(trigger_name) \
CREATE OR REPLACE TRIGGER trigger_name
#define CREATE_VOLGNR(volgnr_srt, volgnr_periode) \
INSERT INTO fac_volgnrs (fac_volgnr_srt, fac_volgnr_periode) \
VALUES(volgnr_srt, volgnr_periode)
#define UPDATE_PRIMARY_KEY(primary_key, sequence_primary_key) \
IF :new.primary_key IS NULL \
THEN SELECT sequence_primary_key.nextval INTO :new.primary_key \
FROM DUAL; \
END IF
#define UPDATE_VOLGNR(key_veld, fac_volgnr_srt) \
IF :new.key_veld IS NULL \
THEN \
:new.key_veld := FAC_P_FAC_VOLGNR.FAC_VOLGNR_NEXTVAL(fac_volgnr_srt); \
END IF
#define UPDATE_UPPER(omschrijving, upper_omschrijving) \
:new.upper_omschrijving := UPPER(:new.omschrijving)
#define DEFINIEER_VIEW_AANWEZIG(table, verwijder_veld, view_name, level) \
CREATE_VIEW (view_name,level) AS \
SELECT * \
FROM table \
WHERE table.verwijder_veld IS NULLDATUM
#define CHECK_UNIQUE_OMSCHRIJVING(tabel, upper_omschrijving, \
exc_msg_GEEN_OMSCHRIJVING, \
exc_msg_BESTAANDE_OMSCHRIJVING) \
DECLARE \
dummy CHAR := 'N'; \
BEGIN \
SELECT 'X' INTO dummy \
FROM tabel \
GROUP BY upper_omschrijving \
HAVING COUNT(*) > 1; \
APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
\
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
END
#define CHECK_UNIQUE_KEY_OMSCHRIJVING(tabel, key, upper_omschrijving, \
exc_msg_GEEN_OMSCHRIJVING, \
exc_msg_BESTAANDE_OMSCHRIJVING) \
DECLARE \
dummy CHAR := 'N'; \
BEGIN \
SELECT 'X' INTO dummy \
FROM tabel \
GROUP BY key, upper_omschrijving \
HAVING COUNT(*) > 1; \
APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
\
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
END
#define CHECK_UNIQUE_DEEL_KEY_OMSCHRIJVING(tabel, up_key, naast_key, \
upper_omschrijving, exc_msg_GEEN_OMSCHRIJVING, \
exc_msg_BESTAANDE_OMSCHRIJVING) \
DECLARE \
dummy CHAR := 'N'; \
BEGIN \
SELECT 'X' INTO dummy \
FROM tabel \
GROUP BY up_key, naast_key, upper_omschrijving \
HAVING COUNT(*) > 1; \
APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
\
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
END
#define LAAT_VERDIEPING_VERVALLEN_VOOR_GEBOUW(exc_msg_VERDIEPING_IN_GEBRUIK) \
BEGIN \
IF :new.alg_gebouw_verwijder IS NOT NULL \
THEN \
UPDATE alg_verdieping \
SET alg_verdieping_verwijder = SYSDATE \
WHERE \
alg_verdieping.alg_gebouw_key = :new.alg_gebouw_key; \
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN APPLICATION_ERROR(-20000, exc_msg_VERDIEPING_IN_GEBRUIK); \
\
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20000, exc_msg_VERDIEPING_IN_GEBRUIK); \
END
#define LAAT_RUIMTE_VERVALLEN_VOOR_VERDIEPING(exc_msg_RUIMTE_IN_GEBRUIK) \
BEGIN \
IF :new.alg_verdieping_verwijder IS NOT NULL \
THEN \
UPDATE alg_ruimte \
SET alg_ruimte_verwijder = SYSDATE \
WHERE \
alg_ruimte.alg_verdieping_key = :new.alg_verdieping_key; \
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN APPLICATION_ERROR(-20000, exc_msg_RUIMTE_IN_GEBRUIK); \
\
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20000, exc_msg_RUIMTE_IN_GEBRUIK); \
END
#define CHECK_NOG_REFERENCES(tabel,tabel_verwijder_veld,reference_view, \
key_veld,message) \
DECLARE \
dummy CHAR; \
BEGIN \
IF :new.tabel_verwijder_veld IS NOT NULLDATUM \
THEN \
SELECT 'x' INTO dummy \
FROM reference_view \
WHERE reference_view.key_veld = :old.key_veld; \
APPLICATION_ERROR(-20000,message); \
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
NULL; \
WHEN TOO_MANY_ROWS THEN \
APPLICATION_ERROR(-20000,message); \
END
#define CHECK_SRT_REFERENCE(srtref_table, deelref_table, srtref_key, \
deelref_key, srtdeelref_key, message, tabel_verwijder_veld) \
DECLARE \
dummy CHAR; \
BEGIN \
IF :new.tabel_verwijder_veld IS NULL THEN \
SELECT 'X' INTO dummy \
FROM srtref_table, deelref_table \
WHERE :new.srtref_key = srtref_table.srtref_key AND \
:new.deelref_key = deelref_table.deelref_key AND \
srtref_table.srtdeelref_key = deelref_table.srtdeelref_key; \
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN \
APPLICATION_ERROR(-20000,message); \
END
#define CHECK_REFERENCE_INST(key_veld, message) \
DECLARE \
dummy CHAR; \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigdeel \
WHERE ins_deel_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigonderdeel \
WHERE ins_onderdeel_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigelement \
WHERE ins_element_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
APPLICATION_ERROR(-20000, message); \
END; \
END; \
END
#define CHECK_REFERENCE_SRTINST(key_veld, message) \
DECLARE \
dummy CHAR; \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigsrtdeel \
WHERE ins_srtdeel_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigsrtonderdeel \
WHERE ins_srtonderdeel_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigsrtelement \
WHERE ins_srtelement_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
APPLICATION_ERROR(-20000, message); \
END; \
END; \
END
#define CHECK_REFERENCE_ONROERENDGOED(key_veld, message) \
DECLARE \
dummy CHAR; \
BEGIN \
SELECT 'X' INTO dummy \
FROM alg_v_aanweziggebouw \
WHERE alg_gebouw_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
BEGIN \
SELECT 'X' INTO dummy \
FROM alg_v_aanwezigverdieping \
WHERE alg_verdieping_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
BEGIN \
SELECT 'X' INTO dummy \
FROM alg_v_aanwezigruimte \
WHERE alg_ruimte_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
BEGIN \
SELECT 'X' INTO dummy \
FROM alg_v_aanwezigterreinsector \
WHERE alg_terreinsector_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
APPLICATION_ERROR(-20000,message); \
END; \
END; \
END; \
END
#define CHECK_REFERENCE_UITVOERENDE(key_veld, message) \
DECLARE \
dummy CHAR; \
BEGIN \
IF :new.key_veld IS NOT NULL \
THEN \
SELECT 'X' INTO dummy \
FROM mld_v_uitvoerende \
WHERE key = :new.key_veld; \
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
APPLICATION_ERROR(-20000, message); \
END
#define CHECK_REFERENCE_DEFAULTUITV(key_veld, message) \
DECLARE \
dummy CHAR; \
BEGIN \
SELECT 'X' INTO dummy \
FROM mld_v_defaultuitv \
WHERE bco_defaultuitv_keys = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
APPLICATION_ERROR(-20000, message); \
END
#define UPDATE_WEEKINGAVE(weekingave_veld) \
BEGIN \
:new.weekingave_veld := to_number( \
to_char(:new.mld_opdr_datumbegin, 'YYWW')); \
END
#define SET_VERWIJDER_CHILDREN(child_table, parent_key, parent_verwijder, \
child_verwijder) \
BEGIN \
IF :new.parent_verwijder IS NOT NULL \
THEN \
UPDATE child_table \
SET child_verwijder = SYSDATE \
WHERE \
child_table.parent_key = :new.parent_key AND \
child_verwijder IS NULL; \
END IF; \
END
#define SET_VERWIJDER_CHILDREN2(child_table, parent_key, child_key, parent_verwijder, \
child_verwijder) \
BEGIN \
IF :new.parent_verwijder IS NOT NULL \
THEN \
UPDATE child_table \
SET child_verwijder = SYSDATE \
WHERE \
child_table.child_key = :new.parent_key AND \
child_verwijder IS NULL; \
END IF; \
END
#define DELETE_CHILDREN(child_table, parent_key) \
BEGIN \
DELETE FROM child_table \
WHERE child_table.parent_key = :new.parent_key; \
END
#define DEF_FAC_ENTITY INSERT INTO fac_entity_name VALUES
#define DEF_FAC_MESSAGE INSERT INTO fac_message VALUES
#define DEF_FAC_FORM INSERT INTO fac_form VALUES
// NOT_NULL(): Columnconstraint ipv. NOT NULL, De melding ORA-1400: mandatory (NOT NULL)...
// geeft de constraintnaam niet, zodat de meding niet vertaald kan worden.
// De CHECK() geeft het wel, dus wordt deze gebruikt.
#define NOT_NULL(column, constraint_name) CONSTRAINT constraint_name CHECK(column IS NOT NULL)
/* Doorloop de onthouden PrimaryKeys via FAC_P_FAC_SAVE_RESTORE en roep voor elke key de functie Func
* aan. Deze doet de uiteindelijke actie.
* Func krijgt als argument de key (NUMBER) mee en moet een BOOLEAN teruggeven.
* Zie ook commentaar in FAC_PAC.SRC.
*/
#define FAC_P_FAC_SAVE_RESTORE_UPDATE(Func, TableName) \
DECLARE \
IndexNr NUMBER; \
PrimaryKey NUMBER(10); \
Dummy BOOLEAN; \
BEGIN \
IndexNr := 1; \
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey(TableName, IndexNr); \
WHILE PrimaryKey IS NOT NULL \
LOOP \
Dummy := Func(PrimaryKey); \
IndexNr := IndexNr + 1; \
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey(TableName, IndexNr); \
END LOOP; \
Dummy := fac_p_fac_save_restore.ResetSelectie(TableName); \
END
#endif // _COMSQL_H

0
FAC/.gitignore vendored
View File

47
FAC/FAC_IND.SRC Normal file
View File

@@ -0,0 +1,47 @@
#ifdef FAC // 13-03-96 AH
/*
* System indices for Facilitor
*/
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* 03/02/1998 AH Kolomnamen in FAC_GEBRUIKER zijn aangepast.
* 28/01/1998 AH Indexen aangemaakt voor FAC_GEBRUIKER.
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 13-10-95 PF Creation
*/
CREATE INDEX fac_i_fac_gebruiker1 ON fac_gebruiker(fac_gebruiker_username);
CREATE INDEX fac_i_fac_gebruiker2 ON fac_gebruiker(fac_gebruiker_module, fac_gebruiker_tabel, fac_gebruiker_kolom, fac_gebruiker_kolomkey, fac_gebruiker_soort);
#endif // FAC

5054
FAC/FAC_INI.SRC Normal file

File diff suppressed because it is too large Load Diff

269
FAC/FAC_PAC.SRC Normal file
View File

@@ -0,0 +1,269 @@
#ifdef FAC
/* FAC_P_FAC_VOLGNR: Tabel en functies voor volgnummers.
*
* Deze tabel is voor het simuleren van sequences die zich kunnen
* resetten om een bepaalde periode.
*
* De periode wordt aangegeven dmv. een TO_CHAR-formaat van een datum,
* bijv. 'YYYY' voor jaar of 'MM' voor maand.
*
* De functies voor deze volgnummers zitten in een package. Het volgnummer
* moet altijd via deze functies opgevraagd worden.
*
* De volgende functies zijn beschikbaar:
* - fac_volgnr_currval(soort) RETURN NUMBER:
* Vraag de huidige waarde van het volgnummer op.
* - fac_volgnr_nextval(soort) RETURN NUMBER:
* Vraag de waarde op van volgende volgnummer op.
* het volgnummer en de laatste opvraagdatum wordt dan aangepast. Als de
* huidige datum over de opgegeven periodegrens komt, dan wordt eerst het
* volgnummer gereset.
* - fac_volgnr_reset(soort):
* Indien nodig reset het volgnr.
*
* In SQL_PLUS kan de source opgevraagd worden uit tabel USER_SOURCE.
* Bij het creeren kan de de volgende error komen:
* DBA-00072: Package body created with compilation errors.
* De errors kunnen bekeken worden dmv. SHOW ERRORS;
*
* FAC_P_FAC_SAVE_RESTORE: Package voor het bewaren en teruggeven van primary keys binnen triggers.
*
* Gebruikt in: De status van de MLD_MELDING is afhankelijk van de minimale status van zijn opdrachten, of als
* er geen opdrachten kan dit door de gebruiker gezet worden. Als er een nieuwe opdrachten aangemaakt
* wordt, of als een opdracht van status veranderd of als een opdracht verwijderd wordt, heeft dit invloed
* op de status van de bijbehorende melding. Dit mechanisme is opgelost via de triggers van MLD_OPDR.
*
* De volgende functies zijn beschikbaar:
* - ResetSelectie(TableName) RETURN BOOLEAN:
* Verwijderd de vorige selectie van de Primary-keys van de tabel. Hou hier rekening met multi-user dmv. de
* huidige SessionId. Retourneerd of het gelukt (TRUE) is of niet (FALSE).
* Deze moet aangeroepen worden in de BEFORE-statement-trigger,
* bijvoorbeeld: BEFORE INSERT OR UPDATE OR DELETE ON mld_opdr.
* - SavePrimaryKey(TableName, PrimaryKey) RETURN BOOLEAN:
* Onthou de PrimaryKey-waarde, hou hiet ook rekening met multi-user dmv. de huidige SessionId. Retourneerd
* of het gelukt (TRUE) is of niet (FALSE).
* Deze moet aangeroepen worden in de BEFORE-row-trigger,
* bijvoorbeeld: BEFORE INSERT OR UPDATE ON mld_opdr FOR EACH ROW
* EN : BEFORE DELETE ON mld_opdr FOR EACH ROW
* - GetPrimaryKey(TableName, IndexNr) RETURN NUMBER:
* Geef de nth onthouden PrimaryKey terug, hou hiet ook rekening met multi-user dmv. de huidige SessionId.
* Het IndexNr begint met 1 en loopt door totdat er geen volgende PrimaryKey onthouden is.
* Retourneerd de gevonden PrimaryKey of NULL (als er geen volgende is).
* Deze moet aangeroepen worden in de AFTER-statement-trigger,
* bijvoorbeeld: AFTER INSERT OR UPDATE OR DELETE ON mld_opdr.
*
* LET OP: FAC_P_FAC_SAVE_RESTORE_UPDATE(Func, TableName)
* Voor het gebruik van GetPrimaryKey() is een #define FAC_P_FAC_SAVE_RESTORE_UPDATE(Func, TableName)
* gemaakt in COMSQL.H: Deze doorloopt alle onthouden PrimaryKeys van TableName en roept voor elk record
* de functie Func aan. Func krijgt 1 argument, nl. PrimaryKey en moet een BOOLEAN retourneren.
*
* Voorbeelden van het gebruik staan in MLD_TRI.SRC in de triggers MLD_T_MLD_OPDR_B_IUD, MLD_T_MLD_OPDR_B_IU,
* MLD_T_MLD_OPDR_B_D en MLD_T_MLD_OPDR_A_IUD.
*
* FAC_P_FAC_GEBRUIKER_OPSCHONEN: Procedure om de entries in FAC_GEBRUIKER-tabel op te schonen
* Er kunnen namelijk entries in blijven bestaan van users die al verwijderd zijn.
*
*
* Revivions:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* 15/04/1998 AH GetPrimaryKey() aangepast, SELECT DISTINCT fac_selectie_key ipv SELECT fac_selectie_key
* 08/04/1998 AH #1589, Nieuwe procedure FAC_P_FAC_GEBRUIKER_OPSCHONEN aangemaakt
* 01/04/1998 AH #1540, Nieuwe package FAC_P_FAC_SAVE_RESTORE toegevoegd voor het onthouden en teruggeven
* van primary-keys.
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* 21-05-96 KTH - OR REPLACE toegevoegd aan package en package body
* - file hernoemd van FAC_PACK.SRC naar FAC_PAC.SRC
* 03-05-96 AH Creation.
*/
CREATE OR REPLACE PACKAGE fac_p_fac_volgnr AS
FUNCTION fac_volgnr_currval( soort IN CHAR ) RETURN NUMBER;
FUNCTION fac_volgnr_nextval( soort IN CHAR ) RETURN NUMBER;
PROCEDURE fac_volgnr_reset( soort IN CHAR );
END fac_p_fac_volgnr;
/
CREATE OR REPLACE PACKAGE BODY fac_p_fac_volgnr AS
FUNCTION fac_volgnr_currval( soort IN CHAR ) RETURN NUMBER IS
volgnr NUMBER;
BEGIN
SELECT fac_volgnr
INTO volgnr
FROM fac_volgnrs
WHERE fac_volgnr_srt = soort;
RETURN volgnr;
EXCEPTION
WHEN NO_DATA_FOUND
THEN APPLICATION_ERROR(-20000, 'alg_m152');
RETURN 0;
END fac_volgnr_currval;
FUNCTION fac_volgnr_nextval( soort IN CHAR ) RETURN NUMBER IS
volgnr NUMBER;
BEGIN
fac_volgnr_reset(soort);
SELECT fac_volgnr + 1
INTO volgnr
FROM fac_volgnrs
WHERE fac_volgnr_srt = soort
FOR UPDATE OF fac_volgnr;
UPDATE fac_volgnrs
SET fac_volgnr = volgnr,
fac_volgnr_laatste_datum = SYSDATE
WHERE fac_volgnr_srt = soort;
RETURN volgnr;
EXCEPTION
WHEN NO_DATA_FOUND
THEN APPLICATION_ERROR(-20000, 'alg_m152');
RETURN 0;
END fac_volgnr_nextval;
PROCEDURE fac_volgnr_reset( soort IN CHAR ) IS
periode fac_volgnrs.fac_volgnr_periode%TYPE;
laatste_datum fac_volgnrs.fac_volgnr_laatste_datum%TYPE;
BEGIN
SELECT fac_volgnr_periode, fac_volgnr_laatste_datum
INTO periode, laatste_datum
FROM fac_volgnrs
WHERE fac_volgnr_srt = soort;
IF TO_CHAR(laatste_datum, periode) <> TO_CHAR(SYSDATE, periode)
THEN
UPDATE fac_volgnrs
SET fac_volgnr = 0,
fac_volgnr_laatste_datum = SYSDATE
WHERE fac_volgnr_srt = soort;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN APPLICATION_ERROR(-20000, 'alg_m152');
END fac_volgnr_reset;
END fac_p_fac_volgnr;
/
CREATE OR REPLACE PACKAGE fac_p_fac_save_restore AS
-- Maak de vorige selectie van de tabel en de huidige sessie leeg.
FUNCTION ResetSelectie( TableName IN VARCHAR2 ) RETURN BOOLEAN;
-- Onthou de primary key van de tabel en de huidige sessie.
FUNCTION SavePrimaryKey( TableName IN VARCHAR2, PrimaryKey IN NUMBER ) RETURN BOOLEAN;
-- Geef de nth primary key van de tabel en de huidige sessie. IndexNr begint met 1.
FUNCTION GetPrimaryKey( TableName IN VARCHAR2, IndexNr IN NUMBER ) RETURN NUMBER;
PRAGMA RESTRICT_REFERENCES (GetPrimaryKey,WNDS, WNPS);
END fac_p_fac_save_restore;
/
CREATE OR REPLACE PACKAGE BODY fac_p_fac_save_restore AS
FUNCTION GetSessionId RETURN VARCHAR2 IS
SessionId VARCHAR2(20);
BEGIN
SELECT USERENV('SESSIONID')
INTO SessionId
FROM DUAL;
RETURN SessionId;
END;
FUNCTION ResetSelectie( TableName IN VARCHAR2 ) RETURN BOOLEAN IS
SessionId VARCHAR2(20);
BEGIN
SessionId := GetSessionId;
DELETE FROM fac_selectie
WHERE fac_selectie_node = SessionId
AND fac_selectie_tabel = TableName;
RETURN TRUE;
EXCEPTION
WHEN OTHERS
THEN RETURN FALSE;
END;
FUNCTION SavePrimaryKey( TableName IN VARCHAR2, PrimaryKey IN NUMBER ) RETURN BOOLEAN IS
SessionId VARCHAR2(20);
BEGIN
SessionId := GetSessionId;
INSERT INTO fac_selectie (fac_selectie_node,
fac_selectie_tabel,
fac_selectie_key)
VALUES (SessionId, TableName, PrimaryKey);
RETURN TRUE;
EXCEPTION
WHEN OTHERS
THEN RETURN FALSE;
END;
-- Geef de nth Fac_Selectie_Key van de geselecteerde records
-- terug. IndexNr begint met 1.
FUNCTION GetPrimaryKey( TableName IN VARCHAR2, IndexNr IN NUMBER ) RETURN NUMBER IS
SessionId VARCHAR2(20);
CURSOR Selectie IS SELECT DISTINCT fac_selectie_key
FROM fac_selectie
WHERE fac_selectie_node = SessionId
AND fac_selectie_tabel = TableName
ORDER BY fac_selectie_key;
SelectieRec Selectie%ROWTYPE;
TmpIndex NUMBER;
ReturnKey NUMBER(10);
BEGIN
SessionId := GetSessionId;
ReturnKey := NULL;
TmpIndex := 1;
FOR SelectieRec IN Selectie
LOOP
IF IndexNr = TmpIndex
THEN
ReturnKey := SelectieRec.fac_selectie_key;
EXIT;
END IF;
TmpIndex := TmpIndex + 1;
END LOOP;
RETURN ReturnKey;
END;
END fac_p_fac_save_restore;
/
CREATE OR REPLACE PROCEDURE FAC_P_FAC_GEBRUIKER_OPSCHONEN IS
BEGIN
DELETE FROM fac_gebruiker
WHERE fac_gebruiker_username NOT IN (SELECT username
FROM all_users);
COMMIT;
END;
/
#endif // FAC

57
FAC/FAC_SEQ.SRC Normal file
View File

@@ -0,0 +1,57 @@
#ifdef FAC // 13-03-96 AH
/*
* System sequences for Facilitor
*/
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* 30/01/1998 AH Extra sequences voor FAC_GEBRUIKER, FAC_FUNCTIE en FAC_ROL
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* 29-05-96 EH Sequence voor fac_attribute verplaatst naar ins_seq.
* 21-05-96 EH Sequence voor fac_attribute toegevoegd.
* --- 01.14 ---
* 03-04-96 AH Sequence fac_s_fac_log_key en include fac_log.h toegevoegd
* --- 01.13 ---
* --- 01.12 ---
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 13-10-95 PF Creation
*/
#ifdef FAC_LOG
#include "fac_log.h"
CREATE SEQUENCE fac_s_fac_log_key MINVALUE 1;
#endif // FAC_LOG
CREATE SEQUENCE fac_s_fac_functie_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_gebruiker_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_rol_key MINVALUE 1;
#endif

269
FAC/FAC_TAB.SRC Normal file
View File

@@ -0,0 +1,269 @@
#ifdef FAC // 13-03-96 AH
/*
* System tables for Facilitor
*/
#include "comsql.h"
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* 20/02/1998 AH In FAC_PRIVILEGE kan niet de macro CREATE_TABLE() gebruikt worden.
* 03/02/1998 AH FAC_GEBRUIKER_MODULE mag NULL zijn.
* 03/02/1998 AH FAC_PRIVILEGE en FAC_VOLGNR hebben nu ook privileges
* 30/01/1998 AH FAC_GEBRUIKER aangepast en FAC_FUNCTIE en FAC_ROL toegevoegd
* 13/11/1997 AH #1473, Constraintnamen toegevoegd en FAC_MESSAGE_CODE uitgebreid naar 30.
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* 07-11-96 AH LOG#976: FAC_GEBRUIKER-table toegevoegd
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* 26-07-96 AH In tabel fac_selectie kolom fac_selectie_tabel toegevoegd.
* 01-07-96 AH Tabel fac_selectie toegevoegd voor Multi_select.
* --- 01.18 ---
* --- 01.17 ---
* 26-06-96 KTH Tabel fac_form uitgebreid met kolom 'fac_form_type' en
* privilege veranderd naar BIBLIOTHEEK_PRIVILEGE
* 12-06-96 KTH Tabel fac_form toegevoegd voor Help-informatie per form
* --- 01.16 ---
* --- 01.15 ---
* 29-05-96 EH Tabel fac_attribute verplaatst naar ins_tab.src.
* 21-05-96 EH Tabel fac_attribute t.b.v. attributen toegevoegd.
* 03-05-96 AH FAC_VOLGNRS toegevoegd.
* 01-05-96 AH ..\COMSQL.H aangepast.
* 29-04-96 RW Privileges aangepast, de tabellen fac_entity_name,
* fac_message en fac_module hebben nu BIBLIOTHEEK_PRIVILEGE !!
* --- 01.14 ---
* 03-04-96 AH Table FAC_LOG en include fac_log.h toegevoegd
* --- 01.13 ---
* --- 01.12 ---
* 01-04-96 KTH Gebruik macros CREATE_TABLE()/CREATE_VIEW()
* #include "..\comsql.h" en table fac_privilege toegevoegd
* 15-03-96 AH Commentaar toegevoegd voor fac_rapport.
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 15-02-96 PF fac_entity_name uitgebreid met meervoud en lidwoord
* tbv help-file
* 01-02-96 AH De tabel fac_error toegevoegd voor last dbms_error_code
* in forms te kunnen resetten. Dit wordt gedaan door de trigger
* van fac_error.
* 20-12-95 PF fac_rapport_regel is nu 200 lang ipv 132
* 13-10-95 PF Creation
*/
/* gebruik hier geen CREATE_TABLE() macro */
CREATE TABLE fac_privilege
(
object_name
VARCHAR2(30)
CONSTRAINT fac_k_object_name PRIMARY KEY,
security_level
NUMBER
DEFAULT 2
);
CREATE_TABLE(fac_volgnrs, BASIS_PRIVILEGE)
(
fac_volgnr_srt
VARCHAR2(30)
CONSTRAINT fac_k_fac_volgnr_srt PRIMARY KEY,
fac_volgnr
NUMBER
DEFAULT 0
CONSTRAINT fac_c_fac_volgnr NOT NULL,
fac_volgnr_periode
VARCHAR2(10)
DEFAULT 'YYYY'
CONSTRAINT fac_c_fac_volgnr_periode NOT NULL,
fac_volgnr_laatste_datum
DATE
DEFAULT SYSDATE
CONSTRAINT fac_c_fac_volgnr_laatste_datum NOT NULL
);
/*
* AH/Debug logging voor Triggers
*
* gebruik hier geen CREATE_TABLE() macro
*/
#ifdef FAC_LOG
#include "fac_log.h"
CREATE_TABLE(fac_log, BASIS_PRIVILEGE)
(
fac_log_key
NUMBER(10)
CONSTRAINT fac_k_fac_log_key PRIMARY KEY,
fac_log_datum
VARCHAR2(20)
DEFAULT TO_CHAR(SYSDATE, 'DD-MM-YYYY HH:MI.SS'),
fac_log_message
VARCHAR2(80)
);
#endif // FAC_LOG
/* Translation for application messages like ALG_M_01 */
CREATE_TABLE (fac_message,BIBLIOTHEEK_PRIVILEGE)
(
fac_message_code
VARCHAR2(30)
CONSTRAINT fac_k_fac_message_code PRIMARY KEY,
fac_message_text
VARCHAR2(80)
NOT_NULL(fac_message_text, fac_c_fac_message_text)
);
/* Translation from system entity names like REGIO to user names */
CREATE_TABLE (fac_entity_name,BIBLIOTHEEK_PRIVILEGE)
(
fac_entity_system_name
VARCHAR2(30)
CONSTRAINT fac_k_fac_entity_system_name PRIMARY KEY,
fac_entity_user_name
VARCHAR2(15),
fac_entity_user_name_m
VARCHAR2(20),
fac_entity_user_name_pre
VARCHAR2(5)
);
/* Translation from system entity names like REGIO to user names */
CREATE_TABLE (fac_module,BIBLIOTHEEK_PRIVILEGE)
(
fac_module_name
VARCHAR2(30)
CONSTRAINT fac_k_fac_module_name PRIMARY KEY,
fac_module_version
VARCHAR2(10),
fac_module_date
VARCHAR2(8),
fac_module_remark
VARCHAR2(50)
);
/* Temporary location of print-outs
* FAC_RAPPORT_SOORT: 0 - Header, 1 - Body, 2 - Footer.
*/
CREATE_TABLE (fac_rapport,BASIS_PRIVILEGE)
(
fac_rapport_node
VARCHAR2(12),
fac_rapport_volgnr
NUMBER(10),
fac_rapport_regel
VARCHAR2(200),
fac_rapport_soort
NUMBER(1),
CONSTRAINT fac_u_fac_rapport UNIQUE(fac_rapport_node, fac_rapport_volgnr, fac_rapport_soort)
);
CREATE_TABLE (fac_error,BASIS_PRIVILEGE)
(
fac_error_code
NUMBER
);
/* tabel waarin Help-informatie staat voor de Forms */
CREATE_TABLE (fac_form,BIBLIOTHEEK_PRIVILEGE)
(
fac_form_name
VARCHAR2(16),
fac_form_type
VARCHAR2(1),
fac_form_parameter
VARCHAR2(16),
fac_form_sequence
VARCHAR2(6)
NOT_NULL(fac_form_sequence, fac_k_fac_form_sequence1)
CONSTRAINT fac_k_fac_form_sequence2 PRIMARY KEY,
fac_form_context
VARCHAR2(16)
NOT_NULL(fac_form_context, fac_c_fac_form_context)
CONSTRAINT fac_u_fac_form_context UNIQUE,
fac_form_opmerking
VARCHAR2(50)
);
/* Tabel waarin de keys voor de multi_selectie worden bewaard. */
CREATE_TABLE(fac_selectie, BASIS_PRIVILEGE)
(
fac_selectie_node
VARCHAR2(12),
fac_selectie_tabel
VARCHAR2(30),
fac_selectie_key
NUMBER(10)
);
// Tabel voor de autorisatie van voorgedefinieerde functionaliteit in Forms
CREATE_TABLE(fac_functie, BIBLIOTHEEK_PRIVILEGE)
(
fac_functie_key
NUMBER(10)
CONSTRAINT fac_k_fac_functie_key PRIMARY KEY,
fac_functie_code
VARCHAR2(10)
NOT_NULL(fac_functie_code, fac_c_fac_functie_code),
fac_functie_omschrijving
VARCHAR2(30)
NOT_NULL(fac_functie_omschrijving, fac_c_fac_functie_omschrijving)
);
// Tabel voor autorisatie van gebruikers
CREATE_TABLE(fac_gebruiker, BIBLIOTHEEK_PRIVILEGE)
(
fac_gebruiker_key
NUMBER(10)
CONSTRAINT fac_k_fac_gebruiker_key PRIMARY KEY,
fac_gebruiker_username
VARCHAR2(30)
NOT_NULL(fac_gebruiker_username, fac_c_fac_gebruiker_username),
fac_functie_key
NUMBER(10)
CONSTRAINT fac_r_fac_functie_key REFERENCES fac_functie(fac_functie_key),
fac_gebruiker_module
VARCHAR2(3)
-- NOT_NULL(fac_gebruiker_module, fac_c_fac_gebruiker_module)
,
fac_gebruiker_tabel
VARCHAR2(32),
fac_gebruiker_kolom
VARCHAR2(32),
fac_gebruiker_kolomkey
NUMBER(10),
fac_gebruiker_soort
VARCHAR2(1)
);
// Tabel met de voorgedefinieerde ROLEs in de FCLT-database
// FAC_ROL_ROLE moet altijd UPPER zijn, dit wordt in trigger geregeld.
CREATE_TABLE(fac_rol, BIBLIOTHEEK_PRIVILEGE)
(
fac_rol_key
NUMBER(10)
CONSTRAINT fac_k_fac_rol_key PRIMARY KEY,
fac_rol_role
VARCHAR2(30)
NOT_NULL(fac_rol_role, fac_c_fac_rol_role),
fac_rol_omschrijving
VARCHAR2(30)
NOT_NULL(fac_rol_omschrijving, fac_c_fac_rol_omschrijving)
);
#endif // FAC

118
FAC/FAC_TRI.SRC Normal file
View File

@@ -0,0 +1,118 @@
#ifdef FAC // 13-03-96 AH
/*
* System triggers for Facilitor
*/
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* 25/02/1998 AH Nieuwe triggers toegevoegd in FAC_ENTITY en FAC_MESSAGE, maak van
* de code altijd UPPER()
* 30/01/1998 AH Triggers voor FAC_GEBRUIKER, FAC_FUNCTIE en FAC_ROL aangemaakt
* 13/11/1997 AH #1473, CREATE TRIGGER vervangen door CREATE_TRIGGER()
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* 29-05-96 EH fac_t_fac_attribute_B_IU verplaatst naar ins_tri en hernoemd
* naar ins_t.. etc.
* 22-05-96 EH Trigger voor attributen aangepasat aan nieuwe naam.
* 21-05-96 EH Trigger voor attributen toegevoegd.
* --- 01.14 ---
* 03-04-96 AH Trigger fac_t_fac_log_B_IU en include fac_log.h toegevoegd
* --- 01.13 ---
* --- 01.12 ---
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 01-02-96 AH Trigger voor resetten van last dbms_error_code toegevoegd
* 13-10-95 PF Creation
*/
#include "comsql.h"
#define FAC_ERROR_CODE -20999
#ifdef FAC_LOG
#include "fac_log.h"
CREATE_TRIGGER(fac_t_fac_log_B_IU)
BEFORE INSERT OR UPDATE ON fac_log
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_log_key, fac_s_fac_log_key);
END;
/
#endif //FAC_LOG
CREATE_TRIGGER(fac_t_fac_error_B_IU)
BEFORE INSERT OR UPDATE ON fac_error
FOR EACH ROW
BEGIN
APPLICATION_ERROR(FAC_ERROR_CODE, '');
END;
/
CREATE_TRIGGER(fac_t_fac_functie_B_IU)
BEFORE INSERT OR UPDATE ON fac_functie
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_functie_key, fac_s_fac_functie_key);
END;
/
CREATE_TRIGGER(fac_t_fac_gebruiker_B_IU)
BEFORE INSERT OR UPDATE ON fac_gebruiker
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_gebruiker_key, fac_s_fac_gebruiker_key);
END;
/
CREATE_TRIGGER(fac_t_fac_rol_B_IU)
BEFORE INSERT OR UPDATE ON fac_rol
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_rol_key, fac_s_fac_rol_key);
// FAC_ROL_ROLE moet altijd UPPER zijn.
UPDATE_UPPER(fac_rol_role, fac_rol_role);
END;
/
CREATE_TRIGGER(fac_t_fac_entity_name_B_IU)
BEFORE INSERT OR UPDATE ON fac_entity_name
FOR EACH ROW
BEGIN
UPDATE_UPPER(fac_entity_system_name, fac_entity_system_name);
END;
/
CREATE_TRIGGER(fac_t_fac_message_B_IU)
BEFORE INSERT OR UPDATE ON fac_message
FOR EACH ROW
BEGIN
UPDATE_UPPER(fac_message_code, fac_message_code);
END;
/
#endif // FAC

82
FAC/FAC_VIE.SRC Normal file
View File

@@ -0,0 +1,82 @@
#ifdef FAC // 13-03-96 AH
/*
* System views for Facilitor
*/
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* 28/04/1998 BIV De view FAC_V_FUNCTIE_DISCIPLINE zodanig gewijzigd dat alleen de NIET
* verwijderde vakgroepen zichtbaar zijn.
* --- 01.35 ---
* --- 01.34 ---
* 26/02/1998 AH De view voor USER_USERS is niet meer nodig, gebruik de Oracle-variabele USER
* voor het filteren op de huidige USER.
* 03/02/1998 AH Voor de GRANTS op INS_DISCIPLINE-view moet een extra view FAC_V_USER_USERS
* gebruikt worden. Een INSERT, UPDATE, DELETE-grant op SYS.USER_USERS gaat fout
* omdat dat volgens ORACLE niet mag.
* 30/01/1998 AH View FAC_V_FAC_FUNCTIE_DISCIPLINE aangemaakt dit is een UNION tussen FAC_FUNCTIE en
* INS_DISCIPLINE voor de verschillende te autoriseren functies en disciplines in FAC117.
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* 29-05-96 EH Vieuws fac_v_attr_hulp, fac_v_attr_gegevens en
* fac_v_attr_key_gegevens verplaatst naar ins_vie en hernoemd
* naar ins_... etc.
* 21-05-96 EH Views t.b.v. attributen hier toegevoegd.
* 21-05-96 KTH #include "fac_pack.src" verwijderd: zit nu in fclt.src
* 03-05-96 AH #include "fac_pack.src" toegevoegd.
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 13-10-95 PF Creation
*/
#include "comsql.h"
#if 0
CREATE_VIEW(fac_v_user_users, HIDDEN_PRIVILEGE)
AS
SELECT * FROM user_users;
#endif
CREATE_VIEW(fac_v_functie_discipline, BIBLIOTHEEK_PRIVILEGE)
(fac_functie_discipline_key,
fac_functie_discipline_type,
fac_functie_discipline_code,
fac_functie_discipline_omschr) AS
SELECT fac_functie_key,
'F',
fac_functie_code,
fac_functie_omschrijving
FROM fac_functie
UNION
SELECT ins_discipline_key,
'D',
'INS',
ins_discipline_omschrijving
FROM ins_tab_discipline
WHERE ins_discipline_verwijder is NULL;
#endif // FAC

283
FCLT.SRC Normal file
View File

@@ -0,0 +1,283 @@
/*
* fclt.src
*
* History:
*
* --- 01.40 ---
* --- 01.39 ---
* 23-07-1998 KTH LOG#1938: volgorde van Views/Packages aangepast tbv CAD
* --- 01.38 ---
* --- 01.37 ---
* 22-05-1998 KTH LOG#1821: Module CAD toegevoegd (incl. CAD_PAC.SRC)
* --- 01.36 ---
* --- 01.35 ---
* 13-03-98 KTH Ook COMMIT boven FAC_ROL.SRC gezet tbv *_INI.SRC
* 12-03-98 KTH BIS-files toegevoegd
* --- 01.34 ---
* 27/02/1998 AH MLD_PAC.SRC toegevoegd
* 23/02/1998 AH AKZ-module toegevoegd.
* 02-02-98 KTH - FAC_ROL.SRC (ROLEs) toegevoegd
* - laatste SPOOL OFF gebeurt in FAC_ROL.SRC
* - header aangepast (naam en 1998)
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* 14-07-97 KTH Tekst bovenin toegevoegd welke verschijnt in CREA_<CUST>.SQL
* 11-07-97 AH PRS_PAC.SRC toegevoegd
* 01-07-97 AH SCH_PAC.SRC toegevoegd
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* 08-04-97 AH LEV_PAC.SRC toegevoegd
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* 28-11-96 KTH bco_pac0.src toegevoegd VOOR aanmaken van views
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* 21-10-96 KTH BEB files toegevoegd
* 24-09-96 KTH Files voor modules BEV verwijderd
* --- 01.20 ---
* --- 01.19 ---
* 07-08-96 KTH bco\bco_pac.src toegevoegd
* 30-07-96 KTH Files voor modules BEV toegevoegd
* 16-07-96 KTH ins_pac.src toegevoegd (EH)
* --- 01.18 ---
* --- 01.17 ---
* 24-06-96 KTH Files *\*_uni.src toegevoegd
* 21-06-96 KTH Module HUI toegevoegd
* --- 01.16 ---
* --- 01.15 ---
* 22-05-96 KTH Packages verplaatst naar VOOR de triggers
* 21-05-96 KTH fac_pac.src en bcp_pac.src toegevoegd
* 01-05-96 KTH Modules ATT en LEV toegevoegd
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 05-04-96 KTH SCH toegevoegd
* ? AH Created
*/
#include "modules.h"
-- [CREA*.SQL]
--
-- Script tbv het aanmaken van de Facilitor 2.0-omgeving in Oracle
--
-- Copyright 1996,1997,1998 Dijkoraad IT bv
--
--
SPOOL crea
PROMPT [CREA.LST]
PROMPT
PROMPT Copyright 1996,1997,1998 Dijkoraad IT bv
PROMPT
PROMPT Dit script is de gegenereerde list-file van CREA*.SQL welke
PROMPT is gebruikt om de Facilitor 2.0-omgeving in Oracle aan te
PROMPT maken.
PROMPT
PROMPT Dit script is gerund in user:
SHOW USER
PROMPT
PROMPT
SET ECHO ON
/* TABLES */
#include "FAC\fac_tab.src"
#include "ALG\alg_tab.src"
#include "INS\ins_tab.src"
#include "PRS\prs_tab.src"
#include "MLD\mld_tab.src"
#include "BCO\bco_tab.src"
#include "BCP\bcp_tab.src"
#include "INV\inv_tab.src"
#include "MRA\mra_tab.src"
#include "SLE\sle_tab.src"
#include "SCH\sch_tab.src"
#include "LEV\lev_tab.src"
#include "ATT\att_tab.src"
#include "HUI\hui_tab.src"
#include "BEB\beb_tab.src"
#include "AKZ\akz_tab.src"
#include "BIS\bis_tab.src"
#include "CAD\cad_tab.src"
COMMIT;
/* UNIQUES */
#include "FAC\fac_uni.src"
#include "ALG\alg_uni.src"
#include "INS\ins_uni.src"
#include "PRS\prs_uni.src"
#include "MLD\mld_uni.src"
#include "BCO\bco_uni.src"
#include "BCP\bcp_uni.src"
#include "INV\inv_uni.src"
#include "MRA\mra_uni.src"
#include "SLE\sle_uni.src"
#include "SCH\sch_uni.src"
#include "LEV\lev_uni.src"
#include "ATT\att_uni.src"
#include "HUI\hui_uni.src"
#include "BEB\beb_uni.src"
#include "AKZ\akz_uni.src"
#include "BIS\bis_uni.src"
#include "CAD\cad_uni.src"
COMMIT;
/* PACKAGES 1
*
* 28-11-96/KTH
* Deze packages bevatten code welke in views worden gebruikt
*/
#include "BCO\bco_pac0.src"
#include "MLD\mld_pac.src"
#include "SCH\sch_pac.src"
#include "PRS\prs_pac.src"
/* VIEWS 1 */
#include "FAC\fac_vie.src"
#include "ALG\alg_vie.src"
#include "INS\ins_vie.src"
#include "PRS\prs_vie.src"
#include "MLD\mld_vie.src"
#include "BCO\bco_vie.src"
#include "BCP\bcp_vie.src"
#include "INV\inv_vie.src"
#include "MRA\mra_vie.src"
#include "SLE\sle_vie.src"
#include "SCH\sch_vie.src"
#include "LEV\lev_vie.src"
#include "ATT\att_vie.src"
#include "HUI\hui_vie.src"
#include "BEB\beb_vie.src"
#include "AKZ\akz_vie.src"
#include "BIS\bis_vie.src"
#include "CAD\cad_vie1.src"
COMMIT;
/* PACKAGES 2 */
/* 22-05-96/KTH
* Let op: Packages komen voor triggers want er zijn triggers
* die refereren naar packages. Ze komen na tables etc. want packages
* zullen refereren naar tables en views.
*/
#include "FAC\fac_pac.src"
#include "BCO\bco_pac.src"
#include "BCP\bcp_pac.src"
#include "INS\ins_pac.src"
#include "LEV\lev_pac.src"
#include "CAD\cad_pac.src"
COMMIT;
/* VIEWS 2
*
* Deze views komen na de packages want ze gebruiken stored functions uit packages
*/
#include "CAD\cad_vie2.src"
COMMIT;
/* INDICES */
#include "FAC\fac_ind.src"
#include "ALG\alg_ind.src"
#include "INS\ins_ind.src"
#include "PRS\prs_ind.src"
#include "MLD\mld_ind.src"
#include "BCO\bco_ind.src"
#include "BCP\bcp_ind.src"
#include "INV\inv_ind.src"
#include "MRA\mra_ind.src"
#include "SLE\sle_ind.src"
#include "SCH\sch_ind.src"
#include "LEV\lev_ind.src"
#include "ATT\att_ind.src"
#include "HUI\hui_ind.src"
#include "BEB\beb_ind.src"
#include "AKZ\akz_ind.src"
#include "BIS\bis_ind.src"
#include "CAD\cad_ind.src"
COMMIT;
/* SEQUENCES */
#include "FAC\fac_seq.src"
#include "ALG\alg_seq.src"
#include "INS\ins_seq.src"
#include "PRS\prs_seq.src"
#include "MLD\mld_seq.src"
#include "BCO\bco_seq.src"
#include "BCP\bcp_seq.src"
#include "INV\inv_seq.src"
#include "MRA\mra_seq.src"
#include "SLE\sle_seq.src"
#include "SCH\sch_seq.src"
#include "LEV\lev_seq.src"
#include "ATT\att_seq.src"
#include "HUI\hui_seq.src"
#include "BEB\beb_seq.src"
#include "AKZ\akz_seq.src"
#include "BIS\bis_seq.src"
#include "CAD\cad_seq.src"
COMMIT;
/* TRIGGERS */
#include "FAC\fac_tri.src"
#include "ALG\alg_tri.src"
#include "INS\ins_tri.src"
#include "PRS\prs_tri.src"
#include "MLD\mld_tri.src"
#include "BCO\bco_tri.src"
#include "BCP\bcp_tri.src"
#include "INV\inv_tri.src"
#include "MRA\mra_tri.src"
#include "SLE\sle_tri.src"
#include "SCH\sch_tri.src"
#include "LEV\lev_tri.src"
#include "ATT\att_tri.src"
#include "HUI\hui_tri.src"
#include "BEB\beb_tri.src"
#include "AKZ\akz_tri.src"
#include "BIS\bis_tri.src"
#include "CAD\cad_tri.src"
COMMIT;
/* INITIALISATIES */
#include "FAC\fac_ini.src"
#include "ALG\alg_ini.src"
#include "INS\ins_ini.src"
#include "PRS\prs_ini.src"
#include "MLD\mld_ini.src"
#include "BCO\bco_ini.src"
#include "BCP\bcp_ini.src"
#include "INV\inv_ini.src"
#include "MRA\mra_ini.src"
#include "SLE\sle_ini.src"
#include "SCH\sch_ini.src"
#include "LEV\lev_ini.src"
#include "ATT\att_ini.src"
#include "HUI\hui_ini.src"
#include "BEB\beb_ini.src"
#include "AKZ\akz_ini.src"
#include "BIS\bis_ini.src"
#include "CAD\cad_ini.src"
COMMIT;
/* DIVERSEN */
#include "FAC\fac_rol.src" /* ROLEs en GRANTs (hierin wordt ook geSPOOLed!) */
COMMIT;
SET ECHO OFF
/* SPOOL OFF dit hoeft niet meer hier: gebeurt al in fac_rol.src */

0
INS/.gitignore vendored
View File

264
INS/INSSQL.H Normal file
View File

@@ -0,0 +1,264 @@
#ifndef _INSSQL_H
#define _INSSQL_H
/* Functies aanwezig: */
/* CHECK_SRT_VERHUIZING() */
/* CHECK_REFERENCE_PLAATS() */
/* CHECK_KEY_REFERENCE() */
/* CHECK_ATTRIBUTE() */
/* CHECK_DISCIPLINE_ATT_VULLING() */
/* CHECK_SRTGROEP_ATT_VULLING() */
/* CHECK_SRTDEEL_ATT_VULLING() */
/*
* History
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* 16-04-98 AH INS_CHECK_NOG_REFERENCES aangemaakt: checkt niet de aanwezigviews
* vanwege 'mutating table'-problemen
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* 05-03-97 AH CHECK_ATTRIBUTE() aangepast voor gebruik van package-functie
* INS_P_INS_CHECK_ATTRIBUTE(), anders wordt de trigger te groot.
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* 29-05-96 KTH attsql.h in deze file geintegreerd en fac_v_attribute_gegevens
* veranderd naar ins_v_attribute_gegevens
* --- 01.14 ---
* 21-03-96 AH CHECK_KEY_REFERENCE() toegevoegd, misschien beter in COMSQL.H ??
* 19-03-96 AH CHECK_REFERENCE_PLAATS wordt niet gebruikt.
* 16-02-96 PF SET_VERWIJDER_CHILDREN en DELETE_CHILDREN naar COMSQL.H
*/
#define CHECK_SRT_VERHUIZING(tabel, key_veld, ref_key, kindje_tabel, message) \
DECLARE \
dummy CHAR; \
BEGIN \
IF (:new.key_veld = :old.key_veld) AND (:new.ref_key <> :old.ref_key) \
THEN \
SELECT 'x' INTO dummy \
FROM kindje_tabel \
WHERE kindje_tabel.key_veld = :old.key_veld; \
APPLICATION_ERROR(-20000,message); \
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
NULL; \
WHEN TOO_MANY_ROWS THEN \
APPLICATION_ERROR(-20000,message); \
END
#define CHECK_REFERENCE_PLAATS(key_ruimte_veld, key_terrein_veld, message) \
BEGIN \
IF :new.key_ruimte_veld IS NULL \
AND :new.key_terrein_veld IS NULL \
THEN \
APPLICATION_ERROR(-20000, message); \
END IF; \
END
/* CHECK_KEY_REFERENCE: controleerd of een key in een tabel/view bestaat
*/
#define CHECK_KEY_REFERENCE(table, primary_key, ref_key, message) \
DECLARE \
dummy NUMBER(10); \
BEGIN \
SELECT primary_key \
INTO dummy \
FROM table \
WHERE primary_key = ref_key; \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN APPLICATION_ERROR(-20000, message); \
END
#if 1 // Nieuwe CHECK_ATTRIBUTE()
#define CHECK_ATTRIBUTE(fac_kolom, attribute_key) \
IF (:old.fac_kolom <> :new.fac_kolom) \
OR (:old.fac_kolom IS NOT NULL AND :new.fac_kolom IS NULL) \
OR (:old.fac_kolom IS NULL AND :new.fac_kolom IS NOT NULL) \
THEN \
INS_P_INS_CHECK_ATTRIBUTE(:new.fac_kolom, :new.ins_srtdeel_key, \
attribute_key); \
END IF
#else
#define CHECK_ATTRIBUTE(kolom_naam, attribuut_key) \
DECLARE~ \
tiep VARCHAR2(1); \
format_mask VARCHAR2(100); \
max_lengte NUMBER; \
ware_lengte NUMBER; \
verplicht NUMBER; \
min_waarde NUMBER; \
max_waarde NUMBER; \
dec_waarde NUMBER; \
ware_waarde NUMBER;~ \
BEGIN~ \
SELECT ins_attribute_type, ins_attribute_length, ins_attribute_required, \
ins_attribute_min, ins_attribute_max, ins_attribute_dec \
INTO tiep, max_lengte, verplicht, min_waarde, max_waarde, dec_waarde \
FROM ins_v_attribute_gegevens \
WHERE ins_srtdeel_key = :new.ins_srtdeel_key AND \
ins_attribute_key = attribuut_key;~ \
/* Al dan niet aanwezig */ \
~ \
IF verplicht = 1 AND :new.kolom_naam IS NULL \
THEN \
APPLICATION_ERROR(-20004, to_char(attribuut_key)|| \
to_char(:new.ins_srtdeel_key)||'att_m008');~ \
ELSIF tiep = 'N' \
THEN \
/* Hier moet het number_format gecheckt worden */ \
BEGIN~ \
ware_waarde := to_number(:new.kolom_naam); \
\
IF ware_waarde < min_waarde OR ware_waarde > max_waarde \
THEN \
/* Te klein / te groot */ \
APPLICATION_ERROR(-20004, to_char(attribuut_key)|| \
to_char(:new.ins_srtdeel_key)||'att_m009');~ \
ELSE \
/* Bepaal het format_mask */ \
IF dec_waarde IS NULL OR dec_waarde = 0 \
THEN \
format_mask := RPAD('9', max_lengte, '9');~ \
ELSE \
format_mask := RPAD('9', max_lengte - dec_waarde, '9')|| \
'D'||RPAD('9', dec_waarde, '9');~ \
END IF; \
~ \
:new.kolom_naam := LTRIM(to_char(ware_waarde, format_mask)); \
IF INSTR(:new.kolom_naam, '#') <> 0 \
THEN \
APPLICATION_ERROR(-20004, to_char(attribuut_key)|| \
to_char(:new.ins_srtdeel_key)||'att_m010');~ \
END IF;~ \
END IF;~ \
EXCEPTION \
WHEN others \
THEN \
APPLICATION_ERROR(-20004, to_char(attribuut_key)|| \
to_char(:new.ins_srtdeel_key)||'att_m010');~ \
END;~ \
\
ELSIF tiep = 'C' \
THEN \
ware_lengte := LENGTH(:new.kolom_naam); \
IF ware_lengte > max_lengte \
THEN \
APPLICATION_ERROR(-20004, to_char(attribuut_key)|| \
to_char(:new.ins_srtdeel_key)||'att_m011');~ \
END IF;~ \
END IF; \
EXCEPTION \
WHEN no_data_found THEN NULL; \
END
#endif // CHECK_ATTRIBUTE()
#define CHECK_DISCIPLINE_ATT_VULLING(FacKolom, AttributeKey) \
IF :old.ins_attribute_key = AttributeKey \
THEN \
DECLARE \
dummy CHAR; \
BEGIN \
SELECT 'X' \
INTO dummy \
FROM ins_v_aanwezigdeel INS_D, ins_srtdeel INS_SD, ins_srtgroep INS_SG \
WHERE INS_D.ins_srtdeel_key = INS_SD.ins_srtdeel_key \
AND INS_SD.ins_srtgroep_key = INS_SG.ins_srtgroep_key \
AND INS_SG.ins_discipline_key = :old.ins_srtinst_keys \
AND INS_D.FacKolom IS NOT NULL; \
APPLICATION_ERROR(-20003, 'att_m022'); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20003, 'att_m022'); \
END; \
END IF
#define CHECK_SRTGROEP_ATT_VULLING(FacKolom, AttributeKey) \
IF :old.ins_attribute_key = AttributeKey \
THEN \
DECLARE \
dummy CHAR; \
BEGIN \
SELECT 'X' \
INTO dummy \
FROM ins_v_aanwezigdeel INS_D, ins_srtdeel INS_SD \
WHERE INS_D.ins_srtdeel_key = INS_SD.ins_srtdeel_key \
AND INS_SD.ins_srtgroep_key = :old.ins_srtinst_keys \
AND FacKolom IS NOT NULL; \
APPLICATION_ERROR(-20003, 'att_m022'); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20003, 'att_m022'); \
END; \
END IF
#define CHECK_SRTDEEL_ATT_VULLING(FacKolom, AttributeKey) \
IF :old.ins_attribute_key = AttributeKey \
THEN \
DECLARE \
dummy CHAR; \
BEGIN \
SELECT 'X' \
INTO dummy \
FROM ins_v_aanwezigdeel \
WHERE ins_srtdeel_key = :old.ins_srtinst_keys \
AND FacKolom IS NOT NULL; \
APPLICATION_ERROR(-20003, 'att_m022'); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20003, 'att_m022'); \
END; \
END IF
#define INS_CHECK_NOG_REFERENCES(tabel,tabel_verwijder_veld,reference_view, \
reference_verwijder_veld, key_veld, message) \
DECLARE \
dummy CHAR; \
BEGIN \
IF :new.tabel_verwijder_veld IS NOT NULLDATUM \
THEN \
SELECT 'x' INTO dummy \
FROM reference_view \
WHERE reference_view.key_veld = :old.key_veld \
AND reference_view.reference_verwijder_veld IS NULL; \
APPLICATION_ERROR(-20000,message); \
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
NULL; \
WHEN TOO_MANY_ROWS THEN \
APPLICATION_ERROR(-20000,message); \
END
#endif // _INSSQL_H

79
INS/INS_IND.SRC Normal file
View File

@@ -0,0 +1,79 @@
#ifdef INS // 13-03-96 AH
/* REVISION:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* 26-06-1998 BIV - LOG#1906 Index ins_i_ins_deel3 toegevoegd.
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* 17/02/1998 AH Indices voor INS_DEELKOPPELING toegevoegd.
* 04/02/1998 AH INS_DEEL heeft extra velden INS_DISCIPLINE_KEY en INS_ALG_LOCATIE_KEY
* 28/01/1998 AH INS_DISCIPLINE gewijzigd in INS_TAB_DISCIPLINE voor de autorisatie van
* disciplines. Extra INS_DEEL indices aangemaakt
* 13/01/1998 AH Indexen voor INS_KENMERK-zaken toegevoegd
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 18-01-96 RW complete remake
*/
create index ins_i_ins_srtgroep1 on ins_srtgroep(ins_discipline_key);
create index ins_i_ins_srtdeel1 on ins_srtdeel(ins_srtgroep_key);
create index ins_i_ins_srtdeel2 on ins_srtdeel(ins_srtdeel_omschrijving);
create index ins_i_ins_discipline1 on ins_tab_discipline(ins_discipline_omschrijving);
create index ins_i_ins_srtonderdeel1 on ins_srtonderdeel(ins_srtdeel_key);
create index ins_i_ins_srtelement1 on ins_srtelement(ins_srtonderdeel_key);
create index ins_i_ins_deel1 on ins_deel(ins_srtdeel_key);
create index ins_i_ins_deel2 on ins_deel(ins_alg_ruimte_key, ins_alg_ruimte_type);
create index ins_i_ins_deel3 on ins_deel(ins_deel_module);
create index ins_i_ins_deel4 on ins_deel(ins_discipline_key);
create index ins_i_ins_deel5 on ins_deel(ins_alg_locatie_key);
create index ins_i_ins_srt_onderdeel1 on ins_onderdeel(ins_srtonderdeel_key);
create index ins_i_ins_onderdeel1 on ins_onderdeel(ins_deel_key);
create index ins_i_ins_element1 on ins_element(ins_srtelement_key);
create index ins_i_ins_element2 on ins_element(ins_onderdeel_key);
/* Indices voor INS_KENMERK-zaken */
CREATE INDEX ins_i_ins_refsrtkenmerk1 ON ins_srtkenmerk(ins_refsrtkenmerk_key);
CREATE INDEX ins_i_ins_srtkenmerk1 ON ins_kenmerk(ins_srtkenmerk_key);
CREATE INDEX ins_i_ins_srtinstallatie1 ON ins_kenmerk(ins_srtinstallatie_key);
CREATE INDEX ins_i_ins_kenmerk_deel1 ON ins_kenmerkdeel(ins_deel_key);
CREATE INDEX ins_i_ins_kenmerk_kenmerk1 ON ins_kenmerkdeel(ins_kenmerk_key);
CREATE INDEX ins_i_ins_deelkoppeling1 ON ins_deelkoppeling(ins_deelkoppeling_van_key);
CREATE INDEX ins_i_ins_deelkoppeling2 ON ins_deelkoppeling(ins_deelkoppeling_naar_key);
#endif // INS

116
INS/INS_INI.SRC Normal file
View File

@@ -0,0 +1,116 @@
#ifdef INS // 13-03-96 AH
/*
* INS tables for Facilitor: installation time population
*/
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* 01-07-1998 KTH Als vast andere INS_REFSRTKENMERKen in commentaar voorbereid
* --- 01.37 ---
* 20-05-98 KTH Gebruik macro _FAC_MODULE
* 20-05-1998 KTH LOG#1720: '#ifdef DATA AND NOT AKZ' is syntactisch onjuist
* 18-05-1998 BIV Log #1720 : Voor AKZ de default vulling weggehaald, dit wordt later overgenomen uit GMS 1.
* --- 01.36 ---
* --- 01.35 ---
* 01-04-98 KTH LOG#1583: default waarde PRS_PERSLID_NAAM in INS_REFSRTKENMERK
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* 28-07-97 AH Voor installaties met INB en DATA wordt nu INB_DATA.SQL geinclude.
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* 04-06-96 KTH Module INB (installaties-bibliotheek) geintroduceerd
* --- 01.15 ---
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 03-04-96 KTH #ifdef om 'INSERT INTO fac_module...INR...' gezet
* 01-04-96 KTH 02.03
* 19-03-96 KTH 02.02
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 13-02-96 PF 02.01: Bibliotheekroutine-only entry in FAC_MODULE toegevoegd.
* NB: indien registratie van installaties niet gewenst is,
* moet INR uit de FAC_MODULE verwijderd worden!
* 13-02-96 PF 02.01: UNIQUE triggers vervangen door constraints
* 05-02-96 KTH Spool toegevoegd
* 17-01-96 PF Elektro en werktuigbouw als standaardvulling verwijderd [241]
* 03-01-96 PF Gebruik sysdate
* 06-12-95 PF Initialization of disciplines added
* 13-10-95 PF Creation
*/
_FAC_MODULE('INS','Installaties (tabellen)')
#ifdef INR
_FAC_MODULE('INR','Installaties (registratie)')
#endif // INR
#ifdef INB
_FAC_MODULE('INB','Installaties (bibliotheek)')
#ifdef DATA
#ifndef AKZ
/* 980520/KTH LOG#1720: voor AKZ wordt geen default data toegepast */
#include "ins\inb_data.sql"
#endif // not AKZ
/*
* 01-04-98/KTH LOG#1583
*
* Default waardes voor mogelijke referenties, aan te geven bij Kenmerksoort (INS_SRTKENMERK).
* Let op dat dit allemaal tussen '#ifdef <module>' staat!
*/
#ifdef ALG
/*
* KTH: voorlopig niet gebruikt (omdat AKZ eigen zaken heeft)
INSERT INTO ins_refsrtkenmerk(ins_refsrtkenmerk_omschrijving,ins_refsrtkenmerk_objectnaam,
ins_refsrtkenmerk_kolomnaam,ins_refsrtkenmerk_kolomtxt)
VALUES('Locatie','ALG_V_AANWEZIGLOCATIE','ALG_LOCATIE_KEY','ALG_LOCATIE_OMSCHRIJVING');
INSERT INTO ins_refsrtkenmerk(ins_refsrtkenmerk_omschrijving,ins_refsrtkenmerk_objectnaam,
ins_refsrtkenmerk_kolomnaam,ins_refsrtkenmerk_kolomtxt)
VALUES('Terreinsector','ALG_V_AANWEZIGTERREINSECTOR','ALG_TERREINSECTOR_KEY','ALG_TERREINSECTOR_CODE');
INSERT INTO ins_refsrtkenmerk(ins_refsrtkenmerk_omschrijving,ins_refsrtkenmerk_objectnaam,
ins_refsrtkenmerk_kolomnaam,ins_refsrtkenmerk_kolomtxt)
VALUES('Gebouw','ALG_V_AANWEZIGGEBOUW','ALG_GEBOUW_KEY','ALG_GEBOUW_CODE');
*/
#endif // ALG
#ifdef PRS
INSERT INTO ins_refsrtkenmerk(ins_refsrtkenmerk_omschrijving,ins_refsrtkenmerk_objectnaam,
ins_refsrtkenmerk_kolomnaam,ins_refsrtkenmerk_kolomtxt)
VALUES('Persoon','PRS_V_AANWEZIGPERSLID','PRS_PERSLID_KEY','PRS_PERSLID_NAAM');
/*
* KTH: voorlopig niet gebruikt (omdat AKZ eigen zaken heeft)
INSERT INTO ins_refsrtkenmerk(ins_refsrtkenmerk_omschrijving,ins_refsrtkenmerk_objectnaam,
ins_refsrtkenmerk_kolomnaam,ins_refsrtkenmerk_kolomtxt)
VALUES('Afdeling','PRS_V_AANWEZIGAFDELING','PRS_AFDELING_KEY','PRS_AFDELING_NAAM');
INSERT INTO ins_refsrtkenmerk(ins_refsrtkenmerk_omschrijving,ins_refsrtkenmerk_objectnaam,
ins_refsrtkenmerk_kolomnaam,ins_refsrtkenmerk_kolomtxt)
VALUES('Bedrijf','PRS_V_AANWEZIGBEDRIJF','PRS_BEDRIJF_KEY','PRS_BEDRIJF_NAAM');
*/
#endif // PRS
#endif // DATA
#endif // INB
#endif // INS

276
INS/INS_PAC.SRC Normal file
View File

@@ -0,0 +1,276 @@
#ifdef INS
/* CREATE PROCEDURE kopieer_deel
*
* Deze procedure kopieert een deel (installatiedeel) naar een bepaalde
* positie. Er wordt vanuit gegaan dat deze positie bestaat. Afhankelijk van
* of er al dan niet BCO gedefinieerd is worden de velden bco_deel_prevprint
* en bco_deel_documentatie meegekopieerd.
*
* NB. als er ooit velden worden toegevoegd aan ins_deel t.b.v. INS hoeft al-
* leen deze PROCEDURE aangepast te worden voor wat betreft het kopieren.
*
*/
/*
* History
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* 29-04-1998 KTH AH heeft op 17-04-1998 waarschijnlijk INS_P_DELETE_DEELKOPPELING
* toegevoegd (en niet hier in de History bijgeschreven)
* --- 01.35 ---
* --- 01.34 ---
* 21/01/1998 AH De velden INS_DEEL_FABRIKAAT, INS_DEEL_TYPE, INS_DEEL_SERIENR,
* INS_DEEL_BOUWJAAR, INS_DEEL_CAPACITEIT, INS_DEEL_PRIJS en
* INS_DEEL_LEVENSDUUR verwijderd.
* 21/01/1998 AH INS_P_INS_CHECK_ATTRIBUTE() is ook overbodig.
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* 07-03-97 AH RABO: INS_P_INS_CHECK_ATTRIBUTE() toegevoegd, voor aanroep vanuit
* INS_T_INS_DEEL_B_IU.
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* 28-10-96 AH LOG#913: BCO_DEEL_DOCUMENTATIE wordt als VARCHAR2() gebruikt
* --- 01.20 ---
* 10-09-96 AH Kopieer_deel aangepast. BCO_DOCUMENTATIE wordt anders gebruikt.
* --- 01.19 ---
* 25-07-96 AH #elif // Geen BCO aangepast in #else
* 25-07-96 EH veld 'nieuw_deel_key' als argument toegevoegd aan ins_deel
* 25-07-96 EH Created
* --- 01.18 ---
* --- 01.17 ---
*/
#ifdef BCO
CREATE PROCEDURE kopieer_deel (deel_key NUMBER,
nieuw_deel_key NUMBER,
plaats_key NUMBER,
plaats_type VARCHAR2) AS
documentatie_veld ins_deel.bco_deel_documentatie%TYPE;
BEGIN
/* DEEL_DOCUMENT wordt eerst uit de tabel gehaald, omdat een LONG RAW
* niet via het normale INSERT INTO ... SELECT ... gedaan kan worden.
*/
SELECT bco_deel_documentatie INTO documentatie_veld
FROM ins_deel WHERE ins_deel_key = deel_key;
INSERT INTO ins_deel (ins_deel_key,
ins_deel_module,
ins_srtdeel_key,
ins_alg_ruimte_key,
ins_alg_ruimte_type,
ins_deel_aantal,
ins_deel_omschrijving,
ins_deel_fabrikaat,
ins_deel_type,
ins_deel_serienr,
ins_deel_bouwjaar,
ins_deel_capaciteit,
ins_deel_prijs,
ins_deel_levensduur,
ins_deel_opmerking,
bco_deel_prevprint,
bco_deel_documentatie)
SELECT nieuw_deel_key,
ins_deel_module,
ins_srtdeel_key,
plaats_key,
plaats_type,
ins_deel_aantal,
ins_deel_omschrijving,
ins_deel_fabrikaat,
ins_deel_type,
ins_deel_serienr,
ins_deel_bouwjaar,
ins_deel_capaciteit,
ins_deel_prijs,
ins_deel_levensduur,
ins_deel_opmerking,
bco_deel_prevprint,
documentatie_veld
FROM ins_deel
WHERE ins_deel_key = deel_key;
END;
/
#else // Geen BCO
CREATE PROCEDURE kopieer_deel (deel_key NUMBER,
nieuw_deel_key NUMBER,
plaats_key NUMBER,
plaats_type VARCHAR2) AS
BEGIN
INSERT INTO ins_deel (ins_deel_key,
ins_deel_module,
ins_srtdeel_key,
ins_alg_ruimte_key,
ins_alg_ruimte_type,
ins_deel_aantal,
ins_deel_omschrijving,
ins_deel_opmerking
/* 21/01/1998 AH De volgende velden zijn overbodig
, ins_deel_fabrikaat,
ins_deel_type,
ins_deel_serienr,
ins_deel_bouwjaar,
ins_deel_capaciteit,
ins_deel_prijs,
ins_deel_levensduur
*/
)
SELECT nieuw_deel_key,
ins_deel_module,
ins_srtdeel_key,
plaats_key,
plaats_type,
ins_deel_aantal,
ins_deel_omschrijving,
ins_deel_opmerking
/* 21/01/1998 AH De volgende velden zijn overbodig
, ins_deel_fabrikaat,
ins_deel_type,
ins_deel_serienr,
ins_deel_bouwjaar,
ins_deel_capaciteit,
ins_deel_prijs,
ins_deel_levensduur
*/
FROM ins_deel
WHERE ins_deel_key = deel_key;
END;
/
#endif // al dan niet BCO
CREATE OR REPLACE FUNCTION ins_p_delete_deelkoppeling( DeelKey IN NUMBER ) RETURN BOOLEAN IS
ReturnVal BOOLEAN;
BEGIN
DELETE FROM ins_deelkoppeling
WHERE ins_deelkoppeling_van_key = DeelKey
OR ins_deelkoppeling_naar_key = DeelKey;
ReturnVal := TRUE;
RETURN ReturnVal;
EXCEPTION
WHEN OTHERS
THEN RETURN FALSE;
END;
/
#if 0 // def ATT
CREATE PROCEDURE INS_P_INS_CHECK_ATTRIBUTE(FacKolom IN CHAR,
SrtdeelKey IN NUMBER,
AttributeKey IN NUMBER) AS
AttributeType ins_attribute.ins_attribute_type%TYPE;
FormatMask VARCHAR2(100);
MaxLengte ins_attribute.ins_attribute_length%TYPE;
WareLengte NUMBER(10);
Verplicht ins_attribute.ins_attribute_required%TYPE;
MinWaarde ins_attribute.ins_attribute_min%TYPE;
MaxWaarde ins_attribute.ins_attribute_max%TYPE;
DecWaarde ins_attribute.ins_attribute_dec%TYPE;
WareWaarde NUMBER(10);
CharWaarde VARCHAR2(50);
BEGIN
BEGIN
SELECT ins_attribute_type,
ins_attribute_length,
ins_attribute_required,
ins_attribute_min,
ins_attribute_max,
ins_attribute_dec
INTO AttributeType,
MaxLengte,
Verplicht,
MinWaarde,
MaxWaarde,
DecWaarde
FROM ins_v_attribute_gegevens
WHERE ins_srtdeel_key = SrtdeelKey
AND ins_attribute_key = AttributeKey;
EXCEPTION
/* Blijkbaar is het attribuutniet meer aanwezig */
WHEN NO_DATA_FOUND
THEN RETURN;
END;
/* Kijk of de waarde is ingevuld. */
IF FacKolom IS NULL
THEN
/* Bij Verplicht een error geven, verder hoeft er
* niet gevontroleerd te worden.
*/
IF Verplicht = 1
THEN
APPLICATION_ERROR(-20004, TO_CHAR(AttributeKey)||
TO_CHAR(SrtdeelKey)||'att_m008');
ELSE
RETURN;
END IF;
END IF;
/* Controleer de ingevulde NUMBER-waarde */
IF AttributeType = 'N'
THEN
BEGIN
/* Hier moet het number_format gecheckt worden */
WareWaarde := TO_NUMBER(FacKolom);
/* De waarde is te klein of te groot */
IF WareWaarde < MinWaarde OR WareWaarde > MaxWaarde
THEN
APPLICATION_ERROR(-20004, TO_CHAR(AttributeKey)||
TO_CHAR(SrtdeelKey)||'att_m009');
ELSE
/* Controleer het FormatMask */
IF NVL(DecWaarde, 0) = 0
THEN
FormatMask := RPAD('9', MaxLengte, '9');
ELSE
FormatMask := RPAD('9', MaxLengte - DecWaarde, '9')||
'D'||RPAD('9', DecWaarde, '9');
END IF;
CharWaarde := LTRIM(TO_CHAR(WareWaarde, FormatMask));
IF INSTR(CharWaarde, '#') <> 0
THEN
APPLICATION_ERROR(-20004, TO_CHAR(AttributeKey)||
TO_CHAR(SrtdeelKey)||'att_m010');
END IF;
END IF;
EXCEPTION
WHEN others
THEN
APPLICATION_ERROR(-20004, TO_CHAR(AttributeKey)||
TO_CHAR(SrtdeelKey)||'att_m010');
END;
/* Controleer de ingevulde CHAR-waarde */
ELSIF AttributeType = 'C'
THEN
WareLengte := LENGTH(FacKolom);
IF NVL(WareLengte, 0) > NVL(MaxLengte, 0)
THEN
APPLICATION_ERROR(-20004, TO_CHAR(AttributeKey)||
TO_CHAR(SrtdeelKey)||'att_m011');
END IF;
/* Referenties worden (kunnen) niet gecontroleerd (worden)
ELSIF AttributeType = 'R'
THEN */
END IF;
END;
/
#endif // 0, ATT
#endif // INS

60
INS/INS_SEQ.SRC Normal file
View File

@@ -0,0 +1,60 @@
#ifdef INS // 13-03-96 AH
/* Maakt de sequences voor INS
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* 17/02/1998 AH Sequence voor INS_DEELKOPPELING toegevoegd
* 13/01/1998 AH Sequences voor INS_...KENMERK... toegevoegd
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* 18-03-97 AH INS_S_INS_IMPORT_KEY toegevoegd
* --- 01.25 ---
* --- 01.24 ---
* 02-12-96 AH Beginwaarde INS_S_INS_DISCIPLINE_KEY terug naar 1.
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* 29-05-96 EH Sequence voor ins_attribute hier toegevoegd. (uit fac_seq.src).
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 18-01-96 AH De sequence ins_s_ins_discipline_key begint nu bij 3.
*/
CREATE SEQUENCE ins_s_ins_discipline_key MINVALUE 1;
CREATE SEQUENCE ins_s_ins_srtgroep_key MINVALUE 1;
CREATE SEQUENCE ins_s_ins_srtinst_keys MINVALUE 1;
CREATE SEQUENCE ins_s_ins_inst_keys MINVALUE 1;
CREATE SEQUENCE ins_s_ins_attribute_key MINVALUE 1;
CREATE SEQUENCE ins_s_ins_import_key MINVALUE 1;
/* Sequences voor INS_KENMERK-zaken */
CREATE SEQUENCE ins_s_ins_refsrtkenmerk_key MINVALUE 1;
CREATE SEQUENCE ins_s_ins_srtkenmerk_key MINVALUE 1;
CREATE SEQUENCE ins_s_ins_kenmerk_key MINVALUE 1;
CREATE SEQUENCE ins_s_ins_kenmerkdeel_key MINVALUE 1;
CREATE SEQUENCE ins_s_ins_deelkoppeling_key MINVALUE 1;
#endif // INS

762
INS/INS_TAB.SRC Normal file
View File

@@ -0,0 +1,762 @@
#ifdef INS
/* REVISION
*
* --- 01.40 ---
* 03/09/1998 BIV #1993 ins_deel_parent_key toegevoegd aan ins_deel en
* tabellen ins_element en ins_srtelement zijn overbodig geworden...
* 31/08/1998 PF ins_srtdeel_cadlayer toegevoegd (hoorde al aanwezig te zijn)
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* 08/04/1998 AH AKZ-veld in INS_DISCIPLINE toegevoegd
* --- 01.34 ---
* 17/02/1998 AH INS_DEELKOPPELING-tabel toegevoegd voor VAN-NAAR-koppeling
* 04/02/1998 AH Voor Performance in INS_DEEL extra velden INS_DISICPLINE_KEY en
* INS_ALG_LOCATIE_KEY toegevoegd, deze worden in triggers gevuld.
* 04/02/1998 AH Privilege op INS_TAB_DISCIPLINE gewijzigd in BIBLIOTHEEK-privilege
* 28/01/1998 AH INS_DISCIPLINE gewijzigd in INS_TAB_DISCIPLINE voor de autorisatie van
* disciplines. INS_SRTGROEP aangepast: INS_DISCIPLINE-reference nu naar
* INS_TAB_DISCIPLINE, HIDDEN_PRIVILEGE gegeven.
* 21/01/1998 AH De velden INS_DEEL_FABRIKAAT, INS_DEEL_TYPE, INS_DEEL_SERIENR,
* INS_DEEL_BOUWJAAR, INS_DEEL_CAPACITEIT, INS_DEEL_PRIJS en
* INS_DEEL_LEVENSDUUR verwijderd.
* 12/01/1998 AH INS_KENMERK-zaken toegevoegd en INS_ATTRIBUTE zaken verwijderd.
* FAC-velden uit INS_DEEL verwijderd
* 12/11/1997 AH #1473, Constraintnamen toegevoegd
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* 18-03-97 AH Voor INS_DEEL_IMPORT een INS_IMPORT-tabel aangemaakt
* 07-03-97 AH INS_ATTRIBUTE_VOLGORDE hoeft niet tussen 0 en 9 te blijven
* 05-03-97 AH RABO: INS_SRTDEEL krijgt extra veld ACAD_TAGVALUE. Ook is het veld
* INS_SRTDEEL_ACADSYMBOL nodig. Vanuit INV_TAB naar hier verplaatst.
* ACADSYMBOL hoeft niet uniek te zijn, maar de combinatie TAGVALUE
* en ACADSYMBOL moet wel uniek zijn om vanuit ACAD een INS_SRTDEEL
* te identificeren. Dus ook UNIQUE toegevoegd in INS_UNI.
* --- 01.25 ---
* 06-01-97 AH LOG#1108, 40 chars voor LEV/HUI in INS_SRTDEEL_OMSCHRIJVING
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* 31-10-96 KTH LOG#950: check op aantal van INS_ONDERDEEL en INS_ELEMENT
* veranderd naar '>0' ipv. '>=0'
* 16-10-96 AH INS_DEEL_REALISATIE toegevoegd.
* 15-10-96 AH Nieuwe tijdelijke table TMP_INS_SRTDEEL toegevoegd nav. log 799
* De record-group uit INS213 is een tijdelijke tabel geworden.
* 09-10-96 AH INS_SRTDEEL_PRIJS en INS_SRTDEEL_EENHEID toegevoegd aan
* INS_SRTDEEL
* 09-10-96 AH INS_SRTDEEL_VOLGNR aan INS_SRTDEEL toegevoegd voor BEV-schermen
* --- 01.20 ---
* 18-09-96 KTH ins_attribute krijgt BIBLIOTHEEK_PRIVILEGE
* 10-09-96 AH Unique op INS_SRTGROEP aangepast. INS_DISCIPLINE_KEY en UPPER
* Unique op INS_ONDERDEEL weer toegevoegd, Op INS_DEEL_KEY,
* INS_SRTONDERDEEL_KEY, INS_ONDERDEEL_UPPER, INS_ALG_ONROERENDGOED_KEY
* en INS_ONDERDEEL_VERWIJDER.
* --- 01.19 ---
* 16-08-96 AH INS_DEEL > 0 ipv. >= 0
* 09-08-96 EH In verband met de 'nieuwe INS functionaliteit', plaatsen van
* onderdelen in ruimtes en zo, is besloten de uniciteit van
* onderdelen te verwijderen. ER ZIT DUS GEEN UNIQUE MEER OP
* ins_onderdeel.
* 05-07-96 EH Tabel ins_onderdeel uitgebreid met plaatsveld.
* --- 01.18 ---
* --- 01.17 ---
* 24-06-96 KTH De UNIQUEs op INS_DEEL en INS_SRTDEEL zijn verplaatst naar
* ins\ins_uni.src
* 07-06-96 EH De uniciteitstriggers voor de srtinst zijn aangepast; ze zijn
* nu uniek binnen hun MODULE, d.i., omschrijvingen kunnen zowel
* voor INS als voor INV gebruikt worden.
* --- 01.16 ---
* --- 01.15 ---
* 29-05-96 EH De tabel fac_attribute uit fac_tab.src hier toegevoegd en
* hernoemd naar ins_attribute.
* 21-05-96 EH De flexibele kolommen fac0 .. fac9 t.b.v. attributen zijn hier
* vast toegevoegd aan ins_deel.
* 08-05-96 AH UNIQUE in INS_DEEL aangepast. Nu alleen op DEEL_UPPER. Vervallen.
* 29-04-96 RW Privileges aangepast (van de ins_srt* tabellen)
* --- 01.14 ---
* 15-04-96 AH Default 'INS' voor INS_..._MODULE toegevoegd in tabellen
* INS_DISCPLINE, INS_SRTGROEP, INS_SRTDEEL en INS_DEEL.
* --- 01.13 ---
* --- 01.12 ---
* 01-04-96 KTH Gebruik CREATE_TABLE()
* 21-03-96 AH Contraint INS_C_INS_ALG_RUIMTE_KEY weggehaald.
* 19-03-96 AH Bij INS_DEEL het veld INS_ALG_RUIMTE_TYPE toegevoegd.
* 19-03-96 AH In de INS-tabbellen INS_..._MODULE toegevoegd, voor onderscheid
* INS en INV. Dit is niet nodig voor (Srt)Onderdeel en (Srt)Element.
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 13-02-96 PF UNIQUE toegevoegd aan de soort-tabellen, ter vervanging van de
* triggers
* 12-01-96 PF NULLDATUM
* 04-01-96 EH Constraint ruimte reference hard benoemd.
* 03-01-96 EH WIJZIGING TERUGGEDRAAID !!!!! (ins_deel)
* 02-01-96 EH tabel ins_deel licht gewijzigd.
* 06-12-95 EH alle #bco verwijderd
*/
/*
Maakt de volgende tabellen aan:
ins_discipline
ins_srtgroep
ins_srtdeel
ins_srtonderdeel
ins_srtelement
ins_deel
ins_onderdeel
ins_element
*/
CREATE_TABLE(ins_tab_discipline,BIBLIOTHEEK_PRIVILEGE)
(
ins_discipline_key
NUMBER(10)
CONSTRAINT ins_k_ins_discipline_key PRIMARY KEY,
ins_discipline_module
VARCHAR2(3)
DEFAULT 'INS'
NOT_NULL(ins_discipline_module, ins_c_ins_discipline_module),
ins_discipline_omschrijving
VARCHAR2(30)
NOT_NULL(ins_discipline_omschrijving, ins_c_ins_discipline_omschr),
ins_discipline_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(ins_discipline_aanmaak, ins_c_ins_discipline_aanmaak),
ins_discipline_verwijder
DATE
DEFAULT NULLDATUM,
#ifdef AKZ
akz_kostensoort
VARCHAR2(7),
#endif
CONSTRAINT ins_u_ins_discipline_omschr UNIQUE (ins_discipline_omschrijving,
ins_discipline_verwijder,
ins_discipline_module)
);
CREATE_TABLE(ins_srtgroep,BIBLIOTHEEK_PRIVILEGE)
(
ins_srtgroep_key
NUMBER(10)
CONSTRAINT ins_k_ins_srtgroep_key PRIMARY KEY,
ins_discipline_key
NUMBER(10)
NOT_NULL(ins_discipline_key, ins_r_ins_discipline_key1)
CONSTRAINT ins_r_ins_discipline_key2 REFERENCES ins_tab_discipline,
ins_srtgroep_module
VARCHAR2(3)
DEFAULT 'INS'
NOT_NULL(ins_srtgroep_module, ins_c_ins_srtgroep_module),
ins_srtgroep_omschrijving
VARCHAR2(30)
NOT_NULL(ins_srtgroep_omschrijving, ins_c_ins_srtgroep_omschr),
ins_srtgroep_upper
VARCHAR2(30)
NOT_NULL(ins_srtgroep_upper, ins_c_ins_srtgroep_upper),
ins_srtgroep_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(ins_srtgroep_aanmaak, ins_c_ins_srtgroep_aanmaak),
ins_srtgroep_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT ins_u_ins_srtgroep_upper UNIQUE(ins_discipline_key, ins_srtgroep_upper, ins_srtgroep_verwijder, ins_srtgroep_module)
);
CREATE_TABLE(ins_srtdeel,BIBLIOTHEEK_PRIVILEGE)
(
ins_srtdeel_key
NUMBER(10)
CONSTRAINT ins_k_ins_srtdeel_key PRIMARY KEY,
ins_srtgroep_key
NUMBER(10)
NOT_NULL(ins_srtgroep_key, ins_r_ins_srtgroep_key1)
CONSTRAINT ins_r_ins_srtgroep_key2 REFERENCES ins_srtgroep,
ins_srtdeel_module
VARCHAR2(3)
DEFAULT 'INS'
NOT_NULL(ins_srtdeel_module, ins_c_ins_srtdeel_module),
ins_srtdeel_omschrijving
#if defined(LEV)||defined(HUI)
VARCHAR2(40)
#else
VARCHAR2(30)
#endif // LEV/HUI
NOT_NULL(ins_srtdeel_omschrijving, ins_c_ins_srtdeel_omschrijving),
ins_srtdeel_upper
#if defined(LEV)||defined(HUI)
VARCHAR2(40)
#else
VARCHAR2(30)
#endif // LEV/HUI
NOT_NULL(ins_srtdeel_upper, ins_c_ins_srtdeel_upper),
ins_srtdeel_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(ins_srtdeel_aanmaak, ins_c_ins_srtdeel_aanmaak),
ins_srtdeel_verwijder
DATE
DEFAULT NULLDATUM,
ins_srtdeel_volgnr
NUMBER(3),
ins_srtdeel_prijs
NUMBER(8,2),
ins_srtdeel_eenheid
VARCHAR2(15),
ins_srtdeel_acadsymbol /* ACADSYMBOL vanuit INV_TAB veplaatst */
VARCHAR2(8),
ins_srtdeel_acad_tagvalue /* TAGVALUE vanuit ACAD */
VARCHAR2(30),
ins_srtdeel_cadlayer
VARCHAR2(30)
/* 24-06-96/KTH: module-afhankelijke UNIQUE verplaatst naar ins_uni.src */
/* UNIQUE(ins_srtdeel_upper,ins_srtdeel_verwijder, ins_srtdeel_module) */
);
/* 03-09-1998/BIV log #1993
Tabel ins_srtelement is overbodig geworden...
CREATE_TABLE(ins_srtonderdeel,BIBLIOTHEEK_PRIVILEGE)
(
ins_srtonderdeel_key
NUMBER(10)
CONSTRAINT ins_k_ins_srtonderdeel_key PRIMARY KEY,
ins_srtdeel_key
NUMBER(10)
NOT_NULL(ins_srtdeel_key, ins_r_ins_srtdeel_key1)
CONSTRAINT ins_r_ins_srtdeel_key2 REFERENCES ins_srtdeel,
ins_srtonderdeel_omschrijving
VARCHAR2(30)
NOT_NULL(ins_srtonderdeel_omschrijving, ins_c_ins_srtonderdeel_omschr),
ins_srtonderdeel_upper
VARCHAR2(30)
NOT_NULL(ins_srtonderdeel_upper, ins_c_ins_srtonderdeel_upper),
ins_srtonderdeel_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(ins_srtonderdeel_aanmaak, ins_c_ins_srtonderdeel_aanmaak),
ins_srtonderdeel_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT ins_u_ins_srtonderdeel_upper UNIQUE(ins_srtdeel_key, ins_srtonderdeel_upper, ins_srtonderdeel_verwijder)
);
*/
/* 03-09-1998/BIV log #1993
Tabel ins_srtelement is overbodig geworden...
CREATE_TABLE(ins_srtelement,BIBLIOTHEEK_PRIVILEGE)
(
ins_srtelement_key
NUMBER(10)
CONSTRAINT ins_k_ins_srtelement_key PRIMARY KEY,
ins_srtonderdeel_key
NUMBER(10)
NOT_NULL(ins_srtonderdeel_key, ins_r_ins_srtonderdeel_key1)
CONSTRAINT ins_r_ins_srtonderdeel_key2 REFERENCES ins_srtonderdeel,
ins_srtelement_omschrijving
VARCHAR2(30)
NOT_NULL(ins_srtelement_omschrijving, ins_c_ins_srtelement_omschr),
ins_srtelement_upper
VARCHAR2(30)
NOT_NULL(ins_srtelement_upper, ins_c_ins_srtelement_upper),
ins_srtelement_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(ins_srtelement_aanmaak, ins_c_ins_srtelement_aanmaak),
ins_srtelement_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT ins_u_ins_srtelement_upper UNIQUE(ins_srtonderdeel_key, ins_srtelement_upper, ins_srtelement_verwijder)
);
*/
CREATE_TABLE(ins_deel,NORMAAL_PRIVILEGE)
(
ins_deel_key
NUMBER(10)
CONSTRAINT ins_k_ins_deel_key PRIMARY KEY,
ins_deel_module
VARCHAR2(3)
DEFAULT 'INS'
NOT_NULL(ins_deel_module, ins_c_ins_deel_module),
ins_srtdeel_key
NUMBER(10)
NOT_NULL(ins_srtdeel_key, ins_r_deel_srtdeel_key1)
CONSTRAINT ins_r_deel_srtdeel_key2 REFERENCES ins_srtdeel,
ins_alg_ruimte_key
NUMBER(10),
ins_alg_ruimte_type
VARCHAR2(1),
/*
* INS_ALG_RUIMTE_TYPE heeft de volgende waarden:
* 'R' : als INS_ALG_RUIMTE_KEY een ruimte aanduidt.
* 'T' : als INS_ALG_RUIMTE_KEY een terreinsector aanduidt.
* 'W' : als INS_ALG_RUIMTE_KEY een werkplek aanduidt.
* Dit wordt in de B_IU-trigger gecontroleerd.
*/
ins_deel_aantal
NUMBER(6)
DEFAULT 1
NOT_NULL(ins_deel_aantal, ins_c_ins_deel_aantal1)
CONSTRAINT ins_c_ins_deel_aantal2 CHECK(ins_deel_aantal > 0),
ins_deel_omschrijving
VARCHAR2(30)
NOT_NULL(ins_deel_omschrijving, ins_c_ins_deel_omschrijving),
ins_deel_opmerking
VARCHAR2(320),
ins_deel_upper
VARCHAR2(30),
ins_deel_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(ins_deel_aanmaak, ins_c_ins_deel_aanmaak),
ins_deel_verwijder
DATE
DEFAULT NULLDATUM,
ins_discipline_key
NUMBER(10)
NOT_NULL(ins_discipline_key, ins_r_ins_deel_discipline1)
CONSTRAINT ins_r_ins_deel_discipline2 REFERENCES ins_tab_discipline(ins_discipline_key),
ins_alg_locatie_key
NUMBER(10)
NOT_NULL(ins_alg_locatie_key, ins_r_ins_deel_locatie1)
CONSTRAINT ins_r_ins_deel_locatie2 REFERENCES alg_locatie(alg_locatie_key),
/* 03/09/1988/BIV - # 1993 */
ins_deel_parent_key
NUMBER(10)
CONSTRAINT ins_r_ins_deel_key REFERENCES ins_deel(ins_deel_key)
/* 21/01/1998 AH De volgende velden zijn overbodig.
,ins_deel_fabrikaat
VARCHAR2(30),
ins_deel_type
VARCHAR2(30),
ins_deel_serienr
VARCHAR2(20),
ins_deel_bouwjaar
NUMBER(4)
CONSTRAINT ins_c_ins_deel_bouwjaar CHECK(ins_deel_bouwjaar >=0),
ins_deel_capaciteit
VARCHAR2(20),
ins_deel_prijs
NUMBER(11,2)
CONSTRAINT ins_c_ins_deel_prijs CHECK(ins_deel_prijs >=0),
ins_deel_levensduur
NUMBER(4)
CONSTRAINT ins_c_ins_deel_levensduur CHECK(ins_deel_levensduur >=0),
ins_deel_realisatie
VARCHAR2(6),
*/
/* 21/01/1998 AH De volgende velden zijn overbodig.
Ingevoegd voor eventuele attributen
fac0
VARCHAR2(50),
fac1
VARCHAR2(50),
fac2
VARCHAR2(50),
fac3
VARCHAR2(50),
fac4
VARCHAR2(50),
fac5
VARCHAR2(50),
fac6
VARCHAR2(50),
fac7
VARCHAR2(50),
fac8
VARCHAR2(50),
fac9
VARCHAR2(50) */
/* 24-06-96/KTH: module-afhankelijke UNIQUE verplaatst naar ins_uni.src */
/* UNIQUE(ins_alg_ruimte_key, ins_srtdeel_key, ins_deel_upper, ins_deel_verwijder) */
);
/* 03-09-1998/BIV log #1993
Tabel ins_onderdeel is overbodig geworden...
CREATE_TABLE(ins_onderdeel,NORMAAL_PRIVILEGE)
(
ins_onderdeel_key
NUMBER(10)
CONSTRAINT ins_k_ins_onderdeel_key PRIMARY KEY,
ins_srtonderdeel_key
NUMBER(10)
NOT_NULL(ins_srtonderdeel_key, ins_r_ond_srtonderdeel_key1)
CONSTRAINT ins_r_ond_srtonderdeel_key2 REFERENCES ins_srtonderdeel,
ins_deel_key
NUMBER(10)
NOT_NULL(ins_deel_key, ins_r_ins_deel_key1)
CONSTRAINT ins_r_ins_deel_key2 REFERENCES ins_deel,
ins_alg_onroerendgoed_key
NUMBER(10),
ins_onderdeel_aantal
NUMBER(6)
DEFAULT 1
NOT_NULL(ins_onderdeel_aantal, ins_c_ins_onderdeel_aantal1)
CONSTRAINT ins_c_ins_onderdeel_aantal2 CHECK(ins_onderdeel_aantal > 0),
ins_onderdeel_omschrijving
VARCHAR2(30)
NOT_NULL(ins_onderdeel_omschrijving, ins_c_ins_onderdeel_omschr),
ins_onderdeel_fabrikaat
VARCHAR2(30),
ins_onderdeel_type
VARCHAR2(30),
ins_onderdeel_serienr
VARCHAR2(20),
ins_onderdeel_bouwjaar
NUMBER(4)
CONSTRAINT ins_c_ins_onderdeel_bouwjaar CHECK(ins_onderdeel_bouwjaar >=0),
ins_onderdeel_capaciteit
VARCHAR2(20),
ins_onderdeel_prijs
NUMBER(11,2)
CONSTRAINT ins_c_ins_onderdeel_prijs CHECK(ins_onderdeel_prijs >=0),
ins_onderdeel_levensduur
NUMBER(4)
CONSTRAINT ins_c_ins_onderdeel_levensduur CHECK(ins_onderdeel_levensduur >=0),
ins_onderdeel_opmerking
VARCHAR2(320),
ins_onderdeel_upper
VARCHAR2(30),
ins_onderdeel_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(ins_onderdeel_aanmaak, ins_c_ins_onderdeel_aanmaak),
ins_onderdeel_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT ins_u_ins_onderdeel_upper UNIQUE(ins_deel_key, ins_srtonderdeel_key, ins_onderdeel_upper, ins_alg_onroerendgoed_key, ins_onderdeel_verwijder)
);
*/
/* 03-09-1998/BIV log #1993
Tabel ins_element is overbodig geworden...
CREATE_TABLE(ins_element,NORMAAL_PRIVILEGE)
(
ins_element_key
NUMBER(10)
CONSTRAINT ins_k_ins_element_key PRIMARY KEY,
ins_srtelement_key
NUMBER(10)
NOT_NULL(ins_srtelement_key, ins_r_elem_srtelement_key1)
CONSTRAINT ins_r_elem_srtelement_key2 REFERENCES ins_srtelement,
ins_onderdeel_key
NUMBER(10)
NOT_NULL(ins_onderdeel_key, ins_r_ins_onderdeel_key1)
CONSTRAINT ins_r_ins_onderdeel_key2 REFERENCES ins_onderdeel,
ins_element_aantal
NUMBER(6)
DEFAULT 1
NOT_NULL(ins_element_aantal, ins_c_ins_element_aantal1)
CONSTRAINT ins_c_ins_element_aantal2 CHECK(ins_element_aantal > 0),
ins_element_omschrijving
VARCHAR2(30)
NOT_NULL(ins_element_omschrijving, ins_c_ins_element_omschrijving),
ins_element_fabrikaat
VARCHAR2(30),
ins_element_type
VARCHAR2(30),
ins_element_serienr
VARCHAR2(20),
ins_element_bouwjaar
NUMBER(4)
CONSTRAINT ins_c_ins_element_bouwjaar CHECK(ins_element_bouwjaar >=0),
ins_element_capaciteit
VARCHAR2(20),
ins_element_prijs
NUMBER(11,2)
CONSTRAINT ins_c_ins_element_prijs CHECK(ins_element_prijs >=0),
ins_element_levensduur
NUMBER(4)
CONSTRAINT ins_c_ins_element_levensduur CHECK(ins_element_levensduur >=0),
ins_element_opmerking
VARCHAR2(320),
ins_element_upper
VARCHAR2(30),
ins_element_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(ins_element_aanmaak, ins_c_ins_element_aanmaak),
ins_element_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT ins_u_ins_element_upper UNIQUE(ins_srtelement_key, ins_onderdeel_key,
ins_element_upper, ins_element_verwijder)
);
*/
#if 0 // 14/01/1998 AH Hier wordt nu INS_KENMERK-tabellen voor gebruikt
/* Systeemtabel voor attributen */
CREATE_TABLE(ins_attribute, BIBLIOTHEEK_PRIVILEGE)
(
ins_attribute_main_key
NUMBER(10)
CONSTRAINT ins_k_ins_attribute_main_key PRIMARY KEY,
ins_srtinst_keys
NUMBER(10),
ins_srtinst_type
VARCHAR2(1)
CONSTRAINT ins_c_ins_srtinst_type CHECK(ins_srtinst_type = 'D' OR
ins_srtinst_type = 'G' OR
ins_srtinst_type = 'S'),
ins_attribute_volgorde
NUMBER(2),
ins_attribute_key
NUMBER(1)
CONSTRAINT ins_c_ins_attribute_key CHECK(ins_attribute_key >= 0 AND
ins_attribute_key <= 9),
ins_attribute_label
VARCHAR(15)
NOT_NULL(ins_attribute_label, ins_c_ins_attribute_label),
ins_attribute_type
VARCHAR(1)
CONSTRAINT ins_c_ins_attribute_type CHECK(ins_attribute_type = 'N' OR
ins_attribute_type = 'C' OR
ins_attribute_type = 'R'),
ins_attribute_length
NUMBER(2)
NOT_NULL(ins_attribute_length, ins_c_ins_attribute_length),
ins_attribute_required
NUMBER(1)
CONSTRAINT ins_c_ins_attribute_required CHECK(ins_attribute_required = 0 OR
ins_attribute_required = 1),
ins_attribute_min
NUMBER(10),
ins_attribute_max
NUMBER(10),
ins_attribute_dec
NUMBER(2),
ins_attribute_table
VARCHAR2(30),
ins_attribute_column
VARCHAR2(30),
ins_attribute_column_txt
VARCHAR2(30),
ins_attribute_unit
VARCHAR2(10),
ins_attribute_toonbaar
NUMBER(1)
CONSTRAINT ins_c_ins_attribute_toonbaar CHECK(ins_attribute_toonbaar = 0 OR
ins_attribute_toonbaar = 1)
);
#endif // 0
/* Tijdelijke table voor INS213, omdat daar geen ruimte meer is voor een
* record-group. Deze tabel bevat de soortdelen voor de kolommen van de
* TPL-printout in INS213.
* Velden:
* - INS_SRTDEEL_KEY: de ins_srtdeel_key uit INS_SRTDEEL.
* - INS_SRTDEEL_OMSCHRIJVING: de omschrijving van het soortdeel uit INS_SRTDEEL.
* - INS_SRTDEEL_PRIJS: de prijs v/h soortdeel uit INS_SRTDEEL.
* - INS_SRTDEEL_EENHEID: de eenheid v/h soortdeel uit INS_SRTDEEL.
* - TOTAAL_AANTAL: Het totale aantal voor de gehele rapportage van alle bladen.
* - TOTAAL_KOSTEN: De totale kosten voor de gehele rapportage van alle bladen.
* - RECORD_KOSTEN: Het totale aantal voor een enkel district of locatie in
* de rapportage.
* - RECORD_KOSTEN: De totale kosten voor een enkel district of locatie in
* de rapportage.
*/
CREATE_TABLE(tmp_ins_srtdeel, BASIS_PRIVILEGE)
(
ins_srtdeel_key
NUMBER(10),
ins_srtdeel_omschrijving
VARCHAR2(80),
ins_srtdeel_prijs
NUMBER(8,2),
ins_srtdeel_eenheid
VARCHAR2(15),
ins_srtdeel_volgnr
NUMBER(3),
totaal_aantal
NUMBER(5),
totaal_kosten
NUMBER(20,2),
record_aantal
NUMBER(5),
record_kosten
NUMBER(20,2)
);
CREATE_TABLE(ins_import, BASIS_PRIVILEGE)
(
ins_import_key
NUMBER(10)
CONSTRAINT ins_k_ins_import_key PRIMARY KEY,
alg_ruimte_acadkey
VARCHAR2(10),
ins_srtdeel_acadsymbol
VARCHAR2(8),
ins_srtdeel_acad_tagvalue
VARCHAR2(30)
);
/* Tabellen voor INS_KENMERK-zaken */
CREATE_TABLE(ins_refsrtkenmerk, BIBLIOTHEEK_PRIVILEGE)
(
ins_refsrtkenmerk_key
NUMBER(10)
CONSTRAINT ins_k_ins_refsrtkenmerk_key PRIMARY KEY,
ins_refsrtkenmerk_omschrijving
VARCHAR2(50)
NOT_NULL(ins_refsrtkenmerk_omschrijving, ins_c_ins_refsrtkenmerk_omschr),
ins_refsrtkenmerk_upper
VARCHAR2(50)
NOT_NULL(ins_refsrtkenmerk_upper, ins_c_ins_refsrtkenmerk_upper)
CONSTRAINT ins_u_ins_refsrtkenmerk_upper UNIQUE,
ins_refsrtkenmerk_objectnaam
VARCHAR2(30)
NOT_NULL(ins_refsrtkenmerk_objectnaam, ins_c_ins_refsrtkenm_objnaam),
ins_refsrtkenmerk_kolomnaam
VARCHAR2(30)
NOT_NULL(ins_refsrtkenmerk_kolomnaam, ins_c_ins_refsrtkenm_kolnaam),
ins_refsrtkenmerk_kolomtxt
VARCHAR2(30)
NOT_NULL(ins_refsrtkenmerk_kolomtxt, ins_c_ins_refsrtkenm_kolomtxt)
);
CREATE_TABLE(ins_srtkenmerk, BIBLIOTHEEK_PRIVILEGE)
(
ins_srtkenmerk_key
NUMBER(10)
CONSTRAINT ins_k_ins_srtkenmerk_key PRIMARY KEY,
ins_srtkenmerk_omschrijving
VARCHAR2(50)
NOT_NULL(ins_srtkenmerk_omschrijving, ins_c_ins_srtkenmerk_omschr),
ins_srtkenmerk_upper
VARCHAR2(50)
NOT_NULL(ins_srtkenmerk_upper, ins_c_ins_srtkenmerk_upper)
CONSTRAINT ins_u_ins_srtkenmerk_upper UNIQUE,
ins_srtkenmerk_dimensie
VARCHAR2(10),
ins_srtkenmerk_kenmerktype
VARCHAR2(1)
CONSTRAINT ins_c_ins_srtkenmerk_kenmtype CHECK(ins_srtkenmerk_kenmerktype = 'C'
OR ins_srtkenmerk_kenmerktype = 'N'
OR ins_srtkenmerk_kenmerktype = 'D'
OR ins_srtkenmerk_kenmerktype = 'R'
OR ins_srtkenmerk_kenmerktype = 'X'),
ins_srtkenmerk_systeem
NUMBER(1)
CONSTRAINT ins_c_ins_srtkenmerk_systeem CHECK(ins_srtkenmerk_systeem IS NULL
OR ins_srtkenmerk_systeem = 1),
ins_srtkenmerk_lengte
NUMBER(2)
CONSTRAINT ins_c_ins_srtkenmerk_lengte CHECK(ins_srtkenmerk_lengte >= 1
AND ins_srtkenmerk_lengte <= 50),
ins_srtkenmerk_dec
NUMBER(2),
ins_srtkenmerk_nmin
NUMBER(10),
ins_srtkenmerk_nmax
NUMBER(10),
ins_refsrtkenmerk_key
NUMBER(10)
CONSTRAINT ins_r_ins_refsrtkenmerk_key1 REFERENCES ins_refsrtkenmerk(ins_refsrtkenmerk_key),
CONSTRAINT ins_c_ins_srtkenmerk_max_min CHECK(ins_srtkenmerk_nmax >= ins_srtkenmerk_nmin),
CONSTRAINT ins_r_ins_refsrtkenmerk_key2 CHECK(ins_srtkenmerk_kenmerktype <> 'R'
OR ins_refsrtkenmerk_key IS NOT NULL),
CONSTRAINT ins_c_ins_srtkenmerk_dec CHECK(ins_srtkenmerk_dec >= 0
AND ins_srtkenmerk_dec <= ins_srtkenmerk_lengte)
);
CREATE_TABLE(ins_kenmerk, BIBLIOTHEEK_PRIVILEGE)
(
ins_kenmerk_key
NUMBER(10)
CONSTRAINT ins_k_in_kenmerk_key PRIMARY KEY,
ins_srtkenmerk_key
NUMBER(10)
NOT_NULL(ins_srtkenmerk_key, ins_r_ins_srtkenmerk_key1)
CONSTRAINT ins_r_ins_srtkenmerk_key2 REFERENCES ins_srtkenmerk(ins_srtkenmerk_key),
ins_srtinstallatie_key
NUMBER(10),
ins_kenmerk_niveau
VARCHAR2(1)
NOT_NULL(ins_kenmerk_niveau, ins_c_ins_kenmerk_niveau1)
CONSTRAINT ins_c_ins_kenmerk_niveau2 CHECK(ins_kenmerk_niveau = 'D'
OR ins_kenmerk_niveau = 'G'
OR ins_kenmerk_niveau = 'S'),
ins_kenmerk_verplicht
NUMBER(1)
CONSTRAINT ins_c_ins_kenmerk_verplicht CHECK(ins_kenmerk_verplicht IS NULL
OR ins_kenmerk_verplicht = 1),
ins_kenmerk_toonbaar
NUMBER(1)
CONSTRAINT ins_c_ins_kenmerk_toonbaar CHECK(ins_kenmerk_toonbaar IS NULL
OR ins_kenmerk_toonbaar = 1),
ins_kenmerk_volgnummer
NUMBER(3),
CONSTRAINT ins_r_ins_srtinstallatie_key1 CHECK(ins_srtinstallatie_key IS NOT NULL
OR ins_kenmerk_niveau = 'D'),
CONSTRAINT ins_u_ins_kenmerk UNIQUE(ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau)
);
/* De waarde mag in de tabel NULL zijn, maar om de database niet
* overbodig te vullen worden de NULL-records after-statement weer verwijderd.
*/
CREATE_TABLE(ins_kenmerkdeel, BIBLIOTHEEK_PRIVILEGE)
(
ins_kenmerkdeel_key
NUMBER(10)
CONSTRAINT ins_k_ins_kenmerkdeel_key PRIMARY KEY,
ins_deel_key
NUMBER(10)
NOT_NULL(ins_deel_key, ins_r_ins_kenmerk_deel_key1),
ins_kenmerk_key
NUMBER(10)
NOT_NULL(ins_kenmerk_key, ins_r_ins_kenmerk_key1)
CONSTRAINT ins_r_ins_kenmerk_key2 REFERENCES ins_kenmerk(ins_kenmerk_key),
ins_kenmerkdeel_waarde
VARCHAR2(255),
CONSTRAINT ins_u_ins_kenmerkdeel UNIQUE(ins_kenmerk_key, ins_deel_key)
);
/* De velden aanmaak en verwijder zijn hier toegevoegd om het mechanisme van
* CASCADE verwijderen in triggers op te kunnen lossen. In de after-statement-trigger
* van INS_DEELKOPPELING worden de logisch-verwijderde deelkoppelingen echt verwijderd.
*/
CREATE_TABLE(ins_deelkoppeling, NORMAAL_PRIVILEGE)
(
ins_deelkoppeling_key
NUMBER(10)
CONSTRAINT ins_k_ins_deelkoppeling_key PRIMARY KEY,
ins_deelkoppeling_van_key
NUMBER(10)
NOT_NULL(ins_deelkoppeling_van_key, ins_r_deelkoppeling_van_key1)
CONSTRAINT ins_r_deelkoppeling_van_key2 REFERENCES ins_deel(ins_deel_key),
ins_deelkoppeling_naar_key
NUMBER(10)
NOT_NULL(ins_deelkoppeling_naar_key, ins_r_deelkoppeling_naar_key1)
CONSTRAINT ins_r_deelkoppeling_naar_key2 REFERENCES ins_deel(ins_deel_key),
ins_deelkoppeling_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(ins_deelkoppeling_aanmaak, ins_c_deelkoppeling_aanmaak),
ins_deelkoppeling_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT ins_c_deelkoppeling_van_naar CHECK(ins_deelkoppeling_van_key <> ins_deelkoppeling_naar_key),
CONSTRAINT ins_u_deelkoppeling_van_naar UNIQUE(ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key)
);
#endif // INS

1044
INS/INS_TRI.SRC Normal file

File diff suppressed because it is too large Load Diff

1457
INS/INS_VIE.SRC Normal file

File diff suppressed because it is too large Load Diff

0
MLD/.gitignore vendored
View File

70
MLD/MLD_IND.SRC Normal file
View File

@@ -0,0 +1,70 @@
#ifdef MLD // 13-03-96 AH
/*
* Revisie:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* 29-07-96 AH MLD_BEDRIJF -> PRS_BEDRIJF: MLD_BESTELOPDR.mld_bedrijf_key
* wordt mld_prs_bedrijf_key
* --- 01.18 ---
* --- 01.17 ---
* 24-06-96 KTH mld_i_mld_bestelregel2 verwijderd (gaf een 'ORA-01408:
* such column list already indexed')
* 13-06-96 EH Indices toegevoegd aan mld_opdr (mld_alg_kostenpost_key)
* en mld_bestelregel (mld_opdr_key).
* --- 01.16 ---
* --- 01.15 ---
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 24-01-96 AH BCO_BESTELOPDR en BCO_BESTELREGEL verplaatst naar MLD_...
* 18-01-96 RW Complete remake
*/
create index mld_i_mld_melding1 on mld_melding(mld_melding_module);
create index mld_i_mld_melding2 on mld_melding(mld_ins_srtinst_keys);
create index mld_i_mld_melding3 on mld_melding(mld_meldbron_key);
create index mld_i_mld_melding4 on mld_melding(mld_oorzaak_key);
create index mld_i_mld_melding5 on mld_melding(mld_alg_onroerendgoed_keys);
create index mld_i_mld_opdr1 on mld_opdr(mld_opdr_module);
create index mld_i_mld_opdr2 on mld_opdr(mld_melding_key);
create index mld_i_mld_opdr3 on mld_opdr(mld_uitvoerende_keys);
create index mld_i_mld_opdr4 on mld_opdr(mld_typeopdr_key);
create index mld_i_mld_opdr5 on mld_opdr(mld_statusopdr_key);
create index mld_i_mld_opdr6 on mld_opdr(mld_standaardopdr_key);
create index mld_i_mld_opdr7 on mld_opdr(mld_alg_kostenpost_key);
create index mld_i_mld_typeopdr1 on mld_typeopdr(mld_typeopdr_module);
create index mld_i_mld_statusopdr1 on mld_statusopdr(mld_statusopdr_module);
create index mld_i_mld_statusopdr2 on mld_statusopdr(mld_statusopdr_omschrijving);
create index mld_i_mld_bestelopdr1 on mld_bestelopdr(mld_prs_bedrijf_key);
create index mld_i_mld_bestelopdr2 on mld_bestelopdr(mld_alg_locatie_key);
create index mld_i_mld_bestelregel1 on mld_bestelregel(mld_bestelopdr_key);
/* create index mld_i_mld_bestelregel2 on mld_bestelregel(mld_opdr_key); */
#endif // MLD

159
MLD/MLD_INI.SRC Normal file
View File

@@ -0,0 +1,159 @@
#ifdef MLD // 13-03-96 AH
/*
* MLD tables for Facilitor: installation time population
*/
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* 20-05-98 KTH Gebruik macro _FAC_MODULE
* --- 01.36 ---
* --- 01.35 ---
* 16/04/1998 AH Meldbron default 'Onbekend' toegevoegd omdat voor AKZ het veld Meldbron
* niet wordt getoond en het veld WEL verplicht is (deze 'Onbekend' wordt
* dan gebruikt).
* 30/03/1998 AH #1541 In Status wordt bij AKZ 'TV-verklaard' ipv. 'Afgemeld' getoond.
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* 19-09-96 AH BCP-statussen voor planning zijn naar MLD_INI verhuisd
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 12-03-96 AH MLD_TYPEOPDR_MODULE 'MRA' opgesplitst in 'MRA' en 'MIL'
* 15-02-96 PF Vooronderzoek gewijzigd in Vooronderzoek/Calamiteit(#340)
* 05-02-96 KTH Spool toegevoegd
* 03-01-96 PF Gebruik sysdate
* 21-12-95 AH In mld_typeopdr zijn de MLD_TYPEDOPDR_OMSCHRIJVING
* verandert in ' ', bij MRA_TYPEOPDR en MLD_TYPEOPDR.
* 20-12-95 PF Twee typefouten verwerkt
* 18-12-95 AH Statusopdr_upper verandert van INGEVOERD, UITGEGEVEN,
* AFGEMELD, VERWERKT naar BCO_INGEVOERD, BCO_UITGEGEVEN
* enz en MLD_UITGEGEVEN enz.
* Ook is fac_entity_name verandert voor deze wijzigingen.
* 15-12-95 AH type's en stati toegevoegd.
* 13-10-95 PF Creation
*/
/* Installation of modules should fill or update this one */
_FAC_MODULE('MLD','Meldingen (standaard)')
INSERT INTO mld_typeopdr (mld_typeopdr_key, mld_typeopdr_omschrijving,
mld_typeopdr_upper, mld_typeopdr_module)
VALUES (1, 'Correctief onderhoud', 'CORRECTIEF', 'BCO');
INSERT INTO mld_typeopdr (mld_typeopdr_key, mld_typeopdr_omschrijving,
mld_typeopdr_upper, mld_typeopdr_module)
VALUES (2, 'Storing', 'STORING', 'BCO');
INSERT INTO mld_typeopdr (mld_typeopdr_key, mld_typeopdr_omschrijving,
mld_typeopdr_upper, mld_typeopdr_module)
VALUES (3, 'Onderzoek', 'ONDERZOEK', 'MIL');
INSERT INTO mld_typeopdr (mld_typeopdr_key, mld_typeopdr_omschrijving,
mld_typeopdr_upper, mld_typeopdr_module)
VALUES (4, 'Sanering', 'SANERING', 'MIL');
INSERT INTO mld_typeopdr (mld_typeopdr_key, mld_typeopdr_omschrijving,
mld_typeopdr_upper, mld_typeopdr_module)
VALUES (5, ' ', 'MLD_TYPEOPDR', 'MLD');
INSERT INTO mld_typeopdr (mld_typeopdr_key, mld_typeopdr_omschrijving,
mld_typeopdr_upper, mld_typeopdr_module)
VALUES (6, 'Vooronderzoek/Calamiteit', 'VOORONDERZOEK', 'MIL');
INSERT INTO mld_typeopdr (mld_typeopdr_key, mld_typeopdr_omschrijving,
mld_typeopdr_upper, mld_typeopdr_module)
VALUES (7, ' ', 'MRA_TYPEOPDR', 'MRA');
/* LET OP de PRIMARY_KEY-waarde van de statussen, de waarde moet voor de
* Correctieve en Preventieve planning de goede volgorde van de statussen
* hebben, bv. volgorde van BCO-statussen zijn Ingevoerd, Uitgegeven, Afgemeld
* en Verwerkt, dus ook de key-waardes moeten in oplopende volgorde definieerd
* zijn. De waardes hoeven niet opeenvolgend te zijn.
*
*/
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (1, 'Ingevoerd', 'BCO_INGEVOERD', 'BCO');
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (2, 'Uitgegeven', 'BCO_UITGEGEVEN', 'BCO');
#ifdef AKZ
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (3, 'TV-verklaard', 'BCO_AFGEMELD', 'BCO');
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (4, 'AV-verklaard', 'BCO_VERWERKT', 'BCO');
#else
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (3, 'Afgemeld', 'BCO_AFGEMELD', 'BCO');
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (4, 'Verwerkt', 'BCO_VERWERKT', 'BCO');
#endif // AKZ
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (5, 'Uitgegeven', 'MLD_UITGEGEVEN', 'MLD');
#ifdef AKZ
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (6, 'TV-verklaard', 'MLD_AFGEMELD', 'MLD');
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (7, 'AV-verklaard', 'MLD_VERWERKT', 'MLD');
#else
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (6, 'Afgemeld', 'MLD_AFGEMELD', 'MLD');
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (7, 'Verwerkt', 'MLD_VERWERKT', 'MLD');
#endif // AKZ
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (8, 'Ingepland', 'BCP_INGEPLAND', 'BCP');
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (9, 'Uitgegeven', 'BCP_UITGEGEVEN', 'BCP');
#ifdef AKZ
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (10, 'TV-verklaard', 'BCP_AFGEMELD', 'BCP');
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (11, 'AV-verklaard', 'BCP_VERWERKT', 'BCP');
#else
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (10, 'Afgemeld', 'BCP_AFGEMELD', 'BCP');
INSERT INTO mld_statusopdr (mld_statusopdr_key, mld_statusopdr_omschrijving,
mld_statusopdr_upper, mld_statusopdr_module)
VALUES (11, 'Verwerkt', 'BCP_VERWERKT', 'BCP');
#endif // AKZ
/* Default hebben we een meldbron Onbekend omdat voor AKZ het veld Meldbron
* niet zichtbaar is en toch NOT NULL is
*/
INSERT INTO mld_meldbron (mld_meldbron_omschrijving) VALUES('Onbekend');
#endif // MLD

316
MLD/MLD_PAC.SRC Normal file
View File

@@ -0,0 +1,316 @@
#ifdef MLD
/*
* Revision:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* 03-05-1998 KTH LOG#1670: in MLD_P_UPDATE_MELDING_STATUS stond aantal keer geen
* 'WHERE MLD_O.mld_melding_key = MeldingKey'
* 02-05-1998 KTH - LOG#1625: geen status Geexporteerd meer voor Meldingen
* - aantal keer '--' vervangen door C-commentaar
* --- 01.35 ---
* 14/04/1998 AH Nieuwe functie MLD_P_BepaalBedrijfOpdrVolgnr() toegevoegd
* 31/03/1998 AH #1540, nieuwe functie MLD_P_UPDATE_MELDING_STATUS toegevoegd.
* --- 01.34 ---
* 27/02/1998 AH Creation.
*/
#define INIT_BEGINWERKTIJD '08:00'
#define INIT_EINDWERKTIJD '17:00'
CREATE OR REPLACE PACKAGE mld_p_mld_datumtijd AS
PROCEDURE SetWerkTijden( BeginTijd IN DATE, EindTijd IN DATE );
FUNCTION DatumTijdPlusUitvoerTijd
( BeginDatum IN DATE,
UitvoerTijd IN NUMBER,
UitvoerTijdType IN VARCHAR) RETURN DATE;
/* gebruik 'PRAGMA RESTRICT_REFERENCES...' ivm vermijden
* 'ORA-06571: Function DatumTijdPlusUitvoerTijd does not guarantee
* not to update database' tgv functieaanroep in SLEECT statement van
* mld_v_mld_openmelding
* 'WNDS' writes no database state, zegt dat de functions niet de databse zal updaten.
* 'WNPS' writes no package state, zegt dat de functions niet de package zal updaten.
* 'RNDS' reads no database state, zegt dat de functions niet de databse zal lezen.
* 'RNPS' reads no package state, zegt dat de functions niet de package zal lezen.
*/
PRAGMA RESTRICT_REFERENCES (SetWerkTijden,WNDS, RNDS);
PRAGMA RESTRICT_REFERENCES (DatumTijdPlusUitvoerTijd, WNDS, WNPS);
END mld_p_mld_datumtijd;
/
CREATE OR REPLACE PACKAGE BODY mld_p_mld_datumtijd AS
BeginWerkTijd DATE;
BeginWerkUur NUMBER(4,2);
EindWerkTijd DATE;
EindWerkUur NUMBER(4,2);
AantalWerkUren NUMBER(4,2);
PROCEDURE InitWerkTijden IS
BEGIN
IF BeginWerkTijd IS NULL
THEN
BeginWerkTijd := TO_DATE(INIT_BEGINWERKTIJD, 'HH24:MI');
END IF;
BeginWerkUur := TO_NUMBER(TO_CHAR(BeginWerkTijd, 'HH24.MI'));
IF EindWerkTijd IS NULL
THEN
EindWerkTijd := TO_DATE(INIT_EINDWERKTIJD, 'HH24:MI');
END IF;
EindWerkUur := TO_NUMBER(TO_CHAR(EindWerkTijd, 'HH24.MI'));
AantalWerkUren := EindWerkUur - BeginWerkUur;
END;
PROCEDURE SetWerkTijden( BeginTijd IN DATE, EindTijd IN DATE ) IS
BEGIN
BeginWerkTijd := NVL(BeginTijd,TO_DATE(INIT_BEGINWERKTIJD, 'HH24:MI'));
EindWerkTijd := NVL(EindTijd,TO_DATE(INIT_EINDWERKTIJD, 'HH24:MI'));
InitWerkTijden;
END;
/* Bepaal een nieuwe datum van de begindatum waarbij de uitvoertijd is
* opgeteld. De uitvoertijd (UitvoerTijdType) kan in 'UREN' of in 'DAGEN' zijn.
* Er wordt rekening gehouden met Werkuren, BeginWerkTijd en EindWerkTijd en
* Weekenddagen (Zondag = 1, Zaterdag = 7) en Vrije dagen (MLD_VRIJE_DAGEN).
*/
FUNCTION DatumTijdPlusUitvoerTijd
( BeginDatum IN DATE,
UitvoerTijd IN NUMBER,
UitvoerTijdType IN VARCHAR) RETURN DATE IS
OldDatumGereed DATE;
NewDatumGereed DATE;
DagVdWeek NUMBER(3,0);
VrijeDagen NUMBER(3,0);
AantalWerkweken NUMBER(3,0);
AantaLDagenOver NUMBER(3,0);
BeginUur NUMBER(4,2);
EindUur NUMBER(4,2);
AantalDagen NUMBER;
NewUitvoerTijd NUMBER(4,2);
ReturnVal DATE;
BEGIN
IF UitvoerTijd IS NOT NULL
AND BeginDatum IS NOT NULL
AND UitvoerTijdType = 'DAGEN'
THEN
// log('>> Update DatumGereed <'||TO_CHAR(BeginDatum)||'>, UitvoerTijd <'||TO_CHAR(UitvoerTijd)||'>, Type <'||UitvoerTijdType||'>');
OldDatumGereed := BeginDatum;
NewDatumGereed := OldDatumGereed;
AantalWerkweken := TRUNC(UitvoerTijd / 5);
AantalDagenOver := UitvoerTijd MOD 5;
// log('AantalWerkweken <'||TO_CHAR(AantalWerkweken)||'>, AantalDagenOver <'||TO_CHAR(AantalDagenOver)||'>');
NewDatumGereed := NewDatumGereed + (AantalWerkweken * 7);
SELECT TO_NUMBER(TO_CHAR(NewDatumGereed, 'D'))
INTO DagVdWeek
FROM DUAL;
NewDatumGereed := NewDatumGereed + AantalDagenOver;
IF DagVdWeek + AantalDagenOver > 8
THEN
NewDatumGereed := NewDatumGereed + 2;
END IF;
// log('Nieuwe DatumGereed voor LOOP <'||TO_CHAR(NewDatumGereed, 'DD-MM-YYYY')||'>');
// Bekijk hier of er tussenliggende weekenddagen en/of vrije dagen zijn.
LOOP
SELECT TO_NUMBER(TO_CHAR(NewDatumGereed, 'D'))
INTO DagVdWeek
FROM DUAL;
IF DagVdWeek = 1 OR DagVdWeek = 7
THEN
NewDatumGereed := NewDatumGereed + 2;
// log('Nieuwe DatumGereed in Weekend <'||TO_CHAR(NewDatumGereed, 'DD-MM-YYYY')||'>');
END IF;
// Selecteer het aantal vrije dagen
SELECT COUNT(*)
INTO VrijeDagen
FROM mld_vrije_dagen
WHERE mld_vrije_dagen_datum > OldDatumGereed
AND mld_vrije_dagen_datum <= NewDatumGereed;
IF VrijeDagen > 0
THEN
// log('Aantal vrije dagen tussen <'||TO_CHAR(OldDatumGereed)||'> en <'||TO_CHAR(NewDatumGereed)||'>: <'||TO_CHAR(VrijeDagen)||'>');
OldDatumGereed := NewDatumGereed;
NewDatumGereed := NewDatumGereed + VrijeDagen;
// log('Nieuwe DatumGereed in VrijeDagen <'||TO_CHAR(NewDatumGereed, 'DD-MM-YYYY')||'>');
END IF;
IF DagVdWeek > 1 AND DagVdWeek < 7
AND VrijeDagen = 0
THEN
EXIT;
END IF;
END LOOP;
// log('Nieuwe DatumGereed na LOOP <'||TO_CHAR(NewDatumGereed, 'DD-MM-YYYY')||'>');
ReturnVal := NewDatumGereed;
ELSIF UitvoerTijd IS NOT NULL
AND BeginDatum IS NOT NULL
AND UitvoerTijdType = 'UREN'
THEN
// InitWerkTijden;
// log('>> Update DatumGereed <'||TO_CHAR(BeginDatum, 'DD-MM-YYYY HH24:MI')||'>, UitvoerTijd <'||TO_CHAR(UitvoerTijd)||'>, Type <'||UitvoerTijdType||'>');
BeginUur := TO_NUMBER(TO_CHAR(BeginDatum, 'HH24.MI'));
EindUur := BeginUur + UitvoerTijd;
AantalDagen := 0;
// log('BeginWerkUur <'||TO_CHAR(BeginWerkUur)||'>, EindWerkUur <'||TO_CHAR(EindWerkUur)||'>');
// log('BeginUur <'||TO_CHAR(BeginUur)||'>, EindUur <'||TO_CHAR(EindUur)||'>');
IF EindUur > EindWerkUur
THEN
NewUitvoerTijd := UitvoerTijd - (EindWerkUur - BeginUur);
AantalDagen := 1;
EindUur := BeginWerkUur + (NewUitvoerTijd MOD AantalWerkUren);
AantalDagen := AantalDagen + TRUNC(NewUitvoerTijd / AantalWerkUren);
// log('Nieuwe uitvoertijd <'||TO_CHAR(NewUitvoerTijd)||'>, Nieuwe EindUur <'||TO_CHAR(EindUur)||'>, Aantaldagen <'||TO_CHAR(AantalDagen)||'>');
// log('Al besteed aan uren in deze dag <'||TO_CHAR(EindWerkUur - BeginUur)||'>, Aantal uren voor volgende dag <'||TO_CHAR(NewUitvoerTijd MOD AantalWerkUren)||'>');
END IF;
IF AantalDagen > 0
THEN
OldDatumGereed := TO_DATE(TO_CHAR(TRUNC(BeginDatum), 'DD-MM-YYYY')||' '||TO_CHAR(EindUur, '09.99'), 'DD-MM-YYYY HH24.MI');
ReturnVal := DatumTijdPlusUitvoerTijd(OldDatumGereed, AantalDagen, 'DAGEN');
// log('Nieuwe DatumGereed na Aantaldagen <'||TO_CHAR(ReturnVal, 'DD-MM-YYYY HH24:MI')||'>');
ELSE
ReturnVal := TO_DATE(TO_CHAR(TRUNC(BeginDatum), 'DD-MM-YYYY')||' '||TO_CHAR(EindUur, '09.99'), 'DD-MM-YYYY HH24.MI');
// log('Nieuwe DatumGereed zonder Aantaldagen <'||TO_CHAR(ReturnVal, 'DD-MM-YYYY HH24:MI')||'>');
END IF;
ELSE
ReturnVal := NULL;
END IF;
RETURN ReturnVal;
END;
END mld_p_mld_datumtijd;
/
/* Wijzig de status van de melding:
* 'GEACCEPTEERD': - Als er geen opdrachten bij de melding horen.
* - Als er een opdracht is die de status 'Ingevoerd' of 'Uitgegeven' heeft.
* 'AFGEMELD': - Als er opdrachten zijn die minimaal de status 'Afgemeld' hebben.
* 'VERWERKT': - Als er alleen opdrachten zijn die de status 'Verwerkt' hebben.
*
* Revisie:
* 980502/KTH LOG#1625: geen status Geexporteerd meer voor Meldingen; overal waar deze
* voorkwam in de procedure is die verwijderd
*/
CREATE OR REPLACE FUNCTION mld_p_update_melding_status( MeldingKey IN NUMBER ) RETURN BOOLEAN IS
Opdrachten NUMBER;
ReturnVal BOOLEAN;
BEGIN
SELECT COUNT(*)
INTO Opdrachten
FROM mld_opdr
WHERE mld_melding_key = MeldingKey;
/* Geen bijbehorende opdrachten */
IF NVL(Opdrachten, 0) = 0
THEN
UPDATE mld_melding
SET mld_melding_geaccepteerd = SYSDATE,
mld_melding_afgemeld = NULL,
mld_melding_verwerkt = NULL
WHERE mld_melding_key = MeldingKey;
ReturnVal := TRUE;
ELSE
SELECT COUNT(*)
INTO Opdrachten
FROM mld_opdr MLD_O, mld_statusopdr MLD_SO
WHERE MLD_O.mld_melding_key = MeldingKey /* 980503/KTH LOG#1670 */
AND MLD_O.mld_statusopdr_key = MLD_SO.mld_statusopdr_key
AND (MLD_SO.mld_statusopdr_upper LIKE '%INGEVOERD%'
OR MLD_SO.mld_statusopdr_upper LIKE '%UITGEGEVEN%');
/* Bijbehorende opdrachten met status 'Ingevoerd' of 'Uitgegeven' */
IF NVL(Opdrachten , 0) > 0
THEN
UPDATE mld_melding
SET mld_melding_geaccepteerd = SYSDATE,
mld_melding_afgemeld = NULL,
mld_melding_verwerkt = NULL
WHERE mld_melding_key = MeldingKey;
ReturnVal := TRUE;
ELSE
SELECT COUNT(*)
INTO Opdrachten
FROM mld_opdr MLD_O, mld_statusopdr MLD_SO
WHERE MLD_O.mld_melding_key = MeldingKey /* 980503/KTH LOG#1670 */
AND MLD_O.mld_statusopdr_key = MLD_SO.mld_statusopdr_key
AND MLD_SO.mld_statusopdr_upper LIKE '%AFGEMELD%';
/* Bijbehorende opdrachten met status 'Afgemeld' */
IF NVL(Opdrachten , 0) > 0
THEN
UPDATE mld_melding
SET mld_melding_afgemeld = SYSDATE,
mld_melding_verwerkt = NULL
WHERE mld_melding_key = MeldingKey;
ReturnVal := TRUE;
ELSE
SELECT COUNT(*)
INTO Opdrachten
FROM mld_opdr MLD_O, mld_statusopdr MLD_SO
WHERE MLD_O.mld_melding_key = MeldingKey /* 980503/KTH LOG#1670 */
AND MLD_O.mld_statusopdr_key = MLD_SO.mld_statusopdr_key
AND MLD_SO.mld_statusopdr_upper LIKE '%VERWERKT%';
/* Bijbehorende opdrachten met status 'Verwerkt' */
IF NVL(Opdrachten , 0) > 0
THEN
UPDATE mld_melding
SET mld_melding_verwerkt = SYSDATE
WHERE mld_melding_key = MeldingKey;
ReturnVal := TRUE;
ELSE
ReturnVal := FALSE;
END IF;
END IF;
END IF;
END IF;
RETURN ReturnVal;
EXCEPTION
WHEN OTHERS
THEN RETURN FALSE;
END;
/
/* MLD_P_BepaalBedrijfOpdrVolgnr: Bepaal het volgnummer van de nieuwe opdracht voor het aangegeven bedrijf.
* Dit is het aantal opdrachten die het bedrijf dat jaar heeft gehad + 1.
*/
CREATE OR REPLACE FUNCTION MLD_P_BepaalBedrijfOpdrVolgnr(BedrijfKey IN NUMBER) RETURN NUMBER IS
ReturnVal NUMBER;
HuidigeJaar VARCHAR2(4);
UitvoerendeType VARCHAR2(1);
BEGIN
BEGIN
SELECT Type
INTO UItvoerendeType
FROM mld_v_uitvoerende
WHERE key = BedrijfKey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN UitvoerendeType := NULL;
END;
IF UitvoerendeType = 'B'
THEN
HuidigeJaar := LTRIM(TO_CHAR(SYSDATE, 'YYYY'));
BEGIN
SELECT COUNT(mld_opdr_key) + 1
INTO ReturnVal
FROM mld_opdr
WHERE mld_opdr_datumbegin >= TO_DATE('01-01-'||HuidigeJaar, 'DD-MM-YYYY')
AND mld_opdr_datumbegin <= TO_DATE('31-12-'||HuidigeJaar, 'DD-MM-YYYY');
EXCEPTION
WHEN NO_DATA_FOUND
THEN ReturnVal := 1;
END;
ELSE
ReturnVal := NULL;
END IF;
RETURN ReturnVal;
END;
/
#endif // MLD

62
MLD/MLD_SEQ.SRC Normal file
View File

@@ -0,0 +1,62 @@
#ifdef MLD // 13-03-96 AH
/* Maakt de sequences voor MLD
*
* Revisie:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* 09/04/1998 AH Melding en Opdracht-sequence met NOCACHE-optie.
* --- 01.34 ---
* 25/02/1998 AH Nieuwe tabel MLD_STDMELDING toegevoegd.
* 23/02/1998 AH Nieuwe sequence MLD_S_MLD_VRIJE_DAGEN toegevoegd.
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* 22-11-96 AH LOG#1073: MLD_S_MLD_ADRES_KEY toegevoegd
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* 29-07-96 AH MLD_BEDRIJF -> PRS_BEDRIJF.
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* 22-05-96 AH MLD_BEDRIJF gekopieerd naar PRS... en MLD_KOSTENPOST
* naar ALG_KOSTENPOST verplaatst.
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 08-03-96 KTH MINVALUE van mld_s_mld_opdr_key veranderd van 500 naar 1
* 08-03-96 AH Sequence voor mld_kostenpost aangemaakt.
* 26-02-96 AH Sequence van mld_opdr moet uit de pas met mld_melding.
* 24-01-96 AH BCO_BESTELOPDR en BCO_BESTELREGEL verplaatst naar MLD_...
*/
CREATE SEQUENCE mld_s_mld_oorzaak_key MINVALUE 1;
CREATE SEQUENCE mld_s_mld_meldbron_key MINVALUE 1;
CREATE SEQUENCE mld_s_mld_standaardopdr_key MINVALUE 1;
CREATE SEQUENCE mld_s_mld_melding_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE mld_s_mld_opdr_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE mld_s_mld_bestelopdr_key MINVALUE 1;
CREATE SEQUENCE mld_s_mld_bestelregel_key MINVALUE 1;
CREATE SEQUENCE mld_s_mld_adres_key MINVALUE 1;
CREATE SEQUENCE mld_s_mld_vrije_dagen_key MINVALUE 1;
CREATE SEQUENCE mld_s_mld_stdmelding_key MINVALUE 1;
#endif // MLD

519
MLD/MLD_TAB.SRC Normal file
View File

@@ -0,0 +1,519 @@
#ifdef MLD // 13-03-96 AH
/* CREA_TAB.SRC
Maakt de volgende tabellen aan:
mld_oorzaak
mld_meldbron
mld_standaardopdr
mld_bedrijf GEKOPIEERD naar PRS_BEDRIJF, MLD_BEDRIJF vervalt
mld_kostenpost VERPLAATST naar ALG_KOSTENPOST
mld_typeopdr
mld_statusopdr
mld_melding
mld_opdr
mld_bestelopdr
mld_bestelregel
*/
/* REVISION HISTORY
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* 02-05-1998 KTH LOG#1625: MLD_MELDING.MLD_MELDING_GEEXPORTEERD vervalt
* 28/04/1998 BIV MLD_OPDR_UURLOON toegevoegd in MLD_OPDR.
* --- 01.35 ---
* 14/04/1998 AH MLD_STDMELDING_UITVOERTIJD toegevoegd in MLD_STDMELDING.
* MLD_OPDR_BEDRIJFOPDR_VOLGNR toegevoegd in MLD_OPDR
* 09/04/1998 AH AKZ-veld in MLD_MELDING toegevoegd
* --- 01.34 ---
* 03/03/1998 AH In MLD_MELDING extra velden AFGEMELD, VERWERKT en GEPRINT toegevoegd.
* In MLD_OPDR extra velden CONTACTPERSOON en GEPRINT toegevoegd.
* 25/02/1998 AH Nieuwe tabel MLD_STDMELDING toegevoegd.
* 24/02/1998 AH Nieuwe velden in MLD_MELDING toegevoegd.
* 23/02/1998 AH Tabel MLD_VRIJE_DAGEN toegevoegd.
* 12/11/1997 AH #1473, Constraintnamen toegevoegd. Tevens uitgecommentarieerde MLD_BEDRIJF
* weggehaald.
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* 24-07-97 AH #1422, MLD_MELDING krijgt redundant veld MLD_ALG_LOCATIE_KEY
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* 12-12-96 AH LOG#1104: Voor PMK moet mld_opdr_omschrijving 1024 chars bevatten
* --- 01.24 ---
* 04-12-96 AH MLD_ADRES: Controle op ingevulde adres-soorten
* 02-12-96 AH BCO#042: MLD_BESTELREGEL_OMSCHRIJVING toegevoegd en
* CHECK() toegevoegd
* 22-11-96 AH LOG#1073: MLD_ADRES-table toegevoegd en MLD_BESTELOPDR-adressen
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* 16-08-96 AH MLD_BESTELOPDR: Fondsnr toegevoegd.
* 15-08-96 AH MLD_BESTELREGEL aangepast: MLD_OPDR_key nu BCP_MLD_OPDR_KEY
* in de trigger wordt de controle uitgevoerd, UNIQUE blijft
* gehandhaafd.
* 13-08-96 AH MLD_MELDING_MELDER_NAAM toegevoegd aan MLD_MELDING.
* 29-07-96 AH MLD_BEDRIJF -> PRS_BEDRIJF: MLD_BEDRIJF vervalt
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* 22-05-96 AH ALG_KOSTENPOST heeft gevolgen voor MLD_OPDR.
* 22-05-96 AH MLD_BEDRIJF gekopieerd naar PRS... en MLD_KOSTENPOST
* naar ALG_KOSTENPOST verplaatst.
* 01-05-96 AH Privilege aangepast.
* 26-04-96 AH Velden leverancier_nr en overeenkomst_datum en .._nr aan
* MLD_BEDRIJF toegevoegd.
* 26-04-96 AH Velden datum en jaar aan MLD_KOSTENPOST toegevoegd.
* 22-04-96 AH CHECK_UNIQUE_OMSCHRIJVING in triggers weggehaald, hier UNIQUE's
* toegevoegd.
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 01-04-96 KTH Gebruik CREATE_TABLE()
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 11-03-96 AH In MLD_MELDING het veld MLD_MELDBRON_NR toegevoegd [#208].
* 08-03-96 AH MLD_KOSTENPOST en in MLD_OPDR het veld
* MLD_KOSTENPOST_KEY aangemaakt.
* 26-02-96 AH In MLD_OPDR ON DELETE CASCADE toegevoegd op mld_melding_key
* 22-02-96 AH MLD_OPDR aangepast mld_opdr_kosten omhooggeschroefd.
* 05-02-96 AH MLD_BESTELREGEL aangepast, ON DELETE CASCADE.
* 01-02-96 AH MLD_BEDRIJF_ADRES is verkleint tot 35 karakters.
* 31-01-96 AH Bij opdracht wordt uren en materiaal default opt 0.00 gezet.
* 24-01-96 AH BCO_BESTELOPDR en BCO_BESTELREGEL verplaatst naar MLD_...
* 17-01-96 AH In MLD_MELDING het veld INS_SRTINST_KEYS op NULL gezet.
* 12-01-96 PF NULLDATUM!
* 14-12-95 PF Telefoon en faxnummers van 10 naar 20 lang
* 05-12-95 AH Kolom MLD_STANDAARD_AFKORTING veranderd in MLD_STANDAARD_AFK.
* 06-12-95 EH Verwijzingen naar MRA verwijderd; worden opgenomen in
* MRA module
*/
#include "comsql.h"
CREATE_TABLE(mld_oorzaak,BIBLIOTHEEK_PRIVILEGE)
(
mld_oorzaak_key
NUMBER(10)
CONSTRAINT mld_k_mld_oorzaak_key PRIMARY KEY,
mld_oorzaak_omschrijving
VARCHAR2(30)
NOT_NULL(mld_oorzaak_omschrijving, mld_c_mld_oorzaak_omschrijving),
mld_oorzaak_upper
VARCHAR2(30)
NOT_NULL(mld_oorzaak_upper, mld_c_mld_oorzaak_upper),
mld_oorzaak_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(mld_oorzaak_aanmaak, mld_c_mld_oorzaak_aanmaak),
mld_oorzaak_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT mld_u_mld_oorzaak_upper UNIQUE(mld_oorzaak_upper, mld_oorzaak_verwijder)
);
CREATE_TABLE(mld_meldbron,BIBLIOTHEEK_PRIVILEGE)
(
mld_meldbron_key
NUMBER(10)
CONSTRAINT mld_k_mld_meldbron_key PRIMARY KEY,
mld_meldbron_omschrijving
VARCHAR2(30)
NOT_NULL(mld_meldbron_omschrijving, mld_c_mld_meldbron_omschr),
mld_meldbron_upper
VARCHAR2(30)
NOT_NULL(mld_meldbron_upper, mld_c_mld_meldbron_upper),
mld_meldbron_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(mld_meldbron_aanmaak, mld_c_mld_meldbron_aanmaak),
mld_meldbron_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT mld_u_mld_meldbron_upper UNIQUE(mld_meldbron_upper, mld_meldbron_verwijder)
);
CREATE_TABLE(mld_standaardopdr,BIBLIOTHEEK_PRIVILEGE)
(
mld_standaardopdr_key
NUMBER(10)
CONSTRAINT mld_k_mld_standaardopdr_key PRIMARY KEY,
mld_standaardopdr_omschrijving
VARCHAR2(320)
NOT_NULL(mld_standaardopdr_omschrijving, mld_c_mld_standaardopdr_omschr),
mld_standaardopdr_afk
VARCHAR2(30)
NOT_NULL(mld_standaardopdr_afk, mld_c_mld_standaardopdr_afk),
mld_standaardopdr_afk_upper
VARCHAR2(30)
NOT_NULL(mld_standaardopdr_afk_upper, mld_c_mld_stdopdr_afk_upper),
mld_standaardopdr_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(mld_standaardopdr_aanmaak, mdl_c_mld_stdopdr_aanmaak),
mld_standaardopdr_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT mld_u_mld_stdopdr_afk_upper UNIQUE(mld_standaardopdr_afk_upper, mld_standaardopdr_verwijder)
);
CREATE_TABLE(mld_stdmelding,BIBLIOTHEEK_PRIVILEGE)
(
mld_stdmelding_key
NUMBER(10)
CONSTRAINT mld_k_mld_stdmelding_key PRIMARY KEY,
mld_ins_discipline_key
NUMBER(10)
NOT_NULL(mld_ins_discipline_key, mld_c_ins_discipline_key)
CONSTRAINT mld_r_ins_discipline_key REFERENCES ins_tab_discipline(ins_discipline_key),
mld_stdmelding_omschrijving
VARCHAR2(30)
NOT_NULL(mld_stdmelding_omschrijving, mld_c_mld_stdmelding_omschr),
mld_stdmelding_upper
VARCHAR2(30)
NOT_NULL(mld_stdmelding_upper, mld_c_mld_stdmelding_upper),
mld_stdmelding_urgentie
NUMBER(4,2)
CONSTRAINT mld_c_mld_srtmelding_urgentie CHECK(mld_stdmelding_urgentie >= 0),
mld_stdmelding_uitvoertijd
NUMBER(2)
CONSTRAINT mld_c_mld_stdmeld_uitvoertijd CHECK(mld_stdmelding_uitvoertijd >= 0),
CONSTRAINT mld_u_mld_stdmelding UNIQUE(mld_ins_discipline_key, mld_stdmelding_omschrijving)
);
CREATE_TABLE(mld_typeopdr,BIBLIOTHEEK_PRIVILEGE)
(
mld_typeopdr_key
NUMBER(10)
CONSTRAINT mld_k_mld_typeopdr_key PRIMARY KEY,
mld_typeopdr_omschrijving
VARCHAR2(30)
NOT_NULL(mld_typeopdr_omschrijving, mld_c_mld_typeopdr_omschr),
mld_typeopdr_upper
VARCHAR2(30)
NOT_NULL(mld_typeopdr_upper, mld_c_mld_typeopdr_upper),
mld_typeopdr_module
VARCHAR2(3)
NOT_NULL(mld_typeopdr_module, mld_c_mld_typeopdr_module),
CONSTRAINT mld_u_mld_typeopdr_upper UNIQUE(mld_typeopdr_upper, mld_typeopdr_module)
);
CREATE_TABLE(mld_statusopdr,BIBLIOTHEEK_PRIVILEGE)
(
mld_statusopdr_key
NUMBER(10)
CONSTRAINT mld_k_mld_statusopdr_key PRIMARY KEY,
mld_statusopdr_omschrijving
VARCHAR2(30)
NOT_NULL(mld_statusopdr_omschrijving, mld_c_mld_statusopdr_omschr),
mld_statusopdr_upper
VARCHAR2(30)
NOT_NULL(mld_statusopdr_upper, mld_c_mld_statusopdr_upper),
mld_statusopdr_module
VARCHAR2(3)
NOT_NULL(mld_statusopdr_module, mld_c_mld_statusopdr_module),
CONSTRAINT mld_u_mld_statusopdr_upper UNIQUE(mld_statusopdr_upper, mld_statusopdr_module)
);
CREATE_TABLE(mld_melding,NORMAAL_PRIVILEGE)
(
mld_melding_key
NUMBER(10)
CONSTRAINT mld_k_mld_melding_key PRIMARY KEY,
mld_melding_module
VARCHAR2(3)
NOT_NULL(mld_melding_module, mld_c_mld_melding_module),
mld_ins_discipline_key
NUMBER(10)
NOT_NULL(mld_ins_discipline_key, mld_c_ins_discipline_key2)
CONSTRAINT mld_r_ins_discipline_key2 REFERENCES ins_tab_discipline(ins_discipline_key),
mld_ins_srtinst_keys
NUMBER(10),
mld_meldbron_key
NUMBER(10)
NOT_NULL(mld_meldbron_key, mld_r_mld_meldbron_key1)
CONSTRAINT mld_r_mld_meldbron_key2 REFERENCES mld_meldbron,
mld_meldbron_nr
VARCHAR2(12),
mld_oorzaak_key
NUMBER(10)
CONSTRAINT mld_r_mld_oorzaak_key REFERENCES mld_oorzaak,
mld_alg_locatie_key
NUMBER(10)
NOT_NULL(mld_alg_locatie_key, mld_r_alg_locatie_key1)
CONSTRAINT mld_r_alg_locatie_key2 REFERENCES alg_locatie(alg_locatie_key),
mld_alg_onroerendgoed_keys
NUMBER(10)
NOT_NULL(mld_alg_onroerendgoed_keys, mld_c_alg_onroerendgoed_keys),
mld_melding_datum
DATE
NOT_NULL(mld_melding_datum, mld_c_mld_melding_datum),
mld_melding_omschrijving
VARCHAR2(320),
mld_melding_opmerking
VARCHAR2(320),
mld_melding_melder_naam
VARCHAR2(30),
mld_melding_username
VARCHAR2(30),
mld_melding_ingezien
DATE,
mld_melding_afgewezen
DATE,
mld_melding_geaccepteerd
DATE,
mld_melding_afgemeld
DATE,
mld_melding_verwerkt
DATE,
mld_stdmelding_key
NUMBER(10)
NOT_NULL(mld_stdmelding_key, mld_c_mld_stdmelding_key)
CONSTRAINT mld_r_mld_stdmelding_key REFERENCES mld_stdmelding,
mld_melding_uitvoertijd
NUMBER(2)
NOT_NULL(mld_melding_uitvoertijd, mld_c_mld_melding_uitvoertijd1)
CONSTRAINT mld_c_mld_melding_uitvoertijd2 CHECK(mld_melding_uitvoertijd >= 0),
mld_melding_uitvoertijd2
NUMBER(2)
CONSTRAINT mld_c_mld_melding_uitvoertijd3 CHECK(mld_melding_uitvoertijd2 >= 0),
mld_melding_geprint
NUMBER(1)
CONSTRAINT mld_c_mld_melding_geprint CHECK(mld_melding_geprint IS NULL
OR mld_melding_geprint = 1),
#ifdef AKZ
akz_bewonersordernr
VARCHAR2(12),
#endif
CONSTRAINT mld_c_afgewezen_opmerking CHECK(mld_melding_afgewezen IS NULL
OR (mld_melding_afgewezen IS NOT NULL
AND mld_melding_opmerking IS NOT NULL))
);
CREATE_TABLE(mld_opdr,NORMAAL_PRIVILEGE)
(
mld_opdr_key
NUMBER(10)
CONSTRAINT mld_k_mld_opdr_key PRIMARY KEY,
mld_opdr_module
VARCHAR2(3)
NOT_NULL(mld_opdr_module, mld_c_mld_opdr_module),
mld_melding_key
NUMBER(10)
NOT_NULL(mld_melding_key, mld_r_mld_melding_key1)
CONSTRAINT mld_r_mld_melding_key2 REFERENCES mld_melding ON DELETE CASCADE,
mld_uitvoerende_keys
NUMBER(10)
NOT_NULL(mld_uitvoerende_keys, mld_c_mld_uitvoerende_keys),
mld_typeopdr_key
NUMBER(10)
NOT_NULL(mld_typeopdr_key, mld_r_mld_typeopdr_key1)
CONSTRAINT mld_r_mld_typeopdr_key2 REFERENCES mld_typeopdr,
mld_statusopdr_key
NUMBER(10)
NOT_NULL(mld_statusopdr_key, mld_r_mld_statusopdr_key1)
CONSTRAINT mld_r_mld_statusopdr_key2 REFERENCES mld_statusopdr,
mld_standaardopdr_key
NUMBER(10)
CONSTRAINT mld_r_mld_standaardopdr_key REFERENCES mld_standaardopdr,
mld_opdr_omschrijving
VARCHAR2(1024),
mld_opdr_datumbegin
DATE
NOT_NULL(mld_opdr_datumbegin, mld_c_mld_opdr_datumbegin),
mld_opdr_dagen
NUMBER(3)
NOT_NULL(mld_opdr_dagen, mld_c_mld_opdr_dagen1)
CONSTRAINT mld_c_mld_opdr_dagen2 CHECK(mld_opdr_dagen > 0),
mld_opdr_werkzaamheden
VARCHAR2(80),
mld_opdr_datumuitgevoerd
DATE,
mld_opdr_uren
NUMBER(5,2)
DEFAULT 0
CONSTRAINT mld_c_mld_opdr_uren CHECK(mld_opdr_uren >= 0),
mld_opdr_materiaal
NUMBER(8,2)
DEFAULT 0
CONSTRAINT mld_c_mld_opdr_materiaal CHECK(mld_opdr_materiaal >= 0),
mld_opdr_kosten
NUMBER(12,2)
DEFAULT 0
CONSTRAINT mld_c_mld_opdr_kosten CHECK(mld_opdr_kosten >= 0),
mld_alg_kostenpost_key
NUMBER(10)
CONSTRAINT mld_r_alg_kostenpost_key REFERENCES alg_kostenpost(alg_kostenpost_key),
mld_opdr_contactpersoon
VARCHAR2(30),
mld_opdr_geprint
NUMBER(1)
CONSTRAINT mld_c_mld_opdr_geprint CHECK(mld_opdr_geprint IS NULL
OR mld_opdr_geprint = 1),
mld_opdr_bedrijfopdr_volgnr
NUMBER(10),
mld_opdr_uurloon
NUMBER(6,2)
);
CREATE_TABLE(mld_adres, NORMAAL_PRIVILEGE)
(
mld_adres_key
NUMBER(10)
CONSTRAINT mld_k_mld_adres_key PRIMARY KEY,
mld_adres_naam
VARCHAR2(30)
NOT_NULL(mld_adres_naam, mld_c_mld_adres_naam),
mld_adres_upper
VARCHAR2(30)
NOT_NULL(mld_adres_upper, mld_c_mld_adres_upper),
mld_adres_bezoek_adres
VARCHAR2(35),
mld_adres_bezoek_postcode
VARCHAR2(12),
mld_adres_bezoek_plaats
VARCHAR2(30),
mld_adres_bezoek_land
VARCHAR2(30),
mld_adres_post_adres
VARCHAR2(35),
mld_adres_gebouw_ruimte
VARCHAR2(30),
mld_adres_post_postcode
VARCHAR2(12),
mld_adres_post_plaats
VARCHAR2(30),
mld_adres_post_land
VARCHAR2(30),
mld_adres_contactpersoon
VARCHAR2(30),
mld_adres_contactpers_telefoon
VARCHAR2(15),
mld_adres_contactpers_fax
VARCHAR2(15),
mld_adres_contactpers_bureau
VARCHAR2(20),
mld_adres_telefoon
VARCHAR2(15),
mld_adres_fax
VARCHAR2(15),
mld_adres_factuuradres
NUMBER(1)
CONSTRAINT mld_c_mld_adres_factuuradres CHECK(mld_adres_factuuradres IS NULL
OR mld_adres_factuuradres = 1),
mld_adres_opdrachtadres
NUMBER(1)
CONSTRAINT mld_c_mld_adres_opdrachtadres CHECK(mld_adres_opdrachtadres IS NULL
OR mld_adres_opdrachtadres = 1),
mld_adres_afleveradres
NUMBER(1)
CONSTRAINT mld_c_mld_adres_afleveradres CHECK(mld_adres_afleveradres IS NULL
OR mld_adres_afleveradres = 1),
CONSTRAINT mld_c_mld_adressen CHECK(mld_adres_factuuradres IS NOT NULL
OR mld_adres_opdrachtadres IS NOT NULL
OR mld_adres_afleveradres IS NOT NULL)
);
CREATE_TABLE(mld_bestelopdr,NORMAAL_PRIVILEGE)
(
mld_bestelopdr_key
NUMBER(10)
CONSTRAINT mld_k_mld_bestelopdr_key PRIMARY KEY,
mld_bestelopdr_module
VARCHAR2(3)
NOT_NULL(mld_bestelopdr_module, mld_c_mld_bestelopdr_module),
mld_prs_bedrijf_key
NUMBER(10)
NOT_NULL(mld_prs_bedrijf_key, mld_r_prs_bedrijf_key1)
CONSTRAINT mld_r_prs_bedrijf_key2 REFERENCES prs_bedrijf,
mld_alg_locatie_key
NUMBER(10)
NOT_NULL(mld_alg_locatie_key, mld_r_bestelopdr_loc_key1)
CONSTRAINT mld_r_bestlopdr_loc_key2 REFERENCES alg_locatie,
mld_bestelopdr_datum
DATE,
mld_bestelopdr_oplevdatum
DATE,
mld_bestelopdr_refnr
VARCHAR2(20),
mld_bestelopdr_fondsnr
VARCHAR2(20),
mld_bestelopdr_kmvergoed
NUMBER(5,2)
CONSTRAINT mld_c_mld_bestelopdr_kmvergoed CHECK(mld_bestelopdr_kmvergoed >=0),
mld_bestelopdr_reis
NUMBER(7,2)
CONSTRAINT mld_c_mld_bestelopdr_reis CHECK(mld_bestelopdr_reis >=0),
mld_bestelopdr_voorrij
NUMBER(7,2)
CONSTRAINT mld_c_mld_bestelopdr_voorrij CHECK(mld_bestelopdr_voorrij >=0),
mld_bestelopdr_admin
NUMBER(7,2)
CONSTRAINT mld_c_mld_bestelopdr_admin CHECK(mld_bestelopdr_admin >=0),
mld_bestelopdr_verzend
NUMBER(7,2)
CONSTRAINT mld_c_mld_bestelopdr_verzend CHECK(mld_bestelopdr_verzend >=0),
mld_bestelopdr_limiet
NUMBER(9,2)
CONSTRAINT mld_c_mld_bestelopdr_limiet CHECK(mld_bestelopdr_limiet >=0),
mld_bestelopdr_raming
NUMBER(9,2)
CONSTRAINT mld_c_mld_bestelopdr_raming CHECK(mld_bestelopdr_raming >=0),
mld_bestelopdr_prijs
NUMBER(9,2)
CONSTRAINT mld_c_mld_bestelopdr_prijs CHECK(mld_bestelopdr_prijs >=0),
mld_bestelopdr_montbon
VARCHAR2(1)
CONSTRAINT mld_c_mld_bestelopdr_montbon CHECK(mld_bestelopdr_montbon IN ('J','N')),
mld_bestelopdr_opdrachtadres
NUMBER(10)
CONSTRAINT mld_r_mld_bestelopdr_opdradr REFERENCES mld_adres(mld_adres_key),
mld_bestelopdr_factuuradres
NUMBER(10)
CONSTRAINT mld_r_mld_bestelopdr_factadr REFERENCES mld_adres(mld_adres_key),
mld_bestelopdr_afleveradres
NUMBER(10)
CONSTRAINT mld_r_mld_bestelopdr_aflevadr REFERENCES mld_adres(mld_adres_key)
);
CREATE_TABLE(mld_bestelregel,NORMAAL_PRIVILEGE)
(
mld_bestelregel_key
NUMBER(10)
CONSTRAINT mld_k_mld_bestelregel_key PRIMARY KEY,
mld_bestelopdr_key
NUMBER(10)
NOT_NULL(mld_bestelopdr_key, mld_r_mld_bestelopdr_key1)
CONSTRAINT mld_r_mld_bestelopdr_key REFERENCES mld_bestelopdr ON DELETE CASCADE,
bcp_mld_opdr_key
NUMBER(10)
CONSTRAINT mld_u_bcp_mld_opdr_key UNIQUE,
mld_bestelregel_omschrijving
VARCHAR2(320),
CONSTRAINT mld_c_mld_bestelregel CHECK(bcp_mld_opdr_key IS NOT NULL
OR mld_bestelregel_omschrijving IS NOT NULL)
);
CREATE_TABLE(mld_vrije_dagen, BIBLIOTHEEK_PRIVILEGE)
(
mld_vrije_dagen_key
NUMBER(10)
CONSTRAINT mld_k_mld_vrije_dagen_key PRIMARY KEY,
mld_vrije_dagen_datum
DATE
NOT_NULL(mld_vrije_dagen_datum, mld_c_mld_vrije_dagen_datum)
CONSTRAINT mld_u_mld_vrije_dagen_datum UNIQUE
);
#endif // MLD

483
MLD/MLD_TRI.SRC Normal file
View File

@@ -0,0 +1,483 @@
#ifdef MLD // 13-03-96 AH
/* CREA_TRI.SRC maakt de triggers aan voor MLD */
/*
* Revisie
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* 25-05-1998 BIV LOG#1799: Trigger MLD_T_MLD_MELDING_B_UI zodaning aangepast dat hij geen foutmelding
* "TV-verklaarde opdrachten kunnen niet nogmaals TV-verklaard worden" onstaat, nadat een
* rapport is afgedrukt.
* --- 01.36 ---
* 02-05-1998 KTH LOG#1625: geen status Geexporteerd meer voor Meldingen, aangepast in
* MLD_T_MLD_MELDING_B_UI en MLD_T_MLD_OPDR_B_IU
* --- 01.35 ---
* 15/04/1998 AH Triggers MLD_OPDR_A_IUD en MLD_MELDING_B_IU aangepast voor gebrukt van Statussen
* Verwerkt en Geexporteerd.
* 14/04/1998 AH In MLD_OPDR_B_IU-trigger wordt het veld MLD_OPDR_BEDRIJFOPDR_VOLGNR gevuld via
* nieuwe StoredFunction MLD_P_BepaalBedrijfOpdrVolgnr();
* 31/03/1998 AH #1540, Zet de status van de melding goed tov. de bijbehorende opdrachten. Dit gebeurt
* via de procedure MLD_P_UPDATE_MELDING_STATUS en package FAC_P_FAC_SAVE_RESTORE.
* Stap 1. In BEFORE-statement-trigger van MLD_OPDR worden de onhouden meldingen verwijderd.
* Stap 2. In BEFORE-row-trigger van MLD_OPDR wordt de huidige MLD_MELDING_KEY onthouden.
* Stap 3. In AFTER-statement-trigger van MLD_OPDR worden van de onthouden MLD_MELDING_KEYs
* de nieuwe status bepaald.
* 31/03/1998 AH #1540, Alle view waarin op MLD_STATUSOPDR_OMSCHRIJVING gecontroleerd wordt, wordt
* nu op MLD_STATUSOPDR_UPPER LIKE '%xx%' gecontroleerd.
* --- 01.34 ---
* 03/03/1998 AH Controles op MLD_MELDING_AFGEMELD en VERWERKT toegevoegd in
* MLD_T_MLD_MELDING_B_IU.
* 26/02/1998 AH Gebruik ipv. de tabel USER_USERS de SQL/Oracle Variabele USER
* 25/02/1998 AH Nieuwe tabel MLD_STDMELDING toegevoegd.
* 24/02/1998 AH Nieuwe functionalteit aan MLD_T_MLD_MELDING_B_IU toegevoegd.
* 23/02/1998 AH Nieuwe trigger MLD_T_MLD_VRIJE_DAGEN_B_IU toegevoegd
* 13/11/1997 AH #1473, CREATE TRIGGER vervangen door CREATE_TRIGGER()
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* 24-07-97 AH #1422, MLD_T_MLD_MELDING_B_IU vult het veld MLD_ALG_LOCATIE_KEY
* 23-07-97 AH #1415: In MLD_T_MLD_OPDR_B_IU mag ALG_KOSTENPOST niet gewijzigd worden, MUTATING-table
* enz... Dus is het gedeelte maar verplaatst naar MLD117/Verwerken.
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* 04-12-96 AH Reactie op wijziging: Opdracht mag NIET worden verwijderd indien
* er werk- en bestelopdrachten bij horen.
* 02-12-96 AH BCO#042: MLD_T_MLD_BESTELREGEL_B_IU aangepast.
* Controle op BCP_MLD_OPDR_KEY alleen als deze ingevuld is.
* 22-11-96 AH LOG#1073: MLD_ADRES-trigger aangmaakt
* 21-11-96 AH LOG#1072: Verwijderen MLD_OPDR mag ook werkregels en bestelregels
* verwijderen, om consistentie met BCP_PREVOPDR
* --- 01.23 ---
* 11-11-96 AH LOG#988: Verwijderen Mld-opdr mag niet als er nog een
* bestelopdracht bij hoort.
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* 15-08-96 AH MLD_T_MLD_BESTELREGEL_B_IU aangepast: controle of
* bcp_mld_opdr_key een MLD of BCP opdracht is.
* 09-08-96 AH MLD_T_MLD_OPDR_B_IU aangepast: Opdrachten mogen niet verwijderd
* worden als deze nog op werkopdrachten voorkomen.
* 07-08-96 AH MLD_T_MLD_OPDR_B_IU aangepast: Jaarweek kan niet in trigger
* bepaald worden.
* 29-07-96 AH MLD_BEDRIJF -> PRS_BEDRIJF: Trigger MLD_T_MLD_BEDRIJF_B_IU
* vervalt.
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* 23-05-96 AH MLD_T_MLD_OPDR_B_IU aangepast voor ALG_KOSTENPOST.
* 22-05-96 AH MLD_BEDRIJF gekopieerd naar PRS... en MLD_KOSTENPOST
* naar ALG_KOSTENPOST verplaatst.
* 22-04-96 AH CHECK_UNIQUE_OMSCHRIJVING weggehaald, #367.
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 08-03-96 AH MLD_T_MLD_KOSTENPOST_B_IU aangemaakt.
* 26-02-96 AH MLD_T_MLD_MELDING_B_D verwijdert. In MLD_OPDR ON DELETE CASCADE
* op mld_meldign_key toegevoegd.
* 21-02-96 AH MLD_T_MLD_OPDR_B_D trigger toegevoegd. Verwerkte opdrachten
* mogen niet verwijderd worden.
* 19-02-96 AH MLD_T_MLD_MELDING_B_D trigger toegevoegd. Meldingen met
* verwerkte opdrachten mogen niet verwijderd worden.
* 24-01-96 AH BCO_BESTELOPDR en BCO_BESTELREGEL verplaatst naar MLD_...
* 02-01-96: AH
*
* In mld_t_mld_melding_B_IU is
* CHECK_REFERENCE_SRTINST(mld_ins_srtinst_keys, 'ins_m21');
* eruit gehaald.
*
* 4-12-'95: AH
*
* Aanpassen van triggers in PRS. De tabellen moeten dezelfde
* sequences gebruiken.
*
* 6-12-'95: AH
*
* Triggers MLD_T_MLD_TYPEOPDR_B_IU en MLD_T_MLD_STATUSOPDR_B_IU
* zijn weggehaald, de tabellen worden via een script ingevuld en
* veranderen nooit.
*/
#include "comsql.h"
CREATE_TRIGGER(mld_t_mld_oorzaak_B_IU)
BEFORE INSERT OR UPDATE ON mld_oorzaak
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_oorzaak_key,mld_s_mld_oorzaak_key);
UPDATE_UPPER(mld_oorzaak_omschrijving,mld_oorzaak_upper);
END;
/
CREATE_TRIGGER(mld_t_mld_meldbron_B_IU)
BEFORE INSERT OR UPDATE ON mld_meldbron
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_meldbron_key,mld_s_mld_meldbron_key);
UPDATE_UPPER(mld_meldbron_omschrijving,mld_meldbron_upper);
END;
/
CREATE_TRIGGER(mld_t_mld_standaardopdr_B_IU)
BEFORE INSERT OR UPDATE ON mld_standaardopdr
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_standaardopdr_key,mld_s_mld_standaardopdr_key);
UPDATE_UPPER(mld_standaardopdr_afk,mld_standaardopdr_afk_upper);
END;
/
CREATE_TRIGGER(mld_t_mld_stdmelding_B_IU)
BEFORE INSERT OR UPDATE ON mld_stdmelding
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_stdmelding_key,mld_s_mld_stdmelding_key);
UPDATE_UPPER(mld_stdmelding_omschrijving,mld_stdmelding_upper);
END;
/
#if 0
CREATE_TRIGGER(mld_t_mld_bedrijf_B_IU)
BEFORE INSERT OR UPDATE ON mld_bedrijf
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_bedrijf_key,prs_s_prs_alluitvoerende_keys);
UPDATE_UPPER(mld_bedrijf_naam,mld_bedrijf_naam_upper);
END;
/
#endif
CREATE_TRIGGER(mld_t_mld_melding_B_IU)
BEFORE INSERT OR UPDATE ON mld_melding
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_melding_key, mld_s_mld_melding_key);
CHECK_REFERENCE_ONROERENDGOED(mld_alg_onroerendgoed_keys, 'alg_m090');
/* Vul het veld MLD_ALG_LOCATIE_KEY als de onroerendgoed_key wijzigd */
IF :old.mld_alg_onroerendgoed_keys IS NULL
OR :old.mld_alg_onroerendgoed_keys <> :new.mld_alg_onroerendgoed_keys
THEN
SELECT alg_locatie_key
INTO :new.mld_alg_locatie_key
FROM mld_v_onroerendgoed_locatie
WHERE alg_onroerendgoed_keys = :new.mld_alg_onroerendgoed_keys;
END IF;
/* Vul de username in van de huidige gebruiker. */
SELECT USER
INTO :new.mld_melding_username
FROM DUAL;
/* Controleer of de velden GEACCEPTEERD en AFGEWEZEN niet beide ingevuld zijn. */
IF :new.mld_melding_afgewezen IS NOT NULL
AND :new.mld_melding_geaccepteerd IS NOT NULL
THEN
APPLICATION_ERROR(-20000, 'mld_m175');
END IF;
/* Controleer of de velden AFGEMELD en VERWERKT gevuld zijn, er mogen dan geen
* opdrachten van deze melding bestaan.
*/
IF :new.mld_melding_verwerkt IS NOT NULL
THEN
/* Alleen geaccepteerde of afgemelde meldingen mogen verwerkt worden */
IF :old.mld_melding_geaccepteerd IS NULL
AND :old.mld_melding_afgemeld IS NULL
THEN
APPLICATION_ERROR(-20000, 'mld_m203');
/* Verwerkte meldingen mogen niet nogmaals verwerkt worden */
ELSIF :old.mld_melding_verwerkt IS NOT NULL
THEN
APPLICATION_ERROR(-20000, 'mld_m196');
ELSE
/* Meldingen mogen alleen verwerkt worden als de bijbehorende opdrachten
* verwerkt zijn.
*/
DECLARE
Dummy VARCHAR2(1);
BEGIN
SELECT 'X'
INTO Dummy
FROM mld_opdr MLD_O, mld_statusopdr MLD_SO
WHERE MLD_O.mld_statusopdr_key = MLD_SO.mld_statusopdr_key
AND (MLD_SO.mld_statusopdr_upper LIKE '%INGEVOERD%'
OR MLD_SO.mld_statusopdr_upper LIKE '%UITGEGEVEN%'
OR MLD_SO.mld_statusopdr_upper LIKE '%AFGEMELD%')
AND MLD_O.mld_melding_key = :new.mld_melding_key;
APPLICATION_ERROR(-20000, 'mld_m192');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20000, 'mld_m192');
END;
END IF;
ELSIF :new.mld_melding_afgemeld IS NOT NULL
THEN
/* Alleen geaccepteerde meldingen mogen afgemeld worden */
IF :old.mld_melding_geaccepteerd IS NULL
THEN
APPLICATION_ERROR(-20000, 'mld_m202');
/* Afgemelde meldingen mogen niet nogmaals afgemeld worden */
ELSIF :old.mld_melding_afgemeld IS NOT NULL
AND (:old.mld_melding_afgemeld <> :new.mld_melding_afgemeld)
THEN
APPLICATION_ERROR(-20000, 'mld_m194');
/* Verwerkte meldingen mogen niet (nogmaals) afgemeld worden */
ELSIF :old.mld_melding_verwerkt IS NOT NULL
THEN
APPLICATION_ERROR(-20000, 'mld_m195');
ELSIF :old.mld_melding_afgemeld <> :new.mld_melding_afgemeld
THEN
/* Meldingen mogen alleen afgemeld worden als de bijbehorende opdrachten
* afgemeld of verwerkt zijn.
*/
DECLARE
Dummy VARCHAR2(1);
BEGIN
SELECT 'X'
INTO Dummy
FROM mld_opdr MLD_O, mld_statusopdr MLD_SO
WHERE MLD_O.mld_statusopdr_key = MLD_SO.mld_statusopdr_key
AND (MLD_SO.mld_statusopdr_upper LIKE '%INGEVOERD%'
OR MLD_SO.mld_statusopdr_upper LIKE '%UITGEGEVEN%')
AND MLD_O.mld_melding_key = :new.mld_melding_key;
APPLICATION_ERROR(-20000, 'mld_m191');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20000, 'mld_m191');
END;
END IF;
END IF;
/* Vul het veld UITVOERTIJD2 in als deze leeg is */
IF :new.mld_melding_uitvoertijd2 IS NULL
THEN
:new.mld_melding_uitvoertijd2 := :new.mld_melding_uitvoertijd;
END IF;
END;
/
CREATE_TRIGGER(mld_t_mld_opdr_B_IUD)
BEFORE INSERT OR UPDATE OR DELETE ON mld_opdr
DECLARE
Dummy BOOLEAN;
BEGIN
Dummy := fac_p_fac_save_restore.ResetSelectie('MLD_MELDING');
END;
/
CREATE_TRIGGER(mld_t_mld_opdr_B_IU)
BEFORE INSERT OR UPDATE ON mld_opdr
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_opdr_key, mld_s_mld_opdr_key);
/* Controleer of de opdracht bij een melding hoort die de goede status heeft,
* namelijk: GEACCEPTEERD of AFGEMELD (minimaal GEACCEPTEERD),
* anders mag de opdracht niet toegevoegd of gewijzigd worden.
*/
DECLARE
Dummy CHAR;
BEGIN
SELECT 'X'
INTO Dummy
FROM mld_melding
WHERE mld_melding_key = :new.mld_melding_key
AND mld_melding_geaccepteerd IS NOT NULL
AND mld_melding_verwerkt IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN APPLICATION_ERROR(-20000, 'mld_m201');
END;
CHECK_REFERENCE_UITVOERENDE(mld_uitvoerende_keys, 'ins_m22');
/* UPDATE van ALG_KOSTENPOST verplaatst naar MLD117/Bewaren.
IF NOT :new.mld_alg_kostenpost_key IS NULL
AND :new.mld_opdr_module = 'MLD'
THEN
DECLARE
dummy NUMBER(10);
BEGIN
SELECT mld_statusopdr_key
INTO dummy
FROM mld_statusopdr
WHERE mld_statusopdr_omschrijving = 'Verwerkt'
AND mld_statusopdr_key = :new.mld_statusopdr_key;
UPDATE alg_kostenpost
SET alg_kostenpost_besteed = NVL(alg_kostenpost_besteed, 0)
+ :new.mld_opdr_kosten - NVL(:old.mld_opdr_kosten, 0)
WHERE alg_kostenpost_key = :new.mld_alg_kostenpost_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
END;
END IF;
*/
/* Onthou de MLD_MELDING_KY voor het aanpassen van de status van de melding. */
DECLARE
Dummy BOOLEAN;
BEGIN
Dummy := fac_p_fac_save_restore.SavePrimaryKey('MLD_MELDING', :new.mld_melding_key);
END;
/* Bepaal het nieuwe bedrijfopdr_volgnr voor de huidige opdracht
* Doe dit alleen als de vorige waarde leeg was, anders wordt de oude waarde
* overschreven.
*/
IF :old.mld_opdr_bedrijfopdr_volgnr IS NULL
THEN
:new.mld_opdr_bedrijfopdr_volgnr := MLD_P_BepaalBedrijfOpdrVolgnr(:new.mld_uitvoerende_keys);
END IF;
END;
/
CREATE_TRIGGER(mld_t_mld_opdr_B_D)
BEFORE DELETE ON mld_opdr
FOR EACH ROW
BEGIN
/* Een verwerkte opdracht mag niet verwijderd worden */
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM mld_statusopdr MLD_S
WHERE :old.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND MLD_S.mld_statusopdr_upper LIKE '%VERWERKT%';
APPLICATION_ERROR(-20002, 'mld_m135');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
END;
#ifdef BCO
/* Een opdracht die voorkomt op een werkregel mag niet verwijderd worden.
*/
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM bco_werkregel
WHERE bcp_mld_opdr_key = :old.mld_opdr_key;
APPLICATION_ERROR(-20002, 'mld_m158');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20002, 'mld_m158');
END;
#endif
/* Een opdracht komt nog voor in een bestelopdracht, mag niet verwijderd worden.
*/
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM mld_bestelregel
WHERE bcp_mld_opdr_key = :old.mld_opdr_key;
APPLICATION_ERROR(-20002, 'mld_m162');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20002, 'mld_m162');
END;
/* Onthou de MLD_MELDING_KY voor het aanpassen van de status van de melding. */
DECLARE
Dummy BOOLEAN;
BEGIN
Dummy := fac_p_fac_save_restore.SavePrimaryKey('MLD_MELDING', :new.mld_melding_key);
END;
END;
/
CREATE_TRIGGER(mld_t_mld_opdr_A_IUD)
AFTER INSERT OR UPDATE OR DELETE ON mld_opdr
BEGIN
/* Pas de status van de onthouden meldingen aan. */
FAC_P_FAC_SAVE_RESTORE_UPDATE(mld_p_update_melding_status, 'MLD_MELDING');
END;
/
CREATE_TRIGGER(mld_t_mld_adres_B_IU)
BEFORE INSERT OR UPDATE ON mld_adres
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_adres_key, mld_s_mld_adres_key);
UPDATE_UPPER(mld_adres_naam, mld_adres_upper);
END;
/
CREATE_TRIGGER(mld_t_mld_bestelopdr_B_IU)
BEFORE INSERT OR UPDATE ON mld_bestelopdr
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_bestelopdr_key, mld_s_mld_bestelopdr_key);
END;
/
CREATE_TRIGGER(mld_t_mld_bestelregel_B_IU)
BEFORE INSERT OR UPDATE ON mld_bestelregel
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_bestelregel_key, mld_s_mld_bestelregel_key);
IF :new.bcp_mld_opdr_key IS NOT NULL
THEN
DECLARE
dummy CHAR;
BEGIN
dummy := NULL;
BEGIN
SELECT 'X'
INTO dummy
FROM mld_opdr
WHERE mld_opdr_key = :new.bcp_mld_opdr_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN dummy := NULL;
END;
#ifdef BCP
IF dummy IS NULL
THEN
BEGIN
SELECT 'X'
INTO dummy
FROM bcp_prevopdr
WHERE bcp_prevopdr_key = :new.bcp_mld_opdr_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN dummy := NULL;
END;
END IF;
#endif // BCP
IF dummy IS NULL
THEN
APPLICATION_ERROR(-20000, 'mld_m159');
END IF;
END;
END IF;
END;
/
CREATE_TRIGGER(mld_t_mld_vrije_dagen_b_iu)
BEFORE INSERT OR UPDATE ON mld_vrije_dagen
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_vrije_dagen_key, mld_s_mld_vrije_dagen_key);
/* Haal het tijdgedeelte van de ingevoerde datum af. */
:new.mld_vrije_dagen_datum := TRUNC(:new.mld_vrije_dagen_datum);
END;
/
#endif // MLD

1094
MLD/MLD_VIE.SRC Normal file

File diff suppressed because it is too large Load Diff

420
MODULES.H Normal file
View File

@@ -0,0 +1,420 @@
/*
* MODULEDEFINITIES
*
* Beschikbare targets (in environment variable 'cust'):
* ALL - Alles (exclusief data)
* ACH - Akzo Chemicals Hengelo
* BCO - BCO
* DAT - Alleen data
* DYK - Dijkoraad
* IBG - Informatie Beheer Groep (Groningen)
* NAT - NATCO (Service Desk)
* PMK - Prinses Margriet Kazerne (DGW&T) (LET OP: 'DATA' STAAT UIT!)
* RHY - Rijkshogeschool IJselland (Deventer)
* SON - Sonneheerdt (Ermelo)
* RAB - Rabobank (Deventer)
* GMS - Akzo (Arnhem)
*
* Beschikbare modules voor targets:
* ALG - Algemeen (onroerend goed)
* AKZ - AKZO-specifieke importzaken
* ARB - ARBO (deel van MARS)
* ATT - Attributen module
* BCO - Correctief (NIET MEER VAN TOEPASSING: ZIE SM45!)
* BCP - Preventief (NIET MEER VAN TOEPASSING: ZIE SM45!)
* BEB - Bebis functionaliteit
* BIS - Bodem Informatie Systeem functionaliteit
* CAD - AutoCAD koppeling
* FAC - Basismodule (altijd aanwezig)
* HUI - Huismeester module
* INB - Installaties (bibliotheek)
* INR - Installaties (registratie)
* INS - Installaties (tabellen, ook voor INV nodig!)
* INV - Inventaris
* LEV - Leveringen
* MIL - Milieu (deel van MARS)
* MLD - Meldingen (basis)
* MRA - MARS (Milieu en ARBO Registratie Systeem)
* PRR - Personen (registratie)
* PRS - Personen (kleine basisset tbv. Meldingen)
* RAP - Rapport module (geen src voor nodig)
* SCH - Schoonmaak
* SLE - Sleutelplan
*
* COA - ContourA beschikbaar
* DATA - Data voor diverse modules inserten
*
* ACAD - een vorm van CAD beschikbaar (zie volgende lijst:)
* ACAD12 - AutoCAD versie 12 voor Windows beschikbaar
* ACAD13 - AutoCAD versie 13 voor Windows beschikbaar
* ACVQ - AutoCAD/VQ beschikbaar
* AVIEW - Autodesk View beschikbaar
*
* History:
*
* --- 01.40 ---
* --- 01.39 ---
* 31-07-98 PF INB voor ACH toegevoegd (voor CAD_TEKENING etc)
* --- 01.38 ---
* --- 01.37 ---
* 22-05-98 KTH LOG#1821: Module CAD bij ALL, ACH en GMS toegevoegd
* 14-05-98 KTH Module SCH bij GMS verwijderd (krijgen een eigen 'SCH')
* --- 01.36 ---
* 06-05-98 KTH Module BIS toegevoegd aan CUST=ALL
* --- 01.35 ---
* 12-03-98 KTH CUST=ACH toegevoegd met modules ALG,FAC,BIS
* --- 01.34 ---
* 26/02/1998 AH Bij CUST=ALL ook AKZ toegevoegd
* 19/02/1998 AH #define AKZ toegevoeg.
* 06/01/1998 AH Target GMS (Akzo) toegevoegd
* --- 01.33 ---
* 02-09-97 KTH Overbodig:
* - BCO: uitgecommentarieerd
* Tbv CAD-beschrijving in Help en Doc:
* - ALL: #defines ACAD12,ACAD13,ACVQ,AVIEW toegevoegd
* - DYK: #defines ACAD12,ACAD13 toegevoegd
* - IBG: #defines ACAD13,AVIEW toegevoegd (tbv Help/doc)
* - PMK: #define ACVQ toegevoegd
* - RHY: #define ACAD12 toegevoegd
* - SON: #define ACVQ toegevoegd
* - RAB: #defines ACAD13,AVIEW toegevoegd
* --- 01.32 ---
* 19-08-97 KTH Module ATT toegevoegd aan IBG (cf RAB)
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* 03-07-97 KTH Module ACAD toegevoegd aan IBG
* 23-04-96 KTH Target IBG toegevoegd: ALG,COA,DATA,FAC,INS,INB,INR,MLD,PRR,
* PRS,SCH
* --- 01.27 ---
* 16-04-97 KTH module DATA aan BBS toegevoegd
* --- 01.26 ---
* 14-04-97 AH RAB-target: ATT-module toegevoegd
* 01-04-97 AH RAB-target toegevoegd
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* 11-11-96/KTH DYK; verwijderd: BCO,BCP,INR,HUI,MRA (maw. SON+RHY funct.)
* --- 01.22 ---
* 08-11-96 KTH - Geen SCH voor NAT
* - commentaar betreffende PRR toegevoegd bij NAT
* --- 01.21 ---
* 21-10-96 KTH BEB aan customer ALL toegevoegd
* 16-10-96 KTH Customer BBS toegevoegd en module BEB
* 10-10-96 KTH _BUILDTAGS uitbreiden met MAN voor MANUAL (wordt overgelsagen
* voor Help)
* 09-10-96 KTH MANUAL en PICTURES defineren wanneer MAN gedefinieerd is
* 08-10-96 KTH - Module COA (ContourA) toegevoegd voor ALL,DYK en RHY
* - _CUSTHELPDIR overbodig
* 25-09-96 KTH _CUSTHELPDIR geintroduceerd voor Help
* 24-09-96 KTH Module BEV weer verwijderd
* 23-09-96 PF SCH aan NAT toegevoegd.. (tijdelijk?)
* --- 01.20 ---
* 17-09-96 KTH Modules ARB en MIL toegevoegd tbv. MARS-Help
* 16-09-96 KTH Module INR verwijderd voor PMK (MARS)
* 16-09-96 KTH #define ACAD toegevoegd waar relevant ivm. Help
* --- 01.19 ---
* 27-08-96 KTH Voor NAT: HUI bij buildtags erbij, ATT weg
* 30-07-96 KTH Module BEV toegevoegd
* --- 01.18 ---
* --- 01.17 ---
* 21-06-96 KTH Module HUI uit commentaar gehaald en toegevoegd aan DYK
* 10-06-96 KTH [#609] Modules HUI en RAP toegevoegd
* --- 01.16 ---
* 05-06-96 KTH Module ATT voor Dijkoraad uitgecommentarieerd (nog niet klaar)
* 04-06-96 KTH INB wordt installaties (bibliotheek)
* 03-06-96 PF ATT bij NAT verwijderd
* 03-06-96 KTH Target DYK (Dijkoraad) toegevoegd
* --- 01.15 ---
* 15-05-96 PF target NAT added
* 03-05-96 PF #elsif replaced by #elif
* 03-05-96 PF Remark: target replaced by cust in this file (line 4)
* 01-05-96 KTH - Modules ATT en LEV toegevoegd aan target ALL
* - #elsif gebruiken anders gaat het voor BCO 2 keer en krijg je
* alsnog DATA
* 22-04-96 KTH Define _BUILDTAGS toegevoegd voor precompile-slag voor Help
* 19-04-96 KTH - SCH toegevoegd aan RHY
* - alle uit te voeren defines definieren zichzelf weer
* ivm. mogelijk ongewenste tekst-substituties
* --- 01.14 ---
* 16-04-96 KTH - INR toegevoegd aan target PMK
* - DATA uit voor PMK
* 11-04-96 KTH Target BCO toegevoegd
* --- 01.13 ---
* --- 01.12 ---
* 03-04-96 KTH Target DAT toegevoegd
* 20-03-96 KTH Targets SON, RHY en PMK toegevoegd
*/
#ifdef MAN
#define MANUAL MANUAL
#define PICTURES PICTURES
#endif
/* ALL - Alle modules */
#if defined(ALL)||defined(all)
#ifdef MAN
#define _BUILDTAGS MAN|ACAD|ACAD12|ACAD13|ACVQ|AVIEW|ALG|ATT|BCO|BCP|BEB|BIS|CAD|COA|FAC|HUI|INB|INR|INS|INV|LEV|MLD|MRA|PRR|PRS|RAP|SCH|SLE
#else
#define _BUILDTAGS ACAD|ACAD12|ACAD13|ACVQ|AVIEW|ALG|ATT|BCO|BCP|BEB|BIS|CAD|COA|FAC|HUI|INB|INR|INS|INV|LEV|MLD|MRA|PRR|PRS|RAP|SCH|SLE
#endif
#define ACAD ACAD
#define ACAD12 ACAD12
#define ACAD13 ACAD13
#define ACVQ ACVQ
#define AVIEW AVIEW
#define ALG ALG
#define ATT ATT
#define BCO BCO
#define BCP BCP
#define BEB BEB
#define BIS BIS
#define CAD CAD
#define COA COA
#define FAC FAC
#define HUI HUI
#define INB INB
#define INR INR
#define INS INS
#define INV INV
#define LEV LEV
#define MLD MLD
#define MRA MRA
#define PRR PRR
#define PRS PRS
#define RAP RAP
#define SCH SCH
#define SLE SLE
#define AKZ AKZ
/* #define DATA DATA */
/* ACH - Akzo Chemicals Hengelo */
#elif defined(ACH)||defined(ach)
#ifdef MAN
#define _BUILDTAGS MAN|ALG|BIS|CAD|FAC
#else
#define _BUILDTAGS ALG|BIS|CAD|FAC
#endif
#define ALG ALG
#define CAD CAD
#define FAC FAC
#define BIS BIS
#define INS INS
#define DATA DATA
/* BCO - BCO */
/* #elif defined(BCO)||defined(bco) */
/* #ifdef MAN */
/* #define _BUILDTAGS MAN|ALG|BCO|BCP|FAC|INB|INR|INS|MLD|PRS */
/* #else */
/* #define _BUILDTAGS ALG|BCO|BCP|FAC|INB|INR|INS|MLD|PRS */
/* #endif */
/* #define ALG ALG */
/* #define BCO BCO */
/* #define BCP BCP */
/* #define FAC FAC */
/* #define INB INB */
/* #define INR INR */
/* #define INS INS */
/* #define MLD MLD */
/* #define PRS PRS */
/* #define DATA DATA */
/* BBS - Bebis */
#elif defined(BBS)||defined(bbs)
#ifdef MAN
#define _BUILDTAGS MAN|ALG|BEB|FAC|INB|INR|INS
#else
#define _BUILDTAGS ALG|BEB|FAC|INB|INR|INS
#endif
#define ALG ALG
#define BEB BEB
#define FAC FAC
#define INS INS
#define INR INR
#define INB INB
#define DATA DATA
/* DAT - Data */
#elif defined(DAT)||defined(dat)
#define DATA DATA
/* DYK - Dijkoraad */
#elif defined(DYK)||defined(dyk)
/* 11-11-96/KTH Verwijderd: BCO,BCP,INR,HUI,MRA (maw. SON+RHY funct.) */
#ifdef MAN
#define _BUILDTAGS MAN|ACAD|ACAD12|ACAD13|ALG|ATT|COA|FAC|INB|INS|INV|MLD|PRR|PRS|SCH|SLE
#else
#define _BUILDTAGS ACAD|ACAD12|ACAD13|ALG|ATT|COA|FAC|INB|INS|INV|MLD|PRR|PRS|SCH|SLE
#endif
#define ACAD ACAD
#define ACAD12 ACAD12
#define ACAD13 ACAD13
#define ALG ALG
/* #define ATT ATT */
/* #define BCO BCO */
/* #define BCP BCP */
#define COA COA
#define FAC FAC
/* #define HUI HUI */
#define INB INB
/* #define INR INR */
#define INS INS
#define INV INV
/* #define LEV LEV Kan (nog) niet tegelijk met BCO/BCP */
#define MLD MLD
/* #define MRA MRA */
#define PRR PRR
#define PRS PRS
#define SCH SCH
#define SLE SLE
#define DATA DATA
/* GMS - Akzo Arnhem */
#elif defined(GMS)||defined(gms)
#ifdef MAN
#define _BUILDTAGS MAN|ACAD|ACAD14|AVIEW|ALG|ATT|CAD|COA|FAC|INB|INR|INS|MLD|PRR|PRS|SLE
#else
#define _BUILDTAGS ACAD|ACAD14|AVIEW|ALG|ATT|CAD|COA|FAC|INB|INR|INS|MLD|PRR|PRS|SLE
#endif
#define ACAD ACAD
#define ACAD14 ACAD14
#define AVIEW AVIEW
#define ALG ALG
#define AKZ AKZ /* inclusief de AKZ-specifieke 'SCH' */
#define ATT ATT
#define CAD CAD
#define COA COA
#define FAC FAC
#define INB INB
#define INR INR
#define INS INS
#define MLD MLD
#define PRR PRR
#define PRS PRS
#define SLE SLE
#define DATA DATA
/* IBG - Informatie Beheer Groep */
#elif defined(IBG)||defined(ibg)
#ifdef MAN
#define _BUILDTAGS MAN|ACAD|ACAD13|AVIEW|ALG|ATT|COA|FAC|INB|INR|INS|MLD|PRR|PRS|SCH
#else
#define _BUILDTAGS ACAD|ACAD13|AVIEW|ALG|ATT|COA|FAC|INB|INR|INS|MLD|PRR|PRS|SCH
#endif
#define ACAD ACAD
#define ACAD13 ACAD13
#define AVIEW AVIEW
#define ALG ALG
#define ATT ATT
#define COA COA
#define FAC FAC
#define INB INB
#define INR INR
#define INS INS
#define MLD MLD
#define PRR PRR
#define PRS PRS
#define SCH SCH
#define DATA DATA
/* NAT - NatCo:ServiceDesk */
#elif defined(NAT)||defined(nat)
#ifdef MAN
#define _BUILDTAGS MAN|ALG|FAC|HUI|INS|INV|LEV|PRS
#else
#define _BUILDTAGS ALG|FAC|HUI|INS|INV|LEV|PRS
#endif
#define ALG ALG
#define FAC FAC
#define HUI HUI
#define INS INS /* alleen tabellen voor INV */
#define INV INV
#define LEV LEV
#define PRS PRS
/* 08-11-96/KTH
* Let op: geen PRR nodig, wordt met '#ifdef HUI' gerealiseerd, ervan
* uitgaande dat PRR-tabellen beschikbaar zijn wanneer PRS is gedefinieerd
*/
#define DATA DATA
/* PMK - Prinses Margriet Kazerne */
#elif defined(PMK)||defined(pmk)
#ifdef MAN
#define _BUILDTAGS MAN|ACAD|ACVQ|ARB|ALG|FAC|INB|INS|MIL|MLD|MRA|PRS
#else
#define _BUILDTAGS ACAD|ACVQ|ARB|ALG|FAC|INB|INS|MIL|MLD|MRA|PRS
#endif
#define ACAD ACAD
#define ACVQ ACVQ
#define ALG ALG
#define ARB ARB
#define FAC FAC
#define INB INB
#define INS INS
#define MLD MLD
#define MIL MIL
#define MRA MRA
#define PRS PRS
#define DATA DATA
/* RHY - Rijkshogeschool IJselland */
#elif defined(RHY)||defined(rhy)
#ifdef MAN
#define _BUILDTAGS MAN|ACAD|ACAD12|ALG|COA|FAC|INS|INV|PRR|PRS|SCH|SLE
#else
#define _BUILDTAGS ACAD|ACAD12|ALG|COA|FAC|INS|INV|PRR|PRS|SCH|SLE
#endif
#define ACAD ACAD
#define ACAD12 ACAD12
#define ALG ALG
#define COA COA
#define FAC FAC
#define INS INS /* alleen tabellen voor INV */
#define INV INV
#define PRR PRR
#define PRS PRS
#define SCH SCH
#define SLE SLE
#define DATA DATA
/* SON - Sonneheerdt */
#elif defined(SON)||defined(son)
#ifdef MAN
#define _BUILDTAGS MAN|ACAD|ACVQ|ALG|FAC|INB|INS|MLD|PRS
#else
#define _BUILDTAGS ACAD|ACVQ|ALG|FAC|INB|INS|MLD|PRS
#endif
#define ACAD ACAD
#define ACVQ ACVQ
#define ALG ALG
#define FAC FAC
#define INB INB /* geen registratie */
#define INS INS
#define MLD MLD
#define PRS PRS
#define DATA DATA
/* RAB - Rabobank */
#elif defined(RAB)||defined(rab)
#ifdef MAN
#define _BUILDTAGS MAN|ACAD|ACAD13|AVIEW|ALG|ATT|FAC|INB|INR|INS|MLD|PRS|SLE
#else
#define _BUILDTAGS ACAD|ALG|ACAD13|AVIEW|ATT|FAC|INB|INR|INS|MLD|PRS|SLE
#endif
#define ACAD ACAD
#define ACAD13 ACAD13
#define AVIEW AVIEW
#define ALG ALG
#define ATT ATT
#define FAC FAC
#define INB INB
#define INR INR
#define INS INS
#define MLD MLD
#define PRS PRS
#define SLE SLE
#define DATA DATA
#endif

0
PRS/.gitignore vendored
View File

47
PRS/PRS_IND.SRC Normal file
View File

@@ -0,0 +1,47 @@
#ifdef PRS // 13-03-96 AH
/*
* Revisie:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 18-01-96 RW complete remake
*/
create index prs_i_prs_afdeling1 on prs_afdeling(prs_afdeling_parentkey);
create index prs_i_prs_perslid1 on prs_perslid(prs_srtperslid_key);
create index prs_i_prs_perslid2 on prs_perslid(prs_afdeling_key);
create index prs_i_prs_perslidwerkplek1 on prs_perslidwerkplek(prs_perslid_key);
create index prs_i_prs_perslidwerkplek2 on prs_perslidwerkplek(prs_werkplek_key);
#endif // PRS

60
PRS/PRS_INI.SRC Normal file
View File

@@ -0,0 +1,60 @@
#ifdef PRS // 13-03-96 AH
/*
* PRS tables for Facilitor: installation time population
*/
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* 20-05-98 KTH Gebruik macro _FAC_MODULE
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* 19/02/1998 AH Nieuwe #define AKZ gebruikt
* 11/02/1998 AH Record ONBEKEND voor PRS_SRTPERSLID toegevoegd voor AKZ_PRSIMPORT.
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 03-04-96 KTH #ifdef PRR om 'INSERT INTO fac_module...PRR...' gezet
* 01-04-96 KTH 02.03
* 19-03-96 KTH 02.02
* 08-03-96 KTH Module PRR toegevoegd (registratie-deel van PRS='grote PRS')
* 16-02-96 PF 02.01
* 05-02-96 KTH Spool toegevoegd
* 03-01-96 PF Gebruik sysdate
* 20-12-95 PF Creation
*/
_FAC_MODULE('PRS','Personen (standaard)')
#ifdef PRR
_FAC_MODULE('PRR','Personen (werkplekken)')
#endif // PRR
#ifdef AKZ
INSERT INTO prs_srtperslid (prs_srtperslid_omschrijving) VALUES('Onbekend');
#endif // AKZ
#endif // PRS

238
PRS/PRS_PAC.SRC Normal file
View File

@@ -0,0 +1,238 @@
#ifdef PRS
/* PRS_PAC.SRC
*
* Revisie:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* 14-07-97 AH Extra argument ArgEditMode toegevoegd.
* 10-07-97 AH Aangemaakt
*/
/* Bepaal de oppervlakte van een werkplek
* Argumenten:
* - ArgWerkplekKey : De PRS_WERKPLEK_KEY. Als deze NULL is dan wordt de
* variabele oppervlakte berekend.
* - ArgRuimteKey : De PRS_ALG_RUIMTE_KEY, als deze bekand is.
* Als deze -1 is, dan wordt de ruimte opgezocht in PRS_WERKPLEK.
* LET OP: ArgWerkplekKey OF ArgRuimteKey moet gegeven zijn.
* - ArgRuimteBrutoVloerOpp : De ALG_RUIMTE_BRUTO_VLOEROPP, als deze bekend is,
* Als deze -1 is, dan wordt de bruto vloeropp. opgezocht in ALG_RUIMTE.
* - ArgWerkplekVastOpp : De PRS_WERKPLEK_VASTOPP die aangeeft of de werkpplek een
* vaste oppervlakte heeft. Als deze -1 is dan wordt deze opgezocht in PRS_WERKPLEK
* - ArgWerkplekOpp: De PRS_WERKPLEK_OPP, Als deze -1 is, dan wordt deze opgezocht
* in PRS_WERKPLEK.
* - ArgEditMode: Als in een mutatiestand (PRS114) een oppervlakte bepaald moet worden.
* De waardes zijn NULL, 'ADD' of 'CHANGE'.
* De volgende zaken moeten dan meegegeven worden:
* Bij 'ADD': ArgWerkplekKey = NULL, ArgRuimteKey, ArgWerkplekVastOpp, ArgEditType = 'ADD'
* Als (WerkplekVastOpp = NULL) dan wordt het aantal variabele werkplekken
* met 1 verhoogd. Dus de oppervlakte van deze variabele werkplek houdt rekening
* met deze nieuw toe te voegen werkplek.
* Als (WerkplekVastOpp <> NULL) dan wordt NULL geretourneerd, immers, de vast oppervlakte
* van de nieuwe werkplek is leeg.
* Bij 'CHANGE': ArgWerkplekKey = de te wijzigen werkplek, ArgRuimteKey, ArgWerkplekVastOpp,
* ArgEditType = 'CHANGE'.
* Als (WerkplekVastOpp = NULL) dan wordt het aantal variabele werkplekken met 1
* verhoogd en de vaste oppervlakte van de te wijzigen werkplek wordt niet meegenomen
* in de WerkplekTotVastOpp.
* Als (WerkplekVastOpp <> NULL) dan wordt de vaste oppervlakte van de te wijzigen
* werkplek geretourneerd, als deze ingevuld was, anders NULL.
*/
CREATE OR REPLACE FUNCTION PRS_P_PRS_BepaalWerkplekOpp( ArgWerkplekKey IN NUMBER,
ArgRuimteKey IN NUMBER,
ArgRuimteBrutoVloerOpp IN NUMBER,
ArgWerkplekVastOpp IN NUMBER,
ArgWerkplekOpp IN NUMBER,
ArgEditMode IN CHAR ) RETURN NUMBER IS
NewWerkplekOpp NUMBER(12,4);
WerkplekTotVastOpp NUMBER(12,4);
AantalVariabel NUMBER(3);
RuimteKey NUMBER(10);
RuimteBrutoVloerOpp alg_ruimte.alg_ruimte_bruto_vloeropp%TYPE;
WerkplekVastOpp prs_werkplek.prs_werkplek_vastopp%TYPE;
WerkplekOpp prs_werkplek.prs_werkplek_opp%TYPE;
ChangeWerkplekVastOpp prs_werkplek.prs_werkplek_vastopp%TYPE;
ChangeWerkplekOpp prs_werkplek.prs_werkplek_opp%TYPE;
BEGIN
/* Bij toevoegen moet alleen de bruto vloeropp van de ruimte bepaald worden */
IF (NVL(ArgEditMode, 'LEEG/NULL') = 'ADD')
THEN
BEGIN
WerkplekVastOpp := ArgWerkplekVastOpp;
WerkplekOpp := NULL;
SELECT ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_bruto_vloeropp
INTO RuimteKey,
RuimteBrutoVloerOpp
FROM alg_ruimte ALG_R
WHERE ALG_R.alg_ruimte_key = ArgRuimteKey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN RETURN NULL;
END;
/* Bij wijzigen moeten de gegevens van de werkplek even bewaard worden en de bruto vloeropp van de
* ruimte moet bepaald worden.
*/
ELSIF (NVL(ArgEditMode, 'LEEG/NULL') = 'CHANGE')
THEN
WerkplekVastOpp := ArgWerkplekVastOpp;
WerkplekOpp := ArgWerkplekOpp;
BEGIN
SELECT PRS_W.prs_alg_ruimte_key,
ALG_R.alg_ruimte_bruto_vloeropp,
PRS_W.prs_werkplek_vastopp,
PRS_W.prs_werkplek_opp
INTO RuimteKey,
RuimteBrutoVloerOpp,
ChangeWerkplekVastOpp,
ChangeWerkplekOpp
FROM prs_werkplek PRS_W, alg_ruimte ALG_R
WHERE PRS_W.prs_alg_ruimte_key = ALG_R.alg_ruimte_key
AND PRS_W.prs_werkplek_key = ArgWerkplekKey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN RETURN NULL;
END;
ELSIF NVL(ArgRuimteKey, -1) = -1
OR NVL(ArgRuimteBrutoVloerOpp, -1) = -1
OR ArgWerkplekVastOpp = -1
OR NVL(ArgWerkplekOpp, -1) = -1
THEN
IF NVL(ArgWerkplekKey, 0) > 0
THEN
BEGIN
SELECT PRS_W.prs_alg_ruimte_key,
ALG_R.alg_ruimte_bruto_vloeropp,
PRS_W.prs_werkplek_vastopp,
PRS_W.prs_werkplek_opp
INTO RuimteKey,
RuimteBrutoVloerOpp,
WerkplekVastOpp,
WerkplekOpp
FROM prs_werkplek PRS_W, alg_ruimte ALG_R
WHERE PRS_W.prs_alg_ruimte_key = ALG_R.alg_ruimte_key
AND PRS_W.prs_werkplek_key = ArgWerkplekKey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN RETURN NULL;
END;
ELSIF NVL(ArgRuimteKey, -1) > 0
THEN
BEGIN
WerkplekVastOpp := NULL;
WerkplekOpp := NULL;
SELECT ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_bruto_vloeropp
INTO RuimteKey,
RuimteBrutoVloerOpp
FROM alg_ruimte ALG_R
WHERE ALG_R.alg_ruimte_key = ArgRuimteKey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN RETURN NULL;
END;
ELSE
RETURN NULL;
END IF;
ELSE
RuimteKey := ArgRuimteKey;
RuimteBrutoVloerOpp := ArgRuimteBrutoVloerOpp;
WerkplekVastOpp := ArgWerkplekVastOpp;
WerkplekOpp := ArgWerkplekOpp;
END IF;
// Retourneer de vaste oppervlakte van de te wijzigen werkplek.
IF NVL(ArgEditMode, 'LEEG/NULL') = 'CHANGE'
AND WerkplekVastOpp IS NOT NULL
THEN
NewWerkplekOpp := ChangeWerkplekOpp;
// Retourneer de pas bepaalde vaste oppervlakte van de werkplek.
ELSIF WerkplekVastOpp IS NOT NULL
THEN
NewWerkplekOpp := WerkplekOpp;
ELSE
// Neem de vaste werkplekoppervlakte van de te wijzigen werkplek niet mee.
IF NVL(ArgEditMode, 'LEEG/NULL') = 'CHANGE'
THEN
BEGIN
SELECT NVL(SUM(NVL(PRS_W.prs_werkplek_opp, 0)), 0)
INTO WerkplekTotVastOpp
FROM prs_v_aanwezigwerkplek PRS_W
WHERE PRS_W.prs_werkplek_vastopp IS NOT NULL
AND PRS_W.prs_werkplek_key <> ArgWerkplekKey
AND PRS_W.prs_alg_ruimte_key = RuimteKey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN WerkplekTotVastOpp := 0;
END;
ELSE
BEGIN
SELECT NVL(SUM(NVL(PRS_W.prs_werkplek_opp, 0)), 0)
INTO WerkplekTotVastOpp
FROM prs_v_aanwezigwerkplek PRS_W
WHERE PRS_W.prs_werkplek_vastopp IS NOT NULL
AND PRS_W.prs_alg_ruimte_key = RuimteKey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN WerkplekTotVastOpp := 0;
END;
END IF;
// Neem de te wijzigen werkplek niet mee in het aantal variabele werkplekken.
IF NVL(ArgEditMode, 'LEEG/NULL') = 'CHANGE'
THEN
BEGIN
SELECT COUNT(*)
INTO AantalVariabel
FROM prs_v_aanwezigwerkplek PRS_W
WHERE PRS_W.prs_werkplek_vastopp IS NULL
AND PRS_W.prs_werkplek_key <> ArgWerkplekKey
AND PRS_W.prs_alg_ruimte_key = RuimteKey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN AantalVariabel := 0;
END;
ELSE
BEGIN
SELECT COUNT(*)
INTO AantalVariabel
FROM prs_v_aanwezigwerkplek PRS_W
WHERE PRS_W.prs_werkplek_vastopp IS NULL
AND PRS_W.prs_alg_ruimte_key = RuimteKey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN AantalVariabel := 0;
END;
END IF;
// Bepaal de variabele oppervlakte van de werkplekken inclusief deze nieuwe variabele werkplek.
IF NVL(ArgEditMode, 'LEEG/NULL') = 'ADD'
OR NVL(ArgEditMode, 'LEEG/NULL') = 'CHANGE'
THEN
AantalVariabel := NVL(AantalVariabel, 0) + 1;
END IF;
IF AantalVariabel > 0
THEN
NewWerkplekOpp := (RuimteBrutoVloerOpp - WerkplekTotVastOpp) / AantalVariabel;
ELSE
NewWerkplekOpp := (RuimteBrutoVloerOpp - WerkplekTotVastOpp);
END IF;
IF NVL(NewWerkplekOpp, 0) < 0
THEN
NewWerkplekOpp := 0;
END IF;
END IF;
RETURN NewWerkplekOpp;
END;
/
#endif // PRS

68
PRS/PRS_SEQ.SRC Normal file
View File

@@ -0,0 +1,68 @@
#ifdef PRS // 13-03-96 AH
/* Maakt de sequences voor PRS
*
* Revisie:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* 09/04/1998 AH akz_s_akz_prsimport_log met NOCACHE-optie.
* --- 01.34 ---
* 19/02/1998 AH Nieuwe #define AKZ gebruikt
* 10/02/1998 AH Sequence voor AKZ_PRSIMPORT toegevoegd
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* 12-08-96 AH Serquence PRS_S_PRS_DISCIPLINEBESTEK_KEY verwijderd,
* disciplinebestek is een uitvoerende dus haalt zijn key uit
* PRS_S_PRS_ALLUITVOERENDE_KEYS.
* Sequence PRS_S_PRS_BESTEK_KEY toegevoegd. PRS_BESTEK is zelf
* geen uitvoerende.
* 29-07-96 KTH Sequences prs_s_prs_disciplinebestek_key en
* prs_s_prs_locatiebestek_key toegevoegd (vooralsnog #ifdef INS)
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 13-03-96 AH NIEUWE OPZET SRC-files.
*
*/
CREATE SEQUENCE prs_s_prs_alluitvoerende_keys MINVALUE 1;
CREATE SEQUENCE prs_s_prs_afdeling_key MINVALUE 1;
CREATE SEQUENCE prs_s_prs_werkplek_key MINVALUE 1;
CREATE SEQUENCE prs_s_prs_perslidwerkplek_key MINVALUE 1;
#ifdef INS
/* 29-07-96/KTH Vooralsnog zijn bestekken alleen #ifdef INS */
/* prs_DISCIPLIEbestek_key put uit prs_s_prs_alluitvoerende_keys omdat een
* DISCIPLINEbestek ook een uitvoerende kan zijn (AH) */
CREATE SEQUENCE prs_s_prs_bestek_key MINVALUE 1;
CREATE SEQUENCE prs_s_prs_locatiebestek_key MINVALUE 1;
#endif // INS
#ifdef AKZ
CREATE SEQUENCE akz_s_akz_prsimport_key MINVALUE 1;
CREATE SEQUENCE akz_s_akz_prsimport_log MINVALUE 1 NOCACHE;
#endif // AKZ
#endif // PRS

617
PRS/PRS_TAB.SRC Normal file
View File

@@ -0,0 +1,617 @@
#ifdef PRS // 13-03-96 AH
/* CREA_TAB.SRC
*
* Maakt de volgende tabellen aan:
* prs_bedrijf
* prs_afdeling
* prs_srtperslid
* prs_perslid
* prs_werkplek
* prs_perslidwerkplek
* prs_bestek
* prs_disciplinebestek
* prs_locatiebestek
*
* History:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* 22-05-1998 BIV LOG#1771: lengte van de velden 'Afdelingsnaam' + bijbehorende Upper vergroot
* naar 10 posities.
* 15-05-1998 KTH PRS_BEDRIJF_UITVOERENDE wordt 'DEFAULT 1' want bv GMS gebruikt hem
* alleen maar als 'Uitvoerende'
* --- 01.36 ---
* --- 01.35 ---
* 08/04/1998 AH Extra AKZ-velden in PRS_PERSLID.
* PRS_LEVERANCIER_NR in PRS_BEDRIJF van 5->6 kars.
* --- 01.34 ---
* 19/02/1998 AH Nieuwe #define AKZ gebruikt
* 10/02/1998 AH AKZ_PRSIMPORT toegevoegd voor import van Persoonsgegevens.
* 28/01/1998 AH PRS_DISCIPLINEBESTEK aangepast: INS_DISCIPLINE-reference nu naar
* INS_TAB_DISCIPLINE
* 12/11/1997 AH #1473, constraintnamen toegevoegd.
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* 10-07-97 AH #1376, CHECK op PRS_PERSLID_UURLOON toegevoegd, deze mag niet negatief zijn.
* 10-7-97 AH #1365, PRS_PERSLIDWERKPLEK_VERWIJDER-velden weggehaald.
* 5/27/97 AH #1254, Voor PERFORMANCE van PRS211 UNIQUE op PRS_WERKPLEK gewijzigd, kolommen verwisseld
* 5/26/97 AH #1255, Het VERWIJDER-veld in PRS_PERSLIDWERKPLEK mag niet meer gebruikt worden
* ivm. MUTATING TABLE-error bij cascade verwijderen van PRS_PERSLID, enz. Dit heeft
* geen gevolgen voor deze tabel.
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* 20-01-97 AH #1163, Unique op PRS_PERSLIDWERKPLEK verplaatst naar PRS_UNI.SRC
* 06-01-97 AH PRS_PERSLID_NR wordt CHAR(16)
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* 28-10-96 AH PRS_BESTEK_DOCUMENTATIE aangepast nu VARCHAR2(255)
* --- 01.20 ---
* 13-09-96 KTH - PRS_SRTPERSLID is een NORMAAL_PRIVILEGE voor MLD
* - PRS_%BESTEK% worden NORMAAL_PRIVILEGE (ipv. BIBLIOTHEEK)
* --- 01.19 ---
* 13-08-96 AH PRS_BESTEK aangepast: PRS_BESTEK_DOCUMENTATIE toegevoegd.
* 31-07-96 AH PRS_DISCBESTEK_URENBESTEED toegevoegd.
* 31-07-96 AH PRS_BESTEK : Aanmaak en verwijder-velden weggehaald,
PRS_BESTEK_UPPER_NR-veld toegevoegd.
* PRS_DISCIPLINEBESTEK: Delete-cascade op PRS_BESTEK.
* PRS_LOCATIEBESTEK: Delete-cascade op PRS_BESTEK.
* 31-07-96 AH PRS_BESTEK_FILENAME toegevoegd.
* 30-07-96 AH PRS_BESTEK_MATERIAALBESTEED toegevoegd.
* 30-07-96 KTH - Commentaar in PRS_BESTEK verplaatst naar ACHTER de velden
* maar op DEZELFDE regel (anders lege regels tussendoor)
* - PRS_BEDRIJF vooraan geplaatst ivm. reference in PRS_PERSLID
* 29-07-96 KTH Tabellen PRS_BESTEK, PRS_LOCATIEBESTEK en
* PRS_DISCIPLINEBESTEK toegevoegd (vooralsnog alleen #ifdef INS)
* 26-07-96 RW prs_srtperslid uitgebreid met prs_bedrijf_key
* 24-07-96 KTH Tabel PRS_BEDRIJF uitgebreid met 3 kolommen:
* PRS_BEDRIJF_CONTRACT, _LEVERANCIER, _UITVOERENDE en veranderd
* naar NORMAAL_PRIVILEGE
* --- 01.18 ---
* --- 01.17 ---
* 20-06-96 AH UNIQUE in PRS_WERKPLEK ook op PRS_WERKPLEK_MODULE.
* 06-06-96 AH In tabel PRS_WERKPLEK veld PRS_WERKPLEK_MODULE toegevoegd.
* --- 01.16 ---
* --- 01.15 ---
* 28-05-96 EH UNIQUE Constraint in prs_perslidwerkplek gewijzigd.
* 24-05-96 EH Reference naar 'prs_afdeling_key' toegevoegd aan
* prs_perslidwerkplek.
* 22-05-96 AH PRS_BEDRIJF tabel aangemaakt.
* 21-05-96 EH Altering tabel alg_srtruimte uitgebreid met veld
* 'prs_verhuurbaar'
* 01-05-96 AH Privilege tabel PRS_SRTPERSLID aangepast.
* 26-04-96 AH Velden module en telefoonnr aan PRS_PERSLID toegevoegd.
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 01-04-96 KTH Gebruik CREATE_TABLE()
* 22-03-96 AH PRS_WERKPLEK_VOLGNR wordt een NUMBER(3).
* 21-03-96 AH INS_DEEL.PRS_WERKPLEK_KEY weer weggehaald.
* 18-03-96 AH Table PRS_PERSLID unique aangepast.
* 15-03-96 KTH ins_deel.prs_werkplek_key toegevoegd
* 13-03-96 AH NIEUWE OPZET SRC-files.
* 12-03-96 AH Tabel ALG_VERDIEPING wordt aangepast voor PRS_DWGUPTODATE.
* 12-03-96 AH Tabel ALG_SRTRUIMTE wordt gealtered voor BEVAT_WERKPLEK.
* 06-03-96 AH PRS_WERKPLEK_OPP-veld anders gedefinieerd en CHECK aangepast.
* 05-03-96 AH PRS_PERSLIDWERKPLEK aangepast, hier ook aanmaak- en verwijder-
* velden. Anders werkt DELETE CASCADE niet.
* 29-02-96 AH In PRS_AFDELING is PRS_AFDELING_CODE uniek.
* PRS_AFDELING_OMSCHRIJVING is niet meer uniek
* 28-02-96 KTH Updates voor 'grote' PRS
* 16-02-96 PF UNIQUE constraints ipv triggers
* 02-02-96 AH UNIQUE op prs_afdeling verplaatst naar trigger.
* 12-01-96 PF NULLDATUM
* 21-12-95 KTH prs_srtperslid_key in prs_perslid moet NOT NULL zijn
* 20-12-95 KTH prs_perslid_voornaam veranderd naar VARCHAR2(15)
* prs_perslid_nr veranderd naar VARCHAR2(15)
* 20-12-95 KTH Created
*/
CREATE_TABLE(prs_bedrijf,NORMAAL_PRIVILEGE)
(
prs_bedrijf_key
NUMBER(10)
CONSTRAINT prs_k_prs_bedrijf_key PRIMARY KEY,
prs_bedrijf_naam
VARCHAR2(30)
NOT_NULL(prs_bedrijf_naam, prs_c_prs_bedrijf_naam),
prs_bedrijf_naam_upper
VARCHAR2(30)
NOT_NULL(prs_bedrijf_naam_upper, prs_c_prs_bedrijf_naam_upper),
prs_bedrijf_post_adres
VARCHAR2(35),
prs_bedrijf_post_postcode
VARCHAR2(12),
prs_bedrijf_post_plaats
VARCHAR2(30),
prs_bedrijf_bezoek_adres
VARCHAR2(35),
prs_bedrijf_bezoek_postcode
VARCHAR2(12),
prs_bedrijf_bezoek_plaats
VARCHAR2(30),
prs_bedrijf_telefoon
VARCHAR2(20),
prs_bedrijf_fax
VARCHAR2(20),
prs_bedrijf_contact_persoon
VARCHAR2(30),
prs_bedrijf_contact_telefoon
VARCHAR2(20),
prs_bedrijf_contact_fax
VARCHAR2(20),
prs_bedrijf_opmerking
VARCHAR2(320),
prs_bedrijf_uurloon
NUMBER(6,2),
prs_leverancier_nr
VARCHAR2(6),
prs_overeenkomst_nr
VARCHAR2(10),
prs_overeenkomst_datum
DATE,
prs_bedrijf_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(prs_bedrijf_aanmaak, prs_c_prs_bedrijf_aanmaak),
prs_bedrijf_verwijder
DATE
DEFAULT NULLDATUM,
prs_bedrijf_leverancier /* bedrijf is leverancier (o.a. voor LEV) */
NUMBER(1)
CONSTRAINT prs_c_prs_bedrijf_leverancier CHECK(prs_bedrijf_leverancier IS NULL
OR prs_bedrijf_leverancier = 1 ),
prs_bedrijf_uitvoerende /* bedrijf is uitvoerende in opdrachten */
NUMBER(1)
DEFAULT 1 /* LOG#1691 */
CONSTRAINT prs_c_prs_bedrijf_uitvoerende CHECK(prs_bedrijf_uitvoerende IS NULL
OR prs_bedrijf_uitvoerende = 1 ),
prs_bedrijf_contract /* een contract kan worden afgesloten met bedrijf */
NUMBER(1)
CONSTRAINT prs_c_prs_bedrijf_contract CHECK(prs_bedrijf_contract IS NULL
OR prs_bedrijf_contract = 1 ),
CONSTRAINT prs_u_prs_bedrijf_naam_upper UNIQUE(prs_bedrijf_naam_upper, prs_bedrijf_verwijder)
);
/*
* prs_afdeling
* prs_afdeling_key
* prs_afdeling_parentkey
* NULL betekent er is geen hogere afdeling
* prs_afdeling_code
* not null
* prs_afdeling_omschrijving
* prs_afdeling_upper
* prs_afdeling_aanmaak
* default systeemdatum
* prs_afdeling_verwijder
* default NULL
*/
CREATE_TABLE(prs_afdeling,NORMAAL_PRIVILEGE)
(
prs_afdeling_key
NUMBER(10)
CONSTRAINT prs_k_prs_afdeling_key PRIMARY KEY,
prs_afdeling_parentkey
NUMBER(10)
CONSTRAINT prs_r_prs_afdeling_parentkey REFERENCES prs_afdeling(prs_afdeling_key),
prs_afdeling_naam
VARCHAR2(8)
NOT_NULL(prs_afdeling_naam, prs_c_prs_afdeling_naam),
prs_afdeling_upper
VARCHAR2(8)
NOT_NULL(prs_afdeling_upper, prs_c_prs_afdeling_upper),
prs_afdeling_omschrijving
VARCHAR2(30),
prs_afdeling_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(prs_afdeling_aanmaak, prs_c_prs_afdeling_aanmaak),
prs_afdeling_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT prs_u_prs_afdeling_upper UNIQUE(prs_afdeling_upper, prs_afdeling_verwijder)
);
/*
* prs_srtperslid
* prs_srtperslid_key
* prs_srtperslid_omschrijving
* prs_srtperslid_upper
* is prs_srtperslid_omschrijving in uppercase
* prs_srtperslid_opp
* prs_bedrijf_key (niet verplicht)
* prs_perslid_uurloon
* prs_srtperslid_aanmaak
* default systeemdatum
* prs_srtperslid_verwijder
* default NULL
*/
/* 13-09-96/KTH
* Voor MLD is een functie een registratiescherm, anders niet (bibliotheek)
*/
#ifdef MLD
CREATE_TABLE(prs_srtperslid,NORMAAL_PRIVILEGE)
#else
CREATE_TABLE(prs_srtperslid,BIBLIOTHEEK_PRIVILEGE)
#endif
(
prs_srtperslid_key
NUMBER(10)
CONSTRAINT prs_k_prs_srtperslid_key PRIMARY KEY,
prs_srtperslid_omschrijving
VARCHAR2(30)
NOT_NULL(prs_srtperslid_omschrijving, prs_c_prs_srtperslid_omschr),
prs_srtperslid_upper
VARCHAR2(30)
NOT_NULL(prs_srtperslid_upper, prs_c_prs_srtperslid_upper),
prs_bedrijf_key
NUMBER(10)
CONSTRAINT prs_r_prs_bedrijf_key REFERENCES prs_bedrijf(prs_bedrijf_key),
prs_srtperslid_uurloon
NUMBER(6,2),
prs_srtperslid_opp
NUMBER(9,2)
CONSTRAINT prs_c_prs_srtperslid_opp CHECK(prs_srtperslid_opp >= 0),
prs_srtperslid_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(prs_srtperslid_aanmaak, prs_c_prs_srtperslid_aanmaak),
prs_srtperslid_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT prs_u_prs_srtperslid_upper UNIQUE(prs_srtperslid_upper, prs_srtperslid_verwijder)
);
/*
* prs_werkplek
* prs_werkplek_key
* prs_werkplek_module
* 'PRR' of 'HUI'
* prs_werkplek_omschrijving
* prs_werkplek_volgnr
* kan worden opgenomen in multi record blok ipv. omschrijving
* en moet uniek zijn voor de betreffende ruimte
* prs_werkplek_vastopp
* prs_werkplek_opp
* prs_werkplek_aanmaak
* default systeemdatum
* prs_werkplek_verwijder
* default NULL
*/
CREATE_TABLE(prs_werkplek,NORMAAL_PRIVILEGE)
(
prs_werkplek_key
NUMBER(10)
CONSTRAINT prs_k_prs_werkplek_key PRIMARY KEY,
prs_werkplek_module
VARCHAR2(3)
NOT_NULL(prs_werkplek_module, prs_c_prs_werkplek_module),
prs_werkplek_volgnr
NUMBER(3)
NOT_NULL(prs_werkplek_volgnr, prs_c_prs_werkplek_volgnr),
prs_werkplek_omschrijving
VARCHAR2(30),
prs_werkplek_vastopp
NUMBER(1)
CONSTRAINT prs_c_prs_werkplek_vastopp CHECK(prs_werkplek_vastopp IS NULL
OR prs_werkplek_vastopp = 1),
prs_werkplek_opp
NUMBER(8,2)
CONSTRAINT prs_c_prs_werkplek_opp CHECK(prs_werkplek_opp >= 0
OR prs_werkplek_opp IS NULL),
prs_alg_ruimte_key
NUMBER(10)
NOT_NULL(prs_alg_ruimte_key, prs_r_prs_alg_ruimte_key1)
CONSTRAINT prs_r_prs_alg_ruimte_key2 REFERENCES alg_ruimte(alg_ruimte_key),
prs_werkplek_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(prs_werkplek_aanmaak, prs_c_prs_werkplek_aanmaak),
prs_werkplek_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT prs_u_prs_werkplek_volgnr UNIQUE(prs_alg_ruimte_key, prs_werkplek_volgnr, prs_werkplek_module, prs_werkplek_verwijder)
);
/*
* prs_perslid
* prs_perslid_key
* prs_srtperslid_key
* NULL betekent prs_perslid heeft geen prs_srtperslid
* prs_afdeling_key
* NULL betekent prs_perslid heeft geen prs_afdeling
* prs_perslid_naam
* achternaam
* prs_perslid_upper
* prs_perslid_naam in uppercase
* prs_perslid_voorletters
* prs_perslid_voornaam
* niet verplicht
* prs_perslid_titel
* 'Prof.Dr.Ir' of iets dergelijks, mag ook leeg zijn
* prs_perslid_nr
* personeelsnummer (moet uniek zijn)
* prs_perslid_dienstverband
* prs_perslid_opp
* prs_perslid_ingangsdatum
* prs_perslid_einddatum
* prs_perslid_uurloon
* uurloon, mag leeg zijn (oa. voor BCO)
* prs_perslid_aanmaak
* default systeemdatum
* prs_perslid_verwijder
* default NULL
* UNIEK is prs_perslid_nr die aanwezig is. Omdat prs_perslid_nr
* leeg mag zijn.
*/
CREATE_TABLE(prs_perslid,NORMAAL_PRIVILEGE)
(
prs_perslid_key
NUMBER(10)
CONSTRAINT prs_k_prs_perslid_key PRIMARY KEY,
prs_perslid_module
VARCHAR2(3)
NOT_NULL(prs_perslid_module, prs_c_prs_perslid_module),
prs_srtperslid_key
NUMBER(10)
NOT_NULL(prs_srtperslid_key, prs_r_prs_srtperslid_key1)
CONSTRAINT prs_r_prs_srtperslid_key2 REFERENCES prs_srtperslid(prs_srtperslid_key),
prs_afdeling_key
NUMBER(10)
CONSTRAINT prs_r_prs_afdeling_key REFERENCES prs_afdeling(prs_afdeling_key),
prs_perslid_naam
VARCHAR2(30)
NOT_NULL(prs_perslid_naam, prs_c_prs_perslid_naam),
prs_perslid_upper
VARCHAR2(30)
NOT_NULL(prs_perslid_upper, prs_c_prs_perslid_upper),
prs_perslid_voorletters
VARCHAR2(10),
prs_perslid_voornaam
VARCHAR2(30),
prs_perslid_titel
VARCHAR2(15),
prs_perslid_nr
VARCHAR2(16),
prs_perslid_dienstverband
NUMBER(3)
DEFAULT 100
CONSTRAINT prs_c_prs_perslid_dienstverb CHECK(prs_perslid_dienstverband BETWEEN 0 AND 100),
prs_perslid_opp
NUMBER(9,2)
CONSTRAINT prs_c_prs_perslid_opp CHECK(prs_perslid_opp >= 0),
prs_perslid_ingangsdatum
DATE
DEFAULT SYSDATE
NOT_NULL(prs_perslid_ingangsdatum, prs_c_prs_perslid_ingangsdatum),
prs_perslid_einddatum
DATE,
prs_perslid_uurloon
NUMBER(6,2)
CONSTRAINT prs_c_prs_perslid_uurloon CHECK(NVL(prs_perslid_uurloon, 0) >= 0),
prs_perslid_telefoonnr
VARCHAR2(15),
prs_perslid_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(prs_perslid_aanmaak, prs_c_prs_perslid_aanmaak),
prs_perslid_verwijder
DATE
DEFAULT NULLDATUM,
#ifdef AKZ
akz_companycode
NUMBER(6),
akz_kostenplaats
NUMBER(5),
#endif // AKZ
CONSTRAINT prs_u_prs_perslid_nr UNIQUE(prs_perslid_nr, prs_perslid_verwijder),
CONSTRAINT prs_c_prs_perslid_datums CHECK(prs_perslid_einddatum >= prs_perslid_ingangsdatum)
);
/*
* prs_perslidwerkplek
* prs_perslidwerkplek_key
* prs_perslid_key
* prs_werkplek_key
* prs_perslidwerkplek_bezetting
* bezettingsgraad (percentage in range 0-100)
*
* 10-7-97 AH #1365, PRS_PERSLIDWERKPLEK_VERWIJDER-velden weggehaald.
* 5/26/97 AH #1255, Het VERWIJDER-veld in PRS_PERSLIDWERKPLEK mag niet meer gebruikt worden
* ivm. MUTATING TABLE-error bij cascade verwijderen van PRS_PERSLID, enz. Dit heeft
* geen gevolgen voor deze tabel.
*/
CREATE_TABLE(prs_perslidwerkplek,NORMAAL_PRIVILEGE)
(
prs_perslidwerkplek_key
NUMBER(10)
CONSTRAINT prs_k_prs_perslidwerkplek_key PRIMARY KEY,
prs_perslid_key
NUMBER(10)
CONSTRAINT prs_r_prs_perslid_key REFERENCES prs_perslid(prs_perslid_key),
prs_afdeling_key
NUMBER(10)
CONSTRAINT prs_r_prs_pw_afdeling_key REFERENCES prs_afdeling(prs_afdeling_key),
prs_werkplek_key
NUMBER(10)
CONSTRAINT prs_r_prs_werkplek_key REFERENCES prs_werkplek(prs_werkplek_key),
prs_perslidwerkplek_bezetting
NUMBER(3)
DEFAULT 100
NOT_NULL(prs_perslidwerkplek_bezetting, prs_c_prs_perslidwp_bezetting1)
CONSTRAINT prs_c_prs_perslidwp_bezetting2 CHECK(prs_perslidwerkplek_bezetting BETWEEN 0 AND 100),
CONSTRAINT prs_c_prs_perslidwp_koppeling CHECK(
(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)
)
);
ALTER TABLE alg_srtruimte
ADD
(
prs_bevat_werkplek
NUMBER(1)
CONSTRAINT alg_c_prs_bevat_werkplek CHECK(prs_bevat_werkplek IS NULL
OR prs_bevat_werkplek = 1 ),
prs_verhuurbaar
NUMBER(1)
CONSTRAINT alg_c_prs_verhuurbaar CHECK(prs_verhuurbaar IS NULL
OR prs_verhuurbaar = 1 ),
CONSTRAINT alg_c_prs_werkplek_verhuurbaar CHECK(NOT(prs_bevat_werkplek = 1
AND prs_verhuurbaar IS NULL))
);
ALTER TABLE alg_verdieping
ADD
(
prs_dwguptodate
DATE
DEFAULT NULL
);
#if 0
ALTER TABLE ins_deel
ADD
(
prs_werkplek_key
NUMBER(10)
);
#endif
/*
* 29-07-96/KTH
* De tabellen PRS_%BESTEK% zijn opgenomen in PRS omdat het waarschijnlijk
* is dat de gegevens in de toekomst geshared moeten gaan worden met andere
* modules. Evt. hadden ze ook kunnen staan INS of BCO.
*
* Deze tabellen zijn vooralsnog alleen nodig wanneer INS bestaat.
*/
#ifdef INS
CREATE_TABLE(prs_bestek,NORMAAL_PRIVILEGE)
(
prs_bestek_key
NUMBER(10)
CONSTRAINT prs_k_prs_bestek_key PRIMARY KEY,
prs_bestek_nr
VARCHAR2(20)
NOT_NULL(prs_bestek_nr, prs_c_prs_bestek_nr),
prs_bestek_upper_nr
VARCHAR2(20)
NOT_NULL(prs_bestek_upper_nr, prs_c_prs_bestek_upper_nr),
prs_bestek_omschrijving /* pre_bestek_omschrijving is niet verplicht */
VARCHAR2(30)
NOT_NULL(prs_bestek_omschrijving, prs_c_prs_bestek_omschrijving),
prs_bedrijf_key /* het bedrijf waarmee het bestek is overeengekomen */
NUMBER(10)
NOT_NULL(prs_bedrijf_key, prs_r_prs_bedrijf_key1)
CONSTRAINT prs_r_prs_bedrijf_key2 REFERENCES prs_bedrijf(prs_bedrijf_key),
prs_bestek_materiaalpost /* de materiaalkosten over het hele bestek, */
NUMBER(9,2) /* ongeacht discipline */
NOT_NULL(prs_bestek_materiaalpost, prs_c_prs_bestek_materiaalp1)
CONSTRAINT prs_c_prs_bestek_materiaalp2 CHECK(prs_bestek_materiaalpost >= 0),
prs_bestek_materiaalbesteed /* de bestede materiaalkosten over het hele bestek, */
NUMBER(9,2), /* ongeacht discipline */
prs_bestek_begindatum /* de ingangsdatum van het bestek */
DATE
DEFAULT SYSDATE
NOT_NULL(prs_bestek_begindatum, prs_c_prs_bestek_begindatum),
prs_bestek_einddatum /* de einddatum van het bestek */
DATE
NOT_NULL(prs_bestek_einddatum, prs_c_prs_bestek_einddatum),
prs_bestek_documentatie
VARCHAR2(255),
CONSTRAINT prs_c_prs_bestek_datums CHECK(prs_bestek_begindatum <= prs_bestek_einddatum), /* kan 1 dag zijn */
CONSTRAINT prs_u_prs_bestek_upper_nr UNIQUE(prs_bestek_upper_nr)
);
CREATE_TABLE(prs_disciplinebestek,NORMAAL_PRIVILEGE)
(
prs_disciplinebestek_key
NUMBER(10)
CONSTRAINT prs_k_prs_disciplinebestek_key PRIMARY KEY,
prs_bestek_key
NUMBER(10)
NOT_NULL(prs_bestek_key, prs_r_prs_bestek_key1)
CONSTRAINT prs_r_prs_bestek_key2 REFERENCES prs_bestek(prs_bestek_key) ON DELETE CASCADE,
ins_discipline_key
NUMBER(10)
NOT_NULL(ins_discipline_key, prs_r_ins_discipline_key1)
CONSTRAINT prs_r_ins_discipline_key2 REFERENCES ins_tab_discipline,
prs_disciplinebestek_uurprijs
NUMBER(6,2)
NOT_NULL(prs_disciplinebestek_uurprijs, prs_c_prs_discbestek_uurprijs1)
CONSTRAINT prs_c_prs_discbestek_uurprijs2 CHECK (prs_disciplinebestek_uurprijs >= 0),
prs_disciplinebestek_uren
NUMBER(7,2)
NOT_NULL(prs_disciplinebestek_uren, prs_c_prs_discbestek_uren1)
CONSTRAINT prs_c_prs_discbestek_uren2 CHECK (prs_disciplinebestek_uren >= 0),
prs_discbestek_urenbesteed
NUMBER(7,2),
CONSTRAINT prs_u_prs_disciplinebestek_key UNIQUE(prs_bestek_key, ins_discipline_key)
);
CREATE_TABLE(prs_locatiebestek,NORMAAL_PRIVILEGE)
(
prs_locatiebestek_key
NUMBER(10)
CONSTRAINT prs_k_prs_locatiebestek_key PRIMARY KEY,
prs_bestek_key
NUMBER(10)
NOT_NULL(prs_bestek_key, prs_r_locatiebestek_key1)
CONSTRAINT prs_r_prs_locatiebestek_key2 REFERENCES prs_bestek(prs_bestek_key) ON DELETE CASCADE,
alg_locatie_key
NUMBER(10)
NOT_NULL(alg_locatie_key, prs_r_alg_locatie_key1)
CONSTRAINT prs_r_alg_locatie_key2 REFERENCES alg_locatie,
CONSTRAINT prs_u_prs_locatiebestek_key UNIQUE(prs_bestek_key, alg_locatie_key)
);
#endif // INS
#ifdef AKZ
CREATE_TABLE(akz_prsimport, BIBLIOTHEEK_PRIVILEGE)
(
akz_prsimport_key /* interne sleutel */
NUMBER(10)
CONSTRAINT prs_k_akz_prsimport_key PRIMARY KEY,
akz_prsimport_nr /* registratie nummer */
VARCHAR2(7),
akz_prsimport_naam /* achternaam */
VARCHAR2(29),
akz_prsimport_gebouwcode
VARCHAR2(3),
akz_prsimport_verdiepingruimte /* verdieping en ruimte */
VARCHAR2(7),
akz_prsimport_telefoonnr
NUMBER(4),
akz_prsimport_afdelingcode /* PRS_AFDELING_NAAM */
VARCHAR2(10),
akz_prsimport_accountunit /* externe referentie */
VARCHAR2(2),
akz_prsimport_kostenafdeling /* externe referentie */
VARCHAR2(3)
);
#endif // AKZ
/* Log #1771 : Veldlengte afdelingsnaam + bijbehorende veld upper vergroot naar 10 posities */
ALTER TABLE prs_afdeling
MODIFY
(
prs_afdeling_naam
VARCHAR2(10),
prs_afdeling_upper
VARCHAR2(10)
);
#endif // PRS

1124
PRS/PRS_TRI.SRC Normal file

File diff suppressed because it is too large Load Diff

0
SCH/.gitignore vendored
View File

48
SCH/SCH_IND.SRC Normal file
View File

@@ -0,0 +1,48 @@
#ifdef SCH
/*
* History
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* 10-7-97 AH #1364, Index op SCH_NIVO_OG(SCH_ALG_OG_KEY) is al gedefinieerd via de UNIQUE erop.
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* --- 01.14 ---
* 01-04-96 RW Created
*/
CREATE INDEX sch_i_sch_nivo_og_1 ON sch_nivo_og(sch_nivo_key);
//CREATE INDEX sch_i_sch_nivo_og_2 ON sch_nivo_og(sch_alg_og_key);
CREATE INDEX sch_i_sch_werkzaamheden_1 ON sch_werkzaamheden(sch_nivo_key);
CREATE INDEX sch_i_sch_werkzaamheden_2 ON sch_werkzaamheden(sch_alg_srtruimte_key);
CREATE INDEX sch_i_sch_werkzaamheden_3 ON sch_werkzaamheden(sch_activiteit_key);
CREATE INDEX sch_i_sch_werkzaamheden_4 ON sch_werkzaamheden(sch_srtvloer_key);
CREATE INDEX sch_i_sch_werkzaamheden_5 ON sch_werkzaamheden(sch_frequentie_key);
CREATE INDEX sch_i_alg_ruimte_1 ON alg_ruimte(sch_srtvloer_key);
#endif // SCH

61
SCH/SCH_INI.SRC Normal file
View File

@@ -0,0 +1,61 @@
#ifdef SCH // 19-04-96 KTH
/*
* SCH tables for Facilitor: installation time population
*/
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* 20-05-98 KTH Gebruik macro _FAC_MODULE
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* 20-08-97 KTH LOG#1433: Vloersoorten cf CONTOUR.INI van Dijkoraad/RB
* --- 01.31 ---
* 31-07-97 AH Initiele waardes voor SCH_SRTVLOER toegevoegd
* --- 01.30 ---
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* 19-04-96 KTH Commentaarblok en #ifdef toegevoegd, versie=01.14 gezet
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 21-03-96 RW Creation
*/
_FAC_MODULE('SCH','Schoonmaak')
#ifdef DATA
/* 970820/KTH LOG#1433 Vloersoorten cf CONTOUR.INI van Dijkoraad/RB */
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Beton');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Computervloer');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Linoleum');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Natuursteen');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Parket');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Siergrind');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Tapijt');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Vloertegels, glad');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Vloertegels, ruw');
COMMIT;
#endif // DATA
#endif // SCH

88
SCH/SCH_PAC.SRC Normal file
View File

@@ -0,0 +1,88 @@
#ifdef SCH
/* SCH_PAC.SRC
*
* Revisie:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* 01-07-97 AH Aangemaakt
*/
CREATE OR REPLACE FUNCTION SCH_P_SCH_BepaalFrequentieCode( SrtRuimteKey IN NUMBER, SrtVloerKey IN NUMBER,
ActiviteitKey IN NUMBER, NivoKey IN NUMBER) RETURN VARCHAR2 IS
FrequentieCode sch_frequentie.sch_frequentie_code%TYPE;
BEGIN
FrequentieCode := NULL;
IF FrequentieCode IS NULL
THEN
BEGIN
SELECT SCH_F.sch_frequentie_code
INTO FrequentieCode
FROM sch_frequentie SCH_F, sch_werkzaamheden SCH_W
WHERE SCH_F.sch_frequentie_key = SCH_W.sch_frequentie_key
AND SCH_W.sch_alg_srtruimte_key = SrtRuimteKey
AND SCH_W.sch_srtvloer_key = SrtVloerKey
AND SCH_W.sch_activiteit_key = ActiviteitKey
AND SCH_W.sch_nivo_key = NivoKey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN FrequentieCode := NULL;
WHEN TOO_MANY_ROWS
THEN FrequentieCode := NULL;
END;
END IF;
IF FrequentieCode IS NULL
THEN
BEGIN
SELECT SCH_F.sch_frequentie_code
INTO FrequentieCode
FROM sch_frequentie SCH_F, sch_werkzaamheden SCH_W
WHERE SCH_F.sch_frequentie_key = SCH_W.sch_frequentie_key
AND SCH_W.sch_alg_srtruimte_key = SrtRuimteKey
AND SCH_W.sch_srtvloer_key IS NULL
AND SCH_W.sch_activiteit_key = ActiviteitKey
AND SCH_W.sch_nivo_key = NivoKey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN FrequentieCode := NULL;
WHEN TOO_MANY_ROWS
THEN FrequentieCode := NULL;
END;
END IF;
IF FrequentieCode IS NULL
THEN
BEGIN
SELECT SCH_F.sch_frequentie_code
INTO FrequentieCode
FROM sch_frequentie SCH_F, sch_werkzaamheden SCH_W
WHERE SCH_F.sch_frequentie_key = SCH_W.sch_frequentie_key
AND SCH_W.sch_alg_srtruimte_key IS NULL
AND SCH_W.sch_srtvloer_key = SrtVloerKey
AND SCH_W.sch_activiteit_key = ActiviteitKey
AND SCH_W.sch_nivo_key = NivoKey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN FrequentieCode := NULL;
WHEN TOO_MANY_ROWS
THEN FrequentieCode := NULL;
END;
END IF;
IF FrequentieCode IS NULL
THEN
FrequentieCode := '-';
END IF;
RETURN FrequentieCode;
END;
/
#endif // SCH

45
SCH/SCH_SEQ.SRC Normal file
View File

@@ -0,0 +1,45 @@
#ifdef SCH //21-03-96 RW
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* 6/26/97 AH #1326, Nieuwe SCH-functionaliteit toegevoegd volgens SCH_FO.TXT
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 21-03-96 RW Creation
*/
CREATE SEQUENCE sch_s_sch_nivo_key MINVALUE 1;
CREATE SEQUENCE sch_s_sch_activiteit_key MINVALUE 1;
CREATE SEQUENCE sch_s_sch_werkzaamheden_key MINVALUE 1;
CREATE SEQUENCE sch_s_sch_frequentie_key MINVALUE 1;
CREATE SEQUENCE sch_s_sch_srtvloer_key MINVALUE 1;
#endif // SCH

191
SCH/SCH_TAB.SRC Normal file
View File

@@ -0,0 +1,191 @@
#ifdef SCH //21-03-96 RW
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* 20/11/1997 AH Extra constraint in SCH_WERKZAAMHEDEN toegevoegd. SCH_SRTVLOER_KEY of
* SCH_ALG_SRTRUIMTE_KEY moet ingevuld zijn.
* 12/11/1997 AH #1473, constraintnamen toegevoegd
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* 22-07-97 AH #1401: Grootte SCH_FREQUENTIE_CODE aangepast
* --- 01.30 ---
* 14-07-97 KTH #1396: Bibliotheek-privilege voor diverse tabellen
* 14-07-97 KTH Bij table-definities inspringen bij column-definities
* 6/26/97 AH #1326, Nieuwe SCH-functionaliteit toegevoegd volgens SCH_FO.TXT
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* 27-06-96 EH IN sch_nivo_og PRIMARY_KEY Constraint verwijderd.
* --- 01.18 ---
* --- 01.17 ---
* 26-06-96 EH In sch_werkzaamheden voor alg_srtruimte_key een NOT NULL in-
* gevoerd.
* --- 01.16 ---
* --- 01.15 ---
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 21-03-96 RW Creation
*/
#include "comsql.h"
/* Nivo van schoonmaken, bv Minimaal, Maximaal, uitgebreid, beperkt. */
/* 14-07-97/KTH LOG#1396: BIBLIOTHEEK_PRIVILEGE ipv NORMAAL_PRIVILEGE */
CREATE_TABLE(sch_nivo,BIBLIOTHEEK_PRIVILEGE)
(
sch_nivo_key
NUMBER(10)
CONSTRAINT sch_k_sch_nivo_key PRIMARY KEY,
sch_nivo_omschrijving
VARCHAR2(30)
NOT_NULL(sch_nivo_omschrijving, sch_c_sch_nivo_omschrijving),
sch_nivo_upper
VARCHAR2(30)
NOT_NULL(sch_nivo_upper, sch_c_sch_nivo_upper)
CONSTRAINT sch_u_sch_nivo_upper UNIQUE
);
/* Schoonmaakactiviteiten, bv Stofzuigen, Asbakken legen.*/
/* 14-07-97/KTH LOG#1396: BIBLIOTHEEK_PRIVILEGE ipv NORMAAL_PRIVILEGE */
CREATE_TABLE(sch_activiteit,BIBLIOTHEEK_PRIVILEGE)
(
sch_activiteit_key
NUMBER(10)
CONSTRAINT sch_k_sch_activiteit_key PRIMARY KEY,
sch_activiteit_prijsprofiel /* 1 = prijsbepaling gaat per vierkante meter */
NUMBER(1) /* 2 = prijsbepaling gaat per stuk */
CONSTRAINT sch_c_sch_activiteit_prijs CHECK(sch_activiteit_prijsprofiel = 1 OR
sch_activiteit_prijsprofiel = 2),
sch_activiteit_code
VARCHAR2(10)
NOT_NULL(sch_activiteit_code, sch_c_sch_activiteit_code)
CONSTRAINT sch_u_sch_activiteit_code UNIQUE,
sch_activiteit_omschrijving
VARCHAR2(512)
NOT_NULL(sch_activiteit_omschrijving, sch_c_sch_activiteit_omschr),
sch_activiteit_volgnr /* Volgorde waarin de activiteit getoond wordt */
NUMBER(3) /* Hoeft niet ingevuld te zijn */
);
CREATE_TABLE(sch_nivo_og,NORMAAL_PRIVILEGE)
(
sch_alg_og_key
NUMBER(10)
NOT_NULL(sch_alg_og_key, sch_c_sch_alg_og_key)
CONSTRAINT sch_u_sch_nivo_og_key UNIQUE,
sch_nivo_key
NUMBER(10)
NOT_NULL(sch_nivo_key, sch_r_sch_nivo_key1)
CONSTRAINT sch_r_sch_nivo_key2 REFERENCES sch_nivo(sch_nivo_key),
sch_nivo_og_correctiefactor
NUMBER(4,1)
DEFAULT 100,
CONSTRAINT sch_c_sch_nivo_og_correctie CHECK (sch_nivo_og_correctiefactor >=0 )
);
/* frequentie voor de werkzaamheden, bv. 4W 4 maal per week.*/
/* 14-07-97/KTH LOG#1396: BIBLIOTHEEK_PRIVILEGE ipv NORMAAL_PRIVILEGE */
CREATE_TABLE(sch_frequentie,BIBLIOTHEEK_PRIVILEGE)
(
sch_frequentie_key
NUMBER(10)
CONSTRAINT sch_k_sch_frequentie_key PRIMARY KEY,
sch_frequentie_code
VARCHAR2(3)
NOT_NULL(sch_frequentie_code, sch_c_sch_frequentie_code)
CONSTRAINT sch_u_sch_frequentie_code UNIQUE,
sch_frequentie_omschrijving
VARCHAR2(30)
NOT_NULL(sch_frequentie_omschrijving, sch_c_sch_frequentie_omschr)
);
/* Vloerafwerking, bn. Steen of Tapijt.*/
/* 14-07-97/KTH LOG#1396: BIBLIOTHEEK_PRIVILEGE ipv NORMAAL_PRIVILEGE */
CREATE_TABLE(sch_srtvloer,BIBLIOTHEEK_PRIVILEGE)
(
sch_srtvloer_key
NUMBER(10)
CONSTRAINT sch_k_sch_srtvloer_key PRIMARY KEY,
sch_srtvloer_omschrijving
VARCHAR2(30)
NOT_NULL(sch_srtvloer_omschrijving, sch_c_sch_srtvloer_omschr),
sch_srtvloer_upper
VARCHAR2(30)
NOT_NULL(sch_srtvloer_upper, sch_c_sch_srtvloer_upper),
sch_srtvloer_aanmaak
DATE
DEFAULT SYSDATE,
sch_srtvloer_verwijder
DATE
DEFAULT NULL,
CONSTRAINT sch_u_sch_srtvloer_upper UNIQUE(sch_srtvloer_upper, sch_srtvloer_verwijder)
);
/* werkzaamheden (bv. stofzuigen), voor een ruimtesoort, nivo en activiteit */
/* 14-07-97/KTH LOG#1396: BIBLIOTHEEK_PRIVILEGE ipv NORMAAL_PRIVILEGE */
CREATE_TABLE(sch_werkzaamheden,BIBLIOTHEEK_PRIVILEGE)
(
sch_werkzaamheden_key
NUMBER(10)
CONSTRAINT sch_k_sch_werkzaamheden_key PRIMARY KEY,
sch_nivo_key
NUMBER(10)
CONSTRAINT sch_r_werkz_nivo_key1 REFERENCES sch_nivo(sch_nivo_key)
NOT_NULL(sch_nivo_key, sch_r_werkz_nivo_key2),
sch_alg_srtruimte_key
NUMBER(10)
CONSTRAINT sch_r_sch_alg_srtruimte_key1 REFERENCES alg_srtruimte(alg_srtruimte_key),
sch_activiteit_key
NUMBER(10)
CONSTRAINT sch_r_sch_activiteit_key1 REFERENCES sch_activiteit(sch_activiteit_key)
NOT_NULL(sch_activiteit_key, sch_r_sch_activiteit_key2),
sch_werkzaamheden_kosten
NUMBER(8,2),
// AH, deze velden zijn overbodig vanaf versie 1.30, ze komen uit nu SCH_ACTIVITEIT
// sch_werkzaamheden_prijsprofiel /* 1 = prijsbepaling gaat per vierkante meter */
// NUMBER(1), /* 2 = prijsbepaling gaat per stuk */
// sch_werkzaamheden_omschrijving
// VARCHAR2(30)
// NOT NULL,
// sch_werkzaamheden_upper
// VARCHAR2(30)
// NOT NULL,
sch_frequentie_key
NUMBER(10)
CONSTRAINT sch_r_sch_frequentie_key1 REFERENCES sch_frequentie(sch_frequentie_key)
NOT_NULL(sch_frequentie_key, sch_r_sch_frequentie_key2),
sch_srtvloer_key /* mag null zijn. */
NUMBER(10)
CONSTRAINT sch_r_sch_srtvloer_key REFERENCES sch_srtvloer(sch_srtvloer_key),
CONSTRAINT sch_c_sch_srtruimte_srtvloer CHECK(sch_alg_srtruimte_key IS NOT NULL OR
sch_srtvloer_key IS NOT NULL),
CONSTRAINT sch_u_sch_werkzaamheden_unique
UNIQUE(sch_nivo_key, sch_alg_srtruimte_key, sch_srtvloer_key, sch_activiteit_key)
);
ALTER TABLE alg_ruimte
ADD
(
sch_srtvloer_key
NUMBER(10)
CONSTRAINT alg_r_sch_srtvloer_key REFERENCES sch_srtvloer(sch_srtvloer_key)
);
#endif // SCH

90
SCH/SCH_TRI.SRC Normal file
View File

@@ -0,0 +1,90 @@
#ifdef SCH //21-03-96 RW
#include "comsql.h"
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* 13/11/1997 AH #1473, CREATE TRIGGER vervangen door CREATE_TRIGGER()
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* --- 01.30 ---
* 6/26/97 AH #1326, Nieuwe functionaliteit toegevoegd volgens SCH_FO.TXT
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 21-03-96 RW Creation
*/
CREATE_TRIGGER(sch_t_sch_nivo_b_iu)
BEFORE INSERT OR UPDATE ON sch_nivo
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(sch_nivo_key, sch_s_sch_nivo_key);
UPDATE_UPPER(sch_nivo_omschrijving, sch_nivo_upper);
END;
/
CREATE_TRIGGER(sch_t_sch_activiteit_b_iu)
BEFORE INSERT OR UPDATE ON sch_activiteit
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(sch_activiteit_key, sch_s_sch_activiteit_key);
UPDATE_UPPER(sch_activiteit_code, sch_activiteit_code);
END;
/
CREATE_TRIGGER(sch_t_sch_werkzaamheden_b_iu)
BEFORE INSERT OR UPDATE ON sch_werkzaamheden
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(sch_werkzaamheden_key, sch_s_sch_werkzaamheden_key);
END;
/
CREATE_TRIGGER(sch_t_sch_frequentie_b_iu)
BEFORE INSERT OR UPDATE ON sch_frequentie
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(sch_frequentie_key, sch_s_sch_frequentie_key);
UPDATE_UPPER(sch_frequentie_code, sch_frequentie_code);
END;
/
CREATE_TRIGGER(sch_t_sch_srtvloer_b_iu)
BEFORE INSERT OR UPDATE ON sch_srtvloer
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(sch_srtvloer_key, sch_s_sch_srtvloer_key);
UPDATE_UPPER(sch_srtvloer_omschrijving, sch_srtvloer_upper);
CHECK_NOG_REFERENCES(sch_srtvloer, sch_srtvloer_verwijder, alg_v_aanwezigruimte,
sch_srtvloer_key, 'sch_m027');
CHECK_NOG_REFERENCES(sch_srtvloer, sch_srtvloer_verwijder, sch_werkzaamheden,
sch_srtvloer_key, 'sch_m029');
END;
/
#endif // SCH

290
SCH/SCH_VIE.SRC Normal file
View File

@@ -0,0 +1,290 @@
#ifdef SCH
/* REVISIONS:
*
* --- 01.40 ---
* --- 01.39 ---
* --- 01.38 ---
* --- 01.37 ---
* --- 01.36 ---
* --- 01.35 ---
* --- 01.34 ---
* --- 01.33 ---
* --- 01.32 ---
* --- 01.31 ---
* 23-07-97 AH #1405, SCH_V_WERKZAAMHEDEN_GEGEVENS aangepast, sch_activiteit_volgnr toegevoegd
* --- 01.30 ---
* 11-07-97 AH #1392, SCH_V_PROGRAMMA aangepast.Als er ruimtes zijn zonder srtvloer, srtruimte
* oid. dan moeten deze toch in het programma-overzicht (SCH213) komen te staan.
* 11-07-97 AH #1390, IN _SHC_V_NIVO_GEGEVENS hoeft de UNION met Gebouw niet te worden
* gedaan.
* 6/26/97 AH #1326, Nieuwe SCH-functionaliteit toegevoegd volgens SCH_FO.TXT
* SCH_V_WERKZAAMHEDEN_GEGEVENS aangepast voor nieuwe structuur.
* --- 01.29 ---
* --- 01.28 ---
* --- 01.27 ---
* --- 01.26 ---
* --- 01.25 ---
* --- 01.24 ---
* --- 01.23 ---
* --- 01.22 ---
* --- 01.21 ---
* --- 01.20 ---
* --- 01.19 ---
* --- 01.18 ---
* --- 01.17 ---
* --- 01.16 ---
* --- 01.15 ---
* --- 01.14 ---
* --- 01.13 ---
* --- 01.12 ---
* 21-03-96 RW Creation
*/
DEFINIEER_VIEW_AANWEZIG(sch_srtvloer, sch_srtvloer_verwijder,
sch_v_aanwezigsrtvloer,NORMAAL_PRIVILEGE);
/* De karakteristieke gegevens over de activiteit van werkzaamheden */
CREATE_VIEW(sch_v_werkzaamheden_gegevens, NORMAAL_PRIVILEGE)
(sch_werkzaamheden_key,
sch_werkzaamheden_kosten,
sch_activiteit_code,
sch_activiteit_prijsprofiel,
sch_activiteit_volgnr,
sch_nivo_key,
sch_nivo_omschrijving,
alg_srtruimte_key,
alg_srtruimte_omschrijving,
alg_srtruimte_upper,
sch_srtvloer_key,
sch_srtvloer_omschrijving,
sch_srtvloer_upper,
sch_frequentie_key,
sch_frequentie_code) AS
SELECT SCH_W.sch_werkzaamheden_key,
SCH_W.sch_werkzaamheden_kosten,
SCH_A.sch_activiteit_code,
SCH_A.sch_activiteit_prijsprofiel,
SCH_A.sch_activiteit_volgnr,
SCH_N.sch_nivo_key,
SCH_N.sch_nivo_omschrijving,
SCH_W.sch_alg_srtruimte_key,
ALG_SR.alg_srtruimte_omschrijving,
ALG_SR.alg_srtruimte_upper,
SCH_W.sch_srtvloer_key,
SCH_SV.sch_srtvloer_omschrijving,
SCH_SV.sch_srtvloer_upper,
SCH_W.sch_frequentie_key,
SCH_F.sch_frequentie_code
FROM sch_werkzaamheden SCH_W, sch_activiteit SCH_A, sch_nivo SCH_N,
sch_v_aanwezigsrtvloer SCH_SV, alg_v_aanwezigsrtruimte ALG_SR,
sch_frequentie SCH_F
WHERE SCH_W.sch_activiteit_key = SCH_A.sch_activiteit_key
AND SCH_W.sch_nivo_key = SCH_N.sch_nivo_key
AND SCH_W.sch_frequentie_key = SCH_F.sch_frequentie_key
AND SCH_W.sch_srtvloer_key = SCH_SV.sch_srtvloer_key (+)
AND SCH_W.sch_alg_srtruimte_key = ALG_SR.alg_srtruimte_key (+);
CREATE_VIEW(sch_v_og, NORMAAL_PRIVILEGE)
(alg_og_key,
alg_locatie_key,
alg_gebouw_key,
alg_gebouw_omschrijving,
alg_gebouw_upper,
alg_verdieping_key,
alg_verdieping_omschrijving,
alg_verdieping_volgnr,
alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_upper_nr) AS
SELECT G.alg_gebouw_key,
G.alg_locatie_key,
G.alg_gebouw_key,
G.alg_gebouw_omschrijving,
G.alg_gebouw_upper,
to_number(NULL),
NULL,
0,
to_number(NULL),
NULL,
' '
FROM alg_v_aanweziggebouw G
UNION
SELECT V.alg_verdieping_key,
G.alg_locatie_key,
G.alg_gebouw_key,
G.alg_gebouw_omschrijving,
G.alg_gebouw_upper,
V.alg_verdieping_key,
V.alg_verdieping_omschrijving,
V.alg_verdieping_volgnr,
to_number(NULL),
NULL,
' '
FROM alg_v_aanwezigverdieping V, alg_v_aanweziggebouw G
WHERE V.alg_gebouw_key = G.alg_gebouw_key
UNION
SELECT R.alg_ruimte_key,
G.alg_locatie_key,
G.alg_gebouw_key,
G.alg_gebouw_omschrijving,
G.alg_gebouw_upper,
V.alg_verdieping_key,
V.alg_verdieping_omschrijving,
V.alg_verdieping_volgnr,
R.alg_ruimte_key,
R.alg_ruimte_nr,
R.alg_ruimte_upper_nr
FROM alg_v_aanwezigruimte R, alg_v_aanwezigverdieping V, alg_v_aanweziggebouw G
WHERE R.alg_verdieping_key = V.alg_verdieping_key
AND V.alg_gebouw_key = G.alg_gebouw_key;
// 11-07-97 AH #1390, In SCH014 hoeft een leeg gebouw niet getoond te worden.
CREATE_VIEW(sch_v_nivo_gegevens, NORMAAL_PRIVILEGE)
(alg_locatie_key,
alg_gebouw_key,
alg_gebouw_omschrijving,
alg_gebouw_upper,
alg_verdieping_key,
alg_verdieping_omschrijving,
alg_verdieping_volgnr,
alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_upper_nr,
sch_nivo_key,
sch_nivo_omschrijving,
sch_alg_og_key) AS
SELECT C.alg_locatie_key,
C.alg_gebouw_key,
C.alg_gebouw_omschrijving,
C.alg_gebouw_upper,
C.alg_verdieping_key,
C.alg_verdieping_omschrijving,
C.alg_verdieping_volgnr,
C.alg_ruimte_key,
C.alg_ruimte_nr,
C.alg_ruimte_upper_nr,
A.sch_nivo_key,
A.sch_nivo_omschrijving,
B.sch_alg_og_key
FROM sch_nivo A, sch_nivo_og B, sch_v_og C
WHERE A.sch_nivo_key = B.sch_nivo_key
AND B.sch_alg_og_key = C.alg_og_key;
CREATE_VIEW(sch_v_nivo_ruimte, NORMAAL_PRIVILEGE)
(sch_alg_og_key,
alg_gebouw_key,
alg_verdieping_key,
alg_ruimte_key,
sch_nivo_key,
sch_nivo_og_correctiefactor) AS
SELECT SCH_NO.sch_alg_og_key,
ALG_V.alg_gebouw_key,
ALG_V.alg_verdieping_key,
ALG_R.alg_ruimte_key,
SCH_NO.sch_nivo_key,
SCH_NO.sch_nivo_og_correctiefactor
FROM sch_nivo_og SCH_NO, alg_verdieping ALG_V,
alg_v_aanwezigruimte ALG_R
WHERE ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key
AND SCH_NO.sch_alg_og_key = ALG_R.alg_ruimte_key
UNION
SELECT SCH_NO.sch_alg_og_key,
ALG_V.alg_gebouw_key,
ALG_V.alg_verdieping_key,
ALG_R.alg_ruimte_key,
SCH_NO.sch_nivo_key,
SCH_NO.sch_nivo_og_correctiefactor
FROM sch_nivo_og SCH_NO, alg_verdieping ALG_V,
alg_v_aanwezigruimte ALG_R
WHERE ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key
AND SCH_NO.sch_alg_og_key = ALG_V.alg_verdieping_key
AND NOT EXISTS (SELECT sch_alg_og_key
FROM sch_nivo_og
WHERE sch_alg_og_key = ALG_R.alg_ruimte_key)
UNION
SELECT SCH_NO.sch_alg_og_key,
ALG_V.alg_gebouw_key,
ALG_V.alg_verdieping_key,
ALG_R.alg_ruimte_key,
SCH_NO.sch_nivo_key,
SCH_NO.sch_nivo_og_correctiefactor
FROM sch_nivo_og SCH_NO, alg_verdieping ALG_V,
alg_v_aanwezigruimte ALG_R
WHERE ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key
AND SCH_NO.sch_alg_og_key = ALG_V.alg_gebouw_key
AND NOT EXISTS (SELECT sch_alg_og_key
FROM sch_nivo_og
WHERE sch_alg_og_key = ALG_V.alg_verdieping_key
OR sch_alg_og_key = ALG_R.alg_ruimte_key);
CREATE_VIEW(sch_v_programma, NORMAAL_PRIVILEGE)
(alg_locatie_key,
alg_locatie_code,
alg_locatie_omschrijving,
alg_locatie_adres,
alg_locatie_postcode,
alg_locatie_plaats,
alg_gebouw_key,
alg_gebouw_omschrijving,
alg_gebouw_upper,
alg_verdieping_key,
alg_verdieping_omschrijving,
alg_verdieping_volgnr,
alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_upper_nr,
alg_ruimte_omschrijving,
alg_ruimte_bruto_vloeropp,
alg_srtruimte_key,
sch_srtvloer_key,
sch_srtvloer_omschrijving,
sch_activiteit_key,
sch_activiteit_code,
sch_activiteit_volgnr,
sch_nivo_key,
sch_nivo_correctiefactor,
sch_frequentie_code) AS
SELECT ALG_L.alg_locatie_key,
ALG_L.alg_locatie_code,
ALG_L.alg_locatie_omschrijving,
ALG_L.alg_locatie_adres,
ALG_L.alg_locatie_postcode,
ALG_L.alg_locatie_plaats,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_omschrijving,
ALG_G.alg_gebouw_upper,
ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving,
ALG_V.alg_verdieping_volgnr,
ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_nr,
ALG_R.alg_ruimte_upper_nr,
ALG_R.alg_ruimte_omschrijving,
ALG_R.alg_ruimte_bruto_vloeropp,
ALG_R.alg_srtruimte_key,
ALG_R.sch_srtvloer_key,
SCH_SV.sch_srtvloer_omschrijving,
SCH_A.sch_activiteit_key,
SCH_A.sch_activiteit_code,
SCH_A.sch_activiteit_volgnr,
SCH_NR.sch_nivo_key,
SCH_NR.sch_nivo_og_correctiefactor,
SCH_P_SCH_BepaalFrequentieCode(
ALG_R.alg_srtruimte_key,
ALG_R.sch_srtvloer_key,
SCH_A.sch_activiteit_key,
SCH_NR.sch_nivo_key)
FROM alg_locatie ALG_L, alg_gebouw ALG_G,
alg_verdieping ALG_V, alg_v_aanwezigruimte ALG_R,
sch_srtvloer SCH_SV, sch_activiteit SCH_A,
sch_v_nivo_ruimte SCH_NR
WHERE ALG_L.alg_locatie_key = ALG_G.alg_locatie_key
AND ALG_G.alg_gebouw_key = ALG_V.alg_gebouw_key
AND ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key
AND ALG_R.sch_srtvloer_key = SCH_SV.sch_srtvloer_key (+)
AND ALG_R.alg_ruimte_key = SCH_NR.alg_ruimte_key;
#endif // SCH

0
_UP/.gitignore vendored
View File

151
_UP/111TO112.SQL Normal file
View File

@@ -0,0 +1,151 @@
SPOOL 111to112
/* SLE-module: performance verbetering */
DROP VIEW sle_v_slot_gegevens;
CREATE VIEW sle_v_slot_gegevens ( sle_slot_key,
sle_slot_omschrijving,
sle_slot_upper,
sle_alg_onroerendgoed_keys,
alg_locatie_key,
alg_onroerendgoed_keys,
alg_onroerendgoed_omschrijving,
alg_onroerendgoed_upper,
alg_verdieping_key,
alg_verdieping_omschrijving,
alg_verdieping_upper,
alg_verdieping_volgnr,
alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_upper_nr,
alg_type ) AS
SELECT SLE_S.sle_slot_key,
SLE_S.sle_slot_omschrijving,
SLE_S.sle_slot_upper,
ALG_G.alg_gebouw_key,
ALG_G.alg_locatie_key,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_omschrijving,
ALG_G.alg_gebouw_upper,
TO_NUMBER(NULL),
NULL,
NULL,
TO_NUMBER(NULL),
TO_NUMBER(NULL),
NULL,
NULL,
'G'
FROM sle_slot SLE_S, alg_gebouw ALG_G
WHERE SLE_S.sle_alg_onroerendgoed_keys = ALG_G.alg_gebouw_key
UNION
SELECT SLE_S.sle_slot_key,
SLE_S.sle_slot_omschrijving,
SLE_S.sle_slot_upper,
ALG_V.alg_verdieping_key,
ALG_V.alg_locatie_key,
ALG_V.alg_gebouw_key,
ALG_V.alg_gebouw_omschrijving,
ALG_V.alg_gebouw_upper,
ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving,
ALG_V.alg_verdieping_upper,
ALG_V.alg_verdieping_volgnr,
TO_NUMBER(NULL),
NULL,
NULL,
'V'
FROM sle_slot SLE_S, alg_v_verdieping_gegevens ALG_V
WHERE SLE_S.sle_alg_onroerendgoed_keys = ALG_V.alg_verdieping_key
UNION
SELECT SLE_S.sle_slot_key,
SLE_S.sle_slot_omschrijving,
SLE_S.sle_slot_upper,
ALG_R.alg_ruimte_key,
ALG_R.alg_locatie_key,
ALG_R.alg_gebouw_key,
ALG_R.alg_gebouw_omschrijving,
ALG_R.alg_gebouw_upper,
ALG_R.alg_verdieping_key,
ALG_R.alg_verdieping_omschrijving,
ALG_R.alg_verdieping_upper,
ALG_R.alg_verdieping_volgnr,
ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_nr,
ALG_R.alg_ruimte_upper_nr,
'R'
FROM sle_slot SLE_S, alg_v_ruimte_gegevens ALG_R
WHERE ALG_R.alg_ruimte_key = SLE_S.sle_alg_onroerendgoed_keys
UNION
SELECT SLE_S.sle_slot_key,
SLE_S.sle_slot_omschrijving,
SLE_S.sle_slot_upper,
ALG_T.alg_terreinsector_key,
ALG_T.alg_locatie_key,
ALG_T.alg_terreinsector_key,
ALG_T.alg_terreinsector_omschrijving,
ALG_T.alg_terreinsector_upper,
TO_NUMBER(NULL),
NULL,
NULL,
TO_NUMBER(NULL),
TO_NUMBER(NULL),
NULL,
NULL,
'T'
FROM sle_slot SLE_S, alg_terreinsector ALG_T
WHERE SLE_S.sle_alg_onroerendgoed_keys = ALG_T.alg_terreinsector_key;
/* systeemnamen in uppercase */
update fac_entity_name set fac_entity_system_name=Upper(fac_entity_system_name);
update fac_message set fac_message_code=Upper(fac_message_code);
/* MRA-module: andere uniciteit voorschriften */
ALTER TABLE mra_voorschrift
DROP UNIQUE (mra_voorschrift_afk_upper);
ALTER TABLE mra_voorschrift
ADD UNIQUE (mra_voorschrift_afk_upper, mra_voorschrift_module);
/* MRA-module: Nieuwe fac_messages */
DELETE FROM fac_message WHERE fac_message_code = 'MANC_VOOR';
INSERT INTO fac_message VALUES ('MANC_V_MIL', 'Manco bij milieuvoorschrift');
INSERT INTO fac_message VALUES ('MANC_V_ARB', 'Manco bij arbovoorschrift');
INSERT INTO fac_message VALUES ('MIL_VORS', 'Milieuvoorschrift');
INSERT INTO fac_message VALUES ('ARB_VORS', 'Arbovoorschrift');
INSERT INTO fac_message VALUES ('mra_m097', 'Milieuvoorschrift bij bestemming');
INSERT INTO fac_message VALUES ('mra_m098', 'Arbovoorschrift bij bestemming');
/* 04-04-96 AH In bestelopdrachten van SONNEHEERDT moet de
* MLD_BESTELOPDR_MODULE 'MLD' worden ipv. 'SON'.
*/
UPDATE mld_bestelopdr
SET mld_bestelopdr_module = 'MLD'
WHERE mld_bestelopdr_module = 'SON';
/* 04-04-96 AH Messages voor de SONNEHEERDT-bestelbon.
*/
insert into fac_message values('son_m001', 'STICHTING BEHEER SONNEHEERDT');
insert into fac_message values('son_m002', 'Landelijk centrum voor blinden en slechtzienden');
insert into fac_message values('son_m003', 'Dienst Gebouwen en Terreinen');
insert into fac_message values('son_m004', 'Opdrachtbon met rekening meesturen. Op rekening WERKNUMMER vermelden.');
insert into fac_message values('son_m005', 'Rekening in tweevoud zenden naar aangekruikt adres:');
/* 04-04-96 AH Opdrachtbon-kop accentueren.
*/
UPDATE fac_message
SET fac_message_text = 'OPDRACHTBON MELDINGEN'
WHERE fac_message_code = 'MLD_M056';
/* 05-04-96 AH Opdrachtnr. voor Opdrachtbon.
*/
insert into fac_entity_name values('MLD_OPDR_NR', 'Opdrachtnr.', NULL, 'het');
UPDATE fac_message
SET fac_message_text = 'Opdracht gereed : Ja / Nee'
WHERE fac_message_code = 'MLD_M055';
SPOOL OFF

15
_UP/112TO113.SQL Normal file
View File

@@ -0,0 +1,15 @@
SPOOL 112to113
/*
* Update script van versie 01.12 naar 01.13
*
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
* om #ifdef's te gebruiken voor de diverse modules.
*
* History:
* 09-04-96 KTH Lege file aangemaakt
*/
/* geen SQL-wijzigingen voor 112to113 */
SPOOL OFF

294
_UP/113TO114.SRC Normal file
View File

@@ -0,0 +1,294 @@
SPOOL 113to114
/*
* [V:\SQL\_UPDATE]
*
* Update script van versie 01.13 naar 01.14
*
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
* om #ifdef's te gebruiken voor de diverse modules.
*
* History:
* 16-04-96 EH 4 views voor MRA gewijzigd.
* 16-04-96 AH 113to114.sql renamed to 113to114.SRC
* 16-04-96 AH INS_..._MODULE wordt gevuld met 'INS' als het veld leeg is.
* Als dit veld nog niet bestaat moet deze toegevoegd worden in
* de tabellen INS_DISCIPLINE, INS_SRTGROEP, INS_SRTDEEL
* en INS_DEEL.
* 16-04-96 AH Update van FAC_MESSAGE 'fac_m002' voor 'BCO 2.0'
* 10-04-96 KTH INV entities
* 09-04-96 KTH PRS entities
* 09-04-96 KTH Lege file aangemaakt
*/
/* PRS updates voor FAC (tbv. meervouden/lidwoorden voor HELP): */
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='PRS_PERSLID';
INSERT INTO FAC_ENTITY_NAME VALUES ('PRS_PERSLID', 'Persoon', 'personen', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='PRS_PERSLID_MAXCORR';
INSERT INTO FAC_ENTITY_NAME VALUES ('PRS_PERSLID_MAXCORR', 'Corr. uren', 'Corr. uren', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='PRS_PERSLID_MAXPREV';
INSERT INTO FAC_ENTITY_NAME VALUES ('PRS_PERSLID_MAXPREV', 'Prev. uren', 'Prev. uren', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='PRS_PERSLID_MAXTOTAAL';
INSERT INTO FAC_ENTITY_NAME VALUES ('PRS_PERSLID_MAXTOTAAL', 'Totale uren', 'Totale uren', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='PRS_PERSLID_NR';
INSERT INTO FAC_ENTITY_NAME VALUES ('PRS_PERSLID_NR', 'Pers.nr', 'Pers.nrs', 'het');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='PRS_PERSLID_VOORLETTERS';
INSERT INTO FAC_ENTITY_NAME VALUES ('PRS_PERSLID_VOORLETTERS', 'Voorletters', 'Voorletters', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='PRS_SRTPERSLID';
INSERT INTO FAC_ENTITY_NAME VALUES ('PRS_SRTPERSLID', 'Functie van persoon', 'Functies van persoon', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='RAPPORT';
INSERT INTO FAC_ENTITY_NAME VALUES ('RAPPORT', 'Rapporteren', NULL, 'het');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='PRS_INVENTARIS';
INSERT INTO FAC_ENTITY_NAME VALUES ('PRS_INVENTARIS', 'Inventaris', 'Inventaris', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='PRS_PERSLID_DIENSTVERBAND';
INSERT INTO FAC_ENTITY_NAME VALUES ('PRS_PERSLID_DIENSTVERBAND', 'Dienstverband', 'Dienstverbanden', 'het');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='PRS_PERSLID_FUNCOPP';
INSERT INTO FAC_ENTITY_NAME VALUES ('PRS_PERSLID_FUNCOPP', 'Functie opp.', 'Functie opp.', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='PRS_PERSLID_OPP';
INSERT INTO FAC_ENTITY_NAME VALUES ('PRS_PERSLID_OPP', 'Werkelijke opp.', 'Werkelijke opp.', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='PRS_PERSLID_INGANGSDATUM';
INSERT INTO FAC_ENTITY_NAME VALUES ('PRS_PERSLID_INGANGSDATUM', 'Ingangsdatum', 'Ingangsdata', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='PRS_PERSLID_EINDDATUM';
INSERT INTO FAC_ENTITY_NAME VALUES ('PRS_PERSLID_EINDDATUM', 'Einddatum', 'Einddata', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='PRS_WERKPLEK_OMSCHRIJVING';
INSERT INTO FAC_ENTITY_NAME VALUES ('PRS_WERKPLEK_OMSCHRIJVING', 'Omschrijving', 'Omschrijvingen', 'de');
/* INV updates voor FAC (tbv. meervouden/lidwoorden voor HELP): */
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='INV_DISCIPLINE_OMSCHRIJVING';
INSERT INTO FAC_ENTITY_NAME VALUES ('INV_DISCIPLINE_OMSCHRIJVING', 'Omschrijving', 'Omschrijvingen', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='INV_SRTGROEP_OMSCHRIJVING';
INSERT INTO FAC_ENTITY_NAME VALUES ('INV_SRTGROEP_OMSCHRIJVING', 'Omschrijving', 'Omschrijvingen', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='INV_SRTDEEL';
INSERT INTO FAC_ENTITY_NAME VALUES ('INV_SRTDEEL', 'Artikelsoort', 'Artikelsoorten', 'het');DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='INV_SRTDEEL_OMSCHRIJVING';
INSERT INTO FAC_ENTITY_NAME VALUES ('INV_SRTDEEL_OMSCHRIJVING', 'Omschrijving', 'Omschrijvingen', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='INV_SRTDEEL_KOPPELING';
INSERT INTO FAC_ENTITY_NAME VALUES ('INV_SRTDEEL_KOPPELING', 'Koppeling', 'Koppelingen', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='INV_SRTDEEL_KOPPELING_RUIMTE';
INSERT INTO FAC_ENTITY_NAME VALUES ('INV_SRTDEEL_KOPPELING_RUIMTE', 'Ruimte', 'ruimtes', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='INV_SRTDEEL_KOPPELING_WERKPLEK';
INSERT INTO FAC_ENTITY_NAME VALUES ('INV_SRTDEEL_KOPPELING_WERKPLEK', 'Werkplek', 'werkplekken', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='INV_DEEL_SERIENR';
INSERT INTO FAC_ENTITY_NAME VALUES ('INV_DEEL_SERIENR', 'Serienr.', 'serienrs.', 'het');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='INV_DEEL_OMSCHRIJVING';
INSERT INTO FAC_ENTITY_NAME VALUES ('INV_DEEL_OMSCHRIJVING', 'Omschrijving', 'omschrijvingen', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='INV_DEEL_TYPE';
INSERT INTO FAC_ENTITY_NAME VALUES ('INV_DEEL_TYPE', 'Type', 'types', 'het');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='INV_DEEL_BOUWJAAR';
INSERT INTO FAC_ENTITY_NAME VALUES ('INV_DEEL_BOUWJAAR', 'Bouwjaar', 'bouwjaren', 'het');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='INV_DEEL_PRIJS';
INSERT INTO FAC_ENTITY_NAME VALUES ('INV_DEEL_PRIJS', 'Prijs', 'prijzen', 'de');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='INV_DEEL_AANTAL';
INSERT INTO FAC_ENTITY_NAME VALUES ('INV_DEEL_AANTAL', 'Aantal', 'aantallen', 'het');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='INV_DEEL_OPMERKING';
INSERT INTO FAC_ENTITY_NAME VALUES ('INV_DEEL_OPMERKING', 'Opmerking', 'opmerkingen', 'de');
DELETE FROM FAC_MESSAGE WHERE FAC_MESSAGE_CODE='MLD_M147';
INSERT INTO fac_message VALUES ('MLD_M147', 'Alleen nog niet verwerkte activiteiten');
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='MRA_COMMANDANT_DATUM';
INSERT INTO FAC_ENTITY_NAME VALUES ('MRA_COMMANDANT_DATUM', 'Waarschuw.KazCo', NULL, NULL);
DELETE FROM FAC_ENTITY_NAME WHERE FAC_ENTITY_SYSTEM_NAME='MRA_SRTDEELVERV';
INSERT INTO FAC_ENTITY_NAME VALUES ('MRA_SRTDEELVERV', 'Stof', 'Stoffen', 'de');
#ifdef MRA
/* Module MRA */
DROP VIEW mra_v_geinvoorschr_brug;
DROP VIEW mra_v_geinvoorschr;
DROP VIEW mra_v_voorschrift_rapport;
DROP VIEW mra_v_ongein_rapport;
INSERT INTO fac_privilege VALUES ('mra_v_geinvoorschr_brug', 2);
CREATE VIEW mra_v_geinvoorschr_brug (mra_onroerendgoed_keys,
mra_voorschrift_key,
mra_onrgoedvoorschr_key,
type,
mra_voorschrift_voldaan) AS
SELECT mra_GVH.alg_onrgoed_key,
mra_GVH.mra_voorschrift_key,
mra_OGV.mra_onrgoedvoorschr_key,
mra_GVH.type,
mra_OGV.mra_onrgoedvoorschr_voldaan
FROM mra_v_geinvoorschr_hulp mra_GVH,
mra_onrgoedvoorschr mra_OGV
WHERE mra_GVH.mra_voorschrift_key = mra_OGV.mra_voorschrift_key (+) AND
mra_OGV.mra_onroerendgoed_keys (+) = mra_GVH.alg_onrgoed_key AND
mra_OGV.mra_onrgoedvoorschr_type (+) = mra_GVH.type;
INSERT INTO fac_privilege VALUES ('mra_v_geinvoorschr', 2);
CREATE VIEW mra_v_geinvoorschr (mra_onroerendgoed_keys,
mra_voorschrift_key,
type,
mra_onrgoedvoorschr_key,
mra_voorschrift_afk,
mra_voorschrift_afk_upper,
mra_voorschrift_module,
mra_voorschrift_voldaan) AS
SELECT mra_GVB.mra_onroerendgoed_keys,
mra_GVB.mra_voorschrift_key,
mra_GVB.type,
mra_GVB.mra_onrgoedvoorschr_key,
mra_V.mra_voorschrift_afk,
mra_V.mra_voorschrift_afk_upper,
mra_V.mra_voorschrift_module,
mra_GVB.mra_voorschrift_voldaan
FROM mra_voorschrift MRA_V,
mra_v_geinvoorschr_brug mra_GVB
WHERE mra_V.mra_voorschrift_key = mra_GVB.mra_voorschrift_key;
INSERT INTO fac_privilege VALUES ('mra_v_voorschrift_rapport', 2);
CREATE VIEW mra_v_voorschrift_rapport
(
mra_onrgoedvoorschr_key,
mra_onrgoed_keys,
mra_voorschr_key,
mra_onrgoedvoorschr_voldaan,
type,
mra_onrgoedmanco_key,
mra_voorschr_afk,
mra_voorschrift_module,
mra_manco_omschrijving
)
AS
SELECT mra_OV.mra_onrgoedvoorschr_key,
mra_OV.mra_onroerendgoed_keys,
mra_OV.mra_voorschrift_key,
mra_OV.mra_onrgoedvoorschr_voldaan,
mra_OV.mra_onrgoedvoorschr_type,
mra_OM.mra_onrgoedmanco_key,
mra_V.mra_voorschrift_afk,
mra_V.mra_voorschrift_module,
mra_M.mra_manco_omschrijving
FROM mra_onrgoedvoorschr mra_OV,
mra_onrgoedmanco mra_OM,
mra_voorschrift mra_V,
mra_manco mra_M
WHERE mra_OM.mra_onrgoedvoorschr_key (+) = mra_OV.mra_onrgoedvoorschr_key AND
mra_OV.mra_voorschrift_key = mra_V.mra_voorschrift_key AND
mra_M.mra_manco_key (+) = mra_OM.mra_manco_key AND
mra_OV.mra_onrgoedvoorschr_voldaan = 0
UNION
SELECT mra_OV.mra_onrgoedvoorschr_key,
mra_OV.mra_onroerendgoed_keys,
mra_OV.mra_voorschrift_key,
mra_OV.mra_onrgoedvoorschr_voldaan,
mra_OV.mra_onrgoedvoorschr_type,
to_number(NULL),
mra_V.mra_voorschrift_afk,
mra_V.mra_voorschrift_module,
NULL
FROM mra_onrgoedvoorschr mra_OV,
mra_voorschrift mra_V
WHERE mra_OV.mra_voorschrift_key = mra_V.mra_voorschrift_key AND
mra_OV.mra_onrgoedvoorschr_voldaan = 1;
INSERT INTO fac_privilege VALUES ('mra_v_ongein_rapport', 2);
CREATE VIEW mra_v_ongein_rapport
(
mra_onroerendgoed_keys,
mra_voorschrift_key,
mra_voorschrift_afk,
mra_voorschrift_module,
type,
mra_manco_omschrijving)
AS
SELECT mra_GV.mra_onroerendgoed_keys,
mra_GV.mra_voorschrift_key,
mra_GV.mra_voorschrift_afk,
mra_GV.mra_voorschrift_module,
mra_GV.type,
mra_M.mra_manco_omschrijving
FROM mra_v_geinvoorschr mra_GV,
mra_manco mra_M
WHERE mra_GV.mra_voorschrift_key = mra_M.mra_voorschrift_key (+) AND
mra_GV.mra_voorschrift_voldaan IS NULL;
#endif
#ifdef BCO
UPDATE fac_message SET fac_message_text='BCO 2.0'
WHERE UPPER(fac_message_code)=UPPER('fac_m002');
#endif
#ifdef INS
ALTER TABLE INS_DISCIPLINE
ADD
(
INS_DISCIPLINE_MODULE
VARCHAR2(3)
);
UPDATE INS_DISCIPLINE
SET INS_DISCIPLINE_MODULE = 'INS'
WHERE INS_DISCIPLINE_MODULE IS NULL;
ALTER TABLE INS_DISCIPLINE
MODIFY
(
INS_DISCIPLINE_MODULE
NOT NULL
);
ALTER TABLE INS_SRTGROEP
ADD
(
INS_SRTGROEP_MODULE
VARCHAR2(3)
);
UPDATE INS_SRTGROEP
SET INS_SRTGROEP_MODULE = 'INS'
WHERE INS_SRTGROEP_MODULE IS NULL;
ALTER TABLE INS_SRTGROEP
MODIFY
(
INS_SRTGROEP_MODULE
NOT NULL
);
ALTER TABLE INS_SRTDEEL
ADD
(
INS_SRTDEEL_MODULE
VARCHAR2(3)
);
UPDATE INS_SRTDEEL
SET INS_SRTDEEL_MODULE = 'INS'
WHERE INS_SRTDEEL_MODULE IS NULL;
ALTER TABLE INS_SRTDEEL
MODIFY
(
INS_SRTDEEL_MODULE
NOT NULL
);
ALTER TABLE INS_DEEL
ADD
(
INS_DEEL_MODULE
VARCHAR2(3)
);
UPDATE INS_DEEL
SET INS_DEEL_MODULE = 'INS'
WHERE INS_DEEL_MODULE IS NULL;
ALTER TABLE INS_DEEL
MODIFY
(
INS_DEEL_MODULE
NOT NULL
);
#endif
SPOOL OFF

1214
_UP/114TO115.SRC Normal file

File diff suppressed because it is too large Load Diff

866
_UP/115TO116.SRC Normal file
View File

@@ -0,0 +1,866 @@
SPOOL 115to116
/*
* [V:\SQL\_UPDATE]
*
* Update script van versie 01.15 naar 01.16
*
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
* om #ifdef's te gebruiken voor de diverse modules.
*
* History:
*
* 05-06-96 KTH SPOOL-filenaam gecorrigeerd (was nog 114to115)
* 05-06-96 AH PRS-entities toegevoegd
* 04-06-96 EH View prs_v_werkplek_gegevens intern aangepast (Performance)
* 03-06-96 EH 2 entities voor PRS toegevoegd.
* 03-06-96 AH INV_SRTDEEL-entity is Artikelsoort geworden.
* 31-05-96 AH LEV-message tegevoegd.
* 31-05-96 AH INS_T_INS_DEEL_B_IU aangepast voor INV/LEV. INS_Alg_ruimte_key
* kan ook 'L' (locaties) bevatten.
* 31-05-96 AH Voor LEV is de UNIQUE op INS_DEEL veranderd.
* 31-05-96 AH INV-entities en messages toegevoegd
* 31-05-96 AH Views INV_V_DEEL_GEGEVENS, INV_V_DEEL_PLAATS_GEGEVENS
* en INV_V_DEEL_BEZIT_GEGEVENS aangepast
* 31-05-96 AH Vakgroep, Artikelgroep en Artikelsoort aangepast in
* entities en messages
* 29-05-96 EH Aan de view prs_v_werkplekperslidgegevens persleden weer hun
* afdeling teruggegeven.
* 29-05-96 EH Lege file aangemaakt
*/
#include "comsql.h"
#ifdef PRS
CREATE OR REPLACE VIEW prs_v_werkplek_gegevens AS
SELECT PRS_W.prs_werkplek_key,
PRS_W.prs_werkplek_volgnr,
PRS_W.prs_werkplek_omschrijving,
PRS_W.prs_werkplek_opp,
ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_nr,
ALG_R.alg_ruimte_upper_nr,
ALG_R.alg_ruimte_bruto_vloeropp,
ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_volgnr,
ALG_V.alg_verdieping_omschrijving,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_omschrijving,
ALG_G.alg_gebouw_upper,
ALG_G.alg_locatie_key
FROM prs_v_aanwezigwerkplek PRS_W, alg_ruimte ALG_R,
alg_verdieping ALG_V, alg_gebouw ALG_G
WHERE ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
AND PRS_W.prs_alg_ruimte_key = ALG_R.alg_ruimte_key;
CREATE_VIEW(prs_v_werkplekperslid_gegevens,NORMAAL_PRIVILEGE)
( prs_perslidwerkplek_key,
prs_perslid_key,
prs_afdeling_key,
prs_naam,
prs_werkplek_key,
prs_werkplek_volgnr,
prs_werkplek_opp,
alg_locatie_key,
alg_gebouw_omschrijving,
alg_gebouw_upper,
alg_verdieping_volgnr,
alg_verdieping_omschrijving,
alg_ruimte_nr,
alg_ruimte_upper_nr ) AS
SELECT PRS_PW.prs_perslidwerkplek_key,
PRS_PW.prs_perslid_key,
PRS_P.prs_afdeling_key,
PRS_P.prs_perslid_naam||' '||prs_perslid_voorletters,
PRS_PW.prs_werkplek_key,
PRS_W.prs_werkplek_volgnr,
PRS_W.prs_werkplek_opp,
PRS_W.alg_locatie_key,
PRS_W.alg_gebouw_omschrijving,
PRS_W.alg_gebouw_upper,
PRS_W.alg_verdieping_volgnr,
PRS_W.alg_verdieping_omschrijving,
PRS_W.alg_ruimte_nr,
PRS_W.alg_ruimte_upper_nr
FROM prs_v_aanwezigperslidwerkplek PRS_PW, prs_perslid PRS_P,
prs_v_werkplek_gegevens PRS_W
WHERE PRS_PW.prs_perslid_key = PRS_P.prs_perslid_key
AND PRS_PW.prs_werkplek_key = PRS_W.prs_werkplek_key
UNION
SELECT PRS_PW.prs_perslidwerkplek_key,
to_number(NULL),
PRS_PW.prs_afdeling_key,
'['||PRS_A.prs_afdeling_naam||']',
PRS_PW.prs_werkplek_key,
PRS_W.prs_werkplek_volgnr,
PRS_W.prs_werkplek_opp,
PRS_W.alg_locatie_key,
PRS_W.alg_gebouw_omschrijving,
PRS_W.alg_gebouw_upper,
PRS_W.alg_verdieping_volgnr,
PRS_W.alg_verdieping_omschrijving,
PRS_W.alg_ruimte_nr,
PRS_W.alg_ruimte_upper_nr
FROM prs_v_aanwezigperslidwerkplek PRS_PW, prs_afdeling PRS_A,
prs_v_werkplek_gegevens PRS_W
WHERE PRS_PW.prs_afdeling_key = PRS_A.prs_afdeling_key
AND PRS_PW.prs_werkplek_key = PRS_W.prs_werkplek_key;
#endif //PRS
DEF_FAC_ENTITY ('PRS_RAFRAP_PERC', 'Perc.', NULL, NULL);
DEF_FAC_ENTITY ('PRS_RAFRAP_OPP', 'Opp. (m2)', NULL, NULL);
DEF_FAC_ENTITY ('PRS_OGWRAP_BUTTON', 'Overzicht', NULL, NULL);
DEF_FAC_ENTITY ('INV_SRTDEEL', 'Artikel', 'Artikelen', 'het');
DEF_FAC_MESSAGE ('inv_m001', 'Verwijderen vakgroep ');
DEF_FAC_MESSAGE ('inv_m002', 'De omschrijving van de vakgroep is niet ingevuld.');
DEF_FAC_MESSAGE ('inv_m004', 'De vakgroep is niet ingevuld.');
DEF_FAC_MESSAGE ('inv_m007', 'De omschrijving voor het artikelsoort is niet ingevuld.');
DEF_FAC_MESSAGE ('inv_m008', 'Verwijderen artikelsoort ');
DEF_FAC_MESSAGE ('inv_m012', 'Het artikelsoort is niet ingevuld.');
#ifdef INV
CREATE_VIEW(inv_v_deel_gegevens,NORMAAL_PRIVILEGE) AS
SELECT INV_D.ins_discipline_key, INV_D.ins_discipline_omschrijving,
INV_SG.ins_srtgroep_key, INV_SG.ins_srtgroep_omschrijving,
INV_SG.ins_srtgroep_upper, INV_SD.ins_srtdeel_key,
INV_SD.ins_srtdeel_omschrijving, INV_SD.ins_srtdeel_upper,
INV_SD.inv_srtdeel_nr,
INV_DEEL.ins_deel_key, INV_DEEL.ins_deel_aantal,
INV_DEEL.ins_deel_omschrijving, INV_DEEL.ins_deel_upper,
INV_DEEL.ins_deel_serienr, INV_DEEL.ins_alg_ruimte_key,
INV_DEEL.ins_alg_ruimte_type, INV_DEEL.ins_prs_bezit_key,
INV_DEEL.ins_prs_bezit_type
#ifdef LEV
, INV_DEEL.lev_afvoerlijst_datum
#endif
FROM inv_v_aanwezigdiscipline INV_D, inv_v_aanwezigsrtgroep INV_SG,
inv_v_aanwezigsrtdeel INV_SD, inv_v_aanwezigdeel INV_DEEL
WHERE INV_SG.ins_srtgroep_key = INV_SD.ins_srtgroep_key
AND INV_D.ins_discipline_key = INV_SG.ins_discipline_key
AND INV_DEEL.ins_srtdeel_key = INV_SD.ins_srtdeel_key;
CREATE_VIEW(inv_v_deel_plaats_gegevens,NORMAAL_PRIVILEGE)
(ins_deel_key, ins_deel_omschrijving,
ins_deel_upper, ins_deel_aantal,
ins_alg_ruimte_key,
ins_alg_ruimte_type, ins_srtdeel_key,
#ifdef INV
inv_srtdeel_nr,
#endif
ins_srtdeel_omschrijving, ins_srtdeel_upper,
alg_locatie_key, alg_gebouw_key,
alg_gebouw_omschrijving, alg_gebouw_upper,
alg_verdieping_key, alg_verdieping_omschrijving,
alg_verdieping_volgnr, alg_ruimte_key,
alg_ruimte_nr, alg_ruimte_omschrijving,
alg_ruimte_upper_nr,
prs_werkplek_key, prs_werkplek_volgnr) AS
SELECT INV_D.ins_deel_key,
INV_D.ins_deel_omschrijving,
INV_D.ins_deel_upper,
INV_D.ins_deel_aantal,
INV_D.ins_alg_ruimte_key,
INV_D.ins_alg_ruimte_type,
INV_SD.ins_srtdeel_key,
#ifdef INV
INV_SD.inv_srtdeel_nr,
#endif
INV_SD.ins_srtdeel_omschrijving,
INV_SD.ins_srtdeel_upper,
ALG_G.alg_locatie_key,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_omschrijving,
ALG_G.alg_gebouw_upper,
ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving,
ALG_V.alg_verdieping_volgnr,
ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_nr,
ALG_R.alg_ruimte_omschrijving,
ALG_R.alg_ruimte_upper_nr,
TO_NUMBER(NULL),
TO_NUMBER(NULL)
FROM inv_v_aanwezigdeel INV_D, ins_srtdeel INV_SD,
alg_gebouw ALG_G, alg_verdieping ALG_V,
alg_ruimte ALG_R
WHERE ALG_G.alg_gebouw_key = ALG_V.alg_gebouw_key
AND ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key
AND INV_SD.ins_srtdeel_key = INV_D.ins_srtdeel_key
AND ALG_R.alg_ruimte_key = INV_D.ins_alg_ruimte_key
AND INV_D.ins_alg_ruimte_type = 'R'
UNION
SELECT INV_D.ins_deel_key,
INV_D.ins_deel_omschrijving,
INV_D.ins_deel_upper,
INV_D.ins_deel_aantal,
INV_D.ins_alg_ruimte_key,
INV_D.ins_alg_ruimte_type,
INV_SD.ins_srtdeel_key,
#ifdef INV
INV_SD.inv_srtdeel_nr,
#endif
INV_SD.ins_srtdeel_omschrijving,
INV_SD.ins_srtdeel_upper,
ALG_G.alg_locatie_key,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_omschrijving,
ALG_G.alg_gebouw_upper,
ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving,
ALG_V.alg_verdieping_volgnr,
ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_nr,
ALG_R.alg_ruimte_omschrijving,
ALG_R.alg_ruimte_upper_nr,
PRS_W.prs_werkplek_key,
PRS_W.prs_werkplek_volgnr
FROM inv_v_aanwezigdeel INV_D, ins_srtdeel INV_SD,
alg_gebouw ALG_G, alg_verdieping ALG_V,
alg_ruimte ALG_R, prs_werkplek PRS_W
WHERE ALG_G.alg_gebouw_key = ALG_V.alg_gebouw_key
AND ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key
AND ALG_R.alg_ruimte_key = PRS_W.prs_alg_ruimte_key
AND INV_SD.ins_srtdeel_key = INV_D.ins_srtdeel_key
AND PRS_W.prs_werkplek_key = INV_D.ins_alg_ruimte_key
AND INV_D.ins_alg_ruimte_type = 'W';
CREATE_VIEW(inv_v_deel_bezit_gegevens,NORMAAL_PRIVILEGE)
(ins_discipline_key, ins_srtgroep_key,
ins_srtdeel_key, ins_srtdeel_omschrijving,
ins_srtdeel_upper,
#ifdef INV
inv_srtdeel_nr,
#endif
ins_deel_key,
ins_deel_omschrijving, ins_deel_upper,
ins_deel_aantal,
ins_alg_ruimte_key, ins_alg_ruimte_type,
ins_prs_bezit_key, ins_prs_bezit_type,
prs_afdeling_key, prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_afdeling_upper, prs_perslid_key,
prs_perslid_naam, prs_perslid_upper) AS
SELECT INV_D.ins_discipline_key,
INV_D.ins_srtgroep_key,
INV_D.ins_srtdeel_key,
INV_D.ins_srtdeel_omschrijving,
INV_D.ins_srtdeel_upper,
#ifdef INV
INV_D.inv_srtdeel_nr,
#endif
INV_D.ins_deel_key,
INV_D.ins_deel_omschrijving,
INV_D.ins_deel_upper,
INV_D.ins_deel_aantal,
INV_D.ins_alg_ruimte_key,
INV_D.ins_alg_ruimte_type,
INV_D.ins_prs_bezit_key,
INV_D.ins_prs_bezit_type,
PRS_A.prs_afdeling_key,
PRS_A.prs_afdeling_naam,
PRS_A.prs_afdeling_omschrijving,
PRS_A.prs_afdeling_upper,
TO_NUMBER(NULL),
NULL,
NULL
FROM inv_v_deel_gegevens INV_D, prs_v_aanwezigafdeling PRS_A
WHERE INV_D.ins_prs_bezit_type = 'A'
AND INV_D.ins_prs_bezit_key = PRS_A.prs_afdeling_key
UNION
SELECT INV_D.ins_discipline_key,
INV_D.ins_srtgroep_key,
INV_D.ins_srtdeel_key,
INV_D.ins_srtdeel_omschrijving,
INV_D.ins_srtdeel_upper,
#ifdef INV
INV_D.inv_srtdeel_nr,
#endif
INV_D.ins_deel_key,
INV_D.ins_deel_omschrijving,
INV_D.ins_deel_upper,
INV_D.ins_deel_aantal,
INV_D.ins_alg_ruimte_key,
INV_D.ins_alg_ruimte_type,
INV_D.ins_prs_bezit_key,
INV_D.ins_prs_bezit_type,
PRS_A.prs_afdeling_key,
PRS_A.prs_afdeling_naam,
PRS_A.prs_afdeling_omschrijving,
PRS_A.prs_afdeling_upper,
PRS_P.prs_perslid_key,
PRS_P.prs_perslid_naam||' '||PRS_P.prs_perslid_voorletters,
PRS_P.prs_perslid_upper||' '||UPPER(PRS_P.prs_perslid_voorletters)
FROM inv_v_deel_gegevens INV_D, prs_v_aanwezigafdeling PRS_A,
prs_v_aanwezigperslid PRS_P
WHERE INV_D.ins_prs_bezit_type = 'P'
AND INV_D.ins_prs_bezit_key = PRS_P.prs_perslid_key
AND PRS_P.prs_afdeling_key = PRS_A.prs_afdeling_key;
CREATE TRIGGER ins_t_ins_deel_B_IU
BEFORE INSERT OR UPDATE ON ins_deel
FOR EACH ROW
BEGIN
LOG('Begin INS_T_INS_DEEL_B_IU');
UPDATE_PRIMARY_KEY(ins_deel_key,ins_s_ins_inst_keys);
UPDATE_UPPER(ins_deel_omschrijving,ins_deel_upper);
SET_VERWIJDER_CHILDREN(ins_onderdeel, ins_deel_key, ins_deel_verwijder,
ins_onderdeel_verwijder);
/* Bij INS_DEEL in INS-mode moet INS_ALG_RUIMTE_KEY ingevuld zijn
* en wel met ruimte of terreinsector, daarvoor moet ook het
* INS_ALG_RUIMTE_TYPE veld goed ingevuld zijn (met 'R' 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').
*/
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 = 'R'
THEN
CHECK_KEY_REFERENCE(alg_v_aanwezigruimte, alg_ruimte_key,
:new.ins_alg_ruimte_key, 'ins_m83');
ELSIF :new.ins_alg_ruimte_type = 'T'
THEN
CHECK_KEY_REFERENCE(alg_v_aanwezigterreinsector, alg_terreinsector_key,
:new.ins_alg_ruimte_key, 'ins_m83');
ELSE
APPLICATION_ERROR(-20000, 'ins_m84');
END IF;
#ifdef INV
ELSIF :new.ins_deel_module = 'INV'
AND (:new.ins_alg_ruimte_key IS NOT NULL
OR :new.ins_prs_bezit_key IS NOT NULL )
THEN
IF :new.ins_alg_ruimte_key IS NOT NULL
AND :new.ins_prs_bezit_key IS NOT NULL
THEN
APPLICATION_ERROR(-20000, 'ins_m85');
ELSIF :new.ins_alg_ruimte_key IS NOT NULL
THEN
IF :new.ins_alg_ruimte_type = 'R'
THEN
CHECK_KEY_REFERENCE(alg_v_aanwezigruimte, alg_ruimte_key,
:new.ins_alg_ruimte_key, 'ins_m88');
ELSIF :new.ins_alg_ruimte_type = 'W'
THEN
CHECK_KEY_REFERENCE(prs_v_aanwezigwerkplek, prs_werkplek_key,
:new.ins_alg_ruimte_key, 'ins_m88');
ELSIF :new.ins_alg_ruimte_type = 'L'
THEN
CHECK_KEY_REFERENCE(alg_v_aanweziglocatie, alg_locatie_key,
:new.ins_alg_ruimte_key, 'ins_m88');
ELSE
APPLICATION_ERROR(-20000, 'ins_m84');
END IF;
ELSIF :new.ins_prs_bezit_key IS NOT NULL
THEN
IF :new.ins_prs_bezit_type = 'P'
THEN
CHECK_KEY_REFERENCE(prs_v_aanwezigperslid, prs_perslid_key,
:new.ins_prs_bezit_key, 'ins_m86');
ELSIF :new.ins_prs_bezit_type = 'A'
THEN
CHECK_KEY_REFERENCE(prs_v_aanwezigafdeling, prs_afdeling_key,
:new.ins_prs_bezit_key, 'ins_m86');
ELSE
APPLICATION_ERROR(-20000, 'ins_m86');
END IF;
ELSE
APPLICATION_ERROR(-20000, 'ins_m87');
END IF;
#endif
END IF;
#ifdef INV
/* Als een INS_DEEL in INV-mode (red. een artikel) verwijderd, gekoppeld,
* ontkoppeld of verplaatst wordt van een ruimte of een werkplek,
* dan is de bijbehorende verdieping-tekening niet meer up to date en
* moet dus het INV_DWGUPTODATE-veld gezet worden.
*
* Als in INV-mode het INS_DEEL van INS_SRTDEEL veranderd,
* moet in het geval dit INS_SRTDEEL een ander ACADSYMBOL heeft
* het INV_DWGUPTODATE-veld van de verdiepingtekening ook gezet worden.
*/
IF :new.ins_deel_module = 'INV'
THEN
/* Verwijderen */
IF :new.ins_deel_verwijder IS NOT NULL
/* Koppelen */
OR (:old.ins_alg_ruimte_key IS NULL
AND :new.ins_alg_ruimte_key IS NOT NULL)
/* Ontkoppelen */
OR (:old.ins_alg_ruimte_key IS NOT NULL
AND :new.ins_alg_ruimte_key IS NULL)
/* Verplaatsen */
OR (:old.ins_alg_ruimte_key <> :new.ins_alg_ruimte_key)
/* Van INS_SRTDEEL veranderen.
* ACADSYMBOL is hierin nog niet verwerkt.
*/
OR (:old.ins_srtdeel_key <> :new.ins_srtdeel_key)
THEN
/* Voor de oude INS_ALG_RUIMTE_KEY */
IF :old.ins_alg_ruimte_type = 'R'
AND :old.ins_alg_ruimte_key IS NOT NULL
THEN
SET_DWGUPTODATE(alg_verdieping, alg_verdieping_key,
(SELECT ALG_R.alg_verdieping_key
FROM alg_ruimte ALG_R
WHERE ALG_R.alg_ruimte_key = :old.ins_alg_ruimte_key),
inv_dwguptodate);
ELSIF :old.ins_alg_ruimte_type = 'W'
AND :old.ins_alg_ruimte_key IS NOT NULL
THEN
SET_DWGUPTODATE(alg_verdieping, alg_verdieping_key,
(SELECT ALG_R.alg_verdieping_key
FROM prs_v_aanwezigwerkplek PRS_W,
alg_ruimte ALG_R
WHERE PRS_W.prs_werkplek_key = :old.ins_alg_ruimte_key
AND ALG_R.alg_ruimte_key = PRS_W.prs_alg_ruimte_key),
inv_dwguptodate);
END IF;
/* Voor de nieuwe INS_ALG_RUIMTE_KEY*/
IF :new.ins_alg_ruimte_type = 'R'
AND :new.ins_alg_ruimte_key IS NOT NULL
THEN
SET_DWGUPTODATE(alg_verdieping, alg_verdieping_key,
(SELECT ALG_R.alg_verdieping_key
FROM alg_ruimte ALG_R
WHERE ALG_R.alg_ruimte_key = :new.ins_alg_ruimte_key),
inv_dwguptodate);
ELSIF :new.ins_alg_ruimte_type = 'W'
AND :new.ins_alg_ruimte_key IS NOT NULL
THEN
SET_DWGUPTODATE(alg_verdieping, alg_verdieping_key,
(SELECT ALG_R.alg_verdieping_key
FROM prs_v_aanwezigwerkplek PRS_W,
alg_ruimte ALG_R
WHERE PRS_W.prs_werkplek_key = :new.ins_alg_ruimte_key
AND ALG_R.alg_ruimte_key = PRS_W.prs_alg_ruimte_key),
inv_dwguptodate);
END IF;
END IF;
END IF;
#endif // INV
/* Gedeelte t.b.v. eventuele attribuutjes */
DECLARE dummy NUMBER;
BEGIN
SELECT count(*) INTO dummy
FROM ins_v_attribute_gegevens
WHERE ins_srtdeel_key = :new.ins_srtdeel_key;
IF dummy <> 0 /* attributen aanwezig */
THEN
IF :new.fac0 <> :old.fac0 OR :new.fac0 IS NULL OR :old.fac0 IS NULL
THEN
/*
* Trigger t.b.v. de 'flexibele' velden in ins_deel
*/
CHECK_ATTRIBUTE(fac0,0);
END IF;
IF :new.fac1 <> :old.fac1 OR :new.fac1 IS NULL OR :old.fac1 IS NULL THEN CHECK_ATTRIBUTE(fac1,1); END IF;
IF :new.fac2 <> :old.fac2 OR :new.fac2 IS NULL OR :old.fac2 IS NULL THEN CHECK_ATTRIBUTE(fac2,2); END IF;
IF :new.fac3 <> :old.fac3 OR :new.fac3 IS NULL OR :old.fac3 IS NULL THEN CHECK_ATTRIBUTE(fac3,3); END IF;
IF :new.fac4 <> :old.fac4 OR :new.fac4 IS NULL OR :old.fac4 IS NULL THEN CHECK_ATTRIBUTE(fac4,4); END IF;
IF :new.fac5 <> :old.fac5 OR :new.fac5 IS NULL OR :old.fac5 IS NULL THEN CHECK_ATTRIBUTE(fac5,5); END IF;
IF :new.fac6 <> :old.fac6 OR :new.fac6 IS NULL OR :old.fac6 IS NULL THEN CHECK_ATTRIBUTE(fac6,6); END IF;
IF :new.fac7 <> :old.fac7 OR :new.fac7 IS NULL OR :old.fac7 IS NULL THEN CHECK_ATTRIBUTE(fac7,7); END IF;
IF :new.fac8 <> :old.fac8 OR :new.fac8 IS NULL OR :old.fac8 IS NULL THEN CHECK_ATTRIBUTE(fac8,8); END IF;
IF :new.fac9 <> :old.fac9 OR :new.fac9 IS NULL OR :old.fac9 IS NULL THEN CHECK_ATTRIBUTE(fac9,9); END IF;
END IF;
END;
/* Einde attributen */
#ifdef BCP
/* Procedure Taak */
IF :new.ins_deel_module = 'INS' AND :new.ins_alg_ruimte_type = 'R'
THEN
DECLARE
/* zoek taak bij nGebouw en bij deelsoort */
CURSOR c1(nGebouw NUMBER, nSrtdeel NUMBER) IS
SELECT A.bcp_taak_key, B.bcp_verzamel_key
FROM bcp_v_aanwezigtaak A, bcp_v_aanwezigverzamel B
WHERE A.bcp_verzamel_key = B.bcp_verzamel_key
AND B.bcp_ins_srtdeel_key = nSrtdeel
AND A.bcp_alg_gebouw_key = nGebouw;
Rec c1%ROWTYPE;
/* zoek alle verzamelopdrachten bij een deelsoort */
CURSOR c2(nSrtdeel NUMBER) IS
SELECT bcp_verzamel_key
FROM bcp_v_aanwezigverzamel
WHERE bcp_ins_srtdeel_key = nSrtdeel;
Rec2 c2%ROWTYPE;
nGebouw NUMBER(10);
nOudGebouw NUMBER(10);
nVerzamel NUMBER(10);
nUren NUMBER(10);
nMateriaal NUMBER(12);
nFreqWeken NUMBER(2);
nSector NUMBER(2);
nStartweek NUMBER(4);
nStartwerkweek NUMBER(4);
nJaar NUMBER(4);
nWeek NUMBER(4);
nWerkweek NUMBER(4);
nTaak NUMBER(10);
nStatus NUMBER(10);
nFactor NUMBER(10);
teller NUMBER(10);
teller2 NUMBER(10);
totaal NUMBER(10);
aant NUMBER(10);
nStatusUpper VARCHAR2(30);
verzamel_veranderd BOOLEAN;
taken_veranderd BOOLEAN;
nOthing BOOLEAN;
BEGIN
/* zoek gebouw en sector bij ruimte waar deel is */
SELECT A.alg_gebouw_key, A.bco_gebouw_sector
INTO nGebouw, nSector
FROM alg_v_aanweziggebouw A, alg_v_aanwezigverdieping B, alg_v_aanwezigruimte C
WHERE A.alg_gebouw_key = B.alg_gebouw_key
AND B.alg_verdieping_key = C.alg_verdieping_key
AND C.alg_ruimte_key = :new.ins_alg_ruimte_key;
IF NOT :old.ins_srtdeel_key IS NULL THEN
SELECT A.alg_gebouw_key
INTO nOudGebouw
FROM alg_v_aanweziggebouw A, alg_v_aanwezigverdieping B, alg_v_aanwezigruimte C
WHERE A.alg_gebouw_key = B.alg_gebouw_key
AND B.alg_verdieping_key = C.alg_verdieping_key
AND C.alg_ruimte_key = :old.ins_alg_ruimte_key;
END IF;
/* bepalen of de taken en eventueel de verzamelopdrachten van
het deel veranderd zijn. */
IF (:new.ins_srtdeel_key = :old.ins_srtdeel_key) AND (nGebouw = nOudGebouw) THEN
verzamel_veranderd := FALSE;
taken_veranderd := FALSE;
ELSIF (:new.ins_srtdeel_key = :old.ins_srtdeel_key) THEN
verzamel_veranderd := TRUE;
taken_veranderd := FALSE;
ELSE
verzamel_veranderd := TRUE;
taken_veranderd := TRUE;
END IF;
IF taken_veranderd THEN
/* alleen de taken bij oud_deel updaten als er een oud_deel is */
IF (NOT :old.ins_srtdeel_key IS NULL)
AND (NOT nOudGebouw IS NULL)
AND (NOT :old.ins_deel_verwijder = NULLDATUM)
THEN
OPEN c1(nOudGebouw, :old.ins_srtdeel_key);
LOOP
FETCH c1 INTO Rec;
EXIT WHEN c1%NOTFOUND;
nTaak := Rec.bcp_taak_key;
SELECT bcp_taak_aantal, bcp_ins_deel_aantal
INTO totaal, teller
FROM bcp_v_aanwezigtaak
WHERE bcp_taak_key = nTaak;
IF (teller = 1) THEN
UPDATE bcp_taak
SET bcp_taak_verwijder = SYSDATE
WHERE bcp_taak_key = nTaak;
ELSIF (teller > 1) THEN
/* bepaal aantal van het te verwijderen deel ...*/
aant := :old.ins_deel_aantal;
/* ... en pas de taak aan */
UPDATE bcp_taak
SET bcp_taak_uren = (totaal-aant)/totaal * bcp_taak_uren,
bcp_taak_materiaal = (totaal-aant)/totaal * bcp_taak_materiaal,
bcp_ins_deel_aantal = bcp_ins_deel_aantal-1,
bcp_taak_aantal = bcp_taak_aantal - :old.ins_deel_aantal
WHERE bcp_taak_key = nTaak;
END IF;
END LOOP;
CLOSE c1;
END IF; /* einde: CHANGE? */
/* nu passen we het nieuwe deel in de taken in,
(nog steeds taken_veranderd=TRUE) */
IF (NOT :new.ins_srtdeel_key IS NULL)
AND (NOT nGebouw IS NULL)
AND (NOT :new.ins_deel_verwijder = NULLDATUM)
THEN
OPEN c2(:new.ins_srtdeel_key);
LOOP
FETCH c2 INTO Rec2;
EXIT WHEN c2%NOTFOUND;
nVerzamel := Rec2.bcp_verzamel_key;
/* zoek of er een taak is bij de verzamelopdracht
en betreffende het gebouw */
BEGIN
SELECT bcp_taak_key
INTO nTaak
FROM bcp_v_aanwezigtaak
WHERE bcp_verzamel_key = nVerzamel
AND bcp_alg_gebouw_key = nGebouw;
EXCEPTION
WHEN NO_DATA_FOUND THEN
nTaak:= NULL;
END;
IF (nTaak IS NULL) THEN /* geen taak bij verzamel gevonden */
SELECT A.bcp_verzamel_uren, A.bcp_verzamel_materiaal, B.bcp_frequentie_weken
INTO nUren, nMateriaal, nFreqWeken
FROM bcp_verzamel A, bcp_frequentie B
WHERE A.bcp_frequentie_key = B.bcp_frequentie_key
AND A.bcp_verzamel_key = nVerzamel;
nJaar := mod(to_number(to_char(SYSDATE, 'YYYY')),100);
nStartweek := bcp_f_bcp4deel.bepaal_startweek(nSector, nFreqWeken, nVerzamel, nJaar);
INSERT INTO bcp_taak(bcp_verzamel_key,
bcp_alg_gebouw_key,
bcp_taak_uren,
bcp_taak_materiaal,
bcp_taak_eersteweek,
bcp_taak_aantal,
bcp_ins_deel_aantal)
VALUES(nVerzamel,
nGebouw,
nUren * :new.ins_deel_aantal,
nMateriaal * :new.ins_deel_aantal,
nStartweek,
:new.ins_deel_aantal,
1);
SELECT bcp_taak_key
INTO nTaak
FROM bcp_v_aanwezigtaak
WHERE bcp_verzamel_key = nVerzamel
AND bcp_alg_gebouw_key = nGebouw;
nStatus := bcp_f_bcp4deel.bepaalstatusopdrkey('BCP_STATUSOPDR_INGEPLAND');
nWeek := to_number(to_char(SYSDATE, 'YY') || to_char(SYSDATE,'WW'));
nOthing := bcp_f_bcp4deel.bcp_jaarweek2jaarwerkweek(nWeek, nWerkweek);
nOthing := bcp_f_bcp4deel.bcp_jaarweek2jaarwerkweek(nStartweek, nStartwerkweek);
INSERT INTO bcp_prevopdr(bcp_taak_key,
bcp_mld_statusopdr_key,
bcp_prevopdr_ingepland,
bcp_prevopdr_ingepland2)
VALUES(nTaak,
nStatus,
nStartweek,
nStartwerkweek);
ELSE /* Taak gevonden, bij elke gevonden verzamelopdracht
is er precies eentje, dus uniek */
SELECT bcp_taak_aantal, bcp_ins_deel_aantal,
bcp_taak_uren, bcp_taak_materiaal
INTO teller, teller2, nUren, nMateriaal
FROM bcp_v_aanwezigtaak A
WHERE A.bcp_taak_key = nTaak;
nFactor := (teller + :new.ins_deel_aantal)/teller;
IF (nUren * nFactor > 999.99) THEN
APPLICATION_ERROR(-20000,'bcp_m044');
END IF;
IF (nMateriaal * nFactor > 999999.99) THEN
APPLICATION_ERROR(-20000,'bcp_m045');
END IF;
UPDATE bcp_taak
SET bcp_taak_uren = bcp_taak_uren * nFactor,
bcp_taak_materiaal = bcp_taak_materiaal * NFactor,
bcp_taak_aantal = teller2 + :new.ins_deel_aantal,
bcp_ins_deel_aantal = teller + 1
WHERE bcp_taak_key = nTaak;
END IF;
END LOOP;
CLOSE c2;
END IF;
ELSE /* taken niet veranderd, alleen uren & materiaal even updaten */
OPEN c1(nOudGebouw, :old.ins_srtdeel_key);
LOOP
FETCH c1 INTO Rec;
EXIT WHEN c1%NOTFOUND;
nTaak := Rec.bcp_taak_key;
SELECT bcp_taak_uren, bcp_taak_materiaal, bcp_taak_aantal
INTO nUren, nMateriaal, teller
FROM bcp_v_aanwezigtaak
WHERE bcp_taak_key = nTaak;
/* factor is (totaal-oud+nieuw)/totaal */
nFactor := (teller + :new.ins_deel_aantal - :old.ins_deel_aantal)/teller;
IF (nUren * nFactor > 999.99) THEN
APPLICATION_ERROR(-20000,'bcp_m044');
END IF;
IF (nMateriaal * nFactor > 999999.99) THEN
APPLICATION_ERROR(-20000,'bcp_m045');
END IF;
UPDATE bcp_taak
SET bcp_taak_uren = bcp_taak_uren * nFactor,
bcp_taak_materiaal = bcp_taak_materiaal * NFactor,
bcp_taak_aantal = teller + :new.ins_deel_aantal - :old.ins_deel_aantal
WHERE bcp_taak_key = nTaak;
END LOOP; /* taken voor update */
CLOSE c1;
END IF; /* einde: taken_veranderd */
END;
END IF;
#endif
#ifdef LEV
LOG('Begin voor gedeelte van LEV voor kostenpost');
/* Bij het aanmaken van een leveringsregel wordt een INS_DEEL
* aangemaakt. Als OLD.lev_levering_key IS NULL en NEW.lev_levering_key
* IS NOT NULL dan wordt dit INS_DEEL nieuw aangemaakt, dus kunnen
* de kosten van deze levering bij ALG_KOSTENPOST_BESTEED geboekt worden.
*
* Bij het wijzigen van een leveringsregel kan niet bepaald worden of
* in het scherm EDIT-levering het aantal aangepast is of bij
* toekenning een aantal het INS_DEEL verhuisd naar een ander INS_DEEL.
* Deze stap is opgelost in het form EDIT-levering.
*/
IF :old.lev_levering_key IS NULL
AND :new.lev_levering_key IS NOT NULL
THEN
DECLARE
prijs INS_SRTDEEL.INV_SRTDEEL_PRIJS%TYPE;
BEGIN
SELECT NVL(INS_SD.inv_srtdeel_prijs, 0)
INTO prijs
FROM ins_srtdeel INS_SD
WHERE INS_SD.ins_srtdeel_key = :new.ins_srtdeel_key;
UPDATE alg_kostenpost
SET alg_kostenpost_besteed = NVL(alg_kostenpost_besteed, 0) +
NVL(:new.ins_deel_aantal, 0) * prijs
WHERE alg_kostenpost_key = (SELECT lev_alg_kostenpost_key
FROM lev_bestelling
WHERE lev_bestelling_key = :new.lev_bestelling_key);
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
END;
END IF;
LOG('Einde voor gedeelte van LEV voor kostenpost');
#endif
LOG('Eind INS_T_INS_DEEL_B_IU');
END;
/
#endif // INV
DEF_FAC_ENTITY ('INV_VERHUIS_DATUM', 'Verhuisdatum', 'Verhuisdata', 'de');
DEF_FAC_ENTITY ('INV_VERHUIS_VAN', 'Van', NULL, NULL);
DEF_FAC_ENTITY ('INV_VERHUIS_NAAR', 'Naar', NULL, NULL);
DEF_FAC_ENTITY ('INV_VERHUIS_BIJZONDERHEDEN', 'Bijzonderheden', NULL, 'de');
DEF_FAC_MESSAGE ('INV_M037', 'Verhuisformulier');
DEF_FAC_MESSAGE ('INV_M038', 'Het registratienummer moet ingevuld worden.');
DEF_FAC_MESSAGE ('INV_M039', 'De datum is niet ingevuld.');
DEF_FAC_MESSAGE ('INV_M040', 'Gewenste verhuisdatum');
DEF_FAC_MESSAGE ('INV_M041', 'Het artikelnummer is niet ingevuld.');
DEF_FAC_MESSAGE ('INV_M042', 'Gereserveerd voor afvoer');
DEF_FAC_MESSAGE ('INV_M043', 'Artikel moet gekozen zijn.');
DEF_FAC_MESSAGE ('INV_M044', 'Aantal te verwijderen artikelen');
DEF_FAC_MESSAGE ('INV_M045', 'Het te verwijderen aantal moet kleiner of gelijk zijn aan het aantal delen.');
#ifdef LEV
ALTER TABLE ins_deel
DROP
UNIQUE(ins_alg_ruimte_key, ins_srtdeel_key, ins_deel_upper,
lev_levering_key, lev_bestelling_key, ins_deel_verwijder);
ALTER TABLE ins_deel
ADD
UNIQUE(ins_alg_ruimte_key, ins_srtdeel_key, ins_deel_upper,
lev_levering_key, lev_bestelling_key, lev_afvoerlijst_datum,
ins_deel_verwijder);
#endif // LEV
INSERT INTO fac_message VALUES('LEV_M050', 'Alleen nog toe te wijzen leveringen');
UPDATE fac_entity_name
SET fac_entity_user_name = 'Artikelsoort',
fac_entity_user_name_m = 'Artikelsoorten',
fac_entity_user_name_pre = 'het'
WHERE fac_entity_system_name = 'INV_SRTDEEL';
UPDATE fac_message
SET fac_message_text = 'Verwijderen vakgroep '
WHERE fac_message_code = 'INV_M001';
UPDATE fac_message
SET fac_message_text = 'De omschrijving van de vakgroep is niet ingevuld.'
WHERE fac_message_code = 'INV_M002';
UPDATE fac_message
SET fac_message_text = 'De vakgroep is niet ingevuld.'
WHERE fac_message_code = 'INV_M004';
UPDATE fac_message
SET fac_message_text = 'De omschrijving voor het artikelsoort is niet ingevuld.'
WHERE fac_message_code = 'INV_M007';
UPDATE fac_message
SET fac_message_text = 'Verwijderen artikelsoort '
WHERE fac_message_code = 'INV_M008';
UPDATE fac_message
SET fac_message_text = 'Het artikelsoort is niet ingevuld.'
WHERE fac_message_code = 'INV_M012';
DEF_FAC_ENTITY ('PRS_PERSLID_ELCONR', 'Elconr.', 'Elconummers', 'het');
DEF_FAC_ENTITY ('PRS_PERSLID_EENHEID', 'Eenheid', 'Eenheden', 'de');
DEF_FAC_ENTITY ('PRS_PERSLID_RANG', 'Rang', 'Rangen', 'de');
SPOOL OFF

335
_UP/116TO117.SRC Normal file
View File

@@ -0,0 +1,335 @@
SPOOL 116to117
/*
* [V:\SQL\_UPDATE]
*
* Update script van versie 01.16 naar 01.17
*
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
* om #ifdef's te gebruiken voor de diverse modules.
*
* History:
*
* 25-06-96 EH Entities ALG_VERDIEPING_OPP en ALG_GEBOUW_OPP toegevoegd.
* 25-06-96 EH View prevopdr_gegevens aangepast; view openprevopdr_gegevens
* verwijderd (redundant).
* 21-06-96 AH INV-messages 028 en 016 aangepast.
* 21-06-96 EH Message prs_m053 toegevoegd.
* 20-06-96 AH UNIQUE op PRS_WERKPLEK uitgebreid met PRS_WERKPLEK_MODULE.
* 19-06-96 EH Entity 'ALG_TERREINSECTOR_B' (voor button) toegevoegd.
* 13-06-96 EH De volgende indices toegevoegd:
* - mld_alg_kostenpost_key aan mld_opdr
* - mld_opdr_key aan mld_bestelregel
* - mld_opdr_key aan bco_werkregel
* - mld_statusopdr_key aan bcp_prevopdr
* - bcp_prevopdr_key aan bco_werkregel
* - mra_eenheid aan mld_melding
* - mra_veroorzaker aan mld_melding
* 13-06-96 EH Indices voor LEV toegevoegd.
* 13-06-96 EH Indices voor SLE toegevoegd.
* 13-06-96 AH INV_M024 en INV_M030 saangepast.
* 10-06-96 EH Fac_message SCH_NIVO2 toegevoegd.
* 10-06-96 EH In ins_v_attr_hulp ins_v_.. veranderd in all_v ...
* 10-06-96 AH PRS_M052 toegevoegd.
* 07-06-96 KTH fac_privilege.object_name moeten UPPERs zijn (zie COMSQL.H)
* 07-06-96 EH alg_locatie_key toegevoegd aan ins_v_onderdeel_gegevens
* 07-06-96 EH UNIQUE constraint op srtinst tabellen uitgebreid.
* 06-06-96 AH PRS_WERKPLEK_MODULE toegevoegd.
* 05-06-96 KTH Lege file aangemaakt.
*/
#include "comsql.h"
update fac_privilege set object_name=UPPER(object_name);
DEF_FAC_MESSAGE ('SCH_NIVO2','Schoonmaakniveau');
DEF_FAC_MESSAGE ('PRS_M053', 'Afdeling moet worden ingevuld');
DEF_FAC_ENTITY ('ALG_VERDIEPING_OPP', 'Netto vloeropp.', NULL, NULL);
DEF_FAC_ENTITY ('ALG_GEBOUW_OPP', 'Netto vloeropp.', NULL, NULL);
#ifdef PRS
ALTER TABLE prs_werkplek
ADD
( prs_werkplek_module
VARCHAR2(3)
DEFAULT 'PRR');
UPDATE prs_werkplek
SET prs_werkplek_module = 'PRR';
ALTER TABLE prs_werkplek
MODIFY
(
prs_werkplek_module
NOT NULL
);
#endif
#ifdef SLE
CREATE INDEX sle_i_sle_sleutel_perslid1 ON sle_sleutel_perslid(sle_prs_perslid_key);
CREATE INDEX sle_i_sle_sleutel_perslid2 ON sle_sleutel_perslid(sle_sleutel_key);
CREATE INDEX sle_i_sle_sleutel_slot1 ON sle_sleutel_slot(sle_sleutel_key);
CREATE INDEX sle_i_sle_sleutel_slot2 ON sle_sleutel_slot(sle_slot_key);
CREATE INDEX sle_i_sle_slot ON sle_slot(sle_alg_onroerendgoed_keys);
#endif
#ifdef LEV
CREATE INDEX lev_i_lev_bestelling1 ON lev_bestelling (lev_alg_kostenpost_key);
CREATE INDEX lev_i_lev_bestelling2 ON lev_bestelling (lev_prs_bedrijf_key);
CREATE INDEX lev_i_lev_bestelling3 ON lev_bestelling (lev_prs_perslid_key);
CREATE INDEX lev_i_lev_bestelling4 ON lev_bestelling (lev_alg_gebouw_key);
CREATE INDEX lev_i_lev_bestelregel1 ON lev_bestelregel (lev_bestelling_key);
CREATE INDEX lev_i_lev_bestelregel2 ON lev_bestelregel (lev_ins_srtdeel_key);
CREATE INDEX lev_i_lev_bestelregel3 ON lev_bestelregel (lev_alg_ruimte_key);
CREATE INDEX lev_i_lev_levering ON lev_levering (lev_prs_bedrijf_key);
#endif
#ifdef MLD
CREATE INDEX mld_i_mld_opdr7 on mld_opdr(mld_alg_kostenpost_key);
CREATE INDEX mld_i_mld_bestelregel2 on mld_bestelregel(mld_opdr_key);
#endif
#ifdef BCO
CREATE INDEX bco_i_bco_werkregel2 on bco_werkregel(bco_mld_opdr_key);
#endif
#ifdef BCP
CREATE INDEX bcp_i_bcp_prevopdr4 on bcp_prevopdr(bcp_mld_statusopdr_key);
CREATE INDEX bcp_i_bco_werkregel1 on bco_werkregel(bcp_prevopdr_key);
CREATE_VIEW(bcp_v_prevopdr_gegevens,NORMAAL_PRIVILEGE)
( bcp_prevopdr_key,
bcp_prevopdr_status,
bcp_prevopdr_jaarweek,
bcp_prevopdr_discipline,
bcp_prevopdr_locatie) AS
SELECT BCP_P.bcp_prevopdr_key,
MLD_S.mld_statusopdr_omschrijving,
BCP_P.bcp_prevopdr_week,
INS_D.ins_discipline_omschrijving,
ALG_L.alg_locatie_omschrijving
FROM bcp_prevopdr BCP_P,
mld_statusopdr MLD_S,
bcp_taak BCP_T,
bcp_v_aanwezigverzamel BCP_V,
ins_v_aanwezigsrtdeel INS_SD,
ins_srtgroep INS_SG,
ins_discipline INS_D,
alg_v_aanweziggebouw ALG_G,
alg_locatie ALG_L
WHERE BCP_P.bcp_mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND BCP_P.bcp_taak_key = BCP_T.bcp_taak_key
AND BCP_T.bcp_verzamel_key = BCP_V.bcp_verzamel_key
AND BCP_V.bcp_ins_srtdeel_key = INS_SD.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
AND BCP_T.bcp_alg_gebouw_key = ALG_G.alg_gebouw_key
AND ALG_G.alg_locatie_key = ALG_L.alg_locatie_key;
DROP VIEW bcp_v_openprevopdr_gegevens;
#endif
#ifdef MRA
CREATE INDEX mra_i_mra_melding2 on mld_melding(mra_melding_melder_eenheid);
CREATE INDEX mra_i_mra_melding3 on mld_melding(mra_melding_veroorzaker);
#endif
#ifdef INS
ALTER TABLE ins_discipline
DROP
UNIQUE(ins_discipline_omschrijving, ins_discipline_verwijder);
ALTER TABLE ins_srtgroep
DROP
UNIQUE(ins_srtgroep_upper, ins_srtgroep_verwijder);
ALTER TABLE ins_srtdeel
DROP
UNIQUE(ins_srtdeel_upper, ins_srtdeel_verwijder);
ALTER TABLE ins_discipline
ADD
(
UNIQUE(ins_discipline_omschrijving, ins_discipline_verwijder,
ins_discipline_module)
);
ALTER TABLE ins_srtgroep
ADD
(
UNIQUE(ins_srtgroep_upper, ins_srtgroep_verwijder, ins_srtgroep_module)
);
ALTER TABLE ins_srtdeel
ADD
(
UNIQUE(ins_srtdeel_upper,ins_srtdeel_verwijder, ins_srtdeel_module)
);
DROP VIEW ins_v_onderdeel_gegevens;
CREATE VIEW ins_v_onderdeel_gegevens
(
ins_srtdeel_key, ins_srtdeel_omschrijving,
ins_srtdeel_upper, ins_srtonderdeel_key,
ins_srtonderdeel_omschrijving, ins_srtonderdeel_upper,
ins_deel_key, ins_deel_omschrijving,
ins_deel_upper, ins_onderdeel_key,
ins_onderdeel_omschrijving, ins_onderdeel_aantal,
ins_onderdeel_fabrikaat, ins_onderdeel_type,
ins_onderdeel_serienr,ins_onderdeel_bouwjaar,
ins_onderdeel_capaciteit, ins_onderdeel_prijs,
ins_onderdeel_levensduur, ins_onderdeel_opmerking,
ins_onderdeel_upper, alg_locatie_key,
alg_gebouw_key, alg_gebouw_upper, alg_verdieping_key,
alg_verdieping_upper, alg_ruimte_key, alg_ruimte_nr,
plaatsdeel_omschrijving
)
AS
SELECT ins_D.ins_srtdeel_key, ins_D.ins_srtdeel_omschrijving,
ins_D.ins_srtdeel_upper, ins_SOD.ins_srtonderdeel_key,
ins_SOD.ins_srtonderdeel_omschrijving, ins_SOD.ins_srtonderdeel_upper,
ins_D.ins_deel_key, ins_D.ins_deel_omschrijving,
ins_D.ins_deel_upper, ins_OD.ins_onderdeel_key,
ins_OD.ins_onderdeel_omschrijving, ins_OD.ins_onderdeel_aantal,
ins_OD.ins_onderdeel_fabrikaat, ins_OD.ins_onderdeel_type,
ins_OD.ins_onderdeel_serienr,ins_OD.ins_onderdeel_bouwjaar,
ins_OD.ins_onderdeel_capaciteit, ins_OD.ins_onderdeel_prijs,
ins_OD.ins_onderdeel_levensduur, ins_OD.ins_onderdeel_opmerking,
ins_OD.ins_onderdeel_upper, ins_D.alg_locatie_key,
ins_D.alg_gebouw_key, ins_D.alg_gebouw_upper,
ins_D.alg_verdieping_key, ins_D.alg_verdieping_upper,
ins_D.alg_ruimte_key, ins_D.alg_ruimte_nr,
ins_D.plaatsdeel_omschrijving
FROM ins_v_aanwezigsrtonderdeel ins_SOD,
ins_v_aanwezigonderdeel ins_OD,
ins_v_deel_gegevens ins_D
WHERE
ins_SOD.ins_srtonderdeel_key = ins_OD.ins_srtonderdeel_key AND
ins_D.ins_deel_key = ins_OD.ins_deel_key;
CREATE_VIEW(ins_v_attr_hulp, NORMAAL_PRIVILEGE)
(ins_discipline_key,
ins_srtgroep_key,
ins_srtdeel_key,
ins_attribute_main_key) AS
SELECT INS_A.ins_srtinst_keys,
TO_NUMBER(NULL),
TO_NUMBER(NULL),
INS_A.ins_attribute_main_key
FROM ins_attribute INS_A
WHERE INS_A.ins_srtinst_type = 'D'
UNION
SELECT TO_NUMBER(NULL),
INS_A.ins_srtinst_keys,
TO_NUMBER(NULL),
INS_A.ins_attribute_main_key
FROM ins_attribute INS_A
WHERE INS_A.ins_srtinst_type = 'G'
UNION
SELECT TO_NUMBER(NULL),
INS_SG.ins_srtgroep_key,
TO_NUMBER(NULL),
INS_A.ins_attribute_main_key
FROM ins_attribute INS_A,
ins_srtgroep INS_SG
WHERE INS_A.ins_srtinst_type = 'D' AND
INS_A.ins_srtinst_keys = INS_SG.ins_discipline_key
UNION
SELECT TO_NUMBER(NULL),
TO_NUMBER(NULL),
INS_A.ins_srtinst_keys,
INS_A.ins_attribute_main_key
FROM ins_attribute INS_A
WHERE INS_A.ins_srtinst_type = 'S'
UNION
SELECT TO_NUMBER(NULL),
TO_NUMBER(NULL),
INS_SD.ins_srtdeel_key,
INS_A.ins_attribute_main_key
FROM ins_attribute INS_A,
ins_srtdeel INS_SD
WHERE INS_A.ins_srtinst_type = 'G' AND
INS_A.ins_srtinst_keys = INS_SD.ins_srtgroep_key
UNION
SELECT TO_NUMBER(NULL),
TO_NUMBER(NULL),
INS_SDG.ins_srtdeel_key,
INS_A.ins_attribute_main_key
FROM ins_attribute INS_A,
all_v_srtdeel_gegevens INS_SDG
WHERE INS_A.ins_srtinst_type = 'D' AND
INS_A.ins_srtinst_keys = INS_SDG.ins_discipline_key;
#endif
INSERT INTO fac_message VALUES('PRS_M052', 'Inzetbaar voor storing');
DELETE FROM fac_message
WHERE UPPER(fac_message_code) = 'INV_M024';
INSERT INTO fac_message VALUES('INV_M024', 'De plaats is niet ingevuld.');
DELETE FROM fac_message
WHERE UPPER(fac_message_code) = 'INV_M030';
INSERT INTO fac_message VALUES('INV_M030', 'Inventaris in ruimte');
DELETE FROM fac_message
WHERE UPPER(fac_message_code) = 'INV_M028';
INSERT INTO fac_message VALUES('INV_M028', 'De eigenaar is niet ingevuld.');
DELETE FROM fac_message
WHERE UPPER(fac_message_code) = 'INV_M016';
INSERT INTO fac_message VALUES('INV_M016', 'Eigenaar van inventaris');
#if defined(PMK)||defined(pmk)
DEF_FAC_ENTITY ('ALG_TERREINSECTOR_B', 'Syst. cluster', Null, Null);
#else
DEF_FAC_ENTITY ('ALG_TERREINSECTOR_B', 'Terreinsector', 'Terreinsectoren', 'de');
#endif
#ifdef PRS
ALTER TABLE prs_werkplek
DROP UNIQUE(prs_werkplek_volgnr, prs_alg_ruimte_key, prs_werkplek_verwijder);
ALTER TABLE prs_werkplek
ADD UNIQUE(prs_werkplek_module, prs_werkplek_volgnr, prs_alg_ruimte_key, prs_werkplek_verwijder);
#endif
#ifdef LEV
ALTER TABLE ins_deel
DROP
UNIQUE(ins_alg_ruimte_key, ins_srtdeel_key, ins_deel_upper,
lev_levering_key, lev_bestelling_key, lev_afvoerlijst_datum,
ins_deel_verwijder);
ALTER TABLE ins_deel
ADD
UNIQUE(ins_alg_ruimte_key, ins_prs_bezit_key, ins_srtdeel_key, ins_deel_upper,
lev_levering_key, lev_bestelling_key, lev_afvoerlijst_datum,
ins_deel_verwijder);
#endif
SPOOL OFF

1037
_UP/117TO118.SRC Normal file

File diff suppressed because it is too large Load Diff

1517
_UP/118TO119.SRC Normal file

File diff suppressed because it is too large Load Diff

1640
_UP/120TO121.SRC Normal file

File diff suppressed because it is too large Load Diff

254
_UP/121TO122.SRC Normal file
View File

@@ -0,0 +1,254 @@
SPOOL 121to122
/*
* [V:\SQL\_UPDATE]
*
* Update script van versie 01.21 naar 01.22
*
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
* om #ifdef's te gebruiken voor de diverse modules.
*
* History:
*
* 08-11-96 AH INV_DEEL_GEBRUIK voor HUI-module heet 'Plaats'
* 08-11-96 AH LOG#965, 970: Messages aangepast en toegevoegd
* 07-11-96 AH LOG#985: ALG_RUIMTE-velden toeegevoegd,
* HUI_V_OVERNACHTING_GEGEVENS aangepast
* 07-11-96 AH LOG#976: FAC_GEBRUIKER-table toegevoegd
* HUI_V_AANWEZIGHUISMEESTER aangepast
* 06-11-96 AH LOG#823: INV_M049 - 053 en ALG_M194 toegevoegd
* 05-11-96 AH LOG#979: BCP_M100 - 103 toegevoegd
* 05-11-96 AH LOG#979: BCO_M132 - 135 toegevoegd
* 04-11-96 AH LOG#968: INS_M099 gekopieerd naar INS_M114 voor enkelvoud
* LOG#970: INS_M115 en 116 toegevoegd
* 04-11-96 AH INS_M113 toegevoegd
* 01-11-96 AH ALL_V_SRTDEEL_GEGEVENS aangepast voor INS012
* 01-11-96 AH LOG#828: HUI_V_RUIMTEBOEKING_GEGEVENS aangepast
* 01-11-96 AH LOG#831: LEV_POSTADRES toegevoegd
* ------ 01.21 -----
*/
#include <modules.h>
PROMPT Upgrading van versie 121 naar 122...
DEF_FAC_ENTITY ('LEV_POSTADRES', 'Factuuradres', NULL, NULL);
#ifdef HUI
CREATE_VIEW(hui_v_ruimteboeking_gegevens, NORMAAL_PRIVILEGE)
(hui_ruimteboeking_key,
alg_locatie_key,
alg_gebouw_key,
alg_gebouw_code,
alg_verdieping_key,
alg_verdieping_omschrijving,
alg_verdieping_volgnr,
alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_upper_nr,
alg_ruimte_omschrijving,
prs_huismeester_key,
prs_perslid_key,
prs_perslid_nr,
prs_perslid_naam,
hui_ruimteboeking_begindatum,
hui_ruimteboeking_einddatum) AS
SELECT HUI_R.hui_ruimteboeking_key,
ALG_G.alg_locatie_key,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_code,
ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving,
ALG_V.alg_verdieping_volgnr,
ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_nr,
ALG_R.alg_ruimte_upper_nr,
ALG_R.alg_ruimte_omschrijving,
ALG_R.prs_huismeester_key,
PRS_P.prs_perslid_key,
PRS_P.prs_perslid_nr,
PRS_P.prs_perslid_naam||' '||PRS_P.prs_perslid_voorletters,
HUI_R.hui_ruimteboeking_begindatum,
HUI_R.hui_ruimteboeking_einddatum
FROM alg_gebouw ALG_G, alg_verdieping ALG_V, alg_v_aanwezigruimte ALG_R,
prs_perslid PRS_P, hui_ruimteboeking HUI_R
WHERE ALG_G.alg_gebouw_key = ALG_V.alg_gebouw_key
AND ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key
AND ALG_R.alg_ruimte_key = HUI_R.hui_alg_ruimte_key
AND PRS_P.prs_perslid_key = HUI_R.hui_prs_perslid_key;
#endif
#ifdef INS
CREATE_VIEW(all_v_srtdeel_gegevens,BIBLIOTHEEK_PRIVILEGE) AS
SELECT ins_D.ins_discipline_key, ins_D.ins_discipline_omschrijving,
ins_SG.ins_srtgroep_key, ins_SG.ins_srtgroep_omschrijving,
ins_SG.ins_srtgroep_upper, ins_SD.ins_srtdeel_key,
ins_SD.ins_srtdeel_omschrijving, ins_SD.ins_srtdeel_upper,
ins_SD.ins_srtdeel_module
#ifdef INV
, ins_SD.inv_srtdeel_nr
#endif
FROM all_v_aanwezigdiscipline ins_D, all_v_aanwezigsrtgroep ins_SG,
all_v_aanwezigsrtdeel ins_SD
WHERE
ins_SG.ins_srtgroep_key = ins_SD.ins_srtgroep_key AND
ins_D.ins_discipline_key = ins_SG.ins_discipline_key;
#endif
DEF_FAC_MESSAGE ('INS_M113', 'Aantal moet groter zijn dan 0.');
DEF_FAC_MESSAGE ('INS_M114', '%1% deel van de %2% gekopieerd.');
DEF_FAC_MESSAGE ('INS_M115', 'Ruimte mag niet ingevuld zijn.');
#ifdef BCO
DEF_FAC_MESSAGE ('INS_M116', 'Bouwlaag mag niet ingevuld zijn.');
#else
DEF_FAC_MESSAGE ('INS_M116', 'Verdieping mag niet ingevuld zijn.');
#endif
DEF_FAC_MESSAGE ('BCO_M132', 'Correctieve opdracht %1% van bedrijf %2% is ingetrokken');
DEF_FAC_MESSAGE ('BCO_M133', 'Correctieve opdracht %1% van bestek %2% is ingetrokken');
DEF_FAC_MESSAGE ('BCO_M134', 'Correctieve opdracht %1% van functie bij bedrijf %2% is ingetrokken');
DEF_FAC_MESSAGE ('BCO_M135', 'Correctieve opdracht %1% van persoon %2% is ingetrokken');
DEF_FAC_MESSAGE ('BCP_M100', 'Preventieve opdracht %1% van bedrijf %2% is ingetrokken');
DEF_FAC_MESSAGE ('BCP_M101', 'Preventieve opdracht %1% van bestek %2% is ingetrokken');
DEF_FAC_MESSAGE ('BCP_M102', 'Preventieve opdracht %1% van functie bij bedrijf %2% is ingetrokken');
DEF_FAC_MESSAGE ('BCP_M103', 'Preventieve opdracht %1% van persoon %2% is ingetrokken');
INSERT INTO FAC_MESSAGE VALUES('BCP_M103', 'Preventieve opdracht %1% van persoon %2% is ingetrokken');
INSERT INTO FAC_MESSAGE VALUES('INV_M049', 'Er zijn geen artikelen geselecteerd');
INSERT INTO FAC_MESSAGE VALUES('INV_M050', 'De geselecteerd artikelen ontkoppelen of verwijderen?');
INSERT INTO FAC_MESSAGE VALUES('INV_M051', 'Afvoeren of verwijderen');
INSERT INTO FAC_MESSAGE VALUES('INV_M052', 'De geselecteerd artikelen afvoeren of verwijderen?');
INSERT INTO FAC_MESSAGE VALUES('INV_M053', 'De geselecteerd artikelen koppelen aan persoon');
INSERT INTO FAC_MESSAGE VALUES('ALG_M194', 'Deze functie is niet toegestaan met meerdere geselecteerde records');
#ifdef FAC
// Table voor autorisatie
CREATE_TABLE(fac_gebruiker, BASIS_PRIVILEGE)
(
FAC_USERNAME
VARCHAR2(30)
NOT NULL,
FAC_MODULE
VARCHAR2(3)
NOT NULL,
FAC_TABEL
VARCHAR2(32),
FAC_KOLOM
VARCHAR2(32),
FAC_KEY
NUMBER(10),
FAC_SOORT
VARCHAR2(1)
);
#endif
#ifdef HUI
CREATE_VIEW(hui_v_aanwezighuismeester, NORMAAL_PRIVILEGE)
AS
SELECT HUI_P.*
FROM hui_v_aanwezigperslid HUI_P, fac_gebruiker FAC_G
WHERE fac_module = 'HUI'
AND fac_tabel = 'PRS_PERSLID'
AND fac_kolom = 'PRS_PERSLID_KEY'
AND fac_key = HUI_P.prs_perslid_key;
CREATE OR REPLACE VIEW hui_v_overnachting_gegevens
AS
SELECT ALG_G.alg_locatie_key,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_omschrijving,
ALG_G.alg_gebouw_upper,
ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving,
ALG_V.alg_verdieping_volgnr,
ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_nr,
ALG_R.alg_ruimte_upper_nr,
ALG_R.prs_huismeester_key,
ALG_R.hui_categorie_key,
ALG_R.hui_eenheid,
ALG_R.hui_geslacht,
HUI_W.prs_werkplek_key,
HUI_W.prs_werkplek_module,
HUI_W.prs_werkplek_volgnr,
HUI_PW.prs_perslidwerkplek_key,
HUI_PW.hui_status,
HUI_PW.hui_begindatum,
HUI_PW.hui_einddatum,
HUI_PW.prs_perslid_key
FROM hui_v_aanwezigwerkplek HUI_W,
alg_ruimte ALG_R, alg_verdieping ALG_V, alg_gebouw ALG_G,
hui_v_aanwezigperslidwerkplek HUI_PW
WHERE HUI_W.prs_alg_ruimte_key = ALG_R.alg_ruimte_key
AND ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
AND HUI_W.prs_werkplek_key = HUI_PW.prs_werkplek_key
UNION
SELECT ALG_G.alg_locatie_key,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_omschrijving,
ALG_G.alg_gebouw_upper,
ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving,
ALG_V.alg_verdieping_volgnr,
ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_nr,
ALG_R.alg_ruimte_upper_nr,
ALG_R.prs_huismeester_key,
ALG_R.hui_categorie_key,
ALG_R.hui_eenheid,
ALG_R.hui_geslacht,
HUI_W.prs_werkplek_key,
HUI_W.prs_werkplek_module,
HUI_W.prs_werkplek_volgnr,
TO_NUMBER(NULL),
NULL,
TO_DATE(NULL),
TO_DATE(NULL),
TO_NUMBER(NULL)
FROM hui_v_aanwezigwerkplek HUI_W,
alg_ruimte ALG_R, alg_verdieping ALG_V, alg_gebouw ALG_G
WHERE HUI_W.prs_alg_ruimte_key = ALG_R.alg_ruimte_key
AND ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key;
#endif
#ifdef ALG
ALTER TABLE alg_ruimte
ADD
(
alg_ruimte_vloer_omschrijving
VARCHAR2(15),
alg_ruimte_opp_gevelglas
NUMBER(8,2),
alg_ruimte_opp_separatieglas
NUMBER(8,2),
alg_ruimte_opp_gevelbekleding
NUMBER(8,2)
);
#endif
INSERT INTO FAC_MESSAGE VALUES('INS_M117', 'Terreinsector kopieren ');
INSERT INTO FAC_MESSAGE VALUES('INS_M118', 'Wilt u de gehele terreinsector kopieren?');
DELETE FROM fac_message
WHERE fac_message_code IN ('INS_M061', 'INS_M050', 'INS_M091', 'MRA_M018',
'ALG_M079', 'ALG_M082', 'ALG_M085', 'ALG_M159');
INSERT INTO FAC_MESSAGE VALUES('INS_M061', 'Wilt u het deel kopieren?');
INSERT INTO FAC_MESSAGE VALUES('INS_M050', 'Ruimte moet gekozen zijn.');
INSERT INTO FAC_MESSAGE VALUES('INS_M091', 'Gebouw moet gekozen zijn.');
INSERT INTO FAC_MESSAGE VALUES('MRA_M018','Terreinsector moet gekozen zijn.');
INSERT INTO FAC_MESSAGE VALUES('ALG_M079', 'Verwijderen Gebouw %1%, inclusief delen');
INSERT INTO FAC_MESSAGE VALUES('ALG_M082', 'Verwijderen Bouwlaag %1%, inclusief delen');
INSERT INTO FAC_MESSAGE VALUES('ALG_M085', 'Verwijderen Ruimte %1%, inclusief delen');
INSERT INTO FAC_MESSAGE VALUES('ALG_M159', 'De geselecteerde ruimtes, inclusief delen verwijderen');
INSERT INTO FAC_MESSAGE VALUES('ALG_M195','Verwijderen terreinsector %1%, inclusief delen');
#ifdef HUI
DELETE FROM fac_entity_name
WHERE fac_entity_system_name = 'INV_DEEL_GEBRUIK';
INSERT INTO FAC_ENTITY_NAME VALUES('INV_DEEL_GEBRUIK', 'Plaats', NULL, 'het');
#endif
PROMPT Vergeet niet te committen!

833
_UP/122TO123.SRC Normal file
View File

@@ -0,0 +1,833 @@
SPOOL 122to123
/*
* [V:\SQL\_UPDATE]
*
* Update script van versie 01.22 naar 01.23
*
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
* om #ifdef's te gebruiken voor de diverse modules.
*
* History:
*
* --- 01.23 ---
* 18-11-96 AH HUI_M051 toegevoegd
* 18-11-96 AG LOG#1034: BCO_M136, BCO_M137 toegevoegd, BCO_M113/114 aangepast
* 18-11-96 AG LOG#1043: Messages voor BCO_COMMENTAAR aangepast
* 18-11-96 AH LOG#985: HUI215/216 toegevoegd
* 15-11-96 AH LOG#985: Hui-frequentie zaken toegevoegd + ALG_V_RUIMTE_GEGEVENS
*+18-11-96 aangepast
* 15-11-96 AH De DELETE-code van locatiebestek is nu een FUNCTION geworden
* en wordt aangeroepen en in PRS021 en PRS023 bij Verwijderen
* PRS_T_PRS_LOCATIEBESTEK_B_D-trigger is verwijderd
* 14-11-96 AH LOG#1043: BCO_COMMENTAAR te klein tekst-veld en Objectgroep
* en Jaarweek opslaan,
* 14-11-96 AH LOG#1035: PRS_T_PRS_LOCATIEBESTEK_B_IU en _B_D aangepast.
* 14-11-96 AH LOG#1035: PRS_M092 aangepast, PRS_M097 - PRS_M099 toegevoegd
* 13-11-96 AH LOG#1035: PRS_T_PRS_DISCBESTEK_B_D aangepast, Als discipline-
* bestek als default uitvoerende is aangegeven bij mld_opdr
* of bij prevopdr dan mag deze ook niet verwijderd worden.
* Zelfde extra conditie geldt bij verwijderen LocatieBestek
* 13-11-96 AH LOG#1035: PRS_M088 aangepast
* 13-11-96 AH LOG#1033: MLD_M55 aangepast.
* 13-11-96 AH LOG#1021: MLD_M163, BCP_M104, BCP_M105, BCP_M106, BCP_M107 toegevoegd
* 12-11-96 AH LOG#1019: PRS_M096 toegevoegd
* 12-11-96 AH MLD_V_OPENOPDR aangepast voor Historisch overzicht.
* Ook Ingevoerde opdrachten worden meegenomen.
* 12-11-96 AH LOG#1012: BCO_V_INSTMELDING_GEGEVENS aangepast
* 12-11-96 AH LOG#1006: BCO_V_BCP_BCO_OPDR aangepast, ook locatie_key meenemen
* 12-11-96 AH LOG#999, 1000: BCP_M070 en BCP_M069 aangepast
* 11-11-96 AH LOG#991: MLD_M135 aangepast
* 11-11-96 AH LOG#988: opgelost in mld_t_mld_opdr_b_d en
* bcp_t_bcp_prevopdr_b_d
* ------ 01.22 -----
*/
#include <comsql.h>
#include <modules.h>
PROMPT Upgrading van versie 122 naar 123...
#ifdef MLD
CREATE OR REPLACE TRIGGER mld_t_mld_opdr_b_d
BEFORE DELETE ON mld_opdr
FOR EACH ROW
BEGIN
/* Een verwerkte opdracht mag niet verwijderd worden */
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM mld_statusopdr MLD_S
WHERE :old.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND MLD_S.mld_statusopdr_omschrijving = 'Verwerkt';
APPLICATION_ERROR(-20002, 'mld_m135');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
END;
#ifdef BCO
/* Een opdracht die voorkomt op een werkregel mag niet verwijderd worden.
*/
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM bco_werkregel
WHERE bcp_mld_opdr_key = :old.mld_opdr_key;
APPLICATION_ERROR(-20002, 'mld_m158');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20002, 'mld_m158');
END;
#endif
/* Een opdracht komt nog voor in een bestelopdracht, mag niet verwijderd worden.
*/
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM mld_bestelregel
WHERE bcp_mld_opdr_key = :old.mld_opdr_key;
APPLICATION_ERROR(-20002, 'mld_m162');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20002, 'mld_m162');
END;
END;
/
#endif // MLD
#ifdef BCP
CREATE OR REPLACE TRIGGER bcp_t_bcp_prevopdr_b_d
BEFORE DELETE ON bcp_prevopdr
FOR EACH ROW
BEGIN
/* Een verwerkte opdracht mag niet verwijderd worden */
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM mld_statusopdr MLD_S
WHERE :old.bcp_mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND MLD_S.mld_statusopdr_omschrijving = 'Verwerkt';
APPLICATION_ERROR(-20002, 'mld_m135');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
END;
/* Een opdracht die voorkomt op een werkregel mag niet verwijderd worden.
*/
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM bco_werkregel
WHERE bcp_mld_opdr_key = :old.bcp_prevopdr_key;
APPLICATION_ERROR(-20002, 'mld_m158');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20002, 'mld_m158');
END;
/* Een opdracht komt nog voor in een bestelopdracht, mag niet verwijderd worden.
*/
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM mld_bestelregel
WHERE bcp_mld_opdr_key = :old.bcp_prevopdr_key;
APPLICATION_ERROR(-20002, 'mld_m162');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20002, 'mld_m162');
END;
END;
/
#endif // BCP
DEF_FAC_MESSAGE ('MLD_M162', 'De opdracht komt nog op een bestelopdracht voor.');
DELETE FROM fac_message
WHERE fac_message_code in ('MLD_M135', 'BCP_M069', 'BCP_M070');
#if defined(MRA)
DEF_FAC_MESSAGE ('mld_m135', 'Verwerkte activiteit mag niet verwijderd worden.');
#else
DEF_FAC_MESSAGE ('mld_m135', 'Verwerkte opdracht mag niet verwijderd worden.');
#endif // MRA
DEF_FAC_MESSAGE ('BCP_M069', 'De datum van de meterstand is niet ingevuld.');
DEF_FAC_MESSAGE ('BCP_M070', 'De meterstand is niet ingevuld.');
#ifdef BCO
CREATE_VIEW (bco_v_bcp_bco_opdr, NORMAAL_PRIVILEGE)
( bcp_bco_opdr_key,
bcp_bco_opdr_module,
bcp_bco_uitvoerende_keys,
bcp_bco_statusopdr_key,
bcp_bco_opdr_uren,
bcp_bco_opdr_materiaal,
bcp_bco_opdr_kosten,
bcp_bco_opdr_werkzaamheden,
bcp_bco_opdr_week,
alg_locatie_key) AS
SELECT MLD_O.mld_opdr_key,
'BCO',
MLD_O.mld_uitvoerende_keys,
MLD_O.mld_statusopdr_key,
MLD_O.mld_opdr_uren,
MLD_O.mld_opdr_materiaal,
MLD_O.mld_opdr_kosten,
MLD_O.mld_opdr_werkzaamheden,
MLD_O.bco_opdr_weekuitgifte,
MLD_OL.alg_locatie_key
FROM mld_opdr MLD_O, mld_melding MLD_M, mld_v_onroerendgoed_locatie MLD_OL
WHERE MLD_OL.alg_onroerendgoed_keys = MLD_M.mld_alg_onroerendgoed_keys
AND MLD_O.mld_melding_key = MLD_M.mld_melding_key
AND MLD_O.mld_opdr_module = 'BCO'
UNION
SELECT BCP_P.bcp_prevopdr_key,
'BCP',
BCP_P.bcp_mld_uitvoerende_keys,
BCP_P.bcp_mld_statusopdr_key,
BCP_P.bcp_prevopdr_uren,
BCP_P.bcp_prevopdr_materiaal,
BCP_P.bcp_prevopdr_kosten,
BCP_P.bcp_prevopdr_werkzaamheden,
BCP_P.bcp_prevopdr_week,
MLD_OL.alg_locatie_key
FROM bcp_prevopdr BCP_P, bcp_taak BCP_T, mld_v_onroerendgoed_locatie MLD_OL
WHERE MLD_OL.alg_onroerendgoed_keys = BCP_T.bcp_alg_gebouw_key
AND BCP_P.bcp_taak_key = BCP_T.bcp_taak_key;
CREATE_VIEW(bco_v_instmelding_gegevens,NORMAAL_PRIVILEGE) (bco_instmelding_key,
bco_mld_melding_key,
ins_srtdeel_omschrijving,
ins_srtdeel_upper,
ins_deel_omschrijving,
ins_deel_upper,
ins_onderdeel_omschrijving,
ins_onderdeel_upper,
ins_element_omschrijving,
ins_element_upper) AS
SELECT BCO_I.bco_instmelding_key,
BCO_I.bco_mld_melding_key,
INS_SD.ins_srtdeel_omschrijving,
INS_SD.ins_srtdeel_upper,
INS_D.ins_deel_omschrijving,
INS_D.ins_deel_upper,
NULL,
NULL,
NULL,
NULL
FROM bco_instmelding BCO_I, ins_v_inst INS_I, ins_v_aanwezigsrtdeel INS_SD,
ins_v_aanwezigdeel INS_D
WHERE BCO_I.bco_ins_inst_keys = INS_I.ins_inst_keys
AND INS_I.ins_type = 'D'
AND INS_I.ins_inst_keys = INS_D.ins_deel_key
AND INS_D.ins_srtdeel_key = INS_SD.ins_srtdeel_key
UNION
SELECT BCO_I.bco_instmelding_key,
BCO_I.bco_mld_melding_key,
INS_SD.ins_srtdeel_omschrijving,
INS_SD.ins_srtdeel_upper,
INS_D.ins_deel_omschrijving,
INS_D.ins_deel_upper,
INS_O.ins_onderdeel_omschrijving,
INS_O.ins_onderdeel_upper,
NULL,
NULL
FROM bco_instmelding BCO_I, ins_v_inst INS_I, ins_v_aanwezigsrtdeel INS_SD,
ins_v_aanwezigdeel INS_D, ins_v_aanwezigonderdeel INS_O
WHERE BCO_I.bco_ins_inst_keys = INS_I.ins_inst_keys
AND INS_I.ins_type = 'O'
AND INS_I.ins_inst_keys = INS_O.ins_onderdeel_key
AND INS_O.ins_deel_key = INS_D.ins_deel_key
AND INS_D.ins_srtdeel_key = INS_SD.ins_srtdeel_key
UNION
SELECT BCO_I.bco_instmelding_key,
BCO_I.bco_mld_melding_key,
INS_SD.ins_srtdeel_omschrijving,
INS_SD.ins_srtdeel_upper,
INS_D.ins_deel_omschrijving,
INS_D.ins_deel_upper,
INS_O.ins_onderdeel_omschrijving,
INS_O.ins_onderdeel_upper,
INS_E.ins_element_omschrijving,
INS_E.ins_element_upper
FROM bco_instmelding BCO_I, ins_v_inst INS_I, ins_v_aanwezigsrtdeel INS_SD,
ins_v_aanwezigdeel INS_D, ins_v_aanwezigonderdeel INS_O,
ins_v_aanwezigelement INS_E
WHERE BCO_I.bco_ins_inst_keys = INS_I.ins_inst_keys
AND INS_I.ins_type = 'E'
AND INS_I.ins_inst_keys = INS_E.ins_element_key
AND INS_E.ins_onderdeel_key = INS_O.ins_onderdeel_key
AND INS_O.ins_deel_key = INS_D.ins_deel_key
AND INS_D.ins_srtdeel_key = INS_SD.ins_srtdeel_key;
#endif // BCO
#ifdef MLD
CREATE_VIEW(mld_v_openopdr,NORMAAL_PRIVILEGE) AS
SELECT *
FROM mld_opdr
WHERE mld_opdr.mld_statusopdr_key IN
(SELECT mld_statusopdr_key
FROM mld_statusopdr
WHERE mld_statusopdr.mld_statusopdr_omschrijving = 'Uitgegeven' OR
mld_statusopdr.mld_statusopdr_omschrijving = 'Afgemeld' OR
mld_statusopdr.mld_statusopdr_omschrijving = 'Ingevoerd');
#endif // MLD
DEF_FAC_MESSAGE ('PRS_M096', 'Het opgegeven bestek is verlopen.');
DEF_FAC_MESSAGE ('MLD_M163', 'Afgemelde of verwerkte opdrachten kunnen alleen bekeken worden.');
DEF_FAC_MESSAGE ('BCP_M104', 'Ingeplande opdrachten kunnen niet afgemeld of verwerkt worden.');
DEF_FAC_MESSAGE ('BCP_M105', 'Afmelden preventieve opdracht');
DEF_FAC_MESSAGE ('BCP_M106', 'Preventieve opdracht %1% wordt afgemeld. Doorgaan?');
DEF_FAC_MESSAGE ('BCP_M107', 'Uitgegeven, afgemelde of verwerkte opdrachten kunnen alleen bekeken worden.');
DELETE FROM fac_message
WHERE fac_message_code IN ( 'MLD_M55', 'PRS_M088');
DEF_FAC_MESSAGE ('mld_m55', 'De termijn moet positieve waarden bevatten.');
DEF_FAC_MESSAGE ('PRS_M088', 'Er zijn nog opdrachten bij de discipline van het bestek');
#ifdef INS
DROP TRIGGER prs_t_prs_discbestek_B_D;
CREATE TRIGGER prs_t_prs_discbestek_B_D
BEFORE DELETE ON prs_disciplinebestek
FOR EACH ROW
BEGIN
/* Als het bestek al als default uitvoerende is aangegeven bij een
* INS_SRTDEEL, dan mag de koppeling tussen de discipline van het
* INS_SRTDEEL en het bestek niet verwijderd worden.
*/
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM ins_v_aanwezigsrtdeel INS_D
WHERE INS_D.bco_defaultuitv_keys = :old.prs_disciplinebestek_key;
APPLICATION_ERROR(-20002, 'prs_m069');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20002, 'prs_m069');
END;
// Mag niet verwijderd worden als er MLD_OPDR's zijn met als uitvoerende
// deze disicplinebestek
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM mld_opdr
WHERE mld_uitvoerende_keys = :old.prs_disciplinebestek_key
#ifdef BCO
OR bco_defaultuitv_keys = :old.prs_disciplinebestek_key
#endif // BCO
;
APPLICATION_ERROR(-20002, 'prs_m088');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20002, 'prs_m088');
END;
#ifdef BCP
// Mag niet verwijderd worden als er BCP_PREVOPDR's zijn met als uitvoerende
// deze disicplinebestek
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM bcp_prevopdr
WHERE bcp_mld_uitvoerende_keys = :old.prs_disciplinebestek_key
OR bcp_mld_uitvoerende_keys = :old.prs_disciplinebestek_key;
APPLICATION_ERROR(-20002, 'prs_m088');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20002, 'prs_m088');
END;
#endif // BCP
END;
/
DROP TRIGGER prs_t_prs_locatiebestek_B_IU;
CREATE TRIGGER prs_t_prs_locatiebestek_B_IU
BEFORE INSERT OR UPDATE ON prs_locatiebestek
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_locatiebestek_key,prs_s_prs_locatiebestek_key);
#if defined(MLD) || defined(BCP)
/* Een LocatieBestek mag NIET toegevoegd worden als:
* - Het (discipline)bestek als (default) uitvoerende is aangegeven bij
* een of meer opdrachten en als er nog geen LocatieBestek-records zijn
* voor het bestek.
* Uitzondering: Als er opdrachten zijn EN deze allemaal betrekking hebben
* op de toe te voegen locatie.
* Een LocatieBestek mag NIET worden gewijzigd als:
* - Het (discipline)bestek als (default) uitvoerende is aangegeven bij
* een of meer opdrachten die betrekking hebben op de te wijzigen
* LocatieBestek.
*/
// Toevoegen
IF :old.alg_locatie_key IS NULL
AND :new.alg_locatie_key IS NOT NULL
THEN
#ifdef MLD
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM mld_opdr MLD_O,
prs_disciplinebestek PRS_DB,
mld_melding MLD_M,
mld_v_onroerendgoed_locatie MLD_OL
WHERE MLD_M.mld_alg_onroerendgoed_keys = MLD_OL.alg_onroerendgoed_keys
AND MLD_OL.alg_locatie_key <> :new.alg_locatie_key
AND MLD_O.mld_melding_key = MLD_M.mld_melding_key
AND (PRS_DB.prs_disciplinebestek_key = MLD_O.mld_uitvoerende_keys
OR PRS_DB.prs_disciplinebestek_key = MLD_O.bco_defaultuitv_keys)
AND PRS_DB.prs_bestek_key = :new.prs_bestek_key
AND NOT EXISTS (SELECT 'X'
FROM prs_locatiebestek PRS_LB
WHERE PRS_LB.prs_bestek_key = :new.prs_bestek_key
AND MLD_OL.alg_locatie_key = PRS_LB.alg_locatie_key
AND PRS_LB.alg_locatie_key <> :new.alg_locatie_key);
APPLICATION_ERROR(-20000, 'prs_m098');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20000, 'prs_m098');
END;
#endif // MLD
#ifdef BCP
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM prs_disciplinebestek PRS_DB, bcp_prevopdr BCP_P,
bcp_taak BCP_T, mld_v_onroerendgoed_locatie MLD_OL
WHERE BCP_T.bcp_alg_gebouw_key = MLD_OL.alg_onroerendgoed_keys
AND MLD_OL.alg_locatie_key <> :new.alg_locatie_key
AND BCP_P.bcp_taak_key = BCP_T.bcp_taak_key
AND (PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_mld_uitvoerende_keys
OR PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_defaultuitv_keys)
AND PRS_DB.prs_bestek_key = :new.prs_bestek_key
AND NOT EXISTS (SELECT 'X'
FROM prs_locatiebestek PRS_LB
WHERE PRS_LB.prs_bestek_key = :new.prs_bestek_key
AND MLD_OL.alg_locatie_key = PRS_LB.alg_locatie_key
AND PRS_LB.alg_locatie_key <> :new.alg_locatie_key);
APPLICATION_ERROR(-20000, 'prs_m099');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20000, 'prs_m099');
END;
#endif // BCP
// Wijzigen
ELSIF :old.alg_locatie_key IS NOT NULL
AND :new.alg_locatie_key IS NOT NULL
THEN
#ifdef MLD
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM prs_disciplinebestek PRS_DB, mld_opdr MLD_O,
mld_melding MLD_M, mld_v_onroerendgoed_locatie MLD_OL
WHERE MLD_M.mld_alg_onroerendgoed_keys = MLD_OL.alg_onroerendgoed_keys
AND MLD_OL.alg_locatie_key = :old.alg_locatie_key
AND MLD_O.mld_melding_key = MLD_M.mld_melding_key
AND (PRS_DB.prs_disciplinebestek_key = MLD_O.mld_uitvoerende_keys
#ifdef BCO
OR PRS_DB.prs_disciplinebestek_key = MLD_O.bco_defaultuitv_keys
#endif // BCO
)
AND PRS_DB.prs_bestek_key = :old.prs_bestek_key;
APPLICATION_ERROR(-20000, 'prs_m097');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20000, 'prs_m097');
END;
#endif // MLD
#ifdef BCP
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM prs_disciplinebestek PRS_DB, bcp_prevopdr BCP_P,
bcp_taak BCP_T, mld_v_onroerendgoed_locatie MLD_OL
WHERE BCP_T.bcp_alg_gebouw_key = MLD_OL.alg_onroerendgoed_keys
AND MLD_OL.alg_locatie_key = :old.alg_locatie_key
AND BCP_P.bcp_taak_key = BCP_T.bcp_taak_key
AND (PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_mld_uitvoerende_keys
OR PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_defaultuitv_keys)
AND PRS_DB.prs_bestek_key = :old.prs_bestek_key;
APPLICATION_ERROR(-20000, 'prs_m097');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20000, 'prs_m097');
END;
#endif // BCP
END IF;
#endif // MLD || BCP
END;
/
DROP TRIGGER prs_t_prs_locatiebestek_B_D;
CREATE TRIGGER prs_t_prs_locatiebestek_B_D
BEFORE DELETE ON prs_locatiebestek
FOR EACH ROW
BEGIN
#ifdef MLD
/* Een LocatieBestek mag NIET verwijderd worden als:
* - Het (discipline)bestek als (default) uitvoerende is aangegeven bij
* een of meer opdrachten die betrekking hebben op de te verwijderen
* LocatieBestek.
*/
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM prs_disciplinebestek PRS_DB, mld_opdr MLD_O,
mld_melding MLD_M, mld_v_onroerendgoed_locatie MLD_OL
WHERE MLD_M.mld_alg_onroerendgoed_keys = MLD_OL.alg_onroerendgoed_keys
AND MLD_OL.alg_locatie_key = :old.alg_locatie_key
AND MLD_O.mld_melding_key = MLD_M.mld_melding_key
AND (PRS_DB.prs_disciplinebestek_key = MLD_O.mld_uitvoerende_keys
#ifdef BCO
OR PRS_DB.prs_disciplinebestek_key = MLD_O.bco_defaultuitv_keys
#endif // BCO
)
AND PRS_DB.prs_bestek_key = :old.prs_bestek_key;
APPLICATION_ERROR(-20002, 'prs_m092');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20002, 'prs_m092');
END;
#endif
#ifdef BCP
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM prs_disciplinebestek PRS_DB, bcp_prevopdr BCP_P,
bcp_taak BCP_T, mld_v_onroerendgoed_locatie MLD_OL
WHERE BCP_T.bcp_alg_gebouw_key = MLD_OL.alg_onroerendgoed_keys
AND MLD_OL.alg_locatie_key = :old.alg_locatie_key
AND BCP_P.bcp_taak_key = BCP_T.bcp_taak_key
AND (PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_mld_uitvoerende_keys
OR PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_defaultuitv_keys)
AND PRS_DB.prs_bestek_key = :old.prs_bestek_key;
APPLICATION_ERROR(-20002, 'prs_m092');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20002, 'prs_m092');
END;
#endif
#if !defined(MLD) && !defined(BCP)
NULL;
#endif
END;
/
#endif // INS
DELETE FROM fac_message
WHERE fac_message_code = 'PRS_M092';
#ifdef BCO
DEF_FAC_MESSAGE ('PRS_M092', 'Er zijn nog opdrachten van het bestek bij dit object.');
DEF_FAC_MESSAGE ('PRS_M097', 'Er zijn nog opdrachten van het bestek bij het oude object.');
DEF_FAC_MESSAGE ('PRS_M098', 'Er zijn nog opdrachten van het bestek bij andere objecten.');
DEF_FAC_MESSAGE ('PRS_M099', 'Er zijn nog preventieve opdrachten van het bestek bij andere objecten.');
#else
DEF_FAC_MESSAGE ('PRS_M092', 'Er zijn nog opdrachten van het bestek bij deze locatie.');
DEF_FAC_MESSAGE ('PRS_M097', 'Er zijn nog opdrachten van het bestek bij de oude locatie.');
DEF_FAC_MESSAGE ('PRS_M098', 'Er zijn nog opdrachten van het bestek bij andere locaties.');
DEF_FAC_MESSAGE ('PRS_M099', 'Er zijn nog preventieve opdrachten van het bestek bij andere locaties.');
#endif
#ifdef BCO
ALTER TABLE bco_commentaar
ADD
(
bco_commentaar_jaarweek
NUMBER(6),
bco_locatiegroep_key
NUMBER(10)
);
ALTER TABLE bco_commentaar
MODIFY
(
bco_commentaar_tekst
VARCHAR2(200)
);
#endif // BCO
#ifdef PRS
CREATE OR REPLACE FUNCTION prs_t_prs_locatiebestek_B_D( bestek_key IN NUMBER, locatie_key IN NUMBER,
key_soort IN CHAR )
RETURN VARCHAR2 AS
error_msg fac_message.fac_message_code%TYPE;
BEGIN
error_msg := NULL;
#ifdef MLD
/* Een LocatieBestek mag NIET verwijderd worden als:
* - Het (discipline)bestek als (default) uitvoerende is aangegeven bij
* een of meer opdrachten die betrekking hebben op de te verwijderen
* LocatieBestek.
*/
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM prs_disciplinebestek PRS_DB, mld_opdr MLD_O,
mld_melding MLD_M, mld_v_onroerendgoed_locatie MLD_OL,
prs_locatiebestek PRS_LB
WHERE MLD_M.mld_alg_onroerendgoed_keys = MLD_OL.alg_onroerendgoed_keys
AND ((MLD_OL.alg_locatie_key = PRS_LB.alg_locatie_key
AND key_soort = 'B')
OR (MLD_OL.alg_locatie_key = locatie_key
AND key_soort = 'L'))
AND MLD_O.mld_melding_key = MLD_M.mld_melding_key
AND (PRS_DB.prs_disciplinebestek_key = MLD_O.mld_uitvoerende_keys
#ifdef BCO
OR PRS_DB.prs_disciplinebestek_key = MLD_O.bco_defaultuitv_keys
#endif // BCO
)
AND PRS_DB.prs_bestek_key = PRS_LB.prs_bestek_key
AND PRS_DB.prs_bestek_key = bestek_key;
error_msg := 'prs_m092';
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN error_msg := 'prs_m092';
END;
#endif
#ifdef BCP
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM prs_disciplinebestek PRS_DB, bcp_prevopdr BCP_P,
bcp_taak BCP_T, mld_v_onroerendgoed_locatie MLD_OL,
prs_locatiebestek PRS_LB
WHERE BCP_T.bcp_alg_gebouw_key = MLD_OL.alg_onroerendgoed_keys
AND ((MLD_OL.alg_locatie_key = PRS_LB.alg_locatie_key
AND key_soort = 'B')
OR (MLD_OL.alg_locatie_key = locatie_key
AND key_soort = 'L'))
AND BCP_P.bcp_taak_key = BCP_T.bcp_taak_key
AND (PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_mld_uitvoerende_keys
OR PRS_DB.prs_disciplinebestek_key = BCP_P.bcp_defaultuitv_keys)
AND PRS_LB.prs_bestek_key = PRS_DB.prs_bestek_key
AND PRS_DB.prs_bestek_key = bestek_key;
error_msg := 'prs_m092';
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN error_msg := 'prs_m092';
END;
#endif
RETURN error_msg;
END;
/
DROP TRIGGER prs_t_prs_locatiebestek_B_D;
#endif // PRS
DEF_FAC_FORM('HUI015', NULL, NULL ,'150150','HUI_HUI015','Overzichtscherm Frequentie');
DEF_FAC_FORM('HUI115', NULL, NULL ,'151150','HUI_HUI115','Mutatiescherm Frequentie');
DEF_FAC_FORM('HUI016', NULL, NULL ,'150160','HUI_HUI016','Overzichtscherm Schoonmaakfreq. onrgoed');
DEF_FAC_FORM('HUI116', NULL, NULL ,'151160','HUI_HUI116','Mutatiescherm Schoonmaakfreq. onrgoed');
DEF_FAC_ENTITY ('HUI_FREQUENTIE', 'Frequentie', 'Frequenties', 'de');
DEF_FAC_ENTITY ('HUI_FREQUENTIE_OMSCHRIJVING', 'Omschrijving', 'Omschrijvingen', 'de');
DEF_FAC_ENTITY ('HUI_FREQUENTIE_DAGEN', 'Dagen', NULL, 'de');
DEF_FAC_MESSAGE ('HUI_M041', 'Verwijderen frequentie ');
DEF_FAC_MESSAGE ('HUI_M042', 'De omschrijving is niet ingevuld.');
DEF_FAC_MESSAGE ('HUI_M043', 'Het aantal dagen is niet ingevuld.');
DEF_FAC_MESSAGE ('HUI_M044', 'Schoonmaakfrequentie onroerendgoed');
DEF_FAC_MESSAGE ('HUI_M045', 'Verwijderen schoonmaakfrequentie');
DEF_FAC_MESSAGE ('HUI_M046', 'Verwijderen schoonmaakfrequentie %1% van ruimte %2%');
DEF_FAC_MESSAGE ('HUI_M047', 'Verwijder de geselecteerde schoonmaakfrequenties?');
DEF_FAC_MESSAGE ('HUI_M048', 'De frequentie is niet ingevuld.');
DEF_FAC_MESSAGE ('HUI_M049', 'Overzicht schoonmaken glas');
DEF_FAC_MESSAGE ('HUI_M050', 'Overzicht schoonmaken ruimte');
DEF_FAC_ENTITY ('ALG_RUIMTE_VLOER_OMSCHRIJVING', 'Vloerbedekking', NULL, NULL);
DEF_FAC_ENTITY ('ALG_RUIMTE_OPP_GEVELGLAS', 'Gevelglas', NULL, NULL);
DEF_FAC_ENTITY ('ALG_RUIMTE_OPP_EENHEID', '(m2)', NULL, NULL);
DEF_FAC_ENTITY ('ALG_RUIMTE_OPP_SEPARATIEGLAS', 'Separatieglas', NULL, NULL);
DEF_FAC_ENTITY ('ALG_RUIMTE_OPP_GEVELBEKLEDING', 'Gevelbekleding', NULL, NULL);
DEF_FAC_ENTITY ('ALG_RUIMTE_VLOEROPP_PER_WEEK', 'Per week', NULL, NULL);
#ifdef HUI
CREATE_TABLE(hui_frequentie, NORMAAL_PRIVILEGE)
(
hui_frequentie_key
NUMBER(10)
NOT NULL
PRIMARY KEY,
hui_frequentie_omschrijving
VARCHAR2(30)
NOT NULL,
hui_frequentie_upper
VARCHAR2(30)
NOT NULL
UNIQUE,
hui_frequentie_dagen
NUMBER(3)
NOT NULL
);
CREATE_TABLE(hui_onroerendgoed_frequentie, NORMAAL_PRIVILEGE)
(
hui_frequentie_key
NUMBER(10)
NOT NULL
REFERENCES hui_frequentie(hui_frequentie_key),
hui_alg_onroerendgoed_keys
NUMBER(10)
NOT NULL,
hui_alg_onroerendgoed_type
VARCHAR2(1)
NOT NULL,
UNIQUE(hui_alg_onroerendgoed_keys)
);
CREATE SEQUENCE hui_s_hui_frequentie_key MINVALUE 1;
CREATE TRIGGER hui_t_hui_frequentie_b_iu
BEFORE INSERT OR UPDATE ON hui_frequentie
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(hui_frequentie_key, hui_s_hui_frequentie_key);
UPDATE_UPPER(hui_frequentie_omschrijving, hui_frequentie_upper);
END;
/
CREATE_VIEW(hui_v_frequentie_gegevens, NORMAAL_PRIVILEGE)
AS
SELECT HUI_OF.hui_alg_onroerendgoed_keys,
HUI_OF.hui_alg_onroerendgoed_type,
HUI_OF.hui_frequentie_key,
HUI_F.hui_frequentie_omschrijving,
HUI_F.hui_frequentie_upper,
ALG_G.alg_gebouw_key,
ALG_G.alg_locatie_key,
ALG_G.alg_gebouw_omschrijving,
ALG_G.alg_gebouw_upper,
ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving,
ALG_V.alg_verdieping_volgnr,
ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_nr,
ALG_R.alg_ruimte_upper_nr
FROM hui_onroerendgoed_frequentie HUI_OF, hui_frequentie HUI_F,
alg_gebouw ALG_G, alg_verdieping ALG_V, alg_v_aanwezigruimte ALG_R
WHERE ALG_G.alg_gebouw_key = ALG_V.alg_gebouw_key
AND ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key
AND ALG_R.alg_ruimte_key = HUI_OF.hui_alg_onroerendgoed_keys
AND HUI_OF.hui_frequentie_key = HUI_F.hui_frequentie_key;
#endif // HUI
#ifdef ALG
CREATE_VIEW(alg_v_ruimte_gegevens,NORMAAL_PRIVILEGE) AS
SELECT ALG_L.alg_locatie_key, ALG_L.alg_district_key,
ALG_L.alg_locatie_omschrijving, ALG_L.alg_locatie_code,
ALG_L.alg_locatie_upper,
ALG_G.alg_gebouw_key, ALG_G.alg_srtgebouw_key,
ALG_G.alg_gebouw_omschrijving, ALG_G.alg_gebouw_upper,
ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving, ALG_V.alg_verdieping_upper,
ALG_V.alg_verdieping_volgnr,
ALG_V.alg_verdieping_tekening, ALG_R.alg_ruimte_key,
ALG_S.alg_srtruimte_key, ALG_R.alg_ruimte_nr,
ALG_R.alg_ruimte_acadkey,
ALG_R.alg_ruimte_omschrijving, ALG_R.alg_ruimte_upper_nr,
ALG_S.alg_srtruimte_omschrijving,
ALG_R.alg_ruimte_vloer_omschrijving,
ALG_R.alg_ruimte_bruto_vloeropp,
ALG_R.alg_ruimte_opp_gevelglas,
ALG_R.alg_ruimte_opp_separatieglas,
ALG_R.alg_ruimte_opp_gevelbekleding
#ifdef HUI
, ALG_R.prs_huismeester_key
#endif
FROM alg_locatie ALG_L, alg_gebouw ALG_G,
alg_verdieping ALG_V, alg_v_aanwezigruimte ALG_R,
alg_v_aanwezigsrtruimte ALG_S
WHERE
ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key AND
ALG_G.alg_gebouw_key = ALG_V.alg_gebouw_key AND
ALG_L.alg_locatie_key = ALG_G.alg_locatie_key AND
ALG_R.alg_srtruimte_key = ALG_S.alg_srtruimte_key (+);
#endif // ALG
DEF_FAC_FORM('HUI215', NULL, NULL ,'152150','HUI_HUI215','Rapport schoonmaak glas');
DEF_FAC_FORM('HUI216', NULL, NULL ,'152160','HUI_HUI216','Rapport schoonmaak ruimte');
DELETE FROM fac_message
WHERE fac_message_code IN ('BCP_M082',
'BCP_M083',
'BCP_M073',
'BCP_M074',
'BCP_M091',
'BCP_M097',
'BCP_M102',
'BCO_M119',
'BCO_M134');
INSERT INTO FAC_MESSAGE VALUES('BCP_M073', 'Nieuwe preventieve opdracht %1% aangemaakt en heeft status ''%2%''');
INSERT INTO FAC_MESSAGE VALUES('BCP_M074', 'Nieuwe taak %1% van verzamelopdracht %2% aangemaakt voor onroerendgoed %3%');
INSERT INTO FAC_MESSAGE VALUES('BCP_M082', 'Bestek %1% heeft niet genoeg uren (%2%) beschikbaar');
INSERT INTO FAC_MESSAGE VALUES('BCP_M083', 'Bestek %1% heeft niet genoeg materiaalkosten (%2%) beschikbaar');
INSERT INTO FAC_MESSAGE VALUES('BCP_M091', 'Preventieve opdracht %1% is uitgegeven aan functie %2%');
INSERT INTO FAC_MESSAGE VALUES('BCP_M097', 'Aantal nieuwe preventieve opdrachten aangemaakt: %1%');
INSERT INTO FAC_MESSAGE VALUES('BCP_M102', 'Preventieve opdracht %1% van functie %2% is ingetrokken');
INSERT INTO FAC_MESSAGE VALUES('BCO_M119', 'Correctieve opdracht %1% is uitgegeven aan functie %2%');
INSERT INTO FAC_MESSAGE VALUES('BCO_M134', 'Correctieve opdracht %1% van functie %2% is ingetrokken');
DEF_FAC_MESSAGE ('BCO_M136', 'Er zijn opdrachten van deze weekplanning afgemeld of verwerkt.');
INSERT INTO FAC_MESSAGE VALUES('BCO_M137', '%1% uitgegeven correctieve opdrachten zijn weer ingetrokken');
DELETE FROM fac_message
WHERE fac_message_code IN ('BCO_M113', 'BCO_M114');
INSERT INTO FAC_MESSAGE VALUES('BCO_M113', 'Correctieve opdracht %1% is ingetrokken, deze is langer dan 2 weken uitgegeven.');
INSERT INTO FAC_MESSAGE VALUES('BCO_M114', '%1% correctieve opdrachten ingetrokken, ze zijn langer dan 2 weken uitgegeven.');
DEF_FAC_MESSAGE ('HUI_M051', 'De huidige frequenties van de ruimtes in %1% %2% overschrijven?');
PROMPT Vergeet niet te committen!

1351
_UP/123TO124.SRC Normal file

File diff suppressed because it is too large Load Diff

1652
_UP/124TO125.SRC Normal file

File diff suppressed because it is too large Load Diff

1255
_UP/125TO126.SRC Normal file

File diff suppressed because it is too large Load Diff

413
_UP/126TO127.SRC Normal file
View File

@@ -0,0 +1,413 @@
SPOOL 126to127
/*
* [V:\SQL\_UPDATE]
*
* Update script van versie 01.26 naar 01.27
*
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
* om #ifdef's te gebruiken voor de diverse modules.
*
* History:
*
* 22-04-97 KTH Toevoegingen nav QA-test 1.27 en bugfixes door AH
* 16-04-97 AH BEBIS: CREATE TABLE's gebruikte ipv. CREATE_TABLE()
* ALG_SRTTERREIN en ALG_SRTVERDIEPING-entities aangepast.
* BEB_INI bevatte de tabel RAGIS_PRIJZEN. Deze zijn verwijderd.
* 11-04-97 KTH Aangemaakt
*/
/* 16-04-97 AH BEBIS */
INSERT INTO fac_privilege VALUES (UPPER('alg_objectdeel'), 2);
INSERT INTO fac_privilege VALUES (UPPER('alg_systeemcluster'), 2);
INSERT INTO fac_privilege VALUES (UPPER('alg_bouwdeel'), 2);
DELETE FROM fac_entity_name
WHERE fac_entity_system_name in ('ALG_SRTTERREIN',
'ALG_SRTVERDIEPING',
'ALG_SRTVERDIEPING_VOLGNR');
#if defined(BEB)
DEF_FAC_ENTITY ('ALG_SRTTERREIN', 'Terrein/Werksrt', 'Terrein/Werksoorten', 'de');
#else
DEF_FAC_ENTITY ('ALG_SRTTERREIN', 'Terreinsoort', 'Terreinsoorten', 'de');
#endif
DEF_FAC_ENTITY ('ALG_SRTVERDIEPING', 'Verdiepingsoort', 'Verdiepingsoorten', 'de');
DEF_FAC_ENTITY ('ALG_SRTVERDIEPING_VOLGNR', 'Volgnummer', 'Volgnummers', 'het');
#ifdef BEB
DELETE FROM ins_srtdeel
WHERE ins_srtdeel_module = 'INS'
AND ins_srtgroep_key in (SELECT ins_srtgroep_key FROM ins_srtgroep
WHERE (ins_srtgroep_upper='BOUWKUNDE'
OR ins_srtgroep_upper='ELEKTROTECHNIEK'));
/* Bouwkunde delen */
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 40 , 1 ,'m2', SUBSTR(INITCAP('STRAATWERK'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 150 , 2 ,'m2', SUBSTR(INITCAP('ASFALTERING'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 20, 3 ,'m2', SUBSTR(INITCAP('GRAAFWERK 70cm DIEP'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 200, 4 ,'m2', SUBSTR(INITCAP('STEENSMETSELWERK'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 200, 5 ,'m2', SUBSTR(INITCAP('<27> STEENSMETSELWERK'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 200, 6 ,'m2', SUBSTR(INITCAP('GEVELOPENING DICHTMETSELEN STEENS'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 150, 7 ,'m2', SUBSTR(INITCAP('GEVELOPENING DICHTMETSELEN <20> STEENS'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 150, 8 ,'m2', SUBSTR(INITCAP('METALEN BEPLATING AANBRENGEN VLOER'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 150, 9 ,'m2', SUBSTR(INITCAP('METALEN BEPLATING AANBRENGEN WAND'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 150, 10 ,'m2', SUBSTR(INITCAP('METALEN BEPLATING AANBRENGEN PLAFOND'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 500, 11 ,'m2', SUBSTR(INITCAP('VENTILATIE-OPENING BEVEILIGEN'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 300, 12 ,'m2', SUBSTR(INITCAP('BRAAKWEREND GLAS AANBRENGEN'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 300, 13 ,'m2', SUBSTR(INITCAP('GELUIDSWEREND GLAS AANBRENGEN'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 300, 14 ,'m2', SUBSTR(INITCAP('SLAGWEREND GLAS AANBRENGEN'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 6000, 15 ,' ', SUBSTR(INITCAP('ROLDEUR AANBRENGEN'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 6000, 16 ,' ', SUBSTR(INITCAP('BRAAKWERENDE DEUR TYPE A AANBRENGEN'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 115, 17 ,' ', SUBSTR(INITCAP('GAASHEK HOOG MET PUNTDRAAD'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 110, 18 ,' ', SUBSTR(INITCAP('GAASHEK HOOG ZONDER PUNTDRAAD'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 20000, 19 ,' ', SUBSTR(INITCAP('ELEK. BED. ROLHEK'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 8000, 20 ,' ', SUBSTR(INITCAP('ELEK. BED. KLAPHEK'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 500, 21 ,' ', SUBSTR(INITCAP('SLOT TYPE A'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 500, 22 ,' ', SUBSTR(INITCAP('SLOT TYPE B'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 500, 23 ,' ', SUBSTR(INITCAP('SLOT TYPE C'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 30000, 24 ,' ', SUBSTR(INITCAP('TOURNIQUET'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 50000, 25 ,' ', SUBSTR(INITCAP('TOURNIQUET MET FIETS'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 25000, 26 ,' ', SUBSTR(INITCAP('ELEK. BED. SLAGBOOM'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 1000, 27 ,' ', SUBSTR(INITCAP('LOOPHEK'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 80000, 28 ,' ', SUBSTR(INITCAP('HARMONICAPOORT'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 2500, 29 ,' ', SUBSTR(INITCAP('DRAAIHEK 1 VLEUGEL'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 5000, 30 ,' ', SUBSTR(INITCAP('DRAAIHEK 2 VLEUGELS'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 3000, 31 ,' ', SUBSTR(INITCAP('VERKEERSLICHTEN R/G'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 150, 32 ,' ', SUBSTR(INITCAP('STREKMETAAL'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 500, 33 ,' ', SUBSTR(INITCAP('SANDWITCHPANEEL'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 500, 34 ,' ', SUBSTR(INITCAP('ROLKAMMEN'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', NULL, 35 ,' ', SUBSTR(INITCAP('SLOTKAST'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='BOUWKUNDE' AND ins_srtgroep_module='INS';
/* Elektrotechniek delen */
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 15000, 1 , ' ', SUBSTR(INITCAP('VOERTUIGZUIL TYPE A'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 10000, 2 , ' ', SUBSTR(INITCAP('VOERTUIGZUIL TYPE B'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 1000, 3 , ' ', SUBSTR(INITCAP('SLUITLUS/OOG'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 100, 4 , ' ', SUBSTR(INITCAP('OPEN/DICHT SIGNALERING'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 0, 5 , ' ', SUBSTR(INITCAP('INLUISTERMICROFOON'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', NULL, 6 , ' ', SUBSTR(INITCAP('DOWNLOOK CAMERA'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 100, 7 , ' ', SUBSTR(INITCAP('SCHAKEL- OF CONTACTMAT.'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 200, 9 , ' ', SUBSTR(INITCAP('GLASBREUKMELDER'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 9000, 11, ' ', SUBSTR(INITCAP('VOETGANGERSZUIL TYPE A'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 5000, 12, ' ', SUBSTR(INITCAP('VOETGANGERSZUIL TYPE B'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 500, 13, ' ', SUBSTR(INITCAP('ACTIEF INFRAROOD MELDER'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 0, 14, ' ', SUBSTR(INITCAP('INFRAROOD ZUIL'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 500, 15, ' ', SUBSTR(INITCAP('TRILCONTACT'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 50, 16, 'mtr', SUBSTR(INITCAP('E-FLEXKABEL'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 400, 18, ' ', SUBSTR(INITCAP('COMBIMELDER'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 1000, 19, ' ', SUBSTR(INITCAP('SLUITLUS'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 5000, 20, ' ', SUBSTR(UPPER('CSSE'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 4000, 21, ' ', SUBSTR(INITCAP('KAARTLEZER'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 5000, 22, ' ', SUBSTR(INITCAP('PINCODESLOT/KAARTLEES COMB.'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 2000, 23, ' ', SUBSTR(UPPER('CCTV'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 17000, 24, ' ', SUBSTR(INITCAP('VIDEOMOTION'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 6000, 25, ' ', SUBSTR(INITCAP('TIMELAPS RECORDER'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 200, 26, ' ', SUBSTR(INITCAP('OPTISCHE SIGNAALGEVER'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 200, 27, ' ', SUBSTR(INITCAP('SCHRIKVERLICHTING'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 1000, 29, ' ', SUBSTR(INITCAP('LICHTMAST'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 1500, 30, ' ', SUBSTR(INITCAP('INTERCOM'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 200, 31, ' ', SUBSTR(INITCAP('AKOESTISCHE SIGNAALGEVER'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 175, 32, 'mtr', SUBSTR(INITCAP('LEAKY COAX-KABEL'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 300, 33, 'mtr', SUBSTR(INITCAP('TAUT-WIRE'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 400, 34, ' ', SUBSTR(INITCAP('PIN-CODESLOT'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 200, 35, ' ', SUBSTR(INITCAP('OPSLOTSIGNALERING'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 500, 36, ' ', SUBSTR(INITCAP('SLEUTELSCHERPSTELSLOT'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 200, 37, ' ', SUBSTR(INITCAP('ELEK. SLOT/ONTGRENDELING'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
INSERT INTO ins_srtdeel(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_prijs, ins_srtdeel_volgnr, ins_srtdeel_eenheid, ins_srtdeel_omschrijving)
SELECT ins_srtgroep_key, 'INS', 500, 38, ' ', SUBSTR(INITCAP('GORDIJNMELDER'),1,30)
FROM ins_srtgroep WHERE ins_srtgroep_upper='ELEKTROTECHNIEK' AND ins_srtgroep_module='INS';
UPDATE ins_srtdeel
SET ins_srtdeel_omschrijving=SUBSTR(REPLACE(ins_srtdeel_omschrijving,'<27>','1/2'),1,30),
ins_srtdeel_upper=SUBSTR(REPLACE(ins_srtdeel_upper,'<27>','1/2'),1,30);
#endif /* BEB */
/* de rest hieronder is nav BBS2.0.1.27 QA-test/KTH dd 21-04-97 */
DELETE FROM fac_entity_name
WHERE fac_entity_system_name IN ('CLOSE',
'SAVE',
'NEXT',
'CANCEL',
'PRINT',
'ALG_SYSTEEMCLUSTER',
'ALG_BOUWDEEL_OMSCHRIJVING');
INSERT INTO fac_entity_name VALUES('CLOSE', 'Sluiten',NULL, NULL);
INSERT INTO fac_entity_name VALUES('SAVE', 'Bewaren',NULL, NULL);
INSERT INTO fac_entity_name VALUES('NEXT', 'Volgende...',NULL, NULL);
INSERT INTO fac_entity_name VALUES('CANCEL', 'Annuleren',NULL, NULL);
INSERT INTO fac_entity_name VALUES('PRINT', 'Printen',NULL, NULL);
INSERT INTO fac_entity_name VALUES('ALG_SYSTEEMCLUSTER', 'Syst.cluster', 'Syst.clusters', 'het');
INSERT INTO fac_entity_name VALUES('ALG_BOUWDEEL_OMSCHRIJVING', 'Omschrijving', 'Omschrijvingen', 'de');
INSERT INTO fac_entity_name VALUES('PRINT_VORIGE', '<<',NULL, NULL);
INSERT INTO fac_entity_name VALUES('PRINT_VOLGENDE', '>>',NULL, NULL);
#ifdef BEB
DELETE FROM fac_entity_name
WHERE fac_entity_system_name IN ('ALG_DISTRICT_CODE');
INSERT INTO fac_entity_name VALUES('ALG_DISTRICT_CODE', 'Dienstkringcode', NULL, 'de');
DELETE FROM fac_message
WHERE fac_message_code IN ('ALG_M210',
'ALG_M204');
INSERT INTO fac_message VALUES('ALG_M210', 'Dienstkring is niet ingevuld.');
INSERT INTO fac_message VALUES('ALG_M204', 'Er zijn nog bouwlagen gekoppeld aan de verdiepingsoort.');
#endif
DELETE FROM fac_message
WHERE fac_message_code IN ('ALG_M170',
'ALG_M173',
'FAC_M005',
'FAC_M007');
INSERT INTO fac_message VALUES('ALG_M170', 'De omschrijving van het systeemcluster is niet ingevuld.');
INSERT INTO fac_message VALUES('ALG_M173', 'Het systeemcluster is niet ingevuld.');
INSERT INTO fac_message VALUES('INS_M138', 'Er is geen deel geselecteerd');
INSERT INTO fac_message VALUES('FAC_M007', 'Uitvoer Rapportage');
INSERT INTO fac_message VALUES('FAC_M005', 'Copyright (c) 1996-1997, Seki-Riesewijk B.V.');
COMMIT;
ALTER TABLE beb_categorie
ADD UNIQUE(beb_categorie_code);
DROP SEQUENCE beb_s_beb_categorie_key;
CREATE SEQUENCE beb_s_beb_categorie_key MINVALUE 1;
INSERT into beb_categorie (beb_categorie_code) VALUES ('OG');
INSERT into beb_categorie (beb_categorie_code) VALUES ('VG');
INSERT into beb_categorie (beb_categorie_code) VALUES ('BG1');
INSERT into beb_categorie (beb_categorie_code) VALUES ('BG2');
UPDATE fac_form
SET fac_form_context = 'INS_INS124',
fac_form_parameter = NULL
WHERE fac_form_name = 'INS124';
UPDATE fac_form
SET fac_form_parameter = NULL
WHERE fac_form_name = 'INS125';
UPDATE fac_form
SET fac_form_context = 'INS_INS213',
fac_form_parameter = NULL
WHERE fac_form_name = 'INS213';
UPDATE fac_form
SET fac_form_context = 'INS_INS214',
fac_form_parameter = NULL
WHERE fac_form_name = 'INS214';
COMMIT;
PROMPT Vergeet niet te committen!
SPOOL OFF

84
_UP/127TO128.SRC Normal file
View File

@@ -0,0 +1,84 @@
SPOOL 127to128
--
-- [Z:\PROJECT\SM44\SRC\SQL\_UPDATE\127TO128.SQL]
--
-- Update script van Facilitor 2.0 versie 1.27 naar 1.28
--
-- Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
-- om #ifdef's te gebruiken voor de diverse modules.
--
-- Revisie:
--
-- 22-04-97 KTH Aangemaakt
--
-- LOG#.... Bugfixes lijst 970424.TXT en 970505.txt van KTH
#ifdef HUI
DELETE FROM fac_entity_name
WHERE fac_entity_system_name = 'INV_SRTDEEL';
DEF_FAC_ENTITY ('INV_SRTDEEL', 'Artikel', 'Artikelen', 'het');
#endif
DELETE FROM fac_message
WHERE fac_message_code IN ('INV_M005', 'INV_M006', 'LEV_M026');
DEF_FAC_MESSAGE ('INV_M005', 'De omschrijving voor het artikeltype is niet ingevuld.');
DEF_FAC_MESSAGE ('INV_M006', 'Het artikeltype is niet ingevuld.');
DEF_FAC_MESSAGE ('LEV_M026', 'Er zijn geen leveringregels bij deze levering.');
-- 05-05-97 AH LEV_LEVERREGEL boekt niets op ALG_KOSTENPOST_BESTEED
-- In LEV_T_LEV_LEVERREGEL_B_IU aangepast.
CREATE OR REPLACE TRIGGER lev_t_lev_leverregel_B_IU
BEFORE INSERT OR UPDATE ON lev_leverregel
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(lev_leverregel_key, lev_s_lev_leverregel_key);
/* Ver het veld ALG_KOSTENPOST_BESTEED bij met aantal_geleverd*Prijs.
* Wijzigen van een leverregel is eigenlijk niet mogelijk, maar toch
* gedeeltelijk aangepast.
* Hier wordt bij wijzigen geen rekening gehouden met :
* - Wijzigen van INS_SRTDEEL_KEY.
* - Wijzigen van de prijs van INS_SRTDEEL
*/
IF :old.lev_leverregel_aantal IS NULL
OR (:old.lev_leverregel_aantal <> :new.lev_leverregel_aantal)
THEN
DECLARE
Kostenpost NUMBER(10);
ExtraBesteed alg_kostenpost.alg_kostenpost_besteed%TYPE;
Prijs ins_srtdeel.inv_srtdeel_prijs%TYPE;
BEGIN
SELECT ALG_K.alg_kostenpost_key
INTO Kostenpost
FROM lev_bestelregel LEV_BR, lev_bestelling LEV_B,
alg_kostenpost ALG_K
WHERE LEV_BR.lev_bestelling_key = LEV_B.lev_bestelling_key
AND LEV_B.lev_alg_kostenpost_key = ALG_K.alg_kostenpost_key
AND LEV_BR.lev_bestelregel_key = :new.lev_bestelregel_key;
SELECT inv_srtdeel_prijs
INTO Prijs
FROM inv_v_aanwezigsrtdeel
WHERE ins_srtdeel_key = :new.lev_ins_srtdeel_key;
ExtraBesteed := (:new.lev_leverregel_aantal - NVL(:old.lev_leverregel_aantal,0))
* NVL(Prijs, 0);
UPDATE alg_kostenpost
SET alg_kostenpost_besteed = NVL(alg_kostenpost_besteed, 0) +
ExtraBesteed
WHERE alg_kostenpost_key = Kostenpost;
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
END;
END IF;
END;
/
DEF_FAC_MESSAGE ('LEV_M072', 'Het bestelnummer is niet ingevuld.');
COMMIT;
PROMPT Vergeet niet te committen!
SPOOL OFF

70
_UP/128TO129.SQL Normal file
View File

@@ -0,0 +1,70 @@
SPOOL 128to129
--
-- [Z:\PROJECT\SM44\SRC\SQL\_UPDATE\128TO129.SQL]
--
-- Update script van Facilitor 2.0 versie 1.28 naar 1.29
--
-- Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
-- om #ifdef's te gebruiken voor de diverse modules.
--
-- Revisie:
--
-- 11-07-97 AH Fouten in dit script gevonden door MvK, nl. LEV_M072 bestond al en
-- DROP UNIQUE(INV_SRDEEL_NR) mist een T UNIQUE(INV_SRTDEEL_NR).
-- 09-07-1997 AH #1362, LEV_M026 gewijzigd in dit script, was al in FAC_INI gebeurt.
-- 08-07-1997 AH #1352, LEV_M072 toegevoegd
-- 7/2/97 AH #1347, Teskt bij INV021 aangepast in 'Bruikleen inventaris'
-- 07-07-1997 AH #1339, LEV_M073 toegevoegd
-- 7/2/97 AH #1353: 'Overnachting' moet zijn 'Legering'
-- 7/2/97 AH #1347: INV_M047 aangepast in 'Bruikleen inventeris'
-- 7/1/97 AH #1345, UNIQUE op INV_SRTDEEL_NR verplaatst naar UNIQUE op INV_SRTDEEL_NR en INS_SRTDEEL_VERWIJDER.
-- 7/2/97 AH #1354, UNIQUE op PRS_LEVERANCIER_NR toegevoegd.
-- LOG#1347
UPDATE FAC_FORM
SET fac_form_opmerking = 'Bruikleen inventaris'
WHERE fac_form_name = 'INV021';
-- LOG#1353, #1347, #1362
DELETE FROM fac_message
WHERE fac_message_code IN ('INV_M047', 'HUI_M018',
'HUI_M020',
'HUI_M036',
'LEV_M026');
DELETE FROM fac_entity_name
WHERE fac_entity_system_name = 'HUI_OVERNACHTING';
INSERT INTO FAC_ENTITY_NAME VALUES('HUI_OVERNACHTING', 'Legering', 'Legeringen', 'de');
INSERT INTO FAC_MESSAGE VALUES('INV_M047', 'Bruikleen inventaris');
INSERT INTO FAC_MESSAGE VALUES('HUI_M018', 'De legering van ');
INSERT INTO FAC_MESSAGE VALUES('HUI_M020', 'Alleen actuele legeringen');
INSERT INTO FAC_MESSAGE VALUES('HUI_M036', 'Bruikleenbewijs legering');
INSERT INTO FAC_MESSAGE VALUES('LEV_M026', 'Er zijn geen leveringregels bij deze levering.');
-- LOG#1352
--INSERT INTO FAC_MESSAGE VALUES('LEV_M072', 'Het bestelnummer is niet ingevuld.');
-- LOG#1339
INSERT INTO FAC_MESSAGE VALUES('LEV_M073', 'De leverdatum ligt voor de huidige datum.');
-- LOG#1345
ALTER TABLE ins_srtdeel
DROP unique(INV_SRTDEEL_NR);
ALTER TABLE ins_srtdeel
ADD CONSTRAINT ins_c_ins_srtdeel_nr_unique UNIQUE(inv_srtdeel_nr, ins_srtdeel_verwijder);
-- LOG#1354
ALTER TABLE prs_bedrijf
ADD CONSTRAINT prs_c_prs_leverancier_unique UNIQUE(prs_leverancier_nr, prs_bedrijf_verwijder);
-- werk vervolgens het versienummer en de datum bij (van alle interne modules)
UPDATE fac_module
SET fac_module_version='01.29',
fac_module_date=TO_CHAR(SYSDATE,'YYYYMMDD');
COMMIT;
SPOOL OFF

72
_UP/128TO129.SRC Normal file
View File

@@ -0,0 +1,72 @@
SPOOL 128to129
--
-- [Z:\PROJECT\SM44\SRC\SQL\_UPDATE\128TO129.SQL]
--
-- Update script van Facilitor 2.0 versie 1.28 naar 1.29
--
-- Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
-- om #ifdef's te gebruiken voor de diverse modules.
--
-- Revisie:
--
-- 01.28SD -> 01.29SD
-- 09-07-1997 AH #1362, LEV_M026 gewijzigd in dit script, was al in FAC_INI gebeurt.
-- 08-07-1997 AH #1352, LEV_M072 toegevoegd
-- 7/2/97 AH #1347, Tekst bij INV021 aangepast in 'Bruikleen inventaris'
-- 07-07-1997 AH #1339, LEV_M073 toegevoegd
-- 7/2/97 AH #1353: 'Overnachting' moet zijn 'Legering'
-- 7/2/97 AH #1347: INV_M047 aangepast in 'Bruikleen inventeris'
-- 7/1/97 AH #1345, UNIQUE op INV_SRTDEEL_NR verplaatst naar UNIQUE op INV_SRTDEEL_NR en INS_SRTDEEL_VERWIJDER.
-- 7/2/97 AH #1354, UNIQUE op PRS_LEVERANCIER_NR toegevoegd.
-- 06-05-97 KTH Aangemaakt
--
-- LOG#1347
UPDATE FAC_FORM
SET fac_form_opmerking = 'Bruikleen inventaris'
WHERE fac_form_name = 'INV021';
-- LOG#1353, #1347, #1362
DELETE FROM fac_message
WHERE fac_message_code IN ('INV_M047', 'HUI_M018',
'HUI_M020',
'HUI_M036',
'LEV_M026');
DELETE FROM fac_entity_name
WHERE fac_entity_system_name = 'HUI_OVERNACHTING';
INSERT INTO FAC_ENTITY_NAME VALUES('HUI_OVERNACHTING', 'Legering', 'Legeringen', 'de');
INSERT INTO FAC_MESSAGE VALUES('INV_M047', 'Bruikleen inventaris');
INSERT INTO FAC_MESSAGE VALUES('HUI_M018', 'De legering van ');
INSERT INTO FAC_MESSAGE VALUES('HUI_M020', 'Alleen actuele legeringen');
INSERT INTO FAC_MESSAGE VALUES('HUI_M036', 'Bruikleenbewijs legering');
INSERT INTO FAC_MESSAGE VALUES('LEV_M026', 'Er zijn geen leveringregels bij deze levering.');
-- LOG#1352,1380
--INSERT INTO FAC_MESSAGE VALUES('LEV_M072', 'Het bestelnummer is niet ingevuld.');
-- LOG#1339
INSERT INTO FAC_MESSAGE VALUES('LEV_M073', 'De leverdatum ligt voor de huidige datum.');
-- LOG#1345,1380
ALTER TABLE ins_srtdeel
DROP unique(INV_SRTDEEL_NR);
ALTER TABLE ins_srtdeel
ADD CONSTRAINT ins_c_ins_srtdeel_nr_unique UNIQUE(inv_srtdeel_nr, ins_srtdeel_verwijder);
-- LOG#1354
ALTER TABLE prs_bedrijf
ADD CONSTRAINT prs_c_prs_leverancier_unique UNIQUE(prs_leverancier_nr, prs_bedrijf_verwijder);
-- werk vervolgens het versienummer en de datum bij (van alle interne modules)
UPDATE fac_module
SET fac_module_version='01.29',
fac_module_date=TO_CHAR(SYSDATE,'YYYYMMDD');
-- LOG#...
PROMPT Vergeet niet te committen!
SPOOL OFF

1739
_UP/129TO130.SRC Normal file

File diff suppressed because it is too large Load Diff

271
_UP/130TO131.SRC Normal file
View File

@@ -0,0 +1,271 @@
set echo on
SPOOL 130to131
--
-- [Z:\PROJECT\SM44\SRC\SQL\_UPDATE\130TO131.SQL]
--
-- Update script van Facilitor 2.0 versie 1.30 naar 1.31
--
/*
* 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.
*
* Revisie:
*
* dd-mm-yy xxx LOG#yyyy:
*
* 31-07-97 AH Initiele waardes voor SCH_SRTVLOER toegevoegd
* 29-07-97 AH LOG#1400, ALG_IMPORT_RUIMTENR nu 10 ipv 6
* 28-07-97 AH IMPORT_SRTVLOER: In ALG_IMPORT-table moet ALG_IMPORT_VLOER-kolom toegevoegd
* worden
* 24-07-97 AH #1422, MLD_MELDING krijgt redundant veld MLD_ALG_LOCATIE_KEY
* 23-07-97 AH #1415: In MLD_T_MLD_OPDR_B_IU mag ALG_KOSTENPOST niet gewijzigd worden, MUTATING-table
* enz... Dus is het gedeelte maar verplaatst naar MLD117/Verwerken.
* 23-07-97 AH #1411, sch_m027 aangepast
* 23-07-97 AH #1407, SCH_M035, M036, M037 aangepast
* 23-07-97 AH #1405: SCH_ACTIVITEIT_PPM, .._SHORT en SCH_ACTIVITEIT_PPR, .._SHORT toegevoegd
* SCH_V_WERKZAAMHEDEN_GEGEVENS aangepast, sch_activiteit_volgnr toegevoegd
* 22-07-97 AH #1401: Grootte SCH_FREQUENTIE_CODE aangepast
* --- 01.30 ---
*/
#include "..\modules.h"
#include "..\comsql.h"
set heading off
clear screen
/*
* 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.
*/
PROMPT ***********************************************************************
PROMPT
PROMPT UPGRADE SCRIPT van Facilitor 2.0 versie 01.30 naar 01.31
PROMPT
SELECT 'De huidige versie van Facilitor zou moeten zijn 01.30 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 heading on
/* LOG#1401 , Doe de update via een tussentabel */
CREATE TABLE tmp_frequentie AS
SELECT * from sch_frequentie;
ALTER TABLE sch_frequentie
MODIFY
(
sch_frequentie_code
NULL
);
ALTER TABLE sch_frequentie
DROP CONSTRAINT sch_c_sch_frequentie_unique;
UPDATE sch_frequentie
SET sch_frequentie_code = NULL;
ALTER TABLE sch_frequentie
MODIFY
(
sch_frequentie_code
VARCHAR2(3)
);
UPDATE sch_frequentie SCH_F
SET SCH_F.sch_frequentie_code = (SELECT substr(TMP_F.sch_frequentie_code, 1, 3)
FROM tmp_frequentie TMP_F
WHERE TMP_F.sch_frequentie_key = SCH_F.sch_frequentie_key);
ALTER TABLE sch_frequentie
MODIFY
(
sch_frequentie_code
NOT NULL
);
ALTER TABLE sch_frequentie
ADD CONSTRAINT sch_c_sch_frequentie_unique UNIQUE(sch_frequentie_code);
DROP TABLE tmp_frequentie;
COMMIT;
/* LOG#1405 */
INSERT INTO FAC_ENTITY_NAME VALUES('SCH_ACTIVITEIT_PPM_SHORT','m2',NULL,NULL);
INSERT INTO FAC_ENTITY_NAME VALUES('SCH_ACTIVITEIT_PPR_SHORT','ruimte',NULL,NULL);
INSERT INTO FAC_ENTITY_NAME VALUES('SCH_ACTIVITEIT_PPM','per m2',NULL,NULL);
INSERT INTO FAC_ENTITY_NAME VALUES('SCH_ACTIVITEIT_PPR','per ruimte',NULL,NULL);
DELETE FROM FAC_MESSAGE
WHERE FAC_MESSAGE_CODE = 'SCH_PPM';
INSERT INTO FAC_MESSAGE VALUES('SCH_PPM','Prijs per m2');
CREATE OR REPLACE VIEW sch_v_werkzaamheden_gegevens
(sch_werkzaamheden_key,
sch_werkzaamheden_kosten,
sch_activiteit_code,
sch_activiteit_prijsprofiel,
sch_activiteit_volgnr,
sch_nivo_key,
sch_nivo_omschrijving,
alg_srtruimte_key,
alg_srtruimte_omschrijving,
alg_srtruimte_upper,
sch_srtvloer_key,
sch_srtvloer_omschrijving,
sch_srtvloer_upper,
sch_frequentie_key,
sch_frequentie_code) AS
SELECT SCH_W.sch_werkzaamheden_key,
SCH_W.sch_werkzaamheden_kosten,
SCH_A.sch_activiteit_code,
SCH_A.sch_activiteit_prijsprofiel,
SCH_A.sch_activiteit_volgnr,
SCH_N.sch_nivo_key,
SCH_N.sch_nivo_omschrijving,
SCH_W.sch_alg_srtruimte_key,
ALG_SR.alg_srtruimte_omschrijving,
ALG_SR.alg_srtruimte_upper,
SCH_W.sch_srtvloer_key,
SCH_SV.sch_srtvloer_omschrijving,
SCH_SV.sch_srtvloer_upper,
SCH_W.sch_frequentie_key,
SCH_F.sch_frequentie_code
FROM sch_werkzaamheden SCH_W, sch_activiteit SCH_A, sch_nivo SCH_N,
sch_v_aanwezigsrtvloer SCH_SV, alg_v_aanwezigsrtruimte ALG_SR,
sch_frequentie SCH_F
WHERE SCH_W.sch_activiteit_key = SCH_A.sch_activiteit_key
AND SCH_W.sch_nivo_key = SCH_N.sch_nivo_key
AND SCH_W.sch_frequentie_key = SCH_F.sch_frequentie_key
AND SCH_W.sch_srtvloer_key = SCH_SV.sch_srtvloer_key (+)
AND SCH_W.sch_alg_srtruimte_key = ALG_SR.alg_srtruimte_key (+);
/* LOG#1407 */
DELETE FROM FAC_MESSAGE
WHERE FAC_MESSAGE_CODE IN ('SCH_M035','SCH_M036','SCH_M037');
INSERT INTO FAC_MESSAGE VALUES('SCH_M035','De geselecteerde schoonmaakniveau''s verwijderen?');
INSERT INTO FAC_MESSAGE VALUES('SCH_M036','Er zijn geen schoonmaakniveau''s geselecteerd');
INSERT INTO FAC_MESSAGE VALUES('SCH_M037','De geselecteerde werkzaamheden verwijderen?');
/* LOG#1411 */
DELETE FROM FAC_MESSAGE
WHERE FAC_MESSAGE_CODE IN ('SCH_M027');
INSERT INTO FAC_MESSAGE VALUES('SCH_M027','Verwijderen niet toegestaan, er zijn nog ruimtes met deze vloersoort.');
/* LOG#1415 */
CREATE OR REPLACE TRIGGER mld_t_mld_opdr_B_IU
BEFORE INSERT OR UPDATE ON mld_opdr
FOR EACH ROW
BEGIN
IF :new.mld_opdr_key IS NULL THEN SELECT mld_s_mld_opdr_key.nextval INTO :new.mld_opdr_key FROM DUAL; END IF;
DECLARE dummy CHAR; BEGIN IF :new.mld_uitvoerende_keys IS NOT NULL THEN SELECT 'X' INTO dummy FROM mld_v_uitvoerende WHERE key = :new.mld_uitvoerende_keys; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN raise_application_error(-20000, 'ins_m22'); END;
END;
/
/* LOG#1422 voeg nieuwe column toe aan tabel mld_melding
* (deze wordt verderop nog NOT NULL)
*/
ALTER TABLE mld_melding
ADD
(
mld_alg_locatie_key
NUMBER(10)
REFERENCES alg_locatie(alg_locatie_key)
);
/* vul de nieuwe column voor alle reeds bestaande meldingen mbt
* gebouwen, verdiepingen en ruimtes
*/
UPDATE mld_melding
SET mld_alg_locatie_key = (SELECT alg_locatie_key
FROM mld_v_onroerendgoed_locatie
WHERE alg_onroerendgoed_keys = mld_alg_onroerendgoed_keys);
/* zet tenslotte de NOT NULL constraint op de column */
ALTER TABLE mld_melding
MODIFY
(
mld_alg_locatie_key
NOT NULL
);
CREATE OR REPLACE TRIGGER mld_t_mld_melding_B_IU
BEFORE INSERT OR UPDATE ON mld_melding
FOR EACH ROW
BEGIN
IF :new.mld_melding_key IS NULL THEN SELECT mld_s_mld_melding_key.nextval INTO :new.mld_melding_key FROM DUAL; END IF;
DECLARE dummy CHAR; BEGIN SELECT 'X' INTO dummy FROM alg_v_aanweziggebouw WHERE alg_gebouw_key = :new.mld_alg_onroerendgoed_keys; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN SELECT 'X' INTO dummy FROM alg_v_aanwezigverdieping WHERE alg_verdieping_key = :new.mld_alg_onroerendgoed_keys; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN SELECT 'X' INTO dummy FROM alg_v_aanwezigruimte WHERE alg_ruimte_key = :new.mld_alg_onroerendgoed_keys; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN SELECT 'X' INTO dummy FROM alg_v_aanwezigterreinsector WHERE alg_terreinsector_key = :new.mld_alg_onroerendgoed_keys; EXCEPTION WHEN NO_DATA_FOUND THEN raise_application_error(-20000,'alg_m090'); END; END; END; END;
IF :old.mld_alg_onroerendgoed_keys IS NULL
OR :old.mld_alg_onroerendgoed_keys <> :new.mld_alg_onroerendgoed_keys
THEN
SELECT alg_locatie_key
INTO :new.mld_alg_locatie_key
FROM mld_v_onroerendgoed_locatie
WHERE alg_onroerendgoed_keys = :new.mld_alg_onroerendgoed_keys;
END IF;
END;
/
/* IMPORT_SRTVLOER */
ALTER TABLE alg_import
ADD
(
alg_import_vloer
VARCHAR2(30)
);
/* LOG#1400 */
alter table alg_import
modify (alg_import_ruimtenr varchar2(10));
/* Initiele waardes voor SCH_SRTVLOER */
#ifdef SCH
#ifdef DATA
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Beton');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Natuursteen');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Vloertegels,glad');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Vloertegels,ruw');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Parket');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Linoleum');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Siergrind');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Tapijt');
#endif // DATA
#endif // SCH
/* LOG#... */
/* werk vervolgens het versienummer en de datum bij (van alle interne modules) */
UPDATE fac_module
SET fac_module_version='01.31',
fac_module_date=TO_CHAR(SYSDATE,'YYYYMMDD');
COMMIT;
SPOOL OFF

558
_UP/131TO132.SRC Normal file
View File

@@ -0,0 +1,558 @@
set echo on
SPOOL 131to132
--
-- [Z:\PROJECT\SM44\SRC\SQL\_UPDATE\131TO132.SQL]
--
-- Update script van Facilitor 2.0 versie 1.31 naar 1.32
--
/*
* 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.
*
* Revisie:
*
* dd-mm-yy xxx LOG#yyyy:
*
* --- 01.32 ---
* 20-08-97 KTH LOG#1433: default vloersoorten cf CONTOUR.INI van Dijkoraad
* LOG#1434: default ruimtesoorten tbv IBG
* --- 01.31 ---
*/
#include "..\modules.h"
#include "..\comsql.h"
set heading off
clear screen
/*
* 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.
*/
PROMPT ***********************************************************************
PROMPT
PROMPT UPGRADE SCRIPT van Facilitor 2.0 versie 01.31 naar 01.32
PROMPT
SELECT 'De huidige versie van Facilitor zou moeten zijn 01.31 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 heading on
/* LOG#1433: initiele waardes voor SCH_SRTVLOER aanpassen */
#ifdef SCH
#ifdef DATA
/* verwijder eerst de reeds aanwezige vloersoorten... */
DELETE FROM sch_srtvloer;
/* ...en maak de juiste vloersoorten opnieuw aan */
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Beton');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Computervloer');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Linoleum');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Natuursteen');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Parket');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Siergrind');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Tapijt');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Vloertegels, glad');
INSERT INTO sch_srtvloer (sch_srtvloer_omschrijving) VALUES ('Vloertegels, ruw');
COMMIT;
#endif // DATA
#endif // SCH
#ifdef ALG
#ifdef DATA
#ifdef IBG
/* 20-08-97/KTH LOG#1434: Voor IBG de Ruimtesoorten voordefinieren */
DELETE FROM alg_srtruimte;
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Accuruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Aircoruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Archiefruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Berging');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Berging rijwielen/bromfietsen');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Bibliotheek');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Brandslanghaspelkast');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Buffet');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('BZB-ruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('CV-ruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Computerruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Concierge');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Containerruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Couverteerruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Doucheruimte dames');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Doucheruimte heren');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Doucheruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Filterruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Gang');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Gang/portaal');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Garderobe');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Hal');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Hydrofoorruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Input');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Installatieruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Instructieruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Kantine');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Kantoorruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Kast');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Ketelhuis');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Keuken');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Kleedruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Kleedruimte dames');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Kleedruimte heren');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Kluis');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Koekoek');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Koelmachineruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Koeltoren');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Laagspanningsruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Leidingen');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Lift');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Liftmachinekamer');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Lorrie');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Luchtbehandelingsruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Magazijn');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Meterkast');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Meterkast elektra');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Meterkast gas');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Meterkast ptt');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Noodstroomaggregaat');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Onbekend');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Onderhoud');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Onderzoekruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Operatorruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Opslagruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Output');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Patio');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Pauzeruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Portaal');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Portier');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Postkamer');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Printerruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Provisieruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Rekencentrum');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Reproruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Schacht');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Schakelruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Snijkamer');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Spoelkeuken');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Spreekkamer');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Tekenruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Technischeruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Toilet');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Toilet dames');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Toilet heren');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Toilet invaliden');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Urinoir');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Toiletvoorruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Toiletvoorruimte dames');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Toiletvoorruimte heren');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Traforuimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Trappenhuis');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Uitgifte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Ventilatorruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Vergaderruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Verkeersruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Vouwruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Wachtruimte');
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving) VALUES('Werkkast');
COMMIT;
#endif // IBG
#endif // DATA
#endif // ALG
#ifdef ATT
/* 20-08-97/KTH Voor IBG0131 is ATT niet aanwezig, in IBG0132 wel,
* creeer daarom de procedure INS_P_INS_CHECK_ATTRIBUTE (evt opnieuw)
*/
CREATE OR REPLACE PROCEDURE INS_P_INS_CHECK_ATTRIBUTE(FacKolom IN CHAR,
SrtdeelKey IN NUMBER,
AttributeKey IN NUMBER) AS
AttributeType ins_attribute.ins_attribute_type%TYPE;
FormatMask VARCHAR2(100);
MaxLengte ins_attribute.ins_attribute_length%TYPE;
WareLengte NUMBER(10);
Verplicht ins_attribute.ins_attribute_required%TYPE;
MinWaarde ins_attribute.ins_attribute_min%TYPE;
MaxWaarde ins_attribute.ins_attribute_max%TYPE;
DecWaarde ins_attribute.ins_attribute_dec%TYPE;
WareWaarde NUMBER(10);
CharWaarde VARCHAR2(50);
BEGIN
BEGIN
SELECT ins_attribute_type,
ins_attribute_length,
ins_attribute_required,
ins_attribute_min,
ins_attribute_max,
ins_attribute_dec
INTO AttributeType,
MaxLengte,
Verplicht,
MinWaarde,
MaxWaarde,
DecWaarde
FROM ins_v_attribute_gegevens
WHERE ins_srtdeel_key = SrtdeelKey
AND ins_attribute_key = AttributeKey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN RETURN;
END;
IF FacKolom IS NULL
THEN
IF Verplicht = 1
THEN
raise_application_error(-20004, TO_CHAR(AttributeKey)||
TO_CHAR(SrtdeelKey)||'att_m008');
ELSE
RETURN;
END IF;
END IF;
IF AttributeType = 'N'
THEN
BEGIN
WareWaarde := TO_NUMBER(FacKolom);
IF WareWaarde < MinWaarde OR WareWaarde > MaxWaarde
THEN
raise_application_error(-20004, TO_CHAR(AttributeKey)||
TO_CHAR(SrtdeelKey)||'att_m009');
ELSE
IF NVL(DecWaarde, 0) = 0
THEN
FormatMask := RPAD('9', MaxLengte, '9');
ELSE
FormatMask := RPAD('9', MaxLengte - DecWaarde, '9')||
'D'||RPAD('9', DecWaarde, '9');
END IF;
CharWaarde := LTRIM(TO_CHAR(WareWaarde, FormatMask));
IF INSTR(CharWaarde, '#') <> 0
THEN
raise_application_error(-20004, TO_CHAR(AttributeKey)||
TO_CHAR(SrtdeelKey)||'att_m010');
END IF;
END IF;
EXCEPTION
WHEN others
THEN
raise_application_error(-20004, TO_CHAR(AttributeKey)||
TO_CHAR(SrtdeelKey)||'att_m010');
END;
ELSIF AttributeType = 'C'
THEN
WareLengte := LENGTH(FacKolom);
IF NVL(WareLengte, 0) > NVL(MaxLengte, 0)
THEN
raise_application_error(-20004, TO_CHAR(AttributeKey)||
TO_CHAR(SrtdeelKey)||'att_m011');
END IF;
END IF;
END;
/
#endif // ATT
#ifdef INS
/* 20-08-97/KTH Voor IBG0131 is ATT niet aanwezig, in IBG0132 wel
* maak daarom de trigger opnieuw aan incl het ATT-deel
*/
CREATE OR REPLACE TRIGGER ins_t_ins_deel_B_IU
BEFORE INSERT OR UPDATE ON ins_deel
FOR EACH ROW
BEGIN
LOG('Begin INS_T_INS_DEEL_B_IU');
UPDATE_PRIMARY_KEY(ins_deel_key,ins_s_ins_inst_keys);
UPDATE_UPPER(ins_deel_omschrijving,ins_deel_upper);
SET_VERWIJDER_CHILDREN(ins_onderdeel, ins_deel_key, ins_deel_verwijder,
ins_onderdeel_verwijder);
/* 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 = 'R'
THEN
CHECK_KEY_REFERENCE(alg_v_aanwezigruimte, alg_ruimte_key,
:new.ins_alg_ruimte_key, 'ins_m092');
ELSIF :new.ins_alg_ruimte_type = 'V'
THEN
CHECK_KEY_REFERENCE(alg_v_aanwezigverdieping, alg_verdieping_key,
:new.ins_alg_ruimte_key, 'ins_m093');
ELSIF :new.ins_alg_ruimte_type = 'G'
THEN
CHECK_KEY_REFERENCE(alg_v_aanweziggebouw, alg_gebouw_key,
:new.ins_alg_ruimte_key, 'ins_m094');
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;
IF NOT :old.ins_alg_ruimte_key IS NULL
THEN
/* Als er 'geplaatste' onderdelen bij dit deel horen, dan mag het
* deel neit verplaatst worden.
*/
DECLARE
dummy CHAR;
BEGIN
SELECT 'X'
INTO dummy
FROM ins_v_aanwezigonderdeel INS_O
WHERE INS_O.ins_deel_key = :new.ins_deel_key
AND INS_O.ins_alg_onroerendgoed_key IS NOT NULL;
APPLICATION_ERROR(-20000, 'ins_m100');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20000, 'ins_m100');
END;
/*
UPDATE ins_onderdeel
SET ins_alg_onroerendgoed_key = NULL
WHERE ins_deel_key = :new.ins_deel_key;
*/
END IF;
#ifdef INV
ELSIF :new.ins_deel_module = 'INV'
AND ((:old.ins_alg_ruimte_key <> :new.ins_alg_ruimte_key
OR :old.ins_alg_ruimte_key IS NULL)
OR (:old.ins_prs_bezit_key <> :new.ins_prs_bezit_key
OR :old.ins_prs_bezit_key IS NULL))
THEN
// IF :new.ins_alg_ruimte_key IS NOT NULL
// AND :new.ins_prs_bezit_key IS NOT NULL
// THEN
// APPLICATION_ERROR(-20000, 'ins_m85');
IF :new.ins_alg_ruimte_key IS NOT NULL
THEN
IF :new.ins_alg_ruimte_type = 'R'
THEN
CHECK_KEY_REFERENCE(alg_v_aanwezigruimte, alg_ruimte_key,
:new.ins_alg_ruimte_key, 'ins_m88');
ELSIF :new.ins_alg_ruimte_type = 'W'
THEN
CHECK_KEY_REFERENCE(all_v_aanwezigwerkplek, prs_werkplek_key,
:new.ins_alg_ruimte_key, 'ins_m88');
// 14-01-97 Koppelen aan Locatie is nu niet meer mogelijk
// ELSIF :new.ins_alg_ruimte_type = 'L'
// THEN
// CHECK_KEY_REFERENCE(alg_v_aanweziglocatie, alg_locatie_key,
// :new.ins_alg_ruimte_key, 'ins_m88');
ELSE
APPLICATION_ERROR(-20000, 'ins_m84');
END IF;
END IF;
IF :new.ins_prs_bezit_key IS NOT NULL
THEN
IF :new.ins_prs_bezit_type = 'P'
THEN
CHECK_KEY_REFERENCE(all_v_aanwezigperslid, prs_perslid_key,
:new.ins_prs_bezit_key, 'ins_m86');
ELSIF :new.ins_prs_bezit_type = 'A'
THEN
CHECK_KEY_REFERENCE(prs_v_aanwezigafdeling, prs_afdeling_key,
:new.ins_prs_bezit_key, 'ins_m86');
ELSE
APPLICATION_ERROR(-20000, 'ins_m86');
END IF;
END IF;
#endif
END IF;
#ifdef INV
/* Als een INS_DEEL in INV-mode (red. een artikel) verwijderd, gekoppeld,
* ontkoppeld of verplaatst wordt van een ruimte of een werkplek,
* dan is de bijbehorende verdieping-tekening niet meer up to date en
* moet dus het INV_DWGUPTODATE-veld gezet worden.
*
* Als in INV-mode het INS_DEEL van INS_SRTDEEL veranderd,
* moet in het geval dit INS_SRTDEEL een ander ACADSYMBOL heeft
* het INV_DWGUPTODATE-veld van de verdiepingtekening ook gezet worden.
*/
IF :new.ins_deel_module = 'INV'
THEN
/* Verwijderen */
IF :new.ins_deel_verwijder IS NOT NULL
/* Koppelen */
OR (:old.ins_alg_ruimte_key IS NULL
AND :new.ins_alg_ruimte_key IS NOT NULL)
/* Ontkoppelen */
OR (:old.ins_alg_ruimte_key IS NOT NULL
AND :new.ins_alg_ruimte_key IS NULL)
/* Verplaatsen */
OR (:old.ins_alg_ruimte_key <> :new.ins_alg_ruimte_key)
/* Van INS_SRTDEEL veranderen.
* ACADSYMBOL is hierin nog niet verwerkt.
*/
OR (:old.ins_srtdeel_key <> :new.ins_srtdeel_key)
THEN
/* Voor de oude INS_ALG_RUIMTE_KEY */
IF :old.ins_alg_ruimte_type = 'R'
AND :old.ins_alg_ruimte_key IS NOT NULL
THEN
SET_DWGUPTODATE(alg_verdieping, alg_verdieping_key,
(SELECT ALG_R.alg_verdieping_key
FROM alg_ruimte ALG_R
WHERE ALG_R.alg_ruimte_key = :old.ins_alg_ruimte_key),
inv_dwguptodate);
ELSIF :old.ins_alg_ruimte_type = 'W'
AND :old.ins_alg_ruimte_key IS NOT NULL
THEN
SET_DWGUPTODATE(alg_verdieping, alg_verdieping_key,
(SELECT ALG_R.alg_verdieping_key
FROM prs_v_aanwezigwerkplek PRS_W,
alg_ruimte ALG_R
WHERE PRS_W.prs_werkplek_key = :old.ins_alg_ruimte_key
AND ALG_R.alg_ruimte_key = PRS_W.prs_alg_ruimte_key),
inv_dwguptodate);
END IF;
/* Voor de nieuwe INS_ALG_RUIMTE_KEY*/
IF :new.ins_alg_ruimte_type = 'R'
AND :new.ins_alg_ruimte_key IS NOT NULL
THEN
SET_DWGUPTODATE(alg_verdieping, alg_verdieping_key,
(SELECT ALG_R.alg_verdieping_key
FROM alg_ruimte ALG_R
WHERE ALG_R.alg_ruimte_key = :new.ins_alg_ruimte_key),
inv_dwguptodate);
ELSIF :new.ins_alg_ruimte_type = 'W'
AND :new.ins_alg_ruimte_key IS NOT NULL
THEN
SET_DWGUPTODATE(alg_verdieping, alg_verdieping_key,
(SELECT ALG_R.alg_verdieping_key
FROM prs_v_aanwezigwerkplek PRS_W,
alg_ruimte ALG_R
WHERE PRS_W.prs_werkplek_key = :new.ins_alg_ruimte_key
AND ALG_R.alg_ruimte_key = PRS_W.prs_alg_ruimte_key),
inv_dwguptodate);
END IF;
END IF;
END IF;
#endif // INV
#ifdef ATT
/* Gedeelte t.b.v. eventuele attributen */
DECLARE
nAttribs NUMBER(10);
BEGIN
/* Controleer eerst of er uberhaupt attributen zijn
* bij dit Srtdeel.
*/
SELECT count(*)
INTO nAttribs
FROM ins_v_attribute_gegevens
WHERE ins_srtdeel_key = :new.ins_srtdeel_key;
/* Attributen aanwezig
*/
IF nAttribs <> 0
THEN
CHECK_ATTRIBUTE(fac0, 0);
CHECK_ATTRIBUTE(fac1, 1);
CHECK_ATTRIBUTE(fac2, 2);
CHECK_ATTRIBUTE(fac3, 3);
CHECK_ATTRIBUTE(fac4, 4);
CHECK_ATTRIBUTE(fac5, 5);
CHECK_ATTRIBUTE(fac6, 6);
CHECK_ATTRIBUTE(fac7, 7);
CHECK_ATTRIBUTE(fac8, 8);
CHECK_ATTRIBUTE(fac9, 9);
#if 0 // Oude situatie maakt een te grote trigger aan.
IF (:old.fac0 <> :new.fac0)
OR (:old.fac0 IS NOT NULL AND :new.fac0 IS NULL)
OR (:old.fac0 IS NULL AND :new.fac0 IS NOT NULL)
THEN
INS_P_INS_CHECK_ATTRIBUTE(:new.fac0, :new.ins_srtdeel_key, 0);
END IF;
IF :new.fac1 <> :old.fac1 OR :new.fac1 IS NULL OR :old.fac1 IS NULL THEN CHECK_ATTRIBUTE(fac1,1); END IF;
IF :new.fac2 <> :old.fac2 OR :new.fac2 IS NULL OR :old.fac2 IS NULL THEN CHECK_ATTRIBUTE(fac2,2); END IF;
IF :new.fac3 <> :old.fac3 OR :new.fac3 IS NULL OR :old.fac3 IS NULL THEN CHECK_ATTRIBUTE(fac3,3); END IF;
IF :new.fac4 <> :old.fac4 OR :new.fac4 IS NULL OR :old.fac4 IS NULL THEN CHECK_ATTRIBUTE(fac4,4); END IF;
IF :new.fac5 <> :old.fac5 OR :new.fac5 IS NULL OR :old.fac5 IS NULL THEN CHECK_ATTRIBUTE(fac5,5); END IF;
IF :new.fac6 <> :old.fac6 OR :new.fac6 IS NULL OR :old.fac6 IS NULL THEN CHECK_ATTRIBUTE(fac6,6); END IF;
IF :new.fac7 <> :old.fac7 OR :new.fac7 IS NULL OR :old.fac7 IS NULL THEN CHECK_ATTRIBUTE(fac7,7); END IF;
IF :new.fac8 <> :old.fac8 OR :new.fac8 IS NULL OR :old.fac8 IS NULL THEN CHECK_ATTRIBUTE(fac8,8); END IF;
IF :new.fac9 <> :old.fac9 OR :new.fac9 IS NULL OR :old.fac9 IS NULL THEN CHECK_ATTRIBUTE(fac9,9); END IF;
#endif // 0
END IF;
END;
#endif // ATT
LOG('Eind INS_T_INS_DEEL_B_IU');
END;
/
#endif // INS
#ifdef ATT
/* 20-08-97/KTH Voor IBG0131 is ATT niet aanwezig, in IBG0132 wel,
* vul daarom de waarden in fac_form en fac_module aan
*/
INSERT INTO fac_form VALUES( NULL , NULL, NULL ,'120000','ATT_MODULE','Attributen Module');
INSERT INTO fac_form VALUES('ATT011', NULL, 'MODULE','120110','INS_ATT011','Overzichtscherm Attributen (INS)');
INSERT INTO fac_form VALUES('ATT111', NULL, 'MODULE','121110','INS_ATT111','Mutatiescherm Attributen (INS)');
INSERT INTO fac_module VALUES ('ATT','01.32',TO_CHAR(SYSDATE,'YYYYMMDD'),'Attributen');
#endif // ATT
/* LOG#... */
/* werk vervolgens het versienummer en de datum bij (van alle interne modules) */
UPDATE fac_module
SET fac_module_version='01.32',
fac_module_date=TO_CHAR(SYSDATE,'YYYYMMDD');
COMMIT;
SPOOL OFF

94
_UP/132TO133.SRC Normal file
View File

@@ -0,0 +1,94 @@
set echo on
SPOOL 132to133
--
-- [Z:\PROJECT\SM44\SRC\SQL\_UPDATE\132TO133.SQL]
--
-- Update script van Facilitor 2.0 versie 1.32 naar 1.33
--
/*
* 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.
*
* Revisie:
*
* dd-mm-yy xxx LOG#yyyy:
*
* 08-09-97 AH ATT_CHAR, ATT_NUMBER en ATT_REFERENCE toegevoegd voor MAN.
* 02-09-97 AH #1449, INS_INS115 kanweg als ATT-module is geinstalleerd. INS_INS126 wordt dan
* gebruikt.
* 01-09-97 AH #1454, INS_SRTDEEL_ACADSYMBOL moet met de UPPER gevuld worden.
* --- 01.32 ---
*/
#include "..\modules.h"
#include "..\comsql.h"
set heading off
clear screen
/*
* 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.
*/
PROMPT ***********************************************************************
PROMPT
PROMPT UPGRADE SCRIPT van Facilitor 2.0 versie 01.32 naar 01.33
PROMPT
SELECT 'De huidige versie van Facilitor zou moeten zijn 01.32 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 heading on
/* denk aan #ifdef constructies! */
#ifdef INS
/* LOG#1454 */
UPDATE ins_srtdeel
SET ins_srtdeel_acadsymbol = UPPER(ins_srtdeel_acadsymbol);
#endif
#ifdef ATT
/* LOG#1449 */
DELETE FROM fac_form
WHERE fac_form_name = 'INS115';
#endif
/* LOG#... */
INSERT INTO FAC_ENTITY_NAME VALUES('ATT_CHAR','Karakter','Karakters', 'de');
INSERT INTO FAC_ENTITY_NAME VALUES('ATT_NUMBER','Numeriek',NULL, NULL);
INSERT INTO FAC_ENTITY_NAME VALUES('ATT_REFERENCE','Referentie','Referenties', 'de');
/* LOG#... */
/* werk vervolgens het versienummer en de datum bij (van alle interne modules) */
UPDATE fac_module
SET fac_module_version='01.33',
fac_module_date=TO_CHAR(SYSDATE,'YYYYMMDD');
COMMIT;
SPOOL OFF

913
_UP/136TO137.SRC Normal file
View File

@@ -0,0 +1,913 @@
set echo on
SPOOL 136to137
--
-- [Z:\PROJECT\SM44\SRC\SQL\_UPDATE\136TO137.SQL]
--
-- Update script van Facilitor 2.0 versie 1.36 naar 1.37
--
/*
* 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.
*
* Revisie:
*
* dd-mm-yy xxx LOG#yyyy:
*
* --- 01.37 ---
* 22-05-1998 KTH LOG#1821: Nieuwe CAD-zaken toegevoegd
* 15-05-1998 KTH - LOG#983: FAC_M025 toegevoegd tbv het tonen van USERNAME in FAC012
* - LOG#1691: DEFAULT 1 gedefinieerd voor PRS_BEDRIJF_UITVOERENDE
* - LOG#1594: INS_M013 hergeformuleerd
* - LOG#1717: FAC_MESSAGE 'MENU_MLD_HERKTEKST' toegevoegd
* --- 01.36 ---
*/
/*
#include "..\modules.h"
#include "..\comsql.h"
*/
#include "modules.h"
#include "comsql.h"
set heading off
clear screen
/*
* 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.
*/
PROMPT ***********************************************************************
PROMPT
PROMPT UPGRADE SCRIPT van Facilitor 2.0 versie 01.36 naar 01.37
PROMPT
SELECT 'De huidige versie van Facilitor zou moeten zijn 01.36 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 heading on
/* denk aan #ifdef constructies! */
/* PLAATS HIERTUSSEN DE UPDATES */
#ifdef AKZ //13-05-1998 BIV
CREATE_TABLE(alg_srtvloer,BIBLIOTHEEK_PRIVILEGE)
(
alg_srtvloer_key
NUMBER(10)
CONSTRAINT alg_k_alg_srtvloer_key PRIMARY KEY,
alg_srtvloer_omschrijving
VARCHAR2(30)
NOT_NULL(alg_srtvloer_omschrijving, alg_c_alg_srtvloer_omschr),
alg_srtvloer_upper
VARCHAR2(30)
NOT_NULL(alg_srtvloer_upper, alg_c_alg_srtvloer_upper),
alg_srtvloer_aanmaak
DATE
DEFAULT SYSDATE,
alg_srtvloer_verwijder
DATE
DEFAULT NULL,
CONSTRAINT alg_u_alg_srtvloer_upper UNIQUE(alg_srtvloer_upper, alg_srtvloer_verwijder)
);
CREATE_TABLE(akz_schnivo,BIBLIOTHEEK_PRIVILEGE)
(
akz_schnivo_key
NUMBER(10)
CONSTRAINT akz_k_akz_schnivo_key PRIMARY KEY,
akz_schnivo_code
VARCHAR2(10)
NOT_NULL(akz_schnivo_code, akz_c_akz_schnivo_code),
akz_schnivo_upper
VARCHAR2(10)
NOT_NULL(akz_schnivo_upper, akz_c_akz_schnivo_upper),
akz_schnivo_omschrijving
VARCHAR2(30)
NOT_NULL(akz_schnivo_omschrijving, akz_c_akz_schnivo_omschr),
akz_schnivo_document
VARCHAR2(256),
akz_schnivo_kengetal
NUMBER(8,2)
CONSTRAINT akz_c_akz_schnivo_kengetal CHECK(akz_schnivo_kengetal > 0),
akz_schnivo_aanmaak
DATE
DEFAULT SYSDATE
CONSTRAINT alg_c_alg_schnivo_aanmaak NOT NULL,
akz_schnivo_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT akz_u_akz_schnivo_upper UNIQUE (akz_schnivo_upper, akz_schnivo_verwijder)
);
ALTER TABLE alg_ruimte
ADD
(
akz_schnivo_key
NUMBER(10)
CONSTRAINT alg_r_akz_schnivo_key REFERENCES akz_schnivo(akz_schnivo_key),
alg_srtvloer_key
NUMBER(10)
CONSTRAINT alg_r_alg_srtvloer_key REFERENCES alg_srtvloer(alg_srtvloer_key)
);
DEFINIEER_VIEW_AANWEZIG(alg_srtvloer, alg_srtvloer_verwijder,
alg_v_aanwezigsrtvloer,NORMAAL_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(alg_ruimte, alg_ruimte_verwijder,
alg_v_aanwezigruimte,NORMAAL_PRIVILEGE);
CREATE SEQUENCE alg_s_alg_srtvloer_key MINVALUE 1;
CREATE_TRIGGER(alg_t_alg_srtvloer_B_IU)
BEFORE INSERT OR UPDATE ON alg_srtvloer
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_srtvloer_key, alg_s_alg_srtvloer_key);
UPDATE_UPPER(alg_srtvloer_omschrijving, alg_srtvloer_upper);
CHECK_NOG_REFERENCES(alg_srtvloer, alg_srtvloer_verwijder, alg_v_aanwezigruimte,
alg_srtvloer_key, 'alg_m220');
END;
/
DEFINIEER_VIEW_AANWEZIG(akz_schnivo, akz_schnivo_verwijder,
akz_v_aanwezigschnivo,BIBLIOTHEEK_PRIVILEGE);
CREATE SEQUENCE akz_s_akz_schnivo_key MINVALUE 1;
CREATE_TRIGGER(akz_t_akz_schnivo_B_IU)
BEFORE INSERT OR UPDATE ON akz_schnivo
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(akz_schnivo_key, akz_s_akz_schnivo_key);
UPDATE_UPPER(akz_schnivo_code, akz_schnivo_upper);
CHECK_NOG_REFERENCES(akz_schnivo, akz_schnivo_verwijder,
akz_v_aanwezigruimte, akz_schnivo_key, 'akz_m013');
END;
/
CREATE_VIEW(mld_v_mld_openmelding,NORMAAL_PRIVILEGE) (mld_melding_module,
mld_melding_key,
mld_ins_discipline_key,
mld_ins_srtinst_keys,
mld_alg_onroerendgoed_keys,
mld_melding_datum,
mld_melding_melder_naam,
mld_meldbron_key,
mld_oorzaak_key,
mld_stdmelding_key,
mld_melding_ingezien,
mld_melding_afgewezen,
mld_melding_geaccepteerd,
mld_melding_afgemeld,
mld_melding_verwerkt,
mld_statussoort ) AS
SELECT DISTINCT MLD_M.mld_melding_module,
MLD_M.mld_melding_key,
MLD_M.mld_ins_discipline_key,
MLD_M.mld_ins_srtinst_keys,
MLD_M.mld_alg_onroerendgoed_keys,
MLD_M.mld_melding_datum,
MLD_M.mld_melding_melder_naam,
MLD_M.mld_meldbron_key,
MLD_M.mld_oorzaak_key,
MLD_M.mld_stdmelding_key,
MLD_M.mld_melding_ingezien,
MLD_M.mld_melding_afgewezen,
MLD_M.mld_melding_geaccepteerd,
MLD_M.mld_melding_afgemeld,
MLD_M.mld_melding_verwerkt,
'INGEVOERD'
FROM mld_melding MLD_M
WHERE mld_melding_ingezien IS NULL
AND (EXISTS (SELECT fac_gebruiker_kolomkey
FROM fac_gebruiker
WHERE fac_gebruiker_kolomkey = MLD_M.mld_ins_discipline_key)
OR EXISTS (SELECT FAC_F.fac_functie_key
FROM fac_functie FAC_F, fac_gebruiker FAC_G
WHERE FAC_F.fac_functie_code ='MLD_INVOER'
AND FAC_F.fac_functie_key = FAC_G.fac_functie_key))
UNION
SELECT DISTINCT MLD_M.mld_melding_module,
MLD_M.mld_melding_key,
MLD_M.mld_ins_discipline_key,
MLD_M.mld_ins_srtinst_keys,
MLD_M.mld_alg_onroerendgoed_keys,
MLD_M.mld_melding_datum,
MLD_M.mld_melding_melder_naam,
MLD_M.mld_meldbron_key,
MLD_M.mld_oorzaak_key,
MLD_M.mld_stdmelding_key,
MLD_M.mld_melding_ingezien,
MLD_M.mld_melding_afgewezen,
MLD_M.mld_melding_geaccepteerd,
MLD_M.mld_melding_afgemeld,
MLD_M.mld_melding_verwerkt,
'INGEZIEN'
FROM mld_melding MLD_M
WHERE MLD_M.mld_melding_ingezien IS NOT NULL
AND MLD_M.mld_melding_afgewezen IS NULL
AND MLD_M.mld_melding_geaccepteerd IS NULL
AND (EXISTS (SELECT fac_gebruiker_kolomkey
FROM fac_gebruiker
WHERE fac_gebruiker_kolomkey = MLD_M.mld_ins_discipline_key)
OR EXISTS (SELECT FAC_F.fac_functie_key
FROM fac_functie FAC_F, fac_gebruiker FAC_G
WHERE FAC_F.fac_functie_code ='MLD_INVOER'
AND FAC_F.fac_functie_key = FAC_G.fac_functie_key))
UNION
SELECT DISTINCT MLD_M.mld_melding_module,
MLD_M.mld_melding_key,
MLD_M.mld_ins_discipline_key,
MLD_M.mld_ins_srtinst_keys,
MLD_M.mld_alg_onroerendgoed_keys,
MLD_M.mld_melding_datum,
MLD_M.mld_melding_melder_naam,
MLD_M.mld_meldbron_key,
MLD_M.mld_oorzaak_key,
MLD_M.mld_stdmelding_key,
MLD_M.mld_melding_ingezien,
MLD_M.mld_melding_afgewezen,
MLD_M.mld_melding_geaccepteerd,
MLD_M.mld_melding_afgemeld,
MLD_M.mld_melding_verwerkt,
'OVERSCHREDEN'
FROM mld_melding MLD_M,
mld_stdmelding MLD_SM
WHERE MLD_M.mld_melding_afgewezen IS NULL
AND MLD_M.mld_melding_geaccepteerd IS NULL
AND MLD_M.mld_stdmelding_key = MLD_SM.mld_stdmelding_key
AND SYSDATE > mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(MLD_M.mld_melding_datum,
MLD_SM.mld_stdmelding_urgentie,
'UREN')
AND (EXISTS (SELECT fac_gebruiker_kolomkey
FROM fac_gebruiker
WHERE fac_gebruiker_kolomkey = MLD_M.mld_ins_discipline_key)
OR EXISTS (SELECT FAC_F.fac_functie_key
FROM fac_functie FAC_F, fac_gebruiker FAC_G
WHERE FAC_F.fac_functie_code ='MLD_INVOER'
AND FAC_F.fac_functie_key = FAC_G.fac_functie_key))
UNION
SELECT DISTINCT MLD_M.mld_melding_module,
MLD_M.mld_melding_key,
MLD_M.mld_ins_discipline_key,
MLD_M.mld_ins_srtinst_keys,
MLD_M.mld_alg_onroerendgoed_keys,
MLD_M.mld_melding_datum,
MLD_M.mld_melding_melder_naam,
MLD_M.mld_meldbron_key,
MLD_M.mld_oorzaak_key,
MLD_M.mld_stdmelding_key,
MLD_M.mld_melding_ingezien,
MLD_M.mld_melding_afgewezen,
MLD_M.mld_melding_geaccepteerd,
MLD_M.mld_melding_afgemeld,
MLD_M.mld_melding_verwerkt,
'TE_LAAT'
FROM mld_melding MLD_M
WHERE MLD_M.mld_melding_afgewezen IS NULL
AND MLD_M.mld_melding_geaccepteerd IS NOT NULL
AND MLD_M.mld_melding_afgemeld IS NULL
AND SYSDATE > mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(MLD_M.mld_melding_datum,
MLD_M.mld_melding_uitvoertijd,
'DAGEN')
AND (EXISTS (SELECT fac_gebruiker_kolomkey
FROM fac_gebruiker
WHERE fac_gebruiker_kolomkey = MLD_M.mld_ins_discipline_key)
OR EXISTS (SELECT FAC_F.fac_functie_key
FROM fac_functie FAC_F, fac_gebruiker FAC_G
WHERE FAC_F.fac_functie_code ='MLD_INVOER'
AND FAC_F.fac_functie_key = FAC_G.fac_functie_key))
UNION
SELECT DISTINCT MLD_M.mld_melding_module,
MLD_M.mld_melding_key,
MLD_M.mld_ins_discipline_key,
MLD_M.mld_ins_srtinst_keys,
MLD_M.mld_alg_onroerendgoed_keys,
MLD_M.mld_melding_datum,
MLD_M.mld_melding_melder_naam,
MLD_M.mld_meldbron_key,
MLD_M.mld_oorzaak_key,
MLD_M.mld_stdmelding_key,
MLD_M.mld_melding_ingezien,
MLD_M.mld_melding_afgewezen,
MLD_M.mld_melding_geaccepteerd,
MLD_M.mld_melding_afgemeld,
MLD_M.mld_melding_verwerkt,
'AFGEWEZEN'
FROM mld_melding MLD_M
WHERE MLD_M.mld_melding_afgewezen IS NOT NULL
AND MLD_M.mld_melding_geaccepteerd IS NULL
AND MLD_M.mld_melding_afgemeld IS NULL
AND MLD_M.mld_melding_verwerkt IS NULL
AND (EXISTS (SELECT fac_gebruiker_kolomkey
FROM fac_gebruiker
WHERE fac_gebruiker_kolomkey = MLD_M.mld_ins_discipline_key)
OR EXISTS (SELECT FAC_F.fac_functie_key
FROM fac_functie FAC_F, fac_gebruiker FAC_G
WHERE FAC_F.fac_functie_code ='MLD_INVOER'
AND FAC_F.fac_functie_key = FAC_G.fac_functie_key))
UNION
SELECT DISTINCT MLD_M.mld_melding_module,
MLD_M.mld_melding_key,
MLD_M.mld_ins_discipline_key,
MLD_M.mld_ins_srtinst_keys,
MLD_M.mld_alg_onroerendgoed_keys,
MLD_M.mld_melding_datum,
MLD_M.mld_melding_melder_naam,
MLD_M.mld_meldbron_key,
MLD_M.mld_oorzaak_key,
MLD_M.mld_stdmelding_key,
MLD_M.mld_melding_ingezien,
MLD_M.mld_melding_afgewezen,
MLD_M.mld_melding_geaccepteerd,
MLD_M.mld_melding_afgemeld,
MLD_M.mld_melding_verwerkt,
'GEACCEPTEERD'
FROM mld_melding MLD_M
WHERE MLD_M.mld_melding_geaccepteerd IS NOT NULL
AND MLD_M.mld_melding_afgemeld IS NULL
AND MLD_M.mld_melding_verwerkt IS NULL
AND (EXISTS (SELECT fac_gebruiker_kolomkey
FROM fac_gebruiker
WHERE fac_gebruiker_kolomkey = MLD_M.mld_ins_discipline_key)
OR EXISTS (SELECT FAC_F.fac_functie_key
FROM fac_functie FAC_F, fac_gebruiker FAC_G
WHERE FAC_F.fac_functie_code ='MLD_INVOER'
AND FAC_F.fac_functie_key = FAC_G.fac_functie_key))
UNION
SELECT DISTINCT MLD_M.mld_melding_module,
MLD_M.mld_melding_key,
MLD_M.mld_ins_discipline_key,
MLD_M.mld_ins_srtinst_keys,
MLD_M.mld_alg_onroerendgoed_keys,
MLD_M.mld_melding_datum,
MLD_M.mld_melding_melder_naam,
MLD_M.mld_meldbron_key,
MLD_M.mld_oorzaak_key,
MLD_M.mld_stdmelding_key,
MLD_M.mld_melding_ingezien,
MLD_M.mld_melding_afgewezen,
MLD_M.mld_melding_geaccepteerd,
MLD_M.mld_melding_afgemeld,
MLD_M.mld_melding_verwerkt,
'OPEN'
FROM mld_melding MLD_M,
mld_opdr MLD_O
WHERE MLD_M.mld_melding_key = MLD_O.mld_melding_key (+)
AND (MLD_O.mld_statusopdr_key IN
(SELECT mld_statusopdr_key
FROM mld_statusopdr MLD_S
WHERE MLD_S.mld_statusopdr_upper LIKE '%UITGEGEVEN' OR
MLD_S.mld_statusopdr_upper LIKE '%AFGEMELD' OR
MLD_S.mld_statusopdr_upper LIKE '%INGEVOERD') OR
MLD_O.mld_statusopdr_key IS NULL)
AND (MLD_M.mld_ins_srtinst_keys IS NULL
OR MLD_M.mld_ins_srtinst_keys IN (SELECT ins_srtinst_keys
FROM ins_v_srtinst)
)
AND (EXISTS (SELECT fac_gebruiker_kolomkey
FROM fac_gebruiker
WHERE fac_gebruiker_kolomkey = MLD_M.mld_ins_discipline_key)
OR EXISTS (SELECT FAC_F.fac_functie_key
FROM fac_functie FAC_F, fac_gebruiker FAC_G
WHERE FAC_F.fac_functie_code ='MLD_INVOER'
AND FAC_F.fac_functie_key = FAC_G.fac_functie_key))
UNION
SELECT DISTINCT MLD_M.mld_melding_module,
MLD_M.mld_melding_key,
MLD_M.mld_ins_discipline_key,
MLD_M.mld_ins_srtinst_keys,
MLD_M.mld_alg_onroerendgoed_keys,
MLD_M.mld_melding_datum,
MLD_M.mld_melding_melder_naam,
MLD_M.mld_meldbron_key,
MLD_M.mld_oorzaak_key,
MLD_M.mld_stdmelding_key,
MLD_M.mld_melding_ingezien,
MLD_M.mld_melding_afgewezen,
MLD_M.mld_melding_geaccepteerd,
MLD_M.mld_melding_afgemeld,
MLD_M.mld_melding_verwerkt,
'AFGEMELD'
FROM mld_melding MLD_M
WHERE (EXISTS (SELECT MLD_O.mld_opdr_key
FROM mld_opdr MLD_O, mld_statusopdr MLD_SO
WHERE MLD_O.mld_melding_key = MLD_M.mld_melding_key
AND MLD_O.mld_statusopdr_key = MLD_SO.mld_statusopdr_key
AND MLD_SO.mld_statusopdr_upper LIKE '%AFGEMELD')
OR (MLD_M.mld_melding_afgemeld IS NOT NULL
AND MLD_M.mld_melding_verwerkt IS NULL)
)
AND (MLD_M.mld_ins_srtinst_keys IS NULL
OR MLD_M.mld_ins_srtinst_keys IN (SELECT ins_srtinst_keys
FROM ins_v_srtinst)
)
AND (EXISTS (SELECT fac_gebruiker_kolomkey
FROM fac_gebruiker
WHERE fac_gebruiker_kolomkey = MLD_M.mld_ins_discipline_key)
OR EXISTS (SELECT FAC_F.fac_functie_key
FROM fac_functie FAC_F, fac_gebruiker FAC_G
WHERE FAC_F.fac_functie_code ='MLD_INVOER'
AND FAC_F.fac_functie_key = FAC_G.fac_functie_key))
UNION
SELECT DISTINCT MLD_M.mld_melding_module,
MLD_M.mld_melding_key,
MLD_M.mld_ins_discipline_key,
MLD_M.mld_ins_srtinst_keys,
MLD_M.mld_alg_onroerendgoed_keys,
MLD_M.mld_melding_datum,
MLD_M.mld_melding_melder_naam,
MLD_M.mld_meldbron_key,
MLD_M.mld_oorzaak_key,
MLD_M.mld_stdmelding_key,
MLD_M.mld_melding_ingezien,
MLD_M.mld_melding_afgewezen,
MLD_M.mld_melding_geaccepteerd,
MLD_M.mld_melding_afgemeld,
MLD_M.mld_melding_verwerkt,
'VERWERKT'
FROM mld_melding MLD_M
WHERE ((EXISTS (SELECT MLD_O.mld_opdr_key
FROM mld_opdr MLD_O, mld_statusopdr MLD_S
WHERE MLD_O.mld_melding_key = MLD_M.mld_melding_key
AND MLD_O.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND MLD_S.mld_statusopdr_upper LIKE '%VERWERKT')
AND NOT EXISTS (SELECT MLD_O.mld_opdr_key
FROM mld_opdr MLD_O, mld_statusopdr MLD_S
WHERE MLD_O.mld_melding_key = MLD_M.mld_melding_key
AND MLD_O.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND MLD_S.mld_statusopdr_upper NOT LIKE '%VERWERKT')
)
OR MLD_M.mld_melding_verwerkt IS NOT NULL
)
AND (MLD_M.mld_ins_srtinst_keys IS NULL
OR MLD_M.mld_ins_srtinst_keys IN (SELECT ins_srtinst_keys
FROM ins_v_srtinst)
)
AND (EXISTS (SELECT fac_gebruiker_kolomkey
FROM fac_gebruiker
WHERE fac_gebruiker_kolomkey = MLD_M.mld_ins_discipline_key)
OR EXISTS (SELECT FAC_F.fac_functie_key
FROM fac_functie FAC_F, fac_gebruiker FAC_G
WHERE FAC_F.fac_functie_code ='MLD_INVOER'
AND FAC_F.fac_functie_key = FAC_G.fac_functie_key))
UNION
SELECT DISTINCT MLD_M.mld_melding_module,
MLD_M.mld_melding_key,
MLD_M.mld_ins_discipline_key,
MLD_M.mld_ins_srtinst_keys,
MLD_M.mld_alg_onroerendgoed_keys,
MLD_M.mld_melding_datum,
MLD_M.mld_melding_melder_naam,
MLD_M.mld_meldbron_key,
MLD_M.mld_oorzaak_key,
MLD_M.mld_stdmelding_key,
MLD_M.mld_melding_ingezien,
MLD_M.mld_melding_afgewezen,
MLD_M.mld_melding_geaccepteerd,
MLD_M.mld_melding_afgemeld,
MLD_M.mld_melding_verwerkt,
'ALL'
FROM mld_melding MLD_M,
mld_opdr MLD_O
WHERE MLD_M.mld_melding_key = MLD_O.mld_melding_key (+)
AND (MLD_M.mld_ins_srtinst_keys IS NULL
OR MLD_M.mld_ins_srtinst_keys IN (SELECT ins_srtinst_keys
FROM ins_v_srtinst)
AND (EXISTS (SELECT fac_gebruiker_kolomkey
FROM fac_gebruiker
WHERE fac_gebruiker_kolomkey = MLD_M.mld_ins_discipline_key)
OR EXISTS (SELECT FAC_F.fac_functie_key
FROM fac_functie FAC_F, fac_gebruiker FAC_G
WHERE FAC_F.fac_functie_code ='MLD_INVOER'
AND FAC_F.fac_functie_key = FAC_G.fac_functie_key))
);
/* Log #1771 : Veldlengte afdelingsnaam + bijbehorende veld upper vergroot naar 10 posities */
ALTER TABLE prs_afdeling
MODIFY
(
prs_afdeling_naam
VARCHAR2(10),
prs_afdeling_upper
VARCHAR2(10)
);
/* 22-05-1998 BIV Log#1770 : View MLD_V_MLD_OPENOPDR_GEGEVENS uitgebreidt met veld MLD_OPDR_BEDRIJFOPDR_VOLGNR */
CREATE_VIEW(mld_v_mld_openopdr_gegevens,NORMAAL_PRIVILEGE) ( mld_opdr_module,
mld_opdr_key,
mld_melding_key,
mld_statusopdr_key,
mld_statusopdr_omschrijving,
mld_opdr_datumbegin,
mld_opdr_datumuitgevoerd,
mld_opdr_dagen,
mld_alg_onroerendgoed_keys,
mld_uitvoerende_keys,
mld_opdr_contactpersoon,
mld_opdr_geprint,
mld_statussoort,
mld_opdr_bedrijfopdr_volgnr) AS
SELECT MLD_O.mld_opdr_module,
MLD_O.mld_opdr_key,
MLD_O.mld_melding_key,
MLD_O.mld_statusopdr_key,
MLD_S.mld_statusopdr_omschrijving,
MLD_O.mld_opdr_datumbegin,
MLD_O.mld_opdr_datumuitgevoerd,
MLD_O.mld_opdr_dagen,
MLD_M.mld_alg_onroerendgoed_keys,
MLD_O.mld_uitvoerende_keys,
MLD_O.mld_opdr_contactpersoon,
MLD_O.mld_opdr_geprint,
'OPEN',
MLD_O.mld_opdr_bedrijfopdr_volgnr
FROM mld_opdr MLD_O, mld_melding MLD_M, mld_statusopdr MLD_S
WHERE MLD_O.mld_melding_key = MLD_M.mld_melding_key
AND MLD_O.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND (MLD_S.mld_statusopdr_upper LIKE '%UITGEGEVEN'
OR MLD_S.mld_statusopdr_upper LIKE '%AFGEMELD'
OR MLD_S.mld_statusopdr_upper LIKE '%INGEVOERD')
AND (MLD_M.mld_ins_srtinst_keys IS NULL
OR MLD_M.mld_ins_srtinst_keys IN (SELECT ins_srtinst_keys
FROM ins_v_srtinst)
)
UNION
SELECT MLD_O.mld_opdr_module,
MLD_O.mld_opdr_key,
MLD_O.mld_melding_key,
MLD_O.mld_statusopdr_key,
MLD_S.mld_statusopdr_omschrijving,
MLD_O.mld_opdr_datumbegin,
MLD_O.mld_opdr_datumuitgevoerd,
MLD_O.mld_opdr_dagen,
MLD_M.mld_alg_onroerendgoed_keys,
MLD_O.mld_uitvoerende_keys,
MLD_O.mld_opdr_contactpersoon,
MLD_O.mld_opdr_geprint,
'ALL',
MLD_O.mld_opdr_bedrijfopdr_volgnr
FROM mld_opdr MLD_O, mld_melding MLD_M, mld_statusopdr MLD_S
WHERE MLD_O.mld_melding_key = MLD_M.mld_melding_key
AND MLD_O.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND (MLD_M.mld_ins_srtinst_keys IS NULL
OR MLD_M.mld_ins_srtinst_keys IN (SELECT ins_srtinst_keys
FROM ins_v_srtinst)
)
UNION
SELECT MLD_O.mld_opdr_module,
MLD_O.mld_opdr_key,
MLD_O.mld_melding_key,
MLD_O.mld_statusopdr_key,
MLD_S.mld_statusopdr_omschrijving,
MLD_O.mld_opdr_datumbegin,
MLD_O.mld_opdr_datumuitgevoerd,
MLD_O.mld_opdr_dagen,
MLD_M.mld_alg_onroerendgoed_keys,
MLD_O.mld_uitvoerende_keys,
MLD_O.mld_opdr_contactpersoon,
MLD_O.mld_opdr_geprint,
'INGEVOERD',
MLD_O.mld_opdr_bedrijfopdr_volgnr
FROM mld_opdr MLD_O, mld_melding MLD_M, mld_statusopdr MLD_S
WHERE MLD_O.mld_melding_key = MLD_M.mld_melding_key
AND MLD_O.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND (MLD_S.mld_statusopdr_upper LIKE '%INGEVOERD'
OR MLD_S.mld_statusopdr_upper LIKE '%UITGEGEVEN')
AND (MLD_M.mld_ins_srtinst_keys IS NULL
OR MLD_M.mld_ins_srtinst_keys IN (SELECT ins_srtinst_keys
FROM ins_v_srtinst)
)
UNION
SELECT MLD_O.mld_opdr_module,
MLD_O.mld_opdr_key,
MLD_O.mld_melding_key,
MLD_O.mld_statusopdr_key,
MLD_S.mld_statusopdr_omschrijving,
MLD_O.mld_opdr_datumbegin,
MLD_O.mld_opdr_datumuitgevoerd,
MLD_O.mld_opdr_dagen,
MLD_M.mld_alg_onroerendgoed_keys,
MLD_O.mld_uitvoerende_keys,
MLD_O.mld_opdr_contactpersoon,
MLD_O.mld_opdr_geprint,
'AFGEMELD',
MLD_O.mld_opdr_bedrijfopdr_volgnr
FROM mld_opdr MLD_O, mld_melding MLD_M, mld_statusopdr MLD_S
WHERE MLD_O.mld_melding_key = MLD_M.mld_melding_key
AND MLD_O.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND MLD_S.mld_statusopdr_upper LIKE '%AFGEMELD'
AND (MLD_M.mld_ins_srtinst_keys IS NULL
OR MLD_M.mld_ins_srtinst_keys IN (SELECT ins_srtinst_keys
FROM ins_v_srtinst)
)
UNION
SELECT MLD_O.mld_opdr_module,
MLD_O.mld_opdr_key,
MLD_O.mld_melding_key,
MLD_O.mld_statusopdr_key,
MLD_S.mld_statusopdr_omschrijving,
MLD_O.mld_opdr_datumbegin,
MLD_O.mld_opdr_datumuitgevoerd,
MLD_O.mld_opdr_dagen,
MLD_M.mld_alg_onroerendgoed_keys,
MLD_O.mld_uitvoerende_keys,
MLD_O.mld_opdr_contactpersoon,
MLD_O.mld_opdr_geprint,
'VERWERKT',
MLD_O.mld_opdr_bedrijfopdr_volgnr
FROM mld_opdr MLD_O, mld_melding MLD_M, mld_statusopdr MLD_S
WHERE MLD_O.mld_melding_key = MLD_M.mld_melding_key
AND MLD_O.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND MLD_S.mld_statusopdr_upper LIKE '%VERWERKT'
AND (MLD_M.mld_ins_srtinst_keys IS NULL
OR MLD_M.mld_ins_srtinst_keys IN (SELECT ins_srtinst_keys
FROM ins_v_srtinst)
);
/* Log#1799 - Een TV-verklaarde melding printen levert een melding op dat de melding niet opnieuw
* TV-verklaard kan worden.
*/
CREATE_TRIGGER(mld_t_mld_melding_B_IU)
BEFORE INSERT OR UPDATE ON mld_melding
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_melding_key, mld_s_mld_melding_key);
CHECK_REFERENCE_ONROERENDGOED(mld_alg_onroerendgoed_keys, 'alg_m090');
/* Vul het veld MLD_ALG_LOCATIE_KEY als de onroerendgoed_key wijzigd */
IF :old.mld_alg_onroerendgoed_keys IS NULL
OR :old.mld_alg_onroerendgoed_keys <> :new.mld_alg_onroerendgoed_keys
THEN
SELECT alg_locatie_key
INTO :new.mld_alg_locatie_key
FROM mld_v_onroerendgoed_locatie
WHERE alg_onroerendgoed_keys = :new.mld_alg_onroerendgoed_keys;
END IF;
/* Vul de username in van de huidige gebruiker. */
SELECT USER
INTO :new.mld_melding_username
FROM DUAL;
/* Controleer of de velden GEACCEPTEERD en AFGEWEZEN niet beide ingevuld zijn. */
IF :new.mld_melding_afgewezen IS NOT NULL
AND :new.mld_melding_geaccepteerd IS NOT NULL
THEN
APPLICATION_ERROR(-20000, 'mld_m175');
END IF;
/* Controleer of de velden AFGEMELD en VERWERKT gevuld zijn, er mogen dan geen
* opdrachten van deze melding bestaan.
*/
IF :new.mld_melding_verwerkt IS NOT NULL
THEN
/* Alleen geaccepteerde of afgemelde meldingen mogen verwerkt worden */
IF :old.mld_melding_geaccepteerd IS NULL
AND :old.mld_melding_afgemeld IS NULL
THEN
APPLICATION_ERROR(-20000, 'mld_m203');
/* Verwerkte meldingen mogen niet nogmaals verwerkt worden */
ELSIF :old.mld_melding_verwerkt IS NOT NULL
THEN
APPLICATION_ERROR(-20000, 'mld_m196');
ELSE
/* Meldingen mogen alleen verwerkt worden als de bijbehorende opdrachten
* verwerkt zijn.
*/
DECLARE
Dummy VARCHAR2(1);
BEGIN
SELECT 'X'
INTO Dummy
FROM mld_opdr MLD_O, mld_statusopdr MLD_SO
WHERE MLD_O.mld_statusopdr_key = MLD_SO.mld_statusopdr_key
AND (MLD_SO.mld_statusopdr_upper LIKE '%INGEVOERD%'
OR MLD_SO.mld_statusopdr_upper LIKE '%UITGEGEVEN%'
OR MLD_SO.mld_statusopdr_upper LIKE '%AFGEMELD%')
AND MLD_O.mld_melding_key = :new.mld_melding_key;
APPLICATION_ERROR(-20000, 'mld_m192');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20000, 'mld_m192');
END;
END IF;
ELSIF :new.mld_melding_afgemeld IS NOT NULL
THEN
/* Alleen geaccepteerde meldingen mogen afgemeld worden */
IF :old.mld_melding_geaccepteerd IS NULL
THEN
APPLICATION_ERROR(-20000, 'mld_m202');
/* Afgemelde meldingen mogen niet nogmaals afgemeld worden */
ELSIF :old.mld_melding_afgemeld IS NOT NULL
AND (:old.mld_melding_afgemeld <> :new.mld_melding_afgemeld)
THEN
APPLICATION_ERROR(-20000, 'mld_m194');
/* Verwerkte meldingen mogen niet (nogmaals) afgemeld worden */
ELSIF :old.mld_melding_verwerkt IS NOT NULL
THEN
APPLICATION_ERROR(-20000, 'mld_m195');
ELSIF :old.mld_melding_afgemeld <> :new.mld_melding_afgemeld
THEN
/* Meldingen mogen alleen afgemeld worden als de bijbehorende opdrachten
* afgemeld of verwerkt zijn.
*/
DECLARE
Dummy VARCHAR2(1);
BEGIN
SELECT 'X'
INTO Dummy
FROM mld_opdr MLD_O, mld_statusopdr MLD_SO
WHERE MLD_O.mld_statusopdr_key = MLD_SO.mld_statusopdr_key
AND (MLD_SO.mld_statusopdr_upper LIKE '%INGEVOERD%'
OR MLD_SO.mld_statusopdr_upper LIKE '%UITGEGEVEN%')
AND MLD_O.mld_melding_key = :new.mld_melding_key;
APPLICATION_ERROR(-20000, 'mld_m191');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN APPLICATION_ERROR(-20000, 'mld_m191');
END;
END IF;
END IF;
/* Vul het veld UITVOERTIJD2 in als deze leeg is */
IF :new.mld_melding_uitvoertijd2 IS NULL
THEN
:new.mld_melding_uitvoertijd2 := :new.mld_melding_uitvoertijd;
END IF;
END;
/
/* ALG */
DEF_FAC_ENTITY ('ALG_SRTVLOER','Vloersoort','Vloersoorten','de');
DEF_FAC_ENTITY ('ALG_SRTVLOER_OMSCHRIJVING','Omschrijving','Omschrijvingen','de');
DEF_FAC_MESSAGE ('ALG_M220', 'Verwijderen niet toegestaan, er zijn nog ruimtes met deze vloersoort.');
DEF_FAC_MESSAGE ('ALG_M221', 'Verwijderen vloersoort ');
DEF_FAC_MESSAGE ('ALG_M222', 'Schoonmaakkosten per gebouw');
DEF_FAC_MESSAGE ('ALG_C_ALG_SRTVLOER_OMSCHR', 'De omschrijving van de vloersoort is niet ingevuld.');
DEF_FAC_MESSAGE ('ALG_C_ALG_SRTVLOER_UPPER', 'De omschrijving van de vloersoort is niet ingevuld.');
DEF_FAC_MESSAGE ('ALG_R_ALG_SRTVLOER_KEY', 'Er zijn nog referenties van ruimte naar deze vloersoort.');
DEF_FAC_MESSAGE ('ALG_U_ALG_SRTVLOER_UPPER', 'Het veld ''Omschrijving'' is niet uniek.');
/* AKZ */
DEF_FAC_ENTITY ('AKZ_NIVO', 'Omschrijving', NULL, NULL);
DEF_FAC_ENTITY ('AKZ_NIVO_CODE', 'Code', NULL, NULL);
DEF_FAC_ENTITY ('AKZ_NIVO_KENGETAL', 'Kengetal', NULL, NULL);
DEF_FAC_ENTITY ('AKZ_NIVO_DOCUMENT', 'Document', NULL, NULL);
DEF_FAC_MESSAGE ('AKZ_M013','Verwijderen niet toegestaan, dit schoonmaakniveau is nog actief.');
DEF_FAC_MESSAGE ('AKZ_SCHNIVO', 'Schoonmaakniveau');
DEF_FAC_MESSAGE ('AKZ_C_AKZ_SCHNIVO_CODE', 'De schoonmaakcode is niet ingevuld.');
DEF_FAC_MESSAGE ('AKZ_C_AKZ_SCHNIVO_UPPER', 'De schoonmaakcode is niet ingevuld.');
DEF_FAC_MESSAGE ('AKZ_C_AKZ_SCHNIVO_OMSCHR', 'De omschrijving van de schoonmaakcode is niet ingevuld.');
DEF_FAC_MESSAGE ('AKZ_U_AKZ_SCHNIVO_UPPER', 'De schoonmaakcode is niet uniek.');
DEF_FAC_MESSAGE ('AKZ_C_AKZ_SCHNIVO_KENGETAL', 'Het kengetal mag niet kleiner zijn dan nul.');
#endif // AKZ
-- LOG#1729
INSERT INTO fac_entity_name VALUES ('MENU_INS_ONDERDEELSRT' ,'O'||CHR(38)||'nderdeelsoort' , NULL, NULL);
-- LOG#1817
INSERT INTO fac_entity_name VALUES ('MENU_ALG_RUIMTE' ,'R'||CHR(38)||'uimte' , NULL, NULL);
-- LOG#1691
ALTER TABLE prs_bedrijf
MODIFY prs_bedrijf_uitvoerende default 1;
UPDATE prs_bedrijf
SET prs_bedrijf_uitvoerende = 1;
-- LOG#983
DEF_FAC_MESSAGE ('FAC_M025', 'Gebruiker ''%1%''');
-- LOG#1594
UPDATE fac_message
SET fac_message_text='Verwijderen is niet mogelijk omdat er nog delen bij de deelsoort zijn.'
WHERE fac_message_code='INS_M013';
/* werk vervolgens het versienummer en de datum bij (van alle interne modules) */
UPDATE fac_module
SET fac_module_version='01.37',
fac_module_date=TO_CHAR(SYSDATE,'YYYYMMDD');
-- LOG#1717
DEF_FAC_MESSAGE ('MENU_MLD_HERKTEKST' ,CHR(38)||'Herkenningstekst', NULL, NULL);
-- LOG#1821
#ifdef CAD
CREATE_TABLE(cad_tekening, NORMAAL_PRIVILEGE)
(
cad_tekening_key
NUMBER(10)
CONSTRAINT cad_k_cad_tekening_key PRIMARY KEY,
ins_discipline_key
NUMBER(10)
NOT_NULL(ins_discipline_key, cad_c_ins_discipline_key)
CONSTRAINT cad_r_ins_discipline_key REFERENCES ins_tab_discipline(ins_discipline_key),
alg_locatie_key
NUMBER(10)
NOT_NULL(alg_locatie_key, cad_c_alg_locatie_key)
CONSTRAINT cad_r_alg_locatie_key REFERENCES alg_locatie(alg_locatie_key),
alg_verdieping_key /* is optioneel NULL */
NUMBER(10)
CONSTRAINT cad_r_alg_verdieping_key REFERENCES alg_verdieping(alg_verdieping_key),
cad_tekening_filenaam /* excl. leading PATH (komt uit INI-file), incl. extension */
VARCHAR2(256)
NOT_NULL(cad_tekening_filenaam, cad_c_cad_tekening_filenaam),
cad_tekening_geimporteerd /* geeft aan of de tekening al is geimporteerd: */
DATE /* NULL indien niet, anders datum van importeren */
DEFAULT NULLDATUM,
CONSTRAINT cad_u_cad_tekening UNIQUE(ins_discipline_key,alg_locatie_key,alg_verdieping_key)
);
CREATE_VIEW(cad_v_cad_aanwezigtekening, NORMAAL_PRIVILEGE) AS
SELECT * FROM cad_tekening C_T
WHERE C_T.ins_discipline_key IN (SELECT ins_discipline_key
FROM ins_discipline);
CREATE INDEX cad_i_cad_tekening1 ON cad_tekening(ins_discipline_key);
CREATE INDEX cad_i_cad_tekening2 ON cad_tekening(alg_locatie_key);
CREATE INDEX cad_i_cad_tekening3 ON cad_tekening(alg_verdieping_key);
CREATE SEQUENCE cad_s_cad_tekening_key MINVALUE 1;
CREATE_TRIGGER(cad_t_cad_tekening_B_IU)
BEFORE INSERT OR UPDATE ON cad_tekening
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(cad_tekening_key, cad_s_cad_tekening_key);
END;
/
INSERT INTO fac_entity_name VALUES ('CAD_TEKENING_OMSCHR', 'Tekening', NULL, NULL);
_FAC_MODULE('CAD','AutoCAD koppeling')
#ifdef AKZ
DEF_FAC_MESSAGE ('CAD_C_INS_DISCIPLINE_KEY' , 'De vakgroep behorende bij de tekening is niet ingevuld.');
DEF_FAC_MESSAGE ('CAD_R_INS_DISCIPLINE_KEY' , 'De tekening refereert naar een ongeldige vakgroep.');
DEF_FAC_MESSAGE ('CAD_U_CAD_TEKENING' , 'De tekening is niet uniek voor de combinatie vakgroep, locatie en verdieping.');
#else
DEF_FAC_MESSAGE ('CAD_C_INS_DISCIPLINE_KEY' , 'De discipline behorende bij de tekening is niet ingevuld.');
DEF_FAC_MESSAGE ('CAD_R_INS_DISCIPLINE_KEY' , 'De tekening refereert naar een ongeldige discipline.');
#if defined(BCO)||defined(BEB)||defined(LEV)||defined(MRA)
DEF_FAC_MESSAGE ('CAD_U_CAD_TEKENING' , 'De tekening is niet uniek voor de combinatie discipline, object en verdieping.');
#else
DEF_FAC_MESSAGE ('CAD_U_CAD_TEKENING' , 'De tekening is niet uniek voor de combinatie discipline, locatie en verdieping.');
#endif
#endif // AKZ
#if defined(BCO)||defined(BEB)||defined(LEV)||defined(MRA)
DEF_FAC_MESSAGE ('CAD_C_ALG_LOCATIE_KEY' , 'Het object behorende bij de tekening is niet ingevuld.');
DEF_FAC_MESSAGE ('CAD_R_ALG_LOCATIE_KEY' , 'De tekening refereert naar een ongeldig object.');
#else
DEF_FAC_MESSAGE ('CAD_C_ALG_LOCATIE_KEY' , 'De locatie behorende bij de tekening is niet ingevuld.');
DEF_FAC_MESSAGE ('CAD_R_ALG_LOCATIE_KEY' , 'De tekening refereert naar een ongeldige locatie.');
#endif
DEF_FAC_MESSAGE ('CAD_R_ALG_VERDIEPING_KEY' , 'De tekening refereert naar een ongeldige bouwlaag.');
DEF_FAC_MESSAGE ('CAD_C_CAD_TEKENING_FILENAAM' , 'De bestandsnaam van de tekening is niet ingevuld.');
#endif // CAD
COMMIT;
SPOOL OFF

376
_UP/138TO139.SRC Normal file
View File

@@ -0,0 +1,376 @@
set echo on
SPOOL 138to139
--
-- [Z:\PROJECT\SM44\SRC\SQL\_UPDATE\138TO139.SQL]
--
-- Update script van Facilitor 2.0 versie 1.38 naar 1.39
--
/*
* 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.
*
* Revisie:
*
* --- 01.39 ---
* *** LET OP: een deel van dit updatescript is reeds opgeleverd! ***
*/
#include "modules.h"
#include "comsql.h"
set heading off
clear screen
/*
* 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.
*/
PROMPT ***********************************************************************
PROMPT
PROMPT UPGRADE SCRIPT van Facilitor 2.0 versie 01.38 naar 01.39
PROMPT
SELECT 'De huidige versie van Facilitor zou moeten zijn 01.38 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 heading on
/* denk aan #ifdef constructies! */
/* PLAATS HIERTUSSEN DE UPDATES */
#ifdef CAD
-- Voeg veld cadlayer toe aan tabel ins_srtdeel
ALTER TABLE ins_srtdeel
ADD ins_srtdeel_cadlayer VARCHAR2(30);
-- Voeg veld type-tekening toe
ALTER TABLE cad_tekening
ADD
(cad_tekening_type
VARCHAR2(3)
NOT_NULL (cad_tekening_type, cad_c_cad_tekening_type)
CONSTRAINT cad_c_cad_tekening_type2 CHECK(cad_tekening_type = 'P'
OR cad_tekening_type = 'C'
OR cad_tekening_type = 'D')
);
CREATE_VIEW(cad_v_cad_aanwezigtekening, NORMAAL_PRIVILEGE) AS
SELECT * FROM cad_tekening C_T
WHERE C_T.ins_discipline_key IN (SELECT ins_discipline_key
FROM ins_discipline)
OR C_T.ins_discipline_key IS NULL;
CREATE_VIEW(cad_v_cad_tekening_gegevens, NORMAAL_PRIVILEGE)
(cad_tekening_key,
alg_locatie_key,
alg_locatie_code,
alg_gebouw_key,
alg_gebouw_code,
alg_verdieping_key,
alg_verdieping_omschrijving,
ins_discipline_key,
ins_discipline_omschrijving) AS
SELECT C_T.cad_tekening_key,
C_T.alg_locatie_key,
ALG_L.alg_locatie_code,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_code,
C_T.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving,
C_T.ins_discipline_key,
INS_D.ins_discipline_omschrijving
FROM alg_locatie ALG_L,
alg_verdieping ALG_V,
alg_gebouw ALG_G,
ins_discipline INS_D,
cad_v_cad_aanwezigtekening C_T
WHERE C_T.alg_locatie_key = ALG_L.alg_locatie_key
AND C_T.alg_verdieping_key = ALG_V.alg_verdieping_key (+)
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key (+)
AND C_T.ins_discipline_key = INS_D.ins_discipline_key (+);
CREATE_VIEW(cad_v_plattegrond, CAD_PRIVILEGE) AS
SELECT * FROM cad_tekening
WHERE UPPER(cad_tekening_type) = 'P';
CREATE_VIEW(cad_v_contour, CAD_PRIVILEGE) AS
SELECT * FROM cad_tekening
WHERE UPPER(cad_tekening_type) = 'C';
CREATE_VIEW(cad_v_discipline, CAD_PRIVILEGE) AS
SELECT * FROM cad_tekening
WHERE UPPER(cad_tekening_type) = 'D';
/* 29-06-1998 KTH LOG#1905
* Views die door de AutoCAD Map-user FCLTCAD worden geraadpleegd.
* Bij die user heet de SYNONYM ernaar toe wellicht anders.
*/
CREATE_VIEW(cad_v_alg_gebouw, CAD_PRIVILEGE)
(alg_gebouw_key,
alg_gebouw_cadlabel,
alg_gebouw_code) AS
SELECT alg_gebouw_key,
alg_gebouw_code,
alg_gebouw_code
FROM alg_v_aanweziggebouw;
CREATE_VIEW(cad_v_alg_ruimte, CAD_PRIVILEGE)
(alg_ruimte_key,
alg_ruimte_cadlabel,
alg_ruimte_nr,
alg_verdieping_key) AS
SELECT alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_nr,
alg_verdieping_key
FROM alg_v_aanwezigruimte;
/* View met ALLE tekeningen, ongeacht de autorisatie; minimale kolommen, gebruikt in CAD_PAC.SRC */
CREATE_VIEW(cad_v_cad_tekening, CAD_PRIVILEGE) AS
SELECT ins_discipline_key,
alg_locatie_key,
alg_verdieping_key,
cad_tekening_type,
cad_tekening_filenaam
FROM cad_tekening C_T;
#ifdef INS
/* 29-06-1998 KTH LOG#1905
* View CAD_V_INS_DEEL wordt door de AutoCAD Map-user FCLTCAD geraadpleegd.
* Bij die user heet de SYNONYM ernaar toe wellicht anders.
*/
#ifdef AKZ
/* voor AKZ wordt alleen het laatste stuk van de omschrijving gebruikt */
CREATE_VIEW(cad_v_ins_deel, CAD_PRIVILEGE)
(ins_deel_key,
ins_deel_cadlabel,
ins_deel_upper) AS
SELECT ins_deel_key,
SUBSTR(ins_deel_upper, LENGTH(ins_deel_upper)-5), /* laatste 5 karakters */
ins_deel_upper
FROM ins_deel
WHERE ins_deel_verwijder IS NULL; /* alleen de logisch aanwezige delen */
#else
CREATE_VIEW(cad_v_ins_deel, CAD_PRIVILEGE)
(ins_deel_key,
ins_deel_cadlabel,
ins_deel_upper) AS
SELECT ins_deel_key,
ins_deel_upper,
ins_deel_upper
FROM ins_deel
WHERE D.ins_deel_verwijder IS NULL; /* alleen de logisch aanwezige delen */
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_p_ruimte_update_opp(key IN NUMBER, VloerOpp IN 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);
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);
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 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 /* ja deze! */
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
/* raise_application_error(-20000, 'ins_m166'); */
RETURN NULL;
END;
ELSE
RETURN NULL;
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;
/*
* CAD_P_RUIMTE_UPDATE_OPP wordt aangeroepen vanuit AutoCAD
* en wijzigt de vloeroppervlakte van een opgegeven ruimte
*
* Merk op dat een eventuele EXCEPTION hier niet expliciet wordt afgevangen!
*/
PROCEDURE cad_p_ruimte_update_opp(Key IN NUMBER, VloerOpp IN NUMBER) IS
BEGIN
/* alleen indien het een logisch aanwezige ruimte betreft passen we de opp aan */
UPDATE alg_v_aanwezigruimte
SET alg_ruimte_bruto_vloeropp = VloerOpp
WHERE alg_ruimte_key = Key;
COMMIT;
END cad_p_ruimte_update_opp;
END cad;
/* View met tekening bij ins_deel_key, ongeacht de autorisatie, gebruikt CAD_PAC.SRC
* Wordt vanuit AutoCAD gebruikt.
*/
CREATE_VIEW(cad_v_ins_deel_tekening, CAD_PRIVILEGE) AS
SELECT ins_deel_key,
cad.cad_f_deel_get_tekeningnaam(ins_deel_key) cad_tekeningnaam
FROM ins_deel;
/* View met tekening bij alg_ruimte_key, ongeacht de autorisatie, gebruikt CAD_PAC.SRC
* Wordt vanuit AutoCAD gebruikt.
*/
CREATE_VIEW(cad_v_alg_ruimte_tekening, CAD_PRIVILEGE) AS
SELECT alg_ruimte_key,
cad.cad_f_ruimte_get_tekeningnaam(alg_ruimte_key) cad_tekeningnaam
FROM alg_ruimte;
DEF_FAC_ENTITY ('INS_PLAATS_GRAFISCH', 'Grafisch', NULL, NULL);
DEF_FAC_ENTITY ('ALG_PLAATS_GRAFISCH', 'Grafisch', NULL, NULL);
DEF_FAC_MESSAGE ('ALG_M226', 'Dit programma-onderdeel ondersteunt niet de multi-select mogelijkheid.');
DEF_FAC_MESSAGE ('CAD_M003', 'Geen contourtekening gevonden.');
DEF_FAC_MESSAGE ('INS_M165', 'Er is geen AutoCAD symbool beschikbaar voor dit installatiedeel.');
DEF_FAC_MESSAGE ('INS_M166', 'Geen AutoCadtekening beschikbaar voor dit installatiedeel.');
#ifdef AKZ
DEF_FAC_MESSAGE ('cad_m004' , 'Aangegeven dat het een Vakgroeptekening betreft, maar geen Vakgroep gekozen.');
DEF_FAC_MESSAGE ('CAD_C_CAD_TEKENING_TYPE' , 'Het type tekening moet ingevuld worden.');
DEF_FAC_MESSAGE ('CAD_C_CAD_TEKENING_TYPE2' , 'Type tekening moet een Plattegrond-, een Contour - of een Vakgroeptekening zijn.');
#else
DEF_FAC_MESSAGE ('cad_m004' , 'Aangegeven dat het een Disciplinetekening betreft, maar geen Discipline gekozen.');
DEF_FAC_MESSAGE ('CAD_C_CAD_TEKENING_TYPE' , 'Het type tekening moet ingevuld worden.');
DEF_FAC_MESSAGE ('CAD_C_CAD_TEKENING_TYPE2' , 'Type tekening moet een Plattegrond-, een Contour - of een Disciplinetekening zijn.');
#endif // AKZ
#endif CAD
/*************************************************************************************************************
* Het bovenstaande script is op 06/08/1998 door PF geinstalleerd bij de AKZO * *
*************************************************************************************************************/
COMMIT;
SPOOL OFF

70
_UP/139TO140.SRC Normal file
View File

@@ -0,0 +1,70 @@
set echo on
SPOOL 139to140
--
-- [Z:\PROJECT\SM44\SRC\SQL\_UPDATE\139TO140.SQL]
--
-- Update script van Facilitor 2.0 versie 1.39 naar 1.40
--
/*
* 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.
*
* Revisie:
*
* --- 01.40 ---
********* IS NIETS INGEZET DOOR BIV ?!?!?!?!?! ***********
*
*/
#include "modules.h"
#include "comsql.h"
set heading off
clear screen
/*
* 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.
*/
PROMPT ***********************************************************************
PROMPT
PROMPT UPGRADE SCRIPT van Facilitor 2.0 versie 01.39 naar 01.40
PROMPT
SELECT 'De huidige versie van Facilitor zou moeten zijn 01.39 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 heading on
/* denk aan #ifdef constructies! */
/* PLAATS HIERTUSSEN DE UPDATES */
COMMIT;
SPOOL OFF

3
_UP/DIRINFO Normal file
View File

@@ -0,0 +1,3 @@
111to112 KTH Lang niet volledig script
112to113 KTH Betrof geen SQL-wijzigingen (script is leeg)
113to114 KTH ...