FSN#36828: INS: Moment inspectie pas kunnen opslaan op of na geplande inspectiedatum.

svn path=/Website/trunk/; revision=29832
This commit is contained in:
Maykel Geerdink
2016-06-23 11:25:31 +00:00
parent 7ef51cdf00
commit bc1633b76d

View File

@@ -536,13 +536,18 @@ ins = {checkAutLevel:
+ " WHERE idsc.ins_deel_key = " + pins_deel_key
+ " AND idsc.ins_srtcontrole_key = " + params.srtcont_key
+ " AND idsc.ins_deelsrtcontrole_status IN (6)";
oRs = Oracle.Execute(sql);
var oRs = Oracle.Execute(sql);
var hasInspect = !oRs.eof;
oRs.Close();
var sql = "SELECT insp.ins_deelsrtcontrole_key"
+ " , insp.ins_deelsrtcontrole_status"
+ " , insp.vervaldatum"
+ " , insp.isc_mode"
// Moment inspectie pas kunnen opslaan op of na geplande inspectiedatum.
// Is in de moment modus de invoer na het volgende berekende inspectietijdstip? Voor interval modus is dit altijd het geval.
// Als er nog nooit is geinspecteerd en er is er nog geen ingepland dan is het ook ok.
// Als de inspectie gestart of gereed gemeld is dan is het ook ok, want anders had de inspectie nooit begonnen mogen worden.
+ " , CASE"
+ " WHEN insp.isc_mode = 1"
+ " THEN 1"
@@ -569,7 +574,7 @@ ins = {checkAutLevel:
+ " END)"
+ " THEN 1"
+ " ELSE 0"
+ " END minspect"
+ " END invoerAfterNext"
+ " FROM (SELECT idsc.ins_deelsrtcontrole_key"
+ " , ins_deelsrtcontrole_datum"
+ " , idsc.ins_deelsrtcontrole_status"
@@ -585,7 +590,7 @@ ins = {checkAutLevel:
+ " ELSE fac.nextcyclusdate(CASE"
+ " WHEN isc.ins_srtcontrole_mode = 0"
+ " THEN idsc.ins_deelsrtcontrole_datum_org" // Moment modus (0). Uitgaan van eigenlijke/orginele inspectiedatum.
+ " ELSE idsc.ins_deelsrtcontrole_datum" // Interval modus (1). Uitgaan van werkelijke inspectiedatum.
+ " ELSE idsc.ins_deelsrtcontrole_datum" // Interval modus (1). Uitgaan van werkelijke inspectiedatum.
+ " END"
+ " , isc.ins_srtcontrole_mode"
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, isc.ins_srtcontrole_eenheid)"
@@ -617,10 +622,10 @@ ins = {checkAutLevel:
var ins_deelsrtcontrole_status = oRs("ins_deelsrtcontrole_status").Value != null? oRs("ins_deelsrtcontrole_status").Value : -1;
var vervaldatum = oRs("vervaldatum").Value != null? new Date(oRs("vervaldatum").Value) : null;
var vervallen = vervaldatum != null && vervaldatum < new Date();
var minspect = oRs("minspect").Value == 1;
var invoerAfterNext = oRs("invoerAfterNext").Value == 1;
oRs.Close();
iresult.minspect = minspect;
iresult.invoerAfterNext = invoerAfterNext;
// Als de inspectie vervallen is moet je alleen nog de lopende inspecties (ingepland of later) kunnen gereedmelden en/of afronden,
// zodat deze inspectie afgerond kan worden. Nieuwe inspectie kunnen nooit meer beginnen.
@@ -630,18 +635,18 @@ ins = {checkAutLevel:
// Bij eerste inspectie of verwerkte inspectie kan er gepland worden.
iresult.canInspPlan = iresult.canInspect && !vervallen && (ins_deelsrtcontrole_status == -1 || ins_deelsrtcontrole_status == 6) && actief;
// Bij eerste inspectie, geplande inspectie of verwerkte inspectie kan er gestart worden.
iresult.canInspStart = iresult.canInspect && minspect && !vervallen &&
iresult.canInspStart = iresult.canInspect && invoerAfterNext && !vervallen &&
(ins_deelsrtcontrole_status <= 0 || ins_deelsrtcontrole_status == 6) && actief;
// Bij eerste inspectie, geplande inspectie, gestarte inspectie of verwerkte inspectie kan er gereedgemeld/afgerond worden.
iresult.canInspClose = iresult.canInspect && minspect &&
iresult.canInspClose = iresult.canInspect && invoerAfterNext &&
((!vervallen && (ins_deelsrtcontrole_status < 5 || ins_deelsrtcontrole_status == 6)) ||
(ins_deelsrtcontrole_status == 0 || ins_deelsrtcontrole_status == 2)) &&
actief;
// Alleen als de inspectie gereedgemeld is kan afgerond worden.
iresult.canInspFinish = iresult.canInspect && minspect && ins_deelsrtcontrole_status == 5 && actief;
iresult.canInspFinish = iresult.canInspect && invoerAfterNext && ins_deelsrtcontrole_status == 5 && actief;
}
else
iresult.minspect = true;
iresult.invoerAfterNext = true;
}
ioRs.Close();