Files
Facilitor/APPL/PDA/ins_inspect.asp
2025-08-20 10:33:37 +00:00

762 lines
35 KiB
Plaintext

<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
Description: Mobile taakdetailscherm
Parameters: vereist ins_key en optioneel deelsrtcont_key
Note: Ik vind de werking wat impliciet/schimmig irt deelsrtcont_key.
Voor een bestaande inspectie moet nu redundant de ins_key ook
worden meegegeven en dat gaat in principe ten koste van de mogelijkheden
*/
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../mld/mld.inc" -->
<!-- #include file="../ins/ins.inc" -->
<!-- #include file="../ins/ins_flexkenmerksrtcontrole.inc" -->
<!-- #include file="../ins/ins_inspect_list.inc" -->
<!-- #include file="./mobile.inc" -->
<!-- #include file="./iface.inc" -->
<!-- #include file="./resultset_table.inc" -->
<%
// Get parameters
var ins_key = getQParamInt("ins_key", -1);
var today = getQParamInt("today", -1);
var nested = getQParamInt("nested", 0);
nested++;
var alg_ruimte_key = getQParamInt("alg_ruimte_key", -1);
var srtcontrole_key = getQParamInt("srtcontrole_key", -1);
var deelsrtcont_key = getQParamInt("deelsrtcont_key", -1); // Bestaande inspectie
var defaultmode_key = getQParamInt("defaultmode", -1); // Default controlemode
var qry_params = {};
if (alg_ruimte_key > 0)
{
var sql = "SELECT COALESCE(MIN(ins_deel_key), -1) ins_deel_key"
+ " FROM ins_v_deelenonderdeel_gegevens dg,"
+ " ins_srtcontrole sc"
+ " WHERE dg.ins_srtdeel_key = sc.ins_srtinstallatie_key"
+ " AND (sc.ins_srtcontrole_niveau = 'S'"
+ " AND sc.ins_srtinstallatie_key = dg.ins_srtdeel_key"
+ " OR sc.ins_srtcontrole_niveau = 'G'"
+ " AND sc.ins_srtinstallatie_key = dg.ins_srtgroep_key"
+ " OR sc.ins_srtcontrole_niveau = 'D'"
+ " AND sc.ins_srtinstallatie_key = dg.ins_discipline_key)"
+ " AND (dg.ins_deel_vervaldatum IS NULL OR dg.ins_deel_vervaldatum > TRUNC(SYSDATE))"
+ " AND dg.alg_ruimte_key = " + alg_ruimte_key;
var oRs = Oracle.Execute(sql);
var ins_key = oRs("ins_deel_key").Value;
oRs.Close();
}
if (ins_key > 0)
{ // Probeer alg_ruimte_key te achterhalen.
var sql = "SELECT ins_alg_ruimte_key"
+ " FROM ins_v_deelenonderdeel"
+ " WHERE ins_deel_key = " + ins_key;
var oRs = Oracle.Execute(sql);
var alg_ruimte_key = oRs("ins_alg_ruimte_key").Value;
oRs.Close();
var vorige_insp_sql = insp.list_sql(ins_key, -1, {past: true, present: false, future: false});
var oRs_i = Oracle.Execute(vorige_insp_sql);
var oAr = [];
while (!oRs_i.eof)
{
var rs = { seq: oRs_i("seq").Value
, insp_dt: oRs_i("ins_deelsrtcontrole_datum").Value
, insp_oms: oRs_i("ins_srtcontrole_omschrijving").Value
};
oAr.push(rs);
oRs_i.MoveNext();
}
oRs_i.Close();
}
if (ins_key < 0)
{
shared.simpel_page(L("lcl_pda_ins_noinspect"));
}
var qrc = getQParamInt("qrc", 0) != 0;
var submit = getQParam("submit", "X") == "F";
if (srtcontrole_key < 0)
{ // De soort controles moet vooraf bekend zijn zodat ook de kenmerken direct getoond kunnen worden (niet clientside).
// Als er meerdere mogelijk zijn, dan eerst een keuze laten maken.
var sql = "SELECT COUNT (isc.ins_srtcontrole_key) aantal_srtcontoles"
+ " , MIN(isc.ins_srtcontrole_key) min_srtcontrole_key"
+ " , id.ins_deel_omschrijving"
+ " FROM ins_v_deelenonderdeel 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
+ (today != -1
? " AND (TRUNC(FAC.nextcyclusdatedeel (id.ins_deel_key, isc.ins_srtcontrole_key, 1)) <= TRUNC(sysdate) "
+ " OR (SELECT idsc1.ins_deelsrtcontrole_status"
+ " FROM ins_deelsrtcontrole idsc1"
+ " WHERE idsc1.ins_deelsrtcontrole_key = (SELECT MAX(idsc2.ins_deelsrtcontrole_key)"
+ " FROM ins_deelsrtcontrole idsc2"
+ " WHERE idsc2.ins_deel_key = id.ins_deel_key"
+ " AND idsc2.ins_srtcontrole_key = isc.ins_srtcontrole_key"
+ " AND idsc2.ins_scenario_key = 1)) < 6"
+ " )"
: "")
+ " GROUP BY id.ins_deel_omschrijving";
var oRs = Oracle.Execute(sql);
if (oRs.Eof) // er is niets over
{
//shared.simpel_page(L("lcl_pda_ins_noinspect"));
%>
<html>
<head>
<% FCLTMHeader.Generate({}); %>
</head>
<body>
<script>
// Terug naar de lijst
<% if (nested > 0)
{ %>
window.history.go(-<%=nested%>); // Aantal schermen terug.
<% } %>
</script>
</body>
</html>
<% ASPPAGE_END();
Response.End;
}
var aantal_srtcontoles = oRs("aantal_srtcontoles").Value;
var ins_deel_omschrijving = oRs("ins_deel_omschrijving").Value;
if (aantal_srtcontoles == 1)
srtcontrole_key = oRs("min_srtcontrole_key").Value;
oRs.close();
}
var this_ins = ins.func_enabled_deel(ins_key,
{srtcont_key: srtcontrole_key,
deelsrtcont_key: deelsrtcont_key
});
// Inplannen kan ik niet op mobile.
// Net als op de desktop mag ik de inspecties zien als je this_ins.canInspShow rechten hebt.
// Ook als je op dit moment geen acties op inspectie kunt uitvoeren zou je de laatste inspectie toch mogen zien.
// Niet alleen kijken naar de (this_ins.canInspStart || this_ins.canInspClose || this_ins.canInspFinish) rechten.
user.auth_required_or_abort(this_ins.canInspShow || this_ins.canDoAnyInspect);
var canMsuEdit = this_ins.canMsuEdit;
if (srtcontrole_key < 0 || defaultmode_key > 0)
{ // Eerst een soort controle bepalen.
// De default controle mode van de srtcontrole "ins_srtcontrole.ins_controlemode_key" kan ik niet bepalen omdat de srtcontrole_key niet bekend is,
// of de defaultmode_key is meegegeven en deze waarde overruled de default controle mode van de srtcontrole.
%>
<html>
<head>
<% FCLTMHeader.Generate({}); %>
<style>
.prefixcol { height: 40px;
background-color: #66C2AF;
padding: 7px;
}
.ui-listview > .ui-li-has-thumb > .ui-btn,
.ui-listview > .ui-li-static.ui-li-has-thumb {
min-height: auto;
padding-left: 60px;
}
</style>
</head>
<body>
<%
PAGE_START();
var multiactions = [];
if (defaultmode_key > 0) {
multiactions.push({ icon: "fa-check", action: "default_inspect", caption: L("lcl_ins_stop") });
}
HEADER({
title: L("lcl_ins_controle_choose_srt") + " (" + ins_deel_omschrijving + ")",
back: !qrc,
multiactions: multiactions.length
});
CONTENT_START();
function fncolLink(oRs)
{
return "../pda/ins_inspect.asp?qrc=" + (qrc ? 1 : 0) + "&ins_key=" + ins_key + "&srtcontrole_key=" + oRs("ins_srtcontrole_key").Value;
};
// Eerst een soort controle bepalen.
var sql = "SELECT i.ins_srtcontrole_key"
+ " , " + lcl.xsqla('i.ins_srtcontrole_omschrijving', 'i.ins_srtcontrole_key')
+ " , i.ctr_discipline_key"
+ " FROM ( SELECT isc.ins_srtcontrole_key"
+ " , isc.ins_srtcontrole_eenheid"
+ " , isc.ins_srtcontrole_omschrijving"
+ " , id.ins_deel_key"
+ " , isc.ctr_discipline_key"
+ " , isc.ins_srtcontrole_eind"
+ " FROM ins_v_deelenonderdeel 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 + ") i"
+ " LEFT JOIN"
+ " (SELECT xcp.ins_srtcontroledl_xcp_eenheid"
+ " , xcp.ins_srtcontrole_key"
+ " , xcp.ins_deel_key"
+ " , xcp.ins_srtcontroledl_xcp_eind"
+ " FROM ins_srtcontroledl_xcp xcp"
+ " WHERE xcp.ins_deel_key = " + ins_key
+ " AND xcp.ins_scenario_key = 1"
+ " ) xcp"
+ " ON i.ins_deel_key = xcp.ins_deel_key"
+ " AND i.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
+ " WHERE COALESCE (ins_srtcontroledl_xcp_eenheid, ins_srtcontrole_eenheid) <> 0"
+ " AND (COALESCE(xcp.ins_srtcontroledl_xcp_eind, i.ins_srtcontrole_eind) IS NULL"
+ " OR COALESCE(xcp.ins_srtcontroledl_xcp_eind, i.ins_srtcontrole_eind) > TRUNC(SYSDATE, 'DD')" // Vervallen taken niet tonen.
+ " OR (SELECT idsc1.ins_deelsrtcontrole_status" // Vervallen taken die nog een inspectie hebben lopen, wel tonen.
+ " FROM ins_deelsrtcontrole idsc1"
+ " WHERE idsc1.ins_deelsrtcontrole_key = (SELECT MAX (idsc2.ins_deelsrtcontrole_key)"
+ " FROM ins_deelsrtcontrole idsc2"
+ " WHERE idsc2.ins_deel_key = xcp.ins_deel_key"
+ " AND idsc2.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
+ " AND idsc2.ins_scenario_key = 1)) != 6)"
// Alleen de disciplines tonen waar de user rechten op heb.
+ " AND i.ctr_discipline_key IN (SELECT g.ins_discipline_key"
+ " FROM fac_v_webgebruiker g"
+ " , fac_functie f"
+ " WHERE g.fac_functie_key = f.fac_functie_key"
+ " AND f.fac_functie_code = 'WEB_CTRUSE'"
+ " AND g.fac_gebruiker_prs_level_write < 9"
+ " AND g.fac_gebruiker_alg_level_write < 9"
+ " AND g.prs_perslid_key = " + user_key + ")"
+ (today != -1 ? " AND TRUNC(FAC.nextcyclusdatedeel (i.ins_deel_key, i.ins_srtcontrole_key, 1)) <= TRUNC(sysdate) " : "");
var rst = new ResultsetTable({sql: sql,
keyColumn: "ins_srtcontrole_key",
linkColumn: fncolLink,
detailColumn: "ins_srtcontrole_omschrijving",
multiactions: multiactions,
ID: "srtcontroletable",
showAll: true,
noSearch: true
});
var cnt = rst.processResultset();
CONTENT_END();
FOOTER();
PAGE_END();
%>
<script>
function ins_submit_callback(json)
{
if (json.success)
{
jqToast(L("lcl_mobile_data_saved"));
FcltMgr.reload({appendurl: "nested=-1"}); // Geen nesting.
}
}
function default_inspect(deelsrtcont_key_arr)
{
var data = { ins_keys: <%=ins_key%>,
srtcont_key_arr: deelsrtcont_key_arr.join(","),
sel_controlemode: <%=defaultmode_key%>,
savemode: "C", // Afmelden/Afronden inspectie. (Close).
finish: 1 // Inspectie direct afronden.
};
<% protectRequest.dataToken("data"); %>
$.post("<%=rooturl%>/appl/ins/ins_inspect_save.asp",
data,
McltCallbackAndThen(ins_submit_callback),
"json");
}
</script>
<%
}
else
{ // Er is een soort controle key PF: maar niet noodzakelijkerwijs een ins_key eigenlijk
var sql = "SELECT id.ins_deel_omschrijving"
+ " FROM ins_deel id"
+ " WHERE id.ins_deel_key = " + ins_key;
var oRs = Oracle.Execute(sql);
var subject = oRs("ins_deel_omschrijving").Value;
oRs.Close();
var sql = "SELECT idsc.ins_deelsrtcontrole_key"
+ " , idsc.ins_deelsrtcontrole_status"
+ " , idsc.ins_controlemode_key"
+ " , idsc.ins_deelsrtcontrole_opmerking"
+ " , cd.ins_discipline_omschrijving"
+ " , isc.ins_srtcontrole_options options"
+ " , isc.ins_controlemode_key default_controlemode_key"
+ " FROM ins_srtcontrole isc"
+ " , ins_deelsrtcontrole idsc"
+ " , ctr_v_aanwezigdiscipline cd"
+ " WHERE isc.ins_srtcontrole_key = idsc.ins_srtcontrole_key(+)" // Er kan nog voor de eerste keer geinspecteerd moeten worden.
+ " AND isc.ctr_discipline_key = cd.ins_discipline_key(+)"
+ " AND idsc.ins_deel_key(+) = " + ins_key // PF: lijkt mij alleen indien deelsrtcont_key == -1
+ " AND isc.ins_srtcontrole_key = " + srtcontrole_key // PF: lijkt mij alleen indien deelsrtcont_key == -1
+ " AND idsc.ins_scenario_key(+) = 1"
+ (deelsrtcont_key > 0
? " AND idsc.ins_deelsrtcontrole_key = " + deelsrtcont_key
: "")
+ " ORDER BY ins_deelsrtcontrole_datum DESC";
var oRs = Oracle.Execute(sql);
// Waarden moeten aanwezig zijn. Mocht dat niet zo zijn dan is er iets fout.
var deelsrtcont_key = oRs("ins_deelsrtcontrole_key").Value != null && oRs("ins_deelsrtcontrole_status").Value != 6? oRs("ins_deelsrtcontrole_key").Value : -1;
var ins_deelsrtcontrole_status = oRs("ins_deelsrtcontrole_status").Value != null? oRs("ins_deelsrtcontrole_status").Value : -1;
var sccat = oRs("ins_discipline_omschrijving").Value;
var isc_options = oRs("options").Value;
var status_str = "";
switch (ins_deelsrtcontrole_status)
{
case -1:
case 6: status_str = L("lcl_ins_controle_new"); // Als status "Voltooid(6)" is, dan nieuwe invoer van inspectie. Voor voltooide inspecties wordt bestand ins_inspect_hist.asp gebruikt.
break;
case 0:
case 2:
case 3:
case 5: status_str = ins.getinspectstatustext(ins_deelsrtcontrole_status);
break;
}
var default_controlemode_key = oRs("default_controlemode_key").Value || -1;
var ins_controlemode_key = oRs("ins_controlemode_key").Value != null && ins_deelsrtcontrole_status != 6? oRs("ins_controlemode_key").Value : default_controlemode_key;
var ins_deelsrtcontrole_opmerking = oRs("ins_deelsrtcontrole_opmerking").Value != null && ins_deelsrtcontrole_status != 6? oRs("ins_deelsrtcontrole_opmerking").Value : "";
oRs.Close();
%>
<html>
<head>
<% FCLTMHeader.Generate({title: subject}); %>
</head>
<body>
<%
var titletext = (sccat ? sccat + " " + subject: subject);
PAGE_START();
HEADER({title: titletext, back: (!qrc||srtcontrole_key>0), home: !qrc});
CONTENT_START();
deelsrtcontrole_datum = new Date();
%>
<script type="text/javascript">
var inspected_srtcontroles = new Array();
<%
// Is er op de inspectiedatum of op het inspectieuur al geinspecteerd voor deze objecten?
sql = "SELECT idsc.ins_deelsrtcontrole_datum"
+ " , idsc.ins_deelsrtcontrole_key"
+ " , 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 (" + ins_key + ")"
+ " AND isc.ins_srtcontrole_key = " + srtcontrole_key
+ " AND idsc.ins_scenario_key = 1"
+ " AND xcp.ins_scenario_key(+) = 1"
+ " AND idsc.ins_deelsrtcontrole_status = 6" // Voltooide/Afgeronde inspecties. Lopende inspecties niet meenemen.
+ " AND COALESCE(isc.ins_srtcontrole_periode, xcp.ins_srtcontroledl_xcp_periode) > 0";
var oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
%>
inspected_srtcontroles[inspected_srtcontroles.length] = { srtcontrole_key: <%=srtcontrole_key%>,
datum: <%=new Date(oRs("ins_deelsrtcontrole_datum").Value).getTime()%>,
eenheid: <%=oRs("eenheid").Value%>,
mode: <%=oRs("ins_srtcontrole_mode").Value%>
};
<%
oRs.MoveNext();
}
oRs.Close();
%>
function ins_callback(json)
{
if (json.success)
{
jqToast(L("lcl_mobile_data_saved"));
if (json.start || json.finish || json.savemode != "E")
FcltMgr.reload({appendurl: "nested=<%=nested%>"});
}
}
async function ins_submit(action)
{
var finish = false;
var controlemodeField = (action == "E"? ["sel_controlemode"] : null);
if (!await validateForm("u2", { checkExtraClass: (action == "F"? "mayberequired" : ""), checkNot: controlemodeField }))
return false;
if (action == "C" || action == "F")
{ // De uitvoerdatum van de inspectie is nu. Daardoor ligt deze na de laatste uitvoerdatum en niet in de toekomst.
for (i = 0; i < inspected_srtcontroles.length; i++)
{
if (inspected_srtcontroles[i].srtcontrole_key == $("#srtcont_key_arr").val())
{
// Controle of er op de inspectiedatum (Vandaag) of op het inspectieuur (Dit uur) al inspecties zijn geweest.
if (new Date().midnight().getTime() == 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 (new Date(new Date().setMinutes(0,0,0)).getTime() == 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 (new Date(new Date().setSeconds(0, 0)).getTime() == new Date(parseInt(inspected_srtcontroles[i].datum)).getTime() &&
inspected_srtcontroles[i].mode == 1)
{ // 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;
}
}
}
}
if (action == "F")
{
if (<%=ins_deelsrtcontrole_status%> == 5)
{ // Gereed gemelde taak die voltooid moet worden. Alleen opmerking opslaan en status aanpassen.
var data = { ins_keys: $("#ins_keys").val(),
dlsrtcont_key_arr: $("#dlsrtcont_key_arr").val()};
protectRequest.dataToken(data);
$.post("<%=rooturl%>/appl/ins/ins_inspect_finish.asp", data, McltCallbackAndThen(ins_callback), "json");
return;
}
else
{
finish = true;
action = "C";
}
}
$("#savemode").val(action); // Vul savemode met "E": Wijzigen (Edit) of "C": Afmelden/Afronden (Close).
$("#finish").val(finish? 1 : 0); // Inspectie direct wel/niet afronden.
$.post($("form[name=u2]")[0].action,
$("form[name=u2]").serialize(),
McltCallbackAndThen(ins_callback),
"json");
}
async function ins_start()
{ // Controle verplichte velden.
if (!await validateForm("u2"))
return false;
if (confirm(L("lcl_ins_starting")))
{
var data = $("form[name=u2]").serialize();
$.post( "<%=rooturl%>/appl/ins/ins_inspect_start.asp"
, data
, McltCallbackAndThen(ins_callback)
, "json"
);
}
}
async function ins_finish()
{ // Controle verplichte velden.
if (!await validateForm("u2"))
return false;
if (confirm(L("lcl_ins_finishing")))
{
var data = $("form[name=u2]").serialize();
$.post( "<%=rooturl%>/appl/ins/ins_inspect_finish.asp"
, data
, McltCallbackAndThen(ins_callback)
, "json"
);
}
}
function onChangeSrtControle()
{
var s = "../ins/load_kenmerksrtcontrole.asp?srtcont_key=" + $("#srtcont_key_arr").val() + "&mobile=1";
$.get(s, function (data) { flexReloaded(data, true); });
}
<%
if (qrc && submit && nested == 1 && this_ins.canInspFinish)
{
var canFinish = false;
switch (ins_deelsrtcontrole_status)
{
case -1:
case 0:
case 6: if (this_ins.canInspStart) break;
case 2:
case 3:
case 5: canFinish = true;
break;
}
if (canFinish)
{ %>
$(function()
{
ins_submit("F");
});
<%
}
} %>
</script>
<form name="u2" action="../ins/ins_inspect_save.asp?ins_keys=<%=ins_key%>" method="post">
<input type="hidden" name="ins_keys" id="ins_keys" value="<%=ins_key%>">
<input type="hidden" name="dlsrtcont_key_arr" id="dlsrtcont_key_arr" value="<%=deelsrtcont_key%>">
<input type="hidden" name="deelsrtcont_key" id="deelsrtcont_key" value="<%=deelsrtcont_key%>">
<input type="hidden" name="srtcont_key_arr" id="srtcont_key_arr" value="<%=srtcontrole_key%>">
<input type="hidden" name="savemode" id="savemode" value="E">
<input type="hidden" name="finish" id="finish" value="0">
<% ROFIELD("fld", L("lcl_ins_status"), status_str);
// Ik wil de vorige controle + opmerking tonen; optie is nog class expired2 toe te voegen als te laat
// (misschien dat ook al bij de button als er binnen een dag een inspectie moet of zo)
// Let op: deze datum hangt af van de srtcontrole, als dat er meer dan 1 is vind ik het nu de moeite nog niet waard.
var sql = "SELECT idsc.ins_deelsrtcontrole_datum"
+ " , idsc.ins_deelsrtcontrole_opmerking"
+ " , idsc.ins_deelsrtcontrole_plandatum"
+ " FROM ins_deelsrtcontrole idsc"
+ " WHERE idsc.ins_deel_key = " + ins_key
+ " AND idsc.ins_deelsrtcontrole_status = 6"
+ " AND idsc.ins_scenario_key = 1"
+ " ORDER BY ins_deelsrtcontrole_datum DESC";
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
ROFIELD("fld", L("lcl_ins_controle_last"), toDateTimeString(oRs("ins_deelsrtcontrole_datum").Value) + " " + (oRs("ins_deelsrtcontrole_opmerking").Value || ""), {moreinfo: "#ins-3-"+ins_key});
var sql = "SELECT idsc.ins_deelsrtcontrole_plandatum"
+ " FROM ins_deelsrtcontrole idsc"
+ " WHERE idsc.ins_deel_key = " + ins_key
+ " AND idsc.ins_deelsrtcontrole_status != 6"
+ " AND idsc.ins_scenario_key = 1";
var oRs_p = Oracle.Execute(sql);
if (!oRs_p.eof && oRs_p("ins_deelsrtcontrole_plandatum").Value != null)
ROFIELD("fld", L("lcl_opdr_plandate"), toDateTimeString(oRs_p("ins_deelsrtcontrole_plandatum").Value));
oRs_p.Close();
}
oRs.Close();
sql = "SELECT " + lcl.xsqla('isc.ins_srtcontrole_omschrijving', 'isc.ins_srtcontrole_key')
+ " , ctr_disc_params_controle_type"
+ " , ins_srtcontrole_info"
+ " , ins_srtcontrole_opmerking_text"
+ " FROM ins_srtcontrole isc"
+ " , ctr_disc_params cdp"
+ " WHERE ins_srtcontrole_key = " + srtcontrole_key
+ " AND isc.ctr_discipline_key = cdp.ctr_ins_discipline_key";
oRs = Oracle.Execute(sql);
var srtcontrole_oms = oRs("ins_srtcontrole_omschrijving").Value;
var srtcontrole_type = oRs("ctr_disc_params_controle_type").Value;
var srtcontrole_info = oRs("ins_srtcontrole_info").Value;
var srtcontrole_opmerking_txt = oRs("ins_srtcontrole_opmerking_text").Value;
oRs.Close();
// Er is geen inplannen van inspecties bij mobiel.
// Dan taakafhandeling (controle_mode) tonen als:
// a) De status is "In behandeling(2)" of "Gereed gemeld (5)".
// b) De status "In behandeling(2)" is uitgeschakeld.
if (ins_deelsrtcontrole_status == 2 || ins_deelsrtcontrole_status == 3 || ins_deelsrtcontrole_status == 5 || !this_ins.canInspStart)
{
ROFIELD("sel_srtcontrole_oms", L("lcl_ins_controle"), srtcontrole_oms, {});
sql = "SELECT cm.ins_controlemode_key"
+ " , " + lcl.xsqla('cm.ins_controlemode_oms', 'cm.ins_controlemode_key')
+ " FROM ins_controlemode cm"
+ " WHERE ins_srtcontrole_type = " + srtcontrole_type; // modelfoutje? moet langs ctr_disc_params_controle_type?
FCLTselector("sel_controlemode",
sql,
{ initKey: ins_controlemode_key,
label: L("lcl_ins_controle_mode"),
emptyOption: L("lcl_select_controlemode"),
required: true,
mobile: true,
readonly: false // Na het starten of indien het starten geen actieve actie is, moet de taakafhandeling altijd in te vullen of te wijzigen zijn.
}
);
var insReq = (srtcontrole_opmerking_txt & 1);
RWFIELD("opmerk", L("lcl_remark"), ins_deelsrtcontrole_opmerking, {multi: true, pclass: (insReq ? " required" : "")});
generateFlexKenmerkBlock({deelsrtcontrole_key: deelsrtcont_key,
srtcontrole_key: srtcontrole_key,
mobile: true,
submit: (ins_deelsrtcontrole_status == 2 || ins_deelsrtcontrole_status == 3 || ins_deelsrtcontrole_status == 5),
close: (((ins_deelsrtcontrole_status == -1 || ins_deelsrtcontrole_status == 0 || ins_deelsrtcontrole_status == 6) && this_ins.canInspClose) ||
((ins_deelsrtcontrole_status == 2 || ins_deelsrtcontrole_status == 3) && this_ins.canInspClose)),
finish: this_ins.canInspFinish,
ins_status: ins_deelsrtcontrole_status == 6 && deelsrtcont_key < 0? -1 : ins_deelsrtcontrole_status
});
}
CONTROLGROUP_START();
if (oAr.length > 0)
BUTTON(L("lcl_ins_controle_previous")+" ("+oAr.length+")", {linkid: "#ins-3-"+ins_key, icon: "fa-list"});
if (srtcontrole_info)
BUTTON(L("ins_srtcontrole_info"), {linkid: "#ins-2-"+ins_key, icon: "fa-info"});
switch (ins_deelsrtcontrole_status)
{
case -1:
case 6: // Geen inplannen van inspecties bij mobiel.
case 0: if (this_ins.canInspStart)
BUTTON(L("lcl_ins_start"), {click: "ins_start()", icon: "fa-clock"});
else
{
if (this_ins.canInspClose)
BUTTON(L("lcl_ins_close"), {click: "ins_submit('C')", icon: "fa-flag"});
if (this_ins.canInspFinish)
BUTTON(L("lcl_ins_finish"), {click: "ins_submit('F')", icon: "fa-flag-checkered"});
}
break;
case 2:
case 3:
case 5: BUTTON(L("lcl_submit"), {click: "ins_submit('E')", icon: "fa-fclt-save"});
if ((ins_deelsrtcontrole_status == 2 || ins_deelsrtcontrole_status == 3) && this_ins.canInspClose)
BUTTON(L("lcl_ins_close"), {click: "ins_submit('C')", icon: "fa-flag"});
if (this_ins.canInspFinish)
BUTTON(L("lcl_ins_finish"), {click: "ins_submit('F')", icon: "fa-flag-checkered"});
break;
}
if (user.checkAutorisation("WEB_MLDUSE", true))
{
var tsql = "SELECT COUNT(m.mld_melding_key) aantal"
+ " FROM mld_melding_object mo, mld_melding m"
+ " WHERE mo.mld_melding_object_verwijder IS NULL"
+ " AND mo.mld_melding_key = m.mld_melding_key"
+ " AND m.mld_melding_status IN (0, 2, 4, 7)" // lopende meldingen
+ " AND mo.ins_deel_key = " + ins_key;
var toRs = Oracle.Execute(tsql);
if (toRs("aantal").Value == 0)
{ // Geen, dan moet ik dus willen toevoegen.
// Dan moet er wel een srtdiscipline getoond kunnen worden.
var mySRTsql = mld.srtdisc_sql({ ins_key: ins_key });
var sql = "SELECT MIN(ins_srtdiscipline_key) ins_srtdiscipline_key"
+ " , COUNT(DISTINCT ins_srtdiscipline_key) aantal"
+ " FROM (" + mySRTsql + ")";
var oRs = Oracle.Execute(sql);
if (oRs("aantal").Value > 0)
BUTTON(L("lcl_mobile_newmelding"), {linkid: "./melding.asp?mld_key=-1&ins_key=" + ins_key + "&meldbronkey=10&deelsrtcont_key="+deelsrtcont_key, icon: "fa-plus" });
oRs.Close();
}
else if (toRs("aantal").Value > 0 && user.checkAutorisation("WEB_MLDBOF", true))
{
BUTTON(L("lcl_mobile_meldingen") + " (" + toRs("aantal").Value + ")", {linkid: "./mld_list.asp?ins_key=" + ins_key + "&meldbronkey=10&deelsrtcont_key="+deelsrtcont_key, icon: "fa-exclamation-circle"});
}
toRs.Close();
}
CONTROLGROUP_END();
IFACE.FORM_END();
%></form><%
CONTENT_END();
FOOTER();
PAGE_END();
PAGE_START({id: "ins-2-"+ins_key, dialog: true})
HEADER({title: srtcontrole_oms, back: true}) ;
CONTENT_START();
ROFIELD("fclthtml", "", srtcontrole_info, {multi: true});
CONTENT_END();
PAGE_END();
PAGE_START({id: "ins-3-"+ins_key, dialog: true});
HEADER({title: L("lcl_ins_controle_previous"), back: true, home: !qrc});
CONTENT_START();
function fncolHeader_hist(oRs)
{
var srtcontrole = safe.html(oRs("ins_srtcontrole_omschrijving").Value);
return srtcontrole;
};
function fncolLink_hist(oRs)
{
qry_params.deelsrtcontrole_key = oRs("ins_deelsrtcontrole_key").Value;
return "../pda/ins_inspect_hist.asp?ins_key=" + ins_key + "&deelsrtcontrole_key=" + oRs("ins_deelsrtcontrole_key").Value;
};
function fnPrefix_hist(oRs)
{
var object = safe.html(oRs("ins_deel_omschrijving").Value);
var titletext = safe.html(oRs("ins_discipline_omschrijving").Value);
return (titletext ? titletext + " " + object : object);
};
function fncolDetail_hist(oRs)
{
var objectsoort = safe.html(oRs("ins_srtdeel_omschrijving").Value);
return objectsoort;
};
function fnAside_hist(oRs)
{
var inspectie_datum = oRs("ins_deelsrtcontrole_datum").Value;
var inspectie_eenheid = oRs("eenheid").Value;
if (inspectie_eenheid == 0)
var dttxt = toDateTimeString(inspectie_datum);
else
var dttxt = toDateString(inspectie_datum);
return safe.html(dttxt);
};
var rst_hist = new ResultsetTable({ sql: vorige_insp_sql,
keyColumn: "ins_deelsrtcontrole_key",
linkColumn: fncolLink_hist,
subheaderColumn: fnPrefix_hist,
detailColumn: fncolDetail_hist,
headerColumn: fncolHeader_hist,
asideColumn: fnAside_hist,
ID: "hist_table",
showAll: true,
noSearch: true
});
var cnt_hist = rst_hist.processResultset();
CONTENT_END();
PAGE_END();
}
PDA_PAGE_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>