FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.

svn path=/Website/trunk/; revision=34384
This commit is contained in:
Maykel Geerdink
2017-06-21 14:31:56 +00:00
parent 793d0d95f4
commit c964112693
3 changed files with 84 additions and 8 deletions

View File

@@ -47,6 +47,8 @@ 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_arr = getQParamIntArray("scen_keys", [-1]); // Scenario's
var onlyscen = getQParamInt("onlyscen", 0) == 1;
var ctrdisc_key = getQParamInt("ctrdisc_key", -1); // Ctrdiscipline
@@ -271,6 +273,25 @@ var authparamsCTRUSE = user.checkAutorisation("WEB_CTRUSE");
{ initKey: groupby,
label: L("lcl_mjb_group")
});
sql = "SELECT ins_scenario_key"
+ " , ins_scenario_omschrijving"
+ " FROM ins_scenario"
+ " WHERE ins_scenario_verwerkt IS NULL";
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
FCLTselector("scenarios",
sql,
{ label: L("lcl_mjb_scenarios"),
initKey: scen_key_arr,
multi: true,
trclass:"primsearch noxd",
emptyOption: ""
});
RWCHECKBOXTR("onlyscen", "fldonlyscen", L("lcl_mjb_onlyscen"), onlyscen, { html: " value='1' ", trclass: 'primsearch noxd'});
}
oRs.Close();
%> </table>
</td><!-- end column 2-->
</tr>

View File

