161 lines
6.1 KiB
Plaintext
161 lines
6.1 KiB
Plaintext
<%@ language = "JavaScript" %>
|
|
<%
|
|
/*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: get_wp_info_ajax.asp
|
|
Description: Ophalen van werkplek info voor 3D inkleuring
|
|
Ook: ophalen van alle ruimtekeys die een muur moeten krijgen
|
|
Parameters: vKey
|
|
|
|
Context:
|
|
Note: TODO: thema kan ook een werkplekthema (zelfs objectthema?) zijn, geeft nu error
|
|
|
|
*/ %>
|
|
|
|
<%
|
|
JSON_Result = true;
|
|
%>
|
|
|
|
<!-- #include file="../Shared/common.inc"-->
|
|
<%
|
|
|
|
var vKey = getQParamInt("vKey");
|
|
var thema_key = getQParamInt("thema"); // deze bepaalt welke ruimtes we gaan highlight
|
|
var label_key = getQParamInt("bordlabel",-1); // deze bepaalt welke infoborden we gaan plaatsen
|
|
|
|
result = { muren: [],
|
|
borden: [],
|
|
werkplekken: []
|
|
}
|
|
|
|
// Thema info
|
|
if (thema_key > 0) // Alle(en) ruimtes in het thema gaan we highlighten
|
|
{
|
|
// Haal de schema definitie op
|
|
sql = "SELECT cad_thema_view, l.cad_legenda_key, l.cad_legenda_discreet "
|
|
+ " FROM cad_thema t, cad_legenda l "
|
|
+ " WHERE t.cad_thema_key=" + thema_key
|
|
+ " AND t.cad_legenda_key = l.cad_legenda_key";
|
|
|
|
oRs = Oracle.Execute(sql)
|
|
viewName = oRs("cad_thema_view").value;
|
|
schKey = oRs("cad_legenda_key").value;
|
|
discreet=oRs("cad_legenda_discreet").value;
|
|
oRs.Close();
|
|
|
|
// Doorloop alle ruimtes van onze verdieping en zoek de schema-kleur er bij
|
|
var sql = "SELECT r.alg_ruimte_key, alg_ruimte_nr, waarde"
|
|
+ " FROM alg_ruimte r," + viewName + " thema"
|
|
+ " WHERE thema.alg_ruimte_key = r.alg_ruimte_key"
|
|
+ " AND r.alg_verdieping_key = " + vKey
|
|
+ (hasColumn(viewName, 'fclt_f_3d_user_key', 'NUMBER') ? " AND THEMA.fclt_f_3d_user_key = " + user_key:"");
|
|
|
|
var oRs = Oracle.Execute(sql);
|
|
while (!oRs.Eof)
|
|
{
|
|
var waarde = String(oRs("waarde").Value);
|
|
if (waarde.length && waarde.substr(0,1) != '*')
|
|
{
|
|
var muur = { key: "R:" + oRs("alg_ruimte_key").Value,
|
|
rnr: oRs("alg_ruimte_nr").Value,
|
|
waarde: "X" + waarde };
|
|
result.muren.push(muur);
|
|
}
|
|
oRs.MoveNext();
|
|
}
|
|
}
|
|
|
|
// Label info
|
|
if (label_key > 0) // Voor plaatsing infoborden
|
|
{
|
|
// Haal de schema definitie op
|
|
sql = "SELECT cad_label_view, cad_label_size, cad_label_type "
|
|
+ " FROM cad_label "
|
|
+ " WHERE cad_label_key =" + label_key;
|
|
|
|
oRs = Oracle.Execute(sql)
|
|
var viewName = oRs("cad_label_view").value;
|
|
var viewSize = oRs("cad_label_size").value;
|
|
var labelType = oRs("cad_label_type").Value;
|
|
oRs.Close();
|
|
|
|
var waardecol = hasColumn(viewName, "waarde_html") ? "waarde_html waarde": "waarde"; // de popupborden zijn html en daar kun een apart veld voor definieren.
|
|
if ((labelType & 0x18) == 0) // contouren
|
|
{
|
|
// Doorloop alle ruimtes van onze verdieping en zoek de schema-kleur er bij
|
|
var sql = "SELECT r.alg_ruimte_key, alg_ruimte_nr, " + waardecol
|
|
+ " FROM alg_ruimte r," + viewName + " lbl"
|
|
+ " WHERE lbl.alg_ruimte_key = r.alg_ruimte_key"
|
|
+ " AND r.alg_verdieping_key = " + vKey
|
|
+ (hasColumn(viewName, 'fclt_f_3d_user_key', 'NUMBER') ? " AND lbl.fclt_f_3d_user_key = " + user_key:"");
|
|
if (datumfilter && hasColumn(viewName, 'fclt_f_datum', 'DATE'))
|
|
sql += " AND lbl.fclt_f_datum = " + datumfilter.toSQL();
|
|
|
|
var oRs = Oracle.Execute(sql);
|
|
while (!oRs.Eof)
|
|
{
|
|
var bord = { key: "R:" + oRs("alg_ruimte_key").Value,
|
|
tekst: oRs("waarde").Value,
|
|
rnr: oRs("alg_ruimte_nr").value };
|
|
result.borden.push(bord);
|
|
oRs.MoveNext();
|
|
}
|
|
oRs.Close();
|
|
}
|
|
else // objectlabels
|
|
{
|
|
var datumfilter = getQParamDate("datumfilter", null);
|
|
var discs = getQParamIntArray("discs") // Die moet er dan zijn
|
|
var sql = "SELECT deel.ins_deel_key, " + waardecol
|
|
+ " FROM ins_v_aanwezigdeel deel, alg_ruimte r," + viewName + " lbl"
|
|
+ " WHERE ins_discipline_key IN (" + discs.join(",") +")"
|
|
+ " AND lbl.ins_deel_key = deel.ins_deel_key"
|
|
+ " AND r.alg_verdieping_key = " + vKey
|
|
+ " AND r.alg_ruimte_key = deel.ins_alg_ruimte_key"
|
|
+ " AND ins_alg_ruimte_type = 'R'"
|
|
+ (hasColumn(viewName, 'fclt_f_3d_user_key', 'NUMBER') ? " AND lbl.fclt_f_3d_user_key = " + user_key:"");
|
|
if (datumfilter && hasColumn(viewName, 'fclt_f_datum', 'DATE'))
|
|
sql += " AND lbl.fclt_f_datum = " + datumfilter.toSQL();
|
|
|
|
var oRs = Oracle.Execute(sql);
|
|
while (!oRs.Eof)
|
|
{
|
|
var bord = { key: "I:" + oRs("ins_deel_key").Value,
|
|
tekst: oRs("waarde").Value };
|
|
result.borden.push(bord);
|
|
oRs.MoveNext();
|
|
}
|
|
oRs.Close();
|
|
}
|
|
}
|
|
|
|
// Werkplek info
|
|
// Alleen werkplekken met X en Y
|
|
var sql = "SELECT 'W:'||prs_werkplek_key key, prs_werkplek_omschrijving oms,"
|
|
+ " prs_werkplek_dwgx dwgx, prs_werkplek_dwgy dwgy, "
|
|
+ " prs_werkplek_dwgrotatie rot, prs_werkplek_dwgschaal scl,"
|
|
+ " cadlabel, '"+S("fg_werkpleksymbool")+"' symbolname"
|
|
+ " FROM prs_werkplek wp, "+S("fg_syncruimteview")+" SYNC"
|
|
+ " WHERE wp.prs_alg_ruimte_key = sync.alg_ruimte_key"
|
|
+ " AND prs_werkplek_dwgx IS NOT NULL"
|
|
+ " AND alg_verdieping_key = " + vKey;
|
|
var oRs = Oracle.Execute(sql);
|
|
while (!oRs.Eof)
|
|
{
|
|
var werkplek = { key: oRs("key").Value,
|
|
oms: oRs("oms").Value,
|
|
rot: oRs("rot").Value,
|
|
dwgX: oRs("dwgx").Value,
|
|
dwgY: oRs("dwgy").Value,
|
|
symbolname: oRs("symbolname").Value
|
|
}
|
|
result.werkplekken.push(werkplek);
|
|
oRs.MoveNext();
|
|
}
|
|
|
|
Response.Write(JSON.stringify(result));
|
|
%>
|
|
<% ASPPAGE_END(); %>
|