Files
Database/_UP/421TO422.SRC
2012-05-06 12:54:48 +00:00

615 lines
22 KiB
Plaintext

SET TERMOUT ON
SET FEEDBACK OFF
SET ECHO OFF
--
-- Update script van Facilitor versie 4.21 naar 4.22
--
-- $Revision$
-- $Id$
--
/*
* 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.21 naar 04.22
PROMPT
SELECT 'De huidige versie van Facilitor zou moeten zijn 04.21 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 $421to422.SQL
PROMPT SPOOL $421to422.LST;
UPDMOD(FAC,421to422)
UPDMOD(ALG,421to422)
UPDMOD(PRS,421to422)
UPDMOD(INS,421to422)
UPDMOD(MLD,421to422)
UPDMOD(CAD,421to422)
UPDMOD(AKZ,421to422)
UPDMOD(PRJ,421to422)
UPDMOD(RES,421to422)
UPDMOD(SCH,421to422)
UPDMOD(SLE,421to422)
UPDMOD(WEB,421to422)
UPDATE_VERSION('04.22');
COMMIT;
PROMPT SPOOL OFF;
SPOOL OFF
START $421to422.SQL
#endif // MASTER
/****************************** PLAATS HIERONDER DE UPDATES ******************************/
#ifdef ALG
CREATE_VIEW(fac_v_functie_discipline, FAC_BIBLIOTHEEK_PRIVILEGE)
(fac_functie_discipline_key,
fac_functie_discipline_type,
fac_functie_discipline_module,
fac_functie_discipline_omschr,
fac_functie_discipline_min_lev) AS
SELECT fac_functie_key,
'F',
fac_functie_module,
fac_functie_omschrijving,
fac_functie_min_level
FROM fac_functie
#ifdef RES
UNION
SELECT P.prs_afdeling_key,
'A',
'RES',
P.prs_afdeling_naam,
1
FROM prs_afdeling P
WHERE prs_afdeling_verwijder IS NULL
AND P.prs_afdeling_key IN
(SELECT prs_afdeling_key
FROM res_artikel A
WHERE res_artikel_verwijder IS NULL
AND A.prs_afdeling_key = P.prs_afdeling_key
AND RowNum = 1)
UNION
SELECT B.prs_bedrijf_key,
'B',
'RES',
SUBSTR(B.prs_bedrijf_naam,1,15),
1
FROM prs_bedrijf B
WHERE prs_bedrijf_verwijder IS NULL
AND B.prs_bedrijf_key IN
(SELECT prs_bedrijf_key
FROM res_artikel A
WHERE res_artikel_verwijder IS NULL
AND A.prs_bedrijf_key = B.prs_bedrijf_key
AND RowNum = 1)
#endif // RES
UNION
SELECT ins_discipline_key,
decode(ins_discipline_module,'INS','D','MLD','V','BES','C','REP','C'),
ins_discipline_module,
ins_discipline_omschrijving,
ins_discipline_min_level
FROM ins_tab_discipline
WHERE ins_discipline_verwijder is NULL;
CREATE_TABLE(fac_groep, FAC_BIBLIOTHEEK_PRIVILEGE)
(
fac_groep_key
NUMBER(10)
CONSTRAINT fac_k_fac_groep_key PRIMARY KEY,
fac_groep_omschrijving
VARCHAR2(30)
CONSTRAINT fac_c_fac_groep_omschrijving CHECK(fac_groep_omschrijving IS NOT NULL),
fac_groep_upper
VARCHAR2(30)
CONSTRAINT fac_c_fac_groep_upper CHECK(fac_groep_upper IS NOT NULL),
fac_groep_aanmaak
DATE
DEFAULT SYSDATE
CONSTRAINT fac_c_fac_groep_aanmaak NOT NULL,
fac_groep_verwijder
DATE
DEFAULT NULL,
CONSTRAINT fac_u_fac_groep_upper UNIQUE(fac_groep_upper, fac_groep_verwijder)
);
CREATE_TABLE(fac_gebruikersgroep, FAC_BIBLIOTHEEK_PRIVILEGE)
(
fac_gebruikersgroep_key
NUMBER(10)
CONSTRAINT fac_k_fac_gebruikersgroep_key PRIMARY KEY,
fac_groep_key
NUMBER(10)
CONSTRAINT fac_r_fac_groep_key REFERENCES fac_groep(fac_groep_key)
CONSTRAINT fac_c_fac_groep_key CHECK(fac_groep_key IS NOT NULL),
fac_gebruikersgroep_username
VARCHAR2(30)
);
ALTER TABLE fac_gebruikersgroep ADD (
prs_perslid_key
NUMBER(10)
CONSTRAINT fac_r_prs_perslid_key REFERENCES prs_perslid(prs_perslid_key)
CONSTRAINT fac_c_prs_perslid_key CHECK(prs_perslid_key IS NOT NULL)
);
alter table fac_gebruiker
add fac_groep_key
NUMBER(10)
CONSTRAINT fac_r_fac_groep_key2 REFERENCES fac_groep(fac_groep_key);
ALTER TABLE FAC_GEBRUIKER drop constraint FAC_C_FAC_GEBRUIKER_USERNAME;
ALTER TABLE FAC_GEBRUIKER add constraint FAC_C_FAC_GEBRUIKER_USERNAME CHECK
(fac_gebruiker_username IS NOT NULL or fac_groep_key IS NOT NULL);
CREATE SEQUENCE fac_s_fac_groep_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_gebruikersgroep_key MINVALUE 1;
CREATE_TRIGGER(fac_t_fac_groep_B_IU)
BEFORE INSERT OR UPDATE ON fac_groep
FOR EACH ROW
BEGIN
CHECK_NOG_REFERENCES(fac_groep, fac_groep_verwijder, fac_gebruikersgroep,fac_groep_key,'fac_m064');
CHECK_NOG_REFERENCES(fac_groep, fac_groep_verwijder, fac_gebruiker, fac_groep_key,'fac_m065');
UPDATE_PRIMARY_KEY(fac_groep_key, fac_s_fac_groep_key);
:new.fac_groep_upper := UPPER(:new.fac_groep_omschrijving);
:new.fac_groep_aanmaak := SYSDATE;
END;
/
CREATE_TRIGGER(fac_t_fac_gebruikersgroep_B_IU)
BEFORE INSERT OR UPDATE ON fac_gebruikersgroep
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_gebruikersgroep_key, fac_s_fac_gebruikersgroep_key);
END;
/
CREATE_VIEW (FAC_V_WEBGEBRUIKER,FAC_NORMAAL_PRIVILEGE) AS
SELECT
G.FAC_GEBRUIKER_KEY,
G.FAC_GROEP_KEY,
U.PRS_PERSLID_INITIALEN FAC_GEBRUIKER_USERNAME,
G.FAC_FUNCTIE_KEY,
G.FAC_GEBRUIKER_MODULE,
G.FAC_GEBRUIKER_TABEL,
G.FAC_GEBRUIKER_KOLOM,
G.FAC_GEBRUIKER_KOLOMKEY,
G.FAC_GEBRUIKER_SOORT
FROM FAC_GEBRUIKER G, FAC_V_WEBUSER U
WHERE G.FAC_GEBRUIKER_USERNAME=U.PRS_PERSLID_INITIALEN
UNION
SELECT
G.FAC_GEBRUIKER_KEY,
G.FAC_GROEP_KEY,
U.PRS_PERSLID_INITIALEN FAC_GEBRUIKER_USERNAME,
G.FAC_FUNCTIE_KEY,
G.FAC_GEBRUIKER_MODULE,
G.FAC_GEBRUIKER_TABEL,
G.FAC_GEBRUIKER_KOLOM,
G.FAC_GEBRUIKER_KOLOMKEY,
G.FAC_GEBRUIKER_SOORT
FROM FAC_GEBRUIKER G, FAC_V_WEBUSER U, FAC_GEBRUIKERSGROEP GG
WHERE G.FAC_GROEP_KEY=GG.FAC_GROEP_KEY
AND GG.PRS_PERSLID_KEY=U.PRS_PERSLID_KEY;
DEFINIEER_VIEW_AANWEZIG(fac_groep, fac_groep_verwijder,
fac_v_aanweziggroep,FAC_NORMAAL_PRIVILEGE);
CREATE_VIEW(fac_v_gebruikersgroepgegevens, FAC_NORMAAL_PRIVILEGE)
( fac_gebruikersgroep_key
, fac_groep_key
, prs_perslid_key
, prs_perslid_oslogin
, prs_afdeling_key
, prs_afdeling_naam
, prs_perslid_naam
, fac_groep_omschrijving
)
AS
select
gg.fac_gebruikersgroep_key
, gg.fac_groep_key
, gg.prs_perslid_key
, p.prs_perslid_oslogin
, a.prs_afdeling_key
, a.prs_afdeling_naam
, p.prs_perslid_naam
, g.fac_groep_omschrijving
from
fac_gebruikersgroep gg
, fac_groep g
, prs_perslid p
, prs_afdeling a
where gg.fac_groep_key=g.fac_groep_key
and gg.prs_perslid_key=p.prs_perslid_key
and p.prs_afdeling_key(+)=a.prs_afdeling_key;
DEF_FAC_ENTITY ('AUTORISATIE','Autorisatie',null,null,'Authorization');
DEF_FAC_ENTITY ('FAC_GROEP','Groep','Groepen','de','Group');
DEF_FAC_ENTITY ('FAC_GROEP_OMSCHRIJVING','Groep','Groepen','de','Group name');
DEF_FAC_ENTITY ('FAC_SELECTEER_OP','Selecteer op',null,null,'Select on');
DEF_FAC_MESSAGE ('FAC_USRTAB','Overige tabellen','Other tables');
DEF_FAC_MESSAGE ('FAC_USRDATA','Tabel ','Table');
DEF_FAC_MESSAGE ('FAC_GROEP_TITEL','Gebruikersgroepen','User groups');
DEF_FAC_MESSAGE ('FAC_M055','Toevoegen groep ','Add group');
DEF_FAC_MESSAGE ('FAC_M056','Groep','Group');
DEF_FAC_MESSAGE ('FAC_M057','Personen','Persons');
DEF_FAC_MESSAGE ('FAC_M058','Gebruikersgroepen-Personen','');
DEF_FAC_MESSAGE ('FAC_M059','Verwijderen ','Delete ');
DEF_FAC_MESSAGE ('FAC_M060','Verwijder Persoon uit groep','');
DEF_FAC_MESSAGE ('FAC_M061','Afdeling','');
DEF_FAC_MESSAGE ('FAC_M062','Groepsautorisatie','');
DEF_FAC_MESSAGE ('FAC_M063','Reeds toegekende individuele rechten worden verwijderd.','');
DEF_FAC_MESSAGE ('FAC_M064','Er bestaan nog aan deze groep gekoppelde personen.','');
DEF_FAC_MESSAGE ('FAC_M065','Er zijn nog autorisaties aan deze groep gekoppeld.','');
DEF_FAC_MESSAGE ('FAC_M066','Verwijderen groep ','');
#endif //ALG
#ifdef INS
DEF_FAC_ENTITY ('INS_DISCIPLINE_MINLEVEL', 'Type', 'Types', 'de','Type');
#endif // INS
#ifdef PRS
DEF_FAC_ENTITY ('MENU_PRS_EENHEID' , 'C'||CHR(38)||'ompany codes', NULL, NULL,'C'||CHR(38)||'ompany codes');
DEF_FAC_MESSAGE('MENU_PRS_PERSLIDEENHEID', 'Pers.functionarissen','Staff Managers');
DEF_FAC_ENTITY ('MENU_PRS_PERSLIDAFDELING', 'Contactpersonen', NULL, NULL,'Contact persons');
DEF_FAC_ENTITY ('MENU_PRS_SECURITY', 'Beveiliging', 'Security');
DEF_FAC_ENTITY ('MENU_PRS_FACILITY', 'Facilities', 'Facilities');
DEF_FAC_ENTITY ('PRS_EENHEID', 'Company', NULL, NULL,'Companies');
DEF_FAC_ENTITY ('PRS_EENHEID_CODE', 'Code' , NULL, NULL,'Code');
DEF_FAC_ENTITY ('PRS_EENHEID_OMSCHRIJVING', 'Omschrijving', NULL, NULL,'Omschrijving');
DEF_FAC_ENTITY ('PRS_PERSLIDEENHEID', 'Personeelszaken', NULL, NULL,'Staff Management');
DEF_FAC_ENTITY ('PRS_PERSLIDAFDELING', 'Contactpersoon', NULL, NULL,'Contact person');
DEF_FAC_MESSAGE ('PRS_M179', 'Verwijderen niet toegestaan, er zijn nog afdelingen gekoppeld aan deze Company.','Can not delete, departments found with this Company.');
DEF_FAC_MESSAGE ('PRS_M181', 'Geen Companies gevonden.' ,'No Companies found.');
DEF_FAC_MESSAGE ('PRS_M182', 'Er zijn geen personen geselecteerd.', 'No persons selected.');
DEF_FAC_MESSAGE ('PRS_M183', 'Companies per personeelsfunctionaris ', 'Companies per Staff Manager');
DEF_FAC_MESSAGE ('PRS_M184', 'Verwijderen Personeelsfunctionaris ', 'Delete Staff Manager');
DEF_FAC_MESSAGE ('PRS_M185', 'Contactpersoon ' , 'Contact Person');
DEF_FAC_MESSAGE ('PRS_M186', 'Verwijderen Contactpersoon ' , 'Delete Contact Person');
DEF_FAC_MESSAGE ('PRS_M187', 'Medewerkers beveiliging' , 'Security Employee');
DEF_FAC_MESSAGE ('PRS_M188', 'Medewerkers facilities' , 'Facilities Employee');
DEF_FAC_MESSAGE ('PRS_M189', 'Verwijderen contactpersonen Facilities', 'Delete Contact Person Facilities');
DEF_FAC_MESSAGE ('PRS_M190', 'Verwijderen contactpersonen Facilities afdeling ', 'Delete Contact Person Facilities Dep.');
DEF_FAC_MESSAGE ('PRS_M191', 'Verwijderen contactpersoon Beveiliging ', 'Delete Contact Person Security');
DEF_FAC_MESSAGE ('PRS_M193', 'Verwijderen Company code ' , 'Delete Company code');
DEF_FAC_MESSAGE ('PRS_M194', 'Er zijn geen afdelingen geselecteerd.' , 'No departments were selected.');
DEF_FAC_MESSAGE ('PRS_M195', 'Er zijn geen Companies geselecteerd.' , 'No Companies were selecterd.');
DEF_FAC_MESSAGE ('PRS_M196', 'Verwijderen niet toegestaan, persoon is personeelsfunctionaris.', 'Delete not allowed, person is Staff Manager.');
DEF_FAC_MESSAGE ('PRS_M197', 'Verwijderen niet toegestaan, persoon is contactpersoon voor afdeling(en).', 'Delete not allowed, person is Contact person for department(s).');
DEF_FAC_MESSAGE ('PRS_M198', 'Verwijderen niet toegestaan, persoon is contactpersoon voor Beveiliging.', 'Delete not allowed, person is Contact person for Security.');
DEF_FAC_MESSAGE ('PRS_M199', 'Verwijderen niet toegestaan, persoon is contactpersoon voor Facilities.' , 'Delete not allowed, person is Contact person for Facilities.');
DEF_FAC_MESSAGE ('PRS_M180', 'Geen Personen gevonden.','No persons found.');
DEF_FAC_MESSAGE ('PRS_M200', 'Afdelingen per contactpersoon', 'Departments per Contact Person');
DEF_FAC_MESSAGE ('PRS_PERSLIDEENHEID_NAAM' ,'Pers.functionaris' , 'Staff Manager');
DEF_FAC_MESSAGE ('PRS_PERSLIDEENHEID_NAMEN' ,'Pers.functionarissen' , 'Staff Managers');
DEF_FAC_MESSAGE ('PRS_PERSLIDAFDELING_NAAM' ,'Contact persoon' , 'Contact Person');
DEF_FAC_MESSAGE ('PRS_PERSLIDAFDELING_NAMEN' ,'Contact personen' , 'Contact Persons');
CREATE_TABLE(prs_eenheid, PRS_BIBLIOTHEEK_PRIVILEGE)
(
prs_eenheid_key
NUMBER(10)
CONSTRAINT prs_k_prs_eenheid_key PRIMARY KEY,
prs_eenheid_code
VARCHAR2(6)
CONSTRAINT prs_c_prs_eenheid_code CHECK(prs_eenheid_code IS NOT NULL),
prs_eenheid_upper
VARCHAR2(6)
CONSTRAINT prs_c_prs_eenheid_upper CHECK(prs_eenheid_upper IS NOT NULL),
prs_eenheid_omschrijving
VARCHAR2(60)
CONSTRAINT prs_c_prs_eenheid_omschr CHECK(prs_eenheid_omschrijving IS NOT NULL),
prs_eenheid_aanmaak
DATE
DEFAULT SYSDATE
CONSTRAINT prs_c_prs_eenheid_aanmaak CHECK(prs_eenheid_aanmaak IS NOT NULL),
prs_eenheid_verwijder
DATE
DEFAULT NULL,
CONSTRAINT prs_u_prs_eenheid_upper UNIQUE(prs_eenheid_upper, prs_eenheid_verwijder)
);
CREATE SEQUENCE prs_s_prs_eenheid_key MINVALUE 1;
DEFINIEER_VIEW_AANWEZIG(prs_eenheid, prs_eenheid_verwijder,
prs_v_aanwezigeenheid,PRS_BIBLIOTHEEK_PRIVILEGE);
ALTER TABLE prs_afdeling
ADD
(
prs_eenheid_key NUMBER(10)
CONSTRAINT prs_r_prs_eenheid_key REFERENCES prs_eenheid(prs_eenheid_key)
);
DEFINIEER_VIEW_AANWEZIG(prs_afdeling,
prs_afdeling_verwijder,
prs_v_aanwezigafdeling,
PRS_NORMAAL_PRIVILEGE);
CREATE_TRIGGER(prs_t_prs_eenheid_B_IU)
BEFORE INSERT OR UPDATE ON prs_eenheid
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_eenheid_key,prs_s_prs_eenheid_key);
UPDATE_UPPER(prs_eenheid_code, prs_eenheid_upper);
CHECK_NOG_REFERENCES(prs_eenheid, prs_eenheid_verwijder, prs_v_aanwezigafdeling,
prs_eenheid_key, 'prs_m179');
UPDATE_AANMAAKDATUM(prs_eenheid, prs_eenheid_aanmaak);
END;
/
#ifdef AKZ
DEF_FAC_MESSAGE ('PRS_C_PRS_EENHEID_CODE' , 'De company code is niet ingevuld.', 'The Company code has not been entered.');
DEF_FAC_MESSAGE ('PRS_C_PRS_EENHEID_UPPER' , 'De company code is niet ingevuld.', 'The Company code has not been entered.');
DEF_FAC_MESSAGE ('PRS_C_PRS_EENHEID_OMSCHR' , 'De naam van de Company is niet ingevuld.', 'The name of the Company has not been entered.');
DEF_FAC_MESSAGE ('PRS_C_PRS_EENHEID_KEY' , 'De Company is niet geselecteerd.', 'The Company is not selected.');
DEF_FAC_MESSAGE ('PRS_R_PRS_EENHEID_KEY' , 'Verwijderen niet toegestaan, er zijn nog afdelingen gekoppeld aan deze Company.','Can not delete, there are still references of departments to this Company.');
#else
DEF_FAC_MESSAGE ('PRS_C_PRS_EENHEID_CODE' , 'De code van de Business Unit is niet ingevuld.', 'Code of the Business Unit has not been entered.');
DEF_FAC_MESSAGE ('PRS_C_PRS_EENHEID_UPPER' , 'De code van de Business Unit is niet ingevuld.', 'Code of the Business Unit has not been entered.');
DEF_FAC_MESSAGE ('PRS_C_PRS_EENHEID_OMSCHR' , 'De naam van de Business Unit is niet ingevuld.', 'The name of the Company has not been entered.');
DEF_FAC_MESSAGE ('PRS_C_PRS_EENHEID_KEY' , 'De Business Unit is niet geselecteerd.' , 'The Company is not selected.');
DEF_FAC_MESSAGE ('PRS_R_PRS_EENHEID_KEY' , 'Verwijderen niet toegestaan, er zijn nog afdelingen gekoppeld aan deze B.Unit.','There are still references of persons or departments to this Business Unit.');
#endif //AKZ
DEF_FAC_MESSAGE ('PRS_U_PRS_EENHEID_UPPER' ,'Het veld ''Code'' is niet uniek.');
CREATE_TRIGGER(prs_t_prs_afdeling_B_IU)
BEFORE INSERT OR UPDATE ON prs_afdeling
FOR EACH ROW
BEGIN
-- LET OP : Deze trigger is ook gedefinieerd in RES !!
UPDATE_PRIMARY_KEY(prs_afdeling_key, prs_s_prs_afdeling_key);
UPDATE_UPPER(prs_afdeling_naam, prs_afdeling_upper);
CHECK_NOG_REFERENCES(prs_perslid, prs_afdeling_verwijder
,prs_v_aanwezigperslid, prs_afdeling_key, 'prs_m015');
UPDATE_AANMAAKDATUM(prs_afdeling, prs_afdeling_aanmaak);
--
-- 6/20/97/AH #1312, De CASCADE-verwijderen van
-- PRS_PERSLIDWERKPLEK verplaatst naar PRS011/Verwijderen. In de trigger een
-- RESTRICTED toegevoegd om evt. fouten te kunnen voorkomen.
--
CHECK_NOG_REFERENCES(prs_perslid, prs_afdeling_verwijder
,prs_v_aanwezigperslidwerkplek, prs_afdeling_key, 'prs_m172');
--
-- Afdeling mag alleen verwijderd worden als deze geen objecten meer in het bezit heeft.
--
DECLARE
dummy VARCHAR2(1);
BEGIN
IF :new.prs_afdeling_verwijder IS NOT NULL
THEN
SELECT 'x'
INTO dummy
FROM ins_deel
WHERE ins_deel_verwijder IS NULL
AND ins_alg_ruimte_type = 'A'
AND ins_alg_ruimte_key = :old.prs_afdeling_key;
APPLICATION_ERROR(-20000,'prs_m173');
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;
WHEN TOO_MANY_ROWS THEN APPLICATION_ERROR(-20000,'prs_m173');
END;
--
-- We blijven veld prs_afdeling_eenheid (voorlopig) redundant gebruiken, anders veel te veel forms aan te passen
--
IF:new.prs_afdeling_verwijder IS NULL
THEN
IF :new.prs_eenheid_key IS NOT NULL
OR :old.prs_eenheid_key <> :new.prs_eenheid_key
THEN
DECLARE
Eenheid prs_afdeling.prs_afdeling_eenheid%TYPE;
BEGIN
SELECT prs_eenheid_code INTO Eenheid
FROM prs_eenheid
WHERE prs_eenheid_key = :new.prs_eenheid_key;
--
:new.prs_afdeling_eenheid := Eenheid;
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;
WHEN TOO_MANY_ROWS THEN NULL;
END;
END IF;
END IF;
END;
/
CREATE_TRIGGER(prs_t_prs_perslid_B_IU)
BEFORE INSERT OR UPDATE ON prs_perslid
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_perslid_key, prs_s_prs_alluitvoerende_keys);
UPDATE_UPPER(prs_perslid_naam, prs_perslid_upper);
UPDATE_UPPER(prs_perslid_initialen, prs_perslid_init_upper);
UPDATE_UPPER(prs_perslid_oslogin, prs_perslid_oslogin);
UPDATE_AANMAAKDATUM(prs_perslid, prs_perslid_aanmaak);
CHECK_NOG_REFERENCES(prs_perslid, prs_perslid_verwijder
,prs_v_aanwezigperslidwerkplek, prs_perslid_key, 'prs_m174');
#ifdef MLD
-- Niet verwijderen als nog MLD_OPDR's zijn met status 'Uitgegeven' en
-- uitvoerende deze PERSLID.
IF :new.prs_perslid_verwijder IS NOT NULLDATUM
THEN
DECLARE
dummy VARCHAR2(1);
BEGIN
SELECT 'X'
INTO dummy
FROM mld_opdr MLD_O
, mld_statusopdr MLD_S
WHERE MLD_O.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND MLD_S.mld_statusopdr_upper = 'MLD_UITGEGEVEN'
AND MLD_O.mld_uitvoerende_keys = :new.prs_perslid_key;
APPLICATION_ERROR(-20000, 'prs_m085');
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;
WHEN TOO_MANY_ROWS THEN APPLICATION_ERROR(-20000, 'prs_m085');
END;
END IF;
#endif // MLD
-- Persoon mag alleen verwijderd worden als deze geen objecten meer in het bezit heeft.
-- Dit geldt alleen voor objecten die 'van de organisatie' zijn, d.i.
-- ins_discipline_min_level <> 3. Deze mocht de gebruiker zelf bijhouden
DECLARE
dummy VARCHAR2(1);
BEGIN
IF :new.prs_perslid_verwijder IS NOT NULL
THEN
SELECT 'x'
INTO dummy
FROM ins_v_aanwezigdeel D, ins_tab_discipline DI
WHERE ins_alg_ruimte_type = 'P'
AND ins_alg_ruimte_key = :old.prs_perslid_key
AND DI.ins_discipline_key = D.ins_discipline_key
AND DI.ins_discipline_min_level <> 3;
APPLICATION_ERROR(-20000,'prs_m175');
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;
WHEN TOO_MANY_ROWS THEN APPLICATION_ERROR(-20000,'prs_m175');
END;
-- Tenslotte: ruim de objecten op, d.i. de objecten die ik zelf mocht beheren, en
-- de objecten die reeds vervallen waren. Ruim ook autorisaties op.
BEGIN
IF :new.prs_perslid_verwijder IS NOT NULL
THEN
DELETE FROM FAC_GEBRUIKERSGROEP WHERE PRS_PERSLID_KEY = :old.prs_perslid_key;
DELETE FROM FAC_GEBRUIKER WHERE FAC_GEBRUIKER_USERNAME = :old.prs_perslid_oslogin;
DELETE FROM INS_DEEL WHERE ins_deel_key IN
(SELECT D.ins_deel_key
FROM ins_deel D, ins_tab_discipline DI
WHERE ins_alg_ruimte_type = 'P'
AND ins_alg_ruimte_key = :old.prs_perslid_key
AND DI.ins_discipline_key = D.ins_discipline_key
AND (DI.ins_discipline_min_level = 3 OR ins_deel_verwijder IS NOT NULL));
END IF;
END;
END;
/
create unique index prs_i_prs_perslid4 on prs_perslid(prs_perslid_oslogin);
#endif // PRS
#ifdef MLD
ALTER TABLE mld_stdmelding
ADD
(
mld_stdmelding_notfrontend
NUMBER(1)
DEFAULT 0
);
#endif // MLD
#ifdef RES
#endif // RES
#ifdef BES
#endif // BES
#ifdef BEZ
ALTER TABLE bez_afspraak
ADD bez_afspraak_eind DATE;
ALTER TABLE bez_bezoekers
ADD bez_bezoekers_done DATE;
#endif // BEZ
#ifdef WEB
#endif // WEB
#ifdef SCH
#endif // SCH
#ifdef FAC
UPDATE FAC_MESSAGE
SET FAC_MESSAGE_TEXT = 'Facilitor 4.22'
WHERE FAC_MESSAGE_CODE = 'FAC_M002';
UPDATE FAC_MESSAGE
SET FAC_MESSAGE_TEXT = 'Welkom bij Facilitor 4.22'
WHERE FAC_MESSAGE_CODE = 'FAC_M035';
DEF_FAC_MESSAGE ('MLD_M239', 'Herk. tekst niet zichtbaar voor Frontend user web','Standardtext not visible for Frontend users web');
#endif // FAC