1038 lines
44 KiB
Plaintext
1038 lines
44 KiB
Plaintext
SPOOL 117to118
|
|
|
|
/*
|
|
* [V:\SQL\_UPDATE]
|
|
*
|
|
* Update script van versie 01.17 naar 01.18
|
|
*
|
|
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
|
|
* om #ifdef's te gebruiken voor de diverse modules.
|
|
*
|
|
* History:
|
|
*
|
|
* 25-07-96 AH HUI_M037 - HUI_M040 en HUI_SLAAPRUIMTE toegevoegd.
|
|
* 25-07-96 AH INV_DEEL_BEZIT aangepast in Eigenaar. INV_DEEL_OVERDRAGEN
|
|
* en ALG_M157 toegevoegd. INV_M048 en INV_M047 aangepast.
|
|
* 23-07-96 AH PRS_M045 - PRS_M047 De '.' weggehaald,
|
|
* PRS_M058, ALG_M155, ALG_M156 toegevoegd.
|
|
* 17-07-96 RW In ALG_GEBOUW twee columns toegevoegd: alg_gebouw_naam/code.
|
|
De trigger vult alg_gebouw_omschrijving met code || '-' || naam,
|
|
en alg_gebouw_upper met UPPER(code).
|
|
* 16-07-96 EH De trigger INS_T_INS_DEEL_B_IU gewijzigd:
|
|
* - Anders plaatsen delen mogelijk gemaakt.
|
|
* - BCP code verwijderd.
|
|
* - Bij verplaatsen delen onderdelen wijzigen -> plaats leeg.
|
|
* 16-07-96 EH De view ins_v_deel_gegevens aangepast voor delen op terrein-
|
|
* sectoren en 'binnen' gebouwen. Ter ondersteuning de view
|
|
* ins_v_alg_overzicht aangemaakt. Tevens de vieuws ins_v_onder-
|
|
* deel_gegevens en ins_v_element_gegevens om dezelfde reden
|
|
* aangepast.
|
|
* 16-07-96 EH Aan ins_onderdeel een plaatsveld toegevoegd.
|
|
* 16-07-96 EH De STORED PROCEDURE kopieer_deel toegevoegd.
|
|
* 16-07-96 EH Aan de triggers op alg_gebouw, alg_verdieping, alg_ruimte en
|
|
* alg_terreinsector de trigger SET_VERWIJDER_CHILDREN toegevoegd.
|
|
* Deze verwijderd bij verwijderen ook alle delen.
|
|
* 08-07-96 EH ins_deel trigger aangepast.
|
|
* 08-07-96 EH 4 messages t.b.v. INS (92-95) toegevoegd.
|
|
* 02-07-96 AH LEV_MAGAZIJN-entity en LEV_M051-messgae toegevoegd.
|
|
* 02-07-96 AH LEV_V_LEV_BESTELREGEL_BEDRAG aangepast,
|
|
* Gebruik INV_V_AANWEZIGSRTDEEL ipv. INS_V_AANWEZIGSRTDEEL.
|
|
* 28-06-96 AH PRS_T_PRS_WERKPLEK_B_IU aangepast voor verwijderen
|
|
* werkplek/slaapplaats. Als er INS_DELEN geplaatst
|
|
* zijn, dan mag de werkplek/slaapplaats niet verwijderd worden.
|
|
* De PRS_DWGUPTODATE van de verdieping-tekening wordt NIET
|
|
* bijgewerkt, want er verdieping moet dan opgezocht worden
|
|
* en dat mag niet bij CASCADE-delete via ruimte of hoger in de
|
|
* OR-boom (ter voorkoming van ORA_4091 'Mutating-table').
|
|
* 28-06-96 AH View toegevoegd voor HUI012
|
|
* 28-06-96 AH INS_T_INS_DEEL_B_IU aangepast. Controle van ins_alg_ruimte_key
|
|
* wordt alleen gedaan wanneer deze veranderd of toegevoegd wordt.
|
|
* 28-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.
|
|
* 27-06-96 EH Primary_key constraint verwijderd uit sch_nivo_og.
|
|
* 26-06-96 EH Messages sch_001 en sch_002 gewijzigd.
|
|
* 26-06-96 EH Lege file aangemaakt.
|
|
*/
|
|
|
|
#include "comsql.h"
|
|
#include "algsql.h"
|
|
|
|
DELETE FROM fac_message WHERE fac_message_code = 'SCH_M001';
|
|
DELETE FROM fac_message WHERE fac_message_code = 'SCH_M002';
|
|
DELETE FROM fac_message WHERE fac_message_code = 'SCH_M015';
|
|
DELETE FROM fac_message WHERE fac_message_code = 'SCH_M016';
|
|
|
|
DEF_FAC_MESSAGE ('SCH_M001','Verwijderen Schoonmaakniveau');
|
|
DEF_FAC_MESSAGE ('SCH_M002','Verwijderen schoonmaakniveau ');
|
|
DEF_FAC_MESSAGE ('SCH_M015','Verwijderen Schoonmaakniveau');
|
|
DEF_FAC_MESSAGE ('SCH_M016','Verwijderen schoonmaakniveau ');
|
|
DEF_FAC_MESSAGE ('ins_m092', 'Ruimte bestaat niet.');
|
|
DEF_FAC_MESSAGE ('ins_m093', 'Verdieping bestaat niet.');
|
|
DEF_FAC_MESSAGE ('ins_m094', 'Gebouw bestaat niet.');
|
|
DEF_FAC_MESSAGE ('ins_m095', 'Terreinsector bestaat niet.');
|
|
DEF_FAC_MESSAGE ('ins_m096', 'Deel is niet ingevuld.');
|
|
|
|
#ifdef SCH
|
|
|
|
ALTER TABLE sch_nivo_og
|
|
DROP PRIMARY KEY;
|
|
|
|
#endif
|
|
#ifdef ALG
|
|
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_omschrijving, alg_gebouw_upper);
|
|
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 :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 // MRA
|
|
#ifdef INS
|
|
SET_VERWIJDER_CHILDREN_DEEL(ins_deel, alg_gebouw_key,
|
|
alg_gebouw_verwijder, ins_deel_verwijder, ins_alg_ruimte_key);
|
|
#endif // INS
|
|
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
|
|
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 :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 // 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
|
|
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);
|
|
UPDATE_UPPER(alg_terreinsector_omschrijving,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
|
|
END;
|
|
/
|
|
|
|
#endif // ALG
|
|
|
|
#ifdef INS
|
|
|
|
ALTER TABLE ins_onderdeel
|
|
ADD
|
|
(
|
|
ins_alg_onroerendgoed_key
|
|
NUMBER(10)
|
|
);
|
|
|
|
CREATE_VIEW(ins_v_alg_overzicht,NORMAAL_PRIVILEGE)
|
|
(
|
|
alg_onroerendgoed_keys, alg_locatie_key,
|
|
alg_gebouw_key, alg_gebouw_omschrijving, alg_gebouw_upper,
|
|
alg_verdieping_key, alg_verdieping_omschrijving, alg_verdieping_upper,
|
|
alg_ruimte_key, alg_ruimte_nr, alg_ruimte_upper_nr,
|
|
alg_terreinsector_key, alg_terreinsector_omschrijving, alg_terreinsector_upper
|
|
)
|
|
AS
|
|
SELECT 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), NULL, NULL,
|
|
to_number(NULL), NULL, NULL
|
|
FROM alg_gebouw ALG_G
|
|
UNION
|
|
SELECT ALG_V.alg_verdieping_key, 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_upper,
|
|
to_number(NULL), NULL, NULL,
|
|
to_number(NULL), NULL, NULL
|
|
FROM alg_verdieping ALG_V, alg_gebouw ALG_G
|
|
WHERE ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
|
|
UNION
|
|
SELECT ALG_R.alg_ruimte_key, 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_upper,
|
|
ALG_R.alg_ruimte_key, ALG_R.alg_ruimte_nr, ALG_R.alg_ruimte_upper_nr,
|
|
to_number(NULL), NULL, NULL
|
|
FROM 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
|
|
UNION
|
|
SELECT ALG_T.alg_terreinsector_key, ALG_T.alg_locatie_key,
|
|
to_number(NULL), NULL, NULL,
|
|
to_number(NULL), NULL, NULL,
|
|
to_number(NULL), NULL, NULL,
|
|
ALG_T.alg_terreinsector_key, ALG_T.alg_terreinsector_omschrijving, ALG_T.alg_terreinsector_upper
|
|
FROM alg_terreinsector ALG_T;
|
|
|
|
CREATE_VIEW(ins_v_deel_gegevens,NORMAAL_PRIVILEGE)
|
|
(
|
|
ins_discipline_key, ins_discipline_omschrijving,
|
|
ins_srtgroep_key, ins_srtgroep_omschrijving, ins_srtgroep_upper,
|
|
ins_srtdeel_key, 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_upper,
|
|
alg_ruimte_key, alg_ruimte_nr, alg_ruimte_upper_nr,
|
|
alg_terreinsector_key, alg_terreinsector_omschrijving, alg_terreinsector_upper,
|
|
ins_deel_key, ins_deel_omschrijving, ins_deel_upper, ins_deel_aantal,
|
|
ins_deel_fabrikaat, ins_deel_type, ins_deel_serienr, ins_deel_bouwjaar,
|
|
ins_deel_capaciteit, ins_deel_prijs, ins_deel_levensduur, ins_deel_opmerking
|
|
)
|
|
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_AO.alg_locatie_key, INS_AO.alg_gebouw_key, INS_AO.alg_gebouw_omschrijving, INS_AO.alg_gebouw_upper,
|
|
INS_AO.alg_verdieping_key, INS_AO.alg_verdieping_omschrijving, INS_AO.alg_verdieping_upper,
|
|
INS_AO.alg_ruimte_key, INS_AO.alg_ruimte_nr, INS_AO.alg_ruimte_upper_nr,
|
|
INS_AO.alg_terreinsector_key, INS_AO.alg_terreinsector_omschrijving, INS_AO.alg_terreinsector_upper,
|
|
ins_DE.ins_deel_key, ins_DE.ins_deel_omschrijving, ins_DE.ins_deel_upper, ins_DE.ins_deel_aantal,
|
|
ins_DE.ins_deel_fabrikaat, ins_DE.ins_deel_type, ins_DE.ins_deel_serienr,ins_DE.ins_deel_bouwjaar,
|
|
ins_DE.ins_deel_capaciteit, ins_DE.ins_deel_prijs, ins_DE.ins_deel_levensduur, ins_DE.ins_deel_opmerking
|
|
FROM ins_v_aanwezigdiscipline ins_D, ins_v_aanwezigsrtgroep ins_SG,
|
|
ins_v_aanwezigsrtdeel ins_SD, ins_v_alg_overzicht INS_AO,
|
|
ins_v_aanwezigdeel ins_DE
|
|
WHERE
|
|
INS_AO.alg_onroerendgoed_keys = ins_DE.ins_alg_ruimte_key AND
|
|
ins_SD.ins_srtdeel_key = ins_DE.ins_srtdeel_key AND
|
|
ins_SG.ins_srtgroep_key = ins_SD.ins_srtgroep_key AND
|
|
ins_D.ins_discipline_key = ins_SG.ins_discipline_key;
|
|
|
|
CREATE_VIEW(ins_v_onderdeel_gegevens,NORMAAL_PRIVILEGE)
|
|
(
|
|
ins_discipline_key, ins_discipline_omschrijving,
|
|
ins_srtgroep_key, ins_srtgroep_omschrijving, ins_srtgroep_upper,
|
|
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_upper,
|
|
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,
|
|
alg_locatie_key, alg_gebouw_key, alg_gebouw_upper, alg_verdieping_key,
|
|
alg_verdieping_upper, alg_ruimte_key, alg_ruimte_nr, alg_ruimte_upper_nr,
|
|
alg_terreinsector_key, alg_terreinsector_upper
|
|
)
|
|
AS
|
|
SELECT ins_D.ins_discipline_key, ins_D.ins_discipline_omschrijving,
|
|
ins_D.ins_srtgroep_key, ins_D.ins_srtgroep_omschrijving, ins_D.ins_srtgroep_upper,
|
|
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_upper,
|
|
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_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.alg_ruimte_upper_nr,
|
|
ins_D.alg_terreinsector_key, ins_D.alg_terreinsector_upper
|
|
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 AND
|
|
ins_OD.ins_alg_onroerendgoed_key IS NULL
|
|
UNION
|
|
SELECT ins_D.ins_discipline_key, ins_D.ins_discipline_omschrijving,
|
|
ins_D.ins_srtgroep_key, ins_D.ins_srtgroep_omschrijving, ins_D.ins_srtgroep_upper,
|
|
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_upper,
|
|
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_AO.alg_locatie_key, ins_AO.alg_gebouw_key, ins_AO.alg_gebouw_upper, ins_AO.alg_verdieping_key,
|
|
ins_AO.alg_verdieping_upper, ins_AO.alg_ruimte_key, ins_AO.alg_ruimte_nr, ins_AO.alg_ruimte_upper_nr,
|
|
ins_AO.alg_terreinsector_key, ins_AO.alg_terreinsector_upper
|
|
FROM ins_v_aanwezigsrtonderdeel ins_SOD,
|
|
ins_v_aanwezigonderdeel ins_OD,
|
|
ins_v_deel_gegevens ins_D,
|
|
ins_v_alg_overzicht ins_AO
|
|
WHERE
|
|
ins_SOD.ins_srtonderdeel_key = ins_OD.ins_srtonderdeel_key AND
|
|
ins_D.ins_deel_key = ins_OD.ins_deel_key AND
|
|
ins_AO.alg_onroerendgoed_keys = ins_OD.ins_alg_onroerendgoed_key AND
|
|
ins_OD.ins_alg_onroerendgoed_key IS NOT NULL;
|
|
|
|
CREATE_VIEW(ins_v_element_gegevens,NORMAAL_PRIVILEGE) AS
|
|
SELECT ins_SE.ins_srtelement_key,
|
|
ins_OD.ins_onderdeel_key, ins_OD.ins_onderdeel_upper,
|
|
ins_EL.ins_element_key,
|
|
ins_EL.ins_element_omschrijving,
|
|
ins_EL.ins_element_upper,
|
|
ins_EL.ins_element_aantal,
|
|
ins_EL.ins_element_fabrikaat, ins_EL.ins_element_type,
|
|
ins_EL.ins_element_serienr,ins_EL.ins_element_bouwjaar,
|
|
ins_EL.ins_element_capaciteit, ins_EL.ins_element_prijs,
|
|
ins_EL.ins_element_levensduur, ins_EL.ins_element_opmerking,
|
|
ins_OD.alg_gebouw_key, ins_OD.alg_verdieping_key,
|
|
ins_OD.alg_ruimte_key, ins_OD.alg_terreinsector_key,
|
|
ins_OD.alg_gebouw_upper, ins_OD.alg_verdieping_upper,
|
|
ins_OD.alg_ruimte_nr, ins_OD.alg_terreinsector_upper,
|
|
ins_OD.ins_deel_key, ins_OD.ins_deel_upper
|
|
FROM ins_v_aanwezigsrtelement ins_SE, ins_v_onderdeel_gegevens ins_OD,
|
|
ins_v_aanwezigelement ins_EL
|
|
WHERE
|
|
ins_SE.ins_srtelement_key = ins_EL.ins_srtelement_key AND
|
|
ins_OD.ins_onderdeel_key = ins_EL.ins_onderdeel_key;
|
|
|
|
#ifdef BCO // Binnen INS voor aanmaken STORED PROCEDURE
|
|
CREATE PROCEDURE kopieer_deel (deel_key NUMBER,
|
|
plaats_key NUMBER,
|
|
plaats_type VARCHAR2) AS
|
|
documentatie_veld VARCHAR2(32767);
|
|
BEGIN
|
|
SELECT bco_deel_documentatie INTO documentatie_veld
|
|
FROM ins_deel WHERE ins_deel_key = deel_key;
|
|
|
|
INSERT INTO ins_deel (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 'INS',
|
|
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;
|
|
/
|
|
#elif // Geen BCO
|
|
|
|
CREATE PROCEDURE kopieer_deel (deel_key NUMBER,
|
|
plaats_key NUMBER,
|
|
plaats_type VARCHAR2) AS
|
|
BEGIN
|
|
INSERT INTO ins_deel (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)
|
|
SELECT 'INS',
|
|
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
|
|
FROM ins_deel
|
|
WHERE ins_deel_key = deel_key;
|
|
END;
|
|
/
|
|
#endif // al dan niet BCO
|
|
|
|
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, 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
|
|
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');
|
|
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
|
|
|
|
/* 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 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 // INS
|
|
|
|
|
|
INSERT INTO fac_entity_name VALUES('HUI_BESTEMD_VOOR', 'Bestemd voor', NULL, NULL);
|
|
|
|
DELETE FROM fac_message
|
|
WHERE fac_message_code = 'HUI_M020';
|
|
INSERT INTO fac_message VALUES('HUI_M020', 'Alleen actuele overnachtingen');
|
|
|
|
DELETE FROM fac_message
|
|
WHERE fac_message_code = 'HUI_M002';
|
|
INSERT INTO fac_message VALUES('HUI_M002', 'Alleen beschikbare slaapplaatsen');
|
|
|
|
DELETE FROM fac_message
|
|
WHERE fac_message_code = 'INV_M045';
|
|
INSERT INTO fac_message VALUES('INV_M045', 'Het te verwijderen aantal moet kleiner of gelijk zijn aan het aanwezige aantal.');
|
|
|
|
INSERT INTO fac_message VALUES('HUI_M036', 'Bruikleenbewijs overnachting');
|
|
|
|
#ifdef HUI
|
|
CREATE_VIEW(hui_v_ruimteboeking_gegevens, NORMAAL_PRIVILEGE)
|
|
(hui_ruimteboeking_key,
|
|
alg_locatie_key,
|
|
alg_gebouw_key,
|
|
alg_verdieping_key,
|
|
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_V.alg_verdieping_key,
|
|
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 PRS
|
|
|
|
CREATE TRIGGER prs_t_prs_werkplek_B_IU
|
|
BEFORE INSERT OR UPDATE ON prs_werkplek
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(prs_werkplek_key, prs_s_prs_werkplek_key);
|
|
/* Een werkplek mag niet verwijderd worden als er nog personen
|
|
* aan gekoppeld zijn.
|
|
*/
|
|
IF :new.prs_werkplek_module = 'PRR'
|
|
THEN
|
|
CHECK_NOG_REFERENCES(prs_werkplek, prs_werkplek_verwijder,
|
|
prs_v_aanwezigperslidwerkplek, prs_werkplek_key, 'prs_m016');
|
|
ELSIF :new.prs_werkplek_module = 'HUI'
|
|
AND :new.prs_werkplek_verwijder IS NOT NULL
|
|
THEN
|
|
/* Een slaapplaats mag niet verwijderd worden als er nog
|
|
* lopende overnachtingen zijn, dus met hui_status 'geReserveerd' of
|
|
* 'Bezet'
|
|
*/
|
|
DECLARE
|
|
dummy CHAR;
|
|
BEGIN
|
|
SELECT 'x'
|
|
INTO dummy
|
|
FROM hui_v_aanwezigperslidwerkplek PRS_PW
|
|
WHERE PRS_PW.hui_status <> 'V'
|
|
AND PRS_PW.hui_einddatum >= :new.prs_werkplek_verwijder
|
|
AND PRS_PW.prs_werkplek_key = :new.prs_werkplek_key;
|
|
APPLICATION_ERROR(-20000, 'prs_m054');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN APPLICATION_ERROR(-20000, 'prs_m054');
|
|
END;
|
|
END IF;
|
|
#if 0
|
|
/* Dit mag niet worden uitgevoegd, omdat anders via CASCADE verwijderen
|
|
* de error 'ORA-4091 ALG_RUIMTE is mutating' komt. Het veld
|
|
* PRS_DWGUPTODATE kan dus niet bijgewerkt worden.
|
|
* Dit wordt nu geregeld in de forms PRS014 (verwijderen werkplek) en PRS114
|
|
* (toevoegen of wijzigen).
|
|
*/
|
|
|
|
/* Bij toevoegen verwijderen of verplaatsen van een
|
|
* werkplek moeten van de bijbehorende tekeningen de PRS_UPTODATE-velden
|
|
* aangepast worden.
|
|
*/
|
|
IF :old.prs_alg_ruimte_key <> :new.prs_alg_ruimte_key
|
|
OR :old.prs_alg_ruimte_key IS NULL
|
|
OR :new.prs_werkplek_verwijder IS NOT NULL
|
|
THEN
|
|
IF :old.prs_alg_ruimte_key IS NOT NULL
|
|
THEN
|
|
SET_DWGUPTODATE(alg_verdieping, alg_verdieping_key,
|
|
(SELECT alg_verdieping_key
|
|
FROM alg_ruimte
|
|
WHERE alg_ruimte_key = :old.prs_alg_ruimte_key),
|
|
prs_dwguptodate);
|
|
END IF;
|
|
SET_DWGUPTODATE(alg_verdieping, alg_verdieping_key,
|
|
(SELECT alg_verdieping_key
|
|
FROM alg_ruimte
|
|
WHERE alg_ruimte_key = :new.prs_alg_ruimte_key),
|
|
prs_dwguptodate);
|
|
END IF;
|
|
#endif
|
|
#ifdef INV
|
|
IF :new.prs_werkplek_verwijder IS NOT NULL
|
|
THEN
|
|
DECLARE
|
|
dummy CHAR;
|
|
BEGIN
|
|
SELECT 'x'
|
|
INTO dummy
|
|
FROM inv_v_aanwezigdeel
|
|
WHERE ins_alg_ruimte_key = :new.prs_werkplek_key
|
|
AND ins_alg_ruimte_type = 'W';
|
|
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
|
|
END;
|
|
/
|
|
#endif
|
|
|
|
#ifdef LEV
|
|
CREATE OR REPLACE VIEW lev_v_lev_bestelregel_bedrag
|
|
(lev_bestelling_key,
|
|
lev_bestelling_nr,
|
|
lev_bestelregel_key,
|
|
lev_bestelregel_nr,
|
|
lev_ins_srtdeel_key,
|
|
lev_bestelregel_aantal,
|
|
lev_bestelregel_prijs) AS
|
|
SELECT LEV_B.lev_bestelling_key,
|
|
LEV_B.lev_bestelling_nr,
|
|
LEV_BR.lev_bestelregel_key,
|
|
LEV_BR.lev_bestelregel_nr,
|
|
LEV_BR.lev_ins_srtdeel_key,
|
|
LEV_BR.lev_bestelregel_aantal,
|
|
LEV_BR.lev_bestelregel_aantal * NVL(INS_SD.inv_srtdeel_prijs, 0)
|
|
FROM lev_bestelling LEV_B, lev_bestelregel LEV_BR,
|
|
inv_v_aanwezigsrtdeel INS_SD
|
|
WHERE INS_SD.ins_srtdeel_key = LEV_BR.lev_ins_srtdeel_key
|
|
AND LEV_BR.lev_bestelling_key = LEV_B.lev_bestelling_key;
|
|
#endif
|
|
|
|
|
|
INSERT INTO fac_message VALUES('LEV_M051', 'Dit artikel kan niet toegewezen worden, verwijderen of in magazijn plaatsen?');
|
|
|
|
INSERT INTO fac_entity_name VALUES('LEV_MAGAZIJN', 'Magazijn', 'Magazijnen', 'het');
|
|
|
|
/* 17-07-96 RW aanpassing alg_gebouw_omschrijving = _code || ' - ' || _naam */
|
|
ALTER TABLE alg_gebouw
|
|
ADD alg_gebouw_code VARCHAR2(10) NOT NULL;
|
|
|
|
ALTER TABLE alg_gebouw
|
|
ADD alg_gebouw_naam VARCHAR2(30) NOT NULL;
|
|
|
|
DROP TRIGGER alg_t_alg_gebouw_B_IU;
|
|
|
|
CREATE TRIGGER alg_t_alg_gebouw_B_IU
|
|
BEFORE INSERT OR UPDATE ON alg_gebouw
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF :new.alg_gebouw_key IS NULL THEN SELECT alg_s_alg_onroerendgoed_keys.nextval INTO :new.alg_gebouw_key FROM DUAL; END IF;
|
|
SELECT UPPER(:new.alg_gebouw_code) INTO :new.alg_gebouw_upper FROM DUAL;
|
|
:new.alg_gebouw_omschrijving := SUBSTRB(:new.alg_gebouw_code ||' - '|| :new.alg_gebouw_naam,1,30);
|
|
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 raise_application_error(-20000, 'alg_m54'); WHEN TOO_MANY_ROWS THEN raise_application_error(-20000, 'alg_m54'); END;
|
|
END;
|
|
/
|
|
|
|
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);
|
|
|
|
DROP VIEW alg_v_gebouw_gegevens;
|
|
|
|
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_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 (+);
|
|
|
|
ALTER TABLE alg_terreinsector
|
|
ADD alg_terreinsector_code VARCHAR2(10) NOT NULL;
|
|
|
|
ALTER TABLE alg_terreinsector
|
|
ADD alg_terreinsector_naam VARCHAR2(30) NOT NULL;
|
|
|
|
DROP TRIGGER alg_t_alg_terreinsector_B_IU;
|
|
|
|
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
|
|
END;
|
|
/
|
|
|
|
|
|
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);
|
|
|
|
DELETE FROM fac_message
|
|
WHERE fac_message_code = 'PRS_M045'
|
|
OR fac_message_code = 'PRS_M046'
|
|
OR fac_message_code = 'PRS_M047';
|
|
|
|
|
|
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');
|
|
|
|
INSERT INTO fac_message VALUES('PRS_M058', 'Bevat slaapplaatsen');
|
|
|
|
INSERT INTO fac_message VALUES('ALG_M155', 'De omschrijving van de kostenpost is niet ingevuld.');
|
|
INSERT INTO fac_message VALUES('ALG_M156', 'Het jaar van de kostenpost is niet ingevuld.');
|
|
|
|
DELETE FROM FAC_ENTITY_NAME
|
|
WHERE FAC_ENTITY_SYSTEM_NAME = 'INV_DEEL_BEZIT';
|
|
|
|
INSERT INTO FAC_ENTITY_NAME VALUES('INV_DEEL_BEZIT', 'Eigenaar', NULL, NULL);
|
|
INSERT INTO FAC_ENTITY_NAME VALUES('INV_DEEL_OVERDRAGEN', 'Overdragen', NULL, NULL);
|
|
|
|
INSERT INTO FAC_MESSAGE VALUES('ALG_M157', 'Doorgaan?');
|
|
|
|
DELETE FROM fac_message
|
|
WHERE fac_message_code = 'INV_M048'
|
|
OR fac_message_code = 'INV_M047';
|
|
|
|
INSERT INTO FAC_MESSAGE VALUES('INV_M047', 'Eigenaar van inventaris');
|
|
INSERT INTO FAC_MESSAGE VALUES('INV_M048', 'Het artikel is al van ');
|
|
|
|
INSERT INTO fac_entity_name VALUES('HUI_SLAAPRUIMTE', 'Slaapruimte', 'Slaapruimtes', 'de');
|
|
|
|
INSERT INTO fac_message VALUES('HUI_M037', 'Opnieuw aanmelden is niet toegestaan.');
|
|
INSERT INTO fac_message VALUES('HUI_M038', 'Opnieuw reserveren is niet toegestaan.');
|
|
INSERT INTO fac_message VALUES('HUI_M039', 'Uitprinten van het bruikleenbewijs is niet toegestaan.');
|
|
INSERT INTO fac_message VALUES('HUI_M040', 'Opnieuw afmelden is niet toegestaan.');
|