DLLG#90075 Refactoring, -comment, +getTimezoneByResRuimte

svn path=/Website/trunk/; revision=70294
This commit is contained in:
2025-09-11 14:11:28 +00:00
parent a83966de34
commit cd5badd87d
5 changed files with 55 additions and 26 deletions

View File

@@ -140,7 +140,6 @@ oRs.Close();
BLOCK_START("facFM", L("lcl_operations_block"), {icon: "fa-users-cog"});
ROFIELDTR("fld", L("lcl_alg_locatie_volgnr"), loc_volgnr, {suppressEmpty: true});
FCLTtimezoneselector("", {initVal: alg_tz, readonly: true, suppressEmpty: true});
//ROFIELDTR("fld", L("lcl_timezone"), alg_tz, {suppressEmpty: true});
var fldcls = "fld";
if (vervaldatum <= new Date())
fldcls += " expired2";

View File

@@ -195,8 +195,8 @@ var todate = new Date(today.getFullYear(), today.getMonth(), 1);
todate.setDate(0);
todate.setHours(23,59);
var fromdate = new Date(todate.getFullYear(), todate.getMonth(), 1);
todate = toServerTimeZone(todate);
fromdate = toServerTimeZone(fromdate);
todate = convertToServerTime(todate);
fromdate = convertToServerTime(fromdate);
todate.setSeconds(59); // consistent met calendar onClick
var date_from = (datefrom ? datefrom : fromdate);

View File

