Files
Facilitor/APPL/MLD/opdr_halt_save.asp
Jos Groot Lipman 9a71b56b4f MARX#78859 Notities bij notificaties van mld-opdrachten savepoint
svn path=/Website/trunk/; revision=61893
2023-09-26 10:49:50 +00:00

104 lines
4.6 KiB
Plaintext

<%@ LANGUAGE = JavaScript %>
<% /*
$Revision$
$Id$
File: opdr_halt_save.asp.asp.
Description: Het daadwerkelijk onderbreken van een specifieke opdracht.
Parameters:
opdr_key Opdracht key van de opdracht die moet worden onderbroken.
Context:
Note: Rechtstreeks vanuit showmode opdracht.
*/ %>
<%
var JSON_Result = true;
var opdr_key = getQParamInt("opdr_key", -1);
var note_key = getFParamInt("note_key", -1);
var LOCKED_USER_OK = { "xmlnode": "opdracht", "key": opdr_key };
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc" -->
<!-- #include file="mld.inc" -->
<%
protectRequest.validateToken();
user.auth_required_or_abort(opdr_key > 0); // Hebben we een opdracht key gekregen?
// Controleren of ik deze opdracht mag onderbreken
var this_opdr = mld.func_enabled_opdracht(opdr_key); // wat mag ik zoal op deze opdracht
user.auth_required_or_abort(this_opdr.canOnderbreken, L("lcl_shared_no_auth")); // Mag ik deze opdracht annuleren
var result = { opdr_key: opdr_key, message: "", success: false};
var mld_opdr = this_opdr.mld_opdr;
lcl.set_dialect(mld_opdr.opdr_type, "MLD_TYPEOPDR_KEY");
// Kenmerken die verplicht zijn bij het Onderbreken worden in het popup scherm getoond en moeten verplicht ingevuld worden. Dat hoef ik hier niet meer te testen.
var currentKenmerkenSQL = "SELECT k.mld_kenmerk_key"
+ " , mld_kenmerkopdr_waarde"
+ " , k.mld_kenmerk_toonbaar"
+ " , k.fac_functie_key"
+ " 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 COALESCE (" + lcl.xsql("k.mld_kenmerk_omschrijving", "k.mld_kenmerk_key")
+ " , " + 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",
kenmerkToonbaar: "mld_kenmerk_toonbaar",
nameprefix: getFParam("nameprefix", ""),
extraserie: hasFParam("nameprefix"),
currentKenmerkenSQL: currentKenmerkenSQL,
allKenmerkenSQL: allKenmerkenSQL,
requestQF: Request.Form,
isNew: false,
flexPath: "MLD/O",
tracking: true,
module: "MLD"
}
);
// Wijzigingen flexkenmerken tracken.
if (flextrack.length)
{
var ins_srtdiscipline_prefix = mld.mld_prefix(mld_opdr.mld_key);
var formattedID = ins_srtdiscipline_prefix + mld_opdr.mld_key + "/" + mld_opdr.volgnr;
mld.trackopdrachtupdate(opdr_key, L("lcl_ord_is_ordupdtrack").format(formattedID) + "\n" + flextrack.join("\n"));
}
// Onderbreken van de opdracht.
var tracking_key = mld.opdr_hltrsm(opdr_key, { halt: true, resume: false });
// Registeren bij de laatste notitie
if (note_key > 0)
{
var sql = "UPDATE mld_opdr_note"
+ " SET fac_tracking_key = " + tracking_key
+ " WHERE mld_opdr_note_key = " + note_key;
Oracle.Execute(sql);
}
result.success = true;
Response.Write(JSON.stringify(result));
ASPPAGE_END();
%>