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

    File:              opdr_reject.asp
    Description:       Afwijzen van een bestelopdracht. Opmerking moet ingevuld worden.

    Parameters:
        bes_key         Bestelopdracht nummer (key)
        submitting      0 = invoer opmerking, 1 = reject mode
        opmerk          Opmerking
    Context:            Door BO als de leverancier heeft teruggekoppeld niet te kunnen leveren
                        !of de embargo-wijziging niet te accepteren'
    Note:               Met 5.1.1 en ouder kon je hier nooit komen. Het veronderstelde namelijk
                        opdrachten met status '2' (nieuw) die niet bestaan
*/ %>

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="bes.inc" -->
<%
FCLTHeader.Requires({ plugins: ["jQuery"],
                      js: []
                    });

var opdr_key_arr = getQParamIntArray("opdr_key");

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

var result = {};
var tobeaccepted = 0;
var ingesloten = [];
// Bepaal de bestel opdrachten in de selectie die
// ook echt afgewezen kunnen of mogen worden.
for (var i = 0; i < opdr_key_arr.length; i++)
{
  var this_bestelopdr = bes.func_enabled_bestelopdracht(opdr_key_arr[i]);
  if (this_bestelopdr.canReject)
  {
    ingesloten.push(opdr_key_arr[i]);
    tobeaccepted++;
  }
}
user.anything_todo_or_abort(tobeaccepted > 0); // We klagen niet over enkele wel en enkele niet
%>

<html>
  <head>
<%  FCLTHeader.Generate(); %>
  </head>

<%  if (submitting && opmerk != "")
    {
      protectRequest.validateToken();
      var success = true;
      for (var i = 0; i < ingesloten.length; i++)
      {
        var bes_bestelopdr = bes.bestelopdracht_info(ingesloten[i]);
        var bes_bestelling = bes.bestelling_info(bes_bestelopdr.bes_key_str[0]);

        if (bes_bestelling.parent_key)
        {
          var sql = "BEGIN BES.rejectopdracht(" + ingesloten[i] + ", " + user_key + ", " + safe.quoted_sql(opmerk) + "); END;";
          Oracle.Execute(sql);
          // LET OP: Als dit een change-request was dan is ondertussen onze bes_bestelopdr-record verwijderd!
        }
        else
        {
          var sql = "BEGIN BES.rejectopdracht(" + ingesloten[i] + ", " + user_key + ", ''); END;";
          Oracle.Execute(sql);
          sql = "UPDATE bes_bestelopdr"
              + "   SET bes_bestelopdr_opmerking = " + safe.quoted_sql(opmerk, 320)
              + " WHERE bes_bestelopdr_key = " + ingesloten[i];
          Oracle.Execute(sql);
        }
      }

%>
      <script type="text/javascript">
        FcltMgr.closeDetail( window,
                             { refresh: true,
                               success: "<%=success? 1 : 0%>"
                             });
      </script>
<%
      Response.End;
    }
    else
    { %>
      <script type="text/javascript">

        $(function()
        {
          $('textarea').resize(function() { FcltMgr.resized(window) });
          $('textarea').autogrow();
        });

        async function opdr_reject()
        {
            if (!await validateForm("rejectform"))
              return false;
            $("#btn_reject_submit").addClass("btn_disabled");
            document.rejectform.submit();
            return true; // disable button
        }

        function opdr_cancel()
        {
            FcltMgr.closeDetail(window, { cancel: true } );
        }

      </script>
<%  } %>
  </head>

  <body id="rejectbody">
    <% MODAL_START(); %>
    <div id="reject">
      <form name="rejectform" action="opdr_reject.asp?submit=1&opdr_key=<%=ingesloten.join(",")%>" method="post">
<%
        MODAL_BLOCK_START("besReject", L("lcl_bes_flexblok"), {icon: "fa-info-square"});
%>
          <!-- Reden afwijzing -->
<%        RWTEXTAREATR("opmerk", "fldtxt required", L("lcl_bes_reject_remark"), "", {html: "rows='3'"});
       MODAL_BLOCK_END();
        var buttons =  [{ title: L("lcl_reject"), icon: "fa-fclt-save", action:"opdr_reject()", singlepress: true, id: "btn_reject_submit" },
                        { title: L("lcl_cancel"), icon: "fa-fclt-cancel", action:"opdr_cancel()" }];
        SIMPLE_BLOCK_START();
        CreateButtons(buttons);
        SIMPLE_BLOCK_END();
IFACE.FORM_END();
%>
      </form>
    </div>
    <% MODAL_END(); %>
  </body>
</html>
<% ASPPAGE_END(); %>
