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

    File:               bes_edit_bestelling.asp
    Description:        Muteerscherm voor bestellingen

    Parameters:         bes_key (-1 voor nieuwe)
                        dis_key: catalogus. Verplicht voor nieuwe bestellingen!

    Context:            Rechtstreeks vanuit het menu / bes_bestelling.asp
                        Of: terugkomst vanuit externe punchout via bes_hook_punch.asp
    Note:               Terminologie:
                            fiatteur: degene die op dit moment de bestelling moet goed keuren
                                      (dat is eerst de budgethouder van de kostenplaats en eventueel later
                                       de kostenplaats(groep) verantwoordelijke)

*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/calendar.inc"-->
<!-- #include file="../Shared/kostenplaatsselector.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="../Shared/artikelgroepselector.inc" -->
<!-- #include file="../Shared/besitemselector.inc" -->
<!-- #include file="../Shared/bedrijfselector.inc" -->
<!-- #include file="../Shared/adresselector.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/rater.inc" -->
<!-- #include file="../Shared/Suggest/plaatsFilter.inc"-->
<!-- #include file="../prs/prs.inc" -->
<!-- #include file="bes_flexkenmerk.inc" -->
<!-- #include file="bes.inc" -->
<!-- #include file="details.inc" -->

<%
FCLTHeader.Requires({ plugins:["suggest", "kenmerk"],
                      js: ["./sel_items_tab.js", "./bes_bestelling.js"]
                    });

// AUTORISATIEPARAMETERS
var urole = getQParamSafe("urole");
var bes_key = getQParamInt("bes_key", -1);

if (bes_key == -1)
{
  var dis_key = getQParamInt("dis_key");
}
var artikel_key = getQParamInt("artikel_key", -1); //deeplink/productsearch
var from_punch = getQParamInt("punch", 0) == 1; // dan zijn pn en sn in de QueryString ook gezet.
                                                // en mogen de details niet meer aangepast
var from_voorraad = getQParamInt("voorraad", 0) == 1;
var leverdatum = getQParamInt("leverdatum", null); // Leverdatum
var isCorrectie = getQParamInt("correctie", 0) == 1; // Is een correctiebestelling
var transitParam = buildTransitParam(["urole", "bes_key", "dis_key", "mld_key"]);

var fronto = urole == "fo";
var backo  = urole == "bo";
var minfo  = urole == "mi";
var frontend = (!fronto && !backo && !minfo);

var act_key = getQParamInt("act_key", -1); // fac_activiteit_key

//    mld_key can be defined if this is called from the MLD BO (../complains/ComplainsSsearch.asp)
//    and will then be used the determine the requestor (i.e. the same as the mld_melding)

var mld_key = getQParamInt("mld_key", -1);

show_price = (backo? 1 : (fronto ? (S("bes_show_RFO_price") > 0? 1 : 0) : (S("bes_show_RFO_price") == 2? 1 : 0)));

var autfunction = {fo: 'WEB_BESFOF', bo: 'WEB_BESBOF'}[urole] || 'WEB_BESUSE';

// Heb ik o.a. rechten om kenmerken met volgnummer 900 en hoger te zien?
// Wordt hier gebruikt voor rechten om kostenplaats aan te passen als bestelling al besteld is.
var authparamsORDFIN = user.checkAutorisation("WEB_ORDFIN", true);
var writeORDFIN = authparamsORDFIN && (authparamsORDFIN.PRSwritelevel < 9 && authparamsORDFIN.ALGwritelevel < 9)

