401 lines
19 KiB
Plaintext
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")%>: </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>
|