AKZA#37576 PDA/INS: Mobiel details laatste/juiste (vorige) taak kunnen inzien

svn path=/Website/trunk/; revision=33891
This commit is contained in:
Erik Groener
2017-05-17 07:20:54 +00:00
parent ece95b7512
commit e3d78a859c
4 changed files with 5 additions and 189 deletions

View File

@@ -15,7 +15,8 @@
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="ins.inc" -->
<!-- #include file="../ins/ins.inc" -->
<!-- #include file="../ins/ins_inspect_list.inc" -->
<%
FCLTHeader.Requires({ js: ["jquery-ui.js"]});
@@ -145,188 +146,7 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
// Als de controlesoort niet meer geldig is dan kunnen er geen inspecties meer komen.
// Een object kan meerdere controlesoorten hebben. Alleen die controlesoorten laten zien die nog geldig zijn.
var lastinspect = "(SELECT CASE di.ins_srtcontrole_mode"
+ " WHEN 0"
+ " THEN idsc.ins_deelsrtcontrole_datum_org" // Moment modus. Uitgaan van eigenlijke/orginele inspectiedatum.
+ " ELSE idsc.ins_deelsrtcontrole_datum" // Interval modus. Uitgaan van werkelijke inspectiedatum.
+ " END ins_deelsrtcontrole_datum"
+ " FROM ins_deelsrtcontrole idsc"
+ " 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 idsc.ins_deelsrtcontrole_key = (SELECT MAX(idsc2.ins_deelsrtcontrole_key)"
+ " FROM ins_deelsrtcontrole idsc2"
+ " WHERE idsc2.ins_deel_key = di.ins_deel_key"
+ " AND idsc2.ins_srtcontrole_key = di.ins_srtcontrole_key"
+ " AND idsc2.ins_deelsrtcontrole_status IN (5, 6)))";
var sql = "SELECT *"
+ " FROM ("
// mogelijke inspecties op dit object die nog gaan komen.
// Als er een voorlopige inspectie is aangemaakt maar nog niet is afgemeld of afgerond, dan hoeft er geen nieuwe inspectie te worden getoond.
// Dus met de respijt heb je in dit eerste deel van de query niet meer te maken.
+ " SELECT 1 seq"
+ " , di.ins_deel_key"
+ " , di.ins_deel_aanmaak"
+ " , di.ins_deel_aantal"
+ " , TO_DATE (NULL) ins_deelsrtcontrole_datum"
+ " , NULL inspectie_org"
+ " , NULL isrespijt"
+ " , CASE WHEN " + lastinspect + " IS NULL THEN 1 ELSE 0 END nonext"
// Als respijtdatum vandaag of dit uur is dan is de respijtdatum de eerstvolgende inspectie en dus maar 1 step.
// Als er vandaag al geinspecteerd is dan de volgende inspectiedatum in de toekomst (functie nextcyclusdatesteps())
+ " , fac.nextcyclusdatesteps (COALESCE(" + lastinspect + ", SYSDATE)"
+ " , di.ins_srtcontrole_mode"
+ " , di.ins_srtcontrole_eenheid"
+ " , di.ins_srtcontrole_periode"
+ " , di.ins_srtcontrole_bits)"
+ " inspectie_steps"
// Als respijtdatum vandaag of dit uur is dan is de respijtdatum de eerstvolgende inspectie en dan dus de respijtdatum opleveren.
// Als er vandaag of dit uur niet geinspecteerd is dan de eerstvolgende inspectiedatum vandaag of in de toekomst (steps = 0: functie nextcyclusdate(..., 0))
// Als er vandaag of dit uur al geinspecteerd is dan de eerstvolgende inspectiedatum in de toekomst (steps = 1: functie nextcyclusdate(..., 1))
+ " , fac.nextcyclusdate (COALESCE(" + lastinspect + ", di.ins_deel_aanmaak)"
+ " , di.ins_srtcontrole_mode"
+ " , di.ins_srtcontrole_eenheid"
+ " , di.ins_srtcontrole_periode"
+ " , di.ins_srtcontrole_bits"
+ " , CASE"
+ " WHEN di.ins_srtcontrole_mode = 1" // Interval modus
+ " THEN 1"
+ " WHEN di.ins_srtcontrole_eenheid = 0 AND"
+ " TRUNC (COALESCE (" + lastinspect + ", di.ins_deel_aanmaak), 'HH24' ) >= TRUNC (SYSDATE, 'HH24')"
+ " THEN 1" // Uurlijks: Als de datum in de toekomst ligt, bepaal dan de volgende datum (1 step verder).
+ " WHEN di.ins_srtcontrole_eenheid > 0 AND"
+ " TRUNC (COALESCE (" + lastinspect + ", di.ins_deel_aanmaak),'DDD') >= TRUNC (SYSDATE, 'DDD')"
+ " THEN 1" // Dagelijks t/m jaarlijks: Als de datum in de toekomst ligt, bepaal dan de volgende datum (1 step verder).
+ " WHEN " + lastinspect + " IS NULL"
+ " THEN 1" // Als Eerste inspectie, bepaal dan ook de volgende (1 step) datum.
+ " ELSE 0" // Vindt de eerste datum vandaag of in de toekomst
+ " END)"
+ " inspectie_next"
+ " , di.ins_srtcontroledl_xcp_startdat"
+ " , di.ins_srtcontrole_key"
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
+ " , di.ins_srtcontrole_groep"
+ " , di.ins_srtcontrole_opmerking"
+ " , NULL ins_deelsrtcontrole_key"
+ " , di.ins_srtcontrole_periode periode"
+ " , di.ins_srtcontrole_eenheid eenheid"
+ " , di.ins_srtcontrole_kosten kosten"
+ " , di.ins_srtcontrole_mode isc_mode"
+ " , NULL plandatum"
+ " , '' ins_deelsrtcontrole_opmerking"
+ " , NULL inspecteur"
+ " , di.ctr_controle_type"
+ " , -1 ins_deelsrtcontrole_status"
+ " , di.ins_srtcontrole_eind inspectie_eind"
+ " , di.ins_srtcontrole_options options"
+ " , NULL ins_controlemode_success"
+ " FROM ins_v_defined_inspect_xcp di"
+ " WHERE (di.ins_srtcontrole_eind >= TRUNC(SYSDATE, 'DD')"
+ " OR di.ins_srtcontrole_eind IS NULL)"
+ " AND di.ins_deel_key = " + ins_key
+ " AND 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"
+ " WHERE idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
+ " AND idsc.ins_deelsrtcontrole_status NOT IN (6)"
+ " AND idsc.ins_deel_key = di.ins_deel_key)"
+ " AND di.ctr_discipline_key IN (SELECT w.ins_discipline_key"
+ " FROM fac_v_webgebruiker w"
+ " , fac_functie f"
+ " WHERE w.fac_functie_key = f.fac_functie_key "
+ " AND f.fac_functie_code = 'WEB_CTRUSE'"
+ " AND w.fac_gebruiker_prs_level_read < 9"
+ " AND w.fac_gebruiker_alg_level_read < 9"
+ " AND w.prs_perslid_key = " + user_key + ")"
+ " UNION ALL"
// Combineren met uitgevoerde inspecties op dit object of lopende inspecties (ingepland(0), gestart(2) of gereedgemeld(5))
+ " SELECT 2 seq"
+ " , di.ins_deel_key"
+ " , di.ins_deel_aanmaak"
+ " , di.ins_deel_aantal"
+ " , idsc.ins_deelsrtcontrole_datum"
+ " , COALESCE(idsc.ins_deelsrtcontrole_plandatum"
+ " , CASE"
+ " WHEN idsc.ins_deelsrtcontrole_status = 2 AND idsc.ins_deelsrtcontrole_datum_org IS NULL" // Alle eerste inspectie.
+ " THEN fac.nextcyclusdate (COALESCE(" + lastinspect + ", di.ins_deel_aanmaak)"
+ " , di.ins_srtcontrole_mode"
+ " , di.ins_srtcontrole_eenheid"
+ " , di.ins_srtcontrole_periode"
+ " , di.ins_srtcontrole_bits"
+ " , CASE"
+ " WHEN di.ins_srtcontrole_mode = 1" // Interval modus
+ " THEN 1"
+ " WHEN di.ins_srtcontrole_eenheid = 0 AND"
+ " TRUNC (COALESCE (" + lastinspect + ", di.ins_deel_aanmaak), 'HH24' ) >= TRUNC (SYSDATE, 'HH24')"
+ " THEN 1" // Uurlijks: Als de datum in de toekomst ligt, bepaal dan de volgende datum (1 step verder).
+ " WHEN di.ins_srtcontrole_eenheid > 0 AND"
+ " TRUNC (COALESCE (" + lastinspect + ", di.ins_deel_aanmaak),'DDD') >= TRUNC (SYSDATE, 'DDD')"
+ " THEN 1" // Dagelijks t/m jaarlijks: Als de datum in de toekomst ligt, bepaal dan de volgende datum (1 step verder).
+ " WHEN " + lastinspect + " IS NULL"
+ " THEN 1" // Als Eerste inspectie, bepaal dan ook de volgende (1 step) datum.
+ " ELSE 0" // Vindt de eerste datum vandaag of in de toekomst
+ " END)"
+ " ELSE ins_deelsrtcontrole_datum_org"
+ " END) inspectie_org"
+ " , CASE WHEN idsc.ins_deelsrtcontrole_plandatum > idsc.ins_deelsrtcontrole_datum_org THEN 1 ELSE 0 END isrespijt"
+ " , NULL nonext"
+ " , CASE"
+ " WHEN di.ins_srtcontrole_eenheid = 0 AND"
+ " idsc.ins_deelsrtcontrole_plandatum IS NOT NULL AND"
+ " TRUNC (idsc.ins_deelsrtcontrole_plandatum, 'HH24') >= TRUNC (SYSDATE, 'HH24')"
+ " THEN 1"
+ " WHEN di.ins_srtcontrole_eenheid > 0 AND"
+ " idsc.ins_deelsrtcontrole_plandatum IS NOT NULL AND"
+ " TRUNC (idsc.ins_deelsrtcontrole_plandatum, 'DDD') >= TRUNC (SYSDATE, 'DDD')"
+ " THEN 1"
+ " ELSE NULL"
+ " END inspectie_steps"
+ " , CASE"
+ " WHEN idsc.ins_deelsrtcontrole_status < 5"
+ " THEN idsc.ins_deelsrtcontrole_datum_org"
+ " ELSE TO_DATE (NULL)"
+ " END inspectie_next"
+ " , di.ins_srtcontroledl_xcp_startdat"
+ " , idsc.ins_srtcontrole_key"
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
+ " , di.ins_srtcontrole_groep"
+ " , di.ins_srtcontrole_opmerking"
+ " , idsc.ins_deelsrtcontrole_key"
+ " , di.ins_srtcontrole_periode periode"
+ " , di.ins_srtcontrole_eenheid eenheid"
+ " , di.ins_srtcontrole_kosten kosten"
+ " , di.ins_srtcontrole_mode isc_mode"
+ " , idsc.ins_deelsrtcontrole_plandatum plandatum"
+ " , idsc.ins_deelsrtcontrole_opmerking"
+ " , " + S("prs_pers_string") + " inspecteur"
+ " , di.ctr_controle_type"
+ " , idsc.ins_deelsrtcontrole_status"
+ " , di.ins_srtcontrole_eind inspectie_eind"
+ " , di.ins_srtcontrole_options options"
+ " , cm.ins_controlemode_success ins_controlemode_success"
+ " FROM ins_v_defined_inspect_xcp di"
+ " , ins_deelsrtcontrole idsc"
+ " , prs_perslid p"
+ " , ins_controlemode cm"
+ " WHERE idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
+ " AND idsc.ins_deel_key = di.ins_deel_key"
+ " AND idsc.prs_perslid_key = p.prs_perslid_key(+)"
+ " AND idsc.ins_controlemode_key = cm.ins_controlemode_key(+)"
+ " AND di.ins_deel_key = " + ins_key
+ " AND di.ins_srtcontrole_periode > 0" // Als de periode 0 is dan de inspecties die gaan komen niet meer tonen.
+ " AND di.ctr_discipline_key IN (SELECT w.ins_discipline_key"
+ " FROM fac_v_webgebruiker w"
+ " , fac_functie f"
+ " WHERE w.fac_functie_key = f.fac_functie_key "
+ " AND f.fac_functie_code = 'WEB_CTRUSE'"
+ " AND w.fac_gebruiker_prs_level_read < 9"
+ " AND w.fac_gebruiker_alg_level_read < 9"
+ " AND w.prs_perslid_key = " + user_key + ")"
// Gedaande inspectie altijd tonen.
+ " )"
+ " ORDER BY seq, ins_deelsrtcontrole_key DESC, ins_deelsrtcontrole_datum DESC, inspectie_org DESC, inspectie_next, ins_srtcontrole_omschrijving";
var sql = insp.list_sql(ins_key, {past: true, future: true});
function fnrowData(oRs)
{

View File

@@ -3,9 +3,6 @@
$Id$
*/
%>
<!-- #include file="../PRS/prs.inc" -->
<!-- #include file="../Shared/discx3d.inc" -->
<!-- #include file="../Shared/getkenmerksql.inc" -->
<%
insp = {

View File

@@ -16,10 +16,10 @@
<!-- #include file="../mld/mld.inc" -->
<!-- #include file="../ins/ins.inc" -->
<!-- #include file="../ins/ins_flexkenmerksrtcontrole.inc" -->
<!-- #include file="../ins/ins_inspect_list.inc" -->
<!-- #include file="./mobile.inc" -->
<!-- #include file="./iface.inc" -->
<!-- #include file="./resultset_table.inc" -->
<!-- #include file="./ins_inspect.inc" -->
<!-- #include file="../Shared/json2.js" -->
<%

View File

@@ -18,7 +18,6 @@
<!-- #include file="./mobile.inc" -->
<!-- #include file="./iface.inc" -->
<!-- #include file="./resultset_table.inc" -->
<!-- #include file="./ins_inspect.inc" -->
<!-- #include file="../Shared/json2.js" -->
<%
@@ -37,7 +36,7 @@ var deelsrtcontrole = { deelsrtcontrole_key: getQParamInt("deelsrtcontrole_key")
<body>
<%
PAGE_START();
HEADER({title: L("ins_srtcontrole"), back:!qrc});
HEADER({title: L("ins_srtcontrole"), back:!qrc, home: !qrc});
CONTENT_START();
var sql = "SELECT idsc.ins_deelsrtcontrole_datum"
+ " , idsc.ins_deelsrtcontrole_opmerking"