var bes_bestelling; // Globale variabele met alle bes_bestelling informatie
if (bes_key > 0)
{
  bes_bestelling = bes.bestelling_info(bes_key); // Globale variabele met alle bes_bestelling informatie
  var bes_disc_info = bes.disc_info(bes_bestelling.dis_key, autfunction); // alle discipline informatie
  var this_bes = bes.func_enabled_bestelling(bes_bestelling);
  user.auth_required_or_abort(this_bes.canChange || this_bes.canApprove);
}
else // nieuwe bestelling. Defaults bepalen
{
  bes_bestelling = { bes_key: bes_key, dis_key: dis_key, fac_activiteit_key: act_key, lev_opm: "" };

  var authparams = user.checkAutorisation(autfunction, false, dis_key); // verplicht, is toch niet veel gevraagd?
  // Eigenlijk had je hier zonder rechten al nooit mogen komen maar soms lukt het via een deeplink
  user.auth_required_or_abort(authparams.PRSwritelevel < 9 && authparams.ALGwritelevel < 9);

  // Bepaal bes_bestelling.inclBTW
  // Je kunt bij artikelgroep een kostensoort opgeven die dan als een "overrule" werkt van de kostensoort van de catalogus (dus leeg laten betekent kostensoort van de catalogus)
  // Dit betekent dat bes_bestelling.inclBTW nu ook afhankelijk van srtgroep is indien daar de kostensoort is ingevuld.
  // Dan kunnen we op dit moment eigenlijk bes_bestelling.inclBTW nog niet bepalen omdat de srtgroep nog niet is geselecteerd.
  // Aanname: bes_bestelling.inclBTW is normaal gesproken bij een leverancier voor alle groepen en artikelen hetzelfde,
  //          anders heb je het verkeerd geconfigureerd. Neem dan maar MAX van groepen en/of discipline.
  sql = "SELECT MAX((SELECT ks.prs_kostensoort_btw"
      + "              FROM prs_kostensoort ks"
      + "             WHERE ks.prs_kostensoort_key = COALESCE(bsg.prs_kostensoort_key, bd.prs_kostensoort_key))) inclbtw"
      + "  FROM bes_discipline bd"
      + "     , bes_srtgroep bsg"
      + " WHERE bd.ins_discipline_key = bsg.ins_discipline_key(+)"   // Artikelcatalogi (Discipline) hoeft geen artikelgroep (srtgroep) te hebben. Maar dan kan er ook niets besteld worden.
      + "   AND bd.ins_discipline_key = " + bes_bestelling.dis_key;
  oRs = Oracle.Execute(sql);
  bes_bestelling.inclBTW = oRs("inclBTW").Value || 0; // Met MAX() is er altijd een waarde aanwezig, ook al kan deze null zijn.
  oRs.Close();

  var bes_disc_info = bes.disc_info(dis_key, autfunction); // alle discipline informatie
  this_bes = { canChange: true,
               canItemsChange: !from_punch };

  if (leverdatum)
    bes_bestelling.rfoDeliverydate = new Date(leverdatum);
  else
  {
    if (bes_disc_info.disc_params_leverdagen < 0)
        bes_bestelling.rfoDeliverydate = null;
    else
        bes_bestelling.rfoDeliverydate = new Date();
    if (bes_disc_info.disc_params_leverdagen >= 0)
    {
        var maxPast = 0;
        if (bes_disc_info.disc_params_expire_tijd > 0)
        {
          var now = new Date;
          now = now.getHours() + (now.getMinutes()/60)
          if (now > bes_disc_info.disc_params_expire_tijd)
          {
            maxPast = 1;
          }
        }

      sql = "SELECT fac.DatumTijdPlusUitvoerTijd(" + (new Date).toSQL() + "," + (bes_disc_info.disc_params_leverdagen + maxPast) + ", 'DAGEN')"
          + " FROM DUAL"
      oRs = Oracle.Execute(sql);
      bes_bestelling.rfoDeliverydate = new Date(oRs(0).Value);
      oRs.Close();
    }
  }

  // Vul de punchoutkeuzes automatisch in
  var psrt_keys = getQParamIntArray("ps", []); // array met srtdeel_key's.
  var pamounts = getQParamIntArray("pn", []); // array met aantallen.

  var pregel_kenmerken = [];
  var regel_flex_defaults = getQParamArray("regel_flex_defaults", []); // array met bestelregel kenmerken (&regel_flex_defaults=uuid=b2b1ff78-5227-11ee-9ccb-fad4fbcb935c).
  for (var i = 0; i < regel_flex_defaults.length; i++)
  {
    var nm = regel_flex_defaults[i].split("=")[0].toLowerCase();
    var val = regel_flex_defaults[i].split("=")[1];
    if (!pregel_kenmerken[nm])
      pregel_kenmerken[nm] = [];
    pregel_kenmerken[nm].push(val);
  }

  if (frontend)
  {
    // Setting "prs_default_kpn_empty": Costcentre always default empty.
    if (S("prs_default_kpn_empty") == 1)
      bes_bestelling.kostenplaats_key = -1;
    else
    {
      // Setting "prs_dep_default_kpn": A user can make costs for his own department by default {0=no | 1=yes | 2=all departments of company}
      var authForOwnAcoount = true;
      if (S("prs_dep_default_kpn") == 0)
      { // Niet standaard geautoriseerd voor eigen kostenplaats. Dit hier checken
  	    sql = "SELECT k.prs_kostenplaats_key kpkey"
            + "  FROM prs_perslidkostenplaats pk"
            + "     , prs_v_aanwezigkostenplaats k"
            + " WHERE pk.prs_kostenplaats_key = k.prs_kostenplaats_key(+)"
            + "   AND pk.prs_perslidkostenplaats_boeken = 1"
            + "   AND pk.prs_perslid_key = " + user_key
            + "   AND (k.prs_kostenplaats_key = " + (user.prs_kostenplaats_key() || -1)
            + "      OR pk.prs_kostenplaats_key IS NULL)";
        oRs = Oracle.Execute(sql);
        authForOwnAcoount = (!oRs.eof);
        oRs.Close();
      }
      if (user.prs_kostenplaats_key() && authForOwnAcoount) // Dus voor S(prs_dep_default_kpn) is 1,2,4 of 5.
          bes_bestelling.kostenplaats_key = user.prs_kostenplaats_key();
      else
          bes_bestelling.kostenplaats_key = -1;
    }

    bes_bestelling.perslid_key = user_key;
    bes_bestelling.perslid_key_voor = user_key;

    var prs_info = new prs.prs_perslid(user_key, { withAflever: true });

    bes_bestelling.afleverruimte = prs_info.afleverruimte;
    bes_bestelling.mld_adres_key = getQParamInt("adres_key", prs_info.mld_adres_key);
    bes_bestelling.mld_adres_naam = prs_info.mld_adres_naam;
  }
  else if (!fronto)
  {
    shared.internal_error("Bestelling toevoegen met urole={0} is niet ondersteund.".format(urole));
  }
  else  // fronto
  {
    bes_bestelling.kostenplaats_key = -1;
    bes_bestelling.perslid_key = (S("bes_fo_default_user") & 1) ? user_key : -1;
    bes_bestelling.perslid_key_voor = (S("bes_fo_default_user") & 1) ? user_key : -1;
    if (psrt_keys.length)
    {
      var sql = "SELECT sd.prs_bedrijf_key"
              + "     , b.mld_adres_key_lev"
              + "     , ma.mld_adres_naam"
              + "  FROM bes_srtdeel sd"
              + "     , prs_bedrijf b"
              + "     , mld_adres ma"
              + " WHERE sd.prs_bedrijf_key = b.prs_bedrijf_key"
              + "   AND b.mld_adres_key_lev = ma.mld_adres_key(+)"
              + "   AND sd.bes_srtdeel_key = " + psrt_keys[0];
      var oRs = Oracle.Execute(sql);
      if (!oRs.Eof)
      {
        bes_bestelling.mld_adres_key = getQParamInt("adres_key", oRs("mld_adres_key_lev").Value || -1);
        bes_bestelling.mld_adres_naam = oRs("mld_adres_naam").Value || "";
      }
      else
      {
        bes_bestelling.mld_adres_key = getQParamInt("adres_key", -1);
        bes_bestelling.mld_adres_naam = "";
      }
      oRs.Close();
    }
    else
    {
      bes_bestelling.mld_adres_key = getQParamInt("adres_key", -1);
      bes_bestelling.mld_adres_naam = "";
    }
  }
  if (act_key != -1)
  { // Invoerder heeft actie aangemaakt. Dan voor aanvrager/invoerder/contactpersoon de user_key nemen.
    bes_bestelling.perslid_key = user_key;
    bes_bestelling.perslid_key_voor = user_key;
  }
  if (mld_key != -1) // kopieer defaults weg bij de melding
  {
    bes_bestelling.mld_key = mld_key;
    sql = "SELECT p.prs_perslid_key"
        + ", "  + S("prs_pers_string") + " naam"
        + ",      m.prs_kostenplaats_key"
        + ",      sd.ins_srtdiscipline_prefix mld_prefix"
        + ",      m.mld_adres_key"
        + ",      m.mld_alg_locatie_key"
        + "  FROM mld_melding m"
        + ",      prs_perslid p"
        + ",      mld_stdmelding sm"
        + ",      mld_discipline d"
        + ",      ins_srtdiscipline sd"
        + " WHERE m.prs_perslid_key = p.prs_perslid_key "
        + "   AND sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key"
        + "   AND d.ins_discipline_key = sm.mld_ins_discipline_key"
        + "   AND sm.mld_stdmelding_key = m.mld_stdmelding_key"
        + "   AND m.mld_melding_key = " + mld_key;

      oRs = Oracle.Execute(sql);

      bes_bestelling.mld_prefix = oRs("mld_prefix").value;
      bes_bestelling.mld_adres_key = oRs("mld_adres_key").value;
      bes_bestelling.alg_locatie_key = oRs("mld_alg_locatie_key").Value || -1;
      if (S("bes_fo_default_user") & 2) {
        bes_bestelling.perslid_key = S("bes_fo_default_user") ? oRs("prs_perslid_key").value : -1;
        bes_bestelling.perslid_key_voor = S("bes_fo_default_user") ? oRs("prs_perslid_key").value : -1;
      }
      bes_bestelling.kostenplaats_key = oRs("prs_kostenplaats_key").value || -1;
      oRs.close();
  }

  if (bes_key > 0 && (bes_disc_info.bestelmode == 2 || bes_disc_info.bestelmode == 3)) // Bij *wijzigen* altijd gewone interface
    bes_disc_info.bestelmode = 0;
  var auto_bestellijst = bes_disc_info.bestelmode == 2 || bes_disc_info.bestelmode == 3; // Bestellijst(2) of Actuele lijst(3).

  bes_bestelling.flex_defaults = {};
  var flex_defaults = getQParam("flex_defaults", "").split("&"); // flex_defaults=bestellingid=12345
  for (var i in flex_defaults)
  {
    var nm = flex_defaults[i].split("=")[0].toLowerCase();
    var val = flex_defaults[i].split("=")[1];
    bes_bestelling.flex_defaults[nm] = val;
  }
}

