FSN#26171: Verplicht bij afmelden lijkt fout geimplementeerd bij Opdrachten.
svn path=/Website/trunk/; revision=24908
This commit is contained in:
@@ -366,7 +366,7 @@ model_issues =
|
||||
var futureOpdr = false;
|
||||
|
||||
// Zijn er nog kenmerken die nu wel verplicht zijn?
|
||||
var kvsAfwezig = mld.hasRequiredStatusEmpty(mld_key, 5);
|
||||
var kvsAfwezig = mld.hasRequiredStatusEmptyMelding(mld_key, 5); // Melding status "Afgemeld(5)"
|
||||
if (kvsAfwezig.length)
|
||||
{
|
||||
var mldnr = mld.mld_prefix(mld_key) + mld_key;
|
||||
|
||||
124
APPL/MLD/mld.inc
124
APPL/MLD/mld.inc
@@ -3464,41 +3464,37 @@ mld = {setmeldingstatus:
|
||||
return "";
|
||||
},
|
||||
|
||||
hasRequiredStatusEmpty: function(mld_key, status)
|
||||
hasRequiredStatusEmptyMelding: function(mld_key, status)
|
||||
{
|
||||
var sql = "SELECT *"
|
||||
+ " FROM (SELECT MK.*"
|
||||
+ " , (SELECT KM.mld_kenmerkmelding_waarde"
|
||||
+ " FROM mld_kenmerkmelding KM"
|
||||
+ " WHERE KM.mld_kenmerk_key = MK.mld_kenmerk_key"
|
||||
+ " AND KM.mld_melding_key = MK.mld_melding_key) waarde"
|
||||
+ " FROM (SELECT M.mld_melding_key"
|
||||
+ " , S.mld_stdmelding_key"
|
||||
+ " , D.ins_discipline_key"
|
||||
+ " , K.mld_kenmerk_key"
|
||||
+ " , V.mld_srtkenmerk_key"
|
||||
+ " , V.mld_srtkenmerk_omschrijving"
|
||||
+ " , K.mld_kenmerk_verplicht_status"
|
||||
+ " , K.mld_kenmerk_niveau"
|
||||
+ " FROM mld_kenmerk K"
|
||||
+ " , mld_melding M"
|
||||
+ " , mld_stdmelding S"
|
||||
+ " , mld_discipline D"
|
||||
+ " , mld_srtkenmerk V"
|
||||
+ " WHERE K.mld_srtkenmerk_key = V.mld_srtkenmerk_key"
|
||||
+ " AND S.mld_stdmelding_key = M.mld_stdmelding_key"
|
||||
+ " AND S.mld_ins_discipline_key = D.ins_discipline_key"
|
||||
+ " AND ((K.mld_stdmelding_key = S.mld_stdmelding_key AND K.mld_kenmerk_niveau = 'S')"
|
||||
+ " OR (K.mld_stdmelding_key = S.mld_ins_discipline_key AND K.mld_kenmerk_niveau = 'D')"
|
||||
+ " OR (K.mld_stdmelding_key = D.ins_srtdiscipline_key AND K.mld_kenmerk_niveau = 'T'))"
|
||||
+ " AND V.mld_srtkenmerk_kenmerktype <> 'M'"
|
||||
+ " AND V.mld_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND K.mld_kenmerk_verwijder IS NULL"
|
||||
+ " ) MK"
|
||||
+ " ) MKW"
|
||||
+ " WHERE MKW.mld_melding_key = " + mld_key
|
||||
+ " AND MKW.mld_kenmerk_verplicht_status = " + status
|
||||
+ " AND MKW.waarde IS NULL";
|
||||
+ " FROM (SELECT mk.*"
|
||||
+ " , (SELECT km.mld_kenmerkmelding_waarde"
|
||||
+ " FROM mld_kenmerkmelding km"
|
||||
+ " WHERE km.mld_kenmerk_key = mk.mld_kenmerk_key"
|
||||
+ " AND km.mld_melding_key = mk.mld_melding_key) waarde"
|
||||
+ " FROM (SELECT m.mld_melding_key"
|
||||
+ " , k.mld_kenmerk_key"
|
||||
+ " , v.mld_srtkenmerk_omschrijving"
|
||||
+ " , k.mld_kenmerk_verplicht_status"
|
||||
+ " FROM mld_kenmerk k"
|
||||
+ " , mld_melding m"
|
||||
+ " , mld_stdmelding s"
|
||||
+ " , mld_discipline d"
|
||||
+ " , mld_srtkenmerk v"
|
||||
+ " WHERE k.mld_srtkenmerk_key = v.mld_srtkenmerk_key"
|
||||
+ " AND s.mld_stdmelding_key = m.mld_stdmelding_key"
|
||||
+ " AND s.mld_ins_discipline_key = d.ins_discipline_key"
|
||||
+ " AND ((k.mld_stdmelding_key = s.mld_stdmelding_key AND k.mld_kenmerk_niveau = 'S')"
|
||||
+ " OR (k.mld_stdmelding_key = s.mld_ins_discipline_key AND k.mld_kenmerk_niveau = 'D')"
|
||||
+ " OR (k.mld_stdmelding_key = d.ins_srtdiscipline_key AND k.mld_kenmerk_niveau = 'T'))"
|
||||
+ " AND v.mld_srtkenmerk_kenmerktype <> 'M'"
|
||||
+ " AND v.mld_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND k.mld_kenmerk_verwijder IS NULL"
|
||||
+ " ) mk"
|
||||
+ " ) mkw"
|
||||
+ " WHERE mkw.mld_melding_key = " + mld_key
|
||||
+ " AND mkw.mld_kenmerk_verplicht_status = " + status
|
||||
+ " AND mkw.waarde IS NULL";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var ontbreekt = [];
|
||||
while (!oRs.eof)
|
||||
@@ -3507,7 +3503,47 @@ mld = {setmeldingstatus:
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
// levert array op met kenmerken die ingevuld hadden moeten zijn.
|
||||
// Levert array op met kenmerken die ingevuld hadden moeten zijn.
|
||||
return ontbreekt;
|
||||
},
|
||||
|
||||
hasRequiredStatusEmptyOpdr: function(opdr_key, status)
|
||||
{
|
||||
var sql = "SELECT *"
|
||||
+ " FROM (SELECT ok.*"
|
||||
+ " , (SELECT ko.mld_kenmerkopdr_waarde"
|
||||
+ " FROM mld_kenmerkopdr ko"
|
||||
+ " WHERE ko.mld_kenmerk_key = ok.mld_kenmerk_key"
|
||||
+ " AND ko.mld_opdr_key = ok.mld_opdr_key) waarde"
|
||||
+ " FROM (SELECT o.mld_opdr_key"
|
||||
+ " , k.mld_kenmerk_key"
|
||||
+ " , v.mld_srtkenmerk_omschrijving"
|
||||
+ " , k.mld_kenmerk_verplicht_status"
|
||||
+ " FROM mld_kenmerk k"
|
||||
+ " , mld_srtkenmerk v"
|
||||
+ " , mld_opdr o"
|
||||
+ " , mld_typeopdr t"
|
||||
+ " WHERE k.mld_srtkenmerk_key = v.mld_srtkenmerk_key"
|
||||
+ " AND o.mld_typeopdr_key = t.mld_typeopdr_key"
|
||||
+ " AND k.mld_typeopdr_key = t.mld_typeopdr_key"
|
||||
+ " AND k.mld_kenmerk_niveau = 'O'"
|
||||
+ " AND v.mld_srtkenmerk_kenmerktype <> 'O'"
|
||||
+ " AND v.mld_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND k.mld_kenmerk_verwijder IS NULL"
|
||||
+ " ) ok"
|
||||
+ " ) okw"
|
||||
+ " WHERE okw.mld_opdr_key = " + opdr_key
|
||||
+ " AND okw.mld_kenmerk_verplicht_status = " + status
|
||||
+ " AND okw.waarde IS NULL";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var ontbreekt = [];
|
||||
while (!oRs.eof)
|
||||
{
|
||||
ontbreekt.push(oRs("mld_srtkenmerk_omschrijving").Value);
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
// Levert array op met kenmerken die ingevuld hadden moeten zijn.
|
||||
return ontbreekt;
|
||||
},
|
||||
|
||||
@@ -3672,16 +3708,30 @@ mld = {setmeldingstatus:
|
||||
// De status van de melding zou gewijzigd kunnen/moeten worden hierdoor
|
||||
mld.updatemeldingstatus(mld_opdr.mld_key, 0);
|
||||
},
|
||||
getReqStatusEmpty:
|
||||
function _getReqStatusEmpty(kenmerkEmpty, mld_key, status)
|
||||
|
||||
getReqStatusEmptyMelding:
|
||||
function _getReqStatusEmptyMelding(kenmerkEmpty, mld_key, status)
|
||||
{ // Zijn er nog kenmerken die nu wel verplicht zijn?
|
||||
var kvsAfwezig = mld.hasRequiredStatusEmpty(mld_key, status);
|
||||
var kvsAfwezig = mld.hasRequiredStatusEmptyMelding(mld_key, status);
|
||||
if (kvsAfwezig.length)
|
||||
{
|
||||
var mldnr = mld.mld_prefix(mld_key) + mld_key;
|
||||
kenmerkEmpty.push(L("lcl_mld_req_status_empty").format(kvsAfwezig.join(", "), mldnr) );
|
||||
}
|
||||
return kenmerkEmpty;
|
||||
},
|
||||
|
||||
getReqStatusEmptyOpdr:
|
||||
function _getReqStatusEmptyOpdr(kenmerkEmpty, opdr_key, status)
|
||||
{ // Zijn er nog kenmerken die nu wel verplicht zijn?
|
||||
var kvsAfwezig = mld.hasRequiredStatusEmptyOpdr(opdr_key, status);
|
||||
if (kvsAfwezig.length)
|
||||
{
|
||||
var mld_opdr = mld.mld_opdr_info(opdr_key);
|
||||
var mldnr = mld.mld_prefix(mld_opdr.mld_key) + mld_opdr.mld_key + "/" + mld_opdr.volgnr;
|
||||
kenmerkEmpty.push(L("lcl_mld_opdr_req_status_empty").format(kvsAfwezig.join(", "), mldnr) );
|
||||
}
|
||||
return kenmerkEmpty;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ var result = {};
|
||||
var tobeclosed = 0;
|
||||
var ingesloten = [];
|
||||
var canCloseOpdr = [];
|
||||
var reqStatusEmpty = [];
|
||||
var reqStatusEmptyMelding = [];
|
||||
var futureOpdr = false;
|
||||
// Bepaal de meldingen in de selectie die
|
||||
// ook echt afgemeld kunnen of mogen worden.
|
||||
@@ -46,11 +46,11 @@ for (var i = 0; i < mld_key_arr.length; i++)
|
||||
if (this_mld.canClose) // Als je mag accepteren mag je ook rejecten
|
||||
{
|
||||
// Zijn er nog kenmerken die nu wel verplicht zijn?
|
||||
var kvsAfwezig = mld.hasRequiredStatusEmpty(mld_key_arr[i], 5); // verplicht_status = afmelden
|
||||
var kvsAfwezig = mld.hasRequiredStatusEmptyMelding(mld_key_arr[i], 5); // Melding status "Afgemeld(5)"
|
||||
if (kvsAfwezig.length)
|
||||
{
|
||||
var mldnr = mld.mld_prefix(mld_key_arr[i]) + mld_key_arr[i];
|
||||
reqStatusEmpty.push(L("lcl_mld_req_status_empty").format(kvsAfwezig.join(", "), mldnr) );
|
||||
reqStatusEmptyMelding.push(L("lcl_mld_req_status_empty").format(kvsAfwezig.join(", "), mldnr) );
|
||||
}
|
||||
// Zijn er nog lopende opdrachten?
|
||||
var canCloseOpdrOfMld = [];
|
||||
@@ -102,7 +102,7 @@ for (var i = 0; i < mld_key_arr.length; i++)
|
||||
}
|
||||
}
|
||||
}
|
||||
user.anything_todo_or_abort(!reqStatusEmpty.length, reqStatusEmpty.join("<br />"));
|
||||
user.anything_todo_or_abort(!reqStatusEmptyMelding.length, reqStatusEmptyMelding.join("<br />"));
|
||||
user.auth_required_or_abort(!(mld_key_arr.length == 1 && futureOpdr), L("lcl_mld_einddatum_to_late_mld")); // Bij enkele melding met toekomstige opdrachten een aparte melding geven
|
||||
user.anything_todo_or_abort(tobeclosed > 0); // We klagen niet over enkele wel en enkele niet
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ var result = {};
|
||||
var tobeclosed = 0;
|
||||
var ingesloten = [];
|
||||
var canCloseOpdr = [];
|
||||
var reqStatusEmpty = [];
|
||||
var reqStatusEmptyMelding = [];
|
||||
var futureOpdr = false;
|
||||
// Bepaal de meldingen in de selectie die
|
||||
// ook echt afgemeld kunnen of mogen worden.
|
||||
@@ -43,11 +43,11 @@ for (var i = 0; i < mld_key_arr.length; i++)
|
||||
if (this_mld.canClose) // Als je mag accepteren mag je ook rejecten
|
||||
{
|
||||
// Zijn er nog kenmerken die nu wel verplicht zijn?
|
||||
var kvsAfwezig = mld.hasRequiredStatusEmpty(mld_key_arr[i], 5);
|
||||
var kvsAfwezig = mld.hasRequiredStatusEmptyMelding(mld_key_arr[i], 5); // Melding status "Afgemeld(5)"
|
||||
if (kvsAfwezig.length)
|
||||
{
|
||||
var mldnr = mld.mld_prefix(mld_key_arr[i]) + mld_key_arr[i];
|
||||
reqStatusEmpty.push(L("lcl_mld_req_status_empty").format(kvsAfwezig.join(", "), mldnr) );
|
||||
reqStatusEmptyMelding.push(L("lcl_mld_req_status_empty").format(kvsAfwezig.join(", "), mldnr) );
|
||||
}
|
||||
// Zijn er nog lopende opdrachten?
|
||||
var canCloseOpdrOfMld = [];
|
||||
@@ -92,7 +92,7 @@ for (var i = 0; i < mld_key_arr.length; i++)
|
||||
}
|
||||
}
|
||||
}
|
||||
user.anything_todo_or_abort(!reqStatusEmpty.length, reqStatusEmpty.join("<br />"));
|
||||
user.anything_todo_or_abort(!reqStatusEmptyMelding.length, reqStatusEmptyMelding.join("<br />"));
|
||||
user.auth_required_or_abort(!(mld_key_arr.length == 1 && futureOpdr), L("lcl_mld_einddatum_to_late_mld")); // Bij enkele melding met toekomstige opdrachten een aparte melding geven
|
||||
user.anything_todo_or_abort(tobeclosed > 0); // We klagen niet over enkele wel en enkele niet
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ var opmerk = getFParam("opmerk", "");
|
||||
var result = {};
|
||||
var toberejected = 0;
|
||||
var ingesloten = [];
|
||||
var reqStatusEmpty = [];
|
||||
var reqStatusEmptyMelding = [];
|
||||
// Bepaal de meldingen in de selectie die
|
||||
// ook echt afgewezen kunnen of mogen worden.
|
||||
for (var i = 0; i < mld_key_arr.length; i++)
|
||||
@@ -41,15 +41,15 @@ for (var i = 0; i < mld_key_arr.length; i++)
|
||||
toberejected++;
|
||||
}
|
||||
// Zijn er nog kenmerken die nu wel verplicht zijn?
|
||||
var kvsAfwezig = mld.hasRequiredStatusEmpty(mld_key_arr[i], 1); // verplicht_status = afgewezen
|
||||
var kvsAfwezig = mld.hasRequiredStatusEmptyMelding(mld_key_arr[i], 1); // Melding status "Afgemeld(5)"
|
||||
if (kvsAfwezig.length)
|
||||
{
|
||||
var mldnr = mld.mld_prefix(mld_key_arr[i]) + mld_key_arr[i];
|
||||
reqStatusEmpty.push(L("lcl_mld_req_status_empty").format(kvsAfwezig.join(", "), mldnr) );
|
||||
reqStatusEmptyMelding.push(L("lcl_mld_req_status_empty").format(kvsAfwezig.join(", "), mldnr) );
|
||||
}
|
||||
}
|
||||
// De laatst gebruikte set_dialect uit de for-lus geldt nu voor de onderstaande code.
|
||||
user.anything_todo_or_abort(!reqStatusEmpty.length, reqStatusEmpty.join("<br />"));
|
||||
user.anything_todo_or_abort(!reqStatusEmptyMelding.length, reqStatusEmptyMelding.join("<br />"));
|
||||
user.anything_todo_or_abort(toberejected > 0); // We klagen niet over enkele wel en enkele niet
|
||||
%>
|
||||
|
||||
|
||||
@@ -28,6 +28,10 @@ user.auth_required_or_abort(opdr_key > 0); // Hebben we een opdracht key gekrege
|
||||
// Controleren of ik deze opdracht mag annuleren
|
||||
var this_opdr = mld.func_enabled_opdracht(opdr_key); // wat mag ik zoal op deze opdracht
|
||||
user.auth_required_or_abort(this_opdr.canCancel); // Mag ik deze opdracht annuleren
|
||||
|
||||
var reqStatusEmptyOpdr = [];
|
||||
// Zijn bij deze opdracht alle verplichte kenmerken ingevuld?
|
||||
reqStatusEmptyOpdr = mld.getReqStatusEmptyOpdr(reqStatusEmptyOpdr, opdr_key, 1); // Opdracht status "Afgewezen(1)"
|
||||
%>
|
||||
|
||||
<html>
|
||||
@@ -45,6 +49,13 @@ user.auth_required_or_abort(this_opdr.canCancel); // Mag ik deze opdracht annule
|
||||
if (!validateForm("u2"))
|
||||
return false;
|
||||
|
||||
// Zijn er opdrachtkenmerken die alleen verplicht zijn bij het afmelden en niet zijn ingevuld?
|
||||
if (<%=reqStatusEmptyOpdr.length%> != 0)
|
||||
{
|
||||
alert("<%=safe.jsstring(reqStatusEmptyOpdr.join('\n'))%>");
|
||||
return false;
|
||||
}
|
||||
|
||||
$.post($("form[name=cancelform]")[0].action, $("[name=cancelform]").serialize(), FcltCallbackClose, "json");
|
||||
|
||||
return true; // disable button
|
||||
|
||||
@@ -29,7 +29,12 @@ user.auth_required_or_abort(opdr_key > 0); // Hebben we een opdracht key gekrege
|
||||
|
||||
// Controleren of ik deze opdracht mag annuleren
|
||||
var this_opdr = mld.func_enabled_opdracht(opdr_key); // wat mag ik zoal op deze opdracht
|
||||
user.auth_required_or_abort(this_opdr.canCancel, JSON.stringify({ message: L("lcl_shared_no_auth"), success: false })); // Mag ik deze opdracht annuleren
|
||||
|
||||
var reqStatusEmptyOpdr = [];
|
||||
// Zijn bij deze opdracht alle verplichte kenmerken ingevuld?
|
||||
reqStatusEmptyOpdr = mld.getReqStatusEmptyOpdr(reqStatusEmptyOpdr, opdr_key, 1); // Opdracht status "Afgewezen(1)"
|
||||
|
||||
user.auth_required_or_abort(this_opdr.canCancel && !reqStatusEmptyOpdr.length, JSON.stringify({ message: L("lcl_shared_no_auth"), success: false })); // Mag ik deze opdracht annuleren
|
||||
|
||||
var result = { opdr_key: opdr_key, message: "", success: false};
|
||||
|
||||
|
||||
@@ -29,7 +29,8 @@ FCLTHeader.Requires({plugins: ["jQuery"],
|
||||
css: ["timePicker-table.css"]});
|
||||
|
||||
var opdr_key_arr = getQParamIntArray("opdr_key");
|
||||
var reqStatusEmpty = [];
|
||||
var reqStatusEmptyMelding = [];
|
||||
var reqStatusEmptyOpdr = [];
|
||||
var ingesloten = [];
|
||||
var result = {};
|
||||
var maychangeopm = false;
|
||||
@@ -64,8 +65,11 @@ if (opdr_key_arr.length == 1)
|
||||
if (!maychangeopm && this_opdr.canOpmChange)
|
||||
maychangeopm = true; // Ik mag voor de opdracht de opmerking aanpassen
|
||||
|
||||
// Zijn bij deze opdracht alle verplichte kenmerken ingevuld?
|
||||
reqStatusEmptyOpdr = mld.getReqStatusEmptyOpdr(reqStatusEmptyOpdr, opdr_key_arr[0], 6); // Opdracht status "Technisch Voltooid(6)"
|
||||
|
||||
// Zijn bij de melding van deze opdracht alle verplichte kenmerken ingevuld?
|
||||
reqStatusEmpty = mld.getReqStatusEmpty(reqStatusEmpty, mld_key, 5);
|
||||
reqStatusEmptyMelding = mld.getReqStatusEmptyMelding(reqStatusEmptyMelding, mld_key, 5); // Melding status "Afgemeld(5)"
|
||||
|
||||
// Hoeveel opdrachten staan er open bij deze melding.
|
||||
var sql = "SELECT COUNT(mld_opdr_key) nrOpen"
|
||||
@@ -79,7 +83,7 @@ if (opdr_key_arr.length == 1)
|
||||
if (nrOpen == 1 && typeopdr_sluitmelding == 2)
|
||||
{
|
||||
// Dit is de laatste opdracht bij de melding EN de melding mag na sluiten van de opdracht ook gesloten worden.
|
||||
user.anything_todo_or_abort(!reqStatusEmpty.length, reqStatusEmpty.join("<br />"));
|
||||
user.anything_todo_or_abort(!reqStatusEmptyMelding.length, reqStatusEmptyMelding.join("<br />"));
|
||||
}
|
||||
var this_mld = mld.func_enabled_melding(mld_key); // Wat heb ik zoal aan rechten op deze specifieke melding.
|
||||
}
|
||||
@@ -103,8 +107,14 @@ else
|
||||
var kosten_verplicht_afm = mld_opdr.typeopdr_matchtype != 4 && (mld_opdr.typeopdr_kosten_verplicht & 2 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 2));
|
||||
var opdr_kosten = mld_opdr.t_cost;
|
||||
|
||||
// Zijn bij deze opdracht alle verplichte kenmerken ingevuld?
|
||||
reqStatusEmptyOpdr = mld.getReqStatusEmptyOpdr(reqStatusEmptyOpdr, opdr_key, 6); // Opdracht status "Technisch Voltooid(6)"
|
||||
|
||||
// Als Setting S("mld_ord_afmeld_future") niet is gezet (0): Opdrachten waarvan de einddatum in de toekomst ligt mogen niet worden afgemeld.
|
||||
if ((S("mld_ord_afmeld_future") == 1 || (mld_opdr_einddatum < new Date())) && this_opdr.canClose && !(kosten_verplicht_afm && opdr_kosten == 0))
|
||||
if ((S("mld_ord_afmeld_future") == 1 || (mld_opdr_einddatum < new Date())) &&
|
||||
this_opdr.canClose &&
|
||||
!(kosten_verplicht_afm && opdr_kosten == 0) &&
|
||||
!reqStatusEmptyOpdr.length)
|
||||
{
|
||||
ingesloten.push(opdr_key_arr[i]);
|
||||
|
||||
@@ -129,7 +139,7 @@ lcl.set_dialect(mld_opdr.opdr_type, "MLD_TYPEOPDR_KEY");
|
||||
<script type="text/javascript">
|
||||
function mld_cancel()
|
||||
{
|
||||
FcltMgr.closeDetail(window, { cancel: true } );
|
||||
FcltMgr.closeDetail(window, { cancel: true } );
|
||||
}
|
||||
|
||||
function mld_close(close)
|
||||
@@ -137,12 +147,19 @@ lcl.set_dialect(mld_opdr.opdr_type, "MLD_TYPEOPDR_KEY");
|
||||
if (!validateForm("u2"))
|
||||
return false;
|
||||
|
||||
// Zijn er opdrachtkenmerken die alleen verplicht zijn bij het afmelden en niet zijn ingevuld?
|
||||
if (<%=reqStatusEmptyOpdr.length%> != 0)
|
||||
{
|
||||
alert("<%=safe.jsstring(reqStatusEmptyOpdr.join('\n'))%>");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Alleen vergeten verplichte kenmerken vermelden als die er zijn en aangevinkt is dat de melding evt. afgemeld moet worden.
|
||||
// Voorwaarde "aantal nog openstaande opdrachten = 1" kan niet ivm batchmode.
|
||||
if ($("#mld_close").is(":checked") && (<%=reqStatusEmpty.length%> != 0))
|
||||
if ($("#mld_close").is(":checked") && (<%=reqStatusEmptyMelding.length%> != 0))
|
||||
{
|
||||
alert("<%=safe.jsstring(reqStatusEmpty.join('\n'))%>");
|
||||
return false;
|
||||
alert("<%=safe.jsstring(reqStatusEmptyMelding.join('\n'))%>");
|
||||
return false;
|
||||
}
|
||||
|
||||
$.post($("form[name=closeform]")[0].action, $("[name=closeform]").serialize(), FcltCallbackClose, "json");
|
||||
|
||||
@@ -60,7 +60,8 @@ function writeOpdrOpmToMld()
|
||||
var opdr_key_arr = getQParamIntArray("opdr_key");
|
||||
var result = {};
|
||||
var ingesloten = [];
|
||||
var reqStatusEmpty = [];
|
||||
var reqStatusEmptyMelding = [];
|
||||
var reqStatusEmptyOpdr = [];
|
||||
|
||||
if (opdr_key_arr.length == 1)
|
||||
{
|
||||
@@ -68,7 +69,11 @@ if (opdr_key_arr.length == 1)
|
||||
var mld_opdr = mld.mld_opdr_info(opdr_key_arr[0]);
|
||||
var kosten_verplicht_afm = mld_opdr.typeopdr_matchtype != 4 && (mld_opdr.typeopdr_kosten_verplicht & 2 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 2));
|
||||
var opdr_kosten = mld_opdr.t_cost;
|
||||
user.auth_required_or_abort(!(kosten_verplicht_afm && opdr_kosten == 0) && this_opdr.canClose, L("lcl_mld_opdr_kosten_verpl_afm")); // Dan zijn we vlug klaar.
|
||||
|
||||
// Zijn bij deze opdracht alle verplichte kenmerken ingevuld?
|
||||
reqStatusEmptyOpdr = mld.getReqStatusEmptyOpdr(reqStatusEmptyOpdr, opdr_key_arr[0], 6); // Opdracht status "Technisch Voltooid(6)"
|
||||
|
||||
user.auth_required_or_abort(!(kosten_verplicht_afm && opdr_kosten == 0) && this_opdr.canClose && !reqStatusEmptyOpdr.length, L("lcl_mld_opdr_kosten_verpl_afm")); // Dan zijn we vlug klaar.
|
||||
|
||||
var sql = "SELECT o.mld_melding_key"
|
||||
+ " , o.mld_opdr_einddatum"
|
||||
@@ -101,9 +106,9 @@ if (opdr_key_arr.length == 1)
|
||||
// Alleen te controleren als melding na afsluiten van de opdracht ook gesloten wordt.
|
||||
var this_mld = mld.func_enabled_melding(mld_key); // Wat heb ik zoal aan rechten op deze specifieke melding.
|
||||
if (this_mld.canClose)
|
||||
reqStatusEmpty = mld.getReqStatusEmpty(reqStatusEmpty, mld_key, 5);
|
||||
reqStatusEmptyMelding = mld.getReqStatusEmptyMelding(reqStatusEmptyMelding, mld_key, 5); // Melding status "Afgemeld(5)"
|
||||
}
|
||||
user.anything_todo_or_abort(!reqStatusEmpty.length, reqStatusEmpty.join("<br />"));
|
||||
user.anything_todo_or_abort(!reqStatusEmptyMelding.length, reqStatusEmptyMelding.join("<br />"));
|
||||
// Als Setting S("mld_ord_afmeld_future") niet is gezet: Opdrachten waarvan de einddatum in de toekomst ligt mogen niet worden afgemeld.
|
||||
user.auth_required_or_abort((S("mld_ord_afmeld_future") == 1 || (mld_opdr_einddatum < new Date())) && this_opdr.canClose, L("lcl_mld_einddatum_to_late_opdr"));
|
||||
}
|
||||
@@ -123,8 +128,14 @@ else
|
||||
var kosten_verplicht_afm = mld_opdr.typeopdr_matchtype != 4 && (mld_opdr.typeopdr_kosten_verplicht & 2 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 2));
|
||||
var opdr_kosten = mld_opdr.t_cost;
|
||||
|
||||
// Zijn bij deze opdracht alle verplichte kenmerken ingevuld?
|
||||
reqStatusEmptyOpdr = mld.getReqStatusEmptyOpdr(reqStatusEmptyOpdr, opdr_key, 6); // Opdracht status "Technisch Voltooid(6)"
|
||||
|
||||
// Als Setting S("mld_ord_afmeld_future") niet is gezet (0): Opdrachten waarvan de einddatum in de toekomst ligt mogen niet worden afgemeld.
|
||||
if ((S("mld_ord_afmeld_future") == 1 || (oRs("mld_opdr_einddatum").Value < new Date())) && this_opdr.canClose && !(kosten_verplicht_afm && opdr_kosten == 0))
|
||||
if ((S("mld_ord_afmeld_future") == 1 || (oRs("mld_opdr_einddatum").Value < new Date())) &&
|
||||
this_opdr.canClose &&
|
||||
!(kosten_verplicht_afm && opdr_kosten == 0) &&
|
||||
!reqStatusEmptyOpdr.length)
|
||||
{
|
||||
ingesloten.push(opdr_key_arr[i]);
|
||||
}
|
||||
@@ -199,8 +210,8 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
oRs.Close();
|
||||
if (nn == 0) // Het was de laatste opdracht van de melding die nog niet afgemeld is
|
||||
{
|
||||
reqStatusEmpty = mld.getReqStatusEmpty(reqStatusEmpty, mld_opdr.mld_key, 5);
|
||||
if (reqStatusEmpty.length == 0) // Alle verplichte kenmerkeb zijn ingevuld
|
||||
reqStatusEmptyMelding = mld.getReqStatusEmptyMelding(reqStatusEmptyMelding, mld_opdr.mld_key, 5); // Melding status "Afgemeld(5)"
|
||||
if (reqStatusEmptyMelding.length == 0) // Alle verplichte kenmerkeb zijn ingevuld
|
||||
{
|
||||
// Mag ik dan ook de melding afmelden?
|
||||
var this_mld = mld.func_enabled_melding(mld_opdr.mld_key);
|
||||
|
||||
Reference in New Issue
Block a user