FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.

svn path=/Website/trunk/; revision=34520
This commit is contained in:
Maykel Geerdink
2017-07-05 07:52:36 +00:00
parent b413a419e0
commit e0cc25a4ca
2 changed files with 278 additions and 0 deletions

132
APPL/MJB/mjb_incl_scen.asp Normal file
View File

@@ -0,0 +1,132 @@
<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: mjb_incl_scen.asp
Description: Invoerscherm voor het opnemen van periodieke taken in een scenario
Parameters:
ins_keys Array van object keys.
srtcont_keys Array van soort controlesopdracht keys
Context:
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<%
FCLTHeader.Requires({ plugins: ["jQuery"],
js: [] })
%>
<html>
<head>
<% FCLTHeader.Generate(); %>
<%
var ins_key_arr = getQParamIntArray("ins_keys");
var srtcont_key_arr = getQParamIntArray("srtcont_keys");
var sql_scen = "SELECT COUNT(ins_scenario_key) aantal"
+ " , MAX(ins_scenario_key) maxkey"
+ " FROM ins_scenario"
+ " WHERE ins_scenario_verwerkt IS NULL";
var oRs = Oracle.Execute(sql_scen);
var aantal = oRs("aantal").Value;
var maxkey = oRs("maxkey").Value;
var hassenarios = aantal > 0;
%>
<script>
var hassenarios = <%=hassenarios? 1 : 0%> == 1;
function mjb_newscen()
{
$("#mjbexistscen").hide();
$("#mjbnewscen").show();
FcltMgr.resized(window);
$("#btn_new_scen").hide(); // Button "Nieuw scenario" verbergen.
$("#scen_key").val(-1); // Nieuw scenario => scen_key waarde -1 geven.
$("#scenoms").addClass("required");
}
function afsluiten(jdata)
{ // Sluit onszelf.
FcltMgr.closeDetail(window, { warning: jdata.warning, success: true });
}
function mjb_inclscen()
{
// Standaard checks op verplichte velden, datum formaat, numeriek en float formaat, currency formaat.
if (!validateForm("u2"))
return false;
$.post($("form[name=u2]")[0].action,
$("[name=u2]").serialize(),
FcltCallbackAndThenAlways(afsluiten),
"json");
return true; // disable button
}
function mld_cancel()
{
FcltMgr.closeDetail(window, { cancel: true } );
}
function onChangeScenario()
{
$("#scen_key").val($("#scenario").val());
}
</script>
</head>
<body class="modal" id="mod_mjbinclscen">
<form action="mjb_incl_scen_save.asp" method="post" name="u2">
<input type="hidden" name="ins_keys" id="ins_keys" value="<%=ins_key_arr.join(",")%>">
<input type="hidden" name="srtcont_keys" id="srtcont_keys" value="<%=srtcont_key_arr.join(",")%>">
<input type="hidden" name="scen_key" id="scen_key" value="<%=aantal == 1? maxkey : -1%>">
<div id="mjbexistscen" <%=!hassenarios? "style='display:none'" : ""%>>
<% BLOCK_START("mjbInclScen", L("lcl_mjb_scenario"));
sql = "SELECT ins_scenario_key"
+ " , ins_scenario_omschrijving"
+ " FROM ins_scenario";
var oRs = Oracle.Execute(sql + " WHERE ins_scenario_verwerkt IS NULL");
FCLTselector("scenario",
sql,
{ label: L("lcl_mjb_scenarios"),
initKey: -1,
emptyOption: "",
onChange: "onChangeScenario()",
selectjustone: true
});
BLOCK_END();
%>
</div>
<div id="mjbnewscen" <%=hassenarios? "style='display:none'" : ""%>>
<% BLOCK_START("mjbInclScen", L("lcl_mjb_new_scenario"));
RWFIELDTR("scenoms", "fldscenoms", L("lcl_mjb_scenario"), "", {maxlength: 30});
RWTEXTAREATR("scenopm",
"fldtxt",
L("lcl_mjb_scen_opm"),
"",
{html: "rows='8' cols='80'"});
BLOCK_END();
%>
</div>
<%
var buttons = [];
if (hassenarios)
buttons.push({title: L("lcl_mjb_new_scenario"), action:"mjb_newscen()", singlepress: true, id: "btn_new_scen"}); // Nieuw scenario.
buttons.push({title: L("lcl_mjb_incl_scen"), action:"mjb_inclscen()", singlepress: true, id: "btn_submit"}); // Opnemen in scenario.
buttons.push({title: L("lcl_cancel"), action:"mld_cancel()"});
CreateButtons(buttons);
IFACE.FORM_END();
%>
</form>
</body>
</html>

View File

