X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=admin%2Fcheck_parent_total.pl;h=10f10366390920b77f4512becd3e067899519583;hb=86395f2282f526ff51965e6a129c24b811dbbabd;hp=ce26f5ef498fe9889721bef30e29302c6229d0a8;hpb=2c6765610856bd298cec045077a55296ae10abda;p=koha.git diff --git a/admin/check_parent_total.pl b/admin/check_parent_total.pl index ce26f5ef49..10f1036639 100755 --- a/admin/check_parent_total.pl +++ b/admin/check_parent_total.pl @@ -4,27 +4,28 @@ # # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . use strict; -use CGI; +#use warnings; FIXME - Bug 2505 +use CGI qw ( -utf8 ); use C4::Context; use C4::Output; use C4::Auth; use C4::Budgets; -=head1 +=head1 DESCRIPTION This script checks the amount unallocated from the new parent budget , or the period - if no parent_id is given @@ -43,7 +44,7 @@ my $period_id = $input->param('period_id'); my $returncode; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( - { template_name => "acqui/ajax.tmpl", + { template_name => "acqui/ajax.tt", query => $input, type => "intranet", authnotrequired => 0, @@ -60,29 +61,42 @@ my ($sub_unalloc , $period_sum, $budget_period_unalloc); if ($parent) { my $query = " SELECT SUM(budget_amount) as sum FROM aqbudgets where budget_parent_id = ? "; + my @sql_params; my $sth = $dbh->prepare($query); $sth->execute( $parent->{'budget_id'} ); my $sum = $sth->fetchrow_hashref; $sth->finish; - $sub_unalloc = $parent->{'budget_amount'} - $sum->{sum}; - -# TRICKY.. , IF THE PARENT IS THE CURRENT PARENT - THEN SUBSTRACT CURRENT BUDGET FROM TOTAL +# TRICKY.. , IF THE PARENT IS THE CURRENT PARENT - THEN SUBTRACT CURRENT BUDGET FROM TOTAL $sub_unalloc += $budget->{'budget_amount'} if ( $budget->{'budget_parent_id'} == $parent_id ) ; } # ELSE , IF NO PARENT PASSED, THEN CHECK UNALLOCATED FOR PERIOD, IF NOT THEN RETURN 2 else { my $query = qq| SELECT SUM(budget_amount) as sum - FROM aqbudgets WHERE budget_period_id = ?|; + FROM aqbudgets WHERE budget_period_id = ? and budget_parent_id IS NULL |; + my @sql_params; + push @sql_params, $period_id; + if ($budget_id){ + $query.=qq| and budget_id <> ? |; + push @sql_params,$budget_id; + } - my $sth = $dbh->prepare($query); - $sth->execute( $period_id ); + my $sth = $dbh->prepare($query); + $sth->execute(@sql_params); $period_sum = $sth->fetchrow_hashref; $sth->finish; $budget_period_unalloc = $period->{'budget_period_total'} - $period_sum->{'sum'} if $period->{'budget_period_total'}; } +# FIXME - we really need a better way to do this consistently +# and across the board, be it bigints, Math::FixedPoint, a +# modernized version of Math::Curency that isn't tied to the system +# locale, or something else. +$total = sprintf( "%.2f", $total ); +$sub_unalloc = sprintf( "%.2f", $sub_unalloc ); +$budget_period_unalloc = sprintf( "%.2f", $budget_period_unalloc ); + if ( $parent_id) { if ( ($total > $sub_unalloc ) && $sub_unalloc ) { $returncode = 1; @@ -94,7 +108,6 @@ if ( $parent_id) { $returncode = 0; } -$template->param( return => $returncode ); -output_html_with_http_headers $input, $cookie, $template->output; +output_html_with_http_headers $input, $cookie, $returncode; 1;