Files
Facilitor/APPL/MLD/mld_load_obj_info.asp
2020-07-22 07:09:53 +00:00

132 lines
5.3 KiB
Plaintext

<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: mld_load_obj_info.asp
Description: Genereer HTML info voor een object bij melding
Parameters: ins_key
aantal_kenmerken
Context: asynchrone aanroep vanuit mld_object.asp
Notes:
*/ %>
<%
DOCTYPE_Disable = 1;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/get_objecten_sql.inc" -->
<%
function kenmerkTR(label, waarde)
{
var txt = '<tr>'
+ '<td class="label"><label>'+safe.html(label)+':</label></td>'
+ '<td style="word-wrap:break-word">' +safe.html(waarde)+'</td>'
+ '</tr>';
return txt;
}
var ins_key = getQParamInt("ins_key");
var max_rows = getQParamInt("max_rows",1);
var sql = "SELECT s.ins_srtdeel_key"
+ " FROM ins_deel d"
+ ", ins_srtdeel s"
+ " WHERE d.ins_srtdeel_key = s.ins_srtdeel_key"
+ " AND ins_deel_key = " + ins_key;
var oRs = Oracle.Execute(sql);
var srtdeel_key = oRs("ins_srtdeel_key").value;
oRs.close();
var txt = '<table style="table-layout:fixed; width:100%">';
var sql = "SELECT d.ins_deel_key"
+ " , d.ins_deel_omschrijving||' ('||" + lcl.xsql('s.ins_srtdeel_omschrijving', 's.ins_srtdeel_key') + "||')' deel"
+ " , d.ins_deel_opmerking"
+ " , d.ins_alg_ruimte_type"
+ " , dg.alg_plaatsaanduiding"
+ " , d.ins_deel_aantal"
+ " , s.ins_srtdeel_eenheid"
+ " FROM ins_deel d"
+ " , ins_srtdeel s"
+ " , alg_v_aanwezigruimte a"
+ " , alg_v_allonrgoed_gegevens dg"
+ " WHERE d.ins_alg_ruimte_key = a.alg_ruimte_key(+)" // Outer join nodig om ook de persoonsgebonden en afdelingsgebonden objecten te tonen.
+ " AND d.ins_srtdeel_key = s.ins_srtdeel_key"
+ " AND d.ins_deel_verwijder IS NULL"
+ " AND d.ins_alg_ruimte_type = dg.alg_type"
+ " AND d.ins_alg_ruimte_key = dg.alg_onroerendgoed_keys"
+ " AND d.ins_deel_key = " + ins_key;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
switch (oRs("ins_alg_ruimte_type").Value)
{
case "P": { var lbl = L("lcl_obj_owner"); break; } // Persoon(P)
case "A": { var lbl = L("lcl_obj_department"); break; } // Afdeling (A)
default: { var lbl = L("lcl_obj_position"); break; } // Plaats: Ruimte(R), Terrein(T) of Werkplek(W)
}
txt += kenmerkTR(lbl, oRs("alg_plaatsaanduiding").Value);
txt += kenmerkTR(L("lcl_obj_identification"), oRs("deel").Value);
if (oRs("ins_deel_opmerking").Value)
txt += kenmerkTR(L("lcl_ins_opmerking"), oRs("ins_deel_opmerking").value);
txt += kenmerkTR(L("lcl_amount"), oRs("ins_deel_aantal").Value + (oRs("ins_srtdeel_eenheid").Value ? " " + oRs("ins_srtdeel_eenheid").Value : ""));
}
oRs.close();
var sqlwaarde = " k.ins_kenmerk_default";
if (srtdeel_key > 0)
sqlwaarde = "(SELECT (CASE WHEN sk.fac_kenmerkdomein_key IS NULL"
+ " THEN v.ins_kenmerkdeel_waarde"
+ " ELSE fac.getdomeinwaarde(sk.fac_kenmerkdomein_key, v.ins_kenmerkdeel_waarde)"
+ " END) ins_kenmerkdeel_waarde"
+ " FROM ins_kenmerkdeel v"
+ ", ins_srtkenmerk sk"
+ " WHERE sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key"
+ " AND sk.ins_srtkenmerk_kenmerktype NOT IN ('L','M')"
+ " AND v.ins_kenmerk_key = k.ins_kenmerk_key"
+ " AND v.ins_kenmerkdeel_verwijder IS NULL"
+ " AND ( k.ins_kenmerk_bewerkniveau = 'D' AND v.ins_deel_key = " + ins_key
+ " OR k.ins_kenmerk_bewerkniveau = 'S' AND v.ins_deel_key = " + srtdeel_key
+ " )"
+ ")";
var sqlt = "SELECT k.ins_kenmerk_volgnummer kenmerk_volgnr"
+ " , COALESCE (" + lcl.xsql("k.ins_kenmerk_omschrijving", "k.ins_kenmerk_key")
+ " , " + lcl.xsql("t.ins_srtkenmerk_omschrijving", "t.ins_srtkenmerk_key") + ") kenmerk_omschrijving"
+ " ," + sqlwaarde + " kenmerk_waarde"
+ " FROM ins_srtkenmerk t"
+ ", ins_kenmerk k"
+ ", ins_srtdeel s"
+ ", ins_srtgroep g"
+ " WHERE s.ins_srtdeel_key = " + srtdeel_key
+ " AND k.ins_srtkenmerk_key = t.ins_srtkenmerk_key"
+ " AND g.ins_srtgroep_key = s.ins_srtgroep_key"
+ " AND k.ins_kenmerk_verwijder IS NULL"
+ " AND t.ins_srtkenmerk_verwijder IS NULL"
+ " AND ( (k.ins_srtinstallatie_key = s.ins_srtdeel_key"
+ " AND k.ins_kenmerk_niveau = 'S')"
+ " OR (k.ins_srtinstallatie_key = s.ins_srtgroep_key"
+ " AND k.ins_kenmerk_niveau = 'G')"
+ " OR (k.ins_srtinstallatie_key = g.ins_discipline_key"
+ " AND k.ins_kenmerk_niveau = 'D')"
+ " )"
+ " ORDER BY 1,2";
var sql = "SELECT * FROM ("+ sqlt +")"
+ " WHERE rownum <= " + max_rows;
var oRs = Oracle.Execute(sql);
while (!oRs.eof)
{ // elk gevonden record op een nieuwe regel
txt += kenmerkTR(oRs(1).value, oRs(2).value);
oRs.MoveNext();
}
oRs.close();
txt += '</table>';
var result = txt;
Response.Write(result);
%><% ASPPAGE_END(); %>