diff --git a/APPL/INS/ins_edit_inspect.asp b/APPL/INS/ins_edit_inspect.asp index 1533e65a85..df438677c2 100644 --- a/APPL/INS/ins_edit_inspect.asp +++ b/APPL/INS/ins_edit_inspect.asp @@ -316,7 +316,7 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
<% 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)"}); diff --git a/APPL/INS/ins_inspect_save.asp b/APPL/INS/ins_inspect_save.asp index 9d221f87fb..5cc7c32f29 100644 --- a/APPL/INS/ins_inspect_save.asp +++ b/APPL/INS/ins_inspect_save.asp @@ -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 } ]; diff --git a/APPL/INS/ins_inspect_start.asp b/APPL/INS/ins_inspect_start.asp index f5f19b6237..ccc3a81d8a 100644 --- a/APPL/INS/ins_inspect_start.asp +++ b/APPL/INS/ins_inspect_start.asp @@ -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. diff --git a/APPL/PDA/ins_inspect.asp b/APPL/PDA/ins_inspect.asp index 89d96b2ffb..498320ef40 100644 --- a/APPL/PDA/ins_inspect.asp +++ b/APPL/PDA/ins_inspect.asp @@ -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 : ""; %> @@ -263,77 +294,109 @@ 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; - for (i = 0; i < inspected_srtcontroles.length; i++) + if (action == "C") { - if (inspected_srtcontroles[i].srtcontrole_key == $("#sel_srtcontrole").val()) + // 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++) { - // 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() && - inspected_srtcontroles[i].eenheid > 0 && - inspected_srtcontroles[i].mode == 0) // Geldt alleen voor momentmodus. - { // Op dezelfde dag mag niet. - alert(L("lcl_ins_double_inspection_today")); - return false; - } - else if (new Date(new Date().setMinutes(0,0,0)).getTime() == new Date(new Date(parseInt(inspected_srtcontroles[i].datum)).setMinutes(0,0,0)).getTime() && - inspected_srtcontroles[i].eenheid == 0 && - inspected_srtcontroles[i].mode == 0) // Geldt alleen voor momentmodus. - { // In hetzelfde uur mag niet. - alert(L("lcl_ins_double_inspection_hour")); - return false; - } - else if (new Date(new Date().setSeconds(0, 0)).getTime() == new Date(parseInt(inspected_srtcontroles[i].datum)).getTime() && - inspected_srtcontroles[i].mode == 1) - { // Een inspectie doen op dezelfde datumtijd (controledatum hetzelfde) mag niet omdat je daarna dan niet meer de volgende inspectie kunt doen. - // De geplande _org tijd is dan hetzelfde als de laatste inspectie omdat de volgende inspectie dan niet opgeschoven is. - // Inspecties op dezelfde datumtijd moeten dus afgevangen worden. - // Dit kan alleen voorkomen in de interval mode. - alert(L("lcl_ins_double_inspection")); - return false; + 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() && + inspected_srtcontroles[i].eenheid > 0 && + inspected_srtcontroles[i].mode == 0) // Geldt alleen voor momentmodus. + { // Op dezelfde dag mag niet. + alert(L("lcl_ins_double_inspection_today")); + return false; + } + else if (new Date(new Date().setMinutes(0,0,0)).getTime() == new Date(new Date(parseInt(inspected_srtcontroles[i].datum)).setMinutes(0,0,0)).getTime() && + inspected_srtcontroles[i].eenheid == 0 && + inspected_srtcontroles[i].mode == 0) // Geldt alleen voor momentmodus. + { // In hetzelfde uur mag niet. + alert(L("lcl_ins_double_inspection_hour")); + return false; + } + else if (new Date(new Date().setSeconds(0, 0)).getTime() == new Date(parseInt(inspected_srtcontroles[i].datum)).getTime() && + inspected_srtcontroles[i].mode == 1) + { // Een inspectie doen op dezelfde datumtijd (controledatum hetzelfde) mag niet omdat je daarna dan niet meer de volgende inspectie kunt doen. + // De geplande _org tijd is dan hetzelfde als de laatste inspectie omdat de volgende inspectie dan niet opgeschoven is. + // Inspecties op dezelfde datumtijd moeten dus afgevangen worden. + // Dit kan alleen voorkomen in de interval mode. + alert(L("lcl_ins_double_inspection")); + return false; + } } } } - $.post($("form[name=u2]")[0].action + "&deelsrtcont_key="+deelsrtcont_key, + $("#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); }); } - @@ -341,62 +404,89 @@ else <% CONTENT_END(); FOOTER();