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

    File:               bez_show_afspraak.asp
    Description:        Detailscherm voor afspraken
    Parameters:         urole (required)
                        afspr_key (required)
                        -
    Context:
    Note:               Denkbaar is dat een afpraak al verwijderd werd (en nog in overzicht stond)
                        We knallen dan hier geen INTERNAL ERROR, maar gewoon niks.

*/ %>

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

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

var this_bez = bez.func_enabled_afspraak(afspr_key);
var hasFOBOread = this_bez.canReadFOF || this_bez.canReadBOF;
user.auth_required_or_abort(this_bez.canReadAny);

var transitParam = buildTransitParam(["urole", "afspr_key", "contactonly"]);

// TODO: deze bepalen met bez.canReadBOF enzo. Dan weet ik verderop of ik bv moreinfo mag doen

var bez_afspraak = bez.bez_afspraak_info(afspr_key);

bsql = "SELECT COUNT(bez_bezoekers_done) done, COUNT(bez_bezoekers_out) out, COUNT(bez_bezoekers_key) totaal "
     + "FROM bez_bezoekers WHERE bez_afspraak_key = " + afspr_key;
boRs = Oracle.Execute (bsql);
var binnen = boRs("done").value;
var buiten = boRs("out").value;
var aantal = boRs("totaal").value;
boRs.close();
var subjectMail = L("lcl_vis_register_title") + ' ' + afspr_key;
var urlMail = "../shared/queuemail.asp?pcode=BEZMAI&defemail_key=" + bez_afspraak.contact_key
            + "&key=" + afspr_key
            + "&subject=" + Server.URLencode(subjectMail)
            + "&mailfrom=" + (hasFOBOread? 1 : 0);
%>
<html>
  <head>
<%
    FCLTHeader.Generate();
%>
    <script type="text/javascript">
      jQuery(document).ready(function()
                             {
                               $('textarea').resize(function () { FcltMgr.resized(window) } );
                               $('textarea').autogrow();
                             });

        function bez_change()
        {
          if (FcltMgr.startEdit(window))
            window.location.href = "bez_edit_afspraak.asp?x=1<%=transitParam%>"
        }
        function bez_delete()
        {
          if (confirm(L("lcl_bez_confirm_delete_afspraak")))
          {
           var data = { level: "A",
                        afspr_key: <%=afspr_key%>,
                        urole: "<%=urole%>"
                      };
           <% protectRequest.dataToken("data"); %>
            $.post("bez_delete.asp",
                    data,
                    FcltCallbackClose,
                    "json");
          }
        }
        function bez_mail()
        {
          var subject = "<%=safe.jsstring(subjectMail)%>";
          var url = "<%=safe.jsstring(protectQS.create(urlMail))%>";
          FcltMgr.openModalDetail(url, subject);
        }

        function bez_multi()
        {
          if (FcltMgr.mayEdit(window))
            FcltMgr.openModalDetail("./bez_multi.asp?urole=<%=urole%>&afspr_key=<%=afspr_key%>", "<%=L("lcl_res_add_deelres")%>");
        }

        function bez_print()
        {
          window.open('bez_xml.asp?afspr_key=<%=afspr_key%>');
        }
    </script>
  </head>

  <body id="showbody">
    <form name=u2 onSubmit="return false;">
