Files
Database/_UP/420TO421.SRC
Peter Feij 468b85f748 agv web.ini
svn path=/Database/trunk/; revision=7923
2002-03-13 16:13:24 +00:00

245 lines
6.9 KiB
Plaintext

SET TERMOUT ON
SET FEEDBACK OFF
SET ECHO OFF
--
-- Update script van Facilitor versie 4.20 naar 4.21
--
/*
* 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.20 naar 04.21
PROMPT
SELECT 'De huidige versie van Facilitor zou moeten zijn 04.20 (evt. 04.21) en is: '
|| fac_module_version
FROM fac_module
WHERE fac_module_name='FAC';
PROMPT
PROMPT Indien de huidige versie NIET de verwachte versie is mag dit script
PROMPT niet worden gerund! In dit geval dient het script nu middels
PROMPT CONTROL-C te worden afgebroken.
PROMPT
PROMPT Indien de versies overeenkomen dient nu ENTER te worden gedrukt...
PROMPT
PROMPT ***********************************************************************
ACCEPT nix PROMPT ''
PROMPT
PROMPT De upgrade wordt vervolgd. Even geduld a.u.b...
PROMPT
SET TERMOUT OFF
SET HEADING OFF
SET FEEDBACK OFF
SET ECHO OFF
SET VERIFY OFF
SET LINESIZE 1000
SET SERVEROUTPUT ON;
SPOOL $420to421.SQL
PROMPT SPOOL $420to421.LST;
UPDMOD(FAC,420to421)
UPDMOD(ALG,420to421)
UPDMOD(PRS,420to421)
UPDMOD(INS,420to421)
UPDMOD(MLD,420to421)
UPDMOD(CAD,420to421)
UPDMOD(AKZ,420to421)
UPDMOD(PRJ,420to421)
UPDMOD(RES,420to421)
UPDMOD(SCH,420to421)
UPDMOD(SLE,420to421)
UPDMOD(WEB,420to421)
UPDATE_VERSION('04.21');
COMMIT;
PROMPT SPOOL OFF;
SPOOL OFF
START $420to421.SQL
#endif // MASTER
/****************************** PLAATS HIERONDER DE UPDATES ******************************/
#ifdef ALG
#endif //ALG
#ifdef INS
#endif // INS
#ifdef PRS
ALTER TABLE prs_afdeling
ADD prs_bedrijf_key NUMBER(10)
CONSTRAINT prs_r_prs_bedrijf_key3 REFERENCES prs_bedrijf(prs_bedrijf_key);
ALTER VIEW prs_v_aanwezigafdeling COMPILE;
CREATE_TRIGGER(prs_t_prs_perslid_B_IU)
BEFORE INSERT OR UPDATE ON prs_perslid
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_perslid_key, prs_s_prs_alluitvoerende_keys);
UPDATE_UPPER(prs_perslid_naam, prs_perslid_upper);
UPDATE_UPPER(prs_perslid_initialen, prs_perslid_init_upper);
UPDATE_UPPER(prs_perslid_oslogin, prs_perslid_oslogin);
UPDATE_AANMAAKDATUM(prs_perslid, prs_perslid_aanmaak);
CHECK_NOG_REFERENCES(prs_perslid, prs_perslid_verwijder
,prs_v_aanwezigperslidwerkplek, prs_perslid_key, 'prs_m174');
IF :new.prs_perslid_verwijder IS NOT NULLDATUM
THEN
DECLARE
dummy VARCHAR2(1);
BEGIN
SELECT 'X'
INTO dummy
FROM mld_opdr MLD_O
, mld_statusopdr MLD_S
WHERE MLD_O.mld_statusopdr_key = MLD_S.mld_statusopdr_key
AND MLD_S.mld_statusopdr_upper = 'MLD_UITGEGEVEN'
AND MLD_O.mld_uitvoerende_keys = :new.prs_perslid_key;
APPLICATION_ERROR(-20000, 'prs_m085');
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;
WHEN TOO_MANY_ROWS THEN APPLICATION_ERROR(-20000, 'prs_m085');
END;
END IF;
-- Persoon mag alleen verwijderd worden als deze geen objecten meer in het bezit heeft.
-- Dit geldt alleen voor objecten die 'van de organisatie' zijn, d.i.
-- ins_discipline_min_level <> 3. Deze mocht de gebruiker zelf bijhouden
DECLARE
dummy VARCHAR2(1);
BEGIN
IF :new.prs_perslid_verwijder IS NOT NULL
THEN
SELECT 'x'
INTO dummy
FROM ins_v_aanwezigdeel D, ins_tab_discipline DI
WHERE ins_alg_ruimte_type = 'P'
AND ins_alg_ruimte_key = :old.prs_perslid_key
AND DI.ins_discipline_key = D.ins_discipline_key
AND DI.ins_discipline_min_level <> 3;
APPLICATION_ERROR(-20000,'prs_m175');
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;
WHEN TOO_MANY_ROWS THEN APPLICATION_ERROR(-20000,'prs_m175');
END;
-- Tenslotte: ruim de objecten op, d.i. de objecten die ik zelf mocht beheren, en
-- de objecten die reeds vervallen waren.
BEGIN
IF :new.prs_perslid_verwijder IS NOT NULL
THEN
DELETE FROM INS_DEEL WHERE ins_deel_key IN
(SELECT D.ins_deel_key
FROM ins_deel D, ins_tab_discipline DI
WHERE ins_alg_ruimte_type = 'P'
AND ins_alg_ruimte_key = :old.prs_perslid_key
AND DI.ins_discipline_key = D.ins_discipline_key
AND (DI.ins_discipline_min_level = 3 OR ins_deel_verwijder IS NOT NULL));
END IF;
END;
END;
/
#endif // PRS
#ifdef MLD
#endif // MLD
#ifdef RES
#endif // RES
#ifdef BES
CREATE OR REPLACE FUNCTION FAC_Bestelling_Items (besKey in number) RETURN VARCHAR2 AS
ret VARCHAR2(512);
first NUMBER;
last NUMBER;
CURSOR query(resKey NUMBER) IS
SELECT BI.BES_BESTELLING_ITEM_AANTAL ||'x '||
S.INS_SRTDEEL_OMSCHRIJVING||' ('||S.INS_SRTDEEL_EENHEID ||') ' BESITEMDSC
FROM BES_BESTELLING B, BES_BESTELLING_ITEM BI,
BES_V_AANWEZIGSRTDEEL S, BES_V_AANWEZIGSRTGROEP G, BES_V_AANWEZIGDISCIPLINE D
WHERE B.BES_BESTELLING_KEY = besKey
AND B.BES_BESTELLING_KEY = BI.BES_BESTELLING_KEY
AND BI.ins_srtdeel_key = S.ins_srtdeel_key
AND S.ins_srtgroep_key = G.ins_srtgroep_key
AND G.ins_discipline_key = D.ins_discipline_key
ORDER BY S.INS_SRTDEEL_OMSCHRIJVING;
BEGIN
ret := null;
first := 0;
last:= 0;
FOR besitem_rec IN query(besKey) LOOP
IF first = 0 THEN
BEGIN
ret := besitem_rec.BESITEMDSC;
first := 1;
END;
ELSE
IF last = 0 THEN
IF LENGTH(ret)+LENGTH(besitem_rec.BESITEMDSC)<(512-3) THEN
ret := ret || CHR(10) || besitem_rec.BESITEMDSC;
ELSE
ret := ret || CHR(10) || '...';
last := 1;
END IF;
END IF;
END IF;
END LOOP;
RETURN ret;
END;
/
#endif // BES
#ifdef WEB
DEF_FAC_FUNCTIE('WEB_MLDBO2', 'Backoffice:ServiceDesk-afmeld', 'WEB', 2);
#endif // WEB
#ifdef SCH
#endif // SCH
#ifdef FAC
UPDATE FAC_MESSAGE
SET FAC_MESSAGE_TEXT = 'Facilitor 4.21'
WHERE FAC_MESSAGE_CODE = 'FAC_M002';
UPDATE FAC_MESSAGE
SET FAC_MESSAGE_TEXT = 'Welkom bij Facilitor 4.21'
WHERE FAC_MESSAGE_CODE = 'FAC_M035';
#endif // FAC