203 lines
6.7 KiB
Plaintext
203 lines
6.7 KiB
Plaintext
SET TERMOUT ON
|
|
SET FEEDBACK ON
|
|
SET ECHO ON
|
|
--
|
|
-- Update script van Facilitor 3.0 versie 3.00 naar 3.01
|
|
--
|
|
|
|
/*
|
|
* 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.
|
|
*
|
|
* Revisie:
|
|
*
|
|
*
|
|
* 30-06-1999/BIV Trigger mld_t_mld_melding_b_iu is aangepast.
|
|
* 22-06-1999/EGR Bij het kopieren van een bestand kan het voorkomen dat het oorspronkelijke bestand niet
|
|
* bestaat of het kopieren niet kan plaatsvinden. In deze gevallen worden de meldingen
|
|
* PRJ_M002 en PRJ_M001 gegeven.
|
|
* 22-06-1999/EGR De before insert_update trigger op cad_tekening maakt voor de verhuistekening ook een
|
|
* filenaam met key-nummer aan. Omdat het dan moeilijk terug te vinden is welke tekening nu
|
|
* de "verhuiswagen" is, is de contraint op cad_tekening_type aangepast zodat deze ook van
|
|
* het type "V" (Verhuiswagen) kan zijn.
|
|
* 22-06-1999/EGR In de regel worden records niet verwijderd maar wordt het veld verwijderdatum gezet.
|
|
* Om een project te verwijderen moeten zowel in cad_tekening als prj_project de verwijder
|
|
* datum worden ingevuld. Echter voor prj_project was dit veld niet aanwezig. Met dit script
|
|
* dus wel.
|
|
* --- 03.00 ---
|
|
*
|
|
*/
|
|
|
|
#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.00 naar 03.01
|
|
PROMPT
|
|
SELECT 'De huidige versie van Facilitor zou moeten zijn 03.00 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 $300TO301.SQL
|
|
PROMPT SPOOL $300TO301.LST;
|
|
|
|
UPDMOD(FAC,300TO301)
|
|
UPDMOD(ALG,300TO301)
|
|
UPDMOD(INS,300TO301)
|
|
UPDMOD(PRS,300TO301)
|
|
UPDMOD(MLD,300TO301)
|
|
UPDMOD(CAD,300TO301)
|
|
UPDMOD(AKZ,300TO301)
|
|
UPDMOD(PRJ,300TO301)
|
|
UPDMOD(SCH,300TO301)
|
|
UPDMOD(SLE,300TO301)
|
|
|
|
UPDATE_VERSION('03.01');
|
|
COMMIT;
|
|
PROMPT SPOOL OFF;
|
|
SPOOL OFF
|
|
START $300TO301.SQL
|
|
EXIT
|
|
#endif // MASTER
|
|
|
|
/* PLAATS HIERONDER DE UPDATES */
|
|
/* denk aan #ifdef constructies! */
|
|
|
|
#ifdef PRJ
|
|
DEF_FAC_MESSAGE('PRJ_M0012','Het bestand %1% kopieren naar %2% is niet gelukt.');
|
|
DEF_FAC_MESSAGE('PRJ_M0013','Het bestand %1% bestaat niet.');
|
|
COMMIT;
|
|
|
|
ALTER TABLE prj_project
|
|
ADD (prj_project_verwijder DATE DEFAULT NULLDATUM);
|
|
END;
|
|
#endif // PRJ
|
|
|
|
#ifdef CAD
|
|
ALTER TABLE cad_tekening DROP CONSTRAINT cad_c_cad_tekening_type2;
|
|
|
|
ALTER TABLE cad_tekening
|
|
ADD (CONSTRAINT cad_c_cad_tekening_type2 CHECK(cad_tekening_type IN ('P','C','D','V')));
|
|
#endif // CAD
|
|
|
|
#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);
|
|
CHECK_REFERENCE_ONROERENDGOED(mld_alg_onroerendgoed_keys, 'alg_m090');
|
|
IF :old.mld_alg_onroerendgoed_keys IS NULL
|
|
OR :old.mld_alg_onroerendgoed_keys <> :new.mld_alg_onroerendgoed_keys
|
|
THEN
|
|
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;
|
|
SELECT USER
|
|
INTO :new.mld_melding_username
|
|
FROM DUAL;
|
|
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_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');
|
|
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'
|
|
AND MLD_O.mld_melding_key = :new.mld_melding_key;
|
|
raise_application_error(-20000, 'mld_m191');
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
WHEN TOO_MANY_ROWS
|
|
THEN raise_application_error(-20000, 'mld_m191');
|
|
END;
|
|
END IF;
|
|
END IF;
|
|
|
|
IF :new.mld_melding_uitvoertijd2 IS NULL
|
|
THEN
|
|
:new.mld_melding_uitvoertijd2 := :new.mld_melding_uitvoertijd;
|
|
END IF;
|
|
END;
|
|
/
|
|
#endif // MLD
|
|
|