ARAI#38184: Ondersteuning voor strikt sequentiele opdrachtuitvoering.
svn path=/Website/trunk/; revision=33458
This commit is contained in:
@@ -148,6 +148,11 @@ function model_mld_typeopdr()
|
||||
"defaultvalue": "1",
|
||||
"LOV": L("mld_typeopdr_slamodeLOV"),
|
||||
"emptyoption": null
|
||||
},
|
||||
"sequential": {
|
||||
"dbs": "mld_typeopdr_sequential",
|
||||
"label": L("lcl_typeopdr_sequential"),
|
||||
"typ": "check0"
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -633,6 +633,57 @@ mld = {setmeldingstatus:
|
||||
return uitvoertijd;
|
||||
},
|
||||
|
||||
getactivehltopdracht:
|
||||
function (popdr_key, mode)
|
||||
{
|
||||
// Is er een actieve opdracht of zijn er onderbroken opdrachten die sequentieel uigevoerd moeten worden.
|
||||
var sql = "SELECT MAX(mld_opdr_key) mld_opdr_key"
|
||||
+ " , MAX(sd.ins_srtdiscipline_prefix || o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr) opdracht"
|
||||
+ " , COUNT(mld_opdr_key) aantalopdr"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " , mld_melding m"
|
||||
+ " , mld_stdmelding s"
|
||||
+ " , mld_discipline md"
|
||||
+ " , ins_srtdiscipline sd"
|
||||
+ " , mld_typeopdr top"
|
||||
+ " , mld_v_uitvoerende mu"
|
||||
+ " WHERE o.mld_melding_key = m.mld_melding_key"
|
||||
+ " AND m.mld_stdmelding_key = s.mld_stdmelding_key"
|
||||
+ " AND s.mld_ins_discipline_key = md.ins_discipline_key"
|
||||
+ " AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
|
||||
+ " AND o.mld_typeopdr_key = top.mld_typeopdr_key"
|
||||
+ " AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key"
|
||||
+ " AND o.prs_perslid_key = (SELECT o2.prs_perslid_key FROM mld_opdr o2 WHERE o2.mld_opdr_key = " + popdr_key + ")"
|
||||
+ " AND o.mld_statusopdr_key = 8" // Actief (Status Geaccepteerd(8))
|
||||
+ " AND top.mld_typeopdr_sequential = 1" // Opdracht die sequentieel uitgevoerd moeten worden.
|
||||
+ (mode == "A"
|
||||
? " AND (fac.gettrackingdate('ORDHLT', o.mld_opdr_key) IS NULL" // Alleen geaccepteerde(8) en hervatte(82) opdrachten.
|
||||
+ " OR (fac.gettrackingdate('ORDRSM', o.mld_opdr_key) IS NOT NULL AND"
|
||||
+ " fac.gettrackingdate('ORDHLT', o.mld_opdr_key) < fac.gettrackingdate('ORDRSM', o.mld_opdr_key)))"
|
||||
: " AND fac.gettrackingdate('ORDHLT', o.mld_opdr_key) IS NOT NULL"
|
||||
+ " AND (fac.gettrackingdate('ORDRSM', o.mld_opdr_key) IS NULL OR fac.gettrackingdate('ORDHLT', o.mld_opdr_key) > fac.gettrackingdate('ORDRSM', o.mld_opdr_key))")
|
||||
+ " AND mu.intern = 1" // Alleen interne uitvoerders
|
||||
+ " AND mld_opdr_key != " + popdr_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var result = { opdr_key: oRs("mld_opdr_key").Value? oRs("mld_opdr_key").Value : -1,
|
||||
opdracht: oRs("opdracht").Value? oRs("opdracht").Value : "",
|
||||
aantal: oRs("aantalopdr").Value };
|
||||
oRs.Close();
|
||||
return result;
|
||||
},
|
||||
|
||||
getactiveopdracht:
|
||||
function (popdr_key)
|
||||
{
|
||||
return mld.getactivehltopdracht(popdr_key, "A"); // Mode "Actief"
|
||||
},
|
||||
|
||||
gethltopdrachten:
|
||||
function (popdr_key)
|
||||
{
|
||||
return mld.getactivehltopdracht(popdr_key, "H"); // Mode "Onderbroken" (Halted)
|
||||
},
|
||||
|
||||
keepFlexDocuments:
|
||||
function(mld_key, old_stdm, stdmelding)
|
||||
{
|
||||
@@ -1961,6 +2012,7 @@ mld = {setmeldingstatus:
|
||||
+ " , mto.mld_typeopdr_contract"
|
||||
+ " , mto.mld_typeopdr_afhandeling"
|
||||
+ " , mto.mld_typeopdr_kosten_verplicht"
|
||||
+ " , mto.mld_typeopdr_sequential"
|
||||
+ " , o.prs_perslid_key mld_opdr_contact_key" // key van de interne contactpersoon
|
||||
+ " , (SELECT p.prs_perslid_naam_full FROM prs_v_perslid_fullnames_all p WHERE p.prs_perslid_key = o.prs_perslid_key) mld_opdr_contact_naam"
|
||||
+ " , o.prs_contactpersoon_key"
|
||||
@@ -2094,6 +2146,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,
|
||||
contactpers_key: oRs("mld_opdr_contact_key").Value || -1,
|
||||
contactpers_naam: oRs("mld_opdr_contact_naam").Value,
|
||||
contactpersuitv_key: oRs("prs_contactpersoon_key").Value,
|
||||
|
||||
@@ -193,8 +193,8 @@ sql = " SELECT 1"
|
||||
oRs2 = Oracle.Execute(sql);
|
||||
if (!oRs2.eof)
|
||||
{
|
||||
defemail_key = oRs2("defemail_key").Value
|
||||
defemail_type = oRs2("defemail_type").Value
|
||||
defemail_key = oRs2("defemail_key").Value;
|
||||
defemail_type = oRs2("defemail_type").Value;
|
||||
}
|
||||
var subjectMail = L("lcl_shared_order") + " " + mld_opdr.mld_key + "/" + mld_opdr.volgnr;
|
||||
var urlMail = "../shared/queuemail.asp?pcode=ORDMAI&defemail_key=" + defemail_key
|
||||
@@ -206,6 +206,8 @@ var urlMail = "../shared/queuemail.asp?pcode=ORDMAI&defemail_key=" + defemail_ke
|
||||
var kosten_verplicht_afm = (mld_opdr.typeopdr_matchtype != 4 && (mld_opdr.typeopdr_kosten_verplicht & 2 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 2))? 1 : 0) == 1;
|
||||
var opdr_kosten = mld_opdr.t_cost;
|
||||
|
||||
// Als de opdrachten niet sequentieel uitgevoerd moeten worden, dan wordt er ook geen actieve opdracht gevonden.
|
||||
var activeopdr = mld.getactiveopdracht(opdr_key);
|
||||
%>
|
||||
|
||||
<html>
|
||||
@@ -228,6 +230,8 @@ var opdr_kosten = mld_opdr.t_cost;
|
||||
var kosten_verplicht_afr = <%=mld_opdr.typeopdr_matchtype != 4 && (mld_opdr.typeopdr_kosten_verplicht & 4 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 4))? 1 : 0%> == 1;
|
||||
var opdr_kosten = <%=safe.jsfloat(mld_opdr.t_cost)%>;
|
||||
var refiat = <%=refiat? 1 : 0%> == 1;
|
||||
var activeopdr_key = <%=activeopdr.opdr_key%>;
|
||||
var activeopdracht = "<%=activeopdr.opdracht%>";
|
||||
|
||||
jQuery(document).ready(function()
|
||||
{
|
||||
|
||||
@@ -67,14 +67,16 @@ function opdr_setsend()
|
||||
}
|
||||
function opdr_accept()
|
||||
{
|
||||
FcltMgr.confirm(L("lcl_mld_opdr_accept_1") + prefix + mld_key + "/" + volgnr + L("lcl_mld_opdr_accept_2"), function() {
|
||||
// Accepteren scherm
|
||||
var data = {
|
||||
opdr_key: opdr_key
|
||||
};
|
||||
protectRequest.dataToken(data);
|
||||
$.post("opdr_accept.asp", data, FcltCallbackRefresh, "json");
|
||||
});
|
||||
var confirmtekst = (activeopdr_key > 0
|
||||
? 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.
|
||||
protectRequest.dataToken(data);
|
||||
$.post("opdr_accept.asp", data, FcltCallbackRefresh, "json");
|
||||
});
|
||||
}
|
||||
|
||||
function opdr_reject()
|
||||
|
||||
@@ -21,6 +21,7 @@ var JSON_Result = true;
|
||||
<%
|
||||
/***** Get webform parameters *****/
|
||||
var opdr_key_arr = getFParamIntArray("opdr_key");
|
||||
var hltactive = getFParamInt("hltactive", 0) == 1; // Onderbreek de actieve opdracht.
|
||||
|
||||
var result = { message: "", success: false };
|
||||
var tobeaccepted = 0;
|
||||
@@ -76,6 +77,14 @@ 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
|
||||
|
||||
if (hltactive)
|
||||
{ // 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]);
|
||||
// De actieve opdracht onderbreken.
|
||||
shared.trackaction("ORDHLT", activeopdr.opdr_key);
|
||||
}
|
||||
}
|
||||
|
||||
// Geen message "De opdracht PXXX/Y is geaccepteerd" meer geven (AADS#20339)
|
||||
|
||||
@@ -30,6 +30,8 @@ FCLTHeader.Requires({plugins: ["jQuery"],
|
||||
css: ["timePicker-table.css"]});
|
||||
|
||||
var opdr_key_arr = getQParamIntArray("opdr_key");
|
||||
// Als de opdrachten niet sequentieel uitgevoerd moeten worden, dan wordt er ook geen halted opdracht gevonden.
|
||||
var hltopdr = mld.gethltopdrachten(opdr_key_arr[0]);
|
||||
var reqStatusEmptyMelding = [];
|
||||
var reqStatusEmptyOpdr = [];
|
||||
var ingesloten = [];
|
||||
@@ -276,6 +278,14 @@ oRs.Close();
|
||||
</td></tr>
|
||||
<%
|
||||
}
|
||||
if (hltopdr.aantal == 1)
|
||||
{
|
||||
%><tr><td colspan="2">
|
||||
<% CHECKBOX("fldmldhlt", "mld_hlt"); %>
|
||||
<label for="mld_hlt"><%=L("lcl_mld_opdr_cont").format(hltopdr.opdracht)%></label>
|
||||
</td></tr>
|
||||
<%
|
||||
}
|
||||
BLOCK_END();
|
||||
%><input type='hidden' name='orgdate' value='<%=nu.getTime()%>'><%
|
||||
var buttons = [ {title: L("lcl_close"), icon: "accept.png", action: "mld_close()", singlepress: true, id: "btn_close_submit" },
|
||||
|
||||
@@ -58,6 +58,7 @@ function writeOpdrOpmToMld()
|
||||
}
|
||||
|
||||
var opdr_key_arr = getQParamIntArray("opdr_key");
|
||||
var mld_hlt = (Request.Form("mld_hlt").count == 1);
|
||||
var result = {};
|
||||
var ingesloten = [];
|
||||
var reqStatusEmptyMelding = [];
|
||||
@@ -263,6 +264,14 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
|
||||
// Zijn er bijbehorende facturen die al zijn ingevoerd met de status "Ingevoerd(2)" die nog geapproved moeten worden?
|
||||
mld.autoapprovefactuur(ingesloten[i]);
|
||||
|
||||
if (mld_hlt)
|
||||
{ // Er is 1 onderbroken opdracht die hervat moet worden. Dit doen we door een "ORDRSM" tracking op de opdracht te doen.
|
||||
// Haal de onderbroken opdracht weer op.
|
||||
var hltopdr = mld.gethltopdrachten(opdr_key_arr[0]);
|
||||
// De onderbroken opdracht weer hervatten.
|
||||
shared.trackaction("ORDRSM", hltopdr.opdr_key);
|
||||
}
|
||||
}
|
||||
result.success = true;
|
||||
|
||||
|
||||
@@ -173,7 +173,7 @@ else
|
||||
function opdr_accept()
|
||||
{
|
||||
var opdr_nr = "<%=mld_opdr.mld_key%>/<%=mld_opdr.mld_opdr_bedrijfopdr_volgnr%>";
|
||||
if (confirm(L("lcl_mld_opdr_accept_1") + opdr_nr + L("lcl_mld_opdr_accept_2")))
|
||||
if (confirm(L("lcl_mld_opdr_accept").format(opdr_nr)))
|
||||
{
|
||||
var data = { opdr_key: <%=opdr_key%>
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user