Merge branch 'new/bug8854'
This commit is contained in:
commit
49916a669b
3 changed files with 49 additions and 19 deletions
|
@ -2450,6 +2450,7 @@ sub AddClaim {
|
|||
|
||||
my @invoices = GetInvoices(
|
||||
invoicenumber => $invoicenumber,
|
||||
supplierid => $supplierid,
|
||||
suppliername => $suppliername,
|
||||
shipmentdatefrom => $shipmentdatefrom, # ISO format
|
||||
shipmentdateto => $shipmentdateto, # ISO format
|
||||
|
@ -2494,6 +2495,8 @@ sub GetInvoices {
|
|||
FROM aqinvoices
|
||||
LEFT JOIN aqbooksellers ON aqbooksellers.id = aqinvoices.booksellerid
|
||||
LEFT JOIN aqorders ON aqorders.invoiceid = aqinvoices.invoiceid
|
||||
LEFT JOIN aqbasket ON aqbasket.basketno=aqorders.basketno
|
||||
LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber
|
||||
LEFT JOIN biblio ON aqorders.biblionumber = biblio.biblionumber
|
||||
LEFT JOIN biblioitems ON biblio.biblionumber = biblioitems.biblionumber
|
||||
LEFT JOIN subscription ON biblio.biblionumber = subscription.biblionumber
|
||||
|
@ -2514,11 +2517,11 @@ sub GetInvoices {
|
|||
push @bind_args, "%$args{suppliername}%";
|
||||
}
|
||||
if($args{shipmentdatefrom}) {
|
||||
push @bind_strs, " aqinvoices.shipementdate >= ? ";
|
||||
push @bind_strs, " aqinvoices.shipmentdate >= ? ";
|
||||
push @bind_args, $args{shipmentdatefrom};
|
||||
}
|
||||
if($args{shipmentdateto}) {
|
||||
push @bind_strs, " aqinvoices.shipementdate <= ? ";
|
||||
push @bind_strs, " aqinvoices.shipmentdate <= ? ";
|
||||
push @bind_args, $args{shipmentdateto};
|
||||
}
|
||||
if($args{billingdatefrom}) {
|
||||
|
@ -2530,27 +2533,27 @@ sub GetInvoices {
|
|||
push @bind_args, $args{billingdateto};
|
||||
}
|
||||
if($args{isbneanissn}) {
|
||||
push @bind_strs, " (biblioitems.isbn LIKE ? OR biblioitems.ean LIKE ? OR biblioitems.issn LIKE ? ) ";
|
||||
push @bind_strs, " (biblioitems.isbn LIKE CONCAT('%', ?, '%') OR biblioitems.ean LIKE CONCAT('%', ?, '%') OR biblioitems.issn LIKE CONCAT('%', ?, '%') ) ";
|
||||
push @bind_args, $args{isbneanissn}, $args{isbneanissn}, $args{isbneanissn};
|
||||
}
|
||||
if($args{title}) {
|
||||
push @bind_strs, " biblio.title LIKE ? ";
|
||||
push @bind_strs, " biblio.title LIKE CONCAT('%', ?, '%') ";
|
||||
push @bind_args, $args{title};
|
||||
}
|
||||
if($args{author}) {
|
||||
push @bind_strs, " biblio.author LIKE ? ";
|
||||
push @bind_strs, " biblio.author LIKE CONCAT('%', ?, '%') ";
|
||||
push @bind_args, $args{author};
|
||||
}
|
||||
if($args{publisher}) {
|
||||
push @bind_strs, " biblioitems.publishercode LIKE ? ";
|
||||
push @bind_strs, " biblioitems.publishercode LIKE CONCAT('%', ?, '%') ";
|
||||
push @bind_args, $args{publisher};
|
||||
}
|
||||
if($args{publicationyear}) {
|
||||
push @bind_strs, " biblioitems.publicationyear = ? ";
|
||||
push @bind_args, $args{publicationyear};
|
||||
push @bind_strs, " ((biblioitems.publicationyear LIKE CONCAT('%', ?, '%')) OR (biblio.copyrightdate LIKE CONCAT('%', ?, '%'))) ";
|
||||
push @bind_args, $args{publicationyear}, $args{publicationyear};
|
||||
}
|
||||
if($args{branchcode}) {
|
||||
push @bind_strs, " aqorders.branchcode = ? ";
|
||||
push @bind_strs, " borrowers.branchcode = ? ";
|
||||
push @bind_args, $args{branchcode};
|
||||
}
|
||||
|
||||
|
|
|
@ -3,11 +3,9 @@
|
|||
use Modern::Perl;
|
||||
use C4::Context;
|
||||
|
||||
use Test::More tests => 49;
|
||||
use Test::More tests => 50;
|
||||
use Test::MockModule;
|
||||
|
||||
use_ok('C4::Acquisition');
|
||||
|
||||
my $module = new Test::MockModule('C4::Context');
|
||||
$module->mock('_new_dbh', sub {
|
||||
my $dbh = DBI->connect( 'DBI:Mock:', '', '' )
|
||||
|
@ -17,6 +15,8 @@ $module->mock('_new_dbh', sub {
|
|||
|
||||
my $dbh = C4::Context->dbh;
|
||||
|
||||
use_ok('C4::Acquisition');
|
||||
|
||||
# We need to add a resultset to avoid DBI fail
|
||||
# ("DBI bind_columns: invalid number of arguments...")
|
||||
my $rs = [
|
||||
|
@ -42,9 +42,9 @@ my @invoices = C4::Acquisition::GetInvoices(
|
|||
);
|
||||
my $history = $dbh->{mock_all_history};
|
||||
|
||||
is(scalar(@$history), 1);
|
||||
my @bound_params = @{ $history->[0]->{bound_params} };
|
||||
is(scalar(@bound_params), 15);
|
||||
ok(scalar(@$history) > 0);
|
||||
my @bound_params = @{ $history->[-1]->{bound_params} };
|
||||
is(scalar(@bound_params), 16);
|
||||
is($bound_params[0], 'supplierid');
|
||||
is($bound_params[1], '%invoicenumber%');
|
||||
is($bound_params[2], '%suppliername%');
|
||||
|
@ -59,7 +59,8 @@ is($bound_params[10], 'title');
|
|||
is($bound_params[11], 'author');
|
||||
is($bound_params[12], 'publisher');
|
||||
is($bound_params[13], 'publicationyear');
|
||||
is($bound_params[14], 'branchcode');
|
||||
is($bound_params[14], 'publicationyear');
|
||||
is($bound_params[15], 'branchcode');
|
||||
|
||||
$dbh->{mock_clear_history} = 1;
|
||||
$dbh->{mock_add_resultset} = $rs;
|
||||
|
|
|
@ -9,7 +9,7 @@ use warnings;
|
|||
use C4::Bookseller qw( GetBookSellerFromId );
|
||||
use C4::Biblio qw( AddBiblio );
|
||||
|
||||
use Test::More tests => 14;
|
||||
use Test::More tests => 21;
|
||||
|
||||
BEGIN {
|
||||
use_ok('C4::Acquisition');
|
||||
|
@ -19,6 +19,8 @@ my $dbh = C4::Context->dbh;
|
|||
$dbh->{AutoCommit} = 0;
|
||||
$dbh->{RaiseError} = 1;
|
||||
|
||||
$dbh->do(q{DELETE FROM aqinvoices});
|
||||
|
||||
my $booksellerid = C4::Bookseller::AddBookseller(
|
||||
{
|
||||
name => "my vendor",
|
||||
|
@ -41,7 +43,14 @@ my $budgetid = C4::Budgets::AddBudget(
|
|||
my $budget = C4::Budgets::GetBudget( $budgetid );
|
||||
|
||||
my ($ordernumber1, $ordernumber2, $ordernumber3);
|
||||
my ($biblionumber1, $biblioitemnumber1) = AddBiblio(MARC::Record->new, '');
|
||||
my $bibrec1 = MARC::Record->new();
|
||||
$bibrec1->append_fields(
|
||||
MARC::Field->new('020', '', '', 'a' => '1234567890'),
|
||||
MARC::Field->new('100', '', '', 'a' => 'Shakespeare, Billy'),
|
||||
MARC::Field->new('245', '', '', 'a' => 'Bug 8854'),
|
||||
MARC::Field->new('260', '', '', 'b' => 'Scholastic Publishing', c => 'c2012'),
|
||||
);
|
||||
my ($biblionumber1, $biblioitemnumber1) = AddBiblio($bibrec1, '');
|
||||
my ($biblionumber2, $biblioitemnumber2) = AddBiblio(MARC::Record->new, '');
|
||||
my ($biblionumber3, $biblioitemnumber3) = AddBiblio(MARC::Record->new, '');
|
||||
( undef, $ordernumber1 ) = C4::Acquisition::NewOrder(
|
||||
|
@ -74,7 +83,9 @@ my ($biblionumber3, $biblioitemnumber3) = AddBiblio(MARC::Record->new, '');
|
|||
);
|
||||
|
||||
my $invoiceid1 = AddInvoice(invoicenumber => 'invoice1', booksellerid => $booksellerid, unknown => "unknown");
|
||||
my $invoiceid2 = AddInvoice(invoicenumber => 'invoice2', booksellerid => $booksellerid, unknown => "unknown");
|
||||
my $invoiceid2 = AddInvoice(invoicenumber => 'invoice2', booksellerid => $booksellerid, unknown => "unknown",
|
||||
shipmentdate => '2012-12-24',
|
||||
);
|
||||
|
||||
my ($datereceived, $new_ordernumber) = ModReceiveOrder(
|
||||
$biblionumber1,
|
||||
|
@ -122,6 +133,21 @@ cmp_ok(scalar @invoices, '>=', 2, 'GetInvoices returns at least two invoices');
|
|||
@invoices = GetInvoices(invoicenumber => 'invoice2');
|
||||
cmp_ok(scalar @invoices, '>=', 1, 'GetInvoices returns at least one invoice when a specific invoice is requested');
|
||||
|
||||
@invoices = GetInvoices(shipmentdateto => '2012-12-24', shipmentdatefrom => '2012-12-24');
|
||||
is($invoices[0]->{invoicenumber}, 'invoice2', 'GetInvoices() to search by shipmentdate works (bug 8854)');
|
||||
@invoices = GetInvoices(title => 'Bug');
|
||||
is($invoices[0]->{invoicenumber}, 'invoice1', 'GetInvoices() to search by title works (bug 8854)');
|
||||
@invoices = GetInvoices(author => 'Billy');
|
||||
is($invoices[0]->{invoicenumber}, 'invoice1', 'GetInvoices() to search by author works (bug 8854)');
|
||||
@invoices = GetInvoices(publisher => 'Scholastic');
|
||||
is($invoices[0]->{invoicenumber}, 'invoice1', 'GetInvoices() to search by publisher works (bug 8854)');
|
||||
@invoices = GetInvoices(publicationyear => '2012');
|
||||
is($invoices[0]->{invoicenumber}, 'invoice1', 'GetInvoices() to search by publication/copyright year works (bug 8854)');
|
||||
@invoices = GetInvoices(isbneanissn => '1234567890');
|
||||
is($invoices[0]->{invoicenumber}, 'invoice1', 'GetInvoices() to search by ISBN works (bug 8854)');
|
||||
@invoices = GetInvoices(isbneanissn => '123456789');
|
||||
is($invoices[0]->{invoicenumber}, 'invoice1', 'GetInvoices() to search by partial ISBN works (bug 8854)');
|
||||
|
||||
my $invoicesummary1 = GetInvoice($invoiceid1);
|
||||
is($invoicesummary1->{'invoicenumber'}, 'invoice1', 'GetInvoice retrieves correct invoice');
|
||||
is($invoicesummary1->{'invoicenumber'}, $invoice1->{'invoicenumber'}, 'GetInvoice and GetInvoiceDetails retrieve same information');
|
||||
|
|
Loading…
Reference in a new issue