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