762 lines
35 KiB
Plaintext
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(); %>
|