<%@ 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"-->
<!-- #include file="../Shared/json2.js" -->
<%

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;

    var oRs = Oracle.Execute(sql);
    while (!oRs.Eof)
    {
        var waarde = String(oRs("waarde").Value);
        if (waarde.length && waarde.substr(0,1) != '*')
        {
            var muur = { key: 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 "
        + "  FROM cad_label "
        + " WHERE cad_label_key =" + label_key;

    oRs = Oracle.Execute(sql)
    viewName = oRs("cad_label_view").value;
    viewSize = oRs("cad_label_size").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 + " lbl"
            + " WHERE lbl.alg_ruimte_key = r.alg_ruimte_key"
            + "   AND r.alg_verdieping_key = " + vKey;

    var oRs = Oracle.Execute(sql);
    while (!oRs.Eof)
    {
        var bord = { key: oRs("alg_ruimte_key").Value,
                     tekst: oRs("waarde").Value,
                     rnr: oRs("alg_ruimte_nr").value,
                     waarde: waarde };
        result.borden.push(bord);
        oRs.MoveNext();
    }
}

// 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));
%>