@@ -72,7 +72,14 @@ 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 incbtw = getQParamInt("incbtw", 0) == 1; // Lijst inclusief BTW weergeven.
var scenarios = getQParamIntArray("scenarios", []); // Array met scenario's.
// De lege (-1) waarde verwijderen als deze er tussen zit.
var sindex = scenarios.join(",").indexOf("-1");
if (sindex > -1)
scenarios.splice(sindex, 1);
var onlyscen = getQParamInt("onlyscen", 0) == 1; // Lijst inclusief BTW weergeven.
var ctrdisc_key = getQParamInt("ctrdisc_key", -1); // Ctrdiscipline
if (ctrdisc_key > 0)
@@ -237,6 +244,21 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
url = "../mjb/mjb_dragdropyear.asp?ctrdisc_key=<%=ctrdisc_key%>";
FcltMgr.openModalDetail(url, L("lcl_mjb_dragdrop"), {callback: dragDropCallback});
}
function insAddScen(rowArray)
{
var insKeyString = getKeyString(rowArray);
var srtcontrolekeyArray = new Array();
for (var i = 0; i < rowArray.length; i++)
{
rowdata = eval('(' + rowArray[i].getAttribute("ROWDATA") + ')');
srtcontrolekeyArray[i] = rowdata.insSrtControleKey;
}
var subject = L("lcl_mjb_incl_scen");
var url = "../mjb/mjb_incl_scen.asp?ins_keys=" + insKeyString + "&srtcont_keys=" + srtcontrolekeyArray.join(",");
FcltMgr.openModalDetail(url, subject, {callback: FcltCallbackRefresh});
}
</script>
<%
} //if (outputmode == 0)
@@ -288,6 +310,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , e.fin_btwtabelwaarde_key"
+ " , e.ins_srtcontroledl_xcp_eind"
+ " , e.ctr_controle_type"
+ " , e.ins_scenario_key"
+ " , e.hasscenario"
+ " FROM (SELECT el.ins_deel_key"
+ " , el.ins_srtcontroledl_xcp_key"
+ " , el.ins_srtcontrole_omschrijving"
@@ -309,6 +333,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , el.ins_srtcontroledl_xcp_startdat"
+ " , el.ins_srtcontroledl_xcp_eind"
+ " , el.ctr_controle_type"
+ " , el.ins_scenario_key"
+ " , el.hasscenario"
+ " FROM ins_v_defined_inspect_xcp el"
+ " WHERE el.ins_srtcontrole_periode > 0"
+ " AND el.ctr_ismjob = 1"
@@ -406,6 +432,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , comp.fin_btwtabelwaarde_key"
+ " , comp.ins_srtcontroledl_xcp_eind"
+ " , comp.ctr_controle_type"
+ " , comp.ins_scenario_key"
+ " , comp.hasscenario"
+ " 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"
@@ -426,7 +454,9 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , ins_srtcontrole_afbouwtijd"
+ " , fin_btwtabelwaarde_key"
+ " , ins_srtcontroledl_xcp_eind"
+ " , ctr_controle_type)"
+ " , ctr_controle_type"
+ " , ins_scenario_key"
+ " , hasscenario)"
+ " AS (SELECT ins_deel_key"
+ " , ins_srtcontroledl_xcp_key"
+ " , ins_srtcontrole_key"
@@ -448,6 +478,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , fin_btwtabelwaarde_key"
+ " , ins_srtcontroledl_xcp_eind"
+ " , ctr_controle_type"
+ " , ins_scenario_key"
+ " , hasscenario"
+ " FROM (" + sql_componenten + ")"
+ " WHERE vervangingsjaar IS NOT NULL"
+ " UNION ALL" // latere jaren
@@ -472,6 +504,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , m.fin_btwtabelwaarde_key"
+ " , m.ins_srtcontroledl_xcp_eind"
+ " , ctr_controle_type"
+ " , ins_scenario_key"
+ " , hasscenario"
+ " FROM comps m"
+ " WHERE (m.vervangingsjaar + m.ins_srtcontrole_periode <= " + toyear + "))"
+ " SELECT *"
@@ -537,6 +571,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , ins_srtcontrole_afbouwtijd afbouwtijd"
+ " , bedrag"
+ " , cy.ctr_controle_type"
+ " , cy.ins_scenario_key"
+ " , cy.hasscenario"
+ " FROM (" + sql_yearcost + ") cy"
+ " , ins_v_deel_gegevens dg"
+ " , alg_district d"
@@ -610,6 +646,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " ELSE cv.bedrag "
+ " END bedrag"
+ " , cv.ctr_controle_type"
+ " , cv.ins_scenario_key"
+ " , cv.hasscenario"
+ " FROM (" + sql_cost_verval + ") cv";
if (!fulldetails)
@@ -647,8 +685,19 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " FROM ("
+ sql_cost
+ ") PIVOT (SUM(bedrag), SUM(orgbedrag) AS orgbedrag "
+ " FOR vervangingsjaar IN (" + jaren.join(",") + ") )"
+ " ORDER BY 1"
+ " FOR vervangingsjaar IN (" + jaren.join(",") + ") )";
// TODO: Testen of dit filter stukje klopt en uitbereiden???
if (scenarios.length > 0)
{
if (onlyscen)
sql += " WHERE ins_scenario_key IN (" + scenarios + ") AND hasscenario = 1";
else
sql += " WHERE ins_scenario_key IN (" + scenarios + ") OR hasscenario = 0";
}
//else TODO
sql += " ORDER BY 1";
for (var i = 2; i <= groupby; i++)
{
sql += "," + String(i)
@@ -681,9 +730,12 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
{
if (!fulldetails)
return "";
var lclass = oRs("ins_srtcontroledl_xcp_key").Value != null? "mjbxcp" : "mjbstd";
scen_key = oRs("ins_scenario_key").Value? oRs("ins_scenario_key").Value : -1;
var lclass = scen_key < 0 && oRs("ins_srtcontroledl_xcp_key").Value != null? "mjbxcp" : "mjbstd";
if (scen_key > 0)
lclass += " scenerized1";
if (oRs("isPlanned").Value == 1)
lclass += " mjbplanned"
lclass += " mjbplanned";
return lclass;
}
@@ -696,6 +748,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
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.
@@ -707,6 +760,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
eStart = this_ins.canInspStart;
eClose = this_ins.canInspClose;
eFinish = this_ins.canInspFinish;
eAddScen = true;
}
var data = {ePlan: ePlan, eStart: eStart, eClose: eClose, eFinish: eFinish};
return data;
@@ -923,6 +977,7 @@ 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 });
rst.addAction({ action: "insAddScen", caption: L("lcl_mjb_incl_scen"), multi: true, multiOnce: true, enabler: "eAddScen", onlyMulti: true });
}
var count = rst.processResultset();

View File

@@ -99,7 +99,7 @@ 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, 1)) <= TRUNC(sysdate) "
? " AND (TRUNC(FAC.nextcyclusdatedeel (id.ins_deel_key, isc.ins_srtcontrole_key, NULL, 1)) <= TRUNC(sysdate) "
+ " OR (SELECT idsc1.ins_deelsrtcontrole_status"
+ " FROM ins_deelsrtcontrole idsc1"
+ " WHERE idsc1.ins_deelsrtcontrole_key = (SELECT MAX(idsc2.ins_deelsrtcontrole_key)"
@@ -226,7 +226,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, 1)) <= TRUNC(sysdate) " : "");
+ (today != -1 ? " AND TRUNC(FAC.nextcyclusdatedeel (i.ins_deel_key, i.ins_srtcontrole_key, NULL, 1)) <= TRUNC(sysdate) " : "");
function fnPrefix(oRs, params)
{