|
Lines 55-60
use Koha::Libraries;
Link Here
|
| 55 |
use Koha::Holds; |
55 |
use Koha::Holds; |
| 56 |
use Carp; |
56 |
use Carp; |
| 57 |
use List::MoreUtils qw( uniq ); |
57 |
use List::MoreUtils qw( uniq ); |
|
|
58 |
use Scalar::Util qw( looks_like_number ); |
| 58 |
use Date::Calc qw( |
59 |
use Date::Calc qw( |
| 59 |
Today |
60 |
Today |
| 60 |
Today_and_Now |
61 |
Today_and_Now |
|
Lines 844-852
sub CanBookBeIssued {
Link Here
|
| 844 |
# DEBTS |
845 |
# DEBTS |
| 845 |
my ($balance, $non_issue_charges, $other_charges) = |
846 |
my ($balance, $non_issue_charges, $other_charges) = |
| 846 |
C4::Members::GetMemberAccountBalance( $borrower->{'borrowernumber'} ); |
847 |
C4::Members::GetMemberAccountBalance( $borrower->{'borrowernumber'} ); |
|
|
848 |
|
| 847 |
my $amountlimit = C4::Context->preference("noissuescharge"); |
849 |
my $amountlimit = C4::Context->preference("noissuescharge"); |
| 848 |
my $allowfineoverride = C4::Context->preference("AllowFineOverride"); |
850 |
my $allowfineoverride = C4::Context->preference("AllowFineOverride"); |
| 849 |
my $allfinesneedoverride = C4::Context->preference("AllFinesNeedOverride"); |
851 |
my $allfinesneedoverride = C4::Context->preference("AllFinesNeedOverride"); |
|
|
852 |
|
| 853 |
# Check the debt of this patrons guarantees |
| 854 |
my $no_issues_charge_guarantees = C4::Context->preference("NoIssuesChargeGuarantees"); |
| 855 |
$no_issues_charge_guarantees = undef unless looks_like_number( $no_issues_charge_guarantees ); |
| 856 |
if ( defined $no_issues_charge_guarantees ) { |
| 857 |
my $p = Koha::Patrons->find( $borrower->{borrowernumber} ); |
| 858 |
my @guarantees = $p->guarantees(); |
| 859 |
my $guarantees_non_issues_charges; |
| 860 |
foreach my $g ( @guarantees ) { |
| 861 |
my ( $b, $n, $o ) = C4::Members::GetMemberAccountBalance( $g->id ); |
| 862 |
$guarantees_non_issues_charges += $n; |
| 863 |
} |
| 864 |
|
| 865 |
if ( $guarantees_non_issues_charges > $no_issues_charge_guarantees && !$inprocess && !$allowfineoverride) { |
| 866 |
$issuingimpossible{DEBT_GUARANTEES} = sprintf( "%.2f", $guarantees_non_issues_charges ); |
| 867 |
} elsif ( $guarantees_non_issues_charges > $no_issues_charge_guarantees && !$inprocess && $allowfineoverride) { |
| 868 |
$needsconfirmation{DEBT_GUARANTEES} = sprintf( "%.2f", $guarantees_non_issues_charges ); |
| 869 |
} elsif ( $allfinesneedoverride && $guarantees_non_issues_charges > 0 && $guarantees_non_issues_charges <= $no_issues_charge_guarantees && !$inprocess ) { |
| 870 |
$needsconfirmation{DEBT_GUARANTEES} = sprintf( "%.2f", $guarantees_non_issues_charges ); |
| 871 |
} |
| 872 |
} |
| 873 |
|
| 850 |
if ( C4::Context->preference("IssuingInProcess") ) { |
874 |
if ( C4::Context->preference("IssuingInProcess") ) { |
| 851 |
if ( $non_issue_charges > $amountlimit && !$inprocess && !$allowfineoverride) { |
875 |
if ( $non_issue_charges > $amountlimit && !$inprocess && !$allowfineoverride) { |
| 852 |
$issuingimpossible{DEBT} = sprintf( "%.2f", $non_issue_charges ); |
876 |
$issuingimpossible{DEBT} = sprintf( "%.2f", $non_issue_charges ); |
|
Lines 865-870
sub CanBookBeIssued {
Link Here
|
| 865 |
$needsconfirmation{DEBT} = sprintf( "%.2f", $non_issue_charges ); |
889 |
$needsconfirmation{DEBT} = sprintf( "%.2f", $non_issue_charges ); |
| 866 |
} |
890 |
} |
| 867 |
} |
891 |
} |
|
|
892 |
|
| 868 |
if ($balance > 0 && $other_charges > 0) { |
893 |
if ($balance > 0 && $other_charges > 0) { |
| 869 |
$alerts{OTHER_CHARGES} = sprintf( "%.2f", $other_charges ); |
894 |
$alerts{OTHER_CHARGES} = sprintf( "%.2f", $other_charges ); |
| 870 |
} |
895 |
} |