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", "typ": "number",
"defaultvalue": 10, "defaultvalue": 10,
"required": true, "required": true,
"multiedit": true,
"track": true "track": true
}, },
"period": { "period": {
@@ -130,6 +131,7 @@ function model_ins_srtcontrole()
"label": L("ins_srtcontrole_periode"), "label": L("ins_srtcontrole_periode"),
"typ": "float", "typ": "float",
"required": true, "required": true,
"multiedit": true,
"track": true "track": true
}, },
"unit": { "unit": {
@@ -168,6 +170,7 @@ function model_ins_srtcontrole()
"label": L("ins_srtcontrole_kosten"), "label": L("ins_srtcontrole_kosten"),
"iscurrency": true, "iscurrency": true,
"typ": "float", "typ": "float",
"multiedit": true,
"track": true "track": true
}, },
"costs2": { "costs2": {
@@ -175,6 +178,7 @@ function model_ins_srtcontrole()
"label": L("ins_srtcontrole_kosten2"), "label": L("ins_srtcontrole_kosten2"),
"iscurrency": true, "iscurrency": true,
"typ": "float", "typ": "float",
"multiedit": true,
"track": true "track": true
}, },
"costs3": { "costs3": {
@@ -182,6 +186,7 @@ function model_ins_srtcontrole()
"label": L("ins_srtcontrole_kosten3"), "label": L("ins_srtcontrole_kosten3"),
"iscurrency": true, "iscurrency": true,
"typ": "float", "typ": "float",
"multiedit": true,
"track": true "track": true
}, },
"material": { "material": {
@@ -189,24 +194,28 @@ function model_ins_srtcontrole()
"label": L("ins_srtcontrole_materiaal"), "label": L("ins_srtcontrole_materiaal"),
"iscurrency": true, "iscurrency": true,
"typ": "float", "typ": "float",
"multiedit": true,
"track": true "track": true
}, },
"hours": { "hours": {
"dbs": "ins_srtcontrole_uren", "dbs": "ins_srtcontrole_uren",
"label": L("ins_srtcontrole_uren"), "label": L("ins_srtcontrole_uren"),
"typ": "float", "typ": "float",
"multiedit": true,
"track": true "track": true
}, },
"enddate": { "enddate": {
"dbs": "ins_srtcontrole_eind", "dbs": "ins_srtcontrole_eind",
"label": L("ins_srtcontrole_eind"), "label": L("ins_srtcontrole_eind"),
"typ": "date", "typ": "date",
"multiedit": true,
"track": true "track": true
}, },
"phasingouttime": { "phasingouttime": {
"dbs": "ins_srtcontrole_afbouwtijd", "dbs": "ins_srtcontrole_afbouwtijd",
"label": L("ins_srtcontrole_afbouwtijd"), "label": L("ins_srtcontrole_afbouwtijd"),
"typ": "float", "typ": "float",
"multiedit": true,
"track": true "track": true
}, },
"taskgroup": { "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)); user.auth_required_or_abort(!multi || (ins_key_arr.length == srtcont_key_arr.length));
var deelsrtcontrole_datum; var deelsrtcontrole_datum;
var plandatum; var plandatum, moveyears;
var nextdate; var nextdate;
var deelsrtcont_key = -1; var deelsrtcont_key = -1;
@@ -54,7 +54,7 @@ else if (savemode == "C") // Afmelden/Afronden (Close).
deelsrtcontrole_datum = getFParamDate("deelsrtcontrole_datum", new Date); deelsrtcontrole_datum = getFParamDate("deelsrtcontrole_datum", new Date);
else if (savemode == "E") else if (savemode == "E")
{ // Wijzigen (Edit). { // Wijzigen (Edit).
// Plandatum wordt bij opmaak velden (fields) wel uit frm gehaald i.p.v. val. plandatum = getFParamDate("plandatum");
if (multi) if (multi)
abort_with_warning(L("lcl_ins_allow_multi_edit")); 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 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 warning = "";
var result = {}; 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 = " + scen_key_arr[i]
: " AND idsc2.ins_scenario_key = 1") : " AND idsc2.ins_scenario_key = 1")
+ " ) ins_deelsrtcontrole_datum" + " ) ins_deelsrtcontrole_datum"
+ (deelsrtcont_key > 0
? " , idsc.ins_deelsrtcontrole_plandatum"
: "")
+ " , xcp.ins_srtcontrole_eenheid eenheid" + " , xcp.ins_srtcontrole_eenheid eenheid"
+ " , xcp.ins_srtcontrole_mode" + " , xcp.ins_srtcontrole_mode"
+ " , idsc.ins_deelsrtcontrole_status" + " , 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 ins_deelsrtcontrole_key = oRs("ins_deelsrtcontrole_key").Value;
var isc_options = oRs("options").Value; var isc_options = oRs("options").Value;
var disc_oms = oRs("ins_discipline_omschrijving").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], var this_ins = ins.func_enabled_deel(ins_key_arr[i],
{srtcont_key: srtcont_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; canMsuEdit = savemode == "E" && this_ins.canMsuEdit;
oRs.Close(); 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). // Inplannen (dlsrtcont_key = -1).
// Het is de eerste inspectie of de laatste inspectie moet verwerkt(6) zijn, anders kan de inspectie niet ingepland worden. // 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. if (savemode == "P" && !this_ins.canInspPlan) // Inplannen.
@@ -292,7 +349,14 @@ for (var i = 0; i < ins_key_arr.length; i++)
tobehandled++; tobehandled++;
} }
user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel en enkele niet 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) 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 srtcontrole_type = oRsN("ctr_disc_params_controle_type").Value;
var thisyear = (new Date()).getFullYear(); var thisyear = (new Date()).getFullYear();
plandatum = getFParamDate("plandatum");
var plandatum_jaar = plandatum.getFullYear(); var plandatum_jaar = plandatum.getFullYear();
// De inspectiedatum voor taken die nog nooit een inspectie hebben gehad is voor een Vervanging(2) of Certificering(3) // 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. // een periode verder dan de registratie/aanmaak datum van het object.
@@ -778,13 +841,13 @@ else if (savemode == "E")
if (isScenario && mjobdelete) if (isScenario && mjobdelete)
fields.push( { dbs: "ins_deelsrtcontrole_plandatum", typ: "datetime", val: "", track: L("lcl_opdr_plandate") } ); fields.push( { dbs: "ins_deelsrtcontrole_plandatum", typ: "datetime", val: "", track: L("lcl_opdr_plandate") } );
else 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) if (getDeelsrtcontroleDate)
fields.push( { dbs: "ins_deelsrtcontrole_datum", typ: "datetime", val: deelsrtcontrole_datum, track: L("lcl_ins_controle_datum") } ); fields.push( { dbs: "ins_deelsrtcontrole_datum", typ: "datetime", val: deelsrtcontrole_datum, track: L("lcl_ins_controle_datum") } );
if (canMsuEdit) if (canMsuEdit)
fields.push( { dbs: "ins_controlemode_key", typ: "key", frm: "sel_controlemode", track: L("lcl_ins_controle_mode"), foreign: "ins_controlemode" } ); fields.push( { dbs: "ins_controlemode_key", typ: "key", frm: "sel_controlemode", track: L("lcl_ins_controle_mode"), foreign: "ins_controlemode" } );
var insUpd = buildTrackingUpdate("ins_deelsrtcontrole", " ins_deelsrtcontrole_key = " + ingesloten[0].dlsrtcont_key, fields); var insUpd = buildTrackingUpdate("ins_deelsrtcontrole", " ins_deelsrtcontrole_key = " + ingesloten[0].dlsrtcont_key, fields);
var err = Oracle.Execute(insUpd.sql, true); var err = Oracle.Execute(insUpd.sql, true);

