diff --git a/APPL/INS/ins.inc b/APPL/INS/ins.inc index 06c6d09a4a..bb4e99ff96 100644 --- a/APPL/INS/ins.inc +++ b/APPL/INS/ins.inc @@ -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)+")"; diff --git a/APPL/INS/ins_edit_inspect.asp b/APPL/INS/ins_edit_inspect.asp index 7370f1c53f..7ec32bc040 100644 --- a/APPL/INS/ins_edit_inspect.asp +++ b/APPL/INS/ins_edit_inspect.asp @@ -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 %> - + <% 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 - + <% 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 "> "> -<% 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 %>
<% // 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 }); %>
<% diff --git a/APPL/INS/ins_flexkenmerksrtcontrole.inc b/APPL/INS/ins_flexkenmerksrtcontrole.inc index 3b78676e1d..1e82422680 100644 --- a/APPL/INS/ins_flexkenmerksrtcontrole.inc +++ b/APPL/INS/ins_flexkenmerksrtcontrole.inc @@ -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: */ %> diff --git a/APPL/INS/ins_inspect_end.asp b/APPL/INS/ins_inspect_end.asp index 7d27d9a873..02230bb132 100644 --- a/APPL/INS/ins_inspect_end.asp +++ b/APPL/INS/ins_inspect_end.asp @@ -55,7 +55,7 @@ user.anything_todo_or_abort(tobeended > 0); // We klagen niet over enkele wel en %> - + <% FCLTHeader.Generate(); %> @@ -247,8 +247,8 @@ user.anything_todo_or_abort(tobeended > 0); // We klagen niet over enkele wel en - -<% var buttons = [{title: L("lcl_ins_close"), icon: "finish.png", action:"ins_submit(0)"}, + +<% 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 %>
<% // 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 diff --git a/APPL/INS/ins_inspect_list.asp b/APPL/INS/ins_inspect_list.asp index 7a72ecefdf..9806d936fc 100644 --- a/APPL/INS/ins_inspect_list.asp +++ b/APPL/INS/ins_inspect_list.asp @@ -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") + " (" + L("lcl_valutasign") + ")", content: fnKosten, datatype: "currency"})); rst.addColumn(new Column({caption: L("lcl_ins_controle_opm"), content: "ins_deelsrtcontrole_opmerking"})); diff --git a/APPL/INS/ins_inspect_plan.asp b/APPL/INS/ins_inspect_plan.asp index 5c991c5199..c2b7e7e371 100644 --- a/APPL/INS/ins_inspect_plan.asp +++ b/APPL/INS/ins_inspect_plan.asp @@ -55,7 +55,7 @@ user.anything_todo_or_abort(tobeplanned > 0); // We klagen niet over enkele wel %> - + <% FCLTHeader.Generate(); %> @@ -147,7 +147,7 @@ user.anything_todo_or_abort(tobeplanned > 0); // We klagen niet over enkele wel - + <% 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 %>
<% // 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 diff --git a/APPL/INS/ins_inspect_save.asp b/APPL/INS/ins_inspect_save.asp index 5cc7c32f29..4f5708606a 100644 --- a/APPL/INS/ins_inspect_save.asp +++ b/APPL/INS/ins_inspect_save.asp @@ -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(); diff --git a/APPL/INS/ins_list.inc b/APPL/INS/ins_list.inc index 3e38cc2e04..b40fc33918 100644 --- a/APPL/INS/ins_list.inc +++ b/APPL/INS/ins_list.inc @@ -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; } diff --git a/APPL/INS/load_kenmerksrtcontrole.asp b/APPL/INS/load_kenmerksrtcontrole.asp index 70d29ccc0b..be69158897 100644 --- a/APPL/INS/load_kenmerksrtcontrole.asp +++ b/APPL/INS/load_kenmerksrtcontrole.asp @@ -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: