ZKHM#36397: Melding maken bij inspectie werkt niet in mobiel.

svn path=/Website/branches/v2016.1/; revision=29428
This commit is contained in:
Maykel Geerdink
2016-05-18 09:55:51 +00:00
parent 4786aca3f3
commit cda2ad27cb
6 changed files with 80 additions and 109 deletions

View File

@@ -30,7 +30,7 @@ protectRequest.validateToken();
var ins_key_arr = getFParamIntArray("ins_keys");
var dlsrtcont_key_arr = getFParamIntArray("dlsrtcont_key_arr", []);
var multi = dlsrtcont_key_arr.length > 1;
var mobile = getFParamInt("sel_controlemode", -1) > 0; // Bij mobile is een geldige methode meegegeven.
var mobile = Request.Form("opmerk").count == 1; // Bij mobile is een geldige opmerking meegegeven.
var tobefinished = 0;
var ingeslotendsc = [];
@@ -62,18 +62,15 @@ for (var i = 0; i < ins_key_arr.length; i++)
tobefinished++;
}
}
user.anything_todo_or_abort(tobefinished > 0); // We klagen niet over enkele wel en enkele niet
user.anything_todo_or_abort(tobefinished > 0); // We klagen niet over enkele wel en enkele niet.
var result = { success: true, multi: multi, finish: true };
for (var i = 0; i < ingeslotendsc.length; i++)
{ // Bij mobile ook methode, opmerking en flexkenmerken opslaan want die kunnen aangepast zijn.
{ // Bij mobile ook opmerking opslaan want die kan aangepast zijn.
if (mobile)
{
var fields = [ { dbs: "ins_controlemode_key", typ: "key", frm: "sel_controlemode", track: L("lcl_ins_controle_mode"), foreign: "ins_controlemode" },
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
{ dbs: "ins_deelsrtcontrole_opmerking", typ: "varchar", frm: "opmerk", track: L("lcl_remark"), len: 2000 }
];
{ // Opmerking ook opslaan.
var fields = [{dbs: "ins_deelsrtcontrole_opmerking", typ: "varchar", frm: "opmerk", track: L("lcl_remark"), len: 2000}];
var insUpd = buildTrackingUpdate("ins_deelsrtcontrole", " ins_deelsrtcontrole_key = " + ingeslotendsc[i], fields);
var err = Oracle.Execute(insUpd.sql, true);
@@ -84,34 +81,11 @@ for (var i = 0; i < ingeslotendsc.length; i++)
result.success = false;
}
// HIER WORDEN DE SAVEFLEXKENMERKEN GEREGELD
currentKenmerkenSQL = " SELECT kd.ins_kenmerk_key"
+ " , kd.ins_kmdeelsrtcontr_waarde"
+ " FROM ins_kmdeelsrtcontr kd"
+ " , ins_kenmerk k"
+ " WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key"
+ " AND kd.ins_kmdeelsrtcontr_verwijder IS NULL"
+ " AND kd.ins_deelsrtcontrole_key = " + ingeslotendsc[i];
var flextrack = saveFlexKenmerken( ingeslotendsc[i]
, { kenmerkTable: "ins_kmdeelsrtcontr"
, kenmerkParentKey : "ins_deelsrtcontrole_key"
, kenmerkWaarde: "ins_kmdeelsrtcontr_waarde"
, kenmerkKey: "ins_kenmerk_key"
, currentKenmerkenSQL: currentKenmerkenSQL
, requestQF: Request.Form
, isNew: false
, flexPath: "INS/I"
, module: "INS"
}
);
if (insUpd.trackarray.length || flextrack.length)
ins.trackinspectupdate(ingeslotendsc[i], L("lcl_ins_controle_is_upd") + "\n" + insUpd.trackarray.concat(flextrack).join("\n"));
if (insUpd.trackarray.length)
ins.trackinspectupdate(ingeslotendsc[i], L("lcl_ins_controle_is_upd") + "\n" + insUpd.trackarray.join("\n"));
}
// De status zetten, tracking genereren en notificaties sturen.
// Kenmerken konden niet ingevuld/aangepast worden.
ins.setinspectstatus(ingeslotendsc[i], 6); // History/Verwerkt(6).
}

View File

@@ -10,7 +10,6 @@
srtcont_keys Array van soort controles die moeten worden gestart.
Context: Inline actie ins_list.inc of actie ins_inspect_list
Note: Parameter mobile doet niets met navigatie, sluiten enzo, die submit gewoon.
Resultaat van een submit is een json object
*/ %>
@@ -30,7 +29,6 @@ protectRequest.validateToken();
var ins_key_arr = getFParamIntArray("ins_keys");
var srtcont_key_arr = getFParamIntArray("srtcont_key_arr", []);
var multi = ins_key_arr.length > 1;
var mobile = Request.Form("sel_controlemode").count > 0; // Bij mobile is een methode meegegeven (wel of niet ingevuld).
var tobestart = 0;
var ingesloten = [];
@@ -108,47 +106,6 @@ for (var i = 0; i < ingesloten.length; i++)
result.success = false;
}
}
else if (mobile) // Bij mobile ook methode, opmerking en flexkenmerken opslaan want die kunnen aangepast zijn.
{ // Er is al een inspectie (ins_deelsrtcontrole) record aanwezig. De plandatum en orgdatum blijven onverandert.
var fields = [ { dbs: "ins_controlemode_key", typ: "key", frm: "sel_controlemode", track: L("lcl_ins_controle_mode"), foreign: "ins_controlemode" },
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
{ dbs: "ins_deelsrtcontrole_opmerking", typ: "varchar", frm: "opmerk", track: L("lcl_remark"), len: 2000 }
];
var insUpd = buildTrackingUpdate("ins_deelsrtcontrole", " ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key, fields);
var err = Oracle.Execute(insUpd.sql, true);
if (err.friendlyMsg)
{
result.warning = err.friendlyMsg;
result.success = false;
}
// HIER WORDEN DE SAVEFLEXKENMERKEN GEREGELD
currentKenmerkenSQL = " SELECT kd.ins_kenmerk_key"
+ " , kd.ins_kmdeelsrtcontr_waarde"
+ " FROM ins_kmdeelsrtcontr kd"
+ " , ins_kenmerk k"
+ " WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key"
+ " AND kd.ins_kmdeelsrtcontr_verwijder IS NULL"
+ " AND kd.ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key;
var flextrack = saveFlexKenmerken( ingesloten[i].dlsrtcont_key
, { kenmerkTable: "ins_kmdeelsrtcontr"
, kenmerkParentKey : "ins_deelsrtcontrole_key"
, kenmerkWaarde: "ins_kmdeelsrtcontr_waarde"
, kenmerkKey: "ins_kenmerk_key"
, currentKenmerkenSQL: currentKenmerkenSQL
, requestQF: Request.Form
, isNew: false
, flexPath: "INS/I"
, module: "INS"
}
);
if (insUpd.trackarray.length || flextrack.length)
ins.trackinspectupdate(ingesloten[i].dlsrtcont_key, L("lcl_ins_controle_is_upd") + "\n" + insUpd.trackarray.concat(flextrack).join("\n"));
}
// Nu nog de status zetten, tracking genereren en notificaties sturen.
ins.setinspectstatus(ingesloten[i].dlsrtcont_key, 2); // In behandeling(2)

View File

@@ -13,6 +13,7 @@
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../mld/mld.inc" -->
<!-- #include file="../ins/ins.inc" -->
<!-- #include file="../ins/ins_flexkenmerksrtcontrole.inc" -->
<!-- #include file="./mobile.inc" -->
@@ -286,7 +287,7 @@ else
<body>
<%
PAGE_START();
HEADER({title: L("lcl_mobile_inspecties")+ " " + subject, back:!qrc, home: !qrc});
HEADER({title: L("lcl_mobile_inspecties") + " " + subject, back: !qrc, home: !qrc});
CONTENT_START();
deelsrtcontrole_datum = new Date();
%>
@@ -336,6 +337,12 @@ else
function ins_submit(action)
{
var finish = false;
if (action == "F")
{
finish = true;
action = "C";
}
var controlemodeField = (action == "E"? ["sel_controlemode"] : null);
if (!validateForm("u2", { checkNot: controlemodeField }))
return false;
@@ -377,6 +384,7 @@ else
}
$("#savemode").val(action); // Vul savemode met "E": Wijzigen (Edit) of "C": Afmelden/Afronden (Close).
$("#finish").val(finish? 1 : 0); // Inspectie direct wel/niet afronden.
$.post($("form[name=u2]")[0].action + "&deelsrtcont_key=" + deelsrtcont_key,
$("form[name=u2]").serialize(),
@@ -434,6 +442,7 @@ else
<input type="hidden" name="dlsrtcont_key_arr" id="dlsrtcont_key_arr" value="<%=deelsrtcont_key%>">
<input type="hidden" name="srtcont_key_arr" id="srtcont_key_arr" value="<%=srtcontrole_key%>">
<input type="hidden" name="savemode" id="savemode" value="E">
<input type="hidden" name="finish" id="finish" value="0">
<% ROFIELD("fld", L("lcl_ins_status"), status_str);
// Ik wil de vorige controle + opmerking tonen; optie is nog class expired2 toe te voegen als te laat
@@ -461,41 +470,45 @@ else
ROFIELD("fld", L("lcl_opdr_plandate"), toDateTimeString(oRs("ins_deelsrtcontrole_plandatum").Value));
}
sql = "SELECT " + lcl.xsqla('isc.ins_srtcontrole_omschrijving', 'isc.ins_srtcontrole_key')
+ " , ins_srtcontrole_type"
+ " FROM ins_srtcontrole isc"
+ " WHERE ins_srtcontrole_key = " + srtcontrole_key;
oRs = Oracle.Execute(sql);
var srtcontrole_oms = oRs("ins_srtcontrole_omschrijving").Value;
var srtcontrole_type = oRs("ins_srtcontrole_type").Value;
ROFIELD("sel_srtcontrole_oms", L("lcl_ins_controle"), srtcontrole_oms, {});
if (ins_deelsrtcontrole_status < 6)
{
sql = "SELECT " + lcl.xsqla('isc.ins_srtcontrole_omschrijving', 'isc.ins_srtcontrole_key')
+ " , ins_srtcontrole_type"
+ " FROM ins_srtcontrole isc"
+ " WHERE ins_srtcontrole_key = " + srtcontrole_key;
oRs = Oracle.Execute(sql);
var srtcontrole_oms = oRs("ins_srtcontrole_omschrijving").Value;
var srtcontrole_type = oRs("ins_srtcontrole_type").Value;
ROFIELD("sel_srtcontrole_oms", L("lcl_ins_controle"), srtcontrole_oms, {});
sql = "SELECT cm.ins_controlemode_key"
+ " , " + lcl.xsqla('cm.ins_controlemode_oms', 'cm.ins_controlemode_key')
+ " FROM ins_controlemode cm"
+ " WHERE ins_srtcontrole_type = " + srtcontrole_type;
FCLTselector("sel_controlemode",
sql,
{ initKey: ins_controlemode_key,
label: L("lcl_ins_controle_mode"),
emptyOption: L("lcl_select_controlemode"),
required: true,
mobile: true
}
);
sql = "SELECT cm.ins_controlemode_key"
+ " , " + lcl.xsqla('cm.ins_controlemode_oms', 'cm.ins_controlemode_key')
+ " FROM ins_controlemode cm"
+ " WHERE ins_srtcontrole_type = " + srtcontrole_type;
FCLTselector("sel_controlemode",
sql,
{ initKey: ins_controlemode_key,
label: L("lcl_ins_controle_mode"),
emptyOption: L("lcl_select_controlemode"),
required: true,
mobile: true,
readonly: ins_deelsrtcontrole_status == 5
}
);
RWFIELD("opmerk", L("lcl_remark"), ins_deelsrtcontrole_opmerking, {multi: true});
RWFIELD("opmerk", L("lcl_remark"), ins_deelsrtcontrole_opmerking, {multi: true});
%><div id="insFlexList"><% // Wrapper div voor dynamisch herladen
%> <div id="insFlexList"><% // Wrapper div voor dynamisch herladen
generateFlexKenmerkBlock({fnpre : function () {},
fnpost : "",
deelsrtcontrole_key: deelsrtcont_key,
srtcontrole_key: srtcontrole_key,
reado: false,
reado: ins_deelsrtcontrole_status == 5,
flexcolumns: 1,
mobile: true
});
%></div><%
%> </div><%
}
CONTROLGROUP_START();
switch (ins_deelsrtcontrole_status)
@@ -503,18 +516,43 @@ else
case -1:
case 6: // Geen inplannen van inspecties bij mobiel.
case 0: BUTTON(L("lcl_ins_start"), {click: "ins_start()", dataicon: "clock"});
BUTTON(L("lcl_ins_close"), {click: "ins_submit('C')", dataicon: "comment"});
//Kan kennelijk niet rechtstreeks. Aanzien. BUTTON(L("lcl_ins_finish"), {click: "ins_finish()", dataicon: "check"});
break;
case 2: BUTTON(L("lcl_submit"), {click: "ins_submit('E')", dataicon: "refresh"});
BUTTON(L("lcl_ins_close"), {click: "ins_submit('C')", dataicon: "comment"});
BUTTON(L("lcl_ins_finish"), {click: "ins_finish()", dataicon: "check"});
BUTTON(L("lcl_ins_finish"), {click: "ins_submit('F')", dataicon: "check"});
break;
case 5: BUTTON(L("lcl_submit"), {click: "ins_submit('E')", dataicon: "refresh"});
BUTTON(L("lcl_ins_finish"), {click: "ins_finish()", dataicon: "check"});
break;
}
BUTTON(L("lcl_mld_addmld"), {linkid: "./melding.asp?mld_key=-1" + (ins_key > -1? "&ins_key=" + ins_key : "") + (alg_ruimte_key > -1? "&ruimte_key=" + alg_ruimte_key : "") , dataicon: "alert", dataajax: "false"});
if (user.checkAutorisation("WEB_MLDUSE", true))
{
var tsql = "SELECT COUNT(m.mld_melding_key) aantal"
+ " FROM mld_melding_object mo, mld_melding m"
+ " WHERE mo.mld_melding_object_verwijder IS NULL"
+ " AND mo.mld_melding_key = m.mld_melding_key"
+ " AND m.mld_melding_status IN (0, 2, 3, 4, 7)" // lopende meldingen
+ " AND mo.ins_deel_key = " + ins_key;
var toRs = Oracle.Execute(tsql);
if (toRs("aantal").Value == 0)
{ // Geen, dan moet ik dus willen toevoegen.
// Dan moet er wel een srtdiscipline getoond kunnen worden.
var mySRTsql = mld.srtdisc_sql("WEB_MLDUSE", { ins_key: ins_key });
var sql = "SELECT MIN(ins_srtdiscipline_key) ins_srtdiscipline_key"
+ " , COUNT(DISTINCT ins_srtdiscipline_key) aantal"
+ " FROM (" + mySRTsql + ")";
var oRs = Oracle.Execute(sql);
if (oRs("aantal").Value > 0)
BUTTON(L("lcl_mobile_newmelding"), {linkid: "./melding.asp?mld_key=-1&ins_key=" + ins_key + "&meldbronkey=10", dataicon: "plus", dataajax: 'false'});
//BUTTON(L("lcl_mobile_newmelding"), {click: "ins_newmelding()", dataicon: "plus"});
oRs.Close();
}
else if (toRs("aantal").Value > 0 && user.checkAutorisation("WEB_MLDBOF", true))
{
BUTTON(L("lcl_mobile_meldingen") + " (" + toRs("aantal").Value + ")", {linkid: "./mld_list.asp?ins_key=" + ins_key + "&meldbronkey=10", dataicon: "alert"});
}
}
CONTROLGROUP_END();
IFACE.FORM_END();
%></form><%

