NYBU#28781: RES: aparte zaalprijzen voor intern en extern.

svn path=/Database/trunk/; revision=23587
This commit is contained in:
Maykel Geerdink
2014-12-08 13:30:09 +00:00
parent 7d8488b8cb
commit 3a366b1561
2 changed files with 27 additions and 20 deletions

View File

@@ -443,7 +443,6 @@ DEFINE_SETTING('RES', 0003, 'res_room_order' , 'number'
DEFINE_SETTING('FAC', 0001, 'res_plan_max_bezet' , 'number' , '0' , 'Maximum planbord ''occupied'' fields. AiAi timeout prevention (future use)')
DEFINE_SETTING('RES', 0009, 'res_image_path' , 'string' , NULL , 'path to folder storing res_ruimte pictures')
DEFINE_SETTING('RES', 0003, 'res_with_mld' , 'number' , '0' , 'Reservering kan meldingen hebben {0=Nee (default) | 1=Ja}')
DEFINE_SETTING('RES', 0003, 'res_ruimte_prijsfactor_intern' , 'float' , '1' , 'Default multiplication factor for room prices if for internal use (e.g. 0.8)')
DEFINE_SETTING('RES', 0003, 'res_delete_ask_kosten' , 'number' , '1' , 'Aks for recharge costs at delete (0=never ask, 1=ask after, 2=ask only final, 3=ask only final after)')
DEFINE_SETTING('RES', 0003, 'res_pool_early' , 'number' , '30' , 'Minutes for early pool-visitors')
DEFINE_SETTING('RES', 0003, 'res_pool_late' , 'number' , '30' , 'Minutes for late pool-visitors')

View File

@@ -1028,8 +1028,6 @@ AS
price_allday res_ruimte.res_ruimte_prijs_dag%TYPE;
room_price_total res_rsv_ruimte.res_rsv_ruimte_prijs%TYPE;
afgesprokentotaal res_rsv_ruimte.res_rsv_ruimte_totaal%TYPE;
prs_kostenplaats_extern prs_kostenplaats.prs_kostenplaats_extern%TYPE;
ruimte_prijsfactor_intern res_ruimte.res_ruimte_prijsfactor_intern%TYPE;
res_ruimte_length NUMBER;
res_ruimte_begin NUMBER;
@@ -1119,19 +1117,37 @@ AS
-- Wat basisgegevens
BEGIN
SELECT COALESCE (ru.res_ruimte_prijs, 0),
SELECT CASE COALESCE (kp.prs_kostenplaats_extern, 0)
WHEN 0
THEN COALESCE (ru.res_ruimte_intprijs, 0) -- Intern
ELSE COALESCE (ru.res_ruimte_prijs, 0) -- Extern
END,
ru.res_ruimte_prijs_vast,
COALESCE (ru.res_ruimte_prijs_ochtend, 0),
COALESCE (ru.res_ruimte_prijs_middag, 0),
COALESCE (ru.res_ruimte_prijs_avond, 0),
COALESCE (ru.res_ruimte_prijs_dag, 0),
CASE COALESCE (kp.prs_kostenplaats_extern, 0)
WHEN 0
THEN COALESCE (ru.res_ruimte_intprijs_ochtend, 0) -- Intern
ELSE COALESCE (ru.res_ruimte_prijs_ochtend, 0) -- Extern
END,
CASE COALESCE (kp.prs_kostenplaats_extern, 0)
WHEN 0
THEN COALESCE (ru.res_ruimte_intprijs_middag, 0) -- Intern
ELSE COALESCE (ru.res_ruimte_prijs_middag, 0) -- Extern
END,
CASE COALESCE (kp.prs_kostenplaats_extern, 0)
WHEN 0
THEN COALESCE (ru.res_ruimte_intprijs_avond, 0) -- Intern
ELSE COALESCE (ru.res_ruimte_prijs_avond, 0) -- Extern
END,
CASE COALESCE (kp.prs_kostenplaats_extern, 0)
WHEN 0
THEN COALESCE (ru.res_ruimte_intprijs_dag, 0) -- Intern
ELSE COALESCE (ru.res_ruimte_prijs_dag, 0) -- Extern
END,
fac.safe_to_number (TO_CHAR (rr.res_rsv_ruimte_tot - rr.res_rsv_ruimte_van)) * 24,
fac.safe_to_number (TO_CHAR (rr.res_rsv_ruimte_van, 'HH24'))
+ fac.safe_to_number (TO_CHAR (rr.res_rsv_ruimte_van, 'MI')) / 60,
fac.safe_to_number (TO_CHAR (rr.res_rsv_ruimte_tot, 'HH24'))
+ fac.safe_to_number (TO_CHAR (rr.res_rsv_ruimte_tot, 'MI')) / 60,
COALESCE (kp.prs_kostenplaats_extern, 0),
ru.res_ruimte_prijsfactor_intern
+ fac.safe_to_number (TO_CHAR (rr.res_rsv_ruimte_tot, 'MI')) / 60
INTO room_price,
room_price_fixed,
price_morning,
@@ -1140,9 +1156,7 @@ AS
price_allday,
res_ruimte_length,
res_ruimte_begin,
res_ruimte_end,
prs_kostenplaats_extern,
ruimte_prijsfactor_intern
res_ruimte_end
FROM res_rsv_ruimte rr, res_ruimte_opstelling ro, res_ruimte ru, prs_kostenplaats kp
WHERE rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND rr.prs_kostenplaats_key = kp.prs_kostenplaats_key (+) -- of isdie verplicht?
@@ -1377,12 +1391,6 @@ AS
thisroomprice := 0;
END IF;
-- Hier rekening houden met intern/extern tarief
IF prs_kostenplaats_extern = 0
THEN
thisroomprice := thisroomprice * COALESCE(ruimte_prijsfactor_intern,fac.safe_to_number (fac.getsetting ('res_ruimte_prijsfactor_intern')));
END IF;
-- Doorbelastingspercentage (bij annuleren) op het laatste moment nog.
-- Voor de berekening van de doorbelasting moet gerekend worden met een op twee decimalen afgeronde ruimteprijs.
thisroomprice := ROUND(thisroomprice, 2) * doorbelasting / 100;