326 lines
13 KiB
SQL
326 lines
13 KiB
SQL
-- Customer specific once-script SBSH#24076.
|
|
--
|
|
-- (c) 2012 SG|facilitor bv
|
|
-- $Revision$
|
|
-- $Id$
|
|
--
|
|
-- Support: +31 53 4800700
|
|
SET ECHO ON
|
|
SPOOL xsbsh#24076.lst
|
|
SET DEFINE OFF
|
|
|
|
SET SERVEROUTPUT ON size 1000000;
|
|
|
|
-- SBSH#24076 - Alles voor 1/10/2012 correct bevriezen!
|
|
-- Catering
|
|
/*
|
|
DECLARE
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (255);
|
|
v_errormsg VARCHAR2 (1024);
|
|
v_errorhint VARCHAR2 (1024);
|
|
BEGIN
|
|
FOR rc
|
|
IN ( SELECT '['
|
|
|| TO_CHAR (ra.res_rsv_artikel_levering,
|
|
'yyyy-mm-dd hh24:mi')
|
|
|| '/'
|
|
|| TO_CHAR (rr.res_reservering_key)
|
|
|| '/'
|
|
|| TO_CHAR (rr.res_rsv_ruimte_volgnr)
|
|
|| '/'
|
|
|| a.res_artikel_omschrijving
|
|
|| '] '
|
|
aanduiding,
|
|
ra.res_rsv_artikel_key,
|
|
ra.res_artikel_key,
|
|
ra.res_rsv_artikel_verwijder,
|
|
ra.res_rsv_artikel_prijs old_prijs,
|
|
DECODE (
|
|
TO_CHAR (ra.res_rsv_artikel_levering, 'D'),
|
|
1, -- Zondag
|
|
DECODE (
|
|
a.res_artikel_kostenpersoneel,
|
|
2,
|
|
ra.res_rsv_artikel_aantal * a.res_artikel_prijs * 1.25,
|
|
3,
|
|
ra.res_rsv_artikel_aantal * a.res_artikel_prijs * 1.5,
|
|
ra.res_rsv_artikel_aantal * a.res_artikel_prijs
|
|
),
|
|
7, -- Zaterdag
|
|
DECODE (
|
|
a.res_artikel_kostenpersoneel,
|
|
2,
|
|
ra.res_rsv_artikel_aantal * a.res_artikel_prijs * 1.25,
|
|
3,
|
|
ra.res_rsv_artikel_aantal * a.res_artikel_prijs * 1.5,
|
|
ra.res_rsv_artikel_aantal * a.res_artikel_prijs
|
|
),
|
|
ra.res_rsv_artikel_aantal * a.res_artikel_prijs
|
|
)
|
|
new_prijs
|
|
FROM res_rsv_artikel ra, res_artikel a, res_rsv_ruimte rr
|
|
WHERE ra.res_rsv_artikel_verwijder IS NULL
|
|
--AND ra.res_status_bo_key = 5
|
|
AND ra.res_artikel_key = a.res_artikel_key
|
|
AND a.res_artikel_prijs_vast = 1
|
|
AND ra.res_rsv_artikel_levering <
|
|
TO_DATE ('01-10-2012', 'dd-mm-yyyy')
|
|
AND ra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
|
|
AND rr.res_rsv_ruimte_verwijder IS NULL
|
|
ORDER BY 1)
|
|
LOOP
|
|
BEGIN
|
|
v_errormsg := 'Fout bij bijwerken res_rsv_artikel_prijs';
|
|
|
|
IF (rc.old_prijs <> rc.new_prijs)
|
|
THEN
|
|
UPDATE res_rsv_artikel ra
|
|
SET ra.res_rsv_artikel_prijs = rc.new_prijs
|
|
WHERE ra.res_rsv_artikel_key = rc.res_rsv_artikel_key;
|
|
|
|
DBMS_OUTPUT.PUT_LINE( rc.aanduiding
|
|
|| 'Prijs van: '
|
|
|| TO_CHAR (rc.old_prijs)
|
|
|| ' naar: '
|
|
|| TO_CHAR (rc.new_prijs));
|
|
ELSE
|
|
DBMS_OUTPUT.PUT_LINE (rc.aanduiding || 'Prijs ongewijzigd!');
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errorhint := v_errormsg;
|
|
v_errormsg :=
|
|
rc.aanduiding
|
|
|| '(ORACLE error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
DBMS_OUTPUT.PUT_LINE (
|
|
'Error: ' || v_errormsg || '; Hint: ' || v_errorhint
|
|
);
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
COMMIT;
|
|
*/
|
|
-- Voorzieningen
|
|
/*
|
|
DECLARE
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (255);
|
|
v_errormsg VARCHAR2 (1024);
|
|
v_errorhint VARCHAR2 (1024);
|
|
BEGIN
|
|
FOR rc
|
|
IN ( SELECT '['
|
|
|| TO_CHAR (rd.res_rsv_deel_van, 'yyyy-mm-dd hh24:mi')
|
|
|| '/'
|
|
|| TO_CHAR (rr.res_reservering_key)
|
|
|| '/'
|
|
|| TO_CHAR (rr.res_rsv_ruimte_volgnr)
|
|
|| '/'
|
|
|| TO_CHAR (d.res_deel_key)
|
|
|| '] '
|
|
aanduiding,
|
|
rd.res_rsv_deel_key,
|
|
rd.res_deel_key,
|
|
rd.res_rsv_deel_verwijder,
|
|
rd.res_rsv_deel_prijs old_prijs,
|
|
DECODE (
|
|
rr.res_activiteit_key,
|
|
10,
|
|
0, -- Voorzieningen gratis bij interne boeking!
|
|
COALESCE (
|
|
(rd.res_rsv_deel_tot - rd.res_rsv_deel_van)
|
|
* 24
|
|
* d.res_deel_prijs,
|
|
0
|
|
)
|
|
)
|
|
new_prijs
|
|
FROM res_rsv_deel rd, res_deel d, res_rsv_ruimte rr
|
|
WHERE rd.res_rsv_deel_verwijder IS NULL
|
|
--AND rd.res_status_bo_key = 5
|
|
AND rd.res_deel_key = d.res_deel_key
|
|
AND d.res_deel_prijs_vast = 1
|
|
AND rd.res_rsv_deel_van <
|
|
TO_DATE ('01-10-2012', 'dd-mm-yyyy')
|
|
AND rd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
|
|
AND rr.res_rsv_ruimte_verwijder IS NULL
|
|
AND rr.res_ruimte_opstel_key IS NOT NULL
|
|
ORDER BY 1)
|
|
LOOP
|
|
BEGIN
|
|
v_errormsg := 'Fout bij bijwerken res_rsv_deel_prijs';
|
|
|
|
IF (rc.old_prijs <> rc.new_prijs)
|
|
THEN
|
|
UPDATE res_rsv_deel rd
|
|
SET rd.res_rsv_deel_prijs = rc.new_prijs
|
|
WHERE rd.res_rsv_deel_key = rc.res_rsv_deel_key;
|
|
|
|
DBMS_OUTPUT.PUT_LINE( rc.aanduiding
|
|
|| 'Prijs van: '
|
|
|| TO_CHAR (rc.old_prijs)
|
|
|| ' naar: '
|
|
|| TO_CHAR (rc.new_prijs));
|
|
ELSE
|
|
DBMS_OUTPUT.PUT_LINE (rc.aanduiding || 'Prijs ongewijzigd!');
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errorhint := v_errormsg;
|
|
v_errormsg :=
|
|
rc.aanduiding
|
|
|| '(ORACLE error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
DBMS_OUTPUT.PUT_LINE (
|
|
'Error: ' || v_errormsg || '; Hint: ' || v_errorhint
|
|
);
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
COMMIT;
|
|
*/
|
|
-- Ruimten
|
|
DECLARE
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (255);
|
|
v_errormsg VARCHAR2 (1024);
|
|
v_errorhint VARCHAR2 (1024);
|
|
BEGIN
|
|
FOR rc
|
|
IN ( SELECT '['
|
|
|| TO_CHAR (x.res_rsv_ruimte_van, 'yyyy-mm-dd hh24:mi')
|
|
|| '/'
|
|
|| TO_CHAR (x.res_reservering_key)
|
|
|| '/'
|
|
|| TO_CHAR (x.res_rsv_ruimte_volgnr)
|
|
|| '/'
|
|
|| TO_CHAR (x.res_ruimte_opstel_key)
|
|
|| '] '
|
|
aanduiding,
|
|
x.res_rsv_ruimte_key,
|
|
x.res_rsv_ruimte_verwijder,
|
|
x.res_rsv_ruimte_prijs old_prijs,
|
|
x.aantal
|
|
* DECODE (
|
|
y.tarief,
|
|
'Profit', -- Profit = Prijs bij middag!
|
|
DECODE (TO_CHAR (x.res_rsv_ruimte_van, 'D'),
|
|
1, -- Zondag
|
|
DECODE (x.pa, 2, x.pm * 2.3, x.pm * 1.2),
|
|
7, -- Zaterdag
|
|
DECODE (x.pa, 2, x.pm * 2.3, x.pm * 1.2),
|
|
x.pm),
|
|
DECODE ( -- Non-profit = Prijs bij ochtend!
|
|
TO_CHAR (x.res_rsv_ruimte_van, 'D'),
|
|
1, -- Zondag
|
|
DECODE (x.pa, 2, x.po * 2, x.po * 1.2),
|
|
7, -- Zaterdag
|
|
DECODE (x.pa, 2, x.po * 2, x.po * 1.2),
|
|
x.po)
|
|
)
|
|
new_prijs
|
|
FROM (SELECT a.prs_afdeling_key,
|
|
rr.res_rsv_ruimte_van,
|
|
rr.res_reservering_key,
|
|
rr.res_rsv_ruimte_volgnr,
|
|
rr.res_ruimte_opstel_key,
|
|
rr.res_rsv_ruimte_key,
|
|
rr.res_rsv_ruimte_verwijder,
|
|
rr.res_rsv_ruimte_prijs,
|
|
(rr.res_rsv_ruimte_tot - rr.res_rsv_ruimte_van)
|
|
* 24
|
|
aantal, -- Duur in uren
|
|
DECODE (rr.res_activiteit_key,
|
|
10, 0, -- Ruimte gratis bij interne boeking!
|
|
r.res_ruimte_prijs_ochtend)
|
|
po, -- Non-profit tarief
|
|
DECODE (rr.res_activiteit_key,
|
|
10, 0, -- Ruimte gratis bij interne boeking!
|
|
r.res_ruimte_prijs_middag)
|
|
pm, -- Profit tarief
|
|
r.res_ruimte_prijs_avond pa -- Welke weekend-factor
|
|
FROM res_v_aanwezigrsv_ruimte rr,
|
|
res_ruimte_opstelling ro,
|
|
res_ruimte r,
|
|
prs_perslid p,
|
|
prs_afdeling a
|
|
WHERE rr.res_ruimte_opstel_key =
|
|
ro.res_ruimte_opstel_key
|
|
AND ro.res_ruimte_key = r.res_ruimte_key
|
|
AND rr.res_rsv_ruimte_host_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND rr.res_rsv_ruimte_van <
|
|
TO_DATE ('01-10-2012', 'dd-mm-yyyy')
|
|
AND rr.res_ruimte_opstel_key IS NOT NULL) x
|
|
LEFT JOIN
|
|
(SELECT prs_link_key, ud.fac_usrdata_omschr tarief
|
|
FROM prs_v_aanwezigkenmerklink, fac_usrdata ud
|
|
WHERE prs_kenmerk_key = 1000 -- Tarief
|
|
AND fac.safe_to_number (prs_kenmerklink_waarde) =
|
|
ud.fac_usrdata_key) y
|
|
ON x.prs_afdeling_key = y.prs_link_key
|
|
ORDER BY 1)
|
|
LOOP
|
|
BEGIN
|
|
v_errormsg := 'Fout bij bijwerken res_rsv_ruimte_prijs';
|
|
|
|
IF (rc.old_prijs <> rc.new_prijs)
|
|
THEN
|
|
UPDATE res_rsv_ruimte rr
|
|
SET rr.res_rsv_ruimte_prijs = rc.new_prijs
|
|
WHERE rr.res_rsv_ruimte_key = rc.res_rsv_ruimte_key;
|
|
|
|
DBMS_OUTPUT.PUT_LINE( rc.aanduiding
|
|
|| 'Prijs van: '
|
|
|| TO_CHAR (rc.old_prijs)
|
|
|| ' naar: '
|
|
|| TO_CHAR (rc.new_prijs));
|
|
ELSE
|
|
DBMS_OUTPUT.PUT_LINE (rc.aanduiding || 'Prijs ongewijzigd!');
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errorhint := v_errormsg;
|
|
v_errormsg :=
|
|
rc.aanduiding
|
|
|| '(ORACLE error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
DBMS_OUTPUT.PUT_LINE (
|
|
'Error: ' || v_errormsg || '; Hint: ' || v_errorhint
|
|
);
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
/
|
|
|
|
COMMIT;
|
|
|
|
BEGIN adm.systrackscript('$Workfile: sbsh#24076.sql $', '$Revision$', 1); END;
|
|
/
|
|
|
|
SPOOL OFF
|