AKZA#51507: Taken aan objecten.

svn path=/Website/branches/v2017.2/; revision=36262
This commit is contained in:
Maykel Geerdink
2017-12-06 14:27:38 +00:00
parent 9512136e5f
commit 43a9586401

View File

@@ -574,179 +574,195 @@ ins = {checkAutLevel:
var hasInspect = !oRs.eof;
oRs.Close();
var mjb_freeze_year = S("mjb_freeze_year");
var mjb_start_year = S("mjb_start_year");
// Voor het bepalen van de autorisatie voor inspecties, moet gekeken worden naar de gegevens van de Active Situatie (AS).
var sql = "SELECT insp.ins_deelsrtcontrole_key"
+ " , insp.ins_deelsrtcontrole_status"
+ " , insp.vervaldatum"
+ " , insp.isc_mode"
+ " , insp.ctr_discipline_key"
+ " , insp.ctr_ismjob"
+ " , options"
// Moment inspectie pas kunnen opslaan op of na geplande inspectiedatum.
// Is in de moment modus de invoer na het volgende berekende inspectietijdstip? Voor interval modus is dit altijd het geval.
// Als er nog nooit is geinspecteerd en er is er nog geen ingepland dan is het ook ok.
// Als de inspectie gestart of gereed gemeld is dan is het ook ok, want anders had de inspectie nooit begonnen mogen worden.
+ " , CASE"
+ " WHEN insp.isc_mode = 1"
+ " THEN 1"
+ " WHEN (insp.ins_deelsrtcontrole_status IS NULL AND 1 = " + (hasInspect? 0 : 1) + ") OR" // Er is nog nooit geinspecteerd en er is er geen ingepland.
+ " insp.ins_deelsrtcontrole_status = 2 OR"
+ " insp.ins_deelsrtcontrole_status = 5"
+ " THEN 1"
+ " WHEN insp.ins_deelsrtcontrole_status = 6 AND" // insp.isc_mode = 0 want anders is de vorige when geldig.
+ " SYSDATE >= CASE insp.eenheid"
+ " WHEN 0"
+ " THEN TRUNC (insp.inspectie_next, 'HH')"
+ " ELSE TRUNC (insp.inspectie_next, 'DD')"
+ " END"
+ " THEN 1"
+ " WHEN insp.ins_deelsrtcontrole_status = 0 AND"
+ " SYSDATE >= COALESCE (CASE insp.eenheid" // insp.isc_mode = 0 want anders is de vorige when geldig.
+ " WHEN 0"
+ " THEN TRUNC (insp.plandatum, 'HH')"
+ " ELSE TRUNC (insp.plandatum, 'DD') END"
+ " , CASE insp.eenheid"
+ " WHEN 0"
+ " THEN TRUNC (insp.inspectie_next, 'HH')"
+ " ELSE TRUNC (insp.inspectie_next, 'DD')"
+ " END)"
+ " THEN 1"
+ " ELSE 0"
+ " END invoerAfterNext"
// Bepaling in welk jaar er een inspectie is gepland.
// 1) In het jaar van de plandatum.
// 2) In het jaar van de startdatum.
// 3) a) Laatste inspectie is NULL (eerste inspectie moet nog komen) en het is een Controle(1).
// Volgende inspectie is in het freeze jaar.
// b) Laatste inspectie is NULL (eerste inspectie moet nog komen) en het is een Vervanging(2) of Certificering(3).
// Nextdate is na het freeze jaar?
// Ja) Vorige inspectie ligt na het start jaar en ligt niet in het aanmaak jaar?
// Ja) Volgende inspectie is in het freeze jaar.
// Nee) Volgende inspectie is het jaar van de nextdate.
// Nee) De laatst ingeplande inspectie (nextdate) is na of in het start jaar?
// Ja) Volgende inspectie is in het freeze jaar.
// Nee) Volgende inspectie is in het jaar "nextdatum + periode".
// c) Laatste inspectie is niet NULL. Er is al 1 of meerdere keren geinspecteerd.
// Ligt de laatst ingeplande inspectie (nextdate) na dit jaar?
// Ja) Volgende inspectie is het jaar van de nextdate (in de toekomst).
// Nee) Volgende inspectie is in het freeze jaar.
+ " , CASE"
+ " WHEN"
+ " EXTRACT(YEAR FROM "
+ " COALESCE(insp.plandatum"
+ " , CASE WHEN insp.laatste IS NULL THEN insp.ins_srtcontroledl_xcp_startdat ELSE NULL END"
+ " , CASE"
+ " WHEN insp.laatste IS NULL AND insp.ctr_controle_type = 1" // 1: Controle.
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
+ " WHEN insp.laatste IS NULL AND insp.ctr_controle_type != 1" // 2: Vervanging, 3: Certificering.
+ " THEN" // Er is nog geen inspectie geweest
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM insp.inspectie_next0) > " + mjb_freeze_year
+ " THEN" // Nextdate is na de freeze datum.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(insp.inspectie_next0, -1 * 12 * insp.ins_srtcontrole_periode)) >= " + mjb_start_year + " AND"
+ " EXTRACT(YEAR FROM ADD_MONTHS(insp.inspectie_next0, -1 * 12 * insp.ins_srtcontrole_periode)) != EXTRACT(YEAR FROM insp.ins_deel_aanmaak)"
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Vorige inspectie ligt tussen start en freeze jaar (Nu ligt er ook tussen).
+ " ELSE insp.inspectie_next0"
+ " END"
+ " ELSE" // Nextdate is voor of in het freeze jaar.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM insp.inspectie_next0) >= " + mjb_start_year
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Nextdate tussen start en freeze jaar.
+ " ELSE ADD_MONTHS(insp.inspectie_next0, 12 * insp.ins_srtcontrole_periode)" // Nextdate voor het start jaar.
+ " END"
+ " END"
+ " ELSE" // Laatste IS NOT NULL. Er is al een inspectie geweest.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM insp.inspectie_next0) > EXTRACT(YEAR FROM SYSDATE)"
+ " THEN insp.inspectie_next0" // Volgende inspectie is in de toekomst.
+ " ELSE TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Laatst ingeplande inspectie is nog niet uitgevoerd.
+ " END"
+ " END)) = " + mjb_freeze_year
+ " THEN 1"
+ " ELSE 0"
+ " END isFreezeYear"
+ " FROM ("
// De view ins_v_defined_inspect_xcp levert de volgende regels op
// Alle Active Situatie (AS) soort controle's die geen uitzondering (XCP) record hebben maar wel een scenario.
// en
// Alle Active Situatie (AS) soort controle's die:
// a) geen uitzondering (XCP) record hebben en geen scenario.
// b) een uitzondering (XCP) record hebben.
// Hier niet van belang: Alle soort controles van de scenario's (AND xcp.ins_scenario_key = 1).
+ " SELECT idsc.ins_deelsrtcontrole_key"
+ " , idsc.ins_deelsrtcontrole_datum"
+ " , idsc.ins_deelsrtcontrole_status"
+ " , xcp.ins_srtcontroledl_xcp_eind vervaldatum"
+ " , xcp.ins_srtcontrole_mode isc_mode"
+ " , xcp.ctr_discipline_key"
+ " , xcp.ins_srtcontrole_options options"
+ " , xcp.ins_srtcontrole_eenheid eenheid"
+ " , xcp.ins_srtcontrole_periode"
+ " , xcp.ins_deel_aanmaak"
+ " , xcp.ctr_controle_type"
+ " , xcp.ctr_ismjob"
+ " , idsc.ins_deelsrtcontrole_plandatum plandatum"
+ " , ins_srtcontroledl_xcp_startdat"
+ " , CASE"
+ " WHEN 1 = " + (hasInspect? 0 : 1) // lastinspect IS NULL
+ " THEN (SELECT d.ins_deel_aanmaak FROM ins_deel d WHERE d.ins_deel_key = " + pins_deel_key + ")"
+ " WHEN idsc.ins_deelsrtcontrole_status IN (0, 2)"
+ " THEN ins_deelsrtcontrole_datum_org"
+ " ELSE fac.nextcyclusdate(CASE"
+ " WHEN xcp.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"
+ " , xcp.ins_srtcontrole_mode"
+ " , xcp.ins_srtcontrole_eenheid"
+ " , xcp.ins_srtcontrole_periode"
+ " , xcp.ins_srtcontrole_bits"
+ " , 1"
+ " , xcp.ctr_ismjob)"
+ " END inspectie_next"
+ " , ins.nextcyclusdate(xcp.ins_deel_key, xcp.ins_srtcontrole_key, 1, 0) inspectie_next0"
+ " , (SELECT MAX(idsc2.ins_deelsrtcontrole_datum)"
+ " FROM ins_deelsrtcontrole idsc2"
+ " WHERE idsc2.ins_deel_key = " + pins_deel_key
+ " AND idsc2.ins_srtcontrole_key = " + params.srtcont_key
+ " AND idsc2.ins_scenario_key = 1) laatste"
+ " FROM ins_deelsrtcontrole idsc"
+ " , ins_v_defined_inspect_xcp xcp"
+ " WHERE xcp.ins_srtcontrole_key = idsc.ins_srtcontrole_key(+)" // Er kan nog voor de eerste keer geinspecteerd moeten worden.
+ " AND xcp.ins_srtcontrole_key = " + params.srtcont_key
+ " AND xcp.ins_deel_key = " + pins_deel_key
+ " AND idsc.ins_deel_key(+) = " + pins_deel_key
+ " AND idsc.ins_scenario_key(+) = " + params.scen_key
// Neem voor de rechten de xcp van de Active Situatie (AS). Die bepaalt of de soort controle vervallen is.
+ " AND xcp.ins_scenario_key = 1"
+ (params.deelsrtcont_key > 0
? " AND idsc.ins_deelsrtcontrole_key = " + params.deelsrtcont_key
: " AND (idsc.ins_deelsrtcontrole_key IS NULL OR"
+ " idsc.ins_deelsrtcontrole_key = (SELECT MAX(idsc2.ins_deelsrtcontrole_key)"
+ " FROM ins_deelsrtcontrole idsc2"
+ " WHERE idsc2.ins_deel_key = " + pins_deel_key
+ " AND idsc2.ins_srtcontrole_key = " + params.srtcont_key
+ " AND idsc2.ins_scenario_key = " + params.scen_key
+ " ))")
+ " ) insp"
+ " ORDER BY insp.ins_deelsrtcontrole_datum DESC";
var sql = "SELECT xcp.ins_srtcontrole_periode"
+ " , xcp.ctr_discipline_key"
+ " , xcp.ctr_ismjob"
+ " FROM ins_v_defined_inspect_xcp xcp"
+ " WHERE xcp.ins_srtcontrole_key = " + params.srtcont_key
+ " AND xcp.ins_deel_key = " + pins_deel_key
+ " AND xcp.ins_scenario_key = 1"
var oRs = Oracle.Execute(sql);
// Waarden moeten aanwezig zijn. Mocht dat niet zo zijn dan is er iets fout.
// Als er nog nooit een inspectie is geweest wordt de status -1.
// Als de laatste inspectie is afgerond (stutus is 6) moet er een nieuwe inspectie gestart worden.
var ins_deelsrtcontrole_status = oRs("ins_deelsrtcontrole_status").Value != null? oRs("ins_deelsrtcontrole_status").Value : -1;
var vervaldatum = oRs("vervaldatum").Value != null? new Date(oRs("vervaldatum").Value) : null;
var periode = oRs("ins_srtcontrole_periode").Value;
var ctr_discipline_key = oRs("ctr_discipline_key").Value;
var ctr_ismjob = oRs("ctr_ismjob").Value == 1;
var isc_options = oRs("options").Value;
var vervallen = vervaldatum != null && vervaldatum < new Date();
var invoerAfterNext = oRs("invoerAfterNext").Value == 1;
var isFreezeYear = oRs("isFreezeYear").Value == 1;
oRs.Close();
var ins_deelsrtcontrole_status = -1;
var vervaldatum = null;
var isc_options = 0;
var vervallen = false;
var invoerAfterNext = false;
var isFreezeYear = false;
if (periode > 0)
{
var mjb_freeze_year = S("mjb_freeze_year");
var mjb_start_year = S("mjb_start_year");
// Voor het bepalen van de autorisatie voor inspecties, moet gekeken worden naar de gegevens van de Active Situatie (AS).
var sql = "SELECT insp.ins_deelsrtcontrole_key"
+ " , insp.ins_deelsrtcontrole_status"
+ " , insp.vervaldatum"
+ " , insp.isc_mode"
+ " , options"
// Moment inspectie pas kunnen opslaan op of na geplande inspectiedatum.
// Is in de moment modus de invoer na het volgende berekende inspectietijdstip? Voor interval modus is dit altijd het geval.
// Als er nog nooit is geinspecteerd en er is er nog geen ingepland dan is het ook ok.
// Als de inspectie gestart of gereed gemeld is dan is het ook ok, want anders had de inspectie nooit begonnen mogen worden.
+ " , CASE"
+ " WHEN insp.isc_mode = 1"
+ " THEN 1"
+ " WHEN (insp.ins_deelsrtcontrole_status IS NULL AND 1 = " + (hasInspect? 0 : 1) + ") OR" // Er is nog nooit geinspecteerd en er is er geen ingepland.
+ " insp.ins_deelsrtcontrole_status = 2 OR"
+ " insp.ins_deelsrtcontrole_status = 5"
+ " THEN 1"
+ " WHEN insp.ins_deelsrtcontrole_status = 6 AND" // insp.isc_mode = 0 want anders is de vorige when geldig.
+ " SYSDATE >= CASE insp.eenheid"
+ " WHEN 0"
+ " THEN TRUNC (insp.inspectie_next, 'HH')"
+ " ELSE TRUNC (insp.inspectie_next, 'DD')"
+ " END"
+ " THEN 1"
+ " WHEN insp.ins_deelsrtcontrole_status = 0 AND"
+ " SYSDATE >= COALESCE (CASE insp.eenheid" // insp.isc_mode = 0 want anders is de vorige when geldig.
+ " WHEN 0"
+ " THEN TRUNC (insp.plandatum, 'HH')"
+ " ELSE TRUNC (insp.plandatum, 'DD') END"
+ " , CASE insp.eenheid"
+ " WHEN 0"
+ " THEN TRUNC (insp.inspectie_next, 'HH')"
+ " ELSE TRUNC (insp.inspectie_next, 'DD')"
+ " END)"
+ " THEN 1"
+ " ELSE 0"
+ " END invoerAfterNext"
// Bepaling in welk jaar er een inspectie is gepland.
// 1) In het jaar van de plandatum.
// 2) In het jaar van de startdatum.
// 3) a) Laatste inspectie is NULL (eerste inspectie moet nog komen) en het is een Controle(1).
// Volgende inspectie is in het freeze jaar.
// b) Laatste inspectie is NULL (eerste inspectie moet nog komen) en het is een Vervanging(2) of Certificering(3).
// Nextdate is na het freeze jaar?
// Ja) Vorige inspectie ligt na het start jaar en ligt niet in het aanmaak jaar?
// Ja) Volgende inspectie is in het freeze jaar.
// Nee) Volgende inspectie is het jaar van de nextdate.
// Nee) De laatst ingeplande inspectie (nextdate) is na of in het start jaar?
// Ja) Volgende inspectie is in het freeze jaar.
// Nee) Volgende inspectie is in het jaar "nextdatum + periode".
// c) Laatste inspectie is niet NULL. Er is al 1 of meerdere keren geinspecteerd.
// Ligt de laatst ingeplande inspectie (nextdate) na dit jaar?
// Ja) Volgende inspectie is het jaar van de nextdate (in de toekomst).
// Nee) Volgende inspectie is in het freeze jaar.
+ " , CASE"
+ " WHEN"
+ " EXTRACT(YEAR FROM "
+ " COALESCE(insp.plandatum"
+ " , CASE WHEN insp.laatste IS NULL THEN insp.ins_srtcontroledl_xcp_startdat ELSE NULL END"
+ " , CASE"
+ " WHEN insp.laatste IS NULL AND insp.ctr_controle_type = 1" // 1: Controle.
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
+ " WHEN insp.laatste IS NULL AND insp.ctr_controle_type != 1" // 2: Vervanging, 3: Certificering.
+ " THEN" // Er is nog geen inspectie geweest
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM insp.inspectie_next0) > " + mjb_freeze_year
+ " THEN" // Nextdate is na de freeze datum.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(insp.inspectie_next0, -1 * 12 * insp.ins_srtcontrole_periode)) >= " + mjb_start_year + " AND"
+ " EXTRACT(YEAR FROM ADD_MONTHS(insp.inspectie_next0, -1 * 12 * insp.ins_srtcontrole_periode)) != EXTRACT(YEAR FROM insp.ins_deel_aanmaak)"
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Vorige inspectie ligt tussen start en freeze jaar (Nu ligt er ook tussen).
+ " ELSE insp.inspectie_next0"
+ " END"
+ " ELSE" // Nextdate is voor of in het freeze jaar.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM insp.inspectie_next0) >= " + mjb_start_year
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Nextdate tussen start en freeze jaar.
+ " ELSE ADD_MONTHS(insp.inspectie_next0, 12 * insp.ins_srtcontrole_periode)" // Nextdate voor het start jaar.
+ " END"
+ " END"
+ " ELSE" // Laatste IS NOT NULL. Er is al een inspectie geweest.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM insp.inspectie_next0) > EXTRACT(YEAR FROM SYSDATE)"
+ " THEN insp.inspectie_next0" // Volgende inspectie is in de toekomst.
+ " ELSE TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Laatst ingeplande inspectie is nog niet uitgevoerd.
+ " END"
+ " END)) = " + mjb_freeze_year
+ " THEN 1"
+ " ELSE 0"
+ " END isFreezeYear"
+ " FROM ("
// De view ins_v_defined_inspect_xcp levert de volgende regels op
// Alle Active Situatie (AS) soort controle's die geen uitzondering (XCP) record hebben maar wel een scenario.
// en
// Alle Active Situatie (AS) soort controle's die:
// a) geen uitzondering (XCP) record hebben en geen scenario.
// b) een uitzondering (XCP) record hebben.
// Hier niet van belang: Alle soort controles van de scenario's (AND xcp.ins_scenario_key = 1).
+ " SELECT idsc.ins_deelsrtcontrole_key"
+ " , idsc.ins_deelsrtcontrole_datum"
+ " , idsc.ins_deelsrtcontrole_status"
+ " , xcp.ins_srtcontroledl_xcp_eind vervaldatum"
+ " , xcp.ins_srtcontrole_mode isc_mode"
+ " , xcp.ins_srtcontrole_options options"
+ " , xcp.ins_srtcontrole_eenheid eenheid"
+ " , xcp.ins_srtcontrole_periode"
+ " , xcp.ins_deel_aanmaak"
+ " , xcp.ctr_controle_type"
+ " , idsc.ins_deelsrtcontrole_plandatum plandatum"
+ " , ins_srtcontroledl_xcp_startdat"
+ " , CASE"
+ " WHEN 1 = " + (hasInspect? 0 : 1) // lastinspect IS NULL
+ " THEN (SELECT d.ins_deel_aanmaak FROM ins_deel d WHERE d.ins_deel_key = " + pins_deel_key + ")"
+ " WHEN idsc.ins_deelsrtcontrole_status IN (0, 2)"
+ " THEN ins_deelsrtcontrole_datum_org"
+ " ELSE fac.nextcyclusdate(CASE"
+ " WHEN xcp.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"
+ " , xcp.ins_srtcontrole_mode"
+ " , xcp.ins_srtcontrole_eenheid"
+ " , xcp.ins_srtcontrole_periode"
+ " , xcp.ins_srtcontrole_bits"
+ " , 1"
+ " , xcp.ctr_ismjob)"
+ " END inspectie_next"
+ " , ins.nextcyclusdate(xcp.ins_deel_key, xcp.ins_srtcontrole_key, 1, 0) inspectie_next0"
+ " , (SELECT MAX(idsc2.ins_deelsrtcontrole_datum)"
+ " FROM ins_deelsrtcontrole idsc2"
+ " WHERE idsc2.ins_deel_key = " + pins_deel_key
+ " AND idsc2.ins_srtcontrole_key = " + params.srtcont_key
+ " AND idsc2.ins_scenario_key = 1) laatste"
+ " FROM ins_deelsrtcontrole idsc"
+ " , ins_v_defined_inspect_xcp xcp"
+ " WHERE xcp.ins_srtcontrole_key = idsc.ins_srtcontrole_key(+)" // Er kan nog voor de eerste keer geinspecteerd moeten worden.
+ " AND xcp.ins_srtcontrole_key = " + params.srtcont_key
+ " AND xcp.ins_deel_key = " + pins_deel_key
+ " AND idsc.ins_deel_key(+) = " + pins_deel_key
+ " AND idsc.ins_scenario_key(+) = " + params.scen_key
// Neem voor de rechten de xcp van de Active Situatie (AS). Die bepaalt of de soort controle vervallen is.
+ " AND xcp.ins_scenario_key = 1"
+ (params.deelsrtcont_key > 0
? " AND idsc.ins_deelsrtcontrole_key = " + params.deelsrtcont_key
: " AND (idsc.ins_deelsrtcontrole_key IS NULL OR"
+ " idsc.ins_deelsrtcontrole_key = (SELECT MAX(idsc2.ins_deelsrtcontrole_key)"
+ " FROM ins_deelsrtcontrole idsc2"
+ " WHERE idsc2.ins_deel_key = " + pins_deel_key
+ " AND idsc2.ins_srtcontrole_key = " + params.srtcont_key
+ " AND idsc2.ins_scenario_key = " + params.scen_key
+ " ))")
+ " ) insp"
+ " ORDER BY insp.ins_deelsrtcontrole_datum DESC";
var oRs = Oracle.Execute(sql);
// Waarden moeten aanwezig zijn. Mocht dat niet zo zijn dan is er iets fout.
// Als er nog nooit een inspectie is geweest wordt de status -1.
// Als de laatste inspectie is afgerond (stutus is 6) moet er een nieuwe inspectie gestart worden.
ins_deelsrtcontrole_status = oRs("ins_deelsrtcontrole_status").Value != null? oRs("ins_deelsrtcontrole_status").Value : -1;
vervaldatum = oRs("vervaldatum").Value != null? new Date(oRs("vervaldatum").Value) : null;
isc_options = oRs("options").Value;
vervallen = vervaldatum != null && vervaldatum < new Date();
invoerAfterNext = oRs("invoerAfterNext").Value == 1;
isFreezeYear = oRs("isFreezeYear").Value == 1;
oRs.Close();
}
iresult.invoerAfterNext = invoerAfterNext;
// Voor CTR alleen discipline autorisatie met 3D ja/nee en read/write autorisatie (fac_functie_min_level = 3)
@@ -769,20 +785,22 @@ ins = {checkAutLevel:
// Als de inspectie vervallen is moet je alleen nog de lopende inspecties (ingepland of later) kunnen gereedmelden en/of afronden,
// zodat deze inspectie afgerond kan worden. Nieuwe inspectie kunnen nooit meer beginnen.
// Eerste inspectie of verwerkte inspectie kan niet gewijzigd worden.
iresult.canMsuEdit = iresult.writemsu && ins_deelsrtcontrole_status == 6 && !isScenario;
iresult.canInspEdit = ((iresult.readuse && ins_deelsrtcontrole_status != -1 && ins_deelsrtcontrole_status != 6) ||
iresult.canMsuEdit = periode > 0 && iresult.writemsu && ins_deelsrtcontrole_status == 6 && !isScenario;
iresult.canInspEdit = periode > 0 &&
((iresult.readuse && ins_deelsrtcontrole_status != -1 && ins_deelsrtcontrole_status != 6) ||
iresult.canMsuEdit) &&
!vervallen && actief && iresult.hasCTRWrite;
iresult.canInspShow = iresult.readuse && !vervallen && (ins_deelsrtcontrole_status >= 0) && iresult.hasCTRRead && !isScenario;
iresult.canInspShow = periode > 0 && iresult.readuse && !vervallen && (ins_deelsrtcontrole_status >= 0) &&
iresult.hasCTRRead && !isScenario;
// Bij eerste inspectie of verwerkte inspectie kan er gepland worden.
iresult.canInspPlanReq = iresult.readuse && !vervallen &&
iresult.canInspPlanReq = periode > 0 && iresult.readuse && !vervallen &&
(ins_deelsrtcontrole_status == -1 || ins_deelsrtcontrole_status == 6) &&
actief && iresult.hasCTRWrite &&
((isc_options & 1) == 1);
iresult.canInspPlan = iresult.canInspPlanReq && !ctr_ismjob;
iresult.canInspPlanMjb = iresult.canInspPlanReq && ctr_ismjob;
// Bij eerste inspectie, geplande inspectie of verwerkte inspectie kan er gestart worden.
iresult.canInspStartReq = iresult.readuse && invoerAfterNext && !vervallen &&
iresult.canInspStartReq = periode > 0 && iresult.readuse && invoerAfterNext && !vervallen &&
(ins_deelsrtcontrole_status <= 0 || ins_deelsrtcontrole_status == 6) &&
actief && iresult.hasCTRWrite &&
((isc_options & 2) == 2) &&
@@ -793,21 +811,21 @@ ins = {checkAutLevel:
// Mocht het bedrag 0 zijn, dan moet er tijdens heb bevriezen een lcl aan de opmerking worden toegevoegd, dat de taak door een hogere prio taak wordt uitgevoerd.
iresult.canInspFreeze = iresult.canInspStartReq && isFreezeYear;
// Bij eerste inspectie, geplande inspectie, gestarte inspectie of verwerkte inspectie kan er gereedgemeld/afgerond worden.
iresult.canInspClose = iresult.readuse && invoerAfterNext &&
iresult.canInspClose = periode > 0 && iresult.readuse && invoerAfterNext &&
((!vervallen && (ins_deelsrtcontrole_status < 5 || ins_deelsrtcontrole_status == 6)) ||
(ins_deelsrtcontrole_status == 0 || ins_deelsrtcontrole_status == 2)) &&
actief && iresult.hasCTRWrite &&
((isc_options & 4) == 4) &&
!isScenario && !ctr_ismjob;
// Afronden kan vanuit elke status. Alleen vanuit status Gereed gemeld/Afgemeld(5) kan het zonder gegevens in te vullen.
iresult.canInspFinishReq = iresult.readuse && invoerAfterNext &&
iresult.canInspFinishReq = periode > 0 && iresult.readuse && invoerAfterNext &&
actief && iresult.hasCTRWrite &&
((isc_options & 8) == 8) &&
!isScenario;
iresult.canInspFinish = iresult.canInspFinishReq && !ctr_ismjob;
iresult.canInspFinishMjb = iresult.canInspFinishReq && ins_deelsrtcontrole_status == 2 && ctr_ismjob;
// Alleen als de inspectie gereedgemeld is kan SNEL afgerond worden zonder gegevens in te vullen.
iresult.canInspFastFinish = iresult.canInspFinish && ins_deelsrtcontrole_status == 5;
iresult.canInspFastFinish = periode > 0 && iresult.canInspFinish && ins_deelsrtcontrole_status == 5;
}
else
{