@@ -284,6 +284,26 @@ res = {
oRs.Close();
},
getTimezoneByResRuimte: function _getTimezoneByResRuimte(res_ruimte_key) {
var sql = "SELECT MIN (l.alg_locatie_timezone) alg_tz"
+ " FROM alg_locatie l,"
+ " alg_gebouw g,"
+ " alg_verdieping v,"
+ " alg_ruimte r,"
+ " res_alg_ruimte rar,"
+ " res_ruimte rr"
+ " WHERE g.alg_locatie_key = l.alg_locatie_key"
+ " AND v.alg_gebouw_key = g.alg_gebouw_key"
+ " AND r.alg_verdieping_key = v.alg_verdieping_key"
+ " AND rar.alg_ruimte_key = r.alg_ruimte_key"
+ " AND rr.res_ruimte_key = rar.res_ruimte_key"
+ " AND rr.res_ruimte_key = " + res_ruimte_key;
var oRs = Oracle.Execute(sql);
var alg_tz = oRs("alg_tz").Value || S("fac_server_timezone");
oRs.Close();
return alg_tz;
},
res_ruimte_info: function _res_ruimte(res_ruimte_key)
{
var result = { res_ruimte_key: res_ruimte_key,

View File

@@ -151,8 +151,8 @@ function res_list_ppi(pautfunction, params)
var ora_date2 = dateto.beginToSQL();
var ora_date3 = datefrom.beginToSQL();
var ora_date4 = dateto.endToSQL();
var ora_date5 = toUserTimeZone(datefrom).toSQL(true);
var ora_date6 = toUserTimeZone(dateto).toSQL(true);
var ora_date5 = convertToLocalTime(datefrom).toSQL(true);
var ora_date6 = convertToLocalTime(dateto).toSQL(true);
//date_sql = " AND beschik.res_reservering_van BETWEEN " + ora_date1 + " AND " + ora_date2;

View File

@@ -1365,6 +1365,9 @@ function transitQS()
function padout(number) { return (number < 10) ? "0" + number : number; }
/**************************
* Timezone-perikelen *
***************************/
function oRaAsUserTZ(prefix, varName, isGroupClause)
{
if (prefix != "")
@@ -1394,7 +1397,7 @@ function getServerHour(h)
{
var tempDate = new Date();
tempDate.setHours(h);
tempDate = toServerTimeZone(tempDate);
tempDate = convertToServerTime(tempDate);
return tempDate.getHours();
}
@@ -1402,21 +1405,28 @@ function getUserHour(h)
{
var tempDate = new Date();
tempDate.setHours(h);
tempDate = toUserTimeZone(tempDate);
tempDate = convertToLocalTime(tempDate);
return tempDate.getHours();
}
// User time-zone = Session("time_zone")
// Local time-zone = alg_locatie_timezone
// User time-zone = Session("time_zone")
// Server time-zone = S("fac_server_timezone")
function toUserTimeZone(thisDate)
{
return convertTimeZone(thisDate, S("fac_server_timezone"), Session("time_zone"));
// Datetime van alg_locatie of user-tijdszone omzetten naar de server tijdszone
function convertToServerTime(userDateTime, localTimezone) {
if (!localTimezone) {
localTimezone = Session("time_zone"); // 'Local' = user timezone by default (= indien leeg)
}
return convertTimeZone(userDateTime, localTimezone, S("fac_server_timezone"));
}
function toServerTimeZone(thisDate)
{
return convertTimeZone(thisDate, Session("time_zone"), S("fac_server_timezone"));
// Datetime van server tijdszone omzetten naar de alg_locatie of user-tijdszone
function convertToLocalTime(serverDateTime, localTimezone) {
if (!localTimezone) {
localTimezone = Session("time_zone"); // 'Local' = user timezone by default (= indien leeg)
}
return convertTimeZone(serverDateTime, S("fac_server_timezone"), localTimezone);
}
function convertTimeZone(thisDate, fromTZ, toTZ)
@@ -1442,7 +1452,7 @@ function convertTimeZone(thisDate, fromTZ, toTZ)
// This function should only be used to format display,
// <20> never as part of a computation.
// Als de jsDate van de user(client) afkomstig is, hoeft er geen conversie naar de user-time-zone plaats te vinden
function toTimeString(jsDate, bWithSeconds, isUserTimeZone)
function toTimeString(jsDate, bWithSeconds, isLocalTime)
{
if (jsDate===null)
return "";
@@ -1464,15 +1474,15 @@ function toTimeString(jsDate, bWithSeconds, isUserTimeZone)
if (!jsDate)
return "";
if (!isUserTimeZone)
jsDate = toUserTimeZone(jsDate);
if (!isLocalTime)
jsDate = convertToLocalTime(jsDate);
ret = padout(jsDate.getHours()) + ":" + padout(jsDate.getMinutes());
if (bWithSeconds) ret += ":" + padout(jsDate.getSeconds());
return ret;
}
// Als de jsDate van de user(client) afkomstig is, hoeft er geen conversie naar de user-time-zone plaats te vinden
function toDateString(jsDate, noDay, pretty, isUserTimeZone)
function toDateString(jsDate, noDay, pretty, isLocalDate)
{
var resstr = "";
var today = new Date().midnight();
@@ -1493,8 +1503,8 @@ function toDateString(jsDate, noDay, pretty, isUserTimeZone)
if (!jsDate)
return "";
if (!isUserTimeZone)
jsDate = toUserTimeZone(jsDate);
if (!isLocalDate)
jsDate = convertToLocalTime(jsDate);
// Ik wil graag, alleen als parameter friendly?, voor de datums gisteren, vandaag en morgen de tekst Gisteren, Vandaag en Morgen opleveren
// Voor lijsten/sortering is dat vaak niet handig, maar soms is het veel begrijpelijker. Als de mogelijkheid er is, kunnen we
@@ -1523,7 +1533,7 @@ function toDateTimeString(jsDate, bWithSeconds, noDay, prettyday, noMidnight)
if (typeof jsDate == "date") // een oRs("datum").value
jsDate = new Date(jsDate);
jsDate = toUserTimeZone(jsDate);
jsDate = convertToLocalTime(jsDate);
if (noMidnight && jsDate.getTime() == jsDate.midnight().getTime())
return toDateString(jsDate, noDay, prettyday, true)
else
@@ -1614,7 +1624,7 @@ function defaultDate(code)
}
function user_time_based_greeting() {
var uur = toUserTimeZone(new Date()).getHours();
var uur = convertToLocalTime(new Date()).getHours();
if (uur == 24 || uur < 6) {
return L("lcl_greet_night");
} else if (uur < 12) {
@@ -2554,8 +2564,8 @@ Date.prototype.beginToSQL = function beginToSQL(dateOnly, isServerTimeZone)
if (isServerTimeZone) {
return new Date(theDateStart.setHours(0, 0)).toSQL(!dateOnly);
} else {
theDateStart = new Date(toUserTimeZone(theDateStart).setHours(0, 0));
return toServerTimeZone(theDateStart).toSQL(!dateOnly);
theDateStart = new Date(convertToLocalTime(theDateStart).setHours(0, 0));
return convertToServerTime(theDateStart).toSQL(!dateOnly);
}
}
// Als de Date al een server-datetime is, hoeven we geen time-zone conversie uit te voeren
@@ -2565,8 +2575,8 @@ Date.prototype.endToSQL = function endToSQL(dateOnly, isServerTimeZone)
if (isServerTimeZone) {
return new Date(theDateEnd.setHours(23, 59)).toSQL(!dateOnly);
} else {
theDateEnd = new Date(toUserTimeZone(theDateEnd).setHours(23, 59));
return toServerTimeZone(theDateEnd).toSQL(!dateOnly);
theDateEnd = new Date(convertToLocalTime(theDateEnd).setHours(23, 59));
return convertToServerTime(theDateEnd).toSQL(!dateOnly);
}
}