<%
      // TODO: Nog ff nagaan of ik een afspraak met ooit binnenbezoek ook nooit meer mag verwijderen, of als FOF wel?
      //       Wat voor nut heeft dat (wat is er dan aan de hand?), en pas op dat saven alles weggooit en aanmaakt

      var buttons =  [];
      if (this_bez.canChange)
        buttons.push( {title: L("lcl_res_add_deelres"), icon: "resrepeat.png", action:"bez_multi()" },
                      {title: L("lcl_change"),          icon:"wijzigen.png", action:"bez_change()" });
      if (this_bez.canDelete)
        buttons.push( {title: L("lcl_delete"),          icon:"delete.png",   action:"bez_delete()" });

      buttons.push ({title: L("lcl_print"),           icon: "print.png",   action:"bez_print()" },
                    {title: L("lcl_noti_bez_email"),  icon: "email.png",   action:"bez_mail()" });


      IFRAMER_HEADER(L("lcl_bez_frame"), buttons);

      BLOCK_START("bezAfspraak", L("lcl_bez_afspraak_gegevens"));
      ROFIELDTR('fld', L("lcl_vis_start_date"), toDateTimeString(bez_afspraak.bez_afspraak_datum));
      if (toDateString(bez_afspraak.bez_afspraak_eind) == toDateString(bez_afspraak.bez_afspraak_datum))
        ROFIELDTR('fld', L("lcl_vis_end_date"), toTimeString(bez_afspraak.bez_afspraak_eind));
      else
        ROFIELDTR('fld', L("lcl_vis_end_date"), toDateTimeString(bez_afspraak.bez_afspraak_eind));
      if (urole=="bo" || urole=="fo")
        params = {infoPointer: {Url:"appl/fac/fac_user_info.asp?prs_key=" + bez_afspraak.contact_key, Title:L("lcl_details")}};
      else
        params = {};
      ROFIELDTR('fld', L("lcl_vis_contactperson"), bez_afspraak.aanvrager, params);

      if ((urole=="bo" || urole=="fo") && bez_afspraak.gastheer_key)
        params = {infoPointer: {Url:"appl/fac/fac_user_info.asp?prs_key=" + bez_afspraak.gastheer_key, Title:L("lcl_details")}};
      else
        params = {};
      ROFIELDTR('fld', L("lcl_vis_visit"), bez_afspraak.gastheer, params);
      ROFIELDTR("fld", L("lcl_phone"), bez_afspraak.telf_nr, {suppressEmpty: true});

      FCLTplaatsselector(null, {
                          locatiekey: bez_afspraak.locatie_key,
                          ruimtekey: bez_afspraak.alg_onrg_key,
                          startlevel: 2, //Locatie
                          eindlevel: (S("vis_afspraak_onrgoed_uses_keys") == 1)?5:2, //Ruimte of locatie
                          readonly: true });
      if (S("vis_afspraak_onrgoed_uses_keys") != 1) {
          ROFIELDTR('fld',
             (S("vis_mandatory_alg_level")=='R' ? L("lcl_room") : S("vis_mandatory_alg_level")=='V' ? L("lcl_floor") : S("vis_mandatory_alg_level")=='G' ? L("lcl_building") : "") ,
             bez_afspraak.ruimte, {suppressEmpty: true});
      }
      ROFIELDTR('fld', L("lcl_action"), bez_afspraak.actie_omschrijving, {suppressEmpty: true});
      ROTEXTAREATR('fldtxt', L("lcl_vis_remark"), bez_afspraak.opm, {suppressEmpty: true});
      BLOCK_END();

      BLOCK_START("bezAdmin", L("lcl_vis_appointment_no")+" "+afspr_key);
      /* ik zocht een smoes om toegang tot de tracking te krijgen */
      var statusstr = "";
      if (aantal == buiten)
        statusstr = L("lcl_bez_voorbij");
      else if (aantal == binnen && buiten > 0)
        statusstr = L("lcl_bez_deelsbinnen1");  // en deels al weer vertrokken
      else if (aantal == binnen)
        statusstr = L("lcl_bez_binnen");    // allemaal binnen
      else if (binnen > 0 && buiten == 0)
        statusstr = L("lcl_bez_deelsbinnen2");  // nog niet allemaal binnen
      else if (binnen == 0)
        statusstr = L("lcl_bez_nognietbinnen");  //  niet allemaal binnen
      else
        statusstr = L("lcl_bez_nietbinnen");  //  niet meer allemaal binnen

      var params = { infoPointer: { Url: "appl/shared/status_info.asp?afspr_key=" + afspr_key + "&urole=" + urole,
                                    Title: L("lcl_status_details") + " " + afspr_key
                                  }
                   }

      ROFIELDTR('fld', L("lcl_status"), statusstr, params);
      if (bez_afspraak.res_rsv_ruimte_key > 0)
      {
          var ttl = bez_afspraak.res_reservering_key +"/" + bez_afspraak.res_rsv_ruimte_volgnr;
          var params = { infoPointer: { Url: "appl/res/res_reservering.asp?urole="+urole+"&rsv_ruimte_key=" + bez_afspraak.res_rsv_ruimte_key,
                                        Title: L("lcl_reservation") + " " + ttl
                                      }
                       }
          ROFIELDTR('fld', L("lcl_reservation"), ttl, params);
          ROFIELDTR('fld', "", bez_afspraak.res_rsv_ruimte_omschrijving, {suppressEmpty: true});
      }
      BLOCK_END();

      if (!bez_afspraak.res_rsv_ruimte_key) // dan heeftie zelf wel een frame
      {
          BLOCK_START("bezBezoekers", L("lcl_vis_visitors"));

          bez_list("*", {afspr_key: afspr_key,
                         tiny: true,
                         noPrint: true,
                         noHeader: true, // die hebben we zelf al gedaan
                         outputmode: 0,
                         showProperties: true
                        });
          BLOCK_END();
        }
%>  </form>
  </body>
</html>
