FCLT#53547: MJOB: MJOB aanvullingen.

svn path=/Website/trunk/; revision=38403
This commit is contained in:
Maykel Geerdink
2018-07-05 15:52:38 +00:00
parent 6cc3627ce0
commit 3522b0bb90
2 changed files with 30 additions and 26 deletions

View File

@@ -1055,7 +1055,7 @@ ins = {checkAutLevel:
var max_dsc_key = oRsM("max_dsc_key").Value;
var dsc_status = oRsM("ins_deelsrtcontrole_status").Value || -1;
var cm_success = (oRsM("ins_controlemode_success").Value || 0) == 1;
var dsc_freezedate = oRsM("ins_deelsrtcontrole_freezedate").Value? new Date(oRsM("ins_deelsrtcontrole_freezedate").Value) : null;
var dsc_freezedate = oRsM("ins_deelsrtcontrole_freezedate").Value != null? new Date(oRsM("ins_deelsrtcontrole_freezedate").Value) : null;
if (dsc_status == 6 && cm_success) // 1) De laatste inspectie is succesvol voltooid: De volgende met ins.nextcyclusdate() te berekenen.
{ // De laatste inspectie is een succesvol afgeronde inspectie. De volgende met ins.nextcyclusdate() te berekenen.
@@ -1082,7 +1082,7 @@ ins = {checkAutLevel:
+ " , " + (ismjob? "1" : "0") + ") nextdate"
+ " FROM ins_v_defined_inspect_xcp xcp"
+ " WHERE xcp.ins_deel_key = " + pins_key
+ " AND xcp.ins_srtcontrole_key = " + pscen_key;
+ " AND xcp.ins_srtcontrole_key = " + psrtcont_key;
var oRsN = Oracle.Execute(sql);
nextdate = new Date(oRsN("nextdate").Value);
oRsN.Close();

View File

@@ -25,6 +25,7 @@ var JSON_Result = true;
<%
protectRequest.validateToken();
var scen_key = getFParamInt("scenario", -1);
var mjb_freeze_year = S("mjb_freeze_year");
var sql = "SELECT ins_scenario_omschrijving"
+ " FROM ins_scenario"
@@ -69,6 +70,29 @@ Oracle.Transaction();
for (var i = 0; i < ingesloten.length; i++)
{ // Toevoegen van de taak voor het object aan het (nieuwe) scenario.
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"
+ " , EXTRACT (YEAR FROM idsc.ins_deelsrtcontrole_freezedate) freezejaar"
+ " 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 = 1"
+ " ORDER BY idsc.ins_deelsrtcontrole_key DESC";
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");
dsc_freezejaar = oRs("freezejaar").Value;
}
oRs.Close();
// Waarden van het scenario ophalen.
var sql = "SELECT xcp.ins_srtcontroledl_xcp_key"
+ " , isc.ins_srtcontrole_mode"
@@ -150,28 +174,8 @@ for (var i = 0; i < ingesloten.length; i++)
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 = 1"
+ " ORDER BY idsc.ins_deelsrtcontrole_key DESC";
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)
// In mjob komen geen Gereedgemeld/Afgerond(5) inspecties voor. Alleen status 0, 2 en 6.
if (dlsrtcont_key > 0 && dlsrtcont_status == 0)
{
if (plandatum)
{
@@ -192,7 +196,8 @@ for (var i = 0; i < ingesloten.length; i++)
}
else
{ // Er is in de Active Situatie (AS) geen lopende inspectie.
if (plandatum)
// of er is een geaccordeerde inspectie voor het freeze jaar.
if (plandatum && !(dlsrtcont_status == 2 && dsc_freezejaar == mjb_freeze_year))
{
var nextdate = ins.func_get_nextdate(ingesloten[i].ins_key, ingesloten[i].srtcont_key, 1);
var fields = [ { dbs: "ins_deel_key", typ: "key", val: ingesloten[i].ins_key },
@@ -207,7 +212,6 @@ for (var i = 0; i < ingesloten.length; i++)
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.