Lines 578-605
sub UpdateFine {
Link Here
|
578 |
# (i.e. , of accounttype 'FU'). Doing so will break accrual. |
578 |
# (i.e. , of accounttype 'FU'). Doing so will break accrual. |
579 |
if ( $data->{'amount'} != $amount ) { |
579 |
if ( $data->{'amount'} != $amount ) { |
580 |
my $accountline = Koha::Account::Lines->find( $data->{accountlines_id} ); |
580 |
my $accountline = Koha::Account::Lines->find( $data->{accountlines_id} ); |
581 |
my $diff = $amount - $data->{'amount'}; |
581 |
$accountline->adjust({ amount => $amount, type => 'fine_increment' }); |
582 |
|
|
|
583 |
#3341: diff could be positive or negative! |
584 |
my $out = $data->{'amountoutstanding'} + $diff; |
585 |
|
586 |
$accountline->set( |
587 |
{ |
588 |
date => dt_from_string(), |
589 |
amount => $amount, |
590 |
amountoutstanding => $out, |
591 |
lastincrement => $diff, |
592 |
accounttype => 'FU', |
593 |
} |
594 |
)->store(); |
595 |
|
596 |
Koha::Account::Offset->new( |
597 |
{ |
598 |
debit_id => $accountline->id, |
599 |
type => 'Fine Update', |
600 |
amount => $diff, |
601 |
} |
602 |
)->store(); |
603 |
} |
582 |
} |
604 |
} else { |
583 |
} else { |
605 |
if ( $amount ) { # Don't add new fines with an amount of 0 |
584 |
if ( $amount ) { # Don't add new fines with an amount of 0 |
Lines 608-649
sub UpdateFine {
Link Here
|
608 |
); |
587 |
); |
609 |
$sth4->execute($itemnum); |
588 |
$sth4->execute($itemnum); |
610 |
my $title = $sth4->fetchrow; |
589 |
my $title = $sth4->fetchrow; |
611 |
|
|
|
612 |
my $nextaccntno = C4::Accounts::getnextacctno($borrowernumber); |
613 |
|
614 |
my $desc = "$title $due"; |
590 |
my $desc = "$title $due"; |
615 |
|
591 |
|
616 |
my $accountline = Koha::Account::Line->new( |
592 |
my $account = Koha::Account->new({ patron_id => $borrowernumber }); |
617 |
{ |
593 |
my $accountline = $account->add_debit( |
618 |
borrowernumber => $borrowernumber, |
|
|
619 |
itemnumber => $itemnum, |
620 |
date => dt_from_string(), |
621 |
amount => $amount, |
622 |
description => $desc, |
623 |
accounttype => 'FU', |
624 |
amountoutstanding => $amount, |
625 |
lastincrement => $amount, |
626 |
accountno => $nextaccntno, |
627 |
issue_id => $issue_id, |
628 |
} |
629 |
)->store(); |
630 |
|
631 |
Koha::Account::Offset->new( |
632 |
{ |
594 |
{ |
633 |
debit_id => $accountline->id, |
595 |
amount => $amount, |
634 |
type => 'Fine', |
596 |
description => $desc, |
635 |
amount => $amount, |
597 |
note => undef, |
|
|
598 |
user_id => undef, |
599 |
library_id => undef, |
600 |
type => 'fine', |
601 |
item_id => $itemnum, |
602 |
issue_id => $issue_id, |
636 |
} |
603 |
} |
637 |
)->store(); |
604 |
); |
638 |
} |
605 |
} |
639 |
} |
606 |
} |
640 |
# logging action |
|
|
641 |
&logaction( |
642 |
"FINES", |
643 |
undef, |
644 |
$borrowernumber, |
645 |
"due=".$due." amount=".$amount." itemnumber=".$itemnum |
646 |
) if C4::Context->preference("FinesLog"); |
647 |
} |
607 |
} |
648 |
|
608 |
|
649 |
=head2 BorType |
609 |
=head2 BorType |
650 |
- |
|
|