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

    File:               bez_afspraak.asp
    Description:        Muteerscherm voor afspraken/bezoekers
                        dit is de grote 'wrapper' voor de diverse andere schermen
    Parameters:         urole
                        afspr_key
                        bez_key (optioneel; is dan sterker en zoekt dan de afspr_key erbij)
    Context:
    Note:

*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="bez.inc" -->
<!-- #include file="bez_edit_bezoekers_save.inc" -->
<%
FCLTHeader.Requires({ plugins: ["suggest", "jQuery"],
                      js: ["jquery-ui.js", "../bez/bez.js"]
                    })

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

// Als een een bezoeker is meegegeven zoeken we de bijbehorende afspraak er bij
// Dit scherm gaat altijd over een afspraak, niet een individuele bezoeker.
// Deze key hoeft dus ook niet in de transitParams mee
if (bez_key > 0) {
    var sql = "SELECT bez_afspraak_key"
            + "  FROM bez_bezoekers"
            + " WHERE bez_bezoekers_key = " + bez_key;
    var oRs = Oracle.Execute(sql);
    var afspr_key = oRs("bez_afspraak_key").value;
} else {
    var afspr_key = getQParamInt("afspr_key", -1);
}

var res_ispool = false;
if (afspr_key < 0) // Misschien pool reservering?
{
    var res_key = getQParamInt("res_key", -1);
    if (res_key > 0)
    {
        sql = "SELECT MIN (bez_afspraak_key) bez_afspraak_key"
            + "     , MIN (rr.res_rsv_ruimte_key) res_rsv_ruimte_key"
            + "  FROM bez_afspraak ba"
            + "     , res_v_aanwezigrsv_ruimte rr"
            + "     , res_reservering rrr"
            + " WHERE rr.res_rsv_ruimte_key = ba.res_rsv_ruimte_key(+)"
            + "   AND rr.res_reservering_key = rrr.res_reservering_key"
            + "   AND rrr.res_reservering_ispool = 1"
            + "   AND rr.res_reservering_key = " + res_key;
        var oRs = Oracle.Execute(sql)
        if (!oRs.Eof)
        {
            res_ispool = true; // nieuwe bezoekers direct binnen melden
            afspr_key = oRs("bez_afspraak_key").Value;
            var res_rsv_ruimte_key = oRs("res_rsv_ruimte_key").Value;
            if (!afspr_key )
                afspr_key = createAfspraak(res_rsv_ruimte_key);

            var url = "../res/res_reservering.asp?urole=bo&rsv_ruimte_key=" + res_rsv_ruimte_key + "&bez_edit=1";
            Response.Redirect(url);
        }
        oRs.Close()
        __Log("afspr_key: " + afspr_key);
    }
}

// AUTORISATIEPARAMETERS
if (afspr_key > 0)
    var urole = getQParamSafe("urole", "fe");
else
    var urole = getQParamSafe("urole");

if (urole == "xx") // In case you enter via search
{
  var authparamsBEZFOF = user.checkAutorisation("WEB_BEZFOF", true);

  if (authparamsBEZFOF)
    urole = "fo";
  else
    urole = "fe";
}

// Om nog even compatible te blijven zodat alles nog even blijft werken. Moet er straks uit, natuurlijk.
var fronto = urole == "fo";
var backo  = urole == "bo";
var minfo  = urole == "mi";
var frontend = (!fronto && !backo && !minfo);

var transitParam = buildTransitParam(["urole", "contactonly", "mld_opdr_key"], { urole: urole });

var rsv_ruimte_key = null;
if (afspr_key > 0)
{
    sql = "SELECT res_rsv_ruimte_key"
        + "  FROM bez_afspraak ba"
        + " WHERE ba.bez_afspraak_key = " + afspr_key;
    oRs = Oracle.Execute(sql);
    if (oRs.Eof)
        shared.record_not_found("<!--" + afspr_key + "-->");
    rsv_ruimte_key = oRs("res_rsv_ruimte_key").Value;
}
var this_bez = bez.func_enabled_afspraak(afspr_key);
user.auth_required_or_abort(this_bez.canReadAny);

%>

<html>
  <head>
<%
   FCLTHeader.Generate();
%>
    <script type="text/javascript">

      backo = (<%=backo? 1 : 0%> == 1);
      $(function ()
      {
<%        if (afspr_key > 0) { %>
            FcltMgr.setTitle(L("lcl_vis_appointment") + " <%=afspr_key%>", {hot: false});
<%        }
          else
          { %>
            FcltMgr.setTitle(L("lcl_menu_bez_fe"), {hot: true});
            FcltMgr.startEdit(window);
<%        } %>
      });

      function afspraakClose(params)
      {
<%      if (afspr_key == -1)
        { %>
          if (params.autoprint && backo)
          {
            for (var i = 0; i < params.bezkeyArr.length; i++)
            {
              printBadge(params.bezkeyArr[i]);
            }
          }

          if (params.cancel)
          {
              FcltMgr.closeDetail(window, params );
              return true;
          }
          if (!params.keepForm)
          {
              <% if ((backo && (S("bez_closeafteradd")&1)==1) || (fronto && (S("bez_closeafteradd")&2)==2)) { %>
                FcltMgr.closeDetail(window, params );
              <% } else { %>
                window.location.href = "bez_afspraak.asp?verynew=1<%=transitParam%>&afspr_key=" + params.afspr_key;
              <% } %>
              return true;
          }
<%      }
        else
        { /* Bestaande afspraak bewerkt, switch naar show-mode */ %>
          if (params.close)
          {
            FcltMgr.closeDetail(window, {close: true})
          }
          if (!params.keepForm)
              $("#bezframe")[0].src = "bez_show_afspraak.asp?afspr_key=<%=afspr_key%><%=transitParam%>";
<%      } %>
      }
    </script>
  </head>

  <body>
<%
    if (afspr_key > -1)
    {
      var pageTitle = L("lcl_vis_appointment") + " " + afspr_key;
      var pageIcon = "fa-calendar-check";
    }
    else
    {
      var pageTitle = L("lcl_bez_new_app");
      var pageIcon = "fa-calendar-check";
    }
    PAGE_START({ pageHeader: { icon: pageIcon, title: pageTitle } });

    if (afspr_key == -1)
      var page = "bez_edit_afspraak.asp"; // Maak een nieuw
    else
      var page = "bez_show_afspraak.asp";

    page += "?embedded=1&afspr_key="+ afspr_key + transitParam;

    IFRAMER("bezframe", page, { title: L("lcl_bez_frame_algemeen"),
                                refreshOnClose: true,
                                FcltClose: "afspraakClose"
                              });
    // Tracking in subframe
    if (afspr_key > -1 && (this_bez.canReadBOF || this_bez.canReadFOF && !(S("bez_hide_tracking") & 2)
                                               || this_bez.canReadFEOnly && !(S("bez_hide_tracking") & 1))) {
      page = protectQS.create("../shared/status_info.asp?afspr_key=" + afspr_key + "&urole=" + urole);
      IFRAMER("opdrhistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
    }
    PAGE_END(); %>
  </body>
</html>
<% ASPPAGE_END(); %>
