FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34676
This commit is contained in:
20
APPL/MGT/ctr_scenario.js
Normal file
20
APPL/MGT/ctr_scenario.js
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: ctr_scenario.js
|
||||
*/
|
||||
function institute_scenario(key, table)
|
||||
{
|
||||
FcltMgr.confirm( L("lcl_mjb_inst_scen") + "?",
|
||||
{ autoconfirm: false },
|
||||
function() {
|
||||
var data = { scenario: key };
|
||||
protectRequest.dataToken(data);
|
||||
$.post("../mjb/mjb_institute_scen.asp"
|
||||
, data
|
||||
, FcltCallbackClose
|
||||
, "json");
|
||||
}
|
||||
);
|
||||
}
|
||||
198
APPL/MJB/mjb_institute_scen.asp
Normal file
198
APPL/MJB/mjb_institute_scen.asp
Normal file
@@ -0,0 +1,198 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: mjb_institute_scen.asp
|
||||
Description: Doorvoeren van een scenario
|
||||
Parameters:
|
||||
scen_key Scenario key.
|
||||
Context:
|
||||
Note:
|
||||
|
||||
*/ %>
|
||||
|
||||
<%
|
||||
var JSON_Result = true;
|
||||
%>
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
<!-- #include file="../Shared/selector.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="../shared/save2db.inc" -->
|
||||
<!-- #include file="../ins/ins.inc" -->
|
||||
|
||||
<%
|
||||
protectRequest.validateToken();
|
||||
var scen_key = getFParamInt("scenario", -1);
|
||||
|
||||
var sql = "SELECT xcp.ins_deel_key"
|
||||
+ " , xcp.ins_srtcontrole_key"
|
||||
+ " FROM ins_v_defined_inspect_xcp xcp"
|
||||
+ " WHERE xcp.ins_scenario_key = " + scen_key
|
||||
+ " ORDER BY xcp.ins_deel_key, xcp.ins_srtcontrole_key";
|
||||
oRs = Oracle.Execute(sql);
|
||||
|
||||
var tobeinstituted = 0;
|
||||
var ingesloten = [];
|
||||
while (!oRs.eof)
|
||||
{
|
||||
var ins_key = oRs("ins_deel_key").Value;
|
||||
var srtcont_key = oRs("ins_srtcontrole_key").Value;
|
||||
// Rechten controleren.
|
||||
var this_ins = ins.func_enabled_deel(ins_key, {srtcont_key: srtcont_key});
|
||||
if (this_ins.canChangeXcp) // Mag ik de AS xcp waarde wijzigen?
|
||||
{
|
||||
ingesloten.push({ins_key: ins_key, srtcont_key: srtcont_key});
|
||||
|
||||
oRs.MoveNext();
|
||||
tobeinstituted++;
|
||||
}
|
||||
}
|
||||
|
||||
user.anything_todo_or_abort(tobeinstituted > 0); // We klagen niet over enkele wel en enkele niet.
|
||||
|
||||
for (var i = 0; i < ingesloten.length; i++)
|
||||
{ // Toevoegen van de taak voor het object aan het (nieuwe) scenario.
|
||||
// Waarden van het scenario ophalen.
|
||||
var sql = "SELECT xcp.ins_srtcontroledl_xcp_key"
|
||||
+ " , isc.ins_srtcontrole_mode"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_periode"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eenheid"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_bits"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_uren"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_materia"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_kosten"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_kosten2"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_kosten3"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_perc"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_startdat"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eind"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_opmerk"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_aantal"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_aanteh"
|
||||
+ " , xcp.ins_scenario_key"
|
||||
+ " , isc.ins_srtcontrole_opmerking"
|
||||
+ " FROM ins_srtcontroledl_xcp xcp"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " WHERE xcp.ins_deel_key = " + ingesloten[i].ins_key
|
||||
+ " AND xcp.ins_srtcontrole_key = " + ingesloten[i].srtcont_key
|
||||
+ " AND xcp.ins_srtcontrole_key = isc.ins_srtcontrole_key"
|
||||
+ " AND xcp.ins_scenario_key = " + scen_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
var xcp_key = oRs("ins_srtcontroledl_xcp_key").Value;
|
||||
var mode = oRs("ins_srtcontrole_mode").Value;
|
||||
var periode = oRs("ins_srtcontroledl_xcp_periode").Value;
|
||||
var eenheid = oRs("ins_srtcontroledl_xcp_eenheid").Value;
|
||||
var bits = oRs("ins_srtcontroledl_xcp_bits").Value;
|
||||
var uren = oRs("ins_srtcontroledl_xcp_uren").Value;
|
||||
var materiaal = oRs("ins_srtcontroledl_xcp_materia").Value;
|
||||
var kosten1 = oRs("ins_srtcontroledl_xcp_kosten").Value;
|
||||
var kosten2 = oRs("ins_srtcontroledl_xcp_kosten2").Value;
|
||||
var kosten3 = oRs("ins_srtcontroledl_xcp_kosten3").Value;
|
||||
var perc = oRs("ins_srtcontroledl_xcp_perc").Value;
|
||||
var groep = oRs("ins_srtcontroledl_xcp_groep").Value;
|
||||
var vervaldatum = oRs("ins_srtcontroledl_xcp_eind").Value != null? new Date(oRs("ins_srtcontroledl_xcp_eind").Value) : null;
|
||||
var opmerk = oRs("ins_srtcontroledl_xcp_opmerk").Value;
|
||||
var startdatum = oRs("ins_srtcontroledl_xcp_startdat").Value != null? new Date(oRs("ins_srtcontroledl_xcp_startdat").Value) : null;
|
||||
var aantal = oRs("ins_srtcontroledl_xcp_aantal").Value;
|
||||
var aanteh = oRs("ins_srtcontroledl_xcp_aanteh").Value;
|
||||
}
|
||||
|
||||
// Xcp scenario -> Active Situatie (AS).
|
||||
var params = { xcp_key: xcp_key,
|
||||
mode: mode,
|
||||
periode: periode,
|
||||
eenheid: eenheid,
|
||||
bits: bits,
|
||||
uren: uren,
|
||||
materiaal: materiaal,
|
||||
kosten1: kosten1,
|
||||
kosten2: kosten2,
|
||||
kosten3: kosten3,
|
||||
perc: perc,
|
||||
groep: groep,
|
||||
vervaldatum: vervaldatum,
|
||||
opmerk: opmerk,
|
||||
startdatum: startdatum,
|
||||
aantal: aantal,
|
||||
aanteh: aanteh,
|
||||
isScenario: false,
|
||||
iscen_key: scen_key
|
||||
};
|
||||
var result = ins.saveXcp(ingesloten[i].ins_key, ingesloten[i].srtcont_key, params);
|
||||
|
||||
// Plandatum scenario -> Active Situatie (AS).
|
||||
// Plandatum scenario ophalen.
|
||||
sql = "SELECT idsc.ins_deelsrtcontrole_plandatum"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_deel_key = " + ingesloten[i].ins_key
|
||||
+ " AND idsc.ins_srtcontrole_key = " + ingesloten[i].srtcont_key
|
||||
+ " AND idsc.ins_scenario_key = " + scen_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var plandatum = oRs("ins_deelsrtcontrole_plandatum").Value != null? new Date(oRs("ins_deelsrtcontrole_plandatum").Value) : null;
|
||||
oRs.Close();
|
||||
|
||||
var dlsrtcont_key = -1;
|
||||
var dlsrtcont_status;
|
||||
var dsc_plandatum_string = L("lcl_empty");
|
||||
// Laatste inspectie record (Active Situatie (AS)) ophalen.
|
||||
sql = "SELECT idsc.ins_deelsrtcontrole_key"
|
||||
+ " , idsc.ins_deelsrtcontrole_status"
|
||||
+ " , idsc.ins_deelsrtcontrole_plandatum"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_deel_key = " + ingesloten[i].ins_key
|
||||
+ " AND idsc.ins_srtcontrole_key = " + ingesloten[i].srtcont_key
|
||||
+ " AND idsc.ins_scenario_key IS NULL";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
dlsrtcont_key = oRs("ins_deelsrtcontrole_key").Value;
|
||||
dlsrtcont_status = oRs("ins_deelsrtcontrole_status").Value;
|
||||
dsc_plandatum_string = oRs("ins_deelsrtcontrole_plandatum").Value != null? toDateTimeString(new Date(oRs("ins_deelsrtcontrole_plandatum").Value)) : L("lcl_empty");
|
||||
}
|
||||
|
||||
// TODO: Wat als de status Gestart(2) of Gereedgemeld/Afgerond(5) is???
|
||||
if (dlsrtcont_key > 0 && dlsrtcont_status < 6)
|
||||
{
|
||||
if (plandatum)
|
||||
{
|
||||
var fields = [ { dbs: "prs_perslid_key", typ: "key", val: user_key },
|
||||
{ dbs: "ins_deelsrtcontrole_plandatum", typ: "datetime", val: plandatum }
|
||||
];
|
||||
var insUpd = buildTrackingUpdate("ins_deelsrtcontrole", " ins_deelsrtcontrole_key = " + dlsrtcont_key, fields);
|
||||
var err = Oracle.Execute(insUpd.sql, true);
|
||||
ins.trackinspectupdate(dlsrtcont_key, L("lcl_mjb_adjustby_scen") + "\n" + L("lcl_opdr_plandate") + dsc_plandatum_string + " -> " + toDateTimeString(plandatum));
|
||||
}
|
||||
else if (dlsrtcont_status == 0)
|
||||
{ // Er was een inspectie ingepland voor de Active Situatie (AS). Het inspectierecord verwijderen omdat de plandatum van het scenario leeg is;
|
||||
Oracle.Execute("DELETE FROM ins_deelsrtcontrole WHERE ins_deelsrtcontrole_key = " + dlsrtcont_key);
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // Er is in de Active Situatie (AS) geen lopende inspectie.
|
||||
if (plandatum)
|
||||
{
|
||||
var fields = [ { dbs: "ins_deel_key", typ: "key", val: ingesloten[i].ins_key },
|
||||
{ dbs: "ins_srtcontrole_key", typ: "key", val: ingesloten[i].srtcont_key },
|
||||
{ dbs: "ins_deelsrtcontrole_status", typ: "key", val: 0 },
|
||||
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
|
||||
{ dbs: "ins_deelsrtcontrole_plandatum", typ: "datetime", val: plandatum }
|
||||
];
|
||||
var insIns = buildInsert("ins_deelsrtcontrole", fields);
|
||||
dlsrtcont_key = insIns.sequences["ins_deelsrtcontrole_key"];
|
||||
var err = Oracle.Execute(insIns.sql, true);
|
||||
}
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
// Nu nog het scenario verwijderen.
|
||||
// Een scenario gooit via de cascade zijn ins_deelsrtcontrole en ins_srtcontroledl_xcp records mee weg.
|
||||
Oracle.Execute("DELETE FROM ins_scenario WHERE ins_scenario_key = " + scen_key);
|
||||
|
||||
Response.Write(JSON.stringify(result));
|
||||
%>
|
||||
Reference in New Issue
Block a user