Files
Facilitor/APPL/PDA/ins_inspect.asp
2017-10-05 10:03:50 +00:00

734 lines
34 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" -->
<!-- #include file="../Shared/json2.js" -->
<%
// 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_deel_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.alg_ruimte_key = " + alg_ruimte_key;
var oRs = Oracle.Execute(sql);
var ins_key = oRs("ins_deel_key").Value;
}
if (ins_key > 0)
{ // Probeer alg_ruimte_key te achterhalen.
var sql = "SELECT ins_alg_ruimte_key"
+ " FROM ins_deel"
+ " WHERE ins_deel_key = " + ins_key;
var oRs = Oracle.Execute(sql);
var alg_ruimte_key = oRs("ins_alg_ruimte_key").Value;
var vorige_insp_sql = insp.list_sql(ins_key, {past: true, 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();
}
}
if (ins_key < 0)
{
shared.simpel_page(L("lcl_pda_ins_noinspect"));
}
var qrc = getQParamInt("qrc", 0) != 0;
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_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
+ (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>
<%
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.
user.auth_required_or_abort(this_ins.canInspStart || this_ins.canInspClose || this_ins.canInspFinish || this_ins.canDoAnyInspect);
var canMsuEdit = this_ins.canMsuEdit;
if (srtcontrole_key < 0 || defaultmode_key > 0)
{ // Eerst een soort controle bepalen.
%>
<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();
HEADER({title: L("lcl_ins_controle_choose_srt") + " (" + ins_deel_omschrijving + ")", back:!qrc});
CONTENT_START();
function fncolLink(oRs)
{
return "../pda/ins_inspect.asp?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_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 + ") 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 inspecite 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) " : "");
function fnPrefix(oRs, params)
{
return "<i class='fa fa-4x fa-check prefixcol' onclick='default_inspect({0});return false;'></i>".format(oRs.Fields("ins_srtcontrole_key").Value);
}
var rst = new ResultsetTable({sql: sql,
keyColumn: "ins_srtcontrole_key",
linkColumn: fncolLink,
prefixColumn: defaultmode_key > 0?fnPrefix:null,
detailColumn: "ins_srtcontrole_omschrijving",
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)
{
var data = { ins_keys: <%=ins_key%>,
srtcont_key_arr: deelsrtcont_key,
sel_controlemode: <%=defaultmode_key%>,
savemode: "C", // Afmelden/Afronden inspectie. (Close).
finish: 1 // Inspectie direct afronden.
};
<% protectRequest.dataToken("data"); %>
$.post("../ins/ins_inspect_save.asp",
data,
McltCallbackAndThen(ins_submit_callback),
"json");
}
</script>
</body>
</html>
<%
}
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"
+ " , cdp.ctr_disc_params_controle_type"
+ " , isc.ins_srtcontrole_options options"
+ " FROM ins_srtcontrole isc"
+ " , ins_deelsrtcontrole idsc"
+ " , ctr_disc_params cdp"
+ " WHERE isc.ins_srtcontrole_key = idsc.ins_srtcontrole_key(+)" // Er kan nog voor de eerste keer geinspecteerd moeten worden.
+ " AND isc.ctr_discipline_key = cdp.ctr_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_key").Value : -1;
var ins_deelsrtcontrole_status = oRs("ins_deelsrtcontrole_status").Value != null? oRs("ins_deelsrtcontrole_status").Value : -1;
var sctype = oRs("ctr_disc_params_controle_type").Value;
var isc_options = oRs("options").Value;
var status_str = "";
switch (ins_deelsrtcontrole_status)
{
case -1: status_str = L("lcl_ins_controle_first");
break;
case 6: status_str = L("lcl_ins_controle_new");
break;
case 0:
case 2:
case 5: status_str = ins.getinspectstatustext(ins_deelsrtcontrole_status);
break;
}
var ins_controlemode_key = oRs("ins_controlemode_key").Value != null && ins_deelsrtcontrole_status != 6? oRs("ins_controlemode_key").Value : -1;
var ins_deelsrtcontrole_opmerking = oRs("ins_deelsrtcontrole_opmerking").Value != null && ins_deelsrtcontrole_status != 6? oRs("ins_deelsrtcontrole_opmerking").Value : "";
%>
<html>
<head>
<% FCLTMHeader.Generate({title: subject}); %>
</head>
<body>
<%
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_ins_controle_srt"); break;
}
PAGE_START();
HEADER({title: titletext + " " + subject, back: !qrc, 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 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%>
// deelsrtcontrole_key: <%=oRs("ins_deelsrtcontrole_key").Value%>
};
<%
oRs.MoveNext();
}
%>
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%>"});
}
}
function ins_submit(action)
{
var finish = false;
var controlemodeField = (action == "E"? ["sel_controlemode"] : null);
if (!validateForm("u2", { 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("../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");
}
function ins_start()
{ // Geen verplichte velden.
if (confirm(L("lcl_ins_starting")))
{
var data = $("form[name=u2]").serialize();
protectRequest.dataToken(data);
$.post( "../ins/ins_inspect_start.asp"
, data
, McltCallbackAndThen(ins_callback)
, "json"
);
}
}
function ins_finish()
{ // Controle verplichte veld "Methode".
if (!validateForm("u2"))
return false;
if (confirm(L("lcl_ins_finishing")))
{
var data = $("form[name=u2]").serialize();
protectRequest.dataToken(data);
$.post( "../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";
$("#insFlexList").load(s, function(data)
{
FcltMgr.resized(window);
});
}
</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)
{
%> <a href="#ins-3-<%=ins_key%>"> <%
ROFIELD("fld", L("lcl_ins_controle_last"), toDateTimeString(oRs("ins_deelsrtcontrole_datum").Value) + " " + (oRs("ins_deelsrtcontrole_opmerking").Value || ""));
%> </a> <%
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 = Oracle.Execute(sql);
if (!oRs.eof && oRs("ins_deelsrtcontrole_plandatum").Value != null)
ROFIELD("fld", L("lcl_opdr_plandate"), toDateTimeString(oRs("ins_deelsrtcontrole_plandatum").Value));
}
sql = "SELECT " + lcl.xsqla('isc.ins_srtcontrole_omschrijving', 'isc.ins_srtcontrole_key')
+ " , ctr_disc_params_controle_type"
+ " , ins_srtcontrole_info"
+ " 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;
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 == 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: (ins_deelsrtcontrole_status >= 5 && !canMsuEdit) // In status 5 en 6 met INSMSU rechten mag ik de methode aanpassen (canMsuEdit).
}
);
RWFIELD("opmerk", L("lcl_remark"), ins_deelsrtcontrole_opmerking, {multi: true});
%> <div id="insFlexList"><% // Wrapper div voor dynamisch herladen
generateFlexKenmerkBlock({fnpre : function () {},
fnpost : "",
deelsrtcontrole_key: deelsrtcont_key,
srtcontrole_key: srtcontrole_key,
flexcolumns: 1,
mobile: true
});
%> </div><%
}
CONTROLGROUP_START();
if (oAr.length > 0)
BUTTON(L("lcl_ins_controle_previous")+" ("+oAr.length+")", {linkid: "#ins-3-"+ins_key, dataicon: "bullets"});
if (srtcontrole_info)
BUTTON(L("ins_srtcontrole_info"), {linkid: "#ins-2-"+ins_key, dataicon: "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()", dataicon: "clock"});
else
{
if (ins_deelsrtcontrole_status == 2 && this_ins.canInspClose)
BUTTON(L("lcl_ins_close"), {click: "ins_submit('C')", dataicon: "comment"});
if (ins_deelsrtcontrole_status == 2 && this_ins.canInspFinish)
BUTTON(L("lcl_ins_finish"), {click: "ins_submit('F')", dataicon: "check"});
}
break;
case 2:
case 5: BUTTON(L("lcl_submit"), {click: "ins_submit('E')", dataicon: "refresh"});
if (ins_deelsrtcontrole_status == 2 && this_ins.canInspClose)
BUTTON(L("lcl_ins_close"), {click: "ins_submit('C')", dataicon: "comment"});
if (this_ins.canInspFinish)
BUTTON(L("lcl_ins_finish"), {click: "ins_submit('F')", dataicon: "check"});
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, 3, 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("WEB_MLDUSE", { 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, dataicon: "plus", dataajax: "false"});
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, dataicon: "alert"});
}
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, nohome: 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, nohome: true});
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;
switch(oRs("ctr_controle_type").value)
{
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;
}
return titletext + " " + 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 "<span style='white-space: nowrap'>" + dttxt + "</span>";
};
var rst_hist = new ResultsetTable({ sql: vorige_insp_sql,
keyColumn: "ins_deelsrtcontrole_key",
linkColumn: fncolLink_hist,
prefixColumn: 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();
%>
</body>
</html>
<%
}
%>