ARAI#38181: Opdracht-uitvoeringsconsole.

svn path=/Website/trunk/; revision=33398
This commit is contained in:
Maykel Geerdink
2017-04-04 08:50:13 +00:00
parent 4b96281257
commit 3cf1989309

View File

@@ -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));
%>