X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FAcquisition.pm;h=f84ac7ea136026a90b7b34ad6c1869b7fbda43c7;hb=2bdff1822add1273760cef70fed6e39ef16d1924;hp=d8a6c95e6e1386a86e21835bc0d9c28c69a945c8;hpb=24749efefd566a817632ce9a62ad0098c54d48c0;p=koha.git diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm index d8a6c95e6e..f84ac7ea13 100644 --- a/C4/Acquisition.pm +++ b/C4/Acquisition.pm @@ -196,7 +196,7 @@ Results are ordered from most to least recent. =cut sub GetPendingOrders { - my ($supplierid,$grouped) = @_; + my ($supplierid,$grouped, $closed) = @_; my $dbh = C4::Context->dbh; my $strsth = " SELECT ".($grouped?"count(*),":"")."aqbasket.basketno, @@ -206,10 +206,14 @@ sub GetPendingOrders { LEFT JOIN aqbasket ON aqbasket.basketno=aqorders.basketno LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber WHERE booksellerid=? - AND (quantity > quantityreceived OR quantityreceived is NULL) AND datecancellationprinted IS NULL AND (to_days(now())-to_days(closedate) < 180 OR closedate IS NULL) "; + if($closed){ + $strsth .= " + AND (quantity > quantityreceived OR quantityreceived is NULL) + AND closedate IS NOT NULL "; + } ## FIXME Why 180 days ??? my @query_params = ( $supplierid ); if ( C4::Context->preference("IndependantBranches") ) { @@ -674,7 +678,7 @@ C<@results> is an array of references-to-hash with the following keys: =cut sub SearchOrder { - my ( $search, $id, $biblionumber, $catview ) = @_; + my ( $search, $id, $biblionumber ) = @_; my $dbh = C4::Context->dbh; my @data = split( ' ', $search ); my @searchterms; @@ -685,17 +689,20 @@ sub SearchOrder { push( @searchterms, $search, $search, $biblionumber ); my $query; ### FIXME THIS CAN raise a problem if more THAN ONE biblioitem is linked to one biblio - if($id and $search){ - @searchterms = ($id, $search); - $query = - "SELECT *,biblio.title - FROM aqorders - LEFT JOIN biblio ON aqorders.biblionumber=biblio.biblionumber - LEFT JOIN biblioitems ON biblioitems.biblionumber=biblio.biblionumber - LEFT JOIN aqbasket ON aqorders.basketno = aqbasket.basketno - WHERE aqbasket.booksellerid = ? AND aqorders.ordernumber = ? - " - }elsif ($id) { + if(not $id and $biblionumber and $search){ + $query = "SELECT *,biblio.title + FROM aqorders + LEFT JOIN biblio ON aqorders.biblionumber=biblio.biblionumber + LEFT JOIN biblioitems ON biblioitems.biblionumber=biblio.biblionumber + LEFT JOIN aqbasket ON aqorders.basketno = aqbasket.basketno + WHERE ((datecancellationprinted is NULL) + OR (datecancellationprinted = '0000-00-00')) + AND aqorders.biblionumber = ? + AND aqorders.ordernumber = ? + "; + @searchterms = ($biblionumber, $search); + } + elsif($id) { $query = "SELECT *,biblio.title FROM aqorders @@ -711,7 +718,6 @@ sub SearchOrder { map { "(biblio.title like ? or biblio.title like ?)" } @data ) ) . ") OR biblioitems.isbn=? OR (aqorders.ordernumber=? AND aqorders.biblionumber=?)) "; - } else { $query = @@ -731,11 +737,6 @@ sub SearchOrder { . ") or biblioitems.isbn=? OR (aqorders.ordernumber=? AND aqorders.biblionumber=?)) "; } - if ( $biblionumber ) { - $query .= "AND biblio.biblionumber = ? "; - push (@searchterms, $biblionumber); - } - $query .= " GROUP BY aqorders.ordernumber"; ### $query my $sth = $dbh->prepare($query);