104 lines
4.6 KiB
Plaintext
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();
|
|
%>
|