MARX#54156: Verplichte flexprops bij afwijzen opdracht in de popup "afwijzen".

svn path=/Website/trunk/; revision=38788
This commit is contained in:
Maykel Geerdink
2018-08-13 11:38:55 +00:00
parent da649183eb
commit 157ac4912f
4 changed files with 68 additions and 19 deletions

View File

@@ -37,6 +37,7 @@ generateFlexKenmerkBlock({ stdm_arr : getQParamIntArray("stdm_str", []), //
opdr_key : getQParamInt("opdr_key", -1),
reado : (getQParamInt("reado", 0) == 1),
flexcolumns : getQParamInt("advanced", 0) == 1?1:S("mld_flexcolumns"),
cancel : (getQParamInt("cancel", 0) == 1),
closing : (getQParamInt("close", 0) == 1),
copy : (getQParamInt("opdr_copy", 0) == 1),
opdr_status : getQParamInt("opdr_status", -1),

View File

@@ -44,11 +44,13 @@ function generateFlexKenmerkBlock(params)
var opdr_type_org = (params.opdr_type_org? params.opdr_type_org : -1);
var opdr_key = (params.opdr_key? params.opdr_key : -1);
var reado = (params.reado? params.reado : false);
var cancel = (params.cancel? params.cancel : false);
var showClose = (params.showClose? params.showClose : false);
var copy = (params.copy? params.copy : false);
var opdr_status = (params.opdr_status? params.opdr_status : -1);
var advanced = (params.advanced? params.advanced : false); // Geavanceerd
var prs_key = (params.prs_key? params.prs_key : -1); // Perslid key
var onlyverplicht = params.onlyverplicht;
var forward = params.forward;
// opdrman true betekent: user mag opdracht flexkenmerken > 900 zien/editen
@@ -284,10 +286,15 @@ function generateFlexKenmerkBlock(params)
+ sql_waarde + " kenmerk_waarde, "
+ " k.mld_kenmerk_volgnummer kenmerk_volgnr, "
+ " k.mld_kenmerk_groep kenmerk_groep, "
+ lcl.xsql('t.mld_srtkenmerk_dimensie', 't.mld_srtkenmerk_key') +" kenmerk_dimensie, "
+ lcl.xsql('k.mld_kenmerk_hint', 't.mld_srtkenmerk_key') +" kenmerk_hint, "
+ lcl.xsql('k.mld_kenmerk_default','k.mld_kenmerk_key') +" kenmerk_default, "
+ " k.mld_kenmerk_verplicht kenmerk_verplicht, "
+ lcl.xsql("t.mld_srtkenmerk_dimensie", "t.mld_srtkenmerk_key") + " kenmerk_dimensie, "
+ lcl.xsql("k.mld_kenmerk_hint", "t.mld_srtkenmerk_key") + " kenmerk_hint, "
+ lcl.xsql("k.mld_kenmerk_default", "k.mld_kenmerk_key") + " kenmerk_default, "
+ " CASE"
+ " WHEN k.mld_kenmerk_verplicht = 1"
+ (cancel
? " OR k.mld_kenmerk_verplicht_status = 1"
: "")
+ " THEN 1 ELSE NULL END kenmerk_verplicht, "
+ " " + otherKenmerkPath + " otherpath," // corresponderende pad voor copy/move folder
+ " k.mld_kenmerk_toonbaar kenmerk_toonbaar," // 1=Alleen toonbaar (readonly)
+ " k.mld_kenmerk_uniek kenmerk_uniek,"
@@ -314,6 +321,8 @@ function generateFlexKenmerkBlock(params)
// Alleen met opdrman rechten mag ik opdracht flexkenmerken boven de 900 zien
if (!opdrman)
sql1 += " AND k.mld_kenmerk_volgnummer <= 900";
if (cancel)
sql1 += " AND k.mld_kenmerk_verplicht_status = 1";
}
else
{ // changeMelding || newMelding || advancedMelding

View File

@@ -18,6 +18,7 @@ var LOCKED_USER_OK = { "xmlnode": "opdracht", "key": opdr_key };
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="mld_flexkenmerk.inc" -->
<!-- #include file="mld.inc" -->
<%
@@ -32,9 +33,7 @@ user.auth_required_or_abort(this_opdr.canCancel); // Mag ik deze opdracht annule
var mld_opdr = this_opdr.mld_opdr;
lcl.set_dialect(mld_opdr.opdr_type, "MLD_TYPEOPDR_KEY");
var reqStatusEmptyOpdr = [];
// Zijn bij deze opdracht alle verplichte kenmerken ingevuld?
reqStatusEmptyOpdr = mld.getReqStatusEmptyOpdr(reqStatusEmptyOpdr, opdr_key, 1); // Opdracht status "Afgewezen(1)"
// Kenmerken die verplicht zijn bij Afwijzen worden in het popup scherm getoond en moeten verplicht ingevuld worden. Dat hoef ik hier niet meer te testen.
%>
<html>
@@ -53,13 +52,6 @@ reqStatusEmptyOpdr = mld.getReqStatusEmptyOpdr(reqStatusEmptyOpdr, opdr_key, 1);
if (!validateForm("u2"))
return false;
// Zijn er opdrachtkenmerken die alleen verplicht zijn bij het afmelden en niet zijn ingevuld?
if (<%=reqStatusEmptyOpdr.length%> != 0)
{
FcltMgr.alert("<%=safe.jsstring(reqStatusEmptyOpdr.join('\n'))%>");
return false;
}
$.post($("form[name=cancelform]")[0].action, $("[name=cancelform]").serialize(), FcltCallbackClose, "json");
return true; // disable button
@@ -88,6 +80,22 @@ reqStatusEmptyOpdr = mld.getReqStatusEmptyOpdr(reqStatusEmptyOpdr, opdr_key, 1);
mld_opdr.opdr_opmerking,
{html: "rows='8'" + (!this_opdr.canOpmChange? " readonly" : "")});
BLOCK_END();
// De verplichte afwijs (cancel) kenmerken tonen bij het afmelden. Vooralsnog worden de andere verplichte kenmerken niet getoond.
generateFlexKenmerkBlock({ opdr_key: opdr_key,
opdr_type: mld_opdr.opdr_type,
opdr_type_org: mld_opdr.opdr_type,
opdr_status: mld_opdr.opdr_status,
mld_key: mld_opdr.mld_key,
stdm_arr: [mld_opdr.stdm_key], // Stdmelding
cancel: true,
act_key: -1,
reado: (!(this_opdr.canFlexChange || this_opdr.canChangeARFlex)? "1" : null),
onlyverplicht: true,
prs_key: user_key, // Perslid key, wordt alleen gebruikt als geldt (!kenmerk_search && !multiMode)
showConfidential: this_opdr.canViewConfidential
});
var buttons = [ {title: L("lcl_mld_opdr_cancel_button"), icon: "accept.png", action: "mld_close()", singlepress: true, id: "btn_close_submit" },
{title: L("lcl_back"), icon: "cancel.png", action: "mld_cancel()" } ];
CreateButtons(buttons);

View File

@@ -21,6 +21,7 @@ var LOCKED_USER_OK = { "xmlnode": "opdracht", "key": opdr_key };
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc" -->
<!-- #include file="mld.inc" -->
<%
protectRequest.validateToken();
@@ -29,11 +30,8 @@ user.auth_required_or_abort(opdr_key > 0); // Hebben we een opdracht key gekrege
// Controleren of ik deze opdracht mag annuleren
var this_opdr = mld.func_enabled_opdracht(opdr_key); // wat mag ik zoal op deze opdracht
var reqStatusEmptyOpdr = [];
// Zijn bij deze opdracht alle verplichte kenmerken ingevuld?
reqStatusEmptyOpdr = mld.getReqStatusEmptyOpdr(reqStatusEmptyOpdr, opdr_key, 1); // Opdracht status "Afgewezen(1)"
user.auth_required_or_abort(this_opdr.canCancel && !reqStatusEmptyOpdr.length, JSON.stringify({ message: L("lcl_shared_no_auth"), success: false })); // Mag ik deze opdracht annuleren
// Kenmerken die verplicht zijn bij Afwijzen worden in het popup scherm getoond en moeten verplicht ingevuld worden. Dat hoef ik hier niet meer te testen.
user.auth_required_or_abort(this_opdr.canCancel, L("lcl_shared_no_auth")); // Mag ik deze opdracht annuleren
var result = { opdr_key: opdr_key, message: "", success: false};
@@ -51,6 +49,39 @@ if (this_opdr.canOpmChange)
mld.trackopdrachtupdate(opdr_key, L("lcl_ord_is_ordupdtrack").format(formattedID) + "\n" + mldUpd.trackarray.join("\n"));
}
var currentKenmerkenSQL = " SELECT k.mld_kenmerk_key, mld_kenmerkopdr_waarde"
+ " FROM mld_kenmerkopdr ko"
+ ", mld_kenmerk k"
+ " WHERE k.mld_kenmerk_key = ko.mld_kenmerk_key"
+ " AND mld_kenmerkopdr_verwijder IS NULL"
+ " AND mld_opdr_key = " + opdr_key;
var allKenmerkenSQL = "SELECT " + lcl.xsql('t.mld_srtkenmerk_omschrijving', 't.mld_srtkenmerk_key') +" kenmerk_omschrijving"
+ ", t.mld_srtkenmerk_kenmerktype kenmerk_kenmerktype"
+ ", t.mld_srtkenmerk_systeem kenmerk_systeem"
+ ", k.mld_kenmerk_toonbaar kenmerk_readonly"
+ ", k.mld_kenmerk_uniek kenmerk_uniek"
+ ", fac_kenmerkdomein_key"
+ " FROM mld_kenmerk k, "
+ " mld_srtkenmerk t"
+ " WHERE k.mld_srtkenmerk_key = t.mld_srtkenmerk_key"
+ " AND k.mld_kenmerk_key = "; /* wordt in saveFlexkenmerken uitgebreid */
var flextrack =
saveFlexKenmerken(opdr_key, { kenmerkTable: "mld_kenmerkopdr",
kenmerkParentKey : "mld_opdr_key",
kenmerkWaarde: "mld_kenmerkopdr_waarde",
kenmerkKey: "mld_kenmerk_key",
currentKenmerkenSQL: currentKenmerkenSQL,
allKenmerkenSQL: allKenmerkenSQL,
requestQF: Request.Form,
isNew: false,
flexPath: "MLD/O",
tracking: true,
module: "MLD"
}
);
// Zetten van de status en afhandelen van de tracking van het annuleren (cancel).
mld.setopdrachtstatus(opdr_key, 1); // Verworpen
mld.updatemeldingstatus(mld_opdr.mld_key, 0);