View File

@@ -38,6 +38,7 @@ FCLTHeader.Requires({plugins: ["suggest"]});
var mld_key = getQParamInt("mld_key",-1);
var action = getQParam("action", "");
var qrc = getQParamInt("qrc", 0) != 0;
var meldbron_key = getQParamInt("meldbronkey", 7);
var mld_info = {};
var plaats_key = -1;
var plaats_niveau = "";
@@ -449,7 +450,7 @@ if (action != "forward")
<input type="hidden" name="gebouwkey" value="<%=gebouw_key%>">
<input type="hidden" name="verdiepingkey" value="<%=verdieping_key%>">
<input type="hidden" name="ruimtekey" id="ruimtekey" value="<%=ruimte_key%>">
<input type="hidden" name="meldbronkey" value="7">
<input type="hidden" name="meldbronkey" value="<%=meldbron_key%>">
<%
}
else

View File

@@ -31,7 +31,7 @@ var mld_key = getQParamInt("mld_key",-1); // -1 betekent nieuwe
var qrc = getQParamInt("qrc", 0) != 0;
var action = getQParam("action", "");
var transitParam = buildTransitParam(["mld_key", "action", "disc", "srtdisc", "ins_key", "locatie_key", "gebouw_key", "verdieping_key", "ruimte_key"]);
var transitParam = buildTransitParam(["mld_key", "action", "disc", "srtdisc", "ins_key", "locatie_key", "gebouw_key", "verdieping_key", "ruimte_key", "meldbronkey"]);
// Verplicht:
var disc_key = getQParamInt("disc", -1);