var sql = " SELECT bs.bes_staffeltabel_key"
        + ",       bs.bes_staffeltabel_naam"
        + "   FROM bes_staffeltabel bs"
        + " WHERE EXISTS (SELECT sd.bes_srtdeel_key"
        + "                 FROM bes_v_aanwezigsrtgroep sg"
        + ",                     bes_v_aanwezigsrtdeel sd"
        + "                WHERE sg.ins_discipline_key = " + bes_bestelling.dis_key
        + "                  AND sg.bes_srtgroep_key = sd.bes_srtgroep_key"
        + "                  AND sd.bes_staffeltabel_key = bs.bes_staffeltabel_key)"
        + " ORDER BY 2";
var oRs = Oracle.Execute(sql);
var hasAnyStaffels = !oRs.EoF;
oRs.Close();

%>

<html>
  <head>
    <% FCLTHeader.Generate(); %>
    <script type="text/javascript">
      var details_Items = new Array(); // voor details.inc
      dis_key  = <%=bes_bestelling.dis_key%>;
      var hasAnyStaffels = <%=(hasAnyStaffels ? 1 : 0)%>
      var user_kpkey = <%=user.prs_kostenplaats_key() || -1%>;
      var user_kpnaam = "<%=safe.jsstring(user.afdeling().kpn_naam())%>";
      var inclBTW = <%=bes_bestelling.inclBTW%> == 1;
      var maxartikel = <%=bes_disc_info.maxartikel%>;
      var fotomode = <%=bes_disc_info.fotomode%>;
      var bestelmode = <%=bes_disc_info.bestelmode%>;
    </script>
<%  if (bes_key > 0)
    {
      isCorrectie   = generateDetails(bes_key, {edit: true, urole: urole}); // oude include details.inc
    }
    else if (auto_bestellijst)
    {
        generateDetails(bes_key, { edit: true,
                                   auto_bestellijst: true,
                                   from_voorraad: from_voorraad,
                                   psrt_keys: psrt_keys,
                                   pamounts: pamounts,
                                   disc_key: bes_bestelling.dis_key,
                                   urole: urole
                                  });
    }
    else
    {
      if (psrt_keys.length)
      { // Is het geselecteerde aantal niet groter dan het maximale aantal dat mag?
        if (bes_disc_info.maxartikel > 0 && psrt_keys.length > bes_disc_info.maxartikel)
        {
          psrt_keys.length = bes_disc_info.maxartikel;
          pamounts.length = bes_disc_info.maxartikel;
%>
          <script type="text/javascript">
            $(function()
            {
              FcltMgr.alert(L("lcl_bes_max_artikel_transferred"));
            });
          </script>
<%
        }
        generateDetails(bes_key, { edit: true,
                                   psrt_keys: psrt_keys,
                                   pamounts: pamounts,
                                   pregel_kenmerken: pregel_kenmerken,
                                   urole: urole
                                  });
      }
    }
    var hide_cost = bes_disc_info.disc_params_hide_cost_fe && frontend;
    %>
    <script type="text/javascript">
      function changeKostK(zelf)
      {
        if (zelf && <%=S("prs_default_kpn_empty") == 0 ? 1 : 0%>)
        { // Aanroep van onchange van kostenklant vinkje. zelf is dan checkbox object
          if ($("#kostenklant").prop("checked"))
          { // Kostenklant UIT => AAN: Zet eigen (default) kostenplaats van de ingevulde persoon. Indien niet aanwezig dan wordt suggestbox automatisch leeg gemaakt.
            if ($("#person").val() > 0)
            { // Persoon is ingevuld.
              acc_key = $("#default_kostenplaats_person_key").val();
              acc_oms = $("#default_kostenplaats_person_omschr").val();

              // setValue(key, txt, doonChange, checkExist, extraParam, lastTry)
              // lastTry is true zodat suggestbox wordt leeggemaakt indien waarde niet voorkomt (en niet de laatst waarde wordt getoond)
              sgAccount.setValue(acc_key, acc_oms, true, true, null, true);
            }
            else
            { // Persoon is niet ingevuld.
              // setValue(key, txt, doonChange, checkExist, extraParam, lastTry)
              // lastTry is true zodat suggestbox wordt leeggemaakt indien waarde niet voorkomt (en niet de laatst waarde wordt getoond)
              sgAccount.setValue(-1, "", true);
            }
          }
          else
          { // Kostenklant AAN => UIT: Zet eigen (default) kostenplaats van de user. Indien niet aanwezig dan wordt suggestbox automatisch leeg gemaakt.
            //                         urlAdd field op person suggestbox (reloadUrlAdd gebeurt automatisch door FCLTkostenplaatsselector)
            // User kostenplaats gegevens ophalen
            acc_key = user_kpkey;
            acc_oms = user_kpnaam;
            // setValue(key, txt, doonChange, checkExist, extraParam, lastTry)
            // lastTry is true zodat suggestbox wordt leeggemaakt indien waarde niet voorkomt (en niet de laatst waarde wordt getoond)
            sgAccount.setValue(acc_key, acc_oms, true, true, null, true);
          }
        }

        var frm = window.document.getElementById("u2");
        var prop = $(zelf);
        if (prop.length)
        {
<%        if (S("show_ordernr") != 0)
          { /* 0=not present */ %>
            frm.ordernr.disabled = false;
            frm.ordernr.className = 'fldshort';
            frm.ordernr.value = ''; // Altijd wisselen bij toggle
<%        } %>
          if (prop.prop("checked"))
          {
<%          if (S("show_ordernr") == 2)
            { %>
              frm.ordernr.disabled = true;
              frm.ordernr.className = 'fldshort disabled';
<%          } %>
          }
          else
          {
<%          if (S("show_ordernr") == 1)
            { %>
              frm.ordernr.disabled = true;
              frm.ordernr.className = 'fldshort disabled';
<%          } %>
          }
        }
      }

      // Strings and variables needed by sel_items_tab.js
      var confirm_order_before_submit = <%=S("bes_confirm_order_before_submit")?"true":"false"%>;
      var hide_cost = <%=(hide_cost ? "true" : "false")%>;
      var front_end = <% = (fronto || backo) ? "false" : "true" %>;
      var maninfo = false; // Needed by sel_Obj_Op.js
      var currency_pref = '<%=S("currency_pref")%>';
      var currency_suff = '<%=S("currency_suff")%>';
      var show_price = <%=show_price%>;
      var bes_key = <%=bes_bestelling.bes_key || -1%>;
      var is_correctie = <%=isCorrectie?"true":"false"%>;

      $(function()
      {
        $("#besFlex").toggle($("#k_all").val()>0); // verbergen als leeg
        $('textarea').resize(function() { FcltMgr.resized(window) });
        $('textarea').autogrow();
      });

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

      function load_item_info_2(p_srtdeel_key, p_urole, p_aantal)
      {
        var urole = "<%=urole%>"; // Niet de p_urole; deze bevat de srtdeel_omschrijving!!
        var aantal = (p_aantal ? p_aantal : 0); // aantal=0 : zelf nog op winkelwagen drukken om artikel aan bestellijst toe te voegen.
                                                // aantal=1 : na selecteren van artikel wordt deze gelijk in de bestellijst gezet.
        load_item_info(p_srtdeel_key, urole, aantal , -1);
      }
    </script>
  </head>

  <body class="editmode" onload="javascript:loadAction();">
  <% SUBFRAME_START(); %>
