# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
# Suite 330, Boston, MA 02111-1307 USA
-# $Id$
use strict;
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;
@ISA = qw(Exporter);
@EXPORT = qw(
&GetBookSeller &GetBooksellersWithLateOrders
&ModBookseller
+ &DelBookseller
&AddBookseller
);
=head1 FUNCTIONS
-=over 2
-
=cut
#-------------------------------------------------------------------#
-=head3 GetBookSeller
-
-=over 4
+=head2 GetBookSeller
@results = &GetBookSeller($searchstring);
C<@results> is an array of references-to-hash, whose keys are the fields of of the
aqbooksellers table in the Koha database.
-=back
-
=cut
sub GetBookSeller {
my $sth =$dbh->prepare($query);
$sth->execute("$searchstring%", $searchstring );
my @results;
+ # count how many baskets this bookseller has.
+ # if it has none, the bookseller can be deleted
+ my $sth2 = $dbh->prepare("select count(*) from aqbasket where booksellerid=?");
while ( my $data = $sth->fetchrow_hashref ) {
+ $sth2->execute($data->{id});
+ ($data->{basketcount}) = $sth2->fetchrow();
push( @results, $data );
}
$sth->finish;
#-----------------------------------------------------------------#
-=head3 GetBooksellersWithLateOrders
-
-=over 4
+=head2 GetBooksellersWithLateOrders
%results = &GetBooksellersWithLateOrders;
Searches for suppliers with late orders.
-=back
-
=cut
sub GetBooksellersWithLateOrders {
- my $delay = shift;
+ my ($delay,$branch) = @_;
my $dbh = C4::Context->dbh;
# FIXME NOT quite sure that this operation is valid for DBMs different from Mysql, HOPING so
if ( $dbdriver eq "mysql" ) {
$strsth = "
SELECT DISTINCT aqbasket.booksellerid, aqbooksellers.name
- FROM aqorders, aqbasket
+ FROM aqorders LEFT JOIN aqbasket ON aqorders.basketno=aqbasket.basketno
LEFT JOIN aqbooksellers ON aqbasket.booksellerid = aqbooksellers.id
- WHERE aqorders.basketno = aqbasket.basketno
- AND (closedate < DATE_SUB(CURDATE( ),INTERVAL $delay DAY)
+ WHERE (closedate < DATE_SUB(CURDATE( ),INTERVAL $delay DAY)
AND (datereceived = '' OR datereceived IS NULL))
";
}
else {
$strsth = "
SELECT DISTINCT aqbasket.booksellerid, aqbooksellers.name
- FROM aqorders, aqbasket
+ FROM aqorders LEFT JOIN aqbasket ON aqorders.basketno=aqbasket.basketno
LEFT JOIN aqbooksellers ON aqbasket.aqbooksellerid = aqbooksellers.id
- WHERE aqorders.basketno = aqbasket.basketno
- AND (closedate < (CURDATE( )-(INTERVAL $delay DAY)))
+ WHERE (closedate < (CURDATE( )-(INTERVAL $delay DAY)))
AND (datereceived = '' OR datereceived IS NULL))
";
}
#--------------------------------------------------------------------#
-=head3 AddBookseller
-
-=over 4
+=head2 AddBookseller
$id = &AddBookseller($bookseller);
Returns the ID of the newly-created bookseller.
-=back
-
=cut
sub AddBookseller {
);
# return the id of this new supplier
- my $query = "
+ $query = "
SELECT max(id)
FROM aqbooksellers
";
- my $sth = $dbh->prepare($query);
+ $sth = $dbh->prepare($query);
$sth->execute;
return scalar($sth->fetchrow);
}
#-----------------------------------------------------------------#
-=head3 ModSupplier
-
-=over 4
+=head2 ModSupplier
&ModSupplier($bookseller);
book seller with C<&booksellers>, modify what's necessary, then call
C<&ModSupplier> with the result.
-=back
-
=cut
sub ModBookseller {
$sth->finish;
}
+=head2 DelBookseller
+
+&DelBookseller($booksellerid);
+delete the supplier identified by $booksellerid
+This sub can be called only if the supplier has no order.
+
+=cut
+sub DelBookseller {
+ my ($id) = @_;
+ my $dbh=C4::Context->dbh;
+ my $sth=$dbh->prepare("DELETE FROM aqbooksellers WHERE id=?");
+ $sth->execute($id);
+}
END { } # module clean-up code here (global destructor)
1;
__END__
-=back
-
=head1 AUTHOR
Koha Developement team <info@koha.org>