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

     File:               opdr_reject.asp
     Description:        Afwijzen van een opdracht. Opmerking moet ingevuld worden.
     Parameters:         mld_opdr_key

     Context:            Fiattering
     Note:

*/

var opdr_key_arr = getQParamIntArray("opdr_key");
if (opdr_key_arr.length)
    var LOCKED_USER_OK = { "xmlnode": "opdracht", "key": opdr_key_arr[0] };
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="mld_flexkenmerk.inc" -->
<!-- #include file="mld.inc" -->
<%

FCLTHeader.Requires({ plugins: ["suggest", "jQuery", "kenmerk"] });

var result = {};
var toberejected = 0;
var ingesloten = [];
var opdr_type;
var vraag_sluitmelding = false;
// Bepaal de opdrachten in de selectie die
// ook echt afgewezen kunnen of mogen worden.
for (var i = 0; i < opdr_key_arr.length; i++)
{
  var this_opdr = mld.func_enabled_opdracht(opdr_key_arr[i]);
  if (this_opdr.canReject)
  {
    ingesloten.push(opdr_key_arr[i]);
    toberejected++;
  }
  // Zijn bij de melding van deze opdracht alle verplichte kenmerken ingevuld?
  var sql = "SELECT mld_melding_key"
          + "  FROM mld_opdr o"
          + " WHERE o.mld_opdr_key = " + opdr_key_arr[i];
  var oRs = Oracle.Execute(sql);
  var mld_key = oRs("mld_melding_key").value;
  oRs.Close();
}
vraag_sluitmelding = (ingesloten.length > 1) ; // Bij meerdere opdrachten sluiten vragen we of de meldingen ook meemoeten
user.anything_todo_or_abort(toberejected > 0); // We klagen niet over enkele wel en enkele niet
%>
<html>
  <head>
<%  FCLTHeader.Generate(); %>

      <script type="text/javascript">

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

        async function mld_reject()
        {
          // Standaard checks op verplichte velden, datum formaat, numeriek en float formaat, currency formaat.
          if (!await validateForm("rejectform"))
            return false;

          $.post($("form[name=rejectform]")[0].action, $("[name=rejectform]").serialize(), FcltCallbackClose, "json");;
          return true; // disable button
        }

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

      </script>
  </head>

  <body class="fclt-modal" id="mld_opdrejectbody">
  <% MODAL_START(); %>
<%
      if (ingesloten.length == 1)
      {
        var mld_opdr = mld.mld_opdr_info(opdr_key_arr[0]);
        opdr_type = mld_opdr.opdr_type;

        var opdr_volgnr = mld_opdr.mld_opdr_bedrijfopdr_volgnr;
        var opdr_opmr = mld_opdr.opdr_opmerking;
        var uitvoerende_key = mld_opdr.uitvoerende_key;
        var mld_key = mld_opdr.mld_key;
        var opdr_type_omschr = mld_opdr.opdr_type_omschr;
        var prefix = mld_opdr.srtdiscprefix;

        // Uitvoerende omschrijving bepalen m.b.v. uitvoerende key
        sql = "SELECT " + safe.quoted_sql(L("lcl_mld_bedrijf_prefix")) + " ||  b.prs_bedrijf_naam uitv_omschr"
              + " FROM prs_bedrijf b"
              + " WHERE b.prs_bedrijf_key = " + uitvoerende_key
              + " UNION ALL"
              + " SELECT " + safe.quoted_sql(L("lcl_mld_person_prefix")) + "||" + S("prs_pers_string") + " uitv_omschr"
              + " FROM prs_perslid p "
              + " WHERE p.prs_perslid_key = " + uitvoerende_key;
        oRs = Oracle.Execute(sql);
        // Waarde moet aanwezig zijn want is verplicht.
        var uitvoerende_omschr = oRs("uitv_omschr").value;
        oRs.close();
      }
      else
      {
        var opdr_string = "";
        for (var i = 0; i < ingesloten.length; i++)
        {
          var mld_opdr = mld.mld_opdr_info(opdr_key_arr[0]);
          var opdr_volgnr = mld_opdr.mld_opdr_bedrijfopdr_volgnr;
          var mld_key = mld_opdr.mld_key;
          var prefix = mld_opdr.srtdiscprefix;
          opdr_string += (opdr_string != ""? ", " : "") + prefix + mld_key + "/" + opdr_volgnr;
          opdr_type = mld_opdr.opdr_type;
        }
      }
      lcl.set_dialect(opdr_type, "MLD_TYPEOPDR_KEY"); // opdr_type van de laatste opdracht genomen
%>
      <form id="rejectform" name="rejectform" action="opdr_reject_save.asp" method="post">

<%
        MODAL_BLOCK_START("opdrReject", L("lcl_ord_reject") + (ingesloten.length == 1? prefix + mld_key + "/" + opdr_volgnr : opdr_string), {icon: "fa-times"});
%>
        <input type='hidden' name='opdr_key' value=<%=ingesloten.join(",")%>>
        <!-- Opdrachttype  en uitvoerende -->
<%
        if (ingesloten.length == 1)
        {
          ROFIELDTR("fld", L("lcl_mld_typeopdr"), opdr_type_omschr); // Opdrachttype
          ROFIELDTR("fld", L("lcl_ord_company_uit"), uitvoerende_omschr); // Uitvoerende
        }
        // Reden afwijzing
        RWTEXTAREATR("opmerk",
                     "fldtxt required",
                     L("lcl_mld_inf_opmerking_fiat"),
                     (ingesloten.length == 1? opdr_opmr : ""),
                     {html: "rows='8'"});

        if (vraag_sluitmelding)
        {
         %><tr><td colspan="2">
             <% CHECKBOX("fldmldclose", "mld_close"); %>
             <label for="mld_close"><%=L("lcl_mld_mld_close_try")%></label>
           </td></tr>
         <%
        }
        MODAL_BLOCK_END();

      // De verplichte afwijs (cancel) kenmerken tonen bij het afmelden. Vooralsnog worden de andere verplichte kenmerken niet getoond.
      generateFlexKenmerkBlock({ opdr_key: mld_opdr.opdr_key,
                                 opdr_type: mld_opdr.opdr_type,
                                 opdr_type_org: mld_opdr.opdr_type,
                                 opdr_status: mld_opdr.opdr_status,
                                 mld_key: mld_opdr.mld_key,
                                 stdm_arr: [mld_opdr.stdm_key], // Stdmelding
                                 cancel: true,
                                 act_key: -1,
                                 reado: (!(this_opdr.canFlexChange || this_opdr.canChangeARFlex)? "1" : null),
                                 prs_key: user_key, // Perslid key, wordt alleen gebruikt als geldt (!kenmerk_search && !multiMode)
                                 showConfidential: this_opdr.canViewConfidential
                               });

        var buttons =  [ {title: L("lcl_reject"), icon: "fa-fclt-save", action: "mld_reject()", singlepress: true, id: "btn_reject_submit", importance: 1 },
                         {title: L("lcl_cancel"), icon: "fa-fclt-cancel", action: "mld_cancel()", importance: 2 }];
        SIMPLE_BLOCK_START();
          CreateButtons(buttons);
        SIMPLE_BLOCK_END();
      IFACE.FORM_END(); %>
      </form>
    <% MODAL_END(); %>
  </body>
</html>
<% ASPPAGE_END(); %>