<%  var buttons = [];

    if (bes_key < 0 && bes_bestelling.fac_activiteit_key == -1)
      buttons.push({title: L("lcl_bes_submit"), icon: "fa-shopping-cart", action: "MakeOrder(0)", singlepress: true, id: "btn_bes_submit"});
    else
      buttons.push({title: L("lcl_submit"), icon: "fa-fclt-save", action: "MakeOrder(1)",  singlepress: true, id: "btn_bes_submit"});

    if (bes_key > 0 || bes_bestelling.fac_activiteit_key == -1) {
      buttons.push({title: L("lcl_cancel"), icon: "fa-fclt-cancel", action: "bes_cancel()" });
    }

    IFRAMER_HEADER((bes_bestelling.fac_activiteit_key > 0? L("lcl_bes_frame_algemeen_actie") : L("lcl_bes_frame_algemeen")), buttons);

%>
      <script type="text/javascript">
        var sgPersonFor;
        var sgBesItem;

        function loadAction()
        {
<%        if (from_punch) { %>
             AddAllItems(false, false, "<%=urole%>"); // Not editable, don't show received amount
             StaffelKortingResult(); // Wel even totaal tonen
<%        }
          else if (auto_bestellijst && !from_voorraad) { %>
             AddAllItems(true, false, "<%=urole%>"); // Editable, don't show received amount
<%        }
          else if (bes_key > 0 || from_voorraad)
          {
            Response.Write("AddAllItems(" + (this_bes.canItemsChange? "true" : "false") + ", false, '" + urole + "');"); // Don't show received amount
%>          if (maxArtikelReached())
            {
              $("#besitem_show").attr('disabled', true);
              $("#besitem_show").next('.suggestklikker').hide();
              $("#srtgroep_text").html(L("lcl_bes_max_artikel_reached"));
            }
<%        }
          else
          {
            if (!fronto && !backo)
            { /* frontend */ %>
               var frm = window.document.getElementById("u2");
               if (frm.ordernr) {
<%               if (S("show_ordernr") == 2)
                 { %>
                   frm.ordernr.disabled = true;
                   frm.ordernr.className='disabled';
<%               } %>
               }

<%          }
            else
            { %>
              changeKostK(); // Even ordernr goed aan/uitzetten
<%          }
          } %>

          if (front_end)
            showPicture('<%=safe.jsstring(bes_disc_info.disc_params_logo_url)%>');

<%        if (bes_key < 0 && artikel_key > 0) { %>
            load_item_info(<%=artikel_key%>, '<%=urole%>', 1, -1); // AutoAdd eentje
<%        } %>
        }

        function sgBesItemOnLoad(sgBesItem)
        { <%
          if (this_bes.canItemsChange && !bes_disc_info.isFreeArticle)
          { %>
            sgBesItem.CheckJustOne();
<%        } %>
        }

        function submit_u2() // See job-module
        {
          document.forms.u2.submit();
        }

        function favouriteList()
        {
          // Als het maximum aantal artikelen voor deze discipline bereikt is dan geen favorieten artikel meer te kiezen.
          if (maxArtikelReached())
            return false;

          url = "../bes/sel_favourites.asp?disc_key=<%=bes_bestelling.dis_key%>";
          FcltMgr.openModalDetail(url, "<%=L("lcl_bes_favour_title")%>",
                  {
                    callback: async function (data)
                            {
                              var res = data.selItemList;
                              if (res)
                              {
                                var first = true;
                                var artikelgroep_key;
                                for (var i=0; i < res.length; i++)
                                {
                                  // Als het maximum aantal artikelen voor deze discipline bereikt is dan geen favorieten artikel meer toevoegen.
                                  if (maxArtikelReached())
                                    break;

                                  // Als flexkenmerken met prs-sql in default dan moet de persoon minimaal ingevuld zijn.
                                  if (res[i].num_prssql != 0 && !await validateForm("u2", { checkOnly: ["person_show"] }))
                                    continue; // Dit item niet toevoegen. Verder met het volgende item.

                                  if (res[i].singlegroep)
                                  { // Artikelen moeten binnen dezelfde artikelgroep aanwezig zijn.
                                    if (first)
                                    { // Zet de juiste artikelgroep
                                      if (getAantalArtikelen() == 0)
                                      { // Er is nog geen vaste artikelgroep.
                                        // setValue(key, txt, doonChange, checkExist, extraParam, lastTry)
                                        sgSrtgroep.setValue(res[i].srtgroup_key, res[i].srtgroup_text, false, false, res[i].singlegroep, true)
                                        artikelgroep_key = res[i].srtgroup_key;
                                      }
                                      else
                                      { // Er is een vaste artikelgroep.
                                        artikelgroep_key = $("#srtgroep").val();
                                      }
                                      first = false;
                                    }
                                    // Controleer of het artikel binnen de juiste artikelgroep aanwezig is
                                    if (artikelgroep_key != res[i].srtgroup_key)
                                      continue; // Dit item niet toevoegen. Verder met het volgende item.
                                  }
                                  AddItem(res[i], 1);
                                }
                              }
                            }
                   });

          //return (res && res[0].length > 0);
        }

        function favouriteAdd(bes_item_info) {
          if (!bes_item_info || bes_item_info.srtdeel_key < 0)
          {
            FcltMgr.alert(L("lcl_shared_choose_item_first"));
            return;
          }

          url = "../bes/addFavourites.asp" + "?srtdeel_key=" + bes_item_info.srtdeel_key
                                           + "&disc_key=<%=bes_bestelling.dis_key%>";
          FcltMgr.openModalDetail(url, '<%=L("lcl_bes_favour_list")%>');
        }
      </script>

      <form name='u2' id='u2' method='POST'
            action="bes_edit_bestelling_save.asp?x=x<%=transitParam%>&correctie=<%=isCorrectie?1:0%>"
            target="hidFrameSubmit">

