Bug 10274: Execute sql queries into a transaction
[srvgit] / t / db_dependent / Acquisition.t
1 #!/usr/bin/perl
2 #
3 # This Koha test module is a stub!
4 # Add more tests here!!!
5
6 use Modern::Perl;
7 use POSIX qw(strftime);
8
9 use C4::Bookseller qw( GetBookSellerFromId );
10
11 use Test::More tests => 40;
12
13 BEGIN {
14     use_ok('C4::Acquisition');
15     use_ok('C4::Bookseller');
16     use_ok('C4::Biblio');
17     use_ok('C4::Budgets');
18     use_ok('C4::Bookseller');
19 }
20
21 my $dbh = C4::Context->dbh;
22 $dbh->{AutoCommit} = 0;
23 $dbh->{RaiseError} = 1;
24
25 my $booksellerid = C4::Bookseller::AddBookseller(
26     {
27         name => "my vendor",
28         address1 => "bookseller's address",
29         phone => "0123456",
30         active => 1
31     }
32 );
33
34 my $booksellerinfo = C4::Bookseller::GetBookSellerFromId( $booksellerid );
35
36 my ($basket, $basketno);
37 ok($basketno = NewBasket($booksellerid, 1), "NewBasket(  $booksellerid , 1  ) returns $basketno");
38 ok($basket   = GetBasket($basketno), "GetBasket($basketno) returns $basket");
39
40 my $budgetid = C4::Budgets::AddBudget(
41     {
42         budget_code => "budget_code_test_getordersbybib",
43         budget_name => "budget_name_test_getordersbybib",
44     }
45 );
46 my $budget = C4::Budgets::GetBudget( $budgetid );
47
48 my ($ordernumber1, $ordernumber2, $ordernumber3);
49 my ($biblionumber1, $biblioitemnumber1) = AddBiblio(MARC::Record->new, '');
50 my ($biblionumber2, $biblioitemnumber2) = AddBiblio(MARC::Record->new, '');
51 ( undef, $ordernumber1 ) = C4::Acquisition::NewOrder(
52     {
53         basketno => $basketno,
54         quantity => 24,
55         biblionumber => $biblionumber1,
56         budget_id => $budget->{budget_id},
57     }
58 );
59
60 ( undef, $ordernumber2 ) = C4::Acquisition::NewOrder(
61     {
62         basketno => $basketno,
63         quantity => 42,
64         biblionumber => $biblionumber2,
65         budget_id => $budget->{budget_id},
66     }
67 );
68
69 ( undef, $ordernumber3 ) = C4::Acquisition::NewOrder(
70     {
71         basketno => $basketno,
72         quantity => 4,
73         biblionumber => $biblionumber2,
74         budget_id => $budget->{budget_id},
75         ecost => 42,
76         rrp => 42,
77     }
78 );
79
80 my $grouped    = 0;
81 my $orders = GetPendingOrders( $booksellerid, $grouped );
82 isa_ok( $orders, 'ARRAY' );
83
84 C4::Acquisition::CloseBasket( $basketno );
85 my @lateorders = GetLateOrders(0);
86 my $order = $lateorders[0];
87 AddClaim( $order->{ordernumber} );
88 my $neworder = GetOrder( $order->{ordernumber} );
89 is( $neworder->{claimed_date}, strftime( "%Y-%m-%d", localtime(time) ), "AddClaim : Check claimed_date" );
90
91 my @expectedfields = qw( basketno
92                          biblionumber
93                          invoiceid
94                          budgetdate
95                          cancelledby
96                          closedate
97                          creationdate
98                          currency
99                          datecancellationprinted
100                          datereceived
101                          ecost
102                          entrydate
103                          firstname
104                          freight
105                          gstrate
106                          listprice
107                          notes
108                          ordernumber
109                          purchaseordernumber
110                          quantity
111                          quantityreceived
112                          rrp
113                          sort1
114                          sort2
115                          subscriptionid
116                          supplierreference
117                          surname
118                          timestamp
119                          title
120                          totalamount
121                          unitprice );
122 my $firstorder = $orders->[0];
123 for my $field ( @expectedfields ) {
124     ok( exists( $firstorder->{ $field } ), "This order has a $field field" );
125 }
126
127 $dbh->rollback;