=cut
sub GetPendingOrders {
- my ($supplierid,$grouped) = @_;
+ my ($supplierid,$grouped, $closed) = @_;
my $dbh = C4::Context->dbh;
my $strsth = "
SELECT ".($grouped?"count(*),":"")."aqbasket.basketno,
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") ) {
=cut
sub SearchOrder {
- my ( $search, $id, $biblionumber, $catview ) = @_;
+ my ( $search, $id, $biblionumber ) = @_;
my $dbh = C4::Context->dbh;
my @data = split( ' ', $search );
my @searchterms;
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) {
+ 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
map { "(biblio.title like ? or biblio.title like ?)" } @data )
)
. ") OR biblioitems.isbn=? OR (aqorders.ordernumber=? AND aqorders.biblionumber=?)) ";
-
}
else {
$query =
)
. ") or biblioitems.isbn=? OR (aqorders.ordernumber=? AND aqorders.biblionumber=?)) ";
}
+
$query .= " GROUP BY aqorders.ordernumber";
### $query
my $sth = $dbh->prepare($query);