330 lines
15 KiB
Plaintext
330 lines
15 KiB
Plaintext
<%@ language="javascript"%>
|
||
<% /*
|
||
$Revision$
|
||
$Id$
|
||
|
||
File: CAD/any_search.asp
|
||
Description: Zoek ruimte via code ingevoerd voor huidige label thema
|
||
Parameters: zoektekst: de door de gebruiker ingevoerde zoekcode
|
||
loc_key: standaard zoeken we *met* loc_key omdat dat sneller is
|
||
floor_key: de context van de huidige tekening
|
||
label: key in CAD_LABEL, thema dat aan staat
|
||
Context: Modal vanuit zoekknopje op hoofdscherm Graphics
|
||
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?
|
||
We zoeken in eigenlijk alle teksten die in beeld kunnen zijn:
|
||
* eventueel actief Ruimtelabel thema
|
||
* eventueel actief Objectlabel thema incl. tooltip
|
||
* Reguliere object code (ins_deel_upper)
|
||
* TODO: Ruimtenummer
|
||
*/ %>
|
||
|
||
<!-- #include file="../Shared/common.inc" -->
|
||
<!-- #include file="../shared/iface.inc" -->
|
||
<!-- #include file="../Shared/resultset_table_v2.inc" -->
|
||
<!-- #include file="fgii.inc" -->
|
||
|
||
<%
|
||
var oRs;
|
||
var sql = "";
|
||
var i = 0;
|
||
|
||
var zoektekst = getQParam("zoektekst", "");
|
||
var loc_key = getQParamInt("loc_key", -1);
|
||
var floor_key = getQParamInt("floor_key", -1);
|
||
var pLabelR_key = getQParamInt("labelR", -1);
|
||
var pLabelI_key = getQParamInt("labelI", -1);
|
||
var disc_key_arr = getQParamIntArray("discs", []);
|
||
var datumfilter = getQParamDate("datumfilter", null);
|
||
%>
|
||
|
||
<html>
|
||
<head>
|
||
<% FCLTHeader.Generate(); %>
|
||
<script type="text/javascript">
|
||
function lblView(row)
|
||
{
|
||
var lblData = JSON.parse(row.getAttribute("ROWDATA"));
|
||
lblData.success = true;
|
||
FcltMgr.closeDetail(window, lblData);
|
||
}
|
||
$(function () { $("#zoektekst").focus(); } );
|
||
</script>
|
||
</head>
|
||
|
||
<body class="modal" id="mod_lbl_search" style="min-width: 600px" >
|
||
<% MODAL_START();
|
||
%>
|
||
<form name="u2" method="get" action="any_search.asp">
|
||
<input type="hidden" name="loc_key"value="<%=loc_key%>">
|
||
<input type="hidden" name="floor_key"value="<%=floor_key%>">
|
||
<input type="hidden" name="labelR" value="<%=pLabelR_key%>">
|
||
<input type="hidden" name="labelI" value="<%=pLabelI_key%>">
|
||
<input type="hidden" name="discs" value="<%=disc_key_arr.join(",")%>">
|
||
<%
|
||
MODAL_BLOCK_START("lblsearch", L("lcl_fg_search_label"), { icon: "fa-search-location fa-flip-horizontal" });
|
||
if (loc_key > 0)
|
||
{
|
||
%> <tr>
|
||
<td class="label"><label for="fg_waar"><%=L("lcl_fg_searcharea")%></label></td>
|
||
<td>
|
||
<label for="waar_l">
|
||
<input type="radio" name="fg_waar" id="waar_l" value="1" <%=getQParamInt("fg_waar", 1) == 1?"checked":""%>><%=L("lcl_fg_search_thisfloor")%>
|
||
</label>
|
||
<label for="waar_f">
|
||
<input type="radio" name="fg_waar" id="waar_f" value="0" <%=getQParamInt("fg_waar", 1) == 0?"checked":""%>><%=L("lcl_fg_search_thislocation")%>
|
||
</label>
|
||
</td>
|
||
</tr>
|
||
<% }
|
||
if (pLabelR_key > 0)
|
||
{
|
||
sql = "SELECT " + lcl.xsqla('cad_label_omschrijving', 'cad_label_key') + ","
|
||
+ " cad_label_view "
|
||
+ " FROM cad_label"
|
||
+ " WHERE cad_label_key = " + pLabelR_key
|
||
oRs = Oracle.Execute(sql)
|
||
var labelviewNameR = oRs("cad_label_view").value;
|
||
RWCHECKBOXTR("slabelR", "fldcheck", oRs("cad_label_omschrijving").Value, getQParamSafe("slabelR", "on") == "on");
|
||
oRs.Close();
|
||
}
|
||
if (pLabelI_key > 0)
|
||
{
|
||
sql = "SELECT " + lcl.xsqla('cad_label_omschrijving', 'cad_label_key') + ","
|
||
+ " cad_label_view "
|
||
+ " FROM cad_label"
|
||
+ " WHERE cad_label_key = " + pLabelI_key
|
||
oRs = Oracle.Execute(sql)
|
||
var labelviewNameI = oRs("cad_label_view").value;
|
||
RWCHECKBOXTR("slabelI", "fldcheck", oRs("cad_label_omschrijving").Value, getQParamSafe("slabelI", "on") == "on");
|
||
oRs.Close();
|
||
}
|
||
if (disc_key_arr.length) // TODO: 'Plan' zit hier ook in maar heeft geen ins_srtgroep onder zich, dus niet meetellen?
|
||
{ // TODO2: als er maar <20><>n discipline overblijft dan de naam daarvan overnemen?
|
||
RWCHECKBOXTR("sobject", "fldcheck", L("lcl_ins_objects"), getQParamSafe("sobject", "on") == "on");
|
||
}
|
||
// TODO: we zouden hier ook een checkboxje kunnen bieden om in ruimtenummers te zoeken. Lijkt me overkill vooralsnog
|
||
RWFIELDTR("zoektekst", "fld search", L("lcl_search_diff_fields"), zoektekst, {});
|
||
MODAL_BLOCK_END();
|
||
|
||
var buttons = [{title: L("lcl_search"), icon: "fa-fclt-save", action: "document.forms.u2.submit()", importance: 1},
|
||
{title: L("lcl_cancel"), icon: "fa-fclt-cancel", action: "FcltMgr.closeDetail(window, { cancel: true })", importance: 3}];
|
||
SIMPLE_BLOCK_START();
|
||
CreateButtons(buttons);
|
||
SIMPLE_BLOCK_END();
|
||
%>
|
||
</form>
|
||
<%
|
||
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_naam").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").Value + "-" +
|
||
oRs("alg_gebouw_code").Value + "-" +
|
||
oRs("alg_verdieping_code").Value + "-" +
|
||
oRs("alg_ruimte_nr").Value);
|
||
}
|
||
|
||
if (zoektekst && pLabelR_key > 0 && getQParamSafe("slabelR", "") == "on")
|
||
{
|
||
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_naam"
|
||
+ " , av.alg_verdieping_key"
|
||
+ " , av.alg_verdieping_key"
|
||
+ " , av.alg_verdieping_omschrijving"
|
||
+ " , ar.alg_ruimte_key"
|
||
+ " , al.alg_district_key"
|
||
+ " , th.waarde"
|
||
+ " FROM " + labelviewNameR + " 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("%" + zoektekst + "%")
|
||
+ (hasColumn(labelviewNameR, 'fclt_f_3d_user_key', 'NUMBER') ? " AND th.fclt_f_3d_user_key = " + user_key:"");
|
||
if (hasColumn(labelviewNameR, 'tooltip', 'varchar2'))
|
||
sql += " OR UPPER(th.tooltip) LIKE " + safe.quoted_sql_wild("%" + zoektekst + "%");
|
||
sql += ")"
|
||
if (datumfilter && hasColumn(labelviewNameR, 'fclt_f_datum', 'DATE'))
|
||
sql += " AND th.fclt_f_datum = " + datumfilter.toSQL();
|
||
|
||
if (floor_key > 0 && getQParamInt("fg_waar", 0) == 1)
|
||
sql = sql + " AND av.alg_verdieping_key = " + floor_key;
|
||
else
|
||
sql = sql + " AND al.alg_locatie_key = " + loc_key;
|
||
|
||
sql = sql + " ORDER BY waarde";
|
||
|
||
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});
|
||
|
||
SIMPLE_BLOCK_START();
|
||
var cnt = rst.processResultset();
|
||
SIMPLE_BLOCK_END();
|
||
}
|
||
|
||
if (zoektekst && pLabelI_key > 0 && getQParamSafe("slabelI", "") == "on")
|
||
{
|
||
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_naam"
|
||
+ " , av.alg_verdieping_key"
|
||
+ " , av.alg_verdieping_key"
|
||
+ " , av.alg_verdieping_omschrijving"
|
||
+ " , ar.alg_ruimte_key"
|
||
+ " , al.alg_district_key"
|
||
+ " , th.waarde"
|
||
+ " FROM " + labelviewNameI + " th, ins_deel d, alg_ruimte ar,"
|
||
+ " alg_locatie al,alg_gebouw ag, alg_verdieping av"
|
||
+ " WHERE th.ins_deel_key = d.ins_deel_key"
|
||
+ " AND d.ins_alg_ruimte_key = ar.alg_ruimte_key"
|
||
+ " AND d.ins_alg_ruimte_type = 'R'"
|
||
+ " 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("%" + zoektekst + "%")
|
||
+ (hasColumn(labelviewNameI, 'fclt_f_3d_user_key', 'NUMBER') ? " AND th.fclt_f_3d_user_key = " + user_key:"");
|
||
if (hasColumn(labelviewNameI, 'tooltip', 'varchar2'))
|
||
sql += " OR UPPER(th.tooltip) LIKE " + safe.quoted_sql_wild("%" + zoektekst + "%");
|
||
sql += ")"
|
||
|
||
if (datumfilter && hasColumn(labelviewNameI, 'fclt_f_datum', 'DATE'))
|
||
sql += " AND th.fclt_f_datum = " + datumfilter.toSQL();
|
||
|
||
if (floor_key > 0 && getQParamInt("fg_waar", 0) == 1)
|
||
sql = sql + " AND av.alg_verdieping_key = " + floor_key;
|
||
else
|
||
sql = sql + " AND al.alg_locatie_key = " + loc_key;
|
||
|
||
sql = sql + " ORDER BY waarde";
|
||
|
||
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});
|
||
|
||
SIMPLE_BLOCK_START();
|
||
var cnt = rst.processResultset();
|
||
SIMPLE_BLOCK_END();
|
||
}
|
||
|
||
if (zoektekst && disc_key_arr.length && getQParamSafe("sobject", "") == "on")
|
||
{
|
||
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"
|
||
+ " , l.alg_locatie_key"
|
||
+ " , l.alg_locatie_omschrijving"
|
||
+ " , o.alg_gebouw_key"
|
||
+ " , o.alg_gebouw_naam"
|
||
+ " , o.alg_verdieping_key"
|
||
+ " , o.alg_verdieping_omschrijving"
|
||
+ " , o.alg_ruimte_key"
|
||
+ " , l.alg_district_key"
|
||
+ " 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"
|
||
+ " AND g.ins_deel_upper LIKE " + safe.quoted_sql_wild("%" + zoektekst + "%");
|
||
|
||
if (floor_key > 0 && getQParamInt("fg_waar", 0) == 1)
|
||
sql = sql + " AND o.alg_verdieping_key = " + floor_key;
|
||
else
|
||
sql = sql + " AND l.alg_locatie_key = " + loc_key;
|
||
|
||
if(disc_key_arr.length > 0 && disc_key_arr.join(",").indexOf("-1") == -1)
|
||
{
|
||
sql = sql + " and ins_discipline_key IN (" + disc_key_arr.join(",") + ")";
|
||
// Veronderstel dat autorisatie dan wel goed zit
|
||
}
|
||
else
|
||
{
|
||
var autfunction = "WEB_INSUSE";
|
||
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, disc_key_arr, 0);
|
||
}
|
||
|
||
sql = sql + " order by ins_deel_omschrijving";
|
||
|
||
var rst = new ResultsetTable({keyColumn: "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: "lblView", isDefault: true});
|
||
|
||
SIMPLE_BLOCK_START();
|
||
var cnt = rst.processResultset();
|
||
SIMPLE_BLOCK_END();
|
||
}
|
||
|
||
MODAL_END();
|
||
%>
|
||
</body>
|
||
</html>
|
||
|
||
<% ASPPAGE_END(); %>
|