View File

@@ -35,6 +35,7 @@ var locatie_key = getQParamInt("locatie_key", user.alg_locatie_key({withcurrent:
var gebouw_key = getQParamInt("gebouw_key", user.alg_gebouw_key({withcurrent:true})); // Gebouw, kan -1 zijn, dan niet gebruiken
var verdieping_key = getQParamInt("verdieping_key", user.alg_verdieping_key({withcurrent:true}));
var qrc = getQParamInt("qrc", 0) != 0;
var meldbron_key = getQParamInt("meldbronkey", 7);
var grp_sel = getQParam("grp", "");
@@ -317,7 +318,7 @@ var authparams = user.checkAutorisation(autfunction);
PAGE_START();
HEADER({title: subject,
back: !qrc,
addaction: "../pda/melding.asp?mld_key=-1" + (ins_key > -1? "&ins_key=" + ins_key : "") + (ruimte_key > -1? "&ruimte_key=" + ruimte_key : "")});
addaction: "../pda/melding.asp?mld_key=-1" + (ins_key > -1? "&ins_key=" + ins_key : "") + (ruimte_key > -1? "&ruimte_key=" + ruimte_key : "") + "&meldbronkey=" + meldbron_key});
CONTENT_START();
var rst = new ResultsetTable({sql: sqln,