FSN#38438: INS: Kalender geeft geen geldige datum weer, maar opslaan gaat goed.
svn path=/Website/trunk/; revision=31504
This commit is contained in:
@@ -370,6 +370,19 @@ if (ins_key_arr.length == 1)
|
||||
}
|
||||
}
|
||||
$("#finish").val(finish);
|
||||
<% }
|
||||
else if (insEdit)
|
||||
{ %>
|
||||
if (dsc_is_afgemeld)
|
||||
{
|
||||
// Controleren of de huidige uitvoerdatum van de inspectie tussen die van de voorgaande en volgende inspectie ligt.
|
||||
var uitvoerdatum = new Date(parseInt($("#deelsrtcontrole_datum").val()));
|
||||
if (uitvoerdatum <= minDateEdit || uitvoerdatum >= maxDateEdit)
|
||||
{
|
||||
FcltMgr.alert(L("lcl_ins_controle_between_two"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
<% } %>
|
||||
|
||||
$.post($("form[name=u2]")[0].action,
|
||||
@@ -577,7 +590,6 @@ if (ins_key_arr.length == 1)
|
||||
|
||||
// Men mag alleen een inspectie-uitvoerdatum invoeren die later is dan de laatste inspectie-uitvoerdatum.
|
||||
// Bij multi ook de laatste uitvoerdatum bepalen.
|
||||
// Bij alleen uren inspecties de laatste uitvoerdatum tonen als minimale datum, anders een dag later.
|
||||
sql = "SELECT MAX(idsc.ins_deelsrtcontrole_datum) lastinspectdatum"
|
||||
+ " , MAX(idsc.ins_deelsrtcontrole_datum + 1) dag_na_lastinspectdatum"
|
||||
+ " , SUM (CASE"
|
||||
@@ -585,6 +597,7 @@ if (ins_key_arr.length == 1)
|
||||
+ " THEN 1" // Dag, maand of jaar.
|
||||
+ " ELSE 0" // Tijd.
|
||||
+ " END) aantal_dmj_eenheid"
|
||||
+ " , isc.ins_srtcontrole_mode"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
@@ -599,13 +612,20 @@ if (ins_key_arr.length == 1)
|
||||
var lastinspectdatum;
|
||||
var dag_na_lastinspectdatum;
|
||||
var aantal_dmj_eenheid;
|
||||
var mode;
|
||||
var minDate = aanmaakdatum; // Als er nog geen inspecties zijn geweest dan is de aanmaakdatum de minimale datum.
|
||||
if (!oRs.eof && oRs("lastinspectdatum").Value != null)
|
||||
{
|
||||
lastinspectdatum = new Date(oRs("lastinspectdatum").Value); // Kan uiterlijk vandaag zijn.
|
||||
dag_na_lastinspectdatum = new Date(oRs("dag_na_lastinspectdatum").Value); // Kan uiterlijk morgen zijn.
|
||||
aantal_dmj_eenheid = oRs("aantal_dmj_eenheid").Value;
|
||||
minDate = aantal_dmj_eenheid? dag_na_lastinspectdatum : lastinspectdatum;
|
||||
mode = oRs("ins_srtcontrole_mode").Value;
|
||||
if (mode == 0)
|
||||
// Momentmode.
|
||||
minDate = aantal_dmj_eenheid > 0? dag_na_lastinspectdatum : lastinspectdatum;
|
||||
else
|
||||
// Intervalmode.
|
||||
minDate = lastinspectdatum;
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
var lastinspectdatum = new Date(<%=lastinspectdatum.getTime()%>);
|
||||
@@ -692,14 +712,12 @@ if (ins_key_arr.length == 1)
|
||||
if (insClose || (insEdit && typeof inspect_data.deelsrtcontrole_datum != null))
|
||||
{
|
||||
var dmj_eenheid;
|
||||
// Voor gereed gemelde(5) en afgeronde(6) inspecties geldt een ander minDate en maxDate.
|
||||
// Voor gereed te gemelden(5) en af te ronden(6) inspecties gelden een ander minDate en maxDate.
|
||||
if (dsc_is_afgemeld) // Er geldt dan insEdit en !insClose. Als insClose dan is de status < 5.
|
||||
{ // Inspectie is Gereed gemeld(5) of Afgerond(6). Datum mag ik nog aanpassen.
|
||||
// Wijzigen in status Afgerond(6) mag alleen als je INSMSU rechten (canMsuEdit) hebt.
|
||||
// !multi en ins_deelsrtcontrole_key is bekend.
|
||||
// Niet multi en ins_deelsrtcontrole_key is bekend.
|
||||
|
||||
// Zoek 1 dag na inspectiedatum van de voorgaande inspectie.
|
||||
// Bij alleen uren inspecties de laatste uitvoerdatum tonen als minimale datum, anders een dag later.
|
||||
// Vooralsnog kan inspectiedatum niet aangepast worden als de eenheid uren(0) is (readonly).
|
||||
sql = "SELECT MAX(idsc.ins_deelsrtcontrole_datum) lastinspectdatum"
|
||||
+ " , MAX(idsc.ins_deelsrtcontrole_datum + 1) dag_na_lastinspectdatum"
|
||||
@@ -708,6 +726,7 @@ if (ins_key_arr.length == 1)
|
||||
+ " THEN 1" // Dag, maand of jaar.
|
||||
+ " ELSE 0" // Tijd.
|
||||
+ " END dmj_eenheid"
|
||||
+ " , isc.ins_srtcontrole_mode"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
@@ -722,18 +741,22 @@ if (ins_key_arr.length == 1)
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eenheid"
|
||||
+ " , isc.ins_srtcontrole_eenheid";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
if (!oRs.eof && oRs("lastinspectdatum").Value != null)
|
||||
{
|
||||
lastinspectdatum = new Date(oRs("lastinspectdatum").Value); // Kan uiterlijk vandaag zijn.
|
||||
dag_na_lastinspectdatum = new Date(oRs("dag_na_lastinspectdatum").Value); // Kan uiterlijk morgen zijn.
|
||||
dmj_eenheid = oRs("dmj_eenheid").Value;
|
||||
minDate = dmj_eenheid? dag_na_lastinspectdatum : lastinspectdatum;
|
||||
mode = oRs("ins_srtcontrole_mode").Value;
|
||||
if (mode == 0)
|
||||
// Momentmode.
|
||||
minDate = dmj_eenheid == 1? new Date(dag_na_lastinspectdatum.midnight()) : lastinspectdatum;
|
||||
else
|
||||
// Intervalmode.
|
||||
minDate = lastinspectdatum;
|
||||
}
|
||||
else
|
||||
minDate = aanmaakdatum;
|
||||
|
||||
// Zoek 1 dag voor inspectiedatum van de volgende inspectie.
|
||||
// Bij alleen uren inspecties de eerste uitvoerdatum tonen als minimale datum, anders een dag eerder.
|
||||
// Vooralsnog kan inspectiedatum niet aangepast worden als de eenheid uren(0) is (readonly).
|
||||
sql = "SELECT MIN(idsc.ins_deelsrtcontrole_datum) firstinspectdatum"
|
||||
+ " , MIN(idsc.ins_deelsrtcontrole_datum - 1) dag_voor_firstinspectdatum"
|
||||
@@ -742,6 +765,7 @@ if (ins_key_arr.length == 1)
|
||||
+ " THEN 1" // Dag, maand of jaar.
|
||||
+ " ELSE 0" // Tijd.
|
||||
+ " END dmj_eenheid"
|
||||
+ " , isc.ins_srtcontrole_mode"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
@@ -761,11 +785,29 @@ if (ins_key_arr.length == 1)
|
||||
firstinspectdatum = new Date(oRs("firstinspectdatum").Value); // Kan uiterlijk vandaag zijn.
|
||||
dag_voor_firstinspectdatum = new Date(oRs("dag_voor_firstinspectdatum").Value); // Kan uiterlijk morgen zijn.
|
||||
dmj_eenheid = oRs("dmj_eenheid").Value;
|
||||
mode = oRs("ins_srtcontrole_mode").Value;
|
||||
maxDate = dmj_eenheid? dag_voor_firstinspectdatum : firstinspectdatum;
|
||||
if (mode == 0)
|
||||
// Momentmode.
|
||||
maxDate = dmj_eenheid == 1? new Date(dag_voor_firstinspectdatum.setHours(23,59,59,99)) : firstinspectdatum;
|
||||
else
|
||||
// Intervalmode.
|
||||
maxDate = firstinspectdatum;
|
||||
}
|
||||
// else maxDate = new Date();
|
||||
oRs.Close();
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
var minDateEdit = new Date(<%=minDate.getTime()%>);
|
||||
var maxDateEdit = new Date(<%=maxDate.getTime()%>);
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
var dsc_is_afgemeld = <%=dsc_is_afgemeld? 1 : 0%> == 1;
|
||||
</script>
|
||||
<%
|
||||
FCLTcalendar("deelsrtcontrole_datum",
|
||||
{ label: L("lcl_ins_controle_datum"),
|
||||
datum: inspect_data.deelsrtcontrole_datum? inspect_data.deelsrtcontrole_datum : new Date(),
|
||||
|
||||
@@ -163,7 +163,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
}
|
||||
|
||||
if (savemode == "E") // Wijzigen.
|
||||
{
|
||||
{ // Dit is al gecontroleerd in ins_edit_inspect.asp. Hier voor de veiligheid opnieuw controleren is niet verkeerd.
|
||||
if (!this_ins.canInspEdit)
|
||||
{ // Ik heb geen Edit rechten.
|
||||
continue;
|
||||
@@ -178,8 +178,6 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
var maxDate = new Date();
|
||||
if (ins_deelsrtcontrole_status >= 5 && getDeelsrtcontroleDate)
|
||||
{
|
||||
// Zoek 1 dag na inspectiedatum van de voorgaande inspectie.
|
||||
// Bij alleen uren inspecties de laatste uitvoerdatum tonen als minimale datum, anders een dag later.
|
||||
// Vooralsnog kan inspectiedatum niet aangepast worden als de eenheid uren(0) is (readonly).
|
||||
sql = "SELECT MAX(idsc.ins_deelsrtcontrole_datum) lastinspectdatum"
|
||||
+ " , MAX(idsc.ins_deelsrtcontrole_datum + 1) dag_na_lastinspectdatum"
|
||||
@@ -188,6 +186,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
+ " THEN 1" // Dag, maand of jaar.
|
||||
+ " ELSE 0" // Tijd.
|
||||
+ " END dmj_eenheid"
|
||||
+ " , isc.ins_srtcontrole_mode"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
@@ -202,18 +201,22 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eenheid"
|
||||
+ " , isc.ins_srtcontrole_eenheid";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
if (!oRs.eof && oRs("lastinspectdatum").Value != null)
|
||||
{
|
||||
lastinspectdatum = new Date(oRs("lastinspectdatum").Value); // Kan uiterlijk vandaag zijn.
|
||||
dag_na_lastinspectdatum = new Date(oRs("dag_na_lastinspectdatum").Value); // Kan uiterlijk morgen zijn.
|
||||
dmj_eenheid = oRs("dmj_eenheid").Value;
|
||||
minDate = dmj_eenheid == 1? dag_na_lastinspectdatum : lastinspectdatum;
|
||||
mode = oRs("ins_srtcontrole_mode").Value;
|
||||
if (mode == 0)
|
||||
// Momentmode.
|
||||
minDate = dmj_eenheid == 1? new Date(dag_na_lastinspectdatum.midnight()) : lastinspectdatum;
|
||||
else
|
||||
// Intervalmode.
|
||||
minDate = lastinspectdatum;
|
||||
}
|
||||
else
|
||||
minDate = aanmaakdatum;
|
||||
|
||||
// Zoek 1 dag voor inspectiedatum van de volgende inspectie.
|
||||
// Bij alleen uren inspecties de eerste uitvoerdatum tonen als minimale datum, anders een dag eerder.
|
||||
// Vooralsnog kan inspectiedatum niet aangepast worden als de eenheid uren(0) is (readonly).
|
||||
sql = "SELECT MIN(idsc.ins_deelsrtcontrole_datum) firstinspectdatum"
|
||||
+ " , MIN(idsc.ins_deelsrtcontrole_datum - 1) dag_voor_firstinspectdatum"
|
||||
@@ -222,6 +225,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
+ " THEN 1" // Dag, maand of jaar.
|
||||
+ " ELSE 0" // Tijd.
|
||||
+ " END dmj_eenheid"
|
||||
+ " , isc.ins_srtcontrole_mode"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
@@ -241,14 +245,19 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
firstinspectdatum = new Date(oRs("firstinspectdatum").Value); // Kan uiterlijk vandaag zijn.
|
||||
dag_voor_firstinspectdatum = new Date(oRs("dag_voor_firstinspectdatum").Value); // Kan uiterlijk morgen zijn.
|
||||
dmj_eenheid = oRs("dmj_eenheid").Value;
|
||||
maxDate = dmj_eenheid == 1? dag_voor_firstinspectdatum : firstinspectdatum;
|
||||
mode = oRs("ins_srtcontrole_mode").Value;
|
||||
if (mode == 0)
|
||||
// Momentmode.
|
||||
maxDate = dmj_eenheid == 1? new Date(dag_voor_firstinspectdatum.setHours(23,59,59,99)) : firstinspectdatum;
|
||||
else
|
||||
// Intervalmode.
|
||||
maxDate = firstinspectdatum;
|
||||
}
|
||||
//else //maxDate = new Date();
|
||||
oRs.Close();
|
||||
|
||||
// Eenheid is in dagen dus afronden op middennacht is ok. Er moet minstens een dag verschil in zitten.
|
||||
// minDate of maxDate mag ook nog.
|
||||
if (deelsrtcontrole_datum.midnight().getTime() < minDate.midnight().getTime() || deelsrtcontrole_datum.midnight().getTime() > maxDate.midnight().getTime())
|
||||
// Huidige inspectie moet tussen voorgaande en volgende inspectie inliggen.
|
||||
if (deelsrtcontrole_datum.getTime() <= minDate.getTime() || deelsrtcontrole_datum.getTime() >= maxDate.getTime())
|
||||
{ // De uitvoerdatum/inspectiedatum valt niet tussen de uitvoerdatum/inspectiedatum van de vorige en volgende inspectie.
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user