Files
Facilitor/APPL/MJB/mjb_search.asp
Ruud Lipper 7e7280a157 FSN#43927 Lege regels tonen niet afhankelijk van scenarios
svn path=/Website/branches/v2017.2/; revision=35503
2017-09-29 12:42:21 +00:00

401 lines
19 KiB
Plaintext

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: mjb/mjb_search.asp
Description: Menuoptie MJOB
Parameters:
Context:
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/disciplineselector.inc" -->
<!-- #include file="../Shared/srtgroepselector.inc" -->
<!-- #include file="../Shared/srtdeelselector.inc" -->
<%
FCLTHeader.Requires({ plugins:["suggest", "jQuery", "kenmerk"],
js: ["../ins/ins_search.js", "jQuery-ui.js"]
});
/***** Get webform parameters *****/
var urole = getQParamSafe("urole", "bo");
var autosearch = getQParamInt("autosearch", 0) == 1;
var mode = getQParamInt("mode", 1); // Schermmode begroting 1=aankomende jaren (=default), 2=lopende jaar/jaren, 3=geschiedenis.
var actionpage;
switch (mode)
{
case 1: actionpage = "mjb_search_list.asp"; // Aankomende jaren
break;
case 2: actionpage = "mjb_search_list_curr.asp"; // Huidig (current) jaar.
break;
// TODO: Overzicht voorgaande jaren
//case 3: actionpage = "mjb_search_list_hist.asp"; // Geschiedenis (History).
// break;
}
var deel = getQParam("deel", ""); // Identificatie
var groep = getQParam("groep", ""); // Categorie/Groep
if (groep == -1) groep = "";
var reg_key = getQParamInt("regio_key", -1); // Regio
var dist_key = getQParamInt("district_key", -1);
var loc_key = getQParamInt("locatie_key", -1); // Locatie
var bld_key = getQParamInt("gebouw_key", -1); // Gebouw
var flr_key = getQParamInt("verdieping_key", -1); // Verdieping
var room_key = getQParamInt("ruimte_key", -1); // Ruimte
var disc = getQParamInt("disc", -1); // Discipline initialisatie
var srtgroep = getQParamInt("srtgroep", -1); // Groep
var categorie_key = getQParamInt("categorie_key", -1); // Categorie
var srtdeel = getQParamInt("srtdeel", -1); // Objectsoort
var groep = getQParam("groep", ""); // Groep
var srtcontrole = getQParamInt("srtcontrole", -1); // Taak
var alg_startlevel = getQParamInt("alg_startlevel", 1); // Startlevel van plaatsselector (District)
var alg_endlevel = getQParamInt("alg_endlevel", 3); // Eindlevel van plaatsselector (Gebouw)
var groupby = getQParamInt("groupby", 2);
var frequentie = getQParamInt("frequentie", -1);
var toyear = new Date().getFullYear() + getQParamInt("toyear", S("mjb_show_years"));
var incbtw = getQParamInt("incbtw", 0) == 1;
var scen_key = getQParamInt("scenario", 1); // Scenario
var actsit = getQParamInt("actsit", 0) == 1;
var mjbempty = getQParamInt("mjbempty", 0) == 1;
var ctrdisc_key = getQParamInt("ctrdisc_key", -1); // Ctrdiscipline
var mjbMoved = (getQParamInt("mjbMoved", 0) == 1);
var mjbFreezed = (getQParamInt("mjbFreezed", 0) == 1);
var mjbXcped = (getQParamInt("mjbXcped", 0) == 1);
if (ctrdisc_key <= 0) // Als er maar eentje is selecteer die automatisch
{
var sql = "SELECT ins_discipline_key"
+ " FROM ctr_disc_params cdp, ctr_discipline cd"
+ " WHERE cdp.ctr_ins_discipline_key = cd.ins_discipline_key"
+ " AND cd.ins_discipline_verwijder IS NULL"
+ " AND cdp.ctr_disc_params_ismjob = 1";
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
var key = oRs("ins_discipline_key").Value;
oRs.MoveNext();
if (oRs.Eof)
ctrdisc_key = key;
}
oRs.Close();
}
if (ctrdisc_key > 0)
lcl.set_dialect(ctrdisc_key, "INS_TAB_DISCIPLINE_KEY");
// Er zijn INSUSE en CTRUSE rechten nodig.
var autfunctionINSUSE = "WEB_INSUSE";
var authparamsINSUSE = user.checkAutorisation("WEB_INSUSE");
var autfunctionCTRUSE = "WEB_CTRUSE";
var authparamsCTRUSE = user.checkAutorisation("WEB_CTRUSE");
%>
<html>
<head>
<% FCLTHeader.Generate(); %>
<script type="text/javascript">
var urole = "<%=urole%>";
var scen_key = <%=scen_key%>;
function doSubmit()
{
document.forms.u2.submit();
}
var selectedScen = true;
function onChangeScenario()
{
if ($("#scenario").val() != 1)
{
if (!selectedScen)
{
$("#actsit").prop("checked", false);
selectedScen = true;
}
$(".tractsit").show();
$("#mjbFreezed").prop("checked", false);
$("#checdfreezed").hide();
}
else
{
$(".tractsit").hide();
$("#actsit").prop("checked", true);
selectedScen = false;
$("#checdfreezed").show();
}
}
$(document).ready(function()
{
if (scen_key == 1) $(".tractsit").hide();
$("#actsit").prop("checked", <%=actsit? "true" : "false"%>);
selectedScen = false;
<% if (autosearch)
{ %>
window.afterfiltersready = function () { doSubmit() };
<% } %>
});
</script>
</head>
<body id="searchbody">
<div id="search">
<form name="u2" target="workFrame" action="<%=actionpage%>" method="get">
<input type=hidden name="urole" value="<%=urole%>">
<input type=hidden name="autfunctionINSUSE" id="autfunctionINSUSE" value="<%=autfunctionINSUSE%>">
<input type=hidden name="autfunctionCTRUSE" id="autfunctionCTRUSE" value="<%=autfunctionCTRUSE%>">
<input type=hidden name="alg_startlevel" value="<%=alg_startlevel%>">
<input type=hidden name="alg_endlevel" value="<%=alg_endlevel%>">
<input type=hidden name="ctrdisc_key" value="<%=ctrdisc_key%>">
<% BLOCK_START("searchtable", L("lcl_filterblok"));%>
<tr>
<td class="searchkolom1"><!-- start column 1 -->
<table><!-- x rijen, 2 kolommen: label + veld -->
<!-- Object -->
<tr class="primsearch">
<td class="label"><label for="deel"><%=L("lcl_obj_identification")%>:</label></td>
<td><input type="text" class="flddeel" name="deel" value="<%=safe.htmlattr(deel)%>"></td>
</tr>
<% FCLTplaatsselector(authparamsINSUSE.ALGreadlevel, { regiokey: reg_key,
districtkey: dist_key,
locatiekey: loc_key,
gebouwkey: bld_key,
verdiepingkey: flr_key,
ruimtekey: room_key,
terrein: true,
escalateOnChUp: true, // ook onLocChange als je gebouw wijzigt
startlevel: alg_startlevel,
eindlevel: alg_endlevel, // ruimte/werkplek
filtercode: "INCVR",
whenEmpty: L("lcl_search_generic") // want filter
});
// Discipline
FCLTdisciplineselector("disc",
"sgDisc",
{ label: L("lcl_discipline"),
disc_key: disc,
module: "INS",
filtercode: "I", // alleen disciplines met inspecties
perslidKey: user_key,
autfunctionKey: authparamsINSUSE.autfunctionkey,
autRW: "R",
onChange: "onChangeDiscipline", // disgroepChanged
trclass: "primsearch",
whenEmpty: L("lcl_search_generic")
});
// Soort groep
FCLTsrtgroepselector("srtgroep",
"sgSrtgroep",
{ label: L("lcl_obj_group"),
srtgroep_key: srtgroep,
autfunction: autfunctionINSUSE,
onChange: "onChangeSrtgroep",
urlAdd: [{urlParam: "disc_key", field: "disc"}],
trclass: "primsearch",
whenEmpty: L("lcl_search_generic")
});
// Objectsoort
FCLTsrtdeelselector("srtdeel",
"sgSrtdeel",
{ label: L("lcl_obj_sort"),
srtdeel_key: srtdeel,
module: "INS",
autfunction: autfunctionINSUSE,
onChange: "onChangeSrtdeel",
urlAdd: [{urlParam: "srtgroep_key", field: "srtgroep"},
{urlParam: "disc_key", field: "disc"}],
trclass: "primsearch",
whenEmpty: L("lcl_search_generic") // want dit is een filter
});
// Scenarios
if (mode == 1) { // scenario's zijn er alleen voor de toekomst
sql = "SELECT ins_scenario_key"
+ " , ins_scenario_omschrijving"
+ " FROM ins_scenario"
+ " WHERE ins_scenario_verwerkt IS NULL"
+ " AND ins_scenario_key <> 1" // niet de actuele
+ " ORDER BY ins_scenario_omschrijving";
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
FCLTselector("scenario",
sql,
{ label: L("lcl_mjb_scenario"),
initKey: scen_key,
//multi: true, // Voor nu niet multi
trclass:"primsearch",
emptyKey: 1,
emptyOption: "",
onChange: "onChangeScenario()"
});
RWCHECKBOXTR("actsit", "fldactsit", L("lcl_mjb_also_act_situation"), actsit, { html: " value='1' ", trclass: 'primsearch tractsit'});
}
oRs.Close();
RWCHECKBOXTR("mjbshowempty", "fldmjbempty", L("lcl_mjb_empty_lines_too"), mjbempty, { html: " value='1' ", trclass: 'primsearch'});
}
%>
</table>
</td><!-- end column 1 -->
<!-- Second column -->
<td valign=top>
<table><!-- x rijen, 2 kolommen: label + veld -->
<%
// <!-- Taakcategorie -->
var sql = "SELECT i.ins_discipline_key,"
+ " i.ins_discipline_omschrijving"
+ " FROM ins_tab_discipline i, ctr_disc_params c"
+ " WHERE i.ins_discipline_key = c.ctr_ins_discipline_key(+)"
+ " AND c.ctr_disc_params_ismjob = 1"
+ " AND i.ins_discipline_module = 'CTR'"
+ " AND ins_discipline_verwijder IS NULL"
+ " ORDER BY ins_discipline_omschrijving";
FCLTselector("categorie_key",
sql,
{ initKey: categorie_key,
label: L("ctr_discipline"),
emptyOption: L("lcl_all"),
trclass: "primsearch"
});
// <!-- Groep-->
var sql = "SELECT DISTINCT COALESCE(xcp.ins_srtcontroledl_xcp_groep, isc.ins_srtcontrole_groep)"
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_groep, isc.ins_srtcontrole_groep)"
+ " FROM ins_srtcontrole isc"
+ " , ins_srtcontroledl_xcp xcp"
+ " WHERE isc.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
+ " AND xcp.ins_scenario_key = 1"
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_groep, isc.ins_srtcontrole_groep) IS NOT NULL"
+ " ORDER BY UPPER (COALESCE(xcp.ins_srtcontroledl_xcp_groep, isc.ins_srtcontrole_groep))";
FCLTselector("groep",
sql,
{ initKey: groep,
label: L("ins_srtcontrole_groep"),
emptyOption: L("lcl_all"),
trclass: "primsearch"
});
sql = "SELECT ins_srtcontrole_key"
+ " , ins_srtcontrole_omschrijving"
+ " FROM ins_srtcontrole isc"
+ " , ctr_disc_params cdp"
+ " , ctr_discipline cd"
+ " WHERE isc.ctr_discipline_key = cdp.ctr_ins_discipline_key"
+ " AND cdp.ctr_ins_discipline_key = cd.ins_discipline_key"
+ " AND cd.ins_discipline_verwijder IS NULL"
+ " AND cdp.ctr_disc_params_ismjob = 1"
+ " AND (ins_srtcontrole_eind IS NULL OR ins_srtcontrole_eind > SYSDATE)";
if (ctrdisc_key > 0)
sql += " AND cd.ins_discipline_key = " + ctrdisc_key
FCLTselector("srtcontrole", // Soort controle
sql,
{ initKey: srtcontrole,
label: L("lcl_ins_controle_srt"),
multi: true,
trclass:"primsearch",
emptyOption: ""
});
sql = "SELECT DISTINCT COALESCE(xcp.ins_srtcontroledl_xcp_periode, isc.ins_srtcontrole_periode) periode_key"
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, isc.ins_srtcontrole_periode) || " + safe.qL("lcl_ins_controle_period_rearyear") + " periode"
+ " FROM ins_srtcontrole isc"
+ " , ins_srtcontroledl_xcp xcp"
+ " WHERE isc.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
+ " AND xcp.ins_scenario_key = 1"
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, isc.ins_srtcontrole_periode) > 0"
+ " ORDER BY 1";
FCLTselector("frequentie", // Frequentie
sql,
{ initKey: frequentie,
label: L("lcl_mjb_frequency"),
multi: true,
trclass:"primsearch",
emptyOption: ""
});
RWCHECKBOXTR("incbtw", "fldincbtw", L("lcl_mjb_inclbtw"), incbtw, { html: " value='1' "});
sql = "SELECT 1, " + safe.qL("lcl_district") + ", 1 FROM DUAL"
+ " UNION SELECT 2, " + safe.qL("lcl_building") + ", 2 FROM DUAL"
+ " UNION SELECT 3, " + safe.qL("lcl_discipline") + ", 3 FROM DUAL"
+ " UNION SELECT 4, " + safe.qL("lcl_obj_group") + ", 4 FROM DUAL"
+ " UNION SELECT 5, " + safe.qL("lcl_obj_sort") + ", 5 FROM DUAL"
+ " UNION SELECT 6, " + safe.qL("lcl_ins_object") + ", 6 FROM DUAL"
+ " UNION SELECT 7, " + safe.qL("lcl_ins_controle_srt") + ", 7 FROM DUAL";
if (mode != 2) { // periode alleen van belang bij plannen (en/of verleden?)
var jaar = new Date().getFullYear();
var sqljaren = [];
for (var i = 1; i <= S("mjb_show_years"); i++)
sqljaren.push("SELECT {0}, '{0}' FROM DUAL".format(jaar + i));
FCLTselector("toyear",
sqljaren.join(" UNION "),
{ initKey: toyear,
label: L("lcl_mjb_uptoyear")
});
}
FCLTselector("groupby",
sql,
{ initKey: groupby,
label: L("lcl_mjb_group")
});
if (mode == 1) { // ook de verschillende bewerkingstatussen alleen tijdens plannen
%>
<!-- Status checkboxen -->
<tr>
<td>
<label><%=L("lcl_mjb_status_mjob")%>:&nbsp;</label>
</td>
<td>
<div id="statusboxes">
<input type="checkbox" class="fldcheck" name="mjbMoved" id="mjbMoved" value="1" <%=mjbMoved? "checked" : ""%>><label for="mjbMoved"><%=L("lcl_mjb_moved")%></label>
<span id="checdfreezed">
<input type="checkbox" class="fldcheck" name="mjbFreezed" id="mjbFreezed" value="1" <%=mjbFreezed? "checked" : ""%>><label for="mjbFreezed"><%=L("lcl_mjb_started")%></label>
</span>
<input type="checkbox" class="fldcheck" name="mjbXcped" id="mjbXcped" value="1" <%=mjbXcped ? "checked" : " "%>><label for="mjbXcped"><%=L("lcl_mjb_overruled_xcp")%></label>
</div>
</td>
</tr>
<%
}
%>
</table>
</td><!-- end column 2-->
</tr>
<% BLOCK_END();
var buttons = [{title: L("lcl_search"), action: "doSubmit()" }];
CreateButtons(buttons, { entersubmit: true} );
%>
</form>
</div><!--search-->
<div id="result">
<iframe width="100%" height="100%"
src="../Shared/empty.asp"
name="workFrame" id="workFrame"
onload='FcltMgr.iframeLoaded(this)'
frameborder="0" scrolling="no">
</iframe>
</div>
</body>
</html>