X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=acqui%2Fspent.pl;h=2d555f9a765a6815924f18d50dbaf39ff92f573e;hb=659a4aab574e77e65d8e0eb604763f832a5c0574;hp=f73537bad5c7c6671535da11a4966bb212f9b552;hpb=100e6a9808ead4ee8d951da59ead1550e75bb4c3;p=koha.git diff --git a/acqui/spent.pl b/acqui/spent.pl index f73537bad5..2d555f9a76 100755 --- a/acqui/spent.pl +++ b/acqui/spent.pl @@ -2,79 +2,133 @@ # script to show a breakdown of committed and spent budgets -# needs to be templated at some point +# Copyright 2002-2009 Katipo Communications Limited +# Copyright 2010,2011 Catalyst IT Limited +# 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 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. + +=head1 NAME + + spent.pl + +=head1 DESCRIPTION + +this script is designed to show the spent amount in budgets + +=cut use C4::Context; use C4::Auth; use C4::Output; use strict; +use warnings; use CGI; my $dbh = C4::Context->dbh; my $input = new CGI; -my $bookfund = $input->param('bookfund'); -my $start = $input->param('start'); -my $end = $input->param('end'); +my $bookfund = $input->param('fund'); +my $fund_code = $input->param('fund_code'); my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { - template_name => "acqui/spent.tmpl", + template_name => "acqui/spent.tt", query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { acquisition => 1 }, + flagsrequired => { acquisition => '*' }, debug => 1, } ); -my $query = -"Select quantity,datereceived,freight,unitprice,listprice,ecost,quantityreceived - as qrev,subscription,title,itemtype,aqorders.biblionumber,aqorders.booksellerinvoicenumber, - quantity-quantityreceived as tleft, - aqorders.ordernumber - as ordnum,entrydate,budgetdate,booksellerid,aqbasket.basketno - from aqorders,aqorderbreakdown,aqbasket - left join biblioitems on biblioitems.biblioitemnumber=aqorders.biblioitemnumber - where bookfundid=? and - aqorders.ordernumber=aqorderbreakdown.ordernumber and - aqorders.basketno=aqbasket.basketno - and ( - (datereceived >= ? and datereceived < ?)) - and (datecancellationprinted is NULL or - datecancellationprinted='0000-00-00') - - - "; +my $query = <prepare($query); -$sth->execute( $bookfund, $start, $end ); - -my $total = 0; +$sth->execute($bookfund); +if ( $sth->err ) { + die "An error occurred fetching records: " . $sth->errstr; +} +my $subtotal = 0; my $toggle; -my @spent_loop; +my @spent; while ( my $data = $sth->fetchrow_hashref ) { - my $recv = $data->{'qrev'}; + my $recv = $data->{'quantityreceived'}; if ( $recv > 0 ) { - my $subtotal = $recv * $data->{'unitprice'}; - $data->{'subtotal'} = $subtotal; - $data->{'unitprice'} += 0; - $total += $subtotal; - if ($toggle) { - $toggle = 0; - } - else { - $toggle = 1; - } - $data->{'toggle'} = $toggle; - push @spent_loop, $data; + my $rowtotal = $recv * $data->{'unitprice'}; + $data->{'rowtotal'} = sprintf( "%.2f", $rowtotal ); + $data->{'unitprice'} = sprintf( "%.2f", $data->{'unitprice'} ); + $subtotal += $rowtotal; + push @spent, $data; } } +my $total = $subtotal; +$query = qq{ + SELECT invoicenumber, shipmentcost + FROM aqinvoices + WHERE shipmentcost_budgetid = ? +}; +$sth = $dbh->prepare($query); +$sth->execute($bookfund); +my @shipmentcosts; +while (my $data = $sth->fetchrow_hashref) { + push @shipmentcosts, { + shipmentcost => sprintf("%.2f", $data->{shipmentcost}), + invoicenumber => $data->{invoicenumber} + }; + $total += $data->{shipmentcost}; +} +$sth->finish; + +$total = sprintf( "%.2f", $total ); + $template->param( - SPENTLOOP => \@spent_loop, - total => $total + fund => $bookfund, + spent => \@spent, + subtotal => $subtotal, + shipmentcosts => \@shipmentcosts, + total => $total, + fund_code => $fund_code ); -$sth->finish; -$dbh->disconnect; output_html_with_http_headers $input, $cookie, $template->output;