MNNL#44867 Afsluiten foutief aangemaakte of niet meer relevante workflw

svn path=/Website/trunk/; revision=36979
This commit is contained in:
Erik Groener
2018-02-14 11:20:38 +00:00
parent 72f4696653
commit a4b55cec03
6 changed files with 170 additions and 0 deletions

View File

@@ -2017,6 +2017,8 @@ mld = {setmeldingstatus:
res_key: oRs("res_reservering_key").Value
};
result.workflowRoot = (!result.noWorkflow && result.Startkey == mld_key);
if (result.locked_user_key)
{
var expire = new Date;

View File

@@ -0,0 +1,70 @@
<%@language = "javascript" %>
<% /*
$Revision$
$Id$
Status: 100%
*/
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="mld.inc" -->
<%
FCLTHeader.Requires({ plugins: ["suggest", "jQuery"] });
var mld_key = getQParamInt("mld_key");
var autfunction = "WEB_MLDMSU";
var this_mld = mld.func_enabled_melding(mld_key);
var mld_info = mld.mld_melding_info(mld_key);
lcl.set_dialect(mld_info.srtdisc, "MLD_SRTDISCIPLINE_KEY");
user.anything_todo_or_abort(mld_info.workflowRoot && user.has(autfunction));
%>
<html>
<head>
<% FCLTHeader.Generate(); %>
<script type="text/javascript">
function mld_cont()
{
document.activeElement.blur(); // trigger laatste onChanges
// Standaard checks op verplichte velden, datum formaat, numeriek en float formaat, currency formaat.
if (!validateForm("cancelworkflowform"))
return false;
$.post( $("form[name=cancelworkflowform]")[0].action
, $("[name=cancelworkflowform]").serialize()
, function(json) {
if (json.success)
FcltMgr.closeDetail(window, { cancel: true } );
else
iface.button.enable("btn_cont_submit");
}
, "json");
return true; // disable button
}
function mld_cancel()
{
FcltMgr.closeDetail(window, { cancel: true } );
}
</script>
</head>
<body class="modal" id="mod_mldcancelworkflow">
<form id="cancelworkflowform" name="cancelworkflowform" action="mld_cancelworkflow_save.asp?mld_key=<%=mld_key%>" method="post">
<%
BLOCK_START("mldCancelworkflow");
RWTEXTAREATR("descr", "fldremark required", L("lcl_mld_cancelworkflow_remark"), "", {html: "rows='8'"});
BLOCK_END();
var buttons = [ {title: L("lcl_mld_cancel_workflow"), icon: "opslaan.png", action: "mld_cont()", singlepress: true, id: "btn_cont_submit" },
{title: L("lcl_cancel"), icon: "undo.png", action: "mld_cancel()" } ];
CreateButtons(buttons);
IFACE.FORM_END();
%>
</form>
</body>
</html>

View File

@@ -0,0 +1,79 @@
<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: mld_cancelworkflow_save.asp
Description: Zet alle nog actieve meldingen in een workflow op afgewezen
Parameters: mld_key key van de root melding
mld_oms reden van afsluiten vervolgmeldingen
*/ %>
<%
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="mld.inc" -->
<%
function workflow_tree(mld_key)
{
var sql = "SELECT mld_melding_key"
+ " , mld_melding_status"
+ " FROM mld_melding"
+ " WHERE mld_workflowstep_key IS NOT NULL"
+ " AND mld_melding_start_key = " + mld_key;
var oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
var next_mld_key = oRs("mld_melding_key").Value;
var statusopdr = oRs("mld_melding_status").Value;
if (inArray(statusopdr, [0,2,3,4,7]))
{
// Sluit deze actieve melding
cancel_workflowstep(mld_key);
}
// Als niet zichzelf dan volgend niveau
if (next_mld_key != mld_key)
{
workflow_tree(next_mld_key);
}
oRs.MoveNext();
}
oRs.Close();
}
function cancel_workflowstep(mld_key)
{
var sql_u = "UPDATE mld_melding"
+ " SET mld_statusopdr_key = 1"
+ " WHERE mld_melding_key = " + mld_key;
Oracle.Execute(sql_u);
var sql_i = "INSERT INTO mld_melding_note"
+ "( mld_melding_key"
+ ", prs_perslid_key"
+ ", mld_melding_note_omschrijving"
+ ") VALUES"
+ "(" + mld_key
+ "," + user_key
+ "," + safe.quoted_sql(mld_opmerking)
+ ")";
Oracle.Execute(sql_i);
}
protectRequest.validateToken();
var mld_root_key = getQParamInt("mld_key");
var mld_opmerking = getFParam("descr");
var autfunction = "WEB_MLDMSU";
var mld_info = mld.mld_melding_info(mld_root_key);
lcl.set_dialect(mld_info.srtdisc, "MLD_SRTDISCIPLINE_KEY");
user.anything_todo_or_abort(mld_info.workflowRoot && user.has(autfunction));
workflow_tree(mld_root_key);
var result = { key: mld_root_key, success: true };
Response.Write(JSON.stringify(result));
Response.End;
%>

View File

@@ -196,6 +196,9 @@ if (this_mld.canForward)
if (this_mld.canContinue)
buttons.push({title: L("lcl_mld_continuation"), icon: "plus.png", action:"mld_continue()", autoshow: false, tooltip: L("lcl_continue_hint") });
if (mld_melding.workflowRoot && user.has("WEB_MLDMSU"))
buttons.push({ icon: "fa-stop-circle", title: L("lcl_mld_cancel_workflow"), action:"mld_cancelworkflow()" });
if (this_mld.canCopy)
buttons.push({ title: L("lcl_mld_copy"), icon: "copy.png", action: "mld_copy()" });
if (this_mld.canAfrond && !mld_melding.mld_afgerond)

View File

@@ -373,4 +373,19 @@ function mld_show_kennisbank(data)
$tbl.empty(); // Redundant ?
$("#mldFaq").hide();
}
}
function mld_cancelworkflow()
{
var url = "../mld/mld_cancelworkflow.asp?mld_key="+ mld_key;
FcltMgr.openModalDetail(url,
L("lcl_mld_cancel_workflow"),
{
callback: function()
{
FcltMgr.closeDetail(window, {close: true});
mld_melding_reload(mld_key);
}
});
}

View File

@@ -3201,6 +3201,7 @@ body.likemodal {
#besrejectbody {min-width:500px;}
#localebody {min-width:800px;}
#mod_mldcontinue {min-width:600px;}
#mod_mldcancelworkflow {min-width:600px;}
#mod_mlddouble {min-width:800px;}
#mod_mldclose {min-width:600px;}
#mod_mldaccept {min-width:500px;}