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 |
} |