View File

@@ -37,34 +37,42 @@ if (ctrdisc_key > 0)
return false; return false;
var year = $("#dragdropyear").val(); var year = $("#dragdropyear").val();
var today_year = (new Date()).getFullYear(); var thisyear = (new Date()).getFullYear();
if (year < today_year || year >= (today_year + <%=S("mjb_show_years")%>)) 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; return false;
} }
FcltMgr.closeDetail(window, { year: $("#dragdropyear").val() } ); FcltMgr.closeDetail(window, { year: $("#dragdropyear").val() } );
} }
$(document).ready(function() {
$("#dragdropyear").focus();
});
</script> </script>
</head> </head>
<body class="modal" id="mod_mjbdragdropyears"> <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")); 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", RWFIELDTR("dragdropyear", "fld", L("lcl_mjb_years"), "", { required: true, datatype: "number" })
sqljaren.join(" UNION "),
{ initKey: jaar + 5,
label: L("lcl_mjb_year")
});
BLOCK_END(); BLOCK_END();
buttons = []; 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"%> }); 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); FcltMgr.stopPropagation(evt);
if (!jaar) if (!jaar)
return; return;
var data = { savemode: "P", // plan-mode var minjaar = <%=S("mjb_freeze_year")%> || (new Date()).getFullYear();
ins_keys: ins_key, var savemode, plandatum;
srtcont_key_arr: srtcont_key,
scen_key_arr: scen_key, if (jaar >= minjaar && jaar < (minjaar + <%=S("mjb_show_years")%>))
plandatum: new Date(jaar, 11, 31).getTime(), {
mjob: 1 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 : plandatum,
mjob : 1
}; };
protectRequest.dataToken(data); protectRequest.dataToken(data);
$.post("../ins/ins_inspect_save.asp" $.post("../ins/ins_inspect_save.asp"
, data , data
@@ -165,6 +183,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
, "json" , "json"
); );
} }
$(function () $(function ()
{ {
$('td.mjbjaar').droppable( $('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 $th = $td.closest('table').find('th').eq($td.index()); // werkt omdat we geen colspan's hebben
var row = $td.closest('tr')[0]; var row = $td.closest('tr')[0];
var insData = eval("(" + row.getAttribute("ROWDATA") + ")"); 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());
} }
}); });
@@ -232,26 +251,31 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
}); });
}) })
var mjbDeelKeyArray = []; var mjbDeelKeyArray = [];
var mjbSrtContrKeyArray = []; var mjbSrtContrKeyArray = [];
var mjbScenKeyArray = []; var mjbDlSrtContKeyArr = [];
var mjbScenKeyArray = [];
function dragDropCallback(json, textStatus, tweede) function dragDropCallback(json, textStatus, tweede)
{ {
for (var i = 0; i < mjbDeelKeyArray.length; i++) 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); FcltCallbackRefresh(json, textStatus);
} }
function mjb_dragdrop(rowArray, isMulti) function mjb_dragdrop(rowArray, isMulti)
{ {
var key; mjbDeelKeyArray = [];
mjbSrtContrKeyArray = [];
mjbDlSrtContKeyArr = [];
mjbScenKeyArray = [];
for (var i = 0; i < rowArray.length; i++) for (var i = 0; i < rowArray.length; i++)
{ {
rowdata = eval('(' + rowArray[i].getAttribute("ROWDATA") + ')'); rowdata = eval('(' + rowArray[i].getAttribute("ROWDATA") + ')');
mjbDeelKeyArray.push(rowdata.insKey); mjbDeelKeyArray.push(rowdata.insKey);
mjbSrtContrKeyArray.push(rowdata.insSrtControleKey); mjbSrtContrKeyArray.push(rowdata.insSrtControleKey);
mjbDlSrtContKeyArr.push(rowdata.insDeelSrtContrKey);
mjbScenKeyArray.push(rowdata.insScenKey) mjbScenKeyArray.push(rowdata.insScenKey)
} }
url = "../mjb/mjb_dragdropyear.asp?ctrdisc_key=<%=ctrdisc_key%>&ins_keys=" + mjbDeelKeyArray.join(","); url = "../mjb/mjb_dragdropyear.asp?ctrdisc_key=<%=ctrdisc_key%>&ins_keys=" + mjbDeelKeyArray.join(",");