<%    BLOCK_START("besHeader" , L("lcl_bes_aanvragergegevens"), { ishtmlsafe: true, icon: "fa-user"}); %>

        <script type="text/javascript">
          var disc_params_for_others = (<%=bes_disc_info.disc_params_for_others? 1 : 0%> == 1);
          var prs_dep_default_kpn_voor = <%=S("prs_dep_default_kpn_voor")%>;
          function onChangeName(p_key, txt) // Change contact/aanvrager name
          {
            if (p_key > 0)
            {
              if (disc_params_for_others) sgPersonFor.setValue(p_key, txt);
              GetSetOrderInfo(p_key);
            }
          }

          function GetSetOrderInfo(p_key, p_text)
          {
            var setmandaat = 0;
            // p_text = undefined: p_key is gelijk aan prs maar ook gelijk aan prs_voor. Mandaat kan altijd gezet worden.
            // p_text = text: p_key is gelijk aan prs_voor. Mandaat kan alleen gezet worden als disc_params_for_others && S("prs_dep_default_kpn_voor") == 1
            if (!p_text || (p_text && disc_params_for_others && prs_dep_default_kpn_voor == 1))
              setmandaat = 1;
            if (p_key > 0)
            {
              $.getJSON("../prs/get_prs_info_ajax.asp?req_info=prs_perslid&prs_aflever=1&prs_profiel=<%=bes_bestelling.dis_key%>&prs_perslid_key=" + p_key + "&setmandaat=" + setmandaat, process_besteller_info);
              // Alleen reloaden als persoonsafhankelijke kenmerken; anders heel irritant
              if ($("#k_flexsql").val() == 1)
              {   // TEST: wat als niet bes_voor?
                  var s = "load_kenmerk.asp?urole=<%=urole%>"
                        + "&bes_key=<%=bes_bestelling.bes_key%>"
                        + "&disc_key="+ dis_key
                        + "&kenmerktype=B"
                        + (bes_key > 0 && !this_bes.canMainChange? "&reado=1" : "")   // testen
                        + "&prs_key=" + p_key;
                  $("#besFlexList").load(s, function () { FcltMgr.resized () });
              }
            }
          }

          function onChangeAdres(p_key)
          {
          	$('#delivery_place').val('');
          }
          function onChangeBedrijf(p_key)
          {
            $("#btw").load("../Shared/loadBtwTabel.asp",
                            { bedrijf_key: p_key,
                              sel_key: "perc", // select key is fin_btwtabelwaarde_perc
                              required: true,
                              selectjustone: true,
                              emptyOption: ""
                            }
                          );
          }
        </script>
        <input type="hidden" id="default_kostenplaats_person_key" value="<%=bes_bestelling.kostenplaats_key%>">
        <input type="hidden" id="default_kostenplaats_person_omschr" value="<%=safe.htmlattr(bes_bestelling.kostenplaats_omschr)%>">
        <input type="hidden" name="act_key" value="<%=bes_bestelling.fac_activiteit_key%>">

<%      // Zijn wij een incidentele bestelling via een melding?
        if (bes_bestelling.mld_key != null)
        {
            var params = { infoPointer: { Url: "appl/mld/mld_melding.asp?urole=" + urole + "&mld_key=" + bes_bestelling.mld_key,
                                          Title: L("lcl_complain") + " " + bes_bestelling.mld_prefix + bes_bestelling.mld_key
                                        }
                        }
            ROFIELDTR("fld", L("lcl_bes_onbe_call"), bes_bestelling.mld_prefix+bes_bestelling.mld_key, params);
        }

        // Een fiatteur heeft misschien geen WEB_BESxxx en dus geen bes_disc_info.authparams
        // Aanvrager/invoerder/contactpersoon
        FCLTpersoonselector(
               "person",
               "sgPerson",
             { perslidKey: bes_bestelling.perslid_key,
               label: L("lcl_name"),
               autlevel: bes_disc_info.authparams? bes_disc_info.authparams.PRSwritelevel : 9,
               readonly: bes_key > 0 || !fronto,
               moreinfo: !frontend,
               required: true,
               onChange: "onChangeName"
             });

        // Kostenplaats en order_nr aanpasbaar totdat 1 regel status AV (7) is
        // Alleen door BO met WEB_ORDFIN rechten als bo_status is 3 t/m 6
        // Als bo_status is 2 dan alleen door fiateeur.
        // Alleen aanpasbaar na klikken van 'pas aan' button
        // Bestelling voor alleen aanpasbaar als ook kostenplaats aanpasbaar is
        var kp_editable = (  (bes_bestelling.rfoStatus==null)
                          || (bes_bestelling.rfoStatus >= 3 && bes_bestelling.rfoStatus <= 6
                             && writeORDFIN && this_bes.canMainChange)
                          || this_bes.canApprove
                         );
        // Alleen aanpasbaar na klikken van 'pas aan' button, bij toevoegen van nieuwe bestelling en bij fiatteren

        if (bes_disc_info.disc_params_for_others)
        {
          // Bestelling voor
          FCLTpersoonselector(
                 "personFor",
                 "sgPersonFor",
               { perslidKey: bes_bestelling.perslid_key_voor,
                 label: L("lcl_bes_order_for"),
                 autlevel: bes_disc_info.authparams? bes_disc_info.authparams.PRSwritelevel : 9,
                 readonly: !kp_editable || (bes_disc_info.authparams? bes_disc_info.authparams.PRSwritelevel : 9) == 9,
                 moreinfo: !frontend,
                 required: true,
                 filtercode: bes_disc_info.kpautorisatie? "KP" : null,
                 onChange: "GetSetOrderInfo"
               });
        }

        //======= FIELD 'Kostenplaats' =======
        FCLTkostenplaatsselector("kostenplaats",
                                 "sgAccount",
                                 bes_bestelling.perslid_key != -1? bes_bestelling.perslid_key : user_key,
                                 { kostenplaatsKey: bes_bestelling.kostenplaats_key,
                                   label: L("lcl_account"),
                                   filtercode: "AA", // Alleen actieve kostenplaatsen kunnen selecteren "All Active". Huidige waarde als initiële waarde kan bij kostenplaatsen altijd.
                                   urlAdd: [{ urlParam: "prs_key", field: (frontend && bes_disc_info.disc_params_for_others && S("prs_dep_default_kpn_voor") == 1? "personFor" : "person") }],
                                   kptoggle: { ischecked: (1 || mld_kk == 1), // TODO
                                               onChange: "changeKostK(this);",
                                               readonly: (frontend) || !kp_editable,
                                               hidden: frontend },
                                   readonly: !(kp_editable || (writeORDFIN && this_bes.canWrite("WEB_BESBOF") && this_bes.canMainChange)), // Ook aanpasbaar als ORDFIN + BESBOF + canMainChange rechten
                                   required: bes_disc_info.discipline_kpnverplicht == 1,
                                   hide: bes_disc_info.discipline_kpnverplicht == 2
                                 });

        if (bes_bestelling.bes_key < 0)
        {
          // Mandaat
          var sql = "SELECT fac_profiel_key"
                  + " FROM fac_profiel";
          var oRs = Oracle.Execute(sql);
          var hasProfile = (!oRs.eof);
          oRs.Close();
          var autoAccept = (bes_disc_info.disc_params_autoacceptrfo == 1);

          if (hasProfile && !autoAccept)
          {
            var txt = "";
            if (frontend)
            {
                var sql = "SELECT prs.getprofiellimiet(" + (S("prs_dep_default_kpn_voor") == 0? bes_bestelling.perslid_key : bes_bestelling.perslid_key_voor) + ", " + bes_bestelling.dis_key +") limiet FROM DUAL";
                var oRs = Oracle.Execute(sql);
                txt = oRs("limiet").value || "";  // zou alsnog leeg kunnen zijn
                oRs.Close();
            }
            ROFIELDTR("", L("lcl_bes_orderlimit"), txt, { suppressEmpty: true });
          }
        }

        if (S("show_ordernr") != 0)
        { %>
          <tr>
            <td class="label"><label for="ordernr"><%=L("lcl_mld_inf_Ordernr")%></label></td>
            <td>
              <input name="<%=kp_editable? "ordernr" : "ordernr_ro"%>"
                     id="ordernr"
                     type="text"
                     class="fldshort"
                     <%= kp_editable? "":" disabled class=disabled " %>
                     maxlength="30"
                     value="<%=safe.htmlattr(bes_bestelling.orderNr)%>"
                     <% /* disablen gebeurt wel door loadAction.ChangeKostK aanroep */ %>
              >
              <input name="<%=kp_editable?"ordernr_hidden2":"ordernr"%>" value="<%=safe.htmlattr(bes_bestelling.orderNr)%>" type="hidden">
            </td>
          </tr>
<%      }

        FCLTcalendar( "calendar",
            { label   : (bes_disc_info.disc_params_leverdagen>0? L("lcl_bes_deli_date_exp") : L("lcl_bes_deli_date")),
              datum   : bes_bestelling.rfoDeliverydate,
              initEmpty: bes_key < 0 && bes_disc_info.disc_params_leverdagen < 0,
              maxPast : 0,
              maxFuture: S("bes_datum_limiet"),
              readonly: (bes_key > 0 && !this_bes.canMainChange) || leverdatum,
              saveValue: (leverdatum!=null), // wel submitten
              required: true
            });

        var ALGreadlevel = bes_disc_info.authparams? bes_disc_info.authparams.ALGreadlevel : 9;
        //var aflever_readonly = (bes_key > 0 && bes_bestelling.rfoStatus > 4)
        var aflever_readonly = (bes_key > 0 && bes_bestelling.rfoStatus > 5)
        // if (getQParamInt("adres_key", -1) > 0)
        //     aflever_readonly = true
        var adres_key = getQParamInt("adres_key", -1);

