Files
Facilitor/APPL/MLD/opdr_accept.asp
Maykel Geerdink ea032a0507 DJIN#35660: Rebound: Behandelaar van opdrachten bij "groepswerkwijze" kiezen/zien.
svn path=/Website/trunk/; revision=31638
2016-11-23 14:18:54 +00:00

83 lines
3.1 KiB
Plaintext

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: opdr_accept.asp
Description: Accepteren van een opdracht (door een uitvoerder)
Parameters:
opdr_key Opdrachtnummers array (keys)
*/ %>
<%
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../shared/save2db.inc" -->
<!-- #include file="mld.inc" -->
<%
/***** Get webform parameters *****/
var opdr_key_arr = getFParamIntArray("opdr_key");
var result = { message: "", success: false };
var tobeaccepted = 0;
var ingesloten = [];
// Bepaal de opdrachten in de selectie die
// ook echt geaccepteerd kunnen of mogen worden.
for (var i = 0; i < opdr_key_arr.length; i++)
{
var this_opdr = mld.func_enabled_opdracht(opdr_key_arr[i]); // wat mag ik zoal op deze opdracht
if (this_opdr.canAccept)
{
ingesloten.push(opdr_key_arr[i]);
tobeaccepted++;
}
}
user.auth_required_or_abort(tobeaccepted > 0); // We klagen niet over enkele wel en enkele niet
/***** End get webform parameters *****/
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 = [];
if (mld_opdr.uitv_type == 'B' && mld_opdr.uitv_intern && mld_opdr.contactpers_key == -1)
fields.push({ dbs: "prs_perslid_key", typ: "key", val: user_key, track: L("lcl_mld_behandelaar"), foreign: "prs_perslid" });
else if (mld_opdr.uitv_type == 'B' && !mld_opdr.uitv_intern && mld_opdr.contactpersuitv_key == null)
{ // Is de user een extern contactpersoon? Dan deze invullen als contactpersoon.
var sql = "SELECT cp.prs_contactpersoon_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE prs_perslid_key = " + user_key;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
fields.push({ dbs: "prs_contactpersoon_key", typ: "key", val: oRs("prs_contactpersoon_key").Value, track: L("lcl_contact_pers"), foreign: "prs_contactpersoon" });
oRs.Close();
}
if (fields.length > 0)
{
var mldUpd = buildTrackingUpdate("mld_opdr", "mld_opdr_key = " + ingesloten[i], fields);
if (mldUpd && mldUpd.trackarray.length)
{
Oracle.Execute(mldUpd.sql);
var ins_srtdiscipline_prefix = mld.mld_prefix(mld_opdr.mld_key);
var formattedID = ins_srtdiscipline_prefix + mld_opdr.mld_key + "/" + mld_opdr.volgnr;
mld.trackopdrachtupdate(ingesloten[i], L("lcl_ord_is_ordupdtrack").format(formattedID) + "\n" + mldUpd.trackarray.join("\n"));
}
}
lcl.set_dialect(mld_opdr.opdr_type, "MLD_TYPEOPDR_KEY");
// Zetten van de status en afhandelen van de tracking van het fiatteren (approve).
mld.setopdrachtstatus(ingesloten[i], 8); // Geaccepteerd
}
// Geen message "De opdracht PXXX/Y is geaccepteerd" meer geven (AADS#20339)
result.success = true;
Response.Write(JSON.stringify(result));
%>