Files
Facilitor/APPL/PRJ/rap_prj7.asp
Ruud Lipper b19d081fb5 FSN#38685 Vergeten iconen naar font-awesome
svn path=/Website/trunk/; revision=32093
2016-12-22 09:50:07 +00:00

317 lines
12 KiB
Plaintext

<%@ language="javascript"%>
<% /*
$Revision$
$Id$
Geeft een overzicht van de ruimtes in dit scenario
*/%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../CAD/FGII.inc" -->
<!-- #include file="../Shared/json2.js" -->
<%
var highlight = getQParamIntArray("highlight", []); // Comma-separated room_key_list (terrains). Optional
var vKey = getQParamInt("vKey", ""); // Verdieping key
var scenario_key = getQParamInt("scenario_key"); // current scenario.
var outputmode = getQParamInt("outputmode", 0);
var showall = getQParamInt("showall", 0) == 1;
var doremove = getQParamInt("doremove", 0) == 1;
var doadd = getQParamInt("doadd", 0) == 1;
var cad_tek_key = -1; // -1: er is geen aparte project-tekening
sql = "SELECT cad_tekening_key"
+ " , cad_tekening_filenaam"
+ " FROM cad_tekening ct"
+ " WHERE cad_tekening_verwijder IS NULL"
+ " AND cad_tekening_type = 'P'"
+ " AND alg_verdieping_key = " + vKey
oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
normalDWG = FindDWF("" + oRs("cad_tekening_filenaam").value);
prjDWG = FindDWF("" + oRs("cad_tekening_filenaam").value, scenario_key );
if (normalDWG != prjDWG)
cad_tek_key = oRs("cad_tekening_key");
}
var sql = "";
if (vKey !="")
{
sql = "SELECT x.prj_ruimte_key, x.alg_ruimte_aanduiding, x.alg_srtruimte_omschrijving"
+ ", x.prj_ruimte_bruto_vloeropp, x.prj_ruimte_omschrijving, x.cad_imp_contour_opp"
+ ", DECODE (y.prs_dep_string_new, NULL, '[Leegstand]', y.prs_dep_string_new) prs_dep_new"
+ ", DECODE (z.count_old, NULL, DECODE (y.prs_dep_string_new, NULL, '=', y.prs_dep_string_new)"
+ ", 1, DECODE (z.prs_dep_string_old, y.prs_dep_string_new, '=', z.prs_dep_string_old)"
+ ", z.prs_dep_string_old || ', ...') prs_dep_old FROM "
+ " (SELECT prj_r.prj_ruimte_key, alg_g.alg_gebouw_code"
+ " ||'-'"
+ " ||TO_CHAR (alg_v.alg_verdieping_code)"
+ " ||'-'"
+ " ||prj_r.prj_ruimte_nr alg_ruimte_aanduiding"
+ ", "+ lcl.xsqla("alg_s.alg_srtruimte_omschrijving", "alg_s.alg_srtruimte_key")
+ ", prj_ruimte_bruto_vloeropp prj_ruimte_bruto_vloeropp"
+ ", prj_ruimte_omschrijving prj_ruimte_omschrijving"
+ ", c.cad_imp_contour_opp cad_imp_contour_opp"
+ " FROM prj_ruimte prj_r"
+ ", alg_verdieping alg_v"
+ ", alg_gebouw alg_g"
+ ", alg_srtruimte alg_s"
+ ", " + S("fg_prj_syncruimteview") + " sync"
+ ", cad_imp_contour c"
+ " WHERE prj_r.prj_scenario_key = " + scenario_key
+ " AND prj_r.alg_verdieping_key = " + vKey
+ " AND alg_v.alg_verdieping_key = prj_r.alg_verdieping_key"
+ " AND alg_g.alg_gebouw_key = alg_v.alg_gebouw_key"
+ " AND prj_r.alg_srtruimte_key = alg_s.alg_srtruimte_key(+)"
+ " AND prj_r.alg_verdieping_key = sync.alg_verdieping_key(+) "
+ " AND c.CAD_IMP_CONTOUR_NR(+) = sync.CADLABEL "
+ " AND c.prj_scenario_key(+) = " + scenario_key
+ " AND sync.prj_ruimte_key(+) = prj_r.prj_ruimte_key"
+ " AND prj_r.prj_ruimte_verwijder IS NULL"
+ ((highlight.length > 0 && highlight.join(",") != "-1")?" AND prj_r.prj_ruimte_key IN (" + highlight.join(",") + ")":"")
+ " ) x"
+ " LEFT JOIN"
+ " (SELECT prj_r.prj_ruimte_key," + S("prs_dep_string") + " prs_dep_string_new"
+ " FROM prj_ruimte prj_r, prj_ruimteafdeling prj_ra, prs_v_afdeling d"
+ " WHERE prj_r.prj_scenario_key = " + scenario_key
+ " AND prj_r.alg_verdieping_key = " + vKey
+ " AND prj_r.prj_ruimte_key = prj_ra.prj_ruimte_key"
+ " AND prj_ra.prs_afdeling_key = d.prs_afdeling_key"
+ " AND prj_ra.prj_ruimteafdeling_verwijder IS NULL"
+ " ) y"
+ " ON x.prj_ruimte_key = y.prj_ruimte_key"
+ " LEFT JOIN"
+ " (SELECT prj_r.prj_ruimte_key, MIN(" + S("prs_dep_string") + ") prs_dep_string_old"
+ ", COUNT(prj_r.prj_ruimte_key) count_old"
+ " FROM prj_ruimte prj_r, alg_ruimte alg_r, prs_ruimteafdeling prs_ra, prs_v_afdeling d"
+ " WHERE prj_r.prj_scenario_key = " + scenario_key
+ " AND prj_r.alg_verdieping_key = " + vKey
+ " AND prj_r.alg_ruimte_key = alg_r.alg_ruimte_key"
+ " AND alg_r.alg_ruimte_key = prs_ra.alg_ruimte_key"
+ " AND prs_ra.prs_afdeling_key = d.prs_afdeling_key"
+ " AND prs_ra.prs_ruimteafdeling_verwijder IS NULL"
+ " GROUP BY prj_r.prj_ruimte_key"
+ " ) z"
+ " ON x.prj_ruimte_key = z.prj_ruimte_key"
+ " ORDER BY x.alg_ruimte_aanduiding, y.prs_dep_string_new";
}
else
{
sql = "SELECT * FROM DUAL WHERE 1 = 0";
}
%>
<html>
<head>
<% FCLTHeader.Generate({ outputmode: outputmode }); %>
<script type="text/javascript">
$(document).ready(function()
{
PerhapsRefresh();
});
function onClickRuimteAlternatief(row)
{
var room_key = row.getAttribute("ROWKEY");
sl = parent.parent.document.getElementById("rooms");
if (sl.selectedIndex == -1 || sl.options[sl.selectedIndex].value != room_key)
{
for (i = 0; i < sl.length; i++)
{
if (sl.options[i].value == room_key)
{
sl.selectedIndex = i;
parent.parent.OnRoomChanged(sl);
}
}
}
}
function onRemoveRuimte(prj_ruimte_key)
{
FcltMgr.confirm(L('lcl_prj_room_delete'), function() {
FcltMgr.alert(L('lcl_prj_not_supported'))
return true;
var data = {
actie: 'doremove',
room_key: prj_ruimte_key
};
<% protectRequest.dataToken("data"); %>
$.post("rap_prj7_save.asp",
data,
FcltCallback,
"json");
});
}
function onAddRuimte(row)
{
FcltMgr.confirm(L('lcl_prj_room_create'), function() {
var cad_imp_key = row.getAttribute("ROWKEY");
var data = {
actie: 'doadd',
scenariokey: <%=scenario_key%>,
vkey: <%=vKey%>,
cad_imp_key: cad_imp_key
};
<% protectRequest.dataToken("data"); %>
$.post("rap_prj7_save.asp",
data,
FcltCallback,
"json");
});
}
function editRoom(roomKey)
{
var sFeatures="dialogHeight:230px;dialogWidth:600px;status=no;scroll=no";
}
function onClickRuimte(row)
{
var url='../prj/edit_room.asp?room_key=' + row.getAttribute("ROWKEY");
FcltMgr.openModalDetail(url, "<%=L("lcl_prj_graphics")%>",
{ callback: function (data) { if (data.refresh)
parent.myRefresh(); // Er is misschien iets veranderd.
// Pas plaatje aan. En indirect onszelf.
}})
}
function scanDWF()
{
FcltMgr.confirm(L('lcl_prj_floor_dwfscan'), function() {
var data = {
scenariokey: <%=scenario_key%>,
tKey: <%=cad_tek_key%>,
vKey: <%=vKey%>
};
<% protectRequest.dataToken("data"); %>
$.post("../prj/RuimteSync.asp",
data,
FcltCallbackRefresh,
"json");
});
}
function PerhapsRefresh()
{
<% if (doadd ||
doremove)
{ %>
parent.parent.parent.parent.myRefresh();
<% } %>
}
</script>
</head>
<body class="prjtabpage">
<%
var lastValue = null;
function showRoomDesc(oRs)
{
if (oRs("alg_ruimte_aanduiding").value == lastValue)
var result = null;
else
var result = oRs("alg_ruimte_aanduiding").value;
lastValue = oRs("alg_ruimte_aanduiding").value;
return result;
}
function formatdiff(oRs)
{
var diff
if (oRs("cad_imp_contour_opp").value == null)
diff = -oRs("prj_ruimte_bruto_vloeropp").value;
else
diff = oRs("cad_imp_contour_opp").value - oRs("prj_ruimte_bruto_vloeropp").value;
// trick: sum these values for later by calling increasetotaldiff
// increasetotaldiff (diff);
if (Math.abs(diff) < 0.02)
return "";
else
return diff.toFixed(2);
}
function RemoveRuimte(oRs) //
{
if (oRs("cad_imp_contour_opp").value != null) // Gewoon gevonden Ruimte
return oRs("cad_imp_contour_opp").value;
else
return "<i class='fa fa-fw fa-trash' onclick='onRemoveRuimte(" + oRs("prj_ruimte_key").value + ")'"
+ " title='Niet in tekening. Laat vervallen'></i>"
}
var rst = new ResultsetTable({ keyColumn: "prj_ruimte_key",
sql: sql,
ID: "workTable",
outputmode: outputmode,
title: L("lcl_prj_verhuis_scenarios"),
showAll: showall
});
rst.addColumn(new Column({caption: L("lcl_obj_inf_room"), content: showRoomDesc}));
rst.addColumn(new Column({caption: L("lcl_fg_func_names"), content: "alg_srtruimte_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_opp"), content: "prj_ruimte_bruto_vloeropp", datatype: "float"}));
rst.addAction({action: "onClickRuimte", caption: L("lcl_prj_details"), isDefault: true});
if (cad_tek_key != -1) // Er is een project tekening
{
rst.addColumn(new Column({caption: L("lcl_fg_tek_room_opp_g"), content: RemoveRuimte}));
rst.addColumn(new Column({caption: L("lcl_fg_tek_room_opp_dif"), content: formatdiff, datatype: "float"}));
}
rst.addColumn(new Column({caption: L("lcl_descr"), content: "prj_ruimte_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_fg_dep_new"), content: "prs_dep_new"}));
rst.addColumn(new Column({caption: L("lcl_fg_dep_current"), content: "prs_dep_old"}));
var cnt = rst.processResultset();
if (cad_tek_key != -1) // Er is een project tekening
{
%>
<input type=button value='<%=L("lcl_fg_tek_scan")%>' onClick='scanDWF();'>
<%
// ==========================
// Ruimtes wel in tekening maar niet in database
// ==========================
sql = "SELECT C.CAD_IMP_CONTOUR_KEY, C.CAD_IMP_CONTOUR_NR, c.cad_imp_contour_opp "
+ " FROM cad_imp_contour c, cad_tekening t"
+ " WHERE c.cad_tekening_key = t.cad_tekening_key"
+ " AND c.prj_scenario_key = " + scenario_key
+ " AND t.alg_verdieping_key = " + vKey
+ " AND NOT EXISTS ("
+ " SELECT *"
+ " FROM " + S("fg_prj_syncruimteview") + " sync, prj_ruimte"
+ " WHERE t.alg_verdieping_key = " + vKey
+ " AND sync.alg_verdieping_key = " + vKey
+ " AND c.cad_imp_contour_nr = sync.cadlabel "
+ " AND sync.prj_ruimte_key = prj_ruimte.prj_ruimte_key)";
var rst = new ResultsetTable({ keyColumn: "cad_imp_contour_key",
sql: sql,
ID: "workTable2",
outputmode: outputmode,
title: L("lcl_prj_verhuis_scenarios"),
showAll: showall
});
rst.addColumn(new Column({caption: L("lcl_prj_not_database"), content: "cad_imp_contour_nr"}));
rst.addColumn(new Column({caption: L("lcl_opp"), content: "cad_imp_contour_opp", datatype: "float"}));
rst.addAction({ action: "onAddRuimte", caption: L("lcl_prj_details"), isDefault: true });
var cnt = rst.processResultset();
}
%>
</body>
</html>