Files
Facilitor/APPL/INS/ins_moveup.asp
Maykel Geerdink 8fd30b06ed FCLT#89443: Wijzigingen en verbeteringsvoorstellen MJOB module (Punt 7).
svn path=/Website/trunk/; revision=69956
2025-08-11 12:29:50 +00:00

119 lines
4.9 KiB
Plaintext

<%@ LANGUAGE = JavaScript %>
<% /*
$Revision$
$Id$
File: ins_moveup.asp
Description: Doorschuiven van een mjob taak.
Parameters: key
Context: Vanuit show-schermen en of vanuit overzichten
Result: JSON object
Note:
*/
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../shared/save2db.inc" -->
<!-- #include file="../INS/ins.inc" -->
<%
protectRequest.validateToken();
var ins_key_arr = getFParamKeyArray("ins_keys", []);
var srtcont_key_arr = getFParamKeyArray("srtcont_key_arr", []);
var dlsrtcont_key_arr = getFParamIntArray("dlsrtcont_key_arr", []); // De eerste "-1" waarde moeten niet verwijderd worden uit de array, daarom getFParamIntArray i.p.v. getFParamKeyArray.
var aantaltaken = getFParamInt("aantaltaken", 0);
var inflatiepct = S("mjb_inflation");
var inflatiefactor = 1 + (inflatiepct / 100);
var mjb_freeze_year = Math.max(S("mjb_freeze_year"), new Date().getFullYear());
var message = "";
var result = {};
var tobemovedup = 0;
var ingesloten = [];
// Bepaal de objecten in de selectie die ook echt doorgeschoven kunnen of mogen worden.
for (var i = 0; i < ins_key_arr.length; i++)
{
var this_ins = ins.func_enabled_deel(ins_key_arr[i],
{srtcont_key: srtcont_key_arr[i],
deelsrtcont_key: dlsrtcont_key_arr[i]
});
if (this_ins.canInspMoveUp)
{
var sql = "SELECT cd.ins_discipline_omschrijving"
+ " FROM ins_v_defined_inspect_xcp xcp"
+ " , ctr_v_aanwezigdiscipline cd"
+ " WHERE xcp.ctr_discipline_key = cd.ins_discipline_key"
+ " AND xcp.ins_deel_key = " + ins_key_arr[i]
+ " AND xcp.ins_srtcontrole_key = " + srtcont_key_arr[i];
var oRs = Oracle.Execute(sql);
var ins_discipline_omschrijving = oRs("ins_discipline_omschrijving").Value;
oRs.Close();
ingesloten.push({ ins_key: ins_key_arr[i],
srtcont_key: srtcont_key_arr[i],
dlsrtcont_key: dlsrtcont_key_arr[i],
disc_oms: ins_discipline_omschrijving });
tobemovedup++;
}
}
// Hier geen "user.anything_todo_or_abort(tobemovedup > 0);". We geven altijd een melding terug hoeveel taken er terug gezet zijn.
var ins_xcp_active_cost = S("ins_xcp_active_cost");
result.success = true;
for (var i = 0; i < ingesloten.length; i++)
{
var costarray = [];
if (ins_xcp_active_cost & 1) costarray.push("COALESCE(ins_srtcontrole_kosten, 0)");
if (ins_xcp_active_cost & 2) costarray.push("COALESCE(ins_srtcontrole_kosten2, 0)");
if (ins_xcp_active_cost & 4) costarray.push("COALESCE(ins_srtcontrole_kosten3, 0)");
if (ins_xcp_active_cost & 8) costarray.push("COALESCE(ins_srtcontrole_materiaal, 0)");
var sqlcost = "";
if (costarray.length > 0)
sqlcost = "(" + costarray.join(" + ") + ") * ";
var sql = "SELECT (ins_deel_aantal * "
+ sqlcost
+ " (COALESCE(ins_srtcontrole_percentage, 100) / 100) * "
+ " POWER(" + inflatiefactor + " , " + mjb_freeze_year + " - EXTRACT(YEAR FROM SYSDATE))) kosten"
+ " FROM ins_v_defined_inspect_xcp"
+ " WHERE ins_deel_key = " + ingesloten[i].ins_key
+ " AND ins_srtcontrole_key = " + ingesloten[i].srtcont_key
+ " AND ctr_ismjob = 1";
var oRs = Oracle.Execute(sql);
var kosten = oRs("kosten").Value;
oRs.Close();
var fields = [ { dbs: "ins_deelsrtcontrole_freezecost", typ: "float", val: kosten, track: L("lcl_ins_controle_freezecost") },
{ dbs: "ins_deelsrtcontrole_freezedate", typ: "datetime", val: new Date(mjb_freeze_year, 0, 1), track: L("lcl_ins_controle_freezedate") } // Freezedate eerste dag van freeze year.
];
// Inspectie (ins_deelsrtcontrole) record aanpassen.
var insUpd = buildTrackingUpdate("ins_deelsrtcontrole", " ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key, fields);
// De aangepaste freeze velden opslaan.
var err = Oracle.Execute(insUpd.sql, true);
if (err.friendlyMsg)
{
result.message = err.friendlyMsg;
result.success = false;
}
// Tracking van de wijziging.
ins.trackinspectupdate(ingesloten[i].dlsrtcont_key, L("lcl_ins_controle_is_upd").format(ingesloten[i].disc_oms) + "\n" + insUpd.trackarray.join("\n"));
}
if (ingesloten.length < aantaltaken)
{ // Niet alle taken zijn doorgeschoven.
result.message = ingesloten.length == 1? L("lcl_mjb_moveup_mes_1").format(aantaltaken) : L("lcl_mjb_moveup_mes_n").format(ingesloten.length, aantaltaken);
}
else
{ // Alle taken zijn doorgeschoven.
result.toaster = L("lcl_mjb_moveup_completed");
}
Response.Write(JSON.stringify(result));
%><% ASPPAGE_END(); %>