Files
Facilitor/APPL/MLD/mld_reopen_save.asp
Jos Groot Lipman 7044766a35 Merge 2023.2 Gold A changes
svn path=/Website/trunk/; revision=61246
2023-07-19 15:49:47 +00:00

96 lines
3.5 KiB
Plaintext

<%@language = "javascript" %>
<%
/* $Revision$
$Id$
File: mld_reopen_save.asp
Description: Save_script van mld_reopen.asp
Parameters: mld_key
Context:
Note:
*/
%>
<%
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="mld.inc" -->
<!-- #include file="mld_edit_note.inc" -->
<%
protectRequest.validateToken();
var mld_key = getQParamInt("mld_key");
var opmerk = getFParam("opmerk", "");
var result = {};
// Bepaal of de melding heropend kan of mag worden.
var this_mld = mld.func_enabled_melding(mld_key); // Wat heb ik zoal aan rechten op deze specifieke melding
var mld_info = mld.mld_melding_info(mld_key);
if (!this_mld.canReopen)
user.anything_todo_or_abort(false);
lcl.set_dialect(mld_info.srtdisc_key, "MLD_SRTDISCIPLINE_KEY");
if (opmerk)
{
mld_note_save(mld_key,
opmerk,
{ //isFE: false, // MGE: wordt volgens mij niet gebruikt.
zichtFE: true, /* altijd */
noValidateToken: true // validateToken wordt hierboven al gedaan.
});
}
// Er zijn alleen opdrachten met de status Afgemeld/Technisch voltooid(6), dus geen open opdrachten.
// Dan zetten we de Melding hier terug naar Geaccepteerd(4), zodat die bij de FO weer onder Inbehandeling valt.
// BLCC#79069: Niet via "mld.setmeldingstatus(mld_key, 4);" De status op 4 zetten. Anders kans dat er 2x moet worden afgemeld.
var mld_key_arr = [];
var sql = "SELECT mld_melding_key"
+ " FROM mld_melding "
+ " WHERE mld_melding_key = " + mld_key
+ " OR mld_melding_parentkey = " + mld_key; // De statussen van de childmeldingen synchroon laten lopen aan die van de parent.
oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
mld_key_arr.push(oRs("mld_melding_key").Value);
oRs.MoveNext();
}
oRs.Close();
sql = "UPDATE mld_melding"
+ " SET mld_melding_status = 4"
+ " WHERE mld_melding_key IN (" + mld_key_arr.join(",") + ")";
Oracle.Execute(sql);
// De MLDAFM trackingen omzetten in een MLDUPD tracking. De tekst (fac_srtnotificatie_oms) blijft hetzelfde.
sql = "UPDATE fac_tracking"
+ " SET fac_srtnotificatie_key = ((SELECT fac_srtnotificatie_key"
+ " FROM fac_srtnotificatie tr"
+ " WHERE fac_srtnotificatie_code = 'MLDUPD'))"
+ " , fac_tracking_oms = lcl.l('lcl_mld_is_mldafm')"
+ " WHERE fac_tracking_refkey IN (" + mld_key_arr.join(",") + ")"
+ " AND fac_srtnotificatie_key = ((SELECT sn.fac_srtnotificatie_key"
+ " FROM fac_srtnotificatie sn"
+ " WHERE sn.fac_srtnotificatie_code = 'MLDAFM'))";
Oracle.Execute(sql);
// Een extra heropenen tracking toevoegen.
for (var i = 0; i < mld_key_arr.length; i++)
mld.trackmeldingupdate(mld_key_arr[i], L("lcl_mld_reopen_done"));
// Indien het heropenen niet goed is gegaan, dan een warning geven. Alleen de parent controleren.
sql = "SELECT ''"
+ " FROM mld_melding"
+ " WHERE mld_melding_key = " + mld_key_arr[0]
+ " AND mld_melding_status = 4";
oRs = Oracle.Execute(sql);
if (oRs.eof)
var warning = L("lcl_mld_reopen_failed");
oRs.Close();
var result = { success: true, warning: warning, mld_key: mld_key };
Response.Write(JSON.stringify(result));
%><% ASPPAGE_END(); %>