From c2033519fe4df28f2bc57b631bb01f841babaa91 Mon Sep 17 00:00:00 2001 From: Maxime Pelletier Date: Tue, 25 Oct 2011 15:23:29 -0400 Subject: [PATCH] Patch for bug 6832 to fix the ajax validation of exceed budget in new orders, reworked for 3.6. --- koha-tmpl/intranet-tmpl/prog/en/js/acq.js | 36 +++++++------------ .../prog/en/modules/acqui/neworderempty.tt | 24 ++++++++----- 2 files changed, 27 insertions(+), 33 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/acq.js b/koha-tmpl/intranet-tmpl/prog/en/js/acq.js index e6d2315..2358532 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/js/acq.js +++ b/koha-tmpl/intranet-tmpl/prog/en/js/acq.js @@ -780,30 +780,20 @@ for (i=1;i<=2;i++) { //USED BY NEWORDEREMPTY.PL function totalExceedsBudget(budgetId, total) { - - var xmlhttp = null; - xmlhttp = new XMLHttpRequest(); - if ( typeof xmlhttp.overrideMimeType != 'undefined') { - xmlhttp.overrideMimeType('text/xml'); - } - - var url = '../acqui/check_budget_total.pl?budget_id=' + budgetId + "&total=" + total; - xmlhttp.open('GET', url, false); - xmlhttp.send(null); - - xmlhttp.onreadystatechange = function() { - if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { - - actTotal = eval ( xmlhttp.responseText ); - - if ( Math.abs(actTotal) < Math.abs(total) ) { - // if budget is to low :( - return true ; - } else { - return false; - } + budgetTotal = 0; + $.ajax({ + url: "/cgi-bin/koha/acqui/check_budget_total.pl", + async:false, + method: "post", + data: {budget_id : budgetId, total : total}, + success: function(actTotal) { + actTotal = Math.abs(actTotal); + exceeds = (actTotal < Math.abs(total)) + if (exceeds) + budgetTotal = actTotal; } - } + }); + return budgetTotal; } diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt index 39e9ca2..7ddcf33 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt @@ -39,12 +39,6 @@ function Check(ff) { _alertString += "\n- " + _("Total must be a number"); } - if (totalExceedsBudget(ff.budget_id.value, ff.total.value ) ) { - ok=1; - _alertString += "\n- " + _("Order total (") + ff.total.value + - _(") exceeds budget available (") + actTotal+")"; - } - if ( ff.field_value ) { var empty_item_mandatory = 0; for (i = 0; i < ff.field_value.length; i++) { @@ -60,13 +54,23 @@ function Check(ff) { } } -if (ok) { + if (ok) { alert(_alertString); - return false; + return false; + } + else { + if (actTotal = totalExceedsBudget(ff.budget_id.value, ff.total.value ) ) { + stringWarning = _("Order total (") + ff.total.value + + _(") exceeds budget available (") + actTotal+")\n"; + stringWarning += _("Are you sure you want do save this order?"); + var r=confirm(stringWarning); + if (! r){ + return false; + } + } } -ff.submit(); - + ff.submit(); } $(document).ready(function() -- 1.7.2.3