AAIT#36710: Berekende waarde van velden in Facilitor.
svn path=/Website/trunk/; revision=31967
This commit is contained in:
@@ -628,7 +628,7 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
|
||||
mld_melding.melder_key,
|
||||
{ kostenplaatsKey: mld_melding.kostenpl_key || -1,
|
||||
label: (urole == "fe")?L("lcl_mld_inf_Kostenplaats"):L("lcl_mld_inf_Kostenklant"),
|
||||
extraParamField: "module",
|
||||
extraParamField: "kmodule",
|
||||
extracode: "M",
|
||||
filtercode: "AA", // Alleen actieve kostenplaatsen kunnen selecteren "All Active". Huidige waarde als initi<74>le waarde kan bij kostenplaatsen altijd.
|
||||
urlAdd: [{ urlParam: "prs_key", field: (frontend && S("mld_allow_for_others") == 1 && S("prs_dep_default_kpn_voor") == 1? "personFor" : "person") }, { urlParam: "showeigenkp", field: "eigenkp" }],
|
||||
|
||||
@@ -257,11 +257,11 @@ function onChangeKostenklant()
|
||||
}
|
||||
else
|
||||
// Huidige waarde niet zomaar laten staan. Wel checken of het een geldige waarde is.
|
||||
sgAccount.setValue($("#account").val(), $("#account_show").val(), false, true, $("#module").val(), true);
|
||||
sgAccount.setValue($("#account").val(), $("#account_show").val(), false, true, $("#kmodule").val(), true);
|
||||
}
|
||||
else
|
||||
// Huidige waarde niet zomaar laten staan. Wel checken of het een geldige waarde is.
|
||||
sgAccount.setValue($("#account").val(), $("#account_show").val(), false, true, $("#module").val(), true);
|
||||
sgAccount.setValue($("#account").val(), $("#account_show").val(), false, true, $("#kmodule").val(), true);
|
||||
|
||||
// Mocht er maar <20><>n waarde voorkomen in de suggesbox dan deze niet selecteren. Kostenplaats is niet verplicht.
|
||||
//sgAccount.CheckJustOne();
|
||||
@@ -403,7 +403,7 @@ function onChangeGebouw(locbld_changed, do_not_change_kp) // sl is de gebouw sel
|
||||
// 1) kostenklant vinkje aan is of
|
||||
// 2) locatie of gebouw veranderd is en kostenklant vinkje uit is en de kostenplaats niet een ALG kostenplaats is of niet is ingevuld
|
||||
if ($("#kostenklant").prop("checked") ||
|
||||
(locbld_changed && (!$("#kostenklant").prop("checked") && ($("#module").val() != "ALG" && $("#module").val() != ""))))
|
||||
(locbld_changed && (!$("#kostenklant").prop("checked") && ($("#kmodule").val() != "ALG" && $("#kmodule").val() != ""))))
|
||||
{
|
||||
return; // Niets doen bij kostenklant en als PRS-kostenplaats
|
||||
}
|
||||
@@ -426,7 +426,7 @@ function process_melder_info(data)
|
||||
{
|
||||
// setValue(key, txt, doonChange, checkExist, extraParam, lastTry);
|
||||
// lastTry is true zodat suggestbox wordt leeggemaakt indien waarde niet voorkomt (en niet de laatst waarde wordt getoond)
|
||||
// nameParam.module
|
||||
// nameParam.kmodule
|
||||
if ($("#kostenklant").prop("checked"))
|
||||
{
|
||||
// Zet eigen (default) kostenplaats alleen als kostenklant AAN. Indien niet aanwezig dan wordt suggestbox automatisch leeg gemaakt.
|
||||
@@ -435,7 +435,7 @@ function process_melder_info(data)
|
||||
// Deze waarde kan dan fout gezet worden (Rood weergegeven). Dit komt door timingproblemen tussen verschillende jquery ajax code!
|
||||
// Daarom zorgen dat jquery ajax code van deze kostenplaats suggest asynchroon wordt uitgevoerd.
|
||||
jQuery.ajaxSetup({async: false});
|
||||
sgAccount.setValue(data.kostenplaats_key, data.kpn_string, true, true, data.module, true);
|
||||
sgAccount.setValue(data.kostenplaats_key, data.kpn_string, true, true, data.kmodule, true);
|
||||
jQuery.ajaxSetup({async: true});
|
||||
}
|
||||
|
||||
@@ -829,7 +829,7 @@ function onChangeEnddate()
|
||||
var nw = enddate; // startdatum wordt einddatum.
|
||||
else
|
||||
var nw = melddatum; // startdatum wordt melddatum.
|
||||
$("#show_startdate").datepicker("setDate", new Date(nw))
|
||||
$("#show_startdate").datepicker("setDate", new Date(nw));
|
||||
$("#startdate").val(nw);
|
||||
}
|
||||
// else startdum == melddatum.
|
||||
|
||||
@@ -292,6 +292,21 @@ function listKenmerk(sql, module, key, props)
|
||||
key = srtdeel_key;
|
||||
}
|
||||
|
||||
|
||||
// Zitten er expressie kenmerken tussen?
|
||||
var flexExprIncluded = false;
|
||||
for (i = 1; !oRs.eof; i++)
|
||||
{
|
||||
var kdefault = oRs("kenmerk_default").Value;
|
||||
if (kdefault && kdefault.match('##EXPR##') != null)
|
||||
{
|
||||
flexExprIncluded = true;
|
||||
break;
|
||||
}
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.MoveFirst();
|
||||
|
||||
// ============================================================================================
|
||||
// Doorloop alle flexkenmerken
|
||||
if (key < 0 && tmpfolder == "")
|
||||
@@ -302,7 +317,7 @@ function listKenmerk(sql, module, key, props)
|
||||
{
|
||||
var val = null;
|
||||
val_seperator = ':';
|
||||
var def_val = oRs("kenmerk_default").value;
|
||||
var def_val = oRs("kenmerk_default").Value;
|
||||
var isExpression = false;
|
||||
|
||||
if (!kenmerk_search && !multiMode)
|
||||
@@ -1036,9 +1051,21 @@ function listKenmerk(sql, module, key, props)
|
||||
if (kv == "" && ktype != "M" && ktype != "F" && ktype != "E" && !makeCheckbox)
|
||||
{ // Ook lege folders met bestanden en een enkele bestandsnaam krijgen we via de query mee. Maar deze niet tonen.
|
||||
// Ooit meer HTML-types toepassen (number, float)
|
||||
var onchangeExp = "";
|
||||
if (flexExprIncluded && (ktype == "N" || ktype == "D") && !isExpression)
|
||||
onchangeExp = ";calculateFlexExpressions(\"" + module
|
||||
+ "\", " + key
|
||||
+ ", \"" + niveau
|
||||
+ "\", \"" + nameprefix
|
||||
+ "\", \"" + extraserie
|
||||
+ "\");";
|
||||
kv = "<input type='text'"
|
||||
+ (!readonlyfield && kregexp ? " regexp='" + kregexp + "' " : "")
|
||||
+ (!readonlyfield ? " onChange='checkKenmerk(this, false,\"" + ktype + "\"," + klen + "," + kdec + "," + kmin + "," + kmax + ")' " : "")
|
||||
+ (!readonlyfield
|
||||
? " onChange='checkKenmerk(this, false,\"" + ktype + "\"," + klen + "," + kdec + "," + kmin + "," + kmax + ")"
|
||||
+ onchangeExp
|
||||
+ "' "
|
||||
: "")
|
||||
+ (!readonlyfield ? " onBlur='checkKenmerk(this, true,\"" + ktype + "\"," + klen + "," + kdec + "," + kmin + "," + kmax + ")' " : "")
|
||||
+ (readonlyfield? " readonly tabindex=-1 "
|
||||
: " id='" + nameprefix + idCounter + "val' name='" + nameprefix + idCounter + "val' ");
|
||||
@@ -1093,7 +1120,7 @@ function listKenmerk(sql, module, key, props)
|
||||
+ (isExpression? " expression " : "")
|
||||
+ "'"
|
||||
+ (required ? " required='required' " : "")
|
||||
+ (isExpression? " readonly " : "")
|
||||
+ (isExpression ? " readonly " : "")
|
||||
//+ " placeholder='"+val_label+"'"
|
||||
+ " value='" + (kdec > 0 && val? safe.displayfloat(parseFloat(val), kdec) : safe.html(val)) + "'"
|
||||
+ " maxlength='" + ((kmin >= 0? 0 : 1) + (kdec > 0? 1 : 0) + klen) + "'"
|
||||
@@ -1720,9 +1747,9 @@ function _saveFlexKenmerken(parentKey, params, flexdata) // TODO: support multiM
|
||||
var trackarray = []; // eventuele tracking
|
||||
|
||||
var hasExpression = false;
|
||||
for (kenmerk=0; kenmerk<flexdata.length; kenmerk++)
|
||||
for (kenmerkkey in flexdata)
|
||||
{
|
||||
var flex = flexdata[kenmerk];
|
||||
var flex = flexdata[kenmerkkey];
|
||||
var vold = kenmerk_keys[flex.id]? kenmerk_keys[flex.id] : "";
|
||||
hasExpression = hasExpression || flex.expr == 1;
|
||||
var vnew = flex.value || "";
|
||||
@@ -1870,21 +1897,21 @@ function _saveFlexKenmerken(parentKey, params, flexdata) // TODO: support multiM
|
||||
// Vorige waarden verwijderen.
|
||||
removekenmerkwaarden(module, parentKey);
|
||||
savekenmerkwaarden(module, parentKey, params.moduleVal, flexdata);
|
||||
evaluateflexexpresions(module, parentKey);
|
||||
evaluateflexexpressions(module, parentKey, true);
|
||||
//removekenmerkwaarden(module, parentKey);
|
||||
}
|
||||
|
||||
return trackarray;
|
||||
}
|
||||
|
||||
function savekenmerkwaarden(module, refkey, niveau, flexdata)
|
||||
function savekenmerkwaarden(module, refkey, kenmerkniveau, flexdata)
|
||||
{
|
||||
for (kenmerk = 0; kenmerk < flexdata.length; kenmerk++)
|
||||
for (kenmerkkey in flexdata)
|
||||
{
|
||||
var sql = "INSERT INTO fac_kenmwaarden"
|
||||
+ " (fac_kenmwaarden_module"
|
||||
+ " , fac_kenmwaarden_refkey"
|
||||
+ (niveau
|
||||
+ (kenmerkniveau
|
||||
? " , fac_kenmwaarden_niveau"
|
||||
: "")
|
||||
+ " , fac_kenmwaarden_kenmerk_key"
|
||||
@@ -1895,29 +1922,29 @@ function savekenmerkwaarden(module, refkey, niveau, flexdata)
|
||||
+ " )"
|
||||
+ " VALUES (" + safe.quoted_sql(module)
|
||||
+ " , " + refkey
|
||||
+ (niveau
|
||||
? " , " + safe.quoted_sql(niveau)
|
||||
+ (kenmerkniveau
|
||||
? " , " + safe.quoted_sql(kenmerkniveau)
|
||||
: "")
|
||||
+ " , " + flexdata[kenmerk].id
|
||||
+ " , " + safe.quoted_sql(flexdata[kenmerk].value)
|
||||
+ " , " + safe.quoted_sql(flexdata[kenmerk].type)
|
||||
+ " , " + flexdata[kenmerk].expr
|
||||
+ " , " + flexdata[kenmerkkey].id
|
||||
+ " , " + safe.quoted_sql(flexdata[kenmerkkey].value)
|
||||
+ " , " + safe.quoted_sql(flexdata[kenmerkkey].type)
|
||||
+ " , " + flexdata[kenmerkkey].expr
|
||||
+ " , " + user_key
|
||||
+ " )";
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
}
|
||||
|
||||
function evaluateflexexpresions(module, refkey)
|
||||
function evaluateflexexpressions(module, refkey, savetodb)
|
||||
{ // Berekening van de expressie kenmerken.
|
||||
var sql = "BEGIN flx.evaluateflexexpresions(" + safe.quoted_sql(module) + ", " + refkey + ", " + user_key + "); END;";
|
||||
var sql = "BEGIN flx.evaluateflexexpressions(" + safe.quoted_sql(module) + ", " + refkey + ", " + user_key + ", " + (savetodb? 1 : 0) + "); END;";
|
||||
try
|
||||
{
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
var message = "kenmerk_common.inc (evaluateflexexpresions): Error writing flex expression\n" + e.description;
|
||||
var message = "kenmerk_common.inc (evaluateflexexpressions): Error writing flex expression\n" + e.description;
|
||||
__DoLog(message);
|
||||
abort_with_warning(message);
|
||||
}
|
||||
@@ -1984,13 +2011,13 @@ function flexkenmerken2jsondata(params)
|
||||
// Ook nodig voor correctere tracking
|
||||
if ((kt == "S" || kt == "R") && kv == "-1") kv = ""; // anders zouden we '-1' opslaan
|
||||
|
||||
jsondata.push( { id: kk,
|
||||
jsondata[kk] = { id: kk,
|
||||
//name: "",
|
||||
type: kt,
|
||||
value: kv,
|
||||
expr: (ke? 1 : 0)
|
||||
}
|
||||
);
|
||||
expr: (ke? 1 : 0),
|
||||
kfieldid: flex
|
||||
};
|
||||
}
|
||||
}
|
||||
return jsondata;
|
||||
|
||||
@@ -257,4 +257,28 @@ function xmlNodeDetails(key, xmlnode)
|
||||
}
|
||||
if (url != "")
|
||||
FcltMgr.openDetail(url, "<%=L("lcl_bes_srtprod")%>", {callback: FcltMgr.reload});
|
||||
}
|
||||
}
|
||||
|
||||
function callback_flex_expr_info(json)
|
||||
{
|
||||
for (var kenmerk=0; kenmerk < json.length; kenmerk++)
|
||||
{
|
||||
$("#" + json[kenmerk].kfieldid + "val").val(json[kenmerk].waarde);
|
||||
}
|
||||
}
|
||||
|
||||
function calculateFlexExpressions(module, refkey, niveau, nameprefix, extraserie)
|
||||
{
|
||||
var params = $("[name=u2]").serialize()
|
||||
+ "&module=" + module
|
||||
+ "&refkey=" + refkey
|
||||
+ "&niveau=" + niveau
|
||||
+ "&nameprefix=" + nameprefix
|
||||
+ "&extraserie=" + (extraserie? 1 : 0);
|
||||
|
||||
$.post("../Shared/calculate_flex_expr.asp",
|
||||
params,
|
||||
FcltCallbackAndThenAlways(callback_flex_expr_info),
|
||||
"json");
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user