Files
Facilitor/APPL/INS/ins_inspect_finish.asp
Peter Feij 24a389b680 FCLT#65537 dialecten voor objecten
svn path=/Website/trunk/; revision=56666
2022-07-22 12:45:48 +00:00

101 lines
3.6 KiB
Plaintext

<%@ LANGUAGE = JavaScript %>
<% /*
$Revision$
$Id$
File: ins_inspect_start.asp
Description: Afronden van de inspecties.
Parameters:
ins_keys Array van objecten waarvan inspecties moeten worden afgerond.
srtcont_keys Array van soort controles die moeten worden afgerond.
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
*/ %>
<%
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../shared/save2db.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc" -->
<!-- #include file="ins.inc" -->
<%
protectRequest.validateToken();
var ins_key_arr = getFParamIntArray("ins_keys");
var dlsrtcont_key_arr = getFParamIntArray("dlsrtcont_key_arr", []);
var multi = dlsrtcont_key_arr.length > 1;
var mobile = Request.Form("opmerk").count == 1; // Bij mobile is een geldige opmerking meegegeven.
var tobefinished = 0;
var ingeslotendsc = [];
// Bepaal de objecten/delen in de selectie die ook echt gestart kunnen of mogen worden.
var ctrdisc_key = -1;
if (dlsrtcont_key_arr.length > 0)
{
for (var i = 0; i < ins_key_arr.length; i++)
{
// Als er nog geen inspectierecord aangemaakt is, dan deze overslaan. Dan had je Afmelden/Afronden moeten kiezen.
if (dlsrtcont_key_arr[i] < 0)
continue;
var sql = "SELECT idsc.ins_srtcontrole_key"
+ " , isc.ctr_discipline_key"
+ " FROM ins_srtcontrole isc"
+ " , ins_deelsrtcontrole idsc"
+ " WHERE isc.ins_srtcontrole_key = idsc.ins_srtcontrole_key"
+ " AND idsc.ins_deelsrtcontrole_key = " + dlsrtcont_key_arr[i];
var oRs = Oracle.Execute(sql);
ctrdisc_key = oRs("ctr_discipline_key").Value
var this_ins = ins.func_enabled_deel(ins_key_arr[i],
{srtcont_key: oRs("ins_srtcontrole_key").Value,
deelsrtcont_key: dlsrtcont_key_arr[i]
});
oRs.Close();
// Deze actie rond alleen afgemelde inspecties af.
if (this_ins.canInspFastFinish)
{ // Alle Arrays zijn even groot.
ingeslotendsc.push(dlsrtcont_key_arr[i]);
tobefinished++;
}
}
}
lcl.set_dialect(ctrdisc_key, "CTR_DISCIPLINE_KEY");
user.anything_todo_or_abort(tobefinished > 0); // We klagen niet over enkele wel en enkele niet.
var result = { success: true, multi: multi, finish: true };
for (var i = 0; i < ingeslotendsc.length; i++)
{ // Bij mobile ook opmerking opslaan want die kan aangepast zijn.
if (mobile)
{ // Opmerking ook opslaan.
var fields = [{dbs: "ins_deelsrtcontrole_opmerking", typ: "varchar", frm: "opmerk", track: L("lcl_remark"), len: 4000}];
var insUpd = buildTrackingUpdate("ins_deelsrtcontrole", " ins_deelsrtcontrole_key = " + ingeslotendsc[i], fields);
var err = Oracle.Execute(insUpd.sql, true);
if (err.friendlyMsg)
{
result.warning = err.friendlyMsg;
result.success = false;
}
if (insUpd.trackarray.length)
ins.trackinspectupdate(ingeslotendsc[i], L("lcl_ins_controle_is_upd") + "\n" + insUpd.trackarray.join("\n"));
}
// De status zetten, tracking genereren en notificaties sturen.
ins.setinspectstatus(ingeslotendsc[i], 6); // History/Verwerkt(6).
}
result.key = ingeslotendsc.join(",");
Response.Write(JSON.stringify(result));
%>
<% ASPPAGE_END(); %>