Bug 13321: Rename variables
[koha.git] / t / db_dependent / Acquisition.t
index aa09a3a..bae9936 100755 (executable)
@@ -19,7 +19,8 @@ use Modern::Perl;
 
 use POSIX qw(strftime);
 
-use Test::More tests => 88;
+use Test::More tests => 92;
+use Koha::Database;
 
 BEGIN {
     use_ok('C4::Acquisition');
@@ -116,8 +117,11 @@ sub _check_fields_of_orders {
     );
 }
 
+
+my $schema = Koha::Database->new()->schema();
+$schema->storage->txn_begin();
+
 my $dbh = C4::Context->dbh;
-$dbh->{AutoCommit} = 0;
 $dbh->{RaiseError} = 1;
 
 # Creating some orders
@@ -143,10 +147,18 @@ ok(
 );
 ok( $basket = GetBasket($basketno), "GetBasket($basketno) returns $basket" );
 
+my $bpid=AddBudgetPeriod({
+        budget_period_startdate => '2008-01-01'
+        , budget_period_enddate => '2008-12-31'
+        , budget_period_active  => 1
+        , budget_period_description    => "MAPERI"
+});
+
 my $budgetid = C4::Budgets::AddBudget(
     {
         budget_code => "budget_code_test_getordersbybib",
         budget_name => "budget_name_test_getordersbybib",
+        budget_period_id => $bpid,
     }
 );
 my $budget = C4::Budgets::GetBudget($budgetid);
@@ -177,7 +189,7 @@ my @order_content = (
             ecost     => 38.15,
             rrp       => 40.15,
             discount  => 5.1111,
-            gstrate   => 0.0515
+            tax_rate   => 0.0515
         }
     },
     {
@@ -205,7 +217,7 @@ my @order_content = (
             ecost     => 38.1,
             rrp       => 11.0,
             discount  => 5.1,
-            gstrate   => 0.1
+            tax_rate   => 0.1
         }
     },
     {
@@ -225,7 +237,7 @@ my @order_content = (
             rrp            => 11.00,
             discount       => 0,
             uncertainprice => 0,
-            gstrate        => 0
+            tax_rate        => 0
         }
     },
     {
@@ -245,7 +257,7 @@ my @order_content = (
             rrp            => 10,
             discount       => 0,
             uncertainprice => 0,
-            gstrate        => 0
+            tax_rate        => 0
         }
     }
 );
