use Koha::Account::Lines;
use Koha::Account::Offsets;
use Koha::DateUtils qw( dt_from_string );
+use Koha::Exceptions;
use Koha::Exceptions::Account;
=head1 NAME
my $patron = Koha::Patrons->find( $self->{patron_id} );
- # We should remove accountno, it is no longer needed
- my $last = $self->lines->search(
- {},
- { order_by => 'accountno' } )->next();
- my $accountno = $last ? $last->accountno + 1 : 1;
-
my $manager_id = $userenv ? $userenv->{number} : 0;
+ my $interface = $params ? ( $params->{interface} || C4::Context->interface ) : C4::Context->interface;
my @fines_paid; # List of account lines paid on with this payment
$fine->amountoutstanding($new_amountoutstanding)->store();
$balance_remaining = $balance_remaining - $amount_to_pay;
- if ( $fine->itemnumber && $fine->accounttype && ( $fine->accounttype eq 'Rep' || $fine->accounttype eq 'L' ) )
+ if ( $fine->itemnumber && $fine->accounttype && ( $fine->accounttype eq 'L' ) )
{
C4::Circulation::ReturnLostItem( $self->{patron_id}, $fine->itemnumber );
}
new_amountoutstanding => 0,
amount_paid => $old_amountoutstanding,
accountlines_id => $fine->id,
- accountno => $fine->accountno,
manager_id => $manager_id,
note => $note,
}
- )
+ ),
+ $interface
);
push( @fines_paid, $fine->id );
}
new_amountoutstanding => $fine->amountoutstanding,
amount_paid => $amount_to_pay,
accountlines_id => $fine->id,
- accountno => $fine->accountno,
manager_id => $manager_id,
note => $note,
}
- )
+ ),
+ $interface
);
push( @fines_paid, $fine->id );
}
my $payment = Koha::Account::Line->new(
{
borrowernumber => $self->{patron_id},
- accountno => $accountno,
date => dt_from_string(),
amount => 0 - $amount,
description => $description,
payment_type => $payment_type,
amountoutstanding => 0 - $balance_remaining,
manager_id => $manager_id,
+ interface => $interface,
branchcode => $library_id,
note => $note,
}
type => $type,
amount => $amount,
borrowernumber => $self->{patron_id},
- accountno => $accountno,
}
);
{
action => "create_$type",
borrowernumber => $self->{patron_id},
- accountno => $accountno,
amount => 0 - $amount,
amountoutstanding => 0 - $balance_remaining,
accounttype => $account_type,
accountlines_paid => \@fines_paid,
manager_id => $manager_id,
}
- )
+ ),
+ $interface
);
}
description => $description,
note => $note,
user_id => $user_id,
+ interface => $interface,
library_id => $library_id,
sip => $sip,
payment_type => $payment_type,
my $description = $params->{description} // q{};
my $note = $params->{note} // q{};
my $user_id = $params->{user_id};
+ my $interface = $params->{interface};
my $library_id = $params->{library_id};
my $sip = $params->{sip};
my $payment_type = $params->{payment_type};
my $type = $params->{type} || 'payment';
my $item_id = $params->{item_id};
+ unless ( $interface ) {
+ Koha::Exceptions::MissingParameter->throw(
+ error => 'The interface parameter is mandatory'
+ );
+ }
+
my $schema = Koha::Database->new->schema;
my $account_type = $Koha::Account::account_type_credit->{$type};
$schema->txn_do(
sub {
- # We should remove accountno, it is no longer needed
- my $last = $self->lines->search(
- {},
- { order_by => 'accountno' } )->next();
- my $accountno = $last ? $last->accountno + 1 : 1;
# Insert the account line
$line = Koha::Account::Line->new(
{ borrowernumber => $self->{patron_id},
- accountno => $accountno,
date => \'NOW()',
amount => $amount,
description => $description,
payment_type => $payment_type,
note => $note,
manager_id => $user_id,
+ interface => $interface,
branchcode => $library_id,
itemnumber => $item_id,
- lastincrement => undef,
}
)->store();
type => $type,
amount => $amount,
borrowernumber => $self->{patron_id},
- accountno => $accountno,
}
) if grep { $type eq $_ } ('payment', 'writeoff') ;
Dumper(
{ action => "create_$type",
borrowernumber => $self->{patron_id},
- accountno => $accountno,
amount => $amount,
description => $description,
amountoutstanding => $amount,
manager_id => $user_id,
branchcode => $library_id,
}
- )
+ ),
+ $interface
);
}
}
description => $description,
note => $note,
user_id => $user_id,
+ interface => $interface,
library_id => $library_id,
type => $debit_type,
item_id => $item_id,
);
$debit_type can be any of:
- - fine
+ - overdue
- lost_item
- new_card
- account
- processing
- rent
- reserve
- - overdue
- manual
=cut
my $description = $params->{description} // q{};
my $note = $params->{note} // q{};
my $user_id = $params->{user_id};
+ my $interface = $params->{interface};
my $library_id = $params->{library_id};
my $type = $params->{type};
my $item_id = $params->{item_id};
my $issue_id = $params->{issue_id};
+ unless ( $interface ) {
+ Koha::Exceptions::MissingParameter->throw(
+ error => 'The interface parameter is mandatory'
+ );
+ }
+
my $schema = Koha::Database->new->schema;
unless ( exists($Koha::Account::account_type_debit->{$type}) ) {
$schema->txn_do(
sub {
- # We should remove accountno, it is no longer needed
- my $last = Koha::Account::Lines->search( { borrowernumber => $self->{patron_id} },
- { order_by => 'accountno' } )->next();
- my $accountno = $last ? $last->accountno + 1 : 1;
# Insert the account line
$line = Koha::Account::Line->new(
payment_type => undef,
note => $note,
manager_id => $user_id,
+ interface => $interface,
itemnumber => $item_id,
issue_id => $issue_id,
branchcode => $library_id,
- ( $type eq 'fine' ? ( lastincrement => $amount ) : ()),
+ ( $type eq 'overdue' ? ( status => 'UNRETURNED' ) : ()),
}
)->store();
Dumper(
{ action => "create_$type",
borrowernumber => $self->{patron_id},
- accountno => $accountno,
amount => $amount,
description => $description,
amountoutstanding => $amount,
itemnumber => $item_id,
manager_id => $user_id,
}
- )
+ ),
+ $interface
);
}
}
'processing' => 'Processing Fee',
'lost_item' => 'Lost Item',
'rent' => 'Rental Fee',
- 'fine' => 'Fine',
+ 'overdue' => 'OVERDUE',
'manual_debit' => 'Manual Debit',
'hold_expired' => 'Hold Expired'
};
our $account_type_debit = {
'account' => 'A',
- 'fine' => 'FU',
+ 'overdue' => 'OVERDUE',
'lost_item' => 'L',
'new_card' => 'N',
'sundry' => 'M',
'processing' => 'PF',
'rent' => 'Rent',
'reserve' => 'Res',
- 'overdue' => 'O',
'manual_debit' => 'M',
'hold_expired' => 'HE'
};