DLLG#90075 daylimit lokaal interpreteren, fac_list.inc nog buiten scope en (reserveringen op) locaties in andere tijdszones dan Europe/Amsterdam readonly weergeven

svn path=/Website/branches/v2025.4/; revision=70911
This commit is contained in:
2025-11-12 12:18:52 +00:00
parent eeb3202f32
commit d022a5249f
5 changed files with 37 additions and 31 deletions

View File

@@ -224,7 +224,6 @@ function fac_list_query (params)
+ "FROM_TZ (CAST ( " + expr + " AS TIMESTAMP), " + safe.quoted_sql(S_fac_server_timezone) + ")"
+ " AT TIME ZONE COALESCE (l.alg_locatie_timezone, " + safe.quoted_sql(S_fac_server_timezone) + ") AS DATE)";
}
// Todo; Today Session("time_zone") <> SYSDATE?
clausesArr.push(
"SELECT rr.res_rsv_ruimte_host_key prs_perslid_key" // 1 Host ruimtereservering

View File

@@ -89,6 +89,12 @@ var zoom = getQParamFloat("zoom", 2);
var geb_key = getQParamInt("geb_key", -1);
var floor_key = getQParamInt("floor_key", -1);
var werkpl_key = getQParamInt("wsp_key", -1);
var local_tz = S("fac_server_timezone");
if (geb_key > -1) {
local_tz = res.getTimezoneBy(geb_key, "G");
} else if (floor_key > -1) {
local_tz = res.getTimezoneBy(floor_key, "V");
}
var res_deel_key = getQParamInt("res_deel_key", -1); // unused. Zou ooit direct naar dag+intervalselectie kunnen
var thema_key = getQParamInt("thema_key", 12);
@@ -96,8 +102,10 @@ var themaI_key = getQParamInt("themaI_key", 13);
var bordlabel_key= getQParamInt("bordlabel_key", 13);
var daylimit = getQParamInt("daylimit", 12); // na daylimit kun je voor de eerste dag niet meer reserveren, default 12:00, werkt niet icm offset
var afternoon = new Date().getHours() >= daylimit;
var dateoffset = getQParamInt("offset", afternoon?1:0); // 12:00 default morgen ipv vandaag
var local_now = convertToLocalTime(new Date(), local_tz);
var afternoon = local_now.getHours() >= daylimit;
var dateoffset = getQParamInt("offset", afternoon ? 1 : 0);
var datelimit = getQParamInt("limit", 7); // aantal te kiezen dagen tov offset
var floorselect = getQParamInt("floorselect", 0); // na gebouw ook de verdiepingen laten kiezen
var mapselect = getQParamInt("mapselect", 1) == 1; // werkplek via plattegrond kiezen

View File

@@ -1877,6 +1877,7 @@ res = {
+ " AND rdp.res_ins_discipline_key = rg.res_discipline_key "
+ " AND (fr.res_ruimte_startdatum IS NULL OR fr.res_ruimte_startdatum <= " + ora_date2 + ")"
+ " AND (fr.res_ruimte_vervaldatum IS NULL OR fr.res_ruimte_vervaldatum > " + ora_date1 + ")"
+ " AND COALESCE(l.alg_locatie_timezone, " + safe.quoted_sql(S("fac_server_timezone")) + ") = " + safe.quoted_sql(S("fac_server_timezone"))
+ sql_loc_where
+ (params.max_rooms ? " AND ROWNUM <= " + params.max_rooms : "");

View File

@@ -117,8 +117,15 @@ for (var func in xfunc._funcodes) {
}
}
var geb_key = getQParamInt("geb_key", -1);
var floor_key = getQParamInt("floor_key", -1);
var geb_key = getQParamInt("geb_key", -1);
var floor_key = getQParamInt("floor_key", -1);
var local_tz = S("fac_server_timezone");
if (geb_key > -1) {
local_tz = res.getTimezoneBy(geb_key, "G");
} else if (floor_key > -1) {
local_tz = res.getTimezoneBy(floor_key, "V");
}
var avail_flrs = getQParamIntArray("avail_flrs", []);
var res_deel_key = getQParamInt("wsp_key", -1);
var showAll = getQParamInt("showall", 0) == 1;
@@ -126,8 +133,10 @@ var showAll = getQParamInt("showall", 0) == 1;
var fac_usrrap_key = getQParamInt("usrrap_key", -1); // wordt doorgegeven naar het infobord
var daylimit = getQParamInt("daylimit", 12); // na daylimit kun je voor de eerste dag niet meer reserveren, default 12:00, werkt niet icm offset
var afternoon = new Date().getHours() >= daylimit;
var dateoffset = getQParamInt("offset", afternoon?1:0); // TODO localized afternoon gebruiken om offset te berekenen ..
var local_now = convertToLocalTime(new Date(), local_tz);
var afternoon = local_now.getHours() >= daylimit;
var dateoffset = getQParamInt("offset", afternoon ? 1 : 0);
var datelimit = getQParamInt("limit", 7); // aantal te kiezen dagen tov offset
var selectmode = getQParamInt("selectmode", 0); // kiezen van het item: 0=automatisch bepalen (tekening anders lijst), 1=lijst, 2=2dtekening indien aanwezig, 3=3dtekening indien aanwezig
var fotos = getQParamInt("fotos", 1); // for selectmode 1: show photo or not
@@ -517,21 +526,14 @@ transitParam2 += "&startpage=" + startpage;
<div id='accordion'>
<%
sql = "SELECT g.alg_gebouw_werkdagen, "
+ " g.alg_gebouw_naam, "
+ " l.alg_locatie_timezone "
+ " g.alg_gebouw_naam"
+ " FROM alg_gebouw g "
+ " JOIN alg_locatie l ON l.alg_locatie_key = g.alg_locatie_key "
+ " WHERE g.alg_gebouw_key = " + geb_key;
oRs = Oracle.Execute(sql)
var werkdagen = oRs("alg_gebouw_werkdagen").Value;
var gebouw_naam = oRs("alg_gebouw_naam").Value; // theoretisch kunnen dit er meerdere zijn, dan nog aanpassen
var local_tz = oRs("alg_locatie_timezone").Value || S("fac_server_timezone");
oRs.close();
var local_now = convertToLocalTime(new Date(), local_tz);
afternoon = local_now.getHours() >= daylimit;
dateoffset = getQParamInt("offset", afternoon ? 1 : 0);
sql = rdpt.dagbezetting_resdelen_in_aanweziggebouw_sql(res_disc_key_arr, res_deel_key, geb_key, dateoffset, datelimit, act_key);
var oRs = Oracle.Execute(sql)
@@ -621,17 +623,6 @@ transitParam2 += "&startpage=" + startpage;
// 3. KIES VERDIEPING INDIEN GEWENST EN NOG NIET BEKEND
if (resdate && floorselect == 1 && geb_key > -1 && floor_key == -1)
{
sql = "SELECT l.alg_locatie_timezone "
+ " FROM alg_gebouw g "
+ " JOIN alg_locatie l ON l.alg_locatie_key = g.alg_locatie_key "
+ " WHERE g.alg_gebouw_key = " + geb_key;
oRs = Oracle.Execute(sql);
var local_tz = oRs("alg_locatie_timezone").Value || S("fac_server_timezone");
oRs.close();
var local_now = convertToLocalTime(new Date(), local_tz);
afternoon = local_now.getHours() >= daylimit;
dateoffset = getQParamInt("offset", afternoon ? 1 : 0);
%>
<div id='accordion'>
<%

View File

@@ -106,16 +106,23 @@ for (var func in xfunc._funcodes) {
}
}
var disc_keys = getQParamIntArray("discs", []);
var geb_key = getQParamInt("geb_key", -1);
var floor_key = getQParamInt("floor_key", -1);
var disc_keys = getQParamIntArray("discs", []);
var geb_key = getQParamInt("geb_key", -1);
var floor_key = getQParamInt("floor_key", -1);
var local_tz = S("fac_server_timezone");
if (geb_key > -1) {
local_tz = res.getTimezoneBy(geb_key, "G");
} else if (floor_key > -1) {
local_tz = res.getTimezoneBy(floor_key, "V");
}
var fac_usrrap_key = getQParamInt("usrrap_key", -1); // wordt doorgegeven naar het infobord
var startpage = getQParam("startpage", "");
var daylimit = getQParamInt("daylimit", 17); // na daylimit kun je voor de eerste dag niet meer reserveren, default 12:00, werkt niet icm offset
var afternoon = new Date().getHours() >= daylimit;
var dateoffset = getQParamInt("offset", afternoon?1:0); //
var local_now = convertToLocalTime(new Date(), local_tz);
var afternoon = local_now.getHours() >= daylimit;
var dateoffset = getQParamInt("offset", afternoon ? 1 : 0);
var datelimit = getQParamInt("limit", 7); // aantal te kiezen dagen tov offset
var selectmode = getQParamInt("selectmode", 0); // kiezen van het item: 0=automatisch bepalen (tekening anders lijst), 1=lijst, 2=2dtekening indien aanwezig, 3=3dtekening indien aanwezig
var fotos = getQParamInt("fotos", 1); // for selectmode 1: show photo or not