ARAI#38181: Opdracht-uitvoeringsconsole.
svn path=/Website/trunk/; revision=33398
This commit is contained in:
@@ -27,48 +27,71 @@ var JSON_Result = true;
|
||||
protectRequest.validateToken();
|
||||
var uitv_key = getFParamInt("uitv_key");
|
||||
var prs_key = getFParamInt("prs_key");
|
||||
var uitv_type = getFParam("uitv_type");
|
||||
var uitv_type_dest = getFParam("uitv_type");
|
||||
var opdr_key_arr = getFParamIntArray("opdr_key_arr");
|
||||
|
||||
var tobechanged = 0;
|
||||
var ingesloten = [];
|
||||
var notcopied = [];
|
||||
var notmoved = [];
|
||||
// Bepaal de opdrachten in de selectie waarvan ook echt de behandelaar aangepast kan of mag worden.
|
||||
for (var i = 0; i < opdr_key_arr.length; i++)
|
||||
{
|
||||
var this_opdr = mld.func_enabled_opdracht(opdr_key_arr[i]); // Wat heb ik zoal aan rechten op deze specifieke opdracht
|
||||
|
||||
var mld_opdr = mld.mld_opdr_info(opdr_key_arr[i]);
|
||||
if (this_opdr.canChange)
|
||||
var uitv_type_src = "PI";
|
||||
if (mld_opdr.uitv_type == "B")
|
||||
{
|
||||
if (mld_opdr.uitv_intern)
|
||||
var uitv_type_src = "BI";
|
||||
else
|
||||
var uitv_type_src = "BE";
|
||||
}
|
||||
|
||||
var canSelectBeheerder = true;
|
||||
if (uitv_type_src == "BI" && uitv_type_dest != "BI")
|
||||
{
|
||||
var sql = "SELECT prs_perslid_key"
|
||||
+ " FROM fac_v_webgebruiker f"
|
||||
+ " , fac_functie ff"
|
||||
+ " WHERE f.fac_functie_key = ff.fac_functie_key"
|
||||
+ " AND ins_discipline_key = " + mld_opdr.dis_key // Discipline opdracht.
|
||||
+ " AND (fac_functie_code = 'WEB_MLDBOF'"
|
||||
+ " OR fac_functie_code = 'WEB_MLDBO3'"
|
||||
//+ " OR fac_functie_code = 'WEB_ORDBO2'" // Alleen bij interne bedrijven zie je ook personen met WEB_ORDBO2 rechten.
|
||||
+ " OR fac_functie_code = 'WEB_ORDBOF')"
|
||||
+ " AND f.fac_gebruiker_prs_level_write < 9"
|
||||
+ " AND f.fac_gebruiker_alg_level_write < 9"
|
||||
+ " AND prs_perslid_key = " + mld_opdr.contactpers_key // Beheerder opdracht.
|
||||
oRs = Oracle.Execute(sql);
|
||||
canSelectBeheerder = !oRs.eof;
|
||||
oRs.close();
|
||||
}
|
||||
|
||||
if (this_opdr.canChange && canSelectBeheerder)
|
||||
{
|
||||
ingesloten.push({ opdr_key: opdr_key_arr[i],
|
||||
mld_key: mld_opdr.mld_key,
|
||||
volgnr: mld_opdr.volgnr,
|
||||
srtdiscbes: mld_opdr.srtdiscbes
|
||||
});
|
||||
tobechanged++;
|
||||
}
|
||||
else
|
||||
notcopied.push(opdr_key_arr[i]);
|
||||
notmoved.push(opdr_key_arr[i]);
|
||||
}
|
||||
user.anything_todo_or_abort(tobechanged > 0); // We klagen niet over enkele wel en enkele niet
|
||||
// Altijd doorgaan en resultaat teruggeven. Ook als er geen enkele opdracht wordt verplaatst.
|
||||
//user.anything_todo_or_abort(tobechanged > 0); // We klagen niet over enkele wel en enkele niet.
|
||||
|
||||
var mld_opdr = mld.mld_opdr_info(ingesloten[0].opdr_key); // Neem voor informatie de eerste opdracht.
|
||||
// Opdrachttype van de laatst gecontroleerde opdracht is prima.
|
||||
lcl.set_dialect(mld_opdr.opdr_type, "MLD_TYPEOPDR_KEY");
|
||||
|
||||
__Log("uitv_type opdracht (source) = " + mld_opdr.uitv_type);
|
||||
__Log("uitv_intern opdracht (source) = " + mld_opdr.uitv_intern);
|
||||
|
||||
__Log("prs_key = " + prs_key);
|
||||
__Log("uitv_key = " + uitv_key);
|
||||
__Log("uitv_type = " + uitv_type);
|
||||
|
||||
//Response.End;
|
||||
|
||||
for (var i = 0; i < ingesloten.length; i++)
|
||||
{ // Zetten van de uitvoerder en/of beheerder plus het afhandelen van de tracking voor elke opdracht.
|
||||
if (uitv_type == "BI")
|
||||
if (uitv_type_dest == "BI")
|
||||
var fields = [{ dbs: "prs_perslid_key", typ: "key", val: prs_key, track: L("lcl_mld_behandelaar"), foreign: "prs_perslid" },
|
||||
{ dbs: "mld_uitvoerende_keys", typ: "key", val: uitv_key, track: ingesloten[i].srtdiscbes? L("lcl_bes_Supplier") : L("lcl_ord_company_uit"), foreign: "mld_uitvoerende" }];
|
||||
else if (uitv_type == "PI")
|
||||
else if (uitv_type_dest == "PI")
|
||||
var fields = [{ dbs: "mld_uitvoerende_keys", typ: "key", val: uitv_key, track: ingesloten[i].srtdiscbes? L("lcl_bes_Supplier") : L("lcl_ord_company_uit"), foreign: "mld_uitvoerende" }];
|
||||
|
||||
|
||||
@@ -77,12 +100,12 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
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;
|
||||
var ins_srtdiscipline_prefix = mld.mld_prefix(ingesloten[i].mld_key);
|
||||
var formattedID = ins_srtdiscipline_prefix + ingesloten[i].mld_key + "/" + ingesloten[i].volgnr;
|
||||
mld.trackopdrachtupdate(ingesloten[i].opdr_key, L("lcl_ord_is_ordupdtrack").format(formattedID) + "\n" + mldUpd.trackarray.join("\n"));
|
||||
}
|
||||
}
|
||||
|
||||
var result = { message: "", notcopied: notcopied.join(","), success: true };
|
||||
var result = { message: "", notmoved: notmoved.join(","), success: true };
|
||||
Response.Write(JSON.stringify(result));
|
||||
%>
|
||||
|
||||
Reference in New Issue
Block a user