Bug 10723: Merge GetPendingOrders and SearchOrders routines
[koha.git] / 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 => 41;
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         deliverytime => 5,
32     }
33 );
34
35 my $booksellerinfo = C4::Bookseller::GetBookSellerFromId( $booksellerid );
36
37 is($booksellerinfo->{deliverytime}, 5, 'set deliverytime when creating vendor (Bug 10556)');
38
39 my ($basket, $basketno);
40 ok($basketno = NewBasket($booksellerid, 1), "NewBasket(  $booksellerid , 1  ) returns $basketno");
41 ok($basket   = GetBasket($basketno), "GetBasket($basketno) returns $basket");
42
43 my $budgetid = C4::Budgets::AddBudget(
44     {
45         budget_code => "budget_code_test_getordersbybib",
46         budget_name => "budget_name_test_getordersbybib",
47     }
48 );
49 my $budget = C4::Budgets::GetBudget( $budgetid );
50
51 my ($ordernumber1, $ordernumber2, $ordernumber3);
52 my ($biblionumber1, $biblioitemnumber1) = AddBiblio(MARC::Record->new, '');
53 my ($biblionumber2, $biblioitemnumber2) = AddBiblio(MARC::Record->new, '');
54 ( undef, $ordernumber1 ) = C4::Acquisition::NewOrder(
55     {
56         basketno => $basketno,
57         quantity => 24,
58         biblionumber => $biblionumber1,
59         budget_id => $budget->{budget_id},
60     }
61 );
62
63 ( undef, $ordernumber2 ) = C4::Acquisition::NewOrder(
64     {
65         basketno => $basketno,
66         quantity => 42,
67         biblionumber => $biblionumber2,
68         budget_id => $budget->{budget_id},
69     }
70 );
71
72 ( undef, $ordernumber3 ) = C4::Acquisition::NewOrder(
73     {
74         basketno => $basketno,
75         quantity => 4,
76         biblionumber => $biblionumber2,
77         budget_id => $budget->{budget_id},
78         ecost => 42,
79         rrp => 42,
80     }
81 );
82
83 my $orders = SearchOrders({
84     booksellerid => $booksellerid,
85     pending => 1
86 });
87 isa_ok( $orders, 'ARRAY' );
88
89 C4::Acquisition::CloseBasket( $basketno );
90 my @lateorders = GetLateOrders(0);
91 my $order = $lateorders[0];
92 AddClaim( $order->{ordernumber} );
93 my $neworder = GetOrder( $order->{ordernumber} );
94 is( $neworder->{claimed_date}, strftime( "%Y-%m-%d", localtime(time) ), "AddClaim : Check claimed_date" );
95
96 my @expectedfields = qw( basketno
97                          biblionumber
98                          invoiceid
99                          budgetdate
100                          cancelledby
101                          closedate
102                          creationdate
103                          currency
104                          datecancellationprinted
105                          datereceived
106                          ecost
107                          entrydate
108                          firstname
109                          freight
110                          gstrate
111                          listprice
112                          notes
113                          ordernumber
114                          purchaseordernumber
115                          quantity
116                          quantityreceived
117                          rrp
118                          sort1
119                          sort2
120                          subscriptionid
121                          supplierreference
122                          surname
123                          timestamp
124                          title
125                          totalamount
126                          unitprice );
127 my $firstorder = $orders->[0];
128 for my $field ( @expectedfields ) {
129     ok( exists( $firstorder->{ $field } ), "This order has a $field field" );
130 }
131
132 $dbh->rollback;