245 lines
6.9 KiB
Plaintext
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 |