Files
Database/_UP/400TO410.SRC
Bert in het Veld 2a35564e4e Menu item menu_prs_bedrijf moet "Bedrijven " zijn i.p.v. "Bedrijf ".
svn path=/Database/trunk/; revision=7734
2001-03-19 09:52:32 +00:00

955 lines
37 KiB
Plaintext

SET TERMOUT ON
SET FEEDBACK OFF
SET ECHO OFF
--
-- Update script van Facilitor versie 4.00 naar 4.10
--
/*
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
* om #ifdef's te gebruiken voor de diverse modules.
*
* Gebruik daar waar in de *.SQL-variant geen commentaar-tekst moet komen de
* C-style van uitcommentarieren. Daar waar WEL tekst in de uitvoer moet komen
* moet -- gebruikt worden.
*
*
*/
#include "modules.h"
#include "comsql.h"
#include "INS\inssql.h"
/*
* Test eerst of de vorige versie van module FAC zoals genoemd in tabel
* fac_module wel het te verwachten versienummer heeft
* als dat niet zo is dient de gebruiker het script ZELF af te breken middels
* control-c.
* Als dat wel zo is vervolgt het script en zal aan het einde van het script
* het interne versienummer en de datum worden bijgewerkt.
*/
#ifdef MASTER
SPOOL OFF
set heading off
clear screen
PROMPT ***********************************************************************
PROMPT
PROMPT UPGRADE SCRIPT van Facilitor versie 04.00 naar 04.10
PROMPT
SELECT 'De huidige versie van Facilitor zou moeten zijn 04.00 en is: '
|| fac_module_version
FROM fac_module
WHERE fac_module_name='FAC';
PROMPT
PROMPT Indien de huidige versie NIET de verwachte versie is mag dit script
PROMPT niet worden gerund! In dit geval dient het script nu middels
PROMPT CONTROL-C te worden afgebroken.
PROMPT
PROMPT Indien de versies overeenkomen dient nu ENTER te worden gedrukt...
PROMPT
PROMPT ***********************************************************************
ACCEPT nix PROMPT ''
PROMPT
PROMPT De upgrade wordt vervolgd. Even geduld a.u.b...
PROMPT
SET TERMOUT OFF
SET HEADING OFF
SET FEEDBACK OFF
SET ECHO OFF
SET VERIFY OFF
SET LINESIZE 1000
SET SERVEROUTPUT ON;
SPOOL $400TO410.SQL
PROMPT SPOOL $400TO410.LST;
UPDMOD(FAC,400TO410)
UPDMOD(ALG,400TO410)
UPDMOD(PRS,400TO410)
UPDMOD(INS,400TO410)
UPDMOD(MLD,400TO410)
UPDMOD(CAD,400TO410)
UPDMOD(AKZ,400TO410)
UPDMOD(PRJ,400TO410)
UPDMOD(RES,400TO410)
UPDMOD(SCH,400TO410)
UPDMOD(SLE,400TO410)
UPDATE_VERSION('04.10');
COMMIT;
PROMPT SPOOL OFF;
SPOOL OFF
START $400TO410.SQL
#endif // MASTER
/* denk aan #ifdef constructies! */
/* PLAATS HIERONDER DE UPDATES */
#ifdef ALG
ALTER TABLE alg_terreinsector
ADD
(
alg_terreinsector_ordernr
VARCHAR2(6)
);
INSERT INTO alg_kenmerk(alg_kenmerk_key, alg_kenmerk_niveau, alg_kenmerk_omschrijving,
alg_kenmerk_kenmerktype, alg_kenmerk_systeem, alg_kenmerk_lengte)
VALUES (1, 'G', 'Ordernr.', 'C', 1, 6);
CREATE INDEX alg_i_alg_ruimte4 on alg_ruimte(alg_verdieping_key,alg_ruimte_key, alg_ruimte_upper_nr, alg_ruimte_nr);
#endif // ALG
#ifdef INS
CREATE_VIEW(ALL_discipline, INS_BIBLIOTHEEK_PRIVILEGE)
AS
SELECT INS_TD.* FROM fac_gebruiker FAC_G, ins_tab_discipline INS_TD
WHERE INS_TD.ins_discipline_key = FAC_G.fac_gebruiker_kolomkey
AND FAC_G.fac_gebruiker_tabel = 'INS_DISCIPLINE'
AND FAC_G.fac_gebruiker_kolom = 'INS_DISCIPLINE_KEY'
AND FAC_G.fac_gebruiker_module = INS_TD.ins_discipline_module
AND FAC_G.fac_gebruiker_username = USER;
DEF_FAC_MESSAGE ('INS_M202', 'Verwijderen niet toegestaan.', 'Er zijn nog meldingen bij dit object.','Delete not allowed. There are Calls referencing this object.');
#endif // INS
#ifdef FAC
UPDATE FAC_MESSAGE
SET FAC_MESSAGE_TEXT = 'Facilitor 4.10'
WHERE FAC_MESSAGE_CODE = 'FAC_M002';
UPDATE FAC_MESSAGE
SET FAC_MESSAGE_TEXT = 'Welkom bij Facilitor 4.1'
WHERE FAC_MESSAGE_CODE = 'FAC_M035';
UPDATE FAC_MESSAGE
SET FAC_MESSAGE_TEXT = 'Copyright (c) 1996-2001, Facilitor Software Nederland bv'
WHERE FAC_MESSAGE_CODE = 'FAC_M005';
DEF_FAC_ENTITY ('FAC_PRINTER_EXCEL','Excel',null,null,'Excel');
DEF_FAC_ENTITY ('FAC_PRINTER_BEGINDATUM','Van',null,null,'From');
DEF_FAC_ENTITY ('FAC_PRINTER_EINDDATUM','Tot' ,null,null,'Untill');
DEF_FAC_ENTITY ('FAC_PRINTER_PERIODE','Periode',null,null,'Period');
DEF_FAC_ENTITY ('FAC_KOPIE','Kopie',null,null,'Copy');
DEF_FAC_ENTITY ('ALG_LOCATIECODE','Locatiecode',null,null,'Location code');
DEF_FAC_ENTITY ('MLD_VERDIEPING/RUIMTE','Bouwlaag/Ruimte',null,null,'Floor/Room');
DEF_FAC_ENTITY ('MLD_KOSTENPOST2','Budget',null,null,'Costs category');
DEF_FAC_ENTITY ('MLD_MELDDATUM','Melddatum',null,null,'Call date');
DEF_FAC_ENTITY ('MLD_PLAATSSERVICE' ,'Plaats service',null,null,'Place service');
DEF_FAC_ENTITY ('MLD_AANTALUREN','Aantal uren',null,null,'Number of hours');
DEF_FAC_ENTITY ('MLD_UURTARIEF','Uurtarief',null,null,'Hourly rate');
DEF_FAC_ENTITY ('MLD_LOONKOSTEN','Loonkosten',null,null,'Wages');
DEF_FAC_ENTITY ('MLD_DEELOPDRACHT','Deelopdracht',null,null,'Part. order');
DEF_FAC_MESSAGE ('FAC_M045', 'Begindatum moet worden ingevuld.','Startdate has to be entered.');
DEF_FAC_MESSAGE ('FAC_M046', 'Einddatum moet worden ingevuld.','Enddate has to be entered.');
DEF_FAC_MESSAGE ('FAC_M047', 'Excel moet geinstalleerd zijn om deze functie te kunnen gebruiken','To use this function Excel must be installed.');
DEF_FAC_MESSAGE ('FAC_M048', 'Aanmaken van view %1% is niet gelukt.','Create view %1% did not succeed.');
DEF_FAC_MESSAGE ('FAC_M049', 'Verwijderen van view %1% is niet gelukt.','Delete view %1% did not succeed.');
DEF_FAC_MESSAGE ('FAC_M050', 'Geen %1% kolom aangetroffen in %2%.','No such column %1% exists in %2%.');
DEF_FAC_MESSAGE ('FAC_M051', 'Record %1% wordt aangemaakt.','Creating record %1%.');
DEF_FAC_MESSAGE ('FAC_M052', 'Totaal kolom: %1%.','Total column: %1%.');
DEF_FAC_MESSAGE ('FAC_M053', 'Record %1% wordt geexporteerd.','Exporting record %1%.');
DEF_FAC_MESSAGE ('MLD_BESTEL/VOLGNR' ,'Bestel/volgnummer','Order/sequencenumber');
DEF_FAC_MESSAGE ('MLD_HERKENNINGSTEKST' ,'Herkenningstekst','Standardtext');
DEF_FAC_MESSAGE ('MLD_BETREKKINGOP' ,'Heeft betrekking op','Involves');
ALTER TABLE fac_usrrap
ADD (fac_usrrap_template VARCHAR2(32) DEFAULT NULL
,fac_usrrap_macro VARCHAR2(32) DEFAULT NULL
,fac_usrrap_vraagbegindatum NUMBER(1) DEFAULT 0
,fac_usrrap_vraageinddatum NUMBER(1) DEFAULT 0
,fac_usrrap_functie NUMBER(1) DEFAULT 0
,fac_usrrap_info VARCHAR2(100));
CREATE INDEX fac_i_fac_selectie1 ON fac_selectie(fac_selectie_node,fac_selectie_tabel);
#endif // FAC
#ifdef PRS
DEF_FAC_MESSAGE ('PRS_M177', 'Verwijderen Domein ','Delete Domain ');
DEF_FAC_MESSAGE ('PRS_M178', 'Domein %1% is nog in gebruik.','Domain %1% is in use.');
INSERT INTO prs_srtperslid(prs_srtperslid_omschrijving) VALUES ('Onbekend');
INSERT INTO prs_perslid(prs_perslid_key,prs_perslid_module, prs_perslid_naam, prs_srtperslid_key)
SELECT 0, 'PRS', 'Onbekend', prs_srtperslid_key
FROM prs_srtperslid
WHERE prs_srtperslid_upper = 'ONBEKEND';
UPDATE fac_entity_name
SET fac_entity_user_name = 'Bedrijven '
WHERE fac_entity_system_name = 'MENU_PRS_BEDRIJF';
ALTER TABLE prs_werkplek
DROP CONSTRAINT prs_r_prs_alg_ruimte_key2;
COMMIT;
#endif // PRS
#ifdef MLD
ALTER TABLE mld_meldbron
ADD
(
mld_meldbron_default
NUMBER(1)
);
DEFINIEER_VIEW_AANWEZIG(mld_meldbron,
mld_meldbron_verwijder,
mld_v_aanwezigmeldbron,
MLD_BIBLIOTHEEK_PRIVILEGE);
ALTER TABLE mld_melding
ADD
(
mld_melding_geaccepteerd_user
VARCHAR2(30),
mld_melding_melder_telefoon
VARCHAR2(15),
mld_melding_melder_plaats
VARCHAR2(35)
);
ALTER TABLE mld_melding
ADD
(
prs_perslid_key
NUMBER(10)
CONSTRAINT mld_r_prs_perslid_key REFERENCES prs_perslid(prs_perslid_key)
);
CREATE_TABLE(mld_melding_object, MLD_NORMAAL_PRIVILEGE)
(
mld_melding_object_key
NUMBER(10)
CONSTRAINT mld_k_mld_object_key PRIMARY KEY,
mld_melding_key
NUMBER(10)
NOT_NULL(mld_melding_key, mld_c_mld_melding_key),
ins_deel_key
NUMBER(10)
CONSTRAINT mld_r_ins_deel_key1 REFERENCES ins_deel(ins_deel_key),
mld_melding_object_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(mld_melding_object_aanmaak, mld_c_mld_object_aanmaak),
mld_melding_object_verwijder
DATE
DEFAULT NULLDATUM
);
CREATE SEQUENCE mld_s_mld_object_key MINVALUE 1;
CREATE_TRIGGER(mld_t_mld_mld_object_B_IU)
BEFORE INSERT OR UPDATE ON mld_melding_object
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_melding_object_key, mld_s_mld_object_key);
END;
/
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);
/* 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
CHECK_REFERENCE_ONROERENDGOED(mld_alg_onroerendgoed_keys, 'alg_m090');
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;
SELECT USER
INTO :new.mld_melding_username
FROM DUAL;
IF :new.prs_perslid_key IS NULL
THEN
raise_application_error(-20000, 'mld_m233');
END IF;
IF :new.prs_afdeling_key IS NULL
THEN
raise_application_error(-20000, 'mld_m234');
END IF;
IF :new.mld_melding_afgewezen IS NOT NULL
AND :new.mld_melding_geaccepteerd IS NOT NULL
THEN
raise_application_error(-20000, 'mld_m175');
END IF;
IF :new.mld_melding_geaccepteerd IS NOT NULL AND :old.mld_melding_geaccepteerd IS NULL
THEN
SELECT USER INTO :new.mld_melding_geaccepteerd_user
FROM DUAL;
END IF;
IF :new.mld_melding_verwerkt IS NOT NULL AND :old.mld_melding_verwerkt IS NULL THEN
-- De melding wordt nu verwerkt
IF :old.mld_melding_geaccepteerd IS NULL AND :old.mld_melding_afgemeld IS NULL THEN
raise_application_error(-20000, 'mld_m203');
ELSE
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 = 'MLD_UITGEGEVEN'
OR MLD_SO.mld_statusopdr_upper = 'MLD_AFGEMELD')
AND MLD_O.mld_melding_key = :new.mld_melding_key;
raise_application_error(-20000, 'mld_m192');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS
THEN raise_application_error(-20000, 'mld_m192');
END;
END IF;
ELSIF :new.mld_melding_afgemeld IS NOT NULL AND :old.mld_melding_afgemeld IS NULL THEN
-- De melding wordt nu afgemeld
IF :old.mld_melding_geaccepteerd IS NULL THEN
raise_application_error(-20000, 'mld_m202');
ELSIF :old.mld_melding_verwerkt IS NOT NULL THEN
raise_application_error(-20000, 'mld_m195');
END IF;
END IF;
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_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, 'mld_m37');
/* 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.
*/
/* Het bepalen van het BedrijfOpdrVolgnr moet in het form zelf gebeuren vlak voor de gegevens
* worden vastgelegd. Omdat de aan te roepen procedure weer van de huidige tabel gebruik maakt
* krijgt men de foutmelding "mld_opdr is mutating, trigger/function may not see it.". Dit treedt
* op als men de uitvoerende van persoon naar bedrijf wijzigd.
*
* IF :old.mld_opdr_bedrijfopdr_volgnr IS NULL
* THEN
* :new.mld_opdr_bedrijfopdr_volgnr := MLD_P_BepaalBedrijfOpdrVolgnr(:new.mld_uitvoerende_keys);
* END IF;
*/
END;
/
DEFINIEER_VIEW_AANWEZIG(mld_melding_object, mld_melding_object_verwijder,
mld_v_aanwezigmelding_object,MLD_NORMAAL_PRIVILEGE);
CREATE_VIEW(mld_v_openmelding_gegevens, MLD_NORMAAL_PRIVILEGE)
AS
SELECT * FROM mld_melding
WHERE mld_melding_afgemeld IS NULL
AND mld_melding_verwerkt IS NULL
MINUS
SELECT * FROM mld_melding
WHERE mld_melding_afgewezen IS NOT NULL;
CREATE_VIEW(mld_v_mld_melding_gegevens,MLD_NORMAAL_PRIVILEGE)
(mld_melding_key,
mld_melding_datum,
mld_melding_module,
mld_meldbron_key,
mld_oorzaak_key,
mld_stdmelding_key,
mld_melding_omschrijving,
mld_melding_username,
mld_melding_melder_naam,
mld_melding_uitvoertijd,
mld_melding_ordernr,
mld_kosten_klant,
ins_discipline_key,
ins_srtgroep_key,
ins_srtdeel_key,
alg_locatie_key,
alg_gebouw_key,
alg_verdieping_key,
alg_ruimte_key,
alg_terreinsector_key) AS
SELECT MLD_M.mld_melding_key,
MLD_M.mld_melding_datum,
MLD_M.mld_melding_module,
MLD_M.mld_meldbron_key,
MLD_M.mld_oorzaak_key,
MLD_M.mld_stdmelding_key,
MLD_M.mld_melding_omschrijving,
MLD_M.mld_melding_username,
MLD_M.mld_melding_melder_naam,
MLD_M.mld_melding_uitvoertijd,
MLD_M.mld_melding_ordernr,
MLD_M.mld_kosten_klant,
MLD_M.mld_ins_discipline_key,
TO_NUMBER(NULL),
TO_NUMBER(NULL),
MLD_M.mld_alg_locatie_key,
ALG_O.alg_gebouw_key,
ALG_O.alg_verdieping_key,
ALG_O.alg_ruimte_key,
ALG_O.alg_terreinsector_key
FROM mld_melding MLD_M,
alg_v_onroerendgoed ALG_O
WHERE MLD_M.mld_alg_onroerendgoed_keys = ALG_O.alg_onroerendgoed_keys;
/
CREATE_VIEW(MLD_discipline, MLD_BIBLIOTHEEK_PRIVILEGE)
AS
SELECT * FROM ALL_discipline WHERE ins_discipline_module = 'MLD';
INSERT INTO mld_meldbron(mld_meldbron_omschrijving) VALUES ('Telefoon');
INSERT INTO mld_meldbron(mld_meldbron_omschrijving) VALUES ('Fax');
INSERT INTO mld_meldbron(mld_meldbron_omschrijving) VALUES ('E-mail');
INSERT INTO mld_meldbron(mld_meldbron_omschrijving) VALUES ('Internet');
INSERT INTO mld_meldbron(mld_meldbron_omschrijving) VALUES ('System');
COMMIT;
DEF_FAC_ENTITY ('MLD_KOSTENKLANT' ,'Kosten klant' ,null,null,'Customer costs');
DEF_FAC_ENTITY ('MLD_KOSTENSU' ,'Kosten SU' ,null,null,'Service unit costs');
DEF_FAC_ENTITY ('MLD_KOSTENSOORT' , 'Kostensoort' , 'Kostensoorten', 'de','Cost type');
DEF_FAC_MESSAGE ('MLD_M215', 'Controle Herkenningstekst - Ruimte', 'Check Standardtext - Room');
DEF_FAC_MESSAGE ('MLD_M216', 'Openstaande melding gevonden m.b.t. deze herkennningstekst en deze ruimte.', 'Outstanding call(s) found for this Standardtext and this Room.');
DEF_FAC_MESSAGE ('MLD_M217', 'Controle Objecten', 'Check Objects');
DEF_FAC_MESSAGE ('MLD_M218', 'Openstaande melding gevonden m.b.t. de gekozen objecten.', 'Outstanding call(s) found for the selected objects.');
DEF_FAC_MESSAGE ('MLD_M219', 'Verwijderen melding objectsoort', 'Delete call object type');
DEF_FAC_MESSAGE ('MLD_M220', 'Verwijderen melding objectsoort', 'Delete call object type');
DEF_FAC_MESSAGE ('MLD_M221', 'Verwijderen melding object', 'Delete call object');
DEF_FAC_MESSAGE ('MLD_M222', 'Verwijderen melding object', 'Delete call object');
DEF_FAC_MESSAGE ('MLD_M223', 'Controle contract' , 'Check Contract');
DEF_FAC_MESSAGE ('MLD_M224', 'Het contractnummer is niet ingevuld.', 'Number of Contract is empty.');
DEF_FAC_MESSAGE ('MLD_M225', 'LET OP : Doorlooptijd van de opdracht overschrijdt de einddatum van de melding.' ,'PLEASE NOTE : Enddate of order is greater than enddate of the Call.');
DEF_FAC_MESSAGE ('MLD_M226', 'Opnemen in historie t.b.v. preventief onderhoud.', 'Log history on behalve of preventive maintance.');
DEF_FAC_MESSAGE ('MLD_M227', 'Meldingen bij object', 'Calls by object');
DEF_FAC_MESSAGE ('MLD_M228', 'Preventief', 'Preventive Maintenance');
DEF_FAC_MESSAGE ('MLD_M229', 'Meldingsdatum van een storing mag niet in de toekomst liggen', 'Date of technical malfunction cannot be in the future');
DEF_FAC_MESSAGE ('MLD_M230', 'Meldingsdatum preventieve melding mag niet in het verleden liggen', 'Date of preventive maintenance can not be in the past');
DEF_FAC_MESSAGE ('MLD_M231', 'Preventief (Beperkt met selectie)','Call Preventive maintenance (restricted selection)');
DEF_FAC_MESSAGE ('MLD_M232', 'Ongeldige meldernaam opgegeven.', 'Invalid Name entered.');
DEF_FAC_MESSAGE ('MLD_M233', 'Naam van de melder is niet ingevuld.', 'Name has not been entered.');
DEF_FAC_MESSAGE ('MLD_M234', 'De Afdeling is niet ingevuld.', 'Department has not been entered.');
DEF_FAC_MESSAGE ('MENU_MLD_PREVENTIEF' , 'Preventief ', 'Preventive Maintenance');
DEF_FAC_MESSAGE ('MELDING_DOCUMENT','Formulier', 'Request form');
DEF_FAC_MESSAGE ('mld_c_mld_melding_key', 'Referentie naar de melding is niet ingevuld.', 'Reference to Call has not been entered.');
DEF_FAC_MESSAGE ('mld_c_mld_deel_hist_aanmaak', 'Aanmaakdatum is niet gevuld.', 'Date has not been entered.');
DEF_FAC_MESSAGE ('PRS_AFDELING_BU_KSTNPLTS', 'Business Unit/Kostenplaats', 'Business Unit/*Kostenplaats*');
DEF_FAC_MESSAGE ('MLD_MELDBRON_DEFAULT', 'Default meldbron', 'Default call source');
-- Term kostenpost vervangen door ordernummer...
UPDATE FAC_ENTITY_NAME
SET FAC_ENTITY_USER_NAME = 'B'||CHR(38)||'udgetten'
WHERE FAC_ENTITY_SYSTEM_NAME = 'MENU_MLD_KOSTENPOST';
UPDATE FAC_ENTITY_NAME
SET FAC_ENTITY_USER_NAME = 'Budget',
FAC_ENTITY_USER_NAME_M = 'Budgetten'
WHERE FAC_ENTITY_SYSTEM_NAME = 'MLD_KOSTENPOST';
-- Trigger hier geplaatst opdat deze gebruikt maakt van de hierboven
-- gedefinieerde view mld_v_aanwezigmelding_object
CREATE_TRIGGER(ins_t_ins_deel_B_IU)
BEFORE INSERT OR UPDATE ON ins_deel
FOR EACH ROW
BEGIN
-- LET OP : Deze trigger is ook gedefinieerd in RES !!
UPDATE_PRIMARY_KEY(ins_deel_key,ins_s_ins_inst_keys);
UPDATE_UPPER(ins_deel_omschrijving,ins_deel_upper);
-- Indien verplaatsing of verwijdering of reincarnatie dan alleen vanuit de
-- CAD-omgeving, d.i. als tegelijk ins_deel_getekend een nieuwe waarde krijgt.
-- Dus een foutmelding als dit niet zo is.
CHECK_CADMUTATIE2(ins_deel_verwijder, ins_deel_getekend, ins_alg_ruimte_key, 'ins_m187');
IF :new.ins_deel_parent_key IS NULL
THEN
DECLARE
Dummy BOOLEAN;
BEGIN
--Dummy := fac_p_fac_save_restore.SavePrimaryKey('INS_DEEL_VERWIJDER', :new.ins_deel_key);
Dummy := fac_p_fac_save_restore.SavePrimaryKeyAndDate('INS_DEEL_VERWIJDER', :new.ins_deel_key, :old.ins_deel_verwijder);
END;
END IF;
IF :new.ins_deel_verwijder IS NOT NULL
THEN
DECLARE
Dummy BOOLEAN;
Dummy2 CHAR;
BEGIN
BEGIN
SELECT 'x'
INTO dummy2
FROM mld_v_aanwezigmelding_object O, mld_melding M
WHERE O.ins_deel_key = :old.ins_deel_key
AND O.mld_melding_key = M.mld_melding_key
AND EXISTS
(SELECT '' FROM mld_melding
WHERE mld_melding_afgemeld IS NULL
AND mld_melding_verwerkt IS NULL
AND mld_melding_key = M.mld_melding_key
MINUS
SELECT '' FROM mld_melding
WHERE mld_melding_afgewezen IS NOT NULL
AND mld_melding_key = M.mld_melding_key);
raise_application_error(-20000,'ins_m202');
EXCEPTION
WHEN NO_DATA_FOUND THEN
Dummy := fac_p_fac_save_restore.SavePrimaryKey('INS_DEEL_ONTKOPPEL', :new.ins_deel_key);
WHEN TOO_MANY_ROWS THEN raise_application_error(-20000,'ins_m202');
END;
END;
END IF;
-- Vul het veld INS_DISCIPLINE van het huidige deel.
IF :old.ins_srtdeel_key IS NULL
OR :old.ins_srtdeel_key <> :new.ins_srtdeel_key
OR :old.ins_discipline_key IS NULL
THEN
BEGIN
SELECT INS_D.ins_discipline_key
INTO :new.ins_discipline_key
FROM ins_srtdeel INS_SD
, ins_srtgroep INS_SG
, ins_tab_discipline INS_D
WHERE INS_SD.ins_srtdeel_key = :new.ins_srtdeel_key
AND INS_SD.ins_srtgroep_key = INS_SG.ins_srtgroep_key
AND INS_SG.ins_discipline_key = INS_D.ins_discipline_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN :new.ins_discipline_key := NULL;
END;
END IF;
-- Zoek de (redundante) alg_locatie_key erbij indien verplaatst.
IF :old.ins_alg_ruimte_key IS NULL
OR :old.ins_alg_ruimte_key <> :new.ins_alg_ruimte_key
OR :new.ins_alg_locatie_key IS NULL
THEN
IF :new.ins_alg_ruimte_type IN ('A','P')
THEN
NULL;
ELSE
BEGIN
SELECT alg_locatie_key
INTO :new.ins_alg_locatie_key
FROM ins_v_alg_overzicht
WHERE alg_onroerendgoed_keys = :new.ins_alg_ruimte_key
AND alg_onroerendgoed_type = :new.ins_alg_ruimte_type;
EXCEPTION
WHEN NO_DATA_FOUND
THEN :new.ins_alg_locatie_key := NULL;
END;
END IF;
END IF;
/* Bij INS_DEEL in INS-mode moet INS_ALG_RUIMTE_KEY ingevuld zijn
* en wel met ruimte, verdieping, gebouw of terreinsector.
* Daarvoor moet ook het INS_ALG_RUIMTE_TYPE veld goed ingevuld zijn
* (met 'R' of 'V' of 'G' of 'T' of 'A' of 'P').
* 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 beide 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 :old.ins_alg_ruimte_type IN ('W','R','T')
AND :old.ins_deel_getekend IS NOT NULL
AND :new.ins_alg_ruimte_type IN ('A','P')
THEN
APPLICATION_ERROR(-20000, 'ins_m196');
END IF;
IF :new.ins_alg_ruimte_type = 'W' /* 990218/BIV - #2251 - Deel kan ook op werkplek worden geplaatst */
THEN
CHECK_KEY_REFERENCE(prs_v_aanwezigwerkplek , prs_werkplek_key , :new.ins_alg_ruimte_key, 'ins_m174');
ELSIF :new.ins_alg_ruimte_type = 'R'
THEN
CHECK_KEY_REFERENCE(alg_v_aanwezigruimte , alg_ruimte_key , :new.ins_alg_ruimte_key, 'ins_m092');
ELSIF :new.ins_alg_ruimte_type = 'T'
THEN
CHECK_KEY_REFERENCE(alg_v_aanwezigterreinsector, alg_terreinsector_key, :new.ins_alg_ruimte_key, 'ins_m095');
ELSIF :new.ins_alg_ruimte_type = 'A'
THEN
CHECK_KEY_REFERENCE(prs_v_aanwezigafdeling , prs_afdeling_key , :new.ins_alg_ruimte_key, 'ins_m194');
ELSIF :new.ins_alg_ruimte_type = 'P'
THEN
CHECK_KEY_REFERENCE(prs_v_aanwezigperslid , prs_perslid_key , :new.ins_alg_ruimte_key, 'ins_m195');
ELSE
APPLICATION_ERROR(-20000, 'ins_m84');
END IF;
DECLARE
Dummy BOOLEAN;
BEGIN
-- Alleen bestaande delen hebben mogelijk te verplaatsen onderdelen.
IF :old.ins_deel_aanmaak IS NOT NULL
AND :new.ins_deel_parent_key IS NULL
THEN
Dummy := fac_p_fac_save_restore.SavePrimaryKey('INS_DEEL_CASCADE', :new.ins_deel_key);
END IF;
END;
END IF;
UPDATE_AANMAAKDATUM(ins_deel, ins_deel_aanmaak);
END;
/
CREATE_VIEW(mld_v_mld_opdrachtgeprint,MLD_NORMAAL_PRIVILEGE)
( MLD_OPDRACHT_KEY
, MLD_OPDRACHT_GEPRINT
, MLD_OPDRACHT_OMSCHRIJVING
, MLD_OPDR_BEDRIJFOPDR_VOLGNR
, MLD_OPDR_CONTACTPERSOON
, MLD_OPDR_UREN
, MLD_OPDR_UURLOON
, MLD_OPDR_KOSTEN
, MLD_OPDR_MATERIAAL
, MLD_OPDR_KOSTENPOST
, MLD_MELDING_KEY
, MLD_MELDING_USERNAME
, PRS_PERSLID_NR
, MLD_MELDING_MELDER_NAAM -- Naam van persoon die de melding gedaan heeft.
, PRS_PERSLID_TELEFOONNR --
, PRS_PERSLID_GEBOUW_CODE --
, PRS_PERSLID_VERD_RUIMTE --
, PRS_AFDELING_NAAM -- Naam van de afdeling waartoe de persoon behoort die de melding heeft gedaan.
, ALG_LOCATIE_CODE
, ALG_GEBOUW_OMSCHRIJVING
, ALG_VERDIEPING_OMSCHRIJVING
, ALG_RUIMTE_OMSCHRIJVING
, ALG_TERREINVAK_OMSCHRIJVING
, MLD_STDMELDING_OMSCHRIJVING
, MLD_MELDING_OMSCHRIJVING
, MLD_MELDING_DATUM
, MLD_MELDING_UITVOERTIJD
, PRS_BEDRIJF_NAAM -- Naam van uitvoerende bedrijf of afdeling.
, PRS_BEDRIJF_POST_ADRES -- Postadres van uitvoerende bedrijf.
, PRS_BEDRIJF_POST_PLAATS -- Postcode en plaats van postadres uitvoerende bedrijf.
, PRS_BEDRIJF_CONTACTPERSOON -- Naam van contactpersoon van uitvoerende bedrijf of afdeling.
, PRS_BEDRIJF_TELEFOON -- Telefoonnr van contactpersoon van uitvoerende bedrijf of afdeling.
, PRS_OVEREENKOMST_NR )
AS SELECT MLD_O.mld_opdr_key
, MLD_O.mld_opdr_geprint
, MLD_O.mld_opdr_omschrijving
, MLD_O.mld_opdr_bedrijfopdr_volgnr
, MLD_O.mld_opdr_contactpersoon
, MLD_O.mld_opdr_uren
, MLD_O.mld_opdr_uurloon
, MLD_O.mld_opdr_kosten
, MLD_O.mld_opdr_materiaal
, ALG_K.alg_kostenpost_omschrijving
, MLD_M.mld_melding_key
, MLD_M.mld_melding_username
, MLD_P.prs_perslid_nr
, MLD_M.mld_melding_melder_naam
, MLD_P.prs_perslid_telefoonnr
, MLD_P.alg_gebouw_code
, TO_CHAR(MLD_P.alg_verdieping_volgnr)||'-'||MLD_P.alg_ruimte_nr
, PRS_A.prs_afdeling_omschrijving
, ALG_L.alg_locatie_code
, rtrim(ALG_G.alg_gebouw_code)||'-'||ALG_G.alg_gebouw_naam
, rtrim(TO_CHAR(ALG_G.alg_verdieping_volgnr))||'-'||ALG_G.alg_verdieping_omschrijving
, rtrim(ALG_G.alg_ruimte_nr)||'-'||ALG_G.alg_ruimte_omschrijving
, decode(alg_type,'T',rtrim(alg_terreinsector_code)||'-'||ALG_G.alg_onroerendgoed_omschrijving,'-')
, MLD_S.mld_stdmelding_omschrijving
, MLD_M.mld_melding_omschrijving
, MLD_M.mld_melding_datum
, MLD_M.mld_melding_uitvoertijd
, NVL(PRS_B.prs_bedrijf_naam,MLD_P.prs_afdeling_naam)
, PRS_B.prs_bedrijf_post_adres
, decode(PRS_B.prs_bedrijf_post_postcode,null,null,PRS_B.prs_bedrijf_post_postcode||' ')||PRS_B.prs_bedrijf_post_plaats
, NVL(PRS_B.prs_bedrijf_contact_persoon,MLD_P.prs_perslid_naam)
, NVL(PRS_B.prs_bedrijf_contact_telefoon,MLD_P.prs_perslid_telefoonnr)
, PRS_B.prs_overeenkomst_nr
FROM mld_opdr MLD_O
, mld_melding MLD_M
, mld_meldbron MLD_B
, ins_tab_discipline INS_D
, alg_locatie ALG_L
, mld_stdmelding MLD_S
, alg_v_onroerendgoed_gegevens ALG_G
, mld_v_mld_perslid_gegevens MLD_P
, prs_bedrijf PRS_B
, prs_afdeling PRS_A
, alg_kostenpost ALG_K
WHERE MLD_M.mld_ins_discipline_key = INS_D.ins_discipline_key
AND MLD_M.mld_alg_locatie_key = ALG_L.alg_locatie_key
AND MLD_M.mld_alg_onroerendgoed_keys = ALG_G.alg_onroerendgoed_keys
AND MLD_M.mld_stdmelding_key = MLD_S.mld_stdmelding_key
AND MLD_M.mld_meldbron_key = MLD_B.mld_meldbron_key
AND MLD_O.mld_melding_key = MLD_M.mld_melding_key
AND MLD_O.mld_uitvoerende_keys = PRS_B.prs_bedrijf_key (+)
AND MLD_O.mld_uitvoerende_keys = MLD_P.prs_perslid_key (+)
AND MLD_O.mld_alg_kostenpost_key = ALG_K.alg_kostenpost_key (+)
AND MLD_M.prs_afdeling_key = PRS_A.prs_afdeling_key (+);
#endif // MLD
#ifdef CAD
#endif // CAD
#ifdef AKZ
CREATE_VIEW(akz_v_mld_meldingprint, NORMAAL_PRIVILEGE)
( mld_melding_key
, mld_melding_geprint
, mld_melding_username
, prs_perslid_nr
, mld_melding_melder_naam
, prs_perslid_telefoonnr
, prs_perslid_gebouw_code
, prs_perslid_verd_ruimte
, prs_afdeling_naam
, alg_locatie_code
, alg_gebouw_omschrijving
, alg_verdieping_omschrijving
, alg_ruimte_omschrijving
, alg_terreinsector_omschrijving
, ins_discipline_omschrijving
, mld_stdmelding_omschrijving
, mld_melding_omschrijving
, mld_melding_opmerking
, mld_melding_datum
, mld_melding_uitvoertijd
, mld_melding_levertijd
, mld_melding_ordernr
)
AS
SELECT MLD_M.mld_melding_key,
MLD_M.mld_melding_geprint,
MLD_M.mld_melding_username,
AKZ_PG.prs_perslid_nr,
MLD_M.mld_melding_melder_naam,
AKZ_PG.prs_perslid_telefoonnr,
AKZ_PG.alg_gebouw_code,
TO_CHAR(AKZ_PG.alg_verdieping_volgnr)||'-'||AKZ_PG.alg_ruimte_nr,
AKZ_PG.prs_afdeling_naam,
ALG_L.alg_locatie_code,
rtrim(ALG_OG.alg_gebouw_code)||'-'||ALG_OG.alg_gebouw_naam,
rtrim(TO_CHAR(ALG_OG.alg_verdieping_volgnr))||'-'||ALG_OG.alg_verdieping_omschrijving,
rtrim(ALG_OG.alg_ruimte_nr)||'-'||ALG_OG.alg_ruimte_omschrijving,
decode(alg_type,'T',rtrim(alg_terreinsector_code)||'-'||ALG_OG.alg_onroerendgoed_omschrijving,'-'),
INS_D.ins_discipline_omschrijving,
MLD_SM.mld_stdmelding_omschrijving,
MLD_M.mld_melding_omschrijving,
MLD_M.mld_melding_opmerking,
MLD_M.mld_melding_datum,
MLD_M.mld_melding_uitvoertijd,
0,
MLD_M.mld_melding_ordernr
FROM mld_melding MLD_M,
mld_meldbron MLD_MB,
mld_stdmelding MLD_SM,
ins_tab_discipline INS_D,
alg_locatie ALG_L,
alg_v_allonrgoed_gegevens ALG_OG,
akz_v_mld_perslid_gegevens AKZ_PG
WHERE MLD_M.mld_ins_discipline_key = INS_D.ins_discipline_key
AND MLD_M.mld_alg_locatie_key = ALG_L.alg_locatie_key
AND MLD_M.mld_alg_onroerendgoed_keys = ALG_OG.alg_onroerendgoed_keys
AND MLD_M.mld_stdmelding_key = MLD_SM.mld_stdmelding_key
AND MLD_M.mld_meldbron_key = MLD_MB.mld_meldbron_key
AND UPPER(MLD_M.mld_melding_melder_naam) = AKZ_PG.prs_perslid_upper (+)
/
CREATE_VIEW(akz_v_mld_opdrachtgeprint, NORMAAL_PRIVILEGE)
( mld_opdracht_key
, mld_opdracht_geprint
, mld_opdracht_omschrijving
, mld_opdr_bedrijfopdr_volgnr
, mld_opdr_contactpersoon
, mld_opdr_uren
, mld_opdr_uurloon
, mld_opdr_kosten
, mld_opdr_materiaal
, mld_melding_key
, mld_melding_username
, prs_perslid_nr
, mld_melding_melder_naam
, prs_perslid_telefoonnr
, prs_perslid_gebouw_code
, prs_perslid_verd_ruimte
, prs_afdeling_naam
, prs_afdeling_eenheid
, prs_afdeling_kostenplaats
, alg_locatie_code
, alg_gebouw_omschrijving
, alg_verdieping_omschrijving
, alg_ruimte_omschrijving
, alg_terreinvak_omschrijving
, mld_stdmelding_omschrijving
, mld_melding_omschrijving
, mld_melding_datum
, mld_melding_uitvoertijd
, mld_melding_ordernr
, prs_bedrijf_naam
, prs_bedrijf_post_adres
, prs_bedrijf_post_plaats
, prs_overeenkomst_nr
)
AS
SELECT MLD_O.mld_opdr_key,
MLD_O.mld_opdr_geprint,
MLD_O.mld_opdr_omschrijving,
MLD_O.mld_opdr_bedrijfopdr_volgnr,
MLD_O.mld_opdr_contactpersoon,
MLD_O.mld_opdr_uren,
MLD_O.mld_opdr_uurloon,
MLD_O.mld_opdr_kosten,
MLD_O.mld_opdr_materiaal,
MLD_M.mld_melding_key,
MLD_M.mld_melding_username,
AKZ_PG.prs_perslid_nr,
MLD_M.mld_melding_melder_naam,
AKZ_PG.prs_perslid_telefoonnr,
AKZ_PG.alg_gebouw_code,
TO_CHAR(AKZ_PG.alg_verdieping_volgnr)||'-'||AKZ_PG.alg_ruimte_nr,
AKZ_PG.prs_afdeling_naam,
AKZ_PG.prs_afdeling_eenheid,
AKZ_PG.prs_afdeling_kostenplaats,
ALG_L.alg_locatie_code,
rtrim(ALG_OG.alg_gebouw_code)||'-'||ALG_OG.alg_gebouw_naam,
rtrim(TO_CHAR(ALG_OG.alg_verdieping_volgnr))||'-'||ALG_OG.alg_verdieping_omschrijving,
rtrim(ALG_OG.alg_ruimte_nr)||'-'||ALG_OG.alg_ruimte_omschrijving,
decode(alg_type,'T',rtrim(alg_terreinsector_code)||'-'||ALG_OG.alg_onroerendgoed_omschrijving,'-'),
MLD_SM.mld_stdmelding_omschrijving,
MLD_M.mld_melding_omschrijving,
MLD_M.mld_melding_datum,
MLD_M.mld_melding_uitvoertijd,
MLD_M.mld_melding_ordernr,
PRS_B.prs_bedrijf_naam,
PRS_B.prs_bedrijf_post_adres,
PRS_B.prs_bedrijf_post_plaats,
PRS_B.prs_overeenkomst_nr
FROM mld_opdr MLD_O,
mld_melding MLD_M,
mld_meldbron MLD_MB,
ins_tab_discipline INS_D,
alg_locatie ALG_L,
mld_stdmelding MLD_SM,
alg_v_allonrgoed_gegevens ALG_OG,
akz_v_mld_perslid_gegevens AKZ_PG,
prs_bedrijf PRS_B
WHERE MLD_M.mld_ins_discipline_key = INS_D.ins_discipline_key
AND MLD_M.mld_alg_locatie_key = ALG_L.alg_locatie_key
AND MLD_M.mld_alg_onroerendgoed_keys = ALG_OG.alg_onroerendgoed_keys
AND MLD_M.mld_stdmelding_key = MLD_SM.mld_stdmelding_key
AND MLD_M.mld_meldbron_key = MLD_MB.mld_meldbron_key
AND MLD_O.mld_melding_key = MLD_M.mld_melding_key
AND MLD_O.mld_uitvoerende_keys = PRS_B.prs_bedrijf_key
AND UPPER(MLD_M.mld_melding_melder_naam) = AKZ_PG.prs_perslid_upper (+)
/
#endif //AKZ
#ifdef PRJ
/* Als is mag muteren, moet ik soms de sequences kunnen zien */
SELECT 'GRANT all ON ' || USEQ.sequence_name ||' TO '||USER||'_ALG_SMALL_ROLE;'
FROM user_sequences USEQ;
#endif // PRJ
#ifdef RES
ALTER TABLE res_reservering ADD (res_reservering_opmerking VARCHAR2(320));
/* Als ik mag kijken, mag ik ook functies aanroepen */
SELECT 'GRANT execute ON RES TO '||USER||'_RES_SMALL_ROLE;'
FROM dual;
/* Als is mag muteren, moet ik soms de sequences kunnen zien */
SELECT 'GRANT all ON ' || USEQ.sequence_name ||' TO '||USER||'_ALG_SMALL_ROLE;'
FROM user_sequences USEQ;
#endif // RES