54d38461f0
This allows a basket to be searched for by name or invoice number from anywhere in the acquisitions system. It is accessible by clicking on "orders search", clicking the '[+]' and filling in the basket or invoice no. fields. Author: Srdjan Jankovic <srdjan@catalyst.net.nz> Author: Robin Sheat <robin@catalyst.net.nz> Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com> Signed-off-by: Ian Walls <ian.walls@bywatersolutions.com> Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
141 lines
4.7 KiB
Perl
141 lines
4.7 KiB
Perl
package KohaTest::Acquisition;
|
|
use base qw( KohaTest );
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Test::More;
|
|
|
|
use C4::Acquisition;
|
|
use C4::Budgets;
|
|
use C4::Context;
|
|
use C4::Members;
|
|
use Time::localtime;
|
|
|
|
sub testing_class { 'C4::Acquisition' };
|
|
|
|
|
|
sub methods : Test( 1 ) {
|
|
my $self = shift;
|
|
my @methods = qw( GetBasket
|
|
NewBasket
|
|
CloseBasket
|
|
GetPendingOrders
|
|
GetOrders
|
|
GetOrderNumber
|
|
GetOrder
|
|
NewOrder
|
|
ModOrder
|
|
ModReceiveOrder
|
|
SearchOrder
|
|
DelOrder
|
|
GetParcel
|
|
GetParcels
|
|
GetLateOrders
|
|
GetHistory
|
|
GetRecentAcqui
|
|
);
|
|
|
|
can_ok( $self->testing_class, @methods );
|
|
}
|
|
|
|
=head3 create_new_basket
|
|
|
|
creates a baseket by creating an order with no baseket number.
|
|
|
|
named parameters:
|
|
authorizedby
|
|
invoice
|
|
date
|
|
|
|
returns: baseket number, order number
|
|
|
|
runs 4 tests
|
|
|
|
=cut
|
|
|
|
sub create_new_basket {
|
|
my $self = shift;
|
|
my %param = @_;
|
|
$param{'authorizedby'} = $self->{'memberid'} unless exists $param{'authorizedby'};
|
|
$param{'invoice'} = 123 unless exists $param{'invoice'};
|
|
|
|
my $today = sprintf( '%04d-%02d-%02d',
|
|
localtime->year() + 1900,
|
|
localtime->mon() + 1,
|
|
localtime->mday() );
|
|
|
|
# I actually think that this parameter is unused.
|
|
$param{'date'} = $today unless exists $param{'date'};
|
|
|
|
$self->add_biblios( add_items => 1 );
|
|
ok( scalar @{$self->{'biblios'}} > 0, 'we have added at least one biblio' );
|
|
|
|
my $rand = int(rand(10000));
|
|
my $basketno = NewBasket( $self->{'booksellerid'}, $param{'authorizedby'}, "Basket $rand");
|
|
# $basketnote, $basketbooksellernote, $basketcontractnumber );
|
|
# The following keys are used: "biblionumber", "title", "basketno", "quantity", "notes", "biblioitemnumber", "rrp", "ecost", "gst", "unitprice", "subscription", "sort1", "sort2", "booksellerinvoicenumber", "listprice", "budgetdate", "purchaseordernumber", "branchcode", "booksellerinvoicenumber", "bookfundid".
|
|
my $budget_id = AddBudget( { budget_name => "Budget $rand" } );
|
|
my ( undef, $ordernumber ) = NewOrder( {
|
|
basketno => $basketno,
|
|
budget_id => $budget_id,
|
|
biblionumber => $self->{'biblios'}[0],
|
|
quantity => 1,
|
|
bookfundid => $self->{'bookfundid'},
|
|
rrp => 1,
|
|
ecost => 1,
|
|
booksellerinvoicenumber => $param{'invoice'},
|
|
} );
|
|
ok( $basketno, "my basket number is $basketno" );
|
|
ok( $ordernumber, "my order number is $ordernumber" );
|
|
|
|
my $order = GetOrder( $ordernumber );
|
|
is( $order->{'ordernumber'}, $ordernumber, 'got the right order' )
|
|
or diag( Data::Dumper->Dump( [ $order ], [ 'order' ] ) );
|
|
|
|
is( $order->{'budgetdate'}, $today, "the budget date is $today" );
|
|
|
|
# XXX should I stuff these in $self?
|
|
return ( $basketno, $ordernumber );
|
|
|
|
}
|
|
|
|
|
|
sub enable_independant_branches {
|
|
my $self = shift;
|
|
|
|
my $member = GetMember( 'borrowernumber' =>$self->{'memberid'} );
|
|
|
|
C4::Context::set_userenv( 0, # usernum
|
|
$self->{'memberid'}, # userid
|
|
undef, # usercnum
|
|
undef, # userfirstname
|
|
undef, # usersurname
|
|
$member->{'branchcode'}, # userbranch
|
|
undef, # branchname
|
|
0, # userflags
|
|
undef, # emailaddress
|
|
undef, # branchprinter
|
|
);
|
|
|
|
# set a preference. There's surely a method for this, but I can't find it.
|
|
my $retval = C4::Context->dbh->do( q(update systempreferences set value = '1' where variable = 'IndependantBranches') );
|
|
ok( $retval, 'set the preference' );
|
|
|
|
ok( C4::Context->userenv, 'usernev' );
|
|
isnt( C4::Context->userenv->{flags}, 1, 'flag != 1' )
|
|
or diag( Data::Dumper->Dump( [ C4::Context->userenv ], [ 'userenv' ] ) );
|
|
|
|
is( C4::Context->userenv->{branch}, $member->{'branchcode'}, 'we have set the right branch in C4::Context: ' . $member->{'branchcode'} );
|
|
|
|
}
|
|
|
|
sub disable_independant_branches {
|
|
my $self = shift;
|
|
|
|
my $retval = C4::Context->dbh->do( q(update systempreferences set value = '0' where variable = 'IndependantBranches') );
|
|
ok( $retval, 'set the preference back' );
|
|
|
|
|
|
}
|
|
1;
|