<%@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;
            if (!afspr_key )
                afspr_key = createAfspraak(oRs("res_rsv_ruimte_key").Value);
        }
        oRs.Close()
        __Log("afspr_key: " + afspr_key);
    }
}

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

// 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"]);

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;
}
else
{
    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);
      $(document).ready(function () {
<%        if (afspr_key > 0) { %>
            FcltMgr.setTitle("<%=L("lcl_vis_appointment") + " " + afspr_key%>", {hot: false});
<%        }
          else
          { %>
            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%>";
<%      } %>
      }
      function bezClose(params)
      {
        $("#bezBezoekersFrame")[0].src = "../bez/bez_show_bezoekers.asp?rsv_ruimte_key=<%=rsv_ruimte_key%><%=transitParam%>";
        if (<%= (urole == "bo" && res_ispool)?1:0 %> && params.beznewkeyArr && params.beznewkeyArr.length) // Auto-checkin
        {
            var data = { bez_key: params.beznewkeyArr
                         };
            protectRequest.dataToken(data);
            $.post("bez_check_in.asp",
                   data,
                   CheckInCallback,
                   "json");
        }
      }
      function CheckInCallback(json, textStatus)
      {
          for (i = 0 ; i < json.bez_key_arr.length; i++)
          {
              if (json.autoprint[i])
                printBadge(json.bez_key_arr[i]);
          }
      }

    </script>
  </head>

  <body>
<%  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"),
                                initHeight: "450px",
                                refreshOnClose: true,
                                FcltClose: "afspraakClose"
                              });

    if (rsv_ruimte_key > 0)
    {
      // PF: ik geef afspr_key ook mee (was ook zo) maar weet niet of dat echt nodig is in deze tak
      var url = "../bez/bez_show_bezoekers.asp?";
      if (res_key > 0)
          var url = "../bez/bez_edit_bezoekers.asp?autoadd=1&";
      IFRAMER("bezBezoekersFrame",
               url + "afspr_key=" + afspr_key + "&rsv_ruimte_key="+rsv_ruimte_key + transitParam,
              { title: (S("bez_sel_internpersoon") == 1? L("lcl_res_frame_visitors") : L("lcl_res_frame_visitors_external")),
                FcltClose: "bezClose"
              });
    } %>
  </body>
</html>
