Bug 5946 : (MT1177) aqplan.pl, fix the problem of calculating the total remaining.

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

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This commit is contained in:
Alex Arnaud 2010-05-14 17:07:55 +02:00 committed by Chris Cormack
parent 9bb36148fd
commit 0f6270d310
2 changed files with 15 additions and 8 deletions

View file

@ -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);
}
}

View file

@ -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" -->