Files
Database/_UP/300TO301.SRC
Bert in het Veld 156eaa193f EXIT toegevoegd zodat SQL*Plus af wordt gesloten als het script gerund heeft.
svn path=/Database/trunk/; revision=7108
1999-09-22 13:17:00 +00:00

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