133 lines
5.7 KiB
Plaintext
133 lines
5.7 KiB
Plaintext
<%@language = "javascript" %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
Accepteer een melding door FO (alleen direct na invoer) of BO (vanuit lijst of expliciet)
|
|
Zet de huidige user (die kennelijk dus een behandelaar kan zijn) direct als de behandelaar.
|
|
Deze eerste behandelaar wordt vooralsnog niet expliciet getrackt, dat wordt geimpliceerd
|
|
door het accepteren
|
|
|
|
De vakgroep (discipline) setting MLD_DISC_PARAMS_BONOTIFY geeft aan of de notificatie moeten worden verstuurd.
|
|
MLD_DISC_PARAMS_BONOTIFY: 0=niet, 1=bof, 2=bo3, 3=bo3 (aanmaak nieuwe melding) en dan bof (accepteren melding).
|
|
|
|
Sturing notificaties MLD2BO en MLD2B3 puur op basis van mld_disc_params_bonotify (Niet op de geconfigureerde WEB_MLDBO3 en WEB_MLDBOF rechten).
|
|
Notificaties: MLD2BO: Er is een nieuwe melding XXX.
|
|
MLD2B3: Voor melding XXX is uw acceptatie vereist.
|
|
| notificatie 1 | notificatie 2 |
|
|
BONOTIFY | (status Nieuw (2)) | (status Geaccepteerd (4)) | Te configureren WEB_MLDBO3 en WEB_MLDBOF rechten
|
|
0 (niet) | X | X |
|
|
1 (bof) | BOF(MLD2BO) | X | Alleen WEB_MLDBOF rechten zijn actief (niemand heeft WEB_MLDBO3 rechten).
|
|
2 (bo3) | BO3(MLD2B3) | X | Zowel de WEB_MLDBO3 als WEB_MLDBOF rechten zijn actief.
|
|
3 (bo3 en dan bof) | BO3(MLD2B3) | BOF(MLD2BO) | Zowel de WEB_MLDBO3 als WEB_MLDBOF rechten zijn actief.
|
|
|
|
*/ %>
|
|
|
|
<%
|
|
var JSON_Result = true;
|
|
%>
|
|
|
|
<!-- #include file="../Shared/common.inc" -->
|
|
<!-- #include file="../Shared/json2.js" -->
|
|
<!-- #include file="mld.inc" -->
|
|
<!-- #include file="mld_edit_note.inc" -->
|
|
<!-- #include file="../Shared/save2db.inc" -->
|
|
<%
|
|
protectRequest.validateToken();
|
|
var mld_key_arr = getFParamIntArray("mld_key");
|
|
var multi = getFParamInt("multi", 0) == 1;
|
|
var maybeDouble = getFParamInt("maybeDouble", 0) == 1;
|
|
var urole = getFParam("urole", "bo");
|
|
|
|
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)
|
|
var authparamsMLDBOF = user.checkAutorisation("WEB_MLDBOF", true);
|
|
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.
|
|
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 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
|
|
if (this_mld.canAccept && !mld_info.parent_key && !(multi && maybeDouble))
|
|
{
|
|
// 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 // Behandelaar alleen in situatie 1 voor bonotify 0 (niet) en 1 (bof) tracken.
|
|
});
|
|
toberejected++;
|
|
}
|
|
}
|
|
user.anything_todo_or_abort(toberejected > 0); // We klagen niet over enkele wel en enkele niet
|
|
|
|
for (var i = 0; i < ingesloten.length; i++)
|
|
{
|
|
sql = "SELECT mm.mld_melding_opmerking"
|
|
+ " FROM mld_melding mm"
|
|
+ " WHERE mld_melding_key = " + ingesloten[i].mld_key;
|
|
oRs = Oracle.Execute(sql);
|
|
var mld_opm = oRs("mld_melding_opmerking").value||"";
|
|
oRs.Close();
|
|
|
|
var setLines = [];
|
|
if (ingesloten[i].saveBehandelaar)
|
|
setLines.push("mld_melding_behandelaar_key = " + behandelaar_key);
|
|
if (opmerk)
|
|
{
|
|
if (S("mld_note_mode") == 2)
|
|
{
|
|
note_save(ingesloten[i].mld_key,
|
|
opmerk,
|
|
{ isFE: false,
|
|
zichtFE: true /* altijd */
|
|
});
|
|
}
|
|
else
|
|
{
|
|
setLines.push("mld_melding_opmerking = " + safe.quoted_sql(mld_opm + "\n" + opmerk));
|
|
}
|
|
}
|
|
if (setLines.length > 0)
|
|
var behsql = "UPDATE mld_melding SET " + setLines.join(", ")
|
|
+ " WHERE mld_melding_key = " + ingesloten[i].mld_key;
|
|
|
|
if (authparamsMLDBOF || authparamsMLDBO3)
|
|
{
|
|
// Zetten van de status op geaccepteerd en afhandelen van de tracking.
|
|
mld.setmeldingstatus(ingesloten[i].mld_key, 4);
|
|
// Eventueel de behandelaar of opmerking opslaan.
|
|
if (setLines.length > 0)
|
|
Oracle.Execute(behsql);
|
|
// Geen message "De melding PXXX/Y is geaccepteerd" meer geven (AADS#20339)
|
|
}
|
|
else if (authparamsMLDFOF)
|
|
{
|
|
mld.setmeldingstatus(ingesloten[i].mld_key, 0);
|
|
// Eventueel de behandelaar of opmerking opslaan.
|
|
if (setLines.length > 0)
|
|
Oracle.Execute(behsql);
|
|
}
|
|
|
|
// Alleen als behandelaar is opgeslagen dit tracken.
|
|
if (ingesloten[i].saveBehandelaar)
|
|
// Als behandelaar_key==user_key dan wel tracking maar geen notificatie
|
|
mld.trackbehandelaar(ingesloten[i].mld_key, behandelaar_key, behandelaar_key == user_key);
|
|
}
|
|
|
|
var result = {success: true, message: "", key: mld_key_arr.join(",")};
|
|
Response.Write(JSON.stringify(result));
|
|
%>
|