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

     File:               CAD/lbl_search.asp
     Description:        Zoek ruimte via code ingevoerd voor huidige label thema
     Parameters:         lblCode: de door de gebruiker ingevoerde zoekcode
                         loc_key: standaard zoeken we *met* loc_key omdat dat sneller is
                         label: key in CAD_LABEL, thema dat aan staat
     Context:            Modal vanuit zoekknopje op hoofdscherm
     Result:             Als de gebruiker op een regel klikt wordt via closeModal
                         allerlei keys van object opgeleverd
     Note:               Alleen de binnensituatie wordt (vooralsnog) ondersteund
                         VOORALSNOG GEEN AUTORISATIE?
*/ %>

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../shared/iface.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="fgii.inc" -->
<!-- #include file="../Shared/json2.js" -->

<%
var oRs;
var sql = "";
var i = 0;

var lblCode = getQParam("lblCode");
var loc = getQParamInt( "loc_key", -1);
var pLabel = getQParamInt("label");
%>

<html>
  <head>
<%  FCLTHeader.Generate(); %>
    <script type="text/javascript">
      function lblView(row)
      {
          var lblData = eval('(' + row.getAttribute("ROWDATA") + ')');
          lblData.success = true;
          FcltMgr.closeDetail(window, lblData );
      }
    </script>
  </head>

  <body class="modal" id="mod_lbl_search" style="width:500px" >
<%  // Zoek de omschrijving van de locatie er bij of 'alle'
    if (loc != -1)
    {
      var sql = "SELECT alg_locatie_code, "
              + "       alg_locatie_omschrijving "
              + "  FROM alg_locatie "
              + " WHERE alg_locatie_key = " + loc;
      var oRs = Oracle.Execute(sql);
      descr = oRs("alg_locatie_code").value + "-" + oRs("alg_locatie_omschrijving").value;
    }
    else
      descr = L("lcl_all");
%>
    <table width="100%">
    <tr>
      <td class="label"><label><%=L("lcl_location")%></label>:&nbsp;</td><td><%=safe.html(descr)%></td>
<%    if (loc != -1)
      { %>
        <td align="right" valign="center">
          <form>
            <input type=hidden name=lblCode value=<%=safe.htmlattr(lblCode)%>>
            <input type=hidden name=Label value=<%=pLabel%>>
            <input type=submit value='<%=L("lcl_all")%>'>
          </form>
        </td>
<%    } %>
    </tr>
    </table>

<%
    sql = "SELECT cad_label_view, cad_label_size "
        + "  FROM cad_label WHERE cad_label_key = " + pLabel
    oRs = Oracle.Execute(sql)
    viewName = oRs("cad_label_view").value;

    sql = "SELECT  "
        + "  alg_locatie_code, alg_gebouw_code, alg_verdieping_code, ar.alg_ruimte_nr, ar.alg_ruimte_omschrijving"
        + ", al.alg_locatie_key"
        + ", al.alg_locatie_omschrijving"
        + ", ag.alg_gebouw_key"
        + ", ag.alg_gebouw_omschrijving"
        + ", av.alg_verdieping_key"
        + ", av.alg_verdieping_key"
        + ", av.alg_verdieping_omschrijving"
        + ", ar.alg_ruimte_key"
        + ", al.alg_district_key"
        + ", th.waarde"
        + "  FROM " + viewName + " th, alg_ruimte ar,"
        + "      alg_locatie al,alg_gebouw ag, alg_verdieping av"
        + " WHERE th.alg_ruimte_key = ar.alg_ruimte_key"
        + "   AND th.waarde IS NOT NULL"      // prevent null labels safety
        + "   AND al.alg_locatie_key = ag.alg_locatie_key"
        + "   AND ag.alg_gebouw_key = av.alg_gebouw_key"
        + "   AND av.alg_verdieping_key = ar.alg_verdieping_key"
        + "   AND UPPER(th.waarde) LIKE " + safe.quoted_sql_wild(lblCode + "%");

    if (loc != -1) sql = sql + " AND al.alg_locatie_key = " + loc;

    sql = sql + " ORDER BY waarde";

    function fnrowData(oRs)
    {
      var data = {loc_key: oRs("alg_locatie_key").value,
                  loc_oms: oRs("alg_locatie_omschrijving").value,
                  bld_key: oRs("alg_gebouw_key").value,
                  bld_oms: oRs("alg_gebouw_omschrijving").value,
                  flr_key: oRs("alg_verdieping_key").value,
                  flr_oms: oRs("alg_verdieping_omschrijving").value,
                  rui_key: oRs("alg_ruimte_key").value
                 };

      return JSON.stringify(data);
    }

    function fncolPos(oRs)
    {
      return safe.html(oRs("alg_locatie_code") + "-" +
                       oRs("alg_gebouw_code") + "-" +
                       oRs("alg_verdieping_code") + "-" +
                       oRs("alg_ruimte_nr"));
    }

    var rst = new ResultsetTable({keyColumn: "alg_ruimte_key",
                                      ID: "lbllist",
                                      sql: sql,
                                      rowData: fnrowData,
                                      noPrint: true
                                     });

    rst.addColumn(new Column({caption: L("lcl_obj_identification"), content: "WAARDE"}));
    rst.addColumn(new Column({caption: L("lcl_obj_position"), content: fncolPos}));
    rst.addColumn(new Column({caption: L("lcl_descr"), content: "alg_ruimte_omschrijving"}));

    rst.addAction({ action: "lblView", isDefault: true});

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

