<%@language = "javascript" %>
<% /*
     $Revision$
     $Id$

     File:               bes_reject_save.asp
     Description:        Afwijzen van een bestelaanvraag door de de fiatteur. (canApprove)
                         OF: Door de Backoffice (canAccept)
                         Opmerking moet ingevuld worden.
     Parameters:
         bes_key         Bestelaanvraag nummer (key)
         submitting      0 = invoer opmerking, 1 = reject mode
         opmerk          Opmerking
*/
var JSON_Result = true;
%>

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="./bes.inc" -->

<%
protectRequest.validateToken();

var bes_key_arr = getQParamIntArray("bes_key");
var submitting = getQParamInt("submit", 0) == 1;
var opmerk = getFParam("opmerk", "");

var result = {};
var toberejected = 0;
var ingesloten = [];
var hasparentkey = [];
var hasnoparentkey = [];
// Bepaal de bestellingen in de selectie die
// ook echt afgewezen kunnen of mogen worden.
for (var i = 0; i < bes_key_arr.length; i++)
{
  var bes_bestelling = bes.bestelling_info(bes_key_arr[i]); // Globale variabele met alle bes_bestelling informatie
  var bes_disc_info = bes.disc_info(bes_bestelling.dis_key); // alle discipline informatie
  var this_bes = bes.func_enabled_bestelling(bes_bestelling);
  if (this_bes.canApprove || this_bes.canAccept) // Als je mag accepteren mag je ook rejecten
  {
    ingesloten.push(bes_key_arr[i]);
    if (bes_bestelling.parent_key)
      hasparentkey.push(bes_key_arr[i]);
    else
      hasnoparentkey.push(bes_key_arr[i]);
    toberejected++;
  }
}
user.anything_todo_or_abort(toberejected > 0); // We klagen niet over enkele wel en enkele niet

for (var i = 0; i < hasnoparentkey.length; i++)
{
  sql = "UPDATE bes_bestelling"
      + "   SET bes_bestelling_opmerking = " + safe.quoted_sql(opmerk, 320)
      + " WHERE bes_bestelling_key = " + hasnoparentkey[i];
  oRs = Oracle.Execute(sql);
  bes.setbestellingstatus(hasnoparentkey[i], 1); // rejected
  var sql = "UPDATE bes_bestelling"
          + "   SET bes_bestelling_fiat_user = " + user_key
          + " WHERE bes_bestelling_key = " + hasnoparentkey[i];
  Oracle.Execute(sql);
}
for (var pp in hasparentkey)
{
  bes.verwijderBestelling(hasparentkey[pp]);
}

result = { close: true, success: true, opmerk: opmerk };

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