FCLT#83238: Foutmelding omdat Freeze jaar in het verleden staat netjes oplossen.

svn path=/Website/trunk/; revision=67786
This commit is contained in:
Maykel Geerdink
2025-01-29 14:36:31 +00:00
parent 2c1b8c7183
commit bbafabaf9d

View File

@@ -787,7 +787,7 @@ ins = {checkAutLevel:
var isFreezeYear = false;
if (periode > 0)
{
var mjb_freeze_year = Math.max(S("mjb_freeze_year"), new Date().getFullYear());
var mjb_freeze_or_sys_year = Math.max(S("mjb_freeze_year"), new Date().getFullYear());
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"
@@ -896,7 +896,17 @@ ins = {checkAutLevel:
+ " END"
+ " , CASE"
+ " WHEN insp.ins_deelsrtcontrole_status IN (0, 2, 3)"
+ " THEN insp.plandatum"
+ " THEN" // 2) Plandatum.
+ " CASE"
+ " WHEN insp.plandatum IS NOT NULL"
+ " THEN"
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM insp.plandatum) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE insp.plandatum"
+ " END"
+ " ELSE NULL"
+ " END"
+ " ELSE NULL"
+ " END"
+ " , CASE"
@@ -907,8 +917,8 @@ ins = {checkAutLevel:
+ " WHEN EXTRACT(YEAR FROM insp.ins_srtcontroledl_xcp_startdat) >= EXTRACT(YEAR FROM insp.ins_deel_aanmaak)"
+ " THEN" // 3a) Startdatum op of na aanmaakdatum/registratiedatum.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM insp.ins_srtcontroledl_xcp_startdat) < " + mjb_freeze_year
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
+ " WHEN EXTRACT(YEAR FROM insp.ins_srtcontroledl_xcp_startdat) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE insp.ins_srtcontroledl_xcp_startdat"
+ " END"
+ " ELSE" // 3b) Aanmaakdatum/Registratiedatum is na de startdatum.
@@ -916,14 +926,14 @@ ins = {checkAutLevel:
+ " WHEN insp.ctr_controle_type = 1" // Controle(1).
+ " THEN"
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM insp.ins_deel_aanmaak) < " + mjb_freeze_year
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
+ " WHEN EXTRACT(YEAR FROM insp.ins_deel_aanmaak) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE insp.ins_deel_aanmaak" // Registratiedatum.
+ " END"
+ " ELSE" // Vervanging(2), Certificering(3).
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(insp.ins_deel_aanmaak, 12 * insp.ins_srtcontrole_periode)) < " + mjb_freeze_year
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(insp.ins_deel_aanmaak, 12 * insp.ins_srtcontrole_periode)) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE ADD_MONTHS(insp.ins_deel_aanmaak, 12 * insp.ins_srtcontrole_periode)" // 1 periode na registratiedatum.
+ " END"
+ " END"
@@ -938,14 +948,14 @@ ins = {checkAutLevel:
+ " WHEN insp.ctr_controle_type = 1" // Controle(1).
+ " THEN"
+ " CASE"
+ " WHEN EXTRACT( YEAR FROM insp.ins_deel_aanmaak) < " + mjb_freeze_year
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
+ " WHEN EXTRACT( YEAR FROM insp.ins_deel_aanmaak) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE insp.ins_deel_aanmaak"
+ " END"
+ " ELSE" // Vervanging(2), Certificering(3).
+ " CASE"
+ " WHEN EXTRACT( YEAR FROM ADD_MONTHS(insp.ins_deel_aanmaak, 12 * insp.ins_srtcontrole_periode)) < " + mjb_freeze_year
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
+ " WHEN EXTRACT( YEAR FROM ADD_MONTHS(insp.ins_deel_aanmaak, 12 * insp.ins_srtcontrole_periode)) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE ADD_MONTHS(insp.ins_deel_aanmaak, 12 * insp.ins_srtcontrole_periode)"
+ " END"
+ " END"
@@ -953,36 +963,36 @@ ins = {checkAutLevel:
+ " END"
+ " , CASE" // 5) Berekenen jaar.
+ " WHEN insp.laatste IS NULL AND insp.ctr_controle_type = 1" // Controle(1).
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // 5a)
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')" // 5a)
+ " WHEN insp.laatste IS NULL AND insp.ctr_controle_type != 1" // Vervanging(2), Certificering(3).
+ " THEN" // 5b) Er is nog geen inspectie geweest
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM insp.inspectie_next0) > " + mjb_freeze_year
+ " WHEN EXTRACT(YEAR FROM insp.inspectie_next0) > " + mjb_freeze_or_sys_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).
+ " THEN TO_DATE('" + mjb_freeze_or_sys_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.
+ " THEN TO_DATE('" + mjb_freeze_or_sys_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" // 5c) Laatste IS NOT NULL. Er is al een inspectie geweest.
+ " CASE"
+ " WHEN isSuccess = 0" // De laatste inspectie was niet succesvol,
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // De volgende inspectie dan in het freeze jaar weer uitvoeren.
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')" // De volgende inspectie dan in het freeze jaar weer uitvoeren.
+ " WHEN EXTRACT(YEAR FROM insp.inspectie_next0) > EXTRACT(YEAR FROM SYSDATE)"
+ " THEN insp.inspectie_next0" // Volgende inspectie is in de toekomst.
// Geaccordeerde laatste inspectie wordt in het begin al afgevangen.
// en niet hier zoals bij org_nextdate in functie getmjblist_sql.
+ " ELSE TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Laatst ingeplande inspectie is nog steeds niet uitgevoerd. Dus opnieuw in het freeze jaar tonen zodat deze daar gefreezed kan worden.
+ " ELSE TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')" // Laatst ingeplande inspectie is nog steeds niet uitgevoerd. Dus opnieuw in het freeze jaar tonen zodat deze daar gefreezed kan worden.
+ " END"
+ " END)) = " + mjb_freeze_year
+ " END)) = " + mjb_freeze_or_sys_year
+ " THEN 1"
+ " ELSE 0"
+ " END isFreezeYear"
@@ -1161,7 +1171,7 @@ ins = {checkAutLevel:
!ctr_ismjob;
iresult.canInspPlanMjb = iresult.canInspPlanReq &&
((ins_deelsrtcontrole_status == -1 || ins_deelsrtcontrole_status == 6) ||
(ins_deelsrtcontrole_status == 2 || ins_deelsrtcontrole_status == 3) && freezedate_year <= mjb_freeze_year) // Laatste taak is een geaccordeerde/bevroren of ter uitvoering staande taak in of voor het freeze jaar.
(ins_deelsrtcontrole_status == 2 || ins_deelsrtcontrole_status == 3) && freezedate_year <= mjb_freeze_or_sys_year) // Laatste taak is een geaccordeerde/bevroren of ter uitvoering staande taak in of voor het freeze jaar.
ctr_ismjob;
// Bij eerste inspectie, geplande inspectie of verwerkte inspectie kan er gestart worden.
// Als je de inspectie gestart hebt, mag je het ook weer terugdraaien.
@@ -1172,7 +1182,7 @@ ins = {checkAutLevel:
iresult.canInspStartReq = iresult.canInspStartUnstartReq && (ins_deelsrtcontrole_status <= 0 || ins_deelsrtcontrole_status == 6);
iresult.canInspUnstartReq = iresult.canInspStartUnstartReq && ins_deelsrtcontrole_status == 2;
iresult.canInspStart = iresult.canInspStartReq && !ctr_ismjob;
// Bevriezen gebeurt altijd voor het kalenderjaar S("mjb_freeze_year").
// Bevriezen gebeurt altijd in het kalenderjaar MAX(S("mjb_freeze_year"), SYSDATE).
// Dan is er voor het freeze kalenderjaar een bedrag ingevuld.
// 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 && ctr_ismjob;
@@ -1193,7 +1203,7 @@ ins = {checkAutLevel:
actief && iresult.hasCTRUSEWrite &&
((isc_options & 2) == 2) &&
!isScenario &&
freezedate_year < mjb_freeze_year && // Het is een geaccordeerde/bevroren of ter uitvoering staande taak van voor het freeze jaar (!isScenario geldt dan ook).
freezedate_year < mjb_freeze_or_sys_year && // Het is een geaccordeerde/bevroren of ter uitvoering staande taak van voor het freeze jaar (!isScenario geldt dan ook).
ctr_ismjob;
// Bij eerste inspectie, geplande inspectie, gestarte inspectie, ter uitvoering staande of verwerkte inspectie kan er gereedgemeld/afgerond worden.
iresult.canInspClose = periode > 0 && iresult.readuse && canDoNextAction &&
@@ -1416,7 +1426,7 @@ ins = {checkAutLevel:
func_get_nextdate: // Bepaal de volgende inspectie datum.
function _func_get_nextdate(pins_key, psrtcont_key, pscen_key, params)
{
var mjb_freeze_year = Math.max(S("mjb_freeze_year"), new Date().getFullYear());
var mjb_freeze_or_sys_year = Math.max(S("mjb_freeze_year"), new Date().getFullYear());
var mjb_start_year = S("mjb_start_year");
var nextdate = null;
@@ -1482,7 +1492,7 @@ ins = {checkAutLevel:
}
else if (dsc_status == 6 && !cm_success) // 2) De laatste inspectie is NIET succesvol voltooid. De volgende is in het freeze jaar.
{ // De laatste inspectie is een NIET succesvol afgeronde inspectie. De volgende is in het freeze jaar.
nextdate = new Date(mjb_freeze_year, 0, 1); // 1 januari van het freeze jaar.
nextdate = new Date(mjb_freeze_or_sys_year, 0, 1); // 1 januari van het freeze jaar.
}
else if (dsc_status == 2 || dsc_status == 3) // 3) De laatste inspectie is geaccordeerd/bevroren/gestart(2): De volgende is een periode verder als het freeze jaar.
{ // De laatste inspectie is geaccordeerd/bevroren/gestart(2): De volgende is een periode verder als het freeze jaar.
@@ -1541,8 +1551,8 @@ ins = {checkAutLevel:
{ // 1) Startdatum is ingevuld en ligt in het verleden of de toekomst.
if (startdatum.getFullYear() >= aanmaakdatum.getFullYear())
{ // Startdatum op of na aanmaakdatum/registratiedatum.
if (startdatum.getFullYear() < mjb_freeze_year)
nextdate = new Date(mjb_freeze_year, 1, 1);
if (startdatum.getFullYear() < mjb_freeze_or_sys_year)
nextdate = new Date(mjb_freeze_or_sys_year, 1, 1);
else
nextdate = startdatum;
}
@@ -1559,15 +1569,15 @@ ins = {checkAutLevel:
if (controle_type == 1)
{ // Controle(1).
if (aanmaakdatum.getFullYear() < mjb_freeze_year)
nextdate = new Date(mjb_freeze_year, 1, 1);
if (aanmaakdatum.getFullYear() < mjb_freeze_or_sys_year)
nextdate = new Date(mjb_freeze_or_sys_year, 1, 1);
else
nextdate = new Date(aanmaakdatum); // Registratiedatum.
}
else
{ // Vervanging(2), Certificering(3).
if ((aanmaakdatum.getFullYear() + srtcontrole_periode) < mjb_freeze_year)
nextdate = new Date(mjb_freeze_year, 1, 1);
if ((aanmaakdatum.getFullYear() + srtcontrole_periode) < mjb_freeze_or_sys_year)
nextdate = new Date(mjb_freeze_or_sys_year, 1, 1);
else
nextdate = new Date(aanmaakdatum.setFullYear(aanmaakdatum.getFullYear() + srtcontrole_periode)); // 1 periode na registratiedatum.
}
@@ -1577,15 +1587,15 @@ ins = {checkAutLevel:
{ // Aanmaakdatum/Registratiedatum is ingevuld en ligt in de toekomst en er is nog geen inspectie geweest.
if (controle_type == 1)
{ // Controle(1).
if (aanmaakdatum.getFullYear() < mjb_freeze_year)
nextdate = new Date(mjb_freeze_year, 1, 1);
if (aanmaakdatum.getFullYear() < mjb_freeze_or_sys_year)
nextdate = new Date(mjb_freeze_or_sys_year, 1, 1);
else
nextdate = new Date(aanmaakdatum); // Registratiedatum.
}
else
{ // Vervanging(2), Certificering(3).
if ((aanmaakdatum.getFullYear() + srtcontrole_periode) < mjb_freeze_year)
nextdate = new Date(mjb_freeze_year, 1, 1);
if ((aanmaakdatum.getFullYear() + srtcontrole_periode) < mjb_freeze_or_sys_year)
nextdate = new Date(mjb_freeze_or_sys_year, 1, 1);
else
nextdate = new Date(aanmaakdatum.setFullYear(aanmaakdatum.getFullYear() + srtcontrole_periode)); // 1 periode na registratiedatum.
}
@@ -1594,7 +1604,7 @@ ins = {checkAutLevel:
{ // 2) Berekenen jaar.
if (controle_type == 1)
{
nextdate = new Date(mjb_freeze_year, 1, 1);
nextdate = new Date(mjb_freeze_or_sys_year, 1, 1);
}
else
{ // Vervanging(2), Certificering(3).
@@ -1609,18 +1619,18 @@ ins = {checkAutLevel:
oRsN.Close();
if (nextdate1.getFullYear() > mjb_freeze_year)
if (nextdate1.getFullYear() > mjb_freeze_or_sys_year)
{ // Nextdate is na de freeze datum.
if ((nextdate1.getFullYear() - srtcontrole_periode) >= mjb_start_year &&
(nextdate1.getFullYear() - srtcontrole_periode) != aanmaakdatum.getFullYear())
nextdate = new Date(mjb_freeze_year, 1, 1); // Nu en berekende vorige inspectie liggen tussen start en freeze jaar.
nextdate = new Date(mjb_freeze_or_sys_year, 1, 1); // Nu en berekende vorige inspectie liggen tussen start en freeze jaar.
else
nextdate = nextdate1;
}
else
{ // Nextdate is voor of in het freeze jaar.
if (nextdate1.getFullYear() >= mjb_start_year)
nextdate = new Date(mjb_freeze_year, 1, 1); // Nextdate tussen start en freeze jaar.
nextdate = new Date(mjb_freeze_or_sys_year, 1, 1); // Nextdate tussen start en freeze jaar.
else
nextdate = new Date(nextdate1.setFullYear(nextdate1.getFullYear() + srtcontrole_periode)); // Nextdate voor het start jaar. 1 Periode verder.
}
@@ -1782,7 +1792,7 @@ ins = {checkAutLevel:
var groepering = params.groepering;
var srtnoti_arr = [];
var mjb_freeze_year = Math.max(S("mjb_freeze_year"), new Date().getFullYear());
var mjb_freeze_or_sys_year = Math.max(S("mjb_freeze_year"), new Date().getFullYear());
var mjb_start_year = S("mjb_start_year");
var sql_objincl = "";
@@ -3200,12 +3210,6 @@ ins = {checkAutLevel:
+ " AND id3.ins_scenario_key = 1"
+ " AND id3.ins_deelsrtcontrole_status = 6))";
// Als het freeze jaar nog op vorig jaar staat dan wil men het vorige jaar ook in het overzicht zien (DEMO#65665).
// Als het freeze jaar nog op vorig jaar staat dan moet/kan de volgende inspectie niet in het freeze jaar zijn maar in het huidige jaar.
// In die gevallen dat een datum dan op het freeze jaar moet wordeen gezet moeten we dan nu de volgende parameter gebruiken.
// (Als het freeze jaar op meer dan een jaar terug staat is dat een foute configuratie.)
var mjb_freeze_or_sys_year = (new Date()).getFullYear() > mjb_freeze_year? (new Date()).getFullYear() : mjb_freeze_year;
// inspecties die nog nooit zijn uitgevoerd/ingepland. Er is nog geen ins_deelsrtcontrole regel aanwezig en dus ook geen plandatum/respijtdatum.
var inspectie_next_A = " CASE"
+ " WHEN x.ctr_ismjob = 1"
@@ -3235,7 +3239,7 @@ ins = {checkAutLevel:
+ " WHEN EXTRACT(YEAR FROM x.ins_srtcontroledl_xcp_startdat) >= EXTRACT(YEAR FROM x.ins_deel_aanmaak)"
+ " THEN" // Startdatum op of na aanmaakdatum/registratiedatum.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM x.ins_srtcontroledl_xcp_startdat) < " + mjb_freeze_year
+ " WHEN EXTRACT(YEAR FROM x.ins_srtcontroledl_xcp_startdat) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('31-12-" + mjb_freeze_or_sys_year + "', 'DD-MM-YYYY')"
+ " ELSE x.ins_srtcontroledl_xcp_startdat"
+ " END"
@@ -3244,13 +3248,13 @@ ins = {checkAutLevel:
+ " WHEN x.ctr_controle_type = 1" // Controle(1).
+ " THEN"
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM x.ins_deel_aanmaak) < " + mjb_freeze_year
+ " WHEN EXTRACT(YEAR FROM x.ins_deel_aanmaak) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('31-12-" + mjb_freeze_or_sys_year + "', 'DD-MM-YYYY')"
+ " ELSE x.ins_deel_aanmaak" // Registratiedatum.
+ " END"
+ " ELSE" // Vervanging(2), Certificering(3).
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(x.ins_deel_aanmaak, 12 * x.ins_srtcontrole_periode)) < " + mjb_freeze_year
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(x.ins_deel_aanmaak, 12 * x.ins_srtcontrole_periode)) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('31-12-" + mjb_freeze_or_sys_year + "', 'DD-MM-YYYY')"
+ " ELSE ADD_MONTHS(x.ins_deel_aanmaak, 12 * x.ins_srtcontrole_periode)" // 1 periode na registratiedatum.
+ " END"
@@ -3262,13 +3266,13 @@ ins = {checkAutLevel:
+ " WHEN x.ctr_controle_type = 1" // Controle(1).
+ " THEN"
+ " CASE"
+ " WHEN EXTRACT( YEAR FROM x.ins_deel_aanmaak) < " + mjb_freeze_year
+ " WHEN EXTRACT( YEAR FROM x.ins_deel_aanmaak) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('31-12-" + mjb_freeze_or_sys_year + "', 'DD-MM-YYYY')"
+ " ELSE x.ins_deel_aanmaak"
+ " END"
+ " ELSE" // Vervanging(2), Certificering(3).
+ " CASE"
+ " WHEN EXTRACT( YEAR FROM ADD_MONTHS(x.ins_deel_aanmaak, 12 * x.ins_srtcontrole_periode)) < " + mjb_freeze_year
+ " WHEN EXTRACT( YEAR FROM ADD_MONTHS(x.ins_deel_aanmaak, 12 * x.ins_srtcontrole_periode)) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('31-12-" + mjb_freeze_or_sys_year + "', 'DD-MM-YYYY')"
+ " ELSE ADD_MONTHS(x.ins_deel_aanmaak, 12 * x.ins_srtcontrole_periode)"
+ " END"
@@ -3282,7 +3286,7 @@ ins = {checkAutLevel:
+ " WHEN x.ctr_controle_type != 1" // 2b) Vervanging(2), Certificering(3).
+ " THEN"
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM ins.nextcyclusdate(x.ins_deel_key, x.ins_srtcontrole_key, 1, 0)) > " + mjb_freeze_year
+ " WHEN EXTRACT(YEAR FROM ins.nextcyclusdate(x.ins_deel_key, x.ins_srtcontrole_key, 1, 0)) > " + mjb_freeze_or_sys_year
+ " THEN" // Nextdate is na de freeze datum.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(ins.nextcyclusdate(x.ins_deel_key, x.ins_srtcontrole_key, 1, 0), -1 * 12 * x.ins_srtcontrole_periode)) >= " + mjb_start_year + " AND"
@@ -3936,7 +3940,7 @@ ins = {checkAutLevel:
var inflatiepct = S("mjb_inflation");
var inflatiefactor = 1 + (inflatiepct / 100);
var mjb_start_year = S("mjb_start_year");
var mjb_freeze_year = Math.max(S("mjb_freeze_year"), new Date().getFullYear());
var mjb_freeze_or_sys_year = Math.max(S("mjb_freeze_year"), new Date().getFullYear());
var keys = params.keys;
var niveau = params.niveau;
var scenario = params.scenario;
@@ -3992,12 +3996,6 @@ ins = {checkAutLevel:
var algFlexParams = params.algFlexParams;
var insFlexParams = params.insFlexParams;
// Als het freeze jaar nog op vorig jaar staat dan wil men het vorige jaar ook in het overzicht zien (DEMO#65665).
// Als het freeze jaar nog op vorig jaar staat dan moet/kan de volgende inspectie niet in het freeze jaar zijn maar in het huidige jaar.
// In die gevallen dat een datum dan op het freeze jaar moet wordeen gezet moeten we dan nu de volgende parameter gebruiken.
// (Als het freeze jaar op meer dan een jaar terug staat is dat een foute configuratie.)
var mjb_freeze_or_sys_year = (new Date()).getFullYear() > mjb_freeze_year? (new Date()).getFullYear() : mjb_freeze_year;
// De datum (jaar) van de *eerstvolgende* onderhoudsbeurt volgt uit:
// Datum laatste (/laatste geplande) inspectie
// of anders: ins_deel_aanmaak
@@ -4051,14 +4049,23 @@ ins = {checkAutLevel:
+ " THEN c.ins_deelsrtcontrole_freezedate"
+ " ELSE NULL"
+ " END"
+ " , COALESCE(c.plandatum, e.plandatum)" // 2) Plandatum.
+ " , CASE" // 2) Plandatum.
+ " WHEN COALESCE(c.plandatum, e.plandatum) IS NOT NULL"
+ " THEN"
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM COALESCE(c.plandatum, e.plandatum)) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE COALESCE(c.plandatum, e.plandatum)"
+ " END"
+ " ELSE NULL"
+ " END"
+ " , CASE" // 3) Laatste inspectie is NIET succesvol en er zijn verder geen geplande, geaccordeerde of succesvol uitgevoerde taak aanwezig.
+ " WHEN e.laatste_not_suc IS NOT NULL AND c.laatste_acc_suc IS NULL"
+ " THEN"
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM e.laatste_jaar) = " + mjb_freeze_year
+ " THEN TO_DATE('" + (mjb_freeze_year + 1) + "', 'YYYY')"
+ " ELSE TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM e.laatste_jaar) = " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + (mjb_freeze_or_sys_year + 1) + "', 'YYYY')"
+ " ELSE TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " END"
+ " ELSE NULL"
+ " END"
@@ -4070,7 +4077,7 @@ ins = {checkAutLevel:
+ " WHEN EXTRACT(YEAR FROM e.ins_srtcontroledl_xcp_startdat) >= EXTRACT(YEAR FROM e.ins_deel_aanmaak)"
+ " THEN" // Startdatum op of na aanmaakdatum/registratiedatum.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM e.ins_srtcontroledl_xcp_startdat) < " + mjb_freeze_year
+ " WHEN EXTRACT(YEAR FROM e.ins_srtcontroledl_xcp_startdat) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE e.ins_srtcontroledl_xcp_startdat"
+ " END"
@@ -4079,13 +4086,13 @@ ins = {checkAutLevel:
+ " WHEN e.ctr_controle_type = 1" // Controle(1).
+ " THEN"
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM e.ins_deel_aanmaak) < " + mjb_freeze_year
+ " WHEN EXTRACT(YEAR FROM e.ins_deel_aanmaak) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE e.ins_deel_aanmaak" // Registratiedatum.
+ " END"
+ " ELSE" // Vervanging(2), Certificering(3).
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(e.ins_deel_aanmaak, 12 * e.ins_srtcontrole_periode)) < " + mjb_freeze_year
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(e.ins_deel_aanmaak, 12 * e.ins_srtcontrole_periode)) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE ADD_MONTHS(e.ins_deel_aanmaak, 12 * e.ins_srtcontrole_periode)" // 1 periode na registratiedatum.
+ " END"
@@ -4098,13 +4105,13 @@ ins = {checkAutLevel:
+ " WHEN e.ctr_controle_type = 1" // Controle(1).
+ " THEN"
+ " CASE"
+ " WHEN EXTRACT( YEAR FROM e.ins_deel_aanmaak) < " + mjb_freeze_year
+ " WHEN EXTRACT( YEAR FROM e.ins_deel_aanmaak) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE e.ins_deel_aanmaak"
+ " END"
+ " ELSE" // Vervanging(2), Certificering(3).
+ " CASE"
+ " WHEN EXTRACT( YEAR FROM ADD_MONTHS(e.ins_deel_aanmaak, 12 * e.ins_srtcontrole_periode)) < " + mjb_freeze_year
+ " WHEN EXTRACT( YEAR FROM ADD_MONTHS(e.ins_deel_aanmaak, 12 * e.ins_srtcontrole_periode)) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE ADD_MONTHS(e.ins_deel_aanmaak, 12 * e.ins_srtcontrole_periode)"
+ " END"
@@ -4117,7 +4124,7 @@ ins = {checkAutLevel:
+ " WHEN c.laatste_acc_suc IS NULL AND e.ctr_controle_type != 1" // Vervanging(2), Certificering(3).
+ " THEN" // 5b) Er is nog geen inspectie geweest
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM e.nextdate) > " + mjb_freeze_year
+ " WHEN EXTRACT(YEAR FROM e.nextdate) > " + mjb_freeze_or_sys_year
+ " THEN" // Nextdate is na de freeze datum.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(e.nextdate, -1 * 12 * e.ins_srtcontrole_periode)) >= " + mjb_start_year + " AND"
@@ -4819,8 +4826,8 @@ ins = {checkAutLevel:
// Dan moet ik nog deze OR toevoegen.
// Als het vinkje van lege regels tonen niet is gezet dan worden deze regels niet getoond (weggefilterd).
+ " OR (vervangingsjaar < EXTRACT(YEAR FROM SYSDATE) AND comp.ins_deelsrtcontrole_status IN (2, 3)"
+ ((new Date()).getFullYear() > mjb_freeze_year
? " AND EXTRACT(YEAR FROM comp.ins_deelsrtcontrole_freezedate) = " + mjb_freeze_year
+ ((new Date()).getFullYear() > mjb_freeze_or_sys_year
? " AND EXTRACT(YEAR FROM comp.ins_deelsrtcontrole_freezedate) = " + mjb_freeze_or_sys_year
: "")
+ " )"
+ " OR (vervangingsjaar < EXTRACT(YEAR FROM SYSDATE) AND comp.ins_deelsrtcontrole_status = 0)"
@@ -5087,7 +5094,7 @@ ins = {checkAutLevel:
var sql_org_nextdate =
" EXTRACT (YEAR FROM COALESCE(CASE"
+ " WHEN cv.laatste_not_suc IS NOT NULL" // 1) Laatste inspectie is NIET succesvol. De volgende inspectie direct in het freeze jaar.
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " WHEN cv.laatste_acc_suc IS NULL AND" // 2) Startdatum is ingevuld en er is nog geen inspectie geweest.
+ " cv.ins_srtcontroledl_xcp_startdat IS NOT NULL"
+ " THEN" // 2) Startdatum is ingevuld en ligt in het verleden of de toekomst en er is nog geen inspectie geweest.
@@ -5095,8 +5102,8 @@ ins = {checkAutLevel:
+ " WHEN EXTRACT(YEAR FROM cv.ins_srtcontroledl_xcp_startdat) >= EXTRACT(YEAR FROM cv.ins_deel_aanmaak)"
+ " THEN" // 2a) Startdatum op of na aanmaakdatum/registratiedatum.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM cv.ins_srtcontroledl_xcp_startdat) < " + mjb_freeze_year
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
+ " WHEN EXTRACT(YEAR FROM cv.ins_srtcontroledl_xcp_startdat) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE cv.ins_srtcontroledl_xcp_startdat"
+ " END"
+ " ELSE" // 2b) Aanmaakdatum/Registratiedatum is na de startdatum.
@@ -5104,14 +5111,14 @@ ins = {checkAutLevel:
+ " WHEN cv.ctr_controle_type = 1" // Controle(1).
+ " THEN"
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM cv.ins_deel_aanmaak) < " + mjb_freeze_year
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
+ " WHEN EXTRACT(YEAR FROM cv.ins_deel_aanmaak) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE cv.ins_deel_aanmaak" // Registratiedatum.
+ " END"
+ " ELSE" // Vervanging(2), Certificering(3).
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(cv.ins_deel_aanmaak, 12 * cv.ins_srtcontrole_periode)) < " + mjb_freeze_year
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(cv.ins_deel_aanmaak, 12 * cv.ins_srtcontrole_periode)) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE ADD_MONTHS(cv.ins_deel_aanmaak, 12 * cv.ins_srtcontrole_periode)" // 1 periode na registratiedatum.
+ " END"
+ " END"
@@ -5123,14 +5130,14 @@ ins = {checkAutLevel:
+ " WHEN cv.ctr_controle_type = 1" // Controle(1).
+ " THEN"
+ " CASE"
+ " WHEN EXTRACT( YEAR FROM cv.ins_deel_aanmaak) < " + mjb_freeze_year
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
+ " WHEN EXTRACT( YEAR FROM cv.ins_deel_aanmaak) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE cv.ins_deel_aanmaak"
+ " END"
+ " ELSE" // Vervanging(2), Certificering(3).
+ " CASE"
+ " WHEN EXTRACT( YEAR FROM ADD_MONTHS(cv.ins_deel_aanmaak, 12 * cv.ins_srtcontrole_periode)) < " + mjb_freeze_year
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
+ " WHEN EXTRACT( YEAR FROM ADD_MONTHS(cv.ins_deel_aanmaak, 12 * cv.ins_srtcontrole_periode)) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE ADD_MONTHS(cv.ins_deel_aanmaak, 12 * cv.ins_srtcontrole_periode)"
+ " END"
+ " END"
@@ -5138,22 +5145,22 @@ ins = {checkAutLevel:
+ " END"
+ " , CASE" // 4) Berekenen jaar.
+ " WHEN cv.laatste_acc_suc IS NULL AND cv.ctr_controle_type = 1" // Controle(1).
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // 4a)
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')" // 4a)
+ " WHEN cv.laatste_acc_suc IS NULL AND cv.ctr_controle_type != 1" // Vervanging(2), Certificering(3).
+ " THEN" // 4b) Er is nog geen inspectie geweest
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM cv.nextdate) > " + mjb_freeze_year
+ " WHEN EXTRACT(YEAR FROM cv.nextdate) > " + mjb_freeze_or_sys_year
+ " THEN" // Nextdate is na de freeze datum.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(cv.nextdate, -1 * 12 * cv.ins_srtcontrole_periode)) >= " + mjb_start_year + " AND"
+ " EXTRACT(YEAR FROM ADD_MONTHS(cv.nextdate, -1 * 12 * cv.ins_srtcontrole_periode)) != EXTRACT(YEAR FROM cv.ins_deel_aanmaak)"
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Nu en berekende vorige inspectie liggen tussen start en freeze jaar.
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')" // Nu en berekende vorige inspectie liggen tussen start en freeze jaar.
+ " ELSE cv.nextdate"
+ " END"
+ " ELSE" // Nextdate is voor of in het freeze jaar.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM cv.nextdate) >= " + mjb_start_year
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Nextdate tussen start en freeze jaar.
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')" // Nextdate tussen start en freeze jaar.
+ " ELSE ADD_MONTHS(cv.nextdate, 12 * cv.ins_srtcontrole_periode)" // Nextdate voor het start jaar.
+ " END"
+ " END"
@@ -5179,7 +5186,7 @@ ins = {checkAutLevel:
+ " ELSE"
+ " cv.nextdate" // Volgende inspectie is in de toekomst.
+ " END"
+ " ELSE TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Laatst ingeplande inspectie is nog steeds niet uitgevoerd. Dus opnieuw in het freeze jaar tonen zodat deze daar gefreezed kan worden.
+ " ELSE TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')" // Laatst ingeplande inspectie is nog steeds niet uitgevoerd. Dus opnieuw in het freeze jaar tonen zodat deze daar gefreezed kan worden.
+ " END"
+ " END)) org_nextdate";
@@ -5350,7 +5357,7 @@ ins = {checkAutLevel:
+ " AND idsc.ins_srtcontrole_key = CV.ins_srtcontrole_key"
+ " AND idsc.ins_deelsrtcontrole_status = 2"
+ " AND EXTRACT(YEAR FROM idsc.ins_deelsrtcontrole_freezedate) = CV.vervangingsjaar) = 0)"
+ " AND CV.vervangingsjaar = " + mjb_freeze_year
+ " AND CV.vervangingsjaar = " + mjb_freeze_or_sys_year
+ " THEN 1"
+ " ELSE 0"
+ " END tobefreezed"
@@ -5395,7 +5402,16 @@ ins = {checkAutLevel:
+ " THEN cv.idsc_freezedate_max" // Max nemen om dubbele regels te voorkomen.
+ " ELSE NULL"
+ " END"
+ " , cv.plandatum"
+ " , CASE" // 2) Plandatum.
+ " WHEN cv.plandatum IS NOT NULL"
+ " THEN"
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM cv.plandatum) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE cv.plandatum"
+ " END"
+ " ELSE NULL"
+ " END"
+ " , CASE"
+ " WHEN (SELECT MAX(idsc2.ins_deelsrtcontrole_key)"
+ " FROM ins_deelsrtcontrole idsc2"
@@ -5408,7 +5424,7 @@ ins = {checkAutLevel:
+ " WHEN EXTRACT(YEAR FROM cv.ins_srtcontroledl_xcp_startdat) >= EXTRACT(YEAR FROM cv.ins_deel_aanmaak)"
+ " THEN" // 3a) Startdatum op of na aanmaakdatum/registratiedatum.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM cv.ins_srtcontroledl_xcp_startdat) < " + mjb_freeze_year
+ " WHEN EXTRACT(YEAR FROM cv.ins_srtcontroledl_xcp_startdat) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE cv.ins_srtcontroledl_xcp_startdat"
+ " END"
@@ -5417,13 +5433,13 @@ ins = {checkAutLevel:
+ " WHEN cv.ctr_controle_type = 1" // Controle(1).
+ " THEN"
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM cv.ins_deel_aanmaak) < " + mjb_freeze_year
+ " WHEN EXTRACT(YEAR FROM cv.ins_deel_aanmaak) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE cv.ins_deel_aanmaak" // Registratiedatum.
+ " END"
+ " ELSE" // Vervanging(2), Certificering(3).
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(cv.ins_deel_aanmaak, 12 * cv.ins_srtcontrole_periode)) < " + mjb_freeze_year
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(cv.ins_deel_aanmaak, 12 * cv.ins_srtcontrole_periode)) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE ADD_MONTHS(cv.ins_deel_aanmaak, 12 * cv.ins_srtcontrole_periode)" // 1 periode na registratiedatum.
+ " END"
@@ -5443,13 +5459,13 @@ ins = {checkAutLevel:
+ " WHEN cv.ctr_controle_type = 1" // Controle(1).
+ " THEN"
+ " CASE"
+ " WHEN EXTRACT( YEAR FROM cv.ins_deel_aanmaak) < " + mjb_freeze_year
+ " WHEN EXTRACT( YEAR FROM cv.ins_deel_aanmaak) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE cv.ins_deel_aanmaak"
+ " END"
+ " ELSE" // Vervanging(2), Certificering(3).
+ " CASE"
+ " WHEN EXTRACT( YEAR FROM ADD_MONTHS(cv.ins_deel_aanmaak, 12 * cv.ins_srtcontrole_periode)) < " + mjb_freeze_year
+ " WHEN EXTRACT( YEAR FROM ADD_MONTHS(cv.ins_deel_aanmaak, 12 * cv.ins_srtcontrole_periode)) < " + mjb_freeze_or_sys_year
+ " THEN TO_DATE('" + mjb_freeze_or_sys_year + "', 'YYYY')"
+ " ELSE ADD_MONTHS(cv.ins_deel_aanmaak, 12 * cv.ins_srtcontrole_periode)"
+ " END"
@@ -5470,7 +5486,7 @@ ins = {checkAutLevel:
+ " AND idsc2.ins_scenario_key = 1) IS NULL AND cv.ctr_controle_type != 1" // Vervanging(2), Certificering(3).
+ " THEN" // 5b) Er is nog geen inspectie geweest
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM cv.nextdate) > " + mjb_freeze_year
+ " WHEN EXTRACT(YEAR FROM cv.nextdate) > " + mjb_freeze_or_sys_year
+ " THEN" // Nextdate is na de freeze datum.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(cv.nextdate, -1 * 12 * cv.ins_srtcontrole_periode)) >= " + mjb_start_year + " AND"
@@ -5783,9 +5799,9 @@ ins = {checkAutLevel:
+ " ELSE NULL"
+ " END nextdate"
+ " , result.ins_deelsrtcontrole_status"
+ " , result.\"" + mjb_freeze_year + "\" freeze_bedrag"
+ " , result.\"" + mjb_freeze_or_sys_year + "\" freeze_bedrag"
+ " , CASE"
+ " WHEN result.\"" + mjb_freeze_year + "\" = 0 AND result.\"" + mjb_freeze_year + "_ORGBEDRAG\" IS NOT NULL AND result.\"" + mjb_freeze_year + "_ORGBEDRAG\" > 0"
+ " WHEN result.\"" + mjb_freeze_or_sys_year + "\" = 0 AND result.\"" + mjb_freeze_or_sys_year + "_ORGBEDRAG\" IS NOT NULL AND result.\"" + mjb_freeze_or_sys_year + "_ORGBEDRAG\" > 0"
+ " THEN " + safe.quoted_sql(L("lcl_mjb_performed_high"))
+ " ELSE ''"
+ " END opm_has_higherprio" // Opmerking als het een hogere prio heeft (has_higherprio)
@@ -5974,7 +5990,7 @@ ins = {checkAutLevel:
mjblist_sql += " AND xcp.ins_scenario_key = 1" // 6) Geen scenario.
+ " AND xcp.ctr_ismjob = 1" // 7) ismjob.
+ (freeze || unfreeze || finish
? " AND result.\"" + mjb_freeze_year + "\" IS NOT NULL" // 8) isFreezeYear, bedrag in mjb_freeze_year is niet NULL.
? " AND result.\"" + mjb_freeze_or_sys_year + "\" IS NOT NULL" // 8) isFreezeYear, bedrag in mjb_freeze_year is niet NULL.
: "");
sql = discxalg3d(mjblist_sql, // 9) 3D-readuse rechten.
@@ -5996,11 +6012,11 @@ ins = {checkAutLevel:
{
var sql = "SELECT *"
+ " FROM (" + sql + ") result"
+ " WHERE result.\"" + mjb_freeze_year + "\" IS NOT NULL"; // Er moeten bedragen in het jaar zijn vermeld.
+ " WHERE result.\"" + mjb_freeze_or_sys_year + "\" IS NOT NULL"; // Er moeten bedragen in het jaar zijn vermeld.
for (var j = 0; j < jaren.length; j++)
{
if (jaren[j] < mjb_freeze_year)
if (jaren[j] < mjb_freeze_or_sys_year)
sql += " OR result.\"" + jaren[j] + "\" IS NOT NULL"; // Of er is een bedrag in de jaren/het jaar voor het freeze jaar.
}
}