FSN#34970 meetgrenzen bij bezettingsgraad

svn path=/Website/trunk/; revision=30143
This commit is contained in:
Peter Feij
2016-07-26 13:37:31 +00:00
parent 20b19017ed
commit 2bb5df043e

View File

@@ -150,11 +150,14 @@ function res_list_ppi(pautfunction, params)
// leuke functie om voor alle uren een resultaat op te leveren
// zie res_list_ppi.inc;7 voor wat er gegenereerd wordt
settings.overrule_setting("res_rap_t1", S("res_rap_t1") >= 0 ? S("res_rap_t1") : S("res_t1"));
settings.overrule_setting("res_rap_t2", S("res_rap_t2") >= 0 ? S("res_rap_t2") : S("res_t2"));
function forhours(fn)
{
var i;
var res = []
for (i = S("res_t1"); i < S("res_t2"); i++)
for (i = S("res_rap_t1"); i < S("res_rap_t2"); i++)
res.push(fn.call(null, i));
return res;
}
@@ -174,8 +177,8 @@ function forhours(fn)
+ " FROM (SELECT alg_ruimte_key"
+ ", rarg.res_discipline_key"
+ (dayschedule ? ("," + forhours(function (h) { return " SUM(n" + String(h) + ") b" + String(h); }))
: ", SUM(LEAST(fac.safe_to_number(TO_CHAR(res_rsv_ruimte_tot, 'SSSSS')) / 3600, COALESCE(res_ruimte_eindtijd, " + S("res_t2") + "))"
+ " - GREATEST(fac.safe_to_number(TO_CHAR(res_rsv_ruimte_van, 'SSSSS')) / 3600, COALESCE(res_ruimte_begintijd, " + S("res_t1") + "))) bezetting")
: ", SUM(GREATEST(LEAST(to_number(TO_CHAR(res_rsv_ruimte_tot, 'SSSSS')) / 3600, COALESCE(res_ruimte_eindtijd, " + S("res_t2") + ")," + S("res_rap_t2") + "),"+S("res_rap_t1")+")"
+ " - LEAST(GREATEST(to_number(TO_CHAR(res_rsv_ruimte_van, 'SSSSS')) / 3600, COALESCE(res_ruimte_begintijd, " + S("res_t1") + ")," + S("res_rap_t1") + "),"+ S("res_rap_t2") +")) bezetting")
+ " FROM ("
+ " SELECT r.res_rsv_ruimte_key"
+ ", ra.alg_ruimte_key"
@@ -205,7 +208,7 @@ function forhours(fn)
+ " WHERE res_rsv_ruimte_van BETWEEN " + ora_date3 + " AND " + ora_date4
+ " AND TO_CHAR(res_rsv_ruimte_van, 'd') >= 2" // --veronderstelt NLS_TERRITORY='AMERICA', 2 is maandag
+ " AND TO_CHAR(res_rsv_ruimte_van, 'd') <= 6"
+ " AND TO_CHAR(res_rsv_ruimte_van, 'yyyymmdd') NOT IN (SELECT TO_CHAR(mld_vrije_dagen_datum, 'yyyymmdd') FROM mld_vrije_dagen)"
+ " AND TRUNC(res_rsv_ruimte_van) NOT IN (SELECT mld_vrije_dagen_datum FROM mld_vrije_dagen)"
+ " AND rarg.res_alg_ruimte_aanmaak <= " + ora_date2
+ " AND (rarg.res_alg_ruimte_verwijder IS NULL"
+ " OR rarg.res_alg_ruimte_verwijder >= " + ora_date1 + ")"
@@ -216,7 +219,7 @@ function forhours(fn)
+ ", ((fac.Count_Work_Days(" + ora_date1 + "-1 , " + ora_date2 + "))"
+ (dayschedule
? ""
: " * (COALESCE(rr1.res_ruimte_eindtijd, " + S("res_t2") + ") - COALESCE(rr1.res_ruimte_begintijd, " + S("res_t1") + "))") + ") beschikbaar"
: " * (LEAST(COALESCE(rr1.res_ruimte_eindtijd, " + S("res_t2") + ")," + S("res_rap_t2") + ")) - GREATEST(COALESCE(rr1.res_ruimte_begintijd, " + S("res_t1") + ")," + S("res_rap_t1") + ")") + ") beschikbaar"
+ " FROM res_ruimte rr1, res_alg_ruimte ra "
+ " WHERE rr1.res_ruimte_key = ra.res_ruimte_key "
+ " AND ra.res_alg_ruimte_aanmaak <= " + ora_date2
@@ -280,8 +283,8 @@ function forhours(fn)
var sql_bezetting = "SELECT rarg.alg_ruimte_key"
+ " , rarg.res_discipline_key"
+ " , " + sql_grp_periode + " periode"
+ " , SUM( LEAST(fac.safe_to_number(TO_CHAR(rarg.res_rsv_ruimte_tot, 'SSSSS')) / 3600, COALESCE(rarg.res_ruimte_eindtijd, " + S("res_t2") +"))"
+ " - GREATEST(fac.safe_to_number(TO_CHAR(rarg.res_rsv_ruimte_van, 'SSSSS')) / 3600, COALESCE(rarg.res_ruimte_begintijd," + S("res_t1") +"))"
+ " , SUM( LEAST(to_number(TO_CHAR(rarg.res_rsv_ruimte_tot, 'SSSSS')) / 3600, COALESCE(rarg.res_ruimte_eindtijd, " + S("res_t2") +"))"
+ " - GREATEST(to_number(TO_CHAR(rarg.res_rsv_ruimte_van, 'SSSSS')) / 3600, COALESCE(rarg.res_ruimte_begintijd," + S("res_t1") +"))"
+ " ) bezetting"
+ " FROM ("+ sql_reservering + ") rarg"
+ " WHERE rarg.res_rsv_ruimte_van BETWEEN " + ora_date3 + " AND " + ora_date4;
@@ -647,6 +650,19 @@ function forhours(fn)
/**************************************
* End callback functies ResultsetTable
**************************************/
// Transform decimal limit to friendly times (i18n?)
var res_rap_t1h = Math.floor(S("res_rap_t1"));
if (res_rap_t1h < 10) res_rap_t1h = "0" + res_rap_t1h;
var res_rap_t1m = Math.floor((S("res_rap_t1") - res_rap_t1h)*60);
if (res_rap_t1m < 10) res_rap_t1m = "0" + res_rap_t1m;
var res_rap_t1s = res_rap_t1h+ ":" + res_rap_t1m
var res_rap_t2h = Math.floor(S("res_rap_t2"));
if (res_rap_t2h < 10) res_rap_t2h = "0" + res_rap_t2h;
var res_rap_t2m = Math.floor((S("res_rap_t2") - res_rap_t2h)*60);
if (res_rap_t2m < 10) res_rap_t2m = "0" + res_rap_t2m;
var res_rap_t2s = res_rap_t2h+ ":" + res_rap_t2m
var doTotals = (groupres != 16 && groupres != 18 && groupres != 19)
var rst = new ResultsetTable({ keyColumn: "res_keycolumn",
@@ -656,7 +672,7 @@ function forhours(fn)
totalShow: (doTotals ? fntotalShow : null),
filterParams: params,
outputmode: outputmode,
title: L("lcl_reservation_title"),
title: L("lcl_res_PPI_title")+" "+L("lcl_res_PPI_fromto").format(res_rap_t1s, res_rap_t2s) ,
showAll: showall
});