ASFC#34371: Start en stopmoment bij schoonmaak via inspecties kunnen vastleggen.

UWVA#35539: ins: kan gedane inspectie aanpassen.

svn path=/Website/trunk/; revision=28990
This commit is contained in:
Maykel Geerdink
2016-04-18 12:46:11 +00:00
parent f23db58742
commit f5463873fa
9 changed files with 53 additions and 40 deletions

View File

@@ -232,7 +232,7 @@ ins = {checkAutLevel:
case 0: { statustekst = L("lcl_ins_controle_pending"); break; }
case 2: { statustekst = L("lcl_ins_controle_gestart"); break; }
case 5: { statustekst = L("lcl_ins_controle_afgemeld"); break; }
case 6: { statustekst = L("lcl_ins_controle_verwerkt"); break; }
case 6: { statustekst = L("lcl_ins_controle_afgerond"); break; }
}
if (Session("logging")>0)
statustekst += " ("+String(p)+")";

View File

@@ -99,7 +99,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel en enkele niet
%>
<html class="likemodal">
<html>
<head>
<% FCLTHeader.Generate(); %>
@@ -107,6 +107,8 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
var eenheid = -1;
var scmode = 1; // 0 = Momentmode, 1 = Intervalmode.
var sctype = -1;
var vervaldatum = null;
var vervallen = false;
var info = "";
sql = "SELECT *"
+ " FROM (WITH defined_inspect AS (SELECT isc.ins_srtcontrole_key"
@@ -131,6 +133,7 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
+ " , di.ins_srtcontrole_info info"
+ " , di.ins_srtcontrole_mode scmode"
+ " , di.ins_srtcontrole_type sctype"
+ " , xcp.ins_srtcontroledl_xcp_eind vervaldatum"
+ " FROM defined_inspect di"
+ " , ins_srtcontroledl_xcp xcp"
+ " , ins_deelsrtcontrole idsc"
@@ -141,12 +144,14 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
+ " AND idsc.ins_deel_key(+) IN (" + ingesloten.join(",") + ")"
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) > 0"
+ " AND di.ins_srtcontrole_key IN (" + ingeslotensc.join(",") + ")"
+ " AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC(SYSDATE, 'DD'))" + ")";
+ " )";
var oRs = Oracle.Execute(sql);
eenheid = oRs("eenheid").Value;
info = oRs("info").Value;
scmode = oRs("scmode").Value;
sctype = oRs("sctype").Value;
vervaldatum = oRs("vervaldatum").Value != null? new Date(oRs("vervaldatum").Value) : null;
vervallen = vervaldatum != null && vervaldatum < new Date();
oRs.MoveNext();
while (!oRs.eof)
{
@@ -318,13 +323,14 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
</script>
</head>
<body id="editbody" class="likemodal">
<body id="editbody">
<% var buttons = [];
if (insPlan || insEdit)
if (!vervallen && (insPlan || insEdit))
buttons.push({title: L("lcl_submit"), icon: "opslaan.png", action:"ins_submit(0)"});
if (insClose)
// Als de inspectie vervallen is moet je alleen nog de lopende inspecties kunnen gereed melden en afronden.
if ((!vervallen || (vervallen && (ins_deelsrtcontrole_status == 0 || ins_deelsrtcontrole_status == 2))) && insClose)
{
buttons.push({title: L("lcl_ins_close"), icon: "finish.png", action:"ins_submit(0)"});
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)"});
}
buttons.push({title: L("lcl_do_amelding_hint"), action: "ins_melding()", icon: "doemelding.png" });
@@ -345,7 +351,7 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
<input type="hidden" name="ins_keys" id="ins_keys" value="<%=ingesloten.join(",")%>">
<input type="hidden" name="srtcont_key_arr" id="srtcont_key_arr" value="<%=ingeslotensc.join(",")%>">
<input type="hidden" name="finish" id="finish" value="0">
<% var blocktext = (insPlan? L("lcl_ins_schedule") : (insClose? L("lcl_ins_close") + "/" + L("lcl_ins_finish") : L("lcl_change")));
<% var blocktext = (insPlan? L("lcl_ins_schedule") : (insClose? L("lcl_ins_close") + "/" + L("lcl_ins_finish") : (insEdit? L("lcl_change") : L("lcl_show"))));
BLOCK_START("insMultiEdit", blocktext);
var insstatus = -1;
var status_str = "";
@@ -408,8 +414,6 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
+ " AND di.ins_deel_key IN (" + ingesloten[0] + ")"
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) > 0"
+ " AND (COALESCE (xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) >= TRUNC(SYSDATE, 'DD')"
+ " OR COALESCE (xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) IS NULL)"
+ " AND di.ins_srtcontrole_key = " + ingeslotensc[0]
+ " GROUP BY di.ins_srtcontrole_key"
+ " , di.ins_srtcontrole_omschrijving"
@@ -547,7 +551,7 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
timeStep: 60,
startTime: 0,
endTime: 23.75,
readonly: insShow || (insEdit && insstatus == 2), // In status "Ingepland(0)" is de plandatum altijd nog aan te passen.
readonly: vervallen || insShow || (insEdit && insstatus == 2), // In status "Ingepland(0)" is de plandatum altijd nog aan te passen.
suppressEmpty: true
});
@@ -578,7 +582,8 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
endTime: 23.75,
onChangeDate: "onChangeDeelsrtcdatum('D')",
onChangeTime: "onChangeDeelsrtcdatum('T')",
readonly: (insShow || insEdit || (dsc_is_afgemeld && (hours > 0 || minutes > 0)? true : false))
// Als de inspectie vervallen is moet je alleen nog de lopende inspecties kunnen gereed melden en afronden. De datum moet je dan ook nog kunnen invullen.
readonly: ((vervallen && !(vervallen && (ins_deelsrtcontrole_status == 0 || ins_deelsrtcontrole_status == 2))) || insShow || insEdit || (dsc_is_afgemeld && (hours > 0 || minutes > 0)? true : false))
});
sql = "SELECT ins_controlemode_key"
@@ -594,7 +599,8 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
initKey: inspect_data.controlemode_key, // Als de controle mode bij multi verschillend is, dan is deze waarde -1.
emptyOption: L("lcl_select_controlemode"),
required: true,
readonly: insShow || insEdit
// Als de inspectie vervallen is moet je alleen nog de lopende inspecties kunnen gereed melden en afronden. De controlemode (methode) moet je dan ook nog kunnen invullen.
readonly: (vervallen && !(vervallen && (ins_deelsrtcontrole_status == 0 || ins_deelsrtcontrole_status == 2))) || insShow || insEdit
});
}
@@ -605,7 +611,8 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
{ html: "rows='8'",
trclass: "invoerinsp",
maxlength: 2000,
readonly: insShow,
// Als de inspectie vervallen is moet je alleen nog de lopende inspecties kunnen gereed melden en afronden. De opmerking moet je dan ook nog kunnen invullen.
readonly: (vervallen && !(vervallen && (ins_deelsrtcontrole_status == 0 || ins_deelsrtcontrole_status == 2))) || insShow,
suppressEmpty: insShow
}
);
@@ -633,9 +640,9 @@ user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel
BLOCK_START("insFlex2", L("lcl_ins_additional_details")); //block over gehele breedte
%><div id='insFlexList'><% // Wrapper div voor dynamisch herladen
generateFlexKenmerkBlock({deelsrtcontrole_key: (!multi && ingeslotendsc[0] > 0? ingeslotendsc[0] : null),
generateFlexKenmerkBlock({deelsrtcontrole_key: (!multi && ingeslotendsc[0] > 0? ingeslotendsc[0] : -1),
srtcontrole_key: ingeslotensc[0],
reado: insShow,
reado: vervallen || insShow,
flexcolumns: 1
});
%></div><%

View File

@@ -11,7 +11,10 @@
advanced Geadvanceerd
Context: Functie wordt aangeroepen door
1) load_kenmerksrtcontrole.asp
2) ins_inspect.asp die initieel serverside deze html code invoegd.
2) ins_edit_inspect.asp/ins_edit_deel.asp/ins_edit_srtdeel.asp
3) ins_show_deel.asp/ins_show_srtdeel.asp
4) ins_inspect_plan.asp/ins_inspect_end.asp
2 t/m 4 voegen initieel deze html code toe.
Note:
*/
%>

