<% /*
     $Revision$
     $Id$
    File:               alg_ruimtefunctie.inc
    Description:        Show an overview of ruimtefunctie items in list-form,
                        which meets with the given requirements
    Parameters:
    Context:            Search action from alg_ruimtefunctie_search_list.asp form
    Note:
*/ %>

<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../Shared/getkenmerksql.inc" -->
<!-- #include file="alg.inc" -->

<%
FCLTHeader.Requires({ plugins:["jQuery"] })

function ruimtefunctie_list(pautfunction, params)
{
  // De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden
  var addButton = [];
  var authparams = alg.checkAutorisation();
  var canAdd = (authparams.mALGwritelevel < 9);

  // Voor resulttable de globalen zetten; zou ng anders moeten.
  var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
  var showall = params.showall;

  var srtruimte_key = params.srtruimte_key;
  var loc_key = params.loc_key;
  var bld_key = params.bld_key;
%>

  <html>
    <head>
      <% FCLTHeader.Generate({outputmode: outputmode}) %>
      <script type="text/javascript">
        function algRuimtefunctieCallback(json, textStatus)
        {
        }

        function ruimtefunctie_edit(row)
        {
          var srtruimte_lg_key = row.getAttribute("ROWKEY");
          var algData = eval('(' + row.getAttribute("ROWDATA") + ')');

          var subject = "<%=L("lcl_estate_ruimte_man_sort")%>" + ' ' + algData.oms;
          var url = "alg_ruimtefunctie.asp?srtruimte_lg_key=" + srtruimte_lg_key;
          FcltMgr.openModalDetail(url, subject, { width: 650, callback: FcltMgr.reload });
        }

        function ruimtefunctie_delete(row, isMulti)
        {
          FcltMgr.confirm(L("lcl_alg_del_txt_ruimtefunctie"), { autoconfirm: isMulti }, function() {
            $(row).addClass('dirty');
            var srtruimte_lg_key = row.getAttribute("ROWKEY");
            var data = { key: srtruimte_lg_key
                       };
            <% protectRequest.dataToken("data"); %>
            $.post("alg_ruimtefunctie_delete.asp", data, FcltCallbackRefresh, "json");
          });
        }
      </script>
    </head>

    <body id="listbody">
<%
      var sqln = "SELECT srlg.alg_srtruimte_lg_key"
               + ", "+lcl.xsqla("sr.alg_srtruimte_omschrijving", "sr.alg_srtruimte_key")
               + "     , sr.alg_srtruimte_code"
               + "     , sr.prs_bevat_werkplek"
               + "     , sr.prs_verhuurbaar"
               + "     , COALESCE(srlg.alg_srtruimte_lg_prijs, sr.alg_srtruimte_prijs) alg_srtruimte_prijs"
               + "     , COALESCE(srlg.alg_srtruimte_lg_prijs2, sr.alg_srtruimte_prijs2) alg_srtruimte_prijs2"
               + "     , COALESCE(srlg.alg_srtruimte_lg_prijs3, sr.alg_srtruimte_prijs3) alg_srtruimte_prijs3"
               + "     , COALESCE(srlg.alg_srtruimte_lg_prijs4, sr.alg_srtruimte_prijs4) alg_srtruimte_prijs4"
               + "     , COALESCE(srlg.alg_srtruimte_lg_prijs5, sr.alg_srtruimte_prijs5) alg_srtruimte_prijs5"
               + "     , l.alg_locatie_key"
               + "     , g.alg_gebouw_key"
               + "     , l.alg_locatie_omschrijving"
               + "     , g.alg_gebouw_omschrijving"
               + "  FROM alg_srtruimte sr"
               + "     , alg_srtruimte_locatiegebouw srlg"
               + "     , alg_locatie l"
               + "     , alg_gebouw g"
               + " WHERE sr.alg_srtruimte_key = srlg.alg_srtruimte_key"
               + "   AND srlg.alg_gebouw_key = g.alg_gebouw_key(+)"
               + "   AND srlg.alg_locatie_key = l.alg_locatie_key(+)";

      if (srtruimte_key)
      {
        sqln += " AND sr.alg_srtruimte_key = " + srtruimte_key;
      }

      if (bld_key)
      {
        sqln += " AND (g.alg_gebouw_key = " + bld_key + " OR l.alg_locatie_key = " + loc_key + ")";
      }
      else if (loc_key)
      {
        sqln += " AND (l.alg_locatie_key = " + loc_key + " OR g.alg_locatie_key = " + loc_key + ")";
      }

      sqln += " ORDER BY l.alg_locatie_upper ASC"
            + ",         g.alg_gebouw_upper ASC";

      function fnrowData(oRs)
      {
        var loc_key = oRs("alg_locatie_key").value;
        var bld_key = oRs("alg_gebouw_key").value;
        var oms = oRs("alg_srtruimte_omschrijving").value;

        var data = {loc_key: loc_key, bld_key: bld_key, oms: oms};
        return JSON.stringify(data);
      }

      var floorCache = [];
      // Voor performance bekijken we de rechten per verdieping. In de praktijk nauwkeurig genoeg
      function fnrowActionEnabler(oRs)
      {
        // Ik heb al WEB_ALGMAN rechten anders kom ik hier niet
        eEdit = true;
        eDelete = true;

        return {eEdit: eEdit, eDelete: eDelete};
      }

      var addurl = "alg_ruimtefunctie.asp?a=1";
      addurl += buildTransitParam(["srtruimte", "locatiekey", "gebouwkey"], params)

      if (canAdd)
      {
        addButton = [{ icon: "plus.png", title: L("lcl_add"), action: "FcltMgr.openModalDetail('" + addurl + "', '" + L("lcl_add") + "', { width: 700, callback: FcltMgr.reload })" }]
      }

      var rst = new ResultsetTable({ sql: sqln,
                                     keyColumn: "alg_srtruimte_lg_key",
                                     ID: "algtable",
                                     title: L("lcl_menu_alg_ruimtefuncties"),
                                     showAll: showall,
                                     rowData: fnrowData,
                                     rowActionEnabler: fnrowActionEnabler,
                                     outputmode: outputmode,
                                     filterParams: params,
                                     buttons: addButton
                                   });

      rst.addColumn(new Column({caption: L("lcl_estate_ruimte_man_sort"), content: "alg_srtruimte_omschrijving"}));
      rst.addColumn(new Column({caption: L("lcl_location"), content: "alg_locatie_omschrijving"}));
      rst.addColumn(new Column({caption: L("lcl_building"), content: "alg_gebouw_omschrijving"}));
      rst.addColumn(new Column({caption: L("lcl_alg_alg_tarief"), content: "alg_srtruimte_prijs", datatype: "float", decimals: 5 }));
      rst.addColumn(new Column({caption: L("lcl_alg_alg_tariefA"), content: "alg_srtruimte_prijs2", datatype: "float", decimals: 5 }));
      rst.addColumn(new Column({caption: L("lcl_alg_alg_tariefB"), content: "alg_srtruimte_prijs3", datatype: "float", decimals: 5 }));
      rst.addColumn(new Column({caption: L("lcl_alg_alg_tariefC"), content: "alg_srtruimte_prijs4", datatype: "float", decimals: 5 }));
      rst.addColumn(new Column({caption: L("lcl_alg_alg_tariefD"), content: "alg_srtruimte_prijs5", datatype: "float", decimals: 5 }));

      rst.addAction({ action: "ruimtefunctie_edit", caption: L("lcl_edit"), isDefault: true });
      rst.addAction({ action: "ruimtefunctie_delete", caption: L("lcl_delete"), enabler: "eDelete", multi: true });

      var cnt = rst.processResultset();
%>
    </body>
  </html>
<%
}
%>

