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

    File:               bes_bestelling.asp
    Description:        Muteerscherm voor bestellingen
                        dit is de grote 'wrapper' voor de diverse andere schermen
    Parameters:         urole
                        bes_key
                        dis_key (optioneel, anders vragen we er direct om)
    Context:
    Note:

*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="bes.inc" -->

<%
FCLTHeader.Requires({ plugins: ["suggest","jQuery"],
                      js: ["jquery-ui.js"] })


// AUTORISATIEPARAMETERS
var urole = getQParamSafe("urole", "xx");
var bes_key = getQParamInt("bes_key", -1);
// defaults
var adres_key = getQParamInt("adres_key", -1);
var dis_key = getQParamInt("dis_key", -1);
var from_punch = getQParamInt("punch", 0) == 1;
var from_voorraad = getQParamInt("voorraad", 0) == 1;
var act_key = getQParamInt("act_key", -1);
var mld_key = getQParamInt("mld_key", -1);
var correctie = getQParamInt("correctie", 0); // Is een correctiebestelling, wordt hier alleen doorgegeven aan de transitparams

if (bes_key == -1 && urole == "xx") // Vanuit prodsearch, probeer intelligente autoUrole
{
  var artikel_key = getQParamInt("artikel_key", -1);
  // vanuit prodsearch krijgen we eigenlijk ook de dis_key mee
  // maar daar willen we niet van afhankelijk zijn.
  if (artikel_key > 0 && dis_key < 0) // slimme autourole
  {
    sql = "SELECT ins_discipline_key"
        + "  FROM bes_srtgroep bsg,"
        + "       bes_srtdeel bsd"
        + " WHERE bsg.bes_srtgroep_key = bsd.bes_srtgroep_key"
        + "   AND bsd.bes_srtdeel_key = " + artikel_key;
    oRs = Oracle.Execute(sql);
    dis_key = oRs("ins_discipline_key").Value;
  }
  var canFOF = user.checkAutorisation("WEB_BESFOF", true, dis_key);
  urole = canFOF?"fo":"fe";
}

transitParam = buildTransitParam(["punch", "voorraad", "mld_key", "artikel_key", "ps", "pn", "act_key", "leverdatum", "adres_key", "flex_defaults", "regel_flex_defaults", "correctie", "codepage"]); // ps en pn zijn array vanuit bes_hook_punch.asp

// OVERIGE PARAMETERS

%>

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

    <script type="text/javascript">
      var punchwindow = false;
      $(function ()
      {
<%      if (bes_key > 0)
        { %>
          FcltMgr.setTitle(L("lcl_bes_bestelling") + " " + "<%=S("bes_bestelling_prefix") + bes_key%>", {hot: false});
<%      }
        else
        { %>
          if (!punchwindow)
          {
            FcltMgr.setTitle(L("lcl_mld_new_bestelling"), {hot: true});
<%        if (act_key === -1) { %>
            FcltMgr.startEdit(window, {nomessage: true});
<%        } %>
          }
<%      } %>
      });

      function besClose(params)
      {
        params = params || {};
<%      if (bes_key == -1)
        { %>
          if (params.cancel || params.close)
          {
            FcltMgr.closeDetail(window, params);
            return true;
          }
          if (!params.keepForm)
          {
            if (params.bes_key > 0)
            {
              FcltMgr.stopEdit(window);
              $("#besframe")[0].src = "bes_show_bestelling.asp?urole=<%=urole%>&bes_key=" + params.bes_key;
            }
            else
              window.location.href = "bes_bestelling.asp?verynew=1&urole=<%=urole%>&bes_key=" + params.bes_key;
          }
<%      }
        else
        { /* Bestaande bestelling bewerkt, switch naar show-mode */ %>
          if (params.close) // net verwijderd?
            FcltMgr.closeDetail(window, params)
          else if (!params.keepForm)
          {
            FcltMgr.setTitle(L("lcl_bes_bestelling") + " " + "<%=S("bes_bestelling_prefix")%>" + params.bes_key);
            $("#besframe")[0].src = "bes_show_bestelling.asp?urole=<%=urole%>&bes_key=" + params.bes_key + "&embedded=1";
          }
<%      } %>
      }
    </script>

