FZKH#91268 Optie 'Verwijderen' ontbreekt bij opdrachten onder sjabloon-melding in Facilitor

svn path=/Website/trunk/; revision=70903
This commit is contained in:
Erik Groener
2025-11-12 09:29:36 +00:00
parent e2988163dc
commit 094169cb2f
3 changed files with 102 additions and 2 deletions

69
APPL/MLD/opdr_delete.asp Normal file
View File

@@ -0,0 +1,69 @@
<%@ LANGUAGE = JavaScript %>
<% /*
$Revision$
$Id$
File: opdr_delete.asp
Status: 100%
Description: Verwijderen van een of meerdere mld_opdr regels.
Parameters:
Context: Vanuit opdr_list.js verwijderd het alleen opdrachten van een sjabloon melding.
Result: JSON object
Note:
*/
var JSON_Result = true;
%>
<!--#include file="../Shared/common.inc"-->
<!--#include file="./mld.inc"-->
<%
protectRequest.validateToken();
var mld_key = getFParamInt("mld_key", -1);
var act_key = getFParamInt("act_key", -1);
var opdr_key_arr = getFParamIntArray("opdr_key");
var authparamsMLDMGT = user.checkAutorisation("WEB_MLDMGT", true);
var this_mld = mld.func_enabled_melding(mld_key);
user.auth_required_or_abort(authparamsMLDMGT && this_mld.canFOwrite);
var ingesloten = [];
for (var i = 0; i < opdr_key_arr.length; i++)
{
var sql = "SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END geldig"
+ " FROM mld_opdr o"
+ " , mld_melding m"
+ " , fac_activiteit a"
+ " WHERE o.mld_melding_key = m.mld_melding_key"
+ " AND m.fac_activiteit_key = a.fac_activiteit_key"
+ " AND a.fac_activiteit_eenheid = 5" // Melding is een sjabloon ad-hoc melding met opdrachten.
+ " AND a.fac_activiteit_key = " + act_key
+ " AND m.mld_melding_key = " + mld_key
+ " AND o.mld_opdr_key = " + opdr_key_arr[i];
var oRs = Oracle.Execute(sql);
var geldig = (oRs("geldig").Value == 1);
oRs.Close();
user.auth_required_or_abort(geldig); // Als een van de opdrachten niet geldig is wordt er geen enkele opdracht verwijderd!
ingesloten.push(opdr_key_arr[i]);
}
var result = { success: true, deleted: true };
if (ingesloten.length > 0)
{
var sql = "DELETE FROM mld_opdr"
+ " WHERE mld_melding_key = " + mld_key
+ " AND mld_opdr_key IN (" + ingesloten.join(",") + ")";
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
{
result.success = false;
result.deleted = false;
result.message = err.friendlyMsg;
}
}
Response.Write(JSON.stringify(result));
ASPPAGE_END();
%>

View File

@@ -351,6 +351,7 @@ function opdr_list(params)
// Opdracht rechten.
var my_mldrechten = user.func_enabled("MLD");
var canWriteORDFOF = my_mldrechten.canWrite("WEB_ORDFOF");
var canWriteORDBOF = my_mldrechten.canWrite("WEB_ORDBOF");
var canReadORDBOF = my_mldrechten.canRead("WEB_ORDBOF");
var canWriteORDAFR = my_mldrechten.canWrite("WEB_ORDAFR");
@@ -447,7 +448,9 @@ function opdr_list(params)
user.isBudgethouder() ||
authparamsMLDFIN);
var data = {eAdd: eAdd, eClose: eClose, eVerwerk: eVerwerk, eCopy: eCopy, eAccept: eAccept, eFinish: eFinish, eAddFactuur: eAddFactuur, eListFactuur: eListFactuur};
var eDelete = (urole == "fo" && canWriteORDFOF ? false : true);
var data = {eAdd: eAdd, eClose: eClose, eVerwerk: eVerwerk, eCopy: eCopy, eAccept: eAccept, eFinish: eFinish, eAddFactuur: eAddFactuur, eListFactuur: eListFactuur, eDelete: eDelete};
return data;
}
@@ -965,7 +968,11 @@ function opdr_list(params)
// actions
rst.addAction({ action: "opdr_edit", caption: L("lcl_details"), isDefault: true });
if (!mld_melding.isTemplate)
if (mld_melding.isTemplate)
{
rst.addAction({ action: "opdr_delete", caption: L("lcl_delete"), enabler: "eDelete", multi: true, single: false, multiOnce: true});
}
else
{
if (urole=="fo" || urole =="bo" || urole =="b2")
{

View File

@@ -51,6 +51,30 @@ function opdr_close(rowArray, isMulti)
FcltMgr.openModalDetail(url, L("lcl_mld_opdr_close"), { callback: opdrCloseCallback });
}
function opdr_delete(rowArray, isMulti)
{
if (rowArray.length > 0)
{
var mldData = JSON.parse(rowArray[0].getAttribute("ROWDATA"));
var data = { mld_key: mldData.mldKey
, act_key: mldData.act_key
, opdr_key: []
};
for (var i=0; i<rowArray.length;i++)
{
var rowData = JSON.parse(rowArray[i].getAttribute("ROWDATA"));
data.opdr_key.push(rowData.opdrKey);
}
protectRequest.dataToken(data);
$.post( "../mld/opdr_delete.asp"
, data
, FcltCallbackRefresh
, "json"
);
}
}
function opdr_accept(rowArray, isMulti)
{
var opdrKeyString = getKeyString(rowArray);