ASFC#34371: Start en stopmoment bij schoonmaak via inspecties kunnen vastleggen.
UWVA#35539: ins: kan gedane inspectie aanpassen. svn path=/Website/trunk/; revision=29125
This commit is contained in:
360
APPL/INS/ins_show_inspect.asp
Normal file
360
APPL/INS/ins_show_inspect.asp
Normal file
@@ -0,0 +1,360 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: ins_show_inspect.asp
|
||||
Description: Details van een inpectie.
|
||||
Parameters: deelsrtcont_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 = getQParamInt("ins_key");
|
||||
var srtcont_key = getQParamInt("srtcont_key");
|
||||
var deelsrtcont_key = getQParamInt("deelsrtcont_keys", -1); // Bestaande inspectie indien meegegeven.
|
||||
%>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate(); %>
|
||||
|
||||
<%
|
||||
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 = " + deelsrtcont_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var deelsrtcontrole_datum = oRs("ins_deelsrtcontrole_datum").Value != null? new Date(oRs("ins_deelsrtcontrole_datum").Value): null;
|
||||
var controlemode_key = oRs("ins_controlemode_key").Value;
|
||||
var deelsrtcontrole_opmerking = oRs("ins_deelsrtcontrole_opmerking").Value;
|
||||
var deelsrtcontrole_plandatum = oRs("ins_deelsrtcontrole_plandatum").Value != null? new Date(oRs("ins_deelsrtcontrole_plandatum").Value) : null;
|
||||
var deelsrtcontrole_status = oRs("ins_deelsrtcontrole_status").Value;
|
||||
var deelsrtcontrole_status_str = ins.getinsstatustext(oRs("ins_deelsrtcontrole_status").Value);
|
||||
|
||||
var eenheid = -1;
|
||||
var scmode = 1; // 0 = Momentmode, 1 = Intervalmode.
|
||||
var sctype = -1;
|
||||
var vervaldatum = null;
|
||||
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"
|
||||
+ " , 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"
|
||||
+ " , 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 idsc.ins_deel_key = di.ins_deel_key"
|
||||
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) > 0"
|
||||
+ " AND idsc.ins_deelsrtcontrole_key = " + deelsrtcont_key
|
||||
+ " )";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
eenheid = oRs("eenheid").Value;
|
||||
info = oRs("info").Value;
|
||||
scmode = oRs("scmode").Value;
|
||||
sctype = oRs("sctype").Value;
|
||||
vervaldatum = oRs("vervaldatum").Value != null? new Date(oRs("vervaldatum").Value) : null;
|
||||
vervallen = vervaldatum != null && vervaldatum < new Date();
|
||||
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
function ins_start()
|
||||
{
|
||||
if (confirm(L("lcl_ins_starting")))
|
||||
{
|
||||
var data = { ins_keys: <%=ins_key%>,
|
||||
srtcont_key_arr: <%=srtcont_key%>
|
||||
};
|
||||
|
||||
protectRequest.dataToken(data);
|
||||
$.post( "ins_inspect_start.asp"
|
||||
, data
|
||||
, FcltCallbackRefresh
|
||||
, "json"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function ins_edit(actie)
|
||||
{
|
||||
if (FcltMgr.startEdit(window))
|
||||
window.location.href = "ins_edit_inspect.asp?ins_keys=<%=ins_key%>&srtcont_keys=<%=srtcont_key%>&deelsrtcont_keys=<%=deelsrtcont_key%>"
|
||||
+ (actie == "P"? "&plan=1" : "")
|
||||
+ (actie == "C"? "&close=1" : "");
|
||||
}
|
||||
|
||||
function ins_finish()
|
||||
{
|
||||
if (confirm(L("lcl_ins_finishing")))
|
||||
{
|
||||
var data = { ins_keys: <%=ins_key%>,
|
||||
dlsrtcont_key_arr: <%=deelsrtcont_key%>
|
||||
};
|
||||
|
||||
protectRequest.dataToken(data);
|
||||
$.post( "ins_inspect_finish.asp"
|
||||
, data
|
||||
, FcltCallbackRefresh
|
||||
, "json"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function ins_cancel()
|
||||
{
|
||||
FcltMgr.closeDetail(window, { cancel: true } );
|
||||
}
|
||||
|
||||
|
||||
function ins_melding()
|
||||
{ // Meldbron "Inspection" meegeven (mld_meldbron_key = 10).
|
||||
FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=fo&meldbronkey=10&ins_key=<%=ins_key%>", "<%=L("lcl_add")%>");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body id="editbody">
|
||||
<% // Melding aanmaakbaar? Alleen meldingen die enigzins beperkt zijn tot onze object(soort/groep)
|
||||
var canMelding = false;
|
||||
var sql = "SELECT COUNT(*) aantal"
|
||||
+ " FROM mld_stdmelding msm"
|
||||
+ " , ins_tab_discipline itd"
|
||||
+ " , ins_srtdiscipline isd"
|
||||
+ " , ins_deel d"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " , ins_srtgroep g"
|
||||
+ " WHERE msm.mld_ins_discipline_key = itd.ins_discipline_key"
|
||||
+ " AND mld_stdmelding_verwijder IS NULL"
|
||||
+ " AND ((msm.mld_stdmelding_vervaldatum IS NULL) "
|
||||
+ " OR (msm.mld_stdmelding_vervaldatum > SYSDATE))"
|
||||
+ " AND EXISTS"
|
||||
+ " (SELECT fw.ins_discipline_key"
|
||||
+ " FROM fac_v_webgebruiker fw, fac_functie ff"
|
||||
+ " WHERE msm.mld_ins_discipline_key = fw.ins_discipline_key"
|
||||
+ " AND fw.prs_perslid_key = " + user_key
|
||||
+ " AND fw.fac_functie_key = ff.fac_functie_key"
|
||||
+ " AND ff.fac_functie_code IN ('WEB_MLDFOF')"// Backo mag geen meldingen aanmaken
|
||||
+ " AND fw.fac_gebruiker_alg_level_write < 9)"// In theorie zouden we ook nog kunnen ALG-scopen...
|
||||
+ " AND itd.ins_srtdiscipline_key = isd.ins_srtdiscipline_key"
|
||||
+ " AND isd.ins_srtdiscipline_ins = 1"
|
||||
+ " AND d.ins_deel_key = " + ins_key
|
||||
+ " AND d.ins_srtdeel_key = s.ins_srtdeel_key"
|
||||
+ " AND s.ins_srtgroep_key = g.ins_srtgroep_key"
|
||||
+ " AND ( msm.ins_srtinst_niveau = 'S' AND ins_srtinst_key = d.ins_srtdeel_key"
|
||||
+ " OR msm.ins_srtinst_niveau = 'G' AND ins_srtinst_key = g.ins_srtgroep_key"
|
||||
+ " OR msm.ins_srtinst_niveau = 'D' AND ins_srtinst_key = g.ins_discipline_key"
|
||||
// + " OR msm.ins_srtinst_niveau IS NULL" // is wel h<><68>l algemeen
|
||||
+ " )";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
canMelding = (oRs("aantal").Value > 0);
|
||||
oRs.Close();
|
||||
|
||||
// Als object is vervallen dan kun je niet meer inspecteren en uitstellen.
|
||||
var this_ins = ins.func_enabled_deel(ins_key);
|
||||
|
||||
// Gedaande inspecties kunnen alleen geedit worden.
|
||||
// Ik zie alleen objecten waar ik read rechten (3d) op heb. Dan mag ik ze ook verder inzien.
|
||||
var canEdit = !vervallen && deelsrtcontrole_status >= 0 && deelsrtcontrole_status < 6 && this_ins.canChange;
|
||||
//var canShow = deelsrtcontrole_status >= 0 && this_ins.canRead && !canEdit;
|
||||
var canShow = deelsrtcontrole_status >= 0 && this_ins.canRead;
|
||||
var canPlan = !vervallen && this_ins.canInspect && (deelsrtcontrole_status < 0);
|
||||
var canStart = !vervallen && this_ins.canInspect && (deelsrtcontrole_status <= 0);
|
||||
// Als de inspectie vervallen is moet je alleen nog de lopende inspecties kunnen gereed melden en afronden.
|
||||
//var canClose = (!vervallen || (vervallen && (deelsrtcontrole_status == 0 || deelsrtcontrole_status == 2))) && this_ins.canInspect && (deelsrtcontrole_status < 5);
|
||||
//var canFinish = this_ins.canInspect && deelsrtcontrole_status == 5;
|
||||
var canClose = (!vervallen || (vervallen && (deelsrtcontrole_status == 0 || deelsrtcontrole_status == 2))) && deelsrtcontrole_status < 5;
|
||||
var canFinish =(!vervallen || (vervallen && (deelsrtcontrole_status == 0 || deelsrtcontrole_status == 2))) && deelsrtcontrole_status == 5;
|
||||
|
||||
var buttons = [];
|
||||
if (canStart)
|
||||
buttons.push({title: L("lcl_ins_start"), action: "ins_start()", icon: "fileopen.png" });
|
||||
if (canPlan)
|
||||
buttons.push({title: L("lcl_ins_schedule"), action: "ins_edit('P')", icon: "wijzigen.png" });
|
||||
if (canEdit)
|
||||
buttons.push({title: L("lcl_change"), action: "ins_edit()", icon: "wijzigen.png" });
|
||||
if (canClose)
|
||||
buttons.push({title: L("lcl_ins_close") + "/" + L("lcl_ins_finish"), action: "ins_edit('C')", icon: "close.png" });
|
||||
if (canFinish)
|
||||
buttons.push({title: L("lcl_ins_finish"), action: "ins_finish()", icon: "close.png" });
|
||||
if (canMelding)
|
||||
buttons.push({title: L("lcl_do_amelding_hint"), action: "ins_melding()", icon: "doemelding.png" });
|
||||
|
||||
//buttons.push({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" onSubmit="return false;">
|
||||
<% BLOCK_START("insShow", L("lcl_show"));
|
||||
|
||||
var sql = " SELECT isc.ins_srtcontrole_key"
|
||||
+ " , " + lcl.xsqla('isc.ins_srtcontrole_omschrijving', 'isc.ins_srtcontrole_key')
|
||||
+ " FROM ins_srtcontrole isc"
|
||||
+ " WHERE isc.ins_srtcontrole_key = " + srtcont_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var ins_srtcontrole_oms = oRs("ins_srtcontrole_omschrijving").Value;
|
||||
|
||||
ROTEXTAREATR("fldtxt", L("lcl_ins_controle"), ins_srtcontrole_oms, {suppressEmpty: true });
|
||||
|
||||
ROTEXTAREATR("fldtxt", L("lcl_ins_info"), info, {html: "rows='3'", trclass: "invoerinsp", id: "srtcontrole_info", suppressEmpty: true });
|
||||
|
||||
// Status tonen.
|
||||
var params = {};
|
||||
params = { infoPointer: { Url: "appl/shared/status_info.asp?insc_key=" + deelsrtcont_key + "&urole=bo",
|
||||
Title: L("lcl_status_details") + " " + deelsrtcont_key
|
||||
}
|
||||
}
|
||||
params.suppressEmpty = true;
|
||||
ROFIELDTR("fld", L("lcl_ins_status"), deelsrtcontrole_status_str, params);
|
||||
|
||||
if (deelsrtcontrole_status == 0 || deelsrtcontrole_status == 2)
|
||||
FCLTcalendar("plandatum",
|
||||
{ label: L("lcl_opdr_plandate"),
|
||||
datum: deelsrtcontrole_plandatum,
|
||||
trclass: "invoerinsp",
|
||||
//minDate: minDate,
|
||||
timeField: true,
|
||||
timeStep: 60,
|
||||
startTime: 0,
|
||||
endTime: 23.75,
|
||||
readonly: true,
|
||||
suppressEmpty: true
|
||||
});
|
||||
|
||||
if (deelsrtcontrole_status >= 5)
|
||||
{
|
||||
FCLTcalendar("deelsrtcontrole_plandatum",
|
||||
{ label: L("lcl_ins_controle_plandate"),
|
||||
datum: 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: deelsrtcontrole_datum? deelsrtcontrole_datum : new Date(),
|
||||
//minDate: minDate,
|
||||
//maxDate: new Date(),
|
||||
trclass: "invoerinsp",
|
||||
timeField: true,
|
||||
timeStep: 60,
|
||||
startTime: 0,
|
||||
endTime: 23.75,
|
||||
// Als de inspectie vervallen is moet je alleen nog de lopende inspecties kunnen gereed melden en afronden. De datum moet je dan ook nog kunnen invullen.
|
||||
readonly: true
|
||||
});
|
||||
|
||||
sql = "SELECT ins_controlemode_key"
|
||||
+ " , " + lcl.xsqla('ins_controlemode_oms', 'ins_controlemode_key')
|
||||
+ " FROM ins_controlemode"
|
||||
+ " WHERE ins_srtcontrole_type = " + sctype
|
||||
+ " ORDER BY 2";
|
||||
|
||||
// Methode is voor de status Afgemeld(5) en Historie/Verwerkt(6) altijd ingevuld.
|
||||
FCLTselector("sel_controlemode",
|
||||
sql,
|
||||
{ label: L("lcl_ins_controle_mode"),
|
||||
initKey: controlemode_key, // Als de controle mode bij multi verschillend is, dan is deze waarde -1.
|
||||
//emptyOption: L("lcl_select_controlemode"),
|
||||
readonly: true
|
||||
});
|
||||
}
|
||||
|
||||
ROTEXTAREATR("fldremark",
|
||||
L("lcl_remark"),
|
||||
deelsrtcontrole_opmerking,
|
||||
{ html: "rows='8'",
|
||||
trclass: "invoerinsp",
|
||||
maxlength: 2000,
|
||||
suppressEmpty: true
|
||||
});
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
// 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.
|
||||
var eenheid = <%=eenheid%>;
|
||||
var scmode = <%=scmode%>;
|
||||
if (scmode == 0 && eenheid != 0)
|
||||
$("#time_from_plandatum").hide();
|
||||
</script>
|
||||
<%
|
||||
BLOCK_END();
|
||||
%>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<%
|
||||
BLOCK_START("insFlex2", L("lcl_ins_additional_details")); //block over gehele breedte
|
||||
%><div id='insFlexList'><% // Wrapper div voor dynamisch herladen
|
||||
|
||||
generateFlexKenmerkBlock({deelsrtcontrole_key: deelsrtcont_key,
|
||||
srtcontrole_key: srtcont_key,
|
||||
reado: true,
|
||||
flexcolumns: 1
|
||||
});
|
||||
%></div><%
|
||||
BLOCK_END();
|
||||
|
||||
IFACE.FORM_END();
|
||||
%>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user