Bug 20287: Replace occurrences of AddMember with Koha::Patron->new->store->borrowernumber
[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::Letters;
7 use Koha::Database;
8 use Koha::Acquisition::Booksellers;
9 use Koha::Acquisition::Orders;
10 use Koha::Patrons;
11
12 use t::lib::TestBuilder;
13
14 my $schema = Koha::Database->schema;
15 $schema->storage->txn_begin;
16 my $builder = t::lib::TestBuilder->new;
17
18 my $library = $builder->build({
19     source => "Branch",
20 });
21 my $patron_category = $builder->build({ source => 'Category' });
22 my $currency = $builder->build({ source => 'Currency' });
23
24 # Creating some orders
25 my $bookseller = Koha::Acquisition::Bookseller->new(
26     {
27         name         => "my vendor",
28         address1     => "bookseller's address",
29         phone        => "0123456",
30         active       => 1,
31     }
32 )->store;
33
34 my $basketno = NewBasket( $bookseller->id, 1 );
35
36 my $budgetid = C4::Budgets::AddBudget(
37     {
38         budget_code => "budget_code_test",
39         budget_name => "budget_name_test",
40     }
41 );
42 my $budget = C4::Budgets::GetBudget($budgetid);
43
44 my @ordernumbers;
45 my ( $biblionumber, $biblioitemnumber ) = C4::Biblio::AddBiblio( MARC::Record->new, '' );
46
47 my $order = Koha::Acquisition::Order->new(
48     {
49         basketno         => $basketno,
50         quantity         => 2,
51         biblionumber     => $biblionumber,
52         budget_id        => $budgetid,
53         entrydate        => '2014-01-01',
54         currency         => $currency->{currency},
55         orderstatus      => 1,
56         quantityreceived => 0,
57         rrp              => 10,
58         ecost            => 10,
59     }
60 )->store;
61 my $ordernumber = $order->ordernumber;
62
63 my $invoiceid = AddInvoice(
64     invoicenumber => 'invoice',
65     booksellerid  => $bookseller->id,
66     unknown       => "unknown"
67 );
68
69 my $borrowernumber = Koha::Patron->new({
70     cardnumber => 'TESTCARD',
71     firstname =>  'TESTFN',
72     surname => 'TESTSN',
73     categorycode => $patron_category->{categorycode},
74     branchcode => $library->{branchcode},
75     dateofbirth => '',
76     dateexpiry => '9999-12-31',
77     userid => 'TESTUSERID'
78 })->store->borrowernumber;
79
80 C4::Acquisition::ModOrderUsers( $ordernumber, $borrowernumber );
81
82 my $is_added = grep { /^$borrowernumber$/ } C4::Acquisition::GetOrderUsers( $ordernumber );
83 is( $is_added, 1, 'ModOrderUsers should link patrons to an order' );
84
85 $order = Koha::Acquisition::Orders->find( $ordernumber );
86 ModReceiveOrder(
87     {
88         biblionumber      => $biblionumber,
89         order             => $order->unblessed,
90         quantityreceived  => 1,
91         cost              => 10,
92         ecost             => 10,
93         invoiceid         => $invoiceid,
94         rrp               => 10,
95         budget_id         => $budgetid,
96     }
97 );
98
99 my $messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber });
100 is( scalar( @$messages ), 0, 'The letter has not been sent to message queue on receiving the order, the order is not entire received');
101
102 $order = Koha::Acquisition::Orders->find( $ordernumber );
103 ModReceiveOrder(
104     {
105         biblionumber      => $biblionumber,
106         order             => $order->unblessed,
107         quantityreceived  => 1,
108         cost              => 10,
109         ecost             => 10,
110         invoiceid         => $invoiceid,
111         rrp               => 10,
112         budget_id         => $budgetid,
113     }
114 );
115
116 $messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber });
117 is( scalar( @$messages ), 1, 'The letter has been sent to message queue on receiving the order');