FCLT#56050 Behandelteams in het accepteren modal v1.0

svn path=/Website/trunk/; revision=41011
This commit is contained in:
2019-02-15 16:27:26 +00:00
parent f8f1273837
commit 5f9dbf03b9
5 changed files with 165 additions and 62 deletions

View File

@@ -22,12 +22,12 @@
FCLTHeader.Requires({ plugins: ["jQuery"] });
var mld_key_arr = getQParamIntArray("mld_key");
var multi = getQParamInt("multi", 0) == 1;
var multi = getQParamInt("multi", 0) == 1;
var maybeDouble = getQParamInt("maybeDouble", 0) == 1;
var urole = getQParam("urole", "bo");
var opmerk = getFParam("opmerk", "");
var fronto = urole == "fo";
var backo = urole == "bo";
var urole = getQParam("urole", "bo");
var opmerk = getFParam("opmerk", "");
var fronto = urole == "fo";
var backo = urole == "bo";
var autfunction = "";
if (fronto)
@@ -47,8 +47,14 @@ var authparamsMLDFOF = user.checkAutorisation("WEB_MLDFOF", true);
var result = {};
var toberejected = 0;
var hasBehandelteam = 0;
var ingesloten = [];
var mixed_behandelaar = false;
var mixed_disc = false;
var mixed_srtdisc = false;
var last_behandel_key = -1;
var last_disc_key = -1;
var last_srtdisc_key = -1;
// Bepaal de meldingen in de selectie die
// ook echt geaccepteerd kunnen of mogen worden.
for (var i = 0; i < mld_key_arr.length; i++)
@@ -62,10 +68,28 @@ for (var i = 0; i < mld_key_arr.length; i++)
if (this_mld.canAccept && !mld_info.parent_key && !(multi && maybeDouble))
{
ingesloten.push(mld_key_arr[i]);
toberejected++;
hasBehandelteam += (mld_std.srtgroep & 4 ? 1 : 0);
if (!mixed_behandelaar)
{
if (last_behandel_key != -1 && last_behandel_key != mld_info.behandel_key)
mixed_behandelaar = true;
last_behandel_key = mld_info.behandel_key;
}
if (!mixed_disc)
{
if (last_disc_key != -1 && last_disc_key != mld_info.disc)
mixed_disc = true;
last_disc_key = mld_info.disc;
}
if (!mixed_srtdisc)
{
if (last_srtdisc_key != -1 && last_srtdisc_key != mld_std.ins_srtdiscipline_key)
mixed_srtdisc = true;
last_srtdisc_key = mld_std.ins_srtdiscipline_key;
}
}
}
user.anything_todo_or_abort(toberejected > 0); // We klagen niet over enkele wel en enkele niet
user.anything_todo_or_abort(ingesloten.length > 0); // We klagen niet over enkele wel en enkele niet
var mld_melding = mld.mld_melding_info(ingesloten[0]); // Neem voor informatie de eerste melding.
lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
@@ -83,6 +107,12 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
$("#opmerk").focus();
});
function onChangeBehandelgroep()
{
if (typeof sgBehandelaar2 != "undefined")
sgBehandelaar2.setValue($("#sBehandel2").val(), $("#sBehandel2_show").val(), true, true);
}
function mld_accept()
{
if (!validateForm("u2"))
@@ -108,28 +138,30 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
var prefix = "";
var mld_srtins_prefix = "";
var oldRemark = "";
var ins_srtdiscipline_key = -1;
var ins_discipline_omschrijving = "";
var mld_ins_discipline_omschrijving = "";
var mld_ins_discipline_key = -1;
var req = false;
if (ingesloten.length == 1)
{
sql = "SELECT sm.mld_ins_discipline_key"
+ " , sm.mld_stdmelding_key"
+ " , mm.mld_melding_opmerking"
+ " , m.mld_melding_opmerking"
+ " , " + lcl.xsqla('md.ins_discipline_omschrijving', 'md.ins_discipline_key')
+ " , " + lcl.xsql('md2.ins_discipline_omschrijving', 'md2.ins_discipline_key') + " mld_ins_discipline_oms"
+ " , md2.ins_discipline_key mld_ins_discipline_key"
+ " , sd.ins_srtdiscipline_key"
+ " , sd.ins_srtdiscipline_prefix"
+ " , sd2.ins_srtdiscipline_prefix mld_srtins_prefix"
+ " FROM mld_melding mm"
+ " FROM mld_melding m"
+ " , mld_stdmelding sm"
+ " , mld_discipline md"
+ " , mld_discipline md2"
+ " , ins_srtdiscipline sd"
+ " , ins_srtdiscipline sd2"
+ " WHERE mld_melding_key = " + ingesloten[0]
+ " AND mm.mld_stdmelding_key = sm.mld_stdmelding_key"
+ " AND m.mld_stdmelding_key = sm.mld_stdmelding_key"
+ " AND sm.mld_ins_discipline_key = md.ins_discipline_key"
+ " AND mm.mld_ins_discipline_key = md2.ins_discipline_key(+)"
+ " AND m.mld_ins_discipline_key = md2.ins_discipline_key(+)"
+ " AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
+ " AND md2.ins_srtdiscipline_key = sd2.ins_srtdiscipline_key(+)";
oRs = Oracle.Execute(sql);
@@ -139,22 +171,44 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
mld_srtins_prefix: oRs("mld_srtins_prefix").Value || "";
oldRemark = oRs("mld_melding_opmerking").value;
ins_discipline_omschrijving = oRs("ins_discipline_omschrijving").value;
mld_ins_discipline_omschrijving = oRs("mld_ins_discipline_oms").value;
ins_srtdiscipline_key = oRs("ins_srtdiscipline_key").value;
mld_ins_discipline_key = oRs("mld_ins_discipline_key").value;
oRs.close();
}
BLOCK_START("mldAccept", L("lcl_menu_mld_bo_accept") + (ingesloten.length == 1? " " + prefix + ingesloten[0]: ""));
// Vakgroep
RWFIELDTR("disc", "flddisc", L("lcl_vakgroup"), (ingesloten.length == 1 && prefix? prefix + "-" : "") + (ingesloten.length == 1? ins_discipline_omschrijving : ""), {readonly: true});
// ProcessingFields = behandelteam & actieve behandelaar
var showProcessingFields = hasBehandelteam == ingesloten.length // Alle meldingen hebben behandelteams
&& (!mixed_srtdisc || S("mld_processing_group_all") == 1); // Alles binnen hetzelfde vakgroeptype indien S("mld_processing_group_all") == 0
// <!-- Meldingen (Discipline) -->
FCLTstdmeldingselector("stdm", "sgStdm", {label: L("lcl_complain"),
perslidKey: user_key,
autfunctionKey: -1, // toch readonly
//srtdisc_key: srtdisc, // je mag switchen naar een andere soort TODO: Autorisatie?
stdmelding_key: (ingesloten.length == 1? mld_stdm : -1),
onChange: "onChangeStdMelding",
readonly: true } );
BLOCK_START("mldAccept", L("lcl_menu_mld_bo_accept") + (ingesloten.length == 1 ? " " + (hasBehandelteam ? mld_srtins_prefix : prefix) + ingesloten[0]: ""));
if (ingesloten.length == 1 && !hasBehandelteam) // Bij ingesloten.length > 1 toon je toch niets
{
// Vakgroep
RWFIELDTR("disc", "flddisc", L("lcl_vakgroup"), (prefix ? prefix + "-" : "") + ins_discipline_omschrijving, { readonly: true });
// <!-- Meldingen (Discipline) -->
FCLTstdmeldingselector("stdm", "sgStdm", {label: L("lcl_complain"),
perslidKey: user_key,
autfunctionKey: -1, // toch readonly
stdmelding_key: mld_stdm,
readonly: true });
}
else if (showProcessingFields)
{
// Behandelteam
FCLTdisciplineselector("mld_ins_discipline",
"sgDisc",
{ label: L("mld_processing_group"),
disc_key: (ingesloten.length == 1 ? mld_ins_discipline_key : -1),
module: "MLDB",
perslidKey: user_key,
autfunctionKey: -1, // alles is toegestaan! authparams.autfunctionkey,
srtdisc_key: (S("mld_processing_group_all") ? null : (ingesloten.length == 1 ? ins_srtdiscipline_key : last_srtdisc_key)),
onChange: "onChangeBehandelgroep",
required: false
});
}
// Behandelaar
if (this_mld.canBOwrite || this_mld.canFOwrite)
@@ -164,24 +218,47 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
<input type="hidden" id="disc_key" name="disc_key" value="<%=mld_info.disc%>">
<input type="hidden" id="loc_key" name="loc_key" value="<%=mld_info.loc_key%>">
<%
var urlAdd = [{urlParam: "prs_key", field: "prs_key", init: mld_info.melder_key},
{urlParam: "disc_key", field: "disc_key", init: mld_info.disc }];
if (!hasBehandelteam && !mixed_disc)
{
var urlAdd = [{urlParam: "prs_key", field: "prs_key", init: mld_info.melder_key},
{urlParam: "disc_key", field: "disc_key", init: mld_info.disc }];
if (mld_info.show_alg)
urlAdd.push({urlParam: "loc_key", field: "loc_key", init: mld_info.loc_key});
if (mld_info.show_alg)
urlAdd.push({urlParam: "loc_key", field: "loc_key", init: mld_info.loc_key});
FCLTpersoonselector("sBehandel",
"sgBehandelaar",
{ perslidKey: user_key,
label: L("lcl_mld_behandelaar"),
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
urlAdd: urlAdd,
required: false,
readonly: !this_mld.canAfhandChange,
filtercode: (mld_info.mld_status == 0 ? "BEHF" : "BEHB")
});
FCLTpersoonselector("sBehandel",
"sgBehandelaar",
{ perslidKey: (!mixed_behandelaar && last_behandel_key > 0 ? last_behandel_key : user_key),
label: L("lcl_mld_behandelaar"),
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
disc_key: last_disc_key, // want !mixed_disc
urlAdd: urlAdd,
required: false,
readonly: !this_mld.canAfhandChange,
filtercode: (mld_info.mld_status == 0 ? "BEHF" : "BEHB")
});
}
if (showProcessingFields)
{
var urlAdd2 = [{urlParam: "prs_key", field: "prs_key", init: mld_info.melder_key},
{urlParam: "disc_key", field: "mld_ins_discipline", init: mld_info.mld_ins_discipline_key}];
if (mld_melding.show_alg)
urlAdd2.push({urlParam: "loc_key", field: "loc_key", init: mld_info.loc_key});
FCLTpersoonselector("sBehandel2",
"sgBehandelaar",
{ idadd: 2,
label: L("lcl_mld_processor"),
autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel,
urlAdd: urlAdd2,
required: false,
readonly: !this_mld.canAfhandChange,
filtercode: (mld_info.mld_status == 0 ? "BH2F" : "BH2B")
});
}
}
// Reden accepteren
%>
<tr><td class="label"><label></label></td>

