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

    File:           bez_edit_bezoekers.asp
    Description:    Laat zelfstandig een bezoekersdeel wijzigen
    Parameters:     afspraak_key (bestaande bez_afspraak) of
                    rsv_ruimte_key (bestaande res_rsv_ruimte)
    Context:        Alleen vanuit res-bezoekers want daar is het een iframe
                    Vanuit 'normale' afspraken is het included
    Note:
*/

%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../shared/iface.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="./bez_edit_bezoekers.inc" -->
<!-- #include file="./bez.inc" -->
<%
FCLTHeader.Requires({ js: ["../bez/bez.js"] })

var urole = getQParamSafe("urole");
// authparams wordt gebruikt in bez_edit_bezoekers.inc !!
var authparams = user.checkAutorisation({ fe: "WEB_BEZUSE",
                                          bo: "WEB_BEZBOF",
                                          fo: "WEB_BEZFOF"} [urole]);

var rsv_ruimte_key = -1;
var afspraak_key = getQParamInt("afspraak_key", -1);
var autoadd = getQParamInt("autoadd", 0);  // zoveel bezoekers automatisch toevoegen
var nrBez
var bez_actie_key = -1;
var bez_afspraak_telefoonnr = "";
if (afspraak_key == -1)
{
  var rsv_ruimte_key = getQParamInt("rsv_ruimte_key"); // dan moet deze er zijn

  sql = "SELECT rr.res_rsv_ruimte_bezoekers"
      + "     , rr.res_rsv_ruimte_van"
      + "     , rr.res_rsv_ruimte_tot"
      + "     , rr.res_ruimte_opstel_key"
      + "     , rr.alg_ruimte_key"
      + "     , p.prs_perslid_telefoonnr"
      + "  FROM res_rsv_ruimte rr"
      + "     , prs_perslid p"
      + " WHERE rr.res_rsv_ruimte_contact_key = p.prs_perslid_key"
      + "   AND rr.res_rsv_ruimte_key = " + rsv_ruimte_key;
  oRs = Oracle.Execute(sql);
  var nrBez = oRs("res_rsv_ruimte_bezoekers").value;
  var bez_afspraak_datum = new Date(oRs("res_rsv_ruimte_van").value);
  var bez_afspraak_eind = new Date(oRs("res_rsv_ruimte_tot").value);
  var alg_ruimte_key = oRs("alg_ruimte_key").value;
  var res_opstel_key = oRs("res_ruimte_opstel_key").Value;
  if (afspraak_key == -1)
    bez_afspraak_telefoonnr = oRs("prs_perslid_telefoonnr").Value;
  oRs.Close();
  if (res_opstel_key)
    var restype = "R";
  else
    var restype = "CV";

  if (restype == "R")
  {
    sql = "SELECT rrg.alg_locatie_key, rrg.alg_gebouw_key"
        + "  FROM res_ruimte_opstelling ro"
        + ", res_v_res_ruimte_gegevens rrg"
        + " WHERE ro.res_ruimte_key = rrg.res_ruimte_key"
        + " AND ro.res_ruimte_opstel_key = " + res_opstel_key;
  }
  else
  {
    sql = "SELECT og.alg_locatie_key, og.alg_gebouw_key"
        + " FROM alg_v_allonroerendgoed og"
        + " WHERE og.alg_ruimte_key = " + alg_ruimte_key;
  }
  var oRs = Oracle.Execute(sql);
  var locatie_key = oRs("alg_locatie_key").value;
  var gebouw_key = oRs("alg_gebouw_key").value;
  oRs.Close();

  sql = "SELECT a.bez_afspraak_key"
      + "     , a.bez_actie_key"
      + "     , a.bez_afspraak_telefoonnr"
      + "  FROM bez_afspraak a"
      + " WHERE a.res_rsv_ruimte_key = " + rsv_ruimte_key;
  oRs = Oracle.Execute(sql);
  if (!oRs.eof)
  {
    bez_afspraak_telefoonnr = oRs("bez_afspraak_telefoonnr").value;
    afspraak_key = oRs("bez_afspraak_key").value;
    bez_actie_key = oRs("bez_actie_key").value;
  }
  oRs.Close();

  if (bez_actie_key == -1)
  { // Als er nog geen afspraak is dan de default actie nemen.
    // Eerst van gebouw..
    var actiegrp_key = bez.bez_getactiegroep(gebouw_key);
    bez_actie_key = bez.default_actie(actiegrp_key);
    if (bez_actie_key == -1)
    { // ..anders de globale default.
      bez_actie_key = bez.default_actie(-1);
    }
  }

  sql = "SELECT alg_gebouw_bez"
      + "  FROM alg_gebouw"
      + " WHERE alg_gebouw_key = " + gebouw_key;
  var oRs = Oracle.Execute(sql);
  var bezoekbaar = oRs("alg_gebouw_bez").Value;
  oRs.Close();
  if (!bezoekbaar)
    abort_with_warning(L("lcl_gebouw_niet_bez"));
}
else
{
  sql = "SELECT a.bez_afspraak_telefoonnr"
      + "  FROM bez_afspraak a"
      + " WHERE a.bez_afspraak_key = " + afspraak_key;
  oRs = Oracle.Execute(sql);
  if (!oRs.eof)
  {
    bez_afspraak_telefoonnr = oRs("bez_afspraak_telefoonnr").value;
  }
  oRs.Close();
}

