FMHN#71666: Toelichtingskenmerk van verbruiksartikel bij herhalen.
svn path=/Database/trunk/; revision=55705
This commit is contained in:
111
RES/RES_PAC.SRC
111
RES/RES_PAC.SRC
@@ -395,57 +395,82 @@ AS
|
||||
-- Verwijder eerst de oude niet-file kenmerken
|
||||
-- Artikel kenmerken.
|
||||
DELETE FROM res_kenmerkartikel
|
||||
WHERE res_rsv_artikel_key IN (SELECT res_rsv_artikel_key FROM res_rsv_artikel WHERE res_rsv_ruimte_key = prsv_ruimte_key_to)
|
||||
WHERE res_rsv_artikel_key IN (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
|
||||
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 IN (SELECT res_rsv_artikel_key FROM res_rsv_artikel WHERE res_rsv_ruimte_key = prsv_ruimte_key_to)
|
||||
AND w.res_rsv_artikel_key IN (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.
|
||||
-- Artikel is al toegevoegd indien catering is aangevinkt.
|
||||
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_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 s.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 waarde_from.res_artikel_key = a.res_artikel_key
|
||||
AND r.res_rsv_ruimte_key = prsv_ruimte_key_to;
|
||||
-- De kenmerken van de oude en nieuwe reserveringen zijn exact hetzelfde met dezelfde kenmerk keys enz.
|
||||
-- De kenmerken van de oude en nieuwe reservering in dezelfde volgorde zetten en dan de waarden overnemen.
|
||||
INSERT INTO res_kenmerkartikel (res_rsv_artikel_key,
|
||||
res_kenmerk_key,
|
||||
res_kenmerkartikel_waarde)
|
||||
SELECT newkenmerk.res_rsv_artikel_key,
|
||||
newkenmerk.res_kenmerk_key,
|
||||
oldkenmerk.res_kenmerkartikel_waarde
|
||||
FROM (SELECT ka.res_rsv_artikel_key,
|
||||
ka.res_kenmerk_key,
|
||||
ka.res_kenmerkartikel_waarde,
|
||||
ra.res_artikel_key,
|
||||
ROW_NUMBER()
|
||||
OVER(ORDER BY
|
||||
rra.res_rsv_artikel_key,
|
||||
k.res_kenmerk_key)
|
||||
AS RN
|
||||
FROM res_kenmerkartikel ka,
|
||||
res_kenmerk k,
|
||||
res_srtkenmerk sk,
|
||||
res_rsv_ruimte rr,
|
||||
res_rsv_artikel rra,
|
||||
res_artikel ra
|
||||
WHERE ka.res_kenmerk_key = k.res_kenmerk_key
|
||||
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key
|
||||
AND (k.res_artikel_key = rra.res_artikel_key
|
||||
OR k.res_discipline_key = ra.res_discipline_key)
|
||||
AND ra.res_artikel_key = rra.res_artikel_key
|
||||
AND ka.res_rsv_artikel_key = rra.res_rsv_artikel_key
|
||||
AND rra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
|
||||
--AND k.res_activiteit_key IS NULL -- Niet nodig: Als res_activiteit_key gevuld is dan is res_kenmerk_niveau 'A'.
|
||||
AND k.res_kenmerk_niveau IN ('C', 'D')
|
||||
AND k.res_kenmerk_volgnummer < 900
|
||||
AND k.res_kenmerk_verwijder IS NULL
|
||||
AND ka.res_kenmerkartikel_verwijder IS NULL
|
||||
AND sk.res_srtkenmerk_kenmerktype NOT IN ('F', 'M', 'E')
|
||||
AND rr.res_rsv_ruimte_key = prsv_ruimte_key_from) oldkenmerk,
|
||||
(SELECT rra.res_rsv_artikel_key,
|
||||
k.res_kenmerk_key,
|
||||
ra.res_artikel_key,
|
||||
ROW_NUMBER()
|
||||
OVER(ORDER BY
|
||||
rra.res_rsv_artikel_key,
|
||||
k.res_kenmerk_key)
|
||||
AS rn
|
||||
FROM res_rsv_ruimte rr,
|
||||
res_rsv_artikel rra,
|
||||
res_artikel ra,
|
||||
res_kenmerk k
|
||||
WHERE rra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
|
||||
AND (k.res_artikel_key = rra.res_artikel_key
|
||||
OR k.res_discipline_key = ra.res_discipline_key)
|
||||
AND ra.res_artikel_key = rra.res_artikel_key
|
||||
AND rr.res_rsv_ruimte_key = prsv_ruimte_key_to) newkenmerk
|
||||
WHERE oldkenmerk.rn = newkenmerk.rn
|
||||
AND oldkenmerk.res_kenmerk_key = newkenmerk.res_kenmerk_key
|
||||
AND oldkenmerk.res_artikel_key = newkenmerk.res_artikel_key
|
||||
ORDER BY newkenmerk.res_rsv_artikel_key,
|
||||
newkenmerk.res_kenmerk_key;
|
||||
END IF;
|
||||
END IF;
|
||||
-- 512 Bezoekers
|
||||
|
||||
Reference in New Issue
Block a user