FSN#32209: Inspectielijst Mobile.
svn path=/Website/trunk/; revision=29710
This commit is contained in:
@@ -520,10 +520,10 @@ ins = {checkAutLevel:
|
||||
}
|
||||
else // Gewone objecten
|
||||
{
|
||||
var iresult = ins.func_enabled_scope(ioRs("ins_discipline_key").Value,
|
||||
ioRs("ins_alg_ruimte_type").Value,
|
||||
ioRs("ins_alg_ruimte_key").Value);
|
||||
user.auth_required_or_abort(iresult);
|
||||
var iresult = ins.func_enabled_scope(ioRs("ins_discipline_key").Value,
|
||||
ioRs("ins_alg_ruimte_type").Value,
|
||||
ioRs("ins_alg_ruimte_key").Value);
|
||||
user.auth_required_or_abort(iresult);
|
||||
}
|
||||
ioRs.Close();
|
||||
|
||||
@@ -615,7 +615,7 @@ ins = {checkAutLevel:
|
||||
iresult.canChangeAlg = iresult.canWrite("WEB_INSMAN"); // Wijzigen algemene gegevens.
|
||||
iresult.canCopy = iresult.canWrite("WEB_INSMAN"); // Kopi<70>ren.
|
||||
}
|
||||
iresult.canInspect = iresult.canWrite("WEB_INSUSE"); // Kopi<EFBFBD>ren.
|
||||
iresult.canInspect = iresult.canWrite("WEB_INSUSE"); // Inspecteren.
|
||||
iresult.canShowInsp = iresult.canRead("WEB_INSUSE"); // Inzien.
|
||||
iresult.canChangeXcp = iresult.canWrite("WEB_INSMAN"); // Interval kenmerken/parameters wijzigen (waarden in ins_srtcontroledl_xcp tabel).
|
||||
return iresult;
|
||||
|
||||
@@ -118,32 +118,13 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
|
||||
var vervallen = false;
|
||||
var info = "";
|
||||
sql = "SELECT *"
|
||||
+ " FROM (WITH defined_inspect AS (SELECT isc.ins_srtcontrole_key"
|
||||
+ " , isc.ins_srtcontrole_eenheid"
|
||||
+ " , isc.ins_srtcontrole_periode"
|
||||
+ " , isc.ins_srtcontrole_mode"
|
||||
+ " , 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"
|
||||
+ " WHERE s.ins_srtdeel_key = id.ins_srtdeel_key"
|
||||
+ " AND (isc.ins_srtcontrole_niveau = 'S'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_srtdeel_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'G'"
|
||||
+ " AND isc.ins_srtinstallatie_key = s.ins_srtgroep_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'D'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
|
||||
+ " AND id.ins_deel_key IN (" + ingesloten.join(",") + "))"
|
||||
+ " SELECT DISTINCT COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) eenheid"
|
||||
+ " FROM (SELECT DISTINCT COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) eenheid"
|
||||
+ " , di.ins_srtcontrole_info info"
|
||||
+ " , di.ins_srtcontrole_mode scmode"
|
||||
+ " , di.ins_srtcontrole_type sctype"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eind vervaldatum"
|
||||
+ " , di.ins_deel_aanmaak"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " FROM ins_v_defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " , ins_deelsrtcontrole idsc"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
|
||||
@@ -1,544 +0,0 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: ins_inspect_end.asp
|
||||
Description: Afmelddatum van inspectie opgeven.
|
||||
Parameters: ins_key (geen verschil).
|
||||
|
||||
Context: Inline actie ins_list.inc of actie ins_inspect_list
|
||||
Note: Parameter mobile doet niets met navigatie, sluiten enzo, die submit gewoon.
|
||||
Resultaat van een submit is een json object
|
||||
|
||||
*/
|
||||
%>
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
<!-- #include file="../Shared/kenmerk_common.inc" -->
|
||||
<!-- #include file="../Shared/calendar.inc" -->
|
||||
<!-- #include file="../Shared/save2db.inc" -->
|
||||
<!-- #include file="../Shared/selector.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="ins_flexkenmerksrtcontrole.inc" -->
|
||||
<!-- #include file="ins.inc" -->
|
||||
|
||||
<%
|
||||
FCLTHeader.Requires({ plugins: ["jQuery", "suggest", "kenmerk"],
|
||||
js: ["jquery.timepicker-table.js"],
|
||||
css: ["timePicker-table.css"] });
|
||||
|
||||
var ins_key_arr = getQParamIntArray("ins_keys");
|
||||
var srtcont_key_arr = getQParamIntArray("srtcont_keys");
|
||||
var dlsrtcont_key_arr = getQParamIntArray("dlsrtcont_keys");
|
||||
var multi = ins_key_arr.length > 1;
|
||||
|
||||
var tobeended = 0;
|
||||
var ingesloten = [];
|
||||
var ingeslotensc = [];
|
||||
var ingeslotendsc = [];
|
||||
// Bepaal de objecten/delen in de selectie die
|
||||
// ook echt ingepland kunnen of mogen worden.
|
||||
for (var i = 0; i < ins_key_arr.length; i++)
|
||||
{
|
||||
var this_ins = ins.func_enabled_deel(ins_key_arr[i]);
|
||||
// Als ik mag inspecteren mag ik ook inplannen.
|
||||
if (this_ins.canInspect)
|
||||
{ // Alle Arrays zijn even groot.
|
||||
ingesloten.push(ins_key_arr[i]);
|
||||
ingeslotensc.push(srtcont_key_arr[i]);
|
||||
ingeslotendsc.push(dlsrtcont_key_arr[i]);
|
||||
tobeended++;
|
||||
}
|
||||
}
|
||||
user.anything_todo_or_abort(tobeended > 0); // We klagen niet over enkele wel en enkele niet
|
||||
|
||||
%>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate(); %>
|
||||
|
||||
<%
|
||||
var eenheid = -1;
|
||||
var scmode = 1; // 0 = Momentmode, 1 = Intervalmode.
|
||||
var sctype = -1;
|
||||
var info = "";
|
||||
sql = "SELECT *"
|
||||
+ " FROM (WITH defined_inspect AS (SELECT isc.ins_srtcontrole_key"
|
||||
+ " , isc.ins_srtcontrole_eenheid"
|
||||
+ " , isc.ins_srtcontrole_periode"
|
||||
+ " , isc.ins_srtcontrole_mode"
|
||||
+ " , id.ins_deel_key"
|
||||
+ " , isc.ins_srtcontrole_info"
|
||||
+ " , isc.ins_srtcontrole_type"
|
||||
+ " FROM ins_deel id"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " WHERE s.ins_srtdeel_key = id.ins_srtdeel_key"
|
||||
+ " AND (isc.ins_srtcontrole_niveau = 'S'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_srtdeel_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'G'"
|
||||
+ " AND isc.ins_srtinstallatie_key = s.ins_srtgroep_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'D'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
|
||||
+ " AND id.ins_deel_key IN (" + ingesloten.join(",") + "))"
|
||||
+ " SELECT DISTINCT COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) eenheid"
|
||||
+ " , di.ins_srtcontrole_info info"
|
||||
+ " , di.ins_srtcontrole_mode scmode"
|
||||
+ " , di.ins_srtcontrole_type sctype"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " , ins_deelsrtcontrole idsc"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND di.ins_srtcontrole_key = idsc.ins_srtcontrole_key(+)" // Er kan nog voor de eerste keer geinspecteerd moeten worden.
|
||||
+ " AND di.ins_deel_key IN (" + ingesloten.join(",") + ")"
|
||||
+ " AND idsc.ins_deel_key(+) IN (" + ingesloten.join(",") + ")"
|
||||
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) > 0"
|
||||
+ " AND di.ins_srtcontrole_key IN (" + ingeslotensc.join(",") + ")"
|
||||
+ " AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC(SYSDATE, 'DD'))" + ")";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
eenheid = oRs("eenheid").Value;
|
||||
info = oRs("info").Value;
|
||||
scmode = oRs("scmode").Value;
|
||||
sctype = oRs("sctype").Value;
|
||||
oRs.MoveNext();
|
||||
while (!oRs.eof)
|
||||
{
|
||||
if (eenheid != oRs("eenheid").Value)
|
||||
eenheid = -1;
|
||||
if (scmode != oRs("scmode").Value)
|
||||
scmode = -1;
|
||||
if (sctype != oRs("sctype").Value)
|
||||
{
|
||||
info = "";
|
||||
sctype = -1; // Er zijn inspecties met verschillende soort ocntroles. Dan maar -1.
|
||||
}
|
||||
oRs.MoveNext();
|
||||
}
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
var inspected_srtcontroles = new Array();
|
||||
var eenheid = -1;
|
||||
<%
|
||||
if (sctype < 0)
|
||||
abort_with_warning(L("lcl_ins_no_same_srtcontrole"));
|
||||
|
||||
// Als er meerdere inspecties zijn dan hebben bovenstaande variablen alleen een geldige waarde als het voor alle inspecties hetzelfde is.
|
||||
|
||||
if (ingesloten.length == 1)
|
||||
{
|
||||
// Is er op de inspectiedatum of op het inspectieuur al geinspecteerd voor deze objecten?
|
||||
sql = "SELECT idsc.ins_srtcontrole_key"
|
||||
+ " , idsc.ins_deelsrtcontrole_datum"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, isc.ins_srtcontrole_eenheid) eenheid"
|
||||
+ " , isc.ins_srtcontrole_mode"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE idsc.ins_srtcontrole_key = isc.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND idsc.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND idsc.ins_deel_key IN (" + ingesloten.join(",") + ")"
|
||||
+ " AND COALESCE(xcp.ins_srtcontroledl_xcp_periode, isc.ins_srtcontrole_periode) > 0"
|
||||
+ " AND idsc.ins_srtcontrole_key = " + ingeslotensc.join(",");
|
||||
var oRs = Oracle.Execute(sql);
|
||||
while (!oRs.eof)
|
||||
{ %>
|
||||
inspected_srtcontroles[inspected_srtcontroles.length] = { srtcontrole_key: <%=oRs("ins_srtcontrole_key").Value%>,
|
||||
datum: <%=new Date(oRs("ins_deelsrtcontrole_datum").Value).getTime()%>,
|
||||
eenheid: <%=oRs("eenheid").Value%>,
|
||||
mode: <%=oRs("ins_srtcontrole_mode").Value%>};
|
||||
<% oRs.MoveNext();
|
||||
}
|
||||
}
|
||||
%>
|
||||
function ins_submit(finish)
|
||||
{
|
||||
// Controle verplichte velden.
|
||||
if (!validateForm("u2"))
|
||||
return false;
|
||||
|
||||
// Controleren voor uren inspectie of inspectie uitvoerdatum na de laatste uitvoerdatum ligt.
|
||||
// Bij multi geldt de laatste uitvoerdatum van alle objecten.
|
||||
if (lastinspectdatum && new Date(parseInt($("#deelsrtcontrole_datum").val())) <= lastinspectdatum)
|
||||
{
|
||||
alert(L("lcl_ins_controle_after_lastinspect"));
|
||||
return false;
|
||||
}
|
||||
|
||||
// Controleren voor uren inspectie of inspectie in toekomst of respijtdatum in verleden ligt.
|
||||
// Dit kan voorkomen omdat de uren voor vandaag de hele dag ingevuld kunnen worden.
|
||||
// Het zou dus eigenlijk alleen voor uren inspecties voor kunnen komen.
|
||||
// Alleen controleren als eenheid is uren. Bij invoer kies je dan ook een bepaald uur.
|
||||
if (eenheid == 0 && new Date(parseInt($("#deelsrtcontrole_datum").val())) > new Date())
|
||||
{ // Invoeren inspecteren.
|
||||
alert(L("lcl_ins_controle_not_future")); // Controledatum mag niet in de toekomst liggen!
|
||||
return false;
|
||||
}
|
||||
|
||||
for (var i = 0; i < inspected_srtcontroles.length; i++)
|
||||
{
|
||||
// Voor multi objecten is inspected_srtcontroles leeg.
|
||||
// In het save script worden die inspecties er dan wel uitgefilterd/overgeslagen.
|
||||
if (inspected_srtcontroles[i].srtcontrole_key == $("#sel_srtcontrole").val())
|
||||
{
|
||||
// Controle of er op de inspectiedatum of op het inspectieuur al inspecties zijn geweest
|
||||
// TODO: Wat te doen met extra inspecties. En per week/maand/jaar enz.
|
||||
var controle_datum_midnight = new Date(parseInt($("#deelsrtcontrole_datum").val())).midnight().getTime()
|
||||
var controle_datum_uur = new Date(new Date(parseInt($("#deelsrtcontrole_datum").val())).setMinutes(0,0,0)).getTime()
|
||||
var controle_datum = new Date(parseInt($("#deelsrtcontrole_datum").val())).getTime()
|
||||
|
||||
if (controle_datum_midnight == new Date(parseInt(inspected_srtcontroles[i].datum)).midnight().getTime() &&
|
||||
inspected_srtcontroles[i].eenheid > 0 &&
|
||||
inspected_srtcontroles[i].mode == 0) // Geldt alleen voor momentmodus.
|
||||
{ // Op dezelfde dag mag niet.
|
||||
alert(L("lcl_ins_double_inspection_today"));
|
||||
return false;
|
||||
}
|
||||
else if (controle_datum_uur == new Date(new Date(parseInt(inspected_srtcontroles[i].datum)).setMinutes(0,0,0)).getTime() &&
|
||||
inspected_srtcontroles[i].eenheid == 0 &&
|
||||
inspected_srtcontroles[i].mode == 0) // Geldt alleen voor momentmodus.
|
||||
{ // In hetzelfde uur mag niet.
|
||||
alert(L("lcl_ins_double_inspection_hour"));
|
||||
return false;
|
||||
}
|
||||
else if (controle_datum == new Date(parseInt(inspected_srtcontroles[i].datum)).getTime() &&
|
||||
inspected_srtcontroles[i].mode == 1) // Dat respijtdatum hetzelfde is als inspectiedatum is niet mogelijk omdat anders ook de check "respijtdatum < nudatum" geldt (zie hierboen). Er moet gelden: inspectiedatum < nu en respijtdatum > nu.
|
||||
{ // Een inspectie doen op dezelfde datumtijd (controledatum hetzelfde) mag niet omdat je daarna dan niet meer de volgende inspectie kunt doen.
|
||||
// De geplande _org tijd is dan hetzelfde als de laatste inspectie omdat de volgende inspectie dan niet opgeschoven is.
|
||||
// Inspecties op dezelfde datumtijd moeten dus afgevangen worden.
|
||||
// Dit kan alleen voorkomen in de interval mode.
|
||||
alert(L("lcl_ins_double_inspection"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$("#finish").val(finish);
|
||||
$.post($("form[name=u2]")[0].action, $("[name=u2]").serialize(), FcltCallbackClose, "json");
|
||||
}
|
||||
|
||||
function ins_cancel()
|
||||
{
|
||||
FcltMgr.closeDetail(window, { cancel: true } );
|
||||
}
|
||||
|
||||
function onChangeDeelsrtcdatum(id)
|
||||
{
|
||||
if (id == "T") return;
|
||||
selecteddate = new Date(parseInt($("#deelsrtcontrole_datum").val())).midnight().getTime();
|
||||
if (selecteddate < new Date().midnight().getTime() && (eenheid > 0))
|
||||
{ // Eenheid is geen uren.
|
||||
// Tijd op "0:00 uur zetten.
|
||||
$("#show_deelsrtcontrole_datum").datepicker("setDate", new Date(selecteddate));
|
||||
$("#deelsrtcontrole_datum").val(selecteddate);
|
||||
$("#time_from_deelsrtcontrole_datum").val(toTimeString(new Date(selecteddate)));
|
||||
}
|
||||
else if (selecteddate == new Date().midnight().getTime() && (eenheid > 0))
|
||||
{ // Eenheid is geen uren.
|
||||
// Tijd op huidige tijd zetten.
|
||||
$("#show_deelsrtcontrole_datum").datepicker("setDate", new Date());
|
||||
$("#deelsrtcontrole_datum").val(new Date().getTime());
|
||||
$("#time_from_deelsrtcontrole_datum").val(toTimeString(new Date()));
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body id="editbody">
|
||||
<% var buttons = [{title: L("lcl_ins_close"), icon: "inspfinish.png", action:"ins_submit(0)"},
|
||||
{title: L("lcl_ins_finish"), icon: "close.png", action: "ins_submit(1)"},
|
||||
{title: L("lcl_cancel"), icon: "undo.png", action: "ins_cancel()"}];
|
||||
var titletext;
|
||||
switch(sctype)
|
||||
{
|
||||
case 1: titletext = L("lcl_ins_srtcontrole_insp"); break;
|
||||
case 2: titletext = L("lcl_ins_srtcontrole_repl"); break;
|
||||
case 3: titletext = L("lcl_ins_srtcontrole_cert"); break;
|
||||
default: titletext = L("lcl_menu_ins_controle"); break;
|
||||
}
|
||||
IFRAMER_HEADER(titletext, buttons);
|
||||
%>
|
||||
<form name="u2" action="ins_inspect_save.asp?ins_keys=<%=ingesloten.join(",")%>&srtcont_key_arr=<%=ingeslotensc.join(",")%>&dlsrtcont_key_arr=<%=ingeslotendsc.join(",")%>" method="post">
|
||||
<input type="hidden" name="ins_keys" id="ins_keys" value="<%=ingesloten.join(",")%>">
|
||||
<input type="hidden" name="srtcont_key_arr" id="srtcont_key_arr" value="<%=ingeslotensc.join(",")%>">
|
||||
<input type="hidden" name="dlsrtcont_key_arr" id="dlsrtcont_key_arr" value="<%=ingeslotendsc.join(",")%>">
|
||||
<input type="hidden" name="finish" id="finish" value="0">
|
||||
<% BLOCK_START("insMultiEdit", L("lcl_ins_schedule"))
|
||||
var insstatus = -1;
|
||||
var status_str = "";
|
||||
if (ingeslotendsc.join(",").search("-2") < 0)
|
||||
{ // Allemaal bestaande inspecties met de status Gepland(0) of In Behandeling(2).
|
||||
// Is de status voor elke inspectie hetzelfde.
|
||||
var sql = "SELECT MIN(ins_deelsrtcontrole_status) minstatus"
|
||||
+ " , MAX(ins_deelsrtcontrole_status) maxstatus"
|
||||
+ " FROM ins_deelsrtcontrole"
|
||||
+ " WHERE ins_deelsrtcontrole_key IN (" + ingeslotendsc.join(",") + ")";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (oRs("minstatus").Value == oRs("maxstatus").Value)
|
||||
{ // De statussen van alle inspecties zijn hetzelfde. Dan kan ik deze tonen.
|
||||
insstatus = oRs("minstatus").Value;
|
||||
status_str = ins.getinsstatustext(oRs("minstatus").Value);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!multi)
|
||||
{ // Inspecteren van <20><>n object met <20><>n of meerdere soortcontroles
|
||||
var sql = "SELECT *"
|
||||
+ " FROM (WITH defined_inspect AS (SELECT id.ins_srtdeel_key srtdeel_key"
|
||||
+ " , isc.ins_srtcontrole_key"
|
||||
+ " , isc.ins_srtcontrole_omschrijving"
|
||||
+ " , isc.ins_srtcontrole_info"
|
||||
+ " , isc.ins_srtcontrole_eenheid"
|
||||
+ " , isc.ins_srtcontrole_periode"
|
||||
+ " , isc.ins_srtcontrole_eind"
|
||||
+ " , id.ins_deel_key"
|
||||
+ " FROM ins_deel id"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " WHERE s.ins_srtdeel_key = id.ins_srtdeel_key"
|
||||
+ " AND (isc.ins_srtcontrole_niveau = 'S'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_srtdeel_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'G'"
|
||||
+ " AND isc.ins_srtinstallatie_key = s.ins_srtgroep_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'D'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
|
||||
+ " AND id.ins_deel_key = " + ingesloten[0] + ")"
|
||||
+ " SELECT di.ins_srtcontrole_key"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_info info"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) eenheid"
|
||||
+ " , ins.nextcyclusdate(di.ins_deel_key, di.ins_srtcontrole_key, 1) nextcyclusdate"
|
||||
+ " , fac.getdatemillisec(ins.nextcyclusdate(di.ins_deel_key, di.ins_srtcontrole_key, 1)) nextcyclusdatems"
|
||||
+ " , fac.getdatemillisec(ins.nextcyclusdate(di.ins_deel_key, di.ins_srtcontrole_key)) nextcyclusdatems_n"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND di.ins_deel_key IN (" + ingesloten[0] + ")"
|
||||
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) > 0"
|
||||
+ " AND (COALESCE (xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) >= TRUNC(SYSDATE, 'DD')"
|
||||
+ " OR COALESCE (xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) IS NULL)"
|
||||
+ " AND di.ins_srtcontrole_key = " + ingeslotensc[0]
|
||||
+ " GROUP BY di.ins_srtcontrole_key"
|
||||
+ " , di.ins_srtcontrole_omschrijving"
|
||||
+ " , di.ins_srtcontrole_info"
|
||||
+ " , di.ins_srtcontrole_eenheid"
|
||||
+ " , di.ins_srtcontrole_periode"
|
||||
+ " , di.ins_deel_key"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eenheid"
|
||||
//+ " HAVING COUNT(*) = " + 1 // Als multi dan alleen de inspecties die voor *alle* objecten gelden
|
||||
+ ")";
|
||||
|
||||
FCLTselector("sel_srtcontrole_show",
|
||||
sql,
|
||||
{ label: L("lcl_ins_controle"),
|
||||
initKey: ingeslotensc[0],
|
||||
emptyOption: L("lcl_select_srtcontrole"),
|
||||
readonly: true, // dan wordtie niet gesubmit
|
||||
required: true,
|
||||
extraParamValue: "eenheid, info, nextcyclusdatems, nextcyclusdatems_n",
|
||||
extraParamValueInit: "-1, , 0, 0"
|
||||
});
|
||||
%>
|
||||
<input type="hidden" name="sel_srtcontrole" id="sel_srtcontrole" value="<%=ingeslotensc[0]%>">
|
||||
<%
|
||||
|
||||
ROTEXTAREATR("fldtxt", L("lcl_ins_info"), info, {html: "rows='3'", trclass: "invoerinsp", id: "srtcontrole_info", suppressEmpty: true });
|
||||
}
|
||||
|
||||
// Status tonen.
|
||||
var params = {};
|
||||
if (!multi && ingeslotendsc[0] > 0)
|
||||
{
|
||||
params = { infoPointer: { Url: "appl/shared/status_info.asp?insc_key=" + ingeslotendsc[0] + "&urole=bo",
|
||||
Title: L("lcl_status_details") + " " + ingeslotendsc[0]
|
||||
}
|
||||
}
|
||||
}
|
||||
ROFIELDTR("fld", L("lcl_ins_status"), status_str, params);
|
||||
|
||||
|
||||
// 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"
|
||||
+ " WHEN COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, isc.ins_srtcontrole_eenheid) != 0" // Geen tijd eenheid maar dag, maand of jaar.
|
||||
+ " 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"
|
||||
+ " WHERE idsc.ins_srtcontrole_key = isc.ins_srtcontrole_key"
|
||||
+ " 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();
|
||||
if (!oRs.eof)
|
||||
{
|
||||
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;
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
var lastinspectdatum = new Date(<%=lastinspectdatum.getTime()%>);
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
else
|
||||
{
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
var lastinspectdatum = null;
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
|
||||
var dsc_is_afgemeld = false;
|
||||
var multidsc_has_afgemeld = false;
|
||||
if (!multi && ingeslotendsc[0] > 0)
|
||||
{
|
||||
var sql = "SELECT ins_deelsrtcontrole_datum"
|
||||
+ " , ins_controlemode_key"
|
||||
+ " , ins_deelsrtcontrole_opmerking"
|
||||
+ " , ins_deelsrtcontrole_plandatum"
|
||||
+ " , ins_deelsrtcontrole_status"
|
||||
+ " FROM ins_deelsrtcontrole"
|
||||
+ " WHERE ins_deelsrtcontrole_key = " + ingeslotendsc[0];
|
||||
var oRs = Oracle.Execute(sql);
|
||||
inspect_data = {deelsrtcontrole_datum: oRs("ins_deelsrtcontrole_datum").Value? new Date(oRs("ins_deelsrtcontrole_datum").Value): new Date(),
|
||||
controlemode_key: oRs("ins_controlemode_key").Value,
|
||||
deelsrtcontrole_opmerking: oRs("ins_deelsrtcontrole_opmerking").Value,
|
||||
deelsrtcontrole_plandatum: oRs("ins_deelsrtcontrole_plandatum").Value != null? new Date(oRs("ins_deelsrtcontrole_plandatum").Value) : null,
|
||||
deelsrtcontrole_status: oRs("ins_deelsrtcontrole_status").Value,
|
||||
deelsrtcontrole_status_str: ins.getinsstatustext(oRs("ins_deelsrtcontrole_status").Value)}
|
||||
// Als de tijd van de datum NIET middennacht (00:00) is dan mag je de datum niet wijzigen. Daarom tijd bepalen voor FCLTcalendar.
|
||||
// Wijzigen zet datum op middennacht wat problemen met een constraint kan geven.
|
||||
var hours = inspect_data.deelsrtcontrole_datum.getHours();
|
||||
var minutes = inspect_data.deelsrtcontrole_datum.getMinutes();
|
||||
dsc_is_afgemeld = inspect_data.deelsrtcontrole_status >= 5;
|
||||
}
|
||||
else
|
||||
{
|
||||
inspect_data = {deelsrtcontrole_datum: new Date(),
|
||||
deelsrtcontrole_plandatum: null,
|
||||
srtcontrole_opmerking: "",
|
||||
deelsrtcontrole_status: insstatus,
|
||||
deelsrtcontrole_status_str: status_str};
|
||||
|
||||
// Als er afgemelde inspecties tussen zitten dan mag de inspectiedatum niet meer worden aangepast.
|
||||
if (multi)
|
||||
{
|
||||
for (var i = 0; i < ingeslotendsc.length; i++)
|
||||
{
|
||||
var sql = "SELECT ins_deelsrtcontrole_status"
|
||||
+ " FROM ins_deelsrtcontrole"
|
||||
+ " WHERE ins_deelsrtcontrole_key = " + ingeslotendsc[i]
|
||||
+ " AND ins_deelsrtcontrole_status >= 5";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{ // Er is er <20><>n gevonden en dan kunnen we stoppen met zoeken.
|
||||
multidsc_has_afgemeld = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FCLTcalendar("deelsrtcontrole_plandatum",
|
||||
{ label: L("lcl_ins_controle_plandate"),
|
||||
datum: inspect_data.deelsrtcontrole_plandatum,
|
||||
trclass: "invoerinsp",
|
||||
timeField: true,
|
||||
timeStep: 60,
|
||||
startTime: 0,
|
||||
endTime: 23.75,
|
||||
readonly: true,
|
||||
suppressEmpty: true
|
||||
});
|
||||
FCLTcalendar("deelsrtcontrole_datum",
|
||||
{ label: L("lcl_ins_controle_datum"),
|
||||
datum: inspect_data.deelsrtcontrole_datum? inspect_data.deelsrtcontrole_datum : new Date(),
|
||||
minDate: minDate,
|
||||
maxDate: new Date(),
|
||||
required: true,
|
||||
trclass: "invoerinsp",
|
||||
timeField: true,
|
||||
timeStep: 60,
|
||||
startTime: 0,
|
||||
endTime: 23.75,
|
||||
onChangeDate: "onChangeDeelsrtcdatum('D')",
|
||||
onChangeTime: "onChangeDeelsrtcdatum('T')",
|
||||
readonly: (multidsc_has_afgemeld || (dsc_is_afgemeld && (hours > 0 || minutes > 0)? true : false))
|
||||
});
|
||||
|
||||
sql = "SELECT ins_controlemode_key"
|
||||
+ " , " + lcl.xsqla('ins_controlemode_oms', 'ins_controlemode_key')
|
||||
+ " FROM ins_controlemode"
|
||||
+ " WHERE ins_srtcontrole_type = " + sctype
|
||||
+ " ORDER BY 2";
|
||||
|
||||
FCLTselector("sel_controlemode",
|
||||
sql,
|
||||
{ label: L("lcl_ins_controle_mode"),
|
||||
initKey: scmode, // Als de controle mode bij multi verschillend is, dan is deze waarde -1.
|
||||
emptyOption: L("lcl_select_controlemode"),
|
||||
required: true
|
||||
});
|
||||
|
||||
RWTEXTAREATR("opmerk", "fldremark", L("lcl_remark"), inspect_data.srtcontrole_opmerking, {html: "rows='8'", trclass: "invoerinsp", maxlength: 2000});
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
//var nextinspectdatum = new Date(< %=nextinspectdatum.getTime()% >);
|
||||
|
||||
// In de interval mode moet de tijd bij de respijtdatum altijd invulbaar zijn.
|
||||
// In de moment mode moet de tijd bij de plandatum alleen invulbaar zijn als de eenheid in uren(0) is.
|
||||
eenheid = <%=eenheid%>;
|
||||
var scmode = <%=scmode%>;
|
||||
if (scmode == 0 && eenheid != 0)
|
||||
$("#time_from_plandatum").hide();
|
||||
</script>
|
||||
<%
|
||||
BLOCK_END();
|
||||
%>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<%
|
||||
if (!multi)
|
||||
{
|
||||
BLOCK_START("insFlex2", L("lcl_ins_additional_details")); //block over gehele breedte
|
||||
%><div id='insFlexList'><% // Wrapper div voor dynamisch herladen
|
||||
|
||||
generateFlexKenmerkBlock({deelsrtcontrole_key: (!multi && ingeslotendsc[0] > 0? ingeslotendsc[0] : -1),
|
||||
srtcontrole_key: ingeslotensc[0],
|
||||
reado: false,
|
||||
flexcolumns: 1
|
||||
});
|
||||
%></div><%
|
||||
BLOCK_END();
|
||||
}
|
||||
|
||||
IFACE.FORM_END();
|
||||
%>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -167,32 +167,7 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
+ " AND idsc2.ins_deelsrtcontrole_status IN (5, 6)))";
|
||||
|
||||
var sql = "SELECT *"
|
||||
+ " FROM (WITH defined_inspect AS (SELECT id.ins_srtdeel_key srtdeel_key"
|
||||
+ " , isc.ins_srtcontrole_key"
|
||||
+ " , isc.ins_srtcontrole_omschrijving"
|
||||
+ " , isc.ins_srtcontrole_mode"
|
||||
+ " , isc.ins_srtcontrole_eenheid"
|
||||
+ " , isc.ins_srtcontrole_periode"
|
||||
+ " , isc.ins_srtcontrole_bits"
|
||||
+ " , isc.ins_srtcontrole_kosten"
|
||||
+ " , isc.ins_srtcontrole_eind"
|
||||
+ " , isc.ins_srtcontrole_groep"
|
||||
+ " , isc.ins_srtcontrole_opmerking"
|
||||
+ " , id.ins_deel_key"
|
||||
+ " , id.ins_deel_aanmaak"
|
||||
+ " , id.ins_deel_aantal"
|
||||
+ " , isc.ins_srtcontrole_type"
|
||||
+ " FROM ins_deel id"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " WHERE s.ins_srtdeel_key = id.ins_srtdeel_key"
|
||||
+ " AND (isc.ins_srtcontrole_niveau = 'S'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_srtdeel_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'G'"
|
||||
+ " AND isc.ins_srtinstallatie_key = s.ins_srtgroep_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'D'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
|
||||
+ " AND id.ins_deel_key = " + ins_key + ")"
|
||||
+ " FROM ("
|
||||
// mogelijke inspecties op dit object die nog gaan komen.
|
||||
// Als er een voorlopige inspectie is aangemaakt maar nog niet is afgemeld of afgerond, dan hoeft er geen nieuwe inspectie te worden getoond.
|
||||
// Dus met de respijt heb je in dit eerste deel van de query niet meer te maken.
|
||||
@@ -250,7 +225,7 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
+ " , -1 ins_deelsrtcontrole_status"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " , NULL ins_controlemode_success"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " FROM ins_v_defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
@@ -306,7 +281,7 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
+ " , idsc.ins_deelsrtcontrole_status"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " , cm.ins_controlemode_success ins_controlemode_success"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " FROM ins_v_defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " , ins_deelsrtcontrole idsc"
|
||||
+ " , prs_perslid p"
|
||||
@@ -472,30 +447,16 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
var addurl_editxcp = "../ins/ins_xcp.asp?ins_key=" + ins_key + "&urole=bo";
|
||||
// Zijn er inactieve soort controles (periode = 0) die ook gelden voor het object. Dan de "Toevoegen" knop tonen.
|
||||
var bsql = "SELECT COUNT(*) aantal"
|
||||
+ " FROM (WITH defined_inspect AS (SELECT isc.ins_srtcontrole_key"
|
||||
+ " , isc.ins_srtcontrole_periode"
|
||||
+ " , id.ins_deel_key"
|
||||
+ " FROM ins_deel id"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " WHERE s.ins_srtdeel_key = id.ins_srtdeel_key"
|
||||
+ " AND (isc.ins_srtcontrole_niveau = 'S'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_srtdeel_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'G'"
|
||||
+ " AND isc.ins_srtinstallatie_key = s.ins_srtgroep_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'D'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
|
||||
+ " AND id.ins_deel_key = " + ins_key + ")"
|
||||
+ " SELECT di.ins_srtcontrole_key"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND di.ins_deel_key = " + ins_key
|
||||
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) <= 0" // Inactieve soort controles tonen.
|
||||
+ " AND xcp.ins_srtcontroledl_xcp_periode IS NULL" // Soort controles die niet overruled zijn tonen.
|
||||
+ " GROUP BY di.ins_srtcontrole_key"
|
||||
+ " , di.ins_deel_key)";
|
||||
+ " FROM (SELECT di.ins_srtcontrole_key"
|
||||
+ " FROM ins_v_defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND di.ins_deel_key = " + ins_key
|
||||
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) <= 0" // Inactieve soort controles tonen.
|
||||
+ " AND xcp.ins_srtcontroledl_xcp_periode IS NULL" // Soort controles die niet overruled zijn tonen.
|
||||
+ " GROUP BY di.ins_srtcontrole_key"
|
||||
+ " , di.ins_deel_key)";
|
||||
var boRs = Oracle.Execute(bsql);
|
||||
var add = boRs("aantal").Value > 0;
|
||||
boRs.close();
|
||||
|
||||
@@ -1,378 +0,0 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: ins_inspect_plan.asp
|
||||
Description: Plandatum van inspectie opgeven.
|
||||
Parameters: ins_key (geen verschil).
|
||||
|
||||
Context: Inline actie ins_list.inc of actie ins_inspect_list
|
||||
Note: Parameter mobile doet niets met navigatie, sluiten enzo, die submit gewoon.
|
||||
Resultaat van een submit is een json object
|
||||
|
||||
*/
|
||||
%>
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
<!-- #include file="../Shared/kenmerk_common.inc" -->
|
||||
<!-- #include file="../Shared/calendar.inc" -->
|
||||
<!-- #include file="../Shared/save2db.inc" -->
|
||||
<!-- #include file="../Shared/selector.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="ins_flexkenmerksrtcontrole.inc" -->
|
||||
<!-- #include file="ins.inc" -->
|
||||
|
||||
<%
|
||||
FCLTHeader.Requires({ plugins: ["jQuery", "suggest", "kenmerk"],
|
||||
js: ["jquery.timepicker-table.js"],
|
||||
css: ["timePicker-table.css"] });
|
||||
|
||||
var ins_key_arr = getQParamIntArray("ins_keys");
|
||||
var srtcont_key_arr = getQParamIntArray("srtcont_keys");
|
||||
var dlsrtcont_key_arr = getQParamIntArray("dlsrtcont_keys");
|
||||
var multi = ins_key_arr.length > 1;
|
||||
|
||||
var tobeplanned = 0;
|
||||
var ingesloten = [];
|
||||
var ingeslotensc = [];
|
||||
var ingeslotendsc = [];
|
||||
// Bepaal de objecten/delen in de selectie die
|
||||
// ook echt ingepland kunnen of mogen worden.
|
||||
for (var i = 0; i < ins_key_arr.length; i++)
|
||||
{
|
||||
var this_ins = ins.func_enabled_deel(ins_key_arr[i]);
|
||||
// Als ik mag inspecteren mag ik ook inplannen.
|
||||
if (this_ins.canInspect)
|
||||
{ // Alle Arrays zijn even groot.
|
||||
ingesloten.push(ins_key_arr[i]);
|
||||
ingeslotensc.push(srtcont_key_arr[i]);
|
||||
ingeslotendsc.push(dlsrtcont_key_arr[i]);
|
||||
tobeplanned++;
|
||||
}
|
||||
}
|
||||
user.anything_todo_or_abort(tobeplanned > 0); // We klagen niet over enkele wel en enkele niet
|
||||
|
||||
%>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate(); %>
|
||||
|
||||
<%
|
||||
var eenheid = -1;
|
||||
var scmode = 1; // 0 = Momentmode, 1 = Intervalmode.
|
||||
var sctype = -1;
|
||||
var info = "";
|
||||
sql = "SELECT *"
|
||||
+ " FROM (WITH defined_inspect AS (SELECT isc.ins_srtcontrole_key"
|
||||
+ " , isc.ins_srtcontrole_eenheid"
|
||||
+ " , isc.ins_srtcontrole_periode"
|
||||
+ " , isc.ins_srtcontrole_mode"
|
||||
+ " , id.ins_deel_key"
|
||||
+ " , isc.ins_srtcontrole_info"
|
||||
+ " , isc.ins_srtcontrole_type"
|
||||
+ " FROM ins_deel id"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " WHERE s.ins_srtdeel_key = id.ins_srtdeel_key"
|
||||
+ " AND (isc.ins_srtcontrole_niveau = 'S'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_srtdeel_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'G'"
|
||||
+ " AND isc.ins_srtinstallatie_key = s.ins_srtgroep_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'D'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
|
||||
+ " AND id.ins_deel_key IN (" + ingesloten.join(",") + "))"
|
||||
+ " SELECT DISTINCT COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) eenheid"
|
||||
+ " , di.ins_srtcontrole_info info"
|
||||
+ " , di.ins_srtcontrole_mode scmode"
|
||||
+ " , di.ins_srtcontrole_type sctype"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " , ins_deelsrtcontrole idsc"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND di.ins_srtcontrole_key = idsc.ins_srtcontrole_key(+)" // Er kan nog voor de eerste keer geinspecteerd moeten worden.
|
||||
+ " AND di.ins_deel_key IN (" + ingesloten.join(",") + ")"
|
||||
+ " AND idsc.ins_deel_key(+) IN (" + ingesloten.join(",") + ")"
|
||||
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) > 0"
|
||||
+ " AND di.ins_srtcontrole_key IN (" + ingeslotensc.join(",") + ")"
|
||||
+ " AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC(SYSDATE, 'DD'))" + ")";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
eenheid = oRs("eenheid").Value;
|
||||
info = oRs("info").Value;
|
||||
scmode = oRs("scmode").Value;
|
||||
sctype = oRs("sctype").Value;
|
||||
oRs.MoveNext();
|
||||
while (!oRs.eof)
|
||||
{
|
||||
if (eenheid != oRs("eenheid").Value)
|
||||
eenheid = -1;
|
||||
if (scmode != oRs("scmode").Value)
|
||||
scmode = -1;
|
||||
if (sctype != oRs("sctype").Value)
|
||||
{
|
||||
info = "";
|
||||
sctype = -1; // Er zijn inspecties met verschillende soort ocntroles. Dan maar -1.
|
||||
}
|
||||
oRs.MoveNext();
|
||||
}
|
||||
// Als er meerdere inspecties zijn dan hebben bovenstaande variablen alleen een geldige waarde als het voor alle inspecties hetzelfde is.
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
var eenheid = -1;
|
||||
|
||||
function ins_submit()
|
||||
{
|
||||
// Controle verplichte velden.
|
||||
if (!validateForm("u2"))
|
||||
return false;
|
||||
|
||||
// Controleren voor uren inspectie of plandatum niet in het verleden ligt.
|
||||
// Dit kan alleen voorkomen bij uren omdat de uren voor vandaag de hele dag ingevuld kunnen worden.
|
||||
// Bij dagen, maanden en jaren eenheid kan vandaag niet ingevuld worden. Alleen vanaf morgen kan ingevuld worden.
|
||||
if (eenheid == 0 && new Date(parseInt($("#plandatum").val())) <= new Date())
|
||||
{
|
||||
alert(L("lcl_ins_controle_not_past")); // Plandatum mag niet in het verleden liggen!
|
||||
return false;
|
||||
}
|
||||
|
||||
$.post($("form[name=u2]")[0].action, $("[name=u2]").serialize(), FcltCallbackClose, "json");
|
||||
}
|
||||
|
||||
function ins_cancel()
|
||||
{
|
||||
FcltMgr.closeDetail(window, { cancel: true } );
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body id="editbody">
|
||||
<% var buttons = [{title: L("lcl_submit"), icon: "opslaan.png", action:"ins_submit()"},
|
||||
{title: L("lcl_cancel"), icon: "undo.png", action: "ins_cancel()"}];
|
||||
var titletext;
|
||||
switch(sctype)
|
||||
{
|
||||
case 1: titletext = L("lcl_ins_srtcontrole_insp"); break;
|
||||
case 2: titletext = L("lcl_ins_srtcontrole_repl"); break;
|
||||
case 3: titletext = L("lcl_ins_srtcontrole_cert"); break;
|
||||
default: titletext = L("lcl_menu_ins_controle"); break;
|
||||
}
|
||||
IFRAMER_HEADER(titletext, buttons);
|
||||
%>
|
||||
<form name="u2" action="ins_inspect_save.asp?ins_keys=<%=ingesloten.join(",")%>&srtcont_key_arr=<%=ingeslotensc.join(",")%>&dlsrtcont_key_arr=<%=ingeslotendsc.join(",")%>" method="post">
|
||||
<input type="hidden" name="ins_keys" id="ins_keys" value="<%=ingesloten.join(",")%>">
|
||||
<input type="hidden" name="srtcont_key_arr" id="srtcont_key_arr" value="<%=ingeslotensc.join(",")%>">
|
||||
<input type="hidden" name="dlsrtcont_key_arr" id="dlsrtcont_key_arr" value="<%=ingeslotendsc.join(",")%>">
|
||||
<% BLOCK_START("insMultiEdit", L("lcl_ins_schedule"))
|
||||
var status_str = "";
|
||||
if (ingeslotendsc.join(",").search("-2") < 0)
|
||||
{ // Allemaal bestaande inspecties met de status Gepland(0).
|
||||
var sql = "SELECT ins_deelsrtcontrole_status"
|
||||
+ " FROM ins_deelsrtcontrole"
|
||||
+ " WHERE ins_deelsrtcontrole_key = " + ingeslotendsc[0];
|
||||
var oRs = Oracle.Execute(sql);
|
||||
status_str = ins.getinsstatustext(oRs("ins_deelsrtcontrole_status").Value);
|
||||
}
|
||||
|
||||
if (!multi)
|
||||
{ // Inspecteren van <20><>n object met <20><>n of meerdere soortcontroles
|
||||
var sql = "SELECT *"
|
||||
+ " FROM (WITH defined_inspect AS (SELECT id.ins_srtdeel_key srtdeel_key"
|
||||
+ " , isc.ins_srtcontrole_key"
|
||||
+ " , isc.ins_srtcontrole_omschrijving"
|
||||
+ " , isc.ins_srtcontrole_info"
|
||||
+ " , isc.ins_srtcontrole_eenheid"
|
||||
+ " , isc.ins_srtcontrole_periode"
|
||||
+ " , isc.ins_srtcontrole_eind"
|
||||
+ " , id.ins_deel_key"
|
||||
+ " FROM ins_deel id"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " WHERE s.ins_srtdeel_key = id.ins_srtdeel_key"
|
||||
+ " AND (isc.ins_srtcontrole_niveau = 'S'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_srtdeel_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'G'"
|
||||
+ " AND isc.ins_srtinstallatie_key = s.ins_srtgroep_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'D'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
|
||||
+ " AND id.ins_deel_key = " + ingesloten[0] + ")"
|
||||
+ " SELECT di.ins_srtcontrole_key"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_info info"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) eenheid"
|
||||
+ " , ins.nextcyclusdate(di.ins_deel_key, di.ins_srtcontrole_key, 1) nextcyclusdate"
|
||||
+ " , fac.getdatemillisec(ins.nextcyclusdate(di.ins_deel_key, di.ins_srtcontrole_key, 1)) nextcyclusdatems"
|
||||
+ " , fac.getdatemillisec(ins.nextcyclusdate(di.ins_deel_key, di.ins_srtcontrole_key)) nextcyclusdatems_n"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND di.ins_deel_key IN (" + ingesloten[0] + ")"
|
||||
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) > 0"
|
||||
+ " AND (COALESCE (xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) >= TRUNC(SYSDATE, 'DD')"
|
||||
+ " OR COALESCE (xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) IS NULL)"
|
||||
+ " AND di.ins_srtcontrole_key = " + ingeslotensc[0]
|
||||
+ " GROUP BY di.ins_srtcontrole_key"
|
||||
+ " , di.ins_srtcontrole_omschrijving"
|
||||
+ " , di.ins_srtcontrole_info"
|
||||
+ " , di.ins_srtcontrole_eenheid"
|
||||
+ " , di.ins_srtcontrole_periode"
|
||||
+ " , di.ins_deel_key"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eenheid"
|
||||
//+ " HAVING COUNT(*) = " + 1 // Als multi dan alleen de inspecties die voor *alle* objecten gelden
|
||||
+ ")";
|
||||
|
||||
FCLTselector("sel_srtcontrole_show",
|
||||
sql,
|
||||
{ label: L("lcl_ins_controle"),
|
||||
initKey: ingeslotensc[0],
|
||||
emptyOption: L("lcl_select_srtcontrole"),
|
||||
readonly: true, // dan wordtie niet gesubmit
|
||||
required: true,
|
||||
extraParamValue: "eenheid, info, nextcyclusdatems, nextcyclusdatems_n",
|
||||
extraParamValueInit: "-1, , 0, 0"
|
||||
});
|
||||
%>
|
||||
<input type="hidden" name="sel_srtcontrole" id="sel_srtcontrole" value="<%=ingeslotensc[0]%>">
|
||||
<%
|
||||
|
||||
ROTEXTAREATR("fldtxt", L("lcl_ins_info"), info, {html: "rows='3'", trclass: "invoerinsp", id: "srtcontrole_info", suppressEmpty: true });
|
||||
}
|
||||
|
||||
// Status tonen.
|
||||
var params = {};
|
||||
if (!multi && ingeslotendsc[0] > 0)
|
||||
{
|
||||
params = { infoPointer: { Url: "appl/shared/status_info.asp?insc_key=" + ingeslotendsc[0] + "&urole=bo",
|
||||
Title: L("lcl_status_details") + " " + ingeslotendsc[0]
|
||||
}
|
||||
}
|
||||
}
|
||||
ROFIELDTR("fld", L("lcl_ins_status"), status_str, params);
|
||||
|
||||
|
||||
// Men mag alleen een inspectie-uitvoerdatum invoeren die later is dan de laatste plandatum.
|
||||
// Bij multi ook de laatste plandatum 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"
|
||||
+ " WHEN COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, isc.ins_srtcontrole_eenheid) != 0" // Geen tijd eenheid maar dag, maand of jaar.
|
||||
+ " 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"
|
||||
+ " WHERE idsc.ins_srtcontrole_key = isc.ins_srtcontrole_key"
|
||||
+ " 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"
|
||||
+ (insplan
|
||||
? " 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();
|
||||
if (!oRs.eof)
|
||||
{
|
||||
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;
|
||||
if (insPlan && minDate < new Date())
|
||||
minDate = new Date();
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
var lastinspectdatum = new Date(<%=lastinspectdatum.getTime()%>);
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
else
|
||||
{
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
var lastinspectdatum = null;
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
|
||||
if (!multi && ingeslotendsc[0] > 0)
|
||||
{
|
||||
var sql = "SELECT ins_deelsrtcontrole_opmerking"
|
||||
+ " , ins_deelsrtcontrole_plandatum"
|
||||
+ " FROM ins_deelsrtcontrole"
|
||||
+ " WHERE ins_deelsrtcontrole_key = " + ingeslotendsc[0];
|
||||
var oRs = Oracle.Execute(sql);
|
||||
inspect_data = {deelsrtcontrole_opmerking: oRs("ins_deelsrtcontrole_opmerking").Value,
|
||||
deelsrtcontrole_plandatum: (oRs("ins_deelsrtcontrole_plandatum").Value != null? new Date(oRs("ins_deelsrtcontrole_plandatum").Value) : null)}
|
||||
// Als de tijd van de datum NIET middennacht (00:00) is dan mag je de datum niet wijzigen. Daarom tijd bepalen voor FCLTcalendar.
|
||||
// Wijzigen zet datum op middennacht wat problemen met een constraint kan geven.
|
||||
var hours = inspect_data.deelsrtcontrole_plandatum.getHours();
|
||||
var minutes = inspect_data.deelsrtcontrole_plandatum.getMinutes();
|
||||
}
|
||||
else
|
||||
{
|
||||
inspect_data = {deelsrtcontrole_plandatum: new Date(),
|
||||
srtcontrole_opmerking: ""};
|
||||
}
|
||||
|
||||
FCLTcalendar("plandatum",
|
||||
{ label: L("lcl_opdr_plandate"),
|
||||
datum: inspect_data.deelsrtcontrole_plandatum,
|
||||
minDate: minDate,
|
||||
required : true, // Initeel hidden. Dan niet verplicht.
|
||||
timeField: true,
|
||||
timeStep: 60,
|
||||
startTime: 0,
|
||||
endTime: 23.75,
|
||||
readonly: false // In status "Ingepland(0)" is de plandatum altijd nog aan te passen.
|
||||
});
|
||||
|
||||
RWTEXTAREATR("opmerk", "fldremark", L("lcl_remark"), inspect_data.srtcontrole_opmerking, {html: "rows='8'", trclass: "invoerinsp", maxlength: 2000});
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
//var nextinspectdatum = new Date(< %=nextinspectdatum.getTime()% >);
|
||||
|
||||
// In de interval mode moet de tijd bij de respijtdatum altijd invulbaar zijn.
|
||||
// In de moment mode moet de tijd bij de plandatum alleen invulbaar zijn als de eenheid in uren(0) is.
|
||||
eenheid = <%=eenheid%>;
|
||||
var scmode = <%=scmode%>;
|
||||
if (scmode == 0 && eenheid != 0)
|
||||
$("#time_from_plandatum").hide();
|
||||
</script>
|
||||
<%
|
||||
BLOCK_END();
|
||||
%>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<%
|
||||
if (!multi)
|
||||
{
|
||||
BLOCK_START("insFlex2", L("lcl_ins_additional_details")); //block over gehele breedte
|
||||
%><div id='insFlexList'><% // Wrapper div voor dynamisch herladen
|
||||
|
||||
generateFlexKenmerkBlock({deelsrtcontrole_key: (!multi && ingeslotendsc[0] > 0? ingeslotendsc[0] : -1),
|
||||
srtcontrole_key: ingeslotensc[0],
|
||||
reado: false,
|
||||
flexcolumns: 1
|
||||
});
|
||||
%></div><%
|
||||
BLOCK_END();
|
||||
}
|
||||
|
||||
IFACE.FORM_END();
|
||||
%>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -64,29 +64,13 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
{
|
||||
var dlsrtcont_key = -1;
|
||||
var sql = "SELECT *"
|
||||
+ " FROM (WITH defined_inspect AS (SELECT isc.ins_srtcontrole_key"
|
||||
+ " , isc.ins_srtcontrole_mode"
|
||||
+ " , isc.ins_srtcontrole_periode"
|
||||
+ " , isc.ins_srtcontrole_eenheid"
|
||||
+ " , id.ins_deel_key"
|
||||
+ " FROM ins_deel id"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " WHERE s.ins_srtdeel_key = id.ins_srtdeel_key"
|
||||
+ " AND (isc.ins_srtcontrole_niveau = 'S'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_srtdeel_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'G'"
|
||||
+ " AND isc.ins_srtinstallatie_key = s.ins_srtgroep_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'D'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
|
||||
+ " AND id.ins_deel_key = " + ins_key_arr[i] + ")"
|
||||
+ " SELECT di.ins_srtcontrole_key"
|
||||
+ " FROM (SELECT di.ins_srtcontrole_key"
|
||||
+ " , idsc.ins_deelsrtcontrole_key"
|
||||
+ " , idsc.ins_deelsrtcontrole_datum"
|
||||
+ " , COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) eenheid"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , idsc.ins_deelsrtcontrole_status"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " FROM ins_v_defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " , ins_deelsrtcontrole idsc"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
|
||||
@@ -542,154 +542,148 @@ function ins_list (pautfunction, params)
|
||||
+ " , ins_deelsrtcontrole_key"
|
||||
+ " , ins_deelsrtcontrole_plandatum"
|
||||
+ " , ins_controlemode_success"
|
||||
+ " FROM (WITH defined_inspect" // gedefinieerde inspecties
|
||||
+ " AS (SELECT *"
|
||||
+ " FROM ins_deel id"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " WHERE s.ins_srtdeel_key = id.ins_srtdeel_key"
|
||||
+ (srtcontrole > -1 ? " AND ins_srtcontrole_key = " + srtcontrole : "")
|
||||
+ " AND (isc.ins_srtcontrole_niveau = 'S'"
|
||||
+ " AND isc.ins_srtinstallatie_key ="
|
||||
+ " id.ins_srtdeel_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'G'"
|
||||
+ " AND isc.ins_srtinstallatie_key ="
|
||||
+ " s.ins_srtgroep_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'D'"
|
||||
+ " AND isc.ins_srtinstallatie_key ="
|
||||
+ " id.ins_discipline_key))"
|
||||
+ " FROM ("
|
||||
+ (inspDone
|
||||
? " SELECT 1 rn" // Afgehandelde inspecties.
|
||||
+ " , di.ins_deel_key"
|
||||
+ " , (SELECT MAX (idsc.ins_deelsrtcontrole_datum)"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_deelsrtcontrole_status IN (5, 6)"
|
||||
+ " AND idsc.ins_deel_key = di.ins_deel_key) inspectie_date"
|
||||
+ " , NULL nonext"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) periode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) inspectie_eenheid"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep groepoms"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_key"
|
||||
+ " , di.ins_srtcontrole_type"
|
||||
+ " , -1 ins_deelsrtcontrole_status"
|
||||
+ " , NULL ins_deelsrtcontrole_key"
|
||||
+ " , (SELECT idsc.ins_deelsrtcontrole_plandatum"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_deelsrtcontrole_key = (SELECT MAX(idsc2.ins_deelsrtcontrole_key)"
|
||||
+ " FROM ins_deelsrtcontrole idsc2"
|
||||
+ " WHERE idsc2.ins_deel_key = di.ins_deel_key"
|
||||
+ " AND idsc2.ins_srtcontrole_key = di.ins_srtcontrole_key))"
|
||||
+ " ins_deelsrtcontrole_plandatum"
|
||||
? " SELECT 1 rn" // Afgehandelde inspecties.
|
||||
+ " , di.ins_deel_key"
|
||||
+ " , (SELECT MAX (idsc.ins_deelsrtcontrole_datum)"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_deelsrtcontrole_status IN (5, 6)"
|
||||
+ " AND idsc.ins_deel_key = di.ins_deel_key) inspectie_date"
|
||||
+ " , NULL nonext"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) periode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) inspectie_eenheid"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep groepoms"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_key"
|
||||
+ " , di.ins_srtcontrole_type"
|
||||
+ " , -1 ins_deelsrtcontrole_status"
|
||||
+ " , NULL ins_deelsrtcontrole_key"
|
||||
+ " , (SELECT idsc.ins_deelsrtcontrole_plandatum"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_deelsrtcontrole_key = (SELECT MAX(idsc2.ins_deelsrtcontrole_key)"
|
||||
+ " FROM ins_deelsrtcontrole idsc2"
|
||||
+ " WHERE idsc2.ins_deel_key = di.ins_deel_key"
|
||||
+ " AND idsc2.ins_srtcontrole_key = di.ins_srtcontrole_key))"
|
||||
+ " ins_deelsrtcontrole_plandatum"
|
||||
// Er moet naar de laatste UITGEVOERDE (afgeronde(6)) inspecte gegeven worden om te bepalen of de laatste inspecte een SUCCESS was.
|
||||
+ " , (SELECT cm.ins_controlemode_success"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_controlemode cm"
|
||||
+ " WHERE idsc.ins_controlemode_key = cm.ins_controlemode_key"
|
||||
+ " AND idsc.ins_deelsrtcontrole_key = (SELECT MAX (idsc2.ins_deelsrtcontrole_key)"
|
||||
+ " FROM ins_deelsrtcontrole idsc2"
|
||||
+ " WHERE idsc2.ins_deel_key = di.ins_deel_key"
|
||||
+ " AND idsc2.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc2.ins_deelsrtcontrole_status = 6))"
|
||||
+ " ins_controlemode_success"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND EXISTS (SELECT ins_deelsrtcontrole_key"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_deelsrtcontrole_status IN (5, 6)"
|
||||
+ " AND idsc.ins_deel_key = di.ins_deel_key)"
|
||||
+ " , (SELECT cm.ins_controlemode_success"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_controlemode cm"
|
||||
+ " WHERE idsc.ins_controlemode_key = cm.ins_controlemode_key"
|
||||
+ " AND idsc.ins_deelsrtcontrole_key = (SELECT MAX (idsc2.ins_deelsrtcontrole_key)"
|
||||
+ " FROM ins_deelsrtcontrole idsc2"
|
||||
+ " WHERE idsc2.ins_deel_key = di.ins_deel_key"
|
||||
+ " AND idsc2.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc2.ins_deelsrtcontrole_status = 6))"
|
||||
+ " ins_controlemode_success"
|
||||
+ " FROM ins_v_defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND EXISTS (SELECT ins_deelsrtcontrole_key"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_deelsrtcontrole_status IN (5, 6)"
|
||||
+ " AND idsc.ins_deel_key = di.ins_deel_key)"
|
||||
+ (srtcontrole > -1
|
||||
? " AND di.ins_srtcontrole_key = " + srtcontrole
|
||||
: "")
|
||||
+ (insSuccessY && insSuccessN
|
||||
? ""
|
||||
: " AND (SELECT cm.ins_controlemode_success"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_controlemode cm"
|
||||
+ " WHERE idsc.ins_controlemode_key = cm.ins_controlemode_key"
|
||||
+ " AND idsc.ins_deelsrtcontrole_key = (SELECT MAX (idsc2.ins_deelsrtcontrole_key)"
|
||||
+ " FROM ins_deelsrtcontrole idsc2"
|
||||
+ " WHERE idsc2.ins_deel_key = di.ins_deel_key"
|
||||
+ " AND idsc2.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc2.ins_deelsrtcontrole_status = 6))" + (insSuccessY? " = 1" : " IS NULL"))
|
||||
+ " ORDER BY inspectie_date)"
|
||||
? ""
|
||||
: " AND (SELECT cm.ins_controlemode_success"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_controlemode cm"
|
||||
+ " WHERE idsc.ins_controlemode_key = cm.ins_controlemode_key"
|
||||
+ " AND idsc.ins_deelsrtcontrole_key = (SELECT MAX (idsc2.ins_deelsrtcontrole_key)"
|
||||
+ " FROM ins_deelsrtcontrole idsc2"
|
||||
+ " WHERE idsc2.ins_deel_key = di.ins_deel_key"
|
||||
+ " AND idsc2.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc2.ins_deelsrtcontrole_status = 6))" + (insSuccessY? " = 1" : " IS NULL"))
|
||||
+ " ORDER BY inspectie_date)"
|
||||
: (inspSoon || (!inspSoon && !inspBusy && !inspClosed)
|
||||
? " SELECT 1 rn" // inspecties die nog nooit zijn uitgevoerd/ingepland. Er is nog geen ins_deelsrtcontrole regel aanwezig en dus ook geen plandatum/respijtdatum.
|
||||
+ " , di.ins_deel_key"
|
||||
+ " , fac.nextcyclusdate(di.ins_deel_aanmaak"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits)"
|
||||
+ " , 1) inspectie_next"
|
||||
+ " , CASE WHEN " + lastinspect + " IS NULL THEN 1 ELSE 0 END nonext"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) periode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) inspectie_eenheid"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep groepoms"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_key"
|
||||
+ " , di.ins_srtcontrole_type"
|
||||
+ " , -1 ins_deelsrtcontrole_status"
|
||||
+ " , NULL ins_deelsrtcontrole_key"
|
||||
+ " , NULL ins_deelsrtcontrole_plandatum"
|
||||
+ " , NULL ins_controlemode_success"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND (di.ins_deel_key, di.ins_srtcontrole_key) NOT IN"
|
||||
+ " (SELECT ins_deel_key, ins_srtcontrole_key"
|
||||
+ " FROM ins_deelsrtcontrole)"
|
||||
+ " UNION ALL"
|
||||
? " SELECT 1 rn" // inspecties die nog nooit zijn uitgevoerd/ingepland. Er is nog geen ins_deelsrtcontrole regel aanwezig en dus ook geen plandatum/respijtdatum.
|
||||
+ " , di.ins_deel_key"
|
||||
+ " , fac.nextcyclusdate(di.ins_deel_aanmaak"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits)"
|
||||
+ " , 1) inspectie_next"
|
||||
+ " , CASE WHEN " + lastinspect + " IS NULL THEN 1 ELSE 0 END nonext"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) periode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) inspectie_eenheid"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep groepoms"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_key"
|
||||
+ " , di.ins_srtcontrole_type"
|
||||
+ " , -1 ins_deelsrtcontrole_status"
|
||||
+ " , NULL ins_deelsrtcontrole_key"
|
||||
+ " , NULL ins_deelsrtcontrole_plandatum"
|
||||
+ " , NULL ins_controlemode_success"
|
||||
+ " FROM ins_v_defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND (di.ins_deel_key, di.ins_srtcontrole_key) NOT IN"
|
||||
+ " (SELECT ins_deel_key, ins_srtcontrole_key"
|
||||
+ " FROM ins_deelsrtcontrole)"
|
||||
+ (srtcontrole > -1
|
||||
? " AND di.ins_srtcontrole_key = " + srtcontrole
|
||||
: "")
|
||||
+ " UNION ALL"
|
||||
: "")
|
||||
// Inspecties die al eens zijn uitgevoerd of inspecties die voor het eerst zijn ingepland(0) of gestart(2) maar nog geen uitgevoerde/afgemelde(6) inspectie hebben.
|
||||
+ " SELECT RANK ()" // Volgnummertje toekennen
|
||||
+ " OVER ("
|
||||
+ " PARTITION BY di.ins_deel_key, idsc.ins_srtcontrole_key" // Soort van group-by
|
||||
+ " 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.
|
||||
+ " THEN di.ins_deel_aanmaak" // Dan registratiedatum.
|
||||
+ " WHEN idsc.ins_deelsrtcontrole_status IN (0, 2)"
|
||||
+ " THEN ins_deelsrtcontrole_datum_org" // In status 0 en 2 wordt de volgende inspectie in ins_deelsrtcontrole_datum_org direct opgeslagen.
|
||||
+ " ELSE"
|
||||
+ " fac.nextcyclusdate(CASE"
|
||||
+ " WHEN di.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.
|
||||
+ " END"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits)"
|
||||
+ " , 1)"
|
||||
+ " END inspectie_next"
|
||||
+ " , CASE WHEN " + lastinspect + " IS NULL THEN 1 ELSE 0 END nonext"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) periode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) inspectie_eenheid"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep groepoms"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_key"
|
||||
+ " , di.ins_srtcontrole_type"
|
||||
+ " , idsc.ins_deelsrtcontrole_status"
|
||||
+ " , idsc.ins_deelsrtcontrole_key"
|
||||
+ " , CASE WHEN idsc.ins_deelsrtcontrole_status IN (0, 2) THEN idsc.ins_deelsrtcontrole_plandatum ELSE NULL END ins_deelsrtcontrole_plandatum"
|
||||
+ " , NULL ins_controlemode_success"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " , ins_controlemode cm"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND idsc.ins_controlemode_key = cm.ins_controlemode_key(+)"
|
||||
+ " AND idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_deel_key = di.ins_deel_key"
|
||||
+ " ORDER BY inspectie_next)")
|
||||
+ " SELECT RANK ()" // Volgnummertje toekennen
|
||||
+ " OVER ("
|
||||
+ " PARTITION BY di.ins_deel_key, idsc.ins_srtcontrole_key" // Soort van group-by
|
||||
+ " 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.
|
||||
+ " THEN di.ins_deel_aanmaak" // Dan registratiedatum.
|
||||
+ " WHEN idsc.ins_deelsrtcontrole_status IN (0, 2)"
|
||||
+ " THEN ins_deelsrtcontrole_datum_org" // In status 0 en 2 wordt de volgende inspectie in ins_deelsrtcontrole_datum_org direct opgeslagen.
|
||||
+ " ELSE"
|
||||
+ " fac.nextcyclusdate(CASE"
|
||||
+ " WHEN di.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.
|
||||
+ " END"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits)"
|
||||
+ " , 1)"
|
||||
+ " END inspectie_next"
|
||||
+ " , CASE WHEN " + lastinspect + " IS NULL THEN 1 ELSE 0 END nonext"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) periode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) inspectie_eenheid"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep groepoms"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_key"
|
||||
+ " , di.ins_srtcontrole_type"
|
||||
+ " , idsc.ins_deelsrtcontrole_status"
|
||||
+ " , idsc.ins_deelsrtcontrole_key"
|
||||
+ " , CASE WHEN idsc.ins_deelsrtcontrole_status IN (0, 2) THEN idsc.ins_deelsrtcontrole_plandatum ELSE NULL END ins_deelsrtcontrole_plandatum"
|
||||
+ " , NULL ins_controlemode_success"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_v_defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " , ins_controlemode cm"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND idsc.ins_controlemode_key = cm.ins_controlemode_key(+)"
|
||||
+ " AND idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_deel_key = di.ins_deel_key"
|
||||
+ (srtcontrole > -1
|
||||
? " AND di.ins_srtcontrole_key = " + srtcontrole
|
||||
: "")
|
||||
+ " ORDER BY inspectie_next)")
|
||||
+ " WHERE rn = 1"
|
||||
// Voor afgehandelde inspecties ook inspecties met periode 0 tonen.
|
||||
+ (!inspDone
|
||||
@@ -701,7 +695,12 @@ function ins_list (pautfunction, params)
|
||||
: "");
|
||||
|
||||
sqlInspectie_select = (inspDone? "inspectie_date" : "inspectie_next")
|
||||
+ " , ispn.nonext, ispn.ins_srtcontrole_omschrijving, ispn.ins_srtcontrole_key, ispn.inspectie_eenheid, ispn.inspectie_eind, ispn.groepoms"
|
||||
+ " , ispn.nonext"
|
||||
+ " , ispn.ins_srtcontrole_omschrijving"
|
||||
+ " , ispn.ins_srtcontrole_key"
|
||||
+ " , ispn.inspectie_eenheid"
|
||||
+ " , ispn.inspectie_eind"
|
||||
+ " , ispn.groepoms"
|
||||
+ " , ispn.ins_srtcontrole_type"
|
||||
+ " , ispn.ins_deelsrtcontrole_status"
|
||||
+ " , ispn.ins_deelsrtcontrole_key"
|
||||
@@ -883,7 +882,7 @@ function ins_list (pautfunction, params)
|
||||
: "SELECT o.alg_plaatsaanduiding"
|
||||
+ " || DECODE(o.alg_plaatsomschrijving, '','' ,' (' || o.alg_plaatsomschrijving || ')')"
|
||||
)
|
||||
+ " plaats"
|
||||
+ " plaats"
|
||||
+ ", s.ins_srtdeel_code"
|
||||
+ ", " + lcl.xsql('s.ins_srtdeel_omschrijving', 's.ins_srtdeel_key') + " soort"
|
||||
+ ", i.ins_deel_omschrijving"
|
||||
|
||||
@@ -60,31 +60,12 @@ var deelsrtcont_key = getQParamInt("deelsrtcont_key", -1); // Bestaande inspecti
|
||||
var vervallen = false;
|
||||
var info = "";
|
||||
sql = "SELECT *"
|
||||
+ " FROM (WITH defined_inspect AS (SELECT isc.ins_srtcontrole_key"
|
||||
+ " , isc.ins_srtcontrole_eenheid"
|
||||
+ " , isc.ins_srtcontrole_periode"
|
||||
+ " , isc.ins_srtcontrole_mode"
|
||||
+ " , 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"
|
||||
+ " WHERE s.ins_srtdeel_key = id.ins_srtdeel_key"
|
||||
+ " AND (isc.ins_srtcontrole_niveau = 'S'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_srtdeel_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'G'"
|
||||
+ " AND isc.ins_srtinstallatie_key = s.ins_srtgroep_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'D'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
|
||||
+ " AND id.ins_deel_key IN (" + ins_key + "))"
|
||||
+ " SELECT DISTINCT COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) eenheid"
|
||||
+ " FROM (SELECT DISTINCT COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) eenheid"
|
||||
+ " , di.ins_srtcontrole_info info"
|
||||
+ " , di.ins_srtcontrole_mode scmode"
|
||||
+ " , di.ins_srtcontrole_type sctype"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eind vervaldatum"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " FROM ins_v_defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " , ins_deelsrtcontrole idsc"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
@@ -92,6 +73,7 @@ var deelsrtcont_key = getQParamInt("deelsrtcont_key", -1); // Bestaande inspecti
|
||||
+ " AND di.ins_srtcontrole_key = idsc.ins_srtcontrole_key" // Er kan nog voor de eerste keer geinspecteerd moeten worden.
|
||||
+ " AND idsc.ins_deel_key = di.ins_deel_key"
|
||||
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) > 0"
|
||||
+ " AND di.ins_deel_key IN (" + ins_key + ")"
|
||||
+ " AND idsc.ins_deelsrtcontrole_key = " + deelsrtcont_key
|
||||
+ " )";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
|
||||
@@ -319,53 +319,32 @@ user.anything_todo_or_abort(this_ins.canChangeXcp);
|
||||
var cntdeel = Oracle.Execute(sql)(0).Value;
|
||||
|
||||
var sql = "SELECT *"
|
||||
+ " FROM (WITH defined_inspect AS (SELECT id.ins_srtdeel_key srtdeel_key"
|
||||
+ " , isc.ins_srtcontrole_key"
|
||||
+ " , isc.ins_srtcontrole_omschrijving"
|
||||
+ " , isc.ins_srtcontrole_mode"
|
||||
+ " , isc.ins_srtcontrole_periode"
|
||||
+ " , isc.ins_srtcontrole_eenheid"
|
||||
+ " , isc.ins_srtcontrole_bits"
|
||||
+ " , isc.ins_srtcontrole_kosten"
|
||||
+ " , isc.ins_srtcontrole_eind"
|
||||
+ " , id.ins_deel_key"
|
||||
+ " FROM ins_deel id"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " WHERE s.ins_srtdeel_key = id.ins_srtdeel_key"
|
||||
+ " AND (isc.ins_srtcontrole_niveau = 'S'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_srtdeel_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'G'"
|
||||
+ " AND isc.ins_srtinstallatie_key = s.ins_srtgroep_key"
|
||||
+ " OR isc.ins_srtcontrole_niveau = 'D'"
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
|
||||
+ " AND id.ins_deel_key = " + ins_key + ")"
|
||||
+ " SELECT di.ins_srtcontrole_key"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_mode modus"
|
||||
+ " , di.ins_srtcontrole_periode periode_std"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, -1) periode_xcp"
|
||||
+ " , di.ins_srtcontrole_eenheid eenheid_std"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, -1) eenheid_xcp"
|
||||
+ " , di.ins_srtcontrole_bits bits_std"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, -1) bits_xcp"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep groep"
|
||||
+ " , di.ins_srtcontrole_kosten kosten_std"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_kosten, 0) kosten_xcp"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_key, -1) xcp_key"
|
||||
+ " , di.ins_srtcontrole_eind eind_std"
|
||||
+ " , TO_CHAR(di.ins_srtcontrole_eind, 'DD') eind_std_dag"
|
||||
+ " , TO_CHAR(di.ins_srtcontrole_eind, 'MM') eind_std_maand"
|
||||
+ " , TO_CHAR(di.ins_srtcontrole_eind, 'YYYY') eind_std_jaar"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eind eind_xcp"
|
||||
+ " , TO_CHAR(xcp.ins_srtcontroledl_xcp_eind, 'DD') eind_xcp_dag"
|
||||
+ " , TO_CHAR(xcp.ins_srtcontroledl_xcp_eind, 'MM') eind_xcp_maand"
|
||||
+ " , TO_CHAR(xcp.ins_srtcontroledl_xcp_eind, 'YYYY') eind_xcp_jaar"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND di.ins_deel_key = " + ins_key
|
||||
+ " FROM (SELECT di.ins_srtcontrole_key"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_mode modus"
|
||||
+ " , di.ins_srtcontrole_periode periode_std"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, -1) periode_xcp"
|
||||
+ " , di.ins_srtcontrole_eenheid eenheid_std"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, -1) eenheid_xcp"
|
||||
+ " , di.ins_srtcontrole_bits bits_std"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, -1) bits_xcp"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep groep"
|
||||
+ " , di.ins_srtcontrole_kosten kosten_std"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_kosten, 0) kosten_xcp"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_key, -1) xcp_key"
|
||||
+ " , di.ins_srtcontrole_eind eind_std"
|
||||
+ " , TO_CHAR(di.ins_srtcontrole_eind, 'DD') eind_std_dag"
|
||||
+ " , TO_CHAR(di.ins_srtcontrole_eind, 'MM') eind_std_maand"
|
||||
+ " , TO_CHAR(di.ins_srtcontrole_eind, 'YYYY') eind_std_jaar"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eind eind_xcp"
|
||||
+ " , TO_CHAR(xcp.ins_srtcontroledl_xcp_eind, 'DD') eind_xcp_dag"
|
||||
+ " , TO_CHAR(xcp.ins_srtcontroledl_xcp_eind, 'MM') eind_xcp_maand"
|
||||
+ " , TO_CHAR(xcp.ins_srtcontroledl_xcp_eind, 'YYYY') eind_xcp_jaar"
|
||||
+ " FROM ins_v_defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND di.ins_deel_key = " + ins_key
|
||||
// De xcp_periode overruled de standaard periode. De xcp_periode kan/mag NULL zijn maar de standaard periode niet.
|
||||
// Mogelijke waarden van de standaard periode en xcp periode:
|
||||
// ins_srtcontrole_periode ins_srtcontroledl_xcp_periode uitleg
|
||||
@@ -379,26 +358,26 @@ user.anything_todo_or_abort(this_ins.canChangeXcp);
|
||||
: " AND (COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) > 0" // Actieve soort controles tonen
|
||||
+ " OR ins_srtcontroledl_xcp_periode = 0)") // Soort controles die inactief zijn gemaakt tonen.
|
||||
+ (srtcont_key > 0
|
||||
? " AND di.ins_srtcontrole_key = " + srtcont_key
|
||||
? " AND di.ins_srtcontrole_key = " + srtcont_key
|
||||
: "")
|
||||
+ " GROUP BY di.ins_srtcontrole_key"
|
||||
+ " , di.ins_srtcontrole_omschrijving"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , di.ins_srtcontrole_periode"
|
||||
+ " , di.ins_srtcontrole_eenheid"
|
||||
+ " , di.ins_srtcontrole_bits"
|
||||
+ " , di.ins_srtcontrole_kosten"
|
||||
+ " , di.ins_srtcontrole_eind"
|
||||
+ " , di.ins_deel_key"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_key"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_periode"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eenheid"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_bits"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_kosten"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eind"
|
||||
+ " HAVING COUNT(*) = " + cntdeel // Als multi dan alleen de inspecties die voor *alle* objecten gelden
|
||||
+ " ORDER BY di.ins_srtcontrole_omschrijving)";
|
||||
+ " GROUP BY di.ins_srtcontrole_key"
|
||||
+ " , di.ins_srtcontrole_omschrijving"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , di.ins_srtcontrole_periode"
|
||||
+ " , di.ins_srtcontrole_eenheid"
|
||||
+ " , di.ins_srtcontrole_bits"
|
||||
+ " , di.ins_srtcontrole_kosten"
|
||||
+ " , di.ins_srtcontrole_eind"
|
||||
+ " , di.ins_deel_key"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_key"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_periode"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eenheid"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_bits"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_kosten"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eind"
|
||||
+ " HAVING COUNT(*) = " + cntdeel // Als multi dan alleen de inspecties die voor *alle* objecten gelden
|
||||
+ " ORDER BY di.ins_srtcontrole_omschrijving)";
|
||||
FCLTselector("sel_srtcontrole",
|
||||
sql,
|
||||
{ label: L("lcl_ins_controle"),
|
||||
|
||||
277
APPL/PDA/ins_inspect_list.asp
Normal file
277
APPL/PDA/ins_inspect_list.asp
Normal file
@@ -0,0 +1,277 @@
|
||||
<%@ language = "javascript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: pda/ins_inspect_list.asp
|
||||
Description: Toont een beknopte inspectielijst voor op de pda
|
||||
Parameters: -
|
||||
Context: -
|
||||
Note: -
|
||||
*/ %>
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/discxalg3d.inc" -->
|
||||
<!-- #include file="../Shared/discx3d.inc" -->
|
||||
<!-- #include file="../INS/ins.inc" -->
|
||||
<!-- #include file="./resultset_table.inc" -->
|
||||
<!-- #include file="./mobile.inc" -->
|
||||
<!-- #include file="./iface.inc" -->
|
||||
|
||||
<%
|
||||
var autfunction = "WEB_INSUSE";
|
||||
var authparams = user.checkAutorisation(autfunction);
|
||||
|
||||
var locatie_key = getQParamInt("locatie_key", user.alg_locatie_key({withcurrent: true})); // Locatie
|
||||
var gebouw_key = getQParamInt("gebouw_key", user.alg_gebouw_key({withcurrent: true})); // Gebouw, kan -1 zijn, dan niet gebruiken
|
||||
var verdieping_key = getQParamInt("verdieping_key", user.alg_verdieping_key({withcurrent: true}));
|
||||
var ruimte_key = getQParamInt("ruimte_key", -1);
|
||||
var ins_srtgroep_key = getQParamInt("ins_srtgroep_key", -1); // ins_srtgroep_key.
|
||||
|
||||
var ins_key = getQParamInt("ins_key", -1);
|
||||
var grp_sel = getQParam("grp", "");
|
||||
var qrc = getQParamInt("qrc", 0) != 0;
|
||||
|
||||
var subject = L("lcl_mobile_objecten"); // TODO: AANPASSEN!
|
||||
if (ruimte_key > -1)
|
||||
{
|
||||
var sql = "SELECT aog.alg_gebouw_code || '-' || aog.alg_verdieping_code || '-' || aog.alg_ruimte_nr plaats"
|
||||
+ " FROM alg_v_onroerendgoed_gegevens aog"
|
||||
+ " WHERE aog.alg_ruimte_key = " + ruimte_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
|
||||
subject += " " + oRs("plaats").Value;
|
||||
}
|
||||
else
|
||||
var subject = L("lcl_mobile_objecten") + " " + CurrentPosition;
|
||||
%>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTMHeader.Generate({}); %>
|
||||
</head>
|
||||
<body>
|
||||
<%
|
||||
PAGE_START();
|
||||
HEADER({title: subject, back:!qrc});
|
||||
CONTENT_START();
|
||||
|
||||
function fncolLink(oRs)
|
||||
{
|
||||
var url = "";
|
||||
if (grp_sel == "")
|
||||
{
|
||||
url = "../pda/ins_inspect_list.asp?grp=" + safe.url(oRs("ins_srtgroep_omschrijving").Value)
|
||||
+ (ruimte_key > -1? "&ruimte_key=" + ruimte_key : "")
|
||||
+ "&ins_srtgroep_key=" + oRs("ins_srtgroep_key").Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
url = "../pda/ins_inspect.asp?ins_key=" + oRs("ins_deel_key").Value;
|
||||
}
|
||||
return url;
|
||||
};
|
||||
function fncolGroup(oRs)
|
||||
{
|
||||
return safe.html(oRs("ins_srtgroep_omschrijving").Value);
|
||||
};
|
||||
function fncolHeader(oRs)
|
||||
{
|
||||
return safe.html(oRs("soort").Value);
|
||||
};
|
||||
function fncolsubHeader(oRs)
|
||||
{
|
||||
return "<div class='listbodykop'>" + safe.html(oRs("plaats").Value) + "</div>";
|
||||
};
|
||||
|
||||
var lastinspect = "(SELECT GREATEST(COALESCE (idsc.ins_deelsrtcontrole_plandatum"
|
||||
+ " , CASE di.ins_srtcontrole_mode"
|
||||
+ " WHEN 0"
|
||||
+ " THEN idsc.ins_deelsrtcontrole_datum_org" // Moment modus. Uitgaan van eigenlijke/orginele inspectiedatum.
|
||||
+ " ELSE idsc.ins_deelsrtcontrole_datum" // Interval modus. Uitgaan van werkelijke inspectiedatum.
|
||||
+ " END)"
|
||||
+ " , CASE di.ins_srtcontrole_mode"
|
||||
+ " WHEN 0"
|
||||
+ " THEN idsc.ins_deelsrtcontrole_datum_org" // Moment modus. Uitgaan van eigenlijke/orginele inspectiedatum.
|
||||
+ " ELSE idsc.ins_deelsrtcontrole_datum" // Interval modus. Uitgaan van werkelijke inspectiedatum.
|
||||
+ " END) ins_deelsrtcontrole_datum"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_deelsrtcontrole_status IN (5, 6)"
|
||||
+ " AND idsc.ins_deel_key = di.ins_deel_key"
|
||||
+ " AND idsc.ins_deelsrtcontrole_key = (SELECT MAX(idsc2.ins_deelsrtcontrole_key)"
|
||||
+ " FROM ins_deelsrtcontrole idsc2"
|
||||
+ " WHERE idsc2.ins_deel_key = di.ins_deel_key"
|
||||
+ " AND idsc2.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc2.ins_deelsrtcontrole_status IN (5, 6)))";
|
||||
|
||||
// Eerstvolgende inspectie
|
||||
var sqlNext = "SELECT ins_deel_key"
|
||||
+ " , inspectie_next"
|
||||
+ " , periode"
|
||||
+ " , inspectie_eind"
|
||||
+ " FROM ("
|
||||
+ " SELECT 1 rn" // inspecties die nog nooit zijn uitgevoerd/ingepland. Er is nog geen ins_deelsrtcontrole regel aanwezig en dus ook geen plandatum/respijtdatum.
|
||||
+ " , di.ins_deel_key"
|
||||
+ " , fac.nextcyclusdate(di.ins_deel_aanmaak"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits)"
|
||||
+ " , 1) inspectie_next"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) periode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " FROM ins_v_defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND (di.ins_deel_key, di.ins_srtcontrole_key) NOT IN"
|
||||
+ " (SELECT ins_deel_key, ins_srtcontrole_key"
|
||||
+ " FROM ins_deelsrtcontrole)"
|
||||
+ " UNION ALL"
|
||||
// Inspecties die al eens zijn uitgevoerd of inspecties die voor het eerst zijn ingepland(0) of gestart(2) maar nog geen uitgevoerde/afgemelde(6) inspectie hebben.
|
||||
+ " SELECT RANK ()" // Volgnummertje toekennen
|
||||
+ " OVER ("
|
||||
+ " PARTITION BY di.ins_deel_key, idsc.ins_srtcontrole_key" // Soort van group-by
|
||||
+ " 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.
|
||||
+ " THEN di.ins_deel_aanmaak" // Dan registratiedatum.
|
||||
+ " WHEN idsc.ins_deelsrtcontrole_status IN (0, 2)"
|
||||
+ " THEN ins_deelsrtcontrole_datum_org" // In status 0 en 2 wordt de volgende inspectie in ins_deelsrtcontrole_datum_org direct opgeslagen.
|
||||
+ " ELSE"
|
||||
+ " fac.nextcyclusdate(CASE"
|
||||
+ " WHEN di.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.
|
||||
+ " END"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits)"
|
||||
+ " , 1)"
|
||||
+ " END inspectie_next"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) periode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_v_defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " , ins_controlemode cm"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND idsc.ins_controlemode_key = cm.ins_controlemode_key(+)"
|
||||
+ " AND idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_deel_key = di.ins_deel_key"
|
||||
+ " ORDER BY inspectie_next)"
|
||||
+ " WHERE rn = 1"
|
||||
// Voor afgehandelde inspecties ook inspecties met periode 0 tonen.
|
||||
+ " AND periode > 0"
|
||||
// Alleen bij "Afgehandeld" vervallen inspecties tonen.
|
||||
+ " AND (inspectie_eind IS NULL OR inspectie_eind > SYSDATE)";
|
||||
|
||||
var sqlInspectie_select = " inspectie_next"
|
||||
+ ", ispn.inspectie_eind";
|
||||
|
||||
var sqlInspectie_from = ", (" + sqlNext + ") ispn"
|
||||
|
||||
var sqlInspectie_where = " AND ispn.ins_deel_key = i.ins_deel_key";
|
||||
|
||||
var sql = "SELECT o.alg_plaatsaanduiding"
|
||||
+ " || DECODE(o.alg_plaatsomschrijving, '','' ,' (' || o.alg_plaatsomschrijving || ')')"
|
||||
+ " plaats"
|
||||
+ " , " + lcl.xsql('s.ins_srtdeel_omschrijving', 's.ins_srtdeel_key') + " soort"
|
||||
+ " , i.ins_deel_omschrijving"
|
||||
+ " , i.ins_deel_key"
|
||||
+ " , s.ins_srtdeel_key"
|
||||
+ " , l.alg_district_key"
|
||||
+ " , s.ins_srtgroep_key" // filtering only
|
||||
+ " , isg.ins_srtgroep_omschrijving"
|
||||
+ " , " + sqlInspectie_select
|
||||
+ " FROM ins_deel i"
|
||||
+ " , ins_v_alg_overzicht o"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " , ins_srtgroep isg"
|
||||
+ sqlInspectie_from
|
||||
+ " , alg_locatie l"
|
||||
+ " , alg_district di" // I added this for alg_district_key (FSN#1082)
|
||||
+ " , (SELECT res_deel_key"
|
||||
+ " , res_ins_deel_key"
|
||||
+ " , " + lcl.xsqla('res_deel_opmerking', 'res_deel_key')
|
||||
+ " FROM res_deel"
|
||||
+ " WHERE res_deel_verwijder IS NULL"
|
||||
+ " AND res_deel_vervaldatum IS NULL"
|
||||
+ " UNION ALL"
|
||||
+ " SELECT res_deel_key"
|
||||
+ " , res_ins_deel_key"
|
||||
+ " , " + lcl.xsqla('res_deel_opmerking', 'res_deel_key')
|
||||
+ " FROM res_deel"
|
||||
+ " WHERE res_deel_verwijder IS NULL"
|
||||
+ " AND res_deel_vervaldatum > SYSDATE) rd"
|
||||
+ " WHERE i.ins_deel_verwijder IS NULL"
|
||||
+ " AND i.ins_deel_module = 'INS'"
|
||||
+ " AND i.ins_deel_key = rd.res_ins_deel_key(+)"
|
||||
+ " AND s.ins_srtgroep_key NOT IN (" + S("sle_ins_srt_groep_key") + ", " + S("cil_ins_srt_groep_key") + ")"
|
||||
+ (ins_srtgroep_key > -1
|
||||
? " AND s.ins_srtgroep_key = " + ins_srtgroep_key
|
||||
: "")
|
||||
+ " AND s.ins_srtgroep_key = isg.ins_srtgroep_key"
|
||||
+ sqlInspectie_where
|
||||
+ " AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key"
|
||||
+ " AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type"
|
||||
+ " AND i.ins_alg_ruimte_type IN ('T','R','W')"
|
||||
+ " AND o.alg_locatie_key = l.alg_locatie_key" // PF: de redundante ins_alg_locatie_key is niet nodig
|
||||
+ " AND l.alg_district_key = di.alg_district_key"
|
||||
+ " AND s.ins_srtdeel_key = i.ins_srtdeel_key"
|
||||
+ ((locatie_key > -1) ? " AND i.ins_alg_locatie_key = " + locatie_key : "")
|
||||
+ ((gebouw_key > -1) ? " AND o.alg_gebouw_key = " + gebouw_key : "")
|
||||
+ ((verdieping_key > -1)? " AND o.alg_verdieping_key = " + verdieping_key : "")
|
||||
+ ((ruimte_key > -1)
|
||||
? " AND ((i.ins_alg_ruimte_key = " + ruimte_key + " AND i.ins_alg_ruimte_type = 'R') "
|
||||
+ " OR (i.ins_alg_ruimte_key IN (SELECT prs_werkplek_key FROM prs_werkplek WHERE prs_alg_ruimte_key = " + ruimte_key + ") AND i.ins_alg_ruimte_type = 'W'))"
|
||||
: "");
|
||||
|
||||
// we must consider this: if we know that a room is defined (by filter), we must be
|
||||
// able to improve performance by using that condition, mustn't we?
|
||||
// furthermore: it's better to let Oracle Prepare
|
||||
sql = discx3d (sql,
|
||||
"i.ins_discipline_key",
|
||||
"di.alg_regio_key",
|
||||
"l.alg_district_key",
|
||||
"l.alg_locatie_key",
|
||||
"o.alg_gebouw_key",
|
||||
"o.alg_verdieping_key",
|
||||
"o.alg_ruimte_key",
|
||||
"", // b.prs_bedrijf_key: not used because algprs == 0
|
||||
"", // d.prs_afdeling_key: not used because algprs == 0
|
||||
"WEB_INSUSE", // autfunction
|
||||
'', // disc_key
|
||||
0); // AKZA#430/PF, AKZA#496/MGE
|
||||
|
||||
sql += " AND (ins_deel_vervaldatum IS NULL OR ins_deel_vervaldatum > SYSDATE)";
|
||||
|
||||
var dttoday = new Date((new Date()).setHours(23, 59, 59)); // Einde van de dag nemen.
|
||||
sql = "SELECT * FROM (" + sql + ") x WHERE inspectie_next < " + dttoday.toSQL(true)
|
||||
+ " ORDER BY ins_deel_omschrijving, plaats, soort";
|
||||
|
||||
var rst = new ResultsetTable({sql: sql,
|
||||
keyColumn: "ins_deel_key",
|
||||
linkColumn: fncolLink,
|
||||
groupColumn: fncolGroup,
|
||||
groupSelect: grp_sel,
|
||||
detailColumn: fncolHeader,
|
||||
headerColumn: "ins_deel_omschrijving",
|
||||
//asideColumn: fnAside,
|
||||
subheaderColumn: fncolsubHeader,
|
||||
ID: "instable",
|
||||
showAll: true
|
||||
});
|
||||
|
||||
var cnt = rst.processResultset();
|
||||
|
||||
CONTENT_END();
|
||||
FOOTER({});
|
||||
PAGE_END();
|
||||
%>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user