X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=acqui%2Fspent.pl;h=80d93617e2ee5bd45f9ec7b3491c8524b430f96c;hb=3101a132a46369a23082ff8baaa8f6a718159f11;hp=f73537bad5c7c6671535da11a4966bb212f9b552;hpb=100e6a9808ead4ee8d951da59ead1550e75bb4c3;p=koha.git diff --git a/acqui/spent.pl b/acqui/spent.pl index f73537bad5..80d93617e2 100755 --- a/acqui/spent.pl +++ b/acqui/spent.pl @@ -2,79 +2,154 @@ # 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 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. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + +=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 CGI; +use Modern::Perl; +use CGI qw ( -utf8 ); +use C4::Acquisition; +use Koha::Acquisition::Invoice::Adjustments; 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 $sth = $dbh->prepare($query); -$sth->execute( $bookfund, $start, $end ); +my $query = <prepare($query); +$sth->execute($bookfund); +if ( $sth->err ) { + die "An error occurred fetching records: " . $sth->errstr; +} +my $subtotal = 0; +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 * get_rounded_price($data->{'unitprice_tax_included'}); + $data->{'rowtotal'} = sprintf( "%.2f", $rowtotal ); + $data->{'unitprice_tax_included'} = sprintf( "%.2f", $data->{'unitprice_tax_included'} ); + $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; + +my $adjustments = Koha::Acquisition::Invoice::Adjustments->search({budget_id => $bookfund, closedate => { '!=' => undef } }, { join => 'invoiceid' } ); +while ( my $adj = $adjustments->next ){ + $total += $adj->adjustment; +} + +$total = sprintf( "%.2f", $total ); + $template->param( - SPENTLOOP => \@spent_loop, - total => $total + fund => $bookfund, + spent => \@spent, + subtotal => $subtotal, + shipmentcosts => \@shipmentcosts, + adjustments => $adjustments, + total => $total, + fund_code => $fund_code ); -$sth->finish; -$dbh->disconnect; output_html_with_http_headers $input, $cookie, $template->output;