diff --git a/APPL/MJB/mjb_search.asp b/APPL/MJB/mjb_search.asp index 3de5541e2d..33ba831c0e 100644 --- a/APPL/MJB/mjb_search.asp +++ b/APPL/MJB/mjb_search.asp @@ -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(); %> diff --git a/APPL/MJB/mjb_search_list.asp b/APPL/MJB/mjb_search_list.asp index ea95821e98..cf6f06a0d7 100644 --- a/APPL/MJB/mjb_search_list.asp +++ b/APPL/MJB/mjb_search_list.asp @@ -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}); + } <% } //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(); diff --git a/APPL/PDA/ins_inspect.asp b/APPL/PDA/ins_inspect.asp index ea1168b0d2..d21301b612 100644 --- a/APPL/PDA/ins_inspect.asp +++ b/APPL/PDA/ins_inspect.asp @@ -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) {