diff --git a/APPL/API2/model_bes_disc_params.inc b/APPL/API2/model_bes_disc_params.inc index fb883237d9..54443f5e0a 100644 --- a/APPL/API2/model_bes_disc_params.inc +++ b/APPL/API2/model_bes_disc_params.inc @@ -292,6 +292,11 @@ model_bes_disc_params = "typ": "number", "LOV": L("bes_discipline_ins_modeLOV"), "emptyoption": null + }, + "feconfirm": { + "dbs": "bes_disc_params_fe_confirm", + "label": L("bes_discipline_fe_confirm"), + "typ": "check0" } } } diff --git a/APPL/BES/bes.inc b/APPL/BES/bes.inc index 9a99a34de9..33b6d29bf1 100644 --- a/APPL/BES/bes.inc +++ b/APPL/BES/bes.inc @@ -144,9 +144,15 @@ + " , s.ins_srtdeel_key" + " , BITAND(sd.ins_srtdeel_binding, 8) afd_binding" + " , BITAND(sd.ins_srtdeel_binding, 16) prs_binding" + + " , CASE" + + " WHEN bes.bes_bestelling_retourvan_key IS NOT NULL" + + " THEN 1" + + " ELSE 0" + + " END isRetour" + " FROM bes_bestelopdr b" + " , bes_bestelopdr_item boi" + " , bes_bestelling_item bi" + + " , bes_bestelling bes" + " , bes_srtdeel s" + " , bes_srtgroep g" + " , bes_v_aanwezigdiscipline d" @@ -155,6 +161,7 @@ + " WHERE b.bes_bestelopdr_key = boi.bes_bestelopdr_key" + " AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key" + " AND bi.bes_srtdeel_key = s.bes_srtdeel_key" + + " AND bi.bes_bestelling_key = bes.bes_bestelling_key" + " AND s.bes_srtgroep_key = g.bes_srtgroep_key" + " AND g.ins_discipline_key = d.ins_discipline_key" + " AND d.ins_discipline_key = bdp.bes_ins_discipline_key" @@ -173,8 +180,9 @@ var ins_srtdeel_key = oRsb("ins_srtdeel_key").Value || -1; var afd_binding = oRsb("afd_binding").Value == 8; var prs_binding = oRsb("prs_binding").Value == 16; + var isRetour = oRsb("isRetour").Value == 1; - if (ins_mode > 0 && ins_srtdeel_key < 0) + if (!isRetour && ins_mode > 0 && ins_srtdeel_key < 0) abort_with_warning(L("lcl_bes_notlinkedto_obj_type")); // De scope is vooralsnog alleen de functionaliteit waarbij de objecten al bestaan in FACILITOR (ins_deel records) (DJIN#41674). @@ -1132,6 +1140,11 @@ + " , ma.alg_locatie_key" + " , bes_disc_params_fe_confirm" + " , b.prs_perslid_key bes_prs_key" + + " , CASE" + + " WHEN b.bes_bestelling_retourvan_key IS NOT NULL" + + " THEN 1" + + " ELSE 0" + + " END isRetour" + " FROM bes_bestelopdr bo" + " , bes_bestelopdr_item boi" + " , bes_bestelling_item bi" @@ -1156,6 +1169,7 @@ var bestelopdr_status = oRs("bes_bestelopdr_status").Value; var disc_params_fe_confirm = oRs("bes_disc_params_fe_confirm").Value; var bes_prs_key = oRs("bes_prs_key").Value; // De aanmaker van de bestelling. + var isRetour = oRs("isRetour").Value == 1; oRs.Close(); var bresult = user.func_enabled2("BES", @@ -1183,7 +1197,7 @@ var eigenBestelling = bes_prs_key == user_key || user.isCollega(bes_prs_key); var fe_confirm = disc_params_fe_confirm == 1; - var canConfirm = fe_confirm && eigenBestelling; + var canConfirm = !isRetour && fe_confirm && eigenBestelling; switch (bestelopdr_status) // Opdracht status { diff --git a/APPL/BES/bes_show_opdr.asp b/APPL/BES/bes_show_opdr.asp index a1b57348d6..4610387ff3 100644 --- a/APPL/BES/bes_show_opdr.asp +++ b/APPL/BES/bes_show_opdr.asp @@ -64,10 +64,9 @@ user.auth_required_or_abort(this_bestelopdr.canReadAny || this_bestelling.isVera FcltMgr.confirm(L("lcl_bes_confirm_accept").format("<%=S("bes_bestelopdr_prefix") + bes_bestelopdr.bestelopdr_id%>"), function() { - var data = { - urole: "<%=urole%>", - opdr_key: <%=opdr_key%> - }; + var data = { urole: "<%=urole%>", + opdr_key: <%=opdr_key%> + }; <% protectRequest.dataToken("data"); %> $.post("opdr_accept.asp", data, @@ -89,6 +88,22 @@ user.auth_required_or_abort(this_bestelopdr.canReadAny || this_bestelling.isVera FcltMgr.openModalDetail(url, L("lcl_bes_delivery"), {xwidth: 800, callback: FcltMgr.reload}); } + function bes_opdr_confirm() + { + FcltMgr.confirm(L("lcl_bes_confirm").format("<%=S("bes_bestelling_prefix") + bes_bestelling.bes_key%>"), + function() + { + var data = { urole: "<%=urole%>", + opdr_key: <%=opdr_key%> + }; + <% protectRequest.dataToken("data"); %> + $.post("bes_opdr_confirm.asp", + data, + FcltCallbackRefresh, + "json"); + }); + } + function bes_opdr_mail() { <% @@ -153,6 +168,8 @@ user.auth_required_or_abort(this_bestelopdr.canReadAny || this_bestelling.isVera buttons.push({ icon: "print.png", title: L("lcl_print"), action: 'bes_opdr_print()' }); buttons.push({ icon: "email.png", title: L("lcl_noti_bes_opdr_email"), action: 'bes_opdr_mail()' }); + if (this_bestelopdr.canConfirm) + buttons.push({ icon: "accept.png", title: L("lcl_confirm"), action: "bes_opdr_confirm()" }); IFRAMER_HEADER(L("lcl_bes_opdrframe_algemeen"), buttons) %>
diff --git a/APPL/BES/opdr_delivery.asp b/APPL/BES/opdr_delivery.asp index bacdd84a39..079ff8a1e3 100644 --- a/APPL/BES/opdr_delivery.asp +++ b/APPL/BES/opdr_delivery.asp @@ -176,6 +176,11 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver); + " , s.bes_srtdeel_nr" + " , b.bes_bestelopdr_delivery_opmerk" + " , bdp.bes_disc_params_ins_mode" + + " , CASE" + + " WHEN bes.bes_bestelling_retourvan_key IS NOT NULL" + + " THEN 1" + + " ELSE 0" + + " END isRetour" + " , s.ins_srtdeel_key" + " FROM ins_tab_discipline d" + " , bes_disc_params bdp" @@ -235,8 +240,9 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver); var ins_mode = oRs("bes_disc_params_ins_mode").Value; // Discipline is voor elke regel hetzelfde. Dus de mode ook. var instock; + var isRetour = oRs("isRetour").Value == 1; var ins_srtdeel_key = oRs("ins_srtdeel_key").Value || -1; - if (ins_mode > 0 && ins_srtdeel_key > 0) + if (!isRetour && ins_mode > 0 && ins_srtdeel_key > 0) { var sql_instock = bes.getPresentObjectsSql(ins_srtdeel_key, bi_key, true); var oRsI = Oracle.Execute(sql_instock); @@ -250,7 +256,7 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver); <%=safe.html(fitemstr)%> -<% if (ins_mode > 0 && ins_srtdeel_key > 0) +<% if (!isRetour && ins_mode > 0 && ins_srtdeel_key > 0) { %> <% } %> @@ -277,7 +283,7 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver); value=""> -<% if (ins_mode > 0 && ins_srtdeel_key > 0) +<% if (!isRetour && ins_mode > 0 && ins_srtdeel_key > 0) { %> <% } %> @@ -297,6 +303,7 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver); <% BLOCK_END(); diff --git a/APPL/BES/opdr_delivery.js b/APPL/BES/opdr_delivery.js index 74fa717e58..568b93be37 100644 --- a/APPL/BES/opdr_delivery.js +++ b/APPL/BES/opdr_delivery.js @@ -27,7 +27,7 @@ function checkInput(evt) if (val == "") val = 0; valid = !((remaining > 0 && val > remaining) || (remaining < 0 && val < remaining)); error = L("lcl_bes_exceed_value"); - if (valid && ins_mode > 0 && ins_srtdeel_key > 0) + if (!isRetour && valid && ins_mode > 0 && ins_srtdeel_key > 0) { var instock = parseInt($("#instock" + i).val(), 10); var delivered = parseInt($("#cnt" + i).val(), 10) || 0; @@ -44,7 +44,7 @@ function checkInput(evt) error = L("lcl_bes_insuf_instock").format(instock + " " + itemeenh); } } - else //if (valid && ins_mode > 0 && ins_srtdeel_key < 0) + else if (!isRetour && valid && ins_mode > 0 && ins_srtdeel_key < 0) { // Zou niet voor moeten komen. valid = false; error = L("lcl_bes_notlinkedto_obj_type");