Files
Database/_UP/413TO420.SRC
Peter Feij 9691307a01 PRS wijzigingen stonden buiten #PRS
svn path=/Database/trunk/; revision=7915
2002-02-22 12:45:06 +00:00

595 lines
22 KiB
Plaintext

SET TERMOUT ON
SET FEEDBACK OFF
SET ECHO OFF
--
-- Update script van Facilitor versie 4.13 naar 4.20
--
/*
* 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.13 naar 04.20
PROMPT
SELECT 'De huidige versie van Facilitor zou moeten zijn 04.13 (evt. 04.20) 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 $413to420.SQL
PROMPT SPOOL $413to420.LST;
UPDMOD(FAC,413to420)
UPDMOD(ALG,413to420)
UPDMOD(PRS,413to420)
UPDMOD(INS,413to420)
UPDMOD(MLD,413to420)
UPDMOD(CAD,413to420)
UPDMOD(AKZ,413to420)
UPDMOD(PRJ,413to420)
UPDMOD(RES,413to420)
UPDMOD(SCH,413to420)
UPDMOD(SLE,413to420)
UPDMOD(WEB,413to420)
UPDATE_VERSION('04.20');
COMMIT;
PROMPT SPOOL OFF;
SPOOL OFF
START $413to420.SQL
#endif // MASTER
/****************************** PLAATS HIERONDER DE UPDATES ******************************/
#ifdef ALG
CREATE OR REPLACE FUNCTION ALG_F_GetRefWaarde (sk_key IN NUMBER, waarde IN VARCHAR2) RETURN VARCHAR2 IS
sResult VARCHAR2(255);
kolomnaam VARCHAR2(50);
kolomtxt VARCHAR2(50);
objectnaam VARCHAR2(50);
tab_key NUMBER(10);
BEGIN
-- Doel is het resultaat van:
-- select [kolomtxt] from [objectnaam] where [kolomnaam]= waarde
-- of
-- select [kolomtxt] from [objectnaam] where [kolomnaam]= waarde and fac_usrtab_key=tab_key
SELECT alg_refkenmerk_kolomnaam,
alg_refkenmerk_kolomtxt,
alg_refkenmerk_objectnaam,
fac_usrtab_key
INTO kolomnaam, kolomtxt,objectnaam, tab_key
FROM alg_REFKENMERK RSK, alg_KENMERK SK
WHERE SK.alg_kenmerk_key=sk_key
AND SK.alg_refkenmerk_key=RSK.alg_refkenmerk_key;
IF tab_key IS NULL THEN
-- select [kolomtxt] into sResult from [objectnaam] where [kolomnaam]=waarde
-- maak een cursor/recordgroup oid voor deze query. Precies 1 rowresultaat
sResult:='Select '||kolomtxt||' from '||objectnaam||' where '||kolomnaam||'='||waarde;
ELSE
-- select [kolomtxt] from [objectnaam] where [kolomnaam]= waarde and fac_usrtab_key=tab_key
sResult:='Select '||kolomtxt||' from '||objectnaam||' where '||kolomnaam||'='||waarde||' and fac_usrtab_key = '||TO_CHAR(tab_key);
END IF;
RETURN sResult;
END;
/
#endif //ALG
#ifdef INS
ALTER TABLE ins_srtdeel MODIFY (ins_srtdeel_omschrijving VARCHAR2(60), ins_srtdeel_upper VARCHAR2(60));
CREATE OR REPLACE FUNCTION INS_F_GetRefWaarde (sk_key IN NUMBER, waarde IN VARCHAR2) RETURN VARCHAR2 IS
sResult VARCHAR2(255);
kolomnaam VARCHAR2(50);
kolomtxt VARCHAR2(50);
objectnaam VARCHAR2(50);
tab_key NUMBER(10);
BEGIN
-- Doel is het resultaat van:
-- select [kolomtxt] from [objectnaam] where [kolomnaam]= waarde
-- of
-- select [kolomtxt] from [objectnaam] where [kolomnaam]= waarde and fac_usrtab_key=tab_key
SELECT ins_refsrtkenmerk_kolomnaam,
ins_refsrtkenmerk_kolomtxt,
ins_refsrtkenmerk_objectnaam,
fac_usrtab_key
INTO kolomnaam, kolomtxt,objectnaam, tab_key
FROM INS_REFSRTKENMERK RSK , INS_SRTKENMERK SK
WHERE SK.ins_srtkenmerk_key=sk_key
AND SK.ins_refsrtkenmerk_key=RSK.ins_refsrtkenmerk_key;
IF tab_key IS NULL THEN
-- select [kolomtxt] into sResult from [objectnaam] where [kolomnaam]= waarde
-- maak een cursor/recordgroup oid voor deze query. Precies 1 row resultaat
sResult:='Select '||kolomtxt||' from '||objectnaam||' where '||kolomnaam||'='||waarde;
ELSE
-- select [kolomtxt] from [objectnaam] where [kolomnaam]= waarde and fac_usrtab_key=tab_key
sResult:='Select '||kolomtxt||' from '||objectnaam||' where '||kolomnaam||'='||waarde||' AND fac_usrtab_key = '||TO_CHAR(tab_key);
END IF;
RETURN sResult;
END;
/
#endif // INS
#ifdef PRS
ALTER TABLE prs_perslid
ADD prs_perslid_wachtwoord VARCHAR2(30);
DEFINIEER_VIEW_AANWEZIG(prs_perslid,
prs_perslid_verwijder,
prs_v_aanwezigperslid,
PRS_NORMAAL_PRIVILEGE) AND prs_perslid_module = 'PRS';
DEFINIEER_VIEW_AANWEZIG(prs_perslid,
prs_perslid_verwijder,
all_v_aanwezigperslid,
PRS_NORMAAL_PRIVILEGE);
CREATE_VIEW(prs_v_perslid_gegevens,PRS_NORMAAL_PRIVILEGE) AS
SELECT PRS_P.prs_perslid_key,
PRS_P.prs_perslid_naam,
PRS_P.prs_perslid_upper,
PRS_P.prs_perslid_voorletters,
PRS_P.prs_perslid_initialen,
PRS_P.prs_perslid_init_upper,
PRS_P.prs_perslid_nr,
PRS_P.prs_perslid_telefoonnr,
PRS_P.prs_perslid_oslogin,
PRS_P.prs_perslid_wachtwoord,
PRS_P.prs_afdeling_key,
PRS_A.prs_afdeling_naam,
PRS_A.prs_afdeling_upper
FROM prs_v_aanwezigperslid PRS_P, prs_v_aanwezigafdeling PRS_A
WHERE PRS_P.prs_afdeling_key = PRS_A.prs_afdeling_key (+);
#endif // PRS
#ifdef MLD
DEF_FAC_MESSAGE ('MLD_M238', 'Verwijderen vakgroep ','Delete Section ');
#endif // MLD
#ifdef RES
DEF_FAC_ENTITY ('RES_PRIJSVAST' , 'Vaste prijs p/e', null, null, 'Fixed price p/u');
DEF_FAC_ENTITY ('RES_ARTIKELSOORT' , 'Artikelsoort', null, null,'Item type');
DEF_FAC_ENTITY ('MENU_RES_ARTIKELSOORT' , 'Artikel'||CHR(38)||'soorten', null, null,'Item types');
DEF_FAC_ENTITY ('RES_SRTARTCODE' , 'Code', null, null, 'Code');
DEF_FAC_ENTITY ('RES_SRTARTOMSCHR' , 'Omschrijving', null, null, 'Description');
DEF_FAC_MESSAGE ('RES_M084','Verwijderen artikelsoort','Delete item type');
DEF_FAC_MESSAGE ('res_u_res_srtartikel_code' , 'De omschrijving van Artikelsoort is niet uniek.' , 'The description of the item type already exists.');
CREATE_TABLE(res_srtartikel, RES_BIBLIOTHEEK_PRIVILEGE)
(
res_srtartikel_key
NUMBER(10)
CONSTRAINT res_k_res_srtartikel_key PRIMARY KEY,
res_srtartikel_code
VARCHAR2(10)
CONSTRAINT res_c_res_srtartikel_code CHECK(res_srtartikel_code IS NOT NULL),
res_srtartikel_code_upper
VARCHAR2(10)
CONSTRAINT res_c_res_srtartikel_upcode CHECK(res_srtartikel_code_upper IS NOT NULL),
res_srtartikel_omschrijving
VARCHAR2(30)
CONSTRAINT res_c_res_srtdeel_omschrijving CHECK(res_srtartikel_omschrijving IS NOT NULL),
res_srtartikel_upper
VARCHAR2(30)
CONSTRAINT res_c_res_srtartikel_upper CHECK(res_srtartikel_upper IS NOT NULL),
res_srtartikel_aanmaak
DATE
DEFAULT SYSDATE
CONSTRAINT res_c_res_srtartikel_aanmaak CHECK(res_srtartikel_aanmaak IS NOT NULL),
res_srtartikel_verwijder
DATE
DEFAULT NULL,
res_srtartikel_volgnr
NUMBER(3),
res_srtartikel_prijs
NUMBER(8,2),
res_srtartikel_eenheid
VARCHAR2(15),
res_srtartikel_dimensie
NUMBER(1),
res_srtartikel_opmaat
NUMBER(1)
DEFAULT 0,
CONSTRAINT res_u_res_srtartikel_code UNIQUE (res_srtartikel_code_upper, res_srtartikel_verwijder)
);
ALTER TABLE RES_ARTIKEL ADD
( res_srtartikel_key
NUMBER(10)
);
INSERT INTO RES_SRTARTIKEL (res_srtartikel_code, res_srtartikel_omschrijving) VALUES
('DIV', 'Diversen');
UPDATE res_artikel
SET res_srtartikel_key = (select res_srtartikel_key from res_srtartikel where res_srtartikel_code_upper='DIV')
WHERE res_srtartikel_key is not null;
ALTER TABLE RES_ARTIKEL ADD
(
CONSTRAINT res_r_artikel_srtartikel_key1 CHECK(res_srtartikel_key IS NOT NULL),
CONSTRAINT res_r_artikel_srtartikel_key2 FOREIGN KEY (res_srtartikel_key) REFERENCES res_srtartikel(res_srtartikel_key)
);
CREATE SEQUENCE res_s_res_srtartikel_key MINVALUE 1;
DEFINIEER_VIEW_AANWEZIG(res_srtartikel, res_srtartikel_verwijder,
res_v_aanwezigsrtartikel,RES_BIBLIOTHEEK_PRIVILEGE);
DEFINIEER_VIEW_AANWEZIG(res_artikel, res_artikel_verwijder,
res_v_aanwezigartikel, RES_NORMAAL_PRIVILEGE);
CREATE_VIEW(res_v_opdrachtartikelen, RES_NORMAAL_PRIVILEGE)
( res_opdracht_key,
res_reservering_key,
res_opdracht_nummer,
res_opdracht_status,
res_artikel_nummer,
res_artikel_omschrijving,
res_artikel_eenheid,
res_artikel_aantal,
res_artikel_subtotaal,
res_object_key,
res_object_type,
res_ruimte_nr,
res_reservering_begin) AS
SELECT RES_OPD.res_opdracht_key,
RES_OPD.res_reservering_key,
TO_CHAR(RES_OPD.res_reservering_key)||'/'||RES_OPD.res_opdracht_volgnr,
RES_OPD.res_opdracht_status,
RES_A.res_artikel_nr,
RES_A.res_artikel_omschrijving,
RES_A.res_artikel_eenheid,
RES_RSVA.res_rsv_artikel_aantal,
RES_RSVA.res_rsv_artikel_aantal * RES_A.res_artikel_prijs,
RES_A.res_artikel_key,
'RES',
RES_RES.res_ruimte_nr,
RES_RSVA.res_rsv_artikel_levering
FROM res_v_aanwezigopdracht RES_OPD, res_v_reservering_gegevens RES_RES,
res_v_aanwezigrsv_artikel RES_RSVA, res_v_aanwezigartikel RES_A
-- ,prs_bedrijf PRS_B
WHERE RES_OPD.prs_bedrijf_key = RES_A.prs_bedrijf_key
AND RES_OPD.res_reservering_key = RES_RES.res_reservering_key
AND RES_RES.res_reservering_key = RES_RSVA.res_reservering_key
AND RES_RSVA.res_artikel_key = RES_A.res_artikel_key
-- AND RES_A.prs_bedrijf_key = PRS_B.prs_bedrijf_key
UNION
SELECT RES_OPD.res_opdracht_key,
RES_OPD.res_reservering_key,
TO_CHAR(RES_OPD.res_reservering_key)||'/'||RES_OPD.res_opdracht_volgnr,
RES_OPD.res_opdracht_status,
RES_A.res_artikel_nr,
RES_A.res_artikel_omschrijving,
RES_A.res_artikel_eenheid,
RES_RSVA.res_rsv_artikel_aantal,
RES_RSVA.res_rsv_artikel_aantal * RES_A.res_artikel_prijs,
RES_A.res_artikel_key,
'RES',
RES_RES.res_ruimte_nr,
RES_RSVA.res_rsv_artikel_levering
FROM res_v_aanwezigopdracht RES_OPD, res_v_reservering_gegevens RES_RES,
res_v_aanwezigrsv_artikel RES_RSVA, res_v_aanwezigartikel RES_A
-- ,prs_afdeling PRS_A
WHERE RES_OPD.prs_afdeling_key = RES_A.prs_afdeling_key
AND RES_OPD.res_reservering_key = RES_RES.res_reservering_key
AND RES_RES.res_reservering_key = RES_RSVA.res_reservering_key
AND RES_RSVA.res_artikel_key = RES_A.res_artikel_key
-- AND RES_A.prs_afdeling_key = PRS_A.prs_afdeling_key
UNION
SELECT RES_OPD.res_opdracht_key,
RES_OPD.res_reservering_key,
TO_CHAR(RES_OPD.res_reservering_key)||'/'||RES_OPD.res_opdracht_volgnr,
RES_OPD.res_opdracht_status,
INS_D.ins_deel_omschrijving,
INS_S.ins_srtdeel_omschrijving,
RES_D.res_deel_eenheid,
RES_RSVD.res_rsv_deel_aantal,
RES_RSVD.res_rsv_deel_aantal * RES_D.res_deel_prijs,
INS_D.ins_deel_key,
'INS',
RES_RES.res_ruimte_nr,
RES_RES.res_reservering_van
FROM res_v_aanwezigopdracht RES_OPD, res_v_reservering_gegevens RES_RES,
res_v_aanwezigrsv_deel RES_RSVD, res_v_aanwezigdeel RES_D,
ins_deel INS_D, ins_srtdeel INS_S
WHERE RES_OPD.res_reservering_key = RES_RES.res_reservering_key
AND RES_RES.res_reservering_key = RES_RSVD.res_reservering_key
AND RES_RSVD.res_deel_key = RES_D.res_deel_key
AND RES_D.res_ins_deel_key = INS_D.ins_deel_key
AND INS_D.ins_srtdeel_key = INS_S.ins_srtdeel_key
AND INS_D.ins_discipline_key = RES_OPD.ins_discipline_key
UNION
SELECT RES_OPD.res_opdracht_key,
RES_OPD.res_reservering_key,
TO_CHAR(RES_OPD.res_reservering_key)||'/'||RES_OPD.res_opdracht_volgnr,
RES_OPD.res_opdracht_status,
NULL,
RES_OP.res_opstelling_omschrijving,
NULL,
TO_NUMBER(NULL),
TO_NUMBER(NULL),
RES_OP.res_opstelling_key,
'OPS',
RES_RES.res_ruimte_nr,
RES_RES.res_reservering_van
FROM res_v_aanwezigopdracht RES_OPD, res_v_reservering_gegevens RES_RES,
res_v_aanwezigopstelling RES_OP, res_v_aanwezigruimte RES_R
WHERE RES_OPD.res_reservering_key = RES_RES.res_reservering_key
AND RES_OPD.prs_bedrijf_key IS NULL
AND RES_OPD.prs_afdeling_key IS NULL
AND RES_OPD.ins_discipline_key IS NULL
AND RES_R.res_ruimte_key = RES_RES.res_ruimte_key
AND RES_OP.res_opstelling_key = RES_RES.res_opstelling_key;
CREATE_VIEW(res_v_artikelgegevens,RES_BIBLIOTHEEK_PRIVILEGE)
(res_artikel_key,
res_artikel_nr,
res_artikel_omschrijving,
res_artikel_eenheid,
res_artikel_prijs,
prs_bedrijf_key,
prs_bedrijf_naam,
prs_afdeling_key,
prs_afdeling_naam,
res_srtartikel_key,
res_srtartikel_code) AS
SELECT RA.res_artikel_key,
RA.res_artikel_nr,
RA.res_artikel_omschrijving,
RA.res_artikel_eenheid,
RA.res_artikel_prijs,
PB.prs_bedrijf_key,
PB.prs_bedrijf_naam,
TO_NUMBER(NULL),
NULL,
RS.res_srtartikel_key,
RS.res_srtartikel_code||' - '||RS.res_srtartikel_omschrijving
FROM res_v_aanwezigartikel RA, res_v_aanwezigsrtartikel RS,
prs_v_aanwezigbedrijf PB
WHERE RA.res_srtartikel_key = RS.res_srtartikel_key (+)
AND RA.prs_bedrijf_key = PB.prs_bedrijf_key
AND RA.prs_bedrijf_key IN
(SELECT res_backoffice_key FROM ALL_v_aanwezigbackoffice
WHERE res_backoffice_soort = 'B')
UNION
SELECT RA.res_artikel_key,
RA.res_artikel_nr,
RA.res_artikel_omschrijving,
RA.res_artikel_eenheid,
RA.res_artikel_prijs,
TO_NUMBER(NULL),
NULL,
PA.prs_afdeling_key,
PA.prs_afdeling_naam,
RS.res_srtartikel_key,
RS.res_srtartikel_code||' - '||RS.res_srtartikel_omschrijving
FROM res_v_aanwezigartikel RA, res_v_aanwezigsrtartikel RS,
prs_v_aanwezigafdeling PA
WHERE RA.res_srtartikel_key = RS.res_srtartikel_key (+)
AND RA.prs_afdeling_key = PA.prs_afdeling_key
AND RA.prs_afdeling_key IN
(SELECT res_backoffice_key FROM ALL_v_aanwezigbackoffice
WHERE res_backoffice_soort = 'A');
SPOOL OFF
SET TERMOUT OFF
SET HEADING OFF
SET FEEDBACK OFF
SET ECHO OFF
SET VERIFY OFF
SET LINESIZE 110
SPOOL $RESGRTS.SQL
PROMPT SPOOL $RESgrts.lst
PROMPT SET ECHO OFF
SELECT 'CREATE ROLE '||USER||'_'||'RES'||'_SMALL_ROLE;' FROM dual;
SELECT 'CREATE ROLE '||USER||'_'||'RES'||'_FULL_ROLE;' FROM dual;
SELECT 'CREATE ROLE '||USER||'_'||'RES'||'_ARCHIVE_ROLE;' FROM dual;
SELECT 'GRANT '||USER||'_'||'RES'||'_SMALL_ROLE TO '||USER||'_'||'RES'||'_FULL_ROLE;' FROM dual;
SELECT 'GRANT '||USER||'_'||'RES'||'_FULL_ROLE TO '||USER||'_'||'RES'||'_ARCHIVE_ROLE;' FROM dual;
SELECT 'GRANT select ON ' || UT.table_name ||' TO '||USER||'_'||'RES'||'_SMALL_ROLE;' FROM user_tables UT, fac_privilege FP WHERE UT.table_name = UPPER(FP.object_name) AND FP.security_level IN (70+1,70+2,70+3) ORDER BY UT.table_name;
SELECT 'GRANT insert,delete,update ON ' || UT.table_name ||' TO '||USER||'_'||'RES'||'_SMALL_ROLE;' FROM user_tables UT, fac_privilege FP WHERE UT.table_name = UPPER(FP.object_name) AND FP.security_level = 70+1 ORDER BY UT.table_name;
SELECT 'GRANT insert,delete,update ON ' || UT.table_name ||' TO '||USER||'_'||'RES'||'_FULL_ROLE;' FROM user_tables UT, fac_privilege FP WHERE UT.table_name = UPPER(FP.object_name) AND FP.security_level = 70+2 ORDER BY UT.table_name;
SELECT 'GRANT insert,delete,update ON ' || UT.table_name ||' TO '||USER||'_'||'RES'||'_ARCHIVE_ROLE;' FROM user_tables UT, fac_privilege FP WHERE UT.table_name = UPPER(FP.object_name) AND FP.security_level = 70+3 ORDER BY UT.table_name;
SELECT 'GRANT select /*,insert,delete,update*/ ON ' || UV.view_name ||' TO '||USER||'_'||'RES'||'_SMALL_ROLE;' FROM user_views UV, fac_privilege FP WHERE UV.view_name = UPPER(FP.object_name) AND FP.security_level IN (70+1,70+2,70+3) ORDER BY UV.view_name;
SELECT 'UPDATE fac_module SET fac_module_extern=1 WHERE fac_module_name='''||'RES'||''';' FROM dual;
PROMPT commit;
SELECT 'GRANT execute ON RES TO '||USER||'_RES_SMALL_ROLE;'
FROM dual;
SELECT 'GRANT all ON ' || USEQ.sequence_name ||' TO '||USER||'_ALG_SMALL_ROLE;'
FROM user_sequences USEQ;
PROMPT SPOOL OFF
SPOOL OFF
START $RESGRTS.sql
SET TERMOUT ON
COMMIT;
-- En eigenlijk ook nog de synoniem voor alle secundaire users incl. FCLTWEB
create index res_i_res_srtartikel on res_srtartikel(res_srtartikel_omschrijving);
create index res_i_res_artikel3 on res_artikel(res_artikel_key, res_srtartikel_key);
CREATE_TRIGGER(res_t_res_srtartikel_B_IU)
BEFORE INSERT OR UPDATE ON res_srtartikel
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(res_srtartikel_key, res_s_res_srtartikel_key);
UPDATE_UPPER(res_srtartikel_omschrijving, res_srtartikel_upper);
UPDATE_UPPER(res_srtartikel_code, res_srtartikel_code_upper);
DECLARE dummy CHAR; BEGIN
IF :new.res_srtartikel_verwijder IS NOT NULL THEN SELECT 'x' INTO dummy FROM res_artikel WHERE res_artikel.res_srtartikel_key = :old.res_srtartikel_key AND res_artikel.res_artikel_verwijder IS NULL;
raise_application_error(-20000,'ins_m013');
END IF; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; WHEN TOO_MANY_ROWS THEN raise_application_error(-20000,'ins_m013'); END;
UPDATE_AANMAAKDATUM(res_srtartikel,res_srtartikel_aanmaak);
END;
/
#endif // RES
#ifdef WEB
CREATE_VIEW (FAC_V_WEBFUNCTIE_DISCIPLINE, FAC_NORMAAL_PRIVILEGE) AS
SELECT * FROM FAC_V_FUNCTIE_DISCIPLINE FD
WHERE (FD.fac_functie_discipline_type <>'F'
AND FD.fac_functie_discipline_key IN (SELECT ins_discipline_key
FROM all_v_aanwezigdiscipline))
OR (FD.fac_functie_discipline_type IN ('A', 'B', 'C'))
OR (FD.fac_functie_discipline_type ='F' AND FD.fac_functie_discipline_module='WEB');
CREATE OR REPLACE FUNCTION FUNC_HAS_NEW_MESSAGES(perslidKey in number) RETURN INTEGER AS
temp NUMBER;
CURSOR query(persKey NUMBER)
IS SELECT m.WEB_USER_MESSAGE_KEY FROM WEB_USER_MESSAGES m
WHERE m.PRS_PERSLID_KEY_RECEIVER = persKey
AND m.WEB_USER_MESS_ACTION_STATUS = '1';
BEGIN
OPEN query(perslidKey);
FETCH query INTO temp;
IF query%FOUND = TRUE THEN
RETURN 1;
END IF;
RETURN 0;
END;
/
/* These functions were originally not authorized. */
DEF_FAC_FUNCTIE('WEB_PRSOBJ', 'Persoonlijk:Bezittingen', 'WEB', 1);
DEF_FAC_FUNCTIE('WEB_PROFIL', 'Persoonlijk:Profiel', 'WEB', 1);
DEF_FAC_FUNCTIE('WEB_PHONEB', 'Business:Telefoonboek', 'WEB', 1);
/* So authorize all existing users for this */
INSERT INTO fac_gebruiker (fac_gebruiker_username,
fac_gebruiker_module,
fac_functie_key,
fac_gebruiker_soort)
SELECT distinct(fac_gebruiker_username),F.fac_functie_module, F.fac_functie_key, '1'
FROM fac_functie F, fac_gebruiker G
WHERE F.fac_functie_code in ('WEB_PRSOBJ','WEB_PROFIL','WEB_PHONEB');
#endif // WEB
#ifdef SCH
#endif // SCH
#ifdef FAC
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'),
ins_discipline_module,
ins_discipline_omschrijving,
ins_discipline_min_level
FROM ins_tab_discipline
WHERE ins_discipline_verwijder is NULL;
UPDATE FAC_MESSAGE
SET FAC_MESSAGE_TEXT = 'Facilitor 4.20'
WHERE FAC_MESSAGE_CODE = 'FAC_M002';
UPDATE FAC_MESSAGE
SET FAC_MESSAGE_TEXT = 'Welkom bij Facilitor 4.20'
WHERE FAC_MESSAGE_CODE = 'FAC_M035';
#endif // FAC