AKZA#33160: Inspecties: kunnen zoeken op van/tot-datums ipv "binnenkort/voorlopig niet".

svn path=/Website/trunk/; revision=27825
This commit is contained in:
Maykel Geerdink
2016-01-20 12:34:39 +00:00
parent f92f42021b
commit 4ba456ad46
3 changed files with 129 additions and 41 deletions

View File

@@ -16,6 +16,8 @@
showall show all objects which meets with the given requirements
inspect Toon ook inspectie kolommen
inspFutu, inspBusy, inspSoon, inspLate, inspDone: de vinkjes
inspsoonfrom search for objects with inspections between inspsoonfrom and inspsoonto
inspsoonto search for objects with inspections between inspsoonfrom and inspsoonto
donedatefrom search for objects with inspections between donedatefrom and donedateto
donedateto search for objects with inspections between donedatefrom and donedateto
reg_key search for objects with the given regio key
@@ -120,6 +122,8 @@ function ins_list (pautfunction, params)
var embedded = params.embedded;
var tiny = params.tiny || parent_key || koppel_key;
var srtcontrole = params.srtcontrole;
var inspsoonfrom = params.inspsoonfrom;
var inspsoonto = params.inspsoonto;
var donedatefrom = params.donedatefrom;
var donedateto = params.donedateto;
@@ -1058,23 +1062,61 @@ function ins_list (pautfunction, params)
{
sql += " AND (ins_deel_vervaldatum IS NULL OR ins_deel_vervaldatum > SYSDATE)";
// drie vinkjes 111 is 'te laat', 'binnenkort', 'nog niet'
var dtsoon = new Date();
dtsoon.setDate(dtsoon.getDate() + S("ins_inspect_soon_days"));
var dtnu = new Date();
// Let op: Als de "Binnenkort" datums worden veranderd, wordt de tijd aangepast in begin van de dag (00:00).
// Als de inspsoonfrom tijd vandaag is moet ook de huidige tijd mee worden genomen. Ander niet.
var inspsoonfrom_is_today = false;
var dtsoonfrom = new Date();
if (inspsoonfrom)
{
// Als de inspsoonfrom tijd vandaag is moet ook de huidige tijd mee worden genomen. Ander niet.
// Als de inspsoon tijden worden veranderd wordt de tijd begin van de dag (00:00).
inspsoonfrom_is_today = (inspsoonfrom.midnight().getTime() == new Date().midnight().getTime());
if (inspsoonfrom_is_today)
{ // De inspsoonfrom is vandaag. De huidige tijd meenemen.
var time = new Date().getTime() - new Date().midnight().getTime();
dtsoonfrom = new Date(inspsoonfrom.midnight().getTime() + time);
}
else
// De inspsoonfrom is NIET vandaag. De tijd wordt begin van de dag (00:00).
dtsoonfrom = new Date(inspsoonfrom.midnight().getTime());
}
else
inspsoonfrom_is_today = true;
var dtsoonto = new Date();
dtsoonto.setDate(dtsoonto.getDate() + S("ins_inspect_soon_days"));
if (inspsoonto)
{
if (inspsoonfrom_is_today)
{ // De inspsoonfrom is vandaag. Ook voor de tot datum de huidige tijd meenemen.
var time = new Date().getTime() - new Date().midnight().getTime();
dtsoonto = new Date(inspsoonto.midnight().getTime() + time);
}
else
// De inspsoonfrom is NIET vandaag. De tijd wordt eind van de dag (23:59).
dtsoonto = new Date(inspsoonto.setHours(23, 59, 59));
}
else
{
if (!inspsoonfrom_is_today) dtsoonto = new Date(dtsoonto.setHours(23, 59, 59));
}
if (params.inspLate && params.inspSoon && params.inspFutu) // 111 alles
sql = "SELECT * FROM (" + sql + ") x WHERE 1=1 "; // sql = sql;
else if (params.inspLate && params.inspSoon && !params.inspFutu) // 110 late + soon
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next < " + dtsoon.toSQL();
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next < " + dtsoonto.toSQL();
else if (params.inspLate && !params.inspSoon && params.inspFutu) // 101 te laat of voorlopig niet. Beetje onzinnig
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next NOT BETWEEN " + dtnu.toSQL() + " AND " + dtsoon.toSQL() ;
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next NOT BETWEEN " + dtsoonfrom.toSQL() + " AND " + dtsoonto.toSQL() ;
else if (params.inspLate && !params.inspSoon && !params.inspFutu) // 100 alleen late
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next <= "+dtnu.toSQL() + "-1";
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next <= "+dtsoonfrom.toSQL() + "-1";
else if (params.inspSoon && params.inspFutu) // 011 binnenkort en later
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next >= "+dtnu.toSQL(); // 011
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next >= "+dtsoonfrom.toSQL(); // 011
else if (params.inspSoon && !params.inspFutu) // 010 binnenkort
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next BETWEEN " + dtnu.toSQL() + " AND " + dtsoon.toSQL() + "-1";
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next BETWEEN " + dtsoonfrom.toSQL() + " AND " + dtsoonto.toSQL() + "-1";
else if (params.inspFutu) // 001 Later
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next >= " + dtsoon.toSQL();
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next >= " + dtsoonto.toSQL();
else if (params.inspDone)
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_date BETWEEN " + donedatefrom.beginToSQL() + " AND " + donedateto.endToSQL();
// else geen enkel vinkje-->alles tonen

View File

@@ -475,40 +475,82 @@ var authparams = user.checkAutorisation(autfunction);
<label><%=L("lcl_ins_controle")%>:&nbsp;</label>
</td>
<td>
<input type=hidden name="inspect" value="1">
<div id="insLSF">
<input type="checkbox" class="fldcheck" name="insInspLate" id="insInspLate" value="1" CHECKED><label for="insInspLate"><%=L("lcl_ins_controle_late")%></label>
<br>
<input type="checkbox" class="fldcheck" name="insInspSoon" id="insInspSoon" value="1" CHECKED><label for="insInspSoon"><%=L("lcl_ins_controle_soon")%></label>
<br>
<input type="checkbox" class="fldcheck" name="insInspFutu" id="insInspFutu" value="1"><label for="insInspFutu"><%=L("lcl_ins_controle_future")%></label>
<br>
</div>
<input type="checkbox" class="fldcheck" name="insInspDone" id="insInspDone" value="1" onClick="onClickDone()"><label for="insInspDone"><%=L("lcl_ins_controle_done")%></label>
<input type=hidden name="inspect" value="1">
<table>
<tr>
<td>
<input type="checkbox" class="fldcheck" name="insInspDone" id="insInspDone" value="1" onClick="onClickDone()">
</td>
<td>
<label for="insInspDone"><%=L("lcl_ins_controle_done")%></label>
</td>
</tr>
<tr class="primsearch donetime" style="display:none">
<td></td>
<td>
<label for="show_donedate_from"><%=L("lcl_period_from")%></label>
</td><td>
<% // <!-- Datum -->
var today = new Date();
FCLTcalendar( "donedate_from",
{ datum: new Date(today.getTime() - 2),
volgnr: 1,
maxFuture: 0
});
%>
</td>
</tr>
<tr class="primsearch donetime" style="display:none">
<td></td>
<td>
<label for="show_donedate_from"><%=L("lcl_period_from")%></label>
</td><td>
<% // <!-- Datum tot -->
FCLTcalendar( "donedate_to",
{ datum: new Date(today.getTime() - 1),
volgnr: 2,
maxFuture: 0
});
%>
</table>
<div id="insLSF">
<table>
<tr><td><input type="checkbox" class="fldcheck" name="insInspLate" id="insInspLate" value="1" CHECKED></td><td><label for="insInspLate"><%=L("lcl_ins_controle_late")%></label></td></tr>
<tr><td><input type="checkbox" class="fldcheck" name="insInspSoon" id="insInspSoon" value="1" CHECKED></td><td><label for="insInspSoon"><%=L("lcl_ins_controle_soon")%></label></td></tr>
<tr>
<td></td>
<td>
<label for="show_inspsoon_from"><%=L("lcl_period_from")%></label>
</td><td>
<% FCLTcalendar("inspsoon_from",
{ datum: today,
minDate: new Date(),
volgnr: 3
});
%>
</td>
</tr>
<tr>
<td></td>
<td>
<label for="show_inspsoon_to"><%=L("lcl_period_to")%></label>
</td><td>
<% var soondate = new Date(new Date().setDate(today.getDate() + S("ins_inspect_soon_days")));
FCLTcalendar("inspsoon_to",
{ datum: soondate,
minDate: new Date(),
volgnr:4
});
%>
</td>
</tr>
<tr><td><input type="checkbox" class="fldcheck" name="insInspFutu" id="insInspFutu" value="1"></td><td><label for="insInspFutu"><%=L("lcl_ins_controle_future")%></label></td></tr>
</table>
</div>
</td>
</tr>
<% // <!-- Datum -->
FCLTcalendar( "donedate_from",
{ label : L("lcl_period_from"),
datum: new Date(new Date().getTime() - 1),
trclass: "primsearch donetime",
volgnr: 1,
trhidden: true,
maxFuture: 0
});
%>
<%
// <!-- Datum tot -->
FCLTcalendar( "donedate_to",
{ label: L("lcl_period_to"),
datum: new Date(),
trclass: "primsearch donetime",
volgnr: 2,
trhidden: true,
maxFuture: 0
});
} %>
<% } %>
</table>
</td><!-- end column 2-->
</tr>

View File

@@ -54,6 +54,8 @@ var controletype = getQParamInt("controletype", -1); // Controle type
var dep_key = getQParamInt("sDept_key", -1); // Organisatie key
var persoon_key = getQParamInt("sName_key", -1); // Persoon key
var okbutton = getQParamInt("okbutton", 0) == 1; // show okbutton
var inspsoonfrom = getQParamDate("inspsoon_from", null); // Periode van
var inspsoonto = getQParamDate("inspsoon_to", null); // Perdiode tot
var donedatefrom = getQParamDate("donedate_from", null); // Periode van
var donedateto = getQParamDate("donedate_to", null); // Perdiode tot
var beh_key = getQParamInt("sBeh_key", -1); // Beheerder key
@@ -129,6 +131,8 @@ ins_list ( autfunction,
ins_key_arr: (ins_key_arr.length > 0? ins_key_arr : null),
room_key_arr: (room_key_arr.length > 0 && room_key_arr.join(",").indexOf("-1") == -1? room_key_arr : null),
comp_key: (comp_key != -1 ? comp_key : null),
inspsoonfrom: inspsoonfrom,
inspsoonto: inspsoonto,
donedatefrom: donedatefrom,
donedateto: donedateto,
insObjIncl: insObjIncl,