# If it costs to borrow this book, charge it to the patron's account.
my ( $charge, $itemtype ) = GetIssuingCharges( $item->{'itemnumber'}, $borrower->{'borrowernumber'} );
if ( $charge > 0 ) {
- AddIssuingCharge( $item->{'itemnumber'}, $borrower->{'borrowernumber'}, $issue->id, $charge );
+ AddIssuingCharge( $issue, $charge );
$item->{'charge'} = $charge;
}
=head2 AddIssuingCharge
- &AddIssuingCharge( $itemno, $borrowernumber, $issue_id, $charge )
+ &AddIssuingCharge( $checkout, $charge )
=cut
sub AddIssuingCharge {
- my ( $itemnumber, $borrowernumber, $issue_id, $charge ) = @_;
+ my ( $checkout, $charge ) = @_;
- my $nextaccntno = getnextacctno($borrowernumber);
+ # FIXME What if checkout does not exist?
+
+ my $nextaccntno = getnextacctno($checkout->borrowernumber);
my $manager_id = 0;
$manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv;
my $accountline = Koha::Account::Line->new(
{
- borrowernumber => $borrowernumber,
- itemnumber => $itemnumber,
- issue_id => $issue_id,
+ borrowernumber => $checkout->borrowernumber,
+ itemnumber => $checkout->itemnumber,
+ issue_id => $checkout->issue_id,
accountno => $nextaccntno,
amount => $charge,
amountoutstanding => $charge,
use C4::Items;
use C4::Members;
use C4::Reserves;
+use Koha::Checkouts;
use Koha::Database;
use Koha::DateUtils;
use Koha::Holds;
qr/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/,
"Koha::Schema::Result::Issue->date_due() returns a date"
);
-my $issue_id1 = $dbh->last_insert_id( undef, undef, 'issues', undef );
+my $issue_id1 = $issue1->issue_id;
my $issue2 = C4::Circulation::AddIssue( $borrower_1, 'nonexistent_barcode' );
is( $issue2, undef, "AddIssue returns undef if no datedue is specified" );
-my $issue_id2 = $dbh->last_insert_id( undef, undef, 'issues', undef );
$sth->execute;
$countissue = $sth -> fetchrow_array;
$sth->execute;
my $countaccount = $sth -> fetchrow_array;
is ($countaccount,0,"0 accountline exists");
-my $offset = C4::Circulation::AddIssuingCharge( $item_id1, $borrower_id1, $issue_id1, 10 );
+my $checkout = Koha::Checkouts->find( $issue_id1 );
+my $offset = C4::Circulation::AddIssuingCharge( $checkout, 10 );
is( ref( $offset ), 'Koha::Account::Offset', "An issuing charge has been added" );
my $charge = Koha::Account::Lines->find( $offset->debit_id );
is( $charge->issue_id, $issue_id1, 'Issue id is set correctly for issuing charge' );