/*        sql = "SELECT l.mld_adres_key"
          + ", l.mld_adres_naam, l.mld_adres_upper"
          + (aflever_readonly? " FROM mld_adres l" : " FROM mld_v_afleveradres l")
          + " WHERE 1=1"
          + getFiltClauseLocatie("EXP").where
          + (ALGreadlevel >= 0
            ? " AND l.alg_locatie_key IN (SELECT alg_locatie_key FROM fac_v_my_locations "
              + " WHERE prs_perslid_key = " + user_key
              + " AND niveau = " + ALGreadlevel + ")"
              : "")
          + (bes_bestelling.bes_key > 0 // Huidige waarde ook toevoegen aan lijst
            ? " UNION"
              + " SELECT   l.mld_adres_key"
              + ", l.mld_adres_naam, l.mld_adres_upper"
              + " FROM mld_v_afleveradres l"
              + " WHERE l.mld_adres_key = " + bes_bestelling.mld_adres_key
            : "")
          + " ORDER BY mld_adres_upper";
        FCLTselector("deliveryAddr", sql,
                        { label: L("lcl_delivery_address"),
                           emptyOption: "",
                           readonly: aflever_readonly,
                           initKey: bes_bestelling.mld_adres_key,
                           onChange: "$('#delivery_place').val('')",
                           required: true
                        }
                      );

        if (aflever_readonly && bes_bestelling.mld_adres_key > 0)
        {
          Reponse.Write("<input type='hidden' name='deliveryAddr' value='" + bes_bestelling.mld_adres_key + "'>")
        }
*/

          FCLTadresselector("deliveryAddr", "sgAdres",
                            { trid: "deliveryaddress",
                              label: L("lcl_delivery_address"),
                              adresKey:  bes_bestelling.mld_adres_key,
                              locKey: bes_bestelling.alg_locatie_key,
                              emptyOption: "",
                              filtercode: "A",
                              autlevel: ALGreadlevel,
                              onChange: "onChangeAdres",
                              readonly: aflever_readonly || (adres_key > 0 && bes_key < 0),
                              required: true
                            }) ;
          var filtClause = getFiltClauseAdres("A", { autlevel: ALGreadlevel });
          var sql_ad = "SELECT m.mld_adres_key"
                     + "     , m.mld_adres_naam"
                     + "  FROM mld_adres m"
                     + " WHERE mld_adres_verwijder IS NULL"
                     + (bes_bestelling.alg_locatie_key > -1 ? " AND m.alg_locatie_key = " + bes_bestelling.alg_locatie_key : "")
                     + filtClause
                     + " ORDER BY m.mld_adres_key";
          var oRs = Oracle.Execute(sql_ad);
          var mld_adres_key = -1;
          var mld_adres_naam = "";
          if (!oRs.eof)
          {
            mld_adres_key = oRs("mld_adres_key").Value;
            mld_adres_naam = oRs("mld_adres_naam").Value;
          }
          oRs.Close();
%>
          <script type="text/javascript">
            $(function()
            { // Als het afleveradres hidden is, dan het adres met de laagste mld_adres_key invullen.
              if ($("#deliveryaddress").is(":hidden"))
              { // setValue(key, txt, doonChange, checkExist, extraParam, lastTry)
                // Waarde niet checken, gewoon invullen. Als de key maar goed is.
                sgAdres.setValue(<%=mld_adres_key%>, "<%=safe.jsstring(mld_adres_naam)%>");
              }
            });
          </script>
