[Koha-patches] [PATCH][SIGNED-OFF Bug 5946 : (MT1177) aqplan.pl, fix the problem of calculating the total remaining.

paul.poulain at biblibre.com paul.poulain at biblibre.com
Tue Apr 5 11:24:00 CEST 2011


From: Alex Arnaud <alex.arnaud at biblibre.com>

Bug 5946 followup : (MT1236) aqplan.pl - Fixe the problem of unrounded sums

Signed-off-by: Paul Poulain <paul.poulain at biblibre.com>
---
 koha-tmpl/intranet-tmpl/prog/en/js/acq.js          |   21 +++++++++++++------
 .../prog/en/modules/admin/aqplan.tmpl              |    2 +-
 2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/acq.js b/koha-tmpl/intranet-tmpl/prog/en/js/acq.js
index b5ec994..1b924a2 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/js/acq.js
+++ b/koha-tmpl/intranet-tmpl/prog/en/js/acq.js
@@ -557,12 +557,14 @@ function getElementsByClass( searchClass, domNode, tagName) {
 
 function calcTotalRow(cell) {
 
-    var bud_id =  cell.className;
+    var string = cell.name;
+    var pos = string.indexOf(",", 0);
+    var bud_id = string.substring(0, pos);
     var val1 =    cell.value;
-    var remainingTotal =   document.getElementById("budget_est_"+bud_id).textContent;
+    var remainingTotal =   document.getElementById("budget_est_"+bud_id);
     var remainingNew =0;
     var budgetTotal  =  document.getElementById("budget_tot_"+bud_id ).textContent;
-    var arr =  getElementsByClass(bud_id);
+    var arr =  getElementsByClass(cell.className);
 
     budgetTotal   =  budgetTotal.replace(/\,/, "");
 
@@ -594,7 +596,7 @@ function calcTotalRow(cell) {
 
 function autoFillRow(bud_id) {
 
-    var remainingTotal =   document.getElementById("budget_est_"+bud_id).textContent;
+    var remainingTotal =   document.getElementById("budget_est_"+bud_id);
     var remainingNew = new Number;
     var budgetTotal  =  document.getElementById("budget_tot_"+bud_id ).textContent;
     var arr =  getElementsByClass("plan_entry_" + bud_id);
@@ -602,20 +604,25 @@ function autoFillRow(bud_id) {
     budgetTotal   =  budgetTotal.replace(/\,/, "");
     var qty = new Number;
 // get the totals
+    var novalueArr = new Array();
     for ( var i=0, len=arr.length; i<len; ++i ) {
         remainingNew   +=   Math.abs (arr[i].value );
 
         if ( arr[i].value == 0 ) {
+	    novalueArr[qty] = arr[i];
             qty += 1;
         }
     }
 
     remainingNew    =    Math.abs( budgetTotal) -  remainingNew   ;
     var newCell = new Number (remainingNew / qty);
+    var rest = new Number (remainingNew - (newCell.toFixed(2) * (novalueArr.length - 1)));
 
-    for ( var i=0, len=arr.length; i<len; ++i ) {
-        if (  Math.abs(arr[i].value) == 0 ) {
-            arr[i].value = newCell.toFixed(2) ;
+    for (var i = 0; i<novalueArr.length; ++i) {
+         if (i == novalueArr.length - 1) {
+             novalueArr[i].value = rest.toFixed(2);
+         }else {
+             novalueArr[i].value = newCell.toFixed(2);
         }
     }
 
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqplan.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqplan.tmpl
index 0472c5e..61048ce 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqplan.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqplan.tmpl
@@ -88,7 +88,7 @@ YAHOO.util.Event.onAvailable("popmenu", function () {
 
 <form method="post" id="Aform" name="Aform"  action="/cgi-bin/koha/admin/aqplan.pl">
 <h3>Planning for <!-- TMPL_VAR NAME="budget_period_description" --> by <!-- TMPL_VAR NAME="authcat" --></h3>
-
+<input type="hidden" name="authcat" value="<!-- TMPL_VAR NAME="authcat" -->" />
 <!-- Budget Lines -->
 
     <!-- TMPL_IF NAME="budget_lines" -->
-- 
1.7.1



More information about the Koha-patches mailing list