1 package KohaTest::Acquisition;
2 use base qw( KohaTest );
15 sub testing_class { 'C4::Acquisition' };
18 sub methods : Test( 1 ) {
20 my @methods = qw( GetBasket
39 can_ok( $self->testing_class, @methods );
42 =head3 create_new_basket
44 creates a baseket by creating an order with no baseket number.
51 returns: baseket number, order number
57 sub create_new_basket {
60 $param{'authorizedby'} = $self->{'memberid'} unless exists $param{'authorizedby'};
61 $param{'invoice'} = 123 unless exists $param{'invoice'};
63 my $today = sprintf( '%04d-%02d-%02d',
64 localtime->year() + 1900,
68 # I actually think that this parameter is unused.
69 $param{'date'} = $today unless exists $param{'date'};
71 $self->add_biblios( add_items => 1 );
72 ok( scalar @{$self->{'biblios'}} > 0, 'we have added at least one biblio' );
74 my $rand = int(rand(10000));
75 my $basketno = NewBasket( $self->{'booksellerid'}, $param{'authorizedby'}, "Basket $rand");
76 # $basketnote, $basketbooksellernote, $basketcontractnumber );
77 # The following keys are used: "biblionumber", "title", "basketno", "quantity", "notes", "biblioitemnumber", "rrp", "ecost", "gst", "unitprice", "subscription", "sort1", "sort2", "booksellerinvoicenumber", "listprice", "budgetdate", "purchaseordernumber", "branchcode", "booksellerinvoicenumber", "bookfundid".
78 my $budget_id = AddBudget( { budget_name => "Budget $rand" } );
79 my ( undef, $ordernumber ) = NewOrder( {
80 basketno => $basketno,
81 budget_id => $budget_id,
82 biblionumber => $self->{'biblios'}[0],
84 bookfundid => $self->{'bookfundid'},
87 booksellerinvoicenumber => $param{'invoice'},
89 ok( $basketno, "my basket number is $basketno" );
90 ok( $ordernumber, "my order number is $ordernumber" );
92 my $order = GetOrder( $ordernumber );
93 is( $order->{'ordernumber'}, $ordernumber, 'got the right order' )
94 or diag( Data::Dumper->Dump( [ $order ], [ 'order' ] ) );
96 is( $order->{'budgetdate'}, $today, "the budget date is $today" );
98 # XXX should I stuff these in $self?
99 return ( $basketno, $ordernumber );
104 sub enable_independant_branches {
107 my $member = GetMember( 'borrowernumber' =>$self->{'memberid'} );
109 C4::Context::set_userenv( 0, # usernum
110 $self->{'memberid'}, # userid
112 undef, # userfirstname
114 $member->{'branchcode'}, # userbranch
117 undef, # emailaddress
118 undef, # branchprinter
121 # set a preference. There's surely a method for this, but I can't find it.
122 my $retval = C4::Context->dbh->do( q(update systempreferences set value = '1' where variable = 'IndependentBranches') );
123 ok( $retval, 'set the preference' );
125 ok( C4::Context->userenv, 'usernev' );
126 isnt( C4::Context->userenv->{flags}, 1, 'flag != 1' )
127 or diag( Data::Dumper->Dump( [ C4::Context->userenv ], [ 'userenv' ] ) );
129 is( C4::Context->userenv->{branch}, $member->{'branchcode'}, 'we have set the right branch in C4::Context: ' . $member->{'branchcode'} );
133 sub disable_independant_branches {
136 my $retval = C4::Context->dbh->do( q(update systempreferences set value = '0' where variable = 'IndependentBranches') );
137 ok( $retval, 'set the preference back' );