diff --git a/APPL/INS/ins.inc b/APPL/INS/ins.inc index d4d4369e9a..788d7ac4e4 100644 --- a/APPL/INS/ins.inc +++ b/APPL/INS/ins.inc @@ -630,7 +630,9 @@ ins = {checkAutLevel: // Als de inspectie vervallen is moet je alleen nog de lopende inspecties (ingepland of later) kunnen gereedmelden en/of afronden, // zodat deze inspectie afgerond kan worden. Nieuwe inspectie kunnen nooit meer beginnen. // Eerste inspectie of verwerkte inspectie kan niet gewijzigd worden. - iresult.canInspEdit = iresult.canInspect && !vervallen && (ins_deelsrtcontrole_status != -1 && ins_deelsrtcontrole_status != 6) && actief; + iresult.canInspEdit = ((iresult.canInspect && ins_deelsrtcontrole_status != -1 && ins_deelsrtcontrole_status != 6) || + (iresult.canChangeAfg && ins_deelsrtcontrole_status == 6)) && + !vervallen && actief; iresult.canInspShow = iresult.readuse && !vervallen && (ins_deelsrtcontrole_status >= 0); // Bij eerste inspectie of verwerkte inspectie kan er gepland worden. iresult.canInspPlan = iresult.canInspect && !vervallen && (ins_deelsrtcontrole_status == -1 || ins_deelsrtcontrole_status == 6) && actief; @@ -739,6 +741,9 @@ ins = {checkAutLevel: iresult.canCopy = iresult.canWrite("WEB_INSMAN"); // Kopiëren. } iresult.canInspect = iresult.canWrite("WEB_INSUSE"); // Kopiëren. + // Let op: WEB_INSMSU is niet discipline gebonden en zit dus niet in iresult + var autparamsINSMSU = user.checkAutorisation("WEB_INSMSU", true); + iresult.canChangeAfg = autparamsINSMSU && autparamsINSMSU.PRSwritelevel < 9 && autparamsINSMSU.ALGwritelevel < 9; // Wijzigen Afgeronde gegevens. iresult.readuse = iresult.canRead("WEB_INSUSE"); // Inzien. iresult.canChangeXcp = iresult.canWrite("WEB_INSMAN"); // Interval kenmerken/parameters wijzigen (waarden in ins_srtcontroledl_xcp tabel). return iresult; diff --git a/APPL/INS/ins_edit_inspect.asp b/APPL/INS/ins_edit_inspect.asp index 1e72cd0d50..f326869bda 100644 --- a/APPL/INS/ins_edit_inspect.asp +++ b/APPL/INS/ins_edit_inspect.asp @@ -427,6 +427,10 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel "> "> "> +<% if (insEdit) + { %> + +<% } %> <% var blocktext = (insPlan? L("lcl_ins_schedule") : (insClose? L("lcl_ins_close") + "/" + L("lcl_ins_finish") : (insEdit? L("lcl_change") : L("lcl_show")))); BLOCK_START("insMultiEdit", blocktext); diff --git a/APPL/INS/ins_inspect_save.asp b/APPL/INS/ins_inspect_save.asp index 8d6792d730..a748b39789 100644 --- a/APPL/INS/ins_inspect_save.asp +++ b/APPL/INS/ins_inspect_save.asp @@ -42,6 +42,7 @@ user.auth_required_or_abort(!multi || (ins_key_arr.length == srtcont_key_arr.len var deelsrtcontrole_datum; var plandatum; var nextdate; +var deelsrtcont_key = -1; if (savemode == "P") // Inplannen (Plan). plandatum = getFParamDate("plandatum"); @@ -53,6 +54,8 @@ else if (savemode == "E") if (multi) abort_with_warning(L("lcl_ins_allow_multi_edit")); + + deelsrtcont_key = getFParamInt("deelsrtcont_key"); // Specifieke inspectie die gewijzigd is. } var warning = ""; @@ -80,7 +83,11 @@ for (var i = 0; i < ins_key_arr.length; i++) + " AND idsc.ins_deel_key(+) = " + ins_key_arr[i] + " AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) > 0" + " AND di.ins_srtcontrole_key = " + srtcont_key_arr[i] - + " AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC(SYSDATE, 'DD'))" + ")" + + " AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC(SYSDATE, 'DD'))" + + (deelsrtcont_key > 0 + ? " AND idsc.ins_deelsrtcontrole_key = " + deelsrtcont_key + : "") + + " )" + " ORDER BY ins_deelsrtcontrole_key DESC"; var oRs = Oracle.Execute(sql); // Waarden moeten aanwezig zijn. Mocht dat niet zo zijn dan is er iets fout.