Jonathan Druart
f1f9c6dc74
.pm must not have -x .t must have -x .pl must have -x Test plan: Apply only the first patch, run the tests and confirm that the failures make sense Apply this patch and confirm that the test now returns green Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
122 lines
4 KiB
Perl
Executable file
122 lines
4 KiB
Perl
Executable file
use Modern::Perl;
|
|
|
|
use Test::More tests => 12;
|
|
|
|
use t::lib::TestBuilder;
|
|
|
|
use_ok('C4::Acquisition');
|
|
use_ok('C4::Biblio');
|
|
use_ok('C4::Budgets');
|
|
use_ok('C4::Serials');
|
|
|
|
use Koha::Acquisition::Orders;
|
|
use Koha::Database;
|
|
|
|
# Start transaction
|
|
my $schema = Koha::Database->new()->schema();
|
|
$schema->storage->txn_begin();
|
|
my $builder = t::lib::TestBuilder->new;
|
|
my $dbh = C4::Context->dbh;
|
|
|
|
my $curcode = $builder->build({ source => 'Currency' })->{currencycode};
|
|
|
|
my $bookseller = Koha::Acquisition::Bookseller->new(
|
|
{
|
|
name => "my vendor",
|
|
address1 => "bookseller's address",
|
|
phone => "0123456",
|
|
active => 1
|
|
}
|
|
)->store;
|
|
|
|
my ($biblionumber, $biblioitemnumber) = AddBiblio(MARC::Record->new, '');
|
|
my $bpid = AddBudgetPeriod({
|
|
budget_period_startdate => '2015-01-01',
|
|
budget_period_enddate => '2015-12-31',
|
|
budget_period_description => "budget desc"
|
|
});
|
|
|
|
my $budget_id = AddBudget({
|
|
budget_code => "ABCD",
|
|
budget_amount => "123.132",
|
|
budget_name => "Périodiques",
|
|
budget_notes => "This is a note",
|
|
budget_period_id => $bpid
|
|
});
|
|
|
|
my $subscriptionid = NewSubscription(
|
|
undef, "", undef, undef, $budget_id, $biblionumber,
|
|
'2013-01-01',undef, undef, undef, undef,
|
|
undef, undef, undef, undef, undef, undef,
|
|
1, "notes",undef, '2013-01-01', undef, undef,
|
|
undef, undef, 0, "intnotes", 0,
|
|
undef, undef, 0, undef, '2013-12-31', 0
|
|
);
|
|
die unless $subscriptionid;
|
|
|
|
my $basketno;
|
|
ok($basketno = NewBasket($bookseller->id, 1), "NewBasket( " . $bookseller->id . ", 1 ) returns $basketno");
|
|
|
|
my $cost = 42.00;
|
|
my $subscription = GetSubscription( $subscriptionid );
|
|
|
|
my $order = Koha::Acquisition::Order->new({
|
|
biblionumber => $subscription->{biblionumber},
|
|
entrydate => '2013-01-01',
|
|
quantity => 1,
|
|
currency => $curcode,
|
|
listprice => $cost,
|
|
basketno => $basketno,
|
|
rrp => $cost,
|
|
ecost => $cost,
|
|
orderstatus => 'new',
|
|
subscriptionid => $subscription->{subscriptionid},
|
|
budget_id => $budget_id,
|
|
})->store;
|
|
my $ordernumber = $order->ordernumber;
|
|
|
|
my $is_currently_on_order = subscriptionCurrentlyOnOrder( $subscription->{subscriptionid} );
|
|
is ( $is_currently_on_order, 1, "The subscription is currently on order");
|
|
|
|
$order = Koha::Acquisition::Orders->search({ subscriptionid => $subscription->{subscriptionid}, datereceived => undef })->next->unblessed;
|
|
is ( $order->{subscriptionid}, $subscription->{subscriptionid}, "test subscriptionid for the last order not received");
|
|
ok( $order->{ecost} == $cost, "test cost for the last order not received");
|
|
|
|
$dbh->do(q{DELETE FROM aqinvoices});
|
|
my $invoiceid = AddInvoice(invoicenumber => 'invoice1', booksellerid => $bookseller->id, unknown => "unknown");
|
|
|
|
my $invoice = GetInvoice( $invoiceid );
|
|
$invoice->{datereceived} = '2013-01-02';
|
|
|
|
my ( $datereceived, $new_ordernumber ) = ModReceiveOrder(
|
|
{
|
|
biblionumber => $biblionumber,
|
|
order => $order,
|
|
quantityreceived => 1,
|
|
budget_id => $budget_id,
|
|
invoice => $invoice,
|
|
}
|
|
);
|
|
|
|
$order = Koha::Acquisition::Orders->search(
|
|
{
|
|
subscriptionid => $subscriptionid,
|
|
datereceived => { '!=' => undef }
|
|
},
|
|
{
|
|
order_by => [ { -desc => 'datereceived' }, { -desc => 'ordernumber' } ]
|
|
}
|
|
)->next->unblessed;
|
|
|
|
is ( $order->{subscriptionid}, $subscription->{subscriptionid}, "test subscriptionid for the last order received");
|
|
ok( $order->{ecost} == $cost, "test cost for the last order received");
|
|
|
|
$order = Koha::Acquisition::Orders->search({ subscriptionid => $subscription->{subscriptionid}, datereceived => undef });
|
|
is ( $order->count, 0, "test no not received order for a received order");
|
|
|
|
my @invoices = GetInvoices();
|
|
my @invoices_linked_to_subscriptions = grep { $_->{is_linked_to_subscriptions} } @invoices;
|
|
is(scalar(@invoices_linked_to_subscriptions), 1, 'GetInvoices() can identify invoices that are linked to a subscription');
|
|
|
|
# Cleanup
|
|
$schema->storage->txn_rollback();
|