<%
          if (S("bes_afleverruimte_verplicht") < 2)
            RWFIELDTR("delivery_place", "fld", L("lcl_bes_del_room"), bes_bestelling.afleverruimte,
                       {
                           required: S("bes_afleverruimte_verplicht") == 1, // Afleverruimte zichtbaar en/of verplicht {0=zichtbaar en niet verplicht (default) | 1=zichtbaar en verplicht | 2=niet zichtbaar en niet verplicht}
                           readonly: aflever_readonly,
                           maxlength: 30
                       })
        BLOCK_END();


        var show_leverancier = !(backo && bes_disc_info.isFreeArticle);
        bes.generateBesInfoBlock(bes_bestelling, bes_disc_info, show_leverancier, "RW");
        %><div id='besFlex' class='besFlex'></div><%
        generateFlexKenmerkCode ({ urole: urole,
                                   bes_key: bes_bestelling.bes_key, // Bestelling key
                                   disc_key: bes_bestelling.dis_key,
                                   kenmerktype: "B",
                                   reado: (bes_bestelling.bes_key > 0) && !this_bes.canMainChange,
                                   prs_key : bes_bestelling.perslid_key_voor,
                                   defaults : bes_bestelling.flex_defaults // flex_defaults=bestellingid=12345
                                 });

        if (isCorrectie)
        {
            BLOCK_START("besCorrectie" , L("lcl_bes_correctie"), {icon: "fa-check-square"});
                Response.Write("<tr><td>{0}</td></tr>".format(L("lcl_bes_correctie_info")));
            BLOCK_END();
        }
%>
        <input type="hidden" name="srtdeel_keys"      id="srtdeel_keys"     value="">
        <input type="hidden" name="amount_string"     id="amount_string"    value="">
        <input type="hidden" name="item_keys"         id="item_keys"        value="">
        <input type="hidden" name="flexkey_string"    id="flexkey_string"   value="">
        <input type="hidden" name="flexval_string"    id="flexval_string"   value="">
        <input type="hidden" name="flexdeel_string"   id="flexdeel_string"  value="">
        <input type="hidden" name="flexitem_string"   id="flexitem_string"  value="">

        <% // ======== BLOCK om itemregels toe te voegen ========
        if (this_bes.canItemsChange && bes_disc_info.bestelmode != 2 && bes_disc_info.bestelmode != 3) // => bes_disc_info.bestelmode == 2; 'Bestellijst' en bes_disc_info.bestelmode == 2; 'Actuele lijst' (Geen artikel-picker meer nodig)
        {
          BLOCK_START("besItemSel" , L("lcl_bes_selectieblok") + " " + safe.html(bes_disc_info.discipline_omschrijving) + " " + (bes_bestelling.inclBTW? L("lcl_shared_inclBTW") : L("lcl_shared_exclBTW")), { ishtmlsafe: true, icon: "fa-filter" });

          if (bes_disc_info.isFreeArticle) // => bes_disc_info.bestelmode == 1; 'Vrij aanmaken'
          {
            FCLTbedrijfselector("lev_key", // Leverancier
                                "sg_lev",
                              { companyKey: bes_bestelling.prs_bedrijf_key||-1,
                                label: L("lcl_bes_Supplier"),
                                filtercode: "Lv",
                                required: true,
                                readonly: !(bes_key < 0 || (bes_key > 0 && backo)),
                                onChange: "onChangeBedrijf"
                              });
            RWFIELDTR("srtdeel_nr",   "fld", L("lcl_bes_srtdeel_nr"), "",  { required: true, maxlength: 32 });
            RWFIELDTR("omschrijving", "fld", L("lcl_bes_srtdeel_oms"), "", { required: true, maxlength: 100 });
            RWFIELDTR("unit",         "fld", L("lcl_bes_unity"), "",       { maxlength: 30 });
            RWFIELDTR("price",        "fld currency", L("lcl_bes_price_per_unity"), "", { requiredor0: true, maxlength: 10 });

            var sql_btw = "SELECT w.fin_btwtabelwaarde_perc"
                        + "     , w.fin_btwtabelwaarde_oms"
                        + "  FROM fin_btwtabelwaarde w"
                        + "     , fin_btwtabel f"
                        + " WHERE w.fin_btwtabel_key = f.fin_btwtabel_key"
                        + "   AND f.fin_btwtabel_verwijder IS NULL"
                        + "   AND w.fin_btwtabelwaarde_verwijder IS NULL"
                        + "   AND f.fin_btwtabel_default = 1"
                        + " ORDER BY w.fin_btwtabelwaarde_perc";
            FCLTselector("btw",
                          sql_btw ,
                          { label: L("lcl_btw_percentage"),
                            selectjustone: true,
                            emptyOption: "",
                            required: true
                          }
                        );

            RWFIELDTR("aantal_text",  "fld number", L("lcl_bes_amount"), "",      { required: true, maxlength: 15 });
%>          <tr id="buttons_tr"><td colspan="2">
                      <div class="buttoncontainer smallbuttons besartbtns"><%
                            buttons = [];
                            buttons.push({tooltip: L("lcl_bes_add_btn"), icon: "fa-cart-plus", xclass: "bescart", action:"AddFreeArticleItem('"+urole+"')"});
                            CreateButtons(buttons, { showIcons: true })
                      %></div>
            </td></tr>

<%
          }
          else // Gewoon artikel uit catalogus kiezen => bes_disc_info.bestelmode == 0; 'Uit catalogus'
          {
            FCLTartikelgroepselector("srtgroep",
                                     "sgSrtgroep",
                                     { label: L("lcl_bes_srtgroup"),
                                       artikelgroepKey: bes_bestelling.srtgroep,
                                       disc_key: bes_bestelling.dis_key,
                                       onChange: bes_disc_info.isFreeArticle?null:"onChangeArtikelgroep",
                                       required: bes_disc_info.isFreeArticle,
                                       extraParamField: "singlegroep",
                                       extracode: "S",
                                       readonly: (bes_key > 0 && bes_bestelling.singlegroep)
                                     });

            if (hasAnyStaffels) // Al eerder bepaald
            {
                sql = " SELECT bs.bes_staffeltabel_key"
                    + ",       bs.bes_staffeltabel_naam"
                    + "   FROM bes_staffeltabel bs"
                    + " WHERE EXISTS (SELECT sd.bes_srtdeel_key"
                    + "                 FROM bes_v_aanwezigsrtgroep sg"
                    + ",                     bes_v_aanwezigsrtdeel sd"
                    + "                WHERE sg.ins_discipline_key = " + bes_bestelling.dis_key
                    + "                  AND sg.bes_srtgroep_key = sd.bes_srtgroep_key"
                    + "                  AND sd.bes_staffeltabel_key = bs.bes_staffeltabel_key)"
                    + " ORDER BY 2";

                FCLTselector("staffelgroep", sql, // filter op suggest besitem
                            { label: L("lcl_bes_staffelgroep"),
                              emptyOption: ""
                            }
                          );
            }
            else
            { // Staffelgroep hidden weergeven met -1 als waarde (geen staffelgroep geselecteerd)
    %>        <input type="hidden" id="staffelgroep" tabindex="-1" class="fldselect" value="-1">
    <%      }

            FCLTbesitemselector("besitem",
                                "sgBesItem",
                                { label: L("lcl_bes_srtdeel"),
                                  bessrtdeel_key: -1,
                                  disc_key: bes_bestelling.dis_key,
                                  readonly: !this_bes.canItemsChange,
                                  urlAdd: [{urlParam: "srtgroep_key", field: "srtgroep"},
                                           {urlParam: "staffel_key", field: "staffelgroep"}],
                                  onChange: "load_item_info_2",
                                  favouritelist: true
                            });
          // Het informatieblok van een geselecteerd artikel
    %>
            <tr>
              <td class="label">
                <label>
                  <span id="fa_img">
                    <span id="faicon"
                       style="display: none"><%=I("fa-question fa-4x")%>
                    </span>

                    <img class="besphoto"
                         src="../Pictures/no_photo.gif"
                         id="photo"
                         onLoad="FcltMgr.resized(window);"
                         alt="<%=safe.htmlattr(L("lcl_res_article"))%>">
                  </span>
                </label>
              </td>
              <td class="besdetailtd">
                  <table class="besdetailtable">
                      <tr><td colspan="2" class="iteminfo2" title="<%= L("lcl_bes_srtgroup") %>" id="srtgroep_text"></td></tr>
                      <tr><td colspan="2" class="iteminfo1" title="<%=L("lcl_bes_srtdeel_full")%>" id="srtdeel_omschrijving"></td></tr>

                      <tr id="opmerking_tr" style="display:none">
                          <td colspan="2"  class="iteminfo3" title="<%=L("lcl_bes_item_remark")%>" id="srtdeel_opmerking"></td></tr>

                      <tr><td colspan="2"  class="iteminfo2" title="<%=L("lcl_bes_Price")%>"><span id="prijs_text"></span><span id="eenheid_sep"></span><span id="eenheid_text"></span></td></tr>
                      <tr id="veelvoud_tr" style="display:none">
                          <td colspan="2"  class="iteminfo2" title="<%=L("lcl_bes_multiple")%>" id="veelvoud_text"></td></tr>
                      <tr id="stock_tr"    style="display:none">
                          <td colspan="2"  class="iteminfo2" title="<%=L("lcl_bes_stock")%>"><%=L("lcl_bes_stock")%>: <span id="stock_text"></span></td></tr>
                      <tr id="aantal_tr" style="display:none">
                          <td><label><%=L("lcl_bes_amount")%></label><td><input onfocus="this.select()" class="fldshort" type="text" id="aantal_text" value="1"></td></tr>
                      <tr id="buttons_tr" style="display:none"><td colspan="2">
                      <div class="buttoncontainer smallbuttons besartbtns"><%
                            buttons = [];
                            buttons.push({tooltip: L("lcl_bes_favour_add"), icon: "fa-star",  action:"favouriteAdd(bes_item_info)"});
                            buttons.push({tooltip: L("lcl_bes_add_btn"),    icon: "fa-cart-plus", xclass: "bescart", action:"AddSuggestItem(bes_item_info, parseFloat($('#aantal_text').val().replace(',','.')), '"+urole+"')"});
                            CreateButtons(buttons, { showIcons: true })
                      %></div>
                      </td></tr>
                  </table>
              </td>
          </tr>
        <% }
           BLOCK_END();
        } // this_bes.canItemsChange

        BLOCK_START("besItems", L("lcl_bes_geselecteerd") + " " + (bes_bestelling.inclBTW? L("lcl_shared_inclBTW") : L("lcl_shared_exclBTW")), { ishtmlsafe: true, icon: "fa-list", wide: true, nopadding: true }); %>
        <tr><td>
        <!-- SELECTED ITEMS -->
        <table width="100%" style='border:0px; padding:0px;' id="sel_items" class="rstable no-floating">
        <thead>
          <tr>
            <th></th>
            <!--<th><%=L("lcl_bes_srtgroup")%></th>-->
