X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=admin%2Fcheck_parent_total.pl;h=6da8d286684c3185369aaf3ef9036f5756b985e4;hb=3f6a7933b84ba95550518b0364a9ba90002390b5;hp=d5b784d6a883da25775b6d29457ea2b0fc1a1e6f;hpb=b06a289173d0f2e299b0c8652d59d47dc196062c;p=srvgit diff --git a/admin/check_parent_total.pl b/admin/check_parent_total.pl index d5b784d6a8..6da8d28668 100755 --- a/admin/check_parent_total.pl +++ b/admin/check_parent_total.pl @@ -4,22 +4,21 @@ # # 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 warnings; FIXME - Bug 2505 -use CGI; +use Modern::Perl; +use CGI qw ( -utf8 ); use C4::Context; use C4::Output; use C4::Auth; @@ -44,7 +43,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, @@ -61,29 +60,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 = ? and budget_parent_id IS NULL|; + 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;