VLKC#40642 De Hold-mogelijkheid van opdrachten is nu per type configureerbaar.

svn path=/Website/branches/v2017.1/; revision=34015
This commit is contained in:
Peter Feij
2017-05-29 09:13:27 +00:00
parent 75c35211a2
commit 5a21bc9214
2 changed files with 9 additions and 7 deletions

View File

@@ -167,7 +167,7 @@ mld = {setmeldingstatus:
function (opdr_key, params)
{
if (params.resume)
{ // Als er al een opdracht actief is en sequentieel is aangevinkt, dan moet de actieve opdracht onderbroken worden.
{ // Als er al een opdracht actief is en sequentieel&2, dan moet de actieve opdracht onderbroken worden.
// Als de opdrachten niet sequentieel uitgevoerd moeten worden, dan wordt er ook geen actieve opdracht gevonden.
var activeopdr = mld.getactiveopdracht(opdr_key);
if (activeopdr.opdr_key > 0)
@@ -691,7 +691,7 @@ mld = {setmeldingstatus:
+ " AND o.prs_perslid_key = " + (pprs_key > 0? pprs_key : "(SELECT o2.prs_perslid_key FROM mld_opdr o2 WHERE o2.mld_opdr_key = " + popdr_key + ")")
+ " AND o.mld_uitvoerende_keys = " + (puitv_key > 0? puitv_key : "(SELECT o2.mld_uitvoerende_keys FROM mld_opdr o2 WHERE o2.mld_opdr_key = " + popdr_key + ")")
+ " AND o.mld_statusopdr_key = 8" // Alleen Actieve (Status Geaccepteerd(8)) opdrachten.
+ " AND top.mld_typeopdr_sequential = 1" // Alleen opdrachten die sequentieel uitgevoerd moeten worden.
+ " AND BITAND(top.mld_typeopdr_sequential, 2) = 2" // Alleen opdrachten die sequentieel uitgevoerd moeten worden.
+ (mode == "A"
? " AND o.mld_opdr_halted = 0"
: " AND o.mld_opdr_halted = 1")
@@ -2182,7 +2182,7 @@ mld = {setmeldingstatus:
typeopdr_contract: oRs("mld_typeopdr_contract").Value, // Of bij deze opdracht een contract moet (3), kan (2) of niet kan (0) worden opgegeven
typeopdr_afhandeling: oRs("mld_typeopdr_afhandeling").Value, // Afhandeling verplicht bij afmelden opdracht van dit opdrachttype (0=Nee/1=Ja)
typeopdr_kosten_verplicht: oRs("mld_typeopdr_kosten_verplicht").Value || 0, // Opdracht kosten verplicht (bitwise) bij (0 = niet verplicht, 1 = save + 2 = afmelden, 4 = afronden).
typeopdr_sequential: oRs("mld_typeopdr_sequential").Value == 1,
typeopdr_sequential: oRs("mld_typeopdr_sequential").Value, // 0,1,2 of 3
contactpers_key: oRs("mld_opdr_contact_key").Value || -1,
contactpers_naam: oRs("mld_opdr_contact_naam").Value,
contactpersuitv_key: oRs("prs_contactpersoon_key").Value,
@@ -3350,6 +3350,7 @@ mld = {setmeldingstatus:
+ " , m.prs_perslid_key melding_user_key"
+ " , mto.mld_typeopdr_kosten"
+ " , mto.mld_typeopdr_decentraal"
+ " , mto.mld_typeopdr_sequential"
+ " , mto.mld_typeopdr_isofferte"
+ " , mld_typeopdr_afmelden_extern"
+ " , mto.mld_typeopdr_matchtype"
@@ -3440,6 +3441,7 @@ mld = {setmeldingstatus:
var halted = moRs("mld_opdr_halted").Value == 1;
var typehas_cost = moRs("mld_typeopdr_kosten").Value == 1;
var decentraal = moRs("mld_typeopdr_decentraal").Value;
var sequential = moRs("mld_typeopdr_sequential").Value; // 0,1,2 of 3
var isofferte = moRs("mld_typeopdr_isofferte").Value == 1;
var afmelden_extern = moRs("mld_typeopdr_afmelden_extern").Value;
var typeopdr_matchtype = moRs("mld_typeopdr_matchtype").Value;
@@ -3728,8 +3730,8 @@ mld = {setmeldingstatus:
(mresult.canWrite("WEB_ORDBO2") && myBO2Change) ||
(mresult.canWrite("WEB_MLDORD") && user.isCollega(uitv_key))) &&
!is_planned_action;
mresult.canOnderbreken = mresult.canCloseRights && opdr_status == 8 && !halted;
mresult.canHervatten = mresult.canCloseRights && opdr_status == 8 && halted;
mresult.canOnderbreken = sequential&1==1 && mresult.canCloseRights && opdr_status == 8 && !halted;
mresult.canHervatten = mresult.canCloseRights && opdr_status == 8 && halted; /* && sequential&1==1 would be logical but halted will do */
mresult.canClose = mresult.canCloseRights && !mresult.canHervatten;
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_afgerond);
mresult.canVeldChange = (mresult.canWrite("WEB_ORDBOF") ||

View File

@@ -1008,10 +1008,10 @@ if (!isNew)
mld.trackuitvoerende(opdr_key, uitvoerende);
// Bij status "Geaccepteerd(8):
// a) Als behandelaar veranderd moeten een actieve opdracht worden onderbroken.
// a) Als behandelaar verandert moeten een actieve opdracht worden onderbroken.
// b) zorgen dat er maar 1 opdracht van het opdrachttype van deze opdracht actief mag zijn.
var new_behandelaar = getFParamInt("behandelaar");
if ((new_behandelaar != old_behandelaar) || (mld_opdr.typeopdr_sequential && opdr_status == 8))
if ((new_behandelaar != old_behandelaar) || (mld_opdr.typeopdr_sequential&2==2 && opdr_status == 8))
{
var extendedopdrstatus = mld.getextendedopdrstatus(opdr_status, opdr_key);
if (extendedopdrstatus == 8 || extendedopdrstatus == 82)