FSN#39567: Van MJOB naar MJOP/R.
svn path=/Website/trunk/; revision=34878
This commit is contained in:
@@ -25,6 +25,18 @@ FCLTHeader.Requires({ plugins:["suggest", "jQuery", "kenmerk"],
|
||||
/***** 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, 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
|
||||
@@ -47,10 +59,13 @@ var groupby = getQParamInt("groupby", 2);
|
||||
var frequentie = getQParamInt("frequentie", -1);
|
||||
var toyear = getQParamInt("toyear", new Date().getFullYear() + S("mjb_show_years"));
|
||||
var incbtw = getQParamInt("incbtw", 0) == 1;
|
||||
var scen_key = getQParamInt("scenario", -1); // Scenario
|
||||
var scen_key = getQParamInt("scenario", 1); // Scenario
|
||||
var actsit = getQParamInt("actsit", 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
|
||||
{
|
||||
@@ -115,7 +130,7 @@ var authparamsCTRUSE = user.checkAutorisation("WEB_CTRUSE");
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
if (scen_key < 0) $(".tractsit").hide();
|
||||
if (scen_key== 1) $(".tractsit").hide();
|
||||
$("#actsit").prop("checked", true);
|
||||
selectedScen = false;
|
||||
<% if (autosearch)
|
||||
@@ -128,7 +143,7 @@ var authparamsCTRUSE = user.checkAutorisation("WEB_CTRUSE");
|
||||
|
||||
<body id="searchbody">
|
||||
<div id="search">
|
||||
<form name="u2" target="workFrame" action="mjb_search_list.asp" method="get">
|
||||
<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%>">
|
||||
@@ -320,13 +335,33 @@ var authparamsCTRUSE = user.checkAutorisation("WEB_CTRUSE");
|
||||
initKey: scen_key,
|
||||
//multi: true, // Voor nu niet multi
|
||||
trclass:"primsearch noxd",
|
||||
emptyKey: 1,
|
||||
emptyOption: "",
|
||||
onChange: "onChangeScenario()"
|
||||
});
|
||||
RWCHECKBOXTR("actsit", "fldactsit", L("lcl_mjb_act_situation"), actsit, { html: " value='1' ", trclass: 'primsearch noxd tractsit'});
|
||||
}
|
||||
oRs.Close();
|
||||
%> </table>
|
||||
%>
|
||||
<!-- Status checkboxen -->
|
||||
<tr>
|
||||
<td>
|
||||
<label><%=L("lcl_mjb_status_mjob")%>: </label>
|
||||
</td>
|
||||
<td>
|
||||
<div id="statusboxes">
|
||||
<%
|
||||
// Statusfilters:
|
||||
// FO: zelf mee bezig (0), bij BO (2,3,4,7), afgewezen (1), afgemeld (5), archief (6)
|
||||
// Merk op: de ids kunnen afhankelijk van de urole andere betekenis hebben, dus.
|
||||
%>
|
||||
<input type="checkbox" class="fldcheck" name="mjbMoved" id="mjbMoved" value="1" <%=mjbMoved? "checked" : ""%>><label for="mjbMoved"><%=L("lcl_mjb_moved")%></label>
|
||||
<input type="checkbox" class="fldcheck" name="mjbFreezed" id="mjbFreezed" value="1" <%=mjbFreezed? "checked" : ""%>><label for="mjbFreezed"><%=L("lcl_mjb_started")%></label>
|
||||
<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>
|
||||
|
||||
|
||||
@@ -51,10 +51,12 @@ var hasReadALGUSE = authparamsALGUSE && authparamsALGUSE.ALGreadlevel < 9 && aut
|
||||
var authparamsALGMAN = user.checkAutorisation("WEB_ALGMAN", true);
|
||||
var hasReadALGMAN = authparamsALGMAN && authparamsALGMAN.ALGreadlevel < 9 && authparamsALGMAN.PRSreadlevel < 9;
|
||||
|
||||
var mjb_start_year = S("mjb_start_year");
|
||||
var mjb_freeze_year = S("mjb_freeze_year");
|
||||
|
||||
var groupby = getQParamInt("groupby");
|
||||
var fulldetails = (groupby == 7); // Geen aggregate, dan kun je van alles manipuleren
|
||||
var fromyear = getQParamInt("fromyear", new Date().getFullYear());
|
||||
var fromyear = getQParamInt("fromyear", mjb_freeze_year);
|
||||
var toyear = getQParamInt("toyear");
|
||||
|
||||
var deel = getQParam("deel", ""); // Identieficatie
|
||||
@@ -74,9 +76,14 @@ var inflatiefactor = 1 + (inflatiepct / 100);
|
||||
var frequentie = getQParamIntArray("frequentie", []); // Array met frequenties.
|
||||
var incbtw = getQParamInt("incbtw", 0) == 1; // Lijst inclusief BTW weergeven.
|
||||
|
||||
var scenario = getQParamInt("scenario", -1); // Scenario
|
||||
var scenario = getQParamInt("scenario", 1); // Scenario
|
||||
var actsit = getQParamInt("actsit", 0) == 1; // Ook actuele situatie.
|
||||
|
||||
// FORM status checkboxes
|
||||
var mjbMoved = getQParamInt("mjbMoved", 0) == 1; // Verschoven.
|
||||
var mjbFreezed = getQParamInt("mjbFreezed", 0) == 1; // In behandeling.
|
||||
var mjbXcped = getQParamInt("mjbXcped", 0) == 1; // Aangepast.
|
||||
|
||||
var ctrdisc_key = getQParamInt("ctrdisc_key", -1); // Ctrdiscipline
|
||||
if (ctrdisc_key > 0)
|
||||
lcl.set_dialect(ctrdisc_key, "INS_TAB_DISCIPLINE_KEY");
|
||||
@@ -97,7 +104,10 @@ var params = { deel: (deel != ""? deel : null),
|
||||
mjbfreq: frequentie.join(","),
|
||||
mjbincbtw: incbtw
|
||||
};
|
||||
var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrole", "inflatie", "frequentie", "incbtw", "toyear", "alg_startlevel", "alg_endlevel", "deel", "groep", "categorie_key", "scenario"]);
|
||||
var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrole", "inflatie",
|
||||
"frequentie", "incbtw", "toyear", "alg_startlevel", "alg_endlevel",
|
||||
"deel", "groep", "categorie_key", "scenario",
|
||||
"mjbMoved", "mjbFreezed", "mjbXcped"]);
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
@@ -112,6 +122,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
<script type="text/javascript">
|
||||
var urole = "<%=urole%>";
|
||||
var fulldetails = <%=fulldetails? 1 : 0%> == 1;
|
||||
|
||||
function naargebouw(bld_key, deze)
|
||||
{
|
||||
if (fulldetails)
|
||||
@@ -129,7 +140,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
|
||||
function exception(ins_key, srtcont_key, scen_key, ttl)
|
||||
{
|
||||
var url = "../ins/ins_xcp.asp?ins_key=" + ins_key + "&srtcont_key=" + srtcont_key + (scen_key > 0? "&scen_key=" + scen_key : "") + "&urole=bo";
|
||||
var url = "../ins/ins_xcp.asp?ins_key=" + ins_key + "&srtcont_key=" + srtcont_key + "&scen_key=" + scen_key + "&urole=bo";
|
||||
FcltMgr.openModalDetail(url, { titel: L("lcl_ins_change_xcp") + " " + ttl, callback: <%=bld_key > 0? "FcltMgr.reload ": "null"%> });
|
||||
}
|
||||
|
||||
@@ -270,7 +281,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
{
|
||||
rowdata = eval('(' + rowArray[i].getAttribute("ROWDATA") + ')');
|
||||
// Scenario's kunnen niet opgenomen worden in een scenario. Hier de scenario's er al uit filteren.
|
||||
if (!rowdata.insScenKey || rowdata.insScenKey < 0)
|
||||
if (!rowdata.insScenKey || rowdata.insScenKey == 1)
|
||||
{ // Het is geen scenario. De periodieke taak kan in een scenario worden opgenomen. De inspectie aan het array toevoegen.
|
||||
srtcontrolekeyArray[i] = rowdata.insSrtControleKey;
|
||||
}
|
||||
@@ -285,7 +296,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
|
||||
if (insKeyString.length > 0)
|
||||
{
|
||||
if (<%=scenario%> > 0)
|
||||
if (<%=scenario%> > 1)
|
||||
{
|
||||
var data = { ins_keys: insKeyString,
|
||||
srtcont_keys: srtcontrolekeyArray.join(","),
|
||||
@@ -335,22 +346,57 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
+ " , e.ins_srtcontrole_periode"
|
||||
+ " , e.ins_srtcontrole_percentage"
|
||||
+ " , e.ins_srtcontrole_opmerking"
|
||||
+ " , EXTRACT (YEAR FROM COALESCE(c.plandatum"
|
||||
+ " , CASE"
|
||||
// Bepaling in welk jaar er een inspectie is gepland.
|
||||
// 1) In het jaar van de plandatum.
|
||||
// 2) In het jaar van de startdatum.
|
||||
// 3) a) Laatste inspectie is NULL (eerste inspectie moet nog komen) en het is een Controle(1).
|
||||
// Volgende inspectie is in het freeze jaar.
|
||||
// b) Laatste inspectie is NULL (eerste inspectie moet nog komen) en het is een Vervanging(2) of Certificering(3).
|
||||
// Nextdate is na het freeze jaar?
|
||||
// Ja) Vorige inspectie ligt na het start jaar en ligt niet in het aanmaak jaar?
|
||||
// Ja) Volgende inspectie is in het freeze jaar.
|
||||
// Nee) Volgende inspectie is het jaar van de nextdate.
|
||||
// Nee) De laatst ingeplande inspectie (nextdate) is na of in het start jaar?
|
||||
// Ja) Volgende inspectie is in het freeze jaar.
|
||||
// Nee) Volgende inspectie is in het jaar "nextdatum + periode".
|
||||
// c) Laatste inspectie is niet NULL. Er is al 1 of meerdere keren geinspecteerd.
|
||||
// Ligt de laatst ingeplande inspectie (nextdate) na dit jaar?
|
||||
// Ja) Volgende inspectie is het jaar van de nextdate (in de toekomst).
|
||||
// Nee) Volgende inspectie is in het freeze jaar.
|
||||
+ " , EXTRACT (YEAR FROM COALESCE(c.plandatum" // Plandatum.
|
||||
+ " , CASE" // Eventueel startdatum (ins_srtcontroledl_xcp_startdat) i.g.v. als er nog geen inspectie heeft plaatsgevonden.
|
||||
+ " WHEN c.laatste IS NULL" // Als er al een inspectie is geweest, is de startdatum niet meer van belang.
|
||||
+ " THEN e.ins_srtcontroledl_xcp_startdat"
|
||||
+ " ELSE NULL"
|
||||
+ " END"
|
||||
+ " , ADD_MONTHS(COALESCE(c.laatste"
|
||||
+ " , CASE"
|
||||
+ " WHEN e.ctr_controle_type = 1" // Controle(1).
|
||||
+ " THEN SYSDATE"
|
||||
+ " ELSE e.ins_deel_aanmaak" // Vervanging(2) of Certificering(3).
|
||||
+ " END), CASE"
|
||||
+ " WHEN e.ctr_controle_type = 1 AND c.laatste IS NULL" // Eerste Controle(1) is dit jaar.
|
||||
+ " THEN 0"
|
||||
+ " ELSE 12 * e.ins_srtcontrole_periode"
|
||||
+ " END))) vervangingsjaar"
|
||||
+ " , CASE" // Berekenen jaar.
|
||||
+ " WHEN c.laatste IS NULL AND e.ctr_controle_type = 1" // 1: Controle.
|
||||
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
|
||||
+ " WHEN c.laatste IS NULL AND e.ctr_controle_type != 1" // 2: Vervanging, 3: Certificering.
|
||||
+ " THEN" // Er is nog geen inspectie geweest
|
||||
+ " CASE"
|
||||
+ " WHEN EXTRACT(YEAR FROM e.nextdate) > " + mjb_freeze_year
|
||||
+ " THEN" // Nextdate is na de freeze datum.
|
||||
+ " CASE"
|
||||
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(e.nextdate, -1 * 12 * e.ins_srtcontrole_periode)) >= " + mjb_start_year + " AND"
|
||||
+ " EXTRACT(YEAR FROM ADD_MONTHS(e.nextdate, -1 * 12 * e.ins_srtcontrole_periode)) != EXTRACT(YEAR FROM e.ins_deel_aanmaak)"
|
||||
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Nu en vorige inspectie liggen tussen start en freeze jaar.
|
||||
+ " ELSE e.nextdate"
|
||||
+ " END"
|
||||
+ " ELSE" // Nextdate is voor of in het freeze jaar.
|
||||
+ " CASE"
|
||||
+ " WHEN EXTRACT(YEAR FROM e.nextdate) >= " + mjb_start_year
|
||||
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Nextdate tussen start en freeze jaar.
|
||||
+ " ELSE ADD_MONTHS(e.nextdate, 12 * e.ins_srtcontrole_periode)" // Nextdate voor het start jaar.
|
||||
+ " END"
|
||||
+ " END"
|
||||
+ " ELSE" // Laatste IS NOT NULL. Er is al een inspectie geweest.
|
||||
+ " CASE"
|
||||
+ " WHEN EXTRACT(YEAR FROM e.nextdate) > EXTRACT(YEAR FROM SYSDATE)"
|
||||
+ " THEN e.nextdate" // Volgende inspectie is in de toekomst.
|
||||
+ " ELSE TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Laatst ingeplande inspectie is nog niet uitgevoerd.
|
||||
+ " END"
|
||||
+ " END)) vervangingsjaar"
|
||||
+ " , e.ins_deel_aantal"
|
||||
+ " , e.ins_srtdeel_eenheid"
|
||||
+ " , e.ins_srtcontrole_eind"
|
||||
@@ -362,6 +408,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
+ " , e.hasscenario2"
|
||||
+ " , e.scenario_oms"
|
||||
+ " , e.scenario_aantal"
|
||||
+ " , c.ins_deelsrtcontrole_freezedate"
|
||||
+ " , c.ins_deelsrtcontrole_status"
|
||||
+ " FROM (SELECT el.ins_deel_key"
|
||||
+ " , el.ins_srtcontroledl_xcp_key"
|
||||
+ " , el.ins_srtcontrole_omschrijving"
|
||||
@@ -383,15 +431,16 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
+ " , el.ins_srtcontroledl_xcp_startdat"
|
||||
+ " , el.ins_srtcontroledl_xcp_eind"
|
||||
+ " , el.ctr_controle_type"
|
||||
+ " , ins.nextcyclusdate(el.ins_deel_key, el.ins_srtcontrole_key, 1, 0) nextdate"
|
||||
+ " , el.ins_scenario_key"
|
||||
+ (scenario > 0
|
||||
+ (scenario > 1
|
||||
? " , COALESCE((SELECT MAX(1)" // Heeft de periodieke taak ook de meegegeven scenario 'scenario'.
|
||||
+ " FROM ins_srtcontroledl_xcp xcp2"
|
||||
+ " WHERE xcp2.ins_deel_key = el.ins_deel_key"
|
||||
+ " AND xcp2.ins_srtcontrole_key = el.ins_srtcontrole_key"
|
||||
+ " AND xcp2.ins_scenario_key = " + scenario + "), 0)"
|
||||
: " , 0") + " hasscenario2"
|
||||
+ (fulldetails && scenario == -1 ?
|
||||
+ (fulldetails && scenario == 1 ?
|
||||
" , (SELECT LISTAGG(isc.ins_scenario_omschrijving, ', ') WITHIN GROUP (ORDER BY isc.ins_scenario_omschrijving)"
|
||||
+ " FROM ins_srtcontroledl_xcp xcp"
|
||||
+ " , ins_scenario isc"
|
||||
@@ -399,7 +448,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
+ " AND xcp.ins_srtcontrole_key = el.ins_srtcontrole_key"
|
||||
+ " AND xcp.ins_deel_key = el.ins_deel_key)"
|
||||
: " , 'dummy'") + " scenario_oms"
|
||||
+ (fulldetails && scenario == -1 ?
|
||||
+ (fulldetails && scenario == 1 ?
|
||||
" , (SELECT COUNT(isc.ins_scenario_omschrijving)"
|
||||
+ " FROM ins_srtcontroledl_xcp xcp"
|
||||
+ " , ins_scenario isc"
|
||||
@@ -409,7 +458,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
: " , -1") + " scenario_aantal"
|
||||
+ " FROM ins_v_defined_inspect_xcp el"
|
||||
+ " WHERE el.ins_srtcontrole_periode > 0"
|
||||
+ (scenario < 0?" AND ins_scenario_key = 1" :(actsit ? "": " AND ins_scenario_key = " + scenario))
|
||||
+ (scenario == 1? " AND ins_scenario_key = 1" : (actsit ? "": " AND ins_scenario_key = " + scenario))
|
||||
+ " AND el.ctr_ismjob = 1"
|
||||
// Je moet read CTRUSE rechten hebben op de CTR disciplines om de taken te kunnen zien.
|
||||
+ " AND el.ctr_discipline_key IN (SELECT w.ins_discipline_key"
|
||||
@@ -457,6 +506,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
+ " (SELECT dsc.ins_srtcontrole_key"
|
||||
+ " , dsc.ins_deel_key"
|
||||
+ " , dsc.ins_scenario_key"
|
||||
+ " , dsc.ins_deelsrtcontrole_freezedate"
|
||||
+ " , dsc.ins_deelsrtcontrole_status"
|
||||
+ " , MAX((SELECT dsc1.ins_deelsrtcontrole_plandatum"
|
||||
+ " FROM ins_deelsrtcontrole dsc1"
|
||||
+ " WHERE dsc1.ins_deel_key = dsc.ins_deel_key"
|
||||
@@ -465,12 +516,19 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
+ " AND dsc1.ins_deelsrtcontrole_status < 5)) plandatum"
|
||||
+ " , MAX(dsc.ins_deelsrtcontrole_datum) laatste"
|
||||
+ " FROM ins_deelsrtcontrole dsc"
|
||||
+ " WHERE ins_deelsrtcontrole_key = (SELECT MAX(id2.ins_deelsrtcontrole_key)" // Laatste record.
|
||||
+ " FROM ins_deelsrtcontrole id2"
|
||||
+ " WHERE id2.ins_deel_key = dsc.ins_deel_key"
|
||||
+ " AND id2.ins_srtcontrole_key = dsc.ins_srtcontrole_key"
|
||||
+ " AND id2.ins_scenario_key = dsc.ins_scenario_key)"
|
||||
+ " GROUP BY dsc.ins_srtcontrole_key"
|
||||
+ " , dsc.ins_deel_key"
|
||||
+ " , dsc.ins_scenario_key) c"
|
||||
+ " , dsc.ins_scenario_key"
|
||||
+ " , dsc.ins_deelsrtcontrole_freezedate"
|
||||
+ " , dsc.ins_deelsrtcontrole_status) c"
|
||||
+ " ON e.ins_deel_key = c.ins_deel_key"
|
||||
+ " AND e.ins_srtcontrole_key = c.ins_srtcontrole_key"
|
||||
+ " AND c.ins_scenario_key = e.ins_scenario_key"
|
||||
+ " AND e.ins_scenario_key = c.ins_scenario_key"
|
||||
|
||||
var ins_xcp_active_cost = S("ins_xcp_active_cost");
|
||||
var costarray = [];
|
||||
@@ -514,6 +572,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
+ " , comp.hasscenario2"
|
||||
+ " , comp.scenario_oms"
|
||||
+ " , comp.scenario_aantal"
|
||||
+ " , comp.ins_deelsrtcontrole_freezedate"
|
||||
+ " , comp.ins_deelsrtcontrole_status"
|
||||
+ " FROM (WITH comps (ins_deel_key" // Recursive WITH statement om het volgende vervangingsjaar te vinden (m.vervangingsjaar + m.ins_srtcontrole_periode).
|
||||
+ " , ins_srtcontroledl_xcp_key"
|
||||
+ " , ins_srtcontrole_key"
|
||||
@@ -538,7 +598,9 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
+ " , ins_scenario_key"
|
||||
+ " , hasscenario2"
|
||||
+ " , scenario_oms"
|
||||
+ " , scenario_aantal)"
|
||||
+ " , scenario_aantal"
|
||||
+ " , ins_deelsrtcontrole_freezedate"
|
||||
+ " , ins_deelsrtcontrole_status)"
|
||||
+ " AS (SELECT ins_deel_key"
|
||||
+ " , ins_srtcontroledl_xcp_key"
|
||||
+ " , ins_srtcontrole_key"
|
||||
@@ -564,6 +626,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
+ " , hasscenario2"
|
||||
+ " , scenario_oms"
|
||||
+ " , scenario_aantal"
|
||||
+ " , ins_deelsrtcontrole_freezedate"
|
||||
+ " , ins_deelsrtcontrole_status"
|
||||
+ " FROM (" + sql_componenten + ")"
|
||||
+ " WHERE vervangingsjaar IS NOT NULL"
|
||||
+ " UNION ALL" // latere jaren
|
||||
@@ -592,6 +656,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
+ " , hasscenario2"
|
||||
+ " , scenario_oms"
|
||||
+ " , scenario_aantal"
|
||||
+ " , ins_deelsrtcontrole_freezedate"
|
||||
+ " , ins_deelsrtcontrole_status"
|
||||
+ " FROM comps m"
|
||||
+ " WHERE (m.vervangingsjaar + m.ins_srtcontrole_periode <= " + toyear + "))"
|
||||
+ " SELECT *"
|
||||
@@ -661,6 +727,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
+ " , cy.hasscenario2"
|
||||
+ " , cy.scenario_oms"
|
||||
+ " , cy.scenario_aantal"
|
||||
+ " , cy.ins_deelsrtcontrole_freezedate"
|
||||
+ " , cy.ins_deelsrtcontrole_status"
|
||||
+ " FROM (" + sql_yearcost + ") cy"
|
||||
+ " , ins_v_aanwezigdeel dl"
|
||||
+ " , ins_srtdeel isd"
|
||||
@@ -682,7 +750,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
+ " AND d.alg_district_key = l.alg_district_key";
|
||||
|
||||
if (deel)
|
||||
sql_cost_verval += " AND ins_deel_upper LIKE " + safe.quoted_sql_wild("%" + deel + "%");
|
||||
sql_cost_verval += " AND dl.ins_deel_upper LIKE " + safe.quoted_sql_wild("%" + deel + "%");
|
||||
|
||||
if (bld_key > 0)
|
||||
sql_cost_verval += " AND g.alg_gebouw_key = " + bld_key;
|
||||
@@ -703,7 +771,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
+ " , cv.keyColumn"
|
||||
+ " , cv.ins_srtcontroledl_xcp_key"
|
||||
+ " , cv.ins_srtcontrole_key"
|
||||
+ (fulldetails?" , ins.nextcyclusdate (cv.ins_deel_key, cv.ins_srtcontrole_key, cv.ins_scenario_key, 0) org_nexdate_0" // Eerstaankomende inspectie: 1-ste vandaag of in de toekomst.
|
||||
+ (fulldetails?" , ins.nextcyclusdate (cv.ins_deel_key, cv.ins_srtcontrole_key, cv.ins_scenario_key, 0) org_nexdate_0" // Eerstaankomende inspectie: 1-ste dit jaar of in de toekomst.
|
||||
:" , NULL org_nexdate_0")
|
||||
+ " , cv.ins_srtcontrole_periode"
|
||||
+ " , cv.ins_srtcontrole_opmerking"
|
||||
@@ -752,6 +820,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
+ " , cv.hasscenario2"
|
||||
+ " , cv.scenario_oms"
|
||||
+ " , cv.scenario_aantal"
|
||||
+ " , cv.ins_deelsrtcontrole_freezedate"
|
||||
+ " , cv.ins_deelsrtcontrole_status"
|
||||
+ " FROM (" + sql_cost_verval + ") cv";
|
||||
|
||||
if (!fulldetails)
|
||||
@@ -771,7 +841,9 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
? " , alg_gebouw_key"
|
||||
: "")
|
||||
+ " , keyColumn"
|
||||
+ (keyColumn == 'dg.ins_deel_key'?" , ins_deel_opmerking":"")
|
||||
+ (keyColumn == "dl.ins_deel_key"
|
||||
? " , ins_deel_opmerking"
|
||||
: "")
|
||||
+ " , vervangingsjaar"
|
||||
+ " , SUM(bedrag) bedrag"
|
||||
+ " , SUM(orgbedrag) orgbedrag"
|
||||
@@ -783,7 +855,9 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
? " , alg_gebouw_key"
|
||||
: "" )
|
||||
+ " , keyColumn"
|
||||
+ (keyColumn == 'dg.ins_deel_key'?" , ins_deel_opmerking":"")
|
||||
+ (keyColumn == "dl.ins_deel_key"
|
||||
? " , ins_deel_opmerking"
|
||||
: "")
|
||||
+ " , vervangingsjaar"
|
||||
+ " , hasscenario2"
|
||||
+ " , ins_scenario_key";
|
||||
@@ -795,7 +869,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
+ ") PIVOT (SUM(bedrag), SUM(orgbedrag) AS orgbedrag "
|
||||
+ " FOR vervangingsjaar IN (" + jaren.join(",") + ") )";
|
||||
|
||||
if (scenario > 0)
|
||||
if (scenario > 1)
|
||||
{
|
||||
if (!actsit)
|
||||
sql += " WHERE ins_scenario_key IN (" + scenario + ") AND hasscenario2 = 1";
|
||||
@@ -804,18 +878,34 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!actsit)
|
||||
sql += " WHERE 1 = 0";
|
||||
else
|
||||
// actsit hier geen invloed.
|
||||
sql += " WHERE ins_scenario_key = 1";
|
||||
}
|
||||
|
||||
var sqlArray = [];
|
||||
if (mjbMoved) // Aangepast.
|
||||
{
|
||||
sqlArray.push("isPlanned = 1");
|
||||
}
|
||||
if (mjbFreezed) // In behandeling (Bevroren).
|
||||
{
|
||||
sqlArray.push("ins_deelsrtcontrole_freezedate IS NOT NULL AND ins_deelsrtcontrole_status = 2");
|
||||
}
|
||||
if (mjbXcped) // Aangepast.
|
||||
{
|
||||
sqlArray.push("ins_srtcontroledl_xcp_key IS NOT NULL AND ins_scenario_key = 1");
|
||||
}
|
||||
|
||||
if (sqlArray.length)
|
||||
sql += " AND (" + sqlArray.join(" OR ") + ")";
|
||||
|
||||
sql += " ORDER BY 1";
|
||||
for (var i = 2; i <= groupby; i++)
|
||||
{
|
||||
sql += "," + String(i)
|
||||
}
|
||||
|
||||
// Functions of ResultsetTable.
|
||||
function fnkeyFunction(oRs)
|
||||
{
|
||||
if (fulldetails)
|
||||
@@ -834,7 +924,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
data.insDeelSrtContrKey = oRs("ins_deelsrtcontrole_key").Value? oRs("ins_deelsrtcontrole_key").Value : -1;
|
||||
data.insNexdate0 = new Date(oRs("org_nexdate_0").Value).getFullYear(); // Eerstaankomende vandaag of in de toekomst.
|
||||
data.insCtrControleType = oRs("ctr_controle_type").Value;
|
||||
data.insScenKey = oRs("ins_scenario_key").Value > 1? oRs("ins_scenario_key").Value : -1;
|
||||
data.insScenKey = oRs("ins_scenario_key").Value;
|
||||
}
|
||||
|
||||
return JSON.stringify(data);
|
||||
@@ -844,9 +934,9 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
{
|
||||
if (!fulldetails)
|
||||
return "";
|
||||
var scen_key = oRs("ins_scenario_key").Value > 1? oRs("ins_scenario_key").Value : -1;
|
||||
var lclass = scen_key < 0 && oRs("ins_srtcontroledl_xcp_key").Value != null? "mjbxcp" : "mjbstd";
|
||||
if (scen_key > 0)
|
||||
var scen_key = oRs("ins_scenario_key").Value;
|
||||
var lclass = scen_key == 1 && oRs("ins_srtcontroledl_xcp_key").Value != null? "mjbxcp" : "mjbstd";
|
||||
if (scen_key > 1)
|
||||
lclass += " scenerized1";
|
||||
if (oRs("isPlanned").Value == 1)
|
||||
lclass += " mjbplanned";
|
||||
@@ -870,15 +960,16 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
var this_ins = ins.func_enabled_deel(oRs("ins_deel_key").Value,
|
||||
{ srtcont_key: oRs("ins_srtcontrole_key").Value,
|
||||
deelsrtcont_key: oRs("ins_deelsrtcontrole_key").Value? oRs("ins_deelsrtcontrole_key").Value : -1,
|
||||
scen_key: oRs("ins_scenario_key").Value > 1? oRs("ins_scenario_key").Value : -1
|
||||
scen_key: oRs("ins_scenario_key").Value
|
||||
});
|
||||
ePlan = this_ins.canInspPlan;
|
||||
eStart = this_ins.canInspStart;
|
||||
eClose = this_ins.canInspClose;
|
||||
eFinish = this_ins.canInspFinish;
|
||||
eFreeze = this_ins.canInspFreeze;
|
||||
eAddScen = true;
|
||||
}
|
||||
var data = {ePlan: ePlan, eStart: eStart, eClose: eClose, eFinish: eFinish};
|
||||
var data = {ePlan: ePlan, eStart: eStart, eClose: eClose, eFinish: eFinish, eFreeze: eFreeze};
|
||||
return data;
|
||||
}
|
||||
|
||||
@@ -920,7 +1011,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
var fncall = "exception({0}, {1}, '{2}')"
|
||||
.format(oRs("ins_deel_key").Value,
|
||||
oRs("ins_srtcontrole_key").Value,
|
||||
oRs("ins_scenario_key").Value>1? oRs("ins_scenario_key").Value: -1,
|
||||
oRs("ins_scenario_key").Value,
|
||||
safe.jsstring(oRs("ins_deel_omschrijving").Value));
|
||||
return "<span class='details' onclick='{0}'>{1}</span>"
|
||||
.format(safe.htmlattr(fncall),
|
||||
@@ -929,6 +1020,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
else
|
||||
return safe.html(oRs("ins_srtcontrole_omschrijving").Value);
|
||||
}
|
||||
|
||||
function fnfnBedrag(jaar) // altijd afronden
|
||||
{
|
||||
return function (oRs)
|
||||
@@ -1000,10 +1092,10 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
|
||||
doneclik[deel_key + ":" + srtcont_key] = 1;
|
||||
|
||||
var scen_key = oRs("ins_scenario_key").Value > 1? oRs("ins_scenario_key").Value : -1;
|
||||
var scen_key = oRs("ins_scenario_key").Value;
|
||||
// INSUSE read rechten heb je al nodig om dit overzicht te zien.
|
||||
// Inspecties in de status gestart(2) of gereedgemeld(5) mogen niet drag en drop zijn. Planningsdatum is daarvan niet aan te passen.
|
||||
return "<span" + (hasWriteCTRUSE? " class='" + (oRs("canBePlanned").Value == 1 && (scenario < 0 || scen_key > 0 || oRs("hasscenario2").Value == 1)? "details draggable" : "") + "'" : "") + ">{0}</span>".format(safe.curr(v, true))
|
||||
return "<span" + (hasWriteCTRUSE? " class='" + (oRs("canBePlanned").Value == 1 && (scenario == 1 || scen_key > 1 || oRs("hasscenario2").Value == 1)? "details draggable" : "") + "'" : "") + ">{0}</span>".format(safe.curr(v, true))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1015,15 +1107,21 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
{
|
||||
var vervaljaar = oRs("vervaljaar").Value;
|
||||
var afbouwtijd = oRs("afbouwtijd").Value || 0;
|
||||
var freezeclass = "";
|
||||
if (jaar > vervaljaar - afbouwtijd) // Afzien van taken/vervanging/inspecties. Geen kosten meer.
|
||||
{
|
||||
if (vervaljaar != null && afbouwtijd != null && jaar > vervaljaar - afbouwtijd && jaar <= vervaljaar)
|
||||
return "mjbjaar mjbafbouw";
|
||||
return "mjbjaar mjbafbouw" + freezeclass;
|
||||
else if (vervaljaar != null && jaar > vervaljaar)
|
||||
return "mjbjaar mjbverval";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (jaar == mjb_freeze_year && oRs("ins_deelsrtcontrole_freezedate").Value != null && oRs("ins_deelsrtcontrole_status").Value == 2)
|
||||
freezeclass = " mjbfreezed";
|
||||
}
|
||||
return "mjbjaar";
|
||||
}
|
||||
return "mjbjaar" + freezeclass;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1064,7 +1162,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
});
|
||||
|
||||
//rst.addColumn(new Column({caption: L("level"), content: "ins_srtcontrole_level" /*, hasActions: true*/}));
|
||||
if (fulldetails && scenario == -1)
|
||||
if (fulldetails && scenario == 1)
|
||||
rst.addColumn(new Column({caption: "<span title='{0}'>".format(safe.htmlattr(L("lcl_mjb_scenarios"))) + I("fa-clone") + "</span>", content: fnHasScenario }));
|
||||
rst.addColumn(new Column({caption: L("lcl_district"), content: "alg_district_omschrijving", purpose: (dist_key > -1 ? PRINTING_ONLY : PRINT_AND_VIEW)}));
|
||||
if (groupby > 1)
|
||||
@@ -1110,7 +1208,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
{
|
||||
rst.addAction({ action: "mjb_dragdrop", caption: L("lcl_mjb_dragdrop"), multi: true, multiOnce: true, onlyMulti: true } );
|
||||
|
||||
if (scenario == -1)
|
||||
if (scenario == 1)
|
||||
{
|
||||
// Vooralsnog de acties niet in de regels weergeven en alleen als multi aanbieden.
|
||||
// Anders zijn de links naar gebouw, object en taak vaak niet niet zichtbaar en daardoor niet klikbaar.
|
||||
@@ -1118,12 +1216,11 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
rst.addAction({ action: "insStart", caption: L("lcl_ins_start"), multi: true, multiOnce: true, enabler: "eStart", onlyMulti: true });
|
||||
rst.addAction({ action: "insClose", caption: L("lcl_ins_close") + "/" + L("lcl_ins_finish"), multi: true, multiOnce: true, enabler: "eClose", onlyMulti: true });
|
||||
rst.addAction({ action: "insFinish", caption: L("lcl_ins_finish"), multi: true, multiOnce: true, enabler: "eFinish", onlyMulti: true });
|
||||
}
|
||||
if (scenario < 0)
|
||||
{
|
||||
|
||||
rst.addAction({ action: "insFreeze", caption: L("lcl_mjb_freeze"), multi: true, multiOnce: true, enabler: "eFreeze", onlyMulti: true });
|
||||
rst.addAction({ action: "insAddScen", caption: L("lcl_mjb_incl_scen"), multi: true, multiOnce: true, enabler: "eAddScen", onlyMulti: true });
|
||||
}
|
||||
else if (scenario > 0 && actsit)
|
||||
else if (scenario > 1 && actsit)
|
||||
{
|
||||
var oRs = Oracle.Execute("SELECT ins_scenario_omschrijving FROM ins_scenario WHERE ins_scenario_key = " + scenario);
|
||||
var scen_oms = oRs("ins_scenario_omschrijving").Value;
|
||||
@@ -1155,6 +1252,9 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
|
||||
</script>
|
||||
<div id="legenda" style="display:none; line-height: 30px;">
|
||||
<table id="inslegenda">
|
||||
<tr class="mjbfreezed">
|
||||
<td title="<%= L("lcl_mjb_started") %>"><%= L("lcl_ins_controle_gestart") %></td>
|
||||
</tr>
|
||||
<tr class="mjbplanned">
|
||||
<td title="<%= L("lcl_mjb_moved") %>"><%= L("lcl_mjb_moved") %></td>
|
||||
</tr>
|
||||
|
||||
681
APPL/MJB/mjb_search_list_curr.asp
Normal file
681
APPL/MJB/mjb_search_list_curr.asp
Normal file
@@ -0,0 +1,681 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: mjb_search_list_curr.asp
|
||||
Description:
|
||||
Parameters:
|
||||
|
||||
Context:
|
||||
|
||||
Note:
|
||||
|
||||
*/ %>
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/resultset_table_v2.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="../ins/ins.inc" -->
|
||||
<%
|
||||
FCLTHeader.Requires({plugins: ["jQuery"],
|
||||
js : ["jquery-ui.js", "../ins/ins_list.js"]}); // Voor slepen en acties.
|
||||
|
||||
var urole = getQParamSafe("urole", ""); // Indien niet meegegeven, veronderstel dan frontend gebruik
|
||||
|
||||
|
||||
// FORM parameters: de waarde indien aanwezig, anders null
|
||||
// Vaak is een lege selectie ook een -1, dus dan is-ie wel aanwezig, maar hoeft niet
|
||||
// als filter te worden toegepast. Dan is null dus gelijk aan -1, qua betekenis,
|
||||
// Vandaar dat een default van -1 ipv null ook mag
|
||||
// In eerste instantie identificeren we elk veld gewoon 1-op-1.
|
||||
var outputmode = getQParamInt("outputmode", 0); // 0 = screen, 1 = print, 2 = excel etc
|
||||
var print = (outputmode == 1 || outputmode == 5);
|
||||
var excel = (outputmode == 2 || outputmode == 6);
|
||||
var showall = getQParamInt("showall", 0) == 1;
|
||||
|
||||
// Er zijn zeker enkele INSUSE <20>n CTRUSE rechten nodig.
|
||||
var authparamsINSUSE = user.checkAutorisation("WEB_INSUSE");
|
||||
var authparamsCTRUSE = user.checkAutorisation("WEB_CTRUSE");
|
||||
|
||||
var hasWriteCTRUSE = authparamsCTRUSE.ALGwritelevel < 9 && authparamsCTRUSE.PRSwritelevel < 9;
|
||||
|
||||
// Rechten om exception (xcp) waarden van de inspectie/taak te kunnen zien en om details van het object te kunnen zien.
|
||||
var authparamsINSMAN = user.checkAutorisation("WEB_INSMAN", true);
|
||||
var hasReadINSMAN = authparamsINSMAN && authparamsINSMAN.ALGreadlevel < 9 && authparamsINSMAN.PRSreadlevel < 9;
|
||||
var hasWriteINSMAN = authparamsINSMAN && authparamsINSMAN.ALGwritelevel < 9 && authparamsINSMAN.PRSwritelevel < 9;
|
||||
|
||||
// Rechten om alg (locatie) details te kunnen zien.
|
||||
var authparamsALGUSE = user.checkAutorisation("WEB_ALGUSE", true);
|
||||
var hasReadALGUSE = authparamsALGUSE && authparamsALGUSE.ALGreadlevel < 9 && authparamsALGUSE.PRSreadlevel < 9;
|
||||
|
||||
var authparamsALGMAN = user.checkAutorisation("WEB_ALGMAN", true);
|
||||
var hasReadALGMAN = authparamsALGMAN && authparamsALGMAN.ALGreadlevel < 9 && authparamsALGMAN.PRSreadlevel < 9;
|
||||
|
||||
var mjb_start_year = S("mjb_start_year");
|
||||
var mjb_freeze_year = S("mjb_freeze_year");
|
||||
|
||||
var groupby = getQParamInt("groupby");
|
||||
var fulldetails = (groupby == 7); // Geen aggregate, dan kun je van alles manipuleren
|
||||
var fromyear = getQParamInt("fromyear", mjb_freeze_year);
|
||||
var toyear = getQParamInt("toyear");
|
||||
|
||||
var deel = getQParam("deel", ""); // Identieficatie
|
||||
var groep = getQParam("groep", ""); // Groep
|
||||
if (groep == -1) groep = "";
|
||||
var categorie_key = getQParamInt("categorie_key", -1); // Categorie
|
||||
//var reg_key = getQParamInt("regiokey", -1); // Regio
|
||||
var dist_key = getQParamInt("districtkey", -1);
|
||||
var loc_key = getQParamInt("locatiekey", -1); // Locatie
|
||||
var bld_key = getQParamInt("gebouwkey", -1); // Gebouw
|
||||
var disc_key = getQParamInt("disc", -1);
|
||||
var srtgroep_key = getQParamInt("srtgroep", -1);
|
||||
var srtdeel_key = getQParamInt("srtdeel", -1);
|
||||
var srtcontrole = getQParamIntArray("srtcontrole", []); // Taak
|
||||
var inflatiepct = S("mjb_inflation");
|
||||
var inflatiefactor = 1 + (inflatiepct / 100);
|
||||
var frequentie = getQParamIntArray("frequentie", []); // Array met frequenties.
|
||||
var incbtw = getQParamInt("incbtw", 0) == 1; // Lijst inclusief BTW weergeven.
|
||||
|
||||
var scenario = getQParamInt("scenario", 1); // Scenario
|
||||
var actsit = getQParamInt("actsit", 0) == 1; // Ook actuele situatie.
|
||||
|
||||
// FORM status checkboxes
|
||||
var mjbMoved = getQParamInt("mjbMoved", 0) == 1; // Verschoven.
|
||||
var mjbFreezed = getQParamInt("mjbFreezed", 0) == 1; // In behandeling.
|
||||
var mjbXcped = getQParamInt("mjbXcped", 0) == 1; // Aangepast.
|
||||
|
||||
var ctrdisc_key = getQParamInt("ctrdisc_key", -1); // Ctrdiscipline
|
||||
if (ctrdisc_key > 0)
|
||||
lcl.set_dialect(ctrdisc_key, "INS_TAB_DISCIPLINE_KEY");
|
||||
|
||||
var params = { deel: (deel != ""? deel : null),
|
||||
groep: (groep != ""? groep : null),
|
||||
categorie_key: categorie_key,
|
||||
dist_key: dist_key,
|
||||
loc_key: loc_key,
|
||||
bld_key: bld_key,
|
||||
disc_key: disc_key,
|
||||
insgroup_key: srtgroep_key,
|
||||
objsrt_key_arr: srtdeel_key,
|
||||
mjbgroup: groupby,
|
||||
mjbtoyear: toyear,
|
||||
mjbsrtcontr: srtcontrole.join(","),
|
||||
mjbinfl_pct: inflatiepct,
|
||||
mjbfreq: frequentie.join(","),
|
||||
mjbincbtw: incbtw
|
||||
};
|
||||
var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrole", "inflatie",
|
||||
"frequentie", "incbtw", "toyear", "alg_startlevel", "alg_endlevel",
|
||||
"deel", "groep", "categorie_key", "scenario",
|
||||
"mjbMoved", "mjbFreezed", "mjbXcped"]);
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
div#timetip {position:absolute;border:1px solid #666;background-color:#fff;padding:2px;z-index:999;display:none;}
|
||||
</style>
|
||||
<%
|
||||
FCLTHeader.Generate({ outputmode: outputmode });
|
||||
|
||||
if (outputmode == 0) {
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
var urole = "<%=urole%>";
|
||||
var fulldetails = <%=fulldetails? 1 : 0%> == 1;
|
||||
|
||||
function naargebouw(bld_key, deze)
|
||||
{
|
||||
if (fulldetails)
|
||||
var url = "appl/alg/alg_gebouw.asp?key=" + bld_key;
|
||||
else
|
||||
var url = "appl/mjb/mjb_search.asp?autosearch=1&groupby=7<%=transitParam%>&gebouw_key=" + bld_key;
|
||||
FcltMgr.openDetail(url, $(deze).text());
|
||||
}
|
||||
|
||||
function naardeel(ins_key, deze)
|
||||
{
|
||||
var url = "appl/ins/ins_deel.asp?ins_key=" + ins_key + "&urole=bo";
|
||||
FcltMgr.openDetail(url, $(deze).text());
|
||||
}
|
||||
|
||||
function exception(ins_key, srtcont_key, scen_key, ttl)
|
||||
{
|
||||
var url = "../ins/ins_xcp.asp?ins_key=" + ins_key + "&srtcont_key=" + srtcont_key + "&scen_key=" + scen_key + "&urole=bo";
|
||||
FcltMgr.openModalDetail(url, { titel: L("lcl_ins_change_xcp") + " " + ttl, callback: <%=bld_key > 0? "FcltMgr.reload ": "null"%> });
|
||||
}
|
||||
</script>
|
||||
<%
|
||||
} //if (outputmode == 0)
|
||||
%>
|
||||
</head>
|
||||
<body id="listbody">
|
||||
<div id='timetip'></div>
|
||||
|
||||
<%
|
||||
// De datum (jaar) van de *eerstvolgende* onderhoudsbeurt volgt uit:
|
||||
// Datum laatste (/laatste geplande) inspectie
|
||||
// of anders: ins_deel_aanmaak
|
||||
// waarbij verondersteld wordt dat inspecties in het verleden wel zijn uitgevoerd
|
||||
|
||||
// SQL van soort controles die nog een bevroren nog lopende taak hebben in het freeze jaar en eventuele jaren ervoor.
|
||||
|
||||
|
||||
var sql_from = " FROM ins_deelsrtcontrole dsc"
|
||||
+ " , ins_v_defined_inspect_xcp xcp"
|
||||
+ " , ins_v_aanwezigdeel dl"
|
||||
+ " , ins_srtdeel isd"
|
||||
+ " , ins_srtgroep isg"
|
||||
+ " , ins_discipline dd"
|
||||
+ " , alg_district d"
|
||||
+ " , alg_locatie l"
|
||||
+ " , alg_gebouw g"
|
||||
+ " , alg_verdieping v"
|
||||
+ " , alg_ruimte r";
|
||||
|
||||
|
||||
var sql_where = " WHERE dsc.ins_deel_key = xcp.ins_deel_key"
|
||||
+ " AND dsc.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
|
||||
+ " AND dsc.ins_scenario_key = xcp.ins_scenario_key"
|
||||
+ " AND xcp.ins_deel_key = dl.ins_deel_key"
|
||||
+ " AND dl.ins_srtdeel_key = isd.ins_srtdeel_key"
|
||||
+ " AND isd.ins_srtgroep_key = isg.ins_srtgroep_key"
|
||||
+ " AND isg.ins_discipline_key = dd.ins_discipline_key"
|
||||
+ " AND dl.ins_alg_ruimte_key = r.alg_ruimte_key"
|
||||
+ " AND r.alg_verdieping_key = v.alg_verdieping_key"
|
||||
+ " AND v.alg_gebouw_key = g.alg_gebouw_key"
|
||||
+ " AND g.alg_locatie_key = l.alg_locatie_key"
|
||||
+ " AND d.alg_district_key = l.alg_district_key"
|
||||
+ " AND ins_deelsrtcontrole_key = (SELECT MAX(id2.ins_deelsrtcontrole_key)"
|
||||
+ " FROM ins_deelsrtcontrole id2"
|
||||
+ " WHERE id2.ins_deel_key = dsc.ins_deel_key"
|
||||
+ " AND id2.ins_srtcontrole_key = dsc.ins_srtcontrole_key)"
|
||||
+ " AND xcp.ins_srtcontrole_periode > 0"
|
||||
+ " AND xcp.ins_scenario_key = 1"
|
||||
+ " AND xcp.ctr_ismjob = 1"
|
||||
// Je moet read CTRUSE rechten hebben op de CTR disciplines om de taken te kunnen zien.
|
||||
+ " AND xcp.ctr_discipline_key IN (SELECT w.ins_discipline_key"
|
||||
+ " FROM fac_v_webgebruiker w"
|
||||
+ " , fac_functie f"
|
||||
+ " WHERE w.fac_functie_key = f.fac_functie_key "
|
||||
+ " AND f.fac_functie_code = 'WEB_CTRUSE'"
|
||||
+ " AND w.fac_gebruiker_prs_level_read < 9"
|
||||
+ " AND w.fac_gebruiker_alg_level_read < 9"
|
||||
+ " AND w.prs_perslid_key = " + user_key
|
||||
+ " AND w.ins_discipline_key = xcp.ctr_discipline_key)"
|
||||
// Vroeg filteren is *heel* goed voor performance
|
||||
+ (dist_key > 0
|
||||
? " AND xcp.ins_alg_locatie_key IN (SELECT alg_locatie_key FROM alg_locatie WHERE alg_district_key = " + dist_key + ")"
|
||||
: "")
|
||||
+ (loc_key > 0
|
||||
? " AND xcp.ins_alg_locatie_key = " + loc_key
|
||||
: "")
|
||||
+ (bld_key > 0 // elders in dit bestand wordt scherper gefilterd, deze is voor de performance
|
||||
? " AND xcp.ins_alg_locatie_key = (SELECT alg_locatie_key FROM alg_gebouw WHERE alg_gebouw_key = " + bld_key + ")"
|
||||
: "")
|
||||
+ (disc_key > 0
|
||||
? " AND xcp.ins_discipline_key = " + disc_key
|
||||
: "")
|
||||
+ (srtgroep_key > 0
|
||||
? " AND xcp.ins_srtgroep_key = " + srtgroep_key
|
||||
: "")
|
||||
+ (srtdeel_key > 0
|
||||
? " AND xcp.ins_srtdeel_key = " + srtdeel_key
|
||||
: "")
|
||||
+ (groep
|
||||
? " AND UPPER(ins_srtcontrole_groep) LIKE " + safe.quoted_sql_wild("%" + groep + "%")
|
||||
: "")
|
||||
+ (categorie_key > 0
|
||||
? " AND xcp.ctr_discipline_key = " + categorie_key
|
||||
: "")
|
||||
+ (srtcontrole.length > 0
|
||||
? " AND xcp.ins_srtcontrole_key IN (" + srtcontrole.join(",") + ")"
|
||||
: "")
|
||||
+ (frequentie.length > 0
|
||||
? " AND xcp.ins_srtcontrole_periode IN (" + frequentie.join(",") + ")"
|
||||
: "")
|
||||
+ (deel
|
||||
? " AND dl.ins_deel_upper LIKE " + safe.quoted_sql_wild("%" + deel + "%")
|
||||
: "")
|
||||
+ (bld_key > 0
|
||||
? " AND g.alg_gebouw_key = " + bld_key
|
||||
: "")
|
||||
+ " AND dsc.ins_deelsrtcontrole_status >= 2";
|
||||
|
||||
var sql_years = "SELECT DISTINCT EXTRACT(YEAR FROM dsc.ins_deelsrtcontrole_freezedate) freezedate"
|
||||
+ sql_from
|
||||
+ sql_where;
|
||||
|
||||
var sql_list_years = "SELECT LISTAGG(freezedate, ',') WITHIN GROUP (ORDER BY freezedate) listfdjaar"
|
||||
+ " FROM (" + sql_years + ")";
|
||||
var oRs = Oracle.Execute(sql_list_years);
|
||||
var listfdjaar = oRs("listfdjaar").Value;
|
||||
var jaren = listfdjaar.split(",");
|
||||
var beginjaar = jaren[0];
|
||||
var eindjaar = jaren[jaren.length-1];
|
||||
|
||||
var keyColomn = "";
|
||||
switch (groupby)
|
||||
{
|
||||
case 1: keyColumn = "d.alg_district_key";
|
||||
break;
|
||||
case 2: keyColumn = "g.alg_gebouw_key";
|
||||
break;
|
||||
case 3: keyColumn = "dl.ins_discipline_key";
|
||||
break;
|
||||
case 4: keyColumn = "isg.ins_srtgroep_key";
|
||||
break;
|
||||
case 5: keyColumn = "isd.ins_srtdeel_key";
|
||||
break;
|
||||
case 6:
|
||||
case 7: keyColumn = "dl.ins_deel_key";
|
||||
break;
|
||||
}
|
||||
|
||||
var ins_xcp_active_cost = S("ins_xcp_active_cost");
|
||||
var costarray = [];
|
||||
if (ins_xcp_active_cost & 1) costarray.push("COALESCE(xcp.ins_srtcontrole_kosten, 0)");
|
||||
if (ins_xcp_active_cost & 2) costarray.push("COALESCE(xcp.ins_srtcontrole_kosten2, 0)");
|
||||
if (ins_xcp_active_cost & 4) costarray.push("COALESCE(xcp.ins_srtcontrole_kosten3, 0)");
|
||||
if (ins_xcp_active_cost & 8) costarray.push("COALESCE(xcp.ins_srtcontrole_materiaal, 0)");
|
||||
var sqlcost = "";
|
||||
if (costarray.length > 0)
|
||||
sqlcost = "(" + costarray.join(" + ") + ") *";
|
||||
|
||||
var btw = (incbtw
|
||||
? " (1 + COALESCE((SELECT fbtw.fin_btwtabelwaarde_perc"
|
||||
+ " FROM fin_btwtabelwaarde fbtw"
|
||||
+ " WHERE fbtw.fin_btwtabelwaarde_key = xcp.fin_btwtabelwaarde_key) / 100"
|
||||
+ " , 0)) *"
|
||||
: "")
|
||||
|
||||
var sql_cost = "SELECT d.alg_district_key"
|
||||
+ " , d.alg_district_omschrijving"
|
||||
+ " , g.alg_gebouw_omschrijving"
|
||||
+ " , g.alg_gebouw_key"
|
||||
+ " , dl.ins_deel_omschrijving"
|
||||
+ " , xcp.ins_deel_aantal"
|
||||
+ " , xcp.ins_srtdeel_eenheid"
|
||||
+ " , dl.ins_deel_opmerking"
|
||||
+ " , dd.ins_discipline_omschrijving"
|
||||
+ " , isg.ins_srtgroep_omschrijving"
|
||||
+ " , isd.ins_srtdeel_omschrijving"
|
||||
+ " , xcp.ins_srtcontrole_omschrijving"
|
||||
+ " , xcp.ins_srtcontrole_opmerking"
|
||||
+ " , " + keyColumn + " keyColumn"
|
||||
+ " , dsc.ins_deel_key"
|
||||
+ " , dsc.ins_srtcontrole_key"
|
||||
+ " , dsc.ins_scenario_key"
|
||||
+ " , dsc.ins_deelsrtcontrole_freezedate"
|
||||
+ " , dsc.ins_deelsrtcontrole_datum"
|
||||
+ " , dsc.ins_deelsrtcontrole_status"
|
||||
+ " , dsc.ins_deelsrtcontrole_key"
|
||||
+ " , EXTRACT( YEAR FROM LEAST(COALESCE(g.alg_gebouw_vervaldatum"
|
||||
+ " , dl.ins_deel_vervaldatum"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, xcp.ins_srtcontrole_eind))"
|
||||
+ " , COALESCE(COALESCE(xcp.ins_srtcontroledl_xcp_eind, xcp.ins_srtcontrole_eind)"
|
||||
+ " , g.alg_gebouw_vervaldatum"
|
||||
+ " , dl.ins_deel_vervaldatum)"
|
||||
+ " , COALESCE(dl.ins_deel_vervaldatum"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, xcp.ins_srtcontrole_eind)"
|
||||
+ " , g.alg_gebouw_vervaldatum))) vervaljaar"
|
||||
+ " , xcp.ins_srtcontrole_afbouwtijd afbouwtijd"
|
||||
+ " , (SELECT LISTAGG(isc1.ins_scenario_omschrijving, ', ')"
|
||||
+ " WITHIN GROUP (ORDER BY isc1.ins_scenario_omschrijving)"
|
||||
+ " FROM ins_srtcontroledl_xcp xcp1"
|
||||
+ " , ins_scenario isc1"
|
||||
+ " WHERE xcp1.ins_scenario_key = isc1.ins_scenario_key"
|
||||
+ " AND xcp1.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
|
||||
+ " AND xcp1.ins_deel_key = xcp.ins_deel_key) scenario_oms"
|
||||
+ " , ins_srtcontroledl_xcp_key"
|
||||
+ " , COALESCE(dsc.ins_deelsrtcontrole_datum, dsc.ins_deelsrtcontrole_freezedate) freezedatum"
|
||||
+ " , EXTRACT(YEAR FROM COALESCE(ins_deelsrtcontrole_datum, ins_deelsrtcontrole_freezedate)) freezejaar"
|
||||
+ " , COALESCE (xcp.ins_deel_aantal *"
|
||||
+ " " + sqlcost
|
||||
+ " (COALESCE(xcp.ins_srtcontrole_percentage, 100) / 100) *"
|
||||
+ " " + btw
|
||||
+ " POWER(" + inflatiefactor + " , EXTRACT(YEAR FROM COALESCE(ins_deelsrtcontrole_datum, ins_deelsrtcontrole_freezedate)) - EXTRACT(YEAR FROM SYSDATE))" // Bevriezen van het kalenderjaar S("mjb_freeze_year").
|
||||
+ " , 0) geraamdbedrag"
|
||||
+ " , EXTRACT(YEAR FROM COALESCE(ins_deelsrtcontrole_datum, ins_deelsrtcontrole_freezedate)) freezedatejaar"
|
||||
+ " , " + btw + " dsc.ins_deelsrtcontrole_freezecost ins_deelsrtcontrole_freezecost"
|
||||
+ sql_from
|
||||
+ sql_where
|
||||
+ " AND EXTRACT(YEAR FROM ins_deelsrtcontrole_freezedate) IN (" + listfdjaar + ")";
|
||||
|
||||
|
||||
if (!fulldetails)
|
||||
{
|
||||
var fields = ["alg_district_omschrijving", "alg_gebouw_omschrijving", "ins_discipline_omschrijving",
|
||||
"ins_srtgroep_omschrijving", "ins_srtdeel_omschrijving", "ins_deel_omschrijving"];
|
||||
while (fields.length > groupby) // TODO: dit kan toch echt niet kloppen!?
|
||||
fields.pop();
|
||||
if (fields.length == 6) // bij omschrijving hoort ook aantal met eenheid.
|
||||
{
|
||||
fields.push("ins_deel_aantal");
|
||||
fields.push("ins_srtdeel_eenheid");
|
||||
}
|
||||
|
||||
var sql_cost = "SELECT " + fields.join(", ")
|
||||
+ (groupby > 1
|
||||
? " , alg_gebouw_key"
|
||||
: "")
|
||||
+ " , keyColumn"
|
||||
+ (keyColumn == 'dl.ins_deel_key'
|
||||
? " , ins_deel_opmerking"
|
||||
: "")
|
||||
+ " , SUM(ins_deelsrtcontrole_freezecost) ins_deelsrtcontrole_freezecost"
|
||||
+ " , SUM(geraamdbedrag) geraamdbedrag"
|
||||
+ " , freezedatejaar"
|
||||
+ " FROM (" + sql_cost + ")"
|
||||
+ " GROUP BY " + fields.join(", ")
|
||||
+ (groupby > 1
|
||||
? " , alg_gebouw_key"
|
||||
: "" )
|
||||
+ " , keyColumn"
|
||||
+ (keyColumn == 'dl.ins_deel_key'
|
||||
? " , ins_deel_opmerking"
|
||||
: "")
|
||||
+ " , freezedatejaar";
|
||||
}
|
||||
|
||||
var sql = "SELECT *"
|
||||
+ " FROM (" + sql_cost + ") c"
|
||||
+ " PIVOT (SUM(ins_deelsrtcontrole_freezecost) FOR freezedatejaar IN (2016, 2017, 2018))";
|
||||
|
||||
var sqlArray = [];
|
||||
if (mjbMoved) // Aangepast.
|
||||
{
|
||||
sqlArray.push("isPlanned = 1");
|
||||
}
|
||||
if (mjbFreezed) // In behandeling (Bevroren).
|
||||
{
|
||||
sqlArray.push("ins_deelsrtcontrole_freezedate IS NOT NULL AND ins_deelsrtcontrole_status = 2");
|
||||
}
|
||||
if (mjbXcped) // Aangepast.
|
||||
{
|
||||
sqlArray.push("ins_srtcontroledl_xcp_key IS NOT NULL AND ins_scenario_key = 1");
|
||||
}
|
||||
|
||||
if (sqlArray.length)
|
||||
sql += " WHERE (" + sqlArray.join(" OR ") + ")";
|
||||
|
||||
sql += " ORDER BY 1";
|
||||
for (var i = 2; i <= groupby; i++)
|
||||
{
|
||||
sql += "," + String(i)
|
||||
}
|
||||
|
||||
|
||||
// Functions of ResultsetTable.
|
||||
function fnkeyFunction(oRs)
|
||||
{
|
||||
if (fulldetails)
|
||||
return oRs("ins_deel_key").Value; // + "-" + oRs("ins_srtcontrole_key").Value;
|
||||
else
|
||||
return oRs("keyColumn").Value;
|
||||
}
|
||||
|
||||
function fnrowData(oRs)
|
||||
{
|
||||
var data = {};
|
||||
if (fulldetails)
|
||||
{
|
||||
data.insKey = oRs("ins_deel_key").Value;
|
||||
data.insSrtControleKey = oRs("ins_srtcontrole_key").Value;
|
||||
data.insDeelSrtContrKey = oRs("ins_deelsrtcontrole_key").Value? oRs("ins_deelsrtcontrole_key").Value : -1;
|
||||
//data.insNexdate0 = new Date(oRs("org_nexdate_0").Value).getFullYear(); // Eerstaankomende vandaag of in de toekomst.
|
||||
//data.insCtrControleType = oRs("ctr_controle_type").Value;
|
||||
data.insScenKey = oRs("ins_scenario_key").Value;
|
||||
}
|
||||
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
|
||||
function fnrowClass(oRs)
|
||||
{
|
||||
if (!fulldetails)
|
||||
return "";
|
||||
//var scen_key = oRs("ins_scenario_key").Value;
|
||||
var lclass = oRs("ins_srtcontroledl_xcp_key").Value != null? "mjbxcp" : "mjbstd";
|
||||
//if (scen_key > 1)
|
||||
// lclass += " scenerized1";
|
||||
//if (oRs("isPlanned").Value == 1)
|
||||
// lclass += " mjbplanned";
|
||||
return lclass;
|
||||
}
|
||||
|
||||
|
||||
function fnrowActionEnabler(oRs)
|
||||
{
|
||||
var data = {};
|
||||
//var eShowInsp = false;
|
||||
var ePlan = false;
|
||||
var eStart = false;
|
||||
var eClose = false;
|
||||
var eFinish = false;
|
||||
var eAddScen = false;
|
||||
if (fulldetails)
|
||||
{ // Functie ins.func_enabled_deel kost tijd om voor elke regel uit te voeren.
|
||||
// Query uit ins.func_enabled_deel samenvoegen met query van dit overzicht is bijna niet te doen.
|
||||
// Inspectie acties alleen zichtbaar in het overzicht gegroepeerd naar Taken. Het gebouw filter is dan al vaak ingevuld.
|
||||
var this_ins = ins.func_enabled_deel(oRs("ins_deel_key").Value,
|
||||
{ srtcont_key: oRs("ins_srtcontrole_key").Value,
|
||||
deelsrtcont_key: oRs("ins_deelsrtcontrole_key").Value? oRs("ins_deelsrtcontrole_key").Value : -1,
|
||||
scen_key: oRs("ins_scenario_key").Value
|
||||
});
|
||||
ePlan = this_ins.canInspPlan;
|
||||
eStart = this_ins.canInspStart;
|
||||
eClose = this_ins.canInspClose;
|
||||
eFinish = this_ins.canInspFinish;
|
||||
eFreeze = this_ins.canInspFreeze;
|
||||
eAddScen = true;
|
||||
}
|
||||
var data = {ePlan: ePlan, eStart: eStart, eClose: eClose, eFinish: eFinish, eFreeze: eFreeze};
|
||||
return data;
|
||||
}
|
||||
|
||||
function fnGebouw(oRs)
|
||||
{
|
||||
if (hasReadALGUSE || hasReadALGMAN)
|
||||
{
|
||||
return "<span class='details' title='{2}' onclick='naargebouw({0}, this)'>{1}</span>".format(oRs("alg_gebouw_key").Value, safe.htmlattr(oRs("alg_gebouw_omschrijving").Value), (fulldetails ? safe.htmlattr(L("lcl_estate_gebouw_title")): L("ins_srtcontrole_m")));
|
||||
}
|
||||
else
|
||||
return safe.html(oRs("alg_gebouw_omschrijving").Value);
|
||||
}
|
||||
|
||||
function fnDeel(oRs)
|
||||
{ // Alleen voor groupby Element(6) en Taak(7)
|
||||
if (hasReadINSMAN)
|
||||
{
|
||||
return "<span class='details' title='{2}' onclick='naardeel({0}, this)'>{1}</span>".format(oRs("keyColumn").Value, safe.html(oRs("ins_deel_omschrijving").Value), (oRs("ins_deel_opmerking").Value == null ? safe.htmlattr(L("lcl_mld_deel_details")) : safe.htmlattr(oRs("ins_deel_opmerking").Value)));
|
||||
}
|
||||
else
|
||||
return "<span title='{2}'>{1}</span>".format(oRs("keyColumn").Value, safe.htmlattr(oRs("ins_deel_omschrijving").Value), safe.htmlattr(oRs("ins_deel_opmerking").Value));
|
||||
}
|
||||
|
||||
function fnStatus(oRs)
|
||||
{
|
||||
return ins.getinspectstatustext(oRs("ins_deelsrtcontrole_status").Value);
|
||||
}
|
||||
|
||||
function fnSrtcontrole(oRs)
|
||||
{
|
||||
var hasXcp = oRs("ins_srtcontroledl_xcp_key").Value != null;
|
||||
if ((hasXcp && hasReadINSMAN) || (hasWriteCTRUSE && hasWriteINSMAN))
|
||||
{
|
||||
var fncall = "exception({0}, {1}, '{2}')"
|
||||
.format(oRs("ins_deel_key").Value,
|
||||
oRs("ins_srtcontrole_key").Value,
|
||||
oRs("ins_scenario_key").Value,
|
||||
safe.jsstring(oRs("ins_deel_omschrijving").Value));
|
||||
return "<span class='details' onclick='{0}'>{1}</span>"
|
||||
.format(safe.htmlattr(fncall),
|
||||
safe.html(oRs("ins_srtcontrole_omschrijving").Value));
|
||||
}
|
||||
else
|
||||
return safe.html(oRs("ins_srtcontrole_omschrijving").Value);
|
||||
}
|
||||
|
||||
function fnfnBedrag(jaar) // altijd afronden
|
||||
{
|
||||
return function (oRs)
|
||||
{
|
||||
if (oRs(jaar).Value == null)
|
||||
return "";
|
||||
var v = safe.curr(Math.round(oRs(jaar).Value), true);
|
||||
return v;
|
||||
}
|
||||
}
|
||||
|
||||
function fnfnBedragNumber(col) // Voor optellen
|
||||
{
|
||||
return function (oRs)
|
||||
{
|
||||
return Math.round(oRs(col).Value);
|
||||
}
|
||||
}
|
||||
|
||||
function totalShow(column, rowNum)
|
||||
{
|
||||
return safe.curr(column.totalsum, true);
|
||||
}
|
||||
|
||||
function fnfnClickBedrag(jaar) // altijd afronden
|
||||
{
|
||||
return function (oRs)
|
||||
{
|
||||
if (oRs(jaar).Value == null)
|
||||
return "";
|
||||
var v = Math.round(oRs(jaar).Value);
|
||||
var v_gb = Math.round(oRs("geraamdbedrag").Value);
|
||||
if (v == 0) // (jaar >= vervaljaar) //
|
||||
{
|
||||
var vervaljaar = oRs("vervaljaar").Value;
|
||||
var afbouwtijd = oRs("afbouwtijd").Value || 0;
|
||||
if (vervaljaar != null && jaar > vervaljaar - afbouwtijd) // Als 2022 vervaljaar is en afbouwtijd is 2 jaar, dan 2020 nog 0 tonen.
|
||||
return "";
|
||||
}
|
||||
//if (v != v_gb) {
|
||||
if (v == 0) {
|
||||
if (outputmode == 0) {
|
||||
v = "<span class='mjborgbedrag' title='{1}'>{0}</span>".format(safe.curr(v, true), L('lcl_valutasign') + safe.curr(v_gb, true));
|
||||
} else {
|
||||
v = "{0}".format(safe.curr(v, true));
|
||||
}
|
||||
}
|
||||
return safe.curr(v, true);
|
||||
}
|
||||
}
|
||||
|
||||
function fnfncolClass(jaar)
|
||||
{
|
||||
return function (oRs)
|
||||
{
|
||||
if (fulldetails)
|
||||
{
|
||||
var vervaljaar = oRs("vervaljaar").Value;
|
||||
var afbouwtijd = oRs("afbouwtijd").Value || 0;
|
||||
var freezeclass = "";
|
||||
if (jaar > vervaljaar - afbouwtijd) // Afzien van taken/vervanging/inspecties. Geen kosten meer.
|
||||
{
|
||||
if (vervaljaar != null && afbouwtijd != null && jaar > vervaljaar - afbouwtijd && jaar <= vervaljaar)
|
||||
return "mjbjaar mjbafbouw" + freezeclass;
|
||||
else if (vervaljaar != null && jaar > vervaljaar)
|
||||
return "mjbjaar mjbverval";
|
||||
}
|
||||
else
|
||||
{
|
||||
var freezejaar = oRs("freezejaar").Value;
|
||||
if (jaar == freezejaar && oRs("ins_deelsrtcontrole_freezedate").Value != null && oRs("ins_deelsrtcontrole_status").Value == 2)
|
||||
freezeclass = " mjbfreezed";
|
||||
}
|
||||
}
|
||||
return "mjbjaar" + freezeclass;
|
||||
}
|
||||
}
|
||||
|
||||
function fnGeraamdClass(oRs)
|
||||
{
|
||||
return "mjbgeraamd";
|
||||
}
|
||||
|
||||
function fnGeraamdBedrag(oRs)
|
||||
{
|
||||
return safe.curr(Math.round(oRs("geraamdbedrag").Value), true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
var buttons = [];
|
||||
//buttons.push({ icon: "plus.png", title: L("lcl_mjb_incl_scen"), action: 'insAddTCScen()' });
|
||||
//buttons.push({ icon: "plus.png", title: L("lcl_mjb_inst_scen"), action: 'insInstituteScen()' });
|
||||
buttons.push({ icon: "page_refresh.png", title: L("lcl_refresh"), action: "FcltMgr.reload()" });
|
||||
buttons.push({ icon: "legenda.png", title: L("lcl_ins_controle_legenda"), action: 'openLegenda()' });
|
||||
|
||||
var rst = new ResultsetTable({ keyColumn: fnkeyFunction,
|
||||
sql: sql,
|
||||
ID: "mjobtable",
|
||||
rowData: fnrowData,
|
||||
rowClass: fnrowClass,
|
||||
//suppressKeyRepeat: "alg_locatie_omschrijving",
|
||||
rowActionEnabler: fnrowActionEnabler,
|
||||
totalShow: totalShow,
|
||||
flexModule: "INS",
|
||||
multiple: true,
|
||||
filterParams: params,
|
||||
outputmode: outputmode,
|
||||
title: L("ins_srtcontrole_m"),
|
||||
showAll: showall,
|
||||
buttons: buttons
|
||||
});
|
||||
|
||||
//if (fulldetails && scenario == 1)
|
||||
// rst.addColumn(new Column({caption: "<span title='{0}'>".format(safe.htmlattr(L("lcl_mjb_scenarios"))) + I("fa-clone") + "</span>", content: fnHasScenario }));
|
||||
rst.addColumn(new Column({caption: L("lcl_district"), content: "alg_district_omschrijving", purpose: (dist_key > -1 && groupby != 1? PRINTING_ONLY : PRINT_AND_VIEW)}));
|
||||
if (groupby > 1)
|
||||
rst.addColumn(new Column({caption: L("lcl_building"), content: fnGebouw }));
|
||||
if (!fulldetails)
|
||||
{
|
||||
if (groupby > 2) rst.addColumn(new Column({caption: L("lcl_discipline"), content: "ins_discipline_omschrijving"}));
|
||||
if (groupby > 3) rst.addColumn(new Column({caption: L("lcl_obj_group"), content: "ins_srtgroep_omschrijving"}));
|
||||
if (groupby > 4) rst.addColumn(new Column({caption: L("lcl_obj_sort"), content: "ins_srtdeel_omschrijving"}));
|
||||
}
|
||||
if (groupby > 5)
|
||||
{
|
||||
rst.addColumn(new Column({caption: L("lcl_ins_object"), content: fnDeel}));
|
||||
rst.addColumn(new Column({caption: L("lcl_amount"), content: "ins_deel_aantal", datatype: "float"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_obj_unit"), content: "ins_srtdeel_eenheid"}));
|
||||
}
|
||||
if (fulldetails)
|
||||
{
|
||||
rst.addColumn(new Column({caption: L("lcl_ins_controle_srt"), content: fnSrtcontrole, tooltip: "ins_srtcontrole_opmerking"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_ins_status"), content: fnStatus}));
|
||||
}
|
||||
for (var j = 0; j < jaren.length; j++)
|
||||
{
|
||||
if (fulldetails)
|
||||
var content = fnfnClickBedrag(String(jaren[j]));
|
||||
else
|
||||
var content = fnfnBedrag(String(jaren[j]));
|
||||
rst.addColumn(new Column({caption: String(L("lcl_mjb_begroot") + " " + jaren[j]),
|
||||
datatype: "number",
|
||||
content: content,
|
||||
columnClass: fnfncolClass(String(jaren[j])), // tdClass dan niet meer nodig.
|
||||
total: true,
|
||||
fnAmount: fnfnBedragNumber(String(jaren[j]))
|
||||
}));
|
||||
}
|
||||
rst.addColumn(new Column({caption: L("lcl_mjb_geraamd"),
|
||||
datatype: "number",
|
||||
content: fnGeraamdBedrag,
|
||||
columnClass: fnGeraamdClass,
|
||||
total: true,
|
||||
fnAmount: fnfnBedragNumber("geraamdbedrag")
|
||||
}));
|
||||
|
||||
var count = rst.processResultset();
|
||||
|
||||
|
||||
%>
|
||||
</body>
|
||||
</html>
|
||||
@@ -99,14 +99,14 @@ if (srtcontrole_key < 0)
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
|
||||
+ " AND id.ins_deel_key = " + ins_key
|
||||
+ (today != -1
|
||||
? " AND (TRUNC(FAC.nextcyclusdatedeel (id.ins_deel_key, isc.ins_srtcontrole_key, NULL, 1)) <= TRUNC(sysdate) "
|
||||
? " AND (TRUNC(FAC.nextcyclusdatedeel (id.ins_deel_key, isc.ins_srtcontrole_key, 1, 1)) <= TRUNC(sysdate) "
|
||||
+ " OR (SELECT idsc1.ins_deelsrtcontrole_status"
|
||||
+ " FROM ins_deelsrtcontrole idsc1"
|
||||
+ " WHERE idsc1.ins_deelsrtcontrole_key = (SELECT MAX(idsc2.ins_deelsrtcontrole_key)"
|
||||
+ " FROM ins_deelsrtcontrole idsc2"
|
||||
+ " WHERE idsc2.ins_deel_key = id.ins_deel_key"
|
||||
+ " AND idsc2.ins_srtcontrole_key = isc.ins_srtcontrole_key"
|
||||
+ " AND idsc2.ins_scenario_key IS NULL)) < 6"
|
||||
+ " AND idsc2.ins_scenario_key = 1)) < 6"
|
||||
+ " )"
|
||||
: "")
|
||||
+ " GROUP BY id.ins_deel_omschrijving";
|
||||
@@ -206,7 +206,7 @@ if (srtcontrole_key < 0 || defaultmode_key > 0)
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eind"
|
||||
+ " FROM ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE xcp.ins_deel_key = " + ins_key
|
||||
+ " AND xcp.ins_scenario_key IS NULL"
|
||||
+ " AND xcp.ins_scenario_key = 1"
|
||||
+ " ) xcp"
|
||||
+ " ON i.ins_deel_key = xcp.ins_deel_key"
|
||||
+ " AND i.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
|
||||
@@ -219,7 +219,7 @@ if (srtcontrole_key < 0 || defaultmode_key > 0)
|
||||
+ " FROM ins_deelsrtcontrole idsc2"
|
||||
+ " WHERE idsc2.ins_deel_key = xcp.ins_deel_key"
|
||||
+ " AND idsc2.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
|
||||
+ " AND idsc2.ins_scenario_key IS NULL)) != 6)"
|
||||
+ " AND idsc2.ins_scenario_key = 1)) != 6)"
|
||||
// Alleen de disciplines tonen waar de user rechten op heb.
|
||||
+ " AND i.ctr_discipline_key IN (SELECT g.ins_discipline_key"
|
||||
+ " FROM fac_v_webgebruiker g"
|
||||
@@ -229,7 +229,7 @@ if (srtcontrole_key < 0 || defaultmode_key > 0)
|
||||
+ " AND g.fac_gebruiker_prs_level_write < 9"
|
||||
+ " AND g.fac_gebruiker_alg_level_write < 9"
|
||||
+ " AND g.prs_perslid_key = " + user_key + ")"
|
||||
+ (today != -1 ? " AND TRUNC(FAC.nextcyclusdatedeel (i.ins_deel_key, i.ins_srtcontrole_key, NULL, 1)) <= TRUNC(sysdate) " : "");
|
||||
+ (today != -1 ? " AND TRUNC(FAC.nextcyclusdatedeel (i.ins_deel_key, i.ins_srtcontrole_key, 1, 1)) <= TRUNC(sysdate) " : "");
|
||||
|
||||
function fnPrefix(oRs, params)
|
||||
{
|
||||
@@ -304,7 +304,7 @@ else
|
||||
+ " AND isc.ctr_discipline_key = cdp.ctr_ins_discipline_key"
|
||||
+ " AND idsc.ins_deel_key(+) = " + ins_key // PF: lijkt mij alleen indien deelsrtcont_key == -1
|
||||
+ " AND isc.ins_srtcontrole_key = " + srtcontrole_key // PF: lijkt mij alleen indien deelsrtcont_key == -1
|
||||
+ " AND idsc.ins_scenario_key(+) IS NULL"
|
||||
+ " AND idsc.ins_scenario_key(+) = 1"
|
||||
+ (deelsrtcont_key > 0
|
||||
? " AND idsc.ins_deelsrtcontrole_key = " + deelsrtcont_key
|
||||
: "")
|
||||
@@ -366,8 +366,8 @@ else
|
||||
+ " AND idsc.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND idsc.ins_deel_key IN (" + ins_key + ")"
|
||||
+ " AND isc.ins_srtcontrole_key = " + srtcontrole_key
|
||||
+ " AND idsc.ins_scenario_key IS NULL"
|
||||
+ " AND xcp.ins_scenario_key(+) IS NULL"
|
||||
+ " AND idsc.ins_scenario_key = 1"
|
||||
+ " AND xcp.ins_scenario_key(+) = 1"
|
||||
+ " AND COALESCE(isc.ins_srtcontrole_periode, xcp.ins_srtcontroledl_xcp_periode) > 0";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
while (!oRs.eof)
|
||||
@@ -526,7 +526,7 @@ else
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_deel_key = " + ins_key
|
||||
+ " AND idsc.ins_deelsrtcontrole_status = 6"
|
||||
+ " AND idsc.ins_scenario_key IS NULL"
|
||||
+ " AND idsc.ins_scenario_key = 1"
|
||||
+ " ORDER BY ins_deelsrtcontrole_datum DESC";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
@@ -540,7 +540,7 @@ else
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_deel_key = " + ins_key
|
||||
+ " AND idsc.ins_deelsrtcontrole_status != 6"
|
||||
+ " AND idsc.ins_scenario_key IS NULL";
|
||||
+ " AND idsc.ins_scenario_key = 1";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
|
||||
if (!oRs.eof && oRs("ins_deelsrtcontrole_plandatum").Value != null)
|
||||
|
||||
@@ -4464,7 +4464,7 @@ td.kpidetails {
|
||||
border-left:1px solid #aaa;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.mjbjaar {
|
||||
.mjbjaar, .mjbgeraamd {
|
||||
border-left:1px solid #eee;
|
||||
vertical-align: middle;
|
||||
}
|
||||
@@ -4474,10 +4474,15 @@ td.kpidetails {
|
||||
background: linear-gradient(to top, rgba(255, 254, 156, 0.6), rgba(255, 254, 156, 0.4) 80%); /* Standard syntax */
|
||||
}
|
||||
.scenerized1 td {
|
||||
background: -webkit-linear-gradient(top, rgba(224, 239, 198, 1), rgba(224, 239, 198, 0.4) 80%); /* For Safari 5.1 to 6.0 */
|
||||
background: -moz-linear-gradient(top, rgba(224, 239, 198, 1), rgba(224, 239, 198, 0.4) 80%); /* For Firefox 3.6 to 15 */
|
||||
background: linear-gradient(to top, rgba(224, 239, 198, 0.6), rgba(224, 239, 198, 0.4) 80%); /* Standard syntax */
|
||||
background: -webkit-linear-gradient(top, rgba(224, 130, 0, 1), rgba(224, 130, 0, 0.4) 80%); /* For Safari 5.1 to 6.0 */
|
||||
background: -moz-linear-gradient(top, rgba(224, 130, 0, 1), rgba(224, 130, 0, 0.4) 80%); /* For Firefox 3.6 to 15 */
|
||||
background: linear-gradient(to top, rgba(224, 130, 0, 0.6), rgba(224, 130, 0, 0.4) 80%); /* Standard syntax */
|
||||
}
|
||||
//.mjbfreezed {
|
||||
// background: -webkit-linear-gradient(top, rgba(224, 239, 198, 1), rgba(224, 239, 198, 0.4) 80%); /* For Safari 5.1 to 6.0 */
|
||||
// background: -moz-linear-gradient(top, rgba(224, 239, 198, 1), rgba(224, 239, 198, 0.4) 80%); /* For Firefox 3.6 to 15 */
|
||||
// background: linear-gradient(to top, rgba(224, 239, 198, 0.6), rgba(224, 239, 198, 0.4) 80%); /* Standard syntax */
|
||||
//}
|
||||
.mjbstd td {
|
||||
opacity: 0.9;
|
||||
}
|
||||
@@ -4502,6 +4507,12 @@ span.draggable .mjborgbedrag {
|
||||
background-position: center !important;
|
||||
}
|
||||
|
||||
.mjbfreezed {
|
||||
background: -webkit-linear-gradient(top, rgba(208, 223, 129, 1), rgba(208, 223, 129, 0.4) 80%); /* For Safari 5.1 to 6.0 */
|
||||
background: -moz-linear-gradient(top, rgba(208, 223, 129, 1), rgba(208, 223, 129, 0.4) 80%); /* For Firefox 3.6 to 15 */
|
||||
background: linear-gradient(to top, rgba(208, 223, 129, 0.6), rgba(208, 223, 129, 0.4) 80%); /* Standard syntax */
|
||||
}
|
||||
|
||||
/* toaster stuff */
|
||||
.jq-icon-info { background-color: #31708f; color: #d9edf7; border-color: #bce8f1; }
|
||||
.jq-icon-warning { background-color: #8a6d3b; color: #fcf8e3; border-color: #faebcc; }
|
||||
|
||||
@@ -26,6 +26,7 @@ var sql = "SELECT cd.ins_discipline_key"
|
||||
+ " , cd.ins_discipline_omschrijving"
|
||||
+ " , cdp.ctr_disc_params_controle_type"
|
||||
+ " , cdp.ctr_disc_params_ismjob"
|
||||
+ " , mld_stdmelding_key"
|
||||
+ " FROM ctr_discipline cd"
|
||||
+ " , ctr_disc_params cdp"
|
||||
+ " WHERE cd.ins_discipline_key = cdp.ctr_ins_discipline_key"
|
||||
@@ -36,10 +37,12 @@ var disc_key = oRs("ins_discipline_key").Value;
|
||||
var disc_omschr = oRs("ins_discipline_omschrijving").Value;
|
||||
var controle_type = oRs("ctr_disc_params_controle_type").Value;
|
||||
var ismjob = oRs("ctr_disc_params_ismjob").Value == 1;
|
||||
var mld_stdmelding_key = oRs("mld_stdmelding_key").Value;
|
||||
|
||||
var result = { disc_key: ctr_disc,
|
||||
disc_omschr: disc_omschr,
|
||||
controle_type: controle_type,
|
||||
ismjob: ismjob };
|
||||
ismjob: ismjob,
|
||||
stdmelding_key: mld_stdmelding_key };
|
||||
Response.Write(JSON.stringify(result));
|
||||
%>
|
||||
|
||||
Reference in New Issue
Block a user