Files
Customer/onces/SBSH/sbsh#24076.sql
Peter Koerhuis 3b8d7f1dcc Migratie once-scripts van /branch naar /onces
svn path=/Customer/; revision=21207
2014-04-02 13:57:31 +00:00

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