MARX#56769: Verfijning start & stop bij mld_opdr: stop voor start en stop op stop lukt niet.
svn path=/Website/branches/v2019.1/; revision=41672
This commit is contained in:
@@ -630,13 +630,34 @@ for (i=0; i < opdrachten.length; i++)
|
||||
resulttekst = "Not authorized for ORDRSM";
|
||||
else if (!this_opdr.canOnderbreken && halt && !mld_opdr.halted)
|
||||
resulttekst = "Not authorized for ORDHLT";
|
||||
else
|
||||
resultcode = -1; // hij was al halted of resumed, niet erg dus
|
||||
else if (mld_opdr.opdr_status == 8) // Een halt of resume is alleen mogelijk in de opdrachtstatus Geaccepteerd(8).
|
||||
{ // De opdracht was al halted of resume.
|
||||
// Als er nog geen "ORDHLT" of "ORDRSM" tracking aanwezig was, dan moet deze tracking nu wel worden toegevoegd.
|
||||
// Dit moet in de functie opdr_hltrsm worden geforceerd, anders doet de functie dat niet.
|
||||
var forcetracking = false;
|
||||
var sql = "SELECT COUNT(*) aantal"
|
||||
+ " FROM fac_tracking t"
|
||||
+ " , fac_srtnotificatie sn"
|
||||
+ " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key"
|
||||
+ " AND t.fac_tracking_refkey = " + opdr_key
|
||||
+ " AND sn.fac_srtnotificatie_xmlnode = 'opdracht'"
|
||||
+ " AND sn.fac_srtnotificatie_code IN ('ORDHLT', 'ORDRSM')";
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (oRs("aantal").Value == 0)
|
||||
forcetracking = true;
|
||||
|
||||
if (((halt && mld_opdr.halted) || (resume && !mld_opdr.halted)) && forcetracking)
|
||||
// De status staat al op halted of resume maar er is nog geen "ORDHLT" of "ORDRSM" tracking aanwezig.
|
||||
// Dan deze tracking alsnog aanmaken m.b.v. de functie opdr_hltrsm.
|
||||
// De functie zorgt ook voor het leegmaken van verplichte onderbreek kenmerken bij het hervatten.
|
||||
mld.opdr_hltrsm(opdr_key, { halt: halt, resume: resume, forcetracking: true }); // Zorgt voor het zetten van de mld_opdr.mld_opdr_halted waarde en het tracken van "ORDHLT" of "ORDRSM".
|
||||
resultcode = -1; // Hij was al halted of resumed, niet erg dus.
|
||||
}
|
||||
}
|
||||
|
||||
if (S("mld_use_plandate2") & 2)
|
||||
{
|
||||
var latest_pld = new_plandatum || mld_opdr.mld_opdr_plandatum;
|
||||
var latest_pld = new_plandatum || mld_opdr.mld_opdr_plandatum;
|
||||
var latest_pl2 = new_plandatum2 || mld_opdr.mld_opdr_plandatum2;
|
||||
if (latest_pld != null && latest_pl2 != null // We have a plan-start-date and a plan-end-date
|
||||
&& (new_plandatum || new_plandatum2) // and at least 1 of them is new
|
||||
|
||||
@@ -245,12 +245,12 @@ mld = {
|
||||
var halted = oRs("mld_opdr_halted").Value == 1;
|
||||
oRs.Close();
|
||||
|
||||
if (params.halt && !halted)
|
||||
if (params.halt && (!halted || params.forcetracking))
|
||||
{
|
||||
Oracle.Execute("UPDATE mld_opdr SET mld_opdr_halted = 1 WHERE mld_opdr_key = " + opdr_key);
|
||||
shared.trackaction("ORDHLT", opdr_key);
|
||||
}
|
||||
if (params.resume && halted)
|
||||
if (params.resume && (halted || params.forcetracking))
|
||||
{
|
||||
Oracle.Execute("UPDATE mld_opdr SET mld_opdr_halted = 0 WHERE mld_opdr_key = " + opdr_key);
|
||||
shared.trackaction("ORDRSM", opdr_key);
|
||||
|
||||
Reference in New Issue
Block a user