FCLT#89443: Wijzigingen en verbeteringsvoorstellen MJOB module (Punt 7).
svn path=/Website/trunk/; revision=69956
This commit is contained in:
@@ -1132,7 +1132,7 @@ ins = {checkAutLevel:
|
||||
iresult.canShowXcp = ((iresult.hasCTRUSERead && !isScenario) ||
|
||||
(iresult.hasCTRSENRead && isScenario)) &&
|
||||
(iresult.canRead("WEB_INSMAN") ); // Exceptions (xcp) waarden inspecties/taken bekijken (waarden in ins_srtcontroledl_xcp tabel).
|
||||
iresult.canChangeXcp = ((iresult.hasCTRUSEWrite && !isScenario && iresult.canWrite("WEB_INSMAN")) ||
|
||||
iresult.canChangeXcp = ((iresult.hasCTRUSEWrite && !isScenario && iresult.canWrite("WEB_INSMAN")) ||
|
||||
(iresult.hasCTRSENWrite && isScenario)); // Exceptions (xcp) waarden inspecties/taken wijzigen (waarden in ins_srtcontroledl_xcp tabel).
|
||||
iresult.canChangeCycle = canChangeCycle;
|
||||
|
||||
@@ -5393,19 +5393,21 @@ ins = {checkAutLevel:
|
||||
+ " AND idsc.ins_srtcontrole_key = cv.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_scenario_key = 1"
|
||||
+ " AND idsc.ins_deelsrtcontrole_status = 2) idsc_freezed"
|
||||
+ (!fulldetails
|
||||
? " , CASE"
|
||||
+ " WHEN ((SELECT COUNT(idsc.ins_deel_key)"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_deel_key = CV.ins_deel_key"
|
||||
+ " AND idsc.ins_srtcontrole_key = CV.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_deelsrtcontrole_status = 2"
|
||||
+ " AND EXTRACT(YEAR FROM idsc.ins_deelsrtcontrole_freezedate) = CV.vervangingsjaar) = 0)"
|
||||
+ " AND CV.vervangingsjaar = " + mjb_freeze_or_sys_year
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END tobefreezed"
|
||||
: "")
|
||||
+ " , CASE"
|
||||
+ " WHEN ((SELECT COUNT(idsc.ins_deel_key)"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_deel_key = CV.ins_deel_key"
|
||||
+ " AND idsc.ins_srtcontrole_key = CV.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_deelsrtcontrole_status = 2"
|
||||
+ " AND EXTRACT(YEAR FROM idsc.ins_deelsrtcontrole_freezedate) = CV.vervangingsjaar) = 0)"
|
||||
+ " AND CV.vervangingsjaar = " + mjb_freeze_or_sys_year
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END tobefreezed"
|
||||
+ (fulldetails
|
||||
? " , 1 aantaltaken"
|
||||
: " , SUM(1) OVER() AS aantaltaken"
|
||||
+ " , 1 aantaltaken_withoutempty")
|
||||
// Bepaling in welk jaar er een inspectie is gepland.
|
||||
// 1) In het jaar dat er nog een geaccordeerde/bevroren(2) inspectie actief is.
|
||||
// 2) In het jaar van de plandatum.
|
||||
@@ -5671,7 +5673,10 @@ ins = {checkAutLevel:
|
||||
+ " , SUM(ROUND(orgbedrag, 0)) orgbedrag" // Bedragen per regel afronden op hele euro s. Dit gebeurt ook bij Groepering "Taak" zodat de bedragen bij beiden dan gelijk zijn.
|
||||
+ " , hasscenario2"
|
||||
+ " , ins_scenario_key"
|
||||
+ " , SUM(freezed) AS freezed"
|
||||
+ " , SUM(tobefreezed) tobefreezed"
|
||||
+ " , aantaltaken"
|
||||
+ " , SUM(aantaltaken_withoutempty) aantaltaken_withoutempty"
|
||||
+ (show_scenario_oms ? ", scenario_oms, scenario_aantal" : "")
|
||||
+ " FROM (" + sql_cost + ")"
|
||||
+ sql_cost_where
|
||||
@@ -5683,6 +5688,7 @@ ins = {checkAutLevel:
|
||||
+ " , vervangingsjaar"
|
||||
+ " , hasscenario2"
|
||||
+ " , ins_scenario_key"
|
||||
+ " , aantaltaken"
|
||||
+ (show_scenario_oms ? ", scenario_oms, scenario_aantal" : "");
|
||||
}
|
||||
|
||||
@@ -5694,9 +5700,10 @@ ins = {checkAutLevel:
|
||||
+ (fulldetails
|
||||
? " , SUM(completed) AS completed"
|
||||
+ " , SUM(rejected) AS rejected"
|
||||
+ " , SUM(freezed) AS freezed"
|
||||
+ " , SUM(execute) AS execute"
|
||||
: " , SUM(tobefreezed) AS tobefreezed")
|
||||
: " , SUM(aantaltaken_withoutempty) aantaltaken_withoutempty")
|
||||
+ " , SUM(freezed) AS freezed"
|
||||
+ " , SUM(tobefreezed) AS tobefreezed"
|
||||
+ " FOR vervangingsjaar IN (" + jaren.join(",") + ") )";
|
||||
|
||||
if (scenario > 1)
|
||||
|
||||
@@ -36,6 +36,7 @@ var srtcont_key_arr = getFParamKeyArray("srtcont_key_arr", []);
|
||||
var multi = ins_key_arr.length > 1;
|
||||
var freeze = getFParamInt("freeze", 0) == 1;
|
||||
var groupby = getFParamInt("groupby", 9);
|
||||
var aantaltaken = getFParamInt("aantaltaken", 0);
|
||||
|
||||
var inflatiepct = S("mjb_inflation");
|
||||
var inflatiefactor = 1 + (inflatiepct / 100);
|
||||
@@ -43,6 +44,8 @@ var mjb_start_year = S("mjb_start_year");
|
||||
var mjb_freeze_year = Math.max(S("mjb_freeze_year"), new Date().getFullYear());
|
||||
|
||||
var ingesloten = [];
|
||||
var badbody;
|
||||
var oldfreeze = false;
|
||||
if (freeze && groupby < 9)
|
||||
{
|
||||
var screenmode = getQParamInt("mode", 1); // Schermmode 1=Begroting (aankomende jaren) (=default), 2=Realisatie (huidige en lopende jaren, 3=Uitvoering (koppelen (uitvoerend) van taken aan een melding).
|
||||
@@ -125,7 +128,7 @@ if (freeze && groupby < 9)
|
||||
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
|
||||
// Hier geen "user.anything_todo_or_abort(!oRs.eof);". We geven altijd een melding terug hoeveel taken er geaccodeerd zijn.
|
||||
|
||||
var freeze_sql = "BEGIN ";
|
||||
while (!oRs.eof)
|
||||
@@ -299,317 +302,340 @@ else
|
||||
}
|
||||
lcl.set_dialect(ctrdisc_key, "CTR_DISCIPLINE_KEY");
|
||||
mld.dialectIsSet = true;
|
||||
var badbody = (ins_key_arr.length == 1 && ins_deelsrtcontrole_status == 2 && freezedate < mjb_freeze_year? L("lcl_shared_old_freeze").format(freezedate) : null);
|
||||
user.anything_todo_or_abort(tobestart > 0, badbody); // We klagen niet over enkele wel en enkele niet
|
||||
oldfreeze = (tobestart == 0 && ins_key_arr.length == 1 && ins_deelsrtcontrole_status == 2 && freezedate < mjb_freeze_year);
|
||||
badbody = (oldfreeze? L("lcl_shared_old_freeze").format(freezedate) : null);
|
||||
// Hier geen "user.anything_todo_or_abort(tobestart > 0, badbody);". We geven altijd een melding terug hoeveel taken er terug gezet zijn.
|
||||
|
||||
var result = {key: "", success: true, multi: multi, start: true };
|
||||
|
||||
for (var i = 0; i < ingesloten.length; i++)
|
||||
{ // Zetten van de status en afhandelen van de tracking van het starten.
|
||||
if (!oldfreeze)
|
||||
{
|
||||
for (var i = 0; i < ingesloten.length; i++)
|
||||
{ // Zetten van de status en afhandelen van de tracking van het starten.
|
||||
|
||||
if (ingesloten[i].dlsrtcont_key < 0)
|
||||
{ // Er is nog geen inspectie (ins_deelsrtcontrole) record aangemaakt. Eerst maar eens de waarden van de velden bepalen.
|
||||
// Als er al een inspectie is geweest kan er een volgende inspectiedatum berekend worden.
|
||||
var nextdate = null;
|
||||
if (ingesloten[i].inspectiestatus > -1)
|
||||
{ // Bereken de volgende orginele inspectiedatum (nextdate).
|
||||
// Alleen Active Situatie (AS) soort controle's kunnen gestart worden dus voor scenario key moet 1 genomen worden.
|
||||
// Het is mjob. De laatste inspectie kan niet succesvol zijn. Dus ins.nextcyclusdate(ins_key, srtcont_key, scen_key) kan ik hier niet gebruiken.
|
||||
if (ingesloten[i].dlsrtcont_key < 0)
|
||||
{ // Er is nog geen inspectie (ins_deelsrtcontrole) record aangemaakt. Eerst maar eens de waarden van de velden bepalen.
|
||||
// Als er al een inspectie is geweest kan er een volgende inspectiedatum berekend worden.
|
||||
var nextdate = null;
|
||||
if (ingesloten[i].inspectiestatus > -1)
|
||||
{ // Bereken de volgende orginele inspectiedatum (nextdate).
|
||||
// Alleen Active Situatie (AS) soort controle's kunnen gestart worden dus voor scenario key moet 1 genomen worden.
|
||||
// Het is mjob. De laatste inspectie kan niet succesvol zijn. Dus ins.nextcyclusdate(ins_key, srtcont_key, scen_key) kan ik hier niet gebruiken.
|
||||
|
||||
// func_get_nextdate kijkt naar en houd rekening met onderstaande 4 punten.
|
||||
// Er is al een inspectie geweest als ik binnen deze if ben.
|
||||
// Nummer 4 komt daarom niet voor want dan was je in de else beland.
|
||||
// 1) De laatste inspectie is succesvol voltooid: De volgende met ins.nextcyclusdate() te berekenen.
|
||||
// 2) De laatste inspectie is NIET succesvol voltooid. De volgende is in het freeze jaar.
|
||||
// 3) De laatste inspectie is geaccordeerd/bevroren/gestart(2): De volgende is een periode verder als het freeze jaar.
|
||||
// 4) Er is geen inspectie geweest of gestart.
|
||||
nextdate = ins.func_get_nextdate(ingesloten[i].ins_key, ingesloten[i].srtcont_key, 1, {mjob: ingesloten[i].ismjob});
|
||||
// func_get_nextdate kijkt naar en houd rekening met onderstaande 4 punten.
|
||||
// Er is al een inspectie geweest als ik binnen deze if ben.
|
||||
// Nummer 4 komt daarom niet voor want dan was je in de else beland.
|
||||
// 1) De laatste inspectie is succesvol voltooid: De volgende met ins.nextcyclusdate() te berekenen.
|
||||
// 2) De laatste inspectie is NIET succesvol voltooid. De volgende is in het freeze jaar.
|
||||
// 3) De laatste inspectie is geaccordeerd/bevroren/gestart(2): De volgende is een periode verder als het freeze jaar.
|
||||
// 4) Er is geen inspectie geweest of gestart.
|
||||
nextdate = ins.func_get_nextdate(ingesloten[i].ins_key, ingesloten[i].srtcont_key, 1, {mjob: ingesloten[i].ismjob});
|
||||
}
|
||||
//else Er zijn nog geen inspecties geweest voor dit object. Dit wordt de eerste inspectie.
|
||||
// Volgende inspectiedatum kun je niet berekenen en is dus onbekend (leeg)
|
||||
|
||||
// Plandatum blijft leeg.
|
||||
var fields = [ { dbs: "ins_deelsrtcontrole_key", typ: "key", seq: "ins_s_ins_deelsrtcontrole_key" },
|
||||
{ dbs: "ins_deel_key", typ: "key", val: ingesloten[i].ins_key },
|
||||
{ dbs: "ins_srtcontrole_key", typ: "key", val: ingesloten[i].srtcont_key },
|
||||
{ dbs: "ins_deelsrtcontrole_status", typ: "key", val: 2 },
|
||||
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
|
||||
{ dbs: "ins_deelsrtcontrole_datum_org", typ: "datetime", val: (nextdate? nextdate : null) }
|
||||
];
|
||||
}
|
||||
//else Er zijn nog geen inspecties geweest voor dit object. Dit wordt de eerste inspectie.
|
||||
// Volgende inspectiedatum kun je niet berekenen en is dus onbekend (leeg)
|
||||
|
||||
// Plandatum blijft leeg.
|
||||
var fields = [ { dbs: "ins_deelsrtcontrole_key", typ: "key", seq: "ins_s_ins_deelsrtcontrole_key" },
|
||||
{ dbs: "ins_deel_key", typ: "key", val: ingesloten[i].ins_key },
|
||||
{ dbs: "ins_srtcontrole_key", typ: "key", val: ingesloten[i].srtcont_key },
|
||||
{ dbs: "ins_deelsrtcontrole_status", typ: "key", val: 2 },
|
||||
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
|
||||
{ dbs: "ins_deelsrtcontrole_datum_org", typ: "datetime", val: (nextdate? nextdate : null) }
|
||||
];
|
||||
}
|
||||
else
|
||||
{
|
||||
var fields = [];
|
||||
}
|
||||
|
||||
// Als je mag bevriezen (canInspFreeze) dan zijn er kosten aanwezig in het jaar mjb_freeze_year.
|
||||
if (freeze && (ingesloten[i].kosten >= 0))
|
||||
{ // Uitzoeken of de taak door een hogere prio taak wordt uitgevoerd (kosten zijn 0 in het overzicht).
|
||||
// In dat geval zijn de freeze kosten 0 en plaatsen we een opmerking.
|
||||
// Voor MJOB is de interval modus actief.
|
||||
// Neem de Active Situatie (AS) (Scenario = 1).
|
||||
var sql = "SELECT insp.ins_deelsrtcontrole_key"
|
||||
+ " , insp.ins_srtcontrole_level"
|
||||
// Bepaling in welk jaar er een inspectie is gepland.
|
||||
// 1) In het jaar dat er nog een geaccordeerde/bevroren(2) inspectie actief is.
|
||||
// 2) In het jaar van de plandatum.
|
||||
// 3) In het jaar van de startdatum.
|
||||
// 4) a) Laatste inspectie is NULL (eerste inspectie moet nog komen) en het is een Controle(1).
|
||||
// Volgende inspectie is in het freeze jaar.
|
||||
// b) Laatste inspectie is NULL (eerste inspectie moet nog komen) en het is een Vervanging(2) of Certificering(3).
|
||||
// Nextdate is na het freeze jaar?
|
||||
// Ja) Vorige inspectie ligt na het start jaar en ligt niet in het aanmaak jaar?
|
||||
// Ja) Volgende inspectie is in het freeze jaar.
|
||||
// Nee) Volgende inspectie is het jaar van de nextdate.
|
||||
// Nee) De laatst ingeplande inspectie (nextdate) is na of in het start jaar?
|
||||
// Ja) Volgende inspectie is in het freeze jaar.
|
||||
// Nee) Volgende inspectie is in het jaar "nextdatum + periode".
|
||||
// c) Laatste inspectie is niet NULL. Er is al 1 of meerdere keren geinspecteerd.
|
||||
// Ligt de laatst ingeplande inspectie (nextdate) na dit jaar?
|
||||
// Ja) Volgende inspectie is het jaar van de nextdate (in de toekomst).
|
||||
// Nee) Volgende inspectie is in het freeze jaar.
|
||||
+ " , CASE"
|
||||
+ " WHEN"
|
||||
+ " EXTRACT(YEAR FROM "
|
||||
+ " COALESCE(CASE" // Taak is geaccordeerd (gefreezed). Freeze jaar is het huidige (vervangings)jaar.
|
||||
+ " WHEN insp.ins_deelsrtcontrole_status IN (2, 3)"
|
||||
+ " THEN insp.ins_deelsrtcontrole_freezedate"
|
||||
+ " ELSE NULL"
|
||||
+ " END"
|
||||
+ " , insp.plandatum"
|
||||
+ " , CASE WHEN insp.laatste IS NULL THEN insp.ins_srtcontroledl_xcp_startdat ELSE NULL END"
|
||||
+ " , CASE"
|
||||
+ " WHEN insp.laatste IS NULL AND insp.ctr_controle_type = 1" // 1: Controle.
|
||||
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
|
||||
+ " WHEN insp.laatste IS NULL AND insp.ctr_controle_type != 1" // 2: Vervanging, 3: Certificering.
|
||||
+ " THEN" // Er is nog geen inspectie geweest
|
||||
+ " CASE"
|
||||
+ " WHEN EXTRACT(YEAR FROM insp.inspectie_next0) > " + mjb_freeze_year
|
||||
+ " THEN" // Nextdate is na de freeze datum.
|
||||
+ " CASE"
|
||||
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(insp.inspectie_next0, -1 * 12 * insp.ins_srtcontrole_periode)) >= " + mjb_start_year + " AND"
|
||||
+ " EXTRACT(YEAR FROM ADD_MONTHS(insp.inspectie_next0, -1 * 12 * insp.ins_srtcontrole_periode)) != EXTRACT(YEAR FROM insp.ins_deel_aanmaak)"
|
||||
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Vorige inspectie ligt tussen start en freeze jaar (Nu ligt er ook tussen).
|
||||
+ " ELSE insp.inspectie_next0"
|
||||
+ " END"
|
||||
+ " ELSE" // Nextdate is voor of in het freeze jaar.
|
||||
+ " CASE"
|
||||
+ " WHEN EXTRACT(YEAR FROM insp.inspectie_next0) >= " + mjb_start_year
|
||||
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Nextdate tussen start en freeze jaar.
|
||||
+ " ELSE ADD_MONTHS(insp.inspectie_next0, 12 * insp.ins_srtcontrole_periode)" // Nextdate voor het start jaar.
|
||||
+ " END"
|
||||
+ " END"
|
||||
+ " ELSE" // Laatste IS NOT NULL. Er is al een inspectie geweest.
|
||||
+ " CASE"
|
||||
+ " WHEN EXTRACT(YEAR FROM insp.inspectie_next0) > EXTRACT(YEAR FROM SYSDATE)"
|
||||
+ " THEN insp.inspectie_next0" // Volgende inspectie is in de toekomst.
|
||||
// Geaccordeerde laatste inspectie wordt in het begin al afgevangen.
|
||||
// en niet hier zoals bij org_nextdate in functie getmjblist_sql.
|
||||
+ " ELSE TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Laatst ingeplande inspectie is nog steeds niet uitgevoerd. Dus opnieuw in het freeze jaar tonen zodat deze daar gefreezed kan worden.
|
||||
+ " END"
|
||||
+ " END)) = " + mjb_freeze_year
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END isFreezeYear"
|
||||
+ " FROM ("
|
||||
+ " SELECT xcp.ins_deel_key"
|
||||
+ " , xcp.ins_srtcontrole_key"
|
||||
+ " , idsc.ins_deelsrtcontrole_key"
|
||||
+ " , xcp.ctr_discipline_key"
|
||||
+ " , xcp.ins_srtcontrole_periode"
|
||||
+ " , xcp.ins_deel_aanmaak"
|
||||
+ " , xcp.ctr_controle_type"
|
||||
+ " , idsc.ins_deelsrtcontrole_status"
|
||||
+ " , idsc.ins_deelsrtcontrole_freezedate"
|
||||
+ " , idsc.ins_deelsrtcontrole_plandatum plandatum"
|
||||
+ " , ins_srtcontroledl_xcp_startdat"
|
||||
+ " , xcp.ins_srtcontrole_level"
|
||||
+ " , ins.nextcyclusdate(xcp.ins_deel_key, xcp.ins_srtcontrole_key, 1, 0) inspectie_next0"
|
||||
+ " , (SELECT MAX(idsc2.ins_deelsrtcontrole_datum)"
|
||||
+ " FROM ins_deelsrtcontrole idsc2"
|
||||
+ " WHERE idsc2.ins_deel_key = " + ingesloten[i].ins_key
|
||||
+ " AND idsc2.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
|
||||
+ " AND idsc2.ins_scenario_key = 1) laatste"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_v_defined_inspect_xcp xcp"
|
||||
+ " WHERE xcp.ins_srtcontrole_key = idsc.ins_srtcontrole_key(+)" // Er kan nog voor de eerste keer geinspecteerd moeten worden.
|
||||
+ " AND xcp.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
|
||||
+ " AND xcp.ins_deel_key = " + ingesloten[i].ins_key
|
||||
+ " AND idsc.ins_deel_key(+) = " + ingesloten[i].ins_key
|
||||
+ " AND idsc.ins_scenario_key(+) = 1"
|
||||
+ " AND xcp.ins_scenario_key = 1"
|
||||
+ " AND xcp.ctr_ismjob = " + (ingesloten[i].ismjob? "1" : "0")
|
||||
+ " AND (idsc.ins_deelsrtcontrole_key IS NULL OR"
|
||||
+ " idsc.ins_deelsrtcontrole_key = (SELECT MAX(idsc2.ins_deelsrtcontrole_key)"
|
||||
+ " FROM ins_deelsrtcontrole idsc2"
|
||||
+ " WHERE idsc2.ins_deel_key = " + ingesloten[i].ins_key
|
||||
+ " AND idsc2.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
|
||||
+ " AND idsc2.ins_scenario_key = 1"
|
||||
+ " ))"
|
||||
// Zichtzelf uitsluiten.
|
||||
+ " AND xcp.ins_srtcontrole_key != " + ingesloten[i].srtcont_key
|
||||
// Alleen soort controles met een lager level opleveren.
|
||||
+ " AND xcp.ins_srtcontrole_level < (SELECT isc.ins_srtcontrole_level"
|
||||
+ " FROM ins_srtcontrole isc"
|
||||
+ " WHERE isc.ins_srtcontrole_key = " + ingesloten[i].srtcont_key + ")"
|
||||
+ " AND xcp.ins_srtcontrole_periode > 0" // Alleen actieve taken.
|
||||
+ " ) insp"
|
||||
+ " ORDER BY isFreezeYear DESC";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var has_higherprio = !oRs.eof && oRs("isFreezeYear").Value == 1; // Is er een hoger prio soort controle in het freeze jaar?
|
||||
oRs.Close();
|
||||
|
||||
fields.push( { dbs: "ins_deelsrtcontrole_freezecost", typ: "float", val: (has_higherprio? 0 : ingesloten[i].kosten) } );
|
||||
fields.push( { dbs: "ins_deelsrtcontrole_freezedate", typ: "datetime", val: new Date(mjb_freeze_year, 0, 1) } ); // Freezedate eerste dag van freeze year.
|
||||
// Als er een hoger prio soort controle aanwezig is in het freeze jaar, dan een opmerking toevoegen.
|
||||
if (has_higherprio)
|
||||
fields.push( { dbs: "ins_deelsrtcontrole_opmerking", typ: "varchar", val: L("lcl_mjb_performed_high") } );
|
||||
}
|
||||
|
||||
|
||||
if (ingesloten[i].dlsrtcont_key < 0)
|
||||
{ // Inspectie (ins_deelsrtcontrole) record aanmaken.
|
||||
ins.testInspectInsert(ingesloten[i].ins_key, ingesloten[i].srtcont_key, 1);
|
||||
var insIns = buildInsert("ins_deelsrtcontrole", fields);
|
||||
ingesloten[i].dlsrtcont_key = insIns.sequences["ins_deelsrtcontrole_key"];
|
||||
var err = Oracle.Execute(insIns.sql, true);
|
||||
if (err.friendlyMsg)
|
||||
else
|
||||
{
|
||||
result.warning = err.friendlyMsg;
|
||||
result.success = false;
|
||||
var fields = [];
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // Inspectie (ins_deelsrtcontrole) record aanpassen.
|
||||
var insUpd = buildTrackingUpdate("ins_deelsrtcontrole", " ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key, fields);
|
||||
|
||||
// Velden voor het bevriezen/accorderen opslaan.
|
||||
var err = Oracle.Execute(insUpd.sql, true);
|
||||
if (err.friendlyMsg)
|
||||
abort_with_warning(err.friendlyMsg);
|
||||
// Als je mag bevriezen (canInspFreeze) dan zijn er kosten aanwezig in het jaar mjb_freeze_year.
|
||||
if (freeze && (ingesloten[i].kosten >= 0))
|
||||
{ // Uitzoeken of de taak door een hogere prio taak wordt uitgevoerd (kosten zijn 0 in het overzicht).
|
||||
// In dat geval zijn de freeze kosten 0 en plaatsen we een opmerking.
|
||||
// Voor MJOB is de interval modus actief.
|
||||
// Neem de Active Situatie (AS) (Scenario = 1).
|
||||
var sql = "SELECT insp.ins_deelsrtcontrole_key"
|
||||
+ " , insp.ins_srtcontrole_level"
|
||||
// Bepaling in welk jaar er een inspectie is gepland.
|
||||
// 1) In het jaar dat er nog een geaccordeerde/bevroren(2) inspectie actief is.
|
||||
// 2) In het jaar van de plandatum.
|
||||
// 3) In het jaar van de startdatum.
|
||||
// 4) a) Laatste inspectie is NULL (eerste inspectie moet nog komen) en het is een Controle(1).
|
||||
// Volgende inspectie is in het freeze jaar.
|
||||
// b) Laatste inspectie is NULL (eerste inspectie moet nog komen) en het is een Vervanging(2) of Certificering(3).
|
||||
// Nextdate is na het freeze jaar?
|
||||
// Ja) Vorige inspectie ligt na het start jaar en ligt niet in het aanmaak jaar?
|
||||
// Ja) Volgende inspectie is in het freeze jaar.
|
||||
// Nee) Volgende inspectie is het jaar van de nextdate.
|
||||
// Nee) De laatst ingeplande inspectie (nextdate) is na of in het start jaar?
|
||||
// Ja) Volgende inspectie is in het freeze jaar.
|
||||
// Nee) Volgende inspectie is in het jaar "nextdatum + periode".
|
||||
// c) Laatste inspectie is niet NULL. Er is al 1 of meerdere keren geinspecteerd.
|
||||
// Ligt de laatst ingeplande inspectie (nextdate) na dit jaar?
|
||||
// Ja) Volgende inspectie is het jaar van de nextdate (in de toekomst).
|
||||
// Nee) Volgende inspectie is in het freeze jaar.
|
||||
+ " , CASE"
|
||||
+ " WHEN"
|
||||
+ " EXTRACT(YEAR FROM "
|
||||
+ " COALESCE(CASE" // Taak is geaccordeerd (gefreezed). Freeze jaar is het huidige (vervangings)jaar.
|
||||
+ " WHEN insp.ins_deelsrtcontrole_status IN (2, 3)"
|
||||
+ " THEN insp.ins_deelsrtcontrole_freezedate"
|
||||
+ " ELSE NULL"
|
||||
+ " END"
|
||||
+ " , insp.plandatum"
|
||||
+ " , CASE WHEN insp.laatste IS NULL THEN insp.ins_srtcontroledl_xcp_startdat ELSE NULL END"
|
||||
+ " , CASE"
|
||||
+ " WHEN insp.laatste IS NULL AND insp.ctr_controle_type = 1" // 1: Controle.
|
||||
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
|
||||
+ " WHEN insp.laatste IS NULL AND insp.ctr_controle_type != 1" // 2: Vervanging, 3: Certificering.
|
||||
+ " THEN" // Er is nog geen inspectie geweest
|
||||
+ " CASE"
|
||||
+ " WHEN EXTRACT(YEAR FROM insp.inspectie_next0) > " + mjb_freeze_year
|
||||
+ " THEN" // Nextdate is na de freeze datum.
|
||||
+ " CASE"
|
||||
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(insp.inspectie_next0, -1 * 12 * insp.ins_srtcontrole_periode)) >= " + mjb_start_year + " AND"
|
||||
+ " EXTRACT(YEAR FROM ADD_MONTHS(insp.inspectie_next0, -1 * 12 * insp.ins_srtcontrole_periode)) != EXTRACT(YEAR FROM insp.ins_deel_aanmaak)"
|
||||
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Vorige inspectie ligt tussen start en freeze jaar (Nu ligt er ook tussen).
|
||||
+ " ELSE insp.inspectie_next0"
|
||||
+ " END"
|
||||
+ " ELSE" // Nextdate is voor of in het freeze jaar.
|
||||
+ " CASE"
|
||||
+ " WHEN EXTRACT(YEAR FROM insp.inspectie_next0) >= " + mjb_start_year
|
||||
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Nextdate tussen start en freeze jaar.
|
||||
+ " ELSE ADD_MONTHS(insp.inspectie_next0, 12 * insp.ins_srtcontrole_periode)" // Nextdate voor het start jaar.
|
||||
+ " END"
|
||||
+ " END"
|
||||
+ " ELSE" // Laatste IS NOT NULL. Er is al een inspectie geweest.
|
||||
+ " CASE"
|
||||
+ " WHEN EXTRACT(YEAR FROM insp.inspectie_next0) > EXTRACT(YEAR FROM SYSDATE)"
|
||||
+ " THEN insp.inspectie_next0" // Volgende inspectie is in de toekomst.
|
||||
// Geaccordeerde laatste inspectie wordt in het begin al afgevangen.
|
||||
// en niet hier zoals bij org_nextdate in functie getmjblist_sql.
|
||||
+ " ELSE TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Laatst ingeplande inspectie is nog steeds niet uitgevoerd. Dus opnieuw in het freeze jaar tonen zodat deze daar gefreezed kan worden.
|
||||
+ " END"
|
||||
+ " END)) = " + mjb_freeze_year
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END isFreezeYear"
|
||||
+ " FROM ("
|
||||
+ " SELECT xcp.ins_deel_key"
|
||||
+ " , xcp.ins_srtcontrole_key"
|
||||
+ " , idsc.ins_deelsrtcontrole_key"
|
||||
+ " , xcp.ctr_discipline_key"
|
||||
+ " , xcp.ins_srtcontrole_periode"
|
||||
+ " , xcp.ins_deel_aanmaak"
|
||||
+ " , xcp.ctr_controle_type"
|
||||
+ " , idsc.ins_deelsrtcontrole_status"
|
||||
+ " , idsc.ins_deelsrtcontrole_freezedate"
|
||||
+ " , idsc.ins_deelsrtcontrole_plandatum plandatum"
|
||||
+ " , ins_srtcontroledl_xcp_startdat"
|
||||
+ " , xcp.ins_srtcontrole_level"
|
||||
+ " , ins.nextcyclusdate(xcp.ins_deel_key, xcp.ins_srtcontrole_key, 1, 0) inspectie_next0"
|
||||
+ " , (SELECT MAX(idsc2.ins_deelsrtcontrole_datum)"
|
||||
+ " FROM ins_deelsrtcontrole idsc2"
|
||||
+ " WHERE idsc2.ins_deel_key = " + ingesloten[i].ins_key
|
||||
+ " AND idsc2.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
|
||||
+ " AND idsc2.ins_scenario_key = 1) laatste"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_v_defined_inspect_xcp xcp"
|
||||
+ " WHERE xcp.ins_srtcontrole_key = idsc.ins_srtcontrole_key(+)" // Er kan nog voor de eerste keer geinspecteerd moeten worden.
|
||||
+ " AND xcp.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
|
||||
+ " AND xcp.ins_deel_key = " + ingesloten[i].ins_key
|
||||
+ " AND idsc.ins_deel_key(+) = " + ingesloten[i].ins_key
|
||||
+ " AND idsc.ins_scenario_key(+) = 1"
|
||||
+ " AND xcp.ins_scenario_key = 1"
|
||||
+ " AND xcp.ctr_ismjob = " + (ingesloten[i].ismjob? "1" : "0")
|
||||
+ " AND (idsc.ins_deelsrtcontrole_key IS NULL OR"
|
||||
+ " idsc.ins_deelsrtcontrole_key = (SELECT MAX(idsc2.ins_deelsrtcontrole_key)"
|
||||
+ " FROM ins_deelsrtcontrole idsc2"
|
||||
+ " WHERE idsc2.ins_deel_key = " + ingesloten[i].ins_key
|
||||
+ " AND idsc2.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
|
||||
+ " AND idsc2.ins_scenario_key = 1"
|
||||
+ " ))"
|
||||
// Zichtzelf uitsluiten.
|
||||
+ " AND xcp.ins_srtcontrole_key != " + ingesloten[i].srtcont_key
|
||||
// Alleen soort controles met een lager level opleveren.
|
||||
+ " AND xcp.ins_srtcontrole_level < (SELECT isc.ins_srtcontrole_level"
|
||||
+ " FROM ins_srtcontrole isc"
|
||||
+ " WHERE isc.ins_srtcontrole_key = " + ingesloten[i].srtcont_key + ")"
|
||||
+ " AND xcp.ins_srtcontrole_periode > 0" // Alleen actieve taken.
|
||||
+ " ) insp"
|
||||
+ " ORDER BY isFreezeYear DESC";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var has_higherprio = !oRs.eof && oRs("isFreezeYear").Value == 1; // Is er een hoger prio soort controle in het freeze jaar?
|
||||
oRs.Close();
|
||||
|
||||
// Tracken van de freezedate en freezedate hoeft niet. Bevriezen/Accorderen gebeurt eenmalig en dan worden de freeze velden gevuld.
|
||||
// Het bevriezen/accorderen zelf wordt (hieronder) met het zetten van de status op Gestart(2) getrackt.
|
||||
fields.push( { dbs: "ins_deelsrtcontrole_freezecost", typ: "float", val: (has_higherprio? 0 : ingesloten[i].kosten) } );
|
||||
fields.push( { dbs: "ins_deelsrtcontrole_freezedate", typ: "datetime", val: new Date(mjb_freeze_year, 0, 1) } ); // Freezedate eerste dag van freeze year.
|
||||
// Als er een hoger prio soort controle aanwezig is in het freeze jaar, dan een opmerking toevoegen.
|
||||
if (has_higherprio)
|
||||
fields.push( { dbs: "ins_deelsrtcontrole_opmerking", typ: "varchar", val: L("lcl_mjb_performed_high") } );
|
||||
}
|
||||
|
||||
|
||||
if (ingesloten[i].dlsrtcont_key < 0)
|
||||
{ // Inspectie (ins_deelsrtcontrole) record aanmaken.
|
||||
ins.testInspectInsert(ingesloten[i].ins_key, ingesloten[i].srtcont_key, 1);
|
||||
var insIns = buildInsert("ins_deelsrtcontrole", fields);
|
||||
ingesloten[i].dlsrtcont_key = insIns.sequences["ins_deelsrtcontrole_key"];
|
||||
var err = Oracle.Execute(insIns.sql, true);
|
||||
if (err.friendlyMsg)
|
||||
{
|
||||
result.warning = err.friendlyMsg;
|
||||
result.success = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // Inspectie (ins_deelsrtcontrole) record aanpassen.
|
||||
var insUpd = buildTrackingUpdate("ins_deelsrtcontrole", " ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key, fields);
|
||||
|
||||
// Velden voor het bevriezen/accorderen opslaan.
|
||||
var err = Oracle.Execute(insUpd.sql, true);
|
||||
if (err.friendlyMsg)
|
||||
abort_with_warning(err.friendlyMsg);
|
||||
|
||||
// Tracken van de freezedate en freezedate hoeft niet. Bevriezen/Accorderen gebeurt eenmalig en dan worden de freeze velden gevuld.
|
||||
// Het bevriezen/accorderen zelf wordt (hieronder) met het zetten van de status op Gestart(2) getrackt.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < ingesloten.length; i++)
|
||||
{ // Zetten van de status en afhandelen van de tracking en notificatie van het starten.
|
||||
ins.setinspectstatus(ingesloten[i].dlsrtcont_key, 2); // In behandeling(2)
|
||||
var aantalmld = 0;
|
||||
if (!oldfreeze)
|
||||
{
|
||||
for (var i = 0; i < ingesloten.length; i++)
|
||||
{ // Zetten van de status en afhandelen van de tracking en notificatie van het starten.
|
||||
ins.setinspectstatus(ingesloten[i].dlsrtcont_key, 2); // In behandeling(2)
|
||||
|
||||
// Melding aanmaken bij bevriezen van taak als setting op internal staat.
|
||||
// De setting "mjb_default_stdmelding" is met FCLT#52905 verwijderd.
|
||||
// Controleren of er een automatische een melding moet worden aangemaakt.
|
||||
// Voor zowel periodieke taken als mjob taken kunnen er tegenwoordig automatisch taken aangemaakt worden. Dus altijd controleren.
|
||||
// Bij MJOB melding aanmaken kan ook via het MJOB-Uitvoering scherm met de actie "Uitvoeren".
|
||||
sql = "SELECT di.mld_stdmelding_key" // In de view ins_v_defined_inspect is dit de COALESCE van ins_srtcontrole.mld_stdmelding_key en ctr_disc_params.mld_stdmelding_key.
|
||||
+ " , di.prs_kostenplaats_key"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " , ins_tab_discipline itd"
|
||||
+ " , ins_v_defined_inspect di"
|
||||
+ " , mld_stdmelding std"
|
||||
+ " WHERE idsc.ins_srtcontrole_key = isc.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_scenario_key = isc.ins_scenario_key"
|
||||
+ " AND isc.ctr_discipline_key = itd.ins_discipline_key"
|
||||
+ " AND isc.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_deel_key = di.ins_deel_key"
|
||||
+ " AND di.mld_stdmelding_key = std.mld_stdmelding_key(+)"
|
||||
+ " AND std.mld_stdmelding_verwijder IS NULL" // Alleen actuele stdmeldingen.
|
||||
+ " AND (std.mld_stdmelding_vervaldatum IS NULL OR std.mld_stdmelding_vervaldatum > TRUNC(SYSDATE))" // Alleen actuele stdmeldingen.
|
||||
+ " AND idsc.ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
var mld_stdmelding_key = -1;
|
||||
var prs_kostenplaats_key = -1;
|
||||
if (!oRs.eof)
|
||||
{
|
||||
mld_stdmelding_key = oRs("mld_stdmelding_key").Value || -1;
|
||||
prs_kostenplaats_key = oRs("prs_kostenplaats_key").Value || -1;
|
||||
}
|
||||
oRs.Close();
|
||||
|
||||
if (mld_stdmelding_key > 0)
|
||||
{ // Er is een mld_stdmelding_key bekend. Nu melding aanmaken (1-op-1 relatie).
|
||||
var stdm_info = mld.mld_stdmeldinginfo(mld_stdmelding_key);
|
||||
|
||||
var loc_key = -1;
|
||||
var bld_key = -1;
|
||||
var flr_key = -1;
|
||||
var room_key = -1;
|
||||
var alg_onroerendgoed_keys = -1;
|
||||
sql = "SELECT alg_locatie_key,"
|
||||
+ " alg_gebouw_key,"
|
||||
+ " alg_verdieping_key,"
|
||||
+ " alg_ruimte_key"
|
||||
+ " FROM ins_v_deelenonderdeel isd, alg_v_allonroerendgoed alg"
|
||||
+ " WHERE ins_deel_key = " + ingesloten[i].ins_key
|
||||
+ " AND alg_onroerendgoed_keys = isd.ins_alg_ruimte_key"
|
||||
+ " AND isd.ins_alg_ruimte_type = 'R'"
|
||||
// Melding aanmaken bij bevriezen van taak als setting op internal staat.
|
||||
// De setting "mjb_default_stdmelding" is met FCLT#52905 verwijderd.
|
||||
// Controleren of er een automatische een melding moet worden aangemaakt.
|
||||
// Voor zowel periodieke taken als mjob taken kunnen er tegenwoordig automatisch taken aangemaakt worden. Dus altijd controleren.
|
||||
// Bij MJOB melding aanmaken kan ook via het MJOB-Uitvoering scherm met de actie "Uitvoeren".
|
||||
sql = "SELECT di.mld_stdmelding_key" // In de view ins_v_defined_inspect is dit de COALESCE van ins_srtcontrole.mld_stdmelding_key en ctr_disc_params.mld_stdmelding_key.
|
||||
+ " , di.prs_kostenplaats_key"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , ins_srtcontrole isc"
|
||||
+ " , ins_tab_discipline itd"
|
||||
+ " , ins_v_defined_inspect di"
|
||||
+ " , mld_stdmelding std"
|
||||
+ " WHERE idsc.ins_srtcontrole_key = isc.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_scenario_key = isc.ins_scenario_key"
|
||||
+ " AND isc.ctr_discipline_key = itd.ins_discipline_key"
|
||||
+ " AND isc.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_deel_key = di.ins_deel_key"
|
||||
+ " AND di.mld_stdmelding_key = std.mld_stdmelding_key(+)"
|
||||
+ " AND std.mld_stdmelding_verwijder IS NULL" // Alleen actuele stdmeldingen.
|
||||
+ " AND (std.mld_stdmelding_vervaldatum IS NULL OR std.mld_stdmelding_vervaldatum > TRUNC(SYSDATE))" // Alleen actuele stdmeldingen.
|
||||
+ " AND idsc.ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (!oRs.Eof)
|
||||
var mld_stdmelding_key = -1;
|
||||
var prs_kostenplaats_key = -1;
|
||||
if (!oRs.eof)
|
||||
{
|
||||
loc_key = oRs("alg_locatie_key").Value;
|
||||
bld_key = oRs("alg_gebouw_key").Value;
|
||||
flr_key = oRs("alg_verdieping_key").Value;
|
||||
room_key = oRs("alg_ruimte_key").Value;
|
||||
|
||||
if (room_key > 0)
|
||||
alg_onroerendgoed_keys = room_key;
|
||||
else if (flr_key > 0)
|
||||
alg_onroerendgoed_keys = flr_key;
|
||||
else if (bld_key > 0)
|
||||
alg_onroerendgoed_keys = bld_key;
|
||||
mld_stdmelding_key = oRs("mld_stdmelding_key").Value || -1;
|
||||
prs_kostenplaats_key = oRs("prs_kostenplaats_key").Value || -1;
|
||||
}
|
||||
oRs.Close();
|
||||
|
||||
if (prs_kostenplaats_key == -1 && bld_key > 0)
|
||||
{
|
||||
sql = "SELECT prs_kostenplaats_key"
|
||||
+ " FROM alg_gebouw"
|
||||
+ " WHERE alg_gebouw_key = " + bld_key;
|
||||
if (mld_stdmelding_key > 0)
|
||||
{ // Er is een mld_stdmelding_key bekend. Nu melding aanmaken (1-op-1 relatie).
|
||||
var stdm_info = mld.mld_stdmeldinginfo(mld_stdmelding_key);
|
||||
|
||||
var loc_key = -1;
|
||||
var bld_key = -1;
|
||||
var flr_key = -1;
|
||||
var room_key = -1;
|
||||
var alg_onroerendgoed_keys = -1;
|
||||
sql = "SELECT alg_locatie_key,"
|
||||
+ " alg_gebouw_key,"
|
||||
+ " alg_verdieping_key,"
|
||||
+ " alg_ruimte_key"
|
||||
+ " FROM ins_v_deelenonderdeel isd, alg_v_allonroerendgoed alg"
|
||||
+ " WHERE ins_deel_key = " + ingesloten[i].ins_key
|
||||
+ " AND alg_onroerendgoed_keys = isd.ins_alg_ruimte_key"
|
||||
+ " AND isd.ins_alg_ruimte_type = 'R'"
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (!oRs.Eof)
|
||||
prs_kostenplaats_key = oRs("prs_kostenplaats_key").Value;
|
||||
{
|
||||
loc_key = oRs("alg_locatie_key").Value;
|
||||
bld_key = oRs("alg_gebouw_key").Value;
|
||||
flr_key = oRs("alg_verdieping_key").Value;
|
||||
room_key = oRs("alg_ruimte_key").Value;
|
||||
|
||||
if (room_key > 0)
|
||||
alg_onroerendgoed_keys = room_key;
|
||||
else if (flr_key > 0)
|
||||
alg_onroerendgoed_keys = flr_key;
|
||||
else if (bld_key > 0)
|
||||
alg_onroerendgoed_keys = bld_key;
|
||||
}
|
||||
oRs.Close();
|
||||
|
||||
if (prs_kostenplaats_key == -1 && bld_key > 0)
|
||||
{
|
||||
sql = "SELECT prs_kostenplaats_key"
|
||||
+ " FROM alg_gebouw"
|
||||
+ " WHERE alg_gebouw_key = " + bld_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (!oRs.Eof)
|
||||
prs_kostenplaats_key = oRs("prs_kostenplaats_key").Value;
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
var mld_subject;
|
||||
switch(S("mjb_approvedmelding_description")) {
|
||||
case 2: mld_subject = ingesloten[i].srtcontr_oms; break;
|
||||
case 3: mld_subject = ingesloten[i].srtcontr_oms + " (" + ingesloten[i].srtdeel_oms + ")"; break;
|
||||
case 1: // 1 = default
|
||||
default: mld_subject = ingesloten[i].srtdeel_oms; break;
|
||||
}
|
||||
|
||||
sql = "SELECT sm.mld_stdmelding_default_disc"
|
||||
+ " FROM mld_stdmelding sm"
|
||||
+ " WHERE sm.mld_stdmelding_key = " + mld_stdmelding_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
var mld_stdmelding_default_disc = oRs("mld_stdmelding_default_disc").Value || "NULL";
|
||||
oRs.Close();
|
||||
|
||||
sql = "BEGIN ctr.taak_naar_ter_uitvoering(" + mld_stdmelding_key
|
||||
+ " , " + safe.quoted_sql(mld_subject, 200)
|
||||
+ " , " + safe.quoted_sql(ingesloten[i].srtcontr_info)
|
||||
+ " , " + prs_kostenplaats_key
|
||||
+ " , " + user_key
|
||||
+ " , " + mld_stdmelding_default_disc
|
||||
+ " , " + loc_key
|
||||
+ " , " + alg_onroerendgoed_keys
|
||||
+ " , " + ingesloten[i].ins_key
|
||||
+ " , " + ingesloten[i].dlsrtcont_key
|
||||
+ " );"
|
||||
+ " END;"
|
||||
Oracle.Execute(sql);
|
||||
aantalmld++;
|
||||
|
||||
// De taak ter uitvoering zetten en afhandelen van de tracking en notificatie van het uitvoeren.
|
||||
ins.setinspectstatus(ingesloten[i].dlsrtcont_key, 3); // Ter uitvoering(3)
|
||||
}
|
||||
|
||||
var mld_subject;
|
||||
switch(S("mjb_approvedmelding_description")) {
|
||||
case 2: mld_subject = ingesloten[i].srtcontr_oms; break;
|
||||
case 3: mld_subject = ingesloten[i].srtcontr_oms + " (" + ingesloten[i].srtdeel_oms + ")"; break;
|
||||
case 1: // 1 = default
|
||||
default: mld_subject = ingesloten[i].srtdeel_oms; break;
|
||||
}
|
||||
|
||||
sql = "SELECT sm.mld_stdmelding_default_disc"
|
||||
+ " FROM mld_stdmelding sm"
|
||||
+ " WHERE sm.mld_stdmelding_key = " + mld_stdmelding_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
var mld_stdmelding_default_disc = oRs("mld_stdmelding_default_disc").Value || "NULL";
|
||||
oRs.Close();
|
||||
|
||||
sql = "BEGIN ctr.taak_naar_ter_uitvoering(" + mld_stdmelding_key
|
||||
+ " , " + safe.quoted_sql(mld_subject, 200)
|
||||
+ " , " + safe.quoted_sql(ingesloten[i].srtcontr_info)
|
||||
+ " , " + prs_kostenplaats_key
|
||||
+ " , " + user_key
|
||||
+ " , " + mld_stdmelding_default_disc
|
||||
+ " , " + loc_key
|
||||
+ " , " + alg_onroerendgoed_keys
|
||||
+ " , " + ingesloten[i].ins_key
|
||||
+ " , " + ingesloten[i].dlsrtcont_key
|
||||
+ " );"
|
||||
+ " END;"
|
||||
Oracle.Execute(sql);
|
||||
|
||||
// De taak ter uitvoering zetten en afhandelen van de tracking en notificatie van het uitvoeren.
|
||||
ins.setinspectstatus(ingesloten[i].dlsrtcont_key, 3); // Ter uitvoering(3)
|
||||
result.key += (i > 0? "," : "") + ingesloten[i].dlsrtcont_key;
|
||||
}
|
||||
|
||||
result.key += (i > 0? "," : "") + ingesloten[i].dlsrtcont_key;
|
||||
}
|
||||
result.toaster = L("lcl_mjb_freezing_completed");
|
||||
|
||||
if (oldfreeze)
|
||||
{ // Er is nog een onafgeronde taak voor het begrotingsjaar/freezeyear.
|
||||
result.message = badbody;
|
||||
}
|
||||
else if (ingesloten.length < aantaltaken)
|
||||
{ // Niet alle taken zijn geaccordeerd of ter uitvoering gezet.
|
||||
result.message = (ingesloten.length - aantalmld) == 1? L("lcl_mjb_freeze_mes_1").format(aantaltaken) : L("lcl_mjb_freeze_mes_n").format(ingesloten.length - aantalmld, aantaltaken);
|
||||
if (aantalmld > 0)
|
||||
result.message += "\n" + (aantalmld == 1? L("lcl_mjb_execute_mes_1") : L("lcl_mjb_execute_mes_n").format(aantalmld));
|
||||
}
|
||||
else
|
||||
{ // Alle taken zijn geaccordeerd of ter uitvoering gezet.
|
||||
result.toaster = L("lcl_mjb_freezing_completed");
|
||||
}
|
||||
Response.Write(JSON.stringify(result));
|
||||
%>
|
||||
<% ASPPAGE_END(); %>
|
||||
|
||||
@@ -35,6 +35,7 @@ var deelsrtcont_key_arr = getFParamIntArray("deelsrtcont_key_arr", []); // De ee
|
||||
|
||||
var multi = ins_key_arr.length > 1;
|
||||
var groupby = getFParamInt("groupby", 9);
|
||||
var aantaltaken = getFParamInt("aantaltaken", 0);
|
||||
|
||||
var inflatiepct = S("mjb_inflation");
|
||||
var inflatiefactor = 1 + (inflatiepct / 100);
|
||||
@@ -123,8 +124,7 @@ if (groupby < 9)
|
||||
// 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 oRs = Oracle.Execute(mjblist_sql);
|
||||
user.anything_todo_or_abort(!oRs.eof); // We klagen niet over enkele wel en enkele niet
|
||||
|
||||
// Hier geen "user.anything_todo_or_abort(!oRs.eof);". We geven altijd een melding terug hoeveel taken er terug gezet zijn.
|
||||
while (!oRs.eof)
|
||||
{
|
||||
var ins_key = oRs("ins_deel_key").Value;
|
||||
@@ -197,7 +197,7 @@ 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
|
||||
// Hier geen "user.anything_todo_or_abort(tobestart > 0);". We geven altijd een melding terug hoeveel taken er terug gezet zijn.
|
||||
}
|
||||
|
||||
for (var i = 0; i < ingesloten.length; i++)
|
||||
@@ -228,13 +228,18 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
+ " 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");
|
||||
if (ingesloten.length < aantaltaken)
|
||||
{ // Niet alle taken zijn terug gezet.
|
||||
result.message = ingesloten.length == 1? L("lcl_mjb_unfreeze_mes_1").format(aantaltaken) : L("lcl_mjb_unfreeze_mes_n").format(ingesloten.length, aantaltaken);
|
||||
}
|
||||
else
|
||||
{ // Alle taken zijn terug gezet.
|
||||
result.toaster = L("lcl_mjb_start_reversed");
|
||||
}
|
||||
Response.Write(JSON.stringify(result));
|
||||
%>
|
||||
<% ASPPAGE_END(); %>
|
||||
|
||||
@@ -277,6 +277,7 @@ function insStart(rowArray, isMulti, pfreeze)
|
||||
var insKeyString = getKeyString(rowArray);
|
||||
var srtcontrolekeyArray = new Array();
|
||||
var deleted = 0;
|
||||
var aantaltaken = 0;
|
||||
for (var i = 0; i < rowArray.length; i++)
|
||||
{
|
||||
var rowdata = JSON.parse(rowArray[i].getAttribute("ROWDATA"));
|
||||
@@ -285,6 +286,7 @@ function insStart(rowArray, isMulti, pfreeze)
|
||||
{ // Het is geen scenario. De periodieke taak kan gestart worden. De inspectie aan het array toevoegen.
|
||||
if (!pfreeze || (pfreeze && groupby == 9))
|
||||
srtcontrolekeyArray[i - deleted] = rowdata.insSrtControleKey;
|
||||
aantaltaken += rowdata.aantaltaken;
|
||||
}
|
||||
else
|
||||
{ // Het is een scenario. De ins_key verwijderen uit de lijst.
|
||||
@@ -297,7 +299,8 @@ function insStart(rowArray, isMulti, pfreeze)
|
||||
|
||||
var data = { ins_keys: insKeyString,
|
||||
srtcont_key_arr: srtcontrolekeyArray.join(","),
|
||||
freeze: (pfreeze? 1 : 0)
|
||||
freeze: (pfreeze? 1 : 0),
|
||||
aantaltaken: aantaltaken
|
||||
};
|
||||
if (pfreeze)
|
||||
{
|
||||
@@ -349,6 +352,7 @@ function insUnfreeze(rowArray, isMulti)
|
||||
var srtcontrolekeyArray = new Array();
|
||||
var deelsrtcontrkeyArray = new Array();
|
||||
var deleted = 0;
|
||||
var aantaltaken = 0;
|
||||
for (var i = 0; i < rowArray.length; i++)
|
||||
{
|
||||
var rowdata = JSON.parse(rowArray[i].getAttribute("ROWDATA"));
|
||||
@@ -360,6 +364,7 @@ function insUnfreeze(rowArray, isMulti)
|
||||
srtcontrolekeyArray[i - deleted] = rowdata.insSrtControleKey;
|
||||
deelsrtcontrkeyArray[i - deleted] = rowdata.insDeelSrtContrKey;
|
||||
}
|
||||
aantaltaken += rowdata.aantaltaken;
|
||||
}
|
||||
else
|
||||
{ // Het is een scenario. De ins_key verwijderen uit de lijst.
|
||||
@@ -402,7 +407,8 @@ function insUnfreeze(rowArray, isMulti)
|
||||
fitness_score1_through_pos: fitness_score1_through_pos,
|
||||
priority_score2_from: priority_score2_from,
|
||||
priority_score2_through: priority_score2_through,
|
||||
jaren: jaren
|
||||
jaren: jaren,
|
||||
aantaltaken: aantaltaken
|
||||
};
|
||||
protectRequest.dataToken(data);
|
||||
$.post("../ins/ins_inspect_unstart.asp", data, FcltCallbackRefresh, "json");
|
||||
@@ -481,6 +487,7 @@ function insMoveUp(rowArray, isMulti)
|
||||
var srtcontrolekeyArray = new Array();
|
||||
var deelsrtcontrkeyArray = new Array();
|
||||
var deleted = 0;
|
||||
var aantaltaken = 0;
|
||||
for (var i = 0; i < rowArray.length; i++)
|
||||
{
|
||||
rowdata = JSON.parse(rowArray[i].getAttribute("ROWDATA"));
|
||||
@@ -489,6 +496,7 @@ function insMoveUp(rowArray, isMulti)
|
||||
{ // Het is geen scenario. De periodieke taak kan gestart worden. De inspectie aan het array toevoegen.
|
||||
srtcontrolekeyArray[i - deleted] = rowdata.insSrtControleKey;
|
||||
deelsrtcontrkeyArray[i - deleted] = rowdata.insDeelSrtContrKey;
|
||||
aantaltaken += rowdata.aantaltaken;
|
||||
}
|
||||
else
|
||||
{ // Het is een scenario. De ins_key verwijderen uit de lijst.
|
||||
@@ -501,7 +509,8 @@ function insMoveUp(rowArray, isMulti)
|
||||
|
||||
var data = { ins_keys: insKeyString,
|
||||
srtcont_key_arr: srtcontrolekeyArray.join(","),
|
||||
dlsrtcont_key_arr: deelsrtcontrkeyArray.join(",")
|
||||
dlsrtcont_key_arr: deelsrtcontrkeyArray.join(","),
|
||||
aantaltaken: aantaltaken
|
||||
};
|
||||
protectRequest.dataToken(data);
|
||||
$.post("../ins/ins_moveup.asp",
|
||||
|
||||
@@ -25,6 +25,8 @@ 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());
|
||||
@@ -59,7 +61,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
tobemovedup++;
|
||||
}
|
||||
}
|
||||
user.anything_todo_or_abort(tobemovedup > 0); // We klagen niet over enkele wel en enkele niet
|
||||
// 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");
|
||||
|
||||
@@ -104,5 +106,13 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
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(); %>
|
||||
|
||||
@@ -45,6 +45,8 @@ var pc_costs = ins_xcp_active_cost & 1? getFParamFloat("costs", 0) : 0; //
|
||||
var pc_costs2 = ins_xcp_active_cost & 2? getFParamFloat("costs2", 0) : 0; // Prijswijziging kosten2.
|
||||
var pc_costs3 = ins_xcp_active_cost & 4? getFParamFloat("costs3", 0) : 0; // Prijswijziging kosten3.
|
||||
var pc_material = ins_xcp_active_cost & 8? getFParamFloat("material", 0) : 0; // Prijswijziging materiaal.
|
||||
var aantaltaken = getFParamInt("aantaltaken", 0);
|
||||
var xcpchanged = 0;
|
||||
|
||||
// Settingen.
|
||||
var inflatiepct = S("mjb_inflation");
|
||||
@@ -73,7 +75,7 @@ var hasWriteCTRUSE = authparamsCTRUSE && authparamsCTRUSE.ALGwritelevel < 9 && a
|
||||
var hasWriteINSMAN = authparamsINSMAN && authparamsINSMAN.ALGwritelevel < 9 && authparamsINSMAN.PRSwritelevel < 9;
|
||||
var hasWrite_MJOB = (hasWriteINSUSE || (S("ins_can_edit_own_objects") && objectBeheerder)) && hasWriteCTRUSE && hasWriteINSMAN
|
||||
|
||||
user.anything_todo_or_abort(hasWrite_MJOB);
|
||||
user.anything_todo_or_abort(hasWrite_MJOB); // Melding geven dat de user geen rechten heeft om de prijswijzigingen door te voeren.
|
||||
|
||||
var result = {key: "", pricechange: true };
|
||||
var ingesloten = [];
|
||||
@@ -161,7 +163,7 @@ if (pc_costs != 0 || pc_costs2 != 0 || pc_costs3 != 0 || pc_material != 0)
|
||||
// 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 oRs = Oracle.Execute(mjblist_sql);
|
||||
user.anything_todo_or_abort(!oRs.eof); // We klagen niet over enkele wel en enkele niet.
|
||||
// Hier geen "user.anything_todo_or_abort(!oRs.eof);". We geven een melding terug hoeveel taken er geaccodeerd zijn.
|
||||
|
||||
while (!oRs.eof)
|
||||
{ // Ik mag het object wijzigen dus voer wijziging uit
|
||||
@@ -260,6 +262,7 @@ if (pc_costs != 0 || pc_costs2 != 0 || pc_costs3 != 0 || pc_material != 0)
|
||||
commit: false
|
||||
};
|
||||
result = ins.saveXcp(ins_key, srtcont_key, params);
|
||||
xcpchanged++;
|
||||
}
|
||||
oRs_val.Close();
|
||||
}
|
||||
@@ -268,7 +271,14 @@ if (pc_costs != 0 || pc_costs2 != 0 || pc_costs3 != 0 || pc_material != 0)
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
result.toaster = L("lcl_mjb_price_change_completed");
|
||||
if (xcpchanged < aantaltaken)
|
||||
{ // Niet bij alle taken zijn de prijswijzigingen aangepast.
|
||||
result.message = xcpchanged == 1? L("lcl_mjb_multiedit_mes_1").format(aantaltaken) : L("lcl_mjb_multiedit_mes_n").format(xcpchanged, aantaltaken);
|
||||
}
|
||||
else
|
||||
{ // Bij alle taken zijn de prijswijzigingen aangepast.
|
||||
result.toaster = L("lcl_mjb_price_change_completed");
|
||||
}
|
||||
Response.Write(JSON.stringify(result));
|
||||
%>
|
||||
<% ASPPAGE_END(); %>
|
||||
|
||||
@@ -94,7 +94,7 @@ FCLTHeader.Requires({ plugins: ["suggest", "jQuery", "kenmerk"],
|
||||
scen_key: scen_key_arr[i]
|
||||
});
|
||||
|
||||
if (this_ins.canChangeXcp || this_ins.hasAnyWriteXcp)
|
||||
if (this_ins.canChangeXcp || this_ins.hasAnyWriteXcp) // Alleen afhankelijk van rechten.
|
||||
{
|
||||
ingesloten.push(ins_key_arr[i]);
|
||||
ingeslotensrtc.push(srtcont_key_arr[i]);
|
||||
@@ -106,7 +106,7 @@ FCLTHeader.Requires({ plugins: ["suggest", "jQuery", "kenmerk"],
|
||||
}
|
||||
}
|
||||
|
||||
user.auth_required_or_abort(tobeedited > 0); // We klagen niet over enkele wel en enkele niet
|
||||
user.auth_required_or_abort(tobeedited > 0); // Melding geven dat de user geen rechten heeft om de wijzigingen door te voeren.
|
||||
%>
|
||||
|
||||
<script type="text/javascript">
|
||||
@@ -136,6 +136,7 @@ FCLTHeader.Requires({ plugins: ["suggest", "jQuery", "kenmerk"],
|
||||
<input type="hidden" name="srtcontkeys" id="srtcontkeys" value="<%=ingeslotensrtc.join(",")%>">
|
||||
<input type="hidden" name="scenkeys" id="scenkeys" value="<%=ingeslotenscen.join(",")%>">
|
||||
<input type="hidden" name="xcpkeys" id="xcpkeys" value="<%=ingeslotenxcp.join(",")%>">
|
||||
<input type="hidden" name="aantaltaken" id="aantaltaken" value="<%=ins_key_arr.length%>">
|
||||
<%
|
||||
// Ook als de binding bits niet overeeenkomen dan mag je multi wijzigen.
|
||||
// De "vaste" kenmerken mag je altijd wijzigen en de flexkenmerken alleen als de objectsoort hetzelfde is.
|
||||
|
||||
@@ -44,7 +44,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
}
|
||||
);
|
||||
|
||||
if (this_ins.canChangeXcp || this_ins.hasAnyWriteXcp)
|
||||
if (this_ins.canChangeXcp || this_ins.hasAnyWriteXcp) // Alleen afhankelijk van rechten.
|
||||
{
|
||||
ingesloten.push(ins_key_arr[i]);
|
||||
ingeslotensrtc.push(srtcont_key_arr[i]);
|
||||
@@ -55,7 +55,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
}
|
||||
}
|
||||
|
||||
user.auth_required_or_abort(tobeedited > 0); // We klagen niet over enkele wel en enkele niet
|
||||
//user.auth_required_or_abort(tobeedited > 0); // Melding geven dat de user geen rechten heeft om de wijzigingen door te voeren.
|
||||
|
||||
|
||||
// De ingevulde waarden ophalen.
|
||||
@@ -70,6 +70,7 @@ var fperc = getFParam("perc", null);
|
||||
var fstartdatum = getFParamDate("startdatum", null);
|
||||
var fvervaldatum = getFParamDate("vervaldatum", null);
|
||||
var fopmerk = getFParam("opmerk", null);
|
||||
var aantaltaken = getFParamInt("aantaltaken", 0);
|
||||
|
||||
if (fperiode && (fperiode < 0 || fperiode > 999))
|
||||
abort_with_warning("Invalid number for " + L("lcl_ins_controle_period") + " (" + fperiode + ")");
|
||||
@@ -195,6 +196,15 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
oRs_val.Close()
|
||||
}
|
||||
|
||||
if (ingesloten.length < aantaltaken)
|
||||
{ // Niet alle taken zijn gewijzigd.
|
||||
result.message = ingesloten.length == 1? L("lcl_mjb_multiedit_mes_1").format(aantaltaken) : L("lcl_mjb_multiedit_mes_n").format(ingesloten.length, aantaltaken);
|
||||
}
|
||||
else
|
||||
{ // Alle taken zijn gewijzigd.
|
||||
result.toaster = L("lcl_mjb_multiedit_completed");
|
||||
}
|
||||
|
||||
Response.Write(JSON.stringify(result));
|
||||
Response.End();
|
||||
%><% ASPPAGE_END(); %>
|
||||
|
||||
@@ -368,7 +368,6 @@ var transitParam = buildTransitParam(["urole", "mode", "deel", "groep", "categor
|
||||
$('#timetip').hide();
|
||||
});
|
||||
})
|
||||
|
||||
</script>
|
||||
<%
|
||||
} //if (outputmode == 0)
|
||||
@@ -474,6 +473,20 @@ var transitParam = buildTransitParam(["urole", "mode", "deel", "groep", "categor
|
||||
{
|
||||
data.keyColumn = oRs("keyColumn").Value;
|
||||
}
|
||||
data.freezed = oRs(mjb_freeze_year + "_freezed").Value;
|
||||
data.tobefreezed = oRs(mjb_freeze_year + "_tobefreezed").Value;
|
||||
|
||||
if (!fulldetails && !mjbshowempty)
|
||||
{
|
||||
data.aantaltaken = 0;
|
||||
for (var j = 0; j < jaren.length; j++)
|
||||
{
|
||||
if (oRs(String(jaren[j]) + "_aantaltaken_withoutempty").Value > 0)
|
||||
data.aantaltaken += oRs(String(jaren[j]) + "_aantaltaken_withoutempty").Value;
|
||||
}
|
||||
}
|
||||
else
|
||||
data.aantaltaken = oRs("aantaltaken").Value;;
|
||||
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
|
||||
@@ -145,7 +145,7 @@ var mjbBedragFYArray = [];
|
||||
var mjbNotSuccesArray = [];
|
||||
var mjbRejectedInFYArray = [];
|
||||
var mjbAantal;
|
||||
async function dragDropCallback(json, textStatus, tweede)
|
||||
async function dragDropCallback(json, textStatus)
|
||||
{
|
||||
mjbAantal = 0;
|
||||
let movePlanPromises = [];
|
||||
@@ -169,8 +169,13 @@ async function dragDropCallback(json, textStatus, tweede)
|
||||
await Promise.all(movePlanPromises);
|
||||
|
||||
// Als bij multi niet alle taken zijn hergepland dan een nette melding hiervan geven.
|
||||
if (mjbAantal < mjbDeelKeyArray.length) {
|
||||
FcltMgr.alert(L("lcl_mjb_reschedule_mess").format(mjbAantal, mjbDeelKeyArray.length));
|
||||
if (mjbAantal < mjbDeelKeyArray.length)
|
||||
{ // Niet alle taken zijn hergepland.
|
||||
json.message = mjbAantal == 1? L("lcl_mjb_reschedule_mess_1").format(mjbDeelKeyArray.length) : L("lcl_mjb_reschedule_mess_n").format(mjbAantal, mjbDeelKeyArray.length);
|
||||
}
|
||||
else
|
||||
{ // Alle taken zijn hergepland.
|
||||
json.toaster = L("lcl_mjb_reschedule_completed");
|
||||
}
|
||||
|
||||
// Wel even het overzicht refreshen.
|
||||
@@ -227,6 +232,7 @@ function mjb_moveYearBack(rowArray, isMulti)
|
||||
var srtcont_key_arr = [];
|
||||
var dlsrtcont_key_arr = [];
|
||||
var scen_key_arr = [];
|
||||
var aantaltaken = 0;
|
||||
for (var i = 0; i < rowArray.length; i++)
|
||||
{
|
||||
rowdata = JSON.parse(rowArray[i].getAttribute("ROWDATA"));
|
||||
@@ -239,6 +245,7 @@ function mjb_moveYearBack(rowArray, isMulti)
|
||||
srtcont_key_arr.push(rowdata.insSrtControleKey);
|
||||
dlsrtcont_key_arr.push(rowdata.insDeelSrtContrKey);
|
||||
scen_key_arr.push(rowdata.insScenKey);
|
||||
aantaltaken += rowdata.aantaltaken;
|
||||
}
|
||||
}
|
||||
if (ins_key_arr.length)
|
||||
@@ -254,11 +261,23 @@ function mjb_moveYearBack(rowArray, isMulti)
|
||||
protectRequest.dataToken(data);
|
||||
$.post("../ins/ins_inspect_save.asp"
|
||||
, data
|
||||
, FcltCallbackRefresh
|
||||
, function(json, textStatus)
|
||||
{ // Als bij multi niet alle taken zijn teruggepland dan een nette melding hiervan geven.
|
||||
if (json.success && rowArray.length == ins_key_arr.length)
|
||||
{ // Alle taken zijn teruggepland.
|
||||
json.toaster = L("lcl_mjb_moveback_completed");
|
||||
}
|
||||
else
|
||||
{ // Niet alle taken zijn teruggepland.
|
||||
json.message = ins_key_arr.length == 1? L("lcl_mjb_moveback_mes_1").format(rowArray.length) : L("lcl_mjb_moveback_mes_n").format(ins_key_arr.length, rowArray.length);
|
||||
}
|
||||
FcltCallbackRefresh(json, textStatus);
|
||||
}
|
||||
, "json"
|
||||
);
|
||||
}
|
||||
// else: er hoeven geen taken worden teruggezet
|
||||
else // Er hoeven geen taken te worden teruggezet.
|
||||
FcltMgr.alert(L("lcl_mjb_moveback_mes_n").format(0, rowArray.length));
|
||||
}
|
||||
|
||||
// Nu in "MJOP Scenario's" aan te roepen.
|
||||
@@ -308,6 +327,7 @@ function multiPriceChangeCallback(json, insKeyString)
|
||||
costs2: json.costs2 || 0,
|
||||
costs3: json.costs3 || 0,
|
||||
material: json.material || 0,
|
||||
aantaltaken: json.aantaltaken,
|
||||
ins_keys: insKeyString,
|
||||
showempty: (showempty? 1 : 0),
|
||||
categorie_key_arr: categorie_key_arr,
|
||||
@@ -348,11 +368,19 @@ function multiPriceChangeCallback(json, insKeyString)
|
||||
function insMultiPriceChange(rowArray)
|
||||
{
|
||||
var insKeyString = getKeyString(rowArray); // Bevat de keys van de betreffende groepering.
|
||||
var aantaltaken = 0;
|
||||
for (var i = 0; i < rowArray.length; i++)
|
||||
{
|
||||
rowdata = JSON.parse(rowArray[i].getAttribute("ROWDATA"));
|
||||
aantaltaken += rowdata.aantaltaken;
|
||||
}
|
||||
|
||||
var url = "../ins/ins_pricechange.asp";
|
||||
FcltMgr.openModalDetail(url,
|
||||
L("lcl_mjb_change_costs"),
|
||||
{ callback: function (json)
|
||||
{
|
||||
json.aantaltaken = aantaltaken;
|
||||
multiPriceChangeCallback(json, insKeyString);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user