1495 lines
58 KiB
Plaintext
1495 lines
58 KiB
Plaintext
SET TERMOUT ON
|
|
SET FEEDBACK OFF
|
|
SET ECHO OFF
|
|
--
|
|
-- Update script van Facilitor versie 4.24 naar 4.25
|
|
--
|
|
/*
|
|
* 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.
|
|
*/
|
|
/* !!BELANGRIJK!!
|
|
* Als er bij de upgrade een NIEUWE tabel of view wordt gecreeerd, moeten ook
|
|
* de daarvoor benodigde GRANTS en SYNONYMS worden geregeld!!!
|
|
* Dit doen we in de $..after.sql, die ook hier wordt gegenereerd.
|
|
*/
|
|
#ifdef MASTER
|
|
SPOOL OFF
|
|
SET HEADING OFF
|
|
CLEAR SCREEN
|
|
|
|
PROMPT ***********************************************************************
|
|
PROMPT
|
|
PROMPT UPGRADE SCRIPT van Facilitor versie 04.24 naar 4.25
|
|
PROMPT
|
|
SELECT 'De huidige versie van Facilitor zou moeten zijn 04.24 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 $424to425.SQL
|
|
PROMPT SET ECHO ON
|
|
PROMPT SPOOL $424to425.LST;
|
|
|
|
UPDMOD(FAC,424to425)
|
|
UPDMOD(ALG,424to425)
|
|
UPDMOD(PRS,424to425)
|
|
UPDMOD(INS,424to425)
|
|
UPDMOD(MLD,424to425)
|
|
UPDMOD(CAD,424to425)
|
|
UPDMOD(AKZ,424to425)
|
|
UPDMOD(PRJ,424to425)
|
|
UPDMOD(RES,424to425)
|
|
UPDMOD(BES,424to425)
|
|
UPDMOD(BEZ,424to425)
|
|
UPDMOD(SCH,424to425)
|
|
UPDMOD(SLE,424to425)
|
|
UPDMOD(CNT,424to425)
|
|
UPDMOD(WEB,424to425)
|
|
UPDMOD(PRA,424to425)
|
|
|
|
UPDATE_VERSION('04.25');
|
|
COMMIT;
|
|
|
|
PROMPT SPOOL OFF;
|
|
PROMPT START $424to425after.SQL
|
|
SPOOL OFF
|
|
|
|
SPOOL $424to425after.sql
|
|
PROMPT SET ECHO ON
|
|
PROMPT SPOOL $424to425after.lst
|
|
-- Geef execute rechten aan de laagste role voor alle stored packages, procedures etc.
|
|
-- Bedoeld voor de nieuwe, maar is niet erg voor de oude.
|
|
SELECT DISTINCT 'GRANT execute ON ' || US.name ||' TO '||USER||'_ALG_SMALL_ROLE;'
|
|
FROM user_source US;
|
|
|
|
-- Geef alle rechten aan de laagste role voor alle sequences
|
|
-- Bedoeld voor de nieuwe, maar is niet erg voor de oude.
|
|
SELECT 'GRANT all ON ' || USEQ.sequence_name ||' TO '||USER||'_ALG_SMALL_ROLE;'
|
|
FROM user_sequences USEQ;
|
|
|
|
/* ADD SYNONYMS ROUTINE HERE FOR ALL SECONDARY USERS */
|
|
PROMPT SPOOL OFF
|
|
SPOOL OFF
|
|
START $424to425.SQL
|
|
SET ECHO OFF
|
|
PROMPT De upgrade is gereed.. Controleer de LST-files.
|
|
#endif // MASTER
|
|
|
|
/****************************** PLAATS HIERONDER DE UPDATES ******************************/
|
|
|
|
#ifdef ALG
|
|
|
|
#endif //ALG
|
|
|
|
#ifdef INS
|
|
|
|
#endif //INS
|
|
|
|
#ifdef FAC
|
|
|
|
UPDATE FAC_MESSAGE
|
|
SET FAC_MESSAGE_TEXT = 'Facilitor 4.25'
|
|
WHERE FAC_MESSAGE_CODE = 'FAC_M002';
|
|
|
|
UPDATE FAC_MESSAGE
|
|
SET FAC_MESSAGE_TEXT = 'Welkom bij Facilitor 4.25'
|
|
WHERE FAC_MESSAGE_CODE = 'FAC_M035';
|
|
|
|
#endif //FAC
|
|
|
|
#ifdef PRS
|
|
CREATE_VIEW (prs_v_perslid_print,PRS_NORMAAL_PRIVILEGE) AS
|
|
SELECT PRS_P.prs_perslid_key
|
|
,PRS_P.prs_perslid_naam
|
|
,PRS_P.prs_perslid_voorletters
|
|
,PRS_P.prs_perslid_voornaam
|
|
,PRS_P.prs_perslid_initialen
|
|
,PRS_P.prs_perslid_nr
|
|
,PRS_A.prs_afdeling_naam
|
|
,PRS_P.prs_perslid_telefoonnr
|
|
,PRS_SP.prs_srtperslid_omschrijving
|
|
,PRS_E.prs_eenheid_code prs_afdeling_eenheid
|
|
,PRS_A.prs_afdeling_kostenplaats
|
|
FROM prs_v_aanwezigperslid PRS_P
|
|
,prs_v_aanwezigafdeling PRS_A
|
|
,prs_v_aanwezigsrtperslid PRS_SP
|
|
,prs_eenheid PRS_E
|
|
WHERE PRS_P.prs_afdeling_key = PRS_A.prs_afdeling_key (+)
|
|
AND PRS_A.prs_eenheid_key=PRS_E.prs_eenheid_key (+)
|
|
AND PRS_SP.prs_srtperslid_key(+) = PRS_P.prs_srtperslid_key;
|
|
|
|
#endif //PRS
|
|
|
|
#ifdef MLD
|
|
|
|
CREATE_VIEW(mld_v_melding_status_gegevens,MLD_NORMAAL_PRIVILEGE) AS
|
|
SELECT M.mld_melding_key,
|
|
M.mld_melding_status,
|
|
S.mld_statuses_omschrijving,
|
|
DECODE(mld_melding_status,
|
|
1,mld_melding_afgewezen,
|
|
2,mld_melding_datum,
|
|
3,mld_melding_ingezien,
|
|
4,mld_melding_geaccepteerd,
|
|
5,mld_melding_afgemeld,
|
|
6,mld_melding_verwerkt,
|
|
7,mld_melding_geaccepteerd,
|
|
NULL) mld_melding_lastdate,
|
|
M.mld_melding_datum,
|
|
'['||MD.ins_discipline_omschrijving||'/'||SM.mld_stdmelding_omschrijving||'] '||m.mld_melding_omschrijving mld_melding_omschrijving,
|
|
AF.prs_afdeling_key,AF.prs_afdeling_omschrijving,
|
|
P.prs_perslid_key,P.prs_perslid_naam,
|
|
M.mld_alg_onroerendgoed_keys,
|
|
L.alg_locatie_code||
|
|
DECODE(G.alg_gebouw_code,NULL,'','-'||G.alg_gebouw_code)||
|
|
DECODE(G.alg_verdieping_volgnr,NULL,'','-'||G.alg_verdieping_volgnr)||
|
|
DECODE(G.alg_ruimte_nr,NULL,'','-'||G.alg_ruimte_nr)||
|
|
DECODE(G.alg_terreinsector_code,NULL,'','-'||G.alg_terreinsector_code) alg_plaats_omschrijving,
|
|
M.mld_stdmelding_key,
|
|
E.prs_eenheid_upper,
|
|
AF.prs_eenheid_key,
|
|
M.mld_alg_locatie_key,
|
|
M.mld_melding_melder_naam,
|
|
AF.prs_afdeling_kostenplaats,
|
|
M.mld_ins_discipline_key,
|
|
P.prs_perslid_upper,
|
|
AF.prs_afdeling_upper,
|
|
M.mld_melding_username,
|
|
G.alg_gebouw_key,
|
|
G.alg_verdieping_key,
|
|
G.alg_ruimte_key,
|
|
P.prs_perslid_voorletters,
|
|
P.prs_perslid_voornaam
|
|
FROM mld_melding M,
|
|
mld_statuses S,
|
|
mld_discipline MD,
|
|
mld_stdmelding SM,
|
|
prs_afdeling AF,
|
|
prs_perslid P,
|
|
prs_eenheid E,
|
|
alg_v_allonrgoed_gegevens G,
|
|
alg_locatie L
|
|
WHERE M.mld_melding_status=S.mld_statuses_key
|
|
AND M.mld_ins_discipline_key=MD.ins_discipline_key
|
|
AND M.mld_stdmelding_key=SM.mld_stdmelding_key
|
|
AND M.prs_afdeling_key=AF.prs_afdeling_key (+)
|
|
AND M.prs_perslid_key=P.prs_perslid_key (+)
|
|
AND AF.prs_eenheid_key=E.prs_eenheid_key (+)
|
|
AND M.mld_alg_locatie_key=L.alg_locatie_key (+)
|
|
AND M.mld_alg_onroerendgoed_keys=G.alg_onroerendgoed_keys (+)
|
|
;
|
|
|
|
CREATE_TABLE(mld_refsrtkenmerk, MLD_BIBLIOTHEEK_PRIVILEGE)
|
|
( mld_refsrtkenmerk_key
|
|
NUMBER(10)
|
|
, mld_refsrtkenmerk_omschrijving
|
|
VARCHAR2(50)
|
|
, mld_refsrtkenmerk_upper
|
|
VARCHAR2(50)
|
|
, mld_refsrtkenmerk_objectnaam
|
|
VARCHAR2(30)
|
|
, mld_refsrtkenmerk_kolomnaam
|
|
VARCHAR2(30)
|
|
, mld_refsrtkenmerk_kolomtxt
|
|
VARCHAR2(30)
|
|
, fac_usrtab_key
|
|
NUMBER(10)
|
|
, mld_refsrtkenmerk_aanmaak
|
|
DATE
|
|
DEFAULT SYSDATE
|
|
, mld_refsrtkenmerk_verwijder
|
|
DATE
|
|
DEFAULT NULLDATUM
|
|
, CONSTRAINT mld_k_mld_refsrtkenmerk_key PRIMARY KEY(mld_refsrtkenmerk_key)
|
|
, CONSTRAINT mld_c_mld_refsrtkenmerk_omschr CHECK(mld_refsrtkenmerk_omschrijving IS NOT NULL)
|
|
, CONSTRAINT mld_c_mld_refsrtkenmerk_upper CHECK(mld_refsrtkenmerk_upper IS NOT NULL)
|
|
, CONSTRAINT mld_u_mld_refsrtkenmerk_upper UNIQUE(mld_refsrtkenmerk_upper)
|
|
, CONSTRAINT mld_c_mld_refsrtkenm_objnaam CHECK(mld_refsrtkenmerk_objectnaam IS NOT NULL)
|
|
, CONSTRAINT mld_c_mld_refsrtkenm_kolnaam CHECK(mld_refsrtkenmerk_kolomnaam IS NOT NULL)
|
|
, CONSTRAINT mld_c_mld_refsrtkenm_kolomtxt CHECK(mld_refsrtkenmerk_kolomtxt IS NOT NULL)
|
|
, CONSTRAINT mld_r_fac_usrtab_key1 FOREIGN KEY(fac_usrtab_key) REFERENCES fac_usrtab(fac_usrtab_key)
|
|
, CONSTRAINT mld_c_mld_refsrtkenmerk_aanm CHECK(mld_refsrtkenmerk_aanmaak IS NOT NULL)
|
|
);
|
|
|
|
CREATE_TABLE(mld_srtkenmerk, MLD_BIBLIOTHEEK_PRIVILEGE)
|
|
( mld_srtkenmerk_key
|
|
NUMBER(10)
|
|
, mld_srtkenmerk_omschrijving
|
|
VARCHAR2(50)
|
|
, mld_srtkenmerk_upper
|
|
VARCHAR2(50)
|
|
, mld_srtkenmerk_dimensie
|
|
VARCHAR2(10)
|
|
, mld_srtkenmerk_kenmerktype
|
|
VARCHAR2(1)
|
|
, mld_srtkenmerk_systeem
|
|
NUMBER(1)
|
|
, mld_srtkenmerk_lengte
|
|
NUMBER(3)
|
|
, mld_srtkenmerk_dec
|
|
NUMBER(3)
|
|
, mld_srtkenmerk_nmin
|
|
NUMBER(10)
|
|
, mld_srtkenmerk_nmax
|
|
NUMBER(10)
|
|
, mld_refsrtkenmerk_key
|
|
NUMBER(10)
|
|
, mld_srtkenmerk_aanmaak
|
|
DATE
|
|
DEFAULT SYSDATE
|
|
, mld_srtkenmerk_verwijder
|
|
DATE
|
|
DEFAULT NULLDATUM
|
|
, CONSTRAINT mld_k_mld_srtkenmerk_key PRIMARY KEY(mld_srtkenmerk_key)
|
|
, CONSTRAINT mld_c_mld_srtkenmerk_omschr CHECK(mld_srtkenmerk_omschrijving IS NOT NULL)
|
|
, CONSTRAINT mld_srtkenmerk_omschrijving CHECK(mld_srtkenmerk_omschrijving IS NOT NULL)
|
|
, CONSTRAINT mld_u_mld_srtkenmerk_upper UNIQUE(mld_srtkenmerk_upper)
|
|
, CONSTRAINT mld_c_mld_srtkenmerk_kenmtype CHECK(mld_srtkenmerk_kenmerktype IN ('C','N','D','R','X'))
|
|
, CONSTRAINT mld_c_mld_srtkenmerk_systeem CHECK(mld_srtkenmerk_systeem IS NULL
|
|
OR mld_srtkenmerk_systeem = 1)
|
|
, CONSTRAINT mld_c_mld_srtkenmerk_lengte CHECK(mld_srtkenmerk_lengte >= 1
|
|
AND mld_srtkenmerk_lengte <= 255)
|
|
, CONSTRAINT mld_c_mld_srtkenmerk_max_min CHECK(mld_srtkenmerk_nmax >= mld_srtkenmerk_nmin)
|
|
, CONSTRAINT mld_r_mld_refsrtkenmerk_key2 CHECK(mld_srtkenmerk_kenmerktype <> 'R'
|
|
OR mld_refsrtkenmerk_key IS NOT NULL)
|
|
, CONSTRAINT mld_c_mld_srtkenmerk_dec CHECK(mld_srtkenmerk_dec >= 0
|
|
AND mld_srtkenmerk_dec <= mld_srtkenmerk_lengte)
|
|
, CONSTRAINT mld_c_mld_srtkenmerk_aanm CHECK(mld_srtkenmerk_aanmaak IS NOT NULL)
|
|
, CONSTRAINT mld_r_mld_refsrtkenmerk_key1 FOREIGN KEY(mld_refsrtkenmerk_key)
|
|
REFERENCES mld_refsrtkenmerk(mld_refsrtkenmerk_key)
|
|
);
|
|
|
|
CREATE_TABLE(mld_kenmerk, MLD_BIBLIOTHEEK_PRIVILEGE)
|
|
( mld_kenmerk_key
|
|
NUMBER(10)
|
|
, mld_srtkenmerk_key
|
|
NUMBER(10)
|
|
, mld_stdmelding_key
|
|
NUMBER(10)
|
|
, mld_kenmerk_niveau
|
|
VARCHAR2(1)
|
|
, mld_kenmerk_verplicht
|
|
NUMBER(1)
|
|
, mld_kenmerk_toonbaar
|
|
NUMBER(1)
|
|
, mld_kenmerk_volgnummer
|
|
NUMBER(3)
|
|
, mld_kenmerk_locatiekolom
|
|
VARCHAR2(30)
|
|
, mld_kenmerk_uniek
|
|
NUMBER(1)
|
|
, mld_kenmerk_aanmaak
|
|
DATE
|
|
DEFAULT SYSDATE
|
|
, mld_kenmerk_verwijder
|
|
DATE
|
|
DEFAULT NULLDATUM
|
|
, CONSTRAINT mld_k_mld_kenmerk_key PRIMARY KEY(mld_kenmerk_key)
|
|
, CONSTRAINT mld_r_mld_srtkenmerk_key1 CHECK(mld_srtkenmerk_key IS NOT NULL)
|
|
, CONSTRAINT mld_r_mld_srtkenmerk_key2 FOREIGN KEY(mld_srtkenmerk_key) REFERENCES mld_srtkenmerk(mld_srtkenmerk_key)
|
|
, CONSTRAINT mld_c_mld_kenmerk_niveau1 CHECK(mld_kenmerk_niveau IS NOT NULL)
|
|
, CONSTRAINT mld_c_mld_kenmerk_niveau2 CHECK(mld_kenmerk_niveau IN ('D','S'))
|
|
, CONSTRAINT mld_c_mld_kenmerk_verplicht CHECK(mld_kenmerk_verplicht IS NULL
|
|
OR mld_kenmerk_verplicht = 1)
|
|
, CONSTRAINT mld_c_mld_kenmerk_toonbaar CHECK(mld_kenmerk_toonbaar IS NULL
|
|
OR mld_kenmerk_toonbaar = 1)
|
|
, CONSTRAINT mld_c_mld_kenmerk_aanmaak CHECK(mld_kenmerk_aanmaak IS NOT NULL)
|
|
, CONSTRAINT mld_u_mld_kenmerk UNIQUE(mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau)
|
|
);
|
|
|
|
CREATE_TABLE(mld_kenmerkmelding, MLD_NORMAAL_PRIVILEGE)
|
|
( mld_kenmerkmelding_key
|
|
NUMBER(10)
|
|
, mld_melding_key
|
|
NUMBER(10)
|
|
, mld_kenmerk_key
|
|
NUMBER(10)
|
|
, mld_kenmerkmelding_waarde
|
|
VARCHAR2(255)
|
|
, mld_kenmerkmelding_aanmaak
|
|
DATE
|
|
DEFAULT SYSDATE
|
|
, mld_kenmerkmelding_verwijder
|
|
DATE
|
|
DEFAULT NULLDATUM
|
|
, CONSTRAINT mld_k_mld_kenmerkmelding_key PRIMARY KEY(mld_kenmerkmelding_key)
|
|
, CONSTRAINT mld_r_mld_kenmerk_melding_key1 CHECK(mld_melding_key IS NOT NULL)
|
|
, CONSTRAINT mld_r_mld_kenmerk_key1 CHECK(mld_kenmerk_key IS NOT NULL)
|
|
, CONSTRAINT mld_r_mld_kenmerk_key2 FOREIGN KEY(mld_kenmerk_key) REFERENCES mld_kenmerk(mld_kenmerk_key)
|
|
, CONSTRAINT mld_c_mld_kenmerkmelding_aanm CHECK(mld_kenmerkmelding_aanmaak IS NOT NULL)
|
|
, CONSTRAINT mld_u_mld_kenmerkmelding UNIQUE(mld_kenmerk_key, mld_melding_key, mld_kenmerkmelding_verwijder)
|
|
);
|
|
|
|
DEFINIEER_VIEW_AANWEZIG(mld_kenmerkmelding, mld_kenmerkmelding_verwijder,
|
|
mld_v_aanwezigkenmerkmelding, MLD_NORMAAL_PRIVILEGE);
|
|
|
|
DEFINIEER_VIEW_AANWEZIG(mld_refsrtkenmerk, mld_refsrtkenmerk_verwijder,
|
|
mld_v_aanwezigrefsrtkenmerk,MLD_NORMAAL_PRIVILEGE);
|
|
|
|
CREATE_VIEW(mld_v_srtkenmerk_gegevens, MLD_BIBLIOTHEEK_PRIVILEGE)
|
|
AS SELECT MLD_SK.mld_srtkenmerk_key
|
|
, MLD_SK.mld_srtkenmerk_omschrijving
|
|
, MLD_SK.mld_srtkenmerk_dimensie
|
|
, MLD_SK.mld_srtkenmerk_kenmerktype
|
|
, MLD_SK.mld_srtkenmerk_systeem
|
|
, MLD_SK.mld_srtkenmerk_lengte
|
|
, MLD_SK.mld_srtkenmerk_dec
|
|
, MLD_SK.mld_srtkenmerk_nmin
|
|
, MLD_SK.mld_srtkenmerk_nmax
|
|
, MLD_SK.mld_refsrtkenmerk_key
|
|
, MLD_RSK.mld_refsrtkenmerk_omschrijving
|
|
FROM mld_srtkenmerk MLD_SK
|
|
, mld_refsrtkenmerk MLD_RSK
|
|
WHERE MLD_SK.mld_refsrtkenmerk_key = MLD_RSK.mld_refsrtkenmerk_key (+)
|
|
;
|
|
|
|
CREATE_VIEW(mld_v_stdmelding_kenmerk, MLD_BIBLIOTHEEK_PRIVILEGE)
|
|
( mld_kenmerk_key
|
|
, mld_srtkenmerk_key
|
|
, mld_stdmelding_key
|
|
, mld_kenmerk_niveau
|
|
, mld_kenmerk_verplicht
|
|
, mld_kenmerk_toonbaar
|
|
, mld_kenmerk_uniek
|
|
, mld_kenmerk_locatiekolom
|
|
, mld_kenmerk_volgnummer
|
|
, mld_srtkenmerk_omschrijving
|
|
, mld_srtkenmerk_dimensie
|
|
, mld_srtkenmerk_kenmerktype
|
|
, mld_srtkenmerk_lengte
|
|
, mld_srtkenmerk_dec
|
|
, mld_srtkenmerk_nmin
|
|
, mld_srtkenmerk_nmax
|
|
, mld_refsrtkenmerk_key
|
|
, mld_stdmelding_omschrijving
|
|
, mld_stdmelding_upper
|
|
, mld_discipline_key
|
|
, mld_discipline_omschrijving
|
|
)
|
|
AS SELECT MLD_K.mld_kenmerk_key
|
|
, MLD_K.mld_srtkenmerk_key
|
|
, MLD_K.mld_stdmelding_key
|
|
, MLD_K.mld_kenmerk_niveau
|
|
, MLD_K.mld_kenmerk_verplicht
|
|
, MLD_K.mld_kenmerk_toonbaar
|
|
, MLD_K.mld_kenmerk_uniek
|
|
, MLD_K.mld_kenmerk_locatiekolom
|
|
, MLD_K.mld_kenmerk_volgnummer
|
|
, MLD_SK.mld_srtkenmerk_omschrijving
|
|
, MLD_SK.mld_srtkenmerk_dimensie
|
|
, MLD_SK.mld_srtkenmerk_kenmerktype
|
|
, MLD_SK.mld_srtkenmerk_lengte
|
|
, MLD_SK.mld_srtkenmerk_dec
|
|
, MLD_SK.mld_srtkenmerk_nmin
|
|
, MLD_SK.mld_srtkenmerk_nmax
|
|
, MLD_SK.mld_refsrtkenmerk_key
|
|
, MLD_SM.mld_stdmelding_omschrijving
|
|
, MLD_SM.mld_stdmelding_upper
|
|
, INS_D.ins_discipline_key
|
|
, INS_D.ins_discipline_omschrijving
|
|
FROM mld_kenmerk MLD_K
|
|
, mld_srtkenmerk MLD_SK
|
|
, mld_stdmelding MLD_SM
|
|
, ins_discipline INS_D
|
|
WHERE MLD_K.mld_srtkenmerk_key = MLD_SK.mld_srtkenmerk_key
|
|
AND MLD_K.mld_kenmerk_niveau = 'S'
|
|
AND MLD_SM.mld_stdmelding_key = MLD_K.mld_stdmelding_key
|
|
AND MLD_SM.mld_ins_discipline_key = INS_D.ins_discipline_key
|
|
UNION
|
|
SELECT MLD_K.mld_kenmerk_key
|
|
, MLD_K.mld_srtkenmerk_key
|
|
, MLD_K.mld_stdmelding_key
|
|
, MLD_K.mld_kenmerk_niveau
|
|
, MLD_K.mld_kenmerk_verplicht
|
|
, MLD_K.mld_kenmerk_toonbaar
|
|
, MLD_K.mld_kenmerk_uniek
|
|
, MLD_K.mld_kenmerk_locatiekolom
|
|
, MLD_K.mld_kenmerk_volgnummer
|
|
, MLD_SK.mld_srtkenmerk_omschrijving
|
|
, MLD_SK.mld_srtkenmerk_dimensie
|
|
, MLD_SK.mld_srtkenmerk_kenmerktype
|
|
, MLD_SK.mld_srtkenmerk_lengte
|
|
, MLD_SK.mld_srtkenmerk_dec
|
|
, MLD_SK.mld_srtkenmerk_nmin
|
|
, MLD_SK.mld_srtkenmerk_nmax
|
|
, MLD_SK.mld_refsrtkenmerk_key
|
|
, MLD_SM.mld_stdmelding_omschrijving
|
|
, MLD_SM.mld_stdmelding_upper
|
|
, MLD_D.ins_discipline_key
|
|
, MLD_D.ins_discipline_omschrijving
|
|
FROM mld_kenmerk MLD_K
|
|
, mld_srtkenmerk MLD_SK
|
|
, mld_stdmelding MLD_SM
|
|
, mld_v_aanwezigdiscipline MLD_D
|
|
WHERE MLD_K.mld_srtkenmerk_key = MLD_SK.mld_srtkenmerk_key
|
|
AND MLD_K.mld_kenmerk_niveau = 'D'
|
|
AND MLD_SM.mld_ins_discipline_key = MLD_D.ins_discipline_key
|
|
AND ( MLD_D.ins_discipline_key = MLD_K.mld_stdmelding_key
|
|
OR MLD_K.mld_stdmelding_key IS NULL)
|
|
;
|
|
|
|
CREATE_VIEW(mld_v_kenmerk_gegevens, MLD_BIBLIOTHEEK_PRIVILEGE)
|
|
( mld_kenmerk_key
|
|
, mld_srtkenmerk_key
|
|
, mld_kenmerk_niveau
|
|
, mld_kenmerk_verplicht
|
|
, mld_kenmerk_toonbaar
|
|
, mld_kenmerk_uniek
|
|
, mld_kenmerk_locatiekolom
|
|
, mld_kenmerk_volgnummer
|
|
, mld_srtkenmerk_omschrijving
|
|
, mld_srtkenmerk_dimensie
|
|
, mld_srtkenmerk_kenmerktype
|
|
, mld_srtkenmerk_lengte
|
|
, mld_srtkenmerk_dec
|
|
, mld_srtkenmerk_nmin
|
|
, mld_srtkenmerk_nmax
|
|
, mld_refsrtkenmerk_key
|
|
, mld_srtdeel_key
|
|
, mld_srtdeel_omschrijving
|
|
, mld_srtdeel_upper
|
|
, mld_discipline_key
|
|
, mld_discipline_omschrijving) AS
|
|
SELECT MLD_K.mld_kenmerk_key
|
|
, MLD_K.mld_srtkenmerk_key
|
|
, MLD_K.mld_kenmerk_niveau
|
|
, MLD_K.mld_kenmerk_verplicht
|
|
, MLD_K.mld_kenmerk_toonbaar
|
|
, MLD_K.mld_kenmerk_uniek
|
|
, MLD_K.mld_kenmerk_locatiekolom
|
|
, MLD_K.mld_kenmerk_volgnummer
|
|
, MLD_SK.mld_srtkenmerk_omschrijving
|
|
, MLD_SK.mld_srtkenmerk_dimensie
|
|
, MLD_SK.mld_srtkenmerk_kenmerktype
|
|
, MLD_SK.mld_srtkenmerk_lengte
|
|
, MLD_SK.mld_srtkenmerk_dec
|
|
, MLD_SK.mld_srtkenmerk_nmin
|
|
, MLD_SK.mld_srtkenmerk_nmax
|
|
, MLD_SK.mld_refsrtkenmerk_key
|
|
, MLD_SM.mld_stdmelding_key
|
|
, MLD_SM.mld_stdmelding_omschrijving
|
|
, MLD_SM.mld_stdmelding_upper
|
|
, INS_D.ins_discipline_key
|
|
, INS_D.ins_discipline_omschrijving
|
|
FROM mld_kenmerk MLD_K
|
|
, mld_srtkenmerk MLD_SK
|
|
, mld_stdmelding MLD_SM
|
|
, ins_discipline INS_D
|
|
WHERE MLD_K.mld_srtkenmerk_key = MLD_SK.mld_srtkenmerk_key
|
|
AND MLD_K.mld_kenmerk_niveau = 'S'
|
|
AND MLD_SM.mld_stdmelding_key = MLD_K.mld_stdmelding_key
|
|
AND MLD_SM.mld_ins_discipline_key = INS_D.ins_discipline_key
|
|
UNION
|
|
SELECT MLD_K.mld_kenmerk_key
|
|
, MLD_K.mld_srtkenmerk_key
|
|
, MLD_K.mld_kenmerk_niveau
|
|
, MLD_K.mld_kenmerk_verplicht
|
|
, MLD_K.mld_kenmerk_toonbaar
|
|
, MLD_K.mld_kenmerk_uniek
|
|
, MLD_K.mld_kenmerk_locatiekolom
|
|
, MLD_K.mld_kenmerk_volgnummer
|
|
, MLD_SK.mld_srtkenmerk_omschrijving
|
|
, MLD_SK.mld_srtkenmerk_dimensie
|
|
, MLD_SK.mld_srtkenmerk_kenmerktype
|
|
, MLD_SK.mld_srtkenmerk_lengte
|
|
, MLD_SK.mld_srtkenmerk_dec
|
|
, MLD_SK.mld_srtkenmerk_nmin
|
|
, MLD_SK.mld_srtkenmerk_nmax
|
|
, MLD_SK.mld_refsrtkenmerk_key
|
|
, TO_NUMBER(NULL)
|
|
, NULL
|
|
, NULL
|
|
, MLD_D.ins_discipline_key
|
|
, MLD_D.ins_discipline_omschrijving
|
|
FROM mld_kenmerk MLD_K
|
|
, mld_srtkenmerk MLD_SK
|
|
, mld_v_aanwezigdiscipline MLD_D
|
|
WHERE MLD_K.mld_srtkenmerk_key = MLD_SK.mld_srtkenmerk_key
|
|
AND MLD_K.mld_kenmerk_niveau = 'D'
|
|
AND MLD_K.mld_stdmelding_key = MLD_D.ins_discipline_key
|
|
UNION
|
|
SELECT MLD_K.mld_kenmerk_key
|
|
, MLD_K.mld_srtkenmerk_key
|
|
, MLD_K.mld_kenmerk_niveau
|
|
, MLD_K.mld_kenmerk_verplicht
|
|
, MLD_K.mld_kenmerk_toonbaar
|
|
, MLD_K.mld_kenmerk_uniek
|
|
, MLD_K.mld_kenmerk_locatiekolom
|
|
, MLD_K.mld_kenmerk_volgnummer
|
|
, MLD_SK.mld_srtkenmerk_omschrijving
|
|
, MLD_SK.mld_srtkenmerk_dimensie
|
|
, MLD_SK.mld_srtkenmerk_kenmerktype
|
|
, MLD_SK.mld_srtkenmerk_lengte
|
|
, MLD_SK.mld_srtkenmerk_dec
|
|
, MLD_SK.mld_srtkenmerk_nmin
|
|
, MLD_SK.mld_srtkenmerk_nmax
|
|
, MLD_SK.mld_refsrtkenmerk_key
|
|
, TO_NUMBER(NULL)
|
|
, NULL
|
|
, NULL
|
|
, TO_NUMBER(NULL)
|
|
, NULL
|
|
FROM mld_kenmerk MLD_K
|
|
, mld_srtkenmerk MLD_SK
|
|
WHERE MLD_K.mld_srtkenmerk_key = MLD_SK.mld_srtkenmerk_key
|
|
AND MLD_K.mld_kenmerk_niveau = 'D'
|
|
AND MLD_K.mld_stdmelding_key IS NULL
|
|
;
|
|
|
|
CREATE_VIEW(mld_v_stdkenmerkmelding, MLD_BIBLIOTHEEK_PRIVILEGE)
|
|
( mld_kenmerk_key
|
|
, mld_srtkenmerk_key
|
|
, mld_kenmerk_niveau
|
|
, mld_kenmerk_verplicht
|
|
, mld_kenmerk_toonbaar
|
|
, mld_kenmerk_uniek
|
|
, mld_kenmerk_locatiekolom
|
|
, mld_kenmerk_volgnummer
|
|
, mld_srtkenmerk_omschrijving
|
|
, mld_srtkenmerk_dimensie
|
|
, mld_srtkenmerk_kenmerktype
|
|
, mld_srtkenmerk_lengte
|
|
, mld_srtkenmerk_dec
|
|
, mld_srtkenmerk_nmin
|
|
, mld_srtkenmerk_nmax
|
|
, mld_refsrtkenmerk_key
|
|
, mld_stdmelding_key
|
|
, mld_discipline_key
|
|
, mld_kenmerkdeel_key
|
|
, mld_melding_key
|
|
, mld_kenmerkdeel_waarde
|
|
)
|
|
AS SELECT MLD_SMK.mld_kenmerk_key
|
|
, MLD_SMK.mld_srtkenmerk_key
|
|
, MLD_SMK.mld_kenmerk_niveau
|
|
, MLD_SMK.mld_kenmerk_verplicht
|
|
, MLD_SMK.mld_kenmerk_toonbaar
|
|
, MLD_SMK.mld_kenmerk_uniek
|
|
, MLD_SMK.mld_kenmerk_locatiekolom
|
|
, MLD_SMK.mld_kenmerk_volgnummer
|
|
, MLD_SMK.mld_srtkenmerk_omschrijving
|
|
, MLD_SMK.mld_srtkenmerk_dimensie
|
|
, MLD_SMK.mld_srtkenmerk_kenmerktype
|
|
, MLD_SMK.mld_srtkenmerk_lengte
|
|
, MLD_SMK.mld_srtkenmerk_dec
|
|
, MLD_SMK.mld_srtkenmerk_nmin
|
|
, MLD_SMK.mld_srtkenmerk_nmax
|
|
, MLD_SMK.mld_refsrtkenmerk_key
|
|
, MLD_SMK.mld_stdmelding_key
|
|
, MLD_SMK.mld_discipline_key
|
|
, MLD_KD.mld_kenmerkmelding_key
|
|
, MLD_M.mld_melding_key
|
|
, MLD_KD.mld_kenmerkmelding_waarde
|
|
FROM mld_melding MLD_M
|
|
, mld_v_aanwezigkenmerkmelding MLD_KD
|
|
, mld_v_stdmelding_kenmerk MLD_SMK
|
|
WHERE MLD_M.mld_melding_key = MLD_KD.mld_melding_key
|
|
AND MLD_M.mld_stdmelding_key = MLD_SMK.mld_stdmelding_key
|
|
AND MLD_SMK.mld_kenmerk_key = MLD_KD.mld_kenmerk_key
|
|
UNION
|
|
SELECT MLD_SMK.mld_kenmerk_key
|
|
, MLD_SMK.mld_srtkenmerk_key
|
|
, MLD_SMK.mld_kenmerk_niveau
|
|
, MLD_SMK.mld_kenmerk_verplicht
|
|
, MLD_SMK.mld_kenmerk_toonbaar
|
|
, MLD_SMK.mld_kenmerk_uniek
|
|
, MLD_SMK.mld_kenmerk_locatiekolom
|
|
, MLD_SMK.mld_kenmerk_volgnummer
|
|
, MLD_SMK.mld_srtkenmerk_omschrijving
|
|
, MLD_SMK.mld_srtkenmerk_dimensie
|
|
, MLD_SMK.mld_srtkenmerk_kenmerktype
|
|
, MLD_SMK.mld_srtkenmerk_lengte
|
|
, MLD_SMK.mld_srtkenmerk_dec
|
|
, MLD_SMK.mld_srtkenmerk_nmin
|
|
, MLD_SMK.mld_srtkenmerk_nmax
|
|
, MLD_SMK.mld_refsrtkenmerk_key
|
|
, MLD_SMK.mld_stdmelding_key
|
|
, MLD_SMK.mld_discipline_key
|
|
, TO_NUMBER(NULL)
|
|
, MLD_M.mld_melding_key
|
|
, NULL
|
|
FROM mld_melding MLD_M
|
|
, mld_v_stdmelding_kenmerk MLD_SMK
|
|
WHERE MLD_M.mld_stdmelding_key = MLD_SMK.mld_stdmelding_key
|
|
AND NOT EXISTS (SELECT MLD_KD.mld_melding_key
|
|
FROM mld_v_aanwezigkenmerkmelding MLD_KD
|
|
WHERE MLD_KD.mld_melding_key = MLD_M.mld_melding_key
|
|
AND MLD_KD.mld_kenmerk_key = MLD_SMK.mld_kenmerk_key)
|
|
UNION
|
|
SELECT MLD_SMK.mld_kenmerk_key
|
|
, MLD_SMK.mld_srtkenmerk_key
|
|
, MLD_SMK.mld_kenmerk_niveau
|
|
, MLD_SMK.mld_kenmerk_verplicht
|
|
, MLD_SMK.mld_kenmerk_toonbaar
|
|
, MLD_SMK.mld_kenmerk_uniek
|
|
, MLD_SMK.mld_kenmerk_locatiekolom
|
|
, MLD_SMK.mld_kenmerk_volgnummer
|
|
, MLD_SMK.mld_srtkenmerk_omschrijving
|
|
, MLD_SMK.mld_srtkenmerk_dimensie
|
|
, MLD_SMK.mld_srtkenmerk_kenmerktype
|
|
, MLD_SMK.mld_srtkenmerk_lengte
|
|
, MLD_SMK.mld_srtkenmerk_dec
|
|
, MLD_SMK.mld_srtkenmerk_nmin
|
|
, MLD_SMK.mld_srtkenmerk_nmax
|
|
, MLD_SMK.mld_refsrtkenmerk_key
|
|
, MLD_SMK.mld_stdmelding_key
|
|
, MLD_SMK.mld_discipline_key
|
|
, TO_NUMBER(NULL)
|
|
, TO_NUMBER(NULL)
|
|
, NULL
|
|
FROM mld_v_stdmelding_kenmerk MLD_SMK
|
|
;
|
|
|
|
CREATE SEQUENCE mld_s_mld_refsrtkenmerk_key MINVALUE 1;
|
|
CREATE SEQUENCE mld_s_mld_srtkenmerk_key MINVALUE 1;
|
|
CREATE SEQUENCE mld_s_mld_kenmerk_key MINVALUE 1;
|
|
CREATE SEQUENCE mld_s_mld_kenmerkmelding_key MINVALUE 1;
|
|
|
|
CREATE INDEX mld_i_mld_srtkenmerk1 ON mld_srtkenmerk(mld_refsrtkenmerk_key);
|
|
CREATE INDEX mld_i_mld_kenmerk1 ON mld_kenmerk(mld_srtkenmerk_key);
|
|
CREATE INDEX mld_i_mld_kenmerk2 ON mld_kenmerk(mld_stdmelding_key);
|
|
CREATE INDEX mld_i_mld_kenmerkmelding1 ON mld_kenmerkmelding(mld_melding_key);
|
|
CREATE INDEX mld_i_mld_kenmerkmelding2 ON mld_kenmerkmelding(mld_kenmerk_key);
|
|
CREATE INDEX mld_i_mld_kenmerkmelding3 ON mld_kenmerkmelding(mld_kenmerkmelding_waarde);
|
|
|
|
CREATE_TRIGGER(mld_t_mld_refsrtkenmerk_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_refsrtkenmerk
|
|
FOR EACH ROW
|
|
DECLARE
|
|
ObjectType USER_OBJECTS.OBJECT_TYPE%TYPE;
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_refsrtkenmerk_key, mld_s_mld_refsrtkenmerk_key);
|
|
UPDATE_UPPER(mld_refsrtkenmerk_omschrijving, mld_refsrtkenmerk_upper);
|
|
UPDATE_AANMAAKDATUM(mld_refsrtkenmerk, mld_refsrtkenmerk_aanmaak);
|
|
--
|
|
-- Controleer of de ingevulde tablenaam, kolomnaam en kolomtxt
|
|
-- wel bestaan. Controle moet ook gebeuren als de omschrijving
|
|
-- is gewijzigd; de objectnaam is dan hetzelfde.
|
|
--
|
|
BEGIN
|
|
SELECT object_type
|
|
INTO ObjectType
|
|
FROM USER_OBJECTS
|
|
WHERE object_name = :new.mld_refsrtkenmerk_objectnaam;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN ObjectType := NULL;
|
|
END;
|
|
--
|
|
IF ObjectType IS NULL
|
|
THEN
|
|
raise_application_error(-20000, 'mld_m244');
|
|
ELSIF ObjectType = 'TABLE'
|
|
OR ObjectType = 'VIEW'
|
|
THEN
|
|
-- Bij een TABLE of VIEW staan de kolommen in USER_TAB_COLUMNS
|
|
-- Controleer of deze KOLOMNAAM en KOLOMTXT bestaan.
|
|
--
|
|
DECLARE
|
|
Dummy VARCHAR2(30);
|
|
BEGIN
|
|
SELECT column_name
|
|
INTO Dummy
|
|
FROM USER_TAB_COLUMNS
|
|
WHERE table_name = :new.mld_refsrtkenmerk_objectnaam
|
|
AND column_name = :new.mld_refsrtkenmerk_kolomnaam
|
|
AND data_type = 'NUMBER';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN raise_application_error(-20000, 'mld_m245');
|
|
END;
|
|
--
|
|
DECLARE
|
|
Dummy VARCHAR2(30);
|
|
BEGIN
|
|
SELECT column_name
|
|
INTO Dummy
|
|
FROM USER_TAB_COLUMNS
|
|
WHERE table_name = :new.mld_refsrtkenmerk_objectnaam
|
|
AND column_name = :new.mld_refsrtkenmerk_kolomtxt
|
|
AND data_type LIKE '%CHAR%';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN raise_application_error(-20000, 'mld_m246');
|
|
END;
|
|
ELSIF ObjectType = 'SYNONYM'
|
|
THEN
|
|
-- Bij een SYNONYM kan er niet gecontroleerd worden
|
|
-- of de ingevulde kolommen bestaan.
|
|
--
|
|
NULL;
|
|
ELSE
|
|
raise_application_error(-20000, 'mld_m244');
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_srtkenmerk_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_srtkenmerk
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_srtkenmerk_key, mld_s_mld_srtkenmerk_key);
|
|
UPDATE_UPPER(mld_srtkenmerk_omschrijving, mld_srtkenmerk_upper);
|
|
UPDATE_AANMAAKDATUM(mld_srtkenmerk, mld_srtkenmerk_aanmaak);
|
|
--
|
|
IF (:new.mld_srtkenmerk_kenmerktype = 'C'
|
|
OR :new.mld_srtkenmerk_kenmerktype = 'N')
|
|
AND :new.mld_srtkenmerk_lengte IS NULL
|
|
THEN
|
|
raise_application_error(-20000, 'MLD_C_MLD_SRTKENMERK_LENGTE');
|
|
END IF;
|
|
--
|
|
IF :new.mld_srtkenmerk_kenmerktype = 'N'
|
|
AND :old.mld_srtkenmerk_key IS NOT NULL
|
|
THEN
|
|
IF :old.mld_srtkenmerk_nmin <> :new.mld_srtkenmerk_nmin
|
|
OR :old.mld_srtkenmerk_nmin IS NULL
|
|
THEN
|
|
DECLARE
|
|
Dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO Dummy
|
|
FROM mld_kenmerkmelding
|
|
WHERE TO_NUMBER(mld_kenmerkmelding_waarde) < :new.mld_srtkenmerk_nmin
|
|
AND mld_kenmerk_key IN
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = :old.mld_srtkenmerk_key
|
|
);
|
|
raise_application_error(-20000, 'MLD_C_MLD_SRTKENMERK_MIN');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN raise_application_error(-20000, 'MLD_C_MLD_SRTKENMERK_MIN');
|
|
END;
|
|
END IF;
|
|
--
|
|
IF :old.mld_srtkenmerk_nmax <> :new.mld_srtkenmerk_nmax
|
|
OR :old.mld_srtkenmerk_nmax IS NULL
|
|
THEN
|
|
DECLARE
|
|
Dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO Dummy
|
|
FROM mld_kenmerkmelding
|
|
WHERE TO_NUMBER(mld_kenmerkmelding_waarde) > :new.mld_srtkenmerk_nmax
|
|
AND mld_kenmerk_key IN
|
|
(SELECT mld_kenmerk_key
|
|
FROM mld_kenmerk
|
|
WHERE mld_srtkenmerk_key = :old.mld_srtkenmerk_key
|
|
);
|
|
raise_application_error(-20000, 'MLD_C_MLD_SRTKENMERK_MAX');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN raise_application_error(-20000, 'MLD_C_MLD_SRTKENMERK_MAX');
|
|
END;
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_srtkenmerk_b_d)
|
|
BEFORE DELETE ON mld_srtkenmerk
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF :old.mld_srtkenmerk_systeem IS NOT NULL
|
|
THEN
|
|
raise_application_error(-20003, 'MLD_C_MLD_SRTKENMERK_SYSTEEM');
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_kenmerk_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_kenmerk
|
|
FOR EACH ROW
|
|
BEGIN
|
|
-- Een kenmerk mag niet verplicht worden gemaakt als er al
|
|
-- waarden ingevuld zijn en hij daarvoor niet verplicht was.
|
|
-- Dit is alleen bij wijzigen te controleren, doordat
|
|
-- de PrimaryKey niet NULL is.
|
|
--
|
|
IF :new.mld_kenmerk_key IS NOT NULL
|
|
AND :new.mld_kenmerk_verplicht IS NOT NULL
|
|
AND :old.mld_kenmerk_verplicht IS NULL
|
|
THEN
|
|
DECLARE
|
|
Dummy CHAR;
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO Dummy
|
|
FROM mld_kenmerkmelding
|
|
WHERE mld_kenmerk_key = :new.mld_kenmerk_key;
|
|
raise_application_error(-20004, 'MLD_C_MLD_KENMERK_VERPLICHT0');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN raise_application_error(-20004, 'MLD_C_MLD_KENMERK_VERPLICHT0');
|
|
END;
|
|
END IF;
|
|
--
|
|
UPDATE_PRIMARY_KEY(mld_kenmerk_key, mld_s_mld_kenmerk_key);
|
|
UPDATE_AANMAAKDATUM(mld_kenmerk, mld_kenmerk_aanmaak);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(mld_t_mld_kenmerkmelding_b_iu)
|
|
BEFORE INSERT OR UPDATE ON mld_kenmerkmelding
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_kenmerkmelding_key, mld_s_mld_kenmerkmelding_key);
|
|
-- Controleer eerst of de ingevulde waarde goed is.
|
|
--
|
|
IF :new.mld_kenmerkmelding_waarde <> :old.mld_kenmerkmelding_waarde
|
|
OR :old.mld_kenmerkmelding_waarde IS NULL
|
|
OR :new.mld_kenmerkmelding_waarde IS NULL
|
|
THEN
|
|
DECLARE
|
|
SrtKenmerkOmschr mld_srtkenmerk.mld_srtkenmerk_omschrijving%TYPE;
|
|
SrtKenmerkType mld_srtkenmerk.mld_srtkenmerk_kenmerktype%TYPE;
|
|
SrtKenmerkLengte mld_srtkenmerk.mld_srtkenmerk_lengte%TYPE;
|
|
SrtKenmerkDec mld_srtkenmerk.mld_srtkenmerk_dec%TYPE;
|
|
SrtKenmerkNMin mld_srtkenmerk.mld_srtkenmerk_nmin%TYPE;
|
|
SrtKenmerkNMax mld_srtkenmerk.mld_srtkenmerk_nmax%TYPE;
|
|
KenmerkVerplicht mld_kenmerk.mld_kenmerk_verplicht%TYPE;
|
|
RefSrtKenmerkKey NUMBER(10);
|
|
NumberWaarde NUMBER(15,5);
|
|
FormatMask VARCHAR2(60);
|
|
KenmerkMeldingWaarde mld_kenmerkmelding.mld_kenmerkmelding_waarde%TYPE;
|
|
BEGIN
|
|
KenmerkMeldingWaarde := :new.mld_kenmerkmelding_waarde;
|
|
--
|
|
SELECT MLD_SK.mld_srtkenmerk_omschrijving
|
|
, MLD_SK.mld_srtkenmerk_kenmerktype
|
|
, MLD_SK.mld_srtkenmerk_lengte
|
|
, MLD_SK.mld_srtkenmerk_dec
|
|
, MLD_SK.mld_srtkenmerk_nmin
|
|
, MLD_SK.mld_srtkenmerk_nmax
|
|
, MLD_SK.mld_refsrtkenmerk_key
|
|
, MLD_K.mld_kenmerk_verplicht
|
|
INTO SrtKenmerkOmschr
|
|
, SrtKenmerkType
|
|
, SrtKenmerkLengte
|
|
, SrtKenmerkDec
|
|
, SrtKenmerkNMin
|
|
, SrtKenmerkNMax
|
|
, RefSrtKenmerkKey
|
|
, KenmerkVerplicht
|
|
FROM mld_srtkenmerk MLD_SK
|
|
, mld_kenmerk MLD_K
|
|
WHERE MLD_SK.mld_srtkenmerk_key = MLD_K.mld_srtkenmerk_key
|
|
AND MLD_K.mld_kenmerk_key = :new.mld_kenmerk_key;
|
|
--
|
|
-- Controleer eerst of het verplichte veld ingevuld is.
|
|
--
|
|
IF KenmerkVerplicht IS NOT NULL AND KenmerkMeldingWaarde IS NULL
|
|
THEN
|
|
raise_application_error(-20004, 'mld_m240,'||SrtKenmerkOmschr);
|
|
--
|
|
-- Kijk welk KenmerkType gebruikt wordt.
|
|
-- Aan de hand daarvan moet een controle uitgevoerd worden.
|
|
--
|
|
ELSIF SrtKenmerkType = 'C'
|
|
THEN
|
|
-- CHAR
|
|
-- Controleer of de lengte te groot of goed is.
|
|
IF LENGTH(KenmerkMeldingWaarde) > SrtKenmerkLengte
|
|
THEN
|
|
raise_application_error(-20004, 'mld_m241,'||SrtKenmerkOmschr||','||TO_CHAR(SrtKenmerkLengte));
|
|
END IF;
|
|
ELSIF SrtKenmerkType = 'N'
|
|
THEN
|
|
-- NUMBER
|
|
-- Controleer of er een numerieke waarde ingevuld is.
|
|
IF SrtKenmerkDec IS NULL OR SrtKenmerkDec = 0
|
|
THEN
|
|
FormatMask := RPAD('9', SrtKenmerkLengte, '9');
|
|
ELSE
|
|
FormatMask := RPAD('9', SrtKenmerkLengte - SrtKenmerkDec, '9')||
|
|
'D'||RPAD('9', SrtKenmerkDec, '9');
|
|
END IF;
|
|
--
|
|
BEGIN
|
|
NumberWaarde := TO_NUMBER(KenmerkMeldingWaarde);
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN FormatMask := REPLACE(FormatMask, '9', '#');
|
|
FormatMask := REPLACE(FormatMask, '0', '#');
|
|
FormatMask := REPLACE(FormatMask, 'D', '.');
|
|
raise_application_error(-20004,'mld_m242,'||SrtKenmerkOmschr||','||FormatMask);
|
|
END;
|
|
-- Controleer of de waarde binnen NMin en NMax ligt.
|
|
IF (SrtKenmerkNMin IS NOT NULL AND NumberWaarde < SrtKenmerkNMin)
|
|
OR (SrtKenmerkNMax IS NOT NULL AND NumberWaarde > SrtKenmerkNMax)
|
|
THEN
|
|
raise_application_error(-20004, 'mld_m243,'||SrtKenmerkOmschr||','||
|
|
TO_CHAR(SrtKenmerkNMin)||','||
|
|
TO_CHAR(SrtKenmerkNMax));
|
|
ELSE
|
|
-- Controleer of de waarde aan het formaat voldoet.
|
|
KenmerkMeldingWaarde := LTRIM(to_char(NumberWaarde, FormatMask));
|
|
IF INSTR(KenmerkMeldingWaarde, '#') <> 0
|
|
THEN
|
|
FormatMask := REPLACE(FormatMask, '9', '#');
|
|
FormatMask := REPLACE(FormatMask, '0', '#');
|
|
FormatMask := REPLACE(FormatMask, 'D', '.');
|
|
raise_application_error(-20004,'mld_m242,'||SrtKenmerkOmschr||','||FormatMask);
|
|
END IF;
|
|
END IF;
|
|
-- Zet de geconverteerde waarde terug.
|
|
:new.mld_kenmerkmelding_waarde := KenmerkMeldingWaarde;
|
|
ELSIF SrtKenmerkType = 'D'
|
|
THEN
|
|
-- DATUM
|
|
KenmerkMeldingWaarde := TO_CHAR(TO_DATE(KenmerkMeldingWaarde,'DD-MM-YYYY'),'DD-MM-YYYY');
|
|
-- Zet de geconverteerde waarde terug.
|
|
:new.mld_kenmerkmelding_waarde := KenmerkMeldingWaarde;
|
|
END IF;
|
|
END;
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE Mld AS
|
|
PROCEDURE mld_update_kenmerkmelding(p_melding_key IN NUMBER
|
|
,p_kenmerk_key IN NUMBER
|
|
,p_waarde IN VARCHAR2
|
|
,p_historymode IN VARCHAR2
|
|
,p_mselect IN VARCHAR2);
|
|
PROCEDURE mld_kenmerkmelding_insert(p_melding_key IN NUMBER
|
|
,p_kenmerk_key IN NUMBER
|
|
,p_waarde IN VARCHAR2
|
|
,p_historymode IN VARCHAR2);
|
|
PROCEDURE mld_kenmerkmelding_delete(p_kenmerkmelding_key IN NUMBER
|
|
,p_historymode IN VARCHAR2);
|
|
PROCEDURE mld_kenmerkmelding_update(p_kenmerkmelding_key IN NUMBER
|
|
,p_waarde IN VARCHAR2
|
|
,p_historymode IN VARCHAR2);
|
|
END Mld;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY Mld AS
|
|
PROCEDURE mld_update_kenmerkmelding(p_melding_key IN NUMBER
|
|
,p_kenmerk_key IN NUMBER
|
|
,p_waarde IN VARCHAR2
|
|
,p_historymode IN VARCHAR2
|
|
,p_mselect IN VARCHAR2
|
|
) IS
|
|
-- Zoek alle records voor een gegeven melding en kenmerk
|
|
-- en zet de meest recente bovenaan.
|
|
--
|
|
CURSOR c_kenmerkmelding(p_kenmerk_key IN NUMBER
|
|
,p_melding_key IN NUMBER
|
|
) IS
|
|
SELECT mld_kenmerkmelding_key
|
|
, trunc(mld_kenmerkmelding_aanmaak) mld_kenmerkmelding_aanmaak
|
|
, trunc(mld_kenmerkmelding_verwijder) mld_kenmerkmelding_verwijder
|
|
FROM mld_kenmerkmelding
|
|
WHERE mld_kenmerk_key = p_kenmerk_key
|
|
AND mld_melding_key = p_melding_key
|
|
ORDER BY mld_kenmerkmelding_key DESC
|
|
;
|
|
r_kenmerkmelding c_kenmerkmelding%ROWTYPE;
|
|
BEGIN
|
|
OPEN c_kenmerkmelding(p_kenmerk_key,p_melding_key);
|
|
FETCH c_kenmerkmelding INTO r_kenmerkmelding;
|
|
IF c_kenmerkmelding%NOTFOUND
|
|
THEN
|
|
-- Voor deze melding en kenmerk bestaat nog geen record
|
|
-- dus toevoegen. Behalve als de toe te voegen waarde
|
|
-- null is, dan wil je niets toevoegen dus dan ook
|
|
-- geen actie.
|
|
IF p_waarde IS NOT NULL
|
|
THEN
|
|
Mld.mld_kenmerkmelding_insert(p_melding_key
|
|
,p_kenmerk_key
|
|
,p_waarde
|
|
,p_historymode);
|
|
END IF;
|
|
ELSE
|
|
-- Er bestaat een record voor de melding en kenmerk.
|
|
--
|
|
IF p_historymode = '0'
|
|
THEN
|
|
IF p_waarde IS NOT NULL
|
|
THEN
|
|
Mld.mld_kenmerkmelding_update(r_kenmerkmelding.mld_kenmerkmelding_key
|
|
,p_waarde
|
|
,p_historymode);
|
|
END IF;
|
|
ELSIF p_historymode = '1'
|
|
THEN
|
|
-- Er bestaat een record voor de melding en kenmerk.
|
|
--
|
|
IF p_waarde IS NOT NULL
|
|
THEN
|
|
-- Er is een nieuwe waarde voor een bepaalde melding en kenmerk.
|
|
--
|
|
IF r_kenmerkmelding.mld_kenmerkmelding_aanmaak <= trunc(sysdate)
|
|
AND r_kenmerkmelding.mld_kenmerkmelding_verwijder IS NULL
|
|
THEN
|
|
-- Het record is nog actueel, dus moet eerst gesloten worden
|
|
-- door het als verwijderd te markeren.
|
|
--
|
|
Mld.mld_kenmerkmelding_delete(r_kenmerkmelding.mld_kenmerkmelding_key
|
|
,p_historymode);
|
|
END IF;
|
|
--
|
|
-- Er bestaat nu tijdelijk geen actueel record meer voor
|
|
-- de melding en kenmerk !!
|
|
--
|
|
IF r_kenmerkmelding.mld_kenmerkmelding_aanmaak < trunc(sysdate)
|
|
AND ( r_kenmerkmelding.mld_kenmerkmelding_verwijder <= trunc(sysdate)
|
|
OR r_kenmerkmelding.mld_kenmerkmelding_verwijder IS NULL)
|
|
THEN
|
|
-- Het laatste record voor kenmerk bij een melding heeft langer
|
|
-- dan een dag bestaan. Voeg daarom een nieuwe toe.
|
|
--
|
|
Mld.mld_kenmerkmelding_insert(p_melding_key
|
|
,p_kenmerk_key
|
|
,p_waarde
|
|
,p_historymode);
|
|
ELSIF r_kenmerkmelding.mld_kenmerkmelding_aanmaak = trunc(sysdate)
|
|
THEN
|
|
-- Het record voor kenmerk bij een melding is vandaag
|
|
-- aangemaakt dus wordt er geen nieuwe toegevoegd maar
|
|
-- de huidige aangepast.
|
|
--
|
|
Mld.mld_kenmerkmelding_update(r_kenmerkmelding.mld_kenmerkmelding_key
|
|
,p_waarde
|
|
,p_historymode);
|
|
END IF;
|
|
ELSE
|
|
-- De nieuwe waarde voor de melding en kenmerk is leeg, dus
|
|
-- moet het als verwijderd gemarkeerd worden.
|
|
--
|
|
IF p_mselect = '0'
|
|
THEN
|
|
Mld.mld_kenmerkmelding_delete(r_kenmerkmelding.mld_kenmerkmelding_key
|
|
,p_historymode);
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
CLOSE c_kenmerkmelding;
|
|
END mld_update_kenmerkmelding;
|
|
|
|
PROCEDURE mld_kenmerkmelding_insert(p_melding_key IN NUMBER
|
|
,p_kenmerk_key IN NUMBER
|
|
,p_waarde IN VARCHAR2
|
|
,p_historymode IN VARCHAR2
|
|
) IS
|
|
BEGIN
|
|
IF p_waarde IS NOT NULL
|
|
THEN
|
|
INSERT INTO mld_kenmerkmelding
|
|
( mld_kenmerk_key
|
|
, mld_melding_Key
|
|
, mld_kenmerkmelding_waarde
|
|
)
|
|
VALUES(p_kenmerk_key
|
|
, p_melding_key
|
|
, p_waarde);
|
|
END IF;
|
|
END mld_kenmerkmelding_insert;
|
|
|
|
PROCEDURE mld_kenmerkmelding_delete(p_kenmerkmelding_key IN NUMBER
|
|
,p_historymode IN VARCHAR2
|
|
) IS
|
|
BEGIN
|
|
IF p_historymode = '0'
|
|
THEN
|
|
-- NON HISTORY MODE
|
|
DELETE
|
|
FROM mld_kenmerkmelding
|
|
WHERE mld_kenmerkmelding_key = p_kenmerkmelding_key;
|
|
ELSE
|
|
--HISTORY MODE
|
|
UPDATE mld_kenmerkmelding
|
|
SET mld_kenmerkmelding_verwijder = SYSDATE
|
|
WHERE mld_kenmerkmelding_key = p_kenmerkmelding_key;
|
|
END IF;
|
|
END mld_kenmerkmelding_delete;
|
|
|
|
PROCEDURE mld_kenmerkmelding_update(p_kenmerkmelding_key IN NUMBER
|
|
,p_waarde IN VARCHAR2
|
|
,p_historymode IN VARCHAR2
|
|
) IS
|
|
BEGIN
|
|
IF p_historymode = '0'
|
|
THEN
|
|
UPDATE mld_kenmerkmelding
|
|
SET mld_kenmerkmelding_waarde = p_waarde
|
|
, mld_kenmerkmelding_aanmaak = SYSDATE
|
|
, mld_kenmerkmelding_verwijder = NULL
|
|
WHERE mld_kenmerkmelding_key = p_kenmerkmelding_key;
|
|
ELSIF p_historymode = '1'
|
|
THEN
|
|
UPDATE mld_kenmerkmelding
|
|
SET mld_kenmerkmelding_waarde = p_waarde
|
|
, mld_kenmerkmelding_verwijder = NULL
|
|
WHERE mld_kenmerkmelding_key = p_kenmerkmelding_key;
|
|
END IF;
|
|
END mld_kenmerkmelding_update;
|
|
END Mld;
|
|
/
|
|
|
|
DEF_FAC_MESSAGE ('MLD_C_MLD_SRTKENMERK_LENGTE', 'De lengte moet tussen 1 en 50 liggen.','Enter a length between 1 en 50');
|
|
DEF_FAC_MESSAGE ('MLD_C_MLD_SRTKENMERK_MIN', 'Objecten gevonden die niet voldoen aan nieuwe min.waarde van dit kenmerksoort.','Found objects with min. values lower then de new min. value for property-type');
|
|
DEF_FAC_MESSAGE ('MLD_C_MLD_SRTKENMERK_MAX', 'Objecten gevonden die niet voldoen aan nieuwe max.waarde van dit kenmerksoort.','Found objects with min. values lower then de new min. value for property-type');
|
|
DEF_FAC_MESSAGE ('MLD_C_MLD_SRTKENMERK_SYSTEEM', 'De waarde van het veld ''Systeem'' mag alleen de waardes ''NULL'' of ''1'' bevatten.','Allowed values for field ''System'' are ''NULL'' or ''1''');
|
|
DEF_FAC_MESSAGE ('MLD_C_MLD_KENMERK_VERPLICHT0', 'Het veld ''Verplicht'' mag niet aangezet worden.','The field ''Obligatory'' has to be turned off');
|
|
DEF_FAC_MESSAGE ('MLD_M240', 'Het veld %1% is niet ingevuld.','Value for field %1% is not supplied');
|
|
DEF_FAC_MESSAGE ('MLD_M241', 'De waarde van het veld %1% mag niet langer zijn dan %2%.','The length of the value for field %1% has to be %2" or less');
|
|
DEF_FAC_MESSAGE ('MLD_M242', 'De waarde van het veld %1% voldoet niet aan formaat %2%.','Incorrect format for field %1%: format %2% is obligatory');
|
|
DEF_FAC_MESSAGE ('MLD_M243', 'De waarde van het veld %1% moet tussen %2% en %3% liggen.','The value for field %1% has to be between %2% en %3%');
|
|
DEF_FAC_MESSAGE ('MLD_M244', 'Het database-object bestaat niet.','Database object does not exist');
|
|
DEF_FAC_MESSAGE ('MLD_M245', 'De kolomnaam bestaat niet in het database-object.','Column name does not exist in database object');
|
|
DEF_FAC_MESSAGE ('MLD_M246', 'De kolomtekst bestaat niet in het database-object.','Column text does not exist in database object');
|
|
|
|
#endif //MLD
|
|
|
|
#ifdef RES
|
|
|
|
#endif //RES
|
|
|
|
#ifdef BES
|
|
|
|
#endif //BES
|
|
|
|
#ifdef BEZ
|
|
|
|
#endif //BEZ
|
|
|
|
#ifdef CNT
|
|
|
|
#endif //CNT
|
|
|
|
#ifdef WEB
|
|
|
|
DEF_FAC_FUNCTIE('WEB_PRSMAN', 'Backoffice:Personenbeheer', 'WEB', 2);
|
|
DEF_FAC_FUNCTIE('WEB_ALGMAN', 'Backoffice:Vastgoedbeheer', 'WEB', 2);
|
|
|
|
#endif //WEB
|
|
|
|
#ifdef SCH
|
|
|
|
#endif //SCH
|
|
|
|
#ifdef FAC
|
|
|
|
#endif //FAC
|
|
|
|
#ifdef PRA
|
|
CREATE_TRIGGER(PRS_T_PRS_AANMELD_B_IU)
|
|
BEFORE INSERT OR UPDATE ON prs_aanmeld
|
|
FOR EACH ROW
|
|
BEGIN
|
|
DECLARE mes VARCHAR2(255);
|
|
mes2 VARCHAR2(255);
|
|
actkey NUMBER;
|
|
code VARCHAR2(6);
|
|
keepmes NUMBER;
|
|
pkey NUMBER;
|
|
titel_key NUMBER;
|
|
email_key NUMBER;
|
|
mphone_key NUMBER;
|
|
badgen_key NUMBER;
|
|
badges_key NUMBER;
|
|
naam VARCHAR2(30);
|
|
aanmeldActKey NUMBER;
|
|
BEGIN
|
|
-- constants
|
|
titel_key := 62; -- person titel
|
|
email_key := 5; -- email kenmerk key
|
|
mphone_key := 1020; -- mobile phone kenmerk key
|
|
badgen_key := 1000; -- badge number kenmerk key
|
|
badges_key := 1001; -- badge sort kenmerk key
|
|
aanmeldactkey:= 21; -- Action : announcement of new personnel
|
|
|
|
IF :new.prs_aanmeld_key IS NULL THEN SELECT prs_s_prs_aanmeld_key.nextval INTO :new.prs_aanmeld_key FROM DUAL; END IF;
|
|
|
|
IF :old.Prs_aanmeld_aanmaak IS NULL THEN
|
|
BEGIN
|
|
-- initial new employee data input
|
|
:new.Prs_aanmeld_aanmaak := SYSDATE;
|
|
naam := :new.prs_aanmeld_naam;
|
|
code := 'COMPPZ';
|
|
BEGIN
|
|
SELECT WEB_USER_MESS_TEXT_DSC, WEB_USER_MESS_ACTIONS_KEY into mes, actkey
|
|
FROM WEB_USER_MESS_TEXT where WEB_USER_MESS_TEXT_CODE = code;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN NULL;
|
|
END;
|
|
-- Initial data. IF workplace on location - add person in Facilitor...
|
|
IF (:old.PRS_AANMELD_WERKPLEK_OPLOC IS NULL OR :old.PRS_AANMELD_WERKPLEK_OPLOC = 0 )
|
|
AND :new.PRS_AANMELD_WERKPLEK_OPLOC = 1
|
|
THEN
|
|
BEGIN
|
|
SELECT prs_s_prs_alluitvoerende_keys.nextval, nvl(FAC_USRDATA_OMSCHR,'')
|
|
INTO :new.PRS_PERSLID_KEY, mes2 FROM fac_usrdata WHERE fac_usrtab_key (+)= titel_key
|
|
AND :new.Prs_aanmeld_titel_key = FAC_USRDATA_KEY(+);
|
|
--
|
|
INSERT INTO PRS_PERSLID
|
|
(PRS_PERSLID_KEY, PRS_PERSLID_MODULE, PRS_SRTPERSLID_KEY, PRS_AFDELING_KEY,
|
|
PRS_PERSLID_NAAM, PRS_PERSLID_TITEL, PRS_PERSLID_NR, PRS_PERSLID_INGANGSDATUM,
|
|
PRS_PERSLID_EINDDATUM, PRS_PERSLID_TELEFOONNR, PRS_PERSLID_AANMAAK) values
|
|
(:new.PRS_PERSLID_KEY, 'PRS', 1, :new.Prs_afdeling_key, :new.Prs_aanmeld_naam, mes2,
|
|
:new.Prs_aanmeld_persnr, :new.prs_aanmeld_datumbadgestart, :new.prs_aanmeld_datumbadgeend,
|
|
:new.prs_aanmeld_telintern, :new.Prs_aanmeld_aanmaak);
|
|
END;
|
|
END IF;
|
|
-- inform security department
|
|
IF actkey is not null THEN
|
|
INSERT INTO WEB_USER_MESSAGES
|
|
SELECT NULL, NULL, PRS_PERSLID_KEY, actkey, REPLACE(mes,'##NAAM##', naam), NULL, 1, :new.prs_aanmeld_key, SYSDATE
|
|
FROM PRS_V_AANWEZIGSECURITY;
|
|
END IF;
|
|
END;
|
|
ELSE
|
|
naam := :old.prs_aanmeld_naam;
|
|
END IF;
|
|
IF :old.PRS_AANMELD_SECU_OK is null and :new.PRS_AANMELD_SECU_OK is not null and
|
|
:new.PRS_AANMELD_SECU_end is null THEN
|
|
BEGIN
|
|
:new.PRS_AANMELD_SECU_end := SYSDATE;
|
|
END;
|
|
END IF;
|
|
IF :old.PRS_AANMELD_SECU_end is null and :new.PRS_AANMELD_SECU_end is not null THEN
|
|
-- initial security input is completed
|
|
BEGIN
|
|
code := 'COMPSC';
|
|
BEGIN
|
|
select WEB_USER_MESS_TEXT_DSC, WEB_USER_MESS_ACTIONS_KEY into mes, actkey
|
|
from WEB_USER_MESS_TEXT where WEB_USER_MESS_TEXT_CODE = code;
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN null;
|
|
END;
|
|
IF actkey is not null THEN
|
|
-- inform security department staff manager and contact person if it's not one person
|
|
IF :new.prs_aanmeld_pz_key is not null THEN
|
|
insert into WEB_USER_MESSAGES
|
|
select NULL, NULL, :new.prs_aanmeld_pz_key, actkey, REPLACE(mes, '##NAAM##', naam), NULL, 1, :new.prs_aanmeld_key, SYSDATE
|
|
FROM dual;
|
|
IF :new.prs_aanmeld_pz_key <> :new.prs_aanmeld_contact_key THEN
|
|
insert into WEB_USER_MESSAGES
|
|
select NULL, NULL, :new.prs_aanmeld_contact_key, actkey, REPLACE(mes,'##NAAM##', naam), NULL, 1, :new.prs_aanmeld_key, SYSDATE
|
|
FROM dual;
|
|
ELSE
|
|
insert into WEB_USER_MESSAGES
|
|
select NULL, NULL, PRS_PERSLID_KEY, actkey, REPLACE(mes, '##NAAM##', naam), NULL, 1, :new.prs_aanmeld_key, SYSDATE
|
|
FROM PRS_V_AANWEZIGFACILITY;
|
|
END IF;
|
|
ELSE
|
|
insert into WEB_USER_MESSAGES
|
|
select NULL, NULL, :new.prs_aanmeld_contact_key, actkey, REPLACE(mes,'##NAAM##', naam), NULL, 1, :new.prs_aanmeld_key, SYSDATE
|
|
FROM dual;
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
END IF;
|
|
IF (:old.PRS_AANMELD_SECU_OK is null and :new.PRS_AANMELD_SECU_OK is not null and :new.PRS_AANMELD_WERKPLEK_OPLOC = 1)
|
|
AND (:old.PRS_AANMELD_NAAM IS NULL AND :new.PRS_AANMELD_NAAM IS NOT NULL
|
|
OR :old.PRS_AANMELD_NAAM <> :new.PRS_AANMELD_NAAM)
|
|
THEN
|
|
-- all security input is complete, if Name is changed by SUVS then update prs_perslid
|
|
BEGIN
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_naam = :new.Prs_aanmeld_naam
|
|
WHERE prs_perslid_key = :new.prs_perslid_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN NULL;
|
|
WHEN TOO_MANY_ROWS THEN NULL;
|
|
END;
|
|
END IF;
|
|
IF :old.PRS_AANMELD_CP_OK is null and :new.PRS_AANMELD_CP_OK is not null THEN
|
|
-- contact person's input is completed
|
|
BEGIN
|
|
code := 'COMPCP';
|
|
BEGIN
|
|
select WEB_USER_MESS_TEXT_DSC, WEB_USER_MESS_ACTIONS_KEY into mes, actkey
|
|
from WEB_USER_MESS_TEXT where WEB_USER_MESS_TEXT_CODE = code;
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN null;
|
|
END;
|
|
-- inform facility manager
|
|
-- (but only if staff manager and contact person if it's not one person)
|
|
IF actkey is not null
|
|
AND :new.prs_aanmeld_pz_key <> :new.prs_aanmeld_contact_key
|
|
THEN
|
|
insert into WEB_USER_MESSAGES
|
|
select NULL, NULL, PRS_PERSLID_KEY, actkey, REPLACE(mes, '##NAAM##', naam), NULL, 1, :new.prs_aanmeld_key, SYSDATE
|
|
FROM PRS_V_AANWEZIGFACILITY;
|
|
END IF;
|
|
END;
|
|
END IF;
|
|
IF :old.PRS_AANMELD_FACI_OK is null and :new.PRS_AANMELD_FACI_OK is not null THEN
|
|
-- facilities input is completed
|
|
BEGIN
|
|
code := 'COMPFC';
|
|
BEGIN
|
|
select WEB_USER_MESS_TEXT_DSC, WEB_USER_MESS_ACTIONS_KEY into mes, actkey
|
|
from WEB_USER_MESS_TEXT where WEB_USER_MESS_TEXT_CODE = code;
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN null;
|
|
END;
|
|
IF actkey is not null THEN
|
|
insert into WEB_USER_MESSAGES
|
|
select NULL, NULL, u.PRS_PERSLID_KEY, actkey, REPLACE(mes,'##NAAM##',naam), NULL, 1, :new.prs_aanmeld_key, SYSDATE
|
|
FROM FAC_V_WEBGEBRUIKER w,FAC_V_WEBUSER u,FAC_V_WEBFUNCTIE f
|
|
WHERE u.PRS_PERSLID_INITIALEN=w.FAC_GEBRUIKER_USERNAME AND
|
|
f.FAC_FUNCTIE_KEY=w.FAC_FUNCTIE_KEY AND
|
|
f.FAC_FUNCTIE_CODE = 'WEB_PRSSYS';
|
|
END IF;
|
|
END;
|
|
END IF;
|
|
IF :old.PRS_AANMELD_SYS_OK is null and :new.PRS_AANMELD_SYS_OK is not null THEN
|
|
-- new employee processing is completed
|
|
BEGIN
|
|
-- refresh prs_perslid table
|
|
IF :new.Prs_aanmeld_titel_key IS NOT NULL THEN
|
|
SELECT nvl(FAC_USRDATA_OMSCHR,'')INTO mes FROM fac_usrdata
|
|
where fac_usrtab_key (+)= titel_key
|
|
and :new.Prs_aanmeld_titel_key = FAC_USRDATA_KEY(+);
|
|
ELSE
|
|
mes := '';
|
|
END IF;
|
|
update prs_perslid
|
|
set PRS_AFDELING_KEY =:new.Prs_afdeling_key,
|
|
PRS_PERSLID_NAAM = :new.Prs_aanmeld_naam,
|
|
PRS_PERSLID_TITEL = mes,
|
|
PRS_PERSLID_NR = :new.Prs_aanmeld_persnr,
|
|
PRS_PERSLID_INGANGSDATUM = :new.prs_aanmeld_datumbadgestart,
|
|
PRS_PERSLID_EINDDATUM = :new.prs_aanmeld_datumbadgeend,
|
|
PRS_PERSLID_TELEFOONNR = :new.prs_aanmeld_telintern,
|
|
PRS_PERSLID_AANMAAK = :new.Prs_aanmeld_aanmaak
|
|
where prs_perslid_key = :new.prs_perslid_key;
|
|
-- copy the rest of data into prs_kenmerk
|
|
-- copy email address
|
|
mes := null;
|
|
IF :new.PRS_AANMELD_EMAIL is not null THEN
|
|
BEGIN
|
|
select PRS_KENMERKLINK_WAARDE into mes from PRS_KENMERKLINK
|
|
where PRS_LINK_KEY = :new.prs_perslid_key and PRS_KENMERK_KEY = email_key;
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN null;
|
|
END;
|
|
IF mes is null THEN
|
|
insert into PRS_KENMERKLINK (PRS_KENMERKLINK_KEY,
|
|
PRS_LINK_KEY, PRS_KENMERK_KEY, PRS_KENMERKLINK_WAARDE, PRS_KENMERKLINK_NIVEAU )
|
|
values( prs_s_prs_kenmerkLink_key.NextVal, :new.prs_perslid_key,
|
|
email_key, :new.PRS_AANMELD_EMAIL ,'P');
|
|
ELSE
|
|
update PRS_KENMERKLINK set PRS_KENMERKLINK_WAARDE = :new.PRS_AANMELD_EMAIL
|
|
where PRS_LINK_KEY = :new.prs_perslid_key and PRS_KENMERK_KEY = email_key;
|
|
END IF;
|
|
END IF;
|
|
-- copy mobile phone
|
|
mes := null;
|
|
IF :new.PRS_AANMELD_MOBIEL is not null THEN
|
|
BEGIN
|
|
select PRS_KENMERKLINK_WAARDE into mes from PRS_KENMERKLINK
|
|
where PRS_LINK_KEY = :new.prs_perslid_key and PRS_KENMERK_KEY = mphone_key;
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN null;
|
|
END;
|
|
IF mes is null THEN
|
|
insert into PRS_KENMERKLINK (PRS_KENMERKLINK_KEY,
|
|
PRS_LINK_KEY, PRS_KENMERK_KEY, PRS_KENMERKLINK_WAARDE, PRS_KENMERKLINK_NIVEAU )
|
|
values( prs_s_prs_kenmerkLink_key.NextVal, :new.prs_perslid_key,
|
|
mphone_key, :new.PRS_AANMELD_MOBIEL ,'P');
|
|
ELSE
|
|
update PRS_KENMERKLINK set PRS_KENMERKLINK_WAARDE = :new.PRS_AANMELD_MOBIEL
|
|
where PRS_LINK_KEY = :new.prs_perslid_key and PRS_KENMERK_KEY = mphone_key;
|
|
END IF;
|
|
END IF;
|
|
-- copy badge number
|
|
mes := null;
|
|
IF :new.PRS_AANMELD_DEFBADGENR is not null THEN
|
|
BEGIN
|
|
select PRS_KENMERKLINK_WAARDE into mes from PRS_KENMERKLINK
|
|
where PRS_LINK_KEY = :new.prs_perslid_key and PRS_KENMERK_KEY = badgen_key;
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN null;
|
|
END;
|
|
IF mes is null THEN
|
|
insert into PRS_KENMERKLINK (PRS_KENMERKLINK_KEY,
|
|
PRS_LINK_KEY, PRS_KENMERK_KEY, PRS_KENMERKLINK_WAARDE, PRS_KENMERKLINK_NIVEAU )
|
|
values( prs_s_prs_kenmerkLink_key.NextVal, :new.prs_perslid_key,
|
|
badgen_key, :new.PRS_AANMELD_DEFBADGENR ,'P');
|
|
ELSE
|
|
update PRS_KENMERKLINK set PRS_KENMERKLINK_WAARDE = :new.PRS_AANMELD_DEFBADGENR
|
|
where PRS_LINK_KEY = :new.prs_perslid_key and PRS_KENMERK_KEY = badgen_key;
|
|
END IF;
|
|
END IF;
|
|
-- copy badge sort
|
|
mes := null;
|
|
IF :new.PRS_AANMELD_BADGESOORT is not null THEN
|
|
BEGIN
|
|
select PRS_KENMERKLINK_WAARDE into mes from PRS_KENMERKLINK
|
|
where PRS_LINK_KEY = :new.prs_perslid_key and PRS_KENMERK_KEY = badges_key;
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN null;
|
|
END;
|
|
IF mes is null THEN
|
|
insert into PRS_KENMERKLINK (PRS_KENMERKLINK_KEY,
|
|
PRS_LINK_KEY, PRS_KENMERK_KEY, PRS_KENMERKLINK_WAARDE, PRS_KENMERKLINK_NIVEAU )
|
|
values( prs_s_prs_kenmerkLink_key.NextVal, :new.prs_perslid_key,
|
|
badges_key, :new.PRS_AANMELD_BADGESOORT ,'P');
|
|
ELSE
|
|
update PRS_KENMERKLINK set PRS_KENMERKLINK_WAARDE = :new.PRS_AANMELD_BADGESOORT
|
|
where PRS_LINK_KEY = :new.prs_perslid_key and PRS_KENMERK_KEY = badges_key;
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
DELETE FROM WEB_USER_MESSAGES
|
|
WHERE web_user_mess_actions_key = AanmeldActKey
|
|
AND web_user_mess_action_params = :new.prs_aanmeld_key;
|
|
END IF;
|
|
IF :old.PRS_AANMELD_WERKPLEK_OPLOC = 1 and :new.PRS_AANMELD_WERKPLEK_OPLOC = 0 THEN
|
|
-- delete new employee information from the database
|
|
delete from prs_kenmerklink where PRS_LINK_KEY = :new.PRS_PERSLID_KEY;
|
|
delete from prs_perslidwerkplek where prs_perslid_key = :new.PRS_PERSLID_KEY;
|
|
delete from prs_perslid where prs_perslid_key = :new.PRS_PERSLID_KEY;
|
|
:new.PRS_PERSLID_KEY := null;
|
|
END IF;
|
|
keepmes := 7;
|
|
delete from WEB_USER_MESSAGES where WEB_USER_MESS_ACTION_DATUM < (SYSDATE - keepmes);
|
|
END;
|
|
END;
|
|
/
|
|
|
|
|
|
#endif //PRA
|