ASFC#34371: Start en stopmoment bij schoonmaak via inspecties kunnen vastleggen.
svn path=/Website/trunk/; revision=28448
This commit is contained in:
@@ -45,6 +45,20 @@ ins = {checkAutLevel:
|
||||
return true; // Okido
|
||||
},
|
||||
|
||||
setinspectstatus:
|
||||
function (deelsrtcontrole_key, ins_inspect_status_key, uitvoerende)
|
||||
{ // Zet de status en geef de bijpassende tracking en notificatie.
|
||||
var sql = "BEGIN ins.setinspectstatus(" + deelsrtcontrole_key + ", " + ins_inspect_status_key + ", " + user_key + "); END;"
|
||||
Oracle.Execute(sql);
|
||||
},
|
||||
|
||||
trackinspectupdate:
|
||||
// Let op: dit moet wellicht niet altijd (aangeroepen na save)
|
||||
function (deelsrtcontrole_key, ptxt)
|
||||
{
|
||||
shared.trackaction("INSCUP", deelsrtcontrole_key, ptxt);
|
||||
},
|
||||
|
||||
getBindingItemString:
|
||||
function(bind, bind_key, parent_key)
|
||||
{
|
||||
@@ -599,7 +613,7 @@ ins = {checkAutLevel:
|
||||
iresult.canCopy = iresult.canWrite("WEB_INSMAN"); // Kopi<70>ren
|
||||
}
|
||||
iresult.canInspect = iresult.canWrite("WEB_INSUSE"); // Kopi<70>ren
|
||||
iresult.canChangeInt = iresult.canWrite("WEB_INSMAN"); // Interval kenmerken/parameters wijzigen
|
||||
iresult.canChangeXcp = iresult.canWrite("WEB_INSMAN"); // Interval kenmerken/parameters wijzigen (waarden in ins_srtcontroledl_xcp tabel).
|
||||
return iresult;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ var srtcontr_key = getFParamInt("srtcontr_key");
|
||||
|
||||
// Mag ik het object aanpassen?
|
||||
var this_ins = ins.func_enabled_deel(ins_key);
|
||||
user.anything_todo_or_abort(this_ins.canChangeInt);
|
||||
user.anything_todo_or_abort(this_ins.canChangeXcp);
|
||||
|
||||
var sql = "DELETE FROM ins_srtcontroledl_xcp"
|
||||
+ " WHERE ins_deel_key = " + ins_key
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
<!-- #include file="../Shared/resultset_table_v2.inc" -->
|
||||
<!-- #include file="ins.inc" -->
|
||||
<%
|
||||
FCLTHeader.Requires({ js: ["../ins/ins_list.js", "jquery-ui.js"]});
|
||||
FCLTHeader.Requires({ js: ["jquery-ui.js"]});
|
||||
|
||||
var ins_key = getQParamInt("ins_key");
|
||||
var outputmode = getQParamInt("outputmode", 0);
|
||||
var showall = getQParamInt("showall", 0) == 1;
|
||||
var print = (outputmode == 1);
|
||||
var excel = (outputmode == 2);
|
||||
var print = (outputmode == 1 || outputmode == 5);
|
||||
var excel = (outputmode == 2 || outputmode == 6);
|
||||
|
||||
// Vooralsnog gebruiken we de relatieve INSUSE als rechtenbeperking voor insepecties
|
||||
// Merk op dat de scope nog wordt genegeerd.
|
||||
@@ -35,17 +35,97 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
<head>
|
||||
<% FCLTHeader.Generate({outputmode: outputmode}); %>
|
||||
<script>
|
||||
function ins_edit(row)
|
||||
function insEditInsp(row)
|
||||
{
|
||||
$(row).addClass('dirty');
|
||||
var insKeyString = row.getAttribute("ROWKEY");
|
||||
var rowdata = eval("(" + row.getAttribute("ROWDATA") + ")");
|
||||
if (rowdata)
|
||||
{
|
||||
var insData = eval('(' + row.getAttribute("ROWDATA") + ')');
|
||||
if (insData)
|
||||
srtcontrolekey = rowdata.insSrtControleKey;
|
||||
//deellsrtcontkey = rowdata.insDeelSrtContrKey;
|
||||
var url = "appl/ins/ins_edit_inspect.asp?ins_keys=" + insKeyString + "&srtcont_keys=" + srtcontrolekey// + "&deelsrtcont_key=" + deellsrtcontkey;
|
||||
FcltMgr.openDetail(url, L("lcl_change"), {callback: FcltCallbackRefresh});
|
||||
}
|
||||
}
|
||||
|
||||
function insPlan(row)
|
||||
{
|
||||
$(row).addClass('dirty');
|
||||
var insKeyString = row.getAttribute("ROWKEY");
|
||||
var rowdata = eval("(" + row.getAttribute("ROWDATA") + ")");
|
||||
if (rowdata)
|
||||
{
|
||||
srtcontrolekey = rowdata.insSrtControleKey;
|
||||
//deellsrtcontkey = rowdata.insDeelSrtContrKey;
|
||||
var url = "appl/ins/ins_edit_inspect.asp?plan=1&ins_keys=" + insKeyString + "&srtcont_keys=" + srtcontrolekey// + "&dlsrtcont_keys=" + deellsrtcontkey;
|
||||
FcltMgr.openDetail(url, L("lcl_ins_schedule"), {callback: FcltCallbackRefresh});
|
||||
}
|
||||
}
|
||||
|
||||
function insStart(row)
|
||||
{
|
||||
if (confirm(L("lcl_ins_starting")))
|
||||
{
|
||||
var insKeyString = row.getAttribute("ROWKEY");
|
||||
var rowdata = eval("(" + row.getAttribute("ROWDATA") + ")");
|
||||
if (rowdata)
|
||||
{
|
||||
var url = "appl/ins/ins_inspect.asp?ins_keys=<%=ins_key%>&urole=bo"
|
||||
+"&srtcont_key="+insData.ins_srtcontrole_key
|
||||
+"&deelsrtcont_key="+insData.ins_deelsrtcontrole_key;
|
||||
FcltMgr.openDetail(url, L('lcl_ins_docontrole'));
|
||||
srtcontrolekey = rowdata.insSrtControleKey;
|
||||
//deellsrtcontkey = rowdata.insDeelSrtContrKey;
|
||||
|
||||
var data = { ins_keys: insKeyString,
|
||||
srtcont_keys: srtcontrolekey
|
||||
//dlsrtcont_keys: deellsrtcontkey
|
||||
};
|
||||
|
||||
protectRequest.dataToken(data);
|
||||
$.post( "ins_inspect_start.asp"
|
||||
, data
|
||||
, FcltCallbackRefresh
|
||||
, "json"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function insClose(row)
|
||||
{
|
||||
$(row).addClass('dirty');
|
||||
var insKeyString = row.getAttribute("ROWKEY");
|
||||
var rowdata = eval("(" + row.getAttribute("ROWDATA") + ")");
|
||||
if (rowdata)
|
||||
{
|
||||
srtcontrolekey = rowdata.insSrtControleKey;
|
||||
//deellsrtcontkey = rowdata.insDeelSrtContrKey;
|
||||
var url = "appl/ins/ins_edit_inspect.asp?close=1&ins_keys=" + insKeyString + "&srtcont_keys=" + srtcontrolekey// + "&dlsrtcont_keys=" + deellsrtcontkey;
|
||||
FcltMgr.openDetail(url, L("lcl_ins_close"), {callback: FcltCallbackRefresh});
|
||||
}
|
||||
}
|
||||
|
||||
function insFinish(row)
|
||||
{
|
||||
if (confirm(L("lcl_ins_finishing")))
|
||||
{
|
||||
var insKeyString = row.getAttribute("ROWKEY");
|
||||
var rowdata = eval("(" + row.getAttribute("ROWDATA") + ")");
|
||||
if (rowdata)
|
||||
{
|
||||
deellsrtcontkey = rowdata.insDeelSrtContrKey;
|
||||
|
||||
var data = { ins_keys: insKeyString,
|
||||
dlsrtcont_keys: deellsrtcontkey
|
||||
};
|
||||
|
||||
protectRequest.dataToken(data);
|
||||
$.post( "ins_inspect_finish.asp"
|
||||
, data
|
||||
, FcltCallbackRefresh
|
||||
, "json"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
@@ -57,21 +137,25 @@ 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 MAX (GREATEST(COALESCE (idsc.ins_deelsrtcontrole_datum_xcp"
|
||||
+ " , 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)"
|
||||
+ " , 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"
|
||||
var lastinspect = "(SELECT GREATEST(COALESCE (idsc.ins_deelsrtcontrole_plandatum"
|
||||
+ " , 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)"
|
||||
+ " , 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_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))";
|
||||
|
||||
var sql = "SELECT *"
|
||||
+ " FROM (WITH defined_inspect AS (SELECT id.ins_srtdeel_key srtdeel_key"
|
||||
@@ -101,6 +185,8 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
|
||||
+ " AND id.ins_deel_key = " + ins_key + ")"
|
||||
// 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"
|
||||
@@ -108,69 +194,52 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
+ " , TO_DATE (NULL) ins_deelsrtcontrole_datum"
|
||||
+ " , NULL inspectie_org"
|
||||
+ " , NULL isrespijt"
|
||||
+ " , CASE WHEN COALESCE(xcp.ins_srtcontroledl_xcp_respijt, " + lastinspect + ") IS NULL THEN 1 ELSE 0 END nonext"
|
||||
+ " , 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())
|
||||
+ " , CASE"
|
||||
+ " WHEN COALESCE(xcp.ins_srtcontroledl_xcp_eenheid , di.ins_srtcontrole_eenheid) = 0 AND"
|
||||
+ " TRUNC(xcp.ins_srtcontroledl_xcp_respijt, 'HH24') >= TRUNC(SYSDATE, 'HH24')"
|
||||
+ " THEN 1"
|
||||
+ " WHEN COALESCE(xcp.ins_srtcontroledl_xcp_eenheid , di.ins_srtcontrole_eenheid) > 0 AND"
|
||||
+ " TRUNC(xcp.ins_srtcontroledl_xcp_respijt, 'DDD') >= TRUNC(SYSDATE, 'DDD')"
|
||||
+ " THEN 1"
|
||||
+ " ELSE fac.nextcyclusdatesteps (COALESCE(xcp.ins_srtcontroledl_xcp_respijt, " + lastinspect + ", SYSDATE)"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid , di.ins_srtcontrole_eenheid)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode , di.ins_srtcontrole_periode)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits))"
|
||||
+ " + CASE"
|
||||
+ " WHEN xcp.ins_srtcontroledl_xcp_respijt IS NOT NULL"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END"
|
||||
+ " END 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))
|
||||
+ " , CASE"
|
||||
+ " WHEN COALESCE(xcp.ins_srtcontroledl_xcp_eenheid , di.ins_srtcontrole_eenheid) = 0 AND"
|
||||
+ " TRUNC(xcp.ins_srtcontroledl_xcp_respijt, 'HH24') >= TRUNC(SYSDATE, 'HH24')"
|
||||
+ " THEN TRUNC(xcp.ins_srtcontroledl_xcp_respijt, 'HH24')"
|
||||
+ " WHEN COALESCE(xcp.ins_srtcontroledl_xcp_eenheid , di.ins_srtcontrole_eenheid) > 0 AND"
|
||||
+ " TRUNC(xcp.ins_srtcontroledl_xcp_respijt, 'DDD') >= TRUNC(SYSDATE, 'DDD')"
|
||||
+ " THEN TRUNC(xcp.ins_srtcontroledl_xcp_respijt, 'DDD')"
|
||||
+ " ELSE fac.nextcyclusdate (COALESCE(" + lastinspect + ", di.ins_deel_aanmaak)"
|
||||
+ " , fac.nextcyclusdatesteps (COALESCE(" + lastinspect + ", SYSDATE)"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid , di.ins_srtcontrole_eenheid)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode , di.ins_srtcontrole_periode)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits)"
|
||||
+ " , CASE"
|
||||
+ " WHEN di.ins_srtcontrole_mode = 1" // Interval modus
|
||||
+ " THEN 1"
|
||||
+ " WHEN COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, 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 COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, 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)"
|
||||
+ " END inspectie_next"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, 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"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid , di.ins_srtcontrole_eenheid)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode , di.ins_srtcontrole_periode)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits)"
|
||||
+ " , CASE"
|
||||
+ " WHEN di.ins_srtcontrole_mode = 1" // Interval modus
|
||||
+ " THEN 1"
|
||||
+ " WHEN COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, 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 COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, 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_srtcontrole_key"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_groep"
|
||||
+ " , di.ins_srtcontrole_opmerking"
|
||||
+ " , -1 ins_deelsrtcontrole_key"
|
||||
+ " , NULL ins_deelsrtcontrole_key"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) periode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) eenheid"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_kosten, di.ins_srtcontrole_kosten) kosten"
|
||||
+ " , di.ins_srtcontrole_mode isc_mode"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_respijt respijt"
|
||||
+ " , NULL plandatum"
|
||||
+ " , '' ins_deelsrtcontrole_opmerking"
|
||||
+ " , NULL inspecteur"
|
||||
+ " , di.ins_srtcontrole_type"
|
||||
+ " , -1 ins_deelsrtcontrole_status"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
@@ -180,6 +249,12 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
+ " 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"
|
||||
+ " 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)"
|
||||
+ " UNION ALL"
|
||||
// Combineren met uitgevoerde inspecties op dit object
|
||||
+ " SELECT 2 seq"
|
||||
@@ -187,11 +262,25 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
+ " , di.ins_deel_aanmaak"
|
||||
+ " , di.ins_deel_aantal"
|
||||
+ " , idsc.ins_deelsrtcontrole_datum"
|
||||
+ " , COALESCE(ins_deelsrtcontrole_datum_xcp, ins_deelsrtcontrole_datum_org) inspectie_org"
|
||||
+ " , CASE WHEN ins_deelsrtcontrole_datum_xcp IS NULL THEN 0 ELSE 1 END isrespijt"
|
||||
+ " , COALESCE(idsc.ins_deelsrtcontrole_plandatum, ins_deelsrtcontrole_datum_org) inspectie_org"
|
||||
+ " , CASE WHEN idsc.ins_deelsrtcontrole_plandatum > idsc.ins_deelsrtcontrole_datum_org THEN 1 ELSE 0 END isrespijt"
|
||||
+ " , NULL nonext"
|
||||
+ " , NULL inspectie_steps"
|
||||
+ " , TO_DATE(NULL) inspectie_next"
|
||||
+ " , CASE"
|
||||
+ " WHEN COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, 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 COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, 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"
|
||||
+ " , idsc.ins_srtcontrole_key"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_groep"
|
||||
@@ -201,10 +290,12 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) eenheid"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_kosten, di.ins_srtcontrole_kosten) kosten"
|
||||
+ " , di.ins_srtcontrole_mode isc_mode"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_respijt respijt"
|
||||
+ " , idsc.ins_deelsrtcontrole_plandatum plandatum"
|
||||
+ " , idsc.ins_deelsrtcontrole_opmerking"
|
||||
+ " , " + S("prs_pers_string") + " inspecteur"
|
||||
+ " , di.ins_srtcontrole_type"
|
||||
+ " , idsc.ins_deelsrtcontrole_status"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " , ins_deelsrtcontrole idsc"
|
||||
@@ -221,17 +312,46 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
|
||||
function fnrowData(oRs)
|
||||
{
|
||||
var data = { insKey: ins_key,
|
||||
ins_srtcontrole_key: oRs("ins_srtcontrole_key").value,
|
||||
ins_deelsrtcontrole_key: oRs("ins_deelsrtcontrole_key").value||-1
|
||||
};
|
||||
var insKey = ins_key;
|
||||
var insSrtControleKey = oRs("ins_srtcontrole_key").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, insDeelSrtContrKey: insDeelSrtContrKey, ins_status: istatus};
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
|
||||
function fnrowActionEnabler(oRs)
|
||||
{
|
||||
// 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 this_ins = ins.func_enabled_deel(oRs("ins_deel_key").Value);
|
||||
var istatus = oRs("ins_deelsrtcontrole_status").Value != null? oRs("ins_deelsrtcontrole_status").Value : -1;
|
||||
|
||||
// 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;
|
||||
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);
|
||||
|
||||
var data = {eEdit: eEdit, ePlan: ePlan, eStart: eStart, eClose: eClose, eFinish: eFinish};
|
||||
return data;
|
||||
}
|
||||
|
||||
function fnrowClass(oRs)
|
||||
{
|
||||
var lclass = "";
|
||||
var istatus = oRs("ins_deelsrtcontrole_status").Value != null? oRs("ins_deelsrtcontrole_status").Value : -1;
|
||||
|
||||
if (istatus == 2)
|
||||
lclass = "pending";
|
||||
|
||||
if (oRs("seq").Value == 2) // klaar
|
||||
return "";
|
||||
return lclass;
|
||||
|
||||
var dt = new Date(oRs("inspectie_next").Value);
|
||||
dt.setHours(0,0,0,0); // trunc datum
|
||||
@@ -241,12 +361,12 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
var dtlate = new Date().setHours(0,0,0,0);
|
||||
|
||||
if (dt >= dtsoon)
|
||||
return ""; // meer dan 30 dagen in de toekomst
|
||||
return lclass; // meer dan 30 dagen in de toekomst
|
||||
|
||||
if (dt >= dtlate)
|
||||
return "expired1"; // Binnenkort
|
||||
return lclass + " expired1"; // Binnenkort
|
||||
|
||||
return "expired2"; // Te laat
|
||||
return lclass + " expired2"; // Te laat
|
||||
}
|
||||
|
||||
function fnControleDatum(oRs)
|
||||
@@ -262,8 +382,8 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
{
|
||||
if (oRs("seq").Value == 2)
|
||||
{
|
||||
var dt = new Date(oRs("inspectie_org").Value) ;
|
||||
var dtsting = (oRs("eenheid").value == 0? toDateTimeString(dt) : toDateString(dt)) + (oRs("isrespijt").Value == 1? " " + L("lcl_ins_respijt") : "");
|
||||
var dt = typeof oRs("inspectie_org").Value == "date"? new Date(oRs("inspectie_org").Value) : null;
|
||||
var dtsting = (typeof dt == "date" && oRs("eenheid").value == 0? toDateTimeString(dt) : toDateString(dt)) + (oRs("isrespijt").Value == 1? " " + L("lcl_ins_respijt") : "");
|
||||
return dtsting;
|
||||
}
|
||||
|
||||
@@ -271,23 +391,23 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
if (nonext)
|
||||
{
|
||||
switch (oRs("ins_srtcontrole_type").Value)
|
||||
{
|
||||
case 1: { var txt = L("lcl_ins_controle_first"); break; } // Eerste controle.
|
||||
{ // 1: Controle, 2: Vervanging, 3: Certificering.
|
||||
case 1: { var txt = L("lcl_ins_controle_first"); break; }; // Eerste controle.
|
||||
case 2:
|
||||
case 3: { var dt = new Date(oRs("inspectie_next").Value); // Registratiedatum.
|
||||
var txt = (oRs("eenheid").value == 0? toDateTimeString(dt) : toDateString(dt));
|
||||
break;
|
||||
} // Eerste certificering.
|
||||
case 3: { var dt = new Date(oRs("inspectie_next").Value); // Registratiedatum.
|
||||
var txt = (oRs("eenheid").value == 0? toDateTimeString(dt) : toDateString(dt));
|
||||
break;
|
||||
} // Eerste certificering.
|
||||
}
|
||||
return txt;
|
||||
}
|
||||
|
||||
var dt = new Date(oRs("inspectie_next").Value);
|
||||
var respijt = oRs("respijt").Value != null? " " + L("lcl_ins_respijt") : "";
|
||||
var plandatum = oRs("plandatum").Value != null? " " + L("lcl_ins_respijt") : "";
|
||||
dt = (oRs("eenheid").value == 0? toDateTimeString(dt) : toDateString(dt)); // Nog even afstemmen: altijd doen of alleen voor korte periode?
|
||||
if (oRs("isc_mode").Value == 0 && oRs("inspectie_steps").Value && oRs("inspectie_steps").Value > 1)
|
||||
dt += " (" + (parseInt(oRs("inspectie_steps").Value) - 1) + ")";
|
||||
return dt + respijt;
|
||||
return dt + plandatum;
|
||||
}
|
||||
|
||||
function fnSrtControleType(oRs)
|
||||
@@ -356,13 +476,14 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
buttons.push({ icon: "wijzigen.png", title: L("lcl_ins_change_xcp"), action: "FcltMgr.openModalDetail('" + addurl_editxcp + "', '" + L("lcl_ins_change_xcp") + "', {callback: FcltMgr.reload })" })
|
||||
}
|
||||
|
||||
var rst = new ResultsetTable({ sql: sql,
|
||||
keyColumn: "ins_deel_key", //dummy
|
||||
var rst = new ResultsetTable({ keyColumn: "ins_deel_key", //dummy
|
||||
sql: sql,
|
||||
ID: "inspecttable",
|
||||
rowData: fnrowData,
|
||||
rowActionEnabler: fnrowActionEnabler,
|
||||
rowClass: fnrowClass,
|
||||
showAll: showall,
|
||||
outputmode: outputmode,
|
||||
rowData: fnrowData,
|
||||
rowClass: fnrowClass,
|
||||
title: L("lcl_ins_planned_activities"),
|
||||
buttons: buttons
|
||||
});
|
||||
@@ -380,7 +501,13 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
rst.addColumn(new Column({caption: L("lcl_ins_controle_opm"), content: "ins_srtcontrole_opmerking"}));
|
||||
}
|
||||
if (this_ins.canChange)
|
||||
rst.addAction({ action: "ins_edit", caption: L("lcl_edit"), isDefault: true});
|
||||
{
|
||||
rst.addAction({ action: "insEditInsp", caption: L("lcl_edit"), enabler: "eEdit", isDefault: true });
|
||||
rst.addAction({ action: "insPlan", caption: L("lcl_ins_schedule"), enabler: "ePlan" });
|
||||
rst.addAction({ action: "insStart", caption: L("lcl_ins_start"), enabler: "eStart" });
|
||||
rst.addAction({ action: "insClose", caption: L("lcl_ins_close") + "/" + L("lcl_ins_finish"), enabler: "eClose" });
|
||||
rst.addAction({ action: "insFinish", caption: L("lcl_ins_finish"), enabler: "eFinish" });
|
||||
}
|
||||
|
||||
var cnt = rst.processResultset();
|
||||
%>
|
||||
|
||||
@@ -21,34 +21,44 @@ var JSON_Result = true;
|
||||
<!-- #include file="ins.inc" -->
|
||||
|
||||
<%
|
||||
var insp_actie = getFParamInt("inspectie_actie", 0); // Inspectie invoeren of uitstellen.
|
||||
//var insp_actie = getFParamInt("inspectie_actie", 0); // Inspectie invoeren of uitstellen.
|
||||
|
||||
var ins_key_arr = getFParamIntArray("ins_keys");
|
||||
var multi = ins_key_arr.length > 1;
|
||||
|
||||
if (multi)
|
||||
var srtcont_key_arr = getFParamIntArray("srtcont_key_arr", []); // Inspectiesoorten
|
||||
else
|
||||
var srtcont_key_arr = getFParamIntArray("sel_srtcontrole", -1); // voorgekozen inspectiesoort
|
||||
var srtcont_key_arr = getFParamIntArray("srtcont_key_arr", []); // Inspectiesoorten
|
||||
//var dlsrtcont_key_arr = getFParamIntArray("dlsrtcont_key_arr", []); // Inspecties
|
||||
|
||||
// Als multi dan moet de ins_deel array even groot zijn als de srtcontrole array.
|
||||
user.auth_required_or_abort(!multi || ins_key_arr.length == srtcont_key_arr.length);
|
||||
var savemode = getFParam("savemode");
|
||||
|
||||
var finish = getFParamInt("finish", 0) == 1; // Inspectie direct afronden.
|
||||
// Als multi dan moet de ins_deel array even groot zijn als de srtcontrole array en deelsrtcontrole array.
|
||||
user.auth_required_or_abort(!multi || (ins_key_arr.length == srtcont_key_arr.length));
|
||||
|
||||
var deelsrtcontrole_datum;
|
||||
var respijt_datum;
|
||||
var plandatum;
|
||||
var nextdate;
|
||||
if (insp_actie == 0)
|
||||
|
||||
if (savemode == "P") // Inplannen (Plan).
|
||||
plandatum = getFParamDate("plandatum");
|
||||
else if (savemode == "C") // Afmelden/Afronden (Close).
|
||||
deelsrtcontrole_datum = getFParamDate("deelsrtcontrole_datum", new Date);
|
||||
else
|
||||
respijt_datum = new Date(getFParamDate("respijt_datum"));
|
||||
else if (savemode == "E")
|
||||
{ // Wijzigen (Edit).
|
||||
plandatum = getFParamDate("plandatum", null);
|
||||
|
||||
if (multi)
|
||||
abort_with_warning(L("lcl_ins_allow_multi_edit"));
|
||||
}
|
||||
|
||||
var warning = "";
|
||||
var result = {};
|
||||
var tobeinspected = 0;
|
||||
var tobehandled = 0;
|
||||
var ingesloten = [];
|
||||
// Bepaal de objecten in de selectie die ook echt geinspecteerd kunnen of mogen worden.
|
||||
for (var i = 0; i < ins_key_arr.length; i++)
|
||||
{
|
||||
var dlsrtcont_key = -1;
|
||||
var sql = "SELECT *"
|
||||
+ " FROM (WITH defined_inspect AS (SELECT isc.ins_srtcontrole_key"
|
||||
+ " , isc.ins_srtcontrole_mode"
|
||||
@@ -67,9 +77,11 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
|
||||
+ " AND id.ins_deel_key = " + ins_key_arr[i] + ")"
|
||||
+ " SELECT di.ins_srtcontrole_key"
|
||||
+ " , idsc.ins_deelsrtcontrole_key"
|
||||
+ " , idsc.ins_deelsrtcontrole_datum"
|
||||
+ " , COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) eenheid"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , idsc.ins_deelsrtcontrole_status"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " , ins_deelsrtcontrole idsc"
|
||||
@@ -84,8 +96,21 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
+ " ORDER BY ins_deelsrtcontrole_datum DESC";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
// Waarden moeten aanwezig zijn. Mocht dat niet zo zijn dan is er iets fout.
|
||||
var ins_srtcontrole_mode = oRs("ins_srtcontrole_mode").Value;
|
||||
var ins_deelsrtcontrole_status = oRs("ins_deelsrtcontrole_status").Value != null? oRs("ins_deelsrtcontrole_status").Value : -1; // Als er nog geen inspectie is geweest is de status -1.
|
||||
var eenheid = oRs("eenheid").Value;
|
||||
var ins_deelsrtcontrole_datum = oRs("ins_deelsrtcontrole_datum").Value;
|
||||
var ins_deelsrtcontrole_key = oRs("ins_deelsrtcontrole_key").Value;
|
||||
|
||||
if (insp_actie == 0)
|
||||
// Inplannen (dlsrtcont_key = -1).
|
||||
// Het is de eerste inspectie of de laatste inspectie moet verwerkt(6) zijn, anders kan de inspectie niet ingepland worden.
|
||||
if (savemode == "P" && (ins_deelsrtcontrole_status != -1 && ins_deelsrtcontrole_status != 6)) // Inplannen.
|
||||
{ // Het is niet de eerste inspectie of de laatste inspectie is niet verwerkt. Overslaan.
|
||||
oRs.Close();
|
||||
continue;
|
||||
}
|
||||
|
||||
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.
|
||||
var deelsrtcontrole_midnighttime = deelsrtcontrole_datum.midnight().getTime();
|
||||
@@ -93,22 +118,22 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
var deelsrtcontrole_hourtime = new Date(new Date(parseInt(deelsrtcontrole_hourtime.getTime())).setMinutes(0,0,0)).getTime();
|
||||
// Controle of er op de inspectiedatum of op het inspectieuur al inspecties zijn geweest
|
||||
// TODO: Wat te doen met extra inspecties. En per week/maand/jaar enz.
|
||||
if (oRs("ins_deelsrtcontrole_datum").Value != null)
|
||||
if (ins_deelsrtcontrole_datum != null)
|
||||
{
|
||||
if ((oRs("eenheid").Value > 0) && oRs("ins_srtcontrole_mode").Value == 0 && // Geldt alleen voor momentmodus.
|
||||
(deelsrtcontrole_midnighttime == new Date(oRs("ins_deelsrtcontrole_datum").Value).midnight().getTime()))
|
||||
if ((eenheid > 0) && ins_srtcontrole_mode == 0 && // Geldt alleen voor momentmodus.
|
||||
(deelsrtcontrole_midnighttime == new Date(ins_deelsrtcontrole_datum).midnight().getTime()))
|
||||
{ // Op dezelfde dag mag niet. Overslaan.
|
||||
oRs.Close();
|
||||
continue;
|
||||
}
|
||||
else if ((oRs("eenheid").Value == 0) && oRs("ins_srtcontrole_mode").Value == 0 && // Geldt alleen voor momentmodus.
|
||||
(deelsrtcontrole_hourtime == new Date(new Date(oRs("ins_deelsrtcontrole_datum").Value).setMinutes(0,0,0)).getTime()))
|
||||
else if ((eenheid == 0) && ins_srtcontrole_mode == 0 && // Geldt alleen voor momentmodus.
|
||||
(deelsrtcontrole_hourtime == new Date(new Date(ins_deelsrtcontrole_datum).setMinutes(0,0,0)).getTime()))
|
||||
{ // In dezelfde minuut (tijdstip) mag niet. Overslaan.
|
||||
oRs.Close();
|
||||
continue;
|
||||
}
|
||||
else if (new Date(deelsrtcontrole_datum.setSeconds(0, 0)).getTime() == new Date(new Date(oRs("ins_deelsrtcontrole_datum").Value)).getTime() &&
|
||||
oRs("ins_srtcontrole_mode").Value == 1)
|
||||
else if (new Date(deelsrtcontrole_datum.setSeconds(0, 0)).getTime() == new Date(new Date(ins_deelsrtcontrole_datum)).getTime() &&
|
||||
ins_srtcontrole_mode == 1)
|
||||
{ // Een inspectie doen op dezelfde datumtijd (controledatum hetzelfde) mag niet omdat je daarna dan niet meer de volgende inspectie kunt doen.
|
||||
// De geplande _org tijd is dan hetzelfde als de laatste inspectie omdat de volgende inspectie dan niet opgeschoven is.
|
||||
// Inspecties op dezelfde datumtijd moeten dus afgevangen worden.
|
||||
@@ -117,62 +142,130 @@ for (var i = 0; i < ins_key_arr.length; i++)
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (ins_deelsrtcontrole_status == 5)
|
||||
{ // Laatste inspectie is niet verwerkt. Overslaan.
|
||||
oRs.Close();
|
||||
continue;
|
||||
}
|
||||
else if (ins_deelsrtcontrole_status >= 0 && ins_deelsrtcontrole_status != 6)
|
||||
dlsrtcont_key = ins_deelsrtcontrole_key;
|
||||
}
|
||||
var ins_srtcontrole_mode = oRs("ins_srtcontrole_mode").Value;
|
||||
|
||||
if (savemode == "E") // Wijzigen.
|
||||
{ // Het mag niet de eerste inspectie zijn en de laatste inspectie mag niet verwerkt zijn.
|
||||
if (ins_deelsrtcontrole_status == -1 || ins_deelsrtcontrole_status == 6)
|
||||
{ // Eerste inspectoe of verwerkte inspectie kan niet gewijzigd worden. Overslaan.
|
||||
oRs.Close();
|
||||
continue;
|
||||
}
|
||||
else
|
||||
dlsrtcont_key = ins_deelsrtcontrole_key;
|
||||
}
|
||||
|
||||
oRs.Close();
|
||||
|
||||
var this_ins = ins.func_enabled_deel(ins_key_arr[i]);
|
||||
// Als ik mag inspecteren mag ik ook de respijt aangeven.
|
||||
// Als ik mag inspecteren mag ik ook inplannen.
|
||||
if (this_ins.canInspect)
|
||||
{
|
||||
ingesloten.push({ins_key: ins_key_arr[i], srtcont_key: srtcont_key_arr[i], inspectiemode: ins_srtcontrole_mode});
|
||||
tobeinspected++;
|
||||
ingesloten.push({ins_key: ins_key_arr[i], srtcont_key: srtcont_key_arr[i], dlsrtcont_key: dlsrtcont_key,
|
||||
inspectiemode: ins_srtcontrole_mode, inspectiestatus: ins_deelsrtcontrole_status});
|
||||
tobehandled++;
|
||||
}
|
||||
}
|
||||
user.anything_todo_or_abort(tobeinspected > 0); // We klagen niet over enkele wel en enkele niet
|
||||
|
||||
// De respijtdatum (exception tabel) verwijderen.
|
||||
function verwijderrespijt(ins_key, srtcont_key)
|
||||
user.anything_todo_or_abort(tobehandled > 0); // We klagen niet over enkele wel en enkele niet
|
||||
|
||||
function saveFlexKenmerkenInspection(pdlsrtcont_key, pinsPresent)
|
||||
{
|
||||
sqlR = "UPDATE ins_srtcontroledl_xcp"
|
||||
+ " SET ins_srtcontroledl_xcp_respijt = NULL"
|
||||
+ " WHERE ins_deel_key = " + ins_key
|
||||
+ " AND ins_srtcontrole_key = " + srtcont_key;
|
||||
Oracle.Execute(sqlR);
|
||||
// HIER WORDEN DE SAVEFLEXKENMERKEN GEREGELD
|
||||
currentKenmerkenSQL = " SELECT kd.ins_kenmerk_key"
|
||||
+ " , kd.ins_kmdeelsrtcontr_waarde"
|
||||
+ " FROM ins_kmdeelsrtcontr kd"
|
||||
+ " , ins_kenmerk k"
|
||||
+ " WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key"
|
||||
+ " AND kd.ins_kmdeelsrtcontr_verwijder IS NULL"
|
||||
+ " AND kd.ins_deelsrtcontrole_key = " + pdlsrtcont_key;
|
||||
|
||||
// Zijn er nog exceptions actief voor het object voor deze soort controle? Anders kan de entry in de exception tabel verwijderd worden.
|
||||
sqlR = "SELECT ins_srtcontroledl_xcp_key"
|
||||
+ " FROM ins_srtcontroledl_xcp"
|
||||
+ " WHERE ins_deel_key = " + ins_key
|
||||
+ " AND ins_srtcontrole_key = " + srtcont_key
|
||||
+ " AND ins_srtcontroledl_xcp_respijt IS NULL"
|
||||
+ " AND ins_srtcontroledl_xcp_periode IS NULL"
|
||||
+ " AND ins_srtcontroledl_xcp_eenheid IS NULL"
|
||||
+ " AND ins_srtcontroledl_xcp_bits IS NULL";
|
||||
oRs = Oracle.Execute(sqlR);
|
||||
if (!oRs.eof)
|
||||
{ // Geen ingevulde exceptions. Dan kan de entry in de exception tabel worden verwijderd.
|
||||
sqlR = "DELETE FROM ins_srtcontroledl_xcp"
|
||||
+ " WHERE ins_deel_key = " + ins_key
|
||||
+ " AND ins_srtcontrole_key = " + srtcont_key;
|
||||
Oracle.Execute(sqlR);
|
||||
}
|
||||
oRs.Close();
|
||||
var ftrack = saveFlexKenmerken( pdlsrtcont_key
|
||||
, { kenmerkTable: "ins_kmdeelsrtcontr"
|
||||
, kenmerkParentKey : "ins_deelsrtcontrole_key"
|
||||
, kenmerkWaarde: "ins_kmdeelsrtcontr_waarde"
|
||||
, kenmerkKey: "ins_kenmerk_key"
|
||||
, currentKenmerkenSQL: currentKenmerkenSQL
|
||||
, requestQF: Request.Form
|
||||
, isNew: !pinsPresent
|
||||
, flexPath: "INS/I"
|
||||
, module: "INS"
|
||||
}
|
||||
);
|
||||
return ftrack;
|
||||
}
|
||||
|
||||
if (insp_actie == 0)
|
||||
{
|
||||
var deelsrtcont_key = getQParamInt("deelsrtcont_key", -1); // bestaande inspectie
|
||||
var isNew = (deelsrtcont_key < 0);
|
||||
|
||||
// Bij bestaande inspecties mag het geen multi zijn.
|
||||
user.auth_required_or_abort(isNew || !multi);
|
||||
if (savemode == "P")
|
||||
{ // Inplannen inspectie.
|
||||
var result = { success: true, plandatum: plandatum };
|
||||
|
||||
var result = { success: true, deelsrtcontrole_datum: deelsrtcontrole_datum, deelsrtcontrole_key: deelsrtcont_key };
|
||||
for (var i = 0; i < ingesloten.length; i++)
|
||||
{ // Zetten van de status en afhandelen van de tracking van het starten.
|
||||
|
||||
// Is er een inspectie (ins_deelsrtcontrole) record aanwezig (ins_deelsrtcontrole_key is NULL).
|
||||
var insPresent = ingesloten[i].dlsrtcont_key > 0;
|
||||
|
||||
// Eerst maar eens aanmaken een inspectie record aanmaken.
|
||||
// Zijn er inspecties geweest voor dit object of is er een plandatum voor dit object ingevuld zodat we de volgende inspectiedatum kunnen berekenen?
|
||||
var sql = "SELECT ins_deelsrtcontrole_datum"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_srtcontrole_key = " + ingesloten[i].srtcont_key
|
||||
+ " AND idsc.ins_deel_key = " + ingesloten[i].ins_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var nextdate = null;
|
||||
if (!oRs.eof)
|
||||
{ // Bereken de volgende inspectiedatum.
|
||||
sql = "SELECT ins.nextcyclusdate (" + ingesloten[i].ins_key + ", " + ingesloten[i].srtcont_key + ", 1) nextdate FROM DUAL"
|
||||
oRs = Oracle.Execute(sql);
|
||||
nextdate = new Date(oRs("nextdate").Value);
|
||||
}
|
||||
//else Er zijn nog geen inspecties geweest voor dit object en er is nog geen plandatum voor dit object ingevuld.
|
||||
// Volgende inspectiedatum kun je niet berekenen en is dus onbekend (leeg)
|
||||
|
||||
var fields = [{dbs: "ins_deelsrtcontrole_key", typ: "key", seq: "ins_s_ins_deelsrtcontrole_key"},
|
||||
{dbs: "ins_deel_key", typ: "key", val: ingesloten[i].ins_key},
|
||||
{dbs: "ins_srtcontrole_key", typ: "key", val: ingesloten[i].srtcont_key},
|
||||
{dbs: "ins_deelsrtcontrole_opmerking", typ: "varchar", frm: "opmerk", track: L("lcl_remark"), len: 2000 },
|
||||
{dbs: "prs_perslid_key", typ: "key", val: user_key},
|
||||
{dbs: "ins_deelsrtcontrole_plandatum", typ: "datetime", val: plandatum},
|
||||
{dbs: "ins_deelsrtcontrole_datum_org", typ: "datetime", val: nextdate}
|
||||
];
|
||||
|
||||
var insIns = buildInsert("ins_deelsrtcontrole", fields);
|
||||
ingesloten[i].dlsrtcont_key = insIns.sequences["ins_deelsrtcontrole_key"];
|
||||
var err = Oracle.Execute(insIns.sql, true);
|
||||
|
||||
if (err.friendlyMsg)
|
||||
{
|
||||
result.warning = err.friendlyMsg;
|
||||
result.success = false;
|
||||
}
|
||||
|
||||
// Nu nog de status zetten, tracking genereren en notificaties sturen.
|
||||
ins.setinspectstatus(ingesloten[i].dlsrtcont_key, 0); // Gepland(0).
|
||||
}
|
||||
}
|
||||
else if (savemode == "C")
|
||||
{ // Afmelden inspectie.
|
||||
var result = { success: true, deelsrtcontrole_datum: deelsrtcontrole_datum };
|
||||
|
||||
for (var i = 0; i < ingesloten.length; i++)
|
||||
{
|
||||
if (isNew) // Nieuwe inspectie
|
||||
// Nieuwe inspectie; de ins_deelsrtcontrole_key is NULL of als deze een waarde heeft dan is de status 0 of 2.
|
||||
var isNew = ingesloten[i].dlsrtcont_key < 0 || ingesloten[i].inspectiestatus < 5;
|
||||
// Is er een inspectie (ins_deelsrtcontrole) record aanwezig (ins_deelsrtcontrole_key is NULL).
|
||||
var insPresent = ingesloten[i].dlsrtcont_key > 0;
|
||||
|
||||
if (isNew) // Nieuwe inspectie.
|
||||
{ // Bepaal de eerste niet successvolle controle methode. Is deze er niet dan kies maar de eerste successvolle controlemode.
|
||||
sql = "SELECT ins_controlemode_key"
|
||||
+ " , 1"
|
||||
@@ -202,38 +295,14 @@ if (insp_actie == 0)
|
||||
var eenheid = oRs("eenheid").Value;
|
||||
oRs.Close();
|
||||
|
||||
// Is er een respijt datum? Dan is dit de volgende inspectiedatum.
|
||||
sql = " SELECT xcp.ins_srtcontroledl_xcp_respijt respijt"
|
||||
+ " FROM ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE xcp.ins_deel_key = " + ingesloten[i].ins_key
|
||||
+ " AND xcp.ins_srtcontrole_key = " + ingesloten[i].srtcont_key
|
||||
+ " AND xcp.ins_srtcontroledl_xcp_respijt IS NOT NULL";
|
||||
oRs = Oracle.Execute(sql);
|
||||
|
||||
var respijt = false;
|
||||
var respijtdate;
|
||||
if (!oRs.eof)
|
||||
{
|
||||
// De respijtdatum is de volgende inspectiedatum
|
||||
var respijtdate = new Date(oRs("respijt").Value);
|
||||
respijt = true;
|
||||
}
|
||||
oRs.Close();
|
||||
|
||||
// Zijn er inspecties geweest voor dit object of is er een respijtdatum voor dit object ingevuld zodat we de volgende inspectiedatum kunnen berekenen?
|
||||
// Zijn er inspecties geweest voor dit object of is er een plandatum voor dit object ingevuld zodat we de volgende inspectiedatum kunnen berekenen?
|
||||
sql = "SELECT ins_deelsrtcontrole_datum"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_srtcontrole_key = " + ingesloten[i].srtcont_key
|
||||
+ " AND idsc.ins_deel_key = " + ingesloten[i].ins_key
|
||||
+ " UNION "
|
||||
+ "SELECT xcp.ins_srtcontroledl_xcp_respijt"
|
||||
+ " FROM ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE xcp.ins_deel_key = " + ingesloten[i].ins_key
|
||||
+ " AND xcp.ins_srtcontrole_key = " + ingesloten[i].srtcont_key
|
||||
+ " AND xcp.ins_srtcontroledl_xcp_respijt IS NOT NULL";
|
||||
+ " AND idsc.ins_deel_key = " + ingesloten[i].ins_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (oRs.eof)
|
||||
{ // Er zijn nog geen inspecties geweest voor dit object en er is nog geen respijtdatum voor dit object ingevuld.
|
||||
{ // Er zijn nog geen inspecties geweest voor dit object en er is nog geen plandatum voor dit object ingevuld.
|
||||
// Volgende inspectiedatum kun je niet berekenen
|
||||
// De eerstvolgende inspectiedatum gelijk aan de controledatum stellen.
|
||||
nextdate = new Date(deelsrtcontrole_datum);
|
||||
@@ -241,27 +310,60 @@ if (insp_actie == 0)
|
||||
}
|
||||
else
|
||||
{ // Bereken de volgende inspectiedatum.
|
||||
oRs.Close();
|
||||
sql = "SELECT ins.nextcyclusdate (" + ingesloten[i].ins_key + ", " + ingesloten[i].srtcont_key + ", 1) nextdate FROM DUAL"
|
||||
oRs = Oracle.Execute(sql);
|
||||
nextdate = new Date(oRs("nextdate").Value);
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
var respijt = false;
|
||||
if (insPresent)
|
||||
{
|
||||
// Is er een plandatum? Dan is dit de volgende inspectiedatum.
|
||||
sql = "SELECT ins_deelsrtcontrole_plandatum"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_deelsrtcontrole_status <= 5"
|
||||
+ " AND idsc.ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key
|
||||
+ " AND idsc.ins_srtcontrole_key = " + ingesloten[i].srtcont_key
|
||||
+ " AND idsc.ins_deel_key = " + ingesloten[i].ins_key
|
||||
oRs = Oracle.Execute(sql);
|
||||
|
||||
if (!oRs.eof)
|
||||
{
|
||||
// De plandatum is de volgende inspectiedatum
|
||||
plandatum = new Date(oRs("ins_deelsrtcontrole_plandatum").Value);
|
||||
// Alleen als de plandatum na de volgende inspectiedatum valt is er sprake van respijt.
|
||||
respijt = plandatum > nextdate;
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
// Truncate datums op de dag of het uur afhankelijk van de eenheid.
|
||||
if (eenheid == 0)
|
||||
{
|
||||
var nextdate_trunc = new Date(new Date(nextdate).setMinutes(0, 0, 0));
|
||||
var deelsrtcontrole_datum_trunc = new Date(new Date(deelsrtcontrole_datum).setMinutes(0, 0, 0));
|
||||
if (respijt)
|
||||
respijtdate = new Date(respijtdate.setMinutes(0, 0, 0));
|
||||
plandatum = new Date(plandatum.setMinutes(0, 0, 0));
|
||||
}
|
||||
else
|
||||
{
|
||||
var nextdate_trunc = new Date(nextdate.midnight());
|
||||
var deelsrtcontrole_datum_trunc = new Date(deelsrtcontrole_datum.midnight());
|
||||
if (respijt)
|
||||
respijtdate = new Date(respijtdate.midnight());
|
||||
plandatum = new Date(plandatum.midnight());
|
||||
}
|
||||
|
||||
var fields = [ { dbs: "ins_deelsrtcontrole_opmerking", typ: "varchar", frm: "opmerk", track: L("lcl_remark"), len: 2000 },
|
||||
{ dbs: "prs_perslid_key", typ: "key", val: user_key, track: L("lcl_name"), foreign: "prs_perslid" },
|
||||
{ dbs: "ins_deelsrtcontrole_datum", typ: "datetime", val: deelsrtcontrole_datum, track: L("lcl_ins_controle_datum") } // De controledatum met tijd opslaan.
|
||||
];
|
||||
if (!insPresent)
|
||||
{ // Er is nog inspectie record aangemaakt. De volgende velden dienen dan nog ingevuld te worden.
|
||||
fields.push({ dbs: "ins_deel_key", typ: "key", val: ingesloten[i].ins_key });
|
||||
fields.push({ dbs: "ins_srtcontrole_key", typ: "key", val: ingesloten[i].srtcont_key });
|
||||
fields.push({ dbs: "ins_deelsrtcontrole_datum_org", typ: "datetime", val: nextdate }); // De orginele controledatum met tijd opslaan.
|
||||
fields.push({ dbs: "ins_deelsrtcontrole_key", typ: "key", seq: "ins_s_ins_deelsrtcontrole_key" });
|
||||
}
|
||||
|
||||
// Afhankelijk van de modus de inspectie(s) opslaan.
|
||||
@@ -269,28 +371,29 @@ if (insp_actie == 0)
|
||||
{ // Moment modus
|
||||
// De laatste datum die opgeslagen wordt is uiterlijk de opgegeven controledatum
|
||||
// De trunc waarde van de controle datum gebruiken.
|
||||
while ((respijt && respijtdate <= deelsrtcontrole_datum_trunc) || (!respijt && nextdate_trunc <= deelsrtcontrole_datum_trunc))
|
||||
var firstone = true;
|
||||
while ((respijt && plandatum <= deelsrtcontrole_datum_trunc) || (!respijt && nextdate_trunc <= deelsrtcontrole_datum_trunc))
|
||||
{
|
||||
var fields = [ { dbs: "ins_deel_key", typ: "key", val: ingesloten[i].ins_key },
|
||||
{ dbs: "ins_srtcontrole_key", typ: "key", val: ingesloten[i].srtcont_key },
|
||||
{ dbs: "ins_deelsrtcontrole_opmerking", typ: "varchar", frm: "opmerk", len: 2000 },
|
||||
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
|
||||
{ dbs: "ins_deelsrtcontrole_datum", typ: "datetime", val: deelsrtcontrole_datum }, // De controledatum met tijd opslaan.
|
||||
{ dbs: "ins_deelsrtcontrole_key", typ: "key", seq: "ins_s_ins_deelsrtcontrole_key" },
|
||||
{ dbs: "ins_deelsrtcontrole_datum_org", typ: "datetime", val: nextdate } // De orginele controledatum met tijd opslaan.
|
||||
];
|
||||
|
||||
if (nextdate_trunc < deelsrtcontrole_datum_trunc)
|
||||
fields.push({ dbs: "ins_controlemode_key", typ: "key", val: controlemode }); // Controlemode die niet succesvol is
|
||||
// Inspectie datum ligt voor de laatste inspectiedatum. Dan moet die inspectie niet successvol zijn, anders geeft dit problemen.
|
||||
fields.push({ dbs: "ins_controlemode_key", typ: "key", val: controlemode, track: L("lcl_ins_controle_mode"), foreign: "ins_controlemode" } ); // Controlemode die niet succesvol is
|
||||
else
|
||||
fields.push({ dbs: "ins_controlemode_key", typ: "key", frm: "sel_controlemode" }); // De inspectiedatum is vandaag of ligt in de toekomst en is dus op tijd.
|
||||
fields.push({ dbs: "ins_controlemode_key", typ: "key", frm: "sel_controlemode", track: L("lcl_ins_controle_mode"), foreign: "ins_controlemode" } ); // De inspectiedatum is vandaag of ligt in de toekomst en is dus op tijd.
|
||||
|
||||
if (respijt)
|
||||
fields.push({ dbs: "ins_deelsrtcontrole_datum_xcp", typ: "datetime", val: respijtdate });
|
||||
|
||||
var insIns = buildInsert("ins_deelsrtcontrole", fields);
|
||||
result.deelsrtcontrole_key = insIns.sequences["ins_deelsrtcontrole_key"];
|
||||
var err = Oracle.Execute(insIns.sql, true);
|
||||
if (insPresent && firstone) // Alleen voor de alle eerste inspectie kan een inspectie record aanwezig zijn.
|
||||
{ // Er is al een inspectie record (ins_deelsrtcontrole) aangemaakt. De status is Gepland(0) of In behandeling(2).
|
||||
// Plandatum kan gevuld blijven met de huidige waarde.
|
||||
var insUpd = buildTrackingUpdate("ins_deelsrtcontrole", " ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key, fields);
|
||||
var err = Oracle.Execute(insUpd.sql, true);
|
||||
firstone = false;
|
||||
}
|
||||
else
|
||||
{ // Er is nog geen inspectie record aangemaakt.
|
||||
var insIns = buildInsert("ins_deelsrtcontrole", fields);
|
||||
ingesloten[i].dlsrtcont_key = insIns.sequences["ins_deelsrtcontrole_key"];
|
||||
var err = Oracle.Execute(insIns.sql, true);
|
||||
}
|
||||
|
||||
if (err.friendlyMsg)
|
||||
{
|
||||
@@ -299,12 +402,11 @@ if (insp_actie == 0)
|
||||
break;
|
||||
}
|
||||
|
||||
if (respijt)
|
||||
{ // Inspectie is opgeslagen. De respijt is niet meer nodig en kan nu verwijderd worden.
|
||||
verwijderrespijt(ingesloten[i].ins_key, ingesloten[i].srtcont_key);
|
||||
respijt = false;
|
||||
respijtdate = null;
|
||||
}
|
||||
// Nu nog de status zetten, tracking genereren en notificaties sturen.
|
||||
ins.setinspectstatus(ingesloten[i].dlsrtcont_key, (finish? 6: 5)); // Afgemeld(5), History/Verwerkt(6).
|
||||
|
||||
respijt = false;
|
||||
plandatum = null;
|
||||
|
||||
// Bereken de volgende inspectiedatum.
|
||||
// De functie ins.nextcyclusdate levert de volgende inspectie datum met tijd op onafhankelijk van de eenheid.
|
||||
@@ -321,20 +423,21 @@ if (insp_actie == 0)
|
||||
}
|
||||
else
|
||||
{ // Interval modus
|
||||
var fields = [ { dbs: "ins_deel_key", typ: "key", val: ingesloten[i].ins_key },
|
||||
{ dbs: "ins_srtcontrole_key", typ: "key", val: ingesloten[i].srtcont_key },
|
||||
{ dbs: "ins_controlemode_key", typ: "key", frm: "sel_controlemode" },
|
||||
{ dbs: "ins_deelsrtcontrole_opmerking", typ: "varchar", frm: "opmerk", len: 2000 },
|
||||
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
|
||||
{ dbs: "ins_deelsrtcontrole_datum", typ: "datetime", val: deelsrtcontrole_datum }, // De controledatum met tijd opslaan.
|
||||
{ dbs: "ins_deelsrtcontrole_key", typ: "key", seq: "ins_s_ins_deelsrtcontrole_key" },
|
||||
{ dbs: "ins_deelsrtcontrole_datum_org", typ: "datetime", val: nextdate } // De orginele controledatum met tijd opslaan.
|
||||
];
|
||||
fields.push({ dbs: "ins_controlemode_key", typ: "key", frm: "sel_controlemode", track: L("lcl_ins_controle_mode"), foreign: "ins_controlemode" });
|
||||
|
||||
|
||||
var insIns = buildInsert("ins_deelsrtcontrole", fields);
|
||||
result.deelsrtcontrole_key = insIns.sequences["ins_deelsrtcontrole_key"];
|
||||
var err = Oracle.Execute(insIns.sql, true);
|
||||
if (insPresent)
|
||||
{ // Er is al een inspectie record (ins_deelsrtcontrole) aangemaakt. De status is Gepland(0) of In behandeling(2)
|
||||
// Plandatum kan gevuld blijven met de huidige waarde.
|
||||
//fields.push({ dbs: "ins_deelsrtcontrole_plandatum", typ: "datetime", val: null }); // De plandatum leegmaken.
|
||||
var insUpd = buildTrackingUpdate("ins_deelsrtcontrole", " ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key, fields);
|
||||
var err = Oracle.Execute(insUpd.sql, true);
|
||||
}
|
||||
else
|
||||
{ // Er is nog geen inspectie record aangemaakt.
|
||||
var insIns = buildInsert("ins_deelsrtcontrole", fields);
|
||||
ingesloten[i].dlsrtcont_key = insIns.sequences["ins_deelsrtcontrole_key"];
|
||||
var err = Oracle.Execute(insIns.sql, true);
|
||||
}
|
||||
|
||||
if (err.friendlyMsg)
|
||||
{
|
||||
@@ -343,25 +446,27 @@ if (insp_actie == 0)
|
||||
break;
|
||||
}
|
||||
|
||||
if (respijt)
|
||||
{ // Inspectie is opgeslagen. De respijt is niet meer nodig en kan nu verwijderd worden.
|
||||
verwijderrespijt(ingesloten[i].ins_key, ingesloten[i].srtcont_key);
|
||||
respijt = false;
|
||||
respijtdate = null;
|
||||
}
|
||||
// Nu nog de status zetten, tracking genereren en notificaties sturen.
|
||||
ins.setinspectstatus(ingesloten[i].dlsrtcont_key, (finish? 6: 5)); // Afgemeld(5), History/Verwerkt(6).
|
||||
|
||||
respijt = false;
|
||||
plandatum = null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
{ // uitgevoerde inspectie.
|
||||
// Datum kan niet meer aangepast worden.
|
||||
var fields = [ { dbs: "ins_deel_key", typ: "key", val: ingesloten[i].ins_key },
|
||||
{ dbs: "ins_srtcontrole_key", typ: "key", val: ingesloten[i].srtcont_key },
|
||||
{ dbs: "ins_controlemode_key", typ: "key", frm: "sel_controlemode" },
|
||||
{ dbs: "ins_deelsrtcontrole_opmerking", typ: "varchar", frm: "opmerk", len: 2000 },
|
||||
{ dbs: "ins_controlemode_key", typ: "key", frm: "sel_controlemode", track: L("lcl_ins_controle_mode"), foreign: "ins_controlemode" },
|
||||
{ dbs: "prs_perslid_key", typ: "key", val: user_key }
|
||||
];
|
||||
|
||||
var sql = buildUpdate("ins_deelsrtcontrole", fields) + " ins_deelsrtcontrole_key = " + deelsrtcont_key;
|
||||
var err = Oracle.Execute(sql, true);
|
||||
if (!multi) // Bij multi de opmerking niet opslaan. De opmerking kon ook niet ingevuld worden.
|
||||
fields.push({ dbs: "ins_deelsrtcontrole_opmerking", typ: "varchar", frm: "opmerk", track: L("lcl_remark"), len: 2000 });
|
||||
|
||||
var insUpd = buildTrackingUpdate("ins_deelsrtcontrole", " ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key, fields);
|
||||
var err = Oracle.Execute(insUpd.sql, true);
|
||||
|
||||
if (err.friendlyMsg)
|
||||
{
|
||||
@@ -370,78 +475,36 @@ if (insp_actie == 0)
|
||||
}
|
||||
}
|
||||
|
||||
if (!multi)
|
||||
{
|
||||
// HIER WORDEN DE SAVEFLEXKENMERKEN GEREGELD
|
||||
currentKenmerkenSQL = " SELECT kd.ins_kenmerk_key"
|
||||
+ " , kd.ins_kmdeelsrtcontr_waarde"
|
||||
+ " FROM ins_kmdeelsrtcontr kd"
|
||||
+ " , ins_kenmerk k"
|
||||
+ " WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key"
|
||||
+ " AND kd.ins_kmdeelsrtcontr_verwijder IS NULL"
|
||||
+ " AND kd.ins_deelsrtcontrole_key = " + result.deelsrtcontrole_key;
|
||||
if (!multi && insPresent)
|
||||
var flextrack = saveFlexKenmerkenInspection(ingesloten[0].dlsrtcont_key, insPresent);
|
||||
|
||||
saveFlexKenmerken( result.deelsrtcontrole_key
|
||||
, { kenmerkTable: "ins_kmdeelsrtcontr"
|
||||
, kenmerkParentKey : "ins_deelsrtcontrole_key"
|
||||
, kenmerkWaarde: "ins_kmdeelsrtcontr_waarde"
|
||||
, kenmerkKey: "ins_kenmerk_key"
|
||||
, currentKenmerkenSQL: currentKenmerkenSQL
|
||||
, requestQF: Request.Form
|
||||
, isNew: isNew
|
||||
, flexPath: "INS/I"
|
||||
, module: "INS"
|
||||
}
|
||||
);
|
||||
}
|
||||
if (insPresent && (insUpd.trackarray.length || flextrack.length))
|
||||
ins.trackinspectupdate(ingesloten[i].dlsrtcont_key, L("lcl_ins_controle_is_upd") + "\n" + insUpd.trackarray.concat(flextrack).join("\n"));
|
||||
}
|
||||
}
|
||||
else if (insp_actie == 1)
|
||||
{
|
||||
var result = { success: true, ins_srtcontroledl_xcp_respijt: respijt_datum };
|
||||
else if (savemode == "E")
|
||||
{ // Wijzigen inspectie (Edit). Update van de gegevens (plandatum, opmerking en flexkenmerken).
|
||||
var result = { success: true, plandatum: plandatum };
|
||||
|
||||
for (var i = 0; i < ingesloten.length; i++)
|
||||
var fields = [ { dbs: "ins_deelsrtcontrole_plandatum", typ: "datetime", val: plandatum, track: L("lcl_opdr_plandate") },
|
||||
{ dbs: "ins_deelsrtcontrole_opmerking", typ: "varchar", frm: "opmerk", track: L("lcl_remark"), len: 2000 }
|
||||
];
|
||||
|
||||
var insUpd = buildTrackingUpdate("ins_deelsrtcontrole", " ins_deelsrtcontrole_key = " + ingesloten[0].dlsrtcont_key, fields);
|
||||
var err = Oracle.Execute(insUpd.sql, true);
|
||||
|
||||
if (err.friendlyMsg)
|
||||
{
|
||||
var sql = "SELECT COALESCE((SELECT xcp.ins_srtcontroledl_xcp_eenheid"
|
||||
+ " FROM ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE ins_deel_key = " + ingesloten[i].ins_key
|
||||
+ " AND ins_srtcontrole_key = " + ingesloten[i].srtcont_key + ")"
|
||||
+ " , (SELECT isc.ins_srtcontrole_eenheid"
|
||||
+ " FROM ins_srtcontrole isc"
|
||||
+ " WHERE ins_srtcontrole_key = " + ingesloten[i].ins_key + ")) eenheid"
|
||||
+ " FROM DUAL";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var eenheid = oRs("eenheid").Value;
|
||||
|
||||
// Bestaat er al een entry in de ins_srtcontroledl_xcp table voor het ins_deel?
|
||||
sql = "SELECT ins_srtcontroledl_xcp_key"
|
||||
+ " FROM ins_srtcontroledl_xcp"
|
||||
+ " WHERE ins_srtcontrole_key = " + ingesloten[i].srtcont_key
|
||||
+ " AND ins_deel_key = " + ingesloten[i].ins_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (oRs.eof)
|
||||
{ // Insert
|
||||
var fields = [ { dbs: "ins_deel_key", typ: "key", val: ingesloten[i].ins_key },
|
||||
{ dbs: "ins_srtcontrole_key", typ: "key", val: ingesloten[i].srtcont_key },
|
||||
{ dbs: "ins_srtcontroledl_xcp_respijt", typ: "datetime", val: respijt_datum }
|
||||
];
|
||||
var insIns = buildInsert("ins_srtcontroledl_xcp", fields);
|
||||
var err = Oracle.Execute(insIns.sql, true);
|
||||
}
|
||||
else
|
||||
{ // Update
|
||||
var fields = [ { dbs: "ins_srtcontroledl_xcp_respijt", typ: "datetime", val: respijt_datum } ];
|
||||
var sql = buildUpdate("ins_srtcontroledl_xcp", fields) + " ins_srtcontroledl_xcp_key = " + oRs("ins_srtcontroledl_xcp_key").Value;
|
||||
var err = Oracle.Execute(sql, true);
|
||||
}
|
||||
if (err.friendlyMsg)
|
||||
{
|
||||
result.warning = err.friendlyMsg;
|
||||
result.success = false;
|
||||
}
|
||||
oRs.Close();
|
||||
result.warning = err.friendlyMsg;
|
||||
result.success = false;
|
||||
}
|
||||
|
||||
var flextrack = saveFlexKenmerkenInspection(ingesloten[0].dlsrtcont_key, insPresent);
|
||||
|
||||
if (insUpd.trackarray.length || flextrack.length)
|
||||
ins.trackinspectupdate(ingesloten[0].dlsrtcont_key, L("lcl_ins_controle_is_upd") + "\n" + insUpd.trackarray.concat(flextrack).join("\n"));
|
||||
}
|
||||
|
||||
Response.Write(JSON.stringify(result));
|
||||
Response.End();
|
||||
%>
|
||||
@@ -15,7 +15,12 @@
|
||||
outputmode behave in an output mode, print to 0 = screen, 1 = printer, 2 = excel, etc.
|
||||
showall show all objects which meets with the given requirements
|
||||
inspect Toon ook inspectie kolommen
|
||||
inspFutu, inspBusy, inspSoon, inspLate, inspDone: de vinkjes
|
||||
inspDone search for objects inspections wich are done
|
||||
inspLate search for objects inspections wich are too late/unknown
|
||||
inspBusy search for objects inspections wich are in progress
|
||||
inspSoon search for objects inspections wich are soon
|
||||
inspFutu search for objects inspections wich are not nearby
|
||||
inspDone, inspLate, inspBusy, inspSoon, inspFutu: de vinkjes
|
||||
inspsoonfrom search for objects with inspections between inspsoonfrom and inspsoonto
|
||||
inspsoonto search for objects with inspections between inspsoonfrom and inspsoonto
|
||||
donedatefrom search for objects with inspections between donedatefrom and donedateto
|
||||
@@ -85,8 +90,8 @@ function ins_list (pautfunction, params)
|
||||
|
||||
// Voor resulttable de globalen zetten; zou ng anders moeten.
|
||||
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
|
||||
var print = (outputmode == 1);
|
||||
var excel = (outputmode == 2);
|
||||
var print = (outputmode == 1 || outputmode == 5);
|
||||
var excel = (outputmode == 2 || outputmode == 6);
|
||||
var showall = params.showall;
|
||||
|
||||
var reg_key = params.reg_key;
|
||||
@@ -405,7 +410,7 @@ function ins_list (pautfunction, params)
|
||||
var hasOwner = false; // .... or on the right side
|
||||
var ErisUitleenbaar = false;
|
||||
var ErisReserveerbaar = false;
|
||||
|
||||
|
||||
var hasDrawings = false;
|
||||
|
||||
var sqlu ="SELECT COUNT (*) FROM ins_srtdeel WHERE ins_srtdeel_uitleenbaar = 1 AND ins_srtdeel_verwijder IS NULL";
|
||||
@@ -416,7 +421,7 @@ function ins_list (pautfunction, params)
|
||||
oRsu = Oracle.Execute(sqlu);
|
||||
ErisReserveerbaar = oRsu(0).value >0
|
||||
oRsu.close();
|
||||
|
||||
|
||||
var sqlu = "SELECT 1"
|
||||
+ " FROM cad_tekening"
|
||||
+ " WHERE cad_tekening_verwijder IS NULL AND ROWNUM = 1";
|
||||
@@ -492,21 +497,25 @@ function ins_list (pautfunction, params)
|
||||
{
|
||||
var outer = params.inspDone?"":"(+)";
|
||||
|
||||
var lastinspect = "(SELECT MAX (GREATEST(COALESCE (idsc.ins_deelsrtcontrole_datum_xcp"
|
||||
+ " , 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)"
|
||||
+ " , 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"
|
||||
var lastinspect = "(SELECT GREATEST(COALESCE (idsc.ins_deelsrtcontrole_plandatum"
|
||||
+ " , 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)"
|
||||
+ " , 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_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))";
|
||||
|
||||
// Eerstvolgende inspectie
|
||||
var sqlNext = "SELECT ins_deel_key"
|
||||
@@ -520,9 +529,10 @@ function ins_list (pautfunction, params)
|
||||
+ " , groepoms"
|
||||
+ " , ins_srtcontrole_omschrijving"
|
||||
+ " , ins_srtcontrole_key"
|
||||
+ (params.inspect
|
||||
? " , ins_srtcontrole_type"
|
||||
: "")
|
||||
+ " , ins_srtcontrole_type"
|
||||
+ " , ins_deelsrtcontrole_status"
|
||||
+ " , ins_deelsrtcontrole_key"
|
||||
+ " , ins_deelsrtcontrole_plandatum"
|
||||
+ " FROM (WITH defined_inspect" // gedefinieerde inspecties
|
||||
+ " AS (SELECT *"
|
||||
+ " FROM ins_deel id"
|
||||
@@ -540,12 +550,12 @@ function ins_list (pautfunction, params)
|
||||
+ " AND isc.ins_srtinstallatie_key ="
|
||||
+ " id.ins_discipline_key))"
|
||||
+ (params.inspDone
|
||||
? " SELECT 1 rn"
|
||||
? " SELECT 1 rn" // Afgehandelde inspecties.
|
||||
+ " , di.ins_deel_key"
|
||||
+ " , (SELECT MAX (idsc.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_deelsrtcontrole_status IN (5, 6)"
|
||||
+ " AND idsc.ins_deel_key = di.ins_deel_key) inspectie_date"
|
||||
+ " , NULL nonext"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) periode"
|
||||
@@ -554,9 +564,16 @@ function ins_list (pautfunction, params)
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep groepoms"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_key"
|
||||
+ (params.inspect
|
||||
? " , di.ins_srtcontrole_type"
|
||||
: "")
|
||||
+ " , di.ins_srtcontrole_type"
|
||||
+ " , -1 ins_deelsrtcontrole_status"
|
||||
+ " , NULL ins_deelsrtcontrole_key"
|
||||
+ " , (SELECT idsc.ins_deelsrtcontrole_plandatum"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE 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))"
|
||||
+ " ins_deelsrtcontrole_plandatum"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
@@ -564,54 +581,58 @@ function ins_list (pautfunction, params)
|
||||
+ " AND EXISTS (SELECT ins_deelsrtcontrole_key"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " WHERE idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
|
||||
+ " AND idsc.ins_deelsrtcontrole_status IN (5,6)"
|
||||
+ " 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)"
|
||||
: " SELECT 1 rn" // inspecties die nog nooit zijn uitgevoerd
|
||||
: " SELECT 1 rn" // inspecties die nog nooit zijn uitgevoerd. Er is nog geen ins_deelsrtcontrole regel aanwezig en dus ook geen plandatum/respijtdatum.
|
||||
+ " , di.ins_deel_key"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_respijt,"
|
||||
+ " fac.nextcyclusdate(di.ins_deel_aanmaak"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits)"
|
||||
+ " , 1)) inspectie_next"
|
||||
+ " , CASE WHEN COALESCE(xcp.ins_srtcontroledl_xcp_respijt, " + lastinspect + ") IS NULL THEN 1 ELSE 0 END nonext"
|
||||
+ " , fac.nextcyclusdate(di.ins_deel_aanmaak"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits)"
|
||||
+ " , 1) inspectie_next"
|
||||
+ " , CASE WHEN " + lastinspect + " IS NULL THEN 1 ELSE 0 END nonext"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) periode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) inspectie_eenheid"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep groepoms"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_key"
|
||||
+ (params.inspect
|
||||
? " , di.ins_srtcontrole_type"
|
||||
: "")
|
||||
+ " , di.ins_srtcontrole_type"
|
||||
+ " , -1 ins_deelsrtcontrole_status"
|
||||
+ " , NULL ins_deelsrtcontrole_key"
|
||||
+ " , NULL ins_deelsrtcontrole_plandatum"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND di.ins_deel_key = xcp.ins_deel_key(+)"
|
||||
+ " AND (di.ins_deel_key, di.ins_srtcontrole_key) NOT IN"
|
||||
+ " (SELECT ins_deel_key, ins_srtcontrole_key"
|
||||
+ " FROM ins_deelsrtcontrole WHERE ins_deelsrtcontrole_status IN (5,6))"
|
||||
+ " 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 zijn uitgevoerd
|
||||
+ " UNION ALL" // Inspecties die al eens zijn uitgevoerd
|
||||
+ " SELECT RANK ()" // volgnummertje toekennen
|
||||
+ " OVER ("
|
||||
+ " PARTITION BY di.ins_deel_key, idsc.ins_srtcontrole_key" // soort van group-by
|
||||
+ " ORDER BY ins_deelsrtcontrole_datum DESC) rn" // Op volgorde zetten/Rangschikken/Sorteren op inspectiedatum.
|
||||
+ " , di.ins_deel_key"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_respijt,"
|
||||
+ " fac.nextcyclusdate(CASE"
|
||||
+ " WHEN di.ins_srtcontrole_mode = 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"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits)"
|
||||
+ " , 1)) inspectie_next"
|
||||
+ " , CASE"
|
||||
+ " WHEN idsc.ins_deelsrtcontrole_status IN (0, 2)"
|
||||
+ " THEN ins_deelsrtcontrole_datum_org" // In status 0 en 2 wordt de volgende inspectie in ins_deelsrtcontrole_datum_org direct opgeslagen.
|
||||
+ " ELSE"
|
||||
+ " fac.nextcyclusdate(CASE"
|
||||
+ " WHEN di.ins_srtcontrole_mode = 0"
|
||||
+ " THEN idsc.ins_deelsrtcontrole_datum_org" // Moment modus (0). Uitgaan van eigenlijke/orginele inspectiedatum.
|
||||
+ " ELSE idsc.ins_deelsrtcontrole_datum" // Interval modus (1). Uitgaan van werkelijke inspectiedatum.
|
||||
+ " END"
|
||||
+ " , di.ins_srtcontrole_mode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode)"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_bits, di.ins_srtcontrole_bits)"
|
||||
+ " , 1)"
|
||||
+ " END inspectie_next"
|
||||
+ " , NULL nonext"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) periode"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) inspectie_eenheid"
|
||||
@@ -619,14 +640,14 @@ function ins_list (pautfunction, params)
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep groepoms"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_key"
|
||||
+ (params.inspect
|
||||
? " , di.ins_srtcontrole_type"
|
||||
: "")
|
||||
+ " , di.ins_srtcontrole_type"
|
||||
+ " , idsc.ins_deelsrtcontrole_status"
|
||||
+ " , idsc.ins_deelsrtcontrole_key"
|
||||
+ " , CASE WHEN idsc.ins_deelsrtcontrole_status IN (0, 2) THEN idsc.ins_deelsrtcontrole_plandatum ELSE NULL END ins_deelsrtcontrole_plandatum"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key(+)"
|
||||
+ " AND idsc.ins_deelsrtcontrole_status IN (5,6)"
|
||||
+ " 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"
|
||||
@@ -643,7 +664,11 @@ function ins_list (pautfunction, params)
|
||||
: "");
|
||||
|
||||
sqlInspectie_select = (params.inspDone? "inspectie_date" : "inspectie_next")
|
||||
+ ", nonext, ins_srtcontrole_omschrijving, ins_srtcontrole_key, inspectie_eenheid, inspectie_eind, groepoms";
|
||||
+ " , ispn.nonext, ispn.ins_srtcontrole_omschrijving, ispn.ins_srtcontrole_key, ispn.inspectie_eenheid, ispn.inspectie_eind, ispn.groepoms"
|
||||
+ " , ispn.ins_srtcontrole_type"
|
||||
+ " , ispn.ins_deelsrtcontrole_status"
|
||||
+ " , ispn.ins_deelsrtcontrole_key"
|
||||
+ " , ispn.ins_deelsrtcontrole_plandatum";
|
||||
|
||||
sqlInspectie_from = ", (" + sqlNext + ") ispn"
|
||||
|
||||
@@ -760,9 +785,6 @@ function ins_list (pautfunction, params)
|
||||
+ ", (SELECT " + S("prs_dep_string") + " FROM prs_v_afdeling d WHERE prs_afdeling_key = i.ins_alg_ruimte_key) eigenaar"
|
||||
+ ", NULL alg_ruimte_key " // person key
|
||||
+ ", i.ins_alg_ruimte_key prs_afdeling_key" // department key
|
||||
+ (params.inspect
|
||||
? ", ispn.ins_srtcontrole_type" // Controle type
|
||||
: "")
|
||||
+ (koppel_key? ", ins_deelkoppeling_omschrijving, ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key" : "")
|
||||
+ sqlOwner_from
|
||||
+ ", prs_v_afdeling_boom d"
|
||||
@@ -782,9 +804,6 @@ function ins_list (pautfunction, params)
|
||||
+ ", " + S("prs_pers_string") + " eigenaar"
|
||||
+ ", i.ins_alg_ruimte_key alg_ruimte_key " // person key
|
||||
+ ", p.prs_afdeling_key prs_afdeling_key" // department key
|
||||
+ (params.inspect
|
||||
? ", ispn.ins_srtcontrole_type" // Controle type
|
||||
: "")
|
||||
+ (koppel_key? ", ins_deelkoppeling_omschrijving, ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key" : "")
|
||||
+ sqlOwner_from
|
||||
+ ", prs_perslid p"
|
||||
@@ -806,9 +825,6 @@ function ins_list (pautfunction, params)
|
||||
+ ", c.prs_contactpersoon_naam eigenaar"
|
||||
+ ", i.ins_alg_ruimte_key alg_ruimte_key" // person key
|
||||
+ ", NULL prs_afdeling_key" // department key
|
||||
+ (params.inspect
|
||||
? ", ispn.ins_srtcontrole_type" // Controle type
|
||||
: "")
|
||||
+ (koppel_key? ", ins_deelkoppeling_omschrijving, ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key" : "")
|
||||
+ sqlOwner_from
|
||||
+ ", prs_contactpersoon c"
|
||||
@@ -859,9 +875,6 @@ function ins_list (pautfunction, params)
|
||||
+ ", null eigenaar"
|
||||
+ ", i.ins_alg_ruimte_key alg_ruimte_key"
|
||||
+ ", 0 dummy1" // department key
|
||||
+ (params.inspect
|
||||
? ", ispn.ins_srtcontrole_type" // Controle type
|
||||
: "")
|
||||
+ (koppel_key? ", ins_deelkoppeling_omschrijving, ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key" : "")
|
||||
+ " FROM ins_deel i"
|
||||
+ (terr_key
|
||||
@@ -1135,6 +1148,7 @@ function ins_list (pautfunction, params)
|
||||
// else geen enkel vinkje-->alles tonen
|
||||
else
|
||||
sql = "SELECT * FROM (" + sql + ") x WHERE 1=1 ";
|
||||
|
||||
if (params.cnt_bedrijf_key > 0) // alleen bedrijven met een (onderhouds)contract op deze soorten
|
||||
{
|
||||
// Scope srtcontract_type = 3 (Ondersteuning/Support): Onderhoud op objectsoorten en/of plaats.
|
||||
@@ -1345,34 +1359,20 @@ function ins_list (pautfunction, params)
|
||||
|
||||
function fnrowData(oRs)
|
||||
{
|
||||
var insKey = oRs("ins_deel_key").value;
|
||||
var insTypeKey = oRs("ins_srtdeel_key").value;
|
||||
var insAvailable = oRs("ins_alg_ruimte_key_org").value == null? 1 : 0;
|
||||
var insSrtControleKey = (params.inspect? oRs("ins_srtcontrole_key").value : -1);
|
||||
var insKey = oRs("ins_deel_key").Value;
|
||||
var insTypeKey = oRs("ins_srtdeel_key").Value;
|
||||
var insAvailable = oRs("ins_alg_ruimte_key_org").Value == null? 1 : 0;
|
||||
var insSrtControleKey = params.inspect? oRs("ins_srtcontrole_key").Value : -2;
|
||||
|
||||
var data = {insKey: insKey, insTypeKey: insTypeKey, insAvailable: insAvailable, insSrtControleKey: insSrtControleKey};
|
||||
// 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 = params.inspect? oRs("ins_deelsrtcontrole_status").Value : -1;
|
||||
var insDeelSrtContrKey = params.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};
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
|
||||
function fnrowClass(oRs)
|
||||
{
|
||||
if (params.inspDone) return "";
|
||||
var dt = new Date(oRs("inspectie_next").Value);
|
||||
dt.setHours(0,0,0,0); // trunc datum
|
||||
var dtsoon = new Date;
|
||||
dtsoon.setDate(dtsoon.getDate() + S("ins_inspect_soon_days"));
|
||||
dtsoon.setHours(0,0,0,0); // trunc datum
|
||||
var dtlate = new Date().setHours(0,0,0,0);
|
||||
|
||||
if (dt >= dtsoon)
|
||||
return ""; // meer dan S("ins_inspect_soon_days") dagen in de toekomst
|
||||
|
||||
if (dt >= dtlate)
|
||||
return "expired1"; // Binnenkort
|
||||
|
||||
return "expired2"; // Te laat
|
||||
}
|
||||
|
||||
function fnrowActionEnabler(oRs)
|
||||
{
|
||||
var eLendOut = false;
|
||||
@@ -1387,28 +1387,56 @@ function ins_list (pautfunction, params)
|
||||
var eDelete = false;
|
||||
var eEdit = true; // Indien enigste actie dan wordt de actie niet getoond en is het de default actie op de hele regel
|
||||
var eDetails = true; // Ik zie alleen objecten waar ik read rechten (3d) op heb. Dan mag ik ze ook verder inzien.
|
||||
var eInspect = false;
|
||||
var eUitstel = false;
|
||||
var eEditInsp = false;
|
||||
var ePlan = false;
|
||||
var eStart = false;
|
||||
var eClose = false;
|
||||
var eFinish = false;
|
||||
if (params.inspect && !params.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 nonext = ( (oRs("nonext").Value == 1)
|
||||
|| (oRs("inspectie_eenheid").value == 0
|
||||
? new Date(oRs("inspectie_next").Value).setMinutes(0, 0, 0) <= new Date().setMinutes(0, 0, 0)
|
||||
: new Date(new Date(oRs("inspectie_next").Value).setHours(0, 0, 0, 0)).getTime() <= new Date().getTime()
|
||||
)
|
||||
);
|
||||
var this_ins = ins.func_enabled_deel(oRs("ins_deel_key").Value);
|
||||
eInspect = !vervallen && nonext && this_ins.canInspect;
|
||||
eUitstel = !vervallen && !nonext;
|
||||
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;
|
||||
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);
|
||||
eFinish = this_ins.canInspect && istatus == 5;
|
||||
}
|
||||
|
||||
var data = {eLendOut: eLendOut, eReceive: eReceive, eAdapt: eAdapt, eDelete: eDelete, eEdit: eEdit, eDetails: eDetails,
|
||||
eInspect: eInspect, eUitstel: eUitstel};
|
||||
var data = {eLendOut: eLendOut, eReceive: eReceive, eAdapt: eAdapt, eDelete: eDelete, eEdit: eEdit,
|
||||
eDetails: eDetails, eEditInsp: eEditInsp, ePlan: ePlan, eStart: eStart, eClose: eClose, eFinish: eFinish};
|
||||
return data;
|
||||
}
|
||||
|
||||
function fnrowClass(oRs)
|
||||
{
|
||||
var lclass = "";
|
||||
var istatus = oRs("ins_deelsrtcontrole_status").Value != null? oRs("ins_deelsrtcontrole_status").Value : -1;
|
||||
|
||||
if (istatus == 2)
|
||||
lclass = "pending";
|
||||
|
||||
if (params.inspDone) return lclass;
|
||||
var dt = new Date(oRs("inspectie_next").Value);
|
||||
dt.setHours(0,0,0,0); // trunc datum
|
||||
var dtsoon = new Date;
|
||||
dtsoon.setDate(dtsoon.getDate() + S("ins_inspect_soon_days"));
|
||||
dtsoon.setHours(0,0,0,0); // trunc datum
|
||||
var dtlate = new Date().setHours(0,0,0,0);
|
||||
|
||||
if (dt >= dtsoon)
|
||||
return lclass; // meer dan S("ins_inspect_soon_days") dagen in de toekomst
|
||||
|
||||
if (dt >= dtlate)
|
||||
return lclass + " expired1"; // Binnenkort
|
||||
|
||||
return lclass + " expired2"; // Te laat
|
||||
}
|
||||
|
||||
function fnPlace(oRs)
|
||||
{
|
||||
var place = ""
|
||||
@@ -1522,23 +1550,29 @@ function ins_list (pautfunction, params)
|
||||
var vervallen = (oRs("inspectie_eind").Value != null && new Date(oRs("inspectie_eind").Value).getTime() < new Date().midnight());
|
||||
if (vervallen) return L("lcl_ins_controle_vervallen");
|
||||
|
||||
var nonext = oRs("nonext").Value == 1
|
||||
if (nonext)
|
||||
var txt;
|
||||
var dt;
|
||||
switch (oRs("ins_srtcontrole_type").Value)
|
||||
{
|
||||
switch (oRs("ins_srtcontrole_type").Value)
|
||||
{
|
||||
case 1: { var txt = L("lcl_ins_controle_first"); break; } // Eerste controle.
|
||||
case 2:
|
||||
case 3: { var dt = new Date(oRs("inspectie_next").Value); // Registratiedatum.
|
||||
var txt = (oRs("inspectie_eind").Value == 0? toDateTimeString(dt) : toDateString(dt));
|
||||
break;
|
||||
} // Eerste certificering.
|
||||
}
|
||||
case 1: { txt = L("lcl_ins_controle_first"); break; } // Eerste controle.
|
||||
case 2:
|
||||
case 3: { dt = new Date(oRs("inspectie_next").Value); // Registratiedatum.
|
||||
txt = (oRs("inspectie_eind").Value == 0? toDateTimeString(dt) : toDateString(dt));
|
||||
break;
|
||||
} // Eerste certificering.
|
||||
}
|
||||
|
||||
var nonext = oRs("nonext").Value == 1;
|
||||
if (nonext)
|
||||
{ // Er is nog geen inspectie geweest. Eerste controle moet nog plaatsvinden.
|
||||
return txt;
|
||||
}
|
||||
|
||||
var inspectie = (params.inspDone? oRs("inspectie_date").Value : oRs("inspectie_next").Value)
|
||||
var dt = new Date(inspectie);
|
||||
var inspectie = (params.inspDone? oRs("inspectie_date").Value : oRs("inspectie_next").Value);
|
||||
|
||||
if (!params.inspDone && oRs("inspectie_next").Value == null)
|
||||
return txt;
|
||||
|
||||
var inspectie_eenheid = oRs("inspectie_eenheid").Value;
|
||||
if (inspectie_eenheid == 0)
|
||||
var dttxt = toDateTimeString(inspectie);
|
||||
@@ -1548,6 +1582,22 @@ function ins_list (pautfunction, params)
|
||||
return dttxt;
|
||||
}
|
||||
|
||||
function fnPlandatum(oRs)
|
||||
{
|
||||
var vervallen = (oRs("inspectie_eind").Value != null && new Date(oRs("inspectie_eind").Value).getTime() < new Date().midnight());
|
||||
if (vervallen) return L("lcl_ins_controle_vervallen");
|
||||
|
||||
var plandatum = oRs("ins_deelsrtcontrole_plandatum").Value;
|
||||
|
||||
var inspectie_eenheid = oRs("inspectie_eenheid").Value;
|
||||
if (inspectie_eenheid == 0)
|
||||
var dttxt = toDateTimeString(plandatum);
|
||||
else
|
||||
var dttxt = toDateString(plandatum);
|
||||
|
||||
return dttxt;
|
||||
}
|
||||
|
||||
function fnSrtControleType(oRs)
|
||||
{
|
||||
var txt = "";
|
||||
@@ -1659,6 +1709,7 @@ function ins_list (pautfunction, params)
|
||||
if (params.inspect)
|
||||
{
|
||||
rst.addColumn(new Column({caption: (params.inspDone? L("lcl_ins_controle_datum") : L("lcl_ins_controle_next")), content: fnInspectie}));
|
||||
rst.addColumn(new Column({caption: L("lcl_ins_controle_plandate"), content: fnPlandatum}));
|
||||
rst.addColumn(new Column({caption: L("lcl_ins_controle_srt"), content: "ins_srtcontrole_omschrijving"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_ins_controle_groep"), content: "groepoms"}));
|
||||
}
|
||||
@@ -1696,8 +1747,11 @@ function ins_list (pautfunction, params)
|
||||
rst.addAction({ action: "insEdit", caption: L("lcl_change"), isDefault: true}); // isDefault, dus nooit multi, alleen door aanklikken regel. Multi via afgehandeld via functie insMultiEdit()
|
||||
if (params.inspect)
|
||||
{
|
||||
rst.addAction({ action: "insInspect", caption: L("lcl_ins_controle"), multi: !tiny, multiOnce: true, enabler: "eInspect" });
|
||||
rst.addAction({ action: "insInspect", caption: L("lcl_ins_uitstellen"), multi: !tiny, multiOnce: true, enabler: "eUitstel" });
|
||||
rst.addAction({ action: "insEditInsp", caption: L("lcl_change"), enabler: "eEditInsp" });
|
||||
rst.addAction({ action: "insPlan", caption: L("lcl_ins_schedule"), multi: !tiny, multiOnce: true, enabler: "ePlan" });
|
||||
rst.addAction({ action: "insStart", caption: L("lcl_ins_start"), multi: !tiny, multiOnce: true, enabler: "eStart" });
|
||||
rst.addAction({ action: "insClose", caption: L("lcl_ins_close") + "/" + L("lcl_ins_finish"), multi: !tiny, multiOnce: true, enabler: "eClose" });
|
||||
rst.addAction({ action: "insFinish", caption: L("lcl_ins_finish"), multi: !tiny, multiOnce: true, enabler: "eFinish" });
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -187,26 +187,94 @@ function insMultiEdit(rowArray)
|
||||
FcltMgr.openModalDetail(url, subject, {callback: FcltCallbackRefresh});
|
||||
}
|
||||
|
||||
function insInspect(rowArray)
|
||||
function insEditInsp(row)
|
||||
{
|
||||
$(row).addClass('dirty');
|
||||
var insKeyString = row.getAttribute("ROWKEY");
|
||||
var rowdata = eval("(" + row.getAttribute("ROWDATA") + ")");
|
||||
if (rowdata)
|
||||
{
|
||||
srtcontrolekey = rowdata.insSrtControleKey;
|
||||
//deellsrtcontkey = rowdata.insDeelSrtContrKey;
|
||||
var url = "appl/ins/ins_edit_inspect.asp?ins_keys=" + insKeyString + "&srtcont_keys=" + srtcontrolekey// + "&dlsrtcont_keys=" + deellsrtcontkey;
|
||||
FcltMgr.openDetail(url, L("lcl_change"));
|
||||
}
|
||||
}
|
||||
|
||||
function insPlan(rowArray)
|
||||
{
|
||||
var insKeyString = getKeyString(rowArray);
|
||||
var srtcontrolekeyArray = new Array();
|
||||
if (rowArray.length == 1)
|
||||
for (var i = 0; i < rowArray.length; i++)
|
||||
{
|
||||
rowdata = eval('(' + rowArray[0].getAttribute("ROWDATA") + ')');
|
||||
srtcontrolekeyArray[0] = rowdata.insSrtControleKey;
|
||||
rowdata = eval('(' + rowArray[i].getAttribute("ROWDATA") + ')');
|
||||
srtcontrolekeyArray[i] = rowdata.insSrtControleKey;
|
||||
}
|
||||
else
|
||||
|
||||
var url = "appl/ins/ins_edit_inspect.asp?plan=1&ins_keys=" + insKeyString + "&srtcont_keys=" + srtcontrolekeyArray;
|
||||
FcltMgr.openDetail(url, L("lcl_ins_schedule"));
|
||||
}
|
||||
|
||||
function insStart(rowArray, isMulti)
|
||||
{
|
||||
if (isMulti || confirm(L("lcl_ins_starting")))
|
||||
{
|
||||
var insKeyString = getKeyString(rowArray);
|
||||
var srtcontrolekeyArray = new Array();
|
||||
for (var i = 0; i < rowArray.length; i++)
|
||||
{
|
||||
rowdata = eval('(' + rowArray[i].getAttribute("ROWDATA") + ')');
|
||||
srtcontrolekeyArray[i] = rowdata.insSrtControleKey;
|
||||
}
|
||||
|
||||
var data = { ins_keys: insKeyString,
|
||||
srtcont_keys: srtcontrolekeyArray.join(",")
|
||||
};
|
||||
protectRequest.dataToken(data);
|
||||
$.post( "ins_inspect_start.asp"
|
||||
, data
|
||||
, FcltCallbackRefresh
|
||||
, "json"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function insClose(rowArray)
|
||||
{
|
||||
var insKeyString = getKeyString(rowArray);
|
||||
var srtcontrolekeyArray = new Array();
|
||||
for (var i = 0; i < rowArray.length; i++)
|
||||
{
|
||||
rowdata = eval('(' + rowArray[i].getAttribute("ROWDATA") + ')');
|
||||
srtcontrolekeyArray[i] = rowdata.insSrtControleKey;
|
||||
}
|
||||
|
||||
var url = "appl/ins/ins_edit_inspect.asp?close=1&ins_keys=" + insKeyString + "&srtcont_keys=" + srtcontrolekeyArray;
|
||||
FcltMgr.openDetail(url, L("lcl_ins_close"));
|
||||
}
|
||||
|
||||
function insFinish(rowArray, isMulti)
|
||||
{
|
||||
if (isMulti || confirm(L("lcl_ins_finishing")))
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
var data = { ins_keys: insKeyString,
|
||||
dlsrtcont_keys: deelsrtcontrkeyArray.join(",")
|
||||
};
|
||||
protectRequest.dataToken(data);
|
||||
$.post( "ins_inspect_finish.asp"
|
||||
, data
|
||||
, FcltCallbackRefresh
|
||||
, "json"
|
||||
);
|
||||
}
|
||||
var subject = L("lcl_ins_multi_controle");
|
||||
var url = "appl/ins/ins_inspect.asp?ins_keys=" + insKeyString + (srtcontrolekeyArray.length > 0? "&srtcont_keys=" + srtcontrolekeyArray.join(",") : "");
|
||||
FcltMgr.openDetail(url, rowArray.length > 1? L("lcl_ins_multi_controle") : L("lcl_ins_docontrole"));
|
||||
}
|
||||
|
||||
function insMultiMove(rowArray)
|
||||
|
||||
@@ -521,6 +521,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
<div id="insLSF">
|
||||
<table>
|
||||
<tr><td><input type="checkbox" class="fldcheck" name="insInspLate" id="insInspLate" value="1" CHECKED></td><td><label for="insInspLate"><%=L("lcl_ins_controle_late")%></label></td></tr>
|
||||
<tr><td><input type="checkbox" class="fldcheck" name="insInspBusy" id="insInspBusy" value="1" CHECKED></td><td><label for="insInspBusy"><%=L("lcl_ins_controle_busy")%></label></td></tr>
|
||||
<tr><td><input type="checkbox" class="fldcheck" name="insInspSoon" id="insInspSoon" value="1" CHECKED></td><td><label for="insInspSoon"><%=L("lcl_ins_controle_soon")%></label></td></tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
@@ -549,7 +550,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
%>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><input type="checkbox" class="fldcheck" name="insInspFutu" id="insInspFutu" value="1"></td><td><label for="insInspFutu"><%=L("lcl_ins_controle_future")%></label></td></tr>
|
||||
<!--<tr><td><input type="checkbox" class="fldcheck" name="insInspFutu" id="insInspFutu" value="1"></td><td><label for="insInspFutu"><%=L("lcl_ins_controle_future")%></label></td></tr>-->
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@@ -68,9 +68,10 @@ var insAvail = getQParamInt("insAvail", 0) == 1; // Beschikbaar
|
||||
|
||||
var insInspect = getQParamInt("inspect", 0) == 1;
|
||||
var inspDone = getQParamInt("insInspDone", 0) == 1;
|
||||
var inspFutu = !inspDone && (getQParamInt("insInspFutu", 0) == 1);
|
||||
var inspSoon = !inspDone && (getQParamInt("insInspSoon", 0) == 1);
|
||||
var inspLate = !inspDone && (getQParamInt("insInspLate", 0) == 1);
|
||||
var inspBusy = getQParamInt("insInspBusy", 0) == 1;
|
||||
var inspSoon = !inspDone && (getQParamInt("insInspSoon", 0) == 1);
|
||||
var inspFutu = !inspDone && (getQParamInt("insInspFutu", 0) == 1);
|
||||
|
||||
// FGII parameters
|
||||
var fgraph = getQParamInt("fgraph", 0) == 1;
|
||||
@@ -124,10 +125,11 @@ ins_list ( autfunction,
|
||||
fgraph: fgraph,
|
||||
inspect: insInspect,
|
||||
srtcontrole: getQParamInt("sel_srtcontrole", -1),
|
||||
inspFutu: inspFutu,
|
||||
inspSoon: inspSoon,
|
||||
inspLate: inspLate,
|
||||
inspDone: inspDone,
|
||||
inspLate: inspLate,
|
||||
inspBusy: inspBusy,
|
||||
inspSoon: inspSoon,
|
||||
inspFutu: inspFutu,
|
||||
ins_key_arr: (ins_key_arr.length > 0? ins_key_arr : null),
|
||||
room_key_arr: (room_key_arr.length > 0 && room_key_arr.join(",").indexOf("-1") == -1? room_key_arr : null),
|
||||
comp_key: (comp_key != -1 ? comp_key : null),
|
||||
|
||||
@@ -37,7 +37,7 @@ var add = getQParamInt("add", 0) == 1; // Controle inspectie (ins_srtcontrole) w
|
||||
|
||||
// Mag ik het object aanpassen?
|
||||
var this_ins = ins.func_enabled_deel(ins_key);
|
||||
user.anything_todo_or_abort(this_ins.canChangeInt);
|
||||
user.anything_todo_or_abort(this_ins.canChangeXcp);
|
||||
%>
|
||||
|
||||
<html>
|
||||
@@ -353,7 +353,6 @@ user.anything_todo_or_abort(this_ins.canChangeInt);
|
||||
+ " , di.ins_srtcontrole_kosten kosten_std"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_kosten, 0) kosten_xcp"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_key, -1) xcp_key"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_respijt respijt"
|
||||
+ " , di.ins_srtcontrole_eind eind_std"
|
||||
+ " , TO_CHAR(di.ins_srtcontrole_eind, 'DD') eind_std_dag"
|
||||
+ " , TO_CHAR(di.ins_srtcontrole_eind, 'MM') eind_std_maand"
|
||||
@@ -396,7 +395,6 @@ user.anything_todo_or_abort(this_ins.canChangeInt);
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eenheid"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_bits"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_respijt"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_kosten"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_eind"
|
||||
+ " HAVING COUNT(*) = " + cntdeel // Als multi dan alleen de inspecties die voor *alle* objecten gelden
|
||||
@@ -410,7 +408,7 @@ user.anything_todo_or_abort(this_ins.canChangeInt);
|
||||
required: true,
|
||||
onChange: "onChangeSrtControle()",
|
||||
//trclass: "invoerinsp",
|
||||
extraParamValue: "modus, periode_std, periode_xcp, eenheid_std, eenheid_xcp, bits_std, bits_xcp, kosten_std, kosten_xcp, xcp_key, groep, respijt"
|
||||
extraParamValue: "modus, periode_std, periode_xcp, eenheid_std, eenheid_xcp, bits_std, bits_xcp, kosten_std, kosten_xcp, xcp_key, groep"
|
||||
+ ", eind_std_dag, eind_xcp_dag, eind_std_maand, eind_xcp_maand, eind_std_jaar, eind_xcp_jaar",
|
||||
extraParamValueInit: "1, , , 1, -1, , , 0, , , , , , , , , ,"
|
||||
});
|
||||
|
||||
@@ -23,7 +23,7 @@ var JSON_Result = true;
|
||||
var ins_key = getQParamInt("ins_key");
|
||||
// Mag ik de parameters van het inspectie object aanpassen?
|
||||
var this_ins = ins.func_enabled_deel(ins_key);
|
||||
user.anything_todo_or_abort(this_ins.canChangeInt);
|
||||
user.anything_todo_or_abort(this_ins.canChangeXcp);
|
||||
|
||||
var xcp_key = getFParamInt("xcp_key"); // ins_srtcontroledl_xcp_key.
|
||||
var mode = getFParamInt("mode"); // ins_srtcontrole_mode.
|
||||
@@ -133,36 +133,22 @@ if ((paramsdiffer || filledgroep) && !deactivate)
|
||||
}
|
||||
else
|
||||
{
|
||||
// Alle parameter waarden zijn identiek aan de standaard waarden en er is geen groep ingevuld.
|
||||
// Deactiveren of alle parameter waarden zijn identiek aan de standaard waarden en er is geen groep ingevuld.
|
||||
if (xcp_key < 0) // Nieuwe inspectie.
|
||||
{ // Geen nieuw record aanmaken.
|
||||
var result = { success: true, srtcontroledl_xcp_key: xcp_key, warning: L("lcl_ins_controle_identical_values") };
|
||||
}
|
||||
else
|
||||
{
|
||||
{ // Dan kan het record verwijderd worden.
|
||||
var result = { success: true, srtcontroledl_xcp_key: xcp_key, warning: (deactivate? L("lcl_ins_controle_deactivated") : L("lcl_ins_controle_identical_values")) };
|
||||
|
||||
var deletexcp = deactivate;
|
||||
if (!deactivate)
|
||||
{
|
||||
// Als er geen respijtdatum is ingevuld moet het record verwijderd worden.
|
||||
// Is de respijtdatum ingevuld?
|
||||
sql = "SELECT xcp.ins_srtcontroledl_xcp_respijt"
|
||||
+ " FROM ins_srtcontroledl_xcp xcp"
|
||||
+ " WHERE xcp.ins_srtcontroledl_xcp_key = " + xcp_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
deletexcp = oRs("ins_srtcontroledl_xcp_respijt").Value == null;
|
||||
}
|
||||
|
||||
if (deletexcp)
|
||||
{ // Inactief maken of geen respijtdatum ingevuld. Dan record verwijderen.
|
||||
var sql = "DELETE FROM ins_srtcontroledl_xcp"
|
||||
+ " WHERE ins_deel_key = " + ins_key
|
||||
+ " AND ins_srtcontrole_key = " + srtcontrole_key;
|
||||
var err = Oracle.Execute(sql, true);
|
||||
if (err.friendlyMsg)
|
||||
result.message += " " + err.friendlyMsg;
|
||||
}
|
||||
// Record verwijderen.
|
||||
var sql = "DELETE FROM ins_srtcontroledl_xcp"
|
||||
+ " WHERE ins_deel_key = " + ins_key
|
||||
+ " AND ins_srtcontrole_key = " + srtcontrole_key;
|
||||
var err = Oracle.Execute(sql, true);
|
||||
if (err.friendlyMsg)
|
||||
result.message += " " + err.friendlyMsg;
|
||||
oRs.Close();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user