@@ -0,0 +1,146 @@
<%@ LANGUAGE = JavaScript %>
<% /*
$Revision$
$Id$
File: mjb_incl_scen_save.asp
Description: Opnemen van periodieke taken in een scenario
Parameters:
ins_keys Array van object keys.
srtcont_keys Array van soort controlesopdracht keys
scenario Scenario key waarin de periodieke taken in opgenomen dienen te worden.
Context:
Note:
*/ %>
<%
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../ins/ins.inc" -->
<%
protectRequest.validateToken();
var ins_key_arr = getFParamIntArray("ins_keys");
var srtcont_key_arr = getFParamIntArray("srtcont_keys");
var scen_key = getFParamInt("scen_key");
var sql = "SELECT isc.ctr_discipline_key"
+ " FROM ins_srtcontrole isc"
+ " WHERE isc.ins_srtcontrole_key = " + srtcont_key_arr[0];
var oRs = Oracle.Execute(sql);
ctrdisc_key = oRs("ctr_discipline_key").Value;
lcl.set_dialect(ctrdisc_key, "INS_TAB_DISCIPLINE_KEY");
var tobeincluded = 0;
var ingesloten = [];
// Bepaal de objecten in de selectie die
// ook echt opgenomen kunnen of mogen worden in het scenario.
for (var i = 0; i < ins_key_arr.length; i++)
{
var notexist = true;
if (scen_key > 0)
{
sql = "SELECT ins_srtcontroledl_xcp_key"
+ " FROM ins_srtcontroledl_xcp"
+ " WHERE ins_deel_key = " + ins_key_arr[i]
+ " AND ins_srtcontrole_key = " + srtcont_key_arr[i]
+ " AND ins_scenario_key = " + scen_key;
oRs = Oracle.Execute(sql);
notexist = oRs.eof;
}
var this_ins = ins.func_enabled_deel(ins_key_arr[i], {srtcont_key: srtcont_key_arr[i]});
if (notexist && this_ins.canChangeXcp) // Mag ik nieuwe exceptions (xcp) waarden van de taak voor het nieuwe scenario wijzigen?
{
ingesloten.push({ins_key: ins_key_arr[i], srtcont_key: srtcont_key_arr[i]});
tobeincluded++;
}
}
user.anything_todo_or_abort(tobeincluded > 0); // We klagen niet over enkele wel en enkele niet.
var result = {success: true, message: "", ins_keys: ins_key_arr.join(","), srtcont_keys: srtcont_key_arr.join(",")};
// Is er een nieuw scenario opgegeven?
if (scen_key < 0)
{ // Er is een nieuw scenario opgegeven.
var fields = [{ dbs: "ins_scenario_omschrijving", typ: "varchar", frm: "scenoms" },
{ dbs: "ins_scenario_opmerking", typ: "varchar", frm: "scenopm" },
{ dbs: "ins_scenario_status", typ: "float", val: 0 },
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
{ dbs: "ins_scenario_key", typ: "key", seq: "ins_s_ins_scenario_key" }
];
var scenIns = buildInsert("ins_scenario", fields);
scen_key = scenIns.sequences["ins_scenario_key"];
var err = Oracle.Execute(scenIns.sql, true);
if (err.friendlyMsg)
{
result.warning = err.friendlyMsg;
result.success = false;
}
}
result.scen_key = scen_key;
for (var i = 0; i < ingesloten.length; i++)
{ // Toevoegen van de taak voor het object aan het (nieuwe) scenario.
sql = "INSERT INTO ins_srtcontroledl_xcp (ins_srtcontroledl_xcp_key"
+ " , ins_deel_key"
+ " , ins_srtcontrole_key"
+ " , ins_srtcontroledl_xcp_periode"
+ " , ins_srtcontroledl_xcp_eenheid"
+ " , ins_srtcontroledl_xcp_bits"
+ " , ins_srtcontroledl_xcp_uren"
+ " , ins_srtcontroledl_xcp_materia"
+ " , ins_srtcontroledl_xcp_kosten"
+ " , ins_srtcontroledl_xcp_kosten2"
+ " , ins_srtcontroledl_xcp_kosten3"
+ " , ins_srtcontroledl_xcp_perc"
+ " , ins_srtcontroledl_xcp_groep"
+ " , ins_srtcontroledl_xcp_eind"
+ " , ins_srtcontroledl_xcp_opmerk"
+ " , ins_srtcontroledl_xcp_startdat"
+ " , ins_srtcontroledl_xcp_aantal"
+ " , ins_srtcontroledl_xcp_aanteh"
+ " , ins_scenario_key)"
+ " SELECT ins_s_srtcontroledl_xcp_key.nextval"
+ " , " + ingesloten[i].ins_key
+ " , " + ingesloten[i].srtcont_key
+ " , ins_srtcontroledl_xcp_periode"
+ " , ins_srtcontroledl_xcp_eenheid"
+ " , ins_srtcontroledl_xcp_bits"
+ " , ins_srtcontroledl_xcp_uren"
+ " , ins_srtcontroledl_xcp_materia"
+ " , ins_srtcontroledl_xcp_kosten"
+ " , ins_srtcontroledl_xcp_kosten2"
+ " , ins_srtcontroledl_xcp_kosten3"
+ " , ins_srtcontroledl_xcp_perc"
+ " , ins_srtcontroledl_xcp_groep"
+ " , ins_srtcontroledl_xcp_eind"
+ " , ins_srtcontroledl_xcp_opmerk"
+ " , ins_srtcontroledl_xcp_startdat"
+ " , ins_srtcontroledl_xcp_aantal"
+ " , ins_srtcontroledl_xcp_aanteh"
+ " , " + scen_key
+ " FROM ins_v_defined_inspect_xcp"
+ " WHERE ins_deel_key = " + ingesloten[i].ins_key
+ " AND ins_srtcontrole_key = " + ingesloten[i].srtcont_key
+ " AND ins_scenario_key IS NULL";
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
{
result.warning = err.friendlyMsg;
result.success = false;
}
}
Response.Write(JSON.stringify(result));
%>