FSN#27568 begintijd 00:00 ook in showmode tonen. Begintijd ook tracken.

Ook: toTimeString accepteert 8.5 voor 08:30
Ook: save2db ondersteunt foreign voor niet-"key" types

svn path=/Website/trunk/; revision=19279
This commit is contained in:
Jos Groot Lipman
2013-09-26 09:35:41 +00:00
parent 995d053417
commit 06ca70b337
5 changed files with 69 additions and 76 deletions

View File

@@ -26,6 +26,11 @@
if (einduur == -1)
einduur = "";
function uurForeign(tm)
{
return toTimeString(tm, false); // geen seconden
}
var fields = [ { dbs: "ALG_VERDIEPING_KEY", typ: "key", frm: "verdiepingkey" },
{ dbs: "ALG_SRTRUIMTE_KEY", typ: "key", frm: "room_srt", track: L("lcl_estate_ruimte_man_sort") , foreign: "alg_srtruimte" },
{ dbs: "ALG_RUIMTE_NR", typ: "varchar", frm: "room_nr", track: L("lcl_estate_ruimte_man_nr") },
@@ -42,9 +47,9 @@
{ dbs: "ALG_RUIMTE_OPP_GEVELBEKLEDING", typ: "float", frm: "room_gebe" },
{ dbs: "ALG_RUIMTE_OPP_ALT1", typ: "float", frm: "room_oppa1", track: L("lcl_estate_ruimte_opp_alt1") },
{ dbs: "ALG_RUIMTE_OPP_ALT2", typ: "float", frm: "room_oppa2", track: L("lcl_estate_ruimte_opp_alt2") },
{ dbs: "MLD_DIENSTNIVEAU_KEY", typ: "key", frm: "dienstniveau", track: L("lcl_mld_dienst_niveau"), foreign: "mld_dienstniveau" },
{ dbs: "ALG_RUIMTE_BEGINUUR", typ: "float", val: beginuur },
{ dbs: "ALG_RUIMTE_EINDUUR", typ: "float", val: einduur },
{ dbs: "MLD_DIENSTNIVEAU_KEY", typ: "key", frm: "dienstniveau", track: L("lcl_mld_dienst_niveau"), foreign: "mld_dienstniveau" },
{ dbs: "ALG_RUIMTE_BEGINUUR", typ: "float", val: beginuur, track: L("lcl_estate_gebouw_beginuur"), foreign: uurForeign },
{ dbs: "ALG_RUIMTE_EINDUUR", typ: "float", val: einduur, track: L("lcl_estate_gebouw_einduur"), foreign: uurForeign },
{ dbs: "ALG_RUIMTE_WERKDAGEN", typ: "number", frm: "room_werkdagen" }
];

View File

@@ -52,8 +52,8 @@ var bld_y = oRs("alg_gebouw_y").value;
var bld_bez = oRs("alg_gebouw_bez").value;
var bld_deleted = oRs("alg_gebouw_verwijder").value != null;
var dienstniveau = oRs("mld_dienstniveau_key").value;
var beginuur = oRs("alg_gebouw_beginuur").value? oRs("alg_gebouw_beginuur").value : -1;
var einduur = oRs("alg_gebouw_einduur").value? oRs("alg_gebouw_einduur").value : -1;
var beginuur = oRs("alg_gebouw_beginuur").value;
var einduur = oRs("alg_gebouw_einduur").value;
var werkdagen = oRs("alg_gebouw_werkdagen").value;
oRs.Close();
%>
@@ -164,21 +164,9 @@ oRs.Close();
ROFIELDTR("fld", L("lcl_geoycoord"), bld_y, {suppressEmpty:true});
ROCHECKBOXTR("fldalgbez", L("lcl_estate_gebouw_bez"), bld_bez==1);
var dd = new Date();
if (beginuur >= 0)
{
var hh = Math.floor(beginuur);
var mm = (beginuur*60) % 60;
dd.setHours(hh,mm,0,0);
ROFIELDTR("fld", L("lcl_estate_gebouw_beginuur"), toTimeString(dd) );
}
if (einduur > 0)
{
var hh = Math.floor(einduur);
var mm = (einduur*60) % 60;
dd.setHours(hh,mm,0,0);
ROFIELDTR("fld", L("lcl_estate_gebouw_einduur"), toTimeString(dd) );
}
ROFIELDTR("fld", L("lcl_estate_gebouw_beginuur"), toTimeString(beginuur), {suppressEmpty:true} );
ROFIELDTR("fld", L("lcl_estate_gebouw_einduur"), toTimeString(einduur), {suppressEmpty:true} );
ROCHECKBOXTR("fldalgwerk", L("lcl_estate_gebouw_werkdagen"), werkdagen==1);
BLOCK_END();

View File

