ASFC#34371: Start en stopmoment bij schoonmaak via inspecties kunnen vastleggen.
svn path=/Website/trunk/; revision=28757
This commit is contained in:
@@ -316,7 +316,7 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
|
||||
<body id="editbody" class="likemodal">
|
||||
<% var buttons = [];
|
||||
if (insPlan || insEdit)
|
||||
buttons.push({title: L("lcl_submit"), icon: "opslaan.png", action:"ins_submit()"});
|
||||
buttons.push({title: L("lcl_submit"), icon: "opslaan.png", action:"ins_submit(0)"});
|
||||
if (insClose)
|
||||
{
|
||||
buttons.push({title: L("lcl_ins_close"), icon: "finish.png", action:"ins_submit(0)"});
|
||||
|
||||
@@ -45,7 +45,7 @@ else if (savemode == "C") // Afmelden/Afronden (Close).
|
||||
deelsrtcontrole_datum = getFParamDate("deelsrtcontrole_datum", new Date);
|
||||
else if (savemode == "E")
|
||||
{ // Wijzigen (Edit).
|
||||
plandatum = getFParamDate("plandatum", null);
|
||||
// Plandatum wordt bij opmaak velden (fields) wel uit frm gehaald i.p.v. val.
|
||||
|
||||
if (multi)
|
||||
abort_with_warning(L("lcl_ins_allow_multi_edit"));
|
||||
@@ -206,7 +206,7 @@ function saveFlexKenmerkenInspection(pdlsrtcont_key, pinsPresent)
|
||||
|
||||
if (savemode == "P")
|
||||
{ // Inplannen inspectie.
|
||||
var result = { success: true, plandatum: plandatum };
|
||||
var result = { success: true, plandatum: plandatum, savemode: savemode };
|
||||
|
||||
for (var i = 0; i < ingesloten.length; i++)
|
||||
{ // Zetten van de status en afhandelen van de tracking van het starten.
|
||||
@@ -256,7 +256,7 @@ if (savemode == "P")
|
||||
}
|
||||
else if (savemode == "C")
|
||||
{ // Afmelden inspectie.
|
||||
var result = { success: true, deelsrtcontrole_datum: deelsrtcontrole_datum };
|
||||
var result = { success: true, deelsrtcontrole_datum: deelsrtcontrole_datum, savemode: savemode };
|
||||
|
||||
for (var i = 0; i < ingesloten.length; i++)
|
||||
{
|
||||
@@ -394,6 +394,7 @@ else if (savemode == "C")
|
||||
ingesloten[i].dlsrtcont_key = insIns.sequences["ins_deelsrtcontrole_key"];
|
||||
var err = Oracle.Execute(insIns.sql, true);
|
||||
}
|
||||
result.deelsrtcontrole_key = ingesloten[i].dlsrtcont_key;
|
||||
|
||||
if (err.friendlyMsg)
|
||||
{
|
||||
@@ -438,6 +439,7 @@ else if (savemode == "C")
|
||||
ingesloten[i].dlsrtcont_key = insIns.sequences["ins_deelsrtcontrole_key"];
|
||||
var err = Oracle.Execute(insIns.sql, true);
|
||||
}
|
||||
result.deelsrtcontrole_key = ingesloten[i].dlsrtcont_key;
|
||||
|
||||
if (err.friendlyMsg)
|
||||
{
|
||||
@@ -484,9 +486,9 @@ else if (savemode == "C")
|
||||
}
|
||||
else if (savemode == "E")
|
||||
{ // Wijzigen inspectie (Edit). Update van de gegevens (plandatum, opmerking en flexkenmerken).
|
||||
var result = { success: true, plandatum: plandatum };
|
||||
var result = { success: true, plandatum: plandatum, deelsrtcontrole_key: ingesloten[0].dlsrtcont_key, savemode: savemode };
|
||||
|
||||
var fields = [ { dbs: "ins_deelsrtcontrole_plandatum", typ: "datetime", val: plandatum, track: L("lcl_opdr_plandate") },
|
||||
var fields = [ { dbs: "ins_deelsrtcontrole_plandatum", typ: "datetime", frm: "plandatum", track: L("lcl_opdr_plandate") },
|
||||
{ dbs: "ins_deelsrtcontrole_opmerking", typ: "varchar", frm: "opmerk", track: L("lcl_remark"), len: 2000 }
|
||||
];
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
var ins_deelsrtcontrole_key = oRs("ins_deelsrtcontrole_key").Value;
|
||||
|
||||
// Het laatste inspectierecord moet ingepland of verwerkt(6) zijn, anders kan de inspectie niet gestart worden.
|
||||
if (oRs("ins_deelsrtcontrole_status").Value > 0 && oRs("ins_deelsrtcontrole_status").Value != 6)
|
||||
if (ins_deelsrtcontrole_status > 0 && ins_deelsrtcontrole_status != 6)
|
||||
{ // Laatste inspectie is niet ingepland of verwerkt. Overslaan.
|
||||
oRs.Close();
|
||||
continue;
|
||||
@@ -71,7 +71,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
}
|
||||
user.anything_todo_or_abort(tobestart > 0); // We klagen niet over enkele wel en enkele niet
|
||||
|
||||
var result = {success: true, multi: multi };
|
||||
var result = {success: true, multi: multi, start: true };
|
||||
|
||||
for (var i = 0; i < ingesloten.length; i++)
|
||||
{ // Zetten van de status en afhandelen van de tracking van het starten.
|
||||
@@ -79,7 +79,7 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
{ // Er is nog geen inspectie (ins_deelsrtcontrole) record aangemaakt. Eerst maar eens aanmaken.
|
||||
// Als er al een inspectie is geweest kan er een volgende inspectiedatum berekend worden.
|
||||
var nextdate = null;
|
||||
if (ingesloten.inspectiestatus > -1)
|
||||
if (ingesloten[i].inspectiestatus > -1)
|
||||
{ // Bereken de volgende inspectiedatum.
|
||||
sql = "SELECT ins.nextcyclusdate (" + ingesloten[i].ins_key + ", " + ingesloten[i].srtcont_key + ", 1) nextdate FROM DUAL"
|
||||
oRs = Oracle.Execute(sql);
|
||||
@@ -105,8 +105,7 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
result.success = false;
|
||||
}
|
||||
}
|
||||
else // Er is al een inspectie (ins_deelsrtcontrole) record aangemaakt. De plandatum en orgdatum blijven onverandert.
|
||||
// Bij bestaande inspecties mag het geen multi zijn.
|
||||
//else Er is al een inspectie (ins_deelsrtcontrole) record aangemaakt. De plandatum en orgdatum blijven onverandert.
|
||||
|
||||
// Kenmerken konden niet ingevuld/aangepast worden.
|
||||
|
||||
|
||||
@@ -197,7 +197,6 @@ if (srtcontrole_key < 0 || defaultmode_key > 0)
|
||||
};
|
||||
<% protectRequest.dataToken("data"); %>
|
||||
|
||||
//alert("ins {0}, soort {1}, mode {2}".format(<%=ins_key%>, deelsrtcont_key, <%=defaultmode_key%>));
|
||||
$.post("../ins/ins_inspect_save.asp",
|
||||
data,
|
||||
McltCallbackAndThen(ins_submit_callback),
|
||||
@@ -217,6 +216,38 @@ else
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var subject = oRs("ins_deel_omschrijving").Value;
|
||||
oRs.Close();
|
||||
|
||||
var sql = "SELECT idsc.ins_deelsrtcontrole_key"
|
||||
+ " , idsc.ins_deelsrtcontrole_status"
|
||||
+ " , idsc.ins_controlemode_key"
|
||||
+ " , idsc.ins_deelsrtcontrole_opmerking"
|
||||
+ " FROM ins_srtcontrole isc"
|
||||
+ " , ins_deelsrtcontrole idsc"
|
||||
+ " WHERE isc.ins_srtcontrole_key = idsc.ins_srtcontrole_key(+)" // Er kan nog voor de eerste keer geinspecteerd moeten worden.
|
||||
+ " AND idsc.ins_deel_key(+) = " + ins_key
|
||||
+ " AND isc.ins_srtcontrole_key = " + srtcontrole_key
|
||||
+ (deelsrtcont_key > 0
|
||||
? " AND idsc.ins_deelsrtcontrole_key = " + deelsrtcont_key
|
||||
: "")
|
||||
+ " ORDER BY ins_deelsrtcontrole_datum DESC";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
// Waarden moeten aanwezig zijn. Mocht dat niet zo zijn dan is er iets fout.
|
||||
var deelsrtcont_key = oRs("ins_deelsrtcontrole_key").Value != null? oRs("ins_deelsrtcontrole_key").Value : -1;
|
||||
var ins_deelsrtcontrole_status = oRs("ins_deelsrtcontrole_status").Value != null? oRs("ins_deelsrtcontrole_status").Value : -1;
|
||||
var status_str = "";
|
||||
switch (ins_deelsrtcontrole_status)
|
||||
{
|
||||
case -1: status_str = L("lcl_ins_controle_first");
|
||||
break;
|
||||
case 6: status_str = L("lcl_ins_controle_new");
|
||||
break;
|
||||
case 0:
|
||||
case 2:
|
||||
case 5: status_str = ins.getinsstatustext(ins_deelsrtcontrole_status);
|
||||
break;
|
||||
}
|
||||
var ins_controlemode_key = oRs("ins_controlemode_key").Value != null && ins_deelsrtcontrole_status != 6? oRs("ins_controlemode_key").Value : -1;
|
||||
var ins_deelsrtcontrole_opmerking = oRs("ins_deelsrtcontrole_opmerking").Value != null && ins_deelsrtcontrole_status != 6? oRs("ins_deelsrtcontrole_opmerking").Value : "";
|
||||
%>
|
||||
|
||||
<html>
|
||||
@@ -263,33 +294,30 @@ else
|
||||
%>
|
||||
// Na de insert moet een tweede opslaan een update doen. Dan deelsrtcont_key meegeven.
|
||||
var deelsrtcont_key = -1;
|
||||
function ins_submit_callback(json)
|
||||
function ins_callback(json)
|
||||
{
|
||||
if (json.success)
|
||||
{
|
||||
jqToast(L("lcl_mobile_data_saved"));
|
||||
window.deelsrtcont_key = json.deelsrtcontrole_key;
|
||||
//
|
||||
// reload kenmerken.
|
||||
var s = "../ins/load_kenmerksrtcontrole.asp"
|
||||
+ "?srtcont_key=" + $("#sel_srtcontrole").val()
|
||||
+ "&deelsrtcont_key=" + json.deelsrtcontrole_key
|
||||
+ "&mobile=1";
|
||||
$("#insFlexList").load(s, function(responseText, textStatus, jqXHR)
|
||||
{
|
||||
FcltMgr.resized(window);
|
||||
});
|
||||
|
||||
if (json.start || json.finish || json.savemode != "E")
|
||||
FcltMgr.reload();
|
||||
}
|
||||
}
|
||||
|
||||
function ins_submit()
|
||||
function ins_submit(action)
|
||||
{
|
||||
if (!validateForm("u2"))
|
||||
var controlemodeField = (action == "E"? ["sel_controlemode"] : null);
|
||||
if (!validateForm("u2", { checkNot: controlemodeField }))
|
||||
return false;
|
||||
|
||||
if (action == "C")
|
||||
{
|
||||
// De uitvoerdatum van de inspectie is nu. Daardoor ligt deze na de laatste uitvoerdatum en niet in de toekomst.
|
||||
|
||||
for (i = 0; i < inspected_srtcontroles.length; i++)
|
||||
{
|
||||
if (inspected_srtcontroles[i].srtcontrole_key == $("#sel_srtcontrole").val())
|
||||
if (inspected_srtcontroles[i].srtcontrole_key == $("#srtcont_key_arr").val())
|
||||
{
|
||||
// Controle of er op de inspectiedatum (Vandaag) of op het inspectieuur (Dit uur) al inspecties zijn geweest.
|
||||
if (new Date().midnight().getTime() == new Date(parseInt(inspected_srtcontroles[i].datum)).midnight().getTime() &&
|
||||
@@ -317,23 +345,58 @@ else
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$("#savemode").val(action); // Vul savemode met "E": Wijzigen (Edit) of "C": Afmelden/Afronden (Close).
|
||||
|
||||
$.post($("form[name=u2]")[0].action + "&deelsrtcont_key=" + deelsrtcont_key,
|
||||
$("form[name=u2]").serialize(),
|
||||
McltCallbackAndThen(ins_submit_callback),
|
||||
McltCallbackAndThen(ins_callback),
|
||||
"json");
|
||||
return false;
|
||||
}
|
||||
|
||||
function ins_start()
|
||||
{
|
||||
if (confirm(L("lcl_ins_starting")))
|
||||
{
|
||||
var data = { ins_keys: <%=ins_key%>,
|
||||
srtcont_keys: <%=srtcontrole_key%>
|
||||
};
|
||||
|
||||
protectRequest.dataToken(data);
|
||||
$.post( "../ins/ins_inspect_start.asp"
|
||||
, data
|
||||
, McltCallbackAndThen(ins_callback)
|
||||
, "json"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function ins_finish()
|
||||
{
|
||||
if (confirm(L("lcl_ins_finishing")))
|
||||
{
|
||||
var data = { ins_keys: <%=ins_key%>,
|
||||
dlsrtcont_keys: <%=deelsrtcont_key%>
|
||||
};
|
||||
protectRequest.dataToken(data);
|
||||
$.post( "../ins/ins_inspect_finish.asp"
|
||||
, data
|
||||
, McltCallbackAndThen(ins_callback)
|
||||
, "json"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function onChangeSrtControle()
|
||||
{
|
||||
var s = "../ins/load_kenmerksrtcontrole.asp?srtcont_key=" + $("#sel_srtcontrole").val() + "&mobile=1";
|
||||
var s = "../ins/load_kenmerksrtcontrole.asp?srtcont_key=" + $("#srtcont_key_arr").val() + "&mobile=1";
|
||||
$("#insFlexList").load(s, function(data)
|
||||
{
|
||||
FcltMgr.resized(window);
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
@@ -341,21 +404,33 @@ else
|
||||
|
||||
<form name="u2" action="../ins/ins_inspect_save.asp?ins_keys=<%=ins_key%>" method="post">
|
||||
<input type="hidden" name="ins_keys" id="ins_keys" value="<%=ins_key%>">
|
||||
<input type="hidden" name="sel_srtcontrole" id="sel_srtcontrole" value="<%=srtcontrole_key%>">
|
||||
<input type="hidden" name="sel_deelsrtcont" id="sel_deelsrtcont" 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">
|
||||
<% 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
|
||||
// (misschien dat ook al bij de button als er binnen een dag een inspectie moet of zo)
|
||||
// Let op: deze datum hangt af van de srtcontrole, als dat er meer dan 1 is vind ik het nu de moeite nog niet waard.
|
||||
var sql = "SELECT idsc.ins_deelsrtcontrole_datum"
|
||||
+ " , idsc.ins_deelsrtcontrole_opmerking"
|
||||
+ " , idsc.ins_deelsrtcontrole_plandatum"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_deel_key = " + ins_key
|
||||
+ " AND idsc.ins_deelsrtcontrole_status = 6"
|
||||
+ " ORDER BY ins_deelsrtcontrole_datum DESC";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof) {
|
||||
if (!oRs.eof)
|
||||
{
|
||||
ROFIELD("fld", L("lcl_ins_controle_last"), toDateTimeString(oRs("ins_deelsrtcontrole_datum").Value) + " " + (oRs("ins_deelsrtcontrole_opmerking").Value || ""));
|
||||
|
||||
var sql = "SELECT idsc.ins_deelsrtcontrole_plandatum"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_deel_key = " + ins_key
|
||||
+ " AND idsc.ins_deelsrtcontrole_status != 6";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
|
||||
if (!oRs.eof && oRs("ins_deelsrtcontrole_plandatum").Value != null)
|
||||
ROFIELD("fld", L("lcl_opdr_plandate"), toDateTimeString(oRs("ins_deelsrtcontrole_plandatum").Value));
|
||||
}
|
||||
|
||||
sql = "SELECT " + lcl.xsqla('isc.ins_srtcontrole_omschrijving', 'isc.ins_srtcontrole_key')
|
||||
@@ -373,14 +448,15 @@ else
|
||||
+ " WHERE ins_srtcontrole_type = " + srtcontrole_type;
|
||||
FCLTselector("sel_controlemode",
|
||||
sql,
|
||||
{ label: L("lcl_ins_controle_mode"),
|
||||
{ initKey: ins_controlemode_key,
|
||||
label: L("lcl_ins_controle_mode"),
|
||||
emptyOption: L("lcl_select_controlemode"),
|
||||
required: true,
|
||||
mobile: true
|
||||
}
|
||||
);
|
||||
|
||||
RWFIELD("opmerk", L("lcl_remark"), null, {multi: true});
|
||||
RWFIELD("opmerk", L("lcl_remark"), ins_deelsrtcontrole_opmerking, {multi: true});
|
||||
|
||||
%><div id="insFlexList"><% // Wrapper div voor dynamisch herladen
|
||||
generateFlexKenmerkBlock({fnpre : function () {},
|
||||
@@ -394,7 +470,21 @@ else
|
||||
%></div><%
|
||||
|
||||
CONTROLGROUP_START();
|
||||
BUTTON(L("lcl_submit"), {click: "ins_submit()", dataicon: "check"});
|
||||
switch (ins_deelsrtcontrole_status)
|
||||
{
|
||||
case -1:
|
||||
case 6: // Geen inplannen van inspecties bij mobiel.
|
||||
case 0: BUTTON(L("lcl_ins_start"), {click: "ins_start()", dataicon: "check"});
|
||||
BUTTON(L("lcl_ins_close"), {click: "ins_submit('C')", dataicon: "check"});
|
||||
break;
|
||||
case 2: BUTTON(L("lcl_submit"), {click: "ins_submit('E')", dataicon: "check"});
|
||||
BUTTON(L("lcl_ins_close"), {click: "ins_submit('C')", dataicon: "check"});
|
||||
//BUTTON(L("lcl_ins_finish"), {click: "ins_finish()", dataicon: "check"});
|
||||
break;
|
||||
case 5: BUTTON(L("lcl_submit"), {click: "ins_submit('E')", dataicon: "check"});
|
||||
BUTTON(L("lcl_ins_finish"), {click: "ins_finish()", dataicon: "check"});
|
||||
break;
|
||||
}
|
||||
CONTROLGROUP_END();
|
||||
IFACE.FORM_END();
|
||||
%></form><%
|
||||
|
||||
Reference in New Issue
Block a user