Files
Facilitor/APPL/PDA/ruimte.asp
Peter Feij 0fde26b710 SGGR#91159 Overzicht van (sensor)objecten in ruimte toont veel te veel objecten
svn path=/Website/branches/v2025.3/; revision=70681
2025-10-21 16:38:18 +00:00

237 lines
11 KiB
Plaintext

<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: pda/ruimte.asp
Ruimtedetails+vervolgfuncties
Context: vanaf smartphone-ruimtelijst of direct via een QRC
Parameters:
ruimte_key
*/
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="./resultset_table.inc" -->
<!-- #include file="../alg/alg.inc" -->
<!-- #include file="../alg/alg_flexkenmerk.inc" -->
<!-- #include file="../Shared/discx3d.inc" -->
<!-- #include file="../Shared/getkenmerksql.inc" -->
<!-- #include file="../mld/mld.inc" -->
<!-- #include file="./mobile.inc" -->
<!-- #include file="./iface.inc" -->
<%
var ruimte_key = getQParamInt("ruimte_key");
var qrc = getQParamInt("qrc", 0) != 0;
var tiny = getQParamInt("tiny", 0) !=0;
var transitParam = buildTransitParam(["qrc", "tiny"]);
var sql = "SELECT aog.alg_gebouw_code || '-' || aog.alg_verdieping_code || '-' || aog.alg_ruimte_nr plaats "
+ " FROM alg_v_onroerendgoed_gegevens aog"
+ " WHERE aog.alg_ruimte_key = " + ruimte_key;
var oRs = Oracle.Execute(sql);
var subject = oRs("plaats").value;
oRs.Close();
var isResRuimte = false;
var imagePath;
sql = "SELECT ra.res_ruimte_key"
+ " , rr.res_ruimte_image"
+ " FROM res_alg_ruimte ra"
+ " , res_ruimte rr"
+ " WHERE rr.res_ruimte_key = ra.res_ruimte_key"
+ " AND ra.res_alg_ruimte_verwijder IS NULL"
+ " AND ra.alg_ruimte_key = " + ruimte_key;
oRs = Oracle.Execute(sql);
if (!oRs.eof) {
isResRuimte = true;
var res_ruimte_image = oRs("res_ruimte_image").Value;
if (res_ruimte_image !== null) {
imagePath = S("res_image_path") + res_ruimte_image;
}
}
oRs.Close();
%>
<html>
<head>
<% FCLTMHeader.Generate({title: subject}); %>
</head>
<body>
<%
PAGE_START({ "headerImage": imagePath });
HEADER ({ title: L("lcl_room")+ " " + subject, back: !qrc, home: !qrc });
CONTENT_START();
var sql = "SELECT r.alg_ruimte_key"
+ " , r.alg_ruimte_nr"
+ " , r.alg_ruimte_omschrijving"
+ ", "+lcl.xsqla("alg_srtruimte_omschrijving", "r.alg_srtruimte_key")
+ " , r.alg_ruimte_bruto_vloeropp"
+ " , r.alg_ruimte_opp_alt1"
+ " , r.alg_ruimte_opp_alt2"
+ " , r.alg_ruimte_omtrek"
+ " , r.alg_ruimte_inhoud"
+ " , r.alg_ruimte_opmerking"
+ " , r.alg_ruimte_verwijder"
+ " , r.mld_dienstniveau_key"
+ " FROM alg_ruimte r, alg_srtruimte sr"
+ " WHERE sr.alg_srtruimte_key(+) = r.alg_srtruimte_key"
+ " AND r.alg_ruimte_key = " + ruimte_key;
oRs = Oracle.Execute(sql);
// BLOCK_START({collapsed: true, title: L("lcl_alg_ruimte_frame")});
// ROFIELD("fld", L("lcl_estate_ruimte_man_nr"), oRs("alg_ruimte_nr").value);
ROFIELD("fld", L("lcl_estate_ruimte_man_descr"), oRs("alg_ruimte_omschrijving").value);
if (!tiny)
{
ROFIELD("fld", L("lcl_estate_ruimte_man_sort"), oRs("alg_srtruimte_omschrijving").value, {suppressEmpty:true});
if (oRs("mld_dienstniveau_key").value)
{
sql = "SELECT mld_dienstniveau_key, "
+ lcl.xsqla("mld_dienstniveau_omschr", "mld_dienstniveau_key")
+ " FROM mld_dienstniveau "
+ " WHERE mld_dienstniveau_key = " + oRs("mld_dienstniveau_key").value;
toRs = Oracle.Execute(sql);
ROFIELD("fld", L("lcl_mld_dienst_niveau"), toRs("mld_dienstniveau_omschr").value);
toRs.Close();
}
ROFIELD("fld", L("lcl_estate_ruimte_bruto_vloeropp"), oRs("alg_ruimte_bruto_vloeropp").value, {suppressEmpty:true});
ROFIELD("fld", L("lcl_estate_ruimte_opp_alt1"), oRs("alg_ruimte_opp_alt1").value, {suppressEmpty:true});
ROFIELD("fld", L("lcl_estate_ruimte_opp_alt2"), oRs("alg_ruimte_opp_alt2").value, {suppressEmpty:true});
ROFIELD("fld", L("lcl_estate_ruimte_man_omtrek"), oRs("alg_ruimte_omtrek").value, {suppressEmpty:true});
ROFIELD("fld", L("lcl_estate_ruimte_man_inhoud"), oRs("alg_ruimte_inhoud").value, {suppressEmpty:true});
}
ROFIELD("fld", L("lcl_estate_ruimte_man_opmerk"), oRs("alg_ruimte_opmerking").value, {suppressEmpty:true});
// BLOCK_END();
oRs.Close();
if (!tiny)
{
// Plus flexkenmerken
var this_alg = alg.func_enabled(ruimte_key, "R");
generateFlexKenmerkBlock ({
onrgoed_key : ruimte_key,
onrgoed_niveau : "R",
reado : true,
this_alg : this_alg,
mobile: true
});
}
// Tel het aantal ruimte-meldingen (binnen mijn autorisatie) om tussen haakjes in de knop te tonen (prio 2)
// Tel het aantal ruimte-objecten (binnen mijn autorisatie) om tussen haakjes in de knop te tonen (prio 2)
CONTROLGROUP_START();
if (isResRuimte) {
BUTTON(L("lcl_mobile_reserveringen"), {linkid: "./reserveringen.asp?alg_ruimte_key="+ruimte_key + transitParam, icon: "fa-th" });
}
trackinglines = mobile.hastrackingpage('ruimte', ruimte_key);
if (trackinglines > 0 && !tiny) {
BUTTON(L("lcl_history"), {linkid: "#page-2-"+ruimte_key, icon: "fa-list"});
}
// Toon meldingenknop als er lopende meldingen zijn en ik die mag zien (kan vast nog scherper)
var canAddMLD = user.checkAutorisation(["WEB_MLDUSE", "WEB_MLDFOF"], true); // dat mag nog scherper
if (user.checkAutorisation( "WEB_MLDBOF", true)) {
// De prijs is wel dat ik mld.inc moet includen..
var perform=false; // ???? JGL: MLD.INC gebruikt deze illegaal globaal
var frontend=false;
var sqln_arr = mld.getfromwherelist_sql("WEB_MLDBOF", {});
var tsql = "SELECT COUNT(m.mld_melding_key), MAX(m.mld_melding_key)" + sqln_arr[0]
+ " AND m.mld_melding_status IN (0,2,4,7)"
+ " AND v.alg_ruimte_key = " + ruimte_key
+ " UNION "
+ "SELECT COUNT(m.mld_melding_key), MAX(m.mld_melding_key)" + sqln_arr[1]
+ " AND m.mld_melding_status IN (0,2,4,7)"
+ " AND v.alg_ruimte_key = " + ruimte_key;
toRs = Oracle.Execute(tsql);
if (toRs(0).value == 1) { // eentje slechts, dan naar de details; max is vanzelfsprekend die ene
BUTTON(L("lcl_mobile_meldingen") + " (1)", {linkid: "./melding.asp?mld_key="+toRs(1).value + transitParam, icon: "fa-exclamation-circle" });
} else if (toRs(0).value == 0 && !tiny && canAddMLD) { // geen, misschien wil ik toevoegen. In tiny mode altijd een toevoegen knop tonen
BUTTON(L("lcl_mobile_newmelding"), {linkid: "./melding.asp?mld_key=-1&ruimte_key="+ruimte_key + transitParam, icon: "fa-plus" });
} else if (toRs(0).value > 0) { // meerdere, dan naar lijst
BUTTON(L("lcl_mobile_meldingen")+" (" + toRs(0).value + ")", {linkid: "./mld_list.asp?ruimte_key=" + ruimte_key + transitParam, icon: "fa-exclamation-circle" });
}
toRs.Close();
}
if (tiny && canAddMLD)
BUTTON(L("lcl_mobile_newmelding"), {linkid: "./melding.asp?mld_key=-1&ruimte_key="+ruimte_key + transitParam, icon: "fa-plus" });
// Toon Objectenknop als er in deze ruimte objecten zijn.
// TODO: ook werkplekobjecten meetellen?
if (user.checkAutorisation( "WEB_INSUSE", true))
{
var tsql = "SELECT COUNT(ins_deel_key), MAX(ins_deel_key)"
+ " FROM ins_v_aanwezigdeel"
+ " WHERE (ins_deel_vervaldatum IS NULL OR ins_deel_vervaldatum > TRUNC(SYSDATE))"
+ " AND ins_alg_ruimte_type = 'R' AND ins_alg_ruimte_key = " + ruimte_key;
var tsql = " SELECT COUNT(ins_deel_key), MAX(ins_deel_key)"
+ " FROM alg_v_onroerendgoed_gegevens aog,"
+ " ins_deel id,"
+ " ins_srtdeel sd,"
+ " alg_locatie l,"
+ " alg_district di "
+ " WHERE id.ins_alg_ruimte_key = aog.alg_ruimte_key "
+ " AND aog.alg_locatie_key = l.alg_locatie_key "
+ " AND l.alg_district_key = di.alg_district_key "
+ " AND id.ins_alg_ruimte_type = 'R'"
+ " AND sd.ins_srtdeel_key = id.ins_srtdeel_key"
+ " AND id.ins_deel_verwijder IS NULL"
+ " AND (id.ins_deel_vervaldatum IS NULL OR id.ins_deel_vervaldatum > TRUNC(SYSDATE))"
+ " AND id.ins_deel_parent_key IS NULL"
+ " AND sd.ins_srtgroep_key NOT IN (" + S("sle_ins_srt_groep_key") + ", " + S("cil_ins_srt_groep_key") + ")"
+ " AND aog.alg_ruimte_key = " + ruimte_key;
tsql = discx3d (tsql,
"id.ins_discipline_key",
"di.alg_regio_key",
"l.alg_district_key",
"aog.alg_locatie_key",
"aog.alg_gebouw_key",
"aog.alg_verdieping_key",
"aog.alg_ruimte_key",
"", // b.prs_bedrijf_key:
"", // d.prs_afdeling_key:
"WEB_INSUSE",
[], // Geen discipline filter.
0);
toRs = Oracle.Execute(tsql);
if (toRs(0).value == 1) { // eentje slechts, dan naar de details; max is vanzelfsprekend die ene
BUTTON(L("lcl_mobile_objecten")+" (1)", {linkid: "./ins_deel.asp?ins_key="+toRs(1).value + transitParam, icon: "fa-info" });
} else if (toRs(0).value > 0) { // meerdere, dan naar lijst, en onderdruk persoons-afdelings-terrein objecten.
BUTTON(L("lcl_mobile_objecten")+" ("+toRs(0).value+")", {linkid: "./ins_list.asp?ruimte_key="+ruimte_key +"&plaatsfilter=0&p=0&a=0&t=0" + transitParam, icon: "fa-info"});
}
toRs.Close();
}
if (user.checkAutorisation( "WEB_PRSBOF", true) && !tiny)
{ // Werkplekbeheer zolang ik alleen kan doorklikken hoef ik die button niet te zien in tiny mode
var tsql = "SELECT COUNT(prs_werkplek_key)"
+ " FROM prs_werkplek WHERE prs_werkplek_virtueel=0 AND prs_alg_ruimte_key = " + ruimte_key;
toRs = Oracle.Execute(tsql);
if (toRs(0).value > 0) {
BUTTON(L("lcl_mobile_werkplekken")+" ("+ toRs(0).value +")", {linkid: "./wp_list.asp?ruimte_key="+ruimte_key + transitParam, icon: "fa-info"});
}
toRs.Close();
}
CONTROLGROUP_END();
CONTENT_END();
FOOTER();
PAGE_END();
if (trackinglines > 0) {
PAGE_START({id: "page-2-"+ruimte_key, dialog: true})
mobile.trackingpage('ruimte', ruimte_key, subject);
PAGE_END();
}
PDA_PAGE_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>