View File

@@ -55,7 +55,7 @@ user.anything_todo_or_abort(tobeended > 0); // We klagen niet over enkele wel en
%>
<html class="likemodal">
<html>
<head>
<% FCLTHeader.Generate(); %>
@@ -247,8 +247,8 @@ user.anything_todo_or_abort(tobeended > 0); // We klagen niet over enkele wel en
</script>
</head>
<body id="editbody" class="likemodal">
<% var buttons = [{title: L("lcl_ins_close"), icon: "finish.png", action:"ins_submit(0)"},
<body id="editbody">
<% var buttons = [{title: L("lcl_ins_close"), icon: "inspfinish.png", action:"ins_submit(0)"},
{title: L("lcl_ins_finish"), icon: "close.png", action: "ins_submit(1)"},
{title: L("lcl_cancel"), icon: "undo.png", action: "ins_cancel()"}];
var titletext;
@@ -528,7 +528,7 @@ user.anything_todo_or_abort(tobeended > 0); // We klagen niet over enkele wel en
BLOCK_START("insFlex2", L("lcl_ins_additional_details")); //block over gehele breedte
%><div id='insFlexList'><% // Wrapper div voor dynamisch herladen
generateFlexKenmerkBlock({deelsrtcontrole_key: (!multi && ingeslotendsc[0] > 0? ingeslotendsc[0] : null),
generateFlexKenmerkBlock({deelsrtcontrole_key: (!multi && ingeslotendsc[0] > 0? ingeslotendsc[0] : -1),
srtcontrole_key: ingeslotensc[0],
reado: false,
flexcolumns: 1

View File

@@ -266,8 +266,6 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
+ " AND (COALESCE (xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) >= TRUNC(SYSDATE, 'DD')"
+ " OR COALESCE (xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) IS NULL)"
+ " AND di.ins_deel_key = " + ins_key
+ " AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC(SYSDATE, 'DD'))"
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) > 0" // Als de periode 0 is dan de inspecties die gaan komen niet meer tonen.
// Als er een voorlopige inspectie is aangemaakt maar nog niet is afgemeld of afgerond, dan hoeft er geen nieuwe inspectie te worden getoond.
+ " AND NOT EXISTS (SELECT idsc.ins_deelsrtcontrole_key"
+ " FROM ins_deelsrtcontrole idsc"
@@ -325,7 +323,7 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
+ " AND idsc.ins_deel_key = di.ins_deel_key"
+ " AND idsc.prs_perslid_key = p.prs_perslid_key(+)"
+ " AND di.ins_deel_key = " + ins_key
+ " AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC(SYSDATE, 'DD'))"
// Gedaande inspectie altijd tonen.
+ " )"
+ " ORDER BY seq, ins_deelsrtcontrole_datum DESC, inspectie_org DESC, inspectie_next, ins_srtcontrole_omschrijving";
@@ -352,12 +350,13 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
// Gedaande inspecties kunnen alleen geedit worden.
// Ik zie alleen objecten waar ik read rechten (3d) op heb. Dan mag ik ze ook verder inzien.
var eEdit = istatus >= 0 && istatus < 6 && this_ins.canChange;
var eEdit = !vervallen && istatus >= 0 && istatus < 6 && this_ins.canChange;
var eShow = istatus >= 0 && this_ins.canRead && !eEdit;
var ePlan = !vervallen && this_ins.canInspect && (istatus < 0);
var eStart = !vervallen && this_ins.canInspect && (istatus <= 0);
var eClose = this_ins.canInspect && (istatus < 5);
var eFinish = (this_ins.canInspect && istatus == 5);
// Als de inspectie vervallen is moet je alleen nog de lopende inspecties kunnen gereed melden en afronden.
var eClose = (!vervallen || (vervallen && (istatus == 0 || istatus == 2))) && this_ins.canInspect && (istatus < 5);
var eFinish = this_ins.canInspect && istatus == 5;
var data = {eEdit: eEdit, eShow: eShow, ePlan: ePlan, eStart: eStart, eClose: eClose, eFinish: eFinish};
return data;
@@ -370,6 +369,8 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
if (istatus == 2)
lclass = "pending";
if (istatus == 5)
lclass = "unsolved";
if (oRs("seq").Value == 2) // klaar
return lclass;
@@ -510,8 +511,8 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
});
rst.addColumn(new Column({caption: L("lcl_ins_srtcontrole_type"), content: fnSrtControleType}));
rst.addColumn(new Column({caption: L("lcl_ins_datum"), content: fnControleDatum}));
rst.addColumn(new Column({caption: L("lcl_ins_controle_plan"), content: fnVolgende}));
rst.addColumn(new Column({caption: L("lcl_ins_controle_plandate"), content: fnVolgende}));
rst.addColumn(new Column({caption: L("lcl_ins_controle_datum"), content: fnControleDatum}));
rst.addColumn(new Column({caption: L("lcl_ins_controle_srt"), content: "ins_srtcontrole_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_ins_kosten") + "&nbsp;(" + L("lcl_valutasign") + ")", content: fnKosten, datatype: "currency"}));
rst.addColumn(new Column({caption: L("lcl_ins_controle_opm"), content: "ins_deelsrtcontrole_opmerking"}));

View File

@@ -55,7 +55,7 @@ user.anything_todo_or_abort(tobeplanned > 0); // We klagen niet over enkele wel
%>
<html class="likemodal">
<html>
<head>
<% FCLTHeader.Generate(); %>
@@ -147,7 +147,7 @@ user.anything_todo_or_abort(tobeplanned > 0); // We klagen niet over enkele wel
</script>
</head>
<body id="editbody" class="likemodal">
<body id="editbody">
<% var buttons = [{title: L("lcl_submit"), icon: "opslaan.png", action:"ins_submit()"},
{title: L("lcl_cancel"), icon: "undo.png", action: "ins_cancel()"}];
var titletext;
@@ -362,7 +362,7 @@ user.anything_todo_or_abort(tobeplanned > 0); // We klagen niet over enkele wel
BLOCK_START("insFlex2", L("lcl_ins_additional_details")); //block over gehele breedte
%><div id='insFlexList'><% // Wrapper div voor dynamisch herladen
generateFlexKenmerkBlock({deelsrtcontrole_key: (!multi && ingeslotendsc[0] > 0? ingeslotendsc[0] : null),
generateFlexKenmerkBlock({deelsrtcontrole_key: (!multi && ingeslotendsc[0] > 0? ingeslotendsc[0] : -1),
srtcontrole_key: ingeslotensc[0],
reado: false,
flexcolumns: 1

View File

@@ -7,7 +7,11 @@
Description: Inspectiedata opslaan
Parameters: ins_keys of ins_key (geen verschil)
Context: Vanuit ins_inspect.asp of vanuit pda/ins_inspect.asp
Context: Vanuit
1) ins_edit_inspect.asp
2) ins_inspect_plan.asp
3) ins_inspect_end.asp
4) pda/ins_inspect.asp
Note: Parameter mobile doet niets met navigatie, sluiten enzo, die submit gewoon.
Resultaat van een submit is een json object
@@ -112,7 +116,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
if (savemode == "C") // Afmelden/Afronden.
{ // Is er op de inspectiedatum of op het inspectieuur al geinspecteerd voor dit object en het objectsoort?
// Voor niet multi is dit al gecontroleerd in ins_inspect.asp. Hier voor de veiligheid opnieuw controleren is niet verkeerd.
// Voor niet multi is dit al gecontroleerd in ins_edit_inspect.asp. Hier voor de veiligheid opnieuw controleren is niet verkeerd.
var deelsrtcontrole_midnighttime = deelsrtcontrole_datum.midnight().getTime();
var deelsrtcontrole_hourtime = deelsrtcontrole_datum; // deelsrtcontrole_datum moet niet worden aangepast door setMinutes(0,0,0).
var deelsrtcontrole_hourtime = new Date(new Date(parseInt(deelsrtcontrole_hourtime.getTime())).setMinutes(0,0,0)).getTime();

View File

@@ -580,7 +580,6 @@ function ins_list (pautfunction, params)
+ " 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)"
+ " AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC(SYSDATE, 'DD'))"
+ " ORDER BY inspectie_date)"
: (params.inspSoon || (!params.inspSoon && !params.inspBusy && !params.inspClosed)
? " SELECT 1 rn" // inspecties die nog nooit zijn uitgevoerd/ingepland. Er is nog geen ins_deelsrtcontrole regel aanwezig en dus ook geen plandatum/respijtdatum.
@@ -609,7 +608,6 @@ function ins_list (pautfunction, params)
+ " AND (di.ins_deel_key, di.ins_srtcontrole_key) NOT IN"
+ " (SELECT ins_deel_key, ins_srtcontrole_key"
+ " FROM ins_deelsrtcontrole)"
+ " AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC(SYSDATE, 'DD'))"
+ " UNION ALL" // Inspecties die al eens zijn uitgevoerd of inspecties die voor het eerst zijn ingepland(0) of gestart(2) maar nog geen uitgevoerde/afgemelde(6) inspectie hebben.
: "")
+ " SELECT RANK ()" // Volgnummertje toekennen
@@ -652,7 +650,6 @@ function ins_list (pautfunction, params)
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
+ " AND idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
+ " AND idsc.ins_deel_key = di.ins_deel_key"
+ " AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC(SYSDATE, 'DD'))"
+ " ORDER BY inspectie_next)")
+ " WHERE rn = 1"
// Voor afgehandelde inspecties ook inspecties met periode 0 tonen.
@@ -1447,10 +1444,11 @@ function ins_list (pautfunction, params)
var istatus = oRs("ins_deelsrtcontrole_status").Value;
// Een nieuwe inspectie mag pas weer aangemaakt worden als de laatste inspectie Afgerond(6) is.
eEditInsp = this_ins.canInspect && istatus >= 0 && istatus < 6;
eEditInsp = !vervallen && this_ins.canInspect && istatus >= 0 && istatus < 6;
ePlan = !vervallen && this_ins.canInspect && (istatus < 0 || istatus == 6);
eStart = !vervallen && this_ins.canInspect && (istatus <= 0 || istatus == 6);
eClose = this_ins.canInspect && (istatus < 5 || istatus == 6);
// Als de inspectie vervallen is moet je alleen nog de lopende inspecties kunnen gereed melden en afronden.
eClose = (!vervallen || (vervallen && (istatus == 0 || istatus == 2))) && this_ins.canInspect && (istatus < 5 || istatus == 6);
eFinish = this_ins.canInspect && istatus == 5;
}

View File

@@ -10,7 +10,7 @@
reado Readonly
flexcolumns aantal kolommen voor flexkenmerken
advanced Geadvanceerd
Context: ins_inspect.asp: Clientside wordt de gegenereerde html code m.b.v. $('div#xxx').load binnen een div geplaatst.
Context: Clientside wordt de gegenereerde html code m.b.v. $('div#xxx').load binnen een div geplaatst.
De functie is gedefinieerd in ins_flexkenmerksrtcontrole.inc
Note: