1196 lines
43 KiB
Plaintext
1196 lines
43 KiB
Plaintext
SET TERMOUT ON
|
|
SET FEEDBACK OFF
|
|
SET ECHO OFF
|
|
--
|
|
-- Update script van Facilitor versie 4.11 naar 4.12
|
|
--
|
|
|
|
/*
|
|
* 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.11 naar 04.12
|
|
PROMPT
|
|
SELECT 'De huidige versie van Facilitor zou moeten zijn 04.11 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 $411to412.SQL
|
|
PROMPT SPOOL $411to412.LST;
|
|
|
|
UPDMOD(FAC,411to412)
|
|
UPDMOD(ALG,411to412)
|
|
UPDMOD(PRS,411to412)
|
|
UPDMOD(INS,411to412)
|
|
UPDMOD(MLD,411to412)
|
|
UPDMOD(CAD,411to412)
|
|
UPDMOD(AKZ,411to412)
|
|
UPDMOD(PRJ,411to412)
|
|
UPDMOD(RES,411to412)
|
|
UPDMOD(SCH,411to412)
|
|
UPDMOD(SLE,411to412)
|
|
UPDMOD(WEB,411to412)
|
|
|
|
UPDATE_VERSION('04.12');
|
|
COMMIT;
|
|
PROMPT SPOOL OFF;
|
|
SPOOL OFF
|
|
START $411to412.SQL
|
|
#endif // MASTER
|
|
|
|
/* denk aan #ifdef constructies! */
|
|
|
|
/* PLAATS HIERONDER DE UPDATES */
|
|
|
|
#ifdef INS
|
|
|
|
CREATE_VIEW (ins_v_deel_acadsymbol, FAC_NORMAAL_PRIVILEGE)
|
|
( ins_deel_key, ins_srtdeel_acadsymbol )
|
|
AS SELECT ins_deel_key,
|
|
ins_srtdeel_acadsymbol
|
|
FROM ins_deel, ins_srtdeel
|
|
WHERE ins_deel.ins_srtdeel_key = ins_srtdeel.ins_srtdeel_key;
|
|
|
|
#endif // INS
|
|
|
|
#ifdef PRS
|
|
ALTER TABLE prs_bedrijf MODIFY (prs_leverancier_nr VARCHAR2(10));
|
|
|
|
CREATE_VIEW (FAC_V_WEBUSER, FAC_NORMAAL_PRIVILEGE) AS
|
|
SELECT PRS_PERSLID_KEY,
|
|
PRS_PERSLID_NAAM,
|
|
PRS_PERSLID_INIT_UPPER PRS_PERSLID_INITIALEN,
|
|
PRS_AFDELING_KEY
|
|
FROM PRS_V_AANWEZIGPERSLID P
|
|
WHERE P.PRS_PERSLID_INIT_UPPER IS NOT NULL;
|
|
|
|
create unique index prs_i_prs_perslid3 on prs_perslid(prs_perslid_init_upper);
|
|
|
|
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_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
|
|
|
|
CREATE_TRIGGER(mld_t_mld_melding_B_IU)
|
|
BEFORE INSERT OR UPDATE ON mld_melding
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(mld_melding_key, mld_s_mld_melding_key);
|
|
|
|
/* Vul het veld MLD_ALG_LOCATIE_KEY als de onroerendgoed_key wijzigd */
|
|
IF :old.mld_alg_onroerendgoed_keys IS NULL
|
|
OR :old.mld_alg_onroerendgoed_keys <> :new.mld_alg_onroerendgoed_keys
|
|
THEN
|
|
CHECK_REFERENCE_ONROERENDGOED(mld_alg_onroerendgoed_keys, 'alg_m090');
|
|
SELECT alg_locatie_key
|
|
INTO :new.mld_alg_locatie_key
|
|
FROM mld_v_onroerendgoed_locatie
|
|
WHERE alg_onroerendgoed_keys = :new.mld_alg_onroerendgoed_keys;
|
|
END IF;
|
|
IF :new.mld_melding_username IS NULL
|
|
THEN
|
|
SELECT USER
|
|
INTO :new.mld_melding_username
|
|
FROM DUAL;
|
|
END IF;
|
|
IF :new.prs_perslid_key IS NULL
|
|
THEN
|
|
raise_application_error(-20000, 'mld_m233');
|
|
END IF;
|
|
IF :new.prs_afdeling_key IS NULL
|
|
THEN
|
|
raise_application_error(-20000, 'mld_m234');
|
|
END IF;
|
|
IF :new.mld_melding_afgewezen IS NOT NULL
|
|
AND :new.mld_melding_geaccepteerd IS NOT NULL
|
|
THEN
|
|
raise_application_error(-20000, 'mld_m175');
|
|
END IF;
|
|
IF :new.mld_melding_geaccepteerd IS NOT NULL
|
|
AND :old.mld_melding_geaccepteerd IS NULL
|
|
AND :new.mld_melding_geaccepteerd_user IS NULL
|
|
THEN
|
|
SELECT USER
|
|
INTO :new.mld_melding_geaccepteerd_user
|
|
FROM DUAL;
|
|
END IF;
|
|
IF :new.mld_melding_verwerkt IS NOT NULL AND :old.mld_melding_verwerkt IS NULL THEN
|
|
-- De melding wordt nu verwerkt
|
|
IF :old.mld_melding_geaccepteerd IS NULL AND :old.mld_melding_afgemeld IS NULL THEN
|
|
raise_application_error(-20000, 'mld_m203');
|
|
ELSE
|
|
DECLARE
|
|
Dummy VARCHAR2(1);
|
|
BEGIN
|
|
SELECT 'X'
|
|
INTO Dummy
|
|
FROM mld_opdr MLD_O, mld_statusopdr MLD_SO
|
|
WHERE MLD_O.mld_statusopdr_key = MLD_SO.mld_statusopdr_key
|
|
AND (MLD_SO.mld_statusopdr_upper = 'MLD_UITGEGEVEN'
|
|
OR MLD_SO.mld_statusopdr_upper = 'MLD_AFGEMELD')
|
|
AND MLD_O.mld_melding_key = :new.mld_melding_key;
|
|
raise_application_error(-20000, 'mld_m192');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN raise_application_error(-20000, 'mld_m192');
|
|
END;
|
|
END IF;
|
|
ELSIF :new.mld_melding_afgemeld IS NOT NULL AND :old.mld_melding_afgemeld IS NULL THEN
|
|
-- De melding wordt nu afgemeld
|
|
IF :old.mld_melding_geaccepteerd IS NULL THEN
|
|
raise_application_error(-20000, 'mld_m202');
|
|
ELSIF :old.mld_melding_verwerkt IS NOT NULL THEN
|
|
raise_application_error(-20000, 'mld_m195');
|
|
END IF;
|
|
END IF;
|
|
|
|
IF :new.mld_melding_uitvoertijd2 IS NULL
|
|
THEN
|
|
:new.mld_melding_uitvoertijd2 := :new.mld_melding_uitvoertijd;
|
|
END IF;
|
|
-- Update melding status
|
|
IF :new.MLD_MELDING_AFGEWEZEN is not null THEN :new.MLD_MELDING_STATUS := 1;
|
|
ELSIF :new.MLD_MELDING_VERWERKT is not null THEN :new.MLD_MELDING_STATUS := 6;
|
|
ELSIF :new.MLD_MELDING_AFGEMELD is not null THEN :new.MLD_MELDING_STATUS := 5;
|
|
ELSIF :new.MLD_MELDING_GEACCEPTEERD is not null THEN :new.MLD_MELDING_STATUS := 4;
|
|
ELSIF :new.MLD_MELDING_INGEZIEN is not null THEN :new.MLD_MELDING_STATUS := 3;
|
|
ELSE :new.MLD_MELDING_STATUS := 2;
|
|
END IF;
|
|
|
|
END;
|
|
/
|
|
|
|
DEF_FAC_ENTITY ('MLD_MELDING_ORDERNR', 'Ordernr.', 'Ordernrs.', 'de','Orderno.');
|
|
|
|
|
|
CREATE_VIEW(mld_v_mld_opdrachtgeprint,MLD_NORMAAL_PRIVILEGE)
|
|
( MLD_OPDRACHT_KEY
|
|
, MLD_OPDRACHT_GEPRINT
|
|
, MLD_OPDRACHT_OMSCHRIJVING
|
|
, MLD_OPDR_BEDRIJFOPDR_VOLGNR
|
|
, MLD_OPDR_CONTACTPERSOON
|
|
, MLD_OPDR_UREN
|
|
, MLD_OPDR_UURLOON
|
|
, MLD_OPDR_KOSTEN
|
|
, MLD_OPDR_MATERIAAL
|
|
, MLD_OPDR_KOSTENPOST
|
|
, MLD_MELDING_KEY
|
|
, MLD_MELDING_USERNAME
|
|
, PRS_PERSLID_NR
|
|
, PRS_PERSLID_KEY
|
|
, MLD_MELDING_MELDER_NAAM -- Naam van persoon die de melding gedaan heeft.
|
|
, PRS_PERSLID_TELEFOONNR --
|
|
, PRS_PERSLID_GEBOUW_CODE --
|
|
, PRS_PERSLID_VERD_RUIMTE --
|
|
, PRS_AFDELING_NAAM -- Naam van de afdeling waartoe de persoon behoort die de melding heeft gedaan.
|
|
, ALG_LOCATIE_CODE
|
|
, ALG_GEBOUW_OMSCHRIJVING
|
|
, ALG_VERDIEPING_OMSCHRIJVING
|
|
, ALG_RUIMTE_OMSCHRIJVING
|
|
, ALG_TERREINVAK_OMSCHRIJVING
|
|
, MLD_STDMELDING_OMSCHRIJVING
|
|
, MLD_MELDING_OMSCHRIJVING
|
|
, MLD_MELDING_DATUM
|
|
, MLD_MELDING_UITVOERTIJD
|
|
, PRS_BEDRIJF_NAAM -- Naam van uitvoerende bedrijf of afdeling.
|
|
, PRS_BEDRIJF_POST_ADRES -- Postadres van uitvoerende bedrijf.
|
|
, PRS_BEDRIJF_POST_PLAATS -- Postcode en plaats van postadres uitvoerende bedrijf.
|
|
, PRS_BEDRIJF_CONTACTPERSOON -- Naam van contactpersoon van uitvoerende bedrijf of afdeling.
|
|
, PRS_BEDRIJF_TELEFOON -- Telefoonnr van contactpersoon van uitvoerende bedrijf of afdeling.
|
|
, PRS_OVEREENKOMST_NR )
|
|
AS SELECT MLD_O.mld_opdr_key
|
|
, MLD_O.mld_opdr_geprint
|
|
, MLD_O.mld_opdr_omschrijving
|
|
, MLD_O.mld_opdr_bedrijfopdr_volgnr
|
|
, MLD_O.mld_opdr_contactpersoon
|
|
, MLD_O.mld_opdr_uren
|
|
, MLD_O.mld_opdr_uurloon
|
|
, MLD_O.mld_opdr_kosten
|
|
, MLD_O.mld_opdr_materiaal
|
|
, ALG_K.alg_kostenpost_omschrijving
|
|
, MLD_M.mld_melding_key
|
|
, MLD_M.mld_melding_username
|
|
, MLD_P.prs_perslid_nr
|
|
, MLD_M.prs_perslid_key
|
|
, MLD_PG.prs_perslid_naam
|
|
, MLD_PG.prs_perslid_telefoonnr
|
|
, MLD_P.alg_gebouw_code
|
|
, TO_CHAR(MLD_P.alg_verdieping_volgnr)||'-'||MLD_P.alg_ruimte_nr
|
|
, PRS_A.prs_afdeling_omschrijving
|
|
, ALG_L.alg_locatie_code
|
|
, rtrim(ALG_G.alg_gebouw_code)||'-'||ALG_G.alg_gebouw_naam
|
|
, rtrim(TO_CHAR(ALG_G.alg_verdieping_volgnr))||'-'||ALG_G.alg_verdieping_omschrijving
|
|
, rtrim(ALG_G.alg_ruimte_nr)||'-'||ALG_G.alg_ruimte_omschrijving
|
|
, decode(alg_type,'T',rtrim(alg_terreinsector_code)||'-'||ALG_G.alg_onroerendgoed_omschrijving,'-')
|
|
, MLD_S.mld_stdmelding_omschrijving
|
|
, MLD_M.mld_melding_omschrijving
|
|
, MLD_M.mld_melding_datum
|
|
, MLD_M.mld_melding_uitvoertijd
|
|
, NVL(PRS_B.prs_bedrijf_naam,MLD_P.prs_afdeling_naam)
|
|
, PRS_B.prs_bedrijf_post_adres
|
|
, decode(PRS_B.prs_bedrijf_post_postcode,null,null,PRS_B.prs_bedrijf_post_postcode||' ')||PRS_B.prs_bedrijf_post_plaats
|
|
, NVL(PRS_B.prs_bedrijf_contact_persoon,MLD_P.prs_perslid_naam)
|
|
, NVL(PRS_B.prs_bedrijf_contact_telefoon,MLD_P.prs_perslid_telefoonnr)
|
|
, PRS_B.prs_overeenkomst_nr
|
|
FROM mld_opdr MLD_O
|
|
, mld_melding MLD_M
|
|
, mld_meldbron MLD_B
|
|
, ins_tab_discipline INS_D
|
|
, alg_locatie ALG_L
|
|
, mld_stdmelding MLD_S
|
|
, alg_v_onroerendgoed_gegevens ALG_G
|
|
, mld_v_mld_perslid_gegevens MLD_P
|
|
, mld_v_mld_perslid_gegevens MLD_PG
|
|
, prs_bedrijf PRS_B
|
|
, prs_afdeling PRS_A
|
|
, alg_kostenpost ALG_K
|
|
WHERE MLD_M.mld_ins_discipline_key = INS_D.ins_discipline_key
|
|
AND MLD_M.mld_alg_locatie_key = ALG_L.alg_locatie_key
|
|
AND MLD_M.mld_alg_onroerendgoed_keys = ALG_G.alg_onroerendgoed_keys
|
|
AND MLD_M.mld_stdmelding_key = MLD_S.mld_stdmelding_key
|
|
AND MLD_M.mld_meldbron_key = MLD_B.mld_meldbron_key
|
|
AND MLD_O.mld_melding_key = MLD_M.mld_melding_key
|
|
AND MLD_O.mld_uitvoerende_keys = PRS_B.prs_bedrijf_key (+)
|
|
AND MLD_O.mld_uitvoerende_keys = MLD_P.prs_perslid_key (+)
|
|
AND MLD_O.mld_alg_kostenpost_key = ALG_K.alg_kostenpost_key (+)
|
|
AND MLD_M.prs_afdeling_key = PRS_A.prs_afdeling_key (+)
|
|
AND MLD_M.prs_perslid_key = MLD_PG.prs_perslid_key (+);
|
|
|
|
CREATE_VIEW(mld_v_mld_meldingprint,MLD_NORMAAL_PRIVILEGE)
|
|
( MLD_MELDING_KEY
|
|
, MLD_MELDING_GEPRINT
|
|
, MLD_MELDING_USERNAME
|
|
, PRS_PERSLID_NR
|
|
, MLD_MELDING_MELDER_NAAM
|
|
, PRS_PERSLID_TELEFOONNR
|
|
, PRS_PERSLID_GEBOUW_CODE
|
|
, PRS_PERSLID_VERD_RUIMTE
|
|
, PRS_AFDELING_NAAM
|
|
, ALG_LOCATIE_CODE
|
|
, ALG_GEBOUW_OMSCHRIJVING
|
|
, ALG_VERDIEPING_OMSCHRIJVING
|
|
, ALG_RUIMTE_OMSCHRIJVING
|
|
, ALG_TERREINSECTOR_OMSCHRIJVING
|
|
, INS_DISCIPLINE_OMSCHRIJVING
|
|
, MLD_STDMELDING_OMSCHRIJVING
|
|
, MLD_MELDING_OMSCHRIJVING
|
|
, MLD_MELDING_ORDERNR
|
|
, MLD_MELDING_OPMERKING
|
|
, MLD_MELDING_DATUM
|
|
, MLD_MELDING_UITVOERTIJD
|
|
, MLD_MELDING_LEVERTIJD)
|
|
AS SELECT MLD_M.mld_melding_key
|
|
, MLD_M.mld_melding_geprint
|
|
, MLD_M.mld_melding_username
|
|
, MLD_PG.prs_perslid_nr
|
|
, NVL(MLD_M.mld_melding_melder_naam,MLD_PG.prs_perslid_naam)
|
|
, NVL(MLD_M.mld_melding_melder_telefoon,MLD_PG.prs_perslid_telefoonnr)
|
|
, MLD_PG.alg_gebouw_code
|
|
, TO_CHAR(MLD_PG.alg_verdieping_volgnr)||'-'||MLD_PG.alg_ruimte_nr
|
|
, NVL(PRS_A.prs_afdeling_naam,MLD_PG.prs_afdeling_naam)
|
|
, ALG_L.alg_locatie_code
|
|
, RTRIM(ALG_OG.alg_gebouw_code)||'-'||ALG_OG.alg_gebouw_naam
|
|
, RTRIM(TO_CHAR(ALG_OG.alg_verdieping_volgnr))||'-'||ALG_OG.alg_verdieping_omschrijving
|
|
, RTRIM(ALG_OG.alg_ruimte_nr)||'-'||ALG_OG.alg_ruimte_omschrijving
|
|
, DECODE(alg_type,'T',RTRIM(alg_terreinsector_code)||'-'||ALG_OG.alg_onroerendgoed_omschrijving,'-')
|
|
, INS_D.ins_discipline_omschrijving
|
|
, MLD_SM.mld_stdmelding_omschrijving
|
|
, MLD_M.mld_melding_omschrijving
|
|
, MLD_M.mld_melding_ordernr
|
|
, MLD_M.mld_melding_opmerking
|
|
, MLD_M.mld_melding_datum
|
|
, MLD_M.mld_melding_uitvoertijd
|
|
, 0
|
|
FROM MLD_MELDING MLD_M
|
|
, MLD_MELDBRON MLD_MB
|
|
, MLD_STDMELDING MLD_SM
|
|
, INS_TAB_DISCIPLINE INS_D
|
|
, ALG_LOCATIE ALG_L
|
|
, alg_v_onroerendgoed_gegevens ALG_OG
|
|
, mld_v_mld_perslid_gegevens MLD_PG
|
|
, PRS_AFDELING PRS_A
|
|
WHERE MLD_M.mld_ins_discipline_key = INS_D.ins_discipline_key
|
|
AND MLD_M.mld_alg_locatie_key = ALG_L.alg_locatie_key
|
|
AND MLD_M.mld_alg_onroerendgoed_keys = ALG_OG.alg_onroerendgoed_keys
|
|
AND MLD_M.mld_stdmelding_key = MLD_SM.mld_stdmelding_key
|
|
AND MLD_M.mld_meldbron_key = MLD_MB.mld_meldbron_key
|
|
AND MLD_M.prs_perslid_key = MLD_PG.prs_perslid_key (+)
|
|
AND PRS_A.prs_afdeling_key=MLD_M.prs_afdeling_key;
|
|
|
|
CREATE_TABLE(mld_statuses ,MLD_NORMAAL_PRIVILEGE)
|
|
(
|
|
mld_statuses_key
|
|
NUMBER(10)
|
|
CONSTRAINT mld_k_statuses_key PRIMARY KEY,
|
|
mld_statuses_omschrijving
|
|
VARCHAR2(30)
|
|
);
|
|
|
|
DELETE FROM mld_statuses;
|
|
insert into mld_statuses values ( 1, 'Verworpen' );
|
|
insert into mld_statuses values ( 2, 'Ingevoerd' );
|
|
insert into mld_statuses values ( 3, 'Ingezien' );
|
|
insert into mld_statuses values ( 4, 'Geaccepteerd' );
|
|
insert into mld_statuses values ( 5, 'Uitgevoerd' );
|
|
insert into mld_statuses values ( 6, 'Verwerkt' );
|
|
|
|
ALTER TABLE mld_melding
|
|
ADD (mld_melding_status
|
|
NUMBER(2)
|
|
CONSTRAINT mld_r_mld_statuses_key REFERENCES mld_statuses(mld_statuses_key)
|
|
);
|
|
|
|
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,
|
|
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,
|
|
AF.prs_afdeling_eenheid,
|
|
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
|
|
FROM mld_melding M,
|
|
mld_statuses S,
|
|
mld_discipline MD,
|
|
mld_stdmelding SM,
|
|
prs_afdeling AF,
|
|
prs_perslid P,
|
|
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 M.mld_alg_locatie_key=L.alg_locatie_key (+)
|
|
AND M.mld_alg_onroerendgoed_keys=G.alg_onroerendgoed_keys (+)
|
|
;
|
|
|
|
|
|
-- Refresh this new field
|
|
UPDATE mld_melding SET mld_melding_key=mld_melding_key;
|
|
|
|
drop index mld_i_mld_melding6;
|
|
create index mld_i_mld_melding6 on mld_melding(mld_ins_discipline_key,mld_melding_status,mld_melding_datum,prs_perslid_key,mld_stdmelding_key);
|
|
|
|
|
|
#endif // MLD
|
|
|
|
#ifdef RES
|
|
ALTER TABLE res_reservering ADD
|
|
(res_reservering_user_key
|
|
NUMBER(10)
|
|
CONSTRAINT res_r_res_reservering_user_key REFERENCES prs_perslid(prs_perslid_key),
|
|
res_reservering_omschrijving
|
|
VARCHAR2(30),
|
|
res_reservering_ordernr
|
|
VARCHAR2(12),
|
|
prs_afdeling_key
|
|
NUMBER(10)
|
|
CONSTRAINT res_r_prs_afdeling_key4 REFERENCES PRS_AFDELING (PRS_AFDELING_KEY),
|
|
res_reservering_telefoon
|
|
VARCHAR2(15)
|
|
);
|
|
|
|
|
|
-- Deze nieuwe kolommen ook in deze view opnemen
|
|
DEFINIEER_VIEW_AANWEZIG(res_reservering, res_reservering_verwijder,
|
|
res_v_aanwezigreservering,RES_NORMAAL_PRIVILEGE);
|
|
|
|
|
|
DEF_FAC_MESSAGE ('res_r_res_reservering_user' , 'Er zijn nog referenties van personen (invoerder) naar deze reservering.' ,'This reservation references persons as user.');
|
|
DEF_FAC_MESSAGE ('res_r_prs_afdeling_key4' , 'Er zijn nog referenties van afdelingen naar deze reservering.' ,'This reservation references a department.');
|
|
|
|
ALTER TABLE res_ruimte ADD
|
|
(res_ruimte_omschrijving
|
|
VARCHAR2(255)
|
|
);
|
|
|
|
ALTER TABLE res_artikel ADD
|
|
res_artikel_default
|
|
NUMBER(1);
|
|
|
|
ALTER TABLE res_artikel ADD
|
|
res_artikel_prijs_vast
|
|
NUMBER(1);
|
|
|
|
ALTER TABLE res_deel ADD
|
|
res_deel_prijs_vast
|
|
NUMBER(1);
|
|
|
|
-- Deze nieuwe kolommen ook in deze view opnemen
|
|
DEFINIEER_VIEW_AANWEZIG(res_artikel, res_artikel_verwijder,
|
|
res_v_aanwezigartikel,RES_NORMAAL_PRIVILEGE);
|
|
|
|
DEFINIEER_VIEW_AANWEZIG(res_deel, res_deel_verwijder,
|
|
res_v_aanwezigdeel, RES_NORMAAL_PRIVILEGE);
|
|
|
|
create index res_i_res_reservering3 on res_reservering(res_reservering_van);
|
|
|
|
CREATE OR REPLACE PACKAGE res AS
|
|
PROCEDURE Res_Maak_Opdracht(ReserveringKey IN NUMBER, OpstellingKey IN NUMBER);
|
|
FUNCTION Res_Check_ReserveringStatus(ReserveringKey IN NUMBER) RETURN BOOLEAN;
|
|
FUNCTION res_f_object_available(res_deel IN NUMBER, date_start IN DATE, date_end IN DATE) RETURN INTEGER;
|
|
FUNCTION res_f_validate_res_timechange (reserv_key IN NUMBER, date_start IN DATE, date_end IN DATE) RETURN INTEGER;
|
|
PRAGMA RESTRICT_REFERENCES (Res_Check_ReserveringStatus, WNDS, WNPS);
|
|
END res;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY res AS
|
|
|
|
PROCEDURE Res_Maak_Opdracht(ReserveringKey IN NUMBER, OpstellingKey IN NUMBER) IS
|
|
CURSOR Opdr_bedrijf IS
|
|
SELECT DISTINCT(prs_bedrijf_key)
|
|
, prs_bedrijf_key
|
|
FROM res_v_aanwezigartikel
|
|
WHERE prs_bedrijf_key IS NOT NULL
|
|
AND res_artikel_key IN
|
|
(SELECT res_artikel_key
|
|
FROM res_v_aanwezigrsv_artikel
|
|
WHERE res_reservering_key = ReserveringKey);
|
|
|
|
CURSOR Opdr_afdeling IS
|
|
SELECT DISTINCT(prs_afdeling_key)
|
|
, prs_afdeling_key
|
|
FROM res_v_aanwezigartikel
|
|
WHERE prs_afdeling_key IS NOT NULL
|
|
AND res_artikel_key IN
|
|
(SELECT res_artikel_key
|
|
FROM res_v_aanwezigrsv_artikel
|
|
WHERE res_reservering_key = ReserveringKey);
|
|
|
|
CURSOR Opdr_discipline IS
|
|
SELECT DISTINCT(ins_discipline_key)
|
|
, ins_discipline_key
|
|
FROM ins_deel
|
|
WHERE ins_deel_key IN
|
|
(SELECT res_ins_deel_key
|
|
FROM res_v_aanwezigdeel
|
|
WHERE res_deel_key IN
|
|
(SELECT res_deel_key
|
|
FROM res_v_aanwezigrsv_deel
|
|
WHERE res_reservering_key = ReserveringKey));
|
|
|
|
OpdrachtStatus VARCHAR2(15);
|
|
OpdrachtKey NUMBER(10);
|
|
|
|
BEGIN
|
|
SELECT fac_entity_user_name
|
|
INTO OpdrachtStatus
|
|
FROM fac_entity_name
|
|
WHERE fac_entity_system_name = 'RES_OPDRACHT_NIEUW';
|
|
--
|
|
FOR BedrijfRec IN Opdr_Bedrijf
|
|
LOOP
|
|
BEGIN
|
|
INSERT INTO res_opdracht
|
|
( res_reservering_key
|
|
, res_opdracht_status
|
|
, prs_bedrijf_key)
|
|
VALUES(ReserveringKey
|
|
, OpdrachtStatus
|
|
, BedrijfRec.prs_bedrijf_key);
|
|
EXCEPTION
|
|
WHEN DUP_VAL_ON_INDEX THEN NULL;
|
|
END;
|
|
END LOOP;
|
|
--
|
|
FOR AfdelingRec IN Opdr_Afdeling
|
|
LOOP
|
|
BEGIN
|
|
INSERT INTO res_opdracht
|
|
( res_reservering_key
|
|
, res_opdracht_status
|
|
, prs_afdeling_key)
|
|
VALUES(ReserveringKey
|
|
, OpdrachtStatus
|
|
, AfdelingRec.prs_afdeling_key);
|
|
EXCEPTION
|
|
WHEN DUP_VAL_ON_INDEX THEN NULL;
|
|
END;
|
|
END LOOP;
|
|
--
|
|
FOR DisciplineRec IN Opdr_Discipline
|
|
LOOP
|
|
BEGIN
|
|
INSERT INTO res_opdracht
|
|
( res_reservering_key
|
|
, res_opdracht_status
|
|
, ins_discipline_key)
|
|
VALUES(ReserveringKey
|
|
, OpdrachtStatus
|
|
, DisciplineRec.ins_discipline_key);
|
|
EXCEPTION
|
|
WHEN DUP_VAL_ON_INDEX THEN NULL;
|
|
END;
|
|
END LOOP;
|
|
--
|
|
BEGIN
|
|
SELECT res_opdracht_key
|
|
INTO OpdrachtKey
|
|
FROM res_v_aanwezigopdracht
|
|
WHERE res_reservering_key = ReserveringKey
|
|
AND prs_bedrijf_key IS NULL
|
|
AND prs_afdeling_key IS NULL
|
|
AND ins_discipline_key IS NULL;
|
|
--
|
|
IF OpstellingKey IS NULL
|
|
THEN
|
|
UPDATE res_v_aanwezigopdracht RES_OPD
|
|
SET res_opdracht_verwijder = SYSDATE
|
|
WHERE res_opdracht_key = OpdrachtKey;
|
|
ELSE
|
|
--UPDATE res_v_aanwezigopdracht
|
|
--SET res_opdracht_status = OpdrachtStatus
|
|
--WHERE res_opdracht_key = OpdrachtKey;
|
|
NULL;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
IF OpstellingKey IS NOT NULL
|
|
THEN
|
|
INSERT INTO res_opdracht
|
|
( res_reservering_key
|
|
, res_opdracht_status)
|
|
VALUES(ReserveringKey
|
|
, OpdrachtStatus);
|
|
END IF;
|
|
END;
|
|
/* Als er nog opdrachten waarvan de artikelen/objecten niet meer in de kruistabellen
|
|
** staan, dan moeten deze ook uit de tabel res_opdracht verwijderd worden.
|
|
*/
|
|
UPDATE res_v_aanwezigopdracht RES_OPD
|
|
SET res_opdracht_verwijder = SYSDATE
|
|
WHERE res_reservering_key = ReserveringKey
|
|
AND prs_bedrijf_key IS NOT NULL
|
|
AND prs_bedrijf_key NOT IN
|
|
(SELECT prs_bedrijf_key
|
|
FROM res_v_aanwezigrsv_artikel R
|
|
, res_v_aanwezigartikel A
|
|
WHERE A.prs_bedrijf_key IS NOT NULL
|
|
AND A.res_artikel_key = R.res_artikel_key
|
|
AND R.res_reservering_key = ReserveringKey);
|
|
--
|
|
UPDATE res_v_aanwezigopdracht RES_OPD
|
|
SET res_opdracht_verwijder = SYSDATE
|
|
WHERE res_reservering_key = ReserveringKey
|
|
AND prs_afdeling_key IS NOT NULL
|
|
AND prs_afdeling_key NOT IN
|
|
(SELECT prs_afdeling_key
|
|
FROM res_v_aanwezigrsv_artikel R
|
|
, res_v_aanwezigartikel A
|
|
WHERE A.prs_afdeling_key IS NOT NULL
|
|
AND A.res_artikel_key = R.res_artikel_key
|
|
AND R.res_reservering_key = ReserveringKey);
|
|
--
|
|
UPDATE res_v_aanwezigopdracht RES_OPD
|
|
SET res_opdracht_verwijder = SYSDATE
|
|
WHERE res_reservering_key = ReserveringKey
|
|
AND ins_discipline_key IS NOT NULL
|
|
AND ins_discipline_key NOT IN
|
|
(SELECT I.ins_discipline_key
|
|
FROM res_v_aanwezigrsv_deel R
|
|
, res_v_aanwezigdeel A
|
|
, ins_v_aanwezigdeel I
|
|
WHERE A.res_deel_key = R.res_deel_key
|
|
AND A.res_ins_deel_key = I.ins_deel_key
|
|
AND R.res_reservering_key = ReserveringKey);
|
|
--
|
|
END RES_MAAK_OPDRACHT;
|
|
|
|
|
|
|
|
/* Onderstaande functie checkt of de status van OPTIE --> DEFINITIEF mag,
|
|
* m.a.w. of de reservering door kan gaan.
|
|
*/
|
|
FUNCTION Res_Check_ReserveringStatus (ReserveringKey IN NUMBER) RETURN BOOLEAN IS
|
|
RuimteGevonden NUMBER(1);
|
|
ObjectGevonden NUMBER(1);
|
|
StatusDefinitief VARCHAR2(80);
|
|
van DATE;
|
|
tot DATE;
|
|
RuimteKey NUMBER(10);
|
|
BEGIN
|
|
SELECT res_reservering_van
|
|
, res_reservering_tot
|
|
, res_ruimte_key
|
|
INTO van
|
|
, tot
|
|
, RuimteKey
|
|
FROM res_reservering
|
|
WHERE res_reservering_key = ReserveringKey;
|
|
--
|
|
SELECT fac_message_text
|
|
INTO StatusDefinitief
|
|
FROM fac_message
|
|
WHERE fac_message_code = 'RES_M002';
|
|
--
|
|
-- Is de ruimte van deze reservering binnen de reserveringsperiode
|
|
-- al definitief gereserveerd in een andere reservering?
|
|
-- NB. Dezelfde selectiecriteria worden ook gebruikt in RES011 en RES111
|
|
-- in de procedure Printen, voor het aanmaken van een conflicten-lijst.
|
|
--
|
|
BEGIN
|
|
SELECT 1
|
|
INTO RuimteGevonden
|
|
FROM res_reservering R
|
|
, res_alg_ruimte A
|
|
WHERE R.res_ruimte_key = A.res_ruimte_key
|
|
AND R.res_reservering_status = StatusDefinitief
|
|
AND NOT ( R.res_reservering_tot <= van
|
|
OR R.res_reservering_van >= tot)
|
|
AND R.res_reservering_key <> ReserveringKey
|
|
AND R.res_reservering_verwijder IS NULL
|
|
AND A.alg_ruimte_key IN (SELECT K.alg_ruimte_key
|
|
FROM res_alg_ruimte K
|
|
WHERE K.res_ruimte_key = RuimteKey);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN RuimteGevonden := 0;
|
|
WHEN TOO_MANY_ROWS THEN RuimteGevonden := 2;
|
|
END;
|
|
--
|
|
-- Zijn de objecten die in de huidige reservering nodig zijn al bij een
|
|
-- andere reservering definitief vastgelegd binnen dezelfde periode?
|
|
-- NB. Dezelfde selectiecriteria worden ook gebruikt in RES011 en RES111
|
|
-- in de procedure Printen, voor het aanmaken van een conflicten-lijst.
|
|
--
|
|
BEGIN
|
|
SELECT 1
|
|
INTO ObjectGevonden
|
|
FROM res_rsv_deel D
|
|
WHERE res_rsv_deel_verwijder IS NULL
|
|
AND EXISTS (SELECT ''
|
|
FROM res_reservering R
|
|
WHERE NOT ( R.res_reservering_tot <= van
|
|
OR R.res_reservering_van >= tot)
|
|
AND R.res_reservering_verwijder IS NULL
|
|
AND R.res_reservering_key <> ReserveringKey
|
|
AND R.res_reservering_key = D.res_reservering_key
|
|
AND R.res_reservering_status = StatusDefinitief
|
|
)
|
|
AND EXISTS (SELECT ''
|
|
FROM res_rsv_deel R
|
|
WHERE R.res_reservering_key = ReserveringKey
|
|
AND R.res_deel_key = D.res_deel_key
|
|
AND R.res_rsv_deel_verwijder IS NULL);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN ObjectGevonden := 0;
|
|
WHEN TOO_MANY_ROWS THEN ObjectGevonden := 2;
|
|
END;
|
|
--
|
|
IF (RuimteGevonden + ObjectGevonden) = 0
|
|
THEN
|
|
RETURN TRUE;
|
|
ELSE
|
|
RETURN FALSE;
|
|
END IF;
|
|
END Res_Check_ReserveringStatus;
|
|
|
|
|
|
|
|
FUNCTION res_f_object_available (res_deel IN NUMBER,
|
|
date_start IN DATE,
|
|
date_end IN DATE) RETURN INTEGER IS
|
|
temp NUMBER;
|
|
CURSOR query(rkey NUMBER, ds DATE, de DATE) IS
|
|
SELECT 1 FROM res_v_aanwezigreservering r
|
|
WHERE r.res_reservering_key IN (SELECT res_reservering_key
|
|
FROM res_v_aanwezigrsv_deel
|
|
WHERE res_deel_key = rkey)
|
|
AND NOT ((ds >= r.res_reservering_tot) OR (de <= r.res_reservering_van));
|
|
BEGIN
|
|
OPEN query(res_deel, date_start, date_end);
|
|
FETCH query INTO temp;
|
|
IF query%FOUND = TRUE THEN
|
|
RETURN 0;
|
|
END IF;
|
|
|
|
RETURN 1;
|
|
END;
|
|
|
|
|
|
FUNCTION res_f_validate_res_timechange (reserv_key IN NUMBER,
|
|
date_start IN DATE,
|
|
date_end IN DATE) RETURN INTEGER IS
|
|
CURSOR query(r_key NUMBER, ds DATE, de DATE) IS
|
|
SELECT rd.res_deel_key
|
|
FROM res_v_aanwezigrsv_deel rd, res_v_aanwezigreservering r
|
|
WHERE rd.res_reservering_key <> r_key
|
|
AND rd.res_reservering_key = r.res_reservering_key
|
|
AND rd.res_deel_key IN
|
|
(SELECT rv.res_deel_key
|
|
FROM res_v_aanwezigrsv_deel rv
|
|
where rv.res_reservering_key = r_key)
|
|
AND ((ds >= r.res_reservering_van AND ds < r.res_reservering_tot)
|
|
OR (de > r.res_reservering_van AND de <= r.res_reservering_tot));
|
|
temp NUMBER;
|
|
BEGIN
|
|
OPEN query(reserv_key, date_start, date_end);
|
|
FETCH query INTO temp;
|
|
IF (query%FOUND = TRUE) THEN
|
|
RETURN 0;
|
|
END IF;
|
|
RETURN 1;
|
|
END;
|
|
|
|
END res;
|
|
/
|
|
|
|
#endif // RES
|
|
|
|
|
|
#ifdef WEB
|
|
DEF_FAC_FUNCTIE('WEB_OBJMAN', 'Business:Objectbeheer', 'WEB', 1);
|
|
|
|
DEF_FAC_FUNCTIE('WEB_RESFOF', 'Frontoffice:Reserveringen', 'WEB', 2);
|
|
DEF_FAC_FUNCTIE('WEB_MLDFOF', 'Frontoffice:Meldingen', 'WEB', 2);
|
|
|
|
DEF_FAC_FUNCTIE('WEB_PRSBOF', 'Backoffice:Persoonsgegevens', 'WEB', 2);
|
|
|
|
DEF_FAC_ENTITY ('WEB_GEBRUIKER', 'WEB-gebruiker','WEB-gebruikers', 'de','WEB-user');
|
|
DEF_FAC_ENTITY ('WEB_GEBRUIKER_FUNCTIES', 'WEB-functies',NULL,NULL,'WEB-functions');
|
|
|
|
DROP VIEW FAC_V_FCLTWEBFUNCTIE_DISC;
|
|
|
|
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)
|
|
AND FD.fac_functie_discipline_key IN (SELECT fac_functie_discipline_key
|
|
FROM FAC_GEBRUIKER G
|
|
WHERE G.fac_gebruiker_module=FD.fac_functie_discipline_module
|
|
AND G.fac_gebruiker_kolomkey=FD.fac_functie_discipline_key
|
|
AND G.fac_gebruiker_username='FCLTWEB'))
|
|
OR (FD.fac_functie_discipline_type ='F' AND FD.fac_functie_discipline_module='WEB');
|
|
|
|
|
|
CREATE_TABLE(web_user_mess_actions,WEB_NORMAAL_PRIVILEGE)
|
|
(
|
|
web_user_mess_actions_key
|
|
NUMBER(10)
|
|
CONSTRAINT web_mes_act_k_rl_key PRIMARY KEY,
|
|
web_user_mess_action_dsc
|
|
VARCHAR2(255)
|
|
CONSTRAINT web_c_web_mes_act_dsc NOT NULL
|
|
);
|
|
|
|
CREATE_TABLE(WEB_USER_MESS_TEXT,WEB_NORMAAL_PRIVILEGE)
|
|
(
|
|
web_user_mess_text_key
|
|
NUMBER(10)
|
|
CONSTRAINT web_mes_txt_k_rl_key PRIMARY KEY,
|
|
web_user_mess_text_code
|
|
VARCHAR2(6)
|
|
CONSTRAINT web_c_u_mes_txt_code UNIQUE,
|
|
web_user_mess_text_dsc VARCHAR2(255)
|
|
CONSTRAINT web_c_web_mes_txt_dsc NOT NULL,
|
|
web_user_mess_actions_key
|
|
NUMBER(10)
|
|
CONSTRAINT web_mess_txt_web_mess_act_key REFERENCES web_user_mess_actions(web_user_mess_actions_key)
|
|
);
|
|
|
|
CREATE_TABLE(web_user_messages, WEB_NORMAAL_PRIVILEGE)
|
|
(
|
|
web_user_message_key
|
|
NUMBER(10),
|
|
prs_perslid_key_sender
|
|
NUMBER(10)
|
|
CONSTRAINT web_mess_send_prs_perslid_key REFERENCES prs_perslid(prs_perslid_key),
|
|
prs_perslid_key_receiver
|
|
NUMBER(10)
|
|
CONSTRAINT web_mess_rec_prs_perslid_key REFERENCES prs_perslid(prs_perslid_key),
|
|
web_user_mess_actions_key
|
|
NUMBER(10)
|
|
CONSTRAINT web_mess_web_mess_action_key REFERENCES WEB_USER_MESS_ACTIONS(WEB_USER_MESS_ACTIONS_KEY),
|
|
web_user_mess_dsc
|
|
VARCHAR2(255)
|
|
CONSTRAINT web_c_web_mes_dsc NOT NULL,
|
|
web_user_mess_action_soort
|
|
CHAR(1),
|
|
web_user_mess_action_status
|
|
CHAR(1),
|
|
web_user_mess_action_params
|
|
VARCHAR2(255),
|
|
web_user_mess_action_datum
|
|
DATE
|
|
DEFAULT SYSDATE);
|
|
|
|
CREATE INDEX fac_i_web_user_messages1 ON web_user_messages( prs_perslid_key_receiver, web_user_mess_action_status );
|
|
CREATE INDEX fac_i_web_user_messages2 ON web_user_messages(web_user_mess_action_datum);
|
|
|
|
CREATE SEQUENCE web_s_web_message_text_key MINVALUE 1;
|
|
CREATE SEQUENCE web_s_web_message_key MINVALUE 1;
|
|
CREATE SEQUENCE web_s_web_message_action_key MINVALUE 3;
|
|
|
|
CREATE_TRIGGER(web_t_web_user_mess_act_key)
|
|
BEFORE INSERT OR UPDATE ON web_user_mess_actions
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(web_user_mess_actions_key,web_s_web_message_action_key);
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE_TRIGGER(web_t_web_user_mess_text_key)
|
|
BEFORE INSERT OR UPDATE ON web_user_mess_text
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(web_user_mess_text_key, web_s_web_message_text_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(web_t_web_user_message_key)
|
|
BEFORE INSERT OR UPDATE ON web_user_messages
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(web_user_message_key, web_s_web_message_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(web_t_web_mes_on_changemld)
|
|
AFTER INSERT OR UPDATE ON MLD_MELDING
|
|
FOR EACH ROW
|
|
BEGIN
|
|
DECLARE mes VARCHAR2(255);
|
|
actkey NUMBER;
|
|
code VARCHAR2(6);
|
|
keepmes NUMBER;
|
|
BEGIN
|
|
IF :old.MLD_MELDING_AFGEWEZEN IS NULL and :new.MLD_MELDING_AFGEWEZEN is NOT NULL THEN
|
|
code := 'AFWMLD';
|
|
ELSIF :old.MLD_MELDING_GEACCEPTEERD IS NULL and :new.MLD_MELDING_GEACCEPTEERD is NOT NULL THEN
|
|
code := 'ACPMLD';
|
|
ELSIF :old.MLD_MELDING_AFGEMELD IS NULL and :new.MLD_MELDING_AFGEMELD is NOT NULL THEN
|
|
code := 'AFMMLD';
|
|
END IF;
|
|
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
|
|
(prs_perslid_key_sender,
|
|
prs_perslid_key_receiver,
|
|
web_user_mess_actions_key,
|
|
web_user_mess_dsc,
|
|
web_user_mess_action_status,
|
|
web_user_mess_action_params) VALUES
|
|
(NULL,
|
|
:new.PRS_PERSLID_KEY,
|
|
actkey,
|
|
mes,
|
|
1,
|
|
:new.MLD_MELDING_KEY);
|
|
END IF;
|
|
|
|
keepmes := 5;
|
|
|
|
DELETE FROM web_user_messages
|
|
WHERE web_user_mess_action_datum < (sysdate - KEEPMES);
|
|
END;
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE TRIGGER web_t_web_mes_on_changeres
|
|
AFTER UPDATE ON RES_RESERVERING
|
|
FOR EACH ROW
|
|
BEGIN
|
|
DECLARE mes VARCHAR2(255);
|
|
actkey NUMBER;
|
|
code VARCHAR2(6);
|
|
keepmes NUMBER;
|
|
BEGIN
|
|
code := null;
|
|
IF :old.RES_RESERVERING_STATUS = 'Optie' AND :new.RES_RESERVERING_STATUS = 'Definitief' THEN
|
|
code := 'BEVRES';
|
|
END IF;
|
|
IF code IS NOT NULL THEN
|
|
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 NULL THEN
|
|
mes := 'RESERVATION UPDATED';
|
|
END IF;
|
|
INSERT INTO web_user_messages
|
|
(prs_perslid_key_sender,
|
|
prs_perslid_key_receiver,
|
|
web_user_mess_actions_key,
|
|
web_user_mess_dsc,
|
|
web_user_mess_action_status,
|
|
web_user_mess_action_params) VALUES
|
|
(NULL,
|
|
:new.RES_RESERVERING_USER_KEY,
|
|
actkey,
|
|
mes,
|
|
1,
|
|
:new.RES_RESERVERING_KEY);
|
|
END IF;
|
|
keepmes := 5;
|
|
DELETE FROM web_user_messages
|
|
WHERE web_user_mess_action_datum < (SYSDATE - keepmes);
|
|
END;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE web AS
|
|
|
|
FUNCTION web_f_has_new_messages (perslidKey IN NUMBER) RETURN INTEGER;
|
|
PRAGMA RESTRICT_REFERENCES (web_f_has_new_messages, WNDS, WNPS);
|
|
END web;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY web AS
|
|
|
|
FUNCTION web_f_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;
|
|
|
|
END;
|
|
/
|
|
|
|
INSERT INTO web_user_mess_actions (web_user_mess_actions_key,web_user_mess_action_dsc)
|
|
VALUES (1, 'complains/complains.asp?reado=&mld_key=');
|
|
|
|
INSERT INTO web_user_mess_actions (web_user_mess_actions_key,web_user_mess_action_dsc)
|
|
VALUES (2, 'reservation/eu_reservation.asp?reado=&res_key=');
|
|
|
|
/* message texts for predefined complain events */
|
|
|
|
INSERT INTO web_user_mess_text (web_user_mess_text_code,web_user_mess_text_dsc,web_user_mess_actions_key)
|
|
VALUES ('NEWMLD','Melding is geregistreerd',1);
|
|
|
|
INSERT INTO web_user_mess_text (web_user_mess_text_code,web_user_mess_text_dsc,web_user_mess_actions_key)
|
|
VALUES ('AFWMLD','Melding is afgewezen',1);
|
|
|
|
INSERT INTO web_user_mess_text (web_user_mess_text_code,web_user_mess_text_dsc,web_user_mess_actions_key)
|
|
VALUES ('INGMLD','Melding is ingezien',1);
|
|
|
|
INSERT INTO web_user_mess_text (web_user_mess_text_code,web_user_mess_text_dsc,web_user_mess_actions_key)
|
|
VALUES('ACPMLD','Melding is geaccepteerd',1);
|
|
|
|
INSERT INTO web_user_mess_text (web_user_mess_text_code,web_user_mess_text_dsc,web_user_mess_actions_key)
|
|
VALUES ('AFMMLD','Melding is gereed gemeld',1);
|
|
|
|
INSERT INTO web_user_mess_text (web_user_mess_text_code,web_user_mess_text_dsc,web_user_mess_actions_key)
|
|
VALUES ('VERMLD','Melding is verwerkt',1);
|
|
|
|
INSERT INTO web_user_mess_text (web_user_mess_text_code,web_user_mess_text_dsc,web_user_mess_actions_key)
|
|
VALUES('UPDMLD','Melding is gewijzigd',1);
|
|
|
|
INSERT INTO web_user_mess_text (web_user_mess_text_code,web_user_mess_text_dsc,web_user_mess_actions_key)
|
|
VALUES ('BEVRES','Reservering is bevestigd',2);
|
|
|
|
INSERT INTO web_user_mess_text (web_user_mess_text_code,web_user_mess_text_dsc,web_user_mess_actions_key)
|
|
VALUES ('UPDRES','Reservering is gewijzigd',2);
|
|
|
|
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 ='F' AND FD.fac_functie_discipline_module='WEB');
|
|
|
|
|
|
|
|
#endif // WEB
|
|
|
|
|
|
#ifdef SCH
|
|
|
|
CREATE_VIEW(sch_v_programma, SCH_NORMAAL_PRIVILEGE)
|
|
(alg_locatie_key,
|
|
alg_locatie_code,
|
|
alg_locatie_omschrijving,
|
|
alg_locatie_adres,
|
|
alg_locatie_postcode,
|
|
alg_locatie_plaats,
|
|
alg_gebouw_key,
|
|
alg_gebouw_omschrijving,
|
|
alg_gebouw_upper,
|
|
alg_verdieping_key,
|
|
alg_verdieping_omschrijving,
|
|
alg_verdieping_volgnr,
|
|
alg_ruimte_key,
|
|
alg_ruimte_nr,
|
|
alg_ruimte_upper_nr,
|
|
alg_ruimte_omschrijving,
|
|
alg_ruimte_bruto_vloeropp,
|
|
alg_srtruimte_key,
|
|
sch_srtvloer_key,
|
|
sch_srtvloer_omschrijving,
|
|
sch_activiteit_key,
|
|
sch_activiteit_code,
|
|
sch_activiteit_volgnr,
|
|
sch_nivo_key,
|
|
sch_nivo_correctiefactor,
|
|
sch_frequentie_code) AS
|
|
SELECT ALG_L.alg_locatie_key,
|
|
ALG_L.alg_locatie_code,
|
|
ALG_L.alg_locatie_omschrijving,
|
|
ALG_L.alg_locatie_adres,
|
|
ALG_L.alg_locatie_postcode,
|
|
ALG_L.alg_locatie_plaats,
|
|
ALG_G.alg_gebouw_key,
|
|
ALG_G.alg_gebouw_omschrijving,
|
|
ALG_G.alg_gebouw_upper,
|
|
ALG_V.alg_verdieping_key,
|
|
ALG_V.alg_verdieping_omschrijving,
|
|
ALG_V.alg_verdieping_volgnr,
|
|
ALG_R.alg_ruimte_key,
|
|
ALG_R.alg_ruimte_nr,
|
|
ALG_R.alg_ruimte_upper_nr,
|
|
ALG_R.alg_ruimte_omschrijving,
|
|
ALG_R.alg_ruimte_bruto_vloeropp,
|
|
ALG_R.alg_srtruimte_key,
|
|
SCH_SV.sch_srtvloer_key,
|
|
SCH_SV.sch_srtvloer_omschrijving,
|
|
SCH_A.sch_activiteit_key,
|
|
SCH_A.sch_activiteit_code,
|
|
SCH_A.sch_activiteit_volgnr,
|
|
SCH_NR.sch_nivo_key,
|
|
SCH_NR.sch_nivo_og_correctiefactor,
|
|
SCH_P_SCH_BepaalFrequentieCode(
|
|
ALG_R.alg_srtruimte_key,
|
|
SCH_SV.sch_srtvloer_key,
|
|
SCH_A.sch_activiteit_key,
|
|
SCH_NR.sch_nivo_key)
|
|
FROM alg_locatie ALG_L, alg_gebouw ALG_G,
|
|
alg_verdieping ALG_V, alg_v_aanwezigruimte ALG_R,
|
|
alg_onrgoedkenmerk ALG_OK,
|
|
sch_v_srtvloer SCH_SV, sch_activiteit SCH_A,
|
|
sch_v_nivo_ruimte SCH_NR
|
|
WHERE ALG_L.alg_locatie_key = ALG_G.alg_locatie_key
|
|
AND ALG_G.alg_gebouw_key = ALG_V.alg_gebouw_key
|
|
AND ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key
|
|
AND ALG_R.alg_ruimte_key = ALG_OK.alg_onrgoed_key (+)
|
|
AND ALG_OK.alg_onrgoedkenmerk_waarde = TO_CHAR(SCH_SV.sch_srtvloer_key (+))
|
|
AND ALG_R.alg_ruimte_key = SCH_NR.alg_ruimte_key;
|
|
|
|
#endif // SCH
|
|
|
|
|
|
|
|
#ifdef FAC
|
|
UPDATE FAC_MESSAGE
|
|
SET FAC_MESSAGE_TEXT = 'Facilitor 4.12'
|
|
WHERE FAC_MESSAGE_CODE = 'FAC_M002';
|
|
|
|
UPDATE FAC_MESSAGE
|
|
SET FAC_MESSAGE_TEXT = 'Welkom bij Facilitor 4.12'
|
|
WHERE FAC_MESSAGE_CODE = 'FAC_M035';
|
|
|
|
#endif // FAC |