X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FBookfund.pm;h=7c00067501fe56916d717de0bc63223749c43aeb;hb=ac12ba03fbe79009983224ff0d0b73bc7da3fe47;hp=2bb190b583d6392f3b40a229eeaf8534ad884ce7;hpb=8ee881174fbb75e983e9ea09f70b2fcecee396ab;p=koha.git diff --git a/C4/Bookfund.pm b/C4/Bookfund.pm old mode 100755 new mode 100644 index 2bb190b583..7c00067501 --- a/C4/Bookfund.pm +++ b/C4/Bookfund.pm @@ -17,15 +17,14 @@ package C4::Bookfund; # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, # Suite 330, Boston, MA 02111-1307 USA -# $Id$ use strict; - +# use Smart::Comments; use vars qw($VERSION @ISA @EXPORT); # set the version for version checking -$VERSION = do { my @v = '$Revision$' =~ /\d+/g; shift(@v) . "." . join( "_", map { sprintf "%03d", $_ } @v ); }; +$VERSION = 3.00; =head1 NAME @@ -139,9 +138,9 @@ sub GetBookFunds { if ( $branch ne '' ) { $strsth = " SELECT * - FROM aqbookfund,aqbudget - WHERE aqbookfund.bookfundid=aqbudget.bookfundid - AND startdatenow() AND (aqbookfund.branchcode='' OR aqbookfund.branchcode= ? ) GROUP BY aqbookfund.bookfundid ORDER BY bookfundname"; @@ -149,10 +148,9 @@ sub GetBookFunds { else { $strsth = " SELECT * - FROM aqbookfund, - aqbudget - WHERE aqbookfund.bookfundid=aqbudget.bookfundid - AND startdatenow() GROUP BY aqbookfund.bookfundid ORDER BY bookfundname "; @@ -228,21 +226,21 @@ sub GetBookFundBreakdown { quantityreceived,subscription FROM aqorders LEFT JOIN aqorderbreakdown ON aqorders.ordernumber=aqorderbreakdown.ordernumber - WHERE bookfundid=? + LEFT JOIN aqbookfund ON (aqorderbreakdown.bookfundid=aqbookfund.bookfundid and aqorderbreakdown.branchcode=aqbookfund.branchcode) + LEFT JOIN aqbudget ON (aqbudget.bookfundid=aqbookfund.bookfundid and aqbudget.branchcode=aqbookfund.branchcode) + WHERE aqorderbreakdown.bookfundid=? AND (datecancellationprinted IS NULL OR datecancellationprinted='0000-00-00') - AND ((datereceived >= ? and datereceived < ?) OR (budgetdate >= ? and budgetdate < ?)) + AND ((budgetdate >= ? and budgetdate < ?) OR (startdate>=? and enddate<=?)) "; my $sth = $dbh->prepare($query); $sth->execute( $id, $start, $end, $start, $end ); - my $spent = 0; + my ($spent) = 0; while ( my $data = $sth->fetchrow_hashref ) { if ( $data->{'subscription'} == 1 ) { $spent += $data->{'quantity'} * $data->{'unitprice'}; } else { - - my $leftover = $data->{'quantity'} - ($data->{'quantityreceived'}?$data->{'quantityreceived'}:0); $spent += ( $data->{'unitprice'} ) * ($data->{'quantityreceived'}?$data->{'quantityreceived'}:0); } @@ -274,7 +272,7 @@ sub GetBookFundBreakdown { while ( my $data = $sth->fetchrow_hashref ) { my $left = $data->{'tleft'}; - if ( !$left || $left eq '' ) { + if ( (!$left && (!$data->{'datereceived'}||$data->{'datereceived'} eq '0000-00-00') ) || $left eq '' ) { $left = $data->{'quantity'}; } if ( $left && $left > 0 ) { @@ -317,36 +315,42 @@ sub NewBookFund{ =head3 ModBookFund -&ModBookFund($bookfundname,$branchcode,$bookfundid); -this function update the bookfundname and the branchcode on aqbookfund table -on database. +&ModBookFund($bookfundname,$bookfundid,$current_branch, $branchcode) = +this function update the bookfundname and the branchcode on aqbookfund table on database. =cut + sub ModBookFund { - my ($bookfundname,$bookfundid,$branchcode) = @_; + my ($bookfundname,$bookfundid,$current_branch, $branchcode) = @_; + my $dbh = C4::Context->dbh; - my $query = " - UPDATE aqbookfund - SET bookfundname = ? - WHERE bookfundid = ? - AND branchcode= ? - "; - warn "name : $bookfundname"; - my $sth=$dbh->prepare($query); - $sth->execute($bookfundname,$bookfundid,"$branchcode"); -# budgets depending on a bookfund must have the same branchcode -# if the bookfund branchcode is set - if (defined $branchcode) { - $query = " - UPDATE aqbudget - SET branchcode = ? - "; - $sth=$dbh->prepare($query); - $sth->execute($branchcode); + + my $retval = $dbh->do(" + UPDATE aqbookfund + SET bookfundname = '$bookfundname', + branchcode = '$branchcode' + WHERE bookfundid = '$bookfundid' + AND branchcode = '$current_branch' + "); + + ### $retval + + # budgets depending on a bookfund must have the same branchcode + + # if the bookfund branchcode is set, and previous update is successfull, then update aqbudget.branchcode too. + if (defined $branchcode && $retval > 0) { + my $query = "UPDATE aqbudget + SET branchcode = ? + WHERE bookfundid = ? "; + + my $sth=$dbh->prepare($query); + $sth->execute($branchcode, $bookfundid) ; } } + + #-------------------------------------------------------------# =head3 SearchBookFund @@ -447,7 +451,7 @@ sub Countbookfund { AND branchcode = ? "; my $sth = $dbh->prepare($query); - $sth->execute($bookfundid,$branchcode); + $sth->execute($bookfundid,"$branchcode"); return $sth->fetchrow; }