IVET#67272: Beschikbare flex/hybride plekken PE083

svn path=/Website/branches/v2020.2/; revision=51815
This commit is contained in:
Alex Tiehuis
2021-06-09 09:21:05 +00:00
parent 1ebc2f906f
commit 0c0172ab13
2 changed files with 44 additions and 40 deletions

View File

@@ -73,46 +73,46 @@ var sametab = getQParamInt("sametab", 1); // alles in 1 tab of t
var resdate = getQParamDate("date", null); // de (in stap 2 gekozen) datum
var dagcapaciteit = getQParamFloat("dagcapaciteit", 9); // aantal uren beschikbaar per dag tbv berekening van globale vulling
function dagcapaciteitCalc(date)
{
var begintijd = new Date(0, 0, 0, 23, 59, 0);
var eindtijd = new Date(0, 0, 0, 0, 0, 0);
var btBegintijd;
var btEindtijd;
var btArr;
var index;
var bt = res.getBloktijdenDisc(res_disc_key, date);
if (bt.length > 0)
{
for (index = 0; index < bt.length; index++)
{
btArr = bt[index].begin.split(":");
btBegintijd = new Date(0, 0, 0, btArr[0], btArr[1], 0);
if (btBegintijd.getTime() < begintijd.getTime())
{
begintijd = btBegintijd;
}
btArr = bt[index].end.split(":");
btEindtijd = new Date(0, 0, 0, btArr[0], btArr[1], 0);
if (btEindtijd.getTime() > eindtijd.getTime())
{
eindtijd = btEindtijd;
}
}
var diff = eindtijd.getTime() - begintijd.getTime();
var uren = Math.floor(diff / 1000 / 60 / 60);
diff -= uren * 1000 * 60 * 60;
var minuten = Math.floor(diff / 1000 / 60) / 60; // make minutes decimal
return uren + minuten;
}
else
{
return dagCapaciteit;
}
}
if (resdate)
{
function dagcapaciteitCalc()
{
var begintijd = new Date(0, 0, 0, 23, 59, 0);
var eindtijd = new Date(0, 0, 0, 0, 0, 0);
var btBegintijd;
var btEindtijd;
var btArr;
var index;
var bt = res.getBloktijdenDisc(res_disc_key, resdate);
if (bt.length > 0)
{
for (index = 0; index < bt.length; index++)
{
btArr = bt[index].begin.split(":");
btBegintijd = new Date(0, 0, 0, btArr[0], btArr[1], 0);
if (btBegintijd.getTime() < begintijd.getTime())
{
begintijd = btBegintijd;
}
btArr = bt[index].end.split(":");
btEindtijd = new Date(0, 0, 0, btArr[0], btArr[1], 0);
if (btEindtijd.getTime() > eindtijd.getTime())
{
eindtijd = btEindtijd;
}
}
var diff = eindtijd.getTime() - begintijd.getTime();
var uren = Math.floor(diff / 1000 / 60 / 60);
diff -= uren * 1000 * 60 * 60;
var minuten = Math.floor(diff / 1000 / 60) / 60; // make minutes decimal
return uren + minuten;
}
else
{
return dagCapaciteit;
}
}
dagcapaciteit = dagcapaciteitCalc();
dagcapaciteit = dagcapaciteitCalc(resdate);
}
var minimumbeschikbaarheid = getQParamFloat("minbes", 1.5); // minder dan zoveel uur beschikbaar beschouwen we onbeschikbaar
@@ -389,8 +389,9 @@ if (datelimit == -1)
{
var reserveerbaredag = true;
var aantalitems = oRs("delen").Value;
var beschikbaarheid = ((1 - (oRs("gevuld").Value/(dagcapaciteit*aantalitems)))*100).toFixed(0); // 0..100
var bcls = rdpt.bezettings_class(oRs("gevuld").value, dagcapaciteit*aantalitems, minimumbeschikbaarheid*aantalitems);
var calc_dagcapaciteit = dagcapaciteitCalc(new Date(oRs("datum").Value));
var beschikbaarheid = ((1 - (oRs("gevuld").Value/(calc_dagcapaciteit*aantalitems)))*100).toFixed(0); // 0..100
var bcls = rdpt.bezettings_class(oRs("gevuld").value, calc_dagcapaciteit*aantalitems, minimumbeschikbaarheid*aantalitems);
if (oRs("vrijedag").value > 0)
{
bcls += " vrijedag";

View File

@@ -168,6 +168,9 @@ rdpt = {
+ (p_resdate ? " AND TRUNC(rrd.res_rsv_deel_van) = " + p_resdate.toSQL()
: " AND TRUNC(rrd.res_rsv_deel_van) BETWEEN TRUNC(SYSDATE +"+(p_dateoffset||0)+") AND TRUNC(SYSDATE-1+"+(p_dateoffset||0)+"+"+p_datelimit+")"
)
+ " AND ( rd.res_deel_vervaldatum IS NULL"
+ " OR rd.res_deel_vervaldatum > TRUNC(rrd.res_rsv_deel_van)"
+ " )"
+ " GROUP BY vrij.mld_vrije_dagen_key"
+ " , TRUNC(rrd.res_rsv_deel_van)"
+ " , res_rsv_deel_van"