<% if (bes_disc_info.fotomode == 1) // Foto erbij
{
%>
            <th><%=L("lcl_bes_image")%></th>
<%
}
%>
            <th><%=L("lcl_bes_srtdeel_nr")%></th>
            <th><%=L("lcl_bes_srtdeel")%></th>
            <th><%=L("lcl_bes_unity")%></th>
<%          if (!hide_cost)
            { %>
              <th style="text-align:right"><%=L("lcl_bes_price_per_unity")%></th>
              <th style="text-align:right"><%=L("lcl_btw_percentage")%></th>
<%          } %>
            <th style="text-align:right"><%=L("lcl_bes_amount")%></th>
<%          if (!hide_cost)
            { %>
              <th style="text-align:right" <%=show_price ? "" : " style='display:none;'" %>><%=L("lcl_bes_subtotal")%></th>
<%          } %>
          </tr>
        </thead>
        <tbody>
          <!--hier komen de geselecteerde artikelen-->
        </tbody>
        </table>
<%
        if (!hide_cost)
        {
            if (bes_key > 0)
              totaal = bes_bestelling.totaal - bes_bestelling.rfoBesKosten + bes_bestelling.rfoLevKosten;
            else
              totaal = 0;

            if (bes_key > 0 && !this_bes.canItemsChange)
            { %>
              <table width="100%">
<%              if (bes_bestelling.rfoBesKosten != 0 && show_price)
                  ROFIELDTR("fldtotkosten", L("lcl_bes_order_discount"), (bes_bestelling.rfoBesKosten * -1), {datatype: "currency", prefix: true});

                if (bes_bestelling.rfoLevKosten != 0 && show_price)
                  ROFIELDTR("fldtotkosten", L("lcl_bes_tpcosts"), bes_bestelling.rfoLevKosten, {datatype: "currency", prefix: true});

                if (show_price)
                  ROFIELDTR("fldtotkosten", L("lcl_total"), totaal, {datatype: "currency", prefix: true});
%>            </table><%
            }
            else
            { %>
              <div id="total_list" align="right">
              <table>
                  <tr <% = show_price ? "" : " style='display:none;'" %> >
                  <td><label for="total"><%=L("lcl_bes_total_cost")%></label><input type='hidden' id='total' name='total' value='0'></td>
                  <td width="100px" id='total_txt' align="right"><%=S("currency_pref")%>&nbsp;<%=safe.curr(totaal)%></td>
                  </tr>
              </table>
              </div>
<%          }
        }
%>      </td></tr><%
        BLOCK_END();
        IFACE.FORM_END();
%>
      </form>
      <iframe src="../Shared/empty.html"
              onload='iface.button.enable("btn_bes_submit")';
              name="hidFrameSubmit"
              style="display:none"></iframe>
    <% SUBFRAME_END(); %>
  </body>
</html>
<% ASPPAGE_END(); %>