var this_bez = bez.func_enabled_afspraak(afspraak_key);
user.auth_required_or_abort(this_bez.canWriteAny);

var fronto = urole == "fo"; // DEPRECATED
var backo = urole == "bo";

var titel = "";
if (S("bez_sel_contactpersoon") > 0 && S("bez_sel_internpersoon") == 1)
  titel = L("lcl_bez_select_cntprsbezoeker");
else
  if (S("bez_sel_contactpersoon") > 0)
    titel = L("lcl_bez_select_cntbezoeker");
  else
    titel = L("lcl_bez_select_prsbezoeker");
%>
<html>
  <head>
<%  FCLTHeader.Generate() %>
    <script>

      var urole = "<%=urole%>";
      var titel = "<%=safe.jsstring(titel)%>";
      var bez_max_flex_on_line = <%=S("bez_max_flex_on_line")%>;
      async function bez_submit()
      {
        if (!await validateForm("u2", {checklength: true}))
          return false;
        $.post($("form[name=u2]")[0].action, $("[name=u2]").serialize(), FcltCallbackClose, "json");
        return true; // Disable button
      }

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

      $(function()
      {
        var gebouw_key = <%=gebouw_key%>;
        if (gebouw_key > 0 && $("#prktype").attr("toon_telefoon") == undefined)
        { // Een nieuw gebouw is geselecteerd.
          $.getJSON("../alg/get_alg_info_ajax.asp",
                    { req_info: "alg_gebouw",
                      alg_gebouw_key: gebouw_key },
                    function(data, textStatus) {
                      $("#prktype").attr({toon_telefoon: data.alg_gebouw_toon_telefoon, toon_email: data.alg_gebouw_toon_email, toon_kenteken: data.alg_gebouw_toon_kenteken});
                      get_freeprk_info(1);
                    });
        }
        else
        {
          get_freeprk_info(1);
        }
      });

    </script>
  </head>
  <body class="listmode">
  <% SUBFRAME_START(); %>
<%  var buttons =  [ {title: L("lcl_submit"), icon: "fa-fclt-save", action: "bez_submit()", singlepress: true, id: "bsubmit_bez_bezoekers" },
                     {title: L("lcl_cancel"), icon: "fa-fclt-cancel", action: "bez_cancel()", id: "bcancel_bez_bezoekers" } ];
    IFRAMER_HEADER(L("lcl_bez_bezoekers"), buttons)
%>
      <form name="u2"
            action="bez_edit_bezoekers_save.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%>"
            method="post"
            onsubmit="bez_submit();return false;">

        <input type="hidden" name="locatiekey" id="locatiekey" value="<%=locatie_key%>">
        <input type="hidden" name="date_from" id="date_from" value="<%=bez_afspraak_datum.valueOf()%>">
        <input type="hidden" name="date_to" id="date_to" value="<%=bez_afspraak_eind.valueOf()%>">
<%
        BLOCK_START("resUser", L("lcl_res_info"), {icon: "fa-user"});
%>        <table>
<%
        if (S("res_appointment_action"))
        {

            var sql = "SELECT a.bez_actie_key"
                    + "     , " + lcl.xsqla("a.bez_actie_omschrijving", "a.bez_actie_key")
                    + "  FROM bez_actie a"
                    + " WHERE a.bez_actie_verwijder IS NULL"
                    + "   AND BITAND(a.bez_actie_flags, 1) = 0" // Niet de oproepers, die alleen via reservering
                    + "   AND a.bez_actie_groep_key = "
                                + "(SELECT COALESCE( g.bez_actie_groep_key"                 // actie_groep van gebouw heeft hoogste prioriteit
                                                + ", (SELECT MIN(bez_actie_groep_key)"      // Als gebouw geen actie_groep heeft neem dan de default waarde
                                                + "     FROM bez_actie_groep"
                                                + "    WHERE bez_actie_groep_default = 1"
                                                + "  )"
                                                + ", a.bez_actie_groep_key"  // Als er voor geen enkele actie_groep de default is gezet dan mogen alle acties van alle groepen worden getoond.
                                                + ")"
                                + "   FROM alg_gebouw g"
                                + "  WHERE alg_gebouw_key = " + gebouw_key
                                + ")"
                    + " ORDER BY 2";
            FCLTselector( "actie_key"
                        , sql
                        , { label: L("lcl_bez_bezoeker_actie")
                          , initKey: bez_actie_key
                          }
                        );
        }

        var verplicht = (S("vis_afspraak_tel_required") & 1) == 1;
        var vullen = (S("vis_afspraak_tel_required") & 2) == 0;
        RWFIELDTR("phone", "fld", L("lcl_phone"), (vullen || afspraak_key > 0)? bez_afspraak_telefoonnr : "", {maxlength : 20, required: verplicht })

%>        </table>
<%
        BLOCK_END();
        SIMPLE_BLOCK_START();
          bez_edit_bezoekers(afspraak_key, bez_afspraak_datum, bez_afspraak_eind, locatie_key, { nrBez: nrBez, autoadd: autoadd });
        SIMPLE_BLOCK_END();

    IFACE.FORM_END();
%>
      </form>
<% SUBFRAME_END(); %>
  </body>
</html><% ASPPAGE_END(); %>
