MARX#53147: Opdrachten in status Halt laten beginnen om expliciet later te starten.
svn path=/Website/trunk/; revision=38908
This commit is contained in:
@@ -165,10 +165,36 @@ function model_mld_typeopdr()
|
||||
"dbs": "mld_typeopdr_sequential",
|
||||
"label": L("lcl_typeopdr_sequential"),
|
||||
"typ": "number",
|
||||
"defaultvalue": "0",
|
||||
"LOV": L("mld_typeopdr_seqmodeLOV"),
|
||||
"emptyoption": null,
|
||||
"multiedit": true
|
||||
"multiedit": true,
|
||||
"bits": [
|
||||
{
|
||||
"name": "",
|
||||
"label": "",
|
||||
"typ": "check",
|
||||
"mask": 7,
|
||||
"radios": [
|
||||
{
|
||||
"name": "inplan",
|
||||
"label": L("mld_typeopdr_hold_allowed"),
|
||||
"mask": 1,
|
||||
"defaultvalue": 0
|
||||
},
|
||||
{
|
||||
"name": "start",
|
||||
"label": L("ins_srtcontrole_seq_strict"),
|
||||
"mask": 2,
|
||||
"defaultvalue": 0
|
||||
},
|
||||
{
|
||||
"name": "afmeld",
|
||||
"label": L("ins_srtcontrole_halt_start"),
|
||||
"mask": 4,
|
||||
"defaultvalue": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"track": true
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1105,7 +1105,7 @@ oRs.Close();
|
||||
opdr_status: mld_opdr.opdr_status,
|
||||
mld_key: mld_key,
|
||||
stdm_arr: [],
|
||||
showClose: (opdr_key > 0 && this_opdr && (this_opdr.canClose || this_opdr.canSeeARFlex)),
|
||||
showClose: (opdr_key > 0 && this_opdr && (this_opdr.canClose || this_opdr.canHervatten || this_opdr.canSeeARFlex)),
|
||||
copy: copy,
|
||||
reado: (opdr_key > 0 && !(this_opdr.canFlexChange || this_opdr.canChangeARFlex)),
|
||||
flexcolumns: S("mld_flexcolumns"),
|
||||
|
||||
@@ -215,6 +215,10 @@ if (mld_opdr.contactpers_key < 0)
|
||||
var activeopdr = mld.getactiveopdracht(opdr_key, user_key, mld_opdr.uitvoerende_key);
|
||||
else
|
||||
var activeopdr = mld.getactiveopdracht(opdr_key);
|
||||
|
||||
// Zijn bij deze opdracht alle verplichte kenmerken ingevuld voor het onderbreken(81)?
|
||||
var reqStatusEmptyOpdr = [];
|
||||
reqStatusEmptyOpdr = mld.getReqStatusEmptyOpdr(reqStatusEmptyOpdr, opdr_key, 81); // Opdracht status "Onderbroken(81)" een substatus van "Geaccepteerd(8)".
|
||||
%>
|
||||
|
||||
<html>
|
||||
@@ -240,6 +244,9 @@ else
|
||||
var refiat = <%=refiat? 1 : 0%> == 1;
|
||||
var activeopdr_key = <%=activeopdr.opdr_key%>;
|
||||
var activeopdracht = "<%=activeopdr.opdracht%>";
|
||||
var typeopdr_sequential = "<%=mld_opdr.typeopdr_sequential%>";
|
||||
var kenmerk_verplicht_status = "<%=mld_opdr.kenmerk_verplicht_status%>";
|
||||
var hasKenmerkOnderbreken = "<%=reqStatusEmptyOpdr.length? 1 : 0%>" == 1;
|
||||
|
||||
$(function()
|
||||
{
|
||||
@@ -650,7 +657,7 @@ else
|
||||
opdr_type: mld_opdr.opdr_type,
|
||||
opdr_type_org: opdr_type_org,
|
||||
opdr_status: mld_opdr.opdr_status,
|
||||
showClose: this_opdr.couldClose || this_opdr.canClose || this_opdr.canSeeARFlex,
|
||||
showClose: this_opdr.couldClose || this_opdr.canClose || this_opdr.canHervatten || this_opdr.canSeeARFlex,
|
||||
reado: true,
|
||||
flexcolumns: S("mld_flexcolumns"),
|
||||
showConfidential : this_opdr.canViewConfidential
|
||||
|
||||
@@ -67,13 +67,12 @@ function opdr_setsend()
|
||||
}
|
||||
function opdr_accept()
|
||||
{
|
||||
var confirmtekst = (activeopdr_key > 0
|
||||
var confirmtekst = (activeopdr_key > 0 && (typeopdr_sequential & 4) != 4
|
||||
? L("lcl_mld_opdr_accept_hlt").format(prefix + mld_key + "/" + volgnr, activeopdracht)
|
||||
: L("lcl_mld_opdr_accept").format(prefix + mld_key + "/" + volgnr));
|
||||
FcltMgr.confirm(confirmtekst,
|
||||
function() { // Accepteren scherm
|
||||
var data = { opdr_key: opdr_key,
|
||||
hltactive: activeopdr_key > 0? 1 : 0 }; // Onderbreek de actieve opdracht.
|
||||
var data = { opdr_key: opdr_key };
|
||||
protectRequest.dataToken(data);
|
||||
$.post("opdr_accept.asp", data, FcltCallbackRefresh, "json");
|
||||
});
|
||||
@@ -188,13 +187,25 @@ function mld_melding_materiaal()
|
||||
|
||||
function opdr_onderbreken()
|
||||
{
|
||||
if (hasKenmerkOnderbreken)
|
||||
{
|
||||
var url = "../mld/opdr_halt_confirm.asp?opdr_key=" + opdr_key;
|
||||
FcltMgr.openModalDetail(url,
|
||||
L("lcl_halt"),
|
||||
{ callback: FcltCallbackRefresh }
|
||||
);
|
||||
}
|
||||
else
|
||||
FcltMgr.confirm(L("lcl_mld_opdr_hlt").format(prefix + mld_key + "/" + volgnr),
|
||||
function()
|
||||
{
|
||||
var data = { opdr_key: opdr_key,
|
||||
hlt: 1 };
|
||||
protectRequest.dataToken(data);
|
||||
$.post("opdr_hltrsm.asp", data, FcltCallbackRefresh, "json");
|
||||
$.post("opdr_hltrsm.asp",
|
||||
data,
|
||||
FcltCallbackRefresh,
|
||||
"json");
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -24,8 +24,6 @@ if (opdr_key_arr.length)
|
||||
|
||||
<%
|
||||
/***** Get webform parameters *****/
|
||||
var hltactive = getFParamInt("hltactive", 0) == 1; // Onderbreek de actieve opdracht.
|
||||
|
||||
var result = { message: "", success: false };
|
||||
var tobeaccepted = 0;
|
||||
var ingesloten = [];
|
||||
@@ -47,6 +45,7 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
{
|
||||
// Blijkbaar mogen we Accepteren
|
||||
var mld_opdr = mld.mld_opdr_info(ingesloten[i]);
|
||||
|
||||
// Als de behandelaar leeg is en een user van het INTERNE bedrijf meldt de opdracht af, dan de user_key als behandelaar (prs_perslid_key) zetten.
|
||||
var fields = [];
|
||||
var prs_filled = false; // Beheerder is leeg en wordt gevuld met de accepteerder.
|
||||
@@ -86,17 +85,25 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
// Zetten van de status en afhandelen van de tracking van het fiatteren (approve).
|
||||
mld.setopdrachtstatus(ingesloten[i], 8); // Geaccepteerd
|
||||
|
||||
// De actieve opdracht onderbreken.
|
||||
if (hltactive || prs_filled)
|
||||
{ // Er is 1 actieve opdracht die onderbroken moet worden. Dit doen we door een "ORDHLT" tracking op de opdracht te doen.
|
||||
// Haal de actieve opdracht weer op.
|
||||
var activeopdr = mld.getactiveopdracht(ingesloten[i]);
|
||||
// Voor hltactive is er 1 active opdracht aanwezig maar voor prs_filled weet ik dat nog niet. Daarom activeopdr.opdr_key testen.
|
||||
if (activeopdr.opdr_key > 0)
|
||||
{
|
||||
shared.trackaction("ORDHLT", activeopdr.opdr_key);
|
||||
// Ik kan hier zelf bepalen of de actieve opdracht onderbroken moet worden (hltactive).
|
||||
// Als de opdrachten niet sequentieel uitgevoerd moeten worden, dan wordt er ook geen actieve opdracht gevonden.
|
||||
if (mld_opdr.contactpers_key < 0)
|
||||
var activeopdr = mld.getactiveopdracht(ingesloten[i], user_key, mld_opdr.uitvoerende_key); // Haal de actieve opdracht op.
|
||||
else
|
||||
var activeopdr = mld.getactiveopdracht(ingesloten[i]); // Haal de actieve opdracht op.
|
||||
var activeopdr_key = activeopdr.opdr_key;
|
||||
var activeopdracht = activeopdr.opdracht;
|
||||
var hltactive = (activeopdr_key > 0);
|
||||
|
||||
var onHold = ((mld_opdr.typeopdr_sequential & 4) == 4); // Staat "Onderbroken starten" aan?
|
||||
if (hltactive)
|
||||
{ // Er is 1 actieve opdracht die onderbroken moet worden. Dit doen we door een "ORDHLT" tracking op die actieve opdracht te doen.
|
||||
Oracle.Execute("UPDATE mld_opdr SET mld_opdr_halted = 1 WHERE mld_opdr_key = " + activeopdr.opdr_key);
|
||||
shared.trackaction("ORDHLT", activeopdr.opdr_key);
|
||||
}
|
||||
else if (onHold)
|
||||
{ // Als "Onderbroken starten" aan staat dan deze opdracht op "On Hold" zetten. Dan geen "ORDHLT" tracking genereren.
|
||||
Oracle.Execute("UPDATE mld_opdr SET mld_opdr_halted = 1 WHERE mld_opdr_key = " + ingesloten[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -31,10 +31,17 @@ FCLTHeader.Requires({ plugins: ["suggest"]
|
||||
var mld_key = getQParamInt("mld_key", -1);
|
||||
var copy = false;
|
||||
|
||||
var halt = getQParamInt("hlt", 0) == 1;
|
||||
var resume = getQParamInt("rsm", 0) == 1;
|
||||
// Als de opdrachten niet sequentieel uitgevoerd moeten worden, dan wordt er ook geen actieve of halted opdracht gevonden.
|
||||
var activeopdr = mld.getactiveopdracht(opdr_key);
|
||||
var hltopdr = mld.gethltopdrachten(opdr_key);
|
||||
|
||||
// Zijn bij deze opdracht alle verplichte kenmerken ingevuld voor het onderbreken(81)?
|
||||
var reqStatusEmptyOpdr = [];
|
||||
reqStatusEmptyOpdr = mld.getReqStatusEmptyOpdr(reqStatusEmptyOpdr, opdr_key, 81); // Opdracht status "Onderbroken(81)" een substatus van "Geaccepteerd(8)".
|
||||
var hasKenmerkOnderbreken = (reqStatusEmptyOpdr.length? 1 : 0) == 1;
|
||||
|
||||
// Mogelijke parameters voor toevoegen only
|
||||
if (opdr_key == -1)
|
||||
{
|
||||
@@ -46,10 +53,8 @@ if (opdr_key == -1)
|
||||
Server.Transfer("order_new.asp"); // Ga eerst opdrachttype kiezen
|
||||
}
|
||||
}
|
||||
else
|
||||
else if (halt || resume)
|
||||
{
|
||||
var halt = getQParamInt("hlt", 0) == 1;
|
||||
var resume = getQParamInt("rsm", 0) == 1;
|
||||
mld.opdr_hltrsm(opdr_key, { halt: halt, resume: resume });
|
||||
}
|
||||
|
||||
@@ -189,8 +194,7 @@ if (mld_opdr.uitv_type == "B")
|
||||
: L("lcl_mld_opdr_accept").format(opdr_nr));
|
||||
if (confirm(confirmtekst))
|
||||
{
|
||||
var data = { opdr_key: <%=opdr_key%>,
|
||||
hltactive: activeopdr_key > 0? 1 : 0 }; // Onderbreek de actieve opdracht.
|
||||
var data = { opdr_key: <%=opdr_key%> };
|
||||
<% protectRequest.dataToken("data"); %>
|
||||
$.post( "<%=rooturl%>/appl/mld/opdr_accept.asp",
|
||||
data,
|
||||
@@ -274,7 +278,18 @@ if (mld_opdr.uitv_type == "B")
|
||||
window.history.go(-1);
|
||||
}
|
||||
|
||||
function opdr_onderbreken()
|
||||
function opdr_halt_submit()
|
||||
{
|
||||
var data = $("[name=haltform]").serialize();
|
||||
protectRequest.dataToken(data);
|
||||
$.post($("form[name=haltform]")[0].action,
|
||||
data,
|
||||
McltCallbackAndThenAlways(function() { window.location.href = "<%=rooturl%>/appl/pda/order.asp?opdr_key=<%=opdr_key%>"; }),
|
||||
"json");
|
||||
return false;
|
||||
}
|
||||
|
||||
function opdr_halt()
|
||||
{
|
||||
var opdr_nr = "<%=mld_opdr.srtdiscprefix + mld_opdr.mld_key + "/" + mld_opdr.mld_opdr_bedrijfopdr_volgnr%>";
|
||||
if (confirm(L("lcl_mld_opdr_hlt").format(opdr_nr)))
|
||||
@@ -283,7 +298,7 @@ if (mld_opdr.uitv_type == "B")
|
||||
}
|
||||
}
|
||||
|
||||
function opdr_hervatten()
|
||||
function opdr_resume()
|
||||
{
|
||||
var opdr_nr = "<%=mld_opdr.srtdiscprefix + mld_opdr.mld_key + "/" + mld_opdr.mld_opdr_bedrijfopdr_volgnr%>";
|
||||
if (confirm(L("lcl_mld_opdr_rsm").format(opdr_nr)))
|
||||
@@ -567,7 +582,7 @@ if (mld_opdr.uitv_type == "B")
|
||||
opdr_status: mld_opdr.opdr_status,
|
||||
mld_key: mld_key,
|
||||
stdm_arr: [],
|
||||
showClose: (opdr_key > 0 && this_opdr && (this_opdr.canClose || this_opdr.canSeeARFlex)),
|
||||
showClose: (opdr_key > 0 && this_opdr && (this_opdr.canClose || this_opdr.canHervatten || this_opdr.canSeeARFlex)),
|
||||
mobile: true,
|
||||
reado: (opdr_key > 0 && !(this_opdr.canFlexChange || this_opdr.canChangeARFlex)),
|
||||
showConfidential : this_opdr.canViewConfidential
|
||||
@@ -710,10 +725,15 @@ if (mld_opdr.uitv_type == "B")
|
||||
|
||||
// Onderbreken.
|
||||
if (this_opdr.canOnderbreken)
|
||||
BUTTON(L("lcl_halt"), {click: "opdr_onderbreken()", dataicon: "power"});
|
||||
{
|
||||
if (hasKenmerkOnderbreken)
|
||||
BUTTON(L("lcl_halt"), {linkid: "#opdr-5-" + opdr_key, dataicon: "power"});
|
||||
else
|
||||
BUTTON(L("lcl_halt"), {click: "opdr_halt()", dataicon: "power"});
|
||||
}
|
||||
// Hervatten.
|
||||
if (this_opdr.canHervatten)
|
||||
BUTTON(L("lcl_resume"), {click: "opdr_hervatten()", dataicon: "power"});
|
||||
BUTTON(L("lcl_resume"), {click: "opdr_resume()", dataicon: "power"});
|
||||
|
||||
if (this_opdr.canClose)
|
||||
{ // Afmelden
|
||||
@@ -828,6 +848,48 @@ if (mld_opdr.uitv_type == "B")
|
||||
BUTTON(L("lcl_cancel"), {click: "opdr_cancel_action()", dataicon: "back"} );
|
||||
CONTROLGROUP_END();
|
||||
// IFACE.FORM_END();
|
||||
%>
|
||||
</form>
|
||||
<%
|
||||
CONTENT_END();
|
||||
PAGE_END();
|
||||
|
||||
// scherm: Verplichte kenmerken invullen bij onderbreken opdracht.
|
||||
PAGE_START({id: "opdr-5-" + opdr_key, dialog: true})
|
||||
HEADER({title: L("lcl_halt") + " " + subject, back: false, nohome: true});
|
||||
CONTENT_START();
|
||||
%>
|
||||
<form id="haltform" name="haltform" action="<%=rooturl%>/appl/mld/opdr_halt_save.asp?opdr_key=<%=opdr_key%>" method="post">
|
||||
<%
|
||||
//var mld_opdr = mld.mld_opdr_info(opdr_key);
|
||||
var ttl = L("lcl_mld_opdr_number") + " " + (mld_opdr.srtdiscprefix||"") + mld_opdr.mld_key + "/" + mld_opdr.mld_opdr_bedrijfopdr_volgnr;
|
||||
|
||||
BLOCK_START("mldhalt", ttl);
|
||||
if (this_opdr.canEditOpdrNote)
|
||||
RWFIELD("opdr_note", L("lcl_mld_note"), "", {multi: true, suppressEmpty: true});
|
||||
BLOCK_END();
|
||||
|
||||
// De verplichte onderbreek (halt) kenmerken tonen bij het onderbreken. Vooralsnog worden de andere verplichte kenmerken niet getoond.
|
||||
generateFlexKenmerkBlock({ opdr_key: opdr_key,
|
||||
opdr_type: mld_opdr.opdr_type,
|
||||
opdr_type_org: mld_opdr.opdr_type,
|
||||
opdr_status: mld_opdr.opdr_status,
|
||||
mld_key: mld_opdr.mld_key,
|
||||
stdm_arr: [mld_opdr.stdm_key], // Stdmelding
|
||||
halt: true,
|
||||
act_key: -1,
|
||||
mobile: true,
|
||||
reado: (!(this_opdr.canFlexChange || this_opdr.canChangeARFlex)? "1" : null),
|
||||
onlyverplicht: true,
|
||||
prs_key: user_key, // Perslid key, wordt alleen gebruikt als geldt (!kenmerk_search && !multiMode)
|
||||
showConfidential: this_opdr.canViewConfidential
|
||||
});
|
||||
|
||||
CONTROLGROUP_START();
|
||||
BUTTON(L("lcl_submit"), {click: "opdr_halt_submit()", dataicon: "refresh"});
|
||||
BUTTON(L("lcl_cancel"), {click: "opdr_cancel_action()", dataicon: "back"} );
|
||||
CONTROLGROUP_END();
|
||||
IFACE.FORM_END();
|
||||
%>
|
||||
</form>
|
||||
<%
|
||||
|
||||
Reference in New Issue
Block a user