Bug 13967: (QA followup) Make DBIx control transactions on tests
[koha.git] / t / db_dependent / Acquisition / OrderUsers.t
1 use Modern::Perl;
2 use Test::More tests => 3;
3
4 use C4::Acquisition;
5 use C4::Biblio;
6 use C4::Bookseller;
7 use C4::Letters;
8 use Koha::Database;
9 use Koha::Acquisition::Order;
10
11 my $schema = Koha::Database->new()->schema();
12 $schema->storage->txn_begin();
13 my $dbh = C4::Context->dbh;
14 $dbh->{RaiseError} = 1;
15
16 # Creating some orders
17 my $booksellerid = C4::Bookseller::AddBookseller(
18     {
19         name         => "my vendor",
20         address1     => "bookseller's address",
21         phone        => "0123456",
22         active       => 1,
23     }
24 );
25
26 my $basketno = NewBasket( $booksellerid, 1 );
27
28 my $budgetid = C4::Budgets::AddBudget(
29     {
30         budget_code => "budget_code_test_getordersbybib",
31         budget_name => "budget_name_test_getordersbybib",
32     }
33 );
34 my $budget = C4::Budgets::GetBudget($budgetid);
35
36 my @ordernumbers;
37 my ( $biblionumber, $biblioitemnumber ) = C4::Biblio::AddBiblio( MARC::Record->new, '' );
38
39 my $ordernumber;
40 $ordernumber = Koha::Acquisition::Order->new(
41     {
42         basketno         => $basketno,
43         quantity         => 2,
44         biblionumber     => $biblionumber,
45         budget_id        => $budgetid,
46         entrydate        => '01-01-2014',
47         currency         => 'EUR',
48         notes            => "This is a note1",
49         gstrate          => 0.0500,
50         orderstatus      => 1,
51         quantityreceived => 0,
52         rrp              => 10,
53         ecost            => 10,
54     }
55 )->insert->{ordernumber};
56
57 my $invoiceid = AddInvoice(
58     invoicenumber => 'invoice',
59     booksellerid  => $booksellerid,
60     unknown       => "unknown"
61 );
62
63 my $borrowernumber = C4::Members::AddMember(
64     cardnumber => 'TESTCARD',
65     firstname =>  'TESTFN',
66     surname => 'TESTSN',
67     categorycode => 'S',
68     branchcode => 'CPL',
69     dateofbirth => '',
70     dateexpiry => '9999-12-31',
71     userid => 'TESTUSERID'
72 );
73
74 my $borrower = C4::Members::GetMemberDetails( $borrowernumber );
75
76 C4::Acquisition::ModOrderUsers( $ordernumber, $borrowernumber );
77
78 my $is_added = grep { /^$borrowernumber$/ } C4::Acquisition::GetOrderUsers( $ordernumber );
79 is( $is_added, 1, 'ModOrderUsers should link patrons to an order' );
80
81 ModReceiveOrder(
82     {
83         biblionumber      => $biblionumber,
84         ordernumber       => $ordernumber,
85         quantityreceived  => 1,
86         cost              => 10,
87         ecost             => 10,
88         invoiceid         => $invoiceid,
89         rrp               => 10,
90         budget_id         => $budgetid,
91     }
92 );
93
94 my $messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber });
95 is( scalar( @$messages ), 0, 'The letter has not been sent to message queue on receiving the order, the order is not entire received');
96
97 ModReceiveOrder(
98     {
99         biblionumber      => $biblionumber,
100         ordernumber       => $ordernumber,
101         quantityreceived  => 1,
102         cost              => 10,
103         ecost             => 10,
104         invoiceid         => $invoiceid,
105         rrp               => 10,
106         budget_id         => $budgetid,
107     }
108 );
109
110 $messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber });
111 is( scalar( @$messages ), 1, 'The letter has been sent to message queue on receiving the order');
112
113 $schema->storage->txn_rollback();