View File

@@ -39,8 +39,12 @@ var multi = getFParamInt("multi", 0) == 1;
var maybeDouble = getFParamInt("maybeDouble", 0) == 1;
var urole = getFParam("urole", "bo");
var behandelaar_key = getFParamInt("sBehandel", user_key);
var mld_ins_discipline_key = getFParamInt("mld_ins_discipline", -1);
var behandelaar2_key = getFParamInt("sBehandel2", -1);
var opmerk = getFParam("opmerk", "");
var behandelaar_key = getFParamInt("sBehandel", user_key);
// Geen autfunction bepaald. Je komt bij FIN niet binnen met een bepaalde rol (urole).
// Alleen PRSreadlevel en PRSwritelevel van belang want fac_functie_min_level = 7 (lezen en schrijven organisatie)
@@ -49,7 +53,6 @@ var authparamsMLDBO3 = user.checkAutorisation("WEB_MLDBO3", true);
var authparamsMLDFOF = user.checkAutorisation("WEB_MLDFOF", true);
var result = {};
var toberejected = 0;
var ingesloten = [];
// Bepaal de meldingen in de selectie die
// ook echt geaccepteerd kunnen of mogen worden.
@@ -57,7 +60,7 @@ for (var i = 0; i < mld_key_arr.length; i++)
{
var this_mld = mld.func_enabled_melding(mld_key_arr[i]); // Wat heb ik zoal aan rechten op deze specifieke melding
var mld_info = mld.mld_melding_info(mld_key_arr[i]);
var mld_std = mld.mld_stdmeldinginfo(mld_info.stdm);
var mld_std = mld.mld_stdmeldinginfo(mld_info.stdm);
var maybeDouble = (!mld_info.parent_key && (mld_std.doublecheck == 2 || mld_std.doublecheck == 3));
// Geen child melding en bulk actie mag de maybeDouble meldingen niet op geaccepteerd zetten
@@ -65,13 +68,15 @@ for (var i = 0; i < mld_key_arr.length; i++)
{
// Als je niet accepteert met MLDBO3 rechten en je hebt niet de BO3 notificatie aanstaan dan de behandelaar opslaan.
// BO notificatie accept 0=niet, 1=bof, 2=bo3, 3=bo3 (aanmaak nieuwe melding) en dan bof (accepteren melding)
ingesloten.push({mld_key: mld_key_arr[i],
saveBehandelaar: !this_mld.canWrite("WEB_MLDBO3") && mld_info.bonotify < 2 && (mld_info.behandel_key || -1) != behandelaar_key // Behandelaar alleen in situatie 1 voor bonotify 0 (niet) en 1 (bof) tracken.
ingesloten.push({ mld_key: mld_key_arr[i],
saveBehandelaar: !this_mld.canWrite("WEB_MLDBO3") && mld_info.bonotify < 2 && (((mld_info.behandel_key || -1) != behandelaar_key && hasFParam("sBehandel")) // Behandelaar alleen in situatie 1 voor bonotify 0 (niet) en 1 (bof) tracken.
|| ((mld_info.behandel_key || -1) == -1 && !hasFParam("sBehandel"))), // Bij accepteren van meldingen van vakgroepen met behandelteams: onzichtbaar onaangeroerd laten of vullen met de Acceptator
saveBehandelaar2: !this_mld.canWrite("WEB_MLDBO3") && mld_info.bonotify < 2 && mld_ins_discipline_key != -1 && behandelaar2_key != -1 && (mld_info.behandel2_key || -1) != behandelaar2_key,
saveBehandelteam: mld_ins_discipline_key != -1 && (mld_info.mld_ins_discipline_key || -1) != mld_ins_discipline_key
});
toberejected++;
}
}
user.anything_todo_or_abort(toberejected > 0); // We klagen niet over enkele wel en enkele niet
user.anything_todo_or_abort(ingesloten.length > 0); // We klagen niet over enkele wel en enkele niet
for (var i = 0; i < ingesloten.length; i++)
{
@@ -82,9 +87,13 @@ for (var i = 0; i < ingesloten.length; i++)
var mld_opm = oRs("mld_melding_opmerking").value||"";
oRs.Close();
var setLines = [];
if (ingesloten[i].saveBehandelaar)
setLines.push("mld_melding_behandelaar_key = " + (behandelaar_key != -1 ? behandelaar_key : "null"));
if (ingesloten[i].saveBehandelteam)
setLines.push("mld_ins_discipline_key = " + mld_ins_discipline_key);
if (ingesloten[i].saveBehandelaar2)
setLines.push("mld_melding_behandelaar2_key = " + behandelaar2_key);
if (opmerk)
{
if (S("mld_note_mode") == 2)
@@ -124,7 +133,23 @@ for (var i = 0; i < ingesloten.length; i++)
// Alleen als behandelaar is opgeslagen dit tracken.
// Als behandelaar_key==user_key dan wel tracking maar geen notificatie
if (ingesloten[i].saveBehandelaar)
mld.trackbehandelaar(ingesloten[i].mld_key, behandelaar_key, behandelaar_key == user_key);
mld.trackbehandelaar(ingesloten[i].mld_key, behandelaar_key, behandelaar_key == user_key);
if (ingesloten[i].saveBehandelaar2)
mld.trackbehandelaar(ingesloten[i].mld_key, behandelaar2_key, behandelaar2_key == user_key);
if (ingesloten[i].saveBehandelteam)
{
var sql = "SELECT ins_discipline_omschrijving"
+ " FROM mld_discipline"
+ " WHERE ins_discipline_key = " + mld_ins_discipline_key;
var loRs = Oracle.Execute(sql);
if ( !loRs.eof )
var behandelteam_str = L("lcl_mld_is_mldbhg_to") + loRs("ins_discipline_omschrijving").Value;
else
var behandelteam_str = L("lcl_mld_is_mldbhg_none");
loRs.close();
shared.trackaction("MLDBHG", ingesloten[i].mld_key, behandelteam_str);
mld.notifybehandelgroep(ingesloten[i].mld_key, mld_ins_discipline_key);
}
}
var result = {success: true, message: "", key: mld_key_arr.join(",")};

View File

@@ -879,7 +879,7 @@ function process_stdm_info(data, stdmChanged) // stdmChanged is optioneel.
if (stdmChanged) // Alleen bij nieuwe meldingen met een gekozen melding (stdmelding) en bij wijzigen van de melding (stdmelding)
{
// Verifi<66>ren dat Vakgroep mag escaleren naar Behandelgroep (srtgroep & 1)
// Verifi<66>ren dat Vakgroep mag escaleren naar Behandelgroep (srtgroep & 4)
$.getJSON("./get_mld_info_ajax.asp",
{ req_info: "mld_ins_discipline",
stdm_ins_discipline_key: stdm_info.ins_discipline_key,

View File

@@ -47,13 +47,12 @@ function getSql(chars, params, extracode)
var filtClause = getFiltClauseDiscipline(filtcode, params);
var extraInf = getExtraInfDiscipline(extracode);
return "SELECT DISTINCT td.ins_discipline_key"
+ ", CASE "
+ " WHEN sd.ins_srtdiscipline_prefix IS NULL"
+ " THEN ''"
+ " ELSE sd.ins_srtdiscipline_prefix || '-'"
+ " END || " + lcl.xsql('td.ins_discipline_omschrijving', 'td.ins_discipline_key') + " discipline"
+ ", " + lcl.xsqla('sd.ins_srtdiscipline_omschrijving', 'sd.ins_srtdiscipline_key')
return "SELECT DISTINCT td.ins_discipline_key, "
+ (params.srtdisc_key > 0
? ""
: "NVL2(sd.ins_srtdiscipline_prefix, sd.ins_srtdiscipline_prefix || '-', '') || ")
+ lcl.xsql('td.ins_discipline_omschrijving', 'td.ins_discipline_key') + " discipline"
+ ", " + lcl.xsqla('sd.ins_srtdiscipline_omschrijving', 'sd.ins_srtdiscipline_key')
+ extraInf.selectstr
+ " FROM ins_tab_discipline td"
+ ", ins_srtdiscipline sd"

View File

@@ -87,9 +87,11 @@ function FCLTdisciplineselector(fieldName, objectName, params)
// Als er maar 1 vakgroep is, dan deze selecteren.
if (oRs("aantal").value == 1)
{
sql = "SELECT td.ins_discipline_key"
+ ", NVL2(sd.ins_srtdiscipline_prefix, sd.ins_srtdiscipline_prefix || '-', '') "
+ " || " + lcl.xsql('td.ins_discipline_omschrijving', 'td.ins_discipline_key') + " disciplineomschr"
sql = "SELECT td.ins_discipline_key, "
+ (params.srtdisc_key > 0
? ""
: "NVL2(sd.ins_srtdiscipline_prefix, sd.ins_srtdiscipline_prefix || '-', '') || ")
+ lcl.xsql('td.ins_discipline_omschrijving', 'td.ins_discipline_key') + " disciplineomschr"
+ extraInf.selectstr
+ " FROM ins_tab_discipline td"
+ ", ins_srtdiscipline sd"
@@ -187,7 +189,7 @@ function FCLTdisciplineselector(fieldName, objectName, params)
<% } %>
});
<% if (params.moreinfo && S("faq_enabled") == 1)
<% if (params.moreinfo && S("faq_enabled") == 1 && params.module != "MLDB")
{ %>
disciplineselector =
{