391 lines
11 KiB
Plaintext
391 lines
11 KiB
Plaintext
SET TERMOUT ON
|
|
SET FEEDBACK OFF
|
|
SET ECHO OFF
|
|
--
|
|
-- Update script van Facilitor 3.0 versie 3.12 naar 3.13
|
|
--
|
|
|
|
/*
|
|
* 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.
|
|
*
|
|
*
|
|
*/
|
|
|
|
/*************************************************************************************************************
|
|
*
|
|
* 290200/BIV - LET OP : DEZE UPDATE IS NOOIT GEBRUIKT !!!
|
|
* WIJ ZIJN VAN VERSIE 3.12 NAAR 3.20 GEGAAN.
|
|
* DE INHOUD VAN DIT SCRIPT IS DAN OOK OVERGENOMEN IN 312TO320.SRC
|
|
*
|
|
*************************************************************************************************************/
|
|
|
|
|
|
#include "modules.h"
|
|
#include "comsql.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 3.0 versie 03.12 naar 03.13
|
|
PROMPT
|
|
SELECT 'De huidige versie van Facilitor zou moeten zijn 03.12 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 110
|
|
SET SERVEROUTPUT ON;
|
|
|
|
SPOOL $312TO313.SQL
|
|
PROMPT SPOOL $312TO313.LST;
|
|
|
|
UPDMOD(FAC,312TO313)
|
|
UPDMOD(ALG,312TO313)
|
|
UPDMOD(INS,312TO313)
|
|
UPDMOD(PRS,312TO313)
|
|
UPDMOD(MLD,312TO313)
|
|
UPDMOD(CAD,312TO313)
|
|
UPDMOD(AKZ,312TO313)
|
|
UPDMOD(PRJ,312TO313)
|
|
UPDMOD(RES,312TO313)
|
|
UPDMOD(SCH,312TO313)
|
|
UPDMOD(SLE,312TO313)
|
|
|
|
UPDATE_VERSION('03.13');
|
|
COMMIT;
|
|
PROMPT SPOOL OFF;
|
|
SPOOL OFF
|
|
START $312TO313.SQL
|
|
#endif // MASTER
|
|
|
|
/* denk aan #ifdef constructies! */
|
|
|
|
/* PLAATS HIERONDER DE UPDATES */
|
|
|
|
/* Weer op de oude manier dus bijvoorbeeld :
|
|
|
|
#ifdef ALG
|
|
bla bla
|
|
#endif // ALG
|
|
|
|
etc.
|
|
|
|
*/
|
|
|
|
#ifdef FAC
|
|
CREATE OR REPLACE FUNCTION FAC_F_FAC_GET_DESCRIPTION(LPNName IN VARCHAR2
|
|
,CondKey IN NUMBER
|
|
,Prefix IN VARCHAR2
|
|
,PrefixKey IN NUMBER) RETURN VARCHAR2 IS
|
|
NextVolgNr VARCHAR2(20);
|
|
ReturnString VARCHAR2(30);
|
|
BEGIN
|
|
IF LPNName = 'LPN_INS_DEEL'
|
|
THEN
|
|
FOR i IN 3..10
|
|
LOOP
|
|
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(ins_deel_upper, LENGTH(ins_deel_upper)-(i-1)))+1)), '***')
|
|
INTO NextVolgNr
|
|
FROM all_v_aanwezigdeel
|
|
WHERE LTRIM(SUBSTR(ins_deel_upper, LENGTH(ins_deel_upper)-(i-1))) BETWEEN '0' AND LPAD('9',i,'9')
|
|
AND ins_deel_upper LIKE Prefix||'%'
|
|
AND LENGTH(ins_deel_upper) <= LENGTH(Prefix)+i
|
|
AND ins_alg_locatie_key = CondKey
|
|
AND ins_srtdeel_key = PrefixKey;
|
|
IF NextVolgNr = '***'
|
|
THEN
|
|
IF i = 3
|
|
THEN
|
|
NextVolgNr := '001';
|
|
ELSE
|
|
NextVolgNr := POWER(10, (i-1));
|
|
END IF;
|
|
EXIT;
|
|
ELSE
|
|
IF LENGTH(NextVolgNr) <= i
|
|
THEN
|
|
NextVolgNr:= LPAD(NextVolgNr,i,'0');
|
|
EXIT;
|
|
END IF;
|
|
END IF;
|
|
END LOOP;
|
|
ELSIF LPNName = 'LPN_INS_ONDERDEEL'
|
|
THEN
|
|
FOR i IN 3..10
|
|
LOOP
|
|
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(ins_deel_upper, LENGTH(ins_deel_upper)-(i-1)))+1)), '***')
|
|
INTO NextVolgNr
|
|
FROM ins_deel
|
|
WHERE LTRIM(SUBSTR(ins_deel_upper, LENGTH(ins_deel_upper)-(i-1))) BETWEEN '0' AND LPAD('9',i,'9')
|
|
AND ins_alg_locatie_key = CondKey
|
|
AND ins_deel_verwijder IS NULL
|
|
AND ins_deel_parent_key IS NOT NULL
|
|
AND ins_deel_upper LIKE Prefix||'%'
|
|
AND LENGTH(ins_deel_upper) <= LENGTH(Prefix)+i
|
|
AND ins_srtdeel_key = PrefixKey;
|
|
IF NextVolgNr = '***'
|
|
THEN
|
|
IF i = 3
|
|
THEN
|
|
NextVolgNr := '001';
|
|
ELSE
|
|
NextVolgNr := POWER(10, (i-1));
|
|
END IF;
|
|
EXIT;
|
|
ELSE
|
|
IF LENGTH(NextVolgNr) <= i
|
|
THEN
|
|
NextVolgNr:= LPAD(NextVolgNr,i,'0');
|
|
EXIT;
|
|
END IF;
|
|
END IF;
|
|
END LOOP;
|
|
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR'
|
|
THEN
|
|
FOR i IN 3..10
|
|
LOOP
|
|
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(alg_terreinsector_code, LENGTH(alg_terreinsector_code)-(i-1)))+1)), '***')
|
|
INTO NextVolgNr
|
|
FROM alg_v_aanwezigterreinsector
|
|
WHERE LTRIM(SUBSTR(alg_terreinsector_code, LENGTH(alg_terreinsector_code)-(i-1))) BETWEEN '0' AND LPAD('9',i,'9')
|
|
AND alg_locatie_key = CondKey
|
|
AND LENGTH(alg_terreinsector_code) <= i;
|
|
IF NextVolgNr = '***'
|
|
THEN
|
|
IF i = 3
|
|
THEN
|
|
NextVolgNr := '001';
|
|
ELSE
|
|
NextVolgNr := POWER(10, (i-1));
|
|
END IF;
|
|
EXIT;
|
|
ELSE
|
|
IF LENGTH(NextVolgNr) <= i
|
|
THEN
|
|
NextVolgNr:= LPAD(NextVolgNr,i,'0');
|
|
EXIT;
|
|
END IF;
|
|
END IF;
|
|
END LOOP;
|
|
ELSIF LPNName = 'LPN_ALG_GEBOUW'
|
|
THEN
|
|
FOR i IN 3..10
|
|
LOOP
|
|
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(alg_gebouw_code, LENGTH(alg_gebouw_code)-(i-1)))+1)), '***')
|
|
INTO NextVolgNr
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE LTRIM(SUBSTR(alg_gebouw_code, LENGTH(alg_gebouw_code)-(i-1))) BETWEEN '0' AND LPAD('9',i,'9')
|
|
AND alg_locatie_key = CondKey
|
|
AND LENGTH(alg_gebouw_code) <= i;
|
|
IF NextVolgNr = '***'
|
|
THEN
|
|
IF i = 3
|
|
THEN
|
|
NextVolgNr := '001';
|
|
ELSE
|
|
NextVolgNr := POWER(10, (i-1));
|
|
END IF;
|
|
EXIT;
|
|
ELSE
|
|
IF LENGTH(NextVolgNr) <= i
|
|
THEN
|
|
NextVolgNr:= LPAD(NextVolgNr,i,'0');
|
|
EXIT;
|
|
END IF;
|
|
END IF;
|
|
END LOOP;
|
|
ELSIF LPNName = 'LPN_ALG_RUIMTE'
|
|
THEN
|
|
FOR i IN 3..10
|
|
LOOP
|
|
SELECT NVL(TO_CHAR(MAX(TO_NUMBER(SUBSTR(alg_ruimte_nr, LENGTH(alg_ruimte_nr)-(i-1)))+1)), '***')
|
|
INTO NextVolgNr
|
|
FROM alg_v_aanwezigruimte
|
|
WHERE LTRIM(SUBSTR(alg_ruimte_nr, LENGTH(alg_ruimte_nr)-(i-1))) BETWEEN '0' AND LPAD('9',i,'9')
|
|
AND alg_verdieping_key = CondKey
|
|
AND LENGTH(alg_ruimte_nr) <= i;
|
|
IF NextVolgNr = '***'
|
|
THEN
|
|
IF i = 3
|
|
THEN
|
|
NextVolgNr := '001';
|
|
ELSE
|
|
NextVolgNr := POWER(10, (i-1));
|
|
END IF;
|
|
EXIT;
|
|
ELSE
|
|
IF LENGTH(NextVolgNr) <= i
|
|
THEN
|
|
NextVolgNr:= LPAD(NextVolgNr,i,'0');
|
|
EXIT;
|
|
END IF;
|
|
END IF;
|
|
END LOOP;
|
|
ELSIF LPNName = 'LPN_PRS_WERKPLEK'
|
|
THEN
|
|
BEGIN
|
|
SELECT TO_CHAR(NVL(MAX(prs_werkplek_volgnr),0) +1)
|
|
INTO NextVolgNr
|
|
FROM prs_werkplek
|
|
WHERE prs_alg_ruimte_key = CondKey
|
|
AND prs_werkplek_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NextVolgNr := '1';
|
|
END;
|
|
/* Omschrijving */
|
|
BEGIN
|
|
SELECT alg_ruimte_nr ||' - '|| NextVolgNr
|
|
INTO NextVolgNr
|
|
FROM alg_ruimte
|
|
WHERE alg_ruimte_key = CondKey;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN NULL;
|
|
END;
|
|
END IF;
|
|
ReturnString := Prefix||NextVolgNr;
|
|
RETURN ReturnString;
|
|
END;
|
|
/
|
|
|
|
ALTER TABLE fac_usrdata
|
|
DROP CONSTRAINT fac_u_fac_usrdata_upper;
|
|
|
|
ALTER TABLE fac_usrdata
|
|
ADD CONSTRAINT fac_u_fac_usrdata_upper UNIQUE(fac_usrdata_upper, fac_usrtab_key, fac_usrdata_verwijder);
|
|
COMMIT;
|
|
|
|
#endif //FAC
|
|
|
|
|
|
#ifdef CAD
|
|
|
|
CREATE_VIEW(cad_v_ins_deel, FAC_NORMAAL_PRIVILEGE)
|
|
(ins_deel_key,
|
|
ins_deel_cadlabel,
|
|
ins_srtdeel_omschrijving,
|
|
ins_deel_oppervlak,
|
|
ins_deel_omtrek
|
|
) AS
|
|
SELECT D.ins_deel_key,
|
|
D.ins_deel_omschrijving,
|
|
SD.ins_srtdeel_omschrijving,
|
|
NVL(TO_CHAR(D.ins_deel_oppervlak),'-')||' m2',
|
|
NVL(TO_CHAR(D.ins_deel_omtrek),'-')||' m'
|
|
FROM all_v_aanwezigdeel D, ins_srtdeel SD
|
|
WHERE SD.ins_srtdeel_key=D.ins_srtdeel_key;
|
|
/
|
|
|
|
#endif //CAD
|
|
|
|
|
|
#ifdef AKZ
|
|
|
|
CREATE_VIEW(cad_v_ins_deel, FAC_NORMAAL_PRIVILEGE)
|
|
(ins_deel_key,
|
|
ins_deel_cadlabel,
|
|
ins_srtdeel_omschrijving,
|
|
ins_deel_oppervlak,
|
|
ins_deel_omtrek
|
|
) AS
|
|
SELECT D.ins_deel_key,
|
|
SUBSTR(D.ins_deel_upper, LENGTH(D.ins_deel_upper)-5), /* laatste 5 karakters */
|
|
SD.ins_srtdeel_omschrijving,
|
|
NVL(TO_CHAR(D.ins_deel_oppervlak),'-')||' m2',
|
|
NVL(TO_CHAR(D.ins_deel_omtrek),'-')||' m'
|
|
FROM all_v_aanwezigdeel D, ins_srtdeel SD
|
|
WHERE SD.ins_srtdeel_key=D.ins_srtdeel_key;
|
|
/
|
|
|
|
#endif //AKZ
|
|
|
|
#ifdef RES
|
|
|
|
CREATE_VIEW(fac_v_functie_discipline, FAC_BIBLIOTHEEK_PRIVILEGE)
|
|
(fac_functie_discipline_key,
|
|
fac_functie_discipline_type,
|
|
fac_functie_discipline_module,
|
|
fac_functie_discipline_omschr,
|
|
fac_functie_discipline_min_lev) AS
|
|
SELECT fac_functie_key,
|
|
'F',
|
|
fac_functie_module,
|
|
fac_functie_omschrijving,
|
|
fac_functie_min_level
|
|
FROM fac_functie
|
|
UNION
|
|
SELECT P.prs_afdeling_key,
|
|
'A',
|
|
'RES',
|
|
P.prs_afdeling_naam,
|
|
1
|
|
FROM prs_afdeling P
|
|
WHERE prs_afdeling_verwijder IS NULL
|
|
AND P.prs_afdeling_key IN
|
|
(SELECT prs_afdeling_key
|
|
FROM res_artikel A
|
|
WHERE res_artikel_verwijder IS NULL
|
|
AND A.prs_afdeling_key = P.prs_afdeling_key
|
|
AND RowNum = 1)
|
|
UNION
|
|
SELECT B.prs_bedrijf_key,
|
|
'B',
|
|
'RES',
|
|
SUBSTR(B.prs_bedrijf_naam,1,15),
|
|
1
|
|
FROM prs_bedrijf B
|
|
WHERE prs_bedrijf_verwijder IS NULL
|
|
AND B.prs_bedrijf_key IN
|
|
(SELECT prs_bedrijf_key
|
|
FROM res_artikel A
|
|
WHERE res_artikel_verwijder IS NULL
|
|
AND A.prs_bedrijf_key = B.prs_bedrijf_key
|
|
AND RowNum = 1)
|
|
UNION
|
|
SELECT ins_discipline_key,
|
|
decode(ins_discipline_module,'INS','D','MLD','V'),
|
|
ins_discipline_module,
|
|
ins_discipline_omschrijving,
|
|
ins_discipline_min_level
|
|
FROM ins_tab_discipline
|
|
WHERE ins_discipline_verwijder is NULL;
|
|
/
|
|
|
|
#endif // RES
|