FSN#36795: Planning, start en afronden niet altijd wenselijk bij terugkerende taken.

svn path=/Website/trunk/; revision=31489
This commit is contained in:
Maykel Geerdink
2016-11-16 09:28:59 +00:00
parent d6b3e7c945
commit 86d681b931
8 changed files with 123 additions and 79 deletions

View File

@@ -553,7 +553,7 @@ ins = {checkAutLevel:
+ " , insp.vervaldatum"
+ " , insp.isc_mode"
+ " , insp.ctr_discipline_key"
+ " , onlyfinish"
+ " , options"
// Moment inspectie pas kunnen opslaan op of na geplande inspectiedatum.
// Is in de moment modus de invoer na het volgende berekende inspectietijdstip? Voor interval modus is dit altijd het geval.
// Als er nog nooit is geinspecteerd en er is er nog geen ingepland dan is het ook ok.
@@ -591,7 +591,7 @@ ins = {checkAutLevel:
+ " , xcp.ins_srtcontroledl_xcp_eind vervaldatum"
+ " , isc.ins_srtcontrole_mode isc_mode"
+ " , isc.ctr_discipline_key"
+ " , isc.ins_srtcontrole_onlyfinish onlyfinish"
+ " , isc.ins_srtcontrole_options options"
+ " , COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, isc.ins_srtcontrole_eenheid) eenheid"
+ " , idsc.ins_deelsrtcontrole_plandatum plandatum"
+ " , CASE"
@@ -634,7 +634,7 @@ ins = {checkAutLevel:
var ins_deelsrtcontrole_status = oRs("ins_deelsrtcontrole_status").Value != null? oRs("ins_deelsrtcontrole_status").Value : -1;
var vervaldatum = oRs("vervaldatum").Value != null? new Date(oRs("vervaldatum").Value) : null;
var ctr_discipline_key = oRs("ctr_discipline_key").Value;
var onlyfinish = oRs("onlyfinish").Value == 1;
var isc_options = oRs("options").Value;
var vervallen = vervaldatum != null && vervaldatum < new Date();
var invoerAfterNext = oRs("invoerAfterNext").Value == 1;
oRs.Close();
@@ -655,6 +655,7 @@ ins = {checkAutLevel:
iresult.canShowXcp = iresult.hasCTRRead && iresult.canRead("WEB_INSMAN"); // Exceptions (xcp) waarden inspecties/taken bekijken (waarden in ins_srtcontroledl_xcp tabel).
iresult.canChangeXcp = iresult.hasCTRWrite && iresult.canWrite("WEB_INSMAN"); // Exceptions (xcp) waarden inspecties/taken wijzigen (waarden in ins_srtcontroledl_xcp tabel).
// Een nieuwe inspectie mag pas weer aangemaakt worden als de laatste inspectie Afgerond(6) is.
// Als de inspectie vervallen is moet je alleen nog de lopende inspecties (ingepland of later) kunnen gereedmelden en/of afronden,
// zodat deze inspectie afgerond kan worden. Nieuwe inspectie kunnen nooit meer beginnen.
// Eerste inspectie of verwerkte inspectie kan niet gewijzigd worden.
@@ -667,22 +668,29 @@ ins = {checkAutLevel:
iresult.canInspPlan = iresult.readuse && !vervallen &&
(ins_deelsrtcontrole_status == -1 || ins_deelsrtcontrole_status == 6) &&
actief && iresult.hasCTRWrite &&
!onlyfinish;
((isc_options & 1) == 1);
// Bij eerste inspectie, geplande inspectie of verwerkte inspectie kan er gestart worden.
iresult.canInspStart = iresult.readuse && invoerAfterNext && !vervallen &&
(ins_deelsrtcontrole_status <= 0 || ins_deelsrtcontrole_status == 6) &&
actief && iresult.hasCTRWrite &&
!onlyfinish;
((isc_options & 2) == 2);
// Bij eerste inspectie, geplande inspectie, gestarte inspectie of verwerkte inspectie kan er gereedgemeld/afgerond worden.
iresult.canInspClose = iresult.readuse && invoerAfterNext &&
((!vervallen && (ins_deelsrtcontrole_status < 5 || ins_deelsrtcontrole_status == 6)) ||
(ins_deelsrtcontrole_status == 0 || ins_deelsrtcontrole_status == 2)) &&
actief && iresult.hasCTRWrite &&
!onlyfinish;
// Alleen als de inspectie gereedgemeld is kan afgerond worden.
((isc_options & 4) == 4);
// Afronden kan vanuit elke status. Alleen vanuit status Gereed gemeld/Afgemeld(5) kan het zonder gegevens in te vullen.
iresult.canInspFinish = iresult.readuse && invoerAfterNext &&
(ins_deelsrtcontrole_status == 5 || ((ins_deelsrtcontrole_status == -1 || ins_deelsrtcontrole_status == 6) && onlyfinish)) &&
actief && iresult.hasCTRWrite;
//(ins_deelsrtcontrole_status == 5 ||
// (ins_deelsrtcontrole_status < 5 && ((isc_options & 4) != 4))) &&
actief && iresult.hasCTRWrite &&
((isc_options & 8) == 8);
// Alleen als de inspectie gereedgemeld is kan SNEL afgerond worden zonder gegevens in te vullen.
iresult.canInspFastFinish = iresult.readuse && invoerAfterNext &&
(ins_deelsrtcontrole_status == 5) &&
actief && iresult.hasCTRWrite &&
((isc_options & 8) == 8);
}
else
{
@@ -994,7 +1002,7 @@ ins = {checkAutLevel:
+ " , inspectie_eind"
+ " , ins_srtcontrole_omschrijving"
+ " , ins_srtcontrole_key"
+ " , onlyfinish"
+ " , options"
+ " , ins_deelsrtcontrole_status"
+ " , ins_deelsrtcontrole_plandatum"
+ " , ctr_controle_type"
@@ -1015,10 +1023,12 @@ ins = {checkAutLevel:
+ " WHERE idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
+ " AND idsc.ins_deelsrtcontrole_status IN (5, 6)"
+ " AND idsc.ins_deel_key = di.ins_deel_key) inspectie_date"
+ " , di.ins_srtcontroledl_xcp_startdat"
+ " , NULL nonext"
+ " , di.ins_srtcontrole_eenheid inspectie_eenheid"
+ " , di.ins_srtcontrole_eind inspectie_eind"
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
+ " , di.ins_srtcontrole_options options"
+ " , di.ins_srtcontrole_key"
+ " , -1 ins_deelsrtcontrole_status"
+ " , NULL ins_deelsrtcontrole_key"
@@ -1083,13 +1093,13 @@ ins = {checkAutLevel:
+ " , di.ins_srtcontrole_periode"
+ " , di.ins_srtcontrole_bits"
+ " , 1) inspectie_next"
+ " , ins_srtcontroledl_xcp_startdat"
+ " , di.ins_srtcontroledl_xcp_startdat"
+ " , CASE WHEN " + lastinspect + " IS NULL THEN 1 ELSE 0 END nonext"
+ " , di.ins_srtcontrole_eenheid inspectie_eenheid"
+ " , di.ins_srtcontrole_eind inspectie_eind"
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
+ " , di.ins_srtcontrole_key"
+ " , di.ins_srtcontrole_onlyfinish onlyfinish"
+ " , di.ins_srtcontrole_options options"
+ " , -1 ins_deelsrtcontrole_status"
+ " , NULL ins_deelsrtcontrole_key"
+ " , NULL ins_deelsrtcontrole_plandatum"
@@ -1154,7 +1164,7 @@ ins = {checkAutLevel:
+ " , di.ins_srtcontrole_eind inspectie_eind"
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
+ " , di.ins_srtcontrole_key"
+ " , di.ins_srtcontrole_onlyfinish onlyfinish"
+ " , di.ins_srtcontrole_options options"
+ " , idsc.ins_deelsrtcontrole_status"
+ " , idsc.ins_deelsrtcontrole_key"
+ " , CASE"
@@ -1204,7 +1214,7 @@ ins = {checkAutLevel:
+ " , ispn.ins_srtcontroledl_xcp_startdat"
+ " , ispn.ins_srtcontrole_omschrijving"
+ " , ispn.ins_srtcontrole_key"
+ " , ispn.onlyfinish"
+ " , ispn.options"
+ " , ispn.ins_deelsrtcontrole_status"
+ " , ispn.ins_deelsrtcontrole_plandatum"
+ " , ispn.inspectie_eind"

View File

@@ -31,7 +31,7 @@ FCLTHeader.Requires({ plugins: ["jQuery", "suggest", "kenmerk"],
var ins_key_arr = getQParamIntArray("ins_keys");
var srtcont_key_arr = getQParamIntArray("srtcont_keys");
var deelsrtcont_arr = getQParamIntArray("deelsrtcont_keys", -1); // Bestaande inspectie indien meegegeven.
var multi = ins_key_arr.length > 1;
var multi = ins_key_arr.length > 1; // Er zijn meerdere object keys meegegeven.
var insPlan = getQParamInt("plan", 0) == 1; // Inplannen inspectie.
var insClose = getQParamInt("close", 0) == 1; // Afmelden of afronden inspectie.
@@ -48,7 +48,11 @@ var canMsuEdit = false; // Alleen voor het wijzigen van inspectie (insEdit). Er
// Bepaal de objecten/delen in de selectie die
// ook echt ingepland kunnen of mogen worden.
var ctrdisc_key = -1;
var mayNotClose = false;
var canClose = false;
var canFinish = false;
// Alle objecten moeten Gereed gemeld(5) of Afgerond(6) kunnen worden voordat de button zichtbaar mag worden.
var canClose = true;
var canFinish = true;
for (var i = 0; i < ins_key_arr.length; i++)
{
var this_ins = ins.func_enabled_deel(ins_key_arr[i],
@@ -61,7 +65,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
+ " , idsc.ins_deelsrtcontrole_status"
+ " , xcp.ins_srtcontroledl_xcp_eind vervaldatum"
+ " , isc.ctr_discipline_key"
+ " , isc.ins_srtcontrole_onlyfinish onlyfinish"
+ " , isc.ins_srtcontrole_options options"
+ " FROM ins_srtcontrole isc"
+ " , ins_deelsrtcontrole idsc"
+ " , ins_srtcontroledl_xcp xcp"
@@ -84,7 +88,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
var ins_deelsrtcontrole_status = oRs("ins_deelsrtcontrole_status").Value != null? oRs("ins_deelsrtcontrole_status").Value : -1;
var vervaldatum = oRs("vervaldatum").Value != null? new Date(oRs("vervaldatum").Value) : null;
var vervallen = vervaldatum != null && vervaldatum < new Date();
var onlyfinish = oRs("onlyfinish").Value == 1;
var isc_options = oRs("options").Value;
oRs.Close();
// Het is de eerste inspectie of de laatste inspectie moet verwerkt(6) zijn, anders kan de inspectie niet ingepland worden.
@@ -93,9 +97,9 @@ for (var i = 0; i < ins_key_arr.length; i++)
continue;
}
// Afgemelde inspecties kunnen niet nog eens afgemeld worden. Deze eruit filteren. Ze kunnen wel gewijzigd worden (stuk voor stuk).
if (insClose && !(this_ins.canInspClose || (onlyfinish && this_ins.canInspFinish)))
{ // De inspectie kan niet afgemeld worden. Overslaan.
// Kan de inspectie gereed gemeld/afgemeld of afgerond woden?
if (insClose && !this_ins.canInspClose && !this_ins.canInspFinish)
{ // De inspectie kan niet afgemeld/afgerond worden. Overslaan.
continue;
}
@@ -113,12 +117,19 @@ for (var i = 0; i < ins_key_arr.length; i++)
ingesloten.push(ins_key_arr[i]);
ingeslotensc.push(srtcont_key_arr[i]);
ingeslotendsc.push(ins_deelsrtcontrole_key);
mayNotClose = mayNotClose || onlyfinish; // Als 1 van de srtcontroles onlyfinish is, dan kan er niet gereed gemeld worden.
// Als 1 van de srtcontroles niet gereed te melden is, dan kan er niet gereed gemeld worden en moet de button niet getoond worden.
canClose = canClose && this_ins.canInspClose;
// Als 1 van de srtcontroles niet af te ronden is, dan kan er niet afgerond worden en moet de button niet getoond worden.
canFinish = canFinish && this_ins.canInspFinish;
tobehandled++;
}
if (!canClose && !canFinish)
// Als de buttons niet zichtbaar zijn heb ik niets te doen.
tobehandled = 0;
lcl.set_dialect(ctrdisc_key, "INS_TAB_DISCIPLINE_KEY");
user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel en enkele niet
var desc = "";
if (ins_key_arr.length == 1)
{
sql = "SELECT d.ins_deel_omschrijving" // identificatie
@@ -448,9 +459,10 @@ if (ins_key_arr.length == 1)
buttons.push({title: (insPlan? L("lcl_ins_schedule") : L("lcl_submit")), icon: "opslaan.png", action:"ins_submit(0)"});
if (insClose)
{
if (!mayNotClose)
if (canClose)
buttons.push({title: L("lcl_ins_close"), icon: "inspfinish.png", action:"ins_submit(0)"});
buttons.push({title: L("lcl_ins_finish"), icon: "close.png", action: "ins_submit(1)"});
if (canFinish)
buttons.push({title: L("lcl_ins_finish"), icon: "close.png", action: "ins_submit(1)"});
}
if (canMelding)
buttons.push({title: L("lcl_do_amelding_hint"), action: "ins_melding()", icon: "doemelding.png" });
@@ -475,7 +487,10 @@ if (ins_key_arr.length == 1)
<input type="hidden" name="deelsrtcont_key" id="deelsrtcont_key" value="<%=ingeslotendsc[0]%>">
<% } %>
<input type="hidden" name="finish" id="finish" value="0">
<% var blocktext = (insPlan? L("lcl_ins_schedule") : (insClose? L("lcl_ins_stop") : L("lcl_details") ));
<% var blocktext = (insPlan? L("lcl_ins_schedule") : (insClose? L("lcl_ins_stop") : L("lcl_details") ))
+ (multi
? " (" + L("lcl_count") + ":" + tobehandled + ")"
: "");
BLOCK_START("insMultiEdit", blocktext);
if (ins_key_arr.length == 1)
{
@@ -585,7 +600,7 @@ if (ins_key_arr.length == 1)
var dag_na_lastinspectdatum;
var aantal_dmj_eenheid;
var minDate = aanmaakdatum; // Als er nog geen inspecties zijn geweest dan is de aanmaakdatum de minimale datum.
if (!oRs.eof && oRs("lastinspectdatum").Value)
if (!oRs.eof && oRs("lastinspectdatum").Value != null)
{
lastinspectdatum = new Date(oRs("lastinspectdatum").Value); // Kan uiterlijk vandaag zijn.
dag_na_lastinspectdatum = new Date(oRs("dag_na_lastinspectdatum").Value); // Kan uiterlijk morgen zijn.

View File

@@ -58,7 +58,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
oRs.Close();
// Deze actie rond alleen afgemelde inspecties af.
if (this_ins.canInspFinish)
if (this_ins.canInspFastFinish)
{ // Alle Arrays zijn even groot.
ingeslotendsc.push(dlsrtcont_key_arr[i]);
tobefinished++;

View File

@@ -108,21 +108,31 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
function insFinish(row)
{
FcltMgr.confirm(L("lcl_ins_finishing"), function() {
var inskey = row.getAttribute("ROWKEY");
var rowdata = eval("(" + row.getAttribute("ROWDATA") + ")");
if (rowdata) {
deellsrtcontkey = rowdata.insDeelSrtContrKey;
FcltMgr.confirm(L("lcl_ins_finishing"),
function()
{
var inskey = row.getAttribute("ROWKEY");
var rowdata = eval("(" + row.getAttribute("ROWDATA") + ")");
if (rowdata)
{
deellsrtcontkey = rowdata.insDeelSrtContrKey;
isc_options = rowdata.insSrtControleOpt;
isc_status = rowdata.ins_status;
if (isc_status != 4) // Als ((isc_options & 4) != 4) geldt dan geldt zeker (isc_status != 4).
{ // Er is nog niet Gereed gemeld(5) of er kan niet Gereed gemeld(5) worden.
// Dan moet ik de gegevens invullen via insClose.
insClose(row);
}
else
{
var data = { ins_keys: inskey,
dlsrtcont_key_arr: deellsrtcontkey};
var data = {
ins_keys: inskey,
dlsrtcont_key_arr: deellsrtcontkey
};
protectRequest.dataToken(data);
$.post("ins_inspect_finish.asp", data, FcltCallbackRefresh, "json");
}
});
protectRequest.dataToken(data);
$.post("ins_inspect_finish.asp", data, FcltCallbackRefresh, "json");
}
}
});
}
</script>
</head>
@@ -209,7 +219,7 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
+ " , di.ctr_controle_type"
+ " , -1 ins_deelsrtcontrole_status"
+ " , di.ins_srtcontrole_eind inspectie_eind"
+ " , di.ins_srtcontrole_onlyfinish onlyfinish"
+ " , di.ins_srtcontrole_options options"
+ " , NULL ins_controlemode_success"
+ " FROM ins_v_defined_inspect_xcp di"
+ " WHERE (di.ins_srtcontrole_eind >= TRUNC(SYSDATE, 'DD')"
@@ -294,7 +304,7 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
+ " , di.ctr_controle_type"
+ " , idsc.ins_deelsrtcontrole_status"
+ " , di.ins_srtcontrole_eind inspectie_eind"
+ " , di.ins_srtcontrole_onlyfinish onlyfinish"
+ " , di.ins_srtcontrole_options options"
+ " , cm.ins_controlemode_success ins_controlemode_success"
+ " FROM ins_v_defined_inspect_xcp di"
+ " , ins_deelsrtcontrole idsc"
@@ -323,12 +333,14 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
var insKey = ins_key;
var insSrtControleKey = oRs("ins_srtcontrole_key").Value;
var insSrtControleType = oRs("ctr_controle_type").Value;
var insSrtControleOpt = oRs("options").Value;
// Als de status Verwerkt(6) is dan kan/moet er weer een nieuw inspectie gestart worden. Dan geen ins_deelsrtcontrole_key meegegeven (-2).
var istatus = oRs("ins_deelsrtcontrole_status").Value;
var insDeelSrtContrKey = oRs("ins_deelsrtcontrole_key").Value != null? oRs("ins_deelsrtcontrole_key").Value : -2;
var data = { insKey: ins_key, insSrtControleKey: insSrtControleKey, insSrtControleType: insSrtControleType, insDeelSrtContrKey: insDeelSrtContrKey, ins_status: istatus};
var data = { insKey: ins_key, insSrtControleKey: insSrtControleKey, insSrtControleType: insSrtControleType,
insSrtControleOpt: insSrtControleOpt, insDeelSrtContrKey: insDeelSrtContrKey, ins_status: istatus};
return JSON.stringify(data);
}
@@ -352,7 +364,6 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
{
var insSrtControleKey = oRs("ins_srtcontrole_key").Value;
var insDeelSrtContrKey = oRs("ins_deelsrtcontrole_key").Value;
var insOnlyFinish = oRs("onlyfinish").Value == 1;
var lthis_ins = ins.func_enabled_deel(ins_key,
{srtcont_key: insSrtControleKey,
deelsrtcont_key: insDeelSrtContrKey
@@ -365,11 +376,10 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
var eStart = lthis_ins.canInspStart; // Start een nieuwe inspectie m.b.v. een inline button actie.
var eStartD = lthis_ins.canInspStart && (istatus < 0); // Start een nieuwe inspectie m.b.v. een default inline actie (op regel klikken).
var eClose = lthis_ins.canInspClose;
var eFinish = !insOnlyFinish && lthis_ins.canInspFinish;
var eFinishOnly = insOnlyFinish && lthis_ins.canInspFinish;
var eFinish = !lthis_ins.canInspClose && lthis_ins.canInspFinish; // Als er nog niet gereed gemeld/afgemeld is dan wordt die butten wel getoond.
}
var data = {eEdit: eEdit, eShow: eShow, ePlan: ePlan, eStart: eStart, eStartD: eStartD, eClose: eClose, eFinish: eFinish, eFinishOnly: eFinishOnly};
var data = {eEdit: eEdit, eShow: eShow, ePlan: ePlan, eStart: eStart, eStartD: eStartD, eClose: eClose, eFinish: eFinish};
return data;
}
@@ -556,7 +566,6 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
rst.addAction({ action: "insStart", caption: L("lcl_ins_start"), enabler: "eStart" });
rst.addAction({ action: "insClose", caption: L("lcl_ins_stop"), enabler: "eClose" });
rst.addAction({ action: "insFinish", caption: L("lcl_ins_finish"), enabler: "eFinish" });
rst.addAction({ action: "insClose", caption: L("lcl_ins_finish"), enabler: "eFinishOnly" }); // Afronden, maar wel gegevens invullen (uitvoerdatum, taakafhanelding, opmerking en flexkenmerken).
var cnt = rst.processResultset();
%>

View File

@@ -82,7 +82,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
+ " , idsc.ins_deelsrtcontrole_status"
+ " , di.ins_deel_aanmaak"
+ " , di.ctr_discipline_key"
+ " , di.ins_srtcontrole_onlyfinish onlyfinish"
+ " , di.ins_srtcontrole_options options"
+ " FROM ins_v_defined_inspect di"
+ " , ins_srtcontroledl_xcp xcp"
+ " , ins_deelsrtcontrole idsc"
@@ -108,7 +108,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
var eenheid = oRs("eenheid").Value;
var ins_deelsrtcontrole_datum_max = oRs("ins_deelsrtcontrole_datum").Value;
var ins_deelsrtcontrole_key = oRs("ins_deelsrtcontrole_key").Value;
var onlyfinish = oRs("onlyfinish").Value == 1;
var isc_options = oRs("options").Value;
var this_ins = ins.func_enabled_deel(ins_key_arr[i],
{srtcont_key: srtcont_key_arr[i],
@@ -154,7 +154,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
continue;
}
if (!(this_ins.canInspClose || (onlyfinish && this_ins.canInspFinish)) || ins_deelsrtcontrole_status == 5)
if (!this_ins.canInspClose && !this_ins.canInspFinish)
{ // Ik heb geen Close (gereedmelden/afronden) rechten of laatste inspectie is niet verwerkt (dan moet ins_inspect_finish.asp aangeroepen worden). Overslaan.
continue;
}
@@ -207,7 +207,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
lastinspectdatum = new Date(oRs("lastinspectdatum").Value); // Kan uiterlijk vandaag zijn.
dag_na_lastinspectdatum = new Date(oRs("dag_na_lastinspectdatum").Value); // Kan uiterlijk morgen zijn.
dmj_eenheid = oRs("dmj_eenheid").Value;
minDate = dmj_eenheid? dag_na_lastinspectdatum : lastinspectdatum;
minDate = dmj_eenheid == 1? dag_na_lastinspectdatum : lastinspectdatum;
}
else
minDate = aanmaakdatum;
@@ -241,7 +241,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
firstinspectdatum = new Date(oRs("firstinspectdatum").Value); // Kan uiterlijk vandaag zijn.
dag_voor_firstinspectdatum = new Date(oRs("dag_voor_firstinspectdatum").Value); // Kan uiterlijk morgen zijn.
dmj_eenheid = oRs("dmj_eenheid").Value;
maxDate = dmj_eenheid? dag_voor_firstinspectdatum : firstinspectdatum;
maxDate = dmj_eenheid == 1? dag_voor_firstinspectdatum : firstinspectdatum;
}
//else //maxDate = new Date();
oRs.Close();

View File

@@ -422,8 +422,9 @@ function ins_list (pautfunction, params)
var istatus = inspect? oRs("ins_deelsrtcontrole_status").Value : -1;
var insDeelSrtContrKey = inspect && oRs("ins_deelsrtcontrole_key").Value != null && istatus != 6? oRs("ins_deelsrtcontrole_key").Value : -2;
var data = {insKey: insKey, insTypeKey: insTypeKey, insAvailable: insAvailable, insSrtControleKey: insSrtControleKey,
insDeelSrtContrKey: insDeelSrtContrKey};
var data = {insKey: insKey, insTypeKey: insTypeKey, insAvailable: insAvailable,
insSrtControleKey: insSrtControleKey, insDeelSrtContrKey: insDeelSrtContrKey,
ins_status: istatus};
return JSON.stringify(data);
}
@@ -446,30 +447,26 @@ function ins_list (pautfunction, params)
var eStart = false;
var eClose = false;
var eFinish = false;
var eFinishOnly = false;
if (inspect && !inspDone)
{
// Als object is vervallen dan kun je niet meer inspecteren en uitstellen.
var vervallen = (oRs("inspectie_eind").Value != null && new Date(oRs("inspectie_eind").Value).getTime() < new Date().midnight());
var onlyfinish = oRs("onlyfinish").Value == 1;
var isc_options = oRs("options").Value;
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
});
var istatus = oRs("ins_deelsrtcontrole_status").Value;
// Een nieuwe inspectie mag pas weer aangemaakt worden als de laatste inspectie Afgerond(6) is.
eShowInsp = this_ins.canInspShow && istatus < 6; // Als de inspectie is afgerond dan kun moet je eerst een nieuwe inspectie starten. Alleen lopende inspecties kun je inkijken.
ePlan = this_ins.canInspPlan;
eStart = this_ins.canInspStart;
// Als de inspectie vervallen is moet je alleen nog de lopende inspecties kunnen gereed melden en afronden.
eClose = this_ins.canInspClose;
eFinish = !onlyfinish && this_ins.canInspFinish;
eFinishOnly = onlyfinish && this_ins.canInspFinish;
eFinish = !this_ins.canInspClose && this_ins.canInspFinish; // Als er nog niet gereed gemeld/afgemeld is dan wordt die butten wel getoond.
}
var data = {eLendOut: eLendOut, eReceive: eReceive, eAdapt: eAdapt, eDelete: eDelete, eEdit: eEdit,
eDetails: eDetails, eShowInsp: eShowInsp, ePlan: ePlan, eStart: eStart, eClose: eClose, eFinish: eFinish, eFinishOnly: eFinishOnly};
eDetails: eDetails, eShowInsp: eShowInsp, ePlan: ePlan, eStart: eStart, eClose: eClose, eFinish: eFinish};
return data;
}
@@ -872,7 +869,6 @@ function ins_list (pautfunction, params)
rst.addAction({ action: "insStart", caption: L("lcl_ins_start"), multi: !tiny, multiOnce: true, enabler: "eStart" });
rst.addAction({ action: "insClose", caption: L("lcl_ins_stop"), multi: !tiny, multiOnce: true, enabler: "eClose" });
rst.addAction({ action: "insFinish", caption: L("lcl_ins_finish"), multi: !tiny, multiOnce: true, enabler: "eFinish" });
rst.addAction({ action: "insClose", caption: L("lcl_ins_finish"), multi: !tiny, multiOnce: true, enabler: "eFinishOnly" }); // Afronden, maar wel gegevens invullen (uitvoerdatum, taakafhanelding, opmerking en flexkenmerken).
}
else
{

View File

@@ -267,21 +267,35 @@ function insClose(rowArray)
function insFinish(rowArray, isMulti)
{
FcltMgr.confirm(rowArray.length == 1 ? L("lcl_ins_finishing") : L("lcl_ins_finishing_m"), { autoconfirm: isMulti }, function() {
var insKeyString = getKeyString(rowArray);
var deelsrtcontrkeyArray = new Array();
for (var i = 0; i < rowArray.length; i++) {
rowdata = eval('(' + rowArray[i].getAttribute("ROWDATA") + ')');
deelsrtcontrkeyArray[i] = rowdata.insDeelSrtContrKey;
}
FcltMgr.confirm(rowArray.length == 1 ? L("lcl_ins_finishing") : L("lcl_ins_finishing_m"),
{ autoconfirm: isMulti },
function()
{
var insKeyString = getKeyString(rowArray);
var deelsrtcontrkeyArray = new Array();
// Als er 1 inspectie is die niet Gereed gemeld(5) kan worden dan heb ik de Gereed meld gegevens nodig.
// Dan moet ik de gegevens invullen via insClose.
var mustClose = false;
for (var i = 0; i < rowArray.length; i++)
{
rowdata = eval('(' + rowArray[i].getAttribute("ROWDATA") + ')');
deelsrtcontrkeyArray[i] = rowdata.insDeelSrtContrKey;
isc_status = rowdata.ins_status;
mustClose = mustClose || (isc_status != 4);
}
var data = {
ins_keys: insKeyString,
dlsrtcont_key_arr: deelsrtcontrkeyArray.join(",")
};
protectRequest.dataToken(data);
$.post("../ins/ins_inspect_finish.asp", data, FcltCallbackRefresh, "json");
});
if (mustClose)
{ // Via insClose scherm de gegevens invullen.
insClose(rowArray, isMulti);
}
else
{
var data = { ins_keys: insKeyString,
dlsrtcont_key_arr: deelsrtcontrkeyArray.join(",") };
protectRequest.dataToken(data);
$.post("../ins/ins_inspect_finish.asp", data, FcltCallbackRefresh, "json");
}
});
}
function insMultiMove(rowArray)

View File

@@ -225,7 +225,7 @@ user.auth_required_or_abort(this_ins.canInspShow);
var canPlan = this_ins.canInspPlan && deelsrtcontrole_status != 6;
var canStart = this_ins.canInspStart && deelsrtcontrole_status != 6;
var canClose = this_ins.canInspClose && deelsrtcontrole_status != 6;
var canFinish = this_ins.canInspFinish;
var canFinish = !canClose && this_ins.canInspFinish && deelsrtcontrole_status != 6; // Bestaande inspectie die al afgerond is kan niet nog een keer worden afgerond.
var buttons = [];
if (canStart)