@@ -72,8 +72,8 @@ var room_inh = oRs("alg_ruimte_inhoud").value;
var room_opm = oRs("alg_ruimte_opmerking").value;
var room_oppa1 = oRs("alg_ruimte_opp_alt1").value;
var room_oppa2 = oRs("alg_ruimte_opp_alt2").value;
var beginuur = oRs("alg_ruimte_beginuur").value? oRs("alg_ruimte_beginuur").value : -1;
var einduur = oRs("alg_ruimte_einduur").value? oRs("alg_ruimte_einduur").value : -1;
var beginuur = oRs("alg_ruimte_beginuur").value;
var einduur = oRs("alg_ruimte_einduur").value;
var werkdagen = oRs("alg_ruimte_werkdagen").value;
var room_deleted = oRs("alg_ruimte_verwijder").value != null;
var contour_opp = oRs("cad_imp_contour_opp").value;
@@ -193,21 +193,8 @@ oRs.Close();
ROFIELDTR("fldshort", L("lcl_estate_ruimte_man_inhoud"), room_inh, {suppressEmpty:true});
ROFIELDTR("fld", L("lcl_estate_ruimte_man_opmerk"), room_opm, {suppressEmpty:true});
var dd = new Date();
if (beginuur >= 0)
{
var hh = Math.floor(beginuur);
var mm = (beginuur*60) % 60;
dd.setHours(hh,mm,0,0);
ROFIELDTR("fld", L("lcl_estate_gebouw_beginuur"), toTimeString(dd) );
}
if (einduur > 0)
{
var hh = Math.floor(einduur);
var mm = (einduur*60) % 60;
dd.setHours(hh,mm,0,0);
ROFIELDTR("fld", L("lcl_estate_gebouw_einduur"), toTimeString(dd) );
}
ROFIELDTR("fld", L("lcl_estate_gebouw_beginuur"), toTimeString(beginuur), {suppressEmpty:true} );
ROFIELDTR("fld", L("lcl_estate_gebouw_einduur"), toTimeString(einduur), {suppressEmpty:true} );
switch (werkdagen)
{

View File

@@ -525,6 +525,14 @@ function toTimeString(jsDate, bWithSeconds)
jsDate = new Date(jsDate.value);
if (typeof jsDate == "date") // een oRs("datum").value
jsDate = new Date(jsDate);
if (typeof jsDate == "number") // 8.5 voor 08:30
{
if (jsDate < 0 || jsDate > 24)
return "";
var hh = Math.floor(jsDate);
var mm = (jsDate*60) % 60;
jsDate = (new Date).setHours(hh,mm,0,0);
}
if (!jsDate)
return "";

View File

@@ -34,7 +34,8 @@
val: kant en klare waarde, zelf berekend
track: "een tekst" waaronder wijzigingen getrackt moeten worden
of: true waardoor wel oldjsval wordt bepaald maar niet getrackt (mld_behandelaar_key)
foreign: bij tracking nodig als typ=="key", een waarde uit foreignKeyTable
foreign: bij tracking nodig als typ=="key", een waarde uit onderstaande foreignKeyTable
of: een functie, voorals we zelf de waarde naar een (andere) tekst willen vertalen
params: vooralsnog geen
result: een sqlstatement met alvast het woord WHERE er achter (opdat het het niet vergeten)
@@ -83,55 +84,59 @@ function buildTrackText(typ, oldjsval, newjsval, params)
params = params || {};
var oldtxt = oldjsval;
var newtxt = newjsval;
switch (typ)
if (typeof params.foreign == "function")
{
case "datetime":
oldtxt = params.foreign(oldjsval, params.oldjsvals);
newtxt = params.foreign(newjsval);
}
else
{
switch (typ)
{
var oldtxt = toDateTimeString(oldjsval);
var newtxt = toDateTimeString(newjsval);
break;
}
case "date":
{
var oldtxt = toDateString(oldjsval);
var newtxt = toDateString(newjsval);
break;
}
case "time":
{
var oldtxt = toTimeString(oldjsval);
var newtxt = toTimeString(newjsval);
break;
}
case "key": // hash foreign moet ook gedefinieerd zijn
{
if (typeof params.foreign == "function")
case "datetime":
{
oldtxt = params.foreign(oldjsval, params.oldjsvals);
newtxt = params.foreign(newjsval);
var oldtxt = toDateTimeString(oldjsval);
var newtxt = toDateTimeString(newjsval);
break;
}
else if (!params.foreign)
case "date":
{
abort_with_warning("INTERNAL ERROR:\nForeign key for tracking " + oldjsval + " to "+newjsval+" is not defined");
var oldtxt = toDateString(oldjsval);
var newtxt = toDateString(newjsval);
break;
}
else if (!foreignKeyTable[params.foreign.toUpperCase()])
case "time":
{
abort_with_warning("INTERNAL ERROR:\nForeign key for tracking " + params.foreign.toUpperCase()+" is not defined in foreignKeyTable");
var oldtxt = toTimeString(oldjsval);
var newtxt = toTimeString(newjsval);
break;
}
else
case "key": // hash foreign moet ook gedefinieerd zijn
{
var foreign = foreignKeyTable[params.foreign.toUpperCase()];
var sqlf = "SELECT " + foreign.desc
+ " FROM " + foreign.tbl + " " + (foreign.alias||"")
if (foreign.where)
sqlf += " WHERE " + foreign.where + " AND ";
if (!params.foreign)
{
abort_with_warning("INTERNAL ERROR:\nForeign key for tracking " + oldjsval + " to "+newjsval+" is not defined");
}
else if (!foreignKeyTable[params.foreign.toUpperCase()])
{
abort_with_warning("INTERNAL ERROR:\nForeign key for tracking " + params.foreign.toUpperCase()+" is not defined in foreignKeyTable");
}
else
sqlf += " WHERE ";
sqlf += foreign.key + " = ";
if (oldjsval) oldtxt = Oracle.Execute(sqlf + oldjsval)(0).Value;
if (newjsval) newtxt = Oracle.Execute(sqlf + newjsval)(0).Value;
{
var foreign = foreignKeyTable[params.foreign.toUpperCase()];
var sqlf = "SELECT " + foreign.desc
+ " FROM " + foreign.tbl + " " + (foreign.alias||"")
if (foreign.where)
sqlf += " WHERE " + foreign.where + " AND ";
else
sqlf += " WHERE ";
sqlf += foreign.key + " = ";
if (oldjsval) oldtxt = Oracle.Execute(sqlf + oldjsval)(0).Value;
if (newjsval) newtxt = Oracle.Execute(sqlf + newjsval)(0).Value;
}
break;
}
break;
}
}
if (oldjsval == null || oldjsval == "") oldtxt = L("lcl_trackfromempty");