KMMO#82722: Kan er een knop toegevoegd worden om geaccordeerde taken terug te zetten.

svn path=/Website/trunk/; revision=66456
This commit is contained in:
Maykel Geerdink
2024-10-03 13:31:31 +00:00
parent 73d39bc4b4
commit a2a714ea88
4 changed files with 62 additions and 51 deletions

View File

@@ -2312,7 +2312,7 @@ ins = {checkAutLevel:
+ " , s.ins_srtdeel_mjb_grensscore1"
+ (lentoutAction >= 0 ? " , t.fac_tracking_datum" : "")
: "")
+ (insFlexParams.anyflex
+ (insFlexParams && insFlexParams.anyflex
? insFlexParams.sql
: "");
@@ -2596,7 +2596,7 @@ ins = {checkAutLevel:
+ " , dl.ins_deel_mjb_score2"
+ " , s.ins_srtdeel_mjb_grensscore1"
+ (lentoutAction >= 0 ? " , t.fac_tracking_datum" : "")
+ ( insFlexParams.anyflex
+ (insFlexParams && insFlexParams.anyflex
? insFlexParams.sql
: "")
+ " , CASE WHEN dl.ins_alg_ruimte_type_org IS NOT NULL AND dl.ins_alg_ruimte_type = 'P'"
@@ -3980,6 +3980,7 @@ ins = {checkAutLevel:
var sel_controlemode123 = params.sel_controlemode123;
var jaren = params.jaren;
var freeze = params.freeze;
var unfreeze = params.unfreeze;
var execute = params.execute;
var pricechange = params.pricechange;
var finish = params.finish;
@@ -4958,10 +4959,10 @@ ins = {checkAutLevel:
+ " , cy.hascontroles"
+ " , cy.completed"
+ " , cy.rejected"
+ (algFlexParams.anyflex
+ (algFlexParams && algFlexParams.anyflex
? algFlexParams.sql
: "")
+ (insFlexParams.anyflex
+ (insFlexParams && insFlexParams.anyflex
? insFlexParams.sql
: "")
+ " FROM (" + sql_yearcost + ") cy"
@@ -5006,7 +5007,7 @@ ins = {checkAutLevel:
+ " )"
: "");
if (keys != null && keys.length > 0 && niveau != null && niveau > 0 && (pricechange || freeze || execute || finish || addToScenario))
if (keys != null && keys.length > 0 && niveau != null && niveau > 0 && (pricechange || freeze || unfreeze || execute || finish || addToScenario))
{
switch (niveau)
{
@@ -5509,10 +5510,10 @@ ins = {checkAutLevel:
+ " AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
+ " AND m.mld_melding_key = (" + sql_melding + ")) prefix"
: "")
+ (algFlexParams.anyflex
+ (algFlexParams && algFlexParams.anyflex
? " , CV.algflex"
: "")
+ ( insFlexParams.anyflex
+ (insFlexParams && insFlexParams.anyflex
? " , CV.insflex"
: "")
+ " FROM (" + sql_cost_verval + ") cv"
@@ -5760,7 +5761,7 @@ ins = {checkAutLevel:
// Bulkactie accorderen (freeze), uitvoeren (execute) of voltooien/afronden (finish).
// Ik moet nog de juiste insert waarden ophalen voor alle objecten die de sql oplevert.
if (niveau >= 1 && niveau <= 7 && (pricechange || freeze || execute || finish))
if (niveau >= 1 && niveau <= 7 && (pricechange || freeze || unfreeze || execute || finish))
{ // Prijswijziging (pricechange), Accorderen (Freeze), Uitvoeren (Execute) of Voltooien/Afronden (Finish).
if (pricechange)
{
@@ -5772,7 +5773,7 @@ ins = {checkAutLevel:
mjblist_sql_select += ", result.\"" + jaren[j] + "\"";
}
}
else if (freeze)
else if (freeze || unfreeze)
{
var mjblist_sql_select = "SELECT xcp.ins_deel_key"
+ " , xcp.ins_srtcontrole_key"
@@ -5899,11 +5900,12 @@ ins = {checkAutLevel:
// Daar zorgt de freeze actie en punt 2) ook wel voor.
// 1) Alleen voor Accorderen (Freeze): niet vervallen.
// 2) Freeze: status <= 0 of status == 6
// Finish: status == 2
// Unfreeze: status == 2
// Finish: status == 2 of 3
// 3) actief object
// 4) hasCTRFOFWrite (freez) of hasCTRUSEWrite (finish) rechten.
// 5) Freeze: bij instelling "Actieve acties" het vinkje "Starten" aangevinkt.
// Finish: bij instelling "Actieve acties" het vinkje "Afronden" aangevinkt.
// 5) Freeze, Unfreeze: bij instelling "Actieve acties" het vinkje "Starten" aangevinkt.
// Finish: bij instelling "Actieve acties" het vinkje "Afronden" aangevinkt.
// 6) geen scenario (scenario_key is 1)
// 7) ismjob
// 8) isFreezeYear
@@ -5911,13 +5913,13 @@ ins = {checkAutLevel:
//
// 0) MJOB dus interval mode(1).
if (freeze || finish)
if (freeze || unfreeze|| finish)
mjblist_sql += (freeze
? " AND result.idsc_freezed IS NULL" // 0) Freeze: Vorige inspectie is niet geaccordeerd(gestart(2)).
: " AND result.idsc_freezed = result.ins_deelsrtcontrole_key") // Finish: Laatste inspectie is geaccordeerd(gestart(2)).
: " AND result.idsc_freezed = result.ins_deelsrtcontrole_key") // Unfreeze, Finish: Laatste inspectie is geaccordeerd(gestart(2)).
+ (freeze
? " AND (xcp.ins_srtcontroledl_xcp_eind IS NULL OR xcp.ins_srtcontroledl_xcp_eind >= SYSDATE)" // 1) Freeze: Niet vervallen.
: "") // Finish: Maakt niet uit.
: "") // Unfreeze, Finish: Maakt niet uit.
+ (freeze
? " AND (EXISTS" // 2) Freeze: Geen controles of laatste controle status 0 of 6.
+ " (SELECT idsc1.ins_deelsrtcontrole_status"
@@ -5935,15 +5937,15 @@ ins = {checkAutLevel:
+ " WHERE idsc2.ins_deel_key = xcp.ins_deel_key"
+ " AND idsc2.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
+ " AND idsc2.ins_scenario_key = xcp.ins_scenario_key))"
: " AND EXISTS" // Finish: Laatste controle status 2 of 3.
+ " (SELECT idsc1.ins_deelsrtcontrole_status"
: " AND EXISTS" // Unfreeze: Laatste controle status 2.
+ " (SELECT idsc1.ins_deelsrtcontrole_status" // Finish: Laatste controle status 2 of 3.
+ " 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 = xcp.ins_scenario_key)"
+ " AND idsc1.ins_deelsrtcontrole_status IN (2, 3))");
+ " AND idsc1.ins_deelsrtcontrole_status IN (2" + (finish? ", 3" : "") + "))");
if (pricechange)
mjblist_sql += " AND (xcp.ins_srtcontroledl_xcp_eind IS NULL OR xcp.ins_srtcontroledl_xcp_eind >= SYSDATE)"; // 1) Prijswijziging: Niet vervallen.
@@ -5958,9 +5960,9 @@ ins = {checkAutLevel:
+ " AND w.fac_gebruiker_alg_level_write < 9"
+ " AND w.prs_perslid_key = " + user_key + ")";
if (freeze || finish)
mjblist_sql += (freeze
? " AND BITAND(xcp.ins_srtcontrole_options, 2) = 2" // 5) Freeze: Het vinkje "Starten" aangevinkt.
if (freeze || unfreeze || finish)
mjblist_sql += (freeze || unfreeze
? " AND BITAND(xcp.ins_srtcontrole_options, 2) = 2" // 5) Freeze, Unfreeze: Het vinkje "Starten" aangevinkt.
: " AND BITAND(xcp.ins_srtcontrole_options, 8) = 8"); // Finish: Het vinkje "Afronden" aangevinkt.
if (pricechange)
@@ -5971,7 +5973,7 @@ ins = {checkAutLevel:
mjblist_sql += " AND xcp.ins_scenario_key = 1" // 6) Geen scenario.
+ " AND xcp.ctr_ismjob = 1" // 7) ismjob.
+ (freeze || finish
+ (freeze || unfreeze || finish
? " AND result.\"" + mjb_freeze_year + "\" IS NOT NULL" // 8) isFreezeYear, bedrag in mjb_freeze_year is niet NULL.
: "");

View File

@@ -22,6 +22,7 @@ var JSON_Result = true;
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../shared/save2db.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc" -->
<!-- #include file="../Shared/discxalg3d.inc" -->
<!-- #include file="../API2/api2.inc" -->
<!-- #include file="ins.inc" -->
@@ -40,6 +41,7 @@ var inflatiefactor = 1 + (inflatiepct / 100);
var mjb_start_year = S("mjb_start_year");
var mjb_freeze_year = S("mjb_freeze_year");
var result = {key: "", success: true, multi: multi, start: true };
var ingesloten = [];
if (groupby < 9)
{
@@ -115,13 +117,11 @@ if (groupby < 9)
mjbFreezed: mjbFreezed,
mjbXcped: mjbXcped,
jaren: [mjb_freeze_year],
freeze: true
unfreeze: true
};
var mjblist_sql = ins.getmjblist_sql(mjbparams);
// De mjblist_sql bevat nu alle objecten (ins_deel_key) van de aangevinkte regels uit het mjb overzicht en levert voor elk object de waarden voor de insert op.
var result = {key: "", success: true, multi: multi, start: true };
var oRs = Oracle.Execute(mjblist_sql);
user.anything_todo_or_abort(!oRs.eof); // We klagen niet over enkele wel en enkele niet
@@ -150,7 +150,9 @@ if (groupby < 9)
+ " , xcp.ctr_discipline_key"
+ " FROM ins_deelsrtcontrole idsc"
+ " , ins_v_defined_inspect_xcp xcp"
+ " WHERE xcp.ins_srtcontrole_key = idsc.ins_srtcontrole_key"
+ " WHERE xcp.ins_deel_key = idsc.ins_deel_key"
+ " AND xcp.ins_srtcontrole_key = idsc.ins_srtcontrole_key"
+ " AND xcp.ins_scenario_key = idsc.ins_scenario_key"
+ " AND idsc.ins_deel_key = " + ingesloten[i].ins_key
+ " AND idsc.ins_srtcontrole_key = " + ingesloten[i].srtcont_key
+ " AND idsc.ins_scenario_key = 1"
@@ -196,34 +198,40 @@ else
}
lcl.set_dialect(ctrdisc_key, "CTR_DISCIPLINE_KEY");
user.anything_todo_or_abort(tobestart > 0); // We klagen niet over enkele wel en enkele niet
}
var result = {key: "", success: true, multi: multi, start: true };
for (var i = 0; i < ingesloten.length; i++)
{ // Indien er een plandatum is gezet dan de status naar ingepland(0) zetten, anders het inspectie record verwijderen.
if (ingesloten[i].hasPlandatum)
{ // Zetten van de status en afhandelen van de tracking (en notificatie) van het starten.
ins.setinspectstatus(ingesloten[i].dlsrtcont_key, 0); // Ingepland(0)
for (var i = 0; i < ingesloten.length; i++)
{ // Indien er een plandatum is gezet dan de status naar ingepland(0) zetten, anders het inspectie record verwijderen.
if (ingesloten[i].hasPlandatum)
{ // Zetten van de status en afhandelen van de tracking (en notificatie) van het starten.
ins.setinspectstatus(ingesloten[i].dlsrtcont_key, 0); // Ingepland(0)
// Tracking van het ongedaan maken van de accordering.
ins.trackinspectupdate(ingesloten[i].dlsrtcont_key, L("lcl_mjb_start_reversed"));
}
else
{ // Inspectie (ins_deelsrtcontrole) record verwijdern.
var sql = "DELETE FROM ins_deelsrtcontrole"
+ " WHERE ins_deelsrtcontrole_key = " + deelsrtcont_key_arr[i];
Oracle.Execute(sql);
// Tracking is niet meer terug te herleiden naar de verwijderde inspectie.
// Daarom de tracking van het accorderen verwijderen.
var sql = "DELETE FROM fac_tracking"
+ " WHERE fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key FROM fac_srtnotificatie WHERE fac_srtnotificatie_code = 'INSCBE')"
+ " AND fac_tracking_refkey = " + deelsrtcont_key_arr[i];
Oracle.Execute(sql);
// Maak de freeze velden freezecost en freezedate weer leeg.
var sql = "UPDATE ins_deelsrtcontrole"
+ " SET ins_deelsrtcontrole_freezecost = NULL"
+ " , ins_deelsrtcontrole_freezedate = NULL"
+ " WHERE ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key;
Oracle.Execute(sql);
result.key += (i > 0? "," : "") + ingesloten[i].dlsrtcont_key;
}
// Tracking van het ongedaan maken van de accordering.
ins.trackinspectupdate(ingesloten[i].dlsrtcont_key, L("lcl_mjb_start_reversed"));
}
else
{ // Inspectie (ins_deelsrtcontrole) record verwijdern.
var sql = "DELETE FROM ins_deelsrtcontrole"
+ " WHERE ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key;
Oracle.Execute(sql);
// Tracking is niet meer terug te herleiden naar de verwijderde inspectie.
// Daarom de tracking van het accorderen verwijderen.
var sql = "DELETE FROM fac_tracking"
+ " WHERE fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key FROM fac_srtnotificatie WHERE fac_srtnotificatie_code = 'INSCBE')"
+ " AND fac_tracking_refkey = " + ingesloten[i].dlsrtcont_key;
Oracle.Execute(sql);
result.key += (i > 0? "," : "") + ingesloten[i].dlsrtcont_key;
}
result.key += (i > 0? "," : "") + ingesloten[i].dlsrtcont_key;
}
result.toaster = L("lcl_mjb_start_reversed");

View File

@@ -337,7 +337,7 @@ function insStart(rowArray, isMulti, pfreeze)
});
}
function insUnstart(rowArray, isMulti)
function insUnfreeze(rowArray, isMulti)
{
var lcl_1 = L("lcl_ins_unstarting");
var lcl_m = L("lcl_ins_unstarting_m");
@@ -353,7 +353,7 @@ function insUnstart(rowArray, isMulti)
{
var rowdata = JSON.parse(rowArray[i].getAttribute("ROWDATA"));
// Scenario's kunnen niet teruggezet worden. Hier de scenario's er al uit filteren.
if (!rowdata.insScenKey || rowdata.insScenKeiny == 1)
if (!rowdata.insScenKey || rowdata.insScenKey == 1)
{ // Het is geen scenario. De periodieke taak kan teruggezet worden. De inspectie aan het array toevoegen.
if (groupby == 9)
{

View File

@@ -1113,6 +1113,7 @@ var transitParam = buildTransitParam(["urole", "mode", "deel", "groep", "categor
if (scenario == 1)
{
rst.addAction({ action: "insFreeze", caption: L("lcl_mjb_freeze"), multi: true, multiOnce: true, onlyMulti: true });
rst.addAction({ action: "insUnfreeze", caption: L("lcl_ins_unstart"), multi: true, multiOnce: true, onlyMulti: true });
if (S("mjb_operation_external") == 1)
rst.addAction({ action: "insFinishMJOB", caption: L("lcl_ins_finish"), multi: true, multiOnce: true, onlyMulti: true });
if (S("mjb_enable_moveup") == 1)
@@ -1140,7 +1141,7 @@ var transitParam = buildTransitParam(["urole", "mode", "deel", "groep", "categor
else
{ // mode == 3
rst.addAction({ action: "insExecute", caption: L("lcl_mjb_execute"), multi: true, multiOnce: true, onlyMulti: true });
rst.addAction({ action: "insUnstart", caption: L("lcl_ins_unstart"), multi: true, multiOnce: true, onlyMulti: true });
rst.addAction({ action: "insUnfreeze", caption: L("lcl_ins_unstart"), multi: true, multiOnce: true, onlyMulti: true });
rst.addAction({ action: "insFinishMJOB", caption: L("lcl_ins_finish"), multi: true, multiOnce: true, onlyMulti: true });
}