Bug 20144: [sql_modes] Add default value for export_basket.description in tests
[koha.git] / t / db_dependent / Acquisition / Invoices.t
index 3b86a54..b472ce7 100644 (file)
@@ -1,48 +1,48 @@
 #!/usr/bin/perl
-#
-# This Koha test module is a stub!
-# Add more tests here!!!
 
-use strict;
-use warnings;
+use Modern::Perl;
 
-use C4::Bookseller qw( GetBookSellerFromId );
 use C4::Biblio qw( AddBiblio );
 
-use Test::More tests => 21;
+use Koha::Acquisition::Booksellers;
+use Koha::Acquisition::Orders;
+use Koha::Database;
+
+use Test::More tests => 24;
 
 BEGIN {
     use_ok('C4::Acquisition');
 }
 
+my $schema = Koha::Database->new()->schema();
+$schema->storage->txn_begin();
 my $dbh = C4::Context->dbh;
-$dbh->{AutoCommit} = 0;
 $dbh->{RaiseError} = 1;
 
 $dbh->do(q{DELETE FROM aqinvoices});
 
-my $booksellerid = C4::Bookseller::AddBookseller(
+my $bookseller = Koha::Acquisition::Bookseller->new(
     {
         name => "my vendor",
         address1 => "bookseller's address",
         phone => "0123456",
         active => 1
     }
-);
+)->store;
+my $booksellerid = $bookseller->id;
 
-my $booksellerinfo = GetBookSellerFromId( $booksellerid );
+my $booksellerinfo = Koha::Acquisition::Booksellers->find( $booksellerid );
 my $basketno = NewBasket($booksellerid, 1);
 my $basket   = GetBasket($basketno);
 
 my $budgetid = C4::Budgets::AddBudget(
     {
-        budget_code => "budget_code_test_getordersbybib",
-        budget_name => "budget_name_test_getordersbybib",
+        budget_code => "budget_code_test",
+        budget_name => "budget_name_test",
     }
 );
 my $budget = C4::Budgets::GetBudget( $budgetid );
 
-my ($ordernumber1, $ordernumber2, $ordernumber3);
 my $bibrec1 = MARC::Record->new();
 $bibrec1->append_fields(
     MARC::Field->new('020', '', '', 'a' => '1234567890'),
@@ -53,25 +53,28 @@ $bibrec1->append_fields(
 my ($biblionumber1, $biblioitemnumber1) = AddBiblio($bibrec1, '');
 my ($biblionumber2, $biblioitemnumber2) = AddBiblio(MARC::Record->new, '');
 my ($biblionumber3, $biblioitemnumber3) = AddBiblio(MARC::Record->new, '');
-( undef, $ordernumber1 ) = C4::Acquisition::NewOrder(
+
+my $order1 = Koha::Acquisition::Order->new(
     {
         basketno => $basketno,
         quantity => 2,
         biblionumber => $biblionumber1,
         budget_id => $budget->{budget_id},
     }
-);
+)->store;
+my $ordernumber1 = $order1->ordernumber;
 
-( undef, $ordernumber2 ) = C4::Acquisition::NewOrder(
+my $order2 = Koha::Acquisition::Order->new(
     {
         basketno => $basketno,
         quantity => 1,
         biblionumber => $biblionumber2,
         budget_id => $budget->{budget_id},
     }
-);
+)->store;
+my $ordernumber2 = $order2->ordernumber;
 
-( undef, $ordernumber3 ) = C4::Acquisition::NewOrder(
+my $order3 = Koha::Acquisition::Order->new(
     {
         basketno => $basketno,
         quantity => 1,
@@ -80,33 +83,32 @@ my ($biblionumber3, $biblioitemnumber3) = AddBiblio(MARC::Record->new, '');
         ecost => 42,
         rrp => 42,
     }
-);
+)->store;
+my $ordernumber3 = $order3->ordernumber;
 
 my $invoiceid1 = AddInvoice(invoicenumber => 'invoice1', booksellerid => $booksellerid, unknown => "unknown");
 my $invoiceid2 = AddInvoice(invoicenumber => 'invoice2', booksellerid => $booksellerid, unknown => "unknown",
                             shipmentdate => '2012-12-24',
                            );
 
+my $invoice1 = GetInvoice( $invoiceid1 );
+my $invoice2 = GetInvoice( $invoiceid2 );
+
 my ( $datereceived, $new_ordernumber ) = ModReceiveOrder(
     {
         biblionumber     => $biblionumber1,
-        ordernumber      => $ordernumber1,
+        order            => $order1->unblessed,
         quantityreceived => 2,
-        cost             => 12,
-        ecost            => 12,
-        invoiceid        => $invoiceid1,
-        rrp              => 42
+        invoice          => $invoice1,
     }
 );
 
 ( $datereceived, $new_ordernumber ) = ModReceiveOrder(
     {
         biblionumber     => $biblionumber2,
-        ordernumber      => $ordernumber2,
+        order            => $order2->unblessed,
         quantityreceived => 1,
-        cost             => 5,
-        ecost            => 5,
-        invoiceid        => $invoiceid2,
+        invoice          => $invoice2,
         rrp              => 42
     }
 );
@@ -114,21 +116,22 @@ my ( $datereceived, $new_ordernumber ) = ModReceiveOrder(
 ( $datereceived, $new_ordernumber ) = ModReceiveOrder(
     {
         biblionumber     => $biblionumber3,
-        ordernumber      => $ordernumber3,
+        order            => $order3->unblessed,
         quantityreceived => 1,
-        cost             => 12,
-        ecost            => 12,
-        invoiceid        => $invoiceid2,
-        rrp              => 42
+        invoice          => $invoice2,
     }
 );
 
-my $invoice1 = GetInvoiceDetails($invoiceid1);
-my $invoice2 = GetInvoiceDetails($invoiceid2);
+$invoice1 = GetInvoiceDetails($invoiceid1);
+$invoice2 = GetInvoiceDetails($invoiceid2);
 
 is(scalar @{$invoice1->{'orders'}}, 1, 'Invoice1 has only one order');
 is(scalar @{$invoice2->{'orders'}}, 2, 'Invoice2 has only two orders');
 
+my $orders = $invoice1->{orders};
+ok( exists( @$orders[0]->{basketgroupid} ), "GetInvoiceDetails: The basketgroupid key exists" );
+ok( exists( @$orders[0]->{basketgroupname} ), "GetInvoiceDetails: The basketgroupname key exists" );
+
 my @invoices = GetInvoices();
 cmp_ok(scalar @invoices, '>=', 2, 'GetInvoices returns at least two invoices');
 
@@ -179,6 +182,13 @@ DelInvoice($invoiceid3);
 is(scalar @invoices, $invoicecount - 1, 'DelInvoice deletes invoice');
 is(GetInvoice($invoiceid3), undef, 'DelInvoice deleted correct invoice');
 
+my @invoices_linked_to_subscriptions = map{
+    $_->{is_linked_to_subscriptions}
+    ? $_
+    : ()
+} @invoices;
+is_deeply( \@invoices_linked_to_subscriptions, [], "GetInvoices return linked_to_subscriptions: there is no invoices linked to subscriptions yet" );
+
 END {
-    $dbh and $dbh->rollback;
+    $dbh and $schema->storage->txn_rollback();
 }