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) + ")" + "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)"; + " 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( clausesArr.push(
"SELECT rr.res_rsv_ruimte_host_key prs_perslid_key" // 1 Host ruimtereservering "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 geb_key = getQParamInt("geb_key", -1);
var floor_key = getQParamInt("floor_key", -1); var floor_key = getQParamInt("floor_key", -1);
var werkpl_key = getQParamInt("wsp_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 res_deel_key = getQParamInt("res_deel_key", -1); // unused. Zou ooit direct naar dag+intervalselectie kunnen
var thema_key = getQParamInt("thema_key", 12); 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 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 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 local_now = convertToLocalTime(new Date(), local_tz);
var dateoffset = getQParamInt("offset", afternoon?1:0); // 12:00 default morgen ipv vandaag 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 datelimit = getQParamInt("limit", 7); // aantal te kiezen dagen tov offset
var floorselect = getQParamInt("floorselect", 0); // na gebouw ook de verdiepingen laten kiezen var floorselect = getQParamInt("floorselect", 0); // na gebouw ook de verdiepingen laten kiezen
var mapselect = getQParamInt("mapselect", 1) == 1; // werkplek via plattegrond 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 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_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 (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 + sql_loc_where
+ (params.max_rooms ? " AND ROWNUM <= " + params.max_rooms : ""); + (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 geb_key = getQParamInt("geb_key", -1);
var floor_key = getQParamInt("floor_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 avail_flrs = getQParamIntArray("avail_flrs", []);
var res_deel_key = getQParamInt("wsp_key", -1); var res_deel_key = getQParamInt("wsp_key", -1);
var showAll = getQParamInt("showall", 0) == 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 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 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 local_now = convertToLocalTime(new Date(), local_tz);
var dateoffset = getQParamInt("offset", afternoon?1:0); // TODO localized afternoon gebruiken om offset te berekenen .. 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 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 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 var fotos = getQParamInt("fotos", 1); // for selectmode 1: show photo or not
@@ -517,21 +526,14 @@ transitParam2 += "&startpage=" + startpage;
<div id='accordion'> <div id='accordion'>
<% <%
sql = "SELECT g.alg_gebouw_werkdagen, " sql = "SELECT g.alg_gebouw_werkdagen, "
+ " g.alg_gebouw_naam, " + " g.alg_gebouw_naam"
+ " l.alg_locatie_timezone "
+ " FROM alg_gebouw g " + " FROM alg_gebouw g "
+ " JOIN alg_locatie l ON l.alg_locatie_key = g.alg_locatie_key "
+ " WHERE g.alg_gebouw_key = " + geb_key; + " WHERE g.alg_gebouw_key = " + geb_key;
oRs = Oracle.Execute(sql) oRs = Oracle.Execute(sql)
var werkdagen = oRs("alg_gebouw_werkdagen").Value; 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 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(); 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); 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) var oRs = Oracle.Execute(sql)
@@ -621,17 +623,6 @@ transitParam2 += "&startpage=" + startpage;
// 3. KIES VERDIEPING INDIEN GEWENST EN NOG NIET BEKEND // 3. KIES VERDIEPING INDIEN GEWENST EN NOG NIET BEKEND
if (resdate && floorselect == 1 && geb_key > -1 && floor_key == -1) 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'> <div id='accordion'>
<% <%

View File

@@ -106,16 +106,23 @@ for (var func in xfunc._funcodes) {
} }
} }
var disc_keys = getQParamIntArray("discs", []); var disc_keys = getQParamIntArray("discs", []);
var geb_key = getQParamInt("geb_key", -1); var geb_key = getQParamInt("geb_key", -1);
var floor_key = getQParamInt("floor_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 fac_usrrap_key = getQParamInt("usrrap_key", -1); // wordt doorgegeven naar het infobord
var startpage = getQParam("startpage", ""); 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 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 local_now = convertToLocalTime(new Date(), local_tz);
var dateoffset = getQParamInt("offset", afternoon?1:0); // 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 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 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 var fotos = getQParamInt("fotos", 1); // for selectmode 1: show photo or not