595 lines
22 KiB
Plaintext
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 |