213 lines
9.2 KiB
Plaintext
213 lines
9.2 KiB
Plaintext
<%@language = "javascript" %>
|
|
<%
|
|
/* $Revision$
|
|
$Id$
|
|
|
|
File: workflow_overview.asp
|
|
Description: Toont een workflow met flexkenmerken wat overzichtelijker
|
|
Parameters: start_key (REQUIRED)
|
|
Context:
|
|
Note: as-is
|
|
|
|
*/ %>
|
|
|
|
<!-- #include file="../Shared/common.inc" -->
|
|
<!-- #include file="../Shared/iface.inc" -->
|
|
<head>
|
|
<%
|
|
var start_key = getQParamInt("start_key");
|
|
var colorise = getQParam("color", 1);
|
|
var authparams = user.checkAutorisation("WEB_PRSSYS");
|
|
%>
|
|
<% FCLTHeader.Generate(); %>
|
|
<script type="text/javascript">
|
|
|
|
function mld_refresh()
|
|
{
|
|
if (!validateForm("wf"))
|
|
return false;
|
|
FcltMgr.reload();
|
|
}
|
|
|
|
function mld_cancel()
|
|
{
|
|
FcltMgr.closeDetail(window, { cancel: true } );
|
|
}
|
|
|
|
$( document ).ready(function() {
|
|
$(".sk").hover(function(){
|
|
$("."+this.className.split(' ').join('.')).toggleClass('border');
|
|
});$(".sk").click(function(){
|
|
$("."+this.className.split(' ').join('.')).toggleClass('border');
|
|
});
|
|
});
|
|
|
|
</script>
|
|
<style>
|
|
tr.sk { border-left: 5px solid #fafafa; border-right: 5px solid #fafafa; }
|
|
tr.border td { border-left: 2px solid #f00; border-right: 2px solid #f00; }
|
|
tr.hdr { border-left: 5px solid #fff; border-right: 5px solid #fff; }
|
|
tr.hdr th {border-right: 1px solid #ddd}
|
|
tr.sk td { color: #ffffff; padding: 3px 6px; border-right: 1px solid #ddd; }
|
|
td.nr { text-align: center;}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<%
|
|
var buttons = []
|
|
buttons.push({ icon: "page_refresh.png", title: L("lcl_refresh"), action: "FcltMgr.reload()", id: "btn_scf_refresh" });
|
|
IFRAMER_HEADER(L("lcl_mld_workflow_overview") , buttons);
|
|
|
|
BLOCK_START("mldWFOverview", L("lcl_mld_workflow_overview") );
|
|
//RWCHECKBOXTR("color", "fldcheck", "Kleurtjes", (colorise==1?" checked":""))
|
|
makeOverview();
|
|
BLOCK_END();
|
|
%>
|
|
</body>
|
|
</html>
|
|
|
|
<%
|
|
function makeOverview()
|
|
{
|
|
var keys = [];
|
|
var desc;
|
|
var allkenmerken = {}; // een rule condition heeft altijd betrekking op de kenmerken van de
|
|
// vorige step. Die onthouden we in allkenmerken
|
|
|
|
// start_key wordt verondersteld een root_key te zijn
|
|
var desc = buildStepHTML(start_key, allkenmerken);
|
|
Response.Write("<tr><td>"+desc+"</td></tr>");
|
|
keys.push(start_key);
|
|
|
|
for (i = 0;i < 10 && keys.length; i++) // Maximaal 10 stappen?
|
|
{
|
|
var isMerge = keys.length > 1;
|
|
var sql = "SELECT DISTINCT ws.mld_workflowstep_key,"
|
|
+ " wr.mld_workflowrule_condition"
|
|
+ " FROM mld_workflowrule wr,"
|
|
+ " mld_workflowstep ws"
|
|
+ " WHERE wr.mld_workflowstep_key IN ("+keys.join(",")+")"
|
|
+ " AND wr.mld_workflowstep_next_key NOT IN ("+keys.join(",")+")"
|
|
+ " AND ws.mld_workflowstep_key = wr.mld_workflowstep_next_key";
|
|
|
|
var oRs = Oracle.Execute(sql);
|
|
|
|
Response.Write("<tr>");
|
|
keys.length = 0; // Opnieuw opbouwen voor volgende niveau
|
|
while (!oRs.Eof)
|
|
{
|
|
step_key = oRs("mld_workflowstep_key").Value;
|
|
keys.push(oRs("mld_workflowstep_key").Value );
|
|
desc = buildStepHTML(step_key, allkenmerken, isMerge)
|
|
var condition = oRs("mld_workflowrule_condition").Value;
|
|
var condition_friendly_safe = condition || "";
|
|
|
|
if (condition)
|
|
{
|
|
for (var key in allkenmerken)
|
|
condition_friendly_safe = condition_friendly_safe.replace(new RegExp(":flex" + key, 'g'), "<em>" + safe.html(allkenmerken[key]) + "</em>");
|
|
|
|
desc = "<strong>WHEN:</strong> " + safe.html(condition) + "<br><strong>FRIENDLY:</strong> " + condition_friendly_safe + "<br>" + desc;
|
|
}
|
|
Response.Write("<td style='vertical-align:top;border:1px solid grey;'>"+ desc+"</td>");
|
|
oRs.MoveNext();
|
|
}
|
|
Response.Write("</tr>");
|
|
}
|
|
}
|
|
|
|
function buildStepHTML(step_key, allkenmerken, isMerge)
|
|
{
|
|
var pad = 'ffffff';
|
|
var sql = "SELECT mld_workflowstep_jointype,"
|
|
+ " ms.mld_stdmelding_omschrijving,"
|
|
+ " ms.mld_stdmelding_key,"
|
|
+ " md.ins_discipline_key,"
|
|
+ " md.ins_srtdiscipline_key"
|
|
+ " FROM mld_workflowstep ws,"
|
|
+ " mld_stdmelding ms,"
|
|
+ " mld_discipline md"
|
|
+ " WHERE ws.mld_stdmelding_key = ms.mld_stdmelding_key"
|
|
+ " AND md.ins_discipline_key = ms.mld_ins_discipline_key"
|
|
+ " AND ws.mld_workflowstep_key = " + step_key;
|
|
|
|
var oRs = Oracle.Execute(sql);
|
|
|
|
var desc = ("<p>{0}: <b>"+oRs("mld_stdmelding_omschrijving").Value+"</b>").format(L("mld_workflowstep"))
|
|
if (isMerge)
|
|
{
|
|
var jointype = oRs("mld_workflowstep_jointype").Value;
|
|
desc += "<br>JOIN: " + (jointype?"OR":"AND");
|
|
}
|
|
desc += "</p>";
|
|
|
|
var sql1 = " SELECT mkm.mld_kenmerk_key,"
|
|
+ " mkm.mld_kenmerk_niveau,"
|
|
+ " mkm.mld_kenmerk_verplicht,"
|
|
+ " mkm.mld_kenmerk_groep,"
|
|
+ " mld_kenmerk_volgnummer,"
|
|
+ " mld_kenmerk_toonbaar,"
|
|
+ " mld_srtkenmerk_omschrijving,"
|
|
+ " mld_srtkenmerk_kenmerktype,"
|
|
+ " mkm.mld_srtkenmerk_key,"
|
|
+ " TO_CHAR(dbms_utility.get_hash_value(mkm.mld_srtkenmerk_key,0,power(2,24)), '0XXXXXX') clr"
|
|
+ " FROM mld_kenmerk mkm,"
|
|
+ " mld_srtkenmerk msk,"
|
|
+ " (SELECT 'S' mld_kenmerk_niveau,"
|
|
+ " mld_stdmelding_key ref_mld_stdmelding_key,"
|
|
+ " mld_stdmelding_key,"
|
|
+ " ins_discipline_key,"
|
|
+ " m2.ins_srtdiscipline_key"
|
|
+ " FROM mld_stdmelding md, mld_discipline m2"
|
|
+ " WHERE md.mld_ins_discipline_key = m2.ins_discipline_key"
|
|
+ " UNION ALL"
|
|
+ " SELECT 'D' mld_kenmerk_niveau,"
|
|
+ " ins_discipline_key ref_mld_stdmelding_key,"
|
|
+ " NULL mld_stdmelding_key,"
|
|
+ " ins_discipline_key ins_discipline_key,"
|
|
+ " ins_srtdiscipline_key"
|
|
+ " FROM mld_discipline m2"
|
|
+ " UNION ALL"
|
|
+ " SELECT 'T' mld_kenmerk_niveau,"
|
|
+ " ins_srtdiscipline_key ref_mld_stdmelding_key,"
|
|
+ " NULL mld_stdmelding_key,"
|
|
+ " NULL ins_discipline_key,"
|
|
+ " ins_srtdiscipline_key"
|
|
+ " FROM ins_srtdiscipline m2) s"
|
|
+ " WHERE mkm.mld_kenmerk_verwijder IS NULL"
|
|
+ " AND mkm.mld_stdmelding_key = ref_mld_stdmelding_key"
|
|
+ " AND mkm.mld_kenmerk_niveau = s.mld_kenmerk_niveau"
|
|
+ " AND mkm.mld_srtkenmerk_key = msk.mld_srtkenmerk_key"
|
|
+ " AND s.ins_srtdiscipline_key = "+oRs("ins_srtdiscipline_key").Value
|
|
+ " AND (s.ins_discipline_key = "+oRs("ins_discipline_key").Value
|
|
+ " OR ('T' = mkm.mld_kenmerk_niveau AND s.ins_srtdiscipline_key = "+oRs("ins_srtdiscipline_key").Value+"))"
|
|
+ " AND (s.mld_stdmelding_key = "+oRs("mld_stdmelding_key").Value
|
|
+ " OR ('D' = mkm.mld_kenmerk_niveau AND s.ins_discipline_key = "+oRs("ins_discipline_key").Value+")"
|
|
+ " OR ('T' = mkm.mld_kenmerk_niveau AND s.ins_srtdiscipline_key = "+oRs("ins_srtdiscipline_key").Value+"))"
|
|
+ " ORDER BY mld_kenmerk_volgnummer";
|
|
|
|
var oRs1 = Oracle.Execute(sql1);
|
|
desc += "<table><tr class='hdr'><th>key</th><th>nr</th><th>kenmerk</th><th>grp</th><th>verpl</th><th>ntw</th><th>niv</th></tr>";
|
|
while (!oRs1.Eof) // over alle kenmerken van deze melding
|
|
{
|
|
allkenmerken[oRs1("mld_kenmerk_key").value] = oRs1("mld_srtkenmerk_omschrijving").Value;
|
|
if (colorise != -1) {
|
|
clr = oRs1("clr").Value.substr(2);
|
|
}
|
|
desc += "<tr class='sk sk"+oRs1("mld_srtkenmerk_key").value+"' style='background-color: #"+clr+";'>"
|
|
+ "<td class='nr'>"+oRs1("mld_kenmerk_key").Value+"</td>"
|
|
+ "<td class='nr'>"+oRs1("mld_kenmerk_volgnummer").Value+"</td>"
|
|
+ "<td>"+oRs1("mld_srtkenmerk_omschrijving").Value+"</td>"
|
|
+ "<td class='nr'>"+(oRs1("mld_kenmerk_groep").Value>=1?oRs1("mld_kenmerk_groep").Value:"")+"</td>"
|
|
+ "<td class='nr'>"+(oRs1("mld_kenmerk_verplicht").Value>=1?oRs1("mld_kenmerk_verplicht").Value:"")+"</td>"
|
|
+ "<td class='nr'>"+(oRs1("mld_kenmerk_toonbaar").Value==1?"1":"")+"</td>"
|
|
+ "<td class='nr'>"+oRs1("mld_kenmerk_niveau").Value+"</td>"
|
|
+ "</tr>";
|
|
oRs1.MoveNext();
|
|
}
|
|
desc +="</table>";
|
|
oRs.Close();
|
|
|
|
return desc;
|
|
}
|
|
%> |