PLAT#39730 MJOB multiedit toegevoegd en de bulkactie 'herplannen taken' werkt nu met een relatief aantal jaren

svn path=/Website/trunk/; revision=35080
This commit is contained in:
2017-08-24 13:49:06 +00:00
parent b9f6defec0
commit 9a565777f1
4 changed files with 136 additions and 32 deletions

View File

@@ -123,6 +123,7 @@ function model_ins_srtcontrole()
"typ": "number",
"defaultvalue": 10,
"required": true,
"multiedit": true,
"track": true
},
"period": {
@@ -130,6 +131,7 @@ function model_ins_srtcontrole()
"label": L("ins_srtcontrole_periode"),
"typ": "float",
"required": true,
"multiedit": true,
"track": true
},
"unit": {
@@ -168,6 +170,7 @@ function model_ins_srtcontrole()
"label": L("ins_srtcontrole_kosten"),
"iscurrency": true,
"typ": "float",
"multiedit": true,
"track": true
},
"costs2": {
@@ -175,6 +178,7 @@ function model_ins_srtcontrole()
"label": L("ins_srtcontrole_kosten2"),
"iscurrency": true,
"typ": "float",
"multiedit": true,
"track": true
},
"costs3": {
@@ -182,6 +186,7 @@ function model_ins_srtcontrole()
"label": L("ins_srtcontrole_kosten3"),
"iscurrency": true,
"typ": "float",
"multiedit": true,
"track": true
},
"material": {
@@ -189,24 +194,28 @@ function model_ins_srtcontrole()
"label": L("ins_srtcontrole_materiaal"),
"iscurrency": true,
"typ": "float",
"multiedit": true,
"track": true
},
"hours": {
"dbs": "ins_srtcontrole_uren",
"label": L("ins_srtcontrole_uren"),
"typ": "float",
"multiedit": true,
"track": true
},
"enddate": {
"dbs": "ins_srtcontrole_eind",
"label": L("ins_srtcontrole_eind"),
"typ": "date",
"multiedit": true,
"track": true
},
"phasingouttime": {
"dbs": "ins_srtcontrole_afbouwtijd",
"label": L("ins_srtcontrole_afbouwtijd"),
"typ": "float",
"multiedit": true,
"track": true
},
"taskgroup": {

View File

@@ -44,7 +44,7 @@ var mjob = getFParamInt("mjob", 0) == 1;
user.auth_required_or_abort(!multi || (ins_key_arr.length == srtcont_key_arr.length));
var deelsrtcontrole_datum;
var plandatum;
var plandatum, moveyears;
var nextdate;
var deelsrtcont_key = -1;
@@ -54,7 +54,7 @@ else if (savemode == "C") // Afmelden/Afronden (Close).
deelsrtcontrole_datum = getFParamDate("deelsrtcontrole_datum", new Date);
else if (savemode == "E")
{ // Wijzigen (Edit).
// Plandatum wordt bij opmaak velden (fields) wel uit frm gehaald i.p.v. val.
plandatum = getFParamDate("plandatum");
if (multi)
abort_with_warning(L("lcl_ins_allow_multi_edit"));
@@ -67,6 +67,18 @@ else if (savemode == "D") // Delete (Move back to original year).
{
var dlsrtcont_key_arr = getFParamIntArray("dlsrtcont_key_arr", []); // Inspecties
}
else if (savemode == "R")
{
moveyears = getFParamInt("plandatum");
if (multi || isNaN(moveyears) || moveyears % 1 !== 0)
{
Response.Clear();
Response.Write(JSON.stringify({ success: false, savemode: "R", warning: "" }));
Response.End();
}
deelsrtcont_key = getFParamInt("deelsrtcont_key", -1); // Specifieke inspectie die gewijzigd is.
var silent = true;
}
var warning = "";
var result = {};
@@ -88,6 +100,9 @@ for (var i = 0; i < ins_key_arr.length; i++)
? " AND idsc2.ins_scenario_key = " + scen_key_arr[i]
: " AND idsc2.ins_scenario_key = 1")
+ " ) ins_deelsrtcontrole_datum"
+ (deelsrtcont_key > 0
? " , idsc.ins_deelsrtcontrole_plandatum"
: "")
+ " , xcp.ins_srtcontrole_eenheid eenheid"
+ " , xcp.ins_srtcontrole_mode"
+ " , idsc.ins_deelsrtcontrole_status"
@@ -126,6 +141,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
var ins_deelsrtcontrole_key = oRs("ins_deelsrtcontrole_key").Value;
var isc_options = oRs("options").Value;
var disc_oms = oRs("ins_discipline_omschrijving").Value;
var deelsrtcontrole_plandatum = (deelsrtcont_key > 0 ? oRs("ins_deelsrtcontrole_plandatum").Value : -1);
var this_ins = ins.func_enabled_deel(ins_key_arr[i],
{srtcont_key: srtcont_key_arr[i],
@@ -135,6 +151,47 @@ for (var i = 0; i < ins_key_arr.length; i++)
canMsuEdit = savemode == "E" && this_ins.canMsuEdit;
oRs.Close();
if (savemode == "R")
{
var minyear = S("mjb_freeze_year") || (new Date()).getFullYear();
if (ins_deelsrtcontrole_status == 0) // Er is nog geen inspectie geweest.
{
if (deelsrtcontrole_plandatum != -1)
plandatum = new Date(deelsrtcontrole_plandatum);
else
continue;
savemode = "E"; // bestaat al dus 'edit'
}
else
{
sql = "SELECT ins.nextcyclusdate ("+ins_key_arr[i]+", "+srtcont_key_arr[i]+", 1) nextdate FROM DUAL";
oRs_nextdate = Oracle.Execute(sql);
plandatum = new Date(oRs_nextdate("nextdate").Value);
oRs_nextdate.Close();
if (ins_deelsrtcontrole_status == -1)
{
var aanmaakyear = ins_deel_aanmaak.getFullYear();
minyear = Math.max(minyear, aanmaakyear);
}
else if (ins_deelsrtcontrole_status == 5 || ins_deelsrtcontrole_status == 6)
{
var lastinsdate = new Date(ins_deelsrtcontrole_datum_max);
var lastinsyear = lastinsdate.getFullYear();
minyear = Math.max(minyear, lastinsyear);
}
else // ins_deelsrtcontrole_status == 2
continue;
savemode = "P"; // moet nog ingepland worden
}
var newyear = plandatum.getFullYear() + moveyears;
if (moveyears === 0 || newyear < minyear)
continue;
plandatum = new Date(newyear, 11, 31);
}
// Inplannen (dlsrtcont_key = -1).
// Het is de eerste inspectie of de laatste inspectie moet verwerkt(6) zijn, anders kan de inspectie niet ingepland worden.
if (savemode == "P" && !this_ins.canInspPlan) // Inplannen.
@@ -292,6 +349,13 @@ for (var i = 0; i < ins_key_arr.length; i++)
tobehandled++;
}
if (tobehandled == 0 && silent)
{
Response.Clear();
Response.Write(JSON.stringify({ success: false, savemode: savemode, warning: "" }));
Response.End();
}
else
user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel en enkele niet
function saveFlexKenmerkenInspection(pdlsrtcont_key, pinsPresent, pdelete)
@@ -726,7 +790,6 @@ else if (savemode == "E")
var srtcontrole_type = oRsN("ctr_disc_params_controle_type").Value;
var thisyear = (new Date()).getFullYear();
plandatum = getFParamDate("plandatum");
var plandatum_jaar = plandatum.getFullYear();
// De inspectiedatum voor taken die nog nooit een inspectie hebben gehad is voor een Vervanging(2) of Certificering(3)
// een periode verder dan de registratie/aanmaak datum van het object.
@@ -778,7 +841,7 @@ else if (savemode == "E")
if (isScenario && mjobdelete)
fields.push( { dbs: "ins_deelsrtcontrole_plandatum", typ: "datetime", val: "", track: L("lcl_opdr_plandate") } );
else
fields.push( { dbs: "ins_deelsrtcontrole_plandatum", typ: "datetime", frm: "plandatum", track: L("lcl_opdr_plandate") } );
fields.push( { dbs: "ins_deelsrtcontrole_plandatum", typ: "datetime", val: plandatum, track: L("lcl_opdr_plandate") } );
if (getDeelsrtcontroleDate)
fields.push( { dbs: "ins_deelsrtcontrole_datum", typ: "datetime", val: deelsrtcontrole_datum, track: L("lcl_ins_controle_datum") } );

View File

@@ -37,34 +37,42 @@ if (ctrdisc_key > 0)
return false;
var year = $("#dragdropyear").val();
var today_year = (new Date()).getFullYear();
if (year < today_year || year >= (today_year + <%=S("mjb_show_years")%>))
var thisyear = (new Date()).getFullYear();
var minyear = <%=S("mjb_freeze_year")%> || thisyear;
var toyear = thisyear + <%=S("mjb_show_years")%>;
var movemaxyears = toyear - minyear;
// minyear = inclusive
// toyear = exclusive -> consistent with mjb_search.asp ('toyear')
if ( year <= -movemaxyears ||
(year >= movemaxyears && year < minyear) ||
year >= toyear
)
{
FcltMgr.alert(L("lcl_mjb_not_overyear").format(<%=S("mjb_show_years")%>));
FcltMgr.alert(L("lcl_mjb_between_years").format(minyear, toyear-1, movemaxyears-1));
return false;
}
FcltMgr.closeDetail(window, { year: $("#dragdropyear").val() } );
}
$(document).ready(function() {
$("#dragdropyear").focus();
});
</script>
</head>
<body class="modal" id="mod_mjbdragdropyears">
<form id="dragdropyearsform" name="dragdropyearsform" action="mld_close_save.asp?x=x" method="post">
<form id="dragdropyearsform" name="dragdropyearsform" action="javascript:mjb_submit()" method="post">
<%
BLOCK_START("mldDragDropYears", L("lcl_shared_needed_info"));
//RWFIELDTR("dragdropyear", "fld", L("lcl_mjb_years"), "", { required: true, datatype: "number" })
var jaar = new Date().getFullYear();
var sqljaren = [];
for (var i = 0; i < S("mjb_show_years"); i++)
sqljaren.push("SELECT {0}, '{0}' FROM DUAL".format(jaar + i));
FCLTselector("dragdropyear",
sqljaren.join(" UNION "),
{ initKey: jaar + 5,
label: L("lcl_mjb_year")
});
RWFIELDTR("dragdropyear", "fld", L("lcl_mjb_years"), "", { required: true, datatype: "number" })
BLOCK_END();
buttons = [];

View File

@@ -145,19 +145,37 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
FcltMgr.openModalDetail(url, { titel: L("lcl_ins_change_xcp")+" "+ttl, callback: <%=bld_key > 0? "FcltMgr.reload ": "null"%> });
}
function moveplan(evt, ins_key, srtcont_key, scen_key, jaar)
function moveplan(evt, ins_key, srtcont_key, scen_key, dlsrtcont_key, jaar)
{
FcltMgr.stopPropagation(evt);
if (!jaar)
return;
var data = { savemode: "P", // plan-mode
var minjaar = <%=S("mjb_freeze_year")%> || (new Date()).getFullYear();
var savemode, plandatum;
if (jaar >= minjaar && jaar < (minjaar + <%=S("mjb_show_years")%>))
{
savemode = "P"; // (absolute) plan-mode
plandatum = new Date(jaar, 11, 31).getTime();
}
else if (jaar > -<%=S("mjb_show_years")%> && jaar < <%=S("mjb_show_years")%>)
{
savemode = "R" // relative plan-mode
plandatum = jaar;
}
else
return;
var data = { savemode : savemode,
ins_keys : ins_key,
srtcont_key_arr : srtcont_key,
deelsrtcont_key : dlsrtcont_key,
scen_key_arr : scen_key,
plandatum: new Date(jaar, 11, 31).getTime(),
plandatum : plandatum,
mjob : 1
};
protectRequest.dataToken(data);
$.post("../ins/ins_inspect_save.asp"
, data
@@ -165,6 +183,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
, "json"
);
}
$(function ()
{
$('td.mjbjaar').droppable(
@@ -176,7 +195,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
var $th = $td.closest('table').find('th').eq($td.index()); // werkt omdat we geen colspan's hebben
var row = $td.closest('tr')[0];
var insData = eval("(" + row.getAttribute("ROWDATA") + ")");
moveplan(null, insData.insKey, insData.insSrtControleKey, insData.insScenKey, $th.text());
moveplan(null, insData.insKey, insData.insSrtControleKey, insData.insScenKey, null, $th.text());
}
});
@@ -234,24 +253,29 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
var mjbDeelKeyArray = [];
var mjbSrtContrKeyArray = [];
var mjbDlSrtContKeyArr = [];
var mjbScenKeyArray = [];
function dragDropCallback(json, textStatus, tweede)
{
for (var i = 0; i < mjbDeelKeyArray.length; i++)
{
moveplan(null, mjbDeelKeyArray[i], mjbSrtContrKeyArray[i], mjbScenKeyArray[i], json.year)
moveplan(null, mjbDeelKeyArray[i], mjbSrtContrKeyArray[i], mjbScenKeyArray[i], mjbDlSrtContKeyArr[i], json.year);
}
FcltCallbackRefresh(json, textStatus);
}
function mjb_dragdrop(rowArray, isMulti)
{
var key;
mjbDeelKeyArray = [];
mjbSrtContrKeyArray = [];
mjbDlSrtContKeyArr = [];
mjbScenKeyArray = [];
for (var i = 0; i < rowArray.length; i++)
{
rowdata = eval('(' + rowArray[i].getAttribute("ROWDATA") + ')');
mjbDeelKeyArray.push(rowdata.insKey);
mjbSrtContrKeyArray.push(rowdata.insSrtControleKey);
mjbDlSrtContKeyArr.push(rowdata.insDeelSrtContrKey);
mjbScenKeyArray.push(rowdata.insScenKey)
}
url = "../mjb/mjb_dragdropyear.asp?ctrdisc_key=<%=ctrdisc_key%>&ins_keys=" + mjbDeelKeyArray.join(",");