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

     File:               res_afwijzen_save.asp
     Description:        Afwijzen van (deel)reserveringen.
     Parameters:
         rsv_ruimte_key  rsv_ruimte_key van de (deel)reservering die moet worden afgewezen.
     Context:
     Note:

*/ %>

<%
var JSON_Result = true;
%>

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="res.inc" -->

<%
FCLTHeader.Requires();

protectRequest.validateToken();
var rsv_ruimte_key_arr = getFParamIntArray("rsv_ruimte_key");
var opmerk = getFParam("opmerk", "");

var toberejected = 0;
var ingesloten = [];
// Bepaal de reserveringen in de selectie die ook echt gefiatteerd kunnen of mogen worden.
for (var i = 0; i < rsv_ruimte_key_arr.length; i++)
{
  var this_res = res.func_enabled(rsv_ruimte_key_arr[i]);    // Wat heb ik zoal aan rechten op deze specifieke (deel)reservering.
  if (this_res.canAfwijzen)
  {
    ingesloten.push(rsv_ruimte_key_arr[i]);
    toberejected++;
  }
}
user.anything_todo_or_abort(toberejected > 0); // Heb ik rechten om af te wijzen? We klagen niet over enkele wel en enkele niet.

var multi = ingesloten.length > 1;
for (var i = 0; i < ingesloten.length; i++)
{ // We mogen Afwijzen.
  // keep opmerking || reason_afwijzen below 2000 characters
  var sql = "SELECT res_rsv_ruimte_opmerking FROM res_rsv_ruimte WHERE res_rsv_ruimte_key = " + ingesloten[i];
  var oRs = Oracle.Execute(sql);
  var current_opmerk = oRs("res_rsv_ruimte_opmerking").Value || "";
  var rsv_ruimte_opmerking = current_opmerk + (current_opmerk == "" ? "" : "\n") + L("lcl_res_reason_afwijzen") + ": " + opmerk;
  if (rsv_ruimte_opmerking.length > 2000)
  {
    rsv_ruimte_opmerking = "..." + rsv_ruimte_opmerking.substr((rsv_ruimte_opmerking.length - 1997), 1997);
  }


  // Reden afwijzing opslaan in opmerking reservering.
  var sql = "UPDATE res_rsv_ruimte"
          + "   SET res_rsv_ruimte_opmerking = " + safe.quoted_sql(rsv_ruimte_opmerking)
          + " WHERE res_rsv_ruimte_key = " + ingesloten[i];
  Oracle.Execute(sql);

  // Af wijzen van de artikelregels.
  var sql = "UPDATE res_rsv_artikel SET res_rsv_artikel_approved = 2 WHERE res_rsv_ruimte_key = " + ingesloten[i];
  Oracle.Execute(sql);

  // Tracking van het afwijzen.
  shared.trackaction("RESFNO", ingesloten[i]);
}

var result = { key: ingesloten.join(","), success: true };
if (multi)
{
  var msg = L("lcl_res_multi_rejected").format(ingesloten.length);
  result.message = msg;
}
Response.Write(JSON.stringify(result));
%>
<% ASPPAGE_END(); %>
