NYBU#55434: Flexkenmerken per artikelregel.
svn path=/Database/trunk/; revision=41321
This commit is contained in:
@@ -1096,6 +1096,8 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
|
||||
DELETE FROM res_kenmerkwaarde;
|
||||
|
||||
DELETE FROM res_kenmerkartikel;
|
||||
|
||||
DELETE FROM res_alg_ruimte;
|
||||
|
||||
DELETE FROM res_ruimte_opstelling;
|
||||
|
||||
@@ -3742,7 +3742,7 @@ AS
|
||||
LOOP
|
||||
createopentag ('note');
|
||||
createxmltagvalue ('key', rec1.mld_melding_note_key);
|
||||
createxmltagvalue ('flag', rec1.mld_melding_note_flag);
|
||||
createxmltagvalue ('flag', BITAND(rec1.mld_melding_note_flag, 191)); -- reset de hier irrelevante 64-bit om compatibel te blijven
|
||||
mydatetochar ('aanmaak', rec1.mld_melding_note_aanmaak);
|
||||
createxmltagvalue ('omschrijving',
|
||||
rec1.mld_melding_note_omschrijving);
|
||||
@@ -7058,6 +7058,72 @@ AS
|
||||
END LOOP;
|
||||
END;
|
||||
|
||||
PROCEDURE create_res_kenmerken_rsv_art (p_key IN NUMBER)
|
||||
AS
|
||||
CURSOR c1
|
||||
IS
|
||||
SELECT k.res_kenmerk_key,
|
||||
lcl.x ('res_srtkenmerk_omschrijving', s.res_srtkenmerk_key, res_srtkenmerk_omschrijving) res_srtkenmerk_omschrijving,
|
||||
s.res_srtkenmerk_kenmerktype,
|
||||
s.fac_kenmerkdomein_key,
|
||||
s.res_srtkenmerk_lengte,
|
||||
s.res_srtkenmerk_dec,
|
||||
s.res_srtkenmerk_nmin,
|
||||
s.res_srtkenmerk_nmax,
|
||||
k.res_kenmerk_default,
|
||||
NVL (k.res_kenmerk_volgnummer, 0) volgnummer,
|
||||
lcl.x ('res_srtkenmerk_dimensie',
|
||||
s.res_srtkenmerk_key,
|
||||
res_srtkenmerk_dimensie)
|
||||
dimensie,
|
||||
lcl.x ('res_kenmerk_hint',
|
||||
k.res_kenmerk_key,
|
||||
res_kenmerk_hint)
|
||||
hint,
|
||||
v.res_kenmerkartikel_waarde
|
||||
FROM res_kenmerk k,
|
||||
res_srtkenmerk s,
|
||||
res_rsv_artikel a,
|
||||
(SELECT v.res_kenmerk_key, v.res_kenmerkartikel_waarde
|
||||
FROM res_kenmerkartikel v
|
||||
WHERE v.res_rsv_artikel_key = p_key
|
||||
AND v.res_kenmerkartikel_verwijder IS NULL) v
|
||||
WHERE k.res_artikel_key = a.res_artikel_key
|
||||
AND a.res_rsv_artikel_key = p_key
|
||||
AND k.res_activiteit_key IS NULL
|
||||
AND k.res_kenmerk_verwijder IS NULL
|
||||
AND k.res_srtkenmerk_key = s.res_srtkenmerk_key
|
||||
AND v.res_kenmerk_key(+) = k.res_kenmerk_key
|
||||
ORDER BY k.res_kenmerk_volgnummer;
|
||||
|
||||
v_kenmerk_waarde res_kenmerkartikel.res_kenmerkartikel_waarde%TYPE;
|
||||
BEGIN
|
||||
FOR rec1 IN c1
|
||||
LOOP
|
||||
v_kenmerk_waarde :=
|
||||
find_kenmerk_waarde (rec1.res_kenmerkartikel_waarde,
|
||||
rec1.res_kenmerk_default,
|
||||
rec1.res_srtkenmerk_kenmerktype,
|
||||
rec1.fac_kenmerkdomein_key,
|
||||
rec1.res_srtkenmerk_nmin,
|
||||
rec1.res_srtkenmerk_nmax);
|
||||
|
||||
createxmltagvalueattributes ('kenmerk',
|
||||
'naam',
|
||||
rec1.res_srtkenmerk_omschrijving,
|
||||
'type',
|
||||
rec1.res_srtkenmerk_kenmerktype,
|
||||
'volgnummer',
|
||||
rec1.volgnummer,
|
||||
'key',
|
||||
rec1.res_kenmerk_key,
|
||||
'dimensie',
|
||||
rec1.dimensie,
|
||||
rec1.fac_kenmerkdomein_key,
|
||||
v_kenmerk_waarde);
|
||||
END LOOP;
|
||||
END;
|
||||
|
||||
PROCEDURE create_res_ruimte_node (p_opstelkey IN NUMBER)
|
||||
AS
|
||||
v_bezoekers res_ruimte_opstelling.res_ruimte_opstel_bezoekers%TYPE;
|
||||
@@ -7421,6 +7487,7 @@ AS
|
||||
createxmltagvalue ('prijs', v_prijs);
|
||||
mydatetochar ('aanmaak', v_aanmaak);
|
||||
mydatetochar ('verwijder', v_verwijder);
|
||||
create_res_kenmerken_rsv_art (p_key);
|
||||
createclosetag ('rsv_artikel');
|
||||
END;
|
||||
|
||||
|
||||
169
RES/RES_PAC.SRC
169
RES/RES_PAC.SRC
@@ -368,6 +368,64 @@ AS
|
||||
+ (ra.res_rsv_artikel_levering - TRUNC (ra.res_rsv_artikel_levering)) BETWEEN new_ruimte_van AND new_ruimte_tot
|
||||
AND ra.res_rsv_ruimte_key = prsv_ruimte_key_from;
|
||||
END;
|
||||
-- Kenmerken ook kopieren.
|
||||
IF BITAND (flags, 1024) = 1024
|
||||
THEN
|
||||
-- Verwijder eerst de oude niet-file kenmerken
|
||||
-- Artikel kenmerken.
|
||||
DELETE FROM res_kenmerkartikel
|
||||
WHERE res_rsv_artikel_key = (SELECT res_rsv_artikel_key FROM res_rsv_artikel WHERE res_rsv_ruimte_key = prsv_ruimte_key_to)
|
||||
AND res_kenmerk_key IN
|
||||
(SELECT k.res_kenmerk_key
|
||||
FROM res_kenmerkartikel w, res_kenmerk k, res_srtkenmerk sk
|
||||
WHERE w.res_kenmerk_key = k.res_kenmerk_key
|
||||
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key
|
||||
AND w.res_rsv_artikel_key = (SELECT res_rsv_artikel_key FROM res_rsv_artikel WHERE res_rsv_ruimte_key = prsv_ruimte_key_to)
|
||||
AND sk.res_srtkenmerk_kenmerktype NOT IN ('F', 'M', 'E'));
|
||||
--
|
||||
-- Artikel kenmerken.
|
||||
INSERT INTO res_kenmerkartikel (res_rsv_artikel_key, res_kenmerk_key, res_kenmerkartikel_waarde)
|
||||
SELECT a.res_rsv_artikel_key,
|
||||
k.res_kenmerk_key,
|
||||
waarde_from.res_kenmerkartikel_waarde
|
||||
FROM res_srtkenmerk t,
|
||||
res_kenmerk k,
|
||||
res_srtkenmerk s,
|
||||
res_rsv_ruimte r,
|
||||
res_rsv_artikel a,
|
||||
(SELECT w1.res_kenmerkartikel_waarde,
|
||||
k1.res_kenmerk_groep,
|
||||
k1.res_srtkenmerk_key,
|
||||
k1.res_artikel_key,
|
||||
k1.res_kenmerk_key
|
||||
FROM res_kenmerkartikel w1,
|
||||
res_kenmerk k1,
|
||||
res_srtkenmerk s1,
|
||||
res_rsv_ruimte r1,
|
||||
res_rsv_artikel a1
|
||||
WHERE w1.res_kenmerk_key = k1.res_kenmerk_key
|
||||
AND k1.res_srtkenmerk_key = s1.res_srtkenmerk_key
|
||||
AND k1.res_artikel_key = a1.res_artikel_key
|
||||
AND k1.res_activiteit_key IS NULL
|
||||
AND w1.res_rsv_artikel_key = a1.res_rsv_artikel_key
|
||||
AND a1.res_rsv_ruimte_key = r1.res_rsv_ruimte_key
|
||||
AND w1.res_kenmerkartikel_verwijder IS NULL
|
||||
AND s1.res_srtkenmerk_kenmerktype NOT IN ('F', 'M', 'E')
|
||||
AND r1.res_rsv_ruimte_key = prsv_ruimte_key_from
|
||||
) waarde_from
|
||||
WHERE k.res_artikel_key = a.res_artikel_key
|
||||
AND a.res_rsv_ruimte_key = r.res_rsv_ruimte_key
|
||||
AND k.res_kenmerk_niveau = 'D'
|
||||
AND k.res_kenmerk_volgnummer < 900
|
||||
AND k.res_kenmerk_verwijder IS NULL
|
||||
AND k.res_srtkenmerk_key = t.res_srtkenmerk_key
|
||||
AND t.res_srtkenmerk_verwijder IS NULL
|
||||
AND k.res_srtkenmerk_key = s.res_srtkenmerk_key
|
||||
AND s.res_srtkenmerk_kenmerktype NOT IN ('F', 'M', 'E')
|
||||
AND waarde_from.res_srtkenmerk_key = k.res_srtkenmerk_key
|
||||
AND waarde_from.res_kenmerk_groep = k.res_kenmerk_groep
|
||||
AND r.res_rsv_ruimte_key = prsv_ruimte_key_to;
|
||||
END IF;
|
||||
END IF;
|
||||
-- 512 Bezoekers
|
||||
IF BITAND (flags, 512) = 512
|
||||
@@ -391,16 +449,6 @@ AS
|
||||
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key
|
||||
AND w.res_rsv_ruimte_key = prsv_ruimte_key_to
|
||||
AND sk.res_srtkenmerk_kenmerktype NOT IN ('F', 'M', 'E'));
|
||||
-- Artikel kenmerken.
|
||||
DELETE FROM res_kenmerkartikel
|
||||
WHERE res_rsv_ruimte_key = prsv_ruimte_key_to
|
||||
AND res_kenmerk_key IN
|
||||
(SELECT k.res_kenmerk_key
|
||||
FROM res_kenmerkartikel w, res_kenmerk k, res_srtkenmerk sk
|
||||
WHERE w.res_kenmerk_key = k.res_kenmerk_key
|
||||
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key
|
||||
AND w.res_rsv_ruimte_key = prsv_ruimte_key_to
|
||||
AND sk.res_srtkenmerk_kenmerktype NOT IN ('F', 'M', 'E'));
|
||||
--
|
||||
-- Ruimte kenmerken.
|
||||
INSERT INTO res_kenmerkwaarde (res_rsv_ruimte_key, res_kenmerk_key, res_kenmerkreservering_waarde)
|
||||
@@ -423,7 +471,8 @@ AS
|
||||
WHERE w1.res_kenmerk_key = k1.res_kenmerk_key
|
||||
AND k1.res_srtkenmerk_key = s1.res_srtkenmerk_key
|
||||
AND k1.res_activiteit_key = r1.res_activiteit_key
|
||||
and w1.res_rsv_ruimte_key = r1.res_rsv_ruimte_key
|
||||
AND k1.res_artikel_key IS NULL
|
||||
AND w1.res_rsv_ruimte_key = r1.res_rsv_ruimte_key
|
||||
AND w1.res_kenmerkwaarde_verwijder IS NULL
|
||||
AND s1.res_srtkenmerk_kenmerktype NOT IN ('F', 'M', 'E')
|
||||
AND r1.res_rsv_ruimte_key = prsv_ruimte_key_from
|
||||
@@ -439,43 +488,6 @@ AS
|
||||
AND waarde_from.res_srtkenmerk_key = k.res_srtkenmerk_key
|
||||
AND waarde_from.res_kenmerk_groep = k.res_kenmerk_groep
|
||||
AND r.res_rsv_ruimte_key = prsv_ruimte_key_to;
|
||||
-- Artikel kenmerken.
|
||||
INSERT INTO res_kenmerkartikel (res_rsv_ruimte_key, res_kenmerk_key, res_kenmerkartikel_waarde)
|
||||
SELECT prsv_ruimte_key_to
|
||||
, k.res_kenmerk_key
|
||||
, waarde_from.res_kenmerkartikel_waarde
|
||||
FROM res_srtkenmerk t
|
||||
, res_kenmerk k
|
||||
, res_srtkenmerk s
|
||||
, res_rsv_ruimte r
|
||||
, ( SELECT w1.res_kenmerkartikel_waarde
|
||||
, k1.res_kenmerk_groep
|
||||
, k1.res_srtkenmerk_key
|
||||
, k1.res_activiteit_key
|
||||
, k1.res_kenmerk_key
|
||||
FROM res_kenmerkartikel w1
|
||||
, res_kenmerk k1
|
||||
, res_srtkenmerk s1
|
||||
, res_rsv_ruimte r1
|
||||
WHERE w1.res_kenmerk_key = k1.res_kenmerk_key
|
||||
AND k1.res_srtkenmerk_key = s1.res_srtkenmerk_key
|
||||
AND k1.res_activiteit_key = r1.res_activiteit_key
|
||||
and w1.res_rsv_ruimte_key = r1.res_rsv_ruimte_key
|
||||
AND w1.res_kenmerkartikel_verwijder IS NULL
|
||||
AND s1.res_srtkenmerk_kenmerktype NOT IN ('F', 'M', 'E')
|
||||
AND r1.res_rsv_ruimte_key = prsv_ruimte_key_from
|
||||
) waarde_from
|
||||
WHERE k.res_activiteit_key = r.res_activiteit_key
|
||||
AND k.res_kenmerk_niveau = 'D'
|
||||
AND k.res_kenmerk_volgnummer < 900
|
||||
AND k.res_kenmerk_verwijder IS NULL
|
||||
AND k.res_srtkenmerk_key = t.res_srtkenmerk_key
|
||||
AND t.res_srtkenmerk_verwijder IS NULL
|
||||
AND k.res_srtkenmerk_key = s.res_srtkenmerk_key
|
||||
AND s.res_srtkenmerk_kenmerktype NOT IN ('F', 'M', 'E')
|
||||
AND waarde_from.res_srtkenmerk_key = k.res_srtkenmerk_key
|
||||
AND waarde_from.res_kenmerk_groep = k.res_kenmerk_groep
|
||||
AND r.res_rsv_ruimte_key = prsv_ruimte_key_to;
|
||||
END IF;
|
||||
-- Opmerking en/of Flexkenmerken (2 en/of 1024) aanpassen als de setting "res_copy_to_bez" dit aangeeft
|
||||
IF (BITAND (flags, 2) = 2 OR BITAND (flags, 1024) = 1024) AND BITAND(pres_copy_to_bez, 4) = 4
|
||||
@@ -983,7 +995,7 @@ AS
|
||||
newtot res_rsv_ruimte.res_rsv_ruimte_tot%TYPE;
|
||||
BEGIN
|
||||
SELECT res_rsv_ruimte_van, res_rsv_ruimte_tot
|
||||
INTO newvan,newtot
|
||||
INTO newvan, newtot
|
||||
FROM res_rsv_ruimte
|
||||
WHERE res_rsv_ruimte_key = prsv_ruimte_key;
|
||||
IF oldvan <> newvan OR oldtot <> newtot
|
||||
@@ -1067,7 +1079,6 @@ AS
|
||||
locatiekey alg_locatie.alg_locatie_key%TYPE;
|
||||
oldloc bez_afspraak.alg_locatie_key%TYPE;
|
||||
waarde res_kenmerkwaarde.res_kenmerkreservering_waarde%TYPE;
|
||||
artwaarde res_kenmerkartikel.res_kenmerkartikel_waarde%TYPE;
|
||||
bezremark VARCHAR2(2100); -- bez_afspraak.bez_afspraak_opmerking%TYPE is te kort
|
||||
lremarkfilled BOOLEAN;
|
||||
|
||||
@@ -1088,27 +1099,7 @@ AS
|
||||
AND k.res_srtkenmerk_key = t.res_srtkenmerk_key
|
||||
AND k.res_kenmerk_verwijder IS NULL
|
||||
AND t.res_srtkenmerk_verwijder IS NULL
|
||||
AND v.res_rsv_ruimte_key = prsv_ruimte_key
|
||||
ORDER BY k.res_kenmerk_volgnummer
|
||||
, UPPER(lcl.x ('t.res_srtkenmerk_omschrijving', t.res_srtkenmerk_key, res_srtkenmerk_omschrijving));
|
||||
|
||||
CURSOR ckenmerkart
|
||||
IS
|
||||
SELECT k.res_kenmerk_key
|
||||
, t.res_srtkenmerk_kenmerktype
|
||||
, t.res_srtkenmerk_nmin nmin
|
||||
, t.res_srtkenmerk_nmax nmax
|
||||
, t.fac_kenmerkdomein_key
|
||||
, k.res_kenmerk_volgnummer
|
||||
, t.res_srtkenmerk_omschrijving
|
||||
, v.res_kenmerkartikel_waarde
|
||||
FROM res_srtkenmerk t
|
||||
, res_kenmerk k
|
||||
, res_kenmerkartikel v
|
||||
WHERE v.res_kenmerk_key = k.res_kenmerk_key
|
||||
AND k.res_srtkenmerk_key = t.res_srtkenmerk_key
|
||||
AND k.res_kenmerk_verwijder IS NULL
|
||||
AND t.res_srtkenmerk_verwijder IS NULL
|
||||
AND k.res_kenmerk_niveau = 'A'
|
||||
AND v.res_rsv_ruimte_key = prsv_ruimte_key
|
||||
ORDER BY k.res_kenmerk_volgnummer
|
||||
, UPPER(lcl.x ('t.res_srtkenmerk_omschrijving', t.res_srtkenmerk_key, res_srtkenmerk_omschrijving));
|
||||
@@ -1210,42 +1201,6 @@ AS
|
||||
END IF;
|
||||
END IF;
|
||||
END LOOP;
|
||||
|
||||
FOR cka IN ckenmerkart
|
||||
LOOP
|
||||
artwaarde := cka.res_kenmerkartikel_waarde;
|
||||
IF artwaarde IS NOT NULL AND artwaarde <> '-1'
|
||||
-- gevuld
|
||||
THEN
|
||||
IF cka.res_srtkenmerk_kenmerktype IN ('N', 'B') AND cka.nmin = 0 AND cka.nmax = 1
|
||||
-- checkbox
|
||||
THEN
|
||||
IF artwaarde = '0'
|
||||
THEN
|
||||
artwaarde := lcl.l ('lcl_check_0');
|
||||
ELSIF artwaarde = '1'
|
||||
THEN
|
||||
artwaarde := lcl.l ('lcl_check_1');
|
||||
END IF;
|
||||
ELSIF cka.res_srtkenmerk_kenmerktype = 'R' OR cka.res_srtkenmerk_kenmerktype = 'S'
|
||||
-- referentie
|
||||
THEN
|
||||
artwaarde := flx.getdomeinwaarde (cka.fac_kenmerkdomein_key, TO_NUMBER (artwaarde));
|
||||
END IF;
|
||||
-- In het zeldzame geval dat de tekst te lang zou worden slaan we sommige
|
||||
-- kenmerken gewoon silent over. Niet ideaal maar toch vrij theoretisch
|
||||
IF (COALESCE(LENGTH(bezremark),0) + LENGTH(cka.res_srtkenmerk_omschrijving) + LENGTH(artwaarde) < 3990)
|
||||
THEN
|
||||
IF lremarkfilled
|
||||
THEN
|
||||
bezremark := bezremark || CHR(10) || cka.res_srtkenmerk_omschrijving || ': ' || artwaarde;
|
||||
ELSE
|
||||
bezremark := cka.res_srtkenmerk_omschrijving || ': ' || artwaarde;
|
||||
lremarkfilled := TRUE;
|
||||
END IF;
|
||||
END IF;
|
||||
END IF;
|
||||
END LOOP;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ CREATE SEQUENCE res_s_res_rsv_ruimte_key MINVALUE 1;
|
||||
CREATE SEQUENCE res_s_res_srtkenmerk_key MINVALUE 1;
|
||||
CREATE SEQUENCE res_s_res_kenmerk_key MINVALUE 1;
|
||||
CREATE SEQUENCE res_s_res_kenmerkwaarde_key MINVALUE 1;
|
||||
CREATE SEQUENCE res_s_res_kenmerkartikel_key MINVALUE 1;
|
||||
CREATE SEQUENCE res_s_res_srtartikel_og_key MINVALUE 1;
|
||||
CREATE SEQUENCE res_s_res_disc_params_key MINVALUE 1;
|
||||
CREATE SEQUENCE res_s_res_activiteitdisc_key MINVALUE 1;
|
||||
|
||||
@@ -708,8 +708,11 @@ CREATE_TABLE(res_kenmerk, 0)
|
||||
NUMBER(10)
|
||||
, res_activiteit_key
|
||||
NUMBER(10)
|
||||
, res_kenmerk_niveau
|
||||
, res_artikel_key
|
||||
NUMBER(10)
|
||||
, res_kenmerk_niveau /* "A"=Activiteit of "D"=Discipline/Catalogus artikel */
|
||||
VARCHAR2(1)
|
||||
DEFAULT 'A'
|
||||
, res_kenmerk_toonbaar
|
||||
NUMBER(1)
|
||||
, res_kenmerk_uniek
|
||||
@@ -737,9 +740,10 @@ CREATE_TABLE(res_kenmerk, 0)
|
||||
, CONSTRAINT res_r_res_srtkenmerk_key1 CHECK(res_srtkenmerk_key IS NOT NULL)
|
||||
, CONSTRAINT res_r_res_srtkenmerk_key2 FOREIGN KEY(res_srtkenmerk_key) REFERENCES res_srtkenmerk(res_srtkenmerk_key)
|
||||
, CONSTRAINT res_c_res_kenmerk_niveau1 CHECK(res_kenmerk_niveau IS NOT NULL)
|
||||
, CONSTRAINT res_c_res_kenmerk_niveau2 CHECK(res_kenmerk_niveau IN ('A'))
|
||||
, CONSTRAINT res_c_res_kenmerk_niveau2 CHECK(res_kenmerk_niveau IN ('A', 'D')) /* Activiteit of Discipline/Catalogus artikel */
|
||||
, CONSTRAINT res_c_res_kenmerk_aanmaak CHECK(res_kenmerk_aanmaak IS NOT NULL)
|
||||
, CONSTRAINT res_r_res_activiteit_key FOREIGN KEY(res_activiteit_key) REFERENCES res_activiteit(res_activiteit_key)
|
||||
, CONSTRAINT res_r_res_artikel_key FOREIGN KEY(res_artikel_key) REFERENCES res_artikel(res_artikel_key)
|
||||
, CONSTRAINT res_u_res_kenmerk UNIQUE(res_activiteit_key, res_srtkenmerk_key, res_kenmerk_groep, res_kenmerk_verwijder)
|
||||
);
|
||||
|
||||
@@ -766,6 +770,29 @@ CREATE_TABLE(res_kenmerkwaarde, 0)
|
||||
, CONSTRAINT res_u_res_kenmerkwaarde UNIQUE(res_rsv_ruimte_key, res_kenmerk_key, res_kenmerkwaarde_verwijder)
|
||||
);
|
||||
|
||||
CREATE_TABLE(res_kenmerkartikel, 0)
|
||||
( res_kenmerkartikel_key
|
||||
NUMBER(10)
|
||||
CONSTRAINT res_k_res_kenmerkartikel_key PRIMARY KEY
|
||||
, res_rsv_artikel_key
|
||||
NUMBER(10)
|
||||
, res_kenmerk_key
|
||||
NUMBER(10)
|
||||
, res_kenmerkartikel_waarde
|
||||
VARCHAR2(4000)
|
||||
, res_kenmerkartikel_aanmaak
|
||||
DATE
|
||||
DEFAULT SYSDATE
|
||||
, res_kenmerkartikel_verwijder
|
||||
DATE
|
||||
DEFAULT NULLDATUM
|
||||
, CONSTRAINT res_r_res_rsv_artikel_key CHECK(res_rsv_artikel_key IS NOT NULL)
|
||||
, CONSTRAINT res_r_res_kenmerk_key2 CHECK(res_kenmerk_key IS NOT NULL)
|
||||
, CONSTRAINT res_r_res_rsv_artikel_key2 FOREIGN KEY(res_rsv_artikel_key) REFERENCES res_rsv_artikel(res_rsv_artikel_key) ON DELETE CASCADE
|
||||
, CONSTRAINT res_c_res_kenmerkartikel_aanm CHECK(res_kenmerkartikel_aanmaak IS NOT NULL)
|
||||
, CONSTRAINT res_u_res_kenmerkartikel UNIQUE(res_rsv_artikel_key, res_kenmerk_key, res_kenmerkartikel_verwijder)
|
||||
);
|
||||
|
||||
CREATE_TABLE(res_srtartikel_onrgoed, 0)
|
||||
( res_srtartikel_onrgoed_key
|
||||
NUMBER(10)
|
||||
|
||||
190
RES/RES_TRI.SRC
190
RES/RES_TRI.SRC
@@ -299,14 +299,24 @@ BEGIN
|
||||
Dummy CHAR;
|
||||
BEGIN
|
||||
SELECT 'X'
|
||||
INTO Dummy
|
||||
FROM res_kenmerkwaarde
|
||||
WHERE FAC.SAFE_TO_NUMBER(res_kenmerkreservering_waarde) < :new.res_srtkenmerk_nmin
|
||||
AND res_kenmerk_key IN
|
||||
(SELECT res_kenmerk_key
|
||||
FROM res_kenmerk
|
||||
WHERE res_srtkenmerk_key = :old.res_srtkenmerk_key
|
||||
);
|
||||
INTO Dummy
|
||||
FROM (SELECT 'X'
|
||||
FROM res_kenmerkwaarde
|
||||
WHERE FAC.SAFE_TO_NUMBER(res_kenmerkreservering_waarde) < :new.res_srtkenmerk_nmin
|
||||
AND res_kenmerk_key IN
|
||||
(SELECT res_kenmerk_key
|
||||
FROM res_kenmerk
|
||||
WHERE res_srtkenmerk_key = :old.res_srtkenmerk_key
|
||||
)
|
||||
UNION
|
||||
SELECT 'X'
|
||||
FROM res_kenmerkartikel
|
||||
WHERE FAC.SAFE_TO_NUMBER(res_kenmerkartikel_waarde) < :new.res_srtkenmerk_nmin
|
||||
AND res_kenmerk_key IN
|
||||
(SELECT res_kenmerk_key
|
||||
FROM res_kenmerk
|
||||
WHERE res_srtkenmerk_key = :old.res_srtkenmerk_key
|
||||
));
|
||||
raise_application_error(-20000, 'res_C_res_SRTKENMERK_MIN');
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
@@ -323,14 +333,24 @@ BEGIN
|
||||
Dummy CHAR;
|
||||
BEGIN
|
||||
SELECT 'X'
|
||||
INTO Dummy
|
||||
FROM res_kenmerkwaarde
|
||||
WHERE FAC.SAFE_TO_NUMBER(res_kenmerkreservering_waarde) > :new.res_srtkenmerk_nmax
|
||||
AND res_kenmerk_key IN
|
||||
(SELECT res_kenmerk_key
|
||||
FROM res_kenmerk
|
||||
WHERE res_srtkenmerk_key = :old.res_srtkenmerk_key
|
||||
);
|
||||
INTO Dummy
|
||||
FROM (SELECT 'X'
|
||||
FROM res_kenmerkwaarde
|
||||
WHERE FAC.SAFE_TO_NUMBER(res_kenmerkreservering_waarde) > :new.res_srtkenmerk_nmax
|
||||
AND res_kenmerk_key IN
|
||||
(SELECT res_kenmerk_key
|
||||
FROM res_kenmerk
|
||||
WHERE res_srtkenmerk_key = :old.res_srtkenmerk_key
|
||||
)
|
||||
UNION
|
||||
SELECT 'X'
|
||||
FROM res_kenmerkartikel
|
||||
WHERE FAC.SAFE_TO_NUMBER(res_kenmerkartikel_waarde) > :new.res_srtkenmerk_nmax
|
||||
AND res_kenmerk_key IN
|
||||
(SELECT res_kenmerk_key
|
||||
FROM res_kenmerk
|
||||
WHERE res_srtkenmerk_key = :old.res_srtkenmerk_key
|
||||
));
|
||||
raise_application_error(-20000, 'res_C_res_SRTKENMERK_MAX');
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
@@ -408,7 +428,8 @@ BEGIN
|
||||
kenmerkverplicht
|
||||
FROM res_srtkenmerk res_sk, res_kenmerk res_k
|
||||
WHERE res_sk.res_srtkenmerk_key = res_k.res_srtkenmerk_key
|
||||
AND res_k.res_kenmerk_key = :new.res_kenmerk_key;
|
||||
AND res_k.res_kenmerk_niveau = 'A'
|
||||
AND res_k.res_kenmerk_key = :new.res_kenmerk_key;
|
||||
|
||||
--
|
||||
-- Controleer eerst of het verplichte veld ingevuld is.
|
||||
@@ -501,6 +522,141 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE_TRIGGER(res_t_res_kenmerkartikel_b_iu)
|
||||
BEFORE INSERT OR UPDATE ON res_kenmerkartikel
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
-- Controleer eerst of de ingevulde waarde goed is.
|
||||
--
|
||||
IF :new.res_kenmerkartikel_waarde <> :old.res_kenmerkartikel_waarde
|
||||
OR:old.res_kenmerkartikel_waarde IS NULL
|
||||
OR:new.res_kenmerkartikel_waarde IS NULL
|
||||
THEN
|
||||
DECLARE
|
||||
srtkenmerkomschr res_srtkenmerk.res_srtkenmerk_omschrijving%TYPE;
|
||||
srtkenmerktype res_srtkenmerk.res_srtkenmerk_kenmerktype%TYPE;
|
||||
srtkenmerklengte res_srtkenmerk.res_srtkenmerk_lengte%TYPE;
|
||||
srtkenmerkdec res_srtkenmerk.res_srtkenmerk_dec%TYPE;
|
||||
srtkenmerknmin res_srtkenmerk.res_srtkenmerk_nmin%TYPE;
|
||||
srtkenmerknmax res_srtkenmerk.res_srtkenmerk_nmax%TYPE;
|
||||
kenmerkverplicht res_kenmerk.res_kenmerk_verplicht%TYPE;
|
||||
numberwaarde NUMBER (25, 5);
|
||||
formatmask VARCHAR2 (60);
|
||||
kenmerkreswaarde res_kenmerkartikel.res_kenmerkartikel_waarde%TYPE;
|
||||
BEGIN
|
||||
kenmerkreswaarde := :new.res_kenmerkartikel_waarde;
|
||||
|
||||
--
|
||||
SELECT res_sk.res_srtkenmerk_omschrijving,
|
||||
res_sk.res_srtkenmerk_kenmerktype,
|
||||
res_sk.res_srtkenmerk_lengte,
|
||||
res_sk.res_srtkenmerk_dec,
|
||||
res_sk.res_srtkenmerk_nmin,
|
||||
res_sk.res_srtkenmerk_nmax,
|
||||
res_k.res_kenmerk_verplicht
|
||||
INTO srtkenmerkomschr,
|
||||
srtkenmerktype,
|
||||
srtkenmerklengte,
|
||||
srtkenmerkdec,
|
||||
srtkenmerknmin,
|
||||
srtkenmerknmax,
|
||||
kenmerkverplicht
|
||||
FROM res_srtkenmerk res_sk, res_kenmerk res_k
|
||||
WHERE res_sk.res_srtkenmerk_key = res_k.res_srtkenmerk_key
|
||||
AND res_k.res_kenmerk_niveau = 'D'
|
||||
AND res_k.res_kenmerk_key = :new.res_kenmerk_key;
|
||||
|
||||
--
|
||||
-- Controleer eerst of het verplichte veld ingevuld is.
|
||||
--
|
||||
IF kenmerkverplicht IS NOT NULL AND kenmerkreswaarde IS NULL
|
||||
THEN
|
||||
raise_application_error (-20004, 'res_m244,' || 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 (kenmerkreswaarde) > srtkenmerklengte
|
||||
THEN
|
||||
raise_application_error (
|
||||
-20004,
|
||||
'res_m245,' || srtkenmerkomschr || ',' || TO_CHAR (srtkenmerklengte));
|
||||
END IF;
|
||||
ELSIF srtkenmerktype IN ('N', 'B')
|
||||
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
|
||||
numberwaarde := TO_NUMBER (kenmerkreswaarde);
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
formatmask := REPLACE (formatmask, '9', '#');
|
||||
formatmask := REPLACE (formatmask, '0', '#');
|
||||
formatmask := REPLACE (formatmask, 'D', '.');
|
||||
raise_application_error (
|
||||
-20004,
|
||||
'res_m246,' || srtkenmerkomschr || ',' || formatmask);
|
||||
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,
|
||||
'res_m247,'
|
||||
|| srtkenmerkomschr
|
||||
|| ','
|
||||
|| TO_CHAR (srtkenmerknmin)
|
||||
|| ','
|
||||
|| TO_CHAR (srtkenmerknmax));
|
||||
ELSE
|
||||
-- Controleer of de waarde aan het formaat voldoet.
|
||||
kenmerkreswaarde := LTRIM (TO_CHAR (numberwaarde, formatmask));
|
||||
|
||||
IF INSTR (kenmerkreswaarde, '#') <> 0
|
||||
THEN
|
||||
formatmask := REPLACE (formatmask, '9', '#');
|
||||
formatmask := REPLACE (formatmask, '0', '#');
|
||||
formatmask := REPLACE (formatmask, 'D', '.');
|
||||
raise_application_error (
|
||||
-20004,
|
||||
'res_m246,' || srtkenmerkomschr || ',' || formatmask);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Zet de geconverteerde waarde terug.
|
||||
:new.res_kenmerkartikel_waarde := kenmerkreswaarde;
|
||||
ELSIF srtkenmerktype = 'D'
|
||||
THEN
|
||||
-- DATUM
|
||||
kenmerkreswaarde := TO_CHAR (TO_DATE (kenmerkreswaarde, 'DD-MM-YY'), 'DD-MM-YYYY');
|
||||
-- Zet de geconverteerde waarde terug.
|
||||
:new.res_kenmerkartikel_waarde := kenmerkreswaarde;
|
||||
END IF;
|
||||
END;
|
||||
|
||||
UPDATE_PRIMARY_KEY(res_kenmerkartikel_key, res_s_res_kenmerkartikel_key);
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE_TRIGGER(res_t_res_srtartikel_og_B_IU)
|
||||
BEFORE INSERT OR UPDATE ON res_srtartikel_onrgoed
|
||||
FOR EACH ROW
|
||||
|
||||
@@ -272,6 +272,12 @@ UPDATE fac_setting
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// NYBU#56537
|
||||
ALTER TABLE cnt_disc_params ADD cnt_disc_params_binding NUMBER(3) DEFAULT (3) NOT NULL;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// YKPN#55980
|
||||
ALTER TABLE FIN_FACTUUR
|
||||
ADD cnt_contract_plaats_key
|
||||
NUMBER(10)
|
||||
CONSTRAINT fin_r_fin_factuur8 REFERENCES cnt_contract_plaats(cnt_contract_plaats_key);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// RWSN#55076
|
||||
ALTER TABLE fac_nieuws
|
||||
ADD fac_groep_key
|
||||
@@ -485,11 +491,70 @@ UPDATE mld_melding
|
||||
|
||||
ALTER TRIGGER mld_t_mld_melding_B_IU ENABLE;
|
||||
|
||||
INSERT INTO fac_setting (fac_setting_module,
|
||||
fac_setting_name,
|
||||
fac_setting_description,
|
||||
fac_setting_pvalue)
|
||||
VALUES('MLD',
|
||||
'mld_melding_actiecode',
|
||||
'Dummy',
|
||||
CASE WHEN fac.getSetting('mld_flag_on_fenote') > 0 OR fac.getSetting('mld_flag_on_fenote') > 0 THEN 1 ELSE NULL END);
|
||||
|
||||
DEF_FAC_SRTNOT('MLDA2B', 0, 'lcl_noti_MLDA2B', 'mld/mld_melding.asp?urole=bo&mld_key=', '0', 'melding', 10);
|
||||
DEF_FAC_SRTNOT('MLDA2M', 0, 'lcl_noti_MLDA2M', 'mld/mld_melding.asp?urole=fe&mld_key=', '0', 'melding', 10);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#56113
|
||||
ALTER TABLE mld_melding
|
||||
ADD mld_melding_externsyncdate /* voor koppelingen met externe systemen */
|
||||
DATE;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// NYBU#55434
|
||||
ALTER TABLE res_kenmerk
|
||||
DROP CONSTRAINT res_c_res_kenmerk_niveau2;
|
||||
|
||||
ALTER TABLE res_kenmerk
|
||||
ADD CONSTRAINT res_c_res_kenmerk_niveau2 CHECK(res_kenmerk_niveau IN ('A', 'D')); /* Activiteit of Discipline/Catalogus */
|
||||
|
||||
ALTER TABLE res_kenmerk
|
||||
MODIFY res_kenmerk_niveau DEFAULT 'A';
|
||||
|
||||
ALTER TABLE res_kenmerk
|
||||
ADD res_artikel_key
|
||||
NUMBER(10)
|
||||
CONSTRAINT res_r_res_artikel_key REFERENCES res_artikel(res_artikel_key);
|
||||
|
||||
CREATE SEQUENCE res_s_res_kenmerkartikel_key MINVALUE 1;
|
||||
|
||||
CREATE_TABLE(res_kenmerkartikel, 0)
|
||||
( res_kenmerkartikel_key
|
||||
NUMBER(10)
|
||||
CONSTRAINT res_k_res_kenmerkartikel_key PRIMARY KEY
|
||||
, res_rsv_artikel_key
|
||||
NUMBER(10)
|
||||
, res_kenmerk_key
|
||||
NUMBER(10)
|
||||
, res_kenmerkartikel_waarde
|
||||
VARCHAR2(4000)
|
||||
, res_kenmerkartikel_aanmaak
|
||||
DATE
|
||||
DEFAULT SYSDATE
|
||||
, res_kenmerkartikel_verwijder
|
||||
DATE
|
||||
DEFAULT NULLDATUM
|
||||
, CONSTRAINT res_r_res_rsv_artikel_key CHECK(res_rsv_artikel_key IS NOT NULL)
|
||||
, CONSTRAINT res_r_res_kenmerk_key2 CHECK(res_kenmerk_key IS NOT NULL)
|
||||
, CONSTRAINT res_r_res_rsv_artikel_key2 FOREIGN KEY(res_rsv_artikel_key) REFERENCES res_rsv_artikel(res_rsv_artikel_key) ON DELETE CASCADE
|
||||
, CONSTRAINT res_c_res_kenmerkartikel_aanm CHECK(res_kenmerkartikel_aanmaak IS NOT NULL)
|
||||
, CONSTRAINT res_u_res_kenmerkartikel UNIQUE(res_rsv_artikel_key, res_kenmerk_key, res_kenmerkartikel_verwijder)
|
||||
);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// MNNL#55706
|
||||
ALTER TABLE mld_workflowstep ADD
|
||||
mld_workflowstep_eindtype
|
||||
NUMBER(2)
|
||||
DEFAULT 0
|
||||
NOT_NULL(mld_workflowstep_eindtype, mld_c_mld_workflowstep_eindtype);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// XXXX#nnnnn
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user