1215 lines
45 KiB
Plaintext
1215 lines
45 KiB
Plaintext
SPOOL 114to115
|
|
|
|
/*
|
|
* [V:\SQL\_UPDATE]
|
|
*
|
|
* Update script van versie 01.14 naar 01.15
|
|
*
|
|
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
|
|
* om #ifdef's te gebruiken voor de diverse modules.
|
|
*
|
|
* History:
|
|
*
|
|
* 29-05-96 AH REM ALG_KOSTENPOST....
|
|
* --- 01.16 ---
|
|
* 29-05-96 EH View inv_v_deel_gegevens aangepast.
|
|
* 28-05-96 EH View prs_v_werkplekperslid_gegevens gewijzigd.
|
|
* 28-05-96 EH fac_message prs_m032 gewijzigd.
|
|
* 28-05-96 EH fac_message prs_m051 toegevoegd.
|
|
* 28-05-96 EH fac_message prs_m050 toegevoegd.
|
|
* 28-05-96 EH fac_message prs_m049 toegevoegd.
|
|
* 28-05-96 EH fac_message prs_m048 toegevoegd.
|
|
* 28-05-96 EH fac_message prs_m028 gewijzigd.
|
|
* 28-05-96 EH fac_message prs_m027 gewijzigd.
|
|
* 28-05-96 EH UNIQUE Constraint in prs_perslidwerkplek gewijzigd.
|
|
* 24-05-96 EH vieuws prs_v_perslidwerkplek_gegevens en prs_v_aanwezigpers-
|
|
* lidwerkplek aangepast.
|
|
* 24-05-96 EH tabel prs_srtperslidwerkplek gewijzigd.
|
|
* 24-05-96 EH Message prs_m027 gewijzigd.
|
|
* 22-05-96 EH fac_entity 'PRS_PERSLIDWERKPLEK_BEZ' toegevoegd.
|
|
* 22-05-96 EH message prs_m033 gewijzigd.
|
|
* 22-05-96 PF Bug in naamgeving att/fac ook hier verbeterd
|
|
* 21-05-96 EH 3 prs_messages toegevoegd.
|
|
* 21-05-96 EH In geval van PRS veld 'prs_verhuurbaar' toevoegen aan alg_
|
|
* srtruimte.
|
|
* 21-05-96 EH Creatie van ATT alsmede de wijziging in de tabel ins_deel en
|
|
* bijbehorende trigger.
|
|
* 20-05-96 RW ins_t_ins_deel_b_iu aangepast voor BCP.
|
|
* 20-05-96 AH MLD_KOSTENPOST_DATUM en .._JAAR toegevoegd.
|
|
* 15-05-96 AH INV-messages en entities toegevoegd.
|
|
* 15-05-96 EH Wijziging aangebracht in de tabel alg_locatie en de daarmee
|
|
* samenhangende aanwezigview.
|
|
* 14-05-96 AH
|
|
* 14-05-96 EH Vieuws all_v_aanwezigdiscipline, _srtgroep, srtdeel alsmede
|
|
* all_v_srtgroepgegevens en all_v_srtdeelgegevens.
|
|
* 14-05-96 KTH inv_m034 toegevoegd
|
|
* 10-05-96 KTH fac_m004 toegevoegd
|
|
* 08-05-96 AH UNIQUE op DEEL_UPPER. Vervalt.
|
|
* 06-05-96 RW Privileges zijn aangepast, kan echter niet in dit
|
|
* update-script gedaan worden. Voor BCO\BCP worden pas
|
|
* update-scripts gemaakt als het eenmaal opgeleverd is.
|
|
* 03-05-96 AH Entities en messages toegevoegd.
|
|
* 26-04-96 AH message ALG_M108 aangepast.
|
|
* 26-04-96 AH PRS_PERSLID aangepast voor _module en _telefoonnr
|
|
* 26-04-96 AH MLD_KOSTENPOST aangepast voor _module, _datum en _jaar.
|
|
* MLD_BEDRIJF aangepast voor leverancier_nr en overeenkomst_..
|
|
* 26-04-96 AH INS_SRTDEEL aangepast voor velden _nr en _prijs.
|
|
* 24-04-96 AH View SLE_V_SLEUTEL_GEGEVENS aangepast voor volgorde in SLE012
|
|
* 24-04-96 AH View MLD_V_MELDING_OPENOPDR_GEGEVENS aangepast voor status
|
|
* Ingevoerd.
|
|
* 24-04-96 AH View BCO_V_CORROPDR_LOCATIEGROEP aangepast voor Terreinsector.
|
|
* 24-04-96 AH INS-messages toegevoegd en vervangen.
|
|
* 22-04-96 AH FAC_MESSAGE voor PRS_PERSLID_STORING toegevoegd.
|
|
* 22-04-96 AH Typeveld van ALG_VERDIEPING_KEY aangemaakt in ALG_RUIMTE.
|
|
* 22-04-96 AH CHECK_UNIQUE_OMSCHRIJVING uit MLD gehaald. Entities en Msg's
|
|
* toegevoegd voor opdrachtbon van SON.
|
|
* 19-04-96 KTH Lege file aangemaakt
|
|
*/
|
|
|
|
#include "comsql.h"
|
|
|
|
#ifdef INS
|
|
|
|
ALTER TABLE ins_deel
|
|
ADD(
|
|
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)
|
|
);
|
|
|
|
|
|
CREATE_TABLE(fac_attribute, NORMAAL_PRIVILEGE)
|
|
(
|
|
fac_attribute_key
|
|
NUMBER(10)
|
|
PRIMARY KEY,
|
|
ins_srtinst_keys
|
|
NUMBER(10),
|
|
ins_srtinst_type
|
|
VARCHAR2(1)
|
|
CHECK(ins_srtinst_type = 'D' OR
|
|
ins_srtinst_type = 'G' OR
|
|
ins_srtinst_type = 'S'),
|
|
ins_attribute_volgorde
|
|
NUMBER(1)
|
|
CHECK(ins_attribute_volgorde >= 0 OR
|
|
ins_attribute_volgorde <= 9),
|
|
ins_attribute_key
|
|
NUMBER(1)
|
|
CHECK(ins_attribute_key >= 0 OR
|
|
ins_attribute_key <= 9),
|
|
ins_attribute_label
|
|
VARCHAR(15)
|
|
NOT NULL,
|
|
ins_attribute_type
|
|
VARCHAR(1)
|
|
CHECK(ins_attribute_type = 'N' OR
|
|
ins_attribute_type = 'C' OR
|
|
ins_attribute_type = 'R'),
|
|
ins_attribute_length
|
|
NUMBER(2)
|
|
NOT NULL,
|
|
ins_attribute_required
|
|
NUMBER(1)
|
|
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)
|
|
CHECK(ins_attribute_toonbaar = 0 OR
|
|
ins_attribute_toonbaar = 1)
|
|
);
|
|
|
|
CREATE_VIEW(fac_v_attr_hulp, NORMAAL_PRIVILEGE)
|
|
(ins_discipline_key,
|
|
ins_srtgroep_key,
|
|
ins_srtdeel_key,
|
|
fac_attribute_key) AS
|
|
SELECT FAC_A.ins_srtinst_keys,
|
|
TO_NUMBER(NULL),
|
|
TO_NUMBER(NULL),
|
|
FAC_A.fac_attribute_key
|
|
FROM fac_attribute FAC_A
|
|
WHERE FAC_A.ins_srtinst_type = 'D'
|
|
UNION
|
|
SELECT TO_NUMBER(NULL),
|
|
FAC_A.ins_srtinst_keys,
|
|
TO_NUMBER(NULL),
|
|
FAC_A.fac_attribute_key
|
|
FROM fac_attribute FAC_A
|
|
WHERE FAC_A.ins_srtinst_type = 'G'
|
|
UNION
|
|
SELECT TO_NUMBER(NULL),
|
|
INS_SG.ins_srtgroep_key,
|
|
TO_NUMBER(NULL),
|
|
FAC_A.fac_attribute_key
|
|
FROM fac_attribute FAC_A,
|
|
ins_srtgroep INS_SG
|
|
WHERE FAC_A.ins_srtinst_type = 'D' AND
|
|
FAC_A.ins_srtinst_keys = INS_SG.ins_discipline_key
|
|
UNION
|
|
SELECT TO_NUMBER(NULL),
|
|
TO_NUMBER(NULL),
|
|
FAC_A.ins_srtinst_keys,
|
|
FAC_A.fac_attribute_key
|
|
FROM fac_attribute FAC_A
|
|
WHERE FAC_A.ins_srtinst_type = 'S'
|
|
UNION
|
|
SELECT TO_NUMBER(NULL),
|
|
TO_NUMBER(NULL),
|
|
INS_SD.ins_srtdeel_key,
|
|
FAC_A.fac_attribute_key
|
|
FROM fac_attribute FAC_A,
|
|
ins_srtdeel INS_SD
|
|
WHERE FAC_A.ins_srtinst_type = 'G' AND
|
|
FAC_A.ins_srtinst_keys = INS_SD.ins_srtgroep_key
|
|
UNION
|
|
SELECT TO_NUMBER(NULL),
|
|
TO_NUMBER(NULL),
|
|
INS_SDG.ins_srtdeel_key,
|
|
FAC_A.fac_attribute_key
|
|
FROM fac_attribute FAC_A,
|
|
ins_v_srtdeel_gegevens INS_SDG
|
|
WHERE FAC_A.ins_srtinst_type = 'D' AND
|
|
FAC_A.ins_srtinst_keys = INS_SDG.ins_discipline_key;
|
|
|
|
CREATE_VIEW(fac_v_attribute_gegevens, NORMAAL_PRIVILEGE)
|
|
(ins_discipline_key,
|
|
ins_srtgroep_key,
|
|
ins_srtdeel_key,
|
|
ins_srtinst_type,
|
|
ins_attribute_volgorde,
|
|
ins_attribute_key,
|
|
ins_attribute_label,
|
|
ins_attribute_type,
|
|
ins_attribute_length,
|
|
ins_attribute_required,
|
|
ins_attribute_min,
|
|
ins_attribute_max,
|
|
ins_attribute_dec,
|
|
ins_attribute_table,
|
|
ins_attribute_column,
|
|
ins_attribute_column_txt,
|
|
ins_attribute_unit,
|
|
ins_attribute_toonbaar) AS
|
|
SELECT FAC_H.ins_discipline_key,
|
|
FAC_H.ins_srtgroep_key,
|
|
FAC_H.ins_srtdeel_key,
|
|
FAC_A.ins_srtinst_type,
|
|
FAC_A.ins_attribute_volgorde,
|
|
FAC_A.ins_attribute_key,
|
|
FAC_A.ins_attribute_label,
|
|
FAC_A.ins_attribute_type,
|
|
FAC_A.ins_attribute_length,
|
|
FAC_A.ins_attribute_required,
|
|
FAC_A.ins_attribute_min,
|
|
FAC_A.ins_attribute_max,
|
|
FAC_A.ins_attribute_dec,
|
|
FAC_A.ins_attribute_table,
|
|
FAC_A.ins_attribute_column,
|
|
FAC_A.ins_attribute_column_txt,
|
|
FAC_A.ins_attribute_unit,
|
|
FAC_A.ins_attribute_toonbaar
|
|
FROM fac_attribute FAC_A,
|
|
fac_v_attr_hulp FAC_H
|
|
WHERE FAC_A.fac_attribute_key = FAC_H.fac_attribute_key;
|
|
|
|
/* Geeft een overzicht van de beschikbare attribute_keys op de verschillende
|
|
srt_inst niveaus */
|
|
|
|
CREATE_VIEW(fac_v_attr_key_gegevens, NORMAAL_PRIVILEGE)
|
|
(ins_discipline_key,
|
|
ins_srtgroep_key,
|
|
ins_srtdeel_key,
|
|
ins_attribute_key) AS
|
|
SELECT FAC_A.ins_srtinst_keys,
|
|
TO_NUMBER(NULL),
|
|
TO_NUMBER(NULL),
|
|
FAC_A.ins_attribute_key
|
|
FROM fac_attribute FAC_A
|
|
WHERE FAC_A.ins_srtinst_type = 'D'
|
|
UNION
|
|
SELECT INS_G.ins_discipline_key,
|
|
FAC_A.ins_srtinst_keys,
|
|
TO_NUMBER(NULL),
|
|
FAC_A.ins_attribute_key
|
|
FROM fac_attribute FAC_A,
|
|
all_v_aanwezigsrtgroep INS_G
|
|
WHERE FAC_A.ins_srtinst_type = 'G' AND
|
|
FAC_A.ins_srtinst_keys = INS_G.ins_srtgroep_key
|
|
UNION
|
|
SELECT INS_SD.ins_discipline_key,
|
|
INS_SD.ins_srtgroep_key,
|
|
FAC_A.ins_srtinst_keys,
|
|
FAC_A.ins_attribute_key
|
|
FROM fac_attribute FAC_A,
|
|
all_v_srtdeel_gegevens INS_SD
|
|
WHERE FAC_A.ins_srtinst_type = 'S' AND
|
|
FAC_A.ins_srtinst_keys = INS_SD.ins_srtdeel_key;
|
|
|
|
|
|
CREATE SEQUENCE fac_s_fac_attribute_key MINVALUE 1;
|
|
|
|
CREATE TRIGGER FAC_t_fac_attribute_B_IU
|
|
BEFORE INSERT OR UPDATE ON fac_attribute
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_attribute_key, FAC_s_fac_attribute_key);
|
|
END;
|
|
/
|
|
|
|
UPDATE fac_message
|
|
SET fac_message_text = 'Datum moet van formaat DD-MM-JJJJ zijn.'
|
|
where UPPER(fac_message_code) = UPPER('alg_m108');
|
|
|
|
INSERT INTO fac_entity_name VALUES('YES', 'Ja', NULL, NULL);
|
|
INSERT INTO fac_entity_name VALUES('NO', 'Nee', NULL, NULL);
|
|
|
|
INSERT INTO fac_message VALUES('ALG_M152', 'Interne fout in table volgnummer: Ontbrekende soort');
|
|
|
|
INSERT INTO fac_message VALUES('fac_m004', 'Er is een probleem opgetreden bij het opstarten van ');
|
|
|
|
INSERT INTO fac_message VALUES('inv_m034', 'Er is geen AutoCAD symbool beschikbaar voor dit artikelsoort.');
|
|
|
|
INSERT INTO fac_entity_name VALUES('PRS_PERSLID_REGISTRATIE_NR', 'Registratienr.', 'Registratienummers', 'het');
|
|
|
|
DELETE FROM fac_entity_name
|
|
WHERE UPPER(fac_entity_system_name) = 'INV_SRTDEEL_NR';
|
|
|
|
INSERT INTO fac_entity_name VALUES('INV_SRTDEEL_NR', 'Artikelnr.', 'Artikelnummers', 'het');
|
|
|
|
INSERT INTO fac_entity_name VALUES('INV_SRTDEEL_PRIJS', 'Prijs', 'Prijzen', 'de');
|
|
INSERT INTO fac_entity_name VALUES('INV_TOTAAL', 'Totaal', 'Totalen', 'het');
|
|
|
|
INSERT INTO fac_message VALUES('INV_M035', 'Overzicht inventaris');
|
|
INSERT INTO fac_message VALUES('INV_M036', 'met prijzen');
|
|
|
|
INSERT INTO fac_entity_name VALUES('MLD_KOSTENPOST_DATUM', 'Uitgiftedatum', 'Uitgiftedata', 'de');
|
|
INSERT INTO fac_entity_name VALUES('MLD_KOSTENPOST_JAAR', 'Jaar', 'Jaren', 'het');
|
|
|
|
INSERT INTO fac_entity_name VALUES('PRS_PERSLIDWERKPLEK_BEZ', 'Bezetting', NULL, NULL);
|
|
|
|
INSERT INTO fac_message VALUES('PRS_M045', 'Niet verhuurbare ruimte.');
|
|
INSERT INTO fac_message VALUES('PRS_M046', 'Gemeenschappelijke ruimte.');
|
|
INSERT INTO fac_message VALUES('PRS_M047', 'Verhuurbare ruimte.');
|
|
|
|
DELETE FROM fac_message WHERE fac_message_code = 'PRS_M033';
|
|
DELETE FROM fac_message WHERE fac_message_code = 'PRS_M027';
|
|
DELETE FROM fac_message WHERE fac_message_code = 'PRS_M028';
|
|
DELETE FROM fac_message WHERE fac_message_code = 'PRS_M031';
|
|
DELETE FROM fac_message WHERE fac_message_code = 'PRS_M032';
|
|
|
|
INSERT INTO fac_message VALUES('PRS_M033', 'Verwijderen werkplek');
|
|
INSERT INTO fac_message VALUES('PRS_M027', 'U kunt alleen een afdeling/persoon bij een werkplek verwijderen.');
|
|
INSERT INTO fac_message VALUES('PRS_M031', 'Persoon of Afdeling moet worden ingevuld.');
|
|
INSERT INTO fac_message VALUES('PRS_M028', 'Afdeling/persoon bij werkplek');
|
|
INSERT INTO fac_message VALUES('PRS_M048', 'Afdeling/persoon');
|
|
INSERT INTO fac_message VALUES('PRS_M049', 'U kunt alleen een afdeling/persoon bekijken');
|
|
INSERT INTO fac_message VALUES('PRS_M050', 'Verwijderen afdeling/persoon');
|
|
INSERT INTO fac_message VALUES('PRS_M051', 'Bezetting is meer dan maximaal toegestaan');
|
|
INSERT INTO fac_message VALUES('PRS_M032', 'Werkplekken bij afdeling/persoon');
|
|
|
|
#ifdef ALG
|
|
|
|
ALTER TABLE alg_ruimte
|
|
MODIFY
|
|
(
|
|
alg_verdieping_key
|
|
NUMBER(10)
|
|
);
|
|
|
|
ALTER TABLE alg_locatie
|
|
ADD
|
|
(
|
|
alg_locatie_verantw
|
|
VARCHAR2(30),
|
|
alg_locatie_verantw_tel
|
|
VARCHAR2(15)
|
|
);
|
|
|
|
DROP VIEW alg_v_aanweziglocatie;
|
|
|
|
CREATE VIEW alg_v_aanweziglocatie
|
|
AS
|
|
SELECT * FROM alg_locatie
|
|
WHERE alg_locatie.alg_locatie_verwijder IS NULL;
|
|
|
|
#endif
|
|
|
|
#ifdef MLD
|
|
DROP TRIGGER mld_t_mld_oorzaak_A_IU;
|
|
|
|
ALTER TABLE mld_oorzaak
|
|
ADD
|
|
(
|
|
UNIQUE(mld_oorzaak_upper, mld_oorzaak_verwijder)
|
|
);
|
|
|
|
DROP TRIGGER mld_t_mld_meldbron_A_IU;
|
|
|
|
ALTER TABLE mld_meldbron
|
|
ADD
|
|
(
|
|
UNIQUE(mld_meldbron_upper, mld_meldbron_verwijder)
|
|
);
|
|
|
|
DROP TRIGGER mld_t_mld_standaardopdr_A_IU;
|
|
|
|
ALTER TABLE mld_standaardopdr
|
|
ADD
|
|
(
|
|
UNIQUE(mld_standaardopdr_afk_upper, mld_standaardopdr_verwijder)
|
|
);
|
|
|
|
DROP TRIGGER mld_t_mld_bedrijf_A_IU;
|
|
|
|
ALTER TABLE mld_bedrijf
|
|
ADD
|
|
(
|
|
UNIQUE(mld_bedrijf_naam_upper, mld_bedrijf_verwijder)
|
|
);
|
|
|
|
UPDATE fac_message
|
|
SET fac_message_text = 'Opdracht gereed : Ja / Nee'
|
|
WHERE UPPER(fac_message_code) = UPPER('mld_m055');
|
|
|
|
INSERT INTO fac_entity_name VALUES('MLD_OPDR_NR', 'Opdrachtnr.', NULL, 'het');
|
|
|
|
|
|
DROP VIEW mld_v_mld_openopdr_gegevens;
|
|
CREATE VIEW mld_v_mld_openopdr_gegevens ( 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_statussoort ) 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,
|
|
'OPEN'
|
|
FROM mld_v_melding_openopdr 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
|
|
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,
|
|
'ALL'
|
|
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;
|
|
|
|
|
|
ALTER TABLE mld_kostenpost
|
|
ADD
|
|
(
|
|
mld_kostenpost_module
|
|
VARCHAR2(3),
|
|
mld_kostenpost_datum /* Datum toekenning budget */
|
|
DATE,
|
|
mld_kostenpost_jaar /* Jaar waarin het budget geldig is */
|
|
NUMBER(4)
|
|
);
|
|
|
|
UPDATE mld_kostenpost
|
|
SET mld_kostenpost_module = 'MLD';
|
|
|
|
ALTER TABLE mld_kostenpost
|
|
MODIFY
|
|
(
|
|
mld_kostenpost_module
|
|
NOT NULL
|
|
);
|
|
|
|
ALTER TABLE mld_bedrijf
|
|
ADD
|
|
(
|
|
mld_leverancier_nr
|
|
VARCHAR2(5),
|
|
mld_overeenkomst_nr
|
|
VARCHAR2(10),
|
|
mld_overeenkomst_datum
|
|
DATE
|
|
);
|
|
|
|
#endif
|
|
|
|
INSERT INTO fac_message VALUES('PRS_M044', 'Voor storing beschikbaar.');
|
|
|
|
UPDATE fac_message
|
|
SET fac_message_text = 'Wilt u het deel of de gehele ruimte kopieren?'
|
|
WHERE UPPER(fac_message_code) = UPPER('ins_m061');
|
|
|
|
UPDATE fac_message
|
|
SET fac_message_text = 'Wilt u de gehele ruimte kopieren?'
|
|
WHERE UPPER(fac_message_code) = UPPER('ins_m063');
|
|
|
|
INSERT INTO fac_message VALUES ('INS_M090', 'Locatie is niet ingevuld ! ');
|
|
INSERT INTO fac_message VALUES ('INS_M091', 'Gebouw is niet ingevuld ! ');
|
|
|
|
#ifdef BCO
|
|
DROP VIEW bco_v_corropdr_locatiegroep;
|
|
CREATE VIEW bco_v_corropdr_locatiegroep (bco_locatiegroep_key,
|
|
alg_locatie_key,
|
|
mld_opdr_key) AS
|
|
SELECT ALG_L.bco_locatiegroep_key,
|
|
ALG_L.alg_locatie_key,
|
|
MLD_O.mld_opdr_key
|
|
FROM mld_opdr MLD_O, mld_melding MLD_M, mld_v_onroerendgoed_locatie MLD_OL,
|
|
alg_locatie ALG_L
|
|
WHERE MLD_O.mld_opdr_module = 'BCO' /* [70] */
|
|
AND MLD_O.mld_melding_key = MLD_M.mld_melding_key
|
|
AND MLD_M.mld_alg_onroerendgoed_keys =
|
|
MLD_OL.alg_onroerendgoed_keys
|
|
AND MLD_OL.alg_locatie_key = ALG_L.alg_locatie_key;
|
|
#endif
|
|
|
|
#ifdef SLE
|
|
DROP VIEW sle_v_sleutel_gegevens;
|
|
CREATE VIEW sle_v_sleutel_gegevens (sle_sleutel_key,
|
|
sle_sleutel_omschrijving,
|
|
sle_sleutel_upper,
|
|
sle_sleutel_aantal,
|
|
sle_sleutel_slot_key,
|
|
sle_slot_key,
|
|
sle_slot_omschrijving,
|
|
sle_slot_upper,
|
|
sle_sleutel_module
|
|
) AS
|
|
SELECT SLE_S.sle_sleutel_key,
|
|
SLE_S.sle_sleutel_omschrijving,
|
|
SLE_S.sle_sleutel_upper,
|
|
SLE_S.sle_sleutel_aantal,
|
|
SLE_SS.sle_sleutel_slot_key,
|
|
SLE_SS.sle_slot_key,
|
|
SLE_SLOT.sle_slot_omschrijving,
|
|
SLE_SLOT.sle_slot_upper,
|
|
'SLE011'
|
|
FROM sle_sleutel SLE_S, sle_sleutel_slot SLE_SS, sle_slot SLE_SLOT
|
|
WHERE SLE_S.sle_sleutel_key = SLE_SS.sle_sleutel_key
|
|
AND SLE_SS.sle_slot_key = SLE_SLOT.sle_slot_key
|
|
UNION
|
|
SELECT sle_sleutel_key,
|
|
sle_sleutel_omschrijving,
|
|
sle_sleutel_upper,
|
|
sle_sleutel_aantal,
|
|
to_number(NULL),
|
|
to_number(NULL),
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM sle_sleutel;
|
|
#endif
|
|
|
|
#ifdef INV
|
|
|
|
ALTER TABLE ins_srtdeel
|
|
ADD
|
|
(
|
|
inv_srtdeel_nr
|
|
VARCHAR2(16),
|
|
inv_srtdeel_prijs
|
|
NUMBER(8,2)
|
|
);
|
|
|
|
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
|
|
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;
|
|
#endif
|
|
|
|
#ifdef PRS
|
|
ALTER TABLE prs_perslid
|
|
ADD
|
|
(
|
|
prs_perslid_module
|
|
VARCHAR2(3),
|
|
prs_perslid_telefoonnr
|
|
VARCHAR2(15)
|
|
);
|
|
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_module = 'PRS'
|
|
|
|
ALTER TABLE prs_perslid
|
|
MODIFY
|
|
(
|
|
prs_perslid_module
|
|
NOT NULL
|
|
);
|
|
|
|
ALTER TABLE alg_srtruimte
|
|
ADD
|
|
(
|
|
prs_verhuurbaar
|
|
NUMBER(1)
|
|
CHECK(prs_verhuurbaar IS NULL OR prs_verhuurbaar = 1 ),
|
|
CHECK(NOT(prs_bevat_werkplek = 1 AND prs_verhuurbaar IS NULL))
|
|
);
|
|
|
|
ALTER TABLE prs_perslidwerkplek
|
|
MODIFY
|
|
(
|
|
prs_perslid_key
|
|
NULL
|
|
);
|
|
|
|
ALTER TABLE prs_perslidwerkplek
|
|
ADD
|
|
(
|
|
prs_afdeling_key
|
|
NUMBER(10)
|
|
REFERENCES prs_afdeling(prs_afdeling_key)
|
|
);
|
|
|
|
ALTER TABLE prs_perslidwerkplek
|
|
DROP
|
|
UNIQUE(prs_perslid_key, prs_werkplek_key, prs_perslidwerkplek_verwijder);
|
|
|
|
ALTER TABLE prs_perslidwerkplek
|
|
ADD
|
|
(
|
|
UNIQUE(prs_perslid_key, prs_afdeling_key,
|
|
prs_werkplek_key, prs_perslidwerkplek_verwijder)
|
|
);
|
|
|
|
DROP VIEW prs_v_perslidwerkplek_gegevens;
|
|
DROP VIEW prs_v_aanwezigperslidwerkplek;
|
|
|
|
DEFINIEER_VIEW_AANWEZIG(prs_perslidwerkplek,
|
|
prs_perslidwerkplek_verwijder,
|
|
prs_v_aanwezigperslidwerkplek,
|
|
NORMAAL_PRIVILEGE);
|
|
|
|
CREATE_VIEW(prs_v_perslidwerkplek_gegevens,NORMAAL_PRIVILEGE) AS
|
|
SELECT PRS_W.prs_werkplek_key,
|
|
PRS_W.prs_werkplek_volgnr,
|
|
PRS_W.prs_werkplek_omschrijving,
|
|
PRS_W.prs_werkplek_opp,
|
|
PRS_W.alg_ruimte_key,
|
|
PRS_W.alg_ruimte_nr,
|
|
PRS_W.alg_ruimte_upper_nr,
|
|
PRS_W.alg_verdieping_key,
|
|
PRS_W.alg_verdieping_volgnr,
|
|
PRS_W.alg_verdieping_omschrijving,
|
|
PRS_W.alg_gebouw_key,
|
|
PRS_W.alg_gebouw_omschrijving,
|
|
PRS_W.alg_gebouw_upper,
|
|
PRS_W.alg_locatie_key,
|
|
PRS_PW.prs_perslidwerkplek_key,
|
|
PRS_PW.prs_perslid_key,
|
|
PRS_PW.prs_afdeling_key
|
|
FROM prs_v_werkplek_gegevens PRS_W, prs_v_aanwezigperslidwerkplek PRS_PW
|
|
WHERE PRS_W.prs_werkplek_key = PRS_PW.prs_werkplek_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,
|
|
to_number(NULL),
|
|
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
|
|
|
|
#ifdef INS
|
|
|
|
INSERT INTO fac_privilege VALUES ('all_v_aanwezigdiscipline', 3);
|
|
CREATE VIEW all_v_aanwezigdiscipline AS SELECT * FROM ins_discipline WHERE ins_discipline.ins_discipline_verwijder IS NULL;
|
|
|
|
INSERT INTO fac_privilege VALUES ('all_v_aanwezigsrtgroep', 3);
|
|
CREATE VIEW all_v_aanwezigsrtgroep AS SELECT * FROM ins_srtgroep WHERE ins_srtgroep.ins_srtgroep_verwijder IS NULL;
|
|
|
|
INSERT INTO fac_privilege VALUES ('all_v_aanwezigsrtdeel', 3);
|
|
CREATE VIEW all_v_aanwezigsrtdeel AS SELECT * FROM ins_srtdeel WHERE ins_srtdeel.ins_srtdeel_verwijder IS NULL;
|
|
|
|
CREATE_VIEW(all_v_srtgroep_gegevens,NORMAAL_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_SG.ins_srtgroep_module
|
|
FROM all_v_aanwezigdiscipline ins_D, all_v_aanwezigsrtgroep ins_SG
|
|
WHERE
|
|
ins_D.ins_discipline_key = ins_SG.ins_discipline_key;
|
|
|
|
CREATE_VIEW(all_v_srtdeel_gegevens,NORMAAL_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
|
|
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;
|
|
|
|
DROP TRIGGER ins_t_ins_deel_B_IU;
|
|
|
|
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');
|
|
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;
|
|
|
|
SELECT count(*) INTO dummy
|
|
FROM fac_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;
|
|
|
|
/* 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
|
|
LOG('Eind INS_T_INS_DEEL_B_IU');
|
|
END;
|
|
/
|
|
|
|
|
|
#endif
|
|
|
|
#if MLD
|
|
|
|
REM ORA-.... LET OP: MLD_KOSTENPOST is gewijzigd.
|
|
REM ERROR Het is nu ALG_KOSTENPOST. Verplaatst de records van
|
|
REM MLD_KOSTENPOST naar ALG_KOSTENPOST.
|
|
|
|
#endif
|
|
|
|
SPOOL OFF
|