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

     File:               CAD/obj_search.asp
     Description:        Zoek object via code
     Parameters:         objCode: de door de gebruiker ingevoerde zoekcode
                         loc_key: optioneel, standaard zoeken we *met* loc_key omdat dat sneller is
                         discs: nog niet getest. Denkbaar is om alleen te zoeken op
                                disciplines die aan staan
     Context:            Modal vanuit zoekknopje op hoofdscherm
     Result:             Als de gebruiker op een regel klikt wordt via closeModal
                         allerlei keys van object opgeleverd
     Note:

*/ %>

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

<%
var autfunction = "WEB_INSUSE";
var oRs;
var sql = "";
var i=0;
var objCode = getQParam("objCode");
var loc = getQParamInt( "loc_key", -1);
var discs = getQParamIntArray("discs", []); // Komma separated list of ins_discipline_keys
                                            // not tested (yet)
%>

<html>
  <head>
<%  FCLTHeader.Generate(); %>
    <script type="text/javascript">
      function objView(row)
      {
          var objData = eval('(' + row.getAttribute("ROWDATA") + ')');
          objData.success = true;
          FcltMgr.closeDetail(window, objData);
      }
    </script>
  </head>
  <body class="modal" id="mod_obj_search" style="width:600px" >
<%  // 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=objCode value=<%=safe.htmlattr(objCode)%>>
            <input type=hidden name=discs value=<%=discs.join(",")%>>
            <input type=submit value="<%=L("lcl_all")%>">
          </form>
        </td>
<%    } %>
    </tr>
    </table>

<%
    sql = "SELECT o.alg_plaatsaanduiding plaats, alg_ruimte_omschrijving"
        + ", s.ins_srtdeel_code || '-' ||" + lcl.xsql('s.ins_srtdeel_omschrijving', 's.ins_srtdeel_key') + " soort"
        + ", g.ins_deel_omschrijving"
        + ", g.ins_deel_key"
        + ", s.ins_srtdeel_key"
        + ", g.ins_discipline_key"
        + ", g.ins_alg_locatie_key"
        + ", l.alg_locatie_omschrijving"
        + ", o.alg_gebouw_key"
        + ", o.alg_gebouw_omschrijving"
        + ", o.alg_verdieping_key"
        + ", o.alg_verdieping_omschrijving"
        + ", g.ins_alg_ruimte_key"
        + ", l.alg_district_key"
        + ", ins_deel_upper" // filtering only
        + " FROM ins_deel g, alg_ruimte ar,"
        + "      ins_v_alg_overzicht o,"
        + "      ins_srtdeel s, alg_locatie l, alg_district di "   // I added this for alg_district_key (FSN#1082)
        + " WHERE g.ins_deel_verwijder IS NULL"
        + "   AND (g.ins_deel_vervaldatum IS NULL OR g.ins_deel_vervaldatum > TRUNC(SYSDATE))"
        + "   AND g.ins_deel_module = 'INS'"
        + "   AND g.ins_deel_parent_key IS NULL"
        + "   AND o.alg_ruimte_key = ar.alg_ruimte_key"
        + "   AND o.alg_onroerendgoed_keys = g.ins_alg_ruimte_key"
        + "   AND o.alg_onroerendgoed_type = g.ins_alg_ruimte_type"
        + "   AND g.ins_alg_ruimte_type IN ('R', 'W')"
        + "   AND o.alg_locatie_key = g.ins_alg_locatie_key"
        + "   AND o.alg_locatie_key = l.alg_locatie_key"
        + "   AND l.alg_district_key = di.alg_district_key"
        + "   AND s.ins_srtdeel_key = g.ins_srtdeel_key";

    if (loc != -1) sql = sql + " AND g.ins_alg_locatie_key = " + loc;
    sql = sql + " AND g.ins_deel_upper LIKE " + safe.quoted_sql_wild(objCode + "%")

    if(discs.length > 0 && discs.join(",").indexOf("-1") == -1)
    {
      sql = sql + " and ins_discipline_key IN (" + discs.join(",") + ")";
      // Veronderstel dat autorisatie dan wel goed zit
    }
    else
    {
      sql = discx3d (sql, "g.ins_discipline_key", "di.alg_district_key",  "l.alg_district_key",
                     "l.alg_locatie_key", "o.alg_gebouw_key", "o.alg_verdieping_key",
                     "o.alg_ruimte_key", "b.prs_bedrijf_key", "b.prs_afdeling_key",
                     autfunction, discs.join(","), 0);
    }

    sql = sql + " order by ins_deel_omschrijving";

    function fnrowData(oRs)
    {
      var data = {loc_key: oRs("ins_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("ins_alg_ruimte_key").value,
                  disc_key: oRs("ins_discipline_key").value
                 };

      return JSON.stringify(data);
    }
      var rst = new ResultsetTable({keyColumn: "ins_alg_ruimte_key",
                                    ID: "objlist",
                                    sql: sql,
                                    rowData: fnrowData,
                                    noPrint: true
                                   });

      rst.addColumn(new Column({caption: L("lcl_obj_identification"), content: "ins_deel_omschrijving"}));
      rst.addColumn(new Column({caption: L("lcl_obj_sort"), content: "soort"}));
      rst.addColumn(new Column({caption: L("lcl_obj_position"), content: "plaats"}));
      rst.addColumn(new Column({caption: L("lcl_descr"), content: "alg_ruimte_omschrijving"}));

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

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