<%
//======================================
%>
  </head>

  <body>
  <% PAGE_START(); %>
    <%
    var page = "";
    if (bes_key == -1)
    {
        if (mld_key > 0)
        {
            sql = "SELECT SM.bes_ins_discipline_key"
                + "  FROM mld_melding M"
                + ",      mld_stdmelding SM"
                + " WHERE M.mld_stdmelding_key = SM.mld_stdmelding_key"
                + "   AND M.mld_melding_key = " + mld_key;
            oRs = Oracle.Execute(sql);
            if (oRs("bes_ins_discipline_key").value)
                dis_key = oRs("bes_ins_discipline_key").value;
        }

        if (dis_key == -1) // vraag zo snel mogelijk om een discipline
        {
%>
        <script type="text/javascript" >
         var disc_url = "../bes/bes_select_discipline.asp" + ("<%=correctie%>" == "1" ? "?intern=1" : "");
         FcltMgr.openModalDetail(disc_url, "<%=L("lcl_bes_fac_select_cat")%>",
                  { nomessage: true,
                    callback: function (data)
                      {
                        if (!data)
                            FcltMgr.closeDetail(window, { cancel: true } );
<%                      if (act_key > 0) { %>
                        var page = "bes_edit_bestelling.asp";
<%                      } else { %>
                        var page = "bes_bestelling.asp";
<%                      } %>
                        page += "?urole=<%=urole%><%=transitParam%>&dis_key=" + data.disc_key; // Maak een nieuw
                        window.location.href = page;
                      },
                    noClose: <%=(act_key > 0 ? "true" : "false")%>
                  });
        </script>
<%
        }
        else if (dis_key > 0) // Is het punchout?
        {
            var autfunction = {fo: 'WEB_BESFOF', bo: 'WEB_BESBOF'}[urole] || 'WEB_BESUSE';
            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
            // Vooral met punchout is dat erg pijnlijk: je kwam wel bij de leverancier, kon alles kiezen
            // en later, pas bij terugkomst kreeg je melding dat je geen rechten had.
            user.auth_required_or_abort(authparams.PRSwritelevel < 9 && authparams.ALGwritelevel < 9);
            var bes_disc_info = bes.disc_info(dis_key);

            var newWindow = false;
            if (!from_punch && bes_disc_info.disc_params_punchouturl && !bes_disc_info.isFreeArticle)
            {
                if (!bes_disc_info.disc_params_punch_bedr_key )
                    abort_with_warning(L("lcl_bes_disc_params_bedr_empty").format(bes_disc_info.discipline_omschrijving));

                var purl = bes_disc_info.disc_params_punchouturl;
                var hook_url = "bes_hook_punch.asp?urole="+urole+"&dis_key="+dis_key+transitParam;
                // Biedt de mogelijkheid de url te verrijken met gebruikers info
                var subst_table = { "RANDOM"     : shared.random(16),
                                    "PERSLID_KEY": user_key,
                                    "uid"        : user_key,
                                    "uanm"       : user.prs_perslid_achternaam(),
                                    "uvnm"       : user.prs_perslid_voornaam(),
                                    "ugender"    : user.prs_perslid_geslacht(),
                                    "umail"      : user.prs_perslid_email(),
                                    "utel"       : user.prs_perslid_telefoonnr() /* || user.prs_perslid_mobiel() */,
                                    "umob"       : user.prs_perslid_mobiel(),
                                    "uafd"       : user.afdeling().naam()
                                  };
                for (s in subst_table)
                {
                    var newval = subst_table[s];
                    if (typeof newval == "undefined" || newval === null)
                        newval = "";
                    purl = purl.replace("##" + s + "##", Server.URLencode(newval));
                }
                %>
                    <script type="text/javascript">
                          var i = document.location.href.lastIndexOf('/');
                          if (i<0) {
                            var thispath = document.URL;
                          }
                          else {
                            var thispath = document.URL.substring(0,i);
                          }
                          var punch_url = "<%=safe.jsstring(purl)%>&HOOK_URL="+escape(thispath+"/<%=hook_url%>");

                      <%  // Sommige leverancieres ondersteunen TARGET niet goed. Open die in een apart window.
                          if (purl.toUpperCase().indexOf("&~TARGET")==-1) {
                            newWindow = true;
                      %>
                            punchwindow = true; // voorkomt 'hot'
                            FcltMgr.windowopen(punch_url);
                      <% }  else { %>
                            window.location.href = punch_url;
                      <% } %>
                    </script>
                <% if (newWindow) {
                    shared.simpel_body(safe.html(L("lcl_bes_punchout_active")));
                   }
                Response.End();
            }
            else
                var page="bes_edit_bestelling.asp?urole=" + urole + "&dis_key=" + dis_key + transitParam; // Maak een nieuw
        }
    }
    else // Bestaande bestelling
    {
        var page="bes_show_bestelling.asp?urole=" + urole + "&bes_key=" + bes_key + transitParam;
    }
    if (page != "")
    {
        IFRAMER("besframe", page, { FcltClose: "besClose", title: L("lcl_bes_frame_algemeen")} );
    }
    if (bes_key > -1)
    {
      // tracking naar subframe :-)
      var autfunction = {fo: 'WEB_BESFOF', bo: 'WEB_BESBOF', mi: 'WEB_BESBAC'}[urole] || 'WEB_BESUSE';
      var authparams = user.checkAutorisation(autfunction, true);
      if (authparams && authparams.ALGreadlevel < 9 && authparams.PRSreadlevel < 9)
      {
        page = protectQS.create("../shared/status_info.asp?bes_key=" + bes_key + "&urole=" + urole);
        IFRAMER("alghistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
      }
    }


%>
<% PAGE_END(); %>
  </body>
</html>
<% ASPPAGE_END(); %>
