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.