@@ -331,24 +343,29 @@ my @expectedfields = qw(
   quantity
   currency
   listprice
-  totalamount
   datereceived
   invoiceid
   freight
   unitprice
+  unitprice_tax_included
+  unitprice_tax_excluded
   quantityreceived
   datecancellationprinted
   purchaseordernumber
   basketno
   timestamp
   rrp
+  rrp_tax_included
+  rrp_tax_excluded
   ecost
+  ecost_tax_included
+  ecost_tax_excluded
   unitpricesupplier
   unitpricelib
-  gstrate
+  tax_rate
+  tax_value
   discount
   budget_id
-  budgetgroup_id
   budgetdate
   sort1
   sort2
@@ -360,6 +377,10 @@ my @expectedfields = qw(
   subscriptionid
   parent_ordernumber
   orderstatus
+  line_item_id
+  suppliers_reference_number
+  suppliers_reference_qualifier
+  suppliers_report
   title
   author
   basketname
@@ -410,8 +431,9 @@ my @base_expectedfields = qw(
   notes
   ordernumber
   ecost
+  ecost_tax_included
+  ecost_tax_excluded
   uncertainprice
-  marc
   url
   isbn
   copyrightdate
@@ -440,6 +462,8 @@ my @base_expectedfields = qw(
   budget_parent_id
   publishercode
   unitprice
+  unitprice_tax_included
+  unitprice_tax_excluded
   collectionvolume
   budget_amount
   budget_owner_id
@@ -455,9 +479,14 @@ my @base_expectedfields = qw(
   biblioitemnumber
   datereceived
   orderstatus
+  line_item_id
+  suppliers_reference_number
+  suppliers_reference_qualifier
+  suppliers_report
   agerestriction
   budget_branchcode
-  gstrate
+  tax_rate
+  tax_value
   listprice
   budget_code
   budgetdate
@@ -468,7 +497,6 @@ my @base_expectedfields = qw(
   publicationyear
   collectiontitle
   invoiceid
-  budgetgroup_id
   place
   issn
   quantityreceived
@@ -481,8 +509,9 @@ my @base_expectedfields = qw(
   sort2_authcat
   budget_expend
   rrp
+  rrp_tax_included
+  rrp_tax_excluded
   cn_sort
-  totalamount
   lccn
   sort1
   volume
@@ -525,14 +554,12 @@ ok(
 );
 
 #
-# Test GetCancelledOrders
+# Test GetOrders { cancelled => 1 }
 #
 
 @expectedfields =
   ( @base_expectedfields, ( 'transferred_to_timestamp', 'transferred_to' ) );
-is( GetCancelledOrders(), undef,
-    "GetCancelledOrders with no params returns undef" );
-@get_orders = GetCancelledOrders($basketno);
+@get_orders = GetOrders($basketno, { cancelled => 1 });
 (
     $test_missing_fields,   $test_extra_fields,
     $test_different_fields, $test_nbr_fields
@@ -541,21 +568,21 @@ is( GetCancelledOrders(), undef,
 is(
     $$test_nbr_fields[0],
     scalar @expectedfields,
-    "GetCancelledOrders gets orders with the right number of fields"
+    "GetOrders { cancelled => 1 } gets orders with the right number of fields"
 );
 is( join( " ", @$test_missing_fields ),
-    '', "GetCancelledOrders gets orders with no missing fields" );
+    '', "GetOrders { cancelled => 1 } gets orders with no missing fields" );
 is( join( " ", @$test_extra_fields ),
-    '', "GetCancelledOrders gets orders with no unexpected fields" );
+    '', "GetOrders { cancelled => 1 } gets orders with no unexpected fields" );
 is( join( " ", @$test_different_fields ),
     '',
-    "GetCancelledOrders gets orders with the right content in every fields" );
+    "GetOrders { cancelled => 1 } gets orders with the right content in every fields" );
 ok(
     (
         ( scalar @get_orders == 1 )
           and grep ( $_->{ordernumber} eq $ordernumbers[3], @get_orders )
     ),
-    "GetCancelledOrders only gets cancelled orders"
+    "GetOrders { cancelled => 1 } only gets cancelled orders"
 );
 
 #
@@ -571,13 +598,20 @@ ok(
   firstname
   biblioitemnumber
   ecost
+  ecost_tax_included
+  ecost_tax_excluded
   uncertainprice
   creationdate
   datereceived
   orderstatus
+  line_item_id
+  suppliers_reference_number
+  suppliers_reference_qualifier
+  suppliers_report
   isbn
   copyrightdate
-  gstrate
+  tax_rate
+  tax_value
   serial
   listprice
   budgetdate
@@ -589,7 +623,6 @@ ok(
   title
   closedate
   basketname
-  budgetgroup_id
   invoiceid
   author
   parent_ordernumber
@@ -604,8 +637,11 @@ ok(
   unititle
   sort2_authcat
   rrp
+  rrp_tax_included
+  rrp_tax_excluded
   unitprice
-  totalamount
+  unitprice_tax_included
+  unitprice_tax_excluded
   sort1
   ordernumber
   datecreated
@@ -631,15 +667,14 @@ my $invoiceid = AddInvoice(
     unknown       => "unknown"
 );
 
+my $invoice = GetInvoice( $invoiceid );
+
 my ($datereceived, $new_ordernumber) = ModReceiveOrder(
     {
         biblionumber      => $biblionumber4,
-        ordernumber       => $ordernumbers[4],
+        order             => GetOrder( $ordernumbers[4] ),
         quantityreceived  => 1,
-        cost              => 10,
-        ecost             => 10,
-        invoiceid         => $invoiceid,
-        rrp               => 10,
+        invoice           => $invoice,
         budget_id          => $order_content[4]->{str}->{budget_id},
     }
 );
@@ -797,20 +832,18 @@ is(
     "AddClaim : Check claimed_date"
 );
 
+my $order2 = GetOrder( $ordernumbers[1] );
+$order2->{order_internalnote} = "my notes";
 ( $datereceived, $new_ordernumber ) = ModReceiveOrder(
     {
         biblionumber     => $biblionumber2,
-        ordernumber      => $ordernumbers[1],
+        order            => $order2,
         quantityreceived => 2,
-        cost             => 12,
-        ecost            => 12,
-        invoiceid        => $invoiceid,
-        rrp              => 42,
-        order_internalnote => "my notes",
-        order_vendornote   => "my vendor notes",
+        invoice          => $invoice,
     }
-);
-my $order2 = GetOrder( $ordernumbers[1] );
+)
+;
+$order2 = GetOrder( $ordernumbers[1] );
 is( $order2->{'quantityreceived'},
     0, 'Splitting up order did not receive any on original order' );
 is( $order2->{'quantity'}, 40, '40 items on original order' );
@@ -818,8 +851,6 @@ is( $order2->{'budget_id'}, $budgetid,
     'Budget on original order is unchanged' );
 is( $order2->{order_internalnote}, "my notes",
     'ModReceiveOrder and GetOrder deal with internal notes' );
-is( $order2->{order_vendornote}, "my vendor notes",
-    'ModReceiveOrder and GetOrder deal with vendor notes' );
 
 $neworder = GetOrder($new_ordernumber);
 is( $neworder->{'quantity'}, 2, '2 items on new order' );
@@ -842,21 +873,19 @@ my $budgetid2 = C4::Budgets::AddBudget(
     }
 );
 
+my $order3 = GetOrder( $ordernumbers[2] );
+$order3->{order_internalnote} = "my other notes";
 ( $datereceived, $new_ordernumber ) = ModReceiveOrder(
     {
         biblionumber     => $biblionumber2,
-        ordernumber      => $ordernumbers[2],
+        order            => $order3,
         quantityreceived => 2,
-        cost             => 12,
-        ecost            => 12,
-        invoiceid        => $invoiceid,
-        rrp              => 42,
+        invoice          => $invoice,
         budget_id        => $budgetid2,
-        order_internalnote => "my other notes",
     }
 );
 
-my $order3 = GetOrder( $ordernumbers[2] );
+$order3 = GetOrder( $ordernumbers[2] );
 is( $order3->{'quantityreceived'},
     0, 'Splitting up order did not receive any on original order' );
 is( $order3->{'quantity'}, 2, '2 items on original order' );
@@ -871,17 +900,15 @@ is( $neworder->{'quantityreceived'},
     2, 'Splitting up order received items on new order' );
 is( $neworder->{'budget_id'}, $budgetid2, 'Budget on new order is changed' );
 
+$order3 = GetOrder( $ordernumbers[2] );
+$order3->{order_internalnote} = "my third notes";
 ( $datereceived, $new_ordernumber ) = ModReceiveOrder(
     {
         biblionumber     => $biblionumber2,
-        ordernumber      => $ordernumbers[2],
+        order            => $order3,
         quantityreceived => 2,
-        cost             => 12,
-        ecost            => 12,
-        invoiceid        => $invoiceid,
-        rrp              => 42,
+        invoice          => $invoice,
         budget_id        => $budgetid2,
-        order_internalnote => "my third notes",
     }
 );
 
@@ -922,4 +949,21 @@ ok(($order4->{cancellationreason} eq "foobar"), "order has cancellation reason \
 ok((not defined GetBiblio($order4->{biblionumber})), "biblio does not exist anymore");
 # End of tests for DelOrder
 
-$dbh->rollback;
+subtest 'ModOrder' => sub {
+    plan tests => 1;
+    ModOrder( { ordernumber => $order1->{ordernumber}, unitprice => 42 } );
+    my $order = GetOrder( $order1->{ordernumber} );
+    is( int($order->{unitprice}), 42, 'ModOrder should work even if biblionumber if not passed');
+};
+
+# Budget reports
+my $all_count = scalar GetBudgetsReport();
+ok($all_count >= 1, "GetBudgetReport OK");
+
+my $active_count = scalar GetBudgetsReport(1);
+ok($active_count >= 1 , "GetBudgetsReport(1) OK");
+
+is($all_count, scalar GetBudgetsReport(), "GetBudgetReport returns inactive budget period acquisitions.");
+ok($active_count >= scalar GetBudgetsReport(1), "GetBudgetReport doesn't return inactive budget period acquisitions.");
+
+$schema->storage->txn_rollback();