Lines 53-58
use Koha::Borrower::Debarments;
Link Here
|
53 |
use Koha::Database; |
53 |
use Koha::Database; |
54 |
use Carp; |
54 |
use Carp; |
55 |
use List::MoreUtils qw( uniq ); |
55 |
use List::MoreUtils qw( uniq ); |
|
|
56 |
use Scalar::Util qw( looks_like_number ); |
56 |
use Date::Calc qw( |
57 |
use Date::Calc qw( |
57 |
Today |
58 |
Today |
58 |
Today_and_Now |
59 |
Today_and_Now |
Lines 840-848
sub CanBookBeIssued {
Link Here
|
840 |
# DEBTS |
841 |
# DEBTS |
841 |
my ($balance, $non_issue_charges, $other_charges) = |
842 |
my ($balance, $non_issue_charges, $other_charges) = |
842 |
C4::Members::GetMemberAccountBalance( $borrower->{'borrowernumber'} ); |
843 |
C4::Members::GetMemberAccountBalance( $borrower->{'borrowernumber'} ); |
|
|
844 |
|
843 |
my $amountlimit = C4::Context->preference("noissuescharge"); |
845 |
my $amountlimit = C4::Context->preference("noissuescharge"); |
844 |
my $allowfineoverride = C4::Context->preference("AllowFineOverride"); |
846 |
my $allowfineoverride = C4::Context->preference("AllowFineOverride"); |
845 |
my $allfinesneedoverride = C4::Context->preference("AllFinesNeedOverride"); |
847 |
my $allfinesneedoverride = C4::Context->preference("AllFinesNeedOverride"); |
|
|
848 |
|
849 |
# Check the debt of this patrons guarantees |
850 |
my $no_issues_charge_guarantees = C4::Context->preference("NoIssuesChargeGuarantees"); |
851 |
$no_issues_charge_guarantees = undef unless looks_like_number( $no_issues_charge_guarantees ); |
852 |
if ( defined $no_issues_charge_guarantees ) { |
853 |
my $b = Koha::Borrowers->find( $borrower->{borrowernumber} ); |
854 |
my @guarantees = $b->guarantees(); |
855 |
my $guarantees_non_issues_charges; |
856 |
foreach my $g ( @guarantees ) { |
857 |
my ( $b, $n, $o ) = C4::Members::GetMemberAccountBalance( $g->id ); |
858 |
$guarantees_non_issues_charges += $n; |
859 |
} |
860 |
|
861 |
if ( C4::Context->preference("IssuingInProcess") ) { |
862 |
if ( $guarantees_non_issues_charges > $no_issues_charge_guarantees && !$inprocess && !$allowfineoverride) { |
863 |
$issuingimpossible{DEBT_GUARANTEES} = sprintf( "%.2f", $guarantees_non_issues_charges ); |
864 |
} elsif ( $guarantees_non_issues_charges > $no_issues_charge_guarantees && !$inprocess && $allowfineoverride) { |
865 |
$needsconfirmation{DEBT_GUARANTEES} = sprintf( "%.2f", $guarantees_non_issues_charges ); |
866 |
} elsif ( $allfinesneedoverride && $guarantees_non_issues_charges > 0 && $guarantees_non_issues_charges <= $no_issues_charge_guarantees && !$inprocess ) { |
867 |
$needsconfirmation{DEBT_GUARANTEES} = sprintf( "%.2f", $guarantees_non_issues_charges ); |
868 |
} |
869 |
} |
870 |
else { |
871 |
if ( $guarantees_non_issues_charges > $no_issues_charge_guarantees && $allowfineoverride ) { |
872 |
$needsconfirmation{DEBT_GUARANTEES} = sprintf( "%.2f", $guarantees_non_issues_charges ); |
873 |
} elsif ( $guarantees_non_issues_charges > $no_issues_charge_guarantees && !$allowfineoverride) { |
874 |
$issuingimpossible{DEBT_GUARANTEES} = sprintf( "%.2f", $guarantees_non_issues_charges ); |
875 |
} elsif ( $guarantees_non_issues_charges > 0 && $allfinesneedoverride ) { |
876 |
$needsconfirmation{DEBT_GUARANTEES} = sprintf( "%.2f", $guarantees_non_issues_charges ); |
877 |
} |
878 |
} |
879 |
|
880 |
} |
881 |
|
846 |
if ( C4::Context->preference("IssuingInProcess") ) { |
882 |
if ( C4::Context->preference("IssuingInProcess") ) { |
847 |
if ( $non_issue_charges > $amountlimit && !$inprocess && !$allowfineoverride) { |
883 |
if ( $non_issue_charges > $amountlimit && !$inprocess && !$allowfineoverride) { |
848 |
$issuingimpossible{DEBT} = sprintf( "%.2f", $non_issue_charges ); |
884 |
$issuingimpossible{DEBT} = sprintf( "%.2f", $non_issue_charges ); |
Lines 861-866
sub CanBookBeIssued {
Link Here
|
861 |
$needsconfirmation{DEBT} = sprintf( "%.2f", $non_issue_charges ); |
897 |
$needsconfirmation{DEBT} = sprintf( "%.2f", $non_issue_charges ); |
862 |
} |
898 |
} |
863 |
} |
899 |
} |
|
|
900 |
|
864 |
if ($balance > 0 && $other_charges > 0) { |
901 |
if ($balance > 0 && $other_charges > 0) { |
865 |
$alerts{OTHER_CHARGES} = sprintf( "%.2f", $other_charges ); |
902 |
$alerts{OTHER_CHARGES} = sprintf( "%.2f", $other_charges ); |
866 |
} |
903 |
} |