UWVA#566
svn path=/Database/trunk/; revision=9235
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
#ifdef BES // 03-11-2000 PF
|
||||
|
||||
/*
|
||||
* $Revision: 12 $
|
||||
* $Modtime: 24-01-06 10:51 $
|
||||
* $Revision: 13 $
|
||||
* $Modtime: 2-06-06 10:39 $
|
||||
*
|
||||
*/
|
||||
create index bes_i_bes_besopdr_it_b_bo_key on bes_bestelopdr_item (bes_bestelopdr_key);
|
||||
@@ -32,4 +32,13 @@ create index ins_i_ins_srtdeel_prs_bdr_key on ins_srtdeel (prs_bedrijf_key);
|
||||
create index prs_i_prs_afdeling_p_bdr_key on prs_afdeling (prs_bedrijf_key);
|
||||
|
||||
create unique index bes_i_bes_disc_params1 on bes_disc_params(bes_ins_discipline_key);
|
||||
|
||||
CREATE INDEX bes_i_bes_kenmerkbestell1 ON bes_kenmerkbestell(bes_bestelling_key);
|
||||
CREATE INDEX bes_i_bes_kenmerkbestell2 ON bes_kenmerkbestell(bes_kenmerk_key);
|
||||
CREATE INDEX bes_i_bes_kenmerkbestell3 ON bes_kenmerkbestell(bes_kenmerkbestell_waarde);
|
||||
|
||||
CREATE INDEX bes_i_bes_kenmerkbesteli1 ON bes_kenmerkbesteli(bes_bestelling_item_key);
|
||||
CREATE INDEX bes_i_bes_kenmerkbesteli2 ON bes_kenmerkbesteli(bes_kenmerk_key);
|
||||
CREATE INDEX bes_i_bes_kenmerkbesteli3 ON bes_kenmerkbesteli(bes_kenmerkbesteli_waarde);
|
||||
|
||||
#endif // BES
|
||||
|
||||
@@ -13,4 +13,10 @@ CREATE SEQUENCE bes_s_bes_bestelopdr_item_key MINVALUE 1;
|
||||
CREATE SEQUENCE bes_s_bes_cXMLparams_key MINVALUE 1;
|
||||
CREATE SEQUENCE bes_s_bes_disc_params_key MINVALUE 1;
|
||||
|
||||
CREATE SEQUENCE bes_s_bes_refsrtkenmerk_key MINVALUE 1;
|
||||
CREATE SEQUENCE bes_s_bes_srtkenmerk_key MINVALUE 1;
|
||||
CREATE SEQUENCE bes_s_bes_kenmerk_key MINVALUE 1;
|
||||
CREATE SEQUENCE bes_s_bes_kenmerkbestell_key MINVALUE 1;
|
||||
CREATE SEQUENCE bes_s_bes_kenmerkbesteli_key MINVALUE 1;
|
||||
|
||||
#endif // BES
|
||||
|
||||
174
BES/BES_TAB.SRC
174
BES/BES_TAB.SRC
@@ -1,8 +1,8 @@
|
||||
#ifdef BES // 03-11-2000 PF
|
||||
|
||||
/*
|
||||
* $Revision: 30 $
|
||||
* $Modtime: 26-01-06 14:35 $
|
||||
* $Revision: 31 $
|
||||
* $Modtime: 16-05-06 12:32 $
|
||||
*/
|
||||
|
||||
#include "comsql.h"
|
||||
@@ -362,6 +362,176 @@ ins_srtdeel_vervaldatum
|
||||
DATE
|
||||
);
|
||||
|
||||
//// flexprops
|
||||
|
||||
CREATE_TABLE(bes_refsrtkenmerk, 0)
|
||||
( bes_refsrtkenmerk_key
|
||||
NUMBER(10)
|
||||
CONSTRAINT bes_k_bes_refsrtkenmerk_key PRIMARY KEY
|
||||
, bes_refsrtkenmerk_omschrijving
|
||||
VARCHAR2(50)
|
||||
, bes_refsrtkenmerk_upper
|
||||
VARCHAR2(50)
|
||||
, bes_refsrtkenmerk_objectnaam
|
||||
VARCHAR2(30)
|
||||
, bes_refsrtkenmerk_kolomnaam
|
||||
VARCHAR2(30)
|
||||
, bes_refsrtkenmerk_kolomtxt
|
||||
VARCHAR2(30)
|
||||
, fac_usrtab_key
|
||||
NUMBER(10)
|
||||
, bes_refsrtkenmerk_aanmaak
|
||||
DATE
|
||||
DEFAULT SYSDATE
|
||||
, bes_refsrtkenmerk_verwijder
|
||||
DATE
|
||||
DEFAULT NULLDATUM
|
||||
, CONSTRAINT bes_c_bes_refsrtkenmerk_omschr CHECK(bes_refsrtkenmerk_omschrijving IS NOT NULL)
|
||||
#ifndef MS_SQL
|
||||
, CONSTRAINT bes_c_bes_refsrtkenmerk_upper CHECK(bes_refsrtkenmerk_upper IS NOT NULL)
|
||||
#endif
|
||||
, CONSTRAINT bes_u_bes_refsrtkenmerk_upper UNIQUE(bes_refsrtkenmerk_upper, bes_refsrtkenmerk_verwijder)
|
||||
, CONSTRAINT bes_c_bes_refsrtkenm_objnaam CHECK(bes_refsrtkenmerk_objectnaam IS NOT NULL)
|
||||
, CONSTRAINT bes_c_bes_refsrtkenm_kolnaam CHECK(bes_refsrtkenmerk_kolomnaam IS NOT NULL)
|
||||
, CONSTRAINT bes_c_bes_refsrtkenm_kolomtxt CHECK(bes_refsrtkenmerk_kolomtxt IS NOT NULL)
|
||||
, CONSTRAINT bes_r_fac_usrtab_key1 FOREIGN KEY(fac_usrtab_key) REFERENCES fac_usrtab(fac_usrtab_key)
|
||||
, CONSTRAINT bes_c_bes_refsrtkenmerk_aanm CHECK(bes_refsrtkenmerk_aanmaak IS NOT NULL)
|
||||
);
|
||||
|
||||
CREATE_TABLE(bes_srtkenmerk, 0)
|
||||
( bes_srtkenmerk_key
|
||||
NUMBER(10)
|
||||
CONSTRAINT bes_k_bes_srtkenmerk_key PRIMARY KEY
|
||||
, bes_srtkenmerk_omschrijving
|
||||
VARCHAR2(50)
|
||||
, bes_srtkenmerk_upper
|
||||
VARCHAR2(50)
|
||||
, bes_srtkenmerk_dimensie
|
||||
VARCHAR2(10)
|
||||
, bes_srtkenmerk_kenmerktype
|
||||
VARCHAR2(1)
|
||||
, bes_srtkenmerk_systeem
|
||||
NUMBER(1)
|
||||
, bes_srtkenmerk_lengte
|
||||
NUMBER(3)
|
||||
, bes_srtkenmerk_dec
|
||||
NUMBER(3)
|
||||
, bes_srtkenmerk_nmin
|
||||
NUMBER(10)
|
||||
, bes_srtkenmerk_nmax
|
||||
NUMBER(10)
|
||||
, bes_refsrtkenmerk_key
|
||||
NUMBER(10)
|
||||
, bes_srtkenmerk_aanmaak
|
||||
DATE
|
||||
DEFAULT SYSDATE
|
||||
, bes_srtkenmerk_verwijder
|
||||
DATE
|
||||
DEFAULT NULLDATUM
|
||||
, CONSTRAINT bes_c_bes_srtkenmerk_omschr CHECK(bes_srtkenmerk_omschrijving IS NOT NULL)
|
||||
, CONSTRAINT bes_srtkenmerk_omschrijving CHECK(bes_srtkenmerk_omschrijving IS NOT NULL)
|
||||
, CONSTRAINT bes_u_bes_srtkenmerk_upper UNIQUE(bes_srtkenmerk_upper, bes_srtkenmerk_verwijder)
|
||||
, CONSTRAINT bes_c_bes_srtkenmerk_kenmtype CHECK(bes_srtkenmerk_kenmerktype IN ('C','N','D','R','X','L','Q'))
|
||||
, CONSTRAINT bes_c_bes_srtkenmerk_systeem CHECK(bes_srtkenmerk_systeem IS NULL
|
||||
OR bes_srtkenmerk_systeem = 1)
|
||||
, CONSTRAINT bes_c_bes_srtkenmerk_lengte CHECK(bes_srtkenmerk_lengte >= 1
|
||||
AND bes_srtkenmerk_lengte <= 255)
|
||||
, CONSTRAINT bes_c_bes_srtkenmerk_max_min CHECK(bes_srtkenmerk_nmax >= bes_srtkenmerk_nmin)
|
||||
, CONSTRAINT bes_r_bes_refsrtkenmerk_key2 CHECK(bes_srtkenmerk_kenmerktype <> 'R'
|
||||
OR bes_refsrtkenmerk_key IS NOT NULL)
|
||||
, CONSTRAINT bes_c_bes_srtkenmerk_dec CHECK(bes_srtkenmerk_dec >= 0
|
||||
AND bes_srtkenmerk_dec <= bes_srtkenmerk_lengte)
|
||||
, CONSTRAINT bes_c_bes_srtkenmerk_aanm CHECK(bes_srtkenmerk_aanmaak IS NOT NULL)
|
||||
, CONSTRAINT bes_r_bes_refsrtkenmerk_key1 FOREIGN KEY(bes_refsrtkenmerk_key)
|
||||
REFERENCES bes_refsrtkenmerk(bes_refsrtkenmerk_key)
|
||||
);
|
||||
|
||||
CREATE_TABLE(bes_kenmerk, 0)
|
||||
( bes_kenmerk_key
|
||||
NUMBER(10)
|
||||
CONSTRAINT bes_k_bes_kenmerk_key PRIMARY KEY
|
||||
, bes_srtkenmerk_key
|
||||
NUMBER(10)
|
||||
, bes_srtinstallatie_key
|
||||
NUMBER(10)
|
||||
, bes_kenmerk_type
|
||||
VARCHAR2(1)
|
||||
CONSTRAINT bes_c_ins_kenmerk_type CHECK
|
||||
(bes_kenmerk_type is not null and (bes_kenmerk_type IN( 'B', 'I')))
|
||||
, bes_kenmerk_niveau
|
||||
VARCHAR2(1)
|
||||
CONSTRAINT bes_c_ins_kenmerk_niveau2 CHECK
|
||||
(bes_kenmerk_niveau is not null and (bes_kenmerk_niveau IN( 'D', 'G', 'S')))
|
||||
, bes_kenmerk_verplicht
|
||||
NUMBER(1)
|
||||
, bes_kenmerk_toonbaar
|
||||
NUMBER(1)
|
||||
, bes_kenmerk_volgnummer
|
||||
NUMBER(3)
|
||||
, bes_kenmerk_uniek
|
||||
NUMBER(1)
|
||||
, bes_kenmerk_aanmaak
|
||||
DATE
|
||||
DEFAULT SYSDATE
|
||||
, bes_kenmerk_default
|
||||
VARCHAR2(255)
|
||||
, bes_kenmerk_verwijder
|
||||
DATE
|
||||
DEFAULT NULLDATUM
|
||||
, CONSTRAINT bes_r_bes_srtkenmerk_key1 CHECK(bes_srtkenmerk_key IS NOT NULL)
|
||||
, CONSTRAINT bes_r_bes_srtkenmerk_key2 FOREIGN KEY(bes_srtkenmerk_key) REFERENCES bes_srtkenmerk(bes_srtkenmerk_key)
|
||||
, CONSTRAINT bes_c_bes_kenmerk_niveau1 CHECK(bes_kenmerk_niveau IS NOT NULL)
|
||||
, CONSTRAINT bes_c_bes_kenmerk_verplicht CHECK(bes_kenmerk_verplicht IS NULL
|
||||
OR bes_kenmerk_verplicht = 1)
|
||||
, CONSTRAINT bes_c_bes_kenmerk_toonbaar CHECK(bes_kenmerk_toonbaar IS NULL
|
||||
OR bes_kenmerk_toonbaar = 1)
|
||||
, CONSTRAINT bes_c_bes_kenmerk_aanmaak CHECK(bes_kenmerk_aanmaak IS NOT NULL)
|
||||
);
|
||||
|
||||
CREATE_TABLE(bes_kenmerkbestell, 0)
|
||||
( bes_kenmerkbestelling_key
|
||||
NUMBER(10)
|
||||
CONSTRAINT bes_k_bes_kenmerkbestell_key PRIMARY KEY
|
||||
, bes_bestelling_key
|
||||
NUMBER(10)
|
||||
, bes_kenmerk_key
|
||||
NUMBER(10)
|
||||
, bes_kenmerkbestell_waarde
|
||||
VARCHAR2(255)
|
||||
, bes_kenmerkbestell_aanmaak
|
||||
DATE
|
||||
DEFAULT SYSDATE
|
||||
, bes_kenmerkbestell_verwijder
|
||||
DATE
|
||||
DEFAULT NULLDATUM
|
||||
, CONSTRAINT bes_r_bes_bestelling_key2 CHECK(bes_bestelling_key IS NOT NULL)
|
||||
, CONSTRAINT bes_r_bes_kenmerk_key1 CHECK(bes_kenmerk_key IS NOT NULL)
|
||||
, CONSTRAINT bes_r_bes_kenmerk_key2 FOREIGN KEY(bes_kenmerk_key) REFERENCES bes_kenmerk(bes_kenmerk_key)
|
||||
, CONSTRAINT bes_c_bes_kenmerkbestell_aanm CHECK(bes_kenmerkbestell_aanmaak IS NOT NULL)
|
||||
, CONSTRAINT bes_u_bes_kenmerkbestell UNIQUE(bes_kenmerk_key, bes_bestelling_key, bes_kenmerkbestell_verwijder)
|
||||
);
|
||||
|
||||
CREATE_TABLE(bes_kenmerkbesteli, 0)
|
||||
( bes_kenmerkbesteli_key
|
||||
NUMBER(10)
|
||||
CONSTRAINT bes_k_bes_kenmerkbesteli_key PRIMARY KEY
|
||||
, bes_bestelling_item_key
|
||||
NUMBER(10)
|
||||
, bes_kenmerk_key
|
||||
NUMBER(10)
|
||||
, bes_kenmerkbesteli_waarde
|
||||
VARCHAR2(255)
|
||||
, bes_kenmerkbesteli_aanmaak
|
||||
DATE
|
||||
DEFAULT SYSDATE
|
||||
, bes_kenmerkbesteli_verwijder
|
||||
DATE
|
||||
DEFAULT NULLDATUM
|
||||
, CONSTRAINT bes_r_bes_bestelling_item_key2 CHECK(bes_bestelling_item_key IS NOT NULL)
|
||||
, CONSTRAINT bes_r_bes_kenmerk_key3 CHECK(bes_kenmerk_key IS NOT NULL)
|
||||
, CONSTRAINT bes_r_bes_kenmerk_key4 FOREIGN KEY(bes_kenmerk_key) REFERENCES bes_kenmerk(bes_kenmerk_key)
|
||||
, CONSTRAINT bes_c_bes_kenmerkbesteli_aanm CHECK(bes_kenmerkbesteli_aanmaak IS NOT NULL)
|
||||
, CONSTRAINT bes_u_bes_kenmerkbesteli UNIQUE(bes_kenmerk_key, bes_bestelling_item_key, bes_kenmerkbesteli_verwijder)
|
||||
);
|
||||
|
||||
#endif // BES
|
||||
|
||||
509
BES/BES_TRI.SRC
509
BES/BES_TRI.SRC
@@ -1,8 +1,8 @@
|
||||
#ifdef BES // 03-11-2000 PF
|
||||
|
||||
/*
|
||||
* $Revision: 31 $
|
||||
* $Modtime: 28-03-06 13:20 $
|
||||
* $Revision: 32 $
|
||||
* $Modtime: 16-05-06 13:05 $
|
||||
*
|
||||
* History
|
||||
*
|
||||
@@ -354,4 +354,509 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
#endif
|
||||
|
||||
|
||||
// new
|
||||
CREATE_TRIGGER(bes_t_bes_refsrtkenmerk_b_iu)
|
||||
BEFORE INSERT OR UPDATE
|
||||
ON bes_refsrtkenmerk
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
objecttype user_objects.object_type%TYPE;
|
||||
BEGIN
|
||||
UPDATE_PRIMARY_KEY(bes_refsrtkenmerk_key, bes_s_bes_refsrtkenmerk_key);
|
||||
UPDATE_UPPER(bes_refsrtkenmerk_omschrijving, bes_refsrtkenmerk_upper,bes_refsrtkenmerk);
|
||||
UPDATE_AANMAAKDATUM(bes_refsrtkenmerk, bes_refsrtkenmerk_aanmaak);
|
||||
--
|
||||
-- Controleer of de ingevulde tablenaam, kolomnaam en kolomtxt
|
||||
-- wel bestaan. Controle moet ook gebeuren als de omschrijving
|
||||
-- is gewijzigd; de objectnaam is dan hetzelfde.
|
||||
--
|
||||
BEGIN
|
||||
SELECT object_type
|
||||
INTO objecttype
|
||||
FROM user_objects
|
||||
WHERE object_name = :NEW.bes_refsrtkenmerk_objectnaam;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
objecttype := NULL;
|
||||
END;
|
||||
|
||||
IF objecttype IS NULL
|
||||
THEN
|
||||
raise_application_error (-20000, 'bes_m244');
|
||||
ELSIF objecttype = 'TABLE' OR objecttype = 'VIEW'
|
||||
THEN
|
||||
DECLARE
|
||||
dummy VARCHAR2 (30);
|
||||
BEGIN
|
||||
SELECT column_name
|
||||
INTO dummy
|
||||
FROM user_tab_columns
|
||||
WHERE table_name = :NEW.bes_refsrtkenmerk_objectnaam
|
||||
AND column_name = :NEW.bes_refsrtkenmerk_kolomnaam
|
||||
AND data_type = 'NUMBER';
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
raise_application_error (-20000, 'bes_m245');
|
||||
END;
|
||||
|
||||
DECLARE
|
||||
dummy VARCHAR2 (30);
|
||||
BEGIN
|
||||
SELECT column_name
|
||||
INTO dummy
|
||||
FROM user_tab_columns
|
||||
WHERE table_name = :NEW.bes_refsrtkenmerk_objectnaam
|
||||
AND column_name = :NEW.bes_refsrtkenmerk_kolomtxt
|
||||
AND data_type LIKE '%CHAR%';
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
raise_application_error (-20000, 'bes_m246');
|
||||
END;
|
||||
ELSIF objecttype <> 'SYNONYM'
|
||||
THEN
|
||||
raise_application_error (-20000, 'bes_m244');
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE_TRIGGER(bes_t_bes_srtkenmerk_b_iu)
|
||||
BEFORE INSERT OR UPDATE
|
||||
ON bes_srtkenmerk
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
IF :NEW.bes_srtkenmerk_key IS NULL
|
||||
THEN
|
||||
SELECT bes_s_bes_srtkenmerk_key.NEXTVAL
|
||||
INTO :NEW.bes_srtkenmerk_key
|
||||
FROM DUAL;
|
||||
END IF;
|
||||
|
||||
:NEW.bes_srtkenmerk_upper := UPPER (:NEW.bes_srtkenmerk_omschrijving);
|
||||
|
||||
BEGIN
|
||||
IF :NEW.bes_srtkenmerk_aanmaak IS NULL
|
||||
THEN
|
||||
:NEW.bes_srtkenmerk_aanmaak := SYSDATE;
|
||||
END IF;
|
||||
END;
|
||||
|
||||
IF (:NEW.bes_srtkenmerk_kenmerktype = 'C' OR :NEW.bes_srtkenmerk_kenmerktype = 'N')
|
||||
AND :NEW.bes_srtkenmerk_lengte IS NULL
|
||||
THEN
|
||||
raise_application_error (-20000, 'bes_C_bes_SRTKENMERK_LENGTE');
|
||||
END IF;
|
||||
|
||||
IF :NEW.bes_srtkenmerk_kenmerktype = 'N' AND :OLD.bes_srtkenmerk_key IS NOT NULL
|
||||
THEN
|
||||
IF :OLD.bes_srtkenmerk_nmin <> :NEW.bes_srtkenmerk_nmin
|
||||
OR (:OLD.bes_srtkenmerk_nmin IS NULL AND :NEW.bes_srtkenmerk_nmin IS NOT NULL)
|
||||
THEN
|
||||
DECLARE
|
||||
dummy CHAR;
|
||||
BEGIN
|
||||
SELECT 'X'
|
||||
INTO dummy
|
||||
FROM (SELECT 'X'
|
||||
FROM bes_kenmerkbestell
|
||||
WHERE fac.safe_to_number (bes_kenmerkbestell_waarde) < :NEW.bes_srtkenmerk_nmin
|
||||
AND bes_kenmerk_key IN (SELECT bes_kenmerk_key
|
||||
FROM bes_kenmerk
|
||||
WHERE bes_srtkenmerk_key = :OLD.bes_srtkenmerk_key)
|
||||
UNION ALL
|
||||
SELECT 'X'
|
||||
FROM bes_kenmerkbesteli
|
||||
WHERE fac.safe_to_number (bes_kenmerkbesteli_waarde) < :NEW.bes_srtkenmerk_nmin
|
||||
AND bes_kenmerk_key IN (SELECT bes_kenmerk_key
|
||||
FROM bes_kenmerk
|
||||
WHERE bes_srtkenmerk_key = :OLD.bes_srtkenmerk_key));
|
||||
|
||||
raise_application_error (-20000, 'bes_C_bes_SRTKENMERK_MIN');
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
NULL;
|
||||
WHEN TOO_MANY_ROWS
|
||||
THEN
|
||||
raise_application_error (-20000, 'bes_C_bes_SRTKENMERK_MIN');
|
||||
END;
|
||||
END IF;
|
||||
|
||||
IF :OLD.bes_srtkenmerk_nmax <> :NEW.bes_srtkenmerk_nmax
|
||||
OR (:OLD.bes_srtkenmerk_nmax IS NULL AND :NEW.bes_srtkenmerk_nmax IS NOT NULL)
|
||||
THEN
|
||||
DECLARE
|
||||
dummy CHAR;
|
||||
BEGIN
|
||||
SELECT 'X'
|
||||
INTO dummy
|
||||
FROM (SELECT 'X'
|
||||
FROM bes_kenmerkbestell
|
||||
WHERE fac.safe_to_number (bes_kenmerkbestell_waarde) > :NEW.bes_srtkenmerk_nmax
|
||||
AND bes_kenmerk_key IN (SELECT bes_kenmerk_key
|
||||
FROM bes_kenmerk
|
||||
WHERE bes_srtkenmerk_key = :OLD.bes_srtkenmerk_key)
|
||||
UNION ALL
|
||||
SELECT 'X'
|
||||
FROM bes_kenmerkbesteli
|
||||
WHERE fac.safe_to_number (bes_kenmerkbesteli_waarde) > :NEW.bes_srtkenmerk_nmax
|
||||
AND bes_kenmerk_key IN (SELECT bes_kenmerk_key
|
||||
FROM bes_kenmerk
|
||||
WHERE bes_srtkenmerk_key = :OLD.bes_srtkenmerk_key));
|
||||
|
||||
raise_application_error (-20000, 'bes_C_bes_SRTKENMERK_MAX');
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
NULL;
|
||||
WHEN TOO_MANY_ROWS
|
||||
THEN
|
||||
raise_application_error (-20000, 'bes_C_bes_SRTKENMERK_MAX');
|
||||
END;
|
||||
END IF;
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE_TRIGGER(bes_t_bes_srtkenmerk_b_d)
|
||||
BEFORE DELETE ON bes_srtkenmerk
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
IF :old.bes_srtkenmerk_systeem IS NOT NULL
|
||||
THEN
|
||||
raise_application_error(-20003, 'bes_C_bes_SRTKENMERK_SYSTEEM');
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE_TRIGGER(bes_t_bes_kenmerk_b_iu)
|
||||
BEFORE INSERT OR UPDATE
|
||||
ON bes_kenmerk
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
-- Een kenmerk mag niet verplicht worden gemaakt als er al
|
||||
-- waarden ingevuld zijn en hij daarvoor niet verplicht was.
|
||||
-- Dit is alleen bij wijzigen te controleren, doordat
|
||||
-- de PrimaryKey niet NULL is.
|
||||
--
|
||||
IF :NEW.bes_kenmerk_key IS NOT NULL AND :NEW.bes_kenmerk_verplicht IS NOT NULL
|
||||
AND :OLD.bes_kenmerk_verplicht IS NULL
|
||||
THEN
|
||||
DECLARE
|
||||
dummy CHAR;
|
||||
BEGIN
|
||||
SELECT 'X'
|
||||
INTO dummy
|
||||
FROM bes_kenmerkbestell
|
||||
WHERE bes_kenmerk_key = :NEW.bes_kenmerk_key;
|
||||
|
||||
raise_application_error (-20004, 'bes_C_bes_KENMERK_VERPLICHT0');
|
||||
|
||||
SELECT 'X'
|
||||
INTO dummy
|
||||
FROM bes_kenmerkbesteli
|
||||
WHERE bes_kenmerk_key = :NEW.bes_kenmerk_key;
|
||||
|
||||
raise_application_error (-20004, 'bes_C_bes_KENMERK_VERPLICHT0');
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
NULL;
|
||||
WHEN TOO_MANY_ROWS
|
||||
THEN
|
||||
raise_application_error (-20004, 'bes_C_bes_KENMERK_VERPLICHT0');
|
||||
END;
|
||||
END IF;
|
||||
UPDATE_PRIMARY_KEY(bes_kenmerk_key, bes_s_bes_kenmerk_key);
|
||||
UPDATE_AANMAAKDATUM(bes_kenmerk, bes_kenmerk_aanmaak);
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE_TRIGGER(bes_t_bes_kenmerkbestell_b_iu)
|
||||
BEFORE INSERT OR UPDATE
|
||||
ON bes_kenmerkbestell
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE_PRIMARY_KEY(bes_kenmerkbestell_key, bes_s_bes_kenmerkbestell_key);
|
||||
-- Controleer eerst of de ingevulde waarde goed is.
|
||||
--
|
||||
IF :NEW.bes_kenmerkbestell_waarde <> :OLD.bes_kenmerkbestell_waarde
|
||||
OR :OLD.bes_kenmerkbestell_waarde IS NULL
|
||||
OR :NEW.bes_kenmerkbestell_waarde IS NULL
|
||||
THEN
|
||||
DECLARE
|
||||
srtkenmerkomschr bes_srtkenmerk.bes_srtkenmerk_omschrijving%TYPE;
|
||||
srtkenmerktype bes_srtkenmerk.bes_srtkenmerk_kenmerktype%TYPE;
|
||||
srtkenmerklengte bes_srtkenmerk.bes_srtkenmerk_lengte%TYPE;
|
||||
srtkenmerkdec bes_srtkenmerk.bes_srtkenmerk_dec%TYPE;
|
||||
srtkenmerknmin bes_srtkenmerk.bes_srtkenmerk_nmin%TYPE;
|
||||
srtkenmerknmax bes_srtkenmerk.bes_srtkenmerk_nmax%TYPE;
|
||||
kenmerkverplicht bes_kenmerk.bes_kenmerk_verplicht%TYPE;
|
||||
refsrtkenmerkkey NUMBER (10);
|
||||
numberwaarde NUMBER (15, 5);
|
||||
formatmask VARCHAR2 (60);
|
||||
kenmerkbestellingwaarde bes_kenmerkbestell.bes_kenmerkbestell_waarde%TYPE;
|
||||
BEGIN
|
||||
kenmerkbestellingwaarde := :NEW.bes_kenmerkbestell_waarde;
|
||||
|
||||
--
|
||||
SELECT bes_sk.bes_srtkenmerk_omschrijving, bes_sk.bes_srtkenmerk_kenmerktype, bes_sk.bes_srtkenmerk_lengte,
|
||||
bes_sk.bes_srtkenmerk_dec, bes_sk.bes_srtkenmerk_nmin, bes_sk.bes_srtkenmerk_nmax,
|
||||
bes_sk.bes_refsrtkenmerk_key, bes_k.bes_kenmerk_verplicht
|
||||
INTO srtkenmerkomschr, srtkenmerktype, srtkenmerklengte,
|
||||
srtkenmerkdec, srtkenmerknmin, srtkenmerknmax,
|
||||
refsrtkenmerkkey, kenmerkverplicht
|
||||
FROM bes_srtkenmerk bes_sk, bes_kenmerk bes_k
|
||||
WHERE bes_sk.bes_srtkenmerk_key = bes_k.bes_srtkenmerk_key AND bes_k.bes_kenmerk_key = :NEW.bes_kenmerk_key;
|
||||
|
||||
--
|
||||
-- Controleer eerst of het verplichte veld ingevuld is.
|
||||
--
|
||||
IF kenmerkverplicht IS NOT NULL AND kenmerkbestellingwaarde IS NULL
|
||||
THEN
|
||||
raise_application_error (-20004, 'bes_m240,' || srtkenmerkomschr);
|
||||
--
|
||||
-- Kijk welk KenmerkType gebruikt wordt.
|
||||
-- Aan de hand daarvan moet een controle uitgevoerd worden.
|
||||
--
|
||||
ELSIF srtkenmerktype = 'C'
|
||||
THEN
|
||||
-- CHAR
|
||||
-- Controleer of de lengte te groot of goed is.
|
||||
IF LENGTH (kenmerkbestellingwaarde) > srtkenmerklengte
|
||||
THEN
|
||||
raise_application_error (-20004, 'bes_m241,' || srtkenmerkomschr || ',' || TO_CHAR (srtkenmerklengte));
|
||||
END IF;
|
||||
ELSIF srtkenmerktype = 'N'
|
||||
THEN
|
||||
-- NUMBER
|
||||
-- Controleer of er een numerieke waarde ingevuld is.
|
||||
IF srtkenmerkdec IS NULL OR srtkenmerkdec = 0
|
||||
THEN
|
||||
formatmask := RPAD ('9', srtkenmerklengte, '9');
|
||||
ELSE
|
||||
formatmask := RPAD ('9', srtkenmerklengte - srtkenmerkdec, '9') || 'D' || RPAD ('9', srtkenmerkdec, '9');
|
||||
END IF;
|
||||
|
||||
--
|
||||
BEGIN
|
||||
#ifdef MS_SQL
|
||||
DECLARE isnum smallint;
|
||||
isnum := WEB.IsNumberString(@kenmerkbestellingWaarde)
|
||||
if isnum = -1 GOTO lcontinue
|
||||
if isnum = 0 BEGIN
|
||||
FormatMask := REPLACE(FormatMask, '9', '#');
|
||||
FormatMask := REPLACE(FormatMask, '0', '#');
|
||||
FormatMask := REPLACE(FormatMask, 'D', '.');
|
||||
APPLICATION_ERROR_GOTO(-20004,'bes_m242,'||SrtKenmerkOmschr||','||FormatMask);
|
||||
END;
|
||||
#endif
|
||||
numberwaarde := TO_NUMBER (kenmerkbestellingwaarde);
|
||||
#ifndef MS_SQL
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
formatmask := REPLACE (formatmask, '9', '#');
|
||||
formatmask := REPLACE (formatmask, '0', '#');
|
||||
formatmask := REPLACE (formatmask, 'D', '.');
|
||||
raise_application_error (-20004, 'bes_m242,' || srtkenmerkomschr || ',' || formatmask);
|
||||
#endif
|
||||
END;
|
||||
-- Controleer of de waarde binnen NMin en NMax ligt.
|
||||
IF (srtkenmerknmin IS NOT NULL AND numberwaarde < srtkenmerknmin)
|
||||
OR (srtkenmerknmax IS NOT NULL AND numberwaarde > srtkenmerknmax)
|
||||
THEN
|
||||
raise_application_error (-20004,
|
||||
'bes_m243,'
|
||||
|| srtkenmerkomschr
|
||||
|| ','
|
||||
|| TO_CHAR (srtkenmerknmin)
|
||||
|| ','
|
||||
|| TO_CHAR (srtkenmerknmax)
|
||||
);
|
||||
ELSE
|
||||
-- Controleer of de waarde aan het formaat voldoet.
|
||||
kenmerkbestellingwaarde := LTRIM (NUMBER_TO_CHAR (numberwaarde, formatmask));
|
||||
|
||||
IF INSTR2 (kenmerkbestellingwaarde, '#') <> 0
|
||||
THEN
|
||||
formatmask := REPLACE (formatmask, '9', '#');
|
||||
formatmask := REPLACE (formatmask, '0', '#');
|
||||
formatmask := REPLACE (formatmask, 'D', '.');
|
||||
raise_application_error (-20004, 'bes_m242,' || srtkenmerkomschr || ',' || formatmask);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Zet de geconverteerde waarde terug.
|
||||
:NEW.bes_kenmerkbestell_waarde := kenmerkbestellingwaarde;
|
||||
ELSIF srtkenmerktype = 'D'
|
||||
THEN
|
||||
-- DATUM
|
||||
#ifdef MS_SQL
|
||||
DECLARE isdat smallint;
|
||||
isdat := WEB.IsDateString(@kenmerkbestellingWaarde,'DD-MM-YYYY')
|
||||
if isdat = -1 GOTO lcontinue
|
||||
if isdat = 0 BEGIN
|
||||
FormatMask := 'DD-MM-YYYY';
|
||||
APPLICATION_ERROR_GOTO(-20004,'bes_m242,'||SrtKenmerkOmschr||','||FormatMask);
|
||||
END;
|
||||
#endif
|
||||
kenmerkbestellingwaarde := DATE_TO_CHAR(_TO_DATE2(kenmerkbestellingwaarde, 'DD-MM-YY'), 'DD-MM-YYYY');
|
||||
-- Zet de geconverteerde waarde terug.
|
||||
:NEW.bes_kenmerkbestell_waarde := kenmerkbestellingwaarde;
|
||||
END IF;
|
||||
END;
|
||||
#ifdef MS_SQL
|
||||
lcontinue:
|
||||
#endif
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE_TRIGGER(bes_t_bes_kenmerkbesteli_b_iu)
|
||||
BEFORE INSERT OR UPDATE
|
||||
ON bes_kenmerkbesteli
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE_PRIMARY_KEY(bes_kenmerkbesteli_key, bes_s_bes_kenmerkbesteli_key);
|
||||
-- Controleer eerst of de ingevulde waarde goed is.
|
||||
--
|
||||
IF :NEW.bes_kenmerkbesteli_waarde <> :OLD.bes_kenmerkbesteli_waarde
|
||||
OR :OLD.bes_kenmerkbesteli_waarde IS NULL
|
||||
OR :NEW.bes_kenmerkbesteli_waarde IS NULL
|
||||
THEN
|
||||
DECLARE
|
||||
srtkenmerkomschr bes_srtkenmerk.bes_srtkenmerk_omschrijving%TYPE;
|
||||
srtkenmerktype bes_srtkenmerk.bes_srtkenmerk_kenmerktype%TYPE;
|
||||
srtkenmerklengte bes_srtkenmerk.bes_srtkenmerk_lengte%TYPE;
|
||||
srtkenmerkdec bes_srtkenmerk.bes_srtkenmerk_dec%TYPE;
|
||||
srtkenmerknmin bes_srtkenmerk.bes_srtkenmerk_nmin%TYPE;
|
||||
srtkenmerknmax bes_srtkenmerk.bes_srtkenmerk_nmax%TYPE;
|
||||
kenmerkverplicht bes_kenmerk.bes_kenmerk_verplicht%TYPE;
|
||||
refsrtkenmerkkey NUMBER (10);
|
||||
numberwaarde NUMBER (15, 5);
|
||||
formatmask VARCHAR2 (60);
|
||||
kenmerkbestelitemwaarde bes_kenmerkbesteli.bes_kenmerkbesteli_waarde%TYPE;
|
||||
BEGIN
|
||||
kenmerkbestelitemwaarde := :NEW.bes_kenmerkbesteli_waarde;
|
||||
|
||||
--
|
||||
SELECT bes_sk.bes_srtkenmerk_omschrijving, bes_sk.bes_srtkenmerk_kenmerktype, bes_sk.bes_srtkenmerk_lengte,
|
||||
bes_sk.bes_srtkenmerk_dec, bes_sk.bes_srtkenmerk_nmin, bes_sk.bes_srtkenmerk_nmax,
|
||||
bes_sk.bes_refsrtkenmerk_key, bes_k.bes_kenmerk_verplicht
|
||||
INTO srtkenmerkomschr, srtkenmerktype, srtkenmerklengte,
|
||||
srtkenmerkdec, srtkenmerknmin, srtkenmerknmax,
|
||||
refsrtkenmerkkey, kenmerkverplicht
|
||||
FROM bes_srtkenmerk bes_sk, bes_kenmerk bes_k
|
||||
WHERE bes_sk.bes_srtkenmerk_key = bes_k.bes_srtkenmerk_key AND bes_k.bes_kenmerk_key = :NEW.bes_kenmerk_key;
|
||||
|
||||
--
|
||||
-- Controleer eerst of het verplichte veld ingevuld is.
|
||||
--
|
||||
IF kenmerkverplicht IS NOT NULL AND kenmerkbestelitemwaarde IS NULL
|
||||
THEN
|
||||
raise_application_error (-20004, 'bes_m240,' || srtkenmerkomschr);
|
||||
--
|
||||
-- Kijk welk KenmerkType gebruikt wordt.
|
||||
-- Aan de hand daarvan moet een controle uitgevoerd worden.
|
||||
--
|
||||
ELSIF srtkenmerktype = 'C'
|
||||
THEN
|
||||
-- CHAR
|
||||
-- Controleer of de lengte te groot of goed is.
|
||||
IF LENGTH (kenmerkbestelitemwaarde) > srtkenmerklengte
|
||||
THEN
|
||||
raise_application_error (-20004, 'bes_m241,' || srtkenmerkomschr || ',' || TO_CHAR (srtkenmerklengte));
|
||||
END IF;
|
||||
ELSIF srtkenmerktype = 'N'
|
||||
THEN
|
||||
-- NUMBER
|
||||
-- Controleer of er een numerieke waarde ingevuld is.
|
||||
IF srtkenmerkdec IS NULL OR srtkenmerkdec = 0
|
||||
THEN
|
||||
formatmask := RPAD ('9', srtkenmerklengte, '9');
|
||||
ELSE
|
||||
formatmask := RPAD ('9', srtkenmerklengte - srtkenmerkdec, '9') || 'D' || RPAD ('9', srtkenmerkdec, '9');
|
||||
END IF;
|
||||
|
||||
--
|
||||
BEGIN
|
||||
#ifdef MS_SQL
|
||||
DECLARE isnum smallint;
|
||||
isnum := WEB.IsNumberString(@kenmerkbestelitemwaarde)
|
||||
if isnum = -1 GOTO lcontinue
|
||||
if isnum = 0 BEGIN
|
||||
FormatMask := REPLACE(FormatMask, '9', '#');
|
||||
FormatMask := REPLACE(FormatMask, '0', '#');
|
||||
FormatMask := REPLACE(FormatMask, 'D', '.');
|
||||
APPLICATION_ERROR_GOTO(-20004,'bes_m242,'||SrtKenmerkOmschr||','||FormatMask);
|
||||
END;
|
||||
#endif
|
||||
numberwaarde := TO_NUMBER (kenmerkbestelitemwaarde);
|
||||
#ifndef MS_SQL
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
formatmask := REPLACE (formatmask, '9', '#');
|
||||
formatmask := REPLACE (formatmask, '0', '#');
|
||||
formatmask := REPLACE (formatmask, 'D', '.');
|
||||
raise_application_error (-20004, 'bes_m242,' || srtkenmerkomschr || ',' || formatmask);
|
||||
#endif
|
||||
END;
|
||||
-- Controleer of de waarde binnen NMin en NMax ligt.
|
||||
IF (srtkenmerknmin IS NOT NULL AND numberwaarde < srtkenmerknmin)
|
||||
OR (srtkenmerknmax IS NOT NULL AND numberwaarde > srtkenmerknmax)
|
||||
THEN
|
||||
raise_application_error (-20004,
|
||||
'bes_m243,'
|
||||
|| srtkenmerkomschr
|
||||
|| ','
|
||||
|| TO_CHAR (srtkenmerknmin)
|
||||
|| ','
|
||||
|| TO_CHAR (srtkenmerknmax)
|
||||
);
|
||||
ELSE
|
||||
-- Controleer of de waarde aan het formaat voldoet.
|
||||
kenmerkbestelitemwaarde := LTRIM (NUMBER_TO_CHAR (numberwaarde, formatmask));
|
||||
|
||||
IF INSTR2 (kenmerkbestelitemwaarde, '#') <> 0
|
||||
THEN
|
||||
formatmask := REPLACE (formatmask, '9', '#');
|
||||
formatmask := REPLACE (formatmask, '0', '#');
|
||||
formatmask := REPLACE (formatmask, 'D', '.');
|
||||
raise_application_error (-20004, 'bes_m242,' || srtkenmerkomschr || ',' || formatmask);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Zet de geconverteerde waarde terug.
|
||||
:NEW.bes_kenmerkbesteli_waarde := kenmerkbestelitemwaarde;
|
||||
ELSIF srtkenmerktype = 'D'
|
||||
THEN
|
||||
-- DATUM
|
||||
#ifdef MS_SQL
|
||||
DECLARE isdat smallint;
|
||||
isdat := WEB.IsDateString(@kenmerkbestelitemwaarde,'DD-MM-YYYY')
|
||||
if isdat = -1 GOTO lcontinue
|
||||
if isdat = 0 BEGIN
|
||||
FormatMask := 'DD-MM-YYYY';
|
||||
APPLICATION_ERROR_GOTO(-20004,'bes_m242,'||SrtKenmerkOmschr||','||FormatMask);
|
||||
END;
|
||||
#endif
|
||||
kenmerkbestelitemwaarde := DATE_TO_CHAR(_TO_DATE2(kenmerkbestelitemwaarde, 'DD-MM-YY'), 'DD-MM-YYYY');
|
||||
-- Zet de geconverteerde waarde terug.
|
||||
:NEW.bes_kenmerkbesteli_waarde := kenmerkbestelitemwaarde;
|
||||
END IF;
|
||||
END;
|
||||
#ifdef MS_SQL
|
||||
lcontinue:
|
||||
#endif
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
#endif // BES
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifdef MLD // 13-03-96 AH
|
||||
|
||||
/* $Revision: 57 $
|
||||
* $Modtime: 26-01-06 14:31 $
|
||||
/* $Revision: 58 $
|
||||
* $Modtime: 2-06-06 10:44 $
|
||||
*/
|
||||
#include "comsql.h"
|
||||
|
||||
@@ -218,6 +218,9 @@ CREATE_TABLE(mld_adres, MLD_NORMAAL_PRIVILEGE)
|
||||
VARCHAR2(15),
|
||||
mld_adres_fax
|
||||
VARCHAR2(15),
|
||||
alg_locatie_key
|
||||
NUMBER(10)
|
||||
CONSTRAINT mld_r_alg_locatie_key3 REFERENCES alg_locatie (alg_locatie_key) ON DELETE CASCADE,
|
||||
mld_adres_aanmaak
|
||||
DATE
|
||||
DEFAULT SYSDATE,
|
||||
|
||||
Reference in New Issue
Block a user