PLAT#53239: NEN conditiescore als filter + kolom in locatie + gebouw + objectenscherm.
svn path=/Website/branches/v2018.1/; revision=38615
This commit is contained in:
125
APPL/INS/ins.inc
125
APPL/INS/ins.inc
@@ -1014,7 +1014,7 @@ ins = {checkAutLevel:
|
|||||||
},
|
},
|
||||||
|
|
||||||
func_get_nextdate: // Bepaal de volgende inspectie datum.
|
func_get_nextdate: // Bepaal de volgende inspectie datum.
|
||||||
function _func_get_nextdate(pins_key, psrtcont_key, pscen_key)
|
function _func_get_nextdate(pins_key, psrtcont_key, pscen_key, params)
|
||||||
{
|
{
|
||||||
var mjb_freeze_year = S("mjb_freeze_year");
|
var mjb_freeze_year = S("mjb_freeze_year");
|
||||||
var nextdate = null;
|
var nextdate = null;
|
||||||
@@ -1126,7 +1126,7 @@ ins = {checkAutLevel:
|
|||||||
{ // Bereken de volgende inspectiedatum. Het object is minstens 1 keer geinspecteerd.
|
{ // Bereken de volgende inspectiedatum. Het object is minstens 1 keer geinspecteerd.
|
||||||
sql = "SELECT ins.nextcyclusdate (" + pins_key
|
sql = "SELECT ins.nextcyclusdate (" + pins_key
|
||||||
+ ", " + psrtcont_key
|
+ ", " + psrtcont_key
|
||||||
+ ", " + (mjob? pscen_key : "1")
|
+ ", " + (params && params.mjob? pscen_key : "1")
|
||||||
+ ", 1) nextdate FROM DUAL";
|
+ ", 1) nextdate FROM DUAL";
|
||||||
var oRsN = Oracle.Execute(sql);
|
var oRsN = Oracle.Execute(sql);
|
||||||
nextdate = new Date(oRsN("nextdate").Value);
|
nextdate = new Date(oRsN("nextdate").Value);
|
||||||
@@ -1186,6 +1186,7 @@ ins = {checkAutLevel:
|
|||||||
getobjectinspect_sql:
|
getobjectinspect_sql:
|
||||||
function (pautfunction, params)
|
function (pautfunction, params)
|
||||||
{ // Lever de objecten of inpectie sql op.
|
{ // Lever de objecten of inpectie sql op.
|
||||||
|
var ins_score_enabled = S("ins_score_enabled") == 1;
|
||||||
var urole = params.urole;
|
var urole = params.urole;
|
||||||
var fronto = (urole == "fo");
|
var fronto = (urole == "fo");
|
||||||
var backo = (urole == "bo");
|
var backo = (urole == "bo");
|
||||||
@@ -2240,7 +2241,7 @@ ins = {checkAutLevel:
|
|||||||
sql_ex += getKenmerkSql("INS", "i.ins_deel_key");
|
sql_ex += getKenmerkSql("INS", "i.ins_deel_key");
|
||||||
|
|
||||||
var sql_score = "";
|
var sql_score = "";
|
||||||
if (mjob)
|
if (mjob && ins_score_enabled)
|
||||||
{
|
{
|
||||||
// Conditie score.
|
// Conditie score.
|
||||||
// Niet gemeten objecten doen wel mee in dit filter. Deze objecten worden dus niet getoond als er een waarde is ingevuld.
|
// Niet gemeten objecten doen wel mee in dit filter. Deze objecten worden dus niet getoond als er een waarde is ingevuld.
|
||||||
@@ -2724,6 +2725,7 @@ ins = {checkAutLevel:
|
|||||||
getmjblist_sql:
|
getmjblist_sql:
|
||||||
function (params)
|
function (params)
|
||||||
{ // Lever de mjbsearchlist sql op.
|
{ // Lever de mjbsearchlist sql op.
|
||||||
|
var ins_score_enabled = S("ins_score_enabled") == 1;
|
||||||
var inflatiepct = S("mjb_inflation");
|
var inflatiepct = S("mjb_inflation");
|
||||||
var inflatiefactor = 1 + (inflatiepct / 100);
|
var inflatiefactor = 1 + (inflatiepct / 100);
|
||||||
var mjb_start_year = S("mjb_start_year");
|
var mjb_start_year = S("mjb_start_year");
|
||||||
@@ -3905,7 +3907,7 @@ ins = {checkAutLevel:
|
|||||||
fields.push("alg_district_omschrijving");
|
fields.push("alg_district_omschrijving");
|
||||||
if (groupby == 2 || groupby == 3)
|
if (groupby == 2 || groupby == 3)
|
||||||
{
|
{
|
||||||
if (groupby == 2)
|
if (groupby == 2 && ins_score_enabled)
|
||||||
fields.push("alg_locatie_mjb_score1");
|
fields.push("alg_locatie_mjb_score1");
|
||||||
fields.push("alg_locatie_key");
|
fields.push("alg_locatie_key");
|
||||||
fields.push("alg_locatie_code");
|
fields.push("alg_locatie_code");
|
||||||
@@ -3914,7 +3916,8 @@ ins = {checkAutLevel:
|
|||||||
{
|
{
|
||||||
fields.push("alg_gebouw_key");
|
fields.push("alg_gebouw_key");
|
||||||
fields.push("alg_gebouw_omschrijving");
|
fields.push("alg_gebouw_omschrijving");
|
||||||
fields.push("alg_gebouw_mjb_score1");
|
if (ins_score_enabled)
|
||||||
|
fields.push("alg_gebouw_mjb_score1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3930,9 +3933,12 @@ ins = {checkAutLevel:
|
|||||||
{
|
{
|
||||||
fields.push("ins_deel_aantal");
|
fields.push("ins_deel_aantal");
|
||||||
fields.push("ins_srtdeel_eenheid");
|
fields.push("ins_srtdeel_eenheid");
|
||||||
fields.push("ins_deel_mjb_score1");
|
if (ins_score_enabled)
|
||||||
fields.push("ins_srtdeel_mjb_grensscore1");
|
{
|
||||||
fields.push("ins_deel_mjb_score2");
|
fields.push("ins_deel_mjb_score1");
|
||||||
|
fields.push("ins_srtdeel_mjb_grensscore1");
|
||||||
|
fields.push("ins_deel_mjb_score2");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var sql_cost = "SELECT " + fields.join(", ")
|
var sql_cost = "SELECT " + fields.join(", ")
|
||||||
@@ -3982,59 +3988,62 @@ ins = {checkAutLevel:
|
|||||||
sql += " WHERE ins_scenario_key = 1";
|
sql += " WHERE ins_scenario_key = 1";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Conditie score.
|
if (ins_score_enabled)
|
||||||
// Niet gemeten objecten doen wel mee in dit filter. Deze objecten worden dus niet getoond als er een waarde is ingevuld.
|
|
||||||
var mjb_score = "ins_deel_mjb_score1";
|
|
||||||
if (groupby == 2)
|
|
||||||
mjb_score = "alg_locatie_mjb_score1";
|
|
||||||
else if (groupby == 3)
|
|
||||||
mjb_score = "alg_gebouw_mjb_score1";
|
|
||||||
|
|
||||||
if (fitness_score1_from > 0)
|
|
||||||
sql += " AND " + mjb_score + " >= " + fitness_score1_from;
|
|
||||||
if (fitness_score1_through > 0)
|
|
||||||
sql += " AND " + mjb_score + " <= " + fitness_score1_through;
|
|
||||||
|
|
||||||
// Negatieve afwijking (=dus slechter) van de conditiescore (ins_deel_mjb_score1) in hele getallen t.o.v. de norm (ins_srtdeel_mjb_grensscore1) .
|
|
||||||
// Wanneer een element NIET is gemeten (conditiemeting is niet geweest) dan is ins_deel_score1 LEEG,
|
|
||||||
// Dan doet het elelement niet mee in het filter "afwijking". Want er is dan per defintie geen afwijking, omdat dit niet bekend is.
|
|
||||||
var fitness_score1_neg = [];
|
|
||||||
if (fitness_score1_from_neg > 0 || fitness_score1_through_neg > 0)
|
|
||||||
{
|
{
|
||||||
if (fitness_score1_from_neg > 0)
|
// Conditie score.
|
||||||
fitness_score1_neg.push("ins_deel_mjb_score1 >= (ins_srtdeel_mjb_grensscore1 + " + fitness_score1_from_neg + ")");
|
// Niet gemeten objecten doen wel mee in dit filter. Deze objecten worden dus niet getoond als er een waarde is ingevuld.
|
||||||
if (fitness_score1_through_neg > 0)
|
var mjb_score = "ins_deel_mjb_score1";
|
||||||
{
|
if (groupby == 2)
|
||||||
fitness_score1_neg.push("ins_deel_mjb_score1 <= (ins_srtdeel_mjb_grensscore1 + " + fitness_score1_through_neg + ")");
|
mjb_score = "alg_locatie_mjb_score1";
|
||||||
if (fitness_score1_from_neg == -1)
|
else if (groupby == 3)
|
||||||
fitness_score1_neg.push("ins_deel_mjb_score1 > ins_srtdeel_mjb_grensscore1");
|
mjb_score = "alg_gebouw_mjb_score1";
|
||||||
}
|
|
||||||
sql += "AND (" + fitness_score1_neg.join(" AND ") + ")"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Positieve afwijking (=dus beter) van de conditiescore (ins_deel_mjb_score1) in hele getallen t.o.v. de norm (ins_srtdeel_mjb_grensscore1) .
|
if (fitness_score1_from > 0)
|
||||||
// Wanneer een element NIET is gemeten (conditiemeting is niet geweest) dan is ins_deel_score1 LEEG,
|
sql += " AND " + mjb_score + " >= " + fitness_score1_from;
|
||||||
// Dan doet het elelement niet mee in het filter "afwijking". Want er is dan per defintie geen afwijking, omdat dit niet bekend is.
|
if (fitness_score1_through > 0)
|
||||||
var fitness_score1_pos = [];
|
sql += " AND " + mjb_score + " <= " + fitness_score1_through;
|
||||||
if (fitness_score1_from_pos > 0 || fitness_score1_through_pos > 0)
|
|
||||||
{
|
|
||||||
if (fitness_score1_from_pos > 0)
|
|
||||||
fitness_score1_pos.push("ins_deel_mjb_score1 <= (ins_srtdeel_mjb_grensscore1 - " + fitness_score1_from_pos + ")");
|
|
||||||
if (fitness_score1_through_pos > 0)
|
|
||||||
{
|
|
||||||
fitness_score1_pos.push("ins_deel_mjb_score1 >= (ins_srtdeel_mjb_grensscore1 - " + fitness_score1_through_pos + ")");
|
|
||||||
if (fitness_score1_from_pos == -1)
|
|
||||||
fitness_score1_pos.push("ins_deel_mjb_score1 < ins_srtdeel_mjb_grensscore1");
|
|
||||||
}
|
|
||||||
sql += "AND (" + fitness_score1_pos.join(" AND ") + ")"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Prioriteitsscore.
|
// Negatieve afwijking (=dus slechter) van de conditiescore (ins_deel_mjb_score1) in hele getallen t.o.v. de norm (ins_srtdeel_mjb_grensscore1) .
|
||||||
// Niet gemeten objecten doen wel mee in dit filter. Deze objecten worden dus niet getoond als er een waarde is ingevuld.
|
// Wanneer een element NIET is gemeten (conditiemeting is niet geweest) dan is ins_deel_score1 LEEG,
|
||||||
if (priority_score2_from > 0)
|
// Dan doet het elelement niet mee in het filter "afwijking". Want er is dan per defintie geen afwijking, omdat dit niet bekend is.
|
||||||
sql += " AND ins_deel_mjb_score2 >= " + priority_score2_from;
|
var fitness_score1_neg = [];
|
||||||
if (priority_score2_through > 0)
|
if (fitness_score1_from_neg > 0 || fitness_score1_through_neg > 0)
|
||||||
sql += " AND ins_deel_mjb_score2 <= " + priority_score2_through;
|
{
|
||||||
|
if (fitness_score1_from_neg > 0)
|
||||||
|
fitness_score1_neg.push("ins_deel_mjb_score1 >= (ins_srtdeel_mjb_grensscore1 + " + fitness_score1_from_neg + ")");
|
||||||
|
if (fitness_score1_through_neg > 0)
|
||||||
|
{
|
||||||
|
fitness_score1_neg.push("ins_deel_mjb_score1 <= (ins_srtdeel_mjb_grensscore1 + " + fitness_score1_through_neg + ")");
|
||||||
|
if (fitness_score1_from_neg == -1)
|
||||||
|
fitness_score1_neg.push("ins_deel_mjb_score1 > ins_srtdeel_mjb_grensscore1");
|
||||||
|
}
|
||||||
|
sql += "AND (" + fitness_score1_neg.join(" AND ") + ")"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Positieve afwijking (=dus beter) van de conditiescore (ins_deel_mjb_score1) in hele getallen t.o.v. de norm (ins_srtdeel_mjb_grensscore1) .
|
||||||
|
// Wanneer een element NIET is gemeten (conditiemeting is niet geweest) dan is ins_deel_score1 LEEG,
|
||||||
|
// Dan doet het elelement niet mee in het filter "afwijking". Want er is dan per defintie geen afwijking, omdat dit niet bekend is.
|
||||||
|
var fitness_score1_pos = [];
|
||||||
|
if (fitness_score1_from_pos > 0 || fitness_score1_through_pos > 0)
|
||||||
|
{
|
||||||
|
if (fitness_score1_from_pos > 0)
|
||||||
|
fitness_score1_pos.push("ins_deel_mjb_score1 <= (ins_srtdeel_mjb_grensscore1 - " + fitness_score1_from_pos + ")");
|
||||||
|
if (fitness_score1_through_pos > 0)
|
||||||
|
{
|
||||||
|
fitness_score1_pos.push("ins_deel_mjb_score1 >= (ins_srtdeel_mjb_grensscore1 - " + fitness_score1_through_pos + ")");
|
||||||
|
if (fitness_score1_from_pos == -1)
|
||||||
|
fitness_score1_pos.push("ins_deel_mjb_score1 < ins_srtdeel_mjb_grensscore1");
|
||||||
|
}
|
||||||
|
sql += "AND (" + fitness_score1_pos.join(" AND ") + ")"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Prioriteitsscore.
|
||||||
|
// Niet gemeten objecten doen wel mee in dit filter. Deze objecten worden dus niet getoond als er een waarde is ingevuld.
|
||||||
|
if (priority_score2_from > 0)
|
||||||
|
sql += " AND ins_deel_mjb_score2 >= " + priority_score2_from;
|
||||||
|
if (priority_score2_through > 0)
|
||||||
|
sql += " AND ins_deel_mjb_score2 <= " + priority_score2_through;
|
||||||
|
}
|
||||||
|
|
||||||
if (fulldetails && sqlArray.length)
|
if (fulldetails && sqlArray.length)
|
||||||
sql += " AND ((" + sqlArray.join(") OR (") + "))";
|
sql += " AND ((" + sqlArray.join(") OR (") + "))";
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
FCLTHeader.Requires({plugins:["jQuery"],
|
FCLTHeader.Requires({plugins:["jQuery"],
|
||||||
js: ["../shared/kenmerk_js.asp", "../ins/ins_edit_deel.js", "../ins/bind.js"]})
|
js: ["../shared/kenmerk_js.asp", "../ins/ins_edit_deel.js", "../ins/bind.js"]})
|
||||||
|
|
||||||
|
var ins_score_enabled = S("ins_score_enabled") == 1;
|
||||||
var ins_key = getQParamInt("ins_key");
|
var ins_key = getQParamInt("ins_key");
|
||||||
var copy = (getQParamInt("ins_copy", 0) == 1);
|
var copy = (getQParamInt("ins_copy", 0) == 1);
|
||||||
var urole = getQParamSafe("urole");
|
var urole = getQParamSafe("urole");
|
||||||
@@ -807,10 +808,11 @@ var ins_deel_aantal = 1;
|
|||||||
if (isLendOut)
|
if (isLendOut)
|
||||||
ROFIELDTR("fld", "", L("lcl_obj_is_lent_out"));
|
ROFIELDTR("fld", "", L("lcl_obj_is_lent_out"));
|
||||||
|
|
||||||
if (S("mjb_enabled") == 1) {
|
if (ins_score_enabled)
|
||||||
ROFIELDTR("fldshort", L("lcl_ins_deel_mjb_score1"), mjb_score1, {suppressEmpty: true});
|
{
|
||||||
ROFIELDTR("fld", L("ins_srtdeel_mjb_grensscore1"), ins_srtdeel_mjb_grensscore1, {suppressEmpty: true});
|
ROFIELDTR("fldshort", L("lcl_ins_deel_mjb_score1"), mjb_score1, {suppressEmpty: true});
|
||||||
ROFIELDTR("fldshort", L("lcl_ins_deel_mjb_score2"), mjb_score2, {suppressEmpty: true});
|
ROFIELDTR("fld", L("ins_srtdeel_mjb_grensscore1"), ins_srtdeel_mjb_grensscore1, {suppressEmpty: true});
|
||||||
|
ROFIELDTR("fldshort", L("lcl_ins_deel_mjb_score2"), mjb_score2, {suppressEmpty: true});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ var urole = "bo"; // eventjes voor de flex
|
|||||||
var authparams = user.checkAutorisation("WEB_INSMGT");
|
var authparams = user.checkAutorisation("WEB_INSMGT");
|
||||||
user.auth_required_or_abort(authparams.ALGwritelevel < 9 && authparams.PRSwritelevel < 9);
|
user.auth_required_or_abort(authparams.ALGwritelevel < 9 && authparams.PRSwritelevel < 9);
|
||||||
|
|
||||||
|
var ins_score_enabled = S("ins_score_enabled") == 1;
|
||||||
var srtdeel_key = getQParamInt("srtdeel_key", -1);
|
var srtdeel_key = getQParamInt("srtdeel_key", -1);
|
||||||
|
|
||||||
if (srtdeel_key > 0) // bestaande ins_utel/cilinder
|
if (srtdeel_key > 0) // bestaande ins_utel/cilinder
|
||||||
@@ -210,7 +211,7 @@ else
|
|||||||
html: "title='" + L("lcl_obj_symbol_upload") + "' onclick='UploadImage()'"
|
html: "title='" + L("lcl_obj_symbol_upload") + "' onclick='UploadImage()'"
|
||||||
}
|
}
|
||||||
ROFIELDTR("image_button", L("lcl_obj_image_upload"), L("lcl_fg_upload"), params);
|
ROFIELDTR("image_button", L("lcl_obj_image_upload"), L("lcl_fg_upload"), params);
|
||||||
if (S("mjb_enabled") == 1)
|
if (ins_score_enabled)
|
||||||
RWFIELDTR("srtdeel_grensscore1", "fldnum", L("ins_srtdeel_mjb_grensscore1"), srtdeel.srtdeel_mjb_grensscore1,
|
RWFIELDTR("srtdeel_grensscore1", "fldnum", L("ins_srtdeel_mjb_grensscore1"), srtdeel.srtdeel_mjb_grensscore1,
|
||||||
{ datatype: "number",
|
{ datatype: "number",
|
||||||
maxlength: 10
|
maxlength: 10
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ FCLTHeader.Requires({ plugins:["jQuery"],
|
|||||||
var authparams = user.checkAutorisation("WEB_INSMGT");
|
var authparams = user.checkAutorisation("WEB_INSMGT");
|
||||||
user.auth_required_or_abort(authparams.ALGwritelevel < 9 && authparams.PRSwritelevel < 9);
|
user.auth_required_or_abort(authparams.ALGwritelevel < 9 && authparams.PRSwritelevel < 9);
|
||||||
|
|
||||||
|
var ins_score_enabled = S("ins_score_enabled") == 1;
|
||||||
var srtdeel_key = getQParamInt("srtdeel_key", -1);
|
var srtdeel_key = getQParamInt("srtdeel_key", -1);
|
||||||
var isNew = (srtdeel_key < 0);
|
var isNew = (srtdeel_key < 0);
|
||||||
|
|
||||||
@@ -41,12 +42,13 @@ var fields = [ { dbs: "ins_srtgroep_key", typ: "key", frm:
|
|||||||
{ dbs: "prs_bedrijf_key", typ: "key", frm: "prs_bedrijf_key", track: L("lcl_ins_leverancier"), foreign: "prs_bedrijf" },
|
{ dbs: "prs_bedrijf_key", typ: "key", frm: "prs_bedrijf_key", track: L("lcl_ins_leverancier"), foreign: "prs_bedrijf" },
|
||||||
{ dbs: "ins_srtdeel_vervaldatum", typ: "date", frm: "vervaldatum", track: L("lcl_ins_vervaldatum") },
|
{ dbs: "ins_srtdeel_vervaldatum", typ: "date", frm: "vervaldatum", track: L("lcl_ins_vervaldatum") },
|
||||||
{ dbs: "ins_srtdeel_image", typ: "varchar", frm: "srtdeel_image", track: L("lcl_ins_image") },
|
{ dbs: "ins_srtdeel_image", typ: "varchar", frm: "srtdeel_image", track: L("lcl_ins_image") },
|
||||||
{ dbs: "ins_srtdeel_mjb_grensscore1", typ: "float", frm: "srtdeel_grensscore1", track: L("ins_srtdeel_mjb_grensscore1") },
|
|
||||||
{ dbs: "ins_srtdeel_module", typ: "varchar", val: "INS" },
|
{ dbs: "ins_srtdeel_module", typ: "varchar", val: "INS" },
|
||||||
{ dbs: "ins_srtdeel_binding", typ: "number", val: binding, track: L("lcl_obj_bind") }];
|
{ dbs: "ins_srtdeel_binding", typ: "number", val: binding, track: L("lcl_obj_bind") }];
|
||||||
|
|
||||||
var warning = "";
|
if (ins_score_enabled)
|
||||||
|
fields.push({ dbs: "ins_srtdeel_mjb_grensscore1", typ: "float", frm: "srtdeel_grensscore1", track: L("ins_srtdeel_mjb_grensscore1") });
|
||||||
|
|
||||||
|
var warning = "";
|
||||||
var insUpd = { trackarray: [] };
|
var insUpd = { trackarray: [] };
|
||||||
if (srtdeel_key > 0)
|
if (srtdeel_key > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -602,7 +602,7 @@ else
|
|||||||
// 2) De laatste inspectie is NIET succesvol voltooid. De volgende is in het freeze jaar.
|
// 2) De laatste inspectie is NIET succesvol voltooid. De volgende is in het freeze jaar.
|
||||||
// 3) De laatste inspectie is geaccordeerd/bevroren/gestart(2): De volgende is een periode verder als het freeze jaar.
|
// 3) De laatste inspectie is geaccordeerd/bevroren/gestart(2): De volgende is een periode verder als het freeze jaar.
|
||||||
// 4) Er is geen inspectie geweest of gestart.
|
// 4) Er is geen inspectie geweest of gestart.
|
||||||
var nextdate = ins.func_get_nextdate(ingesloten[i].ins_key, ingesloten[i].srtcont_key, ingesloten[i].scen_key);
|
var nextdate = ins.func_get_nextdate(ingesloten[i].ins_key, ingesloten[i].srtcont_key, ingesloten[i].scen_key, {mjob: mjob});
|
||||||
|
|
||||||
|
|
||||||
var fields = [{dbs: "ins_deelsrtcontrole_key", typ: "key", seq: "ins_s_ins_deelsrtcontrole_key"},
|
var fields = [{dbs: "ins_deelsrtcontrole_key", typ: "key", seq: "ins_s_ins_deelsrtcontrole_key"},
|
||||||
@@ -947,7 +947,7 @@ else
|
|||||||
if (!oRs.eof)
|
if (!oRs.eof)
|
||||||
{ // Bereken de volgende orginele inspectiedatum (nextdate).
|
{ // Bereken de volgende orginele inspectiedatum (nextdate).
|
||||||
// Het is schuiven vanuit mjob scherm. De laatste inspectie kan niet succesvol zijn. Dus ins.nextcyclusdate(ins_key, srtcont_key, scen_key) kan ik hier niet gebruiken.
|
// Het is schuiven vanuit mjob scherm. De laatste inspectie kan niet succesvol zijn. Dus ins.nextcyclusdate(ins_key, srtcont_key, scen_key) kan ik hier niet gebruiken.
|
||||||
var nextdate = ins.func_get_nextdate(ingesloten[0].ins_key, ingesloten[0].srtcont_key, ingesloten[0].scen_key);
|
var nextdate = ins.func_get_nextdate(ingesloten[0].ins_key, ingesloten[0].srtcont_key, ingesloten[0].scen_key, {mjob: mjob});
|
||||||
|
|
||||||
// Is jaar plandatum gelijk aan jaar orginele datum?
|
// Is jaar plandatum gelijk aan jaar orginele datum?
|
||||||
var plandatum_jaar = plandatum.getFullYear();
|
var plandatum_jaar = plandatum.getFullYear();
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ function ins_list (pautfunction, params)
|
|||||||
var authparamsINSMAN = user.checkAutorisation("WEB_INSMAN", true);
|
var authparamsINSMAN = user.checkAutorisation("WEB_INSMAN", true);
|
||||||
var hasWriteINSMAN = (authparamsINSMAN && authparamsINSMAN.ALGwritelevel < 9 && authparamsINSMAN.PRSwritelevel < 9)
|
var hasWriteINSMAN = (authparamsINSMAN && authparamsINSMAN.ALGwritelevel < 9 && authparamsINSMAN.PRSwritelevel < 9)
|
||||||
|
|
||||||
|
var ins_score_enabled = S("ins_score_enabled") == 1;
|
||||||
var urole = params.urole;
|
var urole = params.urole;
|
||||||
var fronto = (urole == "fo");
|
var fronto = (urole == "fo");
|
||||||
var backo = (urole == "bo");
|
var backo = (urole == "bo");
|
||||||
@@ -114,7 +115,6 @@ function ins_list (pautfunction, params)
|
|||||||
var checkout = params.checkout;
|
var checkout = params.checkout;
|
||||||
var inacObjIncl = params.inacObjIncl;
|
var inacObjIncl = params.inacObjIncl;
|
||||||
var inspDone = params.inspDone;
|
var inspDone = params.inspDone;
|
||||||
var mjob = params.mjob;
|
|
||||||
var withflex = params.withflex;
|
var withflex = params.withflex;
|
||||||
|
|
||||||
var fitness_score1_from = params.fitness_score1_from;
|
var fitness_score1_from = params.fitness_score1_from;
|
||||||
@@ -938,13 +938,13 @@ function ins_list (pautfunction, params)
|
|||||||
if (!fgraph)
|
if (!fgraph)
|
||||||
rst.addColumn(new Column({caption: L("lcl_obj_owner"), content: "uitgeleend_aan", combine: true}));
|
rst.addColumn(new Column({caption: L("lcl_obj_owner"), content: "uitgeleend_aan", combine: true}));
|
||||||
}
|
}
|
||||||
if (params.mjob)
|
if (ins_score_enabled)
|
||||||
{
|
{
|
||||||
rst.addColumn(new Column({caption: L("lcl_discipline"), content: "ins_disc_oms"}));
|
rst.addColumn(new Column({caption: L("lcl_discipline"), content: "ins_disc_oms"}));
|
||||||
rst.addColumn(new Column({caption: L("lcl_obj_group"), content: "ins_groep_oms"}));
|
rst.addColumn(new Column({caption: L("lcl_obj_group"), content: "ins_groep_oms"}));
|
||||||
}
|
}
|
||||||
rst.addColumn(new Column({caption: L("lcl_obj_sort"), content: "soort"}));
|
rst.addColumn(new Column({caption: L("lcl_obj_sort"), content: "soort"}));
|
||||||
if (params.mjob)
|
if (ins_score_enabled)
|
||||||
{
|
{
|
||||||
rst.addColumn(new Column({caption: L("lcl_ins_deel_mjb_score1"), content: "ins_deel_mjb_score1", align: "center"}));
|
rst.addColumn(new Column({caption: L("lcl_ins_deel_mjb_score1"), content: "ins_deel_mjb_score1", align: "center"}));
|
||||||
rst.addColumn(new Column({caption: L("ins_srtdeel_mjb_grensscore1"), content: "ins_srtdeel_mjb_grensscore1", align: "center"}));
|
rst.addColumn(new Column({caption: L("ins_srtdeel_mjb_grensscore1"), content: "ins_srtdeel_mjb_grensscore1", align: "center"}));
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ FCLTHeader.Requires({ plugins:["suggest", "jQuery", "kenmerk"],
|
|||||||
});
|
});
|
||||||
|
|
||||||
/***** Get webform parameters *****/
|
/***** Get webform parameters *****/
|
||||||
|
var ins_score_enabled = S("ins_score_enabled") == 1;
|
||||||
var urole = getQParamSafe("urole");
|
var urole = getQParamSafe("urole");
|
||||||
var fronto = (urole == "fo");
|
var fronto = (urole == "fo");
|
||||||
var backo = (urole == "bo");
|
var backo = (urole == "bo");
|
||||||
@@ -71,9 +72,6 @@ var insAvail = getQParamInt("insAvail", 1) == 1; // Beschikbaar
|
|||||||
var insInspect = getQParamInt("inspect", 0) == 1; // inspectievelden toevoegen
|
var insInspect = getQParamInt("inspect", 0) == 1; // inspectievelden toevoegen
|
||||||
var inspBusy = getQParamInt("inspBusy", 0) == 1; // Gestarte/begonnen inspecties (status 2).
|
var inspBusy = getQParamInt("inspBusy", 0) == 1; // Gestarte/begonnen inspecties (status 2).
|
||||||
var inspClosed = getQParamInt("inspClosed", 0) == 1; // Afgemelde inspecties (status 5). Actie vereist.
|
var inspClosed = getQParamInt("inspClosed", 0) == 1; // Afgemelde inspecties (status 5). Actie vereist.
|
||||||
|
|
||||||
var mjob = getQParamInt("mjob", 0) == 1; // mjob mode
|
|
||||||
|
|
||||||
/***** End get webform parameters *****/
|
/***** End get webform parameters *****/
|
||||||
|
|
||||||
if (ctrdisc_key > 0)
|
if (ctrdisc_key > 0)
|
||||||
@@ -195,7 +193,6 @@ var authparams = user.checkAutorisation(autfunction);
|
|||||||
<form name="u2" target="workFrame" action="ins_search_list.asp" method="get">
|
<form name="u2" target="workFrame" action="ins_search_list.asp" method="get">
|
||||||
<input type=hidden name="urole" value="<%=urole%>">
|
<input type=hidden name="urole" value="<%=urole%>">
|
||||||
<input type=hidden name="autfunction" id="autfunction" value="<%=autfunction%>">
|
<input type=hidden name="autfunction" id="autfunction" value="<%=autfunction%>">
|
||||||
<input type=hidden name="mjob" id="mjob" value="<%=mjob?1:0%>">
|
|
||||||
<%
|
<%
|
||||||
if (fronto)
|
if (fronto)
|
||||||
{ %>
|
{ %>
|
||||||
@@ -385,112 +382,112 @@ var authparams = user.checkAutorisation(autfunction);
|
|||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
if (mjob)
|
if (ins_score_enabled)
|
||||||
{
|
{
|
||||||
// Conditie score
|
// Conditie score
|
||||||
%> <tr class="primsearch fldfitness_score" id="fitness_score">
|
%> <tr class="primsearch fldfitness_score" id="fitness_score">
|
||||||
<td>
|
<td>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="label">
|
<td class="label">
|
||||||
<label for="show_fitness_score_from"><%="Conditiescore"%>:</label> <% /* L("lcl_mjb_fitness_score") */ %>
|
<label for="show_fitness_score_from"><%="Conditiescore"%>:</label> <% /* L("lcl_mjb_fitness_score") */ %>
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align: right">
|
<td style="text-align: right">
|
||||||
<%="van"%> <% /* L("lcl_mjb_from") */ %>
|
<%="van"%> <% /* L("lcl_mjb_from") */ %>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</td>
|
</td>
|
||||||
<td class="score">
|
<td class="score">
|
||||||
<input type="text"
|
<input type="text"
|
||||||
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
||||||
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 6)"
|
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 6)"
|
||||||
id="fitness_score1_from"
|
id="fitness_score1_from"
|
||||||
name="fitness_score1_from"
|
name="fitness_score1_from"
|
||||||
class="fldflexN number "
|
class="fldflexN number "
|
||||||
value=""
|
value=""
|
||||||
maxlength="1">
|
maxlength="1">
|
||||||
<%="t/m"%> <% /* L("lcl_mjb_through") */ %>
|
<%="t/m"%> <% /* L("lcl_mjb_through") */ %>
|
||||||
<input type="text"
|
<input type="text"
|
||||||
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
||||||
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 6)"
|
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 6)"
|
||||||
id="fitness_score1_through"
|
id="fitness_score1_through"
|
||||||
name="fitness_score1_through"
|
name="fitness_score1_through"
|
||||||
class="fldflexN number "
|
class="fldflexN number "
|
||||||
value=""
|
value=""
|
||||||
maxlength="1">
|
maxlength="1">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<%
|
<%
|
||||||
// Grenswaarde conditie score
|
// Grenswaarde conditie score
|
||||||
%> <tr class="primsearch fldgwfitness_score" id="gwfitness_score">
|
%> <tr class="primsearch fldgwfitness_score" id="gwfitness_score">
|
||||||
<td>
|
<td>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="label">
|
<td class="label">
|
||||||
<label for="show_fitness_score_from"><%=L("ins_srtdeel_mjb_grensscore1")%>:</label>
|
<label for="show_fitness_score_from"><%=L("ins_srtdeel_mjb_grensscore1")%>:</label>
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align: right">
|
<td style="text-align: right">
|
||||||
<%="van"%> <% /* L("lcl_mjb_from") */ %>
|
<%="van"%> <% /* L("lcl_mjb_from") */ %>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</td>
|
</td>
|
||||||
<td class="score">
|
<td class="score">
|
||||||
<input type="text"
|
<input type="text"
|
||||||
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
||||||
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 6)"
|
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 6)"
|
||||||
id="gwfitness_score1_from"
|
id="gwfitness_score1_from"
|
||||||
name="gwfitness_score1_from"
|
name="gwfitness_score1_from"
|
||||||
class="fldflexN number "
|
class="fldflexN number "
|
||||||
value=""
|
value=""
|
||||||
maxlength="1">
|
maxlength="1">
|
||||||
<%="t/m"%> <% /* L("lcl_mjb_through") */ %>
|
<%="t/m"%> <% /* L("lcl_mjb_through") */ %>
|
||||||
<input type="text"
|
<input type="text"
|
||||||
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
||||||
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 6)"
|
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 6)"
|
||||||
id="gwfitness_score1_through"
|
id="gwfitness_score1_through"
|
||||||
name="gwfitness_score1_through"
|
name="gwfitness_score1_through"
|
||||||
class="fldflexN number "
|
class="fldflexN number "
|
||||||
value=""
|
value=""
|
||||||
maxlength="1">
|
maxlength="1">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<%
|
<%
|
||||||
// Prioriteitsscore
|
// Prioriteitsscore
|
||||||
%> <tr class="primsearch fldpriority_score" id="priority_score">
|
%> <tr class="primsearch fldpriority_score" id="priority_score">
|
||||||
<td>
|
<td>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="label">
|
<td class="label">
|
||||||
<label for="show_priority_score_from"><%="Prioriteit"%>:</label> <% /* L("lcl_mjb_priority_score") */ %>
|
<label for="show_priority_score_from"><%="Prioriteit"%>:</label> <% /* L("lcl_mjb_priority_score") */ %>
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align: right">
|
<td style="text-align: right">
|
||||||
<%="van"%> <% /* L("lcl_mjb_from") */ %>
|
<%="van"%> <% /* L("lcl_mjb_from") */ %>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</td>
|
</td>
|
||||||
<td class="score">
|
<td class="score">
|
||||||
<input type="text"
|
<input type="text"
|
||||||
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
||||||
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 9)"
|
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 9)"
|
||||||
id="priority_score2_from"
|
id="priority_score2_from"
|
||||||
name="priority_score2_from"
|
name="priority_score2_from"
|
||||||
class="fldflexN number "
|
class="fldflexN number "
|
||||||
value=""
|
value=""
|
||||||
maxlength="1">
|
maxlength="1">
|
||||||
<%="t/m"%>  <% /* L("lcl_mjb_through") */ %>
|
<%="t/m"%>  <% /* L("lcl_mjb_through") */ %>
|
||||||
<input type="text"
|
<input type="text"
|
||||||
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
||||||
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 9)"
|
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 9)"
|
||||||
id="priority_score2_through"
|
id="priority_score2_through"
|
||||||
name="priority_score2_through"
|
name="priority_score2_through"
|
||||||
class="fldflexN number "
|
class="fldflexN number "
|
||||||
value=""
|
value=""
|
||||||
maxlength="1">
|
maxlength="1">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<% }
|
<% }
|
||||||
if (backo)
|
if (backo)
|
||||||
{ %>
|
{ %>
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
FCLTHeader.Requires({ plugins: ["jQuery"],
|
FCLTHeader.Requires({ plugins: ["jQuery"],
|
||||||
js: ["../Shared/kenmerk_js.asp"] })
|
js: ["../Shared/kenmerk_js.asp"] })
|
||||||
|
|
||||||
|
var ins_score_enabled = S("ins_score_enabled") == 1;
|
||||||
var urole = getQParamSafe("urole");
|
var urole = getQParamSafe("urole");
|
||||||
var ins_key = getQParamInt("ins_key");
|
var ins_key = getQParamInt("ins_key");
|
||||||
|
|
||||||
@@ -420,11 +421,12 @@ oRs.Close();
|
|||||||
if (lent_out)
|
if (lent_out)
|
||||||
ROFIELDTR("fld", "", L("lcl_obj_is_lent_out"));
|
ROFIELDTR("fld", "", L("lcl_obj_is_lent_out"));
|
||||||
|
|
||||||
//if (S("mjb_enabled") == '1') {
|
if (ins_score_enabled)
|
||||||
ROFIELDTR("fld", L("lcl_ins_deel_mjb_score1"), ins_deel_mjb_score1, {suppressEmpty: true});
|
{
|
||||||
ROFIELDTR("fld", L("ins_srtdeel_mjb_grensscore1"), ins_srtdeel_mjb_grensscore1, {suppressEmpty: true});
|
ROFIELDTR("fld", L("lcl_ins_deel_mjb_score1"), ins_deel_mjb_score1, {suppressEmpty: true});
|
||||||
ROFIELDTR("fld", L("lcl_ins_deel_mjb_score2"), ins_deel_mjb_score2, {suppressEmpty: true});
|
ROFIELDTR("fld", L("ins_srtdeel_mjb_grensscore1"), ins_srtdeel_mjb_grensscore1, {suppressEmpty: true});
|
||||||
//}
|
ROFIELDTR("fld", L("lcl_ins_deel_mjb_score2"), ins_deel_mjb_score2, {suppressEmpty: true});
|
||||||
|
}
|
||||||
|
|
||||||
if (tekenbaar)
|
if (tekenbaar)
|
||||||
if (getekend)
|
if (getekend)
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ var urole = "bo"; // eventjes voor de flex
|
|||||||
|
|
||||||
var authparamsINS_BOF = user.checkAutorisation("WEB_INSMGT");
|
var authparamsINS_BOF = user.checkAutorisation("WEB_INSMGT");
|
||||||
|
|
||||||
|
var ins_score_enabled = S("ins_score_enabled") == 1;
|
||||||
var srtdeel_key = getQParamInt("srtdeel_key");
|
var srtdeel_key = getQParamInt("srtdeel_key");
|
||||||
|
|
||||||
var sql = "SELECT *"
|
var sql = "SELECT *"
|
||||||
@@ -133,7 +134,8 @@ oRs.close();
|
|||||||
});
|
});
|
||||||
ROFIELDTR("fld", L("lcl_ins_vervaldatum"), toDateString(srtdeel.srtdeel_vervaldatum), {suppressEmpty: true});
|
ROFIELDTR("fld", L("lcl_ins_vervaldatum"), toDateString(srtdeel.srtdeel_vervaldatum), {suppressEmpty: true});
|
||||||
ROFIELDTR("fld", L("lcl_ins_image"), srtdeel.srtdeel_image, {suppressEmpty: true } );
|
ROFIELDTR("fld", L("lcl_ins_image"), srtdeel.srtdeel_image, {suppressEmpty: true } );
|
||||||
ROFIELDTR("fld", L("ins_srtdeel_mjb_grensscore1"), srtdeel.srtdeel_mjb_grensscore1, {suppressEmpty: true});
|
if (ins_score_enabled)
|
||||||
|
ROFIELDTR("fld", L("ins_srtdeel_mjb_grensscore1"), srtdeel.srtdeel_mjb_grensscore1, {suppressEmpty: true});
|
||||||
BLOCK_END();
|
BLOCK_END();
|
||||||
|
|
||||||
BLOCK_START("insBind", L("lcl_obj_bind"));
|
BLOCK_START("insBind", L("lcl_obj_bind"));
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ FCLTHeader.Requires({ plugins:["suggest", "jQuery", "kenmerk"],
|
|||||||
});
|
});
|
||||||
|
|
||||||
/***** Get webform parameters *****/
|
/***** Get webform parameters *****/
|
||||||
|
var ins_score_enabled = S("ins_score_enabled") == 1;
|
||||||
var urole = getQParamSafe("urole", "bo");
|
var urole = getQParamSafe("urole", "bo");
|
||||||
var autosearch = getQParamInt("autosearch", 0) == 1;
|
var autosearch = getQParamInt("autosearch", 0) == 1;
|
||||||
var mode = getQParamInt("mode", 1); // Schermmode begroting 1=aankomende jaren (=default), 2=lopende jaar/jaren, 3=geschiedenis.
|
var mode = getQParamInt("mode", 1); // Schermmode begroting 1=aankomende jaren (=default), 2=lopende jaar/jaren, 3=geschiedenis.
|
||||||
@@ -103,9 +104,9 @@ var authparamsCTRUSE = user.checkAutorisation("WEB_CTRUSE");
|
|||||||
<% FCLTHeader.Generate(); %>
|
<% FCLTHeader.Generate(); %>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
var urole = "<%=urole%>";
|
var urole = "<%=urole%>";
|
||||||
var scen_key = <%=scen_key%>;
|
var scen_key = <%=scen_key%>;
|
||||||
|
|
||||||
function doSubmit()
|
function doSubmit()
|
||||||
{
|
{
|
||||||
document.forms.u2.submit();
|
document.forms.u2.submit();
|
||||||
@@ -164,7 +165,10 @@ var authparamsCTRUSE = user.checkAutorisation("WEB_CTRUSE");
|
|||||||
{ %>
|
{ %>
|
||||||
window.afterfiltersready = function () { doSubmit() };
|
window.afterfiltersready = function () { doSubmit() };
|
||||||
<% } %>
|
<% } %>
|
||||||
onChangeGroupBy();
|
<% if (ins_score_enabled)
|
||||||
|
{ %>
|
||||||
|
onChangeGroupBy();
|
||||||
|
<% } %>
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
@@ -242,7 +246,8 @@ var authparamsCTRUSE = user.checkAutorisation("WEB_CTRUSE");
|
|||||||
whenEmpty: L("lcl_search_generic") // want dit is een filter
|
whenEmpty: L("lcl_search_generic") // want dit is een filter
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (ins_score_enabled)
|
||||||
|
{
|
||||||
// Conditiescore
|
// Conditiescore
|
||||||
%> <tr class="primsearch fldfitness_score" id="fitness_score">
|
%> <tr class="primsearch fldfitness_score" id="fitness_score">
|
||||||
<td>
|
<td>
|
||||||
@@ -381,8 +386,8 @@ var authparamsCTRUSE = user.checkAutorisation("WEB_CTRUSE");
|
|||||||
maxlength="1">
|
maxlength="1">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<%
|
<%
|
||||||
|
}
|
||||||
|
|
||||||
// Scenarios
|
// Scenarios
|
||||||
if (mode == 1)
|
if (mode == 1)
|
||||||
@@ -530,7 +535,7 @@ var authparamsCTRUSE = user.checkAutorisation("WEB_CTRUSE");
|
|||||||
sql,
|
sql,
|
||||||
{ initKey: groupby,
|
{ initKey: groupby,
|
||||||
label: L("lcl_mjb_group"),
|
label: L("lcl_mjb_group"),
|
||||||
onChange: "onChangeGroupBy()"
|
onChange: (ins_score_enabled? "onChangeGroupBy()" : null)
|
||||||
});
|
});
|
||||||
|
|
||||||
if (mode == 1)
|
if (mode == 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user