Branch 2022.2 revisions 56070,56073-56079,56083-56088

svn path=/Website/trunk/; revision=56089
This commit is contained in:
2022-06-02 09:27:31 +00:00
parent 584dcf8439
commit 24f784c1ff
14 changed files with 320 additions and 227 deletions

View File

@@ -227,10 +227,9 @@ try
oRs.Close();
if (any3D)
{
if (!autfunction)
API.error("3d yet autfunction undefined"); // Strict genomen niet nodig voor FCLT_3D_USER_KEY
if (autfunction)
var authparams = user.checkAutorisation(autfunction);
var authparams = user.checkAutorisation(autfunction);
// TODO: Onderstaande code gaan delen met fac_usrrap.inc?
if (has3D["FCLT_3D_DISCIPLINE_KEY"])
{

View File

@@ -833,11 +833,12 @@ oRs.Close();
required: true
}
);
if (aflever_readonly && bes_bestelling.mld_adres_key > 0)
{
Reponse.Write("<input type='hidden' name='deliveryAddr' value='" + bes_bestelling.mld_adres_key + "'>")
}
*/
// if (aflever_readonly && bes_bestelling.mld_adres_key > 0)
// { %>
// <input type='hidden' name='deliveryAddr' value='<%=bes_bestelling.mld_adres_key%>'><%
// }
FCLTadresselector("deliveryAddr", "sgAdres",
{ trid: "deliveryaddress",

View File

@@ -125,8 +125,7 @@ if(S("bez_import_column5") != 0){
var regel = regels[i];
var spl = regel.split(bed_sep);
var format = "<%=formatstring%>";
var splColumns = format.split(";");
var splColumns = formatstring.split(";");
splColumns.pop(); // Get the last element out of there, it's empty
if (spl.length && trim(spl[0]) != "")
@@ -195,7 +194,7 @@ if (!novervang) {
</tr>
<tr>
<td></td>
<td><%=formatstring.substring(0, formatstring.length - 1)%></td>
<td><%=formatstring.slice(0, -1)%></td>
</tr>
<%
}

View File

@@ -43,8 +43,7 @@ if (cnt_key > 0)
+ " FROM cnt_srtkenmerk t"
+ " , cnt_kenmerk k"
+ " , cnt_contract c"
+ " WHERE (c.ins_discipline_key = k.cnt_srtcontract_key"
+ " OR k.cnt_srtcontract_key IS NULL)"
+ " WHERE c.ins_discipline_key = k.cnt_srtcontract_key"
+ " AND k.cnt_kenmerk_niveau IN ('C', 'S')"
+ " AND k.cnt_srtkenmerk_key = t.cnt_srtkenmerk_key"
+ " AND k.cnt_kenmerk_verwijder IS NULL"

View File

@@ -309,7 +309,7 @@ else { // In alle andere gevallen, dus normaliter (bij gevulde oRs) zijn dat nog
else // plain rapportage, dus NIET via xml/xsl
{
if (safeShowFilter != "" && (outputmode==1 || outputmode==2)) {
%><table width=100%>
%><table width="100%">
<tr>
<td><table><%=safeShowFilter%></table></td>
</tr></table><%
@@ -430,4 +430,4 @@ if (!nohtml) {
</html>
<% }
} // End else: In alle andere gevallen...
%><% ASPPAGE_END(); %>
%><% ASPPAGE_END(); %>

View File

@@ -623,7 +623,7 @@ var ins_deel_aantal = 1;
{ <%
if (disc_key_arr.length > 0)
{ %>
return <%=disc_key_arr%>;
return [<%=disc_key_arr%>];
<% }
else
{ %>

View File

@@ -497,6 +497,116 @@ mld = {
}
},
executedworkflowsteps:
// Haal alle mld_melding keys op van de workflow tot deze melding.
// Met include_self wordt de huidige melding ook toegevoegd aan het array.
function (p_mld_key, include_self)
{
function set_label(p_key)
{
return mld.mld_prefix(p_key) + p_key + " ({0})";
}
function workflowchain_reverse(pstart_key, current_workflowstep_key, pkeylist)
{
// Doorloop directe voorgangers van current_workflowstep_key
var sql_b = "SELECT m.mld_melding_key"
+ " , r.mld_workflowstep_key previous_step"
+ " FROM mld_melding m"
+ " , mld_workflowrule r"
+ " WHERE m.mld_workflowstep_key = r.mld_workflowstep_key"
+ " AND m.mld_melding_start_key = " + pstart_key
+ " AND r.mld_workflowstep_next_key = " + current_workflowstep_key;
var oRs_b = Oracle.Execute(sql_b);
while (!oRs_b.eof)
{
var mkey = oRs_b("mld_melding_key").Value;
if (!(mkey in pkeylist))
{
pkeylist[mkey] = set_label(mkey);
workflowchain_reverse(pstart_key, oRs_b("previous_step").Value, pkeylist);
}
oRs_b.MoveNext();
}
oRs_b.Close();
}
//
var parent_list = []; // Ook knoppen met bijlagen van de 'parent'-chain
if (include_self)
{
parent_list.push ( { label: set_label(p_mld_key)
, module: "MLD"
, key: p_mld_key
}
);
}
if (S("mld_show_parent_attachments"))
{
var sql = "SELECT w.mld_workflowstep_attachments"
+ " , m.mld_workflowstep_key"
+ " , m.mld_melding_start_key"
+ " FROM mld_melding m"
+ " , mld_workflowstep w"
+ " WHERE m.mld_melding_key = " + p_mld_key
+ " AND m.mld_workflowstep_key = w.mld_workflowstep_key";
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
var start_key = oRs("mld_melding_start_key").Value;
var show_attach = oRs("mld_workflowstep_attachments").Value;
var cur_step_key = oRs("mld_workflowstep_key").Value;
if (show_attach > 0)
{
if (show_attach == 2)
{
var pkeylist = {};
workflowchain_reverse(start_key, cur_step_key, pkeylist); // pkeylist is een object en dus by-reference parameter
for (mkey in pkeylist)
{
parent_list.push ( { label: pkeylist[mkey]
, module: "MLD"
, key: mkey
}
);
}
}
else
{
if (show_attach == 1)
{
var sql_a = "SELECT mld_melding_key"
+ " FROM mld_melding"
+ " WHERE mld_melding_key = " + start_key
+ " AND mld_melding_key <> " + p_mld_key;
}
else if (show_attach == 3)
{
var sql_a = "SELECT mld_melding_key"
+ " FROM mld_melding"
+ " WHERE mld_melding_start_key = " + start_key
+ " AND mld_melding_key <> " + p_mld_key;
}
var oRs_a = Oracle.Execute(sql_a);
while (!oRs_a.eof)
{
parent_list.push ( { label: set_label(oRs_a("mld_melding_key").Value)
, module: "MLD"
, key: oRs_a("mld_melding_key").Value
}
);
oRs_a.MoveNext();
}
oRs_a.Close();
}
}
}
oRs.Close();
}
return parent_list;
},
notifyprio:
function (mld_key, prio)
{ // Notify relevant to prio;
@@ -4411,7 +4521,6 @@ mld = {
mresult.canStdmChange = (mresult_vakg.canWrite("WEB_MLDBOF") || mresult_vakg.canWrite("WEB_MLDBO3")) && !is_wf_root
mresult.canDeptChange = (mresult.canWrite("WEB_MLDBOF") || mresult.canWrite("WEB_MLDBO3") || mresult.canFEwrite);
mresult.canKostChange = (mresult.canWrite("WEB_MLDBOF") || mresult.canWrite("WEB_MLDBO3") || mresult.canFEwrite);
mresult.canFlexChange = (mresult.canWrite("WEB_MLDBOF") || mresult.canWrite("WEB_MLDBO3") || (mresult.canWrite("WEB_MLDFOF") && S("mld_fof_canFlexChange")));
mresult.canPlaatsChange = (mresult.canWrite("WEB_MLDBOF") || mresult.canWrite("WEB_MLDBO3"));
mresult.canAflChange = (mresult.canWrite("WEB_MLDBOF") || mresult.canWrite("WEB_MLDBO3"));
// Alleen BO/FO kan melding aanpassen. FE toevoegen voor canPrioChange heeft geen zin.

View File

@@ -118,94 +118,7 @@ var fwdInfo = mld.getFwdType(mld_key, this_mld, mld_melding);
function gen_flex() // ik weet nog niet waar
{
var parent_list = []; // Ook knoppen met bijlagen van de 'parent'-chain
if (S("mld_show_parent_attachments"))
{
var skey = mld_melding.Startkey;
var mkey = mld_key;
var sql = "SELECT mld_workflowstep_attachments"
+ " , m.mld_workflowstep_key"
+ " FROM mld_melding m, mld_workflowstep w"
+ " WHERE m.mld_melding_key = " + mkey
+ " AND m.mld_workflowstep_key = w.mld_workflowstep_key";
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
var show_attach = oRs("mld_workflowstep_attachments").Value
var cur_step_key = oRs("mld_workflowstep_key").Value;
// mld_workflowstep_attachments = 0 : own, kenmerken worden meegenomen door de eigen mld_key.
if (show_attach >= 1) // 1= own + root call 2= all previous 3=complete
{
if (show_attach == 1 || show_attach == 3)
{
if (show_attach == 1) // own + root call
{
var sql_a = "SELECT mld_melding_key"
+ " FROM mld_melding"
+ " WHERE mld_melding_key = " + skey
+ " AND mld_melding_key <> " + mkey;
}
else if (show_attach == 3) // complete
{
var sql_a = "SELECT mld_melding_key"
+ " FROM mld_melding"
+ " WHERE mld_melding_start_key = " + skey
+ " AND mld_melding_key <> " + mkey;
}
var oRs_a = Oracle.Execute(sql_a);
while (!oRs_a.eof)
{
parent_list.push ( { label: mld.mld_prefix(oRs_a("mld_melding_key").Value)+oRs_a("mld_melding_key").Value + " ({0})",
module: "MLD",
key: oRs_a("mld_melding_key").Value
}
);
oRs_a.MoveNext();
}
oRs_a.Close();
}
else // mld_workflowstep_attachments == 2 // all in chain
{
function workflowchain_reverse(start_key, current_workflowstep_key, pkeylist)
{
// Doorloop directe voorgangers van current_workflowstep_key
var sql_b = "SELECT m.mld_melding_key"
+ " , r.mld_workflowstep_key previous_step"
+ " FROM mld_melding m"
+ " , mld_workflowrule r"
+ " WHERE m.mld_workflowstep_key = r.mld_workflowstep_key"
+ " AND m.mld_melding_start_key = " + start_key
+ " AND r.mld_workflowstep_next_key = " + current_workflowstep_key;
var oRs_b = Oracle.Execute(sql_b);
while (!oRs_b.EOF)
{
var mkey = oRs_b("mld_melding_key").Value;
if (!(mkey in pkeylist))
{
pkeylist[mkey] = mld.mld_prefix(mkey) + mkey + " ({0})";
workflowchain_reverse(skey, oRs_b("previous_step").Value, pkeylist);
}
oRs_b.MoveNext();
}
oRs_b.Close();
}
var pkeylist = {};
workflowchain_reverse(skey, cur_step_key, pkeylist); // pkeylist is een object en dus by-reference parameter
for (mkey in pkeylist)
{
parent_list.push ( { label: pkeylist[mkey]
, module: "MLD"
, key: mkey
}
);
}
}
}
}
oRs.Close();
}
var parent_list = mld.executedworkflowsteps(mld_key);
generateFlexKenmerkBlock({stdm_arr : [mld_melding.stdm],
mld_key : mld_key,
parent_list : parent_list,

View File

@@ -30,10 +30,6 @@ function mldClose(sluitmelding, ingesloten)
if (sluitmelding == 1)
{
var mld_close = (Request.Form("mld_close").count == 1); // Die ook?
var ismobile = getFParamInt("ismobile", 0) == 1; // Meld ik de opdracht met mijn mobile af?
if (ismobile)
sluitmelding = 2; // // Via mobile afmelden nooit vragen maar gewoon melding afmelden (FSN#26329).
if (ingesloten.length > 1) // Vraag is al geweest
{

View File

@@ -23,6 +23,10 @@ var urole = getQParamSafe("urole");
var has_opdrXUit = getQParamInt("has_opdrXUit", 0) == 1; // Wordt er gefilterd?
var internuit = getQParamInt("opdrIUit", (has_opdrXUit ? 0 : 1)) == 1; // Interne uitvoerders.
var externuit = getQParamInt("opdrEUit", (has_opdrXUit ? 0 : 1)) == 1; // Externe uitvoerders.
// Beperken tot geplande of ongeplande? Standaard niet, beide tonen
var has_opdrPlan = getQParamInt("has_opdrPlan", 0) == 1; // Wordt er gefilterd?
var opdrplanned = getQParamInt("opdrPlanned", (has_opdrPlan ? 0 : 1)) == 1; // Geplande opdrachten
var opdrunplanned = getQParamInt("opdrUnplanned", (has_opdrPlan ? 0 : 1)) == 1; // Ongeplande opdrachten
// let op: geen parameter moet equivalent zijn met een null parameter (NIET -1 oid)!
var theparams = { urole: urole,
@@ -53,6 +57,8 @@ var theparams = { urole: urole,
handler_key: getQParamInt("handler", null),
internuit: internuit,
externuit: externuit,
opdrplanned: opdrplanned,
opdrunplanned: opdrunplanned,
typeopdr_key: getQParamInt("typeopdr_key", null),
stpen: getQParamInt("stpen", 0) == 1,
strej: getQParamInt("strej", 0) == 1,

View File

@@ -57,6 +57,8 @@ var urole = getQParamSafe("urole", "");
var caddwgx = getQParamFloat("caddwgx", null); // x co<63>rdinaat van een specifieke plek in de ruimte die gehighlight moet worden.
var caddwgy = getQParamFloat("caddwgy", null); // y co<63>rdinaat van een specifieke plek in de ruimte die gehighlight moet worden.
var opdr_opm = getFParam("opdr_opm", "");
var mld_info = {};
var plaats_key = -1;
var plaats_niveau = "";
@@ -535,44 +537,44 @@ else
return false;
};
<% } %>
// Drie modes
// 1) Dubbele melding van een moedermelding aanmaken (opnieuw laden van save asp met parent_key, maar niet meer controleren op double) [1]
// 2) Nieuwe melding aanmaken (opnieuw laden van save asp, maar niet meer controleren op double) [2]
// 3) Geen melding aanmaken, gewoon terug. [cancel]
function mldDoubleCallback(data, text)
{
if (data.mode == 2) // Eigen melding gewenst
{
iface.button.disable("btn_mld_submit"); // Disable de "Opslaan" button zodat niet nog een keer gesubmit kan worden.
$("#forcesave").val(1);
$.post($("form[name=meld]")[0].action, $("form[name=meld]").serialize(), McltCallbackAndThenAlways(mld_submit_callback), "json"); // Nu definitief
}
else if (data.mode == 1) // Geklikt op een gelijksoortige melding
{
$("#parent_key").val(data.parent_key);
$("#forcesave").val(1);
$.post($("form[name=meld]")[0].action, $("form[name=meld]").serialize(), McltCallbackAndThenAlways(mld_submit_callback), "json"); // Nu definitief
}
else
{
$("form", "#mdbl").html(data).trigger('create');
$.mobile.changePage("#mdbl");
}
}
function askdoubleCallback(data, text)
{
if (data.child) // 'Koppelen' gekozen
{
iface.button.disable("btn_mld_submit"); // Disable de "Opslaan" button zodat niet nog een keer gesubmit kan worden.
$("#parent_key").val(data.parent_key);
$("#forcesave").val(1);
$.post($("form[name=u2]")[0].action, $("[name=u2]").serialize(), mld_submit_callback, "json"); // Nu definitief
}
else
{ // Geen melding aanmaken
FcltMgr.closeDetail(window, {cancel: true});
}
}
// Drie modes
// 1) Dubbele melding van een moedermelding aanmaken (opnieuw laden van save asp met parent_key, maar niet meer controleren op double) [1]
// 2) Nieuwe melding aanmaken (opnieuw laden van save asp, maar niet meer controleren op double) [2]
// 3) Geen melding aanmaken, gewoon terug. [cancel]
function mldDoubleCallback(data, text)
{
if (data.mode == 2) // Eigen melding gewenst
{
iface.button.disable("btn_mld_submit"); // Disable de "Opslaan" button zodat niet nog een keer gesubmit kan worden.
$("#forcesave").val(1);
$.post($("form[name=meld]")[0].action, $("form[name=meld]").serialize(), McltCallbackAndThenAlways(mld_submit_callback), "json"); // Nu definitief
}
else if (data.mode == 1) // Geklikt op een gelijksoortige melding
{
$("#parent_key").val(data.parent_key);
$("#forcesave").val(1);
$.post($("form[name=meld]")[0].action, $("form[name=meld]").serialize(), McltCallbackAndThenAlways(mld_submit_callback), "json"); // Nu definitief
}
else
{
$("form", "#mdbl").html(data).trigger('create');
$.mobile.changePage("#mdbl");
}
}
function askdoubleCallback(data, text)
{
if (data.child) // 'Koppelen' gekozen
{
iface.button.disable("btn_mld_submit"); // Disable de "Opslaan" button zodat niet nog een keer gesubmit kan worden.
$("#parent_key").val(data.parent_key);
$("#forcesave").val(1);
$.post($("form[name=u2]")[0].action, $("[name=u2]").serialize(), mld_submit_callback, "json"); // Nu definitief
}
else
{ // Geen melding aanmaken
FcltMgr.closeDetail(window, {cancel: true});
}
}
function mld_submit_callback(json)
{
if (json.doublecheck)
@@ -767,7 +769,17 @@ function askdoubleCallback(data, text)
sgDept.setValue(data.prs_afdeling_key, data.prs_afdeling_naam, true, true, null, true);
}
}
function mld_opmpaste()
{
$("#opmerk_close").focus();
$("#opmerk_close").val($("#opmerk_close").val() + ($("#opmerk_close").val() != ""? "\n" : "") + "<%=safe.jsstring(opdr_opm)%>");
$("#opmpaste").css("visibility", "hidden"); // Button na invoegen opmerking onzichtbaar maken zodat geen tweede keer toegevoegd kan worden.
}
$(function() {
<% if (opdr_opm != "" && S("mld_add_mldopmerk_on_opdrclose") == 1)
{ %>
mld_opmpaste();
<% } %>
<% if (mld_info.melder_key != user_key) { %>
$("[name='note']").focus(function() {
$("#quickNoteTip").fadeIn();
@@ -782,77 +794,77 @@ function askdoubleCallback(data, text)
recalcEinddatum(false);
});
});
var mld_key = <%=mld_key%>;
function recalcEinddatum(recalc_always)
{
var recalc_always = (recalc_always === undefined ? true : recalc_always);
// Er zijn twee situaties te onderscheiden:
// 1) Startdatum is zichtbaar/wijzigbaar,
// De tijd van de startdatum is altijd de begintijd van de dag (setting "fac_t_startofworkday" bijvoorbeeld 8:00 uur)
// => Startdatum = TRUNC(startdatum) + 8:00 uur
// => Einddatum = TRUNC(startdatum) + 8:00 uur + SLA
// LET OP!!!: Als je deze setting zet dan wordt eigenlijk verondersteld dat de SLA in dagen is en niet in uren.
// Echter als de startdatum vandaag is moet wel voor de begintijd de huidige sysdate tijd genomen worden tijdens het opslaan.
// Anders geldt de acceptatietijd (in uren) onterecht al vanaf het begin van de dag.
// Voor het bepalen/berekenen van de einddatum laten de startdatum gewoon aan het begin van de dag beginnen.
// 2) Startdatum is niet zichtbaar/wijzigbaar
// De tijd van de startdatum is de tijd van de huidige waarde of van de sysdate, COALESCE(huidige waarde, sysdate).
// => Startdatum = COALESCE(huidige waarde, sysdate)
// => Einddatum = COALESCE(huidige waarde, sysdate) + SLA
// Of de startdatum wel of niet zichtbaar/wijzigbaar is, is in te stellen bij vakgroep door de setting "Startdatum te bepalen" (mld_disc_params_startdatum)
var mld_key = <%=mld_key%>;
function recalcEinddatum(recalc_always)
{
var recalc_always = (recalc_always === undefined ? true : recalc_always);
// Er zijn twee situaties te onderscheiden:
// 1) Startdatum is zichtbaar/wijzigbaar,
// De tijd van de startdatum is altijd de begintijd van de dag (setting "fac_t_startofworkday" bijvoorbeeld 8:00 uur)
// => Startdatum = TRUNC(startdatum) + 8:00 uur
// => Einddatum = TRUNC(startdatum) + 8:00 uur + SLA
// LET OP!!!: Als je deze setting zet dan wordt eigenlijk verondersteld dat de SLA in dagen is en niet in uren.
// Echter als de startdatum vandaag is moet wel voor de begintijd de huidige sysdate tijd genomen worden tijdens het opslaan.
// Anders geldt de acceptatietijd (in uren) onterecht al vanaf het begin van de dag.
// Voor het bepalen/berekenen van de einddatum laten de startdatum gewoon aan het begin van de dag beginnen.
// 2) Startdatum is niet zichtbaar/wijzigbaar
// De tijd van de startdatum is de tijd van de huidige waarde of van de sysdate, COALESCE(huidige waarde, sysdate).
// => Startdatum = COALESCE(huidige waarde, sysdate)
// => Einddatum = COALESCE(huidige waarde, sysdate) + SLA
// Of de startdatum wel of niet zichtbaar/wijzigbaar is, is in te stellen bij vakgroep door de setting "Startdatum te bepalen" (mld_disc_params_startdatum)
var startdate = new Date(parseInt($("#startdate").val(),10));
var sysdate = new Date();
var startdate = new Date(parseInt($("#startdate").val(),10));
var sysdate = new Date();
var startOfWorkDay = <%=safe.jsfloat(S("fac_t_startofworkday"))%>;
var startwerkdag_uur = Math.floor(startOfWorkDay);
var startwerkdag_min = (startOfWorkDay - Math.floor(startOfWorkDay)) * 60;
var startdatebegin = new Date(startdate.getFullYear(), startdate.getMonth(), startdate.getDate(), startwerkdag_uur, startwerkdag_min);
var startOfWorkDay = <%=safe.jsfloat(S("fac_t_startofworkday"))%>;
var startwerkdag_uur = Math.floor(startOfWorkDay);
var startwerkdag_min = (startOfWorkDay - Math.floor(startOfWorkDay)) * 60;
var startdatebegin = new Date(startdate.getFullYear(), startdate.getMonth(), startdate.getDate(), startwerkdag_uur, startwerkdag_min);
if ("<%=stdm_info.startdatum%>" == "1")
{ // Situatie 1: Einddatum = TRUNC(startdatum) + 8:00 uur + SLA
// LET OP!!!: Als setting "mld_disc_params_startdatum" is gezet dan wordt eigenlijk verondersteld dat de SLA in dagen is en niet in uren.
// Echter als de startdatum vandaag is moet wel voor de begintijd de huidige sysdate tijd genomen worden tijdens het opslaan.
// Anders geldt de acceptatietijd (in uren) onterecht al vanaf het begin van de dag.
// Voor het bepalen/berekenen van de einddatum laten de startdatum gewoon aan het begin van de dag beginnen.
var startdate_is_today = (startdate.midnight().getTime() == sysdate.midnight().getTime());
startdatum = (startdate_is_today? sysdate.getTime() : startdatebegin.getTime());
}
else
{ // Situatie 2: Einddatum = COALESCE(huidige waarde, sysdate) + SLA
if (mld_key < 0)
var startdatum = sysdate.getTime(); // Nieuwe melding, nu/sysdate
else
var startdatum = startdate.getTime(); // Wijziging melding, huidige opgeslagen waarde
}
if ("<%=stdm_info.startdatum%>" == "1")
{ // Situatie 1: Einddatum = TRUNC(startdatum) + 8:00 uur + SLA
// LET OP!!!: Als setting "mld_disc_params_startdatum" is gezet dan wordt eigenlijk verondersteld dat de SLA in dagen is en niet in uren.
// Echter als de startdatum vandaag is moet wel voor de begintijd de huidige sysdate tijd genomen worden tijdens het opslaan.
// Anders geldt de acceptatietijd (in uren) onterecht al vanaf het begin van de dag.
// Voor het bepalen/berekenen van de einddatum laten de startdatum gewoon aan het begin van de dag beginnen.
var startdate_is_today = (startdate.midnight().getTime() == sysdate.midnight().getTime());
startdatum = (startdate_is_today? sysdate.getTime() : startdatebegin.getTime());
}
else
{ // Situatie 2: Einddatum = COALESCE(huidige waarde, sysdate) + SLA
if (mld_key < 0)
var startdatum = sysdate.getTime(); // Nieuwe melding, nu/sysdate
else
var startdatum = startdate.getTime(); // Wijziging melding, huidige opgeslagen waarde
}
var stdm_key = <%=stdm_key%>;
var prio = "<%=mld_info.mprio%>" || 3;
var geb_key = $('#gebouwkey').val();
var rui_key = $('#ruimtekey').val();
var stdm_key = <%=stdm_key%>;
var prio = "<%=mld_info.mprio%>" || 3;
var geb_key = $('#gebouwkey').val();
var rui_key = $('#ruimtekey').val();
// Mobile only has 1 object max
var ins_key = $("#r_objs").val() || -1;
// Mobile only has 1 object max
var ins_key = $("#r_objs").val() || -1;
if (!$("#r_objs").length || ($("#r_objs").length && ins_key != -1 && !recalc_always) || recalc_always) // Alleen opnieuw de eindtijd bepalen als er een object met uitvoertijd is.
{
// daarmee kan ik de database de einddatum laten bepalen
var params = { req_info: "calc_einddatum",
startdatum: startdatum,
srtdisc: <%=mld_info.srtdisc%>,
disc: <%=mld_info.disc%>,
stdm_key: stdm_key,
prio: prio,
geb_key: geb_key,
rui_key: rui_key,
ins_key: ins_key
};
if (!$("#r_objs").length || ($("#r_objs").length && ins_key != -1 && !recalc_always) || recalc_always) // Alleen opnieuw de eindtijd bepalen als er een object met uitvoertijd is.
{
// daarmee kan ik de database de einddatum laten bepalen
var params = { req_info: "calc_einddatum",
startdatum: startdatum,
srtdisc: <%=mld_info.srtdisc%>,
disc: <%=mld_info.disc%>,
stdm_key: stdm_key,
prio: prio,
geb_key: geb_key,
rui_key: rui_key,
ins_key: ins_key
};
$.getJSON("<%=rooturl%>/appl/mld/get_mld_info_ajax.asp",
params,
setInitEinddatum);
}
}
$.getJSON("<%=rooturl%>/appl/mld/get_mld_info_ajax.asp",
params,
setInitEinddatum);
}
}
</script>
</head>
<body>
@@ -1883,6 +1895,8 @@ if (mld_key > -1 && this_mld.canClose && action != "forward")
});
CONTROLGROUP_START();
if (opdr_opm != "")
BUTTON(L("lcl_mld_opm_paste"), {id: "opmpaste", click: "mld_opmpaste();", dataicon: "fa-clipboard"});
BUTTON(L("lcl_close"), {click: "mld_close_submit();", dataicon: "fa fa-flag-checkered"});
BUTTON(L("lcl_cancel"), {datarel: "back", dataicon: "fa-fclt-cancel"} );
CONTROLGROUP_END();

View File

@@ -41,6 +41,34 @@ var quicknoteSetting = S("pda_order_quick_note");
var activeopdr = mld.getactiveopdracht(opdr_key);
var hltopdr = mld.gethltopdrachten(opdr_key);
var askclosemld = false;
if (opdr_key > -1)
{
// Vragen om ook de melding te sluiten?
var sql = "SELECT o.mld_melding_key"
+ " , mto.mld_typeopdr_sluitmelding"
+ " FROM mld_opdr o"
+ " , mld_typeopdr mto"
+ " WHERE o.mld_typeopdr_key = mto.mld_typeopdr_key"
+ " AND o.mld_opdr_key = " + opdr_key;
var oRs = Oracle.Execute(sql);
var mldkey = oRs("mld_melding_key").Value;
var typeopdr_sluitmelding = oRs("mld_typeopdr_sluitmelding").Value;
oRs.Close();
// Hoeveel opdrachten staan er open bij deze melding.
var sql = "SELECT COUNT(mld_opdr_key) nrOpen"
+ " FROM mld_opdr o"
+ " WHERE o.mld_melding_key = " + mldkey
+ " AND o.mld_statusopdr_key NOT IN (1, 6, 7, 9)";
var oRs = Oracle.Execute(sql);
var nrOpen = oRs("nrOpen").Value;
oRs.Close();
askclosemld = (typeopdr_sluitmelding == 1 && nrOpen == 1);
}
// Zijn bij deze opdracht alle verplichte kenmerken ingevuld voor het onderbreken?
var reqStatusEmptyOpdr = [];
reqStatusEmptyOpdr = mld.getActieKenmerkenOpdr(reqStatusEmptyOpdr, opdr_key, {halt: true});
@@ -506,6 +534,23 @@ oRs.close();
window.location.href = "<%=rooturl%>/appl/pda/order.asp?opdr_key=<%=opdr_key%>";
}
function MopdrCloseCallback(json, textStatus)
{
if (json.canCloseMld)
{
$("form[name=closeform]")[0].action = "<%=rooturl%>/appl/pda/melding.asp?mld_key=<%=mld_key%>#close-3-<%=mld_key%>";
var hiddenField = document.createElement('input');
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "opdr_opm");
hiddenField.setAttribute("value", json.opdr_opm);
document.forms.closeform.appendChild(hiddenField);
document.forms.closeform.submit();
}
else
window.location.href = "<%=rooturl%>/appl/pda/order.asp?opdr_key=<%=opdr_key%>";
}
function opdr_close_submit()
{
// Zelf de form-parameters zetten: PasteFromSelectbox() werkt niet als er meerdere velden met id=opdr_opm zijn
@@ -518,7 +563,7 @@ oRs.close();
$.post($("form[name=closeform]")[0].action,
data,
McltCallbackAndThen(function() { window.location.href = "<%=rooturl%>/appl/pda/order.asp?opdr_key=<%=opdr_key%>"; }),
McltCallbackAndThen(MopdrCloseCallback),
"json");
return false;
}
@@ -985,7 +1030,7 @@ oRs.close();
if (this_opdr.canClose)
{ // Afmelden
if (this_opdr.canOpmChange || hltopdr.aantal == 1)
if (this_opdr.canOpmChange || hltopdr.aantal == 1 || askclosemld)
BUTTON(L("lcl_close"), {linkid: "#opdr-4-" + opdr_key, dataicon: "fa fa-flag-checkered"});
else
BUTTON(L("lcl_close"), {click: "opdr_close()", dataicon: "fa fa-flag-checkered"});
@@ -1134,6 +1179,10 @@ if (opdr_key > -1)
RWFIELD("opdr_opm_4", L("lcl_mld_final_remark"), mld_opdr.opdr_opmerking, {multi: true});
}
if (askclosemld)
{
CHB_FIELD("mld_close", L("lcl_mld_mld_close_try"));
}
if (hltopdr.aantal == 1)
{
CHB_FIELD("mld_hlt", L("lcl_mld_opdr_cont").format(hltopdr.opdracht));

View File

@@ -704,7 +704,7 @@ for (var i = 0; i < r_a_key.length; i++)
+ " FROM res_artikel ra"
+ " WHERE ra.res_artikel_key = " + r_a_key[i].key;
var oRs = Oracle.Execute(sql);
trackarray.push(L("lcl_res_artupdate") + ": " + oRs("art_oms").Value);
trackarray.push(L("lcl_res_artupdate").format(oRs("art_oms").Value));
oRs.Close();
}
trackarray = trackarray.concat(flextrack);

View File

@@ -70,6 +70,15 @@ switch (pmodule)
case "PRS": isProfessional = xfunc.canRead("WEB_PRSSYS"); break; /* unsupported yet */
}
function inArrayElm(needle, haystack, elmname)
{ // Zoeken in een array van objecten op een waarde van een element.
var length = haystack.length;
for(var i = 0; i < length; i++) {
if(haystack[i][elmname] == needle) return true;
}
return false;
}
function bestandenlijst(pmodule, pniveau, pkey)
{ // flexfiles.inc/flexProps() niet bruikbaar omdat die niet over kenmerken heen kan zoeken
// Kan nu wel omdat de bestanden uit fac_bijlagen worden gelezen.
@@ -87,24 +96,23 @@ function bestandenlijst(pmodule, pniveau, pkey)
function bestandenlijstALL(pmodule, pniveau, pkey, pnoWorkflow)
{
var bestandlijst = bestandenlijst(pmodule, pniveau, pkey);
if (pmodule == "MLD" && pniveau == "M" && !pnoWorkflow)
if (pmodule == "MLD" && pniveau == "M" && !pnoWorkflow && S("mld_show_parent_attachments"))
{
var sk = pkey;
var mk = pkey;
while (true)
var mld_lijst = mld.executedworkflowsteps(pkey, true);
for (var i=0; i<mld_lijst.length; i++)
{
var sql = "SELECT mld_melding_start_key"
+ " FROM mld_melding"
+ " WHERE mld_melding_key = " + mk;
var oRs = Oracle.Execute(sql);
var sk = oRs("mld_melding_start_key").Value;
if (!sk || sk == mk)
break; // klaar
bestandlijst.files = bestandlijst.files.concat(bestandenlijst(pmodule, pniveau, sk).files);
mk = sk;
var sk = mld_lijst[i].key;
var mld_attachlijst = bestandenlijst(pmodule, pniveau, sk);
for (var j=0; j<mld_attachlijst.files.length; j++)
{
if ( !inArrayElm(mld_attachlijst.files[j].key, bestandlijst.files, "key") )
{
bestandlijst.files.push(mld_attachlijst.files[j]);
}
}
}
}
return bestandlijst
return bestandlijst;
}