FSN#36151: AiAi bij melden moment inspectie.

svn path=/Website/trunk/; revision=29084
This commit is contained in:
Maykel Geerdink
2016-04-20 14:03:12 +00:00
parent b601c21fd6
commit fd8a32d543
4 changed files with 27 additions and 18 deletions

View File

@@ -108,6 +108,7 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
var scmode = 1; // 0 = Momentmode, 1 = Intervalmode.
var sctype = -1;
var vervaldatum = null;
var aanmaakdatum = null;
var vervallen = false;
var info = "";
sql = "SELECT *"
@@ -118,6 +119,7 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
+ " , id.ins_deel_key"
+ " , isc.ins_srtcontrole_info"
+ " , isc.ins_srtcontrole_type"
+ " , id.ins_deel_aanmaak"
+ " FROM ins_deel id"
+ " , ins_srtdeel s"
+ " , ins_srtcontrole isc"
@@ -134,6 +136,7 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
+ " , di.ins_srtcontrole_mode scmode"
+ " , di.ins_srtcontrole_type sctype"
+ " , xcp.ins_srtcontroledl_xcp_eind vervaldatum"
+ " , di.ins_deel_aanmaak"
+ " FROM defined_inspect di"
+ " , ins_srtcontroledl_xcp xcp"
+ " , ins_deelsrtcontrole idsc"
@@ -152,6 +155,7 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
sctype = oRs("sctype").Value;
vervaldatum = oRs("vervaldatum").Value != null? new Date(oRs("vervaldatum").Value) : null;
vervallen = vervaldatum != null && vervaldatum < new Date();
aanmaakdatum = new Date(oRs("ins_deel_aanmaak").Value);
oRs.MoveNext();
while (!oRs.eof)
{
@@ -164,6 +168,8 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
info = "";
sctype = -1; // Er zijn inspecties met verschillende soort ocntroles. Dan maar -1.
}
if (aanmaakdatum.getTime() < new Date(oRs("ins_deel_aanmaak").Value).getTime())
aanmaakdatum = new Date(oRs("ins_deel_aanmaak").Value);
oRs.MoveNext();
}
oRs.Close();
@@ -465,7 +471,6 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
+ " THEN 1" // Dag, maand of jaar.
+ " ELSE 0" // Tijd.
+ " END) aantal_dmj_eenheid"
//+ " , isc.ins_srtcontrole_type"
+ " FROM ins_deelsrtcontrole idsc"
+ " , ins_srtcontrole isc"
+ " , ins_srtcontroledl_xcp xcp"
@@ -473,16 +478,14 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
+ " AND idsc.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
+ " AND idsc.ins_deel_key = xcp.ins_deel_key(+)"
+ " AND COALESCE(xcp.ins_srtcontroledl_xcp_periode, isc.ins_srtcontrole_periode) > 0"
//+ " AND idsc.ins_deelsrtcontrole_status IN (5, 6)"
+ " AND idsc.ins_deel_key IN (" + ingesloten.join(",") + ")"
+ " AND idsc.ins_srtcontrole_key IN (" + ingeslotensc.join(",") + ")"
+ " GROUP BY isc.ins_srtcontrole_mode";
//+ " ,ins_srtcontrole_type";
var oRs = Oracle.Execute(sql);
var lastinspectdatum;
var dag_na_lastinspectdatum;
var aantal_dmj_eenheid;
var minDate = new Date();
var minDate = aanmaakdatum; // Als er nog geen inspecties zijn geweest dan is de aanmaakdatum de minimale datum.
if (!oRs.eof)
{
lastinspectdatum = new Date(oRs("lastinspectdatum").Value); // Kan uiterlijk vandaag zijn.
@@ -551,7 +554,7 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
timeStep: 60,
startTime: 0,
endTime: 23.75,
readonly: vervallen || insShow || (insEdit && insstatus == 2), // In status "Ingepland(0)" is de plandatum altijd nog aan te passen.
readonly: vervallen || insShow || (insEdit && insstatus == 2), // In status "Ingepland(0)" is de plandatum altijd nog aan te passen.
suppressEmpty: true
});

View File

@@ -223,7 +223,8 @@ if (savemode == "P")
var sql = "SELECT ins_deelsrtcontrole_datum"
+ " FROM ins_deelsrtcontrole idsc"
+ " WHERE idsc.ins_srtcontrole_key = " + ingesloten[i].srtcont_key
+ " AND idsc.ins_deel_key = " + ingesloten[i].ins_key;
+ " AND idsc.ins_deel_key = " + ingesloten[i].ins_key
+ " AND idsc.ins_deelsrtcontrole_datum IS NOT NULL";
var oRs = Oracle.Execute(sql);
var nextdate = null;
if (!oRs.eof)
@@ -274,7 +275,7 @@ else if (savemode == "C")
sql = "SELECT ins_controlemode_key"
+ " , 1"
+ " FROM ins_controlemode"
+ " WHERE ins_controlemode_success = 0"
+ " WHERE ins_controlemode_success IS NULL"
+ " UNION "
+ "SELECT ins_controlemode_key"
+ " , 2"
@@ -303,7 +304,8 @@ else if (savemode == "C")
sql = "SELECT ins_deelsrtcontrole_datum"
+ " FROM ins_deelsrtcontrole idsc"
+ " WHERE idsc.ins_srtcontrole_key = " + ingesloten[i].srtcont_key
+ " AND idsc.ins_deel_key = " + ingesloten[i].ins_key;
+ " AND idsc.ins_deel_key = " + ingesloten[i].ins_key
+ " AND idsc.ins_deelsrtcontrole_datum IS NOT NULL";
oRs = Oracle.Execute(sql);
if (oRs.eof)
{ // Er zijn nog geen inspecties geweest voor dit object en er is nog geen plandatum voor dit object ingevuld.
@@ -332,7 +334,7 @@ else if (savemode == "C")
+ " AND idsc.ins_deel_key = " + ingesloten[i].ins_key
oRs = Oracle.Execute(sql);
if (!oRs.eof)
if (!oRs.eof && oRs("ins_deelsrtcontrole_plandatum").Value != null)
{
// De plandatum is de volgende inspectiedatum
plandatum = new Date(oRs("ins_deelsrtcontrole_plandatum").Value);
@@ -368,17 +370,17 @@ else if (savemode == "C")
{
var fields = [ { dbs: "ins_deelsrtcontrole_opmerking", typ: "varchar", frm: "opmerk", track: L("lcl_remark"), len: 2000 },
{ dbs: "prs_perslid_key", typ: "key", val: user_key, track: L("lcl_name"), foreign: "prs_perslid" },
{ dbs: "ins_deelsrtcontrole_datum", typ: "datetime", val: deelsrtcontrole_datum, track: L("lcl_ins_controle_datum") } // De controledatum met tijd opslaan.
{ dbs: "ins_deelsrtcontrole_datum", typ: "datetime", val: deelsrtcontrole_datum, track: L("lcl_ins_controle_datum") }, // De controledatum met tijd opslaan.
{ dbs: "ins_deelsrtcontrole_datum_org", typ: "datetime", val: nextdate } // De orginele controledatum met tijd opslaan. Kan al gevuld zijn met dezelfde waarde.
];
if (!insPresent)
{ // Er is nog geen inspectie record aangemaakt. De volgende velden dienen dan nog ingevuld te worden.
fields.push({ dbs: "ins_deel_key", typ: "key", val: ingesloten[i].ins_key });
fields.push({ dbs: "ins_srtcontrole_key", typ: "key", val: ingesloten[i].srtcont_key });
fields.push({ dbs: "ins_deelsrtcontrole_datum_org", typ: "datetime", val: nextdate }); // De orginele controledatum met tijd opslaan.
fields.push({ dbs: "ins_deelsrtcontrole_key", typ: "key", seq: "ins_s_ins_deelsrtcontrole_key" });
}
if (nextdate_trunc < deelsrtcontrole_datum_trunc)
if (nextdate_trunc.getTime() < deelsrtcontrole_datum_trunc.getTime())
// Inspectie datum ligt voor de laatste inspectiedatum. Dan moet die inspectie niet successvol zijn, anders geeft dit problemen.
fields.push({ dbs: "ins_controlemode_key", typ: "key", val: controlemode, track: L("lcl_ins_controle_mode"), foreign: "ins_controlemode" } ); // Controlemode die niet succesvol is
else
@@ -390,7 +392,6 @@ else if (savemode == "C")
// Plandatum kan gevuld blijven met de huidige waarde.
var insUpd = buildTrackingUpdate("ins_deelsrtcontrole", " ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key, fields);
var err = Oracle.Execute(insUpd.sql, true);
firstone = false;
}
else
{ // Er is nog geen inspectie record aangemaakt.
@@ -415,6 +416,7 @@ else if (savemode == "C")
respijt = false;
plandatum = null;
insPresent = false; // Als er terug in de while lus wordt gesprongen is er geen inspectie record aanwezig.
firstone = false;
// Bereken de volgende inspectiedatum.
// De functie ins.nextcyclusdate levert de volgende inspectie datum met tijd op onafhankelijk van de eenheid.

View File

@@ -80,10 +80,14 @@ for (var i = 0; i < ingesloten.length; i++)
{ // Er is nog geen inspectie (ins_deelsrtcontrole) record aangemaakt. Eerst maar eens aanmaken.
// Als er al een inspectie is geweest kan er een volgende inspectiedatum berekend worden.
var nextdate = null;
// Bereken de volgende inspectiedatum. Als er nog geen inspecties zijn geweest wordt uitgegaan van de aanmaakdatum van het object.
sql = "SELECT ins.nextcyclusdate (" + ingesloten[i].ins_key + ", " + ingesloten[i].srtcont_key + ", 1) nextdate FROM DUAL"
oRs = Oracle.Execute(sql);
nextdate = new Date(oRs("nextdate").Value);
if (ingesloten[i].inspectiestatus > -1)
{ // Bereken de volgende inspectiedatum.
sql = "SELECT ins.nextcyclusdate (" + ingesloten[i].ins_key + ", " + ingesloten[i].srtcont_key + ", 1) nextdate FROM DUAL"
oRs = Oracle.Execute(sql);
nextdate = new Date(oRs("nextdate").Value);
}
//else Er zijn nog geen inspecties geweest voor dit object. Dit wordt de eerste inspectie.
// Volgende inspectiedatum kun je niet berekenen en is dus onbekend (leeg)
// Plandatum blijft leeg.
var fields = [ { dbs: "ins_deelsrtcontrole_key", typ: "key", seq: "ins_s_ins_deelsrtcontrole_key" },

View File

@@ -648,7 +648,7 @@ function ins_list (pautfunction, params)
+ " SELECT RANK ()" // Volgnummertje toekennen
+ " OVER ("
+ " PARTITION BY di.ins_deel_key, idsc.ins_srtcontrole_key" // Soort van group-by
+ " ORDER BY ins_deelsrtcontrole_datum DESC) rn" // Op volgorde zetten/Rangschikken/Sorteren op inspectiedatum.
+ " ORDER BY ins_deelsrtcontrole_key DESC) rn" // Op volgorde zetten/Rangschikken/Sorteren op inspectiedatum.
+ " , di.ins_deel_key"
+ " , CASE"
+ " WHEN " + lastinspect + " IS NULL" // Inspectie die voor het eerst is ingepland(0) of gestart(2) maar nog geen uitgevoerde/afgemelde(6) inspectie heeft.