X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=acqui%2Facqui-home.pl;h=69482a819e985bac78cabfe4c35905bd3d87582d;hb=6078c1acf699f51c127e853203e35cadae99005d;hp=63e913afb704f6df19e202bb662eddb96e9fffb3;hpb=696a9cb601aa17216c1e36b5978f3f9b105f7639;p=koha.git diff --git a/acqui/acqui-home.pl b/acqui/acqui-home.pl index 63e913afb7..69482a819e 100755 --- a/acqui/acqui-home.pl +++ b/acqui/acqui-home.pl @@ -12,11 +12,9 @@ # 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., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA - - +# 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. =head1 NAME @@ -24,19 +22,7 @@ acqui-home.pl =head1 DESCRIPTION -this script is the main page for acqui/ -It presents the budget's dashboard, another table about differents currency with -their rates and the pending suggestions. - -=head1 CGI PARAMETERS - -=over 4 - -=item $status -C<$status> is the status a suggestion could has. Default value is 'ASKED'. -thus, it can be REJECTED, ACCEPTED, ORDERED, ASKED, AVAIBLE - -=back +this script is the main page for acqui =cut @@ -47,54 +33,33 @@ use Number::Format; use CGI; use C4::Auth; use C4::Output; -use C4::Suggestions; use C4::Acquisition; use C4::Budgets; use C4::Members; use C4::Branch; use C4::Debug; +use C4::Suggestions; -my $query = new CGI; +my $query = CGI->new; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( - { - template_name => "acqui/acqui-home.tmpl", + { template_name => 'acqui/acqui-home.tmpl', query => $query, - type => "intranet", + type => 'intranet', authnotrequired => 0, - flagsrequired => { acquisition => "*" }, + flagsrequired => { acquisition => '*' }, debug => 1, } ); -# budget -my $borrower= GetMember('borrowernumber' => $loggedinuser); -my ( $flags, $homebranch )= ($borrower->{'flags'},$borrower->{'branchcode'}); - -my @results = GetBudgets($homebranch); -my $count = scalar @results; -my $branchname = GetBranchName($homebranch); +my $user = GetMember( 'borrowernumber' => $loggedinuser ); +my $branchname = GetBranchName($user->{branchcode}); -#my $count = scalar @results; -my $classlist = ''; -my $total = 0; -my $totspent = 0; -my $totordered = 0; -my $totcomtd = 0; -my $totavail = 0; -my @loop_budget = (); -# --------------------------------------------------- -# currencies -my $cur; -my @rates = GetCurrencies(); -$count = scalar @rates; - -my $active_currency = GetCurrency; -my $num; +my $num_formatter; my $cur_format = C4::Context->preference("CurrencyFormat"); if ( $cur_format eq 'FR' ) { - $num = new Number::Format( + $num_formatter = Number::Format->new( 'decimal_fill' => '2', 'decimal_point' => ',', 'int_curr_symbol' => '', @@ -102,92 +67,91 @@ if ( $cur_format eq 'FR' ) { 'thousands_sep' => ' ', 'mon_decimal_point' => ',' ); -} else { # US by default.. - $num = new Number::Format( +} else { # US by default.. + $num_formatter = Number::Format->new( 'int_curr_symbol' => '', 'mon_thousands_sep' => ',', 'mon_decimal_point' => '.' ); } -my @loop_currency = (); -for ( my $i = 0 ; $i < $count ; $i++ ) { - my %line; - $line{currency} = $rates[$i]->{'currency'} ; - $line{currency_symbol} = $rates[$i]->{'symbol'}; - $line{rate} = sprintf ( '%.2f', $rates[$i]->{'rate'} ); - push @loop_currency, \%line; -} - -# suggestions my $status = $query->param('status') || "ASKED"; -my $suggestion = CountSuggestion($status); -my $suggestions_loop = &SearchSuggestion( {STATUS=> $status} ); -# --------------------------------------------------- -# number format -my $period = GetBudgetPeriod; -my $budget_period_id = $period->{budget_period_id}; -my $budget_branchcode = $period->{budget_branchcode}; -my $moo = GetBudgetHierarchy('',$homebranch, $template->{param_map}->{'USER_INFO'}[0]->{'borrowernumber'} ); -@results = @$moo; -my $period_total = 0; -my $toggle = 0; -my @loop; - -foreach my $result (@results) { - # only get top-level budgets for display - # warn $result->{'budget_branchcode'}; - - $period_total += $result->{'budget_amount'}; - - my $a = $result->{'budget_code_indent'}; - $a =~ s/\ /\ \;/g; - $result->{'budget_code_indent'} = $a; - - my $r = GetBranchName( $result->{'budget_owner_id'} ); - $result->{'budget_branchname'} = GetBranchName( $result->{'budget_branchcode'} ); - - my $member = GetMember( $result->{'budget_owner_id'} ); - my $member_full = $member->{'firstname'} . ' ' . $member->{'surname'} if $member; - - $result->{'budget_owner'} = $member_full; - $result->{'budget_ordered'} = GetBudgetOrdered( $result->{'budget_id'} ); - $result->{'budget_spent'} = GetBudgetSpent( $result->{'budget_id'} ); - $result->{'budget_avail'} = $result->{'budget_amount'} - $result->{'budget_spent'} - $result->{'budget_ordered'}; - - $total += $result->{'budget_amount'}; - $totspent += $result->{'budget_spent'}; - $totordered += $result->{'budget_ordered'}; - $totavail += $result->{'budget_avail'}; - - $result->{'budget_amount'} = $num->format_price( $result->{'budget_amount'} ); - $result->{'budget_spent'} = $num->format_price( $result->{'budget_spent'} ); - $result->{'budget_ordered'} = $num->format_price( $result->{'budget_ordered'} ); - $result->{'budget_avail'} = $num->format_price( $result->{'budget_avail'} ); - - # my $spent_percent = ( $result->{'budget_spent'} / $result->{'budget_amount'} ) * 100; - # $result->{'budget_spent_percent'} = sprintf( "%00d", $spent_percent ); - - my $borrower = &GetMember( $result->{budget_owner_id} ); - $result->{budget_owner_name} = $borrower->{'firstname'} . ' ' . $borrower->{'surname'} if $borrower; - - push( @loop_budget, { %{$result}, toggle => $toggle++ % 2, } ); +my $suggestions_count = CountSuggestion($status); + +my $budget_arr = + GetBudgetHierarchy( '', $user->{branchcode}, + $template->{VARS}->{'USER_INFO'}[0]->{'borrowernumber'} ); + +my $total = 0; +my $totspent = 0; +my $totordered = 0; +my $totcomtd = 0; +my $totavail = 0; + +my $total_active = 0; +my $totspent_active = 0; +my $totordered_active = 0; +my $totavail_active = 0; + +foreach my $budget ( @{$budget_arr} ) { + + $budget->{budget_code_indent} =~ s/\ /\ \;/g; + + $budget->{'budget_branchname'} = + GetBranchName( $budget->{'budget_branchcode'} ); + + my $member = GetMember( borrowernumber => $budget->{budget_owner_id} ); + if ($member) { + $budget->{budget_owner} = + $member->{'firstname'} . ' ' . $member->{'surname'}; + } + + if ( !defined $budget->{budget_amount} ) { + $budget->{budget_amount} = 0; + } + + $budget->{'budget_ordered'} = GetBudgetOrdered( $budget->{'budget_id'} ); + $budget->{'budget_spent'} = GetBudgetSpent( $budget->{'budget_id'} ); + if ( !defined $budget->{budget_spent} ) { + $budget->{budget_spent} = 0; + } + if ( !defined $budget->{budget_ordered} ) { + $budget->{budget_ordered} = 0; + } + $budget->{'budget_avail'} = + $budget->{'budget_amount'} - ( $budget->{'budget_spent'} + $budget->{'budget_ordered'} ); + + $total += $budget->{'budget_amount'}; + $totspent += $budget->{'budget_spent'}; + $totordered += $budget->{'budget_ordered'}; + $totavail += $budget->{'budget_avail'}; + + if ($budget->{budget_period_active}){ + $total_active += $budget->{'budget_amount'}; + $totspent_active += $budget->{'budget_spent'}; + $totordered_active += $budget->{'budget_ordered'}; + $totavail_active += $budget->{'budget_avail'}; + } + + for my $field (qw( budget_amount budget_spent budget_ordered budget_avail ) ) { + $budget->{$field} = $num_formatter->format_price( $budget->{$field} ); + } } $template->param( - classlist => $classlist, type => 'intranet', - loop_budget => \@loop_budget, - loop_currency => \@loop_currency, - active_symbol => $active_currency->{'symbol'}, + loop_budget => $budget_arr, branchname => $branchname, - budget => $period->{budget_name}, - total => $num->format_price( $total ), - totspent => $num->format_price( $totspent ), - totordered => $num->format_price( $totordered ), - totcomtd => $num->format_price( $totcomtd ), - totavail => $num->format_price( $totavail ), - suggestion => $suggestion, + total => $num_formatter->format_price($total), + totspent => $num_formatter->format_price($totspent), + totordered => $num_formatter->format_price($totordered), + totcomtd => $num_formatter->format_price($totcomtd), + totavail => $num_formatter->format_price($totavail), + total_active => $num_formatter->format_price($total_active), + totspent_active => $num_formatter->format_price($totspent_active), + totordered_active => $num_formatter->format_price($totordered_active), + totavail_active => $num_formatter->format_price($totavail_active), + suggestions_count => $suggestions_count, ); output_html_with_http_headers $query, $cookie, $template->output;