<%@ LANGUAGE = JavaScript %>
<% /*
     $Revision$
     $Id$

     File:          opdr_cancel_confirm.asp.asp
     Description:   Annuleer een specifieke opdracht.
     Parameters:
         opdr_key   Opdracht key van de opdracht die moet worden geannuleerd
     Context:
     Note:          A Rechtstreeks vanuit overzicht opdrachten
                    B Rechtstreeks vanuit showmode opdracht

*/ %>

<%
var JSON_Result = true;
%>


<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="mld.inc" -->
<%
protectRequest.validateToken();
var opdr_key = getQParamInt("opdr_key", -1);
user.auth_required_or_abort(opdr_key > 0); // Hebben we een opdracht key gekregen?

// 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

var result = { opdr_key: opdr_key, message: "", success: false};

var mld_opdr = mld.mld_opdr_info(opdr_key);
lcl.set_dialect(mld_opdr.opdr_type, "MLD_TYPEOPDR_KEY");

var this_opdr = mld.func_enabled_opdracht(opdr_key); // wat mag ik zoal op deze opdracht
if (this_opdr.canOpmChange)
{
  var opdr_opm = getFParam("opdr_opm", "");
  var fields = [ { dbs: "mld_opdr_opmerking",     typ: "varchar", val: opdr_opm,     track: L("lcl_mld_inf_Opmerking") } ];
  var mldUpd = buildTrackingUpdate("mld_opdr", "mld_opdr_key = " + opdr_key, fields);
  Oracle.Execute(mldUpd.sql); // mldUpd && mldUpd.trackarray.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" + mldUpd.trackarray.join("\n"));
}

// 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);

result.success = true;

Response.Write(JSON.